CPU register diagnostic testing
AssigneeHewlett-Packard Development Company, L.P.
InventorsAndrew Harvey Barr, Ken Gary Pomaranski, Dale John Shidla
Life of this patent
Estimating the term…
Abstract
One embodiment disclosed relates to a method of compiling a program to be executed on a target central processing unit (CPU). The method includes opportunistically scheduling diagnostic testing of CPU registers. The method may include use of a predetermined level of aggressiveness for the scheduling of the register diagnostic testing. The scheduled diagnostic testing may include writing known data to a register, reading data from the register, and comparing the known data with the data that was read. If the comparison indicates a difference, then a jump may occur to a fault handler routine.
Claims13
A method for testing a central processing unit (CPU) register, the method comprising:
- scheduling user code instructions during a compiling of a software program to be executed on a target CPU;
- and
- opportunistically scheduling diagnostic testing of CPU registers during said compiling so that testing of the CPU registers occurs within normal running of the user code instructions during execution of the program after said compiling, wherein all of the CPU registers are scheduled for some level of diagnostic testing, the opportunistically scheduling diagnostic testing comprising:
- checking a predetermined level of aggressiveness for the scheduling of a register diagnostic;
- determining a next register to be tested;
- determining if there is sufficient opportunity to schedule a register diagnostic instruction to test the next register without substantially impacting performance of the program, wherein if there is the sufficient opportunity, then scheduling the register diagnostic instruction to test the next register, and if there is insufficient opportunity to schedule the register diagnostic instruction, then scheduling the user code instructions;
- and
- if an error in a CPU register of the CPU registers is indicated, jumping to a fault handler routine.
A method for testing central processing unit (CPU) registers, the method comprising:
- opportunistically scheduling diagnostic testing of CPU registers, wherein all of the CPU registers are scheduled for some level of diagnostic testing, the opportunistically scheduling diagnostic testing comprising:
- checking a predetermined level of aggressiveness for the scheduling of the register diagnostic testing;
- determining a next register to be tested;
- determining if there is sufficient opportunity to schedule a register diagnostic instruction to test the next register without substantially impacting performance of a program;
- if there is sufficient opportunity, then scheduling the register diagnostic instruction to test the next register;
- and
- if there is insufficient opportunity, then scheduling user code instructions.
A computer-readable medium embedded with a compiler program for execution on a target microprocessor, the computer-readable medium comprising:
- executable code configured for scheduling user code instructions;
- and
- executable code configured for opportunistically scheduling diagnostic testing of registers in the microprocessor so that testing of the registers occurs within normal running of the user code instructions and all of the CPU registers are scheduled for some level of diagnostic testing, wherein the executable code for opportunistically scheduling diagnostic testing comprises:
- executable code for checking a predetermined level of aggressiveness for the scheduling of the register diagnostic testing;
- executable code for determining a next register to be tested;
- executable code for determining if there is sufficient opportunity to schedule a register diagnostic instruction to test the next register without substantially impacting performance of the compiler program;
- executable code for scheduling the register diagnostic instruction to test the next register if there is sufficient opportunity;
- and
- executable code for scheduling user code instructions if there is insufficient opportunity to schedule the register diagnostic;
- and
- executable code configured for jumping to a fault handler routine if an error in the register is indicated.
Dependencies are inferred from the claim text.