NAND Flash Garbage Collection Count Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The increased write amplification in NAND-flash solid-state drives (SSDs) due to data locality, where some data is frequently rewritten while others are not, leads to performance degradation and reduced lifespan, as existing garbage collection algorithms mix high and low update frequency data within blocks, causing inefficient use of program/erase cycles.

Innovation Solution

Implementing a garbage collection (GC) operation that manages GC counts for each block, selectively copying valid data from blocks with the same GC count to a free block, thereby separating data based on update frequency and preventing high update frequency data from being merged with low update frequency data, thus reducing write amplification.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If existing garbage collection algorithms are used to manage nonvolatile memory blocks, then garbage collection operations can be performed, but high and low update frequency data are mixed within blocks causing increased write amplification

Engineering Contradiction:
Improvedata management efficiencyVSAvoidwrite amplification
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent segments memory blocks into different groups based on GC count values. Blocks with the same GC count are grouped together and processed as a unit during garbage collection. This segmentation prevents mixing of blocks with different data update frequencies, thereby reducing write amplification while maintaining effective garbage collection operations.

Inventive Principle:
Principle #1Segmentation

2Quantity of substance

If data with different update frequencies are stored in the same block, then storage space is efficiently utilized, but the lifespan of the SSD is reduced due to inefficient program/erase cycle usage

Engineering Contradiction:
Improvestorage capacity utilizationVSAvoidSSD lifespan
Core Design Contradiction:
Quantity of substanceVSDuration of action of stationary object

Solution Approach 1:

The patent divides memory blocks into segments based on GC count, creating distinct groups for blocks with different data update frequencies. This allows the system to maintain high storage utilization while preventing inefficient program/erase cycle usage that would reduce SSD lifespan.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies different garbage collection strategies to different block groups based on their GC count characteristics. Blocks with the same GC count receive identical treatment, optimizing program/erase cycle usage for each local group while maintaining overall storage efficiency.

Inventive Principle:
Principle #3Local quality

3Ease of operation

If garbage collection operates on individual blocks without considering GC count, then simple control is maintained, but performance degrades due to mixed data update frequencies

Engineering Contradiction:
Improvegarbage collection control simplicityVSAvoidSSD performance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent segments blocks into GC count-based groups and processes them collectively. This approach maintains relatively simple control logic while significantly improving SSD performance by preventing the mixing of data with different update frequencies during garbage collection operations.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10789162B2Memory system and method for controlling nonvolatile memory
Publication Date: 2020.09.29 KIOXIA CORP
  • US10789162B2 patent drawing
  • US10789162B2 patent drawing
  • US10789162B2 patent drawing

AI summary

According to one embodiment, a memory system includes a nonvolatile memory including a plurality of blocks and a controller. The controller manages a garbage collection count for each of blocks containing data written by a host, the garbage collection count indicating the number of times the data in said each of the blocks has been copied by a garbage collection operation of the nonvolatile memory. The controller selects, as garbage collection target blocks, first blocks associated with a same garbage collection count. The controller copies valid data in the first blocks to a copy destination free block. The controller sets, as a garbage collection count of the copy destination free block, a value obtained by adding one to a garbage collection count of the first blocks.