主权项 |
一种栈式分支预测器的硬件实现方法,其特征在于:1)栈式结构记录程序层次:栈为一个先进后出的硬件结构,栈以两个元素为一组,分别记录层次的入口和出口,当处理器判断当前指令为函数调用或者循环时,栈式分支预测器就把函数或循环的入口和出口地址插入到栈中成为栈中元素,保存程序的层次,函数不必记录出口地址,当某个分支的地址大于栈顶层次的出口地址或者遇到了函数返回的指令,那么就说明程序退出了一个层次,需要弹出一个栈顶的入口和出口元素;2)PC记录中记录修改GHR位的PC值:分支的结果将会被记录在GHR中,PC记录中记录了修改GHR对应位的PC值,通过PC记录中的值和栈中值的比较,能够判断GHR中哪些位与当前被预测分支处在相关层次;3)比较器比较PC记录和栈中元素:比较器用于比较PC记录中的值与栈中元素的值,比较器不需要比较值的大小,只需要比较其值是否相等,因此比较器通过异或逻辑实现,异或为零说明两者相等,比较器的输出一串GHR的掩码;4)索引计算使用过滤后GHR值:索引计算指的是计算索引PHT项的索引值,在栈式预测器中,用于计算索引的GHR为噪音过滤后的GHR,它是GHR值和比较器输出的掩码相与后的结果;5)预测过程:当处理器进行分支预测时候,首先比较每条PC记录与栈顶层次入口的值,如果PC记录值大于或者等于栈顶入口的值,那么说明该PC记录对应的GHR位为与当前分支是处在同一层中的分支,否则便是处在不同层次的分支,对于相同层次的GHR位,比较器产生一个1的结果,对于不同层次的GHR位,比较器产生一个0个结果。于是在比较结束以后,比较器产生了一串GHR的掩码,掩码和GHR异或产生用于计算索引的GHR,最后根据索引函数计算PHT的索引值,进行预测。 |