CN111159660B - 指令执行方法、处理器和电子设备 - Google Patents
指令执行方法、处理器和电子设备 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000012545 processing Methods 0.000 claims description 8
- 230000000694 effects Effects 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing 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任一项所述的方法。
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)
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)
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)
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 |
-
2019
- 2019-12-30 CN CN201911390216.2A patent/CN111159660B/zh active Active
Patent Citations (4)
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)
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 |