systolic array


systolic array

[si′stäl·ik ə′rā] (computer science) An array of processing elements of cells connected to a memory which pulses data through the array in such a way that each data item can be used effectively at each cell it passes while being pumped from cell to cell along the array.

systolic array

(architecture, parallel)(By analogy with the regular pumpingof blood by the heart) An arrangement of processors in anarray (often rectangular) where data flows synchronouslyacross the array between neighbours, usually with differentdata flowing in different directions. H. T. Kung and CharlesLeiserson publish the first paper describing systolic arraysin 1978 Each processor at each step takes in data from one or moreneighbours (e.g. North and West), processes it and, in thenext step, outputs results in the opposite direction (Southand East).

An example of a systolic algorithm might be matrixmultiplication. One matrix is fed in a row at a time from thetop of the array and is passed down the array, the othermatrix is fed in a column at a time from the left hand side ofthe array and passes from left to right. Dummy values arethen passed in until each processor has seen one whole row andone whole column. At this point, the result of themultiplication is stored in the array and can now be output arow or a column at a time, flowing down or accross the array.

See also Ruby, SISAL.

systolic array

An array of processing elements (typically multiplier-accumulator chips) in a pipeline structure that is used for applications such as image and signal processing and fluid dynamics. The "systolic," coined by H. T. Kung of Carnegie-Mellon, refers to the rhythmic transfer of data through the pipeline, like blood flowing through the vascular system.