基于模糊加权的动态自适应分支预测算法研究

作者:焦永;赵锐;康建华;陈跃跃 刊名:系统仿真学报 上传者:周旭

【摘要】分支预测技术一直以来是计算机体系结构、微处理器设计的研究重点。目前分支预测的研究集中在动态分支预测技术,采用学科交叉的观点,提出新的预测算法。对自适应动态分支预测进行改进,引入了模糊加权的机制,对分支历史的每一位加不同的权值,并利用调整因子动态改变权值,由模糊推理得出预测结果。SimpleScalar的模拟结果表明,这种模糊加权的动态自适应算法比经典的gshare预测算法预测失效率低2%。

全文阅读

引言1随着应用对微处理器性能要求的提高,微处理器设计技术不断进步,流水线变得越来越宽,越来越深。分支预测失效所带来的延迟对处理器性能影响越来越大。一直以来,人们都在研究更加有效的分支预测结构,尽量减小由分支预测失效所带来的性能损失。对动态分支预测技术而言,目前提高性能的方法主要有三种:(1)增加更多的相关信息来提高预测准确率;(2)改变分支预测可用的历史信息或路径的数量来提高预测准确率;(3)为不同的历史信息或路径加不同的权值来提高预测准确率。从上世纪80年代末开始,在国际上兴起了一股研究模糊神经网络理论的热潮,目前这股热潮依然强劲,模糊神经理论在自动控制、人工智能、生命科学等领域都有广泛的应用。根据计算机中预测的不确定性和对历史的依赖性,我们希望把模糊神经理论运用到微处理器的预测领域中来。分支预测研究的目标是提高预测精度,传统做法是根据最近的分支执行历史采用两位计数器的方式作出预测判断。本文给出了一种根据加权后的信息来作出这种判断的方法。将分支预测的过程模糊化,对历史信息的处理采用模糊加权,利用模糊推理进行分支预测,得到预测结果。预测完成之后根据分支真实的结果,对所做的模糊化和模糊推理进行修正。1理论基础经典集合论中的集合定义是不定义的概念,集合是一种称之为“数学语言”的数学刻画。所谓数学语言是指满足真伪性只有两种可能,“非真即伪”的语言。适应这种数学语言的对象便构成经典集合中的各种集合。为了给出模糊集的概念,首先给出集合论的一个基础,即论域。所谓论域就是我们讨论的问题所涉及到的对象的全体,是一个普通集合。定义[6]:论域U={x}上的集合A由隶属函数A(x)来表征,其中A(x)在闭区间[0,1]中取值,A(x)的大小反映了x对模糊集合A的隶属程度。这就是说,论域U={x}上的模糊集合是指x中具有某种性质的元素全体,这些元素具有某个不分明的界限。对于U中任一元素,都能根据这种性质,用一个[0,1]上的函数来表征该元素属于A的程度。论域是指被讨论对象的全体。设论域U是有限域,即U={x1,x2,…,xn},U上的任意模糊集A,其隶属函数为A(xi),i=1,2,…….,n,则此时A可以表示为A=A(x1)/x1+A(x2)/x2+...+A(xn)/xn=1()/nAiiixx=。其中不再是数学和,A(xi)/xi也不是分数,他们只有符号意义,表示xi对模糊集A的隶属程度是A(xi)。2模糊加权的自适应分支预测算法预测是一个模糊的过程,分支预测也是如此,对一条分支指令预测,结果是1或0的可能性都存在,但是1的可能性大还是0的可能性大,就是我们预测的目的。因此,可以采用模糊理论的方式进行分支预测,将分支预测模糊化。把模糊推理的过程定量化,也就是对每一种分支预测成功的情况进行归纳,统一用一个阈值来表示,超过这个阈值就表示所有的taken情况;若小于这个阈值就表示所有nottaken情况。由此就引出了这种模糊加权分支预测算法。采用模糊理论的分支预测算法,关键是对分支历史的处理。不妨假设分支预测历史寄存器的位数为N,论域U={BHR[N-1],BHR[N-2],……,BHR[1],BHR[0]},模糊集A表示“分支预测转移”,那么可以将模糊集A定义为:A=分支预测转移=BHR[N-1]WN-1+BHR[N-2]WN-2+……+BHR[1]W1+BHR[0]W0其中WN,WN-1,……,W1,W0表示历史寄存器对应位对整个分支结果的产生所做的贡献,根据分支程序的局部性原理,可以推测离本次分支预测越近的分支历史对分支预测结果所做的贡献越大,其加的权值也应该越

参考文献

引证文献

问答

我要提问