NAND Flash ECC Data Recovery via Cell Error Flipping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In NAND flash memory, when the total number of errors exceeds the error correction capability of ECC, the data becomes unrecoverable, leading to potential loss of important metadata and file system data, rendering SSDs unusable.

Innovation Solution

A controller is implemented to identify and salvage data from failed pages by flipping data values in cells with program/erase cycling errors, excluding transient errors, and performing error correction decoding to reduce the total number of errors below the ECC threshold, thereby recovering previously unrecoverable data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If ECC is used to correct data errors, then data reliability is improved, but when errors exceed ECC capability, data loss occurs

Engineering Contradiction:
Improvedata reliabilityVSAvoiddata loss
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The patent performs preliminary identification of bad blocks and bad pages before ECC decoding. By pre-locating cells that fail erase identification or have program errors, the system prepares error location information in advance, allowing ECC to focus correction efforts on remaining uncertainties and提高 correction efficiency

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent changes the parameter of error correction by introducing bad block and bad page identification results as additional parameters to the ECC decoding process. This transforms the traditional ECC correction capability into an enhanced correction capability that leverages pre-identified error locations to recover data that would otherwise be unrecoverable

Inventive Principle:
Principle #35Parameter changes

2Device complexity

If traditional ECC decoding is performed on data with excessive errors, then decoding complexity is reduced, but data recovery success rate decreases

Engineering Contradiction:
Improvedecoding complexityVSAvoiddata recovery success rate
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The system performs preliminary scanning and identification of bad blocks and bad pages before ECC decoding. This preliminary action marks cells with erase failures or program errors, providing the ECC decoder with prior knowledge about certain error locations, thereby improving the probability of successful decoding without significantly increasing overall complexity

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If all error types are treated uniformly by ECC, then processing simplicity is maintained, but correction effectiveness decreases for program/erase cycling errors

Engineering Contradiction:
Improveprocessing simplicityVSAvoidcorrection effectiveness
Core Design Contradiction:
Ease of operationVSManufacturing precision

Solution Approach 1:

The patent applies different processing quality to different error types by identifying and marking bad blocks and bad pages separately. Cells that fail erase identification or have program errors are treated with special attention through marking, while other cells undergo standard ECC processing. This localized differentiation improves correction effectiveness for program/erase cycling errors while maintaining overall processing efficiency

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9323607B2Data recovery once ECC fails to correct the data
Publication Date: 2016.04.26 SEAGATE TECH LLC
  • US9323607B2 patent drawing
  • US9323607B2 patent drawing
  • US9323607B2 patent drawing

AI summary

An apparatus comprising a memory and a controller. The memory is configured to process a plurality of read/write operations. The memory comprises a plurality of memory modules each having a size less than a total size of the memory. The controller is configured to salvage data stored in a failed page of the memory determined to exceed a maximum number of errors. The controller copies raw data stored in the failed page. The controller identifies locations of a first type of data cells that fail erase identification. The controller identifies locations of a second type of data cells that have program errors. The controller flips data values in the raw data at the locations of the first type of data cells and the locations of the second type of data cells. The controller is configured to perform error correcting code decoding on the raw data having flipped data values. The controller salvages data stored in the failed page.