SSD Pool-Level ECC for High-Bit Error Recovery

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current error correction mechanisms for flash devices, particularly in SSDs, face challenges with increased bit density and error rates due to multi-level cell techniques and reduced longevity, leading to unrecoverable errors and high parity overhead in RAID configurations, which are inefficient for open-channel SSDs.

Innovation Solution

A method involving the generation of multiple sets of parity bits, including BCH, Hamming, and Reed-Solomon parity bits, to correct errors at different levels, with a pool-level or global ECC mechanism integrated into the flash translation layer for arrays of SSDs, allowing for enhanced error correction and reduced parity overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If stronger Error Correcting Codes (ECCs) are used to detect and correct bit errors, then error correction capability is improved, but device complexity increases

Engineering Contradiction:
Improveerror correction capabilityVSAvoidECC algorithm complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the error correction process into two distinct stages: (1) device-level ECC decoding that attempts to correct errors locally, and (2) host-level re decoding that handles remaining uncorrectable errors by leveraging redundancy from multiple device reads. This segmentation allows each stage to use appropriately complex algorithms for its specific purpose, rather than requiring the entire system to use the most complex ECC throughout.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary mechanism where the host system acts as a mediator between multiple storage devices. When device-level ECC fails, the host coordinates reading the same logical address from multiple devices and performs re decoding using combined data. This intermediary approach enables error correction beyond what any single device could achieve alone, without requiring each device to implement excessively complex ECC algorithms.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If multiple reads from multiple devices are performed for re decoding, then error correction capability is improved, but loss of time increases

Engineering Contradiction:
Improveerror recovery capabilityVSAvoidread operation time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements preliminary action by having the storage system pre-configured with multiple devices containing redundant data before read operations begin. When a read failure occurs, the host can immediately initiate re decoding by reading from alternative devices without needing to wait for complex error analysis or external intervention. The redundancy is prepared in advance, enabling rapid fallback to alternative data sources.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent employs feedback mechanisms where the host continuously monitors ECC decoding results from each device read. When decoding fails, the system automatically triggers re decoding operations and adjusts its reading strategy based on which devices succeed or fail. This feedback-driven approach allows the system to adaptively optimize read operations, retrying only when necessary and using the minimum number of additional reads required to achieve successful error correction.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10740175B2Pool-level solid state drive error correction
Publication Date: 2020.08.11 KIOXIA CORP
  • US10740175B2 patent drawing
  • US10740175B2 patent drawing
  • US10740175B2 patent drawing

AI summary

A method for performing error correction for a plurality of storage drives and a storage appliance comprising a plurality of storage devices is disclosed. In one embodiment, the method includes generating a first set of parity bits from a first set of data of at least one of the plurality of storage devices, the first set of parity bits capable of correcting a first number of error bits of the first set of data. The method further includes generating a second set of parity bits from a concatenated set of the first data and a second set of data from at least another of the plurality of storage devices, the second set of parity bits capable of correcting a second number of error bits of the first set of data, the second number being greater than the first number. The method further includes reading the first set of data and (i) correcting error bits within the first set of data with the first set of parity bits where a number of error bits is less than the first number of error bits; and (ii) correcting error bits within the first set of data with the second set of parity bits where the number of error bits is greater than the first number.