Multi-Layer Memory Coding for Selective Data Recovery

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data storage systems in non-volatile memory devices, such as flash memory, face inefficiencies due to programming imperfections and defects, leading to read-out errors, which are not adequately addressed by current correction schemes that either reduce system efficiency or compromise data integrity.

Innovation Solution

Implementing a multi-layered coding system where data is encoded in multiple layers using Reed-Solomon Codes, allowing for efficient recovery of data by decoding layers in reverse order, with the first layer providing additional protection in case of errors, thereby enhancing data integrity and system efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If correction schemes compute parity bits across multi-page units (data sectors), then data integrity is improved, but system efficiency deteriorates because large blocks of data must be read to perform correction

Engineering Contradiction:
Improvedata integrityVSAvoidsystem efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the correction process into two layers: a first layer that operates on individual pages with simple parity checks for quick error detection, and a second layer that operates on data sectors for comprehensive error correction. This segmentation allows the system to perform rapid page-level checks without reading entire sectors, improving efficiency while maintaining integrity through the sector-level correction layer.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies partial action by implementing a hierarchical correction approach where the first layer performs partial correction on individual pages, and only when errors persist does the second layer perform additional correction on the data sector. This avoids the need to always read and process entire data sectors, improving system efficiency while maintaining data integrity.

Inventive Principle:
Principle #16Partial or excessive action

2Productivity

If CRC is performed on a page-by-page basis, then system efficiency is improved by allowing selective reading, but data integrity deteriorates because less correction/detection is possible

Engineering Contradiction:
Improvesystem efficiencyVSAvoiddata integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the error correction capability into two layers: the first layer provides page-level CRC protection for efficient individual page verification, while the second layer provides sector-level CRC protection for comprehensive data integrity. This segmentation allows the system to benefit from both page-by-page efficiency and sector-level reliability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates a composite error correction system combining two different CRC layers with different strengths. The first layer uses CRC for page-level protection, and the second layer uses enhanced CRC for sector-level protection. This composite approach allows the system to achieve both efficiency (through page-level checking) and integrity (through sector-level protection).

Inventive Principle:
Principle #40Composite materials

Data Source

PatentUS8910013B1Methods and apparatus for providing multi-layered coding for memory devices
Publication Date: 2014.12.09 MARVELL ASIA PTE LTD
  • US8910013B1 patent drawing
  • US8910013B1 patent drawing
  • US8910013B1 patent drawing

AI summary

Systems and methods are provided for recovering data stored in memory. A group of data is encoded using a first layer of code to form a first encoded group of data. Individual portions of the first encoded group of data are then encoded using a second layer of code to form a second encoded group of data. A processor may request access to an individual portion of the group of data. The encoded version of the requested individual portion is retrieved from memory and decoded using the second layer of code to recover the requested individual portion. If the recovery of the requested individual portion fails, the remaining encoded portions of the group are retrieved from memory and decoded using the first layer of code to recover the requested individual portion.