Solid-State Memory Auto-Correction via Dual Parity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current solid-state storage systems face challenges with data corruption and error correction, particularly in flash memory, where wear out and external influences lead to increased latency, longer write and erase operations, and the inability to identify and correct errors in multiple faulty disk drives, resulting in significant IO delays and data loss.

Innovation Solution

A method for auto-correction of errors in an array of solid-state storage devices using a dual parity generation engine that identifies and corrects errors in real-time by transferring data through channel memories and a stage buffer, allowing valid data to be provided to a processor even if one storage channel fails, thereby maintaining high performance and fault tolerance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional error correction methods are used in solid-state storage systems, then data integrity can be maintained, but the system experiences increased latency, longer write and erase operations, and significant IO delays when errors occur

Engineering Contradiction:
Improvedata integrityVSAvoidlatency and IO delays
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent pre-calculates and stores parity information for data stripes across multiple solid-state storage devices during the write operation. This preliminary preparation allows the system to immediately reconstruct lost data upon error detection without performing time-consuming calculations during read operations, thereby reducing latency and IO delays while maintaining data integrity

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces a parity generation engine and control logic that acts as an intermediary between the storage devices and the processor. This intermediary pre-processes data by generating and storing parity information, enabling rapid error correction through simple lookup and reconstruction operations rather than complex real-time calculations, thus reducing the time penalty associated with error correction

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If the system retreats entire blocks when errors are detected, then data integrity is protected, but storage capacity is reduced and performance deteriorates due to loss of usable space

Engineering Contradiction:
Improvedata integrityVSAvoidstorage capacity utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies error correction at the granular level of individual data words or small groups of words within a block, rather than treating the entire block as a single unit. By using dual parity generation engines to identify and correct errors locally, the system can salvage and continue to use the majority of the block's storage capacity, significantly improving storage utilization while maintaining data integrity for the corrected portions

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent recovers usable data from blocks that would traditionally be retired by using dual parity generation engines to identify and correct errors in specific data words. Instead of discarding the entire block when any error is detected, the system recovers and continues to use the error-free portions of the block, thereby maintaining high storage capacity utilization while ensuring data integrity through selective error correction

Inventive Principle:
Principle #34Discarding and recovering

3Productivity

If dual parity generation engines are implemented to correct errors in individual data words, then storage capacity utilization improves, but device complexity increases

Engineering Contradiction:
Improvestorage capacity utilizationVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the parity generation function into separate, dedicated parity generation engines that operate independently on different data stripes. This segmentation allows each engine to be relatively simple in design while collectively providing comprehensive error correction coverage across the entire storage array, managing device complexity through functional decomposition

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The parity generation engines are designed to perform multiple functions: generating parity information during writes, detecting errors during reads, and reconstructing lost data. This multi-functionality reduces the need for separate dedicated components for each operation, thereby managing device complexity while enabling sophisticated error correction that improves storage capacity utilization

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS8181089B1Method for auto-correction of errors in a solid-state memory system
Publication Date: 2012.05.15 DATADIRECT NETWORKS INC
  • US8181089B1 patent drawing
  • US8181089B1 patent drawing
  • US8181089B1 patent drawing

AI summary

A method for auto-correction of errors in an array of solid-state storage devices having a plurality of storage channels dedicated to storing parity data to provide fault tolerance for a loss of at least two of the plurality of storage channels. A read operation from the storage channels transfers data to a plurality of channel memories. The data in the channel memories is checked to confirm the data is valid. Responsive to detection of invalid data, the data may be tested to identify the storage channel in error, including sequentially excluding data read form a different one of the plurality of channel memories from a parity check and determining the validity of data from remaining channel memories. If valid data is obtained, the storage channel from which the data was excluded is identified as the storage channel in error.