US6826748B1
Expired / Lapsed
US
⏱️ 0.0 years remaining
Profiling program execution into registers of a computer
Assignee: Advanced Silicon Technologies LLC
•
Filing: 1999-06-24
•
Granted: 2004-11-30
•
Expires: 2019-06-24
Abstract
Abstract A method and computer for performance of the method. While executing a program on a computer, the computer uses registers of a general register file for storage of instruction results. Profile information describing the profileable events is recorded into the general register file as the profileable events occur, without first capturing the information into a main memory of the computer.
Inventors
- 👤 Paul H. Hohensee
- 👤 David L. Reese
- 👤 John S. Yates, Jr.
- 👤 Korbin S. Van Dyke
- 👤 T. R. Ramesh
- 👤 Shalesh Thusoo
- 👤 Gurjeet Singh Saund
- 👤 Niteen Aravind Patkar
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-08 08:52
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/44; G06F9/455; G06F9/45533; G06F9/45558; G06F9/45541; G06F9/45554; G06F2009/45583
Claims Analysis
Total Claims: 30
Claim 1
Independent Claim
65 words
A method, comprising: while executing a program on a computer, the computer using registers of a general register file for storage of instruction results, detecting the occurrence of profileable events occurring in the instruction pipeline, and recording profile information describing the profileable events into the general register file as the profileable events occur, without first capturing the information into a main memory of the computer.
Claim 2
Independent Claim
65 words
A method, comprising: while executing a program on a computer, the computer using registers of a general register file for storage of instruction results, detecting the occurrence of profileable events occurring in the instruction pipeline, and recording profile information describing the profileable events into the general register file as the profileable events occur, without first capturing the information into a main memory of the computer.
Claim 3
Dependent Claim
34 words
The method of claim 1 , wherein at least one of the recorded instruction references indicates the address of the last byte of an instruction executed by the computer during the profiled execution interval.
Claim 4
Dependent Claim
82 words
The method of claim 1 : wherein the program has been compiled, without special consideration for execution profiling, into an instruction set in which an interpretation of an instruction depends on a processor mode not expressed in a binary representation of the instruction; and further comprising recording profile information describing the processor mode during the profiled execution interval, the profile information being efficiently tailored to annotate the profiled binary code with sufficient processor mode information to resolve mode-dependency in the binary coding.
Claim 5
Dependent Claim
109 words
The method of claim 1 wherein: the program has been compiled without special consideration for execution profiling; and the program execution induces occurrence of events that match time-independent criteria of profileable events to be profiled; and further comprising: during a profile-quiescent interval of execution, recording no profile information in response to the occurrence of profileable events; and commencing the profiled execution interval after a triggering event is detected, the triggering event being one of a predefined class of triggering events, the recorded profile information describing every event that matches the profileable event selection criteria induced after the triggering event, the recording continuing until a predetermined stop condition is reached.
Claim 6
Dependent Claim
35 words
The method of claim 4 , the recorded profile information being efficiently tailored to identify all bytes of object code executed during the profiled execution interval, without reference to the binary code of the program.
Claim 7
Dependent Claim
15 words
The method of claim 4 , wherein the triggering event is expiration of a timer.
Claim 8
Dependent Claim
36 words
The method of claim 4 , wherein the triggering event is expiration of a timer, a frequency of the timer being configurable to control a resolution at which to monitor the instruction pipeline for profileable events.
Claim 9
Dependent Claim
53 words
The method of claim 1 : wherein the program has been compiled without special consideration for execution profiling; and further comprising, without software intervention, recording for later analysis a profile entry noting the source and destination of a control flow event in which control flow of the program execution diverges from sequential execution.
Claim 10
Dependent Claim
35 words
The method of claim 1 , the recorded profile information being efficiently tailored to identify all bytes of object code executed during the profiled execution interval, without reference to the binary code of the program.
Claim 11
Dependent Claim
40 words
The method of claim 1 , further comprising: recording profile information that records a sequence of events of the program, the sequence including every event during the profiled execution interval that matches time-independent criteria of profileable events to be profiled.
Claim 12
Dependent Claim
24 words
The method of claim 1 , wherein at least a portion of the recording is performed by instructions speculatively introduced into the instruction pipeline.
Claim 13
Dependent Claim
47 words
The method of claim 1 , wherein the recorded physical memory references include addresses of binary instructions referenced by an instruction pointer, and at least one of the recorded instruction references records the event of a sequential execution flow across a page boundary in the address space.
Claim 14
Dependent Claim
31 words
The method of claim 12 , wherein at least one of the recorded instruction references records the event of a page boundary of the address space occurring within a single instruction.
Claim 15
Dependent Claim
34 words
The method of claim 12 , wherein at least one of the recorded instruction references records the event of a page boundary between two instructions that are sequentially adjacent in the logical address space.
Claim 16
Dependent Claim
100 words
Computer hardware, comprising: a general register file of registers; an instruction pipeline comprising an arithmetic unit and configured to execute instructions fetched from a memory cache of the computer, the pipeline being in data communication with the registers for the general register file for storage of instruction results; profile circuitry operatively interconnected with the instruction pipeline and configured to detect the occurrence of profileable events occurring in the instruction pipeline, and to capture information describing the profileable events into the general register file as the profileable events occur, without first capturing the information into a main memory of the computer.
Claim 17
Dependent Claim
100 words
Computer hardware, comprising: a general register file of registers; an instruction pipeline comprising an arithmetic unit and configured to execute instructions fetched from a memory cache of the computer, the pipeline being in data communication with the registers for the general register file for storage of instruction results; profile circuitry operatively interconnected with the instruction pipeline and configured to detect the occurrence of profileable events occurring in the instruction pipeline, and to capture information describing the profileable events into the general register file as the profileable events occur, without first capturing the information into a main memory of the computer.
Claim 18
Dependent Claim
30 words
The computer hardware of claim 15 , wherein the profile data indicate the address of the last byte of an instruction executed by the computer during the profiled execution interval.
Claim 19
Dependent Claim
89 words
The computer of claim 15 , wherein: the first CPU is configured to execute instructions of an instruction set in which an interpretation of an instruction depends on a processor mode not expressed in a binary representation of the instruction; and profile circuitry of the first CPU is configured to record profile information describing a processor mode during a profiled execution interval of the program, the profile information being efficiently tailored to annotate the profiled binary code with sufficient processor mode information to resolve mode-dependency in the binary coding.
Claim 20
Dependent Claim
88 words
The computer hardware of claim 15 , further comprising: profile control bits of the first CPU implemented;in the computer hardware, values of the profile control bits controlling a resolution of the operation of profile circuitry of the first CPU; a binary translator configured to translate programs coded in a first instruction set architecture into instructions of a second instruction set architecture; a profile analyzer configured to analyze the recorded profile information, and to set the profile control bits to values to improve the operation of the binary translator.
Claim 21
Dependent Claim
50 words
The computer hardware of claim 15 , wherein: the profile circuitry is interconnected with the instruction pipeline to direct the recording by injection of an instruction into the pipeline, the instruction controlling the pipeline to cause the profileable event to be materialized in an architecturally-visible storage register of the computer.
Claim 22
Dependent Claim
39 words
The computer hardware of claim 19 , wherein the instruction pipeline and profile circuitry are operatively interconnected to effect injection of multiple instructions into the instruction pipeline by the profile circuitry on the occurrence of a single profileable event.
Claim 23
Dependent Claim
45 words
The computer hardware of claim 15 , wherein: the profile circuitry comprises a plurality of storage registers arranged in a plurality of pipeline stages, information recorded in a given pipeline stage being subject to modification as a corresponding machine instruction progresses through the instruction pipeline.
Claim 24
Dependent Claim
119 words
The computer of claim 15 , wherein: during a profile-quiescent interval of execution of a program that has been compiled without special consideration for execution profiling and that induces events that match time-independent criteria of profileable events to be profiled, the profile circuitry is configured to record no profile information in response to the occurrence of profileable events; and after a triggering event is detected, the triggering event being one of a predefined class of triggering events, the profile circuitry is configured to commence the profiled execution interval and to record profile information describing every event that matches the profileable event selection criteria induced during the profiled execution interval, the recording continuing until a predetermined stop condition is reached.
Claim 25
Dependent Claim
15 words
The computer of claim 22 , wherein the triggering event is expiration of a timer.
Claim 26
Dependent Claim
71 words
The computer of claim 22 : wherein the criteria for profileable events divide the profileable events into initiating events and non-initiating events; the profile circuitry being further designed: after the triggering event is detected, to ignore non-initiating events; and when an initiating event is detected, to commence recording the profile entries in the memory, describing every initiating and non-initiating event matching the profileable criteria during an interval following the triggering event.
Claim 27
Dependent Claim
28 words
The computer of claim 15 , wherein the instruction pipeline and profile circuitry are further configured to effect recording of timestamp describing a time of the recorded events.
Claim 28
Dependent Claim
52 words
The computer of claim 15 , wherein: the instruction pipeline is configured to execute instructions of two substantially disjoint instruction sets, a native instruction set providing access to substantially all of the resources of the computer, and a non-native instruction set providing access to a subset of the resources of the computer.
Claim 29
Independent Claim
65 words
A method, comprising: while executing a program on a computer, the computer using registers of a general register file for storage of instruction operands, detecting the occurrence of profileable events occurring in the instruction pipeline, and recording profile information describing the profileable events into the general register file as the profileable events occur, without first capturing the information into a main memory of the computer.
Claim 30
Independent Claim
65 words
A method, comprising: while executing a program on a computer, the computer using registers of a general register file for storage of instruction operands, detecting the occurrence of profileable events occurring in the instruction pipeline, and recording profile information describing the profileable events into the general register file as the profileable events occur, without first capturing the information into a main memory of the computer.
References Cited (Backward Citations)
US3544969A
Cited
US3781823A
Cited
US4084235A
Cited
US4455602A
Cited
US4575797A
Cited
US4514803A
Cited
US4636940A
Cited
US4750112A
Cited
US4812975A
Cited
US4779187A
Cited
US5241638A
Cited
USRE36766E
Cited
US6006277A
Cited
US5822578A
Cited
EP0324308B1
Cited
US5115500A
Cited
US5168557A
Cited
US5404476A
Cited
US5487156A
Cited
US5361340A
Cited
US5241664A
Cited
US5515518A
Cited
US5301287A
Cited
US5335331A
Cited
US5155835A
Cited
US5307504A
Cited
US5636366A
Cited
US5652869A
Cited
US5432795A
Cited
US5812864A
Cited
US5619666A
Cited
US5715421A
Cited
US5483647A
Cited
US5574929A
Cited
US5454117A
Cited
US6006029A
Cited
US5542059A
Cited
US5781750A
Cited
US5884057A
Cited
US5481684A
Cited
US5491827A
Cited
US5673407A
Cited
US5664159A
Cited
US5574927A
Cited
US5590309A
Cited
US5568646A
Cited
US5847955A
Cited
US6021265A
Cited
US5628016A
Cited
US5768500A
Cited
US5685009A
Cited
US5481693A
Cited
US5542109A
Cited
US5598546A
Cited
US5608886A
Cited
US6496922B1
Cited
US5657474A
Cited
US5560013A
Cited
US5774287A
Cited
US5802272A
Cited
US5638525A
Cited
US5781758A
Cited
US5751982A
Cited
US5659679A
Cited
US5774686A
Cited
US6219774B1
Cited
US5678032A
Cited
US6035393A
Cited
US5742780A
Cited
US5819064A
Cited
US5802373A
Cited
US6091897A
Cited
US6000028A
Cited
US5930509A
Cited
US5842017A
Cited
US6226789B1
Cited
US5815720A
Cited
US5901308A
Cited
US5754878A
Cited
US5784640A
Cited
US5781792A
Cited
US6032247A
Cited
US5794068A
Cited
US5790824A
Cited
US5968162A
Cited
US6240526B1
Cited
US6336135B1
Cited
US5732238A
Cited
US5903760A
Cited
US6031992A
Cited
US5958061A
Cited
US5721927A
Cited
US5935220A
Cited
US5832205A
Cited
US5805877A
Cited
US5838978A
Cited
US6591414B2
Cited
US6011908A
Cited
US6044220A
Cited
US5905855A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2007-11-30 | 2008-05-31 | 2008-11-30 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2011-11-30 | 2012-05-31 | 2012-11-30 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2015-11-30 | 2016-05-31 | 2016-11-30 | $7700.00 | Window Closed / Lapsed |