US6961930B1
Expired / Lapsed
US
⏱️ 0.0 years remaining
Efficient, transparent and flexible latency sampling
Assignee: Hewlett Packard Enterprise Development LP
•
Filing: 2000-03-31
•
Granted: 2005-11-01
•
Expires: 2020-03-31
Abstract
Abstract The performance of an executing computer program on a computer system is monitored using latency sampling. The program has object code instructions and is executing on the computer system. At intervals, the execution of the computer program is interrupted including delivering a first interrupt. In response to at least a subset of the first interrupts, a latency associated with a particular object code instruction is identified, and the latency is stored in a first database. The particular object code instruction is executed by the computer such that the program remains unmodified.
Inventors
- 👤 Carl A. Waldspurger
- 👤 Michael Burrows
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-01 15:49
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/30; G06F11/34; G06F11/3466; G06F11/3471; G06F11/3409; G06F11/3419; G06F11/3485; G06F11/3447; G06F2201/00; G06F2201/88; G06F2201/885
Claims Analysis
Total Claims: 39
Claim 1
Independent Claim
87 words
A method of monitoring the performance of a program being executed on a computer system, comprising: executing the program on a computer system, the program having object code instructions; at intervals interrupting execution of the program, including delivering a first interrupt; and in response to at least a subset of the first interrupts, measuring a latency of execution of a particular object code instruction, storing the latency in a first database, the particular object code instruction being executed by the computer such that the program remains unmodified.
Claim 2
Independent Claim
87 words
A method of monitoring the performance of a program being executed on a computer system, comprising: executing the program on a computer system, the program having object code instructions; at intervals interrupting execution of the program, including delivering a first interrupt; and in response to at least a subset of the first interrupts, measuring a latency of execution of a particular object code instruction, storing the latency in a first database, the particular object code instruction being executed by the computer such that the program remains unmodified.
Claim 3
Dependent Claim
45 words
The method of claim 1 wherein measuring the latency includes: determining an Initial value of a cycle counter; performing the particular object code instruction; determining a final value of the cycle counter; and measuring the latency based on the initial value and the final value.
Claim 4
Dependent Claim
65 words
The method of claim 2 further comprising: executing at least one instruction selected from the set consisting of (A) an instruction for ensuring that the particular object code instruction is performed after the initial value of the cycle counter is determined, and (B) an instruction for ensuring that the particular object code instruction is performed before the final value of the cycle counter is determined.
Claim 5
Dependent Claim
14 words
The method of claim 2 further comprising: applying an adjustment to the final value.
Claim 6
Dependent Claim
16 words
The method of claim 1 wherein the particular object code instruction has a variable execution time.
Claim 7
Dependent Claim
16 words
The method of claim 1 wherein the particular object code instruction is a memory access instruction.
Claim 8
Dependent Claim
59 words
The method of claim 1 wherein the computer system includes a plurality of memory units, each memory unit of the plurality of memory units having a different range of access times, and further comprising: associating the particular object code instruction with a memory unit in accordance with the latency and the range of access times for the memory unit.
Claim 9
Dependent Claim
67 words
The method of claim 1 wherein measuring the latency includes: determining an initial value of a cycle counter; executing a first dependent instruction to provide a predetermined execution order; performing the particular object code instruction; executing a second dependent instruction to provide the predetermined execution order; determining a final value of the cycle counter; and determining the latency based on the initial value and the final value.
Claim 10
Dependent Claim
16 words
The method of claim 8 wherein the first and second dependent instructions are memory barrier instructions.
Claim 11
Dependent Claim
38 words
The method of claim 1 wherein measuring includes: identifying at least one issue block of instructions; and interpreting the instructions of the at least one issue block; wherein said particular object code instruction is in the issue block.
Claim 12
Dependent Claim
18 words
The method of claim 10 wherein said interpreting emulates a machine language instruction set of the computer system.
Claim 13
Dependent Claim
28 words
The method of claim 10 wherein said interpreting updates a state of the interrupted program as though each interpreted instruction had been directly executed by the computer system.
Claim 14
Dependent Claim
127 words
A computer program product for sampling latency of a computer program having object code instructions while the object code instructions are executing without modifying the computer program, the computer program product for use in conjunction with a computer system, the computer program product comprising a computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising: one or more instructions to deliver interrupts at intervals during execution of the program, including delivering a first interrupt; one or more instructions to measure a latency of execution of a particular object code instruction; and one or more instructions to, in response to at least a subset of the first interrupts, store the latency value for the particular object code instruction in a first database.
Claim 15
Dependent Claim
127 words
A computer program product for sampling latency of a computer program having object code instructions while the object code instructions are executing without modifying the computer program, the computer program product for use in conjunction with a computer system, the computer program product comprising a computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising: one or more instructions to deliver interrupts at intervals during execution of the program, including delivering a first interrupt; one or more instructions to measure a latency of execution of a particular object code instruction; and one or more instructions to, in response to at least a subset of the first interrupts, store the latency value for the particular object code instruction in a first database.
Claim 16
Dependent Claim
56 words
The computer program product of claim 13 wherein said one or more instructions to measure the latency value include instructions to: determine an initial value of a cycle counter; perform the particular object code instruction; determine a final value of the cycle counter; and measure the latency based on the initial value and the final value.
Claim 17
Dependent Claim
21 words
The computer program product of claim 14 further comprising one or more instructions to apply an adjustment to the final value.
Claim 18
Dependent Claim
66 words
The computer program product of claim 13 further comprising at least one instruction selected from the set consisting of (A) an instruction for ensuring that the particular object code instruction is performed after the initial value of the cycle counter is determined, and (B) an instruction for ensuring that the particular object code instruction is performed before the final value of the cycle counter is determined.
Claim 19
Dependent Claim
18 words
The computer program product of claim 13 wherein the particular object code instruction has a variable execution time.
Claim 20
Dependent Claim
18 words
The computer program product of claim 13 wherein the particular object code instruction is a memory access instruction.
Claim 21
Dependent Claim
67 words
The computer program product of claim 13 wherein the computer system includes a plurality of memory units, each memory unit of the plurality of memory units having a different range of access times, and further comprising one or more instructions that associate the particular object code instruction with a memory unit in accordance with the latency value and the range of access times for the memory unit.
Claim 22
Dependent Claim
89 words
The computer program product of claim 13 wherein said one or more instructions to measure the latency value include: one or more instructions to determine an initial value of a cycle counter; a first dependent instruction to provide a predetermined execution order; the particular object code instruction; a second dependent instruction to provide the predetermined execution order; one or more instructions to determine a final value of the cycle counter; and one or more instructions to measure the latency value based on the initial value and the final value.
Claim 23
Dependent Claim
18 words
The computer program product of claim 19 wherein the first and second dependent instructions are memory barrier instructions.
Claim 24
Dependent Claim
51 words
The computer program product of claim 13 wherein said instructions to measure include: one or more instructions that identify at least one issue block of instructions; and an interpreter to interpret the instructions of the at least one issue block; wherein said particular object code instruction is in the issue block.
Claim 25
Dependent Claim
20 words
The computer program product of claim 22 wherein the interpreter emulates a machine language instruction set of the computer system.
Claim 26
Dependent Claim
30 words
The computer program product of claim 22 wherein the interpreter updates a state of the interrupted program as though each interpreted instruction had been directly executed by the computer system.
Claim 27
Dependent Claim
81 words
A computer system comprising: a processor for executing instructions; and a memory storing Instructions including: one or more instructions to deliver interrupts at intervals during execution of the program, including delivering a first interrupt; one or more instructions to measure a latency of execution of a particular object code instruction; and one or more instructions to, in response to at least a subset of the first interrupts, store the latency value for the particular object code instruction in a first database.
Claim 28
Dependent Claim
81 words
A computer system comprising: a processor for executing instructions; and a memory storing Instructions including: one or more instructions to deliver interrupts at intervals during execution of the program, including delivering a first interrupt; one or more instructions to measure a latency of execution of a particular object code instruction; and one or more instructions to, in response to at least a subset of the first interrupts, store the latency value for the particular object code instruction in a first database.
Claim 29
Dependent Claim
55 words
The computer system of claim 25 wherein said one or more instructions to measure the latency value include instructions to: determine an initial value of a cycle counter; perform the particular object code instruction; determine a final value of the cycle counter; and measure the latency based on the initial value and the final value.
Claim 30
Dependent Claim
68 words
The computer system of claim 25 wherein the memory further comprises at least one instruction selected from the set consisting of (A) an instruction for ensuring that the particular object code instruction is performed after the initial value of the cycle counter is determined, and (B) an instruction for ensuring that the particular object code instruction is performed before the final value of the cycle counter is determined.
Claim 31
Dependent Claim
23 words
The computer system of claim 26 wherein the memory further comprises one or more instructions to apply an adjustment to the final value.
Claim 32
Dependent Claim
17 words
The computer system of claim 25 wherein the particular object code instruction has a variable execution time.
Claim 33
Dependent Claim
17 words
The computer system of claim 25 wherein the particular object code instruction is a memory access instruction.
Claim 34
Dependent Claim
66 words
The computer system of claim 25 further comprising: a plurality of memory units, each memory unit of the plurality of memory units having a different range of access times, and wherein the memory further comprises one or more instructions that associate the particular object code instruction with a memory unit in accordance with the latency value and the range of access times for the memory unit.
Claim 35
Dependent Claim
88 words
The computer system of claim 25 wherein said one or more instructions to measure the latency value include: one or more instructions to determine an initial value of a cycle counter; a first dependent instruction to provide a predetermined execution order; the particular object code instruction; a second dependent instruction to provide the predetermined execution order; one or more instructions to determine a final value of the cycle counter; and one or more instructions to measure the latency value based on the initial value and the final value.
Claim 36
Dependent Claim
17 words
The computer system of claim 32 wherein the first and second dependent instructions are memory barrier instructions.
Claim 37
Dependent Claim
50 words
The computer system of claim 25 wherein said instructions to measure include: one or more instructions that identify at least one issue block of instructions; and an interpreter to interpret the instructions of the at least one issue block; wherein said particular object code instruction is in the issue block.
Claim 38
Dependent Claim
19 words
The computer system of claim 34 wherein the interpreter emulates a machine language instruction set of the computer system.
Claim 39
Dependent Claim
29 words
The computer system of claim 34 wherein the interpreter updates a state of the interrupted program as though each interpreted instruction had been directly executed by the computer system.
References Cited (Backward Citations)
US4845615A
Cited
US5103394A
Cited
US4821178A
Cited
US5572672A
Cited
US5450586A
Cited
US5479652A
Cited
US5479652B1
Cited
US5651112A
Cited
US5485574A
Cited
US5493673A
Cited
US5581482A
Cited
US5528753A
Cited
US5537541A
Cited
US5796939A
Cited
US5857097A
Cited
US6009514A
Cited
US5872976A
Cited
US6016557A
Cited
US6071316A
Cited
US5923872A
Cited
US5964867A
Cited
US6000044A
Cited
US5809450A
Cited
US6070009A
Cited
US6134710A
Cited
US6308318B2
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2008-10-31 | 2009-05-02 | 2009-11-01 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2012-10-31 | 2013-05-02 | 2013-11-01 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2016-10-31 | 2017-05-02 | 2017-11-01 | $7700.00 | Window Closed / Lapsed |