Error detection/correction and fault detection/recovery – Data processing system error or fault handling – Reliability and availability
Reexamination Certificate
1999-11-08
2003-04-01
Beausoliel, Robert (Department: 2184)
Error detection/correction and fault detection/recovery
Data processing system error or fault handling
Reliability and availability
C714S048000, C712S244000, C712S219000
Reexamination Certificate
active
06543003
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Technical Field
The present invention relates generally to an improved data processing system and in particular to a method and apparatus for recovery from errors in the data processing system. Still more particularly, the present invention relates generally to an improved method and apparatus for recovering from errors occurring in a microprocessor in a data processing system.
2. Description of Related Art
Modern processors commonly use a technique known as pipelining to improve performance. Pipelining is an instruction execution technique that is analogous to an assembly line. Consider that instruction execution often involves the sequential steps of fetching the instruction from memory, decoding the instruction into its respective operation and operand(s), fetching the operands of the instruction, applying the decoded operation on the operands (herein simply referred to as “executing” the instruction), and storing the result back in memory or in a register. Pipelining is a technique wherein the sequential steps of the execution process are overlapped for a subsequence of the instructions. For example, while the CPU is storing the results of a first instruction of an instruction sequence, the CPU simultaneously executes the second instruction of the sequence, fetches the operands of the third instruction of the sequence, decodes the fourth instruction of the sequence, and fetches the fifth instruction of the sequence. Pipelining can thus decrease the execution time for a sequence of instructions.
Another technique for improving performance involves executing two or more instructions in parallel, i.e., simultaneously. Processors that utilize this technique are generally referred to as superscalar processors. Such processors may incorporate an additional technique in which a sequence of instructions may be executed out of order. Results for such instructions must be reassembled upon instruction completion such that the sequential program order or results are maintained. This system is referred to as out of order issue with in-order completion.
The ability of a superscalar processor to execute two or more instructions simultaneously depends upon the particular instructions being executed. Likewise, the flexibility in issuing or completing instructions out-of-order can depend on the particular instructions to be issued or completed. There are three types of such instruction dependencies, which are referred to as: resource conflicts, procedural dependencies, and data dependencies. Resource conflicts occur when two instructions executing in parallel tend to access the same resource, e.g., the system bus. Data dependencies occur when the completion of a first instruction changes the value stored in a register or memory, which is later accessed by a later completed second instruction.
During execution of instructions, an instruction sequence may fail to execute properly or to yield the correct results for a number of different reasons. For example, a failure may occur when a certain event or sequence of events occurs in a manner not expected by the designer. Further, an error also may be caused by a misdesigned circuit or logic equation. Due to the complexity of designing an out of order processor, the processor design may logically miss-process one instruction in combination with another instruction, causing an error. In some cases, a selected frequency, voltage, or type of noise may cause an error in execution because of a circuit not behaving as designed. Errors such as these often cause the scheduler in the microprocessor to “hang”, resulting in execution of instructions coming to a halt.
Therefore, it would be advantageous to have a method and apparatus for recovering from errors causing a microprocessor to hang.
SUMMARY OF THE INVENTION
The present invention provides a method and apparatus for recovering from a hang condition in a processor having a plurality of execution units. Monitoring is performed to detect a hang condition. Responsive to detecting a hang condition, instructions dispatched to the plurality of execution units are flushed.
REFERENCES:
patent: 3566368 (1971-02-01), DeBlauw
patent: 4872110 (1989-10-01), Smith et al.
patent: 5119483 (1992-06-01), Madden et al.
patent: 5136696 (1992-08-01), Beckwith et al.
patent: 5513319 (1996-04-01), Finch et al.
patent: 6000040 (1999-12-01), Culley et al.
patent: 6067644 (2000-05-01), Levine et al.
patent: 6128687 (2000-10-01), Dao et al.
patent: 6209081 (2001-03-01), Kahle et al.
patent: 6295601 (2001-09-01), Steele, Jr.
patent: 6393590 (2002-05-01), Wood et al.
IBM Technical Discosure Bulletin. Processor Reset Control for Hardware Verification. Apr. 1994, vol. 37, Issue No. 4B, pp. 679-680.*
Taechashong, Primas and Prabhas Chongstitvatana. A VLSI Design of a Load/Store Unit for a RISC Processor. Proc. 2nd Annual National Symposium on Computational Science and Engineering, Bangkok, 1998, pp. 244-248.
Floyd Michael Stephen
Kahle James Allan
Le Hung Qui
Leitner Larry Scott
Reick Kevin Franklin
Beausoliel Robert
Emile Volel
Tkacs Stephen R.
Wilson Yolanda
Yee Duke W.
LandOfFree
Method and apparatus for multi-stage hang recovery in an... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Method and apparatus for multi-stage hang recovery in an..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for multi-stage hang recovery in an... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3082355