CN103988462B - 用于执行寄存器重命名的寄存器重命名数据处理装置和方法 - Google Patents
用于执行寄存器重命名的寄存器重命名数据处理装置和方法 Download PDFInfo
- Publication number
- CN103988462B CN103988462B CN201280059375.4A CN201280059375A CN103988462B CN 103988462 B CN103988462 B CN 103988462B CN 201280059375 A CN201280059375 A CN 201280059375A CN 103988462 B CN103988462 B CN 103988462B
- Authority
- CN
- China
- Prior art keywords
- data processing
- label
- register
- label value
- physical
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 169
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000003860 storage Methods 0.000 claims abstract description 41
- 230000004044 response Effects 0.000 claims abstract description 12
- 230000008569 process Effects 0.000 claims description 63
- 238000013507 mapping Methods 0.000 claims description 28
- 230000006399 behavior Effects 0.000 claims description 4
- 238000013500 data storage Methods 0.000 abstract description 3
- 238000005516 engineering process Methods 0.000 description 27
- 230000006870 function Effects 0.000 description 11
- 230000008901 benefit Effects 0.000 description 7
- 230000002349 favourable effect Effects 0.000 description 6
- 230000001629 suppression Effects 0.000 description 5
- 238000009826 distribution Methods 0.000 description 3
- 241000196324 Embryophyta Species 0.000 description 2
- 235000012364 Peperomia pellucida Nutrition 0.000 description 2
- 240000007711 Peperomia pellucida Species 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 241000165940 Houjia Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000004899 motility Effects 0.000 description 1
- 230000035772 mutation Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000149 penetrating effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007306 turnover Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/75—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/75—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
- G06F21/755—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- 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
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2123—Dummy operation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明提供了一种用于数据处理的装置和方法。处理器响应于引用逻辑寄存器的数据处理指令而执行数据处理操作。一组物理寄存器存储数据值,该数据值受到数据处理操作。标签存储器为每个物理寄存器存储指示逻辑寄存器之一的标签值。处理器引用标签存储器以执行数据处理操作。当处理器执行引用两个逻辑寄存器的预定指令时,标签值交换机执行标签交换以交换在标签存储器中的两个标签值,并且对于哪两个物理寄存器被映射至两个逻辑寄存器中的哪一个寄存器的选择将不会对数据处理操作的结果产生影响。标签值交换机对于指示两个逻辑寄存器的标签值执行标签交换。
Description
技术领域
本发明涉及执行寄存器重命名的数据处理装置。
背景技术
已知的技术提供执行数据处理指令的数据处理装置,其中数据处理指令引用程序模型(例如,逻辑)寄存器,同时数据处理装置本身存储数据值,该数据值受到那些在一组物理寄存器中的数据处理操作。已知的实现被称为寄存器重命名的技术,其中在程序模型寄存器和物理寄存器之间的映射是变化的和被更新的,而不是保持程序模型寄存器和物理寄存器之间的固定映射。
寄存器重命名可能主要是出于与性能有关的原因而被执行的,诸如允许并行执行数据处理指令,例如当序列中的数据处理指令被并行执行或至少被乱序执行,其后寄存器重命名技术被用于维护给定程序模型寄存器的不同版本,这样那些数据处理指令可被以这种并行或乱序的方式执行而不发生数据冒险。尽管从寄存器重命名能够带来的性能收益方面来看,寄存器重命名是有利的,但在数据处理装置中必须提供额外的硬件以允许此类寄存器重命名发生则是不利条件,这是由于其引入的成本和复杂度。这个缺点使得在相对低成本、低功率的设备中使用寄存器重命名的机会尤其被限制。
寄存器重命名在安全性敏感设备的背景下也被认为是有价值的技术,这是因为此技术的方式使得攻击者更难从外部导出关于此类数据处理装置的内部操作的信息(例如,通过设备功率消耗的细粒度观察或通过侵入技术,这些技术试图向特定寄存器引入值以观察其对设备的操作产生的影响)。尽管所希望的是允许寄存器重命名的益处被应用于此类安全性敏感设备,但此类设备通常被构造为小型、低成本、低功率的设备,因此与典型的寄存器重命名技术相关联的额外的结构需求传统上限制了在此背景下应用寄存器重命名技术的机会。例如,许多已知的寄存器重命名技术需要物理寄存器的数量超过程序模型寄存器的数量以使那些寄存器重命名技术能够运行,因此对于设备的任何特殊的设计,相比于未使用寄存器重命名所需的物理寄存器的数量,将需要更多的物理寄存器以支持寄存器重命名。在小型设备中,诸如小型安全微处理器,包含物理寄存器的寄存器文件的大小是值得注意的,并且所结果的寄存器文件大小的增加经常阻碍许多寄存器重命名技术使用在此类设备中。
文章“Instruction Stream Mutation for Non-Deterministic Processor”,Irwin,Page and Smart,Proceeding of the IEEE International Conference onApplication-Specific System,Architectures,and Processors(ASAP’02),2002,描述了能够被用于防止差分功率分析(DPA)安全性攻击的各种技术,其中所述技术之一涉及一种寄存器重命名技术(参考寄存器重新映射的文章),该技术使用“活性表”(liveness table)以控制寄存器重命名。根据此技术,物理寄存器的数量不需要超过程序模型寄存器的数量,但额外指令需要被添加进指令流以产生维持活性表所需的信息。因此,此方法将需要对在设备上执行的代码进行修改,并且由于对执行那些额外指令的需要,此类方法将对性能产生重大影响。
因此,非常希望提供一种改进方法以允许寄存器重命名的益处被应用于数据操作装置,特别是在小型、低成本、低功率的设备的背景下,其减少了对与许多寄存器重命名技术相关联的额外硬件的需求。
发明内容
从第一方面看,本发明提供了数据处理装置,该数据处理装置包括:
处理器单元,该处理器单元被配置成响应于数据处理指令,执行数据处理操作,所述数据处理指令引用程序模型寄存器;
一组物理寄存器,该一组物理寄存器被配置成存储受到所述数据处理操作的数据值;
标签存储单元,该标签存储单元被配置成对每一个物理寄存器存储指示所述程序模型寄存器之一的标签值,所述处理器单元被配置成引用所述标签存储单元以执行所述数据处理操作,并且所述标签存储单元在所述程序模型寄存器和所述物理寄存器之间提供一对一映射;以及
标签值交换机,该标签值交换机被配置成执行标签交换以交换在所述标签存储单元中的两个标签值,
其中所述标签值交换机被配置成当所述处理器单元执行预定数据处理指令时,所述标签值交换机进行所述标签交换,
其中所述预定数据处理指令引用两个程序模型寄存器,并且对于哪两个物理寄存器被映射至所述两个程序模型寄存器中的哪一个寄存器的选择将不会对所述数据处理操作的结果产生影响。
并且所述标签值交换机被配置成对于指示所述两个程序模型寄存器的标签值执行所述标签交换。
数据处理装置具有处理单元,该处理单元响应于数据处理指令而执行数据操作。在这些数据处理指令引用寄存器的情况下,指令依据程序模型寄存器写入,例如,逻辑上的或虚拟的一组寄存器。数据处理装置具有一组物理寄存器,其中由数据处理操作进行操作的数据值在物理上被存储。与该组物理寄存器相关联的标签存储单元为每一个物理寄存器存储标签值,该标签值指示哪一个程序模型寄存器映射至该物理寄存器(同样指示了哪一个物理寄存器映射至哪一个程序模型寄存器)。在模型寄存器和物理寄存器之间存在一对一的映射。
数据处理装置还包括标签值交换机,其被配置成交换在标签存储单元中的两个标签值,即,交换在两个程序模型寄存器/物理模型寄存器对之间的映射。当处理器单元执行特定类型的数据处理指令时,标签值交换机执行此标签交换,此数据处理指令是组成数据处理装置能够执行的数据处理指令全集的子集的一个(或更多)数据处理指令。特别地,使标签值交换机执行此标签交换的预定数据处理指令是这样的指令:对于该指令,能够确定数据处理指令引用两个程序模型寄存器,并且对于从两个物理寄存器至那两个程序模型寄存器的映射选择是任意的,这是就该选择将不会对数据处理操作的结果产生影响的意义而言的。举例来说,如果数据处理指令引用程序模型寄存器A和B,这两个寄存器将被映射至物理寄存器X和Y,数据处理指令是“预定数据处理指令”,即,如果被确定为使用映射A-X/B-Y或映射A-Y/B-X将不会对数据处理操作的结果产生影响,则当该指令被执行时,标签值交换机将执行标签交换。在这种情况下,对于由该预定数据处理指令引用的这两个程序模型寄存器执行标签交换。
由于在程序模型寄存器和物理寄存器之间提供了一对一映射,与物理寄存器相关联的标签交换单元特别简单。因此,与追踪寄存器的状态相关联的复杂度(诸如通过对“活性表”或“自由表”的使用)在此处被避免了。此外,在程序模型寄存器和物理寄存器之间的一对一映射意味着这组物理寄存器的数量比物理寄存器的数量超过程序模型寄存器的数量的情况(该情况经常与现有技术寄存器重新映射技术相关联)更小。这在小型安全微处理器的背景下尤其具有优势。
然而,已经通过对特定类型的数据处理指令的识别而实现了能够执行某种寄存器重命名的优点(特别是由于在安全性敏感设备的背景下其带来的增强的防御),,对于这些指令能够执行各种寄存器重命名,即上述的“标签交换”,其中在标签存储单元中的两个标签值被简单地交换。本发明的发明人意识到这种操作能够被针对引用两个程序模型寄存器的数据处理指令来执行,并且其中哪些物理寄存器被映射至那两个程序模型寄存器中的哪一个寄存器的选择将不会对由数据处理操作实现的数据处理操作结果产生影响。因此,对于此类数据处理指令,标签值交换机执行此标签交换,从而执行某种寄存器重命名,并因而改进了由此数据处理装置实现的数据处理操作的模糊程度。
在一个实施例中,所述预定数据处理指令的执行包括对于所述两个程序模型寄存器中的一者的写操作,
所述处理器单元被配置成在与所述标签值交换机执行所述标签交换相同的处理周期中执行所述写操作,
并且所述处理器单元被配置成对于目标物理寄存器执行所述写操作,其中该目标物理寄存器将在所述标签交换之后被映射至所述两个程序模型寄存器中的所述一者。
因此,在这个实施例中,处理器单元在发生标签交换的同一处理周期中执行预定数据处理指令的写操作。认识到标签交换将同时发生,处理器单元执行写操作,写操作组成该预定数据处理操作的一部分,该预定数据处理操作关于程序模型寄存器至物理寄存器的映射,该映射将在标签交换之后产生。对于实现预定数据处理操作的写操作的方式的这种修改使得:尽管标签交换被执行,但程序模型寄存器和物理寄存器的内容之间的对应关系能够被保持。这对于实现标签交换的所有预定数据处理指令而言可能不是必需的,但对于一些指令,例如加载多个指令(该指令将一系列存储地址加载到与一系列程序模型寄存器相关联的一系列物理寄存器中),这是所希望的,因为它使得这一系列操作能够以协调的顺序来执行,其中用于第一操作的标签交换不会对下一操作的标签交换造成不利干扰。
可能有很多原因来解释为什么哪两个物理寄存器被映射至两个程序模型寄存器的选择将不会对数据处理操作的结果产生影响,但在一个实施例中所述预定数据处理指令的执行导致相同的值被存储在被映射至所述两个程序模型寄存器的所述两个物理寄存器中。因此,由于相同的值已被存储在两个物理寄存器中,所以哪一个程序模型寄存器指向哪个物理寄存器并不重要。可能有很多原因解释为什么相同的值最终被存储在两个物理寄存器中,但在一个实施例中,所述预定数据处理指令被配置成将存储在所述两个物理寄存器中的第一物理寄存器中的值复制在所述两个物理寄存器中的第二物理寄存器中,其自然导致相同的值被存储在两个物理寄存器中。
在一个实施例中,所述预定数据处理指令的执行导致新值被存储在被映射至所述两个程序模型寄存器的所述两个物理寄存器中的每一者中,所述新值独立于存储在所述两个物理寄存器中的每一者中的先前的值。新值被存储在两个物理寄存器中的每一者中意味着能够自由地作出对于在两个程序模型寄存器和两个物理寄存器之间的映射的选择,这是因为两个物理寄存器的旧的内容被简单地覆盖。
新值被存储在两个物理寄存器中的每一个寄存器中,其可能会因为很多原因发生,但在一个实施例中,所述预定数据处理指令被配置成将存储在存储器中的至少一个值复制在所述两个物理寄存器中。在一个实施例中,所述预定数据处理指令被配置成将存储在存储器中的两个值复制在所述两个物理寄存器中。不论是来自于存储器的一个值被存储在两个物理寄存器中还是两个值被存储在两个物理寄存器中,新值被存储在两个物理寄存器的事实意味着映射的选择是不受约束的。
应当理解的是本技术不限于通过预定数据处理指令仅仅引用两个程序模型寄存器的例子,并且在一些实施例中,所述预定数据处理引用多个程序模型寄存器,其中哪些物理寄存器被映射至所述多个程序模型寄存器中的哪一个程序模型寄存器的选择将不会对所述数据处理操作的结果产生影响,其中所述的多个大于两个。
预定数据处理指令可能在其能够被执行于单一数据处理周期时相对简单,但一些预定数据处理指令可能更加复杂并且在多个数据处理周期中执行。在一个此类的实施例中,所述处理器单元被配置成在连续数据处理周期中执行所述预定数据处理指令,并且所述标签值交换机被配置成对于为所述两个物理寄存器存储的标签值执行所述标签交换,其中所述两个物理寄存器分别在当前数据处理周期和下一数据处理周期中运行。因此,数据处理装置能够利用已知这两个物理寄存器将在这个数据处理周期和下一数据处理周期中运行的事实,并因而能够对存储的与那两个物理寄存器相关联的标签值执行标签交换,而没有发生数据冒险的风险。因此,在连续数据处理周期中执行的操作能够从执行标签交换的角度被联系起来。这是有利的,例如当在任意给定数据处理周期中只能执行一个写操作和标签交换的时候。
在一些实施例中,所述标签值交换机被配置成在所述标签存储单元中对所述两个标签值执行所述标签交换,其中所述两个标签值是针对相同的物理寄存器存储的。换言之,虽然在标签值和物理寄存器之间存在一对一映射,但这意味着被交换的这“两个”标签值实际上是一个并且是相同的。尽管可以看到,以这种方式对针对相同物理寄存器存储的标签值(即同一标签值)应用标签交换,将不会具有净效果,但这种额外的“哑”寄存器重命名操作可能是有利的,这是由于其对数据处理装置带来更大的模糊程度。
尽管标签值交换机能够被配置成每一次遇到此类预定数据处理指令时都执行标签交换,但在一些实施例中,所述数据处理装置被配置成通过所述标签值交换机选择性地抑制所述标签交换的执行。在安全性敏感设备的背景下,选择性抑制标签交换(换言之,寄存器重命名操作)的能力是有利的,这是因为其带来的对于与重命名过程相关联的模糊程度的额外控制。
对于标签交换的选择性抑制可以通过许多方式被控制,不论是基于内部的还是外部的激励;但在一个实施例中,所述数据处理装置被配置成动态地通过所述标签值交换机选择性地抑制所述标签交换的执行。例如,标签交换能够简单地在某些操作条件下被关闭,对于某些时段被关闭,在某些操作模式下被关闭,等等。因此,在数据处理装置执行其自身的数据处理操作的同时,在正在进行的基础上通过允许对执行标签交换进行选择性的抑制,能够针对攻击有更高水平的防御,其中这些攻击试图监视设备随着时间的功耗。
在一个实施例中,所述数据处理装置被配置成随机(例如,伪随机)地通过所述标签值交换机选择性地抑制所述标签交换的执行。对抑制引入此类随机性对于在安全环境中采用本技术的情况尤其有利,这是由于针对攻击有更高水平的防御,其中,这些攻击试图在统计观察的基础上获得与已执行的数据处理操作有关的信息。抑制的随机性破坏了这种统计观察。
当特定类型的寄存器被预定数据处理指令引用时,抑制标签交换的执行可能也是有利的。例如在一个实施例中,所述数据处理装置被配置成对所述标签值交换机执行涉及程序计数器寄存器的所述标签交换进行选择性的抑制。在另一实施例中,所述数据处理装置被配置成对所述标签值交换机执行涉及堆栈指针寄存器的所述标签交换进行选择性的抑制。尽管一些实施例可以允许对于程序计数器寄存器或堆栈指针寄存器发生标签交换,但对于这些类型的寄存器的标签交换的抑制能够为数据处理装置带来结构的简单性。
从第二方面看,本发明提供了数据处理装置,数据处理装置包括:
处理器装置,该处理器装置响应于数据处理指令执行数据处理操作,所述数据处理指令引用程序模型寄存器装置;
物理寄存器装置,该物理寄存器装置用于存储受到所述数据处理操作的标签值;
标签存储装置,该标签存储装置用于为每一个物理寄存器装置存储指示所述程序模型寄存器装置之一的标签值,所述处理器装置引用所述标签存储装置以执行所述数据处理操作,并且所述标签存储装置在所述程序模型寄存器装置和所述物理寄存器装置之间提供一对一映射;以及
标签值交换装置,该标签值装置用于执行标签交换以在所述标签存储装置中交换两个标签值,
所述标签值交换装置用于在所述处理器装置执行预定数据处理指令时执行所述标签交换,
其中所述预定数据处理指令引用两个程序模型寄存器,并且对于哪两个物理寄存器被映射至所述两个程序模型寄存器中的哪一个的选择将不会对所述数据处理操作的结果产生影响,
并且所述标签值交换装置用于对指示所述两个程序模型寄存器的标签值执行所述标签交换。
从第三方面看,本发明提供了数据处理方法,数据处理方法包括:
响应于数据处理指令,执行数据处理操作,所述数据处理指令引用程序模型寄存器;
在一组物理寄存器中存储数据值,其中该数据值受到所述数据处理操作;
在标签存储单元中,为每一个物理寄存器存储指示所述程序模型寄存器之一的标签值,并且引用所述标签存储单元以执行所述数据处理操作,并且在所述标签存储单元中在所述程序模型寄存器和所述物理寄存器之间提供一对一映射;并且
执行标签交换以交换在所述标签存储单元中两个标签值,
其中当预定数据处理指令被执行时,所述标签交换被执行,
其中所述预定数据处理指令引用两个程序模型寄存器,并且对于哪两个物理寄存器被映射至所述两个程序模型寄存器中的哪一个的选择将不会对所述数据处理操作的结果产生任何影响,
并且对指示所述两个程序模型寄存器的标签值执行所述标签交换。
附图说明
本发明将仅通过示例的方式,参考实施例而被进一步描述,其中实施例在附图中被示出,其中:
图1示意性地示出了根据一个实施例的数据处理装置和存储器;
图2A通过硬件描述语言示出了在一个实施例中的标签存储单元的内容的初始化可怎样被实现;
图2B示意性地通过硬件描述语言示出了在一个实施例中在标签存储单元中的查找过程可怎样被实现;
图3A和图3B示意性地通过硬件描述语言示出了在一个实施例中ADD和MOV指令可怎样分别被执行;
图4示意性地示出了在一个实施例中的一些结构组件,该结构组件可被提供以实现MOV指令;
图5示意性地示出了在一个实施例中示例MOV指令的实现的更多细节;
图6A示意性地通过硬件描述语言示出了在一个实施例中两个具体类型的寄存器的示例,其中标签交换被抑制;
图6B示意性地通过硬件描述语言示出了在一个实施例中LDM指令可以是如何被执行的;
图7A、图7B和图7C示意性地示出了在一个实施例中可被用于实现某些特征的示例硬件描述语言;以及
图8示意性地示出了在一个实施例中可被执行的一系列步骤。
具体实施方式
图1示意性地示出了根据一个实施例的数据处理装置。将认识到,数据处理装置10在此仅从较高层次的示意图的角度出于讨论本文所提出的技术的目的被示出,并且本领域技术人员将熟悉此类被典型实施的数据处理装置的许多其他组件,但本文为了图示和讨论的清晰予以省略。数据处理装置10包括处理器单元12,该处理器单元12被配置成响应于一系列的数据处理指令而执行数据处理操作。这些数据处理指令通常将被存储于存储器14中,其中数据处理装置10通过加载存储单元(LSU)16访问存储器14。处理器单元12响应于数据处理指令通过访问(读取和存储)保存在一组物理寄存器18中的数据值来执行数据处理操作。处理器单元12不直接引用物理寄存器,而是引用一组虚拟程序模型寄存器。数据处理指令被编写引用这些程序模型寄存器。物理寄存器和程序模型寄存器之间的对应由标签存储单元20的内容定义,其中标签存储单元20保存与指示了程序模型寄存器之一的每一个物理寄存器相关联的标签值。物理寄存器和程序模型寄存器之间的映射是一对一的,即,每一个物理寄存器仅由一个程序模型寄存器引用,并且每一个程序模型寄存器仅引用一个物理寄存器。程序模型寄存器和物理寄存器之间的翻译由处理器单元12通过查找单元22来管理,其中查找单元22被配置成在标签存储单元20中执行查找操作以确定哪一个物理寄存器与给定程序模型寄存器相关联。因此,处理器单元12能够向查找单元22传递指示程序模型寄存器的值,查找单元22其后能够指示(例如通过索引的方式)哪一个物理寄存器对应于该程序模型寄存器。这个查找过程将在下文中参照图2B被详细描述。其后处理器单元12能够向适当的物理寄存器读取或者写入,其中该适当的物理寄存器对应于其当前希望访问的程序模型寄存器。
数据处理装置10还包括标签交换单元24(“标签值交换机”),其被配置成执行标签交换以交换在标签存储单元20中的两个标签值。标签交换机24在控制单元26的控制下运行,其中控制单元26确定该标签交换何时应当发生以及对于哪两个标签值发生。特别地,当处理器单元12执行特定类型的数据处理指令时,控制单元26指示标签交换单元24执行标签交换。控制单元26对这种特定类型的数据处理指令的识别在图1中示意性地通过从LSU16到控制单元26的路径被示出,但是需要认识到该信息可有许多来源,例如来自解码单元,该解码单元接收来自于LSU的加载指令,并且将这些指令解码为合适的控制信号以用于数据处理装置中。执行标签交换所针对的数据处理指令是那些引用两个程序模型寄存器的指令,并且应当理解,对于哪两个物理寄存器被映射至这两个程序模型寄存器中的哪一个程序模型寄存器的选择将不会对数据处理装置的数据处理操作的结果产生影响。这类指令的示例将在下文中被详细讨论。
此外,即使特定类型的数据处理指令之一正通过处理器单元12被执行,控制单元26也能够通过标签值交换机24抑制标签交换的执行。这种对标签交换的执行的控制在安全性敏感数据处理装置的情况下尤其具有益处,这是因为它给予了数据处理装置额外的控制参数,通过该参数,自身的功率签名能够被改变,并且物理寄存器18的使用能够被进一步隐藏。控制单元26能够通过很多方式抑制标签交换的执行,例如当数据处理装置在特定的操作模式下,不需要通过本技术提供的增强的安全性。数据处理装置10还可以包括伪随机数发生器28,其被配置成向标签交换单元24提供使能信号以使标签交换将仅当使能信号被提供时才被执行。因此,当应用此技术的预定类型的数据处理指令由处理器单元12执行时,标签交换可被伪随机地应用于标签单元20。这将进一步帮助隐藏由数据处理装置执行的数据处理操作。
在程序模型寄存器和物理寄存器之间的映射是一对一的。为了初始化该设置,可执行诸如在图2A中从硬件描述语言的角度示出的初始化函数INITIALIZE的过程。该函数造成标签单元20的内容直接对应于每一个条目的索引(从0到物理寄存器的数目NUM_REGS)。
由查找单元22执行的查找过程通过在图2B中从硬件描述语言的角度示出的查找函数LOOKUP被示例性阐明。程序模型寄存器的名称(即,编号)RegName被传递给该函数,该名称是所映射的物理寄存器查找的名称。函数通过标签单元20的索引循环,并且返回RegName被找到处的索引。因此,处理器单元12能够通过查找函数,通过引用程序模型寄存器来对物理寄存器18的内容执行数据处理操作。
图3A示出了查找函数如何合并到数据处理指令的实现中,其中该数据处理指令并非那些执行标签交换所针对的指令。在此示例中,考虑ADD指令。在这份说明书中,给定的示例指令构成了ARM指令集的一部分,该ARM指令集由ARM Limited,Cambridge,UK提供,但本发明并不限于这些指令。在这个程序模型语法中,引用了寄存器Rd、Rn和Rm,该语法使得寄存器Rn和Rm的“内容”被加在一起并存储在寄存器Rd中。因此,查找函数被用来将Rn和Rm翻译成通过引用标签单元20给定的物理寄存器中的相应的索引,其后这些索引被用于函数REG[index]中,该函数访问物理寄存器18。因此,对应于程序模型寄存器Rn的物理寄存器的内容被加至对应于程序模型寄存器Rm的物理寄存器的内容,并且该总和被存储在对应于程序模型寄存器Rd的物理寄存器中。此ADD指令的实现方式中在程序模型寄存器和物理模型寄存器之间的分配没有灵活性,并因此其不构成应用本技术的标签交换的预定的数据处理指令之一。注意,对此指令不执行任何寄存器重命名是与传统重命名方案相反的,在传统重命名方案中,对Rd的写入通常将在标记方案中引起Rd通过新的分配而被分配至新的物理寄存器处。然而新物理寄存器的分配需要额外的硬件和复杂度,而这里并未执行(目的在于提供低成本、低功率的数据处理装置)。
相比之下,标签交换能被用于如图3B中的硬件描述语言所示出的MOV指令的情况中。在此示例中,与程序模型寄存器Rn相关联的物理寄存器的内容被复制在与程序模型寄存器Rd相关联的物理寄存器中。由于Rd和Rn(或更精确地,它们对应的物理寄存器)在完成了该操作之后将包含相同数值,此指令被认为是应用本标签交换技术的预定数据处理指令。因此,图3B中所示的MOV指令的实现方式(其全部三行指令在一个周期中完成)将通过查找程序模型寄存器Rn找到的物理寄存器的内容分别复制在通过查找程序模型寄存器Rd找到的物理寄存器中。同时在标签单元20中的对应于Rn和Rd的条目通过标签交换单元24被交换。这将不会对由已执行该指令的数据处理装置执行的数据处理操作的结果产生可察觉的影响,但交换标签对于试图向外部攻击者隐藏数据处理装置正在执行什么样的数据处理操作是有利的。
图4示意性地示出了关于图3B中讨论的MOV指令的简单“电路式”实现。为了图示的简单起见,仅将两个物理寄存器40和42分别与它们相关联的标签单元条目44和46一起示出。因此,在此简化示例中,仅有两个可能的物理寄存器,也被称为“1”和“2”,能够被程序模型寄存器引用。源寄存器Rn通过比较器48和50与标签条目44和46的内容进行比较,其中比较器48和50确定通过此程序模型寄存器映射至第一寄存器还是第二寄存器(即,寄存器40还是寄存器42)。比较器48和50的输出向复用器54提供操纵输入(可能通过某种类型的翻译逻辑52,其能够适当地格式化信号)。因此选择的存储于寄存器40和42之一的值通过复用器54传递至处理逻辑56。在这个MOV指令的简单示例中,内容值被简单地复制并且实际上在处理逻辑56中不需要对此数值执行处理。其后该数值被传送回物理寄存器40和42。去往寄存器40和42的写入使能信号选择通过此操作所要写入的寄存器之一。程序模型目的寄存器Rd通过比较器58和60与标签条目44和46的内容进行比较以确定物理寄存器40和42中的哪一个对应于程序模型寄存器Rd。因此,从物理寄存器40和42之一读出的内容值从而被写入物理寄存器40和42之一。尽管在逻辑上内容值可被写入与其读出的寄存器相同的寄存器(即,Rd=Rn),但在MOV指令更加常见的用途中,一个物理寄存器(例如,40)的内容被写入另一个物理寄存器(例如,42)中。然而,在安全性敏感的数据处理装置的情况下,使用诸如将物理寄存器的内容移动回其自身的哑指令(dummy instruction)的确可能发生,作为各种技术的一部分,隐藏正在被执行的数据处理操作。
图5示例性地示出了将本技术应用于MOV指令的具体示例。此处由程序模型寄存器R6映射至物理寄存器的内容应使其数值等于存储在由程序模型寄存器R4映射的物理寄存器中的内容。因此,所示的硬件描述语言直接对应于图3B中所示出的,其中Rd=R6并且Rn=R4。图5的下半部分示出了示例性的一组标签和寄存器条目在该MOV指令执行前后的内容。因此,在示出的示例中,MOV R6,R4引起REG[0]的内容被复制在REG[2]中。因此0x1234被0xBEEF覆盖。此外,由于该MOV指令引用两个程序模型寄存器(即,R6和R4),对这些程序模型寄存器中的哪一个映射至两个物理寄存器中的哪一个(即,REG[0]还是REG[2])的选择将不会对数据处理操作的结果产生影响。标签值交换机交换对应于R6和R4的标签条目。因此,在REG[0]中的值保持不变,但从与R4相关联重命名为与R6相关联,并且所写的原本以R6为目标的值实际上已经被放置在当前被映射至R4的寄存器中。因此,随后的操作将对R6使用索引0并且对R4使用索引2。
上述寄存器重命名(即,标签交换)原则上能够被应用于任何引用两个程序模型寄存器的指令,并且对此两个物理寄存器中的哪一个被映射至两个程序模型寄存器中的哪一个的选择是自由的,而图6A示出了一种实现方式,其中,当保存程序计数器的寄存器或保持堆栈指针的寄存器被引用时,标签交换被抑制。因此,在图6A中的第一个示例中,被映射至Rn的物理寄存器的内容被复制在程序计数器寄存器中,没有任何标签交换发生;并且在图6A中的第二个示例中,堆栈指针被复制在映射至程序模型寄存器Rd的物理寄存器中,没有任何标签交换发生。对于这些特定的寄存器抑制标签交换简化了数据处理装置的结构,因为程序计数器和堆栈指针在数据处理装置的整个操作中实际上具有固定的映射,并且因此可以更加容易地被硬连接到数据处理装置的结构特征中。
除了寄存器被复制的例子(如上述关于图3B、图4和图5的M0V指令的讨论)之外,其他例子也存在,其中数据处理指令引用两个程序模型寄存器,并且对于哪两个物理寄存器被映射至那两个程序模型寄存器中的哪一个的选择将不会对数据处理操作的结果产生影响。一个此类的例子是图6B中示出的加载多个(LDM)指令。图6B中的LDM指令使用映射至程序模型寄存器Rn的物理寄存器的内容作为起始存储器地址,存储器值参考该起始存储器地址而被复制在目标寄存器Rt1、Rt2和Rt3中。通常,其实现方式为:存储器地址Rn处的值被复制在Rt1中,存储器地址Rn+4处的值被复制在Rt2中以及存储器地址Rn+8处的值被复制在Rt3中。由于所有三个目标寄存器Rt1、Rt2和Rt3将具有从存储器存储在其中的新值,所对应的三个物理寄存器怎样被映射至这三个程序模型寄存器的选择就其将不对数据处理操作的结果产生影响而言是任意的。因此,在本申请中想到了被引用的、还未被加载的任意两个寄存器的标签可被交换。标签交换机被配置成每一个周期执行一个标签交换,并且因此,被引用的、还未被加载的任意两个寄存器的标签可在每一个周期的基础上被交换。在图6B中示出的实现方式对当前在给定周期中被加载的寄存器和在下一周期中要被加载的寄存器交换标签。因此,如图6B中所示出的,不是在相继的周期中先加载Rt1,其后加载Rt2,然后加载Rt3,而是Rt2首先被加载,其后Rt2和Rt1的标签被交换。然后在下一周期中Rt3被加载,并且Rt2和Rt3的标签被交换。在最后的周期中,Rt3被加载。净效果是Rt3的新标签(和存储)是Rt1的旧标签(和存储);Rt2的新标签(和存储)是Rt3的旧标签(和存储),Rt1的新标签(和存储)是Rt2的旧标签(和存储)。
在若干周期中执行的并且可应用本技术的指令的另一示例是长乘法指令。与上文针对LDM指令讨论的情形类似的每周期进行标签交换的分阶段实现方式能够被应用于长乘法指令。
如上文所述,在每一个周期中,仅需要一个标签交换,并且该标签交换能够被简单地通过如图7A中所示的硬件描述语言所说明的来实现,其中alpha和beta是两个要被交换的结构寄存器的LO0KUP。
对物理寄存器写入能够通过诸如图7B中所述的硬件被实现,其中将被写入的值(“值”)被写入具有与标签条目相同的索引的物理寄存器REG中,该标签条目与引用的程序模型寄存器Rd相匹配。相反地,对于物理寄存器实现的读取操作能够通过如图7C中所述的硬件实现,其中那些语句“TAG[x]==Rn”中的仅一个语句将评估为真,这将生成32位选择掩码(例如,32个连续的1),以生成物理寄存器REG[x](对于该寄存器,TAG[x]条目与Rn相匹配)的内容作为输出“值”。
图8示例性地示出了在一个实施例中可以采用的一系列步骤。在步骤100中,将被执行的一系列数据处理指令中的下一指令在数据处理装置中被解码。在步骤102中,判定此指令是否是下述指令的子集中的一项:所述指令允许对其自身的两个物理寄存器的标签映射的自由选择;例如本申请中在程序模型寄存器和物理寄存器之间具有一对一映射的背景下,指令引用两个程序模型寄存器,但在该两个物理寄存器和该两个程序模型寄存器之间的标签映射将不会对数据处理操作的结果产生影响。如果该指令不是此类指令,则其后流程进行到步骤104,其中指令被正常执行而不执行任何重新映射,并且其后流程返回至步骤100以使得下一指令被解码。然而,如果被解码的指令在步骤102中被确定为预定的一组数据处理指令(其允许该标签映射的自由选择)之一,则流程进行至步骤106。此处参考在数据处理装置中的伪随机源,该伪随机源在伪随机基础上生成肯定的响应或否定的响应。如果在此例中的此伪随机源的结果是否定的,则流程返回至步骤104,并且指令被正常执行而不经过任何重新映射。然而,如果伪随机测试的结果是肯定的,则流程进行至步骤108,其中指令被执行,但写入当前程序模型寄存器将来的物理寄存器映射目标中,然后在步骤110中映射这两个物理寄存器的标签值在标签单元中被交换。其后,流程返回至步骤100以解码下一指令。应该注意的是,尽管此处步骤108和110被描述成分开的步骤,但是这些步骤是在单一处理周期(例如)中发生的,即实际上是同时的。
应该注意的是,向当前程序寄存器的未来物理寄存器映射目标进行的写入(在步骤108中)是在一些指令的优化实现中能够被放弃的动作。例如在上述讨论的关于图5的实现MOV指令的情况下,该“向当前程序寄存器的未来物理寄存器映射目标写入”能够通过向REG[0](即,R6的未来物理寄存器映射目标)写入0xBEEF实现。然而,由于了解该物理寄存器已提供了MOV的源内容,此步骤能够被放弃以作为优化。在那种情况下,仅有的被执行的写操作是向REG[2]写入0xBEEF(以实现REG[LOOKUP(6)]<=REG[LOOKUP(4)])。
尽管本文描述了本发明的特定实施例,显而易见的是本发明不被限制于此,并且在本发明的范围内可做出许多修改和添加。例如,在不背离本发明的范围的情况下,可以用独立权利要求的特征组成下列从属权利要求中的特征的各种组合。
Claims (17)
1.一种数据处理装置,包括:
处理器单元,该处理器单元被配置成响应于数据处理指令执行数据处理操作,所述数据处理指令引用程序模型寄存器;
一组物理寄存器,该一组物理寄存器被配置成存储受到所述数据处理操作的数据值;
标签存储单元,该标签存储单元被配置成对每一个物理寄存器存储指示所述程序模型寄存器之一的标签值,所述处理器单元被配置成引用所述标签存储单元以执行所述数据处理操作,并且所述标签存储单元在所述程序模型寄存器和所述物理寄存器之间提供一对一映射;以及
标签值交换机,该标签值交换机被配置成执行标签交换以交换在所述标签存储单元中的两个标签值,
其中所述标签值交换机被配置成:当所述处理器单元执行预定数据处理指令时,则执行所述标签交换,
其中所述预定数据处理指令引用两个程序模型寄存器,并且对于两个物理寄存器中的哪一个被映射至所述两个程序模型寄存器中的哪一个的选择将不会对所述数据处理操作的结果产生影响,
并且所述标签值交换机被配置成对于指示所述两个程序模型寄存器的所述标签值执行所述标签交换。
2.根据权利要求1所述的数据处理装置,其中所述预定数据处理指令的执行包括对于所述两个程序模型寄存器中的一者的写操作,
其中所述处理器单元被配置成在与所述标签值交换机执行所述标签交换相同的处理周期中执行所述写操作,
并且其中所述处理器单元被配置成对于目标物理寄存器执行所述写操作,其中所述目标物理寄存器在所述标签交换之后将被映射至所述两个程序模型寄存器中的所述一者。
3.根据任意前述权利要求所述的数据处理装置,其中所述预定数据处理指令的执行导致相同的值被存储在被映射至所述两个程序模型寄存器的所述两个物理寄存器中。
4.根据权利要求3所述的数据处理装置,其中所述预定数据处理指令被配置成将存储在所述两个物理寄存器中的第一物理寄存器中的值复制在所述两个物理寄存器中的第二物理寄存器中。
5.根据权利要求1所述的数据处理装置,其中所述预定数据处理指令的执行导致新值被存储在被映射至所述两个程序模型寄存器的所述两个物理寄存器中的每一个物理寄存器中,所述新值独立于存储在所述两个物理寄存器中的每一个物理寄存器中的先前的值。
6.根据权利要求5所述的数据处理装置,其中所述预定数据处理指令被配置成将存储在存储器中的至少一个值复制在所述两个物理寄存器中。
7.根据权利要求5所述的数据处理装置,其中所述预定数据处理指令被配置成将存储在存储器中的两个值复制在所述两个物理寄存器中。
8.根据权利要求1所述的数据处理装置,其中所述预定数据处理指令引用多个程序模型寄存器,并且对于多个物理寄存器中的哪一个被映射至所述多个程序模型寄存器中的哪一个的选择将不会对所述数据处理操作的结果产生影响,其中所述多个大于两个。
9.根据权利要求1所述的数据处理装置,其中所述处理器单元被配置成在连续的数据处理周期内执行所述预定数据处理指令,并且所述标签值交换机被配置成对于为所述两个物理寄存器存储的标签值执行所述标签交换,其中所述两个物理寄存器分别在当前数据处理周期和下一数据处理周期中被运行。
10.根据权利要求1所述的数据处理装置,其中所述标签值交换机被配置成对在所述标签存储单元中的所述两个标签值执行所述标签交换,其中所述两个标签值被存储用于相同的物理寄存器。
11.根据权利要求1所述的数据处理装置,其中所述数据处理装置被配置成通过所述标签值交换机选择性地抑制所述标签交换的执行。
12.根据权利要求10所述的数据处理装置,其中所述数据处理装置被配置成在动态的基础上通过所述标签值交换机选择性地抑制所述标签交换的执行。
13.根据权利要求10所述的数据处理装置,其中所述数据处理装置被配置成在伪随机的基础上通过所述标签值交换机选择性地抑制所述标签交换的执行。
14.根据权利要求10所述的数据处理装置,其中所述数据处理装置被配置成对所述标签值交换机执行涉及程序计数器寄存器的所述标签交换进行选择性的抑制。
15.根据权利要求10所述的数据处理装置,其中所述数据处理装置被配置成对所述标签值交换机执行涉及堆栈指针寄存器的所述标签交换进行选择性的抑制。
16.一种数据处理装置,包括:
处理器装置,该处理器装置响应于数据处理指令执行数据处理操作,所述数据处理指令引用程序模型寄存器装置;
物理寄存器装置,该物理寄存器装置用于存储受到所述数据处理操作的数据值;
标签存储装置,该标签存储装置用于为每一个物理寄存器装置存储指示所述程序模型寄存器装置之一的标签值,所述处理器装置引用所述标签存储装置以执行所述数据处理操作,并且所述标签存储装置在所述程序模型寄存器装置和所述物理寄存器装置之间提供一对一映射;以及
标签值交换装置,该标签值交换装置用于执行标签交换以交换在所述标签存储装置中的两个标签值,
所述标签值交换装置用于在所述处理器装置执行预定数据处理指令时执行所述标签交换,
其中所述预定数据处理指令引用两个程序模型寄存器,并且对于两个物理寄存器中的哪一个被映射至所述两个程序模型寄存器中的哪一个的选择将不会对所述数据处理操作的结果产生影响,
并且所述标签值交换装置用于对于指示所述两个程序模型寄存器的所述标签值执行所述标签交换。
17.一种数据处理的方法,包括:
响应于数据处理指令,执行数据处理操作,所述数据处理指令引用程序模型寄存器;
在一组物理寄存器中存储受到所述数据处理操作的数据值;
在标签存储单元中为每一个物理寄存器存储指示所述程序模型寄存器之一的标签值,并且引用所述标签存储单元以执行所述数据处理操作,并且在所述标签存储单元中在所述程序模型寄存器和所述物理寄存器之间提供一对一映射;以及
执行标签交换以交换在所述标签存储单元中的两个标签值,
其中当预定数据处理指令被执行时,所述标签交换被执行,
其中所述预定数据处理指令引用两个程序模型寄存器,并且对于两个物理寄存器中的哪一个被映射至所述两个程序模型寄存器中的哪一个的选择将不会对所述数据处理操作的结果产生影响,
并且对指示所述两个程序模型寄存器的所述标签值执行所述标签交换。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/309,739 US8914616B2 (en) | 2011-12-02 | 2011-12-02 | Exchanging physical to logical register mapping for obfuscation purpose when instruction of no operational impact is executed |
US13/309,739 | 2011-12-02 | ||
PCT/GB2012/052455 WO2013079911A1 (en) | 2011-12-02 | 2012-10-04 | A register renaming data processing apparatus and method for performing register renaming |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103988462A CN103988462A (zh) | 2014-08-13 |
CN103988462B true CN103988462B (zh) | 2017-03-08 |
Family
ID=47073473
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280059375.4A Active CN103988462B (zh) | 2011-12-02 | 2012-10-04 | 用于执行寄存器重命名的寄存器重命名数据处理装置和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8914616B2 (zh) |
EP (1) | EP2786518B1 (zh) |
KR (1) | KR102067413B1 (zh) |
CN (1) | CN103988462B (zh) |
WO (1) | WO2013079911A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017075546A1 (en) * | 2015-10-28 | 2017-05-04 | Hrl Laboratories, Llc | System and method for maintaining security tags and reference counts for objects in computer memory |
WO2017105606A1 (en) | 2015-12-17 | 2017-06-22 | Cryptography Research, Inc. | Enhancements to improve side channel resistance |
CN110297662B (zh) * | 2019-07-04 | 2021-11-30 | 中昊芯英(杭州)科技有限公司 | 指令乱序执行的方法、处理器及电子设备 |
CN111221575A (zh) * | 2019-12-30 | 2020-06-02 | 核芯互联科技(青岛)有限公司 | 一种乱序高性能处理器的寄存器重命名方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002054228A1 (en) * | 2000-12-06 | 2002-07-11 | University Of Bristol | Register renaming |
US6560671B1 (en) * | 2000-09-11 | 2003-05-06 | Intel Corporation | Method and apparatus for accelerating exchange or swap instructions using a register alias table (RAT) and content addressable memory (CAM) with logical register numbers as input addresses |
CN1802630A (zh) * | 2003-06-12 | 2006-07-12 | Arm有限公司 | 用于在奇存器堆和存储器之间传送数据值的数据处理设备和方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0495162A3 (en) | 1991-01-16 | 1994-05-18 | Ibm | Storage management |
DE69506623T2 (de) | 1994-06-03 | 1999-07-22 | Motorola, Inc., Schaumburg, Ill. | Datenprozessor mit einer Ausführungseinheit zur Durchführung von Ladebefehlen und Verfahren zu seinem Betrieb |
US5694565A (en) | 1995-09-11 | 1997-12-02 | International Business Machines Corporation | Method and device for early deallocation of resources during load/store multiple operations to allow simultaneous dispatch/execution of subsequent instructions |
DE69734093D1 (de) * | 1996-12-31 | 2005-10-06 | Metaflow Technologies Inc | System zur Ausführung von Gleitkommaoperationen |
US7295672B2 (en) | 2003-07-11 | 2007-11-13 | Sun Microsystems, Inc. | Method and apparatus for fast RC4-like encryption |
US8161453B2 (en) | 2004-11-16 | 2012-04-17 | Rabih Chrabieh | Method and apparatus for implementing task management of computer operations |
US7263577B2 (en) * | 2005-03-03 | 2007-08-28 | Qualcomm Incorporated | Power saving methods and apparatus to selectively enable comparators in a CAM renaming register file based on known processor state |
US20070192573A1 (en) * | 2006-02-16 | 2007-08-16 | Guillermo Savransky | Device, system and method of handling FXCH instructions |
US20120191956A1 (en) * | 2011-01-26 | 2012-07-26 | Advanced Micro Devices, Inc. | Processor having increased performance and energy saving via operand remapping |
-
2011
- 2011-12-02 US US13/309,739 patent/US8914616B2/en active Active
-
2012
- 2012-10-04 WO PCT/GB2012/052455 patent/WO2013079911A1/en unknown
- 2012-10-04 EP EP12777939.5A patent/EP2786518B1/en active Active
- 2012-10-04 KR KR1020147014901A patent/KR102067413B1/ko active IP Right Grant
- 2012-10-04 CN CN201280059375.4A patent/CN103988462B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6560671B1 (en) * | 2000-09-11 | 2003-05-06 | Intel Corporation | Method and apparatus for accelerating exchange or swap instructions using a register alias table (RAT) and content addressable memory (CAM) with logical register numbers as input addresses |
WO2002054228A1 (en) * | 2000-12-06 | 2002-07-11 | University Of Bristol | Register renaming |
CN1802630A (zh) * | 2003-06-12 | 2006-07-12 | Arm有限公司 | 用于在奇存器堆和存储器之间传送数据值的数据处理设备和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103988462A (zh) | 2014-08-13 |
EP2786518B1 (en) | 2018-11-21 |
KR102067413B1 (ko) | 2020-01-17 |
EP2786518A1 (en) | 2014-10-08 |
KR20140099255A (ko) | 2014-08-11 |
US20130145129A1 (en) | 2013-06-06 |
WO2013079911A1 (en) | 2013-06-06 |
US8914616B2 (en) | 2014-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104951697B (zh) | 来自过程指令的返回-目标限制性返回、处理器、方法及系统 | |
EP3547227B1 (en) | Neuromorphic accelerator multitasking | |
CN109284185A (zh) | 用于区块链交易加速的装置、方法和系统 | |
CN104025067B (zh) | 具有由向量冲突指令和置换指令共享的全连接互连的处理器 | |
CN107667372A (zh) | 用于保护影子栈的处理器、方法、系统和指令 | |
CN104813281B (zh) | 用于指令的快速失败处理的装置和方法 | |
CN108351830A (zh) | 用于存储器损坏检测的硬件装置和方法 | |
CN104169888B (zh) | 用于实现运行时间检测定向采样的方法和系统 | |
CN106708753A (zh) | 在使用共享虚拟存储器的处理器中加速操作的装置和方法 | |
CN109313567A (zh) | 虚拟化精确的基于事件的采样 | |
CN109074447A (zh) | 用于元数据处理的技术 | |
CN104011663B (zh) | 掩码寄存器上的广播操作 | |
CN105453030B (zh) | 向较宽的寄存器进行依赖于模式的部分宽度加载的处理器、方法和系统 | |
CN108475194A (zh) | 在片上网络架构中的寄存器通信 | |
CN109791487A (zh) | 用于将多个数据元素加载到除紧缩数据寄存器之外的目的地存储位置的处理器、方法、系统和指令 | |
CN104126170B (zh) | 打包数据操作掩码寄存器算术组合处理器、方法、系统及指令 | |
CN103988174B (zh) | 无需额外寄存器执行寄存器重命名的数据处理设备和方法 | |
CN109992304A (zh) | 用于加载片寄存器对的系统和方法 | |
CN115562729A (zh) | 具有带读取和读取/前进操作数编码的流引擎的数据处理设备 | |
CN107077329A (zh) | 用于通过无序硬件软件协同设计处理器中的栈同步指令来实现和维持判定值的栈的方法和设备 | |
US20180089557A1 (en) | Programmable neuron core with on-chip learning and stochastic time step control | |
CN103988462B (zh) | 用于执行寄存器重命名的寄存器重命名数据处理装置和方法 | |
CN109992455A (zh) | 用于暂停处理器跟踪以进行高效分析的设备和方法 | |
CN111752616A (zh) | 用于符号存储地址生成的系统、装置和方法 | |
CN109992243A (zh) | 用于矩阵操作的系统、方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20180604 Address after: cambridge Co-patentee after: Anne science and Technology (China) Co., Ltd. Patentee after: Advanced Risc Machines Ltd. Address before: cambridge Patentee before: Advanced Risc Machines Ltd. |