IP Library Granted Patent US 7,966,475
Granted Patent B2
US 7,966,475 · App. 11/621,946 · Granted Jun 21, 2011

Parallel data processing apparatus

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 7,966,475
App. No.
11/621,946
Granted
Jun 21, 2011
Kind
B2
Abstract

A data processor comprises a plurality of processing elements arranged for parallel processing of data, and a controller for controlling the plurality of processing elements. The controller is operable to determine respective status information for a plurality of processing threads, and to control processing of the processing threads by the plurality of processors in dependence upon such status information.

Claims (35)

1. A data processor comprising:

a plurality of processing elements arranged for parallel processing of data; and

a controller for controlling the plurality of processing elements, the controller including:

a thread manager operable to determine respective status information for a plurality of processing threads and to control processing of the processing threads by the plurality of processing elements in dependence upon such status information, said thread manager including:

an instruction fetch unit for fetching instructions for each thread;

at least one cache memory unit for storing instructions fetched for each thread;

a status block for receiving status information from each of the threads;

a thread scheduler for determining which thread should be active at any one time based on said status information;

a separate thread processor for each thread, said thread processor operative to control issuance of core instructions for a respective thread for maintaining processing of simultaneously active program threads; and

a semaphore controller for synchronizing the threads with one another.

2. A data processor as claimed in claim 1 , wherein the controller is operable to receive status information from at least one processing element of the plurality of the processing elements.

3. A data processor as claimed in claim 2 , wherein the processing elements are arranged as a single instruction multiple data (SIMD) processor array.

4. A data processor as a claimed in claim 1 , wherein the controller is operable to receive status information from an input/output unit adapted to perform input/output operations for processing elements.

5. A data processor as claimed in claim 1 , wherein the controller is operable to receive status information from an external processor which is separate from the processing elements.

6. A controller for controlling a data processor which includes a plurality of processing elements, the controller including a thread manager operable to determine respective status information for a plurality of processing threads and to control processing of the processing threads by the plurality of processors in dependence upon such status information, said thread manager including:

an instruction fetch unit for fetching instructions for each thread;

at least one cache memory unit for storing instructions fetched for each thread;

a status block for receiving status information from each of the threads;

a thread scheduler for determining which thread should be active at any one time based on said status information;

a separate thread processor for each thread, said thread processor operative to control issuance of core instructions for a respective thread for maintaining processing of simultaneously active program threads; and

a semaphore controller for synchronizing the threads with one another.

7. A controller as claimed in claim 6 , operable to receive status information from at least one processing element of the plurality of the processing elements.

8. A controller as claimed in claim 6 , operable to receive status information from an input/output unit adapted to perform input/output operations for the processing elements.

9. A controller as claimed in claim 6 , operable to receive status information from an external processor which is separate from the processing elements.

10. A method for controlling a plurality of processing elements arranged for parallel processing of data, the method comprising:

determining respective status information for a plurality of processing threads and controlling processing of the processing threads by the plurality of processors in dependence upon such status information by means of a thread manager, the step of determining respective status information and controlling processing of the processing threads via said thread manager comprising the steps of:

fetching instructions for each thread via a an instruction fetch unit within said thread manager;

storing instructions fetched for each thread via at least one cache memory unit within said thread manager;

receiving status information from each of the threads via a status block within said thread manager;

determining which thread should be active at any one time based on said status information via a thread scheduler within said thread manager;

controlling issuance of core instructions for a respective thread for maintaining processing of simultaneously active program threads via a separate thread processor for each thread within said thread manager; and

synchronizing the threads with one another via a semaphore controller within said thread manager.

11. A method as claimed in claim 10 , further comprising receiving status information from at least one processing element of the plurality of the processing elements.

12. A method as claimed in claim 10 , further comprising receiving status information from an input/output unit adapted to perform input/output operations for processing elements.

13. A method as claimed in claim 10 , further comprising receiving status information from an external processor which is separate from the processing elements.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 10, 2010
From: CLEARSPEED TECHNOLOGY LTD
To: RAMBUS INC.
Reel/Frame 024964/0861 →
CHANGE OF NAME Recorded Jun 18, 2010
From: CLEARSPEED TECHNOLOGY PLC
To: CLEARSPEED TECHNOLOGY LIMITED
Reel/Frame 024555/0672 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2008
From: STUTTARD, DAVE; WILLIAMS, DAVE; O'DEA, EAMON; FAULDS, GORDON; RHOADES, JOHN; CAMERON, KEN; ATKIN, PHIL; WINSER, PAUL; DAVID, RUSSELL; MCCONNELL, RAY; DAY, TIM; GREER, TREY
To: CLEARSPEED TECHNOLOGY PLC
Reel/Frame 020874/0800 →