Flash Memory Recovery Using Weak-Region Detection After Power Loss
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Flash memory controllers face challenges in efficiently determining valid data in a super block after an abnormal power-off event, as the data writing progress of each block within the super block is different, leading to inefficiencies in data management and utilization.
Innovation Solution
A method is introduced to determine the last successfully read page of each block in a super block by using a binary search and error correction techniques, followed by identifying a data weak region and moving data from this region to other areas or another super block, ensuring efficient data management post-power recovery.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the flash memory controller performs garbage collection on the entire super block after abnormal power-off, then data validity can be ensured, but the operation time and system recovery time increase significantly
Solution Approach 1:
The patent segments the super block into multiple blocks and further divides each block into multiple pages. Instead of checking the entire super block, the controller only needs to check pages from the last successfully written block onwards. This segmentation allows the system to focus validation efforts only on potentially affected regions, dramatically reducing recovery time while maintaining data validity.
Solution Approach 2:
The patent implements preliminary actions by maintaining write progress markers and block status information during normal operation. When abnormal power-off occurs, the controller can quickly determine which blocks were partially written and only validate those specific blocks, rather than re-validating the entire super block. This preliminary tracking enables efficient post-recovery validation.
2Measurement precision
If the flash memory controller checks all blocks in the super block to determine valid data, then data accuracy is ensured, but the complexity of the control algorithm increases
Solution Approach 1:
The patent divides the super block into multiple blocks and tracks write progress at the block level. The controller only needs to examine blocks that were partially written or are at the boundary of write operations, rather than analyzing all blocks in the super block. This segmentation simplifies the control algorithm while maintaining accurate data validation.
Solution Approach 2:
The patent applies local quality by focusing validation resources on specific regions (blocks and pages) that are likely to contain invalid data, rather than uniformly checking all blocks. The controller identifies and validates only the local regions affected by the abnormal power-off, reducing algorithmic complexity while ensuring data accuracy where it matters most.
3Reliability
If the flash memory controller moves all data from the super block after abnormal power-off, then data integrity is ensured, but the data writing speed and productivity decrease
Solution Approach 1:
The patent segments the super block into multiple blocks and identifies only the specific blocks that contain potentially invalid data. The garbage collection operation is performed only on these identified blocks rather than the entire super block, preserving data integrity while minimizing the impact on writing speed and overall productivity.
Solution Approach 2:
The patent applies partial action by performing garbage collection only on the necessary portion of the super block (blocks with potential invalid data) rather than the entire super block. This selective approach ensures data integrity for affected regions while avoiding unnecessary data movement operations that would reduce writing speed and productivity.
Data Source
AI summary
The present invention provides a method for controlling a flash memory module. The method includes the steps of: after the flash memory module is powered on, determining whether the flash memory module encountered an abnormal power failure before the flash memory module is powered on; if the flash memory module encounters the abnormal power failure before the flash memory module is powered on, determining a last super block written by the flash memory module before powering on, where the super block includes multiple first blocks; determining a last rewritten page of the super block; determining a check range of the super block according to the last written page of the super block; determining a data weak region of the super block by reading the pages of the check range; and moving data in the weak data region to other regions of the super block or to another super block.


