Dynamic Restriping for Degraded Flash Memory Blocks
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing non-volatile memory systems face performance degradation when a portion of a flash memory die becomes degraded, as replacing the entire die can lead to significant overhead and adverse impacts on system performance, especially in large-scale computer systems where data mirroring and parity encoding may not efficiently manage degraded states.
Innovation Solution
Implementing data striping at the granularity of sub-sections of flash memory dice, such as erase blocks, with dynamic re-striping and parity encoding, allowing for selective recovery and redistribution of data across healthy memory devices, and reconfiguring degraded memory devices with reduced block counts to maintain system operation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the entire flash memory die is replaced when a portion becomes degraded, then data reliability is maintained, but system performance deteriorates significantly and overhead increases
Solution Approach 1:
The patent divides the flash memory die into multiple independent memory blocks, allowing individual blocks to be managed separately. When degradation occurs in specific blocks, only those blocks are replaced rather than the entire die, thus maintaining data reliability while minimizing performance impact and overhead.
Solution Approach 2:
The patent applies different quality levels to different parts of the memory system by monitoring the health status of individual memory blocks and applying targeted replacement only where degradation is detected, rather than uniformly replacing all blocks. This localized approach preserves overall system performance while ensuring data reliability in affected areas.
2Device complexity
If data striping is performed at the granularity of entire flash memory dice, then data distribution is simplified, but flexibility and adaptability to degraded states are reduced
Solution Approach 1:
The patent segments the data striping granularity from the die level down to the memory block level within dice. This finer-grained segmentation enables the system to dynamically adjust striping configurations when degradation is detected in specific blocks, improving adaptability while maintaining manageable complexity through systematic organization.
Solution Approach 2:
The patent implements dynamic striping configurations that can be adjusted based on the health status of memory blocks. When degradation occurs, the system dynamically reconfigures data distribution to avoid affected blocks, providing adaptability to degraded states while maintaining data accessibility and system operation.
3Reliability
If parity encoding and data mirroring are used to manage degraded states, then data reliability is maintained, but performance overhead and system complexity increase
Solution Approach 1:
The patent applies parity encoding and data mirroring at the memory block level rather than the die level, segmenting the redundancy mechanism to match the granularity of degradation. This allows reliability protection to be applied only where needed, reducing overall system complexity and performance overhead while maintaining data reliability in degraded states.
Data Source
AI summary
Data is stored as a first collection of memory blocks distributed across a first set of memory devices. It is determined that a first memory device in the first set is in a degraded state. Data is recovered corresponding to a first memory block in the first collection of memory blocks that is stored in the first memory device, which is configured to include a first number of memory blocks. The recovered data is stored in a second memory device as a new memory block, which is added to the first collection of memory blocks. The first memory device is removed from the first set and reconfigured with a second number of memory blocks that is less than the first number of memory blocks. Memory blocks in a second collection of memory blocks distributed across a second set of memory devices is stored in the reconfigured first memory device.


