Subscribe
Issue No.10 - October (2009 vol.58)
pp: 1321-1331
Gam D. Nguyen , Naval Research Laboratory, District of Columbia
ABSTRACT
CRCs have desirable properties for effective error detection. But their software implementation, which relies on many steps of the polynomial division, is typically slower than other codes such as weaker checksums. A relevant question is whether there are some particular CRCs that have fast implementation. In this paper, we introduce such fast CRCs as well as an effective technique to implement them. For these fast CRCs, even without using table lookup, it is possible either to eliminate or to greatly reduce many steps of the polynomial division during their computation.
INDEX TERMS
Fast CRC, low-complexity CRC, checksum, error-detection code, Hamming code, period of polynomial, fast software implementation.
CITATION
Gam D. Nguyen, "Fast CRCs", IEEE Transactions on Computers, vol.58, no. 10, pp. 1321-1331, October 2009, doi:10.1109/TC.2009.83
REFERENCES
 [1] E.R. Berlekamp, Algebraic Coding Theory. McGraw-Hill, 1968. [2] A. Binstock and J. Rex, Practical Algorithms for Programmers. Addison-Wesley, 1995. [3] P. Farkas, “Comments on ‘Weighted Sum Codes for Error Detection and Their Comparison with Existing Codes’,” IEEE/ACM Trans. Networking, vol. 3, no. 2, pp. 222-223, Apr. 1995. [4] D.C. Feldmeier, “Fast Software Implementation of Error Detection Codes,” IEEE/ACM Trans. Networking, vol. 3, no. 6, pp. 640-651, Dec. 1995. [5] J.G. Fletcher, “An Arithmetic Checksum for Serial Transmissions,” IEEE Trans. Comm., vol. 30, no. 1, pp. 247-252, Jan. 1982. [6] H.M. Ji and E. Killian, “Fast Parallel CRC Algorithm and Implementation on a Configurable Processor,” Proc. IEEE Int'l Conf. Comm. (ICC '02), pp. 1813-1817, Apr./May 2002. [7] T. Klove and V. Korzhik, Error Detecting Codes: General Theory and Their Application in Feedback Communication Systems. Kluwer Academic, 1995. [8] D.E. Knuth, The Art of Computer Programming, vol. 2, third ed. Addison-Wesley, 1998. [9] M.E. Kounavis and F.L. Berry, “A Systematic Approach to Building High Performance Software-Based CRC Generators,” Proc. 10th IEEE Symp. Computers and Comm. (ISCC '05), pp. 855-862, June 2005. [10] S. Lin and D.J. CostelloJr., Error Control Coding: Fundamentals and Applications. Prentice-Hall, 1983. [11] F.J. MacWilliams and N.J.A. Sloan, The Theory of Error-Correcting Codes. North-Holland, 1977. [12] A.J. McAuley, “Weighted Sum Codes for Error Detection and Their Comparison with Existing Codes,” IEEE/ACM Trans. Networking, vol. 2, no. 1, pp. 16-22, Feb. 1994. [13] G.D. Nguyen, “Error-Detection Codes: Algorithms and Fast Implementation,” IEEE Trans. Computers, vol. 54, no. 1, pp. 1-11, Jan. 2005. [14] A. Perez, “Byte-Wise CRC Calculations,” IEEE Micro, vol. 3, no. 3, pp. 40-50, June 1983. [15] T.V. Ramabadran and S.S. Gaitonde, “A Tutorial on CRC Computations,” IEEE Micro, vol. 8, no. 4, pp. 62-75, Aug. 1988. [16] D.V. Sarwate, “Computation of Cyclic Redundancy Checks via Table-Lookup,” Comm. ACM, vol. 31, no. 8, pp. 1008-1013, Aug. 1988. [17] J. Stone, M. Greenwald, C. Partridge, and J. Hughes, “Performance of Checksums and CRC's over Real Data,” IEEE/ACM Trans. Networking, vol. 6, no. 5, pp. 529-543, Oct. 1998. [18] N. Zierler, “On $x^n + x + 1$ over GF(2),” Information and Control, vol. 16, no. 5, pp. 502-505, 1970. [19] G.D. Nguyen, “Fast CRCs,” Supplemental Material, http://doi.ieee computersociety.org/10.1109 TC.2009.83.