KR20010022814A - 효과적 블록 코드 수행을 하는 데이터 저장 시스템 - Google Patents

효과적 블록 코드 수행을 하는 데이터 저장 시스템 Download PDF

Info

Publication number
KR20010022814A
KR20010022814A KR1020007001416A KR20007001416A KR20010022814A KR 20010022814 A KR20010022814 A KR 20010022814A KR 1020007001416 A KR1020007001416 A KR 1020007001416A KR 20007001416 A KR20007001416 A KR 20007001416A KR 20010022814 A KR20010022814 A KR 20010022814A
Authority
KR
South Korea
Prior art keywords
data
output
bits
encoder
decoder
Prior art date
Application number
KR1020007001416A
Other languages
English (en)
Other versions
KR100571743B1 (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 KR20010022814A publication Critical patent/KR20010022814A/ko
Application granted granted Critical
Publication of KR100571743B1 publication Critical patent/KR100571743B1/ko

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B5/00Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
    • G11B5/012Recording on, or reproducing or erasing from, magnetic disks
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B5/00Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
    • G11B5/02Recording, reproducing, or erasing methods; Read, write or erase circuits therefor
    • G11B5/09Digital recording
    • 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

Landscapes

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

Abstract

저장 매체(102), 기록 소자(108), 데이터 입력(112)을 포함하는 저장 장치(100). 제 1 인코더(152)는 인코드된 데이터 출력을 데이터 입력(112)의 제 1 부분의 함수로서 제공한다. 제 1 인코더(152)는 또한 상태 출력(156)을 제공한다. 제 2 인코더(154)는 제 2 인코드된 데이터 출력을 데이터 입력(112)의 일부의 함수 및 상태 출력(156)의 함수로서 제공한다. 제 1 및 제 2 데이터 출력은 정보를 저장 매체(102) 상에 기록하는 기록 소자(108)에 연결된다. 부가적으로, 유사한 기술이 블록 디코더(134)에 사용된다.

Description

효과적 블록 코드 수행을 하는 데이터 저장 시스템 {DATA STORAGE SYSTEM HAVING EFFICIENT BLOCK CODE IMPLEMENTATION}
전형적인 디스크 드라이브는 허브 또는 스핀들 상에서 회전하도록 장착된 하나 이상의 자기 디스크들을 포함한다. 전형적인 디스크 드라이브는 또한 각 자기 디스크 상에서 동작하는 공기 베어링에 의해 지지되는 변환기(transducer)를 포함한다. 변환기와 공기 베어링을 총괄하여 데이터 헤드라 부른다. 드라이브 제어기는 통상적으로 호스트 시스템에서 수신된 명령들에 근거하여 디스크 드라이브들을 제어하는데 사용된다. 드라이브 제어기는 자기 디스크로부터 정보를 검색하고 자기 디스크 상에 정보를 기록하도록 디스크 드라이브를 제어한다.
전기 기계 액츄에이터(electromechanical actuator)는 네거티브 피드백, 폐루프 서보 시스템 내에서 동작한다. 액츄에이터는 트랙 탐색 동작을 위해 데이터 헤드를 디스크 표면상에서 방사상으로 움직이고 트랙 추종 동작을 위해 변환기를 디스크 표면상의 트랙 바로 위에 유지시킨다.
자기 디스크 표면상에 저장될 데이터를 나타내는 자속 반전(flux reversals)을 인코드하도록 데이터 헤드에 기록 신호를 제공함에 의해, 정보는 통상 자기 디스크의 표면상의 동심 트랙에 인코드되고 저장된다. 디스크로부터 데이터를 검색함에 있어서, 드라이브 제어기는 전기 기계 액츄에이터를 제어하여 데이터 헤드가 자기 디스크 상에서 이동하여 자기 디스크 상의 자속 반전을 감지하고 그 자속 반전에 근거하여 판독 신호를 생성하도록 한다. 판독 신호는 자기 디스크 상에 저장된 자속 반전들에 의해 표현되어 결과적으로 데이터 헤드에 의해 제공된 판독 신호로 표현되는 데이터를 복구하도록, 전형적으로 판독 채널 또는 드라이브 제어기에 의해 조건 설정되고(conditioned) 디코드된다.
그런 디스크 드라이브에 의해 나타나는 통신 채널에는 사용자 입력 데이터를 인코드하는 인코더, 데이터 헤드, 매체(예를 들어 자기 또는 광 디스크), 전제조건 논리요소(preconditioning logic)(증폭기, 필터, 이득 루프, 샘플러, 타이밍 루프, 클록 생성과 같은), 데이터 검출기, 검출된 데이터를 디코딩하여 평가된 사용자 데이터를 나타내는 출력을 제공하는 디코더가 포함된다.
일반적으로, 통신 채널에는 두 타입의 인코딩 기술이 사용된다. 이는 블록 인코딩과 컨볼루션 인코딩 기술이다. 블록 코딩 기술은 전형적으로 디스크 드라이브에서 사용되는 것으로서 버스트 에러들을 정정하고 이어지는 데이터 처리에 유용한 어떤 특성(제한)을 인코드된 데이터에 부과하는데 적합하다. 블록 코드의 한 타입으로서 한 시퀀스에서 발생하는 자속 변화의 수를 제한하는 런 길이 제한(Run-Length-Limited, RLL) 코드가 있다. 고급 데이터 저장 시스템은 RLL 인코딩과 연결된 에러 정정 인코딩을 종종 이용한다.
블록의 크기에 관련된 두 테이블(tables)을 이용하여 블록으로 데이터를 인코딩하는 레이트(rate)가 m/n 인 블록 인코더와 디코더를 구현할 수 있다. 인코더는 2m×n 데이터 엔트리를 가진 테이블에 의해 형성되며, 디코더는 2n×m 데이터 엔트리를 가진 테이블에 의해 형성될 수 있다. 그러나, m 과 n 의 값이 크면, 이들 테이블들이 엄청나게 커져서 디스크 드라이브 저장 시스템에서 실제적으로 구현될 수 없게 된다.
비교적 큰 m, n 값을 가지는 시스템에서 블록 인코딩을 구현하는데 이용되는 하나의 방법은 각 데이터 워드의 일부만을 인코드하는 것이다. 데이터 워드의 나머지는 인코드되지 않은 채로 남게된다. 예를 들어, 16/17 레이트 코드를 구현하는 통상적 기술은 최초 8 비트를 내버려두고 나머지 8 비트를 9 비트로 인코드하는 것이다. 이 방식에서는 인코더의 복잡성이 8/9 레이트 인코더에서와 비슷하다. 8 비트가 인코드되지 않고 통과되어 런 길이 제한과 같은 코드 제한을 부과하는데 이용될 수 없다는 것이 단점이다.
본 발명은 이 문제와 다른 문제에 대한 해법을 제공하고 종래 기술에 비한 장점을 제공한다.
본 발명은 디스크 드라이브에 관한 것이다. 더 상세히 말하면, 본 발명은 디스크 드라이브의 데이터 채널에 사용되는 블록 코드들에 관한 것이다.
도 1은 본 발명에 따른 데이터 저장 시스템의 개략적 블록도이다.
도 2는 종래의 블록 인코더에 관한 도이다.
도 3은 종래의 블록 디코더에 관한 도이다.
도 4는 본 발명의 일 실시예에 따른 블록 인코더에 관한 도이다.
도 5는 본 발명의 일 실시예에 따른 블록 디코더에 관한 도이다.
도 6은 본 발명의 제 2 실시예에 따른 인코더의 블록도이다.
도 7은 본 발명의 제 2 실시예에 따른 디코더의 블록도이다.
본 발명은 상기 문제를 해결하는 블록 인코더를 가진 저장 시스템에 관한 것이다.
본 발명의 일 실시예에 따르면, 저장 장치는 저장 매체와 저장 매체에 인접하게 위치되어 기록 신호 입력에 응답하여 저장 매체에 정보를 기록하는 기록 소자를 포함한다. 다수의 데이터 입력 비트를 가진 데이터 입력이 제공된다. 제 1 인코더가 이 데이터 입력에 연결되어 다수의 데이터 입력 비트들의 제 1 부분의 함수인 제 1 인코드된 데이터 출력과 상태 출력을 제공한다. 제 1 인코드된 데이터 출력은 기록 소자의 기록 신호 입력에 연결된다. 제 2 인코더가 상기 데이터 입력에 연결되어 다수의 데이터 입력 비트들의 제 2 부분의 함수인 제 2 인코드된 데이터 출력과 상태 출력을 제공한다. 제 2 인코드된 데이터 출력은 기록 소자의 기록 신호 입력에 연결된다.
다른 실시예에서, 저장 장치는 저장 매체와 저장 매체에 인접하게 위치되어 저장 매체에서 정보를 판독하여 판독 신호 출력을 제공하는 판독 소자를 포함한다. 제 1 디코더가 판독 소자에 연결되어 판독 신호 출력의 제 1 부분의 함수인 제 1 디코드된 데이터 출력과 상태 출력을 제공한다. 제 1 디코드된 데이터 출력은 시스템 출력으로 연결된다. 제 2 디코더가 판독 소자에 연결되어 판독 신호 출력의 함수이고 상태 출력의 함수인 제 2 디코드된 데이터 출력을 제공한다. 제 2 디코드된 데이터 출력은 시스템 출력으로 연결된다.
이상의 특징과 다른 특징들 및 본 발명을 특정하는 장점들이 첨부 도면을 참고한 아래의 상세한 설명으로부터 명백해질 것이다.
도 1은 본 발명에 따른 디스크 드라이브 저장 시스템(100)의 간략화된 블록도를 도시하고 있다. 시스템(100)은 자기, 광, 광자기 등을 포함하는 임의의 타입의 저장 장치일 수 있다. 시스템(100)은 디스크(102), 그리고 스위치(11)를 통해 변환 헤드(108)에 연결된 판독 회로(104)와 기록 회로(106)를 포함한다. 변환 헤드(108)는 디스크(102)의 데이터 표면상에 위치하며, 바람직한 일 실시예에서는 자기적으로 인코드된 정보를 판독하고 기록하는 헤드를 포함한다. 입력 회로(112)로부터 수신된 정보는 변환 소자(108)에 기록 신호를 인가하는 기록 회로(106)에 의해 디스크(102) 상으로 기록된다. 판독 중에, 변환 헤드(108)에 의해 디스크(102)에 저장된 데이터 신호를 나타내는 신호가 생성되어 판독 회로(104)로 제공된다. 판독 회로(104)는 데이터 신호에 있는 데이터를 디코드하고 출력 회로(114)를 통해 출력을 제공한다. 공지의 데이터 인코딩 기술을 이용하여 저장된 정보를 판독하는 동안 에러가 검출되거나 어떤 경우에는 에러가 정정되도록 디스크(102)에 정보를 기록할 수 있다. 기록 회로(106)는 인코딩부(120)와 증폭 회로(122)를 포함한다. 인코딩부(120)는 통상 블록 인코더(124) 및 PR4 프리코더(126)를 포함한다. 판독 회로(104)는 증폭기(130)와 디코딩부(131)를 포함한다. 디코딩부(131)는 대체로 본 발명에 따른 부분 응답 최대 가능성(PRML) 검출기(134)와 블록 디코더(134)를 포함한다. 블록 인코더(124)와 블록 디코더(134)는 본 발명에 따른 것으로서 이하에서 상세히 설명한다. 클래스 4 부분 응답(PR4) 프리코더(126)는 PRML 채널에 유용한 인코딩을 데이터에 제공한다.
블록 인코더(124)와 블록 디코더(134)는 본 발명에 따라 동작하며, 종래 기술에서 요구되던 대형 룩업 테이블 없이도 긴 데이터 워드의 모든 비트를 효과적으로 인코드하고 디코드한다. 본 발명에 따르면, 블록 인코더(124)와 블록 디코더(134)는 데이터 워드를 분할하여 인코딩과 디코딩의 복잡도를 감소시킨다. 이 기술은 16/17 레이트 또는 그 이상의 코드와 같은 높은 레이트의 코드를 구현하는데 유용하며, PRML 채널과 함께 사용하기 위해 PR4 프리코더(126)가 연결될 경우에 유용한 특성을 코드 상에 부여한다.
본 발명에 따라 블록 코드를 구현함에 있어서, 여러 가지 코드 제한이 부과될 수 있다. 바람직한 일 실시예에서는, 아래의 특성을 가지는 코드 제한들이 부과된다.
g: 글로벌 런 길이 제한(RLL)형 제한. 인코드된 시퀀스의 임의 위치에서의 0의 최대 런(maximum run)
I: 인터리브 RLL 제한. 인터리브 당 0의 최대 런.
최대 에러 전파: 단일 최대 거리 에러 경우에 발생하는 에러에서의 바이트의 수.
최소 코드 에너지: 인코드된 패턴에서의 1(one)의 수. 이는 각 코드워드 상의 타이밍 정보의 양에 대한 지표이다.
바람직한 실시예에서는 아래 제한들이 얻어질 수 있다.
[테이블 1]
도 2와 도 3은 각각 종래의 16/17 레이트 블록 인코더와 디코더의 블록도이다. 도 2의 16/17 레이트 블록 인코더는 16 데이터 비트의 입력(D0-D15)을 수신하고 216×17 룩업 테이블을 이용하여 17 코드 비트의 출력(비트 C0-C16)을 제공한다. 유사하게, 도 3에서 217×16 룩업 테이블을 이용하여 17 데이터 비트(C0-C16)가 16 데이터 비트(D0-D15)로 디코드된다. 이 종래 기술은 원하는 코드 출력을 제공하지만, 상대적으로 커서 비효율적인 룩업 테이블을 필요로 하며 대부분의 시스템에서 비실용적일 수 있다.
도 4는 본 발명의 일 실시예에 따른 블록 인코더(124)에 관한 도이다. 블록 인코더(124)는 제 1 (부분 A) 인코더(152)와 제 2 (부분 B) 인코더(154)를 포함한다. 바람직한 실시예는 입력 데이터를 두 부분으로 분할한다. 도 2의 비트 D8-D15에 대응되는 데이터 비트들 A0-A7(즉, 8 비트)이 인코더(152)로 제공된다. 도 2의 비트 D0-D7에 대응되는 데이터 비트들 B0-B7(즉, 8 비트)이 인코더(154)로 제공된다. 인코더(152)는 도 2의 비트 C0-C6에 대응되는 비트 Y0-Y6을 가지는 제 1 인코드된 데이터 출력을 제공한다. 마찬가지로, 인코더(154)는 도 2의 비트 C7-C16에 대응되는 비트 Z0-Z9를 가지는 제 2 인코드된 데이터 출력을 제공한다.
인코더(152)는 상태 수 출력(state number output)(156)을 인코더(154)에 제공한다. 인코더(154)는 각 그룹에 상태 수(0, 1, 또는 2)가 할당된 3 그룹의 10 비트 코드워드들을 가진 테이블을 포함한다. 각 10 비트 그룹에는 256 코드워드들이 존재한다. 따라서, 가능한 1024 코드워드들 중에 단지 3 ×256 = 768 코드워드들만이 인코더(154)에 의해 이용된다. 바람직하게는, 인코더(152)와 관련된 바람직한 코드 특성을 제공하도록 이용되지 않는 코드워드들이 선택된다.
인코더(152)의 테이블을 각 엔트리는 인코더(154)로 전달되는 두 비트의 상태 수와 7 비트 코드워드이다. 인코더(152)의 코드워드에 대해 127개의 가능한 0 아닌 값들이 존재한다. 따라서, 인코더(152)에 대해 3 ×127= 381 개의 가능한 조합의 코드워드들이 존재하며 대응하는 상태 수가 존재한다. 그러나, 인코더(152)에는 단지 256 엔트리만이 필요하므로, 인코더(152)에서 얼마의 부분 A 코드워드들이 제거되거나 그리고/또는 얼마의 부분 B 상태 및 부분 A 코드워드들이 불허될 수 있다.
도 5는 블록 디코더(134)에 관한 도이다. 디코더(134)는 제 1 (부분 B) 디코더(162)와 제 2 (부분 A) 디코더(164)를 포함한다. 디코더(162)는 10 데이터 비트(Z0-Z9)를 수신하고 8개의 디코드된 데이터 비트(B0-B7)와 상태 수 출력(166)을 제공한다. 디코더(164)는 디코더(162)로부터 7 데이터 비트(Y0-Y6)와 상태 수를 수신하고 8 데이터 비트 출력(A0-A7)을 제공한다. 도시된 예에서는, 디코더(162)가 210×(8 + 2)의 테이블(8비트의 데이터와 2비트의 상태)이며, 디코더(164)는 3 ×27×8의 테이블이다.
바람직한 디코더 구현예에 있어서의 하나의 중요한 특징은 비트 Y0-Y6에서의 에러가 단지 디코드된 데이터의 한 바이트(디코드된 비트 A0-A7)에만 영향을 미친다는 것이다. 이는 디코더의 에러 전파를 최대 3 바이트로 제한하기 때문에 바람직한 것이다. 길이가 8 비트 이하인 에러의 경우에는 단지 3 바이트의 데이터에만 영향을 미친다는 것이 보장된다. 더 긴 에러의 경우, 예를 들어 한 코드워드의 부분 B에서 시작하여 다음 코드워드의 부분 B에서 끝나는 경우는 얼마간의 부분 A 패턴을 제거함에 의해 제한될 수 있다. EPR4를 이용한 실시예의 경우에는 어느 인터리브에서도 모두 0인 모든 부분 A 패턴들을 제거하면 충분하다.
상태 수 결정을 코드워드의 말단 근처에 위치한 어떤 비트와도 독립적으로 만듦에 의해 전파에러의 가능성을 2 바이트로 감소시키는 것도 바람직하다. 예를 들어, 상태 수가 비트 Z5-Z9에 의해 택일적으로 결정될 수 있다면, 비트 Z0-Z4 의 어떤 에러도 부분 A의 디코딩에는 영향을 미치지 않을 것이다. 이런 식으로, 6 비트 이하의 에러의 경우 단지 2 바이트의 데이터에만 영향을 미치며 13 비트 이하의 에러의 경우 단지 3바이트의 데이터에만 영향을 미친다는 것이 보장된다.
각 워드에 대해 최소의 코드 에너지를 보장하기 위해 인코더(152)의 인코딩 테이블에 포함된 코드워드 시퀀스를 이용할 수도 있다. 또한, 부분 B 코드워드의 그룹화에도 최소 코드 에너지 보장을 고려해야 한다. 테이블 2에 주어진 바와 같은 최소 코드 에너지 상태를 가질 수 있다.
[테이블 2]
테이블 3에 주어진 바와 같이, 결합된 코드 에너지(부분 A와 부분 B의 코드 에너지 합)가 또한 7 이상임을 보장하기 위해 부분 A 코드워드의 시퀀스와 부분 B 상태가 제한될 수 있다.
[테이블 3]
다른 예로서, 각 부분 B 코드워드의 최소 코드 에너지가 4이고 각 부분 A의 최소 코드 에너지가 3이면, 최소 코드 에너지(또는 해밍 웨이트(Hamming weight)) 7이 얻어질 수 있다.
바람직한 일 실시예에서는, 최소 해밍 웨이트 7을 가진 16/17 (0, 6/6) 코드가 구현된다. 테이블 4는 도 4의 인코더(152)로 사용되기 위한 것으로서 데이터 입력과 대응하는 코드워드 출력(CW) 및 상태 수 출력(Nx St)을 도시하고 있다.
[테이블 4]
유사하게, 테이블 5는 상태 수(156)가 0인 도 4의 인코더(154)에 대한 인코딩 테이블이다. 테이블 6은 상태 수(156)가 1인 경우의 인코딩 테이블이다. 테이블 7은 상태 수(156)가 2인 경우의 인코딩 테이블이다.
[테이블 5]
[테이블 6]
[테이블 7]
본 발명은 또한 룩업 테이블 대신에 조합 논리를 이용하여 구현될 수도 있다. 도 6은 최소 해밍 웨이트 7을 가지고 전체 인코드된 시퀀스에 대해서는 런 길이 제한 6을 가지고 시퀀스에서의 각 인터리브에 대해서는 6을 가지는 레이트 16/17 코드를 생성하는 인코더(200)의 블록도를 도시하고 있다. 인코더(200)는 두 부분, 부분 A와 부분 B로 분리된다. 부분 A는 코드 테스터(A)(202)와 인코더(A)(204)로 구성되고 부분 B는 코드 테스터(B)(206)와 인코더(B)(208)로 구성된다.
인코더(A)(204)는 입력 버스(220)를 따라서 16 비트 입력 데이터 워드(D15:0)의 최상위(most significant) 8 비트(D15-D8)를 수신한다. 이들 8 비트는 인코더(A)(204)에서 A7:0으로 표시되는데, 이는 8 비트 스트링 A7A6A5A4A3A2A1A0의 단축형이다. 인코더(A)(204)에 의해 수신된 8 비트 중에서 코드 테스터(A)(202)는 버스(222)를 따라 최하위 7 비트를 수신하며 이는 코드 테스터(A)(202)에 WA6:0으로 표시되어 있다.
코드 테스터(A)(202)는 출력 TA(203)를 생성하며 이는 인코더(A)(204)로 입력된다. TA(203)와 입력 A7:0에 근거하여, 인코더(A)(204)는 또한 3개의 상태 변수 S0, S1, S2와 두 개의 부분 B 비트 WB8, WB9를 생성한다.
부분 B 비트 WB8, WB9는 각기 라인(216)과 라인(218)을 따라 코드 테스터(B)(206)로 입력된다. 코드 테스터(B)(206)는 또한 입력 데이터 버스(224)를 따라 입력 데이터 워드의 최하위 8 비트(D7-D0)를 수신한다. 이들 비트는 코드 테스터(B)(206)에서 입력 비트 WB7:0으로 표시된다. 입력 WB7:0, WB8, WB9에 근거하여 코드 테스터(B)(206)는 출력 TB(214)을 생성하며 이는 인코더(B)(208)로 입력된다.
TB(214)를 수신하는 외에 인코더(B)(208)는 각기 라인(228, 230, 232)을 따라 상태 변수 S0, S1, S2를 수신하고 입력 버스(216)를 따라 입력 데이터 워드의 최하위 8 비트(D7-D0)를 수신한다. 인코더(B)(208) 내에서, 입력 데이터 워드의 최하위 8 비트는 B7:0으로 표시된다. 모든 입력 값들에 근거하여 인코더(B)(208)는 출력 버스(212)를 따라 10개의 출력 코드 비트 Z9:0을 생성한다.
코드 테스터(A)(202), 인코더(A)(204), 코드 테스터(B)(206), 인코더(B)(208)에 의해 이용되는 조합 논리가 아래 기호를 이용하여 상세히 설명된다.
" |"는 비트와이즈(bitwise) OR를 나타낸다.
" & "는 비트와이즈 AND를 나타낸다.
" + "는 산술 합을 나타낸다.
" ^"는 XOR를 나타낸다.
" X "는 X의 역을 나타낸다.
또한, 이들 식에서 아래첨자 번호 표시가 단순하게 표시되어있다. 따라서, 아래 식에서 S0은 S0으로 나타나며, B1은 B1과 같이 나타난다.
코드 테스터(A)(202)는 아래 식을 이용하여 출력 WA6:0에 근거하여 출력 TA(203)를 생성한다.
인코더(A)(204)는 식 27 내지 29에서 입력 비트 A7:0과 TA(203)를 이용하여 출력(210) Y6:0을 생성한다.
인코더(A)(204)는 아래 식을 이용하여 상태 변수 S0, S1, S2를 생성한다.
인코더(A)(204)는 아래 식을 이용하여 비트 WB8, WB9를 생성한다.
코드 테스터(B)(206)는 아래 식에서 입력 데이터 워드의 입력 비트 WB7:0과 인코더(A)(204)로부터의 비트 WB8, WB9을 이용하여 출력 TB(214)를 생성한다.
인코더(B)(208)는 아래 식에서 입력 데이터 워드의 최하위 8 비트(B7:0), 3개의 상태 변수 S0, S1, S2, 및 TB(214)를 이용하여 출력 비트(212)(Z9:0)를 생성한다.
7개의 출력 비트(210)(Y6:0)와 10개의 출력 비트(212)(Z9:0)가 서로 연결되어 17 비트 코드워드를 형성한다.
도 7은 인코더(200)에 의해 생성된 코드워드들을 디코딩하는 디코더(250)의 블록도이다. 디코더(250)는 부분 A와 부분 B를 포함하며, 부분 A는 코드 테스터(A)(252)와 디코더(A)(254)를 포함하고 부분 B는 코드 테스터(B)(256)와 디코더(B)(258)를 포함한다.
각 코드워드의 최하위 10 비트(Z9:0)가 입력 버스(260)를 따라 디코더(250)의 부분 B로 입력된다. 코드 테스터(B)(256)는 입력 버스(262)를 따라 동일한 10 코드 비트를 수신하지만, 이는 10 비트를 WB9:0으로 표시한다. 코드 테스터(B)(256)는 상기한 식 35 내지 42를 이용하여 출력TB(264)를 생성하기 위해 이들 입력 비트를 이용한다. 따라서, 코드 테스터(B)(256)는 도 6의 코드 테스터(B)(206)와 동일한 조합 논리를 포함한다. 코드 테스터 회로(206)는 인코더(도 6)와 디코더(도 7)에 의해 공유될 수 있다.
출력 TB(264)는 코드워드의 최하위 10 비트(Z9:0)와 함께 디코더(B)(258)로 입력된다. 디코더(B)(258)는 이들 입력을 이용하여 각기 라인(266, 268, 270)을 따라 상태 출력 S0, S1, S2를 생성하고 라인(272) 상에 무효 코드워드 표시(FB)를 생성하고, 출력 버스(274)를 따라 복구된 데이터 워드의 최하위 8 비트(B7:0)를 생성한다. 무효 코드워드 표시(FB)는 단지 TB(264)의 역이며, 변수 S0, S1, S2와 복구된 데이터 비트(B7:0)는 아래 식을 이용하여 생성된다.
코드 테스터(A)(252)는 입력 버스(276)를 따라 코드워드의 최상위 7 비트를 수신하며 이는 코드 테스터(A)(252)에 WA6:0으로 표시된다. 코드 테스터(A)(252)는 상기 식 1 내지 6과 입력 비트를 이용하여 출력 TA(278)를 생성하여 디코더(A)(254)로 제공한다. 따라서, 코드 테스터(A)(252)는 도 6의 코드 테스터(A)(202)와 동일한 조합 논리를 포함한다.
디코더(A)(254)는 또한 입력 버스(280)를 따라 코드워드의 최상위 7 비트(Y6:0)를 수신하고 디코더(B)(258)로부터 각기 라인(266, 268, 270)을 따라 상태 변수 S0, S1, S2를 수신한다. 디코더(A)(254)는 이들 입력 값을 이용하여 각기 버스(282)와 라인(284)을 따라 복구된 데이터 워드의 최상위 8 비트(A7:0)와 무효 코드워드 표시(FA)를 생성한다.
무효 코드워드 표시(FA)는 단지 코드 테스터(A)(252)로부터의 TA(278)의 역이다. 복구된 데이터 비트(A7:0)는 아래 식을 이용하여 결정된다.
대체로, 바람직한 실시예는 저장 매체(102), 기록 신호 입력에 응답하여 저장 매체(102)에 정보를 기록하기 위해 저장 매체(102) 근처에 위치한 기록 소자(108)를 가진 저장 장치(100)를 포함한다. 저장 장치(100)는 또한 다수의 데이터 입력 비트를 제 1 블록 인코더(152)로 제공하는 데이터 입력(112)을 포함한다. 제 2 블록 인코더(152)는 제 1 인코드된 데이터 출력을 데이터 입력(112)의 일부에 대한 함수로서 기록 소자(108)로 제공한다. 제 1 인코더는 또한 데이터 입력의 함수로서 상태 수 출력(156)을 제공한다. 제 2 인코더(154)는 또한 데이터 입력(112)과 결합되어 제 2 인코드된 출력을 데이터 입력(112)의 일부의 함수 및 상태 수 출력(156)의 함수로서 기록 소자(108)로 제공한다. 또한, 제 1 및 제 2 인코더 출력은 PRML 프리코더(126)로 제공될 수 있으며, 이는 이에 응답하여 기록 신호를 기록 소자로 제공한다. 본 발명의 다른 양상은 블록 디코더를 이용하는 것이다. 이 양상에서, 저장 장치(100)는 저장 매체(102)로부터 정보를 판독하고 이에 응답하여 판독 신호 출력을 제공하는 판독 소자(108)를 포함한다. 제 1 디코더(162)가 판독 소자와 결합되어 상태 수 출력(166)과 제 1 디코드된 데이터 출력을 판독 소자(108)로부터의 판독 신호 출력의 일부의 함수로서 제공한다. 제 1 디코드된 출력은 시스템 데이터 출력(114)으로 제공된다. 제 2 디코더는 판독 소자(108)에 연결되어 제 2 디코드된 데이터 출력(114)을 판독 신호 출력의 함수 및 상태 수 출력(166)의 함수로서 제공한다. 제 2 디코드된 출력은 또한 데이터 출력(114)으로 제공된다. 또한, 판독 소자(108)와 디코더(162, 164) 사이에 PRML 검출기(132)가 제공될 수 있다.
따라서, 본 발명의 인코더/디코더는 인코딩과 디코딩에 이용되는 타입의 테이블에서 엔트리의 수를 크게 감소시킨다.
대체로, 인코더/디코더는 다수의 블록 인코딩/디코딩 테이블을 제공하며, 하나의 테이블로부터의 출력이 다른 테이블로의 입력으로 이용된다. 이는 코드에 부과된 제한을 희생시키지 않고도 전체 데이터 엔트리의 수를 감소시킬 수 있도록 해 준다. 인코더/디코더는 소프트웨어 또는 하드웨어와 같이 적절하게 구현될 수 있다. 더욱이, 임의의 개별 애플리케이션에 따라 개별 코드, 테이블의 수, 상태의 수 등이 변할 수 있다. 인코더/디코더는 원하는 바에 따라 알고리듬 방식 또는 적응성 데이터 변환 기술과 같은 다른 기술을 이용할 수도 있다. 본 발명의 양상은 코드워드를 두 개의 불균등 부분으로 분리하고 각 쌍에 대해 서로 다른 상태 수로 상태 의존적 인코딩/디코딩을 구현하는 것을 포함한다. 또한, 디코더 입력의 각 부분은 동일한 길이를 가진다. 입력 데이터 패턴이 코드 제한을 만족할 경우 코드워드로서 직접 사용될 수 있기 때문에 코드 테스터가 논리 카운트를 감소시키는데도 사용될 수 있다. 코드 테스터는 제한을 체크하고 입력 워드가 제한들을 직접 만족시키면 신호를 인코더로 보낸다.
본 발명의 여러 실시예들의 여러 특징과 장점들이 구조와 기능에 대한 상세한 설명과 함께 이상에서 개시되었지만, 이런 내용은 단지 예시적일 뿐이며 특허청구범위에 의해 표현된 용어의 광범한 일반적 의미에 의해 정해지는 최대의 의미에 따른 본 발명의 원리 내에서 특히 구조와 구성요소의 배치에 대해서는 세부적 변경이 이루어질 수 있다. 예를 들어, 개별 구성요소들은 본 발명의 내용과 범위를 벗어나지 않는 실질적으로 동일한 기능을 유지하면서도 블록 인코더와 디코더에 대한 개별 애플리케이션에 따라 변할 수 있다. 또한, 개시된 바람직한 실시예들이 저장 장치에 관한 것이지만, 당업자라면 본 발명의 내용과 범위를 벗어나지 않고도 본 발명이 일반적 데이터 통신 시스템과 같은 다른 시스템에도 적용될 수 있음은 자명할 것이다. 여러 가지 다른 코드들이 사용될 수도 있으며, 하나 이상의 인코딩 또는 디코딩 테이블이 서로 링크되고 부가적인 또는 다른 상태 수들이 사용되고 인코더 또는 디코더로 제공되는 데이터가 분할되거나 원하는 바에 따라 중첩될 수도 있는 등의 변형이 존재할 수 있다.

Claims (10)

  1. 매체;
    수신된 데이터 인코드된 비트들에 응답하여 정보를 매체로 출력하는 출력 소자;
    다수의 데이터 입력 비트들을 가지는 데이터 입력;
    상태 수 출력과 제 1 인코드된 데이터 출력을 포함하며 입력 데이터 스트림의 다수의 데이터 비트들로부터의 제 1 비트 부분의 함수로서 인코드된 비트들을 출력하여 출력 소자로 연결하는 제 1 인코더; 그리고
    제 2 인코드된 데이터 출력을 포함하며 입력 데이터 스트림의 다수의 데이터 비트들로부터의 제 2 데이터 비트 부분의 함수 및 상태 수 출력의 함수로서 인코드된 데이터 비트들을 출력하여 출력 소자로 연결하는 제 2 인코더를 포함하는 것을 특징으로 하는 통신 채널.
  2. 제 1 항에 있어서,
    제 1 또는 제 2 인코더는 인코더의 입력들과 출력들 사이에 데이터를 맵(map)하도록 구성된 룩업 테이블을 포함하는 것을 특징으로 하는 통신 채널.
  3. 제 1 항에 있어서,
    제 1 및 제 2 인코더는 인코더의 입력들과 출력들 사이에서 데이터를 반응하여 변환시키는 알고리듬을 포함하는 것을 특징으로 하는 통신 채널.
  4. 제 1 항에 있어서,
    제 1 및 제 2 인코더는 제 1 및 제 2 인코드된 데이터 출력에 대한 코드워드들의 테이블들을 포함하며, 코드워드들은 원하는 최소 코드워드 에너지를 제공하도록 선택되는 것을 특징으로 하는 통신 채널.
  5. 제 1 항에 있어서,
    상태 수 출력은 제 1 인코드된 데이터 출력과 제 2 인코드된 데이터 출력 사이에서 링크되어 출력 소자로부터의 출력을 선택적으로 제한하는 것을 특징으로 하는 통신 채널.
  6. 매체;
    매체로부터 정보를 수신하고 이에 반응하여 다수의 데이터 비트들을 가진 수신 신호를 제공하는 입력 소자;
    데이터 출력;
    응답하여 다수의 데이터 비트들의 제 1 부분의 함수로서 제 1 디코드된 데이터 출력과 상태 수 출력을 데이터 출력으로 출력하는 제 1 디코더; 그리고
    응답하여 다수의 데이터 비트들의 제 2 부분의 함수 및 상태 수 출력의 함수로서 제 2 디코드된 데이터 출력과 상태 수 출력을 데이터 출력으로 출력하는 제 2 디코더를 포함하는 것을 특징으로 하는 통신 채널.
  7. 제 6 항에 있어서,
    제 1 또는 제 2 디코더는 디코더의 입력들과 출력들 사이에 데이터를 맵(map)하도록 구성된 룩업 테이블을 포함하는 것을 특징으로 하는 통신 채널.
  8. 제 6 항에 있어서,
    제 1 및 제 2 디코더는 제 1 및 제 2 디코드된 데이터 출력에 대한 코드워드들의 테이블들을 포함하며, 코드워드들은 원하는 최소 코드워드 에너지를 제공하도록 선택되는 것을 특징으로 하는 통신 채널.
  9. 제 6 항에 있어서,
    제 1 및 제 2 디코더는 디코더의 입력들과 출력들 사이에서 데이터를 반응하여 변환시키는 알고리듬을 포함하는 것을 특징으로 하는 통신 채널.
  10. 제 1 항 또는 제 6 항에 있어서,
    매체는 저장 매체를 포함하는 것을 특징으로 하는 통신 채널.
KR1020007001416A 1997-08-11 1998-05-14 통신 채널 KR100571743B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US5473997P 1997-08-11 1997-08-11
US60/054,739 1997-08-11
US09/020,874 1998-02-09
US09/020,874 US6111834A (en) 1997-08-11 1998-02-09 Data storage system having efficient block code implementation
PCT/US1998/009814 WO1999008264A1 (en) 1997-08-11 1998-05-14 Data storage system having efficient block code implementation

Publications (2)

Publication Number Publication Date
KR20010022814A true KR20010022814A (ko) 2001-03-26
KR100571743B1 KR100571743B1 (ko) 2006-04-18

Family

ID=26693994

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007001416A KR100571743B1 (ko) 1997-08-11 1998-05-14 통신 채널

Country Status (7)

Country Link
US (1) US6111834A (ko)
JP (1) JP2001512880A (ko)
KR (1) KR100571743B1 (ko)
CN (1) CN1157713C (ko)
DE (1) DE19882603T1 (ko)
GB (1) GB2343056B (ko)
WO (1) WO1999008264A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6501802B1 (en) * 1998-01-30 2002-12-31 3Com Corporation Digital silence for a PCM data communication system
US6185640B1 (en) * 1998-06-19 2001-02-06 Philips Electronics North America Corporation Minimal frame buffer manager allowing simultaneous read/write access by alternately filling and emptying a first and second buffer one packet at a time
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
CN1305220C (zh) * 2001-07-09 2007-03-14 希捷科技有限公司 用于抑制数字数据内低频含量的方法和装置
CN1320794C (zh) * 2002-11-13 2007-06-06 上海芯华微电子有限公司 收缩卷积编码的单步方法和装置
WO2005020440A1 (en) * 2003-08-13 2005-03-03 Seagate Technology Llc Dc-free code design with increased distance between code words
US7002492B2 (en) * 2004-07-07 2006-02-21 Seagate Technology Llc High rate running digital sum-restricted code
US8014612B2 (en) * 2007-10-12 2011-09-06 Himax Technologies Limited Image processing device and method for compressing and decompressing images

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL8402445A (nl) * 1984-01-20 1985-08-16 Philips Nv Werkwijze voor het coderen van n-bits informatiewoorden naar m-bits codewoorden, inrichting voor het uitvoeren van die werkwijze, werkwijze voor het decoderen van m-bits codewoorden naar n-bits informatiewoorden en inrichting voor het uitvoeren van die werkwijze.
NL192151C (nl) * 1986-02-24 1997-02-04 Philips Electronics Nv Werkwijze en inrichting voor het opslaan en uitlezen van digitaal gekodeerde informatie naar keuze al dan niet beschermd door een foutenkorrigerende kode.
US5237574A (en) * 1988-04-08 1993-08-17 Digital Equipment Corporation Error-resilient information encoding
US5172380A (en) * 1988-06-30 1992-12-15 Sony Corporation Digital signal transmission apparatus
EP0543070A1 (en) * 1991-11-21 1993-05-26 International Business Machines Corporation Coding system and method using quaternary codes
US5341249A (en) * 1992-08-27 1994-08-23 Quantum Corporation Disk drive using PRML class IV sampling data detection with digital adaptive equalization
US5381424A (en) * 1993-03-25 1995-01-10 Seagate Technology, Inc. Method and apparatus for fault-tolerant identification of the header field of a recording device
US5535187A (en) * 1993-12-15 1996-07-09 Intenational Business Machines Corporation High capacity run-length-limited coding system employing asymmetric and even-spaced codes
EP0739570A1 (en) * 1994-01-14 1996-10-30 Houston Advanced Research Center Boundary-spline-wavelet compression for video images
EP0688113A2 (en) * 1994-06-13 1995-12-20 Sony Corporation Method and apparatus for encoding and decoding digital audio signals and apparatus for recording digital audio
US5627843A (en) * 1995-02-23 1997-05-06 Seagate Technology, Inc. Correcting up to two disc drive read errors and detecting the occurrence of more than two read errors
US5640286A (en) * 1995-05-08 1997-06-17 Western Digital Corporation Disk drive with error code embedded sector identification

Also Published As

Publication number Publication date
US6111834A (en) 2000-08-29
DE19882603T1 (de) 2000-10-26
GB2343056B (en) 2001-09-12
JP2001512880A (ja) 2001-08-28
GB0001559D0 (en) 2000-03-15
WO1999008264A1 (en) 1999-02-18
CN1157713C (zh) 2004-07-14
KR100571743B1 (ko) 2006-04-18
GB2343056A (en) 2000-04-26
CN1306659A (zh) 2001-08-01

Similar Documents

Publication Publication Date Title
US5757294A (en) Rate 24/25 modulation code for PRML recording channels
US5196849A (en) Method and apparatus for implementing PRML codes with maximum ones
US6505320B1 (en) Multiple-rate channel ENDEC in a commuted read/write channel for disk storage systems
US6643814B1 (en) Maximum transition run encoding and decoding systems
KR20020025239A (ko) 연결된 에러 정정 코드를 구비하는 자기 기록 채널에서비동일 보호를 가지는 인코딩 방법 및 장치
JP3477106B2 (ja) 部分応答磁気記録チャネルのためのレート16/17(0,5)変調コードの装置および方法
KR19990044116A (ko) 3웨이 바이트 인터리빙된 ecc를 갖는 비트 인터리빙된 16/17 비율 변조 코드
EP1231715B1 (en) Reproducing method, reproducing apparatus, and receiving apparatus
US7623048B1 (en) DC-free codes
KR100506070B1 (ko) 고밀도데이터의기록/재생을위한부호화/복호화방법
EP0577402A2 (en) Synchronization signal detector, synchronization signal detecting method and demodulator
US6417788B1 (en) High rate runlength limited codes for 10-bit ECC symbols
US5949357A (en) Time-varying maximum-transition-run codes for data channels
JP4159169B2 (ja) 符号化方法、コード発生方法および変調エンコーダ
KR100406806B1 (ko) 짧게 인터리브된 제한 조건을 갖는 효과적인 런 길이 제한코드
US5784010A (en) Method and apparatus for implementing a set rate code for data channels with alternate 9-bit code words and 8-bit code words
KR100571743B1 (ko) 통신 채널
JPH10173536A (ja) 符号化方法および符号化装置、復号化方法および復号化装置、並びに記録媒体
US6201485B1 (en) High rate runlength limited codes for 8-bit ECC symbols
US6188335B1 (en) Method and apparatus having cascaded decoding for multiple runlength-limited channel codes
JP2000332619A (ja) 符号化方法およびこれを用いた記録再生装置
JP2000040968A (ja) 符号化方法および符号化装置、復号化方法および復号化装置、並びに提供媒体
KR19980031982A (ko) 데이타 저장기기의 prml 코드 생성방법
US6985320B2 (en) Method and apparatus for encoding data to guarantee isolated transitions in a magnetic recording system
US6384747B1 (en) Data encoding to provide run-length control in a data storage system

Legal Events

Date Code Title Description
N231 Notification of change of applicant
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: 20130325

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140325

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee