Stream-Aware Garbage Collection for Solid-State Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Garbage collection operations in solid-state storage devices degrade speed performance due to extra NAND flash memory read/write operations, which are exacerbated by mixing data with different lifetimes in the same super-block during conventional multi-stream data write methods.

Innovation Solution

Implement a stream-aware garbage collection method that identifies super-block groups with fewer valid data and sufficient data to complete a super-block, and performs garbage collection within these groups, optionally using a sampling-based method to estimate data lifetimes and assign scaling factors for weighted selection, and sorting data by residual lifetime for efficient distribution across multiple super-blocks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If garbage collection operations are performed to reclaim flash memory storage space, then storage space availability is improved, but speed performance deteriorates due to extra read/write operations interfering with normal requests

Engineering Contradiction:
Improvestorage space availabilityVSAvoidspeed performance
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

The patent segments the flash memory into multiple super-block groups and further divides them into individual super-blocks, allowing garbage collection to be performed on specific segments (super-block sets) rather than the entire storage space. This segmentation enables parallel processing and reduces interference with normal read/write operations on other segments.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies different treatment to different super-blocks based on their local characteristics (valid data amount, data lifetime). Super-blocks with fewer valid data are selected for garbage collection, while those with more valid data continue normal operations. This local quality approach optimizes the balance between reclamation efficiency and performance maintenance.

Inventive Principle:
Principle #3Local quality

2Productivity

If multi-stream data write is used to categorize data by lifetime, then garbage collection efficiency is improved, but data mixing within super-blocks still occurs causing performance degradation

Engineering Contradiction:
Improvegarbage collection efficiencyVSAvoiddata write throughput
Core Design Contradiction:
ProductivityVSSpeed

Solution Approach 1:

The patent segments super-blocks into different groups based on data lifetime characteristics and performs garbage collection within each group separately. This prevents mixing of data with different lifetimes during GC operations, maintaining the integrity of multi-stream data write while improving GC efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent copies valid data from selected super-blocks to new super-blocks within the same super-block group, preserving the lifetime characteristics of the data while reclaiming the original super-blocks for reuse. This copying mechanism maintains data integrity and lifetime separation.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11386002B2Enhancing solid-state storage device speed performance through stream-aware garbage collection
Publication Date: 2022.07.12 SCALEFLUX INC
  • US11386002B2 patent drawing
  • US11386002B2 patent drawing
  • US11386002B2 patent drawing

AI summary

Methods for enhancing the speed performance of solid-state storage devices using stream-aware garbage collection. A garbage collection method in according to an embodiment includes: searching, in each of a plurality of super-block groups G, for a super-block set C that satisfies: all of the super-blocks m within the super-block set C in the super-block group G contain a lesser amount of valid data than the other super-blocks within the super-block group G; and a total amount of valid data within the super-block set C are just enough to complete an entire super-block; selecting the super-block group G that includes the super-block set C with the maximum number of super-blocks m; and performing garbage collection on the super-block set C in the selected super-block group G.