Plural SIMD arrays processing threads fetched in parallel and prioritized by thread manager sequentially transferring instructions to array controller for distribution
First Claim
Patent Images
1. A multithreaded data processor operable to process a plurality of threads, the data processor comprising:
- a plurality of single instruction multiple data (SIMD) processing arrays, each processing array comprising a plurality of processing elements (PEs), each PE operable to receive a selected one of the plurality of threads;
a thread manager operable to transfer the threads to an array controller, the thread manager comprising;
a fetch unit operable to retrieve the threads in parallel with one another;
a thread scheduler operable to schedule processing priority for each thread from among the plurality of threads;
wherein the fetch unit is further operable to transfer sequentially a plurality of core instructions from each selected thread from among the plurality of threads to the array controller; and
wherein;
the array controller is operable to transfer each selected thread from among the plurality of threads to the plurality of SIMD processing arrays on the basis of a priority status allocated to the threads.
4 Assignments
0 Petitions
Accused Products
Abstract
A data processor comprises a plurality of processing elements arranged in a first plurality of single instruction multiple data (SIMD) processing arrays, and comprises a second plurality of controllers for transferring instructions to the processing arrays. Each controller is operable to retrieve a plurality of incoming instruction streams in parallel with one another and operable to supply incoming instruction streams to one of a plurality of processing arrays.
116 Citations
28 Claims
-
1. A multithreaded data processor operable to process a plurality of threads, the data processor comprising:
-
a plurality of single instruction multiple data (SIMD) processing arrays, each processing array comprising a plurality of processing elements (PEs), each PE operable to receive a selected one of the plurality of threads; a thread manager operable to transfer the threads to an array controller, the thread manager comprising; a fetch unit operable to retrieve the threads in parallel with one another; a thread scheduler operable to schedule processing priority for each thread from among the plurality of threads; wherein the fetch unit is further operable to transfer sequentially a plurality of core instructions from each selected thread from among the plurality of threads to the array controller; and
wherein;the array controller is operable to transfer each selected thread from among the plurality of threads to the plurality of SIMD processing arrays on the basis of a priority status allocated to the threads. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 25, 26, 27, 28)
-
-
11. A method for controlling a data processor operable to process a plurality of threads, the data processor including:
- a plurality of single instruction multiple data (SIMD) processing arrays, each processing array comprising a plurality of processing elements (PEs), each PE operable to receive a selected one of the plurality of threads;
a thread manager operable to transfer the threads to an array controller, the thread manager comprising a fetch unit operable to retrieve the threads in parallel with one another;
a thread scheduler operable to schedule processing priority for each thread from among the plurality of threads;
wherein fetch unit is further operable to transfer sequentially a plurality of core instructions from each selected thread from among the plurality of threads to the array controller; and
whereinthe array controller is operable for transferring each instruction stream from among the plurality of threads to the plurality of SIMD processing arrays on the basis of a priority status allocated to the threads, the method comprising; retrieving by the fetch unit a plurality of incoming threads in parallel with one another; and transferring sequentially a plurality of instructions from a selected one of the retrieved threads to the array controller for transfer to the plurality of SIMD processing arrays on the basis of a priority status allocated to the threads. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
- a plurality of single instruction multiple data (SIMD) processing arrays, each processing array comprising a plurality of processing elements (PEs), each PE operable to receive a selected one of the plurality of threads;
Specification