Distinguish command legality, measured margin and throughput accounting.
Try these before opening the explanations. This is a self-assessment, not a stored score or certification.
No. Close A when legal, meet tRP before ACTIVATE Z, then tRCD and other selected-device restrictions before the column access. PHY training cannot repair illegal controller command timing.
No. 350/7,800 is about 4.49% rank occupancy for that schedule. Other ranks can overlap work, and reported causes can overlap in time. Measure accepted useful bytes and classify overlapping constraints without counting the same interval twice.
Ready to continue when you can produce:
A same-bank row-conflict command sequence with selected-device timing references.
Margin observations and a refresh occupancy calculation with explicit assumptions.
Measure useful bytes per elapsed time, then correlate rank availability, bank/row state, command timing, direction changes, queueing and the offered traffic. Refresh occupancy at one rank is not automatically channel-wide bandwidth loss, and reported stall causes can overlap. Use the selected device/mode and avoid subtracting the same interval twice.
Common trap: Multiplying width×frequency only or adding every reported loss percentage independently.
It establishes the timing and/or voltage relationships implemented by the selected memory and PHY—for example write DQS-to-CK, DQ-to-DQS capture relationships or a supported voltage threshold. A pass at one condition is not a lifetime or all-corners guarantee.
Common trap: Calling every training step an eye-centre search or assuming one boot result covers product life.
A hit can issue the column command when timing permits. An idle bank needs ACTIVATE first. A conflict needs PRECHARGE of the active row, then ACTIVATE and the column command. Device timings, scheduler and queueing determine the measured latency.
Common trap: Calling every non-hit a precharge-plus-activate conflict.