JP4954141B2 - テープ媒体の走行を制御する装置及び方法 - Google Patents

テープ媒体の走行を制御する装置及び方法 Download PDF

Info

Publication number
JP4954141B2
JP4954141B2 JP2008142014A JP2008142014A JP4954141B2 JP 4954141 B2 JP4954141 B2 JP 4954141B2 JP 2008142014 A JP2008142014 A JP 2008142014A JP 2008142014 A JP2008142014 A JP 2008142014A JP 4954141 B2 JP4954141 B2 JP 4954141B2
Authority
JP
Japan
Prior art keywords
data
tape medium
tape
speed
written
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008142014A
Other languages
English (en)
Other versions
JP2009289349A (ja
Inventor
統子 大江
隆司 片桐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2008142014A priority Critical patent/JP4954141B2/ja
Priority to US12/474,544 priority patent/US8035912B2/en
Publication of JP2009289349A publication Critical patent/JP2009289349A/ja
Application granted granted Critical
Publication of JP4954141B2 publication Critical patent/JP4954141B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B5/00Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
    • G11B5/48Disposition or mounting of heads or head supports relative to record carriers ; arrangements of heads, e.g. for scanning the record carrier to increase the relative speed
    • G11B5/58Disposition or mounting of heads or head supports relative to record carriers ; arrangements of heads, e.g. for scanning the record carrier to increase the relative speed with provision for moving the head for the purpose of maintaining alignment of the head relative to the record carrier during transducing operation, e.g. to compensate for surface irregularities of the latter or for track following
    • G11B5/584Disposition or mounting of heads or head supports relative to record carriers ; arrangements of heads, e.g. for scanning the record carrier to increase the relative speed with provision for moving the head for the purpose of maintaining alignment of the head relative to the record carrier during transducing operation, e.g. to compensate for surface irregularities of the latter or for track following for track following on tapes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B15/00Driving, starting or stopping record carriers of filamentary or web form; Driving both such record carriers and heads; Guiding such record carriers or containers therefor; Control thereof; Control of operating function
    • G11B15/18Driving; Starting; Stopping; Arrangements for control or regulation thereof
    • G11B15/46Controlling, regulating, or indicating speed
    • G11B15/467Controlling, regulating, or indicating speed in arrangements for recording or reproducing wherein both record carriers and heads are driven
    • G11B15/473Controlling, regulating, or indicating speed in arrangements for recording or reproducing wherein both record carriers and heads are driven by controlling the speed of the heads

Description

本発明は、テープ媒体の走行を制御する装置及び方法に関する。特に、本発明は、上位装置から送られたデータを一時的にバッファに格納した後にテープ媒体に書き込むテープドライブにおけるテープ媒体の走行を制御する装置及び方法に関する。
磁気テープ等のテープ媒体にデータを書き込むテープドライブでは、データを一旦バッファに蓄積しておき、ドライブの都合の良いタイミングでバッファからテープ媒体へデータを書き込むのが一般的である。ホストは、ドライブに送ったデータが全てテープ媒体上に書き出されていることを保証するため、強制的にデータを書き込むためのコマンド(WriteFM Non Immediateコマンド)をドライブに送る。このようなバッファからテープ媒体への強制書込みを「同期」という。
ところで、同期が発生した後にテープ媒体を停止させないと、テープ媒体上で、先行する同期にて書き込まれたデータと次に書き込まれたデータとの間にギャップが生じる。その結果、テープ媒体の記録領域が無駄になってしまう。そのため、バックヒッチを行う必要がある。バックヒッチとは、テープ媒体の走行速度を減速して一旦停止し、逆方向に走行し、その後、再度元の方向に走行して書き込むべき位置に達して次のデータを書く、という一連の動作のことである。次のデータは、このバックヒッチが完了するまで書き込むことができない。バックヒッチには約2〜3秒程度の時間を要するため、バックヒッチの発生は、パフォーマンスに大きな影響を与える。
そこで、かかる状況を回避するための技術として、RABF(Recursive Accumulating Backhitchless Flush)が提案されている(例えば、特許文献1、2参照)。
この特許文献1、2からも分かるように、RABFは次のような手法と捉えることができる。
即ち、まず、テープドライブが、同期要求を受けた際に、テープにまだ書かれていないバッファ内のデータを、テープ媒体の走行を継続させたまま、テープ媒体上に予約されている一時記録領域(ABFラップ)に書き出す。尚、この書出しは、先行する同期にて書き込まれたデータと次の同期にて書き込まれたデータとの間のギャップが問題とならないため、バックヒッチを行わないバッファフラッシュ(Backhitchless Flush)である。一方で、テープドライブは、データをバッファに蓄積し(Accumulate)、バッファ又は一時記録領域に空きがなくなった際に通常の記録領域(通常ラップ)に書き戻す(リライトする)動作を反復的に(Recursive)行う。
このように、RABFでは、同期を行う際に、次の同期に備えてバックヒッチを行うことが必要とならないため、同期に要する時間の短縮が図れる。特に、データ量に対する同期要求の頻度が高い場合において、大幅なパフォーマンス向上を実現するものである。
米国特許第6856479号明細書 米国特許第6865043号明細書
即ち、RABFは、同期要求の間にホストから送られてくるデータ量(以下、「トランザクションサイズ」という)が小さい場合に同期パフォーマンスを向上させるものである。トランザクションサイズが一定以上になると、一時的にデータを違う場所に書いてそれを書き戻す作業のオーバーヘッドは大きくなり、RABFを実行するよりもバックヒッチを行ってデータを書いた方が早くなる。こうしたことから、従来より、トランザクションサイズが大きい場合に同期パフォーマンスを向上させる手法が求められていた。
また、トランザクションサイズ分のデータをテープに書く前に、テープ上に書き出すデータがバッファ内になくなった場合も、そのままテープを動かし続けるのではなく、テープ上の容量を無駄にしないようにバックヒッチを行って、最後に書いたデータの後方から再度書き出す。従って、この場合のバックヒッチによるパフォーマンスの低下についても改善が望まれていた。
本発明の目的は、トランザクションサイズが大きい場合における同期時のバックヒッチ及びバッファが空になることによるバックヒッチによるパフォーマンスの低下を防止することにある。
かかる目的のもと、本発明は、上位装置から送られたデータを一時的にバッファに格納した後にテープ媒体に書き込むテープドライブにおけるテープ媒体の走行を制御する装置であって、バッファに格納された第1のデータをテープ媒体に書き込んだ後にバックヒッチを行わずに第1のデータの次の第2のデータをテープ媒体に書き込むかどうかを、第1のデータがテープ媒体に書き込まれるまでの状況に基づいて判定する判定部と、判定部によりバックヒッチを行わずに第2のデータをテープ媒体に書き込むと判定された場合に、バッファ内にデータがなくなることによるバックヒッチが発生しないように、テープ媒体の速度を変更する変更部とを含む、装置を提供する。
ここで、判定部は、第1のデータがテープ媒体に書き込まれるまでにテープ媒体に書き込まれたデータの容量と、テープ媒体の第1のデータが書き込まれた位置までに書き込まれることが期待されるデータの容量との比較結果に基づいて、バックヒッチを行わずに第2のデータをテープ媒体に書き込むかどうかを判定する、ものであってよい。
また、第1のデータがテープ媒体に書き込まれるまでにバックヒッチを行わずにデータが書き込まれた回数と、バックヒッチを行わずにデータが書き込まれる回数として許容される予め設定された回数との比較結果に基づいて、バックヒッチを行わずに第2のデータをテープ媒体に書き込むかどうかを判定する、ものであってよい。
更に、第1のデータがテープ媒体に書き込まれるまでに発生したエラーの頻度と、バックヒッチを行わずにデータを書き込む際に発生するエラーの頻度として許容される予め設定された頻度との比較結果に基づいて、バックヒッチを行わずに第2のデータをテープ媒体に書き込むかどうかを判定する、ものであってよい。
更にまた、テープ媒体の第1のデータが書き込まれた位置と前回バックヒッチを行わずにデータが書き込まれた位置の間隔と、バックヒッチを行わずにデータが書き込まれる位置の間隔として許容される予め設定された間隔との比較結果に基づいて、バックヒッチを行わずに第2のデータをテープ媒体に書き込むかどうかを判定する、ものであってよい。
また、変更部は、テープ媒体の速度を、上位装置から送られた所定サイズのデータをバッファに格納するのに要する時間よりもバッファに格納された所定サイズのデータをテープ媒体に書き込むのに要する時間が長くなるという条件を満たす特定の速度に変更する、ものであってよい。
ここで、特定の速度は、テープ媒体の速度として予め用意された複数の速度のうち、条件を満たす最も速い速度であってよいし、テープ媒体の速度として予め用意された複数の速度のうち、過去の所定回数のデータの書込みにおいてバックヒッチを発生させていない速度であってもよい。
更に、変更部は、バックヒッチを行った後、テープ媒体の速度を変更する、ものであってよい。
また、本発明は、上位装置から送られたデータを一時的にバッファに格納した後にテープ媒体に書き込むテープドライブにおけるテープ媒体の走行を制御する装置であって、バッファに格納された第1のデータをテープ媒体に書き込んだ後にバックヒッチを行わずに第1のデータの次の第2のデータをテープ媒体に書き込むかどうかを、第1のデータがテープ媒体に書き込まれるまでの状況に基づいて判定する判定部と、判定部によりバックヒッチを行わずに第2のデータをテープ媒体に書き込むと判定された場合に、テープ媒体の速度として予め用意された複数の速度のうち、上位装置から送られた所定サイズのデータをバッファに格納するのに要する時間よりもバッファに格納された所定サイズのデータをテープ媒体に書き込むのに要する時間が長くなるという条件を満たす最も速い速度である第1の速度を選択する第1の選択部と、過去の所定回数のデータの書込みの何れかにおいて、第1の選択部により選択された第1の速度が用いられ、かつ、バックヒッチが発生している場合に、複数の速度のうち、第1の速度よりも遅い第2の速度を選択する第2の選択部と、第2の選択部により選択された第2の速度がテープ媒体の現在の速度と異なる場合に、バックヒッチを行った後、テープ媒体の速度を第2の速度に変更する変更部とを含む、装置も提供する。
更に、本発明は、上位装置から送られたデータを一時的にバッファに格納した後にテープ媒体に書き込むテープドライブにおけるテープ媒体の走行を制御する方法であって、バッファに格納された第1のデータをテープ媒体に書き込んだ後にバックヒッチを行わずに第1のデータの次の第2のデータをテープ媒体に書き込むかどうかを、第1のデータがテープ媒体に書き込まれるまでの状況に基づいて判定するステップと、バックヒッチを行わずに第2のデータをテープ媒体に書き込むと判定された場合に、バッファ内にデータがなくなることによるバックヒッチが発生しないように、テープ媒体の速度を変更するステップとを含む、方法も提供する。
更にまた、本発明は、上位装置から送られたデータを一時的にバッファに格納した後にテープ媒体に書き込むテープドライブにおけるテープ媒体の走行を制御する装置としてコンピュータを機能させるプログラムであって、コンピュータを、バッファに格納された第1のデータをテープ媒体に書き込んだ後にバックヒッチを行わずに第1のデータの次の第2のデータをテープ媒体に書き込むかどうかを、第1のデータがテープ媒体に書き込まれるまでの状況に基づいて判定する手段と、バックヒッチを行わずに第2のデータをテープ媒体に書き込むと判定された場合に、バッファ内にデータがなくなることによるバックヒッチが発生しないように、テープ媒体の速度を変更する手段として機能させる、プログラムも提供する。
本発明によれば、トランザクションサイズが大きい場合における同期時のバックヒッチ及びバッファが空になることによるバックヒッチによるパフォーマンスの低下を防止することができる。
以下、添付図面を参照して、本発明を実施するための最良の形態(以下、「実施の形態」という)について詳細に説明する。
図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としては、磁気テープが例示されるが、磁気テープ以外のテープ媒体でもよい。
ここで、ホストI/F11は、上位装置の一例であるホスト30との通信を行う。例えば、ホスト30から、テープ23へのデータの書込みを指示するコマンド、テープ23を目的の位置に移動させるコマンド、テープ23からのデータの読出しを指示するコマンドを受け取る。尚、このホストI/F11で用いる通信規格としては、SCSIが例示される。SCSIの場合、1つ目のコマンドは、Writeコマンドに相当し、2つ目のコマンドは、LocateコマンドやSpaceコマンドに相当し、3つ目のコマンドは、Readコマンドに相当する。また、ホストI/F11は、ホスト30に対し、これらのコマンドに応じた処理が成功したのか失敗したのかの応答を返す。
バッファ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個設けるのが好ましい。
一方、コントローラ16は、テープドライブ10の全体を制御する。例えば、ホストI/F11で受け付けたコマンドに従って、データのテープ23への書込みやテープ23からの読出しを制御する。また、ヘッド位置制御システム17やモータドライバ18の制御も行う。
ヘッド位置制御システム17は、所望の1つ又は複数のラップを追跡するシステムである。ここで、ラップとは、テープ23上の複数のトラックのグループである。ラップを切り換える必要が生じると、ヘッド14を電気的に切り換える必要も生じるので、このような切り換えの制御を、このヘッド位置制御システム17で行う。
モータドライバ18は、モータ15を駆動する。尚、上述したように、モータ15を2個使用する場合であれば、モータドライバ18も2個設けられる。
本実施の形態では、かかる構成を有するテープドライブ10において、まず、トランザクションサイズが大きい場合に同期処理のパフォーマンスを向上させる手法を提案する。即ち、テープドライブ10は、テープ23上の容量を犠牲にして、同じラップにバックヒッチを伴わない書込み(以下、「バックヒッチレス書込み」という)を行う。
通常、テープ23には、公称の容量を超えてある程度の余裕分までデータを書き込むことができる。例えば、公称の容量を500GBとし、余裕分を7%とした場合、エラーレートが非常に低ければ、535(=500×1.07)GBまでのデータをテープ23に書き込めることになる。従って、バックヒッチレス書込みによる容量損失が7%以下であれば、それは、ユーザにとってそれほど深刻な事態とはならない。そこで、本実施の形態では、上記の例における35(=535−500)GBの余裕分を、パフォーマンス向上のために使う。
図2は、バックヒッチを伴う書込みを行う場合とバックヒッチレス書込みを行う場合との違いを示したものである。尚、図では、データセットを「DS」と表記している。
このうち、(a)は、バックヒッチを伴う書込みの様子を示している。
図示するように、テープ23には、DS#N−2、DS#N−1、DS#N、DS#N+1が書き込まれている。このうち、DS#N−2から同期処理における書込みが開始し、DS#Nで同期処理が完了したとする。すると、ここで、バックヒッチが発生する。このバックヒッチには、約3秒の時間が費やされ、テープドライブ10は、バックヒッチが完了するまで、次の書込みを開始することができない。つまり、バックヒッチが完了した後に、DS#N+1が書き込まれることになる。
また、(b)は、バックヒッチレス書込みの様子を示している。
図示するように、テープ23には、DS#N−2、DS#N−1、DS#N、DS#N+1が書き込まれている。このうち、DS#N−2から同期処理における書込みが開始し、DS#Nで同期処理が完了したとする。但し、この場合、バックヒッチは発生しない。つまり、バックヒッチレス書込みは、(a)で費やされた約3秒の時間を必要としない。しかし、テープドライブ10は、テープ23を、容量を犠牲にして前方向に動かしてしまう。
とはいっても、このバックヒッチレス書込みは、パフォーマンスの点で大きな利点がある。
そこで、本実施の形態では、このバックヒッチレス書込みを行う。具体的には、同期コマンドを受信したときに、テープ23の残り容量を確認して、バックヒッチを行うかバックヒッチレス書込みを行うかを決定する。これにより、同期処理時にバックヒッチレス書込みをしたとしても、テープ23の全体の容量が影響を受けないようにする。
尚、このように同じラップにバックヒッチレス書込みを行う手法を、以下では、SWBF(Same Wrap Backhitchless Flush)と呼ぶ。
ところで、このようなSWBFアルゴリズムを用いても、パフォーマンスが期待通りに向上しない場合がある。それは、テープドライブ10が同期のタイミングでバックヒッチを行わなかったとしても、テープ23の転送レートがホスト30の転送レートよりも速い場合は、通常の書込み時にバックヒッチが発生してしまうからである。
そこで、本実施の形態では、このような場合におけるパフォーマンスの向上のため、つまり、書込みシーケンスの中でのバックヒッチの総数を減少させるために、次のトランザクションのための理想的なテープ速度を見積もり、そのテープ速度に変更するために意図的にバックヒッチを強制する手法を提案する。
本実施の形態において、上記のパフォーマンス問題は、次のトランザクションのための理想的なテープ速度を決定し、決定されたテープ速度によってバックヒッチを強制すべきかどうかを決定するSWBFのための新しい論理を導入することで解決される。
図3〜6に、テープ速度と1サイクルの同期処理のために必要な時間との関係を示す。尚、図中、太線がテープ速度を表す。
図3は、通常のケースであり、同期処理が完了する都度、バックヒッチが発生するケースを示している。即ち、図において、時間T01で同期処理が完了してバックヒッチを開始する。以降、時間T02までのバックヒッチ時間において、テープ速度は一旦減少し、逆方向に加速、減少した後、再び増加して元に戻る。そして、時間T03で同期処理が完了するまでの書込み時間において、次のデータを書き込む。
図4は、理想的なSWBFのケースを示す。この場合、テープドライブ10は、同期処理が完了してもバックヒッチを行わず、バックヒッチレス書込みモードで次のデータを書き込む。即ち、図において、時間T11で同期処理が完了するが、バックヒッチを行わずに、時間T12で同期処理が完了するまでの書込み時間において、次のデータを書き込む。
図5は、図4と同じトランザクションサイズとホスト転送レートで、より遅いテープ速度を使ったケースを示す。この場合、バックヒッチは発生しない。しかし、テープ速度が遅いため、同期処理のために必要な時間が理想的なケースより長くなっている。即ち、図において、時間T21で同期処理が完了するが、バックヒッチを行わずに、時間T22で同期処理が完了するまでの書込み時間において、次のデータを書き込む。この場合に、時間T21から時間T22までの時間が、図4の時間T11から時間T12までの時間よりも長くなっている。
図6は、図4と同じトランザクションサイズとホスト転送レートで、より速いテープ速度を使ったケースを示す。この場合、テープ23の転送レートがホスト30の転送レートより速ければ、ホスト30がテープドライブ10への全てのトランザクションの転送を完了する前に、バッファ12は空になる。すると、バックヒッチが強制される。即ち、図において、時間T31で同期処理が完了するが、バックヒッチを行わずに、以降の書込み時間において、次のデータを書き込む。しかしながら、テープ速度が速過ぎるために、時間T32でバッファ12が空になり、バックヒッチが発生する。以降、時間T33までのバックヒッチ時間において、テープ速度は一旦減少し、逆方向に加速、減少した後、再び増加して元に戻る。そして、時間T34で同期処理が完了するまでの書込み時間において、引き続きデータを書き込む。このように、図6の場合、1つの同期処理のために必要な時間にはバックヒッチのための時間が含まれることになる。その結果、SWBFには、通常の同期処理と比較してパフォーマンスの利点がなくなってしまう。
そこで、本実施の形態では、図5と図6に示されるケースを避けるために、理想的なテープ速度よりも速いテープ速度や遅いテープ速度で一貫してバックヒッチレス書込みを行うよりもむしろ、バックヒッチを強制してテープ速度を変更する。
また、理想的なテープ速度を計算するためにテープドライブ10の最近の履歴を用い、選択されたテープ速度でのパフォーマンスを保証するために過去のバックヒッチ発生及びテープ速度を用いる。
このような本実施の形態の概略動作は、次の通りである。
(第1工程)
まず、理想的なテープ速度が、過去のトランザクションサイズとホスト転送レートの平均によって算出される。
(第2工程)
次に、過去のトランザクションについて選択されたテープ速度、及び、バッファ12が空になったことによるバックヒッチが先に選択された速度で発生したかどうかを参照する。同じ速度での過去のトランザクションでバックヒッチが発生していれば、バックヒッチは、次のトランザクションでも発生するかもしれないので、算出された速度より遅い速度を使うようにする。このように同期タイミングでより遅い速度を選択することにより、バックヒッチは次のトランザクションで発生せず、書込みシーケンスの間のバックヒッチの総数は減少する。
(第3工程)
上記の方法によって理想的なテープ速度を決定した後に、現在の速度が理想的な速度と同じでない場合、テープドライブ10は、バックヒッチを強制する。尚、算出された速度は、SWBFで使われる現在の速度よりも速かったり遅かったりするかもしれない。また、現在の速度が理想的な速度と同じである場合、テープドライブ10は、SWBFを可能にする容量の基準が満たされれば、バックヒッチレス書込みを行う。
次に、このような動作を実現するためのコントローラ16の機能構成について説明する。
図7は、コントローラ16の機能構成例を示したブロック図である。
図示するように、コントローラ16は、コマンド処理部41と、バッファ管理部42と、チャネル入出力部43と、バックヒッチ判定部44と、速度決定部45と、速度テーブル記憶部46と、履歴記憶部47と、動作信号出力部48とを備える。
このうち、コマンド処理部41は、ホストI/F11からコマンドを受け取る。ここで、コマンドとしては、バッファ12にデータを格納することを指示するWriteコマンド、バッファ12に格納されたデータをテープ23に書き込む同期コマンド(WriteFMコマンド等)がある。
バッファ管理部42は、コマンド処理部41がWriteコマンドを受け取った場合は、データをバッファ12内に用意する。また、コマンド処理部41が同期コマンドを受け取った場合は、データをバッファ12から読み出してチャネル入出力部43に出力する。
チャネル入出力部43は、バッファ管理部42がバッファ12から読み出したデータをチャネル13に出力したり、チャネル13から受け取ったデータをバッファ12に格納したりする。
バックヒッチ判定部44は、現在のデータがテープ23に書き込まれるまでの状況に基づいて、最終的にテープ23に公称の容量分のデータを書き込めるか判断し、バックヒッチレス書込みを行うかどうかを判定する。本実施の形態では、第1のデータをテープ媒体に書き込んだ後にバックヒッチを行わずに第2のデータをテープ媒体に書き込むかどうかを判定する判定部の一例として、バックヒッチ判定部44を設けている。
速度決定部45は、バックヒッチ判定部44がバックヒッチレス書込みを行うと判定した場合に、バッファ12が空になることによるバックヒッチを発生させないテープ速度を決定する。本実施の形態では、テープ媒体の速度を変更する変更部の一例として、速度決定部45を設けている。
速度テーブル記憶部46は、テープ23の速度として予め用意された速度と、その速度でテープ23を走行させた場合のテープ転送レートとの対応を含む速度テーブルを記憶する。
履歴記憶部47は、過去に処理したトランザクション、そのトランザクションを処理したときのテープ23の速度、そのトランザクションを処理したときにバックヒッチが発生したかどうかの情報等の対応を含む履歴情報を記憶する。但し、履歴情報にはこれ以外の情報(例えば、エラーの発生に関する情報)を含めてもよい。
動作信号出力部48は、モータドライバ18に対して、バックヒッチ判定部44又は速度決定部45で決定された動作を行うことを指示する信号を出力する。
次に、コントローラ16の動作について説明する。
図8は、コントローラ16の動作例を示したフローチャートである。尚、この動作例は、バッファ12内のデータセットが同期コマンドに応じてテープ23に書き込まれているときに開始するものとする。
コントローラ16では、このようなデータセットの書込み中に、バッファ管理部42が、バッファ12から最後のデータセットを読み出してチャネル入出力部43に渡し、チャネル入出力部43が、渡されたデータセットをテープ23に書き込む(ステップ401)。
このとき、最後のデータセットがテープ23に書き込まれたことがバッファ管理部42に伝えられるので、バッファ管理部42は、バックヒッチ判定部44に対して、バックヒッチを行うかどうかを判定するよう指示する。これにより、バックヒッチ判定部44は、最終的にテープ23に公称の容量分のデータを書き込めるかという観点からバックヒッチを行うかどうかを判定するバックヒッチ判定処理を行う(ステップ402)。尚、このバックヒッチ判定処理の詳細については後述する。そして、バックヒッチ判定処理における判定結果は、動作信号出力部48に出力される。
これにより、動作信号出力部48は、判定結果がバックヒッチレス書込みを行うことを示しているかどうかを判定する(ステップ403)。
ここで、判定結果がバックヒッチレス書込みを行わないことを示している場合、動作信号出力部48は、モータドライバ18に対し、バックヒッチを開始する旨の信号を出力する(ステップ409)。
一方、判定結果がバックヒッチレス書込みを行うことを示している場合、動作信号出力部48は、制御をバッファ管理部42に戻し、バッファ管理部42が、トランザクションサイズ(図では「TRサイズ」と表記)とバッファ12のサイズ(図では「BUFサイズ」と表記)とを比較する(ステップ404)。ここで、トランザクションサイズとしては、例えば、過去の3つのトランザクションのサイズの平均値を用いるとよい。
その結果、トランザクションサイズがバッファ12のサイズよりも小さければ、バッファ管理部42は、速度決定部45に対して、テープ23の新たな速度を決定するよう指示する。これにより、速度決定部45は、テープ23の新たな速度を決定するテープ速度決定処理を行う(ステップ405)。尚、このテープ速度決定処理の詳細についても後述する。
その後、現在のテープ速度がこのテープ速度決定処理で決定されたテープ速度と異なるならば、SWBFモードでの書込みは行われず、バックヒッチが行われ、テープ速度が変更される。具体的には、速度決定部45が、ステップ405で決定されたテープ速度が現在のテープ速度に等しいかどうかを判定する(ステップ406)。そして、これらのテープ速度が等しければ、バックヒッチレス書込みを行うことを決定する(ステップ407)。また、これらのテープ速度が等しくなければ、ステップ405で決定されたテープ速度をバックヒッチ後に用いることを決定し、動作信号出力部48に伝える(ステップ408)。すると、動作信号出力部48は、モータドライバ18に対し、バックヒッチを開始する旨の信号を出力する(ステップ409)。そして、このバックヒッチの後に、テープ23の速度が変更されることになる。尚、このステップ406〜409の処理は、上述した第3工程に相当する。
一方、ステップ404でトランザクションサイズがバッファ12のサイズ以上であると判定されれば、バックヒッチレス書込みを行うことを決定する(ステップ407)。
このようにして、バックヒッチレス書込みを行うことの決定、又は、バックヒッチの開始がなされると、その旨はコマンド処理部41に返され、コマンド処理部41は、同期コマンドの完了をホスト30に報告する(ステップ410)。
その後、コマンド処理部41は、次のデータセットを受け付けてバッファ管理部42に受け渡し、バッファ管理部42が、受け付けたデータをバッファ12に格納する(ステップ411)。
次に、バッファ管理部42は、新しい書込みを開始するために十分なデータセットが受け取られたかどうかを判定する(ステップ412)。そして、十分なデータセットが受け取られていないと判定されれば、ステップ410の終了後から一定時間経過したかどうかの判断に移り(ステップ413)、一定期間が経過していなければ、暫く待って(ステップ414)、再度ステップ412の判定を行う。一定期間が経過していれば、バッファ管理部42は、動作信号出力部48に制御を渡し、動作信号出力部48が、モータドライバ18に対し、バックヒッチを開始するように指示する信号を出力する(ステップ416)。また、ステップ412で十分なデータセットが受け取られたと判定されれば、現在のヘッド14の位置と最後に書かれたデータセットの終端の位置との間隔が短いかどうかを判定する(ステップ415)。例えば、その間隔が、データセット間隔の閾値よりも長いかどうかを判定すればよい。
ここで、ステップ410の終了後から一定期間が経過した場合、及び、十分なデータセットを受け取った後、現在のヘッド14の位置と最後に書かれたデータセットの終端の位置との間隔が長い場合、バッファ管理部42は、動作信号出力部48に制御を渡し、動作信号出力部48が、モータドライバ18に対し、バックヒッチを開始するように指示する信号を出力する(ステップ416)。そして、バッファ管理部42は、バッファ12からデータセットを読み出してチャネル入出力部43に受け渡し、チャネル入出力部43が、データセットをテープ23に書き込む(ステップ417)。
一方、現在のヘッド14の位置と最後に書かれたデータセットの終端の位置との間隔が短ければ、バックヒッチは行わずに、バッファ管理部42が、バッファ12からデータセットを読み出してチャネル入出力部43に受け渡し、チャネル入出力部43が、データセットをテープ23に書き込む(ステップ417)。
次に、ステップ402のバックヒッチ判定処理について詳細に説明する。尚、このバックヒッチ判定処理は、上述したように、最終的にテープ23に公称の容量分のデータを書き込めるかという観点からバックヒッチレス書込みを行うかどうかを判定する処理であるが、その判定動作として、4つの動作例が考えられるので、これらを順に説明する。
(第1の動作例)
図9は、第1の動作例を示したフローチャートである。
バックヒッチ判定部44は、まず、テープ23の公称の記憶容量(C)を取得する(ステップ501)。また、テープ23の長手方向のテープ長(L)を取得する(ステップ502)。この場合、C及びLは、例えば、テープカートリッジ20がロードされた際に、テープカートリッジ20に設けられたカートリッジメモリから取得するとよい。
次に、バックヒッチ判定部44は、現在ヘッド14が位置するラップの番号(CurrentWrapNum)を取得する(ステップ503)。本実施の形態では、複数のヘッド14を用いてデータがテープ23に書かれる。その際、テープ23は、まず、BOT(Beginning Of Tape)からEOT(End Of Tape)まで第1の方向に動かされ、第1の複数のデータトラックが書かれ、次に、テープ23の方向は逆転し、テープ23は、第2の方向に動かされて、第2の複数のデータトラックがEOTからBOTまで書かれる。この場合、第1の複数のデータトラックが、第1の「ラップ」を構成し、第2の複数のデータトラックが、第2の「ラップ」を構成する。テープ23は複数のラップで構成され、テープ23上のラップの総数をNとしたとき、ラップの番号は0から(N−1)までの値をとる。
更に、バックヒッチ判定部44は、現在ヘッド14が位置する長手方向の位置(CurrentLongitudinalPosition)を取得する(ステップ504)。例えば、テープ23上には、非データ領域にテープ長(L)に沿って書かれた複数のサーボバンドが存在する。サーボバンドに配置された複数の連続したサーボパターンは、線形位置(LPOS)の情報をコード化している。このステップは、ヘッド14のLPOSを決定するために複数のサーボパターンを解読することを含んでいてもよい。
そして、バックヒッチ判定部44は、ヘッド14に対するパラメータ(X)を算出する(ステップ505)。ここで、Xには、ステップ502で取得したLと、ステップ503で取得したCurrentWrapNumとを掛け合わせたものに、ステップ504で取得したCurrentLongitudinalPositionを加えて得られた値が設定される。
その後、バックヒッチ判定部44は、現在位置における期待される容量(S)に、「(X/(L*TotalWrapNum))*C」を設定する(ステップ506)。ここで、TotalWrapNumは、テープ23上のラップの総数である。
次に、バックヒッチ判定部44は、現在のデータセット番号(N)を取得する(ステップ507)。そして、データセットのサイズ(DatasetSize)を取得する(ステップ508)。これらは、例えば、バッファ管理部42から取得するとよい。また、バックヒッチ判定部44は、現在位置における実際の容量(R)に、ステップ507で取得したNとステップ508で取得したDatasetSizeとを掛け合わせて得られた値を設定する(ステップ509)。
最後に、バックヒッチ判定部44は、「R−S*β+α」が「0」を超えるかどうかを判定する(ステップ510)。そして、「R−S*β+α」が「0」を超えると判定されれば、新しい書込み動作を開始するときにバックヒッチレス書込みを行うことを判定結果に設定する(ステップ511)。また、「R−S*β+α」が「0」を超えないと判定されれば、新しい書込み動作を開始するときにバックヒッチレス書込みを行わないことを判定結果に設定する(ステップ512)。
尚、上記の式において、αは、BOTの近くでこの機能を簡単に呼び出すための一定値であり、例えば、約5GBに設定される。また、βは、例えば、約1.05に設定される。α、βは、例えば、テープドライブ10又はテープ23の製造業者により設定されるとよい。先に述べたように、テープ23には、公称の容量を超えてある程度の余裕分までデータを書き込むことができる。α、βはS*β+αがテープ23に書き込むことができる容量を超えない範囲で設定できる。
(第2の動作例)
図10は、第2の動作例を示したフローチャートである。
バックヒッチ判定部44は、まず、テープ23上で発生するバックヒッチレス書込みの許容される最大の回数(BackhitchlessThresholdCount)を取得する(ステップ521)。ここで、BackhitchlessThresholdCountは、例えば、テープドライブ10又はテープ23の製造業者により設定されるとよい。また、現在の書込み処理の間にテープ23上で既に発生したバックヒッチレス書込みの回数(ActualBackhitchlessWriteCount)を取得する(ステップ522)。ここで、ActualBackhitchlessWriteCountは、履歴記憶部47に記憶された履歴情報に基づいて取得するとよい。
次に、バックヒッチ判定部44は、ActualBackhitchlessWriteCountがBackhitchlessThresholdCountを超えるかどうか判定する(ステップ523)。そして、ActualBackhitchlessWriteCountがBackhitchlessThresholdCountを超えないと判定されれば、新しい書込み動作を開始するときにバックヒッチレス書込みを行うことを判定結果に設定する(ステップ524)。また、ActualBackhitchlessWriteCountがBackhitchlessThresholdCountを超えると判定されれば、新しい書込み動作を開始するときにバックヒッチレス書込みを行わないことを判定結果に設定する(ステップ525)。
(第3の動作例)
図11は、第3の動作例を示したフローチャートである。
バックヒッチ判定部44は、まず、テープ23上でバックヒッチレス書込みを用いるときに許容される最大のエラーレート(ErrorRateThreshold)を取得する(ステップ541)。ここで、ErrorRateThresholdは、例えば、テープドライブ10又はテープ23の製造業者により設定されるとよい。また、テープ23の実際のエラーレート(ActualErrorRate)を取得する(ステップ542)。ここで、ActualErrorRateは、履歴記憶部47に記憶された履歴情報に基づいて取得するとよい。
次に、バックヒッチ判定部44は、ActualErrorRateがErrorRateThresholdを超えるかどうか判定する(ステップ543)。そして、ActualErrorRateがErrorRateThresholdを超えないと判定されれば、新しい書込み動作を開始するときにバックヒッチレス書込みを行うことを決定する(ステップ544)。また、ActualErrorRateがErrorRateThresholdを超えると判定されれば、新しい書込み動作を開始するときにバックヒッチレス書込みを行わないことを決定する(ステップ545)。
(第4の動作例)
図12は、第4の動作例を示したフローチャートである。
バックヒッチ判定部44は、まず、テープ23上で発生するバックヒッチレス書込みの間の最小のテープ長(BackhitchlessThresholdInterval)を取得する(ステップ561)。ここで、BackhitchlessThresholdIntervalは、例えば、テープドライブ10又はテープ23の製造業者により設定されるとよい。また、現在のヘッド14の位置と最後のバックヒッチレス書込みとの間の実際のテープ長(ActualBackhitchlessWriteInterval)を取得する(ステップ562)。ここで、ActualBackhitchlessWriteIntervalは、サーボヘッドが読み出したLPOS情報に基づいて取得するとよい。
次に、バックヒッチ判定部44は、ActualBackhitchlessWriteIntervalがBackhitchlessThresholdIntervalを下回っているかどうか判定する(ステップ563)。そして、ActualBackhitchlessWriteIntervalがBackhitchlessThresholdIntervalを下回っていないと判定されれば、新しい書込み動作を開始するときにバックヒッチレス書込みを行うことを判定結果に設定する(ステップ564)。また、ActualBackhitchlessWriteIntervalがBackhitchlessThresholdIntervalを下回っていると判定されれば、新しい書込み動作を開始するときにバックヒッチレス書込みを行わないことを判定結果に設定する(ステップ565)。
尚、これらの4つの動作例は、バックヒッチ判定部44における動作のあくまで例示に過ぎない。例えば、第1の動作例や第4の動作例のように現在のデータがテープ23に書き込まれるまでのデータの書込み状況に着目した他の判定方法を採用してもよいし、第2の動作例や第3の動作例のように現在のデータがテープ23に書き込まれるまでの特定の事象の発生状況に着目した他の判定方法を採用してもよい。更に、より広く、現在のデータがテープ23に書き込まれるまでの状況に基づいて、バックヒッチレス書込みを行うかどうかを判定するものと考えてもよい。
次に、ステップ405のテープ速度決定処理について詳細に説明する。
図13は、テープ速度決定処理の動作例を示したフローチャートである。尚、この動作例は、SWBFに対する容量基準が満たされるときでも、同期タイミングにおいて、SWBFを行うかバックヒッチを行うかを追加的に決定するものである。
まず、速度決定部45は、過去のトランザクションサイズとホスト転送レートから、次のトランザクションにおけるホスト30からの転送時間HostTxTimeを見積もる(ステップ601)。ここで、HostTxTimeは、例えば、過去の3つのトランザクションにおけるホスト30からの転送時間の平均とすればよい。即ち、TransactionSizeを、過去の3つのトランザクションの平均のトランザクションサイズとし、HostTxRateを、過去の3つのトランザクションの平均のホスト転送レートとすると、HostTxTime = TransactionSize / HostTxRateによって求めるとよい。尚、TransactionSize及びHostTxRateは、履歴記憶部47に記憶されたトランザクションの処理の履歴情報から、速度決定部45が入力データとして取得しておけばよい。
また、速度決定部45は、過去のトランザクションのサイズと各速度でのメディア転送レートから、速度Spで次のトランザクションを書くのに必要な時間ReqTime(Sp)を見積もる。そして、HostTxTimeとReqTime(Sp)とを比較し、バッファ12が空になることによるバックヒッチを発生させない最も速い速度が選択されるように、Spを遅くしていく。
具体的には、速度決定部45が、テープの速度を表す変数Spに対して、速度テーブル記憶部46に記憶された複数の速度のうちの最も速い速度であるSP1を代入する(ステップ602)。そして、テープ速度Spでトランザクションを書くのに必要な時間ReqTime(Sp)を算出する(ステップ603)。ここで、ReqTime(Sp)は、例えば、過去の3つのトランザクションを特定の速度Spで書くのに必要な時間の時間の平均とすればよい。即ち、TransactionSizeを、過去の3つのトランザクションの平均のトランザクションサイズとし、特定の速度Spでトランザクションを書くのに必要な時間をMediaTxRate(Sp)とすると、ReqTime(Sp) = TransactionSize / MediaTxRate(Sp)で求めるとよい。尚、TransactionSizeは、履歴記憶部47に記憶されたトランザクションの処理の履歴情報から、速度決定部45が入力データとして取得し、MediaTxRate(Sp)は、速度テーブル記憶部46に記憶されたテープ速度ごとの情報から、速度決定部45が入力データとして取得しておけばよい。
その後、速度決定部45は、ReqTime(Sp)がHostTxTimeを下回っているかどうかを判定する(ステップ604)。つまり、テープ23にデータを書き込む所要時間よりもホスト30から同データが転送される所要時間が長ければ、バッファ12が空になる可能性があるので、そのような状態にあるかどうかを判定する。
その結果、ReqTime(Sp)がHostTxTimeを下回っていると判定されれば、速度決定部45は、Spに設定された速度よりも遅い速度があるかどうかを判定する(ステップ605)。ここでは、Spに設定された速度よりも遅い速度が速度テーブル記憶部46にエントリとして登録されているかどうかを判定するとよい。そして、そのような速度が登録されていれば、次に速い速度をSpに設定し(ステップ606)、ステップ603に戻る。
このようにしてステップ603〜606を繰り返し、ステップ605でこれ以上遅い速度がないと判定されたとする。この場合は、選択された速度を表す変数ChosenSpeedに対し、速度テーブル記憶部46に登録された最も遅い速度を設定する(ステップ607)。一方、ステップ604でReqTime(Sp)がHostTxTimeを下回っていないと判定されたとする。この場合は、選択された速度を表す変数ChosenSpeedに対し、そのときのSpを設定する(ステップ608)。
尚、このステップ601〜608の処理は、上述した第1工程に相当する。
その後、速度決定部45は、過去の3つのトランザクションの処理において選択された速度を参照する。この場合において、選択された速度でバックヒッチが発生していれば、その速度は速過ぎる可能性がある。従って、より遅い速度を再選択する。
具体的には、速度決定部45が、過去のトランザクションを識別するインデックスiに「0」を代入する(ステップ609)。そして、i=0,1,2について次の処理を行う。尚、以下では、i番目のトランザクションをTr[i]と表記し、新しい方からTr[0]、Tr[1]、Tr[2]とする。
即ち、まず、Tr[i]を書き込んだときのテープ23の速度を表す変数prevSp[i]が、ステップ607又は608で選択されたChosenSpeedと等しく、かつ、Tr[i]でバックヒッチが発生したかどうかを判定する(ステップ610)。
その結果、prevSp[i]が、ステップ607又は608で選択されたChosenSpeedと等しく、かつ、Tr[i]でバックヒッチが発生したというのでなければ、速度決定部45は、インデックスiに「1」を加算し(ステップ611)、インデックスiが「3」未満であるかどうかを判定する(ステップ612)。そして、インデックスiが「3」未満であれば、ステップ610に戻り、インデックスiが「3」に達していれば、履歴記憶部47に記憶された履歴情報を更新する(ステップ614)。つまり、Tr[1]に対応する履歴情報をTr[2]に対応する履歴情報とし、Tr[0]に対応する履歴情報をTr[1]に対応する履歴情報とし、今回のトランザクションに対応する履歴情報をTr[0]に対応する履歴情報とする。
一方、ステップ610で、prevSp[i]が、ステップ607又は608で選択されたChosenSpeedと等しく、かつ、Tr[i]でバックヒッチが発生していれば、ChosenSpeedの次に速い速度をChosenSpeedに設定する(ステップ613)。そして、履歴記憶部47に記憶された履歴情報を更新する(ステップ614)。つまり、Tr[1]に対応する履歴情報をTr[2]に対応する履歴情報とし、Tr[0]に対応する履歴情報をTr[1]に対応する履歴情報とし、今回のトランザクションに対応する履歴情報をTr[0]に対応する履歴情報とする。
尚、このステップ609〜614の処理は、上述した第2工程に相当する。
ところで、図8にステップ404を設けたことから分かるように、このテープ速度決定処理は、トランザクションサイズがバッファ12のサイズ(例えば、1GB)よりも小さい場合に限り、実行される。
これは、トランザクションサイズがバッファ12のサイズより大きい場合、バッファ12が、テープ23にバッファリングされたデータを書く前にいっぱいになり、ホスト転送が中断されるかもしれないからである。ホスト転送のこの休止状態は、ホスト転送レートを低下させる。この場合、計算はより複雑になるので、上述したテープ速度決定処理は適用されない。
以上により、本実施の形態についての説明を終了する。
このように、本実施の形態では、テープ23に最終的に書き込まれるデータ容量の観点からバックヒッチレス書込みを行うと判定された場合であっても、バッファが空になることによるバックヒッチが発生する可能性があれば、敢えてバックヒッチを行ってテープ速度を変更するようにした。これにより、トランザクションサイズが大きい場合における同期時のバックヒッチによるパフォーマンスの低下に加えて、バッファが空になることによるバックヒッチによるパフォーマンスの低下も防止することができる。
尚、本実施の形態では、テープ23の速度を変更するに先立ってバックヒッチを行うようにしたが、バックヒッチを行わずにテープ23の速度を変更する構成としてもよい。
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム(装置又は機器)、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ(CD−ROM)、コンパクトディスク−リード/ライト(CD−R/W)及びDVDが含まれる。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
本発明の実施の形態が適用されるテープドライブの構成を示したブロック図である。 バックヒッチを伴う書込みとバックヒッチレス書込みを比較して示した図である。 バックヒッチレス書込みを行わない場合におけるテープ速度と同期処理の1サイクルに要する時間との関係を示したグラフである。 理想的なテープ速度でバックヒッチレス書込みを行う場合におけるテープ速度と同期処理の1サイクルに要する時間との関係を示したグラフである。 理想的なテープ速度よりも遅いテープ速度でバックヒッチレス書込みを行う場合におけるテープ速度と同期処理の1サイクルに要する時間との関係を示したグラフである。 理想的なテープ速度よりも速いテープ速度でバックヒッチレス書込みを行う場合におけるテープ速度と同期処理の1サイクルに要する時間との関係を示したグラフである。 本発明の実施の形態におけるコントローラの機能構成例を示したブロック図である。 本発明の実施の形態におけるコントローラの動作例を示した図である。 本発明の実施の形態のコントローラにおけるバックヒッチ判定部の第1の動作例を示したフローチャートである。 本発明の実施の形態のコントローラにおけるバックヒッチ判定部の第2の動作例を示したフローチャートである。 本発明の実施の形態のコントローラにおけるバックヒッチ判定部の第3の動作例を示したフローチャートである。 本発明の実施の形態のコントローラにおけるバックヒッチ判定部の第4の動作例を示したフローチャートである。 本発明の実施の形態のコントローラにおける速度決定部の動作例を示したフローチャートである。
符号の説明
10…テープドライブ、11…ホストI/F、12…バッファ、13…チャネル、14…ヘッド、15…モータ、16…コントローラ、17…ヘッド位置制御システム、18…モータドライバ

Claims (10)

  1. 上位装置から送られたデータを一時的にバッファに格納した後にテープ媒体に書き込むテープドライブにおける当該テープ媒体の走行を制御する装置であって、
    前記バッファに格納された第1のデータを前記テープ媒体に書き込んだ後、当該第1のデータの次の第2のデータを当該テープ媒体に書き込むのに先立ち、当該第2のデータが当該テープ媒体に書き込まれるまでに当該テープ媒体に書き込まれるデータの容量である第1の容量と、当該テープ媒体に最終的に公称の容量のデータが書き込まれるために当該テープ媒体上の現在位置までに書き込まれることが必要なデータの容量である第2の容量とを比較し、当該第1の容量が当該第2の容量よりも大きければ、バックヒッチを行わずに当該第2のデータを当該テープ媒体に書き込むと判定し、当該第1の容量が当該第2の容量よりも小さければ、バックヒッチを行ってから当該第2のデータを当該テープ媒体に書き込むと判定する判定部と、
    前記判定部によりバックヒッチを行わずに前記第2のデータを前記テープ媒体に書き込むと判定された場合に、当該テープ媒体の速度を、前記上位装置から送られた所定サイズのデータを前記バッファに格納するのに要する時間よりも当該バッファに格納された当該所定サイズのデータを当該テープ媒体に書き込むのに要する時間が長くなるという条件を満たす特定の速度に変更する変更部と
    を含む、装置。
  2. 前記判定部は、前記第1のデータが前記テープ媒体に書き込まれるまでにバックヒッチを行わずにデータが書き込まれた回数である第1の回数と、バックヒッチを行わずにデータが書き込まれる回数として許容される予め設定された回数である第2の回数比較し、当該第1の回数が当該第2の回数よりも少なければ、バックヒッチを行わずに前記第2のデータを当該テープ媒体に書き込むと判定し、当該第1の回数が当該第2の回数よりも多ければ、バックヒッチを行ってから前記第2のデータを当該テープ媒体に書き込むと判定する、請求項1の装置。
  3. 前記判定部は、前記第1のデータが前記テープ媒体に書き込まれるまでに発生したエラーの頻度である第1の頻度と、バックヒッチを行わずにデータを書き込む際に発生するエラーの頻度として許容される予め設定された頻度である第2の頻度比較し、当該第1の頻度が当該第2の頻度よりも低ければ、バックヒッチを行わずに前記第2のデータを当該テープ媒体に書き込むと判定し、当該第1の頻度が当該第2の頻度よりも高ければ、バックヒッチを行ってから前記第2のデータを当該テープ媒体に書き込むと判定する、請求項1の装置。
  4. 前記判定部は、前記テープ媒体上の現在位置とバックヒッチを行わずにデータが書き込まれた直近の位置との間の当該テープ媒体の長さである第1の長さと、バックヒッチを行わずにデータが書き込まれる2つの位置の間の当該テープ媒体の長さとして許容される予め設定された最小の長さである第2の長さ比較し、当該第1の長さが当該第2の長さよりも長ければ、バックヒッチを行わずに前記第2のデータを当該テープ媒体に書き込むと判定し、当該第1の長さが当該第2の長さよりも短ければ、バックヒッチを行ってから前記第2のデータを当該テープ媒体に書き込むと判定する、請求項1の装置。
  5. 前記特定の速度は、前記テープ媒体の速度として予め用意された複数の速度のうち、前記条件を満たす最も速い速度である、請求項1の装置。
  6. 過去の所定回数のデータの書込みと、各書込みを行ったときの前記テープ媒体の速度と、各書込みにおいてバックヒッチが発生したかどうかを示す情報とを対応付けて記憶する記憶部を更に備え、
    前記特定の速度は、前記テープ媒体の速度として予め用意された複数の速度のうち、前記記憶部においてバックヒッチが発生していないことを示す情報に対応付けて記憶された前記テープ媒体の速度である、請求項1の装置。
  7. 前記変更部は、バックヒッチを行った後、前記テープ媒体の速度を変更する、請求項1の装置。
  8. 上位装置から送られたデータを一時的にバッファに格納した後にテープ媒体に書き込むテープドライブにおける当該テープ媒体の走行を制御する装置であって、
    前記バッファに格納された第1のデータを前記テープ媒体に書き込んだ後、当該第1のデータの次の第2のデータを当該テープ媒体に書き込むのに先立ち、当該第2のデータが当該テープ媒体に書き込まれるまでに当該テープ媒体に書き込まれるデータの容量である第1の容量と、当該テープ媒体に最終的に公称の容量のデータが書き込まれるために当該テープ媒体上の現在位置までに書き込まれることが必要なデータの容量である第2の容量とを比較し、当該第1の容量が当該第2の容量よりも大きければ、バックヒッチを行わずに当該第2のデータを当該テープ媒体に書き込むと判定し、当該第1の容量が当該第2の容量よりも小さければ、バックヒッチを行ってから当該第2のデータを当該テープ媒体に書き込むと判定する判定部と、
    前記判定部によりバックヒッチを行わずに前記第2のデータを前記テープ媒体に書き込むと判定された場合に、当該テープ媒体の速度として予め用意された複数の速度のうち、前記上位装置から送られた所定サイズのデータを前記バッファに格納するのに要する時間よりも当該バッファに格納された当該所定サイズのデータを当該テープ媒体に書き込むのに要する時間が長くなるという条件を満たす最も速い速度である第1の速度を選択する第1の選択部と、
    過去の所定回数のデータの書込みの何れかにおいて、前記第1の選択部により選択された前記第1の速度が用いられ、かつ、バックヒッチが発生している場合に、前記複数の速度のうち、当該第1の速度よりも遅い第2の速度を選択する第2の選択部と、
    前記第2の選択部により選択された前記第2の速度が前記テープ媒体の現在の速度と異なる場合に、バックヒッチを行った後、当該テープ媒体の速度を当該第2の速度に変更する変更部と
    を含む、装置。
  9. 上位装置から送られたデータを一時的にバッファに格納した後にテープ媒体に書き込むテープドライブにおける当該テープ媒体の走行を制御する方法であって、
    前記バッファに格納された第1のデータを前記テープ媒体に書き込んだ後、当該第1のデータの次の第2のデータを当該テープ媒体に書き込むのに先立ち、当該第2のデータが当該テープ媒体に書き込まれるまでに当該テープ媒体に書き込まれるデータの容量である第1の容量と、当該テープ媒体に最終的に公称の容量のデータが書き込まれるために当該テープ媒体上の現在位置までに書き込まれることが必要なデータの容量である第2の容量とを比較し、当該第1の容量が当該第2の容量よりも大きければ、バックヒッチを行わずに当該第2のデータを当該テープ媒体に書き込むと判定し、当該第1の容量が当該第2の容量よりも小さければ、バックヒッチを行ってから当該第2のデータを当該テープ媒体に書き込むと判定するステップと、
    バックヒッチを行わずに前記第2のデータを前記テープ媒体に書き込むと判定された場合に、当該テープ媒体の速度を、前記上位装置から送られた所定サイズのデータを前記バッファに格納するのに要する時間よりも当該バッファに格納された当該所定サイズのデータを当該テープ媒体に書き込むのに要する時間が長くなるという条件を満たす特定の速度に変更するステップと
    を含む、方法。
  10. 上位装置から送られたデータを一時的にバッファに格納した後にテープ媒体に書き込むテープドライブにおける当該テープ媒体の走行を制御する装置としてコンピュータを機能させるプログラムであって、
    前記コンピュータを、
    前記バッファに格納された第1のデータを前記テープ媒体に書き込んだ後、当該第1のデータの次の第2のデータを当該テープ媒体に書き込むのに先立ち、当該第2のデータが当該テープ媒体に書き込まれるまでに当該テープ媒体に書き込まれるデータの容量である第1の容量と、当該テープ媒体に最終的に公称の容量のデータが書き込まれるために当該テープ媒体上の現在位置までに書き込まれることが必要なデータの容量である第2の容量とを比較し、当該第1の容量が当該第2の容量よりも大きければ、バックヒッチを行わずに当該第2のデータを当該テープ媒体に書き込むと判定し、当該第1の容量が当該第2の容量よりも小さければ、バックヒッチを行ってから当該第2のデータを当該テープ媒体に書き込むと判定する手段と、
    バックヒッチを行わずに前記第2のデータを前記テープ媒体に書き込むと判定された場合に、当該テープ媒体の速度を、前記上位装置から送られた所定サイズのデータを前記バッファに格納するのに要する時間よりも当該バッファに格納された当該所定サイズのデータを当該テープ媒体に書き込むのに要する時間が長くなるという条件を満たす特定の速度に変更する手段と
    して機能させる、プログラム。
JP2008142014A 2008-05-30 2008-05-30 テープ媒体の走行を制御する装置及び方法 Expired - Fee Related JP4954141B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008142014A JP4954141B2 (ja) 2008-05-30 2008-05-30 テープ媒体の走行を制御する装置及び方法
US12/474,544 US8035912B2 (en) 2008-05-30 2009-05-29 System and method for controlling traveling of tape

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008142014A JP4954141B2 (ja) 2008-05-30 2008-05-30 テープ媒体の走行を制御する装置及び方法

Publications (2)

Publication Number Publication Date
JP2009289349A JP2009289349A (ja) 2009-12-10
JP4954141B2 true JP4954141B2 (ja) 2012-06-13

Family

ID=41379483

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008142014A Expired - Fee Related JP4954141B2 (ja) 2008-05-30 2008-05-30 テープ媒体の走行を制御する装置及び方法

Country Status (2)

Country Link
US (1) US8035912B2 (ja)
JP (1) JP4954141B2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2309506B1 (en) * 2008-07-08 2014-05-21 International Business Machines Corporation Device for adjusting traveling speed of tape medium, method for adjusting traveling speed, and program for adjusting traveling speed
JP5567260B2 (ja) * 2008-08-05 2014-08-06 インターナショナル・ビジネス・マシーンズ・コーポレーション テープ媒体にデータを書き込む装置及び方法
US7995303B2 (en) * 2009-08-31 2011-08-09 International Business Machines Corporation Overhead calculation in writing synchronized data to magnetic tape
US8810951B2 (en) * 2009-11-13 2014-08-19 International Business Machines Corporation Apparatus and method for controlling data writing to a tape medium
WO2011077798A1 (ja) * 2009-12-22 2011-06-30 インターナショナル・ビジネス・マシーンズ・コーポレーション テープ媒体の走行を制御する装置及び方法
JP5325128B2 (ja) * 2010-01-15 2013-10-23 インターナショナル・ビジネス・マシーンズ・コーポレーション データの書込みを制御する装置及び方法
JP5643152B2 (ja) * 2011-05-19 2014-12-17 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation テープ記憶装置、データ書込み方法、及び、プログラム
US8908314B2 (en) * 2011-08-19 2014-12-09 Oracle International Corporation Data file information based selection of tape drive tape speed
JP5753476B2 (ja) 2011-10-27 2015-07-22 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation データをシーケンシャルに記録する記憶装置
US9959045B2 (en) 2012-04-17 2018-05-01 International Business Machines Corporation Write procedure using estimated best setting in first run
JP5932877B2 (ja) * 2014-04-15 2016-06-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation テープメディアへファイルを書き込む所要時間の低減
US10467146B1 (en) 2018-05-02 2019-11-05 International Business Machines Corporation Tape drive with intelligent selection of wrap / track for temporarily storing flushed data
US10453485B1 (en) * 2018-11-26 2019-10-22 International Business Machines Corporation Increasing data storage capacity by reducing index entries

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4176380A (en) * 1978-01-09 1979-11-27 International Business Machines Corporation Adaptive speed/interblock gap control for tape drive
JP2722744B2 (ja) * 1990-01-19 1998-03-09 松下電器産業株式会社 ディジタルデータ記録再生装置
JPH06202814A (ja) * 1992-09-30 1994-07-22 Hitachi Ltd 磁気テープ記憶装置の記憶制御方法
US6307701B1 (en) * 1998-10-20 2001-10-23 Ecrix Corporation Variable speed recording method and apparatus for a magnetic tape drive
US6856479B2 (en) 2002-01-29 2005-02-15 International Business Machines Corporation Writing synchronized data to magnetic tape
US6958878B2 (en) * 2003-10-27 2005-10-25 International Business Machines Corporation Forced backhitch for speed matching in a multi-speed tape drive
JP2008016117A (ja) * 2006-07-05 2008-01-24 Fujitsu Ltd テープへのデータ書込方法、テープへのデータ書込プログラム、及びテープ記憶装置
US20090125649A1 (en) * 2007-11-14 2009-05-14 Turguy Goker Variable speed buffer servo control for linear tape drives

Also Published As

Publication number Publication date
US20090296268A1 (en) 2009-12-03
US8035912B2 (en) 2011-10-11
JP2009289349A (ja) 2009-12-10

Similar Documents

Publication Publication Date Title
JP4954141B2 (ja) テープ媒体の走行を制御する装置及び方法
US9087549B2 (en) Apparatus and method for controlling transportation of tape medium
JP4131517B2 (ja) テープ媒体にデータを書き込むための装置
JP5199362B2 (ja) テープ媒体の走行速度調整装置、走行速度調整方法、及び走行速度調整プログラム
US10353624B2 (en) Apparatus and method for writing data to recording medium
US8498075B2 (en) Apparatus and method for writing data to tape medium
US6958878B2 (en) Forced backhitch for speed matching in a multi-speed tape drive
JP5065203B2 (ja) データのフォーマットを変換する装置及び方法
JP5643152B2 (ja) テープ記憶装置、データ書込み方法、及び、プログラム
JP2008276879A (ja) 書込みリトライ方法及び磁気テープ装置
US9412409B2 (en) Controlling a tape speed to manage a tape drive buffer
WO2011058794A1 (ja) データの書込みを制御する装置及び方法
JP5764050B2 (ja) データを書き込む装置及び方法
JP2010040106A (ja) テープ媒体にデータを書き込む装置及び方法
EP1672628A1 (en) System and method for controlling the speed of a tape drive

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110223

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111101

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120127

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120221

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20120221

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120313

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150323

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees