Dynamic SLC MLC Buffer Switching for Write Speed Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data storage devices face challenges in optimizing write operation performance, particularly in efficiently managing memory blocks to balance write speed and garbage collection needs, leading to potential sluggishness and reduced performance.

Innovation Solution

A data processing method that dynamically selects between Single-Level Cell (SLC) and Multiple-Level Cell (MLC) memory blocks as buffers based on the amount of valid data stored, using a scheme that optimizes buffer configuration to speed up write operations and reduce garbage collection frequency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If SLC memory blocks are used as buffers to receive data, then write speed is improved, but garbage collection frequency increases when data amount is large

Engineering Contradiction:
Improvewrite speedVSAvoidgarbage collection frequency
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The system dynamically switches between SLC and MLC buffer configurations based on the amount of valid data in the memory device. When valid data is below a threshold, SLC mode is used for fast writes; when valid data exceeds the threshold, the system transitions to MLC mode to reduce garbage collection frequency, thereby adapting the buffer configuration to current storage conditions

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The invention changes the buffer configuration parameter from fixed to variable, selecting between SLC and MLC modes based on the valid data amount. This parameter change allows the system to optimize between write speed and garbage collection frequency by matching the buffer type to the current data storage state

Inventive Principle:
Principle #35Parameter changes

2Productivity

If MLC memory blocks are used as buffers to receive data, then garbage collection frequency is reduced, but write speed decreases

Engineering Contradiction:
Improvegarbage collection frequencyVSAvoidwrite speed
Core Design Contradiction:
ProductivityVSSpeed

Solution Approach 1:

The system dynamically selects MLC buffer configuration only when the valid data amount exceeds a predetermined threshold, using it to reduce garbage collection frequency during high-data scenarios, while switching to SLC mode during low-data scenarios to maintain write speed

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The buffer configuration parameter is changed from static to dynamic, selecting MLC mode specifically when valid data amount is high to reduce garbage collection overhead, thereby changing the operational parameter based on storage conditions

Inventive Principle:
Principle #35Parameter changes

3Device complexity

If buffer configuration is fixed, then device complexity is reduced, but write performance optimization is limited

Engineering Contradiction:
Improvebuffer configuration complexityVSAvoidwrite performance
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The buffer configuration transitions from fixed to dynamic, with the memory controller automatically selecting between SLC and MLC modes based on valid data amount, achieving performance optimization without requiring complex manual configuration or additional hardware

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11157399B2Data storage devices and data processing methods with dynamic programming scheme
Publication Date: 2021.10.26 SILICON MOTION INC
  • US11157399B2 patent drawing
  • US11157399B2 patent drawing
  • US11157399B2 patent drawing

AI summary

A data storage device includes a memory device and a memory controller. The memory controller is configured to configure a first predetermined memory block which is an SLC memory block and a second predetermined memory block which is a MLC memory block as buffers to receive data. The memory controller determines to use which scheme to receive data in a predetermined period dynamically according to an amount of valid data stored in the memory device. When the memory controller determines to use a first scheme, the memory controller uses the first predetermined memory block to receive data. When the memory controller determines to use a second scheme, the memory controller uses the first predetermined memory block and the second predetermined memory block to receive data. When the memory controller determines to use a third scheme, the memory controller uses the second predetermined memory block to receive data.