KR20060133997A - 데이터 저장 시스템 - Google Patents

데이터 저장 시스템 Download PDF

Info

Publication number
KR20060133997A
KR20060133997A KR1020067011627A KR20067011627A KR20060133997A KR 20060133997 A KR20060133997 A KR 20060133997A KR 1020067011627 A KR1020067011627 A KR 1020067011627A KR 20067011627 A KR20067011627 A KR 20067011627A KR 20060133997 A KR20060133997 A KR 20060133997A
Authority
KR
South Korea
Prior art keywords
modulation
data
data sequence
bits
sequence
Prior art date
Application number
KR1020067011627A
Other languages
English (en)
Other versions
KR100946032B1 (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 KR20060133997A publication Critical patent/KR20060133997A/ko
Application granted granted Critical
Publication of KR100946032B1 publication Critical patent/KR100946032B1/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
    • 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
    • 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/14Digital recording or reproducing using self-clocking 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
    • 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

Abstract

데이터 저장 시스템은 오류 정정 코드 인코더, 변조 인코더, 및 프리코더를 포함하는 인코더 서브시스템과, 이와 유사하게, 검출기, 반전 프리코더, 채널 디코더, 및 오류 정정 코드 디코더를 포함하는 디코더 서브시스템을 포함한다. 오류 정정 인코더는 입력 중인 사용자 비트 스트림에 오류 정정 코드를 적용하고, 변조 인코더는 오류 정정 코딩된 비트 스트림에 소위 변조 또는 제한 코딩을 적용한다. 프리코더는 변조 인코딩된 비트 스트림에 소위 프리코딩을 적용한다. 그러나, 이러한 프리코딩은 비트 스트림의 선택된 부분들에만 적용된다. 프리코더에 의한 프리코딩이 적용되기 전의 변조 인코더 이후에 비트 시퀀스가 치환되는 치환 단계가 존재할 수도 있다. 디코더 서브시스템은 반전 방식으로 동작한다.
데이터 저장 시스템, 오류 정정 코드, 비트 스트림, 치환, 인코더, 디코더, 프리코더, 인코딩, 디코딩, 프리코딩, 변조 코딩

Description

데이터 저장 시스템{DATA STORAGE SYSTEMS}
본 발명은 저장 시스템에 관한 것으로서, 보다 구체적으로는, 데이터를 데이터 저장 시스템에 저장할 때 사용하기 위한 변조 코딩 기술들에 관한 것이다.
업계에 공지되어 있는 바와 같이, 데이터 저장 시스템에서 데이터를 저장할 때, 예를 들어, 데이터 저장을 좀 더 효율적이게 하며 오류들에 덜 민감하도록 하기 위해, 원래의 "미가공(raw)" 사용자 데이터를 "코딩"하는 것이 일반적이다. 통상적으로, 데이터를 저장 매체에 저장할 때 이용되는 3가지 코딩 유형들이 존재한다.
먼저, 원래의 데이터는 통상적으로, 소정 방식으로 압축될 것이다. 이것을 흔히 소스 코딩이라고 한다. 다음 단계는 대부분, 압축된 데이터를 인코딩하여 소정 형태의 오류 보호(error protection)를 제공하는 것이다. 이것은 일반적으로, 데이터에, 나중에 데이터가 판독될 때 오류들을 검출하고 정정하는데 사용될 수 있는 수 개의 바이트들을 추가하는 코딩 프로세스를 수반한다. 이러한 오류 정정 코딩(ECC;error correction coding)의 흔한 예가 리드-솔로몬 코딩(Reed-Solomon coding)이다.
그 다음, 오류 정정 코딩된 데이터에는 통상적으로 추가 인코딩이 가해지는 데, 이러한 추가 인코딩을 일반적으로 "변조 코딩"이라 한다. 이 코딩은 (예를 들어, 3개 이상의 연속적인 "0"들이 존재할 수 없도록) 저장 매체에 기입되는 데이터 시퀀스들에 제한들을 부여하는데 사용되며, "사전 준비(house-keeping)" 목적들, 예를 들어, 타이밍 복구 및 이득 제어를 지원하고 검출기 경로 메모리를 단축하기 위한 목적들을 위해 수행된다. 변조 코딩은 저장 시스템의 성능을 향상시킬 수도 있다(이것의 일례가 자기 및 광 저장 시스템들에서의 (d, k) 코드들의 사용이다).
변조 코딩 이후의 데이터는 부가적으로, 업계에 공지되어 있는 바와 같이, 데이터에 하나 이상의 패리티 비트들(parity bits)을 추가하도록 "패리티" 코딩될 수도 있다. 그 후, 데이터는 저장 매체, 예를 들어, 자기 테이프나 디스크 드라이브 또는 광 디스크에 기입되고 저장될 수 있다.
저장 매체로부터 데이터를 판독하고 원래의 데이터를 복구하는 것은 역진 프로세스(reverse process)이다. 따라서, 예를 들어, 저장 매체로부터 판독된 검출기 출력은 패리티-체크 코드의 소프트-판정 디코딩(soft-decision decoding)을 수행하는 후행-프로세서에 공급된 다음, 변조 디코더가 사용되어 변조 코딩을 반전시키고, 마지막으로 오류 검출 디코더가 사용되어 오류들을 정정하며 (압축된) 원래의 사용자 데이터(에 대한 그것의 추정치)를 전달한다.
업계에 공지되어 있는 바와 같이, 앞서 논의된 변조 코딩 단계는 일반적으로 2가지 단계들을 수반한다. 제 1 단계는 소위, 입력 데이터 스트림의 비트들을 소정의 제한된 출력 비트 정렬로 매핑하는 변조 코딩; 예를 들어, 16비트 입력을 제한된 17비트 출력 데이터 시퀀스로 매핑하는 16/17 코드이다. 이러한 변조 코딩의 예들로는, 소위 런 길이 한정형의 (d, k) 제한 코드들, (G, I) 제한 코드들, 및 최대 전이 런의 (j, k) 제한 코드들과 같은 제한 코드들을 들 수 있다. 다음에서, "변조 코딩"이라는 용어는, 임의의 후속 프리코딩 단계를 제외한, 이런 형태의 제한 코딩 적용을 언급하는데 사용될 것이다(이하 참고).
전반적인 "변조" 코딩 프로세스에서의 제 2 단계는 소위 "프리코딩(precoding)"이다. 프리코딩은 "제한" 코딩된 데이터에 작용하며, 업계에 공지되어 있는 바와 같이, 변조 (제한) 코딩에 의해 데이터 시퀀스에 부여된 제한들의 좀더 단순한 세트를, 예를 들어, 채널 입력에서 데이터 시퀀스에 실제로 부여하고자 하는 제한들의 좀더 크고 복잡한 세트로 효과적으로 변환하거나 전환하도록 동작한다. 예를 들어, 3개 이상의 "0"들이 연속적으로 존재하지 않는다는 앞서 논의된 코딩 "제한"과 관련하여, 프리코딩의 사용은, 그와 같은 비교적 단순한 제한을 4개 이상의 "0"들이 연속적으로 존재할 수 없으며 4개 이상의 "1"들이 연속적으로 존재할 수 없다는 한 쌍의 요구 사항들로 "전환"할 수 있다. 블록 인코더 및 블록 디코더와 같은, 소정의 인코더 및 디코더 구조에 대해, 프리코딩은, 적용되는 변조 코딩의 복잡도를 같은 정도로 증가시킬 필요없이, 좀더 강한 제한들이 데이터 시퀀스에 부여되게 할 수도 있다. 따라서, 프리코딩을 사용하는 것은, 수행되어야 할 변조 코딩을 단순화한다. 사용되는 프리코딩 기술들의 예들로는, 업계에 공지되어 있는 바와 같이, 소위 1/(1
Figure 112006041278091-PCT00001
D2) 및 1/(1
Figure 112006041278091-PCT00002
D) 프리코딩을 들 수 있다(여기에서,
Figure 112006041278091-PCT00003
는 부울 논리 연산 XOR(배타적 OR)를 지시한다).
업계에 공지되어 있는 바와 같이, 변조 코딩 및 프리코딩의 총체적인 목적은, 데이터 신호를, 데이터 신호가 그를 통해 후속적으로 "전송"될 (레코딩) 채널에 적응시키는 것이다. 변조 코딩 및 프리코딩을 포함하여, 코딩에 대한 좀더 일반적인 논의는, 예를 들어, K.A.S. Immink, P.H. Siegel, and J.K.Wolf, "Codes for Digital Recorders", IEEE Trans. Inform. Theory, Vol. 44, pp 2260-2299, Oct. 1998에서 찾아볼 수 있다.
그러나, 프리코딩 사용의 단점은, 저장된 데이터가 판독될 때 오류 전파(error propagation)를 도입하며 오류들을 증가시킬 수 있다는 점이다. 이것은, 업계에 공지되어 있는 바와 같이, 반전 프리코딩 단계에서, 판독된 각각의 단일 저장 비트가 일반적으로, 반전 프리코딩 프로세스의 2개 출력 비트들을 판정하는데 사용되기 때문이다. 따라서, 단일 저장 비트의 오류는 반전 프리코더로부터의 출력에서 2개의 비트 오류들을 발생시킬 수 있다. 그 다음, 이것은 변조 디코딩에서 추가적인 오류 전파를 초래할 수 있고 오류 정정 성능을 열화시킬 수 있다.
본 출원자는, 2002년 6월 7일에 출원된 선행의 유럽 특허출원 제 02012676.9호에서 프리코딩을 사용하지 않는, 즉, 프리코더가 없는(precoderless) 변조 인코딩 기술을 제안하였다. 이 기술에서는 프리코딩이 사용되지 않으므로, 프리코딩으로 인한 오류 전파는 방지된다. 그러나, 프리코딩에 의해 도입되는 이점들이 더 이상 이용될 수 없다. 따라서, 본 출원자는 데이터 저장을 위한 향상된 변조 코딩 기술들이 여전히 필요하다고 생각한다.
따라서, 본 발명의 제 1 태양에 따르면, 입력 비트 시퀀스를 인코딩하는 방법이 제공되는데, 본 방법은 입력 비트 시퀀스의 일부 또는 전부에 변조 코딩을 적용하는 단계; 및 변조 코딩이 적용된 이후의 입력 비트 시퀀스의 선택 부분들 하나 이상을 프리코딩하는 단계를 포함한다.
본 발명의 제 2 태양에 따르면, 입력 비트 시퀀스를 인코딩하기 위한 장치가 제공되는데, 본 장치는 입력 비트 시퀀스의 일부 또는 전부에 변조 코딩을 적용하기 위한 수단; 및 변조 코딩이 적용된 이후의 입력 비트 시퀀스의 선택 부분들 하나 이상을 프리코딩하기 위한 수단을 포함한다.
본 발명의 제 3 태양에 따르면, 변조 인코더로부터 수신되는 데이터 비트들에 프리코딩을 적용하기 위한 프리코더가 제공되는데, 본 프리코더는 변조 인코더로부터 수신되는 데이터 비트들을 선택적으로 프리코딩하기 위한 수단을 포함한다.
본 출원자는, 인코딩될 비트 시퀀스에 대해 좀더 선택적으로 프리코딩을 사용할 수 있으며, 따라서, 전체 입력 비트 시퀀스를 프리코딩할 필요없이, 프리코딩 사용이 유지될 수 있다는 것을 알 수 있었다. 따라서, 입력 비트 시퀀스의 선택 부분들에만 프리코딩이 적용될 수도 있다. 이것은, 적용되는 프리코딩의 양(그리고 그에 따른, 프리코딩으로 인한 오류 전파의 위험 부담)을 감소시키지만, 프리코딩의 사용을 전적으로 제거하지는 않는다. 따라서, 본 발명은, 입력 스트림 모두에 대한 프리코딩("전역적" 프리코딩)을 사용하거나 프리코딩을 전혀 사용하지 않는(프리코더가 없는) 종래 기술의 시스템들에 비해, 선택적(selective) 또는 "국부적(local)" 프리코딩을 효과적으로 사용한다.
일반적으로, 시퀀스의 선택 부분들 하나 이상을 프리코딩하는 것은 이 시퀀스의 모든 부분들이 아니라 하나 이상의 선택 부분들을 프리코딩하는 것으로 해석된다. 이 해석은 후술되는, 대응되는 역진 프로세스 및 장치에도 적용될 수 있다.
프리코딩되는 입력 비트 시퀀스의 부분 또는 부분들은 원하는 바에 따라 선택될 수 있다. 특히 바람직한 실시예에서는, 변조 코딩이 적용되었던 입력 비트 시퀀스 부분들이 프리코딩된다. 이는, 앞서 논의된 바와 같이, 프리코딩이 변조 코딩 프로세스를 보조한다 것이 프리코딩의 이점이기 때문에, 바람직하다. 따라서, 변조 코딩된 입력 비트 시퀀스 부분들을 프리코딩하는 것에 의해, 본 발명의 선택적 프리코딩은, 그것이 가장 유용하게 적용되는 곳에서 사용된다. 프리코딩은, 변조 코딩이 적용된 비트 시퀀스의 부분들 모두에 적용되는 것이 바람직스럽다. 프리코딩은, 변조 코딩이 적용된 비트 시퀀스 부분들에만 적용되는 것이 가장 바람직스럽다.
따라서, 예를 들어, 그 전체가 여기에 참고 문헌으로써 포함되어 있는 미국 특허 제 5,604,497호 및 제 5,784,010호에서 설명된 바와 같이, 변조 코딩이 입력 비트 시퀀스의 일부에만 적용되는(즉, 변조 코딩 이후에, 비트 시퀀스가 일부의 변조 코딩된 비트들 및 변조 코딩되지 않은(즉, 변조 코딩을 변화없이 통과하는) 일부 비트들을 포함하는 시스템에서, 프리코딩은 비코딩 비트들(uncoded bits)이 아니라 변조 코딩된 비트들(modulation coded bits)에만 적용되는 것이 바람직스럽다. 다시 말해, 특별히 바람직한 실시예에서, 프리코딩의 적용을 제어하는 기준은, (가장 바람직스럽기로는) 인코딩된 비트들은 프리코딩되고 비코딩 비트들(즉, 변조 인코더에 의해 변경되지 않은 비트들)은 프리코딩되지 않도록, 변조 인코더의 출력에서 비트가 인코딩되거나 인코딩되지 않는 것이다. 이것은, 데이터가 판독될 때 비변조 코딩 비트들에 대해 반전 프리코딩을 수행해야 할 필요성을 없앰으로써, 오류 전파를 감소시키고 오류율 성능(error rate performance)을 향상시킨다. 따라서, 본 발명의 바람직한 구성은, 그것이 (소정의 비트 시퀀스 또는 블록, 예를 들어, 코드워드(codeword)내의) 무작위 데이터에 대해 또는 변조 인코딩된 데이터에 대해 작용하는지에 따라 턴온 및 턴오프되는 프리코더이다.
이러한 구성들은 당연히 새롭고 유용할 수 있을 것으로 생각된다. 따라서, 본 발명의 제 4 태양에 따르면, 비트 시퀀스를 인코딩하는 방법이 제공되는데, 본 방법은, 입력 비트 시퀀스의 선택된 부분 또는 부분들에 변조 코딩을 적용하는 단계; 및 변조 코딩되지 않은 임의의 데이터 비트들을 프리코딩하는 것이 아니라, 변조 코딩에 의해 인코딩된 데이터 비트들에 프리코딩을 적용하는 단계를 포함한다.
본 발명의 제 5 태양에 따르면, 비트 시퀀스를 인코딩하기 위한 장치가 제공되는데, 본 장치는, 비트 시퀀스의 선택된 부분 또는 부분들에 변조 코딩을 적용하기 위한 수단; 및 변조 코딩되지 않은 임의의 데이터 비트들을 프리코딩하는 것이 아니라, 변조 코딩에 의해 인코딩된 데이터 비트들에 프리코딩을 적용하기 위한 수단을 포함한다.
본 발명의 제 6 태양에 따르면, 변조 인코더로부터 수신되는 데이터 비트들에 프리코딩을 적용하기 위한 프리코더가 제공되는데, 본 프리코더는, 수신되는 데이터 비트들이 변조 인코더에 의해 변조 코딩되었는지의 여부에 기초해, 변조 인코더로부터 수신되는 데이터 비트들을 선택적으로 프리코딩하기 위한 수단을 포함한다.
시퀀스 중 하나 이상의 선택 부분들을 변조 코딩하는 것은 이 시퀀스의 모든 부분들이 아니라 하나 이상의 선택 부분들을 변조 코딩하는 것으로 해석된다. 이 해석은 후술되는, 대응되는 역진 프로세스 및 장치에도 적용될 수 있다.
프리코딩은, 기존의 1/(1
Figure 112006041278091-PCT00004
D) 또는 1/(1
Figure 112006041278091-PCT00005
D2) 프리코딩 방식들을 사용하는 것에 의한 것과 같이, 임의의 적합한 방식으로 수행될 수 있다. 당업자들이라면 알 수 있는 바와 같이, 사용하기 위한 실제의 프리코딩 방식은, 예를 들어, 사용되고 있는 변조 코딩 기술에 의존할 수 있다. 프리코더는 통상적으로, 메모리를 갖춘 선형 회로로서 구현될 것이다.
본 발명에서 사용되는 변조 코딩은 이러한 코딩, 즉, 입력 데이터를 제한하는 임의의 적당한 형태일 수 있다. 따라서, 예를 들어, 공지의 (d, k), (G, I), 및 MTR (j, k) 코드들이 사용될 수 있다. 변조 코딩은 입력 비트 시퀀스의 모든 비트들에 또는 (예를 들어, 미국특허 제 5,604,497호 및 제 5,784,010호에서 설명된 바와 같이) 입력 비트 시퀀스의 선택된 비트들(즉, 부분들, 예를 들어, 바이트들)에만 적용될 수도 있다. 특히 바람직한 실시예에서는, 변조 코딩이, 입력 비트 시퀀스(예를 들어, 블록 또는 코드워드)의 선택된 부분들에만 적용된다.
변조 인코딩의 출력은, 그것이 변조 인코더로부터 출력됨에 따라, 예를 들어, 선형 방식으로, 선택적 프리코딩 단계에 제공될 수 있다. 그러나, 특별히 바람직한 실시예에서, 변조 인코딩 단계로부터 출력되는 비트들의 데이터 시퀀스에서의 위치들은 변경된다. 변조 코딩된 비트들은 데이터 시퀀스 전체에 걸쳐 분산되는 것이 가장 바람직하고, (변조 코딩된 비트들이 재분산되지 않는다면, 예를 들어, 비트 시퀀스에서의 최대 갭이 비트들의 변조 코딩된 그룹들 사이에서 더 작아질 수 있도록 (그리고/또는 갭들이 좀더 균등해질 수 있도록)) 변조 코딩된 비트들은 데이터 시퀀스의 소정 블록에서 좀더 균등하게 간격을 유지하는 것이 가장 바람직하다.
따라서, 바람직한 실시예에서, 변조 코딩 단계로부터의 출력은, 프리코딩이 적용되기 전에 치환(permutation)된다(즉, 비트들의 순서는 뒤바뀌고; 입력 데이터 시퀀스의 비트 위치들은 교체된다). 이러한 치환은, 예를 들어, 원래의 입력 데이터 시퀀스에서 인접한 비트들 또는 비트들의 블록들이 균등한 간격을 유지하도록 처리될 수 있다.
변조 코딩된 데이터 비트들을 프리코딩에 앞서 분산하거나 치환하는 것의 이점은, 이러한 분산(예를 들어, 치환)이 타이밍 복구 요구 사항들 등을 부가적으로 지원하는 것으로 밝혀졌다는 점이다. 따라서, 예를 들어, 입력 비트 시퀀스의 선택 부분들만이 변조 코딩되는 구성에서, 본 발명의 특별히 바람직한 실시예라면, 비트 시퀀스의 변조 코딩된 부분들은 복수개 (더 작은) 조각들로 분할되는데, 다음으로, 이 조각들은, 예를 들어, 이 조각들이 간격을 유지하도록 그리고/또는 이 조각들을 재정렬하도록, 즉, 코딩된 데이터의 "조각들"이 비코딩(비변조 코딩) 비트들 뿐만 아니라 변조 코딩 단계 이후의 출력 사이에서 분산되도록, 비트 시퀀스에서의 위치로 이동된다. 다음으로, 프리코딩 단계는 바람직스럽게도, "치환된" 비트 시퀀스의 변조 코딩된 비트들을 선택적으로 프리코딩할 것이다.
본 출원자는 또한, 변조 인코딩 후에 출력되는 비트들의 데이터 시퀀스에서의 위치들을, 프리코딩하기 전에 이동(변경)하는 것이 (비트 분산 패턴의 적절한 선택에 의해), 예를 들어, 변조 코딩된 데이터 시퀀스의 소정 부분들을 데이터 시퀀스의 특정한 소정 위치들에 배치할 수 있게 한다는 것도 알 수 있었다. 특히, 예를 들어, 변조 코딩된 비트들은, 예를 들어, 사용되는 오류 정정 코딩 및 변조 코딩 방식에 상관없이, 프리코더에서 봤을 때, 비트 시퀀스의 동일한 위치들에 효과적으로 배치될 수 있다.
따라서, 예를 들어, 적합한 변조 코딩 비트의 분산 또는 치환 방식을 사용하는 것에 의해, 동일한, 미변경의, 소위 "내부 채널"(즉, 프리코더, 기입/판독 단계들, 검출기, 및 반전 프리코더) 정렬이 상이한 외부의 오류 정정 코딩 프로세스들에 사용될 수 있다(즉, "내부 채널"이, 외부의 상이한 오류 정정 코딩 프로세스들과 동작할 수 있기 위해, 변경될 필요는 없다). 따라서, 예를 들어, 리드-솔로몬 코딩이 사용될 경우, 앞서 논의된 "치환"의 사용은 동일한 "내부 채널"(및 변조 코딩 방식)이 상이한 리드-솔로몬 코드 심볼 사이즈들을 위해 사용될 수 있게 한다.
이 사실은, 오늘날 외부의 리드-솔로몬 오류 정정 코드들이 대부분 8-비트 심볼들에 기초하기는 하지만, (약 0.3dB의 성능 이득을 제공하는) 10비트 리드-솔로몬 심볼들을 사용하기 위한 움직임이 존재하기 때문에, 특히 유용하다. 따라서, 8-비트 또는 10-비트 리드-솔로몬 코드들과 동작할 수 있는 시스템을 제공하는 것이 바람직할 것이다. 본 발명은 변조 코딩의 출력을 "치환"하는 것에 의해 이것을 용이하게 하는데, 이는, 동일한 "내부 채널"이 2가지 상이한 리드-솔로몬 심볼 사이즈들에 사용될 수 있게 한다.
데이터 저장 시스템들에서 변조 디코더의 출력을 재정렬 또는 치환하는 것은 이미 공지의 사실일 수 있지만, 본 출원자는, 이용될 "외부" 또는 오류 정정 코드들과 관련하여 이러한 재정렬 또는 치환을 수행한다는 아이디어는 당연히 새롭고 유용할 수도 있다고 생각한다. 따라서, 본 발명의 제 7 태양에 따르면, 저장을 위해 데이터 시퀀스를 인코딩하는 방법이 제공되는데, 본 방법은, 데이터 시퀀스를 오류 정정 코딩하는 단계; 오류 정정 코딩된 데이터 시퀀스의 전부 또는 일부를 변조 인코딩하는 단계; 및 데이터 시퀀스를 오류 정정 코딩하는데 사용된 오류 정정 코드에 기초해, 변조 인코딩하는 단계 이후의 데이터 시퀀스에서 변조 코딩된 비트들의 위치들을 변경하는 단계를 포함한다.
본 발명의 제 8 태양에 따르면, 저장을 위해 데이터 시퀀스를 인코딩하기 위한 장치가 제공되는데, 본 장치는, 데이터 시퀀스를 오류 정정 코딩하기 위한 수단; 오류 정정 코딩된 데이터 시퀀스의 전부 또는 일부를 변조 인코딩하기 위한 수단; 및 데이터 시퀀스를 오류 정정 코딩하는데 사용된 오류 정정 코드에 기초해, 변조 인코딩하는 단계 이후의 데이터 시퀀스에서 변조 코딩된 비트들의 위치들을 변경하기 위한 수단을 포함한다.
본 발명의 제 9 태양에 따르면, 저장을 위해 데이터 시퀀스를 인코딩하는 방법이 제공되는데, 본 방법은, 데이터 시퀀스를 오류 정정 코딩하는 단계; 오류 정정 코딩된 데이터 시퀀스의 전부 또는 일부를 변조 인코딩하는 단계; 및 데이터 시퀀스를 프리코딩하는데 사용될 프리코딩에 기초해, 변조 인코딩하는 단계 이후의 데이터 시퀀스에서 변조 코딩된 비트들의 위치들을 변경하는 단계를 포함한다.
본 발명의 제 10 태양에 따르면, 저장을 위해 데이터 시퀀스를 인코딩하기 위한 장치가 제공되는데, 본 장치는, 데이터 시퀀스를 오류 정정 코딩하기 위한 수단; 오류 정정 코딩된 데이터 시퀀스의 전부 또는 일부를 변조 인코딩하기 위한 수단; 및 데이터 시퀀스를 프리코딩하는데 사용될 프리코딩에 기초해, 변조 인코딩하는 단계 이후의 데이터 시퀀스에서 변조 코딩된 비트들의 위치들을 변경하기 위한 수단을 포함한다.
본 발명의 이들 태양들에서, 변조 코딩된 비트 시퀀스는, 사용되는 오류 정정 코딩 방식(예를 들어, 리드-솔로몬 코딩 심볼 사이즈) 또는 "내부 채널"(예를 들어, 프리코딩 방식)에 따라 선택되어 사용되는 (치환) 방식에 의해, 변조 코딩 단계 이후에 재정렬(치환)된다. (당업자들이라면 알 수 있는 바와 같이, 변조 코딩 방식 또한 통상적으로, 데이터 시퀀스를 오류 정정 코딩하는데 사용되는 오류 정정 코드에 기초해 선택될 것이다.)
본 발명의 이러한 태양들 및 실시예들은 여기에서 설명되는 본 발명의 바람직한 그리고 선택적인 사양들 중 하나 이상을 또는 전부를 포함할 수 있다. 따라서, 본 발명의 이러한 태양들 및 실시예들은 바람직스럽게도, 예를 들어, "치환"이 발생한 후에, 데이터를 선택적으로 또는 국부적으로 프리코딩하는 추가 단계를 포함한다. 원한다면, 이 기술을 프리코더가 없는 시스템에서도 사용할 수 있을 것이다.
변조 코딩 및 선택적 프리코딩 단계들 뿐만 아니라, 본 발명은 데이터를 저장을 위해 코딩할 때 통상적으로 이용되는, 예를 들어, 변조 코딩 이전에 (리드-솔로몬 코드와 같은) 오류 정정 코딩을 적용하는 프로세스 및 국부적 프리코딩 단계 이후에 (즉, 데이터가 저장 매체에 기입되기 바로 전에) 데이터 비트들을 패리티 코딩하는 프로세스와 같은, 다른 프로세스들 중 하나 이상을 포함할 수도 있다.
또한, 본 발명은 저장 매체로부터 데이터를 판독한 다음 코딩을 제거하여 원래의 사용자 데이터를 복구하는 반전 프로세스에도 적용될 수 있다. 따라서, 이러한 프로세스에서, 반전 프리코딩은, 데이터가 저장될 때 프리코딩이 적용된 경우에만 적용될 것이다.
따라서, 본 발명의 제 11 태양에 따르면, 저장 매체로부터 판독되는 비트 시퀀스를 디코딩하는 방법이 제공되는데, 본 방법은, 판독 비트 시퀀스의 선택 부분들 하나 이상을 반전 프리코딩하는 단계; 및 반전 프리코딩이 적용된 후의 판독 비트 시퀀스의 일부 또는 전부에 변조 디코딩을 적용하는 단계를 포함한다.
본 발명의 제 12 태양에 따르면, 저장 매체로부터 판독되는 비트 시퀀스를 디코딩하기 위한 장치가 제공되는데, 본 장치는, 판독 비트 시퀀스의 선택 부분들 하나 이상을 반전 프리코딩하기 위한 수단; 및 반전 프리코딩이 적용된 후의 판독 비트 시퀀스의 일부 또는 전부에 변조 디코딩을 적용하기 위한 수단을 포함한다.
본 발명의 제 13 태양에 따르면, 저장 매체로부터 판독되는 데이터 비트들에 반전 프리코딩을 적용하기 위한 반전 프리코더가 제공되는데, 본 반전 프리코더는, 저장 매체로부터 판독되는 데이터 비트들을 선택적으로 반전 프리코딩하기 위한 수단을 포함한다.
본 발명의 제 14 태양에 따르면, 저장 매체로부터 판독되는 비트 시퀀스를 디코딩하는 방법이 제공되는데, 본 방법은, 변조 코딩되지 않은 임의의 데이터 비트들을 반전 프리코딩하는 것이 아니라, 변조 코딩에 의해 인코딩된 판독 데이터 비트들에 반전 프리코딩을 적용하는 단계; 및 변조 인코딩된 판독 비트 시퀀스의 부분 또는 부분들에 변조 디코딩을 적용하는 단계를 포함한다.
본 발명의 제 15 태양에 따르면, 저장 매체로부터 판독되는 비트 시퀀스를 디코딩하기 위한 장치가 제공되는데, 본 장치는, 변조 코딩되지 않은 임의의 데이터 비트들을 반전 프리코딩하는 것이 아니라, 변조 코딩에 의해 인코딩된 판독 데이터 비트들에 반전 프리코딩을 적용하기 위한 수단; 및 변조 인코딩된 판독 비트 시퀀스의 부분 또는 부분들에 변조 디코딩을 적용하기 위한 수단을 포함한다.
본 발명의 제 16 태양에 따르면, 저장 매체로부터 판독되는 데이터 비트들에 반전 프리코딩을 적용하기 위한 반전 프리코더가 제공되는데, 본 반전 프리코더는, 판독 데이터 비트들이 변조 인코더에 의해 변조 코딩되었는지의 여부에 기초해, 저장 매체로부터 판독되는 데이터 비트들을 선택적으로 반전 프리코딩하기 위한 수단을 포함한다.
본 발명의 제 17 태양에 따르면, 저장 매체로부터 판독되는 데이터 시퀀스를 디코딩하는 방법이 제공되는데, 본 방법은, 판독 데이터 시퀀스에서 비트들의 위치들을 변경하는 단계; 재정렬된 데이터 시퀀스의 전부 또는 일부를 변조 디코딩하는 단계; 및 변조 디코딩 단계 이후의 데이터 시퀀스를 오류 정정 디코딩하는 단계를 포함하고, 이 경우, 판독 데이터 시퀀스에서 비트들의 위치들을 변경하는 단계는 데이터 시퀀스를 오류 정정 코딩하는데 사용되는 오류 정정 코드에 기초한다.
본 발명의 제 18 태양에 따르면, 저장 매체로부터 판독되는 데이터 시퀀스를 디코딩하기 위한 장치가 제공되는데, 본 장치는, 판독 데이터 시퀀스에서 비트들의 위치들을 변경하기 위한 수단; 재정렬된 데이터 시퀀스의 전부 또는 일부를 변조 디코딩하기 위한 수단; 및 변조 디코딩 단계 이후의 데이터 시퀀스를 오류 정정 디코딩하기 위한 수단을 포함하고, 이 경우, 판독 데이터 시퀀스에서 비트들의 위치들을 변경하는 단계는 데이터 시퀀스를 오류 정정 코딩하는데 사용되는 오류 정정 코드에 기초한다.
본 발명의 제 19 태양에 따르면, 저장 매체로부터 판독되는 데이터 시퀀스를 디코딩하는 방법이 제공되는데, 본 방법은, 판독 데이터 시퀀스에서 비트들의 위치들을 변경하는 단계; 재정렬된 데이터 시퀀스의 전부 또는 일부를 변조 디코딩하는 단계; 및 변조 디코딩 단계 이후의 데이터 시퀀스를 오류 정정 디코딩하는 단계를 포함하고, 이 경우, 판독 데이터 시퀀스에서 비트들의 위치들을 변경하는 단계는 데이터 시퀀스를 반전 프리코딩하는데 사용될 반전 프리코딩에 기초한다.
본 발명의 제 20 태양에 따르면, 저장 매체로부터 판독되는 데이터 시퀀스를 디코딩하기 위한 장치가 제공되는데, 본 장치는, 판독 데이터 시퀀스에서 비트들의 위치들을 변경하기 위한 수단; 재정렬된 데이터 시퀀스의 전부 또는 일부를 변조 디코딩하기 위한 수단; 및 변조 디코딩 단계 이후의 데이터 시퀀스를 오류 정정 디코딩하기 위한 수단을 포함하고, 이 경우, 판독 데이터 시퀀스에서 비트들의 위치들을 변경하는 단계는 데이터 시퀀스를 반전 프리코딩하는데 사용될 반전 프리코딩에 기초한다.
본 발명의 이들 태양들 및 실시예들은, 당업자들이라면 알 수 있는 바와 같이, 본 발명에 대한 선행의 바람직한 그리고 선택적인 사양들 중 하나 이상을 또는 전부를 적합하게 (예를 들어, 인코딩 프로세스에서는 그들의 적용에 적합한 "반전" 형태로) 포함할 수 있다.
본 발명은 저장 장치들과 시스템들 및 소프트웨어에 적용될 수 있으며, 일반적으로, 데이터 기록 방법들 및 코드들에도 적용될 수 있다. 본 발명은 특히, 자기 테이프 드라이브들 및 하드 디스크 드라이브들과 같은 자기 저장 시스템들에도 적용될 수 있지만, 이에 한정되는 것은 아니다. 본 발명은, 예를 들어, 광학적 데이터 저장 시스템들에서도 사용될 수 있다. 따라서, 본 발명은 서버, 데스크탑, 및 모바일 드라이브들에도 적용될 수 있을 것이다.
본 발명은 임의의 적합한 데이터 저장 시스템에서 그리고 그를 위해 사용될 수 있다. 당업자들이라면 알 수 있는 바와 같이, 그러한 사용시에, 본 발명의 바람직한 실시예들에서는, 저장될 입력 사용자 데이터의 적어도 일부는 통상적으로, 소정 방식으로 먼저 압축되거나 소스 코딩된 다음, 일정한 사이즈의 부분들 또는 코드워드들로 분할되고, (리드-솔로몬 코딩과 같은) 오류 정정 코딩의 소정 형태가 적용된다. 그 다음, 후속 단계는 오류 정정 코딩된 비트 시퀀스의 전부 또는 일부에 변조 (제한) 코딩을 적용하는 단계일 것이다. 그 다음, 비트 시퀀스는 (앞서 논의된 바와 같이) 필요하다면 치환될 수 있고, 다음으로는, 비트 시퀀스의 선택된 부분들에 (바람직스럽기로는, 변조 코딩된 부분들에만) "국부적" 프리코딩이 적용될 것이다. 마지막으로, 데이터가 저장을 위해 저장 매체에 기입되기 전에, 소수의 패리티 비트들이 추가될 수도 있다. (당업자들이라면 알 수 있는 바와 같이, 상기 단계들의 순서는 원한다면 변경될 수 있다(그리고 단계들 중 하나 이상이 누락될 수도 있다). 예를 들어, 일부 시스템들에서는, 오류 정정 코딩 단계 이전에 변조 코딩의 소정 형태를 적용하는 것이 공지되어 있다.) 저장 매체로부터 데이터를 판독하고 원래의 사용자 데이터를 복구하는 것은 역진 프로세스이다.
또한, 본 발명은 본 발명에 따라 데이터 시퀀스들을 준비하고 저장하는 것으로도 확대된다. 따라서, 본 발명의 제 21 태양에 따르면, 데이터 시퀀스의 하나 이상 부분들이 변조 코딩되었으며 데이터 시퀀스의 모든 부분들은 아닌 하나 이상 부분들에 프리코딩이 가해진 오류 정정 코딩된 데이터 시퀀스가 제공된다.
이번에도, 이 데이터 시퀀스는 여기에서 논의되는 본 발명의 바람직한 그리고 선택적인 사양들 중 하나 이상을 또는 전부를 포함할 수 있다. 따라서, 예를 들어, 하나 이상의 패리티 비트들을 더 포함하는 것이 바람직하고, 변조 코딩된 부분 또는 부분들은 데이터 시퀀스에 걸쳐 치환되는 것(즉, 데이터 시퀀스에서 구분되는 더 작은 조각들로 분할되는 것)이 바람직하다.
또한, 본 발명은 본 발명의 상기 장치 및 방법들 중 어느 하나를 포함하거나 사용하는 그리고/또는 본 발명에 따라 데이터 시퀀스들을 저장하는 데이터 저장 시스템들로도 확대된다.
본 발명에 따른 방법들은 소프트웨어, 예를 들어, 컴퓨터 프로그램들을 적어도 부분적으로 사용해 구현될 수도 있다. 따라서, 추가 태양들로부터 살펴볼 때, 본 발명은 데이터 프로세싱 수단에 설치될 경우 여기에서 앞서 설명된 방법들을 수행하도록 특별히 적응되어 있는 컴퓨터 소프트웨어 및, 컴퓨터 프로그램 요소로서, 데이터 프로세싱 수단에서 실행될 경우 여기에서 앞서 설명된 방법들을 수행하기 위한 컴퓨터 소프트웨어 코드 부분들을 포함하는 컴퓨터 프로그램 요소를 제공한다는 것을 알 수 있을 것이다. 또한, 본 발명은, 데이터 프로세싱 수단을 포함하는 데이터 인코딩 및/또는 디코딩 시스템 또는 데이터 저장 시스템을 조작하는데 사용될 경우, 상기 데이터 프로세싱 수단과 함께, 상기 시스템으로 하여금 본 발명의 방법 단계들을 수행하게 하는 소프트웨어를 포함하는 컴퓨터 소프트웨어 캐리어로도 확대된다. 이러한 컴퓨터 소프트웨어 캐리어는, ROM 칩, CD ROM 또는 디스크와 같은, 물리적 저장 매체이거나, 와이어상의 전자 신호, 광 신호, 또는 위성 등으로의 무선 신호와 같은, 신호일 수 있다.
본 발명의 방법에 대한 모든 단계들이 컴퓨터 소프트웨어에 의해 수행될 필요는 없으며, 따라서, 좀더 광범위한 관점에서, 본 발명은 여기에서 앞서 설명된 방법들의 단계들 중 하나 이상을 수행하기 위한 컴퓨터 소프트웨어 및 이러한 소프트웨어가 설치되어 있는 컴퓨터 소프트웨어 캐리어를 제공한다는 것도 알 수 있을 것이다.
따라서, 본 발명은 컴퓨터 시스템에 사용하기 위한 컴퓨터 프로그램 제품으로서 적절하게 구현될 수도 있다. 이러한 구현은, 컴퓨터 판독 가능 매체, 예를 들어, 디스켓, CD-ROM, ROM, 또는 하드 디스크와 같은, 유형의 매체에 고정되어 있거나, 광 또는 유사한 통신 라인들을 포함하지만 이에 한정되는 것은 아닌, 유형의 매체를 통해 또는, 전자파, 적외선 또는 다른 전송 기술들을 포함하지만 이에 한정되는 것은 아닌, 무선 기술들을 무형적으로 사용해, 모뎀 또는 다른 인터페이스 장치를 경유하여, 컴퓨터 시스템으로 전송 가능한 일련의 컴퓨터 판독 가능 명령어들을 포함할 수도 있다. 일련의 컴퓨터 판독 가능 명령어들은 여기에서 앞서 설명된 기능의 전부 또는 일부를 구현한다.
당업자들이라면, 이러한 컴퓨터 판독 가능 명령어들이 다수의 컴퓨터 아키텍처들 또는 오퍼레이팅 시스템들에 사용하기 위한 다수의 프로그래밍 언어들로 기재될 수 있다는 것을 알 수 있을 것이다. 또한, 이러한 명령어들은, 반도체, 자기 또는 광을 포함하지만 이에 한정되는 것은 아닌, 현재 또는 미래의, 임의의 메모리 기술을 사용해 저장되거나, 광, 적외선, 또는 전자파를 포함하지만 이에 한정되는 것은 아닌, 현재 또는 미래의, 임의의 통신 기술을 사용해 전송될 수도 있다. 이러한 컴퓨터 프로그램 제품은 인쇄된 문서 또는 전자 문서가 수반되는 분리형 매체, 예를 들어, 컴퓨터 시스템, 예를 들어, 시스템 ROM 또는 고정 디스크에 미리 설치되어 있는, 수축 포장된 소프트웨어로서 배포되거나, 예를 들어, 인터넷 또는 월드 와이드 웹을 통해 서버 또는 전자 게시판으로부터 배포될 수 있다고 생각된다.
이하에서는, 본 발명의 바람직한 다수 실시예들이, 첨부 도면들을 참조하 여, 단지 일례로써 설명될 것이다.
도 1은 데이터 저장 시스템을 개략적으로 나타낸다.
도 2는 본 발명에 따른 데이터 저장 시스템의 실시예를 개략적으로 나타낸다.
도 3은 본 발명의 실시예에 따른 데이터 인코딩 프로세스를 개략적으로 나타낸다.
도 4는, 본 발명의 제 1 실시예에 따른, 8-비트 오류 정정 코드를 위한 레이트 96/100 인코더(rate 96/100 encoder)를 개략적으로 나타낸다.
도 5는 도 3의 인코더에 대응되는 레이트 96/100 디코더를 개략적으로 나타낸다.
도 6은, 본 발명의 제 2 실시예에 따른, 8-비트 오류 정정 코드를 위한 레이트 96/102 인코더를 개략적으로 나타낸다.
도 7은, 도 6의 인코더에 대응되는 레이트 96/102 디코더를 개략적으로 나타낸다.
도 8은, 본 발명의 제 3 실시예에 따른, 10-비트 오류 정정 코드(2개의 패리티 비트들)를 위한 레이트 96/100 인코더의 단계(Phase) 0를 개략적으로 나타낸다.
도 9는, 본 발명의 제 3 실시예에 따른, 10-비트 오류 정정 코드(2개의 패리티 비트들)를 위한 레이트 96/100 인코더의 단계 1을 개략적으로 나타낸다.
도 10은, 본 발명의 제 3 실시예에 따른, 10-비트 오류 정정 코드(2개의 패리티 비트들)를 위한 레이트 96/100 인코더의 단계 2를 개략적으로 나타낸다.
도 11은, 본 발명의 제 3 실시예에 따른, 10-비트 오류 정정 코드(2개의 패리티 비트들)를 위한 레이트 96/100 인코더의 단계 3을 개략적으로 나타낸다.
도 12는, 본 발명의 제 3 실시예에 따른, 10-비트 오류 정정 코드(2개의 패리티 비트들)를 위한 레이트 96/100 인코더의 단계 4을 개략적으로 나타낸다.
도 13은, 도 7 내지 도 11의 인코더에 대응되는, 10-비트 오류 정정 코드(2개의 패리티 비트들)를 위한 레이트 96/100 디코더의 단계 0를 개략적으로 나타낸다.
도 14는, 도 7 내지 도 11의 인코더에 대응되는, 10-비트 오류 정정 코드(2개의 패리티 비트들)를 위한 레이트 96/100 디코더의 단계 1을 개략적으로 나타낸다.
도 15는, 도 7 내지 도 11의 인코더에 대응되는, 10-비트 오류 정정 코드(2개의 패리티 비트들)를 위한 레이트 96/100 디코더의 단계 2를 개략적으로 나타낸다.
도 16은, 도 7 내지 도 11의 인코더에 대응되는, 10-비트 오류 정정 코드(2개의 패리티 비트들)를 위한 레이트 96/100 디코더의 단계 3을 개략적으로 나타낸다.
도 17은, 도 7 내지 도 11의 인코더에 대응되는, 10-비트 오류 정정 코드(2개의 패리티 비트들)를 위한 레이트 96/100 디코더의 단계 4를 개략적으로 나타낸다.
도 18은, 본 발명의 제 4 실시예에 따른, 10-비트 오류 정정 코드(4개의 패 리티 비트들)를 위한 레이트 96/102 인코더의 단계 0를 개략적으로 나타낸다.
도 19는, 본 발명의 제 4 실시예에 따른, 10-비트 오류 정정 코드(4개의 패리티 비트들)를 위한 레이트 96/102 인코더의 단계 1을 개략적으로 나타낸다.
도 20은, 본 발명의 제 4 실시예에 따른, 10-비트 오류 정정 코드(4개의 패리티 비트들)를 위한 레이트 96/102 인코더의 단계 2를 개략적으로 나타낸다.
도 21은, 본 발명의 제 4 실시예에 따른, 10-비트 오류 정정 코드(4개의 패리티 비트들)를 위한 레이트 96/102 인코더의 단계 3을개략적으로 나타낸다.
도 22는, 본 발명의 제 4 실시예에 따른, 10-비트 오류 정정 코드(4개의 패리티 비트들)를 위한 레이트 96/102 인코더의 단계 4를 개략적으로 나타낸다.
도 23은, 도 18 내지 도 22의 인코더에 대응되는, 10-비트 오류 정정 코드(4개의 패리티 비트들)를 위한 레이트 96/102 디코더의 단계 0를 개략적으로 나타낸다.
도 24는, 도 18 내지 도 22의 인코더에 대응되는, 10-비트 오류 정정 코드(4개의 패리티 비트들)를 위한 레이트 96/102 디코더의 단계 1을 개략적으로 나타낸다.
도 25는, 도 18 내지 도 22의 인코더에 대응되는, 10-비트 오류 정정 코드(4개의 패리티 비트들)를 위한 레이트 96/102 디코더의 단계 2를 개략적으로 나타낸다.
도 26은, 도 18 내지 도 22의 인코더에 대응되는, 10-비트 오류 정정 코드(4개의 패리티 비트들)를 위한 레이트 96/102 디코더의 단계 3을 개략적으로 나타낸 다.
도 27은, 도 18 내지 도 22의 인코더에 대응되는, 10-비트 오류 정정 코드(4개의 패리티 비트들)를 위한 레이트 96/102 디코더의 단계 4를 개략적으로 나타낸다.
도 28은 본 발명의 일 실시예에 따른 레이트 100/104 인코더(2개의 패리티 비트들)를 개략적으로 나타낸다.
도 29는 본 발명의 일 실시예에 따른 레이트 100/104 디코더(2개의 패리티 비트들)를 개략적으로 나타낸다.
도 30은 본 발명의 일 실시예에 따른 레이트 100/106 인코더(4개의 패리티 비트들)를 개략적으로 나타낸다.
도 31은 본 발명의 일 실시예에 따른 레이트 100/106 디코더(4개의 패리티 비트들)를 개략적으로 나타낸다.
도 32는 본 발명의 일 실시예에 따른 레이트 64/66 인코더(1개의 패리티 비트)를 개략적으로 나타낸다.
도 33은 본 발명의 일 실시예에 따른 레이트 64/66 디코더(1개의 패리티 비트)를 개략적으로 나타낸다.
도 34는 본 발명의 일 실시예에 따른 레이트 60/62 인코더(1개의 패리티 비트)를 개략적으로 나타낸다.
도 35는 본 발명의 일 실시예에 따른 레이트 60/62 디코더(1개의 패리티 비트)를 개략적으로 나타낸다.
도 36은 본 발명의 일 실시예에 따른 레이트 100/108 블록 인코더의 20/21-기반 모듈러 구조(20/21-based modular structure)를 나타낸다.
도 37은 본 발명의 일 실시예에 따른 레이트 100/108 블록 인코더를 나타낸다.
도 38은 본 발명의 일 실시예에 따른 레이트 100/108 블록 인코더의 20/21-기반 모듈러 구조를 나타낸다.
도 39는 본 발명의 일 실시예에 따른 레이트 100/108 블록 디코더를 나타낸다.
도 1은, 본 발명이 적용될 수 있는 유형의 데이터 저장 시스템의 개략도이다. 데이터 저장 시스템은 레코딩 채널(3)의 (예를 들어, 하드 디스크 드라이브, 자기 테이프 드라이브, 광 디스크 등일 수 있는) 저장 매체(40)에 기입될 입력 기입 데이터를 인코딩하기 위한 인코더 서브시스템(1) 및 (원래의 사용자 기입 데이터를 복제해야 할) 판독 데이터를 발생시키기 위해 레코딩 채널(3)로부터 검출되는 신호를 디코딩하기 위한 디코더 서브시스템(2)을 포함한다. 이러한 데이터 저장 시스템은 원하는 바에 따라 구현될 수 있다. 예를 들어, 인코더 서브시스템(1) 및 디코더 서브시스템(2)은 하나의 ASIC(application specific integrated circuit)으로서 구현될 수도 있다.
도 2는, 본 발명에 따른, 도 1에 도시된 유형의 데이터 저장 시스템의 바람직한 실시예를 개략적으로 나타낸다. 도 2에 도시된 실시예에서, 인코더 서브시스 템(1)은 (이 예에서, RS(리드-솔로몬) 인코더 형태의) 오류 정정 코드 인코더(11), 변조 인코더(12), 및 프리코더(13)를 포함한다. 디코더 서브시스템(2)은 유사하게, 검출기(14), 반전 프리코더(15), 채널 디코더(16), 및 (상응하여, RS(리드-솔로몬) 디코더 형태의) 오류 정정 코드 디코더(17)를 포함한다.
이 실시예에서, 오류 정정 인코더(11)는 입력 중인 사용자 비트 스트림에 오류 정정 코드를 적용하고, 예를 들어, 입력 중인 사용자 비트 스트림을, 8-비트 바이트들과 같은, 심볼들의 시퀀스로 변환한다. 본 실시예에서는, 리드-솔로몬 오류 정정 코드가 사용되지만, 다른 오류 정정 코드들이 사용될 수도 있다.
변조 인코더(12)는 소위 변조 또는 제한 코딩을 오류 정정 코딩된 비트 스트림에 적용한다. 이러한 변조 인코딩은, 예를 들어, (d, k), (G, I), 또는 MTR(j, k) 코딩을 포함할 수 있다. 다음에서 부연되는 바와 같이, 본 실시예들에서, 변조 코딩은 비트 스트림의 선택된 부분들에만 적용된다.
프리코더(13)는 변조 인코딩된 비트 스트림에 소위 프리코딩을 적용한다. 이러한 프리코딩은 변조 인코더(12) 출력에서의 전이들을 레코딩 채널(30)에서의 레코딩에 적합한 레벨들로 변환한다. 앞서 논의된 바와 같이 그리고 다음에서 부연되는 바와 같이, 이러한 프리코딩은 비트 스트림의 선택된 부분들에만 적용된다. 프리코딩은, 예를 들어, 1/(1
Figure 112006041278091-PCT00006
D) 또는 1/ (1
Figure 112006041278091-PCT00007
D2) 프리코딩을 포함할 수 있다.
본 발명의 이러한 실시예들에는, 다음에서 부연되는 바와 같이, 변조 인코더(12) 이후에 그리고 프리코더(13)에 의해 프리코딩이 적용되기 전에, 비트 시퀀스 가 치환되는 추가적인 치환 단계가 존재한다. (이것이 도 2에는 도시되어 있지 않다). 또한, 비트 시퀀스가 저장 매체(4)에 기입되기 전에 하나 이상의 패리티 비트들을 비트 시퀀스에 추가하는 것도 바람직하다(이 또한, 도 2에는 도시되어 있지 않다).
디코더 서브시스템(2)은 반전 방식으로 동작한다. 따라서, 검출기(14)는 레코딩 채널(3)로부터 저장된 데이터를 수신하고, 반전 프리코더(15)는 프리코딩을 제거하며, 다음으로는, 비트 스트림의 치환이 역진되고(도시되어 있지 않음), 변조 디코더(16)가 변조 코딩을 제거하여 오류 정정 코드 디코더(17)에 의해 출력 사용자 비트 스트림으로 변환되는 심볼들을 제공한다.
도 2에 도시되어 있는 바와 같은 시스템에서, 개략적으로 프리코더(13)와 검출기(14) 사이에 등장하는 것으로 도시되어 있는 "채널"(3)은 실제로, 예를 들어, 기입 선행 보상(write precompensation), 예를 들어, 자기 저장 장치로의 기입 프로세싱, 저장 장치로부터의 (자기) 신호 판독, 판독 신호의 다양한 증폭 및 필터링 스테이지들, 아날로그-디지털 변환, 등화, 디지털 필터링 등을 포함하는 신호 프로세싱 펑크션들의 단계들 또는 체인을 포함한다. 다음으로, 검출기(14)는 반전 프리코더(15)에 제공하기 위해, 비트들이 채널(3)의 입력에 등장했을 때와 같은 비트들의 최선 추정치를 발생시키고자 한다(즉, 채널(3)의 영향들을 "취소"하고 프리코더(13)의 출력을 재생하고자 한다).
도 3은 본 발명의 바람직한 실시예들에 대한 변조 코딩, 치환 및 선택적(국부적) 프리코딩 단계들을 개략적으로 나타낸다. 도 3에 도시된 바와 같이, (이미 오류 정정 코딩된) 데이터의 예시적인 초기 96 비트 블록에 우선, (이 실시예에서는) 레이트 8/9 변조 인코딩이 가해진다. 이러한 변조 인코딩은, 도 3에 도시되어 있는 바와 같이, 96 비트 블록의 2 바이트들(8-비트 부분들)에만 적용된다. 초기 데이터 블록의 나머지 비트들은, 변조 코딩 단계 이후에 변경없이 유지된다.
다음으로는, (이제 9 비트 길이인) 변조 인코딩된 데이터 부분들 및 비변조 코딩 비트 시퀀스의 인접 부분이 더 작은 부분들로 분할된 다음, 도 3에 도시된 바와 같이, 전체 비트 블록에 걸쳐 구분되고 분배된다. 이 실시예에서, 치환은 3개의 더 작은 데이터 부분들을 사용하며, 3개의 더 작은 데이터 부분들을, 도시된 바와 같이, 이동시키고 재정렬하지만, 당연히, 다른 구성들도 가능할 수 있다.
이러한 치환 단계는 특히, 코딩된 데이터의 런 길이 제한들을 시스템의 타이밍 루프들에 적응시키는데 사용된다. 특히, 도 3으로부터 알 수 있는 바와 같이, 치환 단계 이후에, 변조 코딩된 비트들은 분할되고 비트 시퀀스에 좀더 고르게 확산(분산)된다. 변조 코딩된 비트들이 "제한"됨에 따라, 이들 비트들의 재분산은, 비코딩 (그에 따라 제한되지 않은) 비트들의 코딩 비트들의 부분들 사이에서의 확산이 (치환이 없는 경우보다) 더 작다는 것을, 즉, 제한된 비트들이 비트 시퀀스 전체에 걸쳐 좀더 균일하게 분산된다는 것을 의미한다. 이것은, 타이밍 복구에 도움이 된다.
치환 단계는 변조 코딩된 비트들을, 프리코딩 스테이지에서 보았을 때, 데이터 시퀀스의 원하는 포인트들에 배치하는데도 사용될 수 있다. 이것은 특히, 예를 들어, 상이한 소정의 오류 정정 코딩 및 변조 코딩 방식들이 비트 시퀀스의 상이한 위치들에서 변조 코딩된 비트들을 발생시킬 경우, 도 3에 도시된 바와 같은 치환이, 사용되고 있는 오류 정정 코딩 및 변조 코딩 방식들에 상관없이, 변조 코딩된 비트들을, 프리코딩 스테이지에 보았을 때, 비트 시퀀스의 항상 동일한 위치들에 배치하는데 사용될 수 있다는 것을 의미한다. 이는, 예를 들어, 동일한 프리코더 등이 상이한 오류 정정 코딩 및 변조 코딩 방식들에 사용될 수 있게 할 것이다.
데이터 시퀀스가 치환된 후, 프리코딩은, 도 3에 도시된 바와 같이, 데이터 블록의 선택된 부분들(그리고 (지금-치환된) 변조 인코딩 비트들을 포함하는 데이터 블록의 부분들)에만 적용된다. 앞서 논의된 바와 같이, 이러한 선택적 프리코딩은 오류 전파를 감소시키는데 도움이 된다. 마지막으로, 도 3에 도시된 바와 같이, 4개의 패리티 비트들이 발생되어, 처음의 96-비트 오류 정정 코딩된 코드워드로부터 저장을 위한 102 비트 코드워드를 제공한다.
이하에서는, 본 발명에 따라 동작하는 적합한 데이터 인코딩 및 디코딩 방식들의 바람직한 다수 실시예들을 도 4 내지 도 35를 참조하여 설명할 것이다. 이들 실시예들은 8-비트 또는 10-비트 오류 정정 코드들(리드-솔로몬 코드들)과의 사용을 위해 설계되며 (다음에서 부연되는 바와 같이) 변조 코딩을 위해 동일한 레이트 8/9 변조 코드를 사용한다.
다음 실시예들에서는, 다음의 논리 규정들이 사용될 것이다. 모든 2진 숫자들이나 비트들의 그룹들 또는 바이트들의 그룹에 대해, LSB(Least Significant Bit)는 항상 "인덱스 0"이고, 인덱스들은 MSB(Most Significant Bit)까지 증가한다. MSB는 항상 왼쪽에 표시되고 LSB는 항상 오른쪽에 표시된다. 데이터가 저장 매체에 기입될 때, 정보(바이트들, 워드들, 블록들)는 MSB 우선으로 송신된다. 데이터가 저장 매체로부터 판독될 때, 정보(바이트들, 워드들, 블록들)는 MSB 우선으로 수신된다.
어레이(a[m:0])는 요소들(a(m), a(m-1), ..., a(0))로 이루어지는데, 여기에서, a(m)은 LRB(least recent bit)이고 a(0)는 MRB(most recent bit)이다. 인덱스가 감소함에 따라 시간은 증가한다는 것에 주의한다. "&" 및 "
Figure 112006041278091-PCT00008
" 연산들은, 각각, "AND" 및 "XOR"의 부울 연산들을 상징하는데 사용된다. 예를 들어, 이러한 실시예들에서, (1/(1
Figure 112006041278091-PCT00009
D2) 프리코딩인) 국부적 프리코딩 연산은 다음의 수학식 1로써 특정되는데,
Figure 112006041278091-PCT00010
여기에서, c(i)는 프리코더의 입력에서의 비트이고, d(i)는 프리코더의 출력에서의 비트이며, m(i)는 인덱스 i에서의 마스킹 비트(masking bit)이다. 다시 말해, m(i) = 0이면, d(i) = c(i)(비 프리코딩;no precoding)이고, m(i) = 1이면, d(i) = c(i)
Figure 112006041278091-PCT00011
d(i + 2)(프리코딩)이다.
유사하게, 국부적 반전 프리코딩 연산은 다음의 수학식 2로써 특정되는데,
Figure 112006041278091-PCT00012
여기에서, g(i)는 반전 프리코더의 입력에서의 비트이고, h(i)는 반전 프리 코더의 출력에서의 비트이며, m(i)는 인덱스 i에서의 마스킹 비트이다. 다시 말해, m(i) = 0이면, h(i) = g(i)(비 반전 프리코딩)이고, m(i) = 1이면, h(i) = g(i)
Figure 112006041278091-PCT00013
g(i + 2)(반전 프리코딩)이다.
다음 실시예들에서는, 96/100 및 96/102의 코드 레이트들이 8-비트 오류 정정 코드를 위해 사용되고, 96/100 및 96/102의 코드 레이트들이 10-비트 오류 정정 코드를 위해 사용된다. 표 1은 이들 새로운 코드들의 특성들을 열거한다.
레이트 패리티 ECC k j I
96/100 2 8-비트 26 26 27
96/102 4 8-비트 28 28 28
96/100 2 10-비트 26 26 27
96/102 4 10-비트 28 28 28
이 표에서, "레이트"는 코딩 레이트이고, "패리티"는 패리티 비트들의 수이며, "ECC"는 리드-솔로몬 오류 정정 코드의 심볼 사이즈이고, "k", "j" 및 "I"는 변조 코드에 의해 부여되는 제한들인데, 여기에서, "k+1"은 채널 입력에서의 최대 런 길이이고, "j"는 채널 입력에서의 연속 전이들의 최대 수이며, "I"는 변조 코딩 출력에서의 홀수 또는 짝수 비트 위치들에서의 (어느 쪽이든 더 큰 쪽의) 연속 0들의 최대 수이다.
표 1의 코드들은 레이트-8/9 변조 코드에 기초한다. 표 2는 이러한 변조 코드를 위한 8-비트 워드들로부터 9-비트 워드들로의 매핑을 나타낸다.
레이트 8/9 변조 코드를 위한 코드 표
입력 출력 입력 출력
Figure 112006041278091-PCT00014
Figure 112006041278091-PCT00015
Figure 112006041278091-PCT00016
Figure 112006041278091-PCT00017
입력 출력 입력 출력
Figure 112006041278091-PCT00018
Figure 112006041278091-PCT00019
Figure 112006041278091-PCT00020
Figure 112006041278091-PCT00021
입력 출력 입력 출력
Figure 112006041278091-PCT00022
Figure 112006041278091-PCT00023
Figure 112006041278091-PCT00024
Figure 112006041278091-PCT00025
입력 출력 입력 출력
Figure 112006041278091-PCT00026
Figure 112006041278091-PCT00027
Figure 112006041278091-PCT00028
Figure 112006041278091-PCT00029
이 코드와 연관되어 있는 인코더 및 디코더는, 각각, 블록 인코더 및 블록 디코더이다. 레이트-8/9 코드를 위한 블록 인코더 및 디코더는 표 2를 사용해 설계될 수 있다. 따라서, 예를 들어, 표 2의 256개의 모든 법적 9-비트 출력 워드들은 8-비트 입력 바이트들에 할당되어야 하고, 표 2에서 발생하지 않는 나머지 256개의 불법 9-비트 출력 워드들은 항상 모두가 0인 바이트로 또는 디코더를 구현하기 위한 부울 로직이 최소화되도록 선택되는 것이 바람직한 한 세트의 256개 바이트들로 매핑된다.
도 4는 본 발명의 제 1 실시예를 8-비트 오류 정정 코드를 위한 레이트-96/100 인코더의 형태로 나타낸다. 변조 인코딩 스테이지로의 입력(a[95:0])은 12개의 8-비트 바이트들(B11, B10, ..., B0)을 포함하는 오류 정정 코딩된 데이터 블록(30)으로 이루어진다. 도 4에 도시된 바와 같이, 변조 인코딩 스테이지(31)에서, 바이트들(B8 및 B2)은 표 2에 도시된 레이트-8/9 변조 코드를 사용해 각각의 9-비트 코드워드들로 매핑된다(변조 코딩된다). 데이터 블록의 나머지 바이트들은 변조 코딩 스테이지에 의해 변경없이 유지된다.
다음으로, 이렇게 변조 인코딩된 비트 블록(32)은 도 4에 도시된 바와 같이 치환된다(단계 33). 치환전의 인코딩 신호는 b[97:0]으로써 지시되는 한편, 치환후의 인코딩 신호(35)는 c[97:0]으로써 지시된다.
치환 후에는, 비트 블록의 선택된 부분들에 프리코딩이 적용된다(단계 36). 프리코딩은, "마스크"를 사용해 앞서 논의된 바와 같이 프리코딩될 비트들을 지시하는 것에 의해 판정된다. 이 실시예에서, 국부적 프리코딩을 수행하는데 필요한 마스킹 비트들(m(i), 0 ≤ i ≤ 97)은 m(i) = 1(i = 77, 76, 75, 74, 73, 72, 51, 50, 49, 28, 27, 26, 25, 24, 23, 2, 1, 0) 및 m(i) = 0(그외)로써 주어진다. 국부적 프리코딩 이후의 인코딩 신호(37)는 d[97:0]으로써 지시된다. 마지막으로, 2개의 패리티 비트들이 발생기 다항식(1 + x2)을 사용해 계산되어 비트 블록에 삽입된다(단계 38). 저장 매체에 기입될 결과적인 변조/패리티 코드워드(39)는 e[99:0]이다.
도 5는, 인코딩 데이터를 복구하는데 사용될 수 있는 대응되는 레이트-96/100 디코더를 나타낸다. 디코더의 입력(50;f[99:0])은 패리티 비트들을 제거(단계 51)한 후에 g[97:0]으로 매핑된다. "완전한" 시스템에서는, 입력(f[99:O])이 e[99:0](즉, 코딩 프로세스의 출력)과 동일하겠지만, 통상적으로는, 예를 들어, 판독 출력 데이터의 오류들로 인해 그렇지 않을 수도 있다.
다음으로는, 프리코딩을 위한 것과 동일한 마스킹 비트들(m(i), O ≤ i ≤ 97, m(i) = 1(i = 77, 76, 75, 74, 73, 72, 51, 50, 49, 28, 27, 26, 25, 24, 23, 2, 1, 0) 및 m(i) = 0(그외))을 사용해, 국부적 반전 프리코딩이 수행되어(단계 53), 어레이(h[97:0])를 획득한다. 다음으로는, 데이터 블록에 반전 치환이 가해진 후(단계 55),어레이(i[97:0])가 획득된다.
다음으로는, 코드워드(i[97:O])의 적절한 2개 바이트들에 표 2의 레이트-8/9 코드를 사용하는 변조 디코딩이 가해져(단계 57), (나타내지 않은) 오류 정정 디코딩 스테이지로 입력하기 위한 어레이(j[95:0])인 레이트-96/100 디코더의 출력(58)을 제공한다.
16-상태 시변 검출기 격자(16-state time-varying detector trellis)의 구현에 관련될 저장된 데이터 코드워드(e[99:0])에서의 제한들은 위치들(51 및 2)에서의 j = 2, 위치들(77, 74, 28 및 25)에서의 j = 3, 위치들(51 및 2)에서의 k = 2, 및 위치들(77, 74, 28 및 25)에서의 k = 3이다.
도 6은 또 하나의 바람직한 실시예를 8-비트 오류 정정 코드를 위한 레이트-96/102 인코더의 형태로 나타낸다. 이 인코더는, 2개가 아닌 4개의 패리티 비트들이 사용된다는 것을 제외하면, 기본적으로 도 4에 도시된 것과 동일하다.
따라서, 오류 정정 코딩 이후의 인코더 입력(a[95:0])은 이번에도 12개의 8-비트 바이트들(Bll, B10, ..., BO)로 이루어진다. 바이트들(B8 및 B2)은 이번에도 표 2의 레이트-8/9 변조 코드를 사용해 변조 코딩되어 스스로를 9-비트 코드워드들로 매핑한다. 나머지 바이트들은 미변경 상태를 유지한다. 다음으로, 이렇게 인코딩된 신호(b[97:0])는 도 6에 도시된 바와 같이 치환되어 신호(c[97:0])를 제공한다.
다음으로, 치환된 신호에는 마스킹 비트들(m(i), O ≤ i ≤ 97, m(i) = 1(i = 77, 76, 75, 74, 73, 72, 51, 50, 49, 28, 27, 26, 25, 24, 23, 2, 1, 0) 및 m(i) = 0(그외))을 사용하는 선택적 프리코딩이 가해진다. 이러한 국부적 프리코딩 이후의 인코딩 신호는 이번에도 d[97:0]으로써 지시된다. 마지막으로, 발생기 다항식(1 + x + x4)을 사용해 계산되는 4개의 패리티 비트들이 삽입된다. 저장 매체에서의 저장을 위해 얻어지는 변조/패리티 코드워드는 e[101: 0]이다.
도 7은 대응되는 레이트-96/102 디코더를 나타낸다. 이번에도, 프로세스는, 제거되어야 하는 패리티 비트들의 수를 제외하면, 도 5에 도시된 것과 실질적으로 동일하다.
따라서, 이번에도, 저장 매체로부터 판독된 디코더 입력(f[101:0])은 패리티 비트들을 제거하는 것에 의해 g[97:0]으로 매핑된다. 다음으로는, 국부적 반전 프리코딩이 수행되어 어레이(h[97:0])를 획득한다. 프리코딩을 위한 것과 동일한 마스킹 비트들(m(i), O ≤ i ≤ 97, m(i) = 1(i = 77, 76, 75, 74, 73, 72, 51, 50, 49, 28, 27, 26, 25, 24, 23, 2, 1, 0) 및 m(i) = 0(그외))이 사용된다. 다음으로는, 반전 치환이 적용되어 어레이(i[97:0])를 제공한다. 마지막으로, 적합한 바이트들에 레이트-8/9 디코딩이 적용되어 오류 정정 디코딩 스테이지에 제공하기 위한 레이트-96/102 디코더의 출력(어레이 j[95:0])을 제공한다.
16-상태 시변 검출기 격자의 구현에 관련될 이 실시예의 저장된 데이터 코드워드(e[101:0])의 제한들은 위치들(53 및 4)에서의 j = 2, 위치들(79, 76, 30 및 27)에서의 j = 3, 위치들(53 및 4)에서의 k = 2, 및 위치들(79, 76, 30 및 27)에서의 k = 3이다.
도 8 내지 도 12는 본 발명에 대한 다른 실시예의 5가지 단계들을 10-비트 오류 정정 코드를 위한 레이트-96/100 인코더의 형태로 나타낸다.
레이트 96/100 인코더를 사용해 10-비트 오류 정정 코드를 구현할 경우, (적당히 10으로 분할 가능한 480/500 인코딩의 전반적인 블록을 제공하기 위해) 인코딩의 연속적인 5개 "단계들"을 구현하는 것이 필요한데, 다음으로, 이 인코딩 "단계들"은 계속해서 차례로 반복된다(즉, 처음의 96 비트들은 단계 "0" 인코딩되고, 다음의 96 비트들은 단계 "1" 인코딩되며, 다음의 96 비트들은 단계 "2" 인코딩되고, 다음의 96 비트들은 단계 "3" 인코딩되며, 다음의 96 비트들은 단계 "4" 인코딩되고, 다음의 96 비트들은 단계 "0" 인코딩되며, 다음의 96 비트들은 단계 "1" 인코딩되는 식이다).
본 실시예에서, 각 단계에서의 인코더 입력은 10-비트 바이트들의 비-정수(non-integer number)에 대응되는 오류 정정 코딩된 데이터 블록(a[95:0])이다. 각 단계에서, 다음으로는, 표 2의 레이트-8/9 변조 코드를 사용하는 변조 코딩이 적용되어 2개의 10-비트 바이트들을 11-비트 코드워드들로 매핑한다. (이번에도, 나머지 바이트들은 미변경 상태로 변조 인코딩 스테이지를 통과한다.)
그 다음, 이렇게 인코딩된 신호(b[97:0])는, 각 단계에서, 도면들에서 도시된 바와 같이 치환되어 치환된 데이터 블록(c[97:0])을 제공한다. 다음으로, 치환된 신호에는 마스킹 비트들(m(i), O ≤ i ≤ 97, m(i) = 1(i = 77, 76, 75, 74, 73, 72, 51, 50, 49, 28, 27, 26, 25, 24, 23, 2, 1, 0) 및 m(i) = 0(그외))을 사용하는 선택적 프리코딩이 가해진다. 이러한 국부적 프리코딩 이후의 인코딩 신호는 이번에도 d[97:0]으로써 지시된다. 마지막으로, 발생기 다항식(1 + x2)을 사용해 계산되는 2개의 패리티 비트들이 삽입된다. 저장을 위해 얻어지는 변조/패리티 코드워드는 e[99:0]이다.
도 13 내지 도 17은 대응되는 레이트-96/100 디코더의 5가지 단계들을 나타낸다. 각 단계에서, 디코더 입력(f[99:0])은 패리티 비트들을 제거하는 것에 의해 g[97:0]으로 매핑된다. 다음으로는, 프리코딩을 위한 것과 동일한 마스킹 비트들(m(i), O ≤ i ≤ 97), 즉, m(i) = 1(i = 77, 76, 75, 74, 73, 72, 51, 50, 49, 28, 27, 26, 25, 24, 23, 2, 1, 0) 및 m(i) = 0(그외))을 사용하는 국부적 반전 프리코딩이 수행되어 어레이(h[97:0])를 획득한다. 다음으로는, 반전 치환이 수행되어 어레이(i[97:0])를 획득한다. 마지막으로, 적절한 11-비트 코드워드들에 레이트-8/9 디코딩이 적용되어 레이트-96/100 디코더의 출력(어레이 j[95:0])을 제공한다.
16-상태 시변 검출기 격자의 구현에 관련될 저장된 코드워드(e[99:0])의 제한들은 위치들(51 및 2)에서의 j = 2, 위치들(77, 74, 28 및 25)에서의 j = 3, 위치들(51 및 2)에서의 k = 2, 및 위치들(77, 74, 28 및 25)에서의 k = 3이다.
도 18 내지 도 22는 본 발명의 또 다른 실시예의 5가지 단계들을 10-비트 오류 정정 코드를 위한 레이트-96/102 인코더의 형태로 나타낸다. 각 단계에서, 인코더 입력은 이번에도 10-비트 바이트들의 비-정수에 대응되는 오류 정정 코딩된 데이터 블록(a[95:0])이다. 각 단계에서, 다음으로는, 표 2의 레이트-8/9 변조 코드를 사용하는 변조 코딩이 2개의 10-비트 바이트들에만 적용되어 그들을 11-비트 코드워드들로 매핑한다.
그 다음, 이렇게 인코딩된 신호(b[97:0])는 도면들에서 도시된 바와 같이 치환되어 치환된 데이터 블록(c[97:0])을 제공한다. 다음으로, 치환된 신호에는 마스킹 비트들(m(i), O ≤ i ≤ 97, m(i) = 1(i = 77, 76, 75, 74, 73, 72, 51, 50, 49, 28, 27, 26, 25, 24, 23, 2, 1, 0) 및 m(i) = 0(그외))을 사용하는 선택적 프리코딩이 가해진다. 이러한 국부적 프리코딩 이후의 인코딩 신호는 이번에도 d[97:0]으로써 지시된다. 마지막으로, 발생기 다항식(1 + x + x4)을 사용해 계산되는 4개의 패리티 비트들이 삽입된다. 저장을 위해 얻어지는 변조/패리티 코드워드는 e[101:0]이다.
도 23 내지 도 27은 대응되는 레이트-96/102 디코더의 5가지 단계들을 나타낸다. 각 단계에서, 디코더 입력(f[101:0])은, 앞서와 같이, 패리티 비트들을 제거하는 것에 의해 g[97:0]으로 매핑된다. 다음으로는, 프리코딩을 위한 것과 동일한 마스킹 비트들(m(i), O ≤ i ≤ 97), 즉, m(i) = 1(i = 77, 76, 75, 74, 73, 72, 51, 50, 49, 28, 27, 26, 25, 24, 23, 2, 1, 0) 및 m(i) = 0(그외))을 사용하는 국부적 반전 프리코딩이 수행되어 어레이(h[97:0])를 획득한다. 다음으로는, 반전 치환이 수행되어 어레이(i[97:0])를 획득한다. 마지막으로, 적절한 2개의 11-비트 코드워드들에 레이트-8/9 디코딩이 적용되어 레이트-96/102 디코더의 출력(어레이 j[95:0])을 제공한다.
16-상태 시변 검출기 격자의 구현에 관련될 저장된 코드워드(e[101:0])의 제한들은 위치들(53 및 4)에서의 j = 2, 위치들(79, 76, 30 및 27)에서의 j = 3, 위치들(53 및 4)에서의 k = 2, 및 위치들(79, 76, 30 및 27)에서의 k = 3이다.
이하에서는, 본 발명에 따라 동작하는 적당한 데이터 인코딩 및 디코딩 방식들의 좀더 바람직한 일부 실시예들을 도 28 내지 도 31을 참조하여 설명할 것이다. 이들 실시예들은 10-비트 오류 정정 코드(리드-솔로몬 코드)를 위해 100/104 및 100/106의 코드 레이트들을 사용한다. 이들은 변조 코딩을 위해 선행 실시예들과 동일한 레이트 8/9 변조 코드(즉, 표 2에 도시된 변조 코드)를 사용한다.
표 3은 (표 1과 동일한 규정을 사용해) 이들 새로운 코드들의 특성들을 열거한다.
레이트 패리티 ECC k j I
100/104 2 10-비트 27 27 28
100/106 4 10-비트 28 28 29
도 28은 10-비트 오류 정정 코드를 위한 레이트-100/104 인코더를 나타낸다.
인코더의 입력(a[99:0])은 10개의 10-비트 바이트들(B9, ..., B0)로 이루어진다. 바이트들(B7 및 B2)은 표 2의 레이트-8/9 변조 코드를 사용해 스스로를 11-비트 코드워드들로 매핑하도록 변조 코딩된다. 나머지 바이트들은 변경없이 유지된다. 다음으로, 이렇게 인코딩된 신호(b[101:0])는 도 28에 도시된 바와 같이 치환되어 신호(c[101:0])를 제공한다.
다음으로, 치환된 신호에는 마스킹 비트들(m(i), 0 ≤ i ≤ 101)을 사용하는 선택적 프리코딩이 가해지는데, 여기에서, m(i) = 1(i = 81, 80, 79, 78, 77, 76, 53, 52, 51, 30, 29, 28, 27, 26, 25, 2, 1, 0) 및 m(i) = 0(그외)이다. 이러한 국부적 프리코딩 이후의 인코딩 신호는 d[101:0]로써 지시된다. 마지막으로, 발생기 다항식(1 + x2)을 사용해 계산되는 2개의 패리티 비트들이 삽입된다. 결과적인 변조/패리티 코드워드는 e[103:0]이다.
도 29는 대응되는 레이트-100/104 디코더를 나타낸다. 디코더의 입력(f[103:0])은 패리티 비트들을 제거하는 것에 의해 g[101:0]으로 매핑된다. 다음으로는, 국부적 반전 프리코딩이 수행되어 어레이(h[101:0])를 획득한다. 프리코딩을 위한 것과 동일한 마스킹 비트들(m(i), 0 ≤ i ≤ 101, m(i) = 1(i = 81, 80, 79, 78, 77, 76, 53, 52, 51, 30, 29, 28, 27, 26, 25, 2, 1, 0) 및 m(i) = 0(그외))이 사용된다. 다음으로는, 반전 치환이 적용되어 어레이(i[101:0])를 제공한다. 마지막으로, 적절한 바이트들에 레이트-8/9 디코딩이 적용되어, 어레이(j[99:0])인, 레이트-100/104 디코더의 출력을 제공한다.
16-상태 시변 검출기 격자의 구현에 관련될 데이터 코드워드(e[103:0])에서의 제한들은 위치들(53 및 2)에서의 j = 2, 위치들(81, 78, 30 및 27)에서의 j = 3, 위치들(53 및 2)에서의 k = 2, 및 위치들(81, 78, 30 및 27)에서의 k = 3이다.
도 30은 또 하나의 바람직한 실시예를 10-비트 오류 정정 코드를 위한 레이트-100/106 인코더 형태로 나타낸다. 인코더의 입력(a[99:0])은 10개의 10-비트 바이트들(B9, ..., B0)로 이루어진다. 바이트들(B7 및 B2)은 표 2의 레이트-8/9 변조 코드를 사용해 스스로를 11-비트 코드워드들로 매핑하도록 변조 코딩된다. 나머지 바이트들은 미변경 상태를 유지한다. 이렇게 인코딩된 신호(b[101:0])는 도 30에 도시된 바와 같이 치환되어 신호(c[101:0])를 제공한다.
다음으로, 치환된 신호에는 마스킹 비트들(m(i), 0 ≤ i ≤ 101)을 사용하는 선택적 프리코딩이 가해지는데, 여기에서, m(i) = 1(i = 81, 80, 79, 78, 77, 76, 53, 52, 51, 30, 29, 28, 27, 26, 25, 2, 1, 0) 및 m(i) = 0(그외)이다. 이러한 국부적 프리코딩 이후의 인코딩 신호는 d[101:0]로써 지시된다. 마지막으로, 발생기 다항식(1 + x + x4)을 사용해 계산되는 4개의 패리티 비트들이 삽입된다. 결과적인 변조/패리티 코드워드는 e[105:0]이다.
도 31은 대응되는 레이트-100/106 디코더를 나타낸다. 디코더의 입력(f[105:0])은 패리티 비트들을 제거하는 것에 의해 g[101:0]으로 매핑된다. 다음으로는, 국부적 반전 프리코딩이 수행되어 어레이(h[101:0])를 획득한다. 프리코딩을 위한 것과 동일한 마스킹 비트들(m(i), 0 ≤ i ≤ 101, m(i) = 1(i = 81, 80, 79, 78, 77, 76, 53, 52, 51, 30, 29, 28, 27, 26, 25, 2, 1, 0) 및 m(i) = 0(그외))이 사용된다. 다음으로는, 반전 치환이 적용되어 어레이(i[101:0])를 제공한다. 마지막으로, 적절한 바이트들에 레이트-8/9 디코딩이 적용되어, 어레이(j[99:0])인, 레이트-100/106 디코더의 출력을 제공한다. 16-상태 시변 검출기 격자의 구현에 관련될 데이터 코드워드(e[105:0])에서의 제한들은 위치들(55 및 4)에서의 j = 2, 위치들(83, 80, 32 및 29)에서의 j = 3, 위치들(55 및 4)에서의 k = 2, 및 위치들(83, 80, 32 및 29)에서의 k = 3이다.
본 발명에 따라 동작하는 적합한 데이터 인코딩 및 디코딩 방식들의 좀더 바람직한 다수 실시예들이 도 32 내지 도 35에 도시되어 있다. 이들 실시예들은 8-비트 또는 10-비트 오류 정정 코드들(리드-솔로몬 코드들)과의 사용을 위해 설계되고 변조 코딩을 위해 선행 실시예들과 동일한 레이트 8/9 변조 코드(즉, 표 2에 도시되어 있는 변조 코드)를 사용한다.
다음 실시예들에서는, 코드 레이트 64/66이 8-비트 오류 정정 코드를 위해 사용되고, 코드 레이트 60/62가 10-비트 오류 정정 코드를 위해 사용된다. 표 4는 (표 1과 동일한 규정들을 사용해) 이들 새로운 코드들의 특성들을 열거한다.
레이트 패리티 ECC k j I
64/66 1 8-비트 33 33 34
60/62 1 10-비트 31 31 32
이들(및 다른) 실시예들에서, 변조 디코더 입력에서 불법 코드워드를 검출하는 플래그가 온 더 플라이 오류-및-삭제 디코딩(on the fly error-and-erasure decoding)을 수행하는 리드-솔로몬 디코더와 함께 사용될 수도 있다. 이로 인해, 섹터-오류율 성능이 향상될 수 있을 것이다.
도 32는 일 실시예를 8-비트 오류 정정 코드를 위한 레이트-64/66 인코더 형태로 나타낸다. 변조-코딩 스테이지로의 입력(a[63:0])은 8개의 오류 정정 코딩된 8-비트 바이트들(B7, B6, ..., B0)로 이루어진다. 도 32에 도시된 바와 같이, 바이트 B5는 표 2의 레이트-8/9 변조 코드를 사용해 9-비트 코드워드로 매핑된다. 나머지 바이트들은 변조 코딩 스테이지 이후에 변경없이 유지된다.
다음으로, 비트 시퀀스는 도 32에 도시된 바와 같이 치환된다. 치환전의 인코딩 신호는 b[64:0]으로써 지시되고, 치환후의 인코딩 신호는 c[64:0]으로써 지시된다. 다음으로는, 마스킹 비트들(m(i), 0 ≤ i ≤ 64)로써 지시되는 "마스크"를 사용해 선택적 프리코딩이 수행되는데, 여기에서, m(i) = 1(i = 44, 43, 42, 41, 40, 39, 10, 9, 8) 및 m(i) = 0(그외)이다. 이러한 국부적 프리코딩 이후의 인코딩 신호는 d[64:0]으로써 지시된다. 마지막으로, 패리티 비트가 발생기 다항식(1 + x)을 사용해 계산되어 비트 블록에 삽입된다. 저장 매체에 기입될 결과적인 변조/패리티 코드워드는 e[65:0]이다.
도 33은 대응되는 레이트-64/66 디코더를 나타낸다. 디코더의 입력(f[65:0])은 패리티 비트를 제거한 후에 g[64:0]으로 매핑된다. 다음으로는, 프리코딩을 위한 것과 동일한 마스킹 비트들(m(i), O ≤ i ≤ 64, m(i) = 1(i = 44, 43, 42, 41, 40, 39, 10, 9, 8) 및 m(i) = 0(그외))을 사용해, 국부적 반전 프리코딩이 수행되어, 어레이(h[64:0])를 획득한다. 다음으로는, 데이터 블록에 반전 치환이 가해진 후, 어레이(i[64:0])가 획득된다. 다음으로는, 코드워드(i[64:O])의 적절한 바이트에 표 2의 레이트-8/9 코드를 사용한 변조 디코딩이 가해져 (나타내지 않은) 오류 정정 디코딩 스테이지로 입력하기 위한 어레이(j[63:0])인 레이트-64/66 디코더의 출력을 제공한다. 16-상태 시변 검출기 격자의 구현에 관련될 데이터 코드워드(e[65:0])에서의 제한들은 위치(9)에서의 j = 2, 위치들(43 및 40)에서의 j = 3, 위치(9)에서의 k = 2, 및 위치들(43 및 40)에서의 k = 3이다.
도 34는 바람직한 다른 실시예를 10-비트 오류 정정 코드를 위한 레이트-60/62 인코더 형태로 나타낸다. 인코더의 입력(a[59:0])은 6개의 10-비트 바이트들(B5, ..., B0)로 이루어진다. 바이트 B3는 표 2의 레이트-8/9 변조 코드를 사용해 11-비트 코드워드로 매핑된다. 나머지 바이트들은 미변경 상태를 유지한다. 다음으로, 이렇게 인코딩된 신호(b[60:0])는 도 34에 도시된 바와 같이 치환되어 신호(c[60:0])를 제공한다.
다음으로, 치환된 신호에는 마스킹 비트들(m(i), 0 ≤ i ≤ 60)을 사용하는 선택적 프리코딩이 가해지는데, 여기에서, m(i) = 1(i = 40, 39, 38, 37, 36, 35, 8, 7, 6) 및 m(i) = 0(그외)이다. 이러한 국부적 프리코딩 이후의 인코딩 신호는 d[60:0]으로써 지시된다. 마지막으로, 발생기 다항식(1 + x)을 사용해 계산되는 하나의 패리티 비트가 삽입된다. 결과적인 변조/패리티 코드워드는 e[61:0]이다.
도 35는 대응되는 레이트-60/62 디코더를 나타낸다. 디코더의 입력(f[61:0])은 패리티 비트를 제거하는 것에 의해 g[60:0]으로 매핑된다. 다음으로는, 국부적 반전 프리코딩이 수행되어 어레이(h[60:0])를 획득한다. 프리코딩을 위한 것과 동일한 마스킹 비트들(m(i), O ≤ i ≤ 64, m(i) = 1(i = 40, 39, 38, 37, 36, 35, 8, 7, 6) 및 m(i) = 0(그외))이 사용된다. 다음으로는, 반전 치환이 적용되어 어레이(i[60:0])를 제공한다. 마지막으로는, 적절한 바이트에 레이트-8/9 디코딩이 적용되어, 어레이(j[59:0])인 레이트-60/62 디코더의 출력을 제공한다. 16-상태 시변 검출기 격자의 구현에 관련될 데이터 코드워드(e[61:0])에서의 제한들은 위치(7)에서의 j = 2, 위치들(39 및 36)에서의 j = 3, 위치(7)에서의 k = 2, 및 위치들(39 및 36)에서의 k = 3이다.
도 36 내지 도 39는 본 발명의 좀더 바람직한 실시예를 나타낸다. 이 실시예에서는, 선행 실시예들과 동일한 논리 규정들이 사용된다. 그러나, 다음에서 부연되는 바와 같이, 이 실시예는 1/(1
Figure 112006041278091-PCT00030
D) 프리코딩을 사용하므로, 이 실시예에서의 국부적 프리코딩 연산은 다음의 수학식 3으로써 특정되는데,
Figure 112006041278091-PCT00031
여기에서, b(i)는 프리코더의 입력에서의 비트이고, c(i)는 프리코더의 출력에서의 비트이며, m(i)는 인덱스 i에서의 마스킹 비트이다. 다시 말해, m(i) = 0이면, c(i) = b(i)(비 프리코딩)이고, m(i) = 1이면, c(i) = b(i)
Figure 112006041278091-PCT00032
c(i + 1)(프리코딩)이다.
유사하게, 국부적 반전 프리코딩 연산은 다음의 수학식 4로써 특정되는데,
Figure 112006041278091-PCT00033
여기에서, f(i)는 반전 프리코더의 입력에서의 비트이고, g(i)는 반전 프리코더의 출력에서의 비트이며, m(i)는 인덱스 i에서의 마스킹 비트이다. 다시 말해, m(i) = 0이면, g(i) = f(i)(비 반전 프리코딩)이고, m(i) = 1이면, g(i) = f(i)
Figure 112006041278091-PCT00034
g(i + 1)(반전 프리코딩)이다.
이 실시예는 10-비트 오류 정정 코드에 사용하기 위한 3-비트 패리티의 레이트-100/108 코드이다. 이 실시예는, 여기에 그 전체가 참고 문헌으로써 포함되어 있는 미국 특허출원 제 6,557,124호에서 설명된 레이트-16/17 변조 코드를 사용한다. 그러한 레이트-16/17 변조 코드는 (주로 전자 잡음에 의해 손상되는 동시에 정규화된 높은 선형 밀도(high normalized linear density)를 가진 자기 레코딩 채널들에서의 주된 오류 이벤트들인) +-+ 유형의 오류 이벤트들 중 약 1/2을 제거하는 것으로 밝혀진 강한 MTR 코드이다. 또한, 이러한 레이트-16/17 변조 코드는 43.32%의 평균 전이 밀도(average transition density)를 갖는다. 이 특성은, 데이터-종속적인 매체 잡음을 무시할 수 없는 자기 레코딩 채널들에서 유용하다. 이 러한 레이트-16/17의 강한 MTR 코드와 연관되어 있는 인코더 및 디코더는, 이전과 마찬가지로, 각각, 블록 인코더 및 블록 디코더이다.
앞서 언급된 바와 같이, 본 실시예에서 사용되는 레이트-16/17 변조 코드는 기입 경로의 1/(1
Figure 112006041278091-PCT00035
D) 프리코더 및 판독 경로의 (1
Figure 112006041278091-PCT00036
D) 반전 프리코더와 함께 사용되도록 설계된다. (이것이, 기입 경로에 1/(1
Figure 112006041278091-PCT00037
D2) 프리코더 및 판독 경로에 (1
Figure 112006041278091-PCT00038
D2) 반전 프리코더를 사용하는 레이트-8/9 변조 코드를 사용하는 상기 실시예들과의 차이점이다.)
표 5는 본 실시예의 3-비트 패리티의 레이트-100/108 코드에 대한 특성들을 도 30의 8/9 변조 코드 및 4-비트 패리티를 사용하는 레이트-100/106 코드와 비교한다.
레이트 변조 코드 패리티 k I ATD
100/106 8/9 4-비트 28 29 50.00%
100/108 16/17 3-비트 21 13 44.74%
표 5에서, "ATD"는 평균 전이 밀도이고 나머지 항목들은 표 1에서와 동일하다. 기준의 레이트-100/106 4-비트 패리티 코드와 비교할 때, 본 실시예의 3-비트 패리티 레이트-100/108 코드는 좀더 양호한 k-상수, 좀더 양호한 I-상수 및 좀더 낮은 ATD를 가진다.
도 37은 본 실시예의 10-비트 오류 정정 코드를 위한 레이트-100/108 블록 인코더를 개략적으로 나타낸다. 도 36은 인코더의 등가 표현인데, 이는, 다음에서 부연되는 바와 같이, 본 실시예의 레이트-100/108 블록 인코더의 레이트-20/21-기반 모듈러 구조를 나타낸다.
오류 정정 코딩 이후의 인코더 입력(a[99:0])은 10개의 10-비트 바이트들(B9, ...,BO)로 이루어진다. 인접 바이트들의 5개 쌍들(B9/B8, B7/B6, B5/B4, B3/B2 및 B1/BO)이 5개의 21-비트 코드워드들로 매핑된다. 도 36 및 도 37에 도시된 바와 같이, 이는 적절한 비트들에 앞서-논의된 레이트-16/17 변조 코드를 적용하는 것에 의해 수행되고(도 37), 각각의 21-비트 코드워드에 대한 2개의 LMB들(leftmost bits) 및 2개의 RMB들(rightmost bits)은 코딩되지 않지만, 앞서-논의된 레이트-16/17 변조 코드를 사용해 구현되는 도 36에 도시된 바와 같은 한 세트의 레이트-20/21 블록 인코더들을 사용하는 변조 코딩의 응용인 것으로 간주될 수 있다.
인코딩된 신호는 b[104:0]로써 지시된다. 다음으로, 마스킹 비트들(m(i), O ≤ i ≤ 104, m(i) = 1(i = 102, 101, 100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2) 및 m(i) = 0(그외))을 사용하는 선택적 프리코딩이 적용된다. 이러한 국부적 프리코딩 이후의 인코딩 신호는 c[104:0]로써 지시된다. 마지막으로, 발생기 다항식(1 + x + x3)을 사용해 계산되는 3개의 패리티 비트들이 코드워드의 끝에 삽입된다. 결과적인 변조/패리티 코드워드는 d[107:0]이다. (선행 실시예들과 달리) 이 실시예에서는 데이터 코드워드의 치환이 존재하지 않는다는 것에 주의해야 한다.
도 39는 10-비트 오류 정정 코드를 위한 대응되는 레이트-100/108 블록 디코더를 개략적으로 나타낸다. 도 38은, 레이트-100/108 블록 디코더의 레이트-20/21 기반 모듈러 구조를 나타내는 디코더의 등가 표현이다.
디코더의 입력(e[107:0])은 3개의 패리티 비트들을 제거하는 것에 의해 f[104:0] 으로 매핑된다. 다음으로는, 프리코딩을 위해 사용된 것과 동일한 마스킹 비트들(m(i), O ≤ i ≤ 104, m(i) = 1(i = 102, 101, 100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2) 및 m(i) = 0(그외))을 사용하는 국부적 반전 프리코딩이 수행되어 어레이(g[104:0])를 획득한다.
마지막으로, 적절한 바이트들의 레이트-16/17 디코딩이 수행되어, 어레이(h[99:0])인, 레이트-100/108 디코더의 출력을 제공한다. (이번에도 역시, 도 38에 도시된 바와 같이, 이 연산은 일부 비트들을 미변경 상태로 유지하는 레이트-16/17 변조 코드를 사용해 구현되는 한 세트의 레이트-20/21 블록 디코더들의 연산인 것으로 간주될 수 있다.)
16-상태 시변 검출기 격자 및 후행-프로세서의 MTR 점검에 대한 구현과 연관될 이 실시예의 데이터 코드워드(d[107:0])에서의 제한들은 다음의 10개 위치들: 103, 89, 82, 68, 61, 47, 40, 26, 19, 5에서의 j = 2 및 다음의 65개 위치들: 102, 101, 100, 99, 98, 97, 96, 94, 93, 92, 91, 90, 88, 81, 80, 79, 78, 77, 76, 75, 73, 72, 71, 70, 69, 67, 60, 59, 58, 57, 56, 55, 54, 52, 51, 50, 49, 48, 46, 39, 38, 37, 36, 35, 34, 33, 31, 30, 29, 28, 27, 25, 18, 17, 16, 15, 14, 13, 12, 10, 9, 8, 7, 6, 4에서의 j = 3이다.
상기한 내용으로부터 알 수 있는 바와 같이, 본 발명은, 적어도 그것의 바람직한 실시예들에서, 국부적(선택적) 프리코딩 및 반전 프리코딩을 사용해 오류 전파를 감소시키고, 그에 의해, 오류율 성능을 향상시킨다. 입력 데이터의 일부(즉, 프리코딩되지 않은 입력 데이터 부분 또는 부분들)를 반전 프리코딩할 필요성을 방지하는 것에 의해, 프리코딩에 의해 초래되는 오류 전파는 감소될 수 있다. 또한, 치환은 타이밍 복구 요구 사항들을 충족시키고, 예를 들어, 8-비트 또는 10-비트 심볼들에 기초한 리드-솔로몬 코드들과의 사용을 위한 변조 코드들의 좀더 유연한 설계를 용이하게 하는데도 사용될 수 있다.
바람직한 실시예들에서는, 상기 이점들 이외에, 인코더/디코더 구현을 용이하게 하는 하나의 레이트-8/9 변조 코드에 기초한 8-비트 및 10-비트 리드-솔로몬 심볼 사이즈들을 위한 특정 코드들이 설명된다.
본 발명의 상기 설명은 예시 및 설명을 위해 제시되었다. 본 발명을 총망라하거나 본 발명을 개시된 정확한 형태로 한정하려는 것은 아니며, 상기 교수들을 고려하여, 다른 변경들 및 변형들도 가능할 수 있다. 개시된 실시예들은, 본 발명의 원리들 및 그것의 실질적인 적용을 가장 잘 설명함으로써, 그에 의해, 당업자들이 특정 용도에 적합한 것으로 생각되는 다양한 실시예들 및 다양한 변경들로 본 발명을 적극 이용할 수 있도록 하기 위해, 선택되고 설명되었다. 첨부된 청구항들은 종래 기술에 의해 한정되는 것을 제외하는 범위에서 본 발명의 다른 실시예들을 포함하는 것으로 해석되어야 한다.

Claims (50)

  1. 입력 비트 시퀀스를 인코딩하는 방법으로서,
    상기 입력 비트 시퀀스의 일부 또는 전부에 변조 코딩을 적용하는 단계; 및
    상기 변조 코딩이 적용된 후의 상기 입력 비트 시퀀스의 선택 부분들 하나 이상을 프리코딩하는 단계를 포함하는 인코딩 방법.
  2. 제 1 항에 있어서, 상기 변조 코딩이 적용된 상기 입력 비트 시퀀스의 부분들만 프리코딩하는 단계를 포함하는 인코딩 방법.
  3. 제 1 항에 있어서, 상기 변조 코딩이 적용된 후의 데이터 시퀀스에서 상기 변조 코딩된 비트들의 위치들을 변경하는 단계를 더 포함하는 인코딩 방법.
  4. 입력 비트 시퀀스를 인코딩하는 방법으로서,
    상기 입력 비트 시퀀스의 선택된 부분 또는 부분들에 변조 코딩을 적용하는 단계; 및
    변조 코딩되지 않은 임의의 데이터 비트들을 프리코딩하는 것이 아니라, 상기 변조 코딩에 의해 인코딩된 데이터 비트들에 프리코딩을 적용하는 단계를 포함하는 인코딩 방법.
  5. 제 4 항에 있어서, 상기 변조 코딩이 적용된 후의 데이터 시퀀스에서 상기 변조 코딩된 비트들의 위치들을 변경하는 단계를 더 포함하는 인코딩 방법.
  6. 저장을 위해 데이터 시퀀스를 인코딩하는 방법으로서,
    상기 데이터 시퀀스를 오류 정정 코딩하는 단계;
    상기 오류 정정 코딩된 데이터 시퀀스의 전부 또는 일부를 변조 인코딩하는 단계; 및
    상기 데이터 시퀀스를 오류 정정 코딩하는데 사용된 오류 정정 코드에 기초해, 상기 변조 인코딩하는 단계 이후의 데이터 시퀀스에서 상기 변조 코딩된 비트들의 위치들을 변경하는 단계를 포함하는 인코딩 방법.
  7. 저장을 위해 데이터 시퀀스를 인코딩하는 방법으로서,
    상기 데이터 시퀀스를 오류 정정 코딩하는 단계;
    상기 오류 정정 코딩된 데이터 시퀀스의 전부 또는 일부를 변조 인코딩하는 단계; 및
    상기 데이터 시퀀스에 적용될 프리코딩에 기초해, 상기 변조 인코딩하는 단계 이후의 데이터 시퀀스에서 상기 변조 코딩된 비트들의 위치들을 변경하는 단계를 포함하는 인코딩 방법.
  8. 저장 매체로부터 판독되는 비트 시퀀스를 디코딩하는 방법으로서,
    상기 판독 비트 시퀀스의 선택 부분들 하나 이상을 반전 프리코딩하는 단계; 및
    상기 반전 프리코딩이 적용된 후의 상기 판독 비트 시퀀스의 일부 또는 전부에 변조 디코딩을 적용하는 단계를 포함하는 디코딩 방법.
  9. 제 8 항에 있어서, 상기 변조 코딩이 적용된 상기 판독 비트 시퀀스의 부분들만 반전 프리코딩하는 단계를 포함하는 디코딩 방법.
  10. 제 8 항에 있어서, 상기 판독 데이터 시퀀스에서 상기 변조 코딩된 비트들의 위치들을 변경하는 단계를 더 포함하는 디코딩 방법.
  11. 저장 매체로부터 판독되는 비트 시퀀스를 디코딩하는 방법으로서,
    변조 코딩되지 않은 임의의 데이터 비트들을 반전 프리코딩하는 것이 아니라, 변조 코딩에 의해 인코딩된 판독 데이터 비트들에 반전 프리코딩을 적용하는 단계; 및
    상기 판독 비트 시퀀스의 변조 인코딩된 부분 또는 부분들에 변조 디코딩을 적용하는 단계를 포함하는 디코딩 방법.
  12. 제 11 항에 있어서, 상기 판독 데이터 시퀀스에서 상기 변조 코딩된 비트들의 위치들을 변경하는 단계를 더 포함하는 디코딩 방법.
  13. 저장 매체로부터 판독되는 데이터 시퀀스를 디코딩하는 방법으로서,
    상기 판독 데이터 시퀀스에서 비트들의 위치들을 변경하는 단계;
    상기 재정렬된 데이터 시퀀스의 전부 또는 일부를 변조 디코딩하는 단계; 및
    상기 변조 디코딩하는 단계 이후의 상기 데이터 시퀀스를 오류 정정 디코딩하는 단계를 포함하고,
    상기 판독 데이터 시퀀스에서 비트들의 위치들을 변경하는 단계는 상기 데이터 시퀀스를 오류 정정 코딩하는데 사용되는 오류 정정 코드에 기초하는 것인, 디코딩 방법.
  14. 저장 매체로부터 판독되는 데이터 시퀀스를 디코딩하는 방법으로서,
    상기 판독 데이터 시퀀스에서 비트들의 위치들을 변경하는 단계;
    상기 재정렬된 데이터 시퀀스의 전부 또는 일부를 변조 디코딩하는 단계; 및
    상기 변조 디코딩하는 단계 이후의 상기 데이터 시퀀스를 오류 정정 디코딩하는 단계를 포함하고,
    상기 판독 데이터 시퀀스에서 비트들의 위치들을 변경하는 단계는 상기 데이터 시퀀스에 적용될 반전 프리코딩에 기초하는 것인, 디코딩 방법.
  15. 입력 비트 시퀀스를 인코딩하기 위한 장치로서,
    상기 입력 비트 시퀀스의 일부 또는 전부에 변조 코딩을 적용하기 위한 변조 인코더; 및
    상기 변조 코딩이 적용된 후의 상기 입력 비트 시퀀스의 선택 부분들 하나 이상을 프리코딩하기 위한 프리코더를 포함하는 인코딩 장치.
  16. 제 15 항에 있어서, 상기 변조 코딩이 적용된 상기 입력 비트 시퀀스의 부분들만을 프리코딩하기 위한 프리코더를 포함하는 인코딩 장치.
  17. 제 15 항에 있어서, 상기 변조 코딩이 적용된 후의 상기 데이터 시퀀스에서 상기 변조 코딩된 비트들의 위치들을 변경하기 위한 치환기를 더 포함하는 인코딩 장치.
  18. 변조 인코더로부터 수신되는 데이터 비트들에 프리코딩을 적용하기 위한 프리코더로서, 상기 변조 인코더로부터 수신되는 데이터 비트들을 선택적으로 프리코딩하는 프리코더.
  19. 제 18 항에 있어서, 변조 코딩이 적용된 입력 비트 시퀀스의 부분들만을 프리코딩하는 프리코더.
  20. 비트 시퀀스를 인코딩하기 위한 장치로서,
    상기 비트 시퀀스의 선택된 부분 또는 부분들에 변조 코딩을 적용하기 위한 변조 인코더; 및
    변조 코딩되지 않은 임의의 데이터 비트들을 프리코딩하는 것이 아니라, 상기 변조 인코더에 의해 인코딩된 데이터 비트들에 프리코딩을 적용하기 위한 프리코더를 포함하는 인코딩 장치.
  21. 제 20 항에 있어서, 상기 변조 코딩이 적용된 후의 상기 데이터 시퀀스에서 상기 변조 코딩된 비트들의 위치들을 변경하기 위한 치환기를 더 포함하는 인코딩 장치.
  22. 변조 인코더로부터 수신되는 데이터 비트들에 프리코딩을 적용하기 위한 프리코더로서,
    상기 수신된 데이터 비트들이 상기 변조 인코더에 의해 변조 코딩되었는지의 여부에 기초해, 상기 변조 인코더로부터 수신되는 데이터 비트들을 선택적으로 프리코딩하는 프리코더.
  23. 저장을 위해 데이터 시퀀스를 인코딩하기 위한 장치로서,
    상기 데이터 시퀀스를 오류 정정 코딩하기 위한 오류 정정 인코더;
    상기 오류 정정 코딩된 데이터 시퀀스의 전부 또는 일부를 변조 인코딩하기 위한 변조 인코더; 및
    상기 데이터 시퀀스를 오류 정정 코딩하는데 사용된 오류 정정 코드에 기초 해, 상기 변조 인코딩하는 단계 이후의 상기 데이터 시퀀스에서 비트들의 위치들을 변경하기 위한 치환기를 포함하는 인코딩 장치.
  24. 저장을 위해 데이터 시퀀스를 인코딩하기 위한 장치로서,
    상기 데이터 시퀀스를 오류 정정 코딩하기 위한 오류 정정 인코더;
    상기 오류 정정 코딩된 데이터 시퀀스의 전부 또는 일부를 변조 인코딩하기 위한 변조 인코더; 및
    상기 데이터 시퀀스에 적용될 프리코딩에 기초해, 상기 변조 인코딩하는 단계 이후의 데이터 시퀀스에서 비트들의 위치들을 변경하기 위한 치환기를 포함하는 인코딩 장치.
  25. 저장 매체로부터 판독되는 비트 시퀀스를 디코딩하기 위한 장치로서,
    상기 판독 비트 시퀀스의 선택 부분들 하나 이상을 반전 프리코딩하기 위한 반전 프리코더; 및
    상기 반전 프리코딩이 적용된 후의 상기 판독 시퀀스의 일부 또는 전부에 변조 디코딩을 적용하기 위한 변조 디코더를 포함하는 디코딩 장치.
  26. 제 25 항에 있어서, 변조 코딩이 적용된 상기 판독 비트 시퀀스의 부분들만 반전 프리코딩하기 위한 반전 프리코더를 포함하는 디코딩 장치.
  27. 제 25 항에 있어서, 상기 판독 데이터 시퀀스에서 상기 변조 코딩된 비트들의 위치들을 변경하기 위한 치환기를 더 포함하는 디코딩 장치.
  28. 저장 매체로부터 판독되는 데이터 비트들에 반전 프리코딩을 적용하기 위한 반전 프리코더로서, 상기 저장 매체로부터 판독되는 데이터 비트들을 선택적으로 반전 프리코딩하는 반전 프리코더.
  29. 제 28 항에 있어서, 변조 코딩이 적용된 상기 판독 비트 시퀀스의 부분들만을 반전 프리코딩하는 반전 프리코더.
  30. 저장 매체로부터 판독되는 비트 시퀀스를 디코딩하기 위한 장치로서,
    변조 코딩되지 않은 임의의 데이터 비트들을 반전 프리코딩하는 것이 아니라, 변조 코딩에 의해 인코딩된 판독 데이터 비트들에 반전 프리코딩을 적용하기 위한 반전 프리코더; 및
    변조 인코딩된 상기 판독 비트 시퀀스의 부분 또는 부분들에 변조 디코딩을 적용하기 위한 변조 디코더를 포함하는 디코딩 장치.
  31. 제 30 항에 있어서, 상기 판독 데이터 시퀀스에서 상기 변조 코딩된 비트들의 위치들을 변경하기 위한 치환기를 더 포함하는 디코딩 장치.
  32. 저장 매체로부터 판독되는 데이터 비트들에 반전 프리코딩을 적용하기 위한 반전 프리코더로서, 상기 판독 데이터 비트들이 변조 인코더에 의해 변조 코딩되었는지의 여부에 기초해, 상기 저장 매체로부터 판독되는 데이터 비트들을 선택적으로 반전 프리코딩하는 반전 프리코더.
  33. 저장 매체로부터 판독되는 데이터 시퀀스를 디코딩하기 위한 장치로서,
    상기 판독 데이터 시퀀스에서 비트들의 위치들을 변경하기 위한 치환기;
    상기 재정렬된 데이터 시퀀스의 전부 또는 일부를 변조 디코딩하기 위한 변조 디코더; 및
    상기 변조 디코딩하는 단계 이후의 상기 데이터 시퀀스를 오류 정정 디코딩하기 위한 오류 정정 디코더를 포함하고,
    상기 판독 데이터 시퀀스에서 비트들의 위치들을 변경하는 단계는 상기 데이터 시퀀스를 오류 정정 코딩하는데 사용되는 오류 정정 코드에 기초하는 것인, 디코딩 장치.
  34. 저장 매체로부터 판독되는 데이터 시퀀스를 디코딩하기 위한 장치로서,
    상기 판독 데이터 시퀀스에서 비트들의 위치들을 변경하기 위한 치환기;
    상기 재정렬된 데이터 시퀀스의 전부 또는 일부를 변조 디코딩하기 위한 변조 디코더; 및
    상기 변조 디코딩하는 단계 이후의 상기 데이터 시퀀스를 오류 정정 디코딩 하기 위한 오류 정정 디코더를 포함하고,
    상기 판독 데이터 시퀀스에서 비트들의 위치들을 변경하는 것은 상기 데이터 시퀀스에 적용될 반전 프리코딩에 기초하는 것인, 디코딩 장치.
  35. 상기 제 1 항의 방법을 사용해 준비되는 데이터 시퀀스.
  36. 상기 제 6 항의 방법을 사용해 준비되는 데이터 시퀀스.
  37. 상기 제 7 항의 방법을 사용해 준비되는 데이터 시퀀스.
  38. 데이터 시퀀스의 하나 이상 부분들이 변조 코딩되었고 상기 데이터 시퀀스의 하나 이상이지만 전부는 아닌 부분들에 프리코딩이 가해진, 오류 정정 코딩된 데이터 시퀀스.
  39. 상기 제 15 항의 장치를 포함하는 데이터 저장 시스템.
  40. 상기 제 23 항의 장치를 포함하는 데이터 저장 시스템.
  41. 상기 제 25 항의 장치를 포함하는 데이터 저장 시스템.
  42. 상기 제 33 항의 장치를 포함하는 데이터 저장 시스템.
  43. 상기 제 22 항의 프리코더를 포함하는 데이터 저장 시스템.
  44. 상기 제 32 항의 반전 프리코더를 포함하는 데이터 저장 시스템.
  45. 입력 비트 시퀀스를 인코딩하는 방법을 수행하도록 하나 이상의 프로세서들을 프로그램하기 위한 프로세서 판독 가능 코드가 구현되어 있는 프로세서 판독 가능 저장 장치로서,
    상기 방법은,
    상기 입력 비트 시퀀스의 일부 또는 전부에 변조 코딩을 적용하는 단계; 및
    상기 변조 코딩이 적용된 이후의 상기 입력 비트 시퀀스의 선택 부분들 하나 이상을 프리코딩하는 단계를 포함하는 것인, 프로세서 판독 가능 저장 장치.
  46. 저장을 위해 데이터 시퀀스를 인코딩하는 방법을 수행하도록 하나 이상의 프로세서들을 프로그램하기 위한 프로세서 판독 가능 코드가 구현되어 있는 프로세서 판독 가능 저장 장치로서,
    상기 방법은,
    상기 데이터 시퀀스를 오류 정정 코딩하는 단계;
    상기 오류 정정 코딩된 데이터 시퀀스의 전부 또는 일부를 변조 인코딩하는 단계; 및
    상기 데이터 시퀀스를 오류 정정 코딩하는데 사용되는 오류 정정 코드에 기초해, 상기 변조 인코딩하는 단계 이후의 상기 데이터 시퀀스에서 상기 변조 코딩된 비트들의 위치들을 변경하는 단계를 포함하는 것인, 프로세서 판독 가능 저장 장치.
  47. 저장 매체로부터 판독되는 비트 시퀀스를 디코딩하는 방법을 수행하도록 하나 이상의 프로세서들을 프로그램하기 위한 프로세서 판독 가능 코드가 구현되어 있는 프로세서 판독 가능 저장 장치로서,
    상기 방법은,
    상기 데이터 시퀀스를 오류 정정 코딩하는 단계;
    상기 오류 정정 코딩된 데이터 시퀀스의 전부 또는 일부를 변조 인코딩하는 단계; 및
    상기 데이터 시퀀스에 적용될 프리코딩에 기초해, 상기 변조 인코딩하는 단계 이후의 상기 데이터 시퀀스에서 상기 변조 코딩된 비트들의 위치들을 변경하는 단계를 포함하는 것인, 프로세서 판독 가능 저장 장치.
  48. 저장 매체로부터 판독되는 비트 시퀀스를 디코딩하는 방법을 수행하도록 하나 이상의 프로세서들을 프로그램하기 위한 프로세서 판독 가능 코드가 구현되어 있는 프로세서 판독 가능 저장 장치로서,
    상기 방법은,
    상기 판독 비트 시퀀스의 선택 부분들 하나 이상을 반전 프리코딩하는 단계; 및
    상기 반전 프리코딩하는 단계가 적용된 후의 상기 판독 비트 시퀀스의 일부 또는 전부에 변조 디코딩을 적용하는 단계를 포함하는 것인, 프로세서 판독 가능 저장 장치.
  49. 저장 매체로부터 판독되는 데이터 시퀀스를 디코딩하는 방법을 수행하도록 하나 이상의 프로세서들을 프로그램하기 위한 프로세서 판독 가능 코드가 구현되어 있는 프로세서 판독 가능 저장 장치로서,
    상기 방법은,
    상기 판독 데이터 시퀀스에서 비트들의 위치들을 변경하는 단계;
    상기 재정렬된 데이터 시퀀스의 전부 또는 일부를 변조 디코딩하는 단계; 및
    상기 변조 디코딩하는 단계 이후의 상기 데이터 시퀀스를 오류 정정 디코딩하는 단계를 포함하고,
    상기 판독 데이터 시퀀스에서 비트들의 위치들을 변경하는 단계는 상기 데이터 시퀀스를 오류 정정 코딩하는데 사용되는 오류 정정 코드에 기초하는 것인, 프로세서 판독 가능 저장 장치.
  50. 저장 매체로부터 판독되는 데이터 시퀀스를 디코딩하는 방법을 수행하도록 하나 이상의 프로세서들을 프로그램하기 위한 프로세서 판독 가능 코드가 구현되어 있는 프로세서 판독 가능 저장 장치로서,
    상기 방법은,
    상기 판독 데이터 시퀀스에서 비트들의 위치들을 변경하는 단계;
    상기 재정렬된 데이터 시퀀스의 전부 또는 일부를 변조 디코딩하는 단계; 및
    상기 변조 디코딩하는 단계 이후의 상기 데이터 시퀀스를 오류 정정 디코딩하는 단계를 포함하고,
    상기 판독 데이터 시퀀스에서 비트들의 위치들을 변경하는 단계는 상기 데이터 시퀀스에 적용될 반전 프리코딩에 기초하는 것인, 프로세서 판독 가능 저장 장치.
