指令处理方法及处理器
文献发布时间:2023-06-19 12:24:27
技术领域
本发明涉及指令处理技术领域,尤其涉及一种指令处理方法及处理器。
背景技术
随着联网设备的日益增多,保障联网设备的安全成为一个重要的研究课题,在联网设备的加解密过程中,联网设备的微处理器容易遇到攻击,一般抵抗攻击的方式包括:在算法中插入随机执行的伪指令、在硬件上使用随机时钟、在硬件上进行冗余设计或者在算法上进行冗余设计,采用上述方式进行指令处理不仅导致硬件设计成本增加,而且导致软件执行效率降低。
发明内容
本申请实施例通过提供一种指令处理方法及处理器,通过在同一个处理器中复用硬件资源同时实现了安全指令的随机化执行及冗余执行,提高微处理器的执行效率及安全性。
本申请实施例提供了一种指令处理方法,所述指令处理方法包括:
由第一指令队列中提取目标指令,执行提取的所述目标指令;
在所述目标指令的类型为第一类型时,将所述目标指令的状态设置为可提交状态;
在所述目标指令的类型为第二类型时,按照所述目标指令的重复执行次数随机重复执行所述目标指令,所述重复执行次数为至少两次;
在所述目标指令的至少两次执行结果不一致时,判定出现异常。
在一实施例中,所述按照所述目标指令的重复执行次数随机重复执行所述目标指令的步骤包括:
将所述目标指令添加至第二指令队列中;
由第一指令队列或者第二指令队列中随机提取所述目标指令;
执行提取的所述目标指令;
判断所述目标指令的已执行次数是否达到所述重复执行次数;
在所述目标指令的已执行次数未达到所述重复执行次数时,比对所述目标指令的至少两次执行结果。
在一实施例中,所述由第一指令队列或第二指令队列中随机提取所述目标指令的步骤包括:
在所述第一指令队列或所述第二指令队列均包括目标指令时,判断所述第一指令队列中的目标指令与缓存队列中已缓存的指令是否存在关联;
在所述第一指令队列中的所述目标指令与缓存队列中已缓存的指令不存在关联时,随机从第一指令队列或第二指令队列提取目标指令;
在所述第一指令队列中的所述目标指令与缓存队列中已缓存的指令存在关联时,随机从所述第二指令队列中提取目标指令。
在一实施例中,所述在所述目标指令的至少两次执行结果相同时,将所述目标指令的状态设置为可提交状态的步骤之后还包括:
在缓存队列中缓存第一次执行所述目标指令的执行结果以及所述目标指令。
在一实施例中,所述按照所述目标指令的重复执行次数随机重复执行所述目标指令的步骤之后包括:
在所述目标指令的至少两次执行结果相同时,将所述目标指令的状态设置为可提交状态。
在一实施例中,所述在缓存队列中缓存第一次执行所述目标指令的执行结果以及所述目标指令的步骤之后,还包括:
获取缓存队列中的待提交的目标指令;
获取所述缓存队列中待提交的目标指令的状态;
在所述待提交的目标指令的状态为可提交状态时,提交所述目标指令。
在一实施例中,所述将所述目标指令的状态设置为可提交状态的步骤包括:
将所述目标指令的状态标识由第一标识切换为第二标识;
所述获取所述缓存队列中待提交的目标指令的状态的步骤包括:
获取所述缓存队列中待提交的目标指令的状态标识,其中,在所述状态标识为第二标识时,判定所述待提交的目标指令的状态为可提交状态。
在一实施例中,所述判断所述目标指令的已执行次数是否达到所述重复执行次数的步骤之后,还包括:
在所述目标指令的已执行次数达到所述重复执行次数时,将所述目标指令从所述第二指令队列中清除。
在一实施例中,所述在所述目标指令的至少两次执行结果不一致时,判定出现异常的步骤之后,还包括:
输出报警信息。
此外,为实现上述目的,本发明还提供了一种处理器,所述处理器包括:指令提取模块,用于由第一指令队列中提取目标指令,执行提取的所述目标指令;
状态更改模块,用于在所述目标指令的类型为第一类型时,将所述目标指令的状态设置为可提交状态;
指令执行模块,用于在所述目标指令的类型为第二类型时,按照所述目标指令的重复执行次数随机重复执行所述目标指令,所述重复执行次数为至少两次;
判断模块,用于在所述目标指令的至少两次执行结果不一致时,判定出现异常。
本申请实施例中提供的一种指令处理方法及处理器的技术方案,至少具有如下技术效果或优点:
由于采用了由第一指令队列中提取目标指令,执行提取的所述目标指令,判断提取的目标指令的类型,根据目标指令的类型确定对应的执行模式,在所述目标指令的类型为第一类型时,将所述目标指令的状态设置为可提交状态,在所述目标指令的类型为第二类型时,按照所述目标指令的重复执行次数随机重复执行所述目标指令,从而实现对安全防护等级较低的目标指令,只执行一次,保证了效率,而对于安全防护等级较高的目标指令,则冗余执行多次,保证了安全性,实现在性能与安全的平衡;同时,在执行的过程中,在所述目标指令的至少两次执行结果不一致时,则判定出现异常,解决了无法有效的检测异常的问题,使微处理器可以抵抗故障攻击,提高微处理器的安全性,这种指令处理方法使安全指令的执行同时具备随机性,从而使硬件泄露的功耗信息也具有了随机性,可以增加侧信道攻击的难度。
附图说明
图1为本发明指令处理方法的处理流程示意图;
图2为本发明指令处理方法第一实施例的流程示意图;
图3为本发明指令处理方法第二实施例的流程示意图;
图4为本发明指令处理方法第六实施例的流程示意图;
图5为本发明处理器的结构示意图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了更好的理解上述技术方案,下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了指令处理方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
如图2所示,在本申请的第一实施例中,本申请的指令处理方法,包括以下步骤:
步骤S110,由第一指令队列中提取目标指令,执行提取的所述目标指令;
步骤S120,在所述目标指令的类型为第一类型时,将所述目标指令的状态设置为可提交状态;
步骤S130,在所述目标指令的类型为第二类型时,按照所述目标指令的重复执行次数随机重复执行所述目标指令,所述重复执行次数为至少两次;
步骤S140,在所述目标指令的至少两次执行结果不一致时,判定出现异常。
在本实施例中,本申请为了解决硬件攻击的问题,设计了一种通用的安全微处理器架构,在处理器微架构层面同时考虑对故障攻击的防护以及指令执行效率,从而更好的兼顾微处理器的安全性以及性能,具体的,硬件动态区分通用指令和安全指令的执行模式,对于安全防护等级较低的通用指令,只执行一次,保证了效率;而对于安全防护等级较高的安全指令,则冗余执行多次,保证了安全性,从而在性能与安全上取得平衡。
在本实施例中,所述第一指令队列为发射队列,所述第一类型的目标指令为通用指令,所述通用指令包括通用的算术指令、跳转指令等,比如加法指令、减法指令等,所述第二类型的目标指令为安全指令,所述安全指令根据实际需求进行定义,比如,定义两条安全指令:sbox用于加解密算法中的S盒替换;modexp对操作数进行模幂运算;所述安全指令的重复执行次数的设置,可以是整个系统以硬件固化设置的形式配置,也可以是通过特殊控制寄存器全局设置,由软件动态配置,还可以是以指令编码的形式嵌入到安全扩展指令集的编码中,从而实现不同类型的安全指令具有不同的冗余执行次数。
在本实施例中,通用指令按照正常的流程,分别经过指令提取、指令译码之后,被指令发射模块发送到指令执行模块执行,执行完成之后,在满足提交条件之后,该指令被指令提交模块提交,与通用指令的区别是,处理器架构可以定义安全指令冗余执行的次数,在该指令达到冗余执行次数之前不能被提交;具体的,指令在经过指令提取、指令译码后,进入所述发射队列,在指令的发射阶段,调度器从发射队列调度出指令,并根据指令类型将其发送到对应的执行单元执行,具体的,从调度器中调度目标指令进行执行的时候,会判断调度的目标指令对应的指令类型,当所述目标指令的指令类型为通用指令时,将所述通用指令发送至通用执行单元执行,当所述目标指令的指令类型为安全指令时,将所述安全指令发送至安全执行单元。
在本实施例中,将执行结果分别写回缓存队列,所述缓存队列相当于一个保留站,所述缓存队列中包括队列域名以及对应的队列数据,所述队列域名下包括对应的队列数据,所述队列域名包括:目标指令的类型、目标指令的状态以及目标指令的执行结果,所述目标指令的状态包括两种:可提交状态以及不可提交状态,当所述目标指令的类型为通用指令时,所述缓存队列中所述目标指令的状态只有一种,即可提交状态,这是因为通用指令的安全防护等级较低,因此只需要执行一次就可以将目标指令的状态设置为提交状态;当所述目标指令的类型为安全指令时,所述缓存队列中所述目标指令的状态包括两种:可提交状态以及不可提交状态,这是因为安全指令的安全防护等级较高,因此需要执行至少两次才能将目标指令的状态设置为可提交状态。
在本实施例中,安全指令在第一次从发射队列被调度执行时,同时会将该安全指令记录到安全指令队列中,将安全指令记录到安全指令队列的目的在于,从所述安全指令队列中随机调度对应的指令进行重复次数的执行,所述安全指令的重复执行次数至少设置为两次,目的在于可进行执行结果的比较,判断执行结果是否一致,例如,当重复执行次数为两次时,在所述目标指令第一次执行时,将所述目标指令第一次的执行结果存储在缓存队列中,目标指令的第二次执行结果会与缓存队列中记录的该条目标指令的第一次执行结果做比较,如果两次执行结果不一致,即表明这条指令的执行出现故障,上报异常处理单元;当三次的执行结果至少存在一次不一致时,则表明这条指令的执行出现故障,上报异常处理单元。
在本实施例中,在从安全指令队列中随机调度安全指令进行重复执行次数执行时,会将执行结果进行比对,判断每次的执行结果是否一致,当执行结果不一致时,该目标指令并不会被提交,而是上报到异常处理模块,在异常处理模块中,会触发软件异常或者生成报警信息以提示所述微处理器可能存在攻击。
在本实施例的技术方案中,针对不同的指令设置不同的执行次数,提高了指令的执行效率,同时从安全指令队列中随机调度不同的安全指令进行处理,安全指令队列中的所有指令被随机分散到通用指令中,同时安全指令队列中的指令的冗余执行顺序也被打乱,减弱硬件执行单元执行操作与原始指令顺序之间的关联,增大了侧信道攻击的难度。
如图3所示,图3为本申请第二实施例的流程示意图,图3中包括本申请第一实施例中步骤S130的细化步骤,包括以下步骤:
步骤S131,将所述目标指令添加至第二指令队列中;
步骤S132,由第一指令队列或第二指令队列中随机提取所述目标指令;
步骤S133,执行提取的所述目标指令;
步骤S134,判断所述目标指令的已执行次数是否达到所述重复执行次数;
步骤S135,在所述目标指令的已执行次数未达到所述重复执行次数时,比对所述目标指令的至少两次执行结果。
在本实施例中,所述安全指令队列为第二指令队列,所述安全指令队列同样包括队列域名以及对应的队列数据,所述队列域名包括:目标指令的状态标志、目标指令的类型、目标指令的执行次数以及目标指令的源操作数,其中,目标指令的状态标志(用used字段表示),表示该条表项是否有效,当安全指令被记录到安全指令队列中的空闲表项时,该表项的目标指令的状态标志置一,当这条安全指令被提交时,目标指令的状态标志清零;目标指令的类型(用Instruction字段表示);目标指令的执行次数(用count字段表示),表示该指令已经重复执行的次数;目标指令的源操作数(用rs1、rs2字段表示),表示该目标指令的源操作数。
在本实施例中,安全指令在第一次从发射队列调度指令执行时,同时会将该安全指令记录到安全指令队列中,将安全指令记录到安全指令队列的目的在于,从所述安全指令队列中随机调度对应的指令进行重复次数的执行,并将执行结果发送至缓存队列中,从而使安全指令队列中的指令的重复执行顺序也被打乱,减弱硬件执行单元执行操作与原始指令顺序之间的关联,增大了侧信道攻击的难度。
在本实施例中,指令发射的调度器,在每个时钟周期,都会随机从安全指令队列中有效的表项中调度安全指令发射,安全指令每执行一次,目标指令的执行次数累积加1,判断所述目标指令的已执行次数是否达到所述重复执行次数,在所述目标指令的已执行次数未达到所述重复执行次数时,比对所述目标指令的至少两次执行结果。
在本实施例的技术方案中,目标指令进入安全指令队列之后,从安全指令中调度对应的安全指令进行处理,将执行结果发送到缓存队列中,安全指令队列中的所有目标指令被随机分散到通用指令中,使得安全指令队列中的指令的重复执行顺序也被打乱,减弱硬件执行单元执行操作与原始指令顺序之间的关联,增大了侧信道攻击的难度。
以下为本申请的第三实施例,第三实施例的步骤S1321-步骤S1323是第二实施例中步骤S132的细化步骤,包括:
步骤S1321,在所述第一指令队列或所述第二指令队列均包括目标指令时,判断所述第一指令队列中的目标指令与缓存队列中已缓存的指令是否存在关联;
步骤S1322,在所述第一指令队列中的所述目标指令与缓存队列中已缓存的指令不存在关联时,随机从第一指令队列或第二指令队列提取目标指令;
步骤S1323,在所述第一指令队列中的所述目标指令与缓存队列中已缓存的指令存在关联时,随机从所述第二指令队列中提取目标指令。
在本实施例中,在安全指令第一次被调度发射时,同时被存储于第二指令队列中,指令发射的调度器,在每个时钟周期都会随机调度有效的安全指令发射,可以从第一指令队列或者第二指令队列中随机调度对应的指令进行发射,在这个过程中,在每个时钟周期,如果第一指令队列、第二指令队列都有指令时,需要判断第一指令队列中的目标指令与缓存队列中已缓存的指令是否存在关联,即待发射指令与正在执行的指令是否存在关联,例如,存在缓存于缓存队列中的指令R1=R2+R3,当从第一指令队列中待发射指令为R5=R1+R4时,因为此时,R1属于正在执行的指令,因此,判定第一指令队列中待发射的目标指令R5与缓存队列中已存储的指令即正在执行的指令R1之间存在关联,只能从第二指令队列中提取目标指令发射;例如,存在缓存于缓存队列中的指令R1=R2+R3,当从第一指令队列中待发射指令为R7=R5+R6时,因为此时,R5、R6不属于正在执行的指令,因此,判定第一指令队列中待发射的目标指令与缓存队列中已存储的指令之间不存在关联,随机从所述第一指令队列或第二指令队列中提取目标指令发射。
在本实施例的技术方案中,通过采用在所述第一指令队列或所述第二指令队列均包括目标指令时,判断所述第一指令队列中的目标指令与缓存队列中已缓存的指令是否存在关联;在所述第一指令队列中的所述目标指令与缓存队列中已缓存的指令不存在关联时,随机从第一指令队列或第二指令队列提取目标指令;在所述第一指令队列中的所述目标指令与缓存队列中已缓存的指令存在关联时,随机从所述第二指令队列中提取目标指令的技术方案,实现指令的随机提取。
以下为本申请的第四实施例,第四实施例的步骤S210位于第二实施例步骤S122之前,包括:
步骤S210,在缓存队列中缓存第一次执行所述目标指令的执行结果以及所述目标指令。
在本实施例中,每次从安全指令队列中调度目标指令进行执行时,都会将目标指令的执行结果以及目标指令发送至缓存队列中进行缓存,在该缓存队列中不仅缓存着通用指令的执行结果,还缓存着安全指令的执行结果,具体的,当安全指令第一次被执行时,将第一次执行结果存储至缓存队列,在此以后,每一次从第二指令队列中随机获取目标指令进行重复次数执行时,都会将每一次的执行结果与缓存队列缓存的第一次执行结果进行比较,例如,将第1次执行的结果暂存到图1中的缓存队列的result域段;第2次执行的结果跟result(即第一次执行的结果)比对,不一致则报异常;第3次执行的结果跟result(即第1次、第2次执行的结果,由于没有报异常,前两次的结果都是一样的)比对,不一致则报异常,在这个过程中,不过冗余执行多少次,之前的结果都只需要存储1份在result域段就可以,后续新的冗余执行结果直接跟result做比较。
在本实施例的技术方案中,将安全指令第一次的执行结果发送到缓存队列中,以将安全指令的执行结果保留以进行执行结果的比对,当所述安全指令变为可提交状态时,提交所述安全指令。
以下为本申请的第五实施例,第五实施例的步骤S310位于第二实施例步骤S135之后,包括:
步骤S310,在所述目标指令的至少两次执行结果相同时,将所述目标指令的状态设置为可提交状态。
在本实施例中,从所述安全指令队列中调度对应的指令进行重复次数的执行,所述安全指令的重复执行次数为至少两次,判断执行结果是否一致,在所述目标指令的至少两次执行结果相同时,将所述目标指令的状态设置为可提交状态,例如,当重复执行次数为两次时,目标指令的第二次执行结果会与缓存队列中记录的该条目标指令的第一次执行结果做比较,如果两次的执行结果一致时,则表明微处理器并未遭受攻击,将目标指令的状态设置为可提交状态;当重复执行次数为三次时,若三次的执行结果都一致时,则表明微处理器并未遭受攻击,将目标指令的状态设置为可提交状态。
在本实施例的技术方案中,通过比对安全指令的至少两次执行结果是否一致从而确定所述安全指令的状态,在所述安全指令的至少两次执行结果一致时,将所述安全指令的状态设置为可提交状态,通过检测指令的指令结果从而判断指令是否存在异常。
如图4所示,图4为本申请的第六实施例,本申请的第六实施例步骤S410-步骤S430位于第四实施例步骤S210之后,包括以下步骤:
步骤S410,获取缓存队列中的待提交的目标指令;
步骤S420,获取所述缓存队列中待提交的目标指令的状态;
步骤S430,在所述待提交的目标指令的状态为可提交状态时,提交所述目标指令。
在本实施例中,获取缓存队列中的待提交的目标指令以及所述目标指令的状态,在所述待提交的目标指令的状态为可提交状态时,提交所述目标指令,具体的,从发射队列中发射的指令包括通用指令以及安全指令,在指令提取、指令译码阶段,通用指令跟安全指令被等同对待,即硬件并不区分这两类指令,它们在译码之后,都进入到发射队列中,其排序是不确定的,可以是任意排序方式,例如,其排序方式可以是:sbox指令、add指令、sub指令、modexp指令,在指令发射阶段,调度器从发射队列调度出指令到对应的指令执行单元执行,其中add指令、sub指令只执行一次,执行结果被发送到缓存队列,处于可提交状态,sbox指令、modexp指令至少执行两次,执行结果被发送到缓存队列,第一次执行时,处于不可提交的状态,调度器从发射队列调度出安全指令到对应的指令执行单元执行时,还会在安全指令队列中缓存对应的安全指令,缓存队列的缓存情况具体如图1所示,图1中的200是缓存队列,100是安全指令队列,此时,缓存队列的缓存情况为sbox指令、add指令、sub指令、modexp指令,可以看到,sbox指令对应的目标指令的状态为不可提交状态,而add指令对应的目标指令的状态为可提交状态,因此,只有等待sbox指令从安全指令队列中调度对应的sbox指令并执行重复次数且执行结果一致时,才可将sbox指令的执行状态变为可提交状态,在提交所述sbox指令后,才能提交所述add指令。
在本实施例的技术方案中,通过获取缓存队列中的待提交的目标指令以及所述缓存队列中待提交的目标指令的状态,在所述待提交的目标指令的状态为可提交状态时,提交所述目标指令,从而减弱硬件执行单元执行操作与原始指令顺序之间的关联,增大了侧信道攻击的难度。
以下为本申请的第七实施例,本申请第七实施例的步骤S311是第五实施例步骤S310的细化步骤,步骤S421是第六实施例步骤S420的细化步骤,包括:
步骤S311,将所述目标指令的状态标识由第一标识切换为第二标识;
所述获取所述缓存队列中待提交的目标指令的状态的步骤包括:
步骤S421,获取所述缓存队列中待提交的目标指令的状态标识,其中,在所述状态标识为第二标识时,判定所述待提交的目标指令的状态为可提交状态。
在本实施例中,所述第一标识为目标指令的状态为不可提交状态,所述第二标识为目标指令的状态为可提交状态,获取缓存队列中待提交的目标指令的状态标识,当所述目标指令的状态标识为第二标识时,判定所述待提交的目标指令的状态为可提交状态,提交所述待提交的目标指令。
在本实施例中,指令发射的调度器,每隔一段随机的时钟周期,就会随机从安全指令队列中从所有有效(即used字段等于1)的表项中调度安全指令发射,安全指令每执行一次,目标指令的执行次数累积(即count字段)加1,判断所述目标指令的已执行次数是否达到所述重复执行次数,在所述目标指令的已执行次数未达到所述重复执行次数时,返回执行所述将所述目标指令添加至第二指令队列中,直到安全指令达到设置的重复执行次数,同时,在安全指令的已执行次数达到设置的重复执行次数时,比对安全指令每次执行对应的执行结果,若安全指令每次执行对应的执行结果一致时,目标指令的状态标识由第一标识变为第二标识时,处于可提交状态,即valid字段由0变为1时,指令可被提交,当提交可提交状态的目标指令时,清除缓存队列中的安全指令,所述used字段变为0。
在本实施例的技术方案中,当目标指令的状态标识由第一标识切换为第二标识时,判定所述待提交的目标指令的状态为可提交状态,提交所述待提交的目标指令。
以下为本申请的第八实施例,第八实施例的步骤S510位于第二实施例步骤S134之后,包括:
步骤S510,在所述目标指令的已执行次数达到所述重复执行次数时,将所述目标指令从所述第二指令队列中清除。
在本实施例中,在安全指令的已执行次数达到重复执行次数,且安全指令每次执行对应的执行结果一致时,目标指令处于可提交状态,指令可被提交,当提交可提交状态的目标指令时,清除缓存队列中的安全指令。
在本实施例的技术方案中,通过在目标指令的已执行次数达到重复执行次数时,将目标指令清除。
本发明指令处理系统具体实施方式与上述指令处理方法各实施例基本相同,在此不再赘述。
以下为本申请第九实施例,第九实施例的步骤S610位于第一实施例步骤S140之后,包括:
步骤S610,输出报警信息。
在本实施例中,在从安全指令队列中调度安全指令进行重复执行次数执行时,会将执行结果进行比对,判断每次的执行结果是否一致,当执行结果不一致时,该目标指令并不会被提交,而是上报到异常处理模块,在异常处理模块中,会触发软件异常或者生成报警信息以提示所述微处理器可能存在攻击。
在本实施例的技术方案中,通过在检测到安全指令存在异常时,输出报警信息以提示微处理可能存在攻击。
如图5所示,图5为本发明处理器的结构示意图,基于同一发明构思,本申请的处理器包括指令提取模块10、状态更改模块20、指令执行模块30、判断模块40,以下分别对各个模块展开论述:
指令提取模块10,用于由第一指令队列中提取目标指令,执行提取的所述目标指令;
状态更改模块20,用于在所述目标指令的类型为第一类型时,将所述目标指令的状态设置为可提交状态;所述状态更改模块20还用于在所述目标指令的至少两次执行结果相同时,将所述目标指令的状态设置为可提交状态;所述状态更改模块20还用于将所述目标指令的状态标识由第一标识切换为第二标识;所述获取所述缓存队列中待提交的目标指令的状态的步骤包括:获取所述缓存队列中待提交的目标指令的状态标识,其中,在所述状态标识为第二标识时,判定所述待提交的目标指令的状态为可提交状态。
指令执行模块30,用于在所述目标指令的类型为第二类型时,按照所述目标指令的重复执行次数随机重复执行所述目标指令,所述重复执行次数为至少两次;进一步的,所述指令执行模块30还用于将所述目标指令添加至第二指令队列中;由第一指令队列或第二指令队列中随机提取目标指令;执行提取的所述目标指令;判断所述目标指令的已执行次数是否达到所述重复执行次数;在所述目标指令的已执行次数未达到所述重复执行次数时,比对所述目标指令的至少两次执行结果;进一步的,所述指令执行模块30还用于在所述第一指令队列或所述第二指令队列均包括目标指令时,判断所述第一指令队列中的目标指令与缓存队列中已缓存的指令是否存在关联;在所述第一指令队列中的所述目标指令与缓存队列中已缓存的指令不存在关联时,随机从第一指令队列或第二指令队列提取目标指令;在所述第一指令队列中的所述目标指令与缓存队列中已缓存的指令存在关联时,随机从所述第二指令队列中提取目标指令。
判断模块40,用于在所述目标指令的至少两次执行结果不一致时,判定出现异常。
本发明处理器具体实施方式与上述指令处理方法各实施例基本相同,在此不再赘述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
- 指令处理方法、指令处理系统及处理器、芯片
- 指令处理方法及网络处理器指令处理装置