KR20090038155A - Cyclic redundancy check system and method thereof - Google Patents

Cyclic redundancy check system and method thereof Download PDF

Info

Publication number
KR20090038155A
KR20090038155A KR1020070103502A KR20070103502A KR20090038155A KR 20090038155 A KR20090038155 A KR 20090038155A KR 1020070103502 A KR1020070103502 A KR 1020070103502A KR 20070103502 A KR20070103502 A KR 20070103502A KR 20090038155 A KR20090038155 A KR 20090038155A
Authority
KR
South Korea
Prior art keywords
byte
unit
bytes
value
information data
Prior art date
Application number
KR1020070103502A
Other languages
Korean (ko)
Other versions
KR100937031B1 (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 KR1020070103502A priority Critical patent/KR100937031B1/en
Publication of KR20090038155A publication Critical patent/KR20090038155A/en
Application granted granted Critical
Publication of KR100937031B1 publication Critical patent/KR100937031B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/091Parallel or block-wise CRC computation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

A CRC(Cyclic Redundancy Check) system and a method thereof are provided to implement the fast operation speed through the parallel processing. A CRC system comprises an input unit(100), an N-byte separation unit(200), a processing unit(300), an information data determining unit(400), and an output unit(500). The input unit receives the information data and outputs to the N-byte separation unit. The N-byte separation unit includes a continuity maintenance part(210) and divides the information data into the N-byte unit. The processing unit comprises a block operation unit(600(1)~600(n)), and an XOR operation unit(700). The block operation unit comprises an N-byte operation part(800(1)~800(n)) and a zero block operation unit(900(1)~900(n-1)).

Description

순환잉여검사 시스템 및 방법{CYCLIC REDUNDANCY CHECK SYSTEM AND METHOD THEREOF}Cyclic redundancy inspection system and method {CYCLIC REDUNDANCY CHECK SYSTEM AND METHOD THEREOF}

본 발명은 순환잉여검사 시스템 및 방법에 관한 것이다. 특히, 본 발명은 병렬처리를 통해 빠른 동작 속도를 가지는 순환잉여검사 시스템 및 방법에 관한 것이다. The present invention relates to a cyclic redundancy inspection system and method. In particular, the present invention relates to a cyclic redundancy inspection system and method having a high operating speed through parallel processing.

유선 혹은 무선 통신 시스템의 통신 오류 검출 방법으로는 패러티 비트에 의한 방법, 체크 섬(check_sum)에 의한 방법 및 순환잉여검사 방법이 있다.Communication error detection methods of wired or wireless communication systems include a parity bit method, a check sum method, and a cyclic redundancy check method.

패러티 비트에 의한 방법은 데이터 중에 한꺼번에 복수의 비트가 변하는 경우, 오류를 검출할 수 없다. 또한, 체크 섬에 의한 방법은 한 바이트에서 +1, 다른 바이트에서 -1로 에러가 생기는 경우, 에러를 검출할 수 없는 등 이들 방법으로는 에러 검출의 확률이 낮다.The parity bit method cannot detect an error when a plurality of bits in the data change at one time. In addition, the method using a checksum has a low probability of error detection by these methods, for example, when an error occurs with +1 in one byte and -1 in another byte.

순환잉여검사 방법은 송신단이 데이터 전송 시 여분의 정보, 즉, 프레임 체크 시퀀스(Frame Check Sequence: FCS)를 원본 데이터의 최하위 비트(Least Significant Bit: LSB) 뒤에 첨부하여 함께 보내는 방식이다. The cyclic redundancy check method is a method in which the transmitting end attaches extra information, that is, a frame check sequence (FCS), after the least significant bit (LSB) of the original data.

프레임 체크 시퀀스(FCS)는 원본 데이터의 최하위 비트 뒤에 0 의 값을 가지 는 일정 길이의 정보를 추가하고, 이를 미리 정의된 제너레이터(generator)로 데이터를 이진 나눗셈한 나머지가 된다. The frame check sequence (FCS) adds a predetermined length of information having a value of 0 after the least significant bit of the original data, and divides the data into a binary generator by using a predefined generator.

예를 들어, 원본 데이터가 11100110 이고, 제너레이터가 11001 인 경우를 살펴본다. 제너레이터가 11001로 5 비트인 경우, 원본 데이터의 최하위 비트 뒤에는 0의 값을 가지는 4 비트가 추가된다. 즉, 수정된 원본 데이터는 111001100000 이 된다. 이후, 수정된 원본 데이터 111001100000을 미리 정의된 제너레이터 11001로 이진 나눗셈 한다. 나머지는 0110이 된다. 이때, 나머지 값이 프레임 체크 시퀀스(FCS)이다. For example, consider the case where the original data is 11100110 and the generator is 11001. If the generator is 5 bits with 11001, 4 bits with a value of 0 are added after the least significant bit of the original data. That is, the modified original data is 111001100000. Thereafter, the modified original data 111001100000 is binary divided into a predefined generator 11001. The rest is 0110. At this time, the remaining value is a frame check sequence (FCS).

송신단은 원본 데이터 11100110 의 전송 시, 프레임 체크 시퀀스(FCS)인 0110을 추가해서 전송한다. 즉, 송신단은 111001100110을 송신한다.When transmitting the original data 11100110, the transmitter adds and transmits 0110, which is a frame check sequence (FCS). That is, the transmitting end transmits 111001100110.

수신단은 수신한 정보 데이터 111001100110 의 에러를 검출하기 위해, 송신단에서 미리 정의된 제너레이터(generator)로 정보 데이터를 이진 나눗셈한다. 이진 나눗셈의 결과가 '0'이면 성공이고, 그 외에는 에러로 처리한다. In order to detect an error of the received information data 111001100110, the receiving end binary divides the information data with a generator that is predefined at the transmitting end. If the result of binary division is '0', then success. Otherwise, it is treated as an error.

순환잉여검사 방법은 간단하고, 에러 검출을 위한 오버헤드(overhead)가 적을 뿐만 아니라 에러 검출 성능도 좋아서 현재 무선랜(WLAN), 초광대역(UWB), 전파식별(RFID) 및 무선 센서 네트워크(WSN) 등의 무선 통신 시스템과 이더넷(ethernet) 등의 유선 통신 시스템에서 널리 사용되고 있다.The cyclic redundancy test method is simple and has low overhead for error detection and good error detection performance, which is why WLAN, UWB, RFID and wireless sensor network (WSN) It is widely used in wireless communication systems such as) and wired communication systems such as Ethernet.

종래의 순환잉여검사 방법은 플랫폼 설계 시 하드웨어 언어(hardware-based)로 기술되어 병렬 방식으로 연산되었다. 왜냐하면 소프트웨어 언어(software-based)로 기술될 경우, 다른 기능 블록(functional block)들에 비해 상대적으로 프 로세서의 로드가 커져, 전체 시스템의 성능을 저하시키기 때문이다.The conventional cyclic redundancy test method is described in hardware language (hardware-based) when the platform design was calculated in a parallel manner. This is because, when written in a software-based language, the processor load is increased relative to other functional blocks, which degrades the performance of the entire system.

최근 반도체 공정 기술이 발전함에 따란 한 칩에 여러 개의 프로세서와 많은 양의 메모리를 탑재하는 엠피 에스오씨(Multi-Processor System-on-Chip: MP SoC)가 비메모리의 핵심으로 부각되고, 이를 기반으로 하는 소프트웨어 방식의 순환잉여검사 방법이 각광받고 있다.With the recent development of semiconductor process technology, multi-processor system-on-chip (MP SoC), which has several processors and a large amount of memory on one chip, has emerged as the core of non-memory. Software-based cyclic redundancy inspection method is in the spotlight.

이중 가장 대표적인 방법은 순환잉여검사 테이블(lookup table)을 이용하는 방법으로, 종래의 1 비트 시프트 레지스터(shift register)를 사용하는 방법에서 고속화가 가능하게 되었다. 이들은 사전에 연산된 순환잉여검사 값을 테이블에 미리 저장해 둠으로써 비트 단위 대신 1 바이트, 4 바이트 또는 8 바이트 단위 등으로 순환잉여검사를 수행한다. 그러나, 이들 방법도 다음 처리할 데이터와 종속되어 연속적으로(serial) 연산되므로, 순환잉여검사의 처리 시간을 줄이는 데에는 한계가 있다.The most typical of these methods is the use of a cyclic redundancy table, which enables high speed in the conventional method using a 1-bit shift register. They store cyclic redundancy check values calculated in advance in a table, and perform cyclic redundancy check in units of 1 byte, 4 bytes, or 8 bytes instead of bits. However, these methods also depend on the data to be processed next and are serialized, and thus there is a limit in reducing the processing time of the cyclic redundancy check.

현재 무선 통신 시스템의 추세 중 하나로 빠른 전송 속도를 들 수 있다. 일례로 무선랜 시스템의 경우 수백 메가(Mbps)의 전송 속도를, 그리고 초광대역 시스템은 수 기가(Gbps)의 전송 속도를 목표로 한다. 따라서, 이러한 시스템에 탑재되는 순환잉여검사 시스템도 고속으로 동작하여야 한다. One of the trends of current wireless communication systems is the high transmission speed. For example, a wireless LAN system aims at a transmission rate of several hundred megabits (Mbps), and an ultra-wideband system aims at a transmission rate of several gigabytes (Gbps). Therefore, the cyclic redundancy inspection system mounted in such a system should also operate at high speed.

순환잉여검사 시스템이 고속의 처리 능력을 갖기 위해서는 이를 구동하는 클럭(clock)의 속도가 빨라지거나, 병렬 처리가 가능해야 한다. 클럭 속도의 경우는 소자 기술의 수준에 의존하므로 그 증가에 한계가 있다.In order for the cyclic redundancy inspection system to have a high processing capacity, the clock driving the clock must be faster or parallel processing is possible. The clock speed is limited by the level of device technology, so the increase is limited.

따라서, 본 발명이 이루고자 하는 기술적 과제는 병렬 처리를 통해 빠른 동작 속도를 가지는 순환잉여검사 시스템 및 방법을 제공하는 것이다. Accordingly, the technical problem to be achieved by the present invention is to provide a cyclic redundancy inspection system and method having a fast operation speed through parallel processing.

본 발명의 한 특징에 의하면, 순환잉여검사 시스템이 제공된다. 순환잉여검사 시스템은 정보 데이터를 N 바이트(N>0이상의 자연수) 단위로 분할하는 분할부; 및 n 개(n>0이상의 자연수)의 블록 연산부 각각이 상기 분할된 N 바이트의 정보 데이터에 대한 연산을 수행하여, (n x N) 바이트의 정보 데이터에 대한 연산을 수행하는 처리부를 포함한다. According to one aspect of the invention, a cyclic redundancy inspection system is provided. The cyclic redundancy inspection system includes a partitioning unit for dividing the information data into units of N bytes (N > 0 or more natural numbers); And a processing unit for performing operations on the divided N bytes of information data by performing operations on the divided N bytes of information data, respectively, by n blocks (n> 0 or more natural numbers).

본 발명의 다른 특징에 의하면, 순환잉여검사 방법이 제공된다. 순환잉여검사 방법은 (a) 정보 데이터를 입력 받는 단계; (b) 상기 정보 데이터를 N 바이트 단위로 분할하는 단계; 및 (c) (n x N) 바이트에 대한 순환잉여연산 값을 구하는 단계를 포함한다. According to another feature of the present invention, a cyclic redundancy inspection method is provided. Cyclic surplus inspection method includes the steps of (a) receiving information data; (b) dividing the information data into units of N bytes; And (c) obtaining a cyclic redundancy value for (n x N) bytes.

본 발명에 의하면, 병렬처리를 통해 빠른 동작 속도를 가지는 순환잉여검사 시스템 및 방법을 제공할 수 있다. According to the present invention, it is possible to provide a cyclic redundancy inspection system and method having a high operating speed through parallel processing.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.DETAILED DESCRIPTION Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the present invention. As those skilled in the art would realize, the described embodiments may be modified in various different ways, all without departing from the spirit or scope of the present invention. In the drawings, parts irrelevant to the description are omitted in order to clearly describe the present invention, and like reference numerals designate like parts throughout the specification.

명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "…부", "…기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.Throughout the specification, when a part is said to "include" a certain component, it means that it can further include other components, without excluding other components unless specifically stated otherwise. In addition, the terms “… unit”, “… unit”, “module”, etc. described in the specification mean a unit that processes at least one function or operation, which may be implemented by hardware or software or a combination of hardware and software. have.

이제, 본 발명의 실시예에 따른 순환잉여검사 시스템 및 방법에 대하여 도면을 참고하여 상세하게 설명한다.Now, the cyclic redundancy inspection system and method according to an embodiment of the present invention will be described in detail with reference to the drawings.

도 1은 본 발명의 실시예에 따른 순환잉여검사 시스템 및 방법의 개념도이 다.1 is a conceptual diagram of a cyclic redundancy inspection system and method according to an embodiment of the present invention.

본 발명의 실시예에 따른 순환잉여검사 시스템 및 방법은 수신한 정보 데이터를 특정 길이의 블록 별로 분할하여, 복수의 연산부에서 각 블록에 대한 연산을 한 후, 이들을 조합하는 방식으로 순환잉여검사를 수행한다.The cyclic redundancy inspection system and method according to an embodiment of the present invention divides the received information data into blocks of a specific length, performs calculation for each block in a plurality of calculation units, and then performs a cyclic redundancy check by combining them. do.

일반적인 순환잉여검사 방법은 이진 나눗셈을 기반으로 하므로, 정보 데이터 최상위 비트(MSB)부터 최하위 비트(LSB)까지 연속적인 연산이 필요하다. Since the general cyclic redundancy check method is based on binary division, continuous operation from the most significant bit (MSB) to the least significant bit (LSB) of information data is required.

본 발명의 실시예에 따른 순환잉여검사 시스템 및 방법은 n 개의 블록 연산부가 N 바이트 데이터를 병렬적으로 처리하고, 해당 N 바이트의 위치에 따라 제로 블록의 연산값을 찾은 후, 이들의 배타적 논리합 연산(이하, '배타적 논리합 연산(Exclusive OR)'는 'XOR 연산'이라 함)을 통해 조합한다. In the cyclic redundancy check system and method according to an embodiment of the present invention, n block operators process N-byte data in parallel, find an operation value of a zero block according to the position of the N-byte, and then perform an exclusive OR operation thereof. (Hereinafter, 'exclusive OR' is referred to as 'XOR operation').

즉, 본 발명의 실시예에 따른 순환잉여검사 시스템 및 방법은 정보 데이터 최상위 비트(MSB)부터 최하위 비트(LSB)까지 연속적인 연산을 수행하지 않고, 복수의 연산부에 정보 데이터를 특정 길이의 블록 별로 할당하고 연산하여 병렬 처리를 수행한다. That is, the cyclic redundancy inspection system and method according to an embodiment of the present invention does not perform continuous operation from the most significant bit (MSB) to the least significant bit (LSB) of information data, and transmits the information data to each of the plurality of calculation units for each block of a specific length. Allocate and compute to perform parallel processing.

구체적으로, 본 발명의 실시예에 따른 순환잉여검사 시스템 및 방법은 (n x N) 바이트의 정보 데이터에 대해서, n 개의 블록 연산부에서 N 바이트의 데이터에 대한 연산을 병렬적으로 수행한다. Specifically, the cyclic redundancy inspection system and method according to an embodiment of the present invention performs operations on N bytes of data in parallel in the n block calculators for (n x N) bytes of information data.

일반적인 순환잉여검사 방법과 같이 연속적인 연산을 통해 순환잉여검사 값을 구하는 경우, (n x N) 바이트의 데이터

Figure 112007073637557-PAT00001
를 제너레이터
Figure 112007073637557-PAT00002
로 이진 나눗 셈한 연산값은
Figure 112007073637557-PAT00003
이다. When the cyclic redundancy check value is obtained through continuous operation as in the general cyclic redundancy check method, (nx N) bytes of data
Figure 112007073637557-PAT00001
Generator
Figure 112007073637557-PAT00002
The binary division by
Figure 112007073637557-PAT00003
to be.

그런데, 연속적인 연산을 통해 순환잉여검사 값은 아래의 식 1과 같이 표현될 수 있다. However, the cyclic redundancy test value may be expressed as shown in Equation 1 below through successive operations.

[식 1][Equation 1]

Figure 112007073637557-PAT00004
Figure 112007073637557-PAT00004

Figure 112007073637557-PAT00005
는 N 바이트 단위로 나누어져
Figure 112007073637557-PAT00006
,
Figure 112007073637557-PAT00007
,...
Figure 112007073637557-PAT00008
의 XOR 연산으로 이루어진다. 이때,
Figure 112007073637557-PAT00009
,
Figure 112007073637557-PAT00010
,...
Figure 112007073637557-PAT00011
는 각각 자신에게 할당된 N 바이트 이외에는 0의 값을 가진다. 식 1과 같이, (n x N) 바이트의 데이터
Figure 112007073637557-PAT00012
를 제너레이터
Figure 112007073637557-PAT00013
로 이진 나눗셈한 연산값은
Figure 112007073637557-PAT00014
는, 각각의
Figure 112007073637557-PAT00015
,
Figure 112007073637557-PAT00016
,...
Figure 112007073637557-PAT00017
를 제너레이터
Figure 112007073637557-PAT00018
로 이진 나눗셈한 연산값의 XOR 연산값과 같다.
Figure 112007073637557-PAT00005
Is divided into N bytes
Figure 112007073637557-PAT00006
,
Figure 112007073637557-PAT00007
, ...
Figure 112007073637557-PAT00008
Consists of an XOR operation. At this time,
Figure 112007073637557-PAT00009
,
Figure 112007073637557-PAT00010
, ...
Figure 112007073637557-PAT00011
Each has a value of 0, except for the N bytes allocated to it. As in Equation 1, (nx N) bytes of data
Figure 112007073637557-PAT00012
Generator
Figure 112007073637557-PAT00013
The binary division by
Figure 112007073637557-PAT00014
Of each
Figure 112007073637557-PAT00015
,
Figure 112007073637557-PAT00016
, ...
Figure 112007073637557-PAT00017
Generator
Figure 112007073637557-PAT00018
Is equal to the XOR operation of the binary division.

본 발명의 실시예에 따른 순환잉여검사 시스템 및 방법은 식 1을 이용하여, (n x N) 바이트의 데이터

Figure 112007073637557-PAT00019
에 대해, 자신에게 할당된 N 바이트 이외에는 0의 값을 가지는
Figure 112007073637557-PAT00020
,
Figure 112007073637557-PAT00021
,...
Figure 112007073637557-PAT00022
로 분할한다. Cyclic redundancy inspection system and method according to an embodiment of the present invention using (1), (nx N) bytes of data
Figure 112007073637557-PAT00019
Has a value of 0 other than the N bytes allocated to it.
Figure 112007073637557-PAT00020
,
Figure 112007073637557-PAT00021
, ...
Figure 112007073637557-PAT00022
Split into

이후, n 개의 블록 연산부에서

Figure 112007073637557-PAT00023
,
Figure 112007073637557-PAT00024
,...
Figure 112007073637557-PAT00025
에 대한 이진 나눗셈 연산을 수행한다. 이때, n 개의 블록 연산부는 각 블록 연산부에 할당된 N 바이트에 대한 연산을 수행한 후, N 바이트 하위의 0 의 값을 가지는 제로 블록에 대한 연산을 수행한다.Then, in n block operations
Figure 112007073637557-PAT00023
,
Figure 112007073637557-PAT00024
, ...
Figure 112007073637557-PAT00025
Perform a binary division operation on. In this case, the n block operations units perform operations on N bytes allocated to each block operation unit, and then perform operations on zero blocks having a value of 0 below N bytes.

즉, 각 블록 연산부의 연산은 할당 받은 N 바이트에 대한 연산을 수행한 후, N 바이트 하위에서 0 의 값을 가지는 제로 블록에 대한 연산을 수행한다. 다만, 최하위 N 바이트를 할당 받은

Figure 112007073637557-PAT00026
의 경우는 할당 받은 N 바이트 하위에서 0 의 값을 가지는 제로 블록이 없다. 따라서,
Figure 112007073637557-PAT00027
의 경우는 N 바이트에 대한 연산만을 수행한다. That is, the operation of each block operation unit performs an operation on the allocated N bytes, and then performs an operation on the zero block having a value of 0 below the N bytes. However, the lowest N bytes allocated
Figure 112007073637557-PAT00026
In the case of, there is no zero block with a value of 0 below the allocated N bytes. therefore,
Figure 112007073637557-PAT00027
In the case of, only operation on N bytes is performed.

이후, n 개의 블록 연산부의 연산값의 XOR 연산을 통해 (n x N) 바이트의 데이터에 대한 순환잉여검사 값을 구한다. Then, the cyclic redundancy check value for the data of (n x N) bytes is obtained through XOR operation of the operation values of the n block operations units.

정리하면, (n x N) 바이트의 정보 데이터

Figure 112007073637557-PAT00028
에 대한 순환잉여검사 값 C 는, (n x N) 바이트의 데이터 중 최상위 N 바이트를 할당 받고, 할당 받은 N 바이트 하위에서 0 의 값을 가지는 ((n-1) x N) 바이트의 제로 블록을 가지는
Figure 112007073637557-PAT00029
에 대한 연산값 C1', 최상위 N 바이트를 제외하고 가장 상위의 N 바이트를 할당 받고, 할당 받은 N 바이트 하위에서 0 의 값을 가지는 ((n-2) x N) 바이트의 제로 블록을 가지는
Figure 112007073637557-PAT00030
에 대한 연산값 C2', . . . 최하위에서 두 번째 N 바이트를 할당 받고, 할당 받은 N 바이트 하위에서 0 의 값을 가지는 N 바이트의 제로 블록을 가지는
Figure 112007073637557-PAT00031
에 대한 연산값 Cn -1' 및 최하위 N 바이트를 할당 받은
Figure 112007073637557-PAT00032
에 대한 연산값 Cn 의 XOR 연산으로 구해진다. In short, (nx N) bytes of information data
Figure 112007073637557-PAT00028
The cyclic redundancy check value C for is given the highest N bytes of (nx N) bytes of data and has a zero block of ((n-1) x N) bytes with a value of 0 below the allocated N bytes.
Figure 112007073637557-PAT00029
The operation value for C 1 ', which is allocated the highest N bytes except the most significant N bytes, and has a zero block of ((n-2) x N) bytes with a value of 0 below the allocated N bytes.
Figure 112007073637557-PAT00030
Calculated value for C 2 ',. . . Is allocated the lowest N second bytes, and has N bytes of zero blocks
Figure 112007073637557-PAT00031
Assigned the operation value C n -1 'and least significant N bytes for
Figure 112007073637557-PAT00032
It is obtained by XOR operation of operation value C n for.

도 2는 본 발명의 실시예에 따른 순환잉여검사 시스템의 개략도이다.2 is a schematic diagram of a cyclic redundancy inspection system according to an embodiment of the present invention.

정보 데이터는 N 바이트 단위로 분할되고, 분할된 N 바이트 데이터는 해당 N 바이트 하위의 0 의 값을 가지는 제로 블록과 함께 블록 연산부로 할당된다. The information data is divided in units of N bytes, and the divided N byte data is allocated to the block operation unit together with a zero block having a value of 0 below the corresponding N bytes.

각 블록 연산부는 N 바이트 데이터와 하위의 제로 블록을 할당 받고, 우선 N 바이트 데이터에 대한 연산을 수행하여 N 바이트 연산의 결과값인 Cn(n=1,2,...n)을 구한다. 이때, N 바이트에 대한 연산은 4 바이트 단위로 수행되고, (N/4) 번의 반복 연산을 거친 후, Cn(n=1,2,...n) 값이 구해진다.Each block operation unit receives N byte data and a lower zero block, and first performs operations on the N byte data to obtain C n (n = 1, 2, ... n), which is a result of the N byte operation. At this time, the operation for N bytes is performed in units of 4 bytes, and after (N / 4) iterations, C n (n = 1, 2, ... n) values are obtained.

블록 연산부는 N 바이트에 대한 연산을 수행한 후, 제로 블록에 대한 연산을 수행한다. 이때, 가장 하위의 N 바이트를 할당 받은 블록 연산부는 제로 블록을 포함하지 않으므로 제로 블록 연산을 수행하지 않는다.The block operator performs an operation on the zero block after performing an operation on N bytes. In this case, since the block operation unit allocated the lowest N bytes does not include the zero block, the block operation unit does not perform the zero block operation.

마지막 블록 연산부를 제외한 블록 연산부들은 사전에 연산값이 저장되어 있는 순환잉여검사 테이블, 즉 제로 블록 테이블을 이용하여 Cn'(n=1,2,...n-1)를 구한다. The block operators except for the last block calculator calculate C n '(n = 1,2, ... n-1) using a cyclic redundancy check table, that is, a zero block table, in which operation values are stored in advance.

XOR 연산부는 제로 블록 테이블을 이용한 제로 블록 연산값 Cn'(n=2,3,..,n-1)과 마지막 블록 연산부의 연산값 Cn 에 대해 XOR 연산을 수행하고, 그 결과값은 C 로 정의된다. 식 2는 (n x N) 바이트 정보 데이터에 대한 연산값 C를 나타내고 있다.XOR operation unit calculates zero-zero blocks with block table value C n '(n = 2,3, .., n-1) and the calculated value of the last block computing section C n Performs an XOR operation on, and the result is defined as C. Equation 2 shows an operation value C for (nx N) byte information data.

[식 2][Equation 2]

Figure 112007073637557-PAT00033
Figure 112007073637557-PAT00033

(n x N) 바이트의 연산으로 정보 데이터가 모두 연산된 경우는, 이때의 연산값 C가 전체 정보 데이터의 순환잉여검사 값이 된다. 그러나, 한번의 (n x N) 바이트의 연산으로 정보 데이터가 끝나지 않은 경우는, 이번의 (n x N) 바이트에 대한 연산값 C는 다음에 처리할 (n x N) 바이트의 최상위 4 바이트와 XOR 되어 다음에 따라오는 정보 데이터와 연속성을 유지한다. In the case where all of the information data has been calculated by operation of (n x N) bytes, the operation value C at this time becomes a cyclic redundancy check value of all the information data. However, if the information data is not finished in one (nx N) byte operation, the operation value C for this (nx N) byte is XORed with the most significant 4 bytes of the next (nx N) byte to be processed. Maintain continuity with the information data that follows.

4 바이트를 처리하는데 걸리는 시간을 S4 사이클로 정의한다. 따라서, N 바이트를 4 바이트 단위로 처리하는데 걸리는 시간은 (N/4) x S4 사이클이 걸린다. 또한, 제로 블록 테이블을 이용하여 제로 블록 연산을 수행하고, 다음의 (n x N) 바이트의 최상위 4 바이트와 XOR 연산을 수행하는데 걸리는 시간을 Z 사이클로 정의한다. The time taken to process 4 bytes is defined as S 4 cycles. Therefore, it takes (N / 4) x S 4 cycles to process N bytes in 4 byte units. In addition, the zero block operation is performed using the zero block table, and the time taken to perform the XOR operation with the most significant 4 bytes of the next (nx N) bytes is defined as Z cycles.

블록 연산부에서 N 바이트 데이터를 병렬로 처리하는데 걸리는 (N/4) x S4 사이클과 각 블록 연산부의 제로 블록 연산 및 이들의 결과를 결합하기 위한 XOR 연산을 수행하는데 걸리는 Z 사이클은 (n x N) 바이트의 데이터를 처리할 때마다 한번씩 발생한다. (N / 4) x S 4 cycles in parallel processing of N-byte data in the block operation unit and zero block operations in each block operation unit and Z cycles in order to perform XOR operation to combine the results thereof are (nx N). Occurs once each time a byte of data is processed.

이들 [((N/4) x S4) + Z ] 사이클은 정보 데이터가 끝날 때까지 반복되고, 최종 결과의 C 가 전체 정보 데이터의 순환잉여검사 값이 된다. These [((N / 4) x S 4 ) + Z] cycles are repeated until the end of the information data, where C of the final result is the cyclic redundancy check value of the entire information data.

따라서, 전체 정보 데이터 L 바이트에 대해 순환잉여검사 값을 연산하는데 걸리는 회전지연시간(latency)는 식 3과 같다.Accordingly, the rotation delay time required to calculate the cyclic redundancy check value for the entire information data L bytes is expressed by Equation 3 below.

[식 3][Equation 3]

Figure 112007073637557-PAT00034
Figure 112007073637557-PAT00034

식 3을 참고하면, 정보 데이터의 길이(L)가 일정할 때, 블록 연산부의 개수(n)과 블록 연산부에서 처리하는 데이터의 길이(N)에 대해 회전지연시간은 반비례관계에 있다.Referring to Equation 3, when the length L of the information data is constant, the rotation delay time is inversely proportional to the number n of the block operation units and the length N of the data processed by the block operation unit.

도 3은 본 발명의 실시예에 따른 순환잉여검사 시스템의 블록도이다.3 is a block diagram of a cyclic redundancy inspection system according to an embodiment of the present invention.

도 3에 따르면, 순환잉여검사 시스템은 입력부(100), N 바이트 분할부(200), 처리부(300), 정보 데이터 판단부(400) 및 출력부(500)를 포함하고, 처리부(300)는 블록 연산부(600(1)~600(n)), XOR연산부(700)를 포함한다. 이때, 각 구성에 대해 설명하면 다음과 같다.According to FIG. 3, the cyclic redundancy inspection system includes an input unit 100, an N-byte division unit 200, a processing unit 300, an information data determination unit 400, and an output unit 500, and the processing unit 300 includes: Block computing units 600 (1) to 600 (n) and an XOR operator 700 are included. In this case, each configuration will be described below.

입력부(100)는 정보 데이터를 입력 받고, 입력 받은 정보 데이터를 N 바이트 분할부(200)로 출력한다. The input unit 100 receives the information data and outputs the received information data to the N-byte divider 200.

N 바이트 분할부(200)는 연속성 유지부(210)를 포함하고, 정보 데이터를 N 바이트 단위로 분할한다. N 바이트는 각 블록 연산부가 연산하는 데이터의 길이를 나타낸다. 순환잉여검사를 할 정보 데이터의 길이가 L 바이트일 때, 각 블록 연산부는 N 바이트 단위로 정보 데이터를 할당 받아 병렬적으로 연산을 수행한다. The N byte divider 200 includes a continuity maintainer 210 and divides the information data in units of N bytes. N bytes represent the length of data that each block operation unit calculates. When the length of the information data to be subjected to the cyclic redundancy check is L bytes, each block operation unit is allocated the information data in units of N bytes to perform the operation in parallel.

블록 연산부의 개수가 n 개일 때, 정보 데이터의 길이 L 바이트는 (n x N) 바이트의 배수가 된다. 만약, 정보 데이터의 길이가 (n x N) 바이트의 배수가 되지 않을 경우에는, 정보 데이터가 (n x N) 바이트의 배수가 되도록 정보 데이터의 상위에 0을 채워준다. 이때, N 은 사용자가 설정할 수 있는 길이로 4의 배수로 선택한다. When the number of block arithmetic units is n, the length L bytes of the information data becomes a multiple of (n x N) bytes. If the length of the information data is not a multiple of (n x N) bytes, 0 is filled in the upper portion of the information data so that the information data is a multiple of (n x N) bytes. In this case, N is a length that can be set by the user and is selected in multiples of four.

연속성 유지부(210)는 정보 데이터 L 바이트가 복수의 (n x N) 바이트로 이루어질 때, 이번에 연산한 (n x N) 바이트 연산값이 다음의 (n x N) 바이트 연산과 연속성을 유지하도록, 이번에 연산한 (n x N) 바이트 연산값 C를 다음에 처리할 (n x N) 바이트의 최상위 4 바이트와 XOR 연산을 수행한다. When the information data L byte is composed of a plurality of (nx N) bytes, the continuity maintaining unit 210 calculates this time so that the (nx N) byte operation value calculated this time maintains continuity with the next (nx N) byte operation. Performs an XOR operation with the most significant 4 bytes of the (nx N) byte to be processed next with one (nx N) byte operation value C.

처리부(300)는 (n x N) 바이트에 대한 연산을 복수의 연산부에서 병렬적으로 수행한다. 처리부(300)는 n 개의 블록 연산부(600(1)~600(n)) 및 XOR 연산부(700)를 포함하고, 블록 연산부(600(1)~600(n))는 N 바이트 연산부(800(1)~800(n)) 및 제로 블록 연산부(900(1)~900(n-1))를 포함한다. 이때, 최하위 N 바이트 데이터를 할당 받는 블록 연산부(600(n))는 제로 블록을 포함하지 않으므로, 제로 블록 연산부를 포함하지 않는다. The processor 300 performs an operation on (n × N) bytes in parallel in a plurality of calculators. The processor 300 includes n block calculators 600 (1) to 600 (n) and an XOR calculator 700, and the block calculators 600 (1) to 600 (n) are N byte calculators 800 ( 1) to 800 (n)) and zero block calculators 900 (1) to 900 (n-1). In this case, since the block operator 600 (n) to which the lowest N byte data is allocated does not include the zero block, the block operator 600 (n) does not include the zero block operator.

블록 연산부(600(1)~600(n)) 각각은 자신에게 할당된 N 바이트 데이터와 할당 받은 N 바이트 하위의 바이트는 0의 값을 가지는 제로 블록을 받고, 받은 데이터에 대한 연산을 수행한다. Each of the block operation units 600 (1) to 600 (n) receives a zero block having a value of 0 for the N-byte data allocated to the byte and the lower byte of the allocated N-byte, and performs an operation on the received data.

N 바이트 연산부(800(1)~800(n))는 할당 받은 N 바이트에 대한 연산을 수행하고, 제로 블록 연산부(900(1)~900(n-1))는 N 바이트 연산부(800(1)~800(n))의 연산값을 기초로 N 바이트 하위의 제로 블록에 대한 연산을 수행한다. N 바이트 연산부(800(1)~800(n)) 및 제로 블록 연산부(900(1)~900(n-1))의 구체적인 구성은 도 4 내지 도 7에서 상세히 설명한다.The N byte calculators 800 (1) to 800 (n) perform operations on the allocated N bytes, and the zero block calculators 900 (1) to 900 (n-1) perform the N byte calculators 800 (1). Based on the operation value of) ~ 800 (n)), the operation is performed on the zero block below N bytes. Detailed configurations of the N byte calculators 800 (1) to 800 (n) and the zero block calculators 900 (1) to 900 (n-1) will be described in detail with reference to FIGS. 4 to 7.

XOR 연산부(700) 블록 연산부(600(1)~600(n))의 연산값을 기초로 XOR 연산을 수행하여 (n x N) 바이트에 대한 연산값을 구하고, (n x N) 바이트에 대한 연산값을 정보 데이터 판단부(400)로 전달한다. XOR operation unit 700 Performs an XOR operation based on the operation values of the block operation units 600 (1) to 600 (n) to obtain an operation value for (nx N) bytes, and calculates an operation value for (nx N) bytes. It is transmitted to the information data determination unit 400.

정보 데이터 판단부(400)는 처리부(300)의 (n x N) 바이트에 대한 연산으로 전체 정보 데이터에 대한 연산이 완료했는지 여부를 판단한다. 정보 데이터 L 바이트에 대한 연산이 완료된 경우, 정보 데이터 판단부(400)는 처리부(300)로부터 받은 연산값을 출력부(500)로 전달한다. 반면, 정보 데이터 L 바이트에 대한 연산이 완료되지 않은 경우, 정보 데이터 판단부(400)는 처리부(300)로부터 받은 연산값을 N 바이트 분할부(200)의 연속성 유지부(210)로 전달한다.The information data determination unit 400 determines whether the operation on the entire information data is completed by the operation on the (n × N) bytes of the processing unit 300. When the operation on the information data L byte is completed, the information data determination unit 400 transmits the operation value received from the processing unit 300 to the output unit 500. On the other hand, when the operation on the information data L byte is not completed, the information data determination unit 400 transmits the operation value received from the processing unit 300 to the continuity maintaining unit 210 of the N byte division unit 200.

출력부(500)는 정보 데이터 판단부(400)로부터 받은 연산값을 출력한다. The output unit 500 outputs an operation value received from the information data determination unit 400.

도 4는 본 발명의 실시예에 따른 N 바이트 연산부에서 수행하는 동작의 개념도이고, 도 5는 본 발명의 실시예에 따른 N 바이트 연산부의 블록도이다. 4 is a conceptual diagram of an operation performed by an N-byte operation unit according to an embodiment of the present invention, and FIG. 5 is a block diagram of an N-byte operation unit according to an embodiment of the present invention.

도 4를 참고하면, N 바이트 연산부는 할당된 N 바이트에 대해 상위부터 32비트(4 바이트) 단위로 데이터를 읽어 연산을 수행하며, 이를 위해 8비트(1바이트)에 대한 순환잉여검사 값이 미리 계산된 4 개의 연산값 테이블을 가진다. Referring to FIG. 4, the N-byte operation unit reads data in units of 32 bits (4 bytes) from the upper part with respect to the allocated N bytes, and for this purpose, the cyclic redundancy check value for 8 bits (1 byte) is preliminarily. It has four calculated values table.

즉, N 바이트 연산부는 (임의의 8비트 데이터 x 256), (임의의 8비트 데이터 x 248), (임의의 8비트 데이터 x 240), (임의의 8비트 데이터 x 232)각각을 정해진 제너레이터

Figure 112007073637557-PAT00035
로 이진 나눗셈한 256가지를 각각 1킬로바이트(KByte) 크기의 256 연산 값 테이블, 248 연산값 테이블, 240 연산값 테이블, 232 연산값 테이블에 저장해두고 해당하는 8비트에 대한 결과를 검색하여 연산하는데 소모되는 시간을 줄인다.That is, the N byte arithmetic unit (random 8-bit data x 2 56 ), (arbitrary 8-bit data x 2 48 ), (arbitrary 8-bit data x 2 40 ), (arbitrary 8-bit data x 2 32 ), respectively Generator
Figure 112007073637557-PAT00035
256 binary divisions are stored in 2 56 arithmetic value tables, 2 48 arithmetic values tables, 2 40 arithmetic values tables, and 2 32 arithmetic values tables each 1 kilobyte (KByte) in size, and retrieve the result for the corresponding 8 bits. To reduce the time it takes to compute.

N 바이트 연산부는 이전에 32비트(4바이트) 연산을 수행한 경우, 이전 연산의 결과값인

Figure 112007073637557-PAT00036
에 이번에 연산을 수행할 32비트(4바이트)의 데이터
Figure 112007073637557-PAT00037
를 더해서 연산대상 값
Figure 112007073637557-PAT00038
를 결정한다.If the N byte operation unit previously performed 32 bit (4 byte) operation, the result value of the previous operation is
Figure 112007073637557-PAT00036
32 bits (4 bytes) of data at this time
Figure 112007073637557-PAT00037
Calculation Target Value
Figure 112007073637557-PAT00038
Determine.

이후, N 바이트 연산부는 연산대상 값

Figure 112007073637557-PAT00039
를 8비트(1바이트)씩 4개
Figure 112007073637557-PAT00040
로 분리되고, 각 8 비트에 해당하는 연산값 테이블의 순환잉여검사 값을 연산값 테이블에서 차례로 불러온다. 각 8 비트에 대한 연산값은
Figure 112007073637557-PAT00041
,
Figure 112007073637557-PAT00042
,
Figure 112007073637557-PAT00043
,
Figure 112007073637557-PAT00044
로 32비트(4바이트)의 값을 가진다. 식 4는 각 8비트에 대한 연산값을 나타낸 식이다.After that, the N byte arithmetic unit
Figure 112007073637557-PAT00039
4 x 8 bits (1 byte)
Figure 112007073637557-PAT00040
Separated by, the cyclic redundancy check value of the operation value table corresponding to each 8 bit is read in order from the operation value table. The operation value for each 8 bits is
Figure 112007073637557-PAT00041
,
Figure 112007073637557-PAT00042
,
Figure 112007073637557-PAT00043
,
Figure 112007073637557-PAT00044
It has a value of 32 bits (4 bytes). Equation 4 shows an operation value for each 8 bits.

[식 4][Equation 4]

Figure 112007073637557-PAT00045
Figure 112007073637557-PAT00045

Figure 112007073637557-PAT00046
Figure 112007073637557-PAT00046

Figure 112007073637557-PAT00047
Figure 112007073637557-PAT00047

Figure 112007073637557-PAT00048
Figure 112007073637557-PAT00048

4 개의 32비트 연산값

Figure 112007073637557-PAT00049
, ,
Figure 112007073637557-PAT00051
,
Figure 112007073637557-PAT00052
는 XOR 연산되고, XOR 연산의 결과인
Figure 112007073637557-PAT00053
는 N 바이트 연산부에서 다음에 연산될 4 바이트 데이터
Figure 112007073637557-PAT00054
와 다 시 XOR 연산되어 이상에서 설명한 과정이 반복된다. 이때,
Figure 112007073637557-PAT00055
는 4 바이트뿐만 아니라 8 바이트, 16 바이트 등으로 확장 가능하다. Four 32-bit math values
Figure 112007073637557-PAT00049
, ,
Figure 112007073637557-PAT00051
,
Figure 112007073637557-PAT00052
Is an XOR operation, which is the result of the XOR operation
Figure 112007073637557-PAT00053
Is the 4 byte data to be computed next in the N byte operation unit.
Figure 112007073637557-PAT00054
XOR operation is repeated and the process described above is repeated. At this time,
Figure 112007073637557-PAT00055
Can be extended to 8 bytes, 16 bytes, etc. as well as 4 bytes.

도 5는 본 발명의 실시예에 따른 N 바이트 연산부의 블록도이다.5 is a block diagram of an N-byte calculation unit according to an embodiment of the present invention.

본 발명의 실시예에 따른 순환잉여검사 시스템은 n 개의 N 바이트 연산부를 포함하며, n 개의 N 바이트 연산부는 모두 동일하므로 여기서는 설명의 편의상 첫 번째 N 바이트 연산부(800(1))만을 설명한다.The cyclic redundancy check system according to the embodiment of the present invention includes n N-byte arithmetic units, and since the n N-byte arithmetic units are all the same, only the first N-byte arithmetic unit 800 (1) will be described here for convenience of description.

도 5를 참고하면, N 바이트 연산부(800(1))는 입력부(810), 4 바이트 분할부(820), 처리부(830), N 바이트 데이터 판단부(840) 및 출력부(850)를 포함하고, 처리부(830)는 8 비트 분할부(860), 256 연산부(870(1)), 248 연산부(870(2)), 240 연산부(870(3)), 232 연산부(870(4)) 및 XOR 연산부(880)를 포함한다.Referring to FIG. 5, the N byte calculator 800 (1) includes an input unit 810, a 4 byte divider 820, a processor 830, an N byte data determiner 840, and an output unit 850. The processor 830 includes an 8-bit divider 860, a 2 56 arithmetic unit 870 (1), a 2 48 arithmetic unit 870 (2), a 2 40 arithmetic unit 870 (3), and a 2 32 arithmetic unit 870. (4)) and an XOR operator 880.

입력부(810)는 N 바이트의 데이터를 입력 받고, 입력 받은 N 바이트의 데이터를 4 바이트 분할부(820)로 출력한다.The input unit 810 receives N bytes of data and outputs the received N bytes of data to the 4-byte divider 820.

4 바이트 분할부(820)는 연속성 유지부(821)를 포함하고, N 바이트 데이터를 4 바이트 단위로 분할한다. 4 바이트는 처리부(830)에서 연산하는 데이터의 길이를 나타낸다. 연속성 유지부(821)는 처리부(830)의 연산값이 N 바이트의 데이터 중 처리부(830)에서 연산한 값의 다음 데이터와 연속성을 유지하도록, 처리부(830)의 연산값을 다음 4 바이트와 XOR 연산을 수행한다.The 4 byte divider 820 includes a continuity maintainer 821, and divides the N byte data in units of 4 bytes. Four bytes indicate the length of data calculated by the processing unit 830. The continuity maintaining unit 821 stores the operation value of the processing unit 830 with the next 4 bytes and XOR so that the operation value of the processing unit 830 maintains continuity with the next data of the value calculated by the processing unit 830 among the N bytes of data. Perform the operation.

처리부(830)는 4 바이트에 대한 연산을 4 개의 256 연산부(870(1)), 248 연산 부(870(2)), 240 연산부(870(3)), 232 연산부(870(4))에서 병렬적으로 수행한다. The processor 830 performs four 4 byte operations on four 2 56 operation units 870 (1), 2 48 operation units 870 (2), 2 40 operation units 870 (3), and 2 32 operation units 870 ( 4)) in parallel.

처리부(830)는 8비트 분할부(860), 256 연산부(870(1)), 248 연산부(870(2)), 240 연산부(870(3)), 232 연산부(870(4)) 및 XOR 연산부(880)를 포함하고, 256 연산부(870(1)), 248 연산부(870(2)), 240 연산부(870(3)) 각각은 연산값 테이블(871(1)~871(4)) 및 8비트 연산값 검색부(872(1)~872(4))를 포함한다.The processor 830 is an 8-bit divider 860, 2 56 calculators 870 (1), 2 48 calculators 870 (2), 2 40 calculators 870 (3), 2 32 calculators 870 (4 ) And XOR operator 880, each of 2 56 operator 870 (1), 2 48 operator 870 (2), and 2 40 operator 870 (3), respectively. ) To 891 (4)) and an 8-bit arithmetic value search unit 872 (1) to 872 (4).

8비트 분할부(860)는 4 바이트 분할부(820)로부터 받은 32비트(4 바이트)를 8 비트 단위의 네 개로 분할하고, 각각의 8 비트를 256 연산부(870(1)), 248 연산부(870(2)), 240 연산부(870(3)) 및 232 연산부(870(4))로 전달한다.The 8-bit divider 860 divides 32 bits (4 bytes) received from the 4-byte divider 820 into four units of 8-bit units, and divides each 8 bit into 2 56 arithmetic units 870 (1) and 2 48. The data is transmitted to the calculation unit 870 (2), the 2 40 calculation unit 870 (3), and the 2 32 calculation unit 870 (4).

이때, 32 비트는 최상위 8 비트부터 최하위 8 비트까지 순차적으로 256 연산부(870(1)), 248 연산부(870(2)), 240 연산부(870(3)) 및 232 연산부(870(4))로 전달된다.At this time, the 32 bits are sequentially performed from the most significant 8 bits to the least significant 8 bits, such as 2 56 arithmetic unit 870 (1), 2 48 arithmetic unit 870 (2), 2 40 arithmetic unit 870 (3), and 2 32 arithmetic unit 870 (4)).

256 연산부(870(1))는 8 비트 분할부(860)로부터 32 비트 중 최상위 8 비트를 전달받고, 이에 대한 연산값을 XOR 연산부(880)로 출력한다. 256 연산부(870(1))는 256 연산값 테이블(871(1)) 및 8비트 연산값 검색부(872(1))를 포함한다.The 56 operator 870 (1) receives the most significant 8 bits of the 32 bits from the 8 bit divider 860, and outputs an operation value thereof to the XOR operator 880. The 2 56 arithmetic unit 870 (1) includes a 2 56 arithmetic value table 871 (1) and an 8-bit arithmetic value search unit 872 (1).

256 연산값 테이블(871(1))은 (임의의 8비트 데이터 x 256)을 정해진 제너레이 터

Figure 112007073637557-PAT00056
로 이진 나눗셈한 256 가지의 순환잉여검사 값을 저장하고 있다. 2 56 Arithmetic value table 871 (1) is a generator that defines (arbitrary 8-bit data x 2 56 ).
Figure 112007073637557-PAT00056
We store 256 different cyclic redundancy test values divided by binary.

8비트 연산값 검색부(872(1))는 입력된 8 비트에 대한 순환잉여검사 값을 256 연산값 테이블(871(1))을 이용하여 검색하고, 검색된 순환잉여검사 값을 XOR 연산부(880)로 출력한다. The 8-bit arithmetic value search unit 872 (1) retrieves the cyclic redundancy check value for the input 8-bit using 2 56 arithmetic value table 871 (1), and retrieves the retrieved cyclic redundancy check value from the XOR operation unit ( 880).

248 연산부(870(2))는 8 비트 분할부(860)로부터 32 비트 중 두 번째 상위 8 비트를 전달받고, 이에 대한 연산값을 XOR 연산부(880)로 출력한다. 248 연산부(870(2))는 248 연산값 테이블(871(2)) 및 8비트 연산값 검색부(872(2))를 포함한다. 2 48 operator 870 (2) receives the second upper 8 bits of the 32 bits from the 8-bit divider 860, and outputs the operation value for this to the XOR operator 880. The 2 48 arithmetic unit 870 (2) includes a 2 48 arithmetic value table 871 (2) and an 8-bit arithmetic value searching unit 872 (2).

248 연산값 테이블(871(2))은 (임의의 8비트 데이터 x 248)을 정해진 제너레이터

Figure 112007073637557-PAT00057
로 이진 나눗셈한 256 가지의 순환잉여검사 값을 저장하고 있다. 2 48 Calculated Value Table 871 (2) is a generator that defines (arbitrary 8-bit data x 2 48 ).
Figure 112007073637557-PAT00057
We store 256 different cyclic redundancy test values divided by binary.

8비트 연산값 검색부(872(2))는 입력된 8 비트에 대한 순환잉여검사 값을 248 연산값 테이블(871(2))을 이용하여 검색하고, 검색된 순환잉여검사 값을 XOR 연산부(880)로 출력한다. The 8-bit arithmetic value search unit 872 (2) retrieves the cyclic redundancy check value for the input 8-bit using 2 48 arithmetic value table 871 (2), and retrieves the retrieved cyclic redundancy check value from the XOR operator ( 880).

240 연산부(870(3))는 8 비트 분할부(860)로부터 32 비트 중 세 번째 상위 8 비트를 전달받고, 이에 대한 연산값을 XOR 연산부(880)로 출력한다. 240 연산부(870(3))는 240 연산값 테이블(871(3)) 및 240 8비트 연산값 검색부(872(3))를 포 함한다. The 40 operation unit 870 (3) receives the third upper 8 bits of the 32 bits from the 8 bit division unit 860, and outputs an operation value thereof to the XOR operation unit 880. The 2 40 arithmetic unit 870 (3) includes a 2 40 arithmetic value table 871 (3) and 2 40 8-bit arithmetic value searching unit 872 (3).

240 연산값 테이블(871(3))은 (임의의 8비트 데이터 x 240)을 정해진 제너레이터

Figure 112007073637557-PAT00058
로 이진 나눗셈한 256 가지의 순환잉여검사 값을 저장하고 있다. 2 40 Arithmetic value table 871 (3) is a generator that defines (arbitrary 8-bit data x 2 40 )
Figure 112007073637557-PAT00058
We store 256 different cyclic redundancy test values divided by binary.

8비트 연산값 검색부(872(3))는 입력된 8 비트에 대한 순환잉여검사 값을 240 연산값 테이블(871(3))을 이용하여 검색하고, 검색된 순환잉여검사 값을 XOR 연산부(880)로 출력한다. The 8-bit arithmetic value search unit 872 (3) retrieves the cyclic redundancy check value for the input 8-bit using 2 40 arithmetic value table 871 (3), and retrieves the found cyclic redundancy check value. 880).

232 연산부(870(4))는 8 비트 분할부(860)로부터 32비트 중 최하위 8 비트를 전달받고, 이에 대한 순환잉여검사 값을 XOR 연산부(880)로 출력한다. 232 연산부(870(4))는 232 연산값 테이블(871(4)) 및 232 8비트 연산값 검색부(872(4))를 포함한다. 2 32 operator 870 (4) receives the lowest 8 bits of 32 bits from the 8-bit divider 860, and outputs the cyclic redundancy check value to the XOR operator 880. The 2 32 arithmetic unit 870 (4) includes a 2 32 arithmetic value table 871 (4) and a 2 32 8 bit arithmetic value searching unit 872 (4).

232 연산값 테이블(871(4))은 (임의의 8비트 데이터 x232)을 정해진 제너레이터

Figure 112007073637557-PAT00059
로 이진 나눗셈한 256 가지의 순환잉여검사 값이 저장되어 있다. 2 32 Arithmetic value table 871 (4) is a generator that defines (arbitrary 8-bit data x2 32 ).
Figure 112007073637557-PAT00059
256 cyclic redundancy check values stored in binary are stored.

8비트 연산값 검색부(872(4))는 입력된 8 비트에 대한 순환잉여검사 값을 232 연산값 테이블(871(4))을 이용하여 검색하고, 검색된 순환잉여검사 값을 XOR 연산부(880)로 출력한다. The 8-bit arithmetic value search unit 872 (4) retrieves the cyclic redundancy check value for the input 8-bit using 2 32 arithmetic value table 871 (4), and retrieves the retrieved cyclic redundancy check value from the XOR operation unit ( 880).

XOR 연산부(880)는 256 연산부(870(1)), 248 연산부(870(2)), 240 연산 부(870(3)) 및 232 연산부(870(4))로부터 각각 32 비트(4 바이트)의 순환잉여검사 값을 전달받고 XOR 연산을 수행한다. 이후, XOR 연산의 결과 값을 N 바이트 데이터 판단부(840)로 출력한다. The XOR operator 880 is 32 bits respectively from 2 56 operator 870 (1), 2 48 operator 870 (2), 2 40 operator 870 (3) and 2 32 operator 870 (4). Receive a cyclic redundancy check value of 4 bytes and perform XOR operation. Thereafter, the result value of the XOR operation is output to the N-byte data determination unit 840.

N 바이트 데이터 판단부(840)는 처리부(830)의 4 바이트 연산으로 N 바이트 데이터에 대한 연산이 종료하였는지 여부를 판단한다. N 바이트 데이터에 대한 연산이 완료된 경우, N 바이트 데이터 판단부(840)는 처리부(830)로부터 받은 XOR 연산값을 출력부(850)로 전달한다. 반면, N 바이트 데이터에 대한 연산이 완료되지 않은 경우, N 바이트 데이터 판단부(840)는 처리부(830)로부터 받은 XOR 연산 값을 4 바이트 분할부(820)의 연속성 유지부(821)로 전달한다.The N-byte data determination unit 840 determines whether the operation on the N-byte data is finished by the 4-byte operation of the processor 830. When the operation on the N byte data is completed, the N byte data determination unit 840 transfers the XOR operation value received from the processing unit 830 to the output unit 850. On the other hand, when the operation on the N byte data is not completed, the N byte data determination unit 840 transfers the XOR operation value received from the processing unit 830 to the continuity maintaining unit 821 of the 4 byte division unit 820. .

출력부(850)는 N 바이트 데이터 판단부(840)로부터 받은 연산값을 출력한다.The output unit 850 outputs an operation value received from the N-byte data determination unit 840.

도 6은 본 발명의 실시예에 따른 제로 블록 연산부에서 수행하는 동작의 개념도이고, 도 7은 본 발명의 실시예에 따른 제로 블록 연산부의 블록도이다.6 is a conceptual diagram of an operation performed by a zero block calculator according to an embodiment of the present invention, and FIG. 7 is a block diagram of a zero block calculator according to an embodiment of the present invention.

마지막 블록 연산부(600(n))를 제외한 블록 연산부(600(1)~600(n-1))는 할당 받은 N 바이트 데이터에 대한 순환잉여검사 값을 구한 후, 하위 제로 블록에 대한 연산을 수행한다. Block operation units 600 (1) to 600 (n-1), except for the last block operation unit 600 (n), calculate a cyclic redundancy check value for the allocated N-byte data and then operate on the lower zero block. do.

각 블록 연산부(600(1)~600(n-1))에는 각각 할당 받은 N 바이트 데이터의 위치에 따라 뒤에 따라오는 제로 블록의 길이가 고정되어 있다. 즉, N 바이트 데이터 연산 결과 값인 Cn(n=1,2,3,...) 4 바이트에 고정된 크기의 제로 블록이 따라오고, 이에 대한 순환잉여검사 값(Cn')도 고정되므로 제로 블록 연산값 테이블로 저장 해 놓을 수 있다. The lengths of the following zero blocks are fixed to each of the block computing units 600 (1) to 600 (n-1) according to the positions of the allocated N-byte data. That is, a zero block of fixed size is followed by four bytes of C n (n = 1,2,3, ...), the result of N byte data operation, and the cyclic redundancy check value (C n ') is also fixed. It can be stored as a zero block operation value table.

도 6을 참고하면, 가장 최상위 N 바이트에 대한 연산을 수행하는 블록 연산부(600(1))는 N 바이트 연산부(800(1))에서 할당 받은 N 바이트 연산값 C1을 구하고, N 바이트 연산값 C1 을 ((n-1) x N) 바이트의 제로 블록과 XOR 연산을 수행한다. Referring to FIG. 6, the block operation unit 600 (1) performing the operation on the most significant N bytes obtains the N byte operation value C 1 allocated by the N byte operation unit 800 (1), and calculates the N byte operation value. Performs an XOR operation on C 1 with a zero block of ((n-1) x N) bytes.

그러면, ((n-1) x N) 바이트는 상위의 4 바이트는 N 바이트 연산값 C1에 기초한 값을 가지며, 나머지 [((n-1) x N) - 4] 바이트는 0의 값을 가진다. Then, ((n-1) x N) bytes have the upper four bytes based on the N byte operation value C 1 , and the remaining [((n-1) x N)-4] bytes have a value of 0. Have

이때, 상위 4 바이트에 대한 제로 블록 연산값 테이블을 가지면 즉, (임의의 4 바이트 데이터

Figure 112007073637557-PAT00060
바이트의 제로 블록)에 대한 연산값 테이블을 가지면 메모리가 너무 커지므로(약 17GByte), 1 바이트씩 나눈 결과 (Cn1', Cn2', Cn3', Cn4')를 1 KByte 크기의 연산값 테이블 4 개에 저장한다. At this time, if it has a zero block operation value table for the high 4 bytes, that is (random 4 byte data
Figure 112007073637557-PAT00060
Having an operation table for zero blocks of bytes) makes the memory too large (approximately 17 GBytes), so the result of dividing by one byte (C n1 ', C n2 ', C n3 ', C n4 ') is 1 KByte in size. Stored in four value tables.

N 바이트 데이터의 순환잉여검사 값 Cn을 N 바이트 하위의 제로 블록 중 상위 4 바이트에 XOR 연산을 수행하고, XOR 연산값을 1 바이트씩 나누어, 상위부터 순차적으로 제로 블록 연산값 테이블에서 호출해 XOR 연산을 수행하면, 제로 블록 연산 값 Cn' (n=1,2,3,...n-1)이 구해진다.By performing an XOR operation of cyclic redundancy check values of the N-byte data C n to block high-order 4 bytes of the N bytes of sub-zero and, dividing the XOR operation value by one byte, called the zero block operation values table one by one from the upper XOR When the operation is performed, the zero block operation value C n '(n = 1, 2, 3, ... n-1) is obtained.

도 7은 본 발명의 실시예에 따른 제로 블록 연산부의 블록도이다.7 is a block diagram of a zero block calculator according to an exemplary embodiment of the present invention.

본 발명의 실시예에 따른 순환잉여검사 시스템은 마지막 블록 연산 부(600(n))를 제외한 블록 연산부(600(1)~600(n-1))는 제로 블록 연산부를 포함하며, 제로 블록 연산부는 제로 블록 연산값 테이블에 저장된 값을 제외하고는 동일하므로, 여기서는 첫 번째 제로 블록 연산부(900(1))만을 설명한다. In the cyclic redundancy inspection system according to the embodiment of the present invention, except for the last block calculator 600 (n), the block calculators 600 (1) to 600 (n-1) include a zero block calculator and a zero block calculator. Since is the same except for the value stored in the zero block operation value table, only the first zero block operation unit 900 (1) will be described here.

도 7을 참고하면, 제로 블록 연산부(900(1))는 입력부(910), 4 바이트 분할부(920), 첫 번째 바이트 제로 블록 연산부(930(1)), 두 번째 바이트 제로 블록 연산부(930(2)), 세 번째 바이트 제로 블록 연산부(930(3)), 네 번째 바이트 제로 블록 연산부(930(4)), XOR 연산부(940) 및 출력부(950)를 포함한다. Referring to FIG. 7, the zero block calculator 900 (1) includes an input unit 910, a four byte divider 920, a first byte zero block calculator 930 (1), and a second byte zero block calculator 930. (2)), a third byte zero block calculator 930 (3), a fourth byte zero block calculator 930 (4), an XOR operator 940, and an output unit 950.

입력부(910)는, N 바이트 연산부(800(1))의 연산값을 입력 받고, 할당 받은 N 바이트의 위치에 따라, 상위 4 바이트의 제로 블록과 XOR 연산을 수행한다. 이후, XOR 연산을 수행한 결과 값인 ((n-1) x N) 바이트를 4 바이트 분할부(920)로 출력한다.The input unit 910 receives an operation value of the N-byte operation unit 800 (1), and performs an XOR operation with the zero block of the upper 4 bytes according to the allocated N-byte position. Thereafter, the result of performing the XOR operation is output ((n-1) x N) bytes to the 4-byte divider 920.

4 바이트 분할부(920)는 입력 받은 ((n-1) x N) 바이트의 상위 4 바이트를 각각 1 바이트 단위로 분할하고, 각각의 1 바이트를 최상위 1 바이트부터 첫 번째 바이트 제로 블록 연산부(930(1)), 두 번째 바이트 제로 블록 연산부(930(2)), 세 번째 바이트 제로 블록 연산부(930(3)) 및 네 번째 바이트 제로 블록 연산부(930(4))로 순차적으로 전달한다. The 4 byte divider 920 divides the upper 4 bytes of the input ((n-1) x N) bytes into units of 1 byte, and divides each 1 byte into the first byte of the first byte zero block calculator 930. (1)), the second byte zero block calculator 930 (2), the third byte zero block calculator 930 (3), and the fourth byte zero block calculator 930 (4).

첫 번째 바이트 제로 블록 연산부(930(1))는 4 바이트 분할부(920)로부터 최상위 1 바이트를 전달 받고, 이에 대한 연산값을 XOR 연산부(940)로 출력한다. 첫 번째 바이트 제로 블록 연산부(930(1))는 제로 블록 연산값 테이블(931(1)) 및 연산값 검색부(932(1))를 포함한다.The first byte zero block operation unit 930 (1) receives the most significant 1 byte from the 4 byte division unit 920, and outputs an operation value thereof to the XOR operation unit 940. The first byte zero block operation unit 930 (1) includes a zero block operation value table 931 (1) and an operation value retrieval unit 932 (1).

제로 블록 연산값 테이블(931(1))은 임의의 1 바이트 데이터

Figure 112007073637557-PAT00061
바이트의 제로 블록을 정해진 제너레이터
Figure 112007073637557-PAT00062
로 나눗셈한 순환잉여검사 값을 저장하고 있다. The zero block arithmetic table 931 (1) is a random one-byte data
Figure 112007073637557-PAT00061
Generator defined for zero blocks of bytes
Figure 112007073637557-PAT00062
The cyclic redundancy test value divided by is stored.

연산값 검색부(932(1))는 입력된 1 바이트에 대한 순환잉여검사 값을 제로 블록 연산값 테이블(931(1))을 이용하여 검색하고, 검색된 순환잉여검사 값을 XOR 연산부(940)로 출력한다. The arithmetic value search unit 932 (1) retrieves the cyclic redundancy check value for the input 1 byte using the zero block arithmetic value table 931 (1), and retrieves the retrieved cyclic redundancy check value. Will output

두 번째 바이트 제로 블록 연산부(930(2))는 4 바이트 분할부(920)로부터 두 번째 상위 1 바이트를 전달 받고, 이에 대한 연산값을 XOR 연산부(940)로 출력한다. 두 번째 바이트 제로 블록 연산부(930(2))는 제로 블록 연산값 테이블(931(2)) 및 연산값 검색부(932(2))를 포함한다.The second byte zero block operation unit 930 (2) receives the second upper 1 byte from the 4 byte division unit 920, and outputs an operation value thereof to the XOR operation unit 940. The second byte zero block operation unit 930 (2) includes a zero block operation value table 931 (2) and an operation value retrieval unit 932 (2).

제로 블록 연산값 테이블(931(2))은 임의의 1 바이트 데이터

Figure 112007073637557-PAT00063
바이트의 제로 블록을 정해진 제너레이터
Figure 112007073637557-PAT00064
로 나눗셈한 순환잉여검사 값을 저장하고 있다. The zero block arithmetic value table 931 (2) is an arbitrary one-byte data.
Figure 112007073637557-PAT00063
Generator defined for zero blocks of bytes
Figure 112007073637557-PAT00064
The cyclic redundancy test value divided by is stored.

연산값 검색부(932(2))는 입력된 1 바이트에 대한 순환잉여검사 값을 제로 블록 연산값 테이블(931(2))을 이용하여 검색하고, 검색된 순환잉여검사 값을 XOR 연산부(940)로 출력한다. The arithmetic value search unit 932 (2) retrieves the cyclic redundancy check value for the input 1 byte using the zero block arithmetic value table 931 (2), and retrieves the retrieved cyclic redundancy check value. Will output

세 번째 바이트 제로 블록 연산부(930(3))는 4 바이트 분할부(920)로부터 세 번째 상위 1 바이트를 전달 받고, 이에 대한 연산값을 XOR 연산부(940)로 출력한다. 세 번째 바이트 제로 블록 연산부(930(3))는 제로 블록 연산값 테이블(931(3)) 및 연산값 검색부(932(3))를 포함한다.The third byte zero block operation unit 930 (3) receives the third upper 1 byte from the 4 byte division unit 920, and outputs an operation value thereof to the XOR operation unit 940. The third byte zero block operation unit 930 (3) includes a zero block operation value table 931 (3) and an operation value retrieval unit 932 (3).

제로 블록 연산값 테이블(931(3))은 임의의 1 바이트 데이터

Figure 112007073637557-PAT00065
바이트의 제로 블록을 정해진 제너레이터
Figure 112007073637557-PAT00066
로 나눗셈한 순환잉여검사 값을 저장하고 있다. The zero block arithmetic value table 931 (3) is a random one-byte data
Figure 112007073637557-PAT00065
Generator defined for zero blocks of bytes
Figure 112007073637557-PAT00066
The cyclic redundancy test value divided by is stored.

연산값 검색부(932(3))는 입력된 1 바이트에 대한 순환잉여검사 값을 제로 블록 연산값 테이블(931(3))을 이용하여 검색하고, 검색된 순환잉여검사 값을 XOR 연산부(940)로 출력한다. The arithmetic value search unit 932 (3) retrieves the cyclic redundancy check value for the input 1 byte using the zero block arithmetic value table 931 (3), and retrieves the retrieved cyclic redundancy check value. Will output

네 번째 바이트 제로 블록 연산부(930(4))는 4 바이트 분할부(920)로부터 네 번째 상위 1 바이트를 전달 받고, 이에 대한 연산값을 XOR 연산부(940)로 출력한다. 네 번째 바이트 제로 블록 연산부(930(4))는 제로 블록 연산값 테이블(931(4)) 및 연산값 검색부(932(4))를 포함한다.The fourth byte zero block operation unit 930 (4) receives the fourth upper 1 byte from the 4 byte division unit 920, and outputs an operation value thereof to the XOR operation unit 940. The fourth byte zero block operation unit 930 (4) includes a zero block operation value table 931 (4) and an operation value retrieval unit 932 (4).

제로 블록 연산값 테이블(931(4))은 임의의 1 바이트 데이터

Figure 112007073637557-PAT00067
바이트의 제로 블록을 정해진 제너레이터
Figure 112007073637557-PAT00068
로 나눗셈한 순환잉여검사 값을 저장하고 있다. The zero block arithmetic table 931 (4) is a random one-byte data
Figure 112007073637557-PAT00067
Generator defined for zero blocks of bytes
Figure 112007073637557-PAT00068
The cyclic redundancy test value divided by is stored.

연산값 검색부(932(4))는 입력된 1 바이트에 대한 순환잉여검사 값을 제로 블록 연산값 테이블(931(4))을 이용하여 검색하고, 검색된 순환잉여검사 값을 XOR 연산부(940)로 출력한다. The arithmetic value search unit 932 (4) retrieves the cyclic redundancy check value for the input 1 byte using the zero block arithmetic value table 931 (4), and retrieves the retrieved cyclic redundancy check value. Will output

XOR 연산부(940)는 첫 번째 바이트 제로 블록 연산부(930(1)), 두 번째 바이트 제로 블록 연산부(930(2)), 세 번째 바이트 제로 블록 연산부(930(3)) 및 네 번 째 바이트 제로 블록 연산부(930(4))로부터 각 4 바이트의 순환잉여검사 값을 전달 받고, XOR 연산을 수행한다. 이후, XOR 연산의 결과 값을 출력부(950)로 전달한다. The XOR operator 940 includes a first byte zero block operator 930 (1), a second byte zero block operator 930 (2), a third byte zero block operator 930 (3), and a fourth byte zero. Receive a cyclic redundancy check value of each 4 bytes from the block operator 930 (4), and performs an XOR operation. Thereafter, the result value of the XOR operation is transferred to the output unit 950.

출력부(950)는 XOR 연산부(940)로부터 받은 연산값을 출력한다. The output unit 950 outputs an operation value received from the XOR operator 940.

이제, 본 발명의 실시예에 따른 순환잉여검사 방법에 대해서 상세하게 설명한다. Now, the cyclic redundancy inspection method according to an embodiment of the present invention will be described in detail.

도 8은 본 발명의 실시예에 따른 순환잉여검사 방법을 개략적으로 나타낸 도면이다.8 is a view schematically showing a cyclic redundancy inspection method according to an embodiment of the present invention.

정보 데이터를 입력(S101) 받으면, 입력 받은 정보 데이터를 N 바이트로 분할(S102)한다. n 개의 블록 연산부에서 각각 N 바이트씩 연산을 수행하여, (n x N) 바이트에 대한 연산을 수행한다(S103). Upon receiving the information data (S101), the received information data is divided into N bytes (S102). The n block arithmetic units each perform N bytes, and perform operations on (n x N) bytes (S103).

이후, (n x N) 바이트에 대한 연산값이 도출되면, (n x N) 바이트 연산으로 정보 데이터에 대한 연산이 완료되었는지 여부를 판단한다(S104). (n x N) 바이트 연산으로 정보 데이터에 대한 연산이 완료된 경우는 도출된 연산값이 입력 받은 정보 데이터에 대한 순환잉여연산 값으로 결정된다(S104).Thereafter, when an operation value for (n x N) bytes is derived, it is determined whether the operation on the information data is completed using the (n x N) byte operation (S104). When the operation on the information data is completed by the (n x N) byte operation, the derived operation value is determined as the cyclic redundancy operation value for the received information data (S104).

반면, 정보 데이터에 대한 연산이 완료되지 않은 경우는, 다음에 연속된 정보 데이터와 연속성 유지를 위한 처리(S106)를 하고, 이후, 다시 (n x N) 바이트에 대한 연산을 수행한다. On the other hand, when the operation on the information data is not completed, the process (S106) for maintaining the continuity with the subsequent information data is performed next, and then the operation on (n x N) bytes is performed again.

도 9는 본 발명의 실시예에 따른 순환잉여검사 방법을 구체적으로 나타낸 도면이다.9 is a view showing in detail the cyclic redundancy inspection method according to an embodiment of the present invention.

정보 데이터를 입력(S201) 받으면, 입력 받은 정보 데이터를 N 바이트로 분할(S202)한다. 이후, n 개의 블록 연산부에서 각각 N 바이트씩 연산을 수행한다.Upon receiving the information data (S201), the received information data is divided into N bytes (S202). Subsequently, the n block arithmetic units each perform N bytes.

n 개의 블록 연산부는 자신에게 할당된 N 바이트 및 N 바이트 하위의 제로 블록에 대한 연산을 수행한다. 이때, 마지막 N 바이트를 할당 받은 블록 연산부는 제로 블록을 포함하지 않는다. The n block arithmetic units perform operations on N bytes allocated to them and zero blocks below the N bytes. In this case, the block calculator that is allocated the last N bytes does not include the zero block.

따라서, 입력 받은 정보 데이터를 N 바이트로 분할한 이후, 각 N 바이트가 할당된 N 바이트 중 마지막 N 바이트인지 여부를 판단한다(S203). 할당 받은 N 바이트가 마지막 N 바이트인 경우에는 N 바이트 연산만을 수행한다(S204). 그러나, 할당 받은 N 바이트가 마지막 N 바이트가 아닌 경우에는 N 바이트 연산을 수행(S205)한 후, 제로 블록에 대한 연산을 수행(S206)한다. 이후, 각 블록 연산부에서 수행된 결과값을 XOR 연산을 수행한다(S207). Therefore, after dividing the received information data into N bytes, it is determined whether each N byte is the last N byte among the allocated N bytes (S203). If the allocated N bytes are the last N bytes, only N byte operations are performed (S204). However, if the allocated N bytes are not the last N bytes, after performing an N byte operation (S205), the operation for the zero block is performed (S206). Thereafter, an XOR operation is performed on the result value performed by each block operation unit (S207).

XOR 연산값이 도출되면, 정보 데이터에 대한 연산이 완료되었는지 여부를 판단한다(S208). (n x N) 바이트 연산으로 정보 데이터에 대한 연산이 완료된 경우는 도출된 연산값이 입력 받은 정보 데이터에 대한 순환잉여연산 값으로 결정된다(S209).When the XOR operation value is derived, it is determined whether the operation on the information data is completed (S208). When the operation on the information data is completed by the (n x N) byte operation, the derived operation value is determined as a cyclic redundancy operation value for the received information data (S209).

반면, 정보 데이터에 대한 연산이 완료되지 않은 경우는, 다음에 연속된 4 바이트와 XOR 연산을 수행(S210)를 하고, N 바이트에 대한 연산을 수행한다. On the other hand, when the operation on the information data is not completed, the next XOR operation is performed with 4 consecutive bytes (S210), and the operation on N bytes is performed.

도 10은 본 발명의 실시예에 따른 N 바이트 연산 방법을 나타낸 도면이다.10 is a diagram illustrating a method of calculating an N byte according to an embodiment of the present invention.

N 바이트 연산부에서 자신에게 할당된 N 바이트를 입력 받으면, 입력 받은 N 바이트를 4 바이트 단위로 분할한다(S301). 이후, 4 바이트를 8 비트 단위로 분 할(S302)하고, 각 8 비트에 대한 연산값을 연산값 테이블을 이용하여 검색(S303)한다. 이후, 각 8 비트에 대한 연산값에 대해 XOR 연산을 수행한다(S304). When the N byte arithmetic unit receives the N bytes allocated to itself, the N bytes are divided into 4 byte units (S301). Thereafter, 4 bytes are divided into 8 bit units (S302), and an operation value for each 8 bit is searched using an operation value table (S303). Thereafter, an XOR operation is performed on an operation value for each 8 bit (S304).

XOR 연산값이 도출되면, N 바이트 데이터에 대한 연산이 완료되었는지 여부를 판단한다(S305). 4 바이트 연산으로 N 바이트 데이터에 대한 연산이 완료된 경우는 도출된 연산값이 입력 받은 N 바이트 데이터에 대한 연산 값으로 결정된다(S306).When the XOR operation value is derived, it is determined whether the operation on the N byte data is completed (S305). When the operation on the N byte data is completed by the 4-byte operation, the derived operation value is determined as the operation value on the received N byte data (S306).

반면, N 바이트 데이터에 대한 연산이 완료되지 않은 경우는, 다음에 연속된 4 바이트와 XOR 연산을 수행(S307)를 하고, 4 바이트에 대한 연산을 수행한다. On the other hand, if the operation on the N byte data is not completed, the next XOR operation is performed with 4 consecutive bytes (S307), and the operation for 4 bytes is performed.

도 11은 본 발명의 실시예에 따른 제로 블록 연산 방법을 나타낸 도면이다. 11 is a diagram illustrating a zero block calculation method according to an embodiment of the present invention.

N 바이트 연산부의 연산값을 입력(S401) 받는다. 이후, 입력 받은 연산값을 제로 블록의 상위 4 바이트와 XOR 연산을 수행한다.The operation value of the N-byte operation unit is input (S401). Thereafter, the input operation value is XORed with the upper 4 bytes of the zero block.

이후, 4 바이트의 XOR 연산값을 1 바이트 단위로 분할(S403)하고, 분할된 1 바이트에 대한 제로 블록 연산값을 검색(S404)한다. Thereafter, the XOR operation value of 4 bytes is divided by 1 byte unit (S403), and the zero block operation value for the divided 1 byte is searched (S404).

분할된 각각의 제로 블록 연산값에 대해 XOR 연산을 수행(S405)하여 제로 블록 연산값으로 결정(S406)한다. An XOR operation is performed on each divided zero block operation value in operation S405, and a determination is made as a zero block operation value in operation S406.

이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다. The embodiments of the present invention described above are not implemented only through the apparatus and the method, but may be implemented through a program for realizing a function corresponding to the configuration of the embodiment of the present invention or a recording medium on which the program is recorded. Implementation may be easily implemented by those skilled in the art from the description of the above-described embodiments.

이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.Although the embodiments of the present invention have been described in detail above, the scope of the present invention is not limited thereto, and various modifications and improvements of those skilled in the art using the basic concepts of the present invention defined in the following claims are also provided. It belongs to the scope of rights.

도 1은 본 발명의 실시예에 따른 순환잉여검사 시스템 및 방법의 개념도이다.1 is a conceptual diagram of a cyclic redundancy inspection system and method according to an embodiment of the present invention.

도 2는 본 발명의 실시예에 따른 순환잉여검사 시스템의 개략도이다.2 is a schematic diagram of a cyclic redundancy inspection system according to an embodiment of the present invention.

도 3은 본 발명의 실시예에 따른 순환잉여검사 시스템의 블록도이다.3 is a block diagram of a cyclic redundancy inspection system according to an embodiment of the present invention.

도 4는 본 발명의 실시예에 따른 N 바이트 연산부에서 수행하는 동작의 개념도이다.4 is a conceptual diagram of an operation performed by an N-byte calculation unit according to an embodiment of the present invention.

도 5는 본 발명의 실시예에 따른 N 바이트 연산부의 블록도이다. 5 is a block diagram of an N-byte calculation unit according to an embodiment of the present invention.

도 6은 본 발명의 실시예에 따른 제로 블록 연산부에서 수행하는 동작의 개념도이다.6 is a conceptual diagram of an operation performed by a zero block calculator according to an embodiment of the present invention.

도 7은 본 발명의 실시예에 따른 제로 블록 연산부의 블록도이다.7 is a block diagram of a zero block calculator according to an exemplary embodiment of the present invention.

도 8은 본 발명의 실시예에 따른 순환잉여검사 방법을 개략적으로 나타낸 도면이다.8 is a view schematically showing a cyclic redundancy inspection method according to an embodiment of the present invention.

도 9는 본 발명의 실시예에 따른 순환잉여검사 방법을 구체적으로 나타낸 도면이다.9 is a view showing in detail the cyclic redundancy inspection method according to an embodiment of the present invention.

도 10은 본 발명의 실시예에 따른 N 바이트 연산 방법을 나타낸 도면이다.10 is a diagram illustrating a method of calculating an N byte according to an embodiment of the present invention.

도 11은 본 발명의 실시예에 따른 제로 블록 연산 방법을 나타낸 도면이다. 11 is a diagram illustrating a zero block calculation method according to an embodiment of the present invention.

Claims (13)

정보 데이터를 N 바이트(N>0이상의 자연수) 단위로 분할하는 분할부; 및A divider for dividing the information data into units of N bytes (N > 0 or more natural numbers); And n 개(n>0이상의 자연수)의 블록 연산부 각각이 상기 분할된 N 바이트의 정보 데이터에 대한 연산을 수행하여, (n x N) 바이트의 정보 데이터에 대한 연산을 수행하는 처리부를 포함하는Each of the n block arithmetic units (n> 0 or more natural numbers) includes a processing unit performing an operation on the divided N bytes of information data and performing an operation on (n x N) bytes of information data. 순환잉여검사 시스템.Cyclic Surplus Inspection System. 제1항에 있어서,The method of claim 1, 상기 n 개의 블록 연산부 각각은, Each of the n block calculators, 상기 분할된 N 바이트의 정보 데이터에 대한 연산을 수행하는 N 바이트 연산부; 및An N-byte operation unit that performs an operation on the divided N-byte information data; And 상기 N 바이트 연산부의 결과값을 기초로 상기 분할된 N 바이트의 정보 데이터 하위 바이트는 0의 값을 가지는 제로 블록에 대한 연산을 수행하는 제로 블록 연산부를 포함하는The divided N-byte information data lower byte on the basis of a result value of the N-byte calculator includes a zero block calculator that performs an operation on a zero block having a value of 0. 순환잉여검사 시스템.Cyclic Surplus Inspection System. 제2항에 있어서,The method of claim 2, 상기 처리부는,The processing unit, 상기 n 개의 블록 연산부의 연산값에 대해 XOR 연산을 수행하는 XOR 연산부 를 포함하는And an XOR operation unit performing an XOR operation on the operation values of the n block operations units. 순환잉여검사 시스템.Cyclic Surplus Inspection System. 제3항에 있어서,The method of claim 3, 상기 처리부의 (n x N) 바이트 연산으로 상기 정보 데이터에 대한 연산이 완료했는지 여부를 판단하는 정보 데이터 판단부; 및An information data determination unit that determines whether the operation on the information data is completed by (n x N) byte operations of the processing unit; And 상기 처리부의 결과값과 상기 처리부에서 연산된 (n x N) 바이트의 하위 데이터와 XOR 연산을 수행하는 연속성 유지부를 더 포함하는Further comprising a continuity maintaining unit for performing an XOR operation with the lower data of the (n x N) bytes calculated in the processing unit and the result value of the processing unit 순환잉여검사 시스템.Cyclic Surplus Inspection System. 제4항에 있어서,The method of claim 4, wherein 상기 N 바이트 연산부는,The N byte calculation unit, 상기 할당 받은 N 바이트를 4 바이트 단위로 분할하는 4 바이트 분할부; 및A 4-byte divider for dividing the allocated N bytes in units of 4 bytes; And 상기 4 바이트에 대한 순환잉여검사 연산을 수행하는 4 바이트 처리부를 포함하는It includes a 4-byte processing unit for performing a cyclic redundancy check operation for the 4 bytes 순환잉여검사 시스템.Cyclic Surplus Inspection System. 제5항에 있어서,The method of claim 5, 상기 4 바이트 처리부는,The 4 byte processing unit, 상기 4 바이트 분할부로부터 받은 4 바이트를 8 비트 단위의 데이터로 분할 하는 8 비트 분할부; 및An 8-bit divider for dividing the 4 bytes received from the 4-byte divider into 8-bit data; And 분할된 8 비트 단위의 데이터의 순환잉여검사 연산값을 구하는 복수의 8 비트 단위 연산부를 포함하는A plurality of 8-bit unit operation unit for calculating the cyclic redundancy check operation value of the divided 8-bit unit data 순환잉여검사 시스템.Cyclic Surplus Inspection System. 제6항에 있어서,The method of claim 6, 상기 8 비트 분할부에서 상기 8 비트 단위 데이터의 순환잉여검사 연산값은 순환잉여검사 값이 저장되어 있는 연산값 테이블을 이용하여 구하는 것을 특징으로 하는 순환잉여검사 시스템.The cyclic redundancy check operation value of the 8-bit unit data in the 8-bit splitter is calculated using an operation value table in which the cyclic redundancy check value is stored. 제7항에 있어서,The method of claim 7, wherein 상기 4 바이트 처리부의 4 바이트 연산으로 상기 N 바이트 데이터에 대한 연산이 완료했는지 여부를 판단하는 N 바이트 데이터 판단부를 더 포함하는Further comprising an N byte data determination unit for determining whether the operation on the N byte data is completed by the four byte operation of the 4-byte processing unit 순환잉여검사 시스템.Cyclic Surplus Inspection System. 제8항에 있어서,The method of claim 8, 상기 제로 블록 연산부는,The zero block calculator, 상기 N 바이트 연산부의 연산 결과값을 기초로 상기 제로 블록의 상위 4 바이트와 XOR 연산을 수행하고, XOR 연산의 결과값의 상위 4 바이트를 1 바이트 단위로 분할하는 제로블록 4 바이트 분할부; A zero block 4 byte partition unit which performs an XOR operation with the upper 4 bytes of the zero block based on the operation result value of the N byte operation unit, and divides the upper 4 bytes of the result value of the XOR operation in units of 1 byte; 상기 제로블록 4 바이트 분할부에서 분할된 최상위 1 바이트에 대한 순환잉여검사 연산값을 구하는 첫 번째 바이트 제로 블록 연산부;A first byte zero block operation unit for calculating a cyclic redundancy check operation value for the most significant 1 byte divided by the zero block 4 byte division unit; 상기 제로블록 4 바이트 분할부에서 분할된 두 번째 상위 1 바이트에 대한 순환잉여검사 연산값을 구하는 두 번째 바이트 제로 블록 연산부;A second byte zero block operation unit for calculating a cyclic redundancy check operation value for the second upper 1 byte divided by the zero block 4 byte division unit; 상기 제로블록 4 바이트 분할부에서 분할된 세 번째 상위 1 바이트에 대한 순환잉여검사 연산값을 구하는 세 번째 바이트 제로 블록 연산부; 및 A third byte zero block operation unit for calculating a cyclic redundancy check operation value for the third upper 1 byte divided by the zero block 4 byte division unit; And 상기 제로블록 4 바이트 분할부에서 분할된 네 번째 상위 1 바이트에 대한 순환잉여검사 연산값을 구하는 네 번째 바이트 제로 블록 연산부를 포함하는 And a fourth byte zero block operation unit for calculating a cyclic redundancy check operation value for the fourth upper 1 byte divided by the zero block 4 byte division unit. 순환잉여검사 시스템. Cyclic Surplus Inspection System. 제9항에 있어서,The method of claim 9, 첫 번째 바이트 제로 블록 연산부, 두 번째 바이트 제로 블록 연산부, 세 번째 바이트 제로 블록 연산부 및 네 번째 바이트 제로 블록 연산부는 각각의 순환잉여검사 값이 저장되어 있는 연산값 테이블을 이용하여 구하는 것을 특징으로 하는 순환잉여검사 시스템. A first byte zero block operation unit, a second byte zero block operation unit, a third byte zero block operation unit, and a fourth byte zero block operation unit Surplus Inspection System. (a) 정보 데이터를 입력 받는 단계;(a) receiving information data; (b) 상기 정보 데이터를 N 바이트 단위로 분할하는 단계; 및(b) dividing the information data into units of N bytes; And (c) (n x N) 바이트에 대한 순환잉여연산 값을 구하는 단계를 포함하는(c) obtaining a cyclic redundancy value for (n x N) bytes. 순환잉여검사 방법. Cyclic surplus test method. 제11항에 있어서,The method of claim 11, 상기 (c) 단계는,In step (c), (i) 상기 (b) 단계에서 분할된 N 바이트의 정보 데이터에 대한 연산을 수행하는 단계;(i) performing an operation on N bytes of information data divided in step (b); (ii) 상기 (i) 단계의 연산값을 기초로 상기 분할된 N 바이트의 정보 데이터 하위 바이트는 0의 값을 가지는 제로 블록에 대한 연산을 수행하는 단계; 및 (ii) performing an operation on a zero block in which the divided N-byte information data lower byte has a value of 0 based on the operation value of step (i); And (iii) 상기 (ii) 단계의 연산값에 대해 XOR 연산을 수행하여 (n x N) 바이트에 대한 순환잉여연산 값을 구하는 단계를 포함하는 (iii) performing an XOR operation on the operation value of step (ii) to obtain a cyclic redundancy operation value for (n x N) bytes. 순환잉여검사 방법.Cyclic surplus test method. 제12항에 있어서,The method of claim 12, (d) 상기 (c) 단계의 (n x N) 바이트에 대한 연산으로 상기 정보 데이터에 대한 연산이 완료되었는지 여부를 판단하는 단계; 및(d) determining whether the operation on the information data is completed by operating on (n x N) bytes in the step (c); And (e) 상기 (d) 단계에서 상기 정보 데이터에 대한 연산이 완료되지 않았다고 판단된 경우, 상기 (n x N) 바이트에 연속된 정보 데이터와 연속성 유지를 위한 연산을 수행하는 단계를 포함하는 (e) if it is determined in step (d) that the operation on the information data has not been completed, performing the operation for maintaining the continuity of the information data consecutive to the (n x N) bytes; 순환잉여검사 방법.Cyclic surplus test method.
KR1020070103502A 2007-10-15 2007-10-15 Cyclic redundancy check system and method thereof KR100937031B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070103502A KR100937031B1 (en) 2007-10-15 2007-10-15 Cyclic redundancy check system and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070103502A KR100937031B1 (en) 2007-10-15 2007-10-15 Cyclic redundancy check system and method thereof

Publications (2)

Publication Number Publication Date
KR20090038155A true KR20090038155A (en) 2009-04-20
KR100937031B1 KR100937031B1 (en) 2010-01-15

Family

ID=40762446

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070103502A KR100937031B1 (en) 2007-10-15 2007-10-15 Cyclic redundancy check system and method thereof

Country Status (1)

Country Link
KR (1) KR100937031B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102136881A (en) * 2011-01-24 2011-07-27 华为技术有限公司 Cyclic redundancy check processing method and device
KR20150093060A (en) * 2014-02-06 2015-08-17 김정훈 Binary data compression and restoration method and apparatus

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3269415B2 (en) 1997-01-22 2002-03-25 日本電気株式会社 CRC operation circuit
US6560742B1 (en) 1999-12-09 2003-05-06 International Business Machines Corporation Parallel system and method for cyclic redundancy checking (CRC) generation
KR100433632B1 (en) * 2002-04-09 2004-05-31 한국전자통신연구원 Apparatus and method for calculating CRC in parallel
KR100913467B1 (en) * 2002-11-19 2009-08-25 엘지전자 주식회사 System And Method For Generating Parallel Cyclic Redundancy Codes

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102136881A (en) * 2011-01-24 2011-07-27 华为技术有限公司 Cyclic redundancy check processing method and device
KR20150093060A (en) * 2014-02-06 2015-08-17 김정훈 Binary data compression and restoration method and apparatus

Also Published As

Publication number Publication date
KR100937031B1 (en) 2010-01-15

Similar Documents

Publication Publication Date Title
US8959129B2 (en) Compression of floating-point data
JP5945291B2 (en) Parallel device for high speed and high compression LZ77 tokenization and Huffman encoding for deflate compression
US9235651B2 (en) Data retrieval apparatus, data storage method and data retrieval method
CN104008064B (en) The method and system compressed for multi-level store
US20200099958A1 (en) Efficient length limiting of compression codes
US9035809B2 (en) Optimizing compression engine throughput via run pre-processing
KR20030071327A (en) Improved huffman decoding method and apparatus thereof
US8868584B2 (en) Compression pattern matching
KR100937031B1 (en) Cyclic redundancy check system and method thereof
CN114817651A (en) Data storage method, data query method, device and equipment
US9287893B1 (en) ASIC block for high bandwidth LZ77 decompression
CN101361278B (en) Parity check bit generating circuit, counting circuit and counting method
US11275683B2 (en) Method, apparatus, device and computer-readable storage medium for storage management
WO2022247193A1 (en) Apparatus and method for data processing, chip, computer device, and medium
US8775776B2 (en) Hash table using hash table banks
CN110554886A (en) Data splitting structure, method and on-chip implementation thereof
EP3144817A1 (en) Method and apparatus for multiple accesses in memory and storage system
KR20000013760A (en) Multiple access computer address hashing method of lan switch using cyclic redundancy check and system therefor
CN113157695B (en) Data processing method and device, readable medium and electronic equipment
Rauschert et al. Very fast gzip compression by means of content addressable memories
US20240143172A1 (en) System and method for personal health monitor data compaction using multiple encoding algorithms
CN113535709B (en) Data processing method and device and electronic equipment
US20210232341A1 (en) Method for Updating Stored Information and Apparatus
US8381080B2 (en) Reducing a degree of a polynomial in a polynomial division calculation
US20150143058A1 (en) System, method, and computer program product for utilizing a data pointer table pre-fetcher

Legal Events

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

Payment date: 20130102

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20131231

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee