[发明专利]实现现代处理器间接转移预测的装置及方法有效
申请号: | 201110235512.2 | 申请日: | 2011-08-16 |
公开(公告)号: | CN102306094A | 公开(公告)日: | 2012-01-04 |
发明(设计)人: | 程旭;谢子超;宋天宝;黄明凯;史秦青;陆俊林;佟冬 | 申请(专利权)人: | 北京北大众志微系统科技有限责任公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 栗若木;王漪 |
地址: | 100080 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 实现 现代 处理器 间接 转移 预测 装置 方法 | ||
技术领域
本发明涉及现代微处理器及其应用系统的设计,尤其涉及实现现代处理器间接转移指令预测的装置及方法。
背景技术
现代高性能处理器利用分支指令预测技术开发指令级并行,从而提高处理器性能。之前的研究主要集中在开发高准确率的直接转移指令预测技术,而对于间接转移指令预测,通常很难达到较高的准确率。近年来,随着面向对象语言程序的广泛应用,间接转移指令使用的场合也更多了起来。该类型指令通常用于实现虚函数指针、函数指针以及Switch-Case语句等常见的数据结构。此外,Intel Pentium M处理器中也已经加入了专用的间接转移预测部件。因此,提高间接转移预测的准确率,对处理器性能的提升具有重要意义。
间接转移指令的转移目标地址保存在其指令指定的寄存器中,该寄存器中的值可能会随着程序的执行而发生各种变化,即可能存在多个转移目标地址。现代处理器通常使用分支目标缓冲器(BTB,Branch Target Buffer)和方向预测器对分支指令进行预测。其中,BTB用来负责记录分支转移指令的目标地址,而方向预测器则用来预测该分支转移指令执行的方向,即预测是否进行转移。然而,这种传统的分支转移预测方式对直接转移有着很高的分支转移预测效率,但是对间接转移指令的预测准确率却很低。首先,是由于方向预测器总是预测跳转与否(在使用预译码的处理器中,间接转移指令必定会跳转,故分支方向预测器不必对该类指令的方向进行预测);其次,由于BTB结构是一种缓存(Cache)结构,其记录的每个目标地址只能使用指令地址进行索引,即每个分支指令最多只有一个目标地址与之对应,如图1所示。因此,BTB结构只能记录最近一次间接转移指令的目标地址。当间接转移指令拥有多个目标地址时,BTB的预测准确率会很低。
已有的一些使用专用部件的间接转移预测技术,可以有效地提升间接转移预测准确率。Chang等人提出的TTC结构,使用记录在全局历史寄存器(GHR,Global History Register)中的分支转移历史信息区分不同的间接转移场景,并使用一个类似Cache结构的专用结构记录各个间接转移场景下间接转移目标地址及其索引,如图2所示,其设计类似两级分支预测方案(即异或器XOR前的一级与XOR后的一级)。当取得一条间接转移指令时,TTC预测器(其结构如图2所示右端)通过异或器XOR获取程序计数器(PC)和分支转移历史信息(GHR)的异或值作为索引,获得预测的目标地址。当该间接转移指令提交时,使用正确的目标地址更新对应的TTC项。
通过组合使用多个目标地址预测器,Driesen等人提出了另一种直接地址预测技术,即Cascade预测器。该方法对于可简单预测(只有一个目标地址)的间接转移指令使用简单的一级预测器预测(通常为BTB结构),而对于拥有多个目标地址的间接转移指令,使用复杂的二级或多级预测器进行预测。Seznec和Michaud提出了与该设计非常类似的一种预测器,由一个基础预测器及一系列能够捕捉非常长的历史信息的预测表组成;在预测时,选择历史信息最长的预测表中的命中项值作为输出结果。
虚拟程序计数器(VPC,Virtual Program Counter)预测技术,侧重于使用已有的条件转移预测部件进行间接转移预测,它是将一条具多个目标地址的间接转移指令的每个目标地址等价地表示成一个虚拟的条件分支转移指令的转移目标地址;当进行间接转移指令预测时,VPC每个周期以不同的虚拟分支指令循环访问条件分支预测器,如图3所示,直到一条虚拟指令被预测为发生或达到循环访问的上界时才停止预测。该VPC技术的效果,与流水线的长度以及间接转移目标地址的数目密切相关。
以上研究提出的基于硬件的间接转移预测技术,使用分支转移历史信息(GHR)区分不同的间接转移场景,并直接将对应不同转移场景的目标地址保存在一个专用的存储部件中。这种使用专用部件一类技术的预测速度较快,但其额外的存储单元需求会在芯片中占用一定面积,并产生大量的能耗。而侧重使用已有分支预测部件的VPC技术虽可以取得较高的预测准确率,但这种需要多次循环才能完成一次间接转移的预测,一方面会阻碍处理器性能的进一步提升,另一方面会带来更多的能耗开销,从而导致处理器的能效性降低。
发明内容
本发明所要解决的技术问题是提供一种实现现代处理器间接转移预测的装置及方法,能够在提高预测准确率的同时提高处理器的能效性。
为了解决上述技术问题,本发明提供了一种实现现代处理器间接转移预测的装置,其特征在于,包括分支方向预测器、目标地址映射装置以及分支目标缓冲器,其中:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京北大众志微系统科技有限责任公司,未经北京北大众志微系统科技有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110235512.2/2.html,转载请声明来源钻瓜专利网。