当前位置: 首页 > 专利查询>英特尔公司专利>正文

提交时执行的状态更新指令、装置、方法和系统制造方法及图纸

技术编号:8737279 阅读:186 留言:0更新日期:2013-05-26 12:43
一种装置包括具有执行指令的电路的执行逻辑以及耦合于该执行逻辑的指令执行调度器逻辑。该指令执行调度器逻辑用于接收提交时执行的状态更新指令。指令执行调度器逻辑包括提交时状态更新逻辑,其等待调度提交时执行的状态更新指令以供执行,直到提交时执行的状态更新指令是下一个要提交的指令。还公开了其它装置、方法和系统。

【技术实现步骤摘要】
【国外来华专利技术】提交时执行的状态更新指令、装置、方法和系统背景领域各实施例涉及处理器和其它指令处理装置。具体地说,各实施例涉及用于更新处理器和其它指令处理装置的内部状态的方法、装置、系统或指令。背景信息某些处理器使用流水线化的执行以使执行阶段重叠,这允许多个指令在同一时间处于不同的执行阶段,这有助于改善性能。所取得的并行量往往随着流水线深度的增加而增加。随着时间的流逝,某些处理器在尝试改善性能时已引入更深的流水线操作。当指令流为已知时,流水线操作往往更有效,由此流水线可保持满的,并且对后面指令的执行不需要等待流水线内那些指令的结果。为了帮助流水线更满,流水线化的处理器已使用动态预测(例如,分支预测)和推测性执行。动态预测可用来预测指令流中的指令流向,并将预测到的路径的指令注入到流水线中。分支预测可涉及在明确已知某分支的正确方向之前预测该分支的方向,例如预测条件性分支指令的方向,例如,处理器可基于过往历史就条件性分支指令最可能取什么方向作出基于经验的推测。然后,没等处理器知晓预测的分支方向实际是否正确,处理器可以基于该预测的分支方向是正确的假设,开始推测性地执行指令。动态预测(例如,预测到的分支方向)将稍后证实是正确的或不正确的。如果预测到的分支方向稍后证实是正确的,则可利用该推测性执行的结果。在这种情形下,在等待知晓分支方向的正确方向时,推测性执行为那些原本会处于休眠或至少不被充分利用的流水线阶段提供了更大的利用价值。另一方面,如果预测到的分支方向证实是不正确的或者分支方向被误预测,那么一般应当将位于条件性分支指令之后的推测性执行丢弃,并且一般应当通过在控制流中跳转或沿分支返回到被误预测的条件性分支而使所述执行“倒退”。然后,可以用当前明确知晓的正确分支方向以非推测性的方式恢复执行。附图简述通过参考用来说明本专利技术的实施例的以下描述和附图,可最好地理解本专利技术。在附图中:图1是存储在机器可读存储介质上的提交时执行的状态更新指令的实施例的方框图。图2是具有指令执行调度器队列以便发布提交时执行的状态更新指令的处理器或其它指令处理装置的实施例的方框图。图3是发布提交时执行的状态更新指令的方法的实施例的方框流程图。图4是具有乱序指令执行调度器队列的实施例以便发布提交时执行的状态更新指令的乱序处理器或其它指令处理装置的实施例的方框图。图5是具有乱序指令执行调度器队列的具体示例性实施例以便发布提交时执行的状态更新指令的乱序处理器或其它指令处理装置的具体示例性实施例的方框图。图6是具有提交时状态更新逻辑的具体示例性实施例以便发布提交时执行的状态更新指令的保留站(reservationstation)的具体示例性实施例的方框图。图7是具有本文披露的处理器的实施例的适用的计算机系统的示例性实施例的方框图。详细描述在下面的描述中,阐述了许多具体细节,例如特定处理器组件和配置、特定调度逻辑,以及类似物。然而,应当理解,本专利技术的实施例可在没有这些具体细节的情况下实践。在其他实例中,公知的电路、结构和技术未被详细示出,以免混淆对本描述的理解。处理器内的推测性执行所带来的挑战之一与更新或改变处理器的内部状态相关。处理器通常具有大量不应当被推测性改变的内部状态。有些处理器具有几百或几千数量级的内部状态位。内部状态可包括系统标志、控制寄存器中的位,以及类似物。在处理器操作期间,在处理器执行代码的同时,例如可由处理器的微代码和/或由软件/BIOS通过微代码提供的接口,来修改该内部状态。然而,许多或大多数这样的内部状态一般不应当被推测性地修改,例如在推测性执行期间。在一些处理器中,可重新命名被最频繁修改的处理器状态(例如,在乱序处理器的情形下,通过分配和重新命名给重排序缓冲器),这有助于保护这种状态避受推测性改变。然而,由于在一些处理器中存在大量的存储器状态,所以所有这些处理器状态通常不被重命名,通过重命名对处理器状态的相应保护就无法实现。本专利技术的实施例涉及状态更新指令,该状态更新指令用于使处理器或控制处理器在使用推测性执行的流水线化的处理器中非推测性地更新处理器的内部状态(例如,非重命名的处理器状态)。在各实施例中,状态更新指令可使处理器或控制处理器在提交时更新内部状态(例如,在引退时或刚好在引退之后、在结束时或刚好在结束之后、在动态预测判定之后、在接收到分支判定信号之后,等等)。在提交时执行状态更新指令有助于不对内部状态进行更新直到已知所述更新是非推测性之后。一些实施例适用于乱序处理器,而其它实施例适用于顺序处理器。其它实施例涉及响应于状态更新指令而执行的方法。又一些其它实施例涉及用于处理该状态更新指令的装置。图1是存储在机器可读存储介质100上的提交时执行的状态更新指令102的一个实施例的方框图。在各实施例中,机器可读存储介质可以是存储器(例如,只读存储器(ROM)、指令存储、指令高速缓存、指令队列、指令缓存器、盘(例如,磁盘或光盘),这里仅给出了几个示例。提交时执行的状态更新指令可被提供给机器、由机器访问或由机器处理,所述机器例如是处理器或其它指令执行装置。机器可识别出状态更新指令是提交时执行类型的状态更新指令。例如,机器可识别出状态更新指令的一个或多个位表示它是提交时执行类型的指令。有多种不同的方式来达成这个目的。达成这个目的的适宜方式的例子包括但不限于,为提交时执行的状态更新指令提供单独的操作码,在该操作码中提供一个或多个位的标签,以指定由操作码标识的状态更新指令是提交时执行的种类,以及在指令的另一字段(例如,原本不用于该指令的字段)中提供一个或多个位的标签,以指定该指令是提交时执行的指令,这里仅给出了几个示例。提交时执行的状态更新指令,如果或当由机器处理时,可致使或导致机器等待调度/发布和执行状态更新指令,直到状态更新指令是下一个要提交的指令或者当对该状态更新指令的执行是非推测性的时候。然后,机器可调度/发布、执行和提交状态更新指令。当状态更新指令执行或在一些情形下提交时,可更新机器的内部状态。提交时执行的状态更新指令可用于控制处理器或其它指令处理装置,以使该状态更新指令的执行发生在一特定的流水线阶段,即在提交时。在一特定示例性实施例中,提交时执行的状态更新指令可以是提交时执行的控制寄存器写指令,该指令用来写或修改控制寄存器,其中控制寄存器代表一例内部状态的类型。控制寄存器的内容可表征系统标志、用于地址转换的分页表单元、分割数据、存储器区域类型、处理器模式(例如,保护或高速缓存),或类似内容。在一个方面,控制寄存器可以不被配置成通过寄存器重命名而被重命名,这可使控制寄存器或内部状态在推测性执行期间更易受到修改或更少地被保护免于修改。在一个或多个实施例中,提交时执行的状态更新指令是微指令。其它实施例不限于受微代码控制的处理器。较为有利地,提交时执行的状态更新指令可有助于避免内部状态的推测性更新。由于提交时执行的状态更新指令使得机器等待调度/发布和执行该状态更新指令,直到该状态更新指令是下一个要提交的指令,因此该状态更新指令将不会造成机器的内部状态更新,直到已知对指令的执行为非推测性之后。此外,使状态更新指令本身成为提交时执行的指令是避免推测性更新内部状态的一种直接和有效的方式。根本地,正是状态更新指令不应当推测性地发生以避免内部本文档来自技高网...
提交时执行的状态更新指令、装置、方法和系统

【技术保护点】

【技术特征摘要】
【国外来华专利技术】2010.09.25 US 12/924,3111.一种指令处理装置,包括:执行逻辑单元,所述执行逻辑单元包括用于执行指令的电路;以及指令执行调度器逻辑单元,其与所述执行逻辑单元耦合,用于接收提交时执行的状态更新指令,以更新使用推测性执行的处理器的内部状态,所述指令执行调度器逻辑单元包括:提交时状态更新逻辑单元,其用于等待调度所述提交时执行的状态更新指令以供执行,直到所述提交时执行的状态更新指令是下一个要提交的指令,以便不对所述内部状态进行更新直到已知所述更新是非推测性之后。2.如权利要求1所述的指令处理装置,其特征在于,所述指令执行调度器逻辑单元包括乱序指令执行调度器队列,所述乱序指令执行调度器队列用于在调度所述提交时执行的状态更新指令以供执行之前,调度较年轻的指令以供执行。3.如权利要求2所述的指令处理装置,其特征在于,还包括重排序缓冲器,其与所述乱序指令执行调度器队列耦合,用于将所述提交时执行的状态更新指令是下一个要提交的指令的指示提供给所述乱序指令执行调度器队列。4.如权利要求1所述的指令处理装置,其特征在于,所述提交时执行的状态更新指令包括用于对控制寄存器作写入的提交时执行的控制寄存器写指令。5.如权利要求1所述的指令处理装置,其特征在于,所述提交时执行的状态更新指令用于更新不被配置成被重命名的状态。6.如权利要求1所述的指令处理装置,其特征在于,所述指令执行调度器逻辑单元包括保留站。7.如权利要求1所述的指令处理装置,其特征在于,所述提交时执行的状态更新逻辑单元包括:由一个或多个提交位组成的多个组,由所述一个或多个提交位组成的多个组中的每个组对应于所述指令执行调度器逻辑单元的指令执行调度器队列中的不同条目;位值调整逻辑单元,其用于响应于所述提交时执行的状态更新指令,将所述指令执行调整器队列中与所述提交时执行的状态更新指令对应的条目处的一组一个或多个提交位的值调整至给定值;确定逻辑单元,其用于当所述指令执行调整器队列中与所述提交时执行的状态更新指令对应的所述条目处的所述一组一个或多个提交位具有所述给定值时,确定下一个要提交的指令的指示是否与所述指令执行调整器队列中与所述提交时执行的状态更新指令对应的所述条目处的所述提交时执行的状态更新指令的指示相匹配。8.如权利要求7所述的指令处理装置,其特征在于,所述位值调整逻辑单元包括用于对所述提交时状态更新指令进行解码的解码器,并且所述确定逻辑单元包括各自与不同条目对应的多组确定逻辑单元,针对与所述提交时执行的状态更新指令相对应的所述条目的一组确定逻辑单元用于确定代表下一个要提交的指令的多个位是否等于代表所述提交时执行的状态更新指令的多个位。9.如权利要求7所述的指令处理装置,其特征在于,所述指令执行调度器逻辑单元用于:如果所述确定逻辑单元用于确定下一个要提交的指令的指示与所述提交时执行的状态更新指令的指示不匹配,则所述指令执行调度器逻辑单元阻止发布所述提交时执行的状态更新指令。10.一种指令调度的方法,包括:接收提交时执行的状态更新指令,以更新使用推测性执行的处理器的内部状态;等待调...

【专利技术属性】
技术研发人员:J·E·菲利浦斯K·萨布莱曼尼亚姆
申请(专利权)人:英特尔公司
类型:
国别省市:

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

1