94
3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering www.eecs.berkeley.edu/~fresco/giotto/ course Christoph Kirsch

3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch

Embed Size (px)

Citation preview

Page 1: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch

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

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

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

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

It’s fun

Page 6: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch

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

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

Microcontroller Market

Cost

Performance

Page 9: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Control Operators

Parallel ChoiceSequential Loop

Page 44: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch

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

Real World

Time

Data

Page 46: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch

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

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

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

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

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

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

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

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

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

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

Event - Reaction

fEvent Reaction

Page 57: 3 Unit Course, Spring 2001 EECS Department, UC Berkeley Embedded Software Engineering fresco/giotto/course Christoph Kirsch

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

?

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

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

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

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

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

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

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

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

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

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

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

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

End