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

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.

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag