指令处理系统及方法技术方案

技术编号:10320131 阅读:92 留言:0更新日期:2014-08-13 20:20
本发明专利技术提供了一种指令处理系统及方法。在本发明专利技术提供的指令处理系统及方法中,通过指令控制器根据轨道表中存储的分支指令的预测值推测之后可能执行的指令段,并向处理器输出可能被执行的指令,以提高分支预测的准确性,从而提高指令处理系统执行指令的性能。

【技术实现步骤摘要】

本专利技术涉及计算机架构
,特别涉及一种。
技术介绍
在现代处理器设计中,处理器的性能提升主要通过提高处理器的主频来实现。然而,随着片上集成的晶体管的数量越来越多,功耗和散热问题变得更加严重。单纯提高主频的方法已经很难适应现在处理器的发展。在这种情况下,需要一种简单而有效的处理器流水线控制方法来提高指令的执行效率。也就是说,用较少的硬件资源实现指令的流水线控制,从而实现较高的指令吞吐率。流水线技术是指把一条指令的执行分成若干个阶段,每个阶段完成指令的一部分功能。这样在多条指令同时执行的时候,多条指令的不同阶段可以同时执行。相应地,流水线技术使得一条指令需要多个时钟周期才能执行完毕(或产生执行结果)。分支指令的分支转移发生与否,确定了在该分支指令之后执行紧接着该分支指令的下一指令段,还是执行该分支指令的分支目标指令段。即表示分支转移是否发生的判定信息产生前,无法确定之后会执行哪个指令段。对于上述问题,一种解决方法是在分支指令的执行结果产生之前,暂停流水线,等分支判定信息产生后再进行后续指令的读取与执行。这种方法的缺点是增加了流水线的等待时间,降低了整体性能。另一种解决方法是不暂停流水线,而是推测性地从下一指令段和目标指令段中选择一个继续执行。当分支判定信息产生时,即可知道之前的推测是否正确。若之前的推测是正确的,则可以按该推测执行的指令段继续执行后续指令;若之前的推测是错误的,则需要清除错误执行指令段的执行结果,并从正确指令段开始重新执行。这种方法虽然能使流水线不间断,但对推测准确性有很高的要求。而采用现有技术,只有花费很大的硬件开销(即,增加很多额外硬件资源),才能达到很高的分支预测准确率。反之,若硬件开销较小,则分支预测准确率很低,一旦推测错误,依然会降低整体性能。
技术实现思路
本专利技术的目的在于提供一种,根据轨道表中分支点的预测位推测分支指令之后可能执行的指令段,用很小的硬件开销实现较高的分支预测准确率,以解决硬件开销与分支预测准确性之间的矛盾。为解决上述技术问题,本专利技术提供了一种指令处理系统,所述指令处理系统包括:处理器,所述处理器用以进行指令处理;存储系统,所述存储系统用以存储指令;指令控制器,所述指令控制器包括轨道表,所述轨道表存储所述存储系统中存储的分支指令的位置及分支指令发生分支转移的预测;所述指令控制器根据所述分支指令发生分支转移的预测控制所述存储系统输出该分支指令的下一指令和目标指令中的一个。可选的,在所述的指令处理系统中,所述指令控制器还包括循迹器,所述循迹器前行到第一个分支指令,并根据分支指令发生分支转移的预测,输出该分支指令的下一指令的地址和目标指令的地址中的一个,以控制所述存储系统向处理器输出指令;且所述循迹器保存该分支指令的下一指令的地址和目标指令的地址中的另一个。可选的,在所述的指令处理系统中,所述循迹器包括单数或者复数个寄存器,其中,每个寄存器用以存储一分支指令的下一指令的地址或者目标指令的地址。可选的,在所述的指令处理系统中,所述循迹器接收分支指令是否发生分支转移的信息,并将所述分支指令是否发生分支转移的信息与分支指令发生分支转移的预测进行比较,若比较结果一致,则所述循迹器继续前行到第一个分支指令,输出该分支指令的下一指令的地址或者目标指令的地址,以控制所述存储系统向处理器输出指令。可选的,在所述的指令处理系统中,若比较结果不一致,则清除该分支指令的对应的预测执行的指令开始的全部指令在处理器中执行得到的中间结果及结果。可选的,在所述的指令处理系统中,所述循迹器按照保存的该分支指令的另一个地址的轨迹前行到第一个分支指令,输出该分支指令的下一指令的地址和目标指令的地址中的一个,以控制所述存储系统向处理器输出指令。可选的,在所述的指令处理系统中,所述循迹器中的复数个寄存器构成缓冲器,按分支指令的先后次序存储对应分支指令的下一指令的地址或者目标指令的地址;所述循迹器接收分支指令是否发生分支转移的信息,并将所述分支指令是否发生分支转移的信息与分支指令发生分支转移的预测进行比较;若比较结果一致,则舍弃所述缓冲器中的最早存储的地址;所述循迹器继续前行到第一个分支指令,输出该分支指令的下一指令的地址或者目标指令的地址,以控制所述存储系统向处理器输出指令;若比较结果不一致,则所述循迹器按照所述缓冲器中的最早存储的地址的轨迹前行到第一个分支指令,输出该分支指令的下一指令的地址和目标指令的地址中的一个,以控制所述存储系统向处理器输出指令,并舍弃所述比较结果产生前存储在所述缓冲器中的所有地址。可选的,在所述的指令处理系统中,所述分支指令发生分支转移的预测包括单数位预测值或者复数位预测值。可选的,在所述的指令处理系统中,所述指令控制器根据分支指令是否发生分支转移的信息,修正轨道表中对应所述分支指令的预测值。可选的,在所述的指令处理系统中,所述分支指令发生分支转移的预测的初始值设置为固定值或者根据分支指令分支转移跳转方向予以设置。可选的,在所述的指令处理系统中,所述分支指令发生分支转移的预测包括复数组预测位。可选的,在所述的指令处理系统中,所述循迹器中还包含一预测模块;所述预测模块对接收分支指令是否发生分支转移的信息与该分支指令对应各组预测位的值分别比较。可选的,在所述的指令处理系统中,所述预测模块对每组预测位最近η次比较结果分别计数,并以符合程度最高的一组预测位作为下一个分支指令是否发生分支转移的推测,输出该分支指令的下一指令地址和目标指令地址中的一个,以控制所述存储系统向处理器输出指令;其中,η为自然数。可选的,在所述的指令处理系统中,所述预测模块中每组预测位最近η次比较结果的计数范围可调。可选的,在所述的指令处理系统中,所述预测模块根据处理器对分支指令的实际执行结果判定预测准确率不高时,选定所述复数组预测位中的一组进行替换,将实际的分支转移判定结果写入对应分支指令的所述组预测位中;所述判定预测准确率的方法是:作为分支指令是否发生分支转移的推测的预测位的组别频繁发生变化时,判定预测准确率不高;或所述预测模块中连续k次比较结果显示各组预测位的值与分支判定信息均不匹配时,判定预测准确率不高;其中,k为自然数。可选的,在所述的指令处理系统中,对所述预测模块中连续m次比较结果中不匹配的结果进行计数;并在需要替换预测位时,选择计数结果最大的一组预测位作为被替换组;其中,m为自然数。可选的,在所述的指令处理系统中,所述预测模块根据处理器对分支指令的实际执行结果判定预测准确率较高时,停止对所述组预测位的替换;所述判定预测准确率的方法是:作为分支指令是否发生分支转移的推测的预测位的组别不再频繁发生变化时,判定预测准确率较高;或所述预测模块中连续j次比较结果中有至少一组预测位的值与分支判定信息匹配时,判定预测准确率较高;其中,j为自然数。本专利技术还提供一种指令处理方法,所述指令处理方法包括:步骤10、根据分支指令发生分支转移的预测控制存储系统输出该分支指令的下一指令和目标指令中的一个。可选的,在所述的指令处理方法中,所述步骤10包括:步骤10A、输出该分支指令的下一指令的地址和目标指令的地址中的一个,以控制所述存储系统向处理器输出指令;步骤10B、保存该分支指令的下一指令的地址和目本文档来自技高网
...

【技术保护点】
一种指令处理系统,其特征在于,包括:处理器,所述处理器用以进行指令处理;存储系统,所述存储系统用以存储指令;指令控制器,所述指令控制器包括轨道表,所述轨道表存储所述存储系统中存储的分支指令的位置及分支指令发生分支转移的预测;所述指令控制器根据所述分支指令发生分支转移的预测控制所述存储系统输出该分支指令的下一指令和目标指令中的一个。

【技术特征摘要】
1.一种指令处理系统,其特征在于,包括: 处理器,所述处理器用以进行指令处理; 存储系统,所述存储系统用以存储指令; 指令控制器,所述指令控制器包括轨道表,所述轨道表存储所述存储系统中存储的分支指令的位置及分支指令发生分支转移的预测;所述指令控制器根据所述分支指令发生分支转移的预测控制所述存储系统输出该分支指令的下一指令和目标指令中的一个。2.如权利要求1所述的指令处理系统,其特征在于,所述指令控制器还包括循迹器,所述循迹器前行到第一个分支指令,并根据分支指令发生分支转移的预测,输出该分支指令的下一指令的地址和目标指令的地址中的一个,以控制所述存储系统向处理器输出指令;且 所述循迹器保存该分支指令的下一指令的地址和目标指令的地址中的另一个。3.如权利要求2所述的指令处理系统,其特征在于,所述循迹器包括单数或者复数个寄存器,其中,每个寄存器用以存储一分支指令的下一指令的地址或者目标指令的地址。4.如权利要求2所述的指令处理系统,其特征在于,所述循迹器接收分支指令是否发生分支转移的信息,并将所述分支指令是否发生分支转移的信息与分支指令发生分支转移的预测进行比较,若比较结果一致,则所述循迹器继续前行到第一个分支指令,输出该分支指令的下一指令的地址或者目标指令的地址,以控制所述存储系统向处理器输出指令。5.如权利要求4所述的指令处理系统,其特征在于,若比较结果不一致,则清除该分支指令的对应的预测执行的指令开始的全部指令在处理器中执行得到的中间结果及结果。6.如权利要求5所述的指令处理系统,其特征在于,所述循迹器按照保存的该分支指令的另一个地址的轨迹前行到第一个分支指令,输出该分支指令的下一指令的地址和目标指令的地址中的一个,以控制所述存储系统向处理器输出指令。7.如权利要求3所述的指令处理系统,其特征在于,所述循迹器中的复数个寄存器构成缓冲器,按分支指令的先后次序存储对应分支指令的下一指令的地址或者目标指令的地址; 所述循迹器接收分支指令是否发生分支转移的信息,并将所述分支指令是否发生分支转移的信息与分支指令发生分支转移的预测进行比较;和 若比较结果一致,则舍弃所述缓冲器中的最早存储的地址;所述循迹器继续前行到第一个分支指令,输出该分支指令的下一指令的地址或者目标指令的地址,以控制所述存储系统向处理器输出指令; 若比较结果不一致,则所述循迹器按照所述缓冲器中的最早存储的地址的轨迹前行到第一个分支指令,输出该分支指令的下一指令的地址和目标指令的地址中的一个,以控制所述存储系统向处理器输出指令,并舍弃所述比较结果产生前存储在所述缓冲器中的所有地址。8.如权利要求1所述的指令处理系统,其特征在于,所述分支指令发生分支转移的预测包括单数位预测值或者复数位预测值。9.如权利要求8所述的指令处理系统,其特征在于,所述指令控制器根据分支指令是否发生分支转移的信息,修正轨道表中对应所述分支指令的预测值。10.如权利要求8所述的指令处理系统,其特征在于,所述分支指令发生分支转移的预测的初始值设置为固定值或者根据分支指令分支转移跳转方向予以设置。11.如权利要求2所述的指令处理系统,其特征在于,所述分支指令发生分支转移的预测包括复数组预测位。12.如权利要求11所述的指令处理系统,其特征在于,所述循迹器中还包含一预测模块;所述预测模块对接收分支指令是否发生分支转移的信息与该分支指令对应各组预测位的值分别比较。13.如权利要求12所述的指令处理系统,其特征在于,所述预测模块对每组预测位最近η次比较结果分别计数,并以符合程度最高的一组预测位作为下一个分支指令是否发生分支转移的推测,输出该分支指令的下一指令地址和目标指令地址中的一个,以控制所述存储系统向处理器输出指令;其中,η为自然数。14.如权利要求13所述的指令处理系统,其特征在于,所述预测模块中每组预测位最近η次比较结果的计数范围可调。15.如权利要求13所述的指令处理系统,其特征在于,所述预测模块根据处理器对分支指令的实际执行结果判定预测准确率不高时,选定所述复数组预测位中的一组进行替换,将实际的分支转移判定结果写入对应分支指令的所述组...

【专利技术属性】
技术研发人员:林正浩
申请(专利权)人:上海芯豪微电子有限公司
类型:发明
国别省市:上海;31

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

1