1. Data processing system based on a multi-threaded operating system, comprising: at least one processor for processing data based on multiple threads at least one controller unit for controlling the communication between said at least one processor and an external peripheral device connected to said at least one controller unit said at least one controller unit comprises at least one buffer memory for buffering data from said peripheral device connected to said at least one controller unit and at least one memory managing unit for managing the access to said at least one buffer memory by mapping said at least one buffer memory into N banks, each said bank having an associated dedicated pre-fetch register and wherein each of said multiple threads is mapped to one of said N banks and the dedicated pre-fetch, register, wherein the dedicated pre-fetch register stores a pre-fetch address of the thread when the dedicated pre-fetch register is mapped to that said thread for running.