Lpddr6 & Kv Cache
LPDDR6 and the KV cache are two halves of the same problem: large-language-model inference is limited by how fast memory can be read, not by how fast a chip can multiply. LPDDR6 roughly doubles per-pin bandwidth over LPDDR5X while improving energy per bit, which matters because the KV cache — the attention state a transformer keeps for every token it has already seen — must be streamed out of memory in full for every single new token generated. Processing-in-memory (PIM) attacks the same wall from the opposite direction by performing arithmetic inside the DRAM so the data never has to move at all.
What the KV cache is and why it dominates. During autoregressive generation a transformer caches the key and value projections for every token processed so far, so it does not recompute them. The cache size grows linearly with context length:
where $L$ is layers, $H$ is key/value heads, $d_{head}$ the head dimension, $N_{tokens}$ the context length, $P$ the bytes per element, and the leading 2 counts keys and values. For a 70B-class model at 128k context this reaches tens of gigabytes. The crucial property is not its size but its access pattern: generating one token requires reading essentially the *entire* cache, while performing very little arithmetic on each byte fetched.
Arithmetic intensity explains everything. The roofline model says achievable performance is bounded by $\min(\text{peak FLOPs},\ I \times BW)$, where $I$ is arithmetic intensity in FLOPs per byte. Training's dense matrix multiplications have high $I$ and keep tensor cores saturated. Attention over the KV cache has $I$ below 1 — it is a streaming read with almost no reuse. That places decode far to the left of the roofline knee, where performance is set purely by $BW$. The practical consequence is blunt: in the decode phase, doubling memory bandwidth nearly doubles tokens per second, while doubling peak FLOPs changes almost nothing.
What LPDDR6 changes. LPDDR6 raises per-pin signalling to roughly 24 Gb/s against LPDDR5X's 9.6 Gb/s, restructures the channel into paired 48-bit channels with independent subchannels, and lowers operating voltage so that energy per bit improves rather than merely holding flat. It will not match HBM's per-stack bandwidth — HBM4 reaches about 2 TB/s per stack because it runs a 2048-bit bus across a silicon interposer — but it does not need a interposer, a TSV stack, or the packaging cost that comes with them. That makes LPDDR6 the memory of choice wherever bandwidth per dollar and bandwidth per watt matter more than absolute peak: phones, laptops, automotive inference, and the growing class of inference accelerators that cannot justify HBM economics.
| Metric | LPDDR5X | LPDDR6 | HBM4 |
|---|---|---|---|
| Per-pin data rate | ~9.6 Gb/s | ~24 Gb/s | ~8 Gb/s |
| Interface width | 16-bit channels | 24-bit × 2 subchannels | 2048-bit |
| Bandwidth per device/stack | ~77 GB/s | ~150+ GB/s | ~2 TB/s |
| Packaging | Standard PoP / on-board | Standard PoP / on-board | 2.5D interposer + TSV |
| Relative cost per GB | Low | Low | Very high |
| Typical use | Phones, laptops | Phones, edge AI, inference | Training, frontier inference |
Processing-in-memory — stop moving the data. Fetching a byte from DRAM into a compute unit costs on the order of a hundred times more energy than the arithmetic performed on it. PIM inverts the arrangement by placing multiply-accumulate units next to the DRAM banks themselves, at the sense amplifiers, so the enormous internal bandwidth of the array is consumed in place instead of being squeezed through the external pins. Samsung's HBM-PIM and SK hynix's AiM both implement this idea commercially. For attention workloads the fit is unusually good, because the operation is a streaming dot product over data that is already sitting in the array.
The obstacle is software, not silicon. PIM changes the programming model: the kernel must be expressed as operations the in-memory units can execute, data layout must match bank organisation, and the compiler has to decide what runs in memory versus on the accelerator. Until that toolchain is routine, PIM remains a specialised path rather than a drop-in bandwidth upgrade.
Three strategies, one wall. Each approach trades differently:
| Strategy | Mechanism | Strength | Cost |
|---|---|---|---|
| HBM4 | Widen the bus to 2048-bit over an interposer | Highest absolute bandwidth | Interposer, TSVs, price, heat |
| LPDDR6 | Faster pins, better pJ/bit, standard packaging | Best bandwidth per dollar and per watt | Far below HBM in absolute terms |
| PIM | Compute inside the DRAM | Best energy per bit — data never moves | Needs a new programming model |
| Software | Paged/quantised KV cache, GQA, MLA | Shrinks the cache itself | Accuracy and complexity tradeoffs |
The software lever is real. Because the KV cache is the thing being streamed, shrinking it is mathematically equivalent to widening the bus. Grouped-query attention reduces the number of key/value heads, cutting cache size several-fold. Multi-head latent attention compresses the cache into a lower-rank form. Quantising the cache to 8-bit or 4-bit halves or quarters it directly. PagedAttention avoids the fragmentation that wastes cache capacity. In practice these techniques often deliver a larger end-to-end speedup than a memory generation does, and they compose with it — a smaller cache on a wider bus multiplies.
What this means for system design. If a workload is dominated by long-context decode, the right questions are how many bytes of KV cache each token touches, whether that cache fits in the fastest memory available, and whether the attention variant can be changed to make it smaller. Peak FLOPs is close to irrelevant in that regime. LPDDR6 moves the achievable floor up for cost-sensitive inference hardware, HBM4 moves the ceiling up for frontier systems, and PIM proposes that the most efficient byte is the one that is never transferred at all.