NAND Flash Memory Layout With Cross-Device Convolutional ECC

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional flash memory technologies face challenges in effectively correcting errors beyond a certain limit, leading to data loss due to individual bit errors in solid-state non-volatile memory devices like NAND flash, which are more prone to such errors compared to traditional hard disks.

Innovation Solution

The implementation of convolutional encoding and decoding methods that spread error correction codes across multiple non-volatile memory devices, using a high code rate and puncturing techniques to enhance error correction capabilities and reduce vulnerability to errors, while maintaining compatibility with existing systems by mimicking conventional hard disk operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional error correction codes are used in flash memory, then data can be corrected within certain error limits, but data loss occurs when errors exceed these limits

Engineering Contradiction:
Improveerror correction capabilityVSAvoiddata loss
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The invention divides data into multiple data stripes and distributes them across multiple flash memory devices. Each stripe is independently encoded with error correction codes, allowing the system to recover from errors in individual stripes without losing the entire dataset. This segmentation enables granular error recovery where only affected portions need to be reconstructed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system introduces an intermediary recovery mechanism that monitors error rates in real-time during read operations. When error rates approach the correction threshold, the system proactively initiates data reconstruction by reading from surviving stripes and rewriting to replacement stripes, serving as a mediator between error occurrence and data loss.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Device complexity

If data is stored in a single flash memory device, then storage is simple, but the device is vulnerable to individual bit errors

Engineering Contradiction:
Improvestorage simplicityVSAvoidvulnerability to errors
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The invention segments data storage across multiple flash memory devices, creating distributed data stripes. This segmentation transforms a single-point-failure architecture into a distributed system where errors in one device do not compromise the entire dataset, as recovery can proceed using data from other devices.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically adjusts operational parameters based on error rates, including switching between read modes (once vs. multiple times), adjusting verification thresholds, and modifying reconstruction strategies. These parameter changes allow the system to adapt to varying error conditions while maintaining storage efficiency.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If error correction codes are applied to all data, then robustness against errors is improved, but storage capacity is reduced due to overhead

Engineering Contradiction:
Improvedata robustnessVSAvoidstorage capacity
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The invention applies error correction codes selectively to individual data stripes rather than uniformly to all data. This segmented approach allows the system to allocate ECC resources dynamically, applying stronger correction to high-risk stripes while using lighter protection for more reliable data, thereby optimizing the balance between robustness and storage capacity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system implements partial error correction by focusing resources on correcting errors in critical or high-error-rate stripes rather than uniformly protecting all data. This partial action approach ensures that the most vulnerable data receives adequate protection while minimizing the overall ECC overhead on storage capacity.

Inventive Principle:
Principle #16Partial or excessive action

4Reliability

If data is read multiple times to verify correctness, then error detection is improved, but read speed is reduced

Engineering Contradiction:
Improveerror detectionVSAvoidread speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The invention implements dynamic read verification that adapts the number of read attempts based on real-time error rate monitoring. When error rates are low, the system performs single reads for speed. When error rates increase, the system dynamically increases verification reads, creating a flexible strategy that optimizes the trade-off between error detection and read speed based on current conditions.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system incorporates feedback loops that monitor read results and error rates, using this information to adjust subsequent read operations. If initial reads succeed with low error rates, the system reduces verification overhead. If errors are detected, the feedback mechanism triggers additional verification reads or initiates reconstruction procedures, creating an adaptive read strategy.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS20120290902A1Fault-tolerant non-volatile integrated circuit memory
Publication Date: 2012.11.15 MICRON TECHNOLOGY INC
  • US20120290902A1 patent drawing
  • US20120290902A1 patent drawing
  • US20120290902A1 patent drawing

AI summary

Apparatus and methods are disclosed, such as those that store data in a plurality of non-volatile integrated circuit memory devices, such as NAND flash, with convolutional encoding. A relatively high code rate for the convolutional code consumes relatively little extra memory space. In one embodiment, the convolutional code is spread over portions of a plurality of memory devices, rather than being concentrated within a page of a particular memory device. In one embodiment, a code rate of m/n is used, and the convolutional code is stored across n memory devices.