Figure: movement amplification. A_read equals the sum over blocks of n sub b times M sub b, divided by U; A_traffic equals the sum over blocks of n sub b plus delta sub b, times M sub b, divided by U, where U is the unique payload bytes the computation requires, n sub b is the number of promotions and delta sub b the number of demotions. Because KV blocks are write-once, delta sub b is at most 1: once a tier copy exists it stays valid, so later evictions are clean discards. Four block histories follow. A block that never leaves HBM has delta 0 and n 0 and contributes 0. A block written out but never recalled has delta 1 and n 0 and contributes 1. A block written out and recalled once has delta 1 and n 1 and contributes 2, which is the floor for any block that round trips. A block written out and recalled three times has delta 1 and n 3 and contributes 4, which is thrashing. No universal threshold is asserted: an earlier decision tree carried a 1.5 that nothing established, and it is removed. The comparison is against the workload's own lower bound, computed by simulating the same trace under an offline-optimal placement.
Figure 7.4 · Analytical model
Movement amplification — and why the floor is 2, not 1
Two metrics rather than one, and a per-block ceiling that follows from write-once. Placement thrashing and a poor replacement rule look identical in a hit-rate chart; this is the metric that tells them apart.
Two metrics, not one
A_traffic = Σ_b (n_b + δ_b) · M_b / U
Let U be the unique payload bytes the computation requires. For block b, n_b is the number of promotions and δ_b the number of demotions; M_b is its payload size. A_read is promotion traffic per useful byte; A_traffic is total boundary traffic per useful byte.
An earlier revision conflated the two directions and asserted a floor of 1.0. That was wrong, and it is corrected here.
Why write-once fixes the ceiling per block
K and V for a given (sequence, layer, position range) are computed once and never modified. So once a tier copy exists it stays valid, and every later eviction of that block is a clean discard with no writeback. A block therefore leaves HBM at most once in its lifetime, however many times it is promoted back.
That is what makes 2 — not 1 — the floor for any block that round-trips at all: one demotion plus one promotion.
Four block histories
Table view
| Block history | δ_b | n_b | Contributes to A_traffic |
|---|---|---|---|
| Never leaves HBM | 0 | 0 | 0 |
| Written out, never recalled | 1 | 0 | 1 |
| Written out, recalled once | 1 | 1 | 2 — the floor for any block that round-trips |
| Written out, recalled 3× | 1 | 3 | 4 — thrashing |
No universal threshold is asserted.An earlier decision tree carried a 1.5 that nothing in the document established; it is removed. The comparison is against the workload’s own lower bound, computed by simulating the same trace under an offline-optimal placement. Values materially above that bound indicate the placement policy is thrashing — which presents identically to a poor replacement rule in a hit-rate chart, but has a different fix.
Analytical model — data/formal_core.md §0 and §4.1