System for and Method of Capturing Performance Characteristics Data From A Computer System and Modeling Target System Performance
First Claim
1. A method of recording memory usage information for a program of instructions including the steps of:
- starting to execute a sequence of operations in response to said program of instructions;
selecting a set of operations from said sequence of operations;
recording memory usage information associated with respective operations of said set of operations;
wherein at least one of said steps of starting, selecting and recording is implemented by modifying said sequence of operations after the execution has started to provide a modified sequence of operations having functionality enabling said at least one step; and
wherein said modified sequence of operations is re-modified again to remove said enabling functionality after at least one of said steps of starting, selecting and recording has been performed so as to provide a re-modified sequence of operations.
13 Assignments
0 Petitions
Accused Products
Abstract
A system for, method of and computer program product captures performance-characteristic data from the execution of a program and models system performance based on that data. Performance-characterization data based on easily captured reuse distance metrics is targeted, defined as the total number of memory references between two accesses to the same piece of data. Methods for efficiently capturing this kind of metrics are described. These data can be refined into easily interpreted performance metrics, such as performance data related to caches with LRU replacement and random replacement strategies in combination with fully associative as well as limited associativity cache organizations. Methods for assessing cache utilization as well as parallel execution are covered.
-
Citations
30 Claims
-
1. A method of recording memory usage information for a program of instructions including the steps of:
-
starting to execute a sequence of operations in response to said program of instructions; selecting a set of operations from said sequence of operations; recording memory usage information associated with respective operations of said set of operations; wherein at least one of said steps of starting, selecting and recording is implemented by modifying said sequence of operations after the execution has started to provide a modified sequence of operations having functionality enabling said at least one step; and wherein said modified sequence of operations is re-modified again to remove said enabling functionality after at least one of said steps of starting, selecting and recording has been performed so as to provide a re-modified sequence of operations. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of reconstructing a sequence of instructions executed by a program of instructions including the steps of:
-
starting to execute a sequence of operations in response to said program of instructions; selecting a set of operations from said sequence of operations; and
,recording memory usage information associated with respective operations of said set of operations from which several partial sequences of said sequences of instructions can be determined; determining one of said partial sequences wherein a first sequence of instructions is followed by a second sequence of instructions; determining that said second sequence of instructions is followed by a third sequence of instructions; and reconstructing a longer sequence of instructions to be said first sequence followed by said second sequence followed by said third sequence.
-
-
10. A method of identifying a cycle of instructions in a program of instructions including the steps of:
-
starting to execute a sequence of operations in response to said program of instructions; selecting a set of operations from said sequence of operations; recording memory usage information associated with respective operations of said set of operations; and identifying a partial sequence of operations from said memory usage information; wherein a cycle of instructions is identified to be a set of instructions corresponding to a cyclic set of operations of said partial sequence of operations that occur between a recurring operation and an immediately subsequent occurrence of said recurring operation, including said recurring operation. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A method of identifying data-chained instructions in a program of instructions including the steps of:
-
starting to execute a sequence of operations in response to said program of instructions; selecting a set of operations from said sequence of operations; recording memory usage information associated with respective operations of said set of operations; and based on said memory usage information, detecting an identity of a first operation of said sequence of operations accessing a data object and an identity of a second operation of said sequence of operations accessing said data object so as to identify data-chained instructions. - View Dependent Claims (16, 17, 18, 19, 20)
-
-
21. A method of detecting performance shortcomings for a program of instructions including the steps of:
-
starting to execute a sequence of operations in response to said program of instructions; selecting a set of operations from said sequence of operations; recording memory usage information associated with respective operations of said set of operations; based on said memory usage information determining for a part of said program of instructions corresponding to said set of operations, at least one of the following properties; (i) temporal reuse distance, (ii) spatial reuse distance, (iii) spatial usage; and
,based on at least one of said properties determining a performance shortcoming of said program of instructions. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30)
-
Specification