KR20100042589A - 이진 데이터의 오류 정정 및 오류 검출 방법 - Google Patents

이진 데이터의 오류 정정 및 오류 검출 방법 Download PDF

Info

Publication number
KR20100042589A
KR20100042589A KR1020090095595A KR20090095595A KR20100042589A KR 20100042589 A KR20100042589 A KR 20100042589A KR 1020090095595 A KR1020090095595 A KR 1020090095595A KR 20090095595 A KR20090095595 A KR 20090095595A KR 20100042589 A KR20100042589 A KR 20100042589A
Authority
KR
South Korea
Prior art keywords
error
matrix
vector
subvector
intermediate matrix
Prior art date
Application number
KR1020090095595A
Other languages
English (en)
Other versions
KR101562606B1 (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 KR20100042589A publication Critical patent/KR20100042589A/ko
Application granted granted Critical
Publication of KR101562606B1 publication Critical patent/KR101562606B1/ko

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error 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 using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • H03M13/1162Array based LDPC codes, e.g. array codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • 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/11Error 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 using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • 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/17Burst error correction, e.g. error trapping, Fire 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/43Majority logic or threshold decoding

Abstract

대수적 단일 심볼 오류 정정 및 검출을 위해, 코드워드들 내의 알려지지 않은 위치에서 단일 심볼 오류를 정정하는 것, 코드워드 내의 다수 심볼들이 정정할 수 없게 붕괴되어 있는 경우를 식별하는 것, 및 코드워드 내의 단일 심볼이 정정할 수 없게 붕괴되는 경우를 식별하는 것을 달성하는 하나의 방법이 제안된다. 이 방법은 수신된 워드의 신드롬(syndrome)을 계산하는 단계, 신드롬을 두 부분으로 분할하는 단계, 두 개의 신드롬 부분들로부터 계산된 3개의 정수 가중치량을 체크하는 단계, 신드롬을 수신된 비트들과 연관된 정수값의 "직교 비트 오류 가중치들"의 벡터로 변환하는 단계, 및 수신된 워드의 해당 비트들을 토클링하는 단계를 포함하되, 연관된 "직교 비트 오류 가중치"는 그것의 가능한 값 범위의 상부 절반 내에 있다.

Description

이진 데이터의 오류 정정 및 오류 검출 방법{METHOD FOR ERROR CORRECTION AND ERROR DETECTION OF BINARY DATA}
본 발명은 광 저장 시스템을 위한 오류 정정 코드(ECC) 분야에 대한 것이다. 이것은 또한 자기 기록 저장 디바이스, 중복적인 독립 디스크 어레이(RAID) 시스템, 및 송신 시스템에도 적용될 수 있다.
H. Fujita et al: "Modified low-density MDS array codes for tolerating double disk failures in disk arrays", IEEE trans COMP-56, 563-566쪽은 디스크 어레이 내에서 이중 디스크 고장을 견디기 위한 저-밀도 MDS 어레이 코드의 새로운 클래스를 제시한다. 제안된 MDS 어레이 코드는 Blaum et al의 EVENODD 코드보다 더 낮은 인코딩 및 디코딩 복잡도를 갖는다.
효율적으로 인코딩가능한 준-순환적 오류 정정 코드 접근법이 아래에서 "지어레이 코드(zArray Codes)"로 불릴 것이다. 지어레이 코드는 1997년, R.J.G. Smith에 의해 "Easily Decodable Efficient Self-Orthogonal Block Codes", Electronics Letters, 13권 7호, 173-174쪽에 발표된 바와 같은 알려진 "어레이 코드"를 기초로 한다. 지어레이 코드는 체계적인 방식으로, 유형 LDPC 또는 저 밀도 패리티 체크의 ECC 코드로 구성되는데, ECC 코드는 한편으로는, 긴 코드워드 길이에서조차 효율적으로 인코딩가능하고, 다른 한편으로는, 메시지 통과 알고리즘을 이용해서 디코딩될 때 양호한 성능을 갖는다.
지어레이 코드의 패리티 체크 매트릭스는 다음 단계에 의해 정의되고 생성된다: 제1 중간 매트릭스(H1)가 제곱의, 동일한 크기의, 이진 서브-매트릭스의 두 개의 행을 포함하도록 생성되는데, 제1 행은 크기가 p·p인 p 아이덴티티 매트릭스(I)를 포함하고, 제2 행은 크기가 p·p인 순환성 시프트 매트릭스(σ)의 p 증가 멱수(σu)를 포함하되, u=0,...,p-1이다. 제1 중간 매트릭스(H1)으로부터, 제2 중간 매트릭스(H2)가 열 색인[r+2ri+i+q] 모듈로 p에서 제1 중간 매트릭스(H1)의 서브-매트릭스들 각각으로부터 m개의 등거리 열을 제거함으로써 생성되는데, i,m,p,q는 정수이며, i=0,...,m-1이고, m,p,q,r은 p=m+2mr이 되도록 사전정의되고, 서브-매트릭스 내의 열 색인은 0에서 시작한다. 이러한 열 제거를 σu에 대응하는 서브매트릭스에 적용한 결과는 다음에서
Figure 112009061675637-PAT00001
로 표시될 것이다. 제2 중간 매트릭스(H2)로부터, 제3 중간 매트릭스(H3)가, 제거 단계로 인해, 0만을 포함하는 제2 중간 매트릭스(H2)의 서브-매트릭스들의 제1 행으로부터 해당 매트릭스 행들을 삭제함으로써 생성된다. 이러한 삭제의 결과로서, 제3 중간 매트릭스(H3)의 제1 행이 크기((p-m)·(p-m))의 p 작은 아이덴티티 매트릭스(Is)를 포함한다. 제3 중간 매트릭스(H3)로 부터, 지어레이 코드의 패리티 체크 매트릭스(H)는 가중치(2)를 갖는 높이(2p-m)의 m-1 이진 열 벡터를 프리펜딩(prepending)해서 생성되고, 열 벡터는 서브-매트릭스들의 병렬[σ0σ1]이 행 가중치(2)를 갖는 해당 행 범위의 중앙 행들 내에서 "1" 요소를 갖는다. 마지막에 언급된 이진 열 벡터는 "z" 매트릭스, 따라서 지어레이 코드라는 이름으로 함께 불린다.
아래에서, 해당 p-m 비트들의 튜플(tuple)을 지어레이 코드워드의 "심볼"로서 나타내는데 이 비트들은 패리티 체크 매트릭스(H)의 해당 열들에 대응하며, 이 열들은 열 제거 이후의 순환성 시프트 서브매트릭스들(σu) 중 하나의 열들을 포함한다. 나아가, σ(x-1)의 열들에 대응하는 튜플들 중 하나를 "심볼 x" 또는 "x번째 심볼"로 나타낸다. 이 명명법에서, 그것들의 수로 인해, 패리티 체크 매트릭스(H)의 z 매트릭스 부분에 대응하는, 코드워드의 m-1개의 극좌 비트가 일반적으로 심볼로 고려되지 않는다.
어레이 코드에 대한 지어레이 코드의 이점:
■ 규칙적인 열에 의해, 지어레이 코드는 열-불규칙적인 어레이 코드보다 더 양호한 메시지 통과 디코딩 성능을 가능하게 한다.
■ 지어레이 코드는 코드워드 길이와 선형적으로 증대하는 인코딩 시간을 유지한다.
■ 지어레이 코드는 패리티 비트 생성, 즉 인코딩이 조정가능한 개수의 독립적인 순차 태스크들로 분할되게 해서, 인코딩 프로세스의 병렬화를 가능하게 한다.
지어레이 코드는 효율적인 인코딩능력 및 양호한 메시지 통과 디코딩 성능을 위해 설계된다. 그러나, 메시지 통과 디코딩은 오류가 수신된 코드워드를 위한 낮은 비트의 신뢰도에 의해 영향받을 때만 정당화된다(justified). 이는 버스트 오류(또는 알려진 상태를 갖는 삭제 표시 버스트 오류) 경우 또는 샷 노이즈 이벤트가 아닐 수 있다. 동일한 심볼 내에 다수의 붕괴된 비트를 포함하는 단일 심볼 오류의 경우에, 메시지 통과 디코딩은, 오류가 몇 가지 형태의 짧은 오류 버스트에 야기되는 경우에 특히, 올바른 코드워드를 발견하는 것을 실패할 가능성이 있다. 이때 잠재적인 단일 심볼 오류에 대한 대수적 심볼 오류 디코딩이 수행될 수 있다.
단일 오류 정정 코드가 1992년, M. Blaum에 의한, "A CODING TECHNIQUE FOR RECOVERY ABAINST DOUBLE DISK FAILURE IN DISK ARRAYS"에 개시되어 있다. 또한 US 특허 번호(5,271,012) 또는 EP(0519669)을 각각 참조하자. 이러한 코드는 최소 거리 3을 가지며 따라서 임의의 단일 심볼 오류를 정정할 수 있다.
블라움의 디코딩 방법은 미국 특허 번호(5,644,695)에 개시되어 있다. 이것은 미국특허 번호(5,351,246)에 제시된 일반화된 어레이 코드에 의존하며 미국특허 번호(5,271,012) 또한 포함한다.
지어레이 코드의 코드워드의 대부분은 최소 거리 3을 가지며, 그 중 극소수가 최소 거리 2를 가져서, 지어레이 코딩으로, 모든 단일 심볼 오류가 정정할 수 있는 것은 아니다.
지어레이 코딩된 데이터를 코딩하는 것에 대해,
■ 랜덤 비트 오류에 대해, 메시지 통과 디코딩이 유리하게 이용될 수 있다;
■ 적어도 지어레이 코드 서브클래스에 대해, 단일 및 이중 삭제(코드워드 내의 알려진 위치에서의 오류성 심볼)가 지어레이 인코딩으로부터 처리 단계의 변경을 이용해서 정정될 수 있다. 이것은 서브클래스의 구조를 이용한다.
■ 짧은 버스트 오류의 상황에 대해, 코드워드 내의 알려지지 않은 위치에서의 단일 심볼이 그것의 비트들 중 몇 개를 붕괴시킬 때, 효과적인 디코딩(즉 정정) 방법이 지금까지는 부족하다.
종래기술 즉, US5,271,012/EP0519669, US5,644,695 및 US5,351,246으로부터의 해결책이 상이한 코드를 수반하는데, 이 코드는 병렬화된 인코딩을 허용하는 특징을 갖지 않는다.
본 발명은 대수적 단일 심볼 오류 정정 및 오류 검출 방법을 제공한다. "대수적 디코딩"이라는 용어는 오류 정정 분야에서, 올바른 데이터가 임의의 소정의 데이터로부터 계산되는 디코딩 방법을 가리키는 것으로 알려져 있으며, 이는 "메시지 통과"로 알려진 반복적 방법과 비교되며, 이 반복적 방법에서 소정의 오류성 데이터는 이 방법하에서 올바른 데이터로 어심프토틱하게(asymptotically) 변환한다. 본 발명은 지어레이 코딩된 데이터 상에서, 종래기술로부터 알려진 "대다수(majority) 로직 디코딩"의 변경이 다음 태스크를 위해 효율적으로 이용될 수 있음을 제안하고, 이를 기술한다:
■ 코드워드 내의 단일 심볼 오류(알려지지 않은 위치에서임)를 정정하는 것;
■ 코드워드 내의 다수의 심볼이 정정할 수 없게 붕괴되는 경우를 식별하는 것;
■ 코드워드 내의 단일 심볼이 정정할 수 없게 붕괴되는 그러한 (소수의) 경우를 식별하는 것.
본 발명에 따른 방법은 다음 단계를 수반한다:
■ 수신된 워드의 신드롬을 계산하는 단계,
■ 신드롬을 두 부분으로 분할하는 단계,
■ 두 개의 신드롬 부분으로부터 계산된 3개의 정수 가중량을 체크하는 단계,
■ 신드롬을 수신된 비트와 연관된 정수값의 "직교 비트 오류 가중치"의 벡터로 변환하는 단계,
■ 수신된 워드의 해당 비트를 토글하는 단계로서, 연관된 "직교 비트 오류 가중치"가 그것의 가능한 값 범위의 상부 절반 내에 있는, 토글 단계.
이점:
■ 지어레이 코딩된 데이터를 위한 그밖의, 이전에 발명된 디코딩 방법을 보충한다. 함께 이용되는 경우, 이러한 디코딩 기법은 실제로 중요한 디코딩 시나리오를 대부분은 아니더라도 많이 커버할 수 있다.
■ 이 방법은 지어레이 코딩된 데이터 상에서 이용될 때 US5,644,695의 디코딩 방법에 대해 유리한 대안이다.
본 발명은 지어레이 코드워드 내의 단일 심볼 에러를 정정하는 문제를 해결 한다. 지어레이 코드워드 내의 단일 심볼 오류를 정정하는 방법이 제안된다. 이 방법은 확장된 대다수 로직 디코딩 프로세스를 이용한다. 이것을 넘어서, 다수의 심볼 오류 및 정정할 수 없는 단일 심볼 오류가 정정할 수 없는 것으로 식별 및 마킹될 것이다.
지어레이 코드는 최소 심볼 거리(dmin=2)를 갖는다. 따라서, 심볼 내의 오류 비트들의 수에 의존해서, 단일 심볼 오류 정정이 보장될 수 없는데 그 이유는 심볼 오류 위치를 지정하는 것이 항상 가능한 것은 아니기 때문이다. 따라서 모든 정정할 수 없는 심볼 오류 이벤트를 적어도 식별하도록 준비된다. 지어레이 코드의 언급된 설계 파라미터("p")가 이러한 이벤트의 확률을 낮추기 위해 이용될 수 있다는 것이 보여질 것이다. 더욱이, 대부분의 다수 심볼 오류가 식별될 것이다.
본 발명에 따른 방법의 이점은:
■ 단일 지어레이 코드 심볼의 다수의 비트가 붕괴된 경우에, 본 발명에 따른 확장된 대다수 로직 디코딩 방법을 위한 오류 정정 확률이 소프트(soft) 결정 메시지 통과 디코딩의 확률보다 훨씬 더 높다.
■ 소프트 결정 메시지 통과 디코딩과 비교해서, 본 발명에 따른 디코딩 방법은 덜 복잡하며, 따라서 더 적은 처리 자원을 요구한다. 이는 그것의 하드(hard)-결정으로 인해, 비-반복적 성질이다.
■ 미국 특허 번호(5,644,695)와 대조적으로, 본 발명에 따른 디코딩 방법은 정정할 수 없는 심볼 오류 이벤트를 인식하고 있다. 최소 심볼 거리(3)를 갖는 어레이 코드에 대해, 모든 단일 심볼 오류가 정정할 수 있다. 어레이 코드에 대한 지어레이 코드의 이점은 위에서 지적되었다.
본 발명에 따르면, 워드로 조직된 이진 데이터의 에러 정정 및 에러 검출은 다음 단계를 포함한다:
- 수신된 워드(r')로부터 이진 신드롬 벡터(s)를 계산하는 단계;
- 신드롬 벡터(s)를 제1 서브벡터(s0) 및 제2 서브벡터(s1)로 분할하는 단계;
- 제1 서브벡터(s0)로부터 제1 오류 가중치(ws0)를 계산하고, 제2 서브벡터(s1)로부터 제2 오류 가중치(ws1) 및 제3 오류 가중치(ws1')를 계산하는 단계;
- 신드롬 벡터(s)를 직교 비트 오류 가중치 벡터(eow)로 변환하는 단계;
- 다수결(majority decision)을 통해 직교 비트 오류 가중치 벡터(eow)로부터 대다수 오류 벡터(emaj)를 도출하는 단계;
- 대다수 오류 벡터(emaj)로부터, 수신된 워드의 심볼과 연관된 심볼 오류 가중치 벡터(esym)를 연산하는 단계;
- 심볼 오류 가중치 벡터(esym)로부터, 잠재적인 심볼 오류 개수(nsym)를 도출하는 단계;
- nsym=1이 도출된 그러한 수신된 워드(r')를, 제1 서브벡터(s0)와의 비트방식(bitwise) XOR 연산에 의해 정정하는 단계.
본 발명의 예시적인 실시예가 다음 설명에서 더 상세하게 설명된다.
색인(x=1,...,p)을 갖는 지어레이 코드워드 심볼이 지어레이 코드워드의 해당 p-m개의 비트들을 포함하는 튜플이 되게 정의되는데, 이 비트들은 패리티 체크에 대해, 지어레이 코드의 패리티 체크 매트릭스(H)의 서브매트릭스(ls) 및
Figure 112009061675637-PAT00002
와 각각 곱해진다.
많은 경우에 지어레이 코드는 확장된 대다수 로직 디코딩 전략을 이용해서 단일 심볼 오류를 정정하게 한다. 단일 심볼 오류는 심볼의 p-m개의 비트들 중 적어도 1개를 붕괴시키도록 정의된다. 다수 심볼 오류들은 정정할 수 없다. 오류 이벤트의 종류는 디코딩 이전에 알려지지 않는다고 전제된다.
단일 심볼 오류 정정을 위한 확장된 대다수 로직 디코딩
다음에서, 지금까지 "H"로 나타낸, 지어레이 코드의 패리티 체크 매트릭스가 H mz로 나타날 것이다.
■ 단계1: GF2에서, 수신된 벡터(수신된 워드로도 나타남)(r')로부터 신드롬(
Figure 112009061675637-PAT00003
)을 연산하라.
■ 단계2: 신드롬을 체크하라: s=0이 유지되는 경우, 수신된 벡터(r')는 보내진 코드워드(v)와 동일하다고 여겨진다; 중단.
다음 단계는 단지, 비-제로 신드롬 경우에 대해 실행될 것이라는 것을 주목하자.
■ 단계3: H mz의 상부 p-m개의 행들에 대응하는 s의 해당 p-m개의 비트들로 부터 s 0를 추출하라. s=[ s 0 s 1 ]가 되도록, H mz의 하부 p개의 행들에 대응하는 s의 해당 p개의 비트들로부터 s 1를 추출하라.
■ 단계4: 정수값인 오류 가중치(wso 및 ws1)를 s 0s 1 내의 세트 비트들을 합산해서 연산하라:
Figure 112009061675637-PAT00004
H mz의 z 매트릭스 부분 내의 "1" 요소를 단계 1에서, 수반된 s 1 계산의 해당 요소를 무시하는 한편 s 1 내의 세트 비트들을 합산함으로써 ws1' 연산하라:
Figure 112009061675637-PAT00005
■ 단계5: 오류 가중치 균등을 체크하라: wso ≠ ws1인 경우, 비 단일 심볼 오류가 검출된다; 다음 선택사항과 함께 중단:
선택사항 5a: wso = ws1' = 0인 경우, 이는 r'에서, H의 z 매트릭스 부분과 연관된 부분만이 오류있는 반면에, r'의 정보 부분(u') 및 그밖의 패리티 비트들은 오류가 없다는 것을 나타낸다. v par1의 재구성이 이 경우에 가능하나, 대개는 관심이 없다.
선택사항 5b: 이와 다른 경우, 정정할 수 없는 다수 심볼 오류가 검출된다.
■ 단계6: 통상적인(즉 비-GF2) 매트릭스 곱셈을 이용해서 직교 비트 오류 가중치 벡터(e ow)를 연산하라:
e ow = sH mz
e owr'과 동일한 차수(dimensionality)이다. H mz의 열 가중치 및 비-GF2 곱셈으로 인해, e ow의 요소는 ∈ {0, 1, 2}이다.
■ 단계7: 최대 직교 오류 개수가 J라는 것을 전제로, 직교 비트 오류 가중치 벡터(e ow)의 성분을 대다수 오류 벡터(e maj)로 대다수 디코딩해라.(직교성은 Lin, Costello에 의한 "Error Control Coding" 내의 872쪽 상의 섹션 17.6.1에 따라 정의된다.) 이는 e ow의 요소에 대해,
Figure 112009061675637-PAT00006
인 경우에 a(1)이 디코딩되고, 이와 다른 경우 a(0)가 디코딩된다. 지어레이 코드에 대해, J=2인 경우, 대다수 오류 벡터는 따라서
Figure 112009061675637-PAT00007
로 기록될 수 있다. e maj의 요소는 ∈ {0, 1}이다.
(단계 6 & 단계 7은 전통적인 잘 알려진 대다수 로직 디코딩 단계로서 이로부터
Figure 112009061675637-PAT00008
이 디코딩될 수 있다.)
■ 단계8: 각 심볼 내의 대다수 오류 벡터의 "1" 요소들을 카운트함으로써 각 심볼 색인(x=1,...,p)에 대해 p개의 심볼 오류 가중치들을 연산하라:
Figure 112009061675637-PAT00009
이는 Hmz의 z 매트릭스 부분에 대응하는 e maj로부터의 해당 z 대다수 오류들을 간과하는데, 그 이유는 이것들이 정의(definition)마다 심볼을 정의하지 않기 때문이다.
■ 단계9: esym(x) = wso인 경우에, 각 심볼에 대해 체크하라. 오류 가중치(wso)는 발생할 수 있는 최대 심볼 오류 가중치이다.
Figure 112009061675637-PAT00010
e ws0(x)=1이 심볼 색인(x)에서의 잠재적인 오류를 나타낸다.
(이 단계는 제2 심볼 기반의 대다수 로직 디코딩 단계로서 해석될 수 있으나, 전통적인 2-단계 대다수 로직 디코더와 혼동되어서는 안 된다.)
■ 단계10: 잠재적인 심볼 오류들의 개수를 카운트하라:
Figure 112009061675637-PAT00011
■ 단계11: 정정할 수 없는 단일 또는 다수 심볼 오류들에 대해 체크하라.
a. nsym= 0인 경우, 다수 심볼 오류들이 검출된다.
수신된 벡터(r') 내의 오류들은 정정할 수 없다; 중단!
b. nsym>0인 경우, 단일의 그러나 정정할 수 없는 심볼 오류가 검출된다. 수신된 벡터(r') 내의 오류들은 정정할 수 없다; 중단!
■ 단계12: nsym= 1. e ws0(xdef)= 1이 유지되는 심볼 색인(xdef)에 대응하는, 단 일 심볼 오류를, r을 수신하도록, 수신된 벡터(r')의 오류성 심볼을 s 0와 XOR 함으로써, 정정하라.
Figure 112009061675637-PAT00012
가 유지된다는 것을 주목하라.
(단계 8 내지 단계 12는 확장 단계로 고려된다.)
본 발명에 따른 확장된 대다수 로직 디코딩은 또한 단일 심볼 오류 정정에 대한 미국특허번호(5,271,012)에 따른 블라움의 어레이 코드에도 적용될 수 있다. 거기서, 단계5가 배제될 수 있는데, 그 이유는 해당 코드가 v par1 부분을 갖고 있지 않기 때문이다. 또한, 단계11의 선택사항 b.에서 조건식(nsym>1)이 결코 유지되지 않을 것인데 그 이유는 어레이 코드가 정정할 수 없는 단일 심볼 오류들을 겪지 않기 때문이다.
다시 말해서, 대수적 단일 심볼 오류 정정 및 검출에 대해, 코드워드들 내의 알려지지 않은 위치에서 단일 심볼 오류를 정정하는 것, 코드워드 내의 다수 심볼들이 정정할 수 없게 붕괴되어 있는 경우를 식별하는 것, 및 코드워드 내의 단일 심볼이 정정할 수 없게 붕괴되는 경우를 식별하는 것을 달성하는 하나의 방법이 제안된다. 이 방법은 수신된 워드의 신드롬(syndrome)을 계산하는 단계, 신드롬을 두 부분으로 분할하는 단계, 두 개의 신드롬 부분들로부터 계산된 3개의 정수 가중치량을 체크하는 단계, 신드롬을 수신된 비트들과 연관된 정수값의 "직교 비트 오류 가중치들"의 벡터로 변환하는 단계, 및 수신된 워드의 해당 비트들을 토클링하는 단계를 포함하되, 연관된 "직교 비트 오류 가중치"는 그것의 가능한 값 범위의 상 부 절반 내에 있다.
본 발명은 광 저장 시스템을 위한 오류 정정 코드(ECC) 분야에 이용가능하다. 이것은 또한 자기 기록 저장 디바이스, 중복적인 독립 디스크 어레이(RAID) 시스템, 및 송신 시스템에도 적용될 수 있다.

Claims (2)

  1. 다음 단계의 결과와 동일한 패리티 체크 매트릭스를 갖는 LDPC 코드에 의해 오류 정정 인코딩된 이진 데이터의 오류 정정 및 오류 검출 방법으로서, 상기 단계는,
    제곱의, 동일한 크기의, 이진 서브-매트릭스의 두 개의 행을 포함하는 제1 중간 매트릭스를 생성하는 단계로서, 제1 행은 크기가 p·p인 p 개 아이덴티티 매트릭스들을 포함하고, 제2 행은 크기가 p·p인 순환성 시프트 매트릭스의 p 개 증가 멱수들을 포함하는, 제1 중간 매트릭스 생성 단계;
    제1 중간 매트릭스로부터, 열 색인[r+2ri+i+q] 모듈로 p에서 제1 중간 매트릭스의 서브-매트릭스들 각각으로부터 m개의 등거리 열을 제거함으로써 제2 중간 매트릭스를 생성하는 단계로서, i,m,p,q는 정수이며, i=0,...,m-1이고, m,p,q,r은 p=m+2mr이 되도록 사전정의되고, 서브-매트릭스들 내의 열 색인들은 0에서 시작하는, 제2 중간 매트릭스 생성 단계;
    제2 중간 매트릭스로부터, 0만을 포함하는 제2 중간 매트릭스(H2)의 서브-매트릭스들의 제1 행으로부터 해당 매트릭스 행들을 삭제함으로써 제3 중간 매트릭스를 생성하는 단계;
    시프트 매트릭스의 제1 멱수와 병치된 시프트 매트릭스의 0번째 멱수가 행 가중치(2)를 갖는 해당 행 범위들 중의 중앙 행들 내에서 "1"요소들을 갖는 높이(2p-m)의 m-1 이진 열 벡터를 제3 중간 매트릭스에 프리펜딩(prepending)하는 단 계이고;
    이진 데이터가 워드들로 조직되며, 워드들은 심볼들을 포함하는, 이진 데이터의 오류 정정 및 오류 검출 방법으로서,
    - 수신된 워드, 및 LDPC 코드의 패리티 체크 매트릭스로부터, 이진 신드롬 벡터를 계산하는 단계;
    - 신드롬 벡터를 제1 서브벡터 및 제2 서브벡터로 분할하는 단계;
    - 제1 서브벡터로부터 제1 오류 가중치를 계산하고, 제2 서브벡터로부터 제2 오류 가중치 및 제3 오류 가중치를 계산하는 단계;
    - 신드롬 벡터를 직교 비트 오류 가중치 벡터로 변환하는 단계;
    - 다수결(majority decision)을 통해 직교 비트 오류 가중치 벡터로부터 대다수 오류 벡터를 도출하는 단계;
    - 대다수 오류 벡터로부터, 수신된 워드의 심볼들과 연관된 심볼 오류 가중치들의 벡터를 연산하는 단계;
    - 심볼 오류 가중치들의 벡터로부터, 잠재적인 심볼 오류들의 개수를 도출하는 단계;
    - 잠재적인 심볼 오류들의 개수가 1로 도출된 그러한 수신된 워드들을, 제1 서브벡터와의 비트방식(bitwise) XOR 연산에 의해 정정하는 단계
    를 포함하는, 이진 데이터의 오류 정정 및 오류 검출 방법.
  2. 제1 항에 있어서,
    제1 서브벡터는 신드롬의 p-m개의 비트들을 포함하고, 제2 서브벡터는 p개의 벡터들을 포함하며, 제3 오류 가중치는 제2 서브벡터로부터, 그것의 세트 비트들을 요소(2rj+j)에서는 제외하고 카운트함으로써 도출되는, 이진 데이터의 오류 정정 및 오류 검출 방법.
KR1020090095595A 2008-10-16 2009-10-08 이진 데이터의 오류 정정 및 오류 검출 방법 KR101562606B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP08305690.3 2008-10-16
EP08305690A EP2178215A1 (en) 2008-10-16 2008-10-16 Method for error correction and error detection of modified array codes

Publications (2)

Publication Number Publication Date
KR20100042589A true KR20100042589A (ko) 2010-04-26
KR101562606B1 KR101562606B1 (ko) 2015-10-23

Family

ID=40386438

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090095595A KR101562606B1 (ko) 2008-10-16 2009-10-08 이진 데이터의 오류 정정 및 오류 검출 방법

Country Status (6)

Country Link
US (1) US8245106B2 (ko)
EP (2) EP2178215A1 (ko)
JP (1) JP5543170B2 (ko)
KR (1) KR101562606B1 (ko)
CN (1) CN101729077B (ko)
TW (1) TWI492548B (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102325003B (zh) * 2011-07-14 2014-02-12 海能达通信股份有限公司 数据错误检测的方法及设备
DE102014118531B4 (de) * 2014-12-12 2016-08-25 Infineon Technologies Ag Verfahren und Datenverarbeitungseinrichtung zum Ermitteln eines Fehlervektors in einem Datenwort
US10552243B2 (en) 2017-10-12 2020-02-04 International Business Machines Corporation Corrupt logical block addressing recovery scheme
CN112003626B (zh) * 2020-08-31 2023-11-10 武汉梦芯科技有限公司 一种基于导航电文已知比特的ldpc译码方法、系统和介质
CN114765055A (zh) * 2021-01-14 2022-07-19 长鑫存储技术有限公司 纠错系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4556977A (en) 1983-09-15 1985-12-03 International Business Machines Corporation Decoding of BCH double error correction - triple error detection (DEC-TED) codes
US5271012A (en) 1991-02-11 1993-12-14 International Business Machines Corporation Method and means for encoding and rebuilding data contents of up to two unavailable DASDs in an array of DASDs
EP0519669A3 (en) 1991-06-21 1994-07-06 Ibm Encoding and rebuilding data for a dasd array
US5644695A (en) 1994-01-03 1997-07-01 International Business Machines Corporation Array combinatorial decoding with multiple error and erasure detection and location using cyclic equivalence testing
JP3451221B2 (ja) * 1999-07-22 2003-09-29 日本無線株式会社 誤り訂正符号化装置、方法及び媒体、並びに誤り訂正符号復号装置、方法及び媒体
US6961888B2 (en) * 2002-08-20 2005-11-01 Flarion Technologies, Inc. Methods and apparatus for encoding LDPC codes
KR100996029B1 (ko) * 2003-04-29 2010-11-22 삼성전자주식회사 저밀도 패리티 검사 코드의 부호화 장치 및 방법
US7234098B2 (en) * 2003-10-27 2007-06-19 The Directv Group, Inc. Method and apparatus for providing reduced memory low density parity check (LDPC) codes
US7543212B2 (en) * 2004-09-13 2009-06-02 Idaho Research Foundation, Inc. Low-density parity-check (LDPC) encoder
KR100734262B1 (ko) 2004-12-07 2007-07-02 삼성전자주식회사 광 저장 매체의 최적화된 결함 처리를 위한 결함 판단 장치
KR20060135451A (ko) * 2005-06-25 2006-12-29 삼성전자주식회사 저밀도 패리티 검사 행렬 부호화 방법 및 장치
JP4662367B2 (ja) * 2006-04-18 2011-03-30 共同印刷株式会社 情報シンボルの符号化方法及びその装置並びに情報シンボルの復号化方法及び復号化装置
US7831895B2 (en) * 2006-07-25 2010-11-09 Communications Coding Corporation Universal error control coding system for digital communication and data storage systems
US8065598B1 (en) * 2007-02-08 2011-11-22 Marvell International Ltd. Low latency programmable encoder with outer systematic code and low-density parity-check code
US8020063B2 (en) * 2007-07-26 2011-09-13 Harris Corporation High rate, long block length, low density parity check encoder

Also Published As

Publication number Publication date
US8245106B2 (en) 2012-08-14
EP2178215A1 (en) 2010-04-21
TWI492548B (zh) 2015-07-11
KR101562606B1 (ko) 2015-10-23
US20100269025A1 (en) 2010-10-21
CN101729077A (zh) 2010-06-09
JP5543170B2 (ja) 2014-07-09
EP2178216A1 (en) 2010-04-21
CN101729077B (zh) 2014-03-12
TW201018096A (en) 2010-05-01
JP2010098735A (ja) 2010-04-30

Similar Documents

Publication Publication Date Title
US10146618B2 (en) Distributed data storage with reduced storage overhead using reduced-dependency erasure codes
US9356626B2 (en) Data encoding for data storage system based on generalized concatenated codes
Wu Generalized integrated interleaved codes
Zeng et al. Higher-dimensional quantum hypergraph-product codes with finite rates
US20100299575A1 (en) Method and system for detection and correction of phased-burst errors, erasures, symbol errors, and bit errors in a received symbol string
KR101562606B1 (ko) 이진 데이터의 오류 정정 및 오류 검출 방법
US10606697B2 (en) Method and apparatus for improved data recovery in data storage systems
US7721177B2 (en) Device and method for determining a position of a bit error in a bit sequence
Zhang Modified generalized integrated interleaved codes for local erasure recovery
Hassner et al. Integrated interleaving-a novel ECC architecture
US20170264320A1 (en) Code reconstruction scheme for multiple code rate tpc decoder
Pham et al. Sublinear compressive sensing reconstruction via belief propagation decoding
CN110941505A (zh) 产生错误校正电路的方法
Balaji et al. On partial maximally-recoverable and maximally-recoverable codes
Kim et al. Decoding Reed-Muller codes over product sets
WO2018149354A1 (zh) 极化码的编码方法、装置及设备、存储介质
Wu et al. Generalized expanded-Blaum-Roth codes and their efficient encoding/decoding
Huang et al. An improved decoding algorithm for generalized RDP codes
Badack et al. Modified DEC BCH codes for parallel correction of 3-bit errors comprising a pair of adjacent errors
US10387254B2 (en) Bose-chaudhuri-hocquenchem (BCH) encoding and decoding tailored for redundant array of inexpensive disks (RAID)
Cassuto et al. Low-complexity array codes for random and clustered 4-erasures
EP2178214A1 (en) Method and apparatus for algebraic erasure decoding
US9391647B2 (en) Decoder and decoding method thereof for min-sum algorithm low density parity-check code
US20140344652A1 (en) Method for generating a maximized linear correcting code, method and device for decoding such a code
US20140317162A1 (en) Using Carry-less Multiplication (CLMUL) to Implement Erasure Code

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee