Flash Memory Snapshot Management via Page-Level Mapping
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
NAND FLASH memory systems face limitations in writing data to specific pages without erasing the entire block, and managing snapshots requires efficient storage and retrieval of both static and dynamic data, which is challenging due to the characteristics of NAND FLASH memory.
Innovation Solution
A memory system with a controller that stores data at a first epoch and tracks changes, allowing read requests for snapshot data to be directed to the original physical address if unchanged, and for dynamic data to be stored at a new address if changed, maintaining an association between the two for efficient data retrieval.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If data is written to a specific page in NAND FLASH memory, then the data can be stored at the desired location, but the entire block must be erased first which makes the plane unavailable for read operations
Solution Approach 1:
The patent divides the block into multiple pages and implements fine-grained management at the page level. The FTL maintains separate mappings for snapshot data and dynamic data at the page level, allowing individual pages to be managed independently. This segmentation enables the system to write to specific pages without erasing the entire block, thus resolving the contradiction between writing flexibility and plane unavailability.
Solution Approach 2:
The patent performs preliminary actions by pre-allocating spare pages within each block for snapshot data storage. When a snapshot is taken, the FTL identifies available spare pages in advance and prepares the mapping structure before actual data writing occurs. This preliminary preparation allows snapshot data to be written directly to pre-designated pages without requiring full block erasure, reducing the time the plane is unavailable.
2Duration of action of stationary object
If snapshots are maintained for extended periods, then data can be preserved for backup and analysis, but the amount of memory required increases significantly
Solution Approach 1:
The patent merges snapshot data and dynamic data into the same physical block structure, with both types of data coexisting in the same block but managed through separate FTL mappings. The snapshot data is stored in spare pages within the same block as dynamic data, allowing the system to maintain snapshots for extended periods while utilizing existing block capacity efficiently. This merging approach prevents dedicated snapshot blocks from consuming excessive memory resources.
Solution Approach 2:
The patent implements automatic snapshot expiration and space reclamation. When a snapshot exceeds its retention period or when memory pressure occurs, the FTL identifies and discards expired snapshot data, recovering the occupied pages for new dynamic data or new snapshots. This discarding and recovering mechanism ensures that long-term snapshot retention does not lead to unbounded memory consumption, as expired snapshots automatically release their memory allocation.
3Speed
If the flash translation layer maintains detailed mappings for snapshot and dynamic data, then data retrieval is efficient, but the complexity of the control system increases
Solution Approach 1:
The patent segments the FTL mapping structure into distinct components: a block-level snapshot indicator, page-level snapshot data mappings, and standard dynamic data mappings. This segmentation allows the controller to quickly determine whether a block contains snapshot data through the simple block-level indicator, and only then proceed to consult the more detailed page-level mappings. This hierarchical segmentation reduces the average complexity of data retrieval operations while maintaining fast access speeds.
Solution Approach 2:
The patent introduces an intermediary block-level metadata structure that acts as a mediator between the high-level snapshot management and low-level page mappings. This intermediary layer contains a snapshot indicator and summary information that filters and directs access requests, reducing the need for the controller to examine every detailed mapping entry. The intermediary structure simplifies the control logic by providing a quick decision point that determines whether detailed mapping lookup is necessary, thus reducing overall system complexity while maintaining fast retrieval.
Data Source
AI summary
A system and method of managing the storage of data in flash memory performs snapshots of the data by maintaining the data at the epoch that the snapshot is performed in the same physical memory location. Data that is modified after the snapshot is then stored to a new physical memory location and referenced to the snapshot location. When a user read operation is performed, the data is read from the original location if the read operation is for the snapshot data. The read operation for dynamic data is performed from the original location if the data has not change since the snapshot epoch, or from the referenced data location if the data has changed since the snapshot epoch. Snapshots are released by dereferencing the original location if the data has been changed since the snapshot epoch.


