KR20180085651A - 리스트 디코딩 생성을 통한 이진 bch 코드들의 bm-기반 빠른 체이스 디코딩에서 빠른 다항식 업데이트를 위한 방법을 수행하기 위한 asic - Google Patents
리스트 디코딩 생성을 통한 이진 bch 코드들의 bm-기반 빠른 체이스 디코딩에서 빠른 다항식 업데이트를 위한 방법을 수행하기 위한 asic Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/1545—Determination of error locations, e.g. Chien search or other methods or arrangements for the determination of the roots of the error locator polynomial
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/1525—Determination and particular use of error location polynomials
- H03M13/153—Determination and particular use of error location polynomials using the Berlekamp-Massey algorithm
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3746—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
- H03M13/3753—Decoding 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/45—Soft decoding, i.e. using symbol reliability information
- H03M13/451—Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD]
- H03M13/453—Soft 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction 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은 플립된 약한-비트 위치들의 집합에 대한 그뢰브너 기저를 에 대한 그뢰브너 기저로 변환하는 단계를 포함하고, 은 다음 약한-비트 위치이고, r은 오류들의 수와 BCH 코드 워드의 경판정 보정 반경의 차이이다.
Description
본 발명의 개념에 따른 실시 예는 오류 정정 코드들(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에 대하여, 길이가 이고 설계된(designed) 거리가 인 원시 이진 (primitive binary) BCH 코드는 길이가 이고, 근들(roots)이 와 이들의 켤레들(conjugates)인 순환 이진 코드(cyclic binary code)로서 정의되고, 여기서 α는 의 몇가지 원시 요소(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) 의 생성 행렬(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 코드들의 경우, 특정 패리티-검사 행렬에 해당하는 신드롬으로 작업하는 것이 유용하다. 에 대해, 라 하자. 필드(field) K와 벡터 에 대해, 벡터 f는 다항식 으로 식별된다. y와 연관된 신드롬 다항식은 이다. 신드롬들의 관점에서, 이진 BCH 코드들을 복호화하는 주요 계산은 다항식들 , 을 결정하는 것이다. 이는 키 방정식(key equation)으로 알려진 다음 방정식을 만족한다.
ω = Sσ mod X 2t
여기서, S는 신드롬 다항식이고, X는 다항식의 자유 변수(free variable)이고, 는 로 정의되는 오류 평가 다항식(error evaluator polynomial)이고, 는 로 정의되는 오류 평가 다항식이고, a는 BCH 코드의 근들을 정의하는데 사용되는 의 원시 요소이고, 는 경판정 오류들(hard-decision errors)의 실제 수이고, 는 오류 위치들 즉, 오류들의 위치를 나타내는 필드 요소들(field elements)이고, t는 BCH 코드의 설계된 디코딩 반경이다.
벨르캄프-매시(Berlekamp-Massey(BM)) 알고리즘은 BCH 코드들을 디코딩하기 위한 알고리즘으로써, k=L,..., 2t-1, 에 대한 S(X)C(X)에서 에 대한 계수가 0이 되는 추정된 오류 위치 다항식(error locator polynomial(ELP)) 을 구하기 위해 사용된다. L은 상기 알고리즘에 의해 발견된 오류들의 수이고, N=d-1=2t는 신드롬들의 총 수이고, 는 모든 i에 대한 신드롬 다항식 S(X)에서 의 계수이고, 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가 계산된다.
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)
이는 재계산된 불합도가 다음과 같이 바뀐다.: 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)의 서브그룹을 가지는 유한체의 원시 요소라 하자. 치엔 검색은 의 생성 순서로 필드에서 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 벡터를 초래하고, 예컨대 임계값들 을 가지는 두번의 추가적인 리드들은 비트들을 강한 비트와 약한 비트로 나눌 때 사용된다.
체이스(chase) 디코딩은 BCH 코드와 같은 HD 디코딩 블락만을 갖는 코드에 대한 간단한 SD 디코딩 알고리즘이다. 체이스 디코딩에서, HD 디코딩이 실패하면, 소프트 정보는 수신된 비트들을 강한 비트 예컨대, 신뢰할 수 있는 비트와 약한 비트 예컨대, 신뢰할 수 없는 비트로 나누는데 사용된다. 가능한 모든 플립핑 가능성들(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)의 수는 이며, 여기서 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) 약한-비트 위치들의 집합에 대한 그뢰브너 기저를 에 대한 그뢰브너 기저로 변환하는 단계를 포함하고, 은 다음(next) 약한-비트 위치이고, r은 오류들의 수와 BCH 코드 워드의 경판정 보정 반경(correction radius)의 차이이다.
본 발명의 실시 예에 따르면, 이진 BCH 코드들의 BM-기반 빠른 체이스 디코딩을 수행하기 위한 제공함으로써 불필요한 치엔 검색들을 회피하는 새로운 정지 기준을 갖는 새로운 다항식 업데이트 알고리즘을 제공할 수 있는 효과가 있다.
도 1은 본 발명의 실시 예에 따른 BM-기반 체이스 디코딩 알고리즘의 개략적인 블록도이다.
도 2는 본 발명의 실시 예에 따른 빠른 체이스 사전-계산을 수행하기 위한 플로우 차트이다.
도 3은 본 발명의 실시 예에 따른 5-비트 시퀀스에 대한 우(Wu)-타입 트리를 예시적으로 나타낸다.
도 4는 본 발명의 실시 예에 따른 빠른 체이스 디코딩을 위해 특화된 코에터 알고리즘의 흐름도이다.
도 5는 본 발명의 실시 예에 따른 표준 BM 알고리즘의 출력을 그뢰브너 기초로 일반 모듈 N으로 변환하는 일반적인 방법을 나타낸다.
도 6은 본 발명의 실시 예들에 따른 이진 BCH 코드들의 BM-기반 빠른 체이스 디코딩을 수행하기 위한 기계의 블록도이다.
도 7은 본 발명의 실시 예에 따른 와 를 얻기 위한 또 다른 방법을 나타내는 흐름도이다.
도 2는 본 발명의 실시 예에 따른 빠른 체이스 사전-계산을 수행하기 위한 플로우 차트이다.
도 3은 본 발명의 실시 예에 따른 5-비트 시퀀스에 대한 우(Wu)-타입 트리를 예시적으로 나타낸다.
도 4는 본 발명의 실시 예에 따른 빠른 체이스 디코딩을 위해 특화된 코에터 알고리즘의 흐름도이다.
도 5는 본 발명의 실시 예에 따른 표준 BM 알고리즘의 출력을 그뢰브너 기초로 일반 모듈 N으로 변환하는 일반적인 방법을 나타낸다.
도 6은 본 발명의 실시 예들에 따른 이진 BCH 코드들의 BM-기반 빠른 체이스 디코딩을 수행하기 위한 기계의 블록도이다.
도 7은 본 발명의 실시 예에 따른 와 를 얻기 위한 또 다른 방법을 나타내는 흐름도이다.
본 발명의 실시 예들은 다양한 수정들 및 대안적인 형태들에 영향을 받기 쉽지만, 그 특정 실시 예들은 도면들에서 예로서 도시되고 여기에서 상세히 설명될 것이다. 그러나, 본 발명을 개시된 특정 형태로 제한하고자 하는 의도는 없지만 반대로, 본 발명은 본 발명의 사상 및 범위 내에 있는 모든 변형, 등가물 및 대안을 포함하는 것으로 이해되어야 한다.
본 명세서에 기술된 바와 같은 개시의 예시적인 실시 예들은 일반적으로 차수(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).
출력은 다음과 같다.
(c) 마지막 길이 변화 이전에 C (X)를 추적하는 다항식 B(X);
(d) 가상(virtual) BM 알고리즘에서 마지막 길이 변화 이전에 C (X)를 추적하는 다항식 , 여기서 가상 BM 알고리즘은 N 1 에서 차수를 최소화하고, , 입력 신드롬 , 여기서, 과 각각은 S(X)의 짝수와 홀수 부분들 각각이고, 일반적으로 아래와 같이 정의된다.
다음과 같은 초기화 작업이 수행된다.
본 발명의 실시 예에 따른 BM 알고리즘은 다음과 같은 반복들을 수행한다.
길이 변화의 경우에, 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에 대해, 상에서 단항 순서 를 다음과 같이 정의할 수 있다. iff , iff , and iff . 또한, 짝수 정수 와 다항식 에 대해, f(X)의 홀수 부분 는 인 반면, f(X)의 짝수 부분 는 이다. 위의 정의에서, 임을 주목하라.
도 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}에 대해 를 라이트하고, come c와 l에 대해 로 대체한다. 여기서 와 는 h i 의 선도 단항식이 취소되도록 선택된다. 생성된 쌍은 a <-1 단항 순서(monomial ordering)에 대해 수정된 키 방정식의 해를 구하는 그뢰브너 기저(Groebner basis)이다. 그 다음, 단계 23에서, i∈ {1,2}에 대해, 라고 하자. 이는 짝수와 홀수 부분들을 결합한다. 계산은 포함되어 있지 않다. 다항식들 과 은 사전-계산 블록(13)의 출력들이다.
다음, 약한 비트들 좌표들(weak bits coordinates)을 라 하자. 단계 24에서, 사전-계산 블록(13)은 뿐만 아니라 를 계산하여 출력하고, w := 2 deg (h 21 ) - t -(1- )로 정의되는 가중 w 를 계산하여 출력한다. 여기서, 는 총 오류들의 개수이고, = 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 := 로 정의되는 유한체라고 하자. 그 다음 오류 위치 다항식 이 다음과 같이 주어지도록 두 다항식들 f 1 (X), f 2 (X) K[X]을 검색한다.
는 플립될 잠재적 오류 위치들(potential error locations to be flipped)의 집합이라고 하고, 다음 보간 작업을 고려하라. 다음의 2가지 조건들을 만족하는 많아야 하나의 Y-차수의 모든 이변수(bivariate) 다항식들 중에서
max( deg(q 0 ), deg(q 1 ) + w),
여기서, w는 사전-계산 블록(13)의 출력이다. 를 위의 두 조건들을 만족하는 많아야 하나의 Y-차수의 이변수 다항식들의 모듈이라 하고, Q(X,Y)를 가중된 차수를 최소화하는 L의 다항식으로 보자.
실시 예에 따른 체이스 디코딩의 기본 아이디어는 다음과 같다.
1. 정확성: 모든 ? j 가 실제 오류 위치들이고, r ≥ -t 즉, 체이스 시행에 필요한만큼 큰 정확한 플립핑 패턴이 있는 경우, 원하는 다항식들 과 가 일부 0 아닌 상수 c에 대해 Q(X,Y) 즉, 에 나타난다.
2. 그뢰브너 기저: Q(X,Y)를 최소화 하는 것은 L에 대한 그뢰브너 기저(groebner basis(GB))에서 순서와 같은 적절한 단항 순서로 나타난다. 본 발명의 실시 예는 두개의 이변수 다항식들을 가지고 GB들을 사용한다. 적절한 단항 순서는 사전-계산들과 관련하여 앞서 정의되었다.
3. 빠른 업데이트: 에 대한 GB가 이미 존재하는 경우, 추가적인 플립핑 즉, 에 대한 GB를 획득하는 것은 쉽다. 빠른 체이스 업데이트는 에 대한 GB에서 에 대한 GB로 이동하는 알고리즘이 필요하다. 실시 예들에 따라, 그러한 알고리즘 중 하나는 코에터(Koetter) 알고리즘이다.
코에터 알고리즘은 체이스 디코딩보다 더 일반적인 보간법을 해결한다. 도 4는 단항 < w 순서로 빠른 체이스 디코딩에 특화된 본 발명의 실시 예에 따른 코에터 알고리즘의 플로우차트이다.
본 발명의 실시 예에 따른 코에터 알고리즘에 대한 입력은 에 대해 GB 이고, 제1좌표에서의 g 1 의 선도 단항식(leading monomial(LM))과 제2좌표에서의 g 2 의 LM을 가지고, 는 다음 에러 위치이다. 출력은 에 대해 제1좌표에서의 의 LM과 제2좌표에서의 의 LM을 가지는 GB 이다.
도면을 참조하면, 실시 예에 따른 알고리즘은 단계 41에서 j=1,2에 대해 불합도를 계산함으로써 시작한다. 불합도는 아래와 같다.
단계 42에서 일부 j에 대해 Δ j = 0이면, 오류 위치 구성(15)과 치엔 검색(16)으로 빠져 나간다. 이는 일 실시 예에 따른 정지 기준이며 이하에서 설명된다.
일 실시 예에 따른 알고리즘은 단계 43에서 로 설정함으로써 계속된다. 단계 44에서 이면, 단계 45에서 , 를 출력하고, 다음 오류 위치 를 처리한다. 그렇지 않으면, 단계 46에서 가 되도록 j* J라 하자. 여기서 LM과 최소값은 단항 순서 와 관련된다. 여기서 w는 미리 계산된 가중이다. 그 다음 단계 47에서 다항식들이 에 대해 업데이트된다.
그 후 상기 알고리즘은 단계 41로 돌아 간다.
빠른 체이스 디코딩을 위한 실시 예에 따른 코에터 알고리즘은 도 3에 도시된 우(Wu)의 트리의 가장자리에서 호출된다. 특히, 상기 알고리즘이 처음 호출될 때, , 이다. 그 다음 하나의 부가적인 비트가 상기 플립핑 패턴의 어느 하나가 될 때 상기 이전 출력은 다음 입력이 된다. 예컨대, 01000→01010→01110→11110→11111의 5개의 약한 비트들이 있다고 가정한 도 3에 도시된 트리에서 필립핑 패턴(31)의 다음 순서를 고려하라.
그 다음 제1 플립핑 패턴(하나의 플립된 비트 01000)의 초기 GB는 , 이고, 는 두번째 약한 비트(01000)를 가리키는 필드 원소이고, 출력 GB (g1 +, g2 +) 는 입력 GB (g1, g2)가 되고, 이 때 네번째 약한 비트 (01010)를 가리키는 를 가진다. 실시 예에 따른 코에터 알고리즘은 두 쌍의 다항식들 과 을 출력한다. 실시 예에 다른 빠른 체이스 디코더는 두개의 출력들 중에서 더 작은 선도 단항식을 가지는 어느 하나를 선택한다.
약한 비트들 내의 r 비트들까지 플립된 경우, 근(root)부터 잎(leaf)까지 각 경로의 깊이는 최대 r이다. 따라서, 본 발명의 실시 예에 따른 코에터 알고리즘을 r번 적용한 후, 네개의 관련 다항식들의 차수의 합은 최대 2r-1이다.
또는 중에서 어느 하나는 제로 다항식일 수 있음을 유의하라. 이러한 경우 deg(0)= -∞이기 때문에 상기 공식은 의미가 없다. 그러나, 이러한 경우, 좌측 합이 0 아닌 다항식들을 초과할 때만 상기 공식이 유지된다는 것을 확인할 수 있다.
빠른 체이스 디코딩에 대한 실시 예에 따른 코에터 알고리즘에 대한 정지 기준은 다음과 같다. 실시 예에 따른 코에터 알고리즘의 출력으로부터 에러 위치 다항식이 구성될 수 있도록, 는 정확한 플립핑 위치들이고, 라고 가정하자. 그러나 σ(X)를 재구성하고 치엔 검색을 수행하기에 비싸다. 그러나, 약한 비트들 내에 한 번 더 잘못된 위치 가 존재한다고 가정하자. 그 다음, 실시 예에 따라 인접한 에서 까지의 코에터 반복에서 불합도들 중 하나는 0이 될 것이다. 즉,어떤 j에 대하여 . 따라서, 들 중에서 어느 하나가 0인지 여부를 체크하는 것은 정지 기준의 역할을 할 수 있다. 그러나, 정확한 오류-위치 다항식이 없다고 하더라도 일부 는 0이 될 수 있다. 즉, 가 거짓 양성(false positive)이다. 거짓 양성을 처리하는 비용이 증가된 복잡성이다. 그러나, 상기 거짓 양성 비율이 1/100, 또는 심지어 1/10 정도라 하더라도 복잡성의 전반적인 증가는 무시할 수 있고, 몬테 카를로(monte carlo) 시뮬레이션은 이러한 상황에서 신뢰 추정치를 얻기 위해 사용될 수 있다. 실시 예에 따른 정지 기준 비용은 ε-t 이 오로지 r일 때만 반경 r+1의 구에 대한 불합도 계산의 반복의 절반을 수행하는 것을 포함할 수 있다. 이는 무차별(brute force) 치엔 검색에 대한 전반적인 복잡도를 감소시킨다. ε-t=r 일 때, r+l 오류들은 약한 비트들에 필요하고, 이는 무차별 치엔 검색에 비해 FER을 다소 저하시킨다.
빠른 체이스 다항식 업데이트들을 수행하고, 정지 기준을 만족한 후, 알고리즘은 오류 위치 다항식(error locator polynomial(ELP))을 다음과 같이 구성한다. 첫째, 를 = (g + j0 (X), g + j1 (X))가 실시 예에 따른 코에터 알고리즘의 출력이 되도록 하고, 에 따라 정렬된 최소 선도 단항식을 가지도록 하자. 그 다음 ELP 가 에서 중복도 상수까지 재구성될 수 있다. 여기서, 는 다음과 같이 정의된다. 는 모듈 N에 대한 그뢰브너 기저라 하자. 여기서, 는 제1좌표에서 그것의 선도 단항식을 가지고, 는 제2좌표에서 그것의 선도 단항식을 가진다. 그 다음 i=1,2에 대해 라 정의한다.
본 발명의 또 다른 실시 예에 따르면, 표준 BM 알고리즘의 출력을 순서 와 관련한 일반 모듈 N의 그레브너(Groebner) 기저로 변환하는 일반적인 방법은 도 5의 플로우 차트에 따라 다음과 같다. 일 실시 예에 따라, 일반 모듈 N은 로 정의된다. 여기서, K는 일부 필드이고, m∈N 은 어떤 정수이고, 은 0이 아닌 정수들이고 g(X) ∈ K[X]는 어떤 다항식이고, 이다. 이제 도면을 참조하면, 단계 51에서, 입력 m, g을 갖는 BM 알고리즘의 출력들 C, B, δ로부터 다음의 2 쌍의 다항들식이 형성된다 :
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로서 출력한다. 여기서 이고, K * 는 0이 없는 K의 중복도 서브그룹이고, l 은 b 1의 선도 단항식이 취소되도록 선택된다.
(3) 단계 56에서 선도 단항식들이 동일한 단위 벡터를 포함하고 b 2의 선도 단항식이 b 1의 선도 단항식보다 엄격하게 큰 경우, 단계 57에서 {b 1, b 2 - cX l b 1}를 GB로서 출력한다. 여기서 이고 l 는 b 2 의 선도 단항식이 취소되도록 선택된다. 이러한 경우는 모든 가능성을 포함한다.
(b) 대안으로, 피츠패트릭(fitzpatrick) 알고리즘을 사용한다..
(c) 대안으로, 유클리드(euclidean) 알고리즘을 사용한다.
수정된 신드롬의 계산은 를 찾는 일반적인 질문과 관련이 있다. 여기서 f, g∈K [X]는 일부 필드 K에 대한 다항식들이고 k는 양의 정수이다. 다항식 에 대해, X i 의 계수 를 라이트한다. 에 대해, 다음의 두 조건을 만족하는 다항식 ti -1(X)가 있다고 가장하자.: (1) , (2) . 를 정의하라. 그러면, 는 i 대신에 i + 1로 조건 (1), (2)를 만족한다. Δ를 계산할 때 [ti -1 (1 + Xg)]i를 구하려면 곱해진 다항식들 중에서 어느 하나의 계수를 계산해야 한다. 또한, 이기 때문에, 이다. 이는 도 7의 플로우 차트를 참조하여 를 계산하기 위한 실시 예에 따른 다음의 알고리즘을 유도한다.
실시 예에 따른 알고리즘은, 출력 t에서 Xi 의 계수가 i번째 반복 이후 최종 형태이기 때문에 0 지연을 가지며, 처리 속도를 높이기 위해 단계 2(a), 2(b)의 그뢰브너 기저 알고리즘으로 파이프라인될 수 있다.
이론적 배경과 유효성 증명
정의. -모듈, L을 다음과 같이 정의하라. 아벨군(abelian group)으로써 이지만, 스칼라 곱셈 은 로 정의되고, 는 -모듈들의 동형(isomorphism)이 됨을 주목하라.
를 수정된 키 방정식의 솔루션 모듈로 정의했던 것을 상기하라. 이진의 경우에 상기 표준 키 방정식의 솔루션 모듈인 또한 정의하자. 두개의 솔루션 모듈들은 다음과 같은 명제를 통해 관련된다.
증명. 첫번째 주장은 두번째 주장과 동일하지만, 직접 검증할 수 있다. 첫째, 은 분명히 L의 아벨 서브 군(abelian subgroup)이므로 모든 과 모든 , 에 대해서 검증해야한다. 그러나,
[수학식 1]
수학식 1은 다음의 방정식 쌍과 같다.
[수학식 2]
[수학식 3]
그래서, iff 수학식 2, 수학식 3 이 참임을 보였다. 주장을 증명하기 위해, 우리는 모든 에 대해 (i)과 (ii)를 보일 것이다. (i) 수학식 3은 수학식 2를 따르므로 iff 수학식 2, (ii) 수학식 2는 와 등가이므로 iff . (ii)부터 시작하자. 모든 u에 대해 수학식 2와 수학식 4가 등가임을 관찰하자.
[수학식 4]
즉,
이는 수학식 5와 등가이다.
[수학식 5]
여기서, (*)는 수학식 5를 따르고, 다음과 등가이다.
이는 필요에 따라 수학식 3과 같다.
다음의 명제는 유용할 것이다. 간단한 증명은 생략한다.
명제 2. K를 필드라 하자.
1. 와, 에 대한 임의의 단항식 순서에 대해, 는 다음의 성질을 가지는 서브모듈이라고 하자. 모든 에 대해 가 i번째 단위 벡터를 포함하도록 하는 가 있다. 그러면, P는 모든 i에 대해 i번째 단위 벡터를 포함하는 를 가지는 그로브너 기저 를 가진다.
2. 임의의 와 임의의 에 대해 서브모듈 은 이론의 파트 1의 조건을 만족하므로(분명히 ) (1,0)를 포함하는 과 (0,1)을 포함하는 를 가지는 2-원소(element) 그로브너 기저 를 가진다.
명제의 파트 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의 작은 수정이고, 그 내용은 그 전체가 본 명세서에 참고로 인용된다.
정의.
라 하자.
다음의 명제는 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.
즉,
[수학식 6]
따라서,
[수학식 7]
또한, 명제 4에 의해,
[수학식 8]
아래의 보간 이론은 수학식 7이 과 를 찾기 위해 어떻게 사용될 수 있는지를 나타낸다. 이 이론을 시작하기 전에 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를 필드라 하자. 일부 에 대해 (여기서, 모든 i와 j에 대해 )형태의 다항식은 (Y,Z)-동일 차수(homogeneous degree) 의 (Y,Z)-동차 다항식(homogeneous polynomial)이라고 불린다. K[X,Y,Z]에서 다항식들의 K[X]-서브-모듈에 대해 를 라이트하고, 이는 (Y,Z)-동일 차수 p와 (Y,Z)-동질이다. 로 설정하자.
2. 에 대해서, 라 하자. 또한, 는 의 Y-역 버전 즉, 라 하자. 최대 의 Y-차수의 모든 다항식들로 구성된 K[X,Y]의 K[X]-서브모듈에 대해 를 라이트하면, 는 K[X]-모듈들의 동형임을 증명할 수 있다.
위의 정의에 따라, 보간 이론을 설명할 수 있다. 속편에서 는 의 중복도를 나타내고, K는 어떤 필드이고, 포인트에서 즉, 에 나타나는 단항식의 최소 총 차수에 대해서 이다. 또한, 에 대해서, 는 f의 w-가중된 차수, f에 나타나는 모든 단항식들 에 대한 최대 를 나타낸다.
다음의 이론은 트리포노프(Trifonov and Lee)의 결과로부터 추론될 수 있다.
이론 1. (보간 이론)
그런 다음
if
정의. 중복도들(multiplicities)의 벡터 에 대해, 는 m으로 지정된 중복도들을 갖는 모든 다항식들의 이상(ideal)이라 하자. 또한, 에 대해 은 다음과 같이 정의된 의 -서브모듈이라 하자.
다음 명제에 대한 증명은 간단하다.
디코딩을 위한 성공 기준으로 진행하자. 그 후 빠른 체이스 디코딩의 유효성은 특별한 경우로서 다음이 있음을 보여준다. 다음 명제는 보간 이론(이론 1)에서 쉽게 다음과 같다.
명제 6. 는 잘못된 좌표들(coordinates)의 집합이라고 가정하자(따라서, ). 를 일부 부분집합(subset)라 하고, 모든 에 대해 로 설정함으로써 에 대해 m을 정의하자.
[수학식 9]
빠른 체이스 디코딩의 맥락에서 이전 명제를 이용하기 위해 , , , , 및 인 명제 6의 특별한 경우를 생각해보자. 이 경우는 1의 중복도가 잘못된 위치들에만 할당되는 정확한 체이스 시도와, 적어도 잘못된 위치들에 대응한다.
를 리드하므로 만족된다. 이는 포인트-바이-포인트 알고리즘인 코에터 알고리즘이 보간에 사용되는 경우, 빠른 체이스 디코딩이 우(Wu)와 같은 소프트 디코딩의 위와 같은 디제너레이트 경우(degenerate case)에 기초할 수 있음을 즉시 보여준다. Y-차수가 로 제한되므로 이 경우의 리스트 크기는 정확히 1이 될 것이고, 분해 공정이 필요 없다.
구체적으로, 는 인 에러 위치들의 집합이라고 가정하고, 는 와 에 대해 에서 -가중된 차수를 최소화하는 넌-제로(non-zero) 다항식이라 하자. 여기서, 는 의 지시자 함수(indicator function)이다.
가 잠재적 오류-위치 다항식으로 자격이 없으면, 상기 논의는 임을 보여준다. 따라서, 임을 가정하자. 에서 Y-차수는 에 의해 상계(upper bounded)되므로, 명제 6은 수학식 10이 되도록 일부 넌-제로 다항식 가 존재한다.
[수학식 10]
라 하자.
이를 염두에 두고, 수학식 7과 수학식 8은 자체가 이미 에 포함된다는 것을 보여준다. 는 오로지 에러 위치들, 즉, 의 근들의 역들(inverses)만을 포함한다고 가정됨을 상기하라. 넌-제로 t(X)에 대해, t(X)가 상수가 아니면 의 -가중된 차수는 의 -가중된 차수보다 엄격히 크다. 는 가중된 차수를 최소화하므로, 이는 필요에 따라 t(X)가 넌-제로 상수이어야 함을 보여준다.
상기 논의는 도 4의 케이터 반복들을 정당화한다.
도 2의 유효성으로 돌아가서, 제안된 방법이 어떻게 정말로 를 생산하는지를 간략하게 설명한다. 첫째로, 이미 언급한 바와 같이 수정된 신드롬 와 정수 t인 입력을 가지고 모듈 N에 대한 BM 알고리즘의 출력은, N에 대한 그뢰브너 기저 }를 구하기 위해 사용될 수 있다. 여기서 다소 긴 증거를 생략한다. 이는 수정된 신드롬을 계산하면, M에 대한 BM 알고리즘은 필요한 그로브너 기저를 얻기위해 사용될 수 있음을 의미한다.
신드롬 S 와 정수 2t를 입력으로 가지는 BM 알고리즘을 "보통의(usual) BM 알고리즘"이라 지칭하자. 수정된 신드롬의 계산을 완전히 피하고, 대신 보통의 BM 알고리즘을 사용하기 위해서, 보통의 BM 알고리즘의 출력들을 N에 대한 BM 알고리즘의 출력들과 동등한 것으로 변환하는 방법을 적용하는 것이 가능하다. 이에 대해 가 보통의 BM 알고리즘의 출력 C 이면, 는 모듈 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의 내용은 본 명세서에 그 전체가 참조로 인용된다.).
따라서,
[수학식 11]
증명.
입력 S(X)와 2t에 대한 BM 알고리즘의 출력 로부터, 을 취함으로써 의 최소 차수의 일부 원소를 즉시 획득할 수 있는 명제로부터 나온다. 최소 차수의 원소가 고유하지 않을 수 있음을 유의하고, 상기는 반드시 가 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; 치엔 검색
12; BM 알고리즘
13; 빠른 체이스 사전-계산
14; 빠른 체이스 다항식 업데이트
15; 오류 위치 구성
16; 치엔 검색
Claims (8)
- 이진(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) 약한-비트 위치들의 집합에 대한 그뢰브너 기저를 에 대한 그뢰브너 기저로 변환하는 단계를 포함하고,
은 다음(next) 약한-비트 위치이고,
r은 오류들의 수와 BCH 코드 워드의 경판정 보정 반경(correction radius)의 차이인 ASIC. - 제1항에 있어서,
상기 신드롬 기반 경판정 알고리즘은 벨르캄프-매시(Berlekamp-Massey(BM)) 알고리즘과 피츠패트릭(Fitzpatrick) 알고리즘을 포함하는 그룹에서 선택되는 ASIC. - 제1항에 있어서,
상기 수정된 키 방정식의 솔루션 모듈에 대한 그뢰브너 기저를 찾기 위해 신드롬 기반 경판정 알고리즘의 출력들을 사용하는 단계는,
다항식 h 1 = (h 10 (X), h 11 (X))를 각각 C의 홀수와 짝수 부분으로 설정하고 다항식 h 2 = (h 20 (X), h 21 (X))를 각각 B'의 홀수와 짝수 부분의 시프트된 버전으로 설정하는 단계;
과 가 동일한 선도 단항식(leading monomia)을 가지지 않는다면, 하나의 i {1,2}에 대해 로 대체하는 단계; 및
i {1,2}에 대해 로 설정하는 단계를 포함하고,
다항식들 B'(X)와 C(X)는 BCH 코드 워드의 신드롬들에 대해 수행된 BM 알고리즘으로부터 출력되고, C(X)는 가 의 원소(element)가 되도록 하는 최소 차수의 다항식이고, , t는 BCH 코드 워드의 보정 반경이고, Seven(X)과 Sodd(X)는 각각 신드롬 다항식의 짝수와 홀수 부분이며, 다항식 B'(X)는 가상(virtual) BM 알고리즘에서 마지막 길이를 변경하기 전에 C(X)를 추적하고, 상기 가상 BM 알고리즘은 N1의 차수를 최소화하고, , 입력 신드롬 을 가지고, 수정된 키 방정식은 이고,
와 는 의 선도 단항식이 취소되도록 선택되고,
는 수정된 키 방정식의 솔루션 모듈에 대한 그뢰브너 기저인 ASIC.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230092093A (ko) * | 2021-12-16 | 2023-06-26 | 동국대학교 산학협력단 | 리스트 디코딩 알고리즘에서의 다항식 행렬에 대한 효율적 감소 연산을 수행하는 전자 장치 및 그 동작 방법 |
Families Citing this family (6)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160121442A (ko) * | 2015-04-10 | 2016-10-19 | 삼성전자주식회사 | 연판정 디코딩 방법 및 시스템 |
Family Cites Families (4)
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 |
-
2017
- 2017-01-19 US US15/409,724 patent/US10389385B2/en active Active
- 2017-06-09 KR KR1020170072228A patent/KR102352158B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160121442A (ko) * | 2015-04-10 | 2016-10-19 | 삼성전자주식회사 | 연판정 디코딩 방법 및 시스템 |
Cited By (1)
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 |