Pre-validating Flash Management Units for SSD Garbage Collection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The garbage collection process in data storage devices, such as solid state drives (SSDs), is inefficient due to the need to scan and validate flash management units (FMUs), which allocates valuable bandwidth and can cause performance bottlenecks by requiring extended periods of data storage device resources.

Innovation Solution

A controller is configured to pre-validate FMUs during idle times by selecting source blocks, reading metadata, and adding valid FMUs to a buffer, allowing for faster garbage collection by re-validating only stored FMUs during the process, thereby reducing the time required for garbage collection operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the controller scans and validates all flash management units during garbage collection, then data validity is ensured, but data storage device bandwidth is allocated and overall performance decreases

Engineering Contradiction:
Improvedata validityVSAvoiddata storage device performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The controller performs preliminary validation of flash management units during idle periods before garbage collection is needed. By validating FMUs in advance and storing validation results, the controller eliminates the need to re-validate during garbage collection operations, thus ensuring data validity while maintaining high performance during active operations.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If the controller validates flash management units during garbage collection, then accurate identification of valid data is achieved, but the process requires extended period of time causing bottlenecks

Engineering Contradiction:
Improvevalid data identification accuracyVSAvoidgarbage collection time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The controller performs validation of flash management units in advance during idle periods and stores the validation results. When garbage collection is triggered, the controller directly uses the pre-stored validation results to identify valid data, achieving accurate identification without requiring extended validation time during the garbage collection process.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If the controller allocates bandwidth to the garbage collection process for validation, then validation completeness is improved, but the allocated bandwidth becomes unusable causing performance bottlenecks

Engineering Contradiction:
Improvevalidation completenessVSAvoidbandwidth utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The controller performs validation of flash management units during idle periods when bandwidth is not being used for other operations. By completing validation beforehand and storing results, the controller ensures validation completeness while the allocated bandwidth remains available for other data storage operations during active periods, avoiding performance bottlenecks.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20240302976A1Pre-validation of blocks for garbage collection
Publication Date: 2024.09.12 SANDISK TECHNOLOGIES LLC
  • US20240302976A1 patent drawing
  • US20240302976A1 patent drawing
  • US20240302976A1 patent drawing

AI summary

A data storage device includes a memory device and a controller. The controller is configured to select a source block, read metadata associated with the source block and compare to a logical block address to physical block address (L2P) table, determine if a flash management unit (FMU) of the source block is valid, and add a new entry associated with the FMU into a valid FMU buffer when the FMU of the source block is determined to be valid. The controller is further configured to determine that the source block has been fully validated and select a next source block based on a valid counter. The valid counter corresponds to an amount of valid data of the next source block.