KR100406806B1 - 짧게 인터리브된 제한 조건을 갖는 효과적인 런 길이 제한코드 - Google Patents

짧게 인터리브된 제한 조건을 갖는 효과적인 런 길이 제한코드 Download PDF

Info

Publication number
KR100406806B1
KR100406806B1 KR10-2000-7014738A KR20007014738A KR100406806B1 KR 100406806 B1 KR100406806 B1 KR 100406806B1 KR 20007014738 A KR20007014738 A KR 20007014738A KR 100406806 B1 KR100406806 B1 KR 100406806B1
Authority
KR
South Korea
Prior art keywords
code
bit
word
consecutive
data word
Prior art date
Application number
KR10-2000-7014738A
Other languages
English (en)
Other versions
KR20010053164A (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 KR20010053164A publication Critical patent/KR20010053164A/ko
Application granted granted Critical
Publication of KR100406806B1 publication Critical patent/KR100406806B1/ko

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

인코더(150)는 연속적인 데이터 워드(152)를 제1 및 제2 부분들로 분할한다. 각각의 연속적인 데이터 워드(152)의 제1 부분은 선택된 코드에 따라 대응하는 제1 코드 패턴 및 대응하는 상태 변수로 매핑된다. 각각의 연속적인 데이터 워드(152)의 제2 부분은 선택된 코드에 따라 상기 상태 변수와 관련된 대응하는 제2 코드 패턴으로 매핑된다. 제1 및 제2 코드 패턴은 상기 연속적인 코드 워드(153)를 형성하도록 조합되며, 상기 연속적인 코드 워드(153)는 다수의 비트 위치를 갖는 인코딩된 비트 스트림을 형성하도록 연결된다. 상기 인코더는 상기 선택된 코드 상에 제한 조건을 부과하여 상기 인코딩된 비트 스트림은 다수의 비트 위치들 중 인접한 비트 위치들에 있어 최대 7개의 연속적인 동일 2진 부호의 런을 갖고, 인터리브 제한 조건이 부과을 부과하여 상기 인코딩된 비트 스트림은 다수의 비트 위치들 중 격 비트 위치들에 있어 최대 5개의 연속적인 동일 2진 부호의 런을 갖도록 한다.

Description

짧게 인터리브된 제한 조건을 갖는 효과적인 런 길이 제한 코드{EFFICIENT RUN LENGTH LIMITED CODE WITH SHORT INTERLEAVED CONSTRAINT}
디지털 통신 시스템 분야에서, 디지털 정보는 채널을 통하여 송신기에서 수신기로 전송된다. "채널"은 기록 매체, 전화선 및 전자기 스펙트럼과 같은 많은 서로 다른 매체를 포함할 수 있는 일반화된 용어이다. 자기 디스크 드라이브 같은 데이터 저장 장치에서, 상기 채널은 저장 매체를 포함하고 디지털 정보는 상기 저장 매체로 전송되며 잠시 저장되었다가 복구되어 수신기로 전송된다.
통상적인 자기 디스크 드라이브는 회전을 위해 허브(hub) 또는 스핀들(spindle) 상에 실장된 하나 이상의 경(rigid) 디스크를 포함한다. 각 디스크는 디스크 표면과 통신하기 위한 유체 역학적 베어링 또는 트랜스듀서 (transducer)로 형성된 관련 데이터 헤드를 갖는다. 전자기계식(electromechanical) 액추에이터는 트랙 검색 작업을 위해 디스크 표면 위에서 데이터 헤드를 방사형으로 이동시키고, 트랙 추적 작업을 위해 디스크 표면 상의 원하는 트랙 바로 위에 트랜스듀서를 고정시킨다.
드라이브 제어기는 상위 시스템(host system)으로부터 수신된 명령을 기초로 디스크 드라이브를 제어하여, 디스크로부터의 정보를 복구하고 디스크 상에 정보를 저장한다. 드라이브 제어기는 다양한 하위 시스템(subsystem)들을 포함하며, 특히 상위 시스템과 통신하기 위한 "상위 인터페이스", 액추에이터를 제어하기 위한 "서보 하위 시스템" 및 저장 매체로부터 기록된 데이터를 복구하기 위한 "판독 채널"을 포함한다.
정보는 통상적으로 디스크 표면 상의 동심 데이터 트랙에 저장된다. 트랜스듀서를 통과하는 전류의 방향은 선택된 데이터 트랙 내에서 디스크 표면 상의 자속 반전을 인코딩하도록 제어된다. 비 제로 복귀 반전(non-return-to-zero inverse; NRZI)로 알려진 코딩의 한 타입에서, 디지털 "1"은 데이터 트랙의 어떤 비트 위치에서 다음 비트 위치로의 자속 반전으로 표현되고, 디지털 "0"은 어떤 비트 위치에서 다음 비트 위치로의 자속 반전이 없는 것으로 표현된다.
디스크로부터 데이터를 복구할 때, 드라이브 제어기는 데이터 헤드가 원하는 데이터 트랙 위로 비행하여 데이터 트랙에 저장된 자속 반전을 검출하고 그 자속 반전을 기초로 판독 신호를 생성하도록 전자기계식 액추에이터를 제어한다. 통상적으로 판독 신호는 조절되어, 드라이브 제어기에 의해 디코딩되어 자속 반전에 의해 표현된 데이터를 복구한다.
디스크 드라이브 저장 채널들을 포함한 모든 채널들은 그 채널이 운반하고 있는 신호에 잡음을 유도한다. 이러한 채널 잡음에 의해 발생된 신호 에러를 검출하고 때로는 교정하기 위해서, 많은 코딩 기술들이 개발되어 왔다. 이러한 코딩 기술들은 많은 데이터 비트들로 만들어진 데이터 워드들을 많은 코드 비트들로 만들어진 코드 워드로 변환시킨다. 코드 워드 상에 부여된 코딩 제한 조건은 채널로부터 수신된 신호의 검출 및 경우에 따라서는 에러 교정을 가능케 한다.
코드 비트 수에 대한 데이터 비트 수의 평균 비율을 그 코드의 코드율(code rate)이라고 한다. 일반적으로, 코드율이 감소하면 수신된 신호에서 에러를 검출하고 수정하는 능력은 증가한다. 왜냐하면, 더 낮은 코드율은 코드 워드에 더 많은 추가 비트가 포함되는 것을 의미하기 때문이다. 그러나, 인코더에 의해 부과된 각각의 추가적인 비트들은 채널을 통해 신호를 전송하는데 필요한 시간 및 에너지를 증가시킨다. 그러므로, 코드를 전송하는데 필요한 시간과 에너지를 최소화하기 위해, 코드율은 최소화되어야 한다.
검출 방식에 따라, 코드는 코드 워드 패턴 상에 어떤 제한 조건을 부과한다. 예를 들어, 디스크 드라이브에서 자기 매체를 회전시키는 스핀들 모터의 회전 속도는 시간에 따라 변화한다. 이것은 판독 신호 전압 펄스들간의 시간 간격을 비균일하게 만든다. 위상 동기 루프(phase locked loop ; PLL)는 판독 타이밍 클록의 위상 및 주파수를 판독 신호 전압 펄스의 위상 및 주파수로 동기화시키는데 사용된다. PLL이 규칙적으로 업데이트되는 것을 보장하기 위해, 연속적인 0의 개수가 최대값 "k"보다 작도록 제한하는 코드가 사용될 수 있다. 이러한 종류의 코드는 "k" 제한 조건을 갖는 런-길이-제한(run-length-limited ; RLL) 코드로 알려져 있다. 더 작은 "k"값은 PLL에서의 타이밍을 위한 더 큰 최소값 업데이트율을 보장한다. 그러나, 더 작은 "k"값은 더 낮은 달성 가능한 코드율을 갖는 더 제한된 코드를 발생시킨다.
부분 응답 및 최대유사도(Maximum Likelihood; PRML) 신호를 채용하고 데이터를 복구시키기 위해 비터비(Viterbi) 검출기를 사용하는 자기 기록 채널에서, 또다른 제한 조건"i"가 비터비 알고리즘에서 딜레이(delay)를 제한하기 위해 코드에 통합될 수 있다. 코드 워드 스트림의 "i" 제한 조건은 상기 스트림 내에서 2진수로된 2개의 인터리브된(interleaved) 하위 시퀀스에서 0의 런 길이 최대값을 나타낸다. 하위 시퀀스 중 하나는 스트림에서 홀수 색인의 2진수를 취하므로써 형성되고, 하위 시퀀스의 나머지는 스트림에서 짝수 색인의 2진수를 취하므로써 형성된다. "i" 제한 조건은 비터비 알고리즘에서의 결정의 딜레이에 직접 영향을 미치고 또한 에러 전파(error propagation)의 길이에 영향을 미치므로, "i" 제한 조건을 가능한한 짧게 유지하는 것이 유리하다.
채널로의 2진 입력 시퀀스를 {c0,c1,c2,...}로 가정하자. 간결한 표기
은 공지된 바와 같이, 유닛 딜레이 연산자 "D"를 사용하는 입력 시퀀스의 "D-변환"이라고 불리며, Dk의 계수 ck는 채널로의 k번째 입력을 말한다. 자기 기록을 위한 부분 응답 채널은 저장 매체의 수신된 출력을 조절하여, 고립된 입력 비트로의 시스템의 샘플링된 응답은 특성화 부분 응답 다항식, 즉 "채널 전달 함수" P(D)에 의해 주어진다. 자기 기록을 위한 부분 응답 채널은 종종 다음 형태의 부분 응답 다항식을 갖는다.
여기서, n은 양의 정수이다. 채널의 잡음없는 출력의 D-변환, v(D)는 다음 식
으로 주어지고, 여기서 곱셈은 통상의 다항식의 곱셈으로 행해진다.
P(D)의 (1-D)(1+D)항 때문에, 채널은 짝수 및 홀수 색인된 2진 하위 시퀀스의 연속적인 동일한 2진 입력 심볼들의 롱런 및 조합된 글로벌 시퀀스의 연속적인 변화 입력의 롱런에 대해 모두 0인 응답을 갖는다. 이러한 시퀀스들은 판독 채널의 폐루프 제어를 위한 위상 및 크기 정보를 거의 포함하지 않고 있기 때문에 피해야 한다.
원하는 채널 입력 시퀀스를 생성하는 한 방법은 데이터 채널의 입력에 인코더 및 프리코더를 사용하는 것이다. 인코더는 채널에 저장될 사용자 데이터 워드를 선택된 제한 조건을 갖는 코드 워드로 변환하여, 코드 워드는 바람직하지 못한 비트 시퀀스를 피하게 된다. 프리코더는 코드 워드를 추가적으로 조절하고 하기 형태의 전달함수를 가질 수 있다.
여기서 ""는 배타적 논리합(exclusive-OR) 연산을 표시한다. 인코더는 프리코더로의 입력인 2진 인코딩된 시퀀스 b(D)를 발생시킨다. 프리코더의 출력은 채널 입력 c(D)이며, 다음 식으로 주어진다.
조절된 코드 워드는 채널로 제공된다. 부분 응답 채널의 잡음있는 출력이 수신되면, 검출기 및 디코더가 원래의 사용자 데이터를 평가하는데 사용된다.
본 발명은 상기 문제들 및 또 다른 문제들을 해결하고, 종전 기술에 대해 추가의 잇점들을 제공한다.
본 발명은 디지털 통신 시스템에 관련된 것이며, 보다 특정하면 디스크 드라이브에서의 인코딩 및 디코딩 시스템에 관련된 것이다.
도 1은 본 발명의 인코더 및 디코더가 사용될 수 있는 디스크 드라이브의 사시도.
도 2는 인코더 및 디코더가 사용될 수 있는 일반화된 통신 시스템의 블록 다이어그램.
도 3은 입력 데이터 워드의 인코딩을 위한 각각의 블록들로 분할되는 과정을 설명하는 다이어그램.
도 4는 본 발명의 일 실시예에 따른 인코딩 방법을 설명하는 흐름도.
도 5는 본 발명의 일 실시예에 따른 디코딩 방법을 설명하는 흐름도.
도 6은 본 발명의 일 실시예에 따른 인코더의 블록 다이어그램.
도 7은 본 발명의 일 실시예에 따른 디코더의 블록 다이어그램.
본 발명의 한 관점은 연속적인 데이터 워드를 채널을 통해 전달하기 위한 연속적인 코드 워드로 인코딩하는 방법에 관련된 것이다. 각 연속적인 데이터 워드는 제1 및 제2 부분으로 나누어 진다. 각 연속적인 데이터 워드의 제1 부분은 대응하는 제1 코드 패턴 및 선택된 코드에 따른 대응하는 상태 변수로 매핑(mapping)된다. 각 연속적인 데이터 워드의 제2 부분은 선택된 코드에 따라 상태 변수와 관련되는 대응하는 제2 코드 패턴으로 매핑된다. 제1 및 제2 코드 패턴들은 각각의 연속적인 코드 워드를 형성한다. 상기 연속적인 코드 워드들은 다수의 비트 위치를 갖는 인코딩된 비트 스트림을 형성하도록 연결된다. 런 길이 제한 조건이 선택된 코드 상에 부과되어, 인코딩된 비트 스트림은 다수의 비트 위치들 중 인접하는 위치에 있어 최대 7개의 연속적인 동일 2진 부호의 런을 갖게 된다. 인터리브 제한 조건이 선택된 코드 상에 부과되어 인코딩된 비트 스트림은 다수의 비트 위치들 중 격 비트 위치(every other bit position)들에 있어 최대 5개의 연속적인 동일 2진 부호의 런을 갖게된다.
본 발명의 또다른 관점은 연속적인 데이터 워드를 인코딩된 비트 스트림을 형성하도록 연결된 각각의 연속적인 코드 워드로 인코딩하기 위한 인코더에 관련된 것이다. 상기 인코더는 연속되는 데이터 워드, n-비트 코드 워드 출력 및 제1 및 제2 인코더를 수신하기 위한 m-비트의 데이터 워드 입력을 포함한다. 제1 인코더는 상기 m-비트 데이터 워드 입력에 연결된 p-비트 데이터 워드 입력, n-비트 코드 워드 출력에 연결된 u-비트 코드 워드 출력, 및 상태 변수 출력을 포함한다. 제2 인코더는 m-비트 데이터 워드 입력에 연결된 q-비트 데이터 워드 입력, n-비트 코드 워드 출력에 연결된 v-비트 코드 워드 출력, 및 상태 변수 출력에 연결된 상태 변수 입력을 포함하며, 여기서 m,n,p,q,u 및 v는 정수 변수이고, p+q=m,u+v=n, 그리고 u<p이다. 제1 및 제2 인코더는, n-비트 코드 워드 출력 상의 인코딩된 비트 스트림내의 일련의 인접한 비트 위치에 나타나는 연속적인 동일 2진 부호의 제1 숫자를 최대 7로 제한하고, n-비트 코드 워드 출력 상의 인코딩된 비트 스트림의 짝수 및 홀수 색인된 비트 위치의 하위시퀀스에 나타나는 연속적인 동일 2진 부호의 제2 숫자를 최대 5로 제한하는 코드를 구현한다.
본 발명의 또다른 관점은 트랜스듀서 및 기록 채널을 포함하는 디스크 드라이브 저장 채널에 관련된 것이다. 상기 트랜스듀서는 데이터 저장 디스크와의 통신이 가능하다. 기록 채널은 선택된 코드에 따라 연속적인 데이터 워드를 연속적인 코드 워드로 인코딩하기 위한 트랜스듀서에 연결되어 인코딩된 비트 스트림을 형성하게 되며, 인코딩된 비트 스트림은 프리코딩되어 채널 입력으로서 트랜스듀서에 인가된다. 선택된 코드는 연속적인 코드 워드를 제한하여 인코딩된 비트 스트림의 인접한 비트 위치에 최대 7개의 연속적인 동일 2진 부호 및 인코딩된 비트 스트림의 짝수 색인의 비트 위치 및 홀수 색인의 비트 위치에 최대 5개의 연속적인 동일 2진 부호가 있도록 한다.
도 1은 본 발명이 효과적으로 사용된 디스크 드라이브(100)의 사시도이다. 디스크 드라이브(100)는 베이스(102) 및 상부 덮개(미도시)를 갖는 하우징을 포함한다. 디스크 드라이버(100)는 디스크 팩(106)을 더 포함하며, 이 디스크 팩(106)은 디스크 클램프(108)에 의해 스핀들 모터(미도시) 상에 실장되어 있다. 디스크 팩(106)은 다수의 개별 디스크들을 포함하며, 이 개별 디스크들은 중앙 축(109) 주위의 공동-회전을 위해 실장된다. 각각의 디스크 표면은 관련된 헤드(110)를 가지며, 이 헤드(110)는 디스크 표면과의 통신을 위해 디스크 드라이브(100)로 실장된다. 도 1에 도시된 실시예에서, 헤드(110)는 액추에이터(116)의 트랙 액세싱 암(114)에 부착된 서스펜션(112)에 의해 지지된다. 도 1에 도시된 액추에이터는 회전 이동 코일 액추에이터로 알려진 타입이며 음성 코일 모터(voice coil motor; VCM)(118)를 포함한다. 음성 코일 모터(118)는 헤드(110)가 부착된 액추에이터(116)를 피벗 샤프트를 중심으로 회전시키고, 헤드(110)를 디스크 내경(124) 및 디스크 외경(126) 사이의 활모양 경로(122)를 따라 원하는 데이터 트랙 위에 위치시킨다. 음성 코일 모터는 내부 회로(128)의 제어로 동작한다.
내부 회로(128) 내의 기록 회로는 데이터를 연속적인 코드에 저장되도록 인코딩하고 직렬 아날로그 기록 신호 형태의 코드 워드를 디스크 표면 상의 자기층 내에 자속 반전을 인코딩하는 헤드(110) 상의 기록 트랜스듀서로 송신한다. 판독 동작을 하는 동안, 헤드(110)의 판독 트랜스듀서는 자속 반전을 감지하고 직렬 아날로그 판독 신호를 발생시킨다. 아날로그 판독 신호는 직렬 디지털 신호로 변환되고, 내부 회로(128) 내의 검출기 및 디코더 회로로 공급되어 복구된 데이터 신호를 발생시킨다.
도 2는 본 발명의 한 실시예에 따른 일반화된 통신 시스템(148)의 블록 다이어그램이며, 예컨대 디스크 드라이브(100)내에 형성될 수 있다. 통신 시스템(148)은 인코더(150)를 포함하고, 인코더(150)는 연속적인 데이터 워드(152)를 수신하고 연속적인 데이터 워드를 연속적인 코드 워드(153)로 인코딩한다. 각각의 데이터 워드는 어떤 수의 부호라도 포함할 수 있다. 2진 시스템에서는, 예컨대 각 심볼은 하나의 논리 데이터 비트를 나타낸다. 디스크 드라이브 응용에서, 공통 데이터 워드 길이는 8 또는 16 비트이다. 아래에서 더 상세히 설명되는 바와 같이, 연속적인 데이터 워드는 "k" 및 "i" 제한 조건을 갖는 런 길이 제한 코드를 사용하여 연속적인 코드 워드로 인코딩 되며, 여기서 "i" 제한 조건은 선택된 코드율에 대해 가능한 한 작은 값을 갖는다. 에러의 전파를 제한하기 위해, 각 코드 워드는 두 개의 짧은 코드 워드를 연결하므로써 형성된다. 인코더(150)는 상태 구동되며, 모든 코드 워드는 상태가 각 코드 워드에서 최상위 4개 비트와 같이 작은 수의 비트들을 사용하여 결정될 수 있도록 신중하게 선택된다. 인코더는 논리 조합으로 또는 각 사용자 데이터 워드와 그에 대응하는 코드 워드 간의 변환을 행하기 위한 룩업 테이블을 갖는 소프트웨어로 구현될 수 있다. 다른 하드웨어나 소프트웨어 구현도 사용될 수 있다.
병렬에서 직렬로의 변환기(155)는 연속적인 코드 워드(153)를 수신하고 각 코드 워드를 직렬 표현으로 변환하며, 상기 직렬 표현을 연결하여 코드 워드 비트(154)의 직렬 스트림을 생성한다. 프리코더(156)는 직렬 코드 워드 스트림(154)을 수신하고 상기 시퀀스를 조절하여 상기 채널로부터의 신호를 복구하는데 사용되는 검출기의 타입에 최적화되도록 한다. 일 실시예에서, 프리코더(156)는 위의 (식 4)에 주어진 다항식에 따라 시퀀스를 조절한다. 프리코더(156)는 인코딩된 기록 신호(158)를 생성하고, 이 신호는 채널(160)로 공급된다.
디스크 드라이브(100)에서, 채널(160)은 헤드(110)의 기록 트랜스듀서, 디스크 팩(106) 및 헤드(110)의 판독 트랜스듀서를 포함한다. 인코딩된 기록 신호는 기록 트랜스듀서에 의해 디스크 표면상에 저장된다. 판독 동작 중에, 판독 트랜스듀서는 디스크 표면으로부터 저장되고 인코딩된 정보를 읽어 들이고, 판독 신호(164)로서 인코딩된 정보를 수신기/검출기(162)로 전송한다. 수신기/검출기(162)는 판독 신호(164)를 증폭 및 필터링하고 수개의 알려진 검출 방법 중 하나를 사용하여 판독 신호로부터 인코딩된 정보를 복구한다. 예를 들어, 수신기/검출기(162)는 비터비 검출기, 결정 피드백 등화(Decision Feedback Equalization;DFE), 결정 피드백을 갖는 고정 딜레이 트리 검색(Fixed-Delay Tree Search with Decision Feedback;FDTS/DF) 또는 감소 상태 시퀀스 검출(Reduced State Sequence detection;RSSE)를 사용할 수 있다. 채널(160)로부터의 신호를 검출하고 증폭한 뒤에, 수신기/검출기(162)는 코드 워드 비트(165)의 복구된 시퀀스를 발생시키고 이 복구된 시퀀스는 직렬에서 병렬로의 변환기(163)으로 제공된다. 코드 워드 비트(165)의 시퀀스는 직렬에서 병렬로의 변환기(163)로의 입력에서 직렬의 형식으로 되어 있다.
직렬에서 병렬로의 변환기(163)는 비트들을 코드 워드로 분류하고 코드 워드를 직렬 형식에서 병렬형식으로 변환한다. 연속적으로 복구된 코드 워드(166)는 인코더(150)에 의해 발생된 코드 워드의 길이에 대응하는 길이를 갖는다. 직렬에서 병렬로의 변환기(163)는 연속적으로 복구된 병렬 형식의 코드 워드(166)를 디코더(168)로 출력한다. 디코더(168)는 인코더(150)에 의해 사용되는 코딩 규칙의 역을 사용하여 연속적인 코드 워드(166)를 각각의 데이터 워드(170)로 변환한다.
인코더(150)는 수개의 제한 조건을 코드 워드 스트림(153)의 비트 패턴 상에 부과한다. 디스크의 회전속도는 시간에 따라 변화할 수 있으므로, 위상 동기 루프(PLL)가 판독 타이밍 클록의 위상 및 주파수를 판독 신호(164)로 잠그는데 사용된다. PLL이 규칙적으로 업데이트 되도록 하기 위해, 인코더(150)는 코드 워드 스트림(153)의 연속되는 0의 개수를 최대값 "k" 이상이 되지 않도록 제한하는 코드를 사용한다. 이러한 종류의 코드는 글로벌 "k" 또는 "g" 제한 조건을 갖는 런 길이 제한(Run Length Limited) 코드로 알려져 있다. 인코더(150)는 또한 코드 워드 스트림(153)내에서 두개의 인터리브된 하위 시퀀스 각각의 영의 최대 런 길이를 제한하며, 코드 워드 스트림(153)은 각각 코드 워드 스트림(153)의 홀수 색인된 2진수 및 짝수 색인된 2진수에 의해 형성된다. 이런 종류의 코드 제한 조건은 인터리브된 "i"제한 조건으로 알려져 있다. "i" 제한 조건이 비터비 알고리즘에서 결정의 딜레이에 직접적으로 영향을 미치고 또한 에러의 전파 길이에 영향을 미치기 때문에, 상기 "i" 제한 조건은 바람직하게는 주어진 코드율에 대해 가능한 한 짧게 유지된다. 본 발명의 한 실시예에서, 인코더(150)는 7의 "k" 제한 조건 및 5의 "i" 제한 조건을 갖는 코드율 16/17인 코드를 사용하고 이러한 제한 조건들은 인접한 코드 워드 사이의 경계에서 더욱 강화된다.
코드율 m/n인 RLL 코드에서, m비트 길이의 데이터 워드가 선택된 RLL 제한 조건을 만족시키는 n비트 길이의 코드 워드로 매핑되며, 여기서 m 및 n은 양의 정수 변수이다. 독립적 블록 코딩에서, 2mn비트 코드 워드 패턴들은 모든 m비트 길이의 데이터 패턴으로 매핑되도록 요구된다. 예를 들어, 코드율 16/17인 코드는 연속적인 16비트 데이터 워드(또는 2개의 8비트 데이터 바이트)를 연속적인 17비트 코드 워드로 매핑한다. m과 n이 크면, 인코더가 매우 복잡해지고 디코더에서 에러의 전파는 심각해질 수 있다.
이러한 문제점들을 해결하기 위해, 도 3에 도시된 바와 같이, 인코더(150)는 각 m 비트 데이터 워드 패턴(152)을 두개의 더 작은 패턴들로 분할한다. 제1 패턴은 p 비트 길이이고, 제2 패턴은 q비트 길이이며 p+q=m이다. 여기서 p와 q는 양의 정수 변수이다. p비트 길이의 데이터 워드 패턴들은 u비트 길이의 코드 워드 패턴들로 매핑되고, q비트 길이의 데이터 워드 패턴들은 v비트 길이의 코드 워드 패턴들로 매핑된다. 여기서 u와 v는 양의 정수 변수이며 u+v=n이다.
코드 제한 조건을 만족시키는 Nu개의 u비트 길이 코드 패턴과 Nv개의 v비트 길이 코드 패턴이 있는 경우에, Nu와 Nv는 각각 2p와 2q데이터 워드 모두를 매핑할 만큼 충분히 큰 지 체크된다. 모든 p비트 길이의 데이터 워드들을 매핑하기 위하여 2p개의 u비트 길이 코드 워드가 요구되기 때문에, (식 6)은 다음을 만족하여야 한다.
2 p ≤N u
마찬가지로, 모든 q비트 길이의 데이터 워드들을 매핑하여야 하기 위하여 2q개의 v비트 길이 코드 워드가 요구되기 때문에, (식 7)은 다음을 만족하여야 한다.
2 q ≤N v
그러나, (식 6) 및 (식 7)이 필요조건을 만족시키는 유일한 방법은 아니다. 정수 "t"는
2 p ≤[N u * t]
[2 q * t] ≤N v
를 만족하도록 정의된다.
(식 8) 및 (식 9)는 (식 6) 및 (식 7)의 변형이다. (식 6) 및 (식 7)은 개별적으로는 변하지 않지만, 예컨대 (식 8) 및 (식 9)로 함께 변화된다. (식 8)은 p비트 데이터 패턴의 각각이 u비트 코드 워드 패턴 중의 하나도 매핑될 수 있음을 확실히 하고, 또한 각각의 데이터 패턴을 상태수 S와 관련시킨다. 여기서
2p≤[Nu*t]이기 때문에, 이것은 1 대 1 매핑이다. q비트 데이터 패턴에 대해서, (식 9)는 모든 Nv개의 v비트 길이 코드 워드가 t 개의 그룹으로 분할될 수 있도록 보장하고 각 그룹은 적어도 2q개의 코드 워드를 포함한다. 각 그룹은 상태 수 S로 표시할 수 있다. 각 그룹 내에, 2q데이터 패턴의 각각은 유일한 v비트 코드 워드로 매핑될 수 있다.
도 4는 본 발명의 한 실시예에 따른 m비트 데이터 워드를 n비트 코드 워드로 매핑하기 위한 인코딩 프로세스를 보여주는 흐름도이다. 스텝(172)에서, m비트 데이터 워드(152)는 p비트 패턴 및 q비트 패턴으로 분할 된다. 스텝(173)에서, p비트 패턴은 u비트 코드 워드 및 상태수 S로 매핑된다. 여기서 u<p이다. 스텝(174)에서, q비트 패턴은 상태수 S와 관련된 v비트 코드 워드 중 하나로 매핑된다. u비트 및 v비트 코드 워드는 스텝(175)에서 조합되어 n비트 코드 워드(153)를 형성한다.
도 5는 본 발명의 한 실시예에 따라 n비트 코드 워드(166)를 m비트 데이터 워드(170)로 매핑하기 위한 디코딩 프로세스를 보여주는 흐름도이다. 스텝(178)에서, n비트 코드 워드(166)는 u비트 코드 패턴 및 v비트 코드 패턴으로 분할된다. 각 상태수 S에서 v비트 패턴의 그룹은 유일하기 때문에, v비트 패턴에 대한 상태수 S는 스텝(179)에서 결정될 수 있다. 스텝(180)에서, v비트 코드 패턴은 대응하는 q비트 데이터 패턴으로 매핑된다. 스텝(179)에서 결정된 상태수 S 및 u비트 코드 워드를 기초로 하여, 대응하는 p비트 데이터 패턴이 스텝(181)에서 복구된다. 스텝(182)에서, p비트 및 q비트 데이터 패턴들은 m비트 데이터 패턴(170)을 형성하도록 조합된다.
한 예로서, 인코더(150) 및 디코더(168)는 코드율 16/17인 RLL 코드를 구현하도록 구성되는데, 여기서 m=16, n=17, k=7 및 i=5이다. 인코더 및 디코더를 구성하는 효과적인 방법은 p=8, q=8, u=7 및 v=10으로 두는 것이다. "k" 및 "i" 제한 조건을 만족시킬때, 가능한 128개의 7비트 코드 워드 중 87개가 사용가능하고 1024개의 10비트 코드 워드 중 812개가 사용가능하다.(즉, Nu=87 이고 Nv=812이다.)
예컨대 "t"가 3이 되도록 선택된 경우에는, (식 11)에 나타난 바와 같이 (식 8)이 만족된다.
또한, (식 12)에 나타난 바와 같이, (식 9)가 만족된다.
t=3일때는, 세가지의 상태 S0,S1 및 S2가 있다. 충분한 10비트 코드 워드보다 더 많이 있기 때문에, 세가지 상태의 각각에서 10비트 코드 워드는 어떤 특정 코드 워드가 가능한 한 적은 수의 비트를 갖는 디코더(168)에 의해 도 6의 스텝(179)에서 유일하게 결정될 수 있도록 신중하게 선택될 수 있다. 이러한 배열은 에러의 전파를 제한하는데 도움이 된다. 표 1은 일 실시예에 따라 10비트 코드 패턴들을 각각의 상태로 분류하는 과정을 보여준다. 여기서 "X"는 "1" 또는 "0"의 2진값을 갖는 비트 위치를 표시한다.
(표 1)
이 분류 작업은 10비트 코드 워드의 상태가 코드 워드의 4개의 가장 중요한 비트에 의해 유일하게 결정되도록 한다. 에러 버스트(error burst)가 7비트 이하인 한, 디코딩된 데이터의 에러는 두개의 연속적인 데이터 워드로 제한될 것이다. 10비트 코드 워드 중 마지막 7비트와 다음 7비트 코드 워드 중 첫비트에 걸치는 8비트 에러 버스트는 3개의 디코딩된 워드를 망가뜨린다.
일 실시예에서, 인코더(150)는 각 데이터 워드 패턴을 각각의 코드 워드로 매핑시키기 위한 상태 구동 코드 테이블을 사용하므로써 코드 워드를 발생시킨다. 상기 상태 구동 코드 표는 선택된 제한 조건인 k=7 와 i=5를 만족시키는 모든 7비트 및 10비트 패턴들을 집합시켜서 만들어진다. 표 2는 상태 다이어그램이며, 이 상태 다이어그램은 상기 실시예에서 각 8비트 데이터 워드 D[15:8]을 대응하는 7비트 코드 워드 및 다음 상태값(S0,S1,S2)으로 매핑시킨다. 데이터 워드는 "DATA"로 이름 붙여진 열에 제공되고, 대응하는 코드 워드는 "CW"로 이름 붙여진 열에 제공되며, 대응하는 다음 상태들은 "NXS"로 이름 붙여진 열에 제공된다. 8비트 데이터 워드 및 7비트 코드 워드는 2개의 16진수 값에 의해 각각 표현된다.
(표 2)
표 3-5는 각각의 8비트 데이터 워드 D[7:0]를 상태 S0,S1 및 S2 각각에 대해 대응하는 10비트 코드 워드로 매핑하는 상태 다이어그램이다. 각각의 데이터 워드 D[7:0]에 대해, 표 2에서 결정되는 D[15:8]과 관련한 상태수에 따라 표 3,4 또는 5 중의 하나가 사용된다.
8비트 데이터 워드가 표 3-5의 좌측열에 리스트되어 있으며, 이 워드는 "0X"와 같이 2자리의 16진수이다. 두번째 숫자 "X"는 16진수 값 0-F를 가질 수 있으며, 이것은 상기 표들의 상단의 행에 리스트되어 있다. 그러므로, 8비트 데이터 워드"0B"는 10비트 코드 워드"10B"로 매핑될 것이고, 여기서 "10B"의 "1"은 2비트 2진값으로 해석된다. 그리고 "0" 및 "B"는 각각 4비트 2진값으로 해석된다. S0-S2 각각의 상태에서의 코드 워드는 유일하다. 그러므로, 코드 워드를 디코딩하는 경우에, 그에 대응하는 상태는 코드 워드가 있는 표를 결정하므로써 결정될 수 있다.
(표 3)
(표 4)
(표 5)
도 6은 글로벌 런 길이 제한 조건 "k"가 7이고 인터리브 제한 조건 "i"는 5인 코드율 16/17 코드를 발생하기 위한 인코더(150)를 설명하는 블록 다이어그램이다. 인코더(150)는 2개의 부분 즉 Part A 와 Part B로 나누어 진다. Part A는 코드 시험기 A(202) 및 인코더 A(204)를 포함하며, Part B는 코드 시험기 B(206) 및 인코더 B(208)를 포함한다.
인코더 A(204)는 입력 버스(220)를 따라 16비트 입력 데이터 워드 D[15:0] 중 8개의 최상위 비트 D[15:8]를 수신한다. 이 8개의 비트들은 인코더 A(204)에 A7:0으로 표시되며, 여기서 A7:0는 8개의 비트 스트링: A7A6A5A4A3A2A1A0에 대한 약식표기이다. 인코더 A(204)에 의해 수신된 8개의 비트 중에서, 코드 시험기 A(202)는, 버스(222)를 따라 코드 시험기 A(202)의 WA6:0로 표시된 최하위 7비트를 수신한다.
코드 시험기 A(202)는 인코더 A(204)로의 입력인 출력 TA(203)를 발생시킨다. TA(203) 및 입력 A7:0을 기초로 하여 인코더 A(204)는 7비트 코드 워드 Y6:0을 출력 버스(210)상에 출력한다. 인코더 A(204)는 또한 세개의 상태 변수 S0,S1및 S2와 두개의 part B 비트 WB8및 WB9를 발생시킨다. 표 2에 의해 결정된 7비트 코드 워드 Y6:0와 관련되는 다음 상태에 따라, 상태 변수들 S0,S1또는 S2 중의 하나가 활성화된다.
Part B 비트 WB8 및 WB9는 각각 라인(216 및 218)을 따라, 코드 시험기 B(206)로 입력된다. 코드 시험기 B(206)는 또한 입력 데이터 버스(224)를 따라 입력 데이터 워드의 최하위 8비트 D[7:0]를 수신한다. 이 비트들은 코드 시험기 B(206)의 입력 비트 WB7:0로 표시된다. 입력 WB7:0, WB8및 WB9를 기초로하여, 코드 시험기 B(206)는 인코더 B(208)로 입력되는 출력 TB(214)를 발생시킨다.
TB(214)를 수신하는 것에 추가하여, 인코더 B(208)는 각각 라인(228,230 및 232)을 따라 상태 변수 S0,S1및 S2와 입력 버스(226)을 따라 입력 데이터 워드의 최하위 8비트 D[7:0]를 수신한다. 인코더 B(208)내에서, 입력 데이터 워드의 최하위 8비트는 B7:0으로 표시된다. 모든 입력 값들을 기초로 하여, 인코더 B(208)는 출력 버스(212)를 따라 10개의 출력 코드 비트 Z9:0을 발생시킨다. 이 비트들은 비트 Y6:0에 연결되어 17비트의 코드 워드 출력을 형성한다.
인코더(150)는 논리 조합으로 구현될 수 있다. 이 논리 조합은 다음의 심볼들을 이용하여 아래의 표에서 설명된다.
"|"는 비트 단위 OR을 나타낸다;
""는 비트 단위 AND를 나타낸다;
"+"는 산술 합을 나타낸다;
"^"는 XOR를 나타낸다; 그리고
"!X"는 X의 역(inverse)을 나타낸다.
이에 더하여, 다음 표에서는, 아래 첨자 숫자 표기가 단일 표기법에 의해 대체된다. 즉, S0은 S0로 표시되고, B1은 B1으로 표시된다.
코드 시험기 A(202)는 표 6의 식을 사용하여 입력 WA6:0를 기초로 출력 TA(203)을 발생시킨다.:
(표 6)
인코더 A(204)는 입력 비트 A7:0및 TA(203)와 아래의 표 7에 나타난 불리안(Boolean) 방정식을 사용하여 출력 Y6:0(210)을 발생시킨다.
(표 7)
코드 시험기 B(206)는 입력 데이터 워드의 입력 비트 WB7:0, 인코더 A(204)로부터의 비트 WB8와 WB9및 표 8에 나타난 불리안 방정식을 사용하여 출력 TB(214)를 발생시킨다.
(표 8)
인코더 B(208)는 입력 데이터 워드(B7:0)의 최하위 8비트, 3개의 상태변수 S0, S1, S2, TB(214) 및 표 9의 불리안 방정식을 사용하여 출력 비트 Z9:0(212)를 발생시킨다.
(표 9)
도 7은 본 발명의 실시예 중 하나에 따른 인코더(150)에 의해 발생된 코드 워드를 디코딩하기 위한 디코더(168)의 블록 다이어그램이다. 디코더(168)는 part A 및 part B를 포함하며, part A는 코드 시험기 A(252) 및 디코더 A(254)를 포함하고, part B는 코드 시험기 B(256) 및 디코더 B(258)를 포함한다.
각 코드 워드(Z9:0)의 최하위 10 비트는 입력 버스(260)를 따라 디코더(168)의 part B로 입력된다. 코드 시험기 B(256)는 입력 버스(262)를 따라 동일한 10개의 코드 비트를 수신하지만, 10 비트를 WB9:0로 표시한다. 코드 시험기 B(256)는 위의 표 8에 제공된 불리안 방정식들을 사용하여 출력 TB(264)를 발생시키기 위해 이러한 입력을 사용한다. 따라서, 코드 시험기 B(256)는 도 6의 코드 시험기 B(206)와 동일한 조합 논리를 포함한다. 코드 시험기 회로(206)는 인코더(150) 및 디코더(168)에 의해 공유된다.
출력 TB(264)는 코드 워드(Z9:0)의 최하위 10비트와 함께 디코더 B(258)로 입력된다. 디코더 B(258)는 이러한 입력을 사용하여 라인(266,268 및 270)을 따라 각각 상태 출력 S0,S1,S2, 라인(272)상의 무효인 코드워드 표시기(FB) 및 출력 버스(274)를 따라 복구된 데이터 워드의 최하위 8 비트(B7:0)를 발생시킨다. 무효인 코드 워드 표시기(FB)는 단지 TB(264)의 역이다. 상태 변수 S0,S1,S2와 복구된 데이터 비트(B7:0)는 표 10의 불리안 방정식들을 사용하여 발생된다.
(표 10)
코드 시험기 A(252)는 코드 워드의 최상위 7 비트들을 수신하고, 이 최상위 비트들은 입력 버스(276)를 따라 코드 시험기 A(252)에 WA6:0으로 표현된다. 코드 시험기 A(252)는 입력 비트들과 함께 위 표 6의 불리안 방정식을 사용하여 출력 TA(252)를 발생시키며, 이 출력 TA(252)는 디코더 A(254)로 제공된다. 따라서, 코드 시험기 A(252)는 도 6의 코드 시험기 A(202)와 동일한 논리 조합을 포함한다.
디코더 A(254)는 또한 입력 버스(280)를 따라 코드 워드의 최상위 7 비트(Y6:0) 및 각각 라인들(266,268 및 270)을 따라 디코더 B(258)로부터 상태 변수 S0,S1,S2를 수신한다. 디코더 A(254)는 이러한 입력 값들을 사용하여 복구된 데이터 워드의 최상위 8비트(A7:0) 및 각각 출력 버스(282) 및 라인(284)을 따라 무효인 코드 워드 표시기(FA)를 발생시킨다. 무효인 코드 워드 표시기(FA)는 단지 코드 시험기 A(252)로부터 나온 TA(278)의 역이다. 복구된 데이터 비트들(A7:0)은 표 11의 불리안 방정식을 사용하여 결정된다.
(표 11)
요약하면, 본 발명의 한 관점은 채널(160)을 통해 전달하기 위해 연속적인 데이터 워드(152)를 연속적인 코드 워드(153)로 인코딩하는 방법을 제공한다. 연속적인 데이터 워드(152)의 각각은 제1 및 제2 부분(A7:0및 B7:0)으로 분할된다. 연속적인 데이터 워드(152)의 각각은 제1부분(A7:0)은 선택된 코드에 따라 대응하는 제1 코드 패턴(Y6:0) 및 대응하는 상태 변수(S0-S2)로 매핑된다. 각각의 연속적인 데이터 워드(152)의 제2부분(B7:0)은 선택된 코드에 따라 상태 변수 S0-S2와 관련된 대응하는 제2 코드 패턴 (Z9:0)으로 매핑된다. 제1 및 제2 코드 패턴(Y6:0및 Z9:0)은 연속적인 코드 워드(153)의 각각을 형성하도록 연결된다. 연속적인 코드 워드(153)는 다수의 비트 위치를 갖는 인코딩된 비트 스트림을 형성하도록 연결된다. 런 길이 제한 조건 "k"가 선택된 코드 상에 부과되어 인코딩된 비트 스트림은 다수의 비트 위치들 중 최대 7개의 연속되고 동일한 2진 부호의 런 길이를 갖는다. 인터리브 제한 조건 "i"가 선택된 코드 상에 부과되어 인코딩된 비트 스트림은 다수의 비트 위치들 중 격 비트 위치들에 있어 최대 5개의 연속되고 동일한 2진 부호의 런을 갖는다.
본 발명의 또다른 관점은 연속적인 데이터 워드(152)를 인코딩된 비트 스트림을 형성하도록 연결된 각각의 연속적인 코드 워드(153)로 인코딩하기 위한 인코더(150)에 관련된 것이다. 인코더(150)는 연속적인 데이터 워드(152), n비트 코드 워드 출력(Y6:0,Z9:0), 및 제1 및 제2 인코더(204 및 208)를 수신하기 위한 m비트 데이터 워드 입력(A7:0,B7:0)을 포함한다. 제1 인코더(204)는 m비트 데이터 워드 입력에 연결된 p비트 데이터 워드 입력(A7:0), n비트 코드 워드 출력에 연결된 u비트 코드 워드 출력(Y6:0)을 포함한다. 제2 인코더(208)는 m비트 데이터 워드 입력에 연결된 q비트 데이터 워드 입력(B7:0), n비트 코드 워드 출력에 연결된 v비트 코드 워드 출력(Z9:0) 및 상태 변수 출력에 연결된 상태 변수 입력을 포함한다. 여기서 m,n,p,q,u 및 v는 정수 변수이며, p+q=m, u+v=n 이고 u<p이다. 제1 및 제2 인코더(204 및 208)는, n비트 코드 워드 출력 상의 인코딩된 비트 스트림(153)내에 인접한 비트 위치들의 시퀀스에 나타나는 연속적인 동일 2진 부호의 제1 숫자를 최대 7로 제한하고, n비트 코드 워드 출력 상의 인코딩된 비트 스트림(153)의 짝수 및 홀수 색인된 비트 위치의 시퀀스에 나타나는 연속적인 동일 2진 부호의 제2 숫자를 최대 5로 제한하는 코드를 구현한다.
본 발명의 또다른 관점은 트랜스듀서(110) 및 기록 채널(150,155 및 156)을 포함하는 디스크 드라이브 저장 채널(148)에 관련된 것이다. 트랜스듀서(110)는 데이터 저장 디스크(106)와 통신이 가능하다. 기록 채널(150,155 및 156)은 선택된 코드에 따라 인코딩된 비트 스트림(154)을 형성하기 위해, 연속적인 데이터 워드(152)를 연속적인 코드 워드(153)로 인코딩하기 위한 트랜스듀서(110)로 연결되고, 상기 인코딩된 비트 스트림(154)은 프리코딩되고, 트랜스듀서(110)에 인가되어 채널 입력(158)이 된다. 선택된 코드는 연속적인 코드 워드(153)를 제한하여 상기 인코딩된 비트 스트림의 인접한 비트 위치에 최대 7개의 연속되고 동일한 2진 부호의 런이 있고, 상기 인코딩된 비트 스트림(154)의 짝수 색인 및 홀수 색인된 비트 위치에 최대 5개의 연속되고 동일한 2진 부호의 런이 있도록 한다.
본 발명에 따른 실시예의 많은 특징들과 장점들이 본 발명에 따른 실시예의 구조 및 기능에 대한 상세한 설명과 함께 앞의 설명에서 소개되었지만, 이러한 실시예들은 설명을 위한 것일 뿐이고, 첨부된 청구항에 의해 표현된 용어들의 광범위하고 일반적인 의미에 의해 표시된 최대 범위까지 본 발명의 기본 사상 내에서, 특히 구성부분들의 구성 및 배치에 관하여 많은 변형이 가해질 수 있다. 예를 들어, 특정 엘리먼트는 본 발명의 범위 및 사상을 벗어나지 않고 충분히 동일한 기능을 유지하면서 코딩하는 방법 및 장치를 위한 특정 응용예에 따라 변할 수 있다. 또한, 여기에 설명된 바람직한 실시예가 디스크 드라이브를 위한 코딩 시스템으로 방향지워져 있긴 하지만, 본 발명이 위성 통신 또는 휴대 전화 시스템과 같은 다른 시스템에도 적용될 수 있다는 사실은 해당 분야의 당업자에게 명백할 것이다. 다양한 다른 코드들이 사용될 수 있으며, 하나 이상의 인코딩 또는 디코딩 표가 서로 링크될 수 있고, 추가적이거나 서로 다른 상태수들이 사용될 수 있으며, 상기 인코더 또는 디코더에 제공된 데이터들은 원하는 대로 오버래핑 될 수 있다.

Claims (14)

  1. 채널을 통한 전송을 위해, 연속적인 데이터 워드를 연속적인 코드 워드로 인코딩 하는 방법으로서,
    (a) 각각의 연속적인 데이터 워드를 제1 및 제2 부분으로 분할하는 단계;
    (b) 상기 각각의 연속적인 데이터 워드의 제1 부분을 선택된 코드에 따라서 대응하는 제1 코드 패턴 및 대응하는 상태 변수로 매핑하는 단계;
    (c) 상기 각각의 연속적인 데이터 워드의 제2 부분을 선택된 코드에 따라서 상태 변수와 관련된 대응하는 제2 코드 패턴으로 매핑하는 단계;
    (d) 상기 제1 및 제2 코드 패턴을 조합하여 각각의 연속적인 코드 워드를 형성하는 단계;
    (e) 상기 연속적인 코드 워드를 연결하여 다수의 비트 위치를 갖는 인코딩된 비트 스트림을 형성하는 단계; 및
    (f) 런 길이 제한 조건을 선택된 코드 상에 부과하여 상기 인코딩된 비트 스트림이 다수의 비트 위치들 중 인접하는 비트 위치들에 있어 최대 7개의 연속적인 동일 2진 부호의 런을 갖도록 하고, 인터리브 제한 조건을 선택된 코드 상에 부과하여 상기 인코딩된 비트 스트림이 다수의 비트 위치들 중 격 비트 위치들에 있어 최대 5개의 연속적인 동일 2진 부호의 런을 갖도록 하는 단계를 포함하는 것을 특징으로 하는 인코딩 방법.
  2. 제1항에 있어서,
    상기 연속적인 데이터 워드는 각각 m 비트를 포함하고(여기서 m은 정수);
    상기 연속적인 코드 워드는 각각 n 비트를 포함하며(여기서 n은 정수이고, n=m+1);
    상기 분할하는 단계(a)는 각각의 연속적인 데이터 워드를 대응하는 제1 p비트 부분과 제2 q비트 부분으로 분할하는 단계를 포함하고(여기서 p와 q는 정수 변수);
    상기 매핑하는 단계(b)는 상기 제1 p비트 부분을 제1 u비트 코드 패턴으로 매핑하는 단계를 포함하고(여기서 u는 정수 변수이고,u<p);
    상기 매핑하는 단계(c)는 제2 q비트 부분을 상기 상태 변수와 관련된 제2 v비트 코드 패턴으로 매핑하는 단계를 포함하는 것을 특징으로 하는 인코딩 방법.
  3. 제2항에 있어서,
    m=16, n=17, p=8, q=8, u=7, v=10인 것을 특징으로 하는 인코딩 방법.
  4. 제2항에 있어서,
    (g) 다수의 v비트 코드 패턴을 정의하고, 다수의 v비트 코드 패턴을 다수의 집합들로 분할하는 단계; 및
    (h) 상기 다수의 집합들의 각각을 다수의 상태값들 중 하나와 관련시키는 단계로서, 상기 매핑하는 단계(b)에서 상기 대응하는 상태 변수는 다수의 상태값들 중 하나를 가지고, 상기 제2 q비트 부분은 단계(b)의 상태값과 관련된 집합에서 다수의 v비트 코드 패턴 중 하나로 매핑되는 단계를 더 포함하는 것을 특징으로 하는 인코딩 방법.
  5. 제4항에 있어서,
    v=10이고,
    상기 정의하는 단계(g)는 다수의 v비트 코드 패턴을 제1, 제2 및 제3 집합들로 분할하는 단계를 포함하고,
    상기 관련시키는 단계(h)는 상기 제1, 제2 및 제3 집합들을 각각 제1, 제2 및 제3 상태값들과 관련시키는 단계를 포함하는 것을 특징으로 하는 인코딩 방법.
  6. 삭제
  7. 연속적인 데이터 워드를, 인코딩된 비트 스트림을 형성하도록 연결된, 각각의 연속적인 코드 워드로 인코딩하기 위한 인코더에 있어서,
    상기 연속적인 데이터 워드를 수신하기 위한 m비트 데이터 워드 입력;
    n비트 코드 워드 출력;
    상기 m비트 데이터 워드 입력에 연결된 p비트 데이터 워드 입력, 상기 n비트 코드 워드 출력에 연결된 u비트 코드 워드 출력, 및 상태 변수 출력을 포함하는 제1 인코더;
    상기 m비트 데이터 워드 입력에 연결된 q비트 데이터 워드 입력, 상기 n비트 코드 워드 출력에 연결된 v비트 코드 워드 출력, 및 상기 상태 변수 출력에 연결된 상태 변수 입력을 포함하는 제2 인코더; 및
    상기 n비트 코드 워드 출력 상의 인코딩된 비트 스트림 내에 인접한 비트 위치들의 시퀀스에 나타나는 연속적인 동일 2진 부호의 제1 숫자를 최대 7로 제한하고, n비트 코드 워드 출력 상의 인코딩된 비트 스트림의 짝수 및 홀수 색인된 비트 위치의 하위 시퀀스에 나타나는 연속적인 동일 2진 부호의 제2 숫자를 5로 제한하는, 제1 및 제2 인코더에 의해 구현되는 코드를 포함하며,
    상기 m,n,p,q,u 및 v는 정수 변수이고, p+q=m, u+v=n이고 u<p인 것을 특징으로 하는 인코더.
  8. 제7항에 있어서,
    m=16, n=17, p=8, q=8, u=7, v=10인 것을 특징으로 하는 인코더.
  9. 제7항에 있어서,
    v=10이고,
    상기 코드는 유일한 v비트 코드 패턴들의 제1, 제2 및 제3 집합들을 정의하고, 상기 제1, 제2 및 제3 세트는 각각 제1 상태값, 제2 상태값 및 제3 상태값과 관련되는 것을 특징으로 하는 인코더.
  10. 삭제
  11. 삭제
  12. 제7항에 따른 인코더를 구비하는 디스크 드라이브로서,
    데이터 저장 디스크와 통신할 수 있는 트랜스듀서;
    선택된 코드에 따라서 연속적인 데이터 워드를 연속적인 코드 워드로 인코딩하여 인코딩된 비트 스트림을 형성하는 인코더를 구비하는 상기 트랜스듀서에 연결된 채널을 포함하는데, 상기 인코딩된 비트 스트림은 프리코딩되어 상기 트랜스듀서에 채널 입력으로서 인가되며; 및
    선택된 코드에 따라서 상기 트랜스듀서로부터 수신된 연속적인 코드 워드를 연속적 데이터 워드로 디코딩하기 위한 상기 트랜스듀서에 연결된 디코더를 포함하는 것을 특징으로 하는 디스크 드라이브.
  13. 삭제
  14. 삭제
KR10-2000-7014738A 1998-06-24 1999-06-10 짧게 인터리브된 제한 조건을 갖는 효과적인 런 길이 제한코드 KR100406806B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US9054698P 1998-06-24 1998-06-24
US60/090,546 1998-06-24
US09/330,114 US6198582B1 (en) 1998-06-24 1999-06-10 Efficient run length limited code with short interleaved constraint
US09/330,114 1999-06-10

Publications (2)

Publication Number Publication Date
KR20010053164A KR20010053164A (ko) 2001-06-25
KR100406806B1 true KR100406806B1 (ko) 2003-11-21

Family

ID=26782398

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-7014738A KR100406806B1 (ko) 1998-06-24 1999-06-10 짧게 인터리브된 제한 조건을 갖는 효과적인 런 길이 제한코드

Country Status (7)

Country Link
US (1) US6198582B1 (ko)
JP (1) JP3478800B2 (ko)
KR (1) KR100406806B1 (ko)
CN (1) CN1306665A (ko)
DE (1) DE19983344B4 (ko)
GB (1) GB2355166B (ko)
WO (1) WO1999067784A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6981197B2 (en) * 2001-01-23 2005-12-27 Seagate Technology Llc Enhanced interleave type error correction method and apparatus
GB0007781D0 (en) * 2000-03-30 2000-05-17 Sony Uk Ltd Data compression
US6480125B2 (en) * 2000-06-09 2002-11-12 Seagate Technology Llc Method and apparatus for efficient encoding of large data words at high code rates
FR2821458A1 (fr) * 2001-02-28 2002-08-30 Koninkl Philips Electronics Nv Schema, procede d'analyse syntaxique et procede de generation d'un flux binaire a partir d'un schema
EP1411695B1 (en) * 2001-06-09 2005-08-17 Samsung Electronics Co., Ltd. Mapping with unequal error protection
CN1305220C (zh) * 2001-07-09 2007-03-14 希捷科技有限公司 用于抑制数字数据内低频含量的方法和装置
US6839004B2 (en) 2001-11-27 2005-01-04 Seagate Technology Llc High rate run length limited code
US6674375B2 (en) 2002-06-07 2004-01-06 Seagate Technology Llc Run length limited coding with minimal error propagation
GB2423402B (en) 2002-07-19 2007-01-03 Gatekeeper Systems Improvements relating to security and electronic article surveillance
US6961010B2 (en) * 2003-08-13 2005-11-01 Seagate Technology Llc DC-free code design with increased distance between code words
US6897793B1 (en) * 2004-04-29 2005-05-24 Silicon Image, Inc. Method and apparatus for run length limited TMDS-like encoding of data
US7002492B2 (en) * 2004-07-07 2006-02-21 Seagate Technology Llc High rate running digital sum-restricted code
US7142134B2 (en) * 2005-02-01 2006-11-28 Hitachi Global Storage Technologies Netherlands B.V. Techniques for generating modulation codes using running substitutions
GB2506159A (en) * 2012-09-24 2014-03-26 Ibm 2 Stage RLL coding, standard coding with global/interleave constraints, then sliding window substitution with sequences having different constraints

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980011319U (ko) * 1996-08-19 1998-05-25 양재신 타이어의 미끄럼 방지장치
US5757294A (en) * 1996-12-31 1998-05-26 Quantum Corporation Rate 24/25 modulation code for PRML recording channels

Family Cites Families (5)

* 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
NL8603164A (nl) * 1986-12-12 1988-07-01 Optical Storage Int Werkwijze voor het overdragen van n-bit informatiewoorden, informatieoverdrachtsysteem voor het uitvoeren van de werkwijze, alsmede een kodeerinrichting en dekodeerinrichting voor toepassing in het informatieoverdrachtsysteem.
US5537112A (en) * 1994-01-12 1996-07-16 Seagate Technology, Inc. Method and apparatus for implementing run length limited codes in partial response channels
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
US5757822A (en) * 1995-08-24 1998-05-26 Quantum Corporation Bit-interleaved rate 16/17 modulation code with three-way byte-interleaved ECC

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980011319U (ko) * 1996-08-19 1998-05-25 양재신 타이어의 미끄럼 방지장치
US5757294A (en) * 1996-12-31 1998-05-26 Quantum Corporation Rate 24/25 modulation code for PRML recording channels

Also Published As

Publication number Publication date
DE19983344T1 (de) 2002-07-11
WO1999067784A1 (en) 1999-12-29
GB2355166A (en) 2001-04-11
US6198582B1 (en) 2001-03-06
CN1306665A (zh) 2001-08-01
KR20010053164A (ko) 2001-06-25
JP3478800B2 (ja) 2003-12-15
JP2002519799A (ja) 2002-07-02
GB0031105D0 (en) 2001-01-31
GB2355166B (en) 2003-12-31
DE19983344B4 (de) 2005-02-10

Similar Documents

Publication Publication Date Title
US6018304A (en) Method and apparatus for high-rate n/n+1 low-complexity modulation codes with adjustable codeword length and error control capability
US6804805B2 (en) Method and apparatus for encoding with unequal protection in magnetic recording channels having concatenated error correction codes
US5537112A (en) Method and apparatus for implementing run length limited codes in partial response channels
US5757567A (en) Method and apparatus for servo control with high efficiency gray code for servo track ID
US5757294A (en) Rate 24/25 modulation code for PRML recording channels
US5731768A (en) Method and apparatus for implementing codes with maximum transition run length
US6505320B1 (en) Multiple-rate channel ENDEC in a commuted read/write channel for disk storage systems
KR100406806B1 (ko) 짧게 인터리브된 제한 조건을 갖는 효과적인 런 길이 제한코드
US5576707A (en) Method and apparatus for detecting and decoding data in a PRML class-IV digital communication channel
JP3363432B2 (ja) データ符号化システム
KR100506070B1 (ko) 고밀도데이터의기록/재생을위한부호화/복호화방법
JP3923143B2 (ja) 17ビットのコードワードを16ビットのデータワードに復号化する16/17 endecおよび17ビットのコードワードを16ビットのデータワードに復号化する方法
US5544178A (en) Method and apparatus for encoding data in a PRML class-IV digital communication channel
KR100426656B1 (ko) 24 비트 시퀀스의 데이터에 대한 인코딩 및 디코딩 기술
US5781130A (en) M-ary (d,k) runlength limited coding for multi-level data
US6201485B1 (en) High rate runlength limited codes for 8-bit ECC symbols
US6839004B2 (en) High rate run length limited code
WO2000055974A1 (en) ENCODING/DECODING n-BIT SOURCE WORDS INTO CORRESPONDING m-BIT CHANNEL WORDS, AND VICE VERSA, SUCH THAT THE CONVERSION IS PARITY INVERTING
KR20010022814A (ko) 효과적 블록 코드 수행을 하는 데이터 저장 시스템
US6317856B1 (en) Encoder and a method of encoding for partial response channels
US6985320B2 (en) Method and apparatus for encoding data to guarantee isolated transitions in a magnetic recording system
KR100552944B1 (ko) 최대 전이 런 길이 코드
JP2000113603A (ja) 光ディスク記録方法及び装置
JP2001518253A (ja) 位置依存制約を有する最大遷移ランレングス符号用システム及び方式
US5675330A (en) M=5(4,11)runlength limited code for multi-level data

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: 20121024

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20131024

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee