Computer architecture & accelerators

Systolic array

A systolic array is a grid of identical tiny processing elements (PEs) that pump data through themselves rhythmically, like blood through a heart — the name comes from 'systole', a heartbeat. Each PE does one multiply-and-add, then passes its operands to its neighbours on the next clock tick. Data flows across the array, partial sums accumulate as they travel, and a matrix multiplication that would take thousands of separate memory trips completes as one smooth wave of computation.

The genius is data reuse: a value loaded once into the edge of the array ripples through hundreds of PEs, each reusing it, so you fetch from memory a tiny fraction as often as a normal processor would. That is exactly what makes them perfect for the matrix multiplies at the heart of deep learning. Google's Tensor Processing Unit (TPU) is famously a 256×256 systolic array — 65,536 multiply-accumulate units beating in lockstep, which is why it crushes a CPU at neural-network math while sipping less power.

Google's TPU systolic array: 65,536 multiply-accumulate units fed by streaming data.

Systolic arrays excel at dense, regular matrix math but are inflexible — they do one kind of operation very well. That trade of generality for efficiency is the essence of a domain-specific architecture.

Also called
脈動陣列PE arraymatrix engine