Efficient method for the reconstruction of digital information
First Claim
1. A computerized method for encoding digital information for protection from data loss in storage or memory or in transmission on communication paths using a linear transformation defined by an (m+k)×
- m coding matrix A over a Galois Field GF(2q), said encoding method comprising the steps of;
assembling an m×
l vector x comprised of components xj from m data chunks representing the digital information, each chunk comprising q hyperwords each of an identical but arbitrary number of bits; and
multiplying said vector x by said matrix A, comprised of elements Aij, using the operations provided by a MultiplyAndAdd(yi, Aij, xj) subroutine to produce an (m+k)×
l vector y of m+k chunks yi that are resilient to the erasure of any k chunks, said operations includingjumping to or otherwise executing a predetermined sequence of instructions that are unique to the binary value of Aij, each of said predetermined sequence of instructions consisting of a bitwise XOR of a hyperword of chunk xj with and stored in a hyperword of chunk yi.
0 Assignments
0 Petitions
Accused Products
Abstract
Improved method of encoding and repairing data for reliable storage and transmission using erasure codes, which is efficient enough for implementation in software as well as hardware. A systematic linear coding matrix over GF(2q) is used which combines parity for fast correction of single erasures with the capability of correcting k erasures. Finite field operations involving the coding and repair matrices are redefined to consist of bitwise XOR operations on words of arbitrary length. The elements of the matrix are selected to reduce the number of XOR operations needed and buffers are aligned for optimal processor cache efficiency. Decode latency is reduced by pre-calculating repair matrices, storing them in a hashed table and looking them up using a bit mask identifying the erasures to be repaired.
61 Citations
36 Claims
-
1. A computerized method for encoding digital information for protection from data loss in storage or memory or in transmission on communication paths using a linear transformation defined by an (m+k)×
- m coding matrix A over a Galois Field GF(2q), said encoding method comprising the steps of;
assembling an m×
l vector x comprised of components xj from m data chunks representing the digital information, each chunk comprising q hyperwords each of an identical but arbitrary number of bits; andmultiplying said vector x by said matrix A, comprised of elements Aij, using the operations provided by a MultiplyAndAdd(yi, Aij, xj) subroutine to produce an (m+k)×
l vector y of m+k chunks yi that are resilient to the erasure of any k chunks, said operations includingjumping to or otherwise executing a predetermined sequence of instructions that are unique to the binary value of Aij, each of said predetermined sequence of instructions consisting of a bitwise XOR of a hyperword of chunk xj with and stored in a hyperword of chunk yi. - View Dependent Claims (2, 3)
- m coding matrix A over a Galois Field GF(2q), said encoding method comprising the steps of;
-
4. A computerized method for constructing a (m+k)×
- m coding matrix A for use in linear erasure codes which is optimized for single erasure recovery, comprising the steps of;
constructing from elements of a Galois Field GF(2q) an augmented coding matrix comprised of; an m×
m identity sub-matrix I;a l×
m row sub-matrix P, the elements of said row matrix P having the value 1 in the Galois Field; anda (k−
1)×
m sub-matrix C, the elements cij of said matrix C chosen so that all sub-matrices of A formed by deleting k rows are non-singular; andencoding information data using the augmented coding matrix and transmitting on a communications channel. - View Dependent Claims (5, 6, 7)
- m coding matrix A for use in linear erasure codes which is optimized for single erasure recovery, comprising the steps of;
-
8. A computerized method for recovering stored or transmitted digital information form storage or memory or from a transmitter on a communication path that has been encoded with a linear erasure correcting code defined by a (m+k)×
- m coding matrix A over a Galois Field GF(2q), said encoded digital information represented by m+k data chunks, each of which is associated with a row index, said method for recovering from 1 to k chunks comprising the steps of;
constructing a set F containing the row indices associated with the data chunks to be recovered and additional row indices so as to increase the number of elements in the set F to k; constructing an (m+k)×
l vector x from said chunks such that the i-th component of vector x is the data chunk associated with row index i;constructing a row deleted m×
l vector from said vector x by deleting each row of the vector x with a row index in set F;calculating an (m+k)×
m repair matrix RF from matrix A, said calculation of the matrix RF further comprising the steps ofconstructing an m×
m matrix by deleting each row of the matrix A with a row index in set F,calculating the inverse of said row deleted m×
m matrix, andmultiplying the matrix A by said inverse of the row deleted m×
m matrix to produce the (m+k)×
m repair matrix RF; andusing the (m+k)×
m repair matrix RF as a coding matrix in a linear transformation of the m data chunks of said row deleted m×
l vector to produce an (m+k)×
m vector,where row i is the recovered data chunk associated with row index i. - View Dependent Claims (9, 10, 11, 12)
- m coding matrix A over a Galois Field GF(2q), said encoded digital information represented by m+k data chunks, each of which is associated with a row index, said method for recovering from 1 to k chunks comprising the steps of;
-
13. A computerized system for encoding digital information for protection from data loss in storage or memory or in transmission on communication paths using a linear transformation defined by an (m+k)×
- m coding matrix A over a Galois Field GF(2q), comprising;
a processor programmed to accomplish the steps of; assembling an m×
l vector x comprised of components xj from m data chunks representing the digital information, each chunk comprising q hyperwords each of an identical but arbitrary number of bits;multiplying said vector x by said matrix A, comprised of elements Aij, using the operations provided by a MultiplyAndAdd(yi, Aij, xj) subroutine to produce an (m+k)×
l vector y of m+k chunks yi that are resilient to the erasure of any k chunks, said operations including jumping to or otherwise executing a predetermined sequence of instructions that are unique to the binary value of Aij each of said predetermined sequence of instructions consisting of a bitwise XOR of a hyperword of chunk xj with and stored in a hyperword of chunk yi. - View Dependent Claims (14, 15)
- m coding matrix A over a Galois Field GF(2q), comprising;
-
16. A computerized system for constructing a (m+k)×
- m coding matrix A for use in linear erasure codes which is optimized for single erasure recovery, comprising;
a processor programmed to construct from elements of a Galois Field GF(2q) an augmented coding matrix comprised of; an m×
m identity sub-matrix I;a l×
m row sub-matrix P, the elements of said row matrix P having the value 1 in the Galois Field; anda (k−
1)×
m sub-matrix C, the elements cij of said matrix C chosen so that all sub-matrices of A formed by deleting k rows are non-singular. - View Dependent Claims (17, 18, 19)
- m coding matrix A for use in linear erasure codes which is optimized for single erasure recovery, comprising;
-
20. A computerized system for recovering stored or transmitted digital information that has been encoded with a linear erasure correcting code defined by a (m+k)×
- m coding matrix A over a Galois Field GF(2q), said encoded digital information represented by m+k data chunks, each of which is associated with a row index, comprising;
a processor programmed to recover from 1 to k chunks by accomplishing the steps of; constructing a set F containing the row indices associated with the data chunks to be recovered and additional row indices so as to increase the number of elements in the set F to k; constructing an (m+k)×
l vector x from said chunks such that the i-th component of vector x is the data chunk associated with row index i;constructing a row deleted m×
l vector from said vector x by deleting each row of the vector x with a row index in set F;calculating an (m+k)×
m repair matrix RF from matrix A, said calculation of the matrix RF further comprising the steps ofconstructing an m×
m matrix by deleting each row of the matrix A with a row index in set F,calculating the inverse of said row deleted m×
m matrix, andmultiplying the matrix A by said inverse of the row deleted m×
m matrix to produce the (m+k)×
m repair matrix RF; andusing the (m+k)×
m repair matrix RF as a coding matrix in a linear transformation of the m data chunks of said row deleted m×
l vector to produce an (m+k)×
m vector, where row i is the recovered data chunk associated with row index i. - View Dependent Claims (21, 22, 23, 24)
- m coding matrix A over a Galois Field GF(2q), said encoded digital information represented by m+k data chunks, each of which is associated with a row index, comprising;
-
25. A computer storage medium having computer-executable instructions for performing a method for encoding digital information for protection from data loss in storage or memory or in transmission on communication paths using a linear transformation defined by an (m+k)×
- m coding matrix A over a Galois Field GF(2q), said encoding method comprising the steps of;
assembling an m×
l vector x comprised of components x;
from m data chunks representing the digital information, each chunk comprising q hyperwords each of an identical but arbitrary number of bits;multiplying said vector x by said matrix A, comprised of elements Aij, using the operations provided by a MultiplyAndAdd(yi, Aij, xj) subroutine to produce an (m+k)×
l vector y of m+k chunks yi that are resilient to the erasure of any k chunks, said operations includingjumping to or otherwise executing a predetermined sequence of instructions that are unique to the binary value of Aij, each of said predetermined sequence of instructions consisting of a bitwise XOR of a hyperword of chunk xj with and stored in a hyperword of chunk yi. - View Dependent Claims (26, 27)
- m coding matrix A over a Galois Field GF(2q), said encoding method comprising the steps of;
-
28. A computer storage medium having computer-executable instructions for performing a method for constructing a (m+k)×
- n coding matrix A for use in linear erasure codes which is optimized for single erasure recovery, comprising the steps of;
constructing from elements of a Galois Field GF(2q) an augmented coding matrix comprised of an m×
m identity sub-matrix I;a l×
m row sub-matrix P, the elements of said row matrix P having the value I in the Galois Field; anda (k−
1)×
m sub-matrix C, the elements cij of said matrix C chosen so that all sub-matrices of A formed by deleting k rows are non-singular. - View Dependent Claims (29, 30, 31)
- n coding matrix A for use in linear erasure codes which is optimized for single erasure recovery, comprising the steps of;
-
32. The computer storage medium having computer-executable instructions for performing a method for recovering stored or transmitted digital information that has been encoded with a linear erasure correcting code defined by a (m+k)×
- m coding matrix A over a Galois Field GF(2q), said encoded digital information represented by m+k data chunks, each of which is associated with a row index, said method for recovering from 1 to k chunks comprising the steps of;
constructing a set F containing the row indices associated with the data chunks to be recovered and additional row indices so as to increase the number of elements in the set F to k; constructing an (m+k)×
l vector x from said chunks such that the i-th component of vector x is the data chunk associated with row index i;constructing a row deleted m×
l vector from said vector x by deleting each row of the vector x with a row index in set F;calculating an (m+k)×
m repair matrix RF from matrix A, said calculation of the matrix RF further comprising the steps ofconstructing an m×
m matrix by deleting each row of the matrix A with a row index in set F,calculating the inverse of said row deleted m×
m matrix, andmultiplying the matrix A by said inverse of the row deleted m×
m matrix to produce the (m+k)×
m repair matrix RF; andusing the (m+k)×
m repair matrix RF as a coding matrix in a linear transformation of the m data chunks of said row deleted m×
l vector to produce an (m+k)×
m vector, where row i is the recovered data chunk associated with row index i. - View Dependent Claims (33, 34, 35, 36)
- m coding matrix A over a Galois Field GF(2q), said encoded digital information represented by m+k data chunks, each of which is associated with a row index, said method for recovering from 1 to k chunks comprising the steps of;
Specification