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

将有条件短前向分支转换成计算等效的所断言指令制造技术

技术编号:10443026 阅读:165 留言:0更新日期:2014-09-17 19:07
本申请涉及将有条件短前向分支转换成计算等效的所断言指令。一种处理器可操作用于处理有条件分支。该处理器包括用于提取有条件短前向分支的指令提取逻辑。有条件短前向分支用于包括有条件分支指令以及以程序次序顺序跟随有条件分支指令的一组一个或多个指令。该组一个或多个指令在有条件分支指令与由有条件分支指令指示的前向分支目标指令之间。该处理器还包括与指令提取逻辑耦合的指令转换逻辑。指令转换逻辑用于将有条件短前向分支转换成计算等效的一组一个或多个所断言指令。也公开了其它处理器,以及各种方法和系统。

【技术实现步骤摘要】
将有条件短前向分支转换成计算等效的所断言指令
本文中所描述的实施例一般涉及处理器。具体而言,本文所描述的实施例一般涉及对处理器中有条件分支的处理。
技术介绍
某些处理器使用流水线化执行来交叠执行阶段。这可以允许多个指令同时处在不同的执行阶段,这可能有助于改进性能。所取得的并行量往往随着流水线深度的增加而增力口。随着时间的流逝,某些处理器在尝试改进性能时已引入更深的流水线。当指令流为已知时,这些深流水线往往更有效,由此流水线可保持饱满,并且后续指令的执行不需要等待流水线中先前指令的结果。 一个挑战在于,由处理器执行的程序或代码通常包含有条件分支。这种有条件分支的示例包括“如果条件被满足或未被满足则跳转”之类的指令,以及本领域公知的其它有条件控制流改变指令。有条件分支可以使执行流有条件地分支到两个可能方向之一。这两个方向通常被称为“选取路径”和“未选取路径”。“未选取路径”通常引向所执行代码的下一顺序指令,而“选取路径”通常跳过、运动或分支跨过一个或多个中间指令到非顺序目标指令。是否选取分支一般依赖于对与指令关联的条件的评估(例如条件是否被满足)。 为了帮助改进性能,多数现代处理器具有分支预测器,以帮助在已经确定有条件分支的实际方向之前预测有条件分支的方向。通常,在流水线后续阶段实际评估条件之前,有条件分支的实际方向无法确切知晓。然而,分支预测器可以采用分支预测机构或逻辑来预测有条件分支的方向(例如基于过去历史)。这可以帮助改进处理器性能。在没有分支预测器的情况下,处理器可能必需在能够将附加指令提取到流水线之前,等待对与有条件分支指令关联的条件的评估。然而,分支预测器可以通过预测有条件分支的最可能方向来帮助避免这种时间浪费。然后,所预测的分支方向可用于提取附加指令并推测地执行这些指令。 最终,会发现所预测的分支方向是正确还是错误。如果所预测的分支方向是正确的,则可利用推测性执行指令的结果和/或状态。在这种情形中,由于更多地利用在等待评估有条件分支的实际方向时原本休眠或至少未被充分利用的流水线阶段,处理器的性能和速度通常会得到提高。然而,如果相反,所预测的分支方向不正确(例如分支预测器预测错误),则来自超出有条件分支指令之上推测性执行的指令的任何结果和/或状态通常需要废弃。通常,流水线会被清除(废弃流水线中当前进行的指令),并且将执行倒回至被错误预测的有条件分支并以当前正确知晓的替换性分支方向重新开始。这种结果通常是不期望的,因为这往往招致性能惩罚和能量惩罚。 【附图说明】 通过参考用来说明本专利技术的实施例的以下描述和附图,可最好地理解本专利技术。在附图中: 图1是包括有条件短前向分支的程序或代码的一部分的流程框图。 图2是操作用于处理有条件分支的处理器实施例的框图。 图3是处理有条件分支的方法实施例的流程框图。 图4是示出有条件短前向分支检测和转换逻辑的框图。 图5是检测并确定是否转换有条件短前向分支的方法实施例的流程框图。 图6示出将有条件短前向分支的示例性实施例转换成计算等效的一组一个或多个所断言指令。 图7是后端逻辑的实施例的框图,该后端逻辑操作用于更新或不更新反映表示有条件短前向分支并与之计算等效的一组一个或多个所断言指令的架构状态。 图8A是示出根据本专利技术的实施例的示例性有序流水线以及示例性寄存器重命名、无序发布/执行流水线的框图。 图SB是示出根据本专利技术的实施例的要包括在处理器中的有序架构核示例性实施例以及示例性寄存器重命名、无序发布/执行架构核的框图。 图9A是根据本专利技术的实施例的连接到管芯上(on-die)互联网络且具有二级(L2)高速缓存的本地子集的单个处理器核的框图。 图9B是根据本专利技术的实施例的图9A中的处理器核的一部分的展开图。 图10是根据本专利技术的实施例的可具有一个以上核、可具有集成存储器控制器、并且可具有集成图形器件的处理器的框图。 图11示出根据本专利技术的实施例的系统的框图。 图12示出根据本专利技术的实施例的第一更具体的示例性系统的框图。 图13示出根据本专利技术的实施例的第二更具体的示例性系统的框图。 图14示出根据本专利技术的实施例的片上系统(SoC)的框图。 图15是对比根据本专利技术实施例的使用软件指令转换器将源指令集中的二进制指令转换为目标指令集中的二进制指令的框图。 【具体实施方式】 本文所公开的是用于将有条件短前向分支转换成计算等效的多组一个或多个所断言和/或有条件执行的指令的处理器、方法和系统。在以下描述中,阐述了许多具体细节(例如有条件分支指令的具体类型、具体的有条件短前向分支、逻辑实现、处理器配置、微架构细节、操作序列、逻辑划分/集成细节、系统组件的类型和相互关系等等)。然而,应当理解,本专利技术的实施例可在没有这些具体细节的情况下实践。在其他情况下,没有详细示出已知的电路、结构、以及技术,以便不至于使本描述变得模糊。 图1是由处理器执行的程序或代码100的一部分的流程框图,包括有条件短前向分支101。有条件分支指令103位于有条件短前向分支的起点。有条件分支指令具有“选取路径”和“未选取路径”。选取路径引向由有条件分支指令指示的前向分支目标指令106。例如,有条件分支指令可以具有自变量或源操作数以指示前向分支目标指令(例如指定从有条件分支指令向分支目标指令的偏移)。 在多个实施例中,有条件分支指令可以表示有条件跳转指令、有条件控制流转移指令、或本领域公知的任何其它类型的有条件分支指令。英特尔架构包括多个合适的有条件跳转指令示例。合适的“如果条件被满足则跳转”(jcc)指令的一些代表性示例包括,但不限于:Ca)如果高于(进位标志=O且零标志=0)则短跳转指令(JA) ; (b)如果进位(进位标志=0)则短跳转指令(JC) ; (c)如果O (零标志=1)则近跳转指令(JZ) ;(d)如果非零(零标志=0)则短跳转指令(JNZ) ; Ce)如果低于或等于(进位标志=1且零标志=1)则近跳转指令(JBE)以及(f)如果不大于(零标志=1或符号标志古OF)则近跳转指令(JNG)。Intel? Itanium?架构也包括合适的分支指令。例如,br (分支)指令具有cond (有条件)类型,其中分支指令使用有资格断言来确定是否选取该分支。如果断言为1,则选取该分支,否则不选取该分支。一些RISC架构也包括多个合适的有条件分支指令的示例。这种有条件分支指令的一些代表性示例包括,但不限于:(a)如果等于则分支指令(BEQ); (b)如果不等于则分支指令(BNE); (c)如果进位清除则分支指令(BCC); (d)如果进位置位则分支指令(BCS) ; Ce)如果有符号大于则分支指令(BGT);以及(f)如果无溢出则分支指令(BVC)。 “未选取路径”引向一组一个或多个指令102,该组一个或多个指令102以程序次序顺序地跟随有条件分支指令,并且在有条件分支指令与由有条件分支指令指示的前向分支目标指令之间。在所示实施例中,这些指令至少包括以程序次序紧随有条件分支指令的指令104可任选地,在一些实施例中,有条件短前向分支101还可以在有条件分支指令与前向分支目标指令之间以程序次序包括一个或多个其它可任选顺序指本文档来自技高网...

