[发明专利]指令处理方法及设备有效
申请号: | 201310011219.7 | 申请日: | 2013-01-11 |
公开(公告)号: | CN103116484A | 公开(公告)日: | 2013-05-22 |
发明(设计)人: | 惠卫锋;朱小刚 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 黄厚刚 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 指令 处理 方法 设备 | ||
技术领域
本发明涉及计算机技术领域,特别涉及一种指令处理方法及设备。
背景技术
通常,CPU(Central Processing Unit,中央处理单元)通过指令流水线处理指令,即将CPU中实现不同处理功能的电路单元组成一条指令流水线,并将指令分成多个步骤处理。进一步地,可以将处理指令的一个步骤的时间定义为一个CPU周期,则在一个CPU周期内,多个电路单元可以并行地对多条指令的不同步骤进行处理。比如,CPU中的指令流水线为三级指令流水线,且指令的处理依次包括取指、译码和执行这三个步骤。请参考图1,其示出了三级指令流水线的应用示意图。图1中,在CPU周期1内,CPU中的取指单元对指令1进行取指处理;在CPU周期2内,CPU中的取指单元对指令2进行取指处理、译码单元对指令1进行译码处理;在CPU周期3内,CPU中的取指单元对指令3进行取指处理、译码单元对指令2进行译码处理、执行单元对指令1进行执行处理等,依此类推,直至处理完每一条指令。
CPU中的取指单元从缓存器中的缓存行(Cache Line)中读取指令。缓存行是缓存器中的一个访问单元,可以存储至少一条指令,其包括标签(Tag)、控制标识和数据位等。其中,标签用来标识该缓存行的数据在内存中的地址、控制标识用来标识该缓存行是否允许被访问、数据位用来存储指令。具体地,当缓存器中没有CPU当前读取的指令时,缓存器以缓存行为单位读取内存中的指令,并将该指令发送给CPU,以便CPU对该指令进行处理。
进一步地,缓存器通常由SRAM(Static Random Access Memory,静态随机存储器)实现。其中,SRAM是RAM(Random Access Memory,随机存储器)的一种。由于RAM在应用过程中会出错,即发生RAM失效事件,则根据RAM的特性,可以将RAM失效事件分为硬失效事件、伪硬失效事件和软失效事件。其中,硬失效事件是指器件内部发生不可恢复性的物理失效,必须更换器件单元来消除故障的事件;伪硬失效事件是指器件单元发生逻辑性死锁,必须通过上下电等操作来消除故障的事件;软失效事件是指高能亚原子粒子穿越RAM中的硅时产生自由电荷,这些自由电荷导致RAM中存储数据的改变的事件。随着器件工艺尺寸不断缩小,RAM的集成度越来越高,软失效事件的发生概率也在不断增加,影响了RAM的可靠性,尤其对SRAM的可靠性造成了较大的影响。
由于指令出错只可能出现在取指阶段,因此,为了避免SRAM失效引起的指令出错,在CPU中的取指单元取指后,会通过硬件单元的检错技术检测当前读取的指令是否出错,若检测到当前读取的指令出错,则向CPU发送中断请求,并修改状态寄存器中与缓存器对应的标志位的数值。其中,中断请求用来通知CPU处理指令出错事件,以消除错误数据对处理过程的影响;状态寄存器用来标识触发中断请求的中断源。
现有技术中,CPU接收到中断请求后,清除CPU的流水线和缓存器中的指令,并重新从该指令所属的指令集的第一条指令处进行指令处理。
现有的指令处理方法中,CPU接收到中断请求后,重新从该指令所属的指令集的第一条指令处进行指令处理,使得CPU重复处理之前已经处理过的指令,导致指令恢复的时间较长,降低了CPU的处理效率。
发明内容
为了解决CPU接收到中断请求后,重新从该指令所属的指令集的第一条指令处进行指令处理,使得CPU重复处理之前已经处理过的指令,导致指令恢复的时间较长的问题,本发明实施例提供了一种指令处理方法及设备。所述技术方案如下:
第一方面,提供了一种指令处理方法,所述方法包括:
在接收到中断请求后,记录当前流水线中正在执行的第一指令的地址;
设置缓存器的控制信息,以便所述缓存器根据所述控制信息对所述流水线中正在取指的第二指令进行恢复,所述第一指令和第二指令存储在所述缓存器中且所述第二指令的取指时刻为所述第一指令的执行时刻;
根据所述第一指令的地址从所述第一指令之后的指令处进行指令处理,所述第一指令之后的指令包括恢复后的所述第二指令。
在第一方面的第一种可能的实现方式中,所述设置缓存器的控制信息之前,还包括:
检测所述中断请求是否是所述缓存器出错而触发的;
若检测到是所述缓存器出错而触发的,则确定执行设置缓存器的控制信息的步骤。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述检测所述中断请求是否是所述缓存器出错而触发的,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310011219.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:空气滤清器
- 下一篇:终端界面的展示方法和装置