Switching between redundant and non-redundant modes of software execution
AssigneeXilinx, Inc.
InventorPramod Bindumadhav Bhardwaj
Life of this patent
Estimating the term…
Abstract
Executing critical and non-critical sections of program code include executing a non-critical section of a first program by a first processor and executing a non-critical section of a second program by a second processor. The first processor signals the second processor with context to commence redundant execution of the critical section. The second processor switches from executing the second program to executing the critical section of the first program. The first processor executes the critical section of the first program concurrent with the second processor.
Claims20
A method comprising:
- executing a non-critical section of a first program by a first processor;
- executing a non-critical section of a second program by a second processor;
- signaling the second processor with context of a critical section of the first program by the first processor to commence redundant execution of the critical section;
- switching the second processor from executing the second program to executing the critical section of the first program in response to the signaling;
- and
- executing the critical section of the first program by the first processor concurrent with the second processor executing the critical section.
A method comprising:
- executing a non-critical section of a program by a first processor;
- signaling a second processor and a third processor by the first processor to commence redundant execution of a critical section of the program;
- and
- executing concurrently the critical section of the program by the second processor and the third processor.
A method, comprising:
- determining a non-critical section and a beginning and end of a critical section specified in source code of a program, wherein the non-critical section is targeted for execution by a first processor, and the critical section is targeted for redundant execution by the first processor and a second processor;
- inserting a call to a runtime library first function before the beginning of the critical section, wherein the first function is configured to signal the second processor by the first processor to commence the redundant execution of the critical section;
- and
- inserting a call to a runtime library second function for execution by the first and second processors at the end of the critical section, wherein the second function is configured to:
- compare first results computed by the first processor in executing the critical section, to second results computed by the second processor in executing the critical section, and
- signal an error in response to the comparison indicating a mismatch between the first results and the second results.
Dependencies are inferred from the claim text.