OPTIMIZING XOR-BASED CODES
First Claim
1. A method for optimizing a coding operation of arbitrary erasure correcting codes, comprising using a computing device for:
- receiving an erasure correcting code;
determining all XOR operations required to compute all required erasure correcting code outputs from two or more code inputs;
evaluating the XOR operations to identify a set of one or more shared XOR operations, where each shared XOR operation represents an XOR operation performed on two or more common code inputs which is used for computing two or more different erasure correcting code outputs;
computing a result of each shared XOR operation of the set of one or more shared XOR operations; and
constructing an optimized version of the erasure correcting code by using the computed result of each shared XOR operation to replace all corresponding XOR operations for computing the two or more different erasure correcting code outputs.
2 Assignments
0 Petitions
Accused Products
Abstract
A “code optimizer” provides various techniques for optimizing arbitrary XOR-based codes for encoding and/or decoding of data. Further, the optimization techniques enabled by the code optimizer do not depend on any underlining code structure. Therefore, the optimization techniques provided by the code optimizer are applicable to arbitrary codes with arbitrary redundancy. As such, the optimized XOR-based codes generated by the code optimizer are more flexible than specially designed codes, and allow for any desired level of fault tolerance. Typical uses of XOR-based codes include, for example, encoding and/or decoding data using redundant data packets for data transmission real-time communications systems, encoding and/or decoding operations for storage systems such as RAID arrays, etc.
25 Citations
20 Claims
-
1. A method for optimizing a coding operation of arbitrary erasure correcting codes, comprising using a computing device for:
-
receiving an erasure correcting code; determining all XOR operations required to compute all required erasure correcting code outputs from two or more code inputs; evaluating the XOR operations to identify a set of one or more shared XOR operations, where each shared XOR operation represents an XOR operation performed on two or more common code inputs which is used for computing two or more different erasure correcting code outputs; computing a result of each shared XOR operation of the set of one or more shared XOR operations; and constructing an optimized version of the erasure correcting code by using the computed result of each shared XOR operation to replace all corresponding XOR operations for computing the two or more different erasure correcting code outputs. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A process for reducing a total number of XOR operations in an arbitrary erasure correcting code, comprising steps for:
-
receiving a binary matrix representing an erasure correcting code, said matrix including a non-zero value in each corresponding location of the matrix whenever a particular matrix input is required to compute a particular matrix output; wherein computing each of the matrix outputs involves performing an XOR operation between all matrix inputs having a corresponding non-zero value in the matrix for the particular matrix output being computed; searching the matrix to identify a set of one or more shared XOR operations wherein a shared XOR operation is an XOR operation between any two common matrix inputs that is required to compute two or more different matrix outputs; and constructing an optimized coding matrix by replacing each shared XOR operation with a corresponding result of a single computation of each corresponding shared XOR operation. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer-readable medium having computer executable instructions stored thereon for optimizing an XOR based code, comprising instructions for:
-
receiving a binary coding matrix representing XOR operations of erasure correcting code inputs for applying an erasure correcting code to the inputs to produce erasure correcting code outputs; evaluating the binary coding matrix to identify all shared XOR operations; and constructing an optimized binary coding matrix by replacing all shared XOR operations with a single computation of a corresponding one of the shared XOR operations. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification