960 likes | 1.41k Views
Giotto. A Time-Triggered Language for Embedded Programming. Thomas A. Henzinger, Benjamin Horowitz, Christoph M. Kirsch UC Berkeley. Embedded Programming. Giotto is a time-triggered and platform independent programming language Giotto aims at hard real-time applications
E N D
Giotto A Time-Triggered Language for Embedded Programming Thomas A. Henzinger, Benjamin Horowitz, Christoph M. Kirsch UC Berkeley
Embedded Programming • Giotto is a time-triggered and platform independent programming language • Giotto aims at hard real-time applications • Giotto consists of ports, tasks, modes • Giotto works, with VxWorks, Ptolemy
Functionality & Timing Application decomposes designs simulates Control Engineer Control Design Matlab! First Challenge Implementation decomposes implements tests Software Engineer Platform Giotto!
Preserving Structure Control Design Control Engineer decomposes Second Challenge Software Engineer decomposes Implementation
Compilation Software Engineer Implementation decomposes implements tests Third Challenge Platform
Abstract Syntax of a Task State f
Abstract Syntax of a Task State Input ports f
Abstract Syntax of a Task State Input ports f Output ports
Abstract Syntax of a Task State Input ports f Output ports Frequency
Semantics of a Task State Input ports f Output ports Frequency 10ms
Semantics of a Task Task State Input ports f Output ports Frequency 10ms Time
Semantics of a Task Task State Input ports f Output ports Frequency 10ms Time Read @ time t
Semantics of a Task Task State Input ports f Output ports Frequency 10ms Time Read @ time t Write @ time t+10ms
Semantics of a Task Task State Input ports f Output ports Frequency 10ms Don’t care Time Read @ time t Write @ time t+10ms
A Connection State Input ports f Output ports
Abstract Syntax of a Connection State Constant f
Abstract Syntax of a Connection State Input port f Output port
Semantics of a Connection Task State State f f Time
Semantics of a Connection Task State State f f Time Write @ time t
Semantics of a Connection Task State State f f Time Write @ time t Read @ time t
Semantics of a Connection Task State State f f 0 time Time Write @ time t Read @ time t
Two Tasks Input ports P Output ports
Two Tasks Input ports P Output ports Input ports Q Output ports
Connections P Q
Connections P Q
Connections P Q
Different Periodicity Task P Q Q Time
Semantics Task P Q Q Time t t+10ms
Semantics Task P Q Q Time t t t+5ms t+5ms t+10ms
Semantics Task P Q Q Time t t
Connections P Q
Semantics Task P Q Q Time t t
Connections P Q
Semantics Task P Q Q Time t t
Semantics Task P Q Q Don’t care Time t t+5ms
Semantics Task P Q Q Time t+5ms t+5ms
Semantics Task P Q Q Time t+5ms t+5ms
Semantics Task P Q Q Time t+5ms t+5ms
Semantics Task P Q Q t+10ms t+10ms
Decomposition • Multi-modal control • Fault tolerance • Events • Resource sharing • Uncertain environments Second Challenge:
Abstract Syntax of a Mode Entry Port P Q
Abstract Syntax of a Mode Entry Port P Q Period
Semantics of a Mode Entry Port P 1 Q 2 Period 10ms