IP Library Granted Patent US 7,941,636
Granted Patent B2
US 7,941,636 · App. 12/650,998 · Granted May 10, 2011

RISC microprocessor architecture implementing multiple typed register sets

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,941,636
App. No.
12/650,998
Granted
May 10, 2011
Kind
B2
Abstract

Disclosed herein is an apparatus that implements multiple typed register sets, and applications thereof. The apparatus includes an execution unit and a register file. The execution unit is configured to execute instructions including one or more fields. The register file is configured to store operands defined by the one or more fields and is configured to store results of execution of the instructions in a destination defined by the one or more fields. The register file includes (i) a first register set having a register configured to store data of a single data type and (ii) a second register set having a register configured to store data of a plurality of data types. The register file is responsive to the one or more fields in at least one of the instructions to retrieve an operand of the at least one of the instructions from, or to store a result of the at least one of the instructions into, one of the registers of the first register set or the second register set as defined by the one or more fields of the at least one of the instructions.

Claims (34)

1. An apparatus, comprising:

an execution unit configured to execute instructions including one or more fields; and

a register file configured to store operands defined by the one or more fields and configured to store results of execution of the instructions in a destination defined by the one or more fields,

wherein the register file includes:

a first register set having a register configured to store data of a single data type; and

a second register set having a register configured to store data of a plurality of data types, and

wherein the register file is responsive to the one or more fields in at least one of the instructions to retrieve an operand of the at least one of the instructions from, or to store a result of the at least one of the instructions into, one of the registers of the first register set or the second register set as defined by the one or more fields of the at least one of the instructions.

2. The apparatus of claim 1 , wherein:

the first register set comprises a first subset of registers, a second subset of registers, and a shadow set of registers,

the shadow set of registers has a same number of registers as a number of registers in the second subset of registers, and

in a first operating mode each operand access to the second subset of registers is directed to the second subset of registers, and in a second operating mode each operand access to the second subset of registers is directed to the shadow set of registers.

3. The apparatus of claim 2 , wherein each operand access to the first subset of registers is directed to the first subset of registers.

4. The apparatus of claim 1 , wherein each register in the first register set is configured to store an integer value and each register in the second register set is configured to store an integer value or a floating point value.

5. The apparatus of claim 1 , wherein one register of the first register set is dedicated to the value zero (0), and one register in the second register set is dedicated to the value zero (0).

6. The apparatus of claim 1 , wherein the register file further comprises a third register set comprising a plurality of registers, each of which is configured to store a Boolean value.

7. A method for executing an instruction in an instruction execution unit, comprising:

decoding the instruction having one or more fields;

accessing a register file, wherein the register file includes first and second register sets that store operands defined by the one or more fields and that store results of execution of the instruction in a destination defined by the one or more fields,

wherein the first register set stores data of a first data type, and

wherein the second register set stores data of the first data type or data of a second data type;

retrieving an operand of the instruction from one of the plurality of registers in one of the plurality of register sets as defined by the one or more fields; and

storing a result of the execution of the instruction into one of the plurality of registers in one of the plurality of register sets as defined by the one or more fields.

8. The method of claim 7 , further comprising:

using a first subset of registers, a second subset of registers, and a shadow set of registers as a first register set, wherein the shadow subset of registers has a same number of registers as a number of registers in the second subset of registers;

in a first operating mode, directing each operand access to the second subset of registers to the second subset of registers; and

in a second operating mode, directing each operand access to the second subset of registers to the shadow subset of registers.

9. The method of claim 8 , further comprising:

directing each access to the first subset of registers to the first subset of registers.

10. The method of claim 7 , wherein the first data type is integer data and the second data type is floating point data.

11. The method of claim 7 , further comprising:

dedicating a register of the first register set to a permanent value of zero (0); and

dedicating a register of the second register set to a permanent value of zero (0).

12. The method of claim 7 , further comprising:

including a third register set in the register file, the third register set comprising a plurality of registers, at least one of which is configured to store a Boolean value.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2020
From: INTELLECTUAL VENTURES HOLDING 81 LLC
To: INTELLECTUAL VENTURES ASSETS 158 LLC
Reel/Frame 051777/0017 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 4, 2020
From: INTELLECTUAL VENTURES ASSETS 158 LLC
To: HANGER SOLUTIONS, LLC
Reel/Frame 051486/0425 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2010
From: SEIKO EPSON CORPORATION
To: TRANSMETA CORPORATION
Reel/Frame 025485/0072 →
MERGER Recorded Dec 9, 2010
From: TRANSMETA CORPORATION
To: TRANSMETA LLC
Reel/Frame 025485/0096 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2010
From: TRANSMETA LLC
To: INTELLECTUAL VENTURE FUNDING LLC
Reel/Frame 025485/0142 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2010
From: S-MOS SYSTEMS, INC.
To: SEIKO EPSON CORPORATION
Reel/Frame 025485/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2010
From: GARG, SANJIV; LENTZ, DEREK J.; NGUYEN, LE TRONG; CHEN, SHO-LONG
To: S-MOS SYSTEMS, INC.
Reel/Frame 025484/0381 →