处理器分支预测研究的历史及现状.pdfVIP

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
处理器分支预测研究的历史和现状 冯子军 肖俊华 章隆兵 摘要 在过去十几年中,分支预测技术一直是提高处理器性能的重要方法,工业界和学术界对之进行了大量研究。 分支预测的本质是克服指令控制相关,提高指令并行度。随着研究的不断深入,当前学术界认为分支预测是一个 指令学习的过程,这就使得对分支预测的研究出现了新的趋势。本文对分支预测技术的历史和研究现状进行了归 纳,以便从总体上了解分支预测技术的发展过程。 1 引言 过去的十几年里,分支预测技术一直是提高通用处理器性能的重要方法。分支预测的本质是 克服指令控制相关,提高指令并行度,从而使得处理器的性能得到提高。在这方面学术界和工业 界都进行了大量的研究和实践,分支预测的重要性体现在以下几个方面: 首先,现在的通用处理器大多采用深度流水线和宽发射机制,分支预测是两者的关键支撑技 术。虽然前两年英特尔(Intel )的奔腾4 (Pentium4 )靠深度流水提高主频一直为人所诟病,但是 同时应该注意到没有一定深度的流水,处理器频率就不可能太高,也就不会有很高的性能。目前 x86 处理器一般都有 20 -30 级的流水线。此外展望新世纪体系结构时候,耶鲁.帕特(Yale.Patt ) 预测宽发射将成为单芯片集成 10 亿晶体管主要解决方案之一[1],而且宽发射也是提高单片处理器 性能的重要手段之一,最近英特尔的新处理器Conroe就从原先奔腾的三发射提高到四发射,使得 [2] 处理器性能提高 30 %也是例证 。 简单的分析表明:在当前流行的深流水线宽发射体系结构中,分支预测率会严重影响取指带 宽的利用率。在 5 发射 10 级流水线条件下,预测准确率为 90%时,带宽会浪费 47% ;而如果准 确率提高到 96%则带宽浪费可降低到 26% (一般处理器设计为2 到 8 发射,此处为了计算方便假 定 5 发射)。 另外,分支预测技术不仅在高性能通用处理器中采用,而且在嵌入式处理器也广泛采用,所 以作为一个处理器设计者,我们应该知道当前存在的分支预测的各种算法及其优缺点,这样才能 对功耗和性能进行权衡。事实上,一种分支预测机制可能在某些应用中可以提高运算效率,但在 另一些应用可能效果就不明显,因此设计者需要对不同应用采用不同的分支预测解决方案。 还应该指出,很好地理解分支指令对微处理器的设计至关重要,分支指令是计算机不同于计 算器的最重要区别,使得计算机得以超越简单的数字计算功能转变为可以完成各种复杂任务和运 算的信息处理装置。分支指令决定了程序从取指令到执行指令的路径,对分支指令的特性和行为 理解深刻就可以帮助处理器设计者来平衡处理器结构。在程序里面分支指令组合起来就形成了程 序分支行为,后面的介绍将说明不同分支预测机制的提出就是根据这些程序行为来进行设计和改 进的。分支行为是取指单元设计必须考虑的关键因素,而掌握更复杂的分支特性,比如分支相关, 就能很好地帮助我们对不同应用选择和改进分支预测。 综上所述,可以知道分支预测的重要性,本文就处理器的分支预测技术的过去、现在和将来 做一下总结和展望。本文首先介绍分支指令的性质和分支行为的一些属性,其次介绍分支预测的 发展历程和主要的分支预测方法,然后介绍分支预测的最新进展,最后预测未来处理器设计分支 可能会出现的问题和发展趋势。 2 分支行为 分支预测器设计的本质是在对分支指令行为认识的基础上,提出分支指令的预测机制,从而 减少分支惩罚,也就是分支预测误预测导致的流水线等待。一组分支指令组合起来就成为程序的 分支行为。程序分支行为非常复杂,国外学术界作了大量的研究。这里只介绍一些基本的特点, 以便更好地了解后面重点说明的预测机制。下面我们就分别简单介绍一下分支指令属性和程序分 支的行为。 2.1 分支指令的基本属性 分支指令总的来说有三个基本属性:分支指令的类型、分支指令发生的频率和分支指令的成 功率。分支指令的类型可以分为条件分支指令和无条件分支指令,由于分支指令目标地址的不同, 无条件分支又可以进一步分为立即分支指令,间接分支指令和返回分支指令。立即分支指令就是 分支的地址就在分支指令中,一般都是直接跳转,比如跳转(jump )这类指令;间接分支就是分 支的目标地址不在分支指令中,而是从其他寄存器中取得;返回型分支的分支目标地址是从链接 寄存器(Link register )或者堆栈中得到,一般是程序返回使用。

文档评论(0)

xiaofei2001128 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档