A multi-threaded processor supports simultaneous execution of multiple distinct instruction sequences or threads. A thread is a stream of instructions associated with a sequence of code that has been scheduled within the multi-threaded processor. Threads being simultaneously executed by a multi-threaded processor generally share computing resources (such as execution units) of the multi-threaded processor. Although computing resources of a multi-threaded processor are shared by multiple threads, a multi-threaded processor may include multiple sets of hardware, such as a program counter and other registers, to support multiple threads. In such a case, a set of hardware is dedicated to each thread and is not shared by any other thread. Thread-specific hardware may allow a multi-threaded processor to quickly and easily switch between threads. To switch from one thread to another thread, a multi-threaded processor would switch from using one set of hardware to another set of hardware. Using dedicated, thread-specific hardware may allow each thread to simultaneously progress through its instruction sequence as much as possible. When a multi-threaded processor is executing a single thread, the processor generally uses only one of the dedicated sets of hardware. The additional dedicated sets of hardware are not used during execution of the single thread.
USPTO Backgrounds
USPTO Backgrounds