KR20140074814A - 오정정을 처리하는 저밀도 패리티 검사 디코더 - Google Patents

오정정을 처리하는 저밀도 패리티 검사 디코더 Download PDF

Info

Publication number
KR20140074814A
KR20140074814A KR1020130119405A KR20130119405A KR20140074814A KR 20140074814 A KR20140074814 A KR 20140074814A KR 1020130119405 A KR1020130119405 A KR 1020130119405A KR 20130119405 A KR20130119405 A KR 20130119405A KR 20140074814 A KR20140074814 A KR 20140074814A
Authority
KR
South Korea
Prior art keywords
codeword
data
circuit
hash
decoder
Prior art date
Application number
KR1020130119405A
Other languages
English (en)
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 KR20140074814A publication Critical patent/KR20140074814A/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/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
    • 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
    • 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
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • 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
    • H03M13/1142Decoding using trapping sets

Abstract

디코더 회로, 신드롬 계산 회로 및 해시 계산 회로를 포함하는 데이터 처리 시스템이 개시된다. 디코더 회로는 디코딩 알고리즘을 복합 행렬의 제1 부분에 기초하여 디코더 입력에 적용하여 코드워드를 산출하도록 동작 가능하다. 신드롬 계산 회로는 상기 코드워드 및 상기 복합 행렬의 제1 부분에 기초하여 신드롬을 계산하도록 동작 가능하다. 해시 계산 회로는 상기 복합 행렬의 제2 부분에 기초하여 해시를 계산하도록 동작 가능하다. 상기 디코더 회로는 또한 상기 신드롬이 상기 복합 행렬의 제1 부분에 기초한 상기 코드워드가 정확하다고 표시하지만 제2 테스트는 상기 코드워드가 오정정되었다고 표시할 때 적어도 부분적으로 상기 해시에 기초하여 상기 코드워드를 정정하도록 동작 가능하다.

Description

오정정을 처리하는 저밀도 패리티 검사 디코더{LOW DENSITY PARITY CHECK DECODER WITH MISCORRECTION HANDLING}
본 발명의 여러 실시예는 오정정을 처리하는 저밀도 패리티 검사 디코딩을 위한 장치 및 방법을 제공한다.
저장 시스템, 셀룰러 텔레폰 시스템 및 무선 전송 시스템을 포함하는 다양한 데이터 전달 시스템이 개발되었다. 그러한 시스템에서, 데이터는 어떤 매체를 경유하여 송신기에서 수신기로 전달된다. 예를 들면, 저장 시스템에서, 데이터는 송신기(즉, 기록 기능)로부터 저장 매체를 경유하여 수신기(즉, 판독 기능)에게 송신된다. 일부 사례에서, 데이터 처리 기능은 데이터 세트를 수신하고 그 데이터 세트에 데이터 디코딩 알고리즘을 적용하여 원래 작성된 데이터 세트를 복구한다. 몇몇 예에서, 데이터 디코딩 프로세서의 애플리케이션은 사실상 그렇지 않을 때 그 결과가 옳다고 하는 내부 디코더 메트릭에게 올바른 결과를 제공한다. 그러한 오정정은 검출하기 어려울 수 있으며 수신 장치의 동작에 치명적일 수 있다.
디코더 회로, 신드롬 계산(syndrome calculation) 회로 및 해시 계산 회로를 포함하는 데이터 처리 시스템이 개시된다. 디코더 회로는 복합 행렬의 제1 부분에 기초하여 디코딩 알고리즘을 디코더 입력에 적용하여 코드워드를 생성한다. 신드롬 계산 회로는 코드워드 및 복합 행렬의 제1 부분에 기초하여 신드롬을 계산하도록 동작가능하다. 해시 계산 회로는 복합 행렬의 제2 부분에 기초하여 해시를 계산하도록 동작가능하다. 디코더 회로는 또한 복합 행렬의 제1 부분에 기초한 코드워드가 정확하다고 신드롬이 지적하지만, 2차 테스트에서는 그 코드워드가 오정정되었다고 지적할 때 그 코드워드를 해시에 맞추어 정정하도록 동작가능하다.
본 요약 내용은 본 발명의 일부 실시예의 전반적인 개요만을 제공할 뿐이다. 다음의 상세한 설명과, 첨부의 청구범위 및 첨부의 도면에서는 추가적인 실시예가 개시된다.
도 1은 본 발명의 하나 이상의 실시예에 따라서 절단된(truncated) 부분-행렬 H 및 스페셜 층 S를 포함하는 생성 매트릭스 및 대응하는 패리티 검사 매트릭스를 도시한다.
도 2는 본 발명의 하나 이상의 실시예에 따라서 오정정 처리하는 저밀도 패리티 검사 디코더를 포함하는, 인코딩 시스템 및 디코딩 시스템을 갖는 데이터 처리 시스템을 도시한다.
도 3은 본 발명의 하나 이상의 실시예에 따라서 오정정을 지원하는 저밀도 패리티 검사 디코더를 포함하는 인코딩 시스템을 도시한다.
도 4는 본 발명의 하나 이상의 실시예에 따라서 오정정 처리하는 저밀도 패리티 검사 디코더를 포함하는 디코딩 시스템을 도시한다.
도 5는 본 발명의 일부 실시예에 따라서 오정정 처리하는 저밀도 패리티 검사 디코딩의 블록도를 도시한다.
도 6은 본 발명의 여러 실시예에 따라서 저밀도 패리티 검사 디코딩 동안 내부 레벨 오정정 처리의 방법을 보여주는 흐름도를 도시한다.
도 7은 본 발명의 여러 실시예에 따라서 저밀도 패리티 검사 디코딩 동안 외부 레벨 오정정 처리의 방법을 보여주는 흐름도를 도시한다.
도 8은 본 발명의 일부 실시예에 따라서 오정정 처리하는 저밀도 패리티 검사 디코더를 포함하는 저장 시스템을 도시한다.
도 9는 본 발명의 일부 실시예에 따라서 오정정 처리하는 저밀도 패리티 검사 디코더를 포함하는 무선 통신 시스템을 도시한다.
본 발명의 여러 실시예들은 본 명세서의 나머지 부분에서 기술된 도면을 참조하여 더 잘 이해될 것이다. 도면에서, 유사한 참조부호는 여러 전체 도면에서 유사한 컴포넌트를 지칭하는 것으로 사용된다. 도면에서 유사한 참조부호는 여러 전체 도면에서 유사한 컴포넌트를 지칭하는 것으로 사용된다.
오정정 처리하는 저밀도 패리티 검사(LDPC) 디코더는 디코더가 부정확한 코드워드로 수렴했을 경우에, 오정정을 검출하고 해결하는 것을 돕기 위해 특수 층 S를 패리티-검사 H0 매트릭스에 부가하여 사용한다. 생성 행렬 G(100)가 오정정을 지원하는 저밀도 패리티 검사 인코더에서 적용되어, 도 1에 도시된 바와 같은 코드워드 또는 인코딩된 데이터를 디코딩하는 오정정 처리 기능을 갖는 저밀도 패리티 검사 디코더에서 사용된 절단된 부분-행렬 H0(104) 및 특수 층 S(106)을 포함하는 패리티 검사 H 매트릭스(102)를 생성한다. 패리티 검사 H 행렬(102)은 본 명세서에서 복합 행렬이라고도 지칭된다. 부분-행렬 H0(104)은 사용자 데이터 비트 및 패리티 비트에 대응하며 저밀도 패리티 검사 디코더에서 변수 노드와 체크 노드 사이의 연결을 정의한다. 부분-행렬 H0(104)는 저밀도 패리티 검사 알고리즘을 코드워드에 적용하는 저밀도 패리티 검사 디코더에 의해 사용된 표준 저밀도 패리티 검사 또는 H 행렬일 수 있지만, 이것으로 제한되지 않는다. 부분-행렬 H0(104)은 본 기술에서 공지된 모든 H 행렬 또는 기타 행렬일 수 있으며, 본 기술에서 통상의 지식을 가진 자라면 이진 및 비-이진, 의사-순회(quasi-cyclic) 등과 같이, 본 발명의 여러 실시예에 관련하여 사용될 수 있는 각종 H 행렬을 인식할 것이다. 디코더 측에서 보면, 특수 층 S(106)는 부분-행렬 H0(104)과 동일한 구조로 더 많은 패리티 비트를 추가시킨 것이지만, 이것으로 제한되지 않는다. 일부 실시예에서, 특수 층 S(106)는 부분-행렬 H0(104) 보다 더 복잡하다. 인코더 측에서 보면, 이것은 생성 행렬 G(100)에서 크기의 증가를 가져온다.
특수 층 S(106)는 데이터가 수렴했을 때 - 이것은 일부 실시예에서 신드롬이 0일 때, 즉, 부분 행렬 H0에 기초한 저밀도 패리티 검사 디코딩의 경판정 결과 V에 부분 행렬 H0를 곱셈함으로써 구한 벡터가 0와 같을 때 식별됨 - 사용된다. (신드롬 = 부분 행렬 H0 x 경판정 또는 정정된 코드워드 V). 특수 층 S(106)는 일부 실시예에서 두 가지 목적으로 사용된다. 본 명세서에서 내부 레벨이라고 지칭되는 두 가지 목적 중 하나의 목적에 있어서, 특수 층 S(106)는 부분-행렬 H0(104) 만을 이용하여 계산된 신드롬이 0이지만 순환 중복 검사(cyclic redundancy check (CRC))와 같이 이것으로 제한되지 않는 다른 테스트는 그 데이터가 오정정되었고 경판정이 오류를 포함하고 있다고 지적할 때 풀(full) H 행렬(102)에 기초한 추가의 저밀도 패리티 검사 디코딩을 수행하는데 사용된다. 본 명세서에서 외부 레벨이라 지칭되는 두 가지 목적 중 다른 목적에 있어서, 특수 층 S(106)는 저밀도 패리티 검사 인코더에서 해시 값을 계산하는데 사용되기도 하여, 저밀도 패리티 검사 디코더에서 해시 값을 검사하고 그 해시 값에 기초하여 적은 코드워드를 이용하여 오정정 코드워드를 정정하려 시도한다. 해시 값은 오정정된 코드워드에 추가되어 이를 정정할 수 있는 작은 사전계산된 코드워드 또는 부분-코드워드를 식별하는데 사용된다. 다른 실시예에서, 특수 층 S(106)는 두가지 목적 중 단 하나의 목적을 위해서만 사용된다.
오정정 처리의 내부 레벨에서, 저밀도 패리티 검사 디코딩은 초기에 특수 층 S(106)를 디스에이블 또는 사용하지 못하게 한 채로 부분-행렬 H0(104)를 이용하여 수행된다. 데이터가 수렴했고 디코딩이 끝났다고 저밀도 패리티 검사 디코더가 판단했지만 다른 테스트는 그 데이터가 오정정되었음을 의미하는, 신드롬이 제로이면, 부분-행렬 H0(104) 및 특수 층 S(106)를 포함하는 풀 H 행렬(102)을 이용하여 저밀도 패리티 검사 디코딩이 반복된다. 특히, 풀 H 행렬(102)의 풀 신드롬은 신드롬 및 해시의 연속(concatenation)이다. 일부 실시예에서, 오정정은 저밀도 패리티 검사 디코딩이 신드롬=0 라고 완료한 이후 해시 값을 계산함으로써 검출되며, 만일 해시 값이 0가 아니라면, 오정정이 일어난 것이다. 일부 실시예에서, 오정정 검출은 해시 값이 0인 경우에, 디코딩되는 데이터 내의 사용자 또는 컨트롤러 비트에 포함된 외부의 순환 중복 검사 비트를 이용하여, 순환 중복 검사 테스트를 수행하는 것을 또한 포함한다. 본 명세서에서 제공된 개시 내용에 근거하여, 본 기술에서 통상의 지식을 가진 자들이라면 본 발명의 여러 실시예에 관련하여 사용될 수도 있는 다른 오정정 검출 기술을 인식할 것이다. 만일, 풀 H 행렬(102)을 이용한 저밀도 패리티 검사 디코딩을 반복한 후에도 여전히 해시, 외부 순환 중복 검사 또는 다른 데이터 통합 테스트를 통해 오정정을 표시하고 있다면, 일부 실시예에서 제어는 오정정 처리의 외부 레벨로 넘어간다.
오정정 처리의 외부 레벨에서, 주어진 해시 값의 경우, 적은 코드워드가 룩업 테이블로부터 검색되거나 또는 해시 값에 기초하여 획득된다. 각각의 해시 값은 제로인 하나 이상의 적은 코드워드를 검색할 수 있다. 해시 값이 0인 하나 이상의 코드워드가 검색되기도 할 수 있는데, 이것은 해시 값이 0임에도 불구하고 외부의 순환 중복 검사 또는 다른 데이터 통합 테스트를 이용하여 오정정이 검출될 때 일어날 수 있다. 적은 코드워드는 부분-행렬 H0(104)에 대해 사전 계산된다. 각각의 검색된 적은 코드워드는 저밀도 패리티 검사 디코딩에 의해 생성된 오정정된 코드워드에 적용되어 이러한 적용에 의해 오정정된 코드워드가 정정되는지를 판단한다. 일부 실시예에서, 각각의 적은 코드워드는 배타적-논리합(XOR) 연산을 이용하여 오정정된 코드워드와 조합된다. 만일 결과 코드워드의 신드롬이 0 이면, 결과 코드워드는 정정된 코드워드이다. 선형 특성을 만족하는 해시를 이용함으로써, 해시 값 및 적은 코드워드는 오정정된 디코딩된 코드워드를 편집하고 정정하는데 사용될 수 있다. 선형 특성은 어떤 이진 벡터(A 및 B)라도 HASH (A XOR B) = HASH(A) XOR HASH(B)를 만족한다. 특히, 코드워드(A)를 디코딩하면, 적은 코드워드(B)는 동일한 해시 값을 갖게 되며, 코드워드(A)와 코드워드(B)를 XOR하면 HASH=0라는 결과를 가져오며, 이것은 적은 코드워드를 오정정된 코드워드에 적용한 결과가 풀 H 행렬(102)의 코드워드이며 정정하기 전과 마찬가지인 부분-행렬 H0(104)의 코드워드는 아니라는 것을 의미하는데, 왜냐 하면 HASH(A)=HASH(B) 이면, HASH(A) XOR HASH(B)=0 이기 때문이다. 해시 값이 선형 특성을 갖지 않는 실시예에서, 매 적은 코드워드마다 테스트되며 순화 중복 검사는 정정된 코드워드에 대해 재계산된다. 오정정 처리의 외부 레벨은 그 오정정이 낮은 비중(low-weight)의 코드워드 - 그 비중은 저밀도 패리티 검사 코드의 최소 거리에 가까움 - 에 말미암은 것이며, 그러한 저비중의 코드워드의 리스트는 이용가능하며 또한 오정정 처리기능을 갖는 저밀도 패리티 검사 디코더에서 관리 가능한 크기라는 가정에 근거한다.
다시 말해서, 적은 코드워드는 부분-행렬 H0(104)에 대해 사전계산된다. 디자인 시점에서 부분-행렬 H0(104)를 생성할 때, 적은 코드워드 또한 자기의 해시 값과 함께 생성된다. 해시 값과 적은 코드워드와의 쌍은 룩업 테이블에 저장되거나 그렇지 않으면 저밀도 패리티 검사 디코더에 이용가능해진다. 일부 실시예에서, 디자인 시점을 선택하여 저밀도 패리티 검사 디코딩 동안 검색 및 사용을 위해 적은 코드워드를 이용할 수 있게 하려는 것은 적어도 부분적으로는 저밀도 패리티 검사 디코더에 대해 무수히 많은 디자인 시뮬레이션을 하는 동안 오정정을 일으키는 그러한 적은 코드워드를 찾아내는데에서 근거한다. 적은 코드워드는 이것으로 제한되지 않지만 저밀도 패리티 검사 디코더에 의해 액세스 가능한 메모리 내 룩업 테이블을 포함하는, 어떠한 적절한 방식으로도 저밀도 패리티 검사 디코더에 이용가능하게 만들어질 수 있다. 본 명세서에서 제공된 개시 내용에 기초하여, 본 기술에서 통상의 지식을 가진 자들이라면 적은 코드워드와 해시의 쌍은 본 발명의 여러 실시예에 관련하여 사용될 수도 있는 저밀도 패리티 검사 디코더에 이용가능하게 만들어질 수 있는 다른 방식을 인식할 것이다.
의사 순회 패리티 검사 행렬을 이용하는 일부 실시예에서, 코드워드는 순환적으로 동등한 워드의 부류로 분할된다. 특수 층 S가 동일한 순환 구조를 가지며 그의 높이가 순환의 크기를 나누는 실시예에서, 다른 말로 하자면, 해시 비트 길이가 순환크기를 나누는 실시예에서, 룩업 테이블은 동일 코드워드의 각 부류마다 단 하나의 해시 값만을 가지고 있고, 그래서 해시와 적은 코드워드의 쌍의 크기가 상당히 줄어든다. 비-이진의 저밀도 패리티 검사 의사-순회 행렬을 이용한 실시예에서, 저장된 쌍의 개수는 코드워드 마다 다양한 갈로아 필드를 고려하여 유사한 방식으로 줄일 수 있다. 코드워드가 변환되는 의사-순회 또는 등가의 갈로아 필드를 이용한 실시예에서, 해시 값은 등갖거으로 변환된다. 그래서, 등가의 코드워드의 경우, 해시 값은 재계산되지 않으며, 오히려 해시 값은 동일 부류로부터 코드워드를 이미 계산한 공지의 해시 값의 단순 의사-순환 변환 및/또는 갈로아 필드 곱셈에 의해 취득된다. 이것은 저장된 쌍의 개수를 상당히 줄일 수 있다. 저장된 쌍의 고유성을 보존하기 위하여, 일부 실시예에서, 동일 부류에 속한 모든 동일 코드워드들 중 최저 해시 값이 전체 동일 부류의 대표로서 룩업 테이블에서 사용된다.
해시 값은 특수 층 S(106)에 기초하여 계산되며 여분의 패리티 비트로서 디코딩되는 데이터 내에 포함된다. 일부 실시예에서, 해시 값은 저밀도 패리티 검사 디코더에서 신드롬과 동일한 방식으로 계산되는데, 이 경우 신드롬은 특수 층 S(106)을 제외하고 부분-행렬 H0(104)에 기초하여 계산되며, 해시 값은 부분-행렬 H0(104)를 제외하고 특수 층 S(106)에 기초하여 계산된다. 그러므로 해시는 특수 층 S(106)을 특수 층 S으로 곱한 경판정 결과로서 계산된다. (해시=특수 층 S x 경판정 또는 특수 층 S에 대해 수정된 코드워드.) 저밀도 패리티 검사 인코딩은 풀 H 행렬(102)에 대응하는 생성 행렬 G(100)에 기초하여 수행된다. 그러므로 해시 값은 특수 층 S(106)과 연관된 여분의 패리티 비트에 대응한다. 오히려 특수 층 S(106)를 갖는 패리티 비트의 개수가 늘어나는 일부의 다른 실시예에서, 인코더로부터 생성되고 디코더로 전송된 규칙적인 채널 순환 중복 검사 데이터의 양이 줄어든다.
사전 선택된 특수 층 S(106)이 주어지면, 생성된 각각의 적은 코드워드 C 마다 해시 값 S*C 가 계산된다. 전형적으로 오정정은 적은 코드워드 또는 전체 코드워드의 부분으로 인해 발생하기 때문에, 디코딩 시의 오정정은 정확한 코드워드 D를 산출하지 못하고, 일부의 적은 코드워드 C에 대해 D XOR C와 같은 오정정된 코드워드 E를 산출한다. 적은 코드워드 C를 해시 값을 이용하여 룩업 테이블로부터 검색하고 정정의 E XOR C = D XOR C XOR C = D 를 적용함으로써, 정확한 코드워드 D가 취득된다.
오정정 처리의 내부 레벨 및 외부 레벨이 수행된 후, 오정정 처리의 외부 레벨로부터 정정된 코드워드에 대해, 이것으로 제한되지 않지만, 외부 순환 중복 검사 테스트와 같은 추가의 테스트가 수행될 수 있으며, 만일 정정된 코드워드가 여전히 정정되지 않으면, 부가적인 정정 기술이 시행될 수 있다.
도 2 내지 도 4를 참조하면, 본 발명의 여러 실시예에 따른 데이터 처리 시스템이 도시된다. 본 발명의 실시예에 따라서 오정정 처리 기능을 갖는 저밀도 패리티 검사 디코더를 포함하는, 인코딩 시스템 및 디코딩 시스템을 갖는 데이터 처리 시스템은 도 2에 도시된다. 데이터 처리 시스템은 사용자 데이터 비트(202)를 처리하고, 이를 스토리지에 저장 또는 전송 채널(208)을 통해 전송하며, 오류를 도입하지 않고 사용자 데이터 비트(214)를 검색하는데 사용된다. 저장 또는 전송될 사용자 데이터(202)는 오정정 지원 기능을 가진 저밀도 패리티 검사 인코더를 갖는 인코딩 시스템(204)에 의해 수신된다. 오정정 지원 기능을 가진 저밀도 패리티 검사 인코더를 갖는 인코딩 시스템(204)은 패리티 검사 H 행렬의 특수 층 S의 해시 값을 계산하는 것을 포함하여, 생성 G 행렬에 기초하여 저밀도 패리티 검사 인코더에서 사용자 데이터(202)를 인코딩한다. 오정정 지원 기능을 가진 저밀도 패리티 검사 인코더를 갖는 인코딩 시스템(204)은 여분의 패리티 비트로서 포함된 해시 값을 이용하여 인코딩된 데이터(206)를 산출한다. 인코딩된 데이터(206)는 이것으로 제한되지 않지만 자기 하드 드라이브 또는 무선 라디오 신호와 같은 스토리지/전송 채널(208)에 저장 또는 전송된다. 인코딩된 데이터(210)는 스토리지/전송 채널(208)로부터 검색되고 오정정 처리 기능을 가진 저밀도 패리티 검사 디코더를 갖는 디코딩 시스템(212)에 의해 디코딩된다. 오정정 처리 기능을 가진 저밀도 패리티 검사 디코더를 갖는 디코딩 시스템(212)은 저밀도 패리티 검사 디코딩 알고리즘을 검색된 인코딩된 데이터(210)에 적용한다. 만일 데이터가 수렴하고 신드롬이 0이면, 아직도 다른 테스트는 오정정을 표시하며, 오정정 처리 기능을 가진 저밀도 패리티 검사 디코더를 갖는 디코딩 시스템(212)은 오정정 처리의 내부 레벨 및 외부 레벨 중 어느 하나 또는 둘 다를 적용하여 디코딩된 사용자 데이터 비트(214)를 산출한다.
도 3을 참조하면, 본 발명의 하나 이상의 실시예에 따라서 도 2의 오정정 지원 기능을 가진 저밀도 패리티 검사 인코더를 갖는 인코딩 시스템(204)을 대신한 것으로, 일부 실시예에서 사용하기에 적합한 오정정 지원 기능을 가진 저밀도 패리티 검사 인코더를 갖는 인코딩 시스템(304)이 도시된다. 사용자 데이터(302)는 사용자 데이터(302)에 사용할 순환 중복 검사 비트(318)를 생성하는 채널 순환 중복 검사 인코더(316)에 의해 처리된다. 순환 중복 검사 비트(318)는 멀티플렉서(320)에 의해 또는 어느 다른 적절한 방식으로 사용자 데이터(302)에 추가되어, 채널 중복 순환 검사 비트를 갖는 사용자 데이터(322)를 산출한다. 채널 중복 순환 검사 비트를 갖는 사용자 데이터(322)는 일부 실시예에서 패턴 제한 인코더(324)에 의해 인코딩되어, 오류를 줄이도록 채널 중복 순환 검사 비트를 갖는 사용자 데이터(322)를 저장 또는 전송하기 위해 준비한다. 패턴 제한 인코더(324)는 이것으로 제한되지 않지만 최대 천이 런(maximum transition run (MTR)), 런 길이 제한(run length limiting (RLL)) 또는 다른 제한과 같은 패턴 제한을 적용할 수 있다. 본 명세서에서 개시된 개시 내용에 기초하여, 본 기술에서 통상의 지식을 가진 자들이라면 본 발명의 여러 실시예에 관련하여 사용될 수 있는 각종 패턴 제한 인코더를 인식할 것이다.
패턴 제한 인코더(324)로부터의 인코딩된 사용자 비트(326)는 오정정 지원 기능을 갖는 저밀도 패리티 검사 디코더(330)에서 인코딩된다. 오정정 지원 기능을 갖는 저밀도 패리티 검사 디코더(330)는 생성 행렬 G의 해시 값을 계산하고 이를 특수 층 S의 여분의 패리티 비트로서 포함시키는 것을 포함하여, 부분 행렬 H0 및 특수 층 S을 가진 H 행렬에 대응하는 생성 행렬 G에 기초하여 저밀도 패리티 검사 인코딩 알고리즘을 적용한다. 일부 실시예에서, 해시 값은 순환 중복 검사 알고리즘을 이용하여 오정정 지원 기능을 갖는 저밀도 패리티 검사 디코더(330)에서 계산된다. 오정정 지원 기능을 갖는 저밀도 패리티 검사 디코더(330)는 데이터 필드(332) 및 패리티 필드(334)를 패리티 삽입 회로(338)에 제공하며, 이 회로는 생성 행렬 G에 따라서 패리티 필드(334)로부터의 패리티 비트를 데이터 필드(332)로부터의 데이터 비트에 삽입하여 인코딩된 데이터(306)를 산출한다.
패턴 제한 인코더(324_에서 패턴 제한 인코딩한 후 해시 값을 계산함으로써, 사용자 데이터(306)는 패턴 제한을 위반할 수 있다. 그러나, 해시는 오정정된 코드워드를 정정하기 위해 적은 코드워드를 검색하여 사용할 수 있도록 오정정 처리의 외부 레벨에서 사용될 선형 특성 해시를 복원한다. 그러므로 해시 값은 이것으로 제한되지 않지만 패턴 제한 인코딩을 받지 않는 24 또는 32 해시 비트와 같은 소수개의 비트를 포함할 수 있지만, 이것은 저밀도 패리티 검사 디코더가 오정정된 코드워드를 정정하기 위해 적은 코드워드를 모두 테스트할 필요가 없다는 것을 포함하는, 선행 특성 해시의 이득을 제공한다. 만일 CRC-32 알고리즘과 같은 정규적인 순환 중복 검사가 수행되어 여분의 32 비트를 사용자 데이터에 삽입함으로써 사용자 비트를 확장한 다음 패턴 제한 인코딩을 수행한다면, 선형성의 특성은 부가 비트가 패턴 제한 인코더(324)를 통과할 때 손실되었을 것이다. 해시 값이 선형성의 특성을 보유할 때, 코드워드는 편집되는 워드에 대해 순환 중복 검사 값의 재계산에 비용을 들이지 않고, 이들의 해시 값 또는 순환 중복 검사 값에 의해서만 편집될 수 있다.
도 4를 참조하면, 본 발명의 하나 이상의 실시예에 따라서 오정정 처리 기능을 가진 저밀도 패리티 검사 디코더를 포함하는 디코딩 시스템(412)이 도시된다. 디코딩 시스템(412)은 아날로그 인코딩된 데이터(410)를 수신하는 아날로그 프론트 엔드 회로(440)를 포함하며, 여기서 아날로그 신호는 저장 장치 또는 전송 매체로부터 검색되는 그대로의 인코딩된 데이터(306)에 대응한다. 아날로그 프론트 엔드 회로(440)는 아날로그 인코딩된 데이터(410)를 처리하며 처리된 아날로그 신호를 아날로그-디지털 변환기 회로(442)에 제공한다. 아날로그-디지털 변환기 회로(442)는 본 기술에서 공지된 바와 같은 아날로그 필터 및 증폭기 회로를 포함할 수 있지만, 이것으로 제한되지 않는다. 본 명세서에서 제공된 개시 내용에 기초하여, 본 기술에서 통상의 지식을 가진 자들이라면 아날로그 프론트 엔드 회로(440)의 일부로서 포함될 수 있는 각종 회로를 인식할 것이다. 일부 실시예에서, 아날로그 인코딩된 데이터는 저장 매체(도시되지 않음)에 관련하여 배치된 판독/기록 헤드 어셈블리(도시되지 않음)로부터 도출된다. 다른 실시예에서, 아날로그 인코딩된 데이터(410)는 전송 매체(도시되지 않음)로부터 신호를 수신하도록 동작할 수 있는 수신기 회로(도시되지 않음)로부터 도출된다. 전송 매체는 유선 또는 무선일 수 있다. 본 명세서에서 제공된 개시 내용에 기초하여, 본 기술에서 통상의 지식을 가진 자들이라면 아날로그 인코딩된 데이터(410)가 도출될 수 있는 각종 소스를 인식할 것이다.
아날로그-디지털 변환기 회로(442)는 처리된 아날로그 신호를 대응하는 일련의 디지털 샘플로 변환한다. 아날로그-디지털 변환기 회로(442)는 아날로그 입력 신호에 대응하는 디지털 샘플을 생성할 수 있는 본 기술에서 공지된 모든 회로일 수 있다. 본 명세서에서 제공된 개시 내용에 기초하여, 본 기술에서 통상의 지식을 가진 자들이라면 본 발명의 여러 실시예에 관련하여 사용될 수 있는 각종 아날로그-디지털 변환기 회로를 인식할 것이다. 디지털 샘플은 등화기 회로(444)에 제공된다. 등화기 회로(444)는 등화 알고리즘을 디지털 샘플에 적용하여 등화된 출력을 산출한다. 본 발명의 일부 실시예에서, 등화기 회로(444)는 본 기술에서 공지된 바와 같은 디지털 유한 임펄스 응답 필터 회로이다. 일부 예에서, 등화기 회로(444)는 데이터 검출기 회로(446)가 처리를 위해 이용가능해질 때까지 그리고 데이터 검출기 회로(446)를 통해 다중 처리가 가능해질 때까지 하나 이상의 코드워드를 유지시키기에 충분한 메모리를 포함한다.
데이터 검출기 회로(446)는 데이터 검출 알고리즘을 수신된 코드워드 또는 데이터 세트에 적용하도록 동작가능하며, 일부 예에서, 데이터 검출기 회로(446)는 둘 이상의 코드워드를 병렬로 처리할 수 있다. 본 발명의 일부 실시예에서, 데이터 검출기 회로(446)는 본 기술에서 공지된 바와 같은 비터비 알고리즘 데이터 회로이다. 본 발명의 다른 실시예에서, 데이터 검출기 회로(446)는 본 기술에서 공지된 바와 같은 최대 사후 데이터 검출기 회로(maximum a posteriori data detector circuit)이다. 특히, 일반적인 구문 "비터비 데이터 검출 알고리즘" 또는 "비터비 알고리즘 데이터 검출기 회로"는 이들의 넓은 의미에서 모든 비터비 검출 알고리즘 또는 비터비 알고리즘 검출기 회로, 또는 이것으로 제한되지 않지만, 양방향 비터비 검출 알고리즘 또는 양방향 비터비 알고리즘 검출기 회로를 비롯한 이들의 변형예를 의미하는 것으로 사용된다. 또한, 일반적인 구문 "최대 사후 데이터 검출 알고리즘" 또는 "최대 사후 데이터 검출기 회로"는 이들의 넓은 의미에서 모든 최대 사후 검출 알고리즘 또는 검출기 회로 또는 이것으로 제한되지 않지만, 단순화한 최대 사후 데이터 검출 알고리즘(simplified maximum a posteriori data detection algorithm) 및 맥스-로그 최대 사후 데이터 검출 알고리즘(max-log maximum a posteriori data detection algorithm) 또는 대응하는 검출기 회로를 비롯한 이들의 변형예를 의미하는 것으로 사용된다. 본 명세서에서 제공된 개시 내용에 기초하여, 본 기술에서 통상의 지식을 가진 자들이라면 본 발명의 여러 실시예들과 관련하여 사용될 수 있는 각종 데이터 검출기 회로를 인식할 것이다. 데이터 검출기 회로(446)는 등화기 회로(444) 또는 중앙 메모리 회로(450)로부터의 데이터 세트의 유효성에 기초하여 시작된다.
완료 후, 데이터 검출기 회로(446)는 소프트 데이터(soft data)를 포함하는 검출기 출력을 제공한다. 본 명세서에서 사용된 바와 같이, 구문 "소프트 데이터"는 넓은 의미에서 신뢰도 데이터(reliability data)를 의미하는 것으로 사용되며, 각각의 신뢰도 데이터의 인스턴스는 대응하는 비트 위치 또는 비트 위치의 그룹이 정확하게 검출된 가능성을 나타낸다. 본 발명의 일부 실시예에서, 소프트 데이터 또는 신뢰도 데이터는 본 기술에서 공지된 바와 같은 로그 우도비(log likelihood ratio)이다. 검출된 출력은 로컬 인터리버 회로(448)에 제공된다. 로컬 인터리버 회로(448)는 검출된 출력으로서 포함된 데이터 세트의 서브-포션(sub-portion) (즉, 로컬 청크(local chunk))를 셔플(shuffle)하도록 동작할 수 있으며 저장된 인터리브된 코드워드를 중앙 메모리 회로(450)에 제공한다. 로컬 인터리버 회로(448)는 데이터 세트를 셔플하여 재배열된 데이터 세트를 산출할 수 있는 본 기술에서 공지된 바와 같은 모든 회로일 수 있다.
일단 오정정 처리 기능을 갖는 저밀도 패리티 검사 디코더(454)가 이용가능하면, 이전에 저장된 인터리브된 코드워드는 중앙 메모리 회로(450)로부터 저장된 코드워드로서 액세스되며 글로벌 인터리버/디인터리버 회로(452)에 의해 전역적으로 인터리브된다. 글로벌 인터리버/디인터리버 회로(452)는 전역적으로 코드워드를 재배열할 수 있는 본 기술에서 공지된 바와 같은 모든 회로일 수 있다. 글로벌 인터리버/디인터리버 회로(452)는 디코더 입력을 오정정 처리 기능을 갖는 저밀도 패리티 검사 디코더(454)에 제공한다.
오정정 처리 기능을 갖는 저밀도 패리티 검사 디코더(454)는 저밀도 패리티 검사 디코딩 알고리즘을 디코더 입력에 인가하여 디코딩된 출력(460)을 산출한다. 만일 데이터가 오정정 처리 기능을 갖는 저밀도 패리티 검사 디코더(454)에서 수렴하여 0의 신드롬을 생성하면, 오정정 처리 기능을 갖는 저밀도 패리티 검사 디코더(454)에서 그 결과 코드워드에 대해 한번 이상의 오정정 테스트가 수행되어 그 코드워드가 오정정인지를 판단한다. 만일 오정정이 검출되면, 오정정 처리 기능을 갖는 저밀도 패리티 검사 디코더(454)는 한번 이상의 오정정 처리의 내부 레벨 및 외부 레벨을 수행하여 디코딩된 출력(460)이 정정되도록 한다.
오정정 처리의 내부 레벨에서, 특수 층 S(462)는 풀 H 행렬(102)에 기초한 여분의 저밀도 패리티 검사 디코딩을 수행하기 위해 사용된다. 다시 말해서, 저밀도 패리티 검사 디코딩 알고리즘은 부분 행렬 H0에 대해서만 수행하기 보다는 풀 H 행렬(102)에 대해 수행되어 디코딩된 출력(460)이 풀 행렬(102)에 기초한 코드워드가 되도록 한다.
오정정 처리의 외부 레벨에서, 특수 층 S에 기초하여 계산된 해시 값은 메인 저밀도 패리티 검사 디코딩으로부터의 코드워드와 조합되는 대응하는 적은 코드워드를 룩업하는데 사용된다. 그래서, 디코딩된 출력(460)에 포함된 코드워드는 룩업 테이블로부터의 적은 코드워드와 조합되거나 또는 적은 코드워드의 리스트(464)와 조합된다. 디코딩된 출력(460)에 포함된 코드워드 또는 정정된 코드워드는 경판정 큐(466)에 저장된다. 특히, 비록 오정정 처리의 내부 레벨 및 외부 레벨의 동작을 예시하기 위해 특수 층 S(462) 및 소소드의 리스트(464)가 오정정 처리 기능을 갖는 저밀도 패리티 검사 디코더(454)의 외부에 있는 것으로 도시되었을지라도, 일부 실시예에서, 오정정 처리의 두 가지 레벨은 내부적으로 오정정 처리 기능을 갖는 저밀도 패리티 검사 디코더(454) 내에서 수행된다.
경판정 큐(466)에 포함된 코드워드는 패리티 비트를 제거하는 패리티 제거 회로(468)에 의해 처리되어, 패턴 제한 디코더(470)에서 디코딩된 데이터 비트를 산출한다. 패턴 제한 디코더(470)는 인코딩 시스템(304) 내 패턴 제한 인코더(324)에 의해 수행된 인코딩을 반대로 수행한다. 그 결과로 디코딩된 비트에 대해 채널 순환 중복 검사(472)가 수행된다. 오류가 검출되면, 순환 중복 검사 정정을 위한 적은 코드워드의 리스트(474)를 이용하여 경판정 큐(466)에 저장된 코드워드가 정정된다. 다른 실시예에서, 채널 순환 중복 검사(472)의 대신 다른 외부의 데이터 검사 및 정정 기술이 적용될 수 있다. 본 명세서에서 제공된 개시 내용에 기초하여, 본 기술에서 통상의 지식을 가진 자들이라면 본 발명의 여러 실시예에 관련하여 사용될 수 있는 각종 데이터 통합 검사 및 정정 알고리즘을 인식할 것이다. 일단 채널 순환 중복 검사(472)가 만족되면, 디코딩된 사용자 데이터(414)는 디코딩 시스템(412)으로부터 출력된다.
오정정 처리 기능을 갖는 저밀도 패리티 검사 디코더(454)에 의해 적용된 바와 같은 데이터 디코딩 알고리즘이 수렴하지 못하고 더 이상의 일부 반복(오정정 처리 기능을 갖는 저밀도 패리티 검사 디코더(454)를 통한 반복)이 허용되지 않은 경우, 오정정 처리 기능을 갖는 저밀도 패리티 검사 디코더(454)로부터 출력된 소프트 디코더가 글로벌 인터리버/디인터리버 회로(452)를 경유하여 다시 중앙 메모리 회로(450)으로 전달된다. 소프트 디코딩된 출력이 중앙 메모리 회로(450)에 저장되기 전에, 소프트 디코딩된 출력은 전역적으로 디인터리브되어 중앙 메모리 회로(450)에 저장된 전역적으로 디인터리브된 출력을 산출하게 된다. 저장된 코드워드에 초기에 적용된 글로벌 인터리빙의 반대로 글로벌 디인터리빙이 수행되어 디코더 입력을 산출한다. 일단 데이터 검출기 회로(446)가 이용가능하면, 이전에 저장된 디인터리브된 출력은 중앙 메모리 회로(450)로부터 액세스되며 국부적으로 로컬 디인터리버 회로(456)에 의해 디인터리브된다. 로컬 디인터리버 회로(456)는 소프트 디코더 출력을 재배열하여 로컬 인터리버 회로(448)에 의해 원래 수행된 셔플링을 반대로 한다. 그 결과적인 디인터리브된 출력은 데이터 검출기 회로(446)에 제공되고, 이 회로에서 그 출력은 등화기 회로(444)로부터 등화된 출력으로서 수신된 대응하는 데이터 세트의 후속 검출을 유도하는데 사용된다.
도 5를 참조하면, 본 발명의 일부 실시예에 따라서 오정정 처리 기능을 갖는 저밀도 패리티 검사 디코더(500)가 도시된다. 오정정 처리 기능을 갖는 저밀도 패리티 검사 디코더(500)는 패리티 검사 계산 또는 메시지 생성 기술에 필요한 어느 특정한 알고리즘으로 제한되지 않는다. 오정정 처리 기능을 갖는 저밀도 패리티 검사 디코더(500)에서, 데이터 비트 또는 심볼은 디코딩될 때 변수 노드에 저장되며, 다수의 검사 노드에서 패리티 검사가 수행된다. 변수 노드들과 검사 노드들 간의 연결 (또는 에지)는 저밀도 패리티 검사 코드가 설계될 때 선택된다. H 행렬 내 논-제로 요소는 변수 노드 및 검사 노드 사이의 연결을 나타내며, 여기서 열(column)은 변수 노드를 나타내고, 행(row)은 검사 노드를 나타내며, 비-이진 디코더의 경우, 변수 노드 열과 검사 노드 행의 교점에서 갈로아 필드로부터의 랜덤 논-제로 요소는 변수 노드와 검사 노드 간의 연결을 나타내며 그 변수 노드와 검사 노드 사이에서 메시지의 치환을 제공한다. 메시지는 반복 프로세스에서 연결된 변수 노드와 검사 노드 사이에서 전달되어, 변수 노드에서 나타나야 하는 값에 관한 신념을 연결된 검사 노드에 전달한다. 패리티 검사는 메시지에 기초하여 검사 노드에서 수행되며 그 결과는 연결된 변수 노드에 리턴되어 필요하다면 신념을 갱신한다. 비-이진 저밀도 패리티 검사 디코더에서 메시지는 다차원 벡터이며, 이는 일반적으로 단순-우도 확률(plain likelihood probability) 벡터 또는 로그 우도비 벡터이다.
오정정 처리 기능을 갖는 저밀도 패리티 검사 디코더(500)로의 입력 데이터(502)는 메모리(504)에 저장된다. 입력 데이터(502)는 변수 노드 값 확률을 나타내는 소프트 값을 포함한다. 메모리(504)로부터의 확률 값(506)은 변수 노드 프로세서(510)에 제공되며, 변수 노드 프로세서는 각각의 비트 또는 심볼의 감지된 값의 확률 값을 가지고 있는 검사 노드행 변수 노드 메시지(variable node to check node messages)(520)를 생성한다. 검사 노드 프로세서(522)는 검사 노드행 변수 노드 메시지(520)를 수신하며 연결된 변수 노드로부터의 메시지에 기초하여 각각의 검사 노드에 대해 패리티 검사 계산을 수행한다. 검사 노드 프로세서(522)는 또한 변수 노드행 검사 노드 메시지(check node to variable node messages)(524)를 생성하여, 변수 노드 프로세서(510)가 연결된 검사 노드로부터의 변수 노드행 검사 노드 메시지에 기초하여 각각의 변수 노드(524) 마다 인식된 값을 업데이트할 수 있게 한다.
민섬(min-sum) 기초 저밀도 패리티 검사 디코더에서, 검사 노드 프로세서(522)는 최저 (또는 최소) 로우 우도비 값을 선택하고 이를 다시 부호 조정된 연결된 변수 노드에 공급한다. 업데이트된 변수 노드 값은 또한 가변 노드 프로세서(510) 또는 검사 노드 프로세서(522), 또는 이들 둘 다에 의해 일부 디코딩 반복 동안 메모리(504)에서 업데이트될 수 있다. 가변 노드 프로세서(510)로부터 확률 값(512)은 또한 경판정 출력(516)을 생성하는 경판정 출력 회로(514)에 제공될 수 있다.
오정정 처리 기능을 갖는 저밀도 패리티 검사 디코더(500) 내 스케줄러/오정정 처리 회로(530)는 오정정 처리 기능을 갖는 저밀도 패리티 검사 디코더(500)에서 H 행렬의 처리, 이를 테면, 이것으로 제한되지 않지만, 변수 노드행 검사 노드 메시지 및 검사 노드행 변수 노드 메시지의 발생 순서를 제어하기, 패리티 검사 및 변수 노드 업데이트하기, 및 초기에 가변 노드 프로세서(510) 및 검사 노드 프로세서(522)가 부분 행렬 H0만을 이용하여 입력 데이터(502)를 디코딩하게 만들기와 같은 처리를 제어한다. 스케줄러/오정정 처리 회로(530)는 또한 오정정 처리를 구현하기도 한다.
신드롬 및 해시 계산 회로(532)는 패리티 검사 행렬 H0를 위한 저밀도 패리티 검사 디코딩의 경판정 결과 V에 부분 행렬 H0를 곱함으로써 신드롬을 계산하며, 특수 층 S를 위한 저밀도 패리티 검사 디코딩의 경판정 결과에 특수 층 S을 곱함으로써 해시 값을 계산한다. 그러므로, 해시 값은 특수 층 S(106)을 제외하고 부분-행렬 H0(104)에 기초하여 신드롬을 계산하며, 부분-행렬 H0(104)를 제외하고 특수 층 S(106)에 기초하여 해시 값을 계산하는 신드롬과 동일한 방식으로 계산된다. 신드롬/해시 계산 회로(532)는 독립적 회로로서 또는 신드롬 및 해시 계산 회로를 포함하는 조합 회로로서 구현될 수 있다.
부분 행렬 H0만을 이용하여 입력 데이터(502)를 초기 디코딩한 후, 신드롬/해시 계산 회로(532)에 의해 계산된 신드롬이 데이터가 수렴했음을 나타내는 0이면, 신드롬/해시 계산 회로(532)는 해시를 계산하며 스케줄러/오정정 처리 회로(530)는 해시가 0인지를 판단한다. 만일 해시가 제로가 아니면, 스케줄러/오정정 처리 회로(530)는 오정정 처리의 내부 레벨을 시행하여, 가변 노드 프로세서(510) 및 검사 노드 프로세서(522)가 전체 H 행렬(102)를 이용하여 입력 데이터(502)의 디코딩을 반복하게 한다. 일부 실시예에서, 만일 초기 디코딩 후 해시가 제로이면, 순환 중복 검사 회로(536)는 인코더에 의해 사용자 비트에 포함된 외부의 순환 중복 검사 비트에 대해 순환 중복 검사를 수행하며, 만일 순환 중복 검사가 실패하면, 오정정이 확인되며 스케줄러/오정정 처리 회로(530)는 오정정 처리의 내부 레벨을 시행한다. 일부 실시예에서, 이것으로 제한되지 않지만, 타겟 심볼 플립핑(targeted symbol flipping)과 같은 다른 오류 정정 기술이 오정정 처리와 함께 조합된다.
전체 H 행렬(102)를 이용하여 입력 데이터(502)의 디코딩을 반복한 후, 신드롬이 다시 0이면, 신드롬/해시 계산 회로(532)에 의해 계산된 해시 값에 기초하여, 일부 실시예에서는 순환 중복 검사에 기초하여, 스케줄러/오정정 처리 회로(530)에 의해 오정정 테스트가 반복된다. 만일 오정정이 다시 확인되면, 스케줄러/오정정 처리 회로(530)는 해시와 연관된 적은 코드워드를 룩업하는 오정정 처리의 내부 레벨 중에 신드롬 및 해시 계산 회로(532)에 의해 계산된 해시를 이용하여, 오정정 처리의 외부 레벨을 시행한다. 만일 적은 코드워드가 발견되면, 적은 코드워드를 XOR 연산하여 오정정된 코드워드에 조합함으로써 오정정된 코드워드가 정정되어, 정정된 코드워드가 산출된다.
도 6을 참조하면, 흐름도(600)는 본 발명의 일부 실시예에 따라서 내부 레벨 오정정 처리를 위한 동작을 도시한다. 흐름도를 따라가면, 데이터 섹터가 판독된다(블록 602). 일부 실시예에서, 데이터 섹터는 자기 저장 매체에 관련하여 배치된 판독/기록 헤드 어셈블리에 의해 판독된다. 다른 실시예에서, 데이터 섹터는 전송 매체로부터 신호를 수신하도록 동작 가능한 수신기 회로로부터 도출된다. 데이터 섹터에 필요한 소프트 입력이 계산된다(블록 604). 일부 실시예에서, 이것은 비터비 검출기 또는 최대 사후 데이터 검출기 회로와 같은 데이터 검출기에 의해 수행된다. 패리티 검사 H 행렬 내 특수 층을 디스에이블한 채로 데이터 섹터 소프트 입력에 대해 저밀도 패리티 검사 디코딩이 수행된다(블록 606). 결과의 신드롬이 0인지에 관해 판단된다(블록 610). 신드롬은 특수 층을 디스에이블한 채로 저밀도 패리티 검사 디코딩의 경판정 결과에 부분 행렬 H0를 곱함으로써 계산된다. 만일 신드롬이 0이면, 결과의 해시가 0인지에 관해 판단된다(블록 612). 해시는 특수 층의 경판정 결과에 특수 층을 곱함으로써 계산된다. 만일 블록(612)에서 해시가 0로서 판단되면, 일부 실시예에서, 특수 층을 디스에이블시킨 저밀도 패리티 검사 디코딩에 의해 생성된 코드워드는 정정된 것으로 간주되며 그 코드워드의 경판정 출력이 사용된다(블록 622). 만일 블록(612)에서 해시가 0가 아닌 것으로 판단되거나 또는 블록(610)에서 신드롬이 0가 아닌 것으로 판단되면, 패리티 검사 H 행렬 내 특수 층을 인에이블한 상태에서 데이터 섹터 소프트 입력에 대해 저밀도 패리티 검사 디코딩이 반복된다(블록 614). 결과의 신드롬이 0인지에 관해 한번 더 판단된다(블록 616). 만일 부분 및 전체 디코딩 반복의 허용된 회수 이후 블록(616)에서 판단된 것으로서 신드롬이 0이 아니면, 데이터는 수렴하지 못한 것이며 후처리 정정이 수행된다(블록 624). 이러한 후처리 정정은 타겟 심볼 플립핑과 같은 어떠한 형태의 데이터 정정 또는 오류 복구 기술을 포함할 수 있다. 만일 후처리 정정이 성공하지 못하거나 유효하지 않으면, 디코딩은 실패하였다. 만일 블록(616)에서 신드롬이 0라고 판단되면, 결과의 해시가 0인지에 관해 판단된다(블록 (620). 만일 해시가 0 이면, 디코딩은 성공한 것으로 여기며 코드워드의 경판정 출력이 사용된다(블록 622). 만일 해시가 0 이 아니면, 외부 레벨 오정정 처리가 수행된다(블록 626). 다른 실시예에서, 오정정은 외부 테스트, 이를 테면 이것으로 제한되지 않지만, 해시 값 뿐만 아니라 순환 중복 검사에 기초하여 블록(612) 및 (620)에서 식별된다.
도 7을 참조하면, 흐름도(700)는 본 발명의 일부 실시예에 따라서 외부 레벨 오정정 처리를위한 동작을 도시한다. 흐름도(700)를 따라가면, 해시 값은 해시 값이 동일한 적은 코드워드를 검색하는데 사용된다(블록 702). 블록(702)은 부분 행렬 H0에 대한 적은 코드워드의 사전계산된 리스트와 함께 이들의 대응하는 해시 값을 이용하여 수행된다. 다시 말해서, 저밀도 패리티 검사 디코더에서 생성된 해시 값은 특수 층의 경판정 결과에 특수 층을 곱함으로써 계산된다. 적은 코드워드는 적은 코드워드가 이들의 대응하는 해시 값 - 패리티 검사 행렬 H의 특수 층 S의 디자인 시점에서 사전 계산됨 -과 함께 쌍을 이루어 저장된 룩업 레티블에서 검색된다. 해시 값이 일치하는 적은 코드워드가 발견되는지에 관해 판단된다(블록 704). 만일 발견되지 않으면, 어느 적은 코드워드도 유효하지 않으므로 외부 레벨 오정정 처리는 오정정된 코드워드를 정정하는데 실패했으며, 후처리 정정이 수행된다(블록 706). 그러한 후처리 정정은 타겟 심볼 플립핑과 같은 어떤 형태의 데이터 정정 또는 에러 복구 기술이라도 포함할 수 있다. 사후 처리 정정이 성공하지 못하거나 유효하지 않으면, 디코딩은 실패한 것이다.
만일 블록(704)에서 판단되는 바와 같이 저밀도 패리티 검사 디코더에서 계산된 해시 값을 이용하여 적은 코드워드가 계산되면, 적은 코드워드는 오정정된 코드워드에 적용된다(블록 708). 일부 실시예에서, 이것은 적은 코드워드를 오정정된 코드워드와 XOR 연산하여 조합함으로써 성취된다. 채널 순환 중복 검사가 재계산된다(블록 710). 채널 순환 중복 검사가 만족되는지에 관해 판단된다(블록 712). 만일 만족되면, 정정된 코드워드는 정확한 것으로 간주되며 정정된 코드워드의 경판정 출력이 사용된다(블록 714). 만일 채널 순환 중복 검사가 만족되지 않으면, 풀 행렬 H에 필요한 적은 코드워드의 리스트가 모두 시도되었는지에 관해 판단된다(블록 716). 그러하다면, 어느 적은 코드워드도 유효하지 않으므로 오정정된 코드워드를 정정하는 외부 레벨 오정정 처리는 실패하였으며, 후처리 정정이 수행된다(블록 706). 시도될 부가적인 적은 코드워드가 남아 있으면, 또 다른 적은 코드워드가 선택되고 오정정된 코드워드에 적용된다(블록 720). 채널 순환 중복 검사가 재계산되며(블록 710) 오정정된 코드워드를 정정하려는 적은 코드워드가 남아 있는 한 이 동작은 지속된다. 블록(716 및 720)은 풀 패리티 검사 행렬 H에 필요한 적은 코드워드의 사전 계산된 간결한 리스트를 이용하여 수행된다.
비록 본 명세서에서 기술된 오정정 처리 기능을 갖는 저밀도 패리티 검사 디코더가 어느 특정한 애플리케이션으로 국한되지 않을지만, 여러 애플리케이션의 예는 본 발명의 실시예로부터 이득을 받는 도 8 및 도 9에서 제공된다. 도 8을 참조하면, 저장 시스템(800)은 본 발명의 일부 실시예에 따라서 오정정 처리 기능을 갖는 저밀도 패리티 검사 디코더의 예시적인 애플리케이션으로서 도시된다. 저장 시스템(800)은, 예를 들면, 하드 디스크 드라이브일 수 있다. 저장 시스템(800)은 또한 전치 증폭기(804), 인터페이스 컨트롤러(806), 하드 디스크 컨트롤러(810), 모터 컨트롤러(812), 스핀들 모터(814), 디스크 플래터(816), 및 판독/기록 헤드 어셈블리(820)를 포함한다. 인터페이스 컨트롤러(806)는 디스크 플래터(816)로/로부터 데이터의 어드레싱 및 타이밍을 제어한다. 디스크 플래터(816) 상의 데이터는 판독/기록 헤드 어셈블리(820)가 적절하게 디스크 플래터(816) 위쪽으로 배치될 때 이 어셈블리에 의해 검출될 수 있는 자기 신호들의 그룹으로 이루어진다. 일 실시예에서, 디스크 플래터(816)는 종방향 또는 수직 기록 방식에 따라서 기록된 자기 신호를 포함한다.
전형적인 판독 동작에서, 판독/기록 헤드 어셈블리(820)는 모터 컨트롤러(812)에 의해 디스크 플래터(816) 상의 원하는 데이터 트랙의 위로 정확하게 배치된다. 모터 컨트롤러(812)는 하드 디스크 컨트롤러(810)의 지시 하에 판독/기록 헤드 어셈블리(820)를 디스크 플래터(816)에 관련하여 위치시키며, 판독/기록 헤드 어셈블리(820)를 디스크 플래터(816) 상의 적절한 데이터 트랙으로 이동시킴으로써 스핀들 모터(814)를 구동한다. 스핀들 모터(814)는 디스크 플래터(816)를 기 설정된 스핀 속도(RPMs)로 회전시킨다. 일단 디스크 플래터(816)가 적절한 데이터 트랙에 근접하게 배치되면, 스핀들 모터(814)에 의해 디스크 플래터(816)가 회전됨에 따라 디스크 플래터(816) 상의 데이터를 나타내는 자기 신호가 판독/기록 헤드 어셈블리(820)에 의해 감지된다. 감지된 자기 신호는 디스크 플래터(816) 상의 자기 데이터를 나타내는 연속적이고 미세한 아날로그 신호로서 제공된다. 이러한 미세한 아날로그 신호는 판독/기록 헤드 어셈블리(820)로부터 전치증폭기(804)를 통해 판독 채널 회로(802)로 전달된다. 전치 증폭기(804)는 디스크 플래터(816)로부터 액세스된 미세한 아날로그 신호를 증폭하도록 동작 가능하다. 그 다음에, 판독 채널 회로(802)는 수신된 아날로그 신호를 디코딩하고 디지털화하여 디스크 플래터(816)에 원래 기록되어 있던 정보를 재생한다. 이 데이터는 판독 데이터(822)로서 수신 회로에 제공된다. 수신된 정보를 처리하는 것의 일부로서, 판독 채널 회로(802)는 오정정 처리 기능을 갖는 저밀도 패리티 검사 디코더를 이용하여 수신된 신호에 대해 데이터 디코딩 처리를 수행한다. 이러한 오정정 처리 기능을 갖는 저밀도 패리티 검사 디코더는 도 1 내지 도 5와 관련하여 전술한 개시 내용과 일관되게 구현될 수 있다. 몇몇 경우에 있어서, 오정정 처리를 하는 데이터 디코딩은 도 6 내지 도 7과 관련하여 전술한 흐름도와 일관되게 수행될 수 있다. 기록 동작은 실질적으로 이전의 판독 동작의 반대이고 기록 데이터(824)는 판독 채널 회로(802)에 제공되고 디스크 플래터(816)에 기록된다.
저장 시스템(800)은 대형 저장 시스템, 이를 테면, 예를 들어, RAID (저가 디스크들의 중복 배열 또는 독립 디스크들의 중복 배열)(redundant array of inexpensive disks or redundant array of independent disks) 기초의 저장 시스템 내에 통합될 수 있다. 이러한 RAID 시스템은 중복검사(redundancy)를 통해 안정도와 신뢰도를 증가시켜서, 다수의 디스크들을 하나의 논리적 유닛으로서 조합한다. 데이터는 각종 알고리즘에 따라서 RAID 저장 시스템에 포함된 다수의 디스크들 전체에 산재되며 오퍼레이팅 시스템에 의해 마치 하나의 디스크인 것처럼 액세스된다. 예를 들면, 데이터는 RAID 저장 시스템 내 다수의 디스크들에 복사(mirror)될 수 있거나 또는 다수의 기술로 다수의 디스크들 전체에 조각으로 나뉘어 분배될 수 있다. 만일 RAID 저장 시스템 내 소수개의 디스크들이 고장 나거나 또는 사용 불능 상태로 되면, 데이터의 잔여 부분에 기초하여 RAID 저장 시스템 내 다른 디스크로부터 잃어버린 데이터를 되살리는 오류 정정 기술이 사용될 수 있다. RAID 저장 시스템 내 디스크들은 이것으로 제한되지 않지만, 저장 시스템(800)과 같은 개별적인 저장 시스템일 수 있으며, 서로 아주 가까이 배치될 수 있거나 또는 보안 증대를 위해 더 폭넓게 분포될 수 있다. 기록 동작에서, 기록 데이터는 컨트롤러에 제공되고, 이 컨트롤러는 기록 데이터를, 예를 들면, 이 기록 데이터를 미러링 또는 스트립핑함으로써 디스크들 전체에 저장한다. 판독 동작에서, 컨트롤러는 디스크들로부터 데이터를 검색한다. 그런 다음 컨트롤러는 마치 RAID 저장 시스템이 단일의 디스크인 것처럼 결과적인 판독 데이터를 산출한다.
도 9를 참조하면, 본 발명의 일부 실시예에 따라서 오정정 처리 기능을 가진 저밀도 패리티 검사 디코더를 갖는 송신기(902) 및 수신기(904)를 포함하는 무선 통신 시스템(900) 또는 데이터 전송 장치가 도시된다. 통신 시스템(900)은 본 기술에서 공지된 바와 같이 인코딩된 정보를 전달 매체(906)를 통해 전송하도록 동작가능한 송신기(902)를 포함한다. 인코딩된 데이터는 전달 매체(906)로부터 수신기(904)에 의해 수신된다. 수신기(904)는 오정정 처리 기능을 갖는 저밀도 패리티 검사 디코더를 포함한다. 이러한 오정정 처리 기능을 갖는 저밀도 패리티 검사 디코더는 도 1-도 5에 관련하여 전술한 개시 내용과 일관되게 구현될 수 있다. 일부 예에서, 오정정 처리 기능을 갖는 데이터 디코딩은 도 6-7에 관련하여 전술한 흐름도와 일관되게 수행될 수 있다.
저밀도 패리티 검사 기술은 가상적으로 어떤 채널을 통해 정보를 전송하거나 또는 가상적으로 어떤 미디어에 정보를 저장하는 데 적용할 수 있다. 전송 애플리케이션은 광 섬유, 무선 주파수 채널, 유선 또는 무선 근거리 네트워크, 디지털 가입자 회선 기술, 무선 셀룰러, 구리 또는 광섬유와 같은 어떤 매체를 통한 이더넷, 케이블 텔레비전과 같은 케이블 채널, 및 인공 위성 통신을 포함하지만, 이것으로 제한되지 않는다. 저장 애플리케이션은, 하드 디스크 드라이브, 콤팩트 디스크, 디지털 비디오 디스크, 자기 테이프, 및 다이나믹 랜덤 액세스 메모리, 니게이티드(negated)-AND 플래시, 니게이티드-OR 플래시, 기타 비휘발성 메모리 및 고체 상태 드라이브와 같은 메모리 소자들을 포함하지만, 이것으로 제한되지 않는다.
전술한 애플리케이션에서 설명된 각종 블록들은 다른 기능들과 함께 집적 회로로 구현될 수 있다. 이러한 집적 회로는 소정 블록, 시스템 또는 회로의 모든 기능을 포함할 수 있거나 또는 블록, 시스템 또는 회로의 일부분만을 포함할 수 있다. 또한, 블록, 시스템 또는 회로들의 요소는 다수의 집적 회로들 전반에 걸쳐 구현될 수 있다. 이러한 집적 회로는 모노리식 집적 회로, 플립 칩 집적 회로, 멀티칩 모듈 집적 회로, 및/또는 혼합 신호 집적 회로를 포함하여 본 기술에서 공지된 모든 형태의 집적 회로일 수 있지만, 이것으로 제한되지 않는다. 본 명세서에서 기술된 블록, 시스템 또는 회로의 각종 기능은 소프트웨어나 펌웨어로 구현될 수 있다. 그러한 몇 가지 예에서, 전체 시스템, 블록 또는 회로는 등가의 소프트웨어 또는 펌웨어를 이용하여 구현될 수 있다. 다른 예에서, 소정 시스템, 블록 또는 회로의 한 부분은 소프트웨어 또는 펌웨어로 구현되는 반면 다른 부분은 하드웨어로 구현될 수 있다.
결론으로, 본 발명은 오류 정정 기능을 갖는 저밀도 패리티 검사 디코딩을 위한 신규의 장치 및 방법을 제공한다. 본 발명의 하나 이상의 실시예의 상세한 설명이 앞에서 제시되었지만, 본 기술에서 통상의 지식을 가진 자들에게는 본 발명의 정신에서 벗어나지 않고 여러 대안, 변형 및 등가물들이 자명해질 것이다. 그러므로, 전술한 설명은 첨부의 특허청구범위로 정의된 본 발명의 범주를 제한하는 것으로 취급되지 않아야 할 것이다.

Claims (20)

  1. 데이터 처리 시스템으로서,
    디코딩 알고리즘을 복합 행렬의 제1 부분에 기초하여 디코더 입력에 적용하여 코드워드(codeword)를 산출하도록 동작 가능한 디코더 회로와,
    상기 코드워드 및 상기 복합 행렬의 제1 부분에 기초하여 신드롬(syndrome)을 계산하도록 동작 가능한 신드롬 계산 회로와,
    상기 복합 행렬의 제2 부분에 기초하여 해시를 계산하도록 동작 가능한 해시 계산 회로를 포함하며,
    상기 디코더 회로는 상기 신드롬이 상기 복합 행렬의 제1 부분에 기초한 코드워드가 정확하다고 표시하지만 제2 테스트는 상기 코드워드가 오정정(miscorrected)되었다고 표시할 때 적어도 부분적으로 상기 해시에 기초하여 상기 코드워드를 정정하도록 동작 가능한
    데이터 처리 시스템.
  2. 제1항에 있어서,
    상기 디코더 회로는 저밀도 패리티 검사 디코더를 포함하며 상기 복합 행렬은 패리티 검사 행렬을 포함하는
    데이터 처리 시스템.
  3. 제1항에 있어서,
    상기 디코딩 알고리즘을 전체 복합 행렬에 기초한 상기 디코더 입력에 재적용함으로써 상기 디코더 회로가 상기 코드워드를 정정하도록 동작 가능한 오정정 처리 회로를 더 포함하는
    데이터 처리 시스템.
  4. 제1항에 있어서,
    상기 제2 테스트는 상기 해시를 예상된 값과 비교하는 것을 포함하는
    데이터 처리 시스템.
  5. 제1항에 있어서,
    상기 제2 테스트는 상기 코드워드에 기초하여 계산된 순환 중복 검사 비트를 상기 디코더 입력 내 소스 순환 중복 검사 비트와 비교하는 순환 중복 검사를 포함하는
    데이터 처리 시스템.

  6. 제1항에 있어서,
    상기 해시를 이용하여 부분-코드워드(sub-codeword)를 검색하고 상기 부분-코드워드를 상기 코드워드와 조합함으로써 상기 코드워드를 상기 디코더 회로를 이용하여 정정하도록 동작 가능한 오정정 처리 회로를 더 포함하는
    데이터 처리 시스템.
  7. 제6항에 있어서,
    상기 오정정 처리 회로는 상기 해시를 이용하여 부분-코드워드와 해시 값의 쌍의 룩업 테이블에서 상기 부분-코드워드를 검색하도록 동작 가능한
    데이터 처리 시스템.
  8. 제6항에 있어서,
    상기 오정정 처리 회로는 상기 부분-코드워드를 상기 코드워드와 조합한 결과의 코드워드를 예상된 값과 비교함으로써 상기 부분-코드워드를 상기 코드워드와 조합한 것이 상기 오정정된 코드워드를 정정하는 지를 판단하도록 동작 가능한
    데이터 처리 시스템.
  9. 제6항에 있어서,
    상기 오정정 처리 회로는 상기 부분-코드워드를 상기 코드워드와 조합한 것이 순환 중복 검사를 이용하여 상기 오정정된 코드워드를 정정하는 지를 판단하도록 동작 가능한
    데이터 처리 시스템.
  10. 제1항에 있어서,
    상기 복합 행렬에 대응하는 패리티 생성 행렬에 기초하여 입력 데이터를 인코eld하도록 동작 가능한 저밀도 패리티 검사 인코더 회로를 더 포함하는
    데이터 처리 시스템.
  11. 제10항에 있어서,
    원하지 않는 데이터 패턴을 제외하기 위해 상기 입력 데이터를 인코딩하도록 동작 가능한 패턴 제한 인코더를 더 포함하며,
    상기 디코더 입력은 상기 저 밀도 패리티 검사 인코더 회로의 출력으로부터 도출되며,
    상기 저밀도 패리티 검사 인코더 회로는 상기 복합 행렬의 상기 제2 부분에 대응하는 패리티 비트를 생성하도록 동작 가능하며,
    상기 패리티 비트는 상기 패턴 제한 인코더를 통과하지 않고 상기 디코더 회로에 제공되는
    데이터 처리 시스템.
  12. 제1항에 있어서,
    상기 복합 행렬의 제2 부분에 대응하는 상기 디코더 입력 내 패리티 비트는 선형 특성을 만족하는
    데이터 처리 시스템.
  13. 제1항에 있어서,
    상기 데이터 처리 시스템은 저장 장치 및 수신 장치로 구성된 그룹으로부터 선택되는 장치의 일부로서 구현되는
    데이터 처리 시스템.
  14. 제1항에 있어서,
    상기 데이터 처리 시스템은 집적 회로로서 구현되는
    데이터 처리 시스템.
  15. 데이터를 디코딩하는 방법으로서,
    디코딩 알고리즘을 복합 행렬의 제1 부분에 기초하여 데이터에 적용하여 코드워드를 산출하는 단계와,
    상기 코드워드 및 상기 복합 행렬의 제1 부분을 곱셈하여 신드롬을 산출하는 단계와,
    상기 디코딩 알고리즘을 상기 복합 행렬의 제2 부분에 기초하여 데이터에 적용하여 제2 코드워드를 산출하는 단계와,
    상기 제2 코드워드 및 상기 복합 행렬의 상기 제2 부분을 곱셈하여 해시를 산출하는 단계와,
    상기 신드롬이 상기 코드워드가 정확하다고 표시하지만 제2 테스트는 상기 코드워드가 오정정되었다고 표시할 때 적어도 부분적으로 상기 해시에 기초하여 상기 코드워드를 정정하는 단계를 포함하는
    방법.
  16. 제15항에 있어서,
    상기 신드롬이 상기 코드워드가 정확하다고 표시하지만 제2 테스트는 상기 코드워드가 오정정되었다고 표시할 때, 상기 코드워드는 상기 디코딩 알고리즘을 전체 복합 행렬에 기초하여 상기 데이터에 재적용함으로써 정정되는
    방법.
  17. 제15항에 있어서,
    상기 코드워드는 상기 해시를 이용하여 부분-코드워드와 해시 값의 쌍의 룩업 테이블에서 부분-코드워드를 검색하고 상기 부분-코드워드를 배타적 OR 연산으로 상기 코드워드와 조합함으로써 정정되는
    방법.
  18. 제17항에 있어서,
    상기 정정된 코드워드를 순환 중복 검사를 이용하여 테스트하는 단계를 더 포함하는
    방법.
  19. 제15항에 있어서,
    상기 제2 테스트는 상기 해시를 예상된 값과 비교하는 단계를 포함하는
    방법.
  20. 저장 시스템으로서,
    저장 매체와,
    상기 저장 매체에 관련하여 배치되고 상기 저장 매체 상의 정보에 대응하는 감지된 신호를 제공하도록 동작 가능한 헤드 어셈블리와,
    데이터 처리 시스템을 포함하며,
    상기 데이터 처리 시스템은,
    상기 감지된 신호로부터 도출된 아날로그 신호를 샘플링하여 일련의 디지털 샘플을 산출하도록 동작 가능한 아날로그-디지털 변환기 회로와,
    상기 디지털 샘플을 등화하여 데이터 세트를 산출하도록 동작 가능한 등화기 회로와,
    데이터 검출 알고리즘을 상기 데이터 세트에 적용하여 검출된 출력을 산출하도록 동작 가능한 데이터 검출기 회로와,
    데이터 디코딩 회로를 포함하며,
    상기 데이터 디코딩 회로는,
    디코딩 알고리즘을 복합 행렬의 제1 부분에 기초하여 상기 검출된 출력에 적용하여 코드워드를 산출하도록 동작 가능한 디코더와,
    상기 코드워드 및 상기 복합 행렬의 제1 부분에 기초하여 신드롬을 계산하도록 동작 가능한 신드롬 계산 회로와,
    상기 복합 행렬의 제2 부분에 기초하여 해시를 계산하도록 동작 가능한 해시 계산 회로를 포함하며,
    상기 디코더는 상기 신드롬이 상기 복합 행렬의 제1 부분에 기초한 상기 코드워드가 정확하다고 표시하지만 제2 테스트는 상기 코드워드가 오정정되었다고 표시할 때 적어도 부분적으로 상기 해시에 기초하여 상기 코드워드를 정정하도록 동작 가능한
    저장 시스템.
KR1020130119405A 2012-12-08 2013-10-07 오정정을 처리하는 저밀도 패리티 검사 디코더 KR20140074814A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/708,941 US8996969B2 (en) 2012-12-08 2012-12-08 Low density parity check decoder with miscorrection handling
US13/708,941 2012-12-08

Publications (1)

Publication Number Publication Date
KR20140074814A true KR20140074814A (ko) 2014-06-18

Family

ID=49301287

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130119405A KR20140074814A (ko) 2012-12-08 2013-10-07 오정정을 처리하는 저밀도 패리티 검사 디코더

Country Status (6)

Country Link
US (1) US8996969B2 (ko)
EP (1) EP2741421A1 (ko)
JP (1) JP2014116927A (ko)
KR (1) KR20140074814A (ko)
CN (1) CN103873069A (ko)
TW (1) TWI604698B (ko)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9244685B2 (en) * 2012-11-02 2016-01-26 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for check-node unit message processing
US9300329B2 (en) 2012-11-08 2016-03-29 Sk Hynix Memory Solutions Inc. Turbo-product codes (TPC) with interleaving
US9213593B2 (en) * 2013-01-16 2015-12-15 Maxlinear, Inc. Efficient memory architecture for low density parity check decoding
US9141554B1 (en) 2013-01-18 2015-09-22 Cisco Technology, Inc. Methods and apparatus for data processing using data compression, linked lists and de-duplication techniques
US9369152B2 (en) * 2013-03-07 2016-06-14 Marvell World Trade Ltd. Systems and methods for decoding with late reliability information
US9448877B2 (en) * 2013-03-15 2016-09-20 Cisco Technology, Inc. Methods and apparatus for error detection and correction in data storage systems using hash value comparisons
US9258112B2 (en) * 2013-03-15 2016-02-09 Accenture Global Services Limited Configurable key-based data shuffling and encryption
GB2510932B (en) * 2013-08-27 2015-01-21 Imagination Tech Ltd An improved decoder for low-density parity-check codes
KR102204394B1 (ko) * 2013-10-14 2021-01-19 삼성전자주식회사 메모리 시스템에서의 코딩 방법 및 디코딩 방법
US9602141B2 (en) 2014-04-21 2017-03-21 Sandisk Technologies Llc High-speed multi-block-row layered decoder for low density parity check (LDPC) codes
US9748973B2 (en) * 2014-04-22 2017-08-29 Sandisk Technologies Llc Interleaved layered decoder for low-density parity check codes
US9503125B2 (en) * 2014-05-08 2016-11-22 Sandisk Technologies Llc Modified trellis-based min-max decoder for non-binary low-density parity-check error-correcting codes
US9559727B1 (en) 2014-07-17 2017-01-31 Sk Hynix Memory Solutions Inc. Stopping rules for turbo product codes
US9853873B2 (en) 2015-01-10 2017-12-26 Cisco Technology, Inc. Diagnosis and throughput measurement of fibre channel ports in a storage area network environment
US9900250B2 (en) 2015-03-26 2018-02-20 Cisco Technology, Inc. Scalable handling of BGP route information in VXLAN with EVPN control plane
US10222986B2 (en) 2015-05-15 2019-03-05 Cisco Technology, Inc. Tenant-level sharding of disks with tenant-specific storage modules to enable policies per tenant in a distributed storage system
US11588783B2 (en) 2015-06-10 2023-02-21 Cisco Technology, Inc. Techniques for implementing IPV6-based distributed storage space
US10778765B2 (en) 2015-07-15 2020-09-15 Cisco Technology, Inc. Bid/ask protocol in scale-out NVMe storage
US9892075B2 (en) 2015-12-10 2018-02-13 Cisco Technology, Inc. Policy driven storage in a microserver computing environment
US20170288697A1 (en) * 2016-03-31 2017-10-05 Silicon Motion Inc. Ldpc shuffle decoder with initialization circuit comprising ordered set memory
US10140172B2 (en) 2016-05-18 2018-11-27 Cisco Technology, Inc. Network-aware storage repairs
US20170351639A1 (en) 2016-06-06 2017-12-07 Cisco Technology, Inc. Remote memory access using memory mapped addressing among multiple compute nodes
US10664169B2 (en) 2016-06-24 2020-05-26 Cisco Technology, Inc. Performance of object storage system by reconfiguring storage devices based on latency that includes identifying a number of fragments that has a particular storage device as its primary storage device and another number of fragments that has said particular storage device as its replica storage device
US11563695B2 (en) 2016-08-29 2023-01-24 Cisco Technology, Inc. Queue protection using a shared global memory reserve
EP3316486B1 (en) * 2016-10-25 2023-06-14 Université de Bretagne Sud Elementary check node-based syndrome decoding with input pre-sorting
KR20180069179A (ko) * 2016-12-14 2018-06-25 에스케이하이닉스 주식회사 메모리 시스템 및 이의 에러 정정 방법
US10545914B2 (en) 2017-01-17 2020-01-28 Cisco Technology, Inc. Distributed object storage
US10243823B1 (en) 2017-02-24 2019-03-26 Cisco Technology, Inc. Techniques for using frame deep loopback capabilities for extended link diagnostics in fibre channel storage area networks
US10713203B2 (en) 2017-02-28 2020-07-14 Cisco Technology, Inc. Dynamic partition of PCIe disk arrays based on software configuration / policy distribution
US10254991B2 (en) 2017-03-06 2019-04-09 Cisco Technology, Inc. Storage area network based extended I/O metrics computation for deep insight into application performance
CN107276596B (zh) * 2017-07-11 2020-07-07 北京理工大学 一种基于分段Hash序列的极化码译码方法
US10303534B2 (en) 2017-07-20 2019-05-28 Cisco Technology, Inc. System and method for self-healing of application centric infrastructure fabric memory
US10404596B2 (en) 2017-10-03 2019-09-03 Cisco Technology, Inc. Dynamic route profile storage in a hardware trie routing table
US10942666B2 (en) 2017-10-13 2021-03-09 Cisco Technology, Inc. Using network device replication in distributed storage clusters
CN108170556A (zh) * 2018-01-18 2018-06-15 江苏华存电子科技有限公司 纠错码生成与校验矩阵的保护方法及矩阵存储/产生装置
KR102523059B1 (ko) * 2018-04-18 2023-04-19 에스케이하이닉스 주식회사 에러 정정 회로 및 그것을 포함하는 메모리 시스템
TWI688223B (zh) * 2019-02-11 2020-03-11 義守大學 代數幾何碼的赫米特碼之編碼及解碼方法
KR20200099438A (ko) 2019-02-14 2020-08-24 에스케이하이닉스 주식회사 메모리 컨트롤러
US20230244569A1 (en) * 2022-01-28 2023-08-03 Pure Storage, Inc. Recover Corrupted Data Through Speculative Bitflip And Cross-Validation
CN114666011B (zh) * 2022-03-23 2024-04-16 锐捷网络股份有限公司 一种数据处理方法、装置及电子设备
US11949430B2 (en) * 2022-09-01 2024-04-02 SK Hynix Inc. Parallel system to calculate low density parity check

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3328093B2 (ja) 1994-07-12 2002-09-24 三菱電機株式会社 エラー訂正装置
US5701314A (en) 1995-12-21 1997-12-23 Cirrus Logic, Inc. On-the-fly error correction using thermal asperity erasure pointers from a sampled amplitude read channel in a magnetic disk drive
GB2350531B (en) 1999-05-26 2001-07-11 3Com Corp High speed parallel bit error rate tester
JP2003515861A (ja) 1999-11-22 2003-05-07 シーゲイト テクノロジー エルエルシー 欠陥しきい値検出器及びビタビ・ゲインを使用したデータ誤り修復方法及び装置
US6977930B1 (en) * 2000-02-14 2005-12-20 Cisco Technology, Inc. Pipelined packet switching and queuing architecture
US7136244B1 (en) 2002-02-22 2006-11-14 Western Digital Technologies, Inc. Disk drive employing data averaging techniques during retry operations to facilitate data recovery
EP1500200B1 (en) * 2002-04-05 2008-09-17 Koninklijke Philips Electronics N.V. Method and apparatus for embedding an additional layer of error correction into an error correcting code
US7085988B1 (en) * 2002-04-08 2006-08-01 Maxtor Corporation Hashing system utilizing error correction coding techniques
US7779268B2 (en) * 2004-12-07 2010-08-17 Mitsubishi Electric Research Laboratories, Inc. Biometric based user authentication and data encryption
US7730384B2 (en) 2005-02-28 2010-06-01 Agere Systems Inc. Method and apparatus for evaluating performance of a read channel
US7738201B2 (en) 2006-08-18 2010-06-15 Seagate Technology Llc Read error recovery using soft information
US7827461B1 (en) 2006-09-18 2010-11-02 Marvell International Ltd. Low-density parity-check decoder apparatus
US7702989B2 (en) 2006-09-27 2010-04-20 Agere Systems Inc. Systems and methods for generating erasure flags
US7971125B2 (en) 2007-01-08 2011-06-28 Agere Systems Inc. Systems and methods for prioritizing error correction data
GB2455283A (en) * 2007-10-31 2009-06-10 Hewlett Packard Development Co Error correction in data communication apparatus using toroidal-web Tanner graph
US20090154916A1 (en) * 2007-12-12 2009-06-18 Tellabs Petaluma, Inc. Method and Apparatus for GPON GEM Error Correction Implementation
KR101418467B1 (ko) 2008-08-15 2014-07-10 엘에스아이 코포레이션 니어 코드워드들의 ram 리스트-디코딩
CN102037513A (zh) 2008-11-20 2011-04-27 Lsi公司 用于噪声降低的数据检测的系统和方法
US7990642B2 (en) 2009-04-17 2011-08-02 Lsi Corporation Systems and methods for storage channel testing
EP2285003B1 (en) * 2009-08-12 2019-11-13 Alcatel Lucent Correction of errors in a codeword
US8176404B2 (en) 2009-09-09 2012-05-08 Lsi Corporation Systems and methods for stepped data retry in a storage system
US8688873B2 (en) 2009-12-31 2014-04-01 Lsi Corporation Systems and methods for monitoring out of order data decoding
US8458555B2 (en) 2010-06-30 2013-06-04 Lsi Corporation Breaking trapping sets using targeted bit adjustment
CN102045161A (zh) * 2010-11-24 2011-05-04 上海电机学院 量子密钥协商方法
US8810940B2 (en) 2011-02-07 2014-08-19 Lsi Corporation Systems and methods for off track error recovery
US8693120B2 (en) 2011-03-17 2014-04-08 Lsi Corporation Systems and methods for sample averaging in data processing
US8886508B2 (en) * 2011-08-22 2014-11-11 Freescale Semiconductor, Inc. Circuit simulation acceleration using model caching

Also Published As

Publication number Publication date
US20140164866A1 (en) 2014-06-12
TWI604698B (zh) 2017-11-01
EP2741421A1 (en) 2014-06-11
CN103873069A (zh) 2014-06-18
US8996969B2 (en) 2015-03-31
JP2014116927A (ja) 2014-06-26
TW201429168A (zh) 2014-07-16

Similar Documents

Publication Publication Date Title
US8996969B2 (en) Low density parity check decoder with miscorrection handling
US8929009B2 (en) Irregular low density parity check decoder with low syndrome error handling
US9459956B2 (en) Data decoder with trapping set flip bit mapper
US9130590B2 (en) Non-binary layered low density parity check decoder
US9015550B2 (en) Low density parity check layer decoder for codes with overlapped circulants
US9015547B2 (en) Multi-level LDPC layered decoder with out-of-order processing
US10367526B2 (en) Irregular low density parity check processing system with non-uniform scaling
US8756478B2 (en) Multi-level LDPC layer decoder
US8683309B2 (en) Systems and methods for ambiguity based decode algorithm modification
US8751889B2 (en) Systems and methods for multi-pass alternate decoding
US20130139023A1 (en) Variable Sector Size Interleaver
US20080163026A1 (en) Concatenated codes for holographic storage
US20130111289A1 (en) Systems and methods for dual process data decoding
US9048874B2 (en) Min-sum based hybrid non-binary low density parity check decoder
US20130139022A1 (en) Variable Sector Size LDPC Decoder
US9130589B2 (en) Low density parity check decoder with dynamic scaling
US9048867B2 (en) Shift register-based layered low density parity check decoder
US20160087653A1 (en) Decoder With Targeted Symbol Flipping Recovery Of Miscorrected Codewords
US20140082449A1 (en) LDPC Decoder With Variable Node Hardening
US20160020783A1 (en) Low Density Parity Check Decoder With Relative Indexing
US20160191079A1 (en) Low Dynamic Power Check Node Processor For Low Density Parity Check Decoder
US9727419B2 (en) Non-binary low density parity check code column rotation
US8949696B2 (en) Systems and methods for trapping set disruption
US8885276B2 (en) Systems and methods for shared layer data decoding
EP2665190B1 (en) Decoding of non-binary codes with symbol re-grouping

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right