Flash Memory Block Migration for Data Integrity
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
MLC Flash memories experience data loss and performance degradation due to long-term use, leading to unstable characteristics and potential loss of user data.
Innovation Solution
A method for accessing Flash memory that involves selectively programming pages, monitoring error bits, and proactively moving blocks when error bits exceed a predetermined value, using a controller with a microprocessor and ROM to execute program code and manage data access, thereby preventing data loss and maintaining performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If MLC Flash memory is used to increase storage density and reduce cost, then storage capacity and cost-effectiveness are improved, but data stability and reliability deteriorate due to quality degradation from long-term use
Solution Approach 1:
The patent applies preliminary action by proactively moving blocks that show early signs of degradation (error bits reaching a threshold) before they completely fail. The controller continuously monitors error bits in each block and performs block moving operations in advance, preventing data loss before it occurs. This proactive approach resolves the contradiction by maintaining reliability through early intervention while preserving the high storage capacity of MLC Flash memory.
2Reliability
If block moving operations are performed frequently to maintain data integrity, then data loss prevention is improved, but write amplification and performance overhead increase
Solution Approach 1:
The patent implements feedback by continuously monitoring the number of error bits in each block and using this information to trigger block moving operations only when necessary. The controller reads error bit counts, compares them against a threshold, and performs block moving only when the threshold is exceeded. This feedback-based approach resolves the contradiction by maintaining data integrity through targeted interventions while minimizing unnecessary write operations and associated performance overhead.
Solution Approach 2:
The patent applies parameter changes by dynamically adjusting the block status based on error bit thresholds. Instead of moving all blocks periodically, the system changes the operational parameters (block status, error bit count) and triggers moves only when specific parameter thresholds are exceeded. This resolves the contradiction by maintaining data integrity through parameter-based decision making while reducing overall write amplification.
3Reliability
If error threshold is set low to ensure data safety, then data loss prevention is improved, but unnecessary block moves increase reducing performance
Solution Approach 1:
The patent applies partial action by setting an error threshold that triggers block moving only when error bits reach a specific level, rather than moving blocks at every sign of degradation. This threshold-based approach provides a balanced level of data protection while avoiding excessive block moves. The system performs just enough action (moving blocks when error bits reach the threshold) to ensure data safety without the performance penalty of overly frequent operations.
Data Source
AI summary
A method for accessing a Flash memory including a plurality of blocks includes: selectively programming a page in a first block of the blocks; when a status of the Flash memory is abnormal, determining whether a number of error bits is less than a predetermined value; and when the number of error bits is not less than the predetermined value, moving the first block. An associated memory device and a controller thereof are also provided, where the controller includes: a read only memory (ROM) arranged to store a program code; and a microprocessor arranged to execute the program code to control the access to the Flash memory. In addition, when the number of error bits is not less than the predetermined value, the controller that executes the program code by utilizing the microprocessor moves the first block.


