System for tracing hardware counters utilizing programmed...

Error detection/correction and fault detection/recovery – Data processing system error or fault handling – Reliability and availability

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C714S037000, C714S038110, C714S039000, C714S047300, C712S227000

Reexamination Certificate

active

06253338

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Technical Field
The present invention relates in general to a method and system for data processing and in particular to an improved method and system for counter level tracing. Still more particularly, the present invention relates to a method and system for tracing hardware counters by way of an interruption without introducing any overhead or modifying the code being counted.
2. Description of the Related Art
Most modern microprocessors, like members of the PowerPC family, provide hardware counters that can be programmed to count various events happening on the processor. To date, tools have been built around these facilities (usually and hereafter referenced as Performance Monitor) for application and operating system tuning. Such tools report counter values over complete runs of workloads to tune. In this mode, one resets the counters, programs the performance monitor to count the desired events, runs the workload to measure, and reads the counters after the workload has completed. This procedure is limited in that it only provides global information, i.e. from start to finish, without the possibility of figuring out which part of the workload is responsible for the counter increments.
Application Programming Interfaces (API) have also been built to collect counter information for portions of workloads. In this mode, one must add calls to API code just before and immediately after the execution of the portion of the workload to analyze. The former is to setup and start the counting and the latter is to stop the counting and retrieve the results. Those API calls can either be added directly to the source code if it is available or by way of instrumentation, i.e. dynamic insertion of code to divert normal execution path. This technique provides lower granularity results than the global counting of the previous approach, but at a big cost due to the overhead of the outside code necessary to control the counting. The overhead is what directly limits the obtainable granularity of the results.
Consequently, it would be desirable to provide an improved method and system that determines which part of a workload is responsible for counter increments of desired events without any overhead. In particular, it would be desirable to provide an improved method and system which utilizes a performance monitor facility and generates an exception after each branch instruction for gaining control at a basic block level for counting various events happening on a microprocessor.
SUMMARY OF THE INVENTION
It is therefore one object of the present invention to provide an improved method and system for data processing.
It is another object of the present invention to provide an improved method and system for counter level tracing.
It is yet another object of the present invention to provide an improved method and system for tracing hardware counters by way of an interruption without introducing any overhead or modifying the code.
The foregoing objects are achieved as is now described. A method and system within a data processing system or information handling system are disclosed for counting various events from a running program (hereafter called a process) by taking a trace by way of using an interruption. According to the present invention, a processor within a data processing system is programmed to generate a trace interrupt at least after each branch instruction, or at the end of each basic block of code from a currently running program or process. By programming monitor mode control registers within a performance monitor feature, one or more counters are programmed to count various events happening on the data processing system thereby creating tracing information. If the current process is a process to be traced, the tracing information is stored in a trace buffer for post-processing analysis, the counters are reset to zero returning back to the process from the interrupt.
The above as well as additional objects, features, and advantages of the present invention will become apparent in the following detailed written description.


REFERENCES:
patent: 4598364 (1986-07-01), Gum et al.
patent: 5274811 (1993-12-01), Borg et al.
patent: 5446876 (1995-08-01), Levine et al.
patent: 5564028 (1996-10-01), Swoboda et al.
patent: 5594864 (1997-01-01), Trauben
patent: 5621886 (1997-04-01), Alpert et al.
patent: 5630102 (1997-05-01), Johnson et al.
patent: 5642479 (1997-06-01), Flynn
patent: 5717881 (1998-02-01), Beard et al.
patent: 5724566 (1998-03-01), Swoboda et al.
patent: 5740414 (1998-04-01), Tovey et al.
patent: 5835702 (1998-11-01), Levine et al.
patent: 5991708 (1999-11-01), Levine et al.
patent: 5996092 (1999-11-01), Augsburg et al.
patent: 6006033 (1999-12-01), Heisch
patent: 6067644 (2000-05-01), Levine et al.
“Transition Records For Tracing Program Flows”, IBM Technical Disclosure Bulletin, Jun. 1996.*
“Transition Records For Tracing program Flows On Amazon and POWERPC Machines”, IBM Technical Disclosure Bulletin, Nov. 1997.

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

System for tracing hardware counters utilizing programmed... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with System for tracing hardware counters utilizing programmed..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and System for tracing hardware counters utilizing programmed... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2498938

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