当前位置: 首页 > 专利查询>辉达公司专利>正文

被排队的指令在超前运行之后的重新分派制造技术

技术编号:10194066 阅读:181 留言:0更新日期:2014-07-10 01:00
被排队的指令在超前运行之后的重新分派。本文公开微处理器和在超前运行操作期间操作微处理器的方法的各实施例。操作微处理器的一个示例方法包括标识与触发超前运行的指令相关联的触发超前运行的事件,以及响应于触发超前运行的事件的标识,进入超前运行操作并将触发超前运行的指令与一个或多个附加指令一起插入队列。示例方法还包括响应于触发超前运行的事件的解决而恢复微处理器的非超前运行操作以及将触发超前运行的指令与一个或多个附加指令一起从队列重新分派到执行逻辑。

【技术实现步骤摘要】
被排队的指令在超前运行之后的重新分派
技术介绍
微处理器中的指令可引起停顿,这潜在地延迟指令处理并绑定微处理器资源。因为停顿通常不可预测,一些解决第一停顿的微处理器可能推测性地执行指令以揭示其他潜在的停顿。虽然如果潜在停顿被揭示则推测性执行可加速执行,但每次实施推测性执行时,在推测性执行结束后重新启动微处理器并将微处理器重置到预推测性执行状态可能减慢执行。【附图说明】图1示意性地示出根据本公开的实施例的示例微处理器。图2示出根据本公开的实施例的、说明操作微处理器的示例方法的流程图。图3示出用来说明图4和5中所描绘的方法的示例程序。图4示意性地示出根据本公开的实施例的、在超前运行(runahead)中操作微处理器的方法。图5示意性地示出根据本公开的实施例的、在超前运行中操作微处理器的另一方法。图6示意性地示出根据本公开的实施例的另一示例微处理器。图7示意性地示出根据本公开的实施例的另一示例微处理器。【具体实施方式】在现代微处理器中,指令常常在管线中执行。可以将这类指令单独地或作为微操作束(bundle)分派到管线内的各执行级。无论发出用于执行时指令的形式如何,当发出指令时,在分派时可能并不知道在指令的执行期间是否将发生未命中或异常。在微处理器能够对后续指令取得进展之前需要一些时间以解决一些未命中/异常。因此,微处理器在尝试解决长时延事件的根本原因的同时可能停顿。常见管线停顿的一个非限制性示例是导致高速缓存未命中的加载操作。在一些微处理器中,停顿可能触发进入配置为检测其他潜在停顿的操作的超前运行模式中的入口。换句话说,微处理器可检测可能使微处理器停顿的长时延事件。在尝试解决该长时延事件(例如触发超前运行的事件)的同时,微处理器可推测性地执行附加指令以尝试揭示其他可能的停顿。通过揭示其他可能的停顿,微处理器可开始解决作为那些可能的停顿的基础的长时延事件,同时解决触发超前运行的事件,这潜在地节约时间。如本文所使用的,超前运行操作描述产生自长时延事件的任何合适的推测性执行方案,并配置为揭示可能导致停顿的一个或多个其他潜在长时延事件。这类长时延事件的非限制性示例包括高速缓存未命中(例如存储未命中和/或加载未命中)、转译后备缓冲区(例如指令和/或数据转译后备缓冲区)中的未命中、和一些长时延浮点运算(例如非正规(denormal)平方根运算)。一旦检测到触发超前运行的事件,微处理器的状态(例如寄存器值和其他合适的状态)可被设置检查点,使得一旦已解决触发超前运行的事件并且超前运行操作结束,则微处理器可返回到超前运行前(pre-runahead)状态。设置检查点保存微处理器的当前状态,这允许以后恢复到这类状态。设置检查点可包括例如拷贝寄存器的内容以复制寄存器。在超前运行操作期间,微处理器在工作状态中执行,但不提交指令的结果以避免更改微处理器的状态。提交更新微处理器状态并可包括例如覆写被设置检查点的寄存器。在触发超前运行的事件被解决后,微处理器退出超前运行并重新启动。如本文所使用的,重新启动微处理器是指返回到被设置检查点的超前运行前状态,使得正常的非超前运行操作恢复。在超前运行之后重新启动微处理器是指在指令流中的超前运行前位置处重新启动指令的执行,使得该指令的执行在重新启动后继续,犹如超前运行从未发生过,尽管采取了各种动作以对在超前运行期间所揭示的潜在长时延事件(例如预获取未命中等)进行解决。典型地,重新进入非超前运行操作涉及随着对执行触发超前运行的指令的较早尝试不成功,重新分派触发超前运行的指令用于执行。然而,从指令高速缓存或统一高速缓存重新获取指令可能增加重新进入非超前运行执行的时延。因此,本文公开了与微处理器和操作微处理器的方法相关的各实施例。在一个示例中,在超前运行操作结束之后从队列重新分派触发超前运行的指令。从队列重新分派触发超前运行的指令而不是对其加以重新获取可节省可能另外花费在获取指令以及在一些设定中解码指令的时间。例如,在一些实施例中,在超前运行之外的普通操作期间具有第一目的的队列(例如重演队列)可在超前运行期间用于另一目的。具体来讲,队列可重新用来在超前运行期间保持触发超前运行的指令和一个或多个附加指令。在一些实施例中,重演队列可在超前运行期间用于该目的。在根据这类实施例的一个场景中,重演队列可用来在正常操作期间重演超前运行之外的指令。当遭遇触发超前运行的指令时,该指令与一个或多个附加指令一起被添加到重新目的化(repurposed)的重演队列。采用该场景继续,一旦那些指令被添加并且进行超前运行,则经重新目的化的重演队列被冻结。一经从超前运行退出,则从经重新目的化的重演队列分派触发超前运行的指令和附加指令,这如上文所述在超前运行之后潜在地加速处理。图1示意性地示出可与本文所描述的系统和方法有关所采用的微处理器100的实施例。微处理器100包括配置为存储指令的存储器系统102和配置为处理指令的管线104。关于存储器系统102的附加细节在图7中加以说明并在附随文本中加以描述。存储器系统102可配置为存储任何合适类型的指令。例如,指令可以以指令集架构(ISA)指令、微操作(以合适的束化形式或非束化)的形式来存储、存储为相关ISA指令的转译等等。在一些示例中,单独的微操作可与一个或多个指令或指令的一部分相对应。换句话说,在一个场景中单个指令可存储为微操作束,而在另一场景中多个指令可存储为微操作束。如本文所使用的,束是指成组在一起的一个或多个微操作。图1中以简化形式示出的管线104在程序执行期间处理存储在存储器系统102中的一个或多个指令。管线指令处理可允许多于一个指令并发地处于在检索和执行的不同级中。换言之,被包括在管线104中的各级可允许一些指令准备好用于由上游级执行而下游级执行其他指令并收回另一些其他指令。图1中示出的示例管线104包括获取逻辑106、解码逻辑108、调度器逻辑110、执行逻辑112和回写逻辑114。将理解的是,仅出于例示性目的提供图1中示出的管线104的实施例中所显示的逻辑部分,并且可以以任何合适的方式布置下文更详细地描述的功能性。例如,管线104的一些实施例可包括执行单元中的一个或多个内的经单独管线化的部分(例如获取逻辑106、解码逻辑108等中的一个或多个可包括经单独管线化的部分),而一些实施例可将单个管线执行单元内的两个或更多个逻辑部分的部分加以组合。在图1中示出的实施例中,获取逻辑106从存储器系统102检索指令,典型地是从由L2-L3高速缓存和主存储器所支持的统一或专用LI高速缓存检索指令。解码逻辑108例如通过解析操作符/操作码、操作数和寻址模式来解码指令。一经被解析,指令就随后由调度器逻辑110所调度用于由执行逻辑112执行。执行逻辑112可包括配置为执行由调度器逻辑110所发出的指令的一个或多个执行级(例如执行级O到4在图1中示出)。任何合适数目和类型的执行级可包括在执行逻辑112内。执行逻辑112还可与存储器系统102通信(例如经由被包括在执行逻辑112中的一个或多个加载/存储单元)以处置在操作期间所遭遇的加载和/或存储操作。一旦由执行逻辑112处理,可存储所完成的指令以准备用于由回写逻辑114提交。回写逻辑114通过将所完成的指令的结果提交到微处理器寄存器本文档来自技高网...

【技术保护点】
一种微处理器,包括:调度器逻辑,用于发出一个或多个指令用于执行;执行逻辑,用于执行由所述调度器逻辑所发出的所述一个或多个指令;队列,用于保持一个或多个指令用于到所述执行逻辑的重新分派;以及超前运行控制逻辑,用于管理所述微处理器的超前运行操作,所述超前运行控制逻辑配置为:检测触发超前运行的事件,响应于检测到所述触发超前运行的事件,(i)使所述微处理器操作在超前运行中,并且(ii)将与所述触发超前运行的事件相关联的触发超前运行的指令与一个或多个附加指令一起插入到所述队列中,一经解决所述触发超前运行的事件则恢复非超前运行操作,以及一经恢复非超前运行操作,则将所述触发超前运行的指令和所述一个或多个附加指令从所述队列重新分派到所述执行逻辑。

【技术特征摘要】
2012.12.28 US 13/730,4071.一种微处理器,包括: 调度器逻辑,用于发出一个或多个指令用于执行; 执行逻辑,用于执行由所述调度器逻辑所发出的所述一个或多个指令; 队列,用于保持一个或多个指令用于到所述执行逻辑的重新分派;以及超前运行控制逻辑,用于管理所述微处理器的超前运行操作,所述超前运行控制逻辑配置为: 检测触发超前运行的事件, 响应于检测到所述触发超前运行的事件,(i)使所述微处理器操作在超前运行中,并且(ii)将与所述触发超前运行的事件相关联的触发超前运行的指令与一个或多个附加指令一起插入到所述队列中, 一经解决所述触发超前运行的事件则恢复非超前运行操作,以及一经恢复非超前运行操作,则将所述触发超前运行的指令和所述一个或多个附加指令从所述队列重新分派到所述执行逻辑。2.根据权利要求1所述的微处理器,其中所述调度器逻辑将所述一个或多个指令从所述队列重新分派到所述执行逻辑。3.根据权利要求1所述的微处理器,进一步包括分配指针,所述分配指针配置为指示用于被选择用于插入到所...

【专利技术属性】
技术研发人员:吉列尔莫·J·罗扎斯亚历山大·克莱贝尔詹姆斯·范·策恩保罗·塞维斯布拉德·霍伊特斯里达兰·罗摩克里希纳亨斯·凡德斯库特罗斯·泽格尔肯达雷尔·D·博格斯马格努斯·埃克曼阿温达哈·巴克他戴维·邓恩
申请(专利权)人:辉达公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1