This page assumes you know nothing but basic arithmetic and what a computer chip roughly is. Every symbol the parent note throws at you is built here from the ground up. Read top to bottom — each block earns the next.
A chip is a flat square of silicon. On it are billions of tiny switches called transistors. Groups of transistors form blocks — some do arithmetic, some fetch instructions, some store data. Everything below is about which blocks are worth building and why.
Figure s01 — the chip floor-plan. Look at the six labelled boxes: the amber box is the ALU where the actual math happens; every white box (fetch, decode, branch prediction, reorder, cache) is overhead — work spent guessing and shuffling, not computing. Notice how few boxes are amber. That imbalance is the whole reason DSAs exist: delete the white boxes for one fixed job and almost all the energy goes to real math.
Figure s02 — why shrinking stopped being free. Follow the cyan line first: during the Dennard era, generation after generation, power density stays flat — free lunch. At the dashed line (~2006) the amber line takes over and climbs steeply: each new generation now pours more heat into the same square millimetre. The amber arrow points to the consequence — you hit the power-density ceiling and must leave transistors dark.
Figure s03 — load once, stream, reuse. The white arrows drop weights down into the grid — each weight is loaded once and stays. The amber arrows push activations rightward, one column of cells to the next. Follow a single weight sitting in a cell: every activation that flows past it triggers one MAC, so that one loaded number is reused N times across the row. That reuse — many operations per byte fetched — is exactly what the next section calls arithmetic intensity.
This is the most symbol-heavy idea in the parent note, so we build every letter.
Figure s04 — reading the roofline. Two ceilings form the "roof": the sloped amber line (slope =B, the memory limit — how fast bytes arrive) and the flat white line (Ppeak, the compute limit). Your kernel is a vertical position on the intensity axis. The amber dot at I=50 lands on the sloped part, well below Ppeak: you are memory-bound, capped at 15 TOPS. The dotted "ridge" at I=300 is where the two ceilings meet — only kernels to the right of it are compute-bound. Moving the dot rightward (more reuse) is the only way to climb here.
Cover the right side and answer aloud. If any one stumps you, re-read its section above.
What is the difference between energy and power, and their units?
Energy is total work-cost per operation (pJ); power is energy per second (W=J/s).
What is power density and why does it have a ceiling?
Power per unit area (W/mm2); too high and the chip overheats, so it is capped.
What did Dennard scaling promise and what broke?
Shrinking transistors kept power density constant (free speed); it ended ~2006 so more transistors now mean more heat per area.
What is dark silicon?
The fraction of a chip we must keep switched off because we can't power/cool all transistors at once.
State Pollack's Rule and one reason it holds.
Single-core speed grows only as area; area is two-dimensional but extra machinery raises single-stream speed only one-dimensionally, with diminishing returns.
What does Amdahl's Law tell a DSA designer?
If fraction f of work can't be accelerated, overall speedup can never beat 1/f, so you still need a CPU for the rest — hence heterogeneous systems.
What is a MAC?
Multiply-accumulate: acc←acc+a×b, the core operation of matrix multiply.
What does big-O like O(N2) mean?
"Grows roughly like N2 ignoring constants" — double N and the quantity roughly quadruples.
Why does a systolic array reduce memory traffic?
Load data once and stream it, reusing each value O(N) times across the grid.
Why does multiplier cost scale as n2?
A multiplier is an n×n array of adder cells (n shifted rows, each n bits wide), so doubling bit-width quadruples area.
Define arithmetic intensity I and its unit.
I=ops/Q, operations per byte moved.
Write the Roofline equation and name its two ceilings.
Pattain=min(Ppeak,B×I); peak compute and memory-bandwidth×intensity.
Memory-bound vs compute-bound — which condition?
Memory-bound when B×I<Ppeak; compute-bound when B×I≥Ppeak.