[发明专利]用于改进处理器中分支预测的方法和装置有效
申请号: | 200710128134.1 | 申请日: | 2007-07-06 |
公开(公告)号: | CN101101544A | 公开(公告)日: | 2008-01-09 |
发明(设计)人: | J·K·P·奥布赖恩;K·M·奥布赖恩 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 北京市中咨律师事务所 | 代理人: | 于静;李峥 |
地址: | 美国*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 改进 处理器 分支 预测 方法 装置 | ||
技术领域
本申请一般涉及数据处理,并且特别地,涉及编译源代码以生成可执行代码。更特别地,本申请涉及一种编译方法,用于改进无硬件分支预测但却支持分支提示指令的处理器中的分支预测。
背景技术
在单元处理器(cell processor)体系结构中,协同处理器(synergisticprocessor)元件被严重流水线化并且分支误预测损失高,更明确地说是18个循环(cycles)。另外,硬件的分支预测策略是简单假设所有的分支,包括无条件分支,均不被采纳。换句话说,仅在流水线的后期才检测分支,此时在行进中(in flight)已经存在多个落空(fall through)指令。这种设计的目的是为了获得降低的硬件复杂度、较快的时钟周期,以及增加的可预测性,这对于多媒体应用来说是重要的。
由于执行采纳分支(taken branch)比落空路径昂贵得多,因此编译器首先试图通过本领域技术人员已知的多种技术来消除采纳分支。if-then-else(如果-那么-否则)构造的一种有效方法是通过使用选择指令的“if-conversions(如果-转换)”。另一种方法是确定程序中分支的可能结果(通过编译器分析或经由用户指示的方式),以及执行代码重构技术来从落空路径中移出冷路径(cold path)。
然而,实际上很多采纳分支在诸如函数调用、函数返回、循环闭合分支,以及一些无条件分支的情况下是不能够被消除的。为了促进这种可预测采纳分支的执行,协同处理器元件提供了分支提示指令,称为“对分支的提示(Hint for Branch)”或hbr。该指令指定了分支的位置以及代码执行中给定的被提示分支所期望的目标地址。当足够早地调度分支指令提示时(至少在目标分支前的11个循环),从存储器预取来自被提示分支目标的指令,并且将其插入到紧接在被提示分支之后的指令流中。当正确提示分支时,分支延迟实际上是一个循环;否则,正常的分支误预测损失适用。
所期望的分支结果可以通过分支仿形(profiling)来测量、通过直观推断集合来静态地估计,或者通过expect内置(built-ins)或exec_freq范型(paradigms)由用户来提供。开发者或编辑者然后可以在高于给定阈的、已知或静态预测的采纳概率的情况下为分支插入分支提示。无条件分支也是分支提示指令的良好候选。在函数返回、经由指示器的函数调用,以及产生间接分支的所有其它情况前使用分支提示指令的间接形式。
对于循环闭合分支,编译器可以将分支提示指令移到该循环外来消除提示指令的重复执行。循环是当条件为真时被重复执行的一组指令。该类型的优化是有可能的,因为每次只允许一个显著的(outstanding)分支提示,并且该提示在被另一提示替换之前保持有效。由于分支提示指令通过相关的、8位带符号的立即字段(immediate field)来指示其所提示的分支的地址,因此分支提示指令及其分支指令必须在彼此的256个指令内。
因而,只可以将分支提示指令从小循环移出到中等大小的循环。此外,仅在循环不含控制流或其它被提示分支时,才可以将提示移到循环外,因为每次至多只可以有一个显著的提示。尽管循环闭合分支是用于提示的固有候选,然而循环外的分支随后将总是蒙受分支误预测损失。
发明内容
文中所描述的示例性实施例认识到了现有技术的缺点并且在编译器中提供了一种机制,用于改进支持分支提示指令的处理器中的分支预测。所述编译器接收指令序列,其中所述指令序列包括循环。所述编译器插入寄存器形式(register form)分支提示指令,所述分支提示指令标识循环闭合分支语句及其所期望的目标地址。所述编译器插入比较和选择指令序列,其在分支采纳的目标地址与落空的目标地址之间进行逻辑选择。所述选择指令提供所选择的值作为分支目标地址。在执行时,对分支的提示或hbr将使用所选择的值来标识实际的目标地址。
附图说明
在所附权利要求中阐述了认为是本发明特色的新颖性特征。然而,结合附图阅读时,通过参照下文的详细描述,将最好地理解示例性实施例以及使用的优选模式,及其其它目的和优点,其中:
图1是其中可以实现示例性实施例的方面的数据处理系统的框图;
图2描绘了其中可以实现说明性实施例的方面的Cell(单元)BE芯片的示例图;
图3是依照示例性实施例说明了协同处理器元件中的指令处理的例子的框图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710128134.1/2.html,转载请声明来源钻瓜专利网。