Improved False Causal Loop Detection in Polychronous Specificationof Embedded Software

As opposed to single clocked synchronous programming paradigms, polychronous formalism allows specification of concurrent data flow computation on signals such that various data flows can evolve asynchronous with respect to each other. Explicit constraints and constraints implied by the syntactic structures impart certain intrinsic properties to models specified polychronously. One of the major steps in designing a synthesis engine for polychronous specifications is the characterization of specified models into categories such as inherently sequential or inherently multi-threaded. In this paper, we are concerned with sequentially implementable polychronous specification where computation is divided into a totally ordered sequence of logical instants. Data flow computation within an instant happens based on the implied data flow order. This order or data dependency often varies from one instant to another. Thus determining if there is an instant at which the data flow order forms a causal cycle is an important problem. In the current polychronous compilers, such as SIGNAL compiler and EmCodeSyn, this is solved without due effort, by rejecting any program which has a buffer-free structural cycle. However, a clocked dependency graph can be used to construct logical constraints representing the instants with a possible causal loop. The satisfiability of such constraints would imply that such a loop is realizable and hence the specification has a possible deadlock. The reachability of this instant with a given set of initial conditions would verify if the program should be rejected. In the past, the work on such constraints and their satisfiability has not been implemented even though for pure Boolean signals and clocks this could have been done using a satisfiability solver. With the advent to SAT modulo theory (SMT) solvers, this can now be extended to a more general class of specifications. Moreover, model checking on an abstraction of the specification can provide more information about the reachability of instants at which cyclic data dependency is realized. This paper presents an improved polychronous synthesis tool accepting a much larger class of specifications than could be done before. In our experimental results, we demonstrate the capabilities of our causality analysis methods and show that our synthesis tool performs better than previous strategies, including our own past work.

[1]  David Nowak,et al.  Synchronous structures , 1999, Inf. Comput..

[2]  Ellen Sentovich,et al.  Quick conservative causality analysis , 1997, Proceedings. Tenth International Symposium on System Synthesis (Cat. No.97TB100114).

[3]  Pascal Aubry,et al.  Synchronous distribution of SIGNAL programs , 1996, Proceedings of HICSS-29: 29th Hawaii International Conference on System Sciences.

[4]  Jehoshua Bruck,et al.  Algorithmic Aspects of Cyclic Combinational Circuit Synthesis , 2003 .

[5]  Thierry Gautier,et al.  Programming real-time applications with SIGNAL , 1991, Proc. IEEE.

[6]  Sandeep K. Shukla,et al.  SMT based false causal loop detection during code synthesis from Polychronous specifications , 2011, Ninth ACM/IEEE International Conference on Formal Methods and Models for Codesign (MEMPCODE2011).

[7]  Sandeep K. Shukla,et al.  Faster Software Synthesis Using Actor Elimination Techniques for Polychronous Formalism , 2010, 2010 10th International Conference on Application of Concurrency to System Design.

[8]  Robert de Simone,et al.  Instantaneous Termination in Pure Esterel , 2003, SAS.

[9]  Sandeep K. Shukla,et al.  MRICDF: A Polychronous Model for Embedded Software Synthesis , 2010, Synthesis of Embedded Software.

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

[11]  Sandeep K. Shukla,et al.  An alternative polychronous model and synthesis methodology for model-driven embedded software , 2010, 2010 15th Asia and South Pacific Design Automation Conference (ASP-DAC).

[12]  Paul Le Guernic,et al.  Distributed Implementation of SIGNAL: Scheduling & Graph Clustering , 1994, FTRTFT.

[13]  Paul Le Guernic,et al.  Compositional design of isochronous systems , 2008, 2008 Design, Automation and Test in Europe.

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

[15]  Paul Caspi,et al.  A functional extension of Lustre , 1995 .

[16]  Klaus Schneider,et al.  Averest: Specification, Verification, and Implementation of Reactive Systems , 2005 .

[17]  Gérard Berry,et al.  The constructive semantics of pure esterel , 1996 .

[18]  Neil V. Murray,et al.  Prime Implicate Tries , 2009, TABLEAUX.

[19]  Nicolas Halbwachs,et al.  On the Symbolic Analysis of Combinational Loops in Circuits and Synchronous Programs , 1995 .

[20]  Abdoulaye Gamatié,et al.  Static analysis of synchronous programs in signal for efficient design of multi-clocked embedded systems , 2011, LCTES '11.

[21]  Jehoshua Bruck,et al.  The synthesis of cyclic combinational circuits , 2003, Proceedings 2003. Design Automation Conference (IEEE Cat. No.03CH37451).

[22]  Stephen A. Edwards,et al.  Code Generation in the Columbia Esterel Compiler , 2007, EURASIP J. Embed. Syst..

[23]  Edmund M. Clarke,et al.  Design and Synthesis of Synchronization Skeletons Using Branching Time Temporal Logic , 2008, 25 Years of Model Checking.

[24]  Joseph Sifakis,et al.  Specification and verification of concurrent systems in CESAR , 1982, Symposium on Programming.

[25]  Sharad Malik Analysis of cyclic combinational circuits , 1994, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[26]  Sumit Gulwani,et al.  From program verification to program synthesis , 2010, POPL '10.

[27]  Sandeep K. Shukla,et al.  New Techniques for Sequential Software Synthesis from a Polychronous Data Flow Formalism , 2011 .

[28]  L. D. Moura,et al.  Satisfiability modulo theories , 2011, Commun. ACM.

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

[30]  Gérard Berry,et al.  The Esterel Synchronous Programming Language: Design, Semantics, Implementation , 1992, Sci. Comput. Program..

[31]  Edmund M. Clarke,et al.  Design and Synthesis of Synchronization Skeletons Using Branching-Time Temporal Logic , 1981, Logic of Programs.

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

[33]  Robert de Simone,et al.  Curing schizophrenia by program rewriting in Esterel , 2004, Proceedings. Second ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2004. MEMOCODE '04..

[34]  Kedar S. Namjoshi,et al.  Efficient Analysis of Cyclic Definitions , 1999, CAV.

[35]  Klaus Schneider,et al.  The Synchronous Programming Language Quartz , 2009 .