IP Library Granted Patent US 7,958,332
Granted Patent B2
US 7,958,332 · App. 12/404,222 · Granted Jun 7, 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,958,332
App. No.
12/404,222
Granted
Jun 7, 2011
Kind
B2
Abstract

A controller operable to control an array of processing elements comprises a retrieval unit operable to retrieve instruction items for each of a plurality of instructions streams, each instruction stream having a plurality of instructions items, a combining unit operable to combine the plurality of instruction streams into a serial instruction stream, and a distribution unit operable to distribute the serial instruction stream to an array of processing elements.

Claims (32)

1. A controller operable to control an array of processing elements, the controller comprising:

a retrieval unit operable to retrieve instruction items for each of a plurality of instructions streams, each instruction stream having a plurality of instructions items;

a combining unit operable to combine the plurality of instruction streams into a serial instruction stream;

a distribution unit operable to distribute the serial instruction stream to an array of processing elements;

a plurality of instruction stream processors, one for each instruction stream, for controlling the respective instruction streams;

a semaphore controller for controlling synchronization between instruction streams, wherein each of the instruction streams includes at least one semaphore value to indicate the availability of said instruction stream, and wherein said semaphore controller is configured to set semaphore operations including a preset operation, a wait operation, and a signal operation;

an embedded processor unit configured for reading, presetting, incrementing, and decrementinq semaphore signals;

a status block for providing status information regarding each of the instruction streams; and

a scheduler connected to receive status information, and operable to determine which of the instruction streams is to be active.

2. A controller as claimed in claim 1 , wherein the retrieval unit comprises a plurality of retrieval devices, each of which is assignable to one or more of the plurality of instruction streams.

3. A controller as claimed in claim 1 , wherein the distribution unit is operable to distribute the serial instruction stream to one or more function controllers operable to control respective functional units.

4. A controller as claimed in claim 1 , wherein the distribution unit is operable to distribute the serial instruction stream to a function controller operable to control the processing elements.

5. A controller as claimed in claim 1 , wherein the distribution unit is operable to distribute the serial instruction stream to a function controller operable to control input/output functions of the array of processing elements.

6. A controller as claimed in claim 1 , wherein the distribution unit is operable to distribute the serial instruction stream to a first function controller operable to control the processing elements, and wherein the distribution unit is operable to distribute the serial instruction stream to a second function controller operable to control input/output functions of the array of processing elements, the first and second function controllers operating asynchronously.

7. A controller as claimed in claim 1 , wherein the distribution unit is operable to distribute selectively the serial instruction stream to either an array controller which controls data processing of the array of processing elements, or to a channel controller which controls the transfer of data to and from the processing elements.

8. A controller as claimed in claim 1 , comprising a cache memory for storing retrieved instruction items.

9. A controller as claimed in claim 1 , comprising a first-in-first-out buffer for storing retrieved instruction items.

10. A controller as claimed in claim 1 , comprising a synchronisation controller for controlling synchronisation between instruction streams.

11. A controller as claimed in claim 1 , comprising a synchronisation controller for controlling synchronisation between instruction streams and external hardware units.

12. A controller as claimed in claim 1 , wherein each instruction stream is assigned a relative priority level.

13. A controller as claimed in claim 1 , comprising a scheduler connected to receive status information from functional units external to the array of processing elements, and operable to schedule instruction streams using such received status information.

14. A controller as claimed in claim 1 , wherein the array of processors is a SIMD (single instruction multiple data) array.

15. A controller as claimed in claim 1 , wherein the distribution unit is operable to distribute selectively the serial instruction stream to either an array controller which controls data processing of the array of processing elements, or a channel controller which controls the transfer of data between external memory and internal memory units of the processing elements.

16. A controller operable to control an array of processing elements, the controller comprising:

a retrieval unit operable to retrieve instruction items for each of a plurality of instructions streams, each instruction stream having a plurality of instructions items;

a combining unit operable to combine the plurality of instruction streams into a serial instruction stream;

a distribution unit operable to distribute the serial instruction stream to an array of processing elements;

an instruction stream processor for controlling a plurality of instruction streams;

a semaphore controller for controlling synchronization between instruction streams, wherein each of the instruction streams includes at least one semaphore value to indicate the availability of said instruction stream, and wherein said semaphore controller is configured to set semaphore operations including a preset operation, a wait operation, and a signal operation;

an embedded processor unit configured for reading, presetting, incrementing, and decrementinq semaphore signals;

a status block for providing status information regarding each of the instruction streams; and

a scheduling means connected to receive status information, and operable to determine which of the instruction streams is to be active.

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 Jun 17, 2010
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 024554/0666 →