- Barrel processor
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 tosimultaneous multithreading in modernsuperscalar architectures, it generally does not allow execution of multiple instructions in one cycle.For example, certain
CDC Cyber computers executed one instruction from each of 20 different threads before returning to the first thread. Also, the IP3023 processor fromUbicom executes one instruction from each of 8 different threads before returning to the first thread.Like
preemptive multitasking , each thread of execution is assigned its ownprogram counter and otherhardware register s (each thread'sarchitectural state ). A barrel processor can guarantee that each thread will execute 1 instruction every N cycles, unlike apreemptive 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 barrel processor design. An n-way barrel processor generated this way acts much like n separatemultiprocessing copies of the original single-tasking processor, each one running at roughly 1/n the original speed.Advantages compared to single threaded processors
A single-tasking processor spends a lot of time waiting around, not doing anything useful, whenever a
cache miss orpipeline stall occurs. Advantages to employing barrel processors over single-tasking processors include:
* The ability to do useful work on the other threads while the stalled thread is waiting.
* Designing an n-way barrel processor with n-deep pipelines is much simpler than designing a single-tasking processor because a barrel processor never has apipeline stall and doesn't needfeed-forward circuits.
* For real-time applications, a Barrel processor can guarantee that a "real-time" thread can execute with precise timing, no matter what happens to the other threads -- even if some other thread locks up in aninfinite loop or is continuously interrupted byhardware interrupt s.Disadvantages compared to single threaded processors
There are, however, some disadvantages to barrel processors.
* Either all threads must share the same cache, which slows overall system performance, or there must be one unit of cache for each execution thread, which can significantly increase the
transistor count (and thus cost) of such a CPU. However, most barrel processors are used to implement hard real timeembedded systems , memory access costs are typically calculated assuming worst case behavior of the cache, so this is less of a concern.
* The state of each thread must be kept on-chip (typically in registers) to avoid costly off-chip context switches. This requires a large number of registers compared to typical processors.ee also
*
Super-threading
*Computer multitasking
*Simultaneous multithreading
*Hyper-threading External links
* [http://www.embedded.com/story/OEG20030509S0043 Soft peripherals] Embedded.com article examines Ubicom's IP3023 processor
* [http://www.cs.clemson.edu/~mark/g60.ps An Evaluation of the Design of the Gamma 60]
Wikimedia Foundation. 2010.