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

Superscalar risc instruction scheduling

Assignee: S MOS Systems Inc
•
Filing: 1994-03-29
•
Granted: 1996-03-05
•
Expires: 2014-03-29
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A register renaming system for out-of-order execution of a set of reduced instruction set computer instructions having addressable source and destination register fields, adapted for use in a computer having an instruction execution unit with a register file accessed by read address ports and for storing instruction operands. A data dependance check circuit is included for determining data dependencies between the instructions. A tag assignment circuit generates one of more tags to specify the location of operands, based on the data dependencies determined by the data dependance check circuit. A set of register file port multiplexers select the tags generated by the tag assignment circuit and pass the tags onto the read address ports of the register file for storing execution results.

Inventors

  • 👤 Sanjiv Garg
  • 👤 Kevin R. Iadonato
  • 👤 Le T. Nguyen
  • 👤 Johannes Wang

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-30 12:18
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/30098; G06F9/3012; G06F9/3013; G06F9/38; G06F9/3824; G06F9/3836; G06F9/3838; G06F9/384; G06F9/3854; G06F9/3856

Claims Analysis

Total Claims: 19
Claim 1
Independent Claim 160 words
A register renaming method for performing out-of-order execution of a set of computer instructions adapted for use in a computer, the computer comprising an instruction execution unit with a temporary buffer accessed by read address ports and for storing instruction operands, the method comprising the steps of: (1) determining data dependencies between instructions in an instruction window to produce data dependency results; (2) storing, in a temporary buffer, out-of-order execution results in storage locations determined by the location of an instruction in said instruction window; (3) generating one or more tags to specify an address in the temporary buffer at which said out of order results are temporarily stored; and (4) outputting a tag in place of a register address for an operand of a first instruction if said data dependency results indicate that said first instruction is dependent on a previous instruction in said instruction window, wherein said tag represents an address of said operand in said temporary buffer.
Claim 2
Dependent Claim 160 words
A register renaming method for performing out-of-order execution of a set of computer instructions adapted for use in a computer, the computer comprising an instruction execution unit with a temporary buffer accessed by read address ports and for storing instruction operands, the method comprising the steps of: (1) determining data dependencies between instructions in an instruction window to produce data dependency results; (2) storing, in a temporary buffer, out-of-order execution results in storage locations determined by the location of an instruction in said instruction window; (3) generating one or more tags to specify an address in the temporary buffer at which said out of order results are temporarily stored; and (4) outputting a tag in place of a register address for an operand of a first instruction if said data dependency results indicate that said first instruction is dependent on a previous instruction in said instruction window, wherein said tag represents an address of said operand in said temporary buffer.
Claim 3
Dependent Claim 33 words
The method of claim 1, wherein said determining step further comprises the step of comparing the addresses of the source register field of each instruction to the addresses of the destination register fields.
Claim 4
Dependent Claim 22 words
The method of claim 1, further comprising the step of storing in-order results in the register file and the temporary storage means.
Claim 5
Dependent Claim 28 words
The method of claim 1, further comprising the step of passing said out-of-order results to the register files in-order after execution of the set of instructions is completed.
Claim 6
Dependent Claim 35 words
The register renaming method of claim 1, further comprising the step of transferring said execution results in said temporary buffer to a register file in-order based on the order of instructions in the instruction window.
Claim 7
Dependent Claim 27 words
The register renaming method of claim 5, further comprising the step of transferring a group of retirable instructions from said temporary buffer to said register file simultaneously.
Claim 8
Dependent Claim 34 words
The register renaming method of claim 6, further comprising the step of transferring an execution result from said temporary buffer to said register file when all execution results for all prior instructions are retirable.
Claim 9
Dependent Claim 129 words
A register renaming system for a set of RISC instructions in an instruction window, adapted for use in a computer comprising an instruction execution unit which executes the instructions to generate execution results, the system comprising: data dependence check means for determining data dependencies between the instructions in the instruction window; means for assigning instruction tags to the execution results of each instruction in the instruction window based on the location of each instruction in the instruction window; and storage means including, register file locations for storing retired instruction results, and temporary storage locations for temporarily storing the execution results according to said instruction tags prior to completion of all the instructions in the set of RISC instructions, wherein said instruction tags represent addresses within said temporary storage locations.
Claim 10
Dependent Claim 129 words
A register renaming system for a set of RISC instructions in an instruction window, adapted for use in a computer comprising an instruction execution unit which executes the instructions to generate execution results, the system comprising: data dependence check means for determining data dependencies between the instructions in the instruction window; means for assigning instruction tags to the execution results of each instruction in the instruction window based on the location of each instruction in the instruction window; and storage means including, register file locations for storing retired instruction results, and temporary storage locations for temporarily storing the execution results according to said instruction tags prior to completion of all the instructions in the set of RISC instructions, wherein said instruction tags represent addresses within said temporary storage locations.
Claim 11
Dependent Claim 35 words
The system of claim 8, wherein said data dependance check means determines said data dependencies by comparing the addresses of the source register field of each instruction to the addresses of the destination register fields.
Claim 12
Dependent Claim 29 words
The system of claim 8, further comprising means for passing out-of-order execution results to said register file locations in order after execution of the set of instructions is completed.
Claim 13
Independent Claim 155 words
A system for register renaming in a computer system capable of out-of-order instruction execution, comprising: an instruction window for storing a plurality of instructions; a temporary buffer comprising a plurality of storage locations for storing instruction data, wherein said instruction data for an instruction are stored at one of said plurality of storage locations, said one of a plurality of storage locations being determined by a location of said instruction in said instruction window; dependency check means for identifying dependencies among said plurality of instructions; tag assignment means for receiving data dependency results from said dependency check means and for outputting a tag in place of a register address for an operand of a first instruction if said first instruction is dependent on a previous one of said plurality of instructions in said instruction window for said operand; wherein said tag represents an address of said operand in one of said plurality of storage locations.
Claim 14
Independent Claim 155 words
A system for register renaming in a computer system capable of out-of-order instruction execution, comprising: an instruction window for storing a plurality of instructions; a temporary buffer comprising a plurality of storage locations for storing instruction data, wherein said instruction data for an instruction are stored at one of said plurality of storage locations, said one of a plurality of storage locations being determined by a location of said instruction in said instruction window; dependency check means for identifying dependencies among said plurality of instructions; tag assignment means for receiving data dependency results from said dependency check means and for outputting a tag in place of a register address for an operand of a first instruction if said first instruction is dependent on a previous one of said plurality of instructions in said instruction window for said operand; wherein said tag represents an address of said operand in one of said plurality of storage locations.
Claim 15
Dependent Claim 40 words
The register renaming system of claim 11, further comprising multiplexer means for selecting said tag for said first instruction when said first instruction is to be issued, and for providing said tag to said temporary buffer to retrieve said operand.
Claim 16
Dependent Claim 34 words
The register renaming system of claim 12, further comprising an issuer, wherein said issuer comprises: means for evaluating an instruction's resource requirements; means for signalling said multiplexer means to select an instruction to issue.
Claim 17
Dependent Claim 36 words
The register renaming system of claim 11, further comprising means for transferring the execution results in said temporary storage locations to said register file locations in-order based on the order of instructions in the instruction window.
Claim 18
Dependent Claim 27 words
The register renaming system of claim 14, wherein said means for transferring transfers a group of retirable instructions from said temporary buffer to said register file simultaneously.
Claim 19
Dependent Claim 38 words
The register renaming system of claim 15, wherein said means for transferring transfers an execution result for an instruction from said temporary buffer to said register file only when all execution results for all prior instructions are retirable.

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag