This paper describes a new wavefront array architecture which can efficiently execute sequences of matrix operations, as are typically found in many real-world signal processing problems. The systolic algorithms described in the literature have usually been derived for single matrix operations, without regard for how one might combine them with other matrix operations in a useful sequence. A modified wavefront array architecture allows a sequence of operations to be systolized without sacrificing the efficiency of the individual systolic algorithms in the sequence. The approach consists of dividing the sequence of matrix operations into tasks (each task is one operation) and systolizing each task such that the positioning of data values for input and output is compatible with that required by the preceding and following tasks. The wavefront array then pipelines a sequence of tasks, with the head element of the array beginning a new task as soon as it completes the preceding task. Each wavefront initiates a task iteration when it arrives at a processing element. To increase the speed of the array, wavefronts are passed on when an element begins executing a task iteration rather than after it finishes the task iteration. When this is done, dataflow rather than wavefront propagation determines the execution time of the array for each task. Several examples of matrix operation sequences have been tested on the architecture in simulation, and the results are reported.
J. Reid Rowlett,
"A Wavefront Array Architecture For Executing Sequences Of Matrix Operations", Proc. SPIE 0827, Real-Time Signal Processing X, (25 November 1987); doi: 10.1117/12.942050; https://doi.org/10.1117/12.942050