US2009055631A1PendingUtilityA1

Method And Apparatus For Register Renaming Using Multiple Physical Register Files And Avoiding Associative Search

Assignee: IBMPriority: Jul 12, 2006Filed: May 29, 2008Published: Feb 26, 2009
Est. expiryJul 12, 2026(expired)· nominal 20-yr term from priority
G06F 9/3851G06F 9/3838G06F 9/384
53
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A method for implementing a register renaming scheme for a digital data processor using a plurality of physical register files for supporting out-of-order execution of a plurality of instructions from one or more threads, the method comprising: using a DEF table to store the instruction dependencies between the plurality of instructions using the instruction tags, the DEF table being indexed by a logical register name and including one entry per logical register; using a rename USE table indexed by the instruction tags to store logical-to-physical register mapping information shared by multiple sets of different types of non-architected copies of logical registers used by multiple threads; using a last USE table to transfer data of the multiple sets of different types of non-architected copies of logical registers into the first set of architected registered files, the last USE table being indexed by a physical register name in the second set of rename registered files; and performing the register renaming scheme at the instruction dispatch or wake-up/issue time.

Claims

exact text as granted — not AI-modified
1 . A method for implementing a register renaming scheme for a digital data processor using a plurality of physical register files for supporting out-of-order execution of a plurality of instructions, the method comprising:
 partitioning the plurality of physical register files into a first set of register files having a fixed one-to-one mapping with a first set of logical registers in the architected state and into a second set of register files being mapped to a second set having multiple copies of logical registers in a non-architected state by a register-renaming unit;   assigning an instruction tag to each of the plurality of instructions for tracking instruction dependencies;   using a DEF table to store the instruction dependencies between the plurality of instructions using the instruction tags, the DEF table being indexed by a logical register name and including one entry per logical register;   using a rename USE table indexed by the instruction tags to store logical-to-physical register mapping information shared by multiple sets of different types of non-architected copies of logical registers used by multiple threads;   using a last USE table to transfer data of the multiple sets of different types of non-architected copies of logical registers into the first set of architected registered files, the last USE table being indexed by a physical register name in the second set of rename registered files; and   performing the register renaming scheme at an instruction dispatch or wake-up/issue time in order to reduce a number of the plurality of physical register files.   
   
   
       2 . The method of  claim 1 , wherein the register-renaming unit is a mapper. 
   
   
       3 . The method of  claim 2 , wherein the mapper maps the first set of logical registers to a plurality of physical registers in a rename registerfile and maintains a copy of previous instruction dependency information for a flush/recovery function. 
   
   
       4 . A system for implementing a register renaming scheme for a digital data processor using a plurality of physical register files for supporting out-of-order execution of a plurality of instructions, the system comprising:
 a network; and   a host system in communication with the network, the host system including software to implement a method comprising:
 partitioning the plurality of physical register files into a first set of register files having a fixed one-to-one mapping with a first set of logical registers in the architected state and into a second set of register files being mapped to a second set having multiple copies of logical registers in a non-architected state by a register-renaming unit; 
 assigning an instruction tag to each of the plurality of instructions for tracking instruction dependencies; 
 using a DEF table to store the instruction dependencies between the plurality of instructions using the instruction tags, the DEF table being indexed by a logical register name and including one entry per logical register; 
 using a rename USE table indexed by the instruction tags to store logical-to-physical register mapping information shared by multiple sets of different types of non-architected copies of logical registers used by multiple threads; 
 using a last USE table to transfer data of the multiple sets of different types of non-architected copies of logical registers into the first set of architected registered files, the last USE table being indexed by a physical register name in the second set of rename registered files; and 
 performing the register renaming scheme at an instruction dispatch or wake-up/issue time in order to reduce a number of the plurality of physical register files. 
   
   
   
       5 . The system of  claim 4 , wherein the register-renaming unit is a mapper. 
   
   
       6 . The system of  claim 5 , wherein the mapper maps the first set of logical registers to a plurality of physical registers in a rename registerfile and maintains a copy of previous instruction dependency information for a flush/recovery function. 
   
   
       7 . The system of  claim 6 , wherein the plurality of physical registers used by in-flight instructions are mapped to either the first set of logical registers in architected state or to the second set of logical registers in a non-architected state.

Join the waitlist — get patent alerts

Track US2009055631A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.