Abstract:
To calculate sequential CRCs, a CRC pipeline may be used to calculate the sequential CRCs for a block of data The CRC pipeline includes a plurality of stages, where, in each subsequent stage a CRC calculated from a previous stage is used to calculate an offset CRC. For example, using at least one CRC calculator and CRC shifter, a stage in the pipeline removes an effect of first portion of the data represented by a previously calculated CRC from the CRC and then adds an effect of a second portion of data neighboring the first portion in a received data block to yield an offset CRC. For example, a stage may change CRC(0:63) to CRC(32:95) by removing the effect of bytes 0:31 and adding the effect of bytes 64:95. At each stage, the byte offset may get smaller until all the sequential CRCs have been calculated.