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

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag