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

Operand dependency tracking system and method for a processor that executes instructions out of order and that permits multiple precision data words

Assignee: Hewlett Packard Enterprise Development LP
•
Filing: 1996-05-31
•
Granted: 1998-05-05
•
Expires: 2016-05-31
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An operand dependency tracking system tracks operand dependencies among instructions in a processor that executes instructions out of order and that permits processing of multiple precision data words. Instructions are forwarded from an instruction fetch mechanism to a reordering mechanism, where the instructions are permitted to execute out of order. While instructions are executed in the reordering mechanism, the operand dependency tracking system is configured to perform the following: (a) detect a dependent instruction that depends upon one or more operands to be produced by a producer instruction; (b) prevent execution of the dependent instruction until after the producer instruction launches execution; (c) store a plurality of valid bits in a result register for storing a result of execution of the producer instruction, each of the valid bits corresponding with a data portion to be stored within the result register and indicative of whether each data portion is either valid or invalid; (d) launch execution of the dependent instruction after the producer instruction has already launched execution; (e) when executing the dependent instruction, determine if the operand(s) is valid based upon the valid bit(s); (f) when the operand(s) is invalid, abort execution of the dependent instruction and repeats steps (d) and (e) until the operand(s) is valid; and (g) when the operand(s) is valid, permit completion of the execution of the operand(s) by an execution unit.

Inventors

  • 👤 Gregg Lesartre
  • 👤 Doug Quarnstrom
  • 👤 Jonathan P. Lotz

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 18:03
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3885; G06F9/3836; G06F9/3838; G06F9/384; G06F9/3854; G06F9/3856; G06F9/3858

Claims Analysis

Total Claims: 10
Claim 1
Independent Claim 201 words
A system for tracking data dependencies in a processor that permits execution of instructions out of order and processing of multiple precision data words, comprising: a reordering mechanism configured to receive instructions and permit execution of said instructions in an out of order sequence; operand dependency logic associated with said reordering mechanism, said operand dependency logic configured to detect a dependent instruction that depends upon at least one data portion to be produced by a producer instruction; a result register configured to store a plurality of valid bits and a result of execution of said producer instruction, each of said valid bits corresponding with a respective data portion of said result and indicative of whether each said respective data portion is valid; and abort logic configured to determine if said at least one data portion is valid based upon at least one of said valid bits when executing said dependent instruction, to abort execution of said dependent instruction when said at least one data portion is invalid and iteratively recommence execution and said validity determination until said at least one data portion is valid, and to permit execution of said dependent instruction when said at least one data portion is valid.
Claim 2
Independent Claim 201 words
A system for tracking data dependencies in a processor that permits execution of instructions out of order and processing of multiple precision data words, comprising: a reordering mechanism configured to receive instructions and permit execution of said instructions in an out of order sequence; operand dependency logic associated with said reordering mechanism, said operand dependency logic configured to detect a dependent instruction that depends upon at least one data portion to be produced by a producer instruction; a result register configured to store a plurality of valid bits and a result of execution of said producer instruction, each of said valid bits corresponding with a respective data portion of said result and indicative of whether each said respective data portion is valid; and abort logic configured to determine if said at least one data portion is valid based upon at least one of said valid bits when executing said dependent instruction, to abort execution of said dependent instruction when said at least one data portion is invalid and iteratively recommence execution and said validity determination until said at least one data portion is valid, and to permit execution of said dependent instruction when said at least one data portion is valid.
Claim 3
Dependent Claim 28 words
The system of claim 1, wherein said operand dependency logic further comprises logic configured to prevent execution of said dependent instruction until after said producer instruction launches execution.
Claim 4
Dependent Claim 32 words
The system of claim 1, wherein said producer and dependent instructions are floating point instructions and further comprising a floating point execution unit configured to process said at least one data portion.
Claim 5
Dependent Claim 64 words
The system of claim 1, further comprising: arithmetic and memory queues associated with said reordering mechanism; a sort mechanism configured to identify arithmetic and memory instructions that are fetched, said sort mechanism configured to distribute said arithmetic and memory instructions into said arithmetic and memory queues, respectively; and wherein said producer and said dependent instruction are placed in and executed from said arithmetic queue.
Claim 6
Independent Claim 184 words
A method for tracking operand dependencies in a processor that executes instructions out of order and that permits multiple precision data words, comprising the steps of: (a) launching execution of a producer instruction that is to produce at least one data portion for a dependent instruction; (b) when executing said producer instruction, storing a plurality of valid bits in a result register for storing a result of execution of said producer instruction, each of said valid bits corresponding with a respective data portion to be stored within said result register and indicative of whether each said respective data portion is valid; (c) launching execution of said dependent instruction; (d) when executing said dependent instruction, determining if said at least one data portion is valid based upon at least one of said valid bits; (e) when said at least one data portion is invalid, aborting execution of said dependent instruction and repeating steps (c) and (d) until said at least one data portion is valid; and (f) when said at least one data portion is valid, permitting completion of said execution of said dependent instruction.
Claim 7
Independent Claim 184 words
A method for tracking operand dependencies in a processor that executes instructions out of order and that permits multiple precision data words, comprising the steps of: (a) launching execution of a producer instruction that is to produce at least one data portion for a dependent instruction; (b) when executing said producer instruction, storing a plurality of valid bits in a result register for storing a result of execution of said producer instruction, each of said valid bits corresponding with a respective data portion to be stored within said result register and indicative of whether each said respective data portion is valid; (c) launching execution of said dependent instruction; (d) when executing said dependent instruction, determining if said at least one data portion is valid based upon at least one of said valid bits; (e) when said at least one data portion is invalid, aborting execution of said dependent instruction and repeating steps (c) and (d) until said at least one data portion is valid; and (f) when said at least one data portion is valid, permitting completion of said execution of said dependent instruction.
Claim 8
Dependent Claim 44 words
The method of claim 5, further comprising the steps of: detecting that said dependent instruction depends upon said at least one data portion to be produced by said producer instruction; and preventing execution of said dependent instruction until after said producer instruction launches execution.
Claim 9
Dependent Claim 44 words
The method of claim 5, wherein said producer and dependent instructions are floating point instructions and further comprising the step of, when said at least one data portion is valid, then forwarding said at least one data portion to a floating point execution unit.
Claim 10
Dependent Claim 34 words
The method of claim 5, further comprising the steps of: distributing arithmetic and memory instructions into respective arithmetic and memory queues; and performing steps (a) through (f) upon corresponding instructions in said arithmetic queue.

References Cited (Backward Citations)

US5442757A Cited
US5627983A Cited
US5630157A Cited
US5560032A Cited
US5606670A Cited
US5627985A Cited
US5550988A Cited
US5625789A Cited
US5644759A Cited
US5644753A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag