Project Details
Projekt Print View

Precision-Timed Synchronous Reactive Processing

Subject Area Computer Architecture, Embedded and Massively Parallel Systems
Term from 2011 to 2020
Project identifier Deutsche Forschungsgemeinschaft (DFG) - Project number 206574318
 
Final Report Year 2020

Final Report Abstract

Safety-critical and cyber-physical systems, e. g., in the domains of avionics, automotive, healthcare or plant control, impose high demands on the functional correctness and timing predictability of embedded software. To achieve such strong correctness guarantees, software engineering has been developing a range of sound approaches such as automatic verification, real-time analysis and hybrid system modelling. The PREcision Time SYnchronous Processing (PRETSY) project explored a new holistic methodology for embedded system development combining domain-specific synchronous programming languages and dedicated precision-timed architectures. The synchronous programming model provides mathematically clean, simple and deterministic semantics. Precision-timed processing architectures provide predictable and controllable timing behaviour. By integrating these independent developments, the PRETSY approach was able to make a number of important advances. In particular, PRETSY developed novel synchronous principles for modelling and programming, static analyses for schedulability and worst-case reaction time. PRETSY also delivered a semantically coherent tool chain for correct-by-construction compilation from a high-level synchronous language to low-level code on precision-timed architectures. Besides PRETSY consolidated the new Sequential Constructiveness (SC) model of computation as a key enabler to reconcile the declarative synchronous programming approach with mainstream imperative embedded programming. Under SC the programmer can employ shared memory for communicating concurrent processes (threads) and still destructively update (re-write) the memory in a race-free manner during a single clock tick. As a result of this memory reuse, SC supports the execution of more code per synchronous cycle without sacrificing the guarantee of deterministic execution. On top of this, PRETSY has taken a major step towards object-based programming for SP by means of the SC generalisaton to the model of Policy-Synchronised Shared Memory. This provides, for the first time, support for data abstraction and general abstract data types in SP approaching SP to main-stream programming, particularly for concurrent applications. In addition, we provide a compositional model for timing interfaces to be used in what we call Interactive WCET Timing Analysis. Our WCRT algebra provides a novel timing-enriched semantics for synchronous programs. It allows us to express in a single formalism both the functional and the timing behaviour of SC programs. It support timing and data-abstraction and thus can be used as an efficient computational basis for timing analysis algorithms. The PRETSY project has brought about two new modeling languages SCEst and SCCharts, that extend the classic synchronous languages Esterel and SyncCharts with sequential constructiveness. These extensions simplify synchronous programming significantly, by allowing more compact models/programs and making causality errors less likely. The practicality of that approach has been demonstrated throughout numerous student projects using the publicly available compilers for SCEst and SCCharts. This recently led to the commercial adoption of the SCChart language in the railway domain. The Blech language, developed at Bosch and now also publicly available, heavily builds on SC principles as well.

Publications

 
 

Additional Information

Textvergrößerung und Kontrastanpassung