Static Scheduling of Synchronous Data Flow Programs for Digital Signal Processing
- 1 January 1987
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Computers
- Vol. C-36 (1), 24-35
- https://doi.org/10.1109/tc.1987.5009446
Abstract
Large grain data flow (LGDF) programming is natural and convenient for describing digital signal processing (DSP) systems, but its runtime overhead is costly in real time or cost-sensitive applications. In some situations, designers are not willing to squander computing resources for the sake of programmer convenience. This is particularly true when the target machine is a programmable DSP chip. However, the runtime overhead inherent in most LGDF implementations is not required for most signal processing systems because such systems are mostly synchronous (in the DSP sense). Synchronous data flow (SDF) differs from traditional data flow in that the amount of data produced and consumed by a data flow node is specified a priori for each input and output. This is equivalent to specifying the relative sample rates in signal processing system. This means that the scheduling of SDF nodes need not be done at runtime, but can be done at compile time (statically), so the runtime overhead evaporates. The sample rates can all be different, which is not true of most current data-driven digital signal processing programming methodologies. Synchronous data flow is closely related to computation graphs, a special case of Petri nets. This self-contained paper develops the theory necessary to statically schedule SDF programs on single or multiple processors. A class of static (compile time) scheduling algorithms is proven valid, and specific algorithms are given for scheduling SDF systems onto single or multiple processors.Keywords
This publication has 24 references indexed in Scilit:
- Data Flow LanguagesComputer, 1982
- Data Flow SupercomputersComputer, 1980
- Special Feature: Putting Petri Nets to WorkComputer, 1979
- Petri NetsACM Computing Surveys, 1977
- A Preliminary Evaluation of the Critical Path Method for Scheduling Tasks on Multiprocessor SystemsIEEE Transactions on Computers, 1975
- A comparison of list schedules for parallel processing systemsCommunications of the ACM, 1974
- Marked directed graphsJournal of Computer and System Sciences, 1971
- Parallel program schemataJournal of Computer and System Sciences, 1969
- Scheduling Parallel ComputationsJournal of the ACM, 1968
- Parallel Sequencing and Assembly Line ProblemsOperations Research, 1961