Asynchronous
CPUs are one of
several ideas for radically changing CPU design. Unlike a conventional processor, a clockless processor (asynchronous CPU) has no central clock to coordinate the progress of data through the pipeline. Instead, stages of the CPU are coordinated using logic devices called "pipeline controls" or "FIFO sequencers". Basically, the pipeline controller clocks the next stage of logic when the existing stage is complete. In this way, a central clock is unnecessary. It may actually be even easier to implement high performance devices in asynchronous, as opposed to clocked, logic: • components can run at different speeds on an asynchronous CPU; all major components of a clocked CPU must remain synchronized with the central clock; • a traditional CPU cannot "go faster" than the expected worst-case performance of the slowest stage/instruction/component. When an asynchronous CPU completes an operation more quickly than anticipated, the next stage can immediately begin processing the results, rather than waiting for synchronization with a central clock. An operation might finish faster than normal because of attributes of the data being processed (e.g., multiplication can be very fast when multiplying by 0 or 1, even when running code produced by a naive compiler), or because of the presence of a higher voltage or bus speed setting, or a lower ambient temperature, than 'normal' or expected. Asynchronous logic proponents believe these capabilities would have these benefits: • lower power dissipation for a given performance level, and • highest possible execution speeds. The biggest disadvantage of the clockless CPU is that most
CPU design tools assume a clocked CPU (i.e., a
synchronous circuit). Many tools "enforce synchronous design practices". Making a clockless CPU (designing an asynchronous circuit) involves modifying the design tools to handle clockless logic and doing extra testing to ensure the design avoids
metastable problems. The group that designed the
AMULET, for example, developed a tool called LARD to cope with the complex design of AMULET3.
Examples Despite all the difficulties numerous asynchronous CPUs have been built. The
ORDVAC of 1951 was a successor to the
ENIAC and the first asynchronous computer ever built. ; Caltech Asynchronous Microprocessor (CAM) In 1988 the Caltech Asynchronous Microprocessor (CAM) was the first asynchronous,
quasi delay-insensitive (QDI) microprocessor made by Caltech. The processor had 16-bit wide
RISC ISA and
separate instruction and data memories. Synchronous flexible processors are slower, since bending the material on which a chip is fabricated causes wild and unpredictable variations in the delays of various transistors, for which worst-case scenarios must be assumed everywhere and everything must be clocked at worst-case speed. The processor is intended for use in
smart cards, whose chips are currently limited in size to those small enough that they can remain perfectly rigid.
IBM In 2014, IBM announced a
SyNAPSE-developed chip that runs in an asynchronous manner, with one of the highest
transistor counts of any chip ever produced. IBM's chip consumes orders of magnitude less power than traditional computing systems on pattern recognition benchmarks.
Timeline •
ORDVAC and the (identical)
ILLIAC I (1951) •
Johnniac (1953) •
WEIZAC (1955) • Kiev (1958), a Soviet machine using the programming language with pointers much earlier than they came to the PL/1 language •
ILLIAC II (1962) • Polish computers
KAR-65 and K-202 (1965 and 1970 respectively) •
Honeywell CPUs 6180 (1972) and Series 60 Level 68 (1981) upon which
Multics ran asynchronously • Soviet bit-slice microprocessor modules (late 1970s) produced as К587, К588 and К1883 (U83x in East Germany) • Caltech Asynchronous Microprocessor, the world-first asynchronous microprocessor (1988) • "Network-based Asynchronous Architecture" processor (2005) that executes a subset of the
MIPS architecture instruction set • ARM996HS processor (2006) from Handshake Solutions • HT80C51 processor (2007?) from Handshake Solutions. • Vortex, a
superscalar general purpose CPU with a
load/store architecture from Intel (2007); it was developed as Fulcrum Microsystem test Chip 2 and was not commercialized, excepting some of its components; the chip included
DDR SDRAM and a 10Gb Ethernet interface linked via Nexus system-on-chip net to the CPU • SEAforth
multi-core processor (2008) from
Charles H. Moore • GA144
multi-core processor (2010) from
Charles H. Moore • TAM16: 16-bit asynchronous microcontroller IP core (Tiempo) • Aspida asynchronous
DLX core; the asynchronous open-source DLX processor (ASPIDA) has been successfully implemented both in ASIC and FPGA versions ==See also==