Ultra Fast ECC with Parity for Non-Volatile Storage
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Non-volatile storage devices, such as SSDs, face challenges with high access latency and inadequate data protection against corruption, despite the use of error correction codes (ECC), necessitating improved methods for robust data storage with reduced latency and enhanced error correction robustness.
Innovation Solution
The integration of an ECC scheme with RAID technology across multiple channels in non-volatile storage systems, utilizing channel parallelism to distribute data streams and generate parity information for robust protection, significantly reduces data transfer and ECC latency, and enhances error correction reliability through redundant parity channels.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional ECC is used in non-volatile storage, then data protection is provided, but access latency remains high and robustness against data corruption is insufficient
Solution Approach 1:
The patent divides data into multiple stripes distributed across different channels, with each stripe having its own ECC codeword. This segmentation allows parallel processing of multiple data chunks simultaneously, reducing overall ECC latency while maintaining comprehensive data protection across all channels
Solution Approach 2:
The patent introduces a new dimension of protection by adding RAID-level parity blocks alongside traditional ECC codewords. This multi-layered approach (ECC at channel level + RAID parity at system level) provides robustness against both bit-flip errors and entire channel failures without significantly increasing latency
2Productivity
If more channels are used to reduce latency, then data transfer speed improves, but system complexity increases
Solution Approach 1:
The patent creates a universal data structure where data is organized into stripes that can be distributed across any number of channels. The same ECC and RAID parity generation logic applies regardless of channel count, making the system scalable without proportionally increasing complexity. Each channel handles identical operations on different data portions
Solution Approach 2:
By segmenting data into fixed-size chunks that map to channels, the patent simplifies the management of multi-channel systems. Each channel processes independent data units with the same encoding/decoding logic, reducing the complexity burden that would otherwise grow with the number of channels
3Reliability
If RAID parity is stored to protect against channel failure, then data recovery capability improves, but additional storage space and processing overhead are required
Solution Approach 1:
The patent merges ECC codeword generation at the channel level with RAID parity block generation at the system level into a unified encoding process. This integration allows both forms of protection to be applied simultaneously during a single data write operation, reducing processing overhead compared to separate ECC and RAID encoding stages
Solution Approach 2:
The patent performs preliminary ECC encoding on each data chunk before distributing it to channels, and simultaneously generates RAID parity blocks in advance. This preliminary processing ensures that both channel-level and system-level protection are established before data is written to storage, enabling fast recovery operations without real-time processing delays
Data Source
AI summary
Systems, apparatus and methods are provided for providing fast non-volatile storage access with ultra-low latency. A method may comprise dividing a user data unit into a plurality of data chunks, generating a plurality of error correction code (ECC) codewords and at least one ECC parity block and transmitting the plurality of ECC codewords and the at least one ECC parity block to a plurality of channels of the non-volatile storage device for each of the plurality of ECC codewords and the at least one ECC parity block to be stored in different channels of the plurality of channels.


