[发明专利]控制分支预测逻辑的方法和装置有效
申请号: | 201310024377.6 | 申请日: | 2013-01-23 |
公开(公告)号: | CN103218209A | 公开(公告)日: | 2013-07-24 |
发明(设计)人: | P.E.沙特;R.A.希勒;M.R.塔布斯;A.J.穆夫 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 北京市柳沈律师事务所 11105 | 代理人: | 张贵东 |
地址: | 美国纽*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 控制 分支 预测 逻辑 方法 装置 | ||
技术领域
本发明一般涉及数据处理,尤其涉及处理器架构以及用在其中的分支预测逻辑。
背景技术
随着半导体技术在时钟速度的提高方面越来越接近实际极限地继续缓慢向前发展,设计师们越来越关注处理器架构中的并行性以便提高性能。在芯片级上,往往将多个处理核心布置在同一芯片上,它们以与独立处理器芯片,或某种程度上,与完全独立计算机几乎相同的方式起作用。另外,甚至在核心内,也通过专门用于处理特定类型的操作的多个执行单元的使用来应用并行性。在许多情况下也应用流水线,以便将可能需要多个时钟周期来执行的某些操作分解成几个阶段,以便使其他操作能够在较早操作完成之前开始。还采用多线程处理以便使多个指令流能够得到并行处理,从而在任何给定时钟周期中都能够进行更全面工作。
在处理器设计方面取得进步的另一个领域是分支预测的领域,该分支预测试图在执行条件分支指令之前,根据与分支指令相联系地执行的某种比较的结果,预测分支指令将分支到不同代码路径还是沿着相同代码路径继续下去。分支指令例如可以用于从高速缓存或更低级存储器中预取指令,以便当最终定下分支指令时缩短装载和执行那些指令的等待时间。另外,在高级流水线化架构中,分支预测可以用于在定下分支指令之前开始执行来自预测分支的指令,以便在定下分支指令之后可以尽可能早地提交那些指令的结果。
当正确预测了分支时,倘若在执行分支指令与为分支指令之后的执行预测的指令之间可能存在极短的等待时间,则可以使性质得到相当大提高。另一方面,当错误预测了分支时,则往往不得不刷新执行的流水线,并且使处理器的状态从根本上反绕,以便可以执行来自正确路径的指令。
因此,在技术上已经作了大量的努力来提高分支预测的精度,因此通过分支预测逻辑将错误分支预测的频率降到最低。许多分支预测逻辑实现例如依靠历史信息,并且基于如果上一次执行分支指令时发生了分支,则在下一次执行该分支指令时存在发生分支的可能性的假设。在许多实现中,例如,使用分支历史表来存储与特定分支指令相联系的条目,以便当遇到那些分支指令时,可以根据与这样的分支指令相联系存储的数据作出预测。
但是,在处理器中实现分支预测逻辑存在许多挑战。例如,提高分支预测逻辑的精度往往需要使用可以使分支预测减慢和增加实现逻辑所需的逻辑电路的数量的更复杂逻辑。关于基于历史的分支预测逻辑,精度往往与经由该逻辑存储的历史信息的数量成正比;但是,扩大分支历史表的存储容量需要附加逻辑电路。在许多应用中,希望使处理器芯片中专用于分支预测逻辑的逻辑电路的数量最小,例如,以便降低功耗和/或成本,或腾出额外的空间来实现其他功能。
另外,已经发现,分支预测算法往往不怎么适用于某些类型的程序代码。像,例如,二叉树搜索那样的一些程序代码实际上呈现随机分支特征,以及在分支指令的一次执行期间所作的分支判定可能提供不了在下一次执行该指令时将作出什么判定的见解。另外,在在处理核心中同时执行多个线程的多线程环境下,多个线程共享的分支预测表的有限大小可以导致历史信息随着遇到新分支指令而被频繁放弃,使得特定分支指令的历史信息到以后执行那个分支指令的时候可能不再处在分支预测表中。
事实上,已经发现,在一些情况下,当错误预测的百分比上升到错误预测的损失超过等待时间的水平时,分支预测实际上可能使性能下降,如果处理核心在尝试在适当代码路径中执行指令之前等待定下分支指令,则会出现该等待时间。
一些传统处理器设计提供了选择性禁用分支预测逻辑的能力。另外,一些传统处理器设计提供了保存和恢复分支预测逻辑的状态的能力。尤其,基于历史的分支预测逻辑趋向于随着收集到更多历史信息使精度随时间提高;但是,如果多个独立线程正在以有限的存储量访问分支预测逻辑,则一个线程的历史信息的收集可能使其他线程的历史信息被放弃。但是,通过保存和恢复分支预测逻辑的状态,往往可以为不同代码段“装填”分支预测逻辑,以便过去为那些代码段收集的历史信息在下一次执行那些代码段时更有可能驻留在分支预测逻辑中。
虽然选择性禁用分支预测逻辑和保存/恢复分支预测逻辑的状态的能力可以解决传统分支预测的一些缺点,但传统设计的特点是缺乏解决不同状况的灵活性,尤其在可以在上面执行具有极大不同运行特性的许多不同类型应用的更复杂和高性能数据处理系统中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310024377.6/2.html,转载请声明来源钻瓜专利网。