KR1020067011627A 2003-12-18 2004-11-17 데이터 저장 시스템 KR100946032B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/739,966 2003-12-18
US10/739,966 US7395482B2 (en) 2003-12-18 2003-12-18 Data storage systems

Publications (2)

Publication Number Publication Date
KR20060133997A true KR20060133997A (ko) 2006-12-27
KR100946032B1 KR100946032B1 (ko) 2010-03-09

Family

ID=34677757

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067011627A KR100946032B1 (ko) 2003-12-18 2004-11-17 데이터 저장 시스템

Country Status (7)

Country Link
US (1) US7395482B2 (ko)
EP (1) EP1695350B1 (ko)
JP (1) JP4551408B2 (ko)
KR (1) KR100946032B1 (ko)
CN (1) CN1894748B (ko)
TW (1) TWI380601B (ko)
WO (1) WO2005064611A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140093248A (ko) * 2011-11-18 2014-07-25 쌘디스크 엔터프라이즈 아이피 엘엘씨 복수의 패리티 세그먼트를 갖는 코드워드를 디코딩하기 위한 시스템, 방법 및 장치들

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7594015B2 (en) * 2003-07-28 2009-09-22 Sap Ag Grid organization
US7386780B2 (en) * 2005-02-03 2008-06-10 Agere Systems Inc. Method and apparatus for encoding and precoding digital data within modulation code constraints
JP4956295B2 (ja) * 2007-06-27 2012-06-20 エルピーダメモリ株式会社 半導体記憶装置
US8276038B2 (en) * 2007-08-03 2012-09-25 International Business Machines Corporation Data storage systems
US8370702B2 (en) 2009-06-10 2013-02-05 Micron Technology, Inc. Error correcting codes for increased storage capacity in multilevel memory devices
US8406332B2 (en) * 2010-01-18 2013-03-26 Research In Motion Limited Downlink transmission in a multiple-user multiple-input multiple-output (“MU-MIMO”) wireless communication system
GB201320983D0 (en) * 2013-11-28 2014-01-15 Ibm Data encoding in solid-state storage apparatus
US9350388B2 (en) * 2014-03-07 2016-05-24 Storart Technology Co. Ltd. Data format with ECC information for on-the-fly decoding during data transfer and method for forming the data format

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5604497A (en) * 1995-10-10 1997-02-18 Lucent Technologies Inc. Apparatus and method for increasing density of run length limited block codes without increasing error propagation
US5757294A (en) * 1996-12-31 1998-05-26 Quantum Corporation Rate 24/25 modulation code for PRML recording channels
US6084535A (en) * 1997-01-30 2000-07-04 Mitel Semiconductor Americas Inc. System and method for generating many ones codes with hamming distance after precoding
US5784010A (en) * 1997-02-03 1998-07-21 International Business Machines Corporation Method and apparatus for implementing a set rate code for data channels with alternate 9-bit code words and 8-bit code words
WO2000008644A1 (fr) * 1998-08-07 2000-02-17 Sanyo Electric Co., Ltd. Appareil d'enregistrement
US6310909B1 (en) * 1998-12-23 2001-10-30 Broadcom Corporation DSL rate adaptation
JP2000322842A (ja) * 1999-05-13 2000-11-24 Sanyo Electric Co Ltd 記録装置
SG87129A1 (en) 1999-07-12 2002-03-19 Ibm Data encoding systems
US6795947B1 (en) * 1999-10-07 2004-09-21 The Regents Of The University Of California Parity check outer code and runlength constrained outer code usable with parity bits
JP2001266499A (ja) * 2000-03-23 2001-09-28 Sony Corp データ記録装置及びデータ記録方法、データ再生装置及びデータ再生方法、並びに、データ記録再生装置及びデータ記録再生方法
US7197084B2 (en) * 2002-03-27 2007-03-27 Qualcomm Incorporated Precoding for a multipath channel in a MIMO system
US7242724B2 (en) * 2003-07-16 2007-07-10 Lucent Technologies Inc. Method and apparatus for transmitting signals in a multi-antenna mobile communications system that compensates for channel variations

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140093248A (ko) * 2011-11-18 2014-07-25 쌘디스크 엔터프라이즈 아이피 엘엘씨 복수의 패리티 세그먼트를 갖는 코드워드를 디코딩하기 위한 시스템, 방법 및 장치들

