Static analysis of synchronous programs in signal for efficient design of multi-clocked embedded systems

In this paper, we propose a sound abstraction for an efficient static analysis of synchronous programs describing multi-clock embedded systems in Signal. This abstraction combines the Boolean theory and numeric interval approximation to adequately address clock relations defined as combinations of logical and numerical expressions. Through a few examples, we show how the proposed solution is used to determine absence of reaction captured by empty clocks; mutual exclusion captured by two or more clocks whose associated signals never occur at the same time; or hierarchical control of component activations via clock inclusion. We also show this analysis improves the quality of the code generated automatically by the Signal compiler, e.g., a code with smaller footprint, or a code executed more efficiently thanks to optimizations enabled by the new abstraction.

[1]  P. Guernic,et al.  Arborescent canonical form of boolean expressions , 1994 .

[2]  Nicolas Halbwachs,et al.  Verification of Real-Time Systems using Linear Relation Analysis , 1997, Formal Methods Syst. Des..

[3]  Wolfgang Fichtner,et al.  Practical design of globally-asynchronous locally-synchronous systems , 2000, Proceedings Sixth International Symposium on Advanced Research in Asynchronous Circuits and Systems (ASYNC 2000) (Cat. No. PR00586).

[4]  Stephen A. Edwards,et al.  The synchronous languages 12 years later , 2003, Proc. IEEE.

[5]  Abdoulaye Gamati Designing Embedded Systems with the SIGNAL Programming Language: Synchronous, Reactive Specification , 2009 .

[6]  Mark N. Wegman,et al.  Efficiently computing static single assignment form and the control dependence graph , 1991, TOPL.

[7]  Daniel Marcos Chapiro,et al.  Globally-asynchronous locally-synchronous systems , 1985 .

[8]  Jean-Pierre Talpin,et al.  Polyhedral Analysis for Synchronous Languages , 1999, SAS.

[9]  Mirabelle Nebut,et al.  Specification and analysis of synchronous reactions , 2004, Formal Aspects of Computing.

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

[11]  Jean-Christophe Le Lann,et al.  POLYCHRONY for System Design , 2003, J. Circuits Syst. Comput..

[12]  P. Guernic,et al.  Data-flow to Von Neumann : the SIGNAL approach , 1990 .

[13]  Abdoulaye Gamatié Designing Embedded Systems with the SIGNAL Programming Language - Synchronous, Reactive Specification , 2010 .

[14]  Jean-Luc Gaudiot,et al.  Advanced Topics in Data-Flow Computing , 1991 .

[15]  Jean-Michel Chabloz,et al.  Globally-Ratiochronous, Locally-Synchronous Systems , 2012 .

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

[17]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[18]  Nicolas Halbwachs,et al.  Programming and Verifying Real-Time Systems by Means of the Synchronous Data-Flow Language LUSTRE , 1992, IEEE Trans. Software Eng..

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

[20]  Cesare Tinelli,et al.  Scaling Up the Formal Verification of Lustre Programs with SMT-Based Techniques , 2008, 2008 Formal Methods in Computer-Aided Design.

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

[22]  G. Magklis,et al.  Dynamic Frequency and Voltage Scaling for a Multiple-Clock-Domain Microprocessor , 2003, IEEE Micro.

[23]  Abdoulaye Gamatié,et al.  Toward Static Analysis of SIGNAL Programs using Interval Techniques , 2006 .

[24]  G. Alefeld,et al.  Introduction to Interval Computation , 1983 .

[25]  Nicolas Halbwachs,et al.  A synchronous language at work: the story of Lustre , 2005, Proceedings. Second ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2005. MEMOCODE '05..

[26]  Stephen A. Edwards,et al.  The Synchronous Languages Twelve Years Later , 1997 .

[27]  Patrick Cousot,et al.  Static determination of dynamic properties of programs , 1976 .

[28]  Nikolaj Bjørner,et al.  Satisfiability Modulo Theories: An Appetizer , 2009, SBMF.

[29]  Bertrand Jeannet,et al.  Dynamic Partitioning in Linear Relation Analysis: Application to the Verification of Reactive Systems , 2003, Formal Methods Syst. Des..

[30]  Toby Walsh,et al.  Handbook of Satisfiability: Volume 185 Frontiers in Artificial Intelligence and Applications , 2009 .

[31]  Abdoulaye Gamatié,et al.  An Interval-Based Solution for Static Analysis in the SIGNAL Language , 2008, 15th Annual IEEE International Conference and Workshop on the Engineering of Computer Based Systems (ecbs 2008).