[发明专利]一种支持自动纠错功能的返回地址栈实现方法有效
| 申请号: | 200910207204.1 | 申请日: | 2009-10-12 |
| 公开(公告)号: | CN101727312A | 公开(公告)日: | 2010-06-09 |
| 发明(设计)人: | 严晓浪;龚帅帅;葛海通;孟建熠 | 申请(专利权)人: | 杭州中天微系统有限公司 |
| 主分类号: | G06F9/38 | 分类号: | G06F9/38 |
| 代理公司: | 杭州天正专利事务所有限公司 33201 | 代理人: | 王兵;王利强 |
| 地址: | 310012 浙江省杭州市西*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 支持 自动 纠错 功能 返回 地址 实现 方法 | ||
技术领域
本发明属于嵌入式处理器系统领域。更具体地说,涉及一种函数 返回地址栈实现方法。
背景技术
嵌入式处理器发展至今,已经在多媒体编解码、通信技术和超大 规模集成电路设计领域展现出了巨大的应用价值。一直以来,嵌入式 处理器对于功耗、面积、成本、性能等多项指标都有着严格的设计要 求。随着应用领域的不断扩大和应用要求的不断提高,对于嵌入式处 理器的处理性能提出了更高的要求。
在流水线技术广泛应用于处理器设计的今天,如何充分发挥流水 线的作用成为设计中需要考虑的重点问题。分支指令对于流水线技术 的运用带来的障碍使得分支预测技术在处理器的设计中变得越来越重 要,为实现高性能,精确的分支预测成为关键。分支预测失效将浪费 大量的时钟周期,无法发挥处理器乱序执行的效能,从而影响处理器性 能的进一步提高。
函数调用和函数返回作为重要的分支指令,在处理器的指令集中 占有相对重要的地位,能否在尽可能少的等待时间之内完成函数返回 指令正确目标地址的获取,成为了一种重要的分支预测技术。当前大 多数高性能的嵌入式处理器都采用了返回地址栈为函数返回指令提供 返回地址,而返回地址栈的维护方法在不同的嵌入式处理器中各不相 同。在现有的常见嵌入式处理器架构中,返回地址栈主要采用保存当 前栈顶指针、数据或保存全栈的修复方法。前者需要对每一条分支指 令保存一个栈顶指针的拷贝,预测精度也不高;后者虽然可以获得百 分之百的预测准确率,但硬件开销过大。
发明内容
为了克服已有的嵌入式处理器的函数返回地址栈实现方法的函数 返回的预测精度较低、限制处理器的性能的不足,本发明提供一种有 效提高函数返回的预测精度、提升处理器的性能的支持自动纠错功能 的返回地址栈实现方法。
本发明解决其技术问题所采用的技术方案是:
一种支持自动纠错功能的返回地址栈实现方法,所述的返回地址 栈实现方法包括以下步骤:
1)在指令预取过程中对函数调用指令和函数返回指令进行预译码,并 根据预译码结果进行函数返回地址信息的入栈和出栈操作;
2)设置栈顶指针标识指令预译码时返回地址栈的当前操作的位置;
3)采用退休指针记录函数调用和函数返回指令退休后的返回地址栈状 态,在流水线清空操作时,利用退休指针对栈顶指针的自动恢复。
作为优选的一种方案:所述的返回地址栈实现方法还包括: 步骤4)采用检验指针记录后级流水线确认预测后的返回地址栈状态, 在分支跳转预测出错时,利用检验指针对栈顶指针的自动恢复。
作为优选的另一种方案:在所述步骤1)中,在指令预取过程中 设置返回地址栈,并对预取指令进行动态预译码,若当前指令为函数 调用指令,将函数的返回地址压入返回地址栈;若当前指令为函数返 回指令,从返回地址栈中获得返回地址,跳入返回函数开始预取指令。
进一步,在所述步骤2)中,所述返回地址栈为循环堆栈结构, 栈顶指针指示返回地址栈当前写入和读取的位置,栈顶指针在有效范 围内循环更新,在指令预取的同时控制栈顶指针的更新和返回地址栈 对应位置的入栈和出栈操作。
更进一步,在所述步骤3)中,程序遇到异常时产生流水线清空 操作,流水线的各种状态恢复为指令退休时的状态,利用退休指针恢 复返回地址栈的栈顶指针,返回地址栈重新进入正常工作状态。
再进一步,在所述步骤4)中,后级流水线在函数调用指令和函 数返回指令执行时即对返回地址预测进行检验。
当流水线执行过程中出现分支预测错误,将返回地址栈栈顶指针 更新为检验指针,恢复操作无需等待当前分支预测错误指令退休时进 行,返回地址栈提前进入正常工作状态。
本发明的技术构思为:利用一组指针寄存器的协同工作,实现了 在流水线出现清空操作或其他分支预测出现错误时的自动纠错。该单 元的本质是在嵌入式处理器中通过简单的扩展,保持其控制能力的同 时,确保了函数调用和函数返回指令接近百分之百的预测精度。
支持自动纠错功能的返回地址栈是一个为通用嵌入式处理器设计 的加速函数调用和函数返回指令执行的硬件执行单元。其仅仅是一个 执行单元,是复杂嵌入式处理器的有效补充。
因此,利用较小的硬件代价对返回地址栈进行必要的修复,能够 获得正确的返回地址,即提高函数返回指令的预测精度,就显得尤为 重要。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州中天微系统有限公司,未经杭州中天微系统有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910207204.1/2.html,转载请声明来源钻瓜专利网。





