Abstract: A data movement controller (20) for controlling the movement between a shared data store (18) and a local data store (16) such that the data can be used by a plurality of parallel data processing elements is described. The data movement controller (20) comprises a set of data registers (56, 58, 60) which, in use, are loaded with different data parameters (57, 61, 62) to define a plurality of different ways in which data is transferred between the shared data store (18) and a set of processing elements (12). The data parameters (57, 61, 62) define a set of time delays for transferring portions of the data to predefined ones of the plurality of processing elements (12) and the type of overall data transfer that is to be carried out.