Reclaimed Flash Memory Optimization via UECC CECC Lists
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Flash memory systems face inefficiencies in reusing partially usable memory blocks due to write errors and defects, leading to unnecessary discard and potential data loss, as existing technologies lack effective methods to optimize and maintain the quality of reclaimed memory.
Innovation Solution
Implementing lists for Uncorrectable Error Correction Code (UECC) and Correctable Error Correction Code (CECC) in conjunction with a dual programming scheme, where blocks with errors are identified and cycled, and the lists are dynamically updated based on read operations to determine which blocks should be retired or reused.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If reclaimed flash memory blocks are reused without optimization, then storage capacity is maintained, but data integrity and reliability deteriorate due to write errors and defects
Solution Approach 1:
The patent segments reclaimed memory blocks into different categories by maintaining separate lists (UECC list for uncorrectable errors, CECC list for correctable errors). This segmentation allows differential handling of blocks based on their error characteristics, enabling reliable reuse of blocks with correctable errors while identifying blocks with uncorrectable errors for retirement, thus resolving the contradiction between storage utilization and data integrity
Solution Approach 2:
The patent performs preliminary classification of reclaimed blocks into UECC and CECC lists before reuse. By proactively identifying and categorizing blocks with potential errors through initial read operations and error analysis, the system prepares appropriate handling strategies in advance, ensuring data integrity is maintained while maximizing storage utilization of suitable blocks
2Reliability
If dual programming scheme is applied to all blocks, then data integrity is improved, but device complexity and processing overhead increase
Solution Approach 1:
The patent applies dual programming selectively rather than universally by checking whether blocks reside on the UECC or CECC lists. Blocks with correctable errors (CECC list) receive dual programming for enhanced reliability, while blocks without errors do not require this overhead. This localized application of error correction measures optimizes the balance between reliability improvement and complexity reduction
3Reliability
If blocks with errors are discarded immediately, then data reliability is maintained, but storage capacity and lifespan are reduced
Solution Approach 1:
The patent recovers potentially usable capacity from error-prone blocks by classifying them into UECC and CECC lists rather than immediate discard. Blocks with correctable errors are recovered and made available for reuse with appropriate error handling, while only blocks with uncorrectable errors are discarded. This approach maximizes usable memory capacity while maintaining data reliability through selective error management
4Measurement precision
If lists are updated frequently through read operations, then block quality monitoring is improved, but energy consumption and write amplification increase
Solution Approach 1:
The patent performs partial updates to the UECC and CECC lists by conducting read operations and error analysis only on reclaimed blocks that need classification, rather than continuously monitoring all blocks. This partial action approach maintains adequate block quality assessment precision while minimizing unnecessary read operations and associated energy consumption
Data Source
AI summary
A memory system or flash card may optimize usage of reclaimed memory. The optimization may include lists for Uncorrectable Error Correction Code (UECC) and Correctable Error Correction Code (CECC) that can be used along with a dual programming scheme. Dual programming may be utilized for blocks on the lists, but not for blocks that are not on the lists. The lists can be updated by reading data programmed to blocks on the lists.


