Configurable multi-level error correction in a storage controller
First Claim
1. A storage controller for a storage system, comprising:
- a host interface, configured to receive host data for storage within the storage system;
a storage interface, configured to transmit storage data to the storage system; and
processing circuitry coupled with the host interface and the storage interface, configured to;
(a) receive the host data from a host, through the host interface, for storage within a partition in the storage system;
(b) determine a quantity of error correction code levels based on at least one partition parameter corresponding to the partition, the partition parameter corresponding to a physical property of the partition;
(c) partition the host data into a plurality of payloads;
(d) provide metadata for each of the payloads;
(e) calculate error correction codes for each of the payloads and the metadata associated with each of the payloads;
(f) create a plurality of codewords, each codeword comprising a payload and metadata and error correction codes corresponding to the payload;
(g) based on the quantity of error correction code levels, either sequentially write the codewords in the partition through the storage interface or divide the codewords into a plurality of further payloads, the further payloads iteratively processed according to steps (d) through (g) to provide the quantity of error correction code levels.
4 Assignments
0 Petitions
Accused Products
Abstract
A method of operating a storage controller including (a) receiving host data from a host, for storage within a partition in the storage system, and (b) determining a quantity of error correction code levels based on at least one partition parameter. The method further includes (c) partitioning the host data into a plurality of payloads, (d) providing metadata for the payloads, (e) calculating error correction codes for the payloads and the metadata associated with each of the payloads, and (f) creating a plurality of codewords, each codeword comprising a payload, metadata, and error correction codes corresponding to the payload. The method includes (g) based on the quantity of error correction code levels, either storing the codewords in the storage system or partitioning the codewords into a plurality of further payloads, the further payloads iteratively processed according to steps (d) through (g) to provide the quantity of error correction code levels.
58 Citations
20 Claims
-
1. A storage controller for a storage system, comprising:
-
a host interface, configured to receive host data for storage within the storage system; a storage interface, configured to transmit storage data to the storage system; and processing circuitry coupled with the host interface and the storage interface, configured to; (a) receive the host data from a host, through the host interface, for storage within a partition in the storage system; (b) determine a quantity of error correction code levels based on at least one partition parameter corresponding to the partition, the partition parameter corresponding to a physical property of the partition; (c) partition the host data into a plurality of payloads; (d) provide metadata for each of the payloads; (e) calculate error correction codes for each of the payloads and the metadata associated with each of the payloads; (f) create a plurality of codewords, each codeword comprising a payload and metadata and error correction codes corresponding to the payload; (g) based on the quantity of error correction code levels, either sequentially write the codewords in the partition through the storage interface or divide the codewords into a plurality of further payloads, the further payloads iteratively processed according to steps (d) through (g) to provide the quantity of error correction code levels. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of operating a storage controller, comprising:
-
(a) receiving host data from a host, through a host interface, for storage within a partition in the storage system; (b) determining a quantity of error correction code levels based on at least one partition parameter corresponding to the partition, the partition parameter corresponding to a physical property of the partition; (c) partitioning the host data into a plurality of payloads; (d) providing metadata for each of the payloads; (e) calculating error correction codes for each of the payloads and the metadata associated with each of the payloads; (f) creating a plurality of codewords, each codeword comprising a payload and metadata and error correction codes corresponding to the payload; (g) based on the quantity of error correction code levels, either sequentially writing the codewords in the partition through the storage interface or dividing the codewords into a plurality of further payloads, the further payloads iteratively processed according to steps (d) through (g) to provide the quantity of error correction code levels. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. One or more non-transitory computer-readable media having stored thereon program instructions to operate a storage controller for a storage system, wherein the program instructions, when executed by processing circuitry, direct the processing circuitry to at least:
-
(a) receive host data from a host, through a host interface, for storage within a partition in the storage system; (b) determine a quantity of error correction code levels based on at least one partition parameter corresponding to the partition, the partition parameter corresponding to a physical property of the partition; (c) partition the host data into a plurality of payloads; (d) provide metadata for each of the payloads; (e) calculate error correction codes for each of the payloads and the metadata associated with each of the payloads; (f) create a plurality of codewords, each codeword comprising a payload and metadata and error correction codes corresponding to the payload; (g) based on the quantity of error correction code levels, either sequentially write the codewords in the partition through the storage interface or divide the codewords into a plurality of further payloads, the further payloads iteratively processed according to steps (d) through (g) to provide the quantity of error correction code levels. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification