Processor fault tolerance through translation lookaside buffer refresh
AssigneeCisco Technology, Inc.
InventorSteven M. Lang
Life of this patent
Estimating the term…
Abstract
Techniques are provided herein to provide a processor device that has tolerance for faults associated with operations of a translation lookaside buffer. In a processor device, contents of a translation lookaside buffer are stored in a memory that is protected by an error correction code (ECC) to provide an ECC-protected backup copy of the contents of the translation lookaside buffer. When a miss exception of the translation lookaside buffer is triggered during execution of a processor function, the contents of the translation lookaside buffer is refreshed with the ECC-protected backup copy. Future operations of the processor are made using the refreshed contents of the translation lookaside buffer.
Claims19
A method comprising:
- in a processor device that includes software instructions, storing contents of a translation lookaside buffer in a memory that is protected by an error correction code to provide an error correction code protected backup copy of the contents of the translation lookaside buffer;
- setting a trigger for a miss exception for the contents of the translation lookaside buffer to determine whether an address translation of the contents of the translation lookaside buffer returns an invalid address;
- determining whether a first instance of the trigger for the miss exception has occurred;
- performing a translation lookaside buffer miss handler function when the first instance of the trigger for the miss exception has occurred in order to refresh the contents of the translation lookaside buffer with the error correction code protected backup copy such that the contents of the translation lookaside buffer comprise the error correction code protected backup copy of the contents of the translation lookaside buffer;
- re-executing the translation lookaside buffer miss handler function using the error correction code protected backup copy in the translation lookaside buffer;
- determining whether a second instance of the trigger for the miss exception has occurred;
- storing an indication indicating that the address translation of the contents of the translation lookaside buffer is unrecoverable and returns the invalid address due to an uncorrectable problem in response to determining that the second instance of the trigger has occurred;
- and
- storing an indication that the miss exception was an error and that the invalid address of the address translation of the contents of the translation lookaside buffer was successfully corrected by refreshing the contents with the error correction code protected backup copy in response to determining that the second instance of the trigger has not occurred.
An apparatus comprising:
- a processor core in a processor device, the processor core comprising a translation lookaside buffer;
- a memory that stores data protected by an error correction code and software instructions;
- wherein the processor core is configured to:
- store contents of the translation lookaside buffer in the memory so as to provide error correction code protected backup copy of the contents of the translation lookaside buffer,
- set a trigger for a miss exception for the contents of the translation lookaside buffer to determine whether an address translation of the contents of the translation lookaside buffer returns an invalid address;
- determine whether a first instance of the trigger for the miss exception has occurred;
- perform a translation lookaside buffer miss handler function when the first instance of the trigger for the miss exception has occurred in order to refresh the contents of the translation lookaside buffer with the error correction code protected backup copy such that the contents of the translation lookaside buffer comprise the error correction code protected backup copy of the contents of the translation lookaside buffer;
- re-execute the translation lookaside buffer miss handler function using the error correction code protected backup copy in the translation lookaside buffer;
- determine whether a second instance of the trigger for the miss exception has occurred;
- store an indication that the address translation of the contents of the translation lookaside buffer is unrecoverable and returns the invalid address due to an uncorrectable problem in response to determining that the second instance of the trigger has occurred;
- and
- store an indication that the miss exception was an error and that the invalid address of the address translation of the contents of the translation lookaside buffer was successfully corrected by refreshing the contents with the error correction code protected backup copy in response to determining that the second instance of the trigger has not occurred.
Logic encoded in one or more tangible non-transitory media for execution and when executed operable to:
- store contents of a translation lookaside buffer in a memory that is protected by an error correction code to provide an error correction code protected backup copy of the contents of the translation lookaside buffer;
- set a trigger for a miss exception for the contents of the translation lookaside buffer to determine whether an address translation of the contents of the translation lookaside buffer returns an invalid address;
- determine whether a first instance of the trigger for the miss exception has occurred;
- perform a translation lookaside buffer miss handler function when the first instance of the trigger for the miss exception has occurred in order to refresh the contents of the translation lookaside buffer with the error correction code protected backup copy such that the contents of the translation lookaside buffer comprise the error correction code protected backup copy of the contents of the translation lookaside buffer;
- re-execute the translation lookaside buffer miss handler function using the error correction code protected backup copy in the translation lookaside buffer;
- determine whether a second instance of the trigger for the miss exception has occurred;
- store an indication indicating that the address translation of the contents of the translation lookaside buffer is unrecoverable and returns the invalid address due to an uncorrectable problem in response to determining that the second instance of the trigger has occurred;
- and
- store an indication that the miss exception was an error and that the invalid address of the address translation of the contents of the translation lookaside buffer was successfully corrected by refreshing the contents with the error correction code protected backup copy in response to determining that the second instance of the trigger has not occurred.
Dependencies are inferred from the claim text.