Multithreaded microprocessor with register allocation based on number of active threads
First Claim
Patent Images
1. A computer implemented method for dynamically partitioning registers to threads currently in use, the method comprising:
- determining a number of threads that are currently executing in a multithreaded processor, and storing an indication of said number of threads that are in use, as a context indication; and
allocating a number of registers within said multithreaded processor based on said context indication, said allocating based on a first number of threads and a second number of threads greater than said first number of threads, and allocating such that for said first number of threads, the registers are grouped into a first grouping of registers with groups having a first number of registers per group, and for said second number of threads, the registers are grouped into a second grouping of registers, where said second grouping of registers has half the number of registers per group as compared with said first grouping of registers, but has double the number of groups as compared with said first grouping of registers.
1 Assignment
0 Petitions
Accused Products
Abstract
A mechanism in a multithreaded processor to allocate resources based on configuration information indicating how many threads are in use.
-
Citations
21 Claims
-
1. A computer implemented method for dynamically partitioning registers to threads currently in use, the method comprising:
-
determining a number of threads that are currently executing in a multithreaded processor, and storing an indication of said number of threads that are in use, as a context indication; and allocating a number of registers within said multithreaded processor based on said context indication, said allocating based on a first number of threads and a second number of threads greater than said first number of threads, and allocating such that for said first number of threads, the registers are grouped into a first grouping of registers with groups having a first number of registers per group, and for said second number of threads, the registers are grouped into a second grouping of registers, where said second grouping of registers has half the number of registers per group as compared with said first grouping of registers, but has double the number of groups as compared with said first grouping of registers. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A processor configured to dynamically partition registers to threads currently in use, the processor comprising:
-
a plurality of registers; a storage location, which stores an indication of a number of threads that are currently executing in the processor reflecting the number of threads that are in use; and a resource selector, which allocates said registers among said threads based on the indication of the number of threads that are in use, wherein said registers are grouped into X regions, each of the X regions having Y registers grouped therein, and when more than a preselected number of threads are in use, X is doubled and Y is halved. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A system for dynamically partitioning registers to threads currently in use, the system comprising:
-
a network device; a memory system; and a processor comprising; a plurality of registers, a storage location, which stores an indication of a number of threads that are currently executing in the processor reflecting the number of threads that are in use, and a resource selector, which allocates said registers among said threads based on the indication of the number of threads that are in use, wherein said registers are grouped into X regions, each of the X regions having Y registers grouped therein, and when more than a preselected number of threads are in use, X is doubled and Y is halved. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification