[发明专利]一种指令清除方法及装置有效
申请号: | 201310142721.1 | 申请日: | 2013-04-23 |
公开(公告)号: | CN104123195B | 公开(公告)日: | 2018-03-13 |
发明(设计)人: | 李晔;王曦爽;侯锐;刘月吉 | 申请(专利权)人: | 华为技术有限公司;中国科学院计算技术研究所 |
主分类号: | G06F11/07 | 分类号: | G06F11/07 |
代理公司: | 北京中博世达专利商标代理有限公司11274 | 代理人: | 申健 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 指令 清除 方法 装置 | ||
技术领域
本发明涉及通信领域,尤其涉及一种指令清除方法及装置。
背景技术
随着科技的不断进步,人们对计算机处理速度的要求也越来越高。现有技术提出一种超标量处理器,其原理是通过一个时钟周期内乱序发射多条指令并乱序执行这些指令来实现多指令并行技术。具体的,超标量处理器不需要按照指令原有的顺序发射执行这些指令,而是哪条指令的操作数准备就绪就可以提前执行该条指令,这样便可以提高指令的执行效率和算数逻辑单元(Arithmetic Logic Unit,ALU)的利用率,进而提高计算机的处理速度。但是为了保证流水线对精确异常的响应,在指令乱序执行完成后需要按照指令原先的顺序提交这些指令的执行结果,在超标量处理器中维护指令乱序执行和顺序提交的核心部件称为重排序缓存(Reorder Buffer,ROB)。
在超标量处理器中,若某条指令在执行的过程中发生异常,则需要从存放有指令发射、执行以及提交过程中所需信息的所有指令队列和指令缓存中清除该异常指令之后的所有信息。为了能够在指令发生异常之后尽早响应并处理该异常,现有技术提供一种解决方案,先将出现异常的指令的执行结果写到ROB中,然后将异常指令的ROB标识与所有已发射且未提交的指令的ROB标识相比较,根据比较结果判断哪些指令在该异常指令之后,哪些指令在该异常指令之前,然后将该异常指令之后的所有指令对应的信息从存放指令发射、执行以及提交过程中所需信息的所有指令队列和指令缓存中清除掉,从而达到快速响应并处理异常的目的。
在实现上述指令清除的过程中,发明人发现现有技术中至少存在如下问题:为了对所有已发射且未提交的指令的ROB标识与异常指令的ROB标识进行比较,需要在存放指令对应信息的的所有指令队列和指令缓存中分别加入一个比较器电路,这样便会增加电路的复杂度,并会导致资源的严重浪费。
发明内容
本发明的实施例提供一种指令清除方法及装置,在不增加电路复杂度的情况下,当指令执行发生异常时,实现了对异常指令的快速响应。
为达到上述目的,本发明的实施例采用如下技术方案:
本发明的第一方面,提供一种指令清除方法,包括:
当第一指令执行时发生异常,获取所述第一指令的分支标识;
根据所述第一指令的分支标识生成掩码;
根据所述掩码从存储有指令发射、执行以及提交过程中所需信息的所有指令队列和指令缓存中清除分支标识与所述第一指令的分支标识相同的信息。
结合第一方面,在一种可能的实现方式中,在所述获取所述第一指令的分支标识之前,还包括:
将所述第一指令的异常信息存储在重排序缓存ROB中;
根据所述异常信息判断所述第一指令为需要立即响应的异常指令。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,当所述第一指令为非分支指令时,
在所述根据所述第一指令的分支标识生成掩码之前,还包括:
判断所述第一指令所对应的分支不处于分支队列的队头。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在所述根据所述掩码从存储有指令发射、执行以及提交过程中所需信息的所有指令队列和指令缓存中清除分支标识与所述第一指令的分支标识相同的信息之后,还包括:
获取第一分支指令的检查点信息;其中,所述第一分支指令的分支标识与所述第一指令的分支标识相同,所述第一分支指令的检查点信息包括所述第一分支指令执行之前超标量处理器的状态信息;
根据所述第一分支指令的检查点信息恢复超标量处理器的状态。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在所述获取所述第一指令的分支标识之后,还包括:
将所述第一指令的异常信息存储在第一电路中;其中,所述第一电路用于保存程序执行过程中发生异常的指令的异常信息;
在所述根据所述第一分支指令的检查点信息恢复超标量处理器的状态之后,还包括:
从所述第一分支指令开始,重新取指并执行所述程序;
若所述第一指令执行时再次发生异常,判断所述第一指令再次发生的异常为所述第一电路中存储的所述异常信息对应的异常,则不对所述第一指令的异常立即响应。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,当所述第一指令为分支指令时,
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司;中国科学院计算技术研究所,未经华为技术有限公司;中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310142721.1/2.html,转载请声明来源钻瓜专利网。