Static Scheduling of Synchronous Data Flow Programs for Digital Signal Processing

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.

[1]  T. C. Hu Parallel Sequencing and Assembly Line Problems , 1961 .

[2]  Carol Lochbaum,et al.  A block diagram compiler , 1961 .

[3]  B. J. Karafin The new block diagram compiler for simulation of sampled-data systems , 1965, AFIPS '65 (Fall, part I).

[4]  R. Karp,et al.  Properties of a model for parallel computations: determinacy , 1966 .

[5]  Raymond Reiter,et al.  A study of a model for parallel computations , 1967 .

[6]  Raymond Reiter,et al.  Scheduling Parallel Computations , 1968, J. ACM.

[7]  Michael L. Dertouzos,et al.  On-Line Simulation of Block-Diagram Systems , 1969, IEEE Transactions on Computers.

[8]  Richard M. Karp,et al.  Parallel Program Schemata , 1969, J. Comput. Syst. Sci..

[9]  Amir Pnueli,et al.  Marked Directed Graphs , 1971, J. Comput. Syst. Sci..

[10]  K. Mani Chandy,et al.  A comparison of list schedules for parallel processing systems , 1974, Commun. ACM.

[11]  Walter H. Kohler,et al.  A Preliminary Evaluation of the Critical Path Method for Scheduling Tasks on Multiprocessor Systems , 1975, IEEE Transactions on Computers.

[12]  James E. Rumbaugh,et al.  A Data Flow Multiprocessor , 1977, IEEE Transactions on Computers.

[13]  James L. Peterson,et al.  Petri Nets , 1977, CSUR.

[14]  Granino A. Korn High-speed Block-diagram Languages for Microprocessors and Minicomputers in Instrumentation, Control and Simulation , 1977, Fachtagung Prozessrechner.

[15]  A. L. Davis,et al.  The architecture and system method of DDM1: A recursively structured Data Driven Machine , 1978, ISCA '78.

[16]  Tilak Agerwala,et al.  Special Feature: Putting Petri Nets to Work , 1979, Computer.

[17]  Douglas B Paul,et al.  A Design Study for an Easily Programmable, High-Speed Processor with a General-Purpose Architecture , 1980 .

[18]  Jack B. Dennis,et al.  Data Flow Supercomputers , 1980, Computer.

[19]  Peter M. Kogge,et al.  The Architecture of Pipelined Computers , 1981 .

[20]  Ian Watson,et al.  A Practical Data Flow Computer , 1982, Computer.

[21]  William B. Ackerman,et al.  Data Flow Languages , 1899, Computer.

[22]  Charles M. Rader,et al.  Digital processing of signals , 1983 .

[23]  L. Snyder,et al.  Parallel Programming and the Poker Programming Environment , 1984, Computer.

[24]  David G. Messerschmitt,et al.  A Tool for Structured Functional Simulation , 1984, IEEE Journal on Selected Areas in Communications.

[25]  Robert G. Babb,et al.  Parallel Processing with Large-Grain Data Flow Techniques , 1984, Computer.

[26]  R. Peters,et al.  An NMOS digital signal processor with multiprocessing capability , 1985, 1985 IEEE International Solid-State Circuits Conference. Digest of Technical Papers.

[27]  Hirohisa Gambe,et al.  A High Performance LSI Digital Signal Processor for Communication , 1985, IEEE Journal on Selected Areas in Communications.

[28]  Richard E. Blahut,et al.  Fast Algorithms for Digital Signal Processing , 1985 .

[29]  H. S. Moscovitz,et al.  A programmable digital signal processor with 32b floating point arithmetic , 1985, 1985 IEEE International Solid-State Circuits Conference. Digest of Technical Papers.

[30]  C. S. Jhon,et al.  Silicon compilation based on a data-flow paradigm , 1985, IEEE Circuits and Devices Magazine.

[31]  ベンジャミン ディートリッヒ チャールズ,et al.  Digital signal processor , 1987 .