SSD Block Reuse Through Partial Corruption Recovery
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing non-volatile memory devices suffer from decreased reliability and capacity due to partially corrupted blocks, which are currently discarded without being reclaimed, leading to system yield loss and increased costs.
Innovation Solution
Implementing an algorithm to selectively recover and reuse partially corrupted blocks through dummy operations, identifying uncorrupted portions for data storage and programming padding data to corrupted portions, managed by the SSD controller.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If corrupted blocks are discarded without reclamation, then reliability is maintained by avoiding use of defective blocks, but storage capacity is reduced and system yield is lost
Solution Approach 1:
The patent segments a corrupted block into multiple wordlines, identifying which specific wordlines are functional and which are corrupted. By segmenting the block at the wordline level rather than treating the entire block as corrupted, the system can selectively use healthy wordlines for data storage, thereby maintaining reliability while recovering storage capacity that would otherwise be lost.
Solution Approach 2:
The patent applies local quality by treating different portions of the same block differently - functional wordlines are designated for data storage while corrupted wordlines are marked as unusable. This localized differentiation allows the system to maximize usable capacity from each block while maintaining strict quality control over which specific regions are activated, resolving the contradiction between reliability and capacity.
2Reliability
If spare blocks are allocated to replace corrupted blocks, then reliability is maintained through block replacement, but device complexity and manufacturing cost increase
Solution Approach 1:
The patent implements discarding and recovering by first identifying and discarding only the corrupted wordlines within a block, then recovering and utilizing the remaining functional wordlines. This selective recovery approach eliminates the need to allocate spare blocks for replacement, as the functional portions of previously corrupted blocks are reclaimed and made available for data storage, thereby maintaining reliability while reducing device complexity and manufacturing cost.
3Manufacturing precision
If entire corrupted blocks are marked as unusable, then manufacturing precision is simplified by clear block status identification, but storage capacity is reduced due to inability to reuse partially functional blocks
Solution Approach 1:
The patent applies segmentation by dividing the block into individual wordlines and assessing each wordline's functionality separately. This fine-grained segmentation enables precise identification of which specific wordlines are corrupted and which remain functional, allowing the system to maintain clear status identification at the wordline level while maximizing the utilization of healthy portions, thereby resolving the contradiction between manufacturing precision and storage capacity.
Solution Approach 2:
The patent transitions from a binary block-level status identification (usable/corrupted) to a more granular wordline-level identification. This dimensional change from block to wordline enables the system to maintain precise status tracking while recovering capacity from partially functional blocks, as each wordline can be independently evaluated and designated as usable or corrupted based on its specific condition.
Data Source
AI summary
A controller may perform an erase operation on a block of a non-volatile memory device. The block has been identified as a corrupted block. The erase operation is performed after a write operation. The controller may determine whether the erase operation is successful. The controller may perform a programming operation on the block to write random data on an entirety of the block. The controller may determine whether the programming operation is successful for a portion of the block. The controller may perform a read operation on the portion of the block. The controller may determine whether the read operation is successful. The controller may determine that the block is a partially corrupted block based on determining whether the read operation is successful. The portion of the block is an uncorrupted portion that is used for a subsequent programming operation of the block.


