(57)【特許請求の範囲】
【請求項１】
テープ媒体へのデータの書込みを制御する装置であって、
前記装置のモードを示すモード情報を記憶する記憶部と、
前記記憶部に記憶された前記モード情報が特定のモードを示している場合に、前記テープ媒体の公称容量のうち、第１のデータと当該第１のデータの次の第２のデータとの間でバックヒッチを行わないことによって書き込めなくなる、当該テープ媒体上の当該２つのデータ間の間隙のデータの容量を除いた目標容量のデータを書込む条件の１つとして、バックヒッチを行わないでデータを当該テープ媒体に書き込むことを決定する決定部と
を含む、装置。
【請求項２】
前記決定部は、前記テープ媒体からのデータの読出し速度が目標の読出し速度を下回らないように選択的に、前記第１のデータを当該テープ媒体に書き込んでから前記第２のデータを当該テープ媒体に書き込むまでにバックヒッチを行わないことを決定する、請求項１の装置。
【請求項３】
前記決定部は、前記テープ媒体に書き込まれた単位データを前記装置が用意する最速の読出し速度で読み出すのに要する時間と、当該テープ媒体をバックヒッチを行わずに走行させることによってデータが書き込まれなかった当該テープ媒体上の領域を読み飛ばすのに要する時間との和が、当該単位データを前記目標の読出し速度で読み出すのに要する時間よりも短い場合に、前記テープ媒体からのデータの読出し速度が前記目標の読出し速度を満足すると判断する、請求項２の装置。
【請求項４】
前記決定部は、前記テープ媒体に書き込まれた単位データと、当該テープ媒体をバックヒッチを行わずに走行させることによってデータが書き込まれない領域に相当する容量のデータとを、前記装置が用意する最速の読出し速度で読み出すのに要する時間が、当該単位データを前記目標の読出し速度で読み出すのに要する時間よりも短い場合に、前記テープ媒体からのデータの読出し速度が前記目標の読出し速度を満足すると判断する、請求項２の装置。
【請求項５】
前記記憶部は、前記テープ媒体を収納するテープカートリッジの装填に応じて、当該テープ媒体にデータを書き込むアプリケーションプログラムの指示により、前記特定のモードを示す前記モード情報を記憶する、請求項１の装置。
【請求項６】
前記記憶部は、前記テープ媒体を収納する特定のテープカートリッジの装填に応じて、前記特定のモードを示す前記モード情報を記憶する、請求項１の装置。
【請求項７】
テープ媒体へのデータの書込みを制御する装置における方法であって、
前記装置のモードを示すモード情報をメモリに記憶するステップと、
前記メモリに記憶された前記モード情報が特定のモードを示している場合に、前記テープ媒体の公称容量のうち、第１のデータと当該第１のデータの次の第２のデータとの間でバックヒッチを行わないことによって書き込めなくなる、当該テープ媒体上の当該当該２つのデータ間の間隙のデータの容量を除いた目標容量のデータを書込む条件の１つとして、バックヒッチを行わないでデータを当該テープ媒体に書き込むことを決定するステップとを含む、方法。
【請求項８】
テープ媒体へのデータの書込みを制御する装置としてコンピュータを機能させるプログラムであって、
前記コンピュータを、
前記装置のモードを示すモード情報をメモリに記憶する手段と、
前記メモリに記憶された前記モード情報が特定のモードを示している場合に、前記テープ媒体の公称容量のうち、第１のデータと当該第１のデータの次の第２のデータとの間でバックヒッチを行わないことによって書き込めなくなる、当該テープ媒体上の当該２つのデータ間の間隙のデータの容量を除いた目標容量のデータを書込む条件の１つとして、バックヒッチを行わないでデータ当該テープ媒体に書き込むことを決定する手段と、して機能させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの書込みを制御する装置及び方法に関する。特に、本発明は、テープ媒体へのデータの書込みを制御する装置及び方法に関する。
【背景技術】
【０００２】
例えばＬＴＯ（Linear Tape Open）に準拠して磁気テープ等のテープ媒体にデータを書き込むテープドライブでは、データの書込み中にホスト（アプリケーションプログラム）から同期コマンドを定期的に受け取ることがある。同期コマンドとは、テープドライブ内のバッファに蓄積されたデータを強制的にテープ媒体に書き込むためのコマンドである。このように同期コマンドを定期的に受け取ることがあるのは、アプリケーションプログラムが、自身がテープドライブに送ったデータが全てテープ媒体に書かれ、テープドライブ内のバッファに残っていないことを、知りたい（保証したい）ためである。
テープドライブが同期コマンドを受け取ると、テープドライブ内のバッファが空になるため、テープドライブは通常、「バックヒッチ」を行う。バックヒッチとは、テープ媒体の走行速度を減速して一旦停止し、逆方向に走行し、その後、再度元の方向に走行して書き込むべき位置に達して次のデータを書く、という一連の動作のことである。
このバックヒッチには通常２〜３秒程度の時間を要する。次のデータの書出しはこのバックヒッチの完了後となるため、頻繁に同期コマンドを受け取ると書込みのパフォーマンスが著しく低下してしまう。
こうしたことから、従来、バックヒッチを行わなくて済むようにするための技術が提案されていた（例えば、特許文献１〜３参照）。【０００３】
特許文献１では、ホストから送られたデータセットをバッファメモリに格納し、バッファメモリに格納されたデータセットを取り出してホストに送るホストＩ/Ｆ部と、バッファメモリに格納されたデータセットを取り出してテープに転送し、テープから読み出されたデータセットをバッファメモリに格納するメディアＩ/Ｆ部とを備えた装置において、ホストとの間の転送レートをホストＩ/Ｆ部から取得し、テープに書き込む際のエラーレートをメディアＩ/Ｆ部から取得し、この転送レートとエラーレートに基づいてテープスピードを決定し、決定されたスピードでテープが動作するよう制御している。【０００４】
特許文献２では、複数の書込データをデータ記録媒体に対して予め定められたサイズのセグメント単位で順次書き込む記憶装置において、複数の書込データのそれぞれについて、書込データを、書込データをデータ記録媒体に対して書き込む書込指示に対応付けて受信した場合に、書込データをデータ記録媒体の少なくとも一のセグメントに対して書き込み、一の書込データのサイズが予め定められた規定サイズより小さい場合に、データ記録媒体に順次書き込まれた複数の書込データのうち、一の書込データ以降に書き込まれた複数の書込データを連結して、データ記録媒体における、連結の対象となった複数の書込データの書き込みに要していたセグメントより少ない数のセグメントに対して書き込んでいる。また、特許文献２では、バックヒッチを行わずに書込データをテープ記録媒体に対して書き込むバックヒッチレスフラッシュを行うことで、バックヒッチを行う場合と比較して、高速に動作している。【０００５】
特許文献３では、回転可能なスキャナと、スキャナの回転の間に情報が記録されるように、磁気テープを回転可能なスキャナ近くに移送する移送システムとを備えるヘリカルスキャンテープレコーダにおいて、コントローラが、テープへの記録動作中にポーズするためのポーズルーチンとして、テープ上のポーズ前最終記録位置を示すテープポーズ位置基準値を判断するステップと、テープ上のポーズ前最終記録位置の後に消去信号を記録するステップと、テープを巻き戻すステップと、テープを順方向に移送し、現テープ位置値を取得するステップと、現テープ位置値がいつテープポーズ位置基準値に対する所定の値に達するかを判断するステップと、スキャナの次の回転の開始時において、テープへの１つ以上のポーズ後ストライプの記録を開始するステップとを実行している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−３１８５７１号公報
【特許文献２】特開２００４−３４１９２５号公報
【特許文献３】特表２００８−５３３６３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、バックヒッチを行わずにテープ媒体を走行させて次のデータの書出しを再開した場合、同期コマンドに応じて最後に書き出したデータと次に書き出すデータとの間に隙間が発生し、その隙間の部分にデータが書けないことにより容量の低下が発生してしまう。この容量の低下が発生すると、テープ媒体に書き込めることを公に謳っている容量（公称容量）をテープ媒体に書き込めなくなるという問題が生じる。このような問題を解決するための手法は、何れの文献にも記載されていない。【０００８】
本発明の目的は、公称容量のうちのバックヒッチを行わないことによって書き込めなくなるデータの容量を除いた目標容量のデータをテープ媒体に書き込むことにある。
【課題を解決するための手段】
【０００９】
かかる目的のもと、本発明は、テープ媒体へのデータの書込みを制御する装置であって、装置のモードを示すモード情報を記憶する記憶部と、記憶部に記憶されたモード情報が特定のモードを示している場合に、テープ媒体の公称容量のうち、バックヒッチを行わないことによって書き込めなくなるデータの容量を除いた目標容量のデータをテープ媒体に書き込むことを決定する決定部とを含む、装置を提供する。【００１０】
ここで、決定部は、目標容量のデータがテープ媒体に書き込まれると予測されることを条件の１つとして、第１のデータをテープ媒体に書き込んでから第１のデータの次の第２のデータをテープ媒体に書き込むまでにバックヒッチを行わないことを決定する、ものであってよい。
決定部は、更に、テープ媒体からのデータの読出し速度が目標の読出し速度を満足すると予測されることを条件の１つとして、第１のデータをテープ媒体に書き込んでから第２のデータをテープ媒体に書き込むまでにバックヒッチを行わないことを決定する、ものであってよい。
その場合、決定部は、テープ媒体に書き込まれた単位データを装置が用意する最速の読出し速度で読み出すのに要する時間と、テープ媒体をバックヒッチを行わずに走行させることによってデータが書き込まれなかったテープ媒体上の領域を読み飛ばすのに要する時間との和が、単位データを目標の読出し速度で読み出すのに要する時間よりも短い場合に、テープ媒体からのデータの読出し速度が目標の読出し速度を満足すると判断する、ものであってよい。
或いは、決定部は、テープ媒体に書き込まれた単位データと、テープ媒体をバックヒッチを行わずに走行させることによってデータが書き込まれない領域に相当する容量のデータとを、装置が用意する最速の読出し速度で読み出すのに要する時間が、単位データを目標の読出し速度で読み出すのに要する時間よりも短い場合に、テープ媒体からのデータの読出し速度が目標の読出し速度を満足すると判断する、ものであってもよい。【００１１】
また、記憶部は、テープ媒体を収納するテープカートリッジの装填に応じて、テープ媒体にデータを書き込むアプリケーションプログラムの指示により、特定のモードを示すモード情報を記憶する、ものであってよい。
或いは、記憶部は、テープ媒体を収納する特定のテープカートリッジの装填に応じて、特定のモードを示すモード情報を記憶する、ものであってもよい。【００１２】
また、本発明は、テープ媒体へのデータの書込みを制御する装置であって、装置のモードを示すモード情報を記憶する記憶部と、記憶部に記憶されたモード情報が特定のモードを示しており、テープ媒体の公称容量のうち、バックヒッチを行わないことによって書き込めなくなるデータの容量を除いた目標容量のデータがテープ媒体に書き込まれると予測され、テープ媒体からのデータの読出し速度が目標の読出し速度を満足すると予測される場合に、第１のデータをテープ媒体に書き込んでから第１のデータの次の第２のデータをテープ媒体に書き込むまでにバックヒッチを行うことなく、目標容量のデータをテープ媒体に書き込むことを決定する決定部とを含む、装置も提供する。【００１３】
更に、本発明は、テープ媒体へのデータの書込みを制御する装置における方法であって、装置のモードを示すモード情報をメモリに記憶するステップと、メモリに記憶されたモード情報が特定のモードを示している場合に、テープ媒体の公称容量のうち、バックヒッチを行わないことによって書き込めなくなるデータの容量を除いた目標容量のデータをテープ媒体に書き込むことを決定するステップとを含む、方法も提供する。【００１４】
更にまた、本発明は、テープ媒体へのデータの書込みを制御する装置としてコンピュータを機能させるプログラムであって、コンピュータを、装置のモードを示すモード情報をメモリに記憶する手段と、メモリに記憶されたモード情報が特定のモードを示している場合に、テープ媒体の公称容量のうち、バックヒッチを行わないことによって書き込めなくなるデータの容量を除いた目標容量のデータをテープ媒体に書き込むことを決定する手段として機能させる、プログラムも提供する。
【発明の効果】
【００１５】
本発明によれば、公称容量のうちのバックヒッチを行わないことによって書き込めなくなるデータの容量を除いた目標容量のデータをテープ媒体に書き込むことができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態が適用されるテープドライブの構成を示したブロック図である。
【図２】本発明の実施の形態における読出しデータレートに関する制御のうち、インターバルベースの制御について説明するための図である。
【図３】本発明の実施の形態における読出しデータレートに関する制御のうち、トランザクションサイズベースの制御について説明するための図である。
【図４】本発明の実施の形態におけるコントローラの機能構成例を示したブロック図である。
【図５】本発明の実施の形態におけるコントローラの第１の動作例を示した図である。
【図６】本発明の実施の形態のコントローラにおけるバックヒッチ判定部の第１の動作例を示した図である。
【図７】本発明の実施の形態におけるコントローラの第２の動作例を示した図である。
【図８】本発明の実施の形態のコントローラにおけるバックヒッチ判定部の第２の動作例を示した図である。
【図９】読出しデータレートとテープ速度との対応関係の例を示した図である。
【発明を実施するための形態】
【００１７】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
図１は、本実施の形態が適用されるテープドライブ１０の構成例を示した図である。このテープドライブ１０は、ホストインターフェイス（以下、「ホストＩ／Ｆ」という）１１と、バッファ１２と、チャネル１３と、ヘッド１４と、モータ１５とを含む。また、コントローラ１６と、ヘッド位置制御システム１７と、モータドライバ１８とを含む。更に、テープドライブ１０には、テープカートリッジ２０が挿入されることにより装填可能となっているので、ここでは、テープカートリッジ２０も図示している。このテープカートリッジ２０は、リール２１、２２に巻かれたテープ２３を含む。テープ２３は、リール２１、２２の回転に伴い、リール２１からリール２２の方向へ、又は、リール２２からリール２１の方向へ、長手方向に移動する。尚、テープ２３としては、磁気テープが例示されるが、磁気テープ以外のテープ媒体でもよい。
【００１８】
ここで、ホストＩ／Ｆ１１は、上位装置の一例であるホスト３０との通信を行う。例えば、ホスト３０から、テープ２３へのデータの書込みを指示するコマンド、テープ２３を目的の位置に移動させるコマンド、テープ２３からのデータの読出しを指示するコマンド、バッファ１２に蓄積されたデータのテープ２３への強制的な書込みを指示するコマンド（同期コマンド）を受け取る。尚、このホストＩ／Ｆ１１で用いる通信規格としては、ＳＣＳＩが例示される。ＳＣＳＩの場合、１つ目のコマンドは、Ｗｒｉｔｅコマンドに相当し、２つ目のコマンドは、ＬｏｃａｔｅコマンドやＳｐａｃｅコマンドに相当し、３つ目のコマンドは、Ｒｅａｄコマンドに相当し、４つ目のコマンドは、ＷｒｉｔｅＦＭ ｎｏｎ−ｉｍｍｅｄｉａｔｅコマンドに相当する。また、ホストＩ／Ｆ１１は、ホスト３０に対し、これらのコマンドに応じた処理が成功したのか失敗したのかの応答を返す。
【００１９】
バッファ１２は、テープ２３に書き込むべきデータやテープ２３から読み出されたデータを蓄積するメモリである。例えば、ＤＲＡＭ（Dynamic Random Access Memory）によって構成される。また、バッファ１２は、複数のバッファセグメントからなり、各バッファセグメントが、テープ２３に対する読み書きの単位であるデータセットを格納している。  チャネル１３は、テープ２３に書き込むべきデータをヘッド１４に送ったり、テープ２３から読み出されたデータをヘッド１４から受け取ったりするために用いられる通信経路である。
ヘッド１４は、テープ２３が長手方向に移動するとき、テープ２３に対して情報を書き込んだり、テープ２３から情報を読み出したりする。
モータ１５は、リール２１、２２を回転させる。尚、図では、１つの矩形でモータ１５を表しているが、モータ１５としては、リール２１、２２の各々に１つずつ、合計２個設けるのが好ましい。
【００２０】
一方、コントローラ１６は、テープドライブ１０の全体を制御する。例えば、ホストＩ／Ｆ１１で受け付けたコマンドに従って、データのテープ２３への書込みやテープ２３からの読出しを制御する。また、ヘッド位置制御システム１７やモータドライバ１８の制御も行う。
ヘッド位置制御システム１７は、所望の１つ又は複数のラップを追跡するシステムである。ここで、ラップとは、テープ２３上の複数のトラックのグループである。ラップを切り換える必要が生じると、ヘッド１４を電気的に切り換える必要も生じるので、このような切り換えの制御を、このヘッド位置制御システム１７で行う。
モータドライバ１８は、モータ１５を駆動する。尚、上述したように、モータ１５を２個使用する場合であれば、モータドライバ１８も２個設けられる。
【００２１】
本実施の形態では、かかる構成を有するテープドライブ１０において、同期コマンドを受け取ってもバックヒッチを行わずにそのままテープ２３を走行させ、次のデータを同じラップに書き込む。このように同じラップにバックヒッチを行わずにデータを書き込む方式は、ＳＷＢＦ（Same Wrap Backhitchless Flush）或いはSkip Syncと呼ばれるが、以下では、ＳＷＢＦと呼ぶことにする。
その際、本実施の形態では、公称容量（Nominal Capacity）を書き込むことを目的とするのではなく、公称容量よりも少ない目標容量（Target Capacity）を書き込むことを前提とした「高データレートモード」（特定のモードの一例）を用意する。ここで、目標容量とは、公称容量のうち、予め設定されたＳＷＢＦ用マージンを除いた容量である。例えば、公称容量１．５ＴＢのテープカートリッジ２０において、０．５ＴＢのマージンをテープ２３に設定したとすると、目標容量は１．０ＴＢとなる。この場合、高データレートモードでは、１．０ＴＢ以上のデータを書き込むことを目指すことになる。
【００２２】
この高データレートモードを実現するためには、次のような技術的工夫が必要となる。  第一に、容量制御である。この制御では、予め設定された目標容量以上のデータを書き込むためにバックヒッチを行うべきかどうかが判断される。
第二に、読出しデータレートに関する制御である。この制御では、読出しデータレートを考慮して、バックヒッチを行うべきかどうかが判断される。
第三に、高データレートモードに関する制御である。この制御では、テープドライブ１０がいつ高データレートモードになるかが決定される。
【００２３】
以下、これらの制御を順に説明する。
＜容量制御＞
テープドライブ１０は、テープカートリッジ２０の公称容量（Nominal Capacity）とは別に、予め定められた目標容量（Target Capacity）を保持している。
そして、テープドライブ１０は、同期コマンドを受け取った際に、下記の式１が成り立つか（ＴＲＵＥであるか）、成り立たないか（ＦＡＬＳＥであるか）を判断する。
その結果、ＴＲＵＥであると判断された場合は、目標容量分のデータをテープ２３に書くために十分なマージンがあるとして、バックヒッチを行わずに、ホスト３０から次のデータが送られてくるのを待つ。その後、規定時間以内に次のデータが準備できれば、書き込みを再開する。もし、規定時間以内に次のデータが準備できなければ、バックヒッチを行い、次のデータが準備できた時点で、最後に書いたデータの直後から次のデータをテープ２３に書き出す。
一方、ＦＡＬＳＥであると判断された場合は、通常通りバックヒッチを行い、次のデータがホスト３０から送られてくるのを待つ。
【００２４】
（式１）（Ｃ×ｒ−ｎ）×Ｌ＜Ｔ−ｘ
ここで、各変数は、次のように定義する。
Ｃは、公称容量１．５ＴＢの場合の総データセット数である。例えば、データセットサイズが２．４ＭＢであるとすると、Ｃ＝１．５ＴＢ／２．４ＭＢ＝６２５０００となる。  Ｔは、有効テープ長であり、総テープ長から終端警告エリアの長さを減じて得られた値である。尚、終端警告エリアとは、テープ２３の終端近くにあり、バッファ１２に格納された全てのデータがテープ２３の終端までに書き出されるように「Ｅａｒｌｙ  Ｗａｒｎｉｎｇ」という警告をホスト３０に返すためのエリアである。
ｒは、ＳＷＢＦ用マージン比率であり、ＳＷＢＦ用マージンの長さをＴで除して得られた値である。例えば、目標容量が１．０ＴＢで公称容量が１．５ＴＢであるとすると、ｒ＝２／３となる。
ｘは、最終データセット位置、つまり、最後に書かれたデータセットの物理位置である（０＜ｘ＜Ｔ）。
ｎは、最終データセット番号、つまり、最後に書かれたデータセットの番号である。
Ｌは、データセット長である。尚、データセットは、書込みエラーが発生すると、再書き込みが行われるが、Ｌはこの再書き込みを考慮しない場合のデータセット長である。
【００２５】
上記式１によってバックヒッチを行うかどうかを判断することにより、目標容量以上のデータをテープ２３に書き込むことを目指し、かつ、同期コマンドによるバックヒッチの発生頻度を減らすことが可能になる。
【００２６】
＜読出しデータレートに関する制御＞
ＳＷＢＦを頻繁に実行するとテープ２３に書き込まれるデータセットの間隔が広がり、このようなデータセットをテープ２３から読み出す際の転送レートが著しく低下する可能性がある。例えば、２４ＭＢ単位で同期コマンドを受け取り、式１に従って毎回ＳＷＢＦを実行する場合を考える。この場合、１データセットが２．４ＭＢであるとすると、１０データセットがまとめてテープ２３に書かれ、ＳＷＢＦが実行され、データセットの間隔が空いて次のデータセットが書かれることになる。ここで、１０データセットがまとめて書かれる場合のデータセットの間隔は非常に短いが、ＳＷＢＦが実行された場合に空けられたデータセットの間隔は非常に長い（例えば３ｍ）。
【００２７】
通常、テープドライブ１０の仕様に書かれている読み出し時の最大データ転送レートは、線密度／最高テープ速度で決定されている。線密度は、データセットサイズ／データセット長であり、ＳＷＢＦによって発生するテープ２３上のデータセットの間隔は考慮していない。よって、通常１４０ＭＢ／ｓｅｃで読出し可能なテープドライブ１０において、最高テープ速度が５．９８７ｍ／ｓｅｃであるとすると、上記の場合、以下に示すような計算により、読出しデータレートは、３５ＭＢ／ｓｅｃとなる。
【００２８】
ＳＷＢＦのオーバーヘッド＝３［ｍ］／５．９８７［ｍ／ｓｅｃ］＝０．５０１［ｓｅｃ］
１０データセットを読み出す時間＝１０×２．４［ＭＢ］／１４０［ＭＢ／ｓｅｃ］＝０．１７１［ｓｅｃ］
平均読出し時間＝読出し対象データのデータ量／（ＳＷＢＦのオーバーヘッド＋１０データセットを読み出す時間）＝１０×２．４［ＭＢ］／（０．５０１［ｓｅｃ］＋０．１７１［ｓｅｃ］）＝３５［ＭＢ／ｓｅｃ］
【００２９】
ここで、いくら書込み時のパフォーマンスが向上したとしても読出し時のパフォーマンスが著しく低下してしまうことを懸念するユーザの存在は否定できない。
そこで、本実施の形態では、データ書込み時に、データ読出し時のパフォーマンスがどの程度まで劣化してもよいかを意識して、ＳＷＢＦを行うかどうかを決定する。
このような読出しデータレートに関する制御方式としては、大きく分けて２つの制御方式がある。
【００３０】
第１の方式は、インターバルベースの制御方式である。
次のデータが準備されるのを待つ時間であるインターバルを制御すれば、データセットの間の距離を制御することができる。これにより、ある距離におけるデータセット数を制御でき、読出しデータレートを制御することができる。
具体的には、下記の式２によって導かれるThresholdを制御することにより読出しデータレートを制御する。ＬＴＯに準拠したテープドライブ１０では、データセットの間隔の最大値は４ｍである。読出しデータレートを気にしないのであれば、上述の式１でＴＲＵＥと判断された後、４ｍを通過するまで、次のデータが準備されるのを待ち続ければよい。しかしながら、下記の式２を用いて、次のデータが準備されるのを待つ時間を制御することにより、読出しデータレートを制御する。即ち、式２のThresholdが０を超えていれば、ＳＷＢＦを行い、Thresholdが０以下であれば、ＳＷＢＦを行わないようにする。
【００３１】
（式２）Threshold = Target_Data_Size/Target_Read_Data_Rate - Target_Data_Size/Read_Data_Rate_with_Speed1 - Accumulated_Interval * Speed_X/Speed1
ここで、各変数は、次のように定義する。
Target_Data_Sizeは、パフォーマンスを測定するための単位データのサイズである。
Target_Read_Data_Rateは、目標とする読出しデータレートである。
Read_Data_Rate_with_Speed1は、テープ２３を最高速度で走行した場合における読出しデータレートである。即ち、テープドライブ１０は、上記単位データにつき、Target_Read_Data_Rateよりも速いRead_Data_Rate_with_Speed1を供給することを前提とする。
Accumulated_Intervalは、Target_Data_Sizeのデータを書いている間にＳＷＢＦによって発生した時間であり、具体的には、Target_Data_Sizeのデータを書いている間における同期コマンドに応じた書込みの完了から次のデータの書込みまでの時間の累計である。
Speed_Xは、ＳＷＢＦ実行中の書込みテープ速度である。Accumulated_Intervalはデータを書き込むときに測定した時間であるので、そのときのテープ速度Speed_Xを用いて、Speed1で読み飛ばすのに要する時間に変換している。
【００３２】
例えば、Target_Data_Size:=100MB、Target_Read_Data_Rate:=100MB/sec、Read_Data_Rate_with_Speed1:=142MB/sec、Speed_X:=Speed1=5.987m/secとし、トランザクションサイズ（１つの同期コマンドに応じてテープ２３に書き出されるデータ量）を１０ＭＢ、トランザクション（１つの同期コマンドに応じたテープ２３へのデータの書出し）の間のインターバルを全て０．１ｓｅｃとする。
１つ目の同期コマンドに応じて１０ＭＢのデータを書き出したとき、Threshold = 100/100 - 100/142 - 0 = 0.29secとなる。この場合、Thresholdは０を超えているので、ＳＷＢＦが行われる。
次に、０．１秒後、２つ目の同期コマンドに応じて１０ＭＢのデータを書き出したとき、Threshold = 100/100 - 100/142 - 0.1 = 0.19secとなる。この場合も、Thresholdは０を超えているので、ＳＷＢＦが行われる。
また、０．１秒後、３つ目の同期コマンドに応じて１０ＭＢのデータを書き出したとき、Threshold = 100/100 - 100/142 - 0.2 = 0.09secとなる。この場合も、Thresholdは０を超えているので、ＳＷＢＦが行われる。
更に、０．１秒後、４つ目の同期コマンドに応じて１０ＭＢのデータを書き出したとき、Threshold = 100/100 - 100/142 - 0.3 = -0.91secとなる。この場合、Thresholdは０以下であるので、ＳＷＢＦは行われない。
【００３３】
即ち、ＳＷＢＦを実行してから次のデータが準備されるまで時間が常に短ければ、同期コマンドを受け取る頻度が高くても読出しデータレートに影響がないため、ＳＷＢＦを実行することになる。
しかしながら、ＳＷＢＦを実行してから次のデータが準備されるまでの時間が長くなれば、次のＳＷＢＦを実行する際には、次のデータが準備されるのを待つ時間を短くする。  こうすることにより、読出しデータレートの目標値を制御する。
【００３４】
このインターバルベースの制御方式について、図を参照して説明する。
図２は、テープ２３のうち、パフォーマンスを測定するための単位データが書き込まれた部分を示した図である。
図では、データが書き込まれた４つの領域を斜線ハッチングで示しており、各領域に書き込まれたデータのサイズを左から順にD1、D2、D3、D4とする。即ち、Target_Data_Size = D1 + D2 + D3 + D4である。そして、これらのデータをテープドライブ１０が用意する最大の読出しデータレートRead_Data_Rate_with_Speed1で読み出すのに要する時間は、D1/Read_Data_Rate_with_Speed1 + D2/Read_Data_Rate_with_Speed1 + D3/Read_Data_Rate_with_Speed1 + D4/Read_Data_Rate_with_Speed1である。また、これらのデータの間には、ＳＷＢＦを実行することによってデータが書き込まれなかった３つの領域がある。これらの領域をテープドライブ１０が用意する最大のテープ速度（最大の読出しデータレートに対応するテープ速度）で読み飛ばすのに要する時間を順に、Interval1、Interval2、Interval3とする。即ち、Accumulated_Interval * Speed_X/Speed1 = Interval1 + Interval2 + Interval3である。
この場合、最大のテープ速度でデータを読み出すことにより、単位データはTarget_Data_Size/Read_Data_Rate_with_Speed1 + Accumulated_Interval * Speed_X/Speed1という時間で読み出すことができる。従って、この時間が、Target_Data_Size/Target_Read_Data_Rateよりも短ければ、単位データを目標の読出しデータレートで読み出すことが可能であると言える。
【００３５】
第２の方式は、トランザクションサイズベースの制御方式である。
トランザクションサイズが小さいか、又は、蓄積されたデータのサイズが小さい場合には、ＳＷＢＦを実行しないようにする。これにより、ある距離におけるデータセット数を制御でき、読出しデータレートを制御することができる。
具体的には、下記の式３によって導かれるThresholdを制御することにより読出しデータレートを制御する。即ち、式３のThresholdが０を超えていれば、ＳＷＢＦを行い、Thresholdが０以下であれば、ＳＷＢＦを行わないようにする。
【００３６】
（式３）Threshold = Tx_Size/Target_Read_Data_Rate - ( Tx_Size + X )/Read_Data_Rate_with_Speed1
ここで、各変数は、次のように定義する。
Tx_Sizeは、トランザクションサイズ、つまり、上述の通り、１つの同期コマンドに応じてテープ２３に書き出されるデータ量である。
Target_Read_Data_Rateは、目標とする読出しデータレートである。
Xは、ＳＷＢＦ後の最大空走距離から読出し可能なデータ量であり、X = Read_Data_Rate_with_Speed1*Max_Interval/Tape_Speedである。ここで、Max_Intervalは、ＳＷＢＦ後の最大空走距離であり、ＬＴＯに準拠したテープドライブ１０では４ｍである。また、Tape_Speedは、現在のテープ２３の速度である。
Read_Data_Rate_with_Speed1は、テープ２３を最高速度で走行した場合における読出しデータレートである。
【００３７】
例えば、Target_Read_Data_Rate :=100、Read_Data_Rate_with_Speed1:=142MB/sec、Max_Interval:=4m、Tape_Speed:=5.987m/secとする。
トランザクションサイズが２３０ＭＢであるとすると、Threshold = 230/100 - ( 230 + 142*4/5.987)/142 = 0.012secとなる。この場合、Thresholdは０を超えているので、ＳＷＢＦが行われる。
また、トランザクションサイズが２２０ＭＢであるとすると、Threshold = 220/100 - ( 220 + 142*4/5.987)/142 = -0.017secとなる。この場合、Thresholdは０以下であるので、ＳＷＢＦは行われない。
【００３８】
このトランザクションサイズベースの制御方式について、図を参照して説明する。
図３は、テープ２３のうち、１つのトランザクション分のデータが書き込まれた領域と、ＳＷＢＦを実行することによってデータが書き込まれなかった領域とからなる部分を示した図である。
図では、データが書き込まれた領域を斜線ハッチングで示しており、この領域に書き込まれたデータのサイズ、つまりトランザクションサイズをTx_Sizeとする。そして、このデータをテープドライブ１０が用意する最大の読出しデータレートRead_Data_Rate_with_Speed1で読み出すのに要する時間は、Tx_Size/Read_Data_Rate_with_Speed1である。また、ＳＷＢＦを実行することによってデータが書き込まれなかった領域に書き込み可能なデータのサイズをXとする。そして、このデータをテープドライブ１０が用意する最大の読出しデータレートRead_Data_Rate_with_Speed1で読み出すのに要する時間、つまり、この領域を読み飛ばすのに要する時間は、X/Read_Data_Rate_with_Speed1である。
この場合、最大のテープ速度でデータを読み出すことにより、１つのトランザクション分のデータ（単位データと捉えることもできる）は(Tx_Size + X)/Read_Data_Rate_with_Speed1という時間で読み出すことができる。従って、この時間が、Tx_Size/Target_Read_Data_Rateよりも短ければ、１つのトランザクション分のデータを目標の読出しデータレートで読み出すことが可能であると言える。
【００３９】
＜高データレートモードに関する制御＞
テープドライブ１０に高データレートモードを用意するに当たっては、いつテープドライブ１０を高データレートモードに設定するかを考慮する必要がある。
テープドライブ１０を高データレートモードに設定する方法としては、下記のような方法が考えられる。
第一に、アプリケーションプログラムがテープカートリッジ２０をロードするたびに設定する方法である。即ち、テープカートリッジ２０の装填に応じて、テープ２３にデータを書き込むアプリケーションプログラムの指示により、高データレートモードに設定するという方法である。
第二に、テープドライブ１０が内部の不揮発性メモリに高データレートモードであることを記録しておき、アプリケーションプログラムに対してはトランスペアレントでありながら高データレートモードで動く方法である。この場合、不揮発性メモリへの高データレートモードであることの記録は、テープドライブ１０の出荷時に行ってもよいし、テープドライブ１０の出荷後の任意のタイミングでツール等を用いて行ってもよい。
第三に、特定のテープカートリッジ２０がロードされるとテープドライブ１０が高データレートモードになる方法である。
【００４０】
次に、このような動作を実現するためのコントローラ１６の機能構成について説明する。
図４は、コントローラ１６の機能構成例を示したブロック図である。
図示するように、コントローラ１６は、コマンド処理部４１と、バッファ管理部４２と、チャネル入出力部４３と、バックヒッチ判定部４４と、モード情報記憶部４５と、目標容量記憶部４６と、履歴記憶部４７と、動作信号出力部４８とを備える。
【００４１】
このうち、コマンド処理部４１は、ホストＩ／Ｆ１１からコマンドを受け取る。ここで、コマンドとしては、例えば、バッファ１２にデータを格納することを指示するＷｒｉｔｅコマンド、バッファ１２に格納されたデータをテープ２３に書き込む同期コマンド（ＷｒｉｔｅＦＭコマンド等）がある。
バッファ管理部４２は、コマンド処理部４１がＷｒｉｔｅコマンドを受け取った場合は、データをバッファ１２内に用意する。また、コマンド処理部４１が同期コマンドを受け取った場合は、データをバッファ１２から読み出してチャネル入出力部４３に出力する。  チャネル入出力部４３は、バッファ管理部４２がバッファ１２から読み出したデータをチャネル１３に出力したり、チャネル１３から受け取ったデータをバッファ１２に格納したりする。
【００４２】
バックヒッチ判定部４４は、目標容量をテープ２３に書き出すことと、目標とする読出しデータレートを確保することのために、バックヒッチを行うべきかどうかを判定する。本実施の形態では、目標容量のデータをテープ媒体に書き込むことを決定したり、バックヒッチを行わないことを決定したりする決定部の一例として、バックヒッチ判定部４４を設けている。
モード情報記憶部４５は、現在テープドライブ１０が高データレートモードに設定されているかどうかを示すモード情報を記憶する。本実施の形態では、モード情報を記憶する記憶部の一例として、モード情報記憶部４５を設けている。
目標容量記憶部４６は、テープ２３の公称容量のうち書き込むべき目標容量の情報を記憶する。
履歴記憶部４７は、過去にテープ２３に書き込んだデータセットのサイズや位置、データセット間の距離等の情報を含む履歴情報を記憶する。但し、履歴情報にはこれ以外の情報（例えば、エラーの発生に関する情報）を含めてもよい。
動作信号出力部４８は、モータドライバ１８に対して、バックヒッチ判定部４４で決定された動作を行うことを指示する信号を出力する。
【００４３】
次に、コントローラ１６の動作について説明する。
図５は、コントローラ１６の第１の動作例を示したフローチャートである。この第１の動作例は、上記読出しデータレートに関する制御におけるインターバルベースの制御方式に対応する。尚、この動作例は、バッファ１２内のデータセットが同期コマンドに応じてテープ２３に書き込まれているときに開始するものとする。
コントローラ１６では、このようなデータセットの書込み中に、バッファ管理部４２が、バッファ１２から最後のデータセットを読み出してチャネル入出力部４３に渡し、チャネル入出力部４３が、渡されたデータセットをテープ２３に書き込む（ステップ４０１）。
【００４４】
このとき、最後のデータセットがテープ２３に書き込まれたことがバッファ管理部４２に伝えられるので、バッファ管理部４２は、バックヒッチ判定部４４に対して、バックヒッチを行うかどうかを判定するよう指示する。これにより、バックヒッチ判定部４４は、目標容量をテープ２３に書き出し、かつ、目標とする読出しデータレートを確保するという観点からバックヒッチを行うかどうかを判定するバックヒッチ判定処理を行う（ステップ４０２）。尚、このバックヒッチ判定処理の詳細については後述する。そして、バックヒッチ判定処理における判定結果は、動作信号出力部４８に出力される。
【００４５】
これにより、動作信号出力部４８は、判定結果がＳＷＢＦを実行すること（バックヒッチを行わないこと）を示しているかどうかを判定する（ステップ４０３）。
ここで、判定結果がＳＷＢＦを実行することを示している場合、動作信号出力部４８は、ＳＷＢＦを実行することを決定する（ステップ４０４）。即ち、モータドライバ１８に対し、バックヒッチを開始する旨の信号を出力しない。
一方、判定結果がＳＷＢＦを実行することを示していない場合、つまり、バックヒッチを行うことを示している場合、動作信号出力部４８は、モータドライバ１８に対し、バックヒッチを開始する旨の信号を出力する（ステップ４０５）。
【００４６】
このようにして、ＳＷＢＦを行うことの決定、又は、バックヒッチの開始がなされると、その旨はコマンド処理部４１に返され、コマンド処理部４１は、同期コマンドの完了をホスト３０に報告する（ステップ４０６）。
【００４７】
その後、コマンド処理部４１は、次のデータセットを受け付けてバッファ管理部４２に受け渡し、バッファ管理部４２が、受け付けたデータをバッファ１２に格納する（ステップ４０７）。
次に、バッファ管理部４２は、新しい書込みを開始するために十分なデータセットが受け取られたかどうかを判定する（ステップ４０８）。そして、十分なデータセットが受け取られていないと判定されれば、ステップ４０６の終了後から一定時間経過したかどうかの判断に移り（ステップ４０９）、一定時間が経過していなければ、暫く待って（ステップ４１０）、再度ステップ４０８の判定を行う。一定時間が経過していれば、バッファ管理部４２は、動作信号出力部４８に制御を渡し、動作信号出力部４８が、モータドライバ１８に対し、バックヒッチを開始するように指示する信号を出力する（ステップ４１２）。また、ステップ４０８で十分なデータセットが受け取られたと判定されれば、現在のヘッド１４の位置と最後に書かれたデータセットの終端の位置との間隔が短いかどうかを判定する（ステップ４１１）。例えば、その間隔が、データセット間隔の閾値よりも短いかどうかを判定すればよい。
【００４８】
ここで、ステップ４０６の終了後から一定時間が経過した場合、及び、十分なデータセットを受け取った後、現在のヘッド１４の位置と最後に書かれたデータセットの終端の位置との間隔が長い場合、バッファ管理部４２は、動作信号出力部４８に制御を渡し、動作信号出力部４８が、モータドライバ１８に対し、バックヒッチを開始するように指示する信号を出力する（ステップ４１２）。そして、バッファ管理部４２は、バッファ１２からデータセットを読み出してチャネル入出力部４３に受け渡し、チャネル入出力部４３が、データセットをテープ２３に書き込む（ステップ４１３）。
一方、現在のヘッド１４の位置と最後に書かれたデータセットの終端の位置との間隔が短ければ、バックヒッチは行わずに、バッファ管理部４２が、バッファ１２からデータセットを読み出してチャネル入出力部４３に受け渡し、チャネル入出力部４３が、データセットをテープ２３に書き込む（ステップ４１３）。
その後、チャネル入出力部４３が、現在の書込み位置の直近の単位データ（ターゲットデータ）が書き込まれた範囲内に生じたデータセット間の間隔の累計であるAccumulated_Intervalと、そのときのテープ速度Speed_Xとを取得し、履歴記憶部４７に記憶する（ステップ４１４）。
【００４９】
次に、ステップ４０２のバックヒッチ判定処理について詳細に説明する。
図６は、バックヒッチ判定処理の流れを示したフローチャートである。
バックヒッチ判定部４４は、まず、モード情報記憶部４５に記憶されたモード情報を取得する（ステップ５０１）。そして、モード情報が高データレートモードを示しているかどうかを判定する（ステップ５０２）。
その結果、モード情報が高データレートモードを示していると判定されれば、バックヒッチ判定部４４は、目標容量記憶部４６から目標容量を取得する（ステップ５０３）。また、バックヒッチ判定部４４は、総データセット数Ｃ、有効テープ長Ｔ、ＳＷＢＦ用マージン比率ｒ、最終データサイズセット位置ｘ、最終データセット番号ｎ、データセット長Ｌを取得する（ステップ５０４）。このうち、Ｃ、Ｔ、Ｌは、予め内部に保持された設定情報から取得するとよい。また、ｒは、ステップ５０３で取得した目標容量を公称容量で除することによって求めるとよい。更に、ｘ、ｎは、ステップ４０１で最後のデータセットを書き込んだときに得られるので、その値を取得するとよい。
【００５０】
次に、バックヒッチ判定部４４は、このようにして取得した値に関し、条件式「（Ｃ×ｒ−ｎ）×Ｌ＜Ｔ−ｘ」が成立するかどうかを判定する（ステップ５０５）。
ここで、条件式が成立した場合、バックヒッチ判定部４４は、Target_Data_Size、Target_Read_Data_Rate、Read_Data_Rate_with_Speed1、Accumulated_Interval、Speed_X、Speed1を取得する（ステップ５０６）。このうち、Target_Data_Size、Target_Read_Data_Rate、Read_Data_Rate_with_Speed1、Speed1は、予め内部に保持された設定情報から取得するとよい。また、Accumulated_Interval、Speed_Xは、ステップ４１４で履歴記憶部４７に記憶されたものを取得するとよい。
【００５１】
次に、バックヒッチ判定部４４は、式「Threshold =  Target_Data_Size/Target_Read_Data_Rate - Target_Data_Size/Read_Data_Rate_with_Speed1 - Accumulated_Interval * Speed_X/Speed1」により、Thresholdを求め（ステップ５０７）、Thresholdが０より大きいかどうかを判定する（ステップ５０８）。
その結果、Thresholdが０より大きいと判定されれば、ＳＷＢＦを実行することを判定結果とする（ステップ５０９）。
一方、ステップ５０２でモード情報が高データレートモードを示していないと判定された場合、ステップ５０５で条件式「（Ｃ×ｒ−ｎ）×Ｌ＜Ｔ−ｘ」が成立しないと判定された場合、及び、ステップ５０８でThresholdが０以下と判定された場合は、バックヒッチを行うことを判定結果とする（ステップ５１０）。
【００５２】
図７は、コントローラ１６の第２の動作例を示したフローチャートである。この第２の動作例は、上記読出しデータレートに関する制御におけるトランザクションサイズベースの制御方式に対応する。尚、この動作例は、バッファ１２内のデータセットが同期コマンドに応じてテープ２３に書き込まれているときに開始するものとする。
そして、この第２の動作例のステップ４５１〜４６３は、上記第１の動作例のステップ４０１〜４１３と同様であり、この第２の動作例は、ステップ４１４のようにAccumulated_Interval及びSpeed_Xを取得するステップを含んでいない点のみで上記第１の動作例と異なる。
【００５３】
次に、ステップ４５２のバックヒッチ判定処理について詳細に説明する。
図８は、バックヒッチ判定処理の流れを示したフローチャートである。
このバックヒッチ判定処理の流れにおけるステップ５５１〜５５５は、図６のステップ５０１〜５０５と同様であるので、ここでの詳しい説明は省略する。
ステップ５５５で、条件式「（Ｃ×ｒ−ｎ）×Ｌ＜Ｔ−ｘ」が成立した場合、バックヒッチ判定部４４は、Tx_Size、Target_Read_Data_Rate、X、Read_Data_Rate_with_Speed1を取得する（ステップ５５６）。このうち、Tx_Sizeは、ステップ４５１で最後のデータセットを書き込んだときに得られるので、その値を取得するとよい。また、Target_Read_Data_Rate、Read_Data_Rate_with_Speed1は、予め内部に保持された設定情報から取得するとよい。更に、Xは、Read_Data_Rate_with_Speed1*Max_Interval/Tape_Speedであるので、予め内部に保持された設定情報から取得した値を用いて算出すればよい。
【００５４】
次に、バックヒッチ判定部４４は、式「Threshold =  Tx_Size/Target_Read_Data_Rate- ( Tx_Size + X )/Read_Data_Rate_with_Speed1」により、Thresholdを求め（ステップ５５７）、Thresholdが０より大きいかどうかを判定する（ステップ５５８）。
その結果、Thresholdが０より大きいと判定されれば、ＳＷＢＦを実行することを判定結果とする（ステップ５５９）。
一方、ステップ５５２でモード情報が高データレートモードを示していないと判定された場合、ステップ５５５で条件式「（Ｃ×ｒ−ｎ）×Ｌ＜Ｔ−ｘ」が成立しないと判定された場合、及び、ステップ５５８でThresholdが０以下と判定された場合は、バックヒッチを行うことを判定結果とする（ステップ５６０）。
【００５５】
ここで、テープ２３の速度の選択について説明する。
まず、テープ２３の速度がホスト３０のデータレートに比べて速過ぎる場合、バックヒッチが発生するのでデータ転送を効率的に行えなくなる。一方、テープ２３の速度がホスト３０のデータレートに比べて遅過ぎる場合、テープ２３へ書き込まれるのを待つデータがバッファ１２に滞留してしまい、ホスト３０との間の実質的なデータレートが低くなってしまう。こうしたことから、ホスト３０から送られたデータをテープ２３に書き込んだり、テープ２３から読み出したデータをホスト３０に送ったりする際、ホスト３０のデータレートとテープ２３からの読出しデータレートとは一致していることが好ましい。
【００５６】
図９に、テープ２３からの読出しデータレートとテープ速度との対応の一例を示している。図では、テープ速度を「ＳｐｅｅｄＸ」（Ｘ＝１，…，５）と表記しているが、具体的な数値（例えばＳｐｅｅｄ１であれば、５．９８７ｍ／ｓｅｃ）を用いてもよい。尚、図において、「ＳｐｅｅｄＸ」は、Ｘの値が小さいほど、高速であるものとする。
このような状況で、例えば、ホスト３０のデータレートが１００ＭＢ／ｓｅｃである場合を考える。この場合、通常は、読出しデータレート１００ＭＢ／ｓｅｃに対応するテープ速度であるＳｐｅｅｄ３でテープ２３を走行させるのが適切であると考えられる。しかしながら、本実施の形態の場合は、データセットとデータセットの間に隙間が生じるので、Ｓｐｅｅｄ３でテープ２３を走行させても、１００ＭＢ／ｓｅｃの読出しデータレートを確保できない可能性がある。そこで、Ｓｐｅｅｄ２又はＳｐｅｅｄ１でテープ２３を走行させて、１００ＭＢ／ｓｅｃの読出しデータレートを確保するのが好ましい。テープ速度としてＳｐｅｅｄ１とＳｐｅｅｄ２の何れが望ましいかは、特許文献１と同様の技術を用いて判定可能である。即ち、ＳＷＢＦによって書込みの記録密度が低下したことを、エラーが発生したために記録密度が低下したことと捉えれば、特許文献１と同様の方法で、どのテープ速度が最適であるかを決定可能である。
【００５７】
以上により、本実施の形態についての説明を終了する。
このように、本実施の形態では、公称容量のうちのバックヒッチを行わないことによって書き込めなくなるデータの容量を除いた目標容量のデータをテープ媒体に書き込む高データレートモードを用意した。これにより、公称容量のうちの目標容量のデータをテープ媒体に書き込むことができるようになる。
【００５８】
尚、本実施の形態では、テープ２３の速度を変更するに先立ってバックヒッチを行うようにしたが、バックヒッチを行わずにテープ２３の速度を変更する構成としてもよい。
【００５９】
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム（装置又は機器）、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ（ＣＤ−ＲＯＭ）、コンパクトディスク−リード／ライト（ＣＤ−Ｒ／Ｗ）及びＤＶＤが含まれる。
【００６０】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
【符号の説明】
【００６１】
１０…テープドライブ、１１…ホストＩ／Ｆ、１２…バッファ、１３…チャネル、１４…ヘッド、１５…モータ、１６…コントローラ、１７…ヘッド位置制御システム、１８…モータドライバ
【図１】
0005476395.tif 000002
【図２】
0005476395.tif 000003
【図３】
0005476395.tif 000004
【図４】
0005476395.tif 000005
【図５】
0005476395.tif 000006
【図６】
0005476395.tif 000007
【図７】
0005476395.tif 000008
【図８】
0005476395.tif 000009
【図９】
0005476395.tif 000010