DRAM cells leak charge, so the controller must meet the selected device's refresh requirements. tREFI is the average interval between refresh commands, not the time in which every row is refreshed. For a concrete DDR4 example, Frontgrade UT8SD4MQ2G72 datasheet version 0.0.3, page 47, specifies 8,192 refresh cycles over 64 ms at 0–85°C, with tREFI approximately 7.8 µs. A single refresh command covers only part of that overall work.
tRFC is the refresh recovery interval, a different timing parameter from tREFI. Which banks or ranks are unavailable depends on the selected device and refresh mode. Do not assume a per-bank refresh option exists just because a device is DDR4. Any refresh postponement must stay within its specified limits; the controller cannot defer required refresh indefinitely.
REFRESH TIMESCALES (not to scale)
REF command -> recovery tRFC -> service -> next REF
|<---------- average interval tREFI ---------->|
Many REF commands cover the full refresh window.
tREFI is not that window and is not the stall duration.
Example question: is the 64 ms window one continuous stall?
No. Commands and their recovery intervals are distributed over it.Estimate refresh occupancy from the selected mode's tRFC and refresh schedule; measure workload delay separately.
All-bank refresh makes the selected rank unavailable; other-rank scheduling depends on the controller and shared channel constraints.
Low-power self-refresh has its own entry/exit latency cost.
A row hit finds the requested row already active, so the controller can schedule a column READ or WRITE when timing permits. An idle bank has no active row and needs ACTIVATE before the column command. A row conflict finds a different row active in that bank and therefore needs PRECHARGE, ACTIVATE and then the column command, subject to the selected device's timing values.
Sequential requests can create row hits when address mapping and row boundaries keep them in the same active row. Strided or random requests may create conflicts, but bank interleaving, scheduler reordering and the exact address map determine the result. Measure command counts and latency for the actual replay rather than assigning generic nanosecond ranges.
BANDWIDTH LOSS WATERFALL
peak ████████████████████████
- refresh █████████████████████
- turnaround ██████████████████
- row miss ██████████████
effective ██████████████Estimate refresh occupancy from the selected mode's tRFC and refresh schedule; measure workload delay separately.
All-bank refresh makes the selected rank unavailable; other-rank scheduling depends on the controller and shared channel constraints.
Low-power self-refresh has its own entry/exit latency cost.