IP Library Granted Patent US 10,296,341
Granted Patent B2
US 10,296,341 · App. 14/704,416 · Granted May 21, 2019

Latest producer tracking in an out-of-order processor, and applications thereof

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 10,296,341
App. No.
14/704,416
Granted
May 21, 2019
Kind
B2
Abstract

A processor and system for latest producer tracking In one embodiment, the processor includes an operand renamer circuit that includes a register rename map, a producer tracking circuit that includes a producer tracking map, and a results buffer allocater circuit that includes a results buffer free list. Control logic modifies in-register status values stored in the register rename map based on producer tracking status values stored in the producer tracking map. The producer tracking status values stored in the producer tracking map are modified based on buffer identification values output by the results buffer allocater circuit.

Claims (30)

1. A hardware processor comprising:

an operand renamer circuit that stores a plurality of in-register status values, wherein each in-register status value is based on an availability of a data value in a particular architectural state register;

a producer tracking circuit that stores a plurality of producer tracking status values, wherein each producer tracking status value is associated with a particular physical register of one or more physical registers and is used to identify if the particular physical register is being used by an instruction to store a latest data prior to the data being transferred to an architectural state register;

a results buffer allocater circuit, having a results buffer free list, that sends a signal to the producer tracking circuit to modify a respective producer tracking status value of the one or more physical registers; and

control logic that modifies, upon graduation of an instruction, an in-register status value associated with the instruction, based on an architectural state register graduation value received at the operand renamer circuit and the producer tracking status value associated with the graduated instruction provided to the control logic in response to a physical register graduation value received at the producer tracking circuit.

2. The hardware processor of claim 1 , wherein the plurality of in-register status values are used to determine if a particular data value is available in the architectural state register or in a physical register.

3. The hardware processor of claim 1 , wherein values stored in a register rename map are accessed using architectural state register identification values.

4. The hardware processor of claim 1 , wherein the producer tracking circuit includes a producer tracking map.

5. The hardware processor of claim 4 , wherein values stored in the producer tracking map are accessed using physical register identification values.

6. The hardware processor of claim 1 , wherein each producer tracking status value consists of a single bit.

7. The hardware processor of claim 1 , wherein the operand renamer circuit sends a signal to the producer tracking circuit to modify a particular producer tracking status value.

8. A system, comprising:

a hardware processor that includes an operand renamer circuit that stores a plurality of in-register status values, wherein each in-register status value is based on an availability of a data value in a particular architectural state register;

a producer tracking circuit that stores a plurality of producer tracking status values, wherein each producer tracking status value is associated with a particular physical register of one or more physical registers and is used to identify if the particular physical register is being used by an instruction to store a latest data prior to the data being transferred to an architectural state register;

a results buffer allocater circuit, having a results buffer free list, that sends a signal to the producer tracking circuit to modify a respective producer tracking status value of the one or more physical registers;

control logic that modifies, upon graduation of an instruction, an in-register status value associated with the instruction, wherein the control logic modifies the in-register status value based on an architectural state register graduation value received at the operand renamer circuit and a stored producer tracking status value associated with the instructions provided to the control logic in response to a physical register graduation value received at the producer tracking circuit; and

memory coupled to the processor.

9. The system of claim 8 , wherein the plurality of in-register status values are used to determine if a particular data value is available in the architectural state register or in a physical register.

10. The system of claim 8 , wherein the producer tracking circuit includes a producer tracking map.

11. The system of claim 8 , wherein the operand renamer circuit sends a signal to the producer tracking circuit to modify a particular producer tracking status value.

12. A non-transitory computer readable storage medium having embodied thereon computer-readable program code for generating a processor, the computer-readable program code comprising:

computer-readable code to generate an operand renamer circuit that stores a plurality of in-register status values, wherein each in-register status value is based on an availability of a data value in a particular architectural state register;

computer-readable code to generate a producer tracking circuit that stores a plurality of producer tracking status values, wherein each producer tracking status value is associated with a particular physical register of one or more physical registers and is used to identify if the particular physical register is being used by an instruction to store a latest data prior to the data being transferred to an architectural state register;

computer-readable program code to generate a results buffer allocater circuit having a results buffer free list, wherein the results buffer allocater circuit sends a signal to the producer tracking circuit to modify a respective producer tracking status value of the one or more physical registers; and

computer-readable code to generate control logic that modifies, upon graduation of an instruction, an in-register status value associated with the instruction, wherein the control logic modifies the in-register status value based on an architectural state register graduation value received at the operand renamer circuit and a stored producer tracking status value associated with the instruction provided to the control logic in response to a physical register graduation value received at the producer tracking circuit.

13. The non-transitory computer readable storage medium of claim 12 , wherein the plurality of in-register status values are used to determine if a particular data value is available in the architectural state register or in a physical register.

14. The non-transitory computer readable storage medium of claim 12 , wherein the computer-readable program code configures the generated producer tracking circuit to include a producer tracking map.

15. The non-transitory computer readable storage medium of claim 12 , wherein the computer-readable program code configures the generated operand renamer circuit to send a signal to the producer tracking circuit to modify a particular producer tracking status value.

16. The non-transitory computer readable storage medium of claim 12 , wherein the computer-readable program code configures the processor in hardware description language software.

17. The non-transitory computer readable storage medium of claim 16 , wherein the computer-readable program code configures the processor in one of Verilog hardware description language software and VHDL hardware description language software.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 27, 2015
From: BRIDGE CROSSING, LLC
To: ARM FINANCE OVERSEAS LIMITED
Reel/Frame 035718/0729 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2015
From: MIPS TECHNOLOGIES, INC.
To: BRIDGE CROSSING, LLC
Reel/Frame 035703/0410 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 14, 2015
From: SVENDSEN, KJELD; JIANG, XING YU
To: MIPS TECHNOLOGIES, INC.
Reel/Frame 035636/0357 →