Patent ID: 7870466

Claim:
A parallel cyclic code generation device for executing division against data as an object of cyclic code generation, optional in bit length, by a generation polynomial, for every M bits, thereby generating cyclic codes, the device comprising: a data dividing unit for parallel-producing bit strings contained in data as the object of the cyclic code generation, so as to be M bits in width, respectively, thereby dividing the data as the object of the cyclic code generation into an integral multiple bits block A(x) and a fraction bits block B(x), the integral multiple bits block A(x) being a data block of the object of the cyclic code generation, with a length corresponding to an integral multiple of M bits from the header of the data as the object of the cyclic code generation, the fraction bits block B(x) being a data block of the object of the cyclic code generation, less than M bits, excluding the integral multiple bits block A(x); an R(x) generation unit for generating a cyclic code R(x) as the cyclic code of the integral multiple bits block A(x); a first exclusive-OR unit for executing computation of exclusive-OR of the cyclic code R(x) and a data string of M bits, containing the fraction bits block B(x); a first shifting unit for shifting the exclusive-OR of the cyclic code R(x) and the data string of M bits, containing the fraction bits block B(x), by {M−H(k)} bits toward a least significant side in the case of a bit length of the fraction bits block B(x) being H(k) bits, said first shifting unit setting 0 to {M−H(k)} bits on a most significant side; an R′(x) generation unit for generating a cyclic code R′(x) that is a cyclic code of the data subjected to shifting and setting to 0, by the first shifting unit; a second shifting unit for shifting the cyclic code R(x) by H(k) bits toward a most significant side, thereby generating data R″(x) that is data obtained by setting 0 to H(k) bits on a least significant side; and a second exclusive-OR unit for executing computation of exclusive-OR of the cyclic code R′(x) and the data R″(x).