# Synthesizing systolic arrays with control signals from recurrence equations

## Abstract

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 an*Affine 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 called*data pipelining* and show that they yield recurrences that have*linear 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 these*linear 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## Preview

Unable to display preview. Download preview PDF.

### References

- Burstall RM, Darlington J (1977) A transformation system for developing recursive programs. J ACM 24:44–67Google Scholar
- Cappello PR, Steiglitz K (1984) Unifying VLSI designs with linear transformations of space-time. Adv Comput ResGoogle Scholar
- Cassels JWS (1959) An introduction to the geometry of numbers. Springer, Berlin HeidelbergGoogle Scholar
- Chen MC (1983) Space-time algorithms: semantics and methodology. PhD thesis, California Institute of Technology, Pasadena, CaGoogle Scholar
- Chen MC (1986) A parallel language and its compilation to multiprocessor machines for VLSI. ACM Principles of Programming LanguagesGoogle Scholar
- Chen MC (1986) A design methodology for synthesizing parallel algorithms and architectures. J Parallel Distrib Compt 3Google Scholar
- 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
- 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
- Fortes JAB, Moldovan D (1984) Data broadcasting in linearly scheduled array processors. Proc 11th Ann Symp on Computer Architecture, pp 224–231Google Scholar
- 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
- Guerra C, Melhem R (1986) Synthesizing non-uniform systolic designs. Proc Int Conf on Parallel Processing. IEEE, August 1986, pp 765–771Google Scholar
- 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
- 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
- Huang C-H, Lengauer C (1987b) The derivation of systolic implementations of programs, Acta Inf 24:595–632Google Scholar
- Jagadish HV, Rao S, Kailath T (1987) Array architectures for iterative algorithms. Proc IEEE 75:1304–1321Google Scholar
- Karp RM, Miller RE, Winograd S (1967) The organization of computations for uniform recurrence equations. JACM 14:563–590Google Scholar
- Kung HT (1979) Let's design algorithms for VLSI. Proc Caltech Conf on VLSI, January 1979Google Scholar
- Kung HT (1982) Why systolic architectures. Computer 15:37–46Google Scholar
- Lam MS, Mostow JA (1985) A transformational model of VLSI systolic design. IEEE Comput 18:42–52Google Scholar
- Leiserson CE, Saxe JB (1983) Optimizing synchronous systems. J VLSI Comput Syst 1:41–68Google Scholar
- Li GJ, Wah BW (1985) Design of optimal systolic arrays. IEEE Trans Comput C-35:66–77Google Scholar
- Moldovan DI (1983) On the design of algorithms for VLSI systolic arrays. Proc. IEEE 71:113–120Google Scholar
- Melhem RG, Rheinboldt WC (1984) A mathematical model for the verification of systolic networks. SIAM J Comput 13:541–565Google Scholar
- Miranker WL, Winkler A (1984) Space-time representation of computational structures. Computing 32:93–114Google Scholar
- 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
- Rajopadhye SV (1986) Synthesis, optimization and verification of systolic architectures. PhD thesis, University of Utah, Salt Lake City, December 1986Google Scholar
- 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
- 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
- Rajopadhye SV, Fujimoto RM (1988) Synthesizing systolic arrays from recurrence equations. Parallel Computing (in press)Google Scholar
- 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
- Ramakrishnan IV, Fussell DS, Silberschatz A (1985) Mapping homogeneous graphs on linear arrays. IEEE Trans Comput C-35:189–209Google Scholar
- 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
- 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
- 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
- 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
- Yaacoby Y, Cappello PR (1988b) Bounded broadcast in systolic arrays. Tech Rep TRCS 88-13, University of California at Santa Barbara, April 1988Google Scholar
- 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