HFPC Hard Decoding for NAND Flash Error Candidate Correction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional encoding methods, such as LDPC codes, are not well-suited for high code rates and result in complex and costly implementations, particularly in flash memory devices like NAND flash memory, where errors due to noise and interference require effective error correction.
Innovation Solution
The use of Half Folded-Product Code (HFPC) structures with multiple component codes, such as Bose-Chaudhuri-Hocquenghem (BCH) codes, for multi-dimensional encoding and iterative decoding, which allows for efficient error correction by determining error candidates and implementing suggested corrections based on agreement between component codes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional LDPC codes with high code rates are used, then error correction capability is improved, but implementation complexity and cost increase considerably
Solution Approach 1:
The patent segments the error correction code into multiple component codes (e.g., BCH codes) that can be decoded independently and in parallel. This segmentation allows the system to achieve high error correction capability through iterative decoding of simpler component codes rather than using a single complex LDPC code, thereby reducing implementation complexity while maintaining reliability.
Solution Approach 2:
The patent employs a composite coding structure where multiple different component codes (such as BCH codes with different parameters) are combined to form a product code. This composite approach leverages the strengths of each component code to achieve high overall error correction capability while keeping individual code implementations simple and cost-effective.
2Reliability
If component codes with long code length are used to achieve high code rates, then error correction capability is improved, but decoding complexity and cost increase
Solution Approach 1:
Instead of using a single long component code, the patent divides the coding task into multiple shorter component codes. Each component code has a manageable length that simplifies decoding operations. The combined effect of multiple shorter codes achieves the same error correction capability as a single long code would provide, but with significantly reduced decoding complexity.
3Reliability
If iterative decoding with multiple component codes is implemented, then false correction probabilities are reduced, but processing time increases
Solution Approach 1:
The patent implements preliminary error detection and candidate identification before full correction attempts. By pre-identifying error candidates through initial component code decoding and agreement checking, the system avoids unnecessary processing in later stages, thereby reducing overall processing time while maintaining low false correction probabilities through the iterative refinement process.
Data Source
AI summary
Various implementations described herein relate to systems and methods for decoding data stored in a non-volatile storage device, including determining error candidates and determining whether at least one first error candidate from the error candidates is found based on two of the component codes agreeing on a same error candidate. In addition, whether at least one second error candidate is found based on two of the component codes agreeing on a same error candidate is determined in response to implementing a suggested correction at one of the error candidates. Errors in the data are corrected based on at least one of whether the at least one first error candidate is found or whether the at least one second error candidate is found.


