[发明专利]分支预测逻辑有效
申请号: | 201380006419.1 | 申请日: | 2013-01-02 |
公开(公告)号: | CN104067227B | 公开(公告)日: | 2017-05-10 |
发明(设计)人: | P.沙特;R.希勒;M.塔布斯;A.穆夫 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F9/46 |
代理公司: | 北京市柳沈律师事务所11105 | 代理人: | 张晓明 |
地址: | 美国纽*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 分支 预测 逻辑 | ||
技术领域
本发明总体上涉及数据处理,并且具体地说涉及处理器架构和其中使用的分支预测逻辑。
背景技术
随着半导体技术在时钟速度的增大上持续更接近实际限制,架构越来越多地聚焦于在处理器架构中的并行以获得性能改善。在芯片级处,多个处理核心经常被布置在同一芯片上,以与独立的处理器芯片非常相同的方式来运行,或在一定程度上以与完全独立的计算机非常相同的方式来运行。另外,即使在核心内,通过使用专门处理特定类型的操作的多个执行单元来使用并行化。也在许多情况下使用流水线,使得可能花费多个时钟周期来执行的特定操作被划分为多个阶段,使得在完成较早的操作之前开始其他操作。多线程也用于使得多个指令流并行地被处理,使得在任何给定的时钟周期中执行更多的整体工作。
其中已经在处理器设计中作出了进步的另一个领域是分支预测的领域,该分支预测试图在执行条件分支指令之前基于与该分支指令相关联地执行的一些组件的结果来预测那个分支指令是否将分支到不同的代码路径或继续沿着相同的代码路径。分支预测可以用于例如从高速缓存或低级存储器预取指令,以减少当最后解决该分支指令时加载和执行那些指令的延迟。另外,在高度流水线的架构中,可以使用分支预测来启动在解决分支阵列之前从预测的分支执行指令,使得可以在解决分支指令后尽可能快地提交那些指令的结果。
当正确地预测分支时,假定在执行分支指令和已经被预测在分支指令后执行的指令之间存在很少的延迟,则可以获得相当大的性能增益。另一方面,当误预测分支时,经常需要将执行的流水线清除,并且,处理器的状态实质上倒回,使得可以执行来自正确的路径的指令。
结果,已经在本领域中作出了相当大的努力来改善分支预测的精度,并且因此最小化由分支预测逻辑作出分支误预测的频率。许多分支预测逻辑实现方式例如依赖于历史信息,并且基于下述假设:如果最后一次执行分支指令时获取了分支,则存在下一次执行分支指令时将获取到该分支的可能性。在许多实现方式中,例如,使用分支历史表格来存储与特定分支指令相关联的条目,使得当遇到那些分支指令时,可以基于与这样的分支指令相关联地存储的数据来作出预测。
然而,在处理器中的分支预测逻辑的实现提供了多个挑战。例如,改善分支预测逻辑的精度经常要求使用更复杂的逻辑,这回使得分支预测变慢,并且向用于实现该逻辑所需的逻辑电路的数量增加。对于基于历史的分支预测逻辑,精度经常与由该逻辑存储的历史信息的数量直接成正比;然而,增大分支预测表格的存储容量要求另外的逻辑电路。在许多应用中,期望最小化专用于分支预测逻辑的处理器芯片中的逻辑电路的数量,例如,降低功耗和/或成本或者释放另外的空间以实现其他功能。
另外,已经发现分支预测算法经常对于特定类型的程序代码不工作良好。诸如二进制树搜索的一些程序代码实际上显示任意的分支特性,并且在分支指令的一次执行期间作出的分支确定不可提供下一次执行该指令时将作出什么确定的洞察力。另外,在其中在处理核心中同时执行多个线程的多线程环境中,由多个线程共享的分支预测表格的有限大小可以导致当遇到新的分支指令时频繁丢弃历史信息,使得用于特定分支指令的历史信息可能在以后执行分支指令的时间之前不再位于分支预测表格中。
事实上,已经发现在一些情况下,当误预测的百分比增大到误预测的惩罚超过如果在试图以正确的代码路径执行指令之前处理核心等待解决分支指令则将出现的延迟时分支预测可以实际上降低性能。
一些传统处理器设计已经提供了用于选择性地禁止分支预测逻辑的能力。另外,一些传统处理器设计已经提供了保存和恢复辅助执行单元的状态的能力。基于历史的辅助执行单元特别是趋向于当收集更多的历史信息时随着时间在精度上改善;然而,如果多个独立的线程在使用有限数量的存储量访问分支预测逻辑,则用于一个线程的历史信息的收集可以使得丢弃用于其他线程的历史信息。然而,通过保存和恢复分支预测逻辑的状态,经常可以对于不同的代码部分“准备”分支预测逻辑,使得在过去对于那些代码部分收集的历史信息更可能在下一次执行那些代码部分时驻留在分支预测逻辑中。
虽然用于选择性地禁止分支预测逻辑和保存/恢复分支预测逻辑的状态的能力可以处理传统分支预测的一些缺点,但是传统设计仍然其特征在于缺少处理不同情况的灵活性,特别是在更复杂和高性能数据处理系统中,其中,可以在这样的系统上执行具有极大不同的操作特性的多个不同类型的应用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201380006419.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:基于哈希值比较的文件上传
- 下一篇:智能设备的菜单配置方法和系统