(57)【特許請求の範囲】
【請求項１】
ホストからシーケンシャルに送られた複数のレコードを最後の前記レコードのよりホストが認識するファイルとして記録するテープ記録装置であって、
前記複数のレコードを一時的に保管するバッファと、
前記複数のレコードを記録するテープと、
前記バッファに保管された複数のレコードを前記テープに書込む書込み手段と、
前記バッファに保管された複数のレコードが一定量に達したタイミングによりシーケンシャルに前記一定量の前記レコードを前記テープに書込み、前記テープに書込まれた前記一定量の前記レコードの間隔が最小限になるようにバックヒッチを行う書込み制御手段とを備え、
前記書込み制御手段は、
複数の前記ファイルの区切り位置を指定するために、前記ファイルを構成する最後のレコードを受取った直後においてホストから受け取る前記ファイルの区切り位置として指定する命令（区切り位置指定コマンド）であって、１つのファイルを構成する最後の前記レコードを前記ファイルの区切り位置として指定する前記区切り位置指定コマンドを受けとった場合に前記コマンドを受取った順番を保持し、
前記区切り位置指定コマンドを受けた後に、ホストから受け取る、どの前記ファイルの最後のレコードの前記区切り位置までを前記テープに書込み済みかを確認する命令（書込み位置確認コマンド）であって、前記書込み位置確認コマンドを受けた場合に前記テープに書込み済みのファイル区切り位置の情報（前記順番）をホストに通知し、ホストが前記区切り位置指定コマンド及び前記書込み位置確認コマンドの組合せにより、前記ファイルの区切りのタイミングごとにバックヒッチを伴わず各ファイルの書込み確認ができることを特徴とする、テープ記録装置。
【請求項２】
前記書込み制御手段は、前記書込み位置確認コマンドに対して、前記テープに記録済みのファイル区切り位置の情報として、最後に前記テープに書込まれた前記ファイルの区切り位置を示す順番を、ホストに通知する請求項１に記載のテープ記録装置。
【請求項３】
前記書込み制御手段は、前記書込み位置確認コマンドに対して、前記テープに記録済みのファイル区切り位置の情報を、最後に前記テープに書込まれた前記ファイルの区切り位置を示す順番を、最後に区切り位置指定コマンドにより指示された順番からの相対値を、ホストに通知する請求項１に記載のテープ記録装置。
【請求項４】
前記書込み制御手段は、最後のもとしてＮ番目のファイルの前記位置指定コマンドを受けた後、前記テープに書込済みのファイルの区切り位置を示す最後の順番Ｍ（自然数でＭ＜Ｎ）である場合、前記テープに記録済みのファイル区切り位置の情報は前記相対位置としてＮ−Ｍをホストに通知する請求項３記載のテープ記録装置。
【請求項５】
ホストと、
前記ホストに接続され請求項１項記載のテープ記録装置とを備え、
前記テープ記録装置は前記ホストが発行した前記複数ファイルの前記区切り位置指定コマンド、及び、前記書込み位置確認コマンドを受付けるテープ記録システム。
【請求項６】
前記書込み制御手段は、前記書込み位置確認コマンドに対して、前記指定された区切り位置まで前記テープに書込み済みか否かの情報として、最後に前記テープに書込まれた前記指定された区切り位置を示す順番を、外部の前記ホストに通知する請求項５に記載のテープ記録システム。
【請求項７】
前記書込み制御手段は、前記書込み位置確認コマンドに対して、前記指定させた区切り位置まで前記テープに書込み済みか否かの情報として、最後に前記テープに書込まれた前記指定された区切り位置を示す順番の最後の前記コマンドにより指定された区切り位置の最後の順番からの相対値を、外部のホストに通知する請求項５に記載のテープ記録システム。
【請求項８】
前記書込み制御手段は、複数の前記位置指定コマンドの数がＭ（自然数）個であって、最後にテープに書込まれた区切り位置が順番Ｎ（自然数でＮ＜Ｍ）である場合、前記指定された区切り位置の最後の順番がＭであり、前記相対位置としてＮ−Ｍを前記ホストに通知する請求項７記載のテープ記録システム。
【請求項９】
前記テープは、前記テープ記録装置に着脱可能な請求項５〜８にいずれか１項記載のテープ記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、磁気テープ記録装置（以下テープドライブ）の書込み速度を改善することに関する。詳しくは、本発明は、書込みパフォーマンスが改善されたテープ記録装置、及びその書込み制御方法に関する。
【背景技術】
【０００２】
図１は、テープ記録システムの形態の例として、テープアーカイブシステム（「テープバックアップシステム」とも言う）の構成２００を示す。コンピュータ（ホスト、サーバまたはＰＣ）２１０に接続されたテープドライブに着脱可能に搭載されたテープ・カートリッジ２４０（以下「テープ」とも言う）には、ハードディスク（ＨＤＤ）２２０に記録されたデータを保存（Ａｒｃｈｉｖｉｎｇ）する。テープ・カートリッジ２４０は、ＨＤＤ、ＣＤ、ＤＶＤ及びＤＲＡＭなど他の記録媒体に比べて、安価に、かつ、長期の間高度な信頼性を保証する。
【０００３】
図２は、一般的なテープドライブ１００の構成図を示す。
図２により、一般的なテープドライブのデータの書込み方法を説明する。
テープドライブ１００は、バッファ１２０と、記録チャネル１３０と、ヘッド１４ｂと、テープ及びカートリッジ１４ａ，１４ｅと、モータ１５０と、データ書込み制御装置（コントローラ１６０、ヘッド位置制御システム１７０）と、モータドライバ１８５とを含む。コントローラ１６０は、インターフェース１１０を介して、ホスト１０５からバッファ１２０にデータ（またはレコードとも言う）の書込みを指示する書込みコマンド、バッファ１２０のデータをテープ１４ａへの書込みを指示する同期コマンドを受け取る。  例えばインターフェース１１０の通信の規格がＳＣＳＩの場合、ホスト１０５からのデータまたはレコードの書込みコマンドは、ＷＲＩＴＥコマンドである。同期コマンドは、バッファ１２０に一時的に保管（準備）されたファイルをテープに書込みされたことを確認するために、ＷＲＩＴＥ  ＦＩＬＥＭＡＲＫＳ  ０（以下「ＷＲＩＴＥ  ＦＭ０」と省略する）コマンドである。
【０００４】
コントローラ１６０は、テープドライブ１００の全体を制御する。コントローラ１６０は、ホスト１０５から受け付けたコマンドに従って、データのテープ１４ａへの書込み読取りを制御する。また、コントローラ１６０は、ヘッド位置制御システム１７０やモータドライバ１８５の制御も行う。
【０００５】
記録チャネル１３０を介して渡されたレコードをヘッド１４ｂによりテープ１４ａに書込む。テープ１４ａは、リール１４ｃ及び１４ｄに巻かれ、これらの回転に伴い、リール１４ｃからリール１４ｄの方向へ、又は、その反対の方向へ、長手方向に移動する。カートリッジ１４ｅは、テープ１４ａが巻きつけてあるリール１４ｃを収容する容器である。１４ｅと同じカートリッジにより、リール１４ｄを収容するものを設けてもよい。モータ１５０は、リール１４ｃ及び１４ｄを回転させる。
【０００６】
ホスト１０５は、ＷＲＩＴＥコマンドによりバッファ１２０に一時保管された複数のレコードの固まりをファイルとして確実にテープに書込まれたことを確認したい。その確認のために、テープドライブに同期要求（Ｆｌｕｓｈ）を行なう。ホスト１０５から書込まれたレコードは、バッファ１２０に一時保管され、ＷＲＩＴＥ  ＦＭ０のコマンドにより同期要求（Ｆｌｕｓｈ）され、バッファからテープにレコード書込みが確実に行なわれる。通常の利用では、同期要求は、先行する複数のレコードのＷＲＩＴＥコマンドがされた後に、発行される。
【０００７】
図３（３−１）は、テープドライブ内におけるバッファ４１０（図２の１２０）からテープ４２０（図２の１４ａ）への３つのファイルの従来の同期要求による書込み制御方法を示す。図３（３−２）は、テープ４２０への３つのファイルの同期操作のタイミング・チャート（図３（３−２））を示す。
【０００８】
一般的なテープドライブの書込み制御方法では、ホストから一連のレコード（点線に区別される）がバッファ４１０に書込まれ一時保管されたレコードが一定量に達したときに、テープドライブの速さでテープに書込まれている。テープドライブは、シーケンシャル書込み読出し特性を有しているため、バッファ４１０にある程度の量のレコードが保管されると、ホストからのＷＲＩＴＥコマンド及び同期コマンドとは無関係に、テープ４２０への書き出しが開始する。
【０００９】
図３の（３−１）では、テープドライブに着脱可能に搭載されたテープ４２０に３つのファイルＡ，Ｂ，Ｃを書込むために同期要求を発行する。ホストのアプリケーションは、意味のある複数のレコードの固まりとして、ファイルＡ、Ｂ、Ｃを意味あるものとして区別している。ホストのアプリケーションは、テープ４２０に確実に書込まれたことを確認するために、（１）（２）（３）の区切りの時点おいて、同期要求（ＷＲＩＴＥ  ＦＭ０：このコマンドを受けるとテープドライブはＦｌｕｓｈ動作を実行する）を発行する。
【００１０】
テープドライブは、各ファイルＡ，Ｂ，Ｃのそれぞれについての同期要求を受けると、同期要求により指定されたファイルＡ，Ｂ，Ｃがテープに書込まれたことをホストのアプリケーションに通知する。例えば、ファイルＡの同期を完了すれば、ホストのアプリケーションは次のファイルＢについてＷＲＩＴＥコマンドを実行してバッファ４２０にファイルＢを一時保管する。
【００１１】
図３の（３−２）のタイミング・チャートは、テープ４２０への３つのファイルＡ，Ｂ，Ｃの同期操作の完了と同時にバックヒッチ（Ｂａｃｋｈｉｔｃｈ）が伴うことを示す。例えば、ファイルＡにいての同期の完了に続いてファイルＢについて同期要求する場合において、テープドライブではバックヒッチが介在するため、ファイルＢの同期操作の開始が遅れる。つまり、複数ファイルの全てに同期要求をする場合、全体として書込みパフォーマンスが大きく低下する。
【００１２】
ファイルＡのテープ４２０への書込み完了後も、テープ４２０は書込みヘッドに対してテープは前進している。テープ４２０を停止させずに次のファイルＢの同期要求を行った場合、先行する同期要求によりテープ書込まれているファイルＡと、書込まれるファイルＢとの間に長い記録領域の無駄が生じる。テープドライブは、この記録容量の無駄を小さくするために、バックヒッチ操作によりテープ媒体の長手方向に書込まれるファイル（レコード）の間隔を最小限にしている。
【００１３】
バックヒッチは、テープ媒体の走行速度を減速して、一旦停止し、反転して直前に書込まれたファイルの終端部を越えて減速して再び停止し、順方向に加速して、書込むべき位置まで戻り前回のファイルの終端に至る、モータ駆動の操作によって実行される。ＩＢＭ製テープドライブ（ＬＴＯ、３５９２等）では、同期要求ごとに生じるテープドライブのバックヒッチ操作に約２．５〜３秒かかる。多くの同期要求を伴うデータのテープ書込みは、バックヒッチ操作を頻発させて、ホストからの転送データの書込みパフォーマンスを劣化させる原因となる。  
【００１４】
図３の（３−２）は、１つのファイルの大きさによるが、そのファイルのテープの書込み速度は数１０ｍ秒程度であることを示す。１つのバックヒッチ操作は、１つの書込み時間に書込みファイルのテープへの書込み速度と比べて２桁以上大きな時間（３秒程度）を付加する。テープドライブは、ファイルＡについての同期完了とともに、バックヒッチ操作を行う必要あるため、次のファイルＢをバッファ４１０に保管できたとしてもテープへの書込みを受付けることはできない。図３の（３−２）は、ファイルＢはバッファ４１０に準備されているとしても、実質的にバックヒッチ（２〜３秒）の間、テープ４２０に書込むことを待たされることを示している。
【００１５】
図３のファイルＡ，Ｂ，Ｃに対してそれぞれ３回の同期要求される場合、３回のバックヒッチにより最大９秒程度の書込みパフォーマンスの低下を生じさせる。仮に１００個のファイルを書き出すためには、同期操作のためだけに、本来データを書き出すために必要な時間に加えて少なくとも３００秒程度の余分な書込み時間を必要とする。
【００１６】
図４は、同期操作（即ちバックヒッチ）にかかる時間を出来るだけ減らすため、複数のファイルをまとめて同期操作を行う書込みシーケンス（ｊ−１）〜（ｊ−４）を示す。この書込みシーケンスは、従来の書込みシーケンスのようにアプリケーションにとって意味のあるファイル１，２，３ごとに同期要求を行なわない。テープドライブ５３０のバッファに全てのファイル１、２、３が書込まれた段階で、最終的にアプリケーションが１回のみ同期要求（Ｆｌｕｓｈ）を発行する書込み方法である。
【００１７】
この書込み制御方法の問題点は、まとめて同期を行うため、個々のファイル単位でみると、最後にテープドライブに対して書き出したファイル以外は、同期の応答が遅くなる。最初にテープドライブに対して書き出しを行ったファイルも、最後のファイルの書き出し後の同期完了後までは、テープに確実に書き出されたことを保障できない。また、Ｆｉｌｅ１、Ｆｉｌｅ２、Ｆｉｌｅ３のどれかのテープへの書込み途中で同期操作のエラーを検出した場合、テープドライブは、どのファイルの書き出しで失敗したかをアプリケーションに対して通知できない。書き出しを指示したファイル群（Ｆｉｌｅ１、Ｆｉｌｅ２、Ｆｉｌｅ３）の全てについて、書き直しを行う必要がある。バックアップアプリケーションからすれば、再書込みの際最初から書き始める必要があるために、この書込み制御方法を用いても、依然として書込みパフォーマンスの低下要因を排除することができない。
【００１８】
この書込み制御方法の問題点は、まとめて同期を行うため、個々のファイル単位でみると、最後にテープドライブに対して書き出したファイル以外は、同期の応答が遅くなる。最初にテープドライブに対して書き出しを行ったファイルも、最後のファイルの書き出し後の同期完了後までは、テープに確実に書き出されたこと保障できない。
また、Ｆｉｌｅ１、Ｆｉｌｅ２、Ｆｉｌｅ３のどれかのテープへの書込み途中で同期操作のエラーを検出した場合、テープドライブは、どのファイルの書き出しで失敗したかをアプリケーションに対して通知できない。書き出しを指示したファイル群（Ｆｉｌｅ１、Ｆｉｌｅ２、Ｆｉｌｅ３）の全てについて、書き直しを行う必要がある。バックアップアプリケーションからすれば、再書込みの際最初から書き始める必要があるために、この書込み制御方法を用いても、依然として書込みパフォーマンスの低下要因を排除することができない。
【００１９】
特許文献１は、ホストから同期要求コマンドに対して、応答パフォーマンスの遅延（バックヒッチ操作の時間）を除くために、ホストからテープに書込むデータを一時的に不揮発性記憶に書込み、直ぐコマンド完了を返す技術を提供する。この技術は、同期書込みのパフォーマンスの低下を抑え、書込みパフォーマンスを改善することを課題としている。この技術は、ホストからの同期要求に対して、新たなコマンド"Ｄｅｆｅｒｒｅｄ  Ｓｙｎｃ"により既にテープへの書込みが終わっている可能性が高いデータに対して応答を返す。データが実際にテープに書込みが終了していなければ、その終了まで待つ技術であり、完全には同期を減らしていない。また、Ｄｅｆｅｒｒｅｄ  Ｓｙｎｃ  Ｌｏｇｉｃ及び不揮発性メモリを備えるコントローラ装置を必要とする点で、テープドライブを安価に利用する技術ではない。
【００２０】
【特許文献１】米国特許第６，８３９，８０１号明細書
【発明の開示】
【発明が解決しようとする課題】
【００２１】
上記の通り、特許文献１の書込み制御は、パフォーマンスの低下の原因となる同期操作を削減している点で書込みパフォーマンスの向上に寄与する。しかし、テープドライブにおいて複数のファイルの同期要求無くテープ書込みを行う場合、どのファイル区切り位置まで確実にテープに書込みできたかの特定が不可能である。
【００２２】
そこで、本発明は、同期要求を不要とすることにより書込み速度が改善された、テープ記録装置、そのテープ記録装置の書込み制御、及び、その書込み制御方法を提供することを目的とする。
【００２３】
具体的には、本発明のテープドライブに２つの新たなコマンド（以下「新コマンド」）を受け付ける機能を実装する。１つは、シーケンシャルに書込まれる複数のファイルの区切り位置をテープドライブに教える区切り位置指定命令（以下「区切り位置指定コマンド」）である。２つめは、どのファイルの区切り位置までテープに書き終わっているかをホストが確認できるテープ書込み位置確認命令（以下「書込み位置確認コマンド」）である。２つの新コマンドは対として使われるものである。
【課題を解決するための手段】
【００２４】
かかる目的のもと、本発明は、外部のホストから複数のファイルの書込み命令を受けた場合にその複数のファイルをシーケンシャルに記録するテープ記録装置である。この装置は、複数のファイルを一時的に保管するバッファと、複数のファイルを記録するテープと、バッファに保管された複数のファイルを前記テープに書込む書込み手段と、バッファに保管された複数のファイルの各々を前記テープにシーケンシャルに書込むことを制御する書込み制御手段とを備え、その書込み制御手段は、外部のホストから、シーケンシャルに書込まれる複数のファイルの区切り位置を指定する命令（区切り位置指定コマンド）を受けた場合に、指定された区切り位置を記憶することを特徴とする。
また、本発明の装置において、書込み制御手段は、複数の前記位置指定コマンドをシーケンシャルに受けた場合において、外部のホストから、指定された区切り位置までファイルをテープに書込み済みかを確認する命令（書込み位置確認コマンド）を受けた場合に、区切り位置までテープに書込み済みか否かの情報を外部のホストに通知することを特徴とする。
【００２５】
かかる目的のもと、本発明は、ホストに接続されテープ記録装置とを備え、そのテープ記録装置は、ホストが発行した複数ファイルの書込み命令、及び、ファイルの区切り位置について区切り位置指定コマンドを受付けるテープ記録システムである。
また、本発明のシステムにおいて、その書込み制御手段は、複数の位置指定コマンドをシーケンシャルに受けた場合、そのコマンドを受取った順番を、指定された区切り位置として記憶することを特徴とする。
また、本発明のシステムにおいて、書込み制御手段は、複数の位置指定コマンドをシーケンシャルに受けている場合において、ホストから、指定された区切り位置までファイルをテープに書込み済みかを確認する命令（書込み位置確認コマンド）を受けた場合に、区切り位置までテープに書込み済みか否かの情報をホストに通知することを特徴とする。
また、本発明のシステムにおいて、書込み制御手段は、書込み位置確認コマンドに対して、指定された区切り位置までテープに書込み済みか否かの情報として、最後にテープに書込まれた指定された区切り位置を示す順番を、外部のホストに通知することを特徴とする。
また、本発明のシステムにおいて、書込み制御手段は、書込み位置確認コマンドに対して、指定させた区切り位置までテープに書込み済みか否かの情報として、最後にテープに書込まれた指定された区切り位置を示す順番の最後のコマンドにより指定された区切り位置の最後の順番からの相対値を、外部のホストに通知することを特徴とする。
また、本発明のシステムにおいて、書込み制御手段は、複数の位置指定コマンドの数がＭ（自然数）個であって、最後にテープに書込まれた区切り位置が順番Ｎ（自然数でＮ＜Ｍ）である場合、指定された区切り位置の最後の順番がＭであり、相対位置としてＮ−Ｍをホストに通知することを特徴とする。
【００２６】
かかる目的のもと、本発明は、複数のファイルの書込み命令を受けた場合に複数のファイルをシーケンシャルにテープに記録するテープ記録装置のための書込み制御手段である。この書込み制御手段は、書込まれる複数のファイルの区切り位置を指定する命令（区切り位置指定コマンド）を受けた場合に、指定された区切り位置を記憶する書込み制御手段である。
また、本発明の制御手段において、区切り位置指定コマンドを受けている場合において、指定された区切り位置までファイルをテープに書込み済みかを確認する命令（書込み位置確認コマンド）を受けた場合に、区切り位置までテープに書込み済みか否かの情報を記憶することを特徴とする。
【００２７】
かかる目的のもと、本発明は、外部のホストから複数のファイルの書込み命令を受けた場合に複数のファイルをシーケンシャルに記録するテープ記録装置のための書込み制御方法である。この書込み制御方法は、複数のファイルをバッファに一時的に保管するステップと、複数のファイルをテープに記録するステップと、バッファに保管された複数のファイルを書込み手段によりテープに書込むステップと、バッファに保管された複数のファイルの各々をテープにシーケンシャルに書込むステップと、外部のホストから、シーケンシャルに書込まれる複数のファイルの区切り位置を指定する命令（区切り位置指定コマンド）を受けた場合に、指定された区切り位置を記憶するステップと、を備える。
また、本発明の制御方法は、更に、外部のホストから、指定された区切り位置にまでファイルがテープに書込み済みかを確認する命令（書込み区切り位置確認コマンド）を受けた場合に、区切り位置までのファイルについてテープに書込み済みか否かの情報を外部のホストに通知するステップを備えることを特徴とする。
【発明の効果】
【００２８】
本発明によれば、テープドライブは、ホストから新コマンドの発行を受け、どのファイルの区切り位置までがテープに書込み済であるかをホストに通知することにより同期要求を不要にできるため、複数ファイルの書込みパフォーマンスの改善が図れる。
【発明を実施するための最良の形態】
【００２９】
以下、添付図面を参照して、本発明を実施するための最良の形態（以下、実施形態）について詳細に説明するが、以下の実施形態は特許請求の範囲にかかる発明に限定するものではない。
ホストは、シーケンシャルに複数のレコードをテープドライブに送る。ホストが認識する各ファイルは、複数のレコードから構成される。各ファイルは、適当なレコードにおいて区切られる。以下の説明において、“ファイル区切り位置”とは、ホストのアプリケーションが指定する１つのファイルを構成する複数のレコードの最後のものによって識別される。これら“位置”は、テープドライブ内のバッファに保管されているファイルのバッファのアドレスを意味するものでないことを注意されたい。ホストが送る一連の複数のレコードは、アプリケーション（ホスト）が指定する区切り位置よって各ファイルとして区別される。テープドライブは、単に複数のレコードをシーケンシャルに書込みを行うにすぎず、テープドライブ自身が各ファイルを区別して書く込みことはできない。
【００３０】
ホストのアプリケーションは、アプリケーションにとって意味あるレコードの集まりをファイルとして管理する。アプリケーションは、複数レコードを書くことにより、ファイルをテープに書こうとするが、テープドライブ自身はファイルを認識できない。従って、本発明では、アプリケーションからの新コマンドによって、テープドライブは、ファイルの区切り位置を知る。本発明の新コマンドには、２つの主要機能（例えば「第１の新コマンド」「第２の新コマンド」という）がある。  
１．第１の新コマンドは、アプリケーションにより、複数レコードの書込みの際に最後のレコードを書込むタイミングにおいてその最後のレコードの書込をファイル（レコードの集まり）の区切り位置（「ファイル区切り位置」）として順次発行し、テープドライブにファイル区切り位置を教える。テープドライブは、第１の新コマンドを受取った順番の数（例えば、１，２，・・・Ｎ；Ｎは自然数）を、それぞれのファイル区切り位置として記憶する。
２．第２の新コマンドは、アプリケーションにより、第１のコマンドにより指定されたどのファイルの区切り位置（１，２，・・・Ｎ）までテープに書込みが終わっているかを知るために、発行される。テープドライブは、複数の第１の新コマンドにより区切り位置（１，２，・・・Ｎ）を記憶している場合、テープに書込み済みの最後のファイルの区切り位置（区切り位置：１，２，・・・Ｎのどれか）の情報をアプリケーション（ホスト）に返す。テープドライブの書込み操作は、テープにはシーケンシャル書込み方式で行う。このシーケンシャル特性のため、事前に複数の第１の新コマンドにより複数の区切り位置（例えば１，２，・・・ｋ・・・ＮのＮ個；ｋはＮより小さい自然数）が指定され、特定の区切り位置（ｋ）までテープへ書込み済みファイルの区切り位置（１，２，・・ｋ）が存在しても、テープドライブは、最後のテープ書込み区切り位置（ｋ）のみをホストに通知すれば十分である。
【００３１】
例えば、テープドライブに、第１の新コマンドにより複数のファイル（ファイルの数をＮとする）の区切り位置が指定（例えば、１，２，・・・Ｎ）された場合、バッファ受取り済みの「ファイル区切り位置」（各ファイルの区切り位置を例えば、第１の新コマンドの発行の順番、例えば１，２，・・・、Ｎ）からＮ回前に記憶した区切り位置（１）までがテープに書込みが終わっている場合を考える。つまりバッファ受取り済みの最後の「ファイル区切り位置」（Ｎ）からＮ−１回前に記憶したファイルの区切り位置（２）までのファイル（２，３，・・・、Ｎ）はまだテープに書込まれていない。この場合、ホストから第２の新コマンドを受取ったテープドライブは、「テープ書込み済みファイル区切り位置」（１）を指示するものとして最後の「ファイル区切り位置」（Ｎ）からの相対位置Ｎ−１をホストに返す。仮に、最後のファイルのテープへの書込みが終了している場合、「テープ書込み済みファイル区切り位置」（Ｎ）は最後の「ファイル区切り位置」（Ｎ）とは同じである。この場合、テープドライブは、第２の新コマンドに対して、「テープ書込み済みファイル区切り位置」（Ｎ）として、最後の「テープ受取り済みファイル区切り位置」（Ｎ）からの相対位置０としてホストに返す。
【００３２】
また、テープドライブは、テープの媒体不良などによるＰｅｒｍａｎｅｎｔ  ｅｒｒｏｒ（永久エラー）を検出した場合は、直後の新コマンドに対してＣＨＥＣＫ  ＣＯＮＤＩＴＩＯＮステータスを返す。テープドライブが、ホストから複数レコードをＷＲＩＴＥされ、ファイルの区切りをテープドライブに教えるためにファイル区切り位置を指定した第１の新コマンドを受取っている。テープドライブは、ホストから第２の新コマンドを受取ると、その都度指定した区切り位置の内テープ書込みが確実に終っている「テープ書込み済みファイル区切り位置」をホストに返す。ホストのアプリケーションは、第２の新コマンドを発行することにより、確実にファイル書込みが終わっているテープ書込み済み「ファイル区切り位置」Ｎの次のファイルの区切り位置から再書込みを行えばよいことがわかる。
【００３３】
図５は、（１）（２）（３）の時点おいて、新コマンドは、それぞれファイルＡ，Ｂ，Ｃの区切りをテープドライブに指定して、指定された区切り位置（それぞれ順番は１，２，３）までのファイルがテープに書込まれているかを確認する命令（テープ書込み位置確認コマンドの機能）である。（３）においてアプリケーションから発行された新コマンドが、ファイルＣを指定したテープ書込み確認命令であるとすると、その時点においてファイルＣがテープ４２０に書込まれていなければその事実を通知する。この新コマンドに対して、ファイルＡ（シーケンスＮｏ．１）は書き終っているがファイルＢ、Ｃが書き終っていない場合は、新コマンドに対してファイルＣ（シーケンスＮｏ．３）に対するファイルＡの相対位置として２を返してもよい。アプリケーションは、この相対位置２を知ることにより、指定されたファイルＡ，Ｂ，Ｃのうち最後のファイルＣの位置からの相対位置２のファイルＡまでがテープ書込み済みであることを知ることができる。
【００３４】
本発明の書込み制御は、バッファ４１０からテープ４２０への書込みにおいては、ホストのアプリケーションからの同期要求するものではない。ドライブは自己のタイミングでテープ書込みできるという意味で「非同期」書込みがされる。本発明の書込み制御は、通常のテープドライブのテープへのシーケンシャル書込みのドライブタイミングにまかされ、極力書込みパフォーマンスの低下を回避できる。テープドライブは、バッファ４１０に保管されたファイル（レコード）を、自己の書込み速さによりシーケンシャルにテープに書き始めている。アプリケーションは、各ＷＲＩＴＥコマンドと独立して新コマンドを発行する。テープドライブは、新コマンドが最後尾のレコードの区切り位置を指定することによりファイルＡ，Ｂ，及びＣがテープに書込まれているかの情報を保持し、その情報をアプリケーションに通知する。
【００３５】
図５は、（１）（２）（３）の時点おいて、新コマンドは、それぞれファイルＡ，Ｂ，Ｃの区切りをテープドライブに指定して、指定された区切り位置までのファイルがテープに書込まれているかを確認する命令（テープ書込み位置確認コマンドの機能）である。（３）においてアプリケーションから発行された新コマンドが、ファイルＣを指定したテープ書込み確認命令であるとすると、その時点においてファイルＣがテープ４２０に書込まれていなければその事実を通知する。この新コマンドに対して、ファイルＡは書き終っているがファイルＢ、Ｃが書き終っていない場合は、新コマンドに対してファイルＣに対するファイルＡの相対位置として−２を返してもよい。アプリケーションは、この相対位置−２を知ることにより、指定されたファイルＡ，Ｂ，Ｃのうち最後のファイルＣの位置からの相対位置−２のファイルＡまでがテープ書込み済みであることを知ることができる。
【００３６】
この実施例態様では、新コマンドは、第１の新コマンド（区切り位置指定コマンド）と第２の新コマンド（書込み位置確認コマンド）の両方の機能を有する。新コマンドは、シーケンシャルに書こまれるファイルの区切り位置をテープドライブに教える（第１の新コマンドの機能）と同時に、それ以前に別の新コマンドにより指定された区切り位置のどこまでがテープに書込まれているかの情報をホストに通知すること（第２のコマンド）を行う。既に説明したように、２つの機能を異なるコマンドにより実行することは可能である。第１の新コマンドによりファイル区切り位置を指定し、第２の新コマンドにより、それまで区切指定されたどのファイルの区切り位置までがテープに書込まれているかの通知を受けることも、本発明の範囲に含まれる。  
【００３７】
以上、本発明の実施形態のテープドライブなどのシーケンシャル記録装置におけるテープへの書込み制御方法を開示した。
本発明によれば、新コマンドをホストから受けた場合に、テープドライブは、指定されたファイルがテープに書込み済み否かを通知することにより複数のファイルの書込みに対して同期要求（バックヒッチ操作）を不要とできるため、書込みパフォーマンスの改善が図られる。
また、本発明によれば、新コマンドにより書込みエラーに対してテープ書込み済みファイルの区切り位置確認ができることにより、書込み未完了のファイルからテープ再書き直しが可能であるため、書込みエラー処理のパフォーマンスを改善できる。
更に、本発明によれば、新コマンドにより、その都度バックヒッチ操作を伴わず各ファイルの書込み確認ができるため、アプリケーションは、テープに書込み済みのファイルについて後続のファイルのテープ書込み確認を待つことなく、ファイル加工を並列して実行できるため、ホストを含めた全体として、テープドライブの書込みパフォーマンスを改善できる。
【００３８】
以上の実施形態に、種々の変更または改良を加えることが可能であることが当業者に明らかである。そのような変更または改良を加えた形態も当然に本発明の技術的範囲に含まれる。
【図面の簡単な説明】
【００３９】
【図１】テープドライブの形態の例として、データアーカイブシステムの構成２００を示す。
【図２】一般的なテープドライブの構成図である。
【図３】テープドライブにおいてバッファ４１０からテープ４２０への従来の書込み方法を示す。
【図４】同期操作（即ちバックヒッチ）にかかる時間を減らすため、複数のファイルをまとめて同期操作を行う書込みシーケンス（ｊ−１）〜（ｊ−４）を示す。
【図５】本発明の一実施形態を示す。
【符号の説明】
【００４０】
１００…テープドライブ、
１０５…ホスト、
１１０…インターフェース、
１２０…バッファ、
１３０…記録チャネル、
１４ａ…テープ、１４ｂ…ヘッド、１４ｃ，１４ｄ…リール、
１４ｅ…カートリッジ、
１５０…モータ、
１６０…コントローラ，書込み読取り制御、
１７０…ヘッド位置制御システム、
１８５…モータドライバ、
２００・・・テープアーカイブシステム、
２１０…コンピュータ
２２０・・・ハードディスク、
【図１】
0004452269.tif 000002
【図２】
0004452269.tif 000003
【図３】
0004452269.tif 000004
【図４】
0004452269.tif 000005
【図５】
0004452269.tif 000006