The Design and Implementation of an Asynchronous Microprocessor
Nigel C. Paver
A fully asynchronous implementation of the ARM microprocessor has been developed in order to demonstrate the feasibility of building complex systems using asynchronous design techniques. The design is based upon Sutherland's Micropipelines and allows considerable internal asynchronous concurrency. The design exhibits several novel features including: a register bank design which maintains coherent register operation while allowing concurrent read and write access with arbitrary timing and dependencies, an ALU whose speed of operation depends upon the data presented, and an instruction prefetch unit which has a non-deterministic (but bounded) prefetch depth beyond a branch. The design also includes many complex features commonly found in modern RISC processors, such as support for exact exceptions, backwards instruction set compatibility and pipelined operation.
This thesis introduces the Micropipeline approach and discusses the design,
organization, implementation and performance of the asynchronous ARM
microprocessor which was constructed in the course of the work.
The thesis is available in postscript form by
(1.4MB compressed) and the colour postscript pages are available
(as a 900K compressed tarfile of the colour postscript pages)
Some comments about the postscript (produced by FrameMaker) are included
here (ghostview users should read this)