[发明专利]基于处理器指令快速完成的精确异常维护方法及装置有效
申请号: | 201410582418.8 | 申请日: | 2014-10-27 |
公开(公告)号: | CN104461468B | 公开(公告)日: | 2017-10-20 |
发明(设计)人: | 李春强;尚云海;陈红灯 | 申请(专利权)人: | 杭州中天微系统有限公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F11/07 |
代理公司: | 杭州斯可睿专利事务所有限公司33241 | 代理人: | 王利强 |
地址: | 310012 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 处理器 指令 快速 完成 精确 异常 维护 方法 装置 | ||
技术领域
本发明涉及处理器的精确异常技术领域,尤其是一种基于处理器指令快速完成的精确异常维护方法及装置。
背景技术
处理器的设计中,性能以及精确异常一直是关键的设计指标。随着大数据时代的到来,计算任务越来越复杂,对处理器的性能以及精确异常的要求越来越苛刻。
精确异常是指引起异常的指令对处理器状态不产生影响,要求:该指令之前的全部指令已经完成对处理器状态的更新;该指令之后的任何指令没有更改处理器状态;记录该指令的地址和处理器状态,异常处理结束后恢复处理器状态并重新执行。
目前常见的精确异常维护方法包括:当译码得到该指令可能产生异常,则停顿后续指令的发射,直到该指令执行完毕且没有发生异常;允许后续指令的乱序执行,通过退休单元记录指令执行顺序,直到指令执行完毕才能从流水线中按序退休并回收所占用的退休单元表项。这些方法会导致流水线频繁停顿,无法充分利用流水线的执行效率,以至于在某些高性能处理器中,如Alpha 21064,Power 2,MIPS R8000,精确异常模式与非精确异常模式相比,执行速度慢很多(超过10倍)。
发明内容
为了克服已有的处理器精确异常维护方法的无法充分利用流水线的执行效率、限制处理器性能的不足,本发明提供一种有效减少了处理器精确异常模式下的流水线停顿,充分利用流水线的执行效率,提升处理器性能的基于处理器指令快速完成的精确异常维护方法及装置。
本发明解决其技术问题所采用的技术方案是:
一种基于处理器指令快速完成的精确异常维护方法,所述精确异常维护方法包括如下步骤:
1)查询处理器指令快速完成时是否检测到异常,若检测到异常则执行步骤2),否则跳到步骤3)执行;
2)该指令执行结束并同步于退休响应精确异常,返回到步骤1)检测下一条指令;
3)该指令正常退休并缓存指令的地址与处理器状态信息,执行步骤4);
4)查询指令正常退休后的执行过程中是否检测到异常,若检测到异常则执行步骤5),否则跳到步骤6)执行;
5)根据缓存的指令地址与处理器状态信息恢复处理器现场,并异步于退休响应精确异常,返回到步骤1)检测下一条指令;
6)该指令正常回写执行结果,返回到步骤1)检测下一条指令。
进一步,步骤1)中,所述的快速完成包括三种情况:①指令处于译码阶段尚未执行时从流水线中退休、②多执行周期指令处于执行阶段尚未得到最终计算结果时从流水线中退休、③装载/存储指令尚未完成对存储器的读/写时从流水线中退休。
再进一步,步骤1)中,所述的处理器指令包括定点指令、矢量指令、浮点指令,装载/存储指令。
更进一步,步骤1)中,指令执行周期长度大于或等于1。
步骤3)中,将指令的退休与回写分开,若指令快速完成时尚未检测到异常,则允许该指令从整条流水线中正常退休,最后一级流水线的程序计数器将指向下一条指令,并在此时缓存该指令的地址与处理器状态信息,所述的处理器状态信息包括处理器在指令退休时是否响应了中断请求或调试请求。
步骤5)中,所述的处理器现场包括异常现场、中断现场、调试现场的影子地址寄存器以及影子状态寄存器;步骤5)所述的处理器现场恢复不对寄存器堆进行恢复更新,寄存器堆包括定点寄存器堆、矢量寄存器堆、浮点寄存器堆和控制寄存器堆。
步骤5)中,若指令在退休后的执行过程中检测到异常,则处理器将异步于退休进行异常、中断、调试请求优先级判断,确保进行精确响应。
步骤5)中,通过队列缓存计算结果或停顿执行流水线,阻止后面的指令回写寄存器堆,直到该退休指令整个执行完毕且没有检测到异常。
步骤6)中,通过队列缓存计算结果或停顿执行流水线,阻止后面的指令回写寄存器堆,直到该退休指令整个执行完毕且没有检测到异常。
一种基于处理器指令快速完成的精确异常维护装置,包括:
取指单元,处于流水线的最前级,负责从存储器中读取指令并送入流水线;
指令译码单元,连接取指单元的输出端,负责对取指单元送入的指令进行译码,得到指令的类型、是否需要回写寄存器堆、源寄存器号、目的寄存器号,执行周期等信息;
指令发射单元,连接指令译码单元的输出端,负责检测指令的相关性,根据译码得到的指令类型,将相关性已消除的指令发射到相应的执行单元,相关性包括数据相关、控制相关、执行单元资源冲突;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州中天微系统有限公司,未经杭州中天微系统有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410582418.8/2.html,转载请声明来源钻瓜专利网。