The impact of asynchrony on computer architecture

The performance characteristics of asynchronous circuits are quite different from those of their synchronous counterparts. As a result, the best asynchronous design of a particular system does not necessarily correspond to the best synchronous design, even at the algorithmic level. The goal of this thesis is to examine certain aspects of computer architecture and design in the context of an asynchronous VLSI implementation. We present necessary and sufficient conditions under which the degree of pipelining of a component can be modified without affecting the correctness of an asynchronous computation. As an instance of the improvements possible using an asynchronous architecture, we present circuits to solve the prefix problem with average-case behavior better than that possible by any synchronous solution in the case when the prefix operator has a right zero. We show that our circuit implementations are area-optimal given their performance characteristics, and have the best possible average-case latency. At the level of processor design, we present a mechanism for the implementation of precise exceptions in asynchronous processors. The novel feature of this mechanism is that it permits the presence of a data-dependent number of instructions in the execution pipeline of the processor. Finally, at the level of processor architecture, we present the architecture of a processor with an independent instruction stream for branches. The instruction set permits loops and function call/return to be executed with minimal control-flow overhead.

[1]  F. Leighton,et al.  Introduction to Parallel Algorithms and Architectures: Arrays, Trees, Hypercubes , 1991 .

[2]  Alain J. Martin,et al.  An asynchronous pipelined lattice structure filter , 1994, Proceedings of 1994 IEEE Symposium on Advanced Research in Asynchronous Circuits and Systems.

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

[4]  Alain J. Martin The Probe: An Addition to Communication Primitives , 1985, Inf. Process. Lett..

[5]  Alain J. Martin,et al.  The energy and entropy of VLSI computations , 1996, Proceedings Second International Symposium on Advanced Research in Asynchronous Circuits and Systems.

[6]  Herman H. Goldstine,et al.  Preliminary discussion of the logical design of an electronic computing instrument (1946) , 1989 .

[7]  Ted Eugene Williams,et al.  Self-timed rings and their application to division , 1992 .

[8]  James E. Smith,et al.  A study of branch prediction strategies , 1981, ISCA '98.

[9]  Shmuel Winograd,et al.  On the Time Required to Perform Addition , 1965, JACM.

[10]  Edsger W. Dijkstra,et al.  Termination Detection for Diffusing Computations , 1980, Inf. Process. Lett..

[11]  Marcel Rene Van der Goot Semantics of VLSI synthesis , 1996 .

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

[13]  Paul I. Pénzes,et al.  The design of an asynchronous MIPS R3000 microprocessor , 1997, Proceedings Seventeenth Conference on Advanced Research in VLSI.

[14]  Andrew M Lines,et al.  Pipelined Asynchronous Circuits , 1998 .

[15]  Kevin S. Van Horn,et al.  An Approach to Concurrent Semantics Using Complete Traces , 1986 .

[16]  Mor Harchol-Balter,et al.  Tight Bounds on Expected Time to Add Correctly and Add Mostly Correctly , 1994, Inf. Process. Lett..

[17]  K. Mani Chandy,et al.  Proofs of Networks of Processes , 1981, IEEE Transactions on Software Engineering.