(57)【特許請求の範囲】
【請求項１】
データ記憶媒体上に記憶されるべきデジタルデータストリームを誤り符号化するための装置において、
データストリーム入力端末と、
ビット挿入を実行すべきか否かを判断するため前記データストリームの内容を監視するコード監視デバイスと、
前記コード監視デバイスがビット挿入を実行すべきであると判断した後、前記データストリーム内に所定数のビットを挿入することによって、前記データストリームの内容に依存する可変量だけ前記データストリームの長さを増大させるビットインサータであって、挿入ビットの位置が前記データストリームの内容に依存するビットインサータと、を含んで成る装置。
【請求項２】
前記ビットインサータが、最大位相情報をコード化する多ビット語を挿入する、請求項１に記載の装置。
【請求項３】
前記挿入された多ビット語が最大振幅情報をも符号化する、請求項２に記載の装置。
【請求項４】
前記ビットインサータが、最大振幅情報を符号化する多ビット語を挿入する請求項１に記載の装置。
【請求項５】
前記ビットインサータが４ビット語を挿入する請求項１に記載の装置。
【請求項６】
前記デジタルデータストリームが、所定のプリアンブルシーケンスと関連する前記データ記録媒体に書込まれ、
前記コード監視デバイスが、前記デジタルデータストリームが前記プリアンブルシーケンスのサブセットを含むか否かを判断するために、前記デジタルデータストリームを監視し、
前記ビットインサータが前記プリアンブルシーケンスの前記サブセットの一方端においてビットを挿入する、請求項１に記載の装置。
【請求項７】
磁気データ記憶媒体と、
データストリーム内に所定数のビットを挿入することによって、前記データストリームの内容に依存する可変量だけ前記データストリームの長さを増大させるビットインサータであって、挿入ビットの位置が前記データストリームの内容に依存する、ビットインサータと、
を含んで成るデータ記憶デバイス。
【請求項８】
データ記憶媒体上に記憶されるべきデジタルデータストリームを誤り符号化するための方法において、
データストリームを入力する段階と、
ビット挿入を実行すべきか否かを判断するため前記データストリームの内容を監視する段階と、
前記ビット挿入を実行すべきである場合に、前記所定数のデータストリーム内にビットを挿入することにより、前記データストリームの内容に依存する可変量だけ前記データストリームの長さを増大させる段階であって、挿入ビットの位置が前記データストリームの内容に依存する段階、を含んで成る方法。
【請求項９】
前記入力データストリームを受信し、ランダム化データストリームを出力するデータのランダム化装置をさらに含み、前記ランダム化装置は、非決定論的方法により周期的に再構成され、その結果前記入力データストリームの異なる部分が、異なって構成されたランダム化装置によりランダム化される請求項７に記載のデータ記憶デバイス。
【請求項１０】
前記挿入段階は、最大位相情報をコード化する多ビット語を挿入する段階を含む、請求項８に記載の方法。
【請求項１１】
前記挿入された多ビット語がさらに最大振幅情報を符号化する、請求項１０に記載の方法。
【請求項１２】
前記挿入段階は、最大振幅情報を符号化する多ビット語を挿入する段階を含む、請求項８に記載の方法。
【請求項１３】
前記多ビット語が４ビット語から成る請求項８に記載の方法。
【請求項１４】
データ記憶媒体上に記憶されるべきデジタルデータストリームを誤り符号化するための装置において、
データストリーム入力端末と、
前記データストリーム入力端末と交信状態にあり、その出力端においてランダム化されたデータストリームを生成するべく第１のランダム化符号を用いて前記デジタルデータストリームをランダム化するランダム化装置と、
ビット挿入を実行すべきか否かを判断するため前記ランダム化装置の前記出力端を監視するコード監視デバイスと、
前記コード監視デバイスが、ビット挿入を実行すべきであると判断した時点で、前記ランダム化されたデータストリーム内にデータビットを挿入するビットインサータと、
ランダム化されたデータストリーム内への挿入数を監視する挿入カウンタと、
前記ランダム化されたデータストリーム内への挿入数が規定値を上回る場合に前記第１のランダム化符号とは異なる第２のランダム化符号を用いて前記ランダム化装置が前記デジタルデータストリームをランダム化するランダム化装置再構成デバイスと、を含んで成る装置。
【請求項１５】
前記第２のランダム化符号が前記第１のランダム化符号に対し直交している、請求項１４に記載の装置。
【請求項１６】
前記ランダム化装置再構成デバイスが、非決定論的方法に従って前記ランダム化符号を再構成する、請求項１４に記載の装置。
【請求項１７】
前記ランダム化装置再構成デバイスが、ブロック毎のベースで前記ランダム化符号を再構成する、請求項１４に記載の装置。
【請求項１８】
前記ビットインサータが各々の挿入時点で多ビットを挿入し、この多ビットは、最大位相及び振幅情報を符号化するべく選択されている、請求項１４に記載の装置。
【請求項１９】
データ記憶媒体上に記憶されるべきデジタルデータストリームを誤り符号化するための方法において、
ランダム化されたデータストリームを生成するべく第１のランダム化符号を用いて前記デジタルデータストリームをランダム化する段階と、
ビット挿入が実行されるべきか否かを判断するべく前記ランダム化されたデータストリームを監視する段階と、
ビット挿入が実行されるべきであることが判断された時点で、前記ランダム化されたデータストリーム内にデータビットを挿入する段階と、
ランダム化されたデータストリーム内への挿入の数を監視する段階と、
前記ランダム化されたデータストリーム内への挿入の数が規定の値を上回った時点で前記第１のランダム化符号とは異なる第２のランダム化符号を用いて前記デジタルデータストリームをランダム化する段階と、を含んで成る方法。
【請求項２０】
第２のランダム化符号を用いて前記デジタルデータストリームをランダム化する前記段階が、非決定論的方法に従って前記第２のランダム化符号を選択する請求項１９に記載の方法。
【請求項２１】
第２のランダム化符号を用いて前記デジタルデータストリームをランダム化する前記段階が、ブロック毎のベースで実行され得る、請求項１９に記載の方法。
【請求項２２】
前記ランダム化されたデータストリーム内にデータビットを挿入する前記段階が、各々の挿入行為の時点で多ビットを挿入し、前記多ビットは最大位相及び振幅情報を符号化するように選択されている、請求項１９に記載の方法。
【請求項２３】
データの一部分をランダム化する段階と、
予め定められた条件下で前記データの前記部分を再ランダム化する段階と、を含んで成る、請求項８に記載の方法。
【請求項２４】
データ記憶媒体上に記憶されるべきデジタルデータストリームを符号化するための装置において、
第１のランダム化されたデータストリームを生成するべく第１のランダム化符号を用いて前記デジタルデータストリームをランダム化するための手段と、
ビット挿入を実行すべき前記データストリーム内の場所を判断するための手段と、
前記ランダム化されたデータストリーム上で実行されるべきビット挿入の数を監視するための手段と、
前記第１のランダム化されたデータストリームへのビット挿入の数が規定値を上回った時点で、前記第１のランダム化符号とは異なる第２のランダム化符号を用いて前記データストリームをランダム化するための手段と、を含んで成る装置。
【請求項２５】
第１のランダム化符号を用いて前記データの第１の部分をランダム化する段階と、
第２のランダム化符号を非決定論的に選択する段階と、
前記第２のランダム化符号で前記データの第２の部分をランダム化する段階と、を含んで成る請求項８に記載の方法。
【請求項２６】
前記データの前記第２の部分と関連して前記第２のランダム化符号を記憶する段階をさらに含んで成る請求項２５に記載の方法。
【請求項２７】
第１のランダム化されたデータストリームを生成するべく第１のランダム化符号を用いて前記デジタルデータストリームの第１の部分をランダム化するための手段と、
第２のランダム化符号を非決定論的に選択するための手段と、
第２のランダム化されたデータストリームを生成するべく前記第２のランダム化符号を用いて前記デジタルデータストリームの第２の部分をランダム化するための手段と、
データ記憶媒体上に前記第１及び第２のランダム化されたデータストリームを記憶するための手段と、
を含んで成る請求項１に記載の装置。
【発明の詳細な説明】
発明の背景
発明の分野
本発明は、磁気又はその他のデータ記憶媒体上に記憶するためのデータを符号化するシステム及び方法、特に可変速度ビット挿入コード化システム及び方法に関する。
関連技術の説明
可変速度ビット挿入技術は、データストリームを、その中に存在する可能性のある検出誤りに対し頑強なものにするための方法として周知のものである。一般的には、この方法は、通信の分野において利用されるが、当該技術分野において周知のように、可変速度ビット挿入はその他の利用分野においても用いられている。この技術に従うと、データストリームのうちデータビットを精確に検出する上で誤りが発生する確率が増大する選択された部分の中に、データビットが挿入される。例えば、受信復号器が自己クロックされている通信システム内では、可変速度ビット挿入を使用することができる。検出器側のフェーズロックドループが、データが伝送されつつあるクロック速度においてフェーズロックを消失しないように、１又はゼロの長いストリングが分割されることが重要である。このことは、例えば磁気テープからの読取りが関与している利用分野において特に重要である。なぜなら、テープ記憶媒体は一般的に、きわめて不確かな速度プロフィールを有しておりそのため、フェーズロックを維持するためには頻繁なクロック情報が好ましい。かくして、読取り又は受信側でフェーズロックを維持することが望ましいような利用分野においては、データビットは、出力データストリーム内の「障害領域」の中に意図的に挿入されるので、このデータ信号について精確なフェーズロックを維持するように受信されたデータ信号内に充分な情報が存在し、検出器側では、データストリームが適切に復号される。
可変速度ビット挿入方法は、誤りに対するデータの頑強さを増大する安価でかつかなり単純な方法として望ましいものであるものの、このような方法は一般的にその他の利用分野では非実用的であることがわかっている。最も顕著には、可変速度ビット挿入は、磁気記録環境への適用には制限があった。磁気記録は一般的にテープ又はディスク上への記憶を含むが、これらはまず最初に磁気テープ又はディスクにデータが記憶されその後読み戻される。データの頑強な記憶を提供するためには、磁気媒体に対する書込みの前にデータを符号化するために可変速度ビット挿入が使用され得、データが読み戻される時に、挿入されたビットは検出され廃棄される。しかしながら、挿入されるべきビットの実際の数は予測が非常に難しいものであることから、挿入されたビット数がデータストリームの長さを10〜12パーセントも拡張することになる可能性がある。データストリームのこのような拡張は、特にデータ記憶効率を最大限にすることが望ましい場合、データを記憶する目的に対しては受容し難いことである。例えば、特定のデータストリームが、10ビット毎に１回のビット挿入が要求されるような特性を有する場合、磁気媒体上に記憶されるべきデータの量は10パーセントだけ増大することになる。このことは、500メガバイトの記憶媒体を事実上450メガバイトの記憶媒体にする。
可変速度ビット挿入を受け入れ可能な形態へデータストリームを変換しようとして、入力データストリームはまず最初に、例えば、擬似ランダム雑音符号を用いて、ランダム化される。擬似ランダム雑音符号は、入力データストリームと排他的論理和され、結果として得られる出力にランダムな又は擬似ランダムな性格を与える。このランダムな特性は、データストリームが例えば１パーセントより大きく拡張される確率が統計的に無視できる程度のものであることを保証する。これは、一般的に、規則的なパターンを分割するためにビット挿入が行なわれ、実質的にランダムなパターンはきわめてわずかなビット挿入しか必要としないからである。かくして、可変速度ビット挿入技術を適用する前にデータをランダム化することにより、磁気又はその他のデータ記憶媒体上へのデータ記憶を含む利用分野においてより容易に適用することが可能となる。
しかしながら、或る種の場合においては、入力データパターンが、擬似雑音コード（すなわちランダム化多項式）と相関関係をもつ特性を有し、望ましくない符号化された特性（例えば１又はゼロの長いストリング、又はその他の冗長なパターン）を生成するような場合、その特定のランダム化多項式を用いたデータストリームのランダム化は、挿入されたデータビットの長さが極端に長くなるのを防ぐようには作用しない。この特性をもつデータストリームは、標準的に退化パターンと呼ばれる。かくして、入力データストリームが退化性であるとき、可変速度ビット挿入技術は、磁気記憶又はその他のデータ記憶媒体で使用するには実用的でない。その上、単純にこのような退化データパターンの可能性は一般にデータ記憶環境内での可変速度ビット挿入の使用に対する障害としてみなされてきた。
データ記憶の利用分野における可変速度ビット挿入がもつ上述の欠点の他に、可変速度ビット挿入の従来の技術によって、位相情報の消失及び自動利得制御に付随する受信側の誤りが低減されることは常に確実というわけではない。例えば、検出されたデータストリームが、長時間にわたり振幅中の最大の振れが観測されない特性を有している場合、これは検出側の自動利得制御にトラッキングを消失させ、検出された信号内に振幅誤りを導入する。さらに、ゼロ及び１の連続的ストリング以外のデータパターンから、フェーズロックの消失が結果としてもたらされる可能性がある。従って、単にゼロ及び１の長いストリング内に１ビットを挿入するだけでは、復号側の自己クロックシステム内でフェーズロックを確実に維持することはできない。かくして、データ記憶の利用分野において可変速度ビット挿入に付随する問題点を解決し、自動利得制御又はフェーズロッククループの誤較正に付随する受信側の誤りをも説明するような改良型のデータ符号化方法に対する必要性が存在する。
発明の要約
本発明の好ましい実施形態の教示に従ったデータ符号化のシステム及び方法は、データ記憶の利用分野における可変速度ビット挿入に付随する上述の欠点を低減する。本発明によれば、可変速度ビット挿入技術の間に単一のデータビットを挿入するのではなく、最大位相及び振幅情報を符号化する多ビットがデータストリーム内に挿入され、かくして、フェーズロックを維持するため及び読取り動作中に、自動利得制御を適切に較正するために必要な情報が、記録されたデータストリーム内に常に存在することになる。本発明の特に有利な実施形態に従うと、データストリームの「障害領域」を検出する毎に、４つのデータビットが挿入される。
好ましい一実施形態においては、可変速度ビット挿入の方法は、特定の擬似ランダムのランダム化符号が退化データパターンを生成することが確認された場合にランダム化多項式が再度初期化されてランダム化装置が再構成されることになるように、構成可能なランダム化装置と組合せられる。１つの擬似雑音コードが退化パターンを生成する場合、例えば同じ族のもののようなそれに対し直交するもう１つのコードは、退化データパターンという結果をもたらすことはない。かくして、好ましい実施形態においては、直交コードに対するランダム化装置の再構成は、ランダム化装置によって退化データパターンが生成されないことを確実にする。
本発明のこの態様の特に有利な実施形態においては、ランダム化多項式は、ランダム化装置の再構成が容易に予測できないように非決定論的方法に従って再度初期化される。本発明の好ましい実施形態のこの態様は、退化データパターンの生成の意図を持って特定的に設計されるデータストリームに対抗する。
本発明のもう１つの態様に従うと、ランダム化装置の構成は、ランダム化装置の構成が「実行中に（オンザフライ）」変更され得るようにブロック毎のベースで変えられる能力をもつ。
【図面の簡単な説明】
図１ａ及び１ｂは、それぞれデータ記憶媒体上に記憶されるべきデータを符号化し、データ記憶媒体から読取られるデータを復号するための、データ符号器及びデータ復号器システムの実施例を示す、全体的システムダイヤグラムである。
図２は、図１ａのランダム化装置／ビット挿入符号器の主要機能要素を例示する単純化されたブロックダイヤグラムである。
図３は、図１ｂのランダム化解除装置／ビット抽出復号器の主要機能要素を例示する単純化されたブロックダイヤグラムである。
図４は、本発明の可変速度コード化方法に従ってデータビットパターンを挿入するのに用いられる一般的方法を例示する流れ図である。
図５は、図４のゼロ計量（メトリック）サブルーチンブロック内のゼロ計量を決定するのに用いられる副方法を例示する流れ図である。
図６は、図４の利得制御計量サブルーチンブロック内の自動利得制御計量を決定するため本発明に従って使用される一般的方法を例示する流れ図である。
図７は、図４の位相計量サブルーチンブロック内の位相計量を決定するため本発明に従って使用される方法を例示する流れ図である。
図８は、入力データストリーム内に適切なビットパターンを選択し挿入するべく図４の挿入ビットパターンサブルーチンブロック内で使用される副方法を例示する流れ図である。
図９は、データを磁気ディスクに記憶しなくてはならない場合に、ランダム化多項式を再構成するため本発明に従って用いられる一般的方法を例示する流れ図である。
図10は、書込まれるデータ記憶媒体が磁気テープである場合、ランダム化多項式を再構成するため本発明に従って使用される全体的方法を例示する流れ図である。
図11は、本発明の１つの好ましい実施形態内のデータブロックの書式を概略的に例示する。
図12〜12ｄは、ゼロ、位相、及び自動利得制御の計量を決定するため読取りヘッドインパルス応答をシミュレートする畳込み符号器内で使用される方法を概略的に示している。
好ましい実施形態の詳細な説明
図１ａは、データ記憶媒体への記憶のためデータ入力ストリームの符号化に使用されるデータ符号器システムを例示する非常に単純化された概略的ブロックタイヤグラムである。図１ａに描かれているように、システム100は、共有メモリ資源内外へのデータの流れを管理する直接メモリアクセス（DMA）チャンネル102からデータ入力ストリームを受信するリード−ソロモン符号器105を内含している。リード−ソロモン符号化は、当該技術分野において周知のものであり、ここでは詳細に記述しない。さらに、当該技術分野において通常の知識を有する者であれば、データ入力ストリームがリード−ソロモン符号器によって符号化される必要がないということも理解できるだろう。実際には、特定の利用分野により要求されるように、図１ａのシステム内では、トレリス符号化、畳込み符号化などといったその他の形の誤り符号化が使用され得る。データがリード−ソロモン符号器105内でひとたびリード−ソロモン符号化されたならば、そのデータはブロックインタリーブ装置110内でブロックインタリーブされる。当該技術分野において周知の通り、ブロックインタリーブ装置は一般的に、データストリームが行により入力され、列により読み出されるような１つの行列を具備している。符号化されたデータをブロックインタリーブすることにより、ディープフェード（すなわち長い一連のデータがレイリーフェーディング効果のために消失する期間）の間に発生する誤りは、データ入力ストリームのより大きい部分中のより小さな部分の中に分配され、そのため一定の与えられた任意の領域内で、データ内の誤りを回収できる確率がより高くなる。データがひとたびブロックインタリーブされたならば、データは、ランダム化装置／ビット挿入符号器115の中に入力される。本発明の好ましい実施形態に従うと、カスタムのランダム化装置／ビット挿入符号器115は、構成可能な擬似雑音コードで入力データストリームをランダム化し、その後、復号側での自動利得制御（AGC）回路上の較正又はフェーズロックの消失といったような周知の検出誤りに対して、ランダム化されたデータストリームを頑強にするために必要に応じてデータビットパターンを挿入する。ランダム化装置／ビット挿入符号器115については、図２を参照しながら以下でより詳細に記述される。
データがひとたびランダム化され、ビット挿入が適切な「障害スポット」において実行されたならば、データは、磁気ディスク、磁気記憶テープなどを含むと考えられるデータ記憶媒体125の上に記憶される。ブロックインタリーブ装置110及びランダム化装置／ビット挿入符号器115は、両方共マイクロコントローラ120の制御下で作動する。
図１ｂは、図１ａを参照して記述されたシステム及び方法によってデータがコード化されている場合に、データ記憶媒体125上に記憶されたデータを復号するために用いられるシステム例を示すきわめて簡略化されたブロックダイヤグラムである。図１ｂに示されている通り、データ記憶媒体125から読取られたデータは、ランダム化解除装置／ビット抽出復号器130の中に送り込まれる。ランダム化解除装置／ビット抽出復号器130については、図３を参照しながら以下でさらに詳しく記述する。ランダム化解除装置／ビット抽出復号器130は、基本的に、ランダム化装置／ビット挿入符号器115内で行なわれるランダム化及びビット挿入プロセスを逆にするように作用する。すなわち、復号器130は、符号器115内に挿入されたデータビットパターンを検出し、抽出し、廃棄し、その後、ランダム化装置／ビット挿入符号器115に入力されたもとのデータストリームを得るため、データをランダム化解除する。
その後、ランダム化解除装置／ビット抽出器復号器130の出力は、ブロックインタリーブ装置135に供給され、このブロックインタリーブ装置は、当該技術分野においても充分に理解されているように、インタリーブされたブロックをもとの順序に再度順序付けする。ブロックインタリーブ解除装置135内でデータがインタリーブ解除された後、このデータは、リード−ソロモン復号器145内に送り込まれる。リード−ソロモン復号器145は、出力データストリーム内で誤りを検出し訂正するように作用する。データがひとたびリード−ソロモン復号されたならば、リード−ソロモン復号器145からの出力データストリームは、データ記憶媒体125上に記憶するため当初リード−ソロモン符号器105に入力されたデータストリームの再構成でなくてはならない。DMAチャンネル147が、適切なメモリ資源に対しデータの流れを導く。ランダム化解除装置／ビット抽出器復号器130、ブロックインタリーブ解除装置135及びリード−ソロモン復号器145は全て、１実施形態においてマイクロコントローラ120と同じマイクロプロセッサとして実現され得るマイクロコントローラ140の制御下にある。
好ましい実施態様においては、マイクロコントローラ120，140は符号器115及び復号器130を有効化／無効化する。さらに、マイクロコントローラは、復号器130から誤り状態（例えばCRC誤り、挿入抽出誤りなど）を監視する。マイクロコントローラはさらに過度の挿入について符号器115を監視し、符号器115及び復号器130のため適正なランダム化装置のシードを提供する。さらに、マイクロコントローラは、リード−ソロモン復号器についてのアドレス情報を示す各ブロックのためのヘッダバイト及び復号のために必要とされるランダム化装置シードを作成する。マイクロコントローラはさらに、リードアフタライト誤りが検出された時には、リライトを呼び出す。最後に、マイクロコントローラは、当該技術分野において充分理解されているとおり、リード−ソロモン符号器／復号器の能力を超えた時点で、リードリトライを呼び出す。マイクロコントローラ120，140の主要な動作の各々について以下でさらに詳細に記述する。
図２は、図１ａのランダム化装置／ビット挿入符号器115の主要機能要素を例示する概略的ブロックダイヤグラムである。図２に示されているように、ブロックインタリーブ装置110により提供されるデータパターン入力がランダム化装置200に入る。好ましい１実施形態においては、ランダム化装置200は、第１の入力端で入力データパターンを受信しかつ擬似雑音コード発生器205から第２の入力端を介して第２の入力端上で擬似ランダム雑音コードを受信する排他的論理和ゲートを含んで成る。以下でより詳細に記述する通り、擬似雑音コード発生器205は、以下でより詳細に記述するランダム化多項式によって規定されるシフトレジスタ及び加算器の構成を含んで成る。当然のことながら、線形フィードバックシフトレジスタ（LFSR）を用いたデータのランダム化はよく知られているもので従来通りのものであるということがわかるだろう。擬似雑音コード発生器レジスタの入力値を再度初期化することにより、発生器205により生成された擬似雑音コードを再構成することができ、かくして、擬似雑音コードを実行中に（例えばデータブロックの間で）容易に変更することが可能となる。
ランダム化装置200の出力は、ビットパターンインサータ210ならびにコード計量フォロワ215に送り込まれる。コード計量フォロワ215は、それ自体ビットパターンインサータ210ならびにビット挿入しきい値検出器225に対する入力を提供する挿入カウンタ220に入力を提供する。ビット挿入しきい値検出器225は、それ自体擬似雑音コード発生器205に対して制御信号を提供する主マイクロコントローラ120に対して状態信号を提供する。
ビットパターンインサータ210の出力はデータ記憶媒体に提供される。図２に示されているようにこの媒体には、磁気テープ230又は磁気ディスク235が含まれる可能性がある。当該技術分野において通常の知識を有する者によれば、ビットパターンインサータ210が一般的にはデータ記憶媒体230，235のうちのいずれか一方に接続され、同時に両方には接続されないということがわかるだろう。
動作中、インタリーブ装置110からのデータパターンは、基本的にランダムなデータパターン分布でライン206上に出力データパターンを生成する。以上で簡単に説明した通り、基本的にランダムな特性（すなわちデータ分布）をもつデータパターンは統計的に理想的なもので、復号誤りの確率を増大させる冗長なパターンを分割するように挿入されなくてはならないデータビットの数を最小限にする。
ライン206上のランダム化された出力は、ランダム化されたデータストリームが復号誤りの確率を最小限にするべく本発明に従って規定された３つの別々の計量基準を満たすか否かを決定するコード計量フォロワ215によって検出される。コード計量フォロワ215の動作については、図４〜７を参照しながら以下でさらに詳細に説明する。
ライン206に沿ってランダム化装置データストリーム内にビットパターンが挿入されるべきであることをコード計量フォロワ215が決定した場合、挿入カウンタ220が増分され、ビットパターンインサータ210により適切なビットパターンが挿入される。好ましい１実施形態においては、挿入されたビットパターンは４ビットワードを含んでいるが、特定の利用分野によって要求されるように、実際には、単一ビット又は代替的には多ビットワード（すなわち２つ、３つまたはそれ以上のビットを有するもの）を挿入することも可能である。適切なビットパターンを挿入するためにビットパターンインサータ210によって利用される方法については、以下で図４及び８を参照しながらより詳細に記述する。ビットパターンがひとたび挿入されたならば、データストリームは、永久記憶のために記憶媒体を通過する。例えば、データストリームを、テープ230又は磁気ディスク235に書込むことも可能である。
挿入カウンタ220は、ビットパターンインサータ210により出力されたデータストリームの中に挿入されるビットパターンの数を記録する。挿入検出器225内で過度に多い挿入が検出された場合、これはマイクロコントローラ120に対し伝送される１つの信号を発生する。マイクロコントローラ120は、発生器205によって出力された擬似雑音コードを再構成するため、擬似雑音コード発生器205を制御する。マイクロコントローラ120が、擬似雑音コード発生器205により出力された擬似雑音コードを修正する方法は、以下で図９及び10を参照しながらさらに詳細に記述される。
テープ又はディスクのいずれかに書込まれたデータは符号化され得る。データが磁気ディスク235にデータが書込まれていくにつれて、セクタに書込まれるデータの可変速度符号化に起因してディスクセクタサイズを超過した場合、ブロックはセクタの終りで打ち切られ、セクタは、異なるランダム化コード（すなわちシード）を用いてランダム化された同じデータで上書きされる。
この要領で、記憶されるべきデータストリーム上で行なわれるビット挿入の回数を低減するべくデータパターンをランダム化させることができるばかりでなく、実行中にランダム化コードを再構成することもできるので、もとのランダム化コードが許容可能量より少ないビット挿入回数を生成するのに不十分である場合に、その後に続くランダム化コードが磁気媒体上での記憶のための許容限度内にあるビット挿入頻度をもたらすことになるようにすることもできる。
図３は、図１ｂのランダム化解除装置／ビット抽出器復号器130の主要機能要素を例示する概略的ブロックダイヤグラムである。図３に示されているように、テープ230又はディスク235といったようなデータ記憶媒体は、コード計量フォロワ310による監視のため適切なレベルに入力データストリームの振幅を自動的に調整する自動利得制御回路305内にデータを入力する。磁気媒体に書込まれたデジタルビットストリームにAGC回路305のアナログ信号出力を復元するためにアナログ−デジタル変換ハードウェア307が用いられる。コード計量フォロワ310は、図２のコード計量フォロワ215と実質的に同じ要領で作動する。コード計量フォロワ310は、Ａ／Ｄ変換器回路307により出力されたデータストリームを受信し、抽出カウンタ315ならびに主マイクロコントローラ120に対する指令信号を生成する。主マイクロコントローラ120に対する入力は、マイクロコントローラ120に対して、データストリーム内で検出された特定のビットパターンがデータの元のビットパターンではなく挿入されたビットパターンに対応しているという指示を与える。復号器内のコード計量フォロワ310が１つの挿入を含むパターンを検出した時点で、抽出カウンタ315は通知を受ける。抽出カウンタ315は挿入されたデータビットを除去し、同時に、図８を参照しながら以下で記述する通り、先行する２つの復号されたビットの極性に基づいて抽出されたビットが正しい極性であることを確認する。極性が正しくない場合、マイクロコントローラ140に情報提供するべく誤り状態信号が生成される。
ビットパターン抽出器３２０は、巡回冗長コード（CRC）検査回路325を通してデータストリームを出力する。CRC検査回路325は、適切なビットがデータストリームから抽出されたことを確認し、誤りが検出された場合、マイクロコントローラ120に対して１つの信号を出力する。CRC検査回路325により誤りが検出された時点で、ブロックは、消去としてフラグが立てられる。その後のリード−ソロモン復号器145において、消去としてタグがつけられたデータは、リード−ソロモン復号器145により提供される訂正能力を用いて再構築される。当該技術分野において周知の通り、リード−ソロモンコード化は、誤り検出ならびに訂正の両方が可能である。検出数に対する訂正数の割合は、望まれる利用分野に応じて変動し得る。本発明の好ましい実施形態においては、リード−ソロモン符号器／復号器は、訂正の最大数を実行するように（すなわち検出されたものと同数の誤りを訂正するように）セットされる。これは、誤りの検出が有利にもCRCを用いて実行されるからである。訂正できる以上の誤りが検出された場合には、マイクロコントローラ140はデータの再伝送を要求する。データがCRC検査回路325によりひとたび検査されたならば、データは、ランダム化解除装置回路330（有利な実施形態では排他的論理和ゲートを含む）及び擬似雑音コード発生器325を介して適切な擬似雑音コードで再び排他的論理和が計算される。擬似雑音コード発生器335は、ランダム化解除装置330を介して一定の与えられたデータブロックを復号するためにどの擬似雑音コードが使用されるべきかを指示する命令を、マイクロコントローラ120から受信する。当該技術分野において充分に理解されているように、ランダム化解除のためにどのコードを使用すべきかに関する情報は、一般的に可変コードではなくむしろ固定コードを用いてランダム化されるデータブロックのヘッダ部分から得られる。従って、テープ230又はディスク235への記憶のために当初書込まれたのと同じデータパターンが排他的論理和ゲート330の出力端で複製され、さらなる処理のためブロックインタリーブ解除装置135（図16参照）まで転送される。
図４は、本発明の可変速度符号化方法に従ってデータパターンを挿入するため、本発明に従って使用される一般的方法を例示する流れ図である。図４に描かれているように、この方法は、開始ブロック400により開始し、それぞれゼロ計量（メトリック）、位相計量、自動利得制御（AGC）計量及びプリアンブルパターン計量を決定するべく、並行処理するため４つの計量サブルーチンブロック410，420，430，435に入る。
サブルーチンブロック410内で決定されたゼロ計量は、データストリーム内で検出された（一般にゼロパターンと呼ばれる）連続的ゼロの尺度として用いられる。以上で簡単に説明した通り、長時間にわたりデータストリーム内でゼロパターンが持続するとき、誤りが発生しやすくなるので復号に対し有害となる。かくして、サブルーチンブロック410はゼロパターンの長さを表にして、ゼロパターンを表わす計量値又はフラグを出力する。ゼロ計量を決定するためサブルーチンブロック410内で用いられる方法について、以下で、図５を参照しながらさらに詳細に記述する。
サブルーチンブロック420内に表示されているように、入力データストリームの位相計量が決定される。位相計量は、データストリームの位相内容を示すものである。以上で簡単に論述した通り、データ復号は振幅だけでなく位相にも基づくことからデータストリームが適切な位相内容を内含していることが重要である。したがって、位相復号器が充分に再較正できないほどに入力データ信号の位相内容が小さい場合、復号器は較正を消失する可能性がある。これは、結果として位相復号器によって不正確な位相測定が行われることになり得る。従って入力データストリームの位相内容の尺度として、サブルーチンブロック420は位相計量値を出力する。サブルーチンブロック420内で利用される方法については、図７を参照しながら以下でさらに詳しく記述する。
サブルーチンブロック430内で表わされているように、自動利得制御（AGC）計量が決定される。読取り信号がＡ／Ｄ変換器307（図３）に入力されるべき振幅を正確に決定する目的で、自動利得制御回路305は、磁気媒体からのデータストリームを適切なレベルまで増幅しなくてはならない。しかしながら、このAGC回路305は時として再較正を必要とする。この再較正は、信号が持つはずである利得振幅を決定するための信号の振幅の変動によって左右される。かくして、AGC回路305が適切な間隔で再較正できるようにデータパターンの読取り中に信号が時々により最大振幅変動を受けることがきわめて有利である。従って、規定の間隔内で最大振幅変動が発生しなかったという判断がサブルーチンブロック430内で下された場合、AGCフラグ又は最大振幅変動からどれ程の時間が経ったかを示す測定値が、サブルーチンブロック430により出力される。AGC計量を決定するためサブルーチンブロック430内で利用される方法については、以下で図６を参照しながらより詳細に記述する。
本発明の特に有利な一実施形態においては、コードフォロワ215は、プリアンブルフィールドの外でプリアンブルパターンが複製されないことを確実にするためデータブロックのヘッダ及びデータフィールド部分を監視するために構成される。プリアンブルパターンについての監視は、サブルーチンブロック435内で実行される。どこかでプリアンブルの任意の14ビット部分が複製されたことが見極められた場合、ビットインサータにこの14ビットシーケンスの終りに単一ビットを挿入させるようなフラグがセットされる。この場合、挿入されるビットは、最後から２番目の符号化されたビットと同じとなるように選ばれ、かくして、ブロックのデータフィールド又はヘッドの中にプリアンブルシーケンスが記録されないようにする。
サブルーチンブロック410，420，430，435内で決定された計量は、ゼロ、位相又はAGC計量のうちのいずれか１つを超過したか否かを見極める判断ブロック440に対する入力として作用する。有利な一実施形態においては、サブルーチンブロック410，420，430，435は、単に、計量しきい値を超えたことを示すためフラグをセットする。いずれか１つの計量が超えた場合、サブルーチンブロック450（図８参照）内に表わされているように「障害スポット」を補償するため、データストリーム内に１つのビットパターンが挿入される。しかしながら判断ブロック440内で、計量が超えなかったことが判断された場合、方法はサブルーチンブロック410，420，430，435の入力まで戻る。適切な計量値は、新しいデータブロックの始めにリセットされる。
図５は、図４のゼロ計量サブルーチンブロック内でゼロ計量を決定するのに用いられる副方法の流れ図を例示する。この副方法は、開始ブロック500内に表わされている通りに始まり、図12のレジスタ実行型インパルス応答シミュレータのレジスタＲ3内に記憶された値が０に等しいか否かの判断がなされる。図12〜12ｄを参照しながら以下でより詳しく記述する通り、磁気記憶媒体からデータを読みとるために用いられる読取りヘッドのインパルス応答が、ゼロ、位相及びAGC計量を見積る手段としてシミュレートされる。レジスタＲ3内に含まれている値は、ゼロパターンの持続時間を表わすもので、ゼロパターンを分割するためにビットパターンが挿入されなければならないか否かを決定するために、レジスタＲ3内に含まれた値が使用され得る。
判断ブロック505内に表わされているように、レジスタＲ3内に含まれた値が０に等しいことが判断された場合、動作ブロック510内で表わされている通りカウンタ（すなわちＲ3カウンタ）が増分される。しかしながら、レジスタＲ3内に記憶された値が０に等しくないことが判断ブロック505内で判断された場合、動作ブロック515内で表わされている通り、Ｒ3カウンタは０にクリアされ、判断ブロック505に戻る。
Ｒ3カウンタがひとたび増分されたならば、判断ブロック520内に表わされているように、Ｒ3カウンタ内に記憶された値が10に等しいか否かを判断するため、さらなるテストが実行される。Ｒ3カウンタ内に記憶された値がまだ10に等しくない場合、これは、ゼロパターンが、ビットパターンの挿入に値するほど充分に長いものでないことを意味する。しかしながら、Ｒ3カウンタ内に記憶された値が10に等しいことが確認された場合、これはすなわち、ゼロパターンを分割するのに１つのビットパターンの挿入を必要とするほどの充分な長さを、そのゼロパターンが有していることを表わしている。かくして、Ｒ3カウンタ内に記憶された値が10未満である場合、判断ブロック505に戻る。しかしながら、Ｒ3カウンタ内に記憶された値が10に等しい場合、動作ブロック525内に表わされているように、ビットパターンインサータ210によりビットパターンが挿入されるべきであることを表わすため、ゼロ計量フラグがセットされる。動作ブロック525内で表わされているように、ひとたびゼロ計量フラグがセットされたならば、これは、挿入が行なわれることになるということを表わしている。その後、挿入されたビットパターンが検出されたときには、Ｒ3を非ゼロ値にセットすることになるので、Ｒ3カウンタは、自動的にゼロにクリアされることになる。そして、レジスタＲ3内に記憶された値を監視するために復帰する。
図６は、図４の利得制御計量サブルーチンブロック内で自動利得制御計量を決定するべく本発明に従って用いられる一般的方法を例示する流れ図である。この方法は、開始ブロック600内で表わされている通りに始まり、判断ブロック605内で表わされている通りレジスタＲ3内に記憶された絶対値が２に等しくないか否かを決定するべくテストが実行される。以下でより詳しく記述する通り、レジスタＲ3内に記憶される値は、読取り振幅の尺度として使用され得る。従って、レジスタＲ3の絶対値が２に等しくない場合、これは、読取り振幅が正又は負の方向に最大の変動を示さなかったということを表わしている。従って、自動利得制御回路により最大振幅変動が観察されていないことから、自動利得制御が正確に較正できないおそれがある。このような理由から、図６の方法は、最大振幅変動の間で発生するクロックサイクルの数を保持する。これを達成するため、動作ブロック610内で表わされているように、自動利得制御カウンタが増分される。しかしながら、判断ブロック605内でレジスタＲ3内に記憶された絶対値が２に等しいということが判断された場合には、これは、動作ブロック615内で表わされている通り、AGC回路により最大振幅変動が観察され、そのためAGCカウンタは０にクリアされるということを表わしている。動作ブロック615から、方法は判断ブロック605まで戻り、ここで読取り振幅は再び監視される。
動作ブロック610内で表わされている通り、AGCカウンタがひとたび増分されたならば、判断ブロック620内で表わされているように、AGCカウンタが60という値まで増分されたか否かの決定が下される。AGCカウンタ内に記憶された60という値は、最後の最大振幅変動以降60クロックサイクルが発生したことを表わしており、このクロックサイクル数は自動利得制御回路を再度較正する目的で適切なビットパターンを挿入するのに適切な数であることが見い出された。かくして、図６に描かれているように、AGCカウンタが60という値まで増分した場合、AGC計量フラグは、動作ブロック625内で表わされているように、適切なビットパターンが挿入されるべきであることを指示するためAGC計量フラグがセットされる。AGCカウンタが60という値までまだ増分されていない場合、フロー、レジスタＲ3内で記憶された値を介して読取り振幅変動を監視し続けるために判断ブロック605まで戻る。
図８を参照しながら以下でさらに詳しく記述するように、動作ブロック625内で表わされているように、データストリーム内にどのビットパターンが挿入されることになるかを決定するため、挿入されたビットパターンに先立つデータストリーム内の２つのビットが監視され、入力ビットパターンとデータストリーム内の先行する２データビットの組合せによって最大振幅変動を生成するように共に動作することを確実にするため１つのビットパターンが選択される。AGCゼロ計量フラグがひとたびセットされたならば、これは、動作ブロック615内で表わされているように、その後AGCカウンタを０にクリアすることになるビットパターンの挿入をひき起こすことになる。その一方、シミュレートされた読取り振幅の監視が再開される。
図７は、図４の位相計量サブルーチンブロック内の位相計量を決定するため、本発明に従って使用される方法を例示する流れ図である。この方法は、開始ブロック700内で表わされている通りに開始し、動作ブロック705内で表わされているように、図12のレジスタＲ5及びＲ3の中に記憶された値の間の差の絶対値が計算される。
その後、動作ブロック705内で計算された値は、動作ブロック710内で表わされている通り、加重平均値へと変換される。ここで記述されている実施形態においては、動作ブロック705内で計算された値は、０，１，２，３又は４であることから、対応する加重平均値は０，２，４，６及び８である。例えば、動作ブロック705内で計算された値が３である場合、このときこの値は動作ブロック710の中で６という値に交換されることになり、一方動作ブロック705内で計算された値が４である場合、この値は動作ブロック710内で８という値に変換されることになる。
その後、動作ブロック715によって表わされているように、位相内容について監視されてきたデータブロックのプリアンブルから始めて全てのビットについて計算された加重平均値から移動平均が算出される。この移動平均は、動作ブロック705内で新しい値が計算される度毎に再度計算される。有利には、各データブロックの始めにおいて、平均値は、最大に近い位相内容を示す何らかの数にセットされる。移動平均が計算されるにつれて、この値は、データストリームの実際の位相内容によって決定される通りに変動する。この移動平均が或る一定のしきい値より小さくなった場合、これはすなわち、データストリームが非常に低い位相内容を有し、従って位相較正を改善するためビットパターンを挿入すべきであることを示している。その理由は、レジスタＲ5内に記憶された値がレジスタＲ3内に記憶された値の時間遅延されたものであるということにある。かくして、レジスタＲ5及びＲ3内に記憶された値の間の差異は、レジスタＲ4内に記憶された値に対応するサンプル時間でのデータストリームの変化速度の尺度である。従ってこの差分値によって位相内容を評価し、この値から、データストリームの位相内容を増大するためビットパターンが挿入される必要があるか否かについての指示を行なうことができる。
移動平均がひとたび計算されたならば、判断ブロック720内で表示される通り、この移動平均がしきい値よりも小さいか否かの決定が下される。１つの有利な実施形態においては、しきい値は、データフィールドに対するよりもヘッダフィールドに対してはより大きいものであるが（図11参照）、これらのしきい値について用いられる実際値は、利用分野に応じて変動する可能性があり、特定の実施によって要求される通りに決定してよい。このとき位相計量フラグは、動作ブロック723の中で表わされている通りにセットされ、フローは復帰して位相内容を監視する。この要領で、データストリーム内で位相内容の欠如が検出された時点で、データストリームの位相内容を増大するためにビットパターンを挿入させるフラグがセットされる。しかしながら、移動平均がしきい値より高い場合、次の差分値を決定するために動作ブロック705に再度入る。
図８は、適切なビットパターンを選択し入力データストリーム内に挿入するため図４の挿入ビットサブルーチンブロック内で使用される副方法を例示する流れ図である。この方法は、開始ブロック800によって表示される通りに開始し、判断ブロック801内で表示されている通りプリアンブルパターンが検出されたか否かについての決定が下される。プリアンブルパターンが検出された場合、これは動作ブロック802の中で表示されているように、データストリーム内に適切なビットを挿入させることになる。一方、プリアンブルパターンが検出されなかった場合、判断ブロック803内で表示されている通りに、セットされたフラグがゼロ計量フラグであるか否かの決定がなされる。ゼロ計量フラグがセットされた場合、動作ブロック804内に表示されている通りに、ゼロパターンを分割するためデータストリーム内に「1100」のビットパターンが挿入される。1100というデータパターンの挿入は、適切にゼロパターンを分割し、同様に、正確な位相及び振幅較正を提供するべく位相及び振幅情報をも内含している。動作ブロック804から、フローは図４の主方法まで戻る。
判断ブロック803内で、ゼロ計量フラグがセットされなかったと判断された場合、判断ブロック805内で表わされているように、データストリーム内の先行する２ビットが「00」であったか否かの決定がなされる。最後の２つのビットが00であった場合、1100のビットパターンは、動作ブロック810内で表わされている通りにデータストリーム内に挿入されて、「001100」という６ビットパターンを生成する。しかしながら、判断ブロック805内で、先行する２つのデータビットが00でなかったと判断される場合、判断ブロック815内に表わされているように、最後の２つのビットが「01」であったか否かの決定に進む。最後の２ビットが01であったとすると、「011001．」の６ビットデータパターンを生成するため、動作ブロック820内に表わされているように1001のビットパターンが挿入される。しかしながら、データストリーム内の最後の２データビットが01でなかった場合、判断ブロック825まで進み、ここで、最後の２つのデータビットが「10」であったか否かの判断がなされる。データストリーム内の最後の２つのデータビットが10であった場合、「100110」の６ビットデータパターンを生成するべく動作ブロック830内で表わされているように、0110のデータパターンが挿入される。
しかしながら、最後の２つのデータビットが10でなかった場合、これは、最後の２つのデータビットが11であったことを表わしており、従って「110011」という６ビットのデータパターンを生成するべく、動作ブロック840内に表わされている通り、0011のデータビットパターンがデータストリームの中に挿入される。当業者であれば、上述のビット挿入方法は、フェーズロック及び利得較正が失なわれないようにフェーズロックドループ及びAGC回路を補助するべくデータストリーム内に最大位相及び振幅情報が挿入されることが確実になるということが理解できるだろう。
適切なデータビットパターンが動作ブロック810,820,830又は840内でひとたび挿入されたならば、動作ブロック850内に表わされている通り、図４の主方法まで戻る。この要領で、好ましい実施形態の方法は、精確なフェーズロック較正を提供するようデータストリーム内に適切かつ充分な位相内容が確実に挿入されることを確実にする。さらに、図８の方法に従った４ビットのデータパターンの挿入は最大位相変動（すなわちＲ3−Ｒ5＝４又は−４）を結果としてもたらすことになり、この値は、最大位相変動が移動平均に対するより一層大きい寄与という結果をもたらすような形で重みづけされることから、移動平均をしきい値レベルよりもかなり上まで上昇させるには、１つのビットパターンの挿入だけで充分であり、このビットパターン挿入によって最適な位相内容を得ることができる。
図９は、データが磁気ディスク上に記憶されなければならない場合にランダム化多項式を再構成するために本発明に従って使用される一般的方法を例示する流れ図である。この方法は、開始ブロック900に表わされている通りに開始し、動作ブロック910内に表わされている通り、データストリーム内にビットパターンが挿入された場合には常に、判断ブロック920内に表わされている通り、一定の与えられたデータブロックにとって挿入されたビット数が多すぎるか否か判断される。１つの実施形態においては、挿入数が表にされ、データブロックをディスク上に記憶するには大きすぎるビット数よりもこの挿入数の４倍が大きい場合、フラグがセットされる。
したがって、挿入数がしきい値を上回っていないと判断されると、次のビットパターンインサートの作表のため動作ブロック910に戻る。しかしながら、判断ブロック920内でしきい値を超えたと判断される場合には、動作ブロック930内で表わされている通りに最後のデータブロックを切り捨てるために進む。すなわち、ディスクに書込まれたデータブロックは、このデータブロックが書込まれるセクターのサイズを超えないように切り捨てられる。その後、ランダム化されるべき次のデータブロックのためのランダム化装置の初期設定値は、動作ブロック940内で表わされている通り、マイクロコントローラ120により変更される。１つの有利な実施形態においては、ランダム化装置の設定値は、最後のデータブロック上で用いられたものに対する直交擬似雑音符号に対する設定に変更され得る。
直交符号を生成する目的でランダム化多項式を再構成するのに用いられる方法は、当該技術分野において周知である。直交符号に対する再構成は、次のデータブロックが新しい擬似雑音符号と高い相関関係をもたないようにすることを確実にする。これは、直交符号が互いに基本的にゼロの相関関係をもちそのため、ビットパターンが一定の与えられた擬似雑音符号と高い相関関係をもつとき、データの連続するブロックが基本的に同じビットパターン特性を有することを仮定すると、この同じパターンは、もとの擬似雑音コードに対し直交する擬似雑音符号と低い相関関係を有することになるからである。かくして、新しい擬似雑音符号が直前の擬似雑音符号に直交するように、次のデータブロックについてのランダム化装置の初期設定値を変更することにより、データビットストリームのための挿入数を常に、ディスク上への記憶のために必要とされるしきい値より下に低減させることができる。
好ましい１つの実施形態においては、データストリームをランダム化するのに用いる擬似雑音符号の族を生成するために用いられるランダム化多項式は、次のとおりである。
0003935942.tif 000002
最後にランダム化装置初期設定値が変更された後、挿入数が多すぎる直前のデータブロックは、動作ブロック950の中で表わされているように、新しい擬似雑音符号を用いて上書きされる。その後の全てのデータは同様に、新しい擬似雑音コードを用いてランダム化される。ディスク記憶装置の場合、ランダム化多項式係数を実行中に変更することそして、実行中の上書きを許容するディスク記憶媒体の特性に起因して、直前のデータブロックを上書きすることが可能である。かくして、図９の方法に従うと、実行中のランダム化多項式の変更によって、与えられたデータブロックに対する増加率が磁気ディスクへの記憶のために割当てられたセクタスペースを超えることは全くなくなることから、データが記憶目的のために大きすぎるというおそれなく、そのデータをディスク駆動機構に書込むことが可能である。
ここで、或る種のケースにおいて、ランダム化多項式係数を変更する直接的方法が用いられる場合にはかかるデータストリームが受け入れ不可能な数のビット挿入を必要とすることがなおも可能であるようにランダム化多項式内の変更を予想するような方法で（すなわち退化パターンを生成するという特定的な意図をもって）データが符号化されている、ということに留意すべきである。かくして好ましい１実施形態に従うと、ランダム化多項式を変更する方法は、それ自体疑似ランダム又は非決定論的のものであり、従ってこの方法においてデータ記憶を失敗させるべく意図的に符号化されるデータストリームは、なお、ビット挿入数を許容可能なレベルまで低減させるような形でランダム化され得るようになっている。当該技術分野において周知の通り、互いに直交する符号の数は、ランダム化多項式により規定されたコード系統群と結びつけられている。かくして最後に用いられた符号に対し直交する符号のうちのいずれか１つを次のランダム化装置シードとしてランダムに選択することができる。代替的には、特定の利用分野により要求されるように、連続的符号を選択するための複雑な非反復的パターンも使用することができる。
図10は、書込みされるデータ記憶媒体が磁気テープである場合にランダム化多項式を再構成するのに本発明に従って使用される方法全体を例示する流れ図である。方法は、開始ブロック1000内で表わされている通りに開始し、その後データストリーム内へのあらゆるビット挿入が動作ブロック1010内で表わされている通りに作表される。判断ブロック1020内で表わされている通り与えられたデータブロックについての挿入数が許容可能な限界内にあることが決定されたならば、そのとき、動作ブロック1010に戻り次の挿入を待つ。しかしながら、判断ブロック1020内で、挿入数が許容可能なしきい値レベルを超えたという決定がなされた場合は、判断ブロック1030内で、単数又は複数のデータブロックについて挿入数が大きすぎるか否かのさらなる決定がなされる。１つの有利な実施形態においては、挿入数があまりにも長時間過剰であり続けていることが決定される前は１つのデータブロックが監視されるが、特定の利用分野により要求される通りに２つ、３つ又はそれ以上のブロックを監視することも可能である。挿入数が過度に長い期間過剰でなかった場合には、動作ブロック1010まで戻る。ただし、判断ブロック1030内で、挿入数が過度に長い時間過剰であったと決定された場合には、動作ブロック1040内で表わされているように、次のブロックについてのランダム化装置初期設定値（すなわちランダム化多項式に対する係数）が変更される。動作ブロック1040内で利用される方法は、図９の動作ブロック940内で利用される方法と実質的に同一である。
次のデータブロックについてランダム化多項式係数が変更された後、方法は動作ブロック1010まで戻ってデータストリーム内へのインサート数の監視を続ける。この要領で、好ましい実施形態は、磁気テープ上に記憶されるべきデータ内へのビット挿入数が、記憶されるべきデータのサイズを許容可能な限界（例えば１％）以上に増大させないことを確実にする。
図11は、本発明の１つの好ましい実施形態の中のデータブロックの書式を概略的に例示している。ブロックフォーマット全体は利用分野に特定的である。各々のブロックは好ましくは、インターリーブされた一連の組織的リード−ソロモン符号語を含む一連のフレーム化されたサブブロックから成る。誤り訂正は、まず第１に消去に基づいている。これは効果的でかつ狭い帯域幅を使用する。
図11に示されているように、各データブロックは、プリアンブル、ヘッダ、データ部分、巡回冗長検査（CRC）部分及びポストアンブルを内含する。プリアンブルは一般的に、新しいデータブロックの始まりを識別するのに使用される４バイトセグメントを含み、有利には疑似雑音符号で符号化されず、従ってプリアンブルセグメントを検出するために疑似雑音コードを知っている必要はない。実際の１実施形態においては、プリアンブルは、“01001100110011001100110011001111.”である。
ヘッダセグメントは、データセグメントスクランブラのための初期設定ならびにその他の情報の初期設定を内含している。ヘッダセグメントは、好ましくは３バイトシーケンスであり、ホストから共有メモリ資源により受信された512バイトのデータブロックの各々に対して、マイクロコントローラ120により共有メモリ資源に送られる。従ってヘッダフィールドは好ましくは、直接メモリアクセス（DMA）チャンネルから符号器によって受信された最初の３つのバイトで構成されている。記録に先立ち、ヘッダは、固定ランダム化装置コード（すなわちシード）を用いてランダム化される。ヘッダは、復号器130で常に利用可能である固定されたシードを用いてランダム化されるから、ヘッダのランダム化は、結果として低い読取り特性をもつヘッダシーケンスをもたらす可能性がある。例えば、固定したヘッダランダム化装置は、長いゼロストリングを含むヘッダを生成するかもしれない。ヘッダフィールドのために再ランダム化は適用できないことから、データフィールドとは異なる符号化方法をヘッダフィールドについて用いることが好ましい。例えば、ヘッダは、固定された４／５又は８／９符号を用いて符号化され得る。これは、データブロックに対し用いられる可変速度挿入コードほど効率の良いものではないが、再ランダム化がない場合の読取り可能性をより確実にする。好ましい代替案としてヘッダについて可変速度ビット挿入を実行することができるが、この場合、ヘッダフィールドについての適切な読取り特性をより良く確保するため、ゼロシーケンス長、位相内容及び振幅変動について、データフィールドを書込むときに利用されるものとは異なるビット挿入しきい値及び振幅変動を用いる。
ランダム化装置初期設定は、物理的フレーム内の全てのサブブロックについて同一であることが望ましい。書込み中の読み出し誤り訂正のため、サブブロックは、物理的トラック又はそれらが記録されるフレームとは異なるトラック又はフレームに関連づけられている可能性がある。かくして、この効果を補償するのに用いられる情報がヘッダ内に内含される。
データフィールドは、ランダム化多項式を用いてコード化されたデータを内含する。このデータフィールドは、DMAチャンネルからの最後の512バイトを内含する。１つの有利な実施形態においては、データのランダム化には、当該技術分野において周知である方法に従って上述された24ビットのランダム化多項式の最下位のビットとデータとの排他的論理和を演算することを含んでいる。
CRCセグメントは有利には、先行するヘッダから計算された６バイトフィールド及びランダム化の後のデータフィールドを含む。このサブブロックは、ランダム化されておらず、サブブロックをランダム化装置の初期設定の知識なく妥当性検査できるようにしている。好ましい一実施形態では、CRCフィールドを計算するのに使用される多項式は、以下の通りである。
0003935942.tif 000003
ポストアンブルフィールドは有利には、0101といった４ビットパターンを含んでいる。
図12−12ｄは、ゼロ、位相及びAGC計量を決定するため、読取りヘッダインパルス応答をシミュレートするのに畳込み符号器内で用いられる方法を概略的に例示している。磁気媒体からデータを読取るのに用いられる読取りヘッドが充分な振幅及び位相情報を受信しているか否かを決定するために、部分的応答シミュレーション方法を用いて読取りヘッドの効果をシミュレートすることが重要である。好ましい実施形態において使用される特定の実施形態においては、拡張部分応答、クラス４（EPR４）がシミュレートされるが、これは、この方法を用いたシミュレーションが、好ましい実施形態で使用される読取りヘッド内で見られる実際の応答に最も近いからである。
図12に記述されているように、データストリームが並列の乗算器回路内に入力され、データストリームの各ビットが、正の１又は負の１のいずれかによって同時に乗算される。図12に描かれているように、データストリームからのビットは正の１で乗算され、次にレジスタＲ0内の値に加算され、一方、同じビットは１で乗算されてレジスタ要素Ｒ1内に記憶された値に加算される。同じデータビットは、同様に、それぞれレジスタＲ2及びＲ3内に記憶された値に加算されるべく−１で乗算される。各ブロックサイクルの時点で、シフトレジスタ要素内に記憶された値は１ビットだけシフトされ、読取りヘッドインパルス応答をシミュレートするため畳込み符号化が実行される。
例えば、図12ａ〜12ｄに描かれているように、レジスタ要素Ｒ0−Ｒ5が０に初期化されたと仮定すると、データストリーム内の第１のビットが受信された時点で、レジスタ要素Ｒ0−Ｒ5はそれぞれ、図12ａに描かれているように、１，１，−１，−１，０及び０の値をもつことになる。その後、シフトレジスタ要素Ｒ0−Ｒ5内の値は１要素だけシフトされ、かくしてＲ0は０に等しく、Ｒ1は１に等しく、Ｒ2は１に等しく、Ｒ3は−１に等しく、Ｒ4は−１に等しく、Ｒ5は０に等しくなる。
その後、データストリーム内の次のデータビットが印加された時点で（例えば図12ｂに示されているように０）、この値は適切な乗算器の値により乗算され、シフトレジスタ要素Ｒ0−Ｒ5内に記憶された値に加算される。図12ｂの例内で示されているようにデータストリーム値は０であることから、これはシフトレジスタ要素Ｒ0−Ｒ5内に記憶されたビットのどの値も変更することはない。
しかしながら、次のクロックサイクルでは、データビットは再度シフトされ、次にデータストリーム内の次のビットが適切な乗算器の値により乗算され、シフトレジスタ要素Ｒ0−Ｒ3内のそれぞれの値に加算される。図12ｃに描かれているように、次のクロックサイクルで１が印加されると、これは１という値がシフトレジスタ要素Ｒ0内に記憶された０の値に加算されることになり、一方シフトレジスタ要素Ｒ1内で記憶された０値に対しても１という値が加算される。さらに、−１という値は、シフトレジスタＲ2及びＲ3内に記憶された値に加算され、かくして結果として、正味の０値がシフトレジスタ要素Ｒ2及びＲ3内に記憶されることになる。最後に、シフトレジスタ要素Ｒ4及びＲ5は、それぞれ−１及び−１のシフトされた値を含む。
ここでも又、これらの値は１つの要素だけシフトされ（かくしてＲ0−Ｒ5はこのとき０，１，１，０，０，−１にそれぞれ等しい）、データストリーム内の次のビットは適切な係数で乗算されシフトレジスタ要素Ｒ0−Ｒ2に加算される。シフトレジスタ要素Ｒ0−Ｒ3内に記憶された値に対する引き続く乗算及び加算は、１，２，０，−１，０及び−１の値はそれぞれシフトレジスタ要素Ｒ0−Ｒ5内に記憶されることになる。
上述の方法から理解できるように、データストリームとして連続するゼロの長いストリームが入力された場合には常に、結局Ｒ3のレジスタ値をさらなるクロックサイクル数だけ０の値にすることになる。かくしてレジスタＲ3内に記憶された値は、データストリーム内のゼロを表わしている。さらに、Ｒ3の値が利得内容を表わし、従ってデータストリーム内に大きな振幅変動が観測される場合に常にＲ3の値が＋２又は−２となるということもわかるだろう。かくして、長期間にわたりレジスタ要素Ｒ3内に２又は−２の値が現われなかった場合には、常に、それは、データストリームに振幅情報が欠如しておりそのため上述の通り振幅情報を付加するビットパターンが挿入されなくてはならない、ということを表わしている。最後に、レジスタ要素Ｒ5内に記憶された値は単にレジスタ要素Ｒ3内に記憶された値の時間遅延されたものであるため、同じクロックサイクル中にとられたレジスタ要素Ｒ3及びＲ5内に記憶された値の間の差異は、時間Ｒ4においてデータストリームが生成したインパルス応答の「勾配」を表わすことになる。かくして、レジスタ要素Ｒ5内に記憶された値とレジスタ要素Ｒ3内に記憶された値の間の差異は、位相内容の尺度であり、ここで、大きな差異は大きな位相内容を表わし、小さい差異は小さな位相内容を表わす。
以上で好ましい実施形態について詳述したが、当業者であれば、本発明の精神又は中心となる特徴から逸脱することなく好ましい実施形態に対しいくつかの明白な修正を加えることが可能である、ということがわかるだろう。例えば、挿入カウンタは、全体的ブロックサイズ又は挿入されていないビットに対する挿入されたビットの比率を監視する装置として実施することが可能である。従って本発明の範囲は、以下の請求の範囲に照らし合わせて解釈されるべきである。
【図１ａ】
0003935942.tif 000004
【図１ｂ】
0003935942.tif 000005
【図２】
0003935942.tif 000006
【図３】
0003935942.tif 000007
【図４】
0003935942.tif 000008
【図５】
0003935942.tif 000009
【図６】
0003935942.tif 000010
【図７】
0003935942.tif 000011
【図８】
0003935942.tif 000012
【図９】
0003935942.tif 000013
【図１０】
0003935942.tif 000014
【図１１】
0003935942.tif 000015
【図１２】
0003935942.tif 000016
【図１２ａ】
0003935942.tif 000017
【図１２ｂ】
0003935942.tif 000018
【図１２ｃ】
0003935942.tif 000019
【図１２ｄ】
0003935942.tif 000020