Abstract Specification of Synchronous Data Types for VLSI and Proving the Correctness of Systolic Network Implementations

A combined methodology is presented for specifying abstract synchronous data types and proving the correctness of systolic network implementations. It is shown that an extension of the Parnas trace method of specifying software modules containing distinct access programs yields a natural method of specifying abstract synchronous data types that possess distinct access operators and are intended for implementation in VLSI. Associated systematic proof techniques are presented, and the correctness of several novel systolic network implementations of familiar data types is established. The methodology appears to be naturally suited to systolic network implementations with their associated rippling of control flow and data flow. The important distinction between systolic control-flow networks and systolic data-flow networks is presented. >

[1]  H. T. Kung,et al.  Direct VLSI Implementation of Combinatorial Algorithms , 1979 .

[2]  Al Davis,et al.  A Wavefront Notation Tool for VLSI Array Design , 1981 .

[3]  H. T. Kung,et al.  A Two-Level Pipelined Systolic Array for Convolutions , 1981 .

[4]  Ellis Horowitz,et al.  Abstract data types and software validation , 1978, CACM.

[5]  Philip L. Lehman A Systolic (VLSI) Array for Processing Simple Relational Queries , 1981 .

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

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

[8]  Sun-Yuan Kung,et al.  WAVEFRONT ARRAY PROCESSOR: ARCHITECTURE, LANGUAGE AND APPLICATIONS. , 1982 .

[9]  Charles E. Leiserson,et al.  Optimizing synchronous systems , 1981, 22nd Annual Symposium on Foundations of Computer Science (sfcs 1981).

[10]  H. T. Kung,et al.  Two-level pipelined systolic array for multidimensional convolution , 1983, Image Vis. Comput..

[11]  Daniel Hoffman The trace specification of communications protocols , 1985, IEEE Transactions on Computers.

[12]  John V. Guttag,et al.  Notes on Type Abstraction (Version 2) , 1980, IEEE Transactions on Software Engineering.

[13]  K. Mani Chandy,et al.  Proving safety and liveness of communicating processes with examples , 1982, PODC '82.

[14]  Mikhail J. Atallah,et al.  A Generalized Dictionary Machine for VLSI , 1985, IEEE Transactions on Computers.

[15]  H. T. Kung Let's Design Algorithms for VLSI Systems , 1979 .

[16]  John McLean,et al.  A Formal Method for the Abstract Specification of Software , 1984, JACM.

[17]  Charles E. Leiserson Systolic Priority Queues , 1979 .

[18]  David Lorge Parnas,et al.  Using assertions about traces to write abstract specifications for software modules , 1978, ECI.

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

[20]  Rami G. Melhem,et al.  A Mathematical Model for the Verification of Systolic Networks , 1984, SIAM J. Comput..

[21]  H. T. Kung,et al.  Numerically Stable Solution of Dense Systems of Linear Equations Using Mesh-Connected Processors , 1984 .

[22]  H. T. Kung,et al.  Matrix Triangularization By Systolic Arrays , 1982, Optics & Photonics.

[23]  H. T. Kung,et al.  Systolic (VLSI) arrays for relational database operations , 1980, SIGMOD '80.

[24]  Leslie Lamport,et al.  The ``Hoare Logic'' of CSP, and All That , 1984, TOPL.

[25]  Arnold L. Rosenberg,et al.  A Dictionary Machine (for VLSI) , 1982, IEEE Transactions on Computers.

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