Method of computing partial CRCs
First Claim
Patent Images
1. An apparatus for generating cyclic redundancy checks (CRCs) for a message with N data blocks, comprising:
- a component to calculate a partial CRC for an out of order data block and to store the result;
a component to generate, using a division operation, a CRC remainder multiplier associated with the out of order data block and to store the result;
a component to repeat the calculation of the partial CRC and the generation of the CRC remainder multiplier until all N data blocks for the message are received;
a component to combine the results of the calculated partial CRC and the generated CRC remainder multiplier;
a component to calculate a CRC for an in order data block using any previously computed in order CRC; and
a component to initialize a first CRC engine to calculate the CRC for the in order data block, and to initialize the first CRC engine with a partial CRC remainder and a second CRC engine with the CRC remainder multiplier for calculating the partial CRC for the out of order data block, the partial CRC remainder and the CRC remainder multiplier being a result of a prior partial CRC computation.
0 Assignments
0 Petitions
Accused Products
Abstract
Method of generating cyclic redundancy checks (CRCs) for a message with N data blocks. The method includes calculating a partial CRC for an out of order data block and storing the result, generating, using a division operation, a CRC remainder multiplier associated with the out of order data block and storing the result, repeating the calculating and generating steps until all N data blocks for the message are received, and combining the results of the calculating step and the generating step.
-
Citations
8 Claims
-
1. An apparatus for generating cyclic redundancy checks (CRCs) for a message with N data blocks, comprising:
-
a component to calculate a partial CRC for an out of order data block and to store the result; a component to generate, using a division operation, a CRC remainder multiplier associated with the out of order data block and to store the result; a component to repeat the calculation of the partial CRC and the generation of the CRC remainder multiplier until all N data blocks for the message are received; a component to combine the results of the calculated partial CRC and the generated CRC remainder multiplier; a component to calculate a CRC for an in order data block using any previously computed in order CRC; and a component to initialize a first CRC engine to calculate the CRC for the in order data block, and to initialize the first CRC engine with a partial CRC remainder and a second CRC engine with the CRC remainder multiplier for calculating the partial CRC for the out of order data block, the partial CRC remainder and the CRC remainder multiplier being a result of a prior partial CRC computation. - View Dependent Claims (2)
-
-
3. An apparatus for generating cyclic redundancy checks (CRCs) for a message with N data blocks, comprising:
-
a component to calculate a partial CRC for an out of order data block and to store the result; a component to generate, using a division operation, a CRC remainder multiplier associated with the out of order data block and to store the result; a component to combine the results of the calculated partial CRC and the generated CRC remainder multiplier; a component to calculate a CRC for an in order data block using an immediately previously calculated in order CRC, if available; a component to initialize a first CRC engine to calculate the CRC for the in order data block, and to initialize the first CRC engine and a second CRC engine for calculating the partial CRC for the out of order data block; and a component to produce a final CRC by combining the output from the component to combine results of the calculated partial CRC and the generator multiplier with the output from the component to calculate a CRC for an in order data block using an immediately previously calculated in order CRC, if available. - View Dependent Claims (4)
-
-
5. An apparatus for generating cyclic redundancy checks (CRCs) for a message with N data blocks, comprising:
-
a component to calculate a partial CRC for an out of order data block and to store the result; a component to generate, using a division operation, a CRC remainder multiplier associated with the out of order data block and to store the result; a component to repeat the calculation of the partial CRC and the generation of the CRC remainder multiplier until all N data blocks for the message are received; a component to combine the results of the calculated partial CRC and the generated CRC remainder multiplier; a component to calculate a CRC for an in order data block using an immediately previously calculated in order CRC; and a component to initialize a first CRC engine to calculate the CRC for the in order data block, and to initialize the first CRC engine and a second CRC engine for calculating the partial CRC for the out of order data block, wherein the component to calculate a partial CRC provides for calculating the partial CRC according to crc_b[k]=CRC (Bk), where crc_b[k] being the partial CRC for data block k and Bk being the data block bit pattern of data block k.
-
-
6. An apparatus for generating cyclic redundancy checks (CRCs) for a message with N data blocks, comprising:
-
a component to calculate a partial CRC for an out of order data block and to store the result; a component to generate, using a division operation, a CRC remainder multiplier associated with the out of order data block and to store the result; a component to repeat the calculation of the partial CRC and the generation of the CRC remainder multiplier until all N data blocks for the message are received; a component to combine the results of the calculated partial CRC and the generated CRC remainder multiplier; a component to calculate a CRC for an in order data block using an immediately previously calculated in order CRC; and a component to initialize a first CRC engine to calculate the CRC for the in order data block, and to initialize the first CRC engine and a second CRC engine for calculating the partial CRC for the out of order data block, wherein the component to generate a remainder multiplier provides for generating the remainder multiplier according to crc_2[k]=CRC(2Sk), where crc—
2[k] is the remainder multiplier for data block k, and Sk is the bit length of data block k. - View Dependent Claims (7)
-
-
8. An apparatus for generating cyclic redundancy checks (CRCs) for a message with N data blocks, comprising:
-
a component to calculate a partial CRC for an out of order data block and to store the result; a component to generate, using a division operation, a CRC remainder multiplier associated with the out of order data block and to store the result; a component to repeat the calculation of the partial CRC and the generation of the CRC remainder multiplier until all N data blocks for the message are received; a component to combine the results of the calculated partial CRC and the generated CRC remainder multiplier; a component to calculate a CRC for an in order data block using an immediately previously calculated in order CRC; and a component to initialize a first CRC engine to calculate the CRC for the in order data block, and to initialize the first CRC engine and a second CRC engine for calculating the partial CRC for the out of order data block, wherein the N data blocks contain at least one data block of the N data blocks that is one of a different length and a same length.
-
Specification