説明

データの書込みを制御する装置及び方法

【課題】テープ媒体へのデータの書込みの際のテープ媒体の移動動作に要する時間を短縮する。
【解決手段】テープドライブのコントローラ16において、コマンド処理部41がEOD等への移動コマンドを受け取ると、動作信号出力部45はテープの移動を行わず、CM入出力部44が移動省略後の状態であることを記憶する。次に、この状態でコマンド処理部41がデータの書込みコマンドを受け取ると、CM入出力部44がデータをカートリッジメモリに書き込む。その後、テープ上のデータが本来書き込まれるべき位置をヘッドが通過する場合等に、CM入出力部44が、データをカートリッジメモリから読み出し、チャネル入出力部43が、データをテープ上の本来の位置に書き込む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データの書込みを制御する装置及び方法に関する。特に、本発明は、テープ媒体へのデータの書込みを制御する装置及び方法に関する。
【背景技術】
【0002】
磁気テープ等のテープ媒体を複数用意し、個々のテープ媒体に対して比較的少量のデータの書込みや読出しを行う操作を繰り返し行うようなシステムがある(例えば、非特許文献1〜3参照)。ここで、テープ媒体はリムーバブルな記録媒体であるため、データの書込みや読出しを行うためには、テープ媒体をテープドライブに装着する必要がある。また、テープ媒体はシーケンシャルにアクセスが行われる記録媒体であるため、データの書込みや読出しを行うためには、書込みや読出しを行うためのヘッドをテープ媒体上の書込み位置や読出し位置に移動させる必要もある。従って、一般に、このようなシステムでは、テープカートリッジのテープドライブへの保管場所からの移動(Move Medium)及び装着(Load)、テープドライブのヘッドの書込み又は読出しの開始位置への移動(Locate/Space)、データの書込み又は読出し(Write/Read)、テープ媒体の巻戻し(Rewind/Unload)、テープカートリッジのテープドライブからの排出(Unload)及び保管場所への移動(Move Medium)といった動作が、繰り返し行われることになる。
【先行技術文献】
【特許文献】
【0003】
【非特許文献1】Felix Ehm、“Development of a Performant Defragmentation Process for a Robotic Tape Library within the CASTOR HSM”、[online]、平成18年、[平成21年12月9日検索]、インターネット<URL:http://castor.web.cern.ch/castor/docs/guides/DiplomaThesis.pdf>
【非特許文献2】Tim Bell、“Tape Efficiency Version 0.5”、[online]、平成19年11月、[平成21年12月9日検索]、インターネット<URL:https://twiki.cern.ch/twiki/pub/FIOgroup/TapeRefCernUsageNov2007/tape_usage_efficiency_v05.pdf>
【非特許文献3】C. Curran、“The Unbearable Slowness of Tape”、[online]、平成20年5月、[平成21年12月12日検索]、インターネット<URL:http://hepix.caspur.it/storage/hep_pdf/2008/Spring/hepix8.pdf>
【発明の開示】
【発明が解決しようとする課題】
【0004】
ここで、一般に、テープカートリッジのテープドライブへの保管場所からの移動及び装着には、数十秒が必要となり、テープドライブのヘッドの書込み又は読出しの開始位置への移動やテープ媒体の巻戻しには、平均して数十秒が必要となり、テープカートリッジのテープドライブからの排出及び保管場所への移動には、数十秒が必要となる。即ち、合計で数分が必要となるこれらの動作が、数秒で完了するデータの書込みや読出しに対してオーバーヘッドとなっており、こうした意味で、非特許文献1〜3で述べられているシステムは、テープ媒体の不得意な利用のされ方ということができる。
【0005】
本発明の目的は、テープ媒体へのデータの書込みの際のテープ媒体の移動動作に要する時間を短縮することにある。
【課題を解決するための手段】
【0006】
かかる目的のもと、本発明は、テープ媒体へのデータの書込みを制御する装置であって、テープ媒体上の指定された位置にヘッドを位置付けるためのテープ媒体の移動動作が指示されても、指定された位置が予め定めた条件を満たしていれば、移動動作を行わないように制御する移動制御部と、移動制御部により移動動作を行わないように制御された状態でテープ媒体へのデータの書込みが指示されると、データを、移動動作に要する時間よりも短い時間で書込みの準備を行うことを可能にする記憶部に、指定された位置に関連付けて書き込む書込み部とを含む、装置を提供する。
【0007】
ここで、本発明は、テープ媒体からのデータの読出しが指示されても、記憶部からデータを読み出す読出し部を更に含む、ものであってよい。
また、本発明は、書込み部により記憶部に書き込まれたデータを、記憶部にデータに関連付けて記憶されたテープ媒体上の指定された位置に書き直す書直し部を更に含む、ものであってよい。
その場合、記憶部は、不揮発性を有しており、書直し部は、書込み部により記憶部に書き込まれたデータを、テープ媒体を含むテープカートリッジがテープドライブからアンマウントされ、再度テープドライブにマウントされた後に、テープ媒体上の指定された位置に書き直す、ものであってよい。
また、書直し部は、書込み部により記憶部に書き込まれたデータを、記憶部の空き容量が予め定めた条件を満たしたときに、テープ媒体上の指定された位置に書き直す、ものであってもよい。
更に、書直し部は、書込み部により記憶部に書き込まれたデータを、データを書き込むときの方向へのテープ媒体の移動動作において、指定された位置を通過するときに、テープ媒体上の指定された位置に書き直す、ものであってもよい。
【0008】
また、本発明は、テープ媒体へのデータの書込みを制御する方法であって、テープ媒体上の指定された位置にヘッドを位置付けるためのテープ媒体の移動動作が指示されても、指定された位置が予め定めた条件を満たしていれば、移動動作を省略するステップと、移動動作が省略された状態でテープ媒体へのデータの書込みが指示されると、データを、移動動作に要する時間よりも短い時間で書込みの準備を行うことを可能にする記憶部に、指定された位置に関連付けて書き込むステップとを含む、方法も提供する。
【0009】
更に、本発明は、テープ媒体へのデータの書込みを制御する方法であって、テープ媒体上の第1の位置にヘッドを位置付けるためのテープ媒体の移動動作が指示された場合に、移動動作を省略するステップと、移動動作が省略された状態でテープ媒体への第1のデータの書込みが指示されると、第1のデータを、移動動作に要する時間よりも短い時間で書込みの準備を行うことを可能にする記憶部に、第1の位置に関連付けて書き込むステップと、テープ媒体の先頭から第1の位置よりも遠くにあるテープ媒体上の第2の位置を終端として書き込まれた第2のデータを読み出すステップと、テープ媒体を第2の位置から巻き戻すときに、記憶部に書き込まれた第1のデータを、記憶部に第1のデータに関連付けて記憶されたテープ媒体上の第1の位置に書き直すステップとを含む、方法も提供する。
【0010】
更に、本発明は、テープ媒体へのデータの書込みを制御する装置としてコンピュータを機能させるプログラムであって、コンピュータを、テープ媒体上の指定された位置にヘッドを位置付けるためのテープ媒体の移動動作が指示されても、指定された位置が予め定めた条件を満たしていれば、移動動作を行わないように制御する移動制御部と、移動制御部により移動動作を行わないように制御された状態でテープ媒体へのデータの書込みが指示されると、データを、移動動作に要する時間よりも短い時間で書込みの準備を行うことを可能にする記憶部に、指定された位置に関連付けて書き込む書込み部として機能させる、プログラムも提供する。
【0011】
更にまた、本発明は、テープドライブに装着されて用いられるテープカートリッジであって、データが書き込まれるテープ媒体と、テープ媒体の指定された位置にヘッドを位置付けるためのテープ媒体の移動動作に要する時間よりも短い時間でデータの書込みの準備を行うことを可能にし、かつ、移動動作が省略された状態でテープ媒体上の指定された位置への書込みが指示されたデータを記憶する記憶部とを含む、テープカートリッジも提供する。
【発明の効果】
【0012】
本発明によれば、テープ媒体へのデータの書込みの際のテープ媒体の移動動作に要する時間を短縮することができる。
【図面の簡単な説明】
【0013】
【図1】本発明の実施の形態が適用されるテープドライブの構成を示したブロック図である。
【図2】本発明の実施の形態において追記データを不揮発性記憶領域に記憶するときの様子を示した図である。
【図3】本発明の実施の形態において不揮発性記憶領域に記憶された追記データをテープに書き直すときの様子を示した図である。
【図4】本発明の実施の形態におけるコントローラの機能構成例を示したブロック図である。
【図5】本発明の実施の形態におけるコントローラの移動コマンド受信時の動作例を示したフローチャートである。
【図6】本発明の実施の形態におけるコントローラの書込みコマンド受信時の動作例を示したフローチャートである。
【図7】本発明の実施の形態におけるコントローラの読出しコマンド受信時の動作例を示したフローチャートである。
【発明を実施するための形態】
【0014】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
図1は、本実施の形態が適用されるテープドライブ10の構成例を示した図である。このテープドライブ10は、ホストインターフェイス(以下、「ホストI/F」という)11と、バッファ12と、チャネル13と、ヘッド14と、モータ15とを含む。また、コントローラ16と、ヘッド位置制御システム17と、モータドライバ18とを含む。更に、テープドライブ10には、テープカートリッジ20が挿入されることにより装填可能となっているので、ここでは、テープカートリッジ20も図示している。このテープカートリッジ20は、リール21、22に巻かれたテープ23を含む。テープ23は、リール21、22の回転に伴い、リール21からリール22の方向へ、又は、リール22からリール21の方向へ、長手方向に移動する。尚、テープ23としては、磁気テープが例示されるが、磁気テープ以外のテープ媒体でもよい。
【0015】
また、テープカートリッジ20は、カートリッジメモリ24も含む。このカートリッジメモリ24は、例えば、テープ23上にどのようにデータが書かれたかの情報を記録する。そして、例えばRFインターフェイスを用いて非接触でテープ23に書かれたデータのインデックスやテープ23の使用状況等を調べることにより、データへの高速アクセスを可能としている。尚、図では、このRFインターフェイスのようなカートリッジメモリ24へのアクセスを行うためのインターフェイスを、カートリッジメモリインターフェイス(以下、「CMI/F」という)19として示している。
【0016】
ここで、ホストI/F11は、上位装置の一例であるホスト30との通信を行う。例えば、ホスト30から、テープ23へのデータの書込みを指示するコマンド、テープ23を目的の位置に移動させるコマンド、テープ23からのデータの読出しを指示するコマンドを受け取る。尚、このホストI/F11で用いる通信規格としては、SCSIが例示される。SCSIの場合、1つ目のコマンドは、Writeコマンドに相当し、2つ目のコマンドは、LocateコマンドやSpaceコマンドに相当し、3つ目のコマンドは、Readコマンドに相当する。また、ホストI/F11は、ホスト30に対し、これらのコマンドに応じた処理が成功したのか失敗したのかの応答を返す。
【0017】
バッファ12は、テープ23に書き込むべきデータやテープ23から読み出されたデータを蓄積するメモリである。例えば、DRAM(Dynamic Random Access Memory)によって構成される。また、バッファ12は、複数のバッファセグメントからなり、各バッファセグメントが、テープ23に対する読み書きの単位であるデータセットを格納している。
チャネル13は、テープ23に書き込むべきデータをヘッド14に送ったり、テープ23から読み出されたデータをヘッド14から受け取ったりするために用いられる通信経路である。
ヘッド14は、テープ23が長手方向に移動するとき、テープ23に対して情報を書き込んだり、テープ23から情報を読み出したりする。
モータ15は、リール21、22を回転させる。尚、図では、1つの矩形でモータ15を表しているが、モータ15としては、リール21、22の各々に1つずつ、合計2個設けるのが好ましい。
【0018】
一方、コントローラ16は、テープドライブ10の全体を制御する。例えば、ホストI/F11で受け付けたコマンドに従って、データのテープ23への書込みやテープ23からの読出しを制御する。また、ヘッド位置制御システム17やモータドライバ18の制御も行う。
ヘッド位置制御システム17は、所望のラップを追跡するシステムである。ここで、ラップとは、テープ23上の複数のトラックのグループである。ラップを切り換える必要が生じると、ヘッド14を電気的に切り換える必要も生じるので、このような切り換えの制御を、このヘッド位置制御システム17で行う。
モータドライバ18は、モータ15を駆動する。尚、上述したように、モータ15を2個使用する場合であれば、モータドライバ18も2個設けられる。
CMI/F19は、例えば、RFリーダライタにより実現され、カートリッジメモリ24への情報の書込みや、カートリッジメモリ24からの情報の読出しを行う。
【0019】
ここで、かかる構成を有するテープドライブ10において、テープ媒体上の最終データの後の位置(EOD;End of Data)に移動してデータを書き込む追記動作を行う場合を考える。この場合、1つのテープカートリッジにデータを追記するのに要する時間Tappendは、次の時間の総和となる。尚、ここでは、テープカートリッジ20を保管場所からテープドライブ10へ移動させる時間や、テープカートリッジ20をテープドライブ10から保管場所へ移動させる時間は省略している。
【0020】
(1)テープカートリッジをマウントするのに要する時間Tmount
このTmountは、テープドライブに固有の値であり、LTO(Linear Tape Open)の第4世代(LTO4)では12秒である。
(2)EODに移動するのに要する時間Tpositioning
このTpositioningは、テープ媒体上のEODの位置に依存する変動値である。LTO4のテープカートリッジのテープ長は820m、その移動速度は約8m/secであり、EODはテープ媒体の長手方向における先頭(BOT;Beginning of Tape)と終端(EOT;End of Tape)の間のどこかにあるので、平均約57秒、最大約100秒である。
(3)データをテープ媒体に書き込むのに要する時間Twrite
このTwriteは、書き込むデータの容量(書込みデータ量)と、テープドライブの書込み速度又はホストのデータ転送速度とに依存する変動値であり、LTO4テープドライブでは120MB/secである。
(4)BOTに移動するのに要する時間Trewind
このTrewindは、書込みデータ量によって決まる新たなEODの位置に依存する変動値であり、LTO4のテープカートリッジでは、Tpositioningと同様に、最大約100秒である。
(5)テープカートリッジをアンマウントするのに要する時間Tunmount
このTunmountは、テープドライブに固有の値であり、LTO4では17秒である。
【0021】
そして、書込みデータ量をQdata(MBytes)とすると、追記動作のパフォーマンスは、式「Qdata(MBytes)/Tappend(sec)=Qdata(MBytes)/(Tmount+Tpositioning+Twrite+Trewind+Tunmount)」により算出される。
ここで、パフォーマンスは、変動値によって変化する。即ち、上記式の場合、Tpositioning、Twrite、Trewindという3つの変動値が追記動作のパフォーマンスに影響することになる。
【0022】
このうち、書込み時間Twriteは、書込みデータ量が増えると長くなる。しかしながら、書込みデータ量がある程度小さければ、書込み時間Twriteがパフォーマンスに与える影響はそれほど大きくなく、むしろ2つの移動時間Tpositioning、Trewindがパフォーマンスに与える影響の方が大きくなる。
例えば、階層ストレージ管理(HSM)システムでのデータの書込み時間Twriteは1秒以下から約80秒程である。一方、書込み前後のEODがEOT付近にあれば、2つの移動時間Tpositioning、Trewindはそれぞれ約100秒である。この場合、書込み前後のEODがEOTの近くにあるほど、2つの移動時間Tpositioning、Trewindは大きくなる。
【0023】
そこで、本実施の形態では、この2つの移動時間を短縮する。
そのために、本実施の形態では、テープカートリッジ20に組み込まれた不揮発性記憶領域を用いる。この不揮発性記憶領域としては、テープカートリッジ20のマウントが完了して直ぐにデータを書き込むことが可能であり、テープカートリッジ20がアンマウントされて再度マウントされたときでもデータを保持しており読み出すことが可能なものであれば、如何なる記憶領域や記憶媒体を用いてもよいが、以下では、カートリッジに付随したカートリッジメモリ24を用いるものとして説明する。即ち、本実施の形態では、記憶部の一例として、カートリッジメモリ24を用いている。しかしながら、カートリッジメモリ24は、現状では、小容量であり、かつ、非接触通信で読み書きが行われるものである。従って、テープカートリッジ20やデータを管理するための情報はカートリッジメモリ24に記憶し、データそのものは接触通信可能なフラッシュメモリ等の不揮発性メモリやテープ23上の特殊な記憶領域に記憶するような構成も考えられる。また、テープドライブ10としては、この不揮発性記憶領域に対して、テープ23への読み書きとほぼ同様にアクセスできることが望ましい。
【0024】
そして、テープドライブ10は、次のような動作を行う。
まず、テープドライブ10は、テープカートリッジ20のマウント完了後に追記動作が要求されることを認識する。そして、追記動作の前の移動命令による移動動作を省略する。つまり、移動動作を行わないか、又は、中断する。
具体的には、次のような動作を行う。
例えば、Space EODコマンド(EOD指定によるEODへの移動命令)、Locateコマンド(絶対アドレス指定によるEODへの移動命令)を受けた場合は、追記動作が発生する可能性が高いので、移動動作を行わずに移動動作の完了報告を行う。尚、移動コマンドで指定された位置がEODであることは、指定された位置が予め定めた条件を満たしていることの一例である。
一方、上記以外の移動コマンドを受けた場合は、同様に移動動作を省略してもよいし、逆に移動動作を行ってもよい。この場合、次のコマンドが書込みコマンドであれば、書込み開始位置が新たなEODとなり、EODへの追記動作と同様になる。また、次コマンドが読出しコマンドであれば、指定された位置に移動して読み出しを行う。次のコマンドが移動コマンドであれば、動作完了前にホストへの完了報告を行い、次のコマンドを受けるようにしてもよい。
【0025】
次に、テープドライブ10は、データの追記要求を受けたら、カートリッジメモリ24等の不揮発性記憶領域に一時的にデータを保管する。
このとき、テープドライブ10は、データの書込み開始時点で不揮発性記憶領域の未使用領域が閾値以下になっている場合やデータの書込み中に不揮発性記憶領域の未使用領域がなくなった場合等の予め定めた条件を満たした場合を除き、テープ23上の本来書き込むべき位置(本来の位置)にデータを書き込まない。そして、ホスト30に対しては、不揮発性記憶領域に一時的に記憶されたデータがテープ23上の本来の位置に書き込まれたように見せる。つまり、不揮発性記憶領域の存在は、ホスト30から認識されない。具体的には、不揮発性記憶領域に書き込まれたデータへの移動やそのようなデータの読出しの命令に対しては、そのデータがテープ23上の本来の位置に書き込まれているかのような処理を行う。また、テープドライブ10は、巻き戻しやアンマウントの命令に対する処理は、不揮発性記憶領域に一時的に記憶されたデータをテープ23上の本来の位置に書き直さずに行う。
尚、不揮発性記憶領域に書き込まれたデータは、テープカートリッジ20をアンマウントした後も保持される。
【0026】
図2に、このような動作の概略について示す。
図では、UserData1からUserData5がテープ23に記録されている。つまり、このとき、UserData5の後の位置XがEODになっている。この状態で、UserData6を書き込む場合、テープドライブ10は、不揮発性記憶領域が溢れない限り、BOTからEODへの移動を行わず、太い実線で囲んで示すように、UserData6を不揮発性記憶領域に書き込む。仮に、太い破線で囲んで示すように、UserData6をテープ23に書き込んでいれば、UserData6の後の位置Yが新たなEODとなるはずであるが、UserData6を不揮発性記憶領域に書き込むことにより、この新たなEODからBOTへの巻き戻し動作も行うことなく、アンマウント可能としている。
【0027】
ここで、追記動作の際に移動動作を行う場合と行わない場合とを比較して、具体的に説明する。尚、以下の説明では、UserData5までが記録されているときのEODの位置Xの長手方向の座標をPos(x)とし、Pos(x)=480(m)とする。また、1回の追記データ量を480(MB)、1データセットのデータ量を約1.6(MB)、1データセットの長さを82(mm)とすると、1回に追記されるデータの長さは約25m(=82(mm)×480(MB)/1.6(MB))となり、UserData6をテープ23に追記した後の新しいEODの位置Yの長手方向の座標をPos(y)とすると、Pos(y)=Pos(x)+25(m)となる。更に、データ転送速度を120(MB/sec)とし、テープ23の速度を8(m/sec)とする。
【0028】
まず、追記動作の際に移動動作を行う場合について説明する。
この場合、1回の追記動作に要する時間Tappendは、書込み時間Twrite、BOTからEODへの移動時間Tpos(x)、新たなEODからBOTへの移動時間Trewindを用いて、次のように表される。
Tappend=Tpos(x)+Twrite+Trewind
尚、この式では、固定値であるマウント、アンマウントの時間を除外し、変動値である上記3つの時間の和をとっている。
ここで、Twrite、Tpos(x)、Trewindは、次のような値になる。
Twrite=480(MB)/120(MB/sec)=4(sec)
Tpos(x)=480(m)/8(m/sec)=60(sec)
Trewind={480(m)+25(m)}/8(m/sec)=63.125(sec)
【0029】
また、n回目の追記動作に要する時間Tappend(n)は、次のようになる。
Tappend(n)=Tpos(x)(n)+Twrite+Trewind(n)={Pos(x)+25*(nー1)}/8+Twrite+{Pos(x)+25*n}/8
この式から、nが大きくなるほど、2つの移動時間が占める割合が高くなることが分かる。
【0030】
次に、追記動作の際に移動動作を行わない場合について説明する。
この場合、7回目の追記動作で不揮発性記憶領域が溢れるとすると、1回目の追記動作から6回目の追記動作において、移動時間はゼロである。一方、7回目の追記動作において、テープ23上の本来の位置への書込みが必要となるが、このときの追記動作に要する時間Tappendは、書込み時間Twrite、BOTからEODへの移動時間Tpos(x)、新たなEODからBOTへの移動時間Trewindを用いて、次のように表される。
Tappend=Tpos(x)+7*Twrite+Trewind
尚、この式では、固定値であるマウント、アンマウントの時間を除外し、変動値である上記3つの時間の和をとっている。
ここで、Twrite、Tpos(x)、Trewindは、次のような値になる。
Twrite=480(MB)/120(MB/sec)=4(sec)
Tpos(x)={480(m)+25(m)*6}/8(m/sec)=78.75(sec)
Trewind={480(m)+25(m)*7}/8(m/sec)=81.875(sec)
即ち、この場合、書き直しが発生する追記動作には若干時間がかかるものの、書き直しが発生しない追記動作には時間がかからない。
【0031】
その後、テープドライブ10は、テープカートリッジ20がマウントされた時に不揮発性記憶領域にデータが書き込まれていることを認識し、データをテープ23上の本来の位置に書き込む。そのために、テープカートリッジ20がアンマウントされるまではデータをバッファ12にも保持しておく。一方で、テープカートリッジ20がアンマウントされる前にテープ23上の本来の位置に書き直されたデータは、バッファ12から削除できる。また、データを書き直す前にテープカートリッジ20がアンマウントされたら、再びテープカートリッジ20がマウントされた時に不揮発性記憶領域から必要に応じてバッファ12にデータを読み出す。
【0032】
ところで、データの書き直し動作は、移動動作の中で行うことができる。
図3に、このような動作の概略について示す。
図は、不揮発性記憶領域にUserData10が保管された状態でUserData6の読出し命令を受けた場合を示している。この場合、UserData6が読み出された後、BOTへの移動(巻き戻し)命令を受けると、位置AからBOTへの移動動作で、UserData10を本来書くべき位置を通過する。ここで、位置Aから位置Bへ移動する距離と、位置Aから位置X、位置Yを経由して位置Bへ移動する距離とは、変わらない。従って、移動動作の中で、矢印50で示すように、UserData10をテープ23上の本来の位置に書き直す。尚、このような書直しの動作は、データを書き込むときの方向へのテープ媒体の移動動作において、指定された位置を通過するときに、テープ媒体上の指定された位置に書き直すことの一例である。
【0033】
この場合、不揮発性記憶領域に保管されたデータは任意の時点で読み出すことができる。
また、移動動作時に書き直し動作を行うことにより、追記動作時に不揮発性記憶領域が溢れてしまうことを抑制する。つまり、この動作は、不揮発性記憶領域の使用率に関わらず、書き直しを行うべき領域を通過する際に必ず実行する。
【0034】
次に、このような動作を実現するためのコントローラ16の機能構成について説明する。尚、以下では、不揮発性記憶領域として、カートリッジメモリ24を用いるものとして説明する。
図4は、コントローラ16の機能構成例を示したブロック図である。
図示するように、コントローラ16は、コマンド処理部41と、バッファ管理部42と、チャネル入出力部43と、カートリッジメモリ入出力部(以下、「CM入出力部」という)44と、動作信号出力部45とを備える。
【0035】
このうち、コマンド処理部41は、ホストI/F11からコマンドを受け取る。ここで、コマンドとしては、例えば、テープ23にデータを書き込むことを指示するWriteコマンド、テープ23からデータを読み出すことを指示するReadコマンド、ヘッド14がテープ23上の書込み位置や読出し位置に位置付けられるようにテープ23を移動させることを指示するSpaceコマンドやLocateコマンドがある。
バッファ管理部42は、テープ23に書き込むデータやテープ23から読み出されたデータをバッファ12に格納したり、バッファ12に格納されたデータを読み出してチャネル入出力部43やコマンド処理部41に出力したりする。
チャネル入出力部43は、バッファ管理部42がバッファ12から読み出したデータをチャネル13に出力したり、チャネル13から受け取ったデータをバッファ管理部42に出力したりする。本実施の形態では、データをテープ媒体上の指定された位置に書き直す書直し部の一例として、チャネル入出力部43を設けている。
【0036】
CM入出力部44は、カートリッジメモリ24に記憶された情報を取得し、その情報に基づく各種判断を行う。ここで、カートリッジメモリ24に記憶された情報としては、まず、ホスト30がテープドライブ10に送った最後のデータの位置を示す論理的なEOD(以下、「論理EOD」という)がある。本実施の形態において、最後のデータはテープ23に書き込まれずにカートリッジメモリ24に一時的に記憶されている場合もあるので、この論理EODは、最後のデータがテープ23に書き込まれたと仮定したときの位置であることもある。また、カートリッジメモリ24に記憶された情報としては、テープ23に実際に書き込まれた最後のデータの位置を示す物理的なEOD(以下、「物理EOD」という)や、テープ23に実際に書き込まれずに一時的に記憶されている追記データや、各追記データがテープ23に書き込まれたと仮定したときの位置の情報もある。更に、前回の移動コマンドに対して移動動作が省略されたかどうかを示す移動省略フラグもある。尚、この移動省略フラグは、移動を省略した状態にあるときに「ON」に設定され、移動を省略した状態にない場合に「OFF」に設定されるものとする。本実施の形態では、データを記憶部に書き込む書込み部の一例として、また、記憶部からデータを読み出す読出し部の一例として、CM入出力部44を設けている。
動作信号出力部45は、モータドライバ18に対して、移動動作を行うことを指示する信号を出力する。本実施の形態では、移動動作を行わないように制御する移動制御部の一例として、動作信号出力部45を設けている。
【0037】
次に、コントローラ16の動作について説明する。
図5は、コマンド処理部41が移動コマンドを受信したときのコントローラ16の動作例を示したフローチャートである。コマンド処理部41が移動コマンドを受信した旨をCM入出力部44に伝えることにより、この動作は開始する。
コントローラ16では、まず、CM入出力部44が、移動コマンドが論理EODへの移動を指示しているかどうかを判定する(ステップ401)。具体的には、移動コマンドがSpaceEODコマンドのように、EODへの移動を明示的に指示するものであれば、移動コマンドが論理EODへの移動を指示しているものと判定する。また、移動コマンドがLocateコマンドのように、絶対位置指定によるEODへの移動を指示するものであれば、カートリッジメモリ24に記憶された論理EODとLocateコマンドで指定された絶対位置とを比較し、一致すれば、移動コマンドが論理EODへの移動を指示しているものと判定する。
【0038】
その結果、移動コマンドが論理EODへの移動を指示していると判定されれば、CM入出力部44は、追記動作が続く可能性が高いので、移動動作を省略し、移動省略フラグを「ON」に設定する(ステップ402)。
一方、移動コマンドが論理EODへの移動を指示していると判定されなければ、CM入出力部44は、カートリッジメモリ24に追記データが記憶されているかどうかを判定する(ステップ403)。そして、追記データが記憶されていると判定されれば、CM入出力部44は、移動コマンドがカートリッジメモリ24内の追記データへの移動を指示しているかどうかを判定する(ステップ404)。具体的には、移動コマンドがLocateコマンドのように、絶対位置指定による特定の位置への移動を指示するものであれば、カートリッジメモリ24に記憶された物理EOD及び論理EODとLocateコマンドで指定された絶対位置とを比較し、絶対位置が物理EODと論理EODの間にあれば、移動コマンドがカートリッジメモリ24内の追記データへの移動を指示しているものと判定する。
そして、移動コマンドがカートリッジメモリ24内の追記データへの移動を指示していると判定されれば、CM入出力部44は、カートリッジメモリ24内の追記データへの上書き動作が続く可能性が高いので、移動動作を省略し、移動省略フラグを「ON」に設定する(ステップ402)。
【0039】
また、ステップ404で移動コマンドがカートリッジメモリ24内の追記データへの移動を指示していると判定されなければ、CM入出力部44は、移動コマンドによる移動動作の区間内に、カートリッジメモリ24内の追記データが書かれるテープ23上の本来の位置が含まれているかどうかを判定する(ステップ405)。具体的には、カートリッジメモリ24に記憶された各追記データがテープ23に実際に書かれる位置が、現在位置から移動コマンドで指定された位置までの間に存在するかどうかを判定する。
その結果、移動コマンドによる移動動作の区間内に、カートリッジメモリ24内の追記データが書かれるテープ23上の本来の位置が含まれていると判定されれば、その旨が動作信号出力部45及びチャネル入出力部43に伝えられ、動作信号出力部45が、モータドライバ18に対し、カートリッジメモリ24内の追記データが書かれるテープ23上の位置に移動する旨の信号を出力し(ステップ406)、チャネル入出力部43が、CM入出力部44がカートリッジメモリ24から読み出した追記データを移動後の位置に書き込む(ステップ407)。そして、CM入出力部44は、カートリッジメモリ24から追記データを消去する(ステップ408)。
【0040】
その後、カートリッジメモリ24内の追記データがテープ23上の本来の位置に書き込まれた旨が動作信号出力部45に伝えられ、動作信号出力部45が、モータドライバ18に対し、移動コマンドにより指定された位置へ移動する旨の信号を出力する(ステップ409)。そして、CM入出力部44が、カートリッジメモリ24に記憶された移動省略フラグを「OFF」に設定する(ステップ410)。
【0041】
また、ステップ403でカートリッジメモリ24に追記データが記憶されていると判定されなかった場合や、ステップ405で移動コマンドによる移動動作の区間内にカートリッジメモリ24内の追記データが書かれるテープ23上の本来の位置が含まれていると判定されなかった場合は、その旨が動作信号出力部45に伝えられ、動作信号出力部45が、モータドライバ18に対し、移動コマンドにより指定された位置へ移動する旨の信号を出力する(ステップ409)。そして、CM入出力部44が、カートリッジメモリ24に記憶された移動省略フラグを「OFF」に設定する(ステップ410)。
【0042】
図6は、コマンド処理部41が書込みコマンドを受信したときのコントローラ16の動作例を示したフローチャートである。コマンド処理部41が書込みコマンドを受信した旨をCM入出力部44に伝えることにより、この動作は開始する。
コントローラ16では、まず、CM入出力部44が、移動省略後の状態であるかどうか、つまり、移動省略フラグが「ON」に設定されているかどうかを判定する(ステップ421)。
【0043】
その結果、移動省略後の状態であれば、つまり、移動省略フラグが「ON」に設定されていれば、現在位置は、論理EODの位置又はカートリッジメモリ24内の追記データが書かれるべきテープ23上の位置であることになる。そこで、CM入出力部44は、現在位置が、カートリッジメモリ24内の追記データが書かれるべきテープ23上の位置であるかどうかを判定する(ステップ422)。そして、現在位置が、カートリッジメモリ24内の追記データが書かれるべきテープ23上の位置であると判定されれば、移動動作に続く上書き動作によってカートリッジメモリ24内の追記データの全部又は一部が上書きされることになるので、CM入出力部44は、上書きされる追記データをカートリッジメモリ24から消去する(ステップ423)。また、現在位置が、カートリッジメモリ24内の追記データが書かれるべきテープ23上の位置であると判定されなければ、そのままステップ424へ進む。
【0044】
その後、CM入出力部44は、カートリッジメモリ24に追記データを記憶するための十分な空き領域があるかどうかを判定する(ステップ424)。
そして、カートリッジメモリ24に追記データを記憶するための十分な空き領域があると判定されれば、書込みコマンドによる書込み対象の追記データをカートリッジメモリ24に追記する(ステップ425)。
【0045】
また、カートリッジメモリ24に追記データを記憶するための十分な空き領域があると判定されなければ、その旨が動作信号出力部45及びチャネル入出力部43に伝えられ、動作信号出力部45が、モータドライバ18に対し、カートリッジメモリ24内の追記データが書かれるテープ23上の位置に移動する旨の信号を出力し(ステップ426)、チャネル入出力部43が、CM入出力部44がカートリッジメモリ24から読み出した追記データを移動後の位置に書き込む(ステップ427)。そして、CM入出力部44は、カートリッジメモリ24から追記データを消去する(ステップ428)。その後、チャネル入出力部43が、書込みコマンドによる書込み対象の追記データを通常通りテープ23に書き込む(ステップ431)。そして、CM入出力部44が、カートリッジメモリ24に記憶された移動省略フラグを「OFF」に設定する(ステップ432)。
【0046】
一方、ステップ421で移動省略後の状態でなければ、つまり、移動省略フラグが「OFF」に設定されていれば、CM入出力部44は、カートリッジメモリ24に追記データが記憶されているかどうかを判定する(ステップ429)。そして、カートリッジメモリ24に追記データが記憶されていれば、CM入出力部44は、カートリッジメモリ24から追記データを消去する(ステップ430)。また、カートリッジメモリ24に追記データが記憶されていなければ、そのままステップ431へ進む。その後、その旨はチャネル入出力部43に伝えられ、チャネル入出力部43が、書込みコマンドによる書込み対象の追記データを通常通りテープ23に書き込む(ステップ431)。そして、CM入出力部44が、カートリッジメモリ24に記憶された移動省略フラグを「OFF」に設定する(ステップ432)。
【0047】
図7は、コマンド処理部41が読出しコマンドを受信したときのコントローラ16の動作例を示したフローチャートである。コマンド処理部41が読出しコマンドを受信した旨をCM入出力部44に伝えることにより、この動作は開始する。
コントローラ16では、まず、CM入出力部44が、読出しコマンドによる読出し対象のデータがカートリッジメモリ24内にあるかどうかを判定する(ステップ441)。
その結果、読出しコマンドによる読出し対象のデータがカートリッジメモリ24内にあると判定されなければ、その旨はチャネル入出力部43に伝えられ、チャネル入出力部43が、テープ23から通常通りデータを読み出す(ステップ442)。そして、データを読み出した後の現在位置がEOD(この場合は、物理EOD)であるかどうかを判定する(ステップ443)。ここで、現在位置がEODであると判定されれば、CM入出力部44は、移動省略フラグを「ON」に設定し(ステップ444)、現在位置がEODであると判定されなければ、そのまま処理を終了する。
一方、ステップ441で読出しコマンドによる読出し対象のデータがカートリッジメモリ24内にあると判定されれば、CM入出力部44は、カートリッジメモリ24内の追記データの中から読出し対象のデータを読み出し(ステップ445)、処理を終了する。
【0048】
尚、上記動作例において、図6のステップ432、図7のステップ444では、移動省略フラグを「ON」に設定しないようにしてもよい。
【0049】
以上により、本実施の形態についての説明を終了する。
このように、本実施の形態では、例えば次に追記動作が起こることが予想される移動要求に対して、移動動作を省略し、続く追記要求に対して、追記データを不揮発性記憶領域に一時的に記憶し、後でテープ23上の本来の書き込むべき位置に書き込むようにした。これにより、テープ23へのデータの書込みの際のテープ23の移動動作に要する時間を短縮することが可能となった。
【0050】
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム(装置又は機器)、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ(CD−ROM)、コンパクトディスク−リード/ライト(CD−R/W)及びDVDが含まれる。
【0051】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
【符号の説明】
【0052】
10…テープドライブ、11…ホストI/F、12…バッファ、13…チャネル、14…ヘッド、15…モータ、16…コントローラ、17…ヘッド位置制御システム、18…モータドライバ

【特許請求の範囲】
【請求項1】
テープ媒体へのデータの書込みを制御する装置であって、
前記テープ媒体上の指定された位置にヘッドを位置付けるための当該テープ媒体の移動動作が指示されても、当該指定された位置が予め定めた条件を満たしていれば、当該移動動作を行わないように制御する移動制御部と、
前記移動制御部により前記移動動作を行わないように制御された状態で前記テープ媒体へのデータの書込みが指示されると、当該データを、当該移動動作に要する時間よりも短い時間で当該書込みの準備を行うことを可能にする記憶部に、前記指定された位置に関連付けて書き込む書込み部と
を含む、装置。
【請求項2】
前記テープ媒体からの前記データの読出しが指示されても、前記記憶部から当該データを読み出す読出し部を更に含む、請求項1の装置。
【請求項3】
前記書込み部により前記記憶部に書き込まれた前記データを、前記記憶部に当該データに関連付けて記憶された前記テープ媒体上の前記指定された位置に書き直す書直し部を更に含む、請求項1又は2の装置。
【請求項4】
前記記憶部は、不揮発性を有しており、
前記書直し部は、前記書込み部により前記記憶部に書き込まれた前記データを、前記テープ媒体を含むテープカートリッジがテープドライブからアンマウントされ、再度テープドライブにマウントされた後に、前記テープ媒体上の前記指定された位置に書き直す、請求項3の装置。
【請求項5】
前記書直し部は、前記書込み部により前記記憶部に書き込まれた前記データを、前記記憶部の空き容量が予め定めた条件を満たしたときに、前記テープ媒体上の前記指定された位置に書き直す、請求項3の装置。
【請求項6】
前記書直し部は、前記書込み部により前記記憶部に書き込まれた前記データを、当該データを書き込むときの方向への前記テープ媒体の移動動作において、前記指定された位置を通過するときに、前記テープ媒体上の前記指定された位置に書き直す、請求項3の装置。
【請求項7】
テープ媒体へのデータの書込みを制御する方法であって、
前記テープ媒体上の指定された位置にヘッドを位置付けるための当該テープ媒体の移動動作が指示されても、当該指定された位置が予め定めた条件を満たしていれば、当該移動動作を省略するステップと、
前記移動動作が省略された状態で前記テープ媒体へのデータの書込みが指示されると、当該データを、当該移動動作に要する時間よりも短い時間で当該書込みの準備を行うことを可能にする記憶部に、前記指定された位置に関連付けて書き込むステップと
を含む、方法。
【請求項8】
テープ媒体へのデータの書込みを制御する方法であって、
前記テープ媒体上の第1の位置にヘッドを位置付けるための当該テープ媒体の移動動作が指示された場合に、当該移動動作を省略するステップと、
前記移動動作が省略された状態で前記テープ媒体への第1のデータの書込みが指示されると、当該第1のデータを、当該移動動作に要する時間よりも短い時間で当該書込みの準備を行うことを可能にする記憶部に、前記第1の位置に関連付けて書き込むステップと、
前記テープ媒体の先頭から前記第1の位置よりも遠くにある前記テープ媒体上の第2の位置を終端として書き込まれた第2のデータを読み出すステップと、
前記テープ媒体を前記第2の位置から巻き戻すときに、前記記憶部に書き込まれた前記第1のデータを、前記記憶部に当該第1のデータに関連付けて記憶された前記テープ媒体上の前記第1の位置に書き直すステップと
を含む、方法。
【請求項9】
テープ媒体へのデータの書込みを制御する装置としてコンピュータを機能させるプログラムであって、
前記コンピュータを、
前記テープ媒体上の指定された位置にヘッドを位置付けるための当該テープ媒体の移動動作が指示されても、当該指定された位置が予め定めた条件を満たしていれば、当該移動動作を行わないように制御する移動制御部と、
前記移動制御部により前記移動動作を行わないように制御された状態で前記テープ媒体へのデータの書込みが指示されると、当該データを、当該移動動作に要する時間よりも短い時間で当該書込みの準備を行うことを可能にする記憶部に、前記指定された位置に関連付けて書き込む書込み部と
して機能させる、プログラム。
【請求項10】
テープドライブに装着されて用いられるテープカートリッジであって、
データが書き込まれるテープ媒体と、
前記テープ媒体の指定された位置にヘッドを位置付けるための当該テープ媒体の移動動作に要する時間よりも短い時間でデータの書込みの準備を行うことを可能にし、かつ、当該移動動作が省略された状態で当該テープ媒体上の当該指定された位置への書込みが指示されたデータを記憶する記憶部と
を含む、テープカートリッジ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2011−146105(P2011−146105A)
【公開日】平成23年7月28日(2011.7.28)
【国際特許分類】
【出願番号】特願2010−7475(P2010−7475)
【出願日】平成22年1月15日(2010.1.15)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【復代理人】
【識別番号】100104880
【弁理士】
【氏名又は名称】古部 次郎
【復代理人】
【識別番号】100118201
【弁理士】
【氏名又は名称】千田 武
【復代理人】
【識別番号】100118108
【弁理士】
【氏名又は名称】久保 洋之
【Fターム(参考)】