Claims
- 1. A processor comprising:
a protected execution unit to process instructions; a check unit to detect an error associated with processed instructions; and a replay queue to issue instructions to the protected execution unit for processing, track the issued instructions, and reissue selected issued instructions when the check unit detects an error.
- 2. The processor of claim 1, wherein instructions are flushed from the execution unit when the check unit indicates an error.
- 3. The processor of claim 1, wherein the replay queue includes first and second pointers to indicate a next instruction to issue and a next instruction to retire.
- 4. The processor of claim 3, wherein the replay queue adjusts the first pointer and second pointers to reissue instructions to the execution unit beginning with an instruction that generated the result mismatch.
- 5. The processor of claim 4, wherein the protected execution unit comprises first and second execution units to process instructions in lock step and the replay queue comprises first and second replay queues to provide instructions to the first and second execution units, respectively.
- 6. The processor of claim 1, wherein the execution units operate in lock step when the processor is in a high reliability mode and the execution units independently when the processor is in a high performance mode.
- 7. The processor of claim 1, wherein the processor implements a recovery algorithm if an instruction that triggers a replay generates a mismatch when it is replayed.
- 8. A method for executing instructions with high reliability, comprising:
storing an instruction temporarily in a replay buffer; issuing the instruction to a protected execution unit; checking results generated by the instruction in the protected execution unit; and reissuing the instruction to the protected execution unit if an error is indicated.
- 9. The method of claim 8, wherein issuing the instruction comprises:
staging the instruction to the protected execution unit; and adjusting a first flag in the buffer to indicate the instruction has been issued.
- 10. The method of claim 8, wherein adjusting the first flag comprises setting a first pointer to indicate a buffer slot in which the issued instruction is stored.
- 11. The method of claim 10, further comprising setting a second pointer to indicate a buffer slot in which a next instruction to retire is stored.
- 12. The method of claim 11, wherein reissuing the instruction comprises copying the second flag to the first flag.
- 13. The method of claim 8, further comprising retiring the instruction when no error is indicated.
- 14. The method of claim 13, wherein retiring the instruction comprises:
adjusting a second pointer to indicate the instruction has retired; and updating an architectural state data with the result generated by the instruction.
- 16. A computer system comprising:
a processor that includes:
a protected execution unit to execute instructions in a manner that facilitates soft error detection; a check unit to monitor the protected execution unit and to generate a signal when an error is indicated; a replay unit to provide instructions to the protected execution unit, track the instructions until they are retired, and replay selected instructions when the check unit indicates an error; and a storage structure to provide a recovery algorithm to the processor when replay of selected instructions does not eliminate the mismatch.
- 16. The computer system of claim 15, wherein the replay unit includes first and second pointers to indicate a next instruction to issue and a next instruction to retire, respectively.
- 17. The computer system of claim 16, wherein the execution units are flushed prior to the replay when an error is indicated.
- 18. The system of claim 17, wherein the replay unit and the execution units are flushed prior to implementing the recovery routine.
- 19. The computer system of claim 16, wherein the storage structure is a non-volatile memory structure.
- 20. The computer system of claim 15, wherein the protected execution unit comprises first and second execution units and the replay unit provides identical instructions to the first and second execution units.
- 21. A processor comprising:
first and second execution cores to process identical instructions in lock step, each execution core including a replay unit to track instructions that have yet to retire. a check unit to compare instructions results generated by the execution cores and to trigger the replay unit to resteer the first and second execution cores to an instruction when the instruction results generate a mismatch.
- 22. The processor of claim 21, wherein each replay unit includes buffer slots to store instructions for execution and first and second pointers to indicate a next instruction to issue and a next instruction to retire, respectively.
- 23. The processor of claim 22, wherein each replay unit copies the second pointer to the first pointer when the instruction results generate a mismatch.
- 24. The processor of claim 23, wherein the check unit signals an instruction flush when a mismatch is detected.
RELATED PATENT APPLICATIONS
[0001] This patent application is a continuation-in-part of U.S. patent application Ser. No. 08/994,503, entitled “Processor Pipeline Including Backend Replay, which was filed on Dec. 19, 1997.
Continuations (1)
|
Number |
Date |
Country |
Parent |
09469961 |
Dec 1999 |
US |
Child |
10653785 |
Sep 2003 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
08994503 |
Dec 1997 |
US |
Child |
09469961 |
Dec 1999 |
US |