Skip to main content
Log in

Joint Minimization of Code and Data for Synchronous Dataflow Programs

  • Published:
Formal Methods in System Design Aims and scope Submit manuscript

Abstract

In this paper, we formally develop techniques that minimize the memory requirements of a target program when synthesizing software from dataflow descriptions of multirate signal processing algorithms. The dataflow programming model that we consider is the synchronous dataflow (SDF) model [21], which has been used heavily in DSP design environments over the past several years. We first focus on the restricted class of well-ordered SDF graphs. We show that while extremely efficient techniques exist for constructing minimum code size schedules for well-ordered graphs, the number of distinct minimum code size schedules increases combinatorially with the number of vertices in the input SDF graph, and these different schedules can have vastly different data memory requirements. We develop a dynamic programming algorithm that computes the schedule that minimizes the data memory requirement from among the schedules that minimize code size, and we show that the time complexity of this algorithm is cubic in the number of vertices in the given well-ordered SDF graph. We present several extensions to this dynamic programming technique to more general scheduling problems, and we present a heuristic that often computes near-optimal schedules with quadratic time complexity. We then show that finding optimal solutions for arbitrary acyclic graphs is NP-complete, and present heuristic techniques that jointly minimize code and data size requirements. We present a practical example and simulation data that demonstrate the effectiveness of these techniques.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. W.A. Abu-Sufah, D.J. Kuck, and D.H. Lawrie, “On the performance enhancement of paging systems through program analysis and transformations,” IEEE Transactions on Computers, Vol. C-30, No. 5, pp. 341–356, May 1981.

    Google Scholar 

  2. M. Ade, R. Lauwereins, and J.A. Peperstraete, “Buffer memory requirements in DSP applications,” presented at IEEE Workshop on Rapid System Prototyping, Grenoble, June 1994.

  3. U. Banerjee, Dependence Analysis for Supercomputing, Kluwer Academic Publishers, 1988.

  4. S.S. Bhattacharyya, “Compiling Dataflow Programs for Digital Signal Processing,” Ph.D. Thesis, Memorandum No. UCB/ERL M94/52, Electronics Research Laboratory, University of California at Berkeley, July 1994.

  5. S.S. Bhattacharyya and E.A. Lee, “Scheduling synchronous dataflow graphs for efficient looping,” Journal of VLSI Signal Processing, Vol. 6, No. 3, pp. 271–288, Dec. 1993.

    Google Scholar 

  6. S.S. Bhattacharyya, P.K. Murthy, and E.A. Lee, Software Synthesis from Dataflow Graphs, Kluwer Academic Publishers, Norwell, Ma, 1996.

    Google Scholar 

  7. S.S. Bhattacharyya, P.K. Murthy, and E.A. Lee, “Optimal parenthesization of lexical orderings for DSP block diagrams,” Proceedings of the 1995 IEEE Workshop on VLSI Signal Processing, Japan, Oct. 1995.

  8. S.S. Bhattacharyya, P.K. Murthy, and E.A. Lee, “APGAN and RPMC: Complimentary heuristics for translating DSP block diagrams into software implementations,” Design Automation for Embedded Systems Journal, Jan., 1997'.

  9. J.T. Buck, S. Ha, E.A. Lee, and D.G. Messerschmitt, “Multirate signal processing in Ptolemy,” Proceedings of the International Conference on Acoustics, Speech, and Signal Processing, Toronto, April 1991, Vol. 2, pp. 1245–124

    Google Scholar 

  10. J.T. Buck, S. Ha, E.A. Lee, and D.G. Messerschmitt, “Ptolemy: A framework for simulating and prototyping heterogeneous systems,” International Journal of Computer Simulation, Vol. 4, April 1994.

  11. T.H. Cormen, C.E. Leiserson, and R.L. Rivest, Introduction to Algorithms, McGraw-Hill, 1990'.

  12. M.R. Garey and D.S. Johnson, Computers and Intractability-A Guide to the Theory of NP-Completeness, Freeman, 1979.

  13. S.S. Godbole, “On efficient computation of matrix chain products,” IEEE Transactions on Computers, Vol. C22, No. 9, pp. 864–867, Sept. 1973.

    Google Scholar 

  14. R. Govindarajan, G.R. Gao, and P. Desai, “Minimizing memory requirements in rate-optimal schedules,” Proceedings of the International Conference on Application Specific Array Processors, San Francisco, Aug. 1994, pp. 75–86.

  15. W.H. Ho, E.A. Lee, and D.G. Messerschmitt, “High level dataflow programming for digital signal processing,” VLSI Signal Processing III, IEEE Press, 1988.

  16. B.W. Kernighan and S. Lin, “An efficient heuristic procedure for partitioning graphs,” Bell System Technical Journal, Vol. 49, No. 2, pp. 291–308, Feb. 1970.

    Google Scholar 

  17. R. Lauwereins, P. Wauters, M. Ade, and J.A. Peperstraete, “Geometric parallelism and cyclo-static dataflow in GRAPE-II,” presented at IEEE Workshop on Rapid System Prototyping, Grenoble, June 1994.

  18. R. Lauwereins, M. Engels, J.A. Peperstraete, E. Steegmans, and J. Van Ginderdeuren, “GRAPE: A case tool for digital signal parallel processing,” IEEE ASSP Magazine, Vol. 7, No. 2, pp. 32–43, April 1990.

    Google Scholar 

  19. E.A. Lee and T.M. Parks, “Dataflow process networks,” Proceedings of the IEEE, Vol. 83, No. 5, May, 1995.

  20. E.A. Lee, W.H. Ho, E. Goei, J. Bier, and S.S. Bhattacharyya, “Gabriel: A design environment for DSP,” IEEE Transactions on Acoustics, Speech, and Signal Processing, Vol. 37, No. 11, pp. 1751–1762, Nov. 1989.

    Google Scholar 

  21. E.A. Lee and D.G. Messerschmitt, “Static scheduling of synchronous dataflow programs for digital signal processing,” IEEE Transactions on Computers, Vol. C-36, No. 1, pp. 24–35, Jan. 1987.

    Google Scholar 

  22. D.R. O'Hallaron, “The assign parallel program generator,” Memorandum CMU-CS–91–141, School of Computer Science, Carnegie Mellon University, May 1991.

  23. J. Pino, S. Ha, E.A. Lee, and J.T. Buck, “Software synthesis for DSP using ptolemy,” Invited Paper in Journal of VLSI Signal Processing, Jan. 1995.

  24. S. Ritz, S. Pankert, and H. Meyr, “High level software synthesis for signal processing systems,” Proceedings of the International Conference on Application Specific Array Processors, Berkeley, Aug. 1992, pp. 679–693.

  25. M. Veiga, J. Parera, and J. Santos, “Programming DSP systems on multiprocessor architectures,” Proceedings of the International Conference on Acoustics, Speech, and Signal Processing, Albuquerque, April 1990, Vol. 2, pp. 965–968'.

    Google Scholar 

  26. M. Wolfe, Optimizing Supercompilers for Supercomputers, MIT Press, 1989'.

  27. H. Zima and B. Chapman, Supercompilers for Parallel and Vector Computers, ACM Press, 1990.

  28. V. Zivojnovic, H. Schraut, M. Willems, and R. Schoenen, “DSPs, GPPs, and multimedia applications-An evaluation using DSPStone,” Proceedings of ICSPAT, Nov. 1995.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Murthy, P.K., Bhattacharyya, S.S. & Lee, E.A. Joint Minimization of Code and Data for Synchronous Dataflow Programs. Formal Methods in System Design 11, 41–70 (1997). https://doi.org/10.1023/A:1008633809454

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1008633809454

Navigation