THE IDEA
A heartbeat of data
A systolic array is a grid of simple processing elements (PEs). On every clock tick, each PE multiplies the two numbers arriving from its neighbors, adds the product to its total, and passes the numbers on. Data flows through the grid in waves, like blood pumped by a heart. The idea was described by H. T. Kung and Charles Leiserson in the late 1970s.
WATCH IT
Multiply two matrices, tick by tick
Here one matrix enters from the left and the other from the top, each row and column delayed by one tick. Each PE ends up holding one entry of the answer.
THE TPU
Google's Tensor Processing Unit
The simulator showed the classic textbook design. The TPU's version differs a little: weights are loaded and held in the cells, inputs flow in from the left, and partial sums flow down to accumulators below the array.
WHY IT WINS
Short wires, few fetches
Reuse
A weight loaded into a PE is used for many inputs in a row
Short wires
Each PE only talks to its neighbors, so wires stay short and cheap
Simple control
No caches or branch logic per PE: almost all area is math
THE WEAK SPOT
Great for big matrices, not everything
A systolic array shines when matrices are large and regular. Small or oddly shaped work leaves many PEs idle, and anything that is not a matrix multiply runs on separate vector or scalar units. Designers choose the array size to fit the models they expect.
UNIT 6 STUDY COMPLETE
Ready for the Fab Challenge?
You've watched data pulse through a systolic array, seen why it reuses every number it fetches, and met the TPU built around one.