Specialized silicon compilers for language recognition

This thesis advocates the use of specialized silicon compilers in the design of high-performance custom VLSI circuits. A specialized silicon compiler is a design tool that accepts a behavioral specification for a circuit and produces the layout for a small, fast VLSI chip. Each specialized silicon compiler produces chips for only a small task domain. Because the task domain is restricted, a specialized silicon compiler can use application-dependent techniques for circuit design and layout, thus ensuring the efficiency of the chips that it produces. The major portion of this thesis describes a specialized silicon compiler that generates recognizers for regular languages. Given a regular expression describing a language to be recognized, the compiler automatically produces the layout for a high-speed recognizer. Besides being a prototype of a useful tool for designing recognizers, this compiler serves as a model for compilers specialized to other areas. It is used to illustrate techniques for construction and verification of specialized silicon compilers. The thesis also describes a specialized programmable layout for language recognizers. A specialized programmable layout is a chip that is designed as a target for a particular specialized silicon compiler. Parts of the circuit that are the same for all problems in the task domain are laid out in advance, while parts of the circuit that vary from one problem to another are left to be programmed. The layout described in this thesis has cells for primitive recognition operations laid out in advance and is programmed for a particular regular language by interconnecting these cells. This layout was implemented in NMOS and is programmed after fabrication by cutting metal lines using a laser.

[1]  Donald E. Thomas,et al.  The VLSI Design Automation Assistant: Prototype System , 1983, 20th Design Automation Conference Proceedings.

[2]  James B. Saxe,et al.  Dynamic-Programming Algorithms for Recognizing Small-Bandwidth Graphs in Polynomial Time , 1980, SIAM J. Algebraic Discret. Methods.

[3]  R. G. Nelson,et al.  Laser programmable redundancy and yield improvement in a 64K DRAM , 1981 .

[4]  Jay R. Southard,et al.  MacPitts: An Approach to Silicon Compilation , 1983, Computer.

[5]  Ulrich Lauther,et al.  The siemens-avesta-system for computer-aided design of MOS-standard cell circuits , 1977, DAC '77.

[6]  Richard P. Brent,et al.  Area-time Tradeoffs for VLSI Circuits , 1982 .

[7]  Willy M. C. Sansen,et al.  CALMOS : A Portable Software System for the Automatic and Interactive Layout of MOS/LSI , 1979, 16th Design Automation Conference.

[8]  A. Weinberger Large Scale Integration of MOS Complex Logic: A Layout Method , 1967 .

[9]  Helmut Jürgensen,et al.  Programmable finite automata for VLSI , 1983 .

[10]  Richard J. Lipton,et al.  Social processes and proofs of theorems and programs , 1977, POPL.

[11]  Donald E. Thomas,et al.  A Method of Automatic Data Path Synthesis , 1983, 20th Design Automation Conference Proceedings.

[12]  John Linn,et al.  A Restructurable Integrated Circuit for Implementing Programmable Digital Systems , 1982, Computer.

[13]  Jeffrey D. Ullman,et al.  The compilation of regular expressions into integrated circuits , 1980, 21st Annual Symposium on Foundations of Computer Science (sfcs 1980).

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

[15]  Michel Scholl,et al.  Design of a backend processor for a data base machine , 1980, SIGMOD '80.

[16]  Jeffrey D. Ullman,et al.  Introduction to Automata Theory, Languages and Computation , 1979 .

[17]  Ronald V. Book,et al.  Formal language theory : perspectives and open problems , 1980 .

[18]  Mihalis Yannakakis,et al.  A polynomial algorithm for the MIN CUT linear arrangement of trees , 1983, 24th Annual Symposium on Foundations of Computer Science (sfcs 1983).

[19]  Leslie G. Valiant,et al.  Universality considerations in VLSI circuits , 1981, IEEE Transactions on Computers.

[20]  H. T. Kung Why systolic architectures? , 1982, Computer.

[21]  Jeffrey D. Ullman Combining state machines and regular expressions for automatic synthesis of VLSI circuits , 1982 .

[22]  Roy H. Campbell,et al.  The specification of process synchronization by path expressions , 1974, Symposium on Operating Systems.

[23]  J.C. North,et al.  Laser coding of bipolar read-only memories , 1975, 1975 International Electron Devices Meeting.

[24]  H. T. Kung,et al.  The Design of Special-Purpose VLSI Chips , 1980, Computer.

[25]  Danny Cohen,et al.  MOSIS - The ARPA Silicon Broker , 1981 .

[26]  Richard L. Donze,et al.  Masterimage approach to VLSI design , 1983, Computer.

[27]  Harry B. Hunt,et al.  The Equivalence Problem for Regular Expressions with Intersection is Not Polynomial in Tape , 1973 .

[28]  A.V. Oppenheim,et al.  Analysis of linear digital networks , 1975, Proceedings of the IEEE.

[29]  Bernd Brügge,et al.  Generalized path expressions: A high-level debugging mechanism, , 1983, J. Syst. Softw..

[30]  H. T. Kung,et al.  Recognize Regular Languages with Programmable Building-Blocks. , 1981 .

[31]  Roger L. Haskin Hardware for Searching Very Large Text Datahases , 1980, CAW '80.

[32]  Neil W. Bergmann,et al.  A Case Study of the F.I.R.S.T. Silicon Compiler , 1983 .

[33]  Robert W. Dutton,et al.  Dumbo, A Schematic-to-Layout Compiler , 1983 .

[34]  Sten Fredrik Andler,et al.  Predicate path expressions: a high-level synchronization mechanism , 1979 .

[35]  Charles E. Leiserson,et al.  How to assemble tree machines , 1984 .

[36]  S C Kleene,et al.  Representation of Events in Nerve Nets and Finite Automata , 1951 .

[37]  Arnold L. Rosenberg,et al.  The Diogenes Approach to Testable Fault-Tolerant Arrays of Processors , 1983, IEEE Transactions on Computers.

[38]  David S. Johnson,et al.  COMPLEXITY RESULTS FOR BANDWIDTH MINIMIZATION , 1978 .

[39]  Jeffrey D. Ullman,et al.  Experience with a regular expression compiler , 1983 .

[40]  H. T. Kung,et al.  Systolic Arrays for (VLSI). , 1978 .