KR101432909B1 - 병렬 bch 복호기를 위한 고속 소면적의 수정된 스텝-바이-스텝 복호 방법 및 그 연산 회로 - Google Patents

병렬 bch 복호기를 위한 고속 소면적의 수정된 스텝-바이-스텝 복호 방법 및 그 연산 회로 Download PDF

Info

Publication number
KR101432909B1
KR101432909B1 KR1020120151048A KR20120151048A KR101432909B1 KR 101432909 B1 KR101432909 B1 KR 101432909B1 KR 1020120151048 A KR1020120151048 A KR 1020120151048A KR 20120151048 A KR20120151048 A KR 20120151048A KR 101432909 B1 KR101432909 B1 KR 101432909B1
Authority
KR
South Korea
Prior art keywords
error
block
value
syndrome
calculation block
Prior art date
Application number
KR1020120151048A
Other languages
English (en)
Other versions
KR20140091087A (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 KR1020120151048A priority Critical patent/KR101432909B1/ko
Publication of KR20140091087A publication Critical patent/KR20140091087A/ko
Application granted granted Critical
Publication of KR101432909B1 publication Critical patent/KR101432909B1/ko

Links

Images

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/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
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-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/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
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1545Determination of error locations, e.g. Chien search or other methods or arrangements for the determination of the roots of the error locator polynomial
    • 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
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1555Pipelined decoder implementations
    • 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/6502Reduction of hardware complexity or efficient processing

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

본 발명의 실시예는 BCH 부호의 복호 시 오류 정정 효율이 높고 구조가 간단한 복호 장치와 그 장치에서 실시되는 방법에 대한 것이다. BCH 부호를 복호하는 복호 장치에 있어서, 입력되는 BCH(Bose-Chaudhri-Hocquenghem) 부호의 오류 유무를 판단하기 위한 신드롬(Syndrome)을 계산하는 신드롬 계산 블록; 신드롬 값을 이용하여 행렬식을 계산하고 BCH 부호의 오류 위치를 결정하는 행렬 계산 블록; 및 결정된 오류 위치 정보를 통하여 최종적으로 오류를 정정하는 오류 정정 블록을 포함하고, 행렬 계산 블록은 행렬식을 구하는데 필요한 변수를 신드롬이 하나로 공유하도록 제공하는 공용 계수 계산 블록; 및 입력 BCH 부호의 오류 검사 위치에 따라서 비트(Bit) 값으로 오류 여부를 판단하는 행렬 판정 블록을 포함하는 것을 특징으로 하는 BCH 복호 장치가 제공될 수 있다.

Description

병렬 BCH 복호기를 위한 고속 소면적의 수정된 스텝-바이-스텝 복호 방법 및 그 연산 회로{HIGH-SPEED LOW-COMPELEXITY MODIFIED STEP-BY-STEP DECODING METHOD AND Circuit for parallel bch decoder}
본 발명의 실시예는 BCH 부호의 복호 시 오류 정정 효율이 높고 구조가 간단한 복호 장치와 그 장치에서 실시되는 오류 정정 방법에 대한 것이다.
현재 공지되어 있는 Bose-Chaudhuri-Hocquenghen (BCH) 부호의 복호 알고리즘으로는 Peterson-Gorenstein-Zierler(PGZ) 알고리즘, Berlekamp-Massey(BM) 알고리즘, Modified Euclidean(ME) 알고리즘 등이 있으며 널리 사용하는 알고리즘은 BM 알고리즘과 ME 알고리즘이다.
다 채널 병렬 BCH 복호기 구조에서는 하드웨어 복잡도가 가장 중요한 문제이다. BM 알고리즘과 ME 알고리즘, 이 두 알고리즘을 이용하여 다 채널 병렬 BCH 복호기를 구성하면 하드웨어 복잡도가 높은 문제가 발생하게 되고 이는 고속 저면적 순방향 오류 정정(FEC)에 적합하지 못하다.
오류 정정 능력이 낮은 경우 스텝-바이-스텝 (Step-By-Step, SBS) 알고리즘을 적용하여 효율적인 구조 설계가 가능하다. SBS 알고리즘의 경우 t < 4 일 때, 하드웨어 복잡도 면에서 효과적이며 피드백(Feedback) 루프가 없어 파이프라인이 역시 용이하다.
하지만, 기존의 SBS 알고리즘 방식은 다 병렬 구조 및 다 채널 구조를 구현할 때에 문제점이 있다. 그 이유는 기본적으로 SBS 알고리즘은 비트 단위로 검사를 수행하기 때문에 병렬 구조의 경우 비트 단위 검사를 수행함에 있어 계산량이 병렬 차수만큼 증가하게 되는 것이다. 또한 다 채널 구조 역시 각 채널마다 같은 계산을 수행해야 하므로 하드웨어 복잡도가 채널의 수에 비례하여 증가하게 된다.
도 1은 기존 SBS 알고리즘 방식의 전체 흐름도를 설명하기 위한 도면이다. 기존의 SBS 알고리즘은 신드롬 값으로부터 행렬식(Determinant)을 유한체 내에서의 반복 연산으로 계산하여 오류의 위치를 찾아 정정해 나가는 연산을 수행하는 알고리즘이며, 이에 따른 복호화 과정은 다음과 같다. 먼저, 수신된 메시지로부터 신드롬 다항식
Figure 112012106658014-pat00001
을 계산한다. 또한,
Figure 112012106658014-pat00002
로부터 구성된 행렬로부터 행렬식
Figure 112012106658014-pat00003
을 구한다. 이에, 다음 단계에서는
Figure 112012106658014-pat00004
를 이용하여 해당 위치의 오류를 정정하여 최종적으로 정정된 코드워드를 출력한다.
이러한 복호 과정에서 신드롬에 인위적으로 오류를 가한 변형된 신드롬 값을 이용하여 계산되는 행렬식이 필요하다. 기존 SBS 알고리즘에서는 입력 값을 인위적으로 바꾸어 변화된 신드롬 값(
Figure 112012106658014-pat00005
)을 행렬 형태의 식으로 나타내며 ROM을 이용하여 갈로이스 필드(Galois Field, GF)의 근인
Figure 112012106658014-pat00006
값을 곱한다.
Figure 112012106658014-pat00007
Figure 112012106658014-pat00008
표 1에 나타낸 바와 같은 방법으로 표 2와 같은 행렬식 값을 구하게 된다. 행렬식의 값은 계산된 값이 0인지 아닌지에 대해서 판별한다. 따라서 0이 아닌 경우는 1로 표시하고 0인 경우는 그대로 0으로 표시한다.
예를 들어, 수신된 3개의 오류 정정 SBS 알고리즘에서
Figure 112012106658014-pat00009
로 구한 오리지널 행렬식
Figure 112012106658014-pat00010
값이 (1,1,0)이고 ‘i’번째 비트를 바꾼 뒤 업데이트된 행렬식
Figure 112012106658014-pat00011
이 (1,0,0)이라면 ‘i’번째 값은 오류 위치이며, 행렬식이 변하지 않고 (1,1,0)이라면 ‘i’번째 비트는 오류가 없는 비트이다. 기존 SBS 알고리즘은 0번째 비트부터 마지막 비트까지 1비트씩 임의로 값을 변경해주어 비트가 바뀔 때마다 신드롬 다항식과 행렬식을 구하고 초기 입력 값으로 구한 행렬식과 비교를 하여 바뀐 비트의 위치에 오류가 발생했는지 여부를 비교하여 정정한다. 또한 초기 행렬식으로 오류가 몇 개 발생하였는지 파악할 수 있다.
하지만 상기와 같은 방식은 연산량이 많아지므로 BM 알고리즘으로 설계된 복호기보다 면적 효율적인 설계를 할 수 없으며 또한 고속 데이터 통신에는 적합 하지 않은 구조이다.
본 발명의 실시예는 상기에 기술한 기존 SBS 알고리즘의 단점을 극복하고 면적 효율적인 구조와 높은 클록 스피드(Clock Speed)를 얻을 수 있는 수정된 SBS 알고리즘과 그 알고리즘에 의하여 구현된 병렬 BCH 복호 장치를 제공하고자 한다.
이에, 필요한 연산들을 공유함으로써 최소화하고, 면적 효율이 높은 병렬 BCH 복호기를 설계한다. 다 채널 및 병렬 구조에 적합하며 면적 효율적인 설계가 가능하도록 한다.
또한, 피드백 구조가 없도록 설계하여 파이프 라인이 용이하고, 높은 클록 스피드를 얻을 수 있는 고속 다 채널 구조에 적합하도록 설계한다.
BCH 부호를 복호하는 복호 장치에 있어서, 입력되는 BCH 부호의 오류 유무를 판단하기 위한 신드롬(Syndrome)을 계산하는 신드롬 계산 블록; 신드롬 값을 이용하여 행렬식을 계산하고 BCH 부호의 오류 위치를 결정하는 행렬 계산 블록; 및 결정된 오류 위치 정보를 통하여 최종적으로 오류를 정정하는 오류 정정 블록을 포함하고, 행렬 계산 블록은 행렬식을 구하는데 필요한 변수를 신드롬이 하나로 공유하도록 제공하는 공용 계수 계산 블록; 및 입력 BCH 부호의 오류 검사 위치에 따라서 비트(Bit) 값으로 오류 여부를 판단하는 행렬 판정 블록을 포함하는 것을 특징으로 하는 수정된 스텝-바이-스텝 복호 장치가 제공될 수 있다.
일측에 있어서, 신드롬 계산 블록은 복호 장치에서 정정하는 오류의 수를 t라고 할 때, t 개의 신드롬을 계산할 수 있다.
또 다른 측면에 있어서, 공용 계수 계산 블록은 가변 GF(Galois Field) 곱셈기, 덧셈기, 제곱기, 세제곱기, 네제곱기를 포함하여 BCH를 구성하는 채널과 병렬에 상관 없는 하나의 공유 구조로 구성되며, 공용 계수 계산 블록의 지연 시간은 1 클럭이 될 수 있다.
또 다른 측면에 있어서, 공용 계수 계산 블록은 신드롬을 웨이트(Weight) 변형된 값으로 행렬식에 적용하고, 행렬식으로부터 공통항을 추출하여 채널과 병렬 구조에 영향을 받지 않는 구조로 구성할 수 있다.
또 다른 측면에 있어서, 행렬 판정 블록은 하나의 블록으로 구현되는 상수 GF 곱셈기와 멀티플렉서(Multiplexer), D-플립플랍(Flip-flop)을 포함하여 구성되고, 오류 검사는 GF 필드 원소 순서에 따라서 0부터 2n-1번째까지 수행하며, 매 클럭마다 BCH 부호의 검사 위치가 변경될 수 있다.
또 다른 측면에 있어서, 오류 검사의 결과 값은 1 비트로 출력되고, BCH 부호의 검사 위치에 따른 결과 값이 0이면 해당 위치에 오류가 없으며, 오류 검사의 결과 값이 0이 아니면 해당 위치에 오류가 없는 것으로 판단할 수 있다.
또 다른 측면에 있어서, 오류 정정 블록은 1 클럭동안 검사하기 위한 비트 수의 D-플립플랍과 1 클럭을 지연하기 위한 D-플립플랍을 포함하여 구성되며, 행렬 판정 블록의 결과 값을 참조 값으로 비교기를 통해 오류 값을 감지할 수 있다.
본 발명의 실시예를 통해 기존 SBS 알고리즘의 단점을 극복하고 면적 효율적인 구조와 높은 클록 스피드를 얻을 수 있는 수정된 SBS(Modified Step-by-Step, m-SBS) 알고리즘과 그 알고리즘에 의하여 구현된 병렬 BCH 복호 장치를 제공할 수 있다.
이에, 필요한 연산들을 공유함으로써 최소화하고, 면적 효율이 높은 병렬 BCH 복호기의 설계가 가능하며, 다 채널 및 병렬 구조에 적합하며 면적 효율적인 설계가 가능하다.
또한, 피드백 구조가 없도록 설계하여 파이프 라인이 용이하고, 높은 클록 스피드를 얻을 수 있는 고속 다 채널 구조에 적합하도록 설계할 수 있다.
도 1은 기존 SBS 복호 알고리즘 방식을 이용한 전체 흐름도를 도시한 것이다.
도 2는 본 발명의 일실시예에 있어서, 수정된 m-SBS 복호 알고리즘 기반의 BCH 복호 장치의 구성을 설명하기 위한 블록도이다.
도 3은 본 발명의 일실시예에 있어서, 신드롬 계산 블록의 구성을 설명하기 위한 도면이다.
도 4는 본 발명의 일실시예에 있어서, 공용 계수 계산 블록의 구성을 설명하기 위한 도면이다.
도 5는 본 발명의 일실시예에 있어서, 행렬 판정 블록의 구성을 설명하기 위한 도면이다.
도 6은 본 발명의 일실시예에 있어서, 오류 정정 블록의 구성을 설명하기 위한 도면이다.
도 7은 본 발명의 일실시예에 있어서, 수정된 m-SBS 복호 알고리즘을 적용한 다 채널 병렬 BCH 복호 장치를 설명하기 위한 도면이다.
이하, BCH 부호를 복호하는 복호 장치와 장치에 적용되는 복호 알고리즘에 대해서 첨부된 도면을 참조하여 자세히 설명한다.
도 2는 본 발명의 일실시예에 있어서, m-SBS 알고리즘 기반 복호 장치의 구성을 전체 동작 흐름과 함께 도시한 블록도이다.
앞서 설명한 바와 같이, 기존 SBS 알고리즘으로 병렬 BCH 복호기를 설계한다면, 도 1과 같이 나타날 것이다. 오류의 유무를 판단하기 위한 신드롬을 계산하고, 계산된 신드롬 값을 이용하여 신드롬 기반의 행렬식 계산을 통해 오류 위치를 결정한다. 이에, 결정된 오류 위치 정보를 통하여 최종적으로 오류가 나타난 위치의 오류를 정정하게 된다.
기존의 방식에서는 다 채널 및 병렬 구조로 복호 장치를 구성할 때에 각각의 블록들이 채널 수 또는 병렬 수만큼 필요하였다. 여기서, 행렬식을 계산할 때에 계산의 복잡도가 가장 크기 때문에 다 채널 및 다 병렬 설계 시에 전체 하드웨어의 복잡도가 급격하게 늘어나는 단점이 있다. 따라서, 효율적인 설계를 할 수 없으므로 고속 통신용에는 적합하지 않다.
도 2의 m-SBS 알고리즘을 이용해 병렬 BCH 복호기를 설계함에 있어서, 신드롬 계산 블록(210), 행렬 계산 블록(220), 그리고 오류 정정 블록(230)을 포함하여 구성될 수 있는데, 여기서 중요한 점은 기존의 행렬 계산 블록(220)을 공용 계수 계산 블록(221)과 행렬 판정 블록(222)으로 나누어 구성한다는 점이다. 이와 같은 구성을 통해 다 채널 및 다 병렬 구조에서 공용 계수 계산 블록(221)을 공유할 수 있도록 하여 효율을 높일 수 있다.
행렬식을 구하는데 필요한 변수들을 계산하는 공용 계수 계산 블록(221)은 채널마다 또는 병렬 연결마다 구현할 필요 없이 전체 채널 또는 병렬구조에서 하나의 공용 계수 계산 블록(221)을 공유하기 때문에 기존의 BM 알고리즘을 이용한 BCH 복호 장치보다 면적 효율이 높은 복호기를 구현할 수 있다.
이와 같은 구성은 웨이트 변형된 신드롬 값을 그대로 행렬식 계산식에 적용하기 때문에 가능하다. 행렬식으로부터 공통항을 추출하여 병렬 및 채널에 영향을 받지 않는 부분을 따로 구성함으로써 공유가 가능한 블록을 형성할 수 있다.
하기의 표 3은 m-SBS 알고리즘의 의사 코드를 도시한다.
Figure 112012106658014-pat00012
BCH 부호의 복호는 입력된 BCH 부호어에 오류가 1개 있는 경우와 2개 이상이 있는 경우로 구분하여 수행할 수 있는데, 각 경우에 대해서 공통 다항식(표 3의 Solve Determinant decision equation, R = A?p + B?2p + C?3p ) 을 적용하여 공유할 수 있는 구조로 설계가 가능하다.
예컨대, 두 가지 경우에 대하여 공통 다항식의 공용 계수인 A, B, C, R을 구하고, 경우에 따라서 다항식의 계수를 대입하여 오류를 정정할 수 있다. 여기서, A, B, C, R은 병렬 차수에 영향을 받지 않으므로 계산된 신드롬으로부터 구할 수 있으며, 다 채널 구성 시에도 Time-Multiplexing(시간 다중화)을 이용하여 하나의 블록을 공유하는 형태를 구성할 수 있다.
도 3은 본 발명의 실시예에 있어서, 도 2에 도시된 신드롬 계산 블록(210)의 상세한 구성을 도시한 것이다. 신드롬 계산 블록(210)은 일반적인 구성을 가지며, 표 3에 나타낸 바와 같이 3개의 오류 (t=3) 를 정정할 수 있는 경우에 기존의 복호 장치에서는 2t-1개 즉 5개의 신드롬 값을 구해야 하지만, m-SBS 알고리즘을 적용한 복호 장치는 1, 3, 5번째의 신드롬 값이 필요하기 때문에 3개의 신드롬 값만을 계산하게 된다.
도 4는 본 발명의 일실시예에 있어서, 중요한 구성으로 나타나는 공용 계수 계산 블록(221)의 상세한 구성을 설명하기 위한 도면이다. 앞서 언급한 바 있듯이, 수신 부호로부터 계산된 신드롬 값을 입력으로 수신하여 공용 계수 A, B, C, R을 계산할 수 있다. 공용 계수의 계산 과정은 병렬 차수에 영향을 받지 않기 때문에 복호 과정 중에 단 한 번만 계산하면 된다.
따라서, 이를 다 채널 병렬 BCH 복호기 구조에 적용할 경우, 공유가 가능해지기 때문에 하드웨어적으로 효율적인 구조를 구현할 수 있으며, 지연 시간을 줄일 수 있어 시간적인 효율도 함께 가질 수 있다.
기존의 SBS 알고리즘을 이용한 복호 장치 구조는 이와 같이 다 채널 구조에 대하여 공유 구조를 나타내는데 어려움이 있었고, 이를 나타내기 위해 (채널의 수 * 병렬 수)만큼의 연산 블록이 요구되기 때문에 하드웨어 측면에서 효율이 낮다. 또한 기존의 BM 알고리즘 기반의 Key equation solver(KES) 블록의 복호 지연 시간이 t 클럭인데 반해, 공용 계수 계산 블록(221)은 1 클럭이므로, 별도의 하드웨어 추가 필요 없이 가능한 많은 채널에 대하여 공유가 가능하다.
도 4의 블록 구조에서 나타나듯이, 병렬 차수와는 상관없이 1개의 공유 구조로 설계할 수 있으며, 가변 GF 곱셈기, 덧셈기, 제곱기, 세제곱기, 네제곱기 등으로 구성되어 있다. 하드웨어적으로 복잡도가 가장 높은 가변 GF 곱셈기는 공용 계수 계산 블록(221)에서 사용되며 이외의 다른 블록에서는 사용되지 않기 때문에 기존의 방법 대비 채널 및 병렬 차수에 따라 급격히 하드웨어 복잡도가 증가하는 것을 억제할 수 있다.
도 5는 본 발명의 일실시예에 있어서, 도 2의 행렬 판정 블록(222)의 구조를 설명하기 위한 도면이다. 행렬 판정 블록(222)은 공용 계수 계산 블록(221)에서 계산한 공용 계수를 입력으로 받아, 실제적으로 오류 위치의 정보를 나타내는 값을 생성할 수 있다. 여기서 오류 위치 정보를 나타내는 값은 H로 나타낸다.
오류 패턴에 따라서 공유 계수가 입력되고, 표 3에 나타낸 행렬 판정식(Determinant decision)의 계산 결과로부터 각 병렬 차수 및 부호의 검사 위치에 따라서 검사를 실행하며, 해당 위치가 오류일 경우 H 값을 1로 생성하고, 오류가 아닐 경우엔 H 값을 0으로 생성할 수 있다. 기존의 SBS 방법은 t=3 일 때에 H 값이 3개 필요하지만, m-SBS 방법은 오류 패턴에 따라서 동작하므로 1 비트의 H 값 만으로 판정이 가능하다.
공용 계수 계산 블록(221)으로부터 얻은 공용 계수는 앞서 말한 바와 같이 행렬 판정 블록(222)에서 오류 패턴에 따라서 행렬 판정식에 대입된다. 행렬 판정 블록(222)은 GF 필드 원소 순서에 따라서 오류 검사를 수행할 수 있다. 검사 결과 값이 0이 아니라면 H 값은 0이 아닌 값을 가지고, 계산 결과가 0이라면 H 값 또한 0을 가질 수 있다.
도 5의 구조에서 계산 과정에 사용되는 곱셈기는 가변 GF 곱셈기가 필요하지 않으며, 병렬 차수에 따른 상수 GF 곱셈기를 필요로 한다. 상수 GF 곱셈기의 경우, 공통 입력을 가지는 곱셈기의 공유 기법을 이용하여 하드웨어의 복잡도를 줄일 수 있는데, 이는 상수 GF 곱셈기를 하나의 블록으로 구현이 가능하기 때문이다.
이러한 방법은 Iterative Matching Algorithm(IMA)을 통하여 가능하며 계산 과정에서 생기는 공통 계산항을 제거하고 공유하는 구조를 갖게 된다. 따라서, 이와 같은 방법으로 전체적인 하드웨어 복잡도를 낮출 수 있고 병렬 차수가 클수록, 즉 공통 입력을 가지는 연산기가 많을수록 더욱 좋은 효과를 얻을 수 있다.
도 5에서 판정 값인 H 값은 멀티플렉서(Multiplexer)에 의해 제어되는 입력과 상수 GF 곱셈기의 입력인 GF 필드 원소에 의하여 계산된다. GF 필드 원소는 매 클럭마다 비트 검사 위치에 따라 변하고, 0부터 2n-1번째까지 검사를 수행할 수 있다.
첫 번째 클럭 사이클에서 행렬 판정 블록(222)의 최초 입력은 멀티플렉서에 의하여 오류 패턴에 따라서 공유 계수의 값이 선택되어 계산을 수행한다. 이 후의 과정에서는 인위적으로 가해진 오류의 위치를 반영하기 위해 공유 계수가 아닌 D-플립플랍과 상수 GF 곱셈기로부터 계산된 결과가 입력으로 사용된다.
매 클럭마다 비트 검사 위치는 이동해야 하므로 이를 반영하기 위해 D-플립플랍과 상수 GF 곱셈기의 누적 곱셈 형태로 만들어 구성할 수 있으며 이렇게 계산된 값은 행렬 판정 블록(222)의 입력으로서 사용된다. 오류의 검사는 코드워드의 첫 번째 비트 시작 지점부터 매 클럭마다 검사 위치가 변경되어 코드워드의 끝까지 수행할 수 있다.
도 6은 본 발명의 일실시예에 있어서, 오류 정정 블록(230)의 구성을 도시하고 있다. 오류 정정 블록(230)은 행렬 판정 블록(222)으로부터 획득한 H 값을 통해 실제적으로 오류의 정정을 수행하는 블록이다. m 비트의 H값은 코드워드의 오류 패턴 정보를 가지고 있으며 값이 0인지 아닌지에 따라서 1 비트로 표현될 수 있다. 비트단위 OR 게이트를 이용하여 H값이 0이 아닌 경우에는 1로 표시되고 0인 경우에는 0으로 표시한다.
기존의 SBS 방식에 대해서는 두 종류의 행렬 계산 값이 필요하다. 하나는 수신 부호에서 계산된 신드롬 값으로부터 계산된 H 값이며, 이는 오류를 정정하기 위한 참조 값으로 사용되는 값이다. 참조 값은 원래의 수신 부호의 오류 개수 정보를 가지고 있다. 나머지 하나는 웨이트를 변형한 수신 부호로부터 얻어진 신드롬 값을 통해 계산된 H 값이다. 따라서, 두 종류의 비교를 통해 웨이트가 변형된 해당 위치의 오류 여부를 판단하고, 본래의 수신 부호에 내재되어 있는 오류 패턴을 정정할 수 있다.
본 발명에서 제안하는 방법에서는 참조 값을 계산할 필요가 없으며, 웨이트가 변형된 신드롬 값을 통하여 계산된 H 값으로부터 직접 획득할 수 있다. 이는 3개의 오류를 정정할 수 있는 BCH 부호의 경우, 4번째 위치까지의 행렬 값의 변화만을 살펴보면 참조 값 H를 결정할 수 있기 때문이다.
예컨대, 오류가 2개 또는 3개라면 최소 4번의 검사 동안 1이 아닌 H 값을 적어도 하나 얻을 수 있으며, 이때 H 값이 참조 값이 될 수 있다. 오류가 1개일 때에도 마찬가지이며, 4개 이상일 경우는 참조 값을 구할 수 있으나 복호 과정이 수행되지 않는다.
따라서, 이와 같은 검사를 실시하기 위해서 1 클럭동안 검사를 위한 4 비트의 D-플립플랍이 필요하며, 검사를 위한 H 역시 1 클럭을 지연시켜야 하기 때문에 이를 위한 D-플립플랍이 필요하다. 1 클럭 사이클이 지연되지만, 기존 방법에서 적용되었던 참조 값 H를 얻기 위한 계산 블록이 필요 없게 되므로 하드웨어적인 복잡도를 낮출 수 있다.
도 7의 실시예는 본 발명에서 제안하는 m-SBS 알고리즘을 적용한 다 채널 구조를 가지는 병렬 BCH 복호 장치의 구조를 설명하기 위한 도면이다. 도 7에 나타낸 구조는 16 채널 및 16 병렬 구조로 나타낸 것이다.
앞서 설명한 바와 같이, 채널 및 병렬에 영향을 받지 않는 공용 계수 계산 블록을 하나로 공유하여 사용할 수 있기 때문에 하드웨어 복잡도 측면에서 이득이 있고, 여기서 공용 계수 계산 블록은 각 채널에서 1 클럭의 지연이 있기 때문에 전체적인 지연에 큰 영향을 끼치지 않는다.
따라서, 다 채널 구조에 적합하며, BM 알고리즘과 비교하여도, 실질적으로 비교했을 때, 하드웨어의 복잡성에 대해서 약 34% 정도 효율이 높으며, 지연 길이가 짧기 때문에 공유를 하여도 더 많은 채널의 코드 워드를 공유할 수 있는 구조의 형성이 가능하다.
또한 도 7과 같은 다 채널 구조는 피드백 구조가 없기 때문에 파이프라인이 용이하며, 따라서 파이프라인에 높은 클럭 스피드를 획득할 수 있는 장점이 있다.
본 발명의 일실시예는 광대역 장거리 광통신 시스템을 위한 고속 순방향 오류 정정 시스템의 응용분야에 잠재 적용 실 예를 가지고 있다.
또한, 본 발명의 실시예들은 DVB-T2/S2 모바일 방송시스템 및 하드디스크 CD-ROM, DVD와 같은 광기록 매체(optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 메모리 시스템의 순방향 오류 정정 시스템이 포함된다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 구성들은 본 발명 사상의 범주에 속한다고 할 것이다.
210: 신드롬 계산 블록
220: 행렬 계산 블록
221: 공용 계수 계산 블록
222: 행렬 판정 블록
230: 오류 정정 블록

Claims (8)

  1. BCH (Bose-Chaudhri-Hocquenghem) 부호를 복호하는 복호 장치에 있어서,
    입력되는 BCH 부호의 오류 유무를 판단하기 위한 다수 개의 신드롬(Syndrome)을 계산하는 신드롬 계산 블록;
    상기 신드롬 값을 이용하여 행렬식을 계산하고 상기 BCH 부호의 오류 위치를 결정하는 행렬 계산 블록; 및
    상기 결정된 오류 위치 정보를 통하여 최종적으로 오류를 정정하는 오류 정정 블록을 포함하고,
    상기 행렬 계산 블록은
    상기 행렬식을 구하는데 필요한 변수를 상기 다수 개의 신드롬이 하나로 공유하도록 제공하는 공용 계수 계산 블록; 및
    상기 입력 BCH 부호의 오류 검사 위치에 따라서 비트(Bit) 값으로 오류 여부를 판단하는 행렬 판정 블록을 포함하며,
    상기 공용 계수 계산 블록은 가변 GF(Galois Field) 곱셈기, 덧셈기, 제곱기, 세제곱기, 네제곱기를 포함하며 상기 복호 장치를 구성하는 채널과 병렬에 상관 없는 하나의 공유 구조로 구성되며,
    상기 공용 계수 계산 블록의 지연 시간은 1 클럭인 것
    을 특징으로 하는 수정된 스텝-바이-스텝 복호 장치.
  2. 제1항에 있어서,
    상기 신드롬 계산 블록은 상기 복호 장치에서 정정하는 오류의 비트 수를 t라고 할 때, t 개의 신드롬을 계산하는 것
    을 특징으로 하는 수정된 스텝-바이-스텝 복호 장치.
  3. 삭제
  4. 제1항에 있어서,
    상기 공용 계수 계산 블록은 상기 신드롬을 웨이트(Weight) 변형된 값으로 상기 행렬식에 적용하고, 상기 행렬식으로부터 공통항을 추출하여 채널과 병렬 구조에 영향을 받지 않는 구조로 구성하는 것
    을 특징으로 하는 수정된 스텝-바이-스텝 복호 장치.
  5. 제1항에 있어서,
    상기 행렬 판정 블록은 하나의 블록으로 구현되는 상수 GF 곱셈기와 멀티플렉서(Multiplexer), D-플립플랍(Flip-flop)을 포함하여 구성되고,
    상기 오류 검사는 GF 필드 원소 순서에 따라서 0부터 2n-1번째까지 수행하며, 매 클럭마다 상기 BCH 부호의 검사 위치가 변경되는 것
    을 특징으로 하는 수정된 스텝-바이-스텝 복호 장치.
  6. 제5항에 있어서,
    상기 오류 검사의 결과 값은 1 비트로 출력되고,
    상기 BCH 부호의 검사 위치에 따른 결과 값이 0이면 해당 위치에 오류가 없으며, 상기 오류 검사의 결과 값이 0이 아니면 해당 위치에 오류가 없는 것으로 판단하는 것
    을 특징으로 하는 수정된 스텝-바이-스텝 복호 장치.
  7. 제1항에 있어서,
    상기 오류 정정 블록은 1 클럭 동안 검사하기 위한 비트 수의 D-플립플랍과 1 클럭을 지연하기 위한 D-플립플랍을 포함하여 구성되며,
    상기 행렬 판정 블록의 결과 값을 참조 값으로 비교기를 통해 오류 값을 감지하는 것
    을 특징으로 하는 수정된 스텝-바이-스텝 복호 장치.
  8. 삭제
KR1020120151048A 2012-12-21 2012-12-21 병렬 bch 복호기를 위한 고속 소면적의 수정된 스텝-바이-스텝 복호 방법 및 그 연산 회로 KR101432909B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120151048A KR101432909B1 (ko) 2012-12-21 2012-12-21 병렬 bch 복호기를 위한 고속 소면적의 수정된 스텝-바이-스텝 복호 방법 및 그 연산 회로

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120151048A KR101432909B1 (ko) 2012-12-21 2012-12-21 병렬 bch 복호기를 위한 고속 소면적의 수정된 스텝-바이-스텝 복호 방법 및 그 연산 회로

Publications (2)

Publication Number Publication Date
KR20140091087A KR20140091087A (ko) 2014-07-21
KR101432909B1 true KR101432909B1 (ko) 2014-08-22

Family

ID=51738360

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120151048A KR101432909B1 (ko) 2012-12-21 2012-12-21 병렬 bch 복호기를 위한 고속 소면적의 수정된 스텝-바이-스텝 복호 방법 및 그 연산 회로

Country Status (1)

Country Link
KR (1) KR101432909B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102136331B1 (ko) 2019-04-25 2020-07-22 국방과학연구소 Bch 코드를 복호화하기 위해 bch 코드의 생성 다항식을 복원하는 방법 및 장치

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI566091B (zh) 2015-09-10 2017-01-11 慧榮科技股份有限公司 用來對一錯誤更正碼進行解碼之方法與解碼電路
CN116781214B (zh) * 2023-08-22 2023-12-08 珠海星云智联科技有限公司 一种解码模块生成方法、设备以及可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020029367A1 (en) * 2000-07-19 2002-03-07 Katsutoshi Seki Decoding circuit and decoding method thereof
KR20110046851A (ko) * 2009-10-29 2011-05-06 인하대학교 산학협력단 Bch 복호기를 위한 고속 소면적 파이프라인 폴딩 방식 벨르캄프-메시 알고리즘 연산 회로 및 그 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020029367A1 (en) * 2000-07-19 2002-03-07 Katsutoshi Seki Decoding circuit and decoding method thereof
KR20110046851A (ko) * 2009-10-29 2011-05-06 인하대학교 산학협력단 Bch 복호기를 위한 고속 소면적 파이프라인 폴딩 방식 벨르캄프-메시 알고리즘 연산 회로 및 그 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102136331B1 (ko) 2019-04-25 2020-07-22 국방과학연구소 Bch 코드를 복호화하기 위해 bch 코드의 생성 다항식을 복원하는 방법 및 장치

Also Published As

Publication number Publication date
KR20140091087A (ko) 2014-07-21

Similar Documents

Publication Publication Date Title
US11817881B2 (en) Transmitting apparatus and interleaving method thereof
JP4036338B2 (ja) 誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置
US10187085B2 (en) Decoding method, decoding apparatus and decoder
US7502988B2 (en) Decoding and error correction for algebraic geometric codes
Leung-Yan-Cheong et al. Concerning a bound on undetected error probability (Corresp.)
JP2005218098A (ja) 順方向のチェンサーチ方式のリードソロモンデコーダ回路
US9362953B2 (en) Efficient error correction of multi-bit errors
KR101432909B1 (ko) 병렬 bch 복호기를 위한 고속 소면적의 수정된 스텝-바이-스텝 복호 방법 및 그 연산 회로
JP7116374B2 (ja) 短縮レイテンシ誤り訂正復号
US8099655B1 (en) Galois field multiplier system and method
EP2309650B1 (en) A systematic encoder with arbitrary parity positions
EP1102406A2 (en) Apparatus and method for decoding digital data
US7100103B2 (en) Efficient method for fast decoding of BCH binary codes
Matthews et al. Fractional decoding of codes from Hermitian curves
JP5602312B2 (ja) 誤り訂正復号装置
Mohamed et al. Performance study of BCH error correcting codes using the bit error rate term BER
Wu et al. Stream cipher by reed-solomon code
US9467174B2 (en) Low complexity high-order syndrome calculator for block codes and method of calculating high-order syndrome
Prashanthi et al. An advanced low complexity double error correction of an BCH decoder
US20200366318A1 (en) Method and error correction system for correcting an error at a unit position of a received signal
EP2309649A1 (en) A systematic encoder with arbitrary parity positions
KR102118605B1 (ko) 블록 코드에 대하여 저복잡도로 고차 신드롬을 계산하는 고차 신드롬 계산기 및 고차 신드롬 계산 방법
RU2282307C2 (ru) Способ синдромного декодирования для сверточных кодов
Ivaniš et al. Cyclic Codes
Prashanthi et al. An Area Efficient (31, 16) BCH Decoder for Three Errors

Legal Events

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

Payment date: 20170626

Year of fee payment: 4