Given a cyclo-static data flow graph, give necessary and sufficient conditions for existence of static schedule, and give construction.
In audio, left and right channel arrive alternately. Behavior is known at compile-time, but not identical at each time step. Synchronous data flow model not powerful enough to model, so introduce cyclo-static data flow.
The consumer / producer of each edge produce one token. Construct static schedule with minimum period (i.e., shortest completion time) with one instance for each task and length-one buffer.
Constant number of tokens produced and consumed at each edge. Doesn’t allow for data-dependent or state-dependent conditionals (i.e., the amount of data consumed or produced depends on data or state).
The firing rule can be any Boolean expression and number of tokens produced or consumed are unknown at compile-time. Very expressive, but buffers might become unbounded.
Number of tokens produced / consumed by a single task is still known at compile-time, but changes periodically.