Patent ID: 8108753

Claim:
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.