Lecture 05 – Data Flow Modeling

Ryan Robucci

• Spacebar to advance through slides in order
• Shift-Spacebar to go back
• Arrow keys for navigation

• ESC/O-Key to see slide overview
• ? to see help

Printable Version

Table of Contents

References

Book View

†Schaumont

Introduction to Data Flow Graphs

Representation of Algorithms

†Schaumont

Fig 2.1 Example: Pulse Amplitude System ^\dagger

Data Flow Modeling and Data Flow Graphs

†Schaumont

Fig. 2.2 ^\dagger

Actors represent functions operating on the data

Use of Actors in DFGs represents

†Schaumont

Fig 2.3^\dagger

Fig 2.3^\dagger

Fig 2.5: Data flow actor with production and consumption rates ^\dagger

Synchronous Data Flow (SDF) Graphs

†Schaumont
Fig. 2.8 multiple execution paths to same result [$^\dagger$](http://rijndael.ece.vt.edu/gezel2/book.html)

†Schaumont

Periodic Admissible Sequential Schedules (PASS)

PASS Derivation

Example:

†Schaumont
†Schaumont

Three Firing Nodes A,B,C and three edges:
G=ABC[240102011]edge(A,B)edge(A,C)edge(B,C)G= \begin{matrix} A\quad B\quad C\\ \begin{bmatrix} 2 & -4 & 0\\ 1 & 0 & -2\\ 0 & 1 & -1 \end{bmatrix} \end{matrix} \begin{matrix} \\ \begin{matrix} \leftarrow edge(A,B)\\ \leftarrow edge(A,C)\\ \leftarrow edge(B,C) \end{matrix} \end{matrix}
(2.1)^\dagger

The residual tokens left on the edges after these firings are two tokens on edge(A,B) and a token on edge(A,C):

q=[#A fires#B fires#C fires]q=\begin{bmatrix}\#A\ \rm fires\\\#B\ \rm fires\\\#C\ \rm fires\end{bmatrix}

q=[200]q=\begin{bmatrix}2\\0\\0\end{bmatrix} (2.2)

(2.3) * Correction Shown: Equation 2.3 Should have solution: [4 2 0] not [2 1 0]

Verification of Relative Rates:

matrix A Ax2 B Bx1 A->B 4x1:-4 2x2:+4 C Cx1 A->C 2x1:-2 1x2:+2 B->C 1x1:-1 1x1:+1

Derivation of Periodic Schedule:
A:22
B:11
C:11

matrix A Ax2 B Bx1 A->B 4 2 C Cx1 A->C 2 1 B->C 1 1

Start with an initial marking with NO tokens. If needed, you can rework the system with initial tokens added.

A:21\cancel 2 1 A can fire
B:11
C:11

matrix A A B B A->B 4 2 C C A->C 2 1 t1 A->t1 t5 A->t5 B->C 1 1 t2 t1->t2 t2->B t5->C

B:11 can't fire
C:11 can't fire
A can fire:
A:210\cancel 2 \cancel 1 0

matrix A A B B A->B 4 2 C C A->C 2 1 B->C 1 1 t1 t2 t3 t4 t5 t6

A:210\cancel 2 \cancel 1 0
B:10\cancel 1 0 can fire
C:11

matrix A A B B A->B 4 2 C C A->C 2 1 B->C 1 1 t5 t6 t7

A:210\cancel 2 \cancel 1 0
B:10\cancel 1 0
C:10\cancel 1 0 can fire

matrix A A B B A->B 4 2 C C A->C 2 1 B->C 1 1

Initial Tokens

Data Flow Limitations

Conditional Execution/Firing

in software:

if (condition)
  perform A with input  
else
  perform B with input

instead:

perform concurrently 1. A with input and
                     1. B with input
             producing two results
if (condition)
  use result from A
else 
  use result from B

the sel actor acts just like a mux

Another Example if time allows: PAM

†Schaumont
†Schaumont
†Schaumont

Time and Resource Modeling

†Schaumont

Loop and Iteration Bound

Outer-Loop Loop Bound