Geometry of synthesis III: resource management through type inference

Geometry of Synthesis is a technique for compiling higher-level programming languages into digital circuits via their game semantic model. Ghica (2007) first presented the key idea, then Ghica and Smith (2010) gave a provably correct compiler into asynchronous circuits for Syntactic Control of Interference (SCI), an affine-typed version of Reynolds's Idealized Algol. Affine typing has the dual benefits of ruling out race conditions through the type system and having a finite-state game-semantic model for any term, which leads to a natural circuit representation and simpler correctness proofs. In this paper we go beyond SCI to full Idealized Algol, enhanced with shared-memory concurrency and semaphores. Compiling ICA proceeds in three stages. First, an intermediate type system called Syntactic Control of Concurrency (SCC), is used to statically determine "concurrency bounds" on all identifiers in the program. Then, a program transformation called serialization is applied to the program to translate it into an equivalent SCC program in which all concurrency bounds are set to the unit. Finally, the resulting program can be then compiled into asynchronous circuits using a slightly enhanced version of the GoS II compiler, which can handle assignable variables used in non-sequential contexts.

[1]  Mary Sheeran,et al.  Lava: hardware design in Haskell , 1998, ICFP '98.

[2]  Alain J. Martin Programming in VLSI: from communicating processes to delay-insensitive circuits , 1991 .

[3]  Uday S. Reddy,et al.  Global state considered unnecessary: An introduction to object-based semantics , 1996, LISP Symb. Comput..

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

[5]  C. A. R. Hoare,et al.  Developments in concurrency and communication , 1991 .

[6]  John C. Reynolds,et al.  Syntactic Control of Inference, Part 2 , 1989, ICALP.

[7]  Hongseok Yang,et al.  Type reconstruction for syntactic control of interference. 2 , 1998, Proceedings of the 1998 International Conference on Computer Languages (Cat. No.98CB36225).

[8]  Steve Furber,et al.  Principles of Asynchronous Circuit Design: A Systems Perspective , 2010 .

[9]  Dan R. Ghica,et al.  On the Compositionality of Round Abstraction , 2010, CONCUR.

[10]  Peter W. O'Hearn,et al.  Syntactic Control of Interference Revisited , 1999, Theor. Comput. Sci..

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

[12]  Dan R. Ghica,et al.  Function Interface Models for Hardware Compilation: Types, Signatures, Protocols , 2009, ArXiv.

[14]  Andrzej S. Murawski,et al.  Compositional Model Extraction for Higher-Order Concurrent Programs , 2006, TACAS.

[15]  Walid A. Najjar,et al.  Impact of Loop Unrolling on Area, Throughput and Clock Frequency in ROCCC: C to VHDL Compiler for FPGAs , 2006, ARC.

[16]  G. M. Kelly,et al.  Coherence for compact closed categories , 1980 .

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

[18]  Andrzej S. Murawski,et al.  Syntactic control of concurrency , 2006, Theor. Comput. Sci..

[19]  Seth Copen Goldstein,et al.  Compiling Application-Specific Hardware , 2002, FPL.

[20]  Dan R. Ghica A structured approach to VLSI design , 2007 .

[21]  John C. Reynolds,et al.  The essence of ALGOL , 1997 .

[22]  Guy McCusker,et al.  A Graph Model for Imperative Computation , 2009, Log. Methods Comput. Sci..

[23]  Dan R. Ghica,et al.  Geometry of synthesis: a structured approach to VLSI design , 2007, POPL '07.

[24]  Andrzej S. Murawski,et al.  Full Abstraction Without Synchronization Primitives , 2010, MFPS.

[25]  Wayne Luk,et al.  Structured hardware compilation of parallel programs , 1994 .

[26]  Gary L. Peterson,et al.  Myths About the Mutual Exclusion Problem , 1981, Inf. Process. Lett..

[27]  Dan R. Ghica,et al.  Geometry of Synthesis II: From Games to Delay-Insensitive Circuits , 2010, MFPS.

[28]  Andrzej S. Murawski,et al.  Angelic semantics of fine-grained concurrency , 2008, Ann. Pure Appl. Log..

[29]  John C. Reynolds,et al.  Syntactic control of interference , 1978, POPL.

[30]  Andrzej S. Murawski,et al.  Angelic Semantics of Fine-Grained Concurrency , 2004, FoSSaCS.

[31]  Jens Sparsø,et al.  Principles of Asynchronous Circuit Design , 2001 .

[32]  Assaf J. Kfoury A linearization of the Lambda-calculus and consequences , 2000, J. Log. Comput..