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

Superscalar risc instruction scheduling

Assignee: S MOS Systems Inc
•
Filing: 1996-01-31
•
Granted: 1998-04-07
•
Expires: 2016-01-31
📄 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 dependence 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 dependence 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 Ray Iadonato
  • 👤 Le Trong Nguyen
  • 👤 Johannes Wang

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 01:49
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: 22
Claim 1
Independent Claim 135 words
A system for register renaming in a computer system capable of out-of-order instruction execution, comprising: a temporary buffer comprising a plurality of storage locations for storing execution results, wherein an execution result for an instruction is 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 an instruction window; tag assignment logic for receiving data dependency results from a data dependency checker 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 2
Independent Claim 135 words
A system for register renaming in a computer system capable of out-of-order instruction execution, comprising: a temporary buffer comprising a plurality of storage locations for storing execution results, wherein an execution result for an instruction is 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 an instruction window; tag assignment logic for receiving data dependency results from a data dependency checker 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 3
Dependent Claim 40 words
The register renaming system of claim 1, further comprising means for transferring the execution results in said plurality of storage locations in said temporary buffer to register file locations in-order based on the order of instructions in said instruction window.
Claim 4
Dependent Claim 27 words
The register renaming system of claim 2, wherein said means for transferring transfers a group of execution results from said temporary buffer to said register file simultaneously.
Claim 5
Dependent Claim 37 words
The register renaming system of claim 3, wherein said means for transferring transfers an execution result for an instruction from said temporary buffer to said register file when all execution results for all prior instructions are retirable.
Claim 6
Dependent Claim 38 words
The register renaming system of claim 1, wherein said tags comprise an address and a 1-bit identifier that indicates whether said address within said tags is an address within said register file locations or said temporary buffer locations.
Claim 7
Dependent Claim 28 words
The register renaming system of claim 1, further comprising means for passing said tags to read address ports of said temporary buffer for accessing said instruction execution results.
Claim 8
Dependent Claim 159 words
A computer system, comprising: a memory unit for storing program instructions; a bus coupled to said memory unit for retrieving said program instructions; and a processor coupled to said bus, wherein said processor comprises a register renaming system, comprising: a temporary buffer comprising a plurality of storage locations for storing execution results, wherein an execution result for an instruction is 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 an instruction window; tag assignment means for receiving data dependency results from a data dependency checker 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 9
Dependent Claim 159 words
A computer system, comprising: a memory unit for storing program instructions; a bus coupled to said memory unit for retrieving said program instructions; and a processor coupled to said bus, wherein said processor comprises a register renaming system, comprising: a temporary buffer comprising a plurality of storage locations for storing execution results, wherein an execution result for an instruction is 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 an instruction window; tag assignment means for receiving data dependency results from a data dependency checker 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 10
Dependent Claim 42 words
The computer system of claim 7, wherein said processor further comprises means for transferring the execution results in said plurality of storage locations in said temporary buffer to register file locations in-order based on the order of instructions in said instruction window.
Claim 11
Dependent Claim 26 words
The computer system of claim 8, wherein said means for transferring transfers a group of execution results from said temporary buffer to said register file simultaneously.
Claim 12
Dependent Claim 36 words
The computer system of claim 9, wherein said means for transferring transfers an execution result for an instruction from said temporary buffer to said register file when all execution results for all prior instructions are retirable.
Claim 13
Dependent Claim 37 words
The computer system of claim 7, wherein said tags comprise an address and a 1-bit identifier that indicates whether said address within said tags is an address within said register file locations or said temporary buffer locations.
Claim 14
Dependent Claim 29 words
The computer system of claim 7, wherein said processor further comprises means for passing said tags to read address ports of said temporary buffer for accessing said execution results.
Claim 15
Dependent Claim 105 words
A register renaming method, comprising the steps of: (1) storing, in a temporary buffer, out-of-order execution results in storage locations determined by the location of an instruction in an instruction window; (2) generating at least one tag to specify an address in said temporary buffer at which said out-of-order execution results are temporarily stored; and (3) outputting a tag in place of a register address for an operand of a first instruction if a data dependency result indicates that said first instruction is dependent on a previous instruction in said instruction window, wherein said tag comprises an address of said operand in said temporary buffer.
Claim 16
Dependent Claim 105 words
A register renaming method, comprising the steps of: (1) storing, in a temporary buffer, out-of-order execution results in storage locations determined by the location of an instruction in an instruction window; (2) generating at least one tag to specify an address in said temporary buffer at which said out-of-order execution results are temporarily stored; and (3) outputting a tag in place of a register address for an operand of a first instruction if a data dependency result indicates that said first instruction is dependent on a previous instruction in said instruction window, wherein said tag comprises an address of said operand in said temporary buffer.
Claim 17
Dependent Claim 36 words
The register renaming method of claim 13, further comprising the step of transferring said out-of-order execution results in said temporary buffer to a register file in-order based on the order of instructions in said instruction window.
Claim 18
Dependent Claim 27 words
The register renaming method of claim 14, further comprising the step of transferring a group of execution results from said temporary buffer to said register file simultaneously.
Claim 19
Dependent Claim 35 words
The register renaming method of claim 15, further comprising the step of transferring an out-of-order execution result from said temporary buffer to said register file when all execution results for all prior instructions are retirable.
Claim 20
Dependent Claim 28 words
The register renaming method of claim 13, further comprising the step of determining data dependencies between the instructions in said instruction window to produce said data dependency results.
Claim 21
Dependent Claim 45 words
The register renaming method of claim 13, wherein said step (2) further comprises the step of generating tags that comprise an address and a 1-bit identifier that indicates whether said address within said tags is an address within a register file or said temporary buffer.
Claim 22
Dependent Claim 29 words
The register renaming method of claim 13, further comprising the step of passing said tags to read address ports of said temporary buffer for accessing said out-of-order execution results.

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag