KR20180085651A - 리스트 디코딩 생성을 통한 이진 bch 코드들의 bm-기반 빠른 체이스 디코딩에서 빠른 다항식 업데이트를 위한 방법을 수행하기 위한 asic - Google Patents

리스트 디코딩 생성을 통한 이진 bch 코드들의 bm-기반 빠른 체이스 디코딩에서 빠른 다항식 업데이트를 위한 방법을 수행하기 위한 asic Download PDF

Info

Publication number
KR20180085651A
KR20180085651A KR1020170072228A KR20170072228A KR20180085651A KR 20180085651 A KR20180085651 A KR 20180085651A KR 1020170072228 A KR1020170072228 A KR 1020170072228A KR 20170072228 A KR20170072228 A KR 20170072228A KR 20180085651 A KR20180085651 A KR 20180085651A
Authority
KR
South Korea
Prior art keywords
polynomial
algorithm
rti
basis
asic
Prior art date
Application number
KR1020170072228A
Other languages
English (en)
Other versions
KR102352158B1 (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 KR20180085651A publication Critical patent/KR20180085651A/ko
Application granted granted Critical
Publication of KR102352158B1 publication Critical patent/KR102352158B1/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/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/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/1525Determination and particular use of error location polynomials
    • H03M13/153Determination and particular use of error location polynomials using the Berlekamp-Massey algorithm
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3746Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
    • H03M13/3753Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding using iteration stopping criteria
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information
    • H03M13/451Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD]
    • H03M13/453Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD] wherein the candidate code words are obtained by an algebraic decoder, e.g. Chase decoding
    • 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)

Abstract

본 발명에 따른 이진 BCH 코드들의 빠른 체이스 디코딩에서 빠른 다항식 업데이트를 위한 방법을 수행하기 위해 집적 회로에 의해 실행 가능한 명령 프로그램을 유형적으로 인코딩하는 ASIC에 있어서, 상기 방법은, 통신 채널로부터 상기 ASIC에 의해 수신된 BCH 코드 워드의 경판정 디코딩이 실패할 때, 수정된 키 방정식의 솔루션 모듈에 대한 그뢰브너 기저를 찾기 위해 신드롬 기반 경판정 알고리즘의 출력들을 사용하는 단계와, 상기 ASIC은 특정 약한-비트 위치들의 역들에서 상기 그뢰브너 기저로부터 획득된 다항식들을 평가하는 단계와, 상기 ASIC은 플립된 약한-비트 위치들의 집합
Figure pat00510
에 대한 그뢰브너 기저를
Figure pat00511
에 대한 그뢰브너 기저로 변환하는 단계를 포함하고,
Figure pat00512
은 다음 약한-비트 위치이고, r은 오류들의 수와 BCH 코드 워드의 경판정 보정 반경의 차이이다.

Description

리스트 디코딩 생성을 통한 이진 BCH 코드들의 BM-기반 빠른 체이스 디코딩에서 빠른 다항식 업데이트를 위한 방법을 수행하기 위한 ASIC{APPLICATION-SPECIFIC INTEGRATED CIRCUIT TO PERFORM A METHOD FOR FAST POLYNOMIAL UPDATES IN BM-BASED FAST CHASE DECODING OF BINARY BCH CODES THROUGH DEGENERATE LIST DECODING}
본 발명의 개념에 따른 실시 예는 오류 정정 코드들(error correcting codes(ECC))을 생성하는 방법에 관한 것이다.
코딩 이론에서, BCH 코드들(bose-chaudhuri-hocquenghem(BCH) codes)은 유한체들을 사용하여 구성된 순환 오류 정정 코드들(cyclic error-correcting codes (ECCs))의 클래스를 형성한다. BCH 코드들은 발명가 Raj Bose, D. K. Ray-Chaudhuri 와 Alexis Hocquenghem의 이름을 따서 명명되었다. BCH 코드들은 다음과 같이 정의할 수 있다. 보정 반경(correction radius) t에 대하여, 길이가
Figure pat00001
이고 설계된(designed) 거리가
Figure pat00002
인 원시 이진 (primitive binary) BCH 코드는 길이가
Figure pat00003
이고, 근들(roots)이
Figure pat00004
와 이들의 켤레들(conjugates)인 순환 이진 코드(cyclic binary code)로서 정의되고, 여기서 α는
Figure pat00005
의 몇가지 원시 요소(primitive element)이다. BCH 코드들은 코드 설계 중에 코드로 정정할 수 있는 기호(symbol) 오류들의 수를 정밀하게 제어할 수 있다. 특히, 다중(multiple) 비트 오류들을 정정할 수 있는 이진(binary) BCH 코드들을 설계하는 것이 가능하다. BCH 코드들은 또한 신드롬 디코딩(syndrome decoding)으로 알려진 대수적(algebraic) 방법을 이용하여 쉽게 디코딩될 수 있다. 이는 소면적 저전력 전자 하드웨어를 이용하여 이러한 코드들에 대한 디코더 설계를 단순화할 수 있다.
수신된 코드 워드(codeword) y = x + e (x는 송신된 코드 워드, e는 에러 패턴)의 신드롬은 패리티 행렬(parity matrix) H의 관점에서 정의된다. 선형(linear) 코드 C의 패리티 검사 행렬(parity check matrix)은 이중 코드(dual code)
Figure pat00006
의 생성 행렬(generator matrix)이다. 이는 코드 워드 c가 C에 포함된다는 것과 행렬 - 벡터 곱(matrix-vector product) Hc = 0이 필요 충분 조건(if and only if(iff))임을 의미한다. 그러면 수신된 워드 y = x + e 의 신드롬은 S = Hy = H(x + e) = Hx + He = 0 + He = He로써 정의된다. 실제로 일반적으로 사용되는 고속 코드들의 경우, 신드롬의 길이, 즉 코드의 차원이 수신된 워드의 길이보다 훨씬 작다는 점에서 신드롬들이 유용하다. BCH 코드들의 경우, 특정 패리티-검사 행렬에 해당하는 신드롬으로 작업하는 것이 유용하다.
Figure pat00007
에 대해,
Figure pat00008
라 하자. 필드(field) K와 벡터
Figure pat00009
에 대해, 벡터 f는 다항식
Figure pat00010
으로 식별된다. y와 연관된 신드롬 다항식은
Figure pat00011
이다. 신드롬들의 관점에서, 이진 BCH 코드들을 복호화하는 주요 계산은 다항식들
Figure pat00012
,
Figure pat00013
을 결정하는 것이다. 이는 키 방정식(key equation)으로 알려진 다음 방정식을 만족한다.
ω = mod X 2t
여기서, S는 신드롬 다항식이고, X는 다항식의 자유 변수(free variable)이고,
Figure pat00014
Figure pat00015
로 정의되는 오류 평가 다항식(error evaluator polynomial)이고,
Figure pat00016
Figure pat00017
로 정의되는 오류 평가 다항식이고, a는 BCH 코드의 근들을 정의하는데 사용되는
Figure pat00018
의 원시 요소이고,
Figure pat00019
는 경판정 오류들(hard-decision errors)의 실제 수이고,
Figure pat00020
는 오류 위치들 즉, 오류들의 위치를 나타내는 필드 요소들(field elements)이고, t는 BCH 코드의 설계된 디코딩 반경이다.
벨르캄프-매시(Berlekamp-Massey(BM)) 알고리즘은 BCH 코드들을 디코딩하기 위한 알고리즘으로써, k=L,..., 2t-1,
Figure pat00021
에 대한 S(X)C(X)에서
Figure pat00022
에 대한 계수가 0이 되는 추정된 오류 위치 다항식(error locator polynomial(ELP))
Figure pat00023
을 구하기 위해 사용된다. L은 상기 알고리즘에 의해 발견된 오류들의 수이고, N=d-1=2t는 신드롬들의 총 수이고,
Figure pat00024
는 모든 i에 대한 신드롬 다항식 S(X)에서
Figure pat00025
의 계수이고, k는 L부터 (N-1)까지의 범위의 인덱스(index)이다.
BM 알고리즘은 C(X)를 1로, L을 0으로 초기화하고, B(X)(L이 업데이트된 이후 마지막 C(X)의 사본(copy))을 1로, b(L이 업데이트되고 초기화된 이후 마지막 불합도(discrepancy) d의 사본)을 1로, m(L, B(X), 및 b가 업데이트되고 초기화된 이후 반복 횟수)을 1로 초기화하는 것으로 시작한다. 알고리즘은 k = 0에서 N-1까지 반복한다. 알고리즘의 각 반복(iteration) k에서 불합도 d가 계산된다.
Figure pat00026
d가 0이면, C(X)와 L은 그 순간 옳은 것으로 가정되고, m은 증가하고, 알고리즘은 계속된다.
d가 0이 아니고, 2L>k이면, C(X)는 d의 재계산(recalculation)이 0이 되도록 조절된다.
C(X) = C(X) - (d/b) X m B(X)
Figure pat00027
는 b에 대응하는 신드롬들을 따라 B(X)를 이동시킨다. L의 이전 업데이트가 반복 j에서 발생했다면, m=k-j이고, 재계산된 불합도는 다음과 같다.
Figure pat00028
이는 재계산된 불합도가 다음과 같이 바뀐다.: d = d - (d/b)b = d - d = 0. 그런 다음, m은 증가하고, 알고리즘은 계속된다.
한편, d가 0이 아니고, 2L≤≤n이면, C의 사본은 벡터 T에 저장되고, C(X)는 위와 같이 조절되고, B는 T로부터 업데이트되고, L은 (k+1-L)로 리셋되고, 불합도 d는 b로써 저장되고, m은 1로 리셋되고, 알고리즘은 계속된다.
치엔 검색(chien search)은 BCH 코드들을 디코딩할 때 발생하는 ELP들과 같은 유한체(finite field)를 통해 다항식의 근들을 결정한다. a는 중복도(multiplicative)의 서브그룹을 가지는 유한체의 원시 요소라 하자. 치엔 검색은
Figure pat00029
의 생성 순서로 필드에서 0이 아닌 요소들을 테스트한다. 이러한 방식으로 모든 0이 아닌 필드 요소들은 체크된다. 어떤 단계에서 결과(resultant) 다항식이 0으로 평가되면, 관련된 요소는 근이다.
수신된 비트에 대한 하드 정보(hard information)는 추정된 비트 값, 즉 0 또는 1이고, "소프트 정보(soft information)"는 추정된 값과 이러한 추정의 신뢰도(reliability)를 모두 포함한다. 이 신뢰성은 많은 형태를 취할 수 있지만, 하나의 일반적인 형태는 상기 추정이 정확할 확률, 또는 이러한 확률의 추정치이다. 예컨대, 각 셀이 단일 비트를 저장하는 싱글-레벨 셀(single-level cell(SLC)) 플래시 메모리의 경우, 하드 정보는 단일 리드(단일 임계 값)로 획득되지만, 추가적인 리드들로부터 점점 더 정제된(refined) 소프트 정보가 얻어진다.
경판정(hard-decision(HD)) 디코딩에서, 하드-정보 벡터(좌표당(per-coordinate) 비트 추정치들)이 ECC 디코더의 입력으로 사용되는 반면, 연판정(soft-decision(SD)) 디코딩에서는 소프트 정보 벡터(상기 하드 정보 벡터 상단에 있는 좌표당 신뢰도 벡터)가 상기 ECC 디코더의 입력으로 사용된다.
따라서, 소프트 정보는 비트 추정치들 그 자체의 최상위에서 각 비트 추정의 신뢰도의 추정치로 간주될 수 있다. 그러므로, 충분히 높은 신뢰도를 갖는 비트들은 "강한 것(strong)"으로 간주되는 반면, 나머지 비트들은 "약한 것(weak)"으로 간주될 수 있다. 예컨대, SLC 플래시 메모리에서, 예컨대 임계 레벨 h를 갖는 한번의 리드는 HD 벡터를 초래하고, 예컨대 임계값들
Figure pat00030
을 가지는 두번의 추가적인 리드들은 비트들을 강한 비트와 약한 비트로 나눌 때 사용된다.
체이스(chase) 디코딩은 BCH 코드와 같은 HD 디코딩 블락만을 갖는 코드에 대한 간단한 SD 디코딩 알고리즘이다. 체이스 디코딩에서, HD 디코딩이 실패하면, 소프트 정보는 수신된 비트들을 강한 비트 예컨대, 신뢰할 수 있는 비트와 약한 비트 예컨대, 신뢰할 수 없는 비트로 나누는데 사용된다. 가능한 모든
Figure pat00031
플립핑 가능성들(flipping possibilities)과 같은 약한-비트들 플립들(weak-bits flips)의 일부 패턴들은 테스트된다. 각 플립핑 패턴(flipping pattern)에 대해, HD 디코딩이 사용된다. 일부 플립핑 패턴에 대해 포스트-플립핑 오류들(post-flipping errors)의 수가 상기 코드의 HD 보정 반경 t 보다 적으면, 상기 디코딩은 성공한 것으로 간주된다.
이제 이진 BCH 코드들을 고려하자. 이 코드들은 NAND 플래시 애플리케이션들(applicaions)에서 널리 사용되고, 일반화된 연쇄 코드들(generalized concatenated codes)의 구성요소 코드들(component codes)로도 널리 사용된다. 종래의 체이스 디코더에서, 각 테스트된 플립핑 패턴에 대해, 풀(full) HD 디코더가 호출된다(invoked). 이는 BM 알고리즘을 호출하여 ELP를 찾기 위한 신드롬 계산과 ELP 근들을 찾기 위한 치엔 검색이 포함된다.
그러나, 패턴 i에서 패턴 i+1로 이동하는 경우, 하나의 추가 비트가 플립되면, 패턴 i+1에 대해 풀 HD 디코더를 실행해야 하는가? 한가지 해답은 보간-기반의 빠른 체이스 디코딩(interpolation-based fast Chase decoding)인 웰츠-밸르캄프(welch-berlekamp(WB)) 알고리즘이다. BM 알고리즘이 수신된 워드로부터 신드롬들을 계산하여 시작한 다음 상기 신드롬들로만 작동하지만, WB 알고리즘은 수신된 워드에 직접 작업한다는 점에서 WB 알고리즘은 BM 알고리즘과 다르다. 플래시 메모리에서 사용되는 고속 코드들(high-rate codes)의 경우 모든 신드롬들의 (비트들의) 총 길이가 수신된 워드의 총 길이보다 훨씬 작기 때문에, 신드롬들을 사용하여 작업하는 것이 더 효율적이다. 따라서, 이 경우 수신 된 워드를 디코딩 시작시 모두에 대해 한번 신드롬으로 변환 한 다음, 작은(small) 신드롬들만 계속 처리할 가치가 있다. 또한 WB 디코더로 기존의 BM 기반 HD 디코더를 완전히 대체하는 것은 중요하지 않으며(non-trivial), 고속 코드들의 경우 WB 알고리즘의 복잡성을 BM 알고리즘의 복잡도로 줄이려면 코어 HD 디코더를 위한 새로운 하드웨어 설계가 필요한 재-인코딩(re-encoding) 변환을 사용하는 것이 필요하다.
또 다른 해답은 우(Wu)의 알고리즘이다. "Fast Chase Decoding Algorithms and Architectures for Reed-Solomon Codes", IEEE Transactions on Information Theory, Vol. 58, No. 1, January 2012, pgs. 109-129에 개시되어 있으며, 그 전체 내용이 BM 기반의 빠른 체이스 디코딩으로 본원에 참고 문헌으로 인용된다. 우(Wu)의 방법에서, 각 추가적인 플립 된 비트에 대해, 전체 BM 알고리즘 대신 BM 알고리즘의 마지막 단계와 유사한 계산이 수행되고, 신드롬 재-계산(re-calculation)이 요구되지 않는다. 종래의 디코더는 각 시도에서 BM 알고리즘을 사용하므로, BM 알고리즘에서의 유한체 곱셈들(multiplications)의 수는
Figure pat00032
이며, 여기서 t는 상기 정의된 바와 같다. 우(Wu)의 방법에서, O(t) 유한체 곱셈들에서 다음 추정치(estimation)를 얻기 위해 ELP의 이전 추정치를 사용할 수 있다. 따라서 순진하게 BM 알고리즘을 다시 실행하는 대신 이전 결과를 사용하여 시간을 절약할 수 있다. 따라서 각 단계는 t에서 2차적(quadratic)인 대신 t에서 선형(linear)이다. 특히 우(Wu)의 알고리즘에서 각 추가적인 플립된 비트는 두 개의 불합도 계산들과 두 개의 다항식 업데이트들이 필요하다. 그러나 조작된 다항식들은 일반적으로 t에서 실제 오류 수 (예 : t + r)까지 증가하는 정도를 가진다.
우(Wu)는 또한 치엔 검색을 입력하기 위한 휴리스틱 정지 기준(heuristic stopping criterion)을 가진다. 정지 기준은 정확한 오류 위치(error locator)를 놓치지 않아야 하지만 (드물게) 거짓 양성(false positive)들을 가질 수 있다는 점에 유의해야 한다. 거짓 양성은 불필요한 계산 일뿐이다. 이러한 불필요한 계산들이 드물다면 불필요한 계산들은 실제로 효과가 없다. 우(Wu)의 정지 기준은 정확한 오류 위치 다항식을 놓치지 않으며, 드물게 거짓 양성을 가지지만, 전체 치엔 검색에 비해 프레임 오류율(frame-error rate(FER))이 약간 저하된다.
본 발명이 이루고자 하는 기술적인 과제는 일반적으로 이진 BCH 코드들의 BM-기반 빠른 체이스 디코딩을 수행하기 위한 시스템 및 방법을 제공하는 것이다.
본 발명의 실시 예에 따른 이진(binary) BCH(Bose-Chaudhuri-Hocquenghem) 코드들의 빠른 체이스 디코딩(fast chase decoding)에서 빠른 다항식 업데이트를 위한 방법을 수행하기 위해 집적 회로에 의해 실행 가능한 명령 프로그램을 유형적으로(tangibly) 인코딩하는 ASIC(application-specific integrated circuit)에 있어서, 상기 방법은, 통신 채널로부터 상기 ASIC에 의해 수신된 BCH 코드 워드(codeword)의 경판정(hard-decision(HD)) 디코딩이 실패할 때, 수정된 키 방정식(key equation)의 솔루션 모듈(solution module)에 대한 그뢰브너 기저(Groebner basis)를 찾기 위해 신드롬 기반(syndrome-based) 경판정 알고리즘의 출력들을 사용하는 단계와, 상기 ASIC은 특정 약한-비트(weak-bit) 위치들의 역들(inverses)에서 상기 그뢰브너 기저로부터 획득된 다항식들을 평가하는 단계와, 상기 ASIC은 플립된(flipped) 약한-비트 위치들의 집합
Figure pat00033
에 대한 그뢰브너 기저를
Figure pat00034
에 대한 그뢰브너 기저로 변환하는 단계를 포함하고,
Figure pat00035
은 다음(next) 약한-비트 위치이고, r은 오류들의 수와 BCH 코드 워드의 경판정 보정 반경(correction radius)의 차이이다.
본 발명의 실시 예에 따르면, 이진 BCH 코드들의 BM-기반 빠른 체이스 디코딩을 수행하기 위한 제공함으로써 불필요한 치엔 검색들을 회피하는 새로운 정지 기준을 갖는 새로운 다항식 업데이트 알고리즘을 제공할 수 있는 효과가 있다.
도 1은 본 발명의 실시 예에 따른 BM-기반 체이스 디코딩 알고리즘의 개략적인 블록도이다.
도 2는 본 발명의 실시 예에 따른 빠른 체이스 사전-계산을 수행하기 위한 플로우 차트이다.
도 3은 본 발명의 실시 예에 따른 5-비트 시퀀스에 대한 우(Wu)-타입 트리를 예시적으로 나타낸다.
도 4는 본 발명의 실시 예에 따른 빠른 체이스 디코딩을 위해 특화된 코에터 알고리즘의 흐름도이다.
도 5는 본 발명의 실시 예에 따른 표준 BM 알고리즘의 출력을 그뢰브너 기초로 일반 모듈 N으로 변환하는 일반적인 방법을 나타낸다.
도 6은 본 발명의 실시 예들에 따른 이진 BCH 코드들의 BM-기반 빠른 체이스 디코딩을 수행하기 위한 기계의 블록도이다.
도 7은 본 발명의 실시 예에 따른
Figure pat00036
Figure pat00037
를 얻기 위한 또 다른 방법을 나타내는 흐름도이다.
본 발명의 실시 예들은 다양한 수정들 및 대안적인 형태들에 영향을 받기 쉽지만, 그 특정 실시 예들은 도면들에서 예로서 도시되고 여기에서 상세히 설명될 것이다. 그러나, 본 발명을 개시된 특정 형태로 제한하고자 하는 의도는 없지만 반대로, 본 발명은 본 발명의 사상 및 범위 내에 있는 모든 변형, 등가물 및 대안을 포함하는 것으로 이해되어야 한다.
본 명세서에 기술된 바와 같은 개시의 예시적인 실시 예들은 일반적으로 차수(degree)가 0에서 2r-1까지 증가하는 다항식을 조작하고, 우(Wu)의 기준과는 상이하고 불필요한 치엔 검색들을 회피하는 새로운 정지 기준을 갖는 새로운 다항식 업데이트 알고리즘을 위한 시스템 및 방법을 포함한다. 예컨대, t = 10 및 r = 3 인 경우, 우(Wu)의 다항식은 일반적으로 차수가 10에서 13까지 증가한다. 본 발명의 실시 예에 따른 알고리즘의 다항식은 일반적으로 차수가 0에서 5까지 증가한다. BM 알고리즘이 이미 구현되고 잘 이해되기 때문에, 본 발명의 실시 예에 따른 체이스 디코더 다항식-업데이트 알고리즘은 BM 알고리즘에 기초한다. 본 발명의 실시 예에 따른 다항식은 원하는 오류- 위치 다항식을 얻기 위해 추가로 처리되어야 한다. 이것은 복잡성에 비용이 들지만 정지 기준이 정확한 오류-위치 다항식을 얻을 수 있다고 제안할 때만 추후 처리가 수행된다.
이 공개에서는 Massey의 1969년 논문인 Massey, J. L. (1969), "Shift-register synthesis and BCH decoding", IEEE Trans. Information Theory, IT-15 (1) : 122-127 에서 사용된 용어와 실질적으로 유사한 용어를 사용할 것이며, 그 전체 내용이 본원에 참고로 인용된다.
도 1은 본 발명의 실시 예에 따른 BM-기반 체이스 디코딩 알고리즘의 개략적인 블록도이다. 도 1을 참고하면, BM-기반 체이스 디코딩 알고리즘은 신드롬을 계산하는 단계(11), BM 알고리즘을 수행하는 단계(12), 빠른 체이스 사전(pre)-계산들을 수행하는 단계(13), 빠른 체이스 다항식을 업데이트하는 단계(14), 오류 위치를 구성(construction)하는 단계(15), 및 치엔 검색을 수행하는 단계(16)를 포함할 수 있다. 단계 13, 단계 14, 및 단계 15는 HD 디코딩 실패 시 수행된다. 이러한 단계들은 아래에서 상세히 설명될 것이다.
상술한 바와 같이 단계 11에서 신드롬들은 수신된 코드 워드로부터 계산된다. 단계 12에서 수행된 BM 알고리즘은 상술 한 BM 알고리즘의 변형된 버전이다. 본 발명의 일 실시 예에 따른 이진 BM 알고리즘은 다음과 같다.
입력은 다음과 같다.
(a) 보정 반경 t; 및
(b) 신드롬 다항식 S(X).
출력은 다음과 같다.
(a)
Figure pat00038
Figure pat00039
의 원소(element)가 되는 최소 차수의 다항식 C(X), 여기서
Figure pat00040
;
(b)
Figure pat00041
으로 정의되는 정수 L, 여기서,
Figure pat00042
Figure pat00043
의 차수;
(c) 마지막 길이 변화 이전에 C (X)를 추적하는 다항식 B(X);
(d) 가상(virtual) BM 알고리즘에서 마지막 길이 변화 이전에 C (X)를 추적하는 다항식
Figure pat00044
, 여기서 가상 BM 알고리즘은 N 1 에서 차수를 최소화하고,
Figure pat00045
, 입력 신드롬
Figure pat00046
, 여기서,
Figure pat00047
Figure pat00048
각각은 S(X)의 짝수와 홀수 부분들 각각이고, 일반적으로 아래와 같이 정의된다.
(e) 마지막 길이 변화 이후의 인덱스 수를 추적하는 정수
Figure pat00049
; 및
(f) 가상 BM 알고리즘의 마지막 길이 변화 이후의 인덱스 수를 추적하는 정수
Figure pat00050
.
Figure pat00051
는 수정된 키 방정식이다.
다음과 같은 초기화 작업이 수행된다.
Figure pat00052
,
Figure pat00053
,
Figure pat00054
,
Figure pat00055
,
Figure pat00056
,
Figure pat00057
,
Figure pat00058
본 발명의 실시 예에 따른 BM 알고리즘은 다음과 같은 반복들을 수행한다.
Figure pat00059
길이 변화의 경우에, BM 알고리즘은 마지막 C, 즉 길이 변경 이전에 가장 짧은 LFSR을 B에 저장한다는 것을 상기하자. 본 발명의 일 실시 예에 따른 수정 된 BM 알고리즘을 수행하는 단계(12)는 하나 대신 두개의 B 다항식들에 대한 스토리지(storage)를 사용하고, 다음과 같이 업데이트되는 추가 다항식 B'를 유지한다. 길이 변화가 있는 경우, 즉 B가 업데이트되어야 하는 경우, 최소 LFSR 길이인 L이 홀수이고 L + 1로 변경되면 B'는 변하지 않는다. 따라서 이 경우 B'는 업데이트 전에 B 값을 갖는다. 그렇지 않으면 B'가 변경되고 업데이트 된 B와 동일하다.
HD 디코더가 유효한 코드 워드를 출력하지 못하면 HD 디코딩이 실패했다고 한다. HD 디코더는 최대 t 개의 오류들을 수정하므로, t 개 이상의 오류가 있는 경우 일반적인 결과는 디코딩 실패이다. 오류의 수가 너무 많아서 디코더가 일부 코드 워드를 출력하지 않는 검출되지 않는 오류가 발생하는 경우는 거의 없지만, 이는 전송된 코드 워드가 아니다. BM 알고리즘(12)이 유효한 코드 워드를 출력하지 못하면, 본 발명의 실시 예에 따른 알고리즘은 치엔 검색을 수행하는 단계(16)를 수행하기 전에 빠른 체이스 사전(pre)-계산들을 수행하는 단계(13), 빠른 체이스 다항식을 업데이트하는 단계(14), 및 오류 위치를 구성(construction)하는 단계(15)를 수행하도록 분기한다.
빠른 체이스 사전(pre)-계산들을 수행하는 단계(13)는 빠른 체이스 반복들 동안 변경되지 않은 일부 값들을 계산하므로 사전에 한번 미리 계산될 수 있다.
먼저, 필드 K에 대해,
Figure pat00060
상에서 단항 순서
Figure pat00061
를 다음과 같이 정의할 수 있다.
Figure pat00062
iff
Figure pat00063
,
Figure pat00064
iff
Figure pat00065
, and
Figure pat00066
iff
Figure pat00067
. 또한, 짝수 정수
Figure pat00068
와 다항식
Figure pat00069
에 대해, f(X)의 홀수 부분
Figure pat00070
Figure pat00071
인 반면, f(X)의 짝수 부분
Figure pat00072
Figure pat00073
이다. 위의 정의에서,
Figure pat00074
임을 주목하라.
도 2는 본 발명의 실시 예에 따른 빠른 체이스 사전-계산을 수행하기 위한 플로우 차트이다. 도 2를 참조하면, 단계 21에서 BM 알고리즘의 B, C 출력으로부터, 두 쌍의 다항식들 h 1 = (h 10 (X), h 11 (X)), h 2 = (h 20 (X), h 21 (X)) (여기서, X는 자유 변수(free variable))은 다음과 같이 준비된다. 상기 쌍 h 1 을 BM 알고리즘에 의해 출력된 최소 LFSR인 C의 홀수와 짝수 부분들이라 하자. 쌍 h 2 가 다항식 B'의 홀수와 짝수 부분들의 시프트 된 버전, 즉 X의 제곱을 곱한 것으로 하자. 상기 단항 차수와 관련하여 h 1 h 2 의 선도 단항식들(leading monomials)이 별개의 단위 벡터들을 포함한다면, h 1 h 2 는 변경되지 않고, 그렇지 않으면 단계 22에서 정확히 하나의 i∈ {1,2}에 대해
Figure pat00075
를 라이트하고, come c와 l에 대해
Figure pat00076
로 대체한다. 여기서
Figure pat00077
Figure pat00078
h i 의 선도 단항식이 취소되도록 선택된다. 생성된 쌍은 a <-1 단항 순서(monomial ordering)에 대해 수정된 키 방정식
Figure pat00079
의 해를 구하는 그뢰브너 기저(Groebner basis)이다. 그 다음, 단계 23에서, i∈ {1,2}에 대해,
Figure pat00080
라고 하자. 이는 짝수와 홀수 부분들을 결합한다. 계산은 포함되어 있지 않다. 다항식들
Figure pat00081
Figure pat00082
은 사전-계산 블록(13)의 출력들이다.
다음, 약한 비트들 좌표들(weak bits coordinates)을
Figure pat00083
라 하자. 단계 24에서, 사전-계산 블록(13)은
Figure pat00084
뿐만 아니라
Figure pat00085
를 계산하여 출력하고, w := 2 deg (h 21 ) - t -(1-
Figure pat00086
)로 정의되는 가중 w 를 계산하여 출력한다. 여기서,
Figure pat00087
는 총 오류들의 개수이고,
Figure pat00088
=
Figure pat00089
mod 2는 하나의 정보 비트 손실에 대한 무시할 수 있는 비용(the negligible cost of losing one information bit)으로 알려져 있다고 가정한다.
다항식 업데이트 블록은 추가적인 소프트 리드들로부터의 약한 비트 좌표들(weak bit coordinates from additional soft reads)과 함께 사전-계산 블록(13)에 의해 미리 계산된 양들을 사용한다. 플립핑 패턴들은 근(root)에서 잎(leaf)까지의 각 경로에서 우(Wu)-타입 트리에 정렬되고, 상기 트리의 각 레벨에서 하나의 추가적인 비트가 플립된다. 5-비트 시퀀스에 대한 예시적인 우(Wu)-타입 트리가 도 3에 도시된다. 중간 결과들은 하나 이상의 자식 노드(child node)를 갖는 노드들(30)에 대해 저장될 수 있으며, 이는 도면에 박스로 표시된다. 도 3의 그래프의 한쪽 가장자리에 대한 처리는, 즉, 하나 이상의 가정한 에러를 가산하는 처리는 다음과 같다.
복호화된 원시 이진 BCH 코드는 길이 2 m - 1를 가지고, K는 K :=
Figure pat00090
로 정의되는 유한체라고 하자. 그 다음 오류 위치 다항식
Figure pat00091
이 다음과 같이 주어지도록 두 다항식들 f 1 (X), f 2 (X)
Figure pat00092
K[X]을 검색한다.
Figure pat00093
여기서,
Figure pat00094
Figure pat00095
는 사전-계산 블록(13)의 출력들이다.
Figure pat00096
는 플립될 잠재적 오류 위치들(potential error locations to be flipped)의 집합이라고 하고, 다음 보간 작업을 고려하라. 다음의 2가지 조건들을 만족하는 많아야 하나의 Y-차수의 모든 이변수(bivariate) 다항식들
Figure pat00097
중에서
Figure pat00098
Figure pat00099
는 Q의 Y-반전된 버전이고, 다음과 같이 정의된 (1,w)-가중된 차수를 최소화하는 다항식 Q(X,Y)을 구한다.
max( deg(q 0 ), deg(q 1 ) + w),
여기서, w는 사전-계산 블록(13)의 출력이다.
Figure pat00100
를 위의 두 조건들을 만족하는 많아야 하나의 Y-차수의 이변수 다항식들의 모듈이라 하고, Q(X,Y)를 가중된 차수를 최소화하는 L의 다항식으로 보자.
실시 예에 따른 체이스 디코딩의 기본 아이디어는 다음과 같다.
1. 정확성: 모든 ? j 가 실제 오류 위치들이고, r ≥
Figure pat00101
-t 즉, 체이스 시행에 필요한만큼 큰 정확한 플립핑 패턴이 있는 경우, 원하는 다항식들
Figure pat00102
Figure pat00103
가 일부 0 아닌 상수 c에 대해 Q(X,Y) 즉,
Figure pat00104
에 나타난다.
2. 그뢰브너 기저: Q(X,Y)를 최소화 하는 것은 L에 대한 그뢰브너 기저(groebner basis(GB))에서
Figure pat00105
순서와 같은 적절한 단항 순서로 나타난다. 본 발명의 실시 예는 두개의 이변수 다항식들을 가지고 GB들을 사용한다. 적절한 단항 순서는 사전-계산들과 관련하여 앞서 정의되었다.
3. 빠른 업데이트:
Figure pat00106
에 대한 GB가 이미 존재하는 경우, 추가적인 플립핑 즉,
Figure pat00107
에 대한 GB를 획득하는 것은 쉽다. 빠른 체이스 업데이트는
Figure pat00108
에 대한 GB에서
Figure pat00109
에 대한 GB로 이동하는 알고리즘이 필요하다. 실시 예들에 따라, 그러한 알고리즘 중 하나는 코에터(Koetter) 알고리즘이다.
코에터 알고리즘은 체이스 디코딩보다 더 일반적인 보간법을 해결한다. 도 4는 단항 < w 순서로 빠른 체이스 디코딩에 특화된 본 발명의 실시 예에 따른 코에터 알고리즘의 플로우차트이다.
본 발명의 실시 예에 따른 코에터 알고리즘에 대한 입력은
Figure pat00110
에 대해 GB
Figure pat00111
이고, 제1좌표에서의 g 1 의 선도 단항식(leading monomial(LM))과 제2좌표에서의 g 2 의 LM을 가지고,
Figure pat00112
는 다음 에러 위치이다. 출력은
Figure pat00113
에 대해 제1좌표에서의
Figure pat00114
의 LM과 제2좌표에서의
Figure pat00115
의 LM을 가지는 GB
Figure pat00116
이다.
도면을 참조하면, 실시 예에 따른 알고리즘은 단계 41에서 j=1,2에 대해 불합도를 계산함으로써 시작한다. 불합도는 아래와 같다.
Figure pat00117
단계 42에서 일부 j에 대해 Δ j = 0이면, 오류 위치 구성(15)과 치엔 검색(16)으로 빠져 나간다. 이는 일 실시 예에 따른 정지 기준이며 이하에서 설명된다.
일 실시 예에 따른 알고리즘은 단계 43에서
Figure pat00118
로 설정함으로써 계속된다. 단계 44에서
Figure pat00119
이면, 단계 45에서
Figure pat00120
,
Figure pat00121
를 출력하고, 다음 오류 위치
Figure pat00122
를 처리한다. 그렇지 않으면, 단계 46에서
Figure pat00123
가 되도록 j*
Figure pat00124
J라 하자. 여기서 LM과 최소값은 단항 순서
Figure pat00125
와 관련된다. 여기서 w는 미리 계산된 가중이다. 그 다음 단계 47에서 다항식들이
Figure pat00126
에 대해 업데이트된다.
만약
Figure pat00127
이면,
Figure pat00128
로 설정되고;
그렇지 않으면,
Figure pat00129
로 설정된다.
그 후 상기 알고리즘은 단계 41로 돌아 간다.
빠른 체이스 디코딩을 위한 실시 예에 따른 코에터 알고리즘은 도 3에 도시된 우(Wu)의 트리의 가장자리에서 호출된다. 특히, 상기 알고리즘이 처음 호출될 때,
Figure pat00130
,
Figure pat00131
이다. 그 다음 하나의 부가적인 비트가 상기 플립핑 패턴의 어느 하나가 될 때 상기 이전 출력은 다음 입력이 된다. 예컨대, 01000→01010→01110→11110→11111의 5개의 약한 비트들이 있다고 가정한 도 3에 도시된 트리에서 필립핑 패턴(31)의 다음 순서를 고려하라.
그 다음 제1 플립핑 패턴(하나의 플립된 비트 01000)의 초기 GB는
Figure pat00132
,
Figure pat00133
이고,
Figure pat00134
는 두번째 약한 비트(01000)를 가리키는 필드 원소이고, 출력 GB (g1 +, g2 +) 는 입력 GB (g1, g2)가 되고, 이 때 네번째 약한 비트 (01010)를 가리키는
Figure pat00135
를 가진다. 실시 예에 따른 코에터 알고리즘은 두 쌍의 다항식들
Figure pat00136
Figure pat00137
을 출력한다. 실시 예에 다른 빠른 체이스 디코더는 두개의 출력들 중에서 더 작은 선도 단항식을 가지는 어느 하나를 선택한다.
약한 비트들 내의 r 비트들까지 플립된 경우, 근(root)부터 잎(leaf)까지 각 경로의 깊이는 최대 r이다. 따라서, 본 발명의 실시 예에 따른 코에터 알고리즘을 r번 적용한 후, 네개의 관련 다항식들의 차수의 합은 최대 2r-1이다.
Figure pat00138
Figure pat00139
또는
Figure pat00140
중에서 어느 하나는 제로 다항식일 수 있음을 유의하라. 이러한 경우 deg(0)= -∞이기 때문에 상기 공식은 의미가 없다. 그러나, 이러한 경우, 좌측 합이 0 아닌 다항식들을 초과할 때만 상기 공식이 유지된다는 것을 확인할 수 있다.
빠른 체이스 디코딩에 대한 실시 예에 따른 코에터 알고리즘에 대한 정지 기준은 다음과 같다. 실시 예에 따른 코에터 알고리즘의 출력으로부터 에러 위치 다항식이 구성될 수 있도록,
Figure pat00141
는 정확한 플립핑 위치들이고,
Figure pat00142
라고 가정하자. 그러나 σ(X)를 재구성하고 치엔 검색을 수행하기에 비싸다. 그러나, 약한 비트들 내에 한 번 더 잘못된 위치
Figure pat00143
가 존재한다고 가정하자. 그 다음, 실시 예에 따라 인접한
Figure pat00144
에서
Figure pat00145
까지의 코에터 반복에서 불합도들 중 하나는 0이 될 것이다. 즉,어떤 j에 대하여 . 따라서,
Figure pat00147
들 중에서 어느 하나가 0인지 여부를 체크하는 것은 정지 기준의 역할을 할 수 있다. 그러나, 정확한 오류-위치 다항식이 없다고 하더라도 일부
Figure pat00148
는 0이 될 수 있다. 즉,
Figure pat00149
가 거짓 양성(false positive)이다. 거짓 양성을 처리하는 비용이 증가된 복잡성이다. 그러나, 상기 거짓 양성 비율이 1/100, 또는 심지어 1/10 정도라 하더라도 복잡성의 전반적인 증가는 무시할 수 있고, 몬테 카를로(monte carlo) 시뮬레이션은 이러한 상황에서 신뢰 추정치를 얻기 위해 사용될 수 있다. 실시 예에 따른 정지 기준 비용은 ε-t 이 오로지 r일 때만 반경 r+1의 구에 대한 불합도 계산의 반복의 절반을 수행하는 것을 포함할 수 있다. 이는 무차별(brute force) 치엔 검색에 대한 전반적인 복잡도를 감소시킨다. ε-t=r 일 때, r+l 오류들은 약한 비트들에 필요하고, 이는 무차별 치엔 검색에 비해 FER을 다소 저하시킨다.
빠른 체이스 다항식 업데이트들을 수행하고, 정지 기준을 만족한 후, 알고리즘은 오류 위치 다항식(error locator polynomial(ELP))을 다음과 같이 구성한다. 첫째,
Figure pat00150
Figure pat00151
  = (g + j0 (X), g + j1 (X))가 실시 예에 따른 코에터 알고리즘의 출력이 되도록 하고,
