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

ALSO PUBLISHED AS: 20050155019
ATTORNEY / AGENT: (SPONSORED)
 

Importance

Loading Importance Indicators... loading....

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.

Loading the Abstract Image... loading....

First Claim

Related Publications

Loading Related Publications... loading....

Patent Owner(s)

Patent OwnerAddressTotal Patents
INTERNATIONAL BUSINESS MACHINES CORPORATIONARMONK, NY68841

International Classification(s)

  • [Classification Symbol]
  • [Patents Count]

Inventor(s)

Inventor Name Address # of filed Patents Total Citations
Levine, Frank Eliot Austin, TX 247 2757
Richardson, Christopher Michael Austin, TX 53 485
Silha, Edward John Austin, TX 35 507

Cited Art

Patent Info (Count) # Cites Year
 
INTERNATIONAL BUSINESS MACHINES CORPORATION (30)
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
 
HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P. (16)
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
 
INTEL CORPORATION (10)
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
 
SUN MICROSYSTEMS, INC. (8)
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
 
GLOBALFOUNDRIES INC. (3)
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
 
GOOGLE INC. (2)
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
 
HEWLETT-PACKARD COMPANY (2)
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
 
HITACHI, LTD. (2)
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
 
TELEFONAKTIEBOLAGET LM ERICSSON (PUBL) (2)
6,233,679 Method and system for branch prediction 30 1999
6,539,458 Hierarchical memory for efficient data exchange control 47 2001
 
TEXAS INSTRUMENTS INCORPORATED (2)
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
 
ADVANCED MICRO DEVICES, INC. (1)
5,794,028 Shared branch prediction structure 52 1996
 
AGERE SYSTEMS INC. (1)
5,768,500 Interrupt-based hardware support for profiling memory system performance 155 1996
 
AGILENT TECHNOLOGIES, INC. (1)
5,103,394 Software performance analyzer 119 1989
 
ALTERA CORPORATION (1)
2001/0032,305 Methods and apparatus for dual-use coprocessing/debug interface 103 2001
 
ARM LIMITED (1)
6,247,113 Coprocessor opcode division by data type 52 1998
 
BORLAND SOFTWARE CORPORATION (1)
6,026,235 System and methods for monitoring functions in natively compiled software programs 59 1997
 
CALLAHAN CELLULAR L.L.C. (1)
5,537,572 Cache controller and method for dumping contents of a cache directory and cache data random access memory (RAM) 40 1992
 
CII-HONEYWELL BULL (1)
4,316,245 Apparatus and method for semaphore initialization in a multiprocessing computer system for process synchronization 143 1978
 
CRAY INC. (1)
6,961,925 Parallelism performance analysis based on execution trace information 53 2001
 
DOW GLOBAL TECHNOLOGIES INC. (1)
6,647,301 Process control system with integrated safety control system 57 2000
 
FREESCALE SEMICONDUCTOR, INC. (1)
6,973,417 Method and system for simulating execution of a target program in a simulated target system 49 1999
 
FUJITSU LIMITED (1)
5,950,003 Profile instrumentation method and profile data collection method 72 1996
 
Honeywell Information Systems Inc. (1)
4,291,371 I/O Request interrupt mechanism 51 1979
 
HONEYWELL INTERNATIONAL INC. (1)
6,374,364 Fault tolerant computing system using instruction counting 39 1999
 
HTC CORPORATION (1)
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
 
ISIS INNOVATION LIMITED (1)
2003/0066,055 Profiling computer programs 41 2002
 
KENDALL, SAMUEL C. (1)
6,149,318 Link-time and run-time error detection, and program instrumentation 72 1997
 
LUCENT TECHNOLOGIES INC. (1)
6,549,998 Address generator for interleaving data 34 2000
 
MASSACHUSETTS INSTITUTE OF TECHNOLOGY (1)
6,636,950 Computer architecture for shared memory access 36 1999
 
MATSUSHITA ELECTRIC INDUSTRIAL CO., LTD. (1)
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
 
MICROSOFT CORPORATION (1)
2005/0177,822 Profile-driven data layout optimization 22 2005
 
NASDAQ OMX GROUP, INC., THE (1)
2003/0040,955 Market monitoring architecture for detecting alert conditions 60 2002
 
