System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 通过mask寄存器提高GSHARE对特定程序分支预测准确率的方法技术_技高网

通过mask寄存器提高GSHARE对特定程序分支预测准确率的方法技术

技术编号:40541607 阅读:4 留言:0更新日期:2024-03-05 18:57
本发明专利技术公开了一种通过mask寄存器提高GSHARE对特定程序分支预测准确率的方法,包括如下步骤:S1、调试应用程序时,检测需要在CPU中执行的循环递归类子程序;其中,CPU设计时增加了mask寄存器,循环递归类子程序包括循环子程序或递归子程序;S2、获取循环递归类子程序,判断循环递归类子程序中分支跳转是否和周围指令执行结果相关;S3、基于判断的结果,通过CPU中指令对mask寄存器的值修改,即修改BSHR_MASK的值;S4、使用GSHARE算法对循环递归类子程序进行分支预测。本发明专利技术修改mask寄存器的值,使分支跳转符合与周围指令执行结果的关系,能在需要捕获周围关系时保持捕获,在无需捕获周围关系时进行屏蔽,有效更新及预测分支方向,提升了GSHARE对循环递归类程序分支预测的准确性。

【技术实现步骤摘要】

本专利技术涉及处理器设计领域,具体涉及一种通过mask寄存器提高gshare对特定程序分支预测准确率的方法。


技术介绍

1、在处理器中,分支预测模块很大程度影响了处理器的性能,提高分支预测的准确率是提升处理器性能的关键。

2、现代处理器设计中有一种常用的分支预测算法gshare,使用该算法的预测器由一个k bits的bshr寄存器(每bit记录一条分支指令的分支方向)和一个有2max{k,j}项(每一项是一个2bit有限状态机)的pht组成,分支地址中的j位信息和bhsr寄存器的k位进行哈希运算(即按位异或)产生pht的index地址,然后该地址就可以从pht中读出2bit的分支方向预测信息,从而完成分支预测。

3、然而,在芯片应用中发现,跑特定程序时,会遇到与周围指令不相关的分支指令,gshare算法寻址的index一般是pc与bshr哈希运算的结果,在预测与周围指令执行结果不相关的分支指令时,会出现针对同一pc,寻址的index仍为pc哈希bshr的情况,而bshr是不断更新的,这就导致每次得出的index不同,但是此时分支预测需要的是index保持不变,即算法需要的条件和实际的条件不符合,两者产生了冲突,导致该类分支预测准确率较低。


技术实现思路

1、本专利技术的目的是提出一种通过mask寄存器提高gshare对特定程序分支预测准确率的方法,能够减少bshr的影响,有效更新以及预测分支方向,提高gshare对特定程序分支预测的准确率。

2、采取的技术方法如下:

3、本专利技术提供一种通过mask寄存器提高gshare对特定程序分支预测准确率的方法,该方法包括以下步骤:

4、s1、调试应用程序时,检测需要在cpu中执行的循环递归类子程序;其中,cpu在设计时增加了mask寄存器,循环递归类子程序包括循环子程序或递归子程序;

5、s2、获取循环递归类子程序,判断该循环递归类子程序中分支跳转是否和周围指令执行结果相关;

6、s3、基于判断的结果,通过cpu中的指令对mask寄存器的值进行修改,即修改bshr_mask的值;

7、s4、使用gshare算法对该循环递归类子程序进行分支预测。

8、本专利技术采用的方法,在设计时cpu时增加了mask寄存器,进而将bshr_mask的值修改为贴合分支跳转的数据,使得gshare算法在对该类指令进行分支预测时,能够及时的增大或者减少对周围指令执行结果的关联,减少bshr的影响,提升预测的准确率。

9、优选地,步骤s2中,判断的方法具体包括如下步骤:

10、s21、从循环递归类子程序中获取分支跳转语句;

11、s22、从分支跳转语句中获取与跳转相关的if语句;

12、s23、获取if语句中比较表达式的变量,通过变量判断分支跳转是否和周围指令执行结果相关;其中,分支跳转由变量的值决定。

13、循环递归类子程序中分支跳转只与if语句的变量有关,利用该变量与周围程序的执行结果的关系,就能够得到分支跳转与周围指令执行结果的关系,便于后续针对相互间的关系修改相应值数据。

14、优选地,获得变量后,判断变量是否来自于特定条件语句,若是,则变量和周围程序执行结果相关,若否,则变量和周围程序执行结果无关。

15、获取变量的来源条件,就可借此判断出变量与周围程序执行结果的关联程度,进而利用分支跳转与变量的关系,就可以成功的获取到分支跳转与周围指令执行结果的关系,从而方便后续针对性的做出值修改。

16、优选地,步骤s3具体包括如下步骤:

17、s31、在分支跳转和周围指令执行结果相关时,从cpu中调用第一指令将bshr_mask的值修改为0;

18、s32、在分支跳转和周围指令执行结果无关时,从cpu中调用第二指令将bshr_mask的值修改为1。

19、修改bshr_mask的值,将值信息修改为符合分支跳转与周围指令执行结果的关系,有效的控制分支去抓取周围指令或者停止抓取周围指令,避免出现值信息与是否抓取周围指令相冲突的情况,从而提升预测的准确率。

20、在本专利技术与现有技术相比具有的有益效果如下:

21、本专利技术通过利用在cpu中预留的mask寄存器,从而可以在应用中根据需要改变相应的index,避免了无效bshr的干扰,能在需要获取周围指令执行结果时更好的抓取和周围指令关系,在无需获取周围指令执行结果时停止pc与bshr的异或,极大的提升了gshare对循环递归类程序分支预测的精度,有效提升预测准确性。

本文档来自技高网...

【技术保护点】

1.一种通过mask寄存器提高GSHARE对特定程序分支预测准确率的方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种通过mask寄存器提高GSHARE对特定程序分支预测准确率的方法,其特征在于,步骤S2中,所述判断的方法具体包括如下步骤:

3.根据权利要求2所述的一种通过mask寄存器提高GSHARE对特定程序分支预测准确率的方法,其特征在于,获得所述变量后,判断所述变量是否来自于特定条件语句,若是,则所述变量和周围程序执行结果相关,若否,则所述变量和周围程序执行结果无关。

4.根据权利要求1所述的一种通过mask寄存器提高GSHARE对特定程序分支预测准确率的方法,其特征在于,步骤S3具体包括如下步骤:

【技术特征摘要】

1.一种通过mask寄存器提高gshare对特定程序分支预测准确率的方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种通过mask寄存器提高gshare对特定程序分支预测准确率的方法,其特征在于,步骤s2中,所述判断的方法具体包括如下步骤:

3.根据权利要求2所述的一种通过mask寄存器提高gs...

【专利技术属性】
技术研发人员:娄炯何国强
申请(专利权)人:江苏华创微系统有限公司
类型:发明
国别省市:

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

1