Automatic generation of hardware/software interfaces

Specialized hardware is necessary to reduce power consumption in mobile devices. Current design methodologies require an early partitioning of the application, allowing the hardware and software to be developed simultaneously, each adhering to a rigid interface contract. Early specification of detailed interface contracts is difficult and prevents the later migration of functionality across the interface. We address this problem using the Bluespec Codesign Language~(BCL) which permits the designer to specify the hardware-software partition in the source code, allowing the compiler to synthesize efficient software and hardware along with transactors for communication between the partitions. We will present preliminary results generated using our compiler for various hardware-software decompositions of several applications.

[1]  Gaetano Borriello,et al.  The Chinook hardware/software co-synthesis system , 1995 .

[2]  Joseph E. Stoy,et al.  Reliable design with multiple clock domains , 2006, Fourth ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2006. MEMOCODE '06. Proceedings..

[3]  Arvind,et al.  Bounded Dataflow Networks and Latency-Insensitive circuits , 2009, 2009 7th IEEE/ACM International Conference on Formal Methods and Models for Co-Design.

[4]  Gaetano Borriello,et al.  Synthesis of the hardware/software interface in microcontroller-based systems , 1992, 1992 IEEE/ACM International Conference on Computer-Aided Design.

[5]  Stan Y. Liao,et al.  An efficient implementation of reactivity for modeling hardware in the scenic design environment , 1997, DAC.

[6]  Nancy A. Lynch,et al.  An introduction to input/output automata , 1989 .

[7]  Marc Pouzet,et al.  Mixing signals and modes in synchronous data-flow systems , 2006, EMSOFT '06.

[8]  Stephen A. Edwards,et al.  SHIM: a deterministic model for heterogeneous embedded systems , 2006, IEEE Trans. Very Large Scale Integr. Syst..

[9]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[10]  Jack B. Dennis,et al.  Data flow schemas , 1972, International Sympoisum on Theoretical Programming.

[11]  David C. Luckham,et al.  Rapide: A Language and Toolset for Causal Event Modeling of Distributed System Architectures , 1998, WWCA.

[12]  Gilles Kahn,et al.  The Semantics of a Simple Language for Parallel Programming , 1974, IFIP Congress.

[13]  Arvind,et al.  Leveraging latency-insensitivity to ease multiple FPGA design , 2012, FPGA '12.

[14]  Arvind,et al.  A design flow based on modular refinement , 2010, Eighth ACM/IEEE International Conference on Formal Methods and Models for Codesign (MEMOCODE 2010).

[15]  Edward A. Lee,et al.  Static Scheduling of Synchronous Data Flow Programs for Digital Signal Processing , 1989, IEEE Transactions on Computers.

[16]  Arvind,et al.  Scheduling as Rule Composition , 2007, 2007 5th IEEE/ACM International Conference on Formal Methods and Models for Codesign (MEMOCODE 2007).

[17]  Edward A. Lee,et al.  Ptolemy: A Framework for Simulating and Prototyping Heterogenous Systems , 2001, Int. J. Comput. Simul..

[18]  Stan Y. Liao Towards a new standard for system-level design , 2000, CODES '00.

[19]  Arvind,et al.  A Comparative Evaluation of High-Level Hardware Synthesis Using Reed–Solomon Decoder , 2010, IEEE Embedded Systems Letters.

[20]  Abdoulaye Gamatié,et al.  Polychronous mode automata , 2006, EMSOFT '06.

[21]  Luciano Lavagno,et al.  Metropolis: An Integrated Electronic System Design Environment , 2003, Computer.

[22]  Arvind,et al.  Executing a Program on the MIT Tagged-Token Dataflow Architecture , 1990, IEEE Trans. Computers.

[23]  William Thies,et al.  StreamIt: A Language for Streaming Applications , 2002, CC.

[24]  José Meseguer,et al.  A formal executable semantics of Verilog , 2010, Eighth ACM/IEEE International Conference on Formal Methods and Models for Codesign (MEMOCODE 2010).

[25]  Gérard Berry,et al.  The ESTEREL Synchronous Programming Language and its Mathematical Semantics , 1984, Seminar on Concurrency.

[26]  José Meseguer,et al.  Verification of microarchitectural refinements in rule-based systems , 2011, Ninth ACM/IEEE International Conference on Formal Methods and Models for Codesign (MEMPCODE2011).

[27]  Edsger W. Dijkstra,et al.  Guarded commands, nondeterminacy and formal derivation of programs , 1975, Commun. ACM.

[28]  Pascal Raymond,et al.  The synchronous data flow programming language LUSTRE , 1991, Proc. IEEE.

[29]  Parosh Aziz Abdulla,et al.  Designing Safe, Reliable Systems Using Scade , 2004, ISoLA.

[30]  Shan Shan Huang,et al.  Liquid Metal: Object-Oriented Programming Across the Hardware/Software Boundary , 2008, ECOOP.

[31]  Ranga Vemuri,et al.  MAGELLAN: multiway hardware-software partitioning and scheduling for latency minimization of hierarchical control-dataflow task graphs , 2001, Ninth International Symposium on Hardware/Software Codesign. CODES 2001 (IEEE Cat. No.01TH8571).

[32]  Zoltán Ádám Mann,et al.  Algorithmic aspects of hardware/software partitioning , 2005, TODE.

[33]  Arvind,et al.  From WiFi to WiMAX: Techniques for High-Level IP Reuse across Different OFDM Protocols , 2007, 2007 5th IEEE/ACM International Conference on Formal Methods and Models for Codesign (MEMOCODE 2007).

[34]  Arvind,et al.  Synthesis from multi-cycle atomic actions as a solution to the timing closure problem , 2008, ICCAD 2008.

[35]  James C. Hoe,et al.  Operation-centric hardware description and synthesis , 2004, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.