An asynchronous circuit is a network of largely independent components that forward data when their operations have been completed. This is in contrast to a synchronous circuit where the elements are polled for data in response to to a global timing signal. In an asynchronous circuit, data transfer protocols determine when and how data is exchanged. Instead of regularly polling each component, data is transferred when the component itself signals that it is ready.
The majority of electronic circuit implementations use synchronous design. This is a simpler model where all components operate within the same time frame. In an asynchronous circuit, the components operate independently of any time frame. Instead of a discrete time imposed globally, the components use handshake and transfer protocols. These perform the necessary synchronization, data transfer and operation sequencing.
There are several transfer protocols used in asynchronous circuits. All include handshaking, which insures that when a component is ready to pass data to a neighbor, the neighbor is free to receive it and pass it on. Since the components function without reference to a common time frame, operations may be completed out of sequence. The transfer protocol encodes the data produced in such a way that it can be assembled in the proper order.
Some early computers employed asynchronous design. The Illinois Integrator and Automatic Computer, or ILLIAC I, developed by the University of Illinois in 1951, was such a design. Rapid advancement in integrated circuit technology required a more basic design that was compatible with the available resources, however. Synchronous design with a system clock became the preferred approach.
Asynchronous circuit design has several potential advantages. Power consumption would be far less with the elimination of the timing circuit and there being no need to power transistors not in use. Operating speed would be determined by actual latencies between components. In synchronous design, the speed is imposed to accommodate the weakest element. A circuit designed to operate under asynchronous logic would typically be less effected by the slight variations in component parts due to the manufacturing process.
Disadvantages of asynchronous circuit design stem mainly from its complexity. The number of elements necessary can be much larger than that required for a synchronous circuit. There are few Computer Assisted Design (CAD) tools made for asynchronous circuit design. These circuits are also far harder to debug and troubleshoot than conventional designs. The additional hardware overhead and difficulty in implementation may offset gains in power consumption and efficiency.