Buffer-Assisted Read Fail Recovery in NAND Page Groups
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Data storage devices face challenges in efficiently recovering from read failures, particularly when program-in-progress pages are mixed with program-completed pages, leading to increased recovery time and inefficiency.
Innovation Solution
A data storage device with a nonvolatile memory device, a data buffer, an XOR parity buffer, and a processor that controls the recovery of read-failed data by reading data and XOR parity from buffer memories corresponding to program-in-progress pages, using data from program-completed pages for error correction.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the system waits for program-in-progress pages to become program-completed before performing read fail recovery, then data integrity is ensured, but recovery time increases and efficiency decreases
Solution Approach 1:
The system performs preliminary actions by copying data from program-in-progress pages to the data buffer before the program operation is fully completed. This allows the read fail recovery function to access and use this data immediately when needed, without waiting for the program operation to finish, thus reducing recovery time while maintaining data integrity through the buffer copy mechanism
Solution Approach 2:
The data buffer serves as an intermediary between the nonvolatile memory device and the read fail recovery function. It temporarily holds copies of data from program-in-progress pages, allowing the recovery function to access data without directly interfering with the ongoing program operation, thereby enabling faster recovery while preserving data integrity
2Stability of the object's composition
If the system accesses data from program-in-progress pages in nonvolatile memory, then data consistency is maintained, but recovery speed decreases
Solution Approach 1:
The system performs preliminary copying of data from program-in-progress pages to the data buffer before recovery operations are needed. This preliminary action maintains data consistency by creating a stable copy while enabling fast recovery access to the buffered data without waiting for program completion
Solution Approach 2:
The system segments the data access path by separating the data buffer (containing copies from program-in-progress pages) from the nonvolatile memory device. This segmentation allows the recovery function to access data from the faster buffer without compromising the integrity of the original data in memory, thus improving recovery speed while maintaining consistency
3Productivity
If the system implements a recovery mechanism that handles mixed program-completed and program-in-progress pages, then recovery efficiency improves, but device complexity increases
Solution Approach 1:
The system implements self-service by automatically detecting whether pages in a page group are program-completed or program-in-progress, and automatically selecting the appropriate data source (nonvolatile memory or data buffer) for recovery operations. This automated detection and selection process improves recovery efficiency while minimizing the need for complex manual control logic
Data Source
AI summary
Methods, systems and devices for efficiently performing a read fail recovery operation are described. An exemplary data storage device includes a nonvolatile memory device including a page group in which program-completed pages and program-in-progress pages are mixed, a buffer memory configured to buffer data and an XOR parity to be stored in pages of the page group. The data storage device also includes a recovery circuit configured to recover an error of read-failed data, and a processor configured to control the recovery circuit to read data and an XOR parity corresponding to the program-in-progress pages from the buffer memory. The processor is also configured to recover the error of the read-failed data using data corresponding to remaining program-completed pages other than a page in which the read-failed data is stored among the program-completed pages, and the data and the XOR parity read from the buffer memory.


