Patent ID: RE40684

Claim:
An apparatus comprising: a data word extractor to successively extract a first plurality of data word groups from a stream of input data, one data word group at a time, with each extracted data word group having a group size of at most n bytes, where n is an integer; a plurality of CRC calculation assemblies coupled to the data word extractor to be selectively employed to incrementally calculate a CRC value for the first plurality of data word groups, the calculation being iteratively performed, one iteration at a time, and for each iteration, the selection of the CRC calculation assemblies being made in accordance with the group size of the data word group extracted for the iteration; a plurality of storage elements correspondingly coupled to the plurality of CRC calculation assemblies to correspondingly store the results generated by the corresponding ones of the CRC calculation assemblies for one iteration of the calculation; and a plurality of selectors coupled to the storage elements and the plurality of CRC calculation assemblies to selectively re-circulate one of the stored results back to the selected one of the CRC calculation assemblies for the next iteration of calculation, and to selectively output one of the stored results as the calculated CRC value at the end of the iterative calculation.