1. A method of processing data sets in a pipelined stream processor; the processor having a pipeline for streaming data; the pipeline including at least one input, at least one output, and a plurality of discrete stages; the pipeline being configured to enable a plurality of data sets to be streamed therethrough, wherein each data set comprises a plurality of data items; wherein, in use, data items enter the pipeline from the at least one input, propagate through the pipeline, and exit the pipeline through the at least one output, each discrete stage representing an operation to be performed on a data item occupying said discrete stage; the method comprising: providing a plurality of logic units separate from the pipeline, wherein each logic unit is configured to be dedicated to monitoring progression of the data items of a respective data set and to controlling progress of the data items of the respective data set through the pipeline such that the data items of a data set do not collide with the data items of another data set.