------------- ---- | | |S | v 2 | 5 | AB | ---- ---- 5 ---- 1 --| A | | B | | | | | | | | | ---- ---- 2 v | | 2 ^ 5 ---- | | | | C | | ---* 10D *--- | | 2 v ---- ---- | C | | | ---- (a) (b)Figure 1: An example of how clustering strongly connected components can aid in generating compact looped schedules. [Figure 4.11 in Software Synthesis from Dataflow Graphs]
Suppose that G is a connected, sample rate consistent SDF graph. If Z1 and Z2 are disjoint nonempty subsets of actors(G), then Z1 is subindependent of Z2 in G if for every edge e in G such that src(e) in Z1 and snk(e) in Z2, we have del(e) >= TNSE(e, G) where TNSE(e, G) = qG(snk(e)) cns(e), i.e., the total number of tokens consumed by snk(e) in a minimal schedule period. If (Z1 is subindependent of Z2) and (Z1 union Z2 = actors(G)), Z1 is subindependent in G, and Z1 and Z2 form a subindependent partition of G. That is, Z1 is subindependent of Z2 if given a minimal periodic schedule G, the data produced by Z2 is never consumed by Z1 in the same schedule period in which it was produced. Thus, at the beginning of each schedule period, all of the data required by Z1 from Z2 for that schedule period is available at the inputs of Z1. [Bhattacharyya, Murthy, Lee; pp. 85-88]
In order for a strongly connected SDF graph G to have a valid single appearance schedule, it must have a subindependent partition Z1 and Z2. We can construct a valid single appearance schedule for G by constructing a valid single appearance schedule for all invocations associated with Z1 and then concatenating a valid single appearance schedule for all invocations associated with Z2. By repeatedly applying this type of decomposition, we can construct single appearance schedules whenever they exist.
If G is a sample rate consistent, nontrivial strongly connected SDF graph, then G is loosely interdependent if G has a subindependent partition. Otherwise, we say that it is tightly interdependent. An SDF schedule can be constructed in polynomial time if no tightly interdependent components exist.