US2009198898A1PendingUtilityA1

Parallel data processing apparatus

Assignee: CLEARSPEED TECHNOLOGY PLCPriority: Apr 9, 1999Filed: Jan 30, 2009Published: Aug 6, 2009
Est. expiryApr 9, 2019(expired)· nominal 20-yr term from priority
G06F 9/3001G06F 15/8007G06F 9/3885G06F 9/3838G06F 9/3004G06T 1/20G06F 15/8015G06F 9/30087G06F 9/30101G06F 9/3888G06F 9/3887G06F 9/3851G06F 9/30
52
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A controller for controlling a data processor having a plurality of processor arrays, each of which includes a plurality of processing elements, comprises a retrieval unit operable to retrieve a plurality of incoming instructions streams in parallel with one another, and a distribution unit operable to supply such incoming instruction streams to respective ones of the said plurality of processor arrays.

Claims

exact text as granted — not AI-modified
1 . A controller for controlling a data processor having a plurality of single instruction multiple data (SMID) processor arrays, each of which includes a plurality of processing elements, the controller comprising:
 a retrieval unit operable to retrieve a plurality of incoming instructions streams in parallel with one another; and   a distribution unit operable to supply such incoming instruction streams to respective ones of the said plurality of processor arrays,   wherein the distribution unit is operable to distribute the instruction streams to a plurality of first function controllers operable to control the processing elements in respective processor arrays, and to a plurality of second function controllers operable to control input/output functions of respective arrays of processing elements, the first and second function controllers operating asynchronously.   
     
     
         2 . A controller as claimed in  claim 1 , comprising a cache memory for storing retrieved instruction streams. 
     
     
         3 . A controller as claimed in  claim 1 , comprising a first-in-first-out buffer for storing retrieved instruction streams. 
     
     
         4 . A controller as claimed in  claim 1 , comprising a synchronisation controller for controlling synchronisation between instruction streams. 
     
     
         5 . A controller as claimed in  claim 1 , comprising a synchronisation unit for controlling synchronisation between instruction streams and external hardware units. 
     
     
         6 . A controller as claimed in  claim 1 , comprising a synchronisation unit for controlling synchronisation between instruction streams and other control units of the array. 
     
     
         7 . A controller as claimed in  claim 1 , comprising a synchronisation unit for controlling synchronisation between instruction streams and events external to the instruction streams. 
     
     
         8 . A controller as claimed in  claim 1 , comprising a synchronisation unit for controlling synchronisation of the instruction streams using semaphore status indicators. 
     
     
         9 . A controller as claimed in  claim 1 , wherein the controller is operable to stall an instruction stream when a functional unit external to the array of processing elements is unavailable. 
     
     
         10 . A controller as claimed in  claim 1 , wherein the controller is operable to stall an instruction stream when a functional unit external to the array of processing elements is unavailable, and to restart a stalled instruction stream when the functional unit is available. 
     
     
         11 . A controller as claimed in  claim 1 , comprising:
 an instruction stream processor for controlling a plurality of instruction streams;   a synchronisation controller for controlling synchronisation between instruction streams;   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.   
     
     
         12 . A controller as claimed in  claim 1 , wherein the controller is operable to assign each instruction stream 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 controller executes one of the instruction streams. 
     
     
         15 . A controller as claimed in  claim 1 , wherein the controller further comprises an execution unit, the execution unit comprising:
 a register file, an arithmetic-logic unit and a load-store unit for transferring data between a memory and the register file.   
     
     
         16 . A controller as claimed in  claim 1 , wherein the controller is operable to select the instruction stream distributed to each processor array depending on the status of said processor array. 
     
     
         17 . A controller as claimed in  claim 1 , wherein the distribution unit is operable to distribute an incoming instruction stream to at least two of said plurality of processor arrays. 
     
     
         18 . A data processor comprising a plurality of single instruction multiple data (SMID) processor arrays, each of which includes a plurality of processing elements, and a controller, wherein the controller comprises:
 a retrieval unit operable to retrieve a plurality of incoming instructions streams in parallel with one another; and   a distribution unit operable to supply such incoming instruction streams to respective ones of the said plurality of processor arrays,   wherein the distribution unit is operable to distribute the instruction streams to a plurality of first function controllers operable to control the processing elements in respective processor arrays, and to a plurality of second function controllers operable to control input/output functions of respective arrays of processing elements, the first and second function controllers operating asynchronously.   
     
     
         19 . A data processor as claimed in  claim 18 , wherein the controller comprises a first-in-first-out buffer for storing retrieved instruction streams. 
     
     
         20 . A data processor as claimed in  claim 18 , wherein the controller comprises a synchronisation unit for controlling synchronisation between instruction streams. 
     
     
         21 . A data processor as claimed in  claim 18 , wherein the controller comprises a synchronisation unit for controlling synchronisation between instruction streams and external hardware units. 
     
     
         22 . A data processor as claimed in  claim 18 , comprising a synchronisation unit for controlling synchronisation between instruction streams and other control units of the array. 
     
     
         23 . A data processor as claimed in  claim 18 , comprising a synchronisation unit for controlling synchronisation between instruction streams and events external to the instruction streams. 
     
     
         24 . A data processor as claimed in  claim 18 , comprising a synchronisation unit for controlling synchronisation of the instruction streams using semaphore status indicators. 
     
     
         25 . A data processor as claimed in  claim 18 , Wherein the controller is operable to stall an instruction stream when a functional unit external to the array of processing elements is unavailable. 
     
     
         26 . A data processor as claimed in  claim 18 , wherein the controller is operable to stall an instruction stream when a functional unit external to the array of processing elements is unavailable, and to restart a stalled instruction stream when the functional unit is available. 
     
     
         27 . A data processor as claimed in  claim 18 , wherein the controller comprises:
 an instruction stream processor for controlling a plurality of instruction streams;   a synchronisation controller for controlling synchronisation between instruction streams;   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.   
     
     
         28 . A data processor as claimed in  claim 18 , wherein the controller is operable to assign each instruction stream a relative priority level. 
     
     
         29 . A data processor as claimed in  claim 18 , wherein the controller comprises 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. 
     
     
         30 . A data processor as claimed in  claim 18 , wherein the controller executes one of the instruction streams. 
     
     
         31 . A data processor as claimed in  claim 18 , wherein the controller further comprises an execution unit, the execution unit comprising:
 a register file, an arithmetic-logic unit and a load-store unit for transferring data between memory and register file.   
     
     
         32 . A data processor as claimed in  claim 18 , wherein the controller is operable to select the instruction stream distributed to each processor array depending on the status of said processor array. 
     
     
         33 . A data processor as claimed in  claim 18 , wherein the distribution unit is operable to distribute an incoming instruction stream to more than one of said plurality of processor arrays. 
     
     
         34 . A method for controlling a data processor having a plurality of single instruction multiple data (SIMD) processor arrays, each of which includes a plurality of processing elements, the method comprising:
 receiving a plurality of incoming instruction streams in parallel, and supplying such incoming instruction streams to respective ones of the said plurality of processor arrays; and   distributing the instruction streams to a plurality of first function controllers operable to control the processing elements in respective processor arrays, and to a plurality of second function controllers operable to control input/output functions of respective arrays of processing elements, the first and second function controllers operating asynchronously.   
     
     
         35 . A method as claimed in  claim 34 , comprising storing retrieved instruction streams in a cache memory. 
     
     
         36 . A method as claimed in  claim 34 , comprising storing retrieved instruction streams in a first-in-first-out buffer. 
     
     
         37 . A method as claimed in  claim 34 , comprising controlling synchronisation between instruction streams. 
     
     
         38 . A method as claimed in  claim 34 , comprising controlling synchronisation between instruction streams and external hardware units. 
     
     
         39 . A method as claimed in  claim 34 , comprising controlling synchronisation between instruction streams and other control units of the array. 
     
     
         40 . A method as claimed in  claim 34 , comprising controlling synchronisation between instruction streams and events external to the instruction streams. 
     
     
         41 . A method as claimed in  claim 34 , comprising controlling synchronisation of the instruction streams using semaphore status indicators. 
     
     
         42 . A method as claimed in  claim 34 , stalling an instruction stream when a functional unit external to the array of processing elements is unavailable. 
     
     
         43 . A method as claimed in  claim 34 , stalling an instruction stream when a functional unit external to the array of processing elements is unavailable, and restarting a stalled instruction stream when the functional unit is available. 
     
     
         44 . A method as claimed in  claim 34 , comprising:
 controlling a plurality of instruction streams;   controlling synchronisation between instruction streams;   providing status information regarding each of the instruction streams; and   receiving status information, and determining which of the instruction streams is to be active.   
     
     
         45 . A method as claimed in  claim 34 , comprising assigning each instruction stream a relative priority level. 
     
     
         46 . A controller as claimed in  claim 34 , comprising receiving status information from functional units external to the array of processing elements, and scheduling instruction streams using such received status information. 
     
     
         47 . A method as claimed in  claim 34 , comprising selecting the instruction stream distributed to each. processor array depending on the status of said processor array. 
     
     
         48 . A method as claimed in  claim 34 , comprising distributing an incoming instruction stream to more than one of said plurality of processor arrays.

Join the waitlist — get patent alerts

Track US2009198898A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.