Also Published As

Publication number Publication date
CN1894748A (zh) 2007-01-10
CN1894748B (zh) 2011-04-06
TWI380601B (en) 2012-12-21
US20050138518A1 (en) 2005-06-23
WO2005064611A1 (en) 2005-07-14
EP1695350B1 (en) 2017-03-01
US7395482B2 (en) 2008-07-01
JP4551408B2 (ja) 2010-09-29
EP1695350A1 (en) 2006-08-30
JP2007515035A (ja) 2007-06-07
KR100946032B1 (ko) 2010-03-09
TW200527826A (en) 2005-08-16

Similar Documents

Publication Publication Date Title
US7865799B2 (en) Recording format for information date, information recording/reproducing cording circuit
US7409622B1 (en) System and method for reverse error correction coding
US7783937B1 (en) Encoding and decoding apparatus and method with hamming weight enhancement
US7071851B1 (en) Techniques for implementing non-uniform constraints in modulation encoded data
US6130629A (en) Rate 24/25 (0,9) code method and system for PRML recording channels
KR20020025239A (ko) 연결된 에러 정정 코드를 구비하는 자기 기록 채널에서비동일 보호를 가지는 인코딩 방법 및 장치
US8276038B2 (en) Data storage systems
US7734993B2 (en) Method and apparatus for encoding and precoding digital data within modulation code constraints
US6476737B1 (en) Rate 64/65 (d=0, G=11/I=10) run length limited modulation code
KR100946032B1 (ko) 데이터 저장 시스템
JP3764453B2 (ja) エラー訂正のための符号化装置及び方法と復号化装置及び方法
KR101211244B1 (ko) 모듈레이션 코딩 및 디코딩
US6933865B1 (en) Method and apparatus for coded symbol stuffing in recording systems
US6204781B1 (en) General rate N/(N+1) (0, G) code construction for data coding
KR101332142B1 (ko) Lto-5 테이프용 rll 인코딩
Cai et al. On the design of spectrum shaping codes for high-density data storage
WO2006046925A1 (en) Method and system for encoding and decoding information with modulation constraints and error control
JP3810765B2 (ja) 複雑度を減らしたコードテーブルを使用する復調装置及びその方法
JP3704358B2 (ja) ディジタル情報信号の送信および受信
JP2008117441A (ja) ディジタルデータ記録再生装置
JPH10503355A (ja) 可変ブロック長でデータを符号化するための方法および装置
US20070182597A1 (en) Modulation code system and methods of encoding and decoding a signal
US6774825B2 (en) Modulation coding based on an ECC interleave structure
JP2000067531A (ja) 誤り訂正符号化/復号化方式及び誤り訂正符号化/復号化装置
KR20040014723A (ko) 에러 정정을 위한 부호화 장치 및 방법과 복호화 장치 및방법

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130124

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee