KR100517482B1 - 곱셈 코드에 대한 동시 행/열 신드롬 발생기 - Google Patents

곱셈 코드에 대한 동시 행/열 신드롬 발생기 Download PDF

Info

Publication number
KR100517482B1
KR100517482B1 KR10-2000-7000623A KR20007000623A KR100517482B1 KR 100517482 B1 KR100517482 B1 KR 100517482B1 KR 20007000623 A KR20007000623 A KR 20007000623A KR 100517482 B1 KR100517482 B1 KR 100517482B1
Authority
KR
South Korea
Prior art keywords
syndrome
error
codewords
buffer
codeword
Prior art date
Application number
KR10-2000-7000623A
Other languages
English (en)
Other versions
KR20010022054A (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 KR20010022054A publication Critical patent/KR20010022054A/ko
Application granted granted Critical
Publication of KR100517482B1 publication Critical patent/KR100517482B1/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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • 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
    • 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
    • H03M13/2909Product codes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs

Landscapes

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

Abstract

제 2 세트의 코드워드와 교차하는 제 1 세트의 코드워드를 포함하는 다차원 코드를 정정하기 위한 효율적인 에러 정정 프로세서가 개시된다. 제 1 및 제 2 세트의 코드워드에 대한 반복적인 경로를 수행함으로써 에러 정정이 수행된다. 개별 코드워드는 코드워드 데이터의 함수로 계산된 에러 신드롬을 사용하여 정정된다. 양호한 실시예에 있어서, 개별 코드워드는 리드-솔로몬 코드에 따라 엔코드되고, 에러 신드롬은 생성 다항식의 계수에 의한 코드워드 다항식의 모듈로 나눗셈으로 계산된다. 에러 정정 프로세서의 처리량을 증대시키기 위하여, 제 1 및 제 2 세트의 코드워드 모두에 대한 에러 신드롬의 동시 생성을 쉽게 하기 위하여 신드롬 버퍼가 사용된다. 이러한 방법에 있어서, 제 1 세트의 코드워드에 대한 경로 이후에, 상기 제 2 세트의 코드워드에 대한 에러 신드롬은 곧바로 처리하기 위하여 유용하다. 한 실시예에 있어서, 신드롬 버퍼는, 에러 신드롬을 생성하기 위하여 코드워드에 대한 일회의 경로만이 필요하도록, 제 1 및 제 2 세트의 코드워드에 대한 에러 신드롬을 저장한다. 후속하는 경로에 있어서, 에러 신드롬은 곧바로 유용한데, 종래 기술에서와 같이 이들은 다시 생성되지 않는다.

Description

곱셈 코드에 대한 동시 행/열 신드롬 발생기{CONCURRENT ROW/COLUMN SYNDROME GENERATOR FOR A PRODUCT CODE}
본 발명은 컴퓨터 저장 장치를 위한 에러 정정 시스템에 관한 것이고, 보다 상세하게는 다차원 코드의 코드워드에 대한 신드롬(syndromes)을 생성하기 위한 편리한 방법 및 장치에 관한 것이다.
컴퓨터 시스템을 위한 저장 장치에 있어서, 회전하는 자기 또는 광학 디스크의 표면에 일련의 변화를 동심 또는 나선형 데이터 트랙 형태로 기록하기 위하여, 데이터의 디지털 스트림은 기록 트랜스듀서(transducer)의 동작(예, 코일의 전류 또는 레이저 빔의 강도)을 변조시킨다. 기록된 데이터의 판독은 기록 트랜스듀서를 데이터 트랙 위에 위치시키고, 표면 변화를 감지하고, 결과의 아날로그 판독 신호를 원래 기록된 데이터를 나타내는 추정 데이터 시퀀스로 복조하는 것을 수반한다.
디스크 저장 매체에 데이터를 기록하고, 이로부터 데이터를 판독하는 처리는, 케이블 또는 대기와 같이 잡음이 존재하는 통신 매체를 통해 디지털 데이터가 전달되는 통신 채널과 유사하다. 통신 및 기록 시스템 모두에 있어서, 목표는 송신된/기록된 데이터를 쉽고 효율적으로 수신/판독하는 것이다. 신뢰도는 얼마나 정확한 데이터가 수신되는 지의 척도(measure), 또는 선택적으로, 기록/통신 처리 과정에서의 고유 잡음에 의해 손상된 후 채널 신호로부터 검출된 추정 데이터 시퀀스 내의 비트 에러율이다. 효율은 소스 데이터율의 기준, 즉 소스 데이터가 통신 매체를 통해 얼마나 빨리 전달될 수 있는 지, 그리고 여전히 지정된 비트 에러율을 유지할 수 있는 지의 척도이다. 컴퓨터 저장 시스템에 있어서, 효율은 주어진 한 트랙에서 선형 데이터 밀도 및 인치당 동심 트랙수(tpi)의 척도이다.
"잡음 채널 코딩 이론"으로 알려진 것에 있어서, 샤논(shannon)은, 잡음이 통신 채널에서 야기하는 기본 제한은 통신의 신뢰도에 대한 것이 아니라 통신 속도에 대한 것으로, 통신 시스템의 "신뢰도" 및 "효율" 파라메터가 관련됨을 보여주었다. 메모리가 없는 이산 채널을 통해 데이터가 전달될 수 있고 여전히 에러 확률을 0으로 접근시킬 수 있는 최대 비율은, 궁극적으로 채널 대역폭과 신호대 잡음비(SNR)의 함수인, 채널 용량으로 불린다.
통신 시스템에서 SNR을 증대시키고, 따라서 시스템의 신뢰도와 효율을 증대시키기 위한 공지된 방법은 소스 데이터를 에러 정정 코드(ECC)에 따라 엔코드하는 것이다. 에러 정정 코드는 잡음에 대한 시스템의 면역성을 증대시킴으로써 유효 SNR을 증대시킨다. 블록 에러 정정 코드, 특히 리드-솔로몬(Reed-Solomon) 블록 코드는 훌륭한 에러 정정 특성, 낮은 실현 비용 및 낮은 복잡도로 인해 디스크 저장 시스템에 공통적으로 채용된다.
블록 코드는 소스 데이터 스트림 중 k-심벌의 입력 블록을 n-심벌의 출력 블록 또는 코드워드로 엔코드하는데, 여기에서 n-k는 여분의(redundancy) 심벌의 수이고, k/n는 코드 비율로 언급된다. 코드워드는 그런 다음 통신 매체를 통해 전달되어(이에 저장되어), 수신기에 의해 디코드된다. 엔코딩 처리는, 출력 코드워드가 코드의 최소 거리(dmin)로 언급되는 파라메터만큼 서로 다르게 되도록, 입력 블록에 대한 수학적인 동작(operation)을 수행한다. 코드워드 사이의 최소 거리(dmin)는 수신된 코드워드가 잘못 디코드되기 전에 시스템이 견딜 수 있는 잡음의 양을 결정한다.
리드-솔로몬 코드에 대해, 데이터 스트림의 각 심벌은 전형적으로 유한 필드{GF(2W)}로부터 선택되는데, 여기에서 w는 한 심벌 내의 2진 데이터 비트의 수이다. k-심벌 입력 블록의 각 심벌은 데이터 다항식{D(x)}의 계수를 나타낸다. 여분의 심벌(다항식{W(x)}으로 표시되기도 하는)은 따라서 생성 다항식{G(x)}에 의한 입력 데이터 다항식{D(x)}의 모듈로 나눗셈(modulo division)으로 계산된다.
W(x) = {xm·D(x)} MOD G(x)
여기에서 m은 여분의 심벌 수와 동일한 생성 다항식의 차수이다. 여분의 다항식{W(x)}은 따라서 코드워드 다항식{C(x)}을 생성하기 위하여 데이터 다항식{D(x)}에 더해진다.
C(x) = {xm·D(x)} + W(x)
상기 동작을 수행하기 위한 엔코더 회로는 단순히 선형 피드백 시프트 레지스터(LFSR)로서 실현될 수 있다.
엔코딩 이후, 코드워드{C(x)}는 잡음이 있는 통신 채널을 통해 전달되는데, 수신된 코드워드{C'(x)}는 송신된 코드워드{C(x)}와 에러 다항식{E(x)}이 더해진 것과 동일하다. 수신된 코드워드{C'(x)}는: (1) 에러 신드롬(Si)을 계산하는 단계, (2) 상기 에러 신드롬(Si)을 사용하여 에러 설정자(locator) 다항식의 계수를 계산하는 단계, (3) 에러 설정자 다항식의 루트를 계산하는 단계로서, 상기 루트의 로그값은 에러 위치(Li)인, 루트를 계산하는 단계, (4) 에러 신드롬(Si)과 에러 위치(Li)를 사용하여 에러 값을 계산하는 단계에 따라, 정정된다.
에러 신드롬(Si)은 생성 다항식{G(x)}의 계수에 의해, 수신된 코드워드 다항식{C'(x)}의 모듈로 나눗셈으로서 계산된다.
G(x) = 일 때, Si = C'(x) MOD (x + αi)
여기에서, α는 유한 필드{GF(2W)}의 기본 요소이다. 디코딩 처리의 다른 단계를 수행하고, 에러 설정자 다항식을 계산하고, 에러 설정자 다항식의 루트를 계산하고, 에러 값을 계산하는 기술은 당업자에게 공지된 것이고, 본 발명을 이해하는데 필요한 것은 아니다. 예컨대, 발명의 명칭이 "계수 갱신 방법 및 리드-솔로몬 디코더 장치"인 미국특허 제5,446,743호를 참조할 수 있다.
종래 기술에서 공지된, 시스템의 에러 내성을 더 증대시키기 위한 다른 기술은 코드워드를 다차원 또는 곱셈 코드로서 공지된 것으로 배열시키는 것이다. 예컨대 광 디스크 저장 시스템은 공통적으로 도 2에 도시된 2차원 곱셈 코드를 채용한다. 코드워드는 교차하는 수평(또는 행) 및 수직(또는 열) 코드워드로 배열되고, 디코딩 처리는 반복 경로로 수행된다. 먼저, 가능한 많은 에러를 정정하기 위하여 수평 코드워드에 대한 경로가 수행되고, 정정할 수 없는 수평 코드워드는 변경되지 않은채 잔류한다. 그후, 가능한 많은 에러를 정정하기 위하여 수직 코드워드에 대한 경로가 이루어지는데, 여기에서 수직 코드워드에서 정정된 하나의 심벌은 또한 교차하는 수평 코드워드에 대한 대응 심벌을 정정한다. 결과적으로, 수평 코드워드는 다음의 수평 경로 동안에 수정될 수 있을 것이다. 유사하게, 수평 경로 도중에 정정된 한 심벌은, 이전에 정정할 수 없었던 수직 코드워드를 다음 수직 경로 도중에 정정 가능하게 한다. 이러한 반복 처리는 전체 곱셈 코드가 정정될 때까지 또는 정정할 수 없는 것으로 간주될 때까지 지속된다.
곱셈 코드의 다차원 특성은 에러 내성을 상당히 증대시키지만, 수평 및 수직 코드워드에 대한 반복 경로는 상당한 양의 계산 시간을 필요로 한다. 광 디스크 저장 장치에 있어서, 이러한 계산 시간은 디스크로부터 데이터를 판독할 때 대기 시간으로 전환되고, 연속 스트림에서 진행 데이터의 전달을 방해할 수도 있다. 이러한 점은 특히 평탄하고 차단되지 않는 오디오/비디오 흐름을 필요로 하는 멀티-미디어 응용에서는 상당히 바람직하지 않을 수 있다. 발명의 명칭이 "다차원 코드를 효율적으로 처리하기 위한 방법 및 장치"인 미국특허는, 에러를 포함한다고 플래그된 수평 및 수직 코드워드만을 처리함으로써(즉, 에러가 없는 코드워드는 생략됨), 곱셈 코드의 처리 시간을 줄이는 방법을 개시하였다. 그럼에도 불구하고, 수평 및 수직 경로 각각의 도중에 에러 신드롬을 다시 생성하기 위하여 데이터 버퍼로부터 코드워드를 판독하는데 상당한 대기 시간이 존재한다.
카시다(Kashida) 등에 허여된 미국 특허(제5,631,914호)에 있어서, 제 1 수평 경로 도중에 수평 및 수직 코드워드에 대한 에러 신드롬을 동시에 생성함으로써 곱셈 코드를 처리하기 위한 에러 정정 장치가 개시되었다. 에러 신드롬은 신드롬 버퍼에 저장된 후, 후속하는 정정 상태 도중에 수평 및 수직 코드워드 내의 에러를 검출하고 정정하기 위하여 사용된다. 수평 코드에 적용된 정정 값이 교차하는 수직 코드워드에 대한 에러 신드롬을 갱신하기 위하여 또한 이의 역으로도 사용되기 때문에, 후속하는 수평 또는 수직 경로 도중에 에러 신드롬을 다시 생성할 필요가 없다. 그러나, 이러한 기술은, 수평 및 수직 코드워드 모두에 대한 에러 신드롬이 에러 정정 상태가 시작되기 이전에, 제 1 수평 경로 도중에 생성되어야만 하기 때문에, 정정 처리에 대한 대기 시간을 야기한다.그러므로, 다차원 코드를 디코딩하기 위한 더 빠르고 보다 효율적인 에러 정정 프로세서가 필요하다.
도 1은 디스크 저장 매체에 저장된 다차원 코드워드를 정정하기 위한 종래 기술의 에러 정정 프로세서의 블록도.
도 2는 디지털 비디오 디스크(DVD)에서 전형적으로 채용된 2차원 곱셈 코드.
도 3은 에러 신드롬을 저장하기 위한 신드롬 버퍼를 포함하는, 본 발명에 따른 에러 정정 프로세서의 블록도.
도 4는 본 발명의 제 1 실시예에 따른 수평 코드워드 에러 신드롬을 생성하기 위한 상세 회로도.
도 5는 수평 코드워드에 대한 에러 신드롬을 생성하는 것과 동시에 수직 코드워드 에러 신드롬을 생성하기 위한 상세 회로도.
도 6a 및 도 6b는, 본 발명의 다른 실시예를 위해, 신드롬 버퍼가 수평 및 수직 코드워드 모두에 대한 에러 신드롬을 저장할 때, 수평 및 수직 에러 신드롬을 각각 갱신하기 위한 회로를 도시하는 도면.
도 7a는 신드롬 버퍼에 저장된 수평 및 수직 에러 신드롬을 사용하여 곱셈 코드를 처리하기 위한 에러 정정 프로세서에 의해 실행되는 흐름도.
도 7b는 수평 코드워드에 대한 제 1 경로 도중에 수평 및 수직 에러 신드롬을 동시에 생성하기 위한 흐름도.
도 7c는 제 1 수평 경로 도중에 수평 코드워드를 정정하고, 정정 값을 사용하여 신드롬 버퍼에 저장된 수직 에러 신드롬을 갱신하기 위한 흐름도.
도 7d는 신드롬 버퍼에 저장된 수직 에러 신드롬을 사용하여 수직 경로 도중에 수직 코드워드를 정정하고, 정정 값을 사용하여 신드롬 버퍼에 저장된 수평 에러 신드롬을 갱신하기 위한 흐름도.
도 7e는 신드롬 버퍼에 저장된 수평 에러 신드롬을 사용하여 후속하는 수평 경로 도중에 수평 코드워드를 정정하고, 정정 값을 사용하여 신드롬 버퍼에 저장된 수직 에러 신드롬을 갱신하기 위한 흐름도.
제 2 세트의 코드워드와 교차하는 제 1 세트의 코드워드를 포함하는 다차원 코드를 정정하기 위한, 효율적인 에러 정정 프로세서가 개시된다. 에러 정정은 코드워드의 제 1 및 제 2 세트에 대한 반복 경로를 수행함으로써 수행된다. 개별적인 코드워드는 코드워드 데이터의 함수로서 계산되는 에러 신드롬을 사용하여 정정된다. 양호한 실시예에 있어서, 개별 코드워드는 리드-솔로몬 코드에 따라 엔코드되고, 에러 신드롬은 생성 다항식의 계수에 의한 코드워드 다항식의 모듈로 나눗셈으로서 계산된다.
에러 정정 프로세서는 전체 다차원 코드워드를 저장하기 위한 데이터 버퍼를 포함하는데, 데이터 버퍼에 저장된 개별 코드워드는 반복 경로 도중에 정정된다. 데이터 버퍼를 억세스하는데 있어서의 대기 시간을 최소화하기 위하여, 에러 정정 프로세서는 개별 코드워드에 대한 에러 신드롬을 저장하기 위한 신드롬 버퍼를 포함한다. 이러한 방법에 있어서, 에러 신드롬이 신드롬 버퍼 내에서 이미 유효할 때, 데이터 버퍼로부터의 개별 코드워드를 판독할 필요가 없다. 신드롬 버퍼는 다이내믹 RAM(DRAM)으로 실현된 데이터 버퍼와 비교하여 매우 고속인 정적 RAM(SRAM)으로 실현되는 것이 바람직하다.
제 1 실시예에 있어서, 제 2 세트의 코드워드에 대한 에러 신드롬은 제 1 세트의 코드워드에 대한 에러 신드롬과 동시에 생성된다. 제 1 세트의 코드워드에 대한 경로가 종료될 때, 제 2 세트의 코드워드에 대한 에러 신드롬은 신드롬 버퍼로부터 즉시 취득 가능하게 된다, 즉 에러 신드롬을 생성하기 위하여 데이터 버퍼로부터의 제 2 세트의 코드워드를 판독하는 것은 필요하지 않다. 이러한 점은 에러 정정 프로세서의 처리량을 상당히 증대시킨다.
제 2 실시예에 있어서, 신드롬 버퍼는 제 1 및 제 2 세트의 코드워드에 대한 에러 신드롬을 저장한다. 제 1 및 제 2 세트의 코드워드 모두에 대한 에러 신드롬은 제 1 세트 코드워드에 대한 제 1 경로 도중에 동시에 생성된다. 이러한 방법에 있어서, 제 1 수평 경로 이후의 데이터 버퍼에 대한 억세스만으로 데이터 심벌을 정정하게 된다, 즉 에러 신드롬을 재생성하기 위하여 전체 코드워드를 데이터 버퍼로부터 판독하는 것이 필요하지 않은데, 이는 에러 신드롬이 이미 신드롬 버퍼 내에서 취득 가능하기 때문이다.
두 실시예에 있어서, 신드롬 버퍼 내에 저장된 에러 신드롬은 심벌이 교차하는 코드워드 내에서 정정될 때 갱신된다. 예컨대, 제 1 세트 코드워드의 한 심벌이 정정된다면, 상기 정정된 심벌에서 제 1 세트의 코드워드를 교차하는 제 2 세트의 코드워드에 대해, 에러 신드롬은 신드롬 버퍼로부터 판독되고, 정정 값을 사용하여 갱신된다. 에러 신드롬이 제 1 및 제 2 세트의 코드워드에 대해 저장되는 제 2 실시예에 있어서, 에러 신드롬은 자동적으로, 정정된 데이터 심벌의 위치에 따른 정정 값을 사용하여 조정된다.
본 발명의 상기 및 다른 특성은 도면을 고려하여 본 발명의 다음의 상세한 설명을 통해 보다 더 이해될 것이다.
개 요
디스크 저장 장치에 대한 전형적인 종래 기술의 에러 정정 프로세서에 대한 개요는 도 1에 도시되었다. 기록 동작(저장 장치는 판독 전용이 아니라고 간주) 도중에, 사용자 데이터는 호스트 컴퓨터로부터 전달되어 데이터 버퍼(2)에 저장된다. 그후 여분/신드롬 생성기(4)는 다차원 코드의 개별 코드워드에 대한 ECC 여분 심벌을 생성하기 위하여 데이터 버퍼(2)로부터 데이터를 판독한다. 일단 다차원 코드의 서브세트 코드워드(subset codeword)가 생성되면, CRC 검사 심벌은 서브세트 코드워드에 대해 생성되고, 그런 다음 전체 다차원 코드워드는 자기 또는 광 매체가 될 수 있는 디스크 저장 매체(6)에 기록된다.
양호한 실시예에 있어서, 개별 코드워드는 리드-솔로몬 코드에 따라 생성된다. 리드-솔로몬 코드워드{C(x)}는 다음 형태의 다항식으로 표시된다.
C(x) = xm·D(x) + {xm·D(x)} MOD G(x)
여기에서, D(x)는 데이터 다항식이고, G(x)는 생성 다항식이고, m은 생성 다항식{G(x)}의 차수이다. 데이터 다항식{D(x)}의 계수는, 호스트 시스템으로부터 수신되어 데이터 버퍼(2)에 저장된 데이터 스트림의 w-비트 심벌이다. 코드워드{C(x)}를 생성하기 위하여, 데이터 다항식{D(x)}은 xm으로 곱해진 후, ECC 여분 심벌이 더해지는데, 상기 ECC 여분 심벌은 모듈로 나눗셈으로 생성된다.
{xm·D(x)} MOD G(x)
엔코딩 처리는 당업자에게 공지된 선형 피드백 시프트 레지스터(LFSR)를 사용하여 단순히 실현될 수 있다.
판독 동작 도중에, 다차원 코드워드는 디스크 저장 매체(6)로부터 판독되어 데이터 버퍼(2)에 저장된다. 정정 프로세서는 그런 다음 코드워드의 제 1 및 제 2 세트에 대한 반복 경로를 개시한다. 개별 코드워드는 데이터 버퍼(2)로부터 판독되고, 에러 신드롬(Si)은 코드워드 다항식{C'(x)}을 생성 다항식{G(x)}의 계수로 나눔으로써 계산된다.
G(x) = 일 때, Si = C'(x) MOD (x + αi)
여기에서, α는 유한 필드{GF(2W)}의 기본 요소이다. 신드롬(Si)이 0이 아니라면, 코드워드{C'(x)}가 에러를 갖는 하나 이상의 심벌을 포함하는 것을 나타낸다. 신드롬(Si)은 라인(10)을 통해, 에러 위치와 정정 값을 계산하는 에러 정정기(8)에 전달된다. 에러를 갖는 심벌은 그런 다음 데이터 버퍼(2)로부터 판독되어, 정정되고, 정정된 심벌은 데이터 버퍼(2)에 저장된다.
도 2는 전형적인 디지털 비디오 디스크(DVD) 저장 시스템에 현재 채용된 2차원 곱셈 코드의 예시적인 포맷을 도시한다. 이러한 포맷은 16개의 섹터를 포함하는, 각 섹터는 전체 208 수평 코드워드와 182 수직 코드워드에 대해 12개의 코드워드를 포함한다. 각 섹터의 마지막에는, 수평 및 수직 경로의 마지막에서 사용자 데이터에 대한 정정의 타당성 및 완성도(completeness)를 검증하기 위한 4개의 CRC 바이트가 존재한다(발명의 명칭이 "에러 정정, 및 곱셈 코드의 동시 확인"인 미국특허를 참조). 각 수평 코드워드는, 사용자 데이터의 172개의 8비트 심벌과 ECC 여분의 10개의 8비트 심벌을 포함한다. 각 수직 코드워드는, 사용자 데이터의 192개의 8비트 심벌과 ECC 여분의 16개의 8비트 심벌을 포함한다.
도 1에 도시된 종래 기술의 에러 정정 프로세서는 각각의 수평 및 수직 경로 도중에 에러 신드롬(Si)을 생성하기 위하여 데이터 버퍼(2)로부터 전체 코드워드(수평 또는 수직)를 판독한다. 이것은 데이터 버퍼(2)를 억세스할 때, 특히 전체 곱셈 코드 코드워드를 정정하는데 수 개의 경로가 필요할 때의 대기 시간 때문에 비효율적이다.
에러 정정 프로세서
종래 기술의 단점을 극복하는 본 발명의 에러 정정 프로세서는 도 3에 도시되었다. 도 1의 에러 정정 프로세서와 유사하게, 본 발명은, 호스트로부터 수신된 기록 데이터와 디스크 저장 매체로부터 수신된 판독 데이터를 저장하기 위한 데이터 버퍼(2)를 사용한다. 그러나 도 1과는 대조적으로, 본 발명은, 코드워드가 처리될 때마다 에러 신드롬을 생성하기 위하여 데이터 버퍼(2)를 억세스할 때의 대기 시간을 회피하도록, 에러 신드롬을 저장하기 위한 신드롬 버퍼(12)를 채용한다. 더욱이, 신드롬 생성기(14)는 교차하는 코드워드의 제 1 및 제 2 세트에 대한 에러 신드롬을 생성하기 위하여 동시에 변형된다. 이러한 방법에 있어서, 제 2 세트의 코드워드에 대한 에러 신드롬은 제 1 세트의 코드워드를 처리한 후 곧바로 취득 가능하다, 즉 에러 신드롬을 생성하기 위하여 데이터 버퍼(2)로부터 제 2 세트의 코드워드를 판독하는 것은 필요하지 않다.
에러 정정기(8)는, 신드롬 버퍼(12)에 저장된 에러 신드롬을 갱신하기 위하여 부가적으로 정정 값이 라인(16)을 통해 신드롬 생성기(14)에 전달되는 것을 제외하면, 도 1의 종래 기술에서와 거의 동일하게 동작한다. 제 2 세트의 코드워드에 대한 정정이 이루어질 때, 정정된 심벌에서 제1 세트의 코드워드를 교차하는 제 2 세트의 코드워드에 대한 에러 신드롬은 정정 값을 사용하여 갱신된다. 예컨대 도 2에 도시된 2차원 곱셈 코드를 고려해보자. 제 2 수평 코드워드의 제 3 심벌(17)은 수평 경로 도중에 정정되고, 이 후 제 3 수직 코드워드에 대한 에러 신드롬은 정정 값을 사용하여 동시에 갱신된다. 이러한 방법에 있어서, 전체 수직 코드워드에 대한 에러 신드롬은, 정정이 수평 코드워드에 대해 이루어질 때조차, 수평 코드워드에 대한 경로를 완료한 후 곧바로 취득 가능하다. 이러한 점은, 에러 신드롬을 생성하기 위하여 에러 정정기(8)가 데이터 버퍼로부터 코드워드를 판독함이 없이 곧바로 수직 코드워드의 정정을 개시하는 것을 가능케 한다.
신드롬 버퍼(12)는 데이터 버퍼(2)와 비교하여 매우 고속인 정적 RAM(SRAM)으로 실현되는 것이 바람직하다{신드롬 버퍼(12)보다 상당히 더 많은 데이터를 저장하는 데이터 버퍼(2)는 원가 면에서 효율적이지만 속도가 느린 다이내믹 RAM(DRAM)을 사용하여 실현되는 것이 바람직하다}. 더욱이 신드롬 버퍼(12)는, 복수의 에러 신드롬이 병렬로 억세스 및 갱신될 수 있도록, 데이터 버퍼(2)보다 더 넓은 데이터 버스를 채용하는 것이 바람직하다.
동시 신드롬 생성기
이하에 기술된 것은 본 발명의 신드롬 생성기(14)에 대한 두 실시예이다. 제 1 실시예에 있어서, 수직 코드워드에 대한 신드롬은 수평 경로 도중에 수평 코드워드에 대한 신드롬을 생성하는 것과 동시에 생성된다. 이하에서 보다 상세하게 설명되는 바와 같이, 신드롬 버퍼(12)는 수직 신드롬의 생성을 쉽게 한다. 결과적으로, 신드롬 버퍼(12)에 저장된 수직 코드워드에 대한 신드롬은 수평 경로 이후에 곧바로 취득 가능하다, 즉 수직 코드워드는 신드롬을 생성하기 위하여 데이터 버퍼를 억세스함이 없이 정정될 수 있어, 에러 정정 대기 시간을 상당히 감소시킨다. 이러한 실시예는 디지털 비디오 디스크(DVD) 저장 장치에서와 같은 대량의 ECC 여분을 채용을 하는 곱셈 코드를 생성하는데 특히 적합한데, 왜냐하면 정정이 수평 및 수직 코드워드에 대한 단일 경로 이후에 종료될 수 있을 것이기 때문이다.
적은 ECC 여분을 채택하고 따라서 복수의 수평 및 수직 경로를 필요로 하는, 본 발명의 제 2 실시예에 있어서, 신드롬 버퍼(12)는 수평 수직 코드워드 모두에 대한 에러 신드롬을 저장한다. 신드롬의 두 세트는 제 1 수평 경로 도중에 동시에 생성되고, 신드롬은 정정 값을 사용하여 갱신된다. 이러한 방법에 있어서, 에러 신드롬을 다시 생성하기 위하여 데이터 버퍼를 억세스할 때의 대기 시간은 수평 및 수직 경로 모두에 대해 회피된다. 에러 정정은 시간의 소부분에서 수행되는데, 제 1 경로에 후속하는 경로는 데이터를 정정하기 위해 오직 데이터 버퍼를 억세스하는 것만을 필요로 하기 때문이다.
신드롬 버퍼(12) 내의 수직 에러 신드롬만을 저장하는 본 발명의 제 1 실시예는 도 4 및 도 5를 참조하여 이해된다. 도 4는 각 수평 경로 도중에 수평 코드워드에 대한 에러 신드롬을 생성하기 위해 사용된 회로를 도시한다. 즉, 수평 에러 신드롬은 항상 다시 생성되고, 이들은 신드롬 버퍼(12)에 저장되지 않는다. 수평 에러 신드롬(Si)을 생성하기 위하여, 도 4의 회로는 생성 다항식{G(x)}의 계수에 의한 각 수평 코드워드{C'(x)}의 모듈로 나눗셈을 계산한다.
G(x) = 일 때, Si = C'(x) MOD (x + αi)
이러한 계산을 수행하기 위하여, 수평 코드워드의 심벌(ECC 여분을 포함)은 데이터 버퍼(2)로부터 순차적으로 판독되어, 라인(18)을 통해 선형 피드백 시프트 레지스터(LFSR)(200-209)의 뱅크(bank)에 전달된다. 양호한 실시예에 있어서, 각 수평 코드워드는 도 2에 도시된 바와 같이 10개의 ECC 여분 심벌을 포함하고, 따라서 도 4에는 각각이 피드백 경로에서 대응하는 αi 계수 배율기를 구비하는 10개의 LFSR이 존재한다. 각 LFSR은 생성 다항식{G(x)}의 각 계수에 대한 모듈로 나눗셈을 수행하여, 상기 수식에 따라 에러 신드롬(Si)을 생성한다. 도 4에 개시된 회로는 당업자에게는 공지된 것이며, 본 발명의 새로운 특성은 수직 코드워드에 대한 에러 신드롬을 동시에 생성하는데 있고, 이의 상세 사항은 도 5에 도시되었다.
수직 코드워드에 대한 에러 신드롬은 상술한 수평 코드워드에 대한 것과 동일한 방법으로 수학적으로 계산된다. 즉, 수직 에러 신드롬(Si)은 생성 다항식{G(x)}의 계수에 의한 각 수직 코드워드{C'(x)}의 모듈로 나눗셈을 계산함으로써 생성된다. 종래 기술의 신드롬 생성기는 전형적으로 수직 에러 신드롬을 생성하기 위하여 도 4에 도시된 동일한 회로를 사용한다, 즉 수직 코드워드의 심벌(ECC 여분 포함)은 데이터 버퍼(2)로부터 순차적으로 판독되어, LFSR의 뱅크를 통해 이동된다. 본 발명에 있어서, 수직 에러 신드롬은, 수직 경로 도중에 수직 코드워드를 판독하기 위하여 데이터 버퍼를 억세스하는 것을 회피하기 위하여 수평 에러 신드롬을 생성하는 것과 동시에 생성된다.
수직 에러 신드롬을 동시에 생성하기 위한 회로는 도 5에 도시되었고, 이 회로의 동작은 도 2에 도시된 곱셈 코드를 참조하여 이해된다. 신드롬 버퍼(12)는 182개 수직 코드워드 각각에 대한 16개의 에러 신드롬(Si)을 저장할 용량을 갖는다. 신드롬 버퍼(12) 내의 수직 에러 신드롬(Si)은 제 1 수평 경로의 개시 시점에 0으로 초기화된다. 제 1 수평 코드워드를 처리할 때, 수평 에러 신드롬을 생성하기 위하여, 심벌은 데이터 버퍼(2)로부터 순차적으로 판독되어, 라인(18)을 통해 도 4의 LFSR에 인가된다. 수직 에러 신드롬을 생성하기 위하여, 심벌은 라인(18)을 통해 동시에 도 5에 도시된 회로에 인가된다. 도 4와 유사하게, 도 5는 생성 다항식{G(x)}의 16개 계수에 의한 수직 코드워드 심벌(각 수직 코드워드는 16개의 ECC 여분 심벌을 포함)의 모듈로 나눗셈을 계산하기 위한 신드롬 생성 회로(220-2215)의 뱅크를 포함한다.
도 5에 도시된 개별적인 신드롬 생성 회로(220-2215)를 이해하기 위하여, 제 1 수평 코드워드가 데이터 버퍼로부터 판독될 때의 동작을 고려한다. 제 1 수평 코드워드의 제 1 심벌은 제 1 수직 코드워드의 제 1 심벌에 대응한다. 따라서, 제어 라인(24)은 제 1 수직 코드워드에 대하여 신드롬 버퍼(12)로부터 16개 수직 에러 신드롬(각 8비트)을 검색한다. 각 8비트 수직 에러 신드롬은 대응하는 레지스터(260-2615)내로 래치되고, 멀티플렉서(280-2815)의 출력으로 선택되고, 대응하는 αi 피드백 계수(300-3015)에 의해 곱해진다. 라인(18) 상의 코드워드 심벌은, 가산기(340-3415)에서 계수 곱셈기의 출력에 더해지는 멀티플렉서(320-32 15)의 출력으로 선택된다. 가산기(340-3415)의 출력에서 갱신된 신드롬은 그후 신드롬 버퍼(12)에 되돌려진다. 제 1 수평 코드워드의 제 2 심벌을 처리할 때, 제어 라인(24)은 제 2 수직 코드워드에 대해 신드롬 버퍼(12)로부터 16개의 수직 에러 신드롬을 검색하고, 상기 절차가 다시 반복된다. 이러한 과정은 수평 코드워드에 대해 수평 경로 마지막까지 지속되고, 수직 코드워드를 정정하기 위한 에러 신드롬은 신드롬 버퍼(12)에 저장된다.
수평 코드워드가 수평 경로 도중에 정정된다면, 신드롬 버퍼(12)에 저장된 대응하는 수직 에러 신드롬은 정정된 심벌을 반영하기 위하여 갱신되어야만 한다. 도 3의 신드롬 생성기(14)와 에러 정정기(8)는 인접한 코드워드 상에서 동작하는 것이 바람직하다. 다시 말해, 신드롬 생성기(14)가 현재의 수평 코드워드에 대한 에러 신드롬을 생성하는 동안, 에러 정정기(8)는 이전 수평 코드워드에 대해 심벌을 정정한다. 덧붙여, 에러 정정은, 정정 값으로 수직 에러 신드롬을 조정하는 것을 단순화하기 위하여, 수평 에러 신드롬의 생성을 수반한다.
예컨대, 에러 정정기(8)가 제 1 수평 코드워드를 정정하는 동안, 신드롬 생성기(14)가 도 2의 제 2 수평 코드워드에 대한 에러 신드롬을 생성하는 것을 생각해 보자. 신드롬 생성기(14)는 제 2 코드워드 중 과거의 제 3 심벌(17)을 갖고, 제 1 코드워드의 제 3 심벌(36)이 에러를 갖는다고 가정한다. 에러 정정기(8)는 데이터 버퍼(2)에 저장된 제 1 수평 코드워드의 제 3 심벌(36)을 정정하기 위해 사용되는 정정 값을 생성하고, 정정 값은 또한 라인(16)을 통해 도 5의 수직 신드롬 생성 회로(220-2215)에 인가된다. 제어 라인(24)은, 레지스터(260-2615)에 래치되는 제 3 수직 코드워드에 대해 수직 에러 신드롬을 신드롬 버퍼(12)로부터 검색한다. 그후 레지스터(260-2615)의 출력은 멀티플렉서(320-3215)를 통해 가산기(340-3415)에 대한 입력으로 선택된다. 라인(16)을 통해 인가되는 정정 값은 멀티플렉서(280-2815)의 출력으로 선택되고, 대응하는 αi 피드백 계수(300-3015)에 의해 곱해지고, 그후 가산기(340-3415)에서 수직 에러 신드롬에 더해진다. 대응하는 αi 피드백 계수(30 0-3015)에 의한 정정 값의 곱셈은 현재 수직 에러 신드롬 값과 정정되는 심벌 사이의 옵셋(즉, 수직 코드워드에서 한 심벌의 옵셋)을 반영하기 위하여 필요하다.
수평 경로의 마지막에서, 수직 코드워드에 대한 에러 신드롬은 완전하게 생성될 것이고, 즉각적인 처리를 위해 취득 가능하게 된다. 따라서, 수직 경로를 실행하기 위하여, 수직 에러 신드롬은 단순히 신드롬 버퍼(12)로부터 판독되고, 수직 코드워드를 정정하기 위해 에러 정정기(8)에 의해 사용된다. 수직 경로 이후 곱셈 코드의 CRC 심벌이 에러가 여전히 남아 있다고 나타내면, 상기 과정이 반복된다(즉, 수평 및 수직 에러 신드롬은 다음 수평 경로 도중에 생성된다).
본 발명의 다른 실시예에 있어서, 수평 및 수직 신드롬은 모두, 제 1 수평 경로 도중에 동시에 생성되고 있을 때, 신드롬 버퍼(12)에 저장된다. 이러한 방법에 있어서, 이전에 기술된 실시예에서와 같이, 후속하는 수평 경로 도중에 수평 신드롬을 재생성할 필요가 없다. 코드워드를 정정하기 위하여 신드롬은 단순히 수평 및 수직 경로 도중에 검색되어 사용된다. 이러한 실시예는, 곱셈 코드를 정정하기 위해 복수의 경로가 필요한 경우(즉, ECC 여분 심벌이 감소되거나, 또는 기록 밀도를 증대시킴으로써 SNR이 감소되면)에 특히 유리하다.
본 실시예에 대한 정정 값을 사용하여 수직 및 수평 신드롬을 갱신하기 위한 회로가 도 6a 및 도 6b에 각각 도시되었다. 이들 회로는, 옵셋을 반영할 필요가 없기 때문에 αi에 의해 에러 정정 값(16)을 곱하는 것이 필요하지 않은 점을 제외하고, 도 5의 회로와 거의 동일하게 동작한다. 양호한 실시예에 있어서, 제 1 수평 경로 도중에 수평 및 수직 에러 신드롬을 초기에 생성하기 위한 도 4 및 도 5의 회로는, 후속하는 경로 도중에 에러 신드롬을 갱신하기 위하여 도 6a 및 도 6b의 회로와 공유된다. 도 6a 및 도 6b의 신드롬 버퍼는 개별적으로 실현될 수도 있고, 또는 단일 버퍼(즉, 단일 집적 SRAM)로 실현될 수도 있다. 어쨌든 제어 라인(24)을 통한 어드레스 지정은 에러 신드롬의 어느 세트(수평 또는 수직)가 적절한 시간에 신드롬 버퍼로부터 검색될 지를 결정한다.
도 7a는 수평 및 수직 신드롬 모두가 신드롬 버퍼에 저장될 때, 본 발명의 동작을 도시하는 흐름도이다. 먼저, 제 1 수평 경로(36) 도중에, 수평 및 수직 신드롬은 동시에 생성되어, 신드롬 버퍼에 저장된다. 또한 제 1 수평 경로(36) 도중에, 수평 코드워드가 정정되고 정정된 값은 수직 신드롬을 갱신하기 위하여 사용된다. 제 1 및 후속하는 수평 경로 이후, 곱셈 코드에 대한 정정의 타당성 및 완성도는 단계(38)에서 CRC 심벌을 사용하여 확인된다. 수평 경로 이후 에러가 여전히 남아 있다면, 수직 코드워드를 정정하기 위하여 수직 경로가 단계(40)에서 실행되는데, 상기 정정 값은 신드롬 버퍼에 저장된 수평 신드롬을 갱신하기 위하여 사용된다. 수직 경로 이후, 정정의 타당성과 완성도는 단계(42)에서 CRC 심벌을 사용하여 다시 확인된다. 수직 경로 이후 에러가 여전히 남아 있다면, 신드롬 버퍼에 저장된 수평 신드롬을 사용하여 수평 코드워드를 정정하기 위하여, 단계(44)에서 다른 수평 경로가 실행된다(즉, 이전에 기술한 실시예에서와 같이 수평 신드롬은 다시 생성되지 않는다). 수평 및 수직 경로는 곱셈 코드가 정정되거나 또는 정정 불가능한 것으로 간주될 때까지 다시 반복된다.
제 1 수평 경로 도중에 수평 및 수직 신드롬을 동시에 생성하기 위한 흐름도는 도 7b에 도시되었고, 제 1 경로 도중에 정정 값을 사용하여 수평 코드워드를 정정하고 수직 신드롬을 갱신하기 위한 흐름도는 도 7c에 도시되었다(도 7b와 도 7c의 흐름도는 병렬로 실행된다). 도 7b를 참조하면, 단계(46)에서 COL 및 ROW 변수는 0으로 초기화되고, 신드롬 버퍼가 소거된다. 그후 ROW에서의 수평 코드워드를 위하여, 심벌은 단계(48)에서 판독되어, 상술한 도 4의 회로를 사용하여 수평 신드롬을 갱신하기 위해 단계(50)에서 사용된다. 도 7b의 단계(52)에서 도 5의 회로는 상술한 COL에서의 수직 코드워드에 대한 수직 에러 신드롬을 갱신하기 위해 사용된다. 그후 COL 변수는 단계(54)에서 증가되고, 현재의 수평 코드워드에 대한 다음 심벌이 수평 및 수직 신드롬을 갱신하기 위하여 사용된다.
COL 변수가 단계(56)에서 182와 동일할 때, 현재 수평 코드워드에 대한 최종 심벌이 판독된 것이다. 단계(58)에서, 이전 수평 코드워드의 처리를 종료하기 위하여 에러 정정 과정(도 7c의 흐름도)을 대기하는 루프가 실행된다. 이전 코드워드의 정정을 종료하였을 때, 정정 플래그는 도 7c의 단계(88)에서 비사용(not busy)으로 리세트된다. 도 7b의 단계(60)에서, 정정 플래그는 사용으로 설정되고, C_ROW 변수는 현재의 ROW로 설정되고, ROW 변수는 증가되고, COL 변수는 0으로 리세트된다. 이 시점에, 다음(즉, ROW에서)의 수평 코드워드에 대해 생성되는 신드롬과 동시에 현재(즉 C_ROW에서)의 수평 코드워드를 정정하기 위하여, 도 7c의 정정 과정이 실행된다.
도 7c를 참조하면, 현재의 수평 코드워드의 처리를 종료하고, 정정 플래그를 사용으로 설정하기 위하여, 도 7b의 신드롬 생성 과정을 대기하는 루프가 단계(64)에서 실행된다. 단계(66)에서, 정정 도중에 현재의 열을 추적하는 C_COL 변수는 0으로 리세트(즉, 정정되는 수평 코드워드 내의 제 1 심벌로 리세트)된다. 정정되는 수평 코드워드에 대한 신드롬은, 에러 설정자 다항식을 생성하고, 루트가 타당한 심벌 위치에 대응하는 지를 결정하기 위하여, 단계(68)에서 처리된다. 단계(70)에서 신드롬이 너무 많은 에러가 있음을 나타내거나, 또는 에러 설정자 다항식의 루트가 타당하지 않은 심벌을 지시한다면, 코드워드는 정정 불가능한 것으로 간주된다. 코드워드가 단계(70)에서 정정 가능하다면, 단계(72)에서 C_ROW에서의 수평 코드워드에 대한 신드롬은 소거(0으로 설정)된다. 그런 다음 C_ROW에서의 수평 코드워드를 정정하기 위하여 루프가 실행된다. 단계(74)에서 C_COL에서의 심벌이 에러를 갖는다면, 데이터 버퍼 내에 저장된 심벌을 정정하고, 정정된 값을 사용하여 수직 신드롬을 갱신하기 위한 분기가 실행된다. 정정은 단계(76)에서 C_COL이 COL보다 작아질 때까지 지연된다, 즉 도 7c의 에러 정정 과정은 도 7b의 신드롬 생성 과정이 현재의 정정 컬럼(C_COL)을 통과할 때까지 대기한다. 이것은 도 5의 회로가 정확하게 동작하기 위하여 필요한데, 그 이유는 한 심벌의 옵셋을 반영하기 위하여 정정 값(16)을 αi30i로 곱하기 때문이다. 도 7c의 단계(78)에서, 데이터 버퍼에 저장된 수평 코드워드 심벌은 정정 값을 사용하여 정정되고, 단계(80)에서 정정 값은, 도 5를 참조하여 상술한 바와 같이, C_COL에서의 수직 코드워드에 대한 수직 신드롬을 갱신하기 위하여 사용된다. 단계(82)에서 변수(C_COL)는 수평 코드워드에서의 다음 심벌로 증가되고, 정정 루프가 다시 실행된다.
단계(84)에서 C_COL이 182와 동일할 때, 정정되는 수평 코드워드의 최종 심벌이 처리된 것이다. 다음의 수직 경로 도중에 현재의 수평 코드워드에 대한 에러 신드롬의 갱신을 쉽게 하기 위하여, 이의 에러 신드롬은 단계(86)에서 제 1 코드워드 심벌에 재위치된다. 이것은 다음의 계산에 의해 수행된다.
SYNi = SYNi·x-182 MOD (X + αi)
다른 옵셋 값을 사용하여 유사한 계산을 수행하는 예는, 제목이 "다차원 코드를 효율적으로 처리하기 위한 방법 및 장치"인 상기 미국특허에 제공된다.
도 7c의 단계(88)에서, 정정의 사용 플래그는 소거되고, 정정 과정은 단계(64)에서, 다음 수평 코드워드에 대한 에러 신드롬의 생성을 종료하기 위해 도 7b의 신드롬 생성 과정 동안 대기한다. 신드롬 생성 및 에러 정정 과정은 최종 코드워드가 처리될 때{즉, 도 7b의 단계(62)에서 ROW가 208과 동일할 때}까지 병렬로 실행된다. 제 1 수평 경로 이후 도 7a의 단계(38)에서 에러가 여전히 남아 있다면, 수직 경로가 단계(40)에서 실행되는데, 이의 흐름도는 도 7d에 설명되었다.
단계(90)에서, 정정 변수(C_COL 및 C_ROW)는 0으로 리세트(즉, 제 1 수직 코드워드의 제 1 심벌로 리세트)된다. 그후 정정되는 수직 코드워드에 대한 신드롬은, 에러 설정자 다항식을 생성하고, 루트가 타당한 심벌 위치에 대응하는 지를 결정하기 위하여, 단계(92)에서 처리된다. 단계(94)에서 신드롬이 너무 많은 에러가 있다고 나타내거나, 또는 에러 설정자 다항식의 루트가 타당하지 않은 심벌을 지시하면, 코드워드는 정정 불가능한 것으로 간주된다. 코드워드가 단계(94)에서 정정 가능하다면, 단계(96)에서 C_COL에서의 수직 코드워드에 대한 신드롬은 소거(0으로 설정)된다. 그후, 루프는 C_COL에서의 수직 코드워드를 정정하기 위하여 실행된다. 단계(98)에서 C_ROW에서의 심벌이 에러를 갖는다면, 단계(100)에서 데이터 버퍼에 저장된 심벌을 정정하고, 단계(102)에서 정정 값을 사용하여 수평 신드롬을 갱신하기 위한 분기가 실행된다. 도 6a의 회로는 도 5를 참조로 상술한 것과 유사한 방법으로 수평 신드롬을 갱신하기 위하여 사용된다. C_ROW에서의 수평 신드롬은 신드롬 버퍼(12)로부터 검색되고, αi30i로 곱해지고, 정정 값(34i)에 더해진 후, 신드롬 버퍼(12)에 되돌려진다. 도 7d의 흐름도에 도시되지는 않았지만, 수평 신드롬은, 정정이 전혀 이루어지지 않더라도(즉, 정정 값이 0이라 하더라도), 코드워드 내의 각 심벌에 대해 갱신된다. 이것은 도 6a의 신드롬 갱신 회로를 단순화시킨다, 즉 에러 신드롬을 다음의 코드워드 심벌에 위치시키기 위하여 αi 곱셈기(30i)만을 필요로 한다.
도 7d의 단계(104)에서, C_ROW 변수는 현재의 수직 코드워드 내의 다음 심벌로 증가된다. 단계(106)에서 C_ROW가 208과 같다면, 현재의 수직 코드워드의 최종 심벌이 처리된 것이다. 최종 심벌이 처리된 후{또는 단계(94)에서 코드워드가 정정 불가능한 것이라면}, C_COL에서의 수직 코드워드에 대한 에러 신드롬은 단계(107)에서 코드워드의 제 1 심벌에 재 위치한다. 이것은 다음의 계산에 의해 수행된다.
SYNi = SYNi·x-208 MOD (x + αi)
단계(108)에서, C_COL 변수는 다음 수직 코드워드로 증가되고, C_ROW 변수는 다음 수직 코드워드의 제 1 심벌을 가리키기 위하여 0으로 리세트된다. 도 7d의 정정 과정은 단계(110)에서 C_COL이, 모든 수직 코드워드가 처리되었음을 나타내는, 182와 동일할 때까지 재 반복된다.
수직 경로의 마지막에서, CRC 심벌은 이루어진 정정이 타당한지와 완성되었는 지를 도 7a의 단계(42)에서 확인하기 위하여 사용된다. 단계(42)에서 곱셈 코드에 에러가 여전히 남아 있다면, 수평 정정 경로가 단계(44)에서 실행되는데, 이에 대한 상세한 사항은 도 7e의 흐름도에 설명된다.
단계(112)에서, 정정 변수(C_COL 및 C_ROW)는 0으로 리세트(즉 제 1 수평 코드워드의 제 1 심벌로 리세트)된다. 그런 다음 정정되는 수평 코드워드에 대한 신드롬은, 에러 설정자 다항식을 생성하고, 루트가 타당한 심벌 위치에 대응하는 지를 결정하기 위하여, 단계(114)에서 처리된다. 단계(116)에서 신드롬이 너무 많은 에러가 있다고 나타내거나, 또는 에러 설정자 다항식의 루트가 타당하지 않은 심벌을 지시하면, 코드워드는 정정 불가능한 것으로 간주된다. 코드워드가 단계(116)에서 정정 가능하다면, C_ROW에서의 수평 코드워드에 대한 신드롬은 단계(118)에서 소거(0으로 설정)된다. 그런 다음 C_ROW에서의 수평 코드워드를 정정하기 위한 루프가 실행된다. C_COL에서의 심벌이 단계(120)에서 에러를 갖는다면, 단계(122)에서 데이터 버퍼에 저장된 심벌을 정정하고, 정정 값을 사용하여 단계(124)에서 수직 신드롬을 갱신하기 위한 분기가 실행된다. 도 6b의 회로는, 수직 경로 도중에 수평 에러 신드롬을 갱신하기 위한 도 6a를 참조하여 상술한 바와 같은 유사한 방법으로, 수직 신드롬을 갱신하기 위하여 사용된다. C_COL에서의 수직 신드롬은 신드롬 버퍼(12)로부터 검색되고, αi30i로 곱해지고, 정정 값(34i)에 더해진 후, 신드롬 버퍼(12)에 되돌려진다. 도 7e의 흐름도에 도시되지는 않았지만, 수직 신드롬은, 정정이 전혀 이루어지지 않더라도(즉, 정정 값이 0이라 하더라도), 코드워드 내의 각 심벌에 대해 갱신된다. 이것은 도 6b의 신드롬 갱신 회로를 단순화시킨다, 즉 에러 신드롬을 다음의 코드워드 심벌에 위치시키기 위하여 αi 곱셈기(30i)만을 필요로 한다.
도 7e의 단계(126)에서, C_COL 변수는 현재의 수평 코드워드 내의 다음 심벌로 증가된다. 단계(128)에서 C_COL이 182와 같다면, 현재의 수평 코드워드의 최종 심벌이 처리된 것이다. 최종 심벌이 처리된 후{또는 단계(116)에서 코드워드가 정정 불가능한 것이라면}, C_ROW에서의 수평 코드워드에 대한 에러 신드롬은 단계(130)에서 코드워드의 제 1 심벌에 재 위치한다. 이것은 다음의 계산에 의해 수행된다.
SYNi = SYNi·x-182 MOD (x + αi)
단계(132)에서, C_ROW 변수는 다음 수평 코드워드로 증가되고, C_COL 변수는 다음 수평 코드워드의 제 1 심벌을 가리키기 위하여 0으로 리세트된다. 도 7e의 정정 과정은 단계(134)에서 C_ROW가, 모든 수평 코드워드가 처리되었음을 나타내는, 208과 동일할 때까지 재 반복된다.
도 7a를 참조하면, 단계(44)에서 수평 경로를 완성한 후, CRC 심벌은, 단계(38)에서 곱셈 코드에 대해 이루어진 정정이 타당한 지와 완성되었는 지를 확인하기 위하여 사용된다. 에러가 여전히 남아 있다면, 다른 수직 경로가 단계(40)에서 실행된다. 반복적인 수평 및 수직 경로는 곱셈 코드가 정정되거나 정정 불가능한 것으로 간주될 때까지 지속된다.
본 발명의 목적은 여기에 개시된 실시예를 통해 완벽하게 실현되었다. 당업자라면, 본 발명의 다양한 특성이 필수적인 기능을 벗어남이 없는 다른 실시예를 통해 이루어질 수 있음을 인식할 수 있을 것이다. 예컨대, 도 2에 도시된 곱셈 코드는 전형적으로 디지털 비디오 디스크(DVD)에 사용되지만, 본 발명은 콤팩트디스크(CD)에 사용되는 포맷을 포함하여 다른 곱셈 코드 포맷에 동일하게 적용 가능하다. 더욱이, 본 발명은 하나의 곱셈 코드뿐만 아니라 다른 다차원 코드에도 적용 가능하다. 따라서, 개시된 특정 실시예는 단지 예시적일 뿐이고, 다음의 청구범위에 의해 적절히 구성되는 본 발명의 범주를 제한하려 하는 것은 아니다.

Claims (30)

  1. 제 2 세트의 코드워드와 교차하는 제 1 세트의 코드워드를 포함하는 다차원 코드 형태로 저장 매체(6)에 기록된 디지털 데이터에서 에러를 정정하기 위한 에러 정정 프로세서(8)로서,
    (a) 상기 저장 매체(6)로부터 판독된 상기 디지털 데이터를 저장하기 위한 데이터 버퍼(2)와,
    (b) 상기 제 1 세트의 코드워드와 관련된 제 1 에러 신드롬(syndromes)을 저장하기 위한 제 1 신드롬 버퍼(12)와,
    (c) 상기 제 1 및 제 2 세트의 코드워드에 대한 상기 제 1 에러 신드롬과 제 2 에러 신드롬을 각각 동시에 생성하기 위하여, 상기 데이터 버퍼(2)에 저장된 상기 디지털 데이터와 상기 제 1 신드롬 버퍼(12)에 저장된 상기 제 1 에러 신드롬에 응답하는 신드롬 생성기(14)와,
    (d) 상기 데이터 버퍼(2)에 저장된 상기 디지털 데이터를 정정하기 위하여, 상기 제 1 및 제 2 에러 신드롬에 응답하는, 에러 정정기(8)를 포함하되,
    상기 신드롬 생성기(14)는, 제 2 에러 신드롬을 생성할 때, 제 2 세트의 코드워드의 연속 심벌을 처리하고,
    상기 신드롬 생성기(14)는, 제 1 세트의 코드워드의 심벌과 교차하는 상기 제 2 세트의 코드워드의 상기 심벌을 사용하여, 상기 제 1 신드롬 버퍼(12)에 저장된 제 1 에러 신드롬을 갱신하고,
    상기 에러 정정기(8)는, 상기 제 2 세트의 코드워드 내의 심벌을 정정하기 위하여 제 2 에러 신드롬에 따라 에러 정정 값을 생성하고,
    상기 신드롬 생성기(14)는, 상기 에러 정정 값을 사용하여 상기 제 1 신드롬 버퍼(12) 내에 저장된 상기 제 1 에러 신드롬을 갱신하고,
    상기 에러 정정 값은, 상기 신드롬 생성기(14)가 현재의 제 2 세트의 코드워드에 대한 에러 신드롬을 생성하는 동안 정정되는 이전의 제 2 세트의 코드워드에 대응하는, 에러 정정 프로세서.
  2. 제 1항에 있어서, 상기 신드롬 생성기(14)는 상기 제 1 및 제 2 세트의 코드워드의 교차 심벌의 위치에 의해 상기 제 1 신드롬 버퍼를 주소 지정하는, 에러 정정 프로세서.
  3. 제 1항에 있어서, 상기 신드롬 생성기(14)는, 상기 이전 및 현재의 제 2 세트의 코드워드 사이의 옵셋을 반영하기 위하여, 상기 에러 정정 값을 상수로 곱하는, 에러 정정 프로세서.
  4. 제 1항에 있어서, 상기 신드롬 생성기(14)는, 제 2 세트의 코드워드의 데이터 심벌을 생성 다항식(generator polynomial)의 루트(root)로 나눔으로써, 제 2 에러 신드롬을 생성하는, 에러 정정 프로세서.
  5. 제 4항에 있어서, 상기 신드롬 생성기(14)는 상기 제 2 세트의 코드워드의 데이터 심벌을 상기 생성 다항식의 두 개 이상의 루트에 의해 병렬로 나눗셈하는, 에러 정정 프로세서.
  6. 제 1항에 있어서, 상기 신드롬 생성기(14)는, 제 2 세트의 코드워드와 교차하는 제 1 세트의 코드워드의 데이터 심벌을 생성 다항식의 루트로 나눔으로써, 상기 제 1 에러 신드롬을 생성하는, 에러 정정 프로세서.
  7. 제 1항에 있어서, 상기 제 2 세트의 코드워드에 대한 상기 제 2 에러 신드롬을 저장하기 위한 제 2 신드롬 버퍼를 더 포함하는, 에러 정정 프로세서.
  8. 제 7항에 있어서, 상기 신드롬 생성기(14)는 상기 제 2 세트의 코드워드의 상기 심벌을 사용하여, 상기 제 2 신드롬 버퍼에 저장된 제 2 에러 신드롬을 갱신하는, 에러 정정 프로세서.
  9. 제 7항에 있어서, (a) 상기 에러 정정기(8)는, 제 1 세트의 코드워드 내의 심벌을 정정하기 위한 제 1 신드롬에 따라, 에러 정정 값을 생성하고,
    (b) 상기 신드롬 생성기(14)는 상기 에러 정정 값을 사용하여, 상기 제 2 신드롬에 저장된 제 2 에러 신드롬을 갱신하는, 에러 정정 프로세서.
  10. 제 9항에 있어서, 상기 에러 정정 값을 사용하여 상기 제 2 에러 신드롬을 갱신하기 전에, 상기 신드롬 생성기(8)는, 상기 제 1 세트의 코드워드 내의 상기 정정된 심벌의 위치에 대해 상기 제 2 에러 신드롬을 조정하는, 에러 정정 프로세서.
  11. 제 2 세트의 코드워드와 교차하는 제 1 세트의 코드워드를 포함하는 다차원 코드 형태로 저장 매체(6)에 기록된 디지털 데이터에서 에러를 정정하는 방법으로서,
    (a) 상기 저장 매체(6)로부터 판독된 상기 디지털 데이터를 데이터 버퍼(2)에 저장하는 단계와,
    (b) 상기 제 1 세트의 코드워드와 관련된 제 1 에러 신드롬을 제 1 신드롬 버퍼(12)에 저장하는 단계와,
    (c) 상기 데이터 버퍼(2)에 저장된 상기 디지털 데이터와 상기 제 1 신드롬 버퍼(12)에 저장된 상기 제 1 에러 신드롬을 사용하여, 상기 제 1 및 제 2 세트의 코드워드에 대한 상기 제 1 에러 신드롬과 제 2 에러 신드롬을 각각 동시에 생성하는 단계(36)와,
    (d) 상기 제 1 및 제 2 에러 신드롬을 사용하여, 상기 데이터 버퍼(2)에 저장된 상기 디지털 데이터를 정정하는 단계(78, 100 및 102)를 포함하되,
    상기 제 1 에러 신드롬과 상기 제 2 에러 신드롬을 동시에 생성하는 상기 단계(36)는,
    제 2 에러 신드롬(50)을 생성하기 위하여 제 2 세트의 코드워드의 연속 심벌을 처리하는 단계와,
    제 1 세트의 코드워드의 심벌과 교차하는 상기 제 2 세트의 코드워드의 상기 심벌을 사용하여 상기 제 1 신드롬 버퍼(12) 내에 저장된 제 1 에러 신드롬을 갱신하는 단계(52)를 포함하고,
    상기 데이터 버퍼(2)에 저장된 상기 디지털 데이터를 정정하는 상기 단계(36)는, 상기 제 2 세트의 코드워드 내의 심벌을 정정하기 위한 상기 제 2 에러 신드롬에 따라 에러 정정 값을 생성하는 단계(78)를 포함하고,
    상기 제 1 신드롬 버퍼(12)에 저장된 상기 제 1 에러 신드롬을 갱신하는 상기 단계(52)는 상기 에러 정정 값(82)을 사용하고,
    상기 에러 정정 값(78)은, 현재의 제 2 세트의 코드워드에 대한 에러 신드롬을 생성하는 동안 정정되는 이전의 제 2 세트의 코드워드에 대응하는, 디지털 데이터에서 에러를 정정하는 방법.
  12. 제 11항에 있어서, 상기 제 1 및 제 2 세트의 코드워드의 상기 교차 심벌의 위치에 의해 상기 제 1 신드롬 버퍼(12)를 어드레스 지정하는 단계(52)를 더 포함하는, 디지털 데이터에서 에러를 정정하는 방법.
  13. 제 11항에 있어서, 상기 제 1 에러 신드롬을 갱신하는 상기 단계(52)는, 상기 이전 및 현재의 제 2 세트의 코드워드 사이의 옵셋을 반영하기 위하여, 상기 에러 정정 값을 상수로 곱하는 단계를 포함하는, 디지털 데이터에서 에러를 정정하는 방법.
  14. 제 11항에 있어서, 상기 제 2 에러 신드롬을 생성하는 상기 단계(36)는, 제 2 세트의 코드워드의 데이터 심벌을 생성 다항식의 루트로 나누는 단계를 포함하는, 디지털 데이터에서 에러를 정정하는 방법.
  15. 제 14항에 있어서, 상기 나누는 단계는, 상기 제 2 세트의 코드워드의 데이터 심벌을 상기 생성 다항식의 두 개 이상의 루트로 병렬로 나누는 단계를 포함하는, 디지털 데이터에서 에러를 정정하는 방법.
  16. 제 11항에 있어서, 상기 제 1 에러 신드롬을 생성하는 상기 단계는, 제 2 세트의 코드워드와 교차하는 제 1 세트의 코드워드의 데이터 심벌을 생성 다항식의 루트로 나누는 단계를 포함하는, 디지털 데이터에서 에러를 정정하는 방법.
  17. 제 11항에 있어서, 상기 제 1 에러 신드롬과 상기 제 2 에러 신드롬을 동시에 생성하는 상기 단계(36)는, 상기 제 2 세트의 코드워드에 대한 상기 제 2 에러 신드롬을 제 2 신드롬 버퍼에 저장하는 단계를 포함하는, 디지털 데이터에서 에러를 정정하는 방법.
  18. 제 17항에 있어서, 상기 제 1 에러 신드롬과 상기 제 2 에러 신드롬을 동시에 생성하는 상기 단계(36)는, 제 1 세트의 코드워드의 상기 심벌과 교차하는 상기 제 2 세트의 코드워드의 상기 심벌을 사용하여 상기 제 2 신드롬 버퍼에 저장된 제 2 에러 신드롬을 갱신하는 단계를 포함하는, 디지털 데이터에서 에러를 정정하는 방법.
  19. 제 18항에 있어서, (i) 상기 데이터 버퍼(2)에 저장된 상기 디지털 데이터를 정정하는 상기 단계(d)는, 제 1 세트의 코드워드 내의 심벌을 정정하기 위한 제 1 신드롬에 따라 에러 정정 값을 생성하는 단계를 포함하고,
    (ii) 상기 제 2 신드롬 버퍼에 저장된 상기 제 2 에러 신드롬을 갱신하는 상기 단계는 상기 에러 정정 값을 사용하는, 디지털 데이터에서 에러를 정정하는 방법.
  20. 제 19항에 있어서, 상기 에러 정정 값을 사용하여 상기 제 2 에러 신드롬을 갱신하는 상기 단계(ii) 이전에, 상기 제 2 에러 신드롬을 상기 제 1 세트의 코드워드 내의 상기 정정된 심벌의 위치에 대해 조정하는, 디지털 데이터에서 에러를 정정하는 방법.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
KR10-2000-7000623A 1997-07-23 1998-07-21 곱셈 코드에 대한 동시 행/열 신드롬 발생기 KR100517482B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US08/898,774 US5974580A (en) 1997-07-23 1997-07-23 Concurrent row/column syndrome generator for a product code
US8/898,774 1997-07-23
US08/898,774 1997-07-23
PCT/US1998/015091 WO1999005793A1 (en) 1997-07-23 1998-07-21 Concurrent row/column syndrome generator for a product code

Publications (2)

Publication Number Publication Date
KR20010022054A KR20010022054A (ko) 2001-03-15
KR100517482B1 true KR100517482B1 (ko) 2005-09-28

Family

ID=25410024

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-7000623A KR100517482B1 (ko) 1997-07-23 1998-07-21 곱셈 코드에 대한 동시 행/열 신드롬 발생기

Country Status (7)

Country Link
US (1) US5974580A (ko)
EP (1) EP0998791B1 (ko)
JP (2) JP4102546B2 (ko)
KR (1) KR100517482B1 (ko)
AU (1) AU8504798A (ko)
DE (1) DE69805803D1 (ko)
WO (1) WO1999005793A1 (ko)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3340933B2 (ja) * 1997-02-15 2002-11-05 東芝デジタルメディアエンジニアリング株式会社 誤り訂正方法及びdvd再生装置
US6457156B1 (en) * 1998-01-29 2002-09-24 Adaptec, Inc. Error correction method
US6047395A (en) * 1998-01-30 2000-04-04 Cirrus Logic, Inc. Error correction processor for correcting a multi-dimensional code by generating an erasure polynomial over one dimension for correcting multiple codewords in another dimension
EP0939403A3 (en) * 1998-02-25 1999-11-17 Matsushita Electric Industrial Co., Ltd. High-speed error correcting apparatus with efficient data transfer
US6370671B1 (en) * 1998-06-18 2002-04-09 Globespan, Inc. Configurable decoder and method for decoding a reed-solomon codeword
CN1286275C (zh) * 1999-11-24 2006-11-22 三洋电机株式会社 纠错装置
US6772385B2 (en) * 2000-01-31 2004-08-03 Sanyo Electric Co., Ltd. Error-correcting device and decoder enabling fast error correction with reduced circuit scale
US7458007B2 (en) * 2000-02-18 2008-11-25 Texas Instruments Incorporated Error correction structures and methods
US7240204B1 (en) * 2000-03-31 2007-07-03 State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Oregon State University Scalable and unified multiplication methods and apparatus
US6651208B1 (en) * 2000-04-04 2003-11-18 Mosel Vitelic Corporation Method and system for multiple column syndrome generation
US6694476B1 (en) 2000-06-02 2004-02-17 Vitesse Semiconductor Corporation Reed-solomon encoder and decoder
US6738942B1 (en) * 2000-06-02 2004-05-18 Vitesse Semiconductor Corporation Product code based forward error correction system
US7159164B1 (en) * 2000-06-05 2007-01-02 Qualcomm Incorporated Method and apparatus for recovery of particular bits of a frame
EP1223578A3 (en) * 2000-12-12 2008-07-16 Kabushiki Kaisha Toshiba Data processing method using error-correcting code and an apparatus using the same method
US6910174B2 (en) * 2001-06-01 2005-06-21 Dphi Acquisitions, Inc. Error correction code block format
EP1293978A1 (en) * 2001-09-10 2003-03-19 STMicroelectronics S.r.l. Coding/decoding process and device, for instance for disk drives
US20030061558A1 (en) * 2001-09-25 2003-03-27 Fackenthal Richard E. Double error correcting code system
FR2834146A1 (fr) * 2001-12-20 2003-06-27 St Microelectronics Sa Turbo-decodeur compact a haute efficacite
US7266750B1 (en) 2002-07-10 2007-09-04 Maxtor Corporation Error recovery strategies for iterative decoders
US20040163030A1 (en) * 2003-02-13 2004-08-19 International Business Machines Corporation Iterative error correcting system
US8832523B2 (en) * 2006-03-03 2014-09-09 Ternarylogic Llc Multi-state symbol error correction in matrix based codes
EP1569348A1 (en) * 2004-02-13 2005-08-31 Alcatel Iterative multidimensional decoding
DE102004036383B4 (de) * 2004-07-27 2006-06-14 Siemens Ag Codier-und Decodierverfahren , sowie Codier- und Decodiervorrichtungen
US7600177B2 (en) * 2005-02-08 2009-10-06 Lsi Corporation Delta syndrome based iterative Reed-Solomon product code decoder
US7653862B2 (en) * 2005-06-15 2010-01-26 Hitachi Global Storage Technologies Netherlands B.V. Error detection and correction for encoded data
US7430701B2 (en) * 2005-06-16 2008-09-30 Mediatek Incorporation Methods and systems for generating error correction codes
US7774676B2 (en) * 2005-06-16 2010-08-10 Mediatek Inc. Methods and apparatuses for generating error correction codes
US20070067702A1 (en) * 2005-09-05 2007-03-22 Kuo-Lung Chien Method and apparatus for syndrome generation
US7624330B2 (en) * 2005-12-12 2009-11-24 Lsi Corporation Unified memory architecture for recording applications
US7743311B2 (en) * 2006-01-26 2010-06-22 Hitachi Global Storage Technologies Netherlands, B.V. Combined encoder/syndrome generator with reduced delay
US7823049B2 (en) * 2006-03-15 2010-10-26 Mediatek Inc. Methods and apparatuses for generating parity symbols for data block
US20070260963A1 (en) * 2006-04-21 2007-11-08 Kuo-Lung Chien Error correction system and related method thereof
US20070260960A1 (en) * 2006-04-21 2007-11-08 Kuo-Lung Chien Error correction system and related method thereof
US20070260961A1 (en) * 2006-04-21 2007-11-08 Kuo-Lung Chien Error correction system and related method thereof
US9203436B2 (en) * 2006-07-12 2015-12-01 Ternarylogic Llc Error correction in multi-valued (p,k) codes
US7894289B2 (en) * 2006-10-11 2011-02-22 Micron Technology, Inc. Memory system and method using partial ECC to achieve low power refresh and fast access to data
US8196004B1 (en) 2007-03-27 2012-06-05 Marvell International Ltd. Fast erasure decoding for product code columns
US8245117B1 (en) * 2008-12-23 2012-08-14 Link—A—Media Devices Corporation Low complexity chien search in chase-type decoding of reed-solomon codes
US8762818B1 (en) * 2009-03-05 2014-06-24 Marvell International Ltd. System and methods for performing decoding error detection in a storage device
JP5544773B2 (ja) * 2009-07-22 2014-07-09 ソニー株式会社 エラー訂正装置、エラー訂正装置のメモリの制御方法および光ディスク記録再生装置
US8924814B2 (en) 2012-08-28 2014-12-30 Seagate Technology Llc Write management using partial parity codes
KR101512361B1 (ko) * 2013-10-16 2015-04-15 한국과학기술원 연접 비씨에이치 디코더 및 연접 비씨에이치 디코딩 방법
US9286159B2 (en) * 2013-11-06 2016-03-15 HGST Netherlands B.V. Track-band squeezed-sector error correction in magnetic data storage devices
US9413392B1 (en) 2015-12-14 2016-08-09 International Business Machines Corporation Post-decoding error check with diagnostics for product codes
JP2020195007A (ja) * 2019-05-24 2020-12-03 キオクシア株式会社 メモリシステム
KR20220080589A (ko) * 2020-12-07 2022-06-14 삼성전자주식회사 Ecc 디코딩을 수행하는 ecc 엔진, 이의 동작 방법 및 ecc 엔진을 포함하는 스토리지 장치

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL8601446A (nl) * 1986-06-05 1988-01-04 Philips Nv Werkwijze en inrichting voor het dekoderen van een blok kodesymbolen dat op twee manieren verdeeld is over kodewoorden die elk door een minimum-afstandssepareerbare kode beschermd zijn.
US5068855A (en) * 1988-07-18 1991-11-26 Canon Kabushiki Kaisha Error correcting method and apparatus
JP3137119B2 (ja) * 1989-06-07 2001-02-19 キヤノン株式会社 誤り訂正装置
JPH04222029A (ja) * 1990-12-21 1992-08-12 Sony Corp エラー訂正方法
US5412667A (en) * 1993-07-08 1995-05-02 Commodore Electronics Limited Decoder for cross interleaved error correcting encoded data
US5602857A (en) * 1993-09-21 1997-02-11 Cirrus Logic, Inc. Error correction method and apparatus
WO1995012850A1 (en) * 1993-11-04 1995-05-11 Cirrus Logic, Inc. Reed-solomon decoder
FR2712760B1 (fr) * 1993-11-19 1996-01-26 France Telecom Procédé pour transmettre des bits d'information en appliquant des codes en blocs concaténés.
US5592498A (en) * 1994-09-16 1997-01-07 Cirrus Logic, Inc. CRC/EDC checker system
US5696927A (en) * 1995-12-21 1997-12-09 Advanced Micro Devices, Inc. Memory paging system and method including compressed page mapping hierarchy
US5802080A (en) * 1996-03-28 1998-09-01 Seagate Technology, Inc. CRC checking using a CRC generator in a multi-port design
FR2751810B1 (fr) * 1996-07-23 1998-10-23 Sgs Thomson Microelectronics Systeme de correction d'erreurs dans des trames de donnees ayant des codes de parite horizontaux et verticaux
US5844920A (en) * 1996-11-07 1998-12-01 Cirrus Logic, Inc. Thermal asperity compensation using multiple sync marks for retroactive and split segment data synchronization in a magnetic disk storage system
US5844911A (en) * 1996-12-12 1998-12-01 Cirrus Logic, Inc. Disc storage system with spare sectors dispersed at a regular interval around a data track to reduced access latency

Also Published As

Publication number Publication date
EP0998791B1 (en) 2002-06-05
JP2001511615A (ja) 2001-08-14
WO1999005793A1 (en) 1999-02-04
AU8504798A (en) 1999-02-16
US5974580A (en) 1999-10-26
KR20010022054A (ko) 2001-03-15
EP0998791A1 (en) 2000-05-10
JP2008148334A (ja) 2008-06-26
JP4102546B2 (ja) 2008-06-18
DE69805803D1 (de) 2002-07-11

Similar Documents

Publication Publication Date Title
KR100517482B1 (ko) 곱셈 코드에 대한 동시 행/열 신드롬 발생기
KR100562832B1 (ko) 랜덤화된데이터내의에러를정정하기위한에러정정처리기및그방법
US6047395A (en) Error correction processor for correcting a multi-dimensional code by generating an erasure polynomial over one dimension for correcting multiple codewords in another dimension
KR100573356B1 (ko) 코드워드데이터를저장하기위한데이터버퍼와에러신드롬을저장하기위한신드롬버퍼를사용하는ecc시스템
US6272659B1 (en) Error correction code processor employing adjustable correction power for miscorrection minimization
US5991911A (en) Concurrent generation of ECC error syndromes and CRC validation syndromes in a DVD storage device
US4881232A (en) Method and apparatus for error correction
KR100415136B1 (ko) 에러정정방법,에러정정장치,데이터판독장치,및데이터맵핑방법
US6003151A (en) Error correction and detection system for mass storage controller
JP2007087529A (ja) 信号復号装置、信号復号方法、および記憶システム
US6772385B2 (en) Error-correcting device and decoder enabling fast error correction with reduced circuit scale
JP3071828B2 (ja) 誤り訂正積符号ブロックを生成するためのデータ処理方法と該データを記録媒体に記録するためのデータ処理方法及び該データの処理装置
US8625220B2 (en) Constrained on-the-fly interleaver address generator circuits, systems, and methods
US7127660B2 (en) Method, apparatus and program storage device for correcting a burst of errors together with a random error using shortened cyclic codes
KR19990029163A (ko) 데이터의 에러 정정 방법 및 에러 정정 장치
US7131052B2 (en) Algebraic decoder and method for correcting an arbitrary mixture of burst and random errors
US20100241922A1 (en) Error correction circuit and data storage device
JP3992443B2 (ja) 符号化方法、復号方法、符号化回路、復号回路、記憶装置、記憶媒体、通信装置
KR100691065B1 (ko) 고밀도 광 기록매체에서의 데이터 에러정정 코드생성방법과 이에 의한 에러 정정 방법, 그리고 그 장치
JP3609714B2 (ja) 誤り訂正装置
KR100606521B1 (ko) 고밀도 광 기록매체에서의 데이터 에러정정 코드 생성방법및 장치
JPH0824269B2 (ja) 誤り訂正方法
JPH10154941A (ja) 誤り訂正回路
GB2324445A (en) Optical disc error detection/correction during readout
JPS63298776A (ja) エラ−訂正処理方式

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120906

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20130910

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140905

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20150904

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20160908

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20170911

Year of fee payment: 13

EXPY Expiration of term