HFPC Soft Decoding for High-Rate NAND Flash Error Correction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional encoding methods are not well-suited for supporting high code rates in both hard decoding and soft decoding, particularly in flash memory devices, leading to complex and costly implementations.
Innovation Solution
A soft decoding scheme using half folded-product codes (HFPC) is implemented, which enables high code rates in NAND flash memory devices, allowing for improved error correction capabilities with low read and decode complexity by determining extrinsic value outputs for each component code and decoding based on the outputs of all other component codes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If conventional encoding methods are used for high code rates, then code rate is improved, but implementation complexity increases and cost increases
Solution Approach 1:
The patent applies segmentation by dividing the high code rate code into multiple component codes (e.g., several lower-rate component codes). Each component code can be decoded independently or with limited interaction, avoiding the need to implement complex high-rate codes directly. This segmentation enables high effective code rate while using simpler, well-understood component code structures with established decoding algorithms.
2Productivity
If conventional encoding methods are used for high code rates, then code rate is improved, but implementation cost increases
Solution Approach 1:
By segmenting the high-rate code into multiple lower-rate component codes, the patent reduces implementation cost. Each component code uses standard, well-established encoding and decoding structures that are easier and cheaper to manufacture. The overall system achieves high code rate performance through the combination of multiple inexpensive component codes rather than requiring a single complex high-rate code implementation.
3Reliability
If soft decoding is implemented for high code rates, then error correction capability is improved, but decoding complexity increases
Solution Approach 1:
The patent segments the soft decoding process into multiple component code decoders, each handling a portion of the error correction task. This allows the system to achieve strong overall error correction capability through the combined effect of multiple simpler decoders rather than requiring a single highly complex soft decoder for the entire high-rate code.
Solution Approach 2:
The patent introduces extrinsic information as an intermediary between component code decoders. Each decoder generates extrinsic information based on its component code decoding, which is then passed to other decoders to assist their decoding process. This intermediary mechanism enables coordinated error correction across all component codes while keeping each individual decoder relatively simple.
4Speed
If component codes are decoded independently, then decoding speed is improved, but error correction reliability decreases
Solution Approach 1:
The patent uses extrinsic information as a mediator that connects independently decoded component codes. Each component code is decoded independently to maintain speed, but the extrinsic information generated by each decoder is shared with others to improve overall reliability. This intermediary mechanism allows parallel independent processing while still achieving coordinated error correction through information exchange.
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 features for each of a plurality of component codes corresponding to the data by decoding each of the plurality of component codes, determining an extrinsic value output for each of the component codes based on the features, and after the extrinsic value output for each of the component codes is determined, decoding each of the plurality of component codes based on the extrinsic value outputs of all other component codes of the component codes. Each of the component codes depends on all other component codes.


