Memory Write ECC Layout for Low-Reliability Programming Units

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional methods for writing data into rewritable non-volatile memory modules face challenges in successfully decoding data stored in physical programming units with lower reliability, as errors are more likely to occur in these units.

Innovation Solution

A data writing method that encodes data into multiple error checking and correction codes, where one set is written into a physical programming unit with higher reliability, thereby improving the chances of successful decoding by storing the error checking and correction code in a unit with lower error probability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If data and error checking and correction codes are written into the same physical programming unit, then the writing process is simple, but the probability of successful decoding decreases when the physical programming unit has lower reliability

Engineering Contradiction:
Improvewriting process complexityVSAvoiddecoding success probability
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent divides the storage of data and error checking and correction codes into separate physical programming units. Specifically, data is written into a first physical programming unit while its corresponding error checking and correction codes are written into a second physical programming unit. This segmentation allows the system to store data and its protection codes in different locations, enabling more flexible error handling and improving decoding success probability when one unit has lower reliability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary mechanism where error checking and correction codes are generated and stored separately from the data itself. The error checking and correction codes act as an intermediary element that can be used to recover data even when the data storage unit experiences errors. This intermediary approach allows the system to overcome the reliability limitations of individual physical programming units.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Quantity of substance

If data is stored in physical programming units with lower reliability, then storage capacity is maximized, but error probability increases

Engineering Contradiction:
Improvestorage capacityVSAvoiderror probability
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent applies local quality by differentiating the reliability requirements for data storage versus error code storage. Different physical programming units can be selected based on their specific reliability characteristics. The system can choose to store data in units optimized for capacity while storing error checking and correction codes in units with higher reliability, or vice versa, depending on the specific application requirements. This local quality approach allows the system to optimize both storage capacity and reliability simultaneously.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11190217B2Data writing method, memory controlling circuit unit and memory storage device
Publication Date: 2021.11.30 PHISON ELECTRONICS
  • US11190217B2 patent drawing
  • US11190217B2 patent drawing
  • US11190217B2 patent drawing

AI summary

A data writing method, a memory controlling circuit unit and a memory storage device are provided. The method includes: obtaining a data; encoding a plurality of sub-data in the data to obtain a plurality of first error checking and correction codes respectively corresponding to the plurality of sub-data; writing the plurality of sub-data and the plurality of first error checking and correction codes into a first physical programming unit; encoding the plurality of sub-data to obtain a second error checking and correction code; and writing the second error checking and correction code into a second physical programming unit.