A ---> B ---> C 20 10 20 10
The blocking factor is the unfolding factor of a blocked schedule. A blocked schedule is the infinite repetition of a periodic schedule in which each cycle of the schedule must complete before the next cycle is begun. This is a convenient but inefficient representation for periodic schedules on a multiprocessor system. Consider a parallel implementation of the example SDF graph above, assuming that A, B, and C each takes one cycle to complete their execution, and assume that it takes one cycle to communicate results between processors.
Blocked Schedule Overlapping Schedule
Cycle Cycle
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
- - - - - - - - - - - - - - - - - - -
Processor 1 A B C C A B C C A B C C A B C C
Processor 2 B C C B C C B C C B C C
Given an SDF graph, it is decidable whether or not a rate-optimal schedule is attainable with a finite unfolding factor.
min # delays
IPB = -----------------------
directed sum of computation time
cycles
--> A ----> B ---
| 1 1 1 1 |
| |
-D------ C <------
1 1
Now, we can increase the iteration period bound and therefore increase the throughput of the system if we can improve the throughput of the slowest cycle in the critical path in the graph. We can improve the slowest cycle by retiming it by adding an integer number of delays on all arcs. This will of course propagate delays to the neighbors of the cycle. If we retime the previous graph by one delay,
--> A --D-> B ---
| 1 1 1 1 |
| |
-DD----- C <---D--
1 1
A similar definition of IPB holds for generalized SDF. For general SDF, we also have to take into account the repetitions vector for the directed cycle.
--> A ----> B ---
| 40 20 10 20 |
| |
-40D---- C <-------
10 10