[发明专利]一种用于函数返回地址预测的装置及方法在审
申请号: | 201410844091.7 | 申请日: | 2014-12-30 |
公开(公告)号: | CN104572024A | 公开(公告)日: | 2015-04-29 |
发明(设计)人: | 王洁;范润东;刘伯方 | 申请(专利权)人: | 杭州中天微系统有限公司 |
主分类号: | G06F9/315 | 分类号: | G06F9/315 |
代理公司: | 杭州斯可睿专利事务所有限公司 33241 | 代理人: | 王利强 |
地址: | 310012 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 函数 返回 地址 预测 装置 方法 | ||
技术领域
本发明属于微处理器领域,尤其涉及一种用于函数返回地址预测的装置及方法。
背景技术
转移指令是处理器的基本指令之一,广泛存在于程序中。转移指令会引入程序控制流的转移,是处理器的性能杀手之一。进一步,转移指令包括条件转移指令和无条件转移指令以及间接转移指令。其中,函数返回指令作为间接转移指令的一种,频繁应用于子函数的程序返回,对处理器的性能有着重大影响。为了加快函数返回指令的执行速度,中高端嵌入式处理器普遍采用了函数返回地址栈,为函数返回指令提供返回地址的预测。其基本原理是在发生函数调用时,将函数调用指令的下一条指令的地址视为函数返回的地址,并缓冲到函数返回地址栈中;在发生函数返回时,从函数返回地址栈中读取缓存的地址作为预测的函数返回地址并返回。
由于函数返回地址栈常位于处理器中的流水线前级,导致函数返回地址栈在运行过程中由于流水线的原因效率较低。目前对函数返回地址栈的改进集中于对其性能的改进,根据函数调用与返回指令在流水线中处理的不同节点设计多个返回栈指针,包括栈顶指针、检验指针、恢复指针等,用于维护函数返回地址栈读取指针的正确性,进一步,也有为在流水线中不同处理节点设计多个函数返回地址栈的方法,使得返回地址栈具有了内容纠错能力。但这两类方法都是对性能进行优化的方法。
有研究表明,受限于函数的大小,函数调用的地址偏移大都在1Mb范围以内,因此函数返回地址栈中对函数返回地址的高位进行保存在大多数情况下是没有意义的。
发明内容
为了克服已有函数返回地址栈方式的成本较高、处理器性能受限的不足,本发明提供了一种有效降低函数返回地址栈的成本、提升处理器性能的用于函数返回地址预测的装置及方法。
本发明解决其技术问题所采用的技术方案是:
一种用于函数返回地址预测的装置,所述装置包括:
指令译码单元,用于对输入的指令进行译码,产生操作指示符;
函数返回地址栈,包含S个表项,用于接受指令译码单元的操作指示符,对于译码得到的函数调用指令,函数返回地址栈截取并保存函数调用指令的下一条指令的地址的低M比特,对于译码得到的函数返回指令,从函数返回地址栈中弹出最近入栈的表项的M比特地址,拼上函数返回指令地址的高(N-M)位,封装产生N比特的目标地址作为函数返回指令的预测地址A,并记录返回地址A对应的表项索引X;
执行单元,用于接受指令译码单元的操作指示符以及函数返回地址栈的预测地址A与表项索引X,当操作指示符指示为函数返回指令时,判断地址A是否预测正确,产生预测正确信息与实际跳转地址;
纠错单元,用于接受执行单元的输出,在函数返回地址预测错误时用实际地址B对函数返回地址栈中表项索引X指向的内容进行纠正。
进一步,所述的函数返回地址栈中每个表项的内容为M比特,预测地址A与实际地址B为N比特,M、N均为整数,M<N。
所述译码单元对函数调用和函数返回指令进行译码,并根据译码结果完成函数返回地址栈的入栈和出栈操作。
函数返回地址栈采用先进后出的堆栈结构。
再进一步,所述执行单元中,计算产生实际函数返回地址B,并与预测地址A进行比较,产生预测正确信息以及实际地址B;所述纠错单元中,接受执行单元的输出,在函数返回地址预测错误时用实际地址B的低M比特信息对函数返回地址栈中表项索引X指向的内容进行纠正。
一种用于函数返回地址预测的方法,所述方法包括如下步骤:
1)对指令进行译码,译出函数调用指令和函数返回指令,并产生操作指示符;
2)当指令译码为函数调用指令时,截取下一条指令的地址的低M比特并保存在函数返回地址栈中;当指令译码为函数返回指令时,从函数返回地址栈中弹出最近入栈的表项的M位地址,拼接上函数返回指令的高(N-M)位地址,封装产生函数返回指令的预测地址A,并记录预测地址A对应的表项索引X;
3)当操作指示符指示为函数返回指令时,判断地址A是否预测正确,产生预测正确信息与实际跳转地址;
4)在函数返回地址预测错误时用实际地址B对函数返回地址栈中表项索引X指向的内容进行纠正;
进一步,所述步骤3)中,计算产生实际函数返回地址B,并与预测地址A进行比较,产生预测正确信息以及实际地址B;所述步骤4)中,在函数返回地址预测错误时用实际地址B的低M比特信息对函数返回地址栈中表项索引X指向的内容进行纠正。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州中天微系统有限公司,未经杭州中天微系统有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410844091.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:监控闹钟的处理方法和装置
- 下一篇:一种寄存器堆分页式扩展装置及其实现方法