International Journal of Computer Networks & Communications (IJCNC) Vol.5, No.3, May 2013 DOI : 10.5121/ijcnc.2013.5315 201 An Optimal Software Framework for Parallel Computation of CRC Hamed Sheidaeian 1 and Behrouz Zolfaghari 2 1 Department of Engineering, Islamic Azad University, Garmsar Branch, Iran sheidaeian@ut.ac.ir 2 Department of Engineering, Islamic Azad University, Garmsar Branch, Iran zolfaghari@aut.ac.ir ABSTRACT CRC is a common error detection method used in different areas such as information storage and data communication. CRC depends on modulo-2 division by a predetermined divisor called the generator. In this method, the transmitter divides the message by the generator and concatenates the calculated residue to the message. CRC is not able to detect every kind of errors. The properties of the generator determine the range of errors which are detectable in the receiver side. The division operation is currently performed sequentially, so developing methods for parallel computation of the residue makes CRC suitable for network protocols and software applications. This paper presents a novel software framework for parallel computation of CRC using ODP polynomials. KEYWORDS Parallel CRC computation, ODP polynomial, OZO generator 1. Introduction and Basic Concepts CRC is a widely adopted method for detecting errors which is used in various systems. Applications of CRC [4-8] as well as developing methods for improving its efficiency [9-11] have been research focuses in recent years. Before discussing the CRC method and introducing the proposed approach, some definitions and basic concepts are needed which they are shortly presented in the following. Polynomial: is a notation for a bit string in which the positions of 1s a shown by the exponents of a variable such as x . In other words, a polynomial appears in the form of i i x a ∑ . Each i a can be 0 or 1 and is equal to the corresponding bit in the string. Each i x shows that the corresponding bit has been located in the position i of the string. For example the bit string 1101 can be shown by the polynomial 1 2 3 + + x x . The degree of a polynomial is equal to the largest exponent of x in the polynomial. A polynomial of degree m is equivalent to a string than consists of length 1 + m bits. Every polynomial of an even degree is referred to an even polynomial in this paper. Similarly polynomials having odd degrees are called odd polynomials. Modulo-2 bitwise addition and subtraction: are both equal to logic XOR. Modulo-2 addition and subtraction generate no carry or borrow. Thus, the addition/subtraction of two strings is simply accomplished by adding/subtracting corresponding bits of the strings.