Cache Program Backup Blocks for NAND Flash Error Recovery
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
NAND flash devices face data loss and performance issues due to premature acknowledgement of write operations, particularly in DRAM-less SSD controllers, where the risk of program errors increases with growing bad blocks, leading to potential catastrophic failures and reduced performance.
Innovation Solution
Implementing a cache program operation that uses backup blocks to store copies of data, with a backup block mapping table to recover data in case of program errors, allowing for safe data transfer and error handling without data loss, even in DRAM-less SSD controllers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If cache program operation is used to improve write performance, then write speed is improved, but the risk of program error increases due to premature acknowledgement
Solution Approach 1:
The patent applies preliminary action by writing data to both the target block and a backup block before the write operation completes. The backup block is prepared in advance as a safety mechanism, so that if a program error occurs during the write to the target block, the data is already preserved in the backup block. This allows the system to acknowledge completion to the host while maintaining the ability to recover from errors.
Solution Approach 2:
The patent implements beforehand cushioning by introducing a backup block that serves as a cushion against program errors. The backup block is written with a copy of the data before the potential failure can affect the system. This cushioning mechanism absorbs the shock of write failures, allowing the cache program operation to proceed with performance benefits while mitigating the reliability risks through the pre-prepared backup copy.
2Reliability
If DRAM is added to keep data copies for error recovery, then reliability is improved, but device complexity and cost increase
Solution Approach 1:
The patent applies copying by creating a backup copy of the data in a backup block within the NAND flash device itself, rather than requiring an external DRAM buffer. The backup block is a simple copy of the data that was being written to the target block, providing error recovery capability without adding complex DRAM memory or sophisticated error handling circuitry. This copying approach maintains reliability while minimizing device complexity.
Solution Approach 2:
The patent uses the backup block as an intermediary mechanism between the write operation and the potential failure. Instead of requiring DRAM to hold data copies or complex error recovery logic, the backup block serves as a simple intermediary storage that captures the data state before potential corruption. This intermediary approach provides error recovery without the complexity of DRAM-based systems.
3Productivity
If internal SRAM size is increased to store more temporary data, then productivity is improved, but die size and silicon cost increase
Solution Approach 1:
The patent applies copying by using the backup block to store a copy of the data that would otherwise need to be held in SRAM. This allows the controller to maintain productivity by having data available for recovery operations without requiring larger SRAM capacity. The backup block in NAND flash serves as an alternative storage medium that doesn't consume additional silicon area in the controller die.
Solution Approach 2:
The patent uses a disposable backup block mechanism that doesn't require expensive, large-capacity SRAM memory. Instead, it leverages the existing NAND flash structure with a simple backup block that can be written and read efficiently. This approach provides sufficient data storage capacity for error recovery without the need for costly, area-intensive SRAM expansion.
Data Source
AI summary
Systems, apparatus and methods are provided for performing cache program operations in a non-volatile storage system. A method may comprise issuing a first cache program operation from a storage controller to a non-volatile storage device to write data to a first regular block, writing the data to the first regular block and a copy of the data to a backup block, determining that a program error has occurred while writing the data to the first regular block, asserting the program error to the storage controller, retrieving a mapping between the first regular block and the backup block, issuing a read operation to read the copy of the data from the backup block, reading the copy of the data from the backup block and issuing a second cache program operation to write the data to a second regular block and marking the first regular block as defective.

