Download presentation
Presentation is loading. Please wait.
1
Giotto A Time-Triggered Language for Embedded Programming Thomas A. Henzinger, Benjamin Horowitz Christoph M. Kirsch, Rupak Majumdar UC Berkeley
2
Embedded Programming Giotto aims at hard real-time applications Giotto is time-triggered Giotto is platform independent Giotto consists of ports, tasks, modes Giotto works, with VxWorks, Ptolemy
3
Functionality & Timing Control Engineer Control Design Application designs validates simulates Software Engineer Platform Implementation decomposes implements tests First Challenge
4
Compilation Platform Implementation Second Challenge Software Engineer decomposes implements tests
5
A Task
6
Abstract Syntax of a Task f
7
f State
8
Abstract Syntax of a Task fInput ports State
9
Abstract Syntax of a Task fInput ports State Output ports
10
Abstract Syntax of a Task fInput ports State Output ports Frequency
11
Semantics of a Task fInput ports State Output ports Frequency 10ms
12
Semantics of a Task fInput ports State Output ports Time Task Frequency 10ms
13
Semantics of a Task fInput ports State Output ports Time Task Frequency 10ms
14
Semantics of a Task fInput ports State Output ports Time Task Read @ time t Frequency 10ms
15
Semantics of a Task fInput ports State Output ports Time Task Read @ time t Frequency 10ms Write @ time t+10ms
16
Semantics of a Task fInput ports State Output ports Time Task Read @ time t Frequency 10ms Write @ time t+10ms Don’t care
17
A Connection Input portsOutput portsf State
18
Abstract Syntax of a Connection f State Constant
19
Abstract Syntax of a Connection f State Input portOutput port
20
Semantics of a Connection f State f
21
Semantics of a Connection f State f Time Task
22
Semantics of a Connection f State f Time Task Write @ time t
23
Semantics of a Connection f State f Time Task Write @ time tRead @ time t
24
Semantics of a Connection f State f Time Task Write @ time tRead @ time t 0 time
25
Two Tasks PInput portsOutput ports
26
Two Tasks PInput portsOutput ports QInput portsOutput ports
27
Connections P Q
28
P Q
29
P Q
30
Different Periodicity P Q
31
Time Task P QQ
32
Semantics Time Task P QQ
33
Semantics Time Task P QQ tt+10ms
34
Semantics Time Task P QQ tt+10mst
35
Semantics Time Task P QQ tt+10mstt+5ms
36
Semantics Time Task P QQ tt
37
Connections P Q
38
Semantics Time Task P QQ tt
39
Connections P Q
40
Semantics Time Task P QQ tt
41
Semantics Time Task P QQ t+5mst Don’t care
42
Semantics Time Task P QQ t+5ms
43
Semantics Time Task P QQ t+5ms
44
Semantics Time Task P QQ t+5ms
45
Semantics Task P QQ t+10ms
46
Semantics Task P QQ t+10ms
47
Semantics Task P QQ t+10ms
48
Theory ! A Giotto program is a single set of tasks, so far Is this enough?
49
Theory = Practice ? Yes, we have sufficient computation and communication resources! => A single set of tasks is enough
50
Theory = Practice ? Yes, we have sufficient computation and communication resources! => A single set of tasks is enough Fin
51
Theory = Practice ? Yes, we have sufficient computation and communication resources! => A single set of tasks is enough Fin No, we have to share resources! => with modes
52
Practice ! A mode is a set of tasks. A Giotto program is a set of modes. A Giotto program is a partitioning of the set of all required tasks.
53
FAQ: Time vs. Events Q: How about events? A: Use modes!
54
A Mode
55
Abstract Syntax of a Mode P Q
56
P Q
57
P Q
58
P Q Entry Port
59
Abstract Syntax of a Mode P Q Entry Port Period
60
Semantics of a Mode P Q Entry Port Period 10ms 1 2
61
Concrete Syntax mode m ( ) period 10 ms { taskfreq 1 do int x = P ( ) ; taskfreq 2 do int y = Q ( x, y ) ; }
62
A Mode Switch MM’
63
M Predicate Abstract Syntax of a Mode Switch
64
MM’ Predicate Abstract Syntax of a Mode Switch Frequency
65
MM’ Predicate Abstract Syntax of a Mode Switch Frequency Connection
66
MM’ Predicate Abstract Syntax of a Mode Switch Frequency 5ms Connection
67
Mode M P Q Period 10ms 1 2
68
Mode M P Q Period 10ms 1 2 Connection
69
Mode M’ Connection
70
Mode M’ P 1 Connection
71
Mode M’ P R 1 4 Connection
72
Mode M’ P R 1 4 Connection
73
Mode M’ P R 1 4 Connection
74
Mode M’ P R 1 4 Connection
75
Mode M’ P R 1 4 Connection Period 10ms
76
Concrete 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 ) ; }
77
Semantics of a Mode Switch Task P QQ Time
78
Semantics of a Mode Switch Task P QQ Mode Switch @ t+10mst+10ms
79
Semantics of a Mode Switch Task P QQ Mode Switch @ t+5mst+5ms Time
80
Semantics of a Mode Switch Task P Q Time Mode Switch @ t+5ms
81
Mode M’ P R 1 4
82
Semantics of a Mode Switch Task P Q t+5ms Time R t+5ms
83
Semantics of a Mode Switch Task P Q t+5ms Time RR t+5mst+7.5ms
84
Semantics of a Mode Switch Task P Q t+5ms RR t+7.5mst+10ms
85
Semantics of a Mode Switch Task P Q t+5ms RR Time
86
Mode M P Q 1 2 Connection
87
Semantics of a Mode Switch Task P Q t+5ms RR Time
88
Semantics of a Mode Switch Task P QRR Mode Switch finished @ t+5ms Time
89
Mode M’ P R 1 4 Connection
90
Semantics of a Mode Switch Task P Q t+5ms RR Time
91
Mode M’ P R 1 4 Connection
92
Semantics of a Mode Switch Task P Q t+5ms RR Time
93
Mode M’ P R 1 4 Connection
94
Semantics of a Mode Switch Task P Q t+5ms RR Time
95
Semantics of a Mode Switch Task P QRR Time t+7.5ms
96
Semantics of a Mode Switch Task P QRR Time t+7.5ms
97
Semantics of a Mode Switch Task P QRR Time t+7.5ms
98
Semantics of a Mode Switch Task P QRR Time t+7.5ms
99
Semantics of a Mode Switch Task P QRR t+10ms
100
Semantics of a Mode Switch Task P QRR t+10ms
101
Semantics of a Mode Switch Task P QRR t+10ms
102
Semantics of a Mode Switch Task P QRR t+10ms
103
Functionality & Timing Control Engineer Control Design Application designs validates simulates Software Engineer Platform Implementation decomposes implements tests First Challenge
104
Compilation Platform Implementation Second Challenge Software Engineer decomposes implements tests
105
Annotated Giotto Giotto Compiler Giotto Program Platform
106
Giotto-Architecture Giotto Compiler Hosts, Nets, Performance Giotto Program Giotto-A Program Platform
107
Giotto-Scheduler Giotto Compiler Task to Host, Priority Hosts, Nets, Performance Giotto Program Giotto-A Program Giotto-AS Program Platform
108
Giotto-Communication Giotto Program Giotto Compiler Giotto-A Program Platform Giotto-AS Program Giotto-ASC Program Task to Host, Priority Hosts, Nets, Performance Connection to Net, TDMA
109
Platform Dependency Task P QQ Time
110
Platform Dependency Task P QQ Time Computation
111
Giotto-AS Task P QQ Time Host A
112
Giotto-AS Task P QQ Time Host A 2. 1.
113
Platform Dependency Task P QRR Time
114
Platform Dependency Task P QRR Time Communication
115
Platform Dependency Task P QRR Time Communication
116
Giotto-ASC Task P QRR Time Host A Host BCC
117
Giotto-ASC Task P QRR Time Host A Host BCC Network C
118
Giotto-ASC Task P QRR Time Host A Host BCC Network C t+10mst
119
Giotto-ASC Task P QRR Time Host A Host BCC Network C t+10mst
120
Giotto-ASC Task P QRR Time Host A Host BCC Network C t+10mst
121
Summary Control Design Application Platform Implementation Functionality & Timing Control Engineer Software Engineer Compilation
122
Demo
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.