Flash Memory Controller Super Block Recovery After Power Failure
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing flash memory systems face challenges in efficiently determining valid data in a super block after an abnormal power failure, which affects data integrity and continuity during power recovery.
Innovation Solution
A method for controlling a flash memory module that involves determining if an abnormal power failure occurred, identifying the last super block written before power-on, determining the last successfully read page for each block, identifying data weak regions, and moving data from these regions to other areas within the super block or to another super block.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the flash memory controller performs garbage collection on the entire super block after abnormal power failure, then data integrity is ensured, but the time and resources required for recovery increase significantly
Solution Approach 1:
The super block is divided into multiple blocks, and each block is further divided into pages. The controller segments the garbage collection process by identifying and processing only the specific blocks and pages containing valid data, rather than treating the entire super block as a single unit. This segmentation allows selective recovery operations that reduce overall recovery time while maintaining data integrity.
Solution Approach 2:
The controller performs preliminary identification of valid data locations during the power-on self-test phase by checking power failure flags and reading block status information. This preliminary action enables the controller to pre-determine which blocks require garbage collection before actually executing the data migration, optimizing the subsequent recovery process and reducing total recovery time.
2Measurement precision
If the flash memory controller determines valid data in each block sequentially, then accuracy is maintained, but the processing speed decreases
Solution Approach 1:
The controller divides the super block into multiple independent blocks and processes each block separately. By segmenting the determination process, the controller can maintain high accuracy for each individual block while improving overall processing throughput through parallel or pipelined operations across multiple blocks, rather than sequentially processing the entire super block as one unit.
Solution Approach 2:
The controller performs determination operations on only the necessary portions of the super block based on power failure flags and block status information. Instead of uniformly processing every block with the same level of scrutiny, the controller applies partial determination actions only where needed, optimizing the balance between accuracy and processing speed by avoiding redundant operations on already-validated blocks.
3Reliability
If the flash memory controller moves all data from weak regions, then data reliability is improved, but the complexity of the control logic increases
Solution Approach 1:
The controller identifies and processes weak regions in segments rather than treating the entire super block uniformly. By dividing the data migration task into smaller regional operations based on detected weak areas, the control logic becomes more manageable and easier to implement, while still achieving comprehensive data protection across the entire super block through systematic segment-by-segment processing.
Data Source
AI summary
The present invention provides a method for controlling a flash memory module. The method includes: 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 comprises multiple first blocks respectively located in the multiple dies; for each first block in the super block, determining a last successfully read page of the first block; determining a data weak region of the super block according to the last successfully read pages of the first blocks in the super block; and moving data in the weak data region to other regions of the super block or to another super block.


