Solving parallel problems employing hardware multi-threading in a parallel processing environment
First Claim
Patent Images
1. An execution unit for executing multiple context threads comprises:
- an arithmetic logic unit to process data for executing threads;
control logic to control the operation of the arithmetic logic unit;
context event switching logic including signal inputs from a plurality of shared resources with the signal inputs causing the context event logic to indicate that threads are either available or unavailable for execution;
a set of memory location for storing a list of available threads that are ready to be executed;
a set of memory locations for storing a list of unavailable threads that are not ready to be executed;
general purpose register set to store and obtain operands for the arithmetic logic unit;
a read transfer register for inputting data to the execution unit, the read transfer register accessible to at least one of the plurality of shared resources;
a write transfer register for outputting data from the execution unit, the write transfer register accessible to at least one of the plurality of shared resources;
wherein the read and write transfer register sets are divided into a plurality of banks and a plurality of relatively addressable windows that correspond to individual threads to execute in the processor and where execution of a read or write instruction to a memory location causes a corresponding read or write to a location in the transfer registers.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer instruction includes a command instruction to issue a memory reference to an address in a memory shared among threads executing in microprocessors while a context of a thread is inactive.
74 Citations
23 Claims
-
1. An execution unit for executing multiple context threads comprises:
-
an arithmetic logic unit to process data for executing threads;
control logic to control the operation of the arithmetic logic unit;
context event switching logic including signal inputs from a plurality of shared resources with the signal inputs causing the context event logic to indicate that threads are either available or unavailable for execution;
a set of memory location for storing a list of available threads that are ready to be executed;
a set of memory locations for storing a list of unavailable threads that are not ready to be executed;
general purpose register set to store and obtain operands for the arithmetic logic unit;
a read transfer register for inputting data to the execution unit, the read transfer register accessible to at least one of the plurality of shared resources;
a write transfer register for outputting data from the execution unit, the write transfer register accessible to at least one of the plurality of shared resources;
wherein the read and write transfer register sets are divided into a plurality of banks and a plurality of relatively addressable windows that correspond to individual threads to execute in the processor and where execution of a read or write instruction to a memory location causes a corresponding read or write to a location in the transfer registers. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A processor unit comprises:
-
an execution unit for executing multiple context threads comprising;
an arithmetic logic unit to process data for executing threads;
control logic to control the operation of the arithmetic logic unit;
context event switching logic including signal inputs from a plurality of shared resources with the signal inputs causing the context event logic to indicate that threads are either available or unavailable for execution;
a set of memory locations for storing a list of available threads that are ready to be executed;
a set of memory locations for storing a list of unavailable threads that are not ready to be executed;
general purpose register set to store and obtain operands for the arithmetic logic unit;
a read transfer register for inputting data to the execution unit, the read transfer register accessible to at least one of the plurality of shared resources; and
a write transfer register for outputting data from the execution unit, the write transfer register accessible to at least one of the plurality of shared resources. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. A method for executing multiple context threads comprises:
-
processing data for executing thread within an arithmetic logic;
operating control logic to control the arithmetic logic;
operating context event switching logic with the context event logic constructed with signal inputs from a plurality of shared resources and with the signal inputs causing the context event logic to indicate that threads are either available or unavailable for execution;
storing and obtaining operands for the arithmetic logic unit within a general purpose register set;
inputting data from memory through a read transfer register;
outputting data to memory through a write transfer register;
accessing data from at least one of the read transfer register and the write transfer register by at least one of the plurality of shared resources; and
arranging the read and write transfer register sets into a plurality of banks and a plurality of relatively addressable windows that correspond to individual threads which may be executed in the processor. - View Dependent Claims (15, 16, 17, 18)
-
-
19. An article comprising a machine-readable medium having stored thereon machine-executable instructions that when executed by a machine causes the machine to:
-
process data for executing thread within an arithmetic logic;
operate control logic to control the arithmetic logic;
operate context event switching logic with the context event logic constructed with signal inputs from a plurality of shared resources and with the signal inputs causing the context event logic to indicate that threads are either available or unavailable for execution;
store and obtain operands for the arithmetic logic unit within a general purpose register set;
input data from memory through a read transfer register;
output data to memory through a write transfer register;
access data from at least one of the read transfer register and the write transfer register by at least one of the plurality of shared resources; and
arrange the read and write transfer register sets into a plurality of banks and a plurality of relatively addressable windows that correspond to individual threads which may be executed in the processor. - View Dependent Claims (20, 21, 22, 23)
read or write to memory and cause a corresponding read or write to a location in the transfer registers.
-
-
21. The article of claim 20 further comprising a machine-readable medium having stored thereon machine-executable instructions that when executed by a machine causes the machine to:
specify an optional token when reading or writing to memory.
-
22. The article of claim 21 further comprising a machine-readable medium having stored thereon machine-executable instructions that when executed by a machine causes the machine to:
-
specify the optional token as ctx swap; and
swap out the currently running thread.
-
-
23. The article of claim 20 further comprising a machine-readable medium having stored thereon machine-executable instructions that when executed by a machine causes the machine to:
-
specify the optional token as one of the signal inputs; and
swap out the currently executing thread; and
upon receipt of the specified signal input indicate that the swapped out thread is available for execution.
-
Specification