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

Apparatus for randomly sampling instructions in a processor pipeline

Assignee: Hewlett Packard Development Co LP
•
Filing: 1997-11-26
•
Granted: 1999-12-07
•
Expires: 2017-11-26
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An apparatus is provided for sampling instructions in a processor pipeline of a system. The pipeline has a plurality of processing stages. The apparatus includes a fetch unit for fetching instructions into a first stage of the pipeline. Certain randomly selected instructions are identified, and state information of the system is sampled while a particular selected instruction is in any stage of the pipeline. Software is informed when the particular selected instruction leaves the pipeline so that the software can read any of the sampled state information.

Inventors

  • 👤 George Z. Chrysos
  • 👤 Jeffrey Dean
  • 👤 James E. Hicks
  • 👤 Daniel L. Leibholz
  • 👤 Edward J. McLellan
  • 👤 Carl A. Waldspurger
  • 👤 William E. Weihl

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-30 18:38
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/30; G06F11/34; G06F11/3466; G06F11/348

Claims Analysis

Total Claims: 33
Claim 1
Independent Claim 140 words
An apparatus for sampling instructions in a processor pipeline of a system, the pipeline having a plurality of processing stages, comprising: means for fetching instructions into a first stage of the pipeline, the instructions being identified by additional fields indicating that they have been selected for sampling, the additional fields including a sample bit on each instruction in the pipeline; means for identifying any one of the fetched instructions as a selected instruction; means for sampling state information of the system while a particular selected instruction is in any stage of the pipeline, and means for informing software when the particular selected instruction leaves the pipeline so that the software can read any of the state information wherein the means for sampling and the means for informing software being activated by asserting of the sample bit in the selected instruction.
Claim 2
Independent Claim 140 words
An apparatus for sampling instructions in a processor pipeline of a system, the pipeline having a plurality of processing stages, comprising: means for fetching instructions into a first stage of the pipeline, the instructions being identified by additional fields indicating that they have been selected for sampling, the additional fields including a sample bit on each instruction in the pipeline; means for identifying any one of the fetched instructions as a selected instruction; means for sampling state information of the system while a particular selected instruction is in any stage of the pipeline, and means for informing software when the particular selected instruction leaves the pipeline so that the software can read any of the state information wherein the means for sampling and the means for informing software being activated by asserting of the sample bit in the selected instruction.
Claim 3
Dependent Claim 12 words
The apparatus of claim 1 wherein the fetched instructions are selected randomly.
Claim 4
Dependent Claim 39 words
The apparatus of claim 1 wherein the selected instructions include valid instructions which are completely processed by the pipeline, valid instructions which are aborted before leaving the pipeline, and invalid instructions which are partially processed before leaving the pipeline.
Claim 5
Dependent Claim 13 words
The apparatus of claim 1 wherein the selected instructions can include non-interruptible instructions.
Claim 6
Dependent Claim 18 words
The apparatus of claim 1 wherein the plurality of stages include fetch, map, issue, execution, and retire stages.
Claim 7
Dependent Claim 23 words
The apparatus of claim 1 wherein the additional fields store instruction numbers and the apparatus further including comparator registers storing the additional fields.
Claim 8
Dependent Claim 37 words
The apparatus of claim 1 further including a sampling counter; means for initializing the sampling counter to a specified value; means for activating the means for selecting when the sample counter overflows in response to specified events.
Claim 9
Dependent Claim 13 words
The apparatus of claim 7 wherein the specified events are valid fetched instructions.
Claim 10
Dependent Claim 31 words
The apparatus of claim 7 wherein a rate of fetching is determined by a clock, and the specified events are subdivisions of clock cycles corresponding to a single potentially fetched instruction.
Claim 11
Dependent Claim 20 words
The apparatus of claim 7 wherein the specified events are the entrance of instructions into any stage of the pipeline.
Claim 12
Dependent Claim 24 words
The apparatus of claim 7 wherein the specified value is chosen randomly from an interval of numbers to specify the average frequency of sampling.
Claim 13
Dependent Claim 23 words
The apparatus of claim 11 wherein the size of the interval of numbers is varied to dynamically change the average frequency of sampling.
Claim 14
Dependent Claim 14 words
The apparatus of claim 11 wherein the random number is determined by the software.
Claim 15
Dependent Claim 13 words
The apparatus of claim 11 wherein the random number is generated by hardware.
Claim 16
Dependent Claim 15 words
The apparatus of claim 1 wherein the state information includes information identifying the selected instruction.
Claim 17
Dependent Claim 16 words
The apparatus of claim 15 wherein the identifying information includes the addresses of the selected instructions.
Claim 18
Dependent Claim 17 words
The apparatus of claim 15 wherein the identifying information includes identifications of processes executing the selected instruction.
Claim 19
Dependent Claim 13 words
The apparatus of claim 1 wherein the identifying information includes address space numbers.
Claim 20
Dependent Claim 14 words
The apparatus of claim 1 wherein the identifying information includes a hardware context identifier.
Claim 21
Dependent Claim 22 words
The apparatus of claim 1 wherein the means for informing software generates an interrupt when the particular selected instruction leaves the pipeline.
Claim 22
Dependent Claim 32 words
The apparatus of claim 1 wherein the means for informing software sets a flag that can be polled by the software to determine that the particular selected instruction has left the pipeline.
Claim 23
Dependent Claim 14 words
The apparatus of claim 1 wherein a subset of the selected instructions are sampled.
Claim 24
Dependent Claim 13 words
The apparatus of claim 1 wherein the state information includes a thread identifier.
Claim 25
Dependent Claim 17 words
The apparatus of claim 1 wherein the state information includes a retired/abort status of the selected instructions.
Claim 26
Dependent Claim 18 words
The apparatus of claim 1 wherein the state information includes a events detected while processing the selected instructions.
Claim 27
Dependent Claim 17 words
The apparatus of claim 1 wherein the state information includes a latencies experienced by the selected instructions.
Claim 28
Independent Claim 141 words
An apparatus for sampling instructions in a processor pipeline of a system, the pipeline having a plurality of processing stages, comprising: a fetch unit fetching instructions into a first stage of the pipeline, the instructions being identified by additional fields indicating that they have been selected for sampling, the additional fields including a sample bit on each instruction in the pipeline; a selection unit identifying any one of the fetched instructions as a selected instruction; a sampling unit sampling state information of the system while a particular selected instruction is in any stage of the pipeline; and an inform unit informing software when the particular selected instruction leaves the pipeline so that the software can read any of the state information wherein the sampling unit and the inform units being activated by asserting of the sample bit in the selected instruction.
Claim 29
Independent Claim 141 words
An apparatus for sampling instructions in a processor pipeline of a system, the pipeline having a plurality of processing stages, comprising: a fetch unit fetching instructions into a first stage of the pipeline, the instructions being identified by additional fields indicating that they have been selected for sampling, the additional fields including a sample bit on each instruction in the pipeline; a selection unit identifying any one of the fetched instructions as a selected instruction; a sampling unit sampling state information of the system while a particular selected instruction is in any stage of the pipeline; and an inform unit informing software when the particular selected instruction leaves the pipeline so that the software can read any of the state information wherein the sampling unit and the inform units being activated by asserting of the sample bit in the selected instruction.
Claim 30
Independent Claim 126 words
A method for sampling instructions in a processor pipeline of a system, the pipeline having a plurality of processing stages, comprising: fetching instructions into a first stage of the pipeline, the instructions being identified by additional fields indicating that they have been selected for sampling, the additional fields including a sample bit on each instruction in the pipeline; identifying any one of the fetched instructions as a selected instruction; sampling state information of the system while a particular selected instruction is in any stage of the pipeline; and informing software when the particular selected instruction leaves the pipeline so that the software can read any of the state information wherein sampling and informing software being activated by asserting of the sample bit in the selected instruction.
Claim 31
Independent Claim 126 words
A method for sampling instructions in a processor pipeline of a system, the pipeline having a plurality of processing stages, comprising: fetching instructions into a first stage of the pipeline, the instructions being identified by additional fields indicating that they have been selected for sampling, the additional fields including a sample bit on each instruction in the pipeline; identifying any one of the fetched instructions as a selected instruction; sampling state information of the system while a particular selected instruction is in any stage of the pipeline; and informing software when the particular selected instruction leaves the pipeline so that the software can read any of the state information wherein sampling and informing software being activated by asserting of the sample bit in the selected instruction.
Claim 32
Independent Claim 151 words
A system, comprising: a memory storing instructions; a pipeline having a plurality of processing stages, comprising: a fetch unit fetching the instructions into a first stage of the pipeline, the instructions being identified by additional fields indicating that they have been selected for sampling, the additional fields including a sample bit on each instruction in the pipeline; a selection unit identifying any one of the fetched instructions as a selected instruction; a sampling unit sampling state information of the system while a particular selected instruction is in any stage of the pipeline; and an inform unit informing software when the particular selected instruction leaves the pipeline so that the software can read any of the state information; and an input/output unit to input and output data to and from the system wherein the sampling unit and the inform unit being activated by asserting of the sample bit in the selected instruction.
Claim 33
Independent Claim 151 words
A system, comprising: a memory storing instructions; a pipeline having a plurality of processing stages, comprising: a fetch unit fetching the instructions into a first stage of the pipeline, the instructions being identified by additional fields indicating that they have been selected for sampling, the additional fields including a sample bit on each instruction in the pipeline; a selection unit identifying any one of the fetched instructions as a selected instruction; a sampling unit sampling state information of the system while a particular selected instruction is in any stage of the pipeline; and an inform unit informing software when the particular selected instruction leaves the pipeline so that the software can read any of the state information; and an input/output unit to input and output data to and from the system wherein the sampling unit and the inform unit being activated by asserting of the sample bit in the selected instruction.

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag