Patent ID: 8171263

Claim:
A data processing apparatus comprising: a SIMD (single instruction multiple data) array of processing elements operable to process data items and each comprising a processor unit, which includes a plurality of registers for storing data therein, and an internal memory unit; and an array controller which is connected to receive instructions, and is operable to control the operation of the SIMD array in accordance with the received instructions, wherein the array controller comprises: an instruction launcher for separating received instructions into—data processing instructions and data transfer instructions and for locking registers associated with the received instructions, wherein the instruction launcher is configured to access an instruction table containing microcode information to determine an instruction type for an instruction and to determine which registers are accessed by the instruction; a processing element instruction sequencer for receiving data processing instructions from the instruction launcher, for indexing a microcode store containing microcodes readable by the processing elements of said SIMD array of processing elements, and for transferring the microcode to the processing elements of said SIMD array of processing elements; a data transfer controller for receiving data transfer instructions from the instruction launcher and for controlling data transfer to and from the respective internal memory units of the processing elements; and a register use monitor unit operable to record which of the processor unit registers are in use by an instruction.