40
fakultät für informatik informatik 12 technische universität dortmund Finite state machines + message passing: SDL Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte, Gesine Marwedel, 2003 2010/10/20 These slides use Microsoft clip arts. Microsoft copyright restrictions apply.

Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

fakultät für informatikinformatik 12

technische universität dortmund

Finite state machines+ message passing:

SDL

Peter MarwedelTU Dortmund,Informatik 12

Gra

phic

s: ©

Ale

xand

ra N

olte

, Ges

ine

Mar

wed

el, 2

003

2010/10/20These slides use Microsoft clip arts. Microsoft copyright restrictions apply.

Page 2: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 2 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

Context

SDL used here as a (prominent) example of a model of computation based on asynchronousmessage passing communication .

� appropriate also for distributed systems

SDLStateChartsFSM

Non-blockingblocking

Message passingShared memory

Communication/Computation

Page 3: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 3 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

SDL

Language designed for specification of distributed systems.

� Dates back to early 70s,

� Formal semantics defined in the late 80s,

� Defined by ITU (International Telecommunication Union): Z.100 recommendation in 1980Updates in 1984, 1988, 1992, 1996 and 1999

Page 4: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 4 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

SDL

� Provides textual and graphical formats to please all users,

� Just like StateCharts, it is based on the CFSM model of computation; each FSM is called a process ,

� However, it uses message passing instead of shared memory for communications,

� SDL supports operations on data.

Page 5: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 5 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

SDL-representation of FSMs/processes

output

input

state

Page 6: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 6 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

Communication among SDL-FSMs

Communication between FSMs (or “processes“) is based on message-passing , assuming a potentially indefinitely large FIFO-queue .

�Each process fetches next entry from FIFO,

� checks if input enables transition,

� if yes: transition takes place,

� if no: input is ignored (exception: SAVE-mechanism).

Page 7: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 7 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

Determinate?

Let tokens be arriving at FIFO at the same time:�Order in which they are stored, is unknown:

All orders are legal: �simulators can show different behaviors for the same input, all of which are correct.

Page 8: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 8 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

Operations on data

Variables can be declared locally for processes.Their type can be predefined or defined in SDL itself.SDL supports abstract data types (ADTs). Examples:

Page 9: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 9 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

Process interaction diagrams

Interaction between processes can be described in process interaction diagrams (special case of block diagrams).In addition to processes, these diagrams contain channels and declarations of local signals. Example:

,

B

Page 10: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 10 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

Hierarchy in SDL

Process interaction diagrams can be included in blocks. The root block is called system.

Processes cannot contain other processes, unlike in StateCharts.

Page 11: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 11 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

Timers

Timers can be declared locally. Elapsed timers put signal into queue (not necessarily processed immediately).RESET removes timer (also from FIFO-queue).

Page 12: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 12 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

Additional language elements

SDL includes a number of additional language elements, like

� procedures

� creation and termination of processes

� advanced description of data

� More features added for SDL-2000 (not well accepted)

Page 13: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 13 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

Application: description of network protocols

Page 14: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 14 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

Larger example: vending machine

Machine° selling pretzels, (potato) chips, cookies, and doughnuts:

accepts nickels, dime, quarters, and half-dollar coins.

Not a distributed application.

° [J.M. Bergé, O. Levia, J. Roullard: High-Level Sy stem Modeling, Kluwer Academic Publishers, 1995]

Page 15: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 15 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

Overall view of vending machine

Page 16: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

DecodeRequests

p

Page 17: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 17 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

ChipHandler

no

no

yes

yes

Page 18: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 18 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

Evaluation & summary

� FSM model for the components,� Non-blocking message passing for communication,� Implementation requires bound for the maximum length of

FIFOs; may be very difficult to compute,� Excellent for distributed applications (used for ISDN),� Commercial tools available (see http://www.sdl-forum.org)� Not necessarily determinate

(order, in which FSMs are reading input is unknown)� Timer concept adequate just for soft deadlines,� Limited way of using hierarchies,� Limited programming language support,� No description of non-functional properties,� Becoming less popular� Examples: small network + vending machine

Page 19: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

fakultät für informatikinformatik 12

technische universität dortmund

Data flow models

Peter MarwedelTU Dortmund,Informatik 12

Gra

phic

s: ©

Ale

xand

ra N

olte

, Ges

ine

Mar

wed

el, 2

003

2010/10/10These slides use Microsoft clip arts. Microsoft copyright restrictions apply.

Page 20: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 20 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

Data flow as a “natural” model of applications

Example: Video on demand system

www.ece.ubc.ca/~irenek/techpaps/vod/vod.html

Page 21: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 21 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

Data flow modeling

Definition : Data flow modeling is … “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)”.

[Wikipedia: Structured systems analysis and design method. http://en.wikipedia.org/wiki/Structured Systems Analysis and Design Methodology,2010 (formatting added)].

Page 22: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 22 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

Models of computation considered in this course

C, C++, Java with librariesCSP, ADA |

C, C++, Java

Von Neumann model

Plain text, use cases| (Message) sequence charts

Undefined components

Kahn networks, SDF

(Not useful)Data flow

Only experimental systems, e.g. distributed DE in Ptolemy

VHDL, Verilog, SystemC, …

Discrete event (DE) model

C/E nets, P/T nets, …Petri nets

SDLStateChartsCommunicating finite state machines

Message passingSynchronous | Asynchronous

Shared memory

Communication/local computations

Page 23: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 23 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

Kahn process networks

� Each component is a program/task/process, not an FSM

� Communication is by FIFOs; no overflow considered� writes never have to wait,� reads wait if FIFO is empty.

� Only one sender and one receiver per FIFO� no SDL-like conflicts at FIFOs

Page 24: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 24 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

Example

© R. Gupta (UCSD), W. Wolf (Princeton), 2003

levi animation

Process f(in int u, in int v, out int w){int i; bool b = true;for (;;) {i= b ? wait (u) : wait (v);

//wait returns next token in FIFO, waits if emptysend (i,w); //writes a token into a FIFO w/o blockingb = !b;}

Page 25: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 25 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

Properties of Kahn process networks (1)

� Communication is only via channels;

� Mapping from ≥1 input channel to ≥1 output channel;

� Channels transmit information within an unpredictable but finite amount of time;

� In general, execution times are unknown.

Page 26: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 26 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

Key beauty of KPNs

� 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 determinate (!); for a given input, the result will always the same, regardless of the speed of the nodes.

� Many applications in embedded system design:Any combination of fast and slow simulation & hardware prototypes always gives the same result.

Page 27: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 27 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

Computational power and analyzability

� KPNs are Turing-complete (anything which can be computed can be computed by a KPN)

� It is a challenge to schedule KPNs without accumulating tokens

� KPNs are computationally powerful, but difficult to analyze (e.g. what’s the maximum buffer size?)

� Number of processes is static (cannot change)

Page 28: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 28 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

More information about KPNs

� http://ls12-www.cs.tu-dortmund.de/teaching/download/levi/index.html: Animation

� http://en.wikipedia.org/wiki/Kahn_process_networks

� See also S. Edwards: http://www.cs.columbia.edu/~sedwards/classes/2001/w4995-02/presentations/dataflow.ppt

Page 29: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 29 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

SDF

Less computationally powerful, but easier to analyze:

Synchronous data flow (SDF).

Again using asynchronous message passing.

Page 30: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 30 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

Synchronous data flow (SDF)

Asynchronous message passing=tasks do not have to wait until output is accepted.

Synchronous data flow =global clock controlling “firing” of nodes

In the general case, a number of tokens can be produced/ consumed per firing; firing rate depends on # of tokens …

Page 31: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 31 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

Balance equations (one for each channel)

fire B {…consume M…

}

fire A {…produce N…

}

channel

N M

MfNf BA = number of tokens consumed

number of firings per “iteration”number of tokens produced

Source: ptolemy.eecs.berkeley.edu/presentations/03/streamingEAL.ppt

Schedulable staticallyIn the general case, buffers may be needed at edges.Decidable:

� buffer memory requirements� deadlock

Page 32: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 32 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

Parallel Scheduling of SDF Models

A

C

D

B

Sequential Parallel

SDF is suitable for automated mapping onto parallel processors and synthesis of parallel circuits.

Many scheduling optimization problems can be formulated. Some can be solved, too!

Source: ptolemy.eecs.berkeley.edu/presentations/03/streamingEAL.ppt

Page 33: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 33 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

Expressiveness of data flow MoCs

HSDF=Homogeneous synchronous data flow(all firing rates are the same)CSDF=Cyclo static data flow (rates vary in a cyclic way)

Turing-complete

Not Turing-complete

[S. Stuijk, 2007]

Page 34: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 34 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

The expressiveness/analyzability conflict

[S. Stuijk, 2007]

Page 35: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 35 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

Similar MoC: Simulink- example -

Fromwww.mathworks.co.uk/access/helpdesk/help/toolbox/fuzzy/fuzzyt25.shtml

Fromwww.mathworks.co.uk/access/helpdesk/help/toolbox/fuzzy/fuzzyt25.shtml

Semantics? “Simulink uses an idealized timing model for block execution and communication. Both happen infinitely fast at exact points in simulated time. Thereafter, simulated time isadvanced by exact time steps. All values on edges are constant in between time steps.” [Nicolae Marian, Yue Ma]

Page 36: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 36 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

Page 37: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 37 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

Code automatically generated

© MathWorks, http://www.mathworks.de/ cmsimages/rt_forloop_code_wl_7430.gif

Starting point for“model-based design”

Page 38: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 38 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

Page 39: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 39 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

Actor languages

© E. Lee, Berkeley

Page 40: Finite state machines + message passing: SDL · Plain text, use cases | (Message) sequence charts Undefined components Kahn networks, SDF Data flow (Not useful) Only experimental

- 40 -technische universitätdortmund

fakultät fürinformatik

p. marwedel, informatik 12, 2010

Summary

Data flow model of computation� Motivation� Kahn process networks� SDF� Visual programming languages

• Simulink