Patent US5689712A successfully refreshed from Google Patents.
US5689712A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Profile-based optimizing postprocessors for data references
Assignee: International Business Machines Corp
•
Filing: 1994-07-27
•
Granted: 1997-11-18
•
Expires: 2014-07-27
Abstract
Abstract The present invention is a system and process for optimizing programs, having memory references, at the object code level. The process includes the computer-implemented steps of instrumenting each of the memory references to create an instrumented program, executing the instrumented program to capture effective address trace data for each of the memory references, analyzing the access patterns of the effective address trace data and, in response, reordering the memory references to create an optimized program.
Inventors
- 👤 Randall Ray Heisch
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-30 23:36
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/40; G06F8/41; G06F8/44; G06F8/443; G06F8/4441; G06F8/4442; G06F11/00; G06F11/30; G06F11/34; G06F11/3466; G06F11/3471; G06F2201/00; G06F2201/865
Claims Analysis
Total Claims: 14
Claim 1
Independent Claim
138 words
A computer implemented process for directing a computer system having at least a processor, memory, and user controls, to optimize a program at the object code level, said program having memory references, comprising the steps of: instrumenting each of said memory references to create an instrumented program by: setting a pointer to an address; scanning said program to detect one of said memory references; replacing said memory reference with a branch to said pointer; generating instrumentation code at said pointer; generating said memory reference; and repeating said above steps until all of said memory references have been instrumented; executing said instrumented program to capture effective address trace data for each of said memory references; analyzing access patterns of said effective address trace data; in response to said analyzing step, reordering said memory references to create an optimized program.
Claim 2
Dependent Claim
138 words
A computer implemented process for directing a computer system having at least a processor, memory, and user controls, to optimize a program at the object code level, said program having memory references, comprising the steps of: instrumenting each of said memory references to create an instrumented program by: setting a pointer to an address; scanning said program to detect one of said memory references; replacing said memory reference with a branch to said pointer; generating instrumentation code at said pointer; generating said memory reference; and repeating said above steps until all of said memory references have been instrumented; executing said instrumented program to capture effective address trace data for each of said memory references; analyzing access patterns of said effective address trace data; in response to said analyzing step, reordering said memory references to create an optimized program.
Claim 3
Dependent Claim
63 words
The process according to claim 1 wherein said step of generating instrumentation code comprises the steps of: saving contents of at least one register; loading an address for a trace buffer into said memory; storing an effective address of said memory reference into said trace buffer; incrementing said address of said trace buffer; and restoring said contents of said at least one register.
Claim 4
Dependent Claim
35 words
The process according to claim 1 wherein said analyzing step comprises the step of: generating a directed flow graph from said effective address trace data to indicate access patterns of said effective address trace data.
Claim 5
Dependent Claim
62 words
The process according to claim 3 wherein said analyzing step further comprises the steps of: from said directed flow graph, generating a reorder list, said reorder list comprising said effective address trace data positioned in sequential order from the most frequent to the least frequent number of executions; and generating a new effective address for each of said effective address trace data.
Claim 6
Dependent Claim
16 words
The process according to claim 4 wherein said memory references comprise a store or load instruction.
Claim 7
Dependent Claim
79 words
The process according to claim 4 wherein said reordering step comprises the steps of: scanning said program for one of said memory references; determining if said memory reference is static; in response to said memory reference being static, determining an effective address for said memory reference; searching said reorder list for said effective address; and in response to finding said effective address in said reorder list, changing said effective address of said memory reference to said new effective address.
Claim 8
Dependent Claim
157 words
A computer system having at least a processor, memory, and user controls, to optimize a program at the object code level, said program having memory references, comprising: a processor; memory; means for controlling said processor to instrument each of said memory references to create an instrumented program including: means for setting a pointer to an address; means for scanning said program to detect at least one of said memory references; means for replacing said memory reference with a branch to said pointer; means for generating instrumentation code at said pointer; and means for generating said memory reference; means for controlling said processor to execute said instrumented program to capture effective address trace data for each of said memory references; means for controlling said processor to analyze access patterns of said effective address trace data; and in response to analyzing said access patterns, means for controlling said processor to reorder said memory references to create an optimized program.
Claim 9
Dependent Claim
157 words
A computer system having at least a processor, memory, and user controls, to optimize a program at the object code level, said program having memory references, comprising: a processor; memory; means for controlling said processor to instrument each of said memory references to create an instrumented program including: means for setting a pointer to an address; means for scanning said program to detect at least one of said memory references; means for replacing said memory reference with a branch to said pointer; means for generating instrumentation code at said pointer; and means for generating said memory reference; means for controlling said processor to execute said instrumented program to capture effective address trace data for each of said memory references; means for controlling said processor to analyze access patterns of said effective address trace data; and in response to analyzing said access patterns, means for controlling said processor to reorder said memory references to create an optimized program.
Claim 10
Dependent Claim
70 words
The system according to claim 7 wherein said means for generating instrumentation code comprises: means for saving contents of at least one register; means for loading an address for a trace buffer into said memory; means for storing an effective address of said memory reference into said trace buffer; means for incrementing said address of said trace buffer; and means for restoring said contents of said at least one register.
Claim 11
Dependent Claim
35 words
The system according to claim 7 wherein said means for analyzing comprises: means for generating a directed flow graph from said effective address trace data to indicate access patterns of said effective address trace data.
Claim 12
Dependent Claim
64 words
The system according to claim 9 wherein said means for analyzing further comprises: from said directed flow graph, means for generating a reorder list, said reorder list comprising said effective address trace data positioned in sequential order from the most frequent to the least frequent number of execution; and means for generating a new effective address for each of said effective address trace data.
Claim 13
Dependent Claim
16 words
The system according to claim 10 wherein said memory references comprise a store or load instruction.
Claim 14
Dependent Claim
87 words
The system according to claim 10 wherein said means for reordering comprises: means for scanning said program for one of said memory references; means for determining if said memory reference is static; in response to said memory reference being static, means for determining an effective address for said memory reference; means for searching said reorder list for said effective address; and in response to finding said effective address in said reorder list, means for changing said effective address of said memory reference to said new effective address.
References Cited (Backward Citations)
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2000-11-17 | 2001-05-19 | 2001-11-18 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2004-11-17 | 2005-05-19 | 2005-11-18 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2008-11-17 | 2009-05-19 | 2009-11-18 | $7700.00 | Window Closed / Lapsed |