Figure pat00152
에 따라 정렬된 최소 선도 단항식을 가지도록 하자. 그 다음 ELP
Figure pat00153
Figure pat00154
에서 중복도 상수까지 재구성될 수 있다. 여기서,
Figure pat00155
는 다음과 같이 정의된다.
Figure pat00156
는 모듈 N에 대한 그뢰브너 기저라 하자. 여기서,
Figure pat00157
는 제1좌표에서 그것의 선도 단항식을 가지고,
Figure pat00158
는 제2좌표에서 그것의 선도 단항식을 가진다. 그 다음 i=1,2에 대해
Figure pat00159
라 정의한다.
본 발명의 또 다른 실시 예에 따르면, 표준 BM 알고리즘의 출력을 순서
Figure pat00160
와 관련한 일반 모듈 N의 그레브너(Groebner) 기저로 변환하는 일반적인 방법은 도 5의 플로우 차트에 따라 다음과 같다. 일 실시 예에 따라, 일반 모듈 N은
Figure pat00161
로 정의된다. 여기서, K는 일부 필드이고, m∈N 은 어떤 정수이고,
Figure pat00162
은 0이 아닌 정수들이고 g(X) ∈ K[X]는 어떤 다항식이고,
Figure pat00163
이다. 이제 도면을 참조하면, 단계 51에서, 입력 m, g을 갖는 BM 알고리즘의 출력들 C, B, δ로부터 다음의 2 쌍의 다항들식이 형성된다 :
Figure pat00164
Figure pat00165
3 가지 경우를 고려해 보자. 여기서, 선도 단항식들은 순서 <-1 에 따라 정렬된다.
(1) 단계 52에서, b1 및 b2의 선도 단항식들이 별개의 단위 벡터를 포함하면, 단계 53에서 그로브너 기저로서 {b 1, b 2}를 출력하고;
(2) 단계 54에서 선도 단항식들이 동일한 단위 벡터를 포함하고 b1의 선도 단항식이 적어도 b2의 선도 단항식만큼 크면, 단계 55에서 {b 1 - cX l b 2, b 2,}를 GB로서 출력한다. 여기서
Figure pat00166
이고, K * 는 0이 없는 K의 중복도 서브그룹이고, l
Figure pat00167
b 1의 선도 단항식이 취소되도록 선택된다.
(3) 단계 56에서 선도 단항식들이 동일한 단위 벡터를 포함하고 b 2의 선도 단항식이 b 1의 선도 단항식보다 엄격하게 큰 경우, 단계 57에서 {b 1, b 2 - cX l b 1}를 GB로서 출력한다. 여기서
Figure pat00168
이고 l
Figure pat00169
b 2 의 선도 단항식이 취소되도록 선택된다. 이러한 경우는 모든 가능성을 포함한다.
본 발명의 또 다른 실시 예에 따르면, h 1, h 2 및 결과적으로  
Figure pat00170
, 및 w를 얻는 또 다른 방법은 다음과 같다.
1. 수정된 신드롬
Figure pat00171
을 계산한다. 아래에서 설명 할 효율적인 방법이 있음을 유의하라.
2. 모듈
Figure pat00172
에 대해 2-원소 (two-element) 그뢰브너 기저 { h 1, h 2}를 찾는다. 이 작업은 여러 가지 방법으로 수행 할 수 있다.
(a) 기존 BM 알고리즘을 입력 t와
Figure pat00173
에 적용한 다음, 위에서 설명한 일반적인 변환 방법을 사용하여 출력 C, B, δ를 필요한 그뢰브너 기저 h 1 , h 2로 변환한다.
(b) 대안으로, 피츠패트릭(fitzpatrick) 알고리즘을 사용한다..
(c) 대안으로, 유클리드(euclidean) 알고리즘을 사용한다.
수정된 신드롬의 계산은  
Figure pat00174
를 찾는 일반적인 질문과 관련이 있다. 여기서 f, g∈K [X]는 일부 필드 K에 대한 다항식들이고 k는 양의 정수이다. 다항식
Figure pat00175
에 대해, X i 의 계수
Figure pat00176
를 라이트한다.
Figure pat00177
에 대해, 다음의 두 조건을 만족하는 다항식 ti -1(X)가 있다고 가장하자.: (1)
Figure pat00178
, (2)
Figure pat00179
.
Figure pat00180
를 정의하라. 그러면,
Figure pat00181
 는 i 대신에 i + 1로 조건 (1), (2)를 만족한다. Δ를 계산할 때 [ti -1 (1 + Xg)]i를 구하려면 곱해진 다항식들 중에서 어느 하나의 계수를 계산해야 한다. 또한,
