KR101114057B1 - Rll 인코딩 - Google Patents

Rll 인코딩 Download PDF

Info

Publication number
KR101114057B1
KR101114057B1 KR1020097018374A KR20097018374A KR101114057B1 KR 101114057 B1 KR101114057 B1 KR 101114057B1 KR 1020097018374 A KR1020097018374 A KR 1020097018374A KR 20097018374 A KR20097018374 A KR 20097018374A KR 101114057 B1 KR101114057 B1 KR 101114057B1
Authority
KR
South Korea
Prior art keywords
bits
bit
encoded
encoder
code
Prior art date
Application number
KR1020097018374A
Other languages
English (en)
Other versions
KR20090112746A (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 KR20090112746A publication Critical patent/KR20090112746A/ko
Application granted granted Critical
Publication of KR101114057B1 publication Critical patent/KR101114057B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits
    • H03M5/02Conversion to or from representation by pulses
    • H03M5/04Conversion to or from representation by pulses the pulses having two levels
    • H03M5/14Code representation, e.g. transition, for a given bit cell depending on the information in one or more adjacent bit cells, e.g. delay modulation code, double density code
    • H03M5/145Conversion to or from block codes or representations thereof
    • 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/14Digital recording or reproducing using self-clocking codes
    • G11B20/1403Digital recording or reproducing using self-clocking codes characterised by the use of two levels
    • G11B20/1423Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code
    • G11B20/1426Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code conversion to or from block codes or representations thereof
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits
    • H03M5/02Conversion to or from representation by pulses
    • H03M5/04Conversion to or from representation by pulses the pulses having two levels
    • H03M5/14Code representation, e.g. transition, for a given bit cell depending on the information in one or more adjacent bit cells, e.g. delay modulation code, double density code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
    • 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
    • G11B20/1403Digital recording or reproducing using self-clocking codes characterised by the use of two levels
    • G11B20/1423Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code
    • G11B20/1426Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code conversion to or from block codes or representations thereof
    • G11B2020/144616 to 17 modulation
    • 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
    • G11B20/1403Digital recording or reproducing using self-clocking codes characterised by the use of two levels
    • G11B20/1423Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code
    • G11B20/1426Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code conversion to or from block codes or representations thereof
    • G11B2020/1473Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code conversion to or from block codes or representations thereof modulation code without any merging bits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/90Tape-like record carriers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/90Tape-like record carriers
    • G11B2220/95Serpentine format, wherein a single track or group of tracks traverses the tape plural times from one end to the other
    • G11B2220/956Linear tape open [LTO] format

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Error Detection And Correction (AREA)

Abstract

인코딩되지 않은 m-비트 입력 시퀀스는 n 비트의 블록 및 m-n 비트의 블록으로 분할된다. n 비트의 블록은 인코딩된 n+1 비트의 제1 세트로 분할되는데, 제1 세트의 P1개의 서브블록 중의 적어도 하나는 G 제약조건, M 제약조건 및 I 제약조건을 만족한다. 인코딩된 n+1 비트의 제1 세트는 인코딩된 n+1 비트의 제2 세트로 매핑되는데, 제2 세트의 P2개의 서브블록 중의 적어도 하나는 1/(1+D2) 프리코딩 이후 적어도 Q1개의 천이를 발생시킨다. 인코딩된 n+1 비트의 제2 세트는 P3개의 인코딩된 서브블록으로 분할되고, P3개의 인코딩된 서브블록은 인코딩되지 않은 (m-n)/s개의 심볼 사이에 인터리빙되어 m+1 비트의 출력 시퀀스 코드워드를 형성하는데, 이는 이어서 데이터 저장 매체 상에 저장된다.
RLL 인코딩, 렌 길이 제한 코드, PRML, 코드워드, 모코드, LTO 표준

Description

RLL 인코딩{RLL ENCODING}
본 발명은 일반적으로 RLL 인코딩에 관한 것이다.
런 길이 제한(runlength-limited: RLL) 코드는 디지털 데이터의 기록 및 재생 과정에서 바람직하지 않은 시퀀스들을 제거하기 위해 자기 및 광학 데이터 저장소에 널리 사용되어 왔다. 다양한 종류의 RLL 코드가 실제로 사용된다. 예를 들어, 레이트(rate)-1/2 RLL(2,7) 및 레이트-2/3 RLL(1,7) 코드들과 같이 런 길이 제한 RLL(d,k) 제약 코드(constrained codes)를 사용하는 피크 검출 시스템은 낮은 정규화 선형 밀도(low normalized linear densities)의 디지털 자기 저장소에 널리 채택되어 왔다. 중간 정규화 선형 밀도에서, 데이터 저장소에 부분 응답 최대 유사(partial-response maximum-likelihood: PRML) 검출 채널을 도입하게 됨에 따라 서로 다른 종류의 제약 코드들이 필요하게 되었다. PRML(G,I) 또는 PRML(0,G,/) 코드들이라고 알려진 이 분류의 코드들은 검출 성능을 크게 저하시키지 않으면서도 타이밍 복구 및 이득 제어를 용이하게 하고, 시퀀스 검출기의 경로 메모리 길이를 제한하며, 따라서 디코딩 딜레이(decoding delay)를 제한한다. PRML(G,I) 코드들은 또한 1/(1
Figure 112009054071617-pct00001
D2) 프리코더(precoders) 및 PRML 개념을 일반화하는 노이즈 예측 최 대 유사(noise-predictive, maximum-likelihood: NPML) 채널들과 결부시켜 함께 사용될 수 있다(여기서,
Figure 112009054071617-pct00002
는 배타적 논리합(logical exclusive-OR) 동작을 의미한다). G 제약조건은 변조 인코더 출력(1/(1
Figure 112009054071617-pct00003
D2) 프리코더의 입력)에서의 0들(zeros)의 최대 런 길이를 G로 제한한다. I 제약조건은 인코더 출력(1/(1
Figure 112009054071617-pct00004
D2) 프리코더의 입력)의 짝수(even) 및 홀수(odd) 인터리브(interleave)에서의 0들의 최대 런 길이를 I로 제한한다.
데이터 저장 장치에 구현된 제1 PRML(G,I) 코드는 코드 레이트 8/9를 갖고 G=4 및 I=4의 제약조건을 만족하였다. 또한, 이 코드는 M 제약조건이라고도 알려진 VFO 제약조건을 만족하여, 인코딩된 데이터를 동기화 프리앰블로부터 구별할 수 있도록 하고, 따라서 PRML 수신기의 빠른 시동(start up)을 가능하게 한다. M 제약조건은 변조 인코더 출력(1/(1
Figure 112009054071617-pct00005
D2) 프리코더의 입력)에서의 1들(ones)의 최대 런 길이를 M으로 제한한다. G, I 및 M 제약조건을 만족하는 RLL 코드들의 분류는 PRML(G,I,M) 코드라고 알려져 있다. 기록된 VFO 패턴 ...++__++__... (1/(1
Figure 112009054071617-pct00006
D2) 프리코더의 출력)은 채널의 중심에서 주파수 1/(4T)의 톤(tone)으로 수신된다. VFO 제약조건(M 제약조건)은 주파수 밴드(0, 1/(2T))에서 0 또는 1의 스펙트럼 성분(spectral component)이 있는 데이터 패턴을 배제하는 앤티 휘슬 코드(anti-whistle codes)를 만드는데 사용되는 제약조건들로 일반화된다. 하드디스크 드라이브(HDD) 제품은 종종 VFO 제약조건을 필요로 하지 않는 구조를 사용하였다. 따 라서, 설계된 8/9 보다 높은 레이트의 고-레이트 PRML 코드들은 G 및 I 제약조건을 만족하지만 M 제약조건을 반드시 만족하지는 않는다.
2에서 4세대용 LTO(Linear Tape Open) 표준(LTO 2-4라 함)에 사용되는 RLL 코드는 1/(1
Figure 112009054071617-pct00007
D) 프리코딩을 필요로 하는 트윈스-제약(twins-constrained) 최대 천이 런 MTR(j,k,t) 코드이다. 이는 1/(1
Figure 112009054071617-pct00008
D) 프리코더의 입력에서의 j, k 및 t 제약조건을 만족한다. k 제약조건은 변조 인코더 출력(1/(1
Figure 112009054071617-pct00009
D) 프리코더의 입력)에서의 0들의 최대 런 길이를 k로 제한한다. j 제약조건은 변조 인코더 출력(1/(1
Figure 112009054071617-pct00010
D) 프리코더의 입력)에서의 1들의 최대 런 길이를 j로 제한한다. 트윈스 제약조건 t는 변조 인코더 출력(1/(1
Figure 112009054071617-pct00011
D) 프리코더의 입력)에서의 연속적인 트윈스(0들의 쌍 또는 1들의 쌍)의 최대 개수를 t로 제한한다. 1/(1
Figure 112009054071617-pct00012
D2) 프리코더의 입력에서의 G 및 I 제약조건은 1/(1
Figure 112009054071617-pct00013
D) 프리코더의 입력에서의 제약조건 j=G+1, k=G+1 및 t=I에 해당되는데, 여기서 PRML(G,I) 및 MTR(j,k,t) 제약조건들의 모든 세트는 기록된 패턴들(프리코더의 출력) 상의 동일한 제약조건 세트를 발생시킨다. LTO 2-4의 RLL 코드는 레이트-8/9 코드에 기초하는데, 이는 또한 VFO 제약조건을 만족하고, DSS(Data Set Separator) 및 Re Sync(Resynchronization) 패턴을 제외하며, 각각의 RLL 코드워드가 적어도 하나의 분리된 천이(isolated transition)를 갖도록 보장한다. LTO 2-4의 RLL 코드의 연결 레이트(concatenated rate)는 16/17인데, 이는 레이트-8/9 인코딩된 바이트가 코딩되지 않은 바이트로 연결되기 때문이다. LTO 2-4의 레이트-16/17 RLL 코드에 의해 만족되는 제약조건은 G=13, I=11 및 M=23에 해당된다. 추가적으로, ECC(error-correction-coding)와 함께 에러-레이트 성능에 매우 중요한 RLL 코드 파라미터는 에러 전파이다. 에러 전파는 RS(Reed-Solomon) 디코더 입력에서의 하나의 RS 코드워드의 두 개의 잘못된 심볼(erroneous symbols)을 야기하는 NRZ 비트 단위의 채널 에러 버스트(channel error burst)의 최소 길이로 정의된다. 에러 전파는 변조 코드 속성 및 ECC 코드워드의 인터리빙의 깊이(depth of interleaving)에 의존한다. LTO 2-4에서 양방향 인터리빙된 RS 코드워드들은 RLL 인코딩되고, 변조 코드의 에러 전파는 따라서 9 NRZ 비트이다. 검출기 출력에서의 에러 패턴의 대부분은 1에서 4 NRZ 비트 길이이기 때문에, 대부분의 경우 RS 코드워드의 하나의 심볼은 채널의 짧은(논-페이딩(non-fading)) 에러 버스트의 결과로서 오류가 있다.
레이트-8/9 PRML(G,I,M) 코드들의 생성이 이전에 설명되었다. 추가적으로, 생성된 비-연결(non-concatenated) PRML(G,I,M) 코드들의 레이트는 16/17 미만이다.
LTO 표준의 다음 세대(LTO 5)는 포맷 효율성을 증가시키기 위해 레이트-32/33 또는 레이트-48/49 RLL 코드를 가질 것이다. 그러한 코드들을 설계하는 하나의 방법은 레이트-32/33 또는 레이트-48/49 코드를 얻기 위해 각각 두 개 또는 네 개의 코딩되지 않은 추가적인 바이트를 삽입함에 의한 레이트-16/17 LTO 2-4의 직접적 확장이다. 그러나, 이 해결책은 G=29, I=19, M=39의 파라미터를 가진 레이트-32/33 RLL 코드 또는 G=45, I=27, M=55의 파라미터를 가진 레이트-48/49 RLL 코드라는 결과를 가져온다. 이 값들은 제약조건이 너무 약하기 때문에 수용가능하지 않다. 다른 하나의 해결책은 컴퓨터를 사용하여 레이트-16/17 인코드 및 디코드 테이블을 생성하고, 이 인코드 및 디코드 테이블에 기초하여 인코딩 및 디코딩을 위한 불리언-기반 또는 ROM-기반 로직을 생성하기 위해 컴퓨터-보조 설계 툴을 사용하는 것이다. 그러나, 이 해결책은 너무 복잡하고, 구현을 위해 채널당 500,000개보다 많은 게이트를 필요로 할 것이다. 추가적으로, 인코딩 동작은 LTO 5 표준에 포함될 수 있도록 컴팩트한 표현(compact representation)을 필요로 하는데, LTO 5 표준 내에 65,536 17-비트 코드워드를 상술하는 것은 수용가능하지 않다. 따라서, LTO 2-4 RLL 코드와 같이 유사한 제약조건들을 만족하는 RLL 코드를 설계하기 위한 알고리즘 접근법에 대한 요구가 있다.
본 발명은 m 비트의 데이터 입력 시퀀스를 m+1 비트의 출력 시퀀스 코드워드로 인코딩하는 방법을 제공하는데, 여기서 m은 ECC 심볼 사이즈 s의 정수배이다. 방법은 인코딩되지 않은 m-비트 입력 시퀀스의 데이터 스트림을 수신하는 단계 및 각각의 m-비트 입력 시퀀스를 n 비트의 제1 블록 및 인코딩되지 않은 m-n 비트의 제2 블록으로 분할하는 단계를 포함하는데, 여기서 n은 s의 정수배이다. n 비트의 제1 블록은 인코딩된 n+1 비트의 제1 세트로 분할되는데, 여기서 n+1 비트의 제1 세트의 P1개의 서브블록 중의 적어도 하나는 G 제약조건, M 제약조건, 및 I 제약조건을 만족한다. 인코딩된 n+1 비트의 제1 세트는 인코딩된 n+1 비트의 제2 세트로 일대일 방식으로 매핑되는데, 여기서 n+1 비트의 제2 세트의 P2개의 서브블록 중의 적어도 하나는 1/(1+D2) 프리코딩 이후에 적어도 Q1개의 천이를 발생시킨다. 인코딩된 n+1 비트의 제2 세트는 P3개의 인코딩된 서브블록으로 분할되고, P3개의 인코딩된 서브 블록은 (m+1)-비트 출력 시퀀스 코드워드를 형성하기 위해 (m-n)/s개의 인코딩되지 않은 심볼 사이에 인터리빙된다. 출력 시퀀스 코드워드는 이어서 데이터 저장 매체에 저장된다.
일 실시예에서, 인코더는 레이트-16/17 PRML(G=14,I=11,M=23) 모코드(mother code)를 발생시키는데, 이로부터 더 높은 레이트 코드들이 발생될 수 있다. 다양한 실시예에서, 그러한 더 높은 레이트 코드들은 레이트-32/33 PRML(G=14,I=11,M=23) 코드(RLL 1), 레이트-48/49 PRML(G=22,I=15,M=31) 코드(RLL 2) 및 레이트-48/49 PRML(G=14,I=19,M=39) 코드(RLL 3)를 포함한다.
본 발명의 실시예들이 이제 예시적일 뿐인 방법으로 아래의 첨부된 도면들을 참조하여 설명될 것이다.
도 1은 본 발명이 구현될 수 있는 데이터 저장 장치의 고레벨 블록도.
도 2A는 본 발명의 일 실시예의 모코드를 발생시키기 위한 레이트-16/17 인코더의 블록도.
도 2B는 본 발명의 일 실시예의 디코더의 블록도.
도 3A, 3B 및 3C는 각각 본 발명의 일 실시예의 레이트-16/17 인코더의 제1, 제2 및 제3 단계로부터의 출력 블록들을 표시하는 도면.
도 4는 네 개의 8-비트 심볼의 입력이 코딩된 비트 및 코딩되지 않은 비트를 다중화함으로써 32/33 코드를 위한 33-비트 코드워드로 변환되는 프로세스를 도시하는 도면.
도 5A, 5B는 본 발명의 일 실시예에 따라 레이트-32/33 PRML(G=14,I=11,M=23) 코드를 위해 구현될 수 있는 네 개의 C1 리드-솔로몬 인코더(Reed-Solomon encoders)의 출력에서의 8-비트 심볼의 4-방향 인터리빙(다중화) 방식을 도시하는 도면.
도 6은 본 발명의 일 실시예의 레이트-48/49 PRML(G=22,I=15,M=31) 코드를 위해 구현될 수 있는 4-방향 인터리빙 방식을 도시하는 도면.
도 7은 본 발명의 일 실시예의 레이트-48/49 PRML(G=14,I=19,M=39) 코드를 위해 구현될 수 있는 4-방향 인터리빙 방식을 도시하는 도면.
본 명세서에 설명되는 많은 기능적 유닛들은 도면들에 블록으로 도시되었는데, 이는 그 구현의 독립성을 특히 강조하기 위한 것이다. 예를 들어, 블록은 커스텀 VLSI 회로 또는 게이트 어레이, 로직 칩들과 같은 기성(off-the-shelf) 반도체, 트랜지스터, 또는 기타 개별 구성요소를 포함하는 하드웨어 회로로 구현될 수 있다. 블록은 또한 프로그램가능한 게이트 어레이, 프로그램가능한 어레이 로직, 프로그램가능한 로직 장치 등과 같은 프로그램가능한 하드웨어 장치로 구현될 수 있다.
블록들은 또한 다양한 종류의 프로세서에 의해 실행될 소프트웨어로 구현될 수 있다. 실행가능한 코드의 식별된 블록은, 예를 들어, 컴퓨터 명령어들의 하나 이상의 물리적 또는 논리적 블록을 포함할 수 있는데, 이는 예를 들어, 객체, 프로시져, 또는 함수로 정리될 수 있다. 그럼에도 불구하고, 식별된 블록의 실행가능 파일들(executables)은 물리적으로 함께 위치할 필요가 없고, 서로 다른 위치들에 저장된 이종의 명령어들을 포함할 수 있는데, 이들이 논리적으로 함께 결합되면 블록을 구성하고 블록의 기술된 목적을 성취한다.
실제로, 실행가능 코드의 블록은 하나의 명령어, 또는 다수의 명령어일 수 있고, 심지어는 몇몇 상이한 코드 세그먼트들로, 서로 다른 프로그램들 사이에, 그리고 몇몇 메모리 장치들 상에 분산될 수도 있다. 유사하게, 동작 데이터가 식별되고 여기에 블록 내에 도시될 수 있고, 임의의 적합한 형태로 포함될 수 있으며 임의의 적합한 종류의 데이터 구조에 정리될 수 있다. 동작 데이터는 하나의 데이터 세트로 수집될 수 있고, 또는 서로 다른 저장 장치들을 포함하는 서로 다른 위치들에 분산될 수 있으며, 적어도 부분적으로 단지 시스템 또는 네트워크 상의 전자 신호로서 존재할 수 있다.
더 나아가, 설명되는 본 발명의 특징, 구조, 또는 특성은 하나 이상의 실시예에서 임의의 적합한 방식으로 조합될 수 있다. 아래의 설명에서, 프로그래밍의 예, 소프트웨어 블록, 논리 블록, 사용자 선택, 네트워크 거래, 데이터베이스 쿼리, 데이터베이스 구조, 하드웨어 블록, 하드웨어 회로, 하드웨어 칩 등과 같은 다수의 구체적 세부사항들이 본 발명의 실시예들의 완전한 이해를 위해 제공된다. 그러나, 관련 분야의 당업자는 본 발명이 하나 이상의 특정 세부사항이 없이, 또는 다른 방법, 구성요소 등과 함께 실시될 수 있다고 이해할 것이다. 다른 경우에, 잘 알려진 단계, 구성요소 또는 동작은 본 발명의 특징을 불명확하게 하지 않기 위해 상세히 도시되거나 설명되지 않았다.
본 발명의 실시예들은 더 높은-레이트 PRML(G,I,M) 코드들의 설계에 대한 알고리즘 접근법을 제공하는데, 이렇게 더 높은-레이트 PRML(G,I,M) 코드들은 또한 코드워드당 천이가 최소 개수가 되도록 한다. 레이트-16/17 PRML(G=6,I=7,M=15) "모코드"가 제공되는데, 이러한 코드는 코드워드당 적어도 네 개의 천이가 요구된다. 이를 위해, 인코더로의 입력은 블록들의 제2 세트로 매핑되는 블록들의 제1 세트로 분할되고, G, I 및 M 제약조건들은 블록들의 제2 세트의 적어도 하나에 부과된다. 인코딩 동작은 초기에 위반을 검출하고 발생한 위반의 종류를 인코딩된 데이터에 지시함으로써 수행된다. 위반 검출 및 치환에 의한 인코딩의 다음 단계들은 코드 제약조건들을 강화하고 DSS 및 RE Sync 패턴들을 제외한다. 모코드는 이어서 코딩되지 않은 8-비트 바이트들을 모코드로부터의 17-비트 출력과 함께 조합함으로써 더 높은-레이트 32/33 또는 48/49 PRML(G,I,M) 코드들을 생성하는데 사용된다. 본 발명은 또한 레이트-32/33 PRML(G=14,I=11,M=23) 코드(RLL 1), 레이트-48/49 PRML(G=22,I=15,M=31) 코드(RLL 2) 및 레이트-48/49 PRML(G=14,I=19,M=39) 코드(RLL 3)를 제공한다.
표기법
표기법 x(i) 및 xi는 여기서 벡터 x의 성분들을 나타내기 위해 서로 교환가능하게 사용된다. 다음의 표현은 n 성분이 있는 행 벡터 x를 위해 사용된다.
x = [x(1) x(2) ... x(n)] = [x1 x2 ... xn] = [x1 x2 ... xn] = x(1:n)
열 벡터들은 종종 행 벡터의 전치(transpose)에 의해 특정되고, 전치 동작을 지시하기 위해 윗첨자 T가 사용된다.
두 개의 서로 다른 표기법이 여기서 불리언 동작들에 대해 사용된다. 다음의 규정은 불리언 코드 제약조건을 특정하고 행렬 및 벡터의 곱셈을 포함하는 불리언 동작들을 수행하기 위해 사용되었다: 윗선은 부정, 곱셈은 AND, 덧셈은 OR을 나타냄. 이 세 동작들 중에, 부정이 가장 높은 우선권을 갖고, AND(곱셈)이 두 번째로 높은 우선권을 가지며 OR(덧셈)은 가장 낮은 우선권을 갖는다. 배타적 OR(XOR)은
Figure 112009054071617-pct00014
로 표시된다.
불리언 로직에 기초한 인코더 및 디코더 하드웨어는 불리언 동작들에 대한 MATLAB 표기법을 사용하여 특정된다. 구체적으로, ~는 부정, &는 AND, |는 OR을 나타낸다. 다시, 이 세 동작들 중에, 부정(~)이 가장 높은 우선권을 갖고, 다음은 AND(&)이며, OR(|)이 가장 낮은 우선권을 갖는다(즉, 보통의 불리언 우선권 규칙이 적용됨).
다음 섹션은 결과 코드에 대한 요구사항을 금지된 출력 시퀀스에 의하여 설명하는데, 이는 따라서 모코드 상의 요구사항을 결정한다. 모코드를 생성하는 단계들은 텍스트 및 컴팩트 행렬 표기법(compact matrix notation)의 표시를 통해 설 명된다. 이 섹션 다음에 모코드에 대응하는 디코더를 설명하는 섹션이 이어진다. 다음은 모코드에 대한 제3 인코딩 및 디코딩 단계들을 위한 요구사항들의 불리언 리스트를 MATLAB 포맷으로 포함하는 섹션들이다. 마지막으로, 마지막 세 섹션은 모코드로부터의 레이트-32/33 PRML(G=14,I=11,M=23) 코드, 레이트-48/49 PRML(G=22,I=15,M=31) 코드 및 레이트-48/49 PRML(G=14,I=19,M=39) 코드의 설계를 설명한다.
도 1은 본 발명이 구현될 수 있는 데이터 저장 장치(100)의 고레벨 블록도이다. 장치(100)는 호스트(10)로부터 사용자 데이터를 수신하는 인코더(200)를 포함한다. 인코더(200)는 여기에 설명될 것처럼 데이터를 인코딩하고, 인코딩된 데이터를 프리코더(102)로 전달하는데, 프리코더(102)는 LTO 표준에서와 같이 기록-등화(write-equalization) 기능을 포함할 수 있다. 제어기(104)는 프리코딩된 데이터를 수신하고 이를 기록 채널(106)로 전송하는데, 기록 채널(106)은 인코딩된 데이터를 데이터 저장 매체(20) 상에 기록한다.
저장 장치(100)는 저장 매체(20)로부터 데이터를 판독하고 이를 제어기(104)로 전송하는 판독 채널(108)을 더 포함한다. 제어기(104)는 데이터를 검출기(110)로 보내는데, 검출기(110)는 데이터를 처리(예를 들어, 역 프리코딩(inverse precoding))하고 디코더(210)로 전달한다. 디코더는 여기에 설명될 것처럼 데이터를 디코딩하고, 디코딩된 데이터를 호스트(10)로 보낸다.
최소 천이 밀도의 레이트-16/17 PRML(G=6,I=7,M=15) 모코드의 생성
도 2A는 인코더(200)의 블록도이다. 인코더(200)는 인코딩되지 않은 사용자 데이터 a(1:16)를 수신하고, K 인코딩 단계들을 사용하여 레이트-16/17 PRML(G=6,I=7,M=15) 모코드 y(1:17)를 출력한다. 여기에 도시되고 설명된 인코더(200)의 예는 K=3 인코딩 단계들(202, 204, 206)을 포함하지만, 더 많거나 적은 단계들이 사용될 수 있다. k번째 인코딩 단계의 출력 ok E(바이너리 열 벡터)은 바이너리 입력 ik E(바이너리 열 벡터)에 의존하는 바이너리 변환 행렬 Mk E = gk E(ik E)과 바이너리 분할 벡터 nk E = hk E(ik E)(바이너리 열 벡터)의 곱셈에 의해 다음과 같이 기술될 수 있다.
ok E = Mk Enk E = gk E(ik E)hk E(ik E)
여기서 윗첨자 E는 인코딩 동작을 나타내고, 행렬 곱셈의 덧셈 및 곱셈 동작들은 순서대로 불리언 OR 및 불리언 AND 동작들이다. 일정한 16-비트 인코더 입력에 대해, 분할 벡터의 하나의 성분만이 1이고 다른 모든 성분은 0이다. 이 속성은 입력 공간이 상호 배타적인 방식으로 분할된다는 사실에 관련된다. 마지막으로, 인코딩 단계들의 연결은 k번째 인코딩 단계(3-단계 시스템에서 k=1,2)의 출력이 다음 인코딩 단계의 입력이 되도록 이루어진다(즉, ik +1 E = ok E).
제1 인코더 단계
제1 인코더 단계(202)는 제1 인코더 단계(202)의 17-비트 출력의 P1=4개의 서브블록 중 적어도 하나가 G, I 및 M 제약조건을 만족하도록 보장한다. 제1 인코더 단계(202)의 출력 o1 E = bT = [b1b2...b17]T은 17x1 바이너리 열 벡터이다. 단계(202)의 17-비트 출력의 P1=4개의 서브블록은 도 3A에 b1b2b3b4, b5b6b7b8, b9b10b11b12b13 및 b14b15b16b17로 도시되어 있다. 네 출력 벡터를 연결하면 PRML(G=6,I=9,M=20) 코드가 된다. 처음의 네 비트 b1b2b3b4는 전부 0이 되도록 허용되지 않는다. 유사하게, 다음 네 비트 b5b6b7b8 역시 전부 0이 되도록 허용되지 않는다. 다음 다섯 비트 b9b10b11b12b13는 {00000, 00010, 01000, 01010, 00001, 00100, 00101, 10000, 10001, 10100, 10101, 11111}의 12개의 5-비트 조합 중 어느 것도 허용되지 않아서, 이 5-비트 조합에 G, I 및 M 제약조건을 부과한다. 마지막 네 비트 또한 전부 0이 되도록 허용되지 않는다. G 제약조건만이 4-비트 조합에 부과되었다는 것에 주목하자.
출력 b는 레이트-32/33 PRML(G,I,M) 코드를 생성하기 위해 사용될 8 비트 및 9 비트 크기의 두 블록들로 분할될 수 있다. 유사하게, 출력 b는 레이트-48/49 PRML(G,I,M) 코드를 생성하기 위해 사용될 4 비트, 4 비트, 5 비트, 및 4 비트 크기의 네 블록들로 분할될 수 있다. 제1 인코더 단계(202)의 마지막에는 최대 (24- 1)(24-1)(25-12)(24-1) = 67,500 코드워드들이 존재한다. 67,500 > 216이기 때문에, 제1 단계는 16 비트를 17 비트로 매핑하는 레이트-16/17 코드로 성취될 수 있다. 12개의 제외된 비트 패턴 b9b10b11b12b13 중 세 개(즉, {00010, 01010, 11111})만이 네 번째 위치에 1을 갖는다는 것(즉, b12 = 1)을 주목하자. 따라서, 만약 a1a2a3a4가 0이 아니고, a5a6a7a8이 0이 아니며, a9a10a11a12는 {0000, 0100, 1111}의 세 가지 비트 패턴들 중의 하나가 아니고, a13a14a15a16이 0이 아니라면, 16x1 인코더 입력 벡터 i1 E = aT = [a1a2...a16]T는 [b1b2b3b4] = [a1a2a3a4], [b5b6b7b8] = [a5a6a7a8], [b9b10b11b13] = [a9a10a11a12], [b14b15b16b17] = [a13a14a15a16] 및 b12 = 1의 치환을 사용하여 o1 E = bT = [b1b2...b17]T로 매핑된다. 따라서, 다음과 같은 여섯 종류의 위반이 발생할 수 있다: a1a2a3a4가 모두 0, a5a6a7a8이 모두 0, a9a10a11a12가 {0000, 0100, 1111}의 비트 패턴들 중의 하나 또는 a13a14a15a16이 모두 0. 위반은 b12 = 0 및 b10 = 1에 의해 지시될 수 있다. 단일 위반의 종류는 세 비트 [b9b11b13]에 의해 지시될 수 있다. 이 세 비트는 I 코드 제약조건을 위반하지 않기 위해 모두 0이 되도록 허용되지 않는다. 그리고 세 비트 조합중 하나인, 예에서 모두 1인 비트 패턴 [b9b11b13] = [111]은 하나 이상의 위반이 발생했다는 것을 지시하기 위해 사용된다. 따라서, 정확히 6개의 세 비트 패턴 {001, 010, 011, 100, 101, 110}이 남는데, 이는 단일 위반의 종류를 지시하기 위해 사용될 수 있다. 만약 패턴들 a1a2a3a4, a5a6a7a8 및 a13a14a15a16 중의 하나만이 모두 0이라면, a9a10a11a12의 정보는 위반한 비트 패턴으로 위치된다. 예를 들어, 만약 a5a6a7a8이 모두 0이라면, [b5b6b7b8] = [a9a10a11a12] 등이다. 무위반에 대한 하나의 부분 및 단일 위반에 대한 6개의 부분이 이제까지 얻어졌다. 12개의 가능한 두 위반 및 13개의 가능한 셋 또는 네 위반도 있어서 총 1+6+12+13 = 32 제1 단계 부분들이 된다. 만약 둘, 셋 또는 네 위반이 발생한다면, 위반의 종류는 단일 위반의 경우와 같이 출력에 지시되며, 비-위반 블록들은 필요한 경우 재편성된다. 다음 섹션에서, 32x1 바이너리 분할 벡터 n1 E = h1 E(i1 E) = pT = [p(1) p(2) ... p(32)]T 및 바이너리 17x32 행렬 M1 E = g1 E(i1 E) = [M1 ,1 E M1 ,2 E]에 대한 정확한 표현이 두 17x16 서브행렬 B1 및 B2에 의해 설명될 것이다.
제1 인코더 단계(202) 후에 o1 E = b′= [b1b2...b17]′에 의해 만족되는 제약조건은 다음과 같다.
G 제약조건:
b1 + b2 + b3 + b4 = 1
b5 + b6 + b7 + b8 = 1
b9 + b10 + b11 + b12 = 1
b10 + b11 + b12 + b13 = 1
b14 + b15 + b16 + b17 = 1
I 제약조건:
b9 + b11 + b13 = 1
b10 + b12 = 1
M 제약조건:
b9 b10 b11 b12 b13 = 0
따라서, 제1 인코더 단계(202)의 출력에서 얻어진 코드는 PRML(G=6,I=9,M=20) 코드이다.
제2 인코더 단계
제2 인코더 단계(204)는 금지된 패턴을 검출하여 코드 제약조건 I 및 M을 더 강화하고, 코드를 위반하지 않는 바람직한 패턴으로의 이후의 치환은 디코딩 과정에서 고유하게 인식될 수 있다. 제1 인코더 단계(202)는 제1 인코더 단계(202)의 17-비트 출력 b의 P1 = 4개의 서브블록의 제3 번째가 G, I 및 M 제약조건을 만족하도록 보장한다. 제1 인코더 단계(202)는 4-비트 모두 0인 패턴이 서브블록으로 발생하도록 허용하지 않음으로써 남아있는 세 4-비트 서브블록들이 G 제약조건을 만 족하도록 보장한다. 제2 인코더 단계(204)는 제1 인코더 단계(202)의 바람직하지 않은 17-비트 출력 b를 바람직한 17-비트 출력 c로 다시 매핑한다. 도 3B는 제2 인코더 단계(204)의 17-비트 출력 c의 두 서브블록을 도시한다. 구체적으로, 제2 인코더 단계(204)는 금지된 패턴들을 검출하고 그들을 치환 패턴들로 대체하며, 따라서 제2 인코더 단계(204)의 17-비트 출력 c의 두 서브블록의 제1 번째가 I 및 M 제약조건을 만족하도록 보장한다. 제2 인코더 단계(204)의 17-비트 출력의 제1 서브블록은 c1c2c3c4c5c6c7c8이고, 제2 서브블록은 c9c10c11c12c13c14c15c16c17이다. 제2 서브블록은 제1 단계에서의 인코딩의 결과로서 이미 I 및 M 제약조건을 만족한다는 것을 주목하자. 표 I은 제2 인코더 단계(204)의 금지된 패턴들 및 대응하는 치환 패턴들을 보여준다.
표 I
17-비트 금지된 패턴 b 17-비트 치환 패턴 c
0 b2 0 b4 0 b6 0 b8 b9 b10 b11 b12 b13 b14 b15 b16 b17 b2 0 b4 b14 b6 b10 b8 b12 b9 0 b11 0 b13 1 b15 b16 b17
b1 0 b3 0 b5 0 b7 0 b9 b10 b11 b12 b13 b14 b15 b16 b17 b14 1 b9 b15 b11 b10 b13 b12 b1 0 b3 0 b5 1 b7 b16 b17
1 1 1 1 1 1 1 1 b9 b10 b11 b12 b13 b14 b15 b16 b17 b14 b15 1 b9 b10 b11 b12 b13 1 1 1 1 1 0 1 b16 b17
금지된 패턴 b 내의 굵은 패턴은 인코딩의 제2 단계 동안 위반들을 검출하기 위해 사용되고, 치환 패턴 c 또는 d(만약 채널 에러들 및 제1 디코더 단계(212)의 에러들의 존재가 고려된다면, 제2 인코더 단계(204)의 출력 c는 제2 디코더 단계(214)의 입력 d가 됨) 내의 굵은 패턴은 디코딩의 제2 단계 동안 필요한 역 치환을 검출하는데 사용된다. 만약 제2 인코더 단계(204)에서 세 금지된 패턴들 중 어 느 것도 검출되지 않았다면, 제2 인코더 단계(204)의 출력은 그 입력과 같다(즉, c=b). 따라서, 제2 인코더 단계(204)에 네 부분(세 치환 및 치환의 부재)이 존재한다.
제2 인코더 단계(204) 후에 o2 E = cT = [c1c2...c17]T에 의해 만족되는 제약조건은 다음과 같다.
G 제약조건:
c1 + c2 + c3 + c4 = 1
c5 + c6 + c7 + c8 = 1
c6 + c7 + c8 + c9 + c10 + c11 + c12 = 1
c10 + c11 + c12 + c13 + c14 = 1
c14 + c15 + c16 + c17 = 1
I 제약조건:
c1 + c3 + c5 + c7 = 1
c2 + c4 + c6 + c8 = 1
c9 + c11 + c13 = 1
c10 + c12 + c14 = 1
c6 + c8 + c10 + c12 = 1
M 제약조건:
c9 c10 c11 c12 c13 c14 = 0
c1 c2 c3 c4 c5 c6 c7 c8 = 0
따라서, 제2 인코더 단계(204)의 출력에서 얻어진 코드는 PRML(G=6,I=7,M=15) 코드이다.
제3 인코더 단계
도 3C는 제3 인코더 단계(206)의 17-비트 출력 y의 P2 = 2개의 서브블록을 도시한다. 제3 인코더 단계(206)는 최소 천이 밀도를 증가시키고, 인코더의 출력 y가 1/(1
Figure 112009054071617-pct00015
D2) 프리코딩 이후의 기록된 패턴에 적어도 Q2 = 4개의 천이를 발생시키도록 보장한다. 이 단계의 동기는 변조 인코딩된 데이터(데이터 분리 시퀀스(DSS), 24 비트 주기의 시퀀스, LTO 4의 24-비트 Re Sync 패턴)로부터 두 개의 낮은 천이 밀도 패턴을 제외하는(즉, 나타나지 않도록 방지하는) 것이다. T가 채널 비트 주기라고 할 때, DSS는 연속적인 12T 마그넷으로 구성되고(자화(magnetization)는 기록 등화가 고려되지 않는다면 12T의 간격 동안 동일하게 유지됨), LTO 4의 Re Sync는 10T 마그넷으로 구성되며 11T 마그넷 및 12T 마그넷이 뒤따른다. 보다 구체적으로, 제3 인코더 단계(206)는 인코딩된 블록들 [y1y2y3y4y5y6y7y8] 및 [y9y10y11y12y13y14y15y16y17]의 각각이 NRZI 표기로 변환되었을 때 적어도 두 개의 천이(NRZI 1들)를 가져오도록 보장한다. 따라서, 전체 인코더의 출력 y는 1/(1
Figure 112009054071617-pct00016
D2) 프리코딩 이후의 기록된 패턴에 적어도 Q2 = 4개의 천이를 발생시킨다. 이전에 기술된 바와 같이, 이 코드 속성은 낮은 천이 밀도 패턴 DSS 및 Re Sync가 변조 인코딩된 데이터에서 제외되는 것을 보장하는데 사용된다.
코딩된 데이터 y는 1/(1
Figure 112009054071617-pct00017
D2) 프리코더를 사용하여 프리코딩 되어야만 한다. 1/(1
Figure 112009054071617-pct00018
D2) 프리코더는 1/(1
Figure 112009054071617-pct00019
D) 유형의 두 프리코더의 직렬 연결에 의해 표현될 수 있다는 것이 잘 알려져 있다. LTO 1-4에서, 1/(1
Figure 112009054071617-pct00020
D) 프리코딩은 기록 등화와 함께 수행된다. 따라서, 코딩된 데이터 y의 1/(1
Figure 112009054071617-pct00021
D) 프리코딩은 충분할 수 있다. 이하에서, 표기 y'은 1/(1
Figure 112009054071617-pct00022
D) 프리코딩된 코딩된 데이터 y에 대해 사용된다. y'의 성분들은 NRZI 표기(0은 천이 없음을 나타내고, 1은 천이를 나타냄)의 비트들이라는 것을 주목하자. 코딩되지 않은 데이터는 전혀 프리코딩되지 않거나, 1/(1
Figure 112009054071617-pct00023
D) 프리코딩되거나, 1/(1
Figure 112009054071617-pct00024
D2) 프리코딩될 수 있다. 에러-레이트 성능의 관점에서, 코딩되지 않은 데이터를 프리코딩하지 않는 것이 바람직하다. 그러나, 1/(1
Figure 112009054071617-pct00025
D) 프리코딩이 이미 LTO 1-4의 기록 등화와 함께 사용되었기 때문에, 1/(1
Figure 112009054071617-pct00026
D) 프리코딩을 사용하는 것이 더 바람직할 수 있다. 따라서, 1/(1
Figure 112009054071617-pct00027
D)(NRZI) 프리코딩이 코딩되지 않은 데이터에 대해 사용되었고, 제1 코딩된 서브블록 [y1y2y3y4y5y6y7y8] 앞의 코딩되지 않은 비트는 U1이며, 제2 코딩된 서브블록 [y9y10y11y12y13y14y15y16y17] 앞의 코딩되지 않은 비트(NRZI)는 U2라고 가정하면, 최소 천이 밀도 제약조건들은 두 세트의 요구사항으로 번형된다.
제1 코딩된 서브블록이 1/(1
Figure 112009054071617-pct00028
D2) 프리코딩 이후에 적어도 Q1 = 2개의 천이를 발생시키도록 보장하는, 요구사항들의 제1 세트는
Figure 112009054071617-pct00029
여기서 위의 식의 모든 덧셈은 정수 덧셈이고,
Figure 112009054071617-pct00030
그리고
Figure 112009054071617-pct00031
은 1/(1
Figure 112009054071617-pct00032
D) 프리코딩된 제1 서브블록이다.
제2 코딩된 서브블록이 1/(1
Figure 112009054071617-pct00033
D2) 프리코딩 이후에 적어도 Q1 = 2개의 천이를 발생시키도록 보장하는, 요구사항들의 제2세트는
Figure 112009054071617-pct00034
여기서 위의 식의 모든 덧셈은 정수 덧셈이고,
Figure 112009054071617-pct00035
그리고
Figure 112009054071617-pct00036
은 1/(1
Figure 112009054071617-pct00037
D) 프리코딩된 제1 서브블록이다.
제3 인코더 단계(206)는 제2 인코더 단계(204)의 바람직하지 않은 17-비트 출력 c를 바람직한 17-비트 출력 y로 다시 매핑한다. 구체적으로, 제3 인코더 단계(206)는 금지된 패턴들을 검출하고 그들을 치환 패턴들로 대체하여, 제3 인코더 단계(206)의 17-비트 출력 y의 P2 = 2개의 서브블록(도 3C)의 각각이 1/(1
Figure 112009054071617-pct00038
D2) 프리코딩 이후의 기록된 패턴에 적어도 두 천이가 발생하도록 보장한다. 제3 인코더 단계(206)의 17-비트 출력의 제1 서브블록은 y1y2y3y4y5y6y7y8이고, 제2 서브블록은 y9y10y11y12y13y14y15y16y17이다. 표 II는 제3(최종) 인코딩 단계)의 금지된 패턴들 및 대응하는 치환 패턴들을 보여준다.
표 II
17-비트 금지된 패턴 c 17-비트 치환 패턴 y
0 0 0 1 1 0 0 0 c9 c10 c11 c12 c13 c14 c15 c16 c17 c10 c12 1 1 0 0 0 0 c9 1 c11 0 c13 c14 c15 c16 c17
c1 c2 c3 c4 c5 c6 c7 c8 0 0 0 0 1 1 0 0 0 c1 c2 c3 c4 c5 c6 1 1 0 c7 0 c8 0 1 1 0 1
금지된 패턴 c 내의 굵은 패턴은 인코딩의 제3 단계 동안 위반들을 검출하기 위해 사용되고, 치환 패턴 y 또는 z(만약 채널 에러들의 존재가 고려된다면, 제3 인코더 단계(206)의 출력 y는 제1 디코더 단계(212)의 입력 z가 됨) 내의 굵은 패턴은 디코딩의 제1 단계 동안 필요한 역 치환을 검출하는데 사용된다. 만약 제3 인코더 단계(206)에서 세 금지된 패턴들 중 어느 것도 검출되지 않았다면, 제3 인코더 단계(206)의 출력은 그 입력과 같다(즉, y=c). 따라서, 제3 인코더 단계(206)에 세 부분(두 치환 및 치환의 부재)이 존재한다.
제3 인코더 단계(206) 후에 o3 E = y′ = [y1y2...y17]′에 의해 만족되는 제약조건은 다음과 같다.
G 제약조건:
y1 + y2 + y3 + y4 = 1
y4 + y5 + y6 + y7 + y8 = 1
y5 + y6 + y7 + y8 + y9 + y10 = 1
y6 + y7 + y8 + y9 + y10 + y11 + y12 = 1
y10 + y11 + y12 + y13 + y14 = 1
y14 + y15 + y16 + y17 = 1
I 제약조건:
y1 + y3 + y5 + y7 = 1
y2 + y4 + y6 + y8 = 1
y6 + y8 + y10 + y12 = 1
y7 + y9 + y11 + y13 = 1
y9 + y11 + y13 + y15 = 1
y10 + y12 + y14 = 1
M 제약조건:
y1 y2 y3 y4 y5 y6 y7 y8 = 0
y9 y10 y11 y12 y13 y14 = 0
최소 천이 밀도 제약조건:
Figure 112009054071617-pct00039
제3(그리고 k=1,2,3의 경우에 최종) 인코딩 단계의 출력에서 얻어지는 코드는 PRML(G=6,I=7,M=15) 코드인데, 이는 코드워드당 적어도 Q2 = 4개의 천이를 강제한다. 제2 및 제3 인코더 단계(204, 206)는 선택적으로 바람직하지 않은 패턴들을 바람직한 패턴들로 재매핑하는 하나의 단계로 조합될 수 있는데, 여기서 재매핑은 디코딩 동안 역 동작을 허용하는 방식으로 발생한다.
디코딩
도 2B는 디코더(210)의 블록도이다. 디코더(210)는 레이트-16/17 PRML(G=6,I=7,M=15) 인코딩된 데이터 z(1:17)를 수신하고, k 인코딩 단계들을 사용하여 인코딩되지 않은 사용자 데이터 f(1:16)를 출력한다. 여기에 도시되고 설명되는 디코더(210)의 예는 K = 3 디코딩 단계들(212, 214, 216)을 포함하지만, 더 많거나 적은 단계들이 사용될 수 있다. 세 단계들(212, 214, 216)은 인코딩 단계들에서 수행된 동작들의 역을 제공한다: 제1 디코더 단계(212)는 제3 인코더 단 계(206)의 역이고, 제2 디코더 단계(214)는 제2 인코더 단계(204)의 역이며, 제3 디코더 단계(216)는 제1 인코더 단계(202)의 역이다. k번째 디코딩 단계의 출력 ok D(바이너리 열 벡터)는 바이너리 입력 ik D(바이너리 열 벡터)에 의존하는 바이너리 변환 행렬 Mk D = gk D(ik D)과 바이너리 분할 벡터 nk D = hk D(ik D)(바이너리 열 벡터)의 곱셈에 의해 다음과 같이 기술될 수 있다.
ok D = Mk Dnk D = gk D(ik D)hk D(ik D)
여기서 윗첨자 D는 디코딩 동작을 나타낸다. 마지막으로, 디코딩 단계들의 연결은 k=1,2의 k번째 디코딩 단계(일반적으로, k=1, ..., K-1)의 출력이 다음 디코딩 단계의 입력이 되도록 이루어진다(즉, ik +1 D = ok D).
레이트-16/17 인코더 및 디코더 구현에 대한 섹션에서 볼 수 있듯이, 인코더 및 디코더는 약간의 2-입력 게이트들로 구현될 수 있다. 인코딩 및 디코딩에 대한 모든 불리언 식들은 다음의 두 섹션에 구체화되는 특정 행렬과 분할 열 벡터의 곱셈의 결과이다.
최소 천이 밀도의 레이트-16/17 PRML(G=6,I=7,M=15) 코드에 대한 인코딩 단계들의 행렬-벡터 기술
이 섹션에서, 16 비트에서 17 비트로의 인코딩(즉, 모코드의 코드워드들의 발생)은 행렬-벡터 표기를 사용하여 완전히 기술된다. 세 인코딩 단계들(202, 204, 206) 모두의 컴팩트 표현이 제시된다. 16 입력 비트들 a(1) ... a(16)은 제1 인코더 단계(202)로의 입력이고, 이어서 제3 레벨 인코더 출력에서 17-비트 모코드 출력 비트들 y(1) ... y(17)을 만들기 위해 아래에 설명되는 단계들의 각각을 통해 처리된다. 33-비트 또는 49-비트 코드워드를 생성하는 마지막 단계는 17-비트 인코더 출력을 코딩되지 않은 16 또는 32 비트로 인터리빙하는 것이다. 이 마지막 단계는 마지막 세 섹션에서 간략히 설명된다.
인코딩 단계 1:
입력 열 벡터:
Figure 112009054071617-pct00040
변환 행렬:
Figure 112009054071617-pct00041
Figure 112009054071617-pct00042
Figure 112009054071617-pct00043
분할 열 벡터:
Figure 112009054071617-pct00044
, 여기서 다음의 여섯 보조 변수(auxiliary variables):
Figure 112009054071617-pct00045
가 분할 벡터의 성분들을 표현하기 위해 사용됨:
Figure 112009054071617-pct00046
출력 열 벡터:
Figure 112009054071617-pct00047
인코딩 단계 2:
입력 열 벡터:
Figure 112009054071617-pct00048
변환 행렬:
Figure 112009054071617-pct00049
Figure 112009054071617-pct00050
분할 열 벡터:
Figure 112009054071617-pct00051
, 여기서
Figure 112009054071617-pct00052
출력 열 벡터:
Figure 112009054071617-pct00053
인코딩 단계 3:
입력 열 벡터:
Figure 112009054071617-pct00054
변환 행렬:
Figure 112009054071617-pct00055
Figure 112009054071617-pct00056
분할 열 벡터:
Figure 112009054071617-pct00057
, 여기서
Figure 112009054071617-pct00058
출력 열 벡터:
Figure 112009054071617-pct00059
최소 천이 밀도의 레이트-16/17 PRML(G=6,I=7,M=15) 코드에 대한 디코딩 단계들의 행렬-벡터 기술
이 섹션에서, 17 비트에서 16 비트로의 디코딩이 행렬-벡터 표기를 사용하여 기술된다. 세 디코딩 단계들(212, 214, 216) 모두의 컴팩트 표현이 제시된다. 17 입력 비트들 z(1) ... z(17)은 제1 디코더 단계(212)로의 입력이고, 이어서 제3 디 코더 단계(216)의 출력 f에서 16-비트 출력 비트들 f(1) ... f(16)을 만들기 위해 아래에 설명되는 단계들의 각각을 통해 처리된다. 32-비트 또는 48-비트 데이터워드를 생성하는 마지막 단계는 디코더(210)의 16-비트 출력을 코딩되지 않은 16 또는 32 비트로 인터리빙하는 것이다. 이 마지막 단계는 마지막 세 섹션에서 간략히 설명된다.
디코딩 단계 1:
입력 열 벡터:
Figure 112009054071617-pct00060
변환 행렬:
Figure 112009054071617-pct00061
Figure 112009054071617-pct00062
분할 열 벡터:
Figure 112009054071617-pct00063
, 여기서
Figure 112009054071617-pct00064
출력 열 벡터:
Figure 112009054071617-pct00065
디코딩 단계 2:
입력 열 벡터:
Figure 112009054071617-pct00066
변환 행렬:
Figure 112009054071617-pct00067
Figure 112009054071617-pct00068
분할 열 벡터:
Figure 112009054071617-pct00069
, 여기서
Figure 112009054071617-pct00070
출력 열 벡터:
Figure 112009054071617-pct00071
디코딩 단계 3:
입력 열 벡터:
Figure 112009054071617-pct00072
변환 행렬:
Figure 112009054071617-pct00073
Figure 112009054071617-pct00074
Figure 112009054071617-pct00075
분할 열 벡터:
Figure 112009054071617-pct00076
, 여기서
Figure 112009054071617-pct00077
출력 열 벡터:
Figure 112009054071617-pct00078
레이트-16/17 PRML(G=6,I=7,M=15) 인코더에 대한 불리언 로직
본 발명에 따라 모코드를 생성하기 위한 16-비트에서 17-비트로의 인코딩은 다음 MATLAB 불리언 동작들에 의해 완전히 설명된다. 16 입력 비트들 a(1) ... a(16)은 제1 인코더 단계(202)의 입력이고, 이어서 제3 레벨 인코더 출력에서 17-비트 모코드 출력 비트 y(1) ... y(17)을 만들기 위해 아래에 설명되는 이어지는 단계들의 각각을 통하여 처리된다. 33-비트 또는 49-비트 코드워드를 생성하기 위한 마지막 단계는 17-비트 인코더 출력을 코딩되지 않은 16 또는 32 비트로 인터리빙하는 것이며, 마지막 세 섹션에서 간략히 설명된다. 아래의 불리언 식들은 16-비트 입력 a와 17-비트 출력 b로 제1 인코더 단계(202)를 기술한다.
보조 불리언 변수들:
Figure 112009054071617-pct00079
Figure 112009054071617-pct00080
제1 단계 분할들:
Figure 112009054071617-pct00081
Figure 112009054071617-pct00082
Figure 112009054071617-pct00083
보조 불리언 변수들:
Figure 112009054071617-pct00084
제1 단계 인코딩 출력:
Figure 112009054071617-pct00085
Figure 112009054071617-pct00086
다음 불리언 식들은 17-비트 입력 b와 17-비트 출력 c로 제2 인코더 단계(204)를 기술한다.
제2 단계 분할들:
Figure 112009054071617-pct00087
제2 단계 인코더 재매핑 출력:
Figure 112009054071617-pct00088
Figure 112009054071617-pct00089
Figure 112009054071617-pct00090
다음 불리언 식들은 17-비트 입력 c와 17-비트 출력 y로 제3 인코더 단계(206)를 기술한다.
제3 단계 분할들:
Figure 112009054071617-pct00091
보조 불리언 변수들:
Figure 112009054071617-pct00092
제3 단계 인코더 재매핑 출력(인코더 출력):
Figure 112009054071617-pct00093
Figure 112009054071617-pct00094
레이트-16/17 PRML(G=6,I=7,M=15) 디코더에 대한 불리언 로직
다음 불리언 식들은 17-비트 입력 z와 17-비트 출력 d로 제1 디코더 단계(212)를 기술한다. 제1 디코더 단계(212)는 제3 인코더 단계(206)의 역이다.
제1 단계 디코더 분할들:
Figure 112009054071617-pct00095
보조 불리언 변수들:
Figure 112009054071617-pct00096
제1 단계 디코더 리매핑 출력:
Figure 112009054071617-pct00097
Figure 112009054071617-pct00098
Figure 112009054071617-pct00099
다음 불리언 식들은 17-비트 입력 d와 17-비트 출력 e로 제2 디코더 단계(214)를 기술한다. 제2 디코더 단계(214)는 제2 인코더 단계(204)의 역이다.
제2 단계 디코더 분할들:
Figure 112009054071617-pct00100
보조 불리언 변수들:
Figure 112009054071617-pct00101
제2 단계 디코더 재매핑 출력:
Figure 112009054071617-pct00102
Figure 112009054071617-pct00103
다음 불리언 식들은 17-비트 입력 e와 16-비트 출력 f로 제3(최종) 디코딩 단계를 기술한다. 제3 디코더 단계(216)는 제1 인코더 단계(202)의 역이다. 채널 에러들이 없는 경우, 16-비트 인코더 입력은 16-비트 디코더 출력과 같다(즉, a=f).
보조 불리언 변수들:
Figure 112009054071617-pct00104
제3 단계 디코더 분할들:
Figure 112009054071617-pct00105
Figure 112009054071617-pct00106
보조 불리언 변수들:
Figure 112009054071617-pct00107
최종 제3 단계 디코더 분할:
Figure 112009054071617-pct00108
보조 불리언 변수들:
Figure 112009054071617-pct00109
Figure 112009054071617-pct00110
제3 단계 디코딩 출력(디코더 출력):
Figure 112009054071617-pct00111
Figure 112009054071617-pct00112
인코더 및 디코더는 총 936 개의 2-입력 AND 및 OR 게이트(559 개의 2-입력 AND 게이트 및 377 개의 2-입력 OR 게이트)로 구현될 수 있다.
레이트-32/33 PRML(G=14,I=11,M=23) 코드(RLL 1)
레이트-32/33 PRML 코드의 일 실시예에서, m = 32, n = 16, s = 8 , Q1 = 2, P1 = 4, P2 = 2 및 P3 = 2이다. 최소 천이 밀도의 레이트-16/17 PRML(G=6,I=7,M=15) 모코드 Q2 = 4는, 코드워드를 P3 = 2개의 조각(8 비트 및 9 비트)으로 쪼개고 코딩되지 않은 (m-n)/s = 2개의 비트를 사이에 삽입함으로써(8 비트 또는 9 비트의 코딩된 블록은 항상 앞에 있고 코딩되지 않은 바이트가 뒤에 옮), 레이트-32/33 PRML(G=14,I=11,M=23) 코드를 얻는데 사용될 수 있다. m 및 n은 모두 ECC 심볼 사이즈 s의 정수배이다. 코딩된 데이터는 항상 1/(1
Figure 112009054071617-pct00113
D2) 프리코더 를 사용하여 프리코딩된다. 그러나, 코딩되지 않은 데이터는 전혀 프리코딩되지 않거나, 1/(1
Figure 112009054071617-pct00114
D) 프리코딩되거나, 1/(1
Figure 112009054071617-pct00115
D2) 프리코딩될 수 있다. 에러-레이트 성능의 관점에서, 코딩되지 않은 데이터에 대해 어떤 프리코딩도 사용하지 않는 것이 바람직하다. 그러나, 1/(1
Figure 112009054071617-pct00116
D) 프리코딩이 이미 LTO 1-4의 기록 등화와 함께 사용되었기 때문에, 1/(1
Figure 112009054071617-pct00117
D) 프리코딩을 사용하는 것이 더 바람직할 수 있다.
도 4는 네 s = 8-비트 ECC(error correction coding) 심볼들 B0(1:8), B1(1:8), B2(1:8), B3(1:8)을 포함하는 32-비트 입력이 코딩된 비트 및 코딩되지 않은 비트를 다중화함으로써 32/33 코드를 위해 33-비트 레이트-32/33 코드워드 C0(1:8), B1(1:8), C2(1:9), B3(1:8)로 변환되는 프로세스를 도시한다. 32-비트 입력은 역다중화기(400)에 의해 두 8-비트 심볼들 B0(1:8), B1(1:8) 및 B2(1:8), B3(1:8)의 두 세트로 분할된다. 세트들 중의 하나의 16비트, 예를 들어 B0(1:8) 및 B1(1:8)는 레이트-16/17 모코드 인코더(402)에 의해 인코딩되는데, 이는 17 인코딩된 비트 C0(1:8), C2(1:9)를 출력한다. 다른 세트의 16 비트인 B2(1:8), B3(1:8)는 인코딩되지 않은 상태로 유지된다. 다중화기(404)는 네 8-비트 심볼을 33-비트 코드워드 C0(1:8), B1(1:8), C2(1:9), B3(1:8)로 다중화한다. 도면들에 도시되어 있지는 않지만, 48-비트 입력은 유사한 프로세스에 의해 49-비트 코드워드로 변환된다.
레이트-32/33 PRML(G=14,I=11,M=23) 코드는 DSS 및 RE Sync 모두를 제외하고, 4-방향 인터리빙을 가정할 때 8 NRZ 비트의 에러 전파를 갖는다. 도 5A는 본 발명의 레이트-32/33 PRML(G=14,I=11,M=23) 코드를 위해 구현될 수 있는 네 C1 리드-솔로몬 인코더에서의 8-비트 심볼들의 4-방향 인터리빙(다중화) 메커니즘을 도시한다. 도 5B는 그러한 인터리빙 방식의 블록도이다. 네 C1 인코더들(500A, 500B, 500C, 500D)은 분리된 입력들을 처리하고 그 출력들을 다중화기(502)에 입력으로 제공한다. 비트들의 시퀀스(502)의 최하위 비트(LSB) 및 최상위 비트(MSB) 또한 다중화기(502)에 입력으로 제공된다. 다중화기(502)의 출력 B0, B1, B2, B3는 레이트-32/33 RLL 인코더(504)에 32-비트 입력을 제공한다. 이 네 s = 8-비트 심볼들은 인코더(504)에 의해 (도 4에 도시된 방식으로) 인코딩되고 4-방향 인터리빙된 33-비트 코드워드 C0, B1, C2, B3가 출력이 된다. 도면들에 도시되지는 않았지만, 레이트-48/49 코드를 위한 인터리빙 메커니즘을 도시하는 블록도는 유사한 기능적 블록들을 포함할 수 있다.
레이트-48/49 PRML(G=22,I=15,M=31) 코드(RLL 2)
레이트-48/49 PRML 코드의 일 실시예에서, m = 48, n = 16, s = 8, Q1 = 2, P1 = 4, P2 = 2 및 P3 = 2이다. 레이트-16/17 PRML(G=6,I=7,M=15) 모코드는, 코드워드를 P3 = 2개의 조각(8 비트 및 9 비트)으로 쪼개고 코딩되지 않은 (m-n)/s = 4개의 비트를 사이에 삽입함으로써(8 비트 또는 9 비트의 코딩된 블록은 항상 앞에 있고 두 코딩되지 않은 바이트가 뒤에 옮), 레이트-48/49 PRML(G=22,I=15,M=31) 코드를 얻는데 사용될 수 있다. 코딩된 데이터는 1/(1
Figure 112009054071617-pct00118
D2) 프리코더를 사용하여 프 리코딩되고, 코딩되지 않은 데이터는 전혀 프리코딩되지 않거나, 1/(1
Figure 112009054071617-pct00119
D) 프리코딩되거나, 1/(1
Figure 112009054071617-pct00120
D2) 프리코딩될 수 있다. 에러-레이트 성능의 관점에서, 코딩되지 않은 데이터에 대해 어떤 프리코딩도 사용하지 않는 것이 바람직할 수 있다. 그러나, 1/(1
Figure 112009054071617-pct00121
D) 프리코딩이 이미 LTO 1-4의 기록 등화와 함께 사용되었기 때문에, 1/(1
Figure 112009054071617-pct00122
D) 프리코딩을 사용하는 것이 더 바람직할 수 있다. 도 6은 레이트-48/49 PRML(G=22,I=15,M=31) 코드를 위해 구현될 수 있는 4-방향 C1 인터리빙 방식을 도시한다.
레이트-48/49 PRML(G=14,I=19,M=39) 코드(RLL 3)
레이트-48/49 PRML 코드의 다른 일 실시예에서, m = 48, n = 16, s = 8, Q1 = 2, P1 = 4, P2 = 2 및 P3 = 4이다. 레이트-48/49 PRML(G=14,I=19,M=39) 코드는 레이트-16/17 PRML(G=6,I=7,M=15) 코드를 P3 = 4개의 코딩된 블록(4 비트 + 4 비트 + 5 비트 + 4 비트)으로 쪼개고 코딩되지 않은 (m-n)/s = 4개의 비트를 사이에 삽입함으로써(4 비트 또는 5 비트의 코딩된 블록은 항상 앞에 있고 코딩되지 않은 바이트가 뒤에 옮) 얻어질 수 있다. 그러나, 이 코드는 DSS 또는 Re Sync와 같이 보이는 변조-인코딩된 데이터의 최대 길이가 엄청나게 크지 않도록 보장하기 위해 DSS 및 Re Sync 패턴들을 재정의하도록 요구할 수 있다. 도 7은 레이트-48/49 PRML(G=14,I=19,M=39) 코드를 위해 구현될 수 있는 4-방향 C1 인터리빙 방식을 도 시한다.
본 발명은 완전히 동작하는 데이터 처리 시스템의 맥락으로 설명되었지만, 당업자는 본 발명의 프로세스가 명령어들의 컴퓨터 판독가능 매체의 형태 및 다양한 형태들로 분산될 수 있고, 본 발명은 분산을 실행하는데 실제로 사용되는 신호 운반 매체(signal bearing media)의 구체적 종류에 관계없이 적용될 수 있다고 이해할 것이다. 컴퓨터 판독가능 매체의 예는 플로피 디스크, 하드디스크 드라이브, RAM 및 CD-ROM과 같은 기록가능-유형의 매체 및 전송-유형 매체를 포함한다.
본 발명의 설명은 설명 및 예시의 목적으로 제시되었고, 개시된 형태로 본 발명이 완전하거나 본 발명이 이에 제한되도록 의도된 것은 아니다. 많은 변경 및 변화가 당업자에게 자명할 것이다. 실시예는 본 발명 및 실제 응용의 원리를 가장 잘 설명하도록 선택되고 설명되었으며, 특정 용도에 적합한 다양한 변경이 있는 다양한 실시예들에 대해 당업자가 본 발명을 이해할 수 있도록 선택되고 설명되었다. 게다가, 위에서 방법 및 시스템에 관해 설명되었지만, 업계의 요구는 m 비트의 데이터 입력 시퀀스를 m+1 비트의 출력 시퀀스 코드워드로 인코딩하기 위한 명령어들을 포함하는 컴퓨터 프로그램 제품 또는 m 비트의 데이터 입력 시퀀스를 m+1 비트의 출력 시퀀스 코드워드로 인코딩하기 위해 컴퓨팅 시스템으로 컴퓨터 판독가능 코드를 통합하는 것을 포함하는 컴퓨팅 기반구조의 배치를 위한 방법으로 충족될 수 있다.

Claims (2)

  1. m 비트의 데이터 입력 시퀀스를 m+1 비트의 출력 시퀀스 코드워드로 인코딩하기 위한 방법으로서 - m은 ECC 심볼 사이즈 s의 정수배임 - ,
    인코딩되지 않은 m-비트 입력 시퀀스들의 데이터 스트림을 수신하는 단계;
    각각의 m-비트 입력 시퀀스를 n 비트의 제1 블록 및 인코딩되지 않은 m-n 비트의 제2 블록으로 분할하는 단계 - n은 s의 정수배임 - ;
    상기 n 비트의 제1 블록을 인코딩된 n+1 비트의 제1 세트로 인코딩하는 단계 - 상기 n+1 비트의 제1 세트의 P1개의 서브블록 중의 적어도 하나는 G 제약조건, M 제약조건 및 I 제약조건을 만족하고, 여기서 G 제약조건은 0들의 최대 런 길이를 G개로 제한하는 조건이고, M 제약조건은 1들의 최대 런 길이를 M개로 제한하는 조건이며, I 제약조건은 짝수 또는 홀수 인터리브에서의 0들의 최대 런 길이를 I개로 제한하는 조건임 - ;
    일대일 방식으로 상기 인코딩된 n+1 비트의 제1 세트를 인코딩된 n+1 비트의 제2 세트로 매핑하는 단계 - 상기 n+1 비트의 제2 세트의 P2개의 서브블록 중의 적어도 하나는 1/(1+D2) 프리코딩 이후 적어도 Q1개의 천이를 발생시킴 - ;
    상기 인코딩된 n+1 비트의 제2 세트를 P3개의 인코딩된 서브블록으로 분할하는 단계;
    상기 P3개의 인코딩된 서브블록을 인코딩되지 않은 (m-n)/s개의 심볼 사이에 인터리빙하여 상기 m+1 비트의 출력 시퀀스 코드워드를 형성하는 단계; 및
    상기 출력 시퀀스 코드워드를 데이터 저장 매체 상에 저장하는 단계
    를 포함하는 방법.
  2. m 비트의 데이터 입력 시퀀스를 m+1 비트의 출력 시퀀스 코드워드로 인코딩하기 위한 프로그램 코드를 저장한 컴퓨터 판독가능한 기록매체로서 - m은 ECC 심볼 사이즈 s의 정수배임 - , 상기 프로그램 코드는 프로세서에 의해 실행되었을 때 컴퓨터로 하여금 제1항의 단계들을 수행하도록 하기 위한 프로그램 코드를 포함하는 컴퓨터 판독가능한 기록매체.
KR1020097018374A 2007-05-16 2008-04-21 Rll 인코딩 KR101114057B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/749,711 US7486208B2 (en) 2007-05-16 2007-05-16 High-rate RLL encoding
US11/749,711 2007-05-16
PCT/EP2008/054827 WO2008138707A1 (en) 2007-05-16 2008-04-21 Rll encoding

Publications (2)

Publication Number Publication Date
KR20090112746A KR20090112746A (ko) 2009-10-28
KR101114057B1 true KR101114057B1 (ko) 2012-03-14

Family

ID=39541566

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097018374A KR101114057B1 (ko) 2007-05-16 2008-04-21 Rll 인코딩

Country Status (4)

Country Link
US (2) US7486208B2 (ko)
EP (1) EP2153526B1 (ko)
KR (1) KR101114057B1 (ko)
WO (1) WO2008138707A1 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8156539B1 (en) * 2002-12-18 2012-04-10 Cypress Semiconductor Corporation Method and system for protecting a wireless network
US7475331B1 (en) * 2003-10-07 2009-01-06 Marvell International Ltd. Data dependent scrambler with improved global constraint
EP1988636A1 (en) * 2007-05-03 2008-11-05 Deutsche Thomson OHG Method and apparatus for channel coding and decoding
US7486208B2 (en) * 2007-05-16 2009-02-03 International Business Machines Corporation High-rate RLL encoding
US8307268B2 (en) * 2007-12-06 2012-11-06 Marvell World Trade Ltd. Iterative decoder systems and methods
US8259405B2 (en) 2009-01-09 2012-09-04 International Business Machines Corporation Rewriting codeword objects to magnetic data tape upon detection of an error
KR101334053B1 (ko) * 2009-08-18 2013-11-29 알까뗄 루슨트 프리코딩 방법 및 디바이스
US8670199B2 (en) 2010-04-02 2014-03-11 International Business Machines Corporation Data-dependent noise-predictive maximum likelihood detection (DD-NPML) for magnetic recording
US8605669B2 (en) * 2010-05-06 2013-12-10 Telefonaktiebolaget Lm Ericsson (Publ) System and method for signaling control information in a mobile communication network
US8700981B2 (en) * 2011-11-14 2014-04-15 Lsi Corporation Low latency enumeration endec
US8854759B2 (en) 2012-04-24 2014-10-07 International Business Machines Corporation Combined soft detection/soft decoding in tape drive storage channels
US9558782B2 (en) 2012-05-29 2017-01-31 International Business Machines Corporation Partial reverse concatenation for data storage devices using composite codes
US9178534B2 (en) 2012-05-29 2015-11-03 International Business Machines Corporation Methods for partial reverse concatenation for data storage devices using composite codes
US9190076B2 (en) 2012-05-29 2015-11-17 International Business Machines Corporation Data format using an efficient reverse concatenated modulation code for magnetic tape recording
US9431053B2 (en) * 2014-04-24 2016-08-30 Marvell International Ltd. Run-length limited (RLL) codes
US9252808B1 (en) 2014-08-28 2016-02-02 Avago Technologies General Ip (Singapore) Pte. Ltd. Ping-pong run length limit encoder
US9792246B2 (en) * 2014-12-27 2017-10-17 Intel Corporation Lower-power scrambling with improved signal integrity
US10056920B1 (en) 2015-11-03 2018-08-21 Western Digital Technologies, Inc. Data storage device encoding and interleaving codewords to improve trellis sequence detection
US10063257B1 (en) * 2015-11-03 2018-08-28 Western Digital Technologies, Inc. Data storage device encoding and interleaving codewords to improve trellis sequence detection
WO2020090457A1 (ja) 2018-10-29 2020-05-07 ソニー株式会社 記録装置、記録方法、再生装置、再生方法、記録媒体、符号化装置、及び、復号装置
US11395031B1 (en) * 2021-03-29 2022-07-19 At&T Intellectual Property I, L.P. Audio and video synchronization
US11211094B1 (en) * 2021-05-11 2021-12-28 Western Digital Technologies, Inc. Data storage device duplicating an ECC sub-block in downstream ECC super-block
US11733878B1 (en) 2022-03-29 2023-08-22 Western Digital Technologies, Inc. Data error correction for magnetic disks

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6456208B1 (en) * 2000-06-30 2002-09-24 Marvell International, Ltd. Technique to construct 32/33 and other RLL codes

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4707681A (en) * 1986-04-24 1987-11-17 International Business Machines Corporation Method and apparatus for implementing optimum PRML codes
DE68920739T2 (de) * 1989-08-16 1995-06-29 Ibm Daten-Kodierung für den Sofortstart von PRML-Empfängern.
US5537424A (en) * 1994-08-12 1996-07-16 International Business Machines Corporation Matched spectral null codes with partitioned systolic trellis structures
US5635933A (en) * 1995-06-30 1997-06-03 Quantum Corporation Rate 16/17 (d=0,G=6/I=7) modulation code for a magnetic recording channel
US5781133A (en) * 1996-08-05 1998-07-14 Seagate Technology, Inc. Method and apparatus for implementing run length limited codes
JP3307579B2 (ja) * 1998-01-28 2002-07-24 インターナショナル・ビジネス・マシーンズ・コーポレーション データ記憶システム
US6184806B1 (en) * 1998-03-13 2001-02-06 Quantum Corporation Rate 32/33 (D=0, K=6) run length limited modulation code having optimized error propagation
US6201485B1 (en) * 1999-07-09 2001-03-13 Quantum Corp. High rate runlength limited codes for 8-bit ECC symbols
US6229458B1 (en) * 1999-08-27 2001-05-08 Lsi Logic Corporation Rate 32/34 (D=0, G=9/I=9) modulation code with parity for a recording channel
US6476737B1 (en) * 2001-11-16 2002-11-05 Lsi Logic Corporation Rate 64/65 (d=0, G=11/I=10) run length limited modulation code
US6985320B2 (en) * 2002-01-02 2006-01-10 International Business Machines Corporation Method and apparatus for encoding data to guarantee isolated transitions in a magnetic recording system
JP4701240B2 (ja) * 2004-04-15 2011-06-15 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 光ストレージシステム向けのdc制御符号化
US6956510B1 (en) * 2004-05-14 2005-10-18 Marvell International Ltd. Methods, software, circuits and systems for coding information
US7002492B2 (en) * 2004-07-07 2006-02-21 Seagate Technology Llc High rate running digital sum-restricted code
US7486208B2 (en) * 2007-05-16 2009-02-03 International Business Machines Corporation High-rate RLL encoding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6456208B1 (en) * 2000-06-30 2002-09-24 Marvell International, Ltd. Technique to construct 32/33 and other RLL codes

Also Published As

Publication number Publication date
KR20090112746A (ko) 2009-10-28
EP2153526A1 (en) 2010-02-17
US7486208B2 (en) 2009-02-03
US7679535B2 (en) 2010-03-16
WO2008138707A1 (en) 2008-11-20
US20080284624A1 (en) 2008-11-20
EP2153526B1 (en) 2013-03-20
US20090027242A1 (en) 2009-01-29

Similar Documents

Publication Publication Date Title
KR101114057B1 (ko) Rll 인코딩
US6018304A (en) Method and apparatus for high-rate n/n+1 low-complexity modulation codes with adjustable codeword length and error control capability
KR20060061261A (ko) 주기적으로 변화하는 심볼 매핑들을 이용하여 데이터에변조 제약들을 적용하기 위한 기술들
US7719444B2 (en) Modulation coding
JPH11328871A (ja) 部分応答磁気記録チャネルのためのレ―ト16/17(0,5)変調コ―ドの装置および方法
KR101211244B1 (ko) 모듈레이션 코딩 및 디코딩
EP1686581A1 (en) Disk drive system and method
US9431053B2 (en) Run-length limited (RLL) codes
KR101332142B1 (ko) Lto-5 테이프용 rll 인코딩
US6933865B1 (en) Method and apparatus for coded symbol stuffing in recording systems
JP5011116B2 (ja) 変調の制約及び誤り制御を用いて情報の符号化及び復号化を実行する方法及びシステム
Cai et al. On the design of spectrum shaping codes for high-density data storage
KR19980031982A (ko) 데이타 저장기기의 prml 코드 생성방법
US6985320B2 (en) Method and apparatus for encoding data to guarantee isolated transitions in a magnetic recording system
US6097321A (en) Punctured maximum transition run code, apparatus and method for providing the same
JP4919121B2 (ja) 変調装置、変調方法、および記録媒体
Kunisa Comparison of Hardware Complexity between Convolutional Guided Scrambling and Galois-Field-Addition Guided Scrambling for Digital Recording.
JP4366662B2 (ja) 変調装置、変調方法、記録媒体
JP2009266379A (ja) 変調装置、変調方法、記録媒体
JP2003273742A (ja) 復調方法および復調装置
WO2009103723A1 (en) Method for channel encoding, method and apparatus for channel decoding
KR20030010357A (ko) 정보를 코딩/디코딩하는 방법 및 장치
JP2009266378A (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: 20150127

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160104

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170102

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180103

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee