(57)【特許請求の範囲】
【請求項１】
ホストコンピュータに接続されユーザデータレコードを記憶し読戻すためのテープドライブであって、前記テープドライブは、前記ユーザデータレコードを記録するためのテープを含み、前記テープは、少なくとも１つのユーザデータレコードが前記テープに書込まれているとき、および少なくとも１つのユーザデータレコードが前記テープから読戻されているときには必ず機械によって移動され、前記テープドライブはさらに、インタフェース通路構造を介して前記ホストコンピュータに接続するための電子インタフェースと、前記テープを読取／書込ヘッド構造を通過して移動させるための電子機械テープ移動機構と、前記インタフェースと前記テープとの間の通路にある、前記ユーザデータレコードを選択的に圧縮し伸長するためのデータ圧縮器と、前記インタフェースと前記テープとの間の通路にあり、前記ユーザデータレコードを一時的に記憶するための電子キャッシュバッファと、未圧縮レコードの転送の後の前記キャッシュバッファのデータレコードレベルと、先行の圧縮データレコードの記憶の後の前記キャッシュバッファのデータレコードレベルに基づいて設定されたウオーターマークとの少なくとも比較に応答し、少なくとも１つの次のデータレコードに対して前記データ圧縮器を選択的に可能化および不能化するための電子制御手段とを含む、テープドライブ。
【請求項２】
前記電子制御手段は、前記ホストコンピュータと前記テープとの間のデータ転送速度を最大にするために前記キャッシュバッファにおける所望のデータレコードレベルを維持するよう前記データ圧縮器を選択的に可能化し不能化する、請求項１に記載のテープドライブ。
【請求項３】
前記電子制御手段は、前記電子機械テープ移動機構のスタートおよびストップ動作の回数を最小限にするために前記キャッシュバッファにおける所望のデータレコードレベルを維持するよう前記データ圧縮器を選択的に可能化し不能化する、請求項１に記載のテープドライブ。
【請求項４】
前記電子制御手段は前記データ圧縮器をデータレコード単位で選択的に可能化し不能化する、請求項１に記載のテープドライブ。
【請求項５】
入来制御ポイントと、前記入来制御ポイントから前記電子キャッシュバッファに至るバイパス通路とをさらに含み、前記電子制御手段はレコードが前記データ圧縮器および前記バイパス通路を選択的に通過するよう前記制御ポイントを制御する、請求項１に記載のテープドライブ。
【請求項６】
前記データ圧縮器と前記電子キャッシュバッファとの間にありかつ前記バイパス通路に接続される圧縮器制御ポイントをさらに含み、前記圧縮器制御ポイントは、前記データ圧縮器からの圧縮レコードおよび前記バイパス通路上の未圧縮レコードを前記電子キャッシュバッファへ選択的に送るよう前記電子制御手段によって制御される、請求項５に記載のテープドライブ。
【請求項７】
前記電子キャッシュバッファはデュアル入力ポートキャッシュバッファであり、一方のポートは前記データ圧縮器に接続され、他方のポートは前記バイパス通路に接続され、さらに前記入来制御ポイントと前記データ圧縮器との間にレコードバッファを含む、請求項５に記載のテープドライブ。
【請求項８】
データ記憶装置に入来するデータを選択的に圧縮するための方法であって、前記装置は、データ圧縮器と、前記データ圧縮器を迂回するよう選択的に可能化されるバイパス通路と、キャッシュバッファと、前記キャッシュバッファからのデータを受けるよう接続される記憶媒体とを含み、前記方法は、前記データ記憶装置に接続されるホストコンピュータから所定サイズの複数のデータレコードを受取るステップと、
前記複数のデータレコードの少なくとも１つが前記データ圧縮器を通過して前記キャッシュバッファに送られるようにすることによって、そのレコードを圧縮するステップと、
前記複数のデータレコードの前記少なくとも１つの受取り後の前記キャッシュバッファのデータレベルが所定のウォーターマーク基準より上か否かを判断し、もしそうであれば前記データ圧縮器を回避して前記バイパス通路を可能化するステップと、
前記複数のデータレコードのうちの未圧縮の次のデータレコードを、前記データ圧縮器を回避して前記キャッシュバッファに転送するステップと、
前記複数のデータレコードの前記未圧縮の次のデータレコードの転送後に前記キャッシュバッファのデータレベルを再判断するステップと、
前記キャッシュバッファの再判断されたデータレベルに依って前記バイパス通路を選択的に不能化するステップと、
前記キャッシュバッファ内の前記データを前記記憶媒体に転送するステップとを含む、データ記憶装置に入来するデータを選択的に圧縮するための方法。
【請求項９】
圧縮データレコードおよび未圧縮データレコードの前記キャッシュバッファへの転送に基づいて、全体のデータ記憶装置圧縮レベルを判断するさらなるステップを含む、請求項８に記載の方法。
【請求項１０】
全体のデータ記憶装置圧縮レベルＣｒを決定する方法は、
【数１】
0003789183.tif 000003
に従い、ここで、
Ｍは、前記データ圧縮器に入るユーザデータバイトの数に等しく、
Ｎは、前記データ圧縮器をバイパスして、圧縮されないフォーマットで前記キャッシュバッファに到達するユーザデータバイトの数に等しく、
Ｎ＋Ｍは、ユーザデータレコード転送トランザクション中に前記ホストコンピュータから前記記憶装置によって受取られるデータバイトの総数に等しく、
Ｋは前記データ圧縮器を通過するデータの圧縮比を表わす、請求項９に記載の方法。
【請求項１１】
前記全体の圧縮比Ｃｒが基準値より上かに従って、前記所定のウォーターマーク基準を上下に調整するステップをさらに含む、請求項９に記載の方法。
【請求項１２】
前記基準値は１．５である、請求項１１に記載の方法。
【請求項１３】
前記複数のデータレコードのうちの前記未圧縮の次のデータレコードの転送後に前記キャッシュバッファのデータレベルを再判断する前記ステップは、残余データレベルＤが、前記１つの圧縮データレコードがキャッシュに転送された後にマークされる動的ウォーターマークレベルＷｓよりも大きいかどうかを判断するステップを含む、請求項８に記載の方法。
【請求項１４】
前記複数のデータレコードのうちの前記未圧縮の次のデータレコードの転送後に前記キャッシュバッファのデータレベルを再判断する前記ステップは、残余データレベルＤが、前記１つの圧縮されたデータレコードがキャッシュに転送された後にマークされる動的ウォーターマークレベルＷｓと、前記ホストコンピュータにより確立されるレコードサイズＲとの間の差よりもおおよそ小さいかどうかを判断するステップを含む、請求項８に記載の方法。
【請求項１５】
前記残余データレベルＤが前記動的ウォーターマークレベルＷｓよりも大きいと判断された場合には、前記次のデータレコードに続く、前記複数データレコードの後続データレコードも前記データ圧縮器を迂回してバイパスされる、請求項１４に記載の方法。
【請求項１６】
前記残余データレベルＤが前記動的ウォーターマークレベルＷｓとレコードサイズＲとの間の差よりもおおよそ小さい場合には、前記次のデータレコードに続く、前記複数のデータレコードの後続データレコードも前記データ圧縮器を迂回してバイパスされる、請求項１５に記載の方法。
【請求項１７】
前記データ記憶装置は、前記キャッシュバッファ内のデータが転送バーストでテープに流されるデジタルリニアテープドライブを含む、請求項８に記載の方法。
【請求項１８】
前記複数のデータレコードのうちの前記圧縮された少なくとも１つのデータレコードと、前記複数のデータレコードのうちの前記未圧縮の次のデータレコードとが前記記憶媒体への転送のために前記キャッシュバッファのデュアル入力ポートに入る前に、それらを同時に転送するステップをさらに含む、請求項８に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の分野】
この発明は、テープドライブとホストコンピュータとの間における移動中のレコードを一時的に記憶するバッファおよびデータ圧縮器を伴うテープドライブに関する。より特定的には、この発明は、ホスト−テープドライブデータ転送速度を最適化するように入来データレコードを適応的に圧縮するための方法に関する。
【０００２】
【関連特許の参照】
この特許は、共通の譲受人に譲渡された、ビットナー（Bitner）への「バッファ管理のための調整可能なしきい値（“Adjustable Threshold for Buffer Management”）」と題される米国特許第５，２１０，８２９号に関連し、その開示はここに引用により援用されるものとする。
【０００３】
【発明の背景】
テープドライブは、計算システム内における大量記憶周辺装置の１つのカテゴリである。テープドライブは、データの記憶および検索に関係する多くの重要な機能を果たす。テープ記憶装置の第１の機能は、ハードディスクドライブ等の他の記憶資源のアーカイバルおよびバックアップである。他の機能は、たとえば取外し可能なテープカートリッジを介する、１つの計算システムまたは環境から他のシステムまたは環境へのデータ転送である。第３の機能は、多数の物理的なシーケンシャルなデータファイルのバッチ処理に関連し、この間はデータへのランダムアクセスは必要とされない。第４の機能は、ライブラリシステムにあるような、大量の情報オンラインを提供することである。この後者の機能上のアクティビティにおいて、テープドライブは、接続された中央処理ユニット（ＣＰＵ）または他のユーザによって直接アクセスされてもよい、記録される情報の量を増大するよう、テープカートリッジローダとともに操作されてもよい。
【０００４】
実質的に瞬時のスタートストップ能力を有する大型テープドライブシステムは当該技術において公知である。しかしながら、より最近では、「ストリーミング」テープドライブとして公知のより小型のリニアテープドライブ、デジタルリニアテープドライブ（ＤＬＴTM）、および「デジタルオーディオテープ」または「ＤＡＴ」として公知のヘリカルスキャンテープドライブが、多くの計算環境内で広く用いられるようになった。これらより小型のドライブは瞬時のスタートストップ動作に適合されない。したがって、これらのより小型のテープドライブに送られまたはそれらから検索されるユーザデータは、通常は、ドライブが接続されるホスト計算システムによって複数のブロックまたはレコードにフォーマット化またはパッケージ化される。
【０００５】
ブロックが書込まれる際、テープドライブは、テープ速度を公称書込速度に徐々にランプアップし、１つ以上のブロックまたはレコードをテープに書込み、次いでテープ速度を０にランプダウンする。次の書込動作のためにテープを予め位置付けるために、およびテープ上の利用可能な記録スペースの利用を最大限にするために、その機構がテープの動きを止めた後に、それは直前に書込まれた領域においてテープをある距離だけ巻戻し、次の書込動作において次の利用可能なテープ領域に達する前に速度ランプアップスペースを与える。適当な同期によって、新しいブロックが書込まれるテープのブランク部分にテープドライブが到達するときまでには、テープはその公称書込速度に達しており、新たなデータ書込動作は、シーケンシャルなレコード記憶領域を分離するギャップが最小限である状態で安全に開始され得る。
【０００６】
テープの寿命を保ち、ヘッドの摩耗を最小限に抑え、および電力消費を低減するためには、テープドライブのスタートストップの活用量を最小限にすることが望ましい。先行技術において公知である１つの解決法は、テープドライブ内に電子キャッシュバッファメモリを設けることである。バッファサイズに対する１つの実質的な制限は、テープ媒体等と比べて半導体メモリが相対的にコストが高いということである。少なくともいくつかの圧縮されたユーザデータレコードを保持することのできる有用に大型のキャッシュバッファなら、そのようなレコードを累積し次いで単一のトランザクションでテープに「流す（stream）」ことができ、それによってテープドライブ機構のスタートストップ動作の回数を減じることができる。上に引用した米国特許第５，２１０，８２９号には、ホスト−テープデータ転送機能停止を最小限に抑えるため、およびテープのスタートストップ動作を最小限に抑えるべくデータ転送バースト長を最大にするために、テープトランジスタバッファにおいてウォーターマークを調整するための方法が記載されている。
【０００７】
これとは別に、データレコードをテープに記憶させる前に圧縮することが公知となっている。選択的データ圧縮を用いるＤＡＴドライブの一例が、セバートソン（Severtson ）らの「圧縮されたデータをＤＡＴ媒体上に記録するための方法および装置（Method and Apparatus for Recording Compressed Data on DAT Media ”）」と題される米国特許第５，１９４，９９５号に挙げられており、その開示をここに引用により援用するものとする。この先行技術のアプローチは、アルゴリズムを用いて、データ圧縮が所定の効率基準を満たすかどうかを判断する。圧縮が効率基準を満たさない場合には、データは圧縮されないフォーマットで記憶される。セバートソンらにより記載されるアプローチでは、データ圧縮器は、ホストコンピュータとＤＡＴ装置との間における有効データ転送速度よりも実質的に上の速度で動作するものとしている。
【０００８】
データ圧縮器は、典型的には、ユーザデータ列内において繰返されるパターンを識別するためのパターン認識アルゴリズムを用いる。短い符号語が、公知の方法で、検出されるパターンに対して置換えられる。圧縮器がデータストリームをより遠くまで見返すほど、データ圧縮プロセスはより効率的となるが、より遠くまで見返すにはますます高速な圧縮器が必要となる。理論的には、データ圧縮器がデータ転送速度に比して非常に高速で動作し得るならば、データ記憶装置の最大転送速度に近づくことは実用的である。しかしながら、実際のデータ圧縮器は無限に速い速度で動作することはできない。ホストとテープドライブとの間におけるデータレコード転送速度が高速だと、実際的かつ効率的なデータ圧縮は非常に困難となる。データ圧縮器の速度は有限であり、高速の転送速度では、データ圧縮器は、特にそれが探索テーブル圧縮アルゴリズムに基づく場合には、ホストに追いつくことができないかもしれない。ホストとテープドライブとの間におけるデータ転送速度がデータ圧縮器の最大処理速度を超えると、転送は中断され、圧縮を待つユーザデータの待ち行列をデータ圧縮器が空にしてレコード転送に追いつくまでホストは「機能停止され」る。
【０００９】
１つの考えられ得る解決法は、多数のデータ圧縮器を並列に接続して入来データを処理することであろう。この並列圧縮処理アプローチは煩雑でありかつ費用がかかる傾向がある。さらに、並列データ圧縮器の各々は同じユーザデータ列を他のものとして見ていないので、この並列データ圧縮アプローチは単一データ圧縮プロセスほど効率的ではない。
【００１０】
データ圧縮器がデータを圧縮する転送速度をある最大データ速度に制限する可能性も考えられる。圧縮器への転送速度がたとえば５メガバイト／秒（ＭＢＳ）に制限されて圧縮器が２：１の圧縮比を達成する場合、出力データ速度は２．５ＭＢＳとなり、これはテープドライブのテープへの転送速度よりもかなり低いであろう。入来データ速度が５ＭＢＳに制限される状態で３：１の圧縮比が実現されれば、テープへの転送速度は１．６７ＭＢＳとなり、これはテープ転送速度よりもかなり下であろう。典型的なデータ圧縮比は２または２．５であり、ユーザデータレコード内において頻繁に見られるパターンのある場合に３または４：１のデータ圧縮比を達成することは異常なことではない。
【００１１】
同様に、たとえば、データレコードが５ＭＢＳでテープドライブに入来し、データ圧縮器が２または３：１の圧縮比でデータを圧縮する場合、テープ移動は、圧縮されたデータを最大データ速度の１／２または１／３で有効に受取り、テープ機構を、連続するバーストストリーミング動作ではなく、望ましくないスタートストップモードで動作させる。
【００１２】
したがって、ホストの機能停止なしにホストとテープとの間においてより最適化されたデータレコード転送速度を達成し、これまでよりもテープドライブスタートストップ割込がより少ない、テープへのより連続したバーストストリーミング動作を達成する、データ圧縮を用いるテープドライブに対する要求が現在も満たされないまま残っている。
【００１３】
【発明の概要】
この発明の一般的な目的は、計算システム内においてホストとデジタルリニアテープドライブ等の記憶装置との間におけるデータ転送効率を改善することである。
【００１４】
この発明の他の目的は、ホスト−テープドライブデータ転送速度がデータ圧縮器の有効データ転送速度に近づくかまたはさらには超える、データ圧縮器を用いるより効率的なテープ記憶システムを提供することである。
【００１５】
この発明の原理に従うと、テープドライブはユーザデータレコードを記憶し読戻すためのホストコンピュータに接続される。テープドライブはユーザデータレコードを記録するためのテープを含む。このテープは、少なくとも１つのユーザデータレコードがそれに書込まれているとき、および少なくとも１つのユーザデータレコードがそれから読戻されているときには必ず機械によって動かされる。電子インタフェースは、テープを、ホストコンピュータに、好適なインタフェース通路構造を介して接続する。電子機械テープ移動機構は、テープを、必ずしもではないが好ましくはストリーミングテープ動作モードで読取／書込ヘッド構造を経るように移動させるために設けられる。インタフェースとテープとの間の通路にあるデータ圧縮器は書込動作および読戻し動作中にユーザデータレコードをそれぞれ圧縮し伸長する。さらに、電子キャッシュバッファがインタフェースとテープとの間の通路に位置付けられ、ユーザデータレコードを一時的に記憶するための一時記憶装置を与える。電子制御回路はキャッシュバッファのデータレコードレベルに応答して、たとえばデータバイパス通路を活性化することによって前記データ圧縮器を選択的に可能化および不能化し、キャッシュバッファにおいて所望されるデータレコードレベルを維持して、ホストコンピュータ−テープドライブ転送速度と、テープ移動機構のテープストリーミング動作の開始と停止との間の時間とのうちの少なくとも１つを最適化する。
【００１６】
この発明のある局面に従うと、デジタルリニアテープドライブ等のデータ記憶装置に入来するデータを選択的に圧縮するための方法が提供され、この装置は、データ圧縮器と、データ圧縮器を迂回して選択的に可能化されるバイパス通路と、キャッシュバッファと、キャッシュバッファからのストリーミングトランザクションにおいてデータを受けるよう接続される磁気記憶テープ等の記憶媒体とを含む。この方法は、
この装置に接続されるホストコンピュータから所定サイズの複数のデータレコードを受取るステップと、
複数のデータレコードの１つをデータ圧縮器に通し次いでキャッシュバッファに送ることによってそのレコードを圧縮するステップと、
１つのデータレコードの受取り後のキャッシュバッファのデータレベルが所定のウォーターマーク基準よりも上であるかどうかを判断し、もしそうであればデータ圧縮器を迂回してバイパス通路を可能化するステップと、
未圧縮の第２のデータレコードを、データ圧縮器を迂回してキャッシュバッファに転送するステップと、
第２のデータレコードの転送後のキャッシュバッファのデータレベルを再び判断するステップと、
キャッシュバッファの再び判断されたデータレベルに依ってバイパス通路を選択的に不能化または継続するステップとを含む。
【００１７】
この発明のこれらのおよび他の目的、利点、局面ならびに特徴は、添付の図面とともに表わされる、好ましい実施例の以下の詳細な説明を考慮すれば当業者にはより十分に理解される。
【００１８】
【好ましい実施例の詳細な説明】
図１はこの発明の原理を説明するための例示の計算環境を表わす。この例において、少なくとも中央処理ユニット（ＣＰＵ）２２とメインメモリ２４とを含むホストコンピュータ２０は、広帯域並列もしくは直列双方向通路または他の好適な相互接続であってもよいインタフェースバス構造２６を介して周辺の計算装置と通信する。周辺装置は、ハードディスクドライブ３０と、プリンタ、端子等の他の装置３２と、テープドライブ３４とを含んでもよい。
【００１９】
テープドライブ３４は、テープドライブ３４をバス構造２６に接続するためのテープドライブ／ホストインタフェース回路３６を含む。テープドライブ３４はさらに、レンペル−ゼブ１型（Lempel-Zev, type 1）（ＬＺ１）等の従来的なデータ圧縮およびコンパクションアルゴリズムに従って動作するデータ圧縮器回路３８を含む。テープドライブ３４は、この例ではアレイコントローラ（別途には図示せず）を含む４メガバイト固体ランダムアクセスメモリアレイであってもよい、好適なサイズのキャッシュバッファメモリ４０を含む。テープドライブ３４は、後でより十分に説明されるような種々の回路要素およびプロセスを制御するための、プログラムされるマイクロコントローラ４２を含む。テープドライブ３４はさらに、モータ速度、テープ緊張およびヘッド位置決めサーボ回路４４と、データ読取／書込エレクトロニクスチャネル４６とを含み、これらは、（図１においては破線によってテープドライブ３４の他のエレクトロニクス回路とは分けて図示される）テープ移動機構５０内のヘッド構造４８につながる。
【００２０】
たとえば単一の送りリールカートリッジ５４から供給される磁気記録テープ５２は、複数のテープ誘導ローラ５８の周囲およびヘッド構造４８を通って湾曲しなから通過した後に内部巻取りリール５６に巻取られる。この例では、図示されずかつこの発明の理解に特には関連しない自動テープバックル機構により、カートリッジ５４からのテープを巻上げリール５６に取付けられるリーダに結合することが可能となる。
【００２１】
テープドライブ／ホストインタフェース３６は、データ圧縮器３８とキャッシュバッファ４０と読取／書込回路４６とを含む内部データ通路６４を介してヘッド構造４８に接続される。この発明の局面に従うと、２つの制御ノード６６および６８は、データ通路６４内のデータ圧縮器３８にまたがり、後により詳細にその機能を説明するバイパス通路７０によって相互接続される。
【００２２】
マイクロコントローラ４２は、マイクロコントローラ４２がテープドライブ／ホストインタフェース回路３６とデータ圧縮器３８とキャッシュバッファ４０とサーボ回路４４と読出／書込チャネルエレクトロニクス４６とをモニタし制御することができるようにする内部制御バス構造６２に接続される。マイクロコントローラ４２はさらに、データ圧縮器３８にまたがる２つの制御ノード６６および６８を制御する。したがって、ホストコンピュータ２０（またはディスクドライブ３０）から入来するユーザデータレコードはデータ圧縮器３８に直接送られ次いでキャッシュバッファ４０に圧縮されたフォーマットで送られてもよく、またはデータレコードは、圧縮されることなく、内部データ通路６４内のデータ圧縮器３８にまたがる制御ノード６６および６８の状態に従ってキャッシュバッファ４０に直接送られてもよい。さらに、いくらかのプロセス待ち時間がデータ圧縮器３８内に存在し、エンコードされていないユーザデータレコードが圧縮器３８に入ったときから、そのユーザデータレコードから派生した圧縮データが圧縮器から完全に出るまで、いくらかの時間が経過することが理解されるべきである。
【００２３】
マイクロコントローラ４２でノード６６および６８の動作を制御するための機構について説明する。以下の議論において、次の語は定数または基準値として定義される。
【００２４】
「Ｃｒ」は全体的なシステム圧縮比に等しく、下にさらに正確に定義される。
「Ｗｍ」はキャッシュバッファ４０における基準ウォーターマーク設定に等しく、「Ｗｓ」は、圧縮されたデータがキャッシュバッファに転送されてからそのデータがキャッシュバッファ４０を出てテープ５２に転送される前に判断される動的ウォーターマークレベルに等しい。ここで用いられるように、「基準ウォーターマーク」という語はキャッシュバッファ内におけるユーザデータのレベルを意味し、それに達するとマイクロコントローラ４２がテープドライブ機構５０にテープ巻上げ、データ転送動作を開始するよう指示するようにするレベルである。この意味において、それは、上で引用した米国特許第５，２１０，８２９号に記載されるのと同じ意味を与えられる。
【００２５】
「Ａ」は、この発明の方法に従ってデータ圧縮器３８をバイパスする整数個の連続するレコード転送サイクルに等しい。ホストレコードデータ転送速度が変化するような、素早く変化する動作環境では、Ａが単位であってもよい。ホストデータ転送速度が一定である状況では、Ａは、４または５などの、単位の好適な整数倍であってもよく、Ａはユーザデータのタイプおよびユーザデータレコードのサイズに依存し得る。
【００２６】
以下の語はここでは変数として定義される。
「Ｍ」は、データ圧縮器３８に入るユーザデータバイトの数に等しい。
【００２７】
「Ｎ」は、データ圧縮器３８をバイパスして、圧縮されないフォーマットでキャッシュバッファ４０に到達するユーザデータバイトの数に等しい。
【００２８】
「Ｎ＋Ｍ」は、所与のレコード転送トランザクション中にホスト２０からテープドライブ３４によって受取られるデータバイトの総数に等しい。
【００２９】
「Ｋ」は、データ圧縮器３８を通過するデータの圧縮比を表わす。
「Ｒ」はユーザレコードブロックのサイズに等しい。このレコードブロックサイズはホストコンピュータ２０によって確立され、典型的にはたとえば１０キロバイト、１６キロバイトまたは３２キロバイトである。このレコードサイズはマイクロコンピュータ４２にとって既知であり、このレコードサイズによってそれはホスト２０への、およびホスト２０からの完全なレコードの転送をモニタすることが可能となる。
【００３０】
「Ｄ」は、ホストからのレコード転送の完了後にキャッシュバッファ４０に残余として残るユーザデータバイトの数である。
【００３１】
次に図２を参照して、マイクロコントローラ４２は、スタートプロセスステップ１０２において、適応データ圧縮／キャッシング制御ルーチンに入る。上に定義された定数および変数のうちのあるものがステップ１０４において初期値として設定される。これらデフォルト設定は、初期キャッシュバッファ基準ウォーターマーク設定Ｗｍと、データ圧縮器３８によって先に圧縮されることなくキャッシュバッファ４０に送られるデータレコードの数を示す初期バイパスレコード計数Ａとを含む。最初に、デフォルト設定は、テープドライブの動作を、データ圧縮の方に向け、バイパス通路７０の使用に向けないようにバイアスさせるよう選択される。したがって、初期条件は、少なくとも１つのデータレコードおよびおそらくは多数のデータレコードがキャッシュバッファ４０に転送される前に圧縮されるような条件となる。データ転送条件、データ圧縮条件、およびキャッシュバッファレベルが変化すると、テープドライブ３４はデフォルト設定を動的に調整し、バイアスモードを適当に呼出して、ドライブ３４とホスト２０との間におけるデータ転送速度を最大にし、および二次的に、デジタルリニアテープ機構５０のスタートストップ動作の回数を最小限にする。
【００３２】
テープドライブ３４はインタフェース２６をモニタし、ホスト書込コマンドが発行されるとそれはステップ１０６において受取られデコードされる。このコマンドは、レコードサイズおよび転送されるレコード数等の情報を含んでもよい。ホストコンピュータ２０がテープドライブ３４に１つのデータレコードの転送を信号送信すると、それはプロセスステップ１１０においてプログラム制御下でデータ圧縮器３８を通して転送される。
【００３３】
最初のデータレコードが圧縮されＭ／Ｋバイトとしてキャッシュに転送されると、論理ステップ１１１に到達して、その圧縮比が１．５未満であるかどうかを判断する。１．５以上のデフォルト値がステップ１０４において設定されたため、最初のパス返答は「ｎｏ」であり、フローはプロセスステップ１１２へ進む。圧縮比がたとえば１．５未満であることが次の論理ステップ１３８において動的に判断された場合には、データフロープロセスは、データ圧縮が可能化される状態での最適状態に近く、データ圧縮器をバイパスする必要は全くない。この場合、１１１での返答は「ｙｅｓ」であり、ステップ１０８にリターンするので、次のデータレコードがデータ圧縮器３８を通って流れる。しかしながら、圧縮比Ｃｒが論理ステップ１３８で測定されてたとえば１．５以上である場合には、この事実が記録され、論理ノード１１１でテストされると、制御プログラムフローはプロセスステップ１１２に達する。
【００３４】
プロセスステップ１１２に到達すると、キャッシュデータレベルＬの判断がなされる。次いで論理ステップ１１４により、キャッシュデータレベルがデフォルトウォーターマークＷｍより上に上昇したかどうかが判断される。もしそうでなければ、キャッシュからテープデータへの転送速度は入来する圧縮されたデータの速度に追いついており、データ圧縮器３８は可能化されたままである。論理ステップ１１６に到達して、キャッシュ中のレコードが現在のホスト書込コマンドの最終レコードであるかどうかを判断する。もしそうであれば、上のステップ１０６にリターンして、テープドライブは次のホスト書込コマンドが受取られるのを待つ。しかしながら、キャッシュ中の圧縮されたレコードが最終レコードでない場合には、上のステップ１０８にリターンして、次のレコードがホストから取得されステップ１１０、１１２および１１４を通過する。
【００３５】
レコード転送トランザクションのある時点で、キャッシュレベルＬがデフォルトウォーターマーク基準値Ｗｍより上に上昇したことが、論理ステップ１１４において判断されると、プロセスステップ１２０に達して、制御ノード６６および６８を活性化してデータ圧縮バイパスを可能化する。次いでプロセスステップ１２２において、最終の圧縮データレコードが受取られた後のキャッシュバッファ４０のレベルを表わす動的ウォーターマークレベルＷｓをマークする。次いで、プロセスステップ１２４で、１つの圧縮されていないデータレコードがホスト２０からキャッシュバッファ４０へバイパス通路７０を介して転送されるのがモニタされる。次のプロセスステップで、その圧縮されていないデータレコードの転送完了時にテープに残っている、転送されるべきユーザデータバイトの数として、残余キャッシュレベルＤを判断する。次いで論理ステップ１２８に達して、２つの別個の条件に対してテストを行なう。第１の条件は、新しい残余値Ｄが、ステップ１２２でマークされた動的ウォーターマークレベルＷｓから未圧縮のレコードサイズＲを引いたものの間の差（±許容値ε、この例においてはたとえば未圧縮レコードサイズの１０％であってもよい）より小さい（かまたは等しい）かどうかである。論理ノード１２８でテストされる第２の条件は、新しい残余値Ｄが、ステップ１２２でマークされた動的ウォーターマークレベルＷｓより大きいかどうかである。
【００３６】
第１の条件（Ｄ≦（Ｗｓ−Ｒ）±ε）は、キャッシュ中のデータレベルが劇的に落ちつつあることを示すものである。この状態は、ホスト２０がデータをテープドライブに断続的または散発的な態様で転送している場合に得られるかもれしない。そうである場合には、テープドライブ３４はスタートストップモードにされ、データ圧縮が可能化される。キャッシュバッファはテープに流れ出される前に圧縮されたデータレコードで満たされ、テープのストップスタート動作の回数はデータ圧縮のため最小限にされる。
【００３７】
第２の条件（Ｄ＞Ｗｓ）は、キャッシュバッファ４０が、テープに流込むのを待つ未転送のデータで急速に満たされつつあることである。この第２の条件は、データ圧縮が通路７０を介してバイパスされると入来未圧縮データ転送速度がテープへのデータ転送速度を超えつつあるぐらい入来ユーザデータが効率的に圧縮されており、データ圧縮をすぐに再開する必要があることを示すものであり、論理ステップ１２８から直接プロセスステップ１３４に進んで、制御ノード６６および６８でバイパス通路７０を不能化することによってデータ圧縮器３８を導通させる。
【００３８】
第１または第２の条件のいずれも真でない場合、ＤはＷｓとレコードサイズＲとの間の差よりも大きくかつ動的ウォーターマークレベルＷｓよりも小さく、さらなるレコードに対してデータ圧縮をバイパスし続けるのが適当である。したがって、プロセスステップ１３０は、バイパス通路７０を渡る最初の未圧縮レコードの転送の終りでのキャッシュバッファ中のデータのレベルを反映する新たな動的ウォーターマークレベルＷｓをマークする。次いでプロセスステップ１３２で、１〜４つまでのデータレコード等の値Ａに対応するいくつかのレコードを転送し、プロセスステップ１３４に達してデータ圧縮器３８を可能化する。
【００３９】
更新された全体的なデータ圧縮比Ｃｒが次いでプロセスステップ１３６において次の関係に従って判断される。
【００４０】
【数２】
0003789183.tif 000002
【００４１】
ここで、Ｎはキャッシュに入来する未圧縮のユーザデータレコードのバイト数に等しく、Ｍ／Ｋはキャッシュに入来する圧縮データのバイト数に等しく、Ｎ＋Ｍは現在のデータ転送トランザクション中にホストから受取られた未圧縮ユーザデータのバイト数に等しい。マイクロコントローラ４２はたとえばホスト２０から流れるバイト（Ｎ＋Ｍ）およびデータ圧縮器３８から流れるバイト（Ｍ／Ｋ）をモニタして、プロセスステップ１３６で等式１を計算する。
【００４２】
次いで論理ステップ１３８で、ステップ１３６で決定されたとおりの全体の圧縮比Ｃｒが、たとえば１．５である所定の基準圧縮レベル以下であるかどうかが判断される。全体の圧縮比Ｃｒが１．５以下である場合には、プロセスステップ１４０は、キャッシュバッファ基準ウォーターマークＷｍを、全体の一時的記憶容量の１０％のように、比較的低く設定する。この低い設定は、データ圧縮器３８が、もしあったとしても非常に稀にしかバイパスされないことを意味する。キャッシュ４０は、バイパスモードが可能化される前に、ほとんどその底部まで、つまり１０％の低い基準ウォーターマークＷｍより下まで空にされなければならない。しかしながら、圧縮比Ｃｒが１．５より大きい場合には、プロセスステップ１４２に進んで、キャッシュバッファ基準ウォーターマークＷｍを、全体の一時的な記憶容量の６０％のように、高く設定する。この高い基準ウォーターマークＷｍは、データ圧縮効率がキャッシュバッファデータレベルにおいて大きな相対変化をもたらす場合に適当であり、バイパスモードは中断なしにデータストリーミングテープ動作を継続する可能性を与える。次いで論理ステップ１１６に進んで、キャッシュバッファ４０に入来する最も新しいレコードが、ホストからの現在のコマンド中に転送される最終レコードであるかどうかが判断される。
【００４３】
既に説明したように、キャッシュバッファ４０からテープ５２へのデータ転送はテープストリーミング動作中に生ずる。キャッシュバッファ４０のデータレベルＬがまず所定のテープ転送ウォーターマークに上昇するまでテープ５２は停止される。一旦テープ転送ウォーターマーク（圧縮基準ウォーターマークＷｍおよび動的ウォーターマークレベルＷｓとは別個である）を通過すると、テープドライブ５０はテープ５２を書込スピードまで加速し、次いで、キャッシュが空になるまで、キャッシュ４０中のデータがたとえば５ＭＢＳのような所定の転送速度でテープに流れ込む。ホスト転送速度、およびレコード転送の頻度、ならびにこの発明の原理に従う適応型データ圧縮に依って、テープドライブ５０は実質的に一定に動作してもよく、またはスタートストップ動作の回数が効率的に最小限にされる状態で、スタートストップモードで動作してもよい。キャッシュ４０からテープ５２へのデータ転送を管理するための好ましい方法は上に引用された米国特許第５，２１０，８２９号に記載される。
【００４４】
ここでいくつかの例を呈示して、いくつかの制御状態を説明する。図３を参照して、ステップ１０６で受取られたホスト転送コマンドは、ユーザデータレコードＤＢ１〜ＤＢ８のシーケンスをテープに転送することを要求する。これらのレコードの最初の１つＤＢ１は、ステップ１０８においてホストから取得され、ステップ１１０においてデータ圧縮器３８を通過させられる。データ圧縮器３８によるＭ／Ｋバイトへの圧縮で、圧縮されたデータレコードＣＢ１はキャッシュバッファ４０に転送される。これはその転送の最初のレコードであるため、キャッシュレベルＬは初期ウォーターマーク基準レベルＷｍよりも十分下であり、さらなるデータブロックがデータ圧縮器３８で受取られ圧縮され続ける。
【００４５】
３番目のデータレコードＤＢ３がテープドライブ３４で受取られデータ圧縮器によって圧縮されると、キャッシュデータレベルＬは最初に設定された基準ウォーターマークＷｍを超え、バイパスプロセスステップ１２０、１２２、１２４、１２６および１２８が次のデータレコードＤＢ４に対して続く（これはデータ圧縮器３８をバイパスし、未圧縮のデータフォーマットでキャッシュバッファ４０に入る）。ステップ１２８において、バイパスモードを継続するか、またはデータ圧縮を再開するかの判断がなされる。図３の例における１つの筋書きにおいては、残余レベルＤ（参照番号１５２）がＷｓマーク（参照番号１５０）より上であり、圧縮の中止により、キャッシュ４０中の未転送データレベルＬが未圧縮データブロックＤＢ４の受取りで急速に上昇したことを意味する（テープストリーミング動作は最大ストリーミング速度で継続中であるものとする）。この状況において、論理ステップ１２８は、１つのレコードＤＢ４のみがデータ圧縮器３８をバイパスすることになると判断し、次の３つのレコードＤＢ５〜ＤＢ８は圧縮を受けて圧縮レコードＣＢ５〜ＣＢ８になる。
【００４６】
各レコードがキャッシュ４０に転送された後、ステップ１３６およびステップ１３８によって、圧縮比Ｃｒの判断の見直しが、ステップ１４０または１４２での基準ウォーターマークレベルＷｍにおける考えられ得る調整を伴ってなされることに注目されたい。
図３の例によって呈示される別の筋書きでは、データレコードＤＢ４がデータ圧縮器３８をバイパスした後、プロセスステップ１２８において、データ残余レベルＤ（参照番号１５４）が動的レベルＷｓ（参照番号１５６）から未圧縮レコードサイズＲを引いたものより小さいと判断され、キャッシュレベルの大きな低下が検知され、データ圧縮も再可能化される。これはテープ機構５０が次のレコードＤＢ６〜８等に対してスタートステップモードにされることが大いに考えられるからである。この後者の筋書きにおいては論理ステップ１２８で圧縮モードが呼出されて、テープ機構５０のストップ動作とスタート動作との間の間隔を最大限にして、テープおよびヘッドの摩耗を最小限に抑える。
【００４７】
図４の例では、８つのデータブロックＤＢ１〜ＤＢ８がホストから７．５ＭＢＳの速度で転送されている。図３の例にあるように、最初の３つのブロックＤＢ１〜ＤＢ３はデータ圧縮器３８を通過し、圧縮されたデータブロックＣＢ１〜ＣＢ３はレベルＬがウォーターマーク基準レベルＷｍ（参照番号１６０）を超える前にキャッシュバッファ４０に入る。しかしながらこの例では、最初のバイパスブロックＤＢ４のバイパス中にステップ１２２でマークされた動的ウォーターマークレベルＷｓ（参照番号１６２）は基準ウォーターマークＷｍよりも低く、ステップ１２６で判断されたとおりの残余レベルＤ（参照番号１６４）は動的ウォーターマークレベルＷｓ（参照番号１６２）よりも下である。この状態では、論理ステップ１２８でテストされる条件のいずれも真ではなく、ステップ１３０および１３２が呼出されて所定数（Ａ）のデータレコードはキャッシュバッファ４０に到達する前にデータ圧縮器３８を迂回してバイパスされる。図４に示される例では、この所定数Ａは２であり、ゆえに、データ圧縮がブロックＤＢ７およびＤＢ８に対して再開される前に、ブロックＤＢ５およびＤＢ６がさらにキャッシュバッファ４０に入る。
【００４８】
注目されるように、図２の流れ図にわたる各動作パスは、未圧縮データレコードのキャッシュバッファ４０への転送の効果を考慮して全体のデータ圧縮比Ｃｒの決定を見直すことを含む。全体の圧縮比（等式１）がたとえば１．５〜１以下のように比較的低い場合には、データ圧縮器３８は最大に近い転送速度で動作し、基準ウォーターマークＷｍはバッファ容量の１０％のように非常に低く設定されるので、データ圧縮器３８はほとんどバイパスされることがない。Ｗｍに対する１０％設定の場合、基本的にキャッシュ４０はバイパス通路７０が可能化される前には事実上空でなければならない。全体の圧縮比（等式１）が１．５〜１より上のように高い場合、キャッシュ記憶レベルにおけるより大きな動的変化がレコード転送動作中に生じ、たとえば６０％の、より高い基準ウォーターマークＷｍが適当である。この場合、ユーザデータレコードの、すべてではないが、その多くはデータ圧縮器３８を通過する。
【００４９】
次に図５を参照して、テープドライブ３４Ａは、この発明の内容から逸脱せずに、わずかに異なる構造および動作原理を組入れる。ここにおいて、ホスト２０はたとえば８つのデータレコードＤＢ１〜ＤＢ８を転送するよう示される。通路制御６６Ａは、６６と本質的に同じであるが、レコードバッファ６７およびバイパス通路７０Ａに至り、それはこの例ではデュアル入力ポートキャッシュバッファ４０Ａに入る。レコードバッファ６７は圧縮されるべきレコードをデータ圧縮器３８に供給し、これも同じくデュアル入力ポートキャッシュバッファ４０Ａの第２の入力ポートに直接つながる。データ圧縮器３８は各データブロックを圧縮するために処理時間または待ち時間を課すことを想起し理解されたい。データ圧縮器３８の処理待ち時間に依っては、データレコード、たとえばＤＢ２をバイパスし、それを、データ圧縮器３８を出てバッファ４０Ａに入るデータレコードＤＢ１をなす圧縮データバイトで、データレコードＤＢ２がバイパス通路７０を介して直接キャッシュバッファ４０Ａに入るのと同時に、バイト単位でインタリーブするのが実際的である。メモリ制御プロセス（図示せず）はキャッシュバッファ４０Ａ内に２つの同時に受取られるデータストリームのためのデュアルポインタを配し、テープ５２上に記録するための連鎖されたレコード、たとえばＣＢ１、ＤＢ２、ＣＢ３、ＤＢ４、ＣＢ５、ＤＢ６、ＣＢ７、ＤＢ８を送る。この配列は、したがって、キャッシュバッファ４０に供給される、時間を密にするデータレコードにおいて、前述の例に対し、データ転送速度における利点を達成する。この態様では、たとえばすべての奇数データブロックが圧縮される一方ですべての偶数データブロックはバイパス通路をたどり、デュアルポートキャッシュバッファ４０Ａにおける２つの同時に存在するデータストリームが記録されテープ５２に送られる。ここに記載されるタイプのデュアルウォーターマーク機構はこの動作を制御するために維持される。読戻し中、このプロセスは反転され、圧縮されたデータブロックは圧縮器３８によって選択的に伸長され、一方未圧縮のデータブロックはホストに直接送られる。
【００５０】
当業者にとっては、この発明の精神から逸脱することなく好ましい実施例の前述の説明を考慮すれば、多くの変更および修正が容易に明らかとなり、この発明の範囲は前掲の特許請求の範囲によってより特定的に指摘される。ここにおける記載およびこの開示は例示のみによるものであり、前掲の特許請求の範囲によりより特定的に指摘されるこの発明の範囲を限定するように解釈されるべきではない。
【図面の簡単な説明】
【図１】ホスト計算環境に作動的に接続される、この発明の原理に従うテープドライブの簡略化されたブロック図である。
【図２】図１に示されるテープドライブの動作の第１の好ましい方法の流れ図である。
【図３】図１に示されるテープドライブの動作の好ましい方法を示す第１の例の図である。
【図４】図１に示されるテープドライブの動作の別の好ましい方法を示す第２の例の図である。
【図５】この発明の原理を組込んだテープドライブの動作のさらなる好ましい実施例および方法を示す第３の例の図である。
【符号の説明】
３４  テープドライブ
３６  電子インタフェース
３８  データ圧縮器
４０  電子キャッシュバッファ
４２  電子制御手段
５０  電子機械テープ移動機構
５２  テープ
【図１】
0003789183.tif 000004
【図２】
0003789183.tif 000005
【図３】
0003789183.tif 000006
【図４】
0003789183.tif 000007
【図５】
0003789183.tif 000008