EE290N - Specification and Modeling of Reactive Real-Time Systems
Lecture 14 - October 10, 1996, Scribe: Ravi Gunturi
The notion of a monotonic function was reviewed from last lecture. From the
viewpoint of providing information, a monotonic function can provide a partial
set of information about its ouputs given a partial set of information about
its inputs.
Notation <= is the prefix order,
Pi is the projection function
Sequential Functions
The term "sequential" has a few connotations. In circuits, sequential implies
having the notion of a state, while in a programming language, it means that a
program is executed as a sequence of steps. The notion of sequentiality we are
interested in examining is called Vuillemin Sequentiality.
Definition A function F: SN ->
SM is Vuillemin Sequential if
- The function F is continuous
- Given s in SN, there exists an i, 1<= i <= N such
that for all s' in SN with s <= s'
and P i ( s ) = P i ( s' ),
F( s ) = F ( s' ).
Vuillemin Sequential functions characterize Kahn/McQueen processes with
blocking reads. Kahn/McQueen blocking reads stipulate:
A process is a sequence of steps
The sequence of steps cannot continue until an input appears
The process cannot query to see if the input is present
Therefore, for any pattern of inputs there is only one input that we are
blocking on. The act of looking at (or blocking on) inputs will occur in a
well-defined sequence.
Examples
- The Fair-Merge process discussed in previous lectures is not V-Sequential.
It was shown before that the functionality of this process cannot be
implemented using Kahn/McQueen semantics.
- The identity function F: S2 -> S2
is not V-Sequential
- The identity function F: S -> S (i.e, one input and
one output) is V-Sequential
Examples (2) and (3) show that in general a Vuillemin Sequential process is
not composable. An appropriate definition of compositionality from a
programming language perspective is that an aggregation of sub-programs behave
like a primitive in the language.
Dataflow Processes
Dataflow Processes are a special case of Kahn/McQueen process networks. A
sequence of firings is a dataflow process or actor. A firing
consumes input tokens and produces output tokens. A set of firing rules specify
when an actor can fire.
Formally, a dataflow process F = maps( f ), where
f : S m -> S n is the firing
function.
We would like to choose f such that F is
continuous, composable, and determinate.
In order to satisfy the above stated constraints on F, it is
sufficient that f be Vuillemin-Sequential! It is not sufficient however,
for f to be continuous or stable or Kahn-Plotkin.
Definition A function F is stable if
- it is a continuous function
- For all joinable Q such that Q is a subset of SN,
F( Q ) is joinable and F( inf Q ) =
inf F ( Q ) where inf ( A ) is the infimum or
greatest lower bound of the set A.
The above mentioned definition of stability was proposed by Gerard Berry.
Gustave Function
The Gustave function is an example of a function which is stable but not
Vuillemin Sequential. The function is defined as follows over a set of values
V = { 0, 1 }:
Let [0...] be the sequence which begins with 0.
Let [1...] be the sequence which begins with 1.
Let [....] be the sequence which begin with 0, 1, or lambda. Then,
F([....], [0...], [1...]) = [0]
F([1...], [....], [0...]) = [0]
F([0...], [1...], [....]) = [0]
Any other input sequence produces [0 1].
The Gustave function is monotonic and stable but it is not sequential.
Constraints on dataflow processes
The firing rules impose a partial ordering constraint on the actor firings.
Other practical constraints are
Scheduling cost: scheduling must be done as much as possible at compile
time.
The number of unconsumed tokens should be bounded throughout execution if
possible for the given graph.
The graph should not halt if there are enabled actors.
Subsequent lectures will address these constraints.