A study of adaptable co-processors for Cyclic Redundancy Check on an FPGA

Cyclic Redundancy Check (CRC) is a well known error detection scheme used to detect corruption of digital content in digital networks and storage devices. In this paper, we present a study of different approaches of designing highly adaptable co-processors for CRC on an FPGA which are used in many network and server applications. The results of our research are two new architectures: adaptable and dynamically re-configurable CRC co-processors. Both architectures are highly flexible in terms of a number of CRC standards they support. We explored their scalability by processing different amount of input messages at a time. Results show that throughput doubles when we double the amount of data processed at a time. Our experimental results on adaptable CRC co-processor demonstrate re-generation latency as low as .9 - 4.52μs and throughput between 27.8 - 418Gbps (64 - 1024 bits of an input message). The re-configuration latency of dynamic parts of other CRC co-processor was significantly higher .3 - .45s, but area utilization was the least. The throughput of this architecture was between 29.25 - 347.37 Gbps.

[1]  Giuseppe Patanè,et al.  Parallel CRC Realization , 2003, IEEE Trans. Computers.

[2]  Xin Yang,et al.  Design and Implementation of a Field Programmable CRC Circuit Architecture , 2009, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[3]  Hideharu Amano,et al.  An FPGA implementation of CRC slicing-by-N algorithms (リコンフィギャラブルシステム) , 2010 .

[4]  Michael E. Kounavis,et al.  A systematic approach to building high performance software-based CRC generators , 2005, 10th IEEE Symposium on Computers and Communications (ISCC'05).

[5]  Hideharu Amano,et al.  Performance evaluation of multiple lookup tables algorithms for generating CRC on an FPGA , 2011, 2011 1st International Symposium on Access Spaces (ISAS).

[6]  Amano Hideharu,et al.  An FPGA Implementation of CRC Slicing-by-N algorithms , 2010 .

[7]  A. Dandache,et al.  A fast CRC implementation on FPGA using a pipelined architecture for the polynomial division , 2001, ICECS 2001. 8th IEEE International Conference on Electronics, Circuits and Systems (Cat. No.01EX483).

[8]  Hideharu Amano,et al.  High speed CRC with 64-bit generator polynomial on an FPGA , 2011, CARN.

[9]  Abhijeet Joglekar,et al.  A scalable and high performance software iSCSI implementation , 2005, FAST'05.

[10]  H. Michael Ji,et al.  Fast parallel CRC algorithm and implementation on a configurable processor , 2002, 2002 IEEE International Conference on Communications. Conference Proceedings. ICC 2002 (Cat. No.02CH37333).

[11]  Claudio Mucci,et al.  Implementation of Parallel LFSR-based Applications on an Adaptive DSP featuring a Pipelined Configurable Gate Array , 2008, 2008 Design, Automation and Test in Europe.

[12]  Dake Liu,et al.  Implementation of fast CRC calculation , 2003, Proceedings of the ASP-DAC Asia and South Pacific Design Automation Conference, 2003..