1. A multiprocessor system, comprising: a main memory; multiple processing cores, which are configured to execute software that uses data stored in the main memory; and a data streaming unit, which is connected between the processing cores and the main memory and is configured to pre-fetch the data from the main memory for use by the multiple processing cores.