The Design and Implementation of an Asynchronous Microprocessor

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, the incorporation of 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. No portion of the work referred to in this thesis has been submitted in support of an application for another degree of qualification of this or any other university or other institution of learning. was completed the following year. The author was then employed as a Research Assistant on the ESPRIT EDS project investigating the implementation of functional language execution mechanisms on a distributed store parallel machine. In January 1990 the author became a Research Associate working on the ESPRIT OMI-MAP project investigating the potential of asynchronous logic for low power applications. The author is currently employed as a Research Fellow working on the ESPRIT OMI-DE project which is continuing on from the work of OMI-MAP. This thesis reports the results of the work undertaken during the OMI-MAP project.

[1]  M. Rem,et al.  VLSI programming and silicon compilation-a novel approach from Philips research , 1988, Proceedings 1988 IEEE International Conference on Computer Design: VLSI.

[2]  R. Burgess,et al.  An error decoder for the Compact Disc player as an example of VLSI programming , 1992, [1992] Proceedings The European Conference on Design Automation.

[3]  T. E. Williams,et al.  A 160 ns 54 bit CMOS division implementation using self-timing and symmetrically overlapped SRT stages , 1991, [1991] Proceedings 10th IEEE Symposium on Computer Arithmetic.

[4]  Tam-Anh Chu On the models for designing VLSI asynchronous digital systems , 1986, Integr..

[5]  Chen-Shang Lin,et al.  Automatic synthesis of asynchronous circuits , 1991, 28th ACM/IEEE Design Automation Conference.

[6]  Joep L. W. Kessels,et al.  VLSI Programming for the Compact Disc Player , 1990, Sci. Comput. Program..

[7]  Marly Roncken,et al.  The VLSI-programming language Tangram and its translation into handshake circuits , 1991, Proceedings of the European Conference on Design Automation..

[8]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[9]  David Vivian Jaggar A performance study of the Acorn RISC machine , 1990 .

[10]  Peter Radford,et al.  Petri Net Theory and the Modeling of Systems , 1982 .

[11]  Alain J. Martin,et al.  A Delay-insensitive Fair Arbiter , 1985 .

[12]  Martin Rem,et al.  The nature of delay-insensitive computing , 1991 .

[13]  Donald F. Wann,et al.  Theoretical and Experimental Behavior of Synchronizers Operating in the Metastable Region , 1975, IEEE Transactions on Computers.

[14]  Ad M. G. Peeters,et al.  Modulo-N Counters: Design and Analysis of Delay-Insensitive Circuits , 1992, Designing Correct Circuits.

[15]  Cornelis Hermanus Vanberkel,et al.  Handshake circuits: An intermediary between communicating processes and VLSI , 1992 .

[16]  Chen-Shang Lin,et al.  A realization algorithm of asynchronous circuits from STG , 1992, [1992] Proceedings The European Conference on Design Automation.

[17]  Luciano Lavagno,et al.  Linear programming for optimum hazard elimination in asynchronous circuits , 1992, Proceedings 1992 IEEE International Conference on Computer Design: VLSI in Computers & Processors.

[18]  Stephen H. Unger,et al.  Asynchronous sequential switching circuits , 1969 .

[19]  Mark B. Josephs,et al.  Asynchronous design of a router , 1991 .

[20]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[21]  Chen-Shang Lin,et al.  On the verification of state-coding in STGs , 1992, ICCAD '92.

[22]  Erik Brunvand A cell set for self-timed design using actel FPGAs , 1991 .

[23]  Mark B. Josephs,et al.  An Algebra for Delay-Insensitive Circuits , 1990, CAV.

[24]  Ken Stevens,et al.  The Post Office experience: designing a large asynchronous chip , 1993, Integr..

[25]  庄司 正一,et al.  CMOS digital circuit technology , 1988 .

[26]  Dick Pountain Computing without clocks , 1993 .

[27]  Hugo De Man,et al.  Optimized synthesis of asynchronous control circuits from graph-theoretic specifications , 1990, 1990 IEEE International Conference on Computer-Aided Design. Digest of Technical Papers.

[28]  C.H. van Berkel,et al.  Compilations of communicating processes into delay-insensitive circuits , 1988, Proceedings 1988 IEEE International Conference on Computer Design: VLSI.

[29]  Alain J. Martin Synthesis of Asynchronous VLSI Circuits , 1991 .

[30]  Erik Brunvand Translating concurrent communicating programs into asynchronous circuits , 1992 .

[31]  Soha Hassoun,et al.  A 200-MHz 64-bit Dual-Issue CMOS Microprocessor , 1992, Digit. Tech. J..

[32]  Wesley A. Clark Macromodular computer systems , 1967, AFIPS '67 (Spring).

[33]  David L. Dill,et al.  Practical generalizations of asynchronous state machines , 1993, 1993 European Conference on Design Automation with the European Event in ASIC Design.

[34]  Ganesh Gopalakrishnan,et al.  Specification, simulation, and synthesis of self-timed circuits , 1993, [1993] Proceedings of the Twenty-sixth Hawaii International Conference on System Sciences.

[35]  Alain J. Martin The limitations to delay-insensitivity in asynchronous circuits , 1990 .

[36]  Kees van Berkel Beware the isochronic fork , 1992, Integr..

[37]  Alain J. Martin The Design of a Self-timed Circuit for Distributed Mutual Exclusion , 1983 .

[38]  David L. Dill,et al.  Automatic synthesis of locally-clocked asynchronous state machines , 1991, 1991 IEEE International Conference on Computer-Aided Design Digest of Technical Papers.

[39]  Charles E. Molnar,et al.  Anomalous Behavior of Synchronizer and Arbiter Circuits , 1973, IEEE Transactions on Computers.

[40]  Mark B. Josephs,et al.  Delay-Insensitive Circuits: An Algebraic Approach to their Design , 1990, CONCUR.

[41]  Jim D. Garside,et al.  Register locking in an asynchronous microprocessor , 1992, Proceedings 1992 IEEE International Conference on Computer Design: VLSI in Computers & Processors.

[42]  Jim D. Garside,et al.  A micropipelined ARM , 1993, VLSI.

[43]  Jens Horstmann,et al.  Metastability behavior of CMOS ASIC flip-flops in theory and test , 1989 .

[44]  Alexandre Yakovlev On limitations and extensions of STG model for designing asynchronous control circuits , 1992, Proceedings 1992 IEEE International Conference on Computer Design: VLSI in Computers & Processors.

[45]  Scott Hauck,et al.  Asynchronous design methodologies: an overview , 1995, Proc. IEEE.

[46]  P. Boyle,et al.  A 300-MHz 115-W 32-b bipolar ECL microprocessor , 1993 .

[47]  Rudolf H. Mak,et al.  High-Level Design of an Asynchronous Packet-Routing Chip , 1992, Designing Correct Circuits.

[48]  Stephen B. Furber,et al.  VLSI Risc Architecture and Organization , 1989 .

[49]  David A. Huffman,et al.  The synthesis of sequential switching circuits , 1954 .

[50]  Teresa H. Y. Meng,et al.  Automatic gate-level synthesis of speed-independent circuits , 1992, ICCAD '92.

[51]  Rahul Mehra Micropipelined Cache Design Strategies for an Asynchronous Microprocessor , 1992 .

[52]  Robert M. Keller,et al.  Towards a Theory of Universal Speed-Independent Modules , 1974, IEEE Transactions on Computers.

[53]  Steven M. Burns Automated Compilation of Concurrent Programs into Self-Timed Circuits , 1988 .

[54]  Teresa H. Y. Meng,et al.  Synthesis of Timed Asynchronous CircuitsChris , 1993 .

[55]  Hugo De Man,et al.  Optimized synthesis of asynchronous control circuits from graph-theoretic specifications , 1992, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[56]  M. Rem,et al.  VLSI programming , 1988, Proceedings 1988 IEEE International Conference on Computer Design: VLSI.

[57]  Burton M. Leary,et al.  A 200 MHz 64 b dual-issue CMOS microprocessor , 1992, 1992 IEEE International Solid-State Circuits Conference Digest of Technical Papers.

[58]  Kenneth Y. Yun,et al.  Synthesis of 3D asynchronous state machines , 1992, Proceedings 1992 IEEE International Conference on Computer Design: VLSI in Computers & Processors.

[59]  Erik Brunvand,et al.  A comparison of self-timed design using FPGA, CMOS, and GaAs technologies , 1992, Proceedings 1992 IEEE International Conference on Computer Design: VLSI in Computers & Processors.

[60]  Erik Brunvand,et al.  Translating concurrent programs into delay-insensitive circuits , 1989, 1989 IEEE International Conference on Computer-Aided Design. Digest of Technical Papers.

[61]  Alain J. Martin Distributed Mutual Exclusion on a Ring of Processes , 1985, Sci. Comput. Program..

[62]  A. J. Martin Formal program transformations for VLSI circuit synthesis , 1989 .

[63]  Teresa H. Y. Meng,et al.  Automatic synthesis of asynchronous circuits from high-level specifications , 1989, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[64]  C.H. van Berkel,et al.  The design of the VLSI image-generator ZaP , 1988, Proceedings 1988 IEEE International Conference on Computer Design: VLSI.

[65]  Erik Brunvand,et al.  An Integrated Environment for the Design and Simulation of Self-Timed Systems , 1991, VLSI.

[66]  Kenneth S. Stevens,et al.  Automatic Synthesis of Fast Compact Self-Timed Control Circuits , 1993 .

[67]  Lynn Conway,et al.  Introduction to VLSI systems , 1978 .

[68]  Ganesh Gopalakrishnan,et al.  Dynamic reordering of high latency transactions using a modified micropipeline , 1992, Proceedings 1992 IEEE International Conference on Computer Design: VLSI in Computers & Processors.

[69]  Jim D. Garside,et al.  AMULET1: a micropipelined ARM , 1994, Proceedings of COMPCON '94.

[70]  Erik Brunvand The NSR processor , 1993, [1993] Proceedings of the Twenty-sixth Hawaii International Conference on System Sciences.

[71]  D. J. Kinniment,et al.  Synchronisation and arbitration circuits in digital systems , 1976 .

[72]  Tam-Anh Chu,et al.  Synthesis of self-timed VLSI circuits from graph-theoretic specifications , 1987 .

[73]  van Ch Kees Berkel Handshake circuits : an intermediary between communicating processes and VLSI , 1992 .

[74]  David L. Dill,et al.  Synthesis of asynchronous state machines using a local clock , 1991, [1991 Proceedings] IEEE International Conference on Computer Design: VLSI in Computers and Processors.

[75]  Brian W. Kernighan,et al.  The C Programming Language , 1978 .

[76]  Mark Horowitz,et al.  A zero-overhead self-timed 160-ns 54-b CMOS divider , 1991 .

[77]  Alain J. Martin,et al.  Synthesis of Self-Timed Circuits by Program Transformation , 1987 .

[78]  S. Unger Hazards and Delays in Asynchronous Sequential Switching Circuits , 1959 .

[79]  Steven M. Burns,et al.  The design of an asynchronous microprocessor , 1989, CARN.

[80]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..