![Page 1: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/1.jpg)
3 Unit Course, Spring 2001
EECS Department, UC Berkeley
Embedded Software Engineering
www.eecs.berkeley.edu/~fresco/giotto/course
Christoph Kirsch
![Page 2: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/2.jpg)
It’s significant
$4 billion development eff ort> 50% system integration & validation cost
![Page 3: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/3.jpg)
It’s tricky
Mars, J uly 4, 1997Lost contact due to embedded sof tware f ailure
![Page 4: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/4.jpg)
It’s risky
French Guyana, J une 4, 1996$800 million embedded sof tware f ailure
![Page 5: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/5.jpg)
It’s fun
![Page 6: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/6.jpg)
Problem
Real-TimeComputer
System
ControlledObject
Operator
Man-MachineInterface
InstrumentationInterface
Kopetz97
Methodologies for the implementation of
embedded real-time applications
• Methodology: tool-supported, logical, compositional• Implementation: compositional, scalable, dependable
![Page 7: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/7.jpg)
Embedded Programming
…requires the integration of:
1. Real-time scheduling/communication concepts2. Programming language design3. Compiler design4. Classical software engineering techniques5. Formal methods
![Page 8: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/8.jpg)
Microcontroller Market
Cost
Performance
![Page 9: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/9.jpg)
Mechatronics
Fly-by-wire
Drive-by-wire
![Page 10: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/10.jpg)
Engine Controller
• Temporal accuracy of 3μsec
• Up to 100 concurrent software tasks
• Hard real-time: no missed deadlines
@ 6000rpm,10ms for 360º
0.1°
![Page 11: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/11.jpg)
Video Streaming
• 25 frames/sec
• Dynamic resource allocation
• Soft real-time: degraded QoS
![Page 12: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/12.jpg)
Real-Time Systems
Characteristics Hard Soft
Response time Hard-required Soft-desired
Peak-load performance
Predictable Degraded
Control of pace Environment Computer
Redundancy Active Checkpoint
Error detection Autonomous User assistedKopetz97
![Page 13: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/13.jpg)
Embedded Programming
…requires the integration of:
1. Real-time scheduling/communication concepts
2. Programming language design
3. Compiler design
4. Classical software engineering techniques
5. Formal methods
![Page 14: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/14.jpg)
Concurrency
Task1 Task2
Host
Network
Message1
Message2
In addition:• Other resource constraints• Time constraints
![Page 15: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/15.jpg)
Real-Time
Not later than
TimeTime-instant Deadline
Duration
@
for
![Page 16: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/16.jpg)
Real-Time Task
fInput Output
Worst case execution time
![Page 17: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/17.jpg)
Real-Time Scheduling
terminateactivate
PassiveActivation
Active
![Page 18: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/18.jpg)
Off-Line Scheduling
terminateactivate
PassiveTable
Active
Static System
![Page 19: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/19.jpg)
On-Line Scheduling
terminateactivate
PassiveAlgorithm
Active
Dynamic System
![Page 20: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/20.jpg)
Non-Preemptive Scheduling
Ready Run
schedule
terminateactivate
PassiveActivation
![Page 21: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/21.jpg)
Preemptive Scheduling
Ready Run
schedule
terminateactivate
PassiveActivation
preempt
![Page 22: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/22.jpg)
Shared Resources
Ready Run
Wait
schedule
preempt
terminate
busyfree
activate
PassiveActivation
![Page 23: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/23.jpg)
Scheduling Problem
Real-Time Scheduling
Soft Hard
Off-line On-line
Preemptive Non-preemptive Non-preemptivePreemptive
![Page 24: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/24.jpg)
Earliest Due Date
Time
Processors
P1 T1 T5
10
T1 T2 T3 T4 T5
Ci 1 1 1 3 2
di 3 10 7 8 5
T3 T4 T2
d1 d5 d3 d4 d2
Buttazzo97
![Page 25: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/25.jpg)
Earliest Deadline First
Time
TasksT1
T5
10
T1 T2 T3 T4 T5
ai 0 0 2 3 6
Ci 1 2 2 2 2
di 2 5 4 10 9T3
T4
T2 T2
T4
Buttazzo97
![Page 26: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/26.jpg)
Real-Time Periodic Task
fInput Output
Worst case execution timeFrequency
![Page 27: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/27.jpg)
Rate Monotonic Analysis
Time
Tasks
T1
10
T1 T2
Ci 2 1
pi 5 10
T2 T2
T1 T1 T1
![Page 28: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/28.jpg)
Scheduling Anomalies
T1 T9 T4
T8
T7
T6
T5
Time
Processors
P1
P2
P3
T1
T2
T3
T4
T6
T7
T9
12
T5
T8
![Page 29: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/29.jpg)
Shorter Computation Times
T1 T9 T4
T8
T7
T6
T5
Time
Processors
P1
P2
P3
T1
T2
T3
T4 T6
T7
T9
13
T5 T8
![Page 30: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/30.jpg)
More Processors
T1 T9 T4
T8
T7
T6
T5
Time
Processors
P1
P2
P3
P4
T1
T2
T3
T4
T5
T6
T7
T8
T9
15
![Page 31: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/31.jpg)
Weaker Precedence
T1 T9 T4
T6
T5
Time
Processors
P1
P2
P3
T1
T2
T3
T4
T7
T8 T9
16
T5
T6
![Page 32: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/32.jpg)
Real-Time Communication
Network
Message1
Message2
![Page 33: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/33.jpg)
Real-Time Message
mSource Target
Latency
![Page 34: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/34.jpg)
Explicit Flow Control
Network
Message1
Message2
• Send time not known a priori• Sender can detect errors
![Page 35: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/35.jpg)
Implicit Flow Control
Network
Message1
Message2
• Send time is known a priori• Receiver can detect errors
![Page 36: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/36.jpg)
Explicit Flow Control: Priority
Network
Message1
Message2
Medium-Access Protocols:• CSMA/CD - LON, Echelon 1990• CSMA/CA - CAN, Bosch 1990• FTDMA - Byteflight, BMW 2000• TDMA - TTP, Kopetz 1993
![Page 37: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/37.jpg)
Control Area Network
M1 M2
Time
Messages
M2
M1
0
0 0
0
11
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
![Page 38: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/38.jpg)
Implicit Flow Control: Time
Network
Message1
Message2
Medium-Access Protocols:• FTDMA - Byteflight, BMW 2000• TDMA - TTP, Kopetz 1993
![Page 39: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/39.jpg)
Time-Triggered Protocol
M1 M2
Time
Network
N1 M1 M2
Slot1 Slot2
![Page 40: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/40.jpg)
Literature
• RT scheduling:– Hard Real-Time Computing Systems: Predictable
Scheduling Algorithms and Applications. G. Buttazzo. Kluwer, 1997.
• RT communication:– Real-Time Systems – Design Principles for
Distributed Embedded Applications. H. Kopetz. Kluwer, 1997.
– Byteflight, CAN papers.
![Page 41: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/41.jpg)
Embedded Programming
…requires the integration of:
1. Real-time scheduling/communication concepts
2. Programming language design
3. Compiler design
4. Classical software engineering techniques
5. Formal methods
![Page 42: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/42.jpg)
Concurrency
Control Data
Task1 Task2 Task1 Task2
Parallel Composition I/O Decomposition
![Page 43: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/43.jpg)
Control Operators
Parallel ChoiceSequential Loop
![Page 44: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/44.jpg)
Real-Time
State
TimeEvent Frequency
Time
Change of state
Function
![Page 45: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/45.jpg)
Real World
Time
Data
![Page 46: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/46.jpg)
Discrete Data
Time
d0
d1
d2
Data
d3
![Page 47: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/47.jpg)
State
TimeState1
d0
State2
Data
State0
d1
d2
d0 d1 d1 d2 d2 d3
d3
![Page 48: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/48.jpg)
Continuous Time
Time
Interval
Start Event Terminating Event
t1 t2State1
Data
![Page 49: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/49.jpg)
Digital Clock
Time
Data
Granule
t1 t2
Clock Tick @ 1/(t2-t1) Hz
![Page 50: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/50.jpg)
Discrete Time
Time
Data
t1 t2
State1
![Page 51: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/51.jpg)
Event-Triggered (ET) System
Time
Data
Change of state
![Page 52: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/52.jpg)
Time-Triggered (TT) System
Time
Data
Clock tick
![Page 53: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/53.jpg)
Esterel - Giotto
• Esterel:– Synchronous reactive language– Event-triggered semantics
• Giotto:– Time-triggered semantics– Distributed platforms
![Page 54: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/54.jpg)
Esterel: Operators
Choice:Parallel:
P || Q present S then P else Q
Sequential: P ; QP Q
P
Q
P
Q
![Page 55: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/55.jpg)
Esterel: Event
Event:
Time
emit S
Loop: loop P each SP
await S
![Page 56: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/56.jpg)
Event - Reaction
fEvent Reaction
![Page 57: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/57.jpg)
Esterel: Controller
module normal:
input A, B, R;
output O;
loop
[ await A || await B ];
emit O
each R
end module
R?
R? R?
A?.~R?.O!
A?.~R? B?.~R?
B?.~R?.O!
A?.B?.~R?.O!
![Page 58: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/58.jpg)
Giotto: Operators
Choice:Parallel:
Mode Program
Sequential: Task
![Page 59: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/59.jpg)
Giotto: Time
Sequential: Task
TimeInput Output
![Page 60: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/60.jpg)
Sensor - Control Law - Actuator
fSensors Actuators
![Page 61: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/61.jpg)
Giotto: Helicopter Control
mode normal ( ) period 20ms
{
taskfreq 1 do servo = Control ( position ) ;
taskfreq 4 do position = Navigation ( GPS, position ) ;
}
![Page 62: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/62.jpg)
Control @ 50Hz
Semantics
Task
Navigation @ 200Hz
msec5 10 15 20
![Page 63: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/63.jpg)
Input
Task
msec5 10 15 20
![Page 64: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/64.jpg)
Computation
Task
msec5 10 15 20
Control Law Navigation Integrator
![Page 65: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/65.jpg)
Output
Task
msec5 10 15 20
![Page 66: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/66.jpg)
Literature
• Esterel:– The Foundations of Esterel. G. Berry. In Proof, Language
and Interaction: Essays in Honour of Robin Milner. G. Plotkin, C. Stirling and M. Tofte, editors. MIT Press, 2000.
– Synchronous programming of reactive systems. N. Halbwachs. Kluwer, 1993.
• Giotto:– Embedded Control System Development with Giotto. B.
Horowitz, T. Henzinger, C. Kirsch. 2000.– Giotto: A Time-Triggered Language for Embedded
Programming. B. Horowitz, T. Henzinger, C. Kirsch. 2000.
![Page 67: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/67.jpg)
Embedded Programming
…requires the integration of:
1. Real-time scheduling/communication concepts
2. Programming language design
3. Compiler design
4. Classical software engineering techniques
5. Formal methods
![Page 68: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/68.jpg)
Concurrency
Task1 Task2 Task1 Task2
Parallel Composition I/O Decomposition
Task1 Task2;Task2 Task1;
Task1 Task2Task2 Task1
![Page 69: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/69.jpg)
Real-Time
Task1 Task2; ; Task1Task3 Task2 Task1;
TimeEvent
DeadlineTime
Frequency
![Page 70: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/70.jpg)
Control @ 50Hz
Helicopter Control
Task
Navigation @ 200Hz
msec5 10 15 20
![Page 71: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/71.jpg)
Read
Task
msec5 10 15 20
Input
![Page 72: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/72.jpg)
Write
Task
msec5 10 15 20
Output
![Page 73: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/73.jpg)
Worst Case Execution Time
Task
msec5 10 15 20
Control Law Navigation Integrator
![Page 74: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/74.jpg)
Deadline
Task
msec5 10 15 20
![Page 75: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/75.jpg)
Code
Task
msec5 10 15 20
![Page 76: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/76.jpg)
Literature
• Some compiler books:– Compilers, Principles, Techniques, and Tools.
A.V. Aho, R. Sethi, J.D. Ullman. Addison-Wesley, 1985.
– Compiler Design. R. Wilhelm, D. Maurer. Addison-Wesley, 1995.
![Page 77: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/77.jpg)
Embedded Programming
…requires the integration of:
1. Real-time scheduling/communication concepts
2. Programming language design
3. Compiler design
4. Classical software engineering techniques
5. Formal methods
![Page 78: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/78.jpg)
Real-Time Task
fInput Output
Worst case execution time
![Page 79: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/79.jpg)
Type
Abstract Data Type
Interface: Set of methods
![Page 80: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/80.jpg)
Empty
Abstract Interface
Interface: Set of methods
![Page 81: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/81.jpg)
Application-dependent
Framework
Application-dependent
Application-independent
![Page 82: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/82.jpg)
?
Type vs. Task
Interface: Set of methods
Input Output
![Page 83: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/83.jpg)
Literature
• Patterns & Frameworks:– Design Patterns: Elements of Reusable Object
Oriented Software. E. Gamma, J. Vlissides, R. Johnson, R. Helm. Addison Wesley, 1994.
– Design Patterns for Object-Oriented Software Development. W. Pree, E. Gamma. Addison Wesley, 1995.
![Page 84: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/84.jpg)
Embedded Programming
…requires the integration of:
1. Real-time scheduling/communication concepts
2. Programming language design
3. Compiler design
4. Classical software engineering techniques
5. Formal methods
![Page 85: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/85.jpg)
Formal Verification
Time
Safety Liveness
Control
Data
• Safety: Wrong things never happen!• Liveness: Something useful will happen eventually!
Property Space
![Page 86: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/86.jpg)
Language Hierarchy
Design
Model
Program
Executable
Non-Deterministic
synthesize analyze
compile
expand
Deterministic
Sequential
Universal Macros
Automata
Code
Machine
![Page 87: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/87.jpg)
Non-Determinism
Parallel ChoiceSequential Non-DeterminismA E
Programming Operators Modeling Operator
![Page 88: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/88.jpg)
Esterel: Verification
EsterelProperty
AutomataAutomata
Automata
Esterel Abstraction “Bisimulation”
Model Checking
![Page 89: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/89.jpg)
Esterel: Hierarchy
Design
Model
Esterel
Executable
Bisimulation
compile
Non-Det. Automata
Deterministic Code
Sequential Circuit
Model Checking
![Page 90: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/90.jpg)
Giotto: Verification
GiottoProperty
MasaccioAutomata
MasaccioModel Checking
Abstraction “Refinement”
![Page 91: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/91.jpg)
Giotto: Hierarchy
?
Masaccio
Giotto
Executable
synthesize Refinement
compile
expand
Hybrid Modules
Deterministic Code
Seq. Stack Machine
Model Checking
![Page 92: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/92.jpg)
Giotto: Hierarchy
SLDLSLDL
SLDLSLDL
MASACCI O ATL
GI OTTO GI OTTO-HSC
SLDL 1
RTOS 1
DESI GN
MODEL
PROGRAM
EXECUTABLE
HARDWARESCHEDULERCOMMUNI CATI ON
HierarchicalHybridModules
Time-TriggeredBlocks of
C Code
Model-check
Compile
given
Synthesize Refine
REQUI REMENTS
CONSTRAI NTS
![Page 93: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/93.jpg)
Literature
• Esterel:– Papers @ www.esterel.org
• Giotto:– T.A. Henzinger. Masaccio: A Formal Model for
Embedded Components. LNCS 1872, Springer, 2000, pp. 549-563.
![Page 94: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch](https://reader036.vdocument.in/reader036/viewer/2022081520/5697bfed1a28abf838cb8d0e/html5/thumbnails/94.jpg)
End