Systems and methods for error correction coding
AssigneeRaidix Corporation
InventorsAleksei Marov, Aleksei Uteshev
Life of this patent
Estimating the term…
Abstract
Described are methods, systems, and apparatus, including computer program products for error correction coding and decoding procedures for data storage or transfer. A plurality of data blocks is received. A plurality of checksum blocks are generated by multiplying the plurality of data blocks by a coding matrix, where the coding matrix comprises values of at least one basic interpolation polynomial and the multiplying is according to a finite field arithmetic for a finite field comprising all possible values of the plurality of data blocks and the plurality of coding blocks. The plurality of data blocks and the plurality of checksum blocks are stored in a data storage medium.
Claims21
A computer-implemented method for systematically coding a plurality of data blocks for error detection and correction, the method comprising:
- receiving, by a computer system, the plurality of data blocks;
- generating, by the computer system, a plurality of checksum blocks by multiplying the plurality of data blocks by a coding matrix, wherein the coding matrix comprises values of at least one basic interpolation polynomial, the multiplying according to a finite field arithmetic for a finite field comprising all possible values of the plurality of data blocks and the plurality of coding blocks;
- and
- storing, by the computer system, the plurality of data blocks and the plurality of checksum blocks in a data storage medium.
A computer-implemented method for decoding a plurality of code blocks for error detection and correction, the method comprising:
- receiving, by a computer system, the plurality of code blocks, the plurality of code blocks comprising a plurality of data blocks and a plurality of checksum blocks;
- detecting, by the computer system, a failure error at a failure location within the plurality of code blocks;
- detecting, by the computer system, a silent data corruption (SDC) error at an SDC location within the plurality of blocks, detecting the SDC error comprising:
- calculating a syndrome matrix from a first portion of the plurality of code blocks not containing the failure error;
- and
- determining the SDC location of the SDC error in the plurality of blocks based on the syndrome matrix;
- constructing, by the computer system, a recovery matrix using the failure location and the SDC location;
- and
- recovering, by the computer system, a first block containing the failure error and a second block containing the SDC error by multiplying the recovery matrix with a second portion of the plurality of code blocks not containing the failure error and the SDC error, wherein the recovery matrix comprises values of at least one basic interpolation polynomial, the multiplying according to a finite field arithmetic for a finite field comprising all possible values of the plurality of data blocks and the plurality of coding blocks.
A data storage system comprising:
- one or more storage devices;
- a code block generation module, wherein the code block generation module is configured, in response to receiving a first plurality of data blocks, to:
- generate a first plurality of checksum blocks by multiplying the first plurality of data blocks by a coding matrix, wherein the coding matrix comprises values of at least one basic interpolation polynomial, the multiplying according to a finite field arithmetic for a finite field comprising all possible values of the first plurality of data blocks and the first plurality of coding block;
- and
- store the first plurality of data blocks and the first plurality of checksum blocks in one or more storage devices of the one or more storage devices;
- an error recovery module, wherein the error recovery module is configured to:
- receive a plurality of code blocks, the plurality of code blocks comprising a second plurality of data blocks and a second plurality of checksum blocks, from the one or more storage devices;
- detect a failure error at a failure location within the plurality of code blocks;
- detect a silent data corruption (SDC) error at an SDC location within the plurality of code blocks by:
- calculating a syndrome matrix from a first portion of the plurality of code blocks not containing the failure error;
- and
- determining the SDC location of the SDC error in the plurality of code blocks based on the syndrome matrix;
- construct a recovery matrix using the failure location and the SDC location;
- and
- recover a first block containing the failure error and a second block containing the SDC error by multiplying the recovery matrix with a second portion of the plurality of code blocks not containing the failure error and the SDC error, wherein the recovery matrix comprises values of at least one basic interpolation polynomial, the multiplying according to the finite field arithmetic for the finite field.
Dependencies are inferred from the claim text.