Quarter Product Code Structure for NAND Flash ECC Decoding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing error-correction coding schemes, such as BCH codes and LDPC codes, face limitations in correcting errors in advanced NAND flash memory applications beyond 3000 program/erase cycles due to high raw bit-error rates and complexity in soft-decision decoding, which is infeasible with current technology.
Innovation Solution
The implementation of quarter product codes, which use identical reversible error-correction codes for row and column encoding, resulting in a codeword defined by X−XT−(X−XT)F, offering improved symmetry and reduced codeword length, allowing for longer and stronger component codes with efficient encoder/decoder implementations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If soft-decision decoding is used to improve error correction performance, then error correction capability is improved, but device complexity and implementation feasibility deteriorate
Solution Approach 1:
The patent segments the error correction task by using product codes that separate encoding into independent row and column components. This segmentation allows the use of simpler hard-decision decoding algorithms for each component while achieving overall error correction performance that approaches soft-decision decoding, thereby reducing device complexity while maintaining reliability.
Solution Approach 2:
The patent employs composite coding structures combining multiple code types (e.g., BCH codes, Reed-Solomon codes) in a product code framework. This composite approach integrates the strengths of different codes to achieve high error correction capability using simple hard-decision decoding, avoiding the complexity of soft-decision decoding while maintaining high reliability.
2Reliability
If longer component codes are used to improve error correction performance, then error correction capability is improved, but codeword length and processing time increase
Solution Approach 1:
The patent extracts and utilizes the inherent symmetry properties of product codes to reduce the effective codeword length that needs to be processed. By exploiting the structure where row and column codes are identical, the system achieves high error correction capability with reduced processing overhead and effective codeword length, thereby improving reliability without proportionally increasing processing time.
Solution Approach 2:
The patent transitions from one-dimensional sequential processing to two-dimensional product code structure with row and column dimensions. This dimensional change allows parallel processing of rows and columns, achieving high error correction capability while reducing effective processing time and managing codeword length more efficiently through the structured arrangement.
3Productivity
If product codes with identical row and column codes are used to improve symmetry and reduce codeword length, then encoding efficiency is improved, but decoding complexity increases due to iterative requirements
Solution Approach 1:
The patent designs the product code structure so that the same encoding algorithm serves both row and column encoding functions. This self-service approach maintains high encoding efficiency while simplifying decoding, as the symmetric structure allows the decoder to use identical processing logic for both dimensions, reducing overall decoding complexity despite the iterative nature of product code decoding.
Data Source
AI summary
A data encoding method includes storing K input data symbols; assigning the symbols to respective symbol locations in a notional square array, having n rows and n columns of locations, to define a plurality of k-symbol words in respective rows; encoding the words by encoding rows and columns of the array dependent on a product code having identical row and column codes, each being a reversible error-correction code of dimension k and length n=2n′, thereby to define a codeword, having n2 code symbols corresponding to respective locations of the array, of a quarter product code defined by CQ={X−XT−(X−XT)F: X∈C} where X is an n by n-symbol matrix defining a codeword of the product code, XT is the transpose matrix of X, and (X−XT)F is a reflection of matrix (X−XT) in the anti-diagonal thereof.


