Models of computation for embedded system design

In the near future, most objects of common use will contain electronics to augment their functionality, performance, and safety. Hence, time-to-market, safety, low-cost, and reliability will have to be addressed by any system design methodology. A fundamental aspect of system design is the specification process. We advocate using an unambiguous formalism to represent design specifications and design choices. This facilitates tremendously efficiency of specification, formal verification, and correct design refinement, optimization, and implementation. This formalism is often called model of computation. There are several models of computation that have been used, but there is a lack of consensus among researchers and practitioners on the “right” models to use. To the best of our knowledge, there has also been little effort in trying to compare rigorously these models of computation. In this paper, we review current models of computation and compare them within a framework that has been recently proposed. This analysis demonstrates both the need for heterogeneity to capture the richness of the application domains, and the need for unification for optimization and verification purposes. We describe in detail our CFSM model of computation, illustrating its suitability for design of reactive embedded systems and we conclude with some general considerations about the use of models of computations in future design systems.

[1]  R. Karp,et al.  Properties of a model for parallel computations: determinacy , 1966 .

[2]  Jörg Desel,et al.  Proving Nonreachability by Modulo-Invariants , 1996, Theor. Comput. Sci..

[3]  Rudy Lauwereins,et al.  Static scheduling of multi-rate and cyclo-static DSP-applications , 1994, Proceedings of 1994 IEEE Workshop on VLSI Signal Processing.

[4]  Nicholas Carriero,et al.  Linda in context , 1989, CACM.

[5]  James C. Browne,et al.  TDFL: A Task-Level Dataflow Language , 1990, J. Parallel Distributed Comput..

[6]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[7]  Rudy Lauwereins,et al.  Geometric parallelism and cyclo-static data flow in GRAPE-II , 1994, Proceedings of IEEE 5th International Workshop on Rapid System Prototyping.

[8]  Doron Drusinsky,et al.  On the power of bounded concurrency I: finite automata , 1994, JACM.

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

[10]  Jörg Desel,et al.  Free choice Petri nets , 1995 .

[11]  Luciano Lavagno,et al.  Hardware-software co-design of embedded systems: the POLIS approach , 1997 .

[12]  Tomas Rokicki Representing and modeling digital circuits , 1994 .

[13]  William B. Ackerman,et al.  Data Flow Languages , 1899, Computer.

[14]  Amir Pnueli,et al.  Marked Directed Graphs , 1971, J. Comput. Syst. Sci..

[15]  P. Azema,et al.  The Fomal Description Technique LOTOS , 2001 .

[16]  Luciano Lavagno,et al.  Formal verification of embedded systems based on CFSM networks , 1996, DAC '96.

[17]  Sérgio Vale Aguiar Campos,et al.  Symbolic Model Checking , 1993, CAV.

[18]  Patrice Godefroid Using Partial Orders to Improve Automatic Verification Methods , 1990, CAV.

[19]  C. Petri Kommunikation mit Automaten , 1962 .

[20]  Edward A. Lee,et al.  Comparing models of computation , 1996, Proceedings of International Conference on Computer Aided Design.

[21]  Michael von der Beeck,et al.  A Comparison of Statecharts Variants , 1994, FTRTFT.

[22]  G. Plotkin,et al.  Proof, language, and interaction: essays in honour of Robin Milner , 2000 .

[23]  HarelDavid,et al.  On the power of bounded concurrency I , 1994 .

[24]  Grzegorz Rozenberg,et al.  Elementary Transition Systems , 1990, Theor. Comput. Sci..

[25]  Thomas A. Henzinger,et al.  The theory of hybrid automata , 1996, Proceedings 11th Annual IEEE Symposium on Logic in Computer Science.

[26]  Edward A. Lee,et al.  Scheduling dynamic dataflow graphs with bounded memory using the token flow model , 1993, 1993 IEEE International Conference on Acoustics, Speech, and Signal Processing.

[27]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[28]  Peter Radford,et al.  Petri Net Theory and the Modeling of Systems , 1982 .

[29]  Luciano Lavagno,et al.  Quasi-Static Scheduling of Embedded Software Using Free-Choice Petri Nets , 1999 .

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

[31]  Carla S. Williams,et al.  An integrated data flow visual language and software development environment , 1991, J. Vis. Lang. Comput..

[32]  Robert K. Brayton,et al.  Sequential circuit design using synthesis and optimization , 1992, Proceedings 1992 IEEE International Conference on Computer Design: VLSI in Computers & Processors.

[33]  A. O. Fernandes,et al.  Hardware-software codesign of embedded systems , 1998, Proceedings. XI Brazilian Symposium on Integrated Circuit Design (Cat. No.98EX216).

[34]  Antti Valmari A stubborn attack on state explosion , 1992, Formal Methods Syst. Des..

[35]  Nicolas Halbwachs,et al.  Implementing Reactive Programs on Circuits: A Hardware Implementation of LUSTRE , 1991, REX Workshop.

[36]  Nicolas Halbwachs,et al.  Synchronous Programming of Reactive Systems , 1992, CAV.

[37]  E.A. Lee,et al.  Synchronous data flow , 1987, Proceedings of the IEEE.

[38]  A. Pnueli,et al.  STATEMATE: a working environment for the development of complex reactive systems , 1988, [1988] Proceedings. The Third Israel Conference on Computer Systems and Software Engineering.

[39]  J. A Brzozowski,et al.  Advances in asynchronous circuit theory. Part I : gate and unbounded inertial delay , 1990 .

[40]  P. Le Guernic,et al.  Hybrid dynamical systems theory and the Signal language , 1990 .

[41]  Luciano Lavagno,et al.  Deriving Petri Nets for Finite Transition Systems , 1998, IEEE Trans. Computers.

[42]  Wayne H. Wolf,et al.  An Automaton Model for Scheduling Constraints in Synchronous Machines , 1995, IEEE Trans. Computers.

[43]  Joseph E. Stoy,et al.  Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory , 1981 .

[44]  Albert Benveniste,et al.  The synchronous approach to reactive and real-time systems , 1991 .

[45]  Edward A. Lee,et al.  A DENOTATIONAL FRAMEWORK FOR COMPARING MODELS OF COMPUTATION , 1997 .

[46]  Edward A. Lee,et al.  Dataflow process networks , 1995, Proc. IEEE.

[47]  A. Hugo A Hardware Implementation of Pure Esterel , 1991 .

[48]  Robert E. Milne,et al.  The formal description technique LOTOS : By P.H.J. van Eijk, C.A. Vissers and M. Diaz, eds. North-Holland, Amsterdam, Netherlands, 1989, Price $102.50 (hardback), ISBN 0-444-87267-1. , 1990 .

[49]  Luciano Lavagno,et al.  Hardware-Software Co-Design of Embedded Systems , 1997 .

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

[51]  LavagnoLuciano,et al.  Deriving Petri Nets from Finite Transition Systems , 1998 .

[52]  Arvind,et al.  The U-Interpreter , 1982, Computer.

[53]  Alberto L. Sangiovanni-Vincentelli,et al.  Schedule validation for embedded reactive real-time systems , 1997, DAC.

[54]  Donald E. Thomas,et al.  The Verilog® Hardware Description Language , 1990 .

[55]  R. P. Kurshan,et al.  Automata-theoretic verification of coordinating processes , 1994 .

[56]  Antti Valmari,et al.  A stubborn attack on state explosion , 1990, Formal Methods Syst. Des..

[57]  Thomas R. Shiple,et al.  Constructive analysis of cyclic circuits , 1996, Proceedings ED&TC European Design and Test Conference.

[58]  Alberto L. Sangiovanni-Vincentelli,et al.  Hybrid Control for Automotive Engine Management: The Cut-Off Case , 1998, HSCC.

[59]  Amnon Naamad,et al.  Statemate: a working environment for the development of complex reactive systems , 1988, ICSE '88.

[60]  Wolfgang Reisig Petri Nets: An Introduction , 1985, EATCS Monographs on Theoretical Computer Science.

[61]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[62]  Gérard Berry,et al.  The foundations of Esterel , 2000, Proof, Language, and Interaction.

[63]  Randal E. Bryant,et al.  Graph-Based Algorithms for Boolean Function Manipulation , 1986, IEEE Transactions on Computers.

[64]  Dominique Perrin,et al.  Finite Automata , 1958, Philosophy.

[65]  Edward A. Lee,et al.  Software Synthesis from Dataflow Graphs , 1996 .

[66]  Frédéric Boussinot,et al.  The ESTEREL language , 1991, Proc. IEEE.