SSD Controller Storage Space Management for Flash Endurance
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The limited lifetime of solid state drives (SSDs) due to excessive program/erase cycles leads to flash memory degradation, where legacy memory controllers prematurely mark blocks as bad, resulting in reduced available storage capacity and eventual inability to store or access data.
Innovation Solution
A method for storage space management that calculates expected and effective memory capacities, prohibiting programming when the effective capacity falls below a threshold, and strategically marking non-functional blocks as restricted to maintain sufficient usable space, thereby extending SSD lifespan.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If legacy memory controllers mark blocks as bad when program/erase cycles exceed design limits, then flash memory reliability is maintained, but storage device lifetime is reduced due to premature capacity loss
Solution Approach 1:
The controller performs preliminary classification of memory blocks into SLC and MLC types, and pre-establishes different program/erase cycle thresholds for each type. This preliminary categorization allows the system to proactively manage block usage before degradation occurs, extending overall device lifetime while maintaining reliability through appropriate threshold enforcement for each block type
Solution Approach 2:
The patent changes the parameter of program/erase cycle thresholds based on memory block type (SLC vs MLC). By adjusting these thresholds according to the specific characteristics of each block type, the system optimizes both reliability maintenance and lifetime extension, allowing SLC blocks to withstand more cycles than MLC blocks
2Reliability
If the controller prohibits programming when effective capacity is less than or equal to declared capacity, then data storage safety is ensured, but storage device productivity is reduced
Solution Approach 1:
The controller dynamically adjusts the programming prohibition threshold based on the difference between effective capacity and declared capacity. When this difference exceeds a predetermined threshold, programming is permitted despite effective capacity being less than or equal to declared capacity. This dynamic adjustment maintains data safety while restoring productivity when memory degradation is within acceptable limits
Solution Approach 2:
The system changes the parameter of programming permission based on the calculated difference between effective and declared capacities. By introducing this variable threshold parameter, the system transitions from a static prohibition policy to a flexible one that adapts to actual memory degradation levels, balancing safety and productivity
3Reliability
If more memory blocks are marked as bad blocks, then flash memory reliability is maintained, but available storage capacity is reduced
Solution Approach 1:
The patent changes the parameter of block classification by introducing type differentiation (SLC vs MLC) and associated different program/erase cycle thresholds. This parameter change allows the system to recognize that not all blocks are equal, reducing the need to mark blocks as bad prematurely and thereby preserving more available storage capacity while maintaining reliability through appropriate threshold-based management
Data Source
AI summary
A storage device includes a controller and a memory. A method of storage space management for the storage device is executed to perform steps as below. The controller calculates an expectedly used capacity and an effective capacity of the memory. The controller determines whether blocks of the memory include one or more blocks that are non-bad blocks and are prohibited from reading/writing. When the one or more blocks are determined to be non-bad blocks and to be prohibited from reading/writing, the controller marks each of the one or more blocks as a restricted block other than a bad block, thereby maintaining the effective capacity to be unchanged. The controller compares difference of the effective capacity and a total capacity of the one or more blocks that are marked as the restricted block to the expectedly used capacity to determine whether to prohibit programming to the memory.


