Separate compilation of hierarchical real-time programs into linear-bounded Embedded Machine code

Hierarchical Timing Language (HTL) is a coordination language for distributed, hard real-time applications. HTL is a hierarchical extension of Giotto and, like its predecessor, based on the logical execution time (LET) paradigm of real-time programming. Giotto is compiled into code for a virtual machine, called the Embedded Machine (or E machine). If HTL is targeted to the E machine, then the hierarchical program structure needs to be flattened; the flattening makes separate compilation difficult, and may result in E machine code of exponential size. In this paper, we propose a generalization of the E machine, which supports a hierarchical program structure at runtime through real-time trigger mechanisms that are arranged in a tree. We present the generalized E machine, and a modular compiler for HTL that generates code of linear size. The compiler may generate code for any part of a given HTL program separately in any order.

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

[2]  Michel Poize,et al.  TAXYS=Esterel+Kronos. A tool for verifying real-time properties of embedded systems , 2001, Proceedings of the 40th IEEE Conference on Decision and Control (Cat. No.01CH37228).

[3]  Stavros Tripakis,et al.  Modular code generation from synchronous block diagrams: modularity vs. code size , 2009, POPL '09.

[4]  Zhong Shao,et al.  Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages , 2009, POPL 2009.

[5]  Daniel T. Iercan,et al.  Porting Hierarchical Timing Language on a microcontroller based platform , 2009, 2009 5th International Symposium on Applied Computational Intelligence and Informatics.

[6]  Alberto L. Sangiovanni-Vincentelli,et al.  Benefits and challenges for platform-based design , 2004, Proceedings. 41st Design Automation Conference, 2004..

[7]  Arkadeb Ghosal,et al.  A hierarchical coordination language for reliable real -time tasks , 2008 .

[8]  Christoph M. Kirsch,et al.  The JAviator: A High-Payload Quadrotor UAV with High-Level Programming Capabilities , 2008 .

[9]  Alberto L. Sangiovanni-Vincentelli,et al.  Logical Reliability of Interacting Real-Time Tasks , 2008, 2008 Design, Automation and Test in Europe.

[10]  Edward A. Lee,et al.  Timed multitasking for real-time embedded software , 2003 .

[11]  Christoph M. Kirsch,et al.  Java takes flight: time-portable real-time programming with exotasks , 2007, LCTES '07.

[12]  Giorgio C. Buttazzo,et al.  HARD REAL-TIME COMPUTING SYSTEMS Predictable Scheduling Algorithms and Applications , 2007 .

[13]  Alberto L. Sangiovanni-Vincentelli,et al.  A hierarchical coordination language for interacting real-time tasks , 2006, EMSOFT '06.

[14]  Grigori Fursin,et al.  Probabilistic source-level optimisation of embedded programs , 2005, LCTES '05.

[15]  Thomas A. Henzinger,et al.  The embedded machine: predictable, portable real-time code , 2002, PLDI '02.

[16]  Stavros Tripakis,et al.  From simulink to SCADE/lustre to TTA: a layered approach for distributed embedded applications , 2003, LCTES '03.

[17]  Rafael Castro-Linares,et al.  Trajectory tracking for non-holonomic cars: A linear approach to controlled leader-follower formation , 2010, 49th IEEE Conference on Decision and Control (CDC).

[18]  Thomas A. Henzinger,et al.  A Giotto-Based Helicopter Control System , 2002, EMSOFT.

[19]  Emilia Farcas,et al.  Transparent distribution of real-time components based on logical execution time , 2005, LCTES '05.

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

[21]  Thomas A. Henzinger,et al.  A programmable microkernel for real-time systems , 2005, VEE '05.

[22]  Christoph M. Kirsch,et al.  Low-latency time-portable real-time programming with Exotasks , 2009, TECS.

[23]  Thomas A. Henzinger,et al.  Giotto: a time-triggered language for embedded programming , 2001, Proc. IEEE.

[24]  Giorgio Buttazzo,et al.  Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications , 1997 .

[25]  Stavros Tripakis,et al.  Modular Code Generation from Triggered and Timed Block Diagrams , 2008, 2008 IEEE Real-Time and Embedded Technology and Applications Symposium.