Adaptive ECC Code-Rate Allocation for Wordline Noise in SSD Pages
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing storage devices, such as NAND flash memory, face variability in reliability and error rates among pages due to manufacturing and use characteristics, with current methods providing uniform protection levels across all pages in a block, which is inadequate as cell density increases.
Innovation Solution
Dynamically allocate code rates and redistribute overhead among pages within a block to provide varying levels of protection by clustering pages into different groups based on their characteristics and encoding data with additional overhead bits transferred between groups.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If uniform protection levels are applied to all pages in a block, then device complexity is reduced and ease of operation is improved, but reliability is insufficient for pages with varying error rates
Solution Approach 1:
The patent segments pages into different clusters based on their error characteristics. Pages are divided into first cluster pages (with first error characteristics) and second cluster pages (with second error characteristics), allowing different protection schemes to be applied to each cluster. This segmentation enables tailored error correction for each page type while maintaining manageable system complexity through systematic classification.
Solution Approach 2:
The patent applies local quality by providing different levels of protection to different pages based on their specific error characteristics. First cluster pages receive one type of protection while second cluster pages receive another type of protection. This localized approach ensures that each page receives appropriate error correction tailored to its specific reliability needs, improving overall data integrity without uniformly increasing complexity across all pages.
2Reliability
If higher protection levels are applied to all pages, then reliability is improved, but overhead increases and productivity decreases
Solution Approach 1:
The patent applies partial action by providing enhanced protection only to pages that require it, rather than applying maximum protection uniformly to all pages. Second cluster pages (with higher error rates) receive additional overhead and stronger protection, while first cluster pages (with lower error rates) receive standard protection. This selective approach improves error correction for vulnerable pages without unnecessarily increasing overhead for already-reliable pages, thereby maintaining storage efficiency.
Solution Approach 2:
The patent changes the protection parameter (code rate, overhead allocation) based on the error characteristics of different page clusters. By dynamically adjusting protection levels according to measured error rates and page quality, the system optimizes the balance between reliability and storage efficiency. Pages with lower error rates use fewer overhead bits, while pages with higher error rates allocate more overhead, achieving optimal error correction without uniformly sacrificing productivity.
3Adaptability or versatility
If dynamic code rate allocation is implemented for each page, then reliability and adaptability are improved, but device complexity and difficulty of operation increase
Solution Approach 1:
The patent applies preliminary action by pre-calculating and pre-allocating code rates and overhead for different page clusters before actual data storage operations. The system performs initial error characterization of pages, clusters them into groups with similar characteristics, and assigns protection schemes in advance. This preliminary clustering and code rate allocation simplifies subsequent operations, as the complex adaptive decisions are made beforehand rather than in real-time during data access.
Solution Approach 2:
The patent introduces an intermediary layer (the clustering mechanism and control logic) that manages the complexity of dynamic code rate allocation. This intermediary systematically classifies pages into clusters and mediates between the varying error characteristics of individual pages and the uniform interface required by the storage system. By introducing this intermediary classification layer, the system achieves adaptive protection without requiring complex real-time decision-making for each page access.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A storage device, including: a non-volatile memory including a plurality of pages; and a storage controller: wherein the storage controller is configured to: allocate a plurality of code rates to the plurality of pages, cluster the plurality of pages into a first plurality of pages and a second plurality of pages based on the plurality of code rates, determine a plurality of page associations such that each second page from the second plurality of pages with at least one first page from the first plurality of pages, encode data based on the plurality of code rates to generate encoded data, wherein the encoding includes obtaining side information corresponding to the second plurality of pages and transferring the side information to the first plurality of pages, and store the encoded data in the plurality of pages.