Fast Software-based Table-less Algorithm for CRC Generation

This paper proposes a software-based CRC algorithm, which can be applied to CRCs with check values of different lengths. The proposed algorithm can be implemented by shift and XOR operations, and no look-up tables are needed. Therefore, it is suitable for processors with limited memory resources. Compared with table-based CRC algorithms, the proposed algorithm takes more instructions; however, the memory accesses are reduced significantly. As a result, for CRCs with specific generator polynomials, the implementation of the proposed algorithm achieves a high throughput. In the best cases, the proposed algorithm is 29% faster than the Sarwate algorithm for 16-bit CRC generation, and 45% faster than the Slicing-by-4 algorithm for 32-bit CRC generation. Furthermore, for 64-bit CRC generation, the proposed algorithm quadruples the throughput of the Slicing-by-4 algorithm at best.

[1]  Michael E. Kounavis,et al.  Novel Table Lookup-Based Algorithms for High-Performance CRC Generation , 2008, IEEE Transactions on Computers.

[2]  Marc A. Kaplan,et al.  A new parallel algorithm for CRC generation , 2000, 2000 IEEE International Conference on Communications. ICC 2000. Global Convergence Through Communications. Conference Record.

[3]  Jonathan R. Engdahl,et al.  Fast parallel CRC implementation in software , 2014, 2014 14th International Conference on Control, Automation and Systems (ICCAS 2014).

[4]  Jong-Yeol Lee,et al.  Distributed CRC Architecture for High-Radix Parallel Turbo Decoding in LTE-Advanced Systems , 2015, IEEE Transactions on Circuits and Systems II: Express Briefs.

[5]  W. W. PETERSONt,et al.  Cyclic Codes for Error Detection * , 2022 .

[6]  Michael E. Kounavis,et al.  Efficient implementation of the Galois Counter Mode using a carry-less multiplier and a fast reduction algorithm , 2010, Inf. Process. Lett..

[7]  Arash Reyhani-Masoleh,et al.  Multiple-Bit Parity-Based Concurrent Fault Detection Architecture for Parallel CRC Computation , 2016, IEEE Transactions on Computers.

[8]  Wei Wang,et al.  High performance table-based architecture for parallel CRC calculation , 2015, The 21st IEEE International Workshop on Local and Metropolitan Area Networks.

[9]  Martin Herrmann,et al.  Optimization of cyclic redundancy-check codes with 24 and 32 parity bits , 1993, IEEE Trans. Commun..

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

[11]  Bajarangbali,et al.  Design of high speed CRC algorithm for ethernet on FPGA using reduced lookup table algorithm , 2016, 2016 IEEE Annual India Conference (INDICON).

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