1. 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; a processing element instruction sequencer connected for receiving data processing instructions from the instruction launcher and for transferring data processing instructions to the processing elements; a data transfer controller connected 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.