KR100340001B1 - 순회 용장 부호 계산장치 - Google Patents

순회 용장 부호 계산장치 Download PDF

Info

Publication number
KR100340001B1
KR100340001B1 KR1019990060621A KR19990060621A KR100340001B1 KR 100340001 B1 KR100340001 B1 KR 100340001B1 KR 1019990060621 A KR1019990060621 A KR 1019990060621A KR 19990060621 A KR19990060621 A KR 19990060621A KR 100340001 B1 KR100340001 B1 KR 100340001B1
Authority
KR
South Korea
Prior art keywords
crc
register
registers
calculation
exclusive logical
Prior art date
Application number
KR1019990060621A
Other languages
English (en)
Other versions
KR20010057407A (ko
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 KR1019990060621A priority Critical patent/KR100340001B1/ko
Publication of KR20010057407A publication Critical patent/KR20010057407A/ko
Application granted granted Critical
Publication of KR100340001B1 publication Critical patent/KR100340001B1/ko

Links

Classifications

    • 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)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

본 발명은 CRC 계산시 병렬 처리 방식을 이용하므로써 CRC의 계산 속도를 높이고, 저속의 클럭으로도 CRC 계산이 가능토록 한 순회 용장 부호 계산 장치에 관한 것으로서, 이러한 본 발명은, CRC 계산시 복수 비트에 대한 CRC를 병렬로 계산하는 CRC 계산부, CRC 계산부에서 계산된 CRC와 입력 데이터중 하나를 외부의 선택 신호에 따라 선택하여 출력하는 선택기로 CRC 계산 장치를 구현함으로써, CRC 계산시 병렬 처리 방식을 이용하므로써 CRC의 계산 속도를 높일 수 있고, 병렬 처리이므로 저속의 클럭으로도 CRC 계산이 가능하다.

Description

순회 용장 부호 계산장치{Apparatus for computation cyclic redundancy codes}
본 발명은 순회 용장 부호(CRC) 계산에 관한 것으로, 좀 더 상세하게는 CRC 계산시 병렬 처리 방식을 이용하므로써 CRC의 계산 속도를 높이고, 저속의 클럭으로도 CRC 계산이 가능토록 한 순회 용장 부호 계산 장치에 관한 것이다.
일반적으로 모든 통신 시스템은 데이터 전송의 신뢰성 확보를 위하여 CRC 또는 FEC를 사용한다. 대표적인 예로 현재 가장 많이 사용되고 있는 통신 프로토콜 인 TCP/IP, 인터넷은 물론 추후 통신 시스템에서 사용될 예정인 AAL에서도 CRC를사용한다.
주지한 바와 같은 통신 시스템에서 종래 CRC의 계산은, 소프트웨어 또는 하드웨적으로 이루어졌다.
그 중에서 소프트웨어를 이용하여 CRC를 계산할 경우 많은 프로세싱을 하므로 마이크로 프로세서의 낭비가 심하다는 단점이 발생되어, 근래에는 주로 하드웨어적으로 CRC를 계산하는 추세이다.
하드웨어적으로 CRC를 계산하는 가장 일반적이고 보편적인 방식은 쉬프트 레지스터를 이용한 방식으로 한 비트씩 계산을 한다. 이와 같은 방식은 시스템의 데이터 전송 속도가 낮은 시스템에서는 합리적이고 효율적인 방식이다.
그러나 이러한 방식으로는 수 백Mbps ~ 수십 Gbps의 고속 데이터를 처리하기는 불가능하다. 왜냐하면 수 십Gbps의 데이터에 대해 기존의 방식과 같이 한 비트씩 CRC를 처리하려면 시스템의 클럭이 수십 Gbps를 처리하여야 한다.
그래서 데이터의 전송 속도가 높아질수록 일반적인 시스템에서는, 외부 라인 드라이버는 수십 Ghz에 동작하는 값 비싼 고속 소자를 사용하고, 그 이전 블록에서는 병렬로 처리한다.
그러나 시스템의 병렬성이 증가할수록 설계상의 어려움이 증가된다. 저속 시스템에서 사용하는 직렬 방식은 설계가 용이하나 시스템의 클럭을 증가하는 데 한계가 있으므로, 고속 시스템에 이를 적용시키는 데에도 한계가 있다.
따라서 본 발명은 CRC 계산시 병렬 처리 방식을 이용하므로써 CRC의 계산 속도를 높이고, 저속의 클럭으로도 CRC 계산이 가능토록 한 순회 용장 부호 계산 장치를 제공하는 데 있다.
상기와 같은 목적을 달성하기 위한 본 발명은, 입력되는 CRC를 순차 쉬프트시키는 복수개의 레지스터, 상기 복수개의 레지스터중 최종단 레지스터의 출력에 따라 각 탭의 이득값을 설정하는 복수개의 이득 설정기, 및 상기 복수개의 이득 설정기에서 설정된 이득값과 상기 최종단 레지스터를 제외한 상기 복수개의 레지스터의 각 출력 신호를 선택적으로 배타적 논리합하고 그 결과치를 각 레지스터의 입력단에 전달하는 복수개의 배타적 논리합소자를 구비하여 상기 CRC 계산시 복수 비트에 대한 CRC를 병렬로 계산하는 CRC 계산부; 및상기 CRC 계산부에서 계산된 CRC와 입력 데이터중 하나를 외부의 선택 신호에 따라 선택하여 출력하는 선택기로 구성된 것을 특징으로 한다.
도 1은 본 발명에 의한 순회 용장 부호 계산 장치를 보인 도면이고,
도 2는 도 1의 순회 용장 부호 계산부의 일 실시예를 보인 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
100 : CRC 계산부
200 : 선택기
이하 상기와 같은 기술적 사상에 따른 본 발명의 바람직한 실시 예를 첨부한 도면에 의거 상세히 설명하면 다음과 같다.
일반적으로 CRC의 계산 원리는,
code polynomial를 c(x), generator polynomial를 g(x), parity polynomial을 h(x)로 설정한 경우, c(x) = h(x) mod(g(x))가 된다.
여기서 c(x) - h(x) = 0 mod(g(x))이다.
그러므로 데이터를 전송할 때 데이터를 송,수신하는 양단이 미리 g(x)를 알고, c(x)를 전송할 때 미리 정해진 규칙에 따라 c(x)와 h(x)를 함께 전송을 하면, 전송시에 발생한 오류를 검출할 수 있다. 즉, c(x) - h(x)를 g(x)로 나누어 나머지가 없으면, 전송시에는 에러가 없었고, 반대로 c(x) - h(x)를 g(x)로 나누어 나머지가 존재하면 전송시에 에러가 있었음을 확인할 수 있다.
그러나 위의 식에서 알 수 있듯이 CRC의 계산에는 나눗셈이 들어가므로 연산이 복잡하다. 이와 같은 나눗셈을 수행하는 가장 단순한 방법은 쉬프트 레지스터를 이용하는 것이다.
그리고 CRC 계산의 연산 속도를 높이려면 한번에 여러 비트의 CRC를 동시에 계산하면 된다.
즉, 본 발명은 기존과 같이 1비트씩 쉬프트하면서 CRC를 계산하지 않고, 한번에 여러 비트에 대한 CRC를 계산하는 방법을 제안한다. 이렇게 함으로써 시스템의 동작 주파수를 높인다.
이를 위해, c(x) = h(x) mod(g(x))에서 c(x), g(x), h(x)는 다항식을 나타낸다. 상기에서 c(x), g(x)가 주어졌을 때 h(x)를 구하는 것은 쉬프트 레지스터를 이용한다. C(x) = H(x) mod(G(x))를 수행한다. 여기서 C(x), H(x), G(x)는 행렬이다.
상기와 같이 한번에 여러 비트에 대한 CRC를 계산하기 위해서는 동기 클럭이 필요하다. 예를 들어, 한번에 8비트의 CRC를 처리한다면 n비트의 코드에 대한 CRC를 계산할 때, n/8클럭이 필요하다. 기존에는 쉬프트 레지스터 방식에서는 n+R클럭이 필요하다.
첨부한 도면 도 1은 본 발명에 의한 CRC 계산 장치를 보인 도면이다.
여기서, 참조부호 100은 CRC 계산시 복수 비트에 대한 CRC를 병렬로 계산하는 CRC 계산부를 나타내고, 참조부호 200은 상기 CRC 계산부(100)에서 계산된 CRC와 입력 데이터중 하나를 외부의 선택 신호에 따라 선택하여 출력하는 선택기를 나타낸다.
이와 같이 구성된 본 발명은, CRC 계산부(100)에서 병렬로 복수개의 CRC를 동시에 계산하고, 선택기(200)에서 외부 선택 신호에 따라 입력되는 사용자 데이터 또는 상기 CRC 계산부(100)의 출력 데이터를 선택하여 출력하게 된다.
예를 들어, 상기 CRC 계산부(100)에 입력되는 데이터가 n비트의 IAn이고, 피이드백 되는 데이터가 IBr이라고 하면, 출력되는 On은 (IBr*xn+IAn)/G의나머지이다.
여기서 모든 다항식의 계수들은 모듈로2의 연산을 한다.
예를 들어, x+x=0, x2+x2= 0*x2= 0이 된다.
본 발명에서 n = r이다.
따라서 On = IBn + 나머지(IAn*xn)/G)이다.
여기서 IAn/G를 나누기가 없는 연산으로 수행할 수 있다. 즉, x2n을 G로 나누었을 때 나머지를 G(n), x2n-1를 G로 나누었을 때의 나머지를 G(n_1), xn을 G로 나누었을때의 나머지를 G(0)라 하면,
IAn/G의 나머지는이다.
따라서 Qn = IBn +이며, 이러한 방법으로 나눗셈 없이 CRC를 계산할 수 있다.
첨부한 도면 도 2는 상기 CRC 계산부(100)의 CRC 계산을 위한 내부 구성도이다.
여기서, 참조부호 10 ~ 10+n은 입력되는 CRC를 순차 쉬프트시키는 복수개의 레지스터를 나타내고, 참조부호 20 ~ 20+n은 상기 복수개의 레지스터중 최종단 레지스터의 출력에 따라 각 탭의 이득값을 설정하는 복수개의 이득 설정기를 나타내고, 참조부호 30 ~ 30+n은 상기 복수개의 이득 설정기에서 설정된 이득값과 상기 최종단 레지스터를 제외한 상기 복수개의 레지스터의 각 출력 신호를 선택적으로배타적 논리합하고 그 결과치를 각 레지스터의 입력단에 전달하는 복수개의 배타적 논리합소자를 나타낸다.
이와 같이 구성된 CRC 계산부(100)는 최종 레지스터(10+n)의 출력이 피이드백되어 복수개의 이득 설정기(20 ~ 20+n)로 입력되고, 복수개의 이득 설정기(20 ~ 20+n)는 그 입력되는 값에 따라 각 탭의 이득을 설정한다.
그리고 복수개의 레지스터의 각 레지스터 사이에 존재하는 복수개의 배타적 논리합소자(30 ~ 30n)는 상기 복수개의 이득 설정기에서 설정되는 이득과 전단 레지스터의 출력을 배타적 논리합하여 그 결과치를 후단 레지스터에 전달해주는 방식으로 n비트의 CRC를 한번에 처리하게 된다.
이상에서 상술한 본 발명 ' CRC 계산 장치 '에 따르면, CRC 계산시 병렬 처리 방식을 이용하므로써 CRC의 계산 속도를 높일 수 있고, 병렬 처리이므로 저속의 클럭으로도 CRC 계산이 가능한 이점이 있다.

Claims (3)

  1. CRC 계산 장치에 있어서,
    입력되는 CRC를 순차 쉬프트시키는 복수개의 레지스터, 상기 복수개의 레지스터중 최종단 레지스터의 출력에 따라 각 탭의 이득값을 설정하는 복수개의 이득 설정기, 및 상기 복수개의 이득 설정기에서 설정된 이득값과 상기 최종단 레지스터를 제외한 상기 복수개의 레지스터의 각 출력 신호를 선택적으로 배타적 논리합하고 그 결과치를 각 레지스터의 입력단에 전달하는 복수개의 배타적 논리합소자를 구비하여 상기 CRC 계산시 복수 비트에 대한 CRC를 병렬로 계산하는 CRC 계산부; 및
    상기 CRC 계산부에서 계산된 CRC와 입력 데이터중 하나를 외부의 선택 신호에 따라 선택하여 출력하는 선택기로 구성된 것을 특징으로 하는 순회 용장 부호 계산장치.
  2. 삭제
  3. 제 1 항에 있어서, 상기 복수개의 배타적 논리합소자는, 처음 배타적 논리합소자는 상기 복수개의 레지스터중 최초 레지스터의 전단에 구비되고, 상기 복수개의 배타적 논리합소자중 최종 배타적 논리합소자는 상기 복수개의 레지스터중 최종 레지스터의 바로 전단에 구비되고, 나머지 배타적 논리합소자는 상기 최초 레지스터와 상기 최종 레지스터의 바로 이전 레지스터 사이사이에 구비되는 것을 특징으로 하는 순회 용장 부호 계산장치.
KR1019990060621A 1999-12-22 1999-12-22 순회 용장 부호 계산장치 KR100340001B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990060621A KR100340001B1 (ko) 1999-12-22 1999-12-22 순회 용장 부호 계산장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990060621A KR100340001B1 (ko) 1999-12-22 1999-12-22 순회 용장 부호 계산장치

Publications (2)

Publication Number Publication Date
KR20010057407A KR20010057407A (ko) 2001-07-04
KR100340001B1 true KR100340001B1 (ko) 2002-06-10

Family

ID=19628342

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990060621A KR100340001B1 (ko) 1999-12-22 1999-12-22 순회 용장 부호 계산장치

Country Status (1)

Country Link
KR (1) KR100340001B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100456460B1 (ko) * 2001-12-19 2004-11-10 한국전자통신연구원 전화선 모뎀에서의 프레임 헤더 오류 검출 장치

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100439225B1 (ko) * 2000-07-13 2004-07-05 엘지전자 주식회사 고속 데이터의 오류 검증회로

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100456460B1 (ko) * 2001-12-19 2004-11-10 한국전자통신연구원 전화선 모뎀에서의 프레임 헤더 오류 검출 장치

Also Published As

Publication number Publication date
KR20010057407A (ko) 2001-07-04

Similar Documents

Publication Publication Date Title
KR100745485B1 (ko) 가변 폭의 병렬 순환 중복 검사 (crc) 연산을 위한 반복회로 및 방법
US7590916B2 (en) Cyclic redundancy checking value calculator
US9071275B2 (en) Method and device for implementing cyclic redundancy check codes
US8468439B2 (en) Speed-optimized computation of cyclic redundancy check codes
US7613991B1 (en) Method and apparatus for concurrent calculation of cyclic redundancy checks
US7870466B2 (en) Parallel cyclic code generation device and parallel cyclic code error detection device
US20240235728A1 (en) Multi-wire permuted forward error correction
US7539918B2 (en) System and method for generating cyclic codes for error control in digital communications
US7434150B1 (en) Methods, circuits, architectures, software and systems for determining a data transmission error and/or checking or confirming such error determinations
CN110380738B (zh) 参数软件可配置的rs编码器ip核电路结构及其编码方法
KR100340001B1 (ko) 순회 용장 부호 계산장치
US20220286145A1 (en) Pipelined forward error correction for vector signaling code channel
US20020042804A1 (en) Parallel processing syndrome calculating circuit and reed-solomon decoding circuit
EP0582748A1 (en) Divider device to divide a first polynomial by a second one
CN111277830A (zh) 一种编码方法、解码方法及装置
CN113821370A (zh) 一种用于数据传输错误校验的高速crc产生方法和装置
US7225391B1 (en) Method and apparatus for parallel computation of linear block codes
US7047479B1 (en) Parallel CRC formulation
CN114443347B (zh) 一种可配置crc码计算方法
US20020046370A1 (en) Error checking
Hajare et al. Design and Implementation of Parallel CRC Generation for High Speed Application
JP2001086005A (ja) チェンサーチ回路及びこれを用いた誤り訂正符号復号装置
JPH06188744A (ja) 誤り検証訂正符号組込ビット列の生成方法。
KR20030080071A (ko) 비트 스트림을 인코딩하는 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee