Flash Memory ECC for Unwritten Page Detection and Error Correction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Flash memory systems face challenges in providing error correction coding (ECC) protection for unwritten pages, as existing ECC schemes require prior knowledge to distinguish between written and unwritten pages, leading to potential data corruption from random bit errors when reading unwritten pages without disabling the ECC decoder.

Innovation Solution

The implementation of an ECC scheme that bitwise inverts code words during both write and read operations, using a systematic or non-systematic encoder, and pre-computing a 'Default Parity' for unwritten pages to ensure ECC protection, along with an Unwritten-Page Detector to determine page status post-read, minimizing the impact of random bit errors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If ECC decoding is performed on all pages without distinction, then data integrity is maintained through error correction, but erroneous corrections occur on unwritten pages due to random bit errors

Engineering Contradiction:
Improvedata integrityVSAvoiderroneous corrections
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The patent applies preliminary action by pre-computing and storing the expected default code word (representing an all-ones page) in the flash memory during manufacturing or initialization. This pre-stored reference allows the system to compare read data against the expected default state, enabling detection of whether a page was intentionally written or contains only random bit errors, thereby preventing erroneous ECC corrections on unwritten pages while maintaining error correction capability on written pages

Inventive Principle:
Principle #10Preliminary action

2Reliability

If prior knowledge of page status is required to disable ECC decoding, then erroneous corrections are avoided, but system complexity increases and seamless reading is compromised

Engineering Contradiction:
Improveerror correction accuracyVSAvoidreading operation
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent implements self-service by enabling the ECC decoder to automatically determine whether a page requires error correction through self-diagnosis. The decoder compares the read data against the pre-stored default code word and uses the comparison result to autonomously decide whether to perform ECC decoding, eliminating the need for external prior knowledge of page status and maintaining seamless reading operations while ensuring correction accuracy

Inventive Principle:
Principle #25Self-service

3Measurement precision

If unwritten pages are treated differently from written pages, then error correction precision is improved, but device complexity increases

Engineering Contradiction:
Improvepage status detectionVSAvoidECC system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent applies homogeneity by treating unwritten and written pages uniformly through the same ECC decoding process and data structure. The only distinction made is the comparison against the pre-stored default code word, which integrates seamlessly into the existing ECC framework without requiring separate handling paths, additional hardware components, or complex control logic, thereby maintaining low device complexity while achieving precise page status detection

Inventive Principle:
Principle #33Homogeneity

Data Source

PatentUS20090100315A1Methods and apparatus for providing error correction to unwritten pages and for identifying unwritten pages in flash memory
Publication Date: 2009.04.16 KIOXIA CORP
  • US20090100315A1 patent drawing
  • US20090100315A1 patent drawing
  • US20090100315A1 patent drawing

AI summary

Provided are methods for error correction coding (ECC) for flash memory pages which have been erased but have not been programmed. In one method, each ECC code word is bitwise inverted before being programmed into a page, and bitwise inverted again after being read back from the page before entering the decoder. Thus an unwritten page, whose bits are all ones when random errors are absent, appears to the decoder as all zeros, which form a valid code word(s) in linear block codes. In another method, in both page programming and page read, the parity section of each ECC code word is bitwise XORed with the complement of a parity calculated from a message whose bits are all ones. Thus an unwritten page appears to the decoder as a valid ECC code word(s) when random errors are absent. Further provided is an apparatus for determining after a page read whether or not the read page has been programmed by comparing the number of read code word symbols which do not have the default erased value and the maximum number of symbol errors correctable by the ECC.