发明名称 双栈返回地址预测器设计方法
摘要 本发明公开了一种双栈返回地址预测器的设计方法,目的是在减小硬件实现复杂度的同时,克服返回地址预测错误,提高返回地址预测器的预测精度。本发明总体硬件叫双栈返回地址预测器,包括预测模块、执行模块,预测模块由RAS_PRED、指针模块2和读写模块2构成,执行模块由RAS_EXE、指针模块1和读写模块1构成;由预测模块为返回指令提供预测目标地址,由执行模块在发生分支误预测时对预测模块的状态进行恢复。本发明硬件实现复杂度低,返回指令目标地址的预测精度高。
申请公布号 CN1280713C 申请公布日期 2006.10.18
申请号 CN200410022965.7 申请日期 2004.03.09
申请人 中国人民解放军国防科学技术大学 发明人 张民选;孙彩霞;邢座程;蒋江;邓让钰;李勇;曾献君;阳柳;张承义;欧国东;马卓;张杰;陈海燕;李晋文;马驰远
分类号 G06F9/38(2006.01) 主分类号 G06F9/38(2006.01)
代理机构 湖南兆弘专利事务所 代理人 赵洪
主权项 1.一种双栈返回地址预测器的设计方法,采用它设计的微处理器拥有与一般微处理器相同的流水线结构、功能部件和控制信号,其特征在于双栈返回地址预测器的设计方法是:它的逻辑结构设计为由预测模块和执行模块组成,预测模块设计成由预测返回地址栈、第二指针模块和第二读写模块构成,执行模块设计成由执行返回地址栈、第一指针模块和第一读写模块构成;预测模块的外部输入信号有:分支预测信息,该信息包括分支类型以及预测得到的分支方向;是否发生了分支误预测;以及第二返回地址,即处在分支预测阶段的调用指令的返回地址;预测模块的输出信号是返回指令的预测目标地址;执行模块的外部输入信号有:实际执行信息,该信息包括分支类型以及实际得到的分支方向,以及第一返回地址,即处在分支执行阶段的调用指令的返回地址;预测返回地址栈和执行返回地址栈设计为各包含n个入口项;设置预测栈顶指针和执行栈顶指针,分别对预测返回地址栈和执行返回地址栈进行索引;预测栈顶指针的值由第一寄存器保存,执行栈顶指针的值由第二寄存器保存;如果预测栈顶指针为i,则预测返回地址栈的当前栈顶是它的第i+1项,如果执行栈顶指针为i,则执行返回地址栈的当前栈顶是它的第i+1项;在分支预测阶段,预测为跳转的调用指令把第二返回地址压入预测返回地址栈的栈顶,预测为跳转的返回指令从预测返回地址栈栈顶弹出一个地址作为预测的目标地址;在分支执行阶段,发生跳转的调用指令把第一返回地址压入执行返回地址栈的栈顶;预测返回地址栈和执行返回地址栈的项之间一一对应,当发生分支误预测时,使用执行返回地址栈第1项中的数据恢复预测返回地址栈的第1项—即把执行返回地址栈第1项中的数据写入预测返回地址栈的第1项中,使用执行返回地址栈第2项中的数据恢复预测返回地址栈的第2项,依此类推,使用执行返回地址栈第n项中的数据恢复预测返回地址栈的第n项。
地址 410073湖南省长沙市砚瓦池正街47号国防科技大学计算机学院