SSD Garbage Collection with Mixed TLC and SLC Blocks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Garbage collection in Solid State Drives (SSDs) becomes challenging when they are almost full, especially for Triple-Level Cell (TLC) SSDs mixed with Single-Level Cell (SLC) blocks, as it complicates the process and reduces write speed due to limited available physical blocks for wear leveling.

Innovation Solution

A method that involves reading and moving valid data from TLC and SLC blocks to clean blocks, using specific page reading and moving strategies to free up blocks, with commands sent to the host to maintain smooth I/O performance and prevent disconnection, until the number of free blocks exceeds a threshold, effectively processing garbage collection even in worst-case scenarios.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If garbage collection is performed to move valid data to free blocks, then write speed is improved, but device complexity increases due to mixed TLC and SLC block management

Engineering Contradiction:
Improvewrite speedVSAvoidgarbage collection complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The garbage collection process is segmented into distinct phases: first processing TLC blocks by reading 3M pages and moving valid data, then processing SLC blocks by reading 1 page and moving valid data. This segmentation allows the system to handle different block types with optimized strategies, improving write speed while managing complexity through structured division of tasks.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by proactively identifying and processing garbage blocks before they impact write performance. The garbage collection process is initiated in advance, reading and moving valid data from both TLC and SLC blocks to free blocks, ensuring that write operations can proceed smoothly without waiting for block availability.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If more physical blocks are allocated for wear leveling, then reliability is improved, but loss of substance increases due to over provisioning

Engineering Contradiction:
Improvewear leveling effectivenessVSAvoidusable capacity
Core Design Contradiction:
ReliabilityVSLoss of substance

Solution Approach 1:

The system dynamically adjusts the allocation ratio between TLC and SLC blocks based on operational conditions. By changing the parameter of block type distribution and processing different block types with different read/move strategies, the system optimizes wear leveling effectiveness while minimizing the impact of over-provisioning on usable capacity.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If garbage collection processes all blocks thoroughly, then purity is improved, but loss of time increases due to frequent operations

Engineering Contradiction:
Improvedata integrityVSAvoidgarbage collection time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system applies partial action by processing blocks in prioritized batches rather than all at once. It first processes TLC blocks with the 3M page read strategy, then processes SLC blocks with the 1 page read strategy. This partial processing approach ensures data integrity for critical blocks while limiting the total time spent on garbage collection operations.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10990520B2Method for gabage collecting for non-volatile memory
Publication Date: 2021.04.27 STORART TECH
  • US10990520B2 patent drawing
  • US10990520B2 patent drawing
  • US10990520B2 patent drawing

AI summary

A method for garbage collecting for non-volatile memories are disclosed. The method includes steps: a) providing a SSD, connected to a host, containing a plurality of TLC blocks and SLC blocks; b) reading 3M TLC pages in a TLC block having data; c) moving valid data in the TLC blocks to at least one clean TLC block; d) sending a host program command of 1 page to the host; e) repeating step b) to step d) until valid data in 8 TLC blocks are moved; f) reading 1 SLC page in a SLC block having data; g) moving valid data in the SLC block to the at least one clean TLC block; h) sending a host program command of α page to the host; and i) repeating step f) to step h) until valid data in the SLC block having data are moved.