Synchronous data flow

Data flow is a natural paradigm for describing DSP applications for concurrent implementation on parallel hardware. Data flow programs for signal processing are directed graphs where each node represents a function and each arc represents a signal path. Synchronous data flow (SDF) is a special case of data flow (either atomic or large grain) in which the number of data samples produced or consumed by each node on each invocation is specified a priori. Nodes can be scheduled statically (at compile time) onto single or parallel programmable processors so the run-time overhead usually associated with data flow evaporates. Multiple sample rates within the same system are easily and naturally handled. Conditions for correctness of SDF graph are explained and scheduling algorithms are described for homogeneous parallel processors sharing memory. A preliminary SDF software system for automatically generating assembly language code for DSP microcomputers is described. Two new efficiency techniques are introduced, static buffering and an extension to SDF to efficiently implement conditionals.

[1]  Edward G. Coffman,et al.  Computer and job-shop scheduling theory , 1976 .

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

[3]  J. Zeman,et al.  Systematic design and programming of signal processors, using project management techniques , 1983 .

[4]  G. Ungerboeck,et al.  Fractional Tap-Spacing Equalizer and Consequences for Clock Recovery in Data Modems , 1976, IEEE Trans. Commun..

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

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

[7]  Krishna M. Kavi,et al.  A Formal Definition of Data Flow Graph Models , 1986, IEEE Transactions on Computers.

[8]  T. Agerwala,et al.  Putting Petri nets to work , 1989 .

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

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

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

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

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

[14]  Richard P. Hopkins,et al.  Data-Driven and Demand-Driven Computer Architecture , 1982, CSUR.

[15]  I. Waston,et al.  A practical data flow computer , 1982 .

[16]  Jack B. Dennis,et al.  A computer architecture for highly parallel signal processing , 1974, ACM '74.

[17]  Edward A. Lee,et al.  Static Scheduling of Synchronous Data Flow Programs for Digital Signal Processing , 1989, IEEE Transactions on Computers.

[18]  WILLIAM B. ACKERMAN Data flow languages , 1979, 1979 International Workshop on Managing Requirements Knowledge (MARK).

[19]  Richard M. Karp,et al.  The Organization of Computations for Uniform Recurrence Equations , 1967, JACM.

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

[21]  Robert M. Keller,et al.  Data Flow Program Graphs , 1982, Computer.

[22]  David A. Padua,et al.  High-Speed Multiprocessors and Compilation Techniques , 1980, IEEE Transactions on Computers.

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

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

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

[26]  Mark A. Randolph,et al.  Optimum implementation of single time index signal flow graphs on synceronous multiprocessor machines , 1982, ICASSP.

[27]  Sanjit K. Mitra,et al.  An approach to the implementation of digital filters using microprocessors , 1978 .

[28]  Thomas Kailath,et al.  Regular iterative algorithms and their implementation on processor arrays , 1988, Proc. IEEE.

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

[30]  James Lyle Peterson,et al.  Petri net theory and the modeling of systems , 1981 .

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

[32]  A.V. Oppenheim,et al.  Analysis of linear digital networks , 1975, Proceedings of the IEEE.

[33]  David Aaron Schwartz,et al.  Synchronous multiprocessor realizations of shift-invariant flow graphs , 1985 .

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

[35]  Edward Ashford Lee A coupled hardware and software architecture for programmable digital signal processors (synchronous data flow) , 1986 .

[36]  Markku Renfors,et al.  The maximum sampling rate of digital filters under hardware speed constraints , 1981 .

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

[38]  D. D. Falconer,et al.  Jointly adaptive equalization and carrier recovery in two-dimensional digital communication systems , 1976, The Bell System Technical Journal.

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

[40]  Edward A. Lee,et al.  Pipeline interleaved programmable DSP's: Architecture , 1987, IEEE Trans. Acoust. Speech Signal Process..

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

[42]  Thomas P. Barnwell,et al.  Optimal implementation of signal flow graphs on synchronous multiprocessors , 1982, ICPP.

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

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

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