Return
Resolving Gray Code Dilemma With Bidirectional Programming for Efficient QLC SSDs
DOI:10.1109/TCAD.2025.3637010.png)
Abstract
En 中文
Quad-level cell (QLC)NAND flash is widely adopted in modern storage systems. By trading off read/write performance for storage density through a “time-for-space” approach, QLC enables ultrahigh storage capacity. To mitigate performance degradation, Gray code and the two-step programming (TSP) algorithm are used. However, Gray code also has limitations: multiple Gray codes (MGCs) incur circuit overhead, while a single Gray code causes extra I/O latency overhead. This paradox seems unsolvable at first glance, requiring an innovative solution that maintains I/O performance without additional circuit overhead. A promising solution lies in selecting an appropriate Gray code and preventing hot data placement on slow physical pages. This article proposes BDP, a novel bidirectional programming scheme that adopts a single Gray code to fit both traditional (forward) and reverse programming directions based on TSP. The objective of BDP is to resolve the inherent contradiction between I/O performance preservation and implementation overhead. BDP optimizes the system performance through hardware/software co-design. At the hardware level, a fixed Gray code is employed to avoid additional circuit complexity. At the software level, two strategies (i.e., hotness-aware data allocation and background data migration) are proposed to further mitigate the misplacement of hot data on slow pages in QLC solid state drives (SSDs). The experimental results demonstrate that BDP significantly reduces the allocation of hot data to slow pages and enhances overall I/O performance compared with representative schemes.
Keywords:
Gray code
quad-level cell (QLC) solid state drive (SSD)
two-step programming (TSP)
Journal
I
IF:
2.9
Papers:
564
Citations:
9.6K

