Enhancing Error Detection Performance through Parallel CRC Computation on Multi-Core Architectures

Document Type : Research Article

Authors

Computer Engineering and Information Technology Department, Razi University, Kermanshah, Iran.

10.22108/jcs.2026.148544.1198

Abstract

Cyclic Redundancy Check (CRC) remains one of the most widely used error-detection mechanisms in communication, storage, and embedded systems. However, conventional software CRC implementations suffer from inherent sequential dependencies that limit efficient utilization of modern multi-core processors. This paper presents a generalized software-based parallel CRC framework for multi-core architectures using POSIX threads (pthreads). The proposed framework supports multiple CRC variants, including CRC-8, CRC-16, CRC-32, CRC-64, and CRC-128, within a unified implementation model. {To preserve correctness during parallel execution, the framework employs a GF(2)-based CRC combination mechanism rather than naïve XOR aggregation. The combine stage is formulated using polynomial arithmetic and matrix-based shifting operations over GF(2), ensuring equivalence between parallel and serial CRC computation. The proposed method was evaluated using multiple workload sizes and thread configurations. Experimental analysis includes execution time, throughput, latency, scalability behavior, and energy estimation under varying thread counts. Results indicate that parallel execution significantly improves performance for large datasets, achieving approximately 3--4x speedup on the evaluated platform while preserving exact CRC correctness. Comparative discussion with representative CRC optimization approaches, including lookup-table methods, slicing-by-8, SIMD/vectorized CRC, and hardware-assisted CRC techniques, is also provided to position the proposed framework within the broader CRC optimization landscape. Although the presented framework emphasizes portability, multi-variant support, and correctness-preserving software parallelization, scalability remains influenced by synchronization overhead, memory bandwidth constraints, and hardware characteristics. Overall, the proposed approach provides a portable and generalized software framework for correctness-preserving parallel CRC acceleration on general-purpose multi-core systems.

Keywords

Main Subjects


[1] Peterson, W. W. and Brown, D. T.. Cyclic Codes for Error Detection. Proceedings of the IRE. 49(1): 228-235, 1961. [DOI ]
[2] Pei, T.-B. and Zukowski, C.. High-speed parallel CRC circuits in VLSI. IEEE Transactions on Communications. 40(4): 653--657, 1992. [DOI ]
[3] Albertengo, G. and Sisto, R.. Parallel CRC generation. IEEE Micro. 10(5): 63-71, 1990. [DOI ]
[4] Cheng, C. and Parhi, K. K.. High-speed parallel CRC implementation based on unfolding, pipelining, and retiming. IEEE Transactions on Circuits and Systems II: Express Briefs. 53(10): 1017--1021, 2006. [DOI ]
[5] Ming-Der ShiehMing-Hwa SheuChung-Ho ChenHsin-Fu Lo. A systematic approach for parallel CRC computations. Journal of Information Science and Engineering. 17(3): 445--461, 2001. [DOI ]
[6] Sprachmann, M.. Automatic generation of parallel CRC circuits. IEEE Design \& Test of Computers. 18(3): 108--114, 2001. [DOI ]
[7] Dat Tran, Shahid Aslam, Nicolas Gorius andGeorge Nehmetallah. Parallel Computation of CRC-Code on an FPGA Platform for High Data Throughput. Electronics. 10(4): 439--445, 2021. [DOI ]
[8] Ling Zhang and Shanwei Ye and Zhuo Gou and Xuefei Yang and Qilin Dai and Fuqiang Wang and Yingcheng Lin. An Efficient Parallel CRC Computing Method for High Bandwidth Networks and FPGA Implementation. Electronics. 13: 4399, 2024. [DOI ]
[9] Manu, G. and Haque, Mohammed Abdul. A New approach for parallel CRC generation for high speed application. IJAEGT. 2: 581--585, 2014. [DOI ]
[10] Harika, P. and Satyanarayana, B. V. V.. FPGA Based High Speed Parallel Cyclic Redundancy Check. International Journal of Engineering Research and Technology. 2(3): 1-8, 2013. [DOI ]
[11] Lei, Aiwei and Yu, Ye. Development Optimization and Future Direction of CRC Checking Technology. Proceedings of the 3rd International Conference on Mechanical Engineering and Electrical Automation (ICMEEA 2025). 1--6, 2025. [DOI ]
[12] Russell, Sam. Chorba: A novel CRC32 implementation. 2024. [DOI ]
[13] Walma, Mathys. Pipelined Feed-Forward Cyclic Redundancy Check (CRC) Calculation. 2006. [DOI ]
[14] G. Campobello, G. Patane, M. Russo. Parallel CRC realization. IEEE Transactions on Computers. 52(10): 1312--1319, 2003. [DOI ]
[15] Derby, Jeff H.. High-speed CRC computation using state-space transformations. GLOBECOM'01. IEEE Global Telecommunications Conference. 1: 166--170, 2001. [DOI ]
[16] Li, Jiaqiang and Liu, Shanshan and Reviriego, Pedro and Xiao, Liyi and Lombardi, Fabrizio. Efficient Concurrent Fault Detection for Parallel Cyclic Redundancy Check Circuits. IET Computers \& Digital Techniques. 14: 678--685, 2020. [DOI ]
[17] Chen, C. and Tian, R. and Yao, Z.. Design and implementation of the CRC-32 checksum of parallel algorithm. Chinese Journal of Scientific Instrument. 34: 151--155, 2013. [DOI ]
[18] Atrawalkar, Deepali P. and Bagde, Manoj D.. Design and Simulation of Parallel CRC Generation Architecture for High Speed Application. International Journal of Advanced Research in Electrical, Electronics and Instrumentation Engineering. 4(7): 123--130, 2017. [DOI ]
[19] Pedro Reviriego, Salvatore Pontarelli, Juan Antonio Maestro. Concurrent Error Detection for Orthogonal Latin Squares Encoders. IEEE Transactions on Very Large Scale Integration (VLSI) Systems. 21(8): 1345--1355, 2013. [DOI ]
[20] Kurose, James F. and Ross, Keith W.. Computer Networking: A Top-Down Approach. 459--461, Pearson Education. 2025.
[21] Panem, Charanarur and Gad, Vinaya and Gad, Rajendra S.. Polynomials in error detection and correction in data communication system. Coding Theory. 5--6, IntechOpen. 2019. [DOI ]