Patent US3489797A successfully refreshed from Google Patents.
Patent US5535346A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5535346A Expired / Lapsed US ⏱️ 0.0 years remaining

Data processor with future file with parallel update and method of operation

Assignee: NXP USA Inc
•
Filing: 1994-07-05
•
Granted: 1996-07-09
•
Expires: 2014-07-05
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The disclosed data processor (10) has a future file (60) for providing the most recent value of a set of architectural registers (32, 36) to the various execution units (20, 22, 24, 26, 28, 30) of the data processor. The most recent value of the set of architectural registers is determined with respect to the original instruction sequence. The future file provides a single source for operand look-up at instruction dispatch and can be corrected in a single cycle in the event of an exception condition.

Inventors

  • 👤 Thomas L. Thomas, Jr.

Bibliographic Details

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

Claims Analysis

Total Claims: 22
Claim 1
Independent Claim 251 words
A data processor with a future file providing operand data to an execution unit, the data processor comprising: a plurality of architectural registers; an execution unit executing an instruction of a series of instructions, the instruction designating a specific one of the plurality of architectural registers as a destination; a rename buffer coupled to the plurality of architectural registers and to the execution unit, the rename buffer buffering results generated by the series of instructions, the rename buffer storing a result of the instruction, the rename buffer copying the result to the specific one of the plurality of architectural registers at a specific time, the specific time responsive to an order of the instruction within the series of instructions; and a future file comprising a plurality of entries coupled to the execution unit, the future file providing a single source lookup for instruction operands, each one of the plurality of entries storing a most recent value of a differing one of the plurality of architectural registers with respect to the series of instructions, each one of the plurality of entries providing the most recent value to the execution unit responsive to the instruction, each one of the plurality of entries coupled to a differing one of the plurality of architectural registers, each one of the plurality of entries simultaneously storing a value of a differing one of the plurality of architectural registers responsive to an occurrence of an exception condition via a differing one of a plurality of future file buses.
Claim 2
Dependent Claim 251 words
A data processor with a future file providing operand data to an execution unit, the data processor comprising: a plurality of architectural registers; an execution unit executing an instruction of a series of instructions, the instruction designating a specific one of the plurality of architectural registers as a destination; a rename buffer coupled to the plurality of architectural registers and to the execution unit, the rename buffer buffering results generated by the series of instructions, the rename buffer storing a result of the instruction, the rename buffer copying the result to the specific one of the plurality of architectural registers at a specific time, the specific time responsive to an order of the instruction within the series of instructions; and a future file comprising a plurality of entries coupled to the execution unit, the future file providing a single source lookup for instruction operands, each one of the plurality of entries storing a most recent value of a differing one of the plurality of architectural registers with respect to the series of instructions, each one of the plurality of entries providing the most recent value to the execution unit responsive to the instruction, each one of the plurality of entries coupled to a differing one of the plurality of architectural registers, each one of the plurality of entries simultaneously storing a value of a differing one of the plurality of architectural registers responsive to an occurrence of an exception condition via a differing one of a plurality of future file buses.
Claim 3
Dependent Claim 40 words
The data processor of claim 1 wherein each of the plurality of entries comprises a tag means for storing a tag identifying one of the series of instructions and wherein the future file provides the tag to the execution unit.
Claim 4
Dependent Claim 227 words
The data processor of claim 2 wherein each one of the plurality of entries comprises: a multiplexer, a first input of the multiplexer coupled to a differing one of the plurality of architectural registers, a second input of the multiplexer coupled to an output of a first latch, and a third input of the multiplexer coupled to an output of the execution unit; the first latch, an input of the first latch coupled to an output of the multiplexer; a second latch; and wherein the future file comprises a control unit coupled to the multiplexer in each one of the plurality of entries, the control unit coupling the differing one of the plurality of architectural registers to the output of the multiplexer if an exception condition occurs as the most recent value of the differing one of the plurality of architectural registers, the control unit coupling the output of the execution unit to the output of the multiplexer if a value stored in the second latch is logically equivalent to a portion of the output of the execution unit as the most recent value of the differing one of the plurality of architectural registers, otherwise the control unit coupling the output of the first latch to the input of the first latch as the most recent value of the differing one of the plurality of architectural registers.
Claim 5
Dependent Claim 29 words
The data processor of claim 3 wherein the rename buffer copies the result to the plurality of architectural registers responsive to the instruction and to the series of instructions.
Claim 6
Dependent Claim 13 words
The data processor of claim 4 wherein the instruction is a branch instruction.
Claim 7
Dependent Claim 246 words
The data processor of claim 1 wherein each one of the plurality of entries comprises: a multiplexer, a first input of the multiplexer coupled to a differing one of the plurality of architectural registers, a second input of the multiplexer coupled to an output of a first latch, and a third input of the multiplexer coupled to an output of the execution unit; the first latch, an input of the first latch coupled to an output of the multiplexer; a second latch storing a tag identifying a next most recent value of the differing one of the plurality of architectural registers; and wherein the future file comprises a control unit coupled to the multiplexer in each one of the plurality of entries, the control unit coupling the differing one of the plurality of architectural registers to the output of the multiplexer if an exception condition occurs as the most recent value of the differing one of the plurality of architectural registers, the control unit coupling the output of the execution unit to the output of the multiplexer if a value stored in the second latch is logically equivalent to a portion of the output of the execution unit as the most recent value of the differing one of the plurality of architectural registers, otherwise the control unit coupling the output of the first latch to the input of the first latch as the most recent value of the differing one of the plurality of architectural registers.
Claim 8
Dependent Claim 29 words
The data processor of claim 6 wherein the rename buffer copies the result to the plurality of architectural registers responsive to the instruction and to the series of instructions.
Claim 9
Dependent Claim 13 words
The data processor of claim 7 wherein the instruction is a branch instruction.
Claim 10
Dependent Claim 29 words
The data processor of claim 1 wherein the rename buffer copies the result to the plurality of architectural registers responsive to the instruction and to the series of instructions.
Claim 11
Dependent Claim 13 words
The data processor of claim 9 wherein the instruction is a branch instruction.
Claim 12
Dependent Claim 13 words
The data processor of claim 1 wherein the instruction is a branch instruction.
Claim 13
Independent Claim 191 words
A method of operating a data processor with a future file providing operand data to an execution unit, the data processor spectulatively executing instructions, the method comprising the steps of: during a first time, receiving an instruction for execution in an execution unit of a data processor, the instruction of a series of instructions, the instruction specifying a source operand; and providing a most recent value of one of a plurality of architectural registers responsive to the source operand to the execution unit from a future file, the most recent value stored in one of a plurality of entries of the future file, the future file providing a single source lookup for instruction operands, the plurality of entries coupled to the execution unit, each one of the plurality of entries storing a most recent value of a differing one of the plurality of architectural registers, each one of the plurality of entries coupled simultaneously to a differing one of the plurality of architectural registers for single cycle replacement of the future file responsive to an occurrence of an exception condition via a differing one of a plurality of future file buses.
Claim 14
Independent Claim 191 words
A method of operating a data processor with a future file providing operand data to an execution unit, the data processor spectulatively executing instructions, the method comprising the steps of: during a first time, receiving an instruction for execution in an execution unit of a data processor, the instruction of a series of instructions, the instruction specifying a source operand; and providing a most recent value of one of a plurality of architectural registers responsive to the source operand to the execution unit from a future file, the most recent value stored in one of a plurality of entries of the future file, the future file providing a single source lookup for instruction operands, the plurality of entries coupled to the execution unit, each one of the plurality of entries storing a most recent value of a differing one of the plurality of architectural registers, each one of the plurality of entries coupled simultaneously to a differing one of the plurality of architectural registers for single cycle replacement of the future file responsive to an occurrence of an exception condition via a differing one of a plurality of future file buses.
Claim 15
Dependent Claim 49 words
The method of claim 12 further comprising the steps of: during a second subsequent time; receiving a signal representative of an exception condition in the future file; and simultaneously writing a value of each of the plurality of architectural registers to the differing one of the plurality of entries.
Claim 16
Dependent Claim 29 words
The method of claim 13 wherein the step of providing further comprises the step of providing a tag to the execution unit identifying one of the series of instructions.
Claim 17
Dependent Claim 42 words
The method of claim 14 further comprising the steps of: writing a result of the instruction to a rename buffer; and copying the result to one of the plurality of architectural registers responsive to the instruction and to the series of instructions.
Claim 18
Dependent Claim 12 words
The method of claim 15 wherein the instruction is a branch instruction.
Claim 19
Dependent Claim 29 words
The method of claim 12 wherein the step of providing further comprises the step of providing a tag to the execution unit identifying one of the series of instructions.
Claim 20
Dependent Claim 42 words
The method of claim 17 further comprising the steps of: writing a result of the instruction to a rename buffer; and copying the result to one of the plurality of architectural registers responsive to the instruction and to the series of instructions.
Claim 21
Dependent Claim 12 words
The method of claim 18 wherein the instruction is a branch instruction.
Claim 22
Dependent Claim 42 words
The method of claim 12 further comprising the steps of: writing a result of the instruction to a rename buffer; and copying the result to one of the plurality of architectural registers responsive to the instruction and to the series of instructions.

References Cited (Backward Citations)

US5155817A Cited
US5129067A Cited
US5136697A Cited
US5355457A Cited
US5404470A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1999-07-09 2000-01-08 2000-07-09 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2003-07-09 2004-01-08 2004-07-09 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2007-07-09 2008-01-08 2008-07-09 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag