Abstract: A data processor is described which comprises a sequence of processing stages, each processing stage comprising a plurality of processing elements, each processing element comprising an arithmetic logic unit, one or more input data buffers and one or more output data buffers, the arithmetic logic unit being operable to conduct a data processing operation on one or more values stored in an input data buffer and to store the result of the data processing operation into an output data buffer. Between each pair of processing stages in the sequence, an interconnect is provided, for conveying data values stored in the output data buffers of the processing elements in a first one of the processing stages in the pair to the input data buffers of the processing elements in the next processing stage in the pair.