Non-Volatile Memory Block Management for Data Consistency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional management mechanisms for flash memory, particularly low-cost multi-level cell (MLC) flash memories, face inefficiencies in data writing and lack data consistency due to restrictions on writing data, leading to decreased performance and potential data loss during system failures or power outages.
Innovation Solution
A non-volatile memory block management method that allocates and manages physical block sets dynamically, copying valid data and erasing selected block sets to maintain data consistency and efficiency, using address translation tables and pointers to optimize data storage and recovery.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional management mechanisms are used for MLC flash memory, then data writing can be performed, but data consistency cannot be ensured due to system failures or power outages
Solution Approach 1:
The patent applies preliminary action by pre-allocating multiple physical block sets for each logical block before data writing operations. When data is written to a logical block, the system has already prepared multiple physical block sets (first, second, third block sets) that can immediately receive data without requiring complex real-time allocation decisions during failure recovery scenarios.
Solution Approach 2:
The patent implements copying by duplicating data across multiple physical block sets. When data is written to a logical block, it is copied to multiple physical block sets simultaneously. This redundancy ensures that if one block set becomes corrupted or inaccessible due to power failure or system errors, the data can be recovered from other copies, thereby ensuring data consistency without requiring complex verification mechanisms.
2Productivity
If data is written into free pages instead of original pages, then writing performance is improved, but the management mechanism becomes more complex due to LBA and physical address translation
Solution Approach 1:
The patent applies segmentation by dividing the storage space into logical blocks and multiple physical block sets. Each logical block is associated with multiple physical block sets, creating a hierarchical structure that simplifies address management. This segmentation allows the system to directly map logical block addresses to physical block sets without requiring complex page-level address translation, thereby maintaining high writing performance while reducing management complexity.
3Productivity
If a write buffer is adopted to improve writing efficiency, then data writing speed increases, but data may be lost when the system fails or power is cut off
Solution Approach 1:
The patent applies preliminary action by pre-allocating multiple physical block sets for each logical block before data writing operations. When data is written to a logical block, the system has already prepared multiple physical block sets (first, second, third block sets) that can immediately receive data without requiring complex real-time allocation decisions during failure recovery scenarios.
Solution Approach 2:
The patent implements copying by duplicating data across multiple physical block sets. When data is written to a logical block, it is copied to multiple physical block sets simultaneously. This redundancy ensures that if one block set becomes corrupted or inaccessible due to power failure or system errors, the data can be recovered from other copies, thereby ensuring data consistency without requiring complex verification mechanisms.
Data Source
AI summary
A block management method applicable to a non-volatile memory storage system is provided. The non-volatile memory storage system includes a plurality of chips. Each chip includes a plurality of physical blocks. The physical blocks form a plurality of physical block sets. Each logical block in a logical space corresponds to at most two physical block sets. In the block management method, when a logical block corresponds to two physical block sets filled with data and more data is to be written, a free physical block set is allocated for storing the data. Then, one of the two physical block sets corresponding to the logical block is selected according to a predetermined criterion. The valid data in the selected physical block set is copied into the free physical block set. Next, the selected physical block set is erased and collected to the pool of free physical block sets.


