Lopht - the Logical to Physical Time Compiler
APP deposits:
- IDDN.FR.001.090041.000.S.P.2016.000.10600, deposit date
24/02/2016, for the distributed time-triggered back-end.
- IDDN.FR.001.090043.000.S.P.2016.000.10600, Deposit date
24/02/2016, for the many-core back-end.
Technology
Readiness Level: TRL4, evaluated on a large scale Airbus use case
during the ITEA3 ASSUME project and the bilateral collaboration with Airbus.
Description
Lopht is a compiler for real-time embedded systems. It takes as input
3 pieces of specification:
- A functional specification provided under the form of a
data-flow synchronous program written in
Lustre.
The
Heptagon dialect of
Lustre and its compiler are used as front-end by Lopht, but importing
is also possible from the
Scade,
SynDEx,
Signal/Polychrony or
industrial specifications based on Lustre (cf. relevant publications
1,
2,
3).
- A specification of the target implementation platform. The
architecture specification languages of Lopht allow the modeling and
use of the following platforms:
- Manycore processors with distributed shared memory and strong
support for predictability (PhD thesis of K. Didier). Code
generation is currently possible for the compute clusters of the
Kalray MPPA v2 (Bostan) and for the many-core developed jointly
with the Lip6 team (DSPINpro). Support for Kalray MPPA v2
(Coolidge) is under development (Post-doc of J. Khatib).
- Consumer multi-core processors with POWER or ARM architecture
(T1042, ARMv7). Support for predictable multi-cores of the
Infineon TC27x family is under development (collaboration with IRT
Saint-Exup\'ery).
- Distributed time-triggered systems of several types:
- IMA systems where each processors run under an ARINC653-compliant
OS (PhD thesis of T. Carle) and inter-processor communication is
done using the time-triggered communication network TTEthernet
(post-doctorate of R. Gorcitz).
- ASTERIOS-based systems programmed in the PsyC language
(collaboration with Z. Zhang in the IRT SystemX/FSF project).
- Systems programmed in the Network Code language [C8]
(collaboration with S. Fischmeister from U. Waterloo).
- A non-functional specification defining requirements of several
types:
real-time (release dates, deadlines, period), criticality and
partitioning, preemptability..
Lopht performs the automatic allocation, real-time multiprocessor
scheduling, and optimized code generation. It outputs full
implementations, including executable code and platform configuration
code, that are functionally correct and respect all the non-functional
requirements (including real-time requirements).
Its scheduling algorithms ensure an efficient use of platform
resources (processor cores, communication media, memory) through the
use of advanced optimizations: efficient handling of execution
conditions and modes, software pipelining to improve computation
throughput, post-scheduling optimization of the number of context
switches, task clubbing to reduce implementation complexity, etc. To
ensure the respect of real-time requirements, the many-core back-end
pilots the use of the worst-case execution time (WCET) analysis tool
(ait from AbsInt). By doing this, and by using a precise timing model
for the platform, it eliminates the need to adjust the
WCET values through the addition of margins to the WCET values that
are usually both large and without formal safety guarantees.
All algorithms are scalable heuristics providing good results on case
studies and synthetic examples (exact scheduling techniques
do not
scale for such complex systems). These heuristics are presented in: