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

System and method for register renaming

Assignee: Samsung Electronics Co Ltd
•
Filing: 1995-06-07
•
Granted: 1996-12-31
•
Expires: 2015-06-07
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A system and method for performing register renaming of source registers in a processor having a variable advance instruction window for storing a group of instructions to be executed by the processor, wherein a new instruction is added to the variable advance instruction window when a location becomes available. A tag is assigned to each instruction in the variable advance instruction window. The tag of each instruction to leave the window is assigned to the next new instruction to be added to it. The results of instructions executed by the processor are stored in a temp buffer according to their corresponding tags to avoid output and anti-dependencies. The temp buffer therefore permits the processor to execute instructions out of order and in parallel. Data dependency checks for input dependencies are performed only for each new instruction added to the variable advance instruction window and register renaming is performed to avoid input dependencies.

Inventors

  • 👤 Trevor A. Deosaran
  • 👤 Sanjiv Garg
  • 👤 Kevin R. Iadonato

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-02 05:20
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3836; G06F9/3838; G06F9/384; G06F9/3854

Claims Analysis

Total Claims: 20
Claim 1
Independent Claim 214 words
A system for renaming source registers of at least one instruction in an instruction window, comprising: control logic that assigns a tag to each new instruction that enters the instruction window, wherein said tag comprises a unique address in a temporary buffer where instruction execution results are stored; a recycling queue comprising a plurality of slots equal in number to a predetermined size of the instruction window, each of said plurality of slots containing one of said tags, wherein an order defined by a position of said assigned tags in said recycling queue corresponds to an order of instructions in the instruction window; selecting means for selecting a tag assigned to a first instruction as a register address of a source register of a second instruction if said source register of said second instruction is dependant on said first instruction, wherein said selected tag is a renamed register address for said source register of said second instruction; and a register file that stores renamed register addresses at address locations indicated by said tags, wherein a tag assigned to said second instruction, when applied to a read address port of said register file, outputs said renamed register address for said source register of said second instruction at a read data port of said register file.
Claim 2
Independent Claim 214 words
A system for renaming source registers of at least one instruction in an instruction window, comprising: control logic that assigns a tag to each new instruction that enters the instruction window, wherein said tag comprises a unique address in a temporary buffer where instruction execution results are stored; a recycling queue comprising a plurality of slots equal in number to a predetermined size of the instruction window, each of said plurality of slots containing one of said tags, wherein an order defined by a position of said assigned tags in said recycling queue corresponds to an order of instructions in the instruction window; selecting means for selecting a tag assigned to a first instruction as a register address of a source register of a second instruction if said source register of said second instruction is dependant on said first instruction, wherein said selected tag is a renamed register address for said source register of said second instruction; and a register file that stores renamed register addresses at address locations indicated by said tags, wherein a tag assigned to said second instruction, when applied to a read address port of said register file, outputs said renamed register address for said source register of said second instruction at a read data port of said register file.
Claim 3
Dependent Claim 30 words
The system of claim 1, further comprising dependency check means for determining whether a source register of said second instruction is dependant on an instruction result of said first instruction.
Claim 4
Dependent Claim 22 words
The system of claim 2, wherein said dependency check means comprises means for determining a highest priority dependency for said first instruction.
Claim 5
Dependent Claim 15 words
The system of claim 1, wherein the instruction window is a variable advance instruction window.
Claim 6
Dependent Claim 74 words
The system of claim 1, further comprising: means for determining whether said first instruction has retired, wherein retirement comprises the step of transferring an execution result from said temporary buffer to a main register file; and means for replacing a renamed register address of said second instruction with a main register file address if said first instruction has retired to allow said second instruction to retrieve said source operand from said main register file.
Claim 7
Dependent Claim 27 words
The system of claim 1, further comprising means for comparing a tag of a retired instruction with renamed source addresses to determine whether a dependency has disappeared.
Claim 8
Dependent Claim 237 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: control logic that assigns a tag to each new instruction that enters the instruction window, wherein said tag comprises a unique address in a temporary buffer where instruction execution results are stored; a recycling queue comprising a plurality of slots equal in number to a predetermined size of the instruction window, each of said plurality of slots containing one of said tags, wherein an order defined by a position of said assigned tags in said recycling queue corresponds to an order of instructions in the instruction window; selecting means for selecting a tag assigned to a first instruction as a register address of a source register of a second instruction if said source register of said second instruction is dependant on said first instruction, wherein said selected tag is a renamed register address for said source register of said second instruction; and a register file that stores renamed register addresses at address locations indicated by said tags, wherein a tag assigned to said second instruction, when applied to a read address port of said register file, outputs said renamed register address for said source register of said second instruction at a read data port of said register file.
Claim 9
Dependent Claim 237 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: control logic that assigns a tag to each new instruction that enters the instruction window, wherein said tag comprises a unique address in a temporary buffer where instruction execution results are stored; a recycling queue comprising a plurality of slots equal in number to a predetermined size of the instruction window, each of said plurality of slots containing one of said tags, wherein an order defined by a position of said assigned tags in said recycling queue corresponds to an order of instructions in the instruction window; selecting means for selecting a tag assigned to a first instruction as a register address of a source register of a second instruction if said source register of said second instruction is dependant on said first instruction, wherein said selected tag is a renamed register address for said source register of said second instruction; and a register file that stores renamed register addresses at address locations indicated by said tags, wherein a tag assigned to said second instruction, when applied to a read address port of said register file, outputs said renamed register address for said source register of said second instruction at a read data port of said register file.
Claim 10
Dependent Claim 31 words
The computer system of claim 7, further comprising dependency check means for determining whether a source register of said second instruction is dependant on an instruction result of said first instruction.
Claim 11
Dependent Claim 23 words
The computer system of claim 8, wherein said dependency check means comprises means for determining a highest priority dependency for said first instruction.
Claim 12
Dependent Claim 16 words
The computer system of claim 7, wherein the instruction window is a variable advance instruction window.
Claim 13
Dependent Claim 75 words
The computer system of claim 7, further comprising: means for determining whether said first instruction has retired, wherein retirement comprises the step of transferring an execution result from said temporary buffer to a main register file; and means for replacing a renamed register address of said second instruction with a main register file address if said first instruction has retired to allow said second instruction to retrieve said source operand from said main register file.
Claim 14
Dependent Claim 28 words
The computer system of claim 7, further comprising means for comparing a tag of a retired instruction with renamed source addresses to determine whether a dependency has disappeared.
Claim 15
Independent Claim 219 words
A method for renaming source registers of at least one instruction in an instruction window, comprising the steps of: (1) assigning a tag that is stored in a recycling queue to an instruction entering the instruction window, wherein said tag comprises a unique address in a temporary buffer that stores instruction execution results, wherein said recycling queue comprises a plurality of slots equal in number to a predetermined size of the instruction window, each of said plurality of slots containing one of said tags, wherein an order defined by a position of said assigned tags in said recycling queue corresponds to an order of instructions in the instruction window; (2) selecting a tag assigned to a first instruction as a register address of a source register of a second instruction if said source register of said second instruction is dependant on said first instruction, wherein said selected tag is a renamed register address for said source register of said second instruction; and (3) storing renamed register addresses in a register file at address locations indicated by said tags, wherein a tag assigned to said second instruction, when applied to a read address port of said register file, outputs said renamed register address for said source register of said second instruction at a read data port of said register file.
Claim 16
Independent Claim 219 words
A method for renaming source registers of at least one instruction in an instruction window, comprising the steps of: (1) assigning a tag that is stored in a recycling queue to an instruction entering the instruction window, wherein said tag comprises a unique address in a temporary buffer that stores instruction execution results, wherein said recycling queue comprises a plurality of slots equal in number to a predetermined size of the instruction window, each of said plurality of slots containing one of said tags, wherein an order defined by a position of said assigned tags in said recycling queue corresponds to an order of instructions in the instruction window; (2) selecting a tag assigned to a first instruction as a register address of a source register of a second instruction if said source register of said second instruction is dependant on said first instruction, wherein said selected tag is a renamed register address for said source register of said second instruction; and (3) storing renamed register addresses in a register file at address locations indicated by said tags, wherein a tag assigned to said second instruction, when applied to a read address port of said register file, outputs said renamed register address for said source register of said second instruction at a read data port of said register file.
Claim 17
Dependent Claim 32 words
The method of claim 13, wherein said step (2) comprises the step of determining whether a source register of said second instruction is dependant on an instruction result of said first instruction.
Claim 18
Dependent Claim 19 words
The method of claim 14, further comprising the step of determining a highest priority dependency for said first instruction.
Claim 19
Dependent Claim 75 words
The method of claim 13, further comprising the steps of: (4) determining whether said first instruction has retired, wherein retirement comprises the step of transferring an execution result from said temporary buffer to a main register file; and (5) replacing a renamed register address of said second instruction with a main register file address if said first instruction has retired to allow said second instruction to retrieve said source operand from said main register file.
Claim 20
Dependent Claim 28 words
The method of claim 13, further comprising the step of comparing a tag of a retired instruction with renamed source addresses to determine whether a dependency has disappeared.

References Cited (Backward Citations)

US5255384A Cited
US4992938A Cited
US5487156A Cited
US5261071A Cited
US5355457A Cited
US5278963A Cited
US5371684A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag