Patent ID: 7213170

Claim:
A method of providing opportunistic functional testing within a central processing unit (CPU), the method comprising: executing a computer program having both pre-scheduled redundant and non-redundant operations on multiple functional units of a same type in the CPU; automatically comparing outputs from the multiple functional units; and checking results of the comparison only for the pre-scheduled redundant operations but not for the pre-scheduled non-redundant operations, wherein the pre-scheduled redundant operations are opportunistically scheduled by a compiler during compilation of source code for the computer program and before beginning execution of the computer program to execute redundantly on at least two of the multiple functional units to utilize an otherwise idle cycle for at least one of the multiple functional units for purposes of functional testing, and wherein multiple of the pre-scheduled non-redundant operations are scheduled by the compiler during compilation of the source code for the computer program and before beginning execution of the computer program to execute in parallel on the multiple functional units for purposes of performance.