NAND Flash String Error Recovery Using Cross-Dimensional ECC

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Flash memory systems face challenges in data recovery when traditional block error correction codes fail, particularly due to catastrophic failures like word line failures, as they are limited in correcting errors beyond their capability, leading to uncorrectable data errors with potentially catastrophic consequences.

Innovation Solution

Implementing supplemental error correction codes, such as convolutional codes, which are incrementally updateable and stored across columns, allowing for error correction in a different dimension of the memory array, enabling recovery even when block error correction codes are unable to correct data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional block error correction codes are used, then data storage is simple and efficient, but data recovery fails when catastrophic errors exceed correction capability

Engineering Contradiction:
Improvedata recovery capabilityVSAvoiderror correction system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent transitions from traditional block-based error correction (operating on 2D arrays of data bits) to convolutional code-based error correction (operating on 1D sequences along NAND flash strings). This dimensional change allows the system to exploit temporal correlations along the string direction, enabling recovery from catastrophic failures that destroy entire blocks while maintaining manageable system complexity through incremental updating mechanisms.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Solution Approach 2:

The patent divides the error correction function into two independent segments: block error correction codes operating on data blocks and convolutional codes operating along NAND flash strings. This segmentation allows each code type to address specific failure modes independently, with block codes handling random errors and convolutional codes handling catastrophic errors, thereby improving overall reliability without requiring a single complex correction system.

Inventive Principle:
Principle #1Segmentation

2Reliability

If block error correction codes are used, then implementation is straightforward, but correction capability is limited beyond certain error thresholds

Engineering Contradiction:
Improveerror correction capabilityVSAvoidcoding system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent merges two error correction approaches: block error correction codes (such as BCH or Reed-Solomon) and convolutional codes (such as Viterbi decoding). The block codes provide robust correction for random errors within blocks, while convolutional codes provide additional correction capability for catastrophic errors affecting entire strings. This combination achieves superior error correction capability without requiring a single overly complex coding scheme.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent applies convolutional encoding during the write operation along NAND flash strings, preparing redundancy information in advance. When read operations occur, the pre-computed convolutional codes enable rapid error correction without requiring complex real-time computation. This preliminary action reduces the complexity of the decoding system while maintaining high correction capability.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8051358B2Error recovery storage along a nand-flash string
Publication Date: 2011.11.01 MICRON TECHNOLOGY INC
  • US8051358B2 patent drawing
  • US8051358B2 patent drawing
  • US8051358B2 patent drawing

AI summary

Apparatus and methods store error recovery data in different dimensions of a memory array. For example, in one dimension, block error correction codes (ECC) are used, and in another dimension, supplemental error correction codes, such as convolutional codes, are used. By using separate dimensions, the likelihood that a defect affects both error recovery techniques is lessened, thereby increasing the probability that error recovery can be performed successfully. In one example, block error correction codes are used for data stored along rows, and this data is stored in one level of multiple-level cells of the array. Supplemental error correction codes are used for data stored along columns, such as along the cells of a string, and the supplemental error correction codes are stored in a different level than the error correction codes.