Figure pat00182
이기 때문에,
Figure pat00183
이다. 이는 도 7의 플로우 차트를 참조하여
Figure pat00184
를 계산하기 위한 실시 예에 따른 다음의 알고리즘을 유도한다.
Figure pat00185
실시 예에 따른 알고리즘은, 출력 t에서 Xi 의 계수가 i번째 반복 이후 최종 형태이기 때문에 0 지연을 가지며, 처리 속도를 높이기 위해 단계 2(a), 2(b)의 그뢰브너 기저 알고리즘으로 파이프라인될 수 있다.
이론적 배경과 유효성 증명
빠른 체이스 디코딩을 위한 상기 방법의 타당성이 설명될 것이다. 다음에서, 다항식 f의 경우
Figure pat00186
,
Figure pat00187
각각에 대해 때때로 표기법
Figure pat00188
,
Figure pat00189
가 사용될 것이다.
정의.
Figure pat00190
-모듈, L을 다음과 같이 정의하라. 아벨군(abelian group)으로써
Figure pat00191
이지만, 스칼라 곱셈
Figure pat00192
Figure pat00193
로 정의되고,
Figure pat00194
Figure pat00195
-모듈들의 동형(isomorphism)이 됨을 주목하라.
Figure pat00196
를 수정된 키 방정식의 솔루션 모듈로 정의했던 것을 상기하라. 이진의 경우에 상기 표준 키 방정식의 솔루션 모듈인
Figure pat00197
또한 정의하자. 두개의 솔루션 모듈들은 다음과 같은 명제를 통해 관련된다.
명제 1 (솔루션 모듈 간의 관계)
Figure pat00198
은 L의
Figure pat00199
-서브모듈이고,
Figure pat00200
이다. 그러므로
Figure pat00201
는 동형
Figure pat00202
로 제한된다.
증명. 첫번째 주장은 두번째 주장과 동일하지만, 직접 검증할 수 있다. 첫째,
Figure pat00203
은 분명히 L의 아벨 서브 군(abelian subgroup)이므로 모든
Figure pat00204
과 모든
Figure pat00205
,
Figure pat00206
에 대해서 검증해야한다. 그러나,
Figure pat00207
,
여기서 특성(characteristic) 2는 두번째 방정식에서 사용되었고,
Figure pat00208
는 합동 모듈로(congruence modulo; X2t)를 나타낸다.
두번째 주장으로 넘어가자. 다항식
Figure pat00209
에 대해
Figure pat00210
이므로
Figure pat00211
Figure pat00212
에 포함된다는 것은 수학식 1과 필요충분조건이다.
[수학식 1]
Figure pat00213
Figure pat00214
Figure pat00215
수학식 1은 다음의 방정식 쌍과 같다.
[수학식 2]
Figure pat00216
[수학식 3]
Figure pat00217
그래서,
Figure pat00218
iff 수학식 2, 수학식 3 이 참임을 보였다. 주장을 증명하기 위해, 우리는 모든
Figure pat00219
에 대해 (i)과 (ii)를 보일 것이다. (i) 수학식 3은 수학식 2를 따르므로
Figure pat00220
iff 수학식 2, (ii) 수학식 2는
Figure pat00221
와 등가이므로
Figure pat00222
iff
Figure pat00223
. (ii)부터 시작하자. 모든 u에 대해 수학식 2와 수학식 4가 등가임을 관찰하자.
[수학식 4]
Figure pat00224
마지막 방정식에서 용어를 모으고,
Figure pat00225
Figure pat00226
의 역수를 가지므로, 모든 i에 대해
Figure pat00227
에서
Figure pat00228
대해 수학식 2는 필요에 따라 과 등가이다.
(i)로 이동하면, 문제의 이진의 경우에 모든 i에 대해
Figure pat00230
이므로
Figure pat00231
Figure pat00232
,
Figure pat00233
임을 상기하자. 그러므로
Figure pat00234
,
즉,
Figure pat00235
이는 수학식 5와 등가이다.
[수학식 5]
Figure pat00236
(i)를 증명하기 위해, 수학식 2가 유지되면, 수학식 4도 유지된다고 가정하자. 수학식 4에
Figure pat00237
를 곱하고, 합동 모듈로 (Xt)에 대해
Figure pat00238
를 쓰면, 다음이 얻어진다.
Figure pat00239
Figure pat00240
,
여기서, (*)는 수학식 5를 따르고, 다음과 등가이다.
Figure pat00241
Figure pat00242
에서 역변환할 수 있는
Figure pat00243
를 취소하면, 다음이 얻어진다.
Figure pat00244
이는 필요에 따라 수학식 3과 같다.
다음의 명제는 유용할 것이다. 간단한 증명은 생략한다.
명제 2. K를 필드라 하자.
1.
Figure pat00245
와,
Figure pat00246
에 대한 임의의 단항식 순서에 대해,
Figure pat00247
는 다음의 성질을 가지는 서브모듈이라고 하자. 모든
Figure pat00248
에 대해
Figure pat00249
가 i번째 단위 벡터를 포함하도록 하는
Figure pat00250
가 있다. 그러면, P는 모든 i에 대해 i번째 단위 벡터를 포함하는
Figure pat00251
를 가지는 그로브너 기저
Figure pat00252
를 가진다.
2. 임의의
Figure pat00253
와 임의의
Figure pat00254
에 대해 서브모듈
Figure pat00255
은 이론의 파트 1의 조건을 만족하므로(분명히
Figure pat00256
) (1,0)를 포함하는
Figure pat00257
과 (0,1)을 포함하는
Figure pat00258
를 가지는 2-원소(element) 그로브너 기저
Figure pat00259
를 가진다.
명제의 파트 1과 파트 2에서 그로브너 기저는 또한 프리-모듈 기저(free-module basis)이다. 다음의 명제는 P. Beelen, T. Hoeholdt, J. S. R. Nielsen, and Y. Wu, "On rational interpolation-based list-decoding and list-decoding binary Goppa codes," IEEE Trans. Inform. Theory, vol. 59, no. 6, pp. 3269-3281, June 2013의 명제 2의 작은 수정이고, 그 내용은 그 전체가 본 명세서에 참고로 인용된다.
명제 3.
Figure pat00260
가 단항식 순서
Figure pat00261
에 관련된 모듈 N에 대한 그뢰브너 기저라 하자.
Figure pat00262
는 (1,0)을 포함하고,
Figure pat00263
는 (0,1)을 포함한다는 일반론을 잃지 않고 가정하자.
Figure pat00264
2.
Figure pat00265
에 대해,
Figure pat00266
Figure pat00267
와 같은 유일한 다항식들이라고 하자.
Figure pat00268
.
Figure pat00269
정의.
1. 위의 명제에서와 같이
Figure pat00270
(
Figure pat00271
)에 대해
Figure pat00272
라고 하면,
Figure pat00273
Figure pat00274
에 지정된 홀수와 짝수 부분들을 붙여 획득된 다항식이다.
2. 상기 명제의 파트 2에서
Figure pat00275
를 취하면
Figure pat00276
는 수신된 워드
Figure pat00277
의 오류들의 수이다. i=1,2에 대해
Figure pat00278
Figure pat00279
의 선택을 위한 명제로부터의 유일한 다항식이라 하고,
Figure pat00280
라 하자.
ε의 패리티에 관계없이
Figure pat00281
이다.
다음의 명제는 p. 148 of J. S. R. Nielsen, "List Decoding of Algebraic Codes," Ph.D. Thesis, Dep. of Applied Mathematics and Computer Science, Technical University of Denmark, 2013의 작은 수정이다. 이들의 내용은 전체가 본 명세서에 참고로 인용된다. 위의 인용 문헌에 나타난 것과 유사하게 증명은 생략된다.
명제 4.
1.
Figure pat00282
이 되도록
Figure pat00283
에 대한 일부 프리-모듈 기저
Figure pat00284
가 존재한다고 가정하자. 그러면,
Figure pat00285
에 대한 임의의 프리-모듈 기저
Figure pat00286
에 대해
Figure pat00287
가 유지된다.
2. N은
Figure pat00288
인 프리-모듈 기저
Figure pat00289
를 가진다.
에러-위치 다항식
Figure pat00290
으로 돌아가자. 명제 3에서와 같이
Figure pat00291
을 N에
대한 GB라 하고,
Figure pat00292
는 수신된 워드에서 오류들의 수임을 상기하라.
Figure pat00293
Figure pat00294
와 같은 유일한 다항식들이라 하자.
Figure pat00295
는 준동형(homomorphism)이므로
Figure pat00296
즉,
[수학식 6]
Figure pat00297
따라서,
[수학식 7]
Figure pat00298
또한, 명제 4에 의해,
[수학식 8]
Figure pat00299
Figure pat00300
Figure pat00301
는 (신드롬을 통해 )수신된 워드에만 의존하고,
Figure pat00302
Figure pat00303
로부터 복구될 수 있으므로 디코더의 작업은
Figure pat00304
를 찾는 것이다.
아래의 보간 이론은 수학식 7이
Figure pat00305
Figure pat00306
를 찾기 위해 어떻게 사용될 수 있는지를 나타낸다. 이 이론을 시작하기 전에 P. Trifonov, and M. H. Lee, "Efficient interpolation in the Wu list decoding algorithm," IEEE Trans. Inform. Theory, vol. 58, no. 9, pp. 5963-5971, Sept. 2012에 따른 몇가지 추가적인 정의들이 필요하고, 그 전체 내용은 본 명세서에 참고로 인용되었다.
정의.
1. K를 필드라 하자. 일부
Figure pat00307
에 대해
Figure pat00308
(여기서, 모든 i와 j에 대해
Figure pat00309
)형태의 다항식은 (Y,Z)-동일 차수(homogeneous degree)
Figure pat00310
의 (Y,Z)-동차 다항식(homogeneous polynomial)이라고 불린다. K[X,Y,Z]에서 다항식들의 K[X]-서브-모듈에 대해
Figure pat00311
를 라이트하고, 이는 (Y,Z)-동일 차수 p와 (Y,Z)-동질이다.
Figure pat00312
로 설정하자.
2.
Figure pat00313
에 대해서,
Figure pat00314
라 하자. 또한,
Figure pat00315
Figure pat00316
의 Y-역 버전 즉,
Figure pat00317
라 하자. 최대
Figure pat00318
의 Y-차수의 모든 다항식들로 구성된 K[X,Y]의 K[X]-서브모듈에 대해
Figure pat00319
를 라이트하면,
Figure pat00320
는 K[X]-모듈들의 동형임을 증명할 수 있다.
위의 정의에 따라, 보간 이론을 설명할 수 있다. 속편에서
Figure pat00321
Figure pat00322
의 중복도를 나타내고, K는 어떤 필드이고,
Figure pat00323
포인트에서
Figure pat00324
즉,
Figure pat00325
에 나타나는 단항식의 최소 총 차수에 대해서
Figure pat00326
이다. 또한,
Figure pat00327
에 대해서,
Figure pat00328
는 f의 w-가중된 차수, f에 나타나는 모든 단항식들
Figure pat00329
에 대한 최대
Figure pat00330
를 나타낸다.
다음의 이론은 트리포노프(Trifonov and Lee)의 결과로부터 추론될 수 있다.
이론 1. (보간 이론)
임의의 필드 K에 대해,
Figure pat00331
라 하고,
Figure pat00332
는 어떤
Figure pat00333
에 대해
Figure pat00334
Figure pat00335
를 가지는 다항식들이라 하자.
Figure pat00336
에 대해
Figure pat00337
는 다음의 조건을 만족하는 트리플들의 집합이라 하자.
1.
Figure pat00338
는 구별된다.
2.
Figure pat00339
Figure pat00340
는 동시에 0이 아니며 즉 모든 i에 대해
Figure pat00341
.
3. 모든 i에 대해
Figure pat00342
.
그런 다음
if
Figure pat00343
then
Figure pat00344
in
Figure pat00345
정의. 중복도들(multiplicities)의 벡터
Figure pat00346
에 대해,
Figure pat00347
Figure pat00348
는 m으로 지정된 중복도들을 갖는 모든 다항식들의 이상(ideal)이라 하자. 또한,
Figure pat00349
에 대해
Figure pat00350
은 다음과 같이 정의된
Figure pat00351
Figure pat00352
-서브모듈이라 하자.
Figure pat00353
다음 명제에 대한 증명은 간단하다.
명제 5.
Figure pat00354
은 동형
Figure pat00355
하에서
Figure pat00356
의 이미지라 하자. 그러면,
Figure pat00357
은 다음을 만족하는 모든 다항식들
Figure pat00358
Figure pat00359
-모듈이다.
1.
Figure pat00360
,
2.
Figure pat00361
인 모든 x에 대하여,
3.
Figure pat00363
인 모든 x에 대하여 (따라서,
Figure pat00364
인)
Figure pat00365
게다가, 다항식
Figure pat00366
에 대하여
Figure pat00367
따라서,
Figure pat00368
Figure pat00369
에서 최소의
Figure pat00370
-가중된 차수(weighted degree)를 가지면,
Figure pat00371
Figure pat00372
Figure pat00373
에서 최소의
Figure pat00374
-가중된 차수를 가진다.
디코딩을 위한 성공 기준으로 진행하자. 그 후 빠른 체이스 디코딩의 유효성은 특별한 경우로서 다음이 있음을 보여준다. 다음 명제는 보간 이론(이론 1)에서 쉽게 다음과 같다.
명제 6.
Figure pat00375
는 잘못된 좌표들(coordinates)의 집합이라고 가정하자(따라서,
Figure pat00376
).
Figure pat00377
를 일부 부분집합(subset)라 하고, 모든
Figure pat00378
에 대해
Figure pat00379
로 설정함으로써
Figure pat00380
에 대해 m을 정의하자.
또한,
Figure pat00381
라 하자. 그러면, 만약
Figure pat00382
이고,
[수학식 9]
Figure pat00383
이면,
Figure pat00384
에서
Figure pat00385
-가중된 차수를 최소화하는 비-제로(non-zero) 다항식
Figure pat00386
Figure pat00387
를 만족한다.
빠른 체이스 디코딩의 맥락에서 이전 명제를 이용하기 위해
Figure pat00388
,
Figure pat00389
,
Figure pat00390
,
Figure pat00391
, 및
Figure pat00392
인 명제 6의 특별한 경우를 생각해보자. 이 경우는 1의 중복도가 잘못된 위치들에만 할당되는 정확한 체이스 시도와, 적어도
Figure pat00393
잘못된 위치들에 대응한다.
Figure pat00394
로 라이트하라. 그러면 현재 가정들에서, 수학식 9는
Figure pat00395
를 리드하므로 만족된다. 이는 포인트-바이-포인트 알고리즘인 코에터 알고리즘이 보간에 사용되는 경우, 빠른 체이스 디코딩이 우(Wu)와 같은 소프트 디코딩의 위와 같은 디제너레이트 경우(degenerate case)에 기초할 수 있음을 즉시 보여준다. Y-차수가
Figure pat00396
로 제한되므로 이 경우의 리스트 크기는 정확히 1이 될 것이고, 분해 공정이 필요 없다.
구체적으로,
Figure pat00397
Figure pat00398
인 에러 위치들의 집합이라고 가정하고,
Figure pat00399
Figure pat00400
Figure pat00401
에 대해
Figure pat00402
에서
Figure pat00403
-가중된 차수를 최소화하는 넌-제로(non-zero) 다항식이라 하자. 여기서,
Figure pat00404
Figure pat00405
의 지시자 함수(indicator function)이다.
Figure pat00406
이면, 어떤 상수
Figure pat00407
에 대해서
Figure pat00408
인 것을 확인할 수 있다. 이는 체이스 반복들을 시작하기 전에 디코더가
Figure pat00409
가 에러 위치 다항식이 될 수 있는지 여부를 확인해야함을 의미한다.
Figure pat00410
가 잠재적 오류-위치 다항식으로 자격이 없으면, 상기 논의는
Figure pat00411
임을 보여준다. 따라서,
Figure pat00412
임을 가정하자.
Figure pat00413
에서 Y-차수는
Figure pat00414
에 의해 상계(upper bounded)되므로, 명제 6은 수학식 10이 되도록 일부 넌-제로 다항식
Figure pat00415
가 존재한다.
[수학식 10]
Figure pat00416
명제 7. 수학식 10에서 t(X)는
Figure pat00417
에서 정수이어야 하므로,
Figure pat00418
Figure pat00419
는 더이상의 계산들 없이
Figure pat00420
를 읽어낼 수 있다.
증명.
Figure pat00421
Figure pat00422
에 대해,
Figure pat00423
라 하자.
또한,
Figure pat00424
Figure pat00425
라 하자.
Figure pat00426
형태의 다항식이
Figure pat00427
에 포함된다는 것은 모든
Figure pat00428
에 대해
Figure pat00429
이고, 모든
Figure pat00430
에 대해
Figure pat00431
인 것과 필요충분조건이다.
이를 염두에 두고, 수학식 7과 수학식 8은
Figure pat00432
자체가 이미
Figure pat00433
에 포함된다는 것을 보여준다.
Figure pat00434
는 오로지 에러 위치들, 즉,
Figure pat00435
의 근들의 역들(inverses)만을 포함한다고 가정됨을 상기하라. 넌-제로 t(X)에 대해, t(X)가 상수가 아니면
Figure pat00436
Figure pat00437
-가중된 차수는
Figure pat00438
Figure pat00439
-가중된 차수보다 엄격히 크다.
Figure pat00440
는 가중된 차수를 최소화하므로, 이는 필요에 따라 t(X)가 넌-제로 상수이어야 함을 보여준다.
상기 논의는 도 4의 케이터 반복들을 정당화한다.
도 2의 유효성으로 돌아가서, 제안된 방법이 어떻게 정말로
Figure pat00441
를 생산하는지를 간략하게 설명한다. 첫째로, 이미 언급한 바와 같이 수정된 신드롬
Figure pat00442
와 정수 t인 입력을 가지고 모듈 N에 대한 BM 알고리즘의 출력은, N에 대한 그뢰브너 기저
Figure pat00443
}를 구하기 위해 사용될 수 있다. 여기서 다소 긴 증거를 생략한다. 이는 수정된 신드롬을 계산하면, M에 대한 BM 알고리즘은 필요한 그로브너 기저를 얻기위해 사용될 수 있음을 의미한다.
신드롬 S 와 정수 2t를 입력으로 가지는 BM 알고리즘을 "보통의(usual) BM 알고리즘"이라 지칭하자. 수정된 신드롬의 계산을 완전히 피하고, 대신 보통의 BM 알고리즘을 사용하기 위해서, 보통의 BM 알고리즘의 출력들을 N에 대한 BM 알고리즘의 출력들과 동등한 것으로 변환하는 방법을 적용하는 것이 가능하다. 이에 대해
Figure pat00444
가 보통의 BM 알고리즘의 출력 C 이면,
Figure pat00445
는 모듈 M에 포함됨을을 먼저 상기하라(see, e.g., pp. 25-26 of E. R. Berlekamp, "Nonbinary BCH codes," Institute of Statistics, Mimeo Series no. 502, Department of Statistics, University of North Carolina, Dec. 1966의 내용은 본 명세서에 그 전체가 참조로 인용된다.).
따라서,
Figure pat00446
이고, 여기서 정수 k와 다항식
Figure pat00447
에 대해, degree
Figure pat00448
의 유일한 대표인
Figure pat00449
.
명제 8.
Figure pat00450
에 대해, 다음을 유지한다.
[수학식 11]
Figure pat00451
따라서,
Figure pat00452
는 집합
Figure pat00453
에서 최소 차수를 가진다.
증명.
Figure pat00454
Figure pat00455
Figure pat00456
여기서 (a)에 대해, deg(f)가 짝수이면,
Figure pat00457
이고, 반면에 deg(f)가 홀수이면,
Figure pat00458
이다. 이는 수학식 11을 증명하고, 두번째 주장은 수학식 11의 즉각적인 결과이다.
입력 S(X)와 2t에 대한 BM 알고리즘의 출력
Figure pat00459
로부터,
Figure pat00460
을 취함으로써
Figure pat00461
의 최소 차수의 일부 원소를 즉시 획득할 수 있는 명제로부터 나온다. 최소 차수의 원소가 고유하지 않을 수 있음을 유의하고, 상기는 반드시
Figure pat00462
가 N에 대한 BM 알고리즘의 출력에 대응함을 의미하지 않는다. 그러나, 마지막 명제와 함께, N1의 모든 최소 차수 원소들의 집합을 설명하는 매시 논문(Massey's paper)의 이론3을 이용하여, 이전 섹션의 수정된 BM 알고리즘의 출력들이 필요한 그뢰브너 기저의 생산에 충분함을 확인할 수 있다. 자세한 것은 생략한다.
시스템 구현들
본 발명은 하드웨어, 소프트웨어, 펌웨어, 특수 목적 처리 또는 이들의 조합의 다양한 형태로 구현될 수 있음을 이해해야 한다. 일 실시 예에서, 본 발명은 application-specific integrated circuit(ASIC) 또는 field programmable gate array(FPGA)와 같은 하드웨어로 구현될 수 있다. 다른 실시 예에서, 본 발명은 컴퓨터 판독 가능한 프로그램 저장 장치 상에 유형적으로 구현된 애플리케이션 프로그램과 같은 소프트웨어로 구현될 수 있다. 상기 애플리케이션은 임의의 적절한 구조를 포함하는 기계로 업로드되고 실행될 수 있다.
도 6은 본 발명의 실시 예들에 따른 이진 BCH 코드들의 BM-기반 빠른 체이스 디코딩을 수행하기 위한 기계의 블록도이다. 도 6은 본 발명의 실시 예들에 따른 복잡도와 블록 암호 코드를 포함하는 AMD 오류 검출 코드들에서 필요한 필드 사이즈를 줄이기 위해 대수적 곡선을 사용하는 시스템의 블록도를 나타낸다. 도 6을 참조하면, 본 발명을 구현하기 위한 컴퓨터 시스템(61)은 CPU((central processing unit; 62), 메모리(63), 및 입/출력(input/output(I/O)) 인터페이스(64)를 포함할 수 있다. 컴퓨터 시스템(61)은 일반적으로 I/O 인터페이스(64)를 통해 디스플레이(65)와 마우스와 키보드 같은 다양한 입력 장치들(66)에 연결된다. 메모리(63)는 램(random access memory(RAM)), 롬(read only memory(ROM)), 디스크 드라이브(disk drive), 테이프 드라이브(tape drive) 등, 또는 이들의 조합들을 포함할 수 있다. 본 발명은 신호 소스(68)로부터 출력되는 신호를 처리하기 위해 메모리(63)에 저장되고 CPU(62)에 의해 실행되는 루틴(67)으로서 구현될 수 있다. 따라서, 컴퓨터 시스템은 본 발명의 루틴을 실행할 때 특수 목적의 컴퓨터 시스템이되는 범용 컴퓨터 시스템이다. 대안적으로, 전술한 바와 같이 본 발명은 신호 소스(68)로부터 출력되는 신호를 처리하기 위해 CPU(62)와 신호 통신하는 ASIC 또는 FPGA(67) 로서 구현될 수 있다.
컴퓨터 시스템(61)은 운영 체제 및 마이크로 명령 코드를 포함할 수 있다. 본 명세서에서 설명된 다양한 프로세스와 기능들은 운영 체제를 통해서 실행되는 마이크로 명령 코드의 일부 또는 애플리케이션 프로그램의 일부 (또는 이들의 조합) 가 될 수 있다. 추가적으로, 다양한 다른 주변 장치들은 추가적인 데이터 저장 장치와 프린팅 장치와 같은 컴퓨터 플랫폼에 연결될 수 있다.
첨부 도면들에 도시된 구성 시스템 요소들과 방법 단계들의 일부는 소프트웨어로 구현될 수 있기 때문에, 시스템 구성요소들 (또는 프로세스 단계들) 사이의 실제 연결들은 본 발명이 프로그램되는 방식에 따라 다를 수 있음이 추가로 이해되어야 한다. 여기에 제공된 본 발명의 개시가 주어지면, 당업자는 이들 및 유사한 구현 또는 본 발명의 구성들을 고려할 수 있을 것이다.
본 발명은 실시 예들을 참조하여 상세히 설명하였지만, 당업자는 다양한 변형과 대체가 첨부된 청구범위에 기재된 본 발명의 사상 및 범위를 벗어나지 않고 이루어질 수 있다는 것을 이해할 것이다.
11; 신드롬 계산
12; BM 알고리즘
13; 빠른 체이스 사전-계산
14; 빠른 체이스 다항식 업데이트
15; 오류 위치 구성
16; 치엔 검색

Claims (8)

  1. 이진(binary) BCH(Bose-Chaudhuri-Hocquenghem) 코드들의 빠른 체이스 디코딩(fast chase decoding)에서 빠른 다항식 업데이트를 위한 방법을 수행하기 위해 집적 회로에 의해 실행 가능한 명령 프로그램을 유형적으로(tangibly) 인코딩하는 ASIC(application-specific integrated circuit)에 있어서, 상기 방법은,
    통신 채널로부터 상기 ASIC에 의해 수신된 BCH 코드 워드(codeword)의 경판정(hard-decision(HD)) 디코딩이 실패할 때, 수정된 키 방정식(key equation)의 솔루션 모듈(solution module)에 대한 그뢰브너 기저(Groebner basis)를 찾기 위해 신드롬 기반(syndrome-based) 경판정 알고리즘의 출력들을 사용하는 단계;
    상기 ASIC은 특정 약한-비트(weak-bit) 위치들의 역들(inverses)에서 상기 그뢰브너 기저로부터 획득된 다항식들을 평가하는 단계; 및
    상기 ASIC은 플립된(flipped) 약한-비트 위치들의 집합
    Figure pat00463
    에 대한 그뢰브너 기저를
    Figure pat00464
    에 대한 그뢰브너 기저로 변환하는 단계를 포함하고,
    Figure pat00465
    은 다음(next) 약한-비트 위치이고,
    r은 오류들의 수와 BCH 코드 워드의 경판정 보정 반경(correction radius)의 차이인 ASIC.
  2. 제1항에 있어서,
    Figure pat00466
    에 대한 상기 그뢰브너 기저의 다항식은 최대 차수가 r인 ASIC.
  3. 제1항에 있어서,
    상기 신드롬 기반 경판정 알고리즘은 벨르캄프-매시(Berlekamp-Massey(BM)) 알고리즘과 피츠패트릭(Fitzpatrick) 알고리즘을 포함하는 그룹에서 선택되는 ASIC.
  4. 제1항에 있어서,
    상기 수정된 키 방정식의 솔루션 모듈에 대한 그뢰브너 기저를 찾기 위해 신드롬 기반 경판정 알고리즘의 출력들을 사용하는 단계는,
    다항식 h 1 = (h 10 (X), h 11 (X))를 각각 C의 홀수와 짝수 부분으로 설정하고 다항식 h 2 = (h 20 (X), h 21 (X))를 각각 B'의 홀수와 짝수 부분의 시프트된 버전으로 설정하는 단계;
    Figure pat00467
    Figure pat00468
    가 동일한 선도 단항식(leading monomia)을 가지지 않는다면, 하나의 i
    Figure pat00469
    {1,2}에 대해
    Figure pat00470
    로 대체하는 단계; 및
    i
    Figure pat00471
    {1,2}에 대해
    Figure pat00472
    로 설정하는 단계를 포함하고,
    다항식들 B'(X)와 C(X)는 BCH 코드 워드의 신드롬들에 대해 수행된 BM 알고리즘으로부터 출력되고, C(X)는
    Figure pat00473
    Figure pat00474
    의 원소(element)가 되도록 하는 최소 차수의 다항식이고,
    Figure pat00475
    , t는 BCH 코드 워드의 보정 반경이고, Seven(X)과 Sodd(X)는 각각 신드롬 다항식의 짝수와 홀수 부분이며, 다항식 B'(X)는 가상(virtual) BM 알고리즘에서 마지막 길이를 변경하기 전에 C(X)를 추적하고, 상기 가상 BM 알고리즘은 N1의 차수를 최소화하고,
    Figure pat00476
    , 입력 신드롬
    Figure pat00477
    을 가지고, 수정된 키 방정식은
    Figure pat00478
    이고,
    Figure pat00479
    Figure pat00480
    Figure pat00481
    의 선도 단항식이 취소되도록 선택되고,
    Figure pat00482
    는 수정된 키 방정식의 솔루션 모듈에 대한 그뢰브너 기저인 ASIC.
  5. 제4항에 있어서,
    상기 특정 약한-비트 위치들의 역들에서 상기 그뢰브너 기저로부터 획득된 다항식을 평가하는 단계는, 상기 BCH 코드 워드의 특정 약한-비트 위치들의 역들
    Figure pat00483
    을 계산하는 단계와, 다항식
    Figure pat00484
    을 평가하는 단계를 포함하고,
    가중 w := 2 deg (h 21 ) - t -(1-
    Figure pat00485
    )을 계산하는 단계를 더 포함하고,
    Figure pat00486
    =
    Figure pat00487
    mod 2와
    Figure pat00488
    는 상기 BCH 코드 워드의 총 오류들의 수인 ASIC.
  6. 제1항에 있어서,
    모듈
    Figure pat00489
    에 대한 그뢰브너 기저를 모듈
    Figure pat00490
    에 대한 그뢰브너 기저로 변환하는 단계는,
    그뢰브너 기저
    Figure pat00491
    g 1 =(g 10 (X), g 11 (X)) = (1,0) g 2 = (g 20 (X), g 21 (X)) = (0,1)로 초기화하는 단계;
    j=1,2 에 대해 불합도(discrepancy)
    Figure pat00492
    를 계산하는 단계;
    Figure pat00493
    로 설정하는 단계;
    Figure pat00494
    이면
    Figure pat00495
    를 출력하고 다음 오류 위치
    Figure pat00496
    를 처리하고, 그렇지 않으면
    Figure pat00497
    Figure pat00498
    가 되도록 설정하는 단계; 및
    Figure pat00499
    에 대해
    Figure pat00500
    이면,
    Figure pat00501
    로 업데이트하고, 그렇지 않으면,
    Figure pat00502
    로 업데이트하는 단계를 포함하는 ASIC.
  7. 제6항에 있어서,
    불합도들 Δ j 중에서 어느 하나가 0 인지 여부를 판단하고, 불합도 Δ j 가 0 이라고 판단되면, 모듈
    Figure pat00503
    에 대한 그뢰브너 기저의 계산을 멈추는 단계를 더 포함하는 ASIC.
  8. 제1항에 있어서,
    수정된 키 방정식의 솔루션에 대한 그뢰브너 기저
    Figure pat00504
    Figure pat00505
    와,
    Figure pat00506
    로부터
    Figure pat00507
    에 대한 그뢰브너 기저
    Figure pat00508
    로부터 최종 오류-위치 다항식(error-locator plynomial)
    Figure pat00509
    을 계산하는 단계를 더 포함하고,
    a는 곱셈 상수(multiplicative constant)인 ASIC.
KR1020170072228A 2017-01-19 2017-06-09 리스트 디코딩 생성을 통한 이진 bch 코드들의 bm-기반 빠른 체이스 디코딩에서 빠른 다항식 업데이트를 위한 방법을 수행하기 위한 asic KR102352158B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/409,724 2017-01-19
US15/409,724 US10389385B2 (en) 2017-01-19 2017-01-19 BM-based fast chase decoding of binary BCH codes through degenerate list decoding

Publications (2)

Publication Number Publication Date
KR20180085651A true KR20180085651A (ko) 2018-07-27
KR102352158B1 KR102352158B1 (ko) 2022-01-17

Family

ID=62841679

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170072228A KR102352158B1 (ko) 2017-01-19 2017-06-09 리스트 디코딩 생성을 통한 이진 bch 코드들의 bm-기반 빠른 체이스 디코딩에서 빠른 다항식 업데이트를 위한 방법을 수행하기 위한 asic

Country Status (2)

Country Link
US (1) US10389385B2 (ko)
KR (1) KR102352158B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230092093A (ko) * 2021-12-16 2023-06-26 동국대학교 산학협력단 리스트 디코딩 알고리즘에서의 다항식 행렬에 대한 효율적 감소 연산을 수행하는 전자 장치 및 그 동작 방법

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10826538B1 (en) 2019-06-12 2020-11-03 International Business Machines Corporation Efficient error correction of codewords encoded by binary symmetry-invariant product codes
US11012099B1 (en) 2019-10-29 2021-05-18 International Business Machines Corporation Half-size data array for encoding binary symmetry-invariant product codes
CN111030709A (zh) * 2019-12-31 2020-04-17 中科院计算技术研究所南京移动通信与计算创新研究院 基于bch译码器的译码方法、bch译码器及应用其的电路
US11063612B1 (en) 2020-03-02 2021-07-13 International Business Machines Corporation Parallelizing encoding of binary symmetry-invariant product codes
US11967973B2 (en) 2021-05-06 2024-04-23 Samsung Display Co., Ltd. Low overhead transition encoding codes
US11838032B1 (en) * 2022-10-18 2023-12-05 Western Digital Technologies, Inc. Advanced ultra low power error correcting code encoders and decoders

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160121442A (ko) * 2015-04-10 2016-10-19 삼성전자주식회사 연판정 디코딩 방법 및 시스템

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7793195B1 (en) 2006-05-11 2010-09-07 Link—A—Media Devices Corporation Incremental generation of polynomials for decoding reed-solomon codes
US8245117B1 (en) 2008-12-23 2012-08-14 Link—A—Media Devices Corporation Low complexity chien search in chase-type decoding of reed-solomon codes
US8850298B2 (en) 2012-06-27 2014-09-30 Avago Technologies General Ip (Singapore) Pte. Ltd. Combined Koetter-Vardy and Chase decoding of cyclic codes
US8674860B2 (en) 2012-07-12 2014-03-18 Lsi Corporation Combined wu and chase decoding of cyclic codes

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160121442A (ko) * 2015-04-10 2016-10-19 삼성전자주식회사 연판정 디코딩 방법 및 시스템

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230092093A (ko) * 2021-12-16 2023-06-26 동국대학교 산학협력단 리스트 디코딩 알고리즘에서의 다항식 행렬에 대한 효율적 감소 연산을 수행하는 전자 장치 및 그 동작 방법

Also Published As

Publication number Publication date
KR102352158B1 (ko) 2022-01-17
US10389385B2 (en) 2019-08-20
US20180205398A1 (en) 2018-07-19

Similar Documents

Publication Publication Date Title
KR102352158B1 (ko) 리스트 디코딩 생성을 통한 이진 bch 코드들의 bm-기반 빠른 체이스 디코딩에서 빠른 다항식 업데이트를 위한 방법을 수행하기 위한 asic
US9998148B2 (en) Techniques for low complexity turbo product code decoding
US10243589B2 (en) Multi-bit error correction method and apparatus based on a BCH code and memory system
US8694872B2 (en) Extended bidirectional hamming code for double-error correction and triple-error detection
CN107800439B (zh) 用于里德索罗门码的低延迟解码器
Okano et al. A construction method of high-speed decoders using ROM's for Bose–Chaudhuri–Hocquenghem and Reed–Solomon codes
JPH07202715A (ja) 時間定義域代数エンコーダ/デコーダ
US11101925B2 (en) Decomposable forward error correction
EP1102406A2 (en) Apparatus and method for decoding digital data
Morii et al. Error-trapping decoding for cyclic codes over symbol-pair read channels
US7694207B1 (en) Method of decoding signals having binary BCH codes
KR102532623B1 (ko) Raid에 맞춤화된 bch 인코딩 및 디코딩 방법, 및 그 장치
KR101636406B1 (ko) 저지연 신드롬 계산을 위한 bch 디코더의 전처리 장치 및 방법
Ilani Berlekamp-massey algorithm: Euclid in disguise
Zhang et al. Ultra-compressed three-error-correcting BCH decoder
US20130111304A1 (en) Cyclic code decoding method and cyclic code decoder
US10404407B2 (en) Groebner-bases approach to fast chase decoding of generalized Reed-Solomon codes
Liu et al. Decoding of (Interleaved) Generalized Goppa Codes
US10623018B2 (en) Method of arrangement of an algorithm in cyclic redundancy check
Prashanthi et al. An advanced low complexity double error correction of an BCH decoder
CN117632577B (zh) 一种基于bch编码的快速ecc纠错电路
Elumalai et al. Encoder And Decoder For (15113) and (63394) Binary BCH Code With Multiple Error Correction
Nabipour et al. Error Detection Mechanism Based on Bch Decoder and Root Finding of Polynomial Over Finite Fields
Sheelam et al. A novel and efficient design of golay encoder for ultra deep submicron technologies
Patel et al. Quantum Constacyclic BCH Codes over Qudits: A Spectral-Domain Approach

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant