3D Turbo Code ECC for Flash Memory Reliability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional approaches to error management in MLC flash memories are inefficient in achieving low uncorrectable error rates, especially in enterprise storage environments, due to high write amplification and degradation of signal-to-noise ratio over time, leading to reduced reliability and lifespan of flash memory devices.

Innovation Solution

A three-dimensional turbo code system is implemented, comprising primary, secondary, and tertiary error correction codes that are partially orthogonal to each other, along with a journaling filing system to reduce write amplification and extend flash memory cell life, ensuring efficient error correction and data retrieval.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional BCH error correction coding is used in MLC flash memory, then the device can store data over a specified number of program/erase cycles, but the uncorrectable error rate increases over time and becomes unacceptable for enterprise storage applications

Engineering Contradiction:
Improveuncorrectable error rateVSAvoidprogram/erase cycle lifetime
Core Design Contradiction:
ReliabilityVSDuration of action of stationary object

Solution Approach 1:

The patent transitions from conventional one-dimensional BCH error correction coding to a three-dimensional turbo code system. This dimensional expansion allows the system to protect data across multiple layers (pages, page stripes, and page grids) simultaneously, achieving enterprise-grade reliability (1E-16 uncorrectable error rate) while maintaining compatibility with MLC flash memory's program/erase cycle characteristics.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Solution Approach 2:

The patent segments the flash memory into a hierarchical structure of pages, page stripes, and page grids, with dedicated error correction codes at each level. This segmentation allows the system to tackle errors at different scales and locations, improving overall reliability without requiring excessive redundancy at any single level, thus preserving program/erase cycle lifetime.

Inventive Principle:
Principle #1Segmentation

2Reliability

If stronger error correction coding is applied to achieve low uncorrectable error rates, then reliability improves, but write amplification increases and performance degrades

Engineering Contradiction:
Improveuncorrectable error rateVSAvoidwrite amplification
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements a tiered error correction approach where the three-dimensional turbo code system applies different levels of correction strength at different hierarchical levels. Not all data requires the maximum correction strength, allowing the system to achieve enterprise-grade reliability while minimizing the total redundancy overhead and associated write amplification compared to applying uniform maximum-strength correction across all data.

Inventive Principle:
Principle #16Partial or excessive action

3Quantity of substance

If MLC flash memory is used to reduce cost, then storage density improves and price decreases, but signal-to-noise ratio degrades and error rates increase

Engineering Contradiction:
Improvestorage densityVSAvoidsignal-to-noise ratio
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent compensates for MLC's inherently lower signal-to-noise ratio by introducing a three-dimensional error correction architecture. This dimensional expansion provides multiple layers of error protection, enabling the system to achieve enterprise-grade reliability (1E-16 uncorrectable error rate) despite the degraded signal quality inherent in high-density MLC flash memory.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Solution Approach 2:

The patent creates a composite error correction system combining three different coding schemes (primary BCH codes at the page level, secondary codes at the page stripe level, and tertiary Reed-Solomon codes at the page grid level). This composite approach leverages the strengths of different coding methods to achieve superior error correction capability that compensates for MLC's signal-to-noise ratio limitations.

Inventive Principle:
Principle #40Composite materials

4Ease of manufacture

If conventional ECC schemes are used, then implementation is simple, but achieving enterprise-grade error rates requires excessive redundancy and reduced storage efficiency

Engineering Contradiction:
Improveimplementation complexityVSAvoidstorage efficiency
Core Design Contradiction:
Ease of manufactureVSQuantity of substance

Solution Approach 1:

The patent implements a tiered error correction approach where the three-dimensional turbo code system applies different levels of correction strength at different hierarchical levels. Not all data requires the maximum correction strength, allowing the system to achieve enterprise-grade reliability while minimizing the total redundancy overhead and associated write amplification compared to applying uniform maximum-strength correction across all data.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9047214B1System and method for tolerating a failed page in a flash device
Publication Date: 2015.06.02 IP GEM GRP LLC
  • US9047214B1 patent drawing
  • US9047214B1 patent drawing
  • US9047214B1 patent drawing

AI summary

Apparatus and methods provide relatively low uncorrectable bit error rates, low write amplification, long life, fast and efficient retrieval, and efficient storage density such that a solid-state drive (SSD) can be implemented using relatively inexpensive MLC Flash for an enterprise storage application. A page is associated with a set of primary ECC codewords, and a page stripe is associated with a set of secondary codewords and primary over secondary parity (PoSP) ECC codewords. Two or more page stripes can form a page grid, wherein the page grid is associated with a group of tertiary ECC codewords, wherein the last page stripe of the page grid has a reduced payload capacity.