CN111159660B - 指令执行方法、处理器和电子设备 - Google Patents

指令执行方法、处理器和电子设备 Download PDF

Info

Publication number
CN111159660B
CN111159660B CN201911390216.2A CN201911390216A CN111159660B CN 111159660 B CN111159660 B CN 111159660B CN 201911390216 A CN201911390216 A CN 201911390216A CN 111159660 B CN111159660 B CN 111159660B
Authority
CN
China
Prior art keywords
instruction
invalid
redo
executed
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911390216.2A
Other languages
English (en)
Other versions
CN111159660A (zh
Inventor
邢金璋
贾凡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Loongson Technology Corp Ltd
Original Assignee
Loongson Technology Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Loongson Technology Corp Ltd filed Critical Loongson Technology Corp Ltd
Priority to CN201911390216.2A priority Critical patent/CN111159660B/zh
Publication of CN111159660A publication Critical patent/CN111159660A/zh
Application granted granted Critical
Publication of CN111159660B publication Critical patent/CN111159660B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computing Systems (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

本发明提供一种指令执行方法、处理器和电子设备,其中,指令执行方法包括:根据程序计数器获取待执行的指令;其中,所述程序计数器当前指向第一地址,所述第一地址中存储有第一指令;对所述待执行的指令解码;若确定所述待执行的指令为无效重做指令,则执行所述无效重做指令,并根据所述程序计数器重新获取待执行的指令;其中,所述无效重做指令为指令生成单元生成的且被插入至所述第一指令之前被执行。通过指令生成单元生成无效重做指令,并将无效重做指令插入至第一指令之前被执行,在不改变程序计数器的状态的前提下抵抗了侧信道攻击,提高了抵抗侧信道攻击的效果和效率。

Description

指令执行方法、处理器和电子设备
技术领域
本发明涉及计算机技术领域,尤其涉及一种指令执行方法、处理器和电子设备。
背景技术
在很多利用处理器硬件漏洞或处理器本身的特性发起的攻击中,都会使用侧信道攻击作为辅助手段来窃取数据。侧信道攻击也称为边信道攻击(side channel attack,SCA),针对处理器执行软件程序过程中的时间消耗、功率消耗、温度分布、电磁辐射等侧信道信息的泄露而对处理器进行攻击。这类攻击的有效性远高于密码分析的数学方法,带来了严重的威胁。
为了抵抗侧信道攻击,常用的方法是引入随机化。例如,在软件程序中随机插入无效指令。但是,在软件程序中插入无效指令需要对现有的软件程序进行更改,软件程序的重新编译也是一件很繁琐的事情,而且,只起到对特定软件程序的保护,导致抵抗侧信道攻击的效率和效果很差。
发明内容
本发明提供一种指令执行方法、处理器和电子设备,提高了抵抗侧信道攻击的效果和效率。
第一方面,本发明提供一种指令执行方法,包括:
根据程序计数器获取待执行的指令;其中,所述程序计数器当前指向第一地址,所述第一地址中存储有第一指令;
对所述待执行的指令解码;
若确定所述待执行的指令为无效重做指令,则执行所述无效重做指令,并根据所述程序计数器重新获取待执行的指令;其中,所述无效重做指令为指令生成单元生成的且被插入至所述第一指令之前被执行。
可选的,所述待执行的指令包括操作码,所述确定所述待执行的指令为无效重做指令,包括:
若所述待执行的指令包括的操作码为所述无效重做指令对应的操作码,则确定所述待执行的指令为所述无效重做指令。
可选的,所述无效重做指令包括指示域,所述执行所述无效重做指令,包括:
根据指示域的值与指令操作之间的对应关系,确定所述无效重做指令包括的指示域的值对应的目标指令操作;
执行所述目标指令操作。
可选的,所述指令操作包括算数运算操作和访存操作。
可选的,还包括:
获取指令生成参数,所述指令生成参数包括下列中的至少一项:指令生成频率、相邻的无效重做指令之间的时间间隔和指令操作类型对应的生成概率;
通过所述指令生成单元根据所述指令生成参数生成所述无效重做指令。
可选的,所述获取指令生成参数,包括:
获取程序代码中包括的所述指令生成参数。
可选的,所述获取指令生成参数,包括:
通过所述指令生成单元获取处理器的运行信息;
根据所述处理器的运行信息获取所述指令生成参数。
第二方面,本发明提供一种处理器,包括:
取指单元,用于根据程序计数器获取待执行的指令;其中,所述程序计数器当前指向第一地址,所述第一地址中存储有第一指令;
解码单元,用于对所述待执行的指令解码;
处理单元,用于在所述解码单元确定所述待执行的指令为无效重做指令时,执行所述无效重做指令;其中,所述无效重做指令为指令生成单元生成的且被插入至所述第一指令之前被执行;
所述取指单元还用于,根据所述程序计数器重新获取待执行的指令。
可选的,所述待执行的指令包括操作码,所述解码单元具体用于:
若所述待执行的指令包括的操作码为所述无效重做指令对应的操作码,则确定所述待执行的指令为所述无效重做指令。
可选的,所述无效重做指令包括指示域,所述处理单元具体用于:
根据指示域的值与指令操作之间的对应关系,确定所述无效重做指令包括的指示域的值对应的目标指令操作;
执行所述目标指令操作。
可选的,所述指令操作包括算数运算操作和访存操作。
可选的,所述指令生成单元具体用于:
获取指令生成参数,所述指令生成参数包括下列中的至少一项:指令生成频率、相邻的无效重做指令之间的时间间隔和指令操作类型对应的生成概率;
根据所述指令生成参数生成所述无效重做指令。
可选的,所述指令生成单元具体用于:
获取程序代码中包括的所述指令生成参数。
可选的,所述指令生成单元具体用于:
通过所述指令生成单元获取处理器的运行信息;
根据所述处理器的运行信息获取所述指令生成参数。
可选的,所述指令生成单元设置在所述处理器的地址总线上,或者,所述指令生成单元设置在存储器的控制器中。
第三方面,本发明提供一种电子设备,包括:处理器和存储器;
所述处理器用于调用所述存储器中存储的程序,以执行本发明第一方面任一实施方式提供的方法。
本发明提供一种指令执行方法、处理器和电子设备,根据程序计数器获取待执行的指令。由于指令生成单元随机生成无效重做指令,并将无效重做指令插入至第一指令之前被执行,通过随机化的方式改变了原有指令的执行时间,抵抗了侧信道攻击,而且,没有改变程序计数器的状态,确保了程序的编译效率和运行效率,提高了抵抗侧信道攻击的效果和效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的指令执行方法的一种流程图;
图2为本发明实施例提供的处理器的一种结构示意图;
图3为本发明实施例提供的处理器的另一种结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的指令执行方法的一种流程图。本实施例提供的指令执行方法,执行主体可以为处理器。如图1所示,本实施例提供的指令执行方法,可以包括:
S101、根据程序计数器获取待执行的指令。其中,程序计数器当前指向第一地址,第一地址中存储有第一指令。
其中,程序计数器(program counter,PC)是处理器中的一种寄存器,用于存放存储指令的存储单元的地址。通常,程序代码可以实现特定的功能。程序代码经过编译后形成指令。程序计数器的初始值可以为存储程序代码的第一条指令的存储单元的地址。处理器执行程序代码时,首先从程序计数器当前存储的地址中取出一条指令,将该指令由存储单元取到处理器的指令寄存器中,执行该指令。同时,程序计数器指向存储下一条要执行的指令的存储单元的地址。之后,处理器继续根据程序计数器取指令、执行指令,如此循环,从而执行程序代码。
其中,本实施例对存储指令的存储单元不做限定。可选的,存储单元可以位于高速缓冲存储器(cache)中。可选的,存储单元可以位于内存中。
在本步骤中,程序计数器当前指向第一地址,第一地址中存储有第一指令。处理器根据程序计数器获取待执行的指令。
需要说明,在本实施例中,还包括指令生成单元。指令生成单元用于随机生成无效重做指令,并将无效重做指令插入至第一指令之前被执行。这样,由于无效重做指令的随机生成和插入,即使程序计数器当前指向第一地址,第一地址中存储有第一指令,根据程序计数器获取到的待执行的指令也不一定是第一指令,有可能是插入的无效重做指令。可见,通过无效重做指令的随机生成和插入,可以改变原有指令的执行时间,抵抗侧信道攻击。而且,由于没有改变程序计数器的状态,程序计数器当前仍指向第一地址,第一地址中存储有第一指令,后续根据程序计数器重新取指令,不会改变原有指令的执行结果。
需要说明,本实施例对无效重做指令的名称不做限定。
S102、对待执行的指令解码。
具体的,取到的待执行的指令可能是第一指令,也可能不是第一指令,而是无效重做指令。对待执行的指令解码后,如果确定待执行的指令是无效重做指令,则执行S103。如果确定待执行的指令是第一指令,则执行第一指令。
S103、若确定待执行的指令为无效重做指令,则执行无效重做指令,并根据程序计数器重新获取待执行的指令。
其中,无效重做指令为指令生成单元生成的且被插入至第一指令之前被执行。
具体的,如果待执行的指令是无效重做指令,则执行该无效重做指令,并根据程序计数器重新获取待执行的指令。此时,程序计数器当前依然指向第一地址,第一地址中存储有第一指令。后续,根据程序计数器重新获取待执行的指令可以理解为返回执行S101,可能存在如下场景。在一种场景中,第一指令之前没有被插入无效重做指令,则根据程序计数器获取的待执行的指令为第一指令。同时,程序计数器将指向存储第一指令之后的下一条要执行的指令的存储单元的地址。在另一种场景中,第一指令之前又被插入无效重做指令,则根据程序计数器获取的待执行指令依然为无效重做指令。
可见,本实施例提供的指令执行方法,根据程序计数器获取待执行的指令。由于指令生成单元随机生成无效重做指令,并将无效重做指令插入至第一指令之前被执行,通过随机化的方式改变了原有指令的执行时间,抵抗了侧信道攻击。但是,并没有改变程序计数器的状态和程序代码编译后形成的指令的顺序。相比于现有技术中对软件程序进行更改、对软件程序进行重新编译的方法,本实施例提供的指令执行方法,不需要修改程序代码,避免了修改程序代码引入的风险,不仅确保了程序的编译效率和运行效率,同时提高了抵抗侧信道攻击的效果和效率。
可选的,本实施例提供的指令执行方法,S102之后还可以包括:
若确定待执行的指令为第一指令,则执行第一指令,并根据程序计数器获取待执行的指令。
其中,根据程序计数器获取待执行的指令可以参见S103中的说明,原理相似,此处不再赘述。
可选的,待执行的指令包括操作码,S103中,确定待执行的指令为无效重做指令,可以包括:
若待执行的指令包括的操作码为无效重做指令对应的操作码,则确定待执行的指令为无效重做指令。
通常,指令的结构包括操作码和操作数。操作码用于指示指令的类型,本实施例对指令的类型不做限定。例如,可以包括但不限于以下类型:算数运算指令、访存指令,或无效重做指令。操作码占用预设数值个比特位,通过预设数值个比特位的不同取值表示不同类型的指令。其中,本实施例对预设数值的取值不做限定,根据计算机指令系统的规模可以有所不同。如果待执行的指令包括的操作码为无效重做指令对应的操作码,则确定待执行的指令为无效重做指令。
需要说明,本实施例对无效重做指令对应的操作码不做限定。
可选的,无效重做指令可以包括指示域,S103中执行无效重做指令,可以包括:
根据指示域的值与指令操作之间的对应关系,确定无效重做指令包括的指示域的值对应的目标指令操作。
执行目标指令操作。
具体的,指示域的取值与指令操作之间具有一一对应关系,指示域的取值不同,对应的指令操作不同。通过无效重做指令包括的指示域的值,根据该对应关系,可以确定无效重做指令对应的指令操作,无效重做指令对应的指令操作可以称为目标指令操作。
可选的,指令操作可以包括但不限于算数运算操作和访存操作。
可选的,算数运算操作可以包括但不限于加法操作、减法操作、乘法操作、除法操作、取余操作。可选的,每种算数运算操作的操作数可以为浮点型。
下面通过示例对本实施例可能出现的应用场景进行示例性说明。其中,程序计数器当前指向第一地址,第一地址中存储有第一指令。第一指令之后为第二指令。
可选的,在一个示例中,根据程序计数器获取到的待执行的指令为第一指令。执行第一指令。之后,根据程序计数器重新获取的待执行的指令为第二指令。
可选的,在另一个示例中,根据程序计数器获取到的待执行的指令为第一指令。执行第一指令。之后,根据程序计数器重新获取到的待执行的指令为无效重做指令1,无效重做指令1对应的目标指令操作为加法操作。之后,根据程序计数器获取到的待执行的指令为第二指令。
可选的,在又一个示例中,根据程序计数器获取到的待执行的指令为第一指令。执行第一指令。之后,根据程序计数器重新获取到的待执行的指令为无效重做指令1,无效重做指令1对应的目标指令操作为加法操作。之后,根据程序计数器获取到的待执行的指令为无效重做指令2,无效重做指令2对应的目标指令操作为减法操作。
可选的,在又一个示例中,根据程序计数器获取到的待执行的指令为无效重做指令1,无效重做指令1对应的目标指令操作为加法操作。之后,根据程序计数器重新获取到的待执行的指令为第一指令。
可选的,在又一个示例中,根据程序计数器获取到的待执行的指令为无效重做指令1,无效重做指令1对应的目标指令操作为加法操作。之后,根据程序计数器重新获取到的待执行的指令为无效重做指令2,无效重做指令2对应的目标指令操作为访存操作。之后,根据程序计数器重新获取到的待执行的指令为第一指令。
可选的,本实施例提供的指令执行方法,还可以包括:
获取指令生成参数。其中,指令生成参数包括下列中的至少一项:指令生成频率、相邻的无效重做指令之间的时间间隔和指令操作类型对应的生成概率。
通过指令生成单元根据指令生成参数生成无效重做指令。
其中,指令生成频率,用于指示指令生成单元生成无效重做指令的频率,该频率可以是固定不变的值,也可以为变化的值。例如,在第一时间段内,指令生成频率为f1,在第二时间段内,指令生成频率为f2。
相邻的无效重做指令之间的时间间隔,用于指示两条相邻的无效重做指令之间的时间间隔。该时间间隔可以为固定的值,也可以为变化的值。例如,连续的4条无效重做指令标记为无效重做指令1~4。其中,无效重做指令1与无效重做指令2之间的时间间隔为T1,无效重做指令2与无效重做指令3之间的时间间隔为T2,无效重做指令3与无效重做指令4之间的时间间隔为T1。T1和T2的取值不同。
指令操作类型对应的生成概率,用于指示生成无效重做指令时其对应的不同指令操作类型的生成概率。例如,加法操作的生成概率为P1,减法操作的生成概率为P2,访存操作的生成概率为P3。指令操作类型对应的生成概率可以是固定不变的值,也可以为变化的值。
本实施例对各个指令生成参数的取值不做限定。
可选的,在一种实现方式中,获取指令生成参数,可以包括:
获取程序代码中包括的指令生成参数。
通过在程序代码中设置指令生成参数,直接获取程序代码中包括的指令生成参数,便于程序编写者根据不同的程序灵活的设置无效重做指令的生成模式,针对不同的程序代码有效抵抗了侧信道攻击,提升了抵抗侧信道攻击的效果。
可选的,在另一种实现方式中,获取指令生成参数,可以包括:
通过指令生成单元获取处理器的运行信息。
根据处理器的运行信息获取指令生成参数。
通过获取处理器的运行信息
在程序代码中设置指令生成参数,直接获取程序代码中包括的指令生成参数,便于程序编写者根据不同的程序灵活的设置无效重做指令的生成模式,针对不同的程序代码有效抵抗了侧信道攻击,提升了抵抗侧信道攻击的效果。
可选的,处理器的运行信息可以包括但不限于:处理器运行单条指令的时间、处理器的温度、处理器的资源占用率。
图2为本发明实施例提供的处理器的一种结构示意图。本实施例提供的处理器,用于执行图1所示实施例提供的指令执行方法。如图2所示,本实施例提供的处理器,可以包括:
取指单元11,用于根据程序计数器获取待执行的指令;其中,所述程序计数器当前指向第一地址,所述第一地址中存储有第一指令;
解码单元12,用于对所述待执行的指令解码;
处理单元13,用于在所述解码单元12确定所述待执行的指令为无效重做指令时,执行所述无效重做指令;其中,所述无效重做指令为指令生成单元14生成的且被插入至所述第一指令之前被执行;
所述取指单元11还用于,根据所述程序计数器重新获取待执行的指令。
可选的,所述待执行的指令包括操作码,所述解码单元12具体用于:
若所述待执行的指令包括的操作码为所述无效重做指令对应的操作码,则确定所述待执行的指令为所述无效重做指令。
可选的,所述无效重做指令包括指示域,所述处理单元13具体用于:
根据指示域的值与指令操作之间的对应关系,确定所述无效重做指令包括的指示域的值对应的目标指令操作;
执行所述目标指令操作。
可选的,所述指令操作包括算数运算操作和访存操作。
可选的,所述指令生成单元14具体用于:
获取指令生成参数,所述指令生成参数包括下列中的至少一项:指令生成频率、相邻的无效重做指令之间的时间间隔和指令操作类型对应的生成概率;
根据所述指令生成参数生成所述无效重做指令。
可选的,所述指令生成单元14具体用于:
获取程序代码中包括的所述指令生成参数。
可选的,所述指令生成单元14具体用于:
通过所述指令生成单元14获取处理器的运行信息;
根据所述处理器的运行信息获取所述指令生成参数。
需要说明,本实施例对指令生成单元14的设置位置不做限定。
可选的,在一种实现方式中,指令生成单元14可以设置在处理器内部,具体设置在处理器的地址总线上。
可选的,在另一种实现方式中,指令生成单元14可以设置在存储器的控制器中。举例说明,指令生成单元14可以设置在cache对应的控制器中,或者,设置在内存控制器中。
可选的,处理单元13可以包括执行单元131和访存单元132。执行单元131用于执行算数运算操作,访存单元132用于执行访存操作。
可选的,处理单元13还可以包括物理寄存器133。在执行指令的过程中,指令中可能包括源操作数,需要从物理寄存器堆133中读取出来。物理寄存器堆中还可以存储与指令运行相关的其他数据。例如,将执行单元131或者访存单元132的执行结果写回到物理寄存器堆133中。
可选的,执行单元131可以包括至少一个运算单元。所述至少一个运算单元的类型可以不同,例如,定点运算单元、浮点运算单元,等。
可选的,本实施例提供的处理器,可以为单发射处理器。单发射处理器是指在一个时钟周期内只从存储器中取出一条指令,并且只对一条指令进行解码,只执行一条指令,只写一个运算结果。
本实施例提供的处理器,用于执行图1所示实施例提供的指令执行方法,原理和技术效果相似,此处不再赘述。
图3为本发明实施例提供的处理器的另一种结构示意图。本实施例提供的处理器,用于执行图1所示实施例提供的指令执行方法。本实施例提供的处理器,相比于图2所示实施例提供的处理器,可以为多发射处理器。多发射处理器是指在一个时钟周期内可以同时从存储器中取出多条指令,同时对多条指令进行解码。如图3所示,本实施例提供的处理器,在图2所示处理器的基础上,还可以包括:重命名单元134、发射单元135和重排序单元136。
其中,重命名单元134用于将指令的写回物理寄存器堆133的地址重命名。
发射单元135,用于确定将指令发送到哪个单元执行,例如,发送到执行单元执行,或者发送到访存单元执行,或者发送到执行单元中的定点运算单元执行,或者发送到执行单元中的浮点运算单元执行,等等。
重排序单元136,用于按照取指令的顺序,将指令在物理寄存器堆133中的写回地址的数据标记为已提交。
本实施例提供的处理器,用于执行图1所示实施例提供的指令执行方法,可以参见图1和图2,原理和技术效果相似,此处不再赘述。
本发明还提供一种电子设备,可以包括:处理器和存储器。处理器用于调用存储器中存储的程序,以执行图1所示实施例提供的指令执行方法,原理和技术效果相似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。

Claims (14)

1.一种指令执行方法,其特征在于,包括:
根据程序计数器获取待执行的指令;其中,所述程序计数器当前指向第一地址,所述第一地址中存储有第一指令;
对所述待执行的指令解码;
若确定所述待执行的指令为无效重做指令,则执行所述无效重做指令,并根据所述程序计数器重新获取待执行的指令;其中,所述无效重做指令为指令生成单元生成的且被插入至所述第一指令之前被执行;所述无效重做指令是随机生成和插入的且不改变所述程序计数器的状态的指令;
获取指令生成参数,所述指令生成参数包括下列中的至少一项:指令生成频率、相邻的无效重做指令之间的时间间隔和指令操作类型对应的生成概率;
通过所述指令生成单元根据所述指令生成参数生成所述无效重做指令。
2.根据权利要求1所述的方法,其特征在于,所述待执行的指令包括操作码,所述确定所述待执行的指令为无效重做指令,包括:
若所述待执行的指令包括的操作码为所述无效重做指令对应的操作码,则确定所述待执行的指令为所述无效重做指令。
3.根据权利要求1所述的方法,其特征在于,所述无效重做指令包括指示域,所述执行所述无效重做指令,包括:
根据指示域的值与指令操作之间的对应关系,确定所述无效重做指令包括的指示域的值对应的目标指令操作;
执行所述目标指令操作。
4.根据权利要求3所述的方法,其特征在于,所述指令操作包括算数运算操作和访存操作。
5.根据权利要求1所述的方法,其特征在于,所述获取指令生成参数,包括:
获取程序代码中包括的所述指令生成参数。
6.根据权利要求1所述的方法,其特征在于,所述获取指令生成参数,包括:
通过所述指令生成单元获取处理器的运行信息;
根据所述处理器的运行信息获取所述指令生成参数。
7.一种处理器,其特征在于,包括:
取指单元,用于根据程序计数器获取待执行的指令;其中,所述程序计数器当前指向第一地址,所述第一地址中存储有第一指令;
解码单元,用于对所述待执行的指令解码;
处理单元,用于在所述解码单元确定所述待执行的指令为无效重做指令时,执行所述无效重做指令;其中,所述无效重做指令为指令生成单元生成的且被插入至所述第一指令之前被执行;所述无效重做指令是随机生成和插入的且不改变所述程序计数器的状态的指令;
所述取指单元还用于,根据所述程序计数器重新获取待执行的指令;
指令生成单元,用于获取指令生成参数,所述指令生成参数包括下列中的至少一项:指令生成频率、相邻的无效重做指令之间的时间间隔和指令操作类型对应的生成概率;
根据所述指令生成参数生成所述无效重做指令。
8.根据权利要求7所述的处理器,其特征在于,所述待执行的指令包括操作码,所述解码单元具体用于:
若所述待执行的指令包括的操作码为所述无效重做指令对应的操作码,则确定所述待执行的指令为所述无效重做指令。
9.根据权利要求7所述的处理器,其特征在于,所述无效重做指令包括指示域,所述处理单元具体用于:
根据指示域的值与指令操作之间的对应关系,确定所述无效重做指令包括的指示域的值对应的目标指令操作;
执行所述目标指令操作。
10.根据权利要求9所述的处理器,其特征在于,所述指令操作包括算数运算操作和访存操作。
11.根据权利要求7所述的处理器,其特征在于,所述指令生成单元具体用于:
获取程序代码中包括的所述指令生成参数。
12.根据权利要求7所述的处理器,其特征在于,所述指令生成单元具体用于:
通过所述指令生成单元获取处理器的运行信息;
根据所述处理器的运行信息获取所述指令生成参数。
13.根据权利要求7至10任一项所述的处理器,其特征在于,所述指令生成单元设置在所述处理器的地址总线上,或者,所述指令生成单元设置在存储器的控制器中。
14.一种电子设备,其特征在于,包括:处理器和存储器;
所述处理器用于调用所述存储器中存储的程序,以执行如权利要求1至6任一项所述的方法。
CN201911390216.2A 2019-12-30 2019-12-30 指令执行方法、处理器和电子设备 Active CN111159660B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911390216.2A CN111159660B (zh) 2019-12-30 2019-12-30 指令执行方法、处理器和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911390216.2A CN111159660B (zh) 2019-12-30 2019-12-30 指令执行方法、处理器和电子设备

Publications (2)

Publication Number Publication Date
CN111159660A CN111159660A (zh) 2020-05-15
CN111159660B true CN111159660B (zh) 2022-07-15

Family

ID=70559304

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911390216.2A Active CN111159660B (zh) 2019-12-30 2019-12-30 指令执行方法、处理器和电子设备

Country Status (1)

Country Link
CN (1) CN111159660B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114724233B (zh) * 2020-12-21 2024-06-25 青岛海尔多媒体有限公司 用于终端设备姿势控制的方法及装置、终端设备
CN113672236A (zh) * 2021-08-31 2021-11-19 中电科申泰信息科技有限公司 一种增强处理器安全性的指令随机生成执行方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102238006A (zh) * 2010-04-29 2011-11-09 罗伯特·博世有限公司 对密码分析的边信道攻击的防护
CN104583961A (zh) * 2012-08-14 2015-04-29 英派尔科技开发有限公司 基于软件的侧信道攻击防止
CN108171021A (zh) * 2010-12-24 2018-06-15 茂福公司 保护小应用程序免受隐藏信道分析
CN109144572A (zh) * 2018-08-06 2019-01-04 龙芯中科技术有限公司 指令执行方法和处理器

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105224864B (zh) * 2015-11-04 2018-05-04 中国科学院计算技术研究所 一种抵御代码重用攻击的工作进程随机化方法及系统
EP3214566B1 (en) * 2016-03-01 2018-09-12 Siemens Aktiengesellschaft Preventing side channel attacks on a cpu
US11392698B2 (en) * 2019-03-15 2022-07-19 Intel Corporation Active side-channel attack prevention

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102238006A (zh) * 2010-04-29 2011-11-09 罗伯特·博世有限公司 对密码分析的边信道攻击的防护
CN108171021A (zh) * 2010-12-24 2018-06-15 茂福公司 保护小应用程序免受隐藏信道分析
CN104583961A (zh) * 2012-08-14 2015-04-29 英派尔科技开发有限公司 基于软件的侧信道攻击防止
CN109144572A (zh) * 2018-08-06 2019-01-04 龙芯中科技术有限公司 指令执行方法和处理器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"智能卡中抗边信道攻击的AES算法的软件实现";王张亘;《中国优秀硕士学位论文全文数据库 信息科技辑》;20150115(第2015-01期);第I135-189页,正文第3章 *

Also Published As

Publication number Publication date
CN111159660A (zh) 2020-05-15

Similar Documents

Publication Publication Date Title
EP3699795B1 (en) Restricted speculative execution
US10540181B2 (en) Managing branch prediction information for different contexts
May et al. Non-deterministic processors
US11392672B2 (en) Computer program code obfuscation methods and systems
US11003450B2 (en) Vector data transfer instruction
JP4511461B2 (ja) データ処理システムでの処理動作マスキング
Cleemput et al. Compiler mitigations for time attacks on modern x86 processors
Tullsen et al. Storageless value prediction using prior register values
WO1997050031A1 (en) Method for increasing performance of binary translated conditional instructions
CA2786045A1 (en) Instructions for performing an operation on a operand in memory and subsequently loading an original value of said operand in a register
US10564968B2 (en) Vector load instruction
KR20130100900A (ko) 조건부 비교 명령
US10782972B2 (en) Vector predication instruction
CN111159660B (zh) 指令执行方法、处理器和电子设备
JP2016536665A (ja) 推論的ベクトル演算の実行を制御するためのデータ処理装置及び方法
TW201830234A (zh) 用於控制矢量記憶體存取之資料處理裝置及方法
Cui et al. Abusing cache line dirty states to leak information in commercial processors
US11307856B2 (en) Branch target variant of branch-with-link instruction
EP4020114A1 (en) Time and frequency domain side-channel leakage suppression using integrated voltage regulator cascaded with runtime crypto arithmetic transformations
CN111936968A (zh) 一种指令执行方法及装置
US20140365751A1 (en) Operand generation in at least one processing pipeline
CN118276951B (zh) 基于risc-v的指令扩展方法及实现装置
Panda Cache based side-channel attacks
CN104102588B (zh) 降低寄存器堆读功耗的电路和方法
KR20230158569A (ko) 집적회로에서 프로그램을 보호하는 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing

Applicant after: Loongson Zhongke Technology Co.,Ltd.

Address before: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing

Applicant before: LOONGSON TECHNOLOGY Corp.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant