← Back to Patent Explorer
US5909578A Expired / Lapsed US ⏱️ 0.0 years remaining

Use of dynamic translation to burst profile computer applications

Assignee: Hewlett Packard Enterprise Development LP
•
Filing: 1996-09-30
•
Granted: 1999-06-01
•
Expires: 2016-09-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and system for burst profiling an application program. The native application executes free and unfettered for a first time period. Then, the native application is halted and is instrumented by a dynamic translator. The dynamic translator translates and instruments code blocks of the application as the application is executing. The instrumented application executes and gathers profile data for a second time period. When the second time period expires, the dynamic translator continues to execute the instrumented application until it reaches a known state. Then, the instrumented application is halted at that known state. Next, the native application resumes execution from the known state. This process repeats until either the application finishes execution or enough profile data has been collected.

Inventors

  • 👤 William B. Buzbee

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-07 13:19
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/30; G06F11/34; G06F11/3466

Claims Analysis

Total Claims: 21
Claim 1
Independent Claim 58 words
A method of profiling a native application, the method comprising the steps of: dynamically translating the native application to produce a translated application; executing the native application until reaching a first state; executing the translated application from the first state to a second state and collecting profile data therefrom; and executing the native application from the second state.
Claim 2
Independent Claim 58 words
A method of profiling a native application, the method comprising the steps of: dynamically translating the native application to produce a translated application; executing the native application until reaching a first state; executing the translated application from the first state to a second state and collecting profile data therefrom; and executing the native application from the second state.
Claim 3
Dependent Claim 13 words
The method of claim 1, wherein the second state is a known state.
Claim 4
Dependent Claim 20 words
The method of claim 1, further comprising the step of: allocating a stack and a heap for the instrumented application.
Claim 5
Dependent Claim 47 words
The method of claim 1, further comprising the step of: setting a timer to fire after predetermined time intervals, wherein execution of the native application stops when the timer fires and the execution of the translated application stops when reaching the second state after the timer fires.
Claim 6
Dependent Claim 52 words
The method of claim 1, wherein the step of dynamically translating further comprises the steps of: taking a snapshot of a machine state; determining a program counter address from the snapshot; and translating a code block from the native application beginning at the program counter address to produce a translated code block.
Claim 7
Dependent Claim 30 words
The method of claim 5, further comprising the step of: looking up the program counter address in an address table to determine whether the code block has previously been translated.
Claim 8
Dependent Claim 27 words
The method of claim 5, further comprising the step of: storing the translated code block in a cache, wherein the translated application is executed from the cache.
Claim 9
Dependent Claim 31 words
The method of claim 7, further comprising the step of: backpatching a terminating branch instruction in the translated code block to jump to a second translated code block in the cache.
Claim 10
Dependent Claim 114 words
A computer program product having a computer readable medium having computer program logic recorded thereon for profiling an application executing on a computer system, the computer program product comprising: means for stopping execution of the application at a first state; means for instrumenting the stopped application; means for executing the instrumented application, the execution beginning at the first state; means for stopping execution of the instrumented application at a second state; and means for resuming execution of the application, the resumption beginning at the second state; wherein the means for instrumenting includes means for adding profiling instructions to the stopped application, wherein the profiling instructions collect profile data when the instrumented application is executed.
Claim 11
Dependent Claim 114 words
A computer program product having a computer readable medium having computer program logic recorded thereon for profiling an application executing on a computer system, the computer program product comprising: means for stopping execution of the application at a first state; means for instrumenting the stopped application; means for executing the instrumented application, the execution beginning at the first state; means for stopping execution of the instrumented application at a second state; and means for resuming execution of the application, the resumption beginning at the second state; wherein the means for instrumenting includes means for adding profiling instructions to the stopped application, wherein the profiling instructions collect profile data when the instrumented application is executed.
Claim 12
Dependent Claim 56 words
The computer program product of claim 9, wherein the means for stopping execution of the instrumented application comprises: means for receiving a stop signal; and means for stopping execution of the instrumented application in response to the stop signal when the instrumented application is in a known state, wherein the known state is the second state.
Claim 13
Dependent Claim 43 words
The computer program product of claim 9, wherein the means for resuming execution of the application comprises: means for creating a simulation context from the instrumented application; and means for substituting the simulation context for a machine context generated by the computer system.
Claim 14
Dependent Claim 49 words
The computer program product of claim 9, wherein the means for adding profiling instructions comprises: means for determining a next address to execute in the stopped application; means for translating a code block beginning at the next address; and means for storing the translated code block in a cache.
Claim 15
Dependent Claim 23 words
The computer program product of claim 9, wherein both stopping means comprise: timer means for generating a timer signal after a time interval.
Claim 16
Independent Claim 79 words
A method of profiling an application executing on a computer system, the method comprising the steps of: setting a timer to fire; executing the application until the timer fires; after the timer fires, dynamically translating the application into an instrumented application; executing the instrumented application until the timer fires; after the timer fires, generating a simulated machine context having a state from the instrumented application; and resuming execution of the application from the state of the simulated machine context.
Claim 17
Independent Claim 79 words
A method of profiling an application executing on a computer system, the method comprising the steps of: setting a timer to fire; executing the application until the timer fires; after the timer fires, dynamically translating the application into an instrumented application; executing the instrumented application until the timer fires; after the timer fires, generating a simulated machine context having a state from the instrumented application; and resuming execution of the application from the state of the simulated machine context.
Claim 18
Dependent Claim 52 words
The method of claim 14, wherein the step of dynamically translating comprises the steps of: looking up a next address to execute in a table; if the next address is not in the table, translating a code block beginning at the next address; and storing the translated code block in a cache.
Claim 19
Dependent Claim 20 words
The method of claim 14, wherein the dynamically translating step occurs concurrent with the step of executing the instrumented application.
Claim 20
Dependent Claim 42 words
The method of claim 14, wherein the step of generating a simulated machine context comprises the step of: executing the instrumented application until the instrumented application reaches a known state; and wherein the simulated machine context is generated from the known state.
Claim 21
Dependent Claim 28 words
The method of claim 14, wherein the step of resuming execution comprises the step of: substituting the simulated machine context for a machine context of the computer system.

References Cited (Backward Citations)

US5333304A Cited
US5689712A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-05-31 2002-11-30 2003-06-01 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-05-31 2006-11-30 2007-06-01 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-05-31 2010-11-30 2011-06-01 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag