Selectively protecting a register file
AssigneeIntel Corporation
InventorsXavier Vera, Jaume Abella, Jose-Alejandro Pineiro, Antonio Gonzalez, Ronny Ronen
Life of this patent
Estimating the term…
Abstract
In one embodiment, the present invention includes a method for protecting a value to be stored in a register of a register file with a first level of protection if the value is predicted to be used for a first time period, and protecting the value with a second level of protection if the value is predicted to be used for a second time period. Other embodiments are described and claimed.
Claims22
A method comprising:
- protecting a value to be stored in a register of a register file with a first level of protection if the value is predicted to be stored in the register for a first time period;
- protecting the value with a second level of protection if the value is predicted to be stored in the register for a second time period, the prediction performed in parallel with storing the value in the register;
- and
- storing a code for the first level of protection or a code for the second level of protection and an indicator to indicate the first level of protection or the second level of protection in an entry of a protection table corresponding to the register, wherein the code for the first level of protection comprises a parity code and the code for the second level of protection corresponds to an error correction code (ECC).
An apparatus comprising:
- a register file including a plurality of registers;
- a controller to determine whether a result to be stored in a register of the register file is to be encoded with an error detection code or an error correction code (ECC) based on a length of time for which the result is predicted to be stored in the register;
- and
- a protection table coupled to the controller to store the error detection code or the error correction code in an entry associated with the register, wherein each entry includes a status indicator to indicate whether the entry includes the error detection code or the error correction code.
A machine-readable medium having stored thereon instructions which if executed by a machine cause the machine to perform a method comprising:
- predicting if a result of a producer instruction to be stored in a location of a reorder buffer (ROB) is to be used after commitment of the producer instruction, the predicting performed in parallel with storing the result in the ROB location;
- coding and storing a first protection code corresponding to an error correction code (ECC) for the result if the result is to be used after the commitment, otherwise coding and storing a second protection code corresponding to an error detection code;
- and
- storing one of the first or second protection codes and an indicator for the first or second protection code in an entry of a table associated with the ROB location.
A system comprising:
- a controller to predict a usage lifetime for a data element to be stored in a register of a register file;
- a code generator coupled to the controller to generate an error detection code if the usage lifetime is predicted to be less than a threshold and to generate an error correction code if the usage lifetime is predicted to be greater than the threshold;
- a storage having a plurality of entries each corresponding to a location of the register file, each entry to store the error correction code or the error detection code for the data element in the corresponding location of the register file and a status indicator to indicate whether the entry includes the error detection code or the error correction code;
- and
- a dynamic random access memory coupled to the controller.
Dependencies are inferred from the claim text.