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

Method and apparatus for providing precise fault tracing in a superscalar microprocessor

Assignee: Micron Technology Inc
•
Filing: 1993-06-30
•
Granted: 1998-05-12
•
Expires: 2013-06-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A superscalar processor with a precise fault mechanism. Instructions are grouped into a cluster of instructions to be executed simultaneously by the superscalar processor. The cluster is formed from consecutively sequenced instructions according to a predetermined set of grouping rules. If at least one previously executed instruction exists, the consecutively sequenced instructions begin with an initial instruction that is the first instruction following a last previously executed instruction. Each instruction of the cluster is decoded and faulting instructions, if any, of the cluster are determined. Faulting instructions are instructions having an associated trace fault. If no faulting instructions were found, each instruction in the cluster is executed simultaneously. If, however, at least one faulting instruction was found, a break faulting instruction is determined. The break faulting instruction is the first faulting instruction in the consecutive sequence of the cluster instructions. The break faulting instruction and each instruction of the cluster in the consecutive instruction sequence prior to the break faulting instruction are then simultaneously executed.

Inventors

  • 👤 Reed K. Christensen
  • 👤 Andre Eberhard Wolper

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-01 13:56
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/362; G06F11/3636; G06F9/00; G06F9/06; G06F9/30; G06F9/30003; G06F9/30076; G06F9/38; G06F9/3836; G06F9/3838; G06F9/3853; G06F9/3861; G06F9/3865; G06F9/3885

Claims Analysis

Total Claims: 34
Claim 1
Independent Claim 123 words
A method for providing precise trace faults for testing and debugging a superscalar processor, the method comprising the steps of: grouping instructions into a cluster of instructions to be executed simultaneously by the superscalar processor; decoding each instruction of the cluster; determining faulting instructions, if any, of the cluster of instructions, the faulting instructions being instructions having a break point for testing and debugging; if no faulting instructions were found, simultaneously executing each instruction in the cluster; if at least one faulting instruction was found, determining a break faulting instruction, the break faulting instruction being a first faulting instruction in the cluster of instructions; simultaneously executing the break faulting instruction and each instruction of the cluster occurring prior to the break faulting instruction.
Claim 2
Independent Claim 123 words
A method for providing precise trace faults for testing and debugging a superscalar processor, the method comprising the steps of: grouping instructions into a cluster of instructions to be executed simultaneously by the superscalar processor; decoding each instruction of the cluster; determining faulting instructions, if any, of the cluster of instructions, the faulting instructions being instructions having a break point for testing and debugging; if no faulting instructions were found, simultaneously executing each instruction in the cluster; if at least one faulting instruction was found, determining a break faulting instruction, the break faulting instruction being a first faulting instruction in the cluster of instructions; simultaneously executing the break faulting instruction and each instruction of the cluster occurring prior to the break faulting instruction.
Claim 3
Dependent Claim 35 words
The method as set forth in claim 1 further comprising the steps of: classifying instructions into instruction types; and grouping the instructions into the cluster of instructions according to a predetermined set of grouping rules.
Claim 4
Dependent Claim 45 words
The method as set forth in claim 2 wherein each instruction is classified as: a REG instruction if the instruction involves register to register operations; a MEM instruction if the instruction involves memory operations; and a BOP instruction if the instruction is a branch operation.
Claim 5
Dependent Claim 31 words
The method as set forth in claim 3 wherein the predetermined set of grouping rules require the cluster to be formed of at least one and no more than three instructions.
Claim 6
Dependent Claim 37 words
The method as set forth in claim 4 wherein each cluster can have at most one REG instruction, each cluster can have at most one MEM instruction and each cluster can have at most one BOP instruction.
Claim 7
Dependent Claim 30 words
The method as set forth in claim 5 wherein if a cluster is formed having a BOP instruction, the BOP instruction will be the last instruction in the consecutive sequence.
Claim 8
Dependent Claim 30 words
The method as set forth in claim 6 wherein if a cluster is formed having a REG instruction, the REG instruction will be the first instruction in the consecutive sequence.
Claim 9
Dependent Claim 169 words
A precise fault superscalar processor comprising: execution means for executing instructions simultaneously; grouping means for grouping instructions into a cluster of instructions to be executed simultaneously; decoding means coupled to the grouping means, the decoding means for decoding each instruction of the cluster; fault detection means coupled to the decoding means and the execution means, the fault detection means for detecting faulting instructions, if any, of the cluster, the faulting instructions being instructions having a break point for testing and debugging; scoreboard means coupled to the fault detection means and the execution means, the scoreboard means for determining a break faulting instruction, the break faulting instruction being a first faulting instruction in the consecutive sequence of the cluster instructions, if no faulting instructions were found, the execution means simultaneously executing each instruction in the cluster, if at least one faulting instruction was found, the execution means simultaneously executing the break faulting instruction and each instruction of the cluster in the consecutive instruction sequence prior to the break faulting instruction.
Claim 10
Dependent Claim 169 words
A precise fault superscalar processor comprising: execution means for executing instructions simultaneously; grouping means for grouping instructions into a cluster of instructions to be executed simultaneously; decoding means coupled to the grouping means, the decoding means for decoding each instruction of the cluster; fault detection means coupled to the decoding means and the execution means, the fault detection means for detecting faulting instructions, if any, of the cluster, the faulting instructions being instructions having a break point for testing and debugging; scoreboard means coupled to the fault detection means and the execution means, the scoreboard means for determining a break faulting instruction, the break faulting instruction being a first faulting instruction in the consecutive sequence of the cluster instructions, if no faulting instructions were found, the execution means simultaneously executing each instruction in the cluster, if at least one faulting instruction was found, the execution means simultaneously executing the break faulting instruction and each instruction of the cluster in the consecutive instruction sequence prior to the break faulting instruction.
Claim 11
Dependent Claim 48 words
The processor as set forth in claim 8 further comprising: a classifying means coupled to the grouping means, the classifying means for classifying instructions into instruction types; and the grouping means grouping instructions into the cluster of instructions according to predetermined grouping rules based upon the instruction types.
Claim 12
Dependent Claim 45 words
The processor as set forth in claim 9 wherein each instruction is classified as: a REG instruction if the instruction involves register to register operations; a MEM instruction if the instruction involves memory operations; and a BOP instruction if the instruction is a branch operation.
Claim 13
Dependent Claim 31 words
The processor as set forth in claim 10 wherein the predetermined set of grouping rules require the cluster to be formed of at least one and no more than three instructions.
Claim 14
Dependent Claim 37 words
The processor as set forth in claim 11 wherein each cluster can have at most one REG instruction, each cluster can have at most one MEM instruction and each cluster can have at most one BOP instruction.
Claim 15
Dependent Claim 30 words
The processor as set forth in claim 12 wherein if a cluster is formed having a BOP instruction, the BOP instruction must be the last instruction in the consecutive sequence.
Claim 16
Dependent Claim 30 words
The processor as set forth in claim 13 wherein if a cluster is formed having a REG instruction, the REG instruction must be the first instruction in the consecutive sequence.
Claim 17
Dependent Claim 145 words
A precise fault superscalar processor comprising: an executor for executing instructions simultaneously; a grouper for grouping instructions into a cluster of instructions to be executed simultaneously; a fault detector for detecting faulting instructions, if any, of the cluster, the faulting instructions being instructions having a break point for testing and debugging; and a scoreboard mechanism coupled to the fault detector and the executor, the scoreboard mechanism for determining a break faulting instruction if at least one faulting instruction was found, the break faulting instruction being a first faulting instruction in the consecutive sequence of the cluster instructions, if no faulting instructions were found, the executor simultaneously executing each instruction in the cluster, if at least one faulting instruction was found, the executor simultaneously executing the break faulting instruction and each instruction of the cluster in the consecutive instruction sequence prior to the break faulting instruction.
Claim 18
Dependent Claim 145 words
A precise fault superscalar processor comprising: an executor for executing instructions simultaneously; a grouper for grouping instructions into a cluster of instructions to be executed simultaneously; a fault detector for detecting faulting instructions, if any, of the cluster, the faulting instructions being instructions having a break point for testing and debugging; and a scoreboard mechanism coupled to the fault detector and the executor, the scoreboard mechanism for determining a break faulting instruction if at least one faulting instruction was found, the break faulting instruction being a first faulting instruction in the consecutive sequence of the cluster instructions, if no faulting instructions were found, the executor simultaneously executing each instruction in the cluster, if at least one faulting instruction was found, the executor simultaneously executing the break faulting instruction and each instruction of the cluster in the consecutive instruction sequence prior to the break faulting instruction.
Claim 19
Dependent Claim 43 words
The processor as set forth in claim 15 further comprising: a classifier coupled to the grouper, the classifier for classifying instructions into instruction types; and the grouper grouping the instructions into the clusters based on predetermined grouping rules based upon the instruction types.
Claim 20
Dependent Claim 45 words
The processor as set forth in claim 16 wherein each instruction is classified as: a REG instruction if the instruction involves register to register operations; a MEM instruction if the instruction involves memory operations; and a BOP instruction if the instruction is a branch operation.
Claim 21
Dependent Claim 31 words
The processor as set forth in claim 17 wherein the predetermined set of grouping rules require the cluster to be formed of at least one and no more than three instructions.
Claim 22
Dependent Claim 37 words
The processor as set forth in claim 18 wherein no cluster can have more than one REG instruction, no cluster can have more than one MEM instruction and no cluster can have more than one BOP instruction.
Claim 23
Dependent Claim 30 words
The processor as set forth in claim 19 wherein if a cluster is formed having a BOP instruction, the BOP instruction must be the last instruction in the consecutive sequence.
Claim 24
Dependent Claim 30 words
The processor as set forth in claim 20 wherein if a cluster is formed having a REG instruction, the REG instruction must be the first instruction in the consecutive sequence.
Claim 25
Independent Claim 160 words
A method for invoking precise trace faults in a superscalar processor, the method comprising the steps of: accessing the superscalar processor with a source external to the superscalar processor, the source for testing and debugging the superscalar processor, and setting at least one trace fault; grouping instructions into a cluster of instructions to be executed simultaneously by the superscalar processor; decoding each instruction of the cluster; determining faulting instructions, if any, of the cluster, the faulting instructions being instructions having a break point for testing and debugging; if no faulting instructions were found, simultaneously executing each instruction in the cluster; if at least one faulting instruction was found, i) determining a break faulting instruction, the break faulting instruction being a first faulting instruction of the cluster of instructions; ii) simultaneously executing the break faulting instruction and each instruction of the cluster prior to the break faulting instruction and then notifying the external source that the break faulting instruction has executed.
Claim 26
Independent Claim 160 words
A method for invoking precise trace faults in a superscalar processor, the method comprising the steps of: accessing the superscalar processor with a source external to the superscalar processor, the source for testing and debugging the superscalar processor, and setting at least one trace fault; grouping instructions into a cluster of instructions to be executed simultaneously by the superscalar processor; decoding each instruction of the cluster; determining faulting instructions, if any, of the cluster, the faulting instructions being instructions having a break point for testing and debugging; if no faulting instructions were found, simultaneously executing each instruction in the cluster; if at least one faulting instruction was found, i) determining a break faulting instruction, the break faulting instruction being a first faulting instruction of the cluster of instructions; ii) simultaneously executing the break faulting instruction and each instruction of the cluster prior to the break faulting instruction and then notifying the external source that the break faulting instruction has executed.
Claim 27
Dependent Claim 43 words
The method as set forth in claim 22 further further comprising the steps of: classifying instructions into instruction types; and the step of grouping the instructions comprising the step of grouping the instructions based on predetermined grouping rules based on the instruction types.
Claim 28
Dependent Claim 45 words
The method as set forth in claim 23 wherein each instruction is classified as: a REG instruction if the instruction involves register to register operations; a MEM instruction if the instruction involves memory operations; and a BOP instruction if the instruction is a branch operation.
Claim 29
Dependent Claim 31 words
The method as set forth in claim 24 wherein the predetermined set of grouping rules require the cluster to be formed of at least one and no more than three instructions.
Claim 30
Dependent Claim 37 words
The method as set forth in claim 25 wherein no cluster can have more than one REG instruction, no cluster can have more than one MEM instruction and no cluster can have more than one BOP instruction.
Claim 31
Dependent Claim 30 words
The method as set forth in claim 26 wherein if a cluster is formed having a BOP instruction, the BOP instruction must be the last instruction in the consecutive sequence.
Claim 32
Dependent Claim 30 words
The method as set forth in claim 27 wherein if a cluster is formed having a REG instruction, the REG instruction must be the first instruction in the consecutive sequence.
Claim 33
Dependent Claim 16 words
The method as set forth in claim 22 wherein the external source is a host system.
Claim 34
Dependent Claim 16 words
The method as set forth in claim 22 wherein the external source is a software debugger.

References Cited (Backward Citations)

US4295193A Cited
US4819234A Cited
US5247628A Cited
US4879676A Cited
US5003462A Cited
US5109514A Cited
US5134693A Cited
US5461715A Cited
US5214763A Cited
US5479616A Cited
US5440703A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-05-11 2001-11-10 2002-05-12 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-05-11 2005-11-10 2006-05-12 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-05-11 2009-11-10 2010-05-12 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag