Memory Storage Device Data Correction Using Group Parity Codes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Rewritable non-volatile memory modules face challenges in correcting data errors when the error bit number exceeds the error correction capability, leading to incomplete data transmission to host systems due to excessive bit errors.

Innovation Solution

A data correcting method that groups physical programming units into encoded groups, using a first parity code from a single unit and additional group parity codes from other units to correct user data through a second correcting circuit, even under limited buffer space, ensuring accurate data transmission.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If only a single parity code from one physical programming unit is used for data correction, then the correction process is simple and fast, but the data cannot be corrected when error bits exceed the correction capability of that single parity code

Engineering Contradiction:
Improvedata correction capabilityVSAvoidcorrection process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The encoded data is divided into multiple physical programming units, each with its own parity code. When correction is needed, the system segments the correction process by first attempting correction with the local parity code, and if that fails, segments the problem further by involving group parity codes from other units. This segmentation allows the system to handle correction in manageable stages without requiring complex upfront design.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Group parity codes serve as intermediaries between individual physical programming units. When a unit's local parity code cannot correct the data, the group parity code acts as a mediator that provides additional correction capability by combining information from multiple units. This intermediary approach enables extended correction capability without requiring direct complex interaction between all units.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If group parity codes from multiple physical programming units are used to correct data, then data correction reliability is improved, but the buffer space requirement increases

Engineering Contradiction:
Improvedata correction reliabilityVSAvoidbuffer space
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The system performs preliminary correction attempts using local parity codes before invoking group parity codes. This preliminary action filters out cases that don't require extensive correction resources, ensuring that group parity codes and their associated buffer space are only utilized when absolutely necessary. This staged approach optimizes buffer usage by preparing and attempting simpler corrections first.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Instead of loading all possible group parity codes into buffer space simultaneously, the system applies partial action by loading only the specific group parity codes needed for the current correction attempt. The buffer space is allocated dynamically based on the actual correction requirements rather than pre-allocating maximum space, thus avoiding excessive buffer usage while maintaining correction capability.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9996415B2Data correcting method, memory control circuit unit, and memory storage device
Publication Date: 2018.06.12 PHISON ELECTRONICS
  • US9996415B2 patent drawing
  • US9996415B2 patent drawing
  • US9996415B2 patent drawing

AI summary

A data correcting method for a rewritable non-volatile memory module is provided. The method includes: if a first user data read from a first physical programming unit cannot be corrected by a corresponding first parity code, reading at least one group parity code of a first encoded group that the first physical programming unit belongs to into a buffer, sending the group parity code to a correcting circuit, and reading a user data from physical programming units belonging to the first encoded group into the buffer and sending the user data and the group parity code to the correcting circuit in batches to obtain a corrected first user data corresponding to the first user data.