Industry Insights

How Millisecond Erases Eat Your Tail Latency: Staggered GC Scheduling and the Cost of Suspend

작성: JH SemiconductorNAND erase / garbage collection / erase suspend

A block erase takes 2 to 5 ms and occupies an entire die, so one badly timed erase can stretch a 65 µs average read into milliseconds. Erase suspend helps but carries hidden costs; the real fix is spreading erases across per-die quotas and using free-block watermarks to throttle host admission.

Three Operations, Two Orders of Magnitude Apart

A NAND page read lands in the tens of microseconds, a page program in the hundreds of microseconds to a millisecond, and a block erase typically takes 2 to 5 ms. Erase is both the slowest step and the only one that cannot be subdivided: the full pulse-and-verify sequence must be applied to the whole block. Garbage collection cost therefore concentrates unevenly on this operation.

The Blocking Happens at the Die, Not Just the Channel

It is tempting to treat this as a bandwidth problem. It is not. NAND busy state has die or LUN granularity: while a die erases, every read mapped to that die queues, no matter how wide the channel. It is a resource-occupancy problem, and it bites hardest at low queue depth. The planned QD1 average read latency for J750/J770 is 65 µs; a read that collides with an erase is pushed into the millisecond range and shows up directly in P99.9.

Erase Suspend and Its Hidden Bill

Enterprise NAND generally supports suspending an erase to service reads and resuming afterwards. The capability is useful but not free: a resumed erase needs pulses reapplied, so total erase time grows, and suspending too often can leave the block incompletely erased, raising the error rate of subsequent programs. That moves the problem from the latency domain into the reliability domain. Firmware must cap how many times a single erase may be suspended and let it run to completion beyond that.

Spreading Erases: Quotas, Staggering, Watermarks

Sound garbage collection does not erase the dirtiest block the moment it is identified. The scheduler holds an erase quota per channel and per die, spreads it evenly across time windows, and steers around bursts of host traffic. Free-block watermarks come in two levels: above the high mark, GC runs entirely in the background and yields to foreground traffic; below the low mark, it switches to foreground throttling, deliberately slowing host write admission rather than letting the latency distribution collapse.

Steady State Is the Condition That Matters

Erase-induced problems never appear on a fresh drive, because free blocks are plentiful and GC barely runs. Any meaningful evaluation must precondition the drive until write amplification stabilises before collecting data. The 600 KIOPS planned for J770 and 300 KIOPS for J750 on 4KB random write are both steady-state figures, and the gap comes largely from different over-provisioning and the resulting GC pressure rather than controller horsepower — both parts share 7,400 MB/s sequential read and 5,500 MB/s sequential write.

키워드
NAND erasegarbage collectionerase suspendtail latencywrite amplificationsteady statedie parallelismJH Semiconductor