Stochastic performance analysis method and apparatus therefor

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

C717S152000, C717S152000

Reexamination Certificate

active

06374369

ABSTRACT:

BACKGROUND OF THE INVENTION
The present invention relates generally to the performance analysis of software, also known as “profiling”. More specifically, the present invention relates to performance analysis of software by controlling statistical sampling of performance measures using a finite state machine operated in response to one of a hardware interrupt and a timing interrupt. A corresponding apparatus and software program set are also disclosed.
Software developers, especially those developing time and/or performance critical software, such as real-time programs for embedded processors or driver software for peripherals, need to determine where and how much time is spent in the various parts (routines) of their software in order to determine how to further optimize their software to meet necessary performance and response requirements. Such performance analysis, also known by the term “profiling,” has traditionally been one that is intrusive to the code being analyzed.
The state of the art in profiling software for performance requires modification of the software being profiled, either at the source code level (e.g. via a tool like gprof or custom program functions or macros) or at the object code level (e.g. via a tool like Pixie), and/or possibly a dedicated compiler that offers special support for profiling. Such methods are impractical for real-time performance critical code, as the changes to the software being analyzed are by necessity invasive enough to significantly alter the actual execution of the software being analyzed. Similarly, profiling which depends on alternate compilers completely changes the code produced for analysis and profiling, significantly increases the overhead of execution, and may even introduce new bugs as a result of the new profiling code.
One very serious side effect of this form of profiling is that data and instruction caches and, more importantly, the loading of such caches, is repeatedly disrupted by the profiling process, because the profiling code is physically interleaved with the execution of the software being analyzed. In real-time and performance critical software, proper cache utilization is a vital component.
Commonly, a profiling program will intercept each function call being made, log certain information about it, record a starting time, call the next function in line, and then upon a return from that function, will log the ending time in order to calculate elapsed time. As such, profiling programs are generally written in compiled languages; there's no control over execution overhead involved in performing the actual profiling and, therefore, results produced are very coarse. Additionally, the profiling software needs to have an extensive internal understanding of how each function operates.
As a result of these limitations in standard profiling, stochastic methods of profiling have been developed. Such methods use a hardware timer to initiate an interrupt, which in turn initiates execution of the profiling tool. However, the data that can be measured using such existing techniques (e.g. UNIX's prof) are quite limited in practice. Trap driven methods (e.g. Philips' tmprod) use a trace interrupt, which is typically used to trace through individual instructions or blocks of code, i.e., routines. This, in turn, introduces a significant overhead, typically more than 150 percent. While methods have been developed, such as that disclosed in U.S. Patent No. 4,845,615—“Software Performance Analyzer,” which patent is incorporated herein by reference and which patent aims to minimize this overhead to limiting trace interrupts or exceptions to branches, these methods provide only limited control over overhead.
Furthermore, hardware based profiling methods require the introduction of impractical and costly additional functionality into the hardware that the software being analyzed runs on, often necessitating changes to the bus and board design and costly external hardware.
Practical performance analysis and profiling of performance critical (e.g. real-time) software applications is therefore not achieved with software based methods using the present state of the art, as existing methods modify the behavior (e.g. cache) of the software being analyzed. Also, existing profiling methods are either software or hardware based, but not both.
As such, what is needed is a method for profiling software in which tools don't need to be modified, and in which it is possible to analyze performance without access to source code and with minimal behavioral modification. What is also needed is a corresponding computer system and operating programs therefor which permit software profiling of user selectable routines with user selectable weighting. It would be desirable if the profiling method and corresponding computer system would provide separate performance information on the application software being profiled and the software performing the profiling so that a true measure of performance advantageously can be generated.
SUMMARY OF THE INVENTION
Based on the above and foregoing, it can be appreciated that there presently exists a need in the art for a method which overcomes the above-described deficiencies of the presently available technology. The present invention was motivated by a desire to overcome the drawbacks and shortcomings of the presently available technology, and thereby fulfill this need in the art.
The present invention is directed to methods and corresponding systems for profiling of performance critical software, wherein it is necessary to measure the execution of software code with a high level of detail without significantly modifing or altering the behavior of the code being profiled, so that the measurements can be used to determine where additional tuning of the code can be performed in order to meet appropriate performance requirements.
An additional object of the present invention is to minimize overhead caused by the profiling process (also referred to as the “observer”) such that the performance behavior of the code being analyzed is not significantly altered.
Yet another object of the present invention is that the overhead of the profiling process can be estimated so as to provide significant accuracy to the profiling being performed by removing the overhead attributable to the profiling process.
Another object of the present invention is to ensure that overhead attributable to the observer is controllable via a feedback mechanism.
Yet another object of the present invention is to provide a profiling method and corresponding system which permits programming of the observer, to thereby permit measurement of selected routines.
Still another object according to the present invention is to provide a profiling method and corresponding system which provides the ability to accurately measure performance or execution time of studied code, down to the clock-cycle level.
Another object according to the present invention is to provide a profiling method and corresponding system which produces timing information in the form of a log which contains timing information measured by the profiling process.
Yet another object according to the present invention is to provide a profiling method and corresponding system which does not required any change in the source code of the code being analyzed in order to support profiling, and in fact, access to source code is not even necessary for the profiling process.
Still another object according to the present invention is to permit the use of the same compiler and compilation tools as are used for the creation of a production version of the software being analyzed, instead of requiring a modified or different compiler with profiling features built into it.
An additional object according to the present invention is to provide a profiling method and corresponding system which eliminates the need for expensive external profiling hardware.
Another object of the invention is to provide a profiling method and corresponding system which is low in cost and applicable to a wide

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

Stochastic performance analysis method and apparatus therefor does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Stochastic performance analysis method and apparatus therefor, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Stochastic performance analysis method and apparatus therefor will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2909059

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