A new parallel algorithm for CRC generation

Cyclic redundancy check (CRC) is one of the most important error-detection schemes used in digital communications. A new parallel algorithm for CRC generation and its software as well as hardware implementation is described. For the software implementation, this paper has focused on the 32-bit CRC used in the Ethernet, computed on a general purpose PowerPC microprocessor with the new AltiVec technology. A speedup by a factor of 4.57 over the standard table-lookup algorithm was obtained. A hardware implementation of the algorithm is then discussed, which yields an unlimited speed-up potential over the bit-wise serial algorithm.

[1]  Dilip V. Sarwate Computation of cyclic redundancy checks via table look-up , 1988, CACM.

[2]  A. Albicki,et al.  Partitioned and parallel cyclic redundancy checking , 1993, Proceedings of 36th Midwest Symposium on Circuits and Systems.

[3]  R. F. Hobson,et al.  A high-performance CMOS 32-bit parallel CRC engine , 1999 .

[4]  Riccardo Sisto,et al.  Parallel CRC generation , 1990, IEEE Micro.

[5]  Georgia Griffiths,et al.  The tea-leaf reader algorithm: an efficient implementation of CRC-16 and CRC-32 , 1987, CACM.

[6]  C. A. Zukowski,et al.  A self-timed cyclic redundancy check (CRC) in VLSI , 1997, Proceedings of 40th Midwest Symposium on Circuits and Systems. Dedicated to the Memory of Professor Mac Van Valkenburg.

[7]  Hunter Scales,et al.  AltiVec Extension to PowerPC Accelerates Media Processing , 2000, IEEE Micro.

[8]  Charles A. Zukowski,et al.  High-speed parallel CRC circuits in VLSI , 1992, IEEE Trans. Commun..

[9]  Beniamino Castagnolo,et al.  High-speed error correction circuit based on iterative cells , 1993 .

[10]  D.C. Feldmeier,et al.  Fast software implementation of error detection codes , 1995, TNET.

[11]  Theodore Antonakopoulos,et al.  Single-bit error-correction circuit for ATM interfaces , 1995 .

[12]  René J. Glaise A two-step computation of cyclic redundancy code CRC-32 for ATM networks , 1997, IBM J. Res. Dev..

[13]  Sadiq M. Sait,et al.  Hardware design and VLSI implementation of a byte-wise CRC generator chip , 1995 .

[14]  Tenkasi V. Ramabadran,et al.  A tutorial on CRC computations , 1988, IEEE Micro.

[15]  Aram Perez,et al.  Byte-Wise CRC Calculations , 1983, IEEE Micro.

[16]  René J. Glaise,et al.  Fast CRC calculation , 1993, Proceedings of 1993 IEEE International Conference on Computer Design ICCD'93.

[17]  Craig Hansen MicroUnity's MediaProcessor architecture , 1996, IEEE Micro.