System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及处理器设计领域,具体涉及一种通过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...
【专利技术属性】
技术研发人员:娄炯,何国强,
申请(专利权)人:江苏华创微系统有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。