Introduction to Data Flow Graphs and their Scheduling . Sources: Gang Quan. Computational Models. What: A conceptual notion for expressing the function of a system DFG (Design Flow Graph) FSM, Petri net, Turing machine, etc. Computational Models & Languages
Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.
Introduction to Data Flow Graphs and their Scheduling
Sources: Gang Quan
Should be “big” (powerful) enough enough to precisely express the function of the system with unambiguity, should be “small” enough to have synthesis and verification tools to support it.
4
c
a
2
x
x
1
**
x

sqrt
+

/
/
X2
X1
Constant
Multiplication
Square root
Division
Nodes of DFG can be any operators, also very complex operators
x a + b;
y a * c;
z x + d;
x y  d;
x x + c;
Data flow graph constructionc
d
b
a
+
*
+
+

x
y
z
x
x
x a + b;
y a * c;
z x + d;
x y  d;
x x + c;
singleassignment form:
x1 a + b;
y a * c;
z x1 + d;
x2 y  d;
x3 x2 + c;
Data flow graph constructionx1 a + b;
y a * c;
z x1 + d;
x2 y  d;
x3 x2 + c;
c
d
b
a
+
*

+
y
x1
+
z
x2
x3
Data flow graph construction….
x <= a + b;
y <= a + c;
x <= x  c;
….
….x …
….y….
….
x <= a + b;
y <= a + c;
x <= x  c;
….
….x …
….y….
three registers
a
+
c
d
+
+
f
e
A Mapping ExampleWe assume two adders and four registers and next do synthesis for this assumption.
But how do we know how many to assume?
b
a
+
c
R1
R2
R3
d
+
+
Adder 2
Adder 1
f
e
R1: a
R2: b, c, e
R3: d, f
Mapping may not be unique !
/
+
**
1
/
+
**
t=1


t=2
*
t=3
1
*
+
t=4
+
ASAP scheduling for DFGStart from t=0
Nodes fire whenever the input data are available.
/
+
t=1

**
t=2
1
*
t=3
+
t=4
ALAP Scheduling for DFG/
+
**

1
*
+
Nodes fire when absolutely necessary.
Start from the terminal values of t
t=0
/
+
**
1
/
/
+
+
**
t=1
t=1



**
t=2
t=2
1
*
*
t=3
t=3
1
*
+
+
t=4
t=4
+
Mobilityu here is the mobility list
u
We will use
this list
in next
scheduling
method
0
+
0
/
ASAP
0

1
**
0
*
ALAP
2
1
0
+
The node mobility represents its flexibility in the fire sequence.
+
**

1
*
+
Restrained Scheduling4
c
a
2
x
x
1
**
x

sqrt
+

/
/
X2
X1
Time ConstraintsHow many units of time the graph needs to complete (we assume it)
T
6
7
8
2
1
1
+/
*//
2
2
1
1
1
1
**
sqrt
1
1
1
1
1
1
1
This shows how many various blocks we need if 6 fires.
This shows how many various blocks we need if 8 fires.
+
**

1
*
+
Resource Constraints+
+

*
+
+
0 0 1 0 0 2 0
u
List Based Scheduling/
+
+

t=0
/
+
t=1
+
*

t=2
+
+
t=3
*
+
Such that there is
one +/,
one *//
t=4
+
t=5
Y
N
fun1
cond1
fun2
fun3
test1
fun4
fun5
fun6
fun7
CDFG Examplefun0();
if (cond1) fun1();
else fun2();
fun3();
switch(test1) {
case 1: fun4(); break;
case 2: fun5(); break;
case 3: fun6(); break;
}
fun7();