The memory system and caches of the DSP core are fully multi-threaded to allow operation at maximum efficiency. The execution of instructions from threads is scheduled on a clock by clock basis, resulting in zero overhead for the switch from one thread to another and instant response to external stimuli. A control system is provided to monitor and adjust the instruction issue rate of each thread to allow overall system real-time constraints to be met.