Patent ID: 7519852

Claim:
An apparatus to redirect an instruction pointer, the apparatus comprising a load module configured to copy a first memory diagnostic process comprising a plurality of software instructions for detecting and isolating bad memory to memory locations addressed with a first base address, a plurality of memory diagnostic processes comprising a plurality of software instructions for detecting and isolating bad memory to a plurality of memory locations addressed with unique base addresses, wherein the plurality of memory diagnostic processes are identical to the first memory diagnostic process, and wherein the unique base addresses are integer multiples of the first base address; an instruction pointer module configured to address a memory location with an address comprising a pointer base address and an offset, wherein the pointer base address is set to the first base address and wherein the offset is incremented after a successful read of the instruction stored at the memory location that is the sum of the pointer base address and the offset; a pointer modification module configured to: modify the pointer base address from a current base address to a subsequent base address of the plurality of unique base addresses in response to a read error generated during a read operation on a current memory diagnostic process; restore the offset to its value at the time of the read error in response to the read error generated during the read operation on the current memory diagnostic process; and modify the instruction pointer module such that the instruction pointer module addresses the memory location that is the sum of the subsequent base address and the offset, wherein an instruction stored at the memory location that is the sum of the subsequent base address and the offset is identical to an instruction at the memory location that is the sum of the current base address and the offset; and wherein the load module, instruction pointer module, and pointer modification module comprise one or more of hardware and executable code, the executable code stored on one or more computer readable media.