【技术保护点】
一种处理有条件分支的处理器,包括:指令提取逻辑,用于提取有条件短前向分支,所述有条件短前向分支包括有条件分支指令以及在所述有条件分支指令与由所述有条件分支指令指示的前向分支目标指令之间以程序次序顺序跟随所述有条件分支指令的一组一个或多个指令;以及与所述指令提取逻辑耦合的指令转换逻辑,所述指令转换逻辑用于将所述有条件短前向分支转换成计算等效的一组一个或多个所断言指令。

【技术特征摘要】
2013.03.15 US 13/838,4501.一种处理有条件分支的处理器,包括: 指令提取逻辑,用于提取有条件短前向分支,所述有条件短前向分支包括有条件分支指令以及在所述有条件分支指令与由所述有条件分支指令指示的前向分支目标指令之间以程序次序顺序跟随所述有条件分支指令的一组一个或多个指令;以及 与所述指令提取逻辑耦合的指令转换逻辑,所述指令转换逻辑用于将所述有条件短前向分支转换成计算等效的一组一个或多个所断言指令。2.如权利要求1所述的处理器,其特征在于,所述指令转换逻辑用于去除所述有条件分支指令。3.如权利要求1所述的处理器,其特征在于,所述指令转换逻辑用于将在所述有条件分支指令与所述前向分支目标指令之间的所述一组一个或多个指令中的每一个从非断言转换成所断言指令。4.如权利要求1所述的处理器,其特征在于,所述指令转换逻辑用于将在所述有条件分支指令与所述前向分支目标指令之间的多个指令中的每一个从非断言转换成所断言指令。5.如权利要求1所述的处理器,其特征在于,所述指令转换逻辑用于输出表示所述计算等效的一组一个或多个所断言指令的信号,而不管所述有条件分支指令被预测为选取还是未选取。6.如权利要求1所述的处理器,其特征在于,所述指令转换逻辑包括位于所述处理器的流水线的解码级的硬件逻辑。7.如权利要求1所述的处理器,其特征在于,所述有条件分支指令与所述前向分支目标指令之间的所述一组一个或多个指令包括单个移动指令,并且所述指令转换逻辑用于将所述移动指令转换成有条件移动指令。8.如权利要求7所述的处理器,其特征在于,当所述有条件移动指令的条件为假时,所述有条件移动指令不引起异常。9.如权利要求1-7中任一项所述的处理器,其特征在于,所述指令转换逻辑用于输出表示所述计算等效的一组一个或多个所断言指令的信号,而无需所述指令转换逻辑知晓所述有条件分支指令的分支预测。10.如权利要求1-7中任一项所述的处理器,其特征在于,还包括与所述指令转换逻辑耦合的后端逻辑,所述后端逻辑用于执行所述计算等效的一组一个或多个所断言指令并且基于确定所述有条件分支指令应该已被选取,确定不更新反映所述计算等效的一组一个或多个所断言指令的执行的架构状态。11.如权利要求1-7中任一项所述的处理器,其特征在于,还包括与所述指令转换逻辑耦合的后端逻辑,所述后端逻辑用于执行所述计算等效的一组一个或多个所断言指令并且基于确定所述有条件分支指令应该未被选取,确定更新反映所述计算等效的一组一个或多个所断言指令的执行的架构状态。12.如权利要求1-7中任一项所述的处理器,其特征在于,所述指令提取逻辑用于总是提取在所述有条件分支指令与所述前向分支目标指令之间的一个或多个指令,而不管所述有条件分支指令的预测。13.—种处理有条件分支的方法,包括:提取有条件短前向分支,所述有条件短前向分支包括有条件分支指令以及在所述有条件分支指令与由所述有条件分支指令指示的前向分支目标指令之间以...

【专利技术属性】
技术研发人员:E·T·格罗科斯基M·G·迪克森Y·A·圣地亚哥M·奈克
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1