(57)【特許請求の範囲】
【請求項１】
媒体の識別子と、前記媒体に更に記録可能なデータ容量とを対応付けた管理情報を記憶する記憶部と、
入出力命令の実行のたびに、前記媒体に書込んだデータ容量または前記媒体から読出したデータ容量を計測する計測部と、
前記計測部により計測されたデータ容量の総計から前記媒体に記録済みのデータ容量を算出するとともに、前記媒体の開始位置から前記入出力命令の実行により書込みまたは読出されたデータの終了位置までの媒体の長さを示す記録済みの媒体長を、前記媒体をマウントしているドライブから取得し、前記記録済みのデータ容量と前記記録済みの媒体長とに基づいて、前記媒体に更に記録可能なデータ容量を算出する算出部と、
前記算出部により算出された前記媒体に更に記録可能なデータ容量で、前記媒体の識別子に対応する管理情報を更新する更新部と
を有することを特徴とするテープ装置。
【請求項２】
前記算出部は、入出力命令を実行して、データの書込みが終了したことを示す終了情報を書込みまたは読出した場合に、前記記録済みのデータ容量と前記記録済みの媒体長とから、媒体の長さあたりの記録済みデータ容量を算出し、算出した前記媒体の長さあたりの記録済みデータ容量と前記媒体に未記録の媒体の長さとから前記媒体に更に記録可能なデータ容量を算出することを特徴とする請求項１に記載のテープ装置。
【請求項３】
媒体がマウントされた時、前記媒体の識別子を含んだ情報の有無に基づいて前記媒体が未使用であるか否かを判定する判定部と、
前記判定部により前記媒体が未使用であると判定された場合、前記媒体の識別子と、前記媒体に更に記録可能なデータ容量とを対応付けた管理情報を生成する生成部と
を更に有することを特徴とする請求項１または２に記載のテープ装置。
【請求項４】
前記判定部は、前記媒体が未使用ではないと判定した場合、前記媒体から媒体の識別子を読出して、読出した媒体の識別子と一致する管理情報を検索し、
前記更新部は、前記判定部による検索の結果、一致する管理情報が存在する場合、前記算出部により算出された前記媒体に更に記録可能なデータ容量で、前記管理情報を更新する
ことを特徴とする請求項３に記載のテープ装置。
【請求項５】
前記生成部は、前記判定部による検索の結果、前記管理情報が存在しない場合、前記媒体の識別子と、前記媒体に更に記録可能なデータ容量とを対応付けた管理情報を生成することを特徴とする請求項４に記載のテープ装置。
【請求項６】
情報処理装置から前記管理情報の取得要求を受信した場合、前記記憶部から管理情報を読出して前記情報処理装置に送信する送信部を更に有することを特徴とする請求項１−５のいずれか一つに記載のテープ装置。
【請求項７】
テープ装置が、
入出力命令の実行のたびに、媒体に書込んだデータ容量または前記媒体から読出したデータ容量を計測し、
計測したデータ容量の総計から前記媒体に記録済みのデータ容量を算出するとともに、前記媒体の開始位置から前記入出力命令の実行により書込みまたは読出されたデータの終了位置までの媒体の長さを示す記録済みの媒体長を、前記媒体をマウントしているドライブから取得し、前記記録済みのデータ容量と前記記録済みの媒体長とに基づいて、前記媒体に更に記録可能なデータ容量を算出し、
算出した前記媒体に更に記録可能なデータ容量で、前記媒体の識別子に対応する管理情報を更新する
各処理を含んだことを特徴とするテープ装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テープ装置及びテープ装置の制御方法に関する。
【背景技術】
【０００２】
従来、汎用機システムで使用するＬＴＯ（Linear  Tape-Open）装置において、カートリッジ媒体にデータを追加記録する場合、カートリッジ媒体に記録できるデータ量が管理される。
【０００３】
例えば、汎用機システムにインストールしたアプリケーションソフトは、カートリッジ媒体に記録されているボリューム終わりラベルのデータを読み取り、カートリッジ媒体の公称最大記録量と読み取ったデータ量とから未記録データ量を算出する。
【０００４】
または、運用者自身が、カートリッジ媒体をテープドライブにロードして、ＣＭ（Cartridge  Memory）に記録されている記録済データ量を読み取り、記録済データ量と未記録データ量とを計算してカートリッジ媒体の履歴簿を作成する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第９７／１７６５２号
【特許文献２】特開２００７−１０４００６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来の技術では、カートリッジ媒体の未記録データ量を効率的に管理することができないという課題がある。
【０００７】
具体的には、従来の技術では、いずれの方法においてもカートリッジ媒体をテープドライブにロードすることになる。このため、未記録データ量を算出するたびにカートリッジ媒体をテープドライブにロードする時間を要する。
【０００８】
１つの側面では、本発明は、カートリッジ媒体の未記録データ量を効率的に管理することができるテープ装置及びテープ装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
第１の案では、テープ装置は、入出力命令の実行のたびに、媒体に書込んだデータ容量または媒体から読出したデータ容量を計測する。テープ装置は、計測したデータ容量の総計から媒体に記録済みのデータ容量を算出する。また、テープ装置は、媒体の開始位置から入出力命令の実行により書込みまたは読出されたデータの終了位置までの媒体の長さを示す記録済みの媒体長を、媒体をマウントしているドライブから取得する。続いて、テープ装置は、記録済みのデータ容量と記録済みの媒体長とに基づいて、媒体に更に記録可能なデータ容量を算出する。そして、テープ装置は、算出した媒体に更に記録可能なデータ容量で、媒体の識別子に対応する管理情報を更新する。
【発明の効果】
【００１０】
１実施形態によれば、カートリッジ媒体の未記録データ量を効率的に管理することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１に係るテープ装置のハードウェア構成の一例を示す図である。
【図２】図２は、カートリッジ媒体のデータフォーマットの一例を示す図である。
【図３】図３は、管理情報テーブルが記憶する情報の一例を示す図である。
【図４】図４は、実施例１に係るテープ装置のＣＰＵが実行するソフトウェアの機能部の機能構成を示す機能ブロック図である。
【図５】図５は、テープ装置によるカートリッジ媒体へのアクセス動作の一例を示す図である。
【図６】図６は、イニシャライズ処理の処理動作の一例を示す図である。
【図７】図７は、ファイル追加処理の処理動作の一例を示す図である。
【図８】図８は、ファイル追加処理の処理動作の一例を示す図である。
【図９】図９は、ファイル追加処理の処理動作の一例を示す図である。
【図１０】図１０は、ファイル削除処理の処理動作の一例を示す図である。
【図１１】図１１は、ヘッド位置付け処理の処理動作の一例を示す図である。
【図１２】図１２は、ヘッド位置付け処理の処理動作の一例を示す図である。
【図１３】図１３は、ヘッド位置付け処理の処理動作の一例を示す図である。
【図１４】図１４は、実施例１に係るテープ装置によるＷＴコマンド処理の処理手順を示すフローチャートである。
【図１５】図１５は、実施例１に係るテープ装置によるＲＤコマンド処理の処理手順を示すフローチャートである。
【図１６】図１６は、実施例１に係るテープ装置によるアイドル処理の処理手順を示すフローチャートである。
【図１７】図１７は、実施例１に係るテープ装置によるＳＰＦ／ＳＰコマンド処理の処理手順を示すフローチャートである。
【図１８】図１８は、実施例１に係るテープ装置によるＢＳＰＦ／ＢＳＰコマンド処理の処理手順を示すフローチャートである。
【図１９】図１９は、実施例１に係るテープ装置によるＷＴＭコマンド処理の処理手順を示すフローチャートである。
【図２０】図２０は、実施例１に係るテープ装置によるＲＷＤコマンド処理の処理手順を示すフローチャートである。
【図２１】図２１は、実施例１に係るテープ装置によるＳＤＩＡＧコマンド処理の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下に、本願の開示するテープ装置及びテープ装置の制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１３】
［実施例１に係るテープ装置のハードウェア構成］
図１は、実施例１に係るテープ装置のハードウェア構成の一例を示す図である。図１に示すように、実施例１に係るテープ装置１００、ドライブ部１２０と制御部１３０とを有する。また、実施例１に係るテープ装置１００は、図示しないホストと接続する。なお、ここで言うホストとは、メインフレームなどの汎用機システムやサーバなどの情報処理装置である。
【００１４】
ドライブ部１２０は、ドライブ１２１と、データバッファ１２２と、ＣＰＵ（Central  Processing  Unit）１２３とを有する。
【００１５】
ドライブ１２１は、カートリッジ媒体１２１ａと、ＣＭ（Cartridge  Memory）１２１ｂと、ドライバレシーバ１２１ｃと、を有する。ドライブ１２１は、セットされたカートリッジ媒体１２１ａに対してデータの書込みや、セットされたカートリッジ媒体１２１ａを走行させて記憶されるデータの読み出しを行う。
【００１６】
カートリッジ媒体１２１ａは、例えば、磁気テープである。なお、カートリッジ媒体１２１ａのデータフォーマットについては後述する。ＣＭ１２１ｂは、カートリッジ媒体１２１ａの記録位置を記憶する。ここでいう、記録位置とは、データの書込みやデータの読出しを実行後のヘッド位置を示す。すなわち、記録位置は、カートリッジ媒体１２１ａの開始位置からデータの書込みやデータの読出しを実行後のカートリッジ媒体１２１ａの終了位置までの磁気テープの長さを示す。なお、記録位置の単位はセクタ値である。ドライバレシーバ１２１ｃは、データバッファ１２２及びＣＰＵ１２３とのインターフェースである。
【００１７】
データバッファ１２２は、カートリッジ媒体１２１ａから読出したデータや、カートリッジ媒体１２１ａに書込むデータを一時的に記憶する。
【００１８】
ＣＰＵ１２３は、データバッファ１２２のアドレスを指定して、カートリッジ媒体１２１ａへのデータの書込み、読込みを制御する。
【００１９】
制御部１３０は、ホストインターフェース１３１と、ドライブインターフェース１３２と、フラッシュメモリ１３３と、データバッファ１３４と、メモリ１３５と、ＣＰＵ１３６とを有し、ホストによる要求に応じてドライブ部１２０を制御する。
【００２０】
ホストインターフェース１３１は、ホストとのインターフェースであり、ホストから各種コマンドを受信するとともに、ホストとのデータのやり取りを制御する。
【００２１】
ドライブインターフェース１３２は、制御部１３０とドライブ部１２０とのインターフェースである。
【００２２】
フラッシュメモリ１３３は、カートリッジ媒体の識別子と、カートリッジ媒体に更に記録可能なデータ容量とを対応付けた管理情報テーブル１３３ａを記憶する。なお、管理情報テーブル１３３ａの詳細については図３を用いて後述する。
【００２３】
データバッファ１３４は、ホストとドライブ部１２０との間でやり取りされるデータを一時的に記憶する。
【００２４】
メモリ１３５は、例えば、ＲＡＭ（Random  Access  Memory）などの半導体メモリ素子であり、ＣＰＵが実行する各種のプログラムを記憶する。また、メモリ１３５は、テープ装置１００の状態フラグを記憶する。
【００２５】
ＣＰＵ１３６は、ホストから受信したコマンドに応じて、ホストとドライブ部１２０との間のデータのやり取りを制御する。
【００２６】
このような、テープ装置１００は、コマンドの実行に応じて、カートリッジ媒体に書込んだデータ容量またはカートリッジ媒体から読出したデータ容量を計測する。テープ装置１００は、計測したデータ容量の総計からカートリッジ媒体に記録済みのデータ容量を算出する。また、テープ装置１００は、カートリッジ媒体の開始位置からコマンドの実行により書込みまたは読出されたデータの終了位置までのカートリッジ媒体の長さを示す記録済みの媒体長を、カートリッジ媒体をマウントしているドライブから取得する。続いて、テープ装置１００は、記録済みのデータ容量と記録済みの媒体長とに基づいて、カートリッジ媒体に更に記録可能なデータ容量を算出する。そして、テープ装置１００は、算出したカートリッジ媒体に更に記録可能なデータ容量で、管理情報テーブル１３３ａを更新する。
【００２７】
［カートリッジ媒体のデータフォーマット］
次に、図２を用いて、カートリッジ媒体のデータフォーマットについて説明する。図２は、カートリッジ媒体のデータフォーマットの一例を示す図である。図２に示すように、カートリッジ媒体の両端にはＢＯＴ(Beginning  Of  Tape)２ａとＥＯＴ(End  Of  Tape)２ｂが記録される。また、図２に示すように、カートリッジ媒体には、ＶＯＬ（Volume）２ｃ、ＨＤＲ（header）２ｄ及び２ｊ、ファイルデータ２ｆ及び２ｌ、ＥＯＦ（End  Of  File）２ｈ及び２ｎ、ＴＭ（Tape  Mark）２ｅ、２ｇ、２ｉ、２ｋ、２ｍ、２ｏ及び２ｐが記録される。
【００２８】
ここで、ＢＯＴ２ａは、カートリッジ媒体の先頭を示すマークである。また、ＥＯＴ２ｂは、カートリッジ媒体の終端を示す。そして、カートリッジ媒体では、このＢＯＴ２ａとＥＯＴ２ｂとの間が情報を記録できる領域になる。
【００２９】
ＶＯＬ２ｃは、ボリューム領域であり、ユーザやカートリッジ媒体の識別ラベルが記録される。このＶＯＬ２ｃのサイズは８０バイトであり、ＶＯＬには、８バイトのＶＯＬ名が付与される。このＶＯＬ２ｃは、各カートリッジ媒体につき一つ記録される。
【００３０】
また、ＨＤＲ２ｄ及び２ｊは、ヘッダ領域であり、ファイルデータを識別するラベルが記録される。このＨＤＲ２ｄ及び２ｊのサイズは８０バイトであり、各ＨＤＲ２ｄ及び２ｊには、８バイトのＨＤＲ名が付与される。
【００３１】
ファイルデータ２ｆ及び２ｌは、ユーザによりデータとバイトとが任意に変更可能なデータを示す。ＥＯＦ２ｈ及び２ｎは、ファイルデータの終わりを示す。このＥＯＦ２ｈ及び２ｎのサイズは８０バイトであり、各ＥＯＦ２ｈ及び２ｎには、８バイトのエンドデータ名が付与される。ＴＭ２ｅ、２ｇ、２ｉ、２ｋ、２ｍ、２ｏ及び２ｐは、カートリッジ媒体上にデータの読み/書きを制御するために記録される特別の符号または符号列である。ＴＭ２ｅ、２ｇ、２ｉ、２ｋ、２ｍ、２ｏ及び２ｐは、ファイルデータ２ｆ及び２ｌとＨＤＲ２ｄ及び２ｊやＥＯＦ２ｈ及び２ｎなどのラベルとの間またはラベル群の間の境界を示す。
【００３２】
また、カートリッジ媒体では、ＨＤＲ、ＴＭ、ファイルデータ、ＴＭ、ＥＯＦ、ＴＭを一つのデータ書込み単位とする。図２に示す例では、ＨＤＲ２ｄ、ＴＭ２ｅ、ファイルデータ２ｆ、ＴＭ２ｇ、ＥＯＦ２ｈ、ＴＭ２ｉを一つのデータ書込み単位とし、ＨＤＲ２ｊ、ＴＭ２ｋ、ファイルデータ２ｌ、ＴＭ２ｍ、ＥＯＦ２ｎ、ＴＭ２ｏを一つのデータ書込み単位とする。そして、カートリッジ媒体では、ＴＭが２つ連続して書込まれた場合、書込みの終了を示す。図２に示す例では、ＴＭ２ｏの後に書込まれたＴＭ２ｐは、書込みの終了を示す。
【００３３】
［管理情報テーブル］
次に、図３を用いて、管理情報テーブルが記憶する情報について説明する。図３は、管理情報テーブルが記憶する情報の一例を示す図である。図３に示すように、管理情報テーブル１３３ａは、ｘ列とｙ列とのそれぞれにアドレスを有し、ｘ列には各８バイトの格納域を有する。そして、管理情報テーブル１３３ａは、ｙ列のアドレスごとに「ＶＯＬ名」と、「ＨＤＲ名」と、「データ量」と、「総記録済容量」と、「記録済物理位置」と、「未記録容量」とを対応付けた情報を記憶する。
【００３４】
ここで、管理情報テーブル１３３ａが記憶する「ＶＯＬ名」は、ＶＯＬに付与されたボリューム名であり、カートリッジ媒体の識別子を示す。また、管理情報テーブル１３３ａが記憶する「ＨＤＲ名」は、ファイルデータのヘッダ名を示す。管理情報テーブル１３３ａが記憶する「データ量」は、直前のＨＤＲ名に対応する一つのデータ書込み単位のデータ量を示し、ＨＤＲ、ＴＭ、ファイルデータ、ＴＭ、ＥＯＦ、ＴＭのバイトカウントを含む。管理情報テーブル１３３ａが記憶する「総記録済容量」は、媒体に記録済みの総データ容量を示す。総記録済容量は、ＶＯＬ名に対応するデータ量の総計に、ＶＯＬの容量を加算することで算出される。なお、総記録済容量の単位はバイトである。管理情報テーブル１３３ａが記憶する「記録済物理位置」は、ドライブにマウントされているカートリッジ媒体におけるヘッド位置を示し、セクタ値で表される。この「記録済物理位置」は、カートリッジ媒体の開始位置からコマンドの実行により書込みまたは読出されたデータの終了位置までのカートリッジ媒体の長さを示す記録済みの媒体長を示す。管理情報テーブル１３３ａが記憶する「未記録容量」は、媒体に更に記録可能なデータ容量を示す。なお、未記録容量の単位はバイトである。
【００３５】
なお、ここで記憶される情報は、後述する生成部２０３により生成され、後述する更新部２０６によって適宜更新される。また、図３に示した情報はあくまで例示であり、これに限定されるものではなく、任意に設定変更できる。例えば、管理情報テーブル１３３ａは、「ＶＯＬ名」と「未記録容量」とのみを対応付けて記憶してもよい。
【００３６】
［実施例１に係るテープ装置のＣＰＵが実行するソフトウェアの機能構成］
次に、図４を用いて、実施例１に係るテープ装置のＣＰＵが実行するソフトウェアの機能構成を説明する。図４は、実施例１に係るテープ装置のＣＰＵが実行するソフトウェアの機能部の機能構成を示す機能ブロック図である。
【００３７】
図４に示すように、実施例１に係るテープ装置１００のＣＰＵ１３６が実行するソフトウェアの機能部２００は、コマンド処理部２０１と判定部２０２と生成部２０３と計測部２０４と算出部２０５と更新部２０６と送信部２０７とを有する。
【００３８】
コマンド処理部２０１は、ホストから受信した各種のコマンド処理を実行する。例えば、コマンド処理部２０１は、ＷＴコマンドからバイトカウントを読出し、読出したバイトカウントとテープ装置１００の状態フラグとに応じた処理を実行する。また、コマンド処理部２０１は、ドライブ部１２０から転送バイトカウントを取得し、取得したバイトカウントとテープ装置１００の状態フラグとに応じた処理を実行する。
【００３９】
次に、コマンド処理部２０１が実行するコマンド種の一例について説明する。例えば、コマンド処理部２０１は、ＷＴ（Write）コマンド、ＷＴＭ（Write  Tape  Mark）コマンド、ＲＤ（Read)コマンド、ＲＷＤ（Rewind）コマンドなどを実行する。また、コマンド処理部２０１は、ＳＰ（Space  Block）コマンド、ＳＰＦ（Space  File）コマンド、ＢＳＰ（Back  Space  Block）コマンド、ＢＳＰＦ（Back  Space  File）コマンドなどを実行する。
【００４０】
ＷＴコマンドは、データを書込むコマンドである。また、ＷＴＭコマンドは、ＴＭを書込むコマンドである。ＲＤコマンドは、データを読込むコマンドである。ＲＷＤコマンドは、ヘッド位置をカートリッジ媒体の先頭に位置付けるコマンドである。ＳＰコマンドは、ブロックを１つ分進むコマンドである。ＳＰＦコマンドは、ＴＭで挟まれたファイルを１つ分進むコマンドである。ＢＳＰコマンドは、ブロックを１つ分後退するコマンドである。ＢＳＰＦコマンドは、ＴＭで挟まれたファイルを１つ分後退するコマンドである。なお、各種コマンド種に応じた処理手順については、後述する。
【００４１】
判定部２０２は、カートリッジ媒体がマウントされた時、カートリッジ媒体の識別子を含んだ情報の有無に基づいてカートリッジ媒体が未使用であるか否かを判定する。ここで、判定部２０２は、カートリッジ媒体が未使用である場合、後述する生成部２０３に管理情報テーブル１３３ａを生成する旨を通知する。
【００４２】
また、判定部２０２は、カートリッジ媒体が未使用ではないと判定した場合、ＷＴコマンド処理終了後のアイドルルーチンで、管理情報テーブル１３３ａに書込むＶＯＬ名と同一のＶＯＬ名が存在するか否かを判定する。例えば、判定部２０２は、カートリッジ媒体からカートリッジ媒体の識別子を読出し、読出したカートリッジ媒体の識別子と一致する管理情報テーブル１３３ａを検索する。ここで、判定部２０２は、読出したカートリッジ媒体の識別子と一致する管理情報テーブル１３３ａが存在しない場合、後述する生成部２０３に管理情報テーブル１３３ａを生成する旨を通知する。
【００４３】
生成部２０３は、判定部２０２によりカートリッジ媒体が未使用であると判定された場合、以下の処理を実行する。すなわち、生成部２０３は、カートリッジ媒体の識別子と、カートリッジ媒体に記録済みのデータ容量と、カートリッジ媒体に更に記録可能なデータ容量とを対応付けた管理情報テーブル１３３ａを生成する。例えば、生成部２０３は、同一のＶＯＬ名が存在しない場合、管理情報テーブル１３３ａのアドレスｙ列を決定し、新たなＶＯＬ名を管理情報テーブル１３３ａに記録する。
【００４４】
また、生成部２０３は、判定部２０２による検索の結果、読出したカートリッジ媒体の識別子と一致する管理情報テーブル１３３ａが存在しない場合、カートリッジ媒体の識別子と、カートリッジ媒体に記録済みのデータ容量と、カートリッジ媒体に更に記録可能なデータ容量とを対応付けた管理情報テーブル１３３ａを生成する。
【００４５】
計測部２０４は、入出力命令の実行に応じて、カートリッジ媒体に書込んだデータ容量またはカートリッジ媒体から読出したデータ容量を計測する。計測部２０４は、計測したデータ容量をメモリ１３５に退避する。
【００４６】
算出部２０５は、計測部２０４により計測されたデータ容量の総計からカートリッジ媒体に記録済みのデータ容量を算出するとともに、カートリッジ媒体をマウントしているドライブからカートリッジ媒体の記録位置を取得する。そして、算出部２０５は、記録済みのデータ容量とカートリッジ媒体の記録位置とに基づいて、カートリッジ媒体に更に記録可能なデータ容量を算出する。
【００４７】
例えば、算出部２０５は、入出力命令を実行して、データの書込みが終了したことを示す終了情報を書込みまたは読出した場合に、カートリッジ媒体に記録済みのデータ容量の総計である総記録済容量を算出する。また、算出部２０５は、記録済のテープ長を示す記録済物理位置をＣＭ１２１ｂから読み出す。
【００４８】
そして、算出部２０５は、記録済みのデータ容量と記録済みの媒体長とから、カートリッジ媒体の長さあたりの記録済みデータ容量を算出する。続いて、算出部２０５は、算出したカートリッジ媒体の長さあたりの記録済みデータ容量とカートリッジ媒体に未記録の媒体の長さとからカートリッジ媒体に更に記録可能なデータ容量を算出する。
【００４９】
更新部２０６は、算出部２０５により算出されたカートリッジ媒体に記録済みのデータ容量とカートリッジ媒体に更に記録可能なデータ容量とで、フラッシュメモリ１３３が記憶する管理情報テーブル１３３ａを更新する。
【００５０】
更新部２０６は、判定部２０２による検索の結果、読出したカートリッジ媒体の識別子と一致する管理情報テーブル１３３ａが存在する場合、以下の処理を実行する。すなわち、更新部２０６は、該管理情報テーブル１３３ａを、算出部２０５により算出されたカートリッジ媒体に記録済みのデータ容量とカートリッジ媒体に更に記録可能なデータ容量とで更新する。
【００５１】
送信部２０７は、ＶＯＬ名を指定して管理情報テーブル１３３ａの取得要求をホストから受信した場合、フラッシュメモリ１３３から該当するＶＯＬ名の管理情報テーブル１３３ａを読出してホストに送信する。例えば、送信部２０７は、ＳＤＩＡＧコマンドを受信した場合、総記録済容量と、未記録容量をＥＢＳＤＩＣ(Extended  Binary  Coded  Decimal  Interchange  Code)変換してホストに転送する。なお、ホストに転送する際のデータの変換は、ＥＢＳＤＩＣに限定されるものではない。
【００５２】
［テープ装置によるカートリッジ媒体へのアクセス動作］
次に、図５を用いて、テープ装置１００によるカートリッジ媒体へのアクセス動作について説明する。図５は、テープ装置によるカートリッジ媒体へのアクセス動作の一例を示す図である。ここでは、テープ装置１００によるカートリッジ媒体への書込み動作と読み込み動作について説明する。なお、アクセス動作は、メモリ１３５に記憶される状態フラグにより管理される。
【００５３】
（書込み動作）
テープ装置１００は、状態フラグ１０において、未使用のカートリッジ媒体がドライブ１２１にマウントされると、先頭に８０バイトのＶＯＬを書込む（Ｓ１０）。テープ装置１００は、このＶＯＬの後には、ファイル単位にユーザデータを書込むが、この書込みは、後述する状態フラグ１１〜状態フラグ１４の動作を繰り返すことで実行される。
【００５４】
テープ装置１００は、状態フラグ１１において、ＶＯＬに続いて８０バイトのＨＤＲを書込み、その後ろにＴＭを書込む（Ｓ１１）。そして、テープ装置１００は、状態フラグ１２において、ＨＤＲ、ＴＭに続いて、任意のデータ長のユーザデータを書込む（Ｓ１２）。
【００５５】
テープ装置１００は、状態フラグ１３において、ユーザデータの最後に続いて、ＴＭと８０バイトのＥＯＦを書込み、その後ろにＴＭを書込む（Ｓ１３）。テープ装置１００は、状態フラグ１４において、１つのファイルを書き終わると、テープの最後を示すために、ＴＭを書込む（Ｓ１４）。
【００５６】
このように、テープ装置１００は、状態フラグ１３でＥＯＦとＴＭとを書込むので、状態フラグ１４で書込むＴＭと合せて、ＥＯＦとＴＭとに続いたＴＭにより、テープの最後を検出できる。また、テープ装置１００は、テープにファイルデータを追加書込みする場合は、テープの最後を検出した後、最後のＴＭを消去し、状態フラグ１１から状態フラグ１４の動作を繰り返し実行する。
【００５７】
（読込み動作）
テープ装置１００は、状態フラグ２０において、既に使用されたＣＭＴをマウントすると、先頭に８０バイトのＶＯＬを読込む（Ｓ２０）。そして、テープ装置１００は、状態フラグ２１において、ＶＯＬに続いて、最初のファイルデータのＨＤＲとＴＭとを読込む（Ｓ２１）。
【００５８】
テープ装置１００は、状態フラグ２２において、任意のデータのユーザデータを読込む（Ｓ２２）。テープ装置１００は、状態フラグ２３において、ユーザデータの最後に、ＴＭ、ＥＯＦ、ＴＭを読込む（Ｓ２３）。テープ装置１００は、状態フラグ２４において、テープの最後であれば、ＴＭを読込む（Ｓ２４）。テープ装置１００は、次のファイルがあれば、上述した状態フラグ２１〜状態フラグ２３を繰り返し実行する。
【００５９】
［実施例１に係るテープ装置による処理動作］
次に、図６から図１３を用いて、実施例１に係るテープ装置１００による処理動作について説明する。図６では、イニシャライズ処理の処理動作について説明し、図７から図９では、ファイルの追加処理の処理動作について説明し、図１０では、ファイルの削除処理の処理動作について説明する。また、図１１から図１３では、ヘッド位置付け処理の処理動作について説明する。
【００６０】
（イニシャライズ）
図６は、イニシャライズ処理の処理動作の一例を示す図である。なお、ここでいうイニシャライズ処理とは、未使用のカートリッジ媒体がドライブ１２１にマウントされた場合に、カートリッジ媒体にＶＯＬを書込む処理を示す。
【００６１】
図６に示すように、処理実行前のヘッド位置６ａは、カートリッジ媒体の先頭に位置する。テープ装置１００は、ホストからＷＴコマンドを検出した場合、ＷＴコマンドからバイトカウントを読出す。ここで、テープ装置１００は、バイトカウントが８０バイトの場合は、データバッファ１３４からライトデータを取り出し、ライトデータのＶＯＬ名を確認し、状態フラグを１０にセットする。そして、テープ装置１００は、ＷＴコマンドを実行してＶＯＬをカートリッジ媒体に書込む。
【００６２】
そして、テープ装置１００は、ＷＴコマンド処理終了後のアイドルルーチンで、ＶＯＬ名を管理情報テーブル１３３ａに書込む。例えば、テープ装置１００は、ＷＴコマンド処理終了後のアイドルルーチンで、管理情報テーブル１３３ａに書込むＶＯＬ名と同一のＶＯＬ名が存在するか否かを判定する。そして、テープ装置１００は、同一のＶＯＬ名が存在しない場合、管理情報テーブル１３３ａのアドレスｙ列を決定し、新たなＶＯＬ名を管理情報テーブル１３３ａに記録する。また、テープ装置１００は、管理情報テーブル１３３ａのアドレス位置をインクリメントする。なお、イニシャライズ処理の実行後のヘッド位置６ｂは、ＶＯＬの後方に位置する。
【００６３】
（ファイル追加）
図７は、ファイル追加処理の処理動作の一例を示す図である。なお、ここでは、ＶＯＬが書込まれた後に、ファイルデータＡが追加される場合を例にする。図７に示すように、処理実行前のヘッド位置７ａは、ＶＯＬの後方に位置する。
【００６４】
テープ装置１００は、ファイルデータの書込みを実行する前に、コマンドシーケンス７ｂ「ＲＷＤ、ＲＤ」を実行し、カートリッジ媒体を巻き戻してからＶＯＬを読込み、状態フラグ２０に遷移する。また、テープ装置１００は、管理情報テーブル１３３ａのアドレス位置をインクリメントする。
【００６５】
そして、テープ装置１００は、図７に示すヘッド位置７ａから、ファイルを追加する場合、以下手順により処理を行う。テープ装置１００は、コマンドシーケンス７ｃ「ＷＴ、ＷＴＭ、ＷＴ、ＷＴ、・・・、ＷＴ、ＷＴ、ＷＴＭ、ＷＴ、ＷＴＭ、ＷＴＭ」を実行し、「ＨＤＲ、ＴＭ、ファイルデータ、ＴＭ、ＥＯＦ、ＴＭ、ＴＭ」を書込む。以下にコマンドシーケンス７ｃの処理の具体例を示す。
【００６６】
まず、テープ装置１００は、ＷＴコマンド受信時、ＶＯＬの後方へのライトは、ヘッダ領域のライトのため、ＨＤＲ名を管理情報テーブル１３３ａに記憶する。そして、テープ装置１００は、ＷＴＭコマンド実行後、状態フラグを１１から１２に変更し、管理情報テーブル１３３ａのアドレスｘ列をインクリメントし、ファイルデータの処理バイトカウントのアドレスに位置付ける。
【００６７】
続いて、テープ装置１００は、次のＷＴコマンド以降は、ファイルデータＡのライトであるため、処理バイトカウントを加算する。
【００６８】
テープ装置１００は、ファイルデータＡ後方のＷＴＭコマンド実行後にファイルデータ書込み完了のため、処理バイトカウントを管理情報テーブル１３３ａに記憶し、同アドレスｘ列をインクリメントして、次のＨＤＲ名のアドレスに位置付ける。
【００６９】
テープ装置１００は、ＥＯＦデータを書込み処理で状態フラグ１３に変更し、次のＷＴＭコマンドでは状態フラグ１４に変更する。そして、テープ装置１００は、以下手順で現ヘッド位置の未記録容量を求め管理情報テーブル１３３ａに記録する。例えば、テープ装置１００は、記録済のテープ長を示す記録済物理位置をＣＭ１２１ｂから読み出し、書込み済テープ長あたりの記録済量を算出する。そして、テープ装置１００は、未記録物理領域と記録済量とから、未記録容量を算出する。
【００７０】
テープ装置１００は、連続２個目のＷＴＭコマンドでは状態フラグ１５の変更を行う。なお、ファイル追加処理実行後のヘッド位置７ｄは、ＴＭの後ろに位置する。
【００７１】
（ファイル追加）
図８は、ファイル追加処理の処理動作の一例を示す図である。なお、ここでは、実行前のファイルデータＡが存在するフォーマットに対して、同図ヘッド位置８ａから、ファイルデータＢを追加する場合を例にする。処理実行前のヘッド位置８ａは、ＶＯＬの前方に位置する。
【００７２】
テープ装置１００は、まず、ファイルデータＢの書込みを実行する前に、コマンドシーケンス８ｂ「ＲＤ、ＳＰＦ、ＲＤ、ＳＰＦ、ＲＤ、ＳＰＦ、ＲＤ、ＢＳＰ」を実行し、ヘッド位置８ｃをＴＭとＴＭの間に位置付ける。以下にコマンドシーケンス８ｂの処理の具体例を示す。
【００７３】
まず、テープ装置１００は、ＲＤコマンド８ｄを受信すると、ドライブ部１２０から転送バイトカウントを取得する。ここで、テープ装置１００は、バイトカウントが８０バイトであることから、データバッファ１３４のリードデータがＶＯＬであると判定する。テープ装置１００は、リードデータのＶＯＬと同一のＶＯＬ名が管理情報テーブル１３３ａに存在するか否かを判定し、同一ＶＯＬ名が存在しない場合、新たなＶＯＬ名を管理情報テーブル１３３ａに記録する。
【００７４】
テープ装置１００は、ＳＰＦコマンドでデータを読み込むとＨＤＲであるため、バイトカウントが８０バイトであることを確認し、データバッファ１３４のＨＤＲ名を管理情報テーブル１３３ａに記憶する。
【００７５】
テープ装置１００は、ＳＰＦコマンドでＨＤＲ後方のＴＭを読み取ると管理情報テーブル１３３ａのアドレスｘ列をインクリメントし、処理バイトカウントを記憶するアドレスとする。テープ装置１００は、ファイルデータの読込みを示す状態フラグ２２をセットする。
【００７６】
テープ装置１００は、ファイルデータＡに対してＳＰＦコマンドを発行すると、データブロックのリードを、ＴＭを読み込むまで処理バイトカウントを加算する。テープ装置１００は、ＴＭを読み込むと処理バイトカウントを管理情報テーブル１３３ａに記憶し、同アドレスｘ列をインクリメントし、次のＨＤＲ名のアドレスに位置付ける。テープ装置１００は、状態フラグを２３に変更する。
【００７７】
テープ装置１００は、ＥＯＦ後方のＴＭをＳＰＦコマンドでリードすると、状態フラグを２４に変更し、以下手順で現ヘッド位置の未記録容量を求め管理情報テーブル１３３ａに記録する。例えば、テープ装置１００は、現管理情報テーブル１３３ａのアドレスまで記憶しているデータ量の和を求め、テーブルの総記録済容量との差を未記録容量に加算（ファイル削除後の未記録容量）し、現ヘッド位置の未記録容量を求める。
【００７８】
テープ装置１００は、ＥＯＦ後方２個目のＴＭをＲＤ及びＢＳＰコマンドで読み込むと状態フラグを２５、そして２４に変更する。
【００７９】
テープ装置１００は、コマンドシーケンス８ｅに従って、ファイルデータＢの書込みを以下の処理で実行する。テープ装置１００は、最初のＷＴコマンドを受信すると、バイトカウントが８０であると判定し、ＥＯＦ後のＨＤＲライト処理を行う。テープ装置１００は、状態フラグ２４を１１に変更する。なお、以降のコマンド処理は、図７に示すコマンドシーケンス７ｃによるファイル追加処理と同様の処理であるため説明を省略する。なお、ファイル追加処理実行後のヘッド位置８ｆは、ＴＭの後ろに位置する。
【００８０】
（ファイル追加）
図９は、ファイル追加処理の処理動作の一例を示す図である。なお、ここでは、実行前のファイルデータＡ及びファイルデータＢが存在するフォーマットに対して、同図ヘッド位置９ａから、ファイルデータＢの第１、第２ブロックを残し、４個のブロックを新規に追加更新する場合を例にする。処理実行前のヘッド位置９ａは、ＶＯＬの前方に位置する。
【００８１】
テープ装置１００は、コマンドシーケンス９ｂに従って、ファイルデータＢのＨＤＲ先頭ブロックに位置づける。テープ装置１００は、状態フラグ２４では、現管理情報テーブル１３３ａのアドレスまでに記憶しているデータ量の和を求め、テーブルの総記録済容量との差を未記録容量に加算し、現ヘッド位置での未記録容量を求める。なお、コマンドシーケンス９ｂ実行後のヘッド位置９ｃは、ＴＭの後ろに位置する。
【００８２】
テープ装置１００は、ホストからファイルデータＢの更新処理のためのコマンドシーケンス９ｄに従って、ファイルデータＢの変更データの書込みを以下の処理で実行する。テープ装置１００は、ＲＤコマンド９ｅを実行すると、ＥＯＦ後方のＨＤＲ直前である状態フラグ２４により、ＨＤＲ名を管理情報テーブル１３３ａに記憶する。
【００８３】
テープ装置１００は、次のＳＰＦコマンドでは管理情報テーブル１３３ａのアドレスx列をインクリメントし、処理バイトカウントのアドレスとする。状態フラグは２１から２２に変更する。テープ装置１００は、ファイルデータＢの先頭から２ブロックを読み取り、処理バイトカウントを加算する。
【００８４】
テープ装置１００は、ファイルデータＢの先頭から３ブロック目から４ブロックを新規データのライトを実行し、状態フラグを１２に変更し、処理バイトカウントをＲＤコマンドの処理バイトカウントに続き加算する。なお、ファイルデータＢの後方のＷＴＭコマンド以降は、図７に示すコマンドシーケンス７ｃによるファイル追加処理と同様の処理であるため説明を省略する。また、ファイル追加処理実行後のヘッド位置９ｆは、ＴＭの後ろに位置する。
【００８５】
（ファイル削除）
図１０は、ファイル削除処理の処理動作の一例を示す図である。なお、ここでは、実行前のファイルデータＡ及びファイルデータＢが存在するフォーマットに対して、同図ヘッド位置１０ａから、ファイルデータＢを削除する場合を例にする。処理実行前のヘッド位置１０ａは、ＶＯＬの前方に位置する。
【００８６】
テープ装置１００は、コマンドシーケンス１０ｂに従って、ファイルデータＢのＨＤＲ先頭にヘッド位置１０ｃを位置付ける。テープ装置１００は、ファイルデータＢのＨＤＲのＲＤコマンド１０ｄを実行すると状態フラグを２１に変更し、ＢＳＰコマンドを実行するとＥＯＦ後方のＨＤＲ直前である状態フラグ２４に変更する。
【００８７】
テープ装置１００は、状態フラグ２４になると現管理情報テーブル１３３ａのアドレスまでに記憶しているデータ量の和を求め、テーブルの総記録済容量との差を未記録容量に加算（ファイル削除後の未記録容量）し、現ヘッド位置での未記録容量を求める。
【００８８】
テープ装置１００は、コマンドシーケンス１０ｅのＷＴＭコマンドを実行して、ファイルデータＡのＥＯＦ後方にＴＭを１個新たに追加し、ファイルを削除する。処理は以下となる。
【００８９】
テープ装置１００は、ＷＴＭコマンド実行時にファイルデータの終わりを示す状態フラグ２５に変更し、記録済のテープ長を示す記録済物理位置をＣＭ１２１ｂから読み出し、記録済物理位置と総記録済容量とから、書込み済テープ長あたりの記録済量を算出する。そして、テープ装置１００は、未記録物理領域と記録済量とから、未記録容量を算出する。テープ装置１００は、総記録済容量と未記録容量を管理情報テーブル１３３ａに記録する。また、テープ装置１００は、ファイルデータの終わりのため、管理情報テーブル１３３ａのテーブルのＨＤＲとデータ量の削除処理を実行する。
【００９０】
（ヘッド位置付け）
図１１は、ヘッド位置付け処理の処理動作の一例を示す図である。なお、ここでは、実行前のファイルデータＡ及びファイルデータＢが存在するフォーマットに対して、同図ヘッド位置１１ａから、ファイルデータＢのＨＤＲにヘッド位置１１ｂを位置付ける場合、ホストから発行される一般的なコマンド実行例による処理を示す。また、ここでは、ファイルデータＢのＨＤＲを読み取れるまで、全てＲＤコマンドで行い、ファイルデータＢのＨＤＲが読み取れたら、ＢＳＰコマンドを実行する例を示す。
【００９１】
テープ装置１００は、ＲＤコマンド１１ｃでバイトカウントが８０バイトでデータバッファ１３４のデータがＶＯＬの場合、状態フラグ２０をセットし、当該ＶＯＬ名と同一のＶＯＬ名が管理情報テーブル１３３ａに存在するか否かを判定し、管理情報テーブル１３３ａのアドレスｙ列を決定する。テープ装置１００は、当該ＶＯＬ名と同一のＶＯＬ名が存在しない場合、新たなＶＯＬ名を管理情報テーブル１３３ａに記録する。
【００９２】
テープ装置１００は、ＶＯＬを読込み後のＲＤコマンドはＨＤＲ名を読み込むため、バイトカウントが８０バイトであることを確認後、状態フラグ２１をセットし、ＨＤＲ名を管理情報テーブル１３３ａに記憶する。
【００９３】
テープ装置１００は、ＨＤＲ後方のＴＭを読み込むと、ファイルデータＡの処理バイトカウント記憶のための管理情報テーブル１３３ａにアドレスｘ列をインクリメントする。テープ装置１００は、ファイルデータＡへのＲＤコマンド実行は処理バイトカウントを加算する。
【００９４】
テープ装置１００は、ファイルデータ後方のＴＭをＲＤコマンドで検出すると、管理情報テーブル１３３ａに処理バイトカウントを記憶し、管理情報テーブル１３３ａのアドレスをインクリメントし、次のＨＤＲ名のアドレスに位置づける。テープ装置１００は、ＥＯＦ後方のＴＭをＲＤコマンドで検出し、ＥＯＦ後方のＨＤＲ直前である状態フラグを２４に変更する。テープ装置１００は、アドレスｘ列をインクリメントまたはデクリメントしない。
【００９５】
テープ装置１００は、状態フラグ２４に変更すると、現管理情報テーブル１３３ａのアドレスまでに記憶しているデータ量の和を求め、テーブルの総記録済容量との差を未記録容量に加算（ファイル削除後の未記録容量）し、現ヘッド位置での未記録容量を求める。
【００９６】
テープ装置１００は、次のＲＤコマンドはＨＤＲの読み込みのため、バイトカウントが８０バイトであることを確認後、状態フラグ２１をセットし、ＨＤＲ名を管理情報テーブル１３３ａに記憶する。テープ装置１００は、ＢＳＰコマンドはブロックのバックリード処理のみで、管理情報テーブル１３３ａのアドレスはインクリメントまたはデクリメントしない。
【００９７】
（ヘッド位置付け）
図１２は、ヘッド位置付け処理の処理動作の一例を示す図である。なお、ここでは、図１１と同様に、実行前のファイルデータＡ及びファイルデータＢが存在するフォーマットに対して、同図ヘッド位置１２ａから、ファイルデータＢのＨＤＲにヘッド位置１２ｂを位置付ける場合、ホストから発行される一般的なコマンド実行例による処理を示す。なお、ＴＭにＳＰＦコマンドを実行する以外の発行コマンドは、図１１と同じ処理で行う。以下にＳＰＦコマンド実行時の処理を記載する。
【００９８】
テープ装置１００は、ＨＤＲ後方のＴＭにＳＰＦコマンドを実行すると以下の処理を実行する。テープ装置１００は、ＨＤＲを読込んだ後、ＴＭ読込み、管理情報テーブル１３３ａのアドレスをインクリメントし、処理バイトカウントを記憶するアドレスに位置付ける。
【００９９】
テープ装置１００は、ファイルデータＡ後方のＴＭにＳＰＦコマンドを実行すると以下の処理を実行する。テープ装置１００は、管理情報テーブル１３３ａに処理バイトカウントを記憶し、管理情報テーブル１３３ａのアドレスをインクリメントし、次のＨＤＲ名のアドレスに位置付ける。
【０１００】
テープ装置１００は、ＥＯＦ後方のＴＭにＳＰＦコマンドを実行すると以下の処理を実行する。テープ装置１００は、ＥＯＦ後方のＴＭを示す状態フラグを２４に変更する。なお、テープ装置１００は、管理情報テーブル１３３ａのアドレスはインクリメントまたはデクリメントしない。
【０１０１】
テープ装置１００は、図１１で説明したのと同様の方法で、現ヘッド位置での未記録容量を求める。テープ装置１００は、ファイルデータＢのＨＤＲのＲＤコマンドは、ＨＤＲ名を管理情報テーブル１３３ａに記憶する。
【０１０２】
テープ装置１００は、ファイルデータＢのＨＤＲのＢＳＰコマンドは、ＥＯＦ後方のＴＭを示す状態フラグを２４に変更する。
【０１０３】
（ヘッド位置付け）
図１３は、ヘッド位置付け処理の処理動作の一例を示す図である。なお、ここでは、ヘッド位置１３ａをファイルデータＢ後方の２個のＴＭ後方から、前方のファイルデータＢのＨＤＲであるヘッド位置１３ｂに位置付ける場合、ホストから発行される一般的なコマンド例に対する処理を示す。なお、現行ヘッド位置１３ａは、読み込みまたは、書込みが完了しているものとする。
【０１０４】
テープ装置１００は、２個連続のＴＭ部後方からＢＳＰＦコマンドを実行すると、ＥＯＦ前方のＴＭを読み取る。ここで、テープ装置１００は、ファイルデータＢに入ると管理情報テーブル１３３ａのアドレスをデクリメントし、処理バイトカウントを記憶するアドレスに位置付ける。
【０１０５】
テープ装置１００は、ファイルデータＢ前方のＴＭにＢＳＰＦコマンドを実行すると以下の処理を行う。テープ装置１００は、管理情報テーブル１３３ａのアドレスをマイナスし、ＨＤＲ名のアドレスとする。テープ装置１００は、ＨＤＲ領域を示す状態フラグ２１に変更する。
【０１０６】
テープ装置１００は、ＨＤＲ前方のＴＭにＢＳＰＦコマンドを実行すると以下の処理を実行する。テープ装置１００は、管理情報テーブル１３３ａのアドレスは変更しない。テープ装置１００は、ＥＯＦ領域を示す状態フラグ２３に変更する。
【０１０７】
テープ装置１００は、ＥＯＦ後方のＴＭにＳＰＦコマンドを実行すると以下の処理を実行する。テープ装置１００は、ＥＯＦ後方のＴＭを示す状態フラグ２４に変更する。テープ装置１００は、管理情報テーブル１３３ａのアドレスは変更しない。そして、テープ装置１００は、図１１で説明したのと同様の方法で、現ヘッド位置での未記録容量を求める。
【０１０８】
テープ装置１００は、ＨＤＲブロックのＲＤコマンド、ＢＳＰコマンドの処理は図１１で説明したのと同様の方法である。
【０１０９】
［実施例１に係るテープ装置による処理手順］
次に図１４から図２１を用いて、実施例１に係るテープ装置による処理手順を説明する。ここでは、図１４を用いてＷＴコマンド処理の処理手順を説明し、図１５を用いてＲＤコマンド処理の処理手順を説明する。また、図１６を用いてアイドル処理の処理手順を説明し、図１７を用いてＳＰＦ／ＳＰコマンド処理の処理手順を説明し、図１８を用いてＢＳＰＦ／ＢＳＰコマンド処理の処理手順を説明する。また、図１９を用いてＷＴＭコマンド処理の処理手順を説明し、図２０を用いてＲＷＤコマンド処理の処理手順を説明し、図２１を用いてＳＤＩＡＧコマンド処理の処理手順を説明する。
【０１１０】
（ＷＴコマンド処理）
図１４は、実施例１に係るテープ装置によるＷＴコマンド処理の処理手順を示すフローチャートである。図１４に示すように、テープ装置１００は、ＷＴコマンドを受信した場合、状態フラグが１２または２２であるか否かを判定する（ステップＳ１０１）。すなわち、テープ装置１００は、ファイルデータの書込み状態やファイルデータの読込み状態であるか否かを判定する。
【０１１１】
テープ装置１００は、状態フラグが１２または２２ではないと判定した場合（ステップＳ１０１、Ｎｏ）、バイトカウントが８０であるか否かを判定する（ステップＳ１０２）。すなわち、テープ装置１００、ＶＯＬ、ＨＤＲ、ＥＯＦの書込みや読込み状態であるか否かを判定する。
【０１１２】
ここで、テープ装置１００は、状態フラグが１２または２２であると判定した場合（ステップＳ１０１、Ｙｅｓ）、またはバイトカウントが８０ではないと判定した場合（ステップＳ１０２、Ｎｏ）、状態フラグを１２にセットする（ステップＳ１０３）。
【０１１３】
また、テープ装置１００は、バイトカウントが８０であると判定した場合（ステップＳ１０２、Ｙｅｓ）、状態フラグが１０、１４、２０または２４のいずれかであるか否かを判定する（ステップＳ１０４）。テープ装置１００は、状態フラグが１０、１４、２０または２４のいずれでもないと判定した場合（ステップＳ１０４、Ｎｏ）、データバッファ１３４のデータがＶＯＬであるか否かを判定する（ステップＳ１０５）。
【０１１４】
テープ装置１００は、データバッファ１３４のデータがＶＯＬではないと判定した場合（ステップＳ１０５、Ｎｏ）、状態フラグを１３にセットする（ステップＳ１０６）。一方、テープ装置１００は、データバッファ１３４のデータがＶＯＬであると判定した場合（ステップＳ１０５、Ｙｅｓ）、状態フラグを１０にセットし、データバッファ１３４内のＶＯＬ名をメモリ１３５に退避する（ステップＳ１０７）。
【０１１５】
テープ装置１００は、状態フラグが１０、１４、２０または２４のいずかであると判定した場合（ステップＳ１０４、Ｙｅｓ）、状態フラグを１１にセットし、データバッファ１３４内のＨＤＲ名をメモリ１３５に退避する（ステップＳ１０８）。
【０１１６】
続いて、テープ装置１００は、処理バイトカウントを加算する（ステップＳ１０９）。そして、テープ装置１００は、ライト処理を実行する。例えば、テープ装置１００は、データバッファ１３４からデータバッファ１２２へデータを送信する（ステップＳ１１０）。そして、テープ装置１００は、ドライブ部１２０からエラー情報を採取する（ステップＳ１１１）。テープ装置１００は、このステップＳ１１１の終了後、ＷＴコマンド処理を終了する。
【０１１７】
（ＲＤコマンド処理）
図１５は、実施例１に係るテープ装置によるＲＤコマンド処理の処理手順を示すフローチャートである。図１５に示すように、テープ装置１００は、ＲＤコマンドを受信した場合、ドライブ部１２０から転送バイト数を獲得する（ステップＳ２０１）。そして、テープ装置１００は、データバッファ１３４からホストへデータを転送する（ステップＳ２０２）。続いて、テープ装置１００は、リードブロック番号が正しくインクリメントされているか判定する（ステップＳ２０３）。なお、リードブロック番号は、データの書込み時にハードウェアでブロックに番号を付加して書込まれる。そして、テープ装置１００は、ドライブ部１２０からエラー情報を採取する（ステップＳ２０４）。
【０１１８】
そして、テープ装置１００は、状態フラグが２２であるか否かを判定する（ステップＳ２０５）。すなわち、テープ装置１００は、ファイルデータの読込み状態であるか否かを判定する。ここで、テープ装置１００は、状態フラグが２２ではないと判定した場合（ステップＳ２０５、Ｎｏ）、バイトカウントが８０であるか否かを判定する（ステップＳ２０６）。
【０１１９】
テープ装置１００は、状態フラグが２２であると判定した場合（ステップＳ２０５、Ｙｅｓ）、またはバイトカウントが８０ではないと判定した場合（ステップＳ２０６、Ｎｏ）、ＴＭ検出判定処理を実行する（ステップＳ２０７）。なお、ＴＭ検出判定処理の詳細については後述する。
【０１２０】
テープ装置１００は、バイトカウントが８０であると判定した場合（ステップＳ２０６、Ｙｅｓ）、状態フラグが２０または２４のいずれかであるか否かを判定する（ステップＳ２０８）。テープ装置１００は、状態フラグが２０または２４のいずれでもないと判定した場合（ステップＳ２０８、Ｎｏ）、データバッファ１３４のデータがＶＯＬであるか否かを判定する（ステップＳ２０９）。
【０１２１】
テープ装置１００は、データバッファ１３４のデータがＶＯＬではないと判定した場合（ステップＳ２０９、Ｎｏ）、状態フラグを２３にセットする（ステップＳ２１０）。一方、テープ装置１００は、データバッファ１３４のデータがＶＯＬであると判定した場合（ステップＳ２０９、Ｙｅｓ）、状態フラグを２０にセットし、データバッファ１３４内のＶＯＬ名をメモリ１３５に退避する（ステップＳ２１１）。
【０１２２】
テープ装置１００は、状態フラグが２０または２４のいずかであると判定した場合（ステップＳ２０８、Ｙｅｓ）、状態フラグを２１にセットし、データバッファ１３４内のＨＤＲ名をメモリ１３５に退避する（ステップＳ２１２）。
【０１２３】
続いて、テープ装置１００は、処理バイトカウントを加算し（ステップＳ２１３）、ＲＤコマンド処理を終了する。
【０１２４】
（アイドル処理）
図１６は、実施例１に係るテープ装置によるアイドル処理の処理手順を示すフローチャートである。図１６に示すように、テープ装置１００は、各ホストコマンドを処理する（ステップＳ３０１）。そして、テープ装置１００は、状態フラグが１０〜１５のいずれかであるか否かを判定する（ステップＳ３０２）。
【０１２５】
テープ装置１００は、状態フラグが１０〜１５のいずれかであると判定した場合（ステップＳ３０２、Ｙｅｓ）、状態フラグに基づいて、ＶＯＬ処理、ＨＤＲ処理、ＥＯＦ処理のいずれかを実行する（ステップＳ３０３）。例えば、テープ装置１００は、ＶＯＬ処理として、退避済みのＶＯＬ名のｙ列を決定して、ＶＯＬ名を管理情報テーブル１３３ａに格納し、また、アドレスをインクリメントする。テープ装置１００は、ＨＤＲ処理として、ＨＤＲ名を管理情報テーブル１３３ａに格納する。
【０１２６】
また、テープ装置１００は、状態フラグが１０〜１５のいずれでもないと判定した場合（ステップＳ３０２、Ｎｏ）、あるいはステップＳ３０３の終了後、状態フラグが２０〜２５のいずれかであるか否かを判定する（ステップＳ３０４）。
【０１２７】
テープ装置１００は、状態フラグが２０〜２５のいずれかであると判定した場合（ステップＳ３０４、Ｙｅｓ）、状態フラグに基づいて、ステップＳ３０３と同様に、ＶＯＬ処理、ＨＤＲ処理、ＥＯＦ処理のいずれかを実行する（ステップＳ３０５）。
【０１２８】
テープ装置１００は、状態フラグが２０〜２５のいずれでもないと判定した場合（ステップＳ３０４、Ｎｏ）、あるいは、ステップＳ３０５の終了後、以下の処理を実行する。すなわち、テープ装置１００は、ホストとドライブ部１２０の割込みを監視し（ステップＳ３０６）、ホストのオンラインまたはオフラインを監視する（ステップＳ３０７）。
【０１２９】
また、テープ装置１００は、ホストからのコマンド処理、データの送信、データの受信、またはコマンドの解析処理を実行する（ステップＳ３０８）。そして、テープ装置１００は、ホストコマンド終結処理やステイタス報告処理を実行する（ステップＳ３０９）。
【０１３０】
また、テープ装置１００は、ドライブ部１２０へコマンドコードを発行し（ステップＳ３１０）、ドライブ部１２０に対してデータの送信、データの受信を行う（ステップＳ３１１）。そして、テープ装置１００は、ドライブ部１２０の状態を監視し（ステップＳ３１２）、ドライブ部１２０のコマンド終了を監視する（ステップＳ３１３）。ステップＳ３１３の終了後、テープ装置１００は、アイドル処理を終了する。
【０１３１】
（ＳＰＦ／ＳＰコマンド処理）
図１７は、実施例１に係るテープ装置によるＳＰＦ／ＳＰコマンド処理の処理手順を示すフローチャートである。図１７に示すように、テープ装置１００は、リードブロック番号が正しくインクリメントされているかを判定する（ステップＳ４０１）。そして、テープ装置１００は、ＳＰＦ／ＳＰエラー情報をドライブ部１２０から採取する（ステップＳ４０２）。続いて、テープ装置１００は、ドライブＧＯ処理を実行する（ステップＳ４０３）。なお、ドライブＧＯ処理とは、ドライブ部１２０に起動を指示することを示す。
【０１３２】
テープ装置１００は、ブロックのリードが終了したか否かを判定する（ステップＳ４０４）。ここで、テープ装置１００は、ブロックのリードが終了していないと判定した場合（ステップＳ４０４、Ｎｏ）、リードが終了するまで判定処理を繰り返す。
【０１３３】
テープ装置１００は、ブロックのリードが終了したと判定した場合（ステップＳ４０４、Ｙｅｓ）、処理バイトカウントを積算する（ステップＳ４０５）。そして、テープ装置１００は、ＲＤコマンド処理を実行する（ステップＳ４０６）。例えば、テープ装置１００は、図１５に示したステップＳ２０１〜ステップＳ２０４の処理を実行する。続いて、テープ装置１００は、アイドル処理を実行する（ステップＳ４０７）。例えば、テープ装置１００は、図１６に示したステップＳ３０６〜ステップＳ３１３の処理を実行する。そして、テープ装置１００は、ステイタス報告処理を実行する（ステップＳ４０８）。
【０１３４】
続いて、テープ装置１００は、以下ステップＳ４０９からステップＳ４１９に示すＴＭ検出判定処理を実行する。なお、この処理は、図１５のステップＳ２０７のＴＭ検出判定処理に対応する。例えば、テープ装置１００は、ＴＭを検出したか否かを判定する（ステップＳ４０９）。ここで、テープ装置１００は、ＴＭを検出したと判定した場合（ステップＳ４０９、Ｙｅｓ）、状態フラグが２３であるか否かを判定する（ステップＳ４１０）。
【０１３５】
テープ装置１００は、状態フラグが２３であると判定した場合（ステップＳ４１０、Ｙｅｓ）、状態フラグ２４をセットする（ステップＳ４１１）。そして、テープ装置１００は、処理バイト及び総記録済容量に処理バイトを加算した値を管理情報テーブル１３３ａに記憶させて、処理バイトカウントをクリアする（ステップＳ４１２）。
【０１３６】
テープ装置１００は、管理情報テーブル１３３ａにおける現在のアドレスまでのデータ量の和を算出して、総記録済み容量との差を未記録容量に加算し、現ヘッド位置での未記録容量を算出して管理情報テーブル１３３ａに記録する（ステップＳ４１３）。テープ装置１００は、ステップＳ４１３の終了後、ＳＰＦ／ＳＰコマンド処理を終了する。
【０１３７】
テープ装置１００は、状態フラグが２３ではないと判定した場合（ステップＳ４１０、Ｎｏ）、状態フラグが２１であるか否かを判定する（ステップＳ４１４）。テープ装置１００は、状態フラグが２１ではないと判定した場合（ステップＳ４１４、Ｎｏ）、状態フラグが２２であるか否かを判定する（ステップＳ４１５）。ここで、テープ装置１００は、状態フラグが２２であると判定した場合（ステップＳ４１５、Ｙｅｓ）、処理バイトカウントを管理情報テーブル１３３ａに記録し、処理バイトカウントをクリアする（ステップＳ４１６）。
【０１３８】
一方、テープ装置１００は、状態フラグが２１であると判定した場合（ステップＳ４１４、Ｙｅｓ）、あるいはステップＳ４１６の終了後、以下の処理を実行する。すなわち、テープ装置１００は、管理情報テーブル１３３ａのアドレスをインクリメントし、状態フラグを現在の状態フラグに１を加算した状態フラグに遷移させ（ステップＳ４１７）、ＳＰＦ／ＳＰコマンド処理を終了する。
【０１３９】
テープ装置１００は、状態フラグが２２ではないと判定した場合（ステップＳ４１５、Ｎｏ）、状態フラグが２４であるか否かを判定する（ステップＳ４１８）。すなわち、テープ装置１００は、ＴＭが連続して２つ検出されたか否かを判定する。ここで、テープ装置１００は、状態フラグが２４であると判定した場合（ステップＳ４１８、Ｙｅｓ）、状態フラグを２５にセットする（ステップＳ４１９）。テープ装置１００は、ステップＳ４１９の終了後、ＳＰＦ／ＳＰコマンド処理を終了する。
【０１４０】
テープ装置１００は、ＴＭを検出していないと判定した場合（ステップＳ４０９、Ｎｏ）、あるいは、状態フラグが２４ではないと判定した場合（ステップＳ４１８、Ｎｏ）、ＳＰＦ／ＳＰコマンド処理を終了する。
【０１４１】
（ＢＳＰＦ／ＢＳＰコマンド処理）
図１８は、実施例１に係るテープ装置によるＢＳＰＦ／ＢＳＰコマンド処理の処理手順を示すフローチャートである。図１８に示すように、テープ装置１００は、リードブロック番号が正しくデクリメントされているかを判定する（ステップＳ５０１）。そして、テープ装置１００は、ＢＳＰＦ／ＢＳＰエラー情報をドライブ部１２０から採取する（ステップＳ５０２）。続いて、テープ装置１００は、ドライブＧＯ処理を実行する（ステップＳ５０３）。
【０１４２】
テープ装置１００は、ブロックのリードが終了したか否かを判定する（ステップＳ５０４）。ここで、テープ装置１００は、ブロックのリードが終了していないと判定した場合（ステップＳ５０４、Ｎｏ）、リードが終了するまで判定処理を繰り返す。テープ装置１００は、ブロックのリードが終了した場合（ステップＳ５０４、Ｙｅｓ）、ステイタス報告処理を実行する（ステップＳ５０５）。
【０１４３】
続いて、テープ装置１００は、ＴＭを検出したか否かを判定する（ステップＳ５０６）。ここで、テープ装置１００は、ＴＭを検出したと判定した場合（ステップＳ５０６、Ｙｅｓ）、処理バイトカウントをクリアする（ステップＳ５０７）。
【０１４４】
そして、テープ装置１００は、状態フラグが１１、２１、１４または２４のいずれかであるか否かを判定する（ステップＳ５０８）。テープ装置１００は、状態フラグが１１、２１、１４または２４のいずれかであると判定した場合（ステップＳ５０８、Ｙｅｓ）、状態フラグ２３をセットし（ステップＳ５０９）、ＢＳＰＦ／ＢＳＰコマンド処理を終了する。
【０１４５】
テープ装置１００は、状態フラグが１１、２１、１４または２４のいずれかでもないと判定した場合（ステップＳ５０８、Ｎｏ）、状態フラグを現在の状態フラグから１を減算した状態フラグに遷移させる（ステップＳ５１０）。続いて、テープ装置１００は、状態フラグが１３、１４、２３または２４のいずれかであるか否かを判定する（ステップＳ５１１）。
【０１４６】
テープ装置１００は、状態フラグが１３、１４、２３または２４のいずれかであると判定した場合（ステップＳ５１１、Ｙｅｓ）、ＢＳＰＦ／ＢＳＰコマンド処理を終了する。一方、テープ装置１００は、状態フラグが１３、１４、２３または２４のいずれかでもないと判定した場合（ステップＳ５１１、Ｎｏ）、管理情報テーブル１３３ａのアドレスをデクリメントし（ステップＳ５１２）、ＢＳＰＦ／ＢＳＰコマンド処理を終了する。
【０１４７】
テープ装置１００は、ＴＭを検出していないと判定した場合（ステップＳ５０６、Ｎｏ）、状態フラグが２１であるか否かを判定する（ステップＳ５１３）。ここで、テープ装置１００は、状態フラグが２１ではないと判定した場合（ステップＳ５１３、Ｎｏ）、ＢＳＰＦ／ＢＳＰコマンド処理を終了する。
【０１４８】
テープ装置１００は、状態フラグが２１であると判定した場合（ステップＳ５１３、Ｙｅｓ）、状態フラグ２４をセットする（ステップＳ５１４）。そして、テープ装置１００は、管理情報テーブル１３３ａにおける現在のアドレスまでのデータ量の和を算出して、総記録済み容量との差を未記録容量に加算し、現ヘッド位置での未記録容量を算出して管理情報テーブル１３３ａに記録する（ステップＳ５１５）。テープ装置１００は、このステップＳ５１５の処理の終了後、ＢＳＰＦ／ＢＳＰコマンド処理を終了する。
【０１４９】
（ＷＴＭコマンド処理）
図１９は、実施例１に係るテープ装置によるＷＴＭコマンド処理の処理手順を示すフローチャートである。図１９に示すように、テープ装置１００は、リードブロック番号のインクリメント処理を実行する（ステップＳ６０１）。そして、テープ装置１００は、ＷＴＭエラー情報をドライブ部１２０から採取する（ステップＳ６０２）。なお、このステップＳ６０１及びステップＳ６０２の処理は、ＷＴＭ処理である。
【０１５０】
続いて、テープ装置１００は、状態フラグが２３または１３のいずれかであるか否かを判定する（ステップＳ６０３）。テープ装置１００は、状態フラグが２３または１３のいずれかであると判定した場合（ステップＳ６０３、Ｙｅｓ）、状態フラグ１４をセットする（ステップＳ６０４）。続いて、テープ装置１００は、処理バイト及び総記録済容量に処理バイトを加算した値を管理情報テーブル１３３ａに記憶させて、処理バイトカウントをクリアする（ステップＳ６０５）。
【０１５１】
そして、テープ装置１００は、ＣＭ情報の記録済物理位置を読込み、未記録容量を算出し、算出した未記録容量を管理情報テーブル１３３ａに記録する（ステップＳ６０６）。例えば、テープ装置１００は、ＣＭ情報の記録済物理位置から記録済みテープ長あたりの記録済み量を算出し、未記録物理長と、記録済み量とから未記録容量を求める。なお、ここでいう、未記録容量とは、更に媒体に記録可能な容量である。テープ装置１００は、このステップＳ６０６の処理の終了後、ＷＴＭコマンド処理を終了する。
【０１５２】
テープ装置１００は、状態フラグが２３または１３のいずれでもないと判定した場合（ステップＳ６０３、Ｎｏ）、状態フラグを現在の状態フラグから１加算した状態フラグに遷移させる（ステップＳ６０７）。そして、テープ装置１００は、状態フラグが１２であるか否かを判定する（ステップＳ６０８）。
【０１５３】
テープ装置１００は、状態フラグが１２ではないと判定した場合（ステップＳ６０８、Ｎｏ）、状態フラグが１３であるか否かを判定する（ステップＳ６０９）。ここで、テープ装置１００は、状態フラグが１３であると判定した場合（ステップＳ６０９、Ｙｅｓ）、処理バイトカウントを管理情報テーブル１３３ａに記録し、処理バイトカウントをクリアする（ステップＳ６１０）。
【０１５４】
テープ装置１００は、状態フラグが１２であると判定した場合（ステップＳ６０８、Ｙｅｓ）、あるいは、ステップＳ６１０の処理の終了後、管理情報テーブルのアドレスをインクリメントし（ステップＳ６１１）、ＷＴＭコマンド処理を終了する。
【０１５５】
テープ装置１００は、状態フラグが１３ではないと判定した場合（ステップＳ６０９、Ｎｏ）、状態フラグが１５または２５のいずれかであるか否かを判定する（ステップＳ６１２）。ここで、テープ装置１００は、状態フラグが１５または２５のいずれでもないと判定した場合（ステップＳ６１２、Ｎｏ）、ＷＴＭコマンド処理を終了する。
【０１５６】
一方、テープ装置１００は、状態フラグが１５または２５のいずれかであると判定した場合（ステップＳ６１２、Ｙｅｓ）、ＣＭ情報の記録済物理位置を読込み、未記録容量を算出し、算出した未記録容量を管理情報テーブル１３３ａに記録する（ステップＳ６１３）。例えば、テープ装置１００は、ＣＭ情報の記録済物理位置から記録済みテープ長あたりの記録済み量を算出し、未記録物理長と、記録済み量とから未記録容量を求める。なお、ここでいう、未記録容量とは、更に媒体に記録可能な容量である。
【０１５７】
そして、テープ装置１００は、管理情報テーブル１３３ａのＨＤＲ名、データ量を削除する（ステップＳ６１４）。例えば、テープ装置１００は、管理情報テーブル１３３ａのＨＤＲ名、データ量に対応付けてＡＬＬ０を記録する。テープ装置１００は、このステップＳ６１４の処理が終了後、ＷＴＭコマンド処理を終了する。
【０１５８】
（ＲＷＤコマンド処理）
図２０は、実施例１に係るテープ装置によるＲＷＤコマンド処理の処理手順を示すフローチャートである。図２０に示すように、テープ装置１００は、リードブロック番号をリセットする（ステップＳ７０１）。そして、テープ装置１００は、書込み量、読込み量に関する項目をクリアする（ステップＳ７０２）。すなわち、テープ装置１００は、処理バイトカウントと、状態フラグとをクリアする。この処理の終了後、テープ装置１００は、ＲＷＤコマンド処理を終了する。
【０１５９】
（ＳＤＩＡＧコマンド処理）
図２１は、実施例１に係るテープ装置によるＳＤＩＡＧコマンド処理の処理手順を示すフローチャートである。図２１に示すように、テープ装置１００は、診断項目の解析処理を実行する（ステップＳ８０１）。そして、テープ装置１００は、診断データをドライブ部１２０に送信し（ステップＳ８０２）、診断を開始する（ステップＳ８０３）。
【０１６０】
テープ装置１００は、記録済みデータ量と未記録容量とを要求されたか否かを判定する（ステップＳ８０４）。ここで、テープ装置１００は、記録済みデータ量と未記録容量とを要求されたと判定した場合（ステップＳ８０４、Ｙｅｓ）、ＶＯＬ名を検索する（ステップＳ８０５）。なお、テープ装置１００は、記録済みデータ量と未記録容量とを要求されていないと判定した場合（ステップＳ８０４、Ｎｏ）、ＳＤＩＡＧコマンド処理を終了する。
【０１６１】
テープ装置１００は、ＶＯＬ名を管理情報テーブル１３３ａから検索済みであるか否かを判定する（ステップＳ８０６）。テープ装置１００は、ＶＯＬ名を管理情報テーブル１３３ａから検索済みであると判定した場合（ステップＳ８０６、Ｙｅｓ）、ＨＤＲ名の転送を準備し、データ量をＥＢＳＤＩＣ変換する（ステップＳ８０７）。なお、テープ装置１００は、ＶＯＬ名を管理情報テーブル１３３ａから検索済みではないと判定した場合（ステップＳ８０６、Ｎｏ）、ステップＳ８０５に移行する。
【０１６２】
続いて、テープ装置１００は、データをホストに転送し（ステップＳ８０８）、全てのデータを転送したか否かを判定する（ステップＳ８０９）。ここで、テープ装置１００は、全てのデータを転送していないと判定した場合（ステップＳ８０９、Ｎｏ）、ステップＳ８０７に移行する。
【０１６３】
テープ装置１００は、全てのデータをホストに転送したと判定した場合（ステップＳ８０９、Ｙｅｓ）、総記録済容量と、未記録容量をＥＢＳＤＩＣ変換し（ステップＳ８１０）、データをホストに転送する（ステップＳ８１１）。
【０１６４】
テープ装置１００は、指定されたＶＯＬに対する処理が終了したか否かを判定し（ステップＳ８１２）、指定されたＶＯＬに対する処理が終了していない場合には（ステップＳ８１２、Ｎｏ）、ステップＳ８０５に移行する。
【０１６５】
一方、テープ装置１００は、指定されたＶＯＬに対する処理が終了した場合（ステップＳ８１２、Ｙｅｓ）、ＳＤＩＡＧコマンド処理を終了する。
【０１６６】
［実施例１の効果］
上述してきたように、実施例１に係るテープ装置１００は、コマンドを実行する毎に処理したデータ容量を計測し、テープの物理位置と処理したデータ容量の総計とから算出したテープ残量を記憶する。この結果、実施例１に係るテープ装置１００は、テープをドライブにロードせずにテープ残量を効率的に管理することができる。
【０１６７】
例えば、実施例１に係るテープ装置１００は、カートリッジ媒体をドライブ１２１にロードしなくても管理情報テーブル１３３ａに記憶している該当ボリュームの記録済データ量と未記録データ量をホストが認識可能である。このため、カートリッジ媒体の未記録データ量を管理するための時間を要さない。
【０１６８】
また、実施例１に係るテープ装置１００は、カートリッジ媒体にファイルデータを書込み中にカートリッジ媒体の書込み不良等による未記録データ量が減少する場合、これから書込もうとするデータが未記録物理領域に収まるか否か判断できる。
【実施例２】
【０１６９】
ところで、本発明は、上述した実施例以外にも、種々の異なる形態にて実施されてよい。そこで、実施例２では、本発明に含まれる他の実施例について説明する。
【０１７０】
（システム構成等）
本実施例において説明した各処理のうち自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文章中や図面中で示した処理手順、制御手順、具体的名称については、特記する場合を除いて任意に変更することができる。
【０１７１】
また、図示した各構成部は、機能概念的なものであり、必ずしも物理的に図示のごとく構成されていることを要しない。例えば、テープ装置１００では、算出部２０５と更新部２０６とが統合されてもよい。さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【符号の説明】
【０１７２】
１００  テープ装置
１２０  ドライブ部
１２１  ドライブ
１２１ａ  カートリッジ媒体
１２１ｂ  ＣＭ
１２１ｃ  ＤＶ／ＲＶ
１２２  データバッファ
１２３  ＣＰＵ
１３０  制御部
１３１  ホストインターフェース
１３２  ドライブインターフェース
１３３  フラッシュメモリ
１３３ａ  管理情報テーブル
１３４  データバッファ
１３５  メモリ
１３６  ＣＰＵ
２００  機能部
２０１  コマンド処理部
２０２  判定部
２０３  生成部
２０４  計測部
２０５  算出部
２０６  更新部
２０７  送信部
【図１】
0005888037.tif 000002
【図２】
0005888037.tif 000003
【図３】
0005888037.tif 000004
【図４】
0005888037.tif 000005
【図５】
0005888037.tif 000006
【図６】
0005888037.tif 000007
【図７】
0005888037.tif 000008
【図８】
0005888037.tif 000009
【図９】
0005888037.tif 000010
【図１０】
0005888037.tif 000011
【図１１】
0005888037.tif 000012
【図１２】
0005888037.tif 000013
【図１３】
0005888037.tif 000014
【図１４】
0005888037.tif 000015
【図１５】
0005888037.tif 000016
【図１６】
0005888037.tif 000017
【図１７】
0005888037.tif 000018
【図１８】
0005888037.tif 000019
【図１９】
0005888037.tif 000020
【図２０】
0005888037.tif 000021
【図２１】
0005888037.tif 000022