Flash Memory Wear Leveling via Dynamic SLC MLC Padding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In flash memory systems, the frequent use of SLC blocks for data padding leads to premature wear and potential malfunction, as they are used more frequently than MLC blocks, resulting in reduced system lifespan and reliability.
Innovation Solution
The memory system employs a controller that selects data for padding from SLC blocks, garbage collection target blocks, or dummy data based on a calculated threshold, balancing the usage of SLC and MLC blocks to extend the lifespan by adjusting the threshold based on the number of usable MLC blocks and their erase count, thereby leveling the wear between block types.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If data padding is performed using SLC blocks, then the reliability of written data is improved, but the lifespan of SLC blocks is reduced due to frequent usage
Solution Approach 1:
The patent dynamically changes the parameter of block selection by introducing a threshold value that determines when to switch from SLC blocks to MLC blocks for data padding. When the amount of unwritten data exceeds the threshold, SLC blocks are used; otherwise, MLC blocks are used, thereby balancing reliability and lifespan
2Reliability
If SLC blocks are used for data padding, then data writing reliability is improved, but the wear of SLC blocks increases leading to potential malfunction
Solution Approach 1:
The patent introduces a threshold parameter that dynamically controls the selection between SLC and MLC blocks. By monitoring the amount of unwritten data in the block and comparing it to the threshold, the system adapts its padding strategy to minimize wear while maintaining reliability
Solution Approach 2:
The patent implements a dynamic selection mechanism where the choice of block type (SLC or MLC) for padding is not fixed but changes based on real-time conditions such as the amount of unwritten data and the threshold value, thereby optimizing the balance between reliability and wear prevention
Data Source
AI summary
According to one embodiment, when a command for committing data requested to be written is received from a host, a controller calculates a first value in a case where data has not been written up to a final page of a second block that is a multi-value recording block. The first value represents an amount or a data ratio of data written into the second block. The controller writes write data, which is written into a first block that is a binary-value recording block, up to a final page of the second block in a case where the first value is a first threshold or more.


