本发明专利技术提供一种分支预测装置、分支预测方法以及处理器,该分支预测装置通过使用保存多个分支命令的最近的分支结果的分支历史寄存器(14)的输出所计算的索引来读出分支历史图表(15),该分支预测装置设置有检测不同的地址的分支命令的出现频度的频度检测单元(18~20);和根据所检测的出现频度来变更分支历史寄存器的有效位数的位宽变更单元(16、21)。该分支预测装置即使在分支结果较强依存于最近的分支履历的程序中,即使在存在多个分支命令的程序中,也能以分支历史图表的较少容量来维持较高的预测精度。
【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及使用分支历史寄存器和分支历史图表进行分支预测的技术,其中该分支历史寄存器保存多个最近的分支命令的分支结果;该分支历史图表保存预测信息,该预测信息表示按照每个索引预测出分支命令进行分支的准确度。
技术介绍
在具有管路功能的处理器中,为了最大限度地发挥性能,使用分支预测装置来预测分支命令是否进行分支,从而提前进行处理。当该预测失误时,必须返回原处。这意味着提前进行的处理被浪费,需要另外进行用于返回的处理。由于发生这种惩罚,所以预测精度大大影响处理器的性能。因此,对于分支预测装置,强烈要求可以以更高的精度来进行预测。作为现有的分支预测装置,例如有专利文献1中描述的2电平型分支预测装置。该类型的分支预测装置因其可以得到较高的预测精度而受到瞩目。图1A是说明2电平型的以往的分支预测装置所进行的分支预测的图。分支历史寄存器702是保存多个最近的分支命令的分支结果来作为履历的寄存器。1个分支命令的分支结果用1位的值来表现。例如分支不成立用“0”、分支成立用“1”来表现。该分支结果被逐位保存在寄存器702中。由此,在寄存器702中保存有最近的该位数个分支结果。例如在位数为4位、当前内容为“1001”的状态下执行分支成立的分支命令时,其内容被更新为“0011”。“异或”(XOR)运算电路703计算分支历史图表704内保存的内容和分支命令地址值701之间的“异或”。该“异或”用作分支历史图表704的索引。在分支历史图表704中,保存有按照每个索引表示分支命令进行的分支成立的准确度的预测信息即状态。该状态(预测信息)用2位来表现,该用2位表现的值越大,表示分支成立的准确度越高。由此,当该值为“11”或“10”时,预测为分支命令进行的分支成立,当该值为“01”或“00”时预测为分支不成立。图1B是说明分支历史图表704中保存的状态的更新方法的图。作为该状态的值根据实际的分支结果来更新。该更新如图1B所示,在分支成立时以“11”为上限将值进行递增,在分支不成立时以“00”为下限将值递减来进行更新。通过进行这种更新,根据执行的程序使分支历史图表704最佳化,使其始终维持较高的预测精度。但是,处理器的性能一般进行基准测试来测量。作为该测试所用的软件,公知的有SPEC(Standard Performance Evaluation Corporation)基准和TPC(Transaction Processing Performance Council)-C基准等。SPEC基准中,作为表示处理器的性能的指标有整数运算的性能评价用的SPECint和浮动小数点运算的性能评价用的SPECfp等。另外的TPC-C基准对事物处理系统进行模拟来评价处理器的性能。图2是按照基准来说明分支历史寄存器702的位宽和分支预测的错误率的关系的图。该错误率为平均值。如该图2所示,在2电平型的分支预测装置中,分支历史寄存器702的位宽(数)越大,SPEC基准中的错误率越低,TPC-C基准中的错误率越高。由此,在安装了该分支预测装置的处理器中,分支历史寄存器702的位宽(数)越大,在SPEC基准中的性能越高,而在TPC-C基准中的性能越低,从而具有难以兼顾的问题。作为各自的基准特征,在SPEC基准中,具有存在对最近的分支命令的分支/非分支的履历强烈依存的命令串,而分支命令数自身比较少的特征。另外的TPC-C基准中,具有几乎不依存于最近的分支命令的分支/非分支的履历而分支命令数自身相对地非常多的特征。由此,根据这种特征可以变更分支历史寄存器702的位宽。分支历史图表704的索引如上所述,为分支历史寄存器702的值和分支命令地址值701的XOR(G-share)。因此,分支历史寄存器702的位宽越大,相同地址值701的分支命令的预测信息在分支历史图表704内所占的区域越大,可以不与其他的分支命令共享地保存的分支命令数减少。由此,如果增大分支历史寄存器702的位宽,则分支命令数较少的SPEC基准中可以不与其他的分支命令共享地保存预测信息的分支命令数至少可以按照最近的每个分支命令的履历模式(分支/不分支的组合)独立地保存预测信息,可以认为能提高预测精度。另外的TPC-C基准中,由于分支命令数较多,所以可以独立地保存预测信息的分支命令数减少,可以认为预测精度下降。在专利文献2中,记载了用多个方法来进行分支预测,将其中一种方法用于实际的分支预测中的分支预测装置。在专利文献3中,记载了测定模块在进行各种处理时的性能,以变更配置的处理器。这些专利文献2、3中描述的技术都着眼于分支预测中的分支预测错误率。但是,该错误率有时由于分支预测装置自身的预测精度低下而变大。因此,在应对上述那样的程序(基准)具有的特征(分支命令的出现频度)方面,有可能不太妥当。专利文献1日本特开2003-5956号公报专利文献2日本特开平10-240526号公报专利文献3日本特开2002-163150号公报
技术实现思路
本专利技术的目的在于,提供一种与执行的程序无关,可以始终维持较高的预测精度的分支预测装置以及安装了该装置的处理器。本专利技术的分支预测装置以使用分支历史寄存器和分支历史图表来进行分支预测为前提,其中上述分支历史寄存器保存多个最近的分支命令的分支结果来作为履历;上述分支历史图表保存预测信息,该预测信息表示按照每个使用该分支历史寄存器保存的分支结果所计算的索引,来预测出分支命令进行分支的准确度,上述分支预测装置具有检测不同的地址的分支命令的出现频度的频度检测单元;和根据频度检测单元检测的出现频度,来动态变更分支历史寄存器中为有效的位宽的位宽变更单元。本专利技术的分支预测方法以使用分支历史寄存器和分支历史图表来进行分支预测为前提,其中上述分支历史寄存器保存多个最近的分支命令的分支结果来作为履历;上述分支历史图表保存预测信息,该预测信息表示按照每个使用该分支历史寄存器保存的分支结果所计算的索引,来预测出分支命令进行分支的准确度,上述分支预测方法检测不同的地址的分支命令的出现频度;以及根据所检测出的出现频度,来动态变更分支历史寄存器中为有效的位宽。本专利技术的处理器以使用分支历史寄存器和分支历史图表来进行分支预测为前提,其中上述分支历史寄存器保存多个最近的分支命令的分支结果来作为履历;上述分支历史图表保存预测信息,该预测信息表示按照每个使用该分支历史寄存器保存的分支结果所计算的索引,来预测出分支命令进行分支的准确度,上述处理器具有检测不同的地址的分支命令的出现频度的频度检测单元;和根据频度检测单元检测的出现频度,来动态变更分支历史寄存器中为有效的位宽的位宽变更单元。在本专利技术中,检测不同的地址的分支命令的出现频度,将保存多个最近的分支命令的分支结果来作为履历的分支历史寄存器中为有效的位宽(数)以检测出的出现频度为基础适当进行动态变更。不同地址的分支命令的出现频度根据程序而不同,根据其出现频度,分支历史寄存器的最佳位宽也发生变化。因此,以该出现频度为基础适当地动态变更分支历史寄存器的位宽,由此可以使该位宽最佳化。其结果,可以与执行的程序无关而始终维持较高的预测精度,可以始终最大限度地发挥处理器的性能。附图说明图1A是说明2电平型的以往的分支预测装置所进行的分支预测的图。图1B是说明分支历史图表本文档来自技高网...
【技术保护点】
一种分支预测装置,该分支预测装置使用分支历史寄存器和分支历史图表来进行分支预测,其中上述分支历史寄存器保存多个最近的分支命令的分支结果来作为履历;上述分支历史图表保存预测信息, 该预测信息表示按照每个使用该分支历史寄存器保存的分支结果所计算的索引,来预测出分支命令进行分支的准确度,其特征在于,上述分支预测装置具有:检测不同的地址的分支命令的出现频度的频度检测单元;和根据上述频度检测单元检测的出现频度,来动态变更上述分支历史寄存器中为有效的位宽的位宽变更 单元。
【技术特征摘要】
【国外来华专利技术】JP 2004-4-21 125465/20041.一种分支预测装置,该分支预测装置使用分支历史寄存器和分支历史图表来进行分支预测,其中上述分支历史寄存器保存多个最近的分支命令的分支结果来作为履历;上述分支历史图表保存预测信息,该预测信息表示按照每个使用该分支历史寄存器保存的分支结果所计算的索引,来预测出分支命令进行分支的准确度,其特征在于,上述分支预测装置具有检测不同的地址的分支命令的出现频度的频度检测单元;和根据上述频度检测单元检测的出现频度,来动态变更上述分支历史寄存器中为有效的位宽的位宽变更单元。2.根据权利要求1所述的分支预测装置,其特征在于,上述位宽变更单元在上述频度检测单元检测的出现频度超过规定值时根据需要进一步减小上述位宽,在该出现频度为该规定值以下时根据需要进一步增大上述位宽。3.根据权利要求1所述的分支预测装置,其特征在于,上述位宽变更单元以上述频度检测单元检测的多个出现频度为基础,动态变更上述位宽。4.根据权利要求1所述的分支预测装置,其特征在于,上述频度检测单元检测保存...
【专利技术属性】
技术研发人员:本藤干雄,
申请(专利权)人:富士通株式会社,
类型:发明
国别省市:JP[日本]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。