IP Library Granted Patent US 12,468,540
Granted Patent B2
US 12,468,540 · App. 18/017,792 · Granted Nov 11, 2025

Technologies for prediction-based register renaming

Inventors: Krste Asanovic (Oakland, CA); Andrew Waterman (Berkeley, CA)
Assignee: SiFive, Inc.
G06F9/384G06F9/3013
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 12,468,540
App. No.
18/017,792
Granted
Nov 11, 2025
Kind
B2
Abstract

Systems and methods are disclosed for register renaming. For example, an integrated circuit is described that includes a first cluster including a first set of physical registers and a first execution resource circuit, wherein the inputs for operations of the first execution resource circuit are of a first data type; a second cluster including a second set of physical registers and a second execution resource circuit, wherein the inputs for operations of the second execution resource circuit are of a second data type that is different than the first data type; and a register renaming circuit configured to: determine a data type prediction for a result of a first instruction that will be mapped to a first logical register; and, based on the data type prediction matching the first data type, rename the first logical register to be mapped to a physical register of the first set of physical registers.

Claims (25)

1 . An integrated circuit for executing instructions comprising:

a first cluster including a first set of physical registers and a first execution resource circuit configured to perform operations that take contents of one or more registers of the first set of physical registers as first inputs, wherein the first inputs for operations of the first execution resource circuit are of a first data type;

a second cluster including a second set of physical registers and a second execution resource circuit configured to perform operations that take contents of one or more registers of the second set of physical registers as second inputs, wherein the second inputs for operations of the second execution resource circuit are of a second data type that is different than the first data type; and

a register renaming circuit configured to:

determine a data type prediction for a result of a first instruction that will be mapped to a first logical register;

based on the data type prediction matching the first data type, rename the first logical register to be mapped to a first physical register of the first set of physical registers;

detect a misprediction where a second instruction, to be executed after the first instruction, will access the first logical register as an input of the second data type; and

responsive to the misprediction, issue a micro-operation (micro-op) before the second instruction, wherein the micro-op copies a value of the first logical register mapped to the first physical register to a second physical register of the second set of physical registers.

2 . The integrated circuit of claim 1 , in which the first instruction is an untyped transfer instruction.

3 . The integrated circuit of claim 1 , in which the first instruction is a load instruction.

4 . The integrated circuit of claim 1 , in which the data type prediction is determined based on an opcode of the first instruction.

5 . The integrated circuit of claim 1 , in which the data type prediction is determined based on an opcode of a queued instruction that will access the result of the first instruction, wherein the queued instruction is stored in an instruction buffer.

6 . The integrated circuit of claim 1 , in which the data type prediction is determined based on a current data type of data currently mapped to the first logical register.

7 . A method for executing instructions comprising:

determining a data type prediction for a result of a first instruction that will be mapped to a first logical register;

based on the data type prediction matching a first data type, renaming the first logical register to be mapped to a physical register of a first cluster chosen from among a plurality of clusters, wherein the plurality of clusters includes:

the first cluster, which includes a first set of physical registers and a first execution resource circuit configured to perform operations that take contents of one or more registers of the first set of physical registers as first inputs, wherein the first inputs for operations of the first execution resource circuit are of the first data type; and

a second cluster, which includes a second set of physical registers and a second execution resource circuit configured to perform operations that take contents of one or more registers of the second set of physical registers as second inputs, wherein the second inputs for operations of the second execution resource circuit are of a second data type that is different than the first data type;

detecting a misprediction where a second instruction, to be executed after the first instruction, will access the first logical register as an input of the second data type; and

responsive to the misprediction, issuing a micro-operation (micro-op) before the second instruction, wherein the micro-op copies a value of the first logical register mapped to a first physical register of the first set of physical registers to a second physical register of the second set of physical registers.

8 . The method of claim 7 , in which the first instruction is an untyped transfer instruction.

9 . The method of claim 7 , in which the first instruction is a load instruction.

10 . The method of claim 7 , in which the data type prediction is determined based on an opcode of the first instruction.

11 . The method of claim 7 , in which the data type prediction is determined based on an opcode of a queued instruction that will access the result of the first instruction, wherein the queued instruction is stored in an instruction buffer.

12 . The method of claim 7 , in which the data type prediction is determined based on a current data type of data currently mapped to the first logical register.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2023
From: ASANOVIC, KRSTE; WATERMAN, ANDREW
To: SIFIVE, INC.
Reel/Frame 062470/0638 →
Continuity (2)
Provisional Application 63056542 · Jul 24, 2020
Related Publication 20230305852A1 · Sep 28, 2023
References Cited (14)
US 6167508A · Farrell et al. · 2000 [cited by applicant]
US 20070157008A1 · Sodani · 2007 [cited by examiner]
US 20140282575A1 · Chan · 2014 [cited by applicant]
US 20190042540A1 · Sade et al. · 2019 [cited by applicant]
Tabani et al., “A Novel Register Renaming Technique for Out-of-Order Processors”, 2018 IEEE International Symposium on High Performance Computer Architecture, pp. 259-270. [cited by examiner]
European Office Action for Application No. 21 756 105.9-1203, issued Apr. 9, 2024, 5 pages. [cited by applicant]
The Design Space of Register Renaming Techniques; Sep.-Oct. 2000; 14 pages. [cited by applicant]
The RISC-V Instruction Set Manual vol. I: Unprivileged ISA; Editors Andrew Waterman, Krste Asanovic; Jun. 8, 2019; 236 pages. [cited by applicant]
Tomasulo algorithm; Wikipedia; Accessed Apr. 17, 2020; 8 pages. [cited by applicant]
Register Renaming; By Sorin, Roth, Hill, Wood, Sohi, Vijaykumar, Lipasti; 2009; 13 pages. [cited by applicant]
The Alpha 21264 Microprocessor; 1999; 13 pages. [cited by applicant]
Great Microprocessors of the Past and Present (V 10.0.0) by John Bayko; Apr. 17, 2020, 52 pages. [cited by applicant]
A Highly Productive Implementation of an Out-of-Order Processor Generator by Christopher Celio; Dec. 1, 2018; 157 pages. [cited by applicant]
Extended European Search Report for Application No. EP25171628.8, Mailed On Jul. 10, 2025, 8 pages. [cited by applicant]