(57)【特許請求の範囲】
【請求項１】
複数のトラックが形成された磁気テープに複数のデータを書き込むテープドライブと、
前記磁気テープの途中に設定された書き込み方向の反転位置を示す情報を記憶する記憶部と、
前記複数のデータのうち一のデータの前記磁気テープへの書き込みを前記テープドライブに開始させ、前記複数のトラックのうち書き込み方向が順方向の第１のトラックにおける前記一のデータの書き込み領域が前記反転位置を超える場合、前記第１のトラックにおける前記一のデータの終端までの書き込みを前記テープドライブに継続させ、前記終端において書き込み先を前記複数のトラックのうち第２のトラックに変更するとともに書き込み方向が反転するように指示する方向反転指示を前記テープドライブに送信する制御部と、
を有するテープ装置。
【請求項２】
前記方向反転指示の送信は、読み書きの方向を反転することを示す制御情報を前記第１のトラックにおける前記終端の位置に書き込むように前記テープドライブに指示する処理を含む、
請求項１記載のテープ装置。
【請求項３】
前記反転位置は、前記磁気テープの総容量より小さい所定の書き込み上限量と、前記複数のトラックの総トラック数とに基づいて決定される、
請求項１または２記載のテープ装置。
【請求項４】
前記制御部は、
前記複数のデータのうち前記一のデータの前の他のデータの前記第１のトラックへの書き込みが完了したとき、前記複数のデータのうち前記磁気テープに書き込まれた書き込み済みデータの各データ量の履歴に基づいて、前記一のデータのデータ量の予測値を算出し、
前記予測値に基づいて前記一のデータ全体を前記第１のトラックに書き込むことが不可能と判定した場合には、前記他のデータの書き込み完了位置において前記方向反転指示を前記テープドライブに送信する、
請求項１乃至３のいずれか１項に記載のテープ装置。
【請求項５】
前記制御部は、
前記複数のデータのうち前記一のデータの前の他のデータの前記第１のトラックへの書き込みが完了したとき、前記複数のデータのうち前記磁気テープに書き込まれた書き込み済みデータの各データ量の履歴に基づいて、前記一のデータのデータ量の予測値を算出し、
前記予測値に基づいて前記一のデータ全体を前記第１のトラックに書き込むことが不可能と判定した場合には、前記他のデータの書き込み完了位置で前記方向反転指示を送信したと仮定した場合において前記書き込み上限量から前記磁気テープに書き込み済みの総データ量を減算した容量の書き込みデータを前記磁気テープの残り領域に書き込み可能かを判定し、
前記書き込みデータを前記残り領域に書き込み可能な場合に、前記他のデータの終端において前記方向反転指示を前記テープドライブに送信する、
請求項３記載のテープ装置。
【請求項６】
テープドライブによる磁気テープへの複数のデータの書き込みを制御する制御装置において、
前記磁気テープの途中に設定された書き込み方向の反転位置を示す情報を記憶する記憶部と、
前記複数のデータのうち一のデータの前記磁気テープへの書き込みを前記テープドライブに開始させ、前記磁気テープに形成された複数のトラックのうち書き込み方向が順方向の第１のトラックにおける前記一のデータの書き込み領域が前記反転位置を超える場合、前記第１のトラックにおける前記一のデータの終端までの書き込みを前記テープドライブに継続させ、前記終端において書き込み先を前記複数のトラックのうち第２のトラックに変更するとともに書き込み方向が反転するように指示する方向反転指示を前記テープドライブに送信する制御部と、
を有する制御装置。
【請求項７】
テープドライブによる磁気テープへの複数のデータの書き込みを制御するコンピュータに、
前記複数のデータのうち一のデータの前記磁気テープへの書き込みを前記テープドライブに開始させ、
前記磁気テープに形成された複数のトラックのうち書き込み方向が順方向の第１のトラックにおける前記一のデータの書き込み領域が、前記磁気テープの途中に設定された書き込み方向の反転位置を超える場合、前記第１のトラックにおける前記一のデータの終端までの書き込みを前記テープドライブに継続させ、前記終端において書き込み先を前記複数のトラックのうち第２のトラックに変更するとともに書き込み方向が反転するように指示する方向反転指示を前記テープドライブに送信する、
処理を実行させる制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はテープ装置、制御装置および制御プログラムに関する。
【背景技術】
【０００２】
大容量かつ低コストの記憶媒体として、磁気テープが知られている。また、リニア方式の磁気テープの中には、複数のトラックが形成され、あるトラックに対して始端から順方向にデータが書き込まれ、そのトラックの末端まで書き込みが行われると、別のトラックに対して逆方向にデータが書き込まれるものがある。このような方式が採用された磁気テープの規格として、ＬＴＯ  Ｕｌｔｒｉｕｍ（ＬＴＯ：Liner Tape-Open）が広く利用されている。
【０００３】
ここで、磁気テープへの書き込みに関する技術の一例として、磁気テープに書き込む全データ量から折り返し位置までのデータ長を算出し、算出した折り返し位置まで順方向でデータを書き込んだ後に、逆方向に残りのデータを書き込む技術が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−４５１８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記の技術のように、折り返し位置までデータを書き込んだ後、残りのデータを逆方向に書き込んだ場合、書き込んだデータを読み出すときには、折り返し位置で逆方向に読み出すための方向反転動作がテープドライブで行われる。このような方向反転動作には、例えば２秒といった長い時間がかかる。このため、磁気テープからのデータの読み出し中に方向反転動作が発生すると、データの読み出しにかかる時間が長くなるという問題がある。
【０００６】
１つの側面では、本発明は、磁気テープからデータを読み出す時間を短縮できるテープ装置、制御装置および制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
１つの態様では、テープ装置が提供される。このテープ装置は、テープドライブと記憶部と制御部とを有する。テープドライブは、複数のトラックが形成された磁気テープに複数のデータを書き込む。記憶部は、磁気テープの途中に設定された書き込み方向の反転位置を示す情報を記憶する。制御部は、複数のデータのうち一のデータの磁気テープへの書き込みをテープドライブに開始させ、複数のトラックのうち書き込み方向が順方向の第１のトラックにおける一のデータの書き込み領域が反転位置を超える場合、一のデータの終端までの書き込みをテープドライブに継続させ、終端において書き込み先を複数のトラックのうち第２のトラックに変更するとともに書き込み方向が反転するように指示する方向反転指示をテープドライブに送信する。
【０００８】
また、１つの態様では、テープドライブによる磁気テープへの複数のデータの書き込みを制御する制御装置が提供される。この制御装置は、記憶部と制御部とを有する。記憶部は、磁気テープの途中に設定された書き込み方向の反転位置を示す情報を記憶する。制御部は、複数のデータのうち一のデータの磁気テープへの書き込みをテープドライブに開始させ、磁気テープに形成された複数のトラックのうち書き込み方向が順方向の第１のトラックにおける一のデータの書き込み領域が反転位置を超える場合、一のデータの終端までの書き込みをテープドライブに継続させ、終端において書き込み先を複数のトラックのうち第２のトラックに変更するとともに書き込み方向が反転するように指示する方向反転指示をテープドライブに送信する。
【０００９】
また、１つの態様では、制御プログラムが提供される。この制御プログラムは、テープドライブによる磁気テープへの複数のデータの書き込みを制御するコンピュータに、複数のデータのうち一のデータの磁気テープへの書き込みをテープドライブに開始させ、磁気テープに形成された複数のトラックのうち書き込み方向が順方向の第１のトラックにおける一のデータの書き込み領域が、磁気テープの途中に設定された書き込み方向の反転位置を超える場合、一のデータの終端までの書き込みをテープドライブに継続させ、終端において書き込み先を複数のトラックのうち第２のトラックに変更するとともに書き込み方向が反転するように指示する方向反転指示をテープドライブに送信する、処理を実行させる。
【発明の効果】
【００１０】
１つの側面では、磁気テープからデータを読み出す時間を短縮できる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態のテープ装置を示す図である。
【図２】第２の実施の形態のテープ装置のハードウェア例を示す図である。
【図３】磁気テープの例を示す図である。
【図４】磁気テープのデータフォーマットを説明するための図である。
【図５】ＷＲＡＰ単位でのデータの書き込みおよび読み出しについて説明するための図である。
【図６】３６トラックモードでの書き込み処理の例を示す図である。
【図７】コントローラの機能例を示す図である。
【図８】媒体仕様テーブルの例を示す図である。
【図９】媒体情報テーブルの例を示す図である。
【図１０】書き込み管理テーブルの例を示す図である。
【図１１】マウント時の処理例を示すフローチャートである。
【図１２】書き込み時の処理例（その１）を示すフローチャートである。
【図１３】書き込み時の処理例（その２）を示すフローチャートである。
【図１４】書き込み方向および書き込み先ＷＲＡＰを判定する処理の例を示す図である。
【図１５】アンマウント時の処理例を示すシーケンス図である。
【図１６】履歴テーブルの例を示す図である。
【図１７】第３の実施の形態の書き込み時の処理例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、実施の形態について図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態のテープ装置を示す図である。テープ装置１０は、テープドライブ１１、記憶部１２および制御部１３を有する。
【００１３】
テープドライブ１１には、磁気テープ１が格納される。テープドライブ１１は、少なくとも、格納された磁気テープ１に対してデータを書き込むことができる。磁気テープ１には、複数のトラックが形成されている。テープドライブ１１は、複数のトラックのうち、あるトラックに順方向にデータを書き込み、次のトラックに逆方向にデータを書き込み、次のトラックに順方向にデータを書き込むというように、磁気テープを往復しながらデータの書き込みを行う。なお、第１の実施の形態での「トラック」は、同時に読み書きが行われる複数トラックの集合体も含み得る。
【００１４】
記憶部１２は、例えば、ＲＡＭ（Random Access Memory）などの揮発性記憶装置でもよいし、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの不揮発性記憶装置でもよい。記憶部１２は、磁気テープ１の途中に設定された、書き込み方向の反転位置２を示す情報を記憶する。なお、反転位置２を示す情報は、制御部１３によって算出されて記憶部１２に格納されてもよい。
【００１５】
制御部１３は、例えば、プロセッサである。プロセッサには、ＣＰＵ（Central Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）などを含み得る。「プロセッサ」には、複数のプロセッサの集合（マルチプロセッサ）も含み得る。
【００１６】
制御部１３は、磁気テープ１に上記の複数のデータを書き込むように、テープドライブ１１を制御する。制御部１３は、例えば、図示しないホスト装置からの複数のデータの書き込み要求に応じて、複数のデータを磁気テープ１に書き込むようにテープドライブ１１に指示する。ここで、「複数のデータ」のそれぞれは、例えば、ファイル、ボリュームなどの所定のデータ単位を指す。また、制御部１３は、例えば、テープドライブ１１に対して複数のデータのそれぞれを単位として書き込みを指示するのではなく、各データを分割した部分データを単位として書き込みを指示する。また、制御部１３は、上記のホスト装置から部分データ単位で書き込みの要求を受けてもよい。
【００１７】
制御部１３は、複数のデータのうちの１つ（「第１のデータ」とする）についての磁気テープ１への書き込みをテープドライブ１１に開始させる。制御部１３は、磁気テープ１上の複数のトラックのうち、書き込み方向が順方向の第１のトラックにおける第１のデータの書き込み領域が反転位置２を超える場合、第１のデータの終端までの書き込みをテープドライブ１１に継続させる。そして、制御部１３は、第１のデータの終端において、書き込み先を複数のトラックのうち第２のトラックに変更するとともに書き込み方向が反転するように指示する方向反転指示を、テープドライブ１１に送信する。
【００１８】
これにより、第１のデータの読み出しが行われる際に、その読み出し途中で読み出し方向が反転することが回避される。その結果、第１のデータの読み出し速度を向上させることができる。
【００１９】
以下、上記の複数のデータのうち、データ３，４を磁気テープ１に書き込む場合の処理例として、図１に示すケース（１），（２）を説明する。ケース（１）は比較例であり、ケース（２）は第１の実施の形態での処理例である。ケース（１），（２）ともに、データ３の書き込みは、順方向に書き込みが行われるトラック１ａから開始され、データ３の書き込み途中で書き込み位置が反転位置２に達するものとする。なお、ケース（２）だけでなくケース（１）についても、制御部１３が制御するものとして説明する。
【００２０】
ケース（１）では、制御部１３は、データ３の書き込みをテープドライブ１１に開始させ、データ３の書き込み途中で反転位置２に達すると、方向反転指示をテープドライブ１１に出力する。これにより、データ３の先頭から反転位置２までのデータ領域３ａはトラック１ａに書き込まれ、データ３の残りのデータ領域３ｂは、トラック１ａの次のトラック１ｂに対して反転位置２から逆方向に書き込まれる。さらに、制御部１３がデータ４の書き込みを指示すると、テープドライブ１１は、データ領域３ｂに続けてデータ４をトラック１ｂに逆方向に書き込む。
【００２１】
ここで、反転位置２は、例えば、磁気テープ１に書き込まれたデータを読み出す際に、磁気ヘッドの位置付け量を低減することを目的として設定される。すなわち、磁気テープ１の先頭トラックからトラック全体に対してデータを書き込むのではなく、ケース１に示すように、各トラックでの書き込み領域を磁気テープ１の物理的な先頭から反転位置２までの領域に制限する。これにより、磁気テープ１に書き込まれたデータを読み出す際に、磁気ヘッドの位置付けが行われる範囲が反転位置２までに制限され、位置付けにかかる時間が短縮される。その結果、データの読み出し性能を向上させることができる。このような書き込み制御は、磁気テープ１全体の容量より小さい容量を限度としてデータを書き込む際に有効である。
【００２２】
しかしながら、ケース（１）では、データ３はトラック１ａ，１ｂに跨がって書き込まれている。このような書き込みが行われた場合、データ３を読み出す際にはその途中で必ず読み出し方向が反転する。読み出し方向の反転動作には時間がかかるので、データ３全体を読み出すのに長い時間がかかってしまい、読み出し性能が悪化する。
【００２３】
このような問題に対して、第１の実施の形態では、ケース（２）のような制御が行われる。制御部１３は、トラック１ａにおけるデータ３の書き込み領域が反転位置２を超えると判定した場合には、データ３の終端までの書き込みをテープドライブ１１に継続させる。そして、制御部１３は、データ３の終端までの書き込みが完了した位置において、方向反転指示をテープドライブ１１に送信する。テープドライブ１１は、方向反転指示の受信に応じて、データ３の終端で書き込み先をトラック１ｂに変更するとともに、書き込み方向を反転させる。例えば、制御部１３が次のデータ４の書き込みをテープドライブ１１に指示すると、テープドライブ１１は、書き込み方向を反転させた位置を起点として、データ４をトラック１ｂに逆方向に書き込む。
【００２４】
このような制御により、データ３全体が１本のトラック１ａに書き込まれるので、データ３を読み出す際にその途中で読み出し方向が反転しない。したがって、ケース（１）の場合よりデータ３の読み出し時間を短縮することができる。また、ケース（２）では、データ３の終端は反転位置２を超えるため、トラック１ａ，１ｂにおける読み出し時の磁気ヘッドの位置付け量はケース（１）より大きくなる。しかし、位置付け量の拡大よりもデータ読み出し中の方向反転が起こらないことの方が、データ単位でデータを読み出す際の読み出し時間の短縮に大きく寄与する。したがって、第１の実施の形態の処理によれば、磁気テープ１に書き込まれたデータの読み出し性能を向上させることができる。
【００２５】
［第２の実施の形態］
図２は、第２の実施の形態のテープ装置のハードウェア例を示す図である。テープ装置１００は、コントローラ１１０とテープドライブ１２０を有する。テープ装置１００は、複数のテープドライブを有していてもよい。
【００２６】
コントローラ１１０は、ホスト装置２００からの要求に応じたテープドライブ１２０に格納されるテープカートリッジ１３０に対するデータアクセス、テープ装置１００内のハードウェアモジュールの動作などを制御する。
【００２７】
なお、テープ装置１００は、図１のテープ装置１０の一例であり、コントローラ１１０は、図１の記憶部１２および制御部１３を有する装置の一例であり、テープドライブ１２０は、図１のテープドライブ１１の一例である。
【００２８】
コントローラ１１０は、プロセッサ１１０ａ、ＲＡＭ１１０ｂ、フラッシュメモリ１１０ｃ、ホストインタフェース１１０ｄ、ドライブインタフェース１１０ｅおよび読み取り装置１１０ｆを有する。
【００２９】
プロセッサ１１０ａは、コントローラ１１０全体を統括的に制御する。プロセッサ１１０ａは、例えばＣＰＵ、ＤＳＰ、ＡＳＩＣまたはＦＰＧＡなどである。プロセッサ１１０ａは、マルチプロセッサであってもよい。プロセッサ１１０ａは、ＣＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡなどの２以上の要素の組合せであってもよい。
【００３０】
ＲＡＭ１１０ｂは、テープ装置１００の主記憶装置である。ＲＡＭ１１０ｂは、プロセッサ１１０ａに実行させるプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ１１０ｂは、プロセッサ１１０ａによる処理に用いる各種データを記憶する。
【００３１】
フラッシュメモリ１１０ｃは、テープ装置１００の補助記憶装置である。フラッシュメモリ１１０ｃには、アプリケーションプログラムおよび各種データが格納される。
ホストインタフェース１１０ｄは、ホスト装置２００と通信を行うためのインタフェースである。ドライブインタフェース１１０ｅは、テープドライブ１２０と通信を行うためのインタフェースである。
【００３２】
読み取り装置１１０ｆは、可搬型の記録媒体１４０に記録されたプログラムやデータを読み取る装置である。記録媒体１４０として、例えば、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤなどの磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）を使用できる。また、記録媒体１４０として、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することもできる。読み取り装置１１０ｆは、例えば、プロセッサ１１０ａからの命令に従って、記録媒体１４０から読み取ったプログラムやデータをＲＡＭ１１０ｂまたはフラッシュメモリ１１０ｃに格納する。
【００３３】
テープドライブ１２０には、磁気テープが格納されたテープカートリッジ１３０が挿抜される。テープカートリッジ１３０は、カートリッジメモリ１３０ａを有する。カートリッジメモリ１３０ａには、テープカートリッジ１３０に関する様々な情報が記憶される。テープドライブ１２０は、テープカートリッジ１３０をマウントし、コントローラ１１０の制御の下で、マウントしたテープカートリッジ１３０内の磁気テープに対するデータの書き込みや、磁気テープからのデータの読み出しを行う。また、テープドライブ１２０は、マウントしたテープカートリッジ１３０のカートリッジメモリ１３０ａに対するデータの書き込みや、カートリッジメモリ１３０ａからのデータの読み出しを行うこともできる。例えば、テープドライブ１２０は、テープカートリッジ１３０のアンマウントが要求されると、磁気テープの残容量をカートリッジメモリ１３０ａに記録した後、テープカートリッジ１３０をアンマウントする。
【００３４】
図３は、磁気テープの例を示す図である。本実施の形態では、例として、ＬＴＯ  Ｕｌｔｒｉｕｍ規格の磁気テープが使用される。ＬＴＯ  Ｕｌｔｒｉｕｍ規格の磁気テープは、５本のサーボバンドと４本のデータバンドを有する。各データバンドは、複数のトラックを有する。ＬＴＯ  Ｕｌｔｒｉｕｍ６の場合、磁気テープは、データバンドごとに５４４本ずつの合計２１７６本のトラックを有する。
【００３５】
また、ＬＴＯ  Ｕｌｔｒｉｕｍ規格では、順方向と逆方向の両方向に対して読み書きが行われる。さらに、ＬＴＯ  Ｕｌｔｒｉｕｍ規格では、データバンド内の複数のトラックが同時に読み書きされる。例えば、ＬＴＯ  Ｕｌｔｒｉｕｍ６の場合、１つのデータバンドに１６本のトラックが同時に書き込まれ、磁気ヘッドが１７往復することで合計５４４（１６×２×１７）本のトラックが１つのデータバンドに書き込まれる。ここで、同時に読み書きされる複数のトラック群を「ＷＲＡＰ」という。ＬＴＯ  Ｕｌｔｒｉｕｍ６の場合、１つのＷＲＡＰは１６本のトラックによって構成される。
【００３６】
図４は、磁気テープのデータフォーマットを説明するための図である。この図４では、磁気テープ全体の記憶領域でのデータフォーマットを示す。なお、ＢＯＴ（Beginning Of Tape）は磁気テープの始端を意味し、ＥＯＴ（End Of Tape）は磁気テープの終端を意味する。実際には、磁気テープの最も始端側の位置にはＢＯＴを示すラベルが記録され、磁気テープの最も終端側の位置にはＥＯＴを示すラベルが記録されるが、図４ではこれらのラベルの図示を省略している。
【００３７】
磁気テープの先頭には、ＶＯＬ（Volume）が記録される。ＶＯＬは、磁気テープにどのような情報が登録されているかなどの見出しとなる情報が記録されるラベルである。図４では、ＶＯＬの後にファイルＭが書き込まれている例を示している。ファイルＭの実データの記憶領域であるＤＡＴ（Data）の前には、ＨＤＲ（Header）１、ＨＤＲ２、ＴＭ（Tape Mark）が記録される。説明を分かりやすくするために、ＨＤＲ２の後に記録されるＴＭをＴＭ１とする。また、ＤＡＴの後には、ＴＭ、ＥＯＦ（End Of File）１、ＥＯＦ２、ＴＭが記録される。説明を分かりやすくするために、ＤＡＴの後に記録されるＴＭをＴＭ２、ＥＯＦ２の後に記録されるＴＭをＴＭ３とする。
【００３８】
ＨＤＲ１およびＨＤＲ２は、ファイルの見出しを示すラベルである。ＴＭ１は、実データの始まりを示すマーカである。ＤＡＴには、ファイルＭの実データが一定サイズごとのデータブロックに分割されて書き込まれる。ＴＭ２は、実データの終わりを示すマーカである。ＥＯＦ１およびＥＯＦ２は、ファイルの終わりを示すラベルである。ＴＭ３は、ファイルの終わりを示すマーカである。すなわち、ＨＤＲ１からＴＭ３までが、１つのファイルＭに対応する記憶領域となる。
【００３９】
また、ファイルＭの後に他のファイルが書き込まれずに書き込みが終了した場合、ファイルＭに対応する記憶領域の後には、ＴＭ、ＥＯＤ（End Of Data）が記録される。説明を分かりやすくするために、ファイルＭに対応する記憶領域の後に記録されるＴＭをＴＭ４とする。ＴＭ４は、データが格納された領域の終端を示すマーカである。ＥＯＤは、データが格納された領域の終端を示すラベルである。
【００４０】
なお、ＢＯＴ、ＶＯＬ、ＨＤＲ１、ＨＤＲ２、ＥＯＦ１およびＥＯＦ２の各ラベルは、８０バイトである。ＴＭ１〜４は、１０バイト未満のそれぞれ同一の容量である。
図５は、ＷＲＡＰ単位でのデータの書き込みおよび読み出しについて説明するための図である。なお、図示を省略するが、各ＷＲＡＰの始端にはＢＯＴを示すラベルがあらかじめ記録され、終端にはＥＯＴを示すラベルがあらかじめ記録される。ここで言う「始端」「終端」とは、読み書き方向とは関係ない、磁気テープの物理的な始端および終端を指す。
【００４１】
ＬＴＯ  Ｕｌｔｒｉｕｍ規格では、ＢＯＴからＥＯＴへの方向を示す順方向と、ＥＯＴからＢＯＴへの方向を示す逆方向の両方向に対して、読み書きが行われる。したがって、ＷＲＡＰには、順方向に読み書きが行われる「順方向ＷＲＡＰ」と、逆方向に読み書きが行われる「逆方向ＷＲＡＰ」とがある。図５の例では、ＷＲＡＰ１３５ａは先頭のＷＲＡＰであり、順方向ＷＲＡＰである。ＷＲＡＰ１３５ｂは２番目のＷＲＡＰであり、逆方向ＷＲＡＰである。ＷＲＡＰ１３５ｃは３番目のＷＲＡＰであり、順方向ＷＲＡＰである。すなわち、先頭から奇数番目のＷＲＡＰは順方向ＷＲＡＰであり、偶数番目のＷＲＡＰは逆方向ＷＲＡＰである。
【００４２】
なお、これ以後、ＷＲＡＰにおける読み書き方向に対する始端および終端を、それぞれ「ＷＲＡＰ始端」「ＷＲＡＰ終端」と記載し、ＢＯＴおよびＥＯＴがそれぞれ示す始端および終端と区別する。
【００４３】
ＷＲＡＰには、読み出しの際に方向を反転させる位置であることを示す、ＷＲＡＰマークというマーカが記録される。例えば、図５において、テープドライブ１２０は、ＷＲＡＰ１３５ａに対する順方向のデータ書き込みを行っているとする。テープドライブ１２０は、書き込み位置がＥＯＴから所定の長さの位置に達すると、ＷＲＡＰマーク１３６ａを書き込み、書き込み方向を反転させる。テープドライブ１２０は、次のＷＲＡＰ１３５ｂにおけるＷＲＡＰマーク１３６ａと同じ位置にＷＲＡＰマーク１３６ｂを書き込んだ後、ＷＲＡＰ１３５ｂに対する逆方向のデータ書き込みを行う。また、テープドライブ１２０は、書き込み位置がＢＯＴから所定の長さの位置に達すると、ＷＲＡＰマーク１３６ｃを書き込み、書き込み方向を反転させる。テープドライブ１２０は、次のＷＲＡＰ１３５ｃにおけるＷＲＡＰマーク１３６ｃと同じ位置にＷＲＡＰマーク１３６ｄを書き込んだ後、ＷＲＡＰ１３５ｃに対する順方向のデータ書き込みを行う。
【００４４】
また、データ読み出しの際には次のような動作が行われる。例えば、図５において、テープドライブ１２０は、順方向に対してＷＲＡＰ１３５ａからのデータ読み出しを行っているとする。テープドライブ１２０は、ＷＲＡＰマーク１３６ａを検出すると、読み出し方向を反転し、ＷＲＡＰマーク１３６ｂの位置を起点として逆方向に対してＷＲＡＰ１３５ｂからデータ読み出しを行う。また、テープドライブ１２０は、ＷＲＡＰマーク１３６ｃを検出すると、読み出し方向を反転し、ＷＲＡＰマーク１３６ｄの位置を起点として順方向に対してＷＲＡＰ１３５ｃからのデータ読み出しを行う。
【００４５】
なお、ＷＲＡＰの書き込み方向または読み出し方向を反転することを、「ＷＲＡＰ反転」と記載する場合がある。上記のように、読み出しの際にはＷＲＡＰマークの検出に応じてＷＲＡＰ反転が行われる。
【００４６】
ところで、磁気テープの書き込みモードの例として、１２８トラックモードと３６トラックモードの２つのモードがある。１２８トラックモードは、書き込み可能なデータブロック数に制限がなく、磁気テープ全体にデータが書き込まれるモードである。一方、３６トラックモードは、書き込み可能なデータブロック数に制限が設けられるモードである。例えば、書き込み可能なデータブロック数は、最大で４００万ブロックである。これは、ＣＭＴ（Cartridge Magnetic Tape）などの磁気テープの他の規格とデータフォーマットの互換性を持たせることを目的としたモードである。
【００４７】
ＬＴＯ  Ｕｌｔｒｉｕｍ規格の磁気テープに対して３６トラックモードで書き込みが行われた場合、書き込みが許される最大のデータ量は、磁気テープに書き込み可能な最大データ量より小さい。このため、許される最大量のデータが書き込まれたとしても、一部のＷＲＡＰには未使用領域が残る。
【００４８】
ここで、図６は、３６トラックモードでの書き込み処理の例を示す図である。図６の上部は書き込み処理の比較例を示し、図６の下部は、本実施の形態での書き込み処理の例を示す。
【００４９】
３６トラックモードでの書き込み方法の例としては、先頭側のＷＲＡＰから順に、各ＷＲＡＰのＷＲＡＰ始端からＷＲＡＰ終端までの全体を使用してデータを書き込む方法が考えられる。この場合、先頭側のＷＲＡＰでは、ＥＯＴまでデータが書き込まれることになる。しかし、読み出し対象のデータの位置がＥＯＴに近いほど、そのデータの位置に磁気ヘッドを位置付けするためのテープ走行に長い時間が必要になり、データの読み出し開始までに時間がかかってしまう。また、データの終端が逆方向ＷＲＡＰの途中となった場合、当該ＷＲＡＰにおいては、本来短時間で位置付けが可能であるＢＯＴ側にはデータが書き込まれないことになる。このため、磁気ヘッドの位置付けのためのテープ走行に無駄な時間が使われてしまう。
【００５０】
そこで、ＷＲＡＰの途中に反転位置を設定し、順方向ＷＲＡＰの書き込みの際にはその反転位置で必ずＷＲＡＰ反転する、という方法が考えられる。図６の上部は、このような方法の例を示す。
【００５１】
この方法では、各順方向ＷＲＡＰに共通の反転位置１３７ａが設定される。反転位置１３７ａは、例えば、ＢＯＴを起点として、制限された書き込み容量の上限を総ＷＲＡＰ数で除算して得られるデータ量に対応する位置に設定される。なお、反転位置１３７ａは、例えば、このような計算式により求められた位置から、ＥＯＴより手前までの領域における所定の位置に設定されてもよい。
【００５２】
テープドライブ１２０は、コントローラ１１０からの指示に応じて次のような書き込み処理を行う。テープドライブ１２０は、順方向ＷＲＡＰへの書き込み中に反転位置１３７ａに達すると、順方向ＷＲＡＰにＷＲＡＰマークを書き込み、ＷＲＡＰ反転を行う。テープドライブ１２０は、次の逆方向ＷＲＡＰの反転位置１３７ａにＷＲＡＰマークを書き込み、逆方向ＷＲＡＰへの書き込みを継続する。
【００５３】
図６上部の例では、テープドライブ１２０は、ＷＲＡＰ１３８ａに対する順方向への書き込み中に反転位置１３７ａに達すると、ＷＲＡＰ１３８ａにＷＲＡＰマーク１３９ａを書き込み、ＷＲＡＰ反転を行う。テープドライブ１２０は、次のＷＲＡＰ１３８ｂにおけるＷＲＡＰマーク１３９ａと同じ位置にＷＲＡＰマーク１３９ｂを書き込み、ＷＲＡＰ１３８ｂに対する逆方向への書き込みを継続する。
【００５４】
この方法によれば、すべてのＷＲＡＰにおいて、ＢＯＴから反転位置１３７ａまでの領域にデータが書き込まれる。このため、読み出し時に磁気ヘッドが位置付けされる磁気テープの領域がＢＯＴから反転位置１３７ａまでに制限され、データ読み出し開始までにかかる時間が短縮される。また、データを追記する際にも、データの追記を開始する位置までの磁気ヘッドの位置付けにかかる時間が短縮され、短時間で追記を開始できる。また、反転位置１３７ａを、前述した計算式によって求められた位置とした場合には、磁気ヘッドの位置付けにかかる時間を最小にすることができる。
【００５５】
しかしながら、この方法には次のような問題がある。図６の上部に示すように、ある１つのファイルに対応するファイル領域３００の途中で反転位置１３７ａに達すると、ＷＲＡＰ反転が行われる。このファイルがデータブロックＸ１〜Ｘ１２に分割され、データブロックＸ１１の書き込み終了時点で反転位置１３７ａに達したとすると、データブロックＸ１１の次にＷＲＡＰマーク１３９ａが書き込まれ、ＷＲＡＰ反転が行われる。次のＷＲＡＰ１３８ｂでは、ＷＲＡＰマーク１３９ｂが書き込まれた後、残りのデータブロックＸ１２が逆方向に書き込まれる。
【００５６】
このような書き込みが行われた状態で、ファイル領域３００内のファイルの読み出しが要求された場合、ファイルの読み出し途中でＷＲＡＰ反転が発生してしまう。ＷＲＡＰ反転では、少なくとも磁気テープの走行停止と走行再開という動作が生じるため、ある程度の時間がかかる。このため、１つのＷＲＡＰ内に全体が記録されたファイルを読み出す場合と比較して、ファイルの読み出しにかかる時間が大幅に長くなってしまう。
【００５７】
そこで、第２の実施の形態では、図６の下部に示すような処理が行われる。テープドライブ１２０は、ＷＲＡＰ１３８ａへのファイル領域３００の書き込み途中で反転位置１３７ａに達した場合、ファイル領域３００の終端まで書き込みをそのまま継続する。テープドライブ１２０は、ファイル領域３００の終端位置１３７ｂの次に、ＷＲＡＰマーク１３９ｃを書き込み、ＷＲＡＰ反転を行う。テープドライブ１２０は、次のＷＲＡＰ１３８ｂにおけるＷＲＡＰマーク１３９ｃと同じ位置にＷＲＡＰマーク１３９ｄを書き込む。もし次のファイルの書き込みが要求された場合、ＷＲＡＰ１３８ｂにおいてＷＲＡＰマーク１３９ｄに続いて逆方向にデータの書き込みが行われる。
【００５８】
これにより、テープドライブ１２０がファイル領域３００のファイルを読み出す場合、ファイル領域３００の読み出し途中でＷＲＡＰ反転を行わなくて済む。そのため、ＷＲＡＰ反転にかかる時間だけ図６の上部の場合より短時間にファイルを読み出すことができる。
【００５９】
図７は、コントローラの機能例を示す図である。コントローラ１１０は、記憶部１１１、マウント制御部１１２およびＩ／Ｏ（In/Out）制御部１１３を有する。
記憶部１１１は、例えば、ＲＡＭ１１０ｂまたはフラッシュメモリ１１０ｃに確保した記憶領域として実装される。記憶部１１１は、媒体仕様テーブル、媒体情報テーブルおよび書き込み管理テーブルを記憶する。
【００６０】
媒体仕様テーブルには、ＬＴＯの世代に対応するＷＲＡＰ数などの仕様情報が登録される。媒体情報テーブルには、カートリッジメモリ１３０ａに記憶されている情報が登録される。当該情報は、テープカートリッジ１３０のシリアル番号、残容量、ＷＲＡＰ毎に書き込み済みのデータ容量などである。書き込み管理テーブルには、データ書き込み動作を制御するために必要な管理情報が登録される。
【００６１】
マウント制御部１１２およびＩ／Ｏ制御部１１３は、例えば、プロセッサ１１０ａが実行するプログラムのモジュールとして実装される。
マウント制御部１１２は、ホスト装置２００からマウント指示を受付けると、テープドライブ１２０にテープカートリッジ１３０をマウントするように指示する。また、マウント制御部１１２は、テープカートリッジ１３０をマウントした際に、ＢＯＴから標準反転位置までのデータ容量を示す標準ＷＲＡＰ容量を算出して記憶部１１１に記録する。標準反転位置とは、順方向ＷＲＡＰの途中においてＷＲＡＰ反転を行う標準位置であり、書き込み動作の開始前に決定される。標準反転位置は、図６の下部における反転位置１３７ａに対応する。
【００６２】
Ｉ／Ｏ制御部１１３は、ホスト装置２００からＩ／Ｏ指示を受付けると、マウントされたテープカートリッジ１３０内の磁気テープに対する、Ｉ／Ｏ指示に応じたＩ／Ｏ動作を行うように、テープカートリッジ１３０に指示する。ホスト装置２００からのＩ／Ｏ指示には、書き込み指示と読み出し指示がある。書き込み指示には、ラベルの書き込み指示、マーカの書き込み指示、データブロックの書き込み指示などがある。
【００６３】
また、Ｉ／Ｏ制御部１１３の書き込み制御モードには、通常制御モードと高速制御モードとがある。通常制御モードとは、ＢＯＴからＥＯＴまでの全体にデータを書き込むモードである。高速制御モードは、ＢＯＴからＥＯＴまでの途中にＷＲＡＰマークを書き込むモードである。高速制御モードでは、読み出し時に磁気ヘッドの位置付けにかかる時間を低減して、読み出し性能を向上させる制御モードである。
【００６４】
３６トラックモードでの書き込みでは、高速制御モードが選択される。Ｉ／Ｏ制御部１１３は、高速制御モードでの順方向ＷＲＡＰでの書き込みでは、基本的に、標準反転位置で書き込み方向を反転するようにテープカートリッジ１３０を制御する。ただし、Ｉ／Ｏ制御部１１３は、ファイルの書き込み途中で標準反転位置に達した場合には、そのファイルに対応するファイル領域の終端まで順方向の書き込みを続行した後、書き込み方向を反転するようにテープカートリッジ１３０を制御する。
【００６５】
図８は、媒体仕様テーブルの例を示す図である。媒体仕様テーブル１１１ａは、記憶部１１１に格納される。媒体仕様テーブル１１１ａは、世代、データ容量、トラック数およびデータバンドあたりのＷＲＡＰ数の項目を含む。世代の項目には、ＬＴＯの世代が登録される。データ容量の項目には、磁気テープに記録可能なデータ量が登録される。トラック数の項目には、磁気テープ全体でのトラック数が登録される。データバンドあたりのＷＲＡＰ数の項目には、１つのデータバンドに含まれるＷＲＡＰ数が登録される。
【００６６】
例えば、媒体仕様テーブル１１１ａには、世代が“ＬＴＯ１”、データ容量が“１００ＧＢ”、トラック数が“３８４”およびデータバンドあたりのＷＲＡＰ数が“１２”という情報が登録される。これは、ＬＴＯ１（ＬＴＯ  Ｕｌｔｒｉｕｍ１）の場合、磁気テープに記録可能なデータ量が“１００ＧＢ”であり、トラック数が“３８４”本で、データバンドあたりのＷＲＡＰ数が“１２”本であることを示す。
【００６７】
図９は、媒体情報テーブルの例を示す図である。媒体情報テーブル１１１ｂは、記憶部１１１に格納される。媒体情報テーブル１１１ｂは、世代、シリアル番号、テープ残容量および高速制御フラグの項目を含む。
【００６８】
世代の項目には、ＬＴＯの世代が登録される。シリアル番号の項目には、テープカートリッジ１３０のシリアル番号が登録される。テープ残容量の項目には、磁気テープの残容量が登録される。
【００６９】
高速制御フラグの項目には、高速制御モードを行うか否かを示す情報が登録される。高速制御フラグの項目には、“ｔｒｕｅ”（高速制御モードを行う）または“ｆａｌｓｅ”（高速制御モードを行わない）が登録される。また、テープカートリッジ１３０が未使用の場合、高速制御フラグの項目には、“ｆａｌｓｅ”または、“−（ハイフン）”が登録される。
【００７０】
また、媒体情報テーブル１１１ｂにはさらに、ＷＲＡＰ情報が含まれる。ＷＲＡＰ情報は、対応するテープカートリッジ１３０内の磁気テープのＷＲＡＰごとに設けられる。各ＷＲＡＰ情報には、ＷＲＡＰ  ＩＤ（identifier）および書き込み容量の項目を含む。ＷＲＡＰ  ＩＤの項目には、ＷＲＡＰを識別する情報が登録される。書き込み容量の項目には、ＷＲＡＰに書き込み済みのデータ容量が登録される。
【００７１】
なお、媒体情報テーブル１１１ｂと同じデータ構造の情報は、テープカートリッジ１３０のカートリッジメモリ１３０ａにも記録される。カートリッジメモリ１３０ａがテープドライブ１２０にマウントされると、コントローラ１１０は、カートリッジメモリ１３０ａに記録された情報を読み込み、媒体情報テーブル１１１ｂとして記憶部１１１に記録する。また、コントローラ１１０は、媒体情報テーブル１１１ｂにおける情報の更新を、カートリッジメモリ１３０ａ内の対応する情報にも反映させる。また、テープドライブ１２０は、テープカートリッジ１３０をアンマウントする際に、カートリッジメモリ１３０ａ内のテープ残容量の項目を自分自身で更新する。
【００７２】
図１０は、書き込み管理テーブルの例を示す図である。書き込み管理テーブル１１１ｃは、記憶部１１１に格納される。書き込み管理テーブル１１１ｃは、標準ＷＲＡＰ容量、方向フラグおよび書き込み先ＷＲＡＰ  ＩＤの各項目を含む。
【００７３】
標準ＷＲＡＰ容量は、ＢＯＴから標準反転位置までのＷＲＡＰ上のデータ容量を示す。標準ＷＲＡＰ容量は、例えば、３６トラックモードで書き込み可能な最大の容量とＷＲＡＰ数との関係から求められる。図６の下部の例では、標準反転位置は反転位置１３７ａに対応し、標準ＷＲＡＰ容量はＢＯＴから反転位置１３７ａまでのＷＲＡＰ１３８ａにおけるデータ容量に対応する。方向フラグは、現在の書き込み方向を示すフラグ情報である。書き込み先ＷＲＡＰ  ＩＤは、現在の書き込み先のＷＲＡＰを識別する識別情報である。
【００７４】
図１１は、マウント時の処理例を示すフローチャートである。以下、図１１に示す処理をステップ番号に沿って説明する。図１１の処理は、ホスト装置２００からマウント指示をマウント制御部１１２が受付けることにより始まる。また、マウント制御部１１２は、ホスト装置２００から書き込みモードの指定を受付ける。
【００７５】
（Ｓ１１）マウント制御部１１２は、テープドライブ１２０にテープカートリッジ１３０をマウントするように指示する。これにより、テープドライブ１２０は、テープカートリッジ１３０をマウントする。
【００７６】
（Ｓ１２）マウント制御部１１２は、ホスト装置２００から３６トラックモードの書き込み指示を受けているか否かを判定する。３６トラックモードの指示を受けている場合、処理をステップＳ１３に進める。３６トラックモードの指示を受けていない場合、処理をステップＳ１９に進める。
【００７７】
（Ｓ１３）マウント制御部１１２は、テープドライブ１２０にカートリッジメモリ１３０ａに記録されている情報を取得するように指示する。具体的に取得する情報は、世代、シリアル番号、テープ残容量、高速制御フラグ、ＷＲＡＰ  ＩＤおよびＷＲＡＰごとの書き込み容量である。マウント制御部１１２は、取得した情報を媒体情報テーブル１１１ｂに登録する。
【００７８】
（Ｓ１４）マウント制御部１１２は、媒体情報テーブル１１１ｂの高速制御フラグを参照し、高速制御フラグが“ｔｒｕｅ”であるか否かを判定する。“ｔｒｕｅ”の場合、処理をステップＳ１７進める。“ｆａｌｓｅ”の場合、処理をステップＳ１５に進める。
【００７９】
（Ｓ１５）マウント制御部１１２は、テープカートリッジ１３０が未使用であるか否かを判定する。具体的には、マウント制御部１１２は、媒体情報テーブル１１１ｂの世代に対応するデータ容量を媒体仕様テーブル１１１ａから特定する。マウント制御部１１２は、特定したデータ容量が、媒体情報テーブル１１１ｂのテープ残容量と一致する場合に、未使用と判定する。未使用の場合、処理をステップＳ１６に進める。未使用でない場合、処理をステップＳ１９に進める。
【００８０】
（Ｓ１６）マウント制御部１１２は、媒体情報テーブル１１１ｂの高速制御フラグに“ｔｒｕｅ”を登録する。
（Ｓ１７）マウント制御部１１２は、媒体情報テーブル１１１ｂの高速制御フラグが“ｔｒｕｅ”であるため、高速制御モードで書き込みを実行することを決定する。
【００８１】
（Ｓ１８）マウント制御部１１２は、標準ＷＲＡＰ容量を算出する。マウント制御部１１２は、算出した標準ＷＲＡＰ容量を、書き込み管理テーブル１１１ｃの標準ＷＲＡＰ容量の項目に登録する。
【００８２】
標準ＷＲＡＰ容量は、次のような方法によって算出される。例えば、データブロックのサイズを３２ＫＢとした場合、３６トラックモードで書き込める最大容量は、１２８ＧＢ（３２ＫＢ×４００万データブロック）である。標準ＷＲＡＰ容量は、“１２８ＧＢ／総ＷＲＡＰ数”という式により算出される。総ＷＲＡＰ数は、“データバンドあたりのＷＲＡＰ数×データバンドの数”という式により算出される。ここで、データバンドあたりのＷＲＡＰ数およびデータバンドの数は、媒体仕様テーブル１１１ａのレコードのうち、媒体情報テーブル１１１ｂの世代に対応するレコードの情報に基づいて得られる。例えば、世代がＬＴＯ４の場合、標準ＷＲＡＰ容量は、“１２８ＧＢ／（１４×４）”（約２．３ＧＢ）となる。
【００８３】
標準ＷＲＡＰ容量は、ＢＯＴから標準反転位置までのＷＲＡＰ上の容量を示す。したがって、上記の計算により、マウントされたテープカートリッジ１３０の世代にあった標準反転位置を算出することができる。算出された標準反転位置は、３６トラックモードで書き込み可能な最大容量のデータを高速制御モードで磁気テープに書き込んだ際に、ＢＯＴに最も近い反転位置を示す。このような標準反転位置を、順方向ＷＲＡＰへの書き込み時にＷＲＡＰ反転すべきかを判定するための基準位置（図６の反転位置１３７ａに対応）として使用することで、ＷＲＡＰ反転の位置を可能な限りＢＯＴに近づけることができる。その結果、書き込まれたデータの読み出し時間を短縮することができる。
【００８４】
なお、標準ＷＲＡＰ容量は、３６トラックモードで書き込み可能な最大容量と、磁気テープの仕様とから決まる。このため、例えば、標準ＷＲＡＰ容量は、磁気テープの世代ごとに媒体仕様テーブル１１１ａにあらかじめ登録されていてもよい。この場合、ステップＳ１８では、マウント制御部１１２は、上記のような計算を行わずに、媒体仕様テーブル１１１ａから、マウントされた磁気テープの世代に対応する標準ＷＲＡＰ容量を取得することができる。
【００８５】
（Ｓ１９）マウント制御部１１２は、媒体情報テーブル１１１ｂの高速制御フラグが“ｆａｌｓｅ”であるため、通常制御モードで書き込みを実行することを決定する。そして、処理を終了する。
【００８６】
次に、図１２，１３では、書き込み時の処理例を説明する。また、図１２，１３の処理は、ホスト装置２００から書き込み指示を受信するたびに実行される。書き込み指示には、ラベルの書き込み指示、マーカの書き込み指示、ファイルが分割されたデータブロックの書き込み指示などがある。
【００８７】
図１２は、書き込み時の処理例（その１）を示すフローチャートである。以下、図１２に示す処理をステップ番号に沿って説明する。
（Ｓ２１）Ｉ／Ｏ制御部１１３は、媒体情報テーブル１１１ｂの高速制御フラグを参照し、通常制御モードで書き込みを実行するか否かを判定する。高速制御フラグが“ｆａｌｓｅ”の場合、通常制御モードで実行すると判定される。通常制御モードで実行する場合、処理をステップＳ２２に進める。高速制御モードで実行する場合、処理をステップＳ２５に進める。
【００８８】
（Ｓ２２）Ｉ／Ｏ制御部１１３は、テープカートリッジ１３０が使用済み媒体であるが、書き込み済みのデータを破棄して新規の書き込みを行うか否かを判定する。例えば、Ｉ／Ｏ制御部１１３は、図１１の処理の終了後から図１２の処理の直前で磁気テープが完全に巻き戻された場合に、新規書き込みを行うと判定して、処理をステップＳ２３に進める。図１２の処理の直前で巻き戻しが行われていない場合、処理をステップＳ２５に進める。なお、例えば、巻き戻しが行われた際に記憶部１１１内の所定のフラグを“１”に設定し、ステップＳ２２ではこのフラグに基づいて巻き戻しが行われたかが判定されてもよい。
【００８９】
（Ｓ２３）Ｉ／Ｏ制御部１１３は、媒体情報テーブル１１１ｂの高速制御フラグに“ｔｒｕｅ”を登録し、高速制御モードで書き込みを実行することを決定する。また、Ｉ／Ｏ制御部１１３は、媒体情報テーブル１１１ｂの全ＷＲＡＰ情報における書き込み容量を“０”に設定し、全ＷＲＡＰ情報をリセットする。
【００９０】
（Ｓ２４）Ｉ／Ｏ制御部１１３は、標準ＷＲＡＰ容量を算出し、書き込み管理テーブル１１１ｃに登録する。算出方法は、ステップＳ１８と同じである。
（Ｓ２５）Ｉ／Ｏ制御部１１３は、媒体情報テーブル１１１ｂの高速制御フラグを参照し、高速制御モードで書き込みを実行するかを判定する。高速制御モードで実行する場合、処理をステップＳ２６に進める。通常制御モードで実行する場合、処理を図１３のステップＳ３１に進める。
【００９１】
（Ｓ２６）Ｉ／Ｏ制御部１１３は、ホスト装置２００から書き込みが指示されているデータ（ラベル、マーカ、データブロックのいずれか）を書き込めるか否かを判定する。具体的には、Ｉ／Ｏ制御部１１３は、媒体情報テーブル１１１ｂの全ＷＲＡＰ情報を参照し、各ＷＲＡＰの書き込み容量を全て加算した総容量を算出する。Ｉ／Ｏ制御部１１３は、３６トラックモードで書き込める最大容量である１２８ＧＢから当該総容量を減算した容量よりも、ホスト装置２００から書き込みが指示されているデータの容量の方が小さいか否かを判定する。当該データの容量の方が小さい場合、処理をステップＳ２７に進める。当該データの容量の方が大きい場合、書き込み済みのデータ量がすでに限度に達している。そのため、Ｉ／Ｏ制御部１１３は、当該データをテープカートリッジ１３０に書き込めない旨の通知をホスト装置２００に送信する。そして、処理を終了する。
【００９２】
（Ｓ２７）Ｉ／Ｏ制御部１１３は、テープカートリッジ１３０をマウントした後の最初の書き込みか否かを判定する。最初の書き込みの場合、処理をステップＳ２８に進める。最初の書き込みでない場合、処理を図１３のステップＳ３１に進める。
【００９３】
（Ｓ２８）Ｉ／Ｏ制御部１１３は、書き込み方向が順方向か否かを判定する。具体的には、Ｉ／Ｏ制御部１１３は、次の式（１）の計算を行う。
媒体情報テーブル１１１ｂのテープ残容量／ＷＲＡＰの容量・・・（１）
式（１）のＷＲＡＰの容量は、媒体仕様テーブル１１１ａのレコードのうち、媒体情報テーブル１１１ｂの世代に対応するレコードの情報に基づいて、“データ容量／（データバンド数×データバンドあたりのＷＲＡＰ数）”という式によって算出される。
【００９４】
式（１）の商は、データがまったく書き込まれていない残りＷＲＡＰ数を示す。残りＷＲＡＰ数が奇数の場合、現在の書き込み方向は順方向であり、残りＷＲＡＰ数が偶数の場合、現在の書き込み方向は逆方向と判定される。
【００９５】
Ｉ／Ｏ制御部１１３は、書き込み管理テーブル１１１ｃの方向フラグに、書き込み方向の判定結果に応じた値を設定する。例えば、Ｉ／Ｏ制御部１１３は、書き込み方向が順方向の場合、方向フラグを「０」に設定し、書き込み方向が逆方向の場合、方向フラグを「１」に設定する。
【００９６】
（Ｓ２９）Ｉ／Ｏ制御部１１３は、現在の書き込み先のＷＲＡＰを判定する。上記の式（１）の商をＱとすると、最後から（Ｑ＋１）番目のＷＲＡＰが現在の書き込み先のＷＲＡＰと判定される。Ｉ／Ｏ制御部１１３は、判定された現在の書き込み先のＷＲＡＰを示すＩＤを、書き込み管理テーブル１１１ｃの書き込み先ＷＲＡＰ  ＩＤの項目に登録する。この後、処理を図１３のステップＳ３１に進める。
【００９７】
ここで、図１４を用いて、ステップＳ２８，Ｓ２９の処理の具体例について説明する。図１４は、書き込み方向および書き込み先ＷＲＡＰを判定する処理の例を示す図である。図１４では、説明を分かりやすくするために、磁気テープに４つのＷＲＡＰ３１１〜３１４が形成されているものとする。ＷＲＡＰ３１１，３１３は順方向ＷＲＡＰであり、ＷＲＡＰ３１２，３１４は逆方向ＷＲＡＰである。
【００９８】
図１４（Ａ）では、ＷＲＡＰ３１１の途中まで順方向の書き込みが行われている。領域Ｒ１ａは、データが書き込み済みの領域である。領域Ｒ１ａは、標準反転位置に達しておらず、また、領域Ｒ１ａのＥＯＴ側にはＷＲＡＰマークは記録されていない。領域Ｒ１ｂ，Ｒ２〜Ｒ４は、データが未書き込みの領域である。
【００９９】
このケースでは、カートリッジメモリ１３０ａから媒体情報テーブル１１１ｂにコピーされたテープ残容量は、領域Ｒ１ｂ，Ｒ２〜Ｒ４を合計した容量となる。ステップＳ２８では、式（１）の計算による商は“３”となり、書き込み方向は順方向と判定される。また、ステップＳ２９では、最後から４番目のＷＲＡＰ３１１が現在の書き込み先と判定される。
【０１００】
図１４（Ｂ）は、ＷＲＡＰ３１１の途中まで順方向の書き込みが行われ、その終端でＷＲＡＰ反転が行われたケースを示す。例えば、あるファイルの領域が標準反転位置を超え、その領域の終端でＷＲＡＰ反転が行われたケースである。図１４（Ｂ）において、領域Ｒ１ｃは、データが書き込み済みの領域であり、その終端は標準反転位置を超えている。そして、領域Ｒ１ｃの終端位置にＷＲＡＰマーク３１１ａが記録され、さらに、ＷＲＡＰ３１２におけるＷＲＡＰマーク３１１ａと同じ位置にＷＲＡＰマーク３１２ａが記録されている。したがって、現在の書き込み先ＷＲＡＰはＷＲＡＰ３１２である。領域Ｒ１ｄ，Ｒ２ａ，Ｒ２ｂ，Ｒ３，Ｒ４は、データが未書き込みの領域である。
【０１０１】
このケースでは、カートリッジメモリ１３０ａから媒体情報テーブル１１１ｂにコピーされたテープ残容量は、領域Ｒ２ａ，Ｒ３，Ｒ４を合計した容量となる。ステップＳ２８では、式（１）の計算による商は“２”となり、書き込み方向は逆方向と判定される。また、ステップＳ２９では、最後から３番目のＷＲＡＰ３１２が現在の書き込み先と判定される。
【０１０２】
なお、ステップＳ２８での書き込み方向の判定は、上記のような計算の代わりに、次のような方法で行ってもよい。マウント制御部１１２は、テープカートリッジ１３０のアンマウントを指示する前に、その時点での書き込み方向をカートリッジメモリ１３０ａに記録するようにテープドライブ１２０に指示する。これにより、アンマウントされるテープカートリッジ１３０のカートリッジメモリ１３０ａには、書き込み方向が記録される。そして、このテープカートリッジ１３０が再度マウントされると、マウント制御部１１２は、カートリッジメモリ１３０ａに記録された書き込み方向を取得して記憶部１１１にコピーする。ステップＳ２８では、Ｉ／Ｏ制御部１１３は、記憶部１１１にコピーされた書き込み方向によって現在の書き込み方向を判定する。
【０１０３】
図１３は、書き込み時の処理例（その２）を示すフローチャートである。以下、図１３に示す処理をステップ番号に沿って説明する。
（Ｓ３１）Ｉ／Ｏ制御部１１３は、ホスト装置２００から指示されたデータの書き込みを指示するためのＷｒｉｔｅコマンドをテープドライブ１２０に発行する。テープドライブ１２０は、ホストから書き込みが指示されたラベル、マーカ、データブロックのいずれかをテープカートリッジ１３０の磁気テープに書き込む。テープドライブ１２０は、現在の書き込み方向が順方向であれば、指示されたデータを順方向に書き込み、現在の書き込み方向が逆方向であれば、指示されたデータを逆方向に書き込む。
【０１０４】
なお、テープドライブ１２０は、指示されたデータの書き込みが完了した位置がＢＯＴまたはＥＯＴまで所定容量の位置である場合には、当該位置にＷＲＡＰマークを記録してＷＲＡＰ反転を行う。テープドライブ１２０は、次のＷＲＡＰの同じ位置にもＷＲＡＰマークを記録し、次のＷｒｉｔｅコマンドを待つ。
【０１０５】
（Ｓ３２）Ｉ／Ｏ制御部１１３は、媒体情報テーブル１１１ｂにおける現在の書き込み先ＷＲＡＰに対応するＷＲＡＰ情報を特定する。Ｉ／Ｏ制御部１１３は、特定したＷＲＡＰ情報の書き込み容量に、ステップＳ３１のコマンド発行によって磁気テープに書き込まれた書き込みデータ量（ラベル、マーカ、データブロックのいずれかの容量）を加算し、ＷＲＡＰ情報の書き込み容量を更新する。
【０１０６】
（Ｓ３３）Ｉ／Ｏ制御部１１３は、ステップＳ３１でのコマンド発行によってテープドライブ１２０でＷＲＡＰ反転が発生したか否かを判定する。
具体的には、書き込み管理テーブル１１１ｃの方向フラグが順方向を示す場合、Ｉ／Ｏ制御部１１３は、ステップＳ３２で更新した書き込み容量と、１ＷＲＡＰの容量との差分を算出する。Ｉ／Ｏ制御部１１３は、算出された差分が所定量以下の場合に、書き込み位置がＥＯＴ付近に達したためにＷＲＡＰ反転が発生したと判定する。
【０１０７】
また、書き込み管理テーブル１１１ｃの方向フラグが逆方向を示す場合、Ｉ／Ｏ制御部１１３は、ステップＳ３２で更新した書き込み容量と、１つ前のＷＲＡＰに対応するＷＲＡＰ情報に登録された書き込み容量との差分を算出する。Ｉ／Ｏ制御部１１３は、算出された差分が所定量以下の場合に、書き込み位置がＢＯＴ付近に達したためにＷＲＡＰ反転が発生したと判定する。
【０１０８】
ＷＲＡＰ反転が発生した場合、処理をステップＳ３４に進める。ＷＲＡＰ反転が発生していない場合、処理をステップＳ３５に進める。
（Ｓ３４）Ｉ／Ｏ制御部１１３は、書き込み管理テーブル１１１ｃの方向フラグを他方の値に更新する。また、Ｉ／Ｏ制御部１１３は、書き込み管理テーブル１１１ｃの書き込み先ＷＲＡＰ  ＩＤを、次のＷＲＡＰのＩＤに更新する。
【０１０９】
（Ｓ３５）Ｉ／Ｏ制御部１１３は、媒体情報テーブル１１１ｂの高速制御フラグを参照し、高速制御モードか否かを判定する。高速制御モードの場合、処理をステップＳ３６に進める。通常制御モードの場合、処理を終了する。
【０１１０】
（Ｓ３６）Ｉ／Ｏ制御部１１３は、ファイルの領域の終端か否かを判定する。具体的には、Ｉ／Ｏ制御部１１３は、ステップＳ３１で発行したＷｒｉｔｅコマンドがＴＭ３の書き込みを指示するものであったか否かを判定する。ＴＭ３の書き込み指示であった場合、ファイルの領域の終端であると判定される。ファイルの領域の終端の場合、処理をステップＳ３７に進める。ファイルの領域の終端でない場合、処理を終了する。
【０１１１】
（Ｓ３７）Ｉ／Ｏ制御部１１３は、書き込み管理テーブル１１１ｃの方向フラグに基づいて、現在の書き込み方向を判定する。書き込み方向が順方向の場合、処理をステップＳ３８に進める。書き込み方向が逆方向の場合、処理を終了する。
【０１１２】
（Ｓ３８）Ｉ／Ｏ制御部１１３は、書き込み位置が標準反転位置に達したか否かを判定する。具体的には、Ｉ／Ｏ制御部１１３は、媒体情報テーブル１１１ｂのＷＲＡＰ情報の中から、書き込み管理テーブル１１１ｃの書き込み先ＷＲＡＰ  ＩＤに対応するＷＲＡＰ情報を特定する。Ｉ／Ｏ制御部１１３は、書き込み管理テーブル１１１ｃの標準ＷＲＡＰ容量から、特定したＷＲＡＰ情報の書き込み容量を減算する。減算結果が０の場合は、標準反転位置までデータが書き込まれていることを示す。減算結果がマイナスの場合は、標準反転位置を超えてデータが書き込まれていることを示す。これらのケースでは、書き込み位置が標準反転位置に達したと判定して、処理をステップＳ３９に進める。一方、減算結果が０より大きい場合、書き込み位置が標準反転位置まで達していないと判定して、処理を終了する。
【０１１３】
（Ｓ３９）Ｉ／Ｏ制御部１１３は、ＷＲＡＰマークの書き込みを指示するＷｒｉｔｅコマンドをテープドライブ１２０に発行する。Ｗｒｉｔｅコマンドを受信したテープドライブ１２０は、現在書き込み中の順方向ＷＲＡＰにＷＲＡＰマークを書き込み、書き込み方向を反転して、次の逆方向ＷＲＡＰにもＷＲＡＰマークを書き込む。テープドライブ１２０は、この後に図１２〜１３の処理の実行によってデータの書き込みが指示された場合、逆方向ＷＲＡＰに対して逆方向に書き込みを行う。
【０１１４】
（Ｓ４０）Ｉ／Ｏ制御部１１３は、書き込み管理テーブル１１１ｃの方向フラグを逆方向に更新する。また、Ｉ／Ｏ制御部１１３は、書き込み管理テーブル１１１ｃの書き込み先ＷＲＡＰ  ＩＤを、次のＷＲＡＰのＩＤに更新する。そして、処理を終了する。
【０１１５】
図１５は、アンマウント時の処理例を示すシーケンス図である。以下、図１５に示す処理をステップ番号に沿って説明する。図１５の処理は、ホスト装置２００からアンマウント指示をマウント制御部１１２が受付けることにより始まる。
【０１１６】
マウント制御部１１２は、高速制御モードであるか否かを判定する（Ｓ５１）。高速制御モードの場合、マウント制御部１１２は、媒体情報テーブル１１１ｂの高速制御フラグおよび各ＷＲＡＰ情報をテープドライブ１２０に送信し、これらの情報をカートリッジメモリ１３０ａに書き込むように指示する（Ｓ５２）。テープドライブ１２０は、指示に応じて、マウント制御部１１２から受信した情報をカートリッジメモリ１３０ａに書き込む（Ｓ５３）。なお、ステップＳ５１で通常制御モードと判定された場合、ステップＳ５２，Ｓ５３の処理はスキップされる。
【０１１７】
マウント制御部１１２は、テープカートリッジ１３０のアンマウントをテープドライブ１２０に指示する（Ｓ５４）。指示を受信したテープドライブ１２０は、自装置が管理していた磁気テープの残容量をカートリッジメモリ１３０ａに書き込む（Ｓ５５）。書き込みが完了すると、テープドライブ１２０は、テープカートリッジ１３０をアンマウントする（Ｓ５６）。
【０１１８】
以上説明した第２の実施の形態によれば、Ｉ／Ｏ制御部１１３は、順方向ＷＲＡＰに１つのファイルに対応する情報を書き込んでいる途中で書き込み位置が標準反転位置を超えてしまう場合、当該情報の終端まで順方向ＷＲＡＰに書き込んだ後にＷＲＡＰマークを書き込むようにテープドライブ１２０に指示する。これにより、テープドライブ１２０が当該ファイルを読み出す場合、当該ファイルの読み出し途中でＷＲＡＰ反転を行わなくて済む。そのため、当該ファイルの読み出しにかかる時間を短縮することができる。
【０１１９】
［第３の実施の形態］
次に、第３の実施の形態を説明する。前述の第２の実施の形態との相違する事項を主に説明し、共通する事項の説明を省略する。
【０１２０】
第２の実施の形態では、標準反転位置を超えてファイルが書き込まれる場合、当該ファイルが書き込まれた後にＷＲＡＰマークを書き込む例を示した。ここで、標準反転位置を超えてファイルを書き込むと、当該ファイルの大きさによっては、標準反転位置からＥＯＴの位置までにファイルが収まらない可能性もある。すなわち、ファイルの書き込みの途中においてＥＯＴの位置でＷＲＡＰ反転してしまう可能性がある。そこで、第３の実施の形態では、このような場合に対応できる機能を提供する。
【０１２１】
ここで、第３の実施の形態のテープ装置および機能は、図２，７で示した第２の実施の形態の装置や機能と同様である。そこで、第３の実施の形態では、第２の実施の形態と同じ符号、名称を用いる。
【０１２２】
また、第３の実施の形態では、履歴テーブルが追加される。履歴テーブルには、テープカートリッジ１３０に書き込まれたファイルごとの容量を示す情報が登録される。
図１６は、履歴テーブルの例を示す図である。履歴テーブル１１１ｄは、記憶部１１１に格納される。履歴テーブル１１１ｄは、テープカートリッジ１３０に書き込まれたファイルごとのレコードを有する。各レコードは、ファイルＩＤおよびファイル容量の項目を含む。
【０１２３】
ファイルＩＤの項目には、ファイルを識別する情報が登録される。ファイル容量の項目には、ファイルＩＤの項目に対応するファイル容量を示す情報が登録される。このファイル容量とは、１つのファイルのために磁気テープに書き込まれるすべての情報のデータ量（具体的には、ＨＤＲ１からＴＭ３までのデータの容量）を指すものとする。
【０１２４】
図１７は、第３の実施の形態の書き込み時の処理例を示すフローチャートである。第３の実施の形態では、図１３の処理が図１７のように変形される。以下、図１７に示す処理をステップ番号に沿って説明する。また、図１３と異なる処理ステップについてのみ説明し、他のステップの説明を省略する。
【０１２５】
図１３のステップＳ３５で高速制御モードと判定され、ステップＳ３６でファイルの終端と判定されると、ステップＳ６１が実行される。
（Ｓ６１）Ｉ／Ｏ制御部１１３は、図１３のステップＳ３１で書き込みが終了したファイルのＩＤと当該ファイルに対応するファイル容量を、履歴テーブル１１１ｄの新規のレコードに登録する。
【０１２６】
（Ｓ６２）Ｉ／Ｏ制御部１１３は、図１３のステップＳ３７の同様の手順により、現在の書き込み方向を判定する。書き込み方向が順方向の場合、処理をステップＳ６３に進める。書き込み方向が逆方向の場合、処理を終了する。
【０１２７】
（Ｓ６３）Ｉ／Ｏ制御部１１３は、図１３のステップＳ３８と同様の手順により、書き込み位置が標準反転位置に達したか否かを判定する。書き込み位置が標準反転位置に達した場合、処理をステップＳ３９に進める。書き込み位置が標準反転位置に達していない場合、処理をステップＳ６４に進める。
【０１２８】
（Ｓ６４）Ｉ／Ｏ制御部１１３は、履歴テーブル１１１ｄに登録されている各ファイル容量を用いて、ファイル容量の平均値を算出する。算出される平均値は、次に書き込みが要求されるファイルに対応するファイル領域の推定値として利用される。
【０１２９】
（Ｓ６５）Ｉ／Ｏ制御部１１３は、ステップＳ６４で算出した平均値を次のファイルに対応するファイル容量とした場合、現在の書き込み位置からＥＯＴの位置までの間に次のファイルに対応する全情報を書き込めるか否かを判定する。具体的には、ステップＳ６４で算出した平均値が、現在の書き込み位置からＥＯＴまでの残容量以下の場合、書き込み可能と判定される。書き込める場合、処理を終了する。書き込めない場合、処理をステップＳ６６に進める。
【０１３０】
なお、ステップＳ６４で算出され、ステップＳ６５で残容量と比較される値は、上記の平均値に限定されない。例えば、履歴テーブル１１１ｄに登録されている各ファイル容量のうち、最大値が利用されてもよい。あるいは、例えば、平均値に対して、履歴テーブル１１１ｄに登録された各ファイル容量の分散度合いに基づく重み係数を乗算した値が利用されてもよい。
【０１３１】
（Ｓ６６）Ｉ／Ｏ制御部１１３は、現在の書き込み位置でＷＲＡＰ反転した場合に、３６トラックモードで書き込み可能な残容量がＷＲＡＰ反転後の位置からの磁気テープの残りの領域に収まるか否かを判定する。書き込み可能な残容量とは、３６トラックモードで書き込み可能な全体のデータ容量のうち、未書き込みのデータ容量を示す。
【０１３２】
具体的には、Ｉ／Ｏ制御部１１３は、媒体情報テーブル１１１ｂのＷＲＡＰ情報に記録されたすべての書き込み容量を加算する。Ｉ／Ｏ制御部１１３は、３６トラックモードで書き込み可能なデータ容量の上限値から、算出された平均値を減算して、上記の残容量を算出する。Ｉ／Ｏ制御部１１３は、ＷＲＡＰ反転後の位置（すなわち、次のＷＲＡＰにおける、現在の書き込み位置と同じ位置）からの磁気テープ全体の残容量から、算出された残容量を減算し、減算値が０以上の場合に、残容量が磁気テープの残りの領域に収まると判定する。
【０１３３】
書き込み可能な残容量が磁気テープの残りの領域に収まる場合、処理をステップＳ３９に進める。書き込み可能な残容量が磁気テープの残りの領域に収まらない場合、処理を終了する。
【０１３４】
このように、次のファイルを順方向ＷＲＡＰに続けて書き込むと、標準反転位置からＥＯＴの間にそのファイルに対する情報が収まらないと予測される場合には、標準反転位置より前であっても現在の書き込み位置にＷＲＡＰマークを書き込む。これにより、第２の実施の形態と比較して、記録されたファイルの読み出し途中でＷＲＡＰ反転が発生する確率を低減することができる。
【０１３５】
また、標準反転位置より前でＷＲＡＰ反転を行うと、磁気テープに書き込み可能な残りの容量が減ってしまう。その結果、３６トラックモードで書き込み可能な限界までデータの書き込みが要求された場合に、書き込みデータが磁気テープに収まらなくなる可能性がある。例えば、１つの順方向ＷＲＡＰだけ標準反転位置の前でＷＲＡＰ反転し、当該ＷＲＡＰ以外の順方向ＷＲＡＰが標準反転位置まで書き込みをすると、３６トラックモードで制限されている容量まで書き込みが行われなくなる。このような場合は、現在の書き込み位置にＷＲＡＰマークを書き込まないようにする。これにより、３６トラックモードで制限されている最大の容量まで磁気テープにデータを確実に書き込めるようにすることができる。
【０１３６】
なお、第２，第３の実施の形態では、磁気テープの書き込みモードとして１２８トラックモードと３６トラックモードとを例示した。しかし、書き込み可能なデータ量に制限がなく、磁気テープ全体にデータを書き込み可能な書き込みモードとしては、１２８トラックモードに限らず、他の書き込みモードを用いることもできる。同様に、書き込み可能なデータ量が、磁気テープ全体の容量より小さいデータ量に制限されている書き込みモードとしては、３６トラックモードに限らず、他の書き込みモードを用いることもできる。
【０１３７】
また、第１の実施の形態の情報処理は、テープ装置１に用いられるプロセッサに、プログラムを実行させることで実現できる。第２，３の実施の形態の情報処理は、プロセッサ１１０ａにプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体に記録できる。
【０１３８】
例えば、プログラムを記録した記録媒体を配布することで、プログラムを流通させることができる。また、マウント制御部１１２およびＩ／Ｏ制御部１１３に相当する機能を実現するプログラムを別個のプログラムとし、各プログラムを別個に配布してもよい。マウント制御部１１２およびＩ／Ｏ制御部１１３の機能が別個のコンピュータにより実現されてもよい。コンピュータは、例えば、記録媒体に記録されたプログラムを、ＲＡＭ１１０ｂやフラッシュメモリ１１０ｃに格納し（インストールし）、当該記憶装置からプログラムを読み込んで実行してもよい。
【０１３９】
なお、各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
【符号の説明】
【０１４０】
１  磁気テープ
１ａ，１ｂ  トラック
２  反転位置
３，４  データ
３ａ，３ｂ  データ領域
１０  テープ装置
１１  テープドライブ
１２  記憶部
１３  制御部
【図１】
0006481492.tif 000002
【図２】
0006481492.tif 000003
【図３】
0006481492.tif 000004
【図４】
0006481492.tif 000005
【図５】
0006481492.tif 000006
【図６】
0006481492.tif 000007
【図７】
0006481492.tif 000008
【図８】
0006481492.tif 000009
【図９】
0006481492.tif 000010
【図１０】
0006481492.tif 000011
【図１１】
0006481492.tif 000012
【図１２】
0006481492.tif 000013
【図１３】
0006481492.tif 000014
【図１４】
0006481492.tif 000015
【図１５】
0006481492.tif 000016
【図１６】
0006481492.tif 000017
【図１７】
0006481492.tif 000018