NCR CORPORATION (1)
5,051,944 Computer address analyzer having a counter and memory locations each storing count value indicating occurrence of corresponding memory address 29 1986
 
NEC CORPORATION (1)
6,460,135 Data type conversion based on comparison of type information of registers and execution result 27 1999
 
NXP B.V. (1)
2004/0153,612 Method and system for accelerated access to a memory 21 2003
 
OBSIDIAN SOFTWARE, INC. (1)
6,871,298 Method and apparatus that simulates the execution of paralled instructions in processor functional verification testing 43 2000
 
OPTI INC. (1)
5,287,481 Automatic cache flush with readable and writable cache tag memory 72 1992
 
PAONESSA RESEARCH, LIMITED LIABILITY COMPANY (1)
6,848,029 Method and apparatus for prefetching recursive data structures 104 2001
 
RAYTHEON COMPANY (1)
7,035,996 Generating data type token value error in stream computer 19 2003
 
RENESAS ELECTRONICS CORPORATION (1)
6,865,666 Data processing device 20 1998
 
RICOH COMPANY, LTD. (1)
6,662,295 Method and system dynamically presenting the branch target address in conditional branch instruction 23 1998
 
SAMSUNG ELECTRONICS CO., LTD. (1)
5,930,508 Method for storing and decoding instructions for a microprocessor having a plurality of function units 65 1997
 
SARNOFF CORPORATION (1)
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
 
STMICROELECTRONICS INTERNATIONAL N.V. (1)
6,145,077 Manipulation of data 75 1996
 
THE BOARD OF TRUSTEES OF THE UNIVERSITY OF ILLINOIS (1)
6,681,387 Method and apparatus for instruction execution hot spot detection and monitoring in a data processing unit 50 2000
 
UNGER-LUCHSINGER FAMILY TRUST, THE (1)
6,243,804 Single cycle transition pipeline processing using shadow registers 74 1998
 
UNISYS CORPORATION (1)
6,542,985 Event counter 34 1999
 
UNIVERSITIES SPACE RESEARCH ASSOCIATION, COLUMBIA, MD (1)
5,113,507 Method and apparatus for a sparse distributed memory system 58 1989
 
VIA-CYRIX, INC (1)
5,805,879 In a pipelined processor, setting a segment access indicator during execution stage using exception handling 28 1996
 
WICRESOFT CO., LTD. (1)
5,987,250 Transparent instrumentation for computer program behavior analysis 46 1997
 
WIND RIVER SYSTEMS, INC. (1)
6,735,666 Method of providing direct user task access to operating system data structures 31 2000
 
WORQFLOW TECHNOLOGIES LLC (1)
6,073,109 Computerized method and system for managing business processes using linked workflows 235 1996

Patent Citation Ranking

Forward Cites

Patent Info (Count) # Cites Year
 
INTERNATIONAL BUSINESS MACHINES CORPORATION (3)
8,381,037 Method and system for autonomic execution path selection in an application 0 2003
7,904,887 Learning and cache management in software defined contexts 1 2006
8,136,106 Learning and cache management in software defined contexts 0 2008
 
SONY COMPUTER ENTERTAINMENT INC. (2)
7,739,673 Multiple stage program recompiler using information flow determination 1 2005
8,365,151 Multiple stage program recompiler using information flow determination 0 2010
 
TEXAS INSTRUMENTS INCORPORATED (2)
7,721,263 Debug event instruction 1 2006
7,721,267 Efficient protocol for encoding software pipelined loop when PC trace is enabled 0 2006
 
HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P. (1)
7,765,242 Methods and apparatus for structure layout optimization for multi-threaded programs 1 2007
 
INSTITUTE FOR INFORMATION INDUSTRY (1)
8,127,276 Apparatus, method, and computer readable medium thereof for generating and utilizing a feature code to monitor a program 1 2007
 
MICROSOFT CORPORATION (1)
7,716,647 Method and system for a system call profiler 2 2004
 
NTT DOCOMO, INC. (1)
8,015,551 Software operation modeling device, software operation monitoring device, software operation modeling method, and software operation monitoring method 0 2006

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