A barrel processor
is a CPU
that switches between threads
of execution on every cycle
. This CPU design
technique is also known as "interleaved" or "fine-grained" temporal multithreading
. As opposed to simultaneous multithreading
in modern superscalar
architectures, it generally does not allow execution of multiple instructions in one cycle.
For example, the peripheral processing system of the CDC 6000 series
computers and its successors executed one instruction
(or a portion of an instruction) from each of 10 different virtual processors (called peripheral processors) before returning to the first processor. Also, the IP3023 processor from Ubicom
executes one instruction from each of 8 different threads before returning to the first thread. The Cray XMT
also uses a barrel processor (Threadstorm) in its architecture.
Like preemptive multitasking
, each thread of execution is assigned its own program counter
and other hardware registers
(each thread's architectural state
). A barrel processor can guarantee that each thread will execute 1 instruction every N cycles, unlike a preemptive multitasking
machine, that typically runs one thread of execution for hundreds or thousands of cycles, while all other threads wait their turn.
A technique called C-slowing
can take a normal single-tasking processor design and automatically generate a corresponding... Read More