KR20030036826A - 선형 블록 코드의 인코딩 방법 및 장치 - Google Patents

선형 블록 코드의 인코딩 방법 및 장치 Download PDF

Info

Publication number
KR20030036826A
KR20030036826A KR10-2003-7004261A KR20037004261A KR20030036826A KR 20030036826 A KR20030036826 A KR 20030036826A KR 20037004261 A KR20037004261 A KR 20037004261A KR 20030036826 A KR20030036826 A KR 20030036826A
Authority
KR
South Korea
Prior art keywords
bits
responses
zero
encoder
string
Prior art date
Application number
KR10-2003-7004261A
Other languages
English (en)
Other versions
KR100894234B1 (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 KR20030036826A publication Critical patent/KR20030036826A/ko
Application granted granted Critical
Publication of KR100894234B1 publication Critical patent/KR100894234B1/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
    • 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/095Error detection codes other than CRC and single parity bit codes
    • H03M13/096Checksums
    • 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] 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/47Error detection, forward error correction or error protection, not provided for in groups H03M13/01 - H03M13/37
    • 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/0041Arrangements at the transmitter end

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)

Abstract

선형 블록 코드의 효율적인 인코딩을 위한 방법 및 장치는 한 세트의 임펄스 응답을 포함하는 검색 테이블을 이용하여 병렬로 인코딩하는 것에 의해 고속 성능을 지원한다. 장점은, 기존 방식에는 부족한 범위성을 갖는다는 점이다.

Description

선형 블록 코드의 인코딩 방법 및 장치{METHOD AND APPARATUS FOR ENCODING OF LINEAR BLOCK CODES}
발명의 배경
1. 발명의 분야
본 발명은 디지털 신호의 전송 (즉, 전송 및/또는 저장) 에 관한 것이다. 보다 구체적으로, 본 발명은 선형 블록 코드의 인코딩에 관한 것이다.
2. 관련 기술의 설명
일반적으로 디지털 신호는 음성, 데이터 및 비디오 통신과 이미지, 데이터 및 문서의 저장, 프로세싱 및 기록 보존 (archiving) 과 같은 애플리케이션에 이용된다. 그러나, 저장 매체 및 전송 채널이 불완전하기 때문에, 이들을 통해 전달되는 디지털 정보에 오류가 발생할 수 있다. 저장 매체에서는, 예를 들어, 결함으로 인해, 디지털 신호의 일부 또는 전부의 적절한 저장, 보유, 또는 검색을 방해하는 오류가 발생할 수 있다. 전송 채널에서는, 예를 들어, 다른 신호로부터의 간섭 또는 페이딩 프로세스 (fading process) 로 인한 채널 품질의 변화 때문에 오류가 발생할 수 있다.
데이터 견고성 (robustness) 을 증가시키기 위해, 디지털 신호로부터 검사값 (check value) 을 계산하여 디지털 신호와 함께 전송하는 오류 검출 방식을 이용할 수 있다. (일반적으로, 디지털 신호는 블록으로 분할되며, 검사값은 전송 전에각 블록으로부터 계산되어 각 블록에 첨부된다. 다른 방식으로, 디지털 신호와 검사값이 인터리브될 수 있고 그리고/또는 몇가지 다른 시간에서의 상대 배열 (relative arrangement in time) 을 가질 수도 있다. 신호를 검색하거나 수신할 때, 검사값 계산을 반복한다. 전송 전후에 계산된 검사값이 일치하면, 전송된 신호는 오류가 없는 것으로 상정할 수 있다. 검사값이 일치하지 않으면, 신호는 하나 이상의 오류를 포함하는 것으로 상정할 수 있다. 이러한 계산에 선형 블록 코드를 이용할 경우, 얻어진 검사값은 검사합 (checksum) 이라 하고, 이러한 계산에 순환 코드 (cyclic code) 를 이용할 경우, 얻어진 검사값은 주기적 덧붙임 검사합 (cyclic redundancy checksum) 또는 CRC 라 한다. 이용된 코드 타입과 맞닥뜨린 오류의 갯수 및/또는 타입에 따라, 디지털 신호의 재전송없이도 이러한 오류의 정정이 가능할 수 있다.
(n, k) 순환 코드 (C) 의 경우, k 개 정보 심볼은 하나의 n-심볼 코드 워드 (code ward) 로 인코딩된다. 예를 들어, (48, 32) 순환 코드는, 32 개의 오리지널 정보 심볼과 하나의 16-비트 CRC 로 이루어진 48-비트 코드 워드를 생성한다. 이러한 타입의 순환 코드는, 다음의 형태를 가진 (n-k) 차수의 생성자 다항식 (G(X) ; generator polynomial) 에 의해 고유하게 규정될 수 있다.
이러한 코드에 따라 계산된 검사합은 (n-k) 개 비트의 길이를 갖는다. 도 1 에, (n, k) 코드에 대한 예시적인 포맷을 나타낸다.
갈로아 필드 (Galois field ; GF(2)) 에 관한 가산은 논리 배타적-OR (XOR) 연산으로 변형되는 한편, 이러한 유한 필드에 관한 승산은 논리 AND 연산으로 변형된다. 따라서, 상술한 바와 같은 생성자 다항식에 의해 발생되어 GF(2) 에 관해 적용된 순환 코드의 경우, 도 2 에 나타낸 논리 회로를 이용하여 인코더를 구현할 수 있다. 이 도면에서, gi는 생성자 다항식 (G(X)) 의 계수를 나타내고, (n-k) 개 저장 소자 (storage elements) 각각은 1 비트값을 보유하며, 저장 소자의 내용은 일제히 (in union) 업데이트된다 (즉, 매 클록 사이클에서 값들이 저장 소자로 시프트된다). 처음의 k 회 시프트 동안, 스위치 풀 (switch pulls) 은 상부 위치에 있어, 정보 신호가 인코더에 로딩되게 (그리고 원한다면, 출력으로 전달되게) 한다. 다음의 (n-k) 회 시프트 동안, 스위치 풀은 하부로 이동해 인코더의 상태 (즉, 저장 소자의 지시 내용 (ordered contents) 에 대응되는 비트 스트링) 가 검사합 신호로서 기록되게 한다.
인코더의 설계 동안, 생성자 다항식이 공지된다면, i-번째 AND 게이트를 생략 (gi= 0 의 경우) 하거나 i-번째 AND 게이트를 접속 (connection) 으로 대체 (gi= 1 의 경우) 함으로써, 도 2 의 회로는 간단해질 수 있다. 예를 들어, 코드 다항식
은 (예를 들어, Telecommunications Industry Association, Arlington, VA 에 의해 출판된 IS-2000 표준의 part 2, section 2.1.3.4.2.1 및 2.1.3.5.2.1 에서 설명한바와 같이) 도 3 에 나타낸 논리 회로로 구현될 수 있다.
이들은 아주 작은 저장 공간과 극히 적은 논리 게이트를 이용하므로, 극히 낮은 하드웨어 요구 사항을 갖지만, 도 2 및 도 3 에 나타낸 바와 같은 직렬 인코더 구현은 클록 주기당 한 비트의 입력 신호만을 프로세스한다. 특히 실시간 데이터 스트림과 관련된 애플리케이션 (예를 들어, 통신 애플리케이션) 의 경우, 이러한 성능은 수용이 불가능할 정도로 느릴 수 있다.
사이클당 1 개 비트 이상에서 동작하는 인코더는 미리 계산된 검색 테이블 (lookup tables) 을 이용하여 구현된다. 이러한 구현에서는, 현재 사이클에 대한 나머지가 검색 테이블로부터 값을 선택하기 위한 인덱스로 이용되며, 선택된 값은 다음 사이클에 대한 나머지를 계산하는데 이용된다. 이러한 인코더가 사이클당 다수 비트를 프로세스하긴 하지만, 이러한 인코더는 그 사이즈가 나머지의 길이에 지수적으로 관련되는 검색 테이블을 필요로 한다. 따라서, 이러한 구현은 비례가 불완전하며, 고속 및 낮은 저장 공간 소모 양자를 요하는 애플리케이션에는 부적절할 수 있다.
요약
본 발명의 실시예에 따른 장치에서, 논리 매트릭스는 정보 신호 및, 이 정보 신호의 부분들에 대응되는 임펄스 응답을 수신한다. 논리 매트릭스는 2 이상의 임펄스 응답의 합에 기초하는 검사합을 출력한다.
도면의 간단한 설명
도 1 은 코드 워드의 포맷을 나타내는 도면이다.
도 2 는 순환 코드용 일반 인코더에 대한 논리도이다.
도 3 은 특정한 순환 코드용 인코더에 대한 논리도이다.
도 4 는 본 발명의 실시예에 따른 장치에 대한 블록도이다.
도 5 는 논리 매트릭스 (120) 에 대한 회로도이다.
도 6 은 보다 작은 용량을 가진 XOR 게이트의 트리 (tree) 로 구성된 XOR 게이트를 나타낸다.
도 7 은 검색 테이블 (110) 을 발생하는 방법에 대한 흐름도이다.
도 8 은 도 7 의 방법에 대한 서브 태스크 (P120 및 P130) 의 1 회 반복을 나타낸다.
도 9 는 본 발명의 다른 실시예에 따른 장치에 대한 블록도이다.
도 10 은 정보 신호의 인스턴스 (instances) 로 이루어진 데이터 신호를 나타내는 그래프이다.
도 11 은 도 7 에 나타낸 흐름도를 지속시키는 검색 테이블 (220) 을 발생하는 방법에 대한 흐름도이다.
도 12 는 도 11 의 방법에 대한 서브 태스크 (P180, P190 및 P200) 의 1 회 반복을 나타낸다.
도 13 은 논리 매트릭스 (220) 에 대한 회로도이다.
도 14A 는 데이터 신호의 인스턴스로 이루어진 신호 스트림을 나타내는 그래프이다.
도 14B 는 인코딩된 신호 스트림을 나타내는 그래프이다.
도 15 는 본 발명의 다른 실시예에 따른 장치에 대한 블록도이다.
도 16 은 흐름 제어 블록에 대한 블록도이다.
도 17 은 본 발명의 또 다른 실시예에 따른 장치에 대한 블록도이다.
상세한 설명
도 4 에 나타낸 바와 같이, 본 발명의 실시예에 따른 장치 (100) 는, 논리 매트릭스 (120) 로 입력된 k 개 비트 너비의 정보 신호 (20) 를 수신한다. 검색 테이블 (110) 은 소정의 인코더 응답 정보를 논리 매트릭스 (120) 입력의 다른 세트에 제공한다. 논리 매트릭스 (120) 는 이들 입력에 대해 소정의 논리 기능 (logical function) 을 수행하여 검사합 신호 (30) 를 발생한다.
검색 테이블 (110) 은, 특정한 생성자 다항식 (G(X)) 에 의해 발생된 순환 코드용 인코더 (예를 들어, 도 2 의 구체적인 회로 구현에 따른 인코더) 의 임펄스 응답에 관련되며 소정의 초기 상태를 가진 정보를 저장한다. 특히, 검색 테이블 (110) 은 이와 같은 인코더의 k 개 임펄스 응답을 저장하는데, 이 경우, j-번째 임펄스 응답 (j 는 1 내지 k 의 정수) 은 j-번째 임펄스 입력 (즉, j-번째 비트만이 0 이 아닌 값을 갖는 길이 k 의 스트링) 을 시프팅하여 얻은 인코더의 상태이다. 이하, 검색 테이블 (110) 을 구성하는 예시적인 방법을 설명한다.
논리 매트릭스 (120) 는 검색 테이블 (110) 로부터 정보 신호 (20) 의 0 이 아닌 비트에 대응되는 임펄스 응답을 선택하고, 이들 응답의 합을 출력한다. 도 5 는, k 개의 AND 게이트 (140) 와 1 개의 XOR 게이트 (150) 를 포함하는 논리 매트릭스 (120) 의 예시적 구현에 관한 블록도를 나타낸다. 각각의 AND 게이트(140(m) ; m 은 1 내지 k 의 정수) 는 1-비트-너비의 제어 입력 및 (n-k)-비트-너비의 데이터 입력을 갖는다. 게이트 (140(m)) 로의 제어 입력이 1 의 값을 가지면, 데이터 입력은 출력으로 전달되고, 그렇지 않으면, 게이트의 출력은 0 이다. 매트릭스 (120) 의 각 게이트 (140(m)) 의 경우, 제어 입력은 정보 신호 (20) 의 m-번째 비트이고, 데이터 입력은 검색 테이블 (110) 로부터 얻은 m-번째 임펄스 응답이다. 예시적인 구현에서, AND 게이트 (140(m)) 는, 상술한 논리 기능을 수행하도록 배열된, 보다 한정된 입력 용량 (예를 들어, 2-입력 NAND 게이트) 을 가진 수 개의 또는 많은 논리 게이트를 구비한다.
XOR 게이트 (150) 는 AND 게이트 (140(m)) 의 k 개 출력을 수신하여 (n-k)-비트-너비의 출력을 발생한다. XOR 게이트 (150) 출력의 p-번째 비트 (p 는 1 내지 (n-k) 의 정수) 는, (a) AND 게이트 (140(m)) 출력의 p-번째 비트들 중 홀수 개가 1 의 값을 가지면 1 의 값을 갖고, (b) AND 게이트 (140(m)) 출력의 p-번째 비트들 중 짝수 개가 1 의 값을 가지면 0 의 값을 갖는다. 즉, XOR 게이트 (150) 의 출력은, 입력의 p-번째 비트에 대한 XOR 가 출력의 p-번째 비트가 되는, 입력에 대한 비트식 XOR (bitwise XOR) 이다.
XOR 게이트 (150) 는 보다 적은 입력 용량을 가진 XOR 게이트의 트리로서 구현될 수 있다. 예를 들어, 도 6 은 (각각이 다른 논리 게이트로부터 구현될 수 있는) 2-입력 XOR 게이트 3 개의 트리로부터 4-입력 XOR 게이트를 구성하는 방법을 나타낸다. 예시적인 구현에서, XOR 게이트 (150) 는, 상술한 논리 기능을 수행하도록 배열된, 보다 한정된 입력 용량 (예를 들어, 2-입력 NAND 게이트) 을 가진수 개의 또는 많은 논리 게이트를 구비한다.
상술한 논리 기능을 구현함에 있어서, 논리 매트릭스 (120) 의 실제 구성은 도 5 에 나타낸 특정한 형태 이외의 많은 형태를 취할 수 있다. 검색 테이블 (110) 은 고정된 초기 인코더 상태와 고정된 G(X), n 및 k 에 대해 일정하기 때문에, 예를 들어, AND 게이트 (140(m)) 로의 데이터 입력의 특정 비트가 0 이라는 것과, 따라서, 이들 게이트의 출력에 대응되는 비트 또한 0 이라는 것을 사전에 알 수 있다. 논리 표현을 이용하여 논리 매트릭스 (120) 의 동작을 설명할 수 있기 때문에, 논리 표현으로부터 0 으로 알려진 항을 제거하는데 이러한 사전 지식을 적용하여, 이 표현을 변형하고 대응되는 (예를 들어, 논리 게이트의) 구현을 간략화할 수 있다. 이러한 변형은 수동으로 또는 자동으로 수행될 수 있다. 본 발명에 따른 장치의 일 실시예에서, 특정한 G(X), n 및 k 와 특정한 초기 인코더 상태에 대한 논리 매트릭스 (120) 의 구성은, Synopsis, Inc. (Mountain View, CA) 에 의해 생산된 Design Compiler 와 같은 전자 설계 도구 (electronic design tool) 를 이용하는 것에 의해, 보다 최적화된 형태 (예를 들어, 도 5 에 나타낸 구성의 논리 동작과 등가의 논리 동작을 수행하기 위해 보다 적은 수의 논리 게이트를 요하는 형태) 로 변형된다.
도 7 은, 사전에 선택된 다항식 (G(X)) 에 의해 발생된 순환 코드용 인코더로 임펄스 입력의 시퀀스를 입력함으로써, 검색 테이블 (110) 을 발생하는 예시적인 방법에 대한 흐름도를 나타낸다. 이 방법에서, 인코더는 (예를 들어, 도 2 의 회로의 구체적인 구현에 따라) 하드웨어로 구현할 수 있다. 그러나, 일단검색 테이블 (110) 의 구성이 완료되고 나면, 더 이상 이러한 인코더를 참조하지 않고도 본 발명을 실행할 수 있다. 따라서, 다른 방법으로, 인코더의 한 부분 이상을 소프트웨어로 구현하는 것이 바람직할 수 있다. 검색 테이블 (110) 에 저장될 정보를 이용할 수 있다면, (예를 들어, 도 4 의 장치에서 알 수 있는 바와 같이) 하드웨어 또는 소프트웨어의 이러한 인코더를 참조하지 않고도 본 발명을 실행할 수 있다.
서브 태스크 (P110) 에서, 카운터값 (i) 은 1 로 설정된다. 인코더의 응답은 그 초기값에 의존하기 때문에, 서브 태스크 (P110) 또한, 소정 값의 스트링을 그 저장 소자에 저장함으로써 인코더를 초기화하는 단계를 포함한다. 도 2 에 따른 인코더가 제로 상태 (zero state) 로 초기화 (즉, 0 의 초기값이 각각의 저장 소자에 저장) 된다면, 0 값의 스트링이 입력될 때, 인코더는 그 상태를 변경하지 않을 것이다. 몇몇 애플리케이션에서는 이러한 스트링이 공통적인 선행 시퀀스이기 때문에, 다른 방법으로, 1 값의 스트링 (또는 몇몇의 0 이 아닌 다른 스트링) 으로 인코더를 초기화하는 것이 바람직할 수 있다.
서브 태스크 (P120) 에서는, i-번째 임펄스 입력 (즉, i-번째 비트만이 0 이 아닌 값을 갖는 길이 k 의 스트링) 이 인코더 (또는 그 시뮬레이션) 로 입력된다. 서브 태스크 (P130) 에서는, 이러한 입력에 대한 인코더의 응답 (즉, 임펄스 입력이 로딩된 후의 인코더 상태를 나타내는 (n-k) 개 비트의 스트링) 이 검색 테이블 (110) 의 대응되는 위치에 저장된다. 서브 태스크 (P140) 의 테스트와 서브 태스크 (P150) 에서의 루프 유지 보수 (loop maintenance) 및 초기화 동작을 통해, k개의 가능한 모든 임펄스 입력에 대한 임펄스 응답이 저장될 때까지, 서브 태스크 (P110, P120 및 P130) 가 반복된다.
도 8 은 서브 태스크 (P120 및 P130) 의 1 회 반복을 나타내는 그래프이다. 이 일례에서, 입력 식별자와 테이블 위치 사이에 다른 임의의 소정 대응관계가 이용될 수도 있지만, i-번째 임펄스 입력에 대한 인코더의 응답은 검색 테이블의 i-번째 로우에 저장된다. 도 7 및 도 8 에 나타낸 방법 이외에, 장치 (100) 에 이용하기에 적절한, 검색 테이블을 발생하는 많은 다른 방법이 가능하다.
본원에 개시된 방법 및 장치는 뛰어난 범위성 (scalability) 을 나타낸다. 예를 들어, 검색 테이블 (110) 의 사이즈는 n 이 상수 k 로 증가함에 따라 (또는 k 가 상수 (n-k) 로 증가함에 따라) 선형적으로만 증가한다. 이러한 경우, XOR 게이트 (150) 를 구현하는데 이용되는 XOR 게이트 트리의 깊이는 log2(n) 으로 증가할 것으로 예상된다.
도 9 는 본 발명의 다른 실시예에 따른 장치 (200) 의 블록도를 나타낸다. 이 장치에서, 논리 매트릭스 (220) 에 의해 출력된 응답 신호 (60) 는, 후속 인코딩에서의 초기 인코더 상태로 이용하기 위해 인코더 상태 레지스터 (340) 에 저장되고 그리고/또는 후술하는 바와 같이 검사합 신호 (30) 로서 출력될 수 있다.
어떤 애플리케이션에서는, (n, k) 순환 코드를 이용하여 k 비트 이상의 데이터 신호로부터 (n-k) 비트의 검사합을 계산하는 것이 바람직할 수 있다. 도 10 은 정보 신호 (20) 의 k-비트 인스턴스 4 개 (20-1 내지 20-4) 로 분할된 데이터신호 (50) 의 일례를 나타낸다.
검색 테이블 (210) 은 (예를 들어, 도 2 의 회로의 구체적인 구현에 따른) 특정 생성자 다항식 (G(X)) 에 의해 발생된 순환 코드용 인코더의 임펄스 응답에 관한 정보를 저장한다. 구체적으로, 검색 테이블 (210) 은 0 의 초기 상태를 갖는 (즉, 각각의 저장 소자가 0 의 값을 보유하는) 인코더의 k 개 임펄스 응답을 저장한다. j-번째 임펄스 응답 (여기서, j 는 1 내지 k 의 정수) 은, j-번째 비트만이 0 이 아닌 값을 갖는 k 길이의 스트링인 j-번째 임펄스 입력을 시프팅하여 얻은 인코더의 상태이다.
(예를 들어, 정보 신호 (20) 의 한 인스턴스로부터 다음 인스턴스로의) 인코더의 초기 상태 변경을 설명하기 위해, 검색 테이블 (210) 은 인코더의 (n-k) 개 제로 응답 (zero responses) 또한 저장한다. 구체적으로, q-번째 제로 응답 (q 는 1 내지 (n-k) 의 정수) 은, q-번째 비트만이 0 이 아닌 값을 갖는 (n-k) 길이의 스트링인 q-번째 성분 초기 상태 (q-th component initial state) 를 갖는 인코더로 0-값 비트 k 개의 스트링을 시프팅하여 얻은 상태이다.
도 11 은 검색 테이블 (210) 의 제로-응답 부분을 발생하는 예시적 방법을 위한 흐름도이다. 이 방법은 한 세트의 소정 초기 상태 중 하나를 갖는 미리 선택된 다항식 (G(X)) 에 의해 발생된 순환 코드용 인코더로 제로 입력 (zero input) 을 입력하는 단계를 포함한다 (이 방법은 도 7 의 흐름도에 나타낸 방법을 포함하며 그 흐름도의 태스크 (P140) 로부터 계속된다). 상술한 바와 같이, 일단 검색 테이블 (210) 이 완료되기만 하면, 이러한 인코더를 더 이상 참조하지 않고도 본 발명을 실행할 수 있지만, (예를 들어, 도 2 의 구체적인 회로 구현에 따라) 하드웨어로 인코더를 구현할 수도 있다. 따라서, 다른 방법으로, 인코더의 일부분 이상을 소프트웨어로 구현하는 것이 바람직할 수 있다. 검색 테이블 (210) 에 저장될 정보를 이용할 수만 있다면, (예를 들어, 도 9 의 장치에서 알 수 있는 바와 같이) 하드웨어 또는 소프트웨어의 이러한 인코더를 참조하지 않고도 본 발명을 실행할 수 있다.
서브 태스크 (P160) 에서, 카운터값 (q) 은 1 로 설정된다. 서브 태스크 (P170) 에서는, 카운터값 (i) 이 증가된다 (또는, 등가적으로, (k+q) 값으로 설정된다). 서브 태스크 (P180) 에서는, 인코더가 그 저장 소자에 (n-k) 값의 스트링을 저장함으로써, q-번째 값은 1 이고 나머지 모든 값은 0 인 q-번째 성분 초기 상태로 초기화된다.
서브 태스크 (P190) 에서는, 제로 입력 (즉, 0 비트 k 개의 스트링) 이 인코더 (또는 그 시뮬레이션) 로 입력된다. 서브 태스크 (P200) 에서는, 이러한 입력에 대한 인코더의 응답 (즉, 제로 입력이 로딩된 후의 인코더 상태를 나타내는 (n-k) 개 비트의 스트링) 이 검색 테이블 (210) 의 대응되는 위치에 저장된다. 서브 태스크 (P210) 의 테스트 및 서브 태스크 (P220) 에서의 루프 유지 보수 연산 (maintenance operation) 에 의해, 모든 가능한 (n-k) 개의 성분 초기 상태에 대해 제로 응답이 저장될 때까지, 서브 태스크 (P170, P180, P190 및 P200) 를 반복한다.
도 12 는 서브 태스크 (P180, P190 및 P200) 의 1 회 반복을 나타내는 그래프이다. 이 일례에서, 검색 테이블 (210) 의 k 개의 제 1 로우는 상술한 검색 테이블 (110) 의 k 개 로우와 동일하고, 입력 식별자와 테이블 위치 사이에 임의 의 다른 소정 대응관계가 이용될 수도 있지만, q-번째 성분 초기 상태를 가진 인코더의 제로 응답은 검색 테이블 (210) 의 i-번째 로우에 저장된다. 도 7, 8, 11 및 12 에 나타낸 방법 이외에, 검색 테이블 (210) 에 이용하기 적합한 임펄스 응답과 제로 응답의 세트를 발생하는 많은 다른 방법이 있을 수 있다.
도 13 은, n 개의 AND 게이트 (140) 와 1 개의 XOR 게이트 (250) 를 구비하는, 논리 매트릭스 (220) 에 대한 블록도를 나타낸다. 상술한 바와 같이, 각각의 AND 게이트 (140(r)) (r 은 1 내지 n 의 정수) 는 1-비트-너비의 제어 입력과 (n-k)-비트-너비의 데이터 입력을 갖는다. 게이트 (140(r)) 로의 제어 입력이 1 의 값을 가지면, 데이터 입력은 출력으로 전달되고; 그렇지않으면, 게이트의 출력은 0 이다.
매트릭스 (220) 의 각 게이트 (140(s) ; s 는 1 내지 k 의 정수) 에 대해, 제어 입력은 정보 신호 (20) 의 s-번째 비트이고, 데이터 입력은, 검색 테이블 (210) 로부터 얻은 s-번째 임펄스 응답이다. 매트릭스 (220) 의 각 게이트 (140(t) ; t 는 (k+1) 내지 n 의 정수) 에 대해, 제어 입력은 인코더 상태 신호 (80) 의 (t-k)-번째 비트이고, 데이터 입력은 검색 테이블 (210) 로부터 얻은 (t-k)-번째 제로 응답이다.
XOR 게이트 (250) 는 AND 게이트 (140(r)) 의 n 개 출력을 수신하여 (n-k)-비트-너비의 출력을 생성한다. XOR 게이트 (150) 출력의 p-번째 (p 는 1 내지(n-k) 의 정수) 비트는, (a) AND 게이트 (140(r)) 출력의 p-번째 비트가 홀수 개의 1 값을 가지면 1 값을 갖고, (b) AND 게이트 (140(r)) 출력의 p-번째 비트가 짝수 개의 1 값을 가지면 0 값을 갖는다. 즉, XOR 게이트 (250) 의 출력은, 입력의 p-번째 비트에 대한 XOR 가 출력의 p-번째 비트가 되는, 입력에 대한 비트식 XOR 이다. XOR 게이트 (250) 의 출력은 업데이트 신호 (40) 의 구체적인 전이 (specified transition ; 예를 들어, 상승 에지 및/또는 하강 에지) 에 응답하여 CRC 레지스터 (340) 에 저장된다.
XOR 게이트 (150) 를 참조하여 설명한 바와 같이, 예시적인 구현에서, XOR 게이트 (250) 는, 상술한 논리 기능을 수행하도록 배열된, 보다 한정된 입력 용량 (예를 들어, 2-입력 NAND 게이트) 을 가진 수 개의 또는 많은 논리 게이트를 구비할 수 있다. 또한, 논리 매트릭스 (120) 에서도, 상술한 논리 기능을 구현함에 있어, 논리 매트릭스 (220) 의 실제 구성은 도 10 에 나타낸 특정 구성 이외의 많은 형태를 취할 수 있다. 검색 테이블 (210) 은 고정된 G(X), n 및 k 에 대해 일정하기 때문에, 예를 들어, AND 게이트 (140(r)) 로의 데이터 입력의 특정 비트가 0 이라는 것과, 그에 따라, 이들 게이트의 출력에 대응되는 비트 또한 0 이라는 것을 사전에 알 수 있다. 본 발명에 따른 장치의 일 실시예에서, 논리 매트릭스 (220) 의 구성은, Synopsis, Inc. (Mountain View, CA) 에 의해 생산된 Design Compiler 와 같은 전자 설계 도구를 이용하여 보다 최적화된 형태 (예를 들어, 도 13 에 나타낸 것과 등가의 논리 동작을 수행하는데 보다 적은 수의 논리 게이트를 요하는 형태) 로 변형된다.
인코더 상태 신호 (80) 는 인코더 상태 레지스터 (340) 의 현재 상태를 나타낸다. 예시적인 구현에서, 인코더 상태 레지스터 (340) 는 초기화되어 소정의 인코더 초기 상태를 저장한다. 정보 신호 (20) 의 제 1 인스턴스 (20-1) 가 논리 매트릭스 (220) 의 적절한 입력에 존재할 경우, 인코더 상태 레지스터 (340) 는, 인코더 상태 신호 (80) 의 제 1 인스턴스 (80-0) 를 통해, 이러한 소정 초기 상태를 논리 매트릭스 (220) 의 적절한 입력에 제공한다. 논리 매트릭스 (220) 의 출력 (즉, 응답 신호 (60)) 이 안정되기에 충분한 시간이 흐른 후, 업데이트 신호 (40) 의 구체적 전이는 인코더 상태 레지스터 (340) 로 하여금 그 출력을 저장하고 그것을 인코더 상태 신호 (80) 의 제 2 인스턴스 (80-1) 로서 논리 매트릭스 (220) 로 전달하게 한다.
인코더 상태 신호 (80-1) 가 논리 매트릭스 (220) 의 적절한 입력에 존재할 경우, 정보 신호 (20) 의 다음 인스턴스 (20-2) 가 논리 매트릭스 (220) 의 대응되는 적절한 입력에 존재한다. 응답 신호 (60) 가 안정되기에 충분한 시간이 흐른 후, 업데이트 신호 (40) 의 구체적인 전이는 인코더 상태 레지스터 (340) 로 하여금 그 신호를 저장하고, 그것을 인코더 상태 신호 (80) 의 제 3 인스턴스 (80-2) 로서 논리 매트릭스 (220) 로 전달하게 한다. 이러한 프로세스는, 정보 신호 (20) 의 최후 인스턴스 (20-x) 및 인코더 상태 신호 (80) 의 인스턴스 (80-(x-1)) 가 논리 매트릭스 (220) 의 적절한 입력에 제공될 때까지 계속된다. 이들 입력에 응답하는 논리 매트릭스 (220) 의 출력 (즉, 응답 신호 (60)) 은 오리지널 데이터 신호 (50) 에 대한 소정 검사합을 나타내고, 이 신호는 검사합 신호 (30) 로서출력된다.
대부분의 애플리케이션의 경우, 장치 (200) 가 응답 신호 (60) 의 나머지 인스턴스 중 어떤 것도 검사합 신호 (30) 로서 출력할 필요는 없다. 따라서, 다른 구현에서는, 응답 신호 (60) 의 다른 인스턴스가 검사합 신호 (30) 상에 나타나는 것을 방지하기 위해, 레지스터 및/또는 게이트를 장치 (200) 의 출력에 제공할 수 있다 (즉, 업데이트 신호 (40) 에 기초하는 적절한 타이밍 신호에 의해 제어될 수 있다).
데이터 신호 (50) 의 총 비트 수가 k 의 배수일 필요는 없다. 예를 들어, 데이터 신호 (50) 는 0 에 의해 k 의 배수인 길이로 패딩될 수 있다. 그러나, 이러한 경우, 예를 들어, 도 2 에 나타낸 바와 같이, 패딩되지 않은 데이터 신호 (50) 를 인코더로 시프팅함으로써 생성되는 결과와 등가의 결과를 얻기 위해, 검사합 신호 (30) 의 최종 인스턴스에 대한 (시프트 위치의 갯수가 패딩된 0 의 갯수에 대응되는) 역순환 시프트의 수행이 필요할 수 있다.
도 14A 는, 신호 스트림의 데이터 신호 (52) 각각이 너비 k 의 정보 신호 (22) 의 인스턴스 다수 개로 이루어진 신호 스트림을 나타낸다. 도 14B 는 이 신호 스트림이 인코딩 후에 검사합 신호 (30) 를 포함하도록 구성하는 방법의 일례를 나타낸다.
도 15 는 본 발명의 다른 실시예에 따른 장치를 나타낸다. 인코더 상태 레지스터 (340) 를 참조하면, 클록 신호 (70) 는 이 장치에서 도 9 장치의 업데이트 신호 (40) 의 기능과 유사한 기능을 수행한다. 클록 신호 (70) 의 주기는최소한, 정보 신호 (22) 의 새로운 인스턴스와 조직된 (staged) 인코더 상태 신호 (85) 가 그 입력에 제공된 후, 논리 매트릭스 (220) 가 안정되는데 필요한 최대 시간만큼은 긴 것이 바람직하다.
이하, 논리 매트릭스 (220) 의 입력에 정보 신호 (22a1) 가 도달하는, 도 15 에 나타낸 장치의 예시적인 애플리케이션을 설명한다. 흐름 제어 (410) 는, (후술하는 바와 같이, 예를 들어,) 소정의 인코더 초기 상태를 갖는 조직된 인코더 상태 신호 (85) 가 정보 신호 (22a1) 와 함께 논리 매트릭스 (220) 로의 입력에 존재하도록 구성된다. 장치 (200) 의 상태가 안정되기에 충분한 시간이 지난 후, 논리 매트릭스 (220) 의 결과 출력 (즉, 응답 신호 (60)) 은 클록 신호 (70) 의 인가 (assertion) 에 의해 인코더 상태 레지스터 (340) 에 (그리고 인코더 상태 신호 (80)) 상에) 클록된다. 흐름 제어 (410) 는 인코더 상태 신호 (80) 를 (조직된 인코더 상태 신호 (85)) 로서) 논리 매트릭스 (220) 의 입력으로 전달하도록 구성된다.
논리 매트릭스 (220) 의 입력에 정보 신호 (22a2) 가 도달한다. 충분한 설정 시간 (settling time) 이 지난 후, 클록 신호 (70) 의 다른 인가에 의해, 응답 신호 (60) 가 인코더 상태 레지스터 (340) 에 클록된다. 소정 검사합 (30a) (즉, G(X) 에 의해 발생된 순환 코드로 데이터 신호 (50a) 를 인코딩하는 것에 대응되는 것) 이 인코더 상태 레지스터 (340) 의 출력에 존재하며, 필요하다면 장치 (300) 에 의해 출력될 수 있다.
유사한 방식으로, 정보 신호 (22b1) 가 논리 매트릭스 (220) 의 입력에 도달하며, 흐름 제어 (410) 는, 조직된 인코더 상태 신호 (85) 가 논리 매트릭스 (220) 로의 다른 입력에 소정 인코더 초기 상태를 제공하도록 구성된다. 매트릭스 (220) 의 결과 출력 (즉, 응답 신호 (60)) 은, 클록 신호 (70) 의 인가에 의해 인코더 상태 레지스터 (340) 에 (그리고 인코더 상태 신호 (80) 상에) 클록된다. 흐름 제어 (410) 는 인코더 상태 신호 (80) 를 (조직된 인코더 상태 신호 (85) 로서) 논리 매트릭스 (220) 입력에 전달하도록 구성된다. 그 다음, 정보 신호 (22b2) 가 논리 매트릭스 (220) 의 입력에 도달한다. 충분한 설정 시간이 지난 후, 클록 신호 (70) 가 인가되어 응답 신호 (60) 는 인코더 상태 레지스터 (340) 에 클록되고, 그에 의해, 소정 검사합 (30b) 으로 출력하기 위해 레지스터 (340) 의 출력에 클록된다. 그 다음, 예시적인 애플리케이션에서는, 데이터 신호와 대응되는 검사합이 도 14B 에 나타낸 바와 같이 어셈블링된다.
논리 매트릭스 (220) 입력으로의 초기 인코더 상태의 시간적 간격이 조절된 제공 (timed presentation) 은 흐름 제어 블록 (410) 에 의해 자동적으로 실현된다. 도 16 에 나타낸 바와 같이, 블록 (410) 은, 조직된 인코더 상태 신호 (85) 를 논리 매트릭스 (220) 의 입력으로 (즉, 도 10 에서, 인코더 상태 신호 (80) 를 수신하도록 표시된 (n-k) 입력 라인으로) 전달하는 멀티플렉서 (440) 를 구비할 수 있다. 카운터 (420) 로부터 수신된 신호에 따라, 멀티플렉서 (440) 는 조직된 인코더 상태 신호 (85) 로 하여금 인코더 상태 신호 (80) 또는 (초기값 레지스터 (430) 에 저장된) (n-k)-비트-너비의 초기 인코더 상태 중 하나를 전달하하게 한다.
카운터 (420) 는 다음의 소정 파라미터 (z ; 즉, D/k 를 넘지 않는 최대 정수) 에 따라 동작하는데,
D 는 데이터 신호 (50) 의 비트 길이이다. 도 16 의 일례에서, z = 2 이다. 카운터 (420) 의 카운팅 값은 클록 신호 (70) 의 매 사이클에서 증가하며, z 개의 클록 사이클마다 0 으로 리셋된다. 카운터 (420) 의 카운팅값이 0 일 경우, 카운터 (420) 는 멀티플렉서 (440) 로 하여금 레지스터 (430) 로부터의 초기 인코더 상태를 전달하게 한다. 그렇지 않으면, 카운터 (420) 는 멀티플렉서 (440) 로 하여금 인코더 상태 신호 (80) 를 전달하게 한다. 인코더 상태 신호 (80) 와 초기 인코더 값을 조직된 인코더 상태 신호 (85) 상에 적절히 배치하기 위한 많은 다른 배열이 가능하다.
도 17 에 나타낸 바와 같이, 본 발명의 또 다른 실시예에 따른 장치 (400) 는 데이터 신호 (52) 를 수신하여 정보 신호 (22) 의 k-비트-너비 인스턴스를 출력하는 입력 레지스터 (230) 를 구비할 수 있다. 입력 레지스터 (230) 는 데이터 신호 (52) 의 개별적인 값들을 직렬 및/또는 병렬로 수신할 수 있다. 입력 레지스터 (230) 가 클록 신호 (70) 의 각 사이클에서 정보 신호 (22) 의 다음 인스턴스를 공급하기에 충분한 속도로, 데이터 신호 (52) 가 입력 레지스터 (230) 로 데이터를 공급하는 것이 바람직하다. 예시적인 실시예에서, 입력 레지스터 (230) 는 원형 대기열 (circular queue) 또는 '링 버퍼 (ring buffer)'로 구성될 수 있다. 다른 구현에서, 입력 레지스터 (230) 는 더블 버퍼로 구성될 수 있다. 입력 레지스터 (230) 로의 판독 및 기입 액세스가 충돌할 수 있는 구현에서는, 듀얼-포트 저장 소자를 이용하여 입력 레지스트 (230) 를 구현할 수 있다.
당업자가 본 발명을 이용할 수 있도록 하기 위해, 실시예를 상술하였다. 이들 실시예에 대한 다양한 변형이 가능하며, 본원에 제시된 일반 원리는 다른 실시예에도 적용될 수 있다. 예를 들어, 본 발명은, 하드-배선 회로로서, ASIC (application-specific integrated circuit) 으로 집적된 회로 구성으로서, 또는 비휘발성 저장 매체에 로딩된 펌웨어 프로그램 또는, 마이크로프로세서, 마이크로컨트롤러, 또는 다른 DSP (digital signal processing) 유닛과 같은 논리 소자의 어레이에 의해 실행가능한 명령어 코드와 같이, 기계-판독가능 코드로서 데이터 저장 매체로부터 또는 데이터 저장 매체에 로딩된 소프트웨어 프로그램으로서, 부분적으로 또는 전체적으로 구현될 수 있다. 따라서, 본 발명은 상술한 실시예에 한정되지 않으며, 본원에서 임의의 방식으로 공지한 원리와 신규한 특징을 따르는 최광 범위로 해석되어야 한다.

Claims (34)

  1. k 와 p 는 정수로서, 0 이 아닌 값을 가진 p 개 비트를 포함하는 k 개 비트의 스트링으로 이루어진 정보 신호를 수신하는 단계;
    상기 p 개 비트 중 하나에 각각 대응되는 p 개의 임펄스 응답을 수신하는 단계; 및
    상기 p 개의 임펄스 응답의 합산으로 이루어지는 검사합 (checksum) 을 획득하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서,
    상기 p 개의 임펄스 응답 각각은, (k-1) 개의 0 비트와 p-번째 위치의 0 이 아닌 하나의 비트 (a nonzero bit) 를 포함하는 k 개 비트의 스트링에 대한 선형 블록 코드용 인코더의 응답을 나타내는 것을 특징으로 하는 방법.
  3. 제 2 항에 있어서,
    n 은 정수로서, 상기 검사합은 (n-k) 개 비트의 스트링으로 이루어지고;
    상기 선형 블록 코드는,
    와 같은 형태의 생성자 다항식 (generator polynomial) 에 의해 기술되는 것을 특징으로 하는 방법.
  4. 제 1 항에 있어서,
    상기 검사합은 상기 p 개의 임펄스 응답에 대한 합산 모듈로 2 (summation modulo 2) 로 이루어지는 것을 특징으로 하는 방법.
  5. k 와 p 는 정수로서, 0 이 아닌 값을 가진 p 개 비트를 포함하는 k 개 비트의 스트링으로 이루어진 정보 신호를 수신하는 단계;
    상기 p 개 비트 중 하나에 각각 대응되는 p 개의 임펄스 응답을 수신하는 단계;
    n 과 r 은 정수로서, 0 이 아닌 값을 가진 r 개 비트를 포함하는 (n-k) 개 비트의 스트링으로 이루어진 인코더 상태 신호를 수신하는 단계;
    상기 r 개 비트 중 하나에 각각 대응되는 r 개의 제로 응답 (zero responses) 을 수신하는 단계; 및
    상기 p 개의 임펄스 응답과 상기 r 개의 제로 응답의 합산 (summation) 인 검사합을 획득하는 단계를 포함하는 것을 특징으로 하는 방법.
  6. 제 5 항에 있어서,
    상기 p 개의 임펄스 응답 각각은, (k-1) 개의 0 비트와 p-번째 위치의 0 이 아닌 하나의 비트를 포함하는 k 개 비트의 스트링에 대한 선형 블록 코드용 인코더의 응답을 나타내는 것을 특징으로 하는 방법.
  7. 제 6 항에 있어서,
    상기 선형 블록 코드는,
    와 같은 형태의 생성자 다항식에 의해 기술되는 것을 특징으로 하는 방법.
  8. 제 5 항에 있어서,
    상기 검사합은 상기 p 개의 임펄스 응답과 상기 r 개의 제로 응답에 대한 합산 모듈로 2 로 이루어지는 것을 특징으로 하는 방법.
  9. 제 5 항에 있어서,
    상기 r 개의 제로 응답 각각은, r-번째 성분 초기 상태를 갖는 선형 블록 코드용 인코더의 k 개의 0 비트 스트링에 대한 응답을 나타내고;
    상기 r-번째 성분 초기 상태는 (n-k-1) 개의 0 비트와 r-번째 위치의 0 이 아닌 하나의 비트를 포함하는 (n-k) 길이의 스트링인 것을 특징으로 하는 방법.
  10. 제 9 항에 있어서,
    상기 선형 블록 코드는,
    와 같은 형태의 생성자 다항식에 의해 기술되는 것을 특징으로 하는 방법.
  11. 인코딩용 신호를 수신하는 단계;
    복수의 임펄스 응답을 수신하는 단계;
    복수의 제로 응답을 수신하는 단계; 및
    검사합을 얻는 단계를 포함하고,
    상기 검사합은 2 이상 응답의 합산으로 이루어지며,
    상기 2 이상 응답 각각은 상기 복수의 임펄스 응답과 상기 복수의 제로 응답 중 하나에 속하고,
    상기 2 이상 응답 각각은 상기 인코딩용 신호 내의 소정 위치에 대응되는 것을 특징으로 하는 방법.
  12. 제 11 항에 있어서,
    상기 2 이상 응답 각각은, 0 이 아닌 값을 가진 하나의 비트가 차지하고 있는 상기 인코딩용 신호 내의 위치에 대응되는 것을 특징으로 하는 방법.
  13. 제 11 항에 있어서,
    상기 검사합은 합산 모듈로 2 로 이루어지는 것을 특징으로 하는 방법.
  14. k 와 p 는 정수로서, 0 이 아닌 값을 가진 p 개 비트를 포함하는 k 개 비트의 스트링으로 이루어진 제 1 정보 신호를 수신하는 단계;
    상기 p 개 비트 중 하나에 각각 대응되는 p 개의 임펄스 응답을 수신하는 단계;
    n 과 r 은 정수로서, 0 이 아닌 값을 가진 r 개 비트를 포함하는 (n-k) 개 비트의 스트링으로 이루어진 제 1 인코더 상태 신호를 수신하는 단계;
    상기 r 개 비트 중 하나에 각각 대응되는 r 개의 제로 응답을 수신하는 단계;
    상기 p 개의 임펄스 응답과 상기 r 개의 제로 응답의 합산으로 이루어지는 제 2 인코더 상태 신호를 획득하는 단계;
    k 개 비트의 스트링으로 이루어진 제 2 정보 신호를 수신하는 단계; 및
    상기 제 2 인코더 상태 신호 및 상기 제 2 정보 신호의 적어도 일부에 기초하는 검사합을 획득하는 단계를 포함하는 것을 특징으로 하는 방법.
  15. 제 14 항에 있어서,
    상기 p 개의 임펄스 응답 각각은 선형 블록 코드용 인코더의 응답을, (k-1) 개의 0 비트와 p-번째 위치의 0 이 아닌 하나의 비트를 포함하는 k 개 비트의 스트링으로 나타내는 것을 특징으로 하는 방법.
  16. 제 15 항에 있어서,
    상기 선형 블록 코드는,
    와 같은 형태의 생성자 다항식에 의해 기술되는 것을 특징으로 하는 방법.
  17. 제 14 항에 있어서,
    상기 r 개의 제로 응답 각각은, r-번째 성분 초기 상태를 갖는 선형 블록 코드용 인코더의 k 개의 0 비트 스트링에 대한 응답을 나타내고;
    상기 r-번째 성분 초기 상태는 (n-k-1) 개의 0 비트와 r-번째 위치의 0 이 아닌 하나의 비트를 포함하는 (n-k) 길이의 스트링인 것을 특징으로 하는 방법.
  18. 제 17 항에 있어서,
    상기 선형 블록 코드는,
    와 같은 형태의 생성자 다항식에 의해 기술되는 것을 특징으로 하는 방법.
  19. k 와 p 는 정수로서, 0 이 아닌 값을 가진 p 개 비트를 포함하는 k 개 비트의 스트링으로 이루어진 제 1 정보 신호를 수신하는 단계;
    상기 p 개 비트 중 하나에 각각 대응되는 p 개의 임펄스 응답을 수신하는 단계;
    n 과 r 은 정수로서, 0 이 아닌 값을 가진 r 개 비트를 포함하는 (n-k) 개 비트의 스트링으로 이루어진 제 1 인코더 상태 신호를 수신하는 단계;
    상기 r 개 비트 중 하나에 각각 대응되는 r 개의 제로 응답을 수신하는 단계;
    상기 p 개의 임펄스 응답과 상기 r 개의 제로 응답의 합산이며, 0 이 아닌 값을 가진 s 개 비트를 포함하는 (n-k) 개 비트의 스트링으로 이루어지는 제 2 인코더 상태 신호를 획득하는 단계;
    0 이 아닌 값을 가진 q 개 비트를 포함하는 k 개 비트의 스트링으로 이루어진 제 2 정보 신호를 수신하는 단계;
    상기 q 개 비트 중 하나에 각각 대응되는 q 개의 임펄스 응답을 수신하는 단계;
    상기 s 개 비트 중 하나에 각각 대응되는 s 개의 제로 응답을 수신하는 단계; 및
    상기 q 개의 임펄스 응답과 상기 s 개의 제로 응답의 합산인 검사합을 획득하는 단계를 포함하는 것을 특징으로 하는 방법.
  20. 제 19 항에 있어서,
    상기 p 개의 임펄스 응답 각각은, (k-1) 개의 0 비트와 p-번째 위치의 0 이아닌 하나의 비트를 포함하는 k 개 비트의 스트링에 대한 선형 블록 코드용 인코더의 응답을 나타내는 것을 특징으로 하는 방법.
  21. 제 20 항에 있어서,
    상기 선형 블록 코드는,
    와 같은 형태의 생성자 다항식에 의해 기술되는 것을 특징으로 하는 방법.
  22. 제 19 항에 있어서,
    상기 검사합은 상기 q 개의 임펄스 응답과 상기 s 개의 제로 응답에 대한 합산 모듈로 2 로 이루어지는 것을 특징으로 하는 방법.
  23. 제 19 항에 있어서,
    상기 r 개의 제로 응답 각각은, r-번째 성분 초기 상태를 갖는 선형 블록 코드용 인코더의 k 개의 0 비트 스트링에 대한 응답을 나타내고;
    상기 r-번째 성분 초기 상태는 (n-k-1) 개의 0 비트와 r-번째 위치의 0 이 아닌 하나의 비트를 포함하는 (n-k) 길이의 스트링인 것을 특징으로 하는 방법.
  24. 제 23 항에 있어서,
    상기 선형 블록 코드는,
    와 같은 형태의 생성자 다항식에 의해 기술되는 것을 특징으로 하는 방법.
  25. k 와 p 는 정수로서, 0 이 아닌 값을 가진 p 개 비트를 포함하는 k 개 비트의 스트링으로 이루어진 정보 신호를 수신하는 단계;
    상기 k 개 비트 중 하나에 각각 대응되는 k 개의 임펄스 응답을 수신하는 단계;
    상기 k 개 임펄스 응답 중 p 개의 합산으로 이루어지는 검사합을 획득하는 단계를 포함하는 것을 특징으로 하는 방법.
  26. 제 25 항에 있어서,
    상기 k 개 임펄스 응답 각각은, (k-1) 개의 0 비트와 하나의 0 이 아닌 비트를 포함하는 k 개 비트의 스트링에 대한 선형 블록 코드용 인코더의 응답을 나타내는 것을 특징으로 하는 방법.
  27. 제 26 항에 있어서,
    상기 선형 블록 코드는,
    와 같은 형태의 생성자 다항식에 의해 기술되는 것을 특징으로 하는 방법.
  28. 제 25 항에 있어서,
    상기 검사합은 상기 p 개의 임펄스 응답에 대한 합산 모듈로 2 로 이루어지는 것을 특징으로 하는 방법.
  29. 정보 신호를 수신하여 검사합을 출력하도록 구성되고 배열된 논리 매트릭스; 및
    선형 블록 코드용 인코더의 복수 응답을 저장하도록 구성되고 배열된 검색 테이블을 구비하고,
    상기 복수 응답 각각은 소정의 입력 스트링에 대한 인코더의 응답으로 이루어지며,
    상기 검사합은 상기 복수 응답 중 2 이상의 합산으로 이루어지고,
    상기 복수 응답 중 2 이상은, 상기 정보 신호의 일부분 이상에 기초하여 적어도 일부가 선택되는 것을 특징으로 하는 장치.
  30. 제 29 항에 있어서,
    k 는 정수로서, 상기 정보 신호는 k 개 비트의 스트링으로 이루어지고,
    상기 복수 응답은, 상기 정보 신호 내의 위치에 각각 대응되는 k 개의 임펄스 응답을 포함하는 것을 특징으로 하는 장치.
  31. 제 30 항에 있어서,
    상기 k 개의 임펄스 응답 각각은, 0 의 초기 상태를 갖는 인코더의 k 개 비트의 스트링에 대한 응답으로 이루어지고;
    상기 k 개 비트의 스트링은 0 값의 (k-1) 개 비트와 상기 정보 신호 내의 위치에 대응되는 위치의 0 이 아닌 값의 비트 하나를 포함하는 것을 특징으로 하는 장치.
  32. 제 29 항에 있어서,
    상기 논리 매트릭스는 인코더 상태 신호도 수신하도록 구성되고 배열되며,
    상기 복수 응답 중 상기 2 이상은 상기 인코더 상태 신호의 일부분 이상에 기초하여 적어도 일부가 선택되는 것을 특징으로 하는 장치.
  33. 제 32 항에 있어서,
    n 은 정수로서, 상기 인코더 상태 신호는 (n-k) 비트의 스트링으로 이루어지고,
    상기 복수 응답은, 각각이 상기 인코더 상태 신호 내의 위치에 대응되는 (n-k) 개의 제로 응답을 포함하는 것을 특징으로 하는 장치.
  34. 제 33 항에 있어서,
    상기 (n-k) 개 제로 응답 각각은, 성분 초기 상태를 갖는 인코더의 0 값을 가진 k 개 비트의 스트링에 대한 응답으로 이루어지고,
    상기 성분 초기 상태는, 0 값을 가진 (k-1) 개 비트와 상기 인코더 상태 신호 내의 위치에 대응되는 위치의 0 이 아닌 값을 갖는 하나의 비트를 포함하는 비트의 스트링인 것을 특징으로 하는 장치.
KR1020037004261A 2000-09-26 2001-09-14 선형 블록 코드의 인코딩 방법 및 장치 KR100894234B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/671,372 2000-09-26
US09/671,372 US6763492B1 (en) 2000-09-26 2000-09-26 Method and apparatus for encoding of linear block codes
PCT/US2001/028496 WO2002027939A2 (en) 2000-09-26 2001-09-14 Method and apparatus for encoding of linear block codes

Publications (2)

Publication Number Publication Date
KR20030036826A true KR20030036826A (ko) 2003-05-09
KR100894234B1 KR100894234B1 (ko) 2009-04-20

Family

ID=24694257

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037004261A KR100894234B1 (ko) 2000-09-26 2001-09-14 선형 블록 코드의 인코딩 방법 및 장치

Country Status (15)

Country Link
US (1) US6763492B1 (ko)
EP (2) EP1323235A2 (ko)
JP (1) JP2004510380A (ko)
KR (1) KR100894234B1 (ko)
CN (2) CN1333530C (ko)
AU (1) AU2001289032A1 (ko)
BR (1) BR0114169A (ko)
CA (1) CA2423425A1 (ko)
HK (1) HK1061121A1 (ko)
IL (1) IL154898A0 (ko)
MX (1) MXPA03002622A (ko)
NO (1) NO20031352L (ko)
RU (1) RU2003112223A (ko)
TW (1) TW531973B (ko)
WO (1) WO2002027939A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100850787B1 (ko) * 2006-12-08 2008-08-06 한국전자통신연구원 상위 인터페이스 메모리를 이용한 시공간 블록 코드 방식의인코딩 장치 및 그 방법

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7458006B2 (en) * 2002-02-22 2008-11-25 Avago Technologies General Ip (Singapore) Pte. Ltd. Methods for computing the CRC of a message from the incremental CRCs of composite sub-messages
US6904558B2 (en) * 2002-02-22 2005-06-07 Agilent Technologies, Inc. Methods for computing the CRC of a message from the incremental CRCs of composite sub-messages
WO2003090362A1 (fr) * 2002-04-22 2003-10-30 Fujitsu Limited Codeur et decodeur de detection d'erreur, et diviseur
AU2003242923A1 (en) * 2002-06-28 2004-01-19 Koninklijke Philips Electronics N.V. Method and arrangement for the generation of an identification data block
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 巡回符号回路
SE0403218D0 (sv) * 2004-12-30 2004-12-30 Ericsson Telefon Ab L M Method and apparatus relating to communication-
DE102005018248B4 (de) * 2005-04-19 2014-06-12 Deutsche Gesetzliche Unfallversicherung E.V. (Dguv) Prüfverfahren zur sicheren, beschleunigten Erkennung von Datenfehlern und Vorrichtung zur Durchführung des Prüfverfahrens
US7500174B2 (en) * 2005-05-23 2009-03-03 Microsoft Corporation Encoding and application of extended hamming checksum
US8103934B2 (en) 2007-12-21 2012-01-24 Honeywell International Inc. High speed memory error detection and correction using interleaved (8,4) LBCs
US9003259B2 (en) * 2008-11-26 2015-04-07 Red Hat, Inc. Interleaved parallel redundancy check calculation for memory devices
EP2690789A4 (en) * 2012-01-11 2015-04-08 Shenzhen Hac Telecom Technology Co Ltd SYSTEM AND METHOD FOR WIRELESS COMMUNICATION
CN107302420B (zh) * 2017-06-20 2019-11-08 北京科技大学 一种线性网络编码方法
CN111146986B (zh) * 2019-12-30 2022-08-12 深圳市越疆科技有限公司 磁编码器的位置定位方法、装置、电子设备及计算机可读存储介质

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4623999A (en) * 1984-06-04 1986-11-18 E-Systems, Inc. Look-up table encoder for linear block codes
JPH03272224A (ja) * 1990-03-20 1991-12-03 Canon Inc 情報信号処理方法
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
WO1994015407A1 (en) 1992-12-29 1994-07-07 Codex Corporation Efficient crc remainder coefficient generation and checking device and method
DE69320321T2 (de) 1993-02-05 1998-12-24 Hewlett Packard Co Verfahren und Gerät zum Nachprüfen von CRC-Koden, wobei CRC Teilkode kombiniert werden
US5491700A (en) * 1993-10-01 1996-02-13 Pacific Communication Sciences, Inc. Method and apparatus for code error correction using an ordered syndrome and error correction lookup table
JPH07264078A (ja) * 1994-03-23 1995-10-13 Kokusai Electric Co Ltd Bch符号化装置及びbch符号化方法
US5703887A (en) * 1994-12-23 1997-12-30 General Instrument Corporation Of Delaware Synchronization and error detection in a packetized data stream
US6308295B1 (en) * 1996-10-08 2001-10-23 Arizona Board Of Regents Parallel spectral reed-solomon encoder and decoder
JPH10135847A (ja) * 1996-10-25 1998-05-22 Nec Corp Atm通信装置の並列型ヘッダ誤り訂正回路およびヘッダ誤り訂正方法
US5978956A (en) * 1997-12-03 1999-11-02 Quantum Corporation Five-error correction system
US6195780B1 (en) * 1997-12-10 2001-02-27 Lucent Technologies Inc. Method and apparatus for generating cyclical redundancy code
US6029186A (en) * 1998-01-20 2000-02-22 3Com Corporation High speed calculation of cyclical redundancy check sums
US6263470B1 (en) * 1998-02-03 2001-07-17 Texas Instruments Incorporated Efficient look-up table methods for Reed-Solomon decoding
US6105158A (en) * 1998-04-03 2000-08-15 Lucent Technologies, Inc. Screening for undetected errors in data transmission systems
US6336200B1 (en) * 1998-05-22 2002-01-01 Kencast, Inc. Method for validating communicated packets of data and for locating erroneous packets
DE19838865C2 (de) * 1998-08-26 2001-03-01 Ericsson Telefon Ab L M Parallele CRC Erzeugungsschaltung zum Erzeugen eines CRC Codes und Verfahren zum Generieren einer derartigen Schaltung
US6360348B1 (en) * 1999-08-27 2002-03-19 Motorola, Inc. Method and apparatus for coding and decoding data
JP2003523682A (ja) * 2000-02-17 2003-08-05 アナログ デバイス インコーポレーテッド Crc、および他の剰余を基本とする符号の生成に用いる方法、装置、製品
CN1112778C (zh) * 2000-08-08 2003-06-25 深圳市中兴通讯股份有限公司 一种数字通信系统中的信道循环冗余码校验的方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100850787B1 (ko) * 2006-12-08 2008-08-06 한국전자통신연구원 상위 인터페이스 메모리를 이용한 시공간 블록 코드 방식의인코딩 장치 및 그 방법

Also Published As

Publication number Publication date
MXPA03002622A (es) 2004-05-24
US6763492B1 (en) 2004-07-13
CN1333530C (zh) 2007-08-22
HK1061121A1 (en) 2004-09-03
JP2004510380A (ja) 2004-04-02
KR100894234B1 (ko) 2009-04-20
WO2002027939A3 (en) 2002-05-30
RU2003112223A (ru) 2004-08-27
CN1476675A (zh) 2004-02-18
EP1323235A2 (en) 2003-07-02
TW531973B (en) 2003-05-11
CA2423425A1 (en) 2002-04-04
AU2001289032A1 (en) 2002-04-08
CN101083468A (zh) 2007-12-05
EP2209215A1 (en) 2010-07-21
IL154898A0 (en) 2003-10-31
BR0114169A (pt) 2003-12-09
NO20031352L (no) 2003-05-08
NO20031352D0 (no) 2003-03-25
WO2002027939A2 (en) 2002-04-04

Similar Documents

Publication Publication Date Title
KR100894234B1 (ko) 선형 블록 코드의 인코딩 방법 및 장치
RU2392737C2 (ru) Способы и устройство ldpc-декодирования
RU2395902C2 (ru) Способы и устройство ldpc-кодирования
US6640327B1 (en) Fast BCH error detection and correction using generator polynomial permutation
JP4602406B2 (ja) データをエンコード及びデコードするための方法並びに装置
KR20040049864A (ko) 패리티 검사 디코더에 사용하기 위한 노드 처리기
US20050258984A1 (en) LDPC architecture
US8689078B2 (en) Determining a message residue
Hsu et al. The VLSI Implementation of a Reed—Solomon Encoder Using Berlekamp's Bit-Serial Multiplier Algorithm
US7945780B1 (en) Apparatus for dynamically configurable interleaver scheme using at least one dynamically changeable interleaving parameter
US10833704B1 (en) Low-density parity check decoder using encoded no-operation instructions
EP2023491A1 (en) High rate, long block lenght, low density parity check encode
KR20060125837A (ko) 데이터를 인코딩하기 위한 방법 및 장치
TW202013903A (zh) 低密度奇偶校驗碼延伸方法
WO2008069231A1 (ja) 復号装置、復号方法
JPH1093445A (ja) 誤り位置検出多項式計算装置
JP5488472B2 (ja) 復号装置、この復号装置を有するデータ通信装置およびデータ記憶装置
KR100258951B1 (ko) 리드-솔로몬(rs) 복호기와 그 복호방법
KR101436973B1 (ko) 슈퍼차지드 코드들
WO2006033060A1 (en) Programmable data processor for a variable length encoder/decoder
WO2010103757A1 (ja) 復号装置および復号方法
EP0986182A2 (en) Encoding apparatus and method, decoding apparatus and method and providing medium
WO2015133095A1 (ja) パリティ検査符号生成装置、符号化方法、符号化装置および記録媒体
Ashbrook et al. Implementation of a Hermitian decoder IC in 0.35/spl mu/m CMOS
KR100900329B1 (ko) 리드솔로몬 복호 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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