HFPC Hard Decoding for NAND Flash Error Candidate Correction

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveerror correction capabilityVSAvoidimplementation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #40Composite materials

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

Engineering Contradiction:
Improveerror correction capabilityVSAvoiddecoding complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

3Reliability

If iterative decoding with multiple component codes is implemented, then false correction probabilities are reduced, but processing time increases

Engineering Contradiction:
Improvefalse correction probabilityVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11513894B2Hard decoding methods in data storage devices
Publication Date: 2022.11.29 KIOXIA CORP
  • US11513894B2 patent drawing
  • US11513894B2 patent drawing
  • US11513894B2 patent drawing

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.