Distributed Computing

, Volume 3, Issue 2, pp 88–105 | Cite as

Synthesizing systolic arrays with control signals from recurrence equations

  • Sanjay V. Rajopadhye


We present a technique for synthesizing systolic arrays which have non-uniform data flow governed by control signals. The starting point for the synthesis is anAffine Recurrence Equation—a generalization of the simple recurrences encountered in mathematics. A large class of programs, including most (single and multiple) nested-loop programs can be described by such recurrences. In this paper we extend our earlier work (Rajopadhye and Fujimoto 1986) in two principal directions. Firstly, we characterize a class of transformations calleddata pipelining and show that they yield recurrences that havelinear conditional expressions governing the computation. Secondly, we discuss the synthesis of systolic arrays that have non-uniform data flow governed by control signals. We show how to derive the control signals in such arrays by applying similar pipelining transformations to theselinear conditional expressions. The approach is illustrated by deriving the Guibas-Kung-Thompson architecture for computing the cost of optimal string parenthesization.

Key words

Synthesizing systolic arrays Control signals Recurrence equations 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Burstall RM, Darlington J (1977) A transformation system for developing recursive programs. J ACM 24:44–67Google Scholar
  2. Cappello PR, Steiglitz K (1984) Unifying VLSI designs with linear transformations of space-time. Adv Comput ResGoogle Scholar
  3. Cassels JWS (1959) An introduction to the geometry of numbers. Springer, Berlin HeidelbergGoogle Scholar
  4. Chen MC (1983) Space-time algorithms: semantics and methodology. PhD thesis, California Institute of Technology, Pasadena, CaGoogle Scholar
  5. Chen MC (1986) A parallel language and its compilation to multiprocessor machines for VLSI. ACM Principles of Programming LanguagesGoogle Scholar
  6. Chen MC (1986) A design methodology for synthesizing parallel algorithms and architectures. J Parallel Distrib Compt 3Google Scholar
  7. Delosme J-M, Ipsen ICF (1985) An illustration of a methodology for the construction of efficient systolic architectures in VLSI. Int Symp on VLSI Technology, Systems and Applications. Taipei, Taiwan, pp 268–273Google Scholar
  8. Delosme J-M, Ipsen ICF (1986) Systolic array synthesis: computability and time cones. In: Cosnard M, Quinton P, Robert Y, Tchuente M (eds) Parallel algorithms and architectures conference. North-Holland, pp 295–312Google Scholar
  9. Fortes JAB, Moldovan D (1984) Data broadcasting in linearly scheduled array processors. Proc 11th Ann Symp on Computer Architecture, pp 224–231Google Scholar
  10. Gachet P, Joinnault B, Quinton P (1987) Synthesizing systolic arrays using DIASTOL. In: Moore A, McCabe W, Urquhart R (eds) Systolic arrays. Hilger, Oxford, EnglandGoogle Scholar
  11. Guerra C, Melhem R (1986) Synthesizing non-uniform systolic designs. Proc Int Conf on Parallel Processing. IEEE, August 1986, pp 765–771Google Scholar
  12. Guibas L, Kung HT, Thompson CD (1979) Direct VLSI implementation of combinatorial algorithms. Proc Conf on Very Large Scale Integration: Architecture, Design and Fabrication, January 1979, pp 509–525Google Scholar
  13. Huang C-H, Lengauer C (1987)a Mechanically derived systolic solutions to the algebraic path problem. In: Proebster WE, Reiner H (eds) Proc VLSI and Computers. IEEE Computer Society Press, pp 307–310Google Scholar
  14. Huang C-H, Lengauer C (1987b) The derivation of systolic implementations of programs, Acta Inf 24:595–632Google Scholar
  15. Jagadish HV, Rao S, Kailath T (1987) Array architectures for iterative algorithms. Proc IEEE 75:1304–1321Google Scholar
  16. Karp RM, Miller RE, Winograd S (1967) The organization of computations for uniform recurrence equations. JACM 14:563–590Google Scholar
  17. Kung HT (1979) Let's design algorithms for VLSI. Proc Caltech Conf on VLSI, January 1979Google Scholar
  18. Kung HT (1982) Why systolic architectures. Computer 15:37–46Google Scholar
  19. Lam MS, Mostow JA (1985) A transformational model of VLSI systolic design. IEEE Comput 18:42–52Google Scholar
  20. Leiserson CE, Saxe JB (1983) Optimizing synchronous systems. J VLSI Comput Syst 1:41–68Google Scholar
  21. Li GJ, Wah BW (1985) Design of optimal systolic arrays. IEEE Trans Comput C-35:66–77Google Scholar
  22. Moldovan DI (1983) On the design of algorithms for VLSI systolic arrays. Proc. IEEE 71:113–120Google Scholar
  23. Melhem RG, Rheinboldt WC (1984) A mathematical model for the verification of systolic networks. SIAM J Comput 13:541–565Google Scholar
  24. Miranker WL, Winkler A (1984) Space-time representation of computational structures. Computing 32:93–114Google Scholar
  25. Quinton P (1983) The systematic design of systolic arrays. Tech rep 216, Institut National de Recherche en Informatique et en Automatique INRIA, July 1983Google Scholar
  26. Rajopadhye SV (1986) Synthesis, optimization and verification of systolic architectures. PhD thesis, University of Utah, Salt Lake City, December 1986Google Scholar
  27. Rajopadhye SV, Fujimoto RM (1986) Systolic array synthesis by static analysis of program dependencies. Tech Rep UUCS-86-0011, University of Utah. Comput Sci Dep, August 1986Google Scholar
  28. Rajopadhye SV, Fujimoto RM (1987) Systolic array synthesis by static analysis of program dependencies. Proc Parallel Architectures and Languages, Europe. Eindhoven, The Netherlands, June 1987. Lect Notes Comput Sci 258. Springer, Berlin Heidelberg New York TokyoGoogle Scholar
  29. Rajopadhye SV, Fujimoto RM (1988) Synthesizing systolic arrays from recurrence equations. Parallel Computing (in press)Google Scholar
  30. Rajopadhye SV, Purushothaman S, Fujimoto RM (1986) On synthesizing systolic arrays from recurrence equations with linear dependencies. Proc, 6th Conf on Foundations of Software Technology and Theoretical Computer Science, New Delhi, India, December 1986. Lect Notes Comput Sci No 241, Springer, Berlin Heidelberg New York TokyoGoogle Scholar
  31. Ramakrishnan IV, Fussell DS, Silberschatz A (1985) Mapping homogeneous graphs on linear arrays. IEEE Trans Comput C-35:189–209Google Scholar
  32. Rao S (1985) Regular iterative algorithms and their implementations on processor arrays. Ph D thesis, Standord University, Information Systems Lab, Stanford, Ca, October 1985Google Scholar
  33. Rao S, Kailath T (1986) What is a systolic algorithm. Proc Highly Parallel Signal Processing Architectures. SPIE, Los Angeles, Ca, January 1986, pp 34–48Google Scholar
  34. Weiser UC, Davis AL (1981) A wavefront notational tool for VLSI array design. VLSI Systems and Computations. Carnegie Mellon University, October 1981, pp 226–234Google Scholar
  35. Yaacoby Y, Cappello PR (1988a) Scheduling a system of affine recurrence equations onto a systolic array. Tech Rep TRCS 87-19, University of California at Santa Barbara, Comput Sci Dept, Santa Barbara, Ca, February 1988Google Scholar
  36. Yaacoby Y, Cappello PR (1988b) Bounded broadcast in systolic arrays. Tech Rep TRCS 88-13, University of California at Santa Barbara, April 1988Google Scholar
  37. Yaacoby Y, Cappello PR (1988c) Converting affine recurrence equations to quasiuniform recurrence equations. AWOC 1988: 3rd Int Workshop on Parallel Computation and VLSI Theory, June 1988. Springer, Berlin Heidelberg New York TokyoGoogle Scholar

Copyright information

© Springer-Verlag 1989

Authors and Affiliations

  • Sanjay V. Rajopadhye
    • 1
  1. 1.Computer Science DepartmentUniversity of OregonEugeneUSA

Personalised recommendations