IP Library › Granted Patent US 11,294,683
Granted Patent B2
US 11,294,683 · App. 16/851,941 · Granted Apr 5, 2022

Duplicate detection for register renaming

Inventor: Joshua Smith (San Francisco, CA)
Assignee: SiFive, Inc.
G06F9/384G06F9/3012G06F9/3016G06F9/30032
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,294,683
App. No.
16/851,941
Granted
Apr 5, 2022
Kind
B2
Abstract

Systems and methods are disclosed for duplicate detection for register renaming. For example, a method includes checking a map table for duplicates of a first physical register, wherein the map table stores entries that each map an architectural register of an instruction set architecture to a physical register of a microarchitecture and a duplicate is two or more architectural registers that are mapped to a same physical register; and, responsive to a duplicate of the first physical register in the map table, preventing the first physical register from being added to a free list upon retirement of an instruction that renames an architectural register that was previously mapped to the first physical register to a different physical register, wherein the free list stores entries that indicate which physical registers are available for renaming.

Claims (47)

1. An integrated circuit for executing instructions comprising:

a map table configured to store a set of entries that each map an architectural register of an instruction set architecture to a physical register of a microarchitecture;

a free list configured to store entries that indicate which physical registers are available for renaming; and

a rename duplicate detector circuit configured to:

check the set of entries in the map table for duplicates of a first physical register, wherein a duplicate is two or more architectural registers that are mapped to a same physical register; and

responsive to a duplicate of the first physical register in the map table, prevent the first physical register from being added to the free list upon retirement of an instruction that renames an architectural register that was previously mapped to the first physical register to a different physical register.

2. The integrated circuit of claim 1 , in which the rename duplicate detector circuit comprises:

a content-addressable memory circuit configured to search for instances of an identifier of a physical register in the map table.

3. The integrated circuit of claim 1 , in which the map table is checked for duplicates of the first physical register during renaming of the architectural register for the instruction, and the rename duplicate detector circuit is configured to:

responsive to a duplicate of the first physical register in the map table, update a status bit to indicate that there is a duplicate of the first physical register in the map table, wherein preventing the first physical register from being added to free list upon retirement of the instruction includes checking the status bit upon retirement of the instruction.

4. The integrated circuit of claim 3 , in which the status bit is stored in an entry of a rename history file that also includes an identifier of the architectural register and an identifier of the first physical register.

5. The integrated circuit of claim 3 , in which the status bit is stored in an entry of a reorder buffer that is associated with the instruction.

6. The integrated circuit of claim 1 , in which the map table is checked for duplicates of the first physical register during retirement of the instruction.

7. The integrated circuit of claim 1 , in which the architectural register is a first architectural register, and the rename duplicate detector circuit is configured to:

check the map table for duplicates of a second physical register, wherein an identifier of the second physical register is stored in an entry of the map table for a second architectural register; and

responsive to a duplicate of the second physical register in the map table, prevent the second physical register from being added to the free list when rewinding the map table by replacing an identifier of the second physical register in the entry of the map table for the second architectural register with an identifier of a previous physical register.

8. The integrated circuit of claim 1 , in which the architectural register is a first architectural register, the instruction is a first instruction, and the rename duplicate detector circuit is configured to:

decode a move instruction with the first architectural register as a source register and a second architectural register as a destination register; and

rename to map the second architectural register to the first physical register by copying an identifier of the first physical register from the entry of the map table for the first architectural register to an entry of the map table for the second architectural register.

9. A method comprising:

checking a set of entries in a map table for duplicates of a first physical register, wherein the map table stores the set of entries that each map an architectural register of an instruction set architecture to a physical register of a microarchitecture and a duplicate is two or more architectural registers that are mapped to a same physical register; and

responsive to a duplicate of the first physical register in the map table, preventing the first physical register from being added to a free list upon retirement of an instruction that renames an architectural register that was previously mapped to the first physical register to a different physical register, wherein the free list stores entries that indicate which physical registers are available for renaming.

10. The method of claim 9 , in which checking the map table for duplicates of the first physical register comprises:

searching for instances of an identifier of the first physical register in the map table using a content-addressable memory circuit.

11. The method of claim 9 , in which the map table is checked for duplicates of the first physical register during renaming of the architectural register for the instruction, and comprising:

responsive to a duplicate of the first physical register in the map table, updating a status bit to indicate that there is a duplicate of the first physical register in the map table, wherein preventing the first physical register from being added to the free list upon retirement of the instruction includes checking the status bit upon retirement of the instruction.

12. The method of claim 11 , in which the status bit is stored in an entry of a rename history file that also includes an identifier of the architectural register and an identifier of the first physical register.

13. The method of claim 11 , in which the status bit is stored in an entry of a reorder buffer that is associated with the instruction.

14. The method of claim 9 , in which the map table is checked for duplicates of the first physical register during retirement of the instruction.

15. The method of claim 9 , in which the architectural register is a first architectural register, and comprising:

checking the map table for duplicates of a second physical register, wherein an identifier of the second physical register is stored in an entry of the map table for a second architectural register; and

responsive to a duplicate of the second physical register in the map table, preventing the second physical register from being added to the free list when rewinding the map table by replacing an identifier of the second physical register in the entry of the map table for the second architectural register with an identifier of a previous physical register.

16. The method of claim 9 , in which the architectural register is a first architectural register, the instruction is a first instruction, and comprising:

decoding a move instruction with the first architectural register as a source register and a second architectural register as a destination register; and

renaming to map the second architectural register to the first physical register by copying an identifier of the first physical register from the entry of the map table for the first architectural register to an entry of the map table for the second architectural register.

17. An integrated circuit for executing instructions comprising:

a map table configured to store a set of entries that each map an architectural register of an instruction set architecture to a physical register of a microarchitecture;

a free list configured to store entries that indicate which physical registers are available for renaming; and

a rename duplicate detector circuit configured to:

check the set of entries in the map table for duplicates of a first physical register, wherein a duplicate is two or more architectural registers that are mapped to a same physical register; and

responsive to a duplicate of the first physical register in the map table, prevent the first physical register from being added to the free list when rewinding the map table by replacing an identifier of the first physical register in an entry of the map table for an architectural register with an identifier of a previous physical register.

18. The integrated circuit of claim 17 , in which the rename duplicate detector circuit comprises:

a content-addressable memory circuit configured to search for instances of an identifier of a physical register in the map table.

19. The integrated circuit of claim 17 , in which the identifier of the previous physical register is retrieved from a rename history file entry for the architectural register.

20. The integrated circuit of claim 17 , in which the architectural register is a first architectural register, and the rename duplicate detector circuit is configured to:

decode a move instruction with the first architectural register as a source register and a second architectural register as a destination register; and

rename to map the second architectural register to the first physical register by copying an identifier of the first physical register from the entry of the map table for the first architectural register to an entry of the map table for the second architectural register.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 12, 2020
From: SMITH, JOSHUA
To: SIFIVE, INC.
Reel/Frame 052930/0257 →
Continuity (2)
Provisional Application 63002313 · Mar 30, 2020
Related Publication 20210303308A1 · Sep 30, 2021