Storage system with distributed ECC capability
First Claim
1. An apparatus for handling distributed error correction code (ECC) operations, the apparatus comprising:
- a storage system configured to partition a contiguous data into multiple data parts including a first data part and a second data part;
the storage system comprising;
a plurality of ECC engines configured to perform ECC operations in parallel on the multiple data parts, wherein the plurality of ECC engines comprises a first ECC engine and a second ECC engine;
wherein the first ECC engine is configured to compute a first computed ECC part for the first data part and the second ECC engine is configured to compute a second computed ECC part for the second data part;
wherein the plurality of ECC engines is distributed in parallel; and
a plurality of storage interface controllers comprising a first storage interface controller and a second storage interface controller;
wherein the first storage interface controller is configured to write or read the first data part and the first computed ECC part in a first storage media device in a first group of storage media devices comprising a first plurality of storage media devices;
wherein the second storage interface controller is configured to write or read the second data part and the second computed ECC part in a second storage media device in a second group of storage media devices comprising a second plurality of storage media devices;
wherein the storage media devices are coupled to the plurality of storage interface controllers and the plurality of storage interface controllers are coupled to the plurality of ECC engines;
wherein the first storage interface controller comprises a first logic to provide a first path between the first storage media device and the first ECC engine for the first data part and first computed ECC part;
wherein the second storage interface controller comprises a second logic to provide a second path between the second storage media device and the second ECC engine for the second data part and second computed ECC part.
2 Assignments
0 Petitions
Accused Products
Abstract
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.
-
Citations
23 Claims
-
1. An apparatus for handling distributed error correction code (ECC) operations, the apparatus comprising:
-
a storage system configured to partition a contiguous data into multiple data parts including a first data part and a second data part; the storage system comprising; a plurality of ECC engines configured to perform ECC operations in parallel on the multiple data parts, wherein the plurality of ECC engines comprises a first ECC engine and a second ECC engine; wherein the first ECC engine is configured to compute a first computed ECC part for the first data part and the second ECC engine is configured to compute a second computed ECC part for the second data part; wherein the plurality of ECC engines is distributed in parallel; and a plurality of storage interface controllers comprising a first storage interface controller and a second storage interface controller; wherein the first storage interface controller is configured to write or read the first data part and the first computed ECC part in a first storage media device in a first group of storage media devices comprising a first plurality of storage media devices; wherein the second storage interface controller is configured to write or read the second data part and the second computed ECC part in a second storage media device in a second group of storage media devices comprising a second plurality of storage media devices; wherein the storage media devices are coupled to the plurality of storage interface controllers and the plurality of storage interface controllers are coupled to the plurality of ECC engines; wherein the first storage interface controller comprises a first logic to provide a first path between the first storage media device and the first ECC engine for the first data part and first computed ECC part; wherein the second storage interface controller comprises a second logic to provide a second path between the second storage media device and the second ECC engine for the second data part and second computed ECC part. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method for handling distributed error correction code (ECC) operations, the method comprising:
-
partitioning a contiguous data into multiple data parts including a first data part and a second data part; performing ECC operations in parallel on multiple data parts comprising computing, by a first ECC engine a first computed ECC part for the first data part and computing, by a second ECC engine, a second computed ECC part for the second data part, wherein a plurality of ECC engines comprises the first ECC engine and the second ECC engine; and wherein a plurality of storage interface controllers comprises a first storage interface controller and a second storage interface controller; wherein the first storage interface controller is configured to write or read the first data part and the first computed ECC part in a first storage media device in a first group of storage media devices comprising a first plurality of storage media devices; wherein the second storage interface controller is configured to write or read the second data part and the second computed ECC part in a second storage media device in a second group of storage media devices comprising a second plurality of storage media devices; wherein the storage media devices are coupled to the plurality of storage interface controllers and the plurality of storage interface controllers are coupled to the plurality of ECC engines for performing the ECC operations; wherein the first storage interface controller comprises a first logic to provide a first path between the first storage media device and the first ECC engine for the first data part and first computed ECC part; wherein the second storage interface controller comprises a second logic to provide a second path between the second storage media device and the second ECC engine for the second data part and second computed ECC part.
-
-
20. An article of manufacture, comprising:
-
a non-transitory computer-readable medium having stored thereon instructions operable to permit an apparatus to perform a method comprising; partitioning a contiguous data into multiple data parts including a first data part and a second data part; performing ECC operations in parallel on multiple data parts comprising computing, by a first ECC engine, a first computed ECC part for the first data part and computing, by a second ECC engine, a second computed ECC part for the second data part, wherein a plurality of ECC engines comprises the first ECC engine and the second ECC engine; and wherein a plurality of storage interface controllers comprises a first storage interface controller and a second storage interface controller; wherein the first storage interface controller is configured to write or read the first data part and the first computed ECC part in a first storage media device in a first group of storage media devices comprising a first plurality of storage media devices; wherein the second storage interface controller is configured to write or read the second data part and the second computed ECC part in a second storage media device in a second group of storage media devices comprising a second plurality of storage media devices; wherein the storage media devices are coupled to the plurality of storage interface controllers and the plurality of storage interface controllers are coupled to the plurality of ECC engines for performing the ECC operations; wherein the first storage interface controller comprises a first logic to provide a first path between the first storage media device and the first ECC engine for the first data part and first computed ECC part; wherein the second storage interface controller comprises a second logic to provide a second path between the second storage media device and the second ECC engine for the second data part and second computed ECC part.
-
-
21. A method for handling distributed error correction code (ECC) operations, the method comprising:
-
partitioning a contiguous data into multiple data parts; wherein the multiple data parts comprises a first data part and a second data part; performing ECC operations in parallel on the multiple data parts, comprising; in parallel, performing an ECC operation on the first data part including computing a first computed ECC part and performing another ECC operation on the second data part including computing a second computed ECC part; and writing or reading the first data part and the first computed ECC part in a first storage media device in a first group of storage media devices comprising a first plurality of storage media devices; writing or reading the second data part and the second computed ECC part in a second storage media device in a second group of storage media devices comprising a second plurality of storage media devices; wherein a first storage interface controller comprises a first logic to provide a first path between the first storage media device and a first ECC engine for the first data part and first computed ECC part; wherein a second storage interface controller comprises a second logic to provide a second path between the second storage media device and a second ECC engine for the second data part and second computed ECC part.
-
-
22. An article of manufacture, comprising:
-
a non-transitory computer-readable medium having stored thereon instructions operable to permit an apparatus to perform a method comprising; partitioning a contiguous data into multiple data parts; wherein the multiple data parts comprises a first data part and a second data part; performing ECC (error correction code) operations in parallel on the multiple data parts, comprising; in parallel, performing an ECC operation on the first data part including computing a first computed ECC part and performing another ECC operation on the second data part including computing a second computed ECC part; and writing or reading the first data part and the first computed ECC part in a first storage media device in a first group of storage media devices comprising a first plurality of storage media devices; writing or reading the second data part and the second computed ECC part in a second storage media device in a second group of storage media devices comprising a second plurality of storage media devices; wherein a first storage interface controller comprises a first logic to provide a first path between the first storage media device and a first ECC engine for the first data part and first computed ECC part; wherein a second storage interface controller comprises a second logic to provide a second path between the second storage media device and a second ECC engine for the second data part and second computed ECC part.
-
-
23. An apparatus, comprising:
-
a storage system configured to partition a contiguous data into multiple data parts; wherein the multiple data parts comprises a first data part and a second data part; a plurality of ECC (error correction code) engines configured to perform ECC operations in parallel on the multiple data parts, wherein the plurality of ECC engines comprises a first ECC engine and a second ECC engine; wherein, in parallel, the first ECC engine is configured to perform an ECC operation on the first data part including computing a first computed ECC part and the second ECC engine is configured to perform another ECC operation on the second data part including computing a second computed ECC part; and a first storage interface controller configured to write or read the first data part and the first computed ECC part in a first storage media device in a first group of storage media devices comprising a first plurality of storage media devices; a second storage interface controller configured to write or read the second data part and the second computed ECC part in a second storage media device in a second group of storage media devices comprising a second plurality of storage media devices; wherein the first storage interface controller comprises a first logic to provide a first path between the first storage media device and the first ECC engine for the first data part and first computed ECC part; wherein the second storage interface controller comprises a second logic to provide a second path between the second storage media device and the second ECC engine for the second data part and second computed ECC part.
-
Specification