KR101507674B1 - 잘못된 vfo 검출을 최소화하는 트랙-의존형 데이터 랜덤화 - Google Patents

잘못된 vfo 검출을 최소화하는 트랙-의존형 데이터 랜덤화 Download PDF

Info

Publication number
KR101507674B1
KR101507674B1 KR1020137028053A KR20137028053A KR101507674B1 KR 101507674 B1 KR101507674 B1 KR 101507674B1 KR 1020137028053 A KR1020137028053 A KR 1020137028053A KR 20137028053 A KR20137028053 A KR 20137028053A KR 101507674 B1 KR101507674 B1 KR 101507674B1
Authority
KR
South Korea
Prior art keywords
data
linear feedback
feedback shift
data streams
randomizers
Prior art date
Application number
KR1020137028053A
Other languages
English (en)
Other versions
KR20130143121A (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 KR20130143121A publication Critical patent/KR20130143121A/ko
Application granted granted Critical
Publication of KR101507674B1 publication Critical patent/KR101507674B1/ko

Links

Images

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/008Recording on, or reproducing or erasing from, magnetic tapes, sheets, e.g. cards, or wires
    • G11B5/00813Recording on, or reproducing or erasing from, magnetic tapes, sheets, e.g. cards, or wires magnetic tapes
    • G11B5/00817Recording on, or reproducing or erasing from, magnetic tapes, sheets, e.g. cards, or wires magnetic tapes on longitudinal tracks only, e.g. for serpentine format recording
    • G11B5/00821Recording on, or reproducing or erasing from, magnetic tapes, sheets, e.g. cards, or wires magnetic tapes on longitudinal tracks only, e.g. for serpentine format recording using stationary heads
    • G11B5/00826Recording on, or reproducing or erasing from, magnetic tapes, sheets, e.g. cards, or wires magnetic tapes on longitudinal tracks only, e.g. for serpentine format recording using stationary heads comprising a plurality of single poles or gaps or groups thereof operative at the same time
    • G11B5/0083Recording on, or reproducing or erasing from, magnetic tapes, sheets, e.g. cards, or wires magnetic tapes on longitudinal tracks only, e.g. for serpentine format recording using stationary heads comprising a plurality of single poles or gaps or groups thereof operative at the same time for parallel information processing, e.g. PCM recording
    • 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/008Recording on, or reproducing or erasing from, magnetic tapes, sheets, e.g. cards, or wires
    • 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/10009Improvement or modification of read or write signals
    • 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/10009Improvement or modification of read or write signals
    • G11B20/10222Improvement or modification of read or write signals clock-related aspects, e.g. phase or frequency adjustment or bit synchronisation
    • 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/10009Improvement or modification of read or write signals
    • G11B20/10222Improvement or modification of read or write signals clock-related aspects, e.g. phase or frequency adjustment or bit synchronisation
    • G11B20/10259Improvement or modification of read or write signals clock-related aspects, e.g. phase or frequency adjustment or bit synchronisation simultaneous timing recovery for multiple parallel tracks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2909Product codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2945Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using at least three error correction codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • H04L1/0042Encoding specially adapted to other signal generation operation, e.g. in order to reduce transmit distortions, jitter, or to improve signal shape

Abstract

잘못된 VFO 검출을 최소화하기 위하여 데이터를 랜덤화하기 위한 방법이 설명된다. 한 실시예에서, 상기 방법은 다수의 입력 데이터 스트림들을 동시에 수신하는 단계를 포함한다. 각각의 입력 데이터 스트림들은 자기 테이프 매체상의 다른 트랙과 관련되어 있다. 상기 입력 데이터 스트림들은 동시에 스크램블되어 다수의 랜덤화된 데이터 스트림들을 생성한다. 상기 입력 데이터 스트림들은 스크램블되어 다른 비트 패턴들이 상기 랜텀화된 데이터 스트림들에서 생성되게 하되, 상기 입력 데이터 스트림들에서 대응 비트 패턴들은 동일하게 한다. 상기 랜덤화된 데이터 스트림들은 자기 테이프 매체상의 그들의 관련된 데이터 트랙들에 동시에 기록된다. 대응 장치가 또한 설명된다.

Description

잘못된 VFO 검출을 최소화하는 트랙-의존형 데이터 랜덤화{TRACK-DEPENDENT DATA RANDOMIZATION MITIGATING FALSE VFO DETECTION}
본 발명은 자기 테이프 기록, 특히, 잘못된 VFO 패턴 검출을 제거 또는 최소화하는 장치 및 방법에 관련된 것이다.
현재의 개방 선형 테이프 (linear tape open (LTO)) 및 기업용 테이프 드라이브들 (enterprise-level tape drives)에서, 가변-주파수 발진기 (variable-frequency oscillator (VFO)) 패턴들은 데이터 기록 (recording) 및 동기화 (synchronization)의 기본 컴포넌트이다. 전술한 VFO 패턴들은 클록 주파수들 (clock frequencies) 및 비트 위치들 (bit locations)을 정렬하기 위하여 사용될 수 있다. 그것들은 또한 마스터 리셋들 (master resets)을 수행하기 위하여 사용될 수 있으며, 마스터 리셋들을 수행함에 의해서 (thereby) 회로들 및/또는 타이밍이 초기 조건들 (initial conditions)로 리셋되도록 한다. 만일 테이프상에 존재하는 VFO 패턴이 검출되지 않거나, VFO 패턴이 아닌 데이터가 실수로 VFO 패턴으로 결정된다면, 테이프로부터 데이터를 판독하려고 시도할 때 심각한 시스템 문제들이 발생될 수 있다. 일부 예들에서, 자기 테이프상의 데이터는 회복 불가능할 수도 있다.
비록 VFO 패턴들은 보통 데이터내의 패턴들과는 구별되도록 (unique) 설계되지만, 패턴들이 일치하는 것 (matching) (이하, “잘못된 VFO 패턴들”이라 칭함)은 여전히 보통의 기록 데이터에서 발생할 수 있다. 이 문제를 회피하는 한 방법은 다수 트랙들이 동시에 VFO 패턴들을 포함하는 것을 요구한다. 이 방법은 각 트랙상의 데이터가 독립적인 경우들에서는 잘 동작하는데, 그 이유는 각 트랙상의 데이터가 동일한 잘못된 VFO 패턴들을 동시에 포함할 가능성이 없기 때문이다. 하지만, 다수 트랙들이 동일 또는 매우 유사한 데이터를 갖는 경우들에서, 예를 들어 특정 시험 데이터 패턴들 (certain test data patterns)이 테이프에 기록되어 있는 경우들에서는, 이 방법은 실패할 수 있다.
잘못된 VFO 검출을 회피하는 다른 방법은 좀 더 길어진 (longer) VFO 패턴을 사용하고 모든 비트들이 VFO 패턴을 매치하도록 요구한다. 이 방법의 한 단점은 실제 VFO 패턴들을 놓칠 (missing) 확률을 증가시킬 수 있다는 것이고, 그 이유는 어떤 에러 (any error) 또는 매체 결함이 길어진 VFO 패턴들이 검출되지 않게 할 수 있기 때문이다. 이 방법의 다른 단점은 길어진 VFO 패턴들이 저장 포맷 효율 (storage format efficiency)을 감소시키는 것이며, 그 이유는 길어진 VFO 패턴들은 더 많은 저장 공간을 소비하기 때문이다.
잘못된 VFO 검출을 회피하는 또 다른 방법은 VFO-검출창 (VFO-detection window)의 크기를 조정하는 것이다. 하지만, VFO-검출창의 크기를 조정하는 것도 트레이드오프 (tradeoff)를 제공한다. 만약 VFO-검출창이 크다면, 실제 VFO 패턴 (an actual VFO pattern)을 검출할 확률은 감소하는데 그 이유는 어떤 에러 또는 매체 결함이 길어진 VFO 패턴들을 검출되지 않게 할 수 있기 때문이다. 만약 상기 VFO-검출창이 작다면, 잘못된 VFO 패턴을 검출할 확률은 증가한다.
전술한 내용을 고려해 볼 때, 잘못된 VFO 검출을 회피 또는 최소화하는 개량된 장치 및 방법들이 필요함을 알 수 있다. 이상적으로, 전술한 장치 및 방법들은 시험 데이터 또는 기타 반복하는 데이터 패턴들과 같은 특정 형태의 데이터가 VFO를 잘못 검출되도록 하는 것을 최소화할 것이다. 저장 포맷 효율의 감소없이 위에서 진술한 혜택들을 제공하는 장치 및 방법들이 또한 필요하다.
본 발명은 현재 이용가능한 장치 및 방법에 의하여 아직 완전히 해결되지 못한 종래 기술의 현재 상태, 특히 그것의 문제점 및 필요 사항들에 부응하여 (in response to) 개발되었다. 따라서, 본 발명은 테이프 드라이브에서 잘못된 VFO 검출을 최소화하기 위한 장치 및 방법을 제공하기 위하여 개발되었다. 본 발명의 특징 및 장점이 다음의 상세한 설명 및 부속 청구범위로부터 더욱 명백해질 것이고, 또는 이하 설명된 발명의 실시에 의하여 알 수 있다.
전술한 내용에 따라 (Consistent with), 잘못된 VFO 검출을 최소화하기 위하여 데이터를 랜덤화하기 위한 방법이 여기 설명된다. 한 실시예에서, 전술한 방법은 다수 입력 데이터 스트림들 (data streams)을 동시에 수신하는 것을 포함한다. 각각의 입력 데이터 스트림은 자기 테이프 매체상의 다른 트랙과 관련되어 있다. 상기 입력 데이터 스트림들은 동시에 스크램블되어 (scrambled) 다수 랜덤화된 데이터 스트림들 (multiple randomized data streams)을 생성한다. 상기 입력 데이터 스트림들은 상기 랜덤화된 데이터 스트림들내에는 다른 비트 패턴들이 생성되고 상기 입력 데이터 스트림들내의 대응하는 비트 패턴들은 동일하게 되도록 스크램블된다. 상기 랜덤화된 데이터 스트림들은 자기 테이프 매체상에서 그들의 관련된 데이터 트랙들에 동시에 기록된다.
본 발명의 다른 실시예에서, 잘못된 VFO 검출을 최소화하기 위하여 데이터를 랜덤화하기 위한 장치는 다수 입력 데이터 스트림들을 병렬로 (in parallel) 수신하는 다수 데이터 랜덤화기들 (randomizers)을 포함한다. 각각의 입력 데이터 스트림 및 각각의 데이터 랜덤화기는 자기 테이프 매체상의 특정 트랙과 관련되어 있다. 상기 다수 데이터 랜덤화기들은 입력 데이터 스트림들을 스크램블하도록 구성되어 다수 랜덤화된 데이터 스트림들을 생성한다. 상기 데이터 랜덤화기들은 상기 랜덤화된 데이터 스트림들내에는 다른 비트 패턴들을 생성하고 상기 입력 데이터 스트림들내의 대응 비트 패턴들은 동일하게 되도록 구성된다.
본 발명의 장점이 쉽게 (readily) 이해되도록 하기 위하여, 위에서 간단히 설명된 본 발명의 좀 더 특별한 설명이 부속된 도면들에서 도시된 구체적인 실시예들을 참조하여 제공된다. 본 도면들은 오직 본 발명의 전형적인 실시예들만을 설명하고 그러므로 그의 범위를 제한하는 것으로 간주되는 것이 아님을 이해하면서, 본 발명은 여기 첨부된 도면들을 사용하여 추가적인 구체성 및 상세함을 가지고서 설명될 것이다:
도 1은 테이프 드라이브를 위한 데이터 흐름의 한 예를 보여주는 고-수준의 블록 다이어그램이다;
도 2는 실제 VFO 패턴들 및 테이프상에서 발생하는 비-정렬된 (non-aligned) 잘못된 VFO 패턴들의 한 예를 보여주는 고-수준의 블록 다이어그램이다;
도 3은 도 2에서 도시된 비-정렬된 잘못된 VFO 패턴들에 대한 잘못된 VFO 검출을 회피하기 위하여 선택 논리 (voting logic)가 어떻게 사용되는지 보여준다;
도 4는 실제 VFO 패턴들 및 테이프상에서 발생하는 정렬된 잘못된 VFO 패턴들의 한 예를 보여주는 고-수준의 블록 다이어그램이다;
도 5는 도 4에서 도시된 정렬된 잘못된 VFO 패턴들에 대한 잘못된 VFO 검출을 회피하기 위하여 선택 논리가 어떻게 사용되는지 보여준다;
도 6은 각각의 트랙에 대해서 다른 프리셋값들 (preset values)로 초기화하는 (initialized) 데이터 랜덤화기들을 보여주는데, 그렇게 하여서 각각의 트랙에 대해서 다른 랜덤화된 데이터 스트림들을 생성하고 각각의 트랙에 대한 입력 데이터 스트림들은 동일하게된다.
도 7은 선형 피드백 시프트 레지스터 (linear feedback shift register)의 한 예이고, 이 예에서는 선형 피드백 시프트 레지스터의 피보나치 (Fibonacci) 구현을 보여주는 고-수준의 블록 다이어그램이다;
도 8은 프리셋값으로 초기화된 선형 피드백 시프트 레지스터를 포함하는 데이터 랜덤화기의 한 예를 보여준다.
도 9는 K = 32 트랙들을 위한 데이터 랜덤화기들을 초기화하는데 사용될 수 있는 프리셋값들의 첫번째 예를 보여주는 표이다; 그리고
도 10은 K = 32 트랙들을 위한 데이터 랜덤화기들을 초기화하는데 사용될 수 있는 프리셋값들의 두번째 예를 보여주는 표이다.
이하 도면들에서 전반적으로 설명되고 도시된 바와 같이, 본 발명의 컴포넌트들은 광범위하게 다양한 다른 구성들에서 어레인지되고 설계될 수 있다는 것이 곧 이해가 될 것이다. 그러므로, 도면들에서 도시한 바와 같이, 다음 본 발명 실시예들의 좀 더 상세한 설명은 청구된 것과 같이, 본 발명의 범위를 제한하도록 의도되지는 않지만, 본 발명에 따라 단지 현재 고려되는 실시예들의 어떤 예들을 나타낼 뿐이다. 현재 설명되는 실시예들은 상기 도면들을 참조하여 가장 잘 이해될 것이고, 도면들에서 동일 (like) 부분들은 전체적으로 동일 번호들에 의해서 지정된다.
당업자에 의하여 이해되듯이, 본 발명은 장치, 시스템, 방법, 또는 컴퓨터 프로그램 제품으로 구현될 수 있다. 또한, 본 발명은 하드웨어 실시예, 하드웨어를 동작하기 위하여 구성된 소프트웨어 (펌웨어, 상주 (resident) 소프트웨어, 마이크로코드 등을 포함) 및 하드웨어 구성 요소들의 형태를 취할 수 있다. 각각의 실시예들은 하나 또는 그 이상의 모듈들 또는 블록들에 의하여 나타내어질 수 있다. 또한, 본 발명은 거기에 저장된 컴퓨터-사용가능 프로그램 코드를 가진 어떠한 유형의 (tangible) 표현 매체에서 구현되는 컴퓨터-사용가능 저장 매체의 형태를 취할 수 있다.
하나 또는 그 이상의 컴퓨터-사용가능 또는 컴퓨터-판독가능 저장 매체(들)의 모든 조합이 상기 컴퓨터 프로그램 제품을 저장하기 위하여 활용될 수 있다. 상기 컴퓨터-사용가능 또는 컴퓨터-판독가능 저장 매체는 예를 들면, 전자 (electronic), 자기 (magnetic). 광학 (optical), 전자기 (electromagnetic), 적외선 (infrared) 또는 반도체 (semiconductor) 시스템, 장치, 또는 디바이스일 수 있고 이에 국한되지는 않는다 (but not limited to). 컴퓨터-판독가능 저장 매체의 좀 더 구체적인 예 (비완전 목록 (non-exhaustive list))들은 다음을 포함한다: 하나 또는 그 이상의 전선들을 가진 배선 (electrical connection), 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리 (RAM), 판독-전용 메모리 (ROM), 소거 및 프로그램가능 ROM (EPROM, 또는 플래시 메모리), 광섬유 (optical fiber), 휴대용 컴팩트 디스크 판독-전용 메모리 (CDROM), 광학 저장 디바이스, 또는 자기 저장 디바이스. 본 명세서의 맥락 (context)에서, 컴퓨터-사용가능 또는 컴퓨터-판독가능 저장 매체는 명령 실행 시스템, 장치, 또는 디바이스와 관련하여, 또는 이들에 의한 사용을 위해 그것들과 연관된 프로그램을 보유, 저장 또는 운반할 수 있는 어떠한 형태의 매체일 수 있다.
본 발명의 동작을 수행하기 위한 컴퓨터 프로그램 코드는 하나 또는 그 이상 프로그래밍 언어의 어떤 조합으로 기록될 수 있으며, 이 언어에는 자바 (Java), 스몰토크 (Smalltalk), C++등과 같은 객체 지향형 프로그래밍 언어 (object-oriented programming language) 및 “C” 프로그래밍 언어 또는 이와 유사한 프로그래밍 언어들과 같은 종래의 순차 프로그래밍 언어 (conventional procedural programming languages)를 포함한다. 본 발명을 실행하기 위한 컴퓨터 프로그램 코드는 또한 어셈블리어 (assembly language)와 같은 저-수준의 프로그래밍 언어로 기록될 수 있다.
본 발명은 본 발명의 실시예들에 따라 방법의 흐름도 도시 (flowchart illustrations) 및/또는 블록 다이어그램들 (block diagrams), 장치, 시스템들 그리고 컴퓨터 프로그램 제품들을 참조하여 설명된다. 흐름도 도시 및/또는 블록 다이어그램들의 각각의 블록 그리고 흐름도 도시 및/또는 블록 다이어그램들의 조합은 컴퓨터 프로그램 명령들 또는 코드에 의하여 실행될 수 있음을 이해할 수 있을 것이다. 이 컴퓨터 프로그램 명령들은 범용 컴퓨터의 프로세서, 특수 목적 컴퓨터, 또는 기계를 생성하는 기타 프로그램가능 데이터 처리 장치에 제공되어, 컴퓨터의 프로세서나 기타 프로그램가능 데이터 처리 장치를 통하여 실행될 때, 그러한 명령들이 흐름도 및/또는 블록 다이어그램이나 블록이나 블록들에 규정된 기능/작용 (acts)을 구현하는 수단을 생성하도록 한다.
컴퓨터 또는 기타 프로그램가능 데이터 처리 장치를 특정한 방식으로 기능하도록 지시하는 이 컴퓨터 프로그램 명령들은 또한 컴퓨터-판독가능 저장 매체에 저장되어, 이 컴퓨터-판독가능 저장 매체에 저장된 상기 명령들이 흐름도 및/또는 블록 다이어그램 블록이나 블록들에 규정된 기능/작용을 구현하는 명령 수단들을 포함하는 제품 (article of manufacture)을 생성하도록 한다. 상기 컴퓨터 프로그램 명령들은 컴퓨터 또는 기타 프로그램 가능한 데이터 처리 장치에 로드되어 (loaded) 일련의 동작 단계들이 컴퓨터 실행 프로세스를 생성하기 위하여 컴퓨터 또는 기타 프로그램가능 장치상에서 수행되도록 하고, 그렇게 하여 컴퓨터 또는 기타 프로그램가능 장치상에서 실행되는 상기 명령들이 흐름도 및/또는 블록 다이어그램 블록이나 블록들에 규정된 기능/작용을 구현하는 프로세스를 제공하도록 한다.
도 1을 참조하면, LTO 또는 기업용 테이프 드라이브들과 같은, 테이프 드라이브를 위한 데이터 흐름 (100)을 보여주는 고-수준의 블록 다이어그램이 도시된다. 도시한 바와 같이, 순환 중복 검사 (cyclic redundancy check (CRC)) 모듈 (102)는 호스트 디바이스로부터 가변 길이 (variable-length) 데이터 블록들을 수신한다. 상기 CRC 모듈 (102)는 CRC 정보를 이 블록들에 추가할 수 있다. 그 다음 압축 모듈 (104)는 상기 블록들을 압축하고 암호화 모듈 (106)은 상기 블록들을 선택적으로 암호화할 수 있다. 그 다음 상기 데이터 블록들은 고정된 크기의 데이터 세트들로 나누어지고 (broken), 이것들은 차례로 (in turn) 고정된 크기의 서브 데이터 세트들 (sub data sets (SDS))로 나누어질 수 있다. 각각의 SDS는 2차원 데이터의 어레이 (array)로 조직될 수 있다. 그 다음 각각의 SDS데이터 어레이는 ECC 인코더 (108)로 보내질 수 있다. ECC 인코더 (108)은 데이터 어레이내의 각각의 행 및 열에 대하여 ECC 패리티 (parity)를 생성할 수 있다. 이 행 ECC 패리티 및 열 ECC 패리티는 상기 어레이에 첨부될 수 있다.
일단 상기 ECC 패리티가 어레이에 첨부되면, 멀티플렉서 (110)은 헤더들 (headers)을 (열 ECC 패리티 및 행 ECC 패리티를 포함하는) 상기 데이터 어레이의 행들에 추가할 수 있다. 특정 실시예들에서, 상기 헤더들은 CRC들과 같은 에러 검출 코드들을 포함한다. 도시된 실시예에서, 헤더들은 전술한 행 및 열 ECC 패리티에 의하여 보호되지 않는다. 다른 실시예들에서, 헤더들은 행 ECC 패리티를 계산하기 전에 데이터 어레이에 추가될 수 있다. 그 다음 행 ECC 패리티는 상기 헤더들을 포함하기 위하여 계산된다 (computed). 이것은 헤더들이 적어도 일차원 ECC 패리티에 의하여 보호될 수 있도록 해준다. 다른 실시예들에서, 헤더들은 행 ECC 패리티가 계산된 후 데이터 어레이에 추가될 수 있다. 그 다음 행 ECC 패리티는 헤더들을 포함하기 위하여 재계산될 수 있다.
테이프 레이아웃 모듈 (tape layout module) (112)는 ECC 패리티 및 헤더들을 포함하는, 상기 확장된 데이터 어레이 (the extended data array)를 분산할 수 있는데 (distribute), K개의 다른 트랙들에 걸쳐서 (across) 그리고 자기 테이프상에서 다른 순서로, 분산할 수 있다. 테이프 레이아웃 모듈 (112)에 의하여 생성된 데이터 시퀀스들 (sequences)은 또한 상기 데이터에 관하여 추가의 신호 처리 (signal processing)를 수행하기 위해 랜덤화기들 (114)에서 더 처리될 수 있다. 좀 더 구체적으로 설명하면, 랜덤화기들 (114)는 유입되는 데이터를 변환하여 "1"들 및 "0"들의 슈도랜덤 시퀀스 (pseudorandom sequence)로 된 출력을 생성하기 위해 사용될 수 있다. 이것은 유입되는 데이터로부터의 주기성 (periodicity)을 가능한 많이 제거한다. 런 길이 제한 (Run length limited (RLL)) 인코더들 (116)은 랜덤화된 데이터 스트림들을 처리하여 데이터내 원치 않는 패턴들 (예를 들어, 1"들 또는 "0"들이라는 긴 런들(long runs) 또는 기타 바람직하지 않은 패턴들)의 발생을 방지한다. 멀티플렉서들 (118)은 VFO 패턴들, 동기 부호들 (sync characters), 또는 그와 유사한 동기화 정보를 판독될 때 그것이 동기화될 수 있게 해 주는 정보로 멀티플렉스할 수 있다 (multiplex).
그 다음 결과 데이터 (resulting data)는 기록 드라이버들 (도시하지 않음)로 전송되고, 기록 드라이버들은 기록 헤드 구성 요소들 (recording head elements)을 통하여 전류를 흐르도록 하여 자장 (magnetic flux)을 일으키고 그리함으로써 데이터를 자기 기록 매체의 트랙들에 기록할 수 있다. 일반적으로, 멀티플렉서 (110) 우측에 있는 블록 또는 모듈들의 각각은 상기 데이터에 관하여 다른 변환들을 수행하여 자기 기록에 좀 더 적합하도록 한다.
도 2를 참조하면, 전술한 바와 같이, VFO 패턴들은 동기화 및 기타 목적들을 위하여 기록된 데이터내에 삽입될 수 있다. 현재 LTO 및 기업용 테이프 드라이브들에서, VFO 패턴들은 4-비트 주기를 가진 2T 자기 기록 패턴들로 구성되고, 여기서 T는 기록된 비트에 대응한다. NRZI 표기법 (NRZI notation)에서 VFO 패턴들은 1 0 1 0 1 0 1 0 . . . 형태의 시퀀스들이고, 여기서 "0"은 기록된 자화 방향에서 변화가 없슴을 의미하고 "1"은 기록된 자화 방향에서 반전 (reversal)을 의미한다.
RLL 인코더들 (116)은 재-판독 (read-back) 프로세스중 데이터 패턴내에서 실수로 VFO 패턴을 검출하는 것을 방지하기 위하여 기록된 데이터내에서 VFO-같은 (VFO-like) 2T -패턴들의 최대 길이를 제한하도록 설계된다. 이것은 재-판독되는 데이터가 노이즈 또는 매체 결함들과 같은 에러들에 의하여 손상되지 않는 한 VFO-같은 패턴들이 데이터에서 검출되지 않도록 보장한다. 하지만, 만약 노이즈가 VFO-검출창내에서 발생한다면 잘못된 VFO 검출이 노이즈의 존재로 발생할 수 있다.
도 2는 보통의 랜덤 데이터의 경우에 VFO 패턴들이 어떻게 검출되는지 도시한다. 관찰되는 바와 같이, VFO-같은 패턴들 (502)가 자기 테이프 (500)의 트랙들상에 기록된 데이터 (504)에서 발생할 수 있다. 각각의 트랙상의 데이터 (504)는 독립적이므로, VFO-같은 패턴들 (502)는 트랙 방향 (along-track direction) (508)을 따라서 랜덤하게 분산될 수 있다. 이것은, 트랙 방향 (508)을 따라서 의도적으로 정렬된, 실제 VFO 패턴들 (506)과는 대조를 이룬다. 비록 잘못된 VFO 패턴들이 특정 트랙들에서 검출될 수 있지만, 테이프 드라이브는 VFO 패턴들을 N K 트랙들의 그룹에서 검출하는 선택-논리 회로 (voting-logic circuitry)를 포함할 수 있다. 만약 VFO 패턴들이 적어도 1 < N'N인 N' 트랙 내에서만 검출된다면 이 선택-논리 회로는 VFO 검출 플래그 (flag)를 표시 (raise) 할 수 있다. 예를 들면, K = 8, 16, 또는 32인 트랙들일 경우, 트랙들의 총 개수는 4개의 트랙들의 그룹으로 나누어질 수 있고, 선택-논리 회로는 만약 VFO 패턴이 4개 트랙들의 그룹들의 각각에서 4개 트랙들 중 3개의 동일 트랙 위치를 따라서 검출되면, 그 VFO 검출 플래그만 표시할 수 있다. 이 개념은 도 3에서 도시된다.
도 2를 일반적으로 계속 참조하면서 도 3을 참조하면, 비록 VFO-같은 패턴들 (502)가 4개 트랙들의 그룹 각각에서 다양한 위치에서 검출되더라도, VFO 검출 플래그는 특정한 개수의 VFO-같은 패턴들 (502)가 4개 트랙들에서 동시에 검출되는 경우에만 표시된다. 오직 하나의 단일 VFO-같은 패턴 (502)가 어떤 주어진 시간에도 발생할 수 있으므로, 상기 VFO 선택 회로는, 도 3에서 보여진 것과 같이, VFO 검출 플래그를 표시하지 않을 것이다. 이것은 여러 트랙들에 걸쳐서 정렬되는 실제 VFO 패턴들 (506)과는 대조를 이룬다. 도 3에서 도시한 바와 같이, 상기 선택-논리 회로는 VFO 검출 플래그를 표시하는데, 그 이유는 특정한 개수의 VFO 패턴들 (506)이 동일 트랙 위치를 따라서 검출되기 때문이다.
도 4를 참조하면, 각각의 트랙상의 데이터가 독립적인 경우에는 선택-논리 회로가 잘 작동된다고 해도, VFO-같은 패턴들 (502)가 테이프 (500)상에 동시에 발생하는 상황에는 잘 작동하지 않을 수 있다. 이런 상황은 시험 데이터 또는 기타 반복하는 데이터 패턴들에서 발생할 수 있다. 이러한 한 시나리오가 도 4에서 도시된다. 도 4에서 도시한 바와 같이, VFO-같은 패턴들 (502) (즉, 잘못된 VFO 패턴들 (502))는 다수 트랙들상에 동시에 발생한다. 이 VFO-같은 패턴들 (502)는 동일 트랙 위치를 따라서 (in the same along-track location) 발생하기 때문에, 선택-논리 회로는 VFO패턴이 검출되었슴을 표시하기 위해 VFO 검출 플래그를 표시한다 (도 5에서 도시한 바와 같이). 이 경우, 상기 VFO패턴은 잘못 검출되었다. 이 예는 VFO 선택-논리 회로가 동일 트랙 위치를 따라서 발생하는 반복하는 패턴들에 대해서는 잘못된 VFO 검출을 회피하지 못할 수도 있다는 것을 보여준다.
도 6을 참조하여, 전술한 바와 같이, 잘못된 VFO 검출을 최소화하기 위하여, 데이터를 테이프에 기록하기 위한 새롭고 개량된 기술을 이하에서 개시한다. 이 기술은 보통의 랜덤 데이터의 경우뿐만 아니라, 반복하는 시험 데이터와 같은 반복하는 데이터의 경우에서도 잘못된 VFO 검출을 감소 또는 방지한다. 본 기술은 각각의 트랙에 대한 유입되는 호스트 데이터가 동일할 때에도 다른 데이터 비트 패턴들을 각각의 트랙에 기록하는데, 이에 관하여 자세한 내용은 이하에서 설명한다. 이것은 각각의 트랙의 데이터 랜덤화기 (114)를 초기화하기 위해 다른 프리셋값들 (즉, 초기값들 (initial values))을 사용함으로써 성취된다. 이후 더 상세히 설명될 것이지만, 한 실시예에서, 본 기술은 도 6에서 도시된 바와 같이, K개의 데이터 랜덤화기들 (114)를 K개의 다른 프리셋값들로 초기화한다. 이 기술은 실제 VFO패턴들이 정확히 검출되도록 하면서 반복하는 시험 데이터뿐만 아니라 보통의 유저 데이터에 대한 잘못된 VFO 검출도 회피한다.
도 7은 선형 피드백 시프트 레지스터 (700)의 피보나치 구현 (a Fibonacci implementation)을 보여준다. 선형 피드백 시프트 레지스터 (700)은 현재 LTO 및 기업용 테이프 드라이브들의 랜덤화기들 (114)에서 사용되며, 본 발명을 실시하는데 사용되는 랜덤화기들 (114)에서도 사용될 수 있다. 이 선형 피드백 시프트 레지스터 (700)의 구현에 있어서, 모든 덧셈 (additions) 및 곱셈 (multiplications)은 갈로아 필드 (Galois field)에 대해서 수행되는데, 이것은 또한 두 개의 구성 요소들 GF(2)를 갖는, 유한 필드 (finite field)로서 알려져 있다. 구성 요소들 {0, 1}을 갖는 GF(2)에 대한 덧셈 연산 "+"는 모듈로-2 (modulo-2) 덧셈 (0 + 0 = 0, 0 + 1 = 1 , 1 + 0 = 1 , 및 1 + 1 = 0)에 대응하고, 한편 GF(2)에 대한 곱셈 연산 "x"는 정수 (integer) 곱셈 (0 x 0 = 0, 0 x 1 = 0, 1 x 0 = 0, 및 1 x 1 = 1)에 대응한다.
도 7에서 L-비트 시프트 레지스터 (700)의 초기 셋팅 (즉, 시드 (seed), 프리셋값, 또는 초기값)은 이진수 (binary)값 a 0 , a 1 , . . . , a L -1 에 의하여 표시된다. GF(2) 곱셈기들 (multipliers)의 계수들 (coefficients)은 이진수값 g 1 , g 2 , . . . , g L -1 에 의하여 표시된다. 만일 생성된 시퀀스의 주기가 적어도 하나의 영이 아닌 (nonzero) 컴포넌트를 포함하는 모든 영이 아닌 초기 셋팅에 대해 2 L -1비트들이면 선형 피드백 시프트 레지스터 (700)에 의해 생성된 이진수 시퀀스는 최대 길이 시퀀스 (m-시퀀스)가 된다. 만일 다항식 (polynomial) 1 + g 1 x + . . . + g L-1 x L-1 + x L 이 원시 (primitive) 다항식이면 선형 피드백 시프트 레지스터 (700)은 m-시퀀스를 생성한다. 도 7에서 도시된 선형 피드백 시프트 레지스터 (700)에 의하여 생성된 시퀀스들은 리커런스 (recurrence) a n = a n - 1 g L - 1 + . . . + a n -L +1 g 1 + a n -L 을 만족한다.
도 8은 현재 LTO 드라이브들에서 사용되는 데이터 랜덤화기 (114)의 한 예를 보여준다. 데이터 랜덤화기 (114)는 이하 설명되는 개량된 데이터 기록 기술들을 실시하는데 사용된다. LTO 테이프 드라이브들에서 데이터 랜덤화 (data randomization)는 가산 스크램블링 (additive scrambling)으로 또한 알려진 동기식 (synchronous) 스크램블링에 기초하는데, 이 가산 스크램블링은 도 7에서 도시된 회로 (700)과 같은, 선형 피드백 시프트 레지스터 (700)에 의하여 생성된 슈도랜덤 이진 시퀀스 (a pseudorandom binary sequence) (m-시퀀스)를 모듈로-2 가산기 (배타적-또는 (XOR) 논리 게이트)를 사용하여 이진 입력 데이터 스트림 (800)에 더하는 것이다. LTO에서, 15-비트 시프트 레지스터 (700)이 사용되는데 이것은 슈도랜덤 이진 시퀀스의 주기를 215-1 = 32767 비트까지 제한한다. 선형 피드백 시프트 레지스터 (700)의 시퀀스를 정의하기 위하여 LTO에서 사용되는 원시 다항식은 g(x) = 1 + x + x15에 의하여 주어진다.
종래의 LTO 테이프 드라이브들에서, 모든 K 트랙들에서 사용된 데이터 랜덤화기들 (114)는 코드워드 인터리브 (codeword interleave (CWI))에 선행하는 헤더의 시작에서 같은 값으로 프리셋된다. 다시 말하면, 데이터 랜덤화기 (114)내 선형 피드백 시프트 레지스터 (700)의 초기 상태는 데이터가 할당된 논리적 또는 물리적 트랙에 의존하지 않는다. LTO에서 모든 K개의 트랙들의 데이터 랜덤화기들 (114)는 CWI에 선행하는 모든 헤더의 시작에서 동일한 15-비트값 (100000000000000)으로 프리셋된다. 모든 K개의 트랙들상의 헤더들은 동시에 기록되는데, 이것은 그것들이 테이프 (500)상에서 대략 동일 트랙 위치를 따라서 발생한다는 것을 의미한다.
LTO 데이터 랜덤화기 (114)의 초기 셋팅은 15개의 정수 컴포넌트들을 가진 열 벡터 (column vector) a = [1 0 0 0 0 0 0 0 0 0 0 0 0 0 0]'에 의하여 기술될 수 있다. m 클록 주기들 (m 비트 시프트들) 이후 LTO 데이터 랜덤화기 (114)의 레지스터 컨텐트는 MATLAB 언어를 사용하여 다음과 같이 기술된다:
a = [1 0 0 0 0 0 0 0 0 0 0 0 0 0 0]'; % LTO preset value
ag = gf (a, 1) ;
A = horzcat(zeros(14, 1), diag(ones(l, 14))) ;
B = horzcat([1 1], zeros(l, 13)) ;
Q = vertcat(A, B) ;
Qg = gf(Q, 1) ;
bg = (Qg^m)*ag ;
열 벡터 bgm 클록 주기들 이후 랜덤화기 (114)의 컨텐트를 포함한다. 상기 MATLAB 코드는 m 클록 주기들에 의하여 기술되는 (characterized) 모든 원하는 시간에 (at any desired time) LTO 데이터 랜덤화기 (114)의 시프트 레지스터 컨텐트를 명시한다. bg의 첫번째 컴포넌트는 데이터 랜덤화기 (114)의 출력 비트 (804)를 나타내므로, 도 8에서 데이터 랜덤화기 (114)의 출력 비트 (804)는 상기 MATLAB 코드에 의하여 완전하게 (fully) 명시된다. 한 실시예에서 (도 9와 관련하여 논의된 것과 같은), 초기 프리셋값은 a = [0 0 0 0 0 0 0 1 0 0 0 0 0 0 0]'이 되도록 선택된다. 위에서 도시한 MATLAB 코드의 첫번째 라인은 m 클록 주기들 이후 데이터 랜덤화기 (114)의 레지스터 컨텐트를 기술하기 위해 프리셋값 a에 의하여 대체될 수 있다.
특정 실시예들에서, 슈도랜덤 이진 시퀀스의 임의의 두 프리셋값들사이의 최소 “거리”는 최대화하는 것이 바람직할 수 있으며, 여기서 상기 “거리”는 한 프리셋값에서 다음까지 시프트 레지스터의 컨텐트를 시프트하기 위해 필요한 클록 주기들의 수에 대응한다. 이것은 임의의 두 트랙들에 생성된 슈도랜덤 시퀀스들사이에서 M 클록 주기들의 최대 최소 시프트를 보장할 수 있다. 상기 최대 최소 시프트 M은 MATLAB 언어를 사용하여 다음과 같이 계산된다:
M = max(min(mod(c-circshift(c, [0 1]), 2^L- 1)))
여기서
c = sort(mod([0:F:(K-l)*F],(2^L-l)))
여기서, F는 인접 트랙들의 프리셋값들사이에서 클록 주기들의 수이고, F의 모든 가능한 값들에 대해 최대화가 일어나며, c는 첫번째 트랙 (트랙 0)에 관한 클록 시프트들에서 주어진 모든 프리셋값들의 정렬된 세트이다. K = 32 트랙들 및 L = 15 레지스터들에 대해서, 최대 최소 시프트 M은 1023 클록 주기들이다.
예 1
K = 32 트랙들 및 L = 15 레지스터들인, 첫번째 예를 생각해 보자. 이 값들을 사용하면, 데이터 랜덤화기 (114)는 시퀀스의 주기가 32767-비트인 32767 비트 시퀀스의 슈도랜덤 패턴들을 반복적으로 생성할 것이다. 이 예에서, 트랙 0을 위해 데이터 랜덤화기 (114a)를 초기화하기 위한 프리셋값은 a = [0 0 0 0 0 0 0 1 0 0 0 0 0 0 0]'이다. 트랙 1을 위한 프리셋값은 트랙 0을 위한 프리셋값과 상대적으로 996 바이트만큼 (즉, 996 x 8 비트) 시프트된다. 이것은 트랙 0을 위한 프리셋값에 상대적인 F = 7968 클록 주기들의 시프트에 대응한다.
잔여 트랙들에 대한 프리셋값들도 유사한 방법으로 계산될 수 있는데, 여기서 트랙 t의 프리셋값은 트랙 t- 1로부터 7968 클록 주기들만큼 시프트되고, t = 1 , 2, 3, . . . , 31이다. 이 실시예에서, 트랙 t- 1에 상대적인 트랙 t를 위한 프리셋값을 이동하기 위하여 필요한 클록 주기들의 수는 종래 CWI-4 (헤더를 포함하여 네 개의 인터리브된 코드워드들을 갖는 코드워드 인터리브)에 포함된 비트들의 개수에 정확히 대응한다. 만일 CWI-4의 헤더가 12 바이트들을 포함하고 CWI-4의 데이터가 네 개의 246-바이트 리드-솔로몬 (Reed-Solomon) 코드워드들을 포함한다면, 상기 CWI-4는 전체적으로 (12 + 4 x 246) x 8 = 7968 비트들을 포함할 것이다. 전술한 실시예에서, 미정렬된 (unsorted) 세트 c (즉, 첫번째 트랙 (트랙 0)에 상대적인 클록 시프트들로 표현된 모든 32개의 트랙들에 대한 프리셋값들의 미정렬된 세트)는 다음과 같이 계산될 수 있다:
c = (mod([0:7968:31*7968],(2^15-l))) =
{0, 7968, 15936, 23904, 31872, 7073, 15041, 23009, 30977, 6178, 14146, 22114, 30082, 5283, 13251, 21219, 29187, 4388, 12356, 20324, 28292, 3493, 11461, 19429, 27397, 2598, 10566, 18534, 26502, 1703, 9671, 17639}
위에서 도시한 바와 같이, 프리셋값들은 일단 그것들이 32767-비트에 도달하면 랩 어라운드된다 (wrap around). 정렬된 (sorted) 세트 c (즉, 클록 시프트들의 횟수에 의하여 조직된 모든 32개의 트랙들에 대한 프리셋값들의 정렬된 세트)는 다음과 같이 계산될 수 있다:
c = sort(mod([0:7968:31*7968],(2^15-l))) =
{0, 1703, 2598, 3493, 4388, 5283, 6178, 7073, 7968, 9671, 10566, 11461, 12356, 13251, 14146, 15041, 15936, 17639, 18534, 19429, 20324, 21219, 22114, 23009, 23904, 26502, 27397, 28292, 29187, 30082, 30977, 31872}
위에서 도시한 바와 같이, 연속적인 트랙들 (consecutive tracks)에서 생성된 슈도랜덤 패턴들 블록의 연쇄 (concatenation)는 m-시퀀스를 생성한다 (results in). 이 예에서 생성된 두 개의 슈도랜덤 시퀀스들사이에서 클록 주기들의 최소 시프트는 다음과 같이 계산될 수 있다:
min(mod(c-circshift(c,[0 1]),2^15-1)) = 895
그러므로, 적어도 895 클록 주기들의 거리가 상기 프리세트값들 각각 사이에 존재한다. 이 값은 최대 가능값 M = 1023 클록 주기들에 근접한다. 모든 32개의 트랙들에 대한 상기 프리셋값들이 도 9에서 이진수로 도시되어 있다. 도시한 바와 같이, 각각의 프리셋값은 15 비트들을 가지며, 이는 도 8에서 도시된 선형 피드백 시프트 레지스터 (700)의 크기에 대응한다.
예 2
K = 32 트랙들 및 L = 15 레지스터들인 두번째 예를 생각해 본다. 이 값들을 사용하면, 데이터 랜덤화기 (114)는 32767-비트 시퀀스의 슈도랜덤 패턴들을 반복적으로 생성할 것이다. 이 예에서, 트랙 0을 위해 데이터 랜덤화기 (114a)를 초기화하기 위해 사용된 프리셋값은 a = [0 0 0 0 0 0 0 1 0 0 0 0 0 0 0]'이다. 트랙 1을 위한 프리셋값은 트랙 0을 위한 프리셋값에 상대적으로 996 비트만큼 시프트된다. 이것은 트랙 0을 위한 프리셋값에 상대적인 F = 996 클록 주기들의 시프트에 대응한다. 전술한 실시예에서, 미정렬된 세트 c는 다음과 같이 계산된다:
c = (mod([0:996:31*996],(2^15-l))) =
{0, 996, 1992, 2988, 3984, 4980, 5976, 6972, 7968, 8964, 9960, 10956, 11952, 12948, 13944, 14940, 15936, 16932, 17928, 18924, 19920, 20916, 21912, 22908, 23904, 24900, 25896, 26892, 27888, 28884, 29880, 30876}
위에서 관찰되는 것과 같이, 많이 작아진 F값으로 인하여, 프리셋값은 랩 어라운드되지 않는다. 그러므로, 프리셋값은 어떤 정렬이 없더라도 가장 작은 것으로부터 가장 큰 것으로 (from least to greatest) 정돈된다. 모든 32개의 트랙들에 대한 프리셋값은 도 10에서 이진수로 도시된다.
앞에서의 예들에서 값들 및 하드웨어/소프트웨어 구성들은 오직 예로서만 제시되는 것이며 제한하려는 의도는 없다. 이 값들 및/또는 구성들은 다른 실시예들에서는 변할 수 있다. 예들 들면, 선형 피드백 시프트 레지스터 (700)은 15-비트 선형 피드백 시프트 레지스터에 국한되지는 않으며, 다른 크기의 선형 피드백 시프트 레지스터들도 포함할 수 있다. 선형 피드백 시프트 레지스터의 구현도 또한 다르게 할 수 있고, 이는 차례로 생성되는 슈도랜덤 시퀀스를 변경 (alter)할 수 있다. 그 결과 프리셋값들에서 비트들의 수뿐만 아니라, 프리셋값들도 또한 변할 수 있다. 슈도랜덤 이진수 시퀀스에서 어떤 두 프리셋값들사이의 “거리” 또한 다른 실시예들에서는 변할 수 있다. 그러므로, 비록 상기 예들에서는 최소 거리가 최대화되었다 해도, 이것이 반드시 필요한 것은 아니며 또한 항상 바람직한 것도 아니다. 그러므로, 프리셋값들사이의 다른 거리들 또는 간격들 (spacings)이 사용될 수도 있다. 테이프 드라이브내에서 구현된 트랙들 및 관련된 데이터 랜덤화기들의 개수와 같은, 값들도 또한 변할 수 있다.
위에서 설명된 실시예들과 같은 일부 실시예들의 경우에서 그랬다 하더라도, 모든 K 데이터 랜덤화기들 (114)이 반드시 꼭 다른 프리셋값들로 프로그램되는 것은 아니란 점도 또한 이해해야 한다. 다른 실시예들에서, K개의 데이터 랜덤화기들 (114)의 몇몇 번호 n은- 이것은 K보다 작은 정수임- 동일 프리셋값으로 프로그램된다. 전술한 상세한 설명 및 부속 청구범위는 다수 (예를 들어, 적어도 둘) 데이터 랜덤화기들 (114) (병렬로 동작하는)이 다른 프리셋값들로 프로그램되는 실시예들을 포함하도록 (encompass) 의도되었다. 테이프 드라이브의 구현 및 VFO 패턴들이 검출 또는 잘못 검출되는 방식에 따라 얼마나 많은 프리셋값들이 필요할지와 어떤 데이터 랜덤화기들 (114)이 동일 또는 다른 프리셋값들로 프로그램될지가 결정될 수 있다 (dictate).
상기 도면들에서의 흐름도와 블록 다이어그램들은 본 발명의 다양한 실시예들에 따른 시스템들, 방법들 및 컴퓨터-사용가능 매체의 가능한 구현들의 아키텍처, 기능, 및 동작을 도시한다. 이와 관련하여, 흐름도들 또는 블록 다이어그램들내의 각각의 블록은 모듈, 세그먼트 (segment), 또는 코드의 부분을 표시할 수 있는데, 이는 지정된 논리적 기능(들)을 구현하는 하나 또는 그 이상의 실행가능한 명령들을 포함한다. 일부 다른 실시예들에서, 블록에서 표시된 기능들은 상기 도면에서 표시된 순서와 다르게 (out of the order) 발생할 (occur) 수도 있음을 또한 이해하여야 한다. 예를 들면, 연속으로 보여진 두 개의 블록들이, 실제로는, 동시에 실질적으로 실행될 수도 있고, 또는 블록들은 관련 기능에 따라 때때로 역순으로 실행될 수도 있다. 블록 다이어그램들 및/또는 흐름도 도시의 각각의 블록, 그리고 블록 다이어그램들 및/또는 흐름도 도시의 블록들의 조합은 특수 목적 하드웨어와 컴퓨터 명령들 조합의 지시된 기능 또는 동작, 또는 조합들을 수행하는 특수 목적 하드웨어-기반 시스템에 의하여 구현될 수 있다.

Claims (21)

  1. 잘못된 VFO 검출 (false VFO detection)을 최소화하기 위하여 데이터를 랜덤화 (randomizing)하기 위한 방법에 있어서, 상기 방법은:
    복수의 입력 데이터 스트림들 (a plurality of input data streams)을 동시에 수신하는 단계 - 각각의 입력 데이터 스트림은 자기 테이프 매체 상의 다른 트랙과 관련됨 (associated)-;
    복수의 랜덤화된 데이터 스트림들을 생성하기 위해 상기 입력 데이터 스트림들을 동시에 스크램블하는 단계 (simultaneously scrambling)-스크램블링은 상기 랜덤화된 데이터 스트림들에서 다른 비트 패턴들을 생성하되 상기 입력 데이터 스트림들에서 대응 비트 패턴들 (corresponding bit patterns)은 동일하게 (identical) 함 -; 및
    상기 랜덤화된 데이터 스트림들을 상기 자기 테이프 매체 상의 관련된 데이터 트랙들에 동시에 기록하는 단계를 포함하는
    방법.
  2. 제 1항에 있어서, 스크램블링은 복수의 데이터 랜덤화기들 (a plurality of data randomizers)을 사용하여 유입되는 데이터 스트림들을 스크램블하는 단계를 포함하는
    방법.
  3. 제 2항에 있어서, 상기 방법은 유입되는 데이터 스트림들을 스크램블하기 전에 복수의 데이터 랜덤화기들 각각을 다르게 초기화하는 단계를 더 포함하는
    방법.
  4. 제 2항에 있어서, 복수의 데이터 랜덤화기들 각각은 선형 피드백 시프트 레지스터들 (linear feedback shift registers)을 포함하는
    방법.
  5. 제 4항에 있어서, 상기 선형 피드백 시프트 레지스터들은 선형 피드백 시프트 레지스터들의 피보나치 구현들 (Fibonacci implementations)인
    방법.
  6. 제 4항에 있어서, 상기 방법은 유입되는 데이터 스트림들들을 스크램블하기 전에 상기 복수의 데이터 랜덤화기들의 선형 피드백 시프트 레지스터들을 다른 프리셋값들 (different preset values)로 초기화하는 단계를 더 포함하는
    방법.
  7. 제 6항에 있어서, 상기 복수의 데이터 랜덤화기들 각각은 반복하는 슈도랜덤 시퀀스 (a repeating pseudorandom sequence)를 생성하는
    방법.
  8. 제 7항에 있어서, 상기 반복하는 슈도랜덤 시퀀스는 2 L -1 비트들을 포함하되, L은 각각의 선형 피드백 시프트 레지스터에서 비트들의 개수인
    방법.
  9. 제 7항에 있어서, 상기 복수의 데이터 랜덤화기들의 선형 피드백 시프트 레지스터들을 초기화하는 단계는 상기 선형 피드백 시프트 레지스터들을 상기 반복하는 슈도랜덤 시퀀스와는 다른 프리셋값들로 초기화하는 단계를 포함하는
    방법.
  10. 제 9항에 있어서, 상기 방법은 상기 복수의 데이터 랜덤화기들의 프리셋값들사이의 최소 거리 (the minimum distance)를 상기 반복하는 시퀀스내에서 실질적으로 최대화하는 단계를 더 포함하는
    방법.
  11. 잘못된 VFO 검출을 최소화하기 위하여 데이터를 랜덤화하기 위한 장치에 있어서, 상기 장치는:
    복수의 입력 데이터 스트림들을 병렬로 (in parallel) 수신하는 복수의 데이터 랜덤화기들 - 각각의 입력 데이터 스트림 및 각각의 데이터 랜덤화기는 자기 테이프 매체상의 특정한 트랙과 관련되어 있음 - 을 포함하고; 그리고
    상기 복수의 데이터 랜덤화기들은 상기 입력 데이터 스트림들을 스크램블하여 복수의 랜덤화된 데이터 스트림들을 생성하도록 더 구성하여서 상기 데이터 랜덤화기들이 상기 랜덤화된 데이터 스트림들내에서 다른 비트 패턴들을 생성하되 상기 입력 데이터 스트림들내의 대응 비트 패턴들은 동일하게 (identical) 하는
    장치.
  12. 제 11항에 있어서, 상기 복수의 데이터 랜덤화기들 각각은 구조적으로 동일한
    장치.
  13. 제 11항에 있어서, 상기 복수의 데이터 랜덤화기들 각각은 유입되는 데이터 스트림들을 스크램블하기 전에 다르게 초기화되는
    장치.
  14. 제 11항에 있어서, 상기 복수의 데이터 랜덤화기들 각각은 선형 피드백 시프트 레지스터를 포함하는
    장치.
  15. 제 14항에 있어서, 각각의 선형 피드백 시프트 레지스터는 선형 피드백 시프트 레지스터의 피보나치 구현들 (Fibonacci implementations)인
    장치.
  16. 제 14항에 있어서, 각각의 선형 피드백 시프트 레지스터는 유입되는 데이터 스트림을 스크램블하기 전에 다른 프리셋값으로 초기화되는
    장치.
  17. 제 16항에 있어서, 각각의 선형 피드백 시프트 레지스터는 반복하는 슈도랜덤 시퀀스를 생성하는
    장치.
  18. 제 17항에 있어서, 상기 반복하는 슈도랜덤 시퀀스는 2 L -1 비트들을 포함하되, L은 각각의 선형 피드백 시프트 레지스터에서 비트들의 개수인
    장치.
  19. 제 17항에 있어서, 각각의 선형 피드백 시프트 레지스터는 상기 반복하는 슈도랜덤 시퀀스과는 다른 프리셋값으로 초기화되는
    장치.
  20. 제 19항에 있어서, 상기 다른 프리셋값들사이의 최소 거리는 상기 반복하는 시퀀스내에서 실질적으로 최대화되는
    장치.
  21. 컴퓨터 프로그램을 포함하는 컴퓨터 판독가능 매체에 있어서,
    상기 컴퓨터 프로그램은 컴퓨터상에서 실행될 때 청구항 1 내지 10항 중 어느 한 항의 모든 단계들을 수행하도록 구성되는 프로그램 코드를 포함하는
    컴퓨터 판독가능 매체.
KR1020137028053A 2011-06-01 2012-05-25 잘못된 vfo 검출을 최소화하는 트랙-의존형 데이터 랜덤화 KR101507674B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/149,905 2011-06-01
US13/149,905 US8405925B2 (en) 2011-06-01 2011-06-01 Track-dependent data randomization mitigating false VFO detection
PCT/CN2012/076089 WO2012163250A1 (en) 2011-06-01 2012-05-25 Track-dependent data randomization mitigating false vfo detection

Publications (2)

Publication Number Publication Date
KR20130143121A KR20130143121A (ko) 2013-12-30
KR101507674B1 true KR101507674B1 (ko) 2015-03-31

Family

ID=47258370

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137028053A KR101507674B1 (ko) 2011-06-01 2012-05-25 잘못된 vfo 검출을 최소화하는 트랙-의존형 데이터 랜덤화

Country Status (7)

Country Link
US (2) US8405925B2 (ko)
EP (1) EP2715726B1 (ko)
JP (1) JP6074412B2 (ko)
KR (1) KR101507674B1 (ko)
CN (1) CN103562995B (ko)
SG (1) SG194689A1 (ko)
WO (1) WO2012163250A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9430366B2 (en) 2014-08-14 2016-08-30 Oracle International Corporation Distributed logical track layout in optical storage tape

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010034869A1 (en) 1996-02-09 2001-10-25 Gray Martin D. Digital data recording channel
US6539514B1 (en) 1998-05-12 2003-03-25 Hewlett-Packard Company Read while write method in data storage device

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6025821B2 (ja) * 1979-09-17 1985-06-20 三菱電機株式会社 Pcm録音再生装置
JPS62112268A (ja) * 1985-11-09 1987-05-23 Otani Denki Kk シンクワ−ド検出装置
JPH0823971B2 (ja) * 1988-04-08 1996-03-06 日本ビクター株式会社 符号訂正装置
JP2563138B2 (ja) 1989-12-19 1996-12-11 株式会社日立製作所 情報記録単位の先頭検出方法,記録再生装置およびディスク記録媒体
JPH05159462A (ja) 1991-12-03 1993-06-25 Canon Inc 情報伝送または記録方法、情報記録再生装置および情報伝送装置
JPH07141794A (ja) * 1993-09-20 1995-06-02 Matsushita Electric Ind Co Ltd 映像信号の記録装置
JP3500204B2 (ja) * 1993-12-07 2004-02-23 ソニー シネマ プロダクツ コーポレーション 映画フィルム並びにその記録装置及び再生装置
CN1189018C (zh) * 1996-04-26 2005-02-09 皇家菲利浦电子有限公司 磁带录制/再现装置、编码装置、磁带录制/再现方法
US5889796A (en) * 1996-10-17 1999-03-30 Maxtor Corporation Method of insuring data integrity with a data randomizer
DE19882748T1 (de) 1997-10-23 2000-09-28 Seagate Technology Abwechselndes Umrechnen mit Zufallsdaten für gerade/ungerade Datenspuren
US5999110A (en) 1998-02-17 1999-12-07 International Business Machines Corporation Defect tolerant binary synchronization mark
FI107094B (fi) * 1999-05-10 2001-05-31 Nokia Mobile Phones Ltd Menetelmä päivittää koodigeneraattorin lineaarinen palautesiirtorekisteri
US6560727B1 (en) * 1999-10-21 2003-05-06 Sandia Corporation Bit error rate tester using fast parallel generation of linear recurring sequences
JP2001275077A (ja) 2000-03-27 2001-10-05 Sony Corp 磁気テープ記録装置および方法、磁気テープ再生装置および方法、磁気テープのフォーマット、並びに記録媒体
ATE401647T1 (de) 2001-05-02 2008-08-15 Pioneer Corp Informationsaufzeichnungsmedium und informationsaufzeichnungsgerät
JP2002342072A (ja) * 2001-05-14 2002-11-29 Kenwood Corp ランダムデータ生成装置、データランダム化装置、ランダムデータ生成方法及びプログラム
US7810012B1 (en) 2003-08-06 2010-10-05 Oracle America, Inc. Format for randomized data block in a storage device
US6987633B2 (en) 2003-10-10 2006-01-17 International Business Machines Corporation Apparatus and method to read information from a tape storage medium
JP2006294183A (ja) 2005-04-14 2006-10-26 Nec Corp ディスク再生装置、及び、データ再生方法
US8131920B2 (en) 2007-12-06 2012-03-06 Hitachi Global Storage Technologies, Netherlands B.V. Method and system for dynamically allocating read and write sequence randomizer
US7876516B2 (en) * 2009-01-09 2011-01-25 International Business Machines Corporation Rewrite-efficient ECC/interleaving for multi-track recording on magnetic tape

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010034869A1 (en) 1996-02-09 2001-10-25 Gray Martin D. Digital data recording channel
US6539514B1 (en) 1998-05-12 2003-03-25 Hewlett-Packard Company Read while write method in data storage device

Also Published As

Publication number Publication date
US8405925B2 (en) 2013-03-26
US20120307393A1 (en) 2012-12-06
EP2715726A1 (en) 2014-04-09
JP2014519133A (ja) 2014-08-07
EP2715726A4 (en) 2016-04-13
EP2715726B1 (en) 2019-03-20
US8472130B2 (en) 2013-06-25
WO2012163250A1 (en) 2012-12-06
CN103562995A (zh) 2014-02-05
CN103562995B (zh) 2017-02-15
SG194689A1 (en) 2013-12-30
KR20130143121A (ko) 2013-12-30
US20120307389A1 (en) 2012-12-06
JP6074412B2 (ja) 2017-02-01

Similar Documents

Publication Publication Date Title
US4993029A (en) Method and apparatus for randomizing data in a direct access storage device
US7409622B1 (en) System and method for reverse error correction coding
US5946328A (en) Method and means for efficient error detection and correction in long byte strings using integrated interleaved Reed-Solomon codewords
JP5363686B2 (ja) 統合されたデータおよびヘッダ保護を含むコード化データをデコードするための方法および磁気テープ・ドライブ(統合されたデータおよびヘッダ保護を含むコード化データのデコード)
JP3234130B2 (ja) 誤り訂正符号復号化方法およびこの方法を用いる回路
JP2007087529A (ja) 信号復号装置、信号復号方法、および記憶システム
KR20010033954A (ko) 순환 에러 정정 코드에 대한 물리적 블록 어드레스 복구장치, 시스템 및 방법
US8479079B2 (en) Integrated data and header protection for tape drives
CN108370252B (zh) 对乘积码诊断的后解码错误检查
US9612905B2 (en) Encoding and writing of data on multitrack tape
US10824346B2 (en) Logical format utilizing lateral encoding of data for storage on magnetic tape
EP0754341A1 (en) A method and apparatus for protecting data from mis-synchronization errors
US10120599B2 (en) Low latency lateral decoding of data for retrieval from magnetic tape
KR101507674B1 (ko) 잘못된 vfo 검출을 최소화하는 트랙-의존형 데이터 랜덤화
US9712188B2 (en) Decoding data stored with three orthogonal codewords
US11967342B2 (en) Header decoding mechanism for tape storage
US20240087605A1 (en) Header encoding mechanism for tape storage

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190227

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20200227

Year of fee payment: 6