Distributed ECC Engine Layout for Parallel Storage Data Paths
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current storage systems using Error Correction Code (ECC) engines face performance bottlenecks due to centralized ECC computation, which can be economically inefficient and require specialized storage media devices, and there is a need for a distributed approach that optimizes ECC computations without affecting system performance.
Innovation Solution
Implementing a distributed ECC system with multiple ECC engines configured to handle ECC computations in parallel for groups of storage media devices, where each engine performs ECC operations independently, eliminating the need for centralized logic and optimizing resource utilization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If a centralized ECC engine is placed in the main storage controller, then ECC computation can be performed in hardware with high speed, but the ECC engine becomes a bottleneck to the data path especially when the storage system employs parallelism and/or controls multiple storage devices
Solution Approach 1:
The patent divides the centralized ECC engine into multiple distributed ECC engines, with each engine handling ECC computations for a specific group of storage media devices. This segmentation eliminates the single-point bottleneck by distributing the computation load across multiple parallel data paths, allowing simultaneous ECC operations without interfering with overall data path throughput.
2Productivity
If an ECC engine is embedded on each storage device, then the data path bottleneck is eliminated, but the storage device requires added logic and the ECC engine remains unused when the storage device is not being accessed
Solution Approach 1:
The patent merges the ECC engine functionality into the storage controller rather than embedding it in each storage device. The storage controller groups multiple storage media devices and assigns dedicated ECC engines to handle computations for each group. This approach maintains high data path throughput while avoiding the waste of unused ECC engines, as the controller can dynamically allocate ECC computation resources based on actual access patterns.
3Adaptability or versatility
If software or firmware is used for ECC computations, then implementation is flexible, but the computation speed is slower compared to hardware ECC engines
Solution Approach 1:
The patent replaces software/firmware-based ECC computations with hardware-based ECC engines implemented in the storage controller. This substitution provides the best of both worlds: the speed advantage of hardware computation while maintaining the flexibility of software control through configurable engine allocation and group management. The hardware engines execute ECC algorithms at high speed, eliminating the performance penalty of software implementation.
Data Source
AI summary
Embodiments of the present invention relate to an apparatus, method, and/or sequence for a distributed ECC that may be used in a storage system. In another embodiment of the invention, an apparatus for handling distributed error correction code (ECC) operations, includes: a plurality of ECC engines configured to perform ECC operations in parallel on multiple data parts; the plurality of ECC engines distributed in parallel to receive some of the multiple data parts that are read from storage media devices and to receive some of the other multiple data parts that are to be written to the storage media devices; and the plurality of ECC engines configured to use respective ECC bytes corresponding to respective ones of the multiple data parts.


