发明名称 栈式分支预测器的硬件实现方法
摘要 本发明公开了一种栈式分支预测器的硬件实现方法。分支预测器通过对程序分支预测和提前执行分支之后的指令,提高流水级处理器性能。栈式分支预测器是在两级模式分支预测器的基础上,在分支预测器中设置了一个栈的结构,该结构记录了程序执行的层次。栈式分支预测器由栈、PC记录、比较器和索引组成。栈中记录了程序进入层次的入口和出口PC值,作用是记录程序的层次关系;PC记录里面存放了修改GHR位的PC值;比较器用于比较栈中的PC值和PC记录中的PC值;索引部分用于产生读写一PHT的索引值。程序的层次指的是程序的循环和函数调用。本发明是通过记录程序的层次,在预测时比较PC记录和栈中元素,过滤层次间的分支预测噪音。
申请公布号 CN101807145A 申请公布日期 2010.08.18
申请号 CN201010148493.5 申请日期 2010.04.16
申请人 浙江大学 发明人 陈天洲;袁辉;施青松;胡威;蒋冠军
分类号 G06F9/38(2006.01)I 主分类号 G06F9/38(2006.01)I
代理机构 杭州求是专利事务所有限公司 33200 代理人 林怀禹
主权项 一种栈式分支预测器的硬件实现方法,其特征在于: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的索引值,进行预测。
地址 310027 浙江省杭州市西湖区浙大路38号