Non-Volatile Memory Controller Garbage Collection Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing non-volatile memory control techniques fail to efficiently manage data transfer and spare block allocation, leading to reduced storage capacity and increased wear on flash memory due to unnecessary dummy data writing and inefficient data recycling.

Innovation Solution

A controller dynamically allocates spare blocks as active blocks for data transfer, transferring valid data in sections and adjusting transfer amounts based on the number of source blocks waiting, thereby optimizing data throughput and extending flash memory life by avoiding dummy data writing and enhancing spare block recycling.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the controller transfers valid data from source blocks to active blocks using traditional garbage collection methods, then data transfer is completed, but dummy data must be written to fill remaining space in active blocks, increasing write operations and wear on flash memory

Engineering Contradiction:
Improveflash memory lifeVSAvoidwrite operation efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent merges the garbage collection data transfer process with the host write data process by allowing host write operations to occur concurrently with valid data transfer from source blocks to active blocks. This combination eliminates the need for separate dummy data write operations to fill remaining space, reducing total write operations and extending flash memory life while maintaining write efficiency

Inventive Principle:
Principle #5Merging (Combining)

2Productivity

If the controller uses fixed section transfer amounts for data transfer, then data transfer is simplified, but the efficiency of spare block recycling is reduced when multiple source blocks are waiting

Engineering Contradiction:
Improvespare block recycling efficiencyVSAvoiddata transfer control complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements dynamic section transfer amounts that automatically adjust based on the number of source blocks waiting for garbage collection. When multiple source blocks are waiting, the controller increases the section transfer amount to process more data per transfer operation, thereby improving spare block recycling efficiency without requiring complex manual intervention or excessive control complexity

Inventive Principle:
Principle #15Dynamics

3Productivity

If the controller waits for all data transfer to complete before accepting host write operations, then data integrity is maintained, but the overall data throughput is reduced

Engineering Contradiction:
Improvedata throughputVSAvoiddata integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent enables continuous useful action by allowing host write operations to proceed concurrently with valid data transfer from source blocks to active blocks. The controller manages multiple operations simultaneously - transferring valid data, accepting host writes, and preparing for garbage collection - without requiring sequential completion, thereby maximizing data throughput while maintaining data integrity through proper controller management

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS11036414B2Data storage device and control method for non-volatile memory with high-efficiency garbage collection
Publication Date: 2021.06.15 SILICON MOTION INC
  • US11036414B2 patent drawing
  • US11036414B2 patent drawing
  • US11036414B2 patent drawing

AI summary

High-efficiency control technology for non-volatile memory is shown. A controller transfers valid data from a first source block to an active block in sections and, between segmented data transfers, the controller writes data issued by the host to the active block. When no second source block is waiting, the controller transfers a first amount of valid data from the first source block to the active block in each segmented data transfer. When a second source block is waiting, the controller transfers a second amount of valid data from the first source block to the active block in each segmented data transfer. The second amount is larger than the first amount and thereby the data transfer for the first source block speeds up.