KR100613056B1 - 오정정 보호 방법, 저장 장치, 데이터 세트 보호 방법,데이터 저장 장치, 및 에러 정정 코드 - Google Patents

오정정 보호 방법, 저장 장치, 데이터 세트 보호 방법,데이터 저장 장치, 및 에러 정정 코드 Download PDF

Info

Publication number
KR100613056B1
KR100613056B1 KR1020030076685A KR20030076685A KR100613056B1 KR 100613056 B1 KR100613056 B1 KR 100613056B1 KR 1020030076685 A KR1020030076685 A KR 1020030076685A KR 20030076685 A KR20030076685 A KR 20030076685A KR 100613056 B1 KR100613056 B1 KR 100613056B1
Authority
KR
South Korea
Prior art keywords
crosscheck
byte
parity
bytes
cluster
Prior art date
Application number
KR1020030076685A
Other languages
English (en)
Other versions
KR20040044103A (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 KR20040044103A publication Critical patent/KR20040044103A/ko
Application granted granted Critical
Publication of KR100613056B1 publication Critical patent/KR100613056B1/ko

Links

Images

Classifications

    • 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
    • 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/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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
    • 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/47Error detection, forward error correction or error protection, not provided for in groups H03M13/01 - H03M13/37
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/104Metadata, i.e. metadata associated with RAID systems with parity

Landscapes

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

Abstract

본 발명에 따른 인코딩 시스템 및 관련 방법은, 예를 들어 온-드라이브 RAID 시스템에서 패리티 섹터 정정으로 인한 오정정에 대해 보호한다. 상기 시스템은 자체로서 완전한 패리티 클러스터 블록을 C3-보호형 클러스터에 추가한다. 클러스터 레벨을 갖게 되면, 즉, 높은 신뢰도 레벨을 갖는 C3 검사에 의해 검사되어 확인된, 패리티 섹터에 의해 C4 레벨 정정이 이루어지면, 그리고 클러스터 블록의 부합성을 검사할 수 있는 능력을 갖고 있으면, 심지어 "자미(jami)" 에러가 존재하는 경우에도, 이 가능성은 희박해진다. 스크러브 알고리즘은, 저장 장치가 유휴 상태로 될 때까지 C2 및 C3-검사의 완료를 연기함으로써 판독-수정-기록(read-modify-write) 동작을 회피한다.
패리티, 액세스 암, 저장 장치, 인터페이스

Description

오정정 보호 방법, 저장 장치, 데이터 세트 보호 방법, 데이터 저장 장치, 및 에러 정정 코드{ON-DRIVE INTEGRATED SECTOR FORMAT RAID ERROR CORRECTION CODE SYSTEM AND METHOD}
도 1은 본 발명에 따른, 온더플라이(on-the-fly) 계산과, 선형 에러 정정 코드(ECC; error correction code) 코드워드를 형성하여 기록하기 위한 검사 바이트 첨부와, 디스크의 트랙으로부터 판독한 선형 ECC 코드워드(codewords)의 검출 및 정정을 위한, 하드디스크 드라이브(HDD)의 기록 및 판독 경로에 대한 부분적인 데이터 흐름을 도시한 도면.
도 2 및 도 3은 본 발명의 일실시예에 따른, N=8 섹터이고, n=3 레벨인 특정 예에 대한 ML-ISF-ECC 인코딩 방법 및 장치를 도시한 도면.
도 4a는 본 발명의 바람직한 인코딩 방법에 따른, 오정정(miscorrection)에 대한 추가적인 보호를 제공하기 위해 부가적인 C4 레벨 패리티 클러스터를 갖는 복수의 섹터 클러스터를 포함하는 예시적인 클러스터 블록을 도시한 도면.
도 4b는 C3 검사 레벨에서 인코딩된 예시적인 가상 판독가능성 바이트를 나타내는 도면.
도 5는 도 4a의 C4 레벨 패리티 클러스터 보호를 생성하는 인코딩 방법을 도시한 프로세스 흐름도.
도 6은 본 발명의 바람직한 방법에 따른 스크러브 갱신(scrub update) 방법을 도시한 프로세스 흐름도.
도면의 주요 부분에 대한 부호의 설명
1 : 자기 디스크 3 : 전자기 변환기
5 : 액세스 암 7 : 인터페이스
9 : 신호 추출 유닛 11 : 포매팅(formatting) 유닛
13 : ECC 판독 프로세서 15 : 버퍼
17 : ECC 기록 프로세서
본 발명은, 2002년 1월 3일자로 출원되어 본 출원의 양수인에게 양도된 발명의 명칭이 "Multiple Level(ML), Integrated Sector Format(ISF), Error Correction Code(ECC) Encoding And Decoding Processes For Data Storage Or Communication Devices And Systems"인 계류중인 미국 특허출원 제 10/040,115 호와 관련이 있으며, 전체가 참조로서 본원 명세서에 포함된다.
본 발명은 일반적으로 데이터 저장 장치 또는 통신 장치 및 시스템에 관한 것으로서, 구체적으로는 데이터 저장 장치 또는 통신 장치 및 시스템을 위한 집적 된 섹터 포맷(ISF; integrated sector format), 에러 정정 코드(ECC) 인코딩 및 디코딩 프로세스에 관한 것이다. 보다 구체적으로는, 본 발명은 온-드라이브(on-drive) RAID 시스템에서 패리티 섹터 정정으로 인한 오정정(miscorrection)에 대한 보호 시스템 및 관련 방법에 관한 것이다.
예를 들어 하드디스크 드라이브(HDD)와 같은 데이터 저장 장치 및 시스템에서, 양호하지 못한 기록/판독 상태와 낮은 신호대 잡음비(SNR)의 데이터 검출이 조합되면 디스크 상에 저장된 데이터 섹터 내의 랜덤 에러 및 에러들의 긴 버스트들의 혼합형 에러 모드(mixed error mode)를 일으킬 수도 있다. 통상적으로, 저장된 섹터 데이터 바이트를 리던던트 검사 바이트에 의해 보호된 코드워드로 포맷하고 코드워드 내에 바이트 에러를 위치시키고 정정하는 데, 바이트 알파벳인 리드-솔로몬(RS) 코드가 사용된다.
리던던트 검사 바이트 오버헤드를 긴 데이터 블록에 걸쳐서 평균하면, 긴 코드워드가 에러들의 긴 버스트에 대한 데이터 보호에 보다 효과적이다. 그러나, 데이터 저장 장치에서, 현재의 논리 유닛 데이터 섹터가 512 바이트이고, 현재의 컴퓨터 호스트 운영 시스템이 512 바이트 섹터 논리 유닛을 소비하기 때문에, RMW(read-modify-write) 프로세스가 사용되지 않으면, 긴 코드워드는 사용될 수 없다.
각각의 RMW 프로세스는 데이터 저장 매체의 회전(revolution) 손실을 일으킨다. 데이터 저장 매체의 회전 손실은 입력/출력(I/O) 커맨드 처리량을 떨어뜨린다. 따라서, RMW 프로세스의 빈번한 사용은 I/O 커맨드 처리량을 떨어뜨리기 때문 에, 이는 금지된다.
낮은 SNR 검출 및 양호하지 못한 기록/판독 상태가 조합되면 랜덤 에러 및 바이트 에러들의 긴 버스트("혼합형 에러 모드")를 낳을 수도 있는 데, 이는 HDD 산업에서의 현 동향인 높은 면밀도 및 낮은 부상 높이(flying height)에서 가능성이 더욱 높게 된다. 랜덤 에러 및 버스트 에러의 이러한 혼합형 에러 모드 조합이 발생하면, 512 바이트 섹터 인터리브된 OTF ECC가 실패할 수 있으며 결국 재판독, 헤드의 이동 등을 포함하는 DRP(data recovery procedure)를 보다 빈번하게 사용하게 된다.
이들 DRP 동작은 디스크의 회전 손실을 일으켜, 입력/출력(I/O) 처리량을 보다 낮게 한다. 이 성능 손실은, 예를 들면, 비디오 데이터 스트림의 빈번한 중단을 허용하지 않는 AV(audio-visual) 데이터 전송과 같은 많은 애플리케이션에서 허용될 수 없다. 한편, 512 바이트의 논리 유닛 섹터 포맷에서, 랜덤 에러 및 버스트 에러 모두에 대한 모든 단일 섹터의 균일한 보호는, 과도하며 허용될 수 없는 검사 바이트 오버헤드를 유발할 것이다. 그러한 검사 바이트 오버헤드는 또한 데이터의 선형 밀도(linear density)의 증가로 인한 소프트 에러율을 증가시킨다.
8 개의 섹터를 포함하는 4 Kbyte의 물리적 블록과 같은 긴 블록의 데이터 ECC는, 예를 들면, 일부 애플리케이션에 대한 해결책은 될 수 있지만, 단일의 512 바이트 섹터를 기록할 때 RMW(read-modify-write)가 허용되지 않으면, 운영 시스템 표준의 변경을 요구할 것이다. 현재의 운영 시스템은 모두 512 바이트의 긴 섹터 논리 유닛에 기초하고 있다. RMW는 긴 물리적 블록 검사 바이트를 갱신하는데 요 구된다. 따라서, 단일의 512 바이트 섹터가 기록될 때, 긴 블록 내의 다른 섹터들이 판독될 필요가 있으며, 긴 블록 검사 바이트들이 재계산될 필요가 있고, 따라서 전체의 긴 블록이 재기록된다. 따라서, RMW는 통상적인 HDD 동작 동안 일반적으로 허용될 수 없는 I/O 처리량 성능 손실을 일으킨다.
따라서, 랜덤 에러 및 버스트 에러의 혼합형 에러 모드에 대해 낮은 섹터 결함율(low sector failure rate)을 가지며, 빈번한 DRP 또는 RMW를 회피하고, 또한 허용될 수 있는 검사 바이트 오버헤드를 갖는, 데이터 저장 장치를 위한 ECC 포맷을 갖는 것이 바람직하다. 따라서, 데이터 저장 장치 및 시스템 또는 통신 장치 및 시스템을 위한 복수의 레벨(ML; multiple level), 집적된 섹터 포맷(ISF; integrated sector format), 에러 정정 코드(ECC) 인코딩 및 디코딩 프로세스가 필요하다. 이것을 만족하는 시스템 및 관련 방법은 미국 특허 출원 제 10/040,115 호에 개시되어 있다.
본 발명과 구체적으로 관련된 문제점은, 예를 들어 클러스터 블록 내의 하나의 8-섹터 데이터 클러스터의 일부 또는 전체가 완전히 소실될 가능성이 있다는 것이다. 예를 들면, 클러스터 블록은 16 개의 데이터 클러스터로 이루어질 수 있다. 판독불가능하거나 삭제된 섹터(또는 섹터들)를 온-드라이브 Raid-5 시스템과 같은 패리티 클러스터 내에 패리티 섹터로 교체하는 것과 관련된 문제점은 패리티 섹터들이 클러스터 블록 내의 데이터 클러스터와 부합하는지를 확인할 수 없다는 것이다. 따라서, 오정정에 대한 클러스터 블록 전체에 걸친 패리티 섹터 정정의 신뢰 도를 검사할 수 있는 기능이 여전히 필요하다.
다른 특별한 문제점은 홀수-경계-기록(odd-boundary-write) 동작과 관련된다. 홀수-경계-기록(odd-boundary-write) 동작은 물리적인 8 섹터 데이터 클러스터의 첫 번째 논리 블록 어드레스(LBA; Logical Block Address)에서 시작하지 않는 기록 동작, 또는 물리적인 8 섹터 데이터 클러스터의 최종 LBA에서 끝나지 않는 기록 동작이다. 홀수-경계-기록 동작이 존재하는 경우, 8 섹터 데이터 클러스터에 대한 제 2 및 제 3 레벨(C2/C3) 인코딩을 완료하기 위해서는 RMW(Read-Modify-Write) 동작이 요구된다.
순차 기록에 있어서는, RMW 동작이 요구되는 빈도가 낮기 때문에, C2/C3 보호 완료는 큰 문제를 제기하지는 않을 수도 있다. 그러나, 랜덤 기록에 있어서는 C2/C3 보호 완료는 성능의 관점에서 봤을 때 받아들일 수 없을 수도 있다. 따라서, 동시에 8 섹터 데이터 클러스터 내에 C2/C3 보호를 완료하는 동안 RMW 동작을 회피할 필요가 있으며, 그 ISF 보호는 홀수-경계-기록에 의해 파괴된다.
또 다른 문제점은 데이터 삭제, 즉, 데이터 클러스터 내부에 기록된 섹터를 지울 수 있는 "자미(jami)"의 발생인데, 이를 위해 C3 인코딩이 완료되었다. 따라서, "가상(virtual)"인 바이트인 데이터 클러스터 내의 섹터들의 판독 가능성(readability) 상태를 도입할 필요가 있다. 섹터들의 판독 가능성 상태는 실제로 디스크 상에 기록되어서는 안되며, C3-검사로 인코딩되어야 한다. 섹터들의 판독 가능 상태는, 드라이브 스크러브(scrub) 동작 동안 갱신되어 C3-검사로 재 인코딩되어야하며, 따라서 C3-검사는 보다 높은 레벨의 보호를 위한 오정정 검사( 예를 들면, CRC) 역할을 한다.
본 발명은 이들 요구를 만족시키며, 온-드라이브 패리티 섹터 시스템 내의 ISF-ECC 시스템에서의 패리티 섹터 갱신으로 인한 오정정에 대한 보호를 위한 시스템, 컴퓨터 프로그램 제품, 및 관련 방법(본원 명세서에서는 총괄하여 "시스템" 또는 "본 시스템"으로 지칭됨)을 제공한다.
상기 목적을 위하여, 본 시스템은 그 자체가 C3에 의해 완전하게 보호되는 클러스터인 패리티 클러스터에 의해 보호되는 클러스터 블록을 제공한다. 효과적으로, 이 보호는 제 4 ISF 보호 레벨을 형성하는 데, 이는 본원 명세서에서 "C4 레벨", "C4 보호" 또는 "C4 정정"으로 지칭되며, 클러스터 블록 상에 다중 섹터 패리티 스트라이프로서 구현된다.
섹터 클러스터 내의 판독 불가능하거나 또는 삭제된 섹터들 또는 완전한 클러스터를 패리티 섹터들, 또는 패리티 클러스터로 교체하기 위해서는, 고객에게 부적절하거나 또는 "불량(bad)" 데이터를 제공할 위험을 회피하기 위해, 오정정을 위한 검사 수단이 필요하며, 패리티 섹터(또는 패리티 클러스터)가 클러스터 블록 내의 데이터와 부합한다는 보증이 필요하다.
클러스터 블록의 부합성을 검사할 수 있는 능력뿐만 아니라 높은 신뢰성 레벨을 갖는 C3 검사에 의해 검사되고 확인된 패리티 섹터에 의해 C4 레벨 정정의 클러스터 레벨을 구비한다면, 심지어 "자미(jami)" 에러가 존재하는 경우에도, 이 가능성은 희박해진다.
보다 구체적으로는, 본 발명은 CRC(Cycle Redundancy Check)로서 8 섹터 데이터 클러스터 내에서, ISF-ECC C3 검사 바이트의 사용을 개시하는 데, 이는 개별 데이터 클러스터가 C4-보호형 클러스터 블록에 속한다는 것을 보증한다. 만약, 섹터 또는 몇 개의 섹터들이 데이터 클러스터 내에 기록되었고 C2/C3 검사 바이트가 갱신되었지만, C4-패리티 클러스터가 갱신되지 않았다면, 클러스터 블록 내의 데이터 클러스터 내의 판독 불가능하거나 또는 삭제된 섹터들이 존재하는 경우, 오정정을 회피하면서 클러스터 블록의 모순을 검출하기 위해 클러스터 블록에 대한 C3 검사의 계산이 이용될 수 있다.
각 데이터 클러스터의 가상 판독 가능성 상태를 C3 검사로 인코딩하는 것은 "자미(jami)" 삭제가 존재하는 경우 보호 오정정을 제공한다.
본 시스템의 이점은 상이한 레벨의 보호에 의해, 상이한 에러 메카니즘에 대해 보호하는 ISF-ECC의 구조에 있다. 이는 희박한 에러 이벤트, 즉, 섹터의 긴 결함 또는 소실(loss), 복수의 섹터, 또는 가장 낮은 가능성의 오버헤드에서의 섹터들의 클러스터에 대해 신뢰할 수 있는 보호를 허용한다.
본 시스템은 레이드-온-드라이브(raid-on-drive)로서 적용될 수 있으며, 여기서 클러스터 블록은 패리티 스트라이프이며, 레이드-온-드라이브 레벨 정정은 몇 개의 기본적인 정정 레벨에 의해 확인된다. ISF-ECC는 레이드-온-드라이브 정정 레벨의 오정정 가능성이 없게 만든다.
본 발명의 여러 특징들 및 이러한 특징들을 달성하는 방식은 다음의 상세한 설명, 청구범위 및 도면을 참조하여 보다 상세히 설명되며, 참조번호는 적절한 경 우에 참조 항목들 간의 부합성을 나타내도록 다시 사용된다.
도 1은 종래 기술에 따른, 디스크 드라이브의 부분적인 논리도 및 판독 경로 및 기록 경로의 일부를 도시한 도면이다. 디스크 드라이브는 직접 액세스 저장 장치라고도 하는데, 주기적으로 회전하는 자기 디스크(1)와, 디스크 상의 사전 정의된 수의 동심 트랙들 중 임의의 한 트랙을 따르는 디지털 2진 코드워드의 시퀀스를 나타내는 자속 패턴을 기록하거나 또는 상기 트랙들 중 선택된 하나의 트랙으로부터 상기 기록된 자속 패턴을 판독하여 이들을 코드워드로 변환시키는 전자기 변환기(3)가 끝에 달려있는 방사형 또는 축성으로 이동가능한 액세스 암(5)을 포함한다.
디지털 2진 데이터의 시퀀스가 디스크(1)에 기록될 때, 이들은 버퍼(15) 내에 일시적으로 위치하며, 그 다음에 처리되어 여러 단(stage)을 갖는 기록 경로 또는 채널(17, 19, 7, 5, 3)을 따라서 변환된다. 우선, 데이터 스트링 내의 바이트라고도 하는 사전 결정된 수의 2진 데이터 요소들이 버퍼로부터 이동하여 에러 정정 코드(ECC) 기록 프로세서(17)를 통해 진행한다. 프로세서(17)에서, 데이터 바이트는 종래 기술에서 잘 알려져 있는 RS(Reed-Solomon) 코드와 같은 적절한 선형 블록 또는 순환 코드(cyclic code)로부터 뽑은 코드워드로 맵핑된다. 그 다음에, 각각의 코드워드는 기록 경로 신호-형상화(signal-shaping) 유닛(19) 내에서 제한된 실행 길이(run length) 또는 기타 대역 또는 스펙트럼 형상화 코드로 맵핑되어 시변(time-varying) 신호로 변경된다. 시변 신호는 인터페이스(7)를 통해 공급되며 따라서 자속 패턴으로의 변환을 위해 자기저항 내의 기록 요소 또는 다른 적절 한 변환기(3)로 공급된다.
회전 디스크(1)가 헤드(3) 아래를 지나감에 따라 자속 패턴이 선택된 디스크 트랙 상에 기록될 때까지 이진 데이터 요소의 이동으로부터 시작하는 모든 측정치들은 동기하여 진행한다. 효과적인 데이터 전송을 위해, 데이터는 한번에 한 디스크 섹터씩 기록 또는 판독된다. 따라서, 이진 데이터를 리드-솔로몬 코드워드로 맵핑하는 것과 자속 생성 시변 신호로의 변환은 모두 변환기 하에서 기록 트랙의 유닛을 규정하는 기간 내에서 행해져야 한다. 통상적인 유닛의 기록 트랙 길이는512 바이트의 고정 길이 바이트 섹터와 같다.
자속 패턴의 시퀀스가 디스크(1)로부터 판독되면, 이들은 별개의, 이른바 판독 경로 또는 채널(7, 9, 11, 13)에서 처리되어 버퍼(15)에 기록된다. 변환기(3)에 의해 감지된 시변 신호(time-varying signal)는 인터페이스(7)를 통과하여 신호 추출 유닛(9)으로 진행한다. 여기서, 신호가 검출되고 이진수 1 또는 0으로 분해되는지의 여부가 결정된다. 이들 1 및 0이 경로(25) 상에서 신호 추출 유닛(9)으로부터 나오면, 이들은 포매팅(formatting) 유닛(11) 내에서 코드워드로 정렬된다. 판독 경로는 사전에 디스크(1) 상에 기록된 RS 코드워드의 평가 시퀀스이므로, 에러가 없거나 삭제되어 코드워드는 동일할 것이다.
이러한 경우인지의 여부를 테스트하기 위해, 각각의 코드워드는 포매터로부터 경로(27) 상의 ECC 판독 프로세서(13)에 제공된다. 또한, ECC 프로세서(13)로부터의 삭제된 출력은 경로(29) 상의 버퍼(15)에 기록된다. 판독 경로는 또한, 임의의 검출된 에러가, ECC 판독 프로세서(13)가 디스크 트랙으로부터 판독된 다음 코드워드를 수신하기에 적절한 시점에 코드워드 웰 내에 위치하여 보정되어야 하는 동기 데이터 스트리밍 방식으로 동작해야 한다. 버퍼(15) 및 판독 및 기록 경로는, 순차적인 판독 참조와 같이, 참조 패턴이 경로가 취해지지 않도록 명령할 수도 있는 효과를 보장하도록 마이크로프로세서(도시되지 않음)에 의해 감시되고 제어될 수도 있다.
도 2 및 3은 본 발명의 바람직한 실시예에 따른, N=8 섹터, 3 레벨 ECC(n=3)의 특정 예에 대한 ML-ISF-ECC에 대한 방법 및 장치를 도시하고 있다. 보다 구체적으로는, 도 2는 이진 트리의 각 노드에서 누적 검사 합을 저장하는데 사용된 레지스터를 도시하고 있다. 마찬가지로, 도 3은 이들 레지스터들의 내용이 조합되어, 각각의 검사 바이트 세트에 대한 명시적인 방정식을 이용하여 집적된 포맷 검사 바이트들을 생성하는 과정을 설명한다.
도 2 및 3의 예는, 인코딩 및 디코딩을 위한 ML-ISF-ECC 방법이, ML-ISF-ECC 인코딩 및 디코딩 구조 내에 공유된 검사 바이트를 제공하기 위해, 임의의 N개의 집적된 섹터들, 임의의 n 레벨의 ECC 레벨, 및 N개의 섹터의 물리적 블록 내의 섹터들을 조합하기 위한 임의의 원하는 패턴에 대해 일반적이며 유효하다는 것을 예증하도록 도시되어 있다.
본 발명의 바람직한 실시예에서, 리드-솔로몬 인코더 및 디코드의 구현은 디자인 선택의 문제이며, 다른 인코딩 및 디코딩 기법들이 사용될 수도 있다.
본 발명은 그 예시적인 실시예로서 디스크 저장 장치에 대해 설명하였지만, 본 발명의 범위 및 범주로부터 벗어나지 않고 본원 명세서에 개시된 방법 및 수단 내에서 다양한 변경들이 이루어질 수도 있다. 따라서, 본 발명의 원리는 또한 통신 시스템 등으로부터 수신된 바와 같은, 선형으로 에러 정정 인코딩된 긴 바이트 스트링 내의 에러의 검출 및 정정과 관련이 있다. 통신 시스템에서, 정보의 단위들은 정보 섹터라기보다는 정보 패킷으로 지칭되는 것이 바람직하며, 섹터와 패킷은 사전 결정된 양의 정보를 갖는 정보 단위를 나타낸다.
도 4a는, 패리티 클러스터 N(패리티 클러스터 C4로도 지칭됨)과 다수의 데이터 섹터 클러스터(1, 2, 3, 4 내지 N-1)를 포함하는 예시적인 클러스터 블록(900)을 도시하고 있다.
본 발명은 클러스터 및 섹터를 참조하여 설명되지만, 본 발명은 클러스터의 스트라이프(또는 그룹)에도 적용될 수 있음은 분명하다.
이 목적을 위해, 본 시스템은 그 자체가 완전한 C3-보호형 클러스터인 패리티 클러스터 C4에 의해 보호되는 클러스터 블록(900)을 제공한다. 실제로, 이 보호는 제 4 ISF 보호 레벨을 형성하며, 이것은 클러스터 블록 상에 다중 섹터 패리티로서 구현된다. 보다 구체적으로는, 패리티 클러스터 C4는, 전술한 바와 같이 다른 클러스터 1 내지 N-1과 마찬가지로 C1, C2, C3 보호 레벨에 의해 보호된다.
예로서 8 섹터 클러스터를 고려하면, 패리티 클러스터 또는 C4 검사 보호 레벨 역시 데이터 섹터 1 내지 N-1과 같이 유사한 보호 레벨 C1, C2, C3을 가지며, 아래와 같이 형성된다.
클러스터 블록(900) 내의 패리티 클러스터(C4)를 포함하여, 모든 섹터(1 내지 N)의 데이터 Di(i=1, ..., 8)의 배타적 OR(XOR)의 합은 0이며, 다음과 같이 표현된다.
Figure 112006015256740-pat00013
마찬가지로, 클러스터 블록(900) 내의 패리티 클러스터(C4)를 포함하여, 모든 섹터(1 내지 N)의 C1-검사 보호 레벨 Ci(i=1, ..., 8)의 배타적 OR(XOR)의 합은 0이며, 다음과 같이 표현된다.
Figure 112006015256740-pat00014
예로서 제 2 컬럼을 고려하면, 클러스터 블록(900) 내의 제 2 컬럼 내의 패리티 클러스터(C4)를 포함하여, 모든 섹터(1 내지 N)의 데이터 D2의 배타적 OR(XOR)의 합은 0이며, 다음과 같이 표현된다.
Figure 112006015256740-pat00015
유사한 XOR 합이 클러스터 블록(900) 내의 모든 데이터 섹션 Di에 적용된다.
클러스터 블록(900) 내의 제 4 컬럼 내의 패리티 클러스터(C4)를 포함하여, 모든 섹터(1 내지 N)의 C2-검사 보호 레벨의 배타적 OR(XOR)의 합은 0이며, 다음과 같이 표현된다.
Figure 112006015256740-pat00016
마찬가지로, 클러스터 블록(900) 내의 8 컬럼 내의 패리티 클러스터(C4)를 포함하여, 모든 섹터(1 내지 N)의 C3-검사 보호 레벨의 배타적 OR(XOR)의 합은 0이며, 다음과 같이 표현된다.
Figure 112006015256740-pat00017
그 결과 본 시스템은 패리티 클러스터 C4에 대한 CRC(cycle redundancy check)로서 C2 및 C3 보호 레벨을 사용한다.
또한, 도 4b를 참조하면, 본 발명의 일 특징은 클러스터 블록(900) 내의 각 클러스터에 대한 가상 판독 가능 바이트(920)를 포함한다는 것이다.
도 4a의 예에서, (판독 불가능 섹터(905)를 포함하는 클러스터(2)와 같은)8 섹터 클러스터가 판독되면, 대응하는 판독 가능 바이트(920)(도 4b)가 생성되며, 여기서 각각의 비트는 대응하는 섹터의 판독 가능 상태를 나타낸다.
이 예에서, 판독 가능 바이트(920) 내의 제 1 비트(921)는 클러스터(2) 내의 섹터 D1에 대응하고, 제 2 비트(922)는 섹터 D2에 대응하며, 제 3 비트(923)는 섹터 D3(905)에 대응하고, 제 4 비트(924)는 섹터 D4에 대응하며, 제 5 비트(925)는 섹터 D5에 대응하고, 제 6 비트(926)는 섹터 D6에 대응하며, 제 7 비트(927)는 섹터 D7에 대응하고, 제 8 비트(928)는 섹터 D8에 대응한다. 0 비트는 대응하는 섹터가 판독 가능하다는 것을 나타내며, 1 비트(섹터(905)에서와 같이)는 대응하는 섹터가 판독 가능하지 않다(또는 삭제되었다)는 것을 나타낸다.
도 5는 도 4a의 C4-레벨 패리티 클러스터 보호를 발생하는 인코딩 방법(즉, 코드 또는 알고리즘)(950)을 도시하는 프로세스 흐름도이다. 방법(950)은, 클러스터 블록(900) 내의 하나 이상의 섹터의 일부 또는 전부이든 간에, 삭제에 의해서와 같이, 판독 가능하지 않거나 또는 삭제된 섹터 또는 섹터들에 의해 단계 952에서 개시된다.
단계 954에서, 방법(950)은 패리티 클러스터(C4) 내에서, 판독 가능하지 않거나 삭제된 섹터, 즉, 905(도 4a 참조)를 대응하는 패리티 섹터, 즉, 910으로 교체한다. 그 다음에 방법(950)은 판독가능하지 않거나 삭제된 섹터(905)의 클러스터(즉, 클러스터 2) 내에서 C3-검사(915)를 재계산한다.
단계 962에서, 방법(950)은 패리티 클러스터(C4)를 포함하여, 모든 클러스터(1 내지 N) 내에서 C3-검사에 대한 배타적 OR 연산(XOR)을 실시한다. 그 다음에, 단계 964에서, 방법(950)은 단계 962에서 계산된 C3-검사의 XOR 합이 0인지의 여부를 검사한다.
단계 964에서 C3-검사의 XOR 합이 0이라고 판정되면, 방법(950)은 단계 966으로 진행하여 판독 가능하지 않거나 삭제된 섹터(905)를 대응하는 패리티 섹터(910)로 교체한다. 그 다음에 패리티 섹터(910)는 단계 967에서 호스트(18)(도 1)로 반환된다.
한편, C3-검사의 XOR 합이 0이 아니라고 판정되면, 방법(950)은 단계 968에서 오정정을 선언하고, 판독가능하지 않거나 삭제된 섹터(905)를 대응하는 패리티 섹터(910)로 교체하지 않는다. 단계 969에서 에러 메시지가 호스트(18)로 반환된다. 에러 메시지는 관리자가 원하는 경우에 관리자에게, 예를 들어 손상되거나 판독가능하지 않은 섹터를 수동으로 정정할 기회를 준다는 점에 있어서, 이 반환 에러 메시지는 본 발명의 특징이다. 판독가능하지 않거나 삭제된 섹터(905)를 대응하는 패리티 섹터(910)로 교체하는 것을 회피하는 것은, 또한 그렇지 않으면 연장 된 기간 동안 검출되지 않게 되는 에러 전파를 방지한다.
도 6은 본 발명의 바람직한 방법에 따른 스크러브 갱신 방법(980)을 도시하는 프로세스 흐름도이다. 스크러브 갱신 방법(980)은 구동의 유휴(idle) 시간 동안 바람직하게 구현된다. 따라서, C1-검사가 온더플라이로 기록되는 동안, C2, C3, C4-검사가 스크러브 갱신 방법(980)에 의해 계산된다.
스크러브 갱신 방법(980)은 제 1 스크러브 트랙(982)을 선택함으로써 단계 982에서 개시되고, 그 다음에 단계 984에서 방법(980)은 트랙을 스크러브한다. 방법(980)은 그 다음에 단계 986에서 이 트랙을 판독하고 ECC 그룹, 즉, C2 그룹, C3 그룹, 및 C4 그룹을 검사한다.
단계 988에서, 방법(980)은 ECC 그룹이 일관적인지, 즉, 이들 그룹의 개별적인 XOR 합이 0인지를 질의한다. 만약, 그러하다면, 방법(980)은 판정 단계 990으로 진행하여 스크러브할 더 이상의 트랙이 존재하는지 질의한다.
단계 990에서 추가적인 트랙이 존재한다는 것이 발견되면, 방법(980)은 단계 992로 진행하여 다음 스크러브 트랙을 선택하고, 전술한 단계 984, 986, 988을 반복한다. 단계 990에서 추가적인 스크러브 트랙이 발견되면, 방법(980)은 단계 999에서 종료된다.
단계 988에서, ECC 그룹이 일관되지 않으면, 방법(980)은 단계 994로 진행하여 C2, C3, C4-검사 그룹을 재계산하고, 그 다음에 단계 996에서 재계산된 ECC 그룹의 일관성을 평가한다.
만약, 단계 998에서 재계산된 ECC 그룹의 일관성이 확인되지 않으면, 방법(980)은 전술한 단계 994 및 996을 반복한다. 그러나, 재계산된 ECC 그룹의 일관성이 확인되면, 방법(980)은 단계 999에서 종료된다.
전술한 본 발명의 특정 실시예는 단순히 본 발명의 원리의 어떠한 응용을 설명하는 것임에 주의하라. 본 발명의 사상 및 범주로부터 벗어나지 않고, 본원 명세서에 개시된 시스템 및 관련 방법에 많은 변형이 이루어질 수도 있다. 본 발명은 예시를 위해 섹터와 관련하여 설명하였지만, 본 발명은 임의의 데이터 세트 또는 데이터의 관련 세트에도 양호하게 적용될 수 있다.
본 발명에 따르면, 온-드라이브 패리티 섹터 시스템 내의 ISF-ECC 시스템에서의 패리티 섹터 갱신으로 인한 오정정에 대한 보호를 위한 시스템, 컴퓨터 프로그램 제품, 및 관련 방법이 제공된다.

Claims (45)

  1. 클러스터 블록내의 패리티 섹터 정정으로 인한 오정정(miscorrection)에 대한 보호 방법에 있어서,
    다중 레벨(multi-level) 에러 정정 코드(error correction code:ECC)에 따라서 크로스체크(cross-check) 바이트들을 생성하는 단계와,
    클러스터 블록 레벨에서 상기 크로스체크 바이트들중 적어도 일부의 무결성(integrity)을 검사함으로써 패리티 섹터 정정으로 인한 오정정의 발생을 판정하는 단계와,
    오정정으로 판정되면, 임의의 판독가능하지 않거나 삭제된 섹터를 대응하는 패리티 섹터로 교체하는 것을 방지하는 단계와,
    오정정으로 판정되지 않으면, 상기 임의의 판독가능하지 않거나 삭제된 섹터를 상기 대응하는 패리티 섹터로 교체하는 단계
    를 포함하는 오정정 보호 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    오정정이 발생했다고 판정되면, 에러 메시지를 반환하는 오정정 보호 방법.
  4. 제 1 항에 있어서,
    상기 크로스체크 바이트들을 생성하는 단계는 클러스터 내의 각 섹터를 오정정에 대해 보호하는 단계와, 상기 클러스터 내의 오정정을 크로스 체킹하는 단계를 포함하는 오정정 보호 방법.
  5. 제 1 항에 있어서,
    상기 다중 레벨 에러 정정 코드에 따라 크로스체크 바이트들을 생성하는 단계는 4-레벨 검사 바이트, 즉, C1, C2, C3, 및 C4 검사 바이트를 생성하는 단계를 포함하는 오정정 보호 방법.
  6. 제 5 항에 있어서,
    클러스터 블록 레벨에서 상기 크로스체크 바이트들중 적어도 일부의 무결성을 검사함으로써 패리티 섹터 정정으로 인한 오정정의 발생을 판정하는 단계는 클러스터 레벨에서 상기 C3 검사 바이트를 재계산하는 단계를 포함하는 오정정 보호 방법.
  7. 제 6 항에 있어서,
    클러스터 블록 레벨에서 상기 크로스체크 바이트들중 적어도 일부의 무결성을 검사함으로써 패리티 섹터 정정으로 인한 오정정의 발생을 판정하는 단계는 상기 클러스터 레벨에서 재계산된 상기 C3 검사 바이트들의 무결성을 검사하는 단계를 더 포함하는 오정정 보호 방법.
  8. 제 7 항에 있어서,
    상기 클러스터 레벨에서 재계산된 상기 C3 검사 바이트들의 무결성을 검사하는 단계는 클러스터 블록 레벨에서 상기 모든 C3 검사 바이트들의 합을 계산하는 단계를 포함하는 오정정 보호 방법.
  9. 제 8 항에 있어서,
    클러스터 블록 레벨에서 상기 모든 C3 검사 바이트들의 합을 계산하는 단계는 상기 클러스터 블록 레벨에서 상기 모든 C3 검사 바이트들의 배타적 OR 연산을 수행하는 단계를 포함하는 오정정 보호 방법.
  10. 제 9 항에 있어서,
    상기 클러스터 블록 레벨에서의 상기 모든 C3 검사 바이트들의 합이 0이 아닐 때 오정정으로 판정되는 오정정 보호 방법.
  11. 제 10 항에 있어서,
    상기 클러스터 블록 레벨에서의 상기 모든 C3 검사 바이트들의 합이 0일 때 오정정으로 판정되지 않는 오정정 보호 방법.
  12. 제 1 항에 있어서,
    클러스터 내의 섹터들에 대한 판독 가능성 바이트를 계산하여 상기 섹터들의 판독 가능성 상태를 나타내는 단계를 더 포함하는 오정정 보호 방법.
  13. 제 12 항에 있어서,
    상기 판독 가능성 바이트는 가상(virtual)인 오정정 보호 방법.
  14. 제 13 항에 있어서,
    상기 가상 판독 가능성 바이트를 상기 다중 레벨 에러 정정 코드의 지정된 레벨로 인코딩하는 단계를 더 포함하는 오정정 보호 방법.
  15. 제 1 항에 있어서,
    클러스터 블록내의 클러스터들에 대한 판독 가능성 바이트를 계산하여 상기 클러스터들의 판독 가능성 상태를 나타내는 단계를 더 포함하는 오정정 보호 방법.
  16. 제 5 항에 있어서,
    스크러브 갱신 동작을 이용하여 상기 크로스체크 바이트들를 생성하고, 상기 크로스체크 바이트들 중 적어도 일부를 이용하여 상기 패리티 섹터 정정으로 인한 오정정의 발생을 판정하는 오정정 보호 방법.
  17. 제 16 항에 있어서,
    상기 스크러브 갱신 동작은 유휴 시간 동안 실시되는 오정정 보호 방법.
  18. 제 17 항에 있어서,
    상기 스크러브 갱신 동작을 이용하는 단계는 상기 유휴 시간 동안 상기 크로스체크 바이트들 중 적어도 일부를 계산하는 단계를 포함하는 오정정 보호 방법.
  19. 제 18 항에 있어서,
    상기 유휴 시간 동안 상기 크로스체크 바이트들 중 적어도 일부를 계산하는 단계는 상기 유휴 시간 동안 상기 C2, C3, C4 검사 바이트들를 계산하는 단계를 포함하는 오정정 보호 방법.
  20. 제 19 항에 있어서,
    상기 C1 검사 바이트를 온더플라이(on-the-fly)로 계산하는 단계를 더 포함하는 오정정 보호 방법.
  21. 클러스터 블록내의 패리티 섹터 정정으로 인한 오정정에 대해 보호할 수 있는 저장 장치에 있어서,
    다중 레벨 에러 정정 코드에 따라 크로스체크 바이트들을 생성하는 수단과,
    클러스터 블록 레벨에서 상기 크로스체크 바이트들중 적어도 일부의 무결성을 검사함으로써 패리티 섹터 정정으로 인한 오정정의 발생을 판정하는 수단과,
    상기 판정 수단이 오정정을 검출하면, 상기 판정 수단은 임의의 판독가능하지 않거나 삭제된 섹터를 대응하는 패리티 섹터로 교체하는 것을 방지하고,
    상기 판정 수단이 오정정을 검출하지 않으면, 상기 판정 수단은 상기 임의의 판독가능하지 않거나 삭제된 섹터를 상기 대응하는 패리티 섹터로 교체하는
    저장 장치.
  22. 삭제
  23. 삭제
  24. 제 21 항에 있어서,
    상기 크로스체크 바이트들을 생성하는 수단은 클러스터 내의 각 섹터를 오정정에 대해 보호하고, 상기 클러스터 내의 오정정을 크로스 체킹하는 저장 장치.
  25. 제 21 항에 있어서,
    상기 크로스체크 바이트들을 생성하는 수단은 4-레벨 검사 바이트들, 즉, C1, C2, C3, 및 C4 검사 바이트들을 생성하는 저장 장치.
  26. 제 25 항에 있어서,
    상기 크로스체크 바이트들중 적어도 일부의 무결성을 검사함으로써 패리티 섹터 정정으로 인한 오정정의 발생을 판정하는 수단은 클러스터 레벨에서 상기 C3 검사 바이트를 재계산하는 저장 장치.
  27. 제 26 항에 있어서,
    상기 크로스체크 바이트들중 적어도 일부의 무결성을 검사함으로써 패리티 섹터 정정으로 인한 오정정의 발생을 판정하는 수단은 상기 클러스터 레벨에서 재계산된 상기 C3 검사 바이트의 무결성을 더 검사하는 저장 장치.
  28. 제 27 항에 있어서,
    상기 클러스터 레벨에서 재계산된 상기 C3 검사 바이트의 무결성을 검사하는 수단은 클러스터 블록 레벨에서 상기 모든 C3 검사 바이트들의 합을 계산하는 저장 장치.
  29. 제 21 항에 있어서,
    클러스터 내의 섹터들에 대한 가상 판독 가능성 바이트를 계산하여 상기 섹터들의 판독 가능성 상태를 나타내는 수단을 더 포함하는 저장 장치.
  30. 제 25 항에 있어서,
    상기 크로스체크 바이트를 생성하고, 상기 크로스체크 검사 바이트들 중 적어도 일부를 이용하여 패리티 섹터 정정으로 인한 오정정의 발생을 판정하는 스크러브 갱신 수단을 더 포함하는 저장 장치.
  31. 적어도 하나의 패리티 블록을 갖는 데이터 세트 내에서 부합하지 않는 패리티로 인한 오정정에 대하여 상기 데이터 세트를 보호하는 방법에 있어서,
    상기 데이터 세트 내의 정보로부터 크로스체크 바이트를 생성하는 단계와,
    상기 크로스체크 바이트를 상기 데이터 세트와 관련하여 저장하는 단계와,
    지워짐 이벤트(erasure event) 시에, 상기 패리티 블록으로부터 소실된 데이터를 재구성하는 단계와,
    재구성된 데이터를 포함하는 상기 데이터 세트로부터 새로운 크로스체크 바이트를 생성하는 단계와,
    상기 새로운 크로스체크 바이트를 상기 저장된 크로스체크 바이트와 비교하는 단계와,
    비교 결과 상기 재구성된 데이터로부터 생성된 상기 새로운 크로스체크 바이트가 부합하는(consistent) 경우에, 상기 재구성된 데이터가 유효하다고 판정하여 상기 재구성된 데이터가 사용되도록 하는 단계와,
    비교 결과 상기 재구성된 데이터로부터 생성된 상기 새로운 크로스체크 바이트가 부합하지 않는 경우에, 상기 재구성된 데이터가 유효하지 않다고 판정하고 에러를 표시하는 단계
    를 포함하는 데이터 세트 보호 방법.
  32. 제 31 항에 있어서,
    상기 크로스체크 바이트를 생성하는 단계는 다중 레벨 에러 정정 코드에 따라서 상기 크로스체크 바이트를 생성하는 단계를 포함하는 데이터 세트 보호 방법.
  33. 제 31 항에 있어서,
    상기 데이터 세트는 복수의 패리티 섹터를 포함하는 데이터 세트 보호 방법.
  34. 제 33 항에 있어서,
    상기 크로스체크 바이트를 생성하는 단계는 상기 데이터 세트의 서브세트에 대한 패리티 섹터를 생성하는 단계를 포함하는 데이터 세트 보호 방법.
  35. 제 34 항에 있어서,
    상기 크로스체크 바이트를 생성하는 단계는 상기 데이터 세트의 다른 서브 세트들이 복수의 고유한 패리티 데이터 서브세트로부터의 데이터를 포함하도록 상기 데이터 세트의 상기 다른 서브세트들로부터 복수의 크로스체크 바이트를 생성하는 단계를 더 포함하는 데이터 세트 보호 방법.
  36. 적어도 하나의 패리티 블록에 의해 보호되는 데이터 세트를 포함하는 데이터 저장 장치로서, 상기 데이터 세트는 또한 상기 데이터 세트와 관련하여 저장된 크로스체크 바이트에 의해 보호되는 데이터 저장 장치에 있어서,
    상기 데이터 세트로부터 상기 패리티 블록을 생성하는 수단과,
    상기 데이터 세트로부터 크로스체크 바이트를 생성하는 수단과,
    지워짐 이벤트 발생 시에 상기 패리티 블록으로부터 소실 데이터를 재구성하는 수단과,
    상기 재구성된 데이터 세트로부터 새로운 크로스체크 바이트를 생성하는 수단과,
    상기 새로운 크로스체크 바이트를 저장된 크로스체크 바이트와 비교하는 수단과,
    상기 비교 결과 상기 새로운 크로스체크 바이트와 저장된 크로스체크 바이트가 부합하지 않는 경우에 에러를 표시하는 수단을 포함하는 데이터 저장 장치.
  37. 제 36 항에 있어서,
    상기 크로스체크 바이트를 생성하는 수단은 다중 레벨 에러 정정 코드에 따라서 상기 크로스체크 바이트틀 생성하는 데이터 저장 장치.
  38. 제 36 항에 있어서,
    상기 데이터 세트는 복수의 패리티 섹터를 포함하는 데이터 저장 장치.
  39. 제 38 항에 있어서,
    상기 크로스체크 바이트를 생성하는 수단은 상기 데이터 세트의 서브세트에 대한 패리티 섹터를 생성하는 데이터 저장 장치.
  40. 제 39 항에 있어서,
    상기 크로스체크 바이트를 생성하는 수단은 상기 데이터 세트의 다른 서브세트들로부터 복수의 크로스체크 바이트를 더 생성하여, 상기 다른 서브 세트들이 복수의 고유한 패리티 데이터 서브세트로부터의 데이터를 포함하는 데이터 저장 장치.
  41. 인스트럭션 코드를 가지며, 적어도 하나의 패리티 블록으로 보호되는 데이터 세트 -상기 데이터 세트는 또한 상기 데이터 세트와 관련하여 저장된 크로스체크 바이트에 의해 보호됨- 를 포함하는 에러 정정 코드를 포함하고 있는 컴퓨터에 의해 판독가능한 기록매체에 있어서, 상기 에러 정정 코드는
    상기 데이터 세트로부터 상기 패리티 블록을 생성하는 제 1 인스트럭션 코드 세트와,
    상기 데이터 세트로부터 크로스체크 바이트를 생성하는 제 2 인스트럭션 코드 세트와,
    지워짐 이벤트 발생 시에 상기 패리티 블록으로부터 소실 데이터를 재구성하는 제 3 인스트럭션 코드 세트를 포함하고,
    상기 제 3 인스트럭션 코드 세트는 상기 재구성된 데이터 세트로부터 새로운 크로스체크 바이트를 또한 생성하고,
    상기 제 3 인스트럭션 코드 세트는 상기 새로운 크로스체크 바이트와 상기 저장된 크로스체크 바이트를 비교하고, 상기 비교된 새로운 크로스체크 바이트와 상기 저장된 크로스체크 바이트가 부합하지 않는 경우에 에러를 표시하는
    컴퓨터에 의해 판독가능한 기록매체.
  42. 제 41 항에 있어서,
    상기 제 2 인스트럭션 코드 세트는 다중 레벨 에러 정정 코드에 따라 상기 크로스체크 바이트를 발생하는 컴퓨터에 의해 판독가능한 기록매체.
  43. 제 41 항에 있어서,
    상기 데이터 세트는 복수의 패리티 섹터를 포함하는 컴퓨터에 의해 판독가능한 기록매체.
  44. 제 43 항에 있어서,
    상기 제 2 인스트럭션 코드 세트는 상기 데이터 세트의 서브세트에 대한 패리티 섹터를 생성하는 컴퓨터에 의해 판독가능한 기록매체.
  45. 제 44 항에 있어서,
    상기 제 2 인스트럭션 코드 세트는 상기 데이터 세트의 다른 서브세트로부터 복수의 크로스체크 바이트를 더 생성하여, 상기 다른 서브 세트가 복수의 고유한 패리티 데이터 서브세트로부터의 데이터를 포함하도록 하는 컴퓨터에 의해 판독가능한 기록매체.
KR1020030076685A 2002-11-20 2003-10-31 오정정 보호 방법, 저장 장치, 데이터 세트 보호 방법,데이터 저장 장치, 및 에러 정정 코드 KR100613056B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/301,151 2002-11-20
US10/301,151 US6891690B2 (en) 2002-11-20 2002-11-20 On-drive integrated sector format raid error correction code system and method

Publications (2)

Publication Number Publication Date
KR20040044103A KR20040044103A (ko) 2004-05-27
KR100613056B1 true KR100613056B1 (ko) 2006-08-16

Family

ID=32297977

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030076685A KR100613056B1 (ko) 2002-11-20 2003-10-31 오정정 보호 방법, 저장 장치, 데이터 세트 보호 방법,데이터 저장 장치, 및 에러 정정 코드

Country Status (6)

Country Link
US (1) US6891690B2 (ko)
JP (1) JP4709485B2 (ko)
KR (1) KR100613056B1 (ko)
CN (1) CN100559718C (ko)
MY (1) MY134625A (ko)
SG (1) SG115581A1 (ko)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7299314B2 (en) * 2003-12-31 2007-11-20 Sandisk Corporation Flash storage system with write/erase abort detection mechanism
TWI259356B (en) * 2004-03-26 2006-08-01 Infortrend Technology Inc Apparatus for checking data coherence, controller and storage system having the same and method therefore is disclosed
US7376863B2 (en) * 2004-09-02 2008-05-20 International Business Machines Corporation Apparatus, system, and method for error checking and recovery of transmitted data in a SCSI environment
US7437653B2 (en) 2004-12-22 2008-10-14 Sandisk Corporation Erased sector detection mechanisms
KR100688549B1 (ko) 2005-05-24 2007-03-02 삼성전자주식회사 비휘발성 메모리를 지원하는 온더플라이 bcc 코덱시스템 및 방법
US7783845B2 (en) * 2005-11-14 2010-08-24 Sandisk Corporation Structures for the management of erase operations in non-volatile memories
US7624239B2 (en) * 2005-11-14 2009-11-24 Sandisk Corporation Methods for the management of erase operations in non-volatile memories
EP1879310A1 (en) * 2006-07-11 2008-01-16 Harman Becker Automotive Systems GmbH Method for decoding a digital radio stream
US20080320253A1 (en) * 2007-06-19 2008-12-25 Andrew Tomlin Memory device with circuitry for writing data of an atomic transaction
US8266391B2 (en) * 2007-06-19 2012-09-11 SanDisk Technologies, Inc. Method for writing data of an atomic transaction to a memory device
US8775758B2 (en) * 2007-12-28 2014-07-08 Sandisk Technologies Inc. Memory device and method for performing a write-abort-safe firmware update
CN102023902B (zh) * 2010-12-28 2013-05-08 创新科存储技术有限公司 一种磁盘阵列重建方法
US8856618B2 (en) 2012-10-04 2014-10-07 HGST Netherlands B.V. Scalable repair block error correction for sequential multiple data blocks in a magnetic data storage device
US8472295B1 (en) 2012-10-05 2013-06-25 Lsi Corporation Selective error protection over multiple sectors
US9286159B2 (en) 2013-11-06 2016-03-15 HGST Netherlands B.V. Track-band squeezed-sector error correction in magnetic data storage devices
IN2013KO01274A (ko) * 2013-11-08 2015-05-15 Lsi Corp
US9229813B2 (en) 2014-03-06 2016-01-05 HGST Netherlands B.V. Error correction with on-demand parity sectors in magnetic data storage devices
KR102572357B1 (ko) 2016-02-03 2023-08-29 삼성전자주식회사 Raid-6 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
US10275309B2 (en) 2017-04-26 2019-04-30 Western Digital Technologies, Inc. Multi-layer integrated zone partition system error correction
CN108932176B (zh) * 2017-05-27 2021-09-21 杭州海康威视数字技术股份有限公司 数据降级存储方法及装置
CN108182126B (zh) * 2018-01-02 2020-11-20 联想(北京)有限公司 一种硬盘处理方法及电子设备
CN108845957B (zh) * 2018-03-30 2020-10-09 杭州电子科技大学 一种置换和回写自适应的缓冲区管理方法
JP2020042868A (ja) 2018-09-06 2020-03-19 株式会社東芝 磁気ディスク装置及び磁気ディスク装置のデータリード方法
CN112015328B (zh) * 2019-05-30 2022-05-31 武汉海康存储技术有限公司 第5级独立磁盘冗余阵列的创建方法及装置
US11599417B2 (en) 2021-01-14 2023-03-07 Changxin Memory Technologies, Inc. Error correction system
CN114765056B (zh) 2021-01-14 2024-07-12 长鑫存储技术有限公司 存储系统
EP4050608B1 (en) 2021-01-14 2023-06-28 Changxin Memory Technologies, Inc. Comparator with xor and xnor logic circuits
US11990201B2 (en) 2021-01-14 2024-05-21 Changxin Memory Technologies, Inc. Storage system
CN114765055B (zh) * 2021-01-14 2024-05-03 长鑫存储技术有限公司 纠错系统
JP7343709B2 (ja) 2021-01-14 2023-09-12 チャンシン メモリー テクノロジーズ インコーポレイテッド 誤り訂正システム
US11886295B2 (en) 2022-01-31 2024-01-30 Pure Storage, Inc. Intra-block error correction

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000016425A (ko) * 1997-04-07 2000-03-25 이데이 노부유끼 데이타 기록 장치 및 방법, 디스크 어레이 제어 장치 및 방법
KR20010100509A (ko) * 2000-05-03 2001-11-14 구자홍 고밀도 광 기록매체에서의 데이터 에러정정 코드생성방법과 이에 의한 에러 정정 방법, 그리고 그 장치

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4495623A (en) 1982-09-02 1985-01-22 Discovision Associates Digital data storage in video format
US4916701A (en) 1988-09-21 1990-04-10 International Business Machines Corporation Method and system for correcting long bursts of consecutive errors
JP2600373B2 (ja) 1989-05-11 1997-04-16 松下電器産業株式会社 光ディスク記録再生装置
JP2721099B2 (ja) 1991-12-18 1998-03-04 インターナショナル・ビジネス・マシーンズ・コーポレイション エラーバースト修正のための試行錯誤方法及びマルチバイトエラーの修正方法
US5737344A (en) 1995-05-25 1998-04-07 International Business Machines Corporation Digital data storage with increased robustness against data loss
KR100611954B1 (ko) 1999-07-08 2006-08-11 삼성전자주식회사 고밀도 디스크를 위한 에러 정정방법
JP4054182B2 (ja) * 2001-09-25 2008-02-27 株式会社東芝 仮想的なraid装置を有するクラスタシステム及び同システム用のコンピュータ

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000016425A (ko) * 1997-04-07 2000-03-25 이데이 노부유끼 데이타 기록 장치 및 방법, 디스크 어레이 제어 장치 및 방법
KR20010100509A (ko) * 2000-05-03 2001-11-14 구자홍 고밀도 광 기록매체에서의 데이터 에러정정 코드생성방법과 이에 의한 에러 정정 방법, 그리고 그 장치

Also Published As

Publication number Publication date
US6891690B2 (en) 2005-05-10
CN1503456A (zh) 2004-06-09
KR20040044103A (ko) 2004-05-27
MY134625A (en) 2007-12-31
CN100559718C (zh) 2009-11-11
JP4709485B2 (ja) 2011-06-22
JP2004171751A (ja) 2004-06-17
US20040095666A1 (en) 2004-05-20
SG115581A1 (en) 2005-10-28

Similar Documents

Publication Publication Date Title
KR100613056B1 (ko) 오정정 보호 방법, 저장 장치, 데이터 세트 보호 방법,데이터 저장 장치, 및 에러 정정 코드
US6903887B2 (en) Multiple level (ML), integrated sector format (ISF), error correction code (ECC) encoding and decoding processes for data storage or communication devices and systems
US7653862B2 (en) Error detection and correction for encoded data
US7178086B2 (en) Direct partial update of CRC/ECC check bytes
US7231578B2 (en) Techniques for detecting and correcting errors using multiple interleave erasure pointers
US7340665B2 (en) Shared redundancy in error correcting code
US8321762B2 (en) Method for creating an error correction coding scheme
CN101635158B (zh) 编码和/或解码系统数据的方法、装置、系统和体系结构
US7653866B2 (en) Data recording method, recording medium and reproduction apparatus
US6367047B1 (en) Multi-level error detection and correction technique for data storage recording device
US7559009B1 (en) System and method for performing parity checks in disk storage systems
US9251846B2 (en) Tape header protection scheme for use in a tape storage subsystem
KR19990028535A (ko) 디스크 드라이브 버퍼 내의 데이터 보호 방법 및 장치
GB2525733A (en) Error correction with on-demand parity sectors in magnetic data storage devices
KR20040093748A (ko) 오류정정의 추가층을 오류정정코드 내에 삽입하는 방법 및장치
US6009550A (en) PBA recovery apparatus and method for interleaved reed-solomon codes
US6769088B1 (en) Sector-coding technique for reduced read-after-write operations
JP4988418B2 (ja) 回転する記憶媒体の複数の層にデータを読み書きする方法、プログラム及びデータ記憶装置
US6587977B1 (en) o,k,m,/m recording code
US7131052B2 (en) Algebraic decoder and method for correcting an arbitrary mixture of burst and random errors
JPH0934649A (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: 20100621

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee