Processor including efficient signature generation for logic error protection
First Claim
1. A processor core configured to operate in a reliable execution mode, the processor core comprising:
- an instruction decode unit configured to dispatch a same integer instruction stream to a plurality of integer execution units, and to dispatch a same floating-point instruction thread to a floating point unit;
wherein the plurality of integer execution units is configured to operate in lock-step such that during each clock cycle, the plurality of integer execution units executes a same integer instruction;
wherein the floating point unit is configured to execute the same floating-point instruction thread twice;
signature generation logic coupled to each of the plurality of integer execution units and to the floating point unit, wherein the signature generation logic is configured to generate a respective signature from result signals conveyed on respective result buses in one or more pipeline stages within each respective one of the plurality of integer execution units in response to the result signals becoming available, wherein the signature generation unit is configured to generate the signatures concurrently with execution of the integer instructions;
wherein the signature generation logic is configured to generate a signature from result signals conveyed on result buses within the floating point unit, wherein the signature generation unit is configured to generate the signature concurrently with execution of the floating-point instructions; and
compare logic coupled to the signature generation logic and configured to detect a mismatch between signatures from each of the plurality of integer execution units;
wherein in response to the compare logic detecting any mismatch, the compare logic is configured to cause instructions causing the mismatch to be re-executed.
1 Assignment
0 Petitions
Accused Products
Abstract
A processor core includes an instruction decode unit that may dispatch a same integer instruction stream to a plurality of integer execution units operating in lock-step. The processor core also includes signature generation logic that may generate, concurrently with execution of the integer instructions, a respective signature from result signals conveyed on respective result buses in one or more pipeline stages within each of the integer execution units in response to the result signals becoming available. The processor core also includes compare logic that may detect a mismatch between signatures from each of the integer execution units. Further, in response to the compare logic detecting any mismatch, the compare logic may cause instructions causing the mismatch to be re-executed.
-
Citations
18 Claims
-
1. A processor core configured to operate in a reliable execution mode, the processor core comprising:
-
an instruction decode unit configured to dispatch a same integer instruction stream to a plurality of integer execution units, and to dispatch a same floating-point instruction thread to a floating point unit; wherein the plurality of integer execution units is configured to operate in lock-step such that during each clock cycle, the plurality of integer execution units executes a same integer instruction; wherein the floating point unit is configured to execute the same floating-point instruction thread twice; signature generation logic coupled to each of the plurality of integer execution units and to the floating point unit, wherein the signature generation logic is configured to generate a respective signature from result signals conveyed on respective result buses in one or more pipeline stages within each respective one of the plurality of integer execution units in response to the result signals becoming available, wherein the signature generation unit is configured to generate the signatures concurrently with execution of the integer instructions; wherein the signature generation logic is configured to generate a signature from result signals conveyed on result buses within the floating point unit, wherein the signature generation unit is configured to generate the signature concurrently with execution of the floating-point instructions; and compare logic coupled to the signature generation logic and configured to detect a mismatch between signatures from each of the plurality of integer execution units; wherein in response to the compare logic detecting any mismatch, the compare logic is configured to cause instructions causing the mismatch to be re-executed. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A processor core configured to operate in a reliable execution mode, the processor core comprising:
-
an instruction decode unit configured to dispatch a same integer instruction stream to a plurality of integer execution units; wherein the plurality of integer execution units is configured to operate in lock-step such that during each clock cycle, the plurality of integer execution units executes a same integer instruction; signature generation logic coupled to each of the plurality of integer execution units, wherein the signature generation logic is configured to generate a respective signature from result signals conveyed on respective result buses in one or more pipeline stages within each respective one of the plurality of integer execution units in response to the result signals becoming available, wherein the signature generation unit is configured to generate the signatures concurrently with execution of the integer instructions; and compare logic coupled to the signature generation logic and configured to detect a mismatch between signatures from each of the plurality of integer execution units; wherein the compare logic is further configured to check results of branch mis-predictions within each of the plurality of integer execution units; and wherein in response to the compare logic detecting any mismatch, the compare logic is configured to cause instructions causing the mismatch to be re-executed.
-
-
7. A processor core configured to operate in a reliable execution mode, the processor core comprising:
-
an instruction decode unit configured to dispatch a same integer instruction stream to a plurality of integer execution units; wherein the plurality of integer execution units is configured to operate in lock-step such that during each clock cycle, the plurality of integer execution units executes a same integer instruction; signature generation logic coupled to each of the plurality of integer execution units, wherein the signature generation logic is configured to generate a respective signature from result signals conveyed on respective result buses in one or more pipeline stages within each respective one of the plurality of integer execution units in response to the result signals becoming available, wherein the signature generation unit is configured to generate the signatures concurrently with execution of the integer instructions; and compare logic coupled to the signature generation logic and configured to detect a mismatch between signatures from each of the plurality of integer execution units; wherein the compare logic is further configured to check for substantially simultaneous accesses to a level two cache by each of the plurality of integer execution units; and wherein in response to the compare logic detecting any mismatch, the compare logic is configured to cause instructions causing the mismatch to be re-executed.
-
-
8. A processor core configured to operate in a reliable execution mode, the processor core comprising:
-
an instruction decode unit configured to dispatch a same integer instruction stream to a plurality of integer execution units; wherein the plurality of integer execution units is configured to operate in lock-step such that during each clock cycle, the plurality of integer execution units executes a same integer instruction; signature generation logic coupled to each of the plurality of integer execution units, wherein the signature generation logic is configured to generate a respective signature from result signals conveyed on respective result buses in one or more pipeline stages within each respective one of the plurality of integer execution units in response to the result signals becoming available, wherein the signature generation unit is configured to generate the signatures concurrently with execution of the integer instructions; wherein the signature generation logic is further configured to generate the respective signature from datapath input signals conveyed on respective datapath input buses in the one or more pipeline stages within each respective one of the plurality of integer execution units; and compare logic coupled to the signature generation logic and configured to detect a mismatch between signatures from each of the plurality of integer execution units; wherein in response to the compare logic detecting any mismatch, the compare logic is configured to cause instructions causing the mismatch to be re-executed.
-
-
9. A method for protecting against logic errors in a processor core, the method comprising:
-
operating the processor core in a reliable execution mode; dispatching a same integer instruction stream to a plurality of integer execution units and dispatching a same floating-point instruction thread to a floating point unit; operating the plurality of integer execution units in lock-step such that during each clock cycle, the plurality of integer execution units executes a same integer instruction; the floating point unit executing the same floating-point instruction thread twice; signature generation logic generating a respective signature from result signals conveyed on respective result buses in one or more pipeline stages within each respective one of the plurality of integer execution units in response to the result signals becoming available by generating the signatures concurrently with execution of the integer instructions; the signature generation logic generating a signature from result signals conveyed on result buses within the floating point unit, by generating the signature concurrently with execution of the floating-point instructions; and compare logic detecting a mismatch between signatures from each of the plurality of integer execution units; wherein in response to the compare logic detecting any mismatch, the compare logic causing instructions that caused the mismatch to be re-executed. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A method for protecting against logic errors in a processor core, the method comprising:
-
operating the processor core in a reliable execution mode; dispatching a same integer instruction stream to a plurality of integer execution units and dispatching a same floating-point instruction thread to a floating point unit; operating the plurality of integer execution units in lock-step such that during each clock cycle, the plurality of integer execution units executes a same integer instruction; the floating point unit executing the same floating-point instruction thread twice; signature generation logic generating a respective signature from result signals conveyed on respective result buses in one or more pipeline stages within each respective one of the plurality of integer execution units in response to the result signals becoming available by generating the signatures concurrently with execution of the integer instructions; compare logic detecting a mismatch between signatures from each of the plurality of integer execution units; the compare logic checking results of branch mis-predictions within each of the plurality of integer execution units and providing an indication in response to detecting a branch misprediction on one integer execution unit and not another integer execution unit; and wherein in response to the compare logic detecting any mismatch, the compare logic causing instructions that caused the mismatch to be re-executed.
-
-
15. A method for protecting against logic errors in a processor core, the method comprising:
-
operating the processor core in a reliable execution mode; dispatching a same integer instruction stream to a plurality of integer execution units and dispatching a same floating-point instruction thread to a floating point unit; operating the plurality of integer execution units in lock-step such that during each clock cycle, the plurality of integer execution units executes a same integer instruction; the floating point unit executing the same floating-point instruction thread twice; signature generation logic generating a respective signature from result signals conveyed on respective result buses in one or more pipeline stages within each respective one of the plurality of integer execution units in response to the result signals becoming available by generating the signatures concurrently with execution of the integer instructions; compare logic detecting a mismatch between signatures from each of the plurality of integer execution units; the compare logic checking for substantially simultaneous accesses to a level two cache by each of the plurality of integer execution units and providing an indication in response to non-substantially simultaneous accesses wherein in response to the compare logic detecting any mismatch, the compare logic causing instructions that caused the mismatch to be re-executed.
-
-
16. A method for protecting against logic errors in a processor core, the method comprising:
-
operating the processor core in a reliable execution mode; dispatching a same integer instruction stream to a plurality of integer execution units and dispatching a same floating-point instruction thread to a floating point unit; operating the plurality of integer execution units in lock-step such that during each clock cycle, the plurality of integer execution units executes a same integer instruction; the floating point unit executing the same floating-point instruction thread twice; signature generation logic generating a respective signature from result signals conveyed on respective result buses in one or more pipeline stages within each respective one of the plurality of integer execution units in response to the result signals becoming available by generating the signatures concurrently with execution of the integer instructions; generating the respective signature from datapath input signals conveyed on respective datapath input buses in the one or more pipeline stages within each respective one of the plurality of integer execution units; and compare logic detecting a mismatch between signatures from each of the plurality of integer execution units; wherein in response to the compare logic detecting any mismatch, the compare logic causing instructions that caused the mismatch to be re-executed.
-
-
17. A processor comprising:
a plurality of processor cores, each processor core comprising; an instruction decode unit configured to dispatch a same integer instruction stream to a plurality of integer execution units, and to dispatch a same floating-point instruction thread to a floating point unit; wherein the plurality of integer execution units is configured to operate in lock-step such that during each clock cycle, the plurality of integer execution units executes a same integer instruction; wherein the floating point unit is configured to execute the same floating-point instruction thread twice; signature generation logic coupled to each of the plurality of integer execution units and to the floating point unit, wherein the signature generation logic is configured to generate a respective signature from result signals conveyed on respective result buses in one or more pipeline stages within each respective one of the plurality of integer execution units in response to the result signals becoming available, wherein the signature generation unit is configured to generate the signatures concurrently with execution of the integer instructions; wherein the signature generation logic is configured to generate a signature from result signals conveyed on result buses within the floating point unit, wherein the signature generation unit is configured to generate the signature concurrently with execution of the floating-point instructions; and compare logic coupled to the signature generation logic and configured to detect a mismatch between signatures from each of the plurality of integer execution units; wherein in response to the compare logic detecting any mismatch, the compare logic is configured to cause instructions causing the mismatch to be re-executed. - View Dependent Claims (18)
Specification