JP5764050B2 - データを書き込む装置及び方法 - Google Patents

データを書き込む装置及び方法 Download PDF

Info

Publication number
JP5764050B2
JP5764050B2 JP2011273880A JP2011273880A JP5764050B2 JP 5764050 B2 JP5764050 B2 JP 5764050B2 JP 2011273880 A JP2011273880 A JP 2011273880A JP 2011273880 A JP2011273880 A JP 2011273880A JP 5764050 B2 JP5764050 B2 JP 5764050B2
Authority
JP
Japan
Prior art keywords
data
written
capacity
threshold
recording area
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
JP2011273880A
Other languages
English (en)
Other versions
JP2013125566A (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 JP2011273880A priority Critical patent/JP5764050B2/ja
Priority to US13/706,246 priority patent/US8665542B2/en
Publication of JP2013125566A publication Critical patent/JP2013125566A/ja
Application granted granted Critical
Publication of JP5764050B2 publication Critical patent/JP5764050B2/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/008Recording on, or reproducing or erasing from, magnetic tapes, sheets, e.g. cards, or wires
    • G11B5/00813Recording on, or reproducing or erasing from, magnetic tapes, sheets, e.g. cards, or wires magnetic tapes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/90Tape-like record carriers

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Description

本発明は、データを書き込む装置及び方法に関する。特に、本発明は、上位装置から送られたデータをバッファに蓄積し、上位装置から送られたコマンドに応じて、バッファに蓄積されたデータをテープ媒体に書き込む装置、及び、その装置におけるデータを書き込む方法に関する。
磁気テープ等のテープ媒体にデータを書き込むテープドライブでは、データを一旦バッファに蓄積しておき、ドライブの都合の良いタイミングでバッファからテープ媒体へデータを書き込むのが一般的である。ホストは、ドライブに送ったデータが全てテープ媒体上に書き出されていることを保証するため、強制的にデータを書き込むためのコマンド(WriteFM Non Immediateコマンド)をドライブに送る。このようなバッファからテープ媒体への強制書込みを「同期」という。
ところで、同期が発生した後にテープ媒体を停止させないと、テープ媒体上で、先行する同期にて書き込まれたデータと次に書き込まれたデータとの間にギャップが生じる。その結果、テープ媒体の記録領域が無駄になってしまう。そのため、バックヒッチを行う必要がある。バックヒッチとは、テープ媒体の走行速度を減速して一旦停止し、逆方向に走行し、その後、再度元の方向に走行して書き込むべき位置に達して次のデータを書く、という一連の動作のことである。次のデータは、このバックヒッチが完了するまで書き込むことができない。バックヒッチには約2〜3秒程度の時間を要するため、バックヒッチの発生は、パフォーマンスに大きな影響を与える。
そこで、かかる状況を回避するための技術として、RABF(Recursive Accumulating Backhitchless Flush)が提案されている(例えば、特許文献1参照)。
この特許文献1からも分かるように、RABFとは、テープドライブが、トランザクション(同期の間に書き込まれるデータ)を、バックヒッチを行うことなく磁気テープに書き込み、その際、トランザクションをバッファに蓄積し、その後で、蓄積したトランザクションをバッファから磁気テープに反復的に順次書き込む手法である。RABFでは、蓄積したトランザクションを磁気テープに反復的に書き込むときにしかバックヒッチが行われないので、反復的に書き込むトランザクションを先行するデータに続けて配置することができ、性能及び容量が最大になる。
但し、RABFは、トランザクションサイズ(同期の間に書き込まれるデータの量)が小さい場合に同期パフォーマンスを向上させる手法である。トランザクションサイズが一定以上になると、一時的にデータを違う場所に書いてそれを反復的に書き込む作業のオーバーヘッドの方が大きくなる。
そこで、トランザクションサイズが大きい場合に同期パフォーマンスを向上させる技術として、SWBF(Same Wrap Backhitchless Flush)が提案されている(例えば、特許文献2参照)。
この特許文献2からも分かるように、SWBFとは、テープ媒体の公称の記憶容量に悪影響を行えることなく、テープ媒体の停止や反対方向への移動がないバックヒッチなしの書き込みを行う手法である。
米国特許第6856479号明細書 米国特許第7903363号明細書
このように、特許文献1のRABFはトランザクションサイズが小さい場合に有効な技術であり、特許文献2のSWBFはトランザクションサイズが大きい場合に有効な技術である。従って、トランザクションサイズが閾値を超えなければRABFを起動し、トランザクションサイズが閾値を超えればSWBFを実行することは考えられる。
しかしながら、トランザクションサイズが、RABFが有効なサイズであったとしても、その中で比較的大きいサイズである場合には、一時的にデータを違う場所に書いてそれを本来書くべき場所に書き直す作業の回数(RABFサイクルの数)が多くなり、この作業のオーバーヘッドによってパフォーマンスが低下する。こうしたことから、RABFサイクルの数を減少させることによってパフォーマンスを向上する手法が求められていた。
本発明の目的は、データをテープ媒体に書き込む際に、RABFサイクルの数を減少させることによってパフォーマンスを向上することにある。
かかる目的のもと、本発明は、上位装置から送られたデータをバッファに蓄積し、上位装置から送られたコマンドに応じて、バッファに蓄積されたデータをテープ媒体上の通常記録領域にバックヒッチを伴わずに書き込む第1の動作、及び、バッファに蓄積されたデータをテープ媒体上の一時記録領域にバックヒッチを伴わずに書き込んだ後、一時記録領域に書き込まれたデータを含むデータ群であって各データ間のギャップを削減したデータ群を通常記録領域に書き込む第2の動作の何れかを選択的に行う装置において、コマンドに応じて第1の動作及び第2の動作の何れかが行われたことにより第1のデータが通常記録領域に書き込まれた際に、第1のデータの容量である第1の容量を取得する取得部と、第1のデータが通常記録領域に書き込まれた後に送られるコマンドに応じて書き込まれる第2のデータの容量である第2の容量を予測する予測部と、取得部により取得された第1の容量が第1の閾値を超えているかどうか、及び、予測部により予測された第2の容量が第2の閾値を超えているかどうかを判定する判定部と、判定部により第1の容量が第1の閾値を超えており第2の容量が第2の閾値を超えていると判定された場合に、第1のデータが通常記録領域に書き込まれた後に送られたコマンドに応じて、第2のデータについて第1の動作が行われるように制御し、判定部により第1の容量が第1の閾値を超えており第2の容量が第2の閾値を超えていないと判定された場合に、第1のデータが通常記録領域に書き込まれた後に送られたコマンドに応じて、第2のデータについて第2の動作が行われるように制御する制御部とを含む、装置を提供する。
ここで、この装置において、制御部は、判定部により第1の容量が第1の閾値を超えていないと判定された場合に、第1のデータが通常記録領域に書き込まれた後に送られたコマンドに応じて、第2のデータについて第2の動作が行われるように制御する、ものであってよい。
また、この装置において、判定部は、予測部により予測された第2の容量が第2の閾値よりも大きい第3の閾値を超えているかどうかを更に判定し、制御部は、判定部により第2の容量が第3の閾値を超えていると判定された場合に、第1のデータが通常記録領域に書き込まれた後に送られたコマンドに応じて、第2のデータについて第1の動作が行われるように制御する、ものであってよい。
また、本発明は、上位装置から送られたデータをバッファに蓄積し、上位装置から送られたコマンドに応じて、バッファに蓄積されたデータをテープ媒体上の通常記録領域にバックヒッチを伴わずに書き込む第1の動作、及び、バッファに蓄積されたデータをテープ媒体上の一時記録領域にバックヒッチを伴わずに書き込んだ後、一時記録領域に書き込まれたデータを含むデータ群であって各データ間のギャップを削減したデータ群を通常記録領域に書き込む第2の動作の何れかを選択的に行う装置において、コマンドに応じて第1の動作及び第2の動作の何れかが行われたことにより第1のデータが通常記録領域に書き込まれた際に、第1のデータの容量である第1の容量を取得する取得部と、第1のデータが通常記録領域に書き込まれた後に送られるコマンドに応じて書き込まれる第2のデータの容量である第2の容量を予測する予測部と、取得部により取得された第1の容量が第1の閾値を超えているかどうか、予測部により予測された第2の容量が第1の閾値を超えているかどうか、及び、予測部により予測された第2の容量が第1の閾値よりも小さい第2の閾値を超えているかどうかを判定する判定部と、判定部により第2の容量が第1の閾値を超えていると判定された場合に、第1のデータが通常記録領域に書き込まれた後に送られたコマンドに応じて、第2のデータについて第1の動作が行われるように制御し、判定部により第1の容量が第1の閾値を超えており第2の容量が第1の閾値を超えておらず第2の閾値を超えていると判定された場合に、第1のデータが通常記録領域に書き込まれた後に送られたコマンドに応じて、第2のデータについて第1の動作が行われるように制御し、判定部により第1の容量が第1の閾値を超えており第2の容量が第2の閾値を超えていないと判定された場合に、第1のデータが通常記録領域に書き込まれた後に送られたコマンドに応じて、第2のデータについて第2の動作が行われるように制御し、判定部により第1の容量が第1の閾値を超えておらず第2の容量が第1の閾値を超えていないと判定された場合に、第1のデータが通常記録領域に書き込まれた後に送られたコマンドに応じて、第2のデータについて第2の動作が行われるように制御する制御部とを含む、装置も提供する。
また、本発明は、上位装置から送られたデータをバッファに蓄積し、上位装置から送られたコマンドに応じて、バッファに蓄積されたデータをテープ媒体に書き込む装置における、データを書き込む方法であって、コマンドに応じて、バッファに蓄積された第1のデータをテープ媒体上の一時記録領域にバックヒッチを伴わずに書き込んだ後、一時記録領域に書き込まれた第1のデータを含むデータ群であって各データ間のギャップを削減したデータ群である第1のデータ群をテープ媒体上の通常記録領域に書き込むステップと、第1のデータ群が通常記録領域に書き込まれた際に、第1のデータ群の総容量である第1の容量を取得するステップと、第1のデータ群が通常記録領域に書き込まれた後に送られるコマンドに応じて書き込まれる第2のデータの容量である第2の容量を予測するステップと、取得された第1の容量が第1の閾値を超えているかどうかを判定するステップと、予測された第2の容量が第2の閾値を超えているかどうかを判定するステップと、第1の容量が第1の閾値を超えており第2の容量が第2の閾値を超えていると判定された場合に、第1のデータ群が通常記録領域に書き込まれた後に送られたコマンドに応じて、第2のデータを通常記録領域にバックヒッチを伴わずに書き込むステップと、第1の容量が第1の閾値を超えており第2の容量が第2の閾値を超えていないと判定された場合に、第1のデータ群が通常記録領域に書き込まれた後に送られたコマンドに応じて、第2のデータを一時記録領域にバックヒッチを伴わずに書き込んだ後、一時記録領域に書き込まれた第2のデータを含むデータ群であって各データ間のギャップを削減したデータ群である第2のデータ群を通常記録領域に書き込むステップとを含む、方法も提供する。
ここで、この方法は、第2のデータが通常記録領域に書き込まれた際に、第2の容量を取得するステップと、第2のデータが通常記録領域に書き込まれた後に送られるコマンドに応じて書き込まれる第3のデータの容量である第3の容量を予測するステップと、取得された第2の容量が第1の閾値を超えているかどうかを判定するステップと、予測された第3の容量が第2の閾値を超えているかどうかを判定するステップと、第2の容量が第1の閾値を超えており第3の容量が第2の閾値を超えていると判定された場合に、第2のデータが通常記録領域に書き込まれた後に送られたコマンドに応じて、第3のデータを通常記録領域にバックヒッチを伴わずに書き込むステップと、第2の容量が第1の閾値を超えており第3の容量が第2の閾値を超えていないと判定された場合に、第2のデータが通常記録領域に書き込まれた後に送られたコマンドに応じて、第3のデータを一時記録領域に記録した後、一時記録領域に記録された第3のデータを含むデータ群であって各データ間のギャップを削減したデータ群である第3のデータ群を通常記録領域に書き込むステップとを更に含む、ものであってよい。
更にまた、本発明は、上位装置から送られたデータをバッファに蓄積し、上位装置から送られたコマンドに応じて、バッファに蓄積されたデータをテープ媒体上の通常記録領域にバックヒッチを伴わずに書き込む第1の動作、及び、バッファに蓄積されたデータをテープ媒体上の一時記録領域にバックヒッチを伴わずに書き込んだ後、一時記録領域に書き込まれたデータを含むデータ群であって各データ間のギャップを削減したデータ群を通常記録領域に書き込む第2の動作の何れかを選択的に行うコンピュータにおけるプログラムであって、コンピュータを、コマンドに応じて第1の動作及び第2の動作の何れかが行われたことにより第1のデータが通常記録領域に書き込まれた際に、第1のデータの容量である第1の容量を取得する取得部と、第1のデータが通常記録領域に書き込まれた後に送られるコマンドに応じて書き込まれる第2のデータの容量である第2の容量を予測する予測部と、取得部により取得された第1の容量が第1の閾値を超えているかどうか、及び、予測部により予測された第2の容量が第2の閾値を超えているかどうかを判定する判定部と、判定部により第1の容量が第1の閾値を超えており第2の容量が第2の閾値を超えていると判定された場合に、第1のデータが通常記録領域に書き込まれた後に送られたコマンドに応じて、第2のデータについて第1の動作が行われるように制御し、判定部により第1の容量が第1の閾値を超えており第2の容量が第2の閾値を超えていないと判定された場合に、第1のデータが通常記録領域に書き込まれた後に送られたコマンドに応じて、第2のデータについて第2の動作が行われるように制御する制御部として機能させる、プログラムも提供する。
本発明によれば、データをテープ媒体に書き込む際に、RABFサイクルの数を減少させることによってパフォーマンスを向上することができる。
本発明の実施の形態が適用されるテープドライブの構成を示したブロック図である。 一般的なRABFの動きを模式的に示した図である。 本発明の実施の形態における手法の動きを模式的に示した図である。 本発明の実施の形態におけるコントローラの機能構成例を示したブロック図である。 本発明の実施の形態のコントローラにおける各サイズ収集時の動作例を示したフローチャートである。 本発明の実施の形態のコントローラにおける動作決定時の動作例を示したフローチャートである。
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
図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において、トランザクションサイズが閾値を超えていなければRABFを起動し、トランザクションサイズが閾値を超えていればSWBFを起動する場合を考える。この場合、トランザクションサイズが閾値を超えた辺りから、SWBFに切り替わることによりパフォーマンスは著しく向上する。しかしながら、RABFからSWBFに切り替わるときのトランザクションサイズの近傍では、パフォーマンスを向上するための改善の余地があった。
そこで、本実施の形態では、トランザクションサイズが、RABFが起動されるときのサイズの中で比較的大きなものである場合に、RABFにおける本来書くべき場所でのバックヒッチの発生頻度を減らすことにより、パフォーマンスを向上する手法を提案する。
このように、本実施の形態はRABFを改良したものであるので、まず、一般的なRABFの動きについて説明する。
図2は、一般的なRABFの動きを模式的に示した図である。尚、ここでは、同期の間に書き込まれるデータ(1回のトランザクション分のデータ)を矩形で表し、i番目のデータを「D#i」と表記している。
図では、通常記録領域の一例である通常ラップ201にデータ「D#N」を書き込んだ後、次のデータ「D#N+1」のサイズ(トランザクションサイズ)が閾値以下だったため、一時記録領域の一例であるABFラップ202にデータ「D#N+1」、「D#N+2」、「D#N+3」、「D#N+4」、・・・、「D#M」を書き込んでいる。このとき、データ「D#N+1」、「D#N+2」、「D#N+3」、「D#N+4」、・・・、「D#M」はバックヒッチなしで書き込まれるので、各データ間にはギャップが生じる。その後、一定の条件が満たされた場合に、ABFラップ202に書き込まれたデータを、ギャップを削減して(理想的にはギャップなしで)再帰的書込み(Recursive Write)データ203として通常ラップ201に書き込んでいる。
尚、この一定の条件には、次のような条件がある。
第1の条件は、バッファ12に空き容量がなくなったという条件である。ABFラップ202に書き込まれるデータは通常ラップ201への再帰的書込みのためにバッファ12に蓄積する必要があることから、このような条件が採用される。
第2の条件は、ABFラップ202にデータを書き込める領域がなくなったという条件である。
第3の条件は、ABFラップ202で書込みエラーが発生するという条件である。
第4の条件は、書込み処理そのものが終了し、例えばテープ23の排出要求(Unloadコマンド)を受け付けたという条件である。
一般的に、トランザクションサイズが比較的大きいデータを処理する場合には、第1の条件が満たされることで再帰的書込みが行われ、トランザクションサイズが比較的小さいデータを処理する場合には、第2の条件が満たされることで再帰的書込みが行われる。
このようにして再帰的書込みデータ203の書込みが終わると、この一般的なRABFの場合、次のデータを、矢印204で示すように、再度ABFラップ202に書き込む。
次に、本実施の形態における手法の動きについて説明する。
図3は、本実施の形態における手法の動きを模式的に示した図である。尚、ここでも、同期の間に書き込まれるデータ(1回のトランザクション分のデータ)を矩形で表し、i番目のデータを「D#i」と表記している。
図において、再帰的書込みデータ203を書き込むところまでは、図2と同様である。しかしながら、本実施の形態では、再帰的書込みデータ203の書込みが終わると、再帰的書込みデータ203の容量、及び、次のデータ「D#M+1」の予想されるトランザクションサイズによっては、次のデータ「D#M+1」をバックヒッチなしで通常ラップ201に書くSWBFに類似の動作を行う。そして、その次のデータからは、矢印205で示すように、図2と同様、ABFラップ202に書き込む。
このように、本実施の形態では、複数のRABFサイクルごとに、1回のトランザクション分のデータをABFラップ202に書き込まなくなる。これにより、RABFサイクルの数が減少し、パフォーマンスが向上する。
また、本実施の形態では、SWBFを起動するには少し小さなトランザクションサイズのデータをテープ23に書き込む場合に、再帰的書き込みというまとめ書きの作業を1回のトランザクションとみなし、このまとめ書きの作業の後に限り、バックヒッチをスキップするようにした。これにより、不必要にバックヒッチがスキップされてテープ23上の容量が低下することを防ぐことができる。
尚、図3において、データ「D#N+1」、「D#N+2」、「D#N+3」、「D#N+4」、・・・、「D#M」は何れも第1のデータの一例であり、これらのデータを含む再帰的書込みデータ203は第1のデータ群の一例である。また、データ「D#M+1」は第2のデータの一例であり、仮にデータ「D#M+1」が再帰的書込みデータ203の容量及びデータ「D#M+1」のトランザクションサイズによってABFラップ202に書き込まれたとすると、その後に通常ラップ201に書き込まれるデータ「D#M+1」を含む再帰的書込みデータが第2のデータ群の一例である。更に、データ「D#M+1」が通常ラップ201に書き込まれた後にデータ「D#M+2」が書き込まれるとすると、このデータ「D#M+2」が第3のデータの一例であり、データ「D#M+2」がデータ「D#M+1」のトランザクションサイズによってABFラップ202に書き込まれたとすると、その後に通常ラップ201に書き込まれるデータ「D#M+2」を含む再帰的書込みデータが第3のデータ群の一例である。
次に、このような動作を実現するためのコントローラ16の機能構成について説明する。
図4は、コントローラ16の機能構成例を示したブロック図である。
図示するように、コントローラ16は、コマンド処理部41と、バッファ管理部42と、チャネル入出力部43とを備える。また、トランザクションサイズ取得部44と、トランザクションサイズ記憶部45と、書込みデータサイズ取得部46と、書込みデータサイズ記憶部47とを備える。更に、トランザクションサイズ予測部48と、動作決定部49と、動作信号出力部40とを備える。
このうち、コマンド処理部41は、ホストI/F11からコマンドを受け取る。ここで、コマンドとしては、バッファ12にデータを格納することを指示するWriteコマンド、バッファ12に格納されたデータをテープ23に書き込む同期コマンド(WriteFMコマンド等)がある。
バッファ管理部42は、コマンド処理部41がWriteコマンドを受け取った場合は、データをバッファ12内に用意する。また、コマンド処理部41が同期コマンドを受け取った場合は、データをバッファ12から読み出してチャネル入出力部43に出力する。
チャネル入出力部43は、バッファ管理部42がバッファ12から読み出したデータをチャネル13に出力したり、チャネル13から受け取ったデータをバッファ12に格納したりする。また、テープ23にデータセットを書き込む都度、データセットに関する判定を行い、その判定結果に基づいて、トランザクションサイズ取得部44に対するトランザクションサイズの取得の開始若しくは終了の指示、又は、書込みデータサイズ取得部46に対する書込みデータサイズの取得の開始若しくは終了の指示を行う。
トランザクションサイズ取得部44は、同期コマンドに応じてテープ23にデータが書き込まれる都度、前回の同期コマンドに応じた書込み時又は最初の書込み時から今回の同期コマンドに応じた書込み時までに書き込まれたデータのサイズ(トランザクションサイズ)を取得する。
トランザクションサイズ記憶部45は、トランザクションサイズ取得部44が取得したトランザクションサイズを時系列に記憶する。
書込みデータサイズ取得部46は、同期コマンドに応じてテープ23にデータが書き込まれる都度、前回の同期コマンドに応じた書込み時若しくは最初の書込み時から今回の同期コマンドに応じた書込み時までに書き込まれたデータのサイズ、又は、再帰的書込みで書き込まれたデータのサイズを取得する。ここでは、これらの書き込まれたデータのサイズを総称して、「書込みデータサイズ」と呼ぶものとする。本実施の形態では、第1のデータの一例として、これらの書き込まれたデータを用いており、第1のデータの容量である第1の容量の一例として、書込みデータサイズを用いている。また、第1の容量を取得する取得部の一例として、書込みデータサイズ取得部46を設けている。
書込みデータサイズ記憶部47は、書込みデータサイズ取得部46が取得した書込みデータサイズを記憶する。
トランザクションサイズ予測部48は、トランザクションサイズ記憶部45に記憶されたトランザクションサイズの履歴に基づいて、次の同期コマンドに応じてテープ23に書き込まれるデータのサイズ(トランザクションサイズ)を予測する。本実施の形態では、第2のデータの一例として、次の同期コマンドに応じてテープ23に書き込まれるデータを用いており、第2のデータの容量である第2の容量の一例として、そのデータのトランザクションサイズを用いている。また、第2の容量を予測する予測部の一例として、トランザクションサイズ予測部48を設けている。
動作決定部49は、トランザクションサイズ予測部48が予測したトランザクションサイズが閾値を超えているか、及び、書込みデータサイズ記憶部47に記憶された書込みデータサイズが閾値を超えているかに基づいて、バックヒッチせずに通常ラップ201で次のデータを待つ動作、及び、ABFラップ202に移動して次のデータを待つ動作の何れを行うかを決定する。本実施の形態では、第1の容量が第1の閾値を超えているかどうか、第2の容量が第1の閾値を超えているかどうか、及び、第2の容量が第2の閾値を超えているかどうかを判定する判定部の一例として、動作決定部49を設けている。
動作信号出力部40は、ヘッド位置制御システム17及びモータドライバ18に対して、動作決定部49で決定された動作を行うことを指示する信号を出力する。本実施の形態では、第1の動作の一例として、バックヒッチせずに通常ラップ201で次のデータを待つ動作を用いており、第2の動作の一例として、ABFラップ202に移動して次のデータを待つ動作を用いている。また、第2の容量が第1の閾値を超えていると判定された場合、及び、第1の容量が第1の閾値を超えており第2の容量が第1の閾値を超えておらず第2の閾値を超えていると判定された場合に、第2のデータについて第1の動作が行われるように制御し、第1の容量が第1の閾値を超えており第2の容量が第2の閾値を超えていないと判定された場合、及び、第1の容量が第1の閾値を超えておらず第2の容量が第1の閾値を超えていないと判定された場合に、第2のデータについて第2の動作が行われるように制御する制御部の一例として、動作信号出力部40を設けている。
次に、コントローラ16の動作について説明する。
図5は、コントローラ16がトランザクションサイズ及び書込みデータサイズを採取するときの動作例を示したフローチャートである。このフローチャートにおいて、Tx_Sizeはトランザクションサイズを表し、Dは書込みデータサイズを表す。尚、DSは、は、テープ23に書かれるデータの最小単位であるデータセットを表し、ファームウエアはデータセットの書込みが完了した時点でこのフローチャートを実行し、Tx_Size及びDを取得する。
コントローラ16では、まず、チャネル入出力部43が、書き込んだデータセットが書き始めのデータセットであるかどうかを判定する(ステップ401)。ここで、書き始めのデータセットとは、テープ23をマウントして全く初めて書き込んだデータセット、テープ23からデータを読み込む動作を行った後に初めて書き込んだデータセット等である。
チャネル入出力部43が、書き込んだデータセットが書き始めのデータセットであると判定すると、チャネル入出力部43からのTx_Sizeの取得の開始指示により、トランザクションサイズ取得部44が、Tx_Sizeのモニタを開始する(ステップ405)。また、チャネル入出力部43からのDの取得の開始指示により、書込みデータサイズ取得部46が、Dのモニタを開始する(ステップ406)。
また、チャネル入出力部43は、書き込んだデータセットが書き始めのデータセットでないと判定すると、次に、書き込んだデータセットが同期を行った直後の書込みにおける最初のデータセットであるかどうかを判定する(ステップ402)。ここで、同期を行った直後の書込みにおける最初のデータセットとは、テープ23にデータが継続して書き込まれているときの同期直後のデータセット等である。尚、同期コマンドが来なくてもテープ23にデータが書き込まれることはあるので、この同期を行った直後の書込みは、同期コマンドによらない書込みも含む。
チャネル入出力部43が、書き込んだデータセットが同期を行った直後の書込みにおける最初のデータセットであると判定すると、チャネル入出力部43からのTx_Sizeの取得の開始指示により、トランザクションサイズ取得部44が、Tx_Sizeのモニタを開始する(ステップ405)。また、チャネル入出力部43からのDの取得の開始指示により、書込みデータサイズ取得部46が、Dのモニタを開始する(ステップ406)。
更に、チャネル入出力部43は、書き込んだデータセットが同期を行った直後の書込みにおける最初のデータセットでないと判定すると、次に、書き込んだデータセットが再帰的書込みにおける最初のデータセットであるかどうかを判定する(ステップ403)。ここで、現在の書込みが再帰的書込みであるかどうかは、図示しない記憶部に記憶されたRABFのステータス情報に基づいて判断することができる。
チャネル入出力部43が、書き込んだデータセットが再帰的書込みにおける最初のデータセットであると判定すると、チャネル入出力部43からのDの取得の開始指示により、書込みデータサイズ取得部46が、D(この場合は、再帰的書込みデータのサイズ)のモニタを開始する(ステップ406)。
更にまた、チャネル入出力部43は、書き込んだデータセットが再帰的書込みにおける最初のデータセットでないと判定すると、次に、書き込んだデータセットが同期完了時のデータセットであるかどうかを判定する(ステップ404)。
チャネル入出力部43が、書き込んだデータセットが同期完了時のデータセットであると判定すると、チャネル入出力部43からのTx_Sizeの取得の終了指示により、トランザクションサイズ取得部44が、Tx_Sizeのモニタを終了し、Tx_Sizeをトランザクションサイズ記憶部45に記憶する(ステップ407)。また、チャネル入出力部43からのDの取得の終了指示により、書込みデータサイズ取得部46が、Dのモニタを終了し、Dを書込みデータサイズ記憶部47に記憶する(ステップ408)。
図6は、コントローラ16が次のデータを書き込む際の動作を決定するときの動作例を示したフローチャートである。このフローチャートにおいて、Next_Estimated_Txは次のデータの予想されるトランザクションサイズを表し、Dは書込みデータサイズを表す。また、Threshold_AはSWBFとRABFとの間で切り替えを行うための閾値を表し、Threshold_BはDの値が大きくても効果が小さいためSWBFを行わないことを決定するための閾値を表す。ここで、Threshold_A及びThreshold_Bには、「Threshold_A>Threshold_B」の関係が成り立つような値を設定するものとする。例えば、Threshold_Aを200Bとし、Threshold_Bを20MBとするとよい。尚、コマンド処理部41が同期コマンドを受信すると、バッファ管理部42がバッファ12に蓄積されたデータを読み出し、チャネル入出力部43が同期を行う。そして、チャネル入出力部43が同期の完了を検知した時点で、このフローチャートは実行される。
コントローラ16では、まず、チャネル入出力部43からの指示により、トランザクションサイズ予測部48が、トランザクションサイズ記憶部45に記憶された過去のTx_Sizeの履歴に基づいて、Next_Estimated_Txを予測する(ステップ451)。例えば、過去の幾つかのTx_Sizeの平均値を算出することにより、Next_Estimated_Txを予測すればよい。
次に、チャネル入出力部43が、同期完了時にヘッド14が位置付けられているラップが通常ラップ201であるかABFラップ202であるかを判定する(ステップ452)。
まず、チャネル入出力部43が同期完了時にヘッド14が位置付けられているラップが通常ラップ201であると判定した場合の処理について説明する。
この場合、動作決定部49が、トランザクションサイズ予測部48が予測したNext_Estimated_TxがThreshold_Aを超えているかどうかを判定する(ステップ453)。
その結果、Next_Estimated_TxがThreshold_Aを超えていると判定されれば、動作決定部49が、SWBFの動作、つまり、即座にバックヒッチを行わずに通常ラップ201で次のデータの書込みの準備が整うのを待つ動作を決定し、動作決定部49からの指示により、動作信号出力部40が、ヘッド位置制御システム17及びモータドライバ18に対してその動作を指示する(ステップ456)。具体的には、ヘッド位置制御システム17に対してラップを切り替えることを指示せず、モータドライバ18に対してバックヒッチを行わずにそのままの速度でテープ23を走行させることを指示する。
一方、Next_Estimated_TxがThreshold_Aを超えていないと判定されれば、動作決定部49は、書込みデータサイズ記憶部47に記憶されたDがThreshold_Aを超えているかどうかを判定する(ステップ454)。
ここで、DがThreshold_Aを超えていると判定されれば、トランザクションサイズ予測部48が予測したNext_Estimated_TxがThreshold_Bを超えているかどうかを判定する(ステップ455)。
そして、Next_Estimated_TxがThreshold_Bを超えていると判定されれば、動作決定部49が、SWBFの動作、つまり、即座にバックヒッチを行わずに通常ラップ201で次のデータの書込みの準備が整うのを待つ動作を決定し、動作決定部49からの指示により、動作信号出力部40が、ヘッド位置制御システム17及びモータドライバ18に対してその動作を指示する(ステップ456)。具体的には、ヘッド位置制御システム17に対してラップを切り替えることを指示せず、モータドライバ18に対してバックヒッチを行わずにそのままの速度でテープ23を走行させることを指示する。
また、Next_Estimated_TxがThreshold_Bを超えていないと判定されれば、動作決定部49が、RABFの動作、つまり、ABFラップ202に移動して次のデータの書込みの準備が整うのを待つ動作を決定し、動作決定部49からの指示により、動作信号出力部40が、ヘッド位置制御システム17及びモータドライバ18に対してその動作を指示する(ステップ457)。具体的には、ヘッド位置制御システム17に対してラップをABFラップ202に切り替えることを指示し、モータドライバ18に対してバックヒッチを行わずにそのままの速度でテープ23を走行させることを指示する。
一方、ステップ454でDがThreshold_Aを超えていないと判定されれば、動作決定部49が、RABFの動作、つまり、ABFラップ202に移動して次のデータの書込みの準備が整うのを待つ動作を決定し、動作決定部49からの指示により、動作信号出力部40が、ヘッド位置制御システム17及びモータドライバ18に対してその動作を指示する(ステップ457)。具体的には、ヘッド位置制御システム17に対してラップをABFラップ202に切り替えることを指示し、モータドライバ18に対してバックヒッチを行わずにそのままの速度でテープ23を走行させることを指示する。
次に、チャネル入出力部43が同期完了時にヘッド14が位置付けられているラップがABFラップ202であると判定した場合の処理について説明する。
この場合、動作決定部49が、RABFの動作、つまり、ABFラップ202で次のデータの書込みの準備が整うのを待つ動作を決定し、動作決定部49からの指示により、動作信号出力部40が、ヘッド位置制御システム17及びモータドライバ18に対してその動作を指示する(ステップ458)。具体的には、ヘッド位置制御システム17に対してラップを切り替えることを指示せず、モータドライバ18に対してバックヒッチを行わずにそのままの速度でテープ23を走行させることを指示する。
尚、この動作例では、ステップ453で用いる閾値及びステップ454で用いる閾値を、何れもThreshold_Aとしたが、この限りではない。例えば、ステップ453で用いる閾値を、Threshold_Aとは異なり、Threshold_Bよりも大きいThreshold_Cとしてもよい。この場合、Threshold_Cは、第3の閾値の一例である。
また、この動作例では、ステップ453でNext_Estimated_TxがThreshold_Aを超えていると判定された場合にはステップ456を実行し、ステップ453でNext_Estimated_TxがThreshold_Aを超えていないと判定された場合にのみステップ454以降を実行するようにしたが、これには限らない。例えば、ステップ453でNext_Estimated_TxがThreshold_Aを超えているかどうかを判定することなく、無条件にステップ454以降を実行するようにしてもよい。
更に、この動作例では、ステップ454でDがThreshold_Aを超えていないと判定された場合には無条件でステップ457を実行するようにしたが、これもこの限りではない。例えば、何らかの条件が満たされた場合にのみステップ457へ進み、その条件が満たされない場合はステップ455へ進むようにしてもよい。
最後に、本実施の形態による効果について、具体的な数値を用いて説明する。
ここでは、Threshold_Aを200[MB]とし、Threshold_Bを20[MB]とし、バッファ12のサイズを800[MB]とする。そして、1つ目のABFラップ202から2つ目のABFラップ202へのラップターン時間(テープ23の走行方向の変更に要する時間)を1.5[sec]とし、ホスト30からの転送レートを100[MB/sec]とし、テープ23に書き込むときの転送レートを160[MB/sec]とし、トランザクションサイズを100[MB]とする。
また、説明を簡単にするために、次のような状況を仮定する。
第一に、テープ23が走行している場合、テープドライブ10はホスト30からデータを受け取ると同時にそのデータをテープ23に書き込むことができるものとする。よって、RABF中のオーバーヘッドは、バックヒッチ及びラップターン、再帰的書込みの実行のみであるとする。1回のRABFサイクルにおけるオーバーヘッドは、ラップターン時間の2倍に再帰的書込みの時間を加えた時間であるので、上記の数値を用いると、8[sec](=1.5[sec]×2+800[MB]/160[MB/sec])となる。
第二に、再帰的書込みを行うための条件は、先に述べた第1の条件(バッファ12に空き容量がなくなったという条件)のみであるとする。
このような前提の下、一般的なRABFで10000[MB]のデータを書き込んだ場合と、本実施の形態における手法で同じサイズのデータを書き込んだ場合とを比較する。
まず、一般的なRABFでデータを書き込んだ場合について説明する。
一般的なRABFで10000[MB]のデータを書くのに必要なRABFサイクルの数は、12.5(=10000[MB]/800[MB])であり、全体のオーバーヘッドは、100[sec](=8[sec]×12.5)となる。従って、テープドライブ10がテープ23にデータを書き込んだときの実際の転送レートは、50[MB/sec](=10000[MB]/(10000[MB]/100[MB/sec]+100[sec]))となる。
次に、本実施の形態における手法でデータを書き込んだ場合について説明する。
本実施の形態における手法で10000[MB]のデータを書くのに必要なRABFサイクルの数は、11.1(=10000[MB]/(800[MB]+100[MB]))であり、全体のオーバーヘッドは、88.8[sec](=8[sec]×11.1)となり、11.2[sec]の改善が見込まれる。そして、一般的なRABFと同様の計算を行うと、テープドライブ10がテープ23にデータを書き込んだときの実際の転送レートは、約53[MB/sec](=10000[MB]/(10000[MB]/100[MB/sec]+88.8[sec]))となり、約3[MB/sec]の転送レートの改善が見られる。
このように、本実施の形態では、RABFで再帰的書込みが行われた後、再帰的書込みデータと次のデータの予想されるトランザクションサイズとによっては、次のデータをバックヒッチレスで通常ラップ201に書き込むようにした。これにより、RABFサイクルの数が減少するので、データを書き込む際のパフォーマンスが向上した。
また、本実施の形態では、トランザクションサイズが小さいデータが連続する場合には、再帰的書込みデータの容量と組み合わせた判断に基づき、必要以上にバックヒッチをスキップしないようにした。これにより、むやみにバックヒッチをスキップすることによりテープ23上の容量を必要以上に減らしてしまうことが抑制された。
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム(装置又は機器)、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ(CD−ROM)、コンパクトディスク−リード/ライト(CD−R/W)及びDVDが含まれる。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
10…テープドライブ、11…ホストI/F、12…バッファ、13…チャネル、14…ヘッド、15…モータ、16…コントローラ、17…ヘッド位置制御システム、18…モータドライバ、40…動作信号出力部、41…コマンド処理部、42…バッファ管理部、43…チャネル入出力部、44…トランザクションサイズ取得部、45…トランザクションサイズ記憶部、46…書込みデータサイズ取得部、47…書込みデータサイズ記憶部、48…トランザクションサイズ予測部、49…動作決定部

Claims (9)

  1. 上位装置から送られたデータをバッファに蓄積し、当該上位装置から送られたコマンドに応じて、当該バッファに蓄積された当該データをテープ媒体上の通常記録領域にバックヒッチを伴わずに書き込む第1の動作、及び、当該バッファに蓄積された当該データを当該テープ媒体上の一時記録領域にバックヒッチを伴わずに書き込んだ後、当該一時記録領域に書き込まれた当該データを含むデータ群であって各データ間のギャップを削減したデータ群を通常記録領域に書き込む第2の動作の何れかを選択的に行う装置において、
    前記コマンドに応じて前記第1の動作及び前記第2の動作の何れかが行われたことにより第1のデータが前記通常記録領域に書き込まれた際に、当該第1のデータの容量である第1の容量を取得する取得部と、
    前記第1のデータが前記通常記録領域に書き込まれた後に送られる前記コマンドに応じて書き込まれる第2のデータの容量である第2の容量を予測する予測部と、
    前記取得部により取得された前記第1の容量が第1の閾値を超えているかどうか、及び、前記予測部により予測された前記第2の容量が当該第1の閾値よりも小さい第2の閾値を超えているかどうかを判定する判定部と、
    前記判定部により前記第1の容量が前記第1の閾値を超えており前記第2の容量が前記第2の閾値を超えていると判定された場合に、前記第1のデータが前記通常記録領域に書き込まれた後に送られた前記コマンドに応じて、前記第2のデータについて前記第1の動作が行われるように制御し、前記判定部により前記第1の容量が前記第1の閾値を超えており前記第2の容量が前記第2の閾値を超えていないと判定された場合に、前記第1のデータが前記通常記録領域に書き込まれた後に送られた前記コマンドに応じて、前記第2のデータについて前記第2の動作が行われるように制御する制御部と
    を含む、装置。
  2. 前記制御部は、前記判定部により前記第1の容量が前記第1の閾値を超えていないと判定された場合に、前記第1のデータが前記通常記録領域に書き込まれた後に送られた前記コマンドに応じて、前記第2のデータについて前記第2の動作が行われるように制御する、請求項1の装置。
  3. 前記判定部は、前記予測部により予測された前記第2の容量が前記第2の閾値よりも大きい第3の閾値を超えているかどうかを更に判定し、
    前記制御部は、前記判定部により前記第2の容量が前記第3の閾値を超えていると判定された場合に、前記第1のデータが前記通常記録領域に書き込まれた後に送られた前記コマンドに応じて、前記第2のデータについて前記第1の動作が行われるように制御する、請求項1又は請求項2の装置。
  4. 上位装置から送られたデータをバッファに蓄積し、当該上位装置から送られたコマンドに応じて、当該バッファに蓄積された当該データをテープ媒体上の通常記録領域にバックヒッチを伴わずに書き込む第1の動作、及び、当該バッファに蓄積された当該データを当該テープ媒体上の一時記録領域にバックヒッチを伴わずに書き込んだ後、当該一時記録領域に書き込まれた当該データを含むデータ群であって各データ間のギャップを削減したデータ群を通常記録領域に書き込む第2の動作の何れかを選択的に行う装置において、
    前記コマンドに応じて前記第1の動作及び前記第2の動作の何れかが行われたことにより第1のデータが前記通常記録領域に書き込まれた際に、当該第1のデータの容量である第1の容量を取得する取得部と、
    前記第1のデータが前記通常記録領域に書き込まれた後に送られる前記コマンドに応じて書き込まれる第2のデータの容量である第2の容量を予測する予測部と、
    前記取得部により取得された前記第1の容量が第1の閾値を超えているかどうか、前記予測部により予測された前記第2の容量が当該第1の閾値を超えているかどうか、及び、前記予測部により予測された前記第2の容量が当該第1の閾値よりも小さい第2の閾値を超えているかどうかを判定する判定部と、
    前記判定部により前記第2の容量が前記第1の閾値を超えていると判定された場合に、前記第1のデータが前記通常記録領域に書き込まれた後に送られた前記コマンドに応じて、前記第2のデータについて前記第1の動作が行われるように制御し、
    前記判定部により前記第1の容量が前記第1の閾値を超えており前記第2の容量が前記第1の閾値を超えておらず前記第2の閾値を超えていると判定された場合に、前記第1のデータが前記通常記録領域に書き込まれた後に送られた前記コマンドに応じて、前記第2のデータについて前記第1の動作が行われるように制御し、
    前記判定部により前記第1の容量が前記第1の閾値を超えており前記第2の容量が前記第2の閾値を超えていないと判定された場合に、前記第1のデータが前記通常記録領域に書き込まれた後に送られた前記コマンドに応じて、前記第2のデータについて前記第2の動作が行われるように制御し、
    前記判定部により前記第1の容量が前記第1の閾値を超えておらず前記第2の容量が前記第1の閾値を超えていないと判定された場合に、前記第1のデータが前記通常記録領域に書き込まれた後に送られた前記コマンドに応じて、前記第2のデータについて前記第2の動作が行われるように制御する制御部と
    を含む、装置。
  5. 上位装置から送られたデータをバッファに蓄積し、当該上位装置から送られたコマンドに応じて、当該バッファに蓄積された当該データをテープ媒体に書き込む装置における、当該データを書き込む方法であって、
    前記コマンドに応じて、前記バッファに蓄積された第1のデータを前記テープ媒体上の一時記録領域にバックヒッチを伴わずに書き込んだ後、当該一時記録領域に書き込まれた当該第1のデータを含むデータ群であって各データ間のギャップを削減したデータ群である第1のデータ群を当該テープ媒体上の通常記録領域に書き込むステップと、
    前記第1のデータ群が前記通常記録領域に書き込まれた際に、当該第1のデータ群の総容量である第1の容量を取得するステップと、
    前記第1のデータ群が前記通常記録領域に書き込まれた後に送られる前記コマンドに応じて書き込まれる第2のデータの容量である第2の容量を予測するステップと、
    取得された前記第1の容量が第1の閾値を超えているかどうかを判定するステップと、
    予測された前記第2の容量が前記第1の閾値よりも小さい第2の閾値を超えているかどうかを判定するステップと、
    前記第1の容量が前記第1の閾値を超えており前記第2の容量が前記第2の閾値を超えていると判定された場合に、前記第1のデータ群が前記通常記録領域に書き込まれた後に送られた前記コマンドに応じて、前記第2のデータを当該通常記録領域にバックヒッチを伴わずに書き込むステップと、
    前記第1の容量が前記第1の閾値を超えており前記第2の容量が前記第2の閾値を超えていないと判定された場合に、前記第1のデータ群が前記通常記録領域に書き込まれた後に送られた前記コマンドに応じて、前記第2のデータを前記一時記録領域にバックヒッチを伴わずに書き込んだ後、当該一時記録領域に書き込まれた当該第2のデータを含むデータ群であって各データ間のギャップを削減したデータ群である第2のデータ群を当該通常記録領域に書き込むステップと
    を含む、方法。
  6. 前記第2のデータが前記通常記録領域に書き込まれた際に、前記第2の容量を取得するステップと、
    前記第2のデータが前記通常記録領域に書き込まれた後に送られる前記コマンドに応じて書き込まれる第3のデータの容量である第3の容量を予測するステップと、
    取得された前記第2の容量が前記第1の閾値を超えているかどうかを判定するステップと、
    予測された前記第3の容量が前記第2の閾値を超えているかどうかを判定するステップと、
    前記第2の容量が前記第1の閾値を超えており前記第3の容量が前記第2の閾値を超えていると判定された場合に、前記第2のデータが前記通常記録領域に書き込まれた後に送られた前記コマンドに応じて、前記第3のデータを当該通常記録領域にバックヒッチを伴わずに書き込むステップと、
    前記第2の容量が前記第1の閾値を超えており前記第3の容量が前記第2の閾値を超えていないと判定された場合に、前記第2のデータが前記通常記録領域に書き込まれた後に送られた前記コマンドに応じて、前記第3のデータを前記一時記録領域に記録した後、当該一時記録領域に記録された当該第3のデータを含むデータ群であって各データ間のギャップを削減したデータ群である第3のデータ群を当該通常記録領域に書き込むステップとを更に含む、請求項5の方法。
  7. 前記第1の容量が前記第1の閾値を超えていないと判定された場合に、前記第1のデータ群が前記通常記録領域に書き込まれた後に送られた前記コマンドに応じて、前記第2のデータを前記一時記録領域にバックヒッチを伴わずに書き込んだ後、前記第2のデータ群を当該通常記録領域に書き込むステップを更に含む、請求項5又は請求項6の方法。
  8. 予測された前記第2の容量が、前記第2の閾値よりも大きい第3の閾値を超えているかどうかを判定するステップと、
    前記第2の容量が前記第3の閾値を超えていると判定された場合に、前記第1のデータ群が前記通常記録領域に書き込まれた後に送られた前記コマンドに応じて、前記第2のデータを当該通常記録領域にバックヒッチを伴わずに書き込むステップと
    を更に含む、請求項5乃至請求項7の何れかの方法。
  9. 上位装置から送られたデータをバッファに蓄積し、当該上位装置から送られたコマンドに応じて、当該バッファに蓄積された当該データをテープ媒体上の通常記録領域にバックヒッチを伴わずに書き込む第1の動作、及び、当該バッファに蓄積された当該データを当該テープ媒体上の一時記録領域にバックヒッチを伴わずに書き込んだ後、当該一時記録領域に書き込まれた当該データを含むデータ群であって各データ間のギャップを削減したデータ群を通常記録領域に書き込む第2の動作の何れかを選択的に行うコンピュータにおけるプログラムであって、
    前記コンピュータを、
    前記コマンドに応じて前記第1の動作及び前記第2の動作の何れかが行われたことにより第1のデータが前記通常記録領域に書き込まれた際に、当該第1のデータの容量である第1の容量を取得する取得部と、
    前記第1のデータが前記通常記録領域に書き込まれた後に送られる前記コマンドに応じて書き込まれる第2のデータの容量である第2の容量を予測する予測部と、
    前記取得部により取得された前記第1の容量が第1の閾値を超えているかどうか、及び、前記予測部により予測された前記第2の容量が当該第1の閾値よりも小さい第2の閾値を超えているかどうかを判定する判定部と、
    前記判定部により前記第1の容量が前記第1の閾値を超えており前記第2の容量が前記第2の閾値を超えていると判定された場合に、前記第1のデータが前記通常記録領域に書き込まれた後に送られた前記コマンドに応じて、前記第2のデータについて前記第1の動作が行われるように制御し、前記判定部により前記第1の容量が前記第1の閾値を超えており前記第2の容量が前記第2の閾値を超えていないと判定された場合に、前記第1のデータが前記通常記録領域に書き込まれた後に送られた前記コマンドに応じて、前記第2のデータについて前記第2の動作が行われるように制御する制御部と
    して機能させる、プログラム。
JP2011273880A 2011-12-14 2011-12-14 データを書き込む装置及び方法 Expired - Fee Related JP5764050B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011273880A JP5764050B2 (ja) 2011-12-14 2011-12-14 データを書き込む装置及び方法
US13/706,246 US8665542B2 (en) 2011-12-14 2012-12-05 Tape buffer used to reduce tape backhitches during writing operations

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011273880A JP5764050B2 (ja) 2011-12-14 2011-12-14 データを書き込む装置及び方法

Publications (2)

Publication Number Publication Date
JP2013125566A JP2013125566A (ja) 2013-06-24
JP5764050B2 true JP5764050B2 (ja) 2015-08-12

Family

ID=48609885

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011273880A Expired - Fee Related JP5764050B2 (ja) 2011-12-14 2011-12-14 データを書き込む装置及び方法

Country Status (2)

Country Link
US (1) US8665542B2 (ja)
JP (1) JP5764050B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9501221B2 (en) 2013-08-26 2016-11-22 International Business Machines Corporation Dynamically changing a buffer flush threshold of a tape drive based on historical transaction size
US10437511B2 (en) 2016-11-22 2019-10-08 International Business Machines Corporation Data access on tape
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

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6856479B2 (en) * 2002-01-29 2005-02-15 International Business Machines Corporation Writing synchronized data to magnetic tape
JP3900494B2 (ja) * 2003-05-16 2007-04-04 インターナショナル・ビジネス・マシーンズ・コーポレーション 記憶装置、制御方法、プログラム、及び記録媒体
US6970311B2 (en) 2003-08-18 2005-11-29 International Business Machines Corporation Storing data to magnetic tape both to one set of tracks and in the same operation rewritten to another set of tracks
JP4140913B2 (ja) 2005-05-12 2008-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 記録媒体の駆動を制御するための装置、方法、及びプログラム
JP4131517B2 (ja) 2005-09-06 2008-08-13 インターナショナル・ビジネス・マシーンズ・コーポレーション テープ媒体にデータを書き込むための装置
US7903363B2 (en) * 2008-06-05 2011-03-08 International Business Machines Corporation Same Wrap backhitchless write method to encode data on a tape storage medium
US8810951B2 (en) * 2009-11-13 2014-08-19 International Business Machines Corporation Apparatus and method for controlling data writing to a tape medium

Also Published As

Publication number Publication date
JP2013125566A (ja) 2013-06-24
US8665542B2 (en) 2014-03-04
US20130155540A1 (en) 2013-06-20

Similar Documents

Publication Publication Date Title
JP5385992B2 (ja) テープ媒体の走行を制御する装置及び方法
JP4954141B2 (ja) テープ媒体の走行を制御する装置及び方法
JP4131517B2 (ja) テープ媒体にデータを書き込むための装置
JP3870215B1 (ja) テープ記録装置のデータ書込み読取り制御方法
JP4140913B2 (ja) 記録媒体の駆動を制御するための装置、方法、及びプログラム
US8964327B2 (en) Tape storage device, data writing method, and program
TWI447710B (zh) 可選擇最佳磁帶速度回應於間斷讀取請求之磁帶機,磁帶驅動記錄系統,及選擇最佳磁帶速度之方法
US10353624B2 (en) Apparatus and method for writing data to recording medium
KR20110038639A (ko) 테이프 매체의 주행 속도 조정 장치, 주행 속도 조정 방법, 및 주행 속도 조정 프로그램
JP5764050B2 (ja) データを書き込む装置及び方法
JP2010055690A (ja) データのフォーマットを変換する装置及び方法
JP5476395B2 (ja) データの書込みを制御する装置及び方法
JP5567260B2 (ja) テープ媒体にデータを書き込む装置及び方法
US20120079185A1 (en) Tape storage system including multiple tape storage apparatuses
US7870442B2 (en) Read interchange optimization
JP4993265B2 (ja) スペース・コマンドをテープ記憶システムが取り扱うための方法、システム及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140708

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150303

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150423

TRDD Decision of grant or rejection written
RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20150526

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150526

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150612

R150 Certificate of patent or registration of utility model

Ref document number: 5764050

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees