EE290N - Specification and Modeling of Reactive Real-Time Systems

Lecture 16 - October 17, 1996, Scribe: Ron Galicia
TERMS INTRODUCED: backward synchronization, demand-driven, data-driven, Turing-complete, delay, strongly connected, static schedule, quasi-static schedule, dynamic schedule, balance equation.

backward synchronization: blocking writes

demand-driven: a policy where an actor blocks on writes until the receiving actors are ready to receive

data-driven: a policy where an actor doesn't block on a write

Turing-complete: having the same expressiveness as a Turing Machine

delay: an initial token on an arc in a dataflow graph

strongly connected: having a directed arc to and from any other node

static schedule: a finite list of firings that is executed forever such that the firings on the list bring the graph back to its original state

quasi-static schedule: a finite list of annotated firings that is executed forever such that the annotations are Boolean conditions under which each firing should occur

dynamic schedule: run-time determination of which actor fires next

balance equation: an equation that relates the number of tokens produced to the number of tokens consumed along a dataflow graph arc

EXAMPLE: Suppose there are 3 concurrent processes that block.

This implementation is dynamic => you don't know if deadlines will be met.

EXAMPLE:

P1 never blocking is legitimate but probably not useful.

What about threading on a processor via time slicing? Suppose P1 produces 10 tokens, P2 consumes 1 token. This is fair but won't execute in bounded memory.

EXAMPLE: Demand-driven

Should P1 and P2 submit demands at the same rate?

Analogy: Hole and electrons; electrons travel one way, holes the other way to make room for the travelling electrons.

EXAMPLE: Data-driven

P1 and P2 can be fired arbitrarily.

Advantage of dataflow: there exists a firing function.

Is Homogeneous SDF Turing-complete? Note that switches and selects are ruled out because of unpredictable consumption and production rules.

EXAMPLE: Turing-completeness

What can you stick in the above actor to make this graph Turing-complete? Side note: If an actor can have an unlimited number of states then it's Turing-complete.

Delays--Initial tokens

EXAMPLE: Implementation of a delay's initial token

Examples of stateless actors are sources and sinks.

EXAMPLE: FSM select (refer to slide lec15.fm, page 4)

COMMON EXECUTION MODELS FOR DATAFLOW

SCHEDULERS

(refer to slide lec16.fm, page 2)

State of the graph is related to the number of tokens on each arc.

Q: Is static scheduling possible for HDSDF?

A: No; It's impossible for

to have a static schedule with no delay but possible with an empty sequence. Still, in general, no.

EXAMPLE: SDF scheduling

ABCACB... never returns to initial state.

Balance Equations

rA*1=rC*1

rA*1=rB*1

rB*2=rC*1

Solve the above set of equations. The trivial solution rA=rB=rC=0 is the only solution.

This is unacceptable since the semantics say that there exists an infinite stream of tokens.

No solution to the balance equations => No bounded memory solution

The denotational semantics imply an infinite sequence of tokens. The operational semantics handle the production of a certain number of tokens and the consumption of a certain number of tokens.

EXAMPLE: SDF scheduling

Balance Equations

rA=rB

rB=rC

rC=rC

rA=rB=rC=i is a solution for each i=1, 2, 3, etc. Therefore, the existence of a solution to the balance equations is necessary but not sufficient for the existence of a static schedule.

EXAMPLE: SDF scheduling

rA*2=rA*2 has a solution.

``enough'' initial tokens plus the existence of a non-trivial solution => the existence of a static schedule

Rule out negative solutions to the balance equations.

EXAMPLE: SDF scheduling

In general, the existence of one solution to the balance equations implies the existence of an infinite number of solutions.

||: AABCDD :|| (using musical ``repeat'' notation) is a possible static schedule. Multitasking is unecessary in a software implementation of this.