Title: Giotto: A TimeTriggered Language for Embedded Programming
1GiottoA Time-Triggered Language for Embedded
Programming
- Thomas A. Henzinger Benjamin Horowitz Christopher
Meyer Kirsch - Presented by
- Amol Kandalgaonkar
2Talk Overview
- Introduction
- Motivating Example
- Informal Description
- Formal definitions of Syntax
- ExampleSynchronized Robots
- Giotto Annotations
- Related work
3Introduction
- Increasing demand for high-level design
methodologies for embedded systems - Modifications of the embedded platform
configuration typically require complete
re-implementation and validation. - The challenge is to understand the nature of the
synthesis of real-time and concurrency and its
operational counterparts, real-time scheduling
and process communication
4What is Giotto ?
- Giotto is a time-triggered and platform
independent programming language compiler
runtime library - Giotto aims at hard real-time control
applications on distributed platforms
(safety-critical applications) - Giotto provides an abstract programming model for
embedded control system development
5Embedded System Development
- Control Engineer Decomposes
- Designs
- Simulates
- Functionality
- Timing
- Software Engineer Decomposes
- Giotto Implements
- Tests
Application
Control Design
Giotto Program
Distributed Platform
6Motivating ExampleFly-by-wire Flight Control
7Example contd..
- Sensors,CPUs and Actuators
- Operational Modes
- Take off,cruise,landing,autopilot and degraded
- Different control laws needed in each mode
- Timing properties
- Periodic computation
8Informal Description
- Data is communicated through ports
- Port
- typed variable with a unique location in a
globally shared namespace - Persistent
- Input,Output,Environment and Entry
- Basic functional unit in Giotto is Task
9Contd..
- Concurrent tasks Mode
- Add/delete Tasks Switching Mode
- Task communication Drivers
- Drivers
- Code that transports and converts values between
ports - Synchronous,bounded code,executed logically
instantaneously on the system level
10A Simple Task
Private ports F
Input Ports
Output Ports
Frequency
11Task Invocation
12Time line for Task Invocation
13Intertask Communication Semantics
F (10 ms)
G(5 ms)
14Intertask Communication Semantics contd..
Task
F
G
G
Time ms
15Modes
- Giotto Program is a set of Modes,each of which
repeats the invocation of a fixed set of tasks - At any time, a Giotto system is in a single mode
- Mode may contain modes switches,which specify
transitions from the mode to other modes - Mode switch can add/delete tasks
- Mode
- Parameterized set of tasks
- Period,Set of source ports,set of task
invocations,set of actuator updates,set of mode
switches
16A Mode
17Concrete Syntax
- Mode m ( ) period 10 ms
-
- taskfreq 1 do int x f ( )
- taskfreq 2 do int y g ( x , y )
-
18Time line for a round of Mode m
19Mode Switches
- Describes transition from one mode to another
- Specifies switch frequency,a target mode and
driver - Guard of the driver is called the exit condition
20Mode m
21Mode switch from m to m
22Timeline for Mode switch
23Concrete Syntax
- Start m( )
- mode m ( ) period 10 ms entryfreq 1
-
- taskfreq 1 do int x P ( )
- taskfreq 2 do int y Q ( x , y )
- exitfreq 2 if y 5 then m( y )
-
- mode m (int z ) period 10 ms entryfreq 2
-
- taskfreq 1 do int x P ( )
- taskfreq 4 do int u R ( x , z )
-
24Formal Definition of Pure Giotto
- Port Declarations ( p ,Type ,init )
- Task Declarations ( t ,In ,Out ,Priv ,f )
- Driver Declarations (d ,Src ,g , Dst, h)
- Mode Declarations
- ( m, µ,Sources,Invokes,Updates,Switches)
- Start Mode start Modes
25Giotto Annotations
- Performance constraintsTiming requirements may
not be available on a single CPU - Application may require proximity for tasks
- Distribute work between multiple CPUs
- Annotation with Platform constraints
- Pure Giotto is platform independent
- Annotated Giotto Directives for
mapping,scheduling,compiling and executing a
program on a particular platform
26Giotto Annotations contd..
- Multiple Annotation levels
- Advantages
- Permits incremental refinement
- Allows modular architecture for compiler
- Enables generation of formal models
- Hardware configurationHost and Nets
- Host CPU which can execute a Giotto task
- Nets Connects two or more hosts and can
transport values - Connection
27Giotto Annotations contd..
- Giotto P(P Platform) Specifies a set of
hosts,a set of nets,worst case execution time
information - Giotto PM(M Map)Specifies,in addition, and
assignment of tasks and drivers to CPUs and of
connection to nets - Giotto PMS(S Schedule)Specifies,in
addition,scheduling information for each host and
net - Annotation is Complete if it fully determines all
assignments at its annotation level.
28Giotto Annotations contd..
- Valid Giotto Program
- Not Overconstrained
- Consistent with the semantics of pure Giotto
- Giotto compiler(partially annotated pgm)
- Determines if it is not valid
- Produces a completely annotated valid PMS
refinement - Gives up and asks user for more annotations
29Schedule Constraint Graphs
Time-fixed vertices
Time-variable vertices
30Example Synchronized robots
31Two Robot Giotto Program
32Related work
- Inspired by TTA and synchronized programming
languages - TTA H/W architecture and communication protocol
- Giotto H/W independent,Protocol independent
abstract layer for programming hard real time
constraints using time triggered task invocation
and mode switching - Synchronized reactive languages assume zero delay
vs Giotto unit delay value propagation
33Web Pointer
- www-cad.eecs.berkeley.edu/fresco/giotto/
- Thank you