テープ駆動制御装置およびテープ駆動制御方法
【課題】テープ上に書き込まれたファイルに対するアクセス効率を学習機能により向上させること。
【解決手段】テープ駆動制御装置1は、テープ10の走行を制御するテープ走行制御部2と、ヘッド20を制御する書き込み/読み出し制御部4と、書き込まれたファイル順にBOTからのシーク時間が登録されるシーク管理テーブル30を備える。テープ管理テーブル5には、シーク時間が未確定のファイルに対してはシーク時間が仮に登録され、その後シーク情報が確定すると確定したシーク時間が登録される。複数のファイルの読み出し要求があると、テープ走行制御部2は、シーク管理テーブル30を参照して、読み出し要求のあった複数のファイルに対してシーク時間の昇順にヘッド20がアクセスできるようにテープの走行を制御する。
【解決手段】テープ駆動制御装置1は、テープ10の走行を制御するテープ走行制御部2と、ヘッド20を制御する書き込み/読み出し制御部4と、書き込まれたファイル順にBOTからのシーク時間が登録されるシーク管理テーブル30を備える。テープ管理テーブル5には、シーク時間が未確定のファイルに対してはシーク時間が仮に登録され、その後シーク情報が確定すると確定したシーク時間が登録される。複数のファイルの読み出し要求があると、テープ走行制御部2は、シーク管理テーブル30を参照して、読み出し要求のあった複数のファイルに対してシーク時間の昇順にヘッド20がアクセスできるようにテープの走行を制御する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、磁気テープ媒体に書き込まれたファイルへのアクセスを制御するテープ駆動制御装置およびテープ駆動制御方法に関する。
【背景技術】
【0002】
磁気テープ記憶装置では、ファイルを書き込みあるいは読み出すために、テープ媒体を移動させて、テープ上の所望の位置にヘッドを位置づける。ファイルを読み出す場合は、読み出すべきファイルの先頭にテープヘッドを位置づけてから、ファイルを読み出す。ファイルにアクセスするためにファイルの先頭にテープヘッドを位置づけることをシークという。また、シーク動作によりヘッドが移動する距離をシーク距離といい、シーク距離をヘッドが移動するのに要した時間をシーク時間という。ファイルの読み出し性能を高めるためには、シーク時間を短縮することが必要である。
【0003】
LTO(Linear Tape-Open)規格が提案されるより以前のリニア記録方式では、テープ媒体上のファイルは、テープの物理的な前端(BOT:Beginning Of Tape)から終端(EOT:End Of Tape)まで、ファイル間を示すファイルマークを介して、ファイル番号の昇順に配置されていた。テープ媒体上の大量のファイルに対して、複数のファイルを読み出す要求が起こると、読み出し要求のあった順にファイルを読み出すのではなく、ファイル番号の昇順にファイルを読みだすと早く読むことができた。
【0004】
しかし、LTO規格に準拠したテープでは、データファイルは、BOTからEOTまで書き込まれると、EOTで折り返してEOTからBOTへ向かって書き込まれる。さらに、ファイルがBOTまで書き込まれると、BOTで折り返してEOTに向かって書き込まれる。テープ上にEOTからBOTへ記録されているファイルが存在すると、単にファイル番号の昇順に読み出すことでは、効率よく読み出すことはできない。
【0005】
なお、テープ媒体に対してランダムなアクセス要求があった場合に、リオーダリング手段により、リードライト処理が終了するたびに、すべてのデータの先頭位置と現在の磁気ヘッドとの位置を比較して、最も距離の短いものを選択することが公知である。また、テープがドライブ装置に装着された際に、磁気テープのデータ記憶領域の中間点に磁気ヘッドが位置するようにして、平均的なデータアクセス時間を短縮することが公知である。(特許文献1、2参照)
【0006】
【特許文献1】特開2000−48549号公報
【特許文献2】特開2004−355747号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
上記問題に鑑み、本発明は、学習機能によりファイルに対するアクセス効率を向上させることができるテープ駆動制御装置およびテープ駆動制御方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
テープ駆動制御装置は、テープ先頭位置からファイル先頭位置までのシーク時間あるいはシーク距離を含むシーク情報が、書き込まれたファイル順に登録されるシーク管理テーブルであって、前記シーク情報が確定しているシーク情報確定ファイルに対しては該確定シーク情報が登録され、前記シーク情報が確定していないシーク情報未確定ファイルに対しては当該ファイルより先に書き込まれてシーク情報が確定しているファイルのシーク情報が仮に登録され、その後前記シーク情報未確定ファイルのシーク情報が確定すると該確定シーク情報が登録されるシーク管理テーブルと、ヘッドをテープの所望の位置に位置づけ、前記ヘッドによりデータの書き込みあるいは読み出しを実行させるように、テープ走行を制御するテープ走行制御部と、を備え、前記テープ走行制御部は、離散して書き込まれた複数のファイルの読み出し要求に応じて、前記読み出し要求のある複数のファイルのシーク時間あるいはシーク距離を前記シーク管理テーブルから抽出して、前記読み出し要求のある複数のファイルに対して抽出されたシーク時間あるいはシーク距離の昇順にアクセスするようにテープの走行を制御する。
【0009】
また、テープ駆動制御方法は、前記シーク管理テーブルと前記テープ走行制御部とを備えるテープ駆動制御装置におけるテープ駆動制御方法であって、前記テープ走行制御部は、離散して書き込まれた複数のファイルの読み出し要求に応じて、前記読み出し要求のある複数のファイルのシーク時間あるいはシーク距離を前記シーク管理テーブルから抽出し、該抽出されたシーク時間あるいはシーク距離の昇順に、前記ヘッドが前記読み出し要求のある複数のファイルにアクセスするようにテープの走行を制御する。
【0010】
また、テープ駆動制御装置およびテープ駆動制御方法では、連続して書き込まれた複数のファイルの読み出し要求に応じて、ファイル番号の昇順に読み出すと好適である。
【発明の効果】
【0011】
本テープ駆動制御装置およびテープ駆動制御方法が使用するシーク管理テーブルはファイルへのシーク時間あるいはシーク距離を学習することができるので、効率的なファイルアクセスを達成することができる。
【発明を実施するための最良の形態】
【0012】
まず、EOTおよびBOTで折り返して記録されるテープ媒体上のファイルアクセス方法を説明する。なお、テープ記録装置では、テープヘッドは固定位置にあり、テープが移動してテープヘッドに対してテープ上の所望の位置を位置づける。しかし、以下の説明では、説明を簡単にするために、テープに対してテープヘッドが移動するとして説明する場合もある。
【0013】
(離散して書き込まれている複数のファイルに対するアクセス)
図1は、読み出し要求のあったファイルがテープ上に散在している場合の読み出し方法を説明する図である。図1は、物理的なテープ先端(BOT)から終端(EOT)までテープ10を展開してファイルのテープ上での位置を示す。さらに、テープヘッド20の動きとしてシーク動作および読み出し動作を示す。
【0014】
図1のファイルF♯1〜F#5の上の数字はBOTからファイル先頭までのシーク時間を示す。図1では、ファイルの先頭は、縦の二重線で示されている。各ファイルF♯1〜F♯5のシーク時間は、ファイルF♯1では1秒、ファイルF♯2では180秒、ファイルF♯3では90秒、ファイルF♯4では50秒、ファイルF♯5では110秒である。
【0015】
図1のヘッド動作Aに、ファイル番号の昇順にファイルF♯1〜F#5を読み出す場合のヘッドの動きを示す。図1のヘッド動作Bには、ファイルのシーク時間の昇順にファイルF♯1〜F#5を読み出す場合のヘッドの動きを示す。いずれも、破線の矢印は、シークによるテープヘッドの動き示し、実線の矢印は、読み出しによるヘッドの動きを示す。
【0016】
図1のヘッド動作Aに示す、ファイル番号の昇順にファイルF♯1〜F#5を読み出す場合、すべてのファイルを読み出すためのシーク時間(秒)は、おおよそ次ぎのとおりである。
1+(180−1)+(180−90)+(90−50)+(110−50)
=370
【0017】
図1のヘッド動作Bに示す、シーク時間の昇順、つまり、F#1→F#4→F#3→F#5→F#2の順に読み出せば、すべてのファイルを読み出すためのシーク時間(秒)は、およそつぎのとおりとなる。
1+(50−1)+(90−50)+(110−90)+(180−110)
=180
【0018】
図1に示す例では、ファイル番号の昇順にファイルを読み出すと、総シーク時間はほぼ370秒かかり、シーク時間の昇順にファイルを読み出すと、総シーク時間はほぼ総180秒で済む。折り返されたトラックに散在する複数のファイルへのアクセスは、BOTからのシーク時間の昇順に読めば、テープヘッドの移動距離を短くし、総シーク時間を短縮することができる。
【0019】
(連続するファイルに対するアクセス)
図2は、テープ上のバックワードトラックに連続して記録されたファイルに対するアクセス方法を説明する図である。図2も図1と同様に、テープ10はBOTからEOTまで展開して示され、ヘッド20の動きにより、テープとヘッドの相対運動を説明する。
【0020】
図2のようにテープ上のファイルに連続してアクセスする場合でも、図1の場合と同様にシーク時間の昇順に読み出すことが効率的であれば好都合である。しかしながら、図2に示すように、ファイルF♯1〜F#4がバックワードトラック、すなわちBOTからEOTへ向かう方向へ連続的に配置されている場合には、シーク時間の昇順に読むと効率的ではない。
【0021】
図2のヘッド動作Aは、シーク時間の昇順に、F#4→F#3→F#2→F#1と読む場合のヘッドの動きを示す。ヘッド動作Aでは、破線で示すヘッドのシーク動作と、実線で示すヘッドの読み出し動作とが一部オーバラップして、ヘッドの動きが効率的ではない。
【0022】
一方、図2のヘッド動作Bは、ファイル番号の昇順に、F#1→F#2→F#3→F#4と読む場合を示す。図2において、ヘッド動作Aとヘッド動作Bとを比較すると、明らかに、ファイル番号の昇順に読み出すヘッド動作Bが、より効率的である。
【0023】
また、フォワードトラックの連続したファイルに対しては、ファイル番号の昇順に読み出すのが効率的であることは知られている。さらに、フォワードトラックからバックワードトラック、あるいはバックワードトラックからフォワードトラックへ連続するファイルであっても、ファイル番号の昇順に読むと効率がよい。
【0024】
以上の考察から、テープ上に離散している複数のファイルは、シーク時間の昇順に読み出すと効率がよく、テープ上に連続する複数のファイルは、ファイル番号の昇順に読み出すと効率がよいということができる。
【0025】
テープ上に散在する複数のファイルをシーク時間の昇順に読み出すために、BOTからファイルの先頭までのシーク時間あるいはシーク距離を予め計算して記憶しておくことが考えられる。例えば、書き込まれるファイルサイズに基づいて、シーク時間あるいはシーク距離を算出して記憶しておけば、複数のファイルをシーク時間の昇順に並べることは容易である。
【0026】
しかしながら、LTO規格では、テープドライブによりデータが圧縮されてテープ媒体上に書き込む処理が行われる。さらにはテープ媒体の磁性体異常の部分にはデータを書き込まないような処理も行われる。したがって、テープ媒体に書き込まれない状態で同じファイルサイズであっても、テープ媒体に書き込まれるとファイルサイズは変化することがある。したがって、一般的にテープ媒体に書き込まれる前のファイルサイズからシーク距離したがってシーク時間を算出することはできない。
【0027】
本実施形態では、書き込まれたファイルに対するBOTからファイル先頭までのシーク時間を管理するシーク管理テーブルを備え、ファイルの書き込み時にシーク時間が測定できれば、そのシーク時間を記録する。書き込み時にシーク時間を測定できないファイルに対しては仮のシーク時間を記録しておく。その後、仮のシーク時間を有するファイルへのアクセス動作などによりシーク時間を実測する機会があれば、仮のシーク時間を真のシーク時間に補正する。このようにしてテーブルを完成させながら、最も効率のよいファイルアクセスを達成する。換言すれば、本実施形態では、テープ制御装置自ら学習したシーク時間に基づいて、効率よくファイルアクセスを行う。
【0028】
図3は、テープ上のファイルのBOTからのシーク時間を管理するシーク管理テーブルの一例である。なお、本実施形態ではシーク管理テーブルでシーク時間を管理するが、シーク時間に代えてシーク距離を管理するようにしてもよい。
【0029】
シーク管理テーブル30は、ファイル番号欄31と、シーク時間欄33と、記録方向欄35と、フィクス値欄37とを有する。ファイル番号欄31には、テープに書きこまれた順にファイル番号が記録される。シーク時間欄33には、BOTからファイルの先頭位置までヘッドを移動させるのに要するシーク時間が秒を単位として記録される。記録方向欄35には、ファイルの記録方向が記録される。ファイルがテープのBOTからEOTに向かって記録されている場合には、フォワード方向が登録される。ファイルがテープのEOTからBOTに向かって記録されている場合には、バックワード方向が登録される。フィクス値欄37は、シーク時間欄33のシーク時間が確定されたか、まだ確定されていないかを示す値が記録される。シーク時間欄33に記録されたシーク時間が実測されたたものである場合、確定値であることを示すTrueが記録される。シーク時間欄33に記録されたシーク時間が実測されたものでない場合、仮の値であることを示すFalseが記録される。
【0030】
図3のシーク管理テーブル30では、登録されたすべてのファイルのフィクス値がTrueであるので、ファイルのシーク時間が確定していることを示している。例えばファイル番号3のファイルは、シーク時間が100秒で、読み出し方向はフォワード方向である。また、ファイル番号5のファイルは、シーク時間が100秒で、読み出し方向はフォワード方向である。
【0031】
図3に示すシーク管理テーブル30をテープ駆動制御装置の半導体メモリあるいはハードディスク等の記憶装置に記憶させておくと、上位装置からの複数のファイルの読み出し要求に対応して、当該複数のファイルをシーク時間の昇順に並び替えて読み出すように制御することができる。
【0032】
次に、図4〜図6により、本実施形態のテープ駆動制御装置の一例と、シーク管理テーブルの生成過程の一例を説明する。
【0033】
図4は、テープの1トラックとテープ駆動制御装置の概要を示す図である。テープ駆動制御装置1は、テープ走行制御部2と、書き込み/読み出し制御部4と、シーク管理テーブル30を有する記憶装置3を備える。テープ走行制御部2は、テープ媒体10の送りや巻き戻しなどの走行制御を実行する。書き込み/読み出し制御部4は、テープ媒体10上へのヘッド20によるデータの書き込み/読み出しを実行する。上位装置40から複数のファイルに対して読み出し要求があると、これに応じてテープ走行制御部2は、記憶部3に格納されているシーク管理テーブルを参照して読み出し要求のあった複数のファイルへのアクセスを制御する。
【0034】
本実施形態のテープ媒体10では、新たに書き込まれる情報は、すでに書き込まれているファイルの後に、新たなファイルとして追記される。図4では、テープの1トラック上に、ファイルF♯1〜F#3がファイルの終わりを示すファイルマークFMとともに書き込まれ、ファイルF♯4〜F#6はこれから追記される状態にある。
【0035】
テープ走行制御部2により、テープ媒体がBOTからファイルF♯3の終端を示すファイルマークFMの次の書き込み位置までシークされる。このとき、シーク時間は150秒であることが測定される。ヘッド20は、テープ媒体10に対してシーク位置からファイルF♯4を書き込む。ファイルF♯4への書き込みが終了すると、ファイルマークFMを書き込んだ後、引き続きファイルF♯5を書きこみ、同様にファイルF♯6を書き込む。
【0036】
図5は、図4に示すファイルの追記時にシーク管理テーブルに記録されるデータを示す図である。ファイルF♯4の追記以前には、すでにファイル番号30までのデータが格納されている。例えば、ファイルF♯3のシーク時間は100秒、記録方向はフォワード、フィクス値はTrueとして登録されている。
【0037】
ファイルF♯4の追記の結果、ファイル番号4に対応して、シーク時間欄33には、実測されたシーク時間である150秒が記録される。ファイル番号4のシーク時間150秒は、ファイル番号3のシーク時間100よりも長い。したがって、ファイル番号4の記録方向は、ファイル番号3の記録方向と同じ方向であると判断される。記録方向欄35には、ファイル番号3と同じフォワードが記録される。フィクス値欄37には、ファイル番号4のシーク時間150秒は確定であるので、Trueが記録される。
【0038】
ファイル番号4に引き続き、ファイルF♯5、ファイルF♯6のシークデータがファイル番号5、6に記録される。しかし、ファイルF♯5、ファイルF♯6は、ファイルF♯4に引き続き書き込まれるので、それぞれのシーク時間は不明である。この場合、ファイル番号5、6に対応するシーク時間欄33には、それぞれ仮のシーク時間としてファイル番号4と同じシーク時間150秒が記録される。また、ファイル番号5、6に対応する記録方向欄35にも、仮の方向としてファイル番号4と同じ方向が記録される。そして、フィクス値欄には、ファイル番号5、6について未確定であることを示すFalseが登録されれる。
【0039】
図6は、図5のシーク管理テーブルの補正の一例を示す図である。図5のシーク管理テーブル30の生成後、図4のファイルF♯5に対する読み出し要求があったとする。その結果、ヘッド20がBOTからファイルF♯5の先頭にシークされる。シーク時間は実測値で160秒である。
【0040】
図6のシーク管理テーブル30に示すように、ファイル番号5のシーク時間欄37は、150秒から160秒へ変更される。ファイル番号5のシーク時間160秒は、ファイル番号4のシーク時間150秒より長いので、記録方向は、フォワードのままである。ファイル番号5のシーク時間が実測され確定するので、ファイル番号5のフィクス値は、Trueに変化する。
【0041】
ファイルF♯6については、シーク時間が確定していないので、フィクス値はFalseのままである。しかしながら、ファイルF♯5のシーク時間が160秒で確定したので、ファイルF♯6のシーク時間も160秒に更新する。なお、方向は以前のままフォワードである。
【0042】
図6は、特定のファイルがBOTからシークされて読み出されると。特定のファイルに対するシーク時間が求まり、それによりシーク管理テーブルの仮のデータが補正され、特定のファイルに関するシークデータが確定する状態を示している。同様に、仮のシーク時間をもつファイルが、その先頭位置からBOTまで巻き戻しされた場合でも、シーク時間は決定される。したがって、特定のファイルの先頭位置からBOTまで巻き戻しがあったときも、当該特定ファイルのシーク時間は確定し、その結果記録方向も確定する。これにより、シーク管理テーブルの仮のデータが補正され、当該特定ファイルに対応するフィクス値はTrueに変更される。
【0043】
図7〜図9は、シーク管理テーブルの補正の他の例を説明する図である。図7は、ファイルF♯10からファイルF♯13まで連続して追記された後、ファイルF♯12にアクセスされた状態を示す図である。図8は、ファイルF♯10からファイルF♯13までの追記が終了した時点でのシーク管理テーブル30を示す図である。図9は、ファイルF♯12にアクセスされて補正されたシーク管理テーブルを示す図である。
【0044】
まず、ファイルF♯10からファイルF♯13まで連続して追記される場合、先頭のファイルF♯10については、BOTからファイルF♯10の書き込み位置までシークされる。このとき、ファイルF♯10のシーク時間は実際に測定され、測定結果は170秒であった。したがって、図8のシーク管理テーブル30には、ファイル番号10に対応するシーク時間欄33に170が記録される。記録方向欄35には、ファイルF♯9(図示せず)のシーク時間と比較して長いのでフォワードが記録される。シーク時間は確定しているので、フィクス値欄37には、Trueが記録される。
【0045】
しかしながら、ファイルF♯11からファイルF♯13は連続的に追記されているので、シーク時間は確定しない。したがって、ファイルF♯10と同じシーク時間と記録方向をシーク管理テーブル30に仮に記録して、フィクス値欄37は、Falseとしておく。
【0046】
次に、図7に示すように、ファイルF♯12の読み出し要求があり、テープヘッドがBOTからファイルF♯12の先頭までシークされる。このとき、シーク時間は150秒であった。したがって、図8のテーブルのファイル番号12に対応するシーク時間欄には150秒が登録される。また、ファイルF♯12のシーク時間150秒は、ファイルF♯10のシーク時間170秒より短いので、折り返しがあると判断できる。したがって、記録方向欄35にはバックワードと記録される。ファイル番号12のシーク時間が確定したので、フィクス値欄37は、Trueに変化する。補正されたシーク管理テーブル30は、図9に示すとおり、ファイル番号12に対応する行がTrueとなっている。
【0047】
ファイルF♯12の後続のファイルF♯13は、ファイルF♯12と同じシーク時間、記録方向に補正する。しかし、ファイルF♯13のシーク時間と方向は確定したものではないので、フィクス値は、Falseのままである。
【0048】
ファイルF♯11については、図9のファイル番号12のフィクス値がFalseであることから分るように、今回は補正されない。この後ファイルF♯11にアクセスされる場合があると、シーク時間が確定し、補正されることになる。
【0049】
なお、図7から分るように、ファイルF♯11のシーク時間が求まるとすれば、ファイルF♯10のシーク時間より長くなる可能性がある。したがって、実際にはファイルF♯11はバックワードに書き込まれているにも関わらず、シーク管理テーブル30上では、記録方向はフォワードとして登録されることになる。すなわち、ファイル番号11に対応するフィクス値がTrueとなっても、方向はフォワードのままである。しかしながら、シーク管理テーブル30は、ファイルに対するアクセス効率を上げることが目的である。したがって、シーク管理テーブル30に登録さている記録方向が実際のテープでの方向と異なっていても、アクセス効率があがれば差し支えない。
【0050】
上述の実施形態では、BOTからシークされる場合について説明した。テープ上の任意のファイルをランダムにアクセスするシステムでは、BOTではない位置からファイルの先頭位置にシークする場合も多い。図10,11を参照して、BOTではない位置からファイルの先頭位置にシークする場合のシーク管理テーブルの補正方法を説明する。
【0051】
図10(a)〜(c)は、フォワードトラックにあるファイルF♯aからファイルF♯bへアクセスする時のシーク管理テーブルの補正の一例を示す図である。
【0052】
図10(a)に示すように、テープ10のフォワードトラックには、ファイルF♯aが書き込まれ、その後ファイルF♯bが書き込まれている。また、図10(b)のシーク管理テーブル30から分るように、ファイルF♯aのシーク時間は60秒で確定している。しかし、ファイルF♯bのシーク時間の欄にはファイルF♯aのシーク時間である60秒が仮に格納されており、フィクス値がFalseとなっている。
【0053】
図10(a)に示すように、ヘッド20は、ファイルF♯aの先頭位置にある。次いで、ファイルF♯bの読み出し要求に応じて、ヘッド20はファイルF♯aの先頭位置からファイルF♯bの先頭位置までシークする。このシーク時間が20秒であったとする。ここで、図10(b)のシーク管理テーブル30に格納されている方向情報を参照すると、方向情報の欄35にはファイルF♯aとF♯bはともに方向がフォワードであるとされている。したがって、ファイルF♯bのBOTからのシーク時間は、60秒+20秒の加算により計算され、80秒となる。
【0054】
この結果、図10(c)に示すように、シーク管理テーブル30のファイル番号bのシーク時間の欄33は、80秒に変更される。しかしながら、この場合のシーク時間80秒は、実測値ではないので、ファイル番号bのフィクス値の欄37はTrueではなく、Falseが維持される。ファイルF♯bBOTからのシーク時間は確定値ではないが、実際の値に近いと考えられる。したがって、ファイルF♯bのBOTからのシーク時間としてこのフィクス値80秒を使用することで、ファイルのアクセスを効率化することができる。なお、ファイルF♯bのBOTからのシーク時間が実測されると、シーク時間管理テーブル30のシーク時間の欄には実測値が格納され、フィクス値はTrueに変更される。
【0055】
図11(a)〜(c)は、バックワードトラックにあるファイルF♯cからファイルF♯dへアクセスする時のシーク管理テーブルの補正の一例を示す図である。
【0056】
図11(a)に示すように、テープ10のバックワードトラックには、ファイルF♯cが書き込まれ、その後ファイルF♯dが書き込まれている。また、図11(b)のシーク管理テーブル30から分るように、ファイルF♯cのシーク時間は100秒で確定している。しかし、ファイルF♯dのシーク時間の欄にはファイルF♯cのシーク時間である100秒が仮に格納されており、フィクス値がFalseとなっている。
【0057】
図11(a)に示すように、ヘッド20は、ファイルF♯cの先頭位置にある。次いで、ファイルF♯dの読み出し要求に応じて、ヘッド20はファイルF♯cの先頭位置からファイルF♯dの先頭位置までシークする。このシーク時間が70秒であったとする。図11(b)のシーク管理テーブル30の方向欄35を参照すれば、ファイルF♯cとF♯dはともに方向がバックワードであることがわかる。したがって、ファイルF♯dのBOTからのシーク時間は、100秒−70秒と減算により計算され、30秒となる。
【0058】
この結果、図11(c)に示すように、シーク管理テーブル30のファイル番号dのシーク時間の欄33は、30秒に変更される。しかしながら、この場合のシーク時間30秒は、実測値ではないので、ファイル番号aのフィクス値の欄37はTrueではなく、Falseが維持される。ファイルF♯dのBOTからのシーク時間は確定していないが、実際の値に近いと考えられる。したがって、ファイルF♯bおよびファイルF♯dのBOTからのシーク時間としてこのフィクス値30秒を使用することで、ファイルのアクセスを効率化することができる。なお、ファイルF♯dのBOTからのシーク時間が実測されると、シーク時間管理テーブル30のシーク時間の欄には実測値が格納され、フィクス値はTrueに変更される。
【0059】
シーク時間管理テーブルを用いるとさらに効率的なファイルの読み出しを行うことができる。例えば、テープ上のバックワードトラックに配置されているファイルを昇順にとびとびに、例えば1つおきに、読むような場合、シーク時間管理テーブルを用いると、どのように読み出すのが効率的かを決定することができる。
【0060】
図12は、バックワードトラックに連続して配置されたファイルF♯21〜F♯26ファイルのうち、ファイルF#21、F#23、F#25を読み出す場合を説明する図である。なお、図12のFMは、ファイルの終わりを示すファイルマークである。ファイルアクセスプランCは、ファイルのBOTからのシーク時間の昇順に読み出す場合を示し、ファイルアクセスプランDは、ファイル番号の昇順に読み出す場合を示す。
【0061】
図12の実線で示すファイルを読む時間は、ともに同一である。したがって、図12の破線で示すシーク時間を比較することにより、アクセスプランC、Dのいずれが効率的な読み出し方法であるかが決定する。
【0062】
図12では、ファイルF♯n(1≦n≦6)のシーク時間をS♯nで示す。シーク時間S♯nは、BOTからファイルF♯nの先頭までのシーク時間である。なおシーク時間に代えてシーク距離を用いてもよい。
【0063】
アクセスプランCのシーク時間の合計は、
S♯25+(S♯23−S♯26)+(S♯21−S♯24)
となる。ここで、(S♯23−S♯26)の項は、ヘッド20が、ファイルF♯25、F♯24、F♯23上を移動する時間を表している。(S♯21−S♯24)の項は、ヘッド20が、ファイルF♯23、F♯22、F♯21上を移動する時間を表している。
【0064】
アクセスプランDのシーク時間の合計は、
S♯21+(S♯22−S♯23)+(S♯24−S♯25)
となる。ここで、(S♯22−S♯23)の項は、ヘッド20が、ファイルF♯22上を移動する時間を表している。(S♯21−S♯24)の項は、ヘッド20が、ファイルF♯24上を移動する時間を表している。
【0065】
したがって、読みたいファイルの直後にあるファイルのシーク時間がシーク時間管理テーブルにフィクス値として格納されていれば、ファイルアクセスプランC、Dのシーク時間の合計は求まる。したがって、ファイルアクセスプランC、Dのシーク時間の合計を比較することにより、より効率的な読み出し方法を決定することができる。
【0066】
以上のように、本実施形態では、シーク時間は、ファイルの書き込みあるいは読み出しのためのシーク動作、あるいは巻き戻し動作の結果により学習され、学習の結果シーク管理テーブルは完全なものとなってゆく。したがって、予めシーク時間を算出して完全なシーク管理テーブルをもつ必要はない。
【0067】
なお、シーク管理テーブルから分るように、確定していないシーク時間であっても仮のシーク時間が記録されている。確定していないファイルをアクセスする場合は、仮のシーク時間を使用することになる。同一のシーク時間をもつ離散した複数のファイルにアクセスする必要がある場合には、記録方向がフォワードであれば、ファイル番号が小さいほうをシーク時間が短いと判断することができる。また、記録方向がバックワードであれば、ファイル番号が大きいほうをシーク時間が短いと判断することができる。
【0068】
また、連続して書き込まれているファイルにアクセスする場合は、記録方向に関係なく、ファイル番号の昇順に読めばよい。
【0069】
したがって、ファイルが離散して配置されている場合は、ファイルのシーク時間の昇順にアクセスし、ファイルが連続して配置されている場合は、ファイルのシーク時間の昇順にアクセスするようにすれば、効率のよいファイルアクセスを達成することができる。さらに、シーク管理テーブルを用いてファイルアクセスプランを評価することができるので、さらに効率のよいファイルアクセスを行うことができる。
【図面の簡単な説明】
【0070】
【図1】テープ上に折り返して記録されたファイルの読み出し方法を説明する図である。
【図2】テープ上のバックワード方向に連続して記録されたファイルの読み出し方法を説明する図である。
【図3】一実施形態のシーク管理テーブルを説明する図である。
【図4】一実施形態のテープ駆動制御装置を説明する図である。
【図5】ファイルの追記の際にシーク情報が登録されたシーク管理テーブルの一例を示す図である。
【図6】図5のシーク管理テーブルの補正の一例を示す図である。
【図7】シーク管理テーブルの補正を引き起こすファイルの読み出しを説明する図である。
【図8】図7のファイル読み出し前のシーク管理テーブルの一例を示す図である。
【図9】図7のファイル読み出し後のシーク管理テーブルの一例を示す図である。
【図10】(a)は、フォワードトラック上で、あるファイルから他のファイルへシークする一例を示す図であり、(b)は、一方のファイルのシーク時間が確定しているときのファイル管理テーブルの一例を示す図であり、(c)は、一方のファイルから他のファイルへシークした後のファイル管理テーブルの一例を示す図である。
【図11】(a)は、バックワードトラック上で、あるファイルから他のファイルへシークする一例を示す図であり、(b)は、一方のファイルのシーク時間が確定しているときのファイル管理テーブルの一例を示す図であり、(c)は、一方のファイルから他のファイルへシークした後のファイル管理テーブルの一例を示す図である。
【図12】バックワードトラックに連続して配置されたファイルのうち、1つおきに配置されたファイルの効率的な読み出し方法の決定を説明する図である。
【符号の説明】
【0071】
10 テープ媒体
20 ヘッド
30 シーク管理テーブル
1 テーク駆動制御装置
2 テープ走行制御部
3 記憶部
4 書き込み/読み出し制御部
【技術分野】
【0001】
本発明は、磁気テープ媒体に書き込まれたファイルへのアクセスを制御するテープ駆動制御装置およびテープ駆動制御方法に関する。
【背景技術】
【0002】
磁気テープ記憶装置では、ファイルを書き込みあるいは読み出すために、テープ媒体を移動させて、テープ上の所望の位置にヘッドを位置づける。ファイルを読み出す場合は、読み出すべきファイルの先頭にテープヘッドを位置づけてから、ファイルを読み出す。ファイルにアクセスするためにファイルの先頭にテープヘッドを位置づけることをシークという。また、シーク動作によりヘッドが移動する距離をシーク距離といい、シーク距離をヘッドが移動するのに要した時間をシーク時間という。ファイルの読み出し性能を高めるためには、シーク時間を短縮することが必要である。
【0003】
LTO(Linear Tape-Open)規格が提案されるより以前のリニア記録方式では、テープ媒体上のファイルは、テープの物理的な前端(BOT:Beginning Of Tape)から終端(EOT:End Of Tape)まで、ファイル間を示すファイルマークを介して、ファイル番号の昇順に配置されていた。テープ媒体上の大量のファイルに対して、複数のファイルを読み出す要求が起こると、読み出し要求のあった順にファイルを読み出すのではなく、ファイル番号の昇順にファイルを読みだすと早く読むことができた。
【0004】
しかし、LTO規格に準拠したテープでは、データファイルは、BOTからEOTまで書き込まれると、EOTで折り返してEOTからBOTへ向かって書き込まれる。さらに、ファイルがBOTまで書き込まれると、BOTで折り返してEOTに向かって書き込まれる。テープ上にEOTからBOTへ記録されているファイルが存在すると、単にファイル番号の昇順に読み出すことでは、効率よく読み出すことはできない。
【0005】
なお、テープ媒体に対してランダムなアクセス要求があった場合に、リオーダリング手段により、リードライト処理が終了するたびに、すべてのデータの先頭位置と現在の磁気ヘッドとの位置を比較して、最も距離の短いものを選択することが公知である。また、テープがドライブ装置に装着された際に、磁気テープのデータ記憶領域の中間点に磁気ヘッドが位置するようにして、平均的なデータアクセス時間を短縮することが公知である。(特許文献1、2参照)
【0006】
【特許文献1】特開2000−48549号公報
【特許文献2】特開2004−355747号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
上記問題に鑑み、本発明は、学習機能によりファイルに対するアクセス効率を向上させることができるテープ駆動制御装置およびテープ駆動制御方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
テープ駆動制御装置は、テープ先頭位置からファイル先頭位置までのシーク時間あるいはシーク距離を含むシーク情報が、書き込まれたファイル順に登録されるシーク管理テーブルであって、前記シーク情報が確定しているシーク情報確定ファイルに対しては該確定シーク情報が登録され、前記シーク情報が確定していないシーク情報未確定ファイルに対しては当該ファイルより先に書き込まれてシーク情報が確定しているファイルのシーク情報が仮に登録され、その後前記シーク情報未確定ファイルのシーク情報が確定すると該確定シーク情報が登録されるシーク管理テーブルと、ヘッドをテープの所望の位置に位置づけ、前記ヘッドによりデータの書き込みあるいは読み出しを実行させるように、テープ走行を制御するテープ走行制御部と、を備え、前記テープ走行制御部は、離散して書き込まれた複数のファイルの読み出し要求に応じて、前記読み出し要求のある複数のファイルのシーク時間あるいはシーク距離を前記シーク管理テーブルから抽出して、前記読み出し要求のある複数のファイルに対して抽出されたシーク時間あるいはシーク距離の昇順にアクセスするようにテープの走行を制御する。
【0009】
また、テープ駆動制御方法は、前記シーク管理テーブルと前記テープ走行制御部とを備えるテープ駆動制御装置におけるテープ駆動制御方法であって、前記テープ走行制御部は、離散して書き込まれた複数のファイルの読み出し要求に応じて、前記読み出し要求のある複数のファイルのシーク時間あるいはシーク距離を前記シーク管理テーブルから抽出し、該抽出されたシーク時間あるいはシーク距離の昇順に、前記ヘッドが前記読み出し要求のある複数のファイルにアクセスするようにテープの走行を制御する。
【0010】
また、テープ駆動制御装置およびテープ駆動制御方法では、連続して書き込まれた複数のファイルの読み出し要求に応じて、ファイル番号の昇順に読み出すと好適である。
【発明の効果】
【0011】
本テープ駆動制御装置およびテープ駆動制御方法が使用するシーク管理テーブルはファイルへのシーク時間あるいはシーク距離を学習することができるので、効率的なファイルアクセスを達成することができる。
【発明を実施するための最良の形態】
【0012】
まず、EOTおよびBOTで折り返して記録されるテープ媒体上のファイルアクセス方法を説明する。なお、テープ記録装置では、テープヘッドは固定位置にあり、テープが移動してテープヘッドに対してテープ上の所望の位置を位置づける。しかし、以下の説明では、説明を簡単にするために、テープに対してテープヘッドが移動するとして説明する場合もある。
【0013】
(離散して書き込まれている複数のファイルに対するアクセス)
図1は、読み出し要求のあったファイルがテープ上に散在している場合の読み出し方法を説明する図である。図1は、物理的なテープ先端(BOT)から終端(EOT)までテープ10を展開してファイルのテープ上での位置を示す。さらに、テープヘッド20の動きとしてシーク動作および読み出し動作を示す。
【0014】
図1のファイルF♯1〜F#5の上の数字はBOTからファイル先頭までのシーク時間を示す。図1では、ファイルの先頭は、縦の二重線で示されている。各ファイルF♯1〜F♯5のシーク時間は、ファイルF♯1では1秒、ファイルF♯2では180秒、ファイルF♯3では90秒、ファイルF♯4では50秒、ファイルF♯5では110秒である。
【0015】
図1のヘッド動作Aに、ファイル番号の昇順にファイルF♯1〜F#5を読み出す場合のヘッドの動きを示す。図1のヘッド動作Bには、ファイルのシーク時間の昇順にファイルF♯1〜F#5を読み出す場合のヘッドの動きを示す。いずれも、破線の矢印は、シークによるテープヘッドの動き示し、実線の矢印は、読み出しによるヘッドの動きを示す。
【0016】
図1のヘッド動作Aに示す、ファイル番号の昇順にファイルF♯1〜F#5を読み出す場合、すべてのファイルを読み出すためのシーク時間(秒)は、おおよそ次ぎのとおりである。
1+(180−1)+(180−90)+(90−50)+(110−50)
=370
【0017】
図1のヘッド動作Bに示す、シーク時間の昇順、つまり、F#1→F#4→F#3→F#5→F#2の順に読み出せば、すべてのファイルを読み出すためのシーク時間(秒)は、およそつぎのとおりとなる。
1+(50−1)+(90−50)+(110−90)+(180−110)
=180
【0018】
図1に示す例では、ファイル番号の昇順にファイルを読み出すと、総シーク時間はほぼ370秒かかり、シーク時間の昇順にファイルを読み出すと、総シーク時間はほぼ総180秒で済む。折り返されたトラックに散在する複数のファイルへのアクセスは、BOTからのシーク時間の昇順に読めば、テープヘッドの移動距離を短くし、総シーク時間を短縮することができる。
【0019】
(連続するファイルに対するアクセス)
図2は、テープ上のバックワードトラックに連続して記録されたファイルに対するアクセス方法を説明する図である。図2も図1と同様に、テープ10はBOTからEOTまで展開して示され、ヘッド20の動きにより、テープとヘッドの相対運動を説明する。
【0020】
図2のようにテープ上のファイルに連続してアクセスする場合でも、図1の場合と同様にシーク時間の昇順に読み出すことが効率的であれば好都合である。しかしながら、図2に示すように、ファイルF♯1〜F#4がバックワードトラック、すなわちBOTからEOTへ向かう方向へ連続的に配置されている場合には、シーク時間の昇順に読むと効率的ではない。
【0021】
図2のヘッド動作Aは、シーク時間の昇順に、F#4→F#3→F#2→F#1と読む場合のヘッドの動きを示す。ヘッド動作Aでは、破線で示すヘッドのシーク動作と、実線で示すヘッドの読み出し動作とが一部オーバラップして、ヘッドの動きが効率的ではない。
【0022】
一方、図2のヘッド動作Bは、ファイル番号の昇順に、F#1→F#2→F#3→F#4と読む場合を示す。図2において、ヘッド動作Aとヘッド動作Bとを比較すると、明らかに、ファイル番号の昇順に読み出すヘッド動作Bが、より効率的である。
【0023】
また、フォワードトラックの連続したファイルに対しては、ファイル番号の昇順に読み出すのが効率的であることは知られている。さらに、フォワードトラックからバックワードトラック、あるいはバックワードトラックからフォワードトラックへ連続するファイルであっても、ファイル番号の昇順に読むと効率がよい。
【0024】
以上の考察から、テープ上に離散している複数のファイルは、シーク時間の昇順に読み出すと効率がよく、テープ上に連続する複数のファイルは、ファイル番号の昇順に読み出すと効率がよいということができる。
【0025】
テープ上に散在する複数のファイルをシーク時間の昇順に読み出すために、BOTからファイルの先頭までのシーク時間あるいはシーク距離を予め計算して記憶しておくことが考えられる。例えば、書き込まれるファイルサイズに基づいて、シーク時間あるいはシーク距離を算出して記憶しておけば、複数のファイルをシーク時間の昇順に並べることは容易である。
【0026】
しかしながら、LTO規格では、テープドライブによりデータが圧縮されてテープ媒体上に書き込む処理が行われる。さらにはテープ媒体の磁性体異常の部分にはデータを書き込まないような処理も行われる。したがって、テープ媒体に書き込まれない状態で同じファイルサイズであっても、テープ媒体に書き込まれるとファイルサイズは変化することがある。したがって、一般的にテープ媒体に書き込まれる前のファイルサイズからシーク距離したがってシーク時間を算出することはできない。
【0027】
本実施形態では、書き込まれたファイルに対するBOTからファイル先頭までのシーク時間を管理するシーク管理テーブルを備え、ファイルの書き込み時にシーク時間が測定できれば、そのシーク時間を記録する。書き込み時にシーク時間を測定できないファイルに対しては仮のシーク時間を記録しておく。その後、仮のシーク時間を有するファイルへのアクセス動作などによりシーク時間を実測する機会があれば、仮のシーク時間を真のシーク時間に補正する。このようにしてテーブルを完成させながら、最も効率のよいファイルアクセスを達成する。換言すれば、本実施形態では、テープ制御装置自ら学習したシーク時間に基づいて、効率よくファイルアクセスを行う。
【0028】
図3は、テープ上のファイルのBOTからのシーク時間を管理するシーク管理テーブルの一例である。なお、本実施形態ではシーク管理テーブルでシーク時間を管理するが、シーク時間に代えてシーク距離を管理するようにしてもよい。
【0029】
シーク管理テーブル30は、ファイル番号欄31と、シーク時間欄33と、記録方向欄35と、フィクス値欄37とを有する。ファイル番号欄31には、テープに書きこまれた順にファイル番号が記録される。シーク時間欄33には、BOTからファイルの先頭位置までヘッドを移動させるのに要するシーク時間が秒を単位として記録される。記録方向欄35には、ファイルの記録方向が記録される。ファイルがテープのBOTからEOTに向かって記録されている場合には、フォワード方向が登録される。ファイルがテープのEOTからBOTに向かって記録されている場合には、バックワード方向が登録される。フィクス値欄37は、シーク時間欄33のシーク時間が確定されたか、まだ確定されていないかを示す値が記録される。シーク時間欄33に記録されたシーク時間が実測されたたものである場合、確定値であることを示すTrueが記録される。シーク時間欄33に記録されたシーク時間が実測されたものでない場合、仮の値であることを示すFalseが記録される。
【0030】
図3のシーク管理テーブル30では、登録されたすべてのファイルのフィクス値がTrueであるので、ファイルのシーク時間が確定していることを示している。例えばファイル番号3のファイルは、シーク時間が100秒で、読み出し方向はフォワード方向である。また、ファイル番号5のファイルは、シーク時間が100秒で、読み出し方向はフォワード方向である。
【0031】
図3に示すシーク管理テーブル30をテープ駆動制御装置の半導体メモリあるいはハードディスク等の記憶装置に記憶させておくと、上位装置からの複数のファイルの読み出し要求に対応して、当該複数のファイルをシーク時間の昇順に並び替えて読み出すように制御することができる。
【0032】
次に、図4〜図6により、本実施形態のテープ駆動制御装置の一例と、シーク管理テーブルの生成過程の一例を説明する。
【0033】
図4は、テープの1トラックとテープ駆動制御装置の概要を示す図である。テープ駆動制御装置1は、テープ走行制御部2と、書き込み/読み出し制御部4と、シーク管理テーブル30を有する記憶装置3を備える。テープ走行制御部2は、テープ媒体10の送りや巻き戻しなどの走行制御を実行する。書き込み/読み出し制御部4は、テープ媒体10上へのヘッド20によるデータの書き込み/読み出しを実行する。上位装置40から複数のファイルに対して読み出し要求があると、これに応じてテープ走行制御部2は、記憶部3に格納されているシーク管理テーブルを参照して読み出し要求のあった複数のファイルへのアクセスを制御する。
【0034】
本実施形態のテープ媒体10では、新たに書き込まれる情報は、すでに書き込まれているファイルの後に、新たなファイルとして追記される。図4では、テープの1トラック上に、ファイルF♯1〜F#3がファイルの終わりを示すファイルマークFMとともに書き込まれ、ファイルF♯4〜F#6はこれから追記される状態にある。
【0035】
テープ走行制御部2により、テープ媒体がBOTからファイルF♯3の終端を示すファイルマークFMの次の書き込み位置までシークされる。このとき、シーク時間は150秒であることが測定される。ヘッド20は、テープ媒体10に対してシーク位置からファイルF♯4を書き込む。ファイルF♯4への書き込みが終了すると、ファイルマークFMを書き込んだ後、引き続きファイルF♯5を書きこみ、同様にファイルF♯6を書き込む。
【0036】
図5は、図4に示すファイルの追記時にシーク管理テーブルに記録されるデータを示す図である。ファイルF♯4の追記以前には、すでにファイル番号30までのデータが格納されている。例えば、ファイルF♯3のシーク時間は100秒、記録方向はフォワード、フィクス値はTrueとして登録されている。
【0037】
ファイルF♯4の追記の結果、ファイル番号4に対応して、シーク時間欄33には、実測されたシーク時間である150秒が記録される。ファイル番号4のシーク時間150秒は、ファイル番号3のシーク時間100よりも長い。したがって、ファイル番号4の記録方向は、ファイル番号3の記録方向と同じ方向であると判断される。記録方向欄35には、ファイル番号3と同じフォワードが記録される。フィクス値欄37には、ファイル番号4のシーク時間150秒は確定であるので、Trueが記録される。
【0038】
ファイル番号4に引き続き、ファイルF♯5、ファイルF♯6のシークデータがファイル番号5、6に記録される。しかし、ファイルF♯5、ファイルF♯6は、ファイルF♯4に引き続き書き込まれるので、それぞれのシーク時間は不明である。この場合、ファイル番号5、6に対応するシーク時間欄33には、それぞれ仮のシーク時間としてファイル番号4と同じシーク時間150秒が記録される。また、ファイル番号5、6に対応する記録方向欄35にも、仮の方向としてファイル番号4と同じ方向が記録される。そして、フィクス値欄には、ファイル番号5、6について未確定であることを示すFalseが登録されれる。
【0039】
図6は、図5のシーク管理テーブルの補正の一例を示す図である。図5のシーク管理テーブル30の生成後、図4のファイルF♯5に対する読み出し要求があったとする。その結果、ヘッド20がBOTからファイルF♯5の先頭にシークされる。シーク時間は実測値で160秒である。
【0040】
図6のシーク管理テーブル30に示すように、ファイル番号5のシーク時間欄37は、150秒から160秒へ変更される。ファイル番号5のシーク時間160秒は、ファイル番号4のシーク時間150秒より長いので、記録方向は、フォワードのままである。ファイル番号5のシーク時間が実測され確定するので、ファイル番号5のフィクス値は、Trueに変化する。
【0041】
ファイルF♯6については、シーク時間が確定していないので、フィクス値はFalseのままである。しかしながら、ファイルF♯5のシーク時間が160秒で確定したので、ファイルF♯6のシーク時間も160秒に更新する。なお、方向は以前のままフォワードである。
【0042】
図6は、特定のファイルがBOTからシークされて読み出されると。特定のファイルに対するシーク時間が求まり、それによりシーク管理テーブルの仮のデータが補正され、特定のファイルに関するシークデータが確定する状態を示している。同様に、仮のシーク時間をもつファイルが、その先頭位置からBOTまで巻き戻しされた場合でも、シーク時間は決定される。したがって、特定のファイルの先頭位置からBOTまで巻き戻しがあったときも、当該特定ファイルのシーク時間は確定し、その結果記録方向も確定する。これにより、シーク管理テーブルの仮のデータが補正され、当該特定ファイルに対応するフィクス値はTrueに変更される。
【0043】
図7〜図9は、シーク管理テーブルの補正の他の例を説明する図である。図7は、ファイルF♯10からファイルF♯13まで連続して追記された後、ファイルF♯12にアクセスされた状態を示す図である。図8は、ファイルF♯10からファイルF♯13までの追記が終了した時点でのシーク管理テーブル30を示す図である。図9は、ファイルF♯12にアクセスされて補正されたシーク管理テーブルを示す図である。
【0044】
まず、ファイルF♯10からファイルF♯13まで連続して追記される場合、先頭のファイルF♯10については、BOTからファイルF♯10の書き込み位置までシークされる。このとき、ファイルF♯10のシーク時間は実際に測定され、測定結果は170秒であった。したがって、図8のシーク管理テーブル30には、ファイル番号10に対応するシーク時間欄33に170が記録される。記録方向欄35には、ファイルF♯9(図示せず)のシーク時間と比較して長いのでフォワードが記録される。シーク時間は確定しているので、フィクス値欄37には、Trueが記録される。
【0045】
しかしながら、ファイルF♯11からファイルF♯13は連続的に追記されているので、シーク時間は確定しない。したがって、ファイルF♯10と同じシーク時間と記録方向をシーク管理テーブル30に仮に記録して、フィクス値欄37は、Falseとしておく。
【0046】
次に、図7に示すように、ファイルF♯12の読み出し要求があり、テープヘッドがBOTからファイルF♯12の先頭までシークされる。このとき、シーク時間は150秒であった。したがって、図8のテーブルのファイル番号12に対応するシーク時間欄には150秒が登録される。また、ファイルF♯12のシーク時間150秒は、ファイルF♯10のシーク時間170秒より短いので、折り返しがあると判断できる。したがって、記録方向欄35にはバックワードと記録される。ファイル番号12のシーク時間が確定したので、フィクス値欄37は、Trueに変化する。補正されたシーク管理テーブル30は、図9に示すとおり、ファイル番号12に対応する行がTrueとなっている。
【0047】
ファイルF♯12の後続のファイルF♯13は、ファイルF♯12と同じシーク時間、記録方向に補正する。しかし、ファイルF♯13のシーク時間と方向は確定したものではないので、フィクス値は、Falseのままである。
【0048】
ファイルF♯11については、図9のファイル番号12のフィクス値がFalseであることから分るように、今回は補正されない。この後ファイルF♯11にアクセスされる場合があると、シーク時間が確定し、補正されることになる。
【0049】
なお、図7から分るように、ファイルF♯11のシーク時間が求まるとすれば、ファイルF♯10のシーク時間より長くなる可能性がある。したがって、実際にはファイルF♯11はバックワードに書き込まれているにも関わらず、シーク管理テーブル30上では、記録方向はフォワードとして登録されることになる。すなわち、ファイル番号11に対応するフィクス値がTrueとなっても、方向はフォワードのままである。しかしながら、シーク管理テーブル30は、ファイルに対するアクセス効率を上げることが目的である。したがって、シーク管理テーブル30に登録さている記録方向が実際のテープでの方向と異なっていても、アクセス効率があがれば差し支えない。
【0050】
上述の実施形態では、BOTからシークされる場合について説明した。テープ上の任意のファイルをランダムにアクセスするシステムでは、BOTではない位置からファイルの先頭位置にシークする場合も多い。図10,11を参照して、BOTではない位置からファイルの先頭位置にシークする場合のシーク管理テーブルの補正方法を説明する。
【0051】
図10(a)〜(c)は、フォワードトラックにあるファイルF♯aからファイルF♯bへアクセスする時のシーク管理テーブルの補正の一例を示す図である。
【0052】
図10(a)に示すように、テープ10のフォワードトラックには、ファイルF♯aが書き込まれ、その後ファイルF♯bが書き込まれている。また、図10(b)のシーク管理テーブル30から分るように、ファイルF♯aのシーク時間は60秒で確定している。しかし、ファイルF♯bのシーク時間の欄にはファイルF♯aのシーク時間である60秒が仮に格納されており、フィクス値がFalseとなっている。
【0053】
図10(a)に示すように、ヘッド20は、ファイルF♯aの先頭位置にある。次いで、ファイルF♯bの読み出し要求に応じて、ヘッド20はファイルF♯aの先頭位置からファイルF♯bの先頭位置までシークする。このシーク時間が20秒であったとする。ここで、図10(b)のシーク管理テーブル30に格納されている方向情報を参照すると、方向情報の欄35にはファイルF♯aとF♯bはともに方向がフォワードであるとされている。したがって、ファイルF♯bのBOTからのシーク時間は、60秒+20秒の加算により計算され、80秒となる。
【0054】
この結果、図10(c)に示すように、シーク管理テーブル30のファイル番号bのシーク時間の欄33は、80秒に変更される。しかしながら、この場合のシーク時間80秒は、実測値ではないので、ファイル番号bのフィクス値の欄37はTrueではなく、Falseが維持される。ファイルF♯bBOTからのシーク時間は確定値ではないが、実際の値に近いと考えられる。したがって、ファイルF♯bのBOTからのシーク時間としてこのフィクス値80秒を使用することで、ファイルのアクセスを効率化することができる。なお、ファイルF♯bのBOTからのシーク時間が実測されると、シーク時間管理テーブル30のシーク時間の欄には実測値が格納され、フィクス値はTrueに変更される。
【0055】
図11(a)〜(c)は、バックワードトラックにあるファイルF♯cからファイルF♯dへアクセスする時のシーク管理テーブルの補正の一例を示す図である。
【0056】
図11(a)に示すように、テープ10のバックワードトラックには、ファイルF♯cが書き込まれ、その後ファイルF♯dが書き込まれている。また、図11(b)のシーク管理テーブル30から分るように、ファイルF♯cのシーク時間は100秒で確定している。しかし、ファイルF♯dのシーク時間の欄にはファイルF♯cのシーク時間である100秒が仮に格納されており、フィクス値がFalseとなっている。
【0057】
図11(a)に示すように、ヘッド20は、ファイルF♯cの先頭位置にある。次いで、ファイルF♯dの読み出し要求に応じて、ヘッド20はファイルF♯cの先頭位置からファイルF♯dの先頭位置までシークする。このシーク時間が70秒であったとする。図11(b)のシーク管理テーブル30の方向欄35を参照すれば、ファイルF♯cとF♯dはともに方向がバックワードであることがわかる。したがって、ファイルF♯dのBOTからのシーク時間は、100秒−70秒と減算により計算され、30秒となる。
【0058】
この結果、図11(c)に示すように、シーク管理テーブル30のファイル番号dのシーク時間の欄33は、30秒に変更される。しかしながら、この場合のシーク時間30秒は、実測値ではないので、ファイル番号aのフィクス値の欄37はTrueではなく、Falseが維持される。ファイルF♯dのBOTからのシーク時間は確定していないが、実際の値に近いと考えられる。したがって、ファイルF♯bおよびファイルF♯dのBOTからのシーク時間としてこのフィクス値30秒を使用することで、ファイルのアクセスを効率化することができる。なお、ファイルF♯dのBOTからのシーク時間が実測されると、シーク時間管理テーブル30のシーク時間の欄には実測値が格納され、フィクス値はTrueに変更される。
【0059】
シーク時間管理テーブルを用いるとさらに効率的なファイルの読み出しを行うことができる。例えば、テープ上のバックワードトラックに配置されているファイルを昇順にとびとびに、例えば1つおきに、読むような場合、シーク時間管理テーブルを用いると、どのように読み出すのが効率的かを決定することができる。
【0060】
図12は、バックワードトラックに連続して配置されたファイルF♯21〜F♯26ファイルのうち、ファイルF#21、F#23、F#25を読み出す場合を説明する図である。なお、図12のFMは、ファイルの終わりを示すファイルマークである。ファイルアクセスプランCは、ファイルのBOTからのシーク時間の昇順に読み出す場合を示し、ファイルアクセスプランDは、ファイル番号の昇順に読み出す場合を示す。
【0061】
図12の実線で示すファイルを読む時間は、ともに同一である。したがって、図12の破線で示すシーク時間を比較することにより、アクセスプランC、Dのいずれが効率的な読み出し方法であるかが決定する。
【0062】
図12では、ファイルF♯n(1≦n≦6)のシーク時間をS♯nで示す。シーク時間S♯nは、BOTからファイルF♯nの先頭までのシーク時間である。なおシーク時間に代えてシーク距離を用いてもよい。
【0063】
アクセスプランCのシーク時間の合計は、
S♯25+(S♯23−S♯26)+(S♯21−S♯24)
となる。ここで、(S♯23−S♯26)の項は、ヘッド20が、ファイルF♯25、F♯24、F♯23上を移動する時間を表している。(S♯21−S♯24)の項は、ヘッド20が、ファイルF♯23、F♯22、F♯21上を移動する時間を表している。
【0064】
アクセスプランDのシーク時間の合計は、
S♯21+(S♯22−S♯23)+(S♯24−S♯25)
となる。ここで、(S♯22−S♯23)の項は、ヘッド20が、ファイルF♯22上を移動する時間を表している。(S♯21−S♯24)の項は、ヘッド20が、ファイルF♯24上を移動する時間を表している。
【0065】
したがって、読みたいファイルの直後にあるファイルのシーク時間がシーク時間管理テーブルにフィクス値として格納されていれば、ファイルアクセスプランC、Dのシーク時間の合計は求まる。したがって、ファイルアクセスプランC、Dのシーク時間の合計を比較することにより、より効率的な読み出し方法を決定することができる。
【0066】
以上のように、本実施形態では、シーク時間は、ファイルの書き込みあるいは読み出しのためのシーク動作、あるいは巻き戻し動作の結果により学習され、学習の結果シーク管理テーブルは完全なものとなってゆく。したがって、予めシーク時間を算出して完全なシーク管理テーブルをもつ必要はない。
【0067】
なお、シーク管理テーブルから分るように、確定していないシーク時間であっても仮のシーク時間が記録されている。確定していないファイルをアクセスする場合は、仮のシーク時間を使用することになる。同一のシーク時間をもつ離散した複数のファイルにアクセスする必要がある場合には、記録方向がフォワードであれば、ファイル番号が小さいほうをシーク時間が短いと判断することができる。また、記録方向がバックワードであれば、ファイル番号が大きいほうをシーク時間が短いと判断することができる。
【0068】
また、連続して書き込まれているファイルにアクセスする場合は、記録方向に関係なく、ファイル番号の昇順に読めばよい。
【0069】
したがって、ファイルが離散して配置されている場合は、ファイルのシーク時間の昇順にアクセスし、ファイルが連続して配置されている場合は、ファイルのシーク時間の昇順にアクセスするようにすれば、効率のよいファイルアクセスを達成することができる。さらに、シーク管理テーブルを用いてファイルアクセスプランを評価することができるので、さらに効率のよいファイルアクセスを行うことができる。
【図面の簡単な説明】
【0070】
【図1】テープ上に折り返して記録されたファイルの読み出し方法を説明する図である。
【図2】テープ上のバックワード方向に連続して記録されたファイルの読み出し方法を説明する図である。
【図3】一実施形態のシーク管理テーブルを説明する図である。
【図4】一実施形態のテープ駆動制御装置を説明する図である。
【図5】ファイルの追記の際にシーク情報が登録されたシーク管理テーブルの一例を示す図である。
【図6】図5のシーク管理テーブルの補正の一例を示す図である。
【図7】シーク管理テーブルの補正を引き起こすファイルの読み出しを説明する図である。
【図8】図7のファイル読み出し前のシーク管理テーブルの一例を示す図である。
【図9】図7のファイル読み出し後のシーク管理テーブルの一例を示す図である。
【図10】(a)は、フォワードトラック上で、あるファイルから他のファイルへシークする一例を示す図であり、(b)は、一方のファイルのシーク時間が確定しているときのファイル管理テーブルの一例を示す図であり、(c)は、一方のファイルから他のファイルへシークした後のファイル管理テーブルの一例を示す図である。
【図11】(a)は、バックワードトラック上で、あるファイルから他のファイルへシークする一例を示す図であり、(b)は、一方のファイルのシーク時間が確定しているときのファイル管理テーブルの一例を示す図であり、(c)は、一方のファイルから他のファイルへシークした後のファイル管理テーブルの一例を示す図である。
【図12】バックワードトラックに連続して配置されたファイルのうち、1つおきに配置されたファイルの効率的な読み出し方法の決定を説明する図である。
【符号の説明】
【0071】
10 テープ媒体
20 ヘッド
30 シーク管理テーブル
1 テーク駆動制御装置
2 テープ走行制御部
3 記憶部
4 書き込み/読み出し制御部
【特許請求の範囲】
【請求項1】
テープ先頭位置からファイル先頭位置までのシーク時間あるいはシーク距離を含むシーク情報が、書き込まれたファイル毎に登録されるシーク管理テーブルであって、前記シーク情報が確定しているシーク情報確定ファイルに対しては該確定シーク情報が登録され、前記シーク情報が確定していないシーク情報未確定ファイルに対しては当該ファイルより先に書き込まれてシーク情報が確定しているファイルのシーク情報が仮に登録され、その後前記シーク情報未確定ファイルのシーク情報が確定すると該確定シーク情報が登録されるシーク管理テーブルと、
ヘッドをテープの所望の位置に位置づけ、前記ヘッドによりデータの書き込みあるいは読み出しを実行させるように、テープ走行を制御するテープ走行制御部と、を備え、
前記テープ走行制御部は、離散して書き込まれた複数のファイルの読み出し要求に応じて、前記読み出し要求のある複数のファイルのシーク時間あるいはシーク距離を前記シーク管理テーブルから抽出して、前記読み出し要求のある複数のファイルに対して抽出されたシーク時間あるいはシーク距離の昇順にアクセスするようにテープの走行を制御するテープ駆動制御装置。
【請求項2】
前記テープ走行制御部は、連続して書き込まれた複数のファイルの読み出し要求に応じて、ファイル番号の昇順に読み出す請求項1に記載のテープ駆動制御装置。
【請求項3】
テープ先頭位置からファイル先頭位置までのシーク時間あるいはシーク距離を含むシーク情報が、書き込まれたファイル順に登録されるシーク管理テーブルであって、前記シーク情報が確定しているシーク情報確定ファイルに対しては該確定シーク情報が登録され、前記シーク情報が確定していないシーク情報未確定ファイルに対しては当該ファイルより先に書き込まれてシーク情報が確定しているファイルのシーク情報が仮に登録され、その後前記シーク情報未確定ファイルのシーク情報が確定すると該確定シーク情報が登録されるシーク管理テーブルと、
ヘッドをテープの所望の位置に位置づけ、前記ヘッドによりデータの書き込みあるいは読み出しを実行させるように、テープ走行を制御するテープ走行制御部と、を備えるテープ駆動制御装置におけるテープ駆動制御方法であって、
前記テープ走行制御部は、
離散して書き込まれた複数のファイルの読み出し要求に応じて、前記読み出し要求のある複数のファイルのシーク時間あるいはシーク距離を前記シーク管理テーブルから抽出し、
該抽出されたシーク時間あるいはシーク距離の昇順に、前記ヘッドが前記読み出し要求のある複数のファイルにアクセスするようにテープの走行を制御する
テープ駆動制御方法。
【請求項4】
前記テープ走行制御部は、連続して書き込まれた複数のファイルの読み出し要求に応じて、ファイル番号の昇順に読み出す請求項3に記載のテープ駆動制御方法。
【請求項1】
テープ先頭位置からファイル先頭位置までのシーク時間あるいはシーク距離を含むシーク情報が、書き込まれたファイル毎に登録されるシーク管理テーブルであって、前記シーク情報が確定しているシーク情報確定ファイルに対しては該確定シーク情報が登録され、前記シーク情報が確定していないシーク情報未確定ファイルに対しては当該ファイルより先に書き込まれてシーク情報が確定しているファイルのシーク情報が仮に登録され、その後前記シーク情報未確定ファイルのシーク情報が確定すると該確定シーク情報が登録されるシーク管理テーブルと、
ヘッドをテープの所望の位置に位置づけ、前記ヘッドによりデータの書き込みあるいは読み出しを実行させるように、テープ走行を制御するテープ走行制御部と、を備え、
前記テープ走行制御部は、離散して書き込まれた複数のファイルの読み出し要求に応じて、前記読み出し要求のある複数のファイルのシーク時間あるいはシーク距離を前記シーク管理テーブルから抽出して、前記読み出し要求のある複数のファイルに対して抽出されたシーク時間あるいはシーク距離の昇順にアクセスするようにテープの走行を制御するテープ駆動制御装置。
【請求項2】
前記テープ走行制御部は、連続して書き込まれた複数のファイルの読み出し要求に応じて、ファイル番号の昇順に読み出す請求項1に記載のテープ駆動制御装置。
【請求項3】
テープ先頭位置からファイル先頭位置までのシーク時間あるいはシーク距離を含むシーク情報が、書き込まれたファイル順に登録されるシーク管理テーブルであって、前記シーク情報が確定しているシーク情報確定ファイルに対しては該確定シーク情報が登録され、前記シーク情報が確定していないシーク情報未確定ファイルに対しては当該ファイルより先に書き込まれてシーク情報が確定しているファイルのシーク情報が仮に登録され、その後前記シーク情報未確定ファイルのシーク情報が確定すると該確定シーク情報が登録されるシーク管理テーブルと、
ヘッドをテープの所望の位置に位置づけ、前記ヘッドによりデータの書き込みあるいは読み出しを実行させるように、テープ走行を制御するテープ走行制御部と、を備えるテープ駆動制御装置におけるテープ駆動制御方法であって、
前記テープ走行制御部は、
離散して書き込まれた複数のファイルの読み出し要求に応じて、前記読み出し要求のある複数のファイルのシーク時間あるいはシーク距離を前記シーク管理テーブルから抽出し、
該抽出されたシーク時間あるいはシーク距離の昇順に、前記ヘッドが前記読み出し要求のある複数のファイルにアクセスするようにテープの走行を制御する
テープ駆動制御方法。
【請求項4】
前記テープ走行制御部は、連続して書き込まれた複数のファイルの読み出し要求に応じて、ファイル番号の昇順に読み出す請求項3に記載のテープ駆動制御方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2010−97646(P2010−97646A)
【公開日】平成22年4月30日(2010.4.30)
【国際特許分類】
【出願番号】特願2008−266701(P2008−266701)
【出願日】平成20年10月15日(2008.10.15)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成22年4月30日(2010.4.30)
【国際特許分類】
【出願日】平成20年10月15日(2008.10.15)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]