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_read    =  Σ_b n_b · M_b  /  U
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

write-once  ⇒  δ_b ≤ 1

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

01234A_traffic0never leaves HBMδ=0, n=0written out, never recalled · A_traffic = 11written out, never recalledδ=1, n=0written out, recalled once · A_traffic = 22written out, recalled onceδ=1, n=1the floor for any block that round-tripswritten out, recalled 3× · A_traffic = 44written out, recalled 3×δ=1, n=3thrashingfloor = 2Write-once gives δ_b ≤ 1: once a tier copy exists it stays valid, so later evictions are clean discards.
Table view
Block historyδ_bn_bContributes to A_traffic
Never leaves HBM000
Written out, never recalled101
Written out, recalled once112 — the floor for any block that round-trips
Written out, recalled 3×134 — 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