Method and apparatus for re-creating the trace of an...

Data processing: software development – installation – and managem – Software program development tool – Testing or debugging

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C712S023000, C712S227000

Reexamination Certificate

active

06609247

ABSTRACT:

FIELD
The technical field relates to digital computer systems debugging. More particularly, it relates to methods and an apparatus for debugging IA-32 systems running on an IA-64 CPU.
BACKGROUND
In the field of computer architecture, it is desirable to provide means of debugging systems. This is especially true in mixed architectures, such as the IA-64 architecture, which supports two instruction sets—the IA-32 variable length instruction set and the enhanced mode (EM) instruction set. A single machine, such as an IA-64 microprocessor, may process instructions from both these instruction sets. In debugging problems with processor execution, it may become necessary to investigate the sequence of instructions executed immediately prior to the problem. With respect to the IA-64 machine, it is desirable to provide debugging methods for IA-32 or x86 instructions, as well as native instructions.
Various methods exist by which computer systems may be debugged. For example, some central processing units (CPUs) provide debug hints in the form of “branch trace messages.” These branch trace messages send out a special signature (e.g., source, destination address of branch) on the processor bus. One debugging technique uses “breakpoints” that cause the CPU to respond in a certain specified way when a certain instruction is executed. In order to gather information about the architectural state of the machine using a breakpoint, it is necessary to stop the machine at the breakpoint. While some techniques like “Sample-on-the-Fly” allow a portion of the machine state to be sampled while a program executes, the information recorded is overwritten in each new cycle, giving no temporal information about the execution history. Scan methods have been employed to interrogate the internal state of the machine by stopping the CPU for a clock cycle, scanning the processor state, and sending it to a system-visible entity such as a processor bus or register. The CPU is clocked for a cycle, new state information gathered and the process repeats.
The problem with existing debug methods is that they are slow, complex, and intrusive. These debug techniques require stopping the program, reading all of the information, and then continuing the program. Also, some debug techniques require some knowledge about the failing condition. For instance, the breakpoint technique requires identifying a breakpoint in the vicinity of the suspected problem (for example, a range of instruction addresses) and examining the CPU state when the machine halts at the breakpoint. This is largely a process of trial and error—making an educated guess regarding the location of the breakpoint, re-executing certain instructions, and determining whether the error exists. Sometimes the very act of setting up a breakpoint may perturb the machine state enough such that the error is masked.
Also, existing debug techniques do not allow the user to efficiently switch modes of operation. That is, traditional methods may allow the user to analyze both macroinstructions and microinstructions, but not by the same method.
What is needed is a better way of accessing the execution history. In particular, what is needed is a non-intrusive means of gathering instruction information as the instructions execute without stopping the machine to set a breakpoint or to scan particular nodes.
SUMMARY
A method for creating a trace of emulated instructions from an emulated instruction set when running on hardware optimized for a different instruction set, such as IA-32 instructions running on an IA-64 machine is described. An execution trace buffer is created that maintains desired information about instructions as they are executed and retired. A system may be configured such that certain desired information helpful to debugging the system may be written to the buffer as the instructions are retired. This information may include the addresses of sequential or branch instructions, or other relevant information that can be gathered continuously and non-intrusively as instructions are executed. The information may be read from the buffer and output in a machine-visible form at the user's convenience.
A computer system capable of creating an easily readable execution history by using an execution trace buffer. The execution trace buffer maintains certain information about instructions as they are executed and retired. The computer system may be configured such that certain desired information helpful to debugging the system may be written to the buffer as the instructions are retired. This information may include the addresses of sequential or branch instructions, or other relevant information that can be gathered continuously and non-intrusively as instructions are executed. The information may be read from the buffer and output in a machine-visible form at the user's convenience.


REFERENCES:
patent: 5751942 (1998-05-01), Christensen et al.
patent: 5859999 (1999-01-01), Morris et al.
patent: 5860017 (1999-01-01), Sharangpani et al.
patent: 5944841 (1999-08-01), Christie
patent: 6145123 (2000-11-01), Torrey et al.
patent: 6163764 (2000-12-01), Dulong et al.
patent: 6182210 (2001-01-01), Akkary et al.
patent: 6240509 (2001-05-01), Akkary
patent: 6463522 (2002-10-01), Akkary
patent: 6467083 (2002-10-01), Yamashita
patent: 6470408 (2002-10-01), Morrison et al.
patent: 6496925 (2002-12-01), Rodgers et al.
Dulong, The IA-64 architecture at work, Jul. 1998, Computer, vol. 31, pp. 24-32.*
Story-Tang, New Algorithms for Improved Transcendental Functions on IA-64, Apr. 1999, Proceedings 14th IEEE Symposium on Computer Arithmetic.*
Larin-Conte, Compiler-driven cached Code compression Schemes for Embedded ILP Processors, Nov. 1999, Proceedings 32nd Annual International Symposium on Microarchitecture, pp. 82-92.*
Bharadwaj-Menezes-McKinsey, Wavefront Scheduling: Path Based Data representation and Scheduling of Subgraphs, Nov. 1999, Proceedings 32nd Annual International Symposium on Microarchitecture, pp. 262-271.*
Wolfe, A., “Patents shed light on Merced's Innards”, Electronic Engineering Times, Feb. 15, 1999.

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

Rate now

     

Profile ID: LFUS-PAI-O-3109184

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