SSD Garbage Collection Buffering for Incremental NAND Writes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The large amount of assembled valid user data stored in low-cost, slower DRAM during garbage collection in SSDs reduces performance due to increased power consumption and reduced efficiency in transferring data to faster SRAM.

Innovation Solution

Transfer and write data to non-volatile memory in smaller chunks, using thresholds to manage data size in buffers, allowing early release of buffers for reuse and reducing the need for external memory storage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a large amount of valid user data is assembled and stored in DRAM during garbage collection, then the garbage collection throughput is improved, but the power consumption increases and the performance is reduced due to slower DRAM access compared to SRAM

Engineering Contradiction:
Improvegarbage collection throughputVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent segments the large amount of valid user data into smaller chunks and transfers them incrementally from DRAM to NAND flash during garbage collection. Instead of assembling and holding all data in DRAM simultaneously, the controller divides the data transfer into multiple smaller operations, reducing the amount of data that needs to be held in external memory at any one time and thereby reducing power consumption while maintaining garbage collection throughput.

Inventive Principle:
Principle #1Segmentation

2Manufacturing precision

If a large amount of valid user data is assembled in DRAM, then the data can be programmed in full sequence program mode, but the time required to assemble and transfer the data increases

Engineering Contradiction:
Improveprogram mode efficiencyVSAvoiddata assembly and transfer time
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The patent applies preliminary action by initiating data transfer from DRAM to NAND flash before the DRAM buffer is completely filled. The controller monitors the amount of valid data in the DRAM buffer and starts transferring chunks of data to the NAND flash in advance, allowing the buffer to be emptied and reused sooner. This overlapping of operations reduces the total time required for data assembly and transfer while still enabling full sequence program mode to be used when sufficient data is available.

Inventive Principle:
Principle #10Preliminary action

3Ease of manufacture

If DRAM is used to store assembled valid user data, then the cost is reduced compared to using SRAM, but the garbage collection performance is reduced due to slower access speed

Engineering Contradiction:
ImprovecostVSAvoidgarbage collection performance
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent segments the data transfer operation into smaller chunks that can be transferred incrementally from DRAM to NAND flash. This segmentation allows the system to use cost-effective DRAM for buffering while maintaining good performance by avoiding the need to hold large amounts of data in slow external memory simultaneously. The incremental transfer approach reduces the bottleneck effect of DRAM's slower access speed compared to SRAM.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS12536098B1Systems and methods for managing memory buffers for garbage collection in non-volatile storage devices
Publication Date: 2026.01.27 KIOXIA CORP
  • US12536098B1 patent drawing
  • US12536098B1 patent drawing
  • US12536098B1 patent drawing

AI summary

A system may include a controller, a non-volatile memory (NVM) array including an NVM and a program buffer, and a buffer for garbage collection. The controller may read valid data from a superblock and store the valid data to the buffer; in response to storing the valid data to the buffer, determine that a size of data stored in the buffer is greater than or equal to a first threshold and less than an amount of data for being written in a program mode, and write the data stored in the buffer, to the program buffer; determine that the size of data is greater than or equal to the amount of data, and program the data stored in the program buffer to the NVM; and in response to completion of writing the data stored in the buffer to the first program buffer, empty the buffer.