NAND Flash ECC Decoding with Error Cancellation and Re-Decoding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Memory systems using non-volatile memories, such as NAND flash, face challenges in accurately correcting errors in read data due to factors like elapsed time and noise, leading to inefficiencies in error correction decoding processes.
Innovation Solution
A memory system and control method that includes a non-volatile memory and a memory controller, which performs a first decoding process, followed by a cancellation process to return unsatisfactory decoding results to their pre-decoding values, and then executes a second decoding process using multiple decoding results to enhance accuracy.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If error correction coding is applied to protect data in non-volatile memory, then data reliability is improved, but decoding complexity and processing time increase
Solution Approach 1:
The error correction code is divided into multiple component codes, each responsible for correcting errors in specific portions of the data. This segmentation allows the decoder to process errors in manageable units, reducing the complexity of handling large error correction problems while maintaining high reliability through comprehensive coverage of all data segments.
Solution Approach 2:
The system performs preliminary decoding of component codes before final data reconstruction. By pre-processing and evaluating component codes in advance, the system can identify and handle residual errors more efficiently, reducing the overall decoding complexity while ensuring data reliability through systematic error correction steps.
2Measurement precision
If multiple decoding processes are performed to correct residual errors, then error correction accuracy is improved, but processing time increases
Solution Approach 1:
The system performs preliminary decoding of component codes and evaluates their reliability before initiating full decoding processes. This preliminary evaluation allows the system to skip unnecessary decoding operations for reliable component codes, reducing processing time while maintaining high error correction accuracy through targeted decoding of only those components that require attention.
Solution Approach 2:
The decoding process is made dynamic by adjusting the number and type of decoding operations based on the actual error conditions detected in the data. The system can switch between different decoding strategies (e.g., simplified decoding for low-error conditions, full decoding for high-error conditions), optimizing processing time while maintaining accuracy according to the specific error scenario.
3Reliability
If decoding results are cancelled and re-decoded to handle residual errors, then error correction reliability is improved, but computational resources are consumed
Solution Approach 1:
The system performs preliminary reliability evaluation of component codes before initiating full decoding and cancellation processes. By pre-assessing which component codes are reliable and which require re-decoding, the system minimizes computational resources by applying intensive processing only to necessary components, while maintaining high error correction reliability through comprehensive error handling where needed.
Solution Approach 2:
Different decoding and cancellation operations are applied locally to different component codes based on their individual reliability assessments. Rather than uniformly processing all codes, the system applies intensive error correction only to specific local regions (component codes) that exhibit residual errors, conserving computational resources while maintaining overall error correction reliability through targeted intervention.
Data Source
AI summary
A memory system includes a non-volatile memory configured to store an error correction codes and a memory controller. The memory controller is configured to obtain read information from the non-volatile memory, perform a first decoding process on the read information to output a plurality of decoding results respectively corresponding to a plurality of elements provided in the read information, perform a cancellation process for returning the decoding results satisfying a condition among the plurality of decoding results to values prior to decoding in response to the first decoding process being not successful, and perform a second decoding process using the plurality of decoding results after performing the cancelation process.


