Compiling path expressions into VLSI circuits

Distributed Computing - Tập 1 - Trang 150-166 - 1986
T. S. Anantharaman1, E. M. Clarke1, M. J. Foster1, B. Mishra1
1Carnegie Mellon University, Pittsburgh, USA

Tóm tắt

Path expressions were originally proposed by Campbell and Habermann [2] as a mechanism for process synchronization at the monitor level in software. Not surprisingly, they also provide a useful notation for specifying the behavior of asynchronous circuits. Motivated by these potential applications we investigate how to directly translate path expressions into hardware. Our implementation is complicated in the case of multiple path expressions by the need for synchronization on event names that are common to more than one path. Moreover, since events are inherently asynchronous in our model, all of our circuits must be self-timed. Nevertheless, the circuits produced by our construction have are proportional to N · log(N) where N is the total length of the multiple path expression under consideration. This bound holds regardless of the number of individual paths or the degree of synchronization between paths. Furthermore, if the structure of the path expression allows partitioning, the circuit can be laid out in a distributed fashion without additional area overhead.

Tài liệu tham khảo

Anantharaman TA (1985) A delay insensitive regular expression recognizer Campbell RH, Habermann AN (1974) The specification of process synchronization by path expression. In: Goos G, Hartmanis J (eds) Lecture notes in computer science, vol 16. Springer, pp 89–102 Foster MJ (1984) Specialized silicon compilers for language recognition. PhD Th, CMU July 1984 Foster MJ, Kung HT (1982) Recognize regular languages with programmable building-blocks. J Digital Syst VI(4):323–332 Floyd RW, Ullman JD (1982) The compilation of regular expressions into integrated circuits. J Assoc Comput Mach 29(3):603–622 Hoare CAR (1978) Communicating sequential processes. Commun ACM 21(8):666–677 Lauer PE, Campbell RH (1974) Formal semantics of a class of high-level primitives for coordinating concurrent processes. Acta Inf 5:297–332 Leiserson CE (1981) Area-efficient VLSI computation. PhD Th, Carnegie-Mellon University Lehman D, Pnueli A, Stavi J (1981) Impartiality, justice and fairness: The ethics of concurrent termination. Automata, Languages and Programming, pp 265–277 Li W, Lauer PE (1984) A VLSI implementation of Cosy. ASM/121, Computing Laboratory, The University of Newcastle Upon Tyne, January, 1984 Milner R (1980) A calculus of communicating systems. Lecturd notes in computer science, vol 92. Springer, Berlin Heidelberg New York Mukhopadhyay A (1979) Hardware Algorithms for nonnumeric computation. IEEE Trans Comput C-28(6):384–394 Patil S (1975) An asynchronous logic array. MAC TECHNICAL MEMORANDUM 62. Massachusetts Institute of Technology Pratt VR (1982) On the composition of processes. Symposium on Principles of Programming Languages, ACM January, 1982 Rem M (1983) Partially ordered computations, with applications to VLSI design. Eindhoven University of Technology Seitz CL (1980) Ideas about arbiters. LAMBDA First Quarter, pp 10–14