KR100578721B1 - XOR 논리를 이용한 n 비트 순환 중복 검사 생성 방법및 이를 이용한 병렬 순환 중복 검사 생성기 - Google Patents

XOR 논리를 이용한 n 비트 순환 중복 검사 생성 방법및 이를 이용한 병렬 순환 중복 검사 생성기 Download PDF

Info

Publication number
KR100578721B1
KR100578721B1 KR1020040104027A KR20040104027A KR100578721B1 KR 100578721 B1 KR100578721 B1 KR 100578721B1 KR 1020040104027 A KR1020040104027 A KR 1020040104027A KR 20040104027 A KR20040104027 A KR 20040104027A KR 100578721 B1 KR100578721 B1 KR 100578721B1
Authority
KR
South Korea
Prior art keywords
column
bit
crc
matrix
value
Prior art date
Application number
KR1020040104027A
Other languages
English (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 KR1020040104027A priority Critical patent/KR100578721B1/ko
Application granted granted Critical
Publication of KR100578721B1 publication Critical patent/KR100578721B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 XOR 논리를 이용한 n(n은 2 이상의 자연수) 비트 순환 중복 검사(CRC) 데이터 생성 방법으로서, (a) 1이상 n 이하의 값을 가지는 변수 i, j에 대하여, 종래 CRC 생성을 위한 선형 피드백 쉬프트 레지스터(LFSR)의 i번째 레지스터 Fi 값을 Xj(Xj는 입력 데이터의 j번째 비트인 Dj와 상기 CRC 데이터의 j번째 비트의 초기값 Cj의 XOR 논리 연산값임)의 XOR 연산값으로 표시하여, n×n 행렬
Figure 112004058218552-pat00001
를 gij는 상기 Fi가 Xj의 XOR 연산을 통하여 생성되는 경우 '1'이고 그렇지 않은 경우는 '0'으로 정의되도록 생성하는 단계와, (b) 행렬 G에 대해서 '1'의 개수가 가장 많은 열을 검색하여 이 열을 A열로 설정하는 단계와, (c) A열과 행렬 G의 나머지 다른 모든 열을 비교하여 그 중 A열과 공통으로 '1'을 포함하고 있는 같은 행의 개수가 가장 많은 열을 검색하여 이 열을 B열로 설정하는 단계와, (d) A열과 B열에서 같은 행에 공통으로 포함되어 있는 '1'을 A열 및 B 열 모두에서 '0'으로 변경하여 행렬 G를 다시 저장하는 단계와, (e) B열의 '1'의 개수가 0인지 검사하여 0이면 종료하고 0이 아니면 그렇지 않은 경우 B열의 '1'의 개수가 0이 될 때까지 단계 (b) 내지 단계 (d)를 반복하는 단계를 포함하는 XOR 논리를 이용한 n 비트 순환 중복 검사 데이터 생성 방법에 관한 것이다.
본 발명에 따르면, 입력 데이터와 CRC 내부 신호를 두 개 단위로 그룹화하여 각 플립플롭의 결과를 위한 XOR 게이트의 개수를 최소화하며 논리레벨을 줄여줌으로써 고속 데이터 시스템의 CRC 계산시 적은 면적으로 고속의 계산이 가능하도록 하고, 이로써 고속의 데이터 통신 시스템에서 수신 데이터 오류 검출 방법에 유용하게 사용될 수 있다.
CRC, 병렬, XOR 논리, 유사코드, 논리 레벨, 도달 시간, 셀 면적

Description

XOR 논리를 이용한 n 비트 순환 중복 검사 생성 방법 및 이를 이용한 병렬 순환 중복 검사 생성기{METHOD OF GENERATING N-BITS CYCLIC REDUNDANCY CHECK USING XOR LOGIC AND PARALLEL CYCLIC REDUNDANCY CHECK GENERATOR USING THEREOF}
도 1은 종래의 CRC 생성기의 예시적인 구성도.
도 2는 종래의 CRC 생성 알고리즘의 유사코드를 나타내는 도면.
도 3은 종래의 CRC 생성 알고리즘의 유사코드를 적용한 CRC 결과를 나타내는 도면.
도 4는 본 발명에 따른 XOR 논리를 이용한 n비트 순환 중복 검사 생성 방법의 흐름도.
도 5는 본 발명에 따른 XOR 논리를 이용한 n비트 순환 중복 검사 생성 방법을 위한 행렬의 예를 나타내는 도면.
도 6은 본 발명에 따른 순환 중복 검사 생성방법을 실제 단계별로 나타내는 도면.
도 7은 본 발명에 따른 순환 중복 검사 생성 방법에 있어서, 각 F[i]에 대한 Y, W의 결과를 도시하는 도면.
도 8은 본 발명에 따른 순환 중복 검사 생성 방법을 이용한 병렬 순환 중복 검사 생성기의 블록도.
<도면의 주요부분에 대한 부호의 설명>
110: 제1 XOR 논리 130: 제2 XOR 논리
150: CRC 레지스터
본 발명은 XOR 논리를 이용한 n비트 순환 중복 검사(cyclic redundancy check, 이하 "CRC"라 함) 생성 방법 및 이를 이용한 병렬 순환 중복 검사 생성기에 관한 것으로, 더욱 구체적으로는 CRC 처리 속도를 증진시키기 위해서 입력 데이터와 CRC 내부 신호를 두 개 단위로 그룹화하여 논리 레벨을 최소화하는 구조를 사용하여서 기존의 CRC 생성기에 비해 처리 속도가 향상되는 것인 XOR 논리를 이용한 n비트 순환 중복 검사 생성 방법 및 이를 이용한 병렬 순환 중복 검사 생성기에 관한 것이다.
CRC는 데이터 송수신 시스템에서 가장 많이 사용되는 오류 검출 방법이다. 예컨대, 한국전자통신연구원에 의해서 1994년 12월 13일자로 출원되고 1997년 10월 16일자로 등록된 "고속 트랜스포트 프로토콜 체크 코드 생성을 위한 병렬 순환 잉여감서 코드 생성수단"이라는 명칭의 특허공고 제0126591호는 이러한 CRC 데이터를 생성하는 수단에 대해서 상세히 개시하고 있다.
CRC에 대해서 좀 더 상세히 설명하면, 두개의 데이터 송신 및 수신 시스템 간에 미리 약속된 특정 수를 제수로 사용하여, 송신측 시스템에서는 보내려는 데이터를 그 수로 나누고, 나눈 나머지를 송신하는 데이터의 끝부분에 함께 실어 전송하면, 수신측 시스템에서는 수신된 데이터를 같은 수로 나누어 나머지를 비교하거나 나머지까지 포함한 데이터 전체를 나누어 나머지가 '0'이 되는지를 파악하여 데이터의 오류 유무를 판단하게 된다. 이 과정에서, 데이터를 나눈 나머지 자체가 CRC 코드가 되며, 어떤 특정 제수에 의한 나머지 값이므로 CRC 코드는 데이터 크기에 상관없이 항상 그 제수 이하의 수가 된다.
이러한 개념을 바탕으로, 현재의 데이터 통신 시스템에서는, 제수로써 표준화 되어 있는 몇 가지 다항식(polynomial)을 주로 사용하며, 이진 모듈로 연산을 수행함으로써 나온 결과를 CRC 코드로 사용한다.
따라서 직렬 데이터 송수신 시스템에서, XOR 게이트를 이용하여 이진 모듈로 연산을 수행 할 수 있으므로, 선형 피드백 쉬프트 레지스터(linear feedback shift register, 이하 "LFSR"이라 함)와 XOR 게이트를 이용하여 하드웨어로 구현 할 수 있다.
도 1은 종래의 CRC 생성기의 예시적인 구성도이다. 도 1에 도시된 CRC 생성기는 다항식 P(x) = x16 + x12 + x5 + 1(ITU_TSS 표준에 따름)에 대해서 LFSR을 이용하여 구현된 CRC 생성기의 일 예이다.
도시되듯이 복수의 LFSR(F1 내지 F16)에 의해서 쉬프트되는 데이터 값을 더하여 다항식 P(x) = x16 + x12 + x5 + 1에 대응되는 CRC를 생성하게 된다.
도 1에 도시된 바와 같은 직렬 CRC 생성은 시스템 속도 향상에 지장을 주게 된다. 따라서 직렬 데이터를 병렬로 변환 후, 한 클럭 사이클에 의해서 CRC 코드를 생성하려는 방안에 대해서 연구가 진행되었으며, 그 결과로 복수 회의 쉬프트와 XOR 연산 후에 각 플립플롭에 저장되도록 하던 종래의 직렬 CRC 생성 방식 대신에 병렬 데이터를 입력받고 병렬 데이터 입력을 XOR 조합 회로를 통해 한 사이클에 생성될 수 있는 CRC 생성 회로가 개발되었다.
도 2는 종래의 CRC 생성 알고리즘의 유사코드(pseudo code)를 나타내는 도면으로, n번의 쉬프트 후 각 레지스터의 결과를 생성하는 Xi의 조합을 이끌어 내기위한 알고리즘의 유사코드이다. 여기에 매번 루프를 실행 할 때마다 각 F에 저장되는 결과를, 계산된 숫자가 아닌 Xi로 저장하여 나타냄으로써 도 3과 같이 원하는 Xi의 조합을 구할 수 있다. 도 2를 참조로 하면 기본적인 병렬 CRC 회로의 구현은 다음과 같이 일반화 할 수 있다.
우선 병렬 데이터의 크기와 CRC 레지스터의 길이가 모두 양의 정수 n인, n-비트 CRC 생성기 구현을 위한 알고리즘을 설명하기 위하여, n 비트 LFSR에 대해서 i를 1 이상 n 이하인 양의 정수로, Fi를 LFSR의 i 번째 레지스터로, Ci를 쉬프트를 시작하기 이전에 Fi 에 저장되어 있는 초기값으로, Di를 i 번째 입력 데이터라 하고, 데이터는 최하위 비트인 D1부터 입력되고, 쉬프트는 도 1과 같이 번호가 낮은 레지스터 방향으로 진행된다고 가정한다.
이 경우 쉬프트를 수행하기 전의 레지스터의 초기값 Ci는 각 CRC 생성 방법에 따라 다르며 일괄적으로 초기값을 '1'로 전부 설정하거나 '0'으로 전부 설정하 거나 또는 '1'과 '0'이 교대로 반복되도록 설정할 수도 있을 것이다.
이러한 CRC 생성에 있어서 매 클럭마다 한 비트씩 쉬프트를 하여, 레지스터 Fi에는 쉬프트와 XOR 게이트에 의해 Ci와 Di 각각의 조합으로 이루어진 새로운 값이 저장된다.
예컨대 도 1에서 한번의 쉬프트를 수행한 후, F16은 (D1 xor C1), F11은 (D1 xor C1 xor C12), F4는 (D1 xor C1 xor C5), 그 밖에 다른 레지스터는 단순히 Fi+1의 값을 저장하게 된다. 이와 같은 방식으로 n번 쉬프트 후에 각각의 레지스터에 저장되는 값이 n비트 데이터에 대한 CRC 코드가 된다. 또한, Xi를 (Di xor Ci)라고 하면, n번 쉬프트 후, 레지스터의 결과 값이 모두 Xi만의 조합으로 이루어진다는 특징이 있다. 따라서 Xi하나가 2입력 XOR 게이트가 되고 Xi의 조합으로부터 한 클럭에 CRC 코드를 생성하는 병렬 CRC 회로를 구성할 수 있다.
도 3은 도 2의 유사코드를 적용한 CRC 결과를 나타내는 도면이다. 도 3에서는 다항식 P(x) = x16 + x12 + x5 + 1(ITU_TSS 표준에 따름)에 대해서 도 2의 유사코드를 적용한 결과를 도시한다. 도시되듯이, 레지스터 F1에는 X4 XOR X5 XOR X8 XOR X12 XOR X16의 연산값이 저장되며,마찬가지로 F16에는 X5 XOR X6 XOR X9 XOR X13의 연산값이 저장된다.
이러한 종래의 CRC 생성의 구현예로서는 예컨대 페이 등의 논문(T. B. Pei and C. Zukowski, "High-Speed Parallel CRC Circuits in VLSI," IEEE Trans.Commun., Vol. 40, no. 4, pp. 653-657, 1992)의 경우 8번 쉬프트 후의 결과 를 이용하여 8비트 병렬 데이터를 입력으로 하는 32 비트 CRC 회로가 있으며, 또한 캄포벨로 등의 논문(G. Campobello, G. Patane and M. Russo, "Parallel CRC Realization," IEEE Transactions on Computers, Vol. 52, pp. 63-71, Oct. 2003 Richard F. Hobson과 Keith L. Cheng)은 상기 페이 등의 논문의 결과를 바탕으로 CRC 값을 효과적으로 계산할 수 있는 일반화된 알고리즘을 제시하여 구현하였다.
이러한 종래의 병렬 CRC회로 구현 기술은 회로의 중복성을 피하거나 빠른 계산을 위한 레벨을 줄이는 시도가 되어 있지 않기 때문에 고속의 데이터 통신 시스템에 적용하기 쉽지 않다.
따라서 모든 CRC 회로에 적용할 수 있는 최적화된 CRC 회로를 구현하기 위한 방안의 필요성이 커지고 있다.
본 발명의 목적은 입력 데이터와 CRC 내부 신호를 두 개 단위로 그룹화하여 각 플립플롭의 결과를 위한 XOR 게이트의 개수를 최소화하며 논리레벨을 줄여줌으로써 고속 데이터 시스템의 CRC 계산시 적은 면적으로 고속의 계산이 가능한 것인 XOR 논리를 이용한 n비트 순환 중복 검사 생성 방법 및 이를 이용한 병렬 순환 중복 검사 생성기를 제공하는 데 있다.
상기 기술적 과제를 달성하기 위하여, 본 발명은 XOR 논리를 이용한 n(n은 2 이상의 자연수) 비트 순환 중복 검사(CRC) 데이터 생성 방법으로서, (a) 1이상 n 이하의 값을 가지는 변수 i, j에 대하여, 종래 CRC 생성을 위한 선형 피드백 쉬프 트 레지스터(LFSR)의 i번째 레지스터 Fi 값을 Xj(Xj는 입력 데이터의 j번째 비트인 Dj와 상기 CRC 데이터의 j번째 비트의 초기값 Cj의 XOR 논리 연산값임)의 XOR 연산값으로 표시하여, n×n 행렬
Figure 112004058218552-pat00002
를 gij는 상기 Fi가 Xj의 XOR 연산을 통하여 생성되는 경우 '1'이고 그렇지 않은 경우는 '0'으로 정의되도록 생성하는 단계와, (b) 행렬 G에 대해서 '1'의 개수가 가장 많은 열을 검색하여 이 열을 A열로 설정하는 단계와, (c) A열과 행렬 G의 나머지 다른 모든 열을 비교하여 그 중 A열과 공통으로 '1'을 포함하고 있는 같은 행의 개수가 가장 많은 열을 검색하여 이 열을 B열로 설정하는 단계와, (d) A열과 B열에서 같은 행에 공통으로 포함되어 있는 '1'을 A열 및 B 열 모두에서 '0'으로 변경하여 행렬 G를 다시 저장하는 단계와, (e) B열의 '1'의 개수가 0인지 검사하여 0이면 종료하고 0이 아니면 그렇지 않은 경우 B열의 '1'의 개수가 0이 될 때까지 단계 (b) 내지 단계 (d)를 반복하는 단계를 포함하는 XOR 논리를 이용한 n 비트 순환 중복 검사 데이터 생성 방법을 제공한다.
본 발명에 따른 XOR 논리를 이용한 n 비트 순환 중복 검사 데이터 생성 방법에 있어서, 상기 단계 (b)는 행렬 G에 대해서 '1'의 개수가 가장 많은 열이 2 이상인 경우 j값이 가장 낮은 열을 A열로 설정하는 단계를 포함하는 것이 바람직하다.
또한 본 발명에 따른 XOR 논리를 이용한 n 비트 순환 중복 검사 데이터 생성 방법에 있어서, 상기 단계 (c)는 A열과 공통으로 '1'을 포함하고 있는 같은 행의 개수가 가장 많은 열이 2 이상인 경우 j값이 가장 낮은 열을 B열로 설정하는 단계를 포함하는 것이 바람직하다.
또한 본 발명에 따른 XOR 논리를 이용한 n 비트 순환 중복 검사 데이터 생성 방법에 있어서, 상기 행렬 G는 ITU TSS 표준에 따라 다항식 P(x) = x16 + x12 + x 5 + 1을 사용하여 생성되고, n=16인 것이 바람직하다.
또한 본 발명에 따른 XOR 논리를 이용한 n 비트 순환 중복 검사 데이터 생성 방법에 있어서, 상기 행렬 G는 HDLC 표준에 따라 다항식 P(X)=X16+X15+X2+1을 사용하여 생성되고, n=16인 것이 바람직하다.
또한 본 발명에 따른 XOR 논리를 이용한 n 비트 순환 중복 검사 데이터 생성 방법에 있어서, 상기 행렬 G는 이더넷 표준에 따라 다항식 P(X)=X32+X26+X23+X22+X16+X12+X11 +X10+X9+X7+X5+X4+X2+X1 +1을 사용하여 생성되고, n=32인 것이 바람직하다.
또한 본 발명은 XOR 논리를 이용한 n(n은 2 이상의 자연수) 비트 병렬 순환 중복 검사(CRC) 생성기로서, 입력되는 데이터와 상기 CRC 생성기에 저장된 n 비트 데이터의 초기값을 비트별로 각각 XOR 연산하여 n비트의 X값을 생성하고 상기 n비트의 X값 중에서 CRC 데이터의 i(i는 1이상 n이하의 정수)번째 비트값의 생성을 위해서 공통으로 XOR 연산되는 값들을 그룹화하여 m(1이상 n 이하의 정수) 비트 데이터인 Y로 설정하고 공통되지 않은 값을 k(1이상 n이하의 정수) 비트 데이터인 W로 설정하는 제1 XOR 논리와, 상기 제1 XOR 논리의 출력값인 Y와 W를 각 표준에 따른 다항식에 의해서 생성되는 CRC 논리 연산 방법에 따라 미리 정해진 방식으로 비트별로 XOR 연산하여 n비트 CRC 데이터를 생성하는 제2 XOR 논리와, 상기 생성된 n비트 CRC 데이터를 저장하며 인에이블 신호 및 클럭에 따라서 저장된 CRC 데이터를 출력하는 CRC 레지스터를 포함하는 XOR 논리를 이용한 n 비트 병렬 순환 중복 검사 생성기를 제공한다.
본 발명에 따른 XOR 논리를 이용한 n 비트 병렬 순환 중복 검사 생성기에 있어서, 상기 표준에 따른 다항식은, ITU TSS 표준에 따른 다항식 P(x) = x16 + x12 + x5 + 1이고, n=16인 것이 바람직하다.
또한 본 발명에 따른 XOR 논리를 이용한 n 비트 병렬 순환 중복 검사 생성기에 있어서, 상기 표준에 따른 다항식은, HDLC 표준에 따른 다항식 P(X)=X16+X15+X 2+1이고, n=16인 것이 바람직하다.
또한 본 발명에 따른 XOR 논리를 이용한 n 비트 병렬 순환 중복 검사 생성기에 있어서, 상기 표준에 따른 다항식은, 이더넷 표준에 따른 다항식 P(X)=X32+X26+X23+X22+X16+X12+X11 +X10+X9+X7+X5+X4+X2+X1 +1이고, n=32인 것이 바람직하다.
또한 본 발명에 따른 XOR 논리를 이용한 n 비트 병렬 순환 중복 검사 생성기에 있어서, 상기 제1 XOR 논리는, (a) 1이상 n 이하의 값을 가지는 변수 i, j에 대하여, 종래 CRC 생성을 위한 선형 피드백 쉬프트 레지스터(LFSR)의 i번째 레지스터 Fi 값을 Xj(Xj는 입력 데이터의 j번째 비트인 Dj와 상기 CRC 데이터의 j번째 비트의 초기값 Cj의 XOR 논리 연산값임)의 XOR 연산값으로 표시하여, n×n 행렬
Figure 112004058218552-pat00003
를 gij는 상기 Fi가 Xj의 XOR 연산을 통하여 생성되는 경우 '1'이고 그렇지 않은 경우는 '0'으로 정의되도록 생성하는 수단과,
(b) 행렬 G에 대해서 '1'의 개수가 가장 많은 열을 검색하여 이 열을 A열로 설정하는 수단과, (c) A열과 행렬 G의 나머지 다른 모든 열을 비교하여 그 중 A열과 공통으로 '1'을 포함하고 있는 같은 행의 개수가 가장 많은 열을 검색하여 이 열을 B열로 설정하는 수단과, (d) A열과 B열에서 같은 행에 공통으로 포함되어 있는 '1'을 A열 및 B 열 모두에서 '0'으로 변경하여 행렬 G를 다시 저장하는 수단과, (e) B열의 '1'의 개수가 0인지 검사하여 0이면 종료하고 그렇지 않은 경우 B열의 '1'의 개수가 0이 될 때까지 수단 (b) 내지 수단 (d)를 반복하는 수단을 통하여 Y 및 W를 생성하는 것이 바람직하다.
또한 본 발명에 따른 XOR 논리를 이용한 n 비트 병렬 순환 중복 검사 생성기에 있어서, 상기 수단 (b)는 행렬 G에 대해서 '1'의 개수가 가장 많은 열이 2 이상인 경우 j값이 가장 낮은 열을 A열로 설정하는 수단을 포함하는 것이 바람직하다.
또한 본 발명에 따른 XOR 논리를 이용한 n 비트 병렬 순환 중복 검사 생성기 에 있어서, 상기 수단 (c)는 A열과 공통으로 '1'을 포함하고 있는 같은 행의 개수가 가장 많은 열이 2 이상인 경우 j값이 가장 낮은 열을 B열로 설정하는 수단을 포함하는 것이 바람직하다.
또한 본 발명은 (a) 1이상 n 이하의 값을 가지는 변수 i, j에 대하여, 종래 CRC 생성을 위한 선형 피드백 쉬프트 레지스터(LFSR)의 i번째 레지스터 Fi 값을 Xj(Xj는 입력 데이터의 j번째 비트인 Dj와 상기 CRC 데이터의 j번째 비트의 초기값 Cj의 XOR 논리 연산값임)의 XOR 연산값으로 표시하여, n×n 행렬 (n은 2 이상의 자연수)
Figure 112004058218552-pat00004
를 gij는 상기 Fi가 Xj의 XOR 연산을 통하여 생성되는 경우 '1'이고 그렇지 않은 경우는 '0'으로 정의되도록 생성하는 기능 블록과, (b) 행렬 G에 대해서 '1'의 개수가 가장 많은 열을 검색하여 이 열을 A열로 설정하는 기능 블록과, (c) A열과 행렬 G의 나머지 다른 모든 열을 비교하여 그 중 A열과 공통으로 '1'을 포함하고 있는 같은 행의 개수가 가장 많은 열을 검색하여 이 열을 B열로 설정하는 기능 블록과, (d) A열과 B열에서 같은 행에 공통으로 포함되어 있는 '1'을 A열 및 B 열 모두에서 '0'으로 변경하여 행렬 G를 다시 저장하는 기능 블록과, (e) B열의 '1'의 개수가 0인지 검사하여 0이면 종료하고 그렇지 않은 경우 B열의 '1'의 개수가 0이 될 때까지 기능 블록 (b) 내지 기능 블록 (d)를 반복하는 기능 블록을 포함하는 프로그램을 기록한 컴퓨터로 판독할 수 있는 기록매체를 제공한다.
이하, 본 발명의 XOR 논리를 이용한 n비트 순환 중복 검사 생성 방법 및 이를 이용한 병렬 순환 중복 검사 생성기를 도면을 참조로 하여 보다 구체적으로 설명한다.
도 4는 본 발명에 따른 XOR 논리를 이용한 n비트 순환 중복 검사 생성 방법의 흐름도이다.
CRC 생성에 있어서 단지 논리 레벨만을 줄이고자 한다면, 다중 입력 게이트를 사용함으로써 구현이 가능하다. 그러나 FPGA 구현 및 일반적인 표준 셀 라이브러리의 논리 게이트의 입력 수가 제한적이라는 점을 고려해 볼 때 CRC 생성 알고리즘에 사용되는 XOR 게이트의 최대 입력수는 2로 제한하는 것이 바람직하다.
우선 1이상 n 이하의 정수 값을 가지는 변수 i, j에 대하여, 종래 CRC 생성을 위한 선형 피드백 쉬프트 레지스터(LFSR)의 i번째 레지스터 Fi 값을 Xj(Xj는 입력 데이터의 j번째 비트인 Dj와 상기 CRC 데이터의 j번째 비트의 초기값 Cj의 XOR 논리 연산값임)의 XOR 연산값으로 표시하고 이를 행렬 G로 변환한다(S110).
수학식 1은 행렬 G의 구성을 나타낸다.
Figure 112004058218552-pat00005
이 행렬에서 상기 gij는 상기 Fi가 Xj의 XOR 연산을 통하여 생성되는 경우 '1'이고 그렇지 않은 경우는 '0'으로 정의된다. 즉 n=16이고, F1이 X1 XOR X2 XOR X5 인 경우이면, g1,1, g1,2, g1,5는 '1'로, 기타 g1,3, g 1,4, g1,6 내지 g1,15는 '0'으로 정의될 것이다.
이러한 gij는 각 표준에 따라 CRC 생성을 위해서 사용되는 다항식에 따라서 달라진다.
표 1은 각 표준에 대해서 CRC 생성을 위한 다항식을 나타낸 것이다.
CRC-16(ITU-TSS) P(X)=X16+X12+X+5+1
CRC-16(HDLC) P(X)=X16+X15+X2+1
CRC-32(Ethernet) P(X)=X32+X26+X23+X22+X16+X12+X11+X10+X9+X7+X5+X4+X2+X1+1
도 5는 표 1의 다항식 중에서 다항식 P(x) = x16 + x12 + x5 + 1(ITU_TSS)을 기준으로 n×n행렬 G로 변환한 예를 도시한다. 이러한 행렬 G를 이용하여 F와 X의 관계를 바탕으로 임계 경로를 최소화하면서 최대한 많은 게이트를 공유하도록 구성할 수 있다.
이후 행렬 G에 대해서 '1'의 개수가 가장 많은 열을 검색하고(S120) 이 열을 A열이라고 한다. 이 단계에서 '1'의 개수가 가장 많은 열이 두개 이상이라면, 그 중 j가 낮은 열을 A열로서 결정하게 된다.
이후 A열과 나머지 다른 모든 열을 비교하여 그 중 A열과 공통으로 '1'을 포함하고 있는 같은 행의 개수가 가장 많은 열을 검색한 후(S130) 이 열을 B열이라고 한다. 이 단계에서 A열과 공통으로 '1'을 포함하고 있는 같은 행의 개수가 가장 많은 열이 두개 이상이라면, 단계 S120에서와 마찬가지로 그 중 j가 낮은 열을 B열로서 결정하게 된다.
이후 A열과 B열에서 같은 행에 공통으로 포함되어 있는 '1'을 A열, B 열 모두에서 삭제한다(S140). 삭제후 '1'의 개수가 줄어든 새로운 열을 각각 A* 및 B*로 하자.
이후 G 행렬에서 A열과 B열을 각각 A* 와 B*로 교체하고 열이 교체된 새로운 행렬을 G 행렬로서 다시 저장한다(S150).
이후 갱신된 G 행렬에 대해서 상기 단계들(S120 내지 S150)을 반복하여(S160), B열의 1의 개수가 0이 되도록 한다.
도 6은 본 발명에 따른 병렬 순환 중복 검사 생성방법을 실제 단계별로 나타낸 도면이다.
도시되듯이 다항식 P(x) = x16 + x12 + x5 + 1(ITU_TSS)을 기준으로 n×n행렬 G를 생성한 후, 우선 '1'의 개수가 가장 많은 열을 검색한다. 도시되듯이 '1'의 개 수가 가장 많은 열은 제1열, 제2열, 제3열, 제4열, 제5열, 제6열, 제7열 및 제8열의 8개의 열이 모두 '1'의 개수가 8개로서 동일하므로, 이 중에서 j값이 가장 낮은 제1열을 A열로서 설정한다.
이후 A열과 공통으로 '1'을 포함하고 있는 같은 행의 수가 가장 많은 열을 검색한다. 도시되듯이 제2열, 제5열, 제8열 및 제9열이 모두 A열과 공통으로 '1'을 포함하는 개수가 4개이며, 이중에서 j값이 가장 낮은 제2열을 B열로서 설정한다.
이 때 A열과 B열 모두 '1'인 공통의 행을 Y[j]라 정의 할 수 있다. 예컨대 도 6에서는 공통항 Y[1] = X[1] XOR X[2]를 얻을 수 있으며, 각 F[4], F[8], F[9], F[12]가 Y[1]을 포함하게 된다.
이후 A열과 B열에서 '1'이 공통되는 부분을 '0'으로 대체하여 G 행렬을 다시 저장하여 갱신하고, 갱신된 G 행렬에 대해서 다시 상기 단계를 반복 수행하여 Y[j] 항을 생성하게 된다. 이러한 반복 수행은 B열의 '1'의 개수가 0이 될 때까지 반복된다. 이러한 반복 수행을 통하여 m 비트(m은 1이상 n이하의 정수)의 데이터인 Y를 구할 수 있으며, 삭제되지 않은 '1'에 대응되는 X값을 k(k는 1이상 n이하의 정수)비트의 데이터 W로 정의한다.
이러한 방식으로 Y[j] 항을 찾게 되면 회로의 중복을 최소화하면서 게이트 레벨을 동시에 줄일 수 있다.
도 7은 도 3의 결과에 대하여 본 발명에 따른 순환 중복 검사 생성 방법을 적용한 후 각 F[i]에 대해서 Y[m], W[k]의 결과를 보여준다.
도시되듯이 종래의 레지스터 Fi에 저장되는 값들은 이제 Y와 W를 이용하여 표현될 수 있으며, 종래의 CRC 생성 방법이 Fi에 저장된 X값들을 기초로 CRC를 생성하는 데 비해서 본 발명에 따른 순환 중복 검사 생성 방법은 X값들의 XOR 연산값인 Y와, G 행렬에서 삭제되지 못한 X값인 W에 의해서 생성되도록 단순화할 수 있다.
도 8은 본 발명에 따른 순환 중복 검사 생성 방법을 이용한 병렬 순환 중복 검사 생성기의 블록도이다.
일반적으로 완전 주문형 (Full-Custom) 방식으로 설계하지 않는 한, 게이트의 선택 및 논리 레벨은 합성 툴 및 라이브러리에 의존하여야 한다. 따라서, 논리 레벨을 줄이기 위하여 도 8에 도시된 구조와 같이 설계할 수 있다.
도시되듯이 본 발명에 따른 병렬 순환 중복 검사 생성기는, 제1 XOR 논리(110)와 제2 XOR 논리(130) 및 CRC 레지스터(150)를 포함한다.
제1 XOR 논리(110)는 입력되는 데이터(Data_In)와 상기 CRC 생성기에 저장된 n비트 데이터의 초기값을 비트별로 각각 XOR 연산하여 n비트의 X값을 생성하고 상기 n비트의 X값 중에서 CRC 데이터의 i(i는 1이상 n이하의 정수)번째 비트값의 생성을 위해서 공통으로 XOR 연산되는 값들을 그룹화하여 m(1이상 n 이하의 정수)비트 데이터인 Y로 설정하고 공통되지 않은 값을 k(1이상 n이하의 정수) 비트 데이터인 W로 설정한다.
즉 본 발명에 따른 순환 중복 검사 생성 방법을 통하여 Y 및 W를 구하게 된다.
제2 XOR 논리(130)는 상기 Y 및 W 데이터를 입력받아 XOR 연산을 통하여 n 비트 CRC 데이터 Z를 생성한다.
CRC 레지스터(150)는 상기 CRC 데이터 값인 Z를 저장하며, 인에이블 신호 및 클럭에 의해서 저장된 CRC 값을 출력한다.
종래의 CRC 생성기에서는 Fi에 저장된 X값들을 기초로 CRC를 생성하는 데 비해서 본 발명에 따른 병렬 순환 중복 검사 생성기는 X값들의 XOR 연산값인 Y와, G 행렬에서 삭제되지 못한 X값인 W에 의해서 생성되도록 단순화할 수 있어서, 셀 면적이나 도달 시간 등의 동작 속도를 개선시킬 수 있다.
표 2는 본 발명에 따른 순환 중복 검사 생성 방법의 성능 평가를 비교한 것으로서, 표 1에 기재된 세 가지 다항식을 이용하였으며, 어떤 알고리즘도 적용하지 않고 그대로 합성한 결과("Raw"로 표시됨), 널리 사용되고 있는 로직 최적화 툴인 "SIS"를 이용한 합성한 결과("SIS"로 표시됨), 그리고 가장 최근 FPGA에서 뛰어난 성능을 보인 논문인 상기 캄포벨로 등의 논문의 결과("Campabello"로 표시됨)와 본 발명에 따른 순환 중복 검사 생성 방법에 의한 알고리즘과 구조로 설계한 결과("HPC"로 표시됨)를 비교한 것이다. 비교시 Verilog HDL을 이용하여 코딩을 하고, Sinplicity의 "Synplify Pro 7.0"을 사용하여 FPGA 합성을 하였다. FPGA는, "Synplify Pro 7.0"이 상기 캄포벨로 등의 논문에서 사용한 LUT (Look-Up Table)방식의 Altera FPGA를 지원하지 않아서, LUT 방식을 사용하는 FPGA중 Xilinx Virtex2 XC2V40을 선택하여 비교를 수행하였다.
Xilinx Virtex2 Xc2V40 Altera Flex6000 EPF6016
LUT 도달시간(ns) LC 도달시간(ns)
CRC-16 (ITU-TSS) RAW 38 3.861 40 9.2
SIS 38 4.688 41 9.2
Campobello 31 4.774 28 10.9
HPC 37 3.703 41 7.5
CRC-16 (HDLC) RAW 46 4.403 47 10.9
SIS 33 4.532 34 10.9
Campobello 24 4.562 33 11.5
HPC 32 3.290 34 9.4
CRC-32 (Ethernet) RAW 185 5.768 204 15.6
SIS 160 5.468 179 16.5
Campobello 175 5.067 172 13.6
HPC 175 3.650 187 13.1
표 2에서 알 수 있듯이, 두개의 16 비트 CRC 회로[CRC-16(ITU-TSS) 및 CRC-16(HDLC)]에서는, "Campabello"의 경우 "Raw" 또는 "SIS"에 비하여 LUT수를 많이 줄여준 반면 도달 시간은 오히려 크게 나왔으며, 본 발명에 따른 "HPC"는 "Raw" 또는 "SIS"에 비하여 LUT를 크게 줄여주지는 못하지만 도달 시간은 감소하였다.
또한 모든 회로에서 "SIS"와 "HPC"가 "Raw"에 비해 셀 면적과 속도 면에 있어서 모두 월등히 나아짐을 보여주고 있다. "SIS"는 다중 레벨 로직 최적화 툴로써, 공유되지 않고 남은 X들이 W로 바이패스 되지 않고, Y와의 XOR로 또 하나의 Y 출력을 만들게 되어, 셀 수 및 논리 레벨이 증가하는 결과를 초래하기 때문에, 그러한 문제점을 해결한 "HPC"의 성능이 더 좋게 나온 것으로 분석된다.
비록 본원 발명이 구성이 예시적으로 설명되었지만 이는 단지 본 발명을 예시하기 위한 것이며, 본 발명의 보호 범위가 이들 예시에 의해 제한되는 것은 아니며, 본원 발명의 보호 범위는 청구범위의 기재를 통하여 정하여진다.
이상 설명한 바와 같이, 본 발명에 따르면 입력 데이터와 CRC 내부 신호를 두 개 단위로 그룹화하여 각 플립플롭의 결과를 위한 XOR 게이트의 개수를 최소화하며 논리레벨을 줄여줌으로써 고속 데이터 시스템의 CRC 계산시 적은 면적으로 고속의 계산이 가능하도록 함으로써 고속의 데이터 통신 시스템에서 수신 데이터 오류 검출 방법에 유용하게 사용될 수 있다.

Claims (14)

  1. XOR 논리를 이용한 n(n은 2 이상의 자연수) 비트 순환 중복 검사(CRC) 데이터 생성 방법으로서,
    (a) 1이상 n 이하의 값을 가지는 변수 i, j에 대하여, 종래 CRC 생성을 위한 선형 피드백 쉬프트 레지스터(LFSR)의 i번째 레지스터 Fi 값을 Xj(Xj는 입력 데이터의 j번째 비트인 Dj와 상기 CRC 데이터의 j번째 비트의 초기값 Cj의 XOR 논리 연산값임)의 XOR 연산값으로 표시하여,
    n×n 행렬
    Figure 112004058218552-pat00006
    를 gij는 상기 Fi가 Xj의 XOR 연산을 통하여 생성되는 경우 '1'이고 그렇지 않은 경우는 '0'으로 정의되도록 생성하는 단계와,
    (b) 행렬 G에 대해서 '1'의 개수가 가장 많은 열을 검색하여 이 열을 A열로 설정하는 단계와,
    (c) A열과 행렬 G의 나머지 다른 모든 열을 비교하여 그 중 A열과 공통으로 '1'을 포함하고 있는 같은 행의 개수가 가장 많은 열을 검색하여 이 열을 B열로 설정하는 단계와,
    (d) A열과 B열에서 같은 행에 공통으로 포함되어 있는 '1'을 A열 및 B 열 모두에서 '0'으로 변경하여 행렬 G를 다시 저장하는 단계와,
    (e) B열의 '1'의 개수가 0인지 검사하여 0이면 종료하고 0이 아니면 그렇지 않은 경우 B열의 '1'의 개수가 0이 될 때까지 단계 (b) 내지 단계 (d)를 반복하는 단계
    를 포함하는 XOR 논리를 이용한 n 비트 순환 중복 검사 데이터 생성 방법.
  2. 제1항에 있어서,
    상기 단계 (b)는 행렬 G에 대해서 '1'의 개수가 가장 많은 열이 2 이상인 경우 j값이 가장 낮은 열을 A열로 설정하는 단계를 포함하는 것인 XOR 논리를 이용한 n 비트 순환 중복 검사 데이터 생성 방법
  3. 제1항에 있어서,
    상기 단계 (c)는 A열과 공통으로 '1'을 포함하고 있는 같은 행의 개수가 가장 많은 열이 2 이상인 경우 j값이 가장 낮은 열을 B열로 설정하는 단계를 포함하는 것인 XOR 논리를 이용한 n 비트 순환 중복 검사 데이터 생성 방법.
  4. 제1항에 있어서,
    상기 행렬 G는 ITU TSS 표준에 따라 다항식 P(x) = x16 + x12 + x5 + 1을 사용 하여 생성되고, n=16인 것인 XOR 논리를 이용한 n 비트 순환 중복 검사 데이터 생성 방법.
  5. 제1항에 있어서,
    상기 행렬 G는 HDLC 표준에 따라 다항식 P(X)=X16+X15+X2+1을 사용하여 생성되고, n=16인 것인 XOR 논리를 이용한 n 비트 순환 중복 검사 데이터 생성 방법.
  6. 제1항에 있어서,
    상기 행렬 G는 이더넷 표준에 따라 다항식 P(X)=X32+X26+X23+X22+X16+X12+X11 +X10+X9+X7+X5+X4+X2+X1 +1을 사용하여 생성되고, n=32인 것인 XOR 논리를 이용한 n 비트 순환 중복 검사 데이터 생성 방법.
  7. XOR 논리를 이용한 n(n은 2 이상의 자연수) 비트 병렬 순환 중복 검사(CRC) 생성기로서,
    입력되는 데이터와 상기 CRC 생성기에 저장된 n 비트 데이터의 초기값을 비트별로 각각 XOR 연산하여 n비트의 X값을 생성하고 상기 n비트의 X값 중에서 CRC 데이터의 i(i는 1이상 n이하의 정수)번째 비트값의 생성을 위해서 공통으로 XOR 연산되는 값들을 그룹화하여 m(1이상 n 이하의 정수) 비트 데이터인 Y로 설정하고 공통되지 않은 값을 k(1이상 n이하의 정수) 비트 데이터인 W로 설정하는 제1 XOR 논 리와,
    상기 제1 XOR 논리의 출력값인 Y와 W를 각 표준에 따른 다항식에 의해서 생성되는 CRC 논리 연산 방법에 따라 미리 정해진 방식으로 비트별로 XOR 연산하여 n비트 CRC 데이터를 생성하는 제2 XOR 논리와,
    상기 생성된 n비트 CRC 데이터를 저장하며 인에이블 신호 및 클럭에 따라서 저장된 CRC 데이터를 출력하는 CRC 레지스터
    를 포함하는 XOR 논리를 이용한 n 비트 병렬 순환 중복 검사 생성기.
  8. 제7항에 있어서,
    상기 표준에 따른 다항식은, ITU TSS 표준에 따른 다항식 P(x) = x16 + x12 + x5 + 1이고, n=16인 것인 XOR 논리를 이용한 n 비트 병렬 순환 중복 검사 생성기.
  9. 제7항에 있어서,
    상기 표준에 따른 다항식은, HDLC 표준에 따른 다항식 P(X)=X16+X15+X2+1이고, n=16인 것인 XOR 논리를 이용한 n 비트 병렬 순환 중복 검사 생성기.
  10. 제7항에 있어서,
    상기 표준에 따른 다항식은, 이더넷 표준에 따른 다항식 P(X)=X32+X26+X23+ X22+X16+X12+X11+X10+X9+X7+X 5+X4+X2+X1+1이고, n=32인 것인 XOR 논리를 이용한 n 비트 병렬 순환 중복 검사 생성기.
  11. 제7항에 있어서,
    상기 제1 XOR 논리는,
    (a) 1이상 n 이하의 값을 가지는 변수 i, j에 대하여, 종래 CRC 생성을 위한 선형 피드백 쉬프트 레지스터(LFSR)의 i번째 레지스터 Fi 값을 Xj(Xj는 입력 데이터의 j번째 비트인 Dj와 상기 CRC 데이터의 j번째 비트의 초기값 Cj의 XOR 논리 연산값임)의 XOR 연산값으로 표시하여,
    n×n 행렬
    Figure 112004058218552-pat00007
    를 gij는 상기 Fi가 Xj의 XOR 연산을 통하여 생성되는 경우 '1'이고 그렇지 않은 경우는 '0'으로 정의되도록 생성하는 수단과,
    (b) 행렬 G에 대해서 '1'의 개수가 가장 많은 열을 검색하여 이 열을 A열로 설정하는 수단과,
    (c) A열과 행렬 G의 나머지 다른 모든 열을 비교하여 그 중 A열과 공통으로 '1'을 포함하고 있는 같은 행의 개수가 가장 많은 열을 검색하여 이 열을 B열로 설 정하는 수단과,
    (d) A열과 B열에서 같은 행에 공통으로 포함되어 있는 '1'을 A열 및 B 열 모두에서 '0'으로 변경하여 행렬 G를 다시 저장하는 수단과,
    (e) B열의 '1'의 개수가 0인지 검사하여 0이면 종료하고 그렇지 않은 경우 B열의 '1'의 개수가 0이 될 때까지 수단 (b) 내지 수단 (d)를 반복하는 수단
    을 통하여 Y 및 W를 생성하는 것인 XOR 논리를 이용한 n 비트 병렬 순환 중복 검사 생성기.
  12. 제11항에 있어서,
    상기 수단 (b)는 행렬 G에 대해서 '1'의 개수가 가장 많은 열이 2 이상인 경우 j값이 가장 낮은 열을 A열로 설정하는 수단을 포함하는 것인 XOR 논리를 이용한 n 비트 병렬 순환 중복 검사 생성기.
  13. 제11항에 있어서,
    상기 수단 (c)는 A열과 공통으로 '1'을 포함하고 있는 같은 행의 개수가 가장 많은 열이 2 이상인 경우 j값이 가장 낮은 열을 B열로 설정하는 수단을 포함하는 것인 XOR 논리를 이용한 n 비트 병렬 순환 중복 검사 생성기.
  14. (a) 1이상 n 이하의 값을 가지는 변수 i, j에 대하여, 종래 CRC 생성을 위한 선형 피드백 쉬프트 레지스터(LFSR)의 i번째 레지스터 Fi 값을 Xj(Xj는 입력 데이 터의 j번째 비트인 Dj와 상기 CRC 데이터의 j번째 비트의 초기값 Cj의 XOR 논리 연산값임)의 XOR 연산값으로 표시하여,
    n×n 행렬 (n은 2 이상의 자연수)
    Figure 112004058218552-pat00008
    를 gij는 상기 Fi가 Xj의 XOR 연산을 통하여 생성되는 경우 '1'이고 그렇지 않은 경우는 '0'으로 정의되도록 생성하는 기능 블록과,
    (b) 행렬 G에 대해서 '1'의 개수가 가장 많은 열을 검색하여 이 열을 A열로 설정하는 기능 블록과,
    (c) A열과 행렬 G의 나머지 다른 모든 열을 비교하여 그 중 A열과 공통으로 '1'을 포함하고 있는 같은 행의 개수가 가장 많은 열을 검색하여 이 열을 B열로 설정하는 기능 블록과,
    (d) A열과 B열에서 같은 행에 공통으로 포함되어 있는 '1'을 A열 및 B 열 모두에서 '0'으로 변경하여 행렬 G를 다시 저장하는 기능 블록과,
    (e) B열의 '1'의 개수가 0인지 검사하여 0이면 종료하고 그렇지 않은 경우 B열의 '1'의 개수가 0이 될 때까지 기능 블록 (b) 내지 기능 블록 (d)를 반복하는 기능 블록
    을 포함하는 프로그램을 기록한 컴퓨터로 판독할 수 있는 기록매체.
KR1020040104027A 2004-12-10 2004-12-10 XOR 논리를 이용한 n 비트 순환 중복 검사 생성 방법및 이를 이용한 병렬 순환 중복 검사 생성기 KR100578721B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040104027A KR100578721B1 (ko) 2004-12-10 2004-12-10 XOR 논리를 이용한 n 비트 순환 중복 검사 생성 방법및 이를 이용한 병렬 순환 중복 검사 생성기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040104027A KR100578721B1 (ko) 2004-12-10 2004-12-10 XOR 논리를 이용한 n 비트 순환 중복 검사 생성 방법및 이를 이용한 병렬 순환 중복 검사 생성기

Publications (1)

Publication Number Publication Date
KR100578721B1 true KR100578721B1 (ko) 2006-05-12

Family

ID=37181418

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040104027A KR100578721B1 (ko) 2004-12-10 2004-12-10 XOR 논리를 이용한 n 비트 순환 중복 검사 생성 방법및 이를 이용한 병렬 순환 중복 검사 생성기

Country Status (1)

Country Link
KR (1) KR100578721B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100731985B1 (ko) * 2005-12-29 2007-06-25 전자부품연구원 파이프라인 구조 병렬 순환 중복 검사 장치 및 방법
KR101212759B1 (ko) * 2010-10-29 2012-12-14 에스케이하이닉스 주식회사 데이터 오류 검사 기능을 이용한 데이터 전송 방법, 데이터 오류 검사 기능을 이용한 반도체 메모리 및 메모리 시스템
US9407289B2 (en) 2012-10-04 2016-08-02 Samsung Electronics Co., Ltd. Method of operating cyclic redundancy check in memory system and memory controller using the same

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100731985B1 (ko) * 2005-12-29 2007-06-25 전자부품연구원 파이프라인 구조 병렬 순환 중복 검사 장치 및 방법
KR101212759B1 (ko) * 2010-10-29 2012-12-14 에스케이하이닉스 주식회사 데이터 오류 검사 기능을 이용한 데이터 전송 방법, 데이터 오류 검사 기능을 이용한 반도체 메모리 및 메모리 시스템
US8504903B2 (en) 2010-10-29 2013-08-06 SK Hynix Inc. Data error check circuit, data error check method, data transmission method using data error check function, semiconductor memory apparatus and memory system using data error check function
US9407289B2 (en) 2012-10-04 2016-08-02 Samsung Electronics Co., Ltd. Method of operating cyclic redundancy check in memory system and memory controller using the same

Similar Documents

Publication Publication Date Title
US5157671A (en) Semi-systolic architecture for decoding error-correcting codes
Yuan et al. Low-latency successive-cancellation list decoders for polar codes with multibit decision
US6467063B1 (en) Reed Solomon coding apparatus and Reed Solomon coding method
US7590917B2 (en) Parameter generation for interleavers
US8700971B2 (en) Parallel residue arithmetic operation unit and parallel residue arithmetic operating method
Barg et al. On the complexity of minimum distance decoding of long linear codes
Alia et al. A VLSI modulo m multiplier
US6920588B1 (en) Transmitting data in a communication network
KR100731985B1 (ko) 파이프라인 구조 병렬 순환 중복 검사 장치 및 방법
US20020069232A1 (en) Method and system for generating a transform
US7051261B1 (en) Turbo encoder with reduced processing delay
US7085988B1 (en) Hashing system utilizing error correction coding techniques
KR100578721B1 (ko) XOR 논리를 이용한 n 비트 순환 중복 검사 생성 방법및 이를 이용한 병렬 순환 중복 검사 생성기
Lin et al. On the fundamental limit of private information retrieval for coded distributed storage
US20040054703A1 (en) Method and device for generating a pseudo-random sequence using a discrete logarithm
US6920601B1 (en) Error correction for data communication
Tsai et al. TCBNN: Error-Correctable Ternary-Coded Binarized Neural Network
KR100874484B1 (ko) 준순환 저밀도 패리티 검사 부호화 방법 및 장치
JPH0682395B2 (ja) ビットマスク生成回路
Indu et al. Cyclic redundancy check generation using multiple lookup table algorithms
US11489544B2 (en) Fast CRC computation circuit using an on-the-fly reconfigurable generator polynomial
US6968491B1 (en) Generating a check matrix for error correction
Huang et al. Efficient software method for decoding of the (71, 36, 11) quadratic residue code
KR102353983B1 (ko) 순환 중복 검사(crc)에서 알고리즘의 배열 방법
Do et al. High-speed parallel architecture for software-based CRC

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee