NAND Memory Block Reprogramming for Die-Level Failure Recovery
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing storage systems struggle to recover from die-level failures in semiconductor memory, leading to potential data loss, and existing redundancy methods reduce storage capacity and are time-consuming.
Innovation Solution
Implement a storage system that switches programming techniques for memory blocks identified as candidates for retirement, using a second programming voltage that is less susceptible to defects, allowing continued use of these blocks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional programming techniques are used for memory blocks, then storage capacity is maintained, but die-level failures occur leading to data loss
Solution Approach 1:
The system performs preliminary detection of blocks susceptible to die-level failures and switches to an alternative programming technique before the failure occurs. This proactive approach prevents data loss by anticipating potential failures and using a different programming method (second programming technique) that is less susceptible to the same defects.
Solution Approach 2:
The system changes the programming parameters by switching from a first programming technique to a second programming technique for identified vulnerable blocks. This parameter change involves using different voltage patterns or programming sequences that are less susceptible to the specific defects affecting the first technique, thereby maintaining reliability without data loss.
2Reliability
If blocks are retired to prevent die-level failures, then data loss is prevented, but storage capacity is reduced
Solution Approach 1:
Instead of retiring entire blocks, the system applies local quality by treating vulnerable blocks differently from healthy blocks. It switches to a second programming technique only for the specific blocks identified as susceptible to die-level failures, while maintaining the first programming technique for other blocks. This localized approach preserves storage capacity by keeping vulnerable blocks in service with a different programming method.
Solution Approach 2:
The system dynamically adjusts the programming technique based on the specific characteristics of each block. Rather than a static retirement policy, it flexibly switches between first and second programming techniques depending on the block's susceptibility to die-level failures, thereby maintaining both reliability and storage capacity through adaptive resource management.
3Reliability
If redundancy methods are used to recover from failures, then data recovery is possible, but storage capacity is reduced and recovery time increases
Solution Approach 1:
The system takes preliminary anti-action by preventing die-level failures in the first place through the use of a second programming technique for vulnerable blocks. This proactive prevention eliminates the need for time-consuming recovery processes such as XOR operations or ECC decoding, thereby avoiding both capacity reduction and time loss associated with traditional redundancy methods.
Data Source
AI summary
Programming techniques disclosed herein may be used to recover from potential plane and/or die level failures. The memory system may detect evidence of a plane or die level failure that impacts memory operations performed in a target region of the blocks if a first programming technique is used in the target region. For example, the memory system may note that a significant number of blocks have memory operation failures in the target region. The storage system switches to a second programming technique for programming the target region responsive to detecting evidence of a plane or die level failure. The blocks may be tested for a reliability criterion after programming using the second programming technique in the target region of the block. The second programming technique may overcome the plane or die level failure such that blocks may continue to be used with the second programming technique.


