61
- 1- CS - ES Embedded Systems

Embedded Systems - uni-saarland.de by ITU (International Telecommunication Union) - Z.120 recommendation MSC is a scenario language graphical formal practical widely applicable REVIEW

  • Upload
    doquynh

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

- 1 -CS - ES

Embedded Systems

- 2 -CS - ES

Message Sequence Charts

REVIEW

- 3 -CS - ES

Message Sequence Charts

Message Sequence Charts (MSC) is a language to describe the interaction between a number of independent message-passing instances.

Defined by ITU (International Telecommunication Union) - Z.120 recommendation

MSC is a scenario language graphical formal practical widely applicable

REVIEW

- 4 -CS - ES

MSC

In telecommunication industry, MSCs are the first choice to describe example traces of the system under development. MSCs are used throughout the whole protocol life cycle from requirements analysis to testing.

To define longer traces hierarchically, simple MSCs can be composed by operators in high-level MSC (HMSC).

Message Sequence Charts may be used for requirement specification, simulation and validation, test-case specification and documentation of real-time systems.

REVIEW

- 5 -CS - ES

Message sequence charts (MSC)

Graphical means for representing schedules; time used vertically, “geographical” distribution horizontally.

REVIEW

- 6 -CS - ES

Basic MSC in a nutshell

User AC System

Code

OK

msc User_accepted

UnlockCard out

Idle

Door unlocked

MSC diagram

MSC heading

Conditionno predicate logic,

merely a label

Output event

Input event

Instance

Message to the

environment

Instance end

REVIEW

- 7 -CS - ES

Timer set and timeout

• User is accepted forget to push the door

• AC system will detect this through the expiration of the timer Lock

REVIEW

- 8 -CS - ES

Preferred situation REVIEW

- 9 -CS - ES

MSC reference

• In almost all description/programming/specification languages there is a way to isolate subparts of the description in a separate named construct (procedures, functions, classes, packages)

• In MSC there are MSCs which can be referred from other MSCs.

REVIEW

- 10 -CS - ES

MSC reference

• Assume that the scenario where the user is accepted is part of a larger context where there is an automatic door. When the door is unlocked it automatically opens.

• The MSC reference symbol is a box with rounded corners.

REVIEW

- 11 -CS - ES

HMSC (High Level MSC)

User accepted

Idle

Unlocked_reset Unlocked_timeout

Door unlocked

Unlocked_unclosed

User rejected

msc ACsystemOverview

HMSC Start

MSC Reference

Condition

Alternative

Loop

Connection Point

REVIEW

- 12 -CS - ES

Data in MSC-2000

MSC has no data language of its own!

MSC has parameterized data languages such that

fragments of your favorite (data) language can be used• C, C++, SDL, Java, ...

MSC can be parsed without knowing the details of the chosen data language

the interface between MSC and the chosen data language is given in a set of interface functions

REVIEW

- 13 -CS - ES

Data Flow Models

REVIEW

- 14 -CS - ES

Data flow modeling

Def.: The process of identifying, modeling and documenting how data moves around an information system.

Data flow modeling examines processes (activities that transform data from one form to

another), data stores (the holding areas for data), external entities (what sends data into a system or receives data

from a system, and data flows (routes by which data can flow).

REVIEW

- 15 -CS - ES

Dataflow model Nodes represent transformations

May execute concurrently

Edges represent flow of tokens (data) from one node to another May or may not have token at any given time

When all of node’s input edges have at least one token, node may fire

When node fires, it consumes input tokens processes transformation and generates output token

Nodes may fire simultaneously

Several commercial tools support graphical languages for capture of dataflow model Can automatically translate to concurrent process model for

implementation Each node becomes a process

modulate convolve

transform

A B C D

Z

Nodes with more complex transformations

t1 t2

+ –

*

A B C D

Z

Nodes with arithmetic transformations

t1 t2

Z = (A + B) * (C - D)

REVIEW

- 16 -CS - ES

Philosophy of Dataflow Languages

Drastically different way of looking at computation

Von Neumann imperative language style: program counter controls everything

Dataflow language: movement of data the priority

Scheduling responsibility of the system, not the programmer

REVIEW

- 17 -CS - ES

Applications of Dataflow

signal-processing applications

Anything that deals with a continuous stream of data

Becomes easy to parallelize

Buffers typically used for signal processing applications anyway

REVIEW

- 18 -CS - ES

Kahn Process Networks

Proposed by Kahn in 1974 as a general-purpose scheme for parallel programming

Theoretical foundation for dataflow Unique attribute: deterministic

…Send();

…Wait();

REVIEW

- 19 -CS - ES

Properties of Kahn process networks (2)

There is only one sender per channel. A process cannot check whether data is available before

attempting a read. A process cannot wait for data for more than one port at a time. Therefore, the order of reads depends only on data, not on the

arrival time. Therefore, Kahn process networks are deterministic (!); for a

given input, the result will always the same, regardless of the speed of the nodes.

This is the key beauty of KPNs!

REVIEW

- 20 -CS - ES

Kahn Process Networks

Key idea:

Reading an empty channel blocks until data is available

No other mechanism for sampling communication channel’s contents

Can’t check to see whether buffer is empty Can’t wait on multiple channels at once

REVIEW

- 21 -CS - ES

Sample parallel program S

(1) … channel declation

processes f, g, h are declared

REVIEW

- 22 -CS - ES

A Kahn Process From Kahn’s original 1974 paper

process f(in int u, in int v, out int w){int i; bool b = true;for (;;) {i = b ? wait(u) : wait(v);printf("%i\n", i);send(i, w);b = !b;

}}

f

u

v

w

Process alternately reads from u and v, prints the data

value, and writes it to w

What does this do?

REVIEW

- 23 -CS - ES

A Kahn Process

From Kahn’s original 1974 paper:

process f(in int u, in int v, out int w){int i; bool b = true;for (;;) {i = b ? wait(u) : wait(v);printf("%i\n", i);send(i, w);b = !b;

}}

Process interface

includes FIFOs

wait() returns the next token in an input FIFO,

blocking if it’s empty

send() writes a data value on an output FIFO

REVIEW

- 24 -CS - ES

A Kahn Process

From Kahn’s original 1974 paper:

process g(in int u, out int v, out int w){int i; bool b = true;for(;;) {i = wait(u);if (b) send(i, v); else send(i, w);b = !b;

}}

guv

w

Process reads from u and alternately copies it to v and w

What does this do?

REVIEW

- 25 -CS - ES

A Kahn Process

From Kahn’s original 1974 paper:

process h(in int u, out int v, int init){int i = init;send(i, v);for(;;) {i = wait(u);send(i, v);

}}

hu v

Process sends initial value, then passes through values.

What does this do?

REVIEW

- 26 -CS - ES

Sample parallel program S

(1) … channel declation

processes f, g, h are declared

(6) … body of the main program: - calling instances of the

processes- actual names of the channels

are bound to the formal parameters- infix operator par concurrent

activation of the processes

REVIEW

- 27 -CS - ES

A Kahn System

What does this do?

fg

hinit = 0

hinit = 1

Emits a 1 then copies input to output

Emits a 0 then copies input to output

Prints an alternating sequence of 0’s and 1’s

T2 Z

T2

X

Y

REVIEW

- 28 -CS - ES

REVIEW

- 29 -CS - ES

Determinism

Process: “continuous mapping” of input sequence to output sequences

Continuity: process uses prefix of input sequences to produce prefix of output sequences. Adding more tokens does not change the tokens already produced

The state of each process depends on token values rather than their arrival time

Unbounded FIFO: the speed of the two processes does not affect the sequence of data values

Fx1,x2,x3… y1,y2,y3…

REVIEW

- 30 -CS - ES

Synchronous Dataflow (SDF) Edward Lee and David Messerchmitt, Berkeley, 1987

Ptolemy System

Restriction of Kahn Networks to allow compile-time scheduling

Basic idea: each process reads and writes a fixed number of tokens each time it fires:

loopread 3 A, 5 B, 1 C …compute…write 2 D, 1 E, 7 F

end loop

REVIEW

- 31 -CS - ES 31

Synchronous dataflow

With digital signal-processors (DSPs), data flows at fixed rate

ADC DACDSP

0110.. 1110..

REVIEW

- 32 -CS - ES 32

Synchronous dataflow Multiple tokens consumed and produced per firing

Synchronous dataflow model takes advantage of this Each edge labeled with number of tokens

consumed/produced each firing Can statically schedule nodes, so can easily use sequential

program model• Don’t need real-time operating system and its overhead

Algorithms developed for scheduling nodes into “single-appearance” schedules Only one statement needed to call each node’s associated

procedure• Allows procedure inlining without code explosion, thus reducing

overhead even more

modulate convolve

transform

A B C D

Z

Synchronous dataflow

mt1 ct2

mA mB mC mD

tZ

tt1 tt2

t1 t2

REVIEW

- 33 -CS - ES

SDF and Signal Processing

Restriction natural for multirate signal processing

Typical signal-processing processes:

Unit-rate• Adders, multipliers

Upsamplers (1 in, n out) Downsamplers (n in, 1 out)

- 34 -CS - ES

Asynchronous message passing:Synchronous data flow (SDF) Asynchronous message passing=

tasks do not have to wait until output is accepted. Synchronous data flow =

all tokens are consumed at the same time.

SDF model allows static scheduling of token production and consumption.

In the general case, buffers may be needed at edges.

- 35 -CS - ES

Synchronous DataFlow

Actor enabling = each incoming arc carries at least weight tokens

Actor execution = atomic consumption/production of tokens by an enabled actor i.e., consume weight tokens on each incoming arcs and

produce weight tokens on each outgoing arc Delay is an initial token load on an arc.

SDF firing rules:

- 36 -CS - ES

SDF Example

AABAACC

BStatic schedule:

- 37 -CS - ES

Parallel Scheduling of SDF Models

A

C

D

B

Sequentialperiodic admissible sequential

schedule (PASS)

Parallelperiodic admissible parallel

schedule (PAPS)

SDF is suitable for automated mapping onto

parallel processors and

synthesis of parallel circuits.

(admissible = correct schedule, finite amount of memory required)

- 38 -CS - ES

SDF Scheduling AlgorithmLee/Messerschmitt 1987

1. Establish relative execution rates Generate balance equations Solve for smallest positive integer vector q

2. Determine periodic schedule Form an arbitrarily ordered list of all nodes in the system Repeat:

• For each node in the list, schedule it if it is runnable, trying each node once

• If each node has been scheduled qn times, stop.• If no node can be scheduled, indicate deadlock.

Source: Lee/Messerschmitt, Synchronous Data Flow (1987)

- 39 -CS - ES

Multi-rate SDF System

DAT (digital audio tape) -to-CD rate converter Converts a 44.1 kHz sampling rate to 48 kHz

1 1 2 3 2 7 8 7 5 1

Upsampler Downsampler

- 40 -CS - ES

SDF: restriction of Kahn networks

An SDF graph is a tuple (V, E, cons, prod, d) where V is a set of nodes (activities) E is a set of edges (buffers) cons: E N number of tokens consumed prod: E N number of tokens produced d: E N number of initial tokens

d: „delay“ (sample offset between input and output)

- 41 -CS - ES

Delays

Kahn processes often have an initialization phase

SDF doesn’t allow this because rates are not always constant

Alternative: an SDF system may start with tokens in its buffers

These behave like delays (signal-processing)

Delays are sometimes necessary to avoid deadlock

- 42 -CS - ES

Example SDF System Finite Impulse Response

FIR Filter (all single-rate)

dup

*c0

dup

*c1

+

dup

*c2

+

dup

*c3

+

*c(N-1)

+

One-cycle delayDuplicate

Constant multiply

(filter coefficient)

Adder

yn

xn

Yn = xn*c0 + xn-1*c1 + … + xn-(N-1)*c(N-1)

- 43 -CS - ES

SDF Scheduling

Schedule can be determined completely before the system runs

Two steps:

1. Establish relative execution rates by solving a system of linear equations

2. Determine periodic schedule by simulating system for a single round

- 44 -CS - ES

SDF Scheduling

Goal: a sequence of process firings that: Runs each process at least once in proportion to its rate Avoids underflow

• no process fired unless all tokens it consumes are available Returns the number of tokens in each buffer to their initial state

Result: the schedule can be executed repeatedly without accumulating tokens in buffers

- 45 -CS - ES

Balance equations

Number of produced tokens must equal number of consumed tokens on every edge

Repetitions (or firing) vector vS of schedule S: number of firings of each actor in S vS(A) np = vS(B) nc

must be satisfied for each edge

np ncA B

- 46 -CS - ES

Balance equations

B C

A3

1

1

1

22

11

Balance for each edge: 3 vS(A) - vS(B) = 0 vS(B) - vS(C) = 0 2 vS(A) - vS(C) = 0 2 vS(A) - vS(C) = 0

- 47 -CS - ES

Balance equations

M vS = 0iff S is periodic Full rank (as in this case)

• no non-zero solution • no periodic schedule

(too many tokens accumulate on A->B or B->C)

3 -1 00 1 -12 0 -12 0 -1

M =

B C

A3

1

1

1

22

11

topology matrix

the (c, r)th entry in the matrix is the amount of data produced by node c on arc

r each time it is involved

- 48 -CS - ES

Balance equations

Non-full rank• infinite solutions exist

Any multiple of vS = |1 2 2|T satisfies the balance equations ABCBC and ABBCC are minimal valid schedules

2 -1 00 1 -12 0 -12 0 -1

M =

B C

A2

1

1

1

22

11

- 49 -CS - ES

Static SDF scheduling

Main SDF scheduling theorem (Lee ‘86): A connected SDF graph with n actors has a

periodic schedule iff its topology matrix M has rank n-1 If M has rank n-1 then there exists a unique

smallest integer solution vS to M vS = 0

Rank must be at least n-1 because we need at least n-1 edges (connected-ness), providing each a linearly independent row Admissibility is not guaranteed, and depends

on initial tokens on cycles

- 50 -CS - ES

Admissibility of schedules

No admissible schedule:BACBA, then deadlock… Adding one token on A->C makes

BACBACBA valid Making a periodic schedule admissible is always

possible, but changes specification...

B C

A1

2

1

3

2

3

- 51 -CS - ES

An Inconsistent System

No way to execute it without an unbounded accumulation of tokens

Only consistent solution is “do nothing”

b

1

ca1

32

1

1

a – c = 0a – 2b = 03b – c = 0

3a – 2c = 0

- 52 -CS - ES

Calculating Rates

Each arc imposes a constraint

b

d

12

3

2

c

a

3

41

3

21

6

3a – 2b = 04b – 3d = 0

b – 3c = 02c – a = 0d – 2a = 0

Solution:a = 2cb = 3cd = 4c

- 53 -CS - ES

Scheduling Example

Theorem guarantees any valid simulation will produce a schedule

b

d

12

3

2

c

a

3

41

3

21

6

a=2 b=3 c=1 d=4

Possible schedules:BBBCDDDDAABDBDBCADDABBDDBDDCAA… many more

BC … is not valid

- 54 -CS - ES

SDF Compiler

Task for an SDF compiler: Allocation of memory for the passing of data between nodes Scheduling of nodes onto processors in such a way that data is

available for a block when it is invoked

Assumptions on the SDF graph: The SDF graph is nonterminating and does not deadlock The SDF graph is connected

Goal: Development of a periodic admissible parallel schedule (PAPS) or a periodic admissible sequential schedule (PASS)

(admissible = correct schedule, finite amount of memory required)

- 55 -CS - ES

Does a PASS exist?

- 56 -CS - ES

Does a PASS exist?

A PSS (periodic sequential schedule) exists if rank (M) = s -1, where s is the number if nodes in a graph.

There is a v such that Mv = O where O is a vector full of zeros. v describes the number of firings in each scheduling period.

- 57 -CS - ES

A PASS exists

The rank of the matrix M = is s – 1 = 2 and v =

A valid schedule is Φ = {a, b, c, c}, but not Φ = {b, a, c, c}

The maximum buffer sizes for the arcs are b =< 1, 2, 2 >

- 58 -CS - ES

A PASS does not exist

The graph has sample rate inconsistencies.

A schedule for the graph will result in unbounded buffer sizes.

No PASS can be found (rank (M) = s = 3).

- 59 -CS - ES

PAPS

Assumption: Block 1 : 1 time unitBlock 2 : 2 time unitsBlock 3 : 3 time units

Trivial Case - All computations are scheduled on same processor

- 60 -CS - ES

PAPS

The performance can be improved, if a schedule is constructed that exploits the potential parallelism in the SDF-graph. Here the schedule covers one single period.

Single Period Schedule

- 61 -CS - ES

PAPS

The performance can be further improved, if the schedule is constructed over two periods.

Double Period Schedule