(57)【要約】【課題】テープ媒体へのデータの書込みの際のテープ媒体の移動動作に要する時間を短縮する。【解決手段】テープドライブのコントローラ１６において、コマンド処理部４１がＥＯＤ等への移動コマンドを受け取ると、動作信号出力部４５はテープの移動を行わず、ＣＭ入出力部４４が移動省略後の状態であることを記憶する。次に、この状態でコマンド処理部４１がデータの書込みコマンドを受け取ると、ＣＭ入出力部４４がデータをカートリッジメモリに書き込む。その後、テープ上のデータが本来書き込まれるべき位置をヘッドが通過する場合等に、ＣＭ入出力部４４が、データをカートリッジメモリから読み出し、チャネル入出力部４３が、データをテープ上の本来の位置に書き込む。【選択図】図４
2011146105.tif 000002
【特許請求の範囲】
【請求項１】
テープ媒体へのデータの書込みを制御する装置であって、
前記テープ媒体上の指定された位置にヘッドを位置付けるための当該テープ媒体の移動動作が指示されても、当該指定された位置が予め定めた条件を満たしていれば、当該移動動作を行わないように制御する移動制御部と、
前記移動制御部により前記移動動作を行わないように制御された状態で前記テープ媒体へのデータの書込みが指示されると、当該データを、当該移動動作に要する時間よりも短い時間で当該書込みの準備を行うことを可能にする記憶部に、前記指定された位置に関連付けて書き込む書込み部と
を含む、装置。
【請求項２】
前記テープ媒体からの前記データの読出しが指示されても、前記記憶部から当該データを読み出す読出し部を更に含む、請求項１の装置。
【請求項３】
前記書込み部により前記記憶部に書き込まれた前記データを、前記記憶部に当該データに関連付けて記憶された前記テープ媒体上の前記指定された位置に書き直す書直し部を更に含む、請求項１又は２の装置。
【請求項４】
前記記憶部は、不揮発性を有しており、
前記書直し部は、前記書込み部により前記記憶部に書き込まれた前記データを、前記テープ媒体を含むテープカートリッジがテープドライブからアンマウントされ、再度テープドライブにマウントされた後に、前記テープ媒体上の前記指定された位置に書き直す、請求項３の装置。
【請求項５】
前記書直し部は、前記書込み部により前記記憶部に書き込まれた前記データを、前記記憶部の空き容量が予め定めた条件を満たしたときに、前記テープ媒体上の前記指定された位置に書き直す、請求項３の装置。
【請求項６】
前記書直し部は、前記書込み部により前記記憶部に書き込まれた前記データを、当該データを書き込むときの方向への前記テープ媒体の移動動作において、前記指定された位置を通過するときに、前記テープ媒体上の前記指定された位置に書き直す、請求項３の装置。
【請求項７】
テープ媒体へのデータの書込みを制御する方法であって、
前記テープ媒体上の指定された位置にヘッドを位置付けるための当該テープ媒体の移動動作が指示されても、当該指定された位置が予め定めた条件を満たしていれば、当該移動動作を省略するステップと、
前記移動動作が省略された状態で前記テープ媒体へのデータの書込みが指示されると、当該データを、当該移動動作に要する時間よりも短い時間で当該書込みの準備を行うことを可能にする記憶部に、前記指定された位置に関連付けて書き込むステップと
を含む、方法。
【請求項８】
テープ媒体へのデータの書込みを制御する方法であって、
前記テープ媒体上の第１の位置にヘッドを位置付けるための当該テープ媒体の移動動作が指示された場合に、当該移動動作を省略するステップと、
前記移動動作が省略された状態で前記テープ媒体への第１のデータの書込みが指示されると、当該第１のデータを、当該移動動作に要する時間よりも短い時間で当該書込みの準備を行うことを可能にする記憶部に、前記第１の位置に関連付けて書き込むステップと、
前記テープ媒体の先頭から前記第１の位置よりも遠くにある前記テープ媒体上の第２の位置を終端として書き込まれた第２のデータを読み出すステップと、
前記テープ媒体を前記第２の位置から巻き戻すときに、前記記憶部に書き込まれた前記第１のデータを、前記記憶部に当該第１のデータに関連付けて記憶された前記テープ媒体上の前記第１の位置に書き直すステップと
を含む、方法。
【請求項９】
テープ媒体へのデータの書込みを制御する装置としてコンピュータを機能させるプログラムであって、
前記コンピュータを、
前記テープ媒体上の指定された位置にヘッドを位置付けるための当該テープ媒体の移動動作が指示されても、当該指定された位置が予め定めた条件を満たしていれば、当該移動動作を行わないように制御する移動制御部と、
前記移動制御部により前記移動動作を行わないように制御された状態で前記テープ媒体へのデータの書込みが指示されると、当該データを、当該移動動作に要する時間よりも短い時間で当該書込みの準備を行うことを可能にする記憶部に、前記指定された位置に関連付けて書き込む書込み部と
して機能させる、プログラム。
【請求項１０】
テープドライブに装着されて用いられるテープカートリッジであって、
データが書き込まれるテープ媒体と、
前記テープ媒体の指定された位置にヘッドを位置付けるための当該テープ媒体の移動動作に要する時間よりも短い時間でデータの書込みの準備を行うことを可能にし、かつ、当該移動動作が省略された状態で当該テープ媒体上の当該指定された位置への書込みが指示されたデータを記憶する記憶部と
を含む、テープカートリッジ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの書込みを制御する装置及び方法に関する。特に、本発明は、テープ媒体へのデータの書込みを制御する装置及び方法に関する。
【背景技術】
【０００２】
磁気テープ等のテープ媒体を複数用意し、個々のテープ媒体に対して比較的少量のデータの書込みや読出しを行う操作を繰り返し行うようなシステムがある（例えば、非特許文献１〜３参照）。ここで、テープ媒体はリムーバブルな記録媒体であるため、データの書込みや読出しを行うためには、テープ媒体をテープドライブに装着する必要がある。また、テープ媒体はシーケンシャルにアクセスが行われる記録媒体であるため、データの書込みや読出しを行うためには、書込みや読出しを行うためのヘッドをテープ媒体上の書込み位置や読出し位置に移動させる必要もある。従って、一般に、このようなシステムでは、テープカートリッジのテープドライブへの保管場所からの移動（Move Medium）及び装着（Load）、テープドライブのヘッドの書込み又は読出しの開始位置への移動（Locate/Space）、データの書込み又は読出し（Write/Read）、テープ媒体の巻戻し（Rewind/Unload）、テープカートリッジのテープドライブからの排出（Unload）及び保管場所への移動（Move Medium）といった動作が、繰り返し行われることになる。
【先行技術文献】
【特許文献】
【０００３】
【非特許文献１】Felix Ehm、“Development of a Performant Defragmentation Process for a Robotic Tape Library within the CASTOR HSM”、［online］、平成１８年、［平成２１年１２月９日検索］、インターネット＜URL：http://castor.web.cern.ch/castor/docs/guides/DiplomaThesis.pdf＞
【非特許文献２】Tim Bell、“Tape Efficiency Version 0.5”、［online］、平成１９年１１月、［平成２１年１２月９日検索］、インターネット＜URL：https://twiki.cern.ch/twiki/pub/FIOgroup/TapeRefCernUsageNov2007/tape_usage_efficiency_v05.pdf＞
【非特許文献３】C. Curran、“The Unbearable Slowness of Tape”、［online］、平成２０年５月、［平成２１年１２月１２日検索］、インターネット＜URL：http://hepix.caspur.it/storage/hep_pdf/2008/Spring/hepix8.pdf＞
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ここで、一般に、テープカートリッジのテープドライブへの保管場所からの移動及び装着には、数十秒が必要となり、テープドライブのヘッドの書込み又は読出しの開始位置への移動やテープ媒体の巻戻しには、平均して数十秒が必要となり、テープカートリッジのテープドライブからの排出及び保管場所への移動には、数十秒が必要となる。即ち、合計で数分が必要となるこれらの動作が、数秒で完了するデータの書込みや読出しに対してオーバーヘッドとなっており、こうした意味で、非特許文献１〜３で述べられているシステムは、テープ媒体の不得意な利用のされ方ということができる。
【０００５】
本発明の目的は、テープ媒体へのデータの書込みの際のテープ媒体の移動動作に要する時間を短縮することにある。
【課題を解決するための手段】
【０００６】
かかる目的のもと、本発明は、テープ媒体へのデータの書込みを制御する装置であって、テープ媒体上の指定された位置にヘッドを位置付けるためのテープ媒体の移動動作が指示されても、指定された位置が予め定めた条件を満たしていれば、移動動作を行わないように制御する移動制御部と、移動制御部により移動動作を行わないように制御された状態でテープ媒体へのデータの書込みが指示されると、データを、移動動作に要する時間よりも短い時間で書込みの準備を行うことを可能にする記憶部に、指定された位置に関連付けて書き込む書込み部とを含む、装置を提供する。
【０００７】
ここで、本発明は、テープ媒体からのデータの読出しが指示されても、記憶部からデータを読み出す読出し部を更に含む、ものであってよい。
また、本発明は、書込み部により記憶部に書き込まれたデータを、記憶部にデータに関連付けて記憶されたテープ媒体上の指定された位置に書き直す書直し部を更に含む、ものであってよい。
その場合、記憶部は、不揮発性を有しており、書直し部は、書込み部により記憶部に書き込まれたデータを、テープ媒体を含むテープカートリッジがテープドライブからアンマウントされ、再度テープドライブにマウントされた後に、テープ媒体上の指定された位置に書き直す、ものであってよい。
また、書直し部は、書込み部により記憶部に書き込まれたデータを、記憶部の空き容量が予め定めた条件を満たしたときに、テープ媒体上の指定された位置に書き直す、ものであってもよい。
更に、書直し部は、書込み部により記憶部に書き込まれたデータを、データを書き込むときの方向へのテープ媒体の移動動作において、指定された位置を通過するときに、テープ媒体上の指定された位置に書き直す、ものであってもよい。
【０００８】
また、本発明は、テープ媒体へのデータの書込みを制御する方法であって、テープ媒体上の指定された位置にヘッドを位置付けるためのテープ媒体の移動動作が指示されても、指定された位置が予め定めた条件を満たしていれば、移動動作を省略するステップと、移動動作が省略された状態でテープ媒体へのデータの書込みが指示されると、データを、移動動作に要する時間よりも短い時間で書込みの準備を行うことを可能にする記憶部に、指定された位置に関連付けて書き込むステップとを含む、方法も提供する。
【０００９】
更に、本発明は、テープ媒体へのデータの書込みを制御する方法であって、テープ媒体上の第１の位置にヘッドを位置付けるためのテープ媒体の移動動作が指示された場合に、移動動作を省略するステップと、移動動作が省略された状態でテープ媒体への第１のデータの書込みが指示されると、第１のデータを、移動動作に要する時間よりも短い時間で書込みの準備を行うことを可能にする記憶部に、第１の位置に関連付けて書き込むステップと、テープ媒体の先頭から第１の位置よりも遠くにあるテープ媒体上の第２の位置を終端として書き込まれた第２のデータを読み出すステップと、テープ媒体を第２の位置から巻き戻すときに、記憶部に書き込まれた第１のデータを、記憶部に第１のデータに関連付けて記憶されたテープ媒体上の第１の位置に書き直すステップとを含む、方法も提供する。
【００１０】
更に、本発明は、テープ媒体へのデータの書込みを制御する装置としてコンピュータを機能させるプログラムであって、コンピュータを、テープ媒体上の指定された位置にヘッドを位置付けるためのテープ媒体の移動動作が指示されても、指定された位置が予め定めた条件を満たしていれば、移動動作を行わないように制御する移動制御部と、移動制御部により移動動作を行わないように制御された状態でテープ媒体へのデータの書込みが指示されると、データを、移動動作に要する時間よりも短い時間で書込みの準備を行うことを可能にする記憶部に、指定された位置に関連付けて書き込む書込み部として機能させる、プログラムも提供する。
【００１１】
更にまた、本発明は、テープドライブに装着されて用いられるテープカートリッジであって、データが書き込まれるテープ媒体と、テープ媒体の指定された位置にヘッドを位置付けるためのテープ媒体の移動動作に要する時間よりも短い時間でデータの書込みの準備を行うことを可能にし、かつ、移動動作が省略された状態でテープ媒体上の指定された位置への書込みが指示されたデータを記憶する記憶部とを含む、テープカートリッジも提供する。
【発明の効果】
【００１２】
本発明によれば、テープ媒体へのデータの書込みの際のテープ媒体の移動動作に要する時間を短縮することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態が適用されるテープドライブの構成を示したブロック図である。
【図２】本発明の実施の形態において追記データを不揮発性記憶領域に記憶するときの様子を示した図である。
【図３】本発明の実施の形態において不揮発性記憶領域に記憶された追記データをテープに書き直すときの様子を示した図である。
【図４】本発明の実施の形態におけるコントローラの機能構成例を示したブロック図である。
【図５】本発明の実施の形態におけるコントローラの移動コマンド受信時の動作例を示したフローチャートである。
【図６】本発明の実施の形態におけるコントローラの書込みコマンド受信時の動作例を示したフローチャートである。
【図７】本発明の実施の形態におけるコントローラの読出しコマンド受信時の動作例を示したフローチャートである。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
図１は、本実施の形態が適用されるテープドライブ１０の構成例を示した図である。このテープドライブ１０は、ホストインターフェイス（以下、「ホストＩ／Ｆ」という）１１と、バッファ１２と、チャネル１３と、ヘッド１４と、モータ１５とを含む。また、コントローラ１６と、ヘッド位置制御システム１７と、モータドライバ１８とを含む。更に、テープドライブ１０には、テープカートリッジ２０が挿入されることにより装填可能となっているので、ここでは、テープカートリッジ２０も図示している。このテープカートリッジ２０は、リール２１、２２に巻かれたテープ２３を含む。テープ２３は、リール２１、２２の回転に伴い、リール２１からリール２２の方向へ、又は、リール２２からリール２１の方向へ、長手方向に移動する。尚、テープ２３としては、磁気テープが例示されるが、磁気テープ以外のテープ媒体でもよい。
【００１５】
また、テープカートリッジ２０は、カートリッジメモリ２４も含む。このカートリッジメモリ２４は、例えば、テープ２３上にどのようにデータが書かれたかの情報を記録する。そして、例えばＲＦインターフェイスを用いて非接触でテープ２３に書かれたデータのインデックスやテープ２３の使用状況等を調べることにより、データへの高速アクセスを可能としている。尚、図では、このＲＦインターフェイスのようなカートリッジメモリ２４へのアクセスを行うためのインターフェイスを、カートリッジメモリインターフェイス（以下、「ＣＭＩ／Ｆ」という）１９として示している。
【００１６】
ここで、ホストＩ／Ｆ１１は、上位装置の一例であるホスト３０との通信を行う。例えば、ホスト３０から、テープ２３へのデータの書込みを指示するコマンド、テープ２３を目的の位置に移動させるコマンド、テープ２３からのデータの読出しを指示するコマンドを受け取る。尚、このホストＩ／Ｆ１１で用いる通信規格としては、ＳＣＳＩが例示される。ＳＣＳＩの場合、１つ目のコマンドは、Ｗｒｉｔｅコマンドに相当し、２つ目のコマンドは、ＬｏｃａｔｅコマンドやＳｐａｃｅコマンドに相当し、３つ目のコマンドは、Ｒｅａｄコマンドに相当する。また、ホストＩ／Ｆ１１は、ホスト３０に対し、これらのコマンドに応じた処理が成功したのか失敗したのかの応答を返す。
【００１７】
バッファ１２は、テープ２３に書き込むべきデータやテープ２３から読み出されたデータを蓄積するメモリである。例えば、ＤＲＡＭ（Dynamic Random Access Memory）によって構成される。また、バッファ１２は、複数のバッファセグメントからなり、各バッファセグメントが、テープ２３に対する読み書きの単位であるデータセットを格納している。
チャネル１３は、テープ２３に書き込むべきデータをヘッド１４に送ったり、テープ２３から読み出されたデータをヘッド１４から受け取ったりするために用いられる通信経路である。
ヘッド１４は、テープ２３が長手方向に移動するとき、テープ２３に対して情報を書き込んだり、テープ２３から情報を読み出したりする。
モータ１５は、リール２１、２２を回転させる。尚、図では、１つの矩形でモータ１５を表しているが、モータ１５としては、リール２１、２２の各々に１つずつ、合計２個設けるのが好ましい。
【００１８】
一方、コントローラ１６は、テープドライブ１０の全体を制御する。例えば、ホストＩ／Ｆ１１で受け付けたコマンドに従って、データのテープ２３への書込みやテープ２３からの読出しを制御する。また、ヘッド位置制御システム１７やモータドライバ１８の制御も行う。
ヘッド位置制御システム１７は、所望のラップを追跡するシステムである。ここで、ラップとは、テープ２３上の複数のトラックのグループである。ラップを切り換える必要が生じると、ヘッド１４を電気的に切り換える必要も生じるので、このような切り換えの制御を、このヘッド位置制御システム１７で行う。
モータドライバ１８は、モータ１５を駆動する。尚、上述したように、モータ１５を２個使用する場合であれば、モータドライバ１８も２個設けられる。
ＣＭＩ／Ｆ１９は、例えば、ＲＦリーダライタにより実現され、カートリッジメモリ２４への情報の書込みや、カートリッジメモリ２４からの情報の読出しを行う。
【００１９】
ここで、かかる構成を有するテープドライブ１０において、テープ媒体上の最終データの後の位置（ＥＯＤ；End of Data）に移動してデータを書き込む追記動作を行う場合を考える。この場合、１つのテープカートリッジにデータを追記するのに要する時間Ｔａｐｐｅｎｄは、次の時間の総和となる。尚、ここでは、テープカートリッジ２０を保管場所からテープドライブ１０へ移動させる時間や、テープカートリッジ２０をテープドライブ１０から保管場所へ移動させる時間は省略している。
【００２０】
（１）テープカートリッジをマウントするのに要する時間Ｔｍｏｕｎｔ
このＴｍｏｕｎｔは、テープドライブに固有の値であり、ＬＴＯ（Linear Tape Open）の第４世代（ＬＴＯ４）では１２秒である。
（２）ＥＯＤに移動するのに要する時間Ｔｐｏｓｉｔｉｏｎｉｎｇ
このＴｐｏｓｉｔｉｏｎｉｎｇは、テープ媒体上のＥＯＤの位置に依存する変動値である。ＬＴＯ４のテープカートリッジのテープ長は８２０ｍ、その移動速度は約８ｍ／ｓｅｃであり、ＥＯＤはテープ媒体の長手方向における先頭（ＢＯＴ；Beginning of Tape）と終端（ＥＯＴ；End of Tape）の間のどこかにあるので、平均約５７秒、最大約１００秒である。
（３）データをテープ媒体に書き込むのに要する時間Ｔｗｒｉｔｅ
このＴｗｒｉｔｅは、書き込むデータの容量（書込みデータ量）と、テープドライブの書込み速度又はホストのデータ転送速度とに依存する変動値であり、ＬＴＯ４テープドライブでは１２０ＭＢ／ｓｅｃである。
（４）ＢＯＴに移動するのに要する時間Ｔｒｅｗｉｎｄ
このＴｒｅｗｉｎｄは、書込みデータ量によって決まる新たなＥＯＤの位置に依存する変動値であり、ＬＴＯ４のテープカートリッジでは、Ｔｐｏｓｉｔｉｏｎｉｎｇと同様に、最大約１００秒である。
（５）テープカートリッジをアンマウントするのに要する時間Ｔｕｎｍｏｕｎｔ
このＴｕｎｍｏｕｎｔは、テープドライブに固有の値であり、ＬＴＯ４では１７秒である。
【００２１】
そして、書込みデータ量をＱｄａｔａ（ＭＢｙｔｅｓ）とすると、追記動作のパフォーマンスは、式「Ｑｄａｔａ（ＭＢｙｔｅｓ）／Ｔａｐｐｅｎｄ（ｓｅｃ）＝Ｑｄａｔａ（ＭＢｙｔｅｓ）／（Ｔｍｏｕｎｔ＋Ｔｐｏｓｉｔｉｏｎｉｎｇ＋Ｔｗｒｉｔｅ＋Ｔｒｅｗｉｎｄ＋Ｔｕｎｍｏｕｎｔ）」により算出される。
ここで、パフォーマンスは、変動値によって変化する。即ち、上記式の場合、Ｔｐｏｓｉｔｉｏｎｉｎｇ、Ｔｗｒｉｔｅ、Ｔｒｅｗｉｎｄという３つの変動値が追記動作のパフォーマンスに影響することになる。
【００２２】
このうち、書込み時間Ｔｗｒｉｔｅは、書込みデータ量が増えると長くなる。しかしながら、書込みデータ量がある程度小さければ、書込み時間Ｔｗｒｉｔｅがパフォーマンスに与える影響はそれほど大きくなく、むしろ２つの移動時間Ｔｐｏｓｉｔｉｏｎｉｎｇ、Ｔｒｅｗｉｎｄがパフォーマンスに与える影響の方が大きくなる。
例えば、階層ストレージ管理（ＨＳＭ）システムでのデータの書込み時間Ｔｗｒｉｔｅは１秒以下から約８０秒程である。一方、書込み前後のＥＯＤがＥＯＴ付近にあれば、２つの移動時間Ｔｐｏｓｉｔｉｏｎｉｎｇ、Ｔｒｅｗｉｎｄはそれぞれ約１００秒である。この場合、書込み前後のＥＯＤがＥＯＴの近くにあるほど、２つの移動時間Ｔｐｏｓｉｔｉｏｎｉｎｇ、Ｔｒｅｗｉｎｄは大きくなる。
【００２３】
そこで、本実施の形態では、この２つの移動時間を短縮する。
そのために、本実施の形態では、テープカートリッジ２０に組み込まれた不揮発性記憶領域を用いる。この不揮発性記憶領域としては、テープカートリッジ２０のマウントが完了して直ぐにデータを書き込むことが可能であり、テープカートリッジ２０がアンマウントされて再度マウントされたときでもデータを保持しており読み出すことが可能なものであれば、如何なる記憶領域や記憶媒体を用いてもよいが、以下では、カートリッジに付随したカートリッジメモリ２４を用いるものとして説明する。即ち、本実施の形態では、記憶部の一例として、カートリッジメモリ２４を用いている。しかしながら、カートリッジメモリ２４は、現状では、小容量であり、かつ、非接触通信で読み書きが行われるものである。従って、テープカートリッジ２０やデータを管理するための情報はカートリッジメモリ２４に記憶し、データそのものは接触通信可能なフラッシュメモリ等の不揮発性メモリやテープ２３上の特殊な記憶領域に記憶するような構成も考えられる。また、テープドライブ１０としては、この不揮発性記憶領域に対して、テープ２３への読み書きとほぼ同様にアクセスできることが望ましい。
【００２４】
そして、テープドライブ１０は、次のような動作を行う。
まず、テープドライブ１０は、テープカートリッジ２０のマウント完了後に追記動作が要求されることを認識する。そして、追記動作の前の移動命令による移動動作を省略する。つまり、移動動作を行わないか、又は、中断する。
具体的には、次のような動作を行う。
例えば、Ｓｐａｃｅ ＥＯＤコマンド（ＥＯＤ指定によるＥＯＤへの移動命令）、Ｌｏｃａｔｅコマンド（絶対アドレス指定によるＥＯＤへの移動命令）を受けた場合は、追記動作が発生する可能性が高いので、移動動作を行わずに移動動作の完了報告を行う。尚、移動コマンドで指定された位置がＥＯＤであることは、指定された位置が予め定めた条件を満たしていることの一例である。
一方、上記以外の移動コマンドを受けた場合は、同様に移動動作を省略してもよいし、逆に移動動作を行ってもよい。この場合、次のコマンドが書込みコマンドであれば、書込み開始位置が新たなＥＯＤとなり、ＥＯＤへの追記動作と同様になる。また、次コマンドが読出しコマンドであれば、指定された位置に移動して読み出しを行う。次のコマンドが移動コマンドであれば、動作完了前にホストへの完了報告を行い、次のコマンドを受けるようにしてもよい。
【００２５】
次に、テープドライブ１０は、データの追記要求を受けたら、カートリッジメモリ２４等の不揮発性記憶領域に一時的にデータを保管する。
このとき、テープドライブ１０は、データの書込み開始時点で不揮発性記憶領域の未使用領域が閾値以下になっている場合やデータの書込み中に不揮発性記憶領域の未使用領域がなくなった場合等の予め定めた条件を満たした場合を除き、テープ２３上の本来書き込むべき位置（本来の位置）にデータを書き込まない。そして、ホスト３０に対しては、不揮発性記憶領域に一時的に記憶されたデータがテープ２３上の本来の位置に書き込まれたように見せる。つまり、不揮発性記憶領域の存在は、ホスト３０から認識されない。具体的には、不揮発性記憶領域に書き込まれたデータへの移動やそのようなデータの読出しの命令に対しては、そのデータがテープ２３上の本来の位置に書き込まれているかのような処理を行う。また、テープドライブ１０は、巻き戻しやアンマウントの命令に対する処理は、不揮発性記憶領域に一時的に記憶されたデータをテープ２３上の本来の位置に書き直さずに行う。
尚、不揮発性記憶領域に書き込まれたデータは、テープカートリッジ２０をアンマウントした後も保持される。
【００２６】
図２に、このような動作の概略について示す。
図では、ＵｓｅｒＤａｔａ１からＵｓｅｒＤａｔａ５がテープ２３に記録されている。つまり、このとき、ＵｓｅｒＤａｔａ５の後の位置ＸがＥＯＤになっている。この状態で、ＵｓｅｒＤａｔａ６を書き込む場合、テープドライブ１０は、不揮発性記憶領域が溢れない限り、ＢＯＴからＥＯＤへの移動を行わず、太い実線で囲んで示すように、ＵｓｅｒＤａｔａ６を不揮発性記憶領域に書き込む。仮に、太い破線で囲んで示すように、ＵｓｅｒＤａｔａ６をテープ２３に書き込んでいれば、ＵｓｅｒＤａｔａ６の後の位置Ｙが新たなＥＯＤとなるはずであるが、ＵｓｅｒＤａｔａ６を不揮発性記憶領域に書き込むことにより、この新たなＥＯＤからＢＯＴへの巻き戻し動作も行うことなく、アンマウント可能としている。
【００２７】
ここで、追記動作の際に移動動作を行う場合と行わない場合とを比較して、具体的に説明する。尚、以下の説明では、ＵｓｅｒＤａｔａ５までが記録されているときのＥＯＤの位置Ｘの長手方向の座標をＰｏｓ（ｘ）とし、Ｐｏｓ（ｘ）＝４８０（ｍ）とする。また、１回の追記データ量を４８０（ＭＢ）、１データセットのデータ量を約１．６（ＭＢ）、１データセットの長さを８２（ｍｍ）とすると、１回に追記されるデータの長さは約２５ｍ（＝８２（ｍｍ）×４８０（ＭＢ）／１．６（ＭＢ））となり、ＵｓｅｒＤａｔａ６をテープ２３に追記した後の新しいＥＯＤの位置Ｙの長手方向の座標をＰｏｓ（ｙ）とすると、Ｐｏｓ（ｙ）＝Ｐｏｓ（ｘ）＋２５（ｍ）となる。更に、データ転送速度を１２０（ＭＢ／ｓｅｃ）とし、テープ２３の速度を８（ｍ／ｓｅｃ）とする。
【００２８】
まず、追記動作の際に移動動作を行う場合について説明する。
この場合、１回の追記動作に要する時間Ｔａｐｐｅｎｄは、書込み時間Ｔｗｒｉｔｅ、ＢＯＴからＥＯＤへの移動時間Ｔｐｏｓ（ｘ）、新たなＥＯＤからＢＯＴへの移動時間Ｔｒｅｗｉｎｄを用いて、次のように表される。
Ｔａｐｐｅｎｄ＝Ｔｐｏｓ（ｘ）＋Ｔｗｒｉｔｅ＋Ｔｒｅｗｉｎｄ
尚、この式では、固定値であるマウント、アンマウントの時間を除外し、変動値である上記３つの時間の和をとっている。
ここで、Ｔｗｒｉｔｅ、Ｔｐｏｓ（ｘ）、Ｔｒｅｗｉｎｄは、次のような値になる。
Ｔｗｒｉｔｅ＝４８０（ＭＢ）／１２０（ＭＢ／ｓｅｃ）＝４（ｓｅｃ）
Ｔｐｏｓ（ｘ）＝４８０（ｍ）／８（ｍ／ｓｅｃ）＝６０（ｓｅｃ）
Ｔｒｅｗｉｎｄ＝｛４８０（ｍ）＋２５（ｍ）｝／８（ｍ／ｓｅｃ）＝６３．１２５（ｓｅｃ）
【００２９】
また、ｎ回目の追記動作に要する時間Ｔａｐｐｅｎｄ（ｎ）は、次のようになる。
Ｔａｐｐｅｎｄ（ｎ）＝Ｔｐｏｓ（ｘ）（ｎ）＋Ｔｗｒｉｔｅ＋Ｔｒｅｗｉｎｄ（ｎ）＝｛Ｐｏｓ（ｘ）＋２５＊（ｎー１）｝／８＋Ｔｗｒｉｔｅ＋｛Ｐｏｓ（ｘ）＋２５＊ｎ｝／８
この式から、ｎが大きくなるほど、２つの移動時間が占める割合が高くなることが分かる。
【００３０】
次に、追記動作の際に移動動作を行わない場合について説明する。
この場合、７回目の追記動作で不揮発性記憶領域が溢れるとすると、１回目の追記動作から６回目の追記動作において、移動時間はゼロである。一方、７回目の追記動作において、テープ２３上の本来の位置への書込みが必要となるが、このときの追記動作に要する時間Ｔａｐｐｅｎｄは、書込み時間Ｔｗｒｉｔｅ、ＢＯＴからＥＯＤへの移動時間Ｔｐｏｓ（ｘ）、新たなＥＯＤからＢＯＴへの移動時間Ｔｒｅｗｉｎｄを用いて、次のように表される。
Ｔａｐｐｅｎｄ＝Ｔｐｏｓ（ｘ）＋７＊Ｔｗｒｉｔｅ＋Ｔｒｅｗｉｎｄ
尚、この式では、固定値であるマウント、アンマウントの時間を除外し、変動値である上記３つの時間の和をとっている。
ここで、Ｔｗｒｉｔｅ、Ｔｐｏｓ（ｘ）、Ｔｒｅｗｉｎｄは、次のような値になる。
Ｔｗｒｉｔｅ＝４８０（ＭＢ）／１２０（ＭＢ／ｓｅｃ）＝４（ｓｅｃ）
Ｔｐｏｓ（ｘ）＝｛４８０（ｍ）＋２５（ｍ）＊６｝／８（ｍ／ｓｅｃ）＝７８．７５（ｓｅｃ）
Ｔｒｅｗｉｎｄ＝｛４８０（ｍ）＋２５（ｍ）＊７｝／８（ｍ／ｓｅｃ）＝８１．８７５（ｓｅｃ）
即ち、この場合、書き直しが発生する追記動作には若干時間がかかるものの、書き直しが発生しない追記動作には時間がかからない。
【００３１】
その後、テープドライブ１０は、テープカートリッジ２０がマウントされた時に不揮発性記憶領域にデータが書き込まれていることを認識し、データをテープ２３上の本来の位置に書き込む。そのために、テープカートリッジ２０がアンマウントされるまではデータをバッファ１２にも保持しておく。一方で、テープカートリッジ２０がアンマウントされる前にテープ２３上の本来の位置に書き直されたデータは、バッファ１２から削除できる。また、データを書き直す前にテープカートリッジ２０がアンマウントされたら、再びテープカートリッジ２０がマウントされた時に不揮発性記憶領域から必要に応じてバッファ１２にデータを読み出す。
【００３２】
ところで、データの書き直し動作は、移動動作の中で行うことができる。
図３に、このような動作の概略について示す。
図は、不揮発性記憶領域にＵｓｅｒＤａｔａ１０が保管された状態でＵｓｅｒＤａｔａ６の読出し命令を受けた場合を示している。この場合、ＵｓｅｒＤａｔａ６が読み出された後、ＢＯＴへの移動（巻き戻し）命令を受けると、位置ＡからＢＯＴへの移動動作で、ＵｓｅｒＤａｔａ１０を本来書くべき位置を通過する。ここで、位置Ａから位置Ｂへ移動する距離と、位置Ａから位置Ｘ、位置Ｙを経由して位置Ｂへ移動する距離とは、変わらない。従って、移動動作の中で、矢印５０で示すように、ＵｓｅｒＤａｔａ１０をテープ２３上の本来の位置に書き直す。尚、このような書直しの動作は、データを書き込むときの方向へのテープ媒体の移動動作において、指定された位置を通過するときに、テープ媒体上の指定された位置に書き直すことの一例である。
【００３３】
この場合、不揮発性記憶領域に保管されたデータは任意の時点で読み出すことができる。
また、移動動作時に書き直し動作を行うことにより、追記動作時に不揮発性記憶領域が溢れてしまうことを抑制する。つまり、この動作は、不揮発性記憶領域の使用率に関わらず、書き直しを行うべき領域を通過する際に必ず実行する。
【００３４】
次に、このような動作を実現するためのコントローラ１６の機能構成について説明する。尚、以下では、不揮発性記憶領域として、カートリッジメモリ２４を用いるものとして説明する。
図４は、コントローラ１６の機能構成例を示したブロック図である。
図示するように、コントローラ１６は、コマンド処理部４１と、バッファ管理部４２と、チャネル入出力部４３と、カートリッジメモリ入出力部（以下、「ＣＭ入出力部」という）４４と、動作信号出力部４５とを備える。
【００３５】
このうち、コマンド処理部４１は、ホストＩ／Ｆ１１からコマンドを受け取る。ここで、コマンドとしては、例えば、テープ２３にデータを書き込むことを指示するＷｒｉｔｅコマンド、テープ２３からデータを読み出すことを指示するＲｅａｄコマンド、ヘッド１４がテープ２３上の書込み位置や読出し位置に位置付けられるようにテープ２３を移動させることを指示するＳｐａｃｅコマンドやＬｏｃａｔｅコマンドがある。
バッファ管理部４２は、テープ２３に書き込むデータやテープ２３から読み出されたデータをバッファ１２に格納したり、バッファ１２に格納されたデータを読み出してチャネル入出力部４３やコマンド処理部４１に出力したりする。
チャネル入出力部４３は、バッファ管理部４２がバッファ１２から読み出したデータをチャネル１３に出力したり、チャネル１３から受け取ったデータをバッファ管理部４２に出力したりする。本実施の形態では、データをテープ媒体上の指定された位置に書き直す書直し部の一例として、チャネル入出力部４３を設けている。
【００３６】
ＣＭ入出力部４４は、カートリッジメモリ２４に記憶された情報を取得し、その情報に基づく各種判断を行う。ここで、カートリッジメモリ２４に記憶された情報としては、まず、ホスト３０がテープドライブ１０に送った最後のデータの位置を示す論理的なＥＯＤ（以下、「論理ＥＯＤ」という）がある。本実施の形態において、最後のデータはテープ２３に書き込まれずにカートリッジメモリ２４に一時的に記憶されている場合もあるので、この論理ＥＯＤは、最後のデータがテープ２３に書き込まれたと仮定したときの位置であることもある。また、カートリッジメモリ２４に記憶された情報としては、テープ２３に実際に書き込まれた最後のデータの位置を示す物理的なＥＯＤ（以下、「物理ＥＯＤ」という）や、テープ２３に実際に書き込まれずに一時的に記憶されている追記データや、各追記データがテープ２３に書き込まれたと仮定したときの位置の情報もある。更に、前回の移動コマンドに対して移動動作が省略されたかどうかを示す移動省略フラグもある。尚、この移動省略フラグは、移動を省略した状態にあるときに「ＯＮ」に設定され、移動を省略した状態にない場合に「ＯＦＦ」に設定されるものとする。本実施の形態では、データを記憶部に書き込む書込み部の一例として、また、記憶部からデータを読み出す読出し部の一例として、ＣＭ入出力部４４を設けている。
動作信号出力部４５は、モータドライバ１８に対して、移動動作を行うことを指示する信号を出力する。本実施の形態では、移動動作を行わないように制御する移動制御部の一例として、動作信号出力部４５を設けている。
【００３７】
次に、コントローラ１６の動作について説明する。
図５は、コマンド処理部４１が移動コマンドを受信したときのコントローラ１６の動作例を示したフローチャートである。コマンド処理部４１が移動コマンドを受信した旨をＣＭ入出力部４４に伝えることにより、この動作は開始する。
コントローラ１６では、まず、ＣＭ入出力部４４が、移動コマンドが論理ＥＯＤへの移動を指示しているかどうかを判定する（ステップ４０１）。具体的には、移動コマンドがＳｐａｃｅＥＯＤコマンドのように、ＥＯＤへの移動を明示的に指示するものであれば、移動コマンドが論理ＥＯＤへの移動を指示しているものと判定する。また、移動コマンドがＬｏｃａｔｅコマンドのように、絶対位置指定によるＥＯＤへの移動を指示するものであれば、カートリッジメモリ２４に記憶された論理ＥＯＤとＬｏｃａｔｅコマンドで指定された絶対位置とを比較し、一致すれば、移動コマンドが論理ＥＯＤへの移動を指示しているものと判定する。
【００３８】
その結果、移動コマンドが論理ＥＯＤへの移動を指示していると判定されれば、ＣＭ入出力部４４は、追記動作が続く可能性が高いので、移動動作を省略し、移動省略フラグを「ＯＮ」に設定する（ステップ４０２）。
一方、移動コマンドが論理ＥＯＤへの移動を指示していると判定されなければ、ＣＭ入出力部４４は、カートリッジメモリ２４に追記データが記憶されているかどうかを判定する（ステップ４０３）。そして、追記データが記憶されていると判定されれば、ＣＭ入出力部４４は、移動コマンドがカートリッジメモリ２４内の追記データへの移動を指示しているかどうかを判定する（ステップ４０４）。具体的には、移動コマンドがＬｏｃａｔｅコマンドのように、絶対位置指定による特定の位置への移動を指示するものであれば、カートリッジメモリ２４に記憶された物理ＥＯＤ及び論理ＥＯＤとＬｏｃａｔｅコマンドで指定された絶対位置とを比較し、絶対位置が物理ＥＯＤと論理ＥＯＤの間にあれば、移動コマンドがカートリッジメモリ２４内の追記データへの移動を指示しているものと判定する。
そして、移動コマンドがカートリッジメモリ２４内の追記データへの移動を指示していると判定されれば、ＣＭ入出力部４４は、カートリッジメモリ２４内の追記データへの上書き動作が続く可能性が高いので、移動動作を省略し、移動省略フラグを「ＯＮ」に設定する（ステップ４０２）。
【００３９】
また、ステップ４０４で移動コマンドがカートリッジメモリ２４内の追記データへの移動を指示していると判定されなければ、ＣＭ入出力部４４は、移動コマンドによる移動動作の区間内に、カートリッジメモリ２４内の追記データが書かれるテープ２３上の本来の位置が含まれているかどうかを判定する（ステップ４０５）。具体的には、カートリッジメモリ２４に記憶された各追記データがテープ２３に実際に書かれる位置が、現在位置から移動コマンドで指定された位置までの間に存在するかどうかを判定する。
その結果、移動コマンドによる移動動作の区間内に、カートリッジメモリ２４内の追記データが書かれるテープ２３上の本来の位置が含まれていると判定されれば、その旨が動作信号出力部４５及びチャネル入出力部４３に伝えられ、動作信号出力部４５が、モータドライバ１８に対し、カートリッジメモリ２４内の追記データが書かれるテープ２３上の位置に移動する旨の信号を出力し（ステップ４０６）、チャネル入出力部４３が、ＣＭ入出力部４４がカートリッジメモリ２４から読み出した追記データを移動後の位置に書き込む（ステップ４０７）。そして、ＣＭ入出力部４４は、カートリッジメモリ２４から追記データを消去する（ステップ４０８）。
【００４０】
その後、カートリッジメモリ２４内の追記データがテープ２３上の本来の位置に書き込まれた旨が動作信号出力部４５に伝えられ、動作信号出力部４５が、モータドライバ１８に対し、移動コマンドにより指定された位置へ移動する旨の信号を出力する（ステップ４０９）。そして、ＣＭ入出力部４４が、カートリッジメモリ２４に記憶された移動省略フラグを「ＯＦＦ」に設定する（ステップ４１０）。
【００４１】
また、ステップ４０３でカートリッジメモリ２４に追記データが記憶されていると判定されなかった場合や、ステップ４０５で移動コマンドによる移動動作の区間内にカートリッジメモリ２４内の追記データが書かれるテープ２３上の本来の位置が含まれていると判定されなかった場合は、その旨が動作信号出力部４５に伝えられ、動作信号出力部４５が、モータドライバ１８に対し、移動コマンドにより指定された位置へ移動する旨の信号を出力する（ステップ４０９）。そして、ＣＭ入出力部４４が、カートリッジメモリ２４に記憶された移動省略フラグを「ＯＦＦ」に設定する（ステップ４１０）。
【００４２】
図６は、コマンド処理部４１が書込みコマンドを受信したときのコントローラ１６の動作例を示したフローチャートである。コマンド処理部４１が書込みコマンドを受信した旨をＣＭ入出力部４４に伝えることにより、この動作は開始する。
コントローラ１６では、まず、ＣＭ入出力部４４が、移動省略後の状態であるかどうか、つまり、移動省略フラグが「ＯＮ」に設定されているかどうかを判定する（ステップ４２１）。
【００４３】
その結果、移動省略後の状態であれば、つまり、移動省略フラグが「ＯＮ」に設定されていれば、現在位置は、論理ＥＯＤの位置又はカートリッジメモリ２４内の追記データが書かれるべきテープ２３上の位置であることになる。そこで、ＣＭ入出力部４４は、現在位置が、カートリッジメモリ２４内の追記データが書かれるべきテープ２３上の位置であるかどうかを判定する（ステップ４２２）。そして、現在位置が、カートリッジメモリ２４内の追記データが書かれるべきテープ２３上の位置であると判定されれば、移動動作に続く上書き動作によってカートリッジメモリ２４内の追記データの全部又は一部が上書きされることになるので、ＣＭ入出力部４４は、上書きされる追記データをカートリッジメモリ２４から消去する（ステップ４２３）。また、現在位置が、カートリッジメモリ２４内の追記データが書かれるべきテープ２３上の位置であると判定されなければ、そのままステップ４２４へ進む。
【００４４】
その後、ＣＭ入出力部４４は、カートリッジメモリ２４に追記データを記憶するための十分な空き領域があるかどうかを判定する（ステップ４２４）。
そして、カートリッジメモリ２４に追記データを記憶するための十分な空き領域があると判定されれば、書込みコマンドによる書込み対象の追記データをカートリッジメモリ２４に追記する（ステップ４２５）。
【００４５】
また、カートリッジメモリ２４に追記データを記憶するための十分な空き領域があると判定されなければ、その旨が動作信号出力部４５及びチャネル入出力部４３に伝えられ、動作信号出力部４５が、モータドライバ１８に対し、カートリッジメモリ２４内の追記データが書かれるテープ２３上の位置に移動する旨の信号を出力し（ステップ４２６）、チャネル入出力部４３が、ＣＭ入出力部４４がカートリッジメモリ２４から読み出した追記データを移動後の位置に書き込む（ステップ４２７）。そして、ＣＭ入出力部４４は、カートリッジメモリ２４から追記データを消去する（ステップ４２８）。その後、チャネル入出力部４３が、書込みコマンドによる書込み対象の追記データを通常通りテープ２３に書き込む（ステップ４３１）。そして、ＣＭ入出力部４４が、カートリッジメモリ２４に記憶された移動省略フラグを「ＯＦＦ」に設定する（ステップ４３２）。
【００４６】
一方、ステップ４２１で移動省略後の状態でなければ、つまり、移動省略フラグが「ＯＦＦ」に設定されていれば、ＣＭ入出力部４４は、カートリッジメモリ２４に追記データが記憶されているかどうかを判定する（ステップ４２９）。そして、カートリッジメモリ２４に追記データが記憶されていれば、ＣＭ入出力部４４は、カートリッジメモリ２４から追記データを消去する（ステップ４３０）。また、カートリッジメモリ２４に追記データが記憶されていなければ、そのままステップ４３１へ進む。その後、その旨はチャネル入出力部４３に伝えられ、チャネル入出力部４３が、書込みコマンドによる書込み対象の追記データを通常通りテープ２３に書き込む（ステップ４３１）。そして、ＣＭ入出力部４４が、カートリッジメモリ２４に記憶された移動省略フラグを「ＯＦＦ」に設定する（ステップ４３２）。
【００４７】
図７は、コマンド処理部４１が読出しコマンドを受信したときのコントローラ１６の動作例を示したフローチャートである。コマンド処理部４１が読出しコマンドを受信した旨をＣＭ入出力部４４に伝えることにより、この動作は開始する。
コントローラ１６では、まず、ＣＭ入出力部４４が、読出しコマンドによる読出し対象のデータがカートリッジメモリ２４内にあるかどうかを判定する（ステップ４４１）。
その結果、読出しコマンドによる読出し対象のデータがカートリッジメモリ２４内にあると判定されなければ、その旨はチャネル入出力部４３に伝えられ、チャネル入出力部４３が、テープ２３から通常通りデータを読み出す（ステップ４４２）。そして、データを読み出した後の現在位置がＥＯＤ（この場合は、物理ＥＯＤ）であるかどうかを判定する（ステップ４４３）。ここで、現在位置がＥＯＤであると判定されれば、ＣＭ入出力部４４は、移動省略フラグを「ＯＮ」に設定し（ステップ４４４）、現在位置がＥＯＤであると判定されなければ、そのまま処理を終了する。
一方、ステップ４４１で読出しコマンドによる読出し対象のデータがカートリッジメモリ２４内にあると判定されれば、ＣＭ入出力部４４は、カートリッジメモリ２４内の追記データの中から読出し対象のデータを読み出し（ステップ４４５）、処理を終了する。
【００４８】
尚、上記動作例において、図６のステップ４３２、図７のステップ４４４では、移動省略フラグを「ＯＮ」に設定しないようにしてもよい。
【００４９】
以上により、本実施の形態についての説明を終了する。
このように、本実施の形態では、例えば次に追記動作が起こることが予想される移動要求に対して、移動動作を省略し、続く追記要求に対して、追記データを不揮発性記憶領域に一時的に記憶し、後でテープ２３上の本来の書き込むべき位置に書き込むようにした。これにより、テープ２３へのデータの書込みの際のテープ２３の移動動作に要する時間を短縮することが可能となった。
【００５０】
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム（装置又は機器）、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ（ＣＤ−ＲＯＭ）、コンパクトディスク−リード／ライト（ＣＤ−Ｒ／Ｗ）及びＤＶＤが含まれる。
【００５１】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
【符号の説明】
【００５２】
１０…テープドライブ、１１…ホストＩ／Ｆ、１２…バッファ、１３…チャネル、１４…ヘッド、１５…モータ、１６…コントローラ、１７…ヘッド位置制御システム、１８…モータドライバ
【図１】
2011146105.tif 000003
【図２】
2011146105.tif 000004
【図３】
2011146105.tif 000005
【図４】
2011146105.tif 000006
【図５】
2011146105.tif 000007
【図６】
2011146105.tif 000008
【図７】
2011146105.tif 000009