[go: up one dir, main page]

KR101314232B1 - 에러 정정 코드의 부호화 및 복호화 방법 그리고 코덱 - Google Patents

에러 정정 코드의 부호화 및 복호화 방법 그리고 코덱 Download PDF

Info

Publication number
KR101314232B1
KR101314232B1 KR1020127002747A KR20127002747A KR101314232B1 KR 101314232 B1 KR101314232 B1 KR 101314232B1 KR 1020127002747 A KR1020127002747 A KR 1020127002747A KR 20127002747 A KR20127002747 A KR 20127002747A KR 101314232 B1 KR101314232 B1 KR 101314232B1
Authority
KR
South Korea
Prior art keywords
short
long
codewords
syndrome
zero
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020127002747A
Other languages
English (en)
Other versions
KR20130014484A (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 KR20130014484A publication Critical patent/KR20130014484A/ko
Application granted granted Critical
Publication of KR101314232B1 publication Critical patent/KR101314232B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • 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

Landscapes

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

Abstract

에러 정정 코드의 부호화 및 복호화 방법 및 코덱이 제공된다. 상기 방법은 원시 데이터를 수신하는 단계; 상기 원시 데이터를 다수의 데이터 블록들로 분할하는 단계; 제1생성 다항식에 따라서 데이터의 블록들에 대응하는 다수의 짧은 패리티들을 생성하는 단계; 상기 짧은 패리티들을 상기 데이터 블록들에 부가하여 다수의 짧은 코드워드들을 얻는 단계; 상기 짧은 코드워드들을 결합하여 코드 데이터를 얻는 단계; 제2생성 다항식에 따라서 상기 코드 데이터에 대응하는 긴 패리티를 생성하는 단계로서, 상기 제1생성 다항식은 상기 제2생성 다항식의 적어도 하나의 최소 다항식의 함수인, 생성 단계; 및 상기 긴 패리티를 상기 코드 데이터에 부가하여 상기 원시 데이터에 대응하는 에러 정정 코드로서 긴 코드워드를 얻는 단계를 포함한다. 상기 방법은 에러 코드들을 정정하기 위한 시간을 감소시켜, 상기 디코더의 효율을 개선시킨다.

Description

에러 정정 코드의 부호화 및 복호화 방법 그리고 코덱{CODING AND DECODING METHOD AND CODEC OF ERROR CORRECTION CODE}
본 발명은 통신에 관한 것이며, 보다 상세하게는, 에러 정정 코드들의 부호화 및 복호화에 관한 것이다.
데이터가 에러 정정 코드로 변환된 후, 에러들이 에러 정정 코드에서 발생되는 경우, 에러가 없는 데이터가 에러 정정 코드의 패리티에 따라서 복원될 수 있다. 통신 시스템에서 송신기의 데이터는 종종 부호화되어 통신 시스템의 수신기로 전송될 에러 정정 코드를 얻는다. 통신 시스템의 수신기가 에러 정정 코드를 수신한 후, 전송 과정 중에 에러들이 에러 정정 코드에서 발생한 경우, 수신기는 수신된 에러 정정 코드의 에러들을 정정하고 나서, 에러 없이 데이터를 복원할 수 있다. 유사하게는, 데이터 저장 시스템은 종종 데이터를 부호화하여 저장 매체에 저장될 에러 정정 코드를 얻는다. 저장 매체에 저장된 에러 정정 코드에서 에러들이 발생할 때, 데이터 저장 시스템은 에러 정정 코드를 복호화하여 에러 없이 데이터를 복원시킨다. 에러 정정 코드는 BCH(Bose, Ray-Chandhuri and Hocquenghem) 코드 또는 RS(Reed-Solomon) 코드일 수 있다. 플래시 메모리에 저장될 데이터는 종종 BCH 코드로 변환되고 광학 디스크에 저장될 데이터는 종종 RS 코드로 변환된다.
데이터 저장 시스템이 저장 매체로부터 에러 정정 코드를 검색한 후, 에러 정정 코드는 데이터 저장 시스템 내에 저장된 데이터를 복원하도록 복호화되어야 한다. 도 1은 에러 정정 코드를 복호화하기 위한 종래 방법(100)의 순서도를 도시한다. 먼저, 디코더는 에러 정정 코드를 수신한다(단계 102). 다음, 디코더는 에러 정정 코드의 패리티에 따라서 다수의 신드롬들(syndromes)을 계산한다(단계 104). 다음, 디코더는 신드롬들이 모두 0과 동일한지의 여부를 판단한다(단계 106). 모든 신드롬들이 0과 동일하다면, 에러 정정 코드에 에러가 발생되지 않으므로, 정정을 필요로 하지 않는다. 일부 신드롬들이 0과 동일하지 않다면, 에러 정정 코드에 에러가 발생되므로, 에러 정정 코드는 정정되어야 한다. 먼저, 디코더는 신드롬들에 따라서 에러 탐색 다항식의 다수의 계수들을 계산한다(단계 108). 다음, 디코더는 치엔(Chien) 검색을 수행하여 에러 탐색 다항식의 계수들에 따른 에러 탐색 다항식의 다수의 근들을 찾는다(단계 110). 에러 탐색 다항식의 근들이 에러 정정 코드에서 에러 비트들의 위치들을 나타내기 때문에, 디코더는 근들에 따라서 에러 정정 코드의 에러 비트들을 정정할 수 있다면(단계 112), 에러 없이 에러 정정 코드를 얻을 수 있다.
단계 108에서 에러 탐색 다항식의 계수들을 계산하기 위해선 장시간을 필요로 한다. 단계 110에서 치엔 검색을 수행함으로써 에러 탐색 다항식의 근들을 계산하는데에도 마찬가지로 장시간을 필요로 한다. 종래 방법(100)에 따르면, 임의의 신드롬들이 0과 동일하지 않다면, 단계 108 및 단계 110가 수행되어 에러 정정 코드의 에러 비트들을 정정함으로써, 복호화 과정중에 지연을 초래하고 시스템 성능을 저하시킨다. 일부 신드롬들이 0과 동일하지 않다면, 단계 108 및 단계 110 각각에서 에러 탐색 다항식의 계수들 및 근들의 계산을 피하는 방법으로 에러 정정 코드가 정정되면, 복호화 과정의 지연 기간이 감소될 수 있고 디코더 및 데이터 저장 시스템의 성능이 개선될 수 있다. 따라서, 에러 정정 코드를 부호화 및 복호화하기 위한 새로운 방법이 필요로 된다.
종래 기술의 결점들을 극복하기 위하여, 에러 정정 코드의 부호화 및 복호화 방법 및 코덱이 제공된다.
그러므로, 본 발명은 에러 정정 코드를 위한 부호화 및 복호화 방법을 제공한다. 먼저, 원시 데이터가 수신되고 다수의 데이터 세그먼트들로 분할된다. 다음에, 데이터 세그먼트들에 대응하는 다수의 짧은 패리티들은 제1생성 다항식에 따라서 생성된다. 이어서, 짧은 패리티들은 데이터 세그먼트들에 부가되어 다수의 짧은 코드워드들을 얻는다. 다음에, 짧은 코드워드들은 연결(concatenated)되어 코드 데이터를 얻는다. 이어서, 코드 데이터에 대응하는 긴 패리티는 제2생성 다항식에 따라서 생성되는데, 제1생성 다항식은 제2생성 다항식의 적어도 하나의 최소 다항식의 함수이다. 마지막으로, 긴 패리티는 코드 데이터에 부가되어 원시 데이터에 대응하는 에러 정정 코드로서 긴 코드워드를 얻는다.
상기 부호화 및 복호화 방법과 관련하여, 제1생성 다항식은 제2생성 다항식의 적어도 하나의 최소 다항식의 최소 공배수이다.
상기 부호화 및 복호화 방법은 저장 매체에 긴 코드워드를 저장시키는 단계를 더 포함한다.
상기 부호화 및 복호화 방법은 저장 매체로부터 긴 코드워드를 판독하는 단계; 긴 코드워드로부터 짧은 코드워드들을 검색하는 단계; 짧은 코드워드들의 짧은 패리티들에 따라서 짧은 코드워드들에 대응하는 다수의 짧은 신드롬들을 계산하는 단계; 짧은 신드롬들이 0과 동일한지의 여부를 판단하는 단계; 및 짧은 신드롬들이 비제로 짧은 신드롬들을 포함한다면, 비제로 짧은 신드롬들에 따라서 짧은 코드워드들을 정정하는 단계를 더 포함한다.
상기 부호화 및 복호화 방법은 긴 코드워드의 긴 패리티에 따라서 긴 코드워드에 대응하는 긴 신드롬을 계산하는 단계; 긴 신드롬이 0과 동일한지의 여부를 판단하는 단계; 긴 신드롬이 0과 동일하지 않다면, 비제로 짧은 코드워드들이 대응하는 짧은 코드워드들을 성공적으로 정정했는지의 여부를 판단하는 단계; 및 비제로 짧은 코드워드들이 대응하는 짧은 코드워드들을 성공적으로 정정했다면, 비제로 짧은 코드워드들에 따라서 긴 신드롬을 정정하여 정정된 긴 신드롬을 얻는 단계를 더 포함한다.
부호화 및 복호화 방법은 긴 신드롬이 0과 동일하지 않고 비제로 짧은 코드워드들이 대응하는 짧은 코드워드들을 성공적으로 정정하지 않았다면, 긴 신드롬에 따라서 짧은 코드워드들의 에러 있는 짧은 코드워드들을 정정하는 단계를 더 포함한다.
상기 부호화 및 복호화 방법과 관련하여, 긴 코드워드 및 짧은 코드워드들은 BCH 코드들 또는 RS 코드들이다.
본 발명은 또한 에러 정정 코드의 코덱을 제공한다. 일 실시예에서, 코더-디코더는 에러 정정 코드(ECC) 인코더 및 에러 정정 코드(ECC) 디코더를 포함한다. ECC 인코더는 원시 데이터를 수신하고, 원시 데이터를 다수의 데이터 세그먼트들로 분할하며, 데이터 세그먼트들에 대응하는 다수의 짧은 패리티들을 생성하고, 짧은 패리티들을 데이터 세그먼트들에 부가하여 다수의 짧은 코드워드들을 얻으며, 짧은 코드워드들을 연결하여 코드 데이터를 얻고 코드 데이터에 대응하는 긴 패리티를 생성하고, 긴 패리티를 코드 데이터에 부가하여 저장 매체에 저장될 에러 정정 코드로서 긴 코드워드를 얻는다. ECC 디코더는 저장 매체로부터 긴 코드워드를 판독하고, 긴 코드워드로부터 짧은 코드워드들을 검색하며, 짧은 코드워드들의 짧은 패리티들에 따라서 짧은 코드워드들에 대응하는 다수의 짧은 신드롬들을 계산하고, 짧은 신드롬들이 0과 동일한지의 여부를 판단하여, 짧은 신드롬들이 비제로 짧은 신드롬들을 포함한다면, 비제로 짧은 신드롬들에 따라서 짧은 코드워드들을 정정한다.
상기 코덱과 관련하여, ECC 인코더는 제1생성 다항식에 따라서 데이터 세그먼트들에 대응하는 짧은 패리티들을 생성하고 제2생성 다항식에 따라서 코드 데이터에 대응하는 긴 패리티를 생성하는데, 제1생성 다항식은 제2생성 다항식의 적어도 하나의 최소 다항식의 함수이다.
상기 코덱과 관련하여, 제1생성 다항식은 제2생성 다항식의 적어도 하나의 최소 다항식의 최소 공배수이다.
상기 코덱과 관련하여, ECC 인코더는 제1생성 다항식에 따라서 데이터 세그먼트들에 대응하는 짧은 패리티를 생성하는 짧은 패리티 인코더; 짧은 패리티들을 데이터 세그먼트들에 부가하여 짧은 코드워드들을 얻는 제1부가 모듈; 짧은 코드워드들을 연결하여 코드 데이터를 얻고 제2생성 다항식에 따라서 코드 데이터에 대응하는 긴 패리티를 생성하는 긴 패리티 인코더; 및 긴 패리티를 코드 데이터에 부가하여 긴 코드워드를 얻는 제2부가 모듈을 포함한다.
상기 코덱과 관련하여, ECC 디코더는 부가적으로, 긴 코드워드의 긴 패리티에 따라서 긴 코드워드에 대응하는 긴 신드롬을 계산하며, 긴 신드롬이 0과 동일한지의 여부를 판단하며, 긴 신드롬이 0과 동일하지 않다면, 비제로 짧은 코드워드들이 대응하는 짧은 코드들을 성공적으로 정정했는지의 여부를 판단하여, 비제로 짧은 코드워드들이 대응하는 짧은 코드워드들을 성공적으로 정정했다면, 비제로 짧은 코드워드들에 따라서 긴 신드롬을 정정하여 정정된 긴 신드롬을 얻는다.
상기 코덱과 관련하여, 긴 신드롬이 0과 동일하지 않고 비제로 짧은 코드워드들이 대응하는 짧은 코드워드들을 성공적으로 정정하지 않았다면, ECC 디코더는 긴 신드롬에 따라서 짧은 코드워드들의 에러 있는 짧은 코드워드들을 정정한다.
상기 코덱과 관련하여, ECC 디코더는 짧은 코드워드들의 짧은 패리티들에 따라서 짧은 코드워드들의 짧은 신드롬들을 계산하고 긴 코드워드의 긴 패리티에 따라서 긴 코드워드의 긴 신드롬을 계산하는 신드롬 계산기; 및 짧은 신드롬들이 0과 동일한지의 여부를 판단하여, 짧은 신드롬들이 0과 동일하지 않으면, 비제로 짧은 신드롬들에 따라서 짧은 코드워드들을 정정하며, 긴 신드롬이 0과 동일한지의 여부를 판단하여, 긴 신드롬이 0과 동일하지 않다면, 비제로 짧은 코드워드들이 대응하는 짧은 코드워드들을 성공적으로 정정했는지의 여부를 판단하고, 비제로 짧은 코드워드들이 대응하는 짧은 코드워드들을 성공적으로 정정했다면, 비제로 짧은 코드워드들에 따라서 긴 신드롬을 정정하여 정정된 긴 신드롬을 얻는 제어 회로를 포함한다.
상기 코덱과 관련하여, 긴 코드워드 및 짧은 코드워드들은 BCH 코드들 또는 RS 코드들이다.
본 발명은 또한 에러 정정 코드를 위한 부호화 및 복호화 방법을 제공한다. 먼저, 에러 정정 코드의 긴 코드워드가 수신되는데, 상기 긴 코드워드는 다수의 짧은 코드워드들 및 긴 패리티를 포함하고 짧은 코드워드들 각각은 짧은 패리티를 포함한다. 다음에, 짧은 코드워드들은 긴 코드워드로부터 검색된다. 이어서, 짧은 코드워드들에 대응하는 다수의 짧은 신드롬들은 짧은 코드워드들의 짧은 패리티들에 따라서 계산된다. 다음에, 짧은 신드롬들이 0과 동일한지의 여부가 판단된다. 짧은 신드롬들이 비제로 짧은 신드롬들을 포함한다면, 짧은 코드워드들은 비제로 짧은 신드롬들에 따라서 정정된다. 이어서, 긴 코드워드에 대응하는 긴 신드롬은 긴 코드워드의 긴 패리티에 따라서 계산된다. 다음에, 긴 신드롬들이 0과 동일한지의 여부가 판단된다. 긴 신드롬이 0과 동일하지 않다면, 비제로 짧은 코드워드들이 대응하는 짧은 코드워드들을 성공적으로 정정했는지의 여부가 판단된다. 비제로 짧은 코드워드들이 대응하는 짧은 코드워드들을 성공적으로 정정했다면, 긴 신드롬은 비제로 짧은 코드들에 따라서 정정되어 정정된 긴 신드롬을 얻는다.
상기 부호화 및 복호화 방법은 긴 신드롬이 0과 동일하지 않고 비제로 짧은 코드워드들이 대응하는 짧은 코드워드들을 성공적으로 정정하지 않았다면, 긴 신드롬에 따라서 짧은 코드워드들의 에러 있는 짧은 코드워드들을 정정하는 단계를 더 포함한다.
상기 부호화 및 복호화 방법과 관련하여, 짧은 패리티들은 제1생성 다항식에 따라서 생성되고 긴 패리티가 제2생성 다항식에 따라서 생성되는데, 제1생성 다항식은 제2생성 다항식의 적어도 하나의 최소 다항식의 함수이다.
상기 부호화 및 복호화 방법과 관련하여, 제1생성 다항식은 제2생성 다항식의 적어도 하나의 최소 다항식의 최소 공배수이다.
상기 부호화 및 복호화 방법과 관련하여, 긴 코드워드 및 짧은 코드워드들은 BCH 코드들 또는 RS 코드들이다.
다음 실시예들이 첨부한 도면들과 관련하여 상세하게 설명될 것이다.
본 발명은 첨부한 도면들과 관련한 이하의 상세한 설명과 예를 통해서 더욱 완전하게 이해될 수 있을 것이다.
도 1은 에러 정정 코드를 복호화하기 위한 종래 방법의 순서도;
도 2는 본 발명에 따른 데이터 저장 시스템의 블록도;
도 3a는 본 발명에 따른 에러 정정 코드 인코더의 블록도;
도 3b는 본 발명에 따른 에러 정정 코드를 생성하기 위한 방법의 순서도;
도 4는 본 발명에 따라서 생성된 긴 코드워드의 개요도;
도 5는 본 발명에 따른 인코더의 회로도;
도 6은 본 발명에 따른 에러 정정 코드(ECC) 디코더의 블록도;
도 7는 본 발명에 따른 신드롬 계산기의 회로도;
도 8a 및 도 8b는 본 발명에 따른 에러 정정 코드를 복호화하기 위한 방법의 순서도.
도 2는 본 발명에 따른 데이터 저장 시스템(200)의 블록도를 도시한다. 일 실시예에서, 데이터 저장 시스템(200)은 제어기(21) 및 저장 매체(214)를 포함한다. 일 실시예에서, 제어기(212)는 에러 정정 코드(ECC) 인코더(222) 및 에러 정정 코드(ECC) 디코더(224)를 포함한다. 호스트(202)가 데이터(D1)를 데이터 저장장치(204)에 저장하고자 할 때, 제어기(212)는 우선 데이터(D1)를 부호화하여 에러 정정 코드(C1)를 얻고 나서 이 에러 정정 코드(C1)를 저장 매체(214)에 저장한다. 호스트(202)가 데이터 저장장치(204)로부터 데이터(D2)를 검색하고자 할 때, 제어기(212)는 우선, 저장 매체(214)로부터 에러 정정 코드(C2)를 판독한 후 에러 정정 코드(C2)를 복호화하여 데이터(D2)를 얻고 나서 이 데이터(D2)를 호스트(202)로 전송한다. 일 실시예에서, 데이터 저장장치(204)는 메모리 카드이며, 저장 매체(214)는 플래시 메모리이고, 에러 정정 코드들(C1 및 C2)은 BCH 코드들이다. 일 실시예에서, 데이터 저장장치(204)는 광디스크이며, 저장 매체는 광디스크이고, 에러 정정 코드들(C1 및 C2)은 RS 코드들이다. 저장 매체(214) 및 에러 정정 코드들(C1 및 C2)의 유형들이 본 발명의 범위를 제한하는 것이 아니므로, 당업자는 본 발명을 어떠한 유형의 저장 매체 및 에러 정정 코드에 적용할 수 있다.
도 3a는 본 발명에 따른 에러 정정 코드 인코더(300)의 블록도를 도시한다. 일 실시예에서, ECC 인코더(300)는 짧은 코드워드 인코더(302), 부가 모듈(304), 긴 코드워드 인코더(306) 및 부가 모듈(308)을 포함한다. 도 3b는 본 발명을 다른 에러 정정 코드를 생성하기 위한 방법(350)의 순서도를 도시한다. 도 3a에 도시된 ECC 인코더(300)는 원시 데이터(D)를 부호화하여 도 3b에 도시된 방법(350)에 따른 에러 정정 코드로서 긴 코드워드(CL)를 얻는다. 먼저, ECC 인코더(300)는 원시 데이터(D)를 수신한다(단계 352). 다음에, ECC 디코더(300)는 원시 데이터(D)를 다수의 데이터 세그먼트들로 분할한다(단계 354). 짧은 코드워드 인코더(302)가 데이터 세그먼트들을 수신할 때, 짧은 코드워드 인코더(302)는 제1생성 다항식에 따라서 데이터 세그먼트들에 대응하는 다수의 짧은 패리티들(Ps) 각각을 순차적으로 생성한다(단계 356).
다음, 부가 모듈(304)은 짧은 패리티들(PS) 각각을 데이터 세그먼트들에 부가하여 다수의 짧은 코드워드들(CS)를 얻는다(단계 358).
다음, 긴 코드워드 인코더(306)는 짧은 코드워드들(CS)을 연결하여 코드 데이터를 얻고(단계 360) 나서, 제2생성 다항식에 따라서 코드 데이터에 대응하는 긴 패리티(PL)를 생성하는데(단계 362), 짧은 코드워드 인코더(302)의 제1생성 다항식은 긴 코드워드 인코더(306)의 제2생성 다항식의 적어도 하나의 최소 다항식의 함수이다. 일 실시예에서, 제1생성 다항식은 제2생성 다항식의 적어도 하나의 최소 다항식의 최소 공배수(LCM)이다. 마지막으로, 부가 모듈(308)은 긴 패리티(PL)를 코드 데이터에 부가하여 긴 코드워드(CL)를 얻는다(단계 364). 예를 들어, 긴 코드워드 인코더(306)가 다수의 최소 다항식들 ψ1(x), ψ2(x),..., ψk(x)의 최소 공배수 {ψ1(x) × ψ2 (x) × ψk(x)}이다라고 가정하자. 일 실시예에서, 짧은 코드워드 인코더(302)의 제1생성 다항식 g'(x)은 최소 다항식 ψ1(x)이다. 또 다른 실시예에서, 짧은 코드워드 인코더(302)의 제1생성 다항식 g'(x)는 최소 다항식들 ψ1(x) 및 ψ2(x)의 최소 공배수 [ψ1(x) × ψ2 (x)]이다.
도 4는 본 발명에 따라서 생성된 긴 코드워드(CL)의 개요도를 도시한다. 긴 코드워드(CL)는 N개의 짧은 코드워드들(CS1, CS2,..., CSN) 및 긴 패리티(PL)를 포함한다. 짧은 코드워드들(CS1, CS2, …, CSN) 각각은 데이터 세그먼트 및 짧은 패리티를 포함한다. 예를 들어, 짧은 코드워드(CS1)는 데이터 세그먼트(D1) 및 짧은 패리티(PS1)를 포함하며, 짧은 코드워드(CS2)는 데이터 세그먼트(D2) 및 짧은 패리티(PS2)를 포함하고, 짧은 코드워드(CSN)는 데이터 세그먼트(DN) 및 짧은 패리티(PSN)를 포함한다. 원시 데이터는 N개의 데이터 세그먼트들(D1, D2,…,DN)으로 분할되고 원시 데이터는 도 3a에 도시된 ECC 인코더(300)에 의해 부호화되어 도 4에 도시된 긴 코드워드(CL)를 얻는다.
도 5는 본 발명에 따른 인코더(500)의 회로도를 도시한다. 인코더(500)는 도 3a에 도시된 짧은 패리티 인코더(302) 또는 긴 패리티 인코더(306)일 수 있다. 인코더(500)가 생성 다항식 g(x)에 따라서 데이터(DA)를 패리티(P)로 변환하고 생성 다항식 g(x)는 1차 항 계수 g1, 2차 항 계수 g2,…, N차 항 계수 gN을 갖는다. 인코더(500)는 가산기(540), 승산기들(521 내지 52N), 가산기들(501 내지 50N) 및 버퍼들(511 내지 51N)을 포함한다. 데이터(DA)의 비트들은 가산기(540)로 순차적으로 전달된다. 가산기(540)는 데이터(DA)의 비트들을 데이터 버퍼(51N)에 저장된 데이터 비트들(DDN)에 순차적으로 가산하여 데이터(DB)를 얻는다. 승산기들(521, 522,…,52N) 각각은 데이터 비트들(DB)를 생성 다항식 g(x)의 계수들(g1, g2,..gN)과 승산하여 데이터(DC1, DC2,…,DCN) 각각을 얻는다. 데이터(DB)는 버퍼(530)에 저장된다. 가산기들(501, 502,...,50N)은 DC1, DC2,…,DCN을 버퍼(530)에 의해 출력되는 데이터(DB)에 순차적으로 가산하여 데이터(DDN)를 얻는다. 마지막으로, 버퍼(51N)은 데이터(DDN)를 저장하고 나서 데이터(DDN)를 패리티(P)로서 출력한다.
도 6은 본 발명에 따른 에러 정정 코드(ECC) 디코더(600)의 블록도를 도시한다. 일 실시예에서, ECC 디코더(600)는 신드롬 계산기(602), 에러 탐색 다항식 계산기(604), 치엔 검색 모듈(606) 및 제어 회로(608)를 포함한다. ECC 디코더(600)가 에러 탐색 코드의 긴 코드워드를 수신할 때, ECC 디코더(600)는 긴 코드워드로부터 다수의 짧은 코드워드들을 검색한다. 먼저, 신드롬 계산기(602)는 짧은 코드워드들의 짧은 패리티들에 따라서 짧은 코드워드들의 다수의 짧은 신드롬들(S1a, S1b,...,S1N)을 계산하고 긴 코드워드의 긴 패리티에 따라서 긴 코드워드의 다수의 긴 신드롬들(S1, S2,…, Sk)를 계산한다. 다음, 에러 탐색 다항식 계산기(604)는 긴 코드워드의 긴 신드롬들(S1, S2,…, Sk)에 따라서 긴 코드워드의 에러 탐색 다항식의 계수들을 계산한다. 다음, 치엔 검색 모듈(606)은 에러 정정 코드의 긴 코드워드를 정정하기 위하여 에러 탐색 다항식의 근들을 찾는다. 한편, 짧은 코드워드들의 짧은 신드롬들(S1a, S1b,...,S1N)이 0과 동일하지 않을 때, 에러 탐색 다항식 계산기(604)는 비제로 짧은 신드롬들에 따라서 짧은 코드워드들의 에러 탐색 다항식들의 계수들을 계산하고 나서, 치엔 검색 모듈(606)은 치엔 검색을 수행하여 짧은 코드워드들을 정정하기 위하여 짧은 코드워드들의 에러 탐색 다항식들의 근들을 찾는다. 제어 회로(608)는 긴 신드롬들(S1, S2,…, Sk)이 0과 동일한지의 여부를 판단하고 에러 탐색 다항식 계산기의 계수 계산 및 치엔 검색 모듈(606)의 근 검색을 중단한다. 제어 회로(608)는 또한 다른 기능들을 포함하여 긴 코드워드를 복호화하는 데 필요로 되는 시간 기간을 감소시키고 ECC 디코더(600)의 성능을 개선시킨다. ECC 디코더(600)의 기능들은 도 8a 및 도 8b에 추가적으로 도시되어 있다.
일 실시예에서, 짧은 코드워드들을 부호화하기 위한 제1생성 다항식은 긴 코드워드들을 부호화하기 위한 제2생성 다항식의 적어도 하나의 최소 다항식의 함수이다. 그러므로, 신드롬 계산기(602)는 동일한 회로로 짧은 코드워드들 및 긴 코드워드들을 생성한다. 도 7은 본 발명에 따른 신드롬 계산기(700)의 회로도를 도시한다. 신드롬 계산기(700)는 긴 코드워드들의 긴 신드롬들(S1, S2,…, Sk) 각각을 생성하기 위한 다수의 신드롬 생성기들(701, 702, …, 70K)을 포함한다. 신드롬 생성기(701)는 또한 다수의 짧은 코드워드들의 다수의 짧은 신드롬들(S1a, S1b,...,S1N)을 생성한다. 일 실시예에서, 긴 코드워드의 데이터 비트들(D)은 신드롬 생성기들(702,…,70K)로 순차적으로 전달된다. 긴 코드워드의 데이터 비트들(D)의 처리가 완료될 때, 신드롬 생성기들(702,…,70K) 각각은 긴 코드워드의 긴 신드롬들(S2,…,SK)을 생성시킨다. 다수의 짧은 코드워드들을 포함하는 긴 코드워드의 데이터 비트들(D)은 신드롬 생성기(701)에 동시에 전달된다. 짧은 코드워드의 데이터 비트들(D)의 처리가 완료될 때, 신드롬 생성기(701)는 짧은 코드워드에 대응하는 짧은 신드롬을 생성한다. 예를 들어, 데이터 세그먼트(D1) 및 짧은 패리티(PS1)를 포함하는 짧은 코드워드(CS1)가 신드롬 생성기(701)로 전달될 때, 신드롬 생성기(701)는 짧은 코드워드(CS1)에 대응하는 짧은 신드롬을 생성시킨다. 데이터 세그먼트(D2) 및 짧은 패리티(PS2)를 포함하는 짧은 코드워드(CS2)가 신드롬 생성기(701)로 전달될 때, 신드롬 생성기(701)는 짧은 코드워드(CS2)에 대응하는 짧은 신드롬을 생성시킨다. 긴 코드워드가 다수의 짧은 코드워드들을 포함하기 때문에, 긴 코드워드의 모든 짧은 코드워드들의 처리가 완료된 후, 신드롬 생성기(701)는 긴 코드워드에 대응하는 긴 신드롬(S1)을 생성시킨다.
도 7에 도시된 신드롬 생성기들(701, 702, …, 70K) 각각은 가산기, 승산기 및 버퍼를 포함한다. 예를 들어, 신드롬 생성기(701)는 가산기(731), 승산기(721), 및 버퍼(711)를 포함한다. 버퍼(711)는 데이터(D1)를 버퍼링하고 나서 데이터(D1)를 출력한다. 가산기(731)는 버퍼(711)에 의해 출력되는 데이터(D1)를 긴 코드워드 이외에 데이터 비트(D)에 가산하여 제1신드롬들(S1)의 데이터 비트를 얻는다. 승산기(721)는 제1신드롬(S1)의 데이터 비트를 계수 α와 승산하여 데이터(D1)의 새로운 비트를 얻고 나서 데이터(D1)의 새로운 비트는 저장되도록 버퍼(711)로 전달된다. 계수 α는 제1생성 다항식 및 제2생성 다항식의 공통근이고 신드롬 생성기들(702,..., 70K)의 계수들 각각은 α2,...,αK 인데, 여기서 α2,...,αK 는 또한 긴 코드워드를 부호화하기 위한 제2생성 다항식의 근들이다.
도 8a 및 도 8b는 본 발명에 따른 에러 정정 코드를 복호화하기 위한 방법(800)의 순서도를 도시한다. 도 6에 도시된 ECC 디코더(600)는 상기 방법(800)에 따라서 에러 정정 코드를 복호화한다. 먼저, ECC 디코더(600)는 긴 코드워드를 수신한다(단계 802). 다음, 신드롬 계산기(602)는 긴 코드워드의 짧은 코드워의 다수의 짧은 신드롬들을 순차적으로 계산한다(단계 804). 예를 들어, ECC 디코더(600)는 우선, 긴 코드워드(CL)의 제1짧은 코드워드(CS1)를 처리한다. 다음, 제어 회로(608)는 신드롬 계산기(602)에 의해 생성된 짧은 신드롬들이 0과 동일한지의 여부를 판단한다(단계 806). 짧은 신드롬이 0과 동일한 것으로 판단되면, 짧은 신드롬에 대응하는 짧은 코드워드는 정정되고 신드롬 계산기(602)는 긴 코드워드의 모든 짧은 코드워드들이 신드롬 계산기(602)에 의해 처리될 때까지 다른 짧은 코드워드들(CS2, CS3,…, CSN)의 짧은 신드롬들을 계속 계산한다(단계 812). 짧은 신드롬이 0과 동일하지 않다면, 짧은 신드롬에 대응하는 짧은 코드워드는 에러 비트들을 포함하고 제어 회로(608)는 비제로 짧은 신드롬에 따라서 짧은 코드워드를 정정하고(단계 808) 정정 결과가 기록된다. 짧은 신드롬 계산기(602)가 긴 코드워드의 모든 짧은 코드워드들을 처리하지 않았다면(단계 810), 짧은 신드롬 계산기(602)는 나머지 짧은 코드워드들의 짧은 신드롬들을 계속해서 계산한다(단계 804).
모든 짧은 코드워드들의 짧은 신드롬들이 계산된 후, 신드롬 계산기(602)는 긴 코드워드에 대응하는 긴 신드롬을 계산한다(단계 813). 긴 신드롬이 0과 동일하지 않다면(단계 816), 긴 코드워드는 에러 비트들을 포함한다. 다음, 제어 회로(608)는 모든 짧은 코드워드들이 비제로 짧은 신드롬들에 따라서 성공적으로 정정했는지의 여부를 판단한다(단계 818). 비제로 짧은 신드롬들이 대응하는 짧은 코드워드들을 성공적으로 정정했다면(단계 818), 제어 회로(608)는 비제로 짧은 신드롬들에 따라서 긴 신드롬을 정정한다(단계 820). 예를 들어, 짧은 코드워드(CS4)의 짧은 신드롬이 0과 동일하지 않다면, 비제로 짧은 신드롬은 긴 코드워드에서 짧은 코드워드(CS4)에 대응하는 비트들을 정정하도록 사용된다. 정정된 긴 신드롬이 0과 동일하다면(단계 822), 긴 코드워드의 에러 비트들이 정정된 것으로 판단되며, 그 정정 결과는 호스트에 전송되고 긴 코드워드는 긴 신드롬에 따라서 정정을 필요로 하지 않아 긴 코드워드의 전체 복호화 과정에 의해 필요로 되는 시간 기간을 감소시킨다. 정정된 긴 신드롬이 0과 동일하지 않거나(단계 822) 비제로 짧은 신드롬들 중 일부가 대응하는 짧은 코드워드들을 성공적으로 정정하지 않았다면(단계 818), 제어 회로(608)는 원래의 긴 신드롬에 따라서 에러 있는 짧은 코드워드들을 정정하여 에러 비트들 없이 긴 코드워드를 얻고(단계 824), 긴 코드워드의 복호화 공정이 완료된다.
모든 짧은 신드롬들이 0과 동일한 것으로 판단되면, 정정된 긴 코드워드들의 판단시 에러가 발생할 수 있다. 짧은 신드롬이 몇 개의 에러 비트들을 정정하기 때문에, 짧은 코드워드가 짧은 신드롬의 정정 비트수 보다 많은 수의 에러 비트들을 포함할 때, 짧은 신드롬이 또한 0과 동일하다라고 판단된다. 따라서, 더 많은 에러 비트들을 정정할 수 있는 긴 신드롬은 긴 코드워드들이 정정되는지의 여부를 다시 판단하는데 필요로 된다. 예를 들어, 긴 코드워드는 24개 이상의 에러 비트들을 정정할 수 있다. 따라서, 짧은 코드워드가 8개의 에러 비트들을 포함하면, 긴 신드롬은 짧은 코드워드의 에러 비트들을 정정함으로써, 최소 에러로 정정된 긴 코드워드들의 판단을 보장할 수 있다.
본 발명이 예와 바람직한 실시예와 관련하여 설명되었지만, 본 발명이 이로 제한되지 않는다는 것을 이해하여야 한다. 그러므로, 각종 수정들 및 유사한 장치들(당업자에게 명백한 바와 같이)을 포함하도록 한다. 그러므로, 첨부된 청구범위는 모든 이와 같은 수정들 및 유사한 장치들을 포함하도록 가장 넓게 해석되어야 한다.

Claims (20)

  1. 에러 정정 코드를 부호화 및 복호화하기 위한 방법에 있어서,
    원시 데이터를 수신하는 단계;
    상기 원시 데이터를 다수의 데이터 세그먼트들로 분할하는 단계;
    제1생성 다항식에 따라서 상기 데이터 세그먼트들에 대응하는 다수의 짧은 패리티들을 생성하는 단계;
    상기 짧은 패리티들을 상기 데이터 세그먼트들에 부가하여 다수의 짧은 코드워드들을 얻는 단계;
    상기 짧은 코드워드들을 연결하여 코드 데이터를 얻는 단계;
    제2생성 다항식에 따라서 상기 코드 데이터에 대응하는 긴 패리티를 생성하는 단계; 및
    상기 긴 패리티를 상기 코드 데이터에 부가하여 상기 원시 데이터에 대응하는 에러 정정 코드로서 긴 코드워드를 얻는 단계를 포함하되,
    상기 제1생성 다항식은 상기 제2생성 다항식의 적어도 하나의 최소 다항식의 함수이고,
    상기 긴 코드워드를 저장 매체에 저장하는 단계를 더 포함하는, 에러 정정 코드의 부호화 및 복호화 방법.
  2. 제1항에 있어서, 상기 제1생성 다항식은 상기 제2생성 다항식의 적어도 하나의 최소 다항식의 최소 공배수인 것인, 에러 정정 코드의 부호화 및 복호화 방법.
  3. 삭제
  4. 제1항에 있어서,
    저장 매체로부터 상기 긴 코드워드를 판독하는 단계;
    상기 긴 코드워드로부터 상기 짧은 코드워드들을 검색하는 단계;
    상기 짧은 코드워드들의 짧은 패리티들에 따라서 상기 짧은 코드워드들에 대응하는 다수의 짧은 신드롬들을 계산하는 단계;
    상기 짧은 신드롬들이 0과 동일한지의 여부를 판단하는 단계; 및
    상기 짧은 신드롬들이 비제로 짧은 신드롬들을 포함한다면, 상기 비제로 짧은 신드롬들에 따라서 상기 짧은 코드워드들을 정정하는 단계를 더 포함하는, 에러 정정 코드의 부호화 및 복호화 방법.
  5. 제4항에 있어서,
    상기 긴 코드워드의 상기 긴 패리티에 따라서 상기 긴 코드워드에 대응하는 긴 신드롬을 계산하는 단계;
    상기 긴 신드롬이 0과 동일한지의 여부를 판단하는 단계;
    상기 긴 신드롬이 0과 동일하지 않다면, 상기 비제로 짧은 코드워드들이 상기 대응하는 짧은 코드워드들을 성공적으로 정정했는지의 여부를 판단하는 단계; 및
    상기 비제로 짧은 코드워드들이 상기 대응하는 짧은 코드워드들을 성공적으로 정정했다면, 상기 비제로 짧은 코드워드들에 따라서 상기 긴 신드롬을 정정하여 정정된 긴 신드롬을 얻는 단계를 더 포함하는, 에러 정정 코드의 부호화 및 복호화 방법.
  6. 제5항에 있어서, 상기 긴 신드롬이 0과 동일하지 않고 상기 비제로 짧은 코드워드들이 상기 대응하는 짧은 코드워드들을 성공적으로 정정하지 않았다면, 상기 긴 신드롬에 따라서 상기 짧은 코드워드들의 에러 있는 짧은 코드워드들을 정정하는 단계를 더 포함하는, 에러 정정 코드의 부호화 및 복호화 방법.
  7. 제1항에 있어서, 상기 긴 코드워드 및 상기 짧은 코드워드들은 BCH(Bose, Ray-Chaudhuri and Hocquenghem) 코드들 또는 RS(Reed-Solomon) 코드들인 것인, 에러 정정 코드의 부호화 및 복호화 방법.
  8. 에러 정정 코드를 위한 코더-디코더에 있어서,
    원시 데이터를 수신하고, 상기 원시 데이터를 다수의 데이터 세그먼트들로 분할하며, 상기 데이터 세그먼트들에 대응하는 다수의 짧은 패리티들을 생성하고, 상기 짧은 패리티들을 상기 데이터 세그먼트들에 부가하여 다수의 짧은 코드워드들을 얻으며, 상기 짧은 코드워드들을 연결하여 코드 데이터를 얻어, 상기 코드 데이터에 대응하는 긴 패리티를 생성하며, 상기 긴 패리티를 상기 코드 데이터에 부가하여 저장 매체에 저장될 에러 정정 코드로서 긴 코드워드를 얻는 에러 정정 코드(ECC) 인코더; 및
    상기 저장 매체로부터 상기 긴 코드워드를 판독하고, 상기 긴 코드워드로부터 상기 짧은 코드워드들을 검색하며, 상기 짧은 코드워드들의 상기 짧은 패리티들에 따라서 상기 짧은 코드워드들에 대응하는 다수의 짧은 신드롬들을 계산하고, 상기 짧은 신드롬들이 0과 동일한지의 여부를 판단하여, 상기 짧은 신드롬들이 비제로 짧은 신드롬들을 포함한다면, 상기 비제로 짧은 신드롬들에 따라서 상기 짧은 코드워드들을 정정하는 에러 정정 코드(ECC) 디코더를 포함하는, 에러 정정 코드용의 코더-디코더.
  9. 제8항에 있어서, 상기 ECC 인코더는 제1생성 다항식에 따라서 상기 데이터 세그먼트들에 대응하는 상기 짧은 패리티들을 생성하고, 제2생성 다항식에 따라서 상기 코드 데이터에 대응하는 상기 긴 패리티를 생성하며, 상기 제1생성 다항식은 상기 제2생성 다항식의 적어도 하나의 최소 다항식의 함수인 것인, 에러 정정 코드용의 코더-디코더.
  10. 제9항에 있어서, 상기 제1생성 다항식은 상기 제2생성 다항식의 적어도 하나의 최소 다항식의 최소 공배수인 것인, 에러 정정 코드용의 코더-디코더.
  11. 제9항에 있어서, 상기 ECC 인코더는
    상기 제1생성 다항식에 따라서 상기 데이터 세그먼트들에 대응하는 상기 짧은 패리티들을 생성하는 짧은 패리티 인코더;
    상기 짧은 패리티들을 상기 데이터 세그먼트들에 부가하여 상기 짧은 코드워드들을 얻는 제1부가 모듈;
    상기 짧은 코드워드들을 연결하여 상기 코드 데이터를 얻고 상기 제2생성 다항식에 따라서 상기 코드 데이터에 대응하는 상기 긴 패리티를 생성하는 긴 패리티 인코더; 및
    상기 긴 패리티를 상기 코드 데이터에 부가하여 상기 긴 코드워드들을 얻는 제2부가 모듈을 포함하는 것인, 에러 정정 코드용의 코더-디코더.
  12. 제8항에 있어서, 상기 ECC 디코더는 부가적으로 상기 긴 코드워드의 상기 긴 패리티에 따라서 상기 긴 코드워드에 대응하는 긴 신드롬을 계산하고, 상기 긴 신드롬이 0과 동일한지의 여부를 판단하여, 상기 긴 신드롬이 0과 동일하지 않다면, 상기 비제로 짧은 코드워드들이 상기 대응하는 짧은 코드들을 성공적으로 정정했는지의 여부를 판단하고, 상기 비제로 짧은 코드워드들이 상기 대응하는 짧은 코드워드들을 성공적으로 정정했다면, 상기 비제로 짧은 코드워드들에 따라서 상기 긴 신드롬을 정정하여 정정된 긴 신드롬을 얻는 것인, 에러 정정 코드용의 코더-디코더.
  13. 제12항에 있어서, 상기 긴 신드롬이 0과 동일하지 않고 상기 비제로 짧은 코드워드들이 상기 대응하는 짧은 코드워드들을 성공적으로 정정하지 않았다면, 상기 ECC 디코더는 상기 긴 신드롬에 따라서 상기 짧은 코드워드들의 에러 있는 짧은 코드워드들을 정정하는 것인, 에러 정정 코드용의 코더-디코더.
  14. 제12항에 있어서, 상기 ECC 디코더는
    상기 짧은 코드워드들의 상기 짧은 패리티들에 따라서 상기 짧은 코드워드들의 상기 짧은 신드롬을 계산하고 상기 긴 코드워드의 상기 긴 패리티에 따라서 상기 긴 코드워드의 상기 긴 신드롬을 계산하는 신드롬 계산기; 및
    상기 짧은 신드롬들이 0과 동일한지의 여부를 판단하여, 상기 짧은 신드롬들이 0과 동일하지 않다면 상기 비제로 짧은 신드롬들에 따라서 상기 짧은 코드워드들을 정정하며, 상기 긴 신드롬이 0과 동일한지의 여부를 판단하여, 상기 긴 신드롬이 0과 동일하지 않다면 상기 비제로 짧은 코드워드들이 상기 대응하는 짧은 코드워드들을 성공적으로 정정했는지의 여부를 판단하고, 상기 비제로 짧은 코드워드들이 상기 대응하는 짧은 코드워드들을 성공적으로 정정했다면 상기 비제로 짧은 코드워드들에 따라서 상기 긴 신드롬을 정정하여 정정된 긴 신드롬을 얻는 제어 회로를 포함하는 것인, 에러 정정 코드용의 코더-디코더.
  15. 제8항에 있어서, 상기 긴 코드워드 및 상기 짧은 코드워드들은 BCH 코드들 또는 RS 코드들인 것인 에러 정정 코드용의 코더-디코더.
  16. 에러 정정 코드를 복호화하기 위한 방법에 있어서,
    에러 정정 코드의 긴 코드워드를 수신하는 단계로서, 상기 긴 코드워드가 다수의 짧은 코드워드들 및 긴 패리티를 포함하고 상기 짧은 코드워드들 각각은 짧은 패리티를 포함하는 것인, 긴 코드워드의 수신 단계;
    상기 긴 코드워드로부터 상기 짧은 코드워드들을 검색하는 단계;
    상기 짧은 코드워드들의 짧은 패리티들에 따라서 상기 짧은 코드워드들에 대응하는 다수의 짧은 신드롬들을 계산하는 단계;
    상기 짧은 신드롬들이 0과 동일한지의 여부를 판단하는 단계;
    상기 짧은 신드롬들이 적어도 하나의 비제로 짧은 신드롬을 포함할 때, 상기 적어도 하나의 비제로 짧은 신드롬에 따라서 적어도 하나의 대응하는 짧은 코드워드를 정정하는 단계;
    상기 긴 코드워드의 상기 긴 패리티에 따라서 상기 긴 코드워드에 대응하는 긴 신드롬을 계산하는 단계;
    상기 긴 신드롬이 0과 동일한지의 여부를 판단하는 단계;
    상기 긴 신드롬이 0과 동일하지 않으면, 상기 비제로 짧은 코드워드들이 상기 대응하는 짧은 코드워드들을 성공적으로 정정했는지의 여부를 판단하는 단계; 및
    상기 비제로 짧은 코드워드들이 상기 대응하는 짧은 코드워드들을 성공적으로 정정했다면, 상기 비제로 짧은 코드들에 따라서 상기 긴 신드롬을 정정하여 정정된 긴 신드롬을 얻는 단계를 포함하는, 에러 정정 코드의 복호화 방법.
  17. 제16항에 있어서, 상기 긴 신드롬이 0과 동일하지 않고 상기 비제로 짧은 코드워드들이 상기 대응하는 짧은 코드워드들을 성공적으로 정정하지 않았다면, 상기 긴 신드롬에 따라서 상기 짧은 코드워드들의 에러 있는 짧은 코드워드들을 정정하는 단계를 더 포함하는, 에러 정정 코드의 복호화 방법.
  18. 제16항에 있어서, 상기 짧은 패리티들은 제1생성 다항식에 따라서 생성되고, 상기 긴 패리티가 제2생성 다항식에 따라서 생성되며, 상기 제1생성 다항식은 상기 제2생성 다항식의 적어도 하나의 최소 다항식의 함수인 것인, 에러 정정 코드의 복호화 방법.
  19. 제18항에 있어서, 상기 제1생성 다항식은 상기 제2생성 다항식의 적어도 하나의 최소 다항식의 최소 공배수인 것인, 에러 정정 코드의 복호화 방법.
  20. 제16항에 있어서, 상기 긴 코드워드 및 상기 짧은 코드워드들은 BCH 코드들 또는 RS 코드들인 것인, 에러 정정 코드의 복호화 방법.
KR1020127002747A 2009-07-01 2009-08-07 에러 정정 코드의 부호화 및 복호화 방법 그리고 코덱 Active KR101314232B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US22246809P 2009-07-01 2009-07-01
US61/222,468 2009-07-01
PCT/CN2009/073148 WO2011000176A1 (zh) 2009-07-01 2009-08-07 错误修正码的编码及解码方法以及编码解码器

Publications (2)

Publication Number Publication Date
KR20130014484A KR20130014484A (ko) 2013-02-07
KR101314232B1 true KR101314232B1 (ko) 2013-10-02

Family

ID=43391438

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127002747A Active KR101314232B1 (ko) 2009-07-01 2009-08-07 에러 정정 코드의 부호화 및 복호화 방법 그리고 코덱

Country Status (4)

Country Link
KR (1) KR101314232B1 (ko)
CN (1) CN101938280B (ko)
TW (1) TWI397811B (ko)
WO (1) WO2011000176A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8806309B2 (en) * 2011-06-13 2014-08-12 Silicon Motion Inc. Method for controlling message-passing algorithm based decoding operation by referring to statistics data of syndromes of executed iterations and related control apparatus thereof
KR101636406B1 (ko) * 2015-01-30 2016-07-05 고려대학교 산학협력단 저지연 신드롬 계산을 위한 bch 디코더의 전처리 장치 및 방법
TWI566091B (zh) * 2015-09-10 2017-01-11 慧榮科技股份有限公司 用來對一錯誤更正碼進行解碼之方法與解碼電路
EP4123937B1 (en) 2016-06-19 2025-08-13 LG Electronics, Inc. Data transmission method and transmitter
US20180358989A1 (en) * 2017-06-09 2018-12-13 Western Digital Technologies, Inc. Non-volatile Storage Systems With Application-Aware Error-Correcting Codes
CN115278769A (zh) * 2021-04-30 2022-11-01 华为技术有限公司 数据传输方法、装置、系统及可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR910000156B1 (ko) * 1983-01-20 1991-01-21 니뽄 호소 교까이 에러 정정 방법 및 시스템
KR20080043679A (ko) * 2006-11-14 2008-05-19 삼성전자주식회사 에러 정정 방법 및 이에 적합한 장치

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5642366A (en) * 1994-07-05 1997-06-24 Adaptec, Inc. Global parity symbol for interleaved reed-solomon coded data
US5782799A (en) * 1997-02-07 1998-07-21 Sarcos, Inc. Method for automatic dosing of drugs
JP2003323751A (ja) * 2002-04-30 2003-11-14 Sony Corp 光磁気ディスク
CN100557715C (zh) * 2006-08-11 2009-11-04 福昭科技(深圳)有限公司 利用一组ecc电路并行处理多组数据的方法
TWI332611B (en) * 2007-05-24 2010-11-01 Realtek Semiconductor Corp Method for writing data in flash memory and error correction coding/decoding method thereof
US7853857B2 (en) * 2007-09-14 2010-12-14 Motorola Mobility, Inc. Multi-layer cyclic redundancy check code in wireless communication system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR910000156B1 (ko) * 1983-01-20 1991-01-21 니뽄 호소 교까이 에러 정정 방법 및 시스템
KR20080043679A (ko) * 2006-11-14 2008-05-19 삼성전자주식회사 에러 정정 방법 및 이에 적합한 장치

Also Published As

Publication number Publication date
TWI397811B (zh) 2013-06-01
WO2011000176A1 (zh) 2011-01-06
KR20130014484A (ko) 2013-02-07
WO2011000176A8 (zh) 2012-12-13
CN101938280A (zh) 2011-01-05
CN101938280B (zh) 2013-09-25
TW201102807A (en) 2011-01-16

Similar Documents

Publication Publication Date Title
US8468432B2 (en) Coder-decoder and method for encoding and decoding an error correction code
US10243589B2 (en) Multi-bit error correction method and apparatus based on a BCH code and memory system
CA3193950C (en) Forward error correction with compression coding
US7721185B1 (en) Optimized reed-solomon decoder
US8806295B2 (en) Mis-correction and no-correction rates for error control
US20030188253A1 (en) Method for iterative hard-decision forward error correction decoding
KR101314232B1 (ko) 에러 정정 코드의 부호화 및 복호화 방법 그리고 코덱
US8370727B2 (en) Method and circuit for decoding an error correction code
US7231575B2 (en) Apparatus for iterative hard-decision forward error correction decoding
CN113922825A (zh) 用于误差校正代码的低延迟解码器
US20050154964A1 (en) Data retrieval from a storage device using a combined error correction and detection approach
US8365053B2 (en) Encoding and decoding data using store and exclusive or operations
KR102705065B1 (ko) 낮은 레이턴시를 갖는 에러정정코드 디코더
US9236890B1 (en) Decoding a super-code using joint decoding of underlying component codes
JPH08293802A (ja) インターリーブ式誤り訂正方法
US8181096B2 (en) Configurable Reed-Solomon decoder based on modified Forney syndromes
WO2008069465A1 (en) Method and apparatus for checking correction errors using cyclic redundancy check

Legal Events

Date Code Title Description
A201 Request for examination
PA0105 International application

Patent event date: 20120131

Patent event code: PA01051R01D

Comment text: International Patent Application

PA0201 Request for examination
PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20130228

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20130705

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20130926

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20130927

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
FPAY Annual fee payment

Payment date: 20160713

Year of fee payment: 4

PR1001 Payment of annual fee

Payment date: 20160713

Start annual number: 4

End annual number: 4

FPAY Annual fee payment

Payment date: 20170727

Year of fee payment: 5

PR1001 Payment of annual fee

Payment date: 20170727

Start annual number: 5

End annual number: 5

FPAY Annual fee payment

Payment date: 20190705

Year of fee payment: 7

PR1001 Payment of annual fee

Payment date: 20190705

Start annual number: 7

End annual number: 7

PR1001 Payment of annual fee

Payment date: 20200707

Start annual number: 8

End annual number: 8

PR1001 Payment of annual fee

Payment date: 20210818

Start annual number: 9

End annual number: 9

PR1001 Payment of annual fee

Payment date: 20220822

Start annual number: 10

End annual number: 10

PR1001 Payment of annual fee

Payment date: 20230829

Start annual number: 11

End annual number: 11

PR1001 Payment of annual fee

Payment date: 20240819

Start annual number: 12

End annual number: 12