KR950009689B1 - Crc apparatus cepable of dividing block boundary in byte synchronized data - Google Patents

Crc apparatus cepable of dividing block boundary in byte synchronized data Download PDF

Info

Publication number
KR950009689B1
KR950009689B1 KR1019930018285A KR930018285A KR950009689B1 KR 950009689 B1 KR950009689 B1 KR 950009689B1 KR 1019930018285 A KR1019930018285 A KR 1019930018285A KR 930018285 A KR930018285 A KR 930018285A KR 950009689 B1 KR950009689 B1 KR 950009689B1
Authority
KR
South Korea
Prior art keywords
polynomial
byte
bit
block
modulo
Prior art date
Application number
KR1019930018285A
Other languages
Korean (ko)
Other versions
KR950009433A (en
Inventor
이병철
임성렬
김정식
Original Assignee
재단법인한국전자통신연구소
양승택
한국전기통신공사
조백제
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 재단법인한국전자통신연구소, 양승택, 한국전기통신공사, 조백제 filed Critical 재단법인한국전자통신연구소
Priority to KR1019930018285A priority Critical patent/KR950009689B1/en
Publication of KR950009433A publication Critical patent/KR950009433A/en
Application granted granted Critical
Publication of KR950009689B1 publication Critical patent/KR950009689B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring

Abstract

an N byte shift register for shifting byte column to be decoded by N byte to output the shifted byte column; a compensation polynomial expression driver for driving a compensation polynomial expression; and a device for performing operation of a subtraction of 2 by a compensation polynomial expression and operation of division of 2 by a generation polynomial module, wherein division of block boundary is made in byte synchronized data.

Description

바이트 동기된 데이터에서 블럭 경계를 구분할 수 있는 순환여유검사장치Circular margin checking device that can distinguish block boundary from byte synchronized data

제1도는 종래의 블럭 경계를 구분할 수 있는 순환여유검사장치 구성도.1 is a block diagram of a circulating margin inspection apparatus that can distinguish the conventional block boundary.

제2도는 본 발명에 의한 블럭 경계를 구분할 수 있는 순환여유검사 장치의 블럭구성도.2 is a block diagram of a circulating margin inspection apparatus capable of classifying block boundaries according to the present invention.

제3도는 본 발명에 의한 블럭 경계를 구분할 수 있는 순환여유검사 장치에 일실 시 예시도.3 is an exemplary view when the circulatory margin inspection apparatus capable of distinguishing block boundaries according to the present invention.

* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings

11 : CRC연산기 12 : 지연수단11: CRC operator 12: delay means

13 : CRC 연산 도출 수단 14 : 일치 검출 수단13 CRC calculation derivation means 14 coincidence detection means

21 : N 바이트 쉬프트 레지스터 22 : 보상 다항식 구동기21: N byte shift register 22: compensated polynomial driver

23 : 보상 다항식 모듈로 2 빼기 및 생성 다항식 모듈로 2 나누기23: Subtract 2 by Compensation Polynomial Module and Divide by 2 by Polynomial Module

31,54 : 보상 다항식 모듈로 2 빼기용 배타적 OR게이트31,54: Exclusive OR gate for subtracting 2 with compensated polynomial modulo

300 : 5바이트 쉬프트 레지스터 310 : 보상 다항식 구동기300: 5-byte shift register 310: compensated polynomial driver

319 내지 326 : D플립플롭319 to 326 D flip flop

330,353 : 생성 다항식 모듈로 2 나누기용 배타적 OR게이트330,353 Exclusive OR gate for dividing into two generation polynomial modules

390 : 8입력 OR게이트390: 8 input OR gate

본 발명은 순환 부호(Cyclic Code)를 사용하는 착오 검출 정정 방식의 하나인 순환여유검사(Cyclic Redundancy Check : 이하, CRC라 함)에서 입력되는 데이터가 바이트 동기는 되어 있으나 순환 부호의 블럭 경계를 알 수 없을 때에 순환 부호가 내포된 바이트 열을 매 바이트마다(byte by byte) 연속적으로 연산을 하여 블럭의 경계를 출력하는 블럭 경계를 구분할 수 있는 CRC장치에 관한 것이다.According to the present invention, data inputted by a cyclic redundancy check (CRC), which is one of error detection and correction methods using a cyclic code, is byte-synchronized, but the block boundary of the cyclic code is known. The present invention relates to a CRC apparatus capable of distinguishing a block boundary that outputs a block boundary by continuously calculating a byte string containing a cyclic code when it cannot.

종래의 CRC장치는 경계가 주어진 상태에서 연산을 하도록 되어 있으므로 블럭 경계를 알기 위해서는 블럭을 구성하는 바이트 열이 순차적으로 달라질때마다, 다시 말하면 블럭을 구성하는 부호단어(code word)를 최상위 바이트 방향으로 한 바이트씩 이동하고 새로운 최하위 바이트로 블럭을 구성할때마다, 블럭을 구성하는 바이트수 만큼의 연산을 다시 반복해서 실행해야 하는 문제점이 있었다.In the conventional CRC apparatus, the operation is performed in a state where a boundary is given, so that in order to know the block boundary, each time a byte sequence constituting the block is sequentially changed, that is, a code word constituting the block is directed toward the most significant byte. Whenever a block is moved by one byte and a new least significant byte, there is a problem that the operation of repeating the number of bytes constituting the block is repeatedly performed.

제1도는 개선된 발명으로서의 일본 특개평 4-2824753의 CRC 연산 방법 및 ATM 교환방식에 있어서의 HEC 동기장치로서, CRC 연산기(11), 지연수단(12), CRC 연산 도출 수단(13), 일치 검출 수단(14)로 구성되어 있다.FIG. 1 shows a CRC calculator 11, a delay means 12, a CRC calculation derivation means 13, and a HEC synchronizer in a CRC calculation method and an ATM exchange method of JP-A 4-2824753 as an improved invention. It consists of the detection means 14.

도면에 도시한 블럭 경계를 구분할 수 있는 CRC(순환여유검사)장치는 종래의 CRC장치의 문제점인 반복 계산을 피할 수 있도록 함으로써 종래 보다는 하드웨어의 양을 줄일 수 있으나, 이 방법은 CRC연산 결과를 지연시킨 후에 새로운 블럭 경계에 대한 CRC연산 결과와 비교하기 때문에 연산된 결과를 비교하는 회로가 부가적으로 삽입될 뿐만 아니라 연산될 결과를 블럭의 최하위 바이트가 출력된 이 후에야 알 수 있다는 문제점이 있다.The CRC (circular free space inspection) device that can distinguish the block boundary shown in the drawing can reduce the amount of hardware than the conventional one by avoiding iterative calculation, which is a problem of the conventional CRC device, but this method delays the CRC operation result. Since the result is compared with the result of CRC operation on the new block boundary, the circuit comparing the calculated result is additionally inserted and the result to be calculated is not known until after the least significant byte of the block is output.

따라서, 상기 문제점을 해결하기 위하여 본 발명은, 블럭을 구성하는 바이트 열이 순차적으로 변하더라도 블럭을 구성하는 바이트 수 만큼 연산을 하지 않고 새로이 추가된 바이트 수 또는 블럭에서 제외되는 바이트 수 만큼만 연산을 하여 블럭의 경계를 구별해내고 연산 결과를 블럭의 시작 시점 전에 출력하는 바이트 동기된 데이터에서 블럭 경계를 구분할 수 있는 순환여유검사장치를 제공하는데 그 목적이 있다.Therefore, in order to solve the above problem, the present invention does not operate as much as the number of bytes constituting the block even if the byte strings constituting the block are sequentially changed, and operates only the number of newly added bytes or the number of bytes excluded from the block. It is an object of the present invention to provide a circular margin checking apparatus capable of distinguishing a block boundary from byte-synchronized data that distinguishes a block boundary and outputs an operation result before a block start point.

상기 목적을 달성하기 위해 본 발명은, 초기에는 논리레벨 '0'으로 N 바이트가 모드 초기화되어 있고, 복호되어질 바이트 열을 N바이트 쉬프트시켜 출력되는 N바이트 쉬프트 레지스트 수단, 상기 N바이트 쉬프트 레지스터 수단의 바이트 데이터 출력측에 연결되어 상기 N바이트 쉬프트 레지스터 수단에서 출력되는 바이트의 각 비트(Bsxs)에 대해 N바이트의 블럭 코드의 최상위 비트인 Xn-1를 생성 다항식으로 모듈로 2 나누기를 하여 남은 나머지를 한 비트 상위 비트 방향으로 쉬프트한 C(X, Bs)x=Bsxs{ar-1xr-2+……+a2xr2+a1xr1+a0}x인 보상 다항식을 구동시키는 보상(compensation) 다항식 구동 수단, 상기 보상 다항식 구동 수단 및 바이트 데이터 외부 입력단자에 연결되어 복호되어질 바이트 열을 입력하여 상위 비트 순서로 상기 보상 다항식 구동 수단에서 구성된 C(x, B7)x 다항식으로 모듈로 2 빼기를 한 뒤 상기 생성 다항식 G(x)로 모듈로 2 나누기를 수행한 후 남은 나머지를 상기 보상 다항식 구동 수단에서 구동된 C(x, B6)x 다항식으로 모듈로 2 빼기를 한 뒤 상기 생성 다항식 G(x)로 모듈로 2 나누기를 각각 순차적으로 비트단위로 1 바이트에 대해서 상기 보상 다항식 구동 수단에서 구동된 C(x, B0)x 다항식까지 반복해서 수행하고 나머지가 '0'일때는 외부로 이 결과를 출력하는 보상 다항식 모듈로 2 빼기 및 생성 다항식 모듈로 2 나누기 수단을 구비하는 것을 특징으로 한다.In order to achieve the above object, the present invention relates to an N-byte shift register means for initializing a mode of N bytes at a logic level '0' and outputting by shifting the byte string to be decoded by N bytes. X n-1 , which is the most significant bit of the N byte block code, is divided into two by the module polynomial for each bit (B s x s ) of the byte connected to the byte data output side and output from the N byte shift register means. C (X, B s ) x = B s x s {a r-1 x r-2 +... … Compensation polynomial driving means for driving a compensation polynomial of + a 2 x r2 + a 1 x r1 + a 0 } x, the compensation polynomial driving means and a byte data to be decoded connected to the byte data external input terminal. The modulo polynomial of C (x, B 7 ) x polynomials configured in the compensation polynomial driving means in higher bit order, and then performing the two divisions of the modulus with the generated polynomial G (x). Compensating polynomial driving means for 1 byte in bit units, respectively, after modulo 2 subtraction with C (x, B 6 ) x polynomial driven by driving means, and then dividing modulo 2 with generating polynomial G (x), respectively. It is characterized in that it comprises a means for subtracting 2 by a compensated polynomial module and generating a divide by 2 polynomial module, which repeatedly executes C (x, B 0 ) x polynomials driven in and outputs the result when the rest is '0'. Gong.

다음에 수학적 해석으로 본 발명의 동작 원리를 알기 쉽게 설명하기 위해서 비트단위 동작으로 상세히 설명한다.Next, in order to clearly explain the operation principle of the present invention by mathematical analysis, it will be described in detail by bit operation.

블럭의 크기는 n비트이고, G(x)의 생성 다항식으로 전송되며 블럭 경계를 모르는 임의의 순간 k에 n비트 블럭을 Tk(x)로 하고, CRC장치로 입력되는 비트 열중에 K 순간에 입력되는 비트를 ak이고, 비트 열중에서 K+1 순간에 입력되는 비트를 ak+1일때, K+1인 순간에 n비트 블럭을 Tk+1(x)로 하면 K 순간의 n비트 불럭은,The size of the block is n bits, transmitted as the G (x) generation polynomial, and the n-bit block is T k (x) at any moment k that does not know the block boundary. When the input bit is a k and the bit input at the moment K + 1 in the bit string is a k + 1 , the n-bit block at the moment K + 1 is T k + 1 (x) The block is,

Tk(x)=ak-n-1xn-1+Bk(x)+ak T k (x) = a kn-1 x n-1 + B k (x) + a k

로 되며 여기서 ak-n-1xn-1는 K 순간에 n비트 블럭의 최상위비트이고 ak-n-1은 k-n-1인 순간에 입력된 비트(k 순간에 대해서 n-1번 전에 비트)를 의미하며, ak는 k 순간에 n비트 블럭의 최하위 비트이고 k 순간에 입력된 비트를 의미하고, Bk(x)는 k 순간에 n비트 블럭에서 최상위 비트와 최하위 비트를 제외한 나머지 비트이다.Where a kn-1 x n-1 is the most significant bit of the n-bit block at the moment K and a kn-1 is the bit entered (n-1 times before the k moment) for kn-1 A k is the least significant bit of the n-bit block at k instants and the bit input at k instants, and B k (x) is the remaining bits except the most significant bit and least significant bit in the n bit block at k instants.

또한, k+1 순간의 n비트 블럭은,Further, the n-bit block at k + 1 instants is

Tk+1(x)=ak-nxn-1+Bk+1(x)+ak+1 T k + 1 (x) = a k- nx n-1 + B k + 1 (x) + a k + 1

로 되며 여기서 ak-nxn-1는 k+1순간에 n비트 블럭의 최상위 비트이고 ak-n은 k-n인 순간에 입력된 비트(k 순간에 대해서 n-1번 전에 비트)를 의미하며, ak+1는 k+1 순간에 n비트 블럭의 최하위 비트이고 k+1 순간에 입력된 비트를 의미하고, Bk+1(x)k+1 순간에 n비트 블럭에서 최상위 비트와 최하위 비트를 제외한 나머지 비트이다. 임의의 k 순간에 n비트 블럭을 생성 다항식 G(x)로 모듈로 2 나누기를 한 결과는 {ak-n-1xn-1+Bk(x)+ak}/G(x)이고, {ak-n-1xn-1+Bk(x)+ak}/G(x)의 나머지를 Rx(x)로 하고, ak-n-1xn-1/G(x)의 나머지를 Ck(x)로 하면 {Bk(x)+ak}/G(x)의 나머지는 Rx(x)-Cx(x)이다.As are means where a kn x n-1 is a k + a most significant bit of n bit blocks in one moment and a kn is a bit (bit before n-1 times with respect to k time) entered in the kn moment, and a k +1 means the least significant bit of the n-bit block at k + 1 moments and the bit entered at k + 1 moments, except for the most significant bit and least significant bit in the n-bit block at k k + 1 (x) k + 1 moments. The remaining bits. The result of dividing n-bit block into modulo polynomial G (x) by modulus at any k moment is {a kn-1 x n-1 + B k (x) + a k } / G (x), {a kn-1 x n-1 + B k (x) + a k } / G (x) is set to R x (x), and a kn-1 x n-1 / G (x) is If C k (x), then the remainder of {B k (x) + a k } / G (x) is R x (x) -C x (x).

그런데, k+1인 순간의 n비트 블럭은 Tk+1(x)=(Bk(x)+ak)x+ak+1이므로 K+1 순간에 n비트 블럭을 생성 다항식 G(x)로 모듈로 2 나누기를 한 결과는 [{Bk(x)+a}x]/G(x)+ak+1/G(x)이고, [{Bk(x)+ak}x]/G(x)의 나머지는 {Rk(x)-Ck(x)}x이기 때문에 Tk+1/G(x)의 나머지는 다음식 {Rk(x)-Ck(x)}x+ak+1/G(x)의 나머지와 같다.However, since the n-bit block at the moment k + 1 is T k + 1 (x) = (B k (x) + a k ) x + a k + 1 , the n-bit block is generated at the moment K + 1. The result of modulo division by x) is [{B k (x) + a} x] / G (x) + a k + 1 / G (x) and [{B k (x) + a k } x] / G (x) is {R k (x) -C k (x)} x, so the remainder of T k + 1 / G (x) is given by the following formula {R k (x) -C k (x)} x + a equals the remainder of k + 1 / G (x).

이하, 첨부된 도면 제2도 이하를 참조하여 본 발명의 일실시예를 상세히 설명한다.Hereinafter, an embodiment of the present invention will be described in detail with reference to the accompanying drawings.

제2도는 본 발명에 따른 CRC장치 블럭 구성도로서, 도면에서 21은 N바이트 쉬프트 레지스터, 22는 보상 다항식 구동기, 23은 보상 다항식 모듈로 2 빼기 및 생성 다항식 모듈로 2 나누기를 각각 나타낸다.2 is a block diagram of a CRC device according to the present invention, in which 21 represents an N-byte shift register, 22 represents a compensation polynomial driver, 23 represents two subtractions of a compensation polynomial module, and two divisions of a generation polynomial module.

도면에 도시한 바와 같이 바이트 동기된 데이터에서 블럭 경계를 구분할 수 있는 CRC장치에 대한 상세 설명은 다음과 같다.As shown in the figure, a detailed description of a CRC device capable of distinguishing block boundaries from byte-synchronized data is as follows.

우선, 상기 N바이트 쉬프트 레지스터(21)는 초기에는 논리레벨 '0'로 N바이트가 모두 초기화되어 있고, 복호되어질 바이트를 한 바이트씩 순차적으로 쉬프트시켜 바이트 열을 N바이트 저장하고, 시간 K+N인 순간에 K 순간에 입력되었던 바이트를 출력한다.First, the N-byte shift register 21 initially initializes all of the N bytes to a logic level '0', shifts the bytes to be decoded one byte at a time, stores N bytes of bytes, and stores the time K + N. Prints the bytes that were entered at the moment K.

또한, 보상 다항식 구동기(22)는 상기 N바이트 쉬프트 레지스터(21)에 연결되어, 상기 N바이트 쉬프트 레지스터(21)에서 출력되는 바이트의 비트가 Bsxs(s는 0에서 7까지의 정수로 Bs는 0 또는 1을 갖는 계수이며 B7은 최상위 비트의 계수로 0 또는 1이고 B0는 최하위 비트 계수로 0 또는 1)이면 각 비트(Bsxs)에 대해 N바이트의 블럭 코드의 최상위 비트인 xn-1를 상기 생성 다항식(G(x))으로 모듈로 2 나누기를 하여 남은 나머지를 한 비트 상위 비트 방향으로 쉬프트한 다음식으로 구동시킨다.In addition, the compensation polynomial driver 22 is connected to the N-byte shift register 21 so that the bit of the byte output from the N-byte shift register 21 is B s x s (s is an integer of 0 to 7). If B s is a coefficient with 0 or 1, B 7 is 0 or 1 with the most significant bit count and B 0 is 0 or 1 with the least significant bit count, then N bytes of block code for each bit (B s x s ) The most significant bit x n-1 is divided into two by the generation polynomial (G (x)), and the rest is shifted in the direction of the upper bit by one bit and then driven.

C(x, Bs)x=Bsxs{ar-1xr-1+ar-2xr-2+……+a2x2+a1x1+a0}xC (x, B s ) x = B s x s (a r-1 x r-1 + a r-2 x r-2 +... … + a 2 x 2 + a 1 x 1 + a 0 } x

따라서, 상기 N 바이트 쉬프트 레지스터(21)에서 출력되는 바이트가 '0'이면 C{x, Bsxs)x=o을 구동시킨다.Therefore, when the byte output from the N byte shift register 21 is '0', C {x, B s x s ) x = o is driven.

그리고, 보상 다항식 모듈로 2 빼기 및 생성 다항식 모듈로 2 나누기(23)는 상기 보상 다항식 구동기(22)에 연결되어 바이트 간격마다 복호되어질 바이트 열에 대해서, 상기 보상 다항식 구동기(22)에서 구동된 C(x, B7x7)x 다항식으로 상위비트 순으로 모듈로 2 빼기를 한 후 상기 생성 다항식 G(x)로 모듈로 2 나누기를 하여 남은 나머지를 상위 비트로 하고 입력된 바이트의 다음 비트를 하위 비트로 하여 다시 상기 보상 다항식 구동기(22)에서 구동된 C(x, B6)x 다항식으로 모듈로 2 빼기를 한 후 상기 생성 다항식 G(x)로 모듈로 2 나누기를 각각 순차적으로 상기 보상 다항식 구동기(22)에서 구동식 C(x, B0)x 다항식까지 1 바이트에 대해서 연산을 순차적으로 반복하며 그 결과 나머지가 '0'일때는 외부로 결과를 출력한다.Subtracting and generating the polynomial 2 by the compensation polynomial modulo 2 divide 23 is connected to the compensation polynomial driver 22 and is driven by the C (operated by the compensation polynomial driver 22 with respect to the byte string to be decoded at each byte interval. x, B 7 x 7 ) x Subtract modulo 2 in order of higher bits with polynomial and divide by modulo 2 with generated polynomial G (x) to make the remainder higher and the next bit of input byte into lower bit. By subtracting modulo 2 by C (x, B 6 ) x polynomials again driven by the compensated polynomial driver 22 and then dividing by modulo 2 by the generated polynomial G (x), respectively. 22) sequentially repeats the operation for 1 byte from the driven C (x, B 0 ) x polynomial, and when the rest is '0', outputs the result to the outside.

제3도는 제2도의 바이트 동기된 데이터에서 블럭 경계를 구분할 수 있는 CRC장치에 대한 일 실시예로 CCITT.에서 권고한 ATM(Asynchronous Transfer Mode)방식의 UNI(User Network Interface)에서 사용하는 ATM셀에 대한 순환 부호는 53 옥텟에서 순환 부호 블럭은 5바이트(40비트)이며, 확인 비트수는 1바이트(8비트)이고, 생성 다항식은 G(x)=x8+x1+x+1이며 2진수로 표시하면 100000111인 수소(prime number)이다. 따라서, 보상 다항식(C(x, Bs)x)는 x39를 x8+x2+x+1로 모듈로 2 나눈 나머지 x5+x4+1를 상위비트 방향으로 s+1 비트 쉬프트시킨 Bsxs{x5+x4+1)x이고 2진수로 표시하면 Bsxs(1100010)이다. 즉, 보상 다항식(C(x, 1)x)은 x39를 x8+x2+x+1로 모듈로 2 나눈 나머지 x5+x4+1를 상위비트 방향으로 한 비트 쉬프트 시킨 {x5+x4+1}x이고 2진수로 표시하면 1100010이다.FIG. 3 is an example of a CRC device capable of distinguishing block boundaries from byte-synchronized data of FIG. 2, and is an ATM cell used in a UNI (User Network Interface) of ATM (Asynchronous Transfer Mode) method recommended by CCITT. For 53 octets, the cycle code block is 5 bytes (40 bits), the number of confirmation bits is 1 byte (8 bits), and the generator polynomial is G (x) = x 8 + x 1 + x + 1 and 2 In decimal, the number is 100000111. Thus, the compensated polynomial C (x, B s ) x shifts s + 1 bit shifts in the upper bit direction by remaining x 5 + x 4 +1 modulated by x 39 divided by 2 into x 8 + x 2 + x + 1. B s x s (x 5 + x 4 + 1) x and B s x s (1100010) when expressed in binary. That is, the compensated polynomial (C (x, 1) x) is obtained by dividing x 39 by x 8 + x 2 + x + 1 and modulating the remainder x 5 + x 4 +1 by one bit in the higher bit direction. 5 + x 4 + 1} x and 1100010 when represented in binary.

도면에서 300은 5바이트 쉬프트 레지스터, 319 내지 326은 D플립플롭, 31 내지 54는 보상 다항식 모듈로 2 빼기용 배타적 OR게이트, 330 내지 353는 생성 다항식 모듈로 2 나누기용 배타적 OR게이트, 310은 보상 다항식 구동회로, 390은 8입력 OR게이트를 각각 나타낸다.In the figure, 300 is a 5-byte shift register, 319 to 326 are D flip-flops, 31 to 54 are exclusive OR gates for subtracting 2 to the compensation polynomial module, 330 to 353 are exclusive OR gates for 2 division with the generated polynomial module, and 310 are compensation The polynomial driving circuit 390 represents eight input OR gates, respectively.

보상 다항식 구동회로(310)는 미리 계산된 결과로부터 단지 5바이트 쉬프트 레지스터의 출력을 이용하여 간단하게 구동되고, 보상 다항식 구동회로와 생성 다항식 구동회로와 보상 다항식 모듈로 2 빼기 및 생성 다항식 모듈로 2 나누기 회로에서 '0'항은 의미가 없으므로 생략되었다.The compensation polynomial driving circuit 310 is simply driven from the precomputed result using the output of a 5-byte shift register, and the compensation polynomial driving circuit and the generating polynomial driving circuit and the compensation polynomial modulo 2 subtraction and generating polynomial modulo 2 In the divide circuit, the '0' term is omitted because it is not meaningful.

다음에 동작 원리를 상세히 설명한다.Next, the operation principle will be described in detail.

데이터 바이트 열은 5바이트 쉬프트 레지스터(300)의 데이터 입력단자와 다항식 모듈로 2 빼기 및 생성 다항식 모듈로 2 나누기 회로의 D플립플롭들의 데이터 입력단자로 각각 입력된다. 5바이트 쉬프트 레지스터는 초기에 논리레벨 '0'로 초기화되어 있기 때문에 5바이트 단위 간격 동안 '0'을 출력하게 된다.The data byte string is input to the data input terminal of the 5 byte shift register 300 and the data input terminals of the D flip-flops of the polynomial modulo 2 subtraction and generation polynomial modulo 2 divide circuit. Since the 5-byte shift register is initially initialized to logic level '0', it outputs '0' during 5-byte intervals.

따라서, 초기에 5바이트 단위간격 동안은 보상 다항식 구동회로(310)에 의해서 보상 다항식 모듈로 2 빼기(31 내지 54) 및 생성 다항식 모듈로 2 나누기 회로(330 내지 353)는 영향을 받지 않는다. K순간에 보상 다항식 모듈로 2 빼기(31 내지 54) 및 생성 다항식 모듈로 2 나누기 회로(330 내지 353)는 초기에 5바이트 단위간격이 지난 후, K-5 순간에 입력된 바이트의 최상위 비트를 블럭의 최상위 비트로 하고 K-1 순간에 입력된 바이트의 최하위 비트를 블럭의 최하위 비트로 하는 블럭을 생성 다항식인 소수 10000011로 모듈로 2 나눈 나머지를 상위 비트로 하고 K 순간에 입력된 바이트를 하위 비트로하여 보상 다항식 모듈로 2 빼기 및 생성 다항식 모듈로 2 나누기를 다시하려고 한다. 이때에 K-5 순간에 입력된 바이트의 최상위 비트가 논리레벨 '0'이면 보상 다항식 모듈로 2 빼기(31 내지 54) 및 생성 다항식 모듈로 2 나누기 회로(330 내지 353)의 연산될 데이터의 상위 비트부터 생성 다항식인 소수 100000111로 모듈로 2 나누기를 수행하고 반면에 K-5 순간에 입력된 바이트의 최상위 비트가 논리레벨 '1'이면 보상 다항식 모듈로 2(31 내지 54) 빼기 및 생성 다항식 모듈로 2 나누기 회로(330 내지 353)의 연산될 데이터의 상위 비트부터 상기 보상 다항식 생성 회로에서 구동된 x7(x5+x4+1)x 보상 다항식으로 모듈로 2 빼기를 실행한 후에 생성 다항식인 소수 100000111로 모듈로 2 나누기를 수행한다.Therefore, during the 5-byte unit interval, the compensation polynomial modulo 2 subtracting 31 to 54 and the generating polynomial modulo 2 dividing circuit 330 to 353 are not affected by the compensation polynomial driving circuit 310. The K polynomial modulo 2 subtraction (31 to 54) and the generating polynomial modulo 2 dividing circuit (330 to 353) at the moment instantiate the most significant bit of the byte input at the moment K-5 after a 5-byte interval. Create a block with the most significant bit of the block and the least significant bit of the byte input at the moment K-1 as the least significant bit of the block. Compensate by making the remainder divided by the polynomial 10000011 2 as the upper bit and the byte input at the moment K as the lower bit. Subtract and create 2 with polynomial module You want to divide 2 with the polynomial module again. At this time, if the most significant bit of the byte input at the moment K-5 is the logic level '0', the difference of the data to be calculated by the compensation polynomial modulo 2 subtraction (31 to 54) and the generation polynomial modulo 2 division circuit (330 to 353). Performs division by modulus with a decimal number 100000111, which is a generation polynomial from the bit, whereas if the most significant bit of the byte input at the moment K-5 is the logic level '1', compensated polynomial modulo 2 (31 to 54) subtraction and generation polynomial module Generate polynomial after performing modulo 2 subtraction with the x 7 (x 5 + x 4 +1) x compensated polynomial driven in the compensation polynomial generation circuit from the upper bits of the data to be computed by the two division circuits 330 to 353 Perform a two division into the modulus with the decimal number 100000111.

그리고 나서, K-5 순간에 입력된 바이트의 최상위 다음 비트가 논리레벨 '0'이면 상기 연산이 수행된 결과에 대한 나머지를 상위 비트로하고 입력된 바이트 데이터의 다음 비트를 최하위 비트로 하는 다항식에 대해 생성 다항식인 소구 100000111로 모듈로 2 나누기를 수행하고 반면에 K-5 순간에 입력된 바이트의 최상위 다음 비트가 논리레벨 '1'이면 상기 다항식(상기 연산이 수행된 결과에 대한 나머지를 상위 비트로 하고 입력된 바이트 데이터의 다음 비트를 최하위 비트로 하는 다항식)에 대해 상기 보상 다항식 생성회로에서 구동된 x6(x5+x4+1)x 보상 다항식으로 모듈로 2 빼기를 실행한 후에 생성 다항식인 소수 100000111로 모듈로 2 나누기를 수행하는 과정을 K-5 순간에 입력된 바이트의 최하위 비트/입력되니 바이트의 최하위 비트)까지 병렬(바이트 단위로) 반복 수행한다. 따라서, K 순간에 보상 다항식 모듈로 2 빼기(31 내지 54) 및 생성 다항식 모듈로 2 나누기 회로(330 내지 353)의 D플립플롭(319 내지 326)의 입력들은 K-4 순간부터 K순간까지 입력된 블럭은 소수 100000111로 모듈로 2 나눈 나머지를 나타낸다. 만일 D플립플롭(319 내지 326)의 입력들은 각 입력이 모두 논리레벨 '0'이 아니면(나머지가 0이 아니면) CRC의 정의에 따라 K-4 순간부터 K순간까지 입력된 블럭은 순환 부호 블럭이 아니다.Then, if the next most significant bit of the input byte at the moment K-5 is the logic level '0', a polynomial is generated for the remainder of the result of the operation as the upper bit and the next bit of the input byte data as the least significant bit. If the modulus is divided by modulus 100000111, and the most significant bit of the byte input at the time of K-5 is the logic level '1', the polynomial (the rest of the result of the operation being performed is the upper bit and is input). A polynomial that is a generation polynomial after performing modulo 2 subtraction with the x 6 (x 5 + x 4 +1) x compensated polynomial driven in the compensation polynomial generation circuit for the next bit of the byte data as the least significant bit). The process of performing division by 2 modulo K-5 parallel to the least significant bit of the input byte at the moment / lowest bit of the input byte. Performed with) repeat. Accordingly, the inputs of the D flip-flops 319 to 326 of the compensated polynomial modulo 2 subtractive (31 to 54) and the generated polynomial modulo 2 dividing circuits (330 to 353) at the moment K are input from the moment K-4 to the moment K. Block represents the remainder divided by two with a decimal number 100000111. If the inputs of the D flip-flops 319 to 326 are not all logic level '0' (the rest is not 0), the block inputted from the moment K-4 to the moment K according to the definition of the CRC is a cyclic code block. This is not it.

K+1인 순간에 5바이트 쉬프트 레지스터(300)의 출력에서 K-4 순간에 입력되었던 바이트(K 순간에 상위 바이트)의 비트 중에 논리레벨 '1'인 비트가 있으면 해당 비트에 해당하는 순차적인 연산 순간에 K순간의 나머지를 상위 비트로 한 다항식을 보상 다항식으로 모듈로 2 빼기를 한 후에 K+1 순간에 입력된 바이트를 하위 비트로 구성하여 생성 다항식으로 모듈로 2 나누기를 하고, 만일 K+1인 순간에 5바이트 쉬프트 레지스터(300)의 바이트의 비트 중에 논리레벨 '0'인 비트는 해당 비트에 해당하는 순차적인 연산순간에 K 순간의 나머지를 상위 비트로 하고 K+1 순간에 입력된 바이트를 하위 비트하는 다항식을 생성 다항식으로 모듈로 2 나누기만을 하게 된다.If there is a bit of logic level '1' among the bits of the byte (high byte at the moment K) input at the moment K-4 at the output of the 5 byte shift register 300 at the moment K + 1, the sequential corresponding to the bit Compute a polynomial with the remainder of the instantaneous K moment at the moment of operation as modulus polynomial, and then subtract modulo 2 into the modulated polynomial. Bit at the logic level '0' among the bits of the byte of the 5 byte shift register 300 at the instant of You can only subdivide a polynomial into lower polynomials.

결국 CRC 기능은 바이트간격으로 실행되며 순환 부호 블럭이 형성되면 보상 다항식 모듈로 2 빼기(31 내지 54) 및 생성 다항식 모듈로 2 나누기 회로(330 내지 353)의 D플립플롭(319 내지 326)의 입력들은 모두 논리레벨 '0'이 소위 신드롬이 '0'이되어 8입력 OR게이트(390)의 출력은 논리레벨 '0'이 된다. 본 발명에서 취급하지는 않지만 입력되는 데이터 비트가 임의 값을 가질 수 있기 때문에 가짜 순환 부호 블럭이 생성될 수 있는데 이것은 검출된 순환 부호 블럭이 주기적인가 아닌가로서 가짜 순환 부호 블럭을 검출해낼 수 있다.Eventually, the CRC function is executed at byte intervals, and when a cyclic code block is formed, the inputs of the D flip-flops 319 to 326 of the compensating polynomial modulo 2 subtraction (31 to 54) and the generating polynomial modulo 2 division circuit (330 to 353). In these cases, the logic level '0' becomes the so-called syndrome '0', and the output of the eight-input OR gate 390 becomes the logic level '0'. Although not dealt with in the present invention, a fake cyclic code block can be generated because an input data bit can have an arbitrary value, which can detect a fake cyclic code block as if the detected cyclic code block is periodic.

본 발명은 상기와 같은 회로 구성을 사용하여 입력되는 데이터의 순환 부호 블럭의 경계를 바이트간격으로 검색하여 블럭 경계도 구분할 뿐만 아니라 CRC 부기능도 수행할 수 있기 때문에 종래의 CRC 장치와 대체할 수 있으며 다음과 같은 특유한 효과를 갖는다.The present invention can be replaced with the conventional CRC apparatus because the boundary of the cyclic code block of the input data can be searched by byte interval using the circuit configuration as described above to distinguish not only the block boundary but also the CRC sub-function. It has the following distinctive effects.

첫째, 순환 부호 블럭 경계가 바뀌더라도 기존의 연산된 결과와 보상식으로 순환 부호를 복호하기 때문에 구현이 간단해진다.First, even if the boundary of the cyclic code block is changed, the implementation is simplified because the cyclic code is decoded by the conventional calculation result and the compensation formula.

둘째, 바이트 단위간격으로 순환 부호를 복호하기 때문에 블럭 동기 기능을 수행할 수 있다.Second, since the cyclic code is decoded at byte intervals, the block synchronization function can be performed.

세째, 입력되는 데이터를 블럭의 크기만큼 저장하기 때문에 블럭동기 검출 신호와 블럭 데이터값에 타이밍을 맞추기 위해 따라 데이터 지연회로를 별도로 사용할 필요가 없다.Third, since the input data is stored as the size of the block, it is not necessary to use a data delay circuit separately to match the timing of the block synchronization detection signal and the block data.

Claims (1)

r(r : 자연수)비트의 확인 비트와 m(m : r 보다 큰 8배수 자연수) 비트의 메시지 비트로 구성된 n(n : r+m인 8배수 자연수)비트 인 N(N=n/8)s 바이트의 블록 부호로 생성 다항식은 G(x)=xr+……+1를 사용하는 CRC장치에 있어서 ; 초기에는 논리레벨 '0'으로 N바이트가 모두 초기화되어 있고, 복호되어질 바이트 열을 N바이트 쉬프티서켜 출력되는 N바이트 쉬프트 레지스트 수단(21), 상기 N바이트 쉬프트 레지스터 수단(21)의 바이트 데이타 출력측에 연결되어 상기 N바이트 쉬프트 레지스터 수단에서 출력되는 바이트의 각 비트(Bsxs)에 대해 N바이트의 블럭 코드의 최상위 비트인 Xn-1를 생성 다항식으로 모듈로 2 나누기를 하여 남은 나머지를 한 비트 상위 비트 방향으로 쉬프트한 C(X, Bs)x=Bsxs{ar-1xr-2+ar-2xr-2+……+a2xr2+a1xr1+a0}x인 보상 다항식을 구동시키는 보상(compensation) 다항식 구동 수단(22), 상기 보상 다항식 구동 수단 및 바이트 데이터 외부 입력단자에 연결되어 복호되어질 바이트 열을 입력하여 상위 비트 순서로 상기 보상 다항식 구동 수단(22)에서 구동된 C(x, B7)x 다항식으로 모듈로 2 빼기를 한 뒤 상기 생성 다항식 G(x)로 모듈로 2 나누기를 수행한 후 남은 나머지를 상기 보상 다항식 구동 수단(22)에서 구동된 C(x, B6)x 다항식으로 모듈로 2 빼기를 한 뒤 상기 생성 다항식 G(x)로 모듈로 2 나누기를 각각 순차적으로 비트단위로 1 바이트에 대해서 상기 보상 다항식 구동 수단(22)에서 구동된 C(x, B0)x 다항식까지 반복해서 수행하고 나머지가 '0'일때는 외부로 이 결과를 출력하는 보상 다항식 모듈로 2 빼기 및 생성 다항식 모듈로 2 나누기 수단(23)를 구비하는 것을 특징으로 하는 바이트 동기된 데이터에서 블럭 경계를 구분할 수 있는 순환여유검사장치.N (N = n / 8) s, which is an n (8-fold natural number with n: r + m) bit consisting of a check bit of r (r: natural) bits and a message bit of m (m: 8-fold natural numbers greater than m: r) bits The block polynomial of bytes is generated by G (x) = x r +…. … In CRC apparatus using +1; Initially, all N bytes are initialized to a logic level '0', and the byte data output side of the N byte shift register means 21 and the N byte shift register means 21, which outputs the byte string to be decoded by N byte shift. For each bit (B s x s ) of the byte output from the N-byte shift register means, generate X n-1 , which is the most significant bit of the N-byte block code, by dividing the remainder by dividing into two by the module polynomial. C (X, B s ) x = B s x s (a r-1 x r-2 + a r-2 x r-2 +... Shifted one bit higher bit direction) … Compensation polynomial driving means 22 for driving a compensation polynomial of + a 2 x r2 + a 1 x r1 + a 0 } x, the byte array to be decoded in connection with the compensation polynomial driving means and the byte data external input terminal. Inputting subtracted modulo 2 by C (x, B 7 ) x polynomial driven by the compensated polynomial driving means 22 in the order of higher bits, and then performing 2 dividing modulo by the generated polynomial G (x). After the remaining remainder is modulated by C (x, B 6 ) x polynomial 2 driven by the compensation polynomial driving means 22 and modulo 2 divided by the generated polynomial G (x), respectively, sequentially in bit units. 2 subtracted by the compensated polynomial module which repeatedly executes the C (x, B 0 ) x polynomial driven by the compensation polynomial driving means 22 for 1 byte, and outputs the result to the outside when the remainder is '0'. And generate the divisor means 23 by the polynomial modulo A cyclic margin inspection apparatus capable of distinguishing block boundaries in byte synchronized data.
KR1019930018285A 1993-09-10 1993-09-10 Crc apparatus cepable of dividing block boundary in byte synchronized data KR950009689B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019930018285A KR950009689B1 (en) 1993-09-10 1993-09-10 Crc apparatus cepable of dividing block boundary in byte synchronized data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019930018285A KR950009689B1 (en) 1993-09-10 1993-09-10 Crc apparatus cepable of dividing block boundary in byte synchronized data

Publications (2)

Publication Number Publication Date
KR950009433A KR950009433A (en) 1995-04-24
KR950009689B1 true KR950009689B1 (en) 1995-08-26

Family

ID=19363366

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019930018285A KR950009689B1 (en) 1993-09-10 1993-09-10 Crc apparatus cepable of dividing block boundary in byte synchronized data

Country Status (1)

Country Link
KR (1) KR950009689B1 (en)

Also Published As

Publication number Publication date
KR950009433A (en) 1995-04-24

Similar Documents

Publication Publication Date Title
JP2655547B2 (en) CRC calculation method and HEC synchronizer in ATM switching system
US6681364B1 (en) Cyclic redundancy check for partitioned frames
EP0158510B1 (en) Error detection and correction in digital communication systems
JPH04211547A (en) Synchronous circuit
EP0313707A1 (en) Data integrity securing means
US3336467A (en) Simultaneous message framing and error detection
US5844923A (en) Fast framing of nude ATM by header error check
US3398400A (en) Method and arrangement for transmitting and receiving data without errors
US4312069A (en) Serial encoding-decoding for cyclic block codes
EP0480621B1 (en) Apparatus and method for parallel generation of cyclic redundancy check (CRC) codes
US3873971A (en) Random error correcting system
KR950009690B1 (en) Crc synchronizing apparatus
US4994993A (en) System for detecting and correcting errors generated by arithmetic logic units
JPH0728227B2 (en) Decoding device for BCH code
JP2000004169A (en) Crc operating method and crc arithmetic circuit
KR950009689B1 (en) Crc apparatus cepable of dividing block boundary in byte synchronized data
US3821711A (en) Self adaptive compression and expansion apparatus for changing the length of digital information
JPS617729A (en) Device for correcting error burst in compressed circulating block code
US5694405A (en) Encoder and decoder of an error correcting code
US5309449A (en) Electronic circuit for generating error detection codes for digital signals
US3427444A (en) Coding circuits for data transmission systems
KR950010771B1 (en) Crc apparatus of bound area of bite syncronized data
KR100200566B1 (en) Crc generation circuit of atm switching system
WO1995001683A1 (en) Method and apparatus for detecting cyclic code
KR950005816B1 (en) Cyclic redundancy check apparatus

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20040730

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee