(57)【要約】【課題】データをランダム化して偽ＶＦＯ検出を軽減する方法を提供する。【解決手段】一つの実施形態において、かかる方法は複数の入力データ・ストリームを同時に受信するステップを含む。各入力データ・ストリームは、磁気テープ媒体上の相異なるトラックに関連付けられる。入力データ・ストリームは同時にスランブルされ、複数のランダム化データ・ストリームが生成される。入力データ・ストリームは、入力データ・ストリーム中の対応するビット・パターンが同一の場合にあっても、ランダム化データ・ストリーム中に相異なるビット・パターンが生成されるようにしてスクランブルされる。ランダム化データ・ストリームは、磁気テープ媒体上のそれぞれ関連付けられたデータ・トラックに同時に書き込まれる。加えて、対応する装置も提供する。【選択図】図１
2014519133.tif 000002
【特許請求の範囲】
【請求項１】
データをランダム化して偽ＶＦＯ検出を軽減する方法であって、前記方法は、
複数の入力データ・ストリームを同時に受信するステップであって、各入力データ・ストリームは磁気テープ媒体上の相異なるトラックに関連付けられている、前記受信するステップと、
前記入力データ・ストリームを同時にスクランブルして複数のランダム化データ・ストリームを生成するステップであって、前記スクランブルするステップは、前記入力データ・ストリーム中の対応するビット・パターンが同一の場合にあっても、前記ランダム化データ・ストリーム中に相異なるビット・パターンを生成するステップを含む、前記スクランブルするステップと、
前記ランダム化データ・ストリームを、前記磁気テープ媒体上のそれぞれ関連付けられたデータ・トラックに同時に書き込むステップと、
を含む方法。
【請求項２】
前記スクランブルするステップが、複数のデータ・ランダマイザを使って前記入力データ・ストリームをスクランブルするステップを含む、請求項１に記載の方法。
【請求項３】
前記入力データ・ストリームをスクランブルする前に、前記複数のデータ・ランダマイザの各々を別々に初期化するステップをさらに含む、請求項２に記載の方法。
【請求項４】
前記複数のデータ・ランダマイザの各々が線形フィードバック・シフト・レジスタを含む、請求項２に記載の方法。
【請求項５】
前記線形フィードバック・シフト・レジスタが線形フィードバック・シフト・レジスタのフィボナッチ実装である、請求項４に記載の方法。
【請求項６】
前記入力データ・ストリームをスクランブルする前に、相異なるプリセット値を使って、前記複数のデータ・ランダマイザの前記線形フィードバック・シフト・レジスタを初期化するステップをさらに含む、請求項４に記載の方法。
【請求項７】
前記複数のデータ・ランダマイザの各々が、反復型疑似ランダム・シーケンスを生成する、請求項６に記載の方法。
【請求項８】
前記反復型疑似ランダム・シーケンスは２Ｌ−１ビットを包含し、Ｌは各線形フィードバック・シフト・レジスタ中のビットの数である、請求項７に記載の方法。
【請求項９】
前記複数のデータ・ランダマイザの前記線形フィードバック・シフト・レジスタを前記初期化するステップは、前記反復型疑似ランダム・シーケンスからの相異なるプリセット値を使って前記線形フィードバック・シフト・レジスタを初期化するステップを含む、請求項７に記載の方法。
【請求項１０】
前記複数のデータ・ランダマイザの前記プリセット値の間の最小距離を、前記反復するシーケンス内でほぼ最大化するステップをさらに含む、請求項９に記載の方法。
【請求項１１】
データをランダム化して偽ＶＦＯ検出を軽減するための装置であって、前記装置は、
複数の入力データ・ストリームを並行して受信するための複数のデータ・ランダマイザであって、各入力データ・ストリームおよび各データ・ランダマイザは、磁気テープ媒体上の特定のトラックと関連付けられている、前記複数のデータ・ランダマイザを含み、
前記複数のデータ・ランダマイザは、前記入力データ・ストリームをスクランブルして複数のランダム化データ・ストリームを生成するようさらに構成され、前記複数のデータ・ランダマイザは、前記入力データ・ストリーム中の対応するビット・パターンが同一の場合にあっても、前記ランダム化データ・ストリーム中に相異なるビット・パターンを生成する、
装置。
【請求項１２】
前記複数のデータ・ランダマイザの各々が構造的に同一である、請求項１１に記載の装置。
【請求項１３】
前記入力データ・ストリームをスクランブルする前に、前記複数のデータ・ランダマイザの各々が別々に初期化される、請求項１１に記載の装置。
【請求項１４】
前記複数のデータ・ランダマイザの各々が、線形フィードバック・シフト・レジスタを包含する、請求項１１に記載の装置。
【請求項１５】
各線形フィードバック・シフト・レジスタが、線形フィードバック・シフト・レジスタのフィボナッチ実装である、請求項１４に記載の装置。
【請求項１６】
前記入力データ・ストリームをスクランブルする前に、相異なるプリセット値を使って、各線形フィードバック・シフト・レジスタが初期化される、請求項１４に記載の装置。
【請求項１７】
各線形フィードバック・シフト・レジスタが、反復型疑似ランダム・シーケンスを生成する、請求項１６に記載の装置。
【請求項１８】
前記反復型疑似ランダム・シーケンスは２Ｌ−１ビットを包含し、Ｌは各線形フィードバック・シフト・レジスタ中のビットの数である、請求項１７に記載の装置。
【請求項１９】
各線形フィードバック・シフト・レジスタが、前記反復型疑似ランダム・シーケンスからの相異なるプリセット値を使って初期化される、請求項１７に記載の装置。
【請求項２０】
前記相異なるプリセット値の間の最小距離を、前記反復型シーケンス内でほぼ最大化する、請求項１９に記載の装置。
【請求項２１】
コンピュータ・プログラムがコンピュータ上で実行されたとき、請求項１〜１０のいずれかに記載の方法のステップを遂行するようになされたプログラム・コードを含む、前記コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、磁気テープ・レコーディングに関し、さらに具体的には、偽ＶＦＯパターン検出を排除または最小限にするための装置、方法、およびプログラムに関する。
【背景技術】
【０００２】
現在のリニア・テープ・オープン（ＬＴＯ：ｌｉｎｅａｒ  ｔａｐｅ  ｏｐｅｎ）および企業レベルのテープ・ドライブにおいて、可変周波数発振器（ＶＦＯ：ｖａｒｉａｂｌｅ−ｆｒｅｑｕｅｎｃｙ  ｏｓｃｉｌｌａｔｏｒ  ）パターンは、データ記録および同期化の基本的な素子である。かかるＶＦＯパターンを使って、クロック周波数およびビット位置を揃えることができる。また、これらのパターンを使って、マスター・リセットを実行し、これにより、回路もしくはタイミングまたはその両方を初期状態にリセットすることが可能である。テープ上に存在するＶＦＯパターンが検出されなかったり、ＶＦＯパターンでないデータが誤ってＶＦＯパターンとして判定されたりすると、テープからデータを読み取ろうとするときに重大な系統的問題が生じ得る。場合によっては、磁気テープ上のデータが復元できないこともある。
【０００３】
ＶＦＯパターンは、通常のデータの中で遭遇するパターンと異なる固有の設計がされているが、それでも、通常に記録されたデータ中にマッチング・パターン（以降、「偽ＶＦＯパターン」という）が生じることがある。この問題を回避するための一つのアプローチは、複数のトラックが同時点でＶＦＯパターンを包含しているのを必須にすることである。このアプローチは、各トラック上のデータが相互に独立している場合はうまく機能する。というのは、各トラック上のデータが同時点で同じ偽ＶＦＯパターンを包含していることはありそうにないからである。しかしながら、特定の試験データ・パターンがテープに書き込まれる場合など、複数のトラックが、同じまたは極めて似通ったデータを有する場合には、このアプローチは機能しない可能性がある。
【０００４】
偽ＶＦＯ検出を回避する別のアプローチは、延長されたＶＦＯパターンを使い、全ビットがＶＦＯパターンにマッチするのを必須とすることである。このアプローチの一つの欠点は、長いＶＦＯパターン中のどんなエラーまたは媒体の欠陥もそのパターンが未検出のまま通る原因となり得るので、本当のＶＦＯパターンが見逃される確率を増大させることである。このアプローチの別の欠点は、より長いＶＦＯパターンはより多くのストレージ・スペースを費消するので、ＶＦＯパターンの延長によりストレージ・フォーマットの効率が低下することである。
【０００５】
偽ＶＦＯ検出を回避するためのさらに別のアプローチは、ＶＦＯ検出ウィンドウのサイズを調節することである。しかしながら、ＶＦＯ検出ウィンドウのサイズの調節は、トレードオフをもたらす。ＶＦＯ検出ウィンドウが大きい場合は、どんなエラーまたは媒体の欠陥も本当のＶＦＯパターンが未検出のまま通る原因となり得るので、本当のＶＦＯパターンが検出される確率が低下する。ＶＦＯ検出ウィンドウが小さい場合には、偽ＶＦＯパターンが検出される確率が増大する。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
前述を考慮すると、偽ＶＦＯ検出を回避または最小限にするための改良された装置および方法が必要とされている。理想的には、かかる装置および方法は、試験データまたは他の反復性のデータ・パターンなど特定の種類のデータが、ＶＦＯが誤検出をもたらす可能性を最小限に出来るものとなる。さらに必要なのは、ストレージ・フォーマットの効率を低下させることなく、前述の利点を提供するための装置および方法である。
【課題を解決するための手段】
【０００７】
本発明は、当技術分野の現状に対応して、特に、当技術分野において、現在利用可能な装置および方法では十分に解決されていない問題および必要性に対応して開発された。すなわち、本発明は、テープ・ドライブにおける偽ＶＦＯ検出を軽減するための装置および方法を提供するために開発されたものである。本発明の特徴および利点は、以下の説明および添付の請求項からさらに十分に明らかになろう、あるいは、以下に説明する本発明の実践を通して習得することができよう。
【０００８】
前述に即して、データをランダム化して偽ＶＦＯ検出を軽減する方法を本明細書に開示する。一つの実施形態において、かかる方法は、複数の入力データ・ストリームを同時に受信するステップを含む。各入力データ・ストリームは、磁気テープ媒体上の相異なるトラックに関連付けられる。入力データ・ストリームは同時にスクランブルされ、複数のランダム化データ・ストリームが生成される。入力データ・ストリームは、入力データ・ストリーム中の対応するビット・パターンが同一の場合にあっても、ランダム化データ・ストリーム中に相異なるビット・パターンが生成されるように、スクランブルされる。ランダム化データ・ストリームは、磁気テープ媒体上のそれぞれ関連付けられたデータ・トラックに同時に書き込まれる。
【０００９】
本発明の別の態様において、データをランダム化して偽ＶＦＯ検出を軽減するための装置は、複数の入力データ・ストリームを並行して受信するための複数のデータ・ランダマイザを含む。各入力データ・ストリームおよび各データ・ランダマイザは、磁気テープ媒体上の特定のトラックに関連付けられる。複数のデータ・ランダマイザは、入力データ・ストリームをスクランブルして複数のランダム化データ・ストリームを生成するように構成される。これらデータ・ランダマイザは、入力データ・ストリーム中の対応するビット・パターンが同一の場合にあっても、ランダム化データ・ストリーム中に相異なるビット・パターンを生成するように構成される。
【００１０】
本発明の利点が容易に理解できるように、添付の図面に示す特定の実施形態を参照しながら、上記で簡単に説明した本発明のさらに具体的な説明を提供する。これらの図面が、本発明の単なる典型的な実施形態を示すものであり、したがって本発明の範囲を限定すると見なすべきでないことを理解した上で、添付の図面を用い、本発明をさらに具体的にかつ詳細に記述、説明する。
【図面の簡単な説明】
【００１１】
【図１】テープ・ドライブに対するデータ・フローの一例を示すハイレベルのブロック図である。
【図２】テープ上に生じる、本当のＶＦＯパターンおよび不揃いな偽ＶＦＯパターンの一例を示すハイレベルのブロック図である。
【図３】図２に示された不揃いな偽ＶＦＯパターンに対する偽ＶＦＯ検出を回避するため、どのように多数決論理を使うことができるかを示す。
【図４】テープ上に生じる、本当のＶＦＯパターンおよび整列した偽ＶＦＯパターンの一例を示すハイレベルのブロック図である。
【図５】図４に示された整列した偽ＶＦＯパターンに対して、多数決論理が、偽ＶＦＯ検出を如何に回避できないかを示す。
【図６】相異なるプリセット値を使って初期化され、これにより、各トラックに対する入力データ・ストリームが同一の場合にあっても、各トラックに対し相異なるランダム化データ・ストリームを生成する、各トラックに対するデータ・ランダマイザを示す。
【図７】線形フィードバック・シフト・レジスタの一例を示すハイレベルのブロック図であり、この例では線形フィードバック・シフト・レジスタのフィボナッチ実装である。
【図８】あるプリセット値を使って初期化された線形フィードバック・シフト・レジスタを含むデータ・ランダマイザの一例を示す。
【図９】Ｋ＝３２トラックに対するデータ・ランダマイザを初期化するのに用いることが可能なプリセット値の第一例を示す表である。
【図１０】Ｋ＝３２トラックに対するデータ・ランダマイザを初期化するのに用いることが可能なプリセット値の第二例を示す表である。
【発明を実施するための形態】
【００１２】
当然のことながら、本出願の図面に一般的に示され例証された、本発明のコンポーネントは、多岐にわたる異なった構成に改作し設計することができよう。しかして、以下の、図面に示された本発明の実施形態のさらなる詳細な説明は、請求された本発明の範囲を限定する意図のものでなく、単に、本発明による現時点で考えられる実施形態の特定の例を表したものである。本明細書で説明する実施形態は、これらの図面を参照することにより最良に理解できよう。全図面を通して同じ要素には同じ番号を指定する。
【００１３】
当業者ならよく理解できるように、本発明は、装置、システム、方法、またはコンピュータ・プログラム製品として具現することができる。さらに、本発明は、ハードウェアの実施形態、ハードウェアを作動するよう構成されたソフトウェアの実施形態（ファームウエア、常駐ソフトウェア、マイクロコードなどを含む）、あるいは、ソフトウェアおよびハードウェア両方のエレメントを組み合わせた実施形態の形を取ることができる。これらの実施形態の各々は、一つ以上のモジュールまたはブロックで表すことができる。さらに、本発明は、格納されたコンピュータ可用プログラム・コードを中に有する任意の有形媒体の表現で具体化された、コンピュータ可用ストレージ媒体の形を取ることができる。
【００１４】
一つ以上のコンピュータ可用またはコンピュータ可読ストレージ媒体（群）の任意の組み合わせを用い、コンピュータ・プログラム製品を格納することができる。コンピュータ可用またはコンピュータ可読ストレージ媒体は、例えば、以下に限らないが、電子的、磁気的、光学的、電磁気的、赤外的、または半導体の、システム、装置、またはデバイスとすることができる。コンピュータ可読ストレージ媒体のさらに具体的な例（非包括的リスト）には、一つ以上の配線を有する電気接続、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、読み取り専用メモリ（ＲＯＭ：ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、消去可能プログラム可能読み取り専用メモリ（ＥＰＲＯＭ：ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙまたはフラッシュ・メモリ）、光ファイバ、携帯型コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ：ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、光ストレージ・デバイス、または磁気ストレージ・デバイスが含まれよう。本文書の文脈において、コンピュータ可用またはコンピュータ可読ストレージ媒体は、命令実行システム、装置、またはデバイスによってあるいはこれらに関連させて使用するためのプログラムを、包含、格納、または伝送できる任意の媒体であり得る。
【００１５】
本発明のオペレーションを実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および、“Ｃ”プログラミング言語または類似のプログラミング言語などの従来式手続き型プログラミング言語を含め、一つ以上のプログラミング言語の任意の組み合わせで記述することができる。また、本発明を実装するためのコンピュータ・プログラム・コードは、アセンブリ言語などの低レベルプログラミング言語で記述することも可能である。
【００１６】
本発明の実施形態による、方法、装置、システム、およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照しながら、本発明を以下に説明することとする。当然のことながら、フローチャート図もしくはブロック図またはその両方の各ブロック、および、フローチャート図もしくはブロック図またはその両方中のブロックの組み合わせは、コンピュータ・プログラム命令またはコードによって実装することが可能である。これらのコンピュータ・プログラム命令を、汎用コンピュータ、特殊用途コンピュータ、またはマシンを形成する他のプログラム可能データ処理装置のプロセッサに供給し、そのコンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能群／動作群を実装するための手段を生成するようにすることができる。
【００１７】
また、これらのコンピュータ・プログラム命令を、コンピュータまたは他のプログラム可能データ処理装置に対し、特定の仕方で機能するよう命令することができるコンピュータ可読ストレージ媒体に格納し、そのコンピュータ可読ストレージ媒体に格納された命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能／動作を実装する命令手段を包含する製造品を生成するようにすることができる。さらに、コンピュータ・プログラム命令を、コンピュータまたは他のプログラム可能データ処理装置にロードして、これらコンピュータ上、または他のプログラム可能装置上で一連のオペレーション・ステップを実行させてコンピュータに実装されるプロセスを生成し、これらコンピュータ上または他のプログラム可能装置上で実行される命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能群／動作群を実装するためのプロセスを提供するようにすることも可能である。
【００１８】
図１を参照すると、ＬＴＯまたは企業レベルのテープ・ドライブなどのテープ・ドライブに対するデータ・フロー１００を表したハイレベルのブロック図が示されている。図示のように、周期的冗長チェック（ＣＲＣ：ｃｙｃｌｉｃ  ｒｅｄｕｎｄａｎｃｙ  ｃｈｅｃｋ）モジュール１０２は、ホスト・デバイスからデータの可変長ブロックを受信する。ＣＲＣモジュール１０２は、これらのブロックにＣＲＣ情報を付加することができる。次いで、圧縮モジュール１０４がブロックを圧縮することができ、暗号化モジュール１０６が随意的にブロックを暗号化することができる。次に、データのブロックは、一定のサイズのデータ・セットに分けられ、これもまた、一定サイズのサブ・データ・セット（ＳＤＳ：ｓｕｂ  ｄａｔａ  ｓｅｔ）に分割される。各ＳＤＳは、データの二次元アレイに編成することができる。次いで、各ＳＤＳデータ・アレイは、ＥＣＣエンコーダ１０８に送られることになる。ＥＣＣエンコーダ１０８は、データ・アレイ中の各行およびデータ・アレイ中の各列に対するＥＣＣパリティを生成することができる。この行ＥＣＣパリティおよび列ＥＣＣパリティを、該アレイに付加することができる。
【００１９】
ＥＣＣパリティがアレイに付加されたならば、マルチプレクサ１１０が、データ・アレイ（列ＥＣＣパリティと行ＥＣＣパリティとを含む）中の行にヘッダを付け加える。特定の実施形態において、ヘッダは、ＣＲＣなどのエラー検出用コードを包含する。例示されたこの実施形態では、ヘッダは、前述の行または列ＥＣＣパリティによって保護されていない。他の実施形態において、行ＥＣＣパリティを計算する前に、データ・アレイにヘッダを付加することが可能である。その後で、ヘッダを含めて行ＥＣＣパリティを計算することができる。これにより、ヘッダが、ＥＣＣパリティの少なくとも一つの次元によって保護されることが確実になろう。他の実施形態において、行ＥＣＣパリティが計算された後に、ヘッダをデータ・アレイ付加することができる。その後で、ヘッダを含めて行ＥＣＣパリティを再計算することが可能である。
【００２０】
テープ・レイアウト・モジュール１１２は、磁気テープ上のＫ本の異なるトラックに亘っていろいろな順序で、ＥＣＣパリティおよびヘッダを含む拡張データ・アレイを割り振ることができる。テープ・レイアウト・モジュール１１２によって生成されたデータ・シーケンスを、ランダマイザ１１４によってさらに処理し、データに対しさらなる信号処理を行うことが可能である。さらに具体的には、ランダマイザ１１４を使って、着信データを変換し、“１”と“０”との疑似ランダム・シーケンスの出力を生成することができる。これにより、着信データからできるだけ多くの周期性を除去する。ランレングス限定（ＲＬＬ：ｒｕｎ  ｌｅｎｇｔｈ  ｌｉｍｉｔｅｄ）エンコーダ１１６は、ランダム化データ・ストリームを処理し、データ中に不要なパターン（例えば、“１”または“０”の長い連なり、または他の望ましくないパターン）が生じることを防止することができる。マルチプレクサ１１８は、可変周波数発振器（ＶＦＯ）パターン、同期信号文字などの同期化情報を、それが読み取られる際に同期できるような情報に多重化することができる。
【００２１】
次いで、得られたデータは書き込みドライバ（図示せず）に送られ、該ドライバは、記録ヘッド・エレメントに電流を貫流させて磁束を発生させ、これにより、磁気記録媒体のトラックにデータを書き込むことを可能にする。通例、マルチプレクサ１１０の右側にあるブロックまたはモジュールはそれぞれ、データを磁気レコーディングにさらに適するようにするためデータに対し各種の変換を実施する。
【００２２】
図２を参照すると、前に述べたように、同期および他の目的で、記録されたデータ中にＶＦＯパターンを挿入することができる。現行のＬＴＯおよび企業レベルのテープ・ドライブでは、ＶＦＯパターンは、４ビット周期による２Ｔ磁気レコーディング・パターンで構成され、Ｔは一記録ビットに相当する。ＮＲＺＩ表記でのＶＦＯパターンは「１０ １ ０ １ ０ １ ０…」型のシーケンスであり、“０”は記録された磁化の方向に変化のないことを表し、“１”は記録された磁化の方向の反転を表す。
【００２３】
ＲＬＬエンコーダ１１６は、リードバック処理過程において、データ・パターン内でＶＦＯパターンが誤って検出されるのを防止するため、記録データ内のＶＦＯ様の２Ｔパターンの最大長さを限定するよう設計される。これは、ノイズまたは媒体の欠陥などのエラーによってリードバック・データが破損しない限り、データ中にＶＦＯ様パターンが検出され得ないことを保証する。ただし、ＶＦＯ検出ウィンドウ内にノイズが発生した場合、該ノイズの存在下で偽ＶＦＯ検出が生ずることがある。
【００２４】
図２は、通常のランダム・データの場合、ＶＦＯパターンがどのように検出されるかを示す。図示されるように、磁気テープ５００のトラックに記録されたデータ５０４中には、ＶＦＯ様パターン５０２が生じ得る。各トラック上のデータ５０４は相互に独立しているので、ＶＦＯ様パターン５０２は、トラック沿いの方向５０８にランダムに分布することができる。これは本当のＶＦＯパターン５０６とは対照的であり、本当のパターンは、トラック沿いの方向５０８に対し意図的に整列されている。特定のトラック中に偽ＶＦＯパターンが検出されることはあり得るが、テープ・ドライブに多数決論理回路を含めて、Ｎ≦Ｋ本トラックのグループ中のＶＦＯパターンだけを検出することが可能である。この多数決論理回路は、ＶＦＯパターンが、少なくとも１＜Ｎ’＜ＮであるＮ’本のトラックが検出されたとき且つその時に限りＶＦＯ検出フラグを揚げることができる。例えば、Ｋ＝８、１６、または３２本のトラックの場合、トラックの合計数を４トラックのグループに分けることができ、４本トラックのグループの各々において、４トラック中の３トラックに同一のトラック沿い位置にＶＦＯパターンが検出された場合だけ、ＶＦＯ検出フラグを揚げるようにすることが可能である。この概念を図３に示す。
【００２５】
図２への全体的な参照を続けながら図３を参照すると、ＶＦＯ様パターン５０２が４本トラックのグループ各々のさまざまな位置で検出されているが、ＶＦＯ検出フラグは、４本のトラックで、規定数のＶＦＯ様パターン５０２が同時に現れた場合にだけ揚げられる。図３に示されるように、どの所与の時間においても一つだけのＶＦＯ様パターン５０２が現れているので、ＶＦＯ多数決回路はＶＦＯ検出フラグを揚げないことになる。これは、本当のＶＦＯパターン５０６がいくつかのトラックに亘って整列されているのと対照的である。図３に示されるように、同一のトラック沿い位置に規定数のＶＦＯパターン５０６が検出されたので、多数決論理回路はＶＦＯ検出フラグを揚げている。
【００２６】
図４を参照すると、各トラック上のデータが相互に独立している場合には多数決論理回路はうまく機能するが、ＶＦＯ様パターン５０２がテープ５００上で同時に生じた場合にはこれがうまく機能しないことがある。かかる状況は、試験データまたは他の反復性のデータ・パターンで生じ得る。かかるシナリオの一つが図４に示されている。図４に示されるように、ＶＦＯ様パターン５０２（すなわち、偽ＶＦＯパターン５０２）が複数のトラックで同時に現れている。これらのＶＦＯ様パターン５０２は、同一のトラック沿い位置に現れているので、多数決論理回路は、（図５に示されるように）ＶＦＯ検出フラグを揚げてＶＦＯパターンが検出されたことを表示する。この場合、ＶＦＯパターンが誤検出されてしまう。この例は、ＶＦＯ多数決論理回路が、同一のトラック沿い位置に現れる反復性のパターンに対する偽ＶＦＯ検出を回避できないことを示している。
【００２７】
図６を参照すると、上記で説明したような偽ＶＦＯ検出を軽減するための、テープへのデータ書き込みのための新規の改良された技法が以降に開示されている。本技法は、通常のランダム・データの場合だけでなく、反復性の試験データなど反復型のデータの場合においても、偽ＶＦＯ検出を低減または防止する。以降でさらに詳しく述べるように、本技法は、各トラックに対する入来ホスト・データが同じ場合にあっても、各トラックに対し相異なるデータ・ビット・パターンを書き込む。これは、相異なるプリセット値（すなわち、初期値）を使って、各トラックのデータ・ランダマイザ１１４を初期化することによって達成される。以降でさらに詳しく説明するが、一つの実施形態において、本技法は、図６に示すように、Ｋ個の異なるプリセット値を用いてＫ個のデータ・ランダマイザ１１４を初期化する。この技法は、本当のＶＦＯパターンが正しく検出され得るのを確実にしながら、通常のユーザ・データのみならず反復性の試験データに対する偽ＶＦＯ検出を回避する。
【００２８】
図７は、線形フィードバック・シフト・レジスタ７００のフィボナッチ実装を示す。かかる線形フィードバック・シフト・レジスタ７００は、現行のＬＴＯおよび企業レベルのテープ・ドライブのランダマイザ１１４中に使われており、本発明を実装するため用いるランダマイザ１１４中で使用することが可能である。線形フィードバック・シフト・レジスタ７００の本実装では、全ての加算および乗算は、２つの元ＧＦ（２）の、有限フィールドとしても知られるガロア域で実行される。元｛０，１｝を有するＧＦ（２）における加算演算“＋”は、モジュロ２加算（０＋０＝０，０＋１＝１，１＋０＝１，および１＋１＝０）に対応し、ＧＦ（２）における乗算演算“×”は、整数乗算（０×０＝０，０×１＝０，１×０＝０，および１×１＝１）に対応する。
【００２９】
図７中のＬビットのシフト・レジスタ７００の初期設定（すなわち、シード、プリセット値、または初期値）は、バイナリ値ａ０，ａ１，…，ａＬ−１によって表される。ＧＦ（２）の乗数の係数は、バイナリ値ｇ１，ｇ２，…，ｇＬ−１によって表される。線形フィードバック・シフト・レジスタ７００によって生成されたバイナリのシーケンスは、少なくとも一つの非ゼロ・コンポーネントを包含する任意の非ゼロ初期設定に対して生成された、シーケンスの周期が２Ｌ−１ビットであれば、それが最長周期のシーケンス（Ｍ系列）である。線形フィードバック・シフト・レジスタ７００は、多項式１＋ｇ１ｘ ＋ … ＋ｇＬ−１ｘＬ−１＋ｘＬが原始多項式の場合、Ｍ系列を生成する。図７に示された線形フィードバック・シフト・レジスタ７００によって生成されるシーケンスは、漸化式ａｎ ＝ ａｎ−１ｇＬ−１＋…＋ａｎ−Ｌ＋１ｇ１＋ａｎ−Ｌを満たす。
【００３０】
図８は、現行のＬＴＯドライブで使われているデータ・ランダマイザ１１４の一例を示す。かかるデータ・ランダマイザ１１４は、本明細書で開示する改良されたデータ書き込み技法を実装するために用いることができる。ＬＴＯテープ・ドライブ中のデータ・ランダム化は、加法スクランブリング（ａｄｄｉｔｉｖｅ  ｓｃｒａｍｂｌｉｎｇ）としても知られる同期スクランブリングに基づいており、このスクランブリングは、モジュロ２加算器（排他的ｏｒ（ＸＯＲ）論理ゲート）を使い、図７に示された回路７００などの、線形フィードバック・シフト・レジスタ回路７００によって生成された疑似ランダム・バイナリ・シーケンス（Ｍ系列）を、バイナリ入力データ・ストリーム８００に加える。ＬＴＯには、疑似ランダム・バイナリ・シーケンスの周期を２１５−１＝３２７６７ビットに制限する、１５ビットのシフト・レジスタ７００が使われている。線形フィードバック・シフト・レジスタ７００のシーケンスを定義するためＬＴＯ中で使われる原始多項式は、ｇ（ｘ）＝１＋ｘ＋ｘ１５式によって与えられる。
【００３１】
従来型のＬＴＯテープ・ドライブでは、全Ｋ本のトラックで使われるデータ・ランダマイザ１１４は、コードワード・インターリーブ（ＣＷＩ：ｃｏｄｅｗｏｒｄ  ｉｎｔｅｒｌｅａｖｅ）に先行するヘッダの開始部に、同じ値をプリセットされる。すなわち、データ・ランダマイザ１１４中の線形フィードバック・シフト・レジスタ７００の初期状態は、データが割り当てられる論理的または物理的なトラックには無関係である。ＬＴＯ中では、全Ｋ本のトラックのデータ・ランダマイザ１１４には、ＣＷＩに先行するあらゆるヘッダの開始部に同一の１５ビット値（１００００００００００００００）がプリセットされる。全Ｋ本のトラック上のヘッダは同時に記録され、このことは、それらヘッダがテープ５００上のほぼ同じトラック沿い位置に現れることを意味する。
【００３２】
ＬＴＯデータ・ランダマイザ１１４の初期設定は、１５の整数コンポーネントを有する列ベクトルａ＝［１ ０ ０ ０ ０ ０ ００ ０ ０ ０ ０ ０ ０ ０］’によって表すことが可能である。ｍクロック周期（ｍビットのシフト）後のＬＴＯランダマイザ１１４のレジスタ内容は、ＭＡＴＬＡＢ言語を使って以下のように表すことができる。
ａ＝［１ ０ ０ ０ ０ ０ ０ ０ ０ ０ ０ ０ ０ ０ ０］’；  ％  ＬＴＯの現在値
ａｇ＝ｇｆ（ａ，１）；
Ａ＝ｈｏｒｚｃａｔ（ｚｅｒｏｓ（１４，１），ｄｉａｇ（ｏｎｅｓ（１，１４）））；
Ｂ＝ｈｏｒｚｃａｔ（［１ １］，ｚｅｒｏｓ（１，１３））；
Ｑ＝ｖｅｒｔｃａｔ（Ａ，Ｂ）；
Ｑｇ＝ｇｆ（Ｑ，１）；
ｂｇ＝（Ｑｇ＾ｍ）＊ａｇ；
【００３３】
列ベクトルｂｇは、ｍ（回の）クロック周期後のランダマイザ１１４の内容を包含する。上記のＭＡＴＬＡＢコードは、ｍクロック周期によって定まる任意の所望の時間における、ＬＴＯデータ・ランダマイザ１１４のシフト・レジスタの内容を規定する。ｂｇの最初のコンポーネントはデータ・ランダマイザ１１４の出力ビット８０４を表しており、図８中のランダマイザ１１４の出力８０４は、ＭＡＴＬＡＢコードによって全面的に規定される。（図９に関連して説明するものなどの）一つの実施形態において、初期プリセット値は、ａ＝［００ ０ ０ ０ ０ ０ １ ０ ０ ０ ０ ０ ０ ０］’となるように選択される。上記に示されたＭＡＴＬＡＢコードの第一行を、このプリセット値ａに置き換えて、ｍクロック周期後のランダマイザ１１４のレジスタ内容を表すことができる。
【００３４】
特定の実施形態において、疑似ランダム・バイナリ・シーケンス中の任意の２つのプリセット値の間の最小「距離」を最大化することが望ましいことがあり、この「距離」は、シフト・レジスタの内容を一つのプリセット値から次の値にシフトするのに必要なクロック周期の回数に対応する。これは、どの２本のトラックで生成される疑似ランダム・シーケンスの間においても、Ｍクロック周期の最小シフトの最大化を確実にし得る。この最大の最小シフトＭは、ＭＡＴＬＡＢ言語を使って、次のように計算することができる。
Ｍ＝ｍａｘ（ｍｉｎ（ｍｏｄ（ｃ−ｃｉｒｃｓｈｉｆｔ（ｃ，［０ １］），２＾Ｌ−１）））
ｃ＝ｓｏｒｔ（ｍｏｄ（［０：Ｆ：（Ｋ−１）＊Ｆ］，（２＾Ｌ−１）））
前式のＦは、全ての可能なＦの値に亘って最大化を行った状態での、隣接するトラックのプリセット値の間のクロック周期の数であり、ｃは、第一トラック（トラック０）に対しクロック・シフトで付与された全プリセット値のソートされたセットである。Ｋ＝３２トラックおよびＬ＝１５レジスタに対し、最大の最小シフトＭは１０２３クロック周期である。
【実施例１】
【００３５】
Ｋ＝３２トラックおよびＬ＝１５レジスタの第一例について考えてみる。これらの値を使って、データ・ランダマイザ１１４は、反復する仕方で疑似ランダム・パターンの３２７６７ビットのシーケンスを生成することになる。すなわち、そのシーケンスの周期は３２７６７ビットである。この例において、トラック０に対するデータ・ランダマイザ１１４ａを初期化するために使われるプリセット値は、ａ＝［００ ０ ０ ０ ０ ０ １ ０ ０ ０ ０ ０ ０ ０］’である。トラック１に対するプリセット値は、トラック０のプリセット値に対して９９６バイト（すなわち９９６×８ビット）分シフトしている。これは、トラック０のプリセット値に対し、Ｆ＝７９６８クロック周期のシフトに相当する。
【００３６】
残りのトラックに対するプリセット値も、同様なやり方で計算することができ、トラックｔのプリセット値は、トラックｔ−１から７９６８クロック周期分シフトされており、ｔ＝１，２，３，…、３１である。この実施形態において、トラックｔ−１に対してトラックｔのプリセット値をシフトするのに必要なクロック周期の数は、従来式のＣＷＩ−４（ヘッダを含め、４つの交互配置されたコードワードを使ったコードワード・インターリーブ）中に包含されるビットの数に丁度対応する。ＣＷＩ−４のヘッダが１２バイトを包含し、ＣＷＩ−４のデータが４つの２４６バイトのリード・ソロモン・コードワードを含む場合、そのＣＷＩ−４は、合計（１２＋４×２４６）×８＝７９６８ビットを包含することになる。上記の実施形態において、未ソートのセットｃ（すなわち、第一トラック（トラック０）に対するクロック・シフトで表現された、全３２トラックのプリセット値の未ソートのセット）は次のように計算することができる。
ｃ＝（ｍｏｄ（［０：７９６８：３１＊７９６８］，（２＾１５−１）））＝
｛０，７９６８，１５９３６，２３９０４，３１８７２，７０７３，１５０４１，２３００９，３０９７７，６１７８，１４１４６，２２１１４，３００８２，５２８３，１３２５１，２１２１９，２９１８７，４３８８，１２３５６，２０３２４，２８２９２，３４９３，１１４６１，１９４２９，２７３９７，２５９８，１０５６６，１８５３４，２６５０２，１７０３，９６７１，１７６３９｝
【００３７】
上記に示されるように、プリセット値は、３２７６７ビットに達すると最初の値に戻る。ソートされたセットｃ（すなわち、クロック・シフトの数で編成された、全３２トラックに対するプリセット値のソートされたセット）は、次のように計算することができる。
ｃ＝ｓｏｒｔ（ｍｏｄ（［０：７９６８：３１＊７９６８］，（２＾１５−１）））  ＝
｛０，１７０３，２５９８，３４９３，４３８８，５２８３，６１７８，７０７３，７９６８，９６７１，１０５６６，１１４６１，１２３５６，１３２５１，１４１４６，１５０４１，１５９３６，１７６３９，１８５３４，１９４２９，２０３２４，２１２１９，２２１１４，２３００９，２３９０４，２６５０２，２７３９７，２８２９２，２９１８７，３００８２，３０９７７，３１８７２｝
【００３８】
上記に示されるように、連続的なトラック中に生成される疑似ランダム・パターンのブロックの連結が、Ｍ系列をもたらす。この例で生成された２つの疑似ランダム・シーケンスの間のクロック周期の最小シフトは、次のように計算することができる。
ｍｉｎ（ｍｏｄ（ｃ−ｃｉｒｃｓｈｉｆｔ（ｃ，［０  １］），２＾１５−１））＝８９５
【００３９】
しかして、プリセット値の各々の間には、少なくとも８９５クロック周期の距離が存在する。この値は、最大可能値Ｍ＝１０２３のクロック周期に近い。図９に、全３２トラックに対するプリセット値をバイナリで示す。図示のように、図８に示された線形フィードバック・シフト・レジスタ７００のサイズに対応して、各プリセット値は１５ビットを有する。
【実施例２】
【００４０】
Ｋ＝３２トラックおよびＬ＝１５レジスタの第二例を考えてみる。これらの値を使って、データ・ランダマイザ１１４は、反復する仕方で疑似ランダム・パターンの３２７６７ビットのシーケンスを生成することになる。この例において、トラック０に対するデータ・ランダマイザ１１４ａを初期化するために使われるプリセット値は、ａ＝［００ ０ ０ ０ ０ ０ １ ０ ０ ０ ０ ０ ０ ０］’である。トラック１に対するプリセット値は、トラック０のプリセット値に対して９９６ビット分シフトされる。これは、トラック０のプリセット値に対し、Ｆ＝９９６クロック周期のシフトに相当する。上記の実施形態において、未ソートのセットｃは次のように計算することができる。
ｃ＝（ｍｏｄ（［０：９９６：３１＊９９６］，（２＾１５−１）））  ＝
｛０，９９６，１９９２，２９８８，３９８４，４９８０，５９７６，６９７２，７９６８，８９６４，９９６０，１０９５６，１１９５２，１２９４８，１３９４４，１４９４０，１５９３６，１６９３２，１７９２８，１８９２４，１９９２０，２０９１６，２１９１２，２２９０８，２３９０４，２４９００，２５８９６，２６８９２，２７８８８，２８８８４，２９８８０，３０８７６｝
【００４１】
上記に示されるように、先の例よりはるかに小さなＦの値に起因して、この例の値は反復しない。しかして、これらのプリセット値は、ソーティング一切なしに、最小から最大までに順序付けられている。全３２トラックに対するプリセット値がバイナリで図１０に示されている。
【００４２】
前述の実施例中の値およびハードウェア／ソフトウェア構成は、例示目的のためだけに提示したものであり、限定を意図するものではない。これらの値もしくは構成またはその両方は、異なる実施形態においては変わり得る。例えば、線形フィードバック・シフト・レジスタ７００は１５ビットの線形フィードバック・シフト・レジスタに限られるものでなく、異なるサイズの線形フィードバック・シフト・レジスタを含み得る。また、線形フィードバック・シフト・レジスタの実装も変わり得て、それによって生成される疑似ランダム・シーケンスも変わり得る。その結果として、プリセット値およびそれらプリセット値中のビットの数も変化し得る。また、疑似ランダム・バイナリ・シーケンス中の任意の２つのプリセット値の間の「距離」も、異なる実施形態では変わり得る。しかして、前述の例では、最小距離が最大化されたが、これは必須ではなく何時でも望ましいとは限らない。したがって、プリセット値の間に、上記以外の距離または間隔を用いることができる。また、テープ・ドライブに実装されるトラックおよび関連データ・ランダマイザの数など、他の値を変えることも可能である。
【００４３】
前述した実施形態などの一部の実施形態では、Ｋ個のデータ・ランダマイザ１１４の全部が相異なるプリセット値を使ってプログラムされているが、必ずしもそうする必要はない。他の実施形態において、Ｋ個のデータ・ランダマイザ１１４の内のあるｎ個（ｎはＫより小さい整数である）は、同じプリセット値を使ってプログラムされる。前述の説明および添付の請求項は、複数（すなわち、少なくとも２個）の（並行して作動する）データ・ランダマイザ１１４が、相異なるプリセット値を使ってプログラムされる実施形態を網羅するように意図されている。テープ・ドライブの実装、およびＶＦＯパターンが検出または誤検出される様態、によって、相異なるプリセット値がいくつ必要か、そしてどのデータ・ランダマイザ１１４が同じまたは異なるプリセット値を使ってプログラムされるかが決まることになる。
【００４４】
図中のフローチャートおよびブロック図は、本発明のさまざまな実施形態による、システム、方法、およびコンピュータ可用ストレージ媒体の可能な実装のアーキテクチャ、機能、およびオペレーションを例示している。この点に関し、フローチャートまたはブロック図中の各ブロックは、規定の論理機能（群）を実装するための一つ以上の実行可能命令を含む、モジュール、セグメント、またはコードの部分を表し得る。また、一部の別の実装においては、ブロック中に記載された機能が、図に記載された順序を外れて行われ得ることに留意すべきである。例えば、連続して示された２つのブロックが、関与する機能によって実際にはほぼ同時に実行されることがあり、時にはこれらのブロックが逆の順序で実行されることもあり得る。さらに、ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方中のブロック群の組み合わせは、特定の機能または動作を実施する、専用ハードウェア・ベースのシステム、または専用ハードウェアとコンピュータ命令との組み合わせによって実装可能なことにも留意すべきである。
【図１】
2014519133.tif 000003
【図２】
2014519133.tif 000004
【図３】
2014519133.tif 000005
【図４】
2014519133.tif 000006
【図５】
2014519133.tif 000007
【図６】
2014519133.tif 000008
【図７】
2014519133.tif 000009
【図８】
2014519133.tif 000010
【図９】
2014519133.tif 000011
【図１０】
2014519133.tif 000012
【手続補正書】
【提出日】平成26年1月24日(2014.1.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データをランダム化して偽ＶＦＯ検出を軽減する方法であって、
複数の入力データ・ストリームを同時に受信するステップであって、各入力データ・ストリームは磁気テープ媒体上の相異なるトラックに関連付けられている、前記受信するステップと、
前記入力データ・ストリームを同時にスクランブルして複数のランダム化データ・ストリームを生成するステップであって、前記スクランブルするステップは、前記入力データ・ストリーム中の対応するビット・パターンが同一の場合にあっても、前記ランダム化データ・ストリーム中に相異なるビット・パターンを生成するステップを含む、前記スクランブルするステップと、
前記ランダム化データ・ストリームを、前記磁気テープ媒体上のそれぞれ関連付けられたデータ・トラックに同時に書き込むステップと、
を含む方法。
【請求項２】
前記スクランブルするステップが、複数のデータ・ランダマイザを使って前記入力データ・ストリームをスクランブルするステップを含む、請求項１に記載の方法。
【請求項３】
前記入力データ・ストリームをスクランブルする前に、前記複数のデータ・ランダマイザの各々を別々に初期化するステップをさらに含む、請求項２に記載の方法。
【請求項４】
前記複数のデータ・ランダマイザの各々が線形フィードバック・シフト・レジスタを含む、請求項２に記載の方法。
【請求項５】
前記線形フィードバック・シフト・レジスタが線形フィードバック・シフト・レジスタのフィボナッチ実装である、請求項４に記載の方法。
【請求項６】
前記入力データ・ストリームをスクランブルする前に、相異なるプリセット値を使って、前記複数のデータ・ランダマイザの前記線形フィードバック・シフト・レジスタを初期化するステップをさらに含む、請求項４に記載の方法。
【請求項７】
前記複数のデータ・ランダマイザの各々が、反復型疑似ランダム・シーケンスを生成する、請求項６に記載の方法。
【請求項８】
前記反復型疑似ランダム・シーケンスは２Ｌ−１ビットを包含し、Ｌは各線形フィードバック・シフト・レジスタ中のビットの数である、請求項７に記載の方法。
【請求項９】
前記複数のデータ・ランダマイザの前記線形フィードバック・シフト・レジスタを前記初期化するステップは、前記反復型疑似ランダム・シーケンスからの相異なるプリセット値を使って前記線形フィードバック・シフト・レジスタを初期化するステップを含む、請求項７に記載の方法。
【請求項１０】
前記複数のデータ・ランダマイザの前記プリセット値の間の最小距離を、前記反復するシーケンス内でほぼ最大化するステップをさらに含む、請求項９に記載の方法。
【請求項１１】
データをランダム化して偽ＶＦＯ検出を軽減するための装置であって、
複数の入力データ・ストリームを並行して受信するための複数のデータ・ランダマイザであって、各入力データ・ストリームおよび各データ・ランダマイザは、磁気テープ媒体上の特定のトラックと関連付けられている、前記複数のデータ・ランダマイザを含み、
前記複数のデータ・ランダマイザは、前記入力データ・ストリームをスクランブルして複数のランダム化データ・ストリームを生成するようさらに構成され、前記複数のデータ・ランダマイザは、前記入力データ・ストリーム中の対応するビット・パターンが同一の場合にあっても、前記ランダム化データ・ストリーム中に相異なるビット・パターンを生成する、
装置。
【請求項１２】
前記複数のデータ・ランダマイザの各々が構造的に同一である、請求項１１に記載の装置。
【請求項１３】
前記入力データ・ストリームをスクランブルする前に、前記複数のデータ・ランダマイザの各々が別々に初期化される、請求項１１に記載の装置。
【請求項１４】
前記複数のデータ・ランダマイザの各々が、線形フィードバック・シフト・レジスタを包含する、請求項１１に記載の装置。
【請求項１５】
各線形フィードバック・シフト・レジスタが、線形フィードバック・シフト・レジスタのフィボナッチ実装である、請求項１４に記載の装置。
【請求項１６】
前記入力データ・ストリームをスクランブルする前に、相異なるプリセット値を使って、各線形フィードバック・シフト・レジスタが初期化される、請求項１４に記載の装置。
【請求項１７】
各線形フィードバック・シフト・レジスタが、反復型疑似ランダム・シーケンスを生成する、請求項１６に記載の装置。
【請求項１８】
請求項１〜１０のいずれかに１項に記載の方法のステップをコンピュータに実行させるプログラム。
【国際調査報告】
2014519133.tif 000013
2014519133.tif 000014