IP Library Granted Patent US 9,448,801
Granted Patent B2
US 9,448,801 · App. 13/732,183 · Granted Sep 20, 2016

Automatic register port selection in extensible processor architecture

Inventor: Fei Sun (Santa Clara, CA)
Assignee: Cadence Design Systems, Inc.
G06F9/30141
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 9,448,801
App. No.
13/732,183
Granted
Sep 20, 2016
Kind
B2
Abstract

This document discusses, among other things, systems and methods to access n consecutive entries of a register file in a single operation using a register file entry index consisting of B bits, wherein B is less than the binary logarithm of a depth of the register file, which corresponds to the number of entries in the register file, and to automatically select, for a set of register arguments for the n consecutive entries, between a register port for each argument requiring a register port or one or more shared register ports for the set of register arguments according to description of an instruction set architecture associated with the register file.

Claims (47)

1. A method, comprising:

accessing n consecutive entries of a register file in a single operation using a register file entry index consisting of B bits, wherein n is a power-of-two number; and

automatically selecting, for a set of register arguments for the n consecutive entries, between a register port for each argument in the set of register arguments requiring a register port or one or more shared register ports for the set of register arguments according to description of an instruction set architecture associated with the register file,

wherein B is less than the binary logarithm of a depth of the register file, and

wherein the depth of the register file corresponds to the number of entries in the register file.

2. The method of claim 1 , wherein B is the binary logarithm of the quotient of the depth of the register file divided by n.

3. The method of claim 1 , wherein B is the binary logarithm of the quotient of d divided by n,

wherein d is the smallest power-of-two number that is greater than or equal to the depth of the register file.

4. The method of claim 1 , wherein the register file entry index references the lower entry of the n consecutive entries.

5. The method of claim 1 , including:

receiving an instruction to selectively update a value of one or more selected bits of one of the n consecutive entries of the register file;

receiving the one or more selected bits of the register file entry to be updated and one or more selected bits of the first register to remain unchanged; and

selectively updating the value of the one or more selected bits of the n consecutive entries of the register file, using a first write port, without receiving the value of the one or more selected bits of the first register.

6. The method of claim 5 , wherein the instruction to selectively update the value of the one or more selected bits of one of the n consecutive entries of the register file includes a bit level kill signal defining the one or more selected bits of the first register to be updated.

7. The method of claim 1 , wherein the automatically selecting between a register port for each argument in the set of register arguments requiring a register port or one or more shared register ports for the set of register arguments includes analyzing the total number of register ports required by a processor accessing the register file.

8. The method of claim 1 , wherein the description of the instruction set architecture associated with the register file includes the number of available register ports and the set of arguments associated with the single operation.

9. A system, comprising:

a register file having a depth corresponding to the number of entries in the register file; and

a processor configured to:

access n consecutive entries of the register file in a single operation using a register file entry index consisting of B bits, wherein n is a power-of-two number; and

automatically select, for a set of register arguments for the n consecutive entries, between a register port for each argument in the set of register arguments or one or more shared register port for the set of register arguments according to description of an instruction set architecture associated with the register file,

wherein B is less than the binary logarithm of a depth of the register file.

10. The system of claim 9 , wherein B is the binary logarithm of the quotient of the depth of the register file divided by n.

11. The system of claim 9 ,

wherein B is the binary logarithm of the quotient of d divided by n,

wherein d is the smallest power-of-two number that is greater than or equal to the depth of the register file.

12. The system of claim 9 , wherein the register file entry index references the lower entry of the n consecutive entries.

13. The system of claim 9 , including a set of register ports configured to selectively update a value of an entry of the register file,

wherein the processor is configured to:

receive an instruction to selectively update a value of one or more selected bits of one of the n consecutive entries of the register file;

receive the one or more selected bits of the register file entry to be updated and one or more selected bits of the first register to remain unchanged; and

selectively update the value of the one or more selected bits of the n consecutive entries of the register file, using a first write port, without receiving the value of the one or more selected bits of the first register.

14. The system of claim 13 , wherein the instruction to selectively update the value of the one or more selected bits of one of the n consecutive entries of the register file includes a bit level kill signal defining the one or more selected bits of the first register to be updated.

15. The system of claim 9 , wherein the processor is configured to analyze the total number of register ports required for all operations, and to automatically select between a register port for each argument in the set of register arguments requiring a register port or one or more shared register ports for the set of register arguments using the total number of register ports.

16. A non-transitory machine readable medium including instructions that, when executed by a machine, cause the machine to perform operations including:

accessing n consecutive entries of a register file in a single operation using a register file entry index consisting of B bits; and

automatically selecting, for a set of register arguments for the n consecutive entries, between a register port for each argument in the set of register arguments requiring a register port or one or more shared register ports for the set of register arguments according to description of an instruction set architecture associated with the register file,

wherein B is less than the binary logarithm of a depth of the register file,

wherein n is a power-of-two number, and

wherein the depth of the register file corresponds to the number of entries in the register file.

17. The non-transitory machine readable medium of claim 16 , wherein B is the binary logarithm of the quotient of the depth of the register file divided by n.

18. The non-transitory machine readable medium of claim 16 , wherein B is the binary logarithm of the quotient of d divided by n,

wherein d is the smallest power-of-two number that is greater than or equal to the depth of the register file.

19. The non-transitory machine readable medium of claim 16 including instructions that, when executed by a machine, cause the machine to perform operations including:

receiving an instruction to selectively update a value of one or more selected bits of one of the n consecutive entries of the register file;

receiving the one or more selected bits of the register file entry to be updated and one or more selected bits of the first register to remain unchanged; and

selectively updating the value of the one or more selected bits of the n consecutive entries of the register file, using a first write port, without receiving the value of the one or more selected bits of the first register.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 14, 2013
From: TENSILICA, INC.
To: CADENCE DESIGN SYSTEMS, INC.
Reel/Frame 031011/0857 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2012
From: SUN, FEI
To: TENSILICA INC.
Reel/Frame 029550/0988 →
Continuity (1)
Related Publication 20140189318A1 · Jul 3, 2014