实现现代处理器间接转移预测的装置及方法制造方法及图纸

技术编号:7036563 阅读:273 留言:0更新日期:2012-04-11 18:40
本发明专利技术披露了实现现代处理器间接转移预测的装置及方法,其中装置包括:方向预测器在预测间接转移指令方向的同时选择模式历史记录的第一次访问索引和第二次访问索引,并通过该模式历史记录生成及输出相应的组-路指针;组-路指针寄存器保存模式历史记录输出的组-路指针;以及分支目标缓冲器建立子块和分配项,其中,子块为每一间接转移指令分配通过组-路指针索引的目标地址项;分配项用于记录每一间接转移指令目标地址项的使用情况。本发明专利技术在不需要大容量存储结构支持的基础上,可取得与直接地址预测相类似的预测效果,由此可提高处理器的能效性。

【技术实现步骤摘要】

本专利技术涉及现代微处理器及其应用系统的设计,尤其涉及实现现代处理器间接转移指令的预测的装置及方法。
技术介绍
现代高性能处理器利用分支指令预测技术开发指令级并行,从而提高处理器性能。之前的研究主要集中在开发高准确率的直接转移指令预测技术,而对于间接转移指令预测,通常很难达到较高的准确率。近年来,随着面向对象语言程序的广泛应用,间接转移指令使用的场合也更多了起来。该类型指令通常用于实现虚函数指针、函数指针以及 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结构),而对于拥有多个目标地址的间接转移指令,使用复杂的二级或多级预测器进行预测。kznec和Michaud提出了与该设计非常类似的一种预测器,由一个基础预测器及一系列能够捕捉非常长的历史信息的预测表组成;在预测时,选择历史信息最长的预测表中的命中项值作为输出结果。虚拟程序计数器(VPC,Virtual Program Counter)预测技术,侧重于使用已有的条件转移预测部件进行间接转移预测,它是将一条具多个目标地址的间接转移指令的每个目标地址等价地表示成一个虚拟的条件分支转移指令的转移目标地址;当进行间接转移指令预测时,VPC每个周期以不同的虚拟分支指令循环访问条件分支预测器,如图3所示,直到一条虚拟指令被预测为发生或达到循环访问的上界时才停止预测。该VPC技术的效果, 与流水线的长度以及间接转移目标地址的数目密切相关。以上研究提出的基于硬件的间接转移预测技术,使用分支转移历史信息(GHR)区分不同的间接转移场景,并直接将对应不同转移场景的目标地址保存在一个专用的存储部件中。这种使用专用部件一类技术的预测速度较快,但其额外的存储单元需求会在芯片中占用一定面积,并产生大量的能耗。而侧重使用已有分支预测部件的VPC技术虽可以取得较高的预测准确率,但这种需要多次循环才能完成一次间接转移的预测,一方面会阻碍处理器性能的进一步提升,另一方面会带来更多的能耗开销,从而导致处理器的能效性降低。
技术实现思路
本专利技术所要解决的技术问题是提供一种,能够在提高预测准确率的同时提高处理器的能效性。为了解决上述技术问题,本专利技术提供了一种实现现代处理器间接转移预测的装置,包括方向预测器、组-路指针寄存器以及分支目标缓冲器,其中方向预测器,用于在预测间接转移指令方向的同时选择模式历史记录的第一次访问索引和第二次访问索引,并通过该模式历史记录生成及输出相应的组-路指针;组-路指针寄存器,用于保存模式历史记录输出的组-路指针;分支目标缓冲器,用于建立子块和分配项,其中,子块为每一间接转移指令分配通过组-路指针索引的目标地址项;分配项用于记录每一间接转移指令目标地址项的使用情况。进一步地,模式历史记录生成的组-路指针为4位,通过每一表项的2个记录项分别保存生成的2位的组指针和2位的路指针并输出;组-路指针寄存器保存模式历史记录输出的4位组-路指针。进一步地,该装置还包括一移位器和一索引寄存器,方向预测器还包括一全局历史寄存器和一异或器;其中异或器,用于获取全局历史寄存器之值与程序计数器之值的异或值,作为模式历史记录的第一次访问索引;通过移位器将异或值左移一位的值作为模式历史记录的第二次访问索引。进一步地,方向预测器还包括第一多选器,其中分支目标缓冲器在预测的第一周期通过程序计数器被访问时,如果访问命中,则输出分配项;如果访问未命中,则通过预测程序中止并暂停流水线,直到所述间接转移完成;方向预测器在预测的第一周期通过第一多选器选择第一次访问索引,模式历史记录据第一次访问索引的索引结果作为所述组-路指针中的路指针获取,将该路指针与假设为0的组指针构成4位临时的组-路指针,分别通过2个记录项保存4位临时的组-路指针并输出;组-路指针寄存器保存模式历史记录输出的4位临时的组-路指针。进一步地,分支目标缓冲器的子块在预测的第二周期通过程序计数器作为标签被访问时, 如果访问命中,即该标签和间接转移指令的地址匹配,则从组-路指针寄存器获取临时的组-路指针,将通过该临时的组-路指针索引的目标地址项所存储的目标地址作为预测的间接转移指令的目标地址发射到流水线和指令缓存中;方向预测器在预测的第二周期通过第一多选器选择第二次访问索引,模式历史记录据第二次访问索引的索引结果作为组-路指针中的组指针获取,将该组指针与上一周期获取的所述路指针组合成4位完整的组-路指针,通过2个记录项项保存组合成的所述4 位完整的组-路指针并输出;组-路指针寄存器保存模式历史记录输出的4位完整的组-路指针。进一步地,分支目标缓冲器的子块在预测的第三周期通过程序计数器作为标签被访问时,如果访问命中,则从组-路指针寄存器获取完整的组-路指针,将通过该完整的组-路指针索引的目标地址项所存储的目标地址作为预测的间接转移指令的目标地址发射到流水线和指令缓存中;如果上一周期已发射目标地址,则之前发射的目标地址将被新发射的目标地址取代;如果访问未命中,则继续使用最近的已被发射的目标地址进行预测。进一步地,分支目标缓冲器本文档来自技高网
...

【技术保护点】
1.一种实现现代处理器间接转移预测的装置,其特征在于,包括方向预测器、组-路指针寄存器以及分支目标缓冲器,其中:方向预测器,用于在预测间接转移指令方向的同时选择模式历史记录的第一次访问索引和第二次访问索引,并通过该模式历史记录生成及输出相应的组-路指针;组-路指针寄存器,用于保存所述模式历史记录输出的所述组-路指针;分支目标缓冲器,用于建立子块和分配项,所述子块为每一间接转移指令分配通过所述组-路指针索引的目标地址项;所述分配项用于记录每一间接转移指令目标地址项的使用情况。

【技术特征摘要】

【专利技术属性】
技术研发人员:程旭谢子超宋天宝黄明凯史秦青陆俊林佟冬
申请(专利权)人:北京北大众志微系统科技有限责任公司
类型:发明
国别省市:11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1