KR20010033954A - 순환 에러 정정 코드에 대한 물리적 블록 어드레스 복구장치, 시스템 및 방법 - Google Patents

순환 에러 정정 코드에 대한 물리적 블록 어드레스 복구장치, 시스템 및 방법 Download PDF

Info

Publication number
KR20010033954A
KR20010033954A KR1020007007538A KR20007007538A KR20010033954A KR 20010033954 A KR20010033954 A KR 20010033954A KR 1020007007538 A KR1020007007538 A KR 1020007007538A KR 20007007538 A KR20007007538 A KR 20007007538A KR 20010033954 A KR20010033954 A KR 20010033954A
Authority
KR
South Korea
Prior art keywords
sequence
parity
symbols
data
polynomial
Prior art date
Application number
KR1020007007538A
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 KR20010033954A publication Critical patent/KR20010033954A/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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/1803Error detection or correction; Testing, e.g. of drop-outs by redundancy in data representation
    • 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/1866Error detection or correction; Testing, e.g. of drop-outs by interleaving
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/30Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on the same track as the main recording
    • G11B27/3027Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on the same track as the main recording used signal is digitally coded
    • 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

Landscapes

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

Abstract

본 발명은 향상된 매체 코드워드를 제공하고 정정할 수 없는 데이터 에러를 잘못된 블록 어드레스 에러와 구별할 수 있으며, 판독 데이터로부터 어드레스가 복구되는 것을 허용하는 방법 및 장치에 관한 것이다. 본 발명의 일 실시예에 있어서, 어드레스를 나타내는 시퀀스와 데이터가 수신되는 패리티를 생성하기 위한 방법이 제공된다. 상기 어드레스 시퀀스는 곱 심볼의 제 1 시퀀스를 생성하기 위하여 승산 심볼(216)과 승산된다. 제 1 부분은 제 1 패리티 시퀀스(211)를 생성하기에 앞서 상기 데이터 시퀀스에 가산되고, 제 2 부분은 최종 패리티 시퀀스(215)를 생성하기 위하여 제 1 패리티 시퀀스에 직접 가산된다. 판독 데이터로부터 신드롬을 생성하기 위한 대응하는 방법이 제공된다. 본 발명에 따른 방법을 구현하기 위한 시스템 및 장치도 역시 제공된다.

Description

순환 에러 정정 코드에 대한 물리적 블록 어드레스 복구 장치, 시스템 및 방법 {A PHYSICAL BLOCK ADDRESS RECOVERY APPARATUS, SYSTEM AND METHOD FOR CYCLIC ERROR CORRECTION CODES}
저장 매체는 다양한 타입의 잡음, 왜곡 및 간섭에 노출되어있기 때문에, 다양한 에러가 저장 매체의 출력에서 발생할 수 있다. 현재의 경향은 보다 많은 양의 디지털 데이터를 저장 매체 상의 보다 적은 영역에 저장하려 한다. 이러한 경향은 에러의 가능성을 증가시킨다. 에러를 정정하기 위하여, 에러 정정 코딩이 사용된다. 다양한 에러 정정 코딩 기술이 존재한다. 이같은 에러 정정 코드 중 한 부류가 공지된 리드 솔로몬(RS) 코드이다. 상기 리드 솔로몬(RS) 엔코딩 기술은 b개 사용자 데이터 심볼 각각의 블록에 2t개의 리던던시 심볼을 첨가하여, 코드워드를 생성한다.(여기에서 t는 코드의 설계된 심볼 에러 정정 용량을 나타낸다) RS 코드워드내에는 b+2t개의 심볼이 존재한다. RS 코드워드는 소정의 에러 확률을 가지고 저장매체로 그리고 저장매체로부터 전달된다. 디코딩 시기 동안에, 저장 매체로부터의 데이터 전송에서 유도된 소정의 에러 패턴이 검출될 수 있으며, 수신된 데이터를 분석함으로써 원래 데이터가 재현될 수 있다. 예를 들어, 소정의 종래 에러 검출 및 제어 시스템과 그에 따른 방법을 논의하기 위하여, 본 발명에서 참조문으로 인용되고 잉글우드 클리프, 뉴저지 07632의 프렌티스 홀 사에 의해 1995년 출판된 Stephen B. Wicker의 "디지털 통신 및 저장에 대한 에러 제어 시스템",의 참조문 국제표준 도서번호(ISBN) 제 0-13-200809-2호를 참조하도록 한다.
에러는 종종 무작위적인 패턴보다는 돌발적으로 발생하며, 이에 따라 몇 개의 연속적인 바이트 또는 심볼이 잘못되게 된다(이러한 설명에서 심볼은 바이트와동의적으로 사용되며, 본 명세서에 바이트의 용어가 사용되고 비트의 수는 임의적이고 8비트, 16비트 등으로 한정되지 않고 다른 임의 개수의 비트, 예를 들어 10 비트, 12비트 또는 다른 개수를 취할 수 있다는 것이 이해될 것이다). 이러한 돌발적인 모든 에러가 단일의 코드워드로 한정된다면, 코딩 기술의 용량이 미리 정의된 개수의 에러를 정정하기 위해 한정되고 에러 버스트는 이러한 용량을 초과하기 때문에, 에러 정정 코딩 기술은 이러한 에러를 정정할 수 없다. 인터리빙은 종종 이러한 문제점을 극복하기 위하여 사용된다. 인터리빙은 여러 코드워드에 걸쳐 사용자 데이터 심볼을 분포시켜, 소정의 코드워드로부터의 심볼이 전송 동안 잘 분리되게 하는 기술이다. 디코딩 처리 동안에 코드워드가 재현될 때, 전송 동안에 유도된 에러 버스트는 해체되어 여러 코드워드에 걸쳐 분포하게 된다. 이러한 방식으로 에러 분포가 이루어져서, 코드워드내에 존재하는 에러의 수는 에러 정정 기술의 능력 내에 있기 쉽다.
엔코딩된 데이터는 저장 매체 상의 소정의 물리적 블록 어드레스(PBA)에 저장된다. 상기 PBA는 또한 특별한 국지적 블록 어드레스(LBA)에 관련될 수 있어서, 본 명세서의 PBA에 대한 기준은 LBA에 적용될 수 있다. 즉, 기록 매체 상의 각 위치는 물리적 블록 어드레스를 가지지만; 자기 디스크, 광자기 디스크, 자기 테이프 등과 같은 기록 매체는 적어도 약간의 결함을 가지기 때문에, 소정의 물리적 블록에 관련된 매체는 소정의 다른 물리적 블록 어드레스로 재맵핑될 수 있다. 이용 가능한(에러가 없는) 물리적 블록 어드레스 각각은 국지적 블록 어드레스로 식별된다. 일반적인 시스템 및 장치에 있어서, 엔코딩된 데이터가 상이한 PBA(또는 LBA)를 사용하여 디코딩된다면 디코딩 처리는 실패할 것이고 즉 데이터는 정정될 수 없는 에러를 가지는 것으로 보이는 방식으로, PBA(또는 LBA)는 엔코딩/디코딩 처리에서 사용될 수 있다.
종래의 한 방식에 있어서, 호스트 컴퓨터(102), 그 상부에 데이터를 저장하기 위한 하나 이상의 디스크를 가지는 회전식 자기 디스크 드라이브(104) 및 에러 정정 코드 엔코더/디코더 유니트(ECC 엔코더/디코더)(106)를 구비한 디스크 드라이브 컴퓨터 시스템(100)이 기입 또는 엔코딩 동작을 위하여 도 1에 도시된 것처럼 제공된다(판독(readback) 또는 디코딩 동작을 위한 해당 블록도(101)는 도 2에 도시되었으며, 아래에서 상세히 설명된다). 데이터(D(x)(105)) 또는 패리티(P(x),107)를 디스크(104)에 기록될 정보(109)로서 선택하기 위하여, ECC 엔코더/디코더(106)는 호스트(102)와 디스크(104) 사이에 개제된 멀티플렉서 또는 스위치(108) 만을 사용하여 호스트(102)와 디스크(104) 사이에 사용자 데이터를 위한 제 1 경로를 제공한다. 데이터와 패리티가 디스크 드라이브 저장기에 기입되는 방식은 기술 분야에 공지되어있어서 더 이상 설명하지 않기로 한다. 실제 장치는 버퍼, 레지스터, 클록 신호 및 다른 논리적 신호가 이러한 회로를 구현하는 데에 포함되지만, 일반적인 것은 본 발명 또는 종래의 시스템, 장치 또는 방법과 차이를 불명료하게 하지 않기 위하여 설명하지 않았다.
호스트(102)로부터 디스크(104)로의 제 2 경로는 데이터D(x)의 XOR에 의해 형성된 배타적 OR(XOR) (112) 및 난수화기(116)의 출력을 수신하는 패리티/신드롬 생성기(110)를 통해 정의된다. 난수화기(116)는 기술 분야에 공지된 것과 같은 의사 난수 시퀀스를 생성하기 위한 시드로서 실제 PBA(또는 LBA)(117)를 수신한다. 패리티/신드롬 생성기(110)는 XOR(112)에 의한 합 신호 출력에 기초하여 패리티P(x)를 생성한다. 승산기(108)는 데이터/패리티 선택 제어 회로(119)의 상태에 응답하여 데이터D(x) 또는 패리티P(x)를 선택 또는 전달한다.
난수화 유니트(116)는 종래의 ECC 엔코더/디코더 유니트(106)의 동작에 있어서 중요하며, 기입(엔코딩) 동안 의도된 또는 실제 PBA 값 및 판독(디코딩)동안 예측된 또는 예상된 PBA값(111)을 사용하여 시드된다. 상술한 바와 같이, 예를 들어 예측 또는 추정된 PBA(또는 LBA)(111)는 저장 매체 상의 위치, 예를 들어 자기 디스크 상의 트랙 및 섹터를 규정하기 위한 4바이트가 된다. 시드 동작(seeding)은 난수화기가 의사 난수 시퀀스를 생성하기 이전에 PBA(또는 LBA)의 값을 사용하여 프리세팅되는 엔코딩 또는 디코딩을 위한 절차를 의미한다. 의사 난수 시퀀스를 생성하기 위하여 시드를 사용하는 것은 기술 분야에 공지되어 있고 더 이상 설명하지 않기로 한다.
난수화기(116)의 출력 시퀀스(113)는 기입 동안 패리티 생성을 위하여 호스트(102)로부터의 기입 데이터D(x)와 XOR 회로(112)에 의해 XOR되며, (판독 구성을 위한 도 2를 참조) 판독 동안 신드롬 생성을 위하여 판독 데이터D(x)와 XOR 회로(112)에 의해 XOR된다. 판독 또는 독출 모드의 동작에 있어서, 데이터 D(x)는 디스크(104)로부터 도달하여 도 2에 도시된 것과 같이 호스트(102)에 전달된다. 판독 또는 디코딩 모드는 또한 패리티/신드롬 생성기(110)에 의해 생성된 신드롬(121)을 수신하는 에러 정정 유니트(ECU)(120))를 사용하여, 실제 PBA(또는 LBA)가 예측된 PBA(또는 LBA)와 동일하지 않을 경우에 에러가 발생되었는 지의 여부를 결정하는 정정할 수 없는 에러 신호 또는 표시를 생성하지만, 호스트가 패리티를 요구하지 않고 단지 데이터D(x)만을 수신함에 따라 멀티플렉서(108)를 요구하지 않는다.
불행히, 동일한 데이터의 기입 및 판독을 위하여 난수화기(116)에 의해 사용된 시드값(이러한 경우에는 PBA 또는 LBA)은 상이하며, 이에 따라 기입 출력 난수화기 시퀀스 및 판독 출력 난수화기 시퀀스도 역시 상이하며, 예측처럼 서로 매칭되거나 상쇄될 수 없다. 예를 들어 추정된 PBA(또는 LBA)가 실제 PBA와 상이하다면, 시드 값은 상이하다. 에러가 검출될 때, ECU(120)은 단지 정정할 수 없는 에러가 매체 오류에 의해 야기될 수 있는 또는 추정된 PBA와 매칭되지 않은 실제 PBA의 결과와 같은 에러의 원천이 손상된 데이터인 지에 의존하여 발생한다는 것을 나타낸다. 종래의 시스템에서, 어떠한 절차도 에러의 원인이 잘못된 PBA로서 인식하기 위한 것에는 사용가능하지 않았다.
따라서 이러한 종래의 방법은 에러 정정 및 잘못된 PBA와 관련된 모든 문제를 해결하는 데에 실패하였으며, 특히 정정할 수 없는 데이터 에러와 잘못된 PBA를 구별하는 것을 허용하지 않는다. 종래의 방법은 또한 판독 데이터로부터 실제 PBA의 복구가 가능하지 않다.
정정할 수 없는 데이터 에러와 잘못된 PBA(또는 LBA)를 구별하는 것이 바람직하다. 우선 잘못된 PBA(또는 LBA)는 예를 들어 손상이 있는 매체 등에 의해 야기된 에러와는 근본적으로 상이한 특성을 가진다. 둘째, 시드 또는 제어 절차의 설계 동안 디스크 드라이브의 동기화 동작을 조정하기 위하여 판독 데이터로부터 실제 PBA 또는 LBA를 복구할 수 있는 것이 바람직하다. 최종적으로, 이것은 디스크 독출의 위치(PBA)가 독출되어져야 할 디스크의 일부가 아닐 다소 높은 가능성이 존재하는 경우의 소정의 고밀도 기록 시스템 및 시드 동작 제어 시스템의 실시간 또는 근사 실시간 조정을 허용하기 위하여 판독 데이터로부터 실제 PBA를 복구하는 데에 유용하다. 이에 따라, 정정할 수 없는 데이터 에러와 잘못된 PBA 또는 LBA를 구별할 수 있는 문제에 대한 해결책 및 판독 데이터로부터 실제 PBA 또는 LBA를 복구할 수 없는 문제점에 대한 해결책이 요구되었다.
본 발명은 종래 기술의 다른 장점을 제공하는 한편 이러한 그리고 다른 문제점을 해결하기 위한 것이다.
본 발명은 일반적으로 에러 검출 및/또는 정정에 관한 것이다. 보다 구체적으로, 본 발명은, 블록 어드레스 에러와 정정될 수 없는 데이터 에러 차이를 구별할 수 있고 물리적 또는 논리적 블록 어드레스 에러의 경우에 실제 블록 어드레스의 복구를 허용하는 인터리브된 리드 솔로몬 코드에 대한 물리적 또는 논리적 블록 어드레스(PBA 또는 LBA) 전송 및 회복 시스템 및 방법에 관한 것이다.
도 1은 기입 동작 모드에서 에러 정정 코드 엔코더/디코더 유니트에 기초한 난수화기를 구비한 종래의 데이터 저장 시스템에 대한 블록도이다.
도 2는 독출 동작 모드에서 에러 정정 코드 엔코더/디코더 유니트에 기초한 난수화기를 구비한 종래의 데이터 저장 시스템에 대한 블록도이다.
도 3은 기입 동작 모드에서 에러 정정 코드 엔코더/디코더 유니트에 기초한 다항 승산기를 구비한 본 발명의 데이터 저장 시스템 실시예에 대한 블록도이다.
도 4는 독출 동작 모드에서 에러 정정 코드 엔코더/디코더 유니트에 기초한 다항 승산기를 구비한 본 발명의 데이터 저장 시스템 실시예에 대한 블록도이다.
도 5는 시퀀스 전치 추가의 비교 및, 전치 추가된 물리적 블록 어드레스의 패리티와 데이터 시퀀스의 길이를 가지는 함수 S(x)가 데이터에 가산되어 시퀀스의 전치 추가를 사용하여 얻어지는 것과 동일한 패리티를 얻기 위하여 처리되는 방식을 개략적으로 도시한다.
도 6은 본 발명에 따라 승산 회로의 실시예를 개략적으로 도시한다.
도 7은 본 발명에 따른 방법의 실시예를 상세히 설명한 흐름도이다.
본 발명은 상술한 문제점을 해결하기 위하여, 저장 장치의 물리적 또는 논리적 블록 어드레스로부터 유도된 시퀀스의 전치 추가(prepending)를 처리하는 다항 승산 회로를 가지며, 매체 상에 저장된 향상된 코드워드를 제공하고, 잘못된 블록 어드레스와 정정할 수 없는 데이터 에러를 구별할 수 있으며 실제 블록 어드레스가 데이터 저장 시스템내의 저장 매체로부터 독출된 데이터에서 복구되는 것을 허용하는 시스템, 장치 및 방법에 관한 것이다.
본 발명의 일실시예에 따라, 코드의 패리티 심볼 시퀀스를 생성하기 위한 방법이 제공되는데, 상기 방법에서는 m-심볼 어드레스를 나타내는 시퀀스가 수신되고 k 데이터 심볼의 시퀀스가 수신된다. m-심볼 어드레스를 나타내는 시퀀스는 승산 심볼 세트에 의해 승산되어 곱 심볼을 생성하며, 상기 곱 심볼은 제 1 시퀀스와 제 2 시퀀스의 합과 같고 여기에서 제 1 시퀀스의 마지막 r개의 계수(r은 패리티 심볼의 개수와 동일하다)는 제로이며, 제 2 시퀀스의 차수는 패리티 심볼의 개수보다 1개 작다. 이어 코드워드의 k개 심볼에 대한 데이터 전송 시기 동안에 데이터 시퀀스에 제 1 시퀀스를 더한 합에 대한 제 1 패리티 시퀀스를 생성하기에 앞서 곱 심볼의 제 1 시퀀스는 데이터 시퀀스에 더하여진다. 이어, 코드워드 종단부의 다수의 심볼에 대한 패리티 전송 시기 동안에 제 2 시퀀스는 제 1 패리티 시퀀스에 직접 더하여져서, 최종 패리티 시퀀스를 생성한다.
본 발명의 다른 실시예에 따라, 코드의 패리티 심볼 시퀀스를 생성하기 위한 방법은 신드롬 심볼 시퀀스를 생성하기 위한 단계를 더 포함한다. 신드롬 심볼 시퀀스 생성 단계는 m-심볼 어드레스를 나타내는 시퀀스와 동일하지 않는 m-심볼 어드레스 추정을 나타내는 시퀀스 및 일부가 에러에 속하게 되는 k+r개의 데이터 및 패리티 심볼에 대한 판독 시퀀스를 수신하는 단계를 수반한다. 이어 m-심볼 어드레스 추정을 나타내는 시퀀스는 승산 심볼 세트에 의해 승산되어, m-심볼 어드레스 추정 시퀀스가 m-심볼 어드레스 시퀀스와 동일한 경우에 곱 심볼의 제 1 시퀀스와 동일하여 지는 곱 심볼의 제 2 시퀀스를 생성한다. 곱 심볼의 제 2 시퀀스는 또한 판독 시퀀스에 가산되어 합 시퀀스를 생성하며, 합 시퀀스에 대한 신드롬이 생성된다.
본 발명의 방법을 구현하기 위한 장치 및 시스템이 또한 제공된다. 예를 들어, 데이터의 어드레스 또는 위치가 대상이 될 때 회전 자기 디스크 저장 시스템, 광자기 저장 시스템, 테이프 저장 시스템 또는 임의의 다른 데이터 또는 정보 시스템과 같은 본 발명의 특징을 가지는 컴퓨터 시스텀용 데이터 저장 시스템이 제공될 수 있다. 본 발명에 따른 장치 및 방법은 또한 보조 정보내의 에러가 식별되고 보조 정보가 복구되도록 어드레스 블록 정보 이외의 소정의 보조 정보를 사용자 데이터와 연결시키는 데에 보다 일반적으로 적용될 수 있다. 본 발명은 또한 블록 어드레스 에러 구별 및 복구 방법을 실현하기 위하여 컴퓨터 시스템에 의해 수행될 수 있는 명령의 프로그램을 명확히 구현하는 컴퓨터 독출 가능한 프로그램 저장 장치로서 구현될 수 있다. 게다가, 본 발명은 또한 블록 어드레스 에러 구별 및 복구 회로 자체로서 구현될 수 있으며, 상기 회로는 디스크 드라이브 시스템과 같은 데이터 저장 장치의 엘리먼트로서 구현될 수도 있고, 회로 자체는 컴퓨터 시스템의 구성 엘리먼트가 될 수 있다. 이러한 용이한 특징들 중, 본 발명은 헤더가 없는 PBA/LBA 무결성(integrity) 체제에서의 가상의 전치 추가를 사용하여 물리적 블록 어드레스 및/또는 논리적 블록 어드레스(PBA/LBA) 복구를 제공한다.
본 발명을 특징짓는 상기 및 다양한 다른 특징뿐만 아니라 장점은 상세한 설명 및 그와 관련된 도면을 참조하여 명백하여 질 것이다.
본 발명의 구조 및 방법에 대한 실시예를 도면과 관련하여 설명한다. 도 3을 참조하여, 본 발명의 ECC 엔코더/디코더(206) 및 이와 관련한 데이터 저장 시스템에 기초한 디스크(204)를 구현하는 컴퓨터 시스템의 실시예가 도시되었다. 도 3에 도시된 것과 같은 시스템은 에러 정정 코드(ECC) 엔코더/디코더(206) 이외에, 메모리, 디스플레이, 포인팅 장치 및, 하드 디스크 드라이브(204)의 광자기 드라이브 등과 같은 데이터 저장 시스템을 구비한 일반적인 타입의 호스트 컴퓨터를 포함한다. 본 발명에 따른 방법은 컴퓨터 시스템(200)내에서의 실행 가능한 소프트웨어, 펌웨어, 하드웨어 또는 그들의 조합으로 구현됨으로써 실행될 수 있으며; 데이터가 디스크에 기입 또는 디스크로부터 독출되는 속도에 실행 속도가 근접하도록, 본 발명이 디스크 드라이브(204)와 관련된 제어기(도시되지 않음)와 관련한 하드웨어의 적어도 부분으로 용이하게 구현될 수 있다.
도 3은 본 발명에 따른 컴퓨터 데이터 저장 시스템(200)의 제 1 실시예를 도시한다. 호스트 컴퓨터 시스템(202)은 데이터D(x)를 디스크(204)와 같은 데이터 저장 매체에 기입하고, 데이터 저장 매체(204)로부터 데이터 D(x)를 독출한다. 호스트 컴퓨터 또는 프로세서와 데이터 저장 매체(204) 사이에서 전송되는 데이터(205)를 일시적으로 저장하기 위하여, 제 1 FIFO(First In First Out) 또는 버퍼(도시되지 않음)가 일반적으로 사용된다. 호스트(202)가 데이터를 데이터 저장 매체(204)에 기입할 때, FIFO에 저장된 사용자 데이터는 사용자 데이터D(x)(205)와 실제 PBA/LPA 시퀀스에 기초하여 생성된 시퀀스 S1(x)(231)의 합을 엔코딩하는 에러 정정 코드(ECC) 엔코더/디코더 유니트(206)로 전송된다. 패리티/신드롬 생성기(210)로부터의 출력(211)이 다항 승산기(216)의 출력S2(x)과 가산됨으로써 추가로 처리되어, 최종 패리티Q(x)가 생성되는 방식은 다음에서 상세히 설명된다. 데이터(205) 및 패리티(215)를 포함하는 엔코더의 출력(209)은 일반적인 타입의 (도시되지 않은) 디스크 인터페이스에 의해 데이터 저장 매체(204)에 기입된다.
독출 동작(도 4 참조) 동안에 데이터 저장 매체(204)로부터 독출된 첨부된 패리티Q(x)를 가지는 데이터D(x)는 디스크 인터페이스에 의해 독출되어 일반적으로 (본 발명에 대한 보다 명확한 설명을 제공하기 위하여 일반적인 형태이고 디자인을 가지며 데이터 저장 매체에서의 사용이 기술 분야에 공지되어 있기 때문에, 다양한 타입의 FIFO 및 버퍼가 도면에 도시되지 않음) FIFO를 통해 버퍼(도시되지 않음)로 전송된다. 게다가, 판독 시퀀스(225)는 추정된 PBA/LBA 시퀀스(213)와 함께 ECC 엔코더/디코더 유니트(206)로 전송된다. 상기 ECC엔코더/디코더 유니트(206)는 신드롬(226)을 계산하며, 수신된 데이터 및/또는 추정된 PBA/LBA 시퀀스가 에러에 속하는 소정 바이트 또는 심볼을 포함하는 지의 여부를 결정한다. 에러를 가지는 심볼은 ECC 엔코더/디코더 유니트(206)내의 또는 그와 관련된 에러 정정 유니트(220)에 의해 검출되어, 추정된 PBA/LBA(213)와 실제 PBA/LBA(217) 사이의 부정합의 경우에 PBA 에러 플래그(227)와 같은 에러 식별자 및 PBA 에러 값(229)과 같은 에러 값을 생성한다. 신드롬은 어떠한 에러도 유발하지 않으며, ECC 엔코더/디코더(206)에 의해 처리된 정보는 디코딩되어 호스트(202)로 전달된다.
본 발명은 다항식 시퀀스를 생성하는 다항 승산기 유니트를 포함하여, 각각 기입(엔코딩) 및 독출(디코딩) 동작 모드에서의 본 발명에 따른 ECC 엔코더/디코더 유니트(206)에 대한 블록도인 도 3 및 도 4를 참조하여 요약된다. 상기의 다항식 시퀀스 S(x)=L(x)×M(x)×xk-m-u+1, L(x)는 PBA 또는 PBA(또는 LBA)로부터 유도된 소정의 표현이고 M(x)는 xm+r-1+umod g(x)의 형태로 여기에서 x는 다항식의 변수이고 m은 코드워드 인터리브당 전치 추가된 바이트의 수이고 r은 패리티 바이트의 수이고, 0≤u≤(k-m+1)은 지연 값이고 g(x)는 생성 다항식이다. 즉, 이러한 표현에서 사용되는 것으로, 바이트는 비트 수의 임의적인 수의 비트를 포함하는 심볼이다.
ECC 엔코더/디코더(206)는 도 1 및 도 2와 관련하여 도시된 ECC 엔코더/디코더와 같은 종래의 ECC 엔코더/디코더에서 생성된 패리티 바이트 시퀀스 P(x)와 상이한 패리티 바이트 시퀀스Q(x)를 생성하지만, 여전히 종래의 패리티 P(x)와 동일한 개수의 바이트로 저장 매체(디스크)상에 기입되도록 설정됨과 동시에 정정할 수 없는 에러와 잘못된 PBA(또는 LBA) 사이의 구별을 유용하게 제공하고 판독된 데이터로부터 PBA(또는 LBA)를 복구하기 위한 충분한 정보를 제공한다.
디스크에 기입되는 가상적으로 전치 추가된 바이트를 가지는 코드워드를 생성하기 위하여, 지연 u이 요구될 때 S1(x) 및 S2(x)를 생성하기 위해 시퀀스 L(x)×xk+r-m-u를 xm+r-1+umod g(x)와 곱하기 위한 다항 승산기 블록(216)이 패리티/신드롬 생성 유니트를 일반적으로 포함하는 ECC 엔코더/디코더에 추가된다. 요구된 가산을 수행하기 위한 제 1 및 제 2 배타적 OR 회로(XOR1, XOR2)(212, 214)도 역시 ECC 엔코더/디코더에 제공된다. 도 3 및 도 4에 도시된 실시예에 있어서, 승산기(216)는 r-1개의 추가적인 제로가 S2(x)의 마지막 r-1 바이트를 생성하도록 시프트인 되도록 것을 요구한다. 일반적으로, 패리티/신드롬 생성기(210)는 계산된 값을 그들이 출력될 때까지 저장하기 위한 레지스터를 포함하지만 이러한 레지스터는 일반적인 타입이기 때문에 도시되지 않았다. 추가적인 제로를 사용하는 이러한 승산기의 플러시(flush)는 입력 시퀀스로 L(x)xk-m+1대신에 L(x)xk+r-m을 제공하는 것과 동일하다.
기입 동작 동안 엔코딩 처리를 시작함에 있어서, 승산기 출력(208)은 사용자 데이터D(x)를 출력으로 전송한다. 상기 사용자 데이터D(x)는 전치 추가된 시퀀스 L(x)와 동시에 패리티 생성기(210)의 데이터 입력으로 제공된다. D(x)와 xr및 L(x)와 xk+r-m을 곱하는 것은 r 및 K+r-m개의 제로가 D(x)와 L(x)에 각각 추가되는 것에 해당한다. 처음 K개의 심볼 동안에 S(x)가 승산기 블록(216)의 출력에서 생성되어, 패리티/신드롬 생성기(210)의 입력에서 D(x)에 부가된다. k개의 바이트를 처리한 이후에, 승산기(208)는 데이터/패리티 선택 제어신호를 사용하여 "패리티" 입력으로 스위칭되고 패리티 바이트가 전송된다. 승산기(216)는 모두 제로가 되는 S2(x)의 바이트를 생성하기 시작한다. S2(x)는 패리티/신드롬 생성기(210)의 출력에 부가되어 요구된 시퀀스를 형성한다.
판독 동작 동안에, 판독 동안 데이터와 패리티 바이트 사이에서 어떠한 구별도 없으며 S1(x) 및 S2(x)이 패리티/신드롬 생성기(210)의 입력에 부가되어, XOR 엘리먼트(214)가 전혀 요구되지 않는다는 점을 제외하고는 절차는 기입 동작의 엔코딩 처리와 동일하다.
본 발명에 따른 PBA(또는 LBA)의 가상적 전치 처리를 위한 이론적인 원칙을 이해하기 위한 기본으로 리드-솔로몬 코드를 간략하게 설명한다. 이러한 설명이 리드-솔로몬 코드의 용어하에 본 발명의 실시예에 대한 상세한 설명을 제공할지라도, 본 발명의 구조 및 방법은 일반적으로 순환 코드에 적용할 수 있고 BCH 및 리드-솔로몬 코드에 특히 적합하다는 것이 주지되어야 한다. 리드-솔로몬(RS) 코드워드는 단지 한정된 개수의 데이터 바이트를 가질 수 있다. 예를 들어, 5 심볼(t=5), 4 인터리브(I=4) 및 5 바이트의 에러 검출 코드 패리티(EDC=5)의 의도된 심볼 에러 정정 용량의 코드를 사용하는 데이터 필드에 있어서, 최대 개수의 사용자 데이터 바이트는 kmax=975이며, 1020바이트 필드의 패리티에 대하여 45 바이트가 남겨진다. 사용자 데이터 바이트 k의 개수가 kmax보다 작다면 우선 kmax-k 바이트가 추가 정보의 전송을 위해 사용될 수 있다.
본 발명에 따른 구조 및 방법은 PBA 또는 LBA 정보를 디스크 상에 저장될 바이트의 시퀀스로 전송하기 위하여 RS 코드워드와 같은 순환 코드(명목상으로 코드워드의 개시부분)로 이러한 고정되지 않은 자유로운 바이트를 사용한다. "전치 추가된"의 용어 및 ("전치 추가" 또는 전치 추가형"과 같은) 변형은 추가의 바이트가 코드워드의 개시부분에 위치된다는 사실을 설명하기 위하여 사용된다. 일 실시예에 있어서, PBA 또는 LBA는 인터리브당 하나의 바이트의 비율로 전치 추가되지만, 증가된 바이트 수의 PBA 또는 LBA가 인터리브당 전치 추가될 수 있다.
상세한 설명에서 이후에 보다 명백하여 지는 바와 같이, 기입동작 동안에 PBA 또는 LBA 바이트 자체는 디스크 드라이브 또는 다른 저장 수단에 기입되지 않지만; 기입 동작 동안 패리티와 독출 동작 동안의 신드롬은 PBA 또는 LBA가 존재하는 것처럼 계산된다. 이러한 이유로, 전치 추가된 PBA 또는 LBA는 "실제"의 의미보다는 "가상적" 의미로 고려될 수 있어서, 그들은 절대 실제적으로 디스크 드라이브 또는 다른 저장 장치에 기입되지는 않는다. 전치 추가 바이트 자체가 저장 장치에 기입되지 않는다는 사실에도 불구하고, 판독 동작 동안 계산된 신드롬에 의해 표현된 PBA (또는 LBA) 바이트가 기입 동작 동안에 계산된 PBA(또는 LBA) 패리티와 다르다면, ECC는 PBA(또는 LBA) 위치내의 에러를 정정하며, 이에 따라 본 발명의 구조 및 방법은 PBA( 또는 LBA) 에러로부터의 복구를 제공한다.
256 차의 갈로이스 필드{GF(256)}상의 리드-솔로몬(RS) 코드의 코드워드는 한정된 길이 n=k+r≤255를 가지며, 여기에서 k는 사용자 데이터 바이트 수이며, r은 패리티 바이트 수이다. 패리티 바이트 수 r의 값은 코드의 검출/정정 능력에 의해 결정되며, 소정의 정정 능력을 가지는 코드에 대하여, 사용자 데이터 바이트 수 k는 항상 사용자 데이터 바이트의 최대수 kmax=255-r보다 적다. 사용자 데이터 바이트의 실제 개수 k는 kmax보다 항상 적고, 처음 kmax-k개의 위치는"자유롭"거나 이용가능하고, m≤kmax-k 바이트의 추가 정보의 전송을 위하여 사용될 수 있다.
예를 들어, 4 바이트의 논리적 블록 어드레스(LBA) 또는 물리적 블록 어드레스(PBA) 및 에러 정정 코드(ECC)의 4의 인터리브에 대하여, 우리는 인터리브당 LBA( 또는 PBA)의 한 바이트(m=1)를 전치 추가할 수 있다. 3의 인터리브의 경우, 인터리브당 한 바이트를 사용하면, 본 발명은 3개의 낮은 차수의 PBA(LBA)를 사용할 수 있다.
ECC 논리 회로는 사용자 데이터에 대하여 행하여진 것과 정확하게 동일한 방식으로 이러한 추가의 PBA 또는 LBA 바이트내의 에러를 계산한다. 이러한 추가의 PBA 또는 LBA 바이트는 실제적으로 디스크 또는 다른 저장 매체상에 기록되지 않지만 기입 동작중의 패리티 계산 동안에 ECC 엔코더에 의해 고려된다.
판독 동작 동안에, 이러한 PBA 또는 LBA 바이트의 추정된 값은 그들이 디스크로부터 독출된 것처럼 패리티/신드롬 생성 유니트(210)에서 신드롬 계산을 위하여 사용된다. 추정 또는 예측된 PBA(또는 LBA)(213)와 실제 PBA(또는 LBA)(217) 값 사이의 부정합은 에러 정정 유니트(220) 내의 ECC 논리 회로의 판독 동작 동안에 수신된 신드롬에 응하여 PBA 에러 플래그 및 PBA 에러 값을 생성함으로써 에러 정정 유니트(220)에 의해 검출된다. PBA(또는 LBA) 에러 조건 및 PBA( 또는 LBA) 에러 값은 실제 PBA(또는 LBA) 값을 재저장하기 위해 사용될 수 있다.
이어 PBA 또는 LBA 바이트가 패리티/신드롬 계산에 대한 기여도 계산이 수행되는 여러 방법을 설명하도록 한다. 소정 실시예에 있어서 예를 들어 4(m=4) 또는 3(m=3)인 ECC 인터리브 각각을 사용한 구현에 대하여 에러 검출 코드(EDC)는 단지 하나의 인터리브를 가지며 모든 전치 추가된 PBA 또는 LBA 바이트를 커버할 필요가 있다는 것을 주지하여야 한다. 이러한 예에 있어서, 이것은 PBA 또는 LBA 바이트가 패리티/신드롬 계산에 대한 기여도 계산을 ECC에 대한 기여도 계산과 비교하여 더 복잡하게 한다.
본 발명의 구조 및 방법의 일 실시예에 있어서, 동일한 구조가 기입 동작동안의 패리티 생성을 위해 그리고 판독 동작 동안의 신드롬 생성을 위해 사용되며; 이에 따라 이러한 설명은 종종 공통 패리티/신드롬 생성기로 언급된다. 그러나, 본 발명의 구조 및 방법은 패리티 생성기 및 신드롬 생성기가 동일한 설계를 가지는 동일한 물리적 구조를 가지는 구현에 한정되는 것이 아니다. 이에 따라, 본 설명에서 사용된 패리티/신드롬 생성기(210)는 공유된 패리티/신드롬 생성기 유니트로서 설명될 수 있다. 패리티/신드롬 생성기는 본 명세서에서 전개된 본 발명의 요구에 병합하는 임의의 일반적인 형태일 수 있으며, 이러한 많은 구조물이 공지되어 있고 본 명세서에서는 더 이상 설명하지 않았다.
PBA 또는 LBA 정보를 구체화하는 패리티/신드롬 계산을 수행하기 위한 한 방법은 PBA 또는 LBA 바이트를 표현하는 시퀀스 L(x)를 사용자 데이터 D(x)에 전치 추가하는 것이며, 패리티Q(x)를 생성하기 위하여 m+k개의 사용자 데이터 바이트가 존재하는 것처럼, m+k+r개의 클록 사이클 동안 패리티/신드롬 생성기(210)를 구동시킨다. 이러한 방법은 유용하고, 요구된 하드웨어의 면에서 가장 작고 경제적인 방법을 제공하지만, 인터리브당 m개의 추가의 바이트를 위한 처리 시간에 대한 m개의 추가의 클록 사이클을 바람직하지 않게 요구한다. 예를 들어 고성능 디스크 드라이브 시스템과 같은 소정의 저장 장치 구현에 있어서, 이러한 추가의 클록 사이클은 사용가능하지 않을 수 있다. 이러한 방법은 "순차적 전치 추가(sequential prepending)"으로 언급될 수 있다. 순차적 전치 추가 방법은 아래에서 설명된 다른 여러 방법과 함께 도 5에서 개략적으로 도시되었다.
패리티/신드롬 계산을 수행하기 위한 제 2 방법은 패리티/신드롬에 대한 추가의 PBA/LBA 바이트의 기여도를 미리 계산하고 제 1 사용자 데이터 바이트를 처리하기 이전에 이러한 값을 사용하여 패리티/신드롬 생성기를 미리로드하는 것이다. 이러한 방법의 한가지 가능성 있는 단점은 패리티 생성기 구조, 신드롬 생성기 구조 및 m의 값에 의존하여 패리티와 신드롬을 위한 두 개의 상이한 선행-계산 회로에 대한 요구가 있다는 것이다. 그러나, 이러한 잠제적인 단점은 m=1인 경우, 즉 인터리브당 단지 하나의 전치 추가 바이트가 존재할 때에는 발생하지 않는다. 이러한 경우, 조합된 패리티/신드롬 생성기가 사용된다면, 선행 계산 회로는 간단하게 와이어 또는 간단한 커플링이나 접속부가 된다. 본 발명의 일 실시예에 있어서, 이러한 예외는 ECC 패리티/신드롬 계산을 위해 바람직하게 사용된다.
이제, 우리는 패리티 및 신드롬 두 개를 생성하기 위해 동일한 선행 계산 회로를 사용하여 k+r개의 클록 사이클 동안 패리티/신드롬을 생성하기 위한 본 발명의 방법에 대한 실시예를 설명하도록 한다. 각각의 선행 계산의 결과는 n=k+r의 총 길이의 바이트의 "등가의" 시퀀스가 되며, 사용자 데이터에만 기초한 코드워드의 종래의 길이와 동일하다. 이러한 시퀀스는 패리티 및 신드롬 계산에 있어서 전치 추가된 시퀀스 L(x)와 등가이다.
먼저 m+r-1 바이트의 등가 시퀀스만이 넌제로 값을 가질 수 있으며, 다른 나머지 바이트는 제로가 된다. 우리는 시퀀스가 공지된 차수의 두 다항식의 곱이 되기 때문에 이것을 알 수 있다. 본 발명의 적어도 일 실시예에 있어서, 전치 추가된 시퀀스 L(x)는 사용자 데이터 D(x)의 도달과 동시에 병렬로 제공되며, 승산 회로(216)에 의해 다항식 M(x)=[xk+r-mmod g(x)]와 승산되어 등가의 시퀀스 S(x)=L(x)xk+i-mmod g(x)×xk-m+1를 생성한다. 요구된 다항식 승산을 수행할 수 있는 일례의 승산기(216) 구조가 아래에서 설명된다. 보다 일반적으로 승수 다항식은 M(x)=[xk+r-m+umod g(x)]의 형태일 수 있으며, 여기에서 u는 사용자 데이터의 개시부분으로부터의 지연을 나타내며, 명목상으로 0 ≤u ≤(k-m+1)의 범위에 존재한다. M(x)의 이러한 형태는 사용자 데이터 D(x)에 기초한 계산의 개시와 관련된 패리티에 대한 PBA/LBA 기여의 개시부분을 지연시키는 것을 허용하는데, 예를 들어 PBA/LBA 기여는 범위 0 ≤u ≤(k-m+1) 바이트에 속하는 임의적인 양으로 지연될 수 있으며, 여기에서 u=0은 지연이 없다는 것을 나타내며 u=(k-m+1)은 PBA/LBA 및 D(x)의 패리티에 대한 기여가 동일한 시간에 완료되는 지연을 나타낸다.
m+r-1 > k > m-2인 경우, 등가의 시퀀스중 마지막 (m+r-1)-k개의 바이트는 패리티/신드롬 생성기(210)의 출력과 바로 XOR 처리되어 멀티플렉서(208)의 출력에 인가되는 패리티 바이트를 얻는다. 이러한 범위 밖에 속하는 k에 대하여, S(x)는 배타적 오어 회로(212)에 의해 제 1 데이터 바이트로 시작하는 데이터 D(x)와 XOR 처리되고 이어, 결과는 패리티/신드롬 생성기(210)로 인가된다.
이러한 특정한 본 발명에 따른 구조 및 방법은 코드워드의 길이가 등가의 시퀀스내의 넌제로의 바이트 수보다 일반적으로 적을 수 있기 때문에, 일반적으로 k<m-1일 때 동작하지 않으나; 이러한 제한은 EDC 구현에 적용되지 않으며 여기에서 사용자 데이터 바이트의 수 k가 5 미만이 아니라고 보장된다면 EDC는 m=4을 가진다. 아래에서 설명된 일실시예에 있어서 본 발명에 따른 구조 또는 방법을 제한하지 않더라도, k≥m+r-1이고 그외의 경우는 규정되는 것이 가정된다.
이제, 승산이 수행되는 방법 및 일례의 구조를 설명하기 위한 도 6을 참조하여 ECC 엔코더/디코더 유니트(206)내에서 사용을 위한 승산기(216)의 일례를 설명하도록 한다. 일례의 승산 회로는 r=4인 경우이지만, 이러한 실례의 회로가 크거나 작은 값의 r을 수용하도록 용이하게 확장 또는 관계될 수 있으며 대안적인 회로가 본 발명의 방법에 대한 특징을 수행하도록 구현될 수 있다는 것을 기술 분야의 통상적인 기술을 가진 당업자가 인지할 수 있다는 것이 명백하여 질 것이다. 승산 회로(216)는 3개의 레지스터 엘리먼트(251, 252, 253), 3개의 XOR 엘리먼트(261, 262, 263) 및 4개의 상수 승산기(271, 272, 273, 274)를 가지는 시프트 레지스터(r2, r1,r0)를 포함하며, 상기 상수 승산기는 표현: xm+4-1mod g(x) =xm+3mod g(x) = p3x3+ p2x2+p1x +p0의 계수 p3,p2,p1및 p0와 지연된 상태의 시퀀스 L(x)xk+r-m을 곱하기 위한 것이다.
입력 시퀀스의 첫 번째 바이트가 입력되기 전에, 레지스터(250)는 0으로 설정되어, 즉 각각의 스테이지 r2, r1, r0는 0으로 설정된다. 동작 동안에, 입력 시퀀스의 바이트는 레지스터(250)로 한번에 하나씩 시프트되어, 상술한 표현에 따라 XOR 게이트(263)의 출력에서 S(x)(280)의 해당 엘리먼트를 생성한다. S(x)는 상술한 방식의 S1(x)(281)과 S2(x)(282)의 합이다. S(x)의 마지막 r개의 심볼은 S2(x)(282)로 언급되며, S(x)의 나머지들은 S1(x)×x-r을 나타낸다.
이어, 례적인 발명에 관련된 코드워드의 다항식 표현과 관련한 소정의 이론적 및 수학적 고려를 설명하도록 한다. 다음의 설명에 있어서, 다항식을 {표시법 GF(256)으로 표시된} 일례적인 256 차의 갈로이스 필드상의 계수를 가지는 대응하는 다항식을 사용하여 바이트의 시퀀스를 표현한다. 시퀀스의 값 dk-1, dk-2,..., d1, d0에 해당하는 다항식은 dk-1xk-1+ dk-2xk-2+ .... +d1xk+d0이다. 원래 n=k+r 바이트의 코드워드 C(x)=D(x)xr+P(x) 및 그의 구성요소(k 바이트의 데이터D(x) 및 r 바이트의 패리티 P(x))는 다음의 식 및 표 I 내지 표 IV에 도시된 구조 및 다항식을 가지며, 여기에서 k바이트는 사용자 데이터 및 D(x)=k-1의 차수를 나타내는 데에 사용된다.
표 I. 사용자 데이터
(1)
표 II. 패리티
(2)
표 III. 코드워드 C
m바이트의 전치 추가된 시퀀스 lm-1, lm-2, ... , l1, l0는 다음;
과 같은 다항식 L(x)로 표현된다.
코드워드 B는 다음의 식 및 표 IV에 도시된 전치 추가된 시퀀스, 사용자 데이터 및 해당 패리티 바이트로 이루어진다.
표 IV. 코드워드 B
전치추가된 시퀀스 L(x)를 포함하는 코드워드 B(x)를 디스크에 기입하지 않으며, 실제적으로 디스크에 기입된 시퀀스 A(x)는 코드워드가 아니고 전치 추가된 바이트 L(x)를 실질적으로 포함하지 않고 차라리 바이트의 시퀀스 A(x)는 다음;
과 같이 기입된다.
소정의 예에서 에러에 의해 손상될 수 있는 시퀀스 A(x)를 판독하는 동안에, 코드워드B(x)의 재저장은 추정 또는 예측된 전치 추가 시퀀스 L(x)를 A(x)에 전치 추가하고 종래의 에러 정정을 적용함으로써 시도된다.
기입 동작(엔코딩) 동안의 패리티 생성의 의도를 설명하도록 하고, 이어서 패리티 생성 설명은 신드롬 생성에도 직접적으로 적용될 수 있다는 것을 알 수 있을 것이다.
리드-솔로몬(RS) 코드는 순환 코드이기 때문에, 코드워드는 조건 C(x) mod g(x)=0을 만족시키며, 여기에서 C(x)는 코드워드이고 g(x)는 생성 다항식이고 g(x)의 차수는 r-1(deg g(x)=r-1)이다. 이에 따라 코드가 대칭적인 것이 요구된 경우, 즉,
이면, 다음;
은 참이 될 것이며, 즉 패리티 바이트의 시퀀스 P(x)는 D(x)xr을 생성 다항식 g(x)로 나눈 이후의 나머지와 같은 다항식으로 표현된다.
유사한 방식으로, 전치 추가된 시퀀스 L(x)를 사용하여 코드워드B(x)에 대한 순차적인 전치 추가와 관련하여, 관계식;
또는
을 가지게 된다.
일반적으로, 순차적인 전치 추가에 대하여, 패리티/신드롬 생성기는 입력 시퀀스 B(x)를 한번에 1 바이트씩 처리하기 때문에, Q(x)를 생성하는 데에 (m+r+k) 번의 클록 사이클을 소모하며, 즉 P(x)를 생성하는 데에 k+r 사이클이 소모하지만 [L(x)xk+r]mod g(x)를 생성하는 데에 m+k+r번의 사이클을 소모한다.
두 개의 조건은 등가의 시퀀스 S(x) 및 D(x)와 관련하여 만족되어야 하고 이에 따라 패리티/신드롬 생성기(10)는 두 개의 입력 시퀀스를 수신하여 한 쌍의 방식으로 그들을 처리한다. 다음의 조건;
을 만족시키는 다항식 S(x)는, 요구된 특성을 가지는 S(x)를 D(x)xr에 간단하게 가산하여 결과적 합 시퀀스를 정규 사용자 데이터로 처리함으로써, 요구된 k+r번의 사이클 내에 패리티Q(x)의 생성을 가능케 한다. 단지 L(x)xk+r-m이 k+r-m개의 제로를 L(x)에 첨가하는 것에 해당하는 것처럼, D(x)xr이 r개의 제로를 D(x)에 첨가하는 것에 해당한다는 점을 고찰한다. 본 발명에 따른 구조 및 절차에 있어서, 이러한 결과적 합 시퀀스는 배타적 오어(XOR) 회로를 사용하여 생성된다.
많은 주의를 벗어나 설명을 종료하기 위하여, 이어 소정의 일반화된 함수 M(x) 및 N(x)에 대하여 모듈로 산술의 수학적 특성을 사용하는 일례의 함수 S(x) 및 R(x)에 대한 유도를 제공하도록 한다. 그러나, 본 발명의 구조 및 방법이 이러한 유도에 한정되는 것이 아니며 다른 형태의 S(x) 및 R(x)가 본 발명의 사상 및 범주에 속한다는 것을 이해할 수 있을 것이다. 보다 구체적으로, L(x)R(x)의 곱의 함수로서 S(x)에 대한 관계식을 유도한다. 우선 산술적 모듈로 g(x)의 특성하에서 고찰하도록 한다.
이어 S(x) mod g(x) = [L(x)kk+r]mod g(x)를 요구하는 식(13)의 조건(2)을 적용하여, 다음;
과 같은 관계식을 얻는다.
이어, "deg S(x) = deg D(x)xr=r+k-1"을 요구하는 조건(1)을 적용함으로써, 적절한 값의 "s"를 식별하여, 다음;
과 같은 결과에 도달한다.
이어 S에 대한 이러한 값으로 표현식 내의 상술한 R(x)대신에 치환하고 S(x)가 L(x)R(x)의 형태로 가정한 것을 상기함으로써, 다음;
과 같은 R(x) 및 S(x)에 대한 유용한 정의에 도달한다.
종래의 패리티/신드롬 생성기는 단지 사용자 데이터 시퀀스만을 처리하도록 설계되며, 입력 시퀀스 D(x)×xr중 마지막 "r" 바이트가 제로라고 가정하고 단지 처음 D(x)만을 입력 시퀀스로 고려하여, 소정의 나머지 값을 무시하게 된다. 본 발명의 구조 및 방법에 있어서, 단지 마지막 k-m+1 바이트의 S(x)가 제로라고 보장되고 r>k-m+1일 때의 경우 S(x)내의 일부의 넌제로 바이트는 종래의 패리티/신드롬 생성기로 입력된다. 패리티/신드롬 생성기(210)가 종래의 패리티/신드롬 생성기이고 또한 적어도 본 발명의 일례적인 구조 및 방법이 이같은 종래의 패리티/신드롬 생성기와 양립할 수 있는 것이 바람직하기 때문에, 본 발명에 따른 실시예는 두 개의 다항식의 합으로서 다항식 S(x)를 다루고 추가의 값을 처리하기 위한 추가의 구조 및 절차를 제공한다.
이러한 방법을 사용하여, 다음;
과 같이 S(x)를 두 개의 다항식 S1(x)와 S2(x)의 합으로 기입하며, 여기에서 deg S2(x)=r-1 이고 S1(x)의 마지막 r개의 계수는 제로이며;
이다.
S1(x)은 패리티 생성기(210), 심지어 단지 사용자 데이터용으로 설계된 패리티 생성기에 인가되어, 생성기의 출력에서 결과 [S1(x) mod g(x)]가 출력된다. 다항식 S2(x)의 차수는 자신의 차수가 r인 생성 다항식 g(x)의 차수(r)보다 작기(deg S2(x) < deg g(x)=r) 때문에, S2(x) mod g(x) =S2(x)이고 적절한 시간에 패리터 생성기의 출력에 S2(x)를 가산하여 적절한 시간 순으로 S(x)=S1(x) + S2(x)를 형성한다.
K<m-1일 때 다음의 조건;
하에서, 이러한 절차는 일반적으로 수정 없이 사용되어, 필수 S(x)의 넌제로인 부분의 길이는 디스크에 기입될 전체 시퀀스의 길이를 능가한다는 것이 이해될 것이다.
신드롬 생성은 저장 장치에서 이전에 저장된 정보의 판독 또는 검색 동안에 발생하는 패리티 생성과 유사한 과정을 가진다. C(x)가 디스크 또는 다른 저장 매체로부터 독출된 바이트의 시퀀스에 해당하는 코드워드 다항식이라고 하고,
가 코드의 생성 다항식이라고 하자. 신드롬 성분 Sr-1, ..., S0는 x=ar-1, ..., a0에서의 C(x)의 값: Sr-1=C(ar-1),..., S0=C(a0)로서 정의된다. "a"가 생성 다항식 g(x)의 제곱근이라면,
임을 알 수 있으며, 여기에서 표현식 [C(x) mod g(x)]는 생서 다항식 g(x)로 나눈 이후의 나머지이고 표현 "|x=a"은 다항식이 특정 값 x=a에서 계산된다는 것을 의미한다.
S(x)를 데이터 다항식 D(x)xr에 가산하는 것은 생성된 패리티 바이트의 항에 L(x)를 전치 추가하는 것과 등가이라는 앞서 제공된 설명을 사용하도록 하고, 여기에서 생성된 패리티 바이트는 생성 다항식 g(x)에 의해 나뉘어진 이후의 나머지이다. 따라서, 기입동작 동안에는 데이터가 호스트로부터 유입하고 판독 동작 동안에는 데이터는 저장 장치로부터 유입한다는 점을 제외하고는, 기입 동작 동안에 패리티 바이트를 생성하기 위한 절차와 정확하게 동일한 절차를 판독 동작 동안에 신드롬을 생성하기 위하여 사용할 수 있다.
최종적으로, 본 발명에 따른 구조 및 방법에 대한 상술한 실시예를 사용하여, 도 7의 흐름도와 관련하여 본 발명에 따른 절차(300)를 설명하도록 한다. 먼저, (단계 301) m 개의 심볼을 가지는 블록 어드레스 L(x)의 다항식 표현의 계수로서 시퀀스와, k개의 심볼을 가지는 데이터 D(x)의 다항식 표현의 계수로서 시퀀스를 수신한다. 이어 (단계 302) L(x)의 계수를 R(x)의 계수와 곱하여 S1(x)의 마지막 r개의 계수가 제로가 되고 deg S2(x)=r-1이 되도록 S(x)=S1(x)+S2(x) 형태의 다항식 곱의 계수를 생성하며, 여기에서 x는 다항식의 변수이고 k는 데이터 심볼의 개수이고 r은 패리티 심볼의 개수이고 u는 지연이며, m은 L(x)내의 심볼의 개수이고 g(x)는 코드의 생성 다항식이다. 이어, (단계 303) 코드워드의 처음 k개의 심볼에 대한 데이터 전송 시기 동안 합 D(x)+S1(x)×x-r에 대한 제 1 패리티 시퀀스를 생성하기에 앞서 ,제 1 다항식 곱 성분 S1(x)×x-r을 데이터 다항식 D(x)에 가산한다. 최종적으로, (단계 304) 코드워드의 마지막 r개의 심볼에 대한 패리티 전송 시기 동안에 제 2 다항식 곱 S2(x)를 제 1 패리티 시퀀스에 직접 가산하여 최종 패리티 시퀀스 Q(x)를 생성한다.
이어, 본 발명의 일실시예에 대한 다양한 특성을 요약하도록 한다. 본 발명의 일 특성은 코드의 패리티 심볼 시퀀스를 생성하기 위한 방법을 제공한다 상기 방법은; m-심볼 어드레스를 나타내는 시퀀스 및 k 데이터 심볼의 시퀀스를 수신하는 단계; 제 1 시퀀스와 제 2 시퀀스의 합과 동일한 곱 심볼의 제 1 시퀀스를 생성하기 위하여 m-심볼 어드레스를 나타내는 시퀀스를 승산 심볼 세트로 승산하는 단계를 포함하는데, 제 1 시퀀스의 마지막 r개의 계수는 제로이고 제 2 시퀀스의 차수는 패리티 심볼의 개수보다 하나 작으며; 코드워드 중 처음 k개의 심볼에 대한 데이터 전송 시기 동안 데이터 시퀀스에 제 1 시퀀스를 더한 합에 대하여 제 1 패리티 시퀀스를 생성하기에 앞서, 곱 심볼의 제 1 시퀀스를 데이터 시퀀스에 가산하는 단계; 및 최종 패리티 시퀀스를 생성하기 위하여 코드워드의 종단부의 다수의 심볼에 대한 패리티 전송 시기 동안 제 1 패리티 시퀀스에 제 2 패리티 시퀀스를 직접 가산하는 단계를 포함한다.
상기 방법은 또한 m-심볼 어드레스를 나타내는 시퀀스가 m 심볼 블록 어드레스 L(x)의 다항식 표현의 계수로서 값의 시퀀스를 포함할 때 순환 코드의 패리티 심볼 시퀀스 Q(x)를 생성하는 단계를 추가적으로 제공하며; k 데이터 심볼의 시퀀스는 k개 심볼을 가지는 데이터D(x)의 다항식 표현의 계수로서 값의 시퀀스를 포함하며; 승산 심볼의 시퀀는 R(x)=xm+r-1+umod g(x) 형태의 다항식의 계수를 포함하고 여기에서 x는 다항식의 변수이고 k는 데이터 심볼의 개수이고 r은 패리티 심볼의 개수이고 u는 지연이고 m 은 L(x)내의 심볼의 개수이고 g(x)는 코드의 생성 다항식이며; 곱 심볼의 제 1 시퀀스는 S1(x)의 마지막 r개의 계수는 제로이고 deg S2(x)=r-1이 되도록 한 S(x)=L(x)×R(x)×xk-m-u+1= L(x)×xm+r-1+umod g(x)×xk-m-u+1= S1(x) + S2(x) 형태의 다항식 곱의 계수를 포함하며; 마지막 제로 심볼을 가지지 않은 제 1 시퀀스를 데이터 시퀀스에 가산하는 단계를 더 포함하며, 상기 가산하는 단계는 코드워드의 처음 k개 심볼에 대한 데이터 전송 시기 동안에 합 D(x)+S1(x)×x-r에 대한 제 1 패리티 시퀀스를 생성하기 이전에 제 1 다항식 곱 성분S1(x) ×x-r을 데이터 다항식 D(x)에 가산하는 단계를 포함하고, 제 1 패리티 시퀀스에 직접 제 2 시퀀스를 가산하는 단계를 포함하며, 본 가산 단계는 코드워드의 마지막 r개의 심볼에 대한 패리티 전송 시기 동안에 최종 패리티 시퀀스 Q(x)를 생성하기 위하여 제 1 패리티 시퀀스에 제 2 다항식 곱 S2(x)를 직접 가산하는 단계를 포함한다.
코드의 패리티 심볼 시퀀스를 생성하기 위한 다른 특징의 방법에 있어서, 최종 패리티 시퀀스를 포함하는 판독 시퀀스로부터 신드롬 심볼 시퀀스를 생성하는 단계를 더 포함한다.
코드의 패리티 심볼 시퀀스를 생성하기 위한 다른 특징의 방법은 신드롬 심볼 시퀀스를 생성하기 위한 단계를 포함하고, 상기 생성 단계는 다음의 단계들; m-심볼 어드레스 추정을 나타내는 시퀀스 및 일부가 에러에 속할 수 있는 k+r 개의 데이터 및 패리티 심볼의 판독 시퀀스를 수신하는 단계; m-심볼 어드레스 추정 시퀀스가 m-심볼 어드레스 시퀀스와 동일한 경우에 곱 심볼의 제 1 시퀀스로 식별 가능한 곱 심볼의 제 2 시퀀스를 생성하기 위하여 m-심볼 어드레스 추정을 나타내는 시퀀스를 승산 심볼 세트로 승산하는 단계; 합 시퀀스를 생성하기 위하여 곱 심볼의 제 2 시퀀스를 판독 시퀀스에 가산하는 단계; 및 합 시퀀스에 대한 신드롬을 생성하는 단계를 포함한다.
신드롬 심볼 시퀀스를 생성하기 위한 다른 특징의 방법은 다음의 경우; m-심볼 어드레스 추정을 나타내는 시퀀스가 m-심볼 블록 어드레스 L'(x)의 다항식 표현의 계수로서 값의 시퀀스를 포함할 때; k+r개의 데이터 및 패리티 심볼의 판독 시퀀스가 k개의 심볼을 가지는 데이터D(x)의 데이터 추정D'(x) 및 r개의 심볼을 가지는 패리티 Q(x)의 패리티 추정 Q'(x)의 다항식 표현의 계수로서 값의 시퀀스를 포함할 때로서, 여기에서 D'(x)는 D(x)와 상이할 수 있고 Q'(x)는 Q(x)와 상이할 수 있으며; 승산 심볼의 시퀀스가 R(x) =xm+r-1+umod g(x) 형태의 다항식의 계수를 포함할 때로서, x는 다항식의 변수이고 k는 데이터 심볼의 개수이고 r 은 패리티 심볼의 개수이고 u는 지연이고 m은 L'(x)내의 심볼의 수이고 g(x)는 코드의 생성 다항식이며; 곱 심볼의 제 2 시퀀스가, S'1(x)의 마지막 r개의 계수가 제로이고 deg S'2(x)=r-1이 되도록 한 S'(x)=L'(x)×R(x)×xk-m-u+1=L'(x)×xm+r-1+umod g(x) ×xk-m-u+1= S'1(x)+S'2(x) 형태의 다항식 곱의 계수를 포함할 때; 및 판독 시퀀스에 곱 심볼의 제 2 시퀀스를 가산하는 단계가 다음의 단계(i) x-r이 승산된 곱 심볼의 제 2 시퀀스의 제 1 성분S'1(x)을 데이터 추정 D'(x)에 가산하는 단계 및 (ii) 곱 심볼의 제 2 시퀀스의 제 2 성분S'2(x)을 패리티 추정Q'(x)에 가산하는 단계를 포함할 때에 수행될 수 있다.
다른 특징에 있어서, 본 발명은 저장 장치로부터의 판독에 따라 블록 어드레스 에러가 정정할 수 없는 데이터 에러와 구별될 수 있고 블록 어드레스가 판독 데이터로부터 복구될 수 있도록, 저장 장치 블록 어드레스를 코드워드 내에 구현하기 위한 방법을 제공한다.
이러한 방법은 다음의 단계들; 순환 코드의 개시 부분의 자유로운 위치에 블록 어드레스 정보를 전치 추가하는 단계; 블록 어드레스 정보와 사용자 데이터에 기초하여 패리티를 계산하는 단계; 기입 동작 동안 사용자 데이터와 계산된 패리티를 저장 장치에 기입하는 단계로서 블록 어드레스를 저장 장치에 기입하지 않는 단계; 독출 동작 동안에 사용자 데이터 및 계산된 패리티를 저장 장치로부터 독출하여, 전치 추가된 추정 블록 어드레스 정보와 함께 사용자 데이터 및 계산된 패리티에 기초하여 또는 그들에 대한 신드롬을 계산하는 단계; 신드롬에 기초하여 에러 벡터를 계산하고, 전치 추가된 블록 어드레스에 해당하는 위치에 넌제로 성분이 존재하는 경우 블록 어드레스를 복구하기 위해 상기 블록 어드레스를 정확한 정정하는 단계로 이루어진 단계를 포함한다.
본 발명의 다른 특징은 에러 정정 코드 엔코더/디코더 장치를 제공하며, 상기 장치는; 엔코딩 동작 동안에 패리티를 생성하고 디코딩 동작 동안에 신드롬을 생성하기 위한 패리티/신드롬 생성기; 제 1 시퀀스와 제 2 시퀀스의 합과 동일한 곱 심볼의 시퀀스를 생성하기 위하여 m 어드레스 심볼을 승산 심볼 세트와 승산하기 위한 다항 승산기를 포함하는데, 여기에서 제 1 시퀀스의 마지막 r개의 계수는 제로이고 제 2 시퀀스의 차수는 패리티 심볼의 개수보다 1개 작으며; 코드워드의 처음 k개의 심볼에 대한 데이터 전송 시기 동안에 데이터 시퀀스에 제 1 시퀀스를 더한 합에 대한 제 1 패리티 시퀀스를 생성하기에 앞서, 데이터 시퀀스에 제 1 시퀀스를 가산하기 위한 제 1 가산기; 및 최종 패리티 시퀀스를 생성하기 위하여 코드워드 종단부의 다수의 심볼에 대한 패리티 전송 시기 동안에 제 1 패리티 시퀀스에 제 2 시퀀스를 직접 가산하는 제 2 가산기를 포함한다.
본 발명에 따른 방법은 순환 코드가 대칭 순환식 리드-솔로몬 코드일 경우에 수행될 수 있다.
다른 특징에 있어서, 본 발명은 코드의 패리티 심볼 시퀀스를 생성하기 위한 장치를 포함한다. 상기 장치는; 제 1 시퀀스와 제 2 시퀀스의 합과 동일한 곱 심볼 의 제 1 시퀀스를 형성하기 위하여 m-심볼 어드레스를 나타내는 시퀀스를 승산 심볼 세트와 승산하기 위한 승산 회로를 포함하는데 제 1 시퀀스의 마지막 r개의 계수는 제로이고 제 2 시퀀스의 차수는 패리티 심볼의 개수 보다 1 작으며; 코드워드의 처음 k개의 심볼에 대한 데이터 전송 시기 동안에 데이터 시퀀스에 제 1 시퀀스를 더한 합에 대한 제 1 패리티 시퀀스를 생성하기에 앞서, 상기 합 심볼의 제 1 시퀀스를 k개의 데이터 심볼을 가지는 데이터 시퀀스에 가산하기 위한 제 1 가산기; 및 최종 패리티 시퀀스를 생성하기 위하여 코드워드 종단부의 다수의 심볼에 대한 패리티 전송 시기 동안에 제 2 시퀀스를 제 1 패리티 시퀀스에 직접 가산하는 제 2 가산기를 포함한다.
다른 특징에 있어서, 추가로 코드의 패리티 심볼 시퀀스를 생성하기 위한 장치에 있어서; m-심볼 어드레스를 표현하는 시퀀스는 m-심볼 블록 어드레스L(x)의 다항식 표현의 계수로서 값의 시퀀스를 포함하며; k 데이터 심볼의 시퀀스는 k심볼을 가지는 데이터 D(x)의 다항식 표현의 계수로서 값의 시퀀스를 포함하며; 승산 심볼의 시퀀스는 R(x)=xm+r-1+umod g(x) 형태의 다항식의 계수를 포함하는데 x는 다항식의 변수이고 k는 데이터 심볼의 개수이고 r은 패리티 심볼의 개수이고 u는 지연이고 m 은 L(x)내의 심볼의 개수이고 g(x)는 코드의 생성 다항식이며; 곱 심볼의 제 1 시퀀스는 S1(x)의 마지막 r개의 계수는 제로이고 deg S2(x)=r-1이 되도록 한 S(x)=L(x)×R(x)×xk-m-u+1= L(x)×xm+r-1+umod g(x)×xk-m-u+1= S1(x) + S2(x) 형태의 다항식 곱의 계수를 포함하며; 제 1 가산기는 코드워드의 처음 k개의 심볼에 대한 데이터 전송 시기 동안에 합 D(x) +S1(x)×x-r에 대한 제 1 패리티 시퀀스를 생성하기에 앞서, 제 1 다항식의 곱 성분S1(x)×x-r을 데이터 다항식 D(x)에 가산하며; 그리고 제 2 가산기는 최종 패리티 시퀀스Q(x)를 생성하기 위하여 코드워드의 마지막 r개의 심볼에 대한 패리티 전송 시기 동안에 제 2 다항식 곱 S2(x)를 제 1 패리티 시퀀스에 직접 가산한다.
소정의 산술적 연산이 모듈로 1이지만 다른 산술적 연산이 일반적인 비-모듈로 연산일 수도 있다는 것이 본 명세서로부터 기술 분야의 당업자에게 명백하여 질 것이다.
본 발명의 다양한 실시예에 대한 상세한 구조 및 기능과 함께 본 발명에 대한 여러 특징 및 다양한 실시예의 장점이 앞서의 상세한 설명에서 개시되었을 지라고, 이러한 설명은 단지 예시적인 것이며, 세부 사항, 특히 청구항에서 청구된 일반적인 광범위의 의미에 의해 나타내어진 전체 범위까지의 본 발명이 원칙에 속하는 구조 및 부품의 배열에 있어서 변화가 가능하다는 것이 이해될 것이다. 예를 들어 본 발명의 사상 및 범주에서 벗어나지 않고 동일한 기능을 실질적으로 유지하면서, 특정 엘리먼트는 ECC 엔코더/디코더, 데이터 저장장치, 또는 컴퓨터의 특정 응용에 의존하여 변화될 수 있다. 게다가, 본 명세서에 개시된 바람직한 실시예가 ECC 엔코더/디코더 및 다항 승산기를 가지는 데이터 저장 시스템용 ECC 엔코더/디코더에 관련되었지만 본 발명의 가르침은 본 발명의 사상 및 범주를 벗어나지 않고 일반적인 데이터 저장 장치 및 시스템, 데이터 전송 장치 및 시스템 또는 통신 시스템과 같은 다른 시스템에도 적용될 수 있다는 것이 당업자에게 이해될 것이다.
본 명세서에서 언급한 모든 출판물, 특허 및 특허 명세서는 각각의 개별적인 출판물 또는 특허 명세서가 특별히 그리고 개별적으로 각각 본 명세서에 참조문으로 인용된 것과 동일한 범위까지 참조문으로 인용되었다.

Claims (10)

  1. 코드의 패리티 심볼 시퀀스를 생성하기 위한 방법에 있어서,
    (a) m-심볼 어드레스를 나타내는 시퀀스와 k 데이터 심볼의 어드레스를 수신하는 단계;
    (b) 제 1 시퀀스와 제 2 시퀀스의 합과 동일한 곱 심볼의 제 1 시퀀스를 생성하기 위하여 m-심볼 어드레스를 나타내는 시퀀스를 승산 심볼 세트로 승산하는 단계를 포함하는데, 여기에서 제 1 시퀀스의 마지막 r개의 계수는 제로이고 제 2 시퀀스의 차수는 패리티 심볼의 개수보다 하나 작으며;
    (c) 코드워드의 처음 k개의 심볼에 대한 데이터 전송 시기 동안 데이터 시퀀스에 제 1 시퀀스를 더한 합에 대한 제 1 패리티 시퀀스를 생성하기에 앞서 상기 곱 심볼의 제 1 시퀀스를 데이터 시퀀스에 가산하는 단계; 및
    (d) 최종 패리티 시퀀스를 생성하기 위하여 코드워드의 종단부의 다수의 심볼에 대한 패리티 전송 시기 동안 제 2 패리티 시퀀스를 제 1 패리티 시퀀스에 직접 가산하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서, 상기 방법은 순환 코드의 패리티 심볼 시퀀스 Q(x)를 생성하며,
    상기 m-심볼 어드레스를 나타내는 시퀀스는 m-심볼 블록 어드레스 L(x)의 다항식 표현의 계수로서 값의 시퀀스를 포함하며,
    상기 k 데이터 심볼의 시퀀스는 k 심볼을 가지는 데이터 D(x)의 다항식 표현의 계수로서 값의 시퀀스를 포함하며;
    상기 승산 심볼의 시퀀스는 R(x)=xm+r-1+umod g(x) 형태의 다항식의 계수를 포함하는데, x는 다항식의 변수이고 k는 데이터 심볼의 개수이고 r은 패리티 심볼의 개수이고 u는 지연이고 m 은 L(x)내의 심볼의 개수이고 g(x)는 상기 코드의 생성 다항식이며;
    상기 곱 심볼의 제 1 시퀀스는, S1(x)의 마지막 r개의 계수는 제로이고 deg S2(x)=r-1이 되도록 한 S(x)=L(x)×R(x)×xk-m-u+1= L(x)×xm+r-1+umod g(x)×xk-m-u+1= S1(x) + S2(x) 형태의 다항식 곱의 계수를 포함하며;
    마지막 제로 심볼을 제외한 상기 제 1 시퀀스를 상기 데이터 시퀀스에 가산하는 상기 단계(c)는, 상기 코드워드의 처음 k개 심볼에 대한 데이터 전송 시기 동안에 합 D(x) +S1(x)×x-r에 대한 제 1 패리티 시퀀스를 생성하기에 앞서 상기 제 1 다항식의 곱 성분S1(x)×x-r을 상기 데이터 다항식 D(x)에 가산하는 단계를 포함하며;
    상기 제 2 시퀀스를 상기 제 1 패리티 시퀀스에 직접 가산하는 단계(d)는, 최종 패리티 시퀀스Q(x)를 생성하기 위하여 상기 코드워드의 마지막 r개의 심볼에 대한 패리티 전송 시기 동안에 상기 제 2 다항식 곱 S2(x)을 상기 제 1 패리티 시퀀스에 직접 가산하는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 제 1 항에 있어서, 상기 최종 패리티 시퀀스에 포함된 판독 시퀀스로부터 신드롬 심볼 시퀀스를 생성하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  4. 제 1 항에 있어서, 신드롬 심볼 시퀀스를 생성하는 단계를 더 포함하며, 상기 생성 단계는,
    (e)상기 m-심볼 어드레스를 나타내는 시퀀스와 동일하지 않은 m-심볼 어드레스 추정을 나타내는 시퀀스 및 일부가 에러에 속할 수 있는 k+r개의 데이터 및 패리티 심볼의 판독 시퀀스를 수신하는 단계;
    (f) 상기 m-심볼 어드레스 추정 시퀀스가 m-심볼 어드레스 시퀀스와 동일한 경우에 곱 심볼의 제 1 시퀀스로 식별 가능한 곱 심볼의 제 2 시퀀스를 생성하기 위하여, 상기 m-심볼 어드레스 추정을 나타내는 시퀀스를 승산 심볼 세트로 승산하는 단계;
    (g) 합 시퀀스를 생성하기 위하여 상기 곱 심볼의 제 2 시퀀스를 상기 판독 시퀀스에 가산하는 단계; 및
    (h) 합 시퀀스에 대한 신드롬을 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 제 4 항에 있어서, 상기 m-심볼 어드레스 추정을 나타내는 시퀀스는 m-심볼 블록 어드레스 L'(x)의 다항식 표현의 계수로서 값의 시퀀스를 포함하며;
    k+r개의 데이터 및 패리티 심볼의 판독 시퀀스는 k개의 심볼을 가지는 데이터D(x)의 데이터 추정D'(x) 및 r개의 심볼을 가지는 패리티 Q(x)의 패리티 추정 Q'(x)의 다항식 표현의 계수로서 값의 시퀀스를 포함하며, 여기에서 D'(x)는 D(x)와 상이할 수 있고 Q'(x)는 Q(x)와 상이할 수 있으며;
    상기 승산 심볼의 시퀀스는 R(x) =xm+r-1+umod g(x) 형태의 다항식의 계수를 포함하며, x는 다항식의 변수이고 k는 데이터 심볼의 개수이고 r 은 패리티 심볼의 개수이고 u는 지연이고 m은 L'(x)내의 심볼의 개수이고 g(x)는 상기 코드의 생성 다항식이며;
    상기 곱 심볼의 제 2 시퀀스는 S'1(x)의 마지막 r개의 계수가 제로이고 deg S'2(x)=r-1이 되도록 한 S'(x)=L'(x)×R(x)×xk-m-u+1=L'(x)×xm+r-1+umod g(x) ×xk-m-u+1= S'1(x)+S'2(x) 형태의 다항식 곱의 계수를 포함하며;
    상기 곱 심볼의 제 2 시퀀스를 상기 판독 시퀀스에 가산하는 단계는,
    (i) x-r이 승산된 곱 심볼의 제 2 시퀀스의 제 1 성분 S'1(x)을 데이터 추정 D'(x)에 가산하는 단계 및
    (ii) 곱 심볼의 제 2 시퀀스의 제 2 성분S'2(x)을 패리티 추정Q'(x)에 가산하는 단계를 포함하는 것을 특징으로 하는 방법.
  6. 저장 장치로부터의 판독에 따라 블록 어드레스 에러가 정정할 수 없는 데이터 에러와 구별될 수 있고 블록 어드레스가 판독 데이터로부터 복구될 수 있도록, 저장 장치 블록 어드레스를 코드워드 내에 구현하기 위한 방법에 있어서,
    (a) 순환 코드 개시 부분의 자유로운 위치에 블록 어드레스 정보를 전치 추가하는 단계;
    (b) 블록 어드레스 정보와 사용자 데이터 모두에 기초하여 패리티를 계산하는 단계;
    (c) 기입 동작 동안 상기 사용자 데이터와 상기 계산된 패리티를 저장 장치에 기입하지만 상기 블록 어드레스를 저장 장치에 기입하지 않는 단계;
    (d) 독출 동작 동안에 상기 사용자 데이터 및 상기 계산된 패리티를 저장 장치로부터 독출하고, 전치 추가된 추정 블록 어드레스 정보와 함께 상기 사용자 데이터 및 상기 계산된 패리티에 기초하여 또는 그들에 대한 신드롬을 계산하는 단계; 및
    (e) 상기 신드롬에 기초하여 에러 벡터를 계산하고, 전치 추가된 블록 어드레스에 해당하는 위치에 넌제로 성분이 존재하는 경우 정확한 블록 어드레스를 복구하기 위하여 상기 블록 어드레스를 정정하는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 에러 정정 코드 엔코더/디코더에 있어서,
    엔코딩 동작 동안에 패리티를 생성하고 디코딩 동작 동안에 신드롬을 생성하기 위한 패리티/신드롬 생성기;
    제 1 시퀀스와 제 2 시퀀스의 합과 동일한 곱 심볼의 시퀀스를 생성하기 위하여 m 어드레스 심볼을 승산 심볼 세트와 승산하기 위한 다항 승산기를 포함하는데, 여기에서 제 1 시퀀스의 마지막 r개의 계수는 제로이고 제 2 시퀀스의 차수는 패리티 심볼의 개수보다 1개 작으며;
    코드워드의 처음 k개의 심볼에 대한 데이터 전송 시기 동안에 데이터 시퀀스에 제 1 시퀀스를 더한 합에 대한 제 1 패리티 시퀀스를 생성하기에 앞서, 상기 제 1 시퀀스를 데이터 시퀀스에 가산하기 위한 제 1 가산기; 및
    최종 패리티 시퀀스를 생성하기 위하여 상기 코드워드 종단부의 다수의 심볼에 대한 패리티 전송 시기 동안에 상기 제 2 시퀀스를 상기 제 1 패리티 시퀀스에 직접 가산하는 제 2 가산기를 포함하는 것을 특징으로 하는 에러 정정 코드 엔코더/디코더.
  8. 제 2 항에 있어서, 상기 순환 코드는 대칭 순환 리드-솔로몬 코드를 포함하는 것을 특징으로 하는 방법.
  9. 코드의 패리티 심볼을 생성하기 위한 장치에 있어서,
    제 1 시퀀스와 제 2 시퀀스의 합과 동일한 곱 심볼의 제 1 시퀀스를 형성하기 위하여, m-심볼 어드레스를 나타내는 시퀀스를 승산 심볼 세트와 승산하기 위한 승산 회로를 포함하는데, 상기 제 1 시퀀스의 마지막 r개의 계수는 제로이고 상기 제 2 시퀀스의 차수는 패리티 심볼의 개수 보다 1 작으며;
    상기 코드워드의 처음 k개의 심볼에 대한 데이터 전송 시기 동안에 데이터 시퀀스에 제 1 시퀀스를 더한 합에 대한 제 1 패리티 시퀀스를 생성하기에 앞서, 상기 합 심볼의 제 1 시퀀스를 k개의 데이터 심볼을 가지는 데이터 시퀀스에 가산하기 위한 제 1 가산기; 및
    최종 패리티 시퀀스를 생성하기 위하여 상기 코드워드 종단부의 다수의 심볼에 대한 패리티 전송 시기 동안에 상기 제 2 시퀀스를 상기 제 1 패리티 시퀀스에 직접 가산하는 제 2 가산기를 포함하는 것을 특징으로 하는 장치.
  10. 제 9 항에 있어서, 상기 m-심볼 어드레스를 표현하는 시퀀스는 m-심볼 블록 어드레스 L(x)의 다항식 표현의 계수로서 값의 시퀀스를 포함하며;
    상기 k개의 데이터 심볼의 시퀀스는 k개의 심볼을 가지는 데이터 D(x)의 다항식 표현의 계수로서 값의 시퀀스를 포함하며;
    상기 승산 심볼의 시퀀스는 R(x)=xm+r-1+umod g(x) 형태의 다항식의 계수를 포함하는데, x는 다항식의 변수이고 k는 데이터 심볼의 개수이고 r은 패리티 심볼의 개수이고 u는 지연이고 m 은 L(x)내의 심볼의 개수이고 g(x)는 코드의 생성 다항식이며;
    상기 곱 심볼의 제 1 시퀀스는, S1(x)의 마지막 r개의 계수는 제로이고 deg S2(x)=r-1이 되도록 한 S(x)=L(x)×R(x)×xk-m-u+1= L(x)×xm+r-1+umod g(x)×xk-m-u+1= S1(x) + S2(x) 형태의 다항식 곱의 계수를 포함하며;
    상기 제 1 가산기는 상기 코드워드의 처음 k개의 심볼에 대한 데이터 전송 시기 동안에 합 D(x) +S1(x)×x-r에 대한 제 1 패리티 시퀀스를 생성하기에 앞서, 제 1 다항식의 곱 성분S1(x)×x-r을 데이터 다항식 D(x)에 가산하며;
    상기 제 2 가산기는 최종 패리티 시퀀스Q(x)를 생성하기 위하여, 상기 코드워드의 마지막 r개의 심볼에 대한 패리티 전송 시기 동안에 제 2 다항식 곱 S2(x)를 상기 제 1 패리티 시퀀스에 직접 가산하는 것을 특징으로 하는 장치.
KR1020007007538A 1998-01-08 1999-01-08 순환 에러 정정 코드에 대한 물리적 블록 어드레스 복구장치, 시스템 및 방법 KR20010033954A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US7076298P 1998-01-08 1998-01-08
US60/070,762 1998-01-08
PCT/US1999/000531 WO1999035575A1 (en) 1998-01-08 1999-01-08 A physical block address recovery apparatus, system and method for cyclic error correction codes

Publications (1)

Publication Number Publication Date
KR20010033954A true KR20010033954A (ko) 2001-04-25

Family

ID=22097244

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007007538A KR20010033954A (ko) 1998-01-08 1999-01-08 순환 에러 정정 코드에 대한 물리적 블록 어드레스 복구장치, 시스템 및 방법

Country Status (7)

Country Link
US (1) US6574774B1 (ko)
JP (1) JP2002501310A (ko)
KR (1) KR20010033954A (ko)
CN (1) CN1288542A (ko)
DE (1) DE19982502T1 (ko)
GB (1) GB2346234B (ko)
WO (1) WO1999035575A1 (ko)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3450756B2 (ja) * 1999-09-08 2003-09-29 松下電器産業株式会社 誤り訂正方法および誤り訂正装置
US6973579B2 (en) 2002-05-07 2005-12-06 Interdigital Technology Corporation Generation of user equipment identification specific scrambling code for the high speed shared control channel
US7979712B2 (en) * 2002-07-01 2011-07-12 International Business Machines Corporation Network system, server and information terminal for list matching
US6891694B2 (en) * 2002-08-23 2005-05-10 Hitachi Global Storage Technologies Netherlands B.V. Method for writing streaming audiovisual data to a disk drive
US7398449B1 (en) * 2004-06-16 2008-07-08 Azul Systems, Inc. Encoding 64-bit data nibble error correct and cyclic-redundancy code (CRC) address error detect for use on a 76-bit memory module
US7203890B1 (en) 2004-06-16 2007-04-10 Azul Systems, Inc. Address error detection by merging a polynomial-based CRC code of address bits with two nibbles of data or data ECC bits
US7225381B1 (en) 2005-06-02 2007-05-29 Lehman Thomas F Error detection and correction method
US7539924B1 (en) 2005-11-15 2009-05-26 Western Digital Technologies, Inc. Disk drive implementing data path protection by encoding large host blocks into sub blocks
US7840878B1 (en) * 2006-04-11 2010-11-23 Marvell International Ltd. Systems and methods for data-path protection
US20080140740A1 (en) * 2006-12-08 2008-06-12 Agere Systems Inc. Systems and methods for processing data sets in parallel
US8370561B2 (en) * 2006-12-24 2013-02-05 Sandisk Il Ltd. Randomizing for suppressing errors in a flash memory
US8127200B2 (en) * 2006-12-24 2012-02-28 Sandisk Il Ltd. Flash memory device and system with randomizing for suppressing errors
US8291306B2 (en) * 2008-07-02 2012-10-16 Joseph Schweiray Lee Encoder of cyclic codes for partially written codewords in flash memory
JP5422974B2 (ja) * 2008-11-18 2014-02-19 富士通株式会社 誤り判定回路及び共有メモリシステム
US8397107B1 (en) * 2009-12-11 2013-03-12 Western Digital Technologies, Inc. Data storage device employing data path protection using both LBA and PBA
US8443167B1 (en) 2009-12-16 2013-05-14 Western Digital Technologies, Inc. Data storage device employing a run-length mapping table and a single address mapping table
US8194340B1 (en) 2010-03-18 2012-06-05 Western Digital Technologies, Inc. Disk drive framing write data with in-line mapping data during write operations
US8699185B1 (en) 2012-12-10 2014-04-15 Western Digital Technologies, Inc. Disk drive defining guard bands to support zone sequentiality when butterfly writing shingled data tracks
US8687306B1 (en) 2010-03-22 2014-04-01 Western Digital Technologies, Inc. Systems and methods for improving sequential data rate performance using sorted data zones
US9330715B1 (en) 2010-03-22 2016-05-03 Western Digital Technologies, Inc. Mapping of shingled magnetic recording media
US8693133B1 (en) 2010-03-22 2014-04-08 Western Digital Technologies, Inc. Systems and methods for improving sequential data rate performance using sorted data zones for butterfly format
US8856438B1 (en) 2011-12-09 2014-10-07 Western Digital Technologies, Inc. Disk drive with reduced-size translation table
US8756361B1 (en) 2010-10-01 2014-06-17 Western Digital Technologies, Inc. Disk drive modifying metadata cached in a circular buffer when a write operation is aborted
US8954664B1 (en) 2010-10-01 2015-02-10 Western Digital Technologies, Inc. Writing metadata files on a disk
US8793429B1 (en) 2011-06-03 2014-07-29 Western Digital Technologies, Inc. Solid-state drive with reduced power up time
US8756382B1 (en) 2011-06-30 2014-06-17 Western Digital Technologies, Inc. Method for file based shingled data storage utilizing multiple media types
US8924814B2 (en) 2012-08-28 2014-12-30 Seagate Technology Llc Write management using partial parity codes
US8677213B2 (en) * 2011-09-16 2014-03-18 Hitachi, Ltd. Electronic device comprising error correction coding device and electronic device comprising error correction decoding device
US8671250B2 (en) 2011-12-15 2014-03-11 Western Digital Technologies, Inc. Data storage device generating redundancy for data path protection of a parity sector
US9213493B1 (en) 2011-12-16 2015-12-15 Western Digital Technologies, Inc. Sorted serpentine mapping for storage drives
US8819367B1 (en) 2011-12-19 2014-08-26 Western Digital Technologies, Inc. Accelerated translation power recovery
US8612706B1 (en) 2011-12-21 2013-12-17 Western Digital Technologies, Inc. Metadata recovery in a disk drive
US8683296B2 (en) 2011-12-30 2014-03-25 Streamscale, Inc. Accelerated erasure coding system and method
US8914706B2 (en) 2011-12-30 2014-12-16 Streamscale, Inc. Using parity data for concurrent data authentication, correction, compression, and encryption
US8972824B1 (en) 2012-05-22 2015-03-03 Pmc-Sierra, Inc. Systems and methods for transparently varying error correction code strength in a flash drive
US8793556B1 (en) 2012-05-22 2014-07-29 Pmc-Sierra, Inc. Systems and methods for reclaiming flash blocks of a flash drive
US9021336B1 (en) * 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for redundantly storing error correction codes in a flash drive with secondary parity information spread out across each page of a group of pages
US9183085B1 (en) 2012-05-22 2015-11-10 Pmc-Sierra, Inc. Systems and methods for adaptively selecting from among a plurality of error correction coding schemes in a flash drive for robustness and low latency
US9021337B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for adaptively selecting among different error correction coding schemes in a flash drive
US9176812B1 (en) 2012-05-22 2015-11-03 Pmc-Sierra, Inc. Systems and methods for storing data in page stripes of a flash drive
US9021333B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for recovering data from failed portions of a flash drive
US8788910B1 (en) 2012-05-22 2014-07-22 Pmc-Sierra, Inc. Systems and methods for low latency, high reliability error correction in a flash drive
US9047214B1 (en) 2012-05-22 2015-06-02 Pmc-Sierra, Inc. System and method for tolerating a failed page in a flash device
US8996957B1 (en) 2012-05-22 2015-03-31 Pmc-Sierra, Inc. Systems and methods for initializing regions of a flash drive having diverse error correction coding (ECC) schemes
US9026867B1 (en) 2013-03-15 2015-05-05 Pmc-Sierra, Inc. Systems and methods for adapting to changing characteristics of multi-level cells in solid-state memory
US9053012B1 (en) 2013-03-15 2015-06-09 Pmc-Sierra, Inc. Systems and methods for storing data for solid-state memory
US9208018B1 (en) 2013-03-15 2015-12-08 Pmc-Sierra, Inc. Systems and methods for reclaiming memory for solid-state memory
US9081701B1 (en) 2013-03-15 2015-07-14 Pmc-Sierra, Inc. Systems and methods for decoding data for solid-state memory
US9009565B1 (en) 2013-03-15 2015-04-14 Pmc-Sierra, Inc. Systems and methods for mapping for solid-state memory
US8953269B1 (en) 2014-07-18 2015-02-10 Western Digital Technologies, Inc. Management of data objects in a data object zone
US9875055B1 (en) 2014-08-04 2018-01-23 Western Digital Technologies, Inc. Check-pointing of metadata
US9703989B1 (en) * 2014-12-23 2017-07-11 Altera Corporation Secure physically unclonable function (PUF) error correction
CN108665940B (zh) * 2018-05-14 2020-09-04 联芸科技(杭州)有限公司 Ecc编码电路、解码电路以及存储器控制器
CN110209524B (zh) * 2019-06-18 2022-12-06 哈尔滨工业大学 一种抗单粒子瞬态效应的ecc译码器加固方法
US11537466B2 (en) 2021-04-27 2022-12-27 Western Digital Technologies, Inc. Detection of data discrepancy after XOR recovery

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60183669A (ja) * 1984-03-02 1985-09-19 Nec Corp メモリ制御装置
US4608693A (en) * 1984-05-07 1986-08-26 At&T Bell Laboratories Fault detection arrangement for a digital conferencing system
US4675736A (en) * 1985-09-25 1987-06-23 Humphrey Instruments, Inc. Superimposed analog video image on plotted digital field tester display
KR950009386B1 (ko) 1993-04-21 1995-08-21 삼성전자주식회사 어드레스 생성회로
US5896406A (en) * 1997-03-31 1999-04-20 Adaptec, Inc. Shift register-based XOR accumulator engine for generating parity in a data processing system

Also Published As

Publication number Publication date
GB2346234A (en) 2000-08-02
DE19982502T1 (de) 2000-11-30
GB2346234B (en) 2002-12-18
GB0009926D0 (en) 2000-06-07
WO1999035575A1 (en) 1999-07-15
US6574774B1 (en) 2003-06-03
CN1288542A (zh) 2001-03-21
JP2002501310A (ja) 2002-01-15

Similar Documents

Publication Publication Date Title
KR20010033954A (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
US5602857A (en) Error correction method and apparatus
US6272659B1 (en) Error correction code processor employing adjustable correction power for miscorrection minimization
EP0998791B1 (en) Concurrent row/column syndrome generator for a product code
EP0729674B1 (en) Cyclical redundancy check method and apparatus
US7849388B2 (en) Signal decoding method and device, and signal storage system
US5629949A (en) Error correction verification method and apparatus using CRC check remainders
US6125469A (en) Error correction method and apparatus
US7409622B1 (en) System and method for reverse error correction coding
EP0364172A2 (en) Error detection and correction for a data storage system
JP2007087529A (ja) 信号復号装置、信号復号方法、および記憶システム
KR19990028535A (ko) 디스크 드라이브 버퍼 내의 데이터 보호 방법 및 장치
KR19990044903A (ko) 컴퓨터 저장 장치에서 랜덤화된 데이터에 대해crc 신드롬을 생성하기 위한 ecc 시스템
US20040194006A1 (en) Algebraic geometric code adapted to error bursts
JPH02189032A (ja) エラー訂正方法
JPH0936753A (ja) 記号長コードに従って冗長情報を発生するためにデータのブロックをエンコードする方法、一連のデータワードとしてエンコーダにより受取られるブロックフォーマット化されたデータを記号長リードソロモンコードに従ってエンコードする方法、およびワード形式エンコーダ
US5889792A (en) Method and apparatus for generating syndromes associated with a block of data that employs re-encoding the block of data
US6009550A (en) PBA recovery apparatus and method for interleaved reed-solomon codes
EP1102406A2 (en) Apparatus and method for decoding digital data
WO1998012819A1 (en) Improved multiple-burst-correction system
Tang et al. Coding for error control
US6651214B1 (en) Bi-directional decodable Reed-Solomon codes
US6405339B1 (en) Parallelized programmable encoder/syndrome generator
US6098192A (en) Cost reduced finite field processor for error correction in computer storage devices

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application