JP2009266279A - データを記録媒体に書き込む装置及び方法 - Google Patents

データを記録媒体に書き込む装置及び方法 Download PDF

Info

Publication number
JP2009266279A
JP2009266279A JP2008112560A JP2008112560A JP2009266279A JP 2009266279 A JP2009266279 A JP 2009266279A JP 2008112560 A JP2008112560 A JP 2008112560A JP 2008112560 A JP2008112560 A JP 2008112560A JP 2009266279 A JP2009266279 A JP 2009266279A
Authority
JP
Japan
Prior art keywords
buffer
data
size
capacity
upper limit
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.)
Granted
Application number
JP2008112560A
Other languages
English (en)
Other versions
JP5068215B2 (ja
Inventor
Yutaka Oishi
豊 大石
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 JP2008112560A priority Critical patent/JP5068215B2/ja
Priority to US12/420,631 priority patent/US9122425B2/en
Publication of JP2009266279A publication Critical patent/JP2009266279A/ja
Application granted granted Critical
Publication of JP5068215B2 publication Critical patent/JP5068215B2/ja
Priority to US14/813,063 priority patent/US10353624B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

【課題】記録媒体の記録効率を高く保ちつつ、バッファ内のデータが記録媒体に書ききれないという事態を回避する。
【解決手段】テープドライブのコントローラ16において、道程算出部44は、テープ上の現在位置から終端までの道程を算出する。そして、コマンド処理部41がWriteコマンドを受け付けると、上限使用量決定部45は、バッファの上限使用量を、道程が長ければバッファの最大使用量とし、道程が短ければ道程に応じた使用量とし、バッファ管理部42は、Writeコマンドで指示されたデータの容量が、上限使用量とバッファの現在使用量との差分以下であれば、データをバッファに格納する。また、コマンド処理部41がWriteFMコマンドを受け付けると、バッファ管理部42がバッファからデータを読み出して現在使用量を更新し、チャネル入出力部43がデータをテープに書き込む。
【選択図】図3

Description

本発明は、データを記録媒体に書き込む装置及び方法に関する。特に、本発明は、上位装置からのコマンドに応じてバッファ内のデータを記録媒体に書き込む装置及び方法に関する。
磁気テープ等のテープ媒体にデータを書き込むテープドライブは、通常、テープ媒体の終端が近づくと警告をホストコンピュータ(以下、「ホスト」という)に返す機能を有する。テープドライブは、ホストから送られたデータを一旦バッファメモリ(以下、「バッファ」という)に蓄積し、所定のタイミングでバッファからテープ媒体へデータを書き込むのが一般的であるが、このバッファに格納された全てのデータがテープ媒体に書き出されるようにするためである。
従来、このような警告をテープ媒体上のどの位置で行うかについては検討がなされていた(例えば、特許文献1参照)。この特許文献1では、バッファメモリに格納されているデータセットの数と、テープ上の現在の書込み位置の情報とを照合することにより、LEOT(Logical End Of Tape)をホストに通知すべきかどうか判定している。
また、その他の公報記載の技術としては、磁気テープ装置において未記録部分での記録容量をデータ量として算出する技術(例えば、特許文献2参照)や、圧縮率を考慮した磁気テープの残容量を知ることのできる技術(例えば、特許文献3参照)もある。
特開2006−221695号公報 特開平6−243661号公報 特開平11−162149号公報
しかしながら、特許文献1の技術は、LEOTを通知した時点でバッファに格納されているデータしかテープ媒体に記録されないので、テープ媒体の記録効率という観点からは、更なる改善の余地がある。
また、特許文献2、3の技術は、磁気テープの残りのデータ量を求めるだけで、バッファ内のデータがテープ媒体に書ききれないという事態を回避するものではない。
尚、同様の問題点は、テープ媒体以外の記録媒体についても指摘できる。
本発明の目的は、記録媒体の記録効率を高く保ちつつ、バッファ内のデータが記録媒体に書ききれないという事態を回避することにある。
かかる目的のもと、本発明は、上位装置からのコマンドに応じてバッファ内のデータを記録媒体に書き込む装置であって、記録媒体の未使用領域の大きさを特定する特定部と、未使用領域の大きさに基づいて、バッファに格納できるデータの容量の上限値を決定する決定部と、所定のデータをバッファに格納することを指示するコマンドに応じて、バッファ内のデータの容量が上限値を超えないことを条件に、所定のデータをバッファに格納する格納部とを備えた、装置を提供する。
ここで、この装置において、決定部は、未使用領域の大きさが所定の閾値を超えている場合に、バッファの容量を上限値として決定し、未使用領域の大きさが所定の閾値以下である場合に、バッファの容量よりも小さな容量を上限値として決定する、ものであってよい。
そして、決定部は、未使用領域の大きさが所定の閾値以下である場合に、上限値を、未使用領域が小さくなるのに伴って小さくなるように決定する、ものであってよい。
また、この装置において、バッファ内のデータは、複数のデータセットから構成され、決定部は、未使用領域の大きさが所定の閾値を超えている場合に、バッファの容量に相当するデータセットの数を上限値として決定し、未使用領域の大きさが所定の閾値以下である場合に、バッファの容量よりも小さな容量に相当するデータセットの数を上限値として決定する、ものであってよい。
そして、決定部は、未使用領域の大きさが所定の閾値以下である場合に、未使用領域の大きさに応じたデータセットの数を、バッファの容量よりも小さな容量に相当するデータセットの数として決定する、ものであってよく、未使用領域の大きさと、1つのデータセットを記録するのに必要な領域の大きさとして予め設定された大きさとに基づいて、未使用領域に応じたデータセットの数を決定する、ものであってよい。
また、決定部は、バッファの容量に相当するデータセットの数と、1つのデータセットを記録するのに必要な領域の大きさとして予め設定された大きさとに基づいて、所定の閾値を決定する、ものであってよい。
更に、所定のデータは、複数のデータセットから構成され、格納部は、所定のデータを構成するデータセットの数が、上限値に相当するデータセットの数とバッファに格納されているデータセットの数との差を超えない場合に、所定のデータをバッファに格納する、ものであってよい。
また、この装置において、記録媒体は、テープ媒体であり、特定部は、テープ媒体における現在位置から終端までの距離を、未使用領域の大きさとして特定する、ものであってよい。
更に、本発明は、上位装置からのコマンドに応じてバッファ内のデータを記録媒体に書き込む方法であって、記録媒体の未使用領域の大きさを特定するステップと、未使用領域の大きさに基づいて、バッファに格納できるデータの容量の上限値を決定するステップと、所定のデータをバッファに格納することを指示するコマンドに応じて、バッファ内のデータの容量が上限値を超えないことを条件に、所定のデータをバッファに格納するステップとを含む、方法も提供する。
更にまた、本発明は、上位装置からのコマンドに応じてバッファ内のデータを記録媒体に書き込む装置としてコンピュータを機能させるプログラムであって、コンピュータを、記録媒体の未使用領域の大きさを特定する手段と、未使用領域の大きさに基づいて、バッファに格納できるデータの容量の上限値を決定する手段と、所定のデータをバッファに格納することを指示するコマンドに応じて、バッファ内のデータの容量が上限値を超えないことを条件に、所定のデータをバッファに格納する手段として機能させる、プログラムも提供する。
本発明によれば、記録媒体の記録効率を高く保ちつつ、バッファ内のデータが記録媒体に書ききれないという事態を回避することができる。
以下、添付図面を参照して、本発明を実施するための最良の形態(以下、「実施の形態」という)について詳細に説明する。
図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個設けられる。
ところで、図1のテープドライブ10を、例えば、米国IBM社のエンタープライズテープドライブTS1120として考えた場合、テープドライブ10は、データセットという単位でデータをテープ23に書き込む。ここで、データセットの大きさは常に一定である。また、データセットと次のデータセットの間隔、或いは、あるデータセットの終端から次のデータセットの終端までの長さは、仕様上の制約から、4m以内に収める必要がある。データセットの理想的な間隔は世代によって異なるが、第2世代エンタープライズテープドライブにおけるフォーマットでは約10cmである。
エラーが発生しなければ、実際のデータセットの間隔は、理想的な間隔にほぼ一致する。
これに対し、データの書込み中にエラーが発生すると、データの書き直しを3回を上限として行うため、実際のデータセットの間隔が、通常の3倍になることもある。また、データセットの間隔を通常の3倍としてもデータを書ききれなかった場合や、サーボ等のエラーで書込みを中断した場合、テープドライブ10は、必要に応じて書出し位置を変更し、書き直しを試みる。従って、実際のデータセットの間隔は、最大で4mになることもある。
一方、テープドライブ10は、データの書込み時にテープ23が終端に近付くと、バッファ12に格納された全てのデータがテープ23に書き出されるように、「Early Warning」という警告をホスト30に返す。
この場合、バッファ12に格納された全てのデータをテープ23に書き出すことを保障するためには、バッファ12に格納できる最大データセット数をNとすると、テープ23の終端から(4×N)m以上手前の位置で警告を返す必要がある。上述したように、1つのデータセットにつき、最大で4m必要になる可能性があるからである。
第2世代エンタープライズテープドライブでは、バッファ12に256個のデータセットを格納できる。従って、上記の計算をそのまま適用すると、テープ23の終端より約1000m手前から警告を返すことになる。TS1120の場合、テープ23の長さは約600mであり、規定容量までデータを書き込むためにテープ23は28往復する。つまり、片道に換算すると56回走行する。このように、データは、のべ33600mにわたって書き込まれるので、1000mは全長の約3%に相当する。尚、大きなバッファ12を持つテープドライブ10では、この影響はより顕著となる。
ここで、テープ23は、書込み中にエラーが発生しても容量に影響が出ないようにするため、7%ほどゆとりを持っている。ところが、そのうちの3%を「Early Warning」用に割いてしまうと、若干調子の悪いテープドライブ10の場合、データを規定の容量まで書き込めなくなる虞がある。従って、テープ23の終端より1000mも手前から「Early Warning」を返してホスト30の書込みを抑制することは現実的ではない。
現在は、容量への影響をさけるため、理想的な長さをL(m)とし、テープ23の終端から(L×2×N+4)mの位置に到達した時点で始めて「Early Warning」の警告をホスト30に返すように実装されている。そのため、データを書き込むのに常に通常の3倍近くの長さを必要とするテープドライブ10を用いてテープ23の終端付近に書込みを行うと、バッファ12内のデータをテープ23に書き切れない障害が発生する。
そこで、本実施の形態では、テープ23の終端付近において、バッファ12の使用量(バッファ12内のデータの容量)を制限する。これにより、常にバッファ12内の全データをテープ23に書き込むことを保障する。即ち、テープ23上の現在位置からテープ23の終端までの道程をX(m)、バッファ12の容量分データを格納した場合のバッファ12の使用量(以下、「最大使用量」という)をNとし、バッファ12の使用量の上限(以下、「上限使用量」という)nを次の条件分岐式に従って定める。尚、以下では、上限使用量n、最大使用量Nをデータセットの数で示す。
if (N < X/4−1)
n=N
else
n=X/4−1
このことを、図面を参照して説明する。
図2は、本実施の形態におけるバッファ12の使用方法を具体的に示した模式図である。
まず、(a)は、上記条件分岐式のif文における条件である「N<X/4−1」の場合について示したものである。この条件を変数Xについての条件に変換すると、「X>4(N+1)」となる。即ち、テープ23上の現在位置から終端までの道程Xが4(N+1)よりも大きい場合、バッファ12の上限使用量nにはバッファ12の最大使用量Nが設定される。
次に、(b)は、上記条件分岐式のelse文における条件である「N≧X/4−1」の場合について示したものである。この条件を変数Xについての条件に変換すると、「X≦4(N+1)」となる。即ち、テープ23上の現在位置から終端までの道程Xが4(N+1)以下である場合、バッファ12の上限使用量nには(X/4−1)が設定される。
尚、(a)及び(b)において、バッファ12に施した太線は、バッファ12の使用可能な部分を示している。
次に、このような動作を実現するためのコントローラ16について説明する。尚、本実施の形態におけるコマンドとしては、SCSIのコマンドを例示する。
まず、コントローラ16の機能構成について説明する。
図3は、コントローラ16の機能構成例を示したブロック図である。
図示するように、コントローラ16は、コマンド処理部41と、バッファ管理部42と、チャネル入出力部43と、道程算出部44と、上限使用量決定部45と、上限使用量記憶部46と、現在使用量記憶部47とを備える。
このうち、コマンド処理部41は、ホストI/F11からコマンドを受け取る。ここで、コマンドとしては、バッファ12にデータを格納することを指示するWriteコマンド、バッファ12に格納されたデータをテープ23に書き込むWriteFMコマンド等がある。
バッファ管理部42は、コマンド処理部41がWriteコマンドを受け取った場合は、上限使用量決定部45に対し、バッファ12の上限使用量を決定するように指示する。そして、上限使用量記憶部46に記憶された上限使用量と、現在使用量記憶部47に記憶されたバッファ12内の現在のデータ量(以下、「現在使用量」という)とに基づいて、Writeコマンドで指示されたデータをバッファ12に格納すべきかどうかを判定する。また、コマンド処理部41がWriteFMコマンドを受け取った場合は、バッファ12からデータを読み出してチャネル入出力部43に受け渡し、読み出したデータの量だけ、現在使用量記憶部47に記憶された現在使用量を減算する。本実施の形態では、所定のデータをバッファに格納する格納部の一例として、バッファ管理部42を設けている。
チャネル入出力部43は、バッファ管理部42がバッファ12から読み出したデータをチャネル13に出力したり、チャネル13から受け取ったデータをバッファ12に格納したりする。
道程算出部44は、ヘッド14の1つであるサーボヘッドがサーボトラックを追従することで読み取ったテープ23上の現在位置の情報をチャネル13を介して取得する。そして、予め保持していたテープ23の終端の位置の情報を用いて、終端までの道程を算出する。本実施の形態では、未使用領域の大きさを特定する特定部の一例として、道程算出部44を設けている。
上限使用量決定部45は、道程算出部44が算出した道程と、予め保持していたバッファ12の最大使用量とに基づいて、バッファ12の上限使用量を決定する。本実施の形態では、バッファ12に格納できるデータの容量の上限値を決定する決定部の一例として、上限使用量決定部45を設けている。
上限使用量記憶部46は、上限使用量決定部45が決定した上限使用量を記憶する。
現在使用量記憶部47は、バッファ12内の現在のデータ量である現在使用量を記憶する。
次に、コントローラ16の動作について説明する。
このコントローラ16の動作としては、ホスト30からデータを受け取ってバッファ12に格納する動作と、バッファ12に格納されたデータを読み出してテープ23に書き込む動作とがある。そこで、以下では、これらを分けて説明する。尚、前者の動作は、ホスト30からWriteコマンドを受け取った場合に行われるので、コントローラ16がWriteコマンドを受け取った場合の動作として説明する。また、後者の動作は、ホスト30からWriteFileMark(WriteFM)コマンドを受け取った場合、バッファ12内のデータ量が所定の基準に達した場合等に行われるが、ここでは、一例として、コントローラ16がWriteFMコマンドを受け取った場合の動作として説明する。
[Writeコマンドを受け取った場合]
図4は、この場合のコントローラ16の動作例を示したフローチャートである。尚、この動作の前提として、道程算出部44が、チャネル13からテープ23上の現在位置を取得し、テープ23の終端位置からこの現在位置を減算して終端までの道程X(m)を求め、これを保持しているものとする。この場合、終端位置は、例えば、テープカートリッジ20がロードされた際に、テープカートリッジ20に設けられたカートリッジメモリから取得するとよい。
コントローラ16では、まず、コマンド処理部41がWriteコマンドを受け取り、その旨をバッファ管理部42に伝える(ステップ401)。
すると、バッファ管理部42は、バッファ12の上限使用量を決定するよう上限使用量決定部45に指示する。これにより、上限使用量決定部45は、終端までの道程が、バッファ12の上限使用量を変更しなければならない閾値に達しているかどうかを判定する。即ち、バッファ12の最大使用量をN、テープ23上の現在位置から終端までの道程をX(m)とした場合に、「N<X/4−1」であるかどうかを判定する(ステップ402)。ここで、X(m)は、上述したように、道程算出部44が保持しているので、これを取得する。また、Nは、バッファ12の容量であるので、予め保持するものを用いればよい。1つのデータセット当たりの必要なテープ長の最大値「4m」も、予め保持するものを用いればよい。
その結果、「N<X/4−1」であれば、上限使用量決定部45は、上限使用量nにバッファ12の最大使用量Nを設定する(ステップ403)。即ち、最大使用量Nを上限使用量nとして上限使用量記憶部46に記憶する。
一方、「N<X/4−1」でなければ、上限使用量決定部45は、上限使用量nに(X/4−1)を設定する(ステップ404)。即ち、(X/4−1)を上限使用量nとして上限使用量記憶部46に記憶する。
次に、バッファ管理部42は、バッファ12に空きがあるかどうかを判定する(ステップ405)。具体的には、上限使用量記憶部46に記憶された上限使用量から、現在使用量記憶部47に記憶された現在使用量を減算して差分を求め、Writeコマンドによりバッファ12への格納が指示されたデータの容量がこの差分以下であるかどうかを判定する。
その結果、バッファ12に空きがあれば、即ち、データの容量が差分以下であれば、バッファ管理部42は、コマンド処理部41がWriteコマンドと共に受け取ったデータを取得し、このデータをバッファ12に格納する(ステップ406)。そして、現在使用量記憶部47に記憶された現在使用量に、バッファ12に格納したデータの容量を加算する(ステップ407)。その後、バッファ管理部42は、Writeコマンドの完了をコマンド処理部41に伝え、コマンド処理部41が、Writeコマンドの完了をホスト30に報告する(ステップ408)。
一方、バッファ12に空きがなければ、即ち、データの容量が差分を超えていれば、バッファ管理部42は、その旨をコマンド処理部41に伝え、コマンド処理部41が、バッファフルである旨をホスト30に報告して、ホスト30を待たせる(ステップ409)。
[WriteFMコマンドを受け取った場合]
図5は、この場合のコントローラ16の動作例を示したフローチャートである。
コントローラ16では、まず、コマンド処理部41が、WriteFMコマンドを受け取り、その旨をバッファ管理部42に伝える(ステップ421)。
すると、バッファ管理部42は、バッファ12に格納されているデータを読み出し、チャネル入出力部43に受け渡す(ステップ422)。また、このとき、現在使用量記憶部47に記憶されている現在使用量から、読み出したデータの容量を減算する(ステップ423)。例えば、WriteFMコマンドにより、バッファ12に格納されている全てのデータを読み出してテープ23に書き込む場合であれば、現在使用量記憶部47に記憶された現在使用量は、「0」にクリアされる。
次に、チャネル入出力部43は、バッファ管理部42から渡されたデータをテープ23に書き込むべくチャネル13に出力する(ステップ424)。その後、チャネル入出力部43は、WriteFMコマンドの完了をコマンド処理部41に伝え、コマンド処理部41が、WriteFMコマンドの完了をホスト30に報告する(ステップ425)。
以上により、本実施の形態についての説明を終了する。
尚、本実施の形態では、「N<X/4−1」という条件を満たすかどうかで、上限使用量nに設定する値を切り替えるようにし、この条件を満たさない場合に、上限使用量nに「X/4−1」を設定するようにしたが、これは、あくまで一例である。即ち、上記条件は、「終端までの道程X(m)が最大使用量×4(m)より大きい」というものであってよいし、この条件を満たさない場合に上限使用量nに設定される値は、「終端までの道程X(m)/4(m)」であってよい。
また、上記条件、及び、上記条件を満たさない場合に上限使用量に設定される値は、より一般化して、次のように考えることもできる。
即ち、まず、条件は、「終端までの道程が所定の閾値を超えている」というものであってもよい。ここで、所定の閾値は、バッファ12の容量に相当するデータセットの数と、1つのデータセットを記録するのに必要なテープ長とに基づいて、決定されたものであれば、如何なる値を採用してもよい。
次に、条件を満たさない場合に上限使用量に設定される値は、バッファ12の容量よりも小さな容量に相当するデータセットの数であれば、如何なる値を採用してもよい。但し、テープ23上の記録効率を考えると、終端までの道程が短くなるのに伴って、上限使用量も小さくなるようにするのが好ましい。また、終端までの道程に応じて決定されたものでもよい。更に、終端までの道程と、1つのデータセットを記録するのに必要なテープ長とに基づいて、決定されたものであれば、一層好ましい。
このように、本実施の形態では、終端までの道程が十分にある間は、バッファ12をフルに使用するようにし、終端までの道程が短くなってくると、バッファ12の使用量の上限を徐々に下げるようにした。これにより、本実施の形態は、記録媒体の記録効率を高く保ちつつ、バッファ内のデータが記録媒体に書ききれないという事態を回避することができるという効果を有する。
尚、このような構成を採用した場合、「Early Warning」を出すとき、つまり、X=L×2×N+4のとき、第2世代エンタープライズでは、L=0.1(m)、N=256なので、n=12となる。つまり、バッファ12の上限使用量が、バッファ12の容量の1/20となり、パフォーマンス的にはバッファ12の恩恵を被ることができない。
しかしながら、次のような理由により、このことは特に問題とはならない。第一に、実際に「Early Warning」に達することはまれであり、通常は、「N<X/4−1」である間に規定容量まで書き込めるからである。また、第二に、例えば調子が悪いドライブでデータを書き込むのに常に通常の3倍近くの長さを必要とするドライブでは、バッファ12をフルに利用しても調子が良いドライブの1/3程度のパフォーマンスしか出ないため、バッファ12の大きさがボトルネックとはならないからである。
尚、この技術は、図1に示したようなテープドライブ10に限らず、ある領域にデータを書き込めないときに別のセグメントを利用するHDD(Hard Disk Drive)等、他のストレージデバイスにも適用可能である。その場合は、終端までの道程ではなく、より一般的に、記録媒体の未使用領域の大きさに基づいて、バッファ12の上限使用量を決定することになる。
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム(装置又は機器)、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ(CD−ROM)、コンパクトディスク−リード/ライト(CD−R/W)及びDVDが含まれる。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
本発明の実施の形態が適用されるテープドライブの構成を示したブロック図である。 本発明の実施の形態の概要を説明するための図である。 本発明の実施の形態におけるコントローラの機能構成例を示したブロック図である。 本発明の実施の形態におけるコントローラのWriteコマンドを受け取った際の動作例の概要を示した図である。 本発明の実施の形態におけるコントローラのWriteFMコマンドを受け取った際の動作例を示したフローチャートである。
符号の説明
10…テープドライブ、11…ホストI/F、12…バッファ、13…チャネル、14…ヘッド、15…モータ、16…コントローラ、17…ヘッド位置制御システム、18…モータドライバ

Claims (11)

  1. 上位装置からのコマンドに応じてバッファ内のデータを記録媒体に書き込む装置であって、
    前記記録媒体の未使用領域の大きさを特定する特定部と、
    前記未使用領域の大きさに基づいて、前記バッファに格納できるデータの容量の上限値を決定する決定部と、
    所定のデータを前記バッファに格納することを指示するコマンドに応じて、前記バッファ内のデータの容量が前記上限値を超えないことを条件に、当該所定のデータを当該バッファに格納する格納部と
    を備えた、装置。
  2. 前記決定部は、前記未使用領域の大きさが所定の閾値を超えている場合に、前記バッファの容量を前記上限値として決定し、前記未使用領域の大きさが前記所定の閾値以下である場合に、前記バッファの容量よりも小さな容量を前記上限値として決定する、請求項1の装置。
  3. 前記決定部は、前記未使用領域の大きさが前記所定の閾値以下である場合に、前記上限値を、当該未使用領域が小さくなるのに伴って小さくなるように決定する、請求項2の装置。
  4. 前記バッファ内のデータは、複数のデータセットから構成され、
    前記決定部は、前記未使用領域の大きさが所定の閾値を超えている場合に、前記バッファの容量に相当するデータセットの数を前記上限値として決定し、前記未使用領域の大きさが前記所定の閾値以下である場合に、前記バッファの容量よりも小さな容量に相当するデータセットの数を前記上限値として決定する、請求項1の装置。
  5. 前記決定部は、前記未使用領域の大きさが前記所定の閾値以下である場合に、当該未使用領域の大きさに応じたデータセットの数を、前記バッファの容量よりも小さな容量に相当するデータセットの数として決定する、請求項4の装置。
  6. 前記決定部は、前記未使用領域の大きさが前記所定の閾値以下である場合に、当該未使用領域の大きさと、1つのデータセットを記録するのに必要な領域の大きさとして予め設定された大きさとに基づいて、前記未使用領域に応じたデータセットの数を決定する、請求項5の装置。
  7. 前記決定部は、前記バッファの容量に相当するデータセットの数と、1つのデータセットを記録するのに必要な領域の大きさとして予め設定された大きさとに基づいて、前記所定の閾値を決定する、請求項4の装置。
  8. 前記所定のデータは、複数のデータセットから構成され、
    前記格納部は、前記所定のデータを構成するデータセットの数が、前記上限値に相当するデータセットの数と前記バッファに格納されているデータセットの数との差を超えない場合に、当該所定のデータを当該バッファに格納する、請求項4の装置。
  9. 前記記録媒体は、テープ媒体であり、
    前記特定部は、前記テープ媒体における現在位置から終端までの距離を、前記未使用領域の大きさとして特定する、請求項1の装置。
  10. 上位装置からのコマンドに応じてバッファ内のデータを記録媒体に書き込む方法であって、
    前記記録媒体の未使用領域の大きさを特定するステップと、
    前記未使用領域の大きさに基づいて、前記バッファに格納できるデータの容量の上限値を決定するステップと、
    所定のデータを前記バッファに格納することを指示するコマンドに応じて、前記バッファ内のデータの容量が前記上限値を超えないことを条件に、当該所定のデータを当該バッファに格納するステップと
    を含む、方法。
  11. 上位装置からのコマンドに応じてバッファ内のデータを記録媒体に書き込む装置としてコンピュータを機能させるプログラムであって、
    前記コンピュータを、
    前記記録媒体の未使用領域の大きさを特定する手段と、
    前記未使用領域の大きさに基づいて、前記バッファに格納できるデータの容量の上限値を決定する手段と、
    所定のデータを前記バッファに格納することを指示するコマンドに応じて、前記バッファ内のデータの容量が前記上限値を超えないことを条件に、当該所定のデータを当該バッファに格納する手段と
    して機能させる、プログラム。
JP2008112560A 2008-04-23 2008-04-23 データを記録媒体に書き込む装置及び方法 Expired - Fee Related JP5068215B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008112560A JP5068215B2 (ja) 2008-04-23 2008-04-23 データを記録媒体に書き込む装置及び方法
US12/420,631 US9122425B2 (en) 2008-04-23 2009-04-08 Apparatus and method for writing data to recording medium
US14/813,063 US10353624B2 (en) 2008-04-23 2015-07-29 Apparatus and method for writing data to recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008112560A JP5068215B2 (ja) 2008-04-23 2008-04-23 データを記録媒体に書き込む装置及び方法

Publications (2)

Publication Number Publication Date
JP2009266279A true JP2009266279A (ja) 2009-11-12
JP5068215B2 JP5068215B2 (ja) 2012-11-07

Family

ID=41216103

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008112560A Expired - Fee Related JP5068215B2 (ja) 2008-04-23 2008-04-23 データを記録媒体に書き込む装置及び方法

Country Status (2)

Country Link
US (2) US9122425B2 (ja)
JP (1) JP5068215B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5068215B2 (ja) 2008-04-23 2012-11-07 インターナショナル・ビジネス・マシーンズ・コーポレーション データを記録媒体に書き込む装置及び方法
US20120047109A1 (en) * 2010-08-19 2012-02-23 Panasonic Corporation Data structure production method and backup device
CN103975572B (zh) * 2012-10-09 2017-07-28 松下电器产业株式会社 无线通信装置、无线通信方法以及无线通信控制程序
US9552370B1 (en) * 2013-06-27 2017-01-24 EMC IP Holding Company LLC Signaling impending out of storage condition from a virtual tape drive
US8972630B1 (en) * 2013-09-25 2015-03-03 Netronome Systems, Incorporated Transactional memory that supports a put with low priority ring command
US9069602B2 (en) * 2013-09-25 2015-06-30 Netronome Systems, Incorporated Transactional memory that supports put and get ring commands
US10897593B2 (en) * 2016-08-30 2021-01-19 International Business Machines Corporation Multiple tape video data splitter
CN111399781B (zh) * 2020-04-21 2023-09-19 中国科学院光电技术研究所 一种提高实时图像记录系统可靠性的存储方法
US11120831B1 (en) * 2020-08-25 2021-09-14 International Business Machines Corporation Compensation for expansion and contraction across the width of a magnetic tape

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5769514A (en) * 1980-10-17 1982-04-28 Fujitsu Ltd Recording system for in-use state of magnetic tape
JPH03171322A (ja) * 1989-11-30 1991-07-24 Toshiba Corp 磁気テープ制御装置
JPH0844725A (ja) * 1994-07-28 1996-02-16 Toshiba Corp 文書作成装置及び文書作成方法
JPH08235880A (ja) * 1994-09-30 1996-09-13 Alcatel Nv フラッシュメモリのメモリ管理方法
JPH1165818A (ja) * 1997-08-22 1999-03-09 Nec Corp データ転送方法および装置、閾値調整方法および装置
JP2004171541A (ja) * 2002-11-08 2004-06-17 Matsushita Electric Ind Co Ltd データ記憶システムおよび転送制御方法
JP2006196071A (ja) * 2005-01-12 2006-07-27 Canon Inc 情報記録装置
JP2006221695A (ja) * 2005-02-08 2006-08-24 Internatl Business Mach Corp <Ibm> テープドライブを制御する装置、方法、及びプログラム
JP2006311320A (ja) * 2005-04-28 2006-11-09 Kawasaki Microelectronics Kk パケット転送方法および装置
WO2008044725A1 (fr) * 2006-10-13 2008-04-17 Panasonic Corporation Dispositif à semiconducteur à modulateur du type δς, et système à semiconducteur

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4757396A (en) * 1985-07-12 1988-07-12 Fujitsu Limited Magnetic tape system with command prefetch means
US4868737A (en) * 1986-12-22 1989-09-19 Tandberg Data A/S Method and arrangement in which capacity of a related storage medium is checked when buffering data
US5287478A (en) * 1991-08-06 1994-02-15 R-Byte, Inc. Digital data tape storage system utilizing plurality of read/write heads with system diagnostic capability
JPH06124576A (ja) * 1992-10-13 1994-05-06 Sony Corp Ctl信号発生装置
JP3160413B2 (ja) 1993-02-22 2001-04-25 アルプス電気株式会社 磁気テープ装置の記録容量算出方法
JP3141828B2 (ja) 1997-11-25 2001-03-07 日本電気株式会社 磁気テープ装置、および磁気テープの残容量計算プログラムを記録した記録媒体
US6958878B2 (en) * 2003-10-27 2005-10-25 International Business Machines Corporation Forced backhitch for speed matching in a multi-speed tape drive
US7116506B1 (en) * 2005-08-18 2006-10-03 International Business Machines Corporation Automated data storage library magnetic tape diagnostic
JP5068215B2 (ja) 2008-04-23 2012-11-07 インターナショナル・ビジネス・マシーンズ・コーポレーション データを記録媒体に書き込む装置及び方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5769514A (en) * 1980-10-17 1982-04-28 Fujitsu Ltd Recording system for in-use state of magnetic tape
JPH03171322A (ja) * 1989-11-30 1991-07-24 Toshiba Corp 磁気テープ制御装置
JPH0844725A (ja) * 1994-07-28 1996-02-16 Toshiba Corp 文書作成装置及び文書作成方法
JPH08235880A (ja) * 1994-09-30 1996-09-13 Alcatel Nv フラッシュメモリのメモリ管理方法
JPH1165818A (ja) * 1997-08-22 1999-03-09 Nec Corp データ転送方法および装置、閾値調整方法および装置
JP2004171541A (ja) * 2002-11-08 2004-06-17 Matsushita Electric Ind Co Ltd データ記憶システムおよび転送制御方法
JP2006196071A (ja) * 2005-01-12 2006-07-27 Canon Inc 情報記録装置
JP2006221695A (ja) * 2005-02-08 2006-08-24 Internatl Business Mach Corp <Ibm> テープドライブを制御する装置、方法、及びプログラム
JP2006311320A (ja) * 2005-04-28 2006-11-09 Kawasaki Microelectronics Kk パケット転送方法および装置
WO2008044725A1 (fr) * 2006-10-13 2008-04-17 Panasonic Corporation Dispositif à semiconducteur à modulateur du type δς, et système à semiconducteur

Also Published As

Publication number Publication date
US20090271544A1 (en) 2009-10-29
JP5068215B2 (ja) 2012-11-07
US10353624B2 (en) 2019-07-16
US20150331636A1 (en) 2015-11-19
US9122425B2 (en) 2015-09-01

Similar Documents

Publication Publication Date Title
JP5068215B2 (ja) データを記録媒体に書き込む装置及び方法
JP4131517B2 (ja) テープ媒体にデータを書き込むための装置
JP3870215B1 (ja) テープ記録装置のデータ書込み読取り制御方法
JP5325128B2 (ja) データの書込みを制御する装置及び方法
US10572154B2 (en) Writing data spanning plurality of tape cartridges
US9087549B2 (en) Apparatus and method for controlling transportation of tape medium
US8693128B2 (en) Apparatus and method for writing data to tape medium
US9753664B2 (en) Method of detecting tampering of data in tape drive, and file system
US20160378357A1 (en) Hybrid storage device and method for operating the same
JP5065203B2 (ja) データのフォーマットを変換する装置及び方法
JP5753498B2 (ja) テープ記憶装置
JP5476395B2 (ja) データの書込みを制御する装置及び方法
US10025373B2 (en) Reduction of power consumption of a buffer in tape drive
JP2014215668A (ja) テープドライブへのデータ書き込み方法、プログラム
JP5044822B2 (ja) データをテープ媒体に書き込む装置及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110124

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

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120514

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: 20120731

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20120731

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: 20120814

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

Free format text: PAYMENT UNTIL: 20150824

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees