KR100745863B1 - 씨알씨 연산장치 및 씨알씨 연산방법 - Google Patents

씨알씨 연산장치 및 씨알씨 연산방법 Download PDF

Info

Publication number
KR100745863B1
KR100745863B1 KR1020010019804A KR20010019804A KR100745863B1 KR 100745863 B1 KR100745863 B1 KR 100745863B1 KR 1020010019804 A KR1020010019804 A KR 1020010019804A KR 20010019804 A KR20010019804 A KR 20010019804A KR 100745863 B1 KR100745863 B1 KR 100745863B1
Authority
KR
South Korea
Prior art keywords
data
crc
polynomial
value
calculation
Prior art date
Application number
KR1020010019804A
Other languages
English (en)
Other versions
KR20010098575A (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 마츠시타 덴끼 산교 가부시키가이샤
Publication of KR20010098575A publication Critical patent/KR20010098575A/ko
Application granted granted Critical
Publication of KR100745863B1 publication Critical patent/KR100745863B1/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/14Error detection or correction of the data by redundancy in operation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • 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/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
    • 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/65Purpose and implementation aspects
    • H03M13/6569Implementation on processors, e.g. DSPs, or software implementations

Abstract

본 발명은 회로규모를 대폭적으로 증가시키지 않고 고속의 CRC 연산을 행하여 여러가지 생성다항식을 유연하게 적용할 수 있도록 하기 위한 CRC 연산장치 및 CRC 연산방법에 관한 것이다. 주요 구성은 일반적으로 DSP가 구비된 회로에 약간의 회로를 부가하여 CRC 연산장치가 구성되는데, 이 CRC 연산장치는 임의의 생성다항식이 저장되는 제 1 범용 레지스터(12), 상기 생성다항식 또는 전체 비트의 값이 0인 데이터를 선택하여 출력하는 셀렉터(13)를 구비한 생성다항식 공급부(11), 메모리(22), 시프트 레지스터(23), 제 2 범용 레지스터(24) 및 배럴시프터(25)를 구비하고, 송수신 데이터에 기초하여 CRC 연산을 위한 연산데이터를 출력하는 연산데이터 공급부(21), 생성다항식 공급부(11) 및 연산데이터 공급부(21)로부터 출력되는 생성다항식 및 연산데이터를 이용하여 CRC 연산을 하는 연산부(31) 및 상기 각부의 동작을 제어하는 연산명령 실행제어부(41)로 구성된다.
생성다항식, 배럴시프터, 연산데이터

Description

씨알씨 연산장치 및 씨알씨 연산방법{CRC OPERATION UNIT AND CRC OPERATION METHOD}
도 1은 제 1 실시예의 CRC 연산장치의 구성을 도시한 블록도
도 2는 제 1 실시예의 CRC 연산장치의 동작을 도시한 플로차트
도 3은 제 1 실시예의 CRC 연산장치의 데이터의 단락의 예를 도시한 설명도
도 4는 제 1 실시예의 CRC 연산장치의 부호화동작의 구체예를 도시한 설명도
도 5는 제 1 실시예의 CRC 연산장치의 복호동작의 구체예를 도시한 설명도
도 6은 제 2 실시예의 CRC 연산장치의 구성을 도시한 블록도
본 발명은 송수신 데이터가 통신로를 통해 전송될 때 또는 전송을 위한 데이터처리가 이루어질 때 등에 상기 송수신 데이터에 오류가 생겼는지의 여부를 검출하기 위한 오류검출부호인 CRC(Cyclic Redundancy Check ; 순환 리던던시 검사)부호의 생성 또는 그러한 에러검출부호가 부가된 송수신 데이터의 부호에러를 검출하는 CRC 연산장치 및 CRC 연산방법에 관한 것이다.
CRC는 디지털통신에서 빈번히 사용되는 에러검출방식이다. 이 에러검출방식 은 다음과 같이 에러를 검출한다. 즉 송신측에서는 송신데이터를 고차의 다항식으로 간주하고 소정의 생성다항식으로 제산하여 얻어지는 나머지를 CRC 부호로서 송신데이터의 다음에 부가한다(부호화). 수신측에서는 동일한 생성다항식을 이용하여 제산을 행하여(복호), 나머지가 0이면 전송된 데이터에 에러가 없다고 판정하는 한편 나머지가 0이 아니면 에러가 있다고 판정한다(에러검출). 상기 생성다항식으로서는 예를 들어 다음과 같은 것이 실제의 CRC에 사용된다.
(1) CRC-12
(2) CRC-16
(3) CRC-CCITT
상기와 같은 부호화나 에러검출, 즉 CRC 연산을 하는 장치로서는 하드웨어로 CRC 연산을 하는 CRC 연산장치가 있다. 이것은 시프트 레지스터와 배타적 논리합 게이트를 조합하여 구성된 제산기를 이용한다. 이 종류의 장치에서는 상기 시프트 레지스터와 상기 배타적 논리합 게이트가 어떻게 접속되는지에 따라 생성다항식이 결정된다. 이 때문에 이 종류의 장치에서는 생성다항식을 변경할 수 없다. 그러므로 적용되는 생성다항식마다 다른 장치를 사용할 필요가 있다. 또 송신측과 수신측에서 동일한 생성다항식이 적용되는 장치를 이용해야 한다.
한편 여러가지 생성다항식을 유연하게 적용할 수 있는 CRC 연산장치로서는 소프트웨어로 CRC 연산을 하는 장치가 있다. 이러한 장치에서는 단지 프로그램 또는 데이터를 교체함으로써 용이하게 여러가지의 생성다항식을 적용할 수 있다. 그런데 통상적으로 상기 CRC 연산은 통신단말의 프로세서에 의해 실행되고, 그 프로 세서에 큰 부하가 걸리기 때문에 통신단말의 처리능력이 저하된다. 또 소프트웨어에 의한 CRC 연산은 연산속도가 느리기 때문에 고속통신에는 적합하지 않다.
따라서 생성다항식의 유연성과 CRC 연산의 고속성을 양립시킬 수 있는 장치로서는, 예를 들면 일본국 특개평 5-151007호 공보에 개시된 바와 같이 생성다항식 설정레지스터와, 시프트 레지스터와, 배타적 논리합 게이트가 조합되어 구성된 장치가 알려져 있다. 이 장치는 하드웨어에 의해 CRC 연산이 행해지기 때문에 고속 처리가 가능한 동시에 생성다항식 설정레지스터에 설정되는 생성다항식을 변경함으로써 여러가지 생성다항식을 적용할 수 있다.
그러나 상기와 같은 CRC 연산장치는 CRC 연산을 위해 특화한 전용회로를 이용하기 때문에 통신장치 등의 회로규모를 증대시키는 문제점이 있다. 또 생성다항식 설정레지스터와 같은 비트길이의 생성다항식에는 여러가지의 것을 적용할 수 있는데, 다른 비트길이의 생성다항식의 적용에 대해서는 고려하지 않는다.
본 발명은 상기 문제점을 감안하여 대폭적인 회로규모의 증가를 초래하지 않고 고속 CRC 연산을 할 수 있으며, 여러가지의 생성다항식을 유연하게 적용할 수 있는 CRC 연산장치 및 CRC 연산방법을 제공하는 것을 목적으로 한다.
상기 목적을 달성하기 위해 본 발명은 CRC 연산장치에 있어서, 생성다항식을 나타내는 데이터를 보유하고, 상기 생성다항식을 나타내는 데이터와 전체 비트의 값이 O인 제로데이터를 선택적으로 출력하는 생성다항식 공급수단과, CRC 연산을 하는 연산데이터를 출력하는 연산데이터 공급수단과, 상기 생성다항식을 나타내는 데이터 또는 제로데이터와, 상기 연산데이터의 배타적 논리합연산을 하는 산술논리 연산수단을 구비하며, 상기 생성다항식 공급수단은 상기 산술논리 연산수단에 의한 연산결과의 최상위비트의 값에 따라 상기 생성다항식을 나타내는 데이터와 제로데이터를 선택하도록 구성되고, 상기 연산데이터 공급수단은 상기 산술논리 연산수단에 의한 연산결과의 최상위비트보다 하위비트의 값을 상위비트의 값으로 하고, 미처리된 CRC 연산대상이 되는 데이터의 최상위비트의 값을 최하위비트의 값으로 하는 데이터를 상기 연산데이터로서 출력하도록 구성되는 것을 특징으로 한다.
상기 생성다항식 공급수단은 구체적으로는 예를 들어 상기 생성다항식을 나타내는 데이터를 보유하는 제 1 레지스터와, 상기 생성다항식을 나타내는 데이터 또는 상기 제로데이터를 선택적으로 출력하는 셀렉터를 구비하며, 상기 연산데이터 공급수단은 구체적으로는 예를 들어, 상기 산술논리 연산수단에 의한 상기 연산결과를 보유하는 제 2 레지스터와, 상기 제 2 레지스터에 보유되는 상기 연산결과를 1비트 좌시프트하여 출력하는 시프터와, 상기 미처리된 CRC 연산대상이 되는 데이터를 보유하는 메모리와, 상기 메모리로부터 전송된 상기 미처리된 CRC 연산대상이 되는 데이터 중의 일부를 보유하고 상기 보유된 데이터의 최상위비트의 값을 출력하는 동시에 상기 보유된 데이터를 1비트씩 좌시프트하는 시프트 레지스터로 구성된다.
이로 인하여 상기 생성다항식 공급수단에 보유시키는 생성다항식을 나타내는 데이터를 변경함으로써 여러가지 생성다항식을 유연하게 적용하기가 쉬워진다. 또 상기 산술논리 연산수단에 입력되며 생성다항식을 나타내는 데이터 또는 제로데이터의 선택이나, CRC 연산을 하는 연산데이터의 생성은 프로그램 명령의 실행에 의하지 않고 자동적으로 행해지므로 고속의 CRC 연산을 할 수 있다. 더구나 상기 생성다항식 공급수단, 공급수단 및 산술논리 연산수단은 주로 통상의 프로세서가 구비된 구성요소를 이용할 수 있으므로 CRC 연산장치를 포함하는 장치 전체의 회로규모의 증대를 작게 억제할 수 있다.
또 연산명령실행 제어수단을 구비하고, 상기 연산명령실행 제어수단은 소정의 연산명령에 따라 상기 생성다항식 공급수단에 의한 상기 생성다항식을 나타내는 데이터 또는 제로데이터의 출력, 상기 연산데이터 공급수단에 의한 상기 연산데이터의 출력 및 상기 산술논리 연산수단에 의한 상기 배타적 논리합 연산의 실행을 제어하도록 구성된다.
상기 연산명령실행 제어수단은 소정의 연산명령에 따라 1회의 상기 산술논리 연산수단에 의한 상기 배타적 논리합 연산이 행해지기 위한 상기 생성다항식 공급수단, 상기 연산데이터 공급수단 및 상기 산술논리 연산수단에 의한 동작을 제어하도록 구성된다.
또 소정의 연산명령에 따라 상기 미처리된 CRC 연산대상이 되는 데이터의 전부에 대하여 상기 산술논리 연산수단에 의한 상기 배타적 논리합 연산이 행해지기 위한 상기 생성다항식 공급수단, 상기 연산데이터 공급수단 및 상기 산술논리 연산수단에 의한 동작을 제어하도록 구성된다.
또 소정의 연산명령에 따라 상기 시프트 레지스터에 보유된 모든 비트의 값 에 대하여 상기 산술논리 연산수단에 의한 상기 배타적 논리합 연산이 행해지기 위한 상기 생성다항식 공급수단, 상기 연산데이터 공급수단 및 상기 산술논리 연산수단에 의한 동작을 제어하도록 구성된다.
이로 인하여 연산명령의 조합의 자유도를 높게 하여 CRC 연산처리의 유연성을 향상시키거나 적은 연산명령으로 CRC 연산처리의 고속성을 향상시킬 수 있다.
또 상기 미처리된 CRC 연산대상이 되는 데이터의 전부에 대하여 상기 산술논리 연산수단에 의한 상기 배타적 논리합 연산이 행해진 후 상기 제 2 레지스터에 보유되어 있는 값을 상기 메모리에 저장하도록 구성된다.
상기 미처리된 CRC 연산대상이 되는 데이터의 전부에 대하여 상기 산술논리 연산수단에 의한 상기 배타적 논리합 연산이 행해진 후 상기 제 2 레지스터에 보유된 값이 0인지의 여부에 따라 상기 미처리된 CRC 연산대상이 되는 데이터에 에러가 있는지의 여부를 판정하도록 구성된다.
이로 인하여 CRC 부호화나 데이터의 에러 검출을 용이하게 할 수 있다.
또 상기 생성다항식 공급수단은 상기 생성다항식을 나타내는 데이터의 비트수가 상기 생성다항식 공급수단이 보유할 수 있는 비트수보다 적은 경우에 상기 생성다항식을 나타내는 데이터를 상위패딩으로 보유하는 동시에 하위비트에 O의 값을 보유하도록 구성된다.
이로 인하여 생성다항식의 종류 뿐만아니라 그 비트수에 대해서도 적용되는 생성다항식의 유연성을 향상시킬 수 있다.
또 본 발명은 CRC 연산장치에 있어서, 생성다항식을 나타내는 데이터를 보유 하는 생성다항식 보유수단과, 생성다항식을 나타내는 데이터 및 CRC 연산대상이 되는 데이터에 기초하여 CRC 연산을 하는 CRC 연산수단을 구비하며, 상기 생성다항식을 나타내는 데이터의 비트수가 상기 생성다항식 보유수단이 보유할 수 있는 비트수보다 적은 경우에 상기 생성다항식 보유수단에 상기 생성다항식을 나타내는 데이터가 상위패딩으로 보유되는 동시에 하위비트에 O의 값이 보유되도록 구성되는 것을 특징으로 한다.
이로 인하여 CRC 연산에 특화한 전용회로를 구성하는 경우라도 생성다항식의 종류 뿐만아니라 그 비트수에 대해서도 적용되는 생성다항식의 유연성을 높게 할 수 있다.
(제 1 실시예)
본 발명의 실시예로서 DSP(digital signal processor) 등의 프로세서의 내부에 설치된 CRC 연산장치의 예를 도 1에 기초하여 설명한다. 이 장치는 일반적으로 DSP가 구비된 회로에 약간의 회로를 부가하여 구성된다.
도 1에 도시된 바와 같이 이 CRC 연산장치에는 임의의 생성다항식(을 나타내는 데이터)을 보유하고, 출력하는 생성다항식 공급부(11)(생성다항식 공급수단)와, 송수신 데이터에 기초하여 CRC 연산을 위한 연산데이터를 출력하는 연산데이터 공급부(21)(연산데이터 공급수단)와, 상기 생성다항식 공급부(11) 및 연산데이터 공급부(21)로부터 출력되는 생성다항식 및 연산데이터를 이용하여 CRC 연산을 하는 연산부(31)(산술논리 연산수단)와, 상기 각 부의 동작을 제어하는 연산명령 실행제어부(41)(연산명령실행 제어수단)가 설치된다.
상기 생성다항식 공급부(11)는 생성다항식이 저장되는 제 1 범용 레지스터(12)와, 상기 제 1 범용 레지스터(12)에 저장된 값(생성다항식) 또는 전체 비트의 값이 0인 데이터("0")를 선택하여 출력하는 셀렉터(13)를 구비한다. 상기 셀렉터(13)는 보다 자세하게는 후술하는 제 2 범용 레지스터(24)의 최상위 비트(MSB)의 값이 0일 때에는 " 0"을 선택하고 1일 때에는 제 1 범용 레지스터(12)에 저장된 생성다항식을 선택하도록 되어 있다. 또 상기 셀렉터(13)는 실제로는 제 1 범용 레지스터(12)의 각 비트의 값과 제 2 범용 레지스터(24)의 MSB의 값을 논리곱 연산하는 AND 회로열 등으로 구성해도 된다.
상기 연산데이터 공급부(21)는 메모리(22), 시프트 레지스터(23), 제 2 범용 레지스터(24) 및 배럴시프터(25)를 구비하여 구성된다.
상기 메모리(22)에는 송수신 데이터가 저장된다.
상기 시프트 레지스터(23)는 1사이클의 CRC 연산마다 보유되어 있는 데이터의 MSB의 값을 연산데이터의 LSB의 값으로서 연산부(31)에 출력한 후 그 데이터를 1비트만큼 좌시프트하도록 되어 있다. 그리고 보유되어 있는 데이터의 모든 비트의 값이 출력되었을 때에는 다음 데이터가 메모리(22)로부터 전송된다.
상기 제 2 범용 레지스터(24)는 CRC 연산이 개시될 때 메모리(22)로부터 초기값으로서 전송된 데이터를 보유하는 동시에 그 후에는 1사이클의 CRC 연산마다 연산부(31)로부터 출력되는 연산결과의 데이터를 보유하도록 되어 있다.
상기 배럴시프터(25)는 제 2 범용 레지스터(24)에 보유된 데이터를 1비트만큼 좌시프트한 후 그 LSB보다 상위비트의 값을 연산데이터의 LSB보다 상위비트의 값으로서 연산부(31)에 출력하도록 되어 있다. 또 상기와 같이 시프트 레지스터(23)의 MSB의 값이 연산부(31)에 직접 입력되는 대신 이 배럴시프터(25)에 입력되어 상기 좌시프트일 때에 연산데이터의 LSB의 값이 되도록 하여도 된다.
또 상기 연산부(31)는 산술논리연산기(32)를 구비하고, 상기 생성다항식 공급부(11)로부터 출력되는 생성다항식 또는 "0"과 상기 연산데이터 공급부(21)로부터 출력되는 연산데이터의 배타적 논리합 연산을 실행하도록 되어 있다. 그 연산결과의 데이터는 상기와 같이 제 2 범용 레지스터(24)에 저장된다.
상기 각부는 각각 예를 들면 M비트의 비트폭을 갖는다.
또 연산명령 실행제어부(41)는 프로그램으로서 주어지는 연산명령에 기초하여 DSP를 구성하는 각 부의 동작을 제어하는 동시에 CRC 연산에 관련되는 연산명령에 기초하여 주로 상기 각 부의 동작을 제어한다.
여기에서 상기 제 1 범용 레지스터(12), 메모리(22), 제 2 범용 레지스터(24), 배럴시프터(25) 및 산술논리연산기(32)는 통상 프로세서가 구비하고 있는 것을 이용할 수 있다. 즉 특히 CRC 연산을 위해 설치된 것은 주로 셀렉터(13), 시프트 레지스터(23), 상기 각 부 등과의 사이의 신호패스 및 연산명령 실행제어부(41)에서의 CRC 연산을 위한 제어기능을 갖는 부분이다. 그러므로 일반적인 프로세서에 이들의 구성요소를 부가하는 것 만으로 CRC 연산장치를 구성할 수 있고, CRC 연산장치 전체가 CRC 연산에 특화된 것이 아니기 때문에 DSP 등의 전체의 회로규모의 증가를 적게 억제할 수 있다.
상기한 바와 같이 구성된 CRC 연산장치에서는 연산명령 실행제어부(41)에 주 어지는 연산명령에 따라 CRC 연산이 행해진다. 이하 그 동작에 대하여 도 2의 플로차트에 기초하여 설명한다(또 이하의 각 단계는 설명의 편의를 위한 것으로, 명령사이클이나 머신사이클과 반드시 1 대 1로 대응하는 것은 아니다).
(단계 S1) 우선 전송명령에 의해 제 1 범용 레지스터(12)에 생성다항식이 설정된다. 여기에서 설정되는 생성다항식의 비트길이를 N으로 하면 N < M(M은 제 1 범용 레지스터(12)의 비트폭)이어도 된다. 그 경우에는 좌시프트명령 등에 의해 상위패딩되어 하위비트에 0이 매설된 값이 제 1 범용 레지스터(12)에 설정된다.
(단계 S2) 마찬가지로 전송명령에 의해 메모리(22)에 저장된 송수신 데이터 중의 최초의 M비트의 데이터(초기데이터)가 제 2 범용 레지스터(24)에 설정된다.
(단계 S3) 또 전송명령에 의해 다음 M비트의 데이터(입력데이터 1∼X)가 시프트 레지스터(23)에 설정된다.
(단계 S4) 다음으로 M사이클의 CRC연산 즉 시프트 레지스터(23)에 보유된 M비트의 송수신 데이터에 대응하는 CRC 연산이 실행된다. 더욱 자세하게는 다음과 같은 동작이 행해진다.
즉 산술논리연산기(32)는 제 2 범용 레지스터(24)에 보유된 값이 상기한 바와 같이 배럴시프터(25)로부터 시프트되어 출력되는 값 중의 상위 M-1비트의 값 및 시프트 레지스터(23)로부터 출력되는 MSB의 1비트의 값과의 합계 M비트의 연산데이터와 셀렉터(13)로부터 출력되는 M비트의 생성다항식(N비트와 0의 경우도 포함한다) 또는 전체 비트의 값이 0인 데이터와의 배타적 논리합연산을 하여, 연산결과의 데이터를 제 2 범용 레지스터(24)에 저장한다. 즉 1비트의 송수신 데이터에 대응하 는 1사이클의 CRC 연산이 행해진다. 또 시프트 레지스터(23)에 보유된 값이 1비트 좌시프트되고 LSB에는 0이 매설된다. 그리고 이들의 동작이 예를 들어 반복명령(계속되는 명령을 소정회수 반복하는 것을 나타내는 명령)과, CRC 연산명령의 조합에 의해 M회 반복된다. 이로 인하여 예를 들어 1사이클의 CRC 연산(및 시프트 레지스터(23)의 시프트동작을 1머신사이클로 행하게 하는 것도 가능하게 된다. 또 상기 반복명령과 CRC 연산명령의 조합에 의한 동작과 같은 동작을 단일 명령에 의해 행할 수 있도록 해도 된다. 또 처리속도는 늦어지지만 범용 레지스터에 값 M을 세트하여 1사이클의 CRC 연산마다 감소하여 값이 0이 될 때까지 CRC 연산을 반복하도록 해도 된다.
(단계 S5) M사이클의 CRC 연산이 종료되면 메모리(22)에 보유된 나머지 송수신 데이터가 최종데이터인지의 여부(나머지가 M비트 이하인지의 여부)가 판정된다. 이 판정은 구체적으로는 예를 들어 메모리(22)로부터 시프트 레지스터(23)에 전송되는 송수신 데이터의 어드레스를 나타내는 도시하지 않는 포인터의 값이 최종데이터의 어드레스가 되었는지의 여부가 판정되도록 해도 되고, M사이클의 CRC 연산의 회수를 카운트(다운카운트)하고 송수신 데이터의 전체 비트수 K에서 M을 감산하여 정수의 M으로 나눈 몫 X,
X=int((K-M)/M)
의 횟수만큼 반복되었는지의 여부가 판정되도록 해도 된다. 또 상기 CRC 연산횟수의 카운트나 판정은 프로그램 명령에 의해 행해지도록 해도 되고, 하드웨어에 의해 자동적으로 행해지도록 해도 된다(또 상기 K에서 M이 감산되는 것은 최초의 M비트 는 초기데이터로서 제 2 범용 레지스터(24)에 설정되기 때문이다). 메모리(22)에 남아 있는 것이 최종데이터가 아니면 상기 단계 S3∼S5가 반복된다.
(단계 S6) 상기 단계 S6에서 메모리(22)에 남아 있는 송수신 데이터가 최종데이터라고 판정되면 그 최종데이터가 시프트 레지스터(23)에 전송된다. 여기에서 최종데이터의 비트수는 도 3에 도시된 바와 같이 송수신 데이터의 전체 비트수 K에서 M을 감산하여 M으로 나눈 나머지 L, 즉
L=(K-M)modM
이다. 이 나머지 L은 M보다 작으므로 최종데이터는 시프트 레지스터(23)에 상위패딩으로 설정되고 하위비트에 O이 매설된다.
(단계 S7) 마지막으로 상기 단계 S4와 마찬가지로 M + L 사이클의 CRC 연산이 행해진다. 이로 인하여 전부 M ×X + M + L = K 사이클의 CRC 연산이 행해진다 (또 최종 CRC 연산의 단계수에 있어서 나머지 L에 산술논리연산기(32)의 비트폭 M이 가산되는 것은 송수신 데이터의 마지막 비트가 산술논리연산기(32)의 MSB보다 1개의 상위비트로 시프트될 때까지 연산을 반복하기 때문이다. 이것은 송수신 데이터를 2의 N승배하여 그 LSB까지 CRC 연산을 하는 것에 상당한다). 따라서 단계 S7에서 M + L 사이클(전부 합계는 상기한 바와 같이 K 사이클)의 CRC 연산이 종료되었을 때 제 2 범용 레지스터(24)에 보유되어 있는 값이 송수신 데이터 전체에 대한 CRC 연산결과가 된다. 따라서 송신의 경우에는 이 제 2 범용 레지스터(24)에 보유되어 있는 값이 예를 들어 일단 메모리(22)에 저장되어 송신데이터에 부가됨으로써 CRC 부호화된 송신데이터가 된다. 또 수신의 경우에는 이 제 2 범용 레지스터(24) 에 보유되어 있는 값이 0인지의 여부를 판단함으로써 구체적으로는 예를 들어 제 2 범용 레지스터(24)에 보유된 값과 전체 비트의 값이 0인 제로데이터의 배타적 논리합 연산을 하여 도시하지 않는 제로플래그 레지스터가 세트되는지의 여부 등으로 수신된 데이터에 에러가 없는지의 여부를 판정할 수 있다.
다음으로 상기 동작에 대하여 도 4 및 도 5에 기초하여 구체적인 데이터예를 들어 설명한다.
우선 부호화의 예에 대하여 설명한다. 이 예에서는 도 4에 도시된 바와 같이 부호화 전의 송신데이터가「100000110101(2진 표현)」(비트수 K = 12), 생성다항식이「10101(2진 표현)」 (비트수 N = 5)로 한다. 이 경우 5사이클의 CRC 연산의 반복 횟수 X는,
X = int((K-M)/M) = int((12-5)/5) = 1회,
최종데이터의 비트수 L은,
L = (K-M)modM = (12-5)mod5 = 2,
또 최종 CRC 연산의 사이클수는,
M+L = 5+2 = 7
이다.
(1) CRC 연산이 시작될 때에는 제 1 범용 레지스터(12)에 상기 생성다항식「10101」이 설정되는 동시에 제 2 범용 레지스터(24)에 송신데이터의 최초의 5비트의 값「10000」이 설정되고, 시프트 레지스터(23)에는 계속되는 5비트의 값「01101」이 설정된다.
(2) 최초의 CRC 연산사이클 1에서는 제 2 범용 레지스터(24)의 MSB의 값이 「1」이므로 셀렉터(13)에 의해 생성다항식「10101」이 선택되고, 그 생성다항식과 제 2 범용 레지스터(24)의 MSB보다 하위의 4비트(정확하게는 배럴시프터(25)에 의해 좌시프트된 후의 LSB보다 상위의 4비트)의 값「0000」 및 시프트 레지스터(23)의 MSB의 값「0」이 산술논리연산기(32)에 의해 배타적 논리합 연산된다. 그 연산결과는「10101」이 되고 이 연산결과는 제 2 범용 레지스터(24)에 저장된다.
(3) 또 시프트 레지스터(23)에 보유된 값은 1비트 좌시프트된다. 여기에서 도 4에서는 LSB에 매설되는 값은 O으로 되어 있으나 이것은 O가 아니어도 된다(이것에 대하여 최종 CRC 연산에서는 송신데이터를 2의 N승배하는 것에 대응시키기 위해 0이 매설될 필요가 있다).
(4) 이하 동일한 동작이 반복되고, 5사이클의 CRC 연산이 종료되면 메모리(22)에 저장되어 있는 2비트의 최종데이터「01」이 시프트 레지스터(23)에 상위패딩으로 하위비트에 0이 매설되어 전송된다. 이하 최종 CRC 연산으로 상기 (2), (3)과 같은 동작이 7사이클 반복된다.
(5) 최종 CRC 연산이 종료되었을 때 제 2 범용 레지스터(24)에 보유되어 있는 값「00010」이 CRC 연산결과이다. 따라서 도 5에 도시된 바와 같이 원래의 송신데이터의 말미에 상기 CRC 연산결과가 에러검출부호로서 부가되고 17비트의 부호화 데이터(「10000011010100010」)가 된다.
한편 상기한 바와 같이 하여 부호화된 데이터의 복호가 행해지는 경우의 동작은 도 5에 도시된 바와 같이 상기 부호화의 경우의 (1)∼(4)와 마찬가지이다. 이 복호에 의해 CRC 연산결과가 도 5에 도시된 바와 같이 「00000」이 되면 데이터에 에러가 없다고 판정된다.
여기에서 이 예에서는 상기한 바와 같이 에러검출부호가 부가되어 데이터의 비트길이가 17비트로 되어 있으므로 5사이클의 CRC 연산의 반복횟수 X는,
X = int((K-M)/M) = int((17-5)/5) = 2회,
최종데이터의 비트수 L은,
L = (K-M)modM = (17-5)mod5 = 2가 된다.
또 최종 CRC 연산의 사이클수는,
M+L = 5+2 = 7
이지만 도 5에 도시된 바와 같이 최종데이터의 비트수 L과 같은 2사이클의 CRC 연산을 한 시점에서 나머지가 0으로 되어 있으면 그 후의 나머지도 O인 채로 되고, 나머지가 0으로 되어 있지 않으면 그 후에 0이 되는 경우도 없으므로 2사이클에서 동작을 정지시켜도 결과는 같다. 단 상기한 바와 같이 7 사이클 반복되도록 하여, 즉 부호화와 복호에서 같은 동작이 행해지도록 하여 구성의 간소화를 도모하도록 해도 된다.
또 상기의 예에서는 각 구성요소의 비트폭이 서로 같은 예를 나타내었으나, 이것에 한정되지 않고 예를 들어 제 1 범용 레지스터(12) 및 산술논리연산기(32)와 그 밖의 구성요소에서 비트폭이 다르도록 하거나 제 1 범용 레지스터(12) 등과 산술논리연산기(32)에서 비트폭이 다르도록 해도 된다.
또 송수신 데이터는 메모리(22)에 저장되는 예를 나타내었으나 예를 들어 수 신데이터가 직렬데이터로서 입력되는 경우에는 시프트 레지스터(23)를 설치하지 않고, 수신데이터가 버퍼(FIFO ; first in first out)로부터 직접 제 2 범용 레지스터(24)나 산술논리연산기(32)에 공급되도록 해도 된다.
또 상기 CRC 연산장치에서 배럴시프터(25)는 입력되는 데이터를 1비트 시프트시킬 뿐이므로 사이클 시간에 여유가 있는 경우 등에는 시프트 레지스터를 이용할 수도 있다.
또 제 2 범용 레지스터(24) 대신에 CRC 연산 전용의 레지스터를 설치하는 경우에는 입출력을 1비트 어긋나게 함으로써 배럴시프터(25)를 이용하지 않도록 할 수도 있다.
또 제 1 범용 레지스터(12)나 제 2 범용 레지스터(24) 대신에 메모리를 이용하도록 할 수도 있다.
또 셀렉터(13)의 교체제어는 상기한 바와 같이 제 2 범용 레지스터(24)의 MSB의 값에 따라 행하는 것에 한정되지 않고, 산술논리연산기(32)에 의해 배타적 논리합 연산이 행해질 때 그 연산결과의 MSB의 값을 보유하는 플래그 레지스터를 설치하고, 그 플래그 레지스터에 보유되는 값에 따라 제어해도 된다. 또 이 경우에 최초 1사이클의 CRC 연산이 행해질 때에는 일단 배럴시프터(25)에서 좌시프트시키지 않고(또는 25를 바이패스시켜) 산술논리연산기(32)에 입력시키도록 하면 최초의 플래그 레지스터의 값을 설정할 수 있다.
또 송수신 데이터의 모든 비트에 관한 상기와 같은 일련의 CRC 연산이 연산명령 실행제어부(41)에 내장된 마이크로 프로그램에 의해 실행되도록 하여 1 또는 소수의 프로그램 명령으로 CRC 연산을 지시할 수 있도록 해도 된다.
(제 2 실시예)
제 2 실시예로서 생성다항식 설정레지스터를 포함하는 하드웨어에 의해 구성되고, 임의의 비트길이의 생성다항식을 적용할 수 있는 CRC 연산장치의 예를 설명한다.
이 CRC 연산장치는 도 6에 도시된 바와 같이 CRC 연산부(51)와 생성다항식 공급부(61)를 구비한다.
상기 CRC 연산부(51)(CRC 연산수단)는 소정의 M단(M비트분)의 D형 플립플롭(52...)이 배타적 논리합 게이트(53...)를 통해 접속되어 구성된다. 이 CRC 연산부(51)는 연산데이터가 1비트씩 입력됨으로써 CRC 연산을 행하도록 되어 있다. 연산결과의 몫은 최후단의 D형 플립플롭(52)으로부터 차례로 출력되고, 나머지는 CRC 연산이 종료한 시점에서 각 D형 플립플롭(52)으로부터 출력된다.
또 생성다항식 공급부(61)는 생성다항식이 저장되는 M비트폭의 생성다항식 설정 레지스터(62)(생성다항식 보유수단)와, 셀렉터(63)와, 상위패딩부(64)를 구비한다. 상기 셀렉터(63)는 최후단의 D형 플립플롭(52)으로부터의 출력에 따라 상기 제 1 실시예의 셀렉터(13)와 마찬가지로 생성다항식 설정 레지스터(62)에 저장된 값(생성다항식) 또는 전체 비트의 값이 0인 데이터("0")를 출력하게 되어 있다. 또한 상위패딩부(64)는 적용되는 생성다항식의 비트수 N이 생성다항식 설정 레지스터(62)의 비트폭 M보다 작을 때 생성다항식이 상위패딩되어 하위비트에 O이 매설된 값을 생성다항식 설정레지스터(62)에 저장하도록 되어 있다. 구체적으로는 예를 들어 시프트 레지스터에 의해 좌시프트하도록 해도 되고, 프로그램의 시프트명령 등에 의해 좌시프트하도록 해도 된다. 또 상기 상위패딩부(64)를 설치하는 대신 미리 상위패딩된 생성다항식을 입력하도록 해도 된다.
상기한 바와 같이 구성됨으로써 생성다항식의 비트수 N이 생성다항식 설정레지스터(62)의 비트폭 M보다 작은 경우 상위의 N비트보다 하위비트에 대해서는 생성다항식 설정레지스터(62)에 0이 매설되어 있으므로 최후단의 D형 플립플롭(52)으로부터의 출력에 관계없이 셀렉터(63)에서는 0이 출력된다. 따라서 상기 하위비트에 대응하는 배타적 논리합 게이트(53)로부터는 전단의 D형 플립플롭(52)으로부터 출력되는 값과 같은 값이 출력되므로 생성다항식의 비트수와 생성다항식 설정레지스터(62)의 비트폭과, D형 플립플롭(52)의 단수가 서로 같은 경우와 같은 결과가 얻어진다. 따라서 비트수에 관해서도 적용되는 생성다항식의 유연성을 향상시킬 수 있다.
이상과 같이 본 발명에 의하면 통상적으로 프로세서 등이 구비하는 구성요소를 이용할 수 있도록 함으로써 대폭적인 회로규모의 증가를 초래하지 않고 고속의 CRC 연산을 행할 수 있으며 여러가지 생성다항식을 유연하게 적용할 수 있는 효과를 얻을 수 있다.

Claims (11)

  1. 생성다항식을 나타내는 데이터를 보유하고, 상기 생성다항식을 나타내는 데이터와 전체 비트의 값이 O인 제로데이터를 선택적으로 출력하는 생성다항식 공급수단과,
    CRC 연산을 하는 연산데이터를 출력하는 연산데이터 공급수단과,
    상기 생성다항식을 나타내는 데이터 또는 제로데이터와, 상기 연산데이터의 배타적 논리합연산을 하는 산술논리 연산수단을 구비하며,
    상기 생성다항식 공급수단은 상기 산술논리 연산수단에 의한 연산결과의 최상위비트의 값에 따라 상기 생성다항식을 나타내는 데이터와 제로데이터를 선택하도록 구성되고,
    상기 연산데이터 공급수단은 상기 산술논리 연산수단에 의한 연산결과의 최상위비트보다 하위비트의 값을 상위비트의 값으로 하고, 미처리된 CRC 연산대상이 되는 데이터의 최상위비트의 값을 최하위비트의 값으로 하는 데이터를 상기 연산데이터로서 출력하도록 구성되는 것을 특징으로 하는 CRC 연산장치.
  2. 제 1항에 있어서,
    상기 생성다항식 공급수단은,
    상기 생성다항식을 나타내는 데이터를 보유하는 제 1 레지스터와,
    상기 생성다항식을 나타내는 데이터 또는 상기 제로데이터를 선택적으로 출 력하는 셀렉터를 구비하며,
    상기 연산데이터 공급수단은,
    상기 산술논리 연산수단에 의한 상기 연산결과를 보유하는 제 2 레지스터와,
    상기 제 2 레지스터에 보유되는 상기 연산결과를 1비트 좌시프트하여 출력하는 시프터와,
    상기 미처리된 CRC 연산대상이 되는 데이터를 보유하는 메모리와,
    상기 메모리로부터 전송된 상기 미처리된 CRC 연산대상이 되는 데이터 중의 일부를 보유하고 상기 보유된 데이터의 최상위비트의 값을 출력하는 동시에 상기 보유된 데이터를 1비트씩 좌시프트하는 시프트 레지스터를 구비하는 것을 특징으로 하는 CRC 연산장치.
  3. 제 1항에 있어서,
    연산명령실행 제어수단을 구비하고, 상기 연산명령실행 제어수단은 소정의 연산명령에 따라 상기 생성다항식 공급수단에 의한 상기 생성다항식을 나타내는 데이터 또는 제로데이터의 출력, 상기 연산데이터 공급수단에 의한 상기 연산데이터의 출력 및 상기 산술논리 연산수단에 의한 상기 배타적 논리합 연산의 실행을 제어하도록 구성되는 것을 특징으로 하는 CRC 연산장치.
  4. 제 3항에 있어서,
    상기 연산명령실행 제어수단은 소정의 연산명령에 따라 1회의 상기 산술논리 연산수단에 의한 상기 배타적 논리합 연산이 행해지기 위한 상기 생성다항식 공급수단, 상기 연산데이터 공급수단 및 상기 산술논리 연산수단에 의한 동작을 제어하도록 구성되는 것을 특징으로 하는 CRC 연산장치.
  5. 제 3항에 있어서,
    상기 연산명령실행 제어수단은 소정의 연산명령에 따라 상기 미처리된 CRC 연산대상이 되는 데이터의 전부에 대하여 상기 산술논리 연산수단에 의한 상기 배타적 논리합 연산이 행해지기 위한 상기 생성다항식 공급수단, 상기 연산데이터 공급수단 및 상기 산술논리 연산수단에 의한 동작을 제어하도록 구성되는 것을 특징으로 하는 CRC 연산장치.
  6. 제 2항에 있어서,
    연산명령실행 제어수단을 구비하며, 상기 연산명령실행 제어수단은 소정의 연산명령에 따라 상기 시프트 레지스터에 보유된 모든 비트의 값에 대하여 상기 산술논리 연산수단에 의한 상기 배타적 논리합 연산이 행해지기 위한 상기 생성다항식 공급수단, 상기 연산데이터 공급수단 및 상기 산술논리 연산수단에 의한 동작을 제어하도록 구성되는 것을 특징으로 하는 CRC 연산장치.
  7. 제 2항에 있어서,
    상기 미처리된 CRC 연산대상이 되는 데이터의 전부에 대하여 상기 산술논리 연산수단에 의한 상기 배타적 논리합 연산이 행해진 후 상기 제 2 레지스터에 보유되어 있는 값을 상기 메모리에 저장하도록 구성되는 것을 특징으로 하는 CRC 연산장치.
  8. 제 2항에 있어서,
    상기 미처리된 CRC 연산대상이 되는 데이터의 전부에 대하여 상기 산술논리 연산수단에 의한 상기 배타적 논리합 연산이 행해진 후 상기 제 2 레지스터에 보유된 값이 0인지의 여부에 따라 상기 미처리된 CRC 연산대상이 되는 데이터에 에러가 있는지의 여부를 판정하도록 구성되는 것을 특징으로 하는 CRC 연산장치.
  9. 제 1항에 있어서,
    상기 생성다항식 공급수단은 상기 생성다항식을 나타내는 데이터의 비트수가 상기 생성다항식 공급수단이 보유할 수 있는 비트수보다 적은 경우에 상기 생성다항식을 나타내는 데이터를 상위패딩으로 보유하는 동시에 하위비트에 O의 값을 보유하도록 구성되는 것을 특징으로 하는 CRC 연산장치.
  10. 생성다항식을 나타내는 데이터를 보유하는 생성다항식 보유수단과,
    생성다항식을 나타내는 데이터 및 CRC 연산대상이 되는 데이터에 기초하여 CRC 연산을 하는 CRC 연산수단을 구비하며,
    상기 생성다항식을 나타내는 데이터의 비트수가 상기 생성다항식 보유수단이 보유할 수 있는 비트수보다 적은 경우에 상기 생성다항식 보유수단에 상기 생성다항식을 나타내는 데이터가 상위패딩으로 보유되는 동시에 하위비트에 O의 값이 보유되도록 구성되는 것을 특징으로 하는 CRC 연산장치.
  11. 생성다항식을 나타내는 데이터와 전체 비트의 값이 O인 제로데이터를 선택적으로 출력하는 생성다항식 공급단계와,
    CRC 연산을 하는 연산데이터를 출력하는 연산데이터 공급단계와,
    상기 생성다항식을 나타내는 데이터 또는 제로데이터와, 상기 연산데이터와의 배타적 논리합연산을 하는 산술논리 연산단계를 구비하고,
    상기 생성다항식 공급단계는 선행하는 상기 산술논리 연산단계에 의한 연산결과의 최상위비트의 값에 따라 상기 생성다항식을 나타내는 데이터 또는 제로데이터를 선택하며,
    상기 연산데이터 공급단계는 상기 산술논리 연산단계에 의한 연산결과의 최상위비트보다 하위비트의 값을 상위비트의 값으로 하고 미처리된 CRC 연산대상이 되는 데이터의 최상위비트의 값을 최하위비트의 값으로 하는 데이터를 상기 연산 데이터로서 출력하는 것을 특징으로 하는 CRC 연산방법.
KR1020010019804A 2000-04-14 2001-04-13 씨알씨 연산장치 및 씨알씨 연산방법 KR100745863B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP??2000-113734 2000-04-14
JP2000113734 2000-04-14

Publications (2)

Publication Number Publication Date
KR20010098575A KR20010098575A (ko) 2001-11-08
KR100745863B1 true KR100745863B1 (ko) 2007-08-02

Family

ID=18625651

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010019804A KR100745863B1 (ko) 2000-04-14 2001-04-13 씨알씨 연산장치 및 씨알씨 연산방법

Country Status (3)

Country Link
US (2) US6754870B2 (ko)
EP (1) EP1148650A1 (ko)
KR (1) KR100745863B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101462157B1 (ko) 2009-12-18 2014-11-20 한국전자통신연구원 Mac 연산을 포함하는 연산 장치, 이를 이용한 dsp 구조 및 필터링 방법

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6836869B1 (en) * 2001-02-02 2004-12-28 Cradle Technologies, Inc. Combined cyclic redundancy check (CRC) and Reed-Solomon (RS) error checking unit
US7216285B2 (en) 2001-11-09 2007-05-08 Marvell International Ltd. System and method for generating cyclic redundancy check
US7290196B1 (en) * 2003-03-21 2007-10-30 Cypress Semiconductor Corporation Cyclical redundancy check using nullifiers
US7047453B2 (en) * 2003-11-13 2006-05-16 Nokia, Inc. Method and apparatus for managing network traffic using cyclical redundancy check hash functions
US7171604B2 (en) * 2003-12-30 2007-01-30 Intel Corporation Method and apparatus for calculating cyclic redundancy check (CRC) on data using a programmable CRC engine
US7360142B1 (en) 2004-03-03 2008-04-15 Marvell Semiconductor Israel Ltd. Methods, architectures, circuits, software and systems for CRC determination
US7434150B1 (en) * 2004-03-03 2008-10-07 Marvell Israel (M.I.S.L.) Ltd. Methods, circuits, architectures, software and systems for determining a data transmission error and/or checking or confirming such error determinations
JP2006060663A (ja) * 2004-08-23 2006-03-02 Oki Electric Ind Co Ltd 巡回符号回路
US7398452B2 (en) * 2004-12-16 2008-07-08 Broadcom Corporation Method and system for determining a signal quality metric in event of a CRC false positive
KR101110625B1 (ko) * 2005-03-09 2012-02-16 삼성전자주식회사 전송 데이터의 무결성 검사 방법 및 수단
US7512864B2 (en) * 2005-09-30 2009-03-31 Josef Zeevi System and method of accessing non-volatile computer memory
KR100703806B1 (ko) * 2006-02-16 2007-04-09 삼성전자주식회사 비휘발성 메모리, 이를 위한 데이터 유효성을 판단하는장치 및 방법
JP5298621B2 (ja) * 2007-12-21 2013-09-25 ソニー株式会社 送信装置および方法、受信装置および方法
US8352835B2 (en) * 2009-06-10 2013-01-08 International Business Machines Corporation Data verification using checksum sidefile
US8417961B2 (en) * 2010-03-16 2013-04-09 Oracle International Corporation Apparatus and method for implementing instruction support for performing a cyclic redundancy check (CRC)
US8468423B2 (en) 2011-09-01 2013-06-18 International Business Machines Corporation Data verification using checksum sidefile
CN104133736A (zh) * 2014-07-29 2014-11-05 江苏宏云技术有限公司 一种矢量crc校验指令的设计方法
CN114443347B (zh) * 2021-12-23 2022-11-22 湖南毂梁微电子有限公司 一种可配置crc码计算方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05151007A (ja) * 1991-11-28 1993-06-18 Nintendo Co Ltd Crc演算装置
US5390196A (en) 1992-11-12 1995-02-14 Bull Hn Information Systems Inc. Byte-wise determination of a checksum from a CRC-32 polynomial
KR950023184A (ko) * 1993-12-09 1995-07-28 양승택 다중연결이 가능한 8비트 병렬처리 씨.알.씨(crc)-32코드 생성 및 검출 회로
KR19980028168A (ko) * 1996-10-21 1998-07-15 김광호 순환리더던시검사(crc)회로
KR19980036814A (ko) * 1996-11-19 1998-08-05 정장호 Atm 교환기의 crc 생성 회로
KR19980050154A (ko) * 1996-12-20 1998-09-15 양승택 선택적 병력 crc-32 처리 인코더와 디코더 및 그 병렬처리 방법
EP0936537A1 (en) * 1998-02-13 1999-08-18 STMicroelectronics Limited Cyclic redundancy check in a computer system

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4720830A (en) 1985-12-02 1988-01-19 Advanced Micro Devices, Inc. CRC calculation apparatus having reduced output bus size
EP0470451A3 (en) 1990-08-07 1993-01-20 National Semiconductor Corporation Implementation of the high-level data link control cyclic redundancy check (hdlc crc) calculation
JP3252029B2 (ja) 1993-08-04 2002-01-28 松下電器産業株式会社 符号化装置及び符号化方法
US5768291A (en) 1994-12-29 1998-06-16 Motorola, Inc. Method and apparatus for error mitigating a received communication signal
US5878057A (en) * 1995-10-06 1999-03-02 Tektronix, Inc. Highly parallel cyclic redundancy code generator
JPH10107647A (ja) 1996-09-25 1998-04-24 Mitsubishi Electric Corp Crc回路
JPH1098392A (ja) 1996-09-25 1998-04-14 Mitsubishi Electric Corp Crc符号発生回路、符号誤り検出回路、及びcrc回路
JPH10320221A (ja) 1997-05-16 1998-12-04 Hitachi Ltd プロセッサ
US6192498B1 (en) * 1997-10-01 2001-02-20 Globepan, Inc. System and method for generating error checking data in a communications system
JP2000081989A (ja) 1998-09-07 2000-03-21 Hitachi Ltd プロセッサおよび該プロセッサを用いた巡回符号化処理方法
JP3607116B2 (ja) 1999-04-28 2005-01-05 松下電器産業株式会社 演算処理装置
JP2001036414A (ja) 1999-07-21 2001-02-09 Nec Corp Crc符号生成回路及びcrcエラー検出回路

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05151007A (ja) * 1991-11-28 1993-06-18 Nintendo Co Ltd Crc演算装置
US5390196A (en) 1992-11-12 1995-02-14 Bull Hn Information Systems Inc. Byte-wise determination of a checksum from a CRC-32 polynomial
KR950023184A (ko) * 1993-12-09 1995-07-28 양승택 다중연결이 가능한 8비트 병렬처리 씨.알.씨(crc)-32코드 생성 및 검출 회로
KR19980028168A (ko) * 1996-10-21 1998-07-15 김광호 순환리더던시검사(crc)회로
KR19980036814A (ko) * 1996-11-19 1998-08-05 정장호 Atm 교환기의 crc 생성 회로
KR19980050154A (ko) * 1996-12-20 1998-09-15 양승택 선택적 병력 crc-32 처리 인코더와 디코더 및 그 병렬처리 방법
EP0936537A1 (en) * 1998-02-13 1999-08-18 STMicroelectronics Limited Cyclic redundancy check in a computer system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101462157B1 (ko) 2009-12-18 2014-11-20 한국전자통신연구원 Mac 연산을 포함하는 연산 장치, 이를 이용한 dsp 구조 및 필터링 방법

Also Published As

Publication number Publication date
US6754870B2 (en) 2004-06-22
EP1148650A1 (en) 2001-10-24
KR20010098575A (ko) 2001-11-08
US20040221221A1 (en) 2004-11-04
US20020002692A1 (en) 2002-01-03

Similar Documents

Publication Publication Date Title
KR100745863B1 (ko) 씨알씨 연산장치 및 씨알씨 연산방법
US6029186A (en) High speed calculation of cyclical redundancy check sums
US9071275B2 (en) Method and device for implementing cyclic redundancy check codes
KR100210583B1 (ko) 에러정정 부호화 복호화 방법 및 이 방법을 사용하는 회로
KR100439211B1 (ko) 연산처리장치
JP5126230B2 (ja) 誤り検出方法
KR20080040706A (ko) 데이터 스트림에 주기적 덧붙임 검사(crc)를 수행하기위한 crc 생성 회로를 구성하는 방법 및 장치
US6523146B1 (en) Operation processing apparatus and operation processing method
KR20060125837A (ko) 데이터를 인코딩하기 위한 방법 및 장치
EP1146652B1 (en) High speed coding apparatus for convolutional codes
KR20000000772A (ko) 길쌈부호 생성기 및 이를 내장한 디지털 신호프로세서
JP2000172520A (ja) ガロア体演算プロセッサ
JP3512175B2 (ja) Crc演算装置、およびcrc演算方法
US5954836A (en) Method and apparatus for pipelined encoding
JP3607116B2 (ja) 演算処理装置
JPH0353815B2 (ko)
JP2001036414A (ja) Crc符号生成回路及びcrcエラー検出回路
US11362679B2 (en) Method and apparatus for generating redundant bits for error detection
JP2008112522A (ja) 誤り検出装置および誤り検出方法
JP3250363B2 (ja) 演算装置
JP2003243992A (ja) 符号生成回路
KR900000670Y1 (ko) 리드-솔로몬 엔코오더의 코오드워드 발생회로
JPH06112848A (ja) ビタビ復号用演算装置
WO2010064205A1 (en) System and method for viterbi decoding using application specific extensions
JP2001186021A (ja) 誤り検出装置及びそれを内蔵した演算処理装置

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20100726

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee