SSD ECC Page Sizing for Block-Specific Flash Wear
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional SSD systems are provisioned based on the worst-performing blocks to account for varying endurance and error rates across flash memory blocks, leading to inefficient use of resources and reduced lifespan due to static ECC strength and fixed data portion sizes.
Innovation Solution
The SSD controller dynamically adjusts the size and strength of the ECC portion and data portion within each E-Page based on the condition of the block, using a variable ECC profile to extend the useful life of the SSD by tailoring error correction to the unique degradation path of individual blocks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If static ECC strength is used to account for worst-performing blocks, then reliability is improved, but device complexity increases and productivity decreases
Solution Approach 1:
The patent implements dynamic ECC strength adjustment by monitoring block conditions (program/erase cycle counts, error rates) and adapting the ECC profile accordingly. Blocks transition through lifecycle stages (infant mortality, random errors, wear affect) and the controller dynamically selects appropriate ECC strengths (e.g., 4-bit, 8-bit, 12-bit correction) rather than using a fixed static ECC configuration for all blocks.
Solution Approach 2:
The patent applies different ECC strengths to different blocks or pages based on their individual condition and error characteristics. Instead of uniformly applying maximum ECC strength to all blocks, the system tailors the ECC profile to each block's specific needs, allowing some blocks to use stronger ECC while others use weaker ECC, thereby optimizing overall storage efficiency while maintaining reliability.
2Device complexity
If fixed data portion size is used, then device complexity is reduced, but adaptability decreases and loss of time increases
Solution Approach 1:
The patent employs dynamic partitioning of page space between data and ECC portions. As blocks age and error rates increase, the system dynamically adjusts the proportion of space allocated to ECC versus data within each page, allowing the configuration to adapt to changing block conditions while maintaining manageable complexity through automated control.
Solution Approach 2:
The system changes key parameters (ECC strength, data portion size, ECC portion size) based on block condition metrics such as program/erase cycle count and observed error rates. This parameter adaptation allows the system to optimize performance and reliability for blocks at different stages of their lifecycle without requiring complete redesign of the storage architecture.
3Reliability
If worst-case provisioning is used, then reliability is improved, but duration of action decreases
Solution Approach 1:
The patent implements dynamic adaptation to block aging by monitoring lifecycle indicators and adjusting ECC strength accordingly. As blocks progress through their lifecycle (early life with infant mortality errors, mid-life with random errors, end-life with wear affect), the controller dynamically increases ECC strength to maintain reliability margins, thereby extending the functional lifespan of the SSD beyond what static provisioning would allow.
Solution Approach 2:
The system proactively increases ECC strength before blocks reach failure thresholds by detecting early signs of degradation (increasing error rates, higher program/erase cycle counts). This beforehand cushioning approach strengthens error correction capabilities in advance, preventing catastrophic failures and extending the usable life of the storage device.
Data Source
AI summary
A data storage device may comprise an array of flash memory devices and a controller coupled thereto, configured to program and read data from the array responsive to received data access commands. The array may comprise a plurality of blocks, each comprising a plurality of flash pages (F-Pages), each of which comprising an integer number of one or more error correcting code pages (E-Pages), at least some of which comprising a data portion and an error correction code (ECC) portion. The controller may be configured to store a plurality of logical pages (L-Pages) in one or more of the plurality of E-Pages, at least some being unaligned with boundaries of the E-Pages; and to adjust, in at least one of the blocks, the size of the ECC portion and correspondingly adjust the size of the data portion of the E-Pages.


