IP Library Granted Patent US 7,406,587
Granted Patent B1
US 7,406,587 · App. 10/210,257 · Granted Jul 29, 2008

Method and system for renaming registers in a microprocessor

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 7,406,587
App. No.
10/210,257
Granted
Jul 29, 2008
Kind
B1
Abstract

A processor includes an active list to buffer instructions and their associated condition codes for processing. A mapping table in the processor maps a logical register associated with the instruction to a selected one of a plurality of unique physical registers. The selected unique physical register is used to hold a result according to execution of the instruction. An indication is provided to the mapping table when the selected unique physical register contains the result. The result is then moved to a fixed status register. The selected unique physical register is then returned for later reuse and the next consecutive physical register is selected for the next instruction such that physical registers are used in order. An indication is provided for output to inform whether the result is in the selected unique physical register or has been moved to the fixed status register.

Claims (62)

1. A method for renaming registers in a microprocessor, comprising:

receiving an instruction for execution;

decoding the instruction;

placing the instruction in an active list;

mapping a logical register associated with the instruction to a selected unique physical register;

executing the instruction to obtain a result;

placing the result in the selected unique physical register;

moving the result to a floating point status register prior to graduation of the instruction;

returning an identity of the selected unique physical register after moving the result to the floating point status register for future selection upon graduation of the instruction in order to maintain a fixed order for selection of unique physical registers;

providing an indication in the mapping that the result is in the selected unique physical register while the instruction is still valid or in the floating point status register after the instruction graduates.

2. The method of claim 1 , further comprising:

retrieving the result from the floating point status register in response to an exception.

3. The method of claim 1 , further comprising:

receiving a next instruction for execution;

decoding the next instruction;

mapping a logical register associated with the next instruction to a next unique physical register in consecutive succession with the selected unique physical register;

executing the next instruction to obtain a next result;

placing the next result in the next unique physical register;

moving the next result to the floating point status register prior to graduation of the next instruction;

returning an identity of the next unique physical register for future selection upon graduation of the next instruction.

4. The method of claim 1 , further comprising:

providing an indication that the selected unique physical register is not available for use.

5. The method of claim 3 , further comprising:

providing an indication that the next result is in the next unique physical register while the next instruction is still valid or in the floating point status register after the instruction graduates.

6. The method of claim 5 , wherein the indication is maintained in a single bit status register.

7. The method of claim 1 , further comprising:

storing the mapping of the logical register to the selected unique physical register and the indication as to where the result is stored in response to the instruction being a conditional branch instruction.

8. The method of claim 1 , further comprising:

obtaining an identity of the selected unique physical register from a list of available unique physical register identities.

9. The method of claim 1 , further comprising:

placing condition codes associated with the instruction in the active list;

using a pointer corresponding to the active list to identify the mapping of the logical register to the selected unique physical register.

10. The method of claim 1 , wherein mapping of the logical register to the selected unique physical register is performed without any prior mapping initialization.

11. A system for renaming registers, comprising:

a plurality of unique physical registers;

a mapping table operable to map a logical register associated with an instruction to a selected one of the plurality of unique physical registers, the selected unique physical register operable to receive a result in response to execution of the instruction;

an active list operable to maintain condition codes associated with the instruction;

a floating point status register operable to receive the result from the selected unique physical register prior to graduation of the instruction;

wherein the mapping table includes an indication that the result is in the floating point status register after the instruction graduates or in the selected unique physical register while the instruction is still valid, the mapping table operable to return an identity of the selected one of the plurality of unique physical registers after moving the result to the floating point status register for future selection upon graduation of the instruction in order to maintain a fixed order for selection of unique physical registers.

12. The system of claim 11 , wherein the mapping table and the active list are accessed through a same write pointer.

13. The system of claim 11 , wherein the selected unique physical register is returned for future reuse.

14. The system of claim 13 , wherein the plurality of unique physical registers are selected and returned in a consecutive order.

15. The system of claim 11 , further comprising:

a shadow mapping table operable to receive the mapping of the logical register to the selected unique physical register and an indication as to whether the result is in the floating point status register or the selected unique physical register.

16. A system for renaming registers, comprising:

means for receiving an instruction for execution;

means for decoding the instruction;

means for placing the instruction in an active list;

means for mapping a logical register associated with the instruction to a selected unique physical register;

means for executing the instruction to obtain a result;

means for placing the result in the selected unique physical register;

means for moving the result to a floating point status register prior to graduation of the instruction;

means for returning an identity of the selected unique physical register after moving the result to the floating point status register for future selection upon graduation of the instruction in order to maintain a fixed order for selection of unique physical registers;

means for providing an indication in the mapping that the result is in the selected unique physical register while the instruction is still valid or in the floating point status register after the instruction graduates.

17. The system of claim 16 , further comprising:

means for storing the mapping of the logical register to the selected unique physical register and the indication as to where the result is stored in response to the instruction being a conditional branch instruction.

18. The system of claim 16 , further comprising:

means for providing an indication that the result is either in the selected unique physical register or in the floating point status register.

19. The system of claim 18 , wherein the indication is maintained in a single bit status register.

20. The system of claim 16 , further comprising:

means for placing condition codes associated with the instruction in the active list;

means for using a pointer corresponding to the active list to identify the mapping of the logical register to the selected unique physical register.

Assignments (13)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 4, 2017
From: SILICON GRAPHICS INTERNATIONAL CORP.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 044128/0149 →
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC., AS AGENT
To: SILICON GRAPHICS INTERNATIONAL CORP.
Reel/Frame 040545/0362 →
SECURITY INTEREST Recorded Mar 13, 2015
From: SILICON GRAPHICS INTERNATIONAL CORP.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 035200/0722 →
ORDER...AUTHORIZING THE SALE OF ALL OR SUBSTANTIALLY ALL OF THE ASSETS OF THE DEBTORS FREE AND CLEAR OF ALL LIENS, CLAIMS, ENCUMBRANCES, AND INTERESTS... Recorded Apr 24, 2014
From: MORGAN STANLEY & CO., INCORPORATED
To: SILICON GRAPHICS, INC.
Reel/Frame 032757/0847 →
ORDER...AUTHORIZING THE SALE OF ALL OR SUBSTANTIALLY ALL OF THE ASSETS OF THE DEBTORS FREE AND CLEAR OF ALL LIENS, CLAIMS, ENCUMBRANCES, AND INTERESTS... Recorded Apr 24, 2014
From: WELLS FARGO FOOTHILL CAPITAL, INC.
To: SILICON GRAPHICS, INC.
Reel/Frame 032758/0418 →
MERGER Recorded Apr 18, 2014
From: SGI INTERNATIONAL, INC.
To: SILICON GRAPHICS INTERNATIONAL CORP.
Reel/Frame 032714/0427 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2014
From: SILICON GRAPHICS, INC.
To: SILICON GRAPHICS INTERNATIONAL, INC.
Reel/Frame 032714/0032 →
CHANGE OF NAME Recorded Apr 18, 2014
From: SILICON GRAPHICS INTERNATIONAL, INC.
To: SGI INTERNATIONAL, INC.
Reel/Frame 032714/0230 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2012
From: SILICON GRAPHICS, INC. ET AL.; SGI INTERNATIONAL, INC.
To: SILICON GRAPHICS INTERNATIONAL, CORP.
Reel/Frame 027727/0020 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2007
From: GENERAL ELECTRIC CAPITAL CORPORATION
To: MORGAN STANLEY & CO., INCORPORATED
Reel/Frame 019995/0895 →
SECURITY INTEREST Recorded Oct 24, 2006
From: SILICON GRAPHICS, INC.
To: GENERAL ELECTRIC CAPITAL CORPORATION
Reel/Frame 018545/0777 →
SECURITY AGREEMENT Recorded Aug 19, 2005
From: SILICON GRAPHICS, INC. AND SILICON GRAPHICS FEDERAL, INC. (EACH A DELAWARE CORPORATION)
To: WELLS FARGO FOOTHILL CAPITAL, INC.
Reel/Frame 016871/0809 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2002
From: ZHANG, DAVID X.; YEAGER, KENNETH C.
To: SILICON GRAPHICS, INC.
Reel/Frame 013154/0160 →