Method and apparatus for harvesting problematic code...

Electrical computers and digital processing systems: processing – Processing control – Specialized instruction processing in support of testing,...

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C714S045000, C714S039000, C710S267000

Reexamination Certificate

active

06745321

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 instruction processing architecture and instruction processing control within a processor in a data processing system, and more particularly, processing control with specialized instruction processing in support of testing and debugging.
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. 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 mis-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. It would be particularly advantageous to provide contextual information with respect to the cause of an error.
SUMMARY OF THE INVENTION
A method and apparatus for harvesting problematic code sections that may cause a hang condition based on a hardware design flaw is presented. Monitoring is performed to detect a hang condition. Responsive to detecting a hang condition, steps are employed by hardware and/or software to recover from a hang condition, such as flushing instructions dispatched to the plurality of execution units. Upon successful completion of hang recovery, a debug interrupt is injected, causing a debug interrupt handler to be immediately invoked before the resumption of normal execution. The debug interrupt handler may then harvest problematic code sections in the undisturbed execution environment to allow diagnosis of the hardware design error that may have caused the hang condition.


REFERENCES:
patent: 3518413 (1970-06-01), Holtey
patent: 3566368 (1971-02-01), De Blauw
patent: 5448705 (1995-09-01), Nguyen et al.
patent: 5560033 (1996-09-01), Doherty et al.
patent: 5668815 (1997-09-01), Gittinger et al.
patent: 5701516 (1997-12-01), Cheng et al.
patent: 5790530 (1998-08-01), Moh et al.
patent: 6269478 (2001-07-01), Lautenbach-Lampe et al.
patent: 6539500 (2003-03-01), Kahle et al.
Hennessy, John L. and David A. Patterson, Computer Architecture A Quantitative Approach, 1996, Morgan Kaufmann Publishers, Inc., 2nd Ed., pp. 179-184.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method and apparatus for harvesting problematic code... 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 harvesting problematic code..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for harvesting problematic code... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3314722

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.