← Back to Patent Explorer
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
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

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 08:40
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)

US5465258A Cited
US5303377A Cited
US5335344A Cited
US5313634A Cited

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag