SSD Pool-Level ECC for High-Bit Error Recovery
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Reliability
If multiple reads from multiple devices are performed for re decoding, then error correction capability is improved, but loss of time increases
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.
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.
Data Source
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.


