Flash Memory Snapshot Management via Page-Level Mapping

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvedata writing flexibilityVSAvoidplane unavailability duration
Core Design Contradiction:
Ease of operationVSLoss of time

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvesnapshot retention periodVSAvoidmemory usage
Core Design Contradiction:
Duration of action of stationary objectVSQuantity of substance

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.

Inventive Principle:
Principle #5Merging (Combining)

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.

Inventive Principle:
Principle #34Discarding and recovering

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

Engineering Contradiction:
Improvedata retrieval speedVSAvoidcontroller complexity
Core Design Contradiction:
SpeedVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9141302B2Snapshots in a flash memory storage system
Publication Date: 2015.09.22 INNOVATIONS IN MEMORY LLC
  • US9141302B2 patent drawing
  • US9141302B2 patent drawing
  • US9141302B2 patent drawing

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.