NAND Flash Error Recovery With Concatenated Block and Stream Codes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

NAND flash memory systems face challenges in error correction beyond the limits of conventional error correction codes, leading to uncorrectable errors and potential data loss, especially with newer memory technologies that have higher density but lower reliability.

Innovation Solution

The implementation of a concatenated error correction code system that combines an outer block code with a stream-based inner convolutional code, which processes data in streams and increases the data size, allowing for improved error detection and correction capabilities.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional error correction codes are used in NAND flash memory, then the system maintains simplicity and compatibility, but error correction capability is insufficient for higher density memory devices

Engineering Contradiction:
Improveerror correction capabilityVSAvoiderror correction code complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The error correction code is segmented into an outer block code and an inner convolutional code, where the outer code handles block-level error correction and the inner code handles stream-level error correction. This segmentation allows each code to specialize in different error patterns, improving overall reliability without requiring a single complex code to handle all error types.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent uses a composite error correction approach by combining two different error correction codes (block code and convolutional code) into a concatenated code system. This composite structure leverages the strengths of both code types: the block code's ability to correct random errors and the convolutional code's ability to handle burst errors, achieving superior error correction capability compared to either code alone.

Inventive Principle:
Principle #40Composite materials

2Productivity

If data is stored in larger groups (pages) to achieve high density, then storage efficiency improves, but the likelihood of uncorrectable errors increases

Engineering Contradiction:
Improvestorage efficiencyVSAvoiddata integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces a temporal dimension to error correction by using a stream-based convolutional code that processes data continuously across page boundaries. Unlike traditional block codes that treat each page independently, the convolutional code maintains state information across pages, enabling error correction that spans multiple pages and reducing the impact of burst errors within any single page.

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

3Productivity

If smaller geometry memory devices are used to maintain high density, then cost is reduced, but reliability and error correction capability deteriorate

Engineering Contradiction:
Improvememory densityVSAvoiderror rate
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies preliminary error correction by the outer block code before the data is potentially corrupted by storage errors, and then applies additional correction by the inner convolutional code during retrieval. This two-stage preliminary and ongoing correction approach ensures that errors are addressed at multiple stages, compensating for the lower inherent reliability of smaller geometry devices.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8065583B2Data storage with an outer block code and a stream-based inner code
Publication Date: 2011.11.22 MICRON TECHNOLOGY INC
  • US8065583B2 patent drawing
  • US8065583B2 patent drawing
  • US8065583B2 patent drawing

AI summary

Apparatus and methods store stream-based error recovery data for a memory array, such as a NAND flash array. Conventionally, data is block coded per industry specification and stored in the memory array. Within the limits of the block code, this technique provides for correction of errors. By applying a stream-based inner code, that is, concatenating the outer block code with an outer code, the error correction can be further enhanced, enhancing the reliability of the device. This can also permit a relatively small-geometry device to be used in a legacy application.