Method and apparatus for managing resources in a multithreaded processor
First Claim
Patent Images
1. A processor comprising:
- an instruction delivery engine to store and fetch instructions to be executed by the processor from a plurality of threads based upon a current processing mode; and
an allocator to receive instructions from the instruction delivery engine and to perform allocation in a processor resource required for the execution of the instructions based upon the current processing mode, wherein the allocator, if the current processing mode is single threading, assigns all of the processor resource to one of the plurality of threads that is active, allocates an amount of entries for the instructions from the one of the plurality of threads in the processor resource if the processor resource has sufficient available entries, and activates at least one stall signal if the processor resource does not have sufficient available entries; and
, if the current processing mode is multithreading, assigns a portion of the processor resource, to each of the plurality of threads running concurrently, allocates an amount of entries for the instructions from each respective thread in a respective portion of the processor resource if the respective portion has sufficient available entries, and activates at least one stall signal if the respective portion does not have sufficient available entries.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention provides a method and apparatus for managing resources in a multithreaded processor. In one embodiment, a resource is partitioned into a number of portions based upon a number of threads being executed concurrently. Resource allocation for each thread is performed in its respective portion of the resource.
-
Citations
15 Claims
-
1. A processor comprising:
-
an instruction delivery engine to store and fetch instructions to be executed by the processor from a plurality of threads based upon a current processing mode; and
an allocator to receive instructions from the instruction delivery engine and to perform allocation in a processor resource required for the execution of the instructions based upon the current processing mode, wherein the allocator, if the current processing mode is single threading, assigns all of the processor resource to one of the plurality of threads that is active, allocates an amount of entries for the instructions from the one of the plurality of threads in the processor resource if the processor resource has sufficient available entries, and activates at least one stall signal if the processor resource does not have sufficient available entries; and
,if the current processing mode is multithreading, assigns a portion of the processor resource, to each of the plurality of threads running concurrently, allocates an amount of entries for the instructions from each respective thread in a respective portion of the processor resource if the respective portion has sufficient available entries, and activates at least one stall signal if the respective portion does not have sufficient available entries. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for allocating processor resources by a processor, the method comprising:
-
fetching instructions to be executed by the processor from one or more threads based upon a current Processing mode; and
,performing allocation in a processor resource required for the execution of the instructions based upon the current processing mode, wherein performing allocation includes, if the current processing mode is single threading, assigning all of the processor resource to one of the plurality of threads that is active, allocating an amount of entries for the instructions from the one of the plurality of threads in the processor resource if the processor resource has sufficient available entries, and activating at least one stall signal if the processor resource does not have sufficient available entries; and
,if the current processing mode is multithreading, assigning a portion of the processor resource to each of the plurality of threads running concurrently, allocating an amount of entries for the instructions from each respective thread in a respective portion of the processor resource if the respective portion has sufficient available entries, and activating at least one stall signal if the respective portion does not have sufficient available entries. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A processor comprising:
-
means for fetching instructions to be executed by the processor from one or more threads based upon a current processing mode;
means for performing allocation in a processor resource required for the execution of the instructions based upon the current processing mode;
means that are operative if the current processing mode is single threading for assigning all of the processor resource to one of the plurality of threads that is active, allocating an amount of entries for the instructions from the one of the plurality of threads in the processor resource if the processor resource has sufficient available entries, and activating at least one stall signal if the processor resource does not have sufficient available entries; and
,means that are operative if the current processing mode is multithreading for assigning a portion of the processor resource to each of the plurality of threads running concurrently, allocating an amount of entries for the instructions from each respective thread in a respective portion of the processor resource if the respective portion has sufficient available entries, and activating at least one stall signal if the respective portion does not have sufficient available entries. - View Dependent Claims (12, 13, 14, 15)
-
Specification