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. Unlike simultaneous multithreading in modern superscalar architectures, it generally does not allow execution of multiple instructions in one cycle.

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 one 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 automatically generate a corresponding barrel processor design from a single-tasking processor design. An n-way barrel processor generated this way acts much like n separate multiprocessing copies of the original single-tasking processor, each one running at roughly 1/n the original speed.

History

One of the earliest examples of a barrel processor was the I/O processing system in the CDC 6000 series supercomputers. These 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.[1]

Barrel processors have also been used as large-scale central processors. The Tera MTA (1988) was a large-scale barrel processor design with 128 threads per core.[2][3] The MTA architecture has seen continued development in successive products, such as the YarcData uRiKA, introduced in 2012 and targeted at data-mining applications.[4]

Barrel processors have been used to reduce hardware costs. The Xerox Alto's microcode ran on a barrel processor that provided two CPUs, a video controller, Ethernet controllers, a disk controller, and other I/O using the same micromachine and register set.[5]

Barrel processors are also found in embedded systems, where they are particularly useful for their deterministic real-time thread performance. An example is the XMOS XCore XS1 (2007), a four-stage barrel processor with eight threads per core. The XS1 is found in Ethernet, USB, audio, and control devices, and other applications where I/O performance is critical. Barrel processors have also been used in specialized devices such as the eight-thread Ubicom IP3023 network I/O processor (2004).

Advantages compared to single-threaded processors

A single-tasking processor spends a lot of time idle, not doing anything useful whenever a cache miss or pipeline stall occurs. Advantages to employing barrel processors over single-tasking processors include:

Disadvantages compared to single-threaded processors

There are a few disadvantages to barrel processors.

See also

References

  1. CDC Cyber 170 Computer Systems; Models 720, 730, 750, and 760; Model 176 (Level B); CPU Instruction Set; PPU Instruction Set -- See page 2-44 for an illustration of the rotating "barrel".
  2. http://cseweb.ucsd.edu/~carter/Papers/tera2.html
  3. http://www.cray.com/About/History.aspx
  4. http://www.yarcdata.com/products.html
  5. PARC, Xerox. "Alto Hardware Manual" (PDF). BitSevers. Retrieved 2014-01-10.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.