通过循环结束分支来抑制分支历史寄存器的更新制造技术

技术编号:2831766 阅读:332 留言:0更新日期:2012-04-11 18:40
检测终止代码循环的条件分支指令,且防止分支历史寄存器(BHR)更新以存储循环结束分支评估。这防止实施循环迭代的分支从所述BHR中取代其它分支评估历史。可通过编译器使用特定类型分支指令或在循环结束分支指令的操作码中插入指示位来静态地检测所述循环结束分支。循环结束分支指令可被动态地检测为任何后向分支,或者通过在更新所述BHR时存储最后一个或若干个分支指令的PC并对照最后分支PC(LBPC)寄存器检验分支指令的所述PC而动态地检测。如果所述分支PC匹配,那么抑制对所述BHR的更新。将循环迭代分支保持在所述BHR之外会改进分支预测训练时间和准确性。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术大体上涉及处理器领域,且更确切地说涉及一种通过用循环结束分支指令抑 制对分支历史寄存器的更新而改进分支预测的方法。技术背景微处理器在广泛的应用中执行计算任务。几乎始终需要改进的处理器性能以允许通 过软件变化来实现较快的操作和/或增加的功能性。在许多嵌入式应用(例如,便携式电 子装置)中,节省功率也是处理器设计和实施的一个目标。许多现代处理器使用管线结构,其中连续的指令(各具有多个执行步骤)在执行时 重叠。为了实现改进的性能,指令应当连续流动穿过管线。任何导致指令在管线中停滞 的情形均可对性能造成不利影响。如果从管线中冲洗(flush)指令并随后重新取得指令,那么性能和功率消耗均会受到损害。大多数程序包含条件分支指令,直到在管线深处评估指令时才会知道其实际分支行 为。为了避免因等待对分支指令的实际评估而产生的停滞,现代处理器可采用某种形式 的分支预测,借此在管线中早期预测条件分支指令的分支行为。基于预测出的分支评估, 处理器以推测方式从预测出的地址取得(预取)并执行指令,所述预测出的地址是分支 目标地址(如果预测会采用分支)或分支指令之后的下一顺序地址(如果预测不会采用 分支)。当确定了实际分支行为时,如果分支被错误预测,那么必须从管线中冲洗以推测 方式取得的指令,并从下一正确地址取得新的指令。响应于错误的分支预测而预取指令 可对处理器性能和功率消耗造成不利影响。因此,改进分支预测的准确性是一个重要的设计目标。已知的分支预测技术包含静态和动态两种预测。可通过编程器和/或编译器来静态地 预测一些分支指令的可能行为。分支预测的一个实例是错误检验例行程序。代码通常会正确执行,且错误是罕见的。因此,实施遇错误分支(branch cm error)的分支指令将 在非常高的百分比的时间中评估不采用。此种指令可在操作码中包含静态分支预测位, 所述预测位是由编程器或编译器在知道分支条件的最可能结果的情况下设定的。动态预测一般基于正被预测的分支指令和/或同一代码中的其它分支指令的分支评 估历史(且在一些情况下是分支预测准确性历史)。对实际代码的广泛分析指示,最近过去的分支评估模式可能是对未来分支指令的评估的良好指示。图1中描绘的一种己知形式的动态分支预测利用分支历史寄存器(BHR) 100来存 储过去n个分支评估。在简单的实施方案中,BHR30包括移位寄存器。将最近的分支评 估结果移入(例如,1指示采用分支且O指示不采用分支),而寄存器中的最早过去的评 估被取代。处理器可针对每个分支指令维持局部BHRIOO。或者(或另外),BHR100可 含有对所有条件分支指令的最近过去的评估,其有时在此项技术中称为全局BHR或 GHR。如本文所使用,BHR指代局部和全局分支历史寄存器两者。如图1中所描绘,BHR IOO可将分支预测器表(BPT) 102编索引,所述BPT 102 同样可以是局部的或全局的。BHR IOO可直接将BPT102编索引,或者可在BPT索引逻 辑104中与例如分支指令的程序计数器(PC)的其它信息组合。另外可利用对BPT索引 逻辑104的其它输入。BPT索引逻辑104可将输入链接在一起(此项技术中通常称为 gselect),对输入进行异或运算(gshare),执行散列函数,或以多种方式组合或转换输入。在一个实例中,BPT102可包括多个饱和计数器,其MSB充当双模态分支预测^H。 举例来说,每个表条目可包括2位计数器,所述计数器采用四种状态中的一种,所述四 种状态中的每一者被指派有加权预测值,例如ll一强力预测采用IO —弱预测采用Ol —弱预测不采用OO —强力预测不采用每当相应的分支指令评估采用时,所述计数器递增,且每当指令评估不采用 时,所述计数器递减。计数器的MSB是双模态分支预测器,其将预测一个分支是采用还 是不采用,而不管基础预测的强度或权重如何。饱和计数器减少不频繁的分支评估的预 测错误。始终单向评估的分支将使计数器饱和。相反地不频繁评估将改变计数器值(以 及预测的强度),但不是双模态预测值。因此,不频繁的评估将只错误预测一次而不是两 次。饱和计数器的表只是说明性实例, 一般来说,BHT可将含有多种分支预测机制的表 编索引。不论在BPT102中采用哪种分支预测机制,BHR100 (单独的或与例如分支指令PC 的其它信息组合)将BPT102编索引以获得分支预测。通过在BHR100中存储先前分支 评估并在分支预测中使用所述评估,使正被预测的分支指令与过去的分支行为相关一一 在局部BHR 100的情况下为其自身的过去行为而在全局BHR100的情况下为其它分支指令的行为。这种相关至少在高度重复的代码的情况下可能是准确的分支预测的关键。请注意,图1描绘存储在BHR100中的分支评估,即对条件分支指令的实际评估, 其可能只有在管线深处(例如在执行管级中)才被了解。虽然这是最终结果,但在实践 中,许多高性能处理器将来自BPT102的预测出的分支评估存储在BHR100中,并之后 在证实预测错误时作为错误预测恢复操作的一部分而对BHR IOO进行校正。为了清晰起 见,附图未反映这种实施特征。可能会降低采用BHR 100的分支预测器的功效的一种常用代码结构是循环。循环以 测试循环结束条件的条件分支指令结束,所述循环结束条件例如为每次通过循环时递增 的索引变量是否己达到循环结束值。如果没有,那么执行形成分支回到循环的开始处以 进行另一次迭代和另一次循环结束条件分支评估。相对于n位BHR 100,存在关于循环 的三种相关情况循环不执行;循环通过m次迭代执行(其中iiKn);和循环执行m次 (其中m > = n)。如果循环不执行,那么循环开始处的就向分支在循环主体上形成分支,从而产生一 个采用的分支评估。这对BHR IOO具有最小影响,因为BHR 100中的过去分支评估历史 只由一个分支评估取代(实际上,预测准确性可通过与这个分支评估的相关来改进)。如果循环通过m次迭代来执行(其中m〉-n),那么循环结束分支指令的采用 后向分支使BHR 100饱和。也就是说,在循环结束时,n位BHR将始终含有恰好n—l 个一且后面跟着单个零,这对应于由循环迭代产生的较长系列的采用的评估,且在循环 终止时以单个未采用评估结束。这实际上损害BHR100的功效,因为与先前分支评估(对 于局部或全局BHR 100)的所有相关全部丢失。在此情况下,BHR IOO将很可能映射到 相同的BPT102条目以获取给定的分支指令(视对BPT索引逻辑104的其它输入而定), 而不是映射到含有反映分支指令与先前分支评估的相关的分支预测的条目。此外,饱和的BHR 100可增加BPT 102中的混淆。也就是说,如果BHR100直接将 BPT 102编索引,那么具有许多迭代的循环之后的所有分支指令将映射到相同的BPT 102 条目。即使在BHR100与其它信息组合的情况下,混淆的可能性也会增加。这不但对于 循环之后的分支指令而且对于混淆到其在BPT 102中的条目的所有分支指令,均会不利 地影响预测准确性。如果循环通过m次迭代执行(其中m < n),那么BHR 100不饱和且保持某一先前分 支评估历史。然而,代表先前分支评估历本文档来自技高网...

【技术保护点】
一种分支预测方法,其包括:    响应于分支指令的性质,在执行所述分支指令时视情况抑制对分支历史寄存器(BHR)的更新。

【技术特征摘要】
【国外来华专利技术】US 2005-2-24 11/066,5081.一种分支预测方法,其包括响应于分支指令的性质,在执行所述分支指令时视情况抑制对分支历史寄存器(BHR)的更新。2. 根据权利要求l所述的方法,其中所述分支指令的性质为所述分支是后向的。3. 根据权利要求1所述的方法,其中所述分支指令的性质为所述分支是循环结束分支。4. 根据权利要求3所述的方法,其中所述分支指令的PC与存储最后分支指令的PC的 最后分支PC (LBPC)寄存器的内容匹配以更新所述BHR。5. 根据权利要求4所述的方法,其中所述分支指令的PC与存储最后多个分支指令的 PC的多个LBPC寄存器中的任一者的内容匹配以更新所述BHR。 根据权利要求3所述的方法,其中所述分支指,的性质为所述分支指令是由编译器 针产生以用于结束分支的唯一分支指令。6.7. 根据权利要求3所述的方法,其中所述分支指令的性质为所述分支指令包含指示其 为循环结束分支指令的一个或一个以上位。8. —种处理器,其包括分支预测器,其可操作以预测对条件分支指令的评估;指令执行管线,其可操作以基于来自所述分支预测器的预测以推测方式取得并执 行指令;分支历史寄存器(BHR),其可操作以存储所述对条件分支指令的评估;以及 控制电路,其可操作以响应于所述分支指令的性质而抑制存储所述对条件分支指 令的评估。9. 根据权利要求8所述的处理器,其进一步包括最后分支PC (LBPC)寄存器,所述 LBPC寄存器可操作以存储更新所述BHR的分支指令的PC,且其中所述控制电路 可操作以在所述分支指令的PC与所述LBPC寄存器的内容匹配时抑制存储所述对 条件分支指令的评估。10. 根据权利要求9所述的方法,其进一步包括多个LBPC寄存器,所述多个LBPC寄 存器可操作以存储更新所述BHR的多个分支指令的PC,且其中所述控制电路可操 作以在所述分支指令的PC与任何LBPC寄存器的内容匹配时抑制存储所述对条件 分支指令的评估。...

【专利技术属性】
技术研发人员:博胡斯拉夫雷赫利克
申请(专利权)人:高通股份有限公司
类型:发明
国别省市:US[美国]

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

1
相关领域技术
  • 暂无相关专利