
US Patent No: 7,526,757
Number of patents in Portfolio can not be more than 2000
Method and apparatus for maintaining performance monitoring structures in a page table for use in monitoring performance of a computer program
Stats
-
Apr 28, 2009
Issued date -
Jan 14, 2004
filing date -
10/757,250
serial no -
In Force
status
Importance
Abstract
A method and apparatus in a data processing system for measuring events associated with the execution of instructions are provided. Instructions are received at a processor in the data processing system. If a selected indicator is associated with the instruction, counting of each event associated with the execution of the instruction is enabled. In some embodiments, the performance indicators, counters, thresholds, and other performance monitoring structures may be stored in a page table that is used to translate virtual addresses into physical storage addresses. A standard page table is augmented with additional fields for storing the performance monitoring structures. These structures may be set by the performance monitoring application and may be queried and modified as events occur that require access to physical storage.
First Claim
Related Publications
International Classification(s)
- [Classification Symbol]
- [Patents Count]
Cited Art
| Patent Info | (Count) | # Cites | Year |
|---|---|---|---|
|
|
|||
| 6,006,033 Method and system for reordering the instructions of a computer program to optimize its execution | 92 | 1994 | |
| 6,206,584 Method and apparatus for modifying relocatable object code files and monitoring programs | 51 | 1995 | |
| 5,875,294 Method and system for halting processor execution in response to an enumerated occurrence of a selected combination of internal states | 32 | 1995 | |
| 5,691,920 Method and system for performance monitoring of dispatch unit efficiency in a processing system | 75 | 1995 | |
| 5,752,062 Method and system for performance monitoring through monitoring an order of processor events during execution in a processing system | 65 | 1995 | |
| 5,797,019 Method and system for performance monitoring time lengths of disabled interrupts in a processing system | 43 | 1995 | |
| 5,774,724 System and method for acquiring high granularity performance data in a computer system | 71 | 1995 | |
| 5,822,763 Cache coherence protocol for reducing the effects of false sharing in non-bus-based shared-memory multiprocessors | 42 | 1996 | |
| 5,937,437 Method and apparatus for monitoring address translation performance | 45 | 1996 | |
| 5,938,760 System and method for performance monitoring of instructions in a re-order buffer | 37 | 1996 | |
| 6,189,072 Performance monitoring of cache misses and instructions completed for instruction parallelism analysis | 38 | 1996 | |
| 5,950,009 Method and apparatus for profile-based reordering of program portions in a computer program | 71 | 1997 | |
| 5,970,439 Performance monitoring in a data processing system | 36 | 1997 | |
| 5,928,334 Hardware verification tool for multiprocessors | 32 | 1997 | |
| 6,094,709 Cache coherence for lazy entry consistency in lockup-free caches | 33 | 1997 | |
| 5,940,618 Code instrumentation system with non intrusive means and cache memory optimization for dynamic monitoring of code segments | 77 | 1997 | |
| 6,101,524 Deterministic replay of multithreaded applications | 92 | 1997 | |
| 5,938,778 System and method for tracing instructions in an information handling system without changing the system source code | 52 | 1997 | |
| 6,256,775 Facilities for detailed software performance analysis in a multithreaded processor | 112 | 1997 | |
| 6,202,207 Method and a mechanism for synchronized updating of interoperating software | 293 | 1998 | |
| 6,189,142 Visual program runtime performance analysis | 68 | 1998 | |
| 6,199,204 Distribution of software updates via a computer network | 316 | 1998 | |
| 6,223,338 Method and system for software instruction level tracing in a data processing system | 55 | 1998 | |
| 6,285,974 Hardware verification tool for multiprocessors | 37 | 1999 | |
| 6,446,029 Method and system for providing temporal threshold support during performance monitoring of a pipelined processor | 53 | 1999 | |
| 6,973,542 Detecting when to prefetch inodes and then prefetching inodes in parallel | 26 | 2000 | |
| 6,928,521 Method, system, and data structures for using metadata in updating data in a storage device | 52 | 2000 | |
| 2003/0041,096 Transaction processing in a distributed data processing system | 24 | 2002 | |
| 6,925,424 Method, apparatus and computer program product for efficient per thread performance information | 63 | 2003 | |
| 2005/0257,092 Method and apparatus for identifying access states for variables | 24 | 2004 | |
|
|
|||
| 5,142,634 Branch prediction | 196 | 1989 | |
| 5,394,529 Branch prediction unit for high-performance processor | 98 | 1993 | |
| 5,710,881 Data merging method and apparatus for shared memory multiprocessing computer systems | 44 | 1996 | |
| 5,887,159 Dynamically determining instruction hint fields | 103 | 1996 | |
| 5,966,538 Method and apparatus for automatically determining which compiler options should be used when compiling a computer program | 40 | 1997 | |
| 6,070,009 Method for estimating execution rates of program execution paths | 105 | 1997 | |
| 6,119,075 Method for estimating statistics of properties of interactions processed by a processor pipeline | 44 | 1997 | |
| 6,442,585 Method for scheduling contexts based on statistics of memory system interactions in a computer system | 99 | 1997 | |
| 6,631,514 Emulation system that uses dynamic binary translation and permits the safe speculation of trapping operations | 85 | 1998 | |
| 6,324,689 Mechanism for re-writing an executable having mixed code and data | 38 | 1998 | |
| 6,192,513 Mechanism for finding spare registers in binary code | 40 | 1998 | |
| 6,351,844 Method for selecting active code traces for translation in a caching dynamic translator | 142 | 1998 | |
| 6,430,741 System and method for data coverage analysis of a computer program | 54 | 1999 | |
| 6,721,875 Method and apparatus for implementing a single-syllable IP-relative branch instruction and a long IP-relative branch instruction in a processor which fetches instructions in bundle form | 34 | 2000 | |
| 2003/0126,590 System and method for dynamic data-type checking | 33 | 2001 | |
| 2005/0091,456 Determining an arrangement of data in a memory for cache efficiency | 24 | 2003 | |
|
|
|||
| 5,276,833 Data cache management system with test mode using index registers and CAS disable and posted write disable | 40 | 1990 | |
| 5,555,432 Circuit and method for scheduling instructions by predicting future availability of resources required for execution | 65 | 1994 | |
| 5,659,679 Method and apparatus for providing breakpoints on taken jumps and for providing software profiling in a computer system | 72 | 1995 | |
| 6,185,671 Checking data type of operands specified by an instruction using attributes in a tagged array architecture | 27 | 1998 | |
| 6,134,676 Programmable hardware event monitoring method | 123 | 1998 | |
| 6,772,322 Method and apparatus to monitor the performance of a processor | 31 | 2000 | |
| 2002/0199,179 Method and apparatus for compiler-generated triggering of auxiliary codes | 39 | 2001 | |
| 6,842,850 DSP data type matching for operation using multiple functional units | 27 | 2003 | |
| 6,944,720 Memory system for multiple data types | 22 | 2003 | |
| 7,181,723 Methods and apparatus for stride profiling a software application | 28 | 2003 | |
|
|
|||
| 5,822,790 Voting data prefetch engine | 108 | 1997 | |
| 5,966,537 Method and apparatus for dynamically optimizing an executable computer program using input data | 98 | 1997 | |
| 6,330,662 Apparatus including a fetch unit to include branch history information to increase performance of multi-cylce pipelined branch prediction structures | 36 | 1999 | |
| 6,237,141 Method and apparatus for dynamically optimizing byte-coded programs | 42 | 1999 | |
| 6,594,820 Method and apparatus for testing a process in a computer system | 36 | 1999 | |
| 6,782,454 System and method for pre-fetching for pointer linked data structures | 26 | 2000 | |
| 2002/0073,406 Using performance counter profiling to drive compiler optimization | 30 | 2000 | |
| 2003/0131,343 Framework for system monitoring | 40 | 2001 | |
|
|
|||
| 5,590,352 Dependency checking and forwarding of variable width operands | 74 | 1994 | |
| 6,105,129 Converting register data from a first format type to a second format type if a second type instruction consumes data produced by a first type instruction | 82 | 1998 | |
| 6,505,292 Processor including efficient fetch mechanism for L0 and L1 caches | 27 | 2002 | |
|
|
|||
| 6,598,153 Processor and method that accelerate evaluation of pairs of condition-setting and branch instructions | 25 | 1999 | |
| 6,687,794 Prefetching mechanism for data caches | 31 | 2001 | |
|
|
|||
| 5,212,794 Method for optimizing computer code to provide more efficient execution on computers having cache memories | 106 | 1990 | |
| 6,480,938 Efficient I-cache structure to support instructions crossing line boundaries | 43 | 2000 | |
|
|
|||
| 5,652,858 Method for prefetching pointer-type data structure and information processing apparatus therefor | 59 | 1995 | |
| 6,381,679 Information processing system with prefetch instructions having indicator bits specifying cache levels for prefetching | 32 | 2000 | |
|
|
|||
| 6,233,679 Method and system for branch prediction | 30 | 1999 | |
| 6,539,458 Hierarchical memory for efficient data exchange control | 47 | 2001 | |
|
|
|||
| 5,761,103 Left and right justification of single precision mantissa in a double precision rounding unit | 59 | 1995 | |
| 2004/0030,870 Software breakpoints with tailoring for multiple processor shared memory or multiple thread systems | 18 | 2002 | |
|
|
|||
| 5,794,028 Shared branch prediction structure | 52 | 1996 | |
|
|
|||
| 5,768,500 Interrupt-based hardware support for profiling memory system performance | 155 | 1996 | |
|
|
|||
| 5,103,394 Software performance analyzer | 119 | 1989 | |
|
|
|||
| 2001/0032,305 Methods and apparatus for dual-use coprocessing/debug interface | 103 | 2001 | |
|
|
|||
| 6,247,113 Coprocessor opcode division by data type | 52 | 1998 | |
|
|
|||
| 6,026,235 System and methods for monitoring functions in natively compiled software programs | 59 | 1997 | |
|
|
|||
| 5,537,572 Cache controller and method for dumping contents of a cache directory and cache data random access memory (RAM) | 40 | 1992 | |
|
|
|||
| 4,316,245 Apparatus and method for semaphore initialization in a multiprocessing computer system for process synchronization | 143 | 1978 | |
|
|
|||
| 6,961,925 Parallelism performance analysis based on execution trace information | 53 | 2001 | |
|
|
|||
| 6,647,301 Process control system with integrated safety control system | 57 | 2000 | |
|
|
|||
| 6,973,417 Method and system for simulating execution of a target program in a simulated target system | 49 | 1999 | |
|
|
|||
| 5,950,003 Profile instrumentation method and profile data collection method | 72 | 1996 | |
|
|
|||
| 4,291,371 I/O Request interrupt mechanism | 51 | 1979 | |
|
|
|||
| 6,374,364 Fault tolerant computing system using instruction counting | 39 | 1999 | |
|
|
|||
| 6,189,141 Control path evaluating trace designator with dynamically adjustable thresholds for activation of tracing for high (hot) activity and low (cold) activity of flow control | 122 | 1998 | |
|
|
|||
| 2003/0066,055 Profiling computer programs | 41 | 2002 | |
|
|
|||
| 6,149,318 Link-time and run-time error detection, and program instrumentation | 72 | 1997 | |
|
|
|||
| 6,549,998 Address generator for interleaving data | 34 | 2000 | |
|
|
|||
| 6,636,950 Computer architecture for shared memory access | 36 | 1999 | |
|
|
|||
| 6,286,132 Debugging support apparatus, a parallel execution information generation device, a computer-readable recording medium storing a debugging support program, and a computer-readable recording medium storing a parallel execution information generation program | 47 | 1999 | |
|
|
|||
| 2005/0177,822 Profile-driven data layout optimization | 22 | 2005 | |
|
|
|||
| 2003/0040,955 Market monitoring architecture for detecting alert conditions | 60 | 2002 | |
|
|
|||
| 5,051,944 Computer address analyzer having a counter and memory locations each storing count value indicating occurrence of corresponding memory address | 29 | 1986 | |
|
|
|||
| 6,460,135 Data type conversion based on comparison of type information of registers and execution result | 27 | 1999 | |
|
|
|||
| 2004/0153,612 Method and system for accelerated access to a memory | 21 | 2003 | |
|
|
|||
| 6,871,298 Method and apparatus that simulates the execution of paralled instructions in processor functional verification testing | 43 | 2000 | |
|
|
|||
| 5,287,481 Automatic cache flush with readable and writable cache tag memory | 72 | 1992 | |
|
|
|||
| 6,848,029 Method and apparatus for prefetching recursive data structures | 104 | 2001 | |
|
|
|||
| 7,035,996 Generating data type token value error in stream computer | 19 | 2003 | |
|
|
|||
| 6,865,666 Data processing device | 20 | 1998 | |
|
|
|||
| 6,662,295 Method and system dynamically presenting the branch target address in conditional branch instruction | 23 | 1998 | |
|
|
|||
| 5,930,508 Method for storing and decoding instructions for a microprocessor having a plurality of function units | 65 | 1997 | |
|
|
|||
| 5,581,778 Advanced massively parallel computer using a field of the instruction to selectively enable the profiling counter to increase its value in response to the system clock | 63 | 1995 | |
|
|
|||
| 6,145,077 Manipulation of data | 75 | 1996 | |
|
|
|||
| 6,681,387 Method and apparatus for instruction execution hot spot detection and monitoring in a data processing unit | 50 | 2000 | |
|
|
|||
| 6,243,804 Single cycle transition pipeline processing using shadow registers | 74 | 1998 | |
|
|
|||
| 6,542,985 Event counter | 34 | 1999 | |
|
|
|||
| 5,113,507 Method and apparatus for a sparse distributed memory system | 58 | 1989 | |
|
|
|||
| 5,805,879 In a pipelined processor, setting a segment access indicator during execution stage using exception handling | 28 | 1996 | |
|
|
|||
| 5,987,250 Transparent instrumentation for computer program behavior analysis | 46 | 1997 | |
|
|
|||
| 6,735,666 Method of providing direct user task access to operating system data structures | 31 | 2000 | |
|
|
|||
| 6,073,109 Computerized method and system for managing business processes using linked workflows | 235 | 1996 | |
Patent Citation Ranking
Maintenance Fees
| Fee | Large entity fee | small entity fee | micro entity fee | due date |
|---|---|---|---|---|
| 7.5 Year Payment | $3600.00 | $1800.00 | $900.00 | Oct 28, 2016 |
| 11.5 Year Payment | $7400.00 | $3700.00 | $1850.00 | Oct 28, 2020 |
| Fee | Large entity fee | small entity fee | micro entity fee |
|---|---|---|---|
| Surcharge - 7.5 year - Late payment within 6 months | $160.00 | $80.00 | $40.00 |
| Surcharge - 11.5 year - Late payment within 6 months | $160.00 | $80.00 | $40.00 |
| Surcharge after expiration - Late payment is unavoidable | $700.00 | $350.00 | $175.00 |
| Surcharge after expiration - Late payment is unintentional | $1,640.00 | $820.00 | $410.00 |