Patent ID: 7861228

Claim:
A method for detecting computational errors in a digital processor executing a program on a computer system, the method comprising steps of: dividing the program into a plurality of computation sections; generating two functionally identical code segments respectively comprising a primary segment and a secondary segment, for each of the computation sections; executing a first and second computation section by the use of timers to allow overlapped execution of the code segments on the same processor wherein, the execution of the first computation section is performed by the steps of: 1) initiating execution of the primary segment in the first computation section; 2) starting a first temporal diversity timer after the execution of the primary segment in the first computation section; 3) initiating execution of the secondary segment in the first computation section upon expiration of the first timer; 4) upon termination of the secondary segment of the first computation section, initiating execution of checking code to compare respective results of execution of the primary and the secondary segments of the first computation section; and 5) providing an error indication if the respective results of the primary and secondary segments of the first computation section are not identical; wherein execution of the second computation section is performed by the steps of: 1) upon starting of the first temporal diversity timer, initiating execution of the primary segment in the second computation section; 2) starting a second temporal diversity timer after the execution of the primary segment in the second computation section; 3) initiating execution of the secondary segment in the second computation section upon expiration of the second timer; 4) upon termination of the secondary segment of the second computation section, initiating execution of checking code to compare respective results of execution of the primary and the secondary segments of the second computation section; and 5) providing an error indication if the respective results of the primary and secondary segments of the second computation section are not identical; wherein the first and second timers are equal to the average duration of certain events.