Correct-by-construction model-based design of reactive streaming software for multi-core embedded systems

We present a model-based design approach toward correct-by-construction implementations of reactive streaming software for multi-core systems. A system’s implementation is derived from a high-level process network model by applying semantics-preserving model transformations. The so-called fixed priority process networks (FPPNs) are programmed independently from the execution platform and combine streaming and reactive control behavior with task parallelism for utilizing multi-core processing. We first define the FPPN sequential execution semantics that specifies precedence constraints between job executions of different tasks. Applications are thus rendered such that for any given test stimuli, a deterministic output response is expected. Furthermore, we define the FPPN real-time semantics based on a timed-automata modeling framework. This is provably a functionally equivalent semantics specifying the real-time execution of FPPNs and enabling runtime managers for scheduling jobs on multi-cores. A model transformation framework has been developed for deriving executable implementations of FPPNs on the BIP (Behavior–Interaction–Priority) runtime environment, ported on multi-core platforms. Schedulability is established by static analysis of the FPPN, and it is guaranteed by construction. Thus, the developers do not need to program low-level real-time OS services (e.g., for task management) and applications are amenable to testing, as opposed to if their outputs would depend on timing behavior. We have successfully ported a guidance-navigation and control application of a satellite system, onto a radiation hardened multi-core platform. Various implementation scenarios for efficiently utilizing HW resources are illustrated, and the test results are discussed.

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

[2]  Joseph Sifakis,et al.  Component Assemblies in the Context of Manycore , 2011, FMCO.

[3]  Manfred Broy,et al.  Service-Oriented Modeling of CoCoME with Focus and AutoFocus , 2007, CoCoME.

[4]  Marius Bozga,et al.  A Timed-Automata Based Middleware for Time-Critical Multicore Applications , 2015, 2015 IEEE International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing Workshops.

[5]  Manfred Broy,et al.  The Design of Distributed Systems - An Introduction to FOCUS-revised version , 1992 .

[6]  Sagar Chaki,et al.  DMPL: Programming and Verifying Distributed Mixed Synchrony and Mixed Critical Software , 2016 .

[7]  Panagiotis Katsaros,et al.  A Process Network Model for Reactive Streaming Software with Deterministic Task Parallelism , 2018, FASE.

[8]  J. Koch,et al.  Model-Based System Design of Time-Triggered Architectures - Avionics Case Study , 2006, 2006 ieee/aiaa 25TH Digital Avionics Systems Conference.

[9]  Kees G. W. Goossens,et al.  CoMPSoC: A template for composable and predictable multi-processor system on chips , 2009, TODE.

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

[11]  Edward A. Lee,et al.  Taming heterogeneity - the Ptolemy approach , 2003, Proc. IEEE.

[12]  Jacques Combaz,et al.  Time-Critical Applications on Multicore Platforms , 2014 .

[13]  Lothar Thiele,et al.  DOL-BIP-Critical: a tool chain for rigorous design and implementation of mixed-criticality multi-core systems , 2018, Des. Autom. Embed. Syst..

[14]  Martin Feilkas,et al.  AutoFocus 3 - A Scientific Tool Prototype for Model-Based Development of Component-Based, Reactive, Distributed Systems , 2007, Model-Based Engineering of Embedded Real-Time Systems.

[15]  Panagiotis Katsaros,et al.  Process Network Models for Embedded System Design Based on the Real-Time BIP Execution Engine , 2018, MeTRiD@ETAPS.

[16]  Frédéric Boniol,et al.  Scheduling Dependent Periodic Tasks without Synchronization Mechanisms , 2010, 2010 16th IEEE Real-Time and Embedded Technology and Applications Symposium.

[17]  Julien Delange,et al.  TASTE: A Real-Time Software Engineering Tool-Chain Overview, Status, and Future , 2011, SDL Forum.

[18]  Mohamed Jmaiel,et al.  From AADL Model to LNT Specification , 2015, Ada-Europe.

[19]  Christel Baier,et al.  Principles of Model Checking (Representation and Mind Series) , 2008 .

[20]  Twan Basten,et al.  Reactive process networks , 2004, EMSOFT '04.

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

[22]  Marius Bozga,et al.  Mixed-Critical Systems Design with Coarse-Grained Multi-core Interference , 2016, ISoLA.

[23]  Soonhoi Ha,et al.  PeaCE: A hardware-software codesign environment for multimedia embedded systems , 2008, TODE.

[24]  Lefteris Angelis,et al.  Regression-Based Statistical Bounds on Software Execution Time , 2017, VECoS.

[25]  Joseph Sifakis,et al.  Model-Based Implementation of Parallel Real-Time Systems , 2013, FASE.

[26]  Wang Yi,et al.  TIMES: A Tool for Schedulability Analysis and Code Generation of Real-Time Systems , 2003, FORMATS.

[27]  A. H. Ghamarian Timing analysis of synchronous data flow graphs , 2008 .

[28]  Joseph Sifakis,et al.  Model-based implementation of real-time applications , 2010, EMSOFT '10.

[29]  Dianfu Ma,et al.  Towards a formal semantics for the AADL behavior annex , 2009, 2009 Design, Automation & Test in Europe Conference & Exhibition.

[30]  Marius Bozga,et al.  Models for deterministic execution of real-time multiprocessor applications , 2015, 2015 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[31]  Dianfu Ma,et al.  From AADL to Timed Abstract State Machines: A verified model transformation , 2014, J. Syst. Softw..

[32]  Peter H. Feiler,et al.  The Architecture Analysis & Design Language (AADL): An Introduction , 2006 .

[33]  Jérôme Hugues,et al.  Towards the systematic analysis of non-functional properties in Model-Based Engineering for real-time embedded systems , 2018, Sci. Comput. Program..

[34]  Jürgen Dingel,et al.  A survey of timed automata for the development of real-time systems , 2013, Comput. Sci. Rev..

[35]  Frédéric Boniol,et al.  Developing critical embedded systems on multicore architectures: the PRELUDE-SCHEDMCORE toolset , 2011, RTNS.

[36]  Laurent Pautet,et al.  From the prototype to the final embedded system using the Ocarina AADL tool suite , 2008, TECS.

[37]  Selma Saidi On the Benefits of Multicores for Real-Time Systems , 2017, 2017 Euromicro Conference on Digital System Design (DSD).

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

[39]  Bernhard Schätz,et al.  Tool Supported Specification and Simulation of Distributed Systems , 1998, PDSE.