JP5044822B2 - データをテープ媒体に書き込む装置及び方法 - Google Patents

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

Info

Publication number
JP5044822B2
JP5044822B2 JP2008120505A JP2008120505A JP5044822B2 JP 5044822 B2 JP5044822 B2 JP 5044822B2 JP 2008120505 A JP2008120505 A JP 2008120505A JP 2008120505 A JP2008120505 A JP 2008120505A JP 5044822 B2 JP5044822 B2 JP 5044822B2
Authority
JP
Japan
Prior art keywords
command
buffer
data
information
tape medium
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
JP2008120505A
Other languages
English (en)
Other versions
JP2009271987A (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 JP2008120505A priority Critical patent/JP5044822B2/ja
Priority to US12/433,606 priority patent/US8489785B2/en
Publication of JP2009271987A publication Critical patent/JP2009271987A/ja
Application granted granted Critical
Publication of JP5044822B2 publication Critical patent/JP5044822B2/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
    • 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/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1201Formatting, e.g. arrangement of data block or words on the record carriers on 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
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/10675Data buffering arrangements, e.g. recording or playback buffers aspects of buffer control
    • G11B2020/10694Data buffering arrangements, e.g. recording or playback buffers aspects of buffer control output interface, i.e. the way data leave the buffer, e.g. by adjusting the clock rate
    • 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
    • G11B2020/1075Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data
    • G11B2020/10759Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data content data
    • 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/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B2020/1264Formatting, e.g. arrangement of data block or words on the record carriers wherein the formatting concerns a specific kind of data
    • G11B2020/1265Control data, system data or management information, i.e. data used to access or process user data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/90Tape-like record carriers

Description

本発明は、データをテープ媒体に書き込む装置及び方法に関する。特に、本発明は、上位装置からのコマンドに応じてバッファ内のデータをテープ媒体に書き込む装置及び方法に関する。
磁気テープ等のテープ媒体にデータを書き込むテープドライブでは、データを一旦バッファに蓄積しておき、ドライブの都合の良いタイミングでバッファからテープ媒体へデータを書き込むのが一般的である。ホストは、ドライブに送ったデータが全てテープ媒体上に書き出されていることを保証するため、強制的にデータを書き込むためのコマンド(WriteFM Non Immediateコマンド)をドライブに送る。このようなバッファからテープ媒体への強制書込みを「同期」という。
ところで、同期が発生した後にテープ媒体を停止させないと、テープ媒体上で、先行する同期にて書き込まれたデータと次に書き込まれたデータとの間にギャップが生じる。その結果、テープ媒体の記録領域が無駄になってしまう。そのため、バックヒッチを行う必要がある。バックヒッチとは、テープ媒体の走行速度を減速して一旦停止し、逆方向に走行し、その後、再度元の方向に走行して書き込むべき位置に達して次のデータを書く、という一連の動作のことである。次のデータは、このバックヒッチが完了するまで書き込むことができない。バックヒッチには約2〜3秒程度の時間を要するため、バックヒッチの発生は、パフォーマンスに大きな影響を与える。
従来より、かかるバックヒッチを回避するための技術は種々提案されている(例えば、特許文献1参照)。特許文献1では、ホストから送られた様々なサイズの複数のブロックを、一定サイズのセグメントで分割されたバッファに順次蓄積し、セグメントが少なくとも1つのブロックにより準備された場合に、セグメントの内容をデータセットとしてテープ媒体に書き込み、テープ媒体が4mを移動する間に次のセグメントが準備されない場合に4m内にNullデータセットをテープ媒体に書き込むようにしている。
特開2007−95231号公報
ところで、ホスト側のアプリケーションによっては、「同期」を指示するコマンドとして、バッファ内のデータをテープ媒体に強制的に書き込むことを指示する第1のコマンドと、区切り情報をテープ媒体に書き込むことを指示する第2のコマンドとを連続して送る場合がある。
この場合、まず、第1のコマンドでバッファ内のデータをテープ媒体に強制的に書き込むため、バックヒッチが発生する。更に、次の第2のコマンドにより、区切り情報をテープ媒体に強制的に書き込む必要があるため、再度バックヒッチを行う。
そして、バックヒッチを行った後でないと次のデータの書込みを開始できないため、この2度のバックヒッチは、パフォーマンスに大きな影響を与える。
しかしながら、上記特許文献1の技術では、「同期」を指示するコマンドとして、上記の第1のコマンド及び第2のコマンドのような2つのコマンドが送られるような場合を想定していない。
本発明の目的は、バッファ内のデータをテープ媒体に強制的に書き込むことを指示するコマンドと、区切り情報をテープ媒体に書き込むことを指示するコマンドとが連続して送られる場合に、2度のバックヒッチが発生する可能性を低くすることにある。
かかる目的のもと、本発明は、上位装置からのコマンドに応じてバッファ内のデータをテープ媒体に書き込む装置であって、バッファ内のデータをテープ媒体に強制的に書き込むことを指示する第1のコマンドと、区切り情報をテープ媒体に書き込むことを指示する第2のコマンドとを上位装置から受け付ける受付部と、受付部が第1のコマンドを受け付けた場合に、バッファ内のデータとダミーの区切り情報とをテープ媒体に書き込む書込み部と、受付部が第1のコマンドの次に第2のコマンドを受け付けた場合に、ダミーの区切り情報を有効な区切り情報として扱えるようにする処理を行う処理部とを含む、装置を提供する。
ここで、この装置は、書込み部によりダミーの区切り情報がテープ媒体に書き込まれたことを示す情報を記録媒体に記録する記録部を更に備え、処理部は、記録媒体に記録された情報を消去することにより、ダミーの区切り情報を有効な区切り情報として扱えるようにする、ものであってよい。
また、記録媒体は、テープ媒体を収納するカートリッジに設けられたメモリであってよい。
また、この装置において、受付部は、第1のコマンド及び第2のコマンド以外の第3のコマンドを更に受け付け、処理部は、受付部が第1のコマンドの次に第3のコマンドを受け付けた場合に、ダミーの区切り情報を有効な区切り情報として扱えないようにする処理を行う、ものであってよい。
ここで、第3のコマンドは、バッファにデータを格納することを指示するコマンドであり、処理部は、ダミーの区切り情報を有効な区切り情報として扱えないようにする処理として、ダミーの区切り情報に対してバッファ内のデータによる上書きがなされるようにバッファにデータを格納する処理を行う、ものであってよい。そして、バッファ内のデータによる上書きは、テープ媒体上のダミーの区切り情報と同じ位置にバッファ内のデータを書き込むことによる上書きであってもよいし、テープ媒体上のダミーの区切り情報と異なる位置にバッファ内のデータを書き込むと共にテープ媒体にダミーの区切り情報が無効であることを示す情報を書き込むことによる上書きであってもよい。
一方、第3のコマンドは、バッファにデータを格納することを指示するコマンド以外のコマンドであり、処理部は、ダミーの区切り情報を有効な区切り情報として扱えないようにする処理として、ダミーの区切り情報に対して終端情報による上書きがなされるようにバッファに終端情報を格納する処理を行う、ものであってよい。
また、この装置において、受付部は、テープ媒体に書き込まれた区切り情報を読み出すこと、及び、テープ媒体に書き込まれた区切り情報にテープ媒体を位置付けることの何れかを指示する第4のコマンドを更に受け付け、処理部は、受付部が第4のコマンドを受け付けた場合に、区切り情報がダミーの区切り情報でなければ、第4のコマンドにより指示された処理を行い、区切り情報がダミーの区切り情報であれば、第4のコマンドにより指示された処理を行わない、ものであってよい。
また、本発明は、上位装置からのコマンドに応じてバッファ内のデータをテープ媒体に書き込む装置であって、バッファ内のデータをテープ媒体に強制的に書き込むことを指示する第1のコマンドと、区切り情報をテープ媒体に書き込むことを指示する第2のコマンドとを上位装置から受け付ける受付部と、受付部が第1のコマンドを受け付けた場合に、バッファ内のデータとダミーの区切り情報とをテープ媒体に書き込む書込み部と、書込み部によりダミーの区切り情報がテープ媒体に書き込まれたことを示す情報を、テープ媒体を収納するカートリッジに設けられたメモリに記録する記録部と、受付部が第1のコマンドの次に第2のコマンドを受け付けた場合に、メモリに記録された情報を消去することにより、ダミーの区切り情報を有効な区切り情報として扱えるようにする処理を行う処理部とを含む、装置も提供する。
更に、本発明は、上位装置からのコマンドに応じてバッファ内のデータをテープ媒体に書き込む方法であって、バッファ内のデータをテープ媒体に強制的に書き込むことを指示する第1のコマンドが上位装置から送られた場合に、バッファ内のデータとダミーの区切り情報とをテープ媒体に書き込むステップと、区切り情報をテープ媒体に書き込むことを指示する第2のコマンドが第1のコマンドの次に上位装置から送られた場合に、ダミーの区切り情報を有効な区切り情報として扱えるようにするステップとを含む、方法も提供する。
更にまた、本発明は、上位装置からのコマンドに応じてバッファ内のデータをテープ媒体に書き込む装置としてコンピュータを機能させるプログラムであって、コンピュータを、バッファ内のデータをテープ媒体に強制的に書き込むことを指示する第1のコマンドと、区切り情報をテープ媒体に書き込むことを指示する第2のコマンドとを上位装置から受け付ける手段と、第1のコマンドが受け付けられた場合に、バッファ内のデータとダミーの区切り情報とをテープ媒体に書き込む手段と、第1のコマンドの次に第2のコマンドが受け付けられた場合に、ダミーの区切り情報を有効な区切り情報として扱えるようにする手段として機能させる、プログラムも提供する。
本発明によれば、バッファ内のデータをテープ媒体に強制的に書き込むことを指示するコマンドと、区切り情報をテープ媒体に書き込むことを指示するコマンドとが連続して送られる場合に、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としては、磁気テープが例示されるが、磁気テープ以外のテープ媒体でもよい。
また、テープカートリッジ20は、カートリッジメモリ24も含む。このカートリッジメモリ24は、例えば、テープ23上にどのようにデータが書かれたかの情報を記録する。そして、例えばRFインターフェイスを用いて非接触でテープ23に書かれたデータのインデックスやテープ23の使用状況等を調べることにより、データへの高速アクセスを可能としている。尚、図では、このRFインターフェイスのようなカートリッジメモリ24へのアクセスを行うためのインターフェイスを、カートリッジメモリインターフェイス(以下、「CMI/F」という)19として示している。
ここで、ホスト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個設けられる。
CMI/F19は、例えば、RFリーダライタにより実現され、カートリッジメモリ24への情報の書込みや、カートリッジメモリ24からの情報の読出しを行う。
ところで、SCSIには、Writeコマンド、Locateコマンド、Spaceコマンド、Readコマンドの他に、バッファ12内のデータをテープ23に強制的に書き込むことを指示するWriteFileMark Non Immediateコマンドがある。ここで、FileMark(以下、「FM」という)とは、ひとまとまりのデータの書き込みの区切りを示す区切り情報である。このようなWriteFM Non Immediateコマンドとしては、更に、WriteFM0コマンドと、WriteFM1コマンドとがある。WriteFM0コマンドは、バッファ12内のデータをFMを伴わずにテープ23に強制的に書き込むことを指示するコマンドである。一方、WriteFM1コマンドは、バッファ12内のデータと共にFMをテープ23に強制的に書き込むことを指示するコマンドである。
そして、ホスト30で動作するアプリケーションの中には、WriteFM0コマンドを発行した後、続けてWriteFM1コマンドを発行するものがある。
この場合、まず、WriteFM0コマンドによりバッファ12内のデータをテープ23に強制的に書き込むため、バックヒッチが発生する。更に、次のWriteFM1コマンドにより、FMをテープ23に強制的に書き込む必要があるため、再度バックヒッチを行う。
米国IBM社のTS1120テープドライブの場合、データセットと呼ばれるデータ単位で、データをテープに書き込む。そこで、このようなデータの書込みを行う場合を例にとり、上記バックヒッチが発生する様子について具体的に説明する。
図2は、バックヒッチが発生する様子を模式的に示した図である。尚、ここでは、「データセット」を便宜上「DS」と表記している。
例えば、DS#N+1の途中までデータが格納された状態で、WriteFM0コマンドを受け取ったとする。すると、DS#N+1の後ろの部分をパディングし、(a)に示すように、強制的にDS#N+1をテープ23に書き込み、バックヒッチを行う。
その後、WriteFM1コマンドを受け取ったとする。すると、(b)に示すように、上記バックヒッチの完了後、DS#N+2をテープ23に書き込み、再度バックヒッチを行う。ここで、DS#N+2は、FMのみを含み、残りの部分はパディングされたデータセットである。
DS#N+1を書き込んだ後に発生したバックヒッチの完了後でなければ、このDS#N+2の書込み処理はできない。更に、続くWriteコマンドの処理はDS#N+2の書き込み終了後にしかできない。
従って、(c)に示すように、DS#N+2の書込みの後に発生したバックヒッチの完了後、Writeコマンドの実行を開始し、DS#N+3を書き込むことになる。
このように、2度のバックヒッチを行った後でないと次のデータ(この場合はDS#N+3以降のデータ)の書込みを開始することができないため、パフォーマンスが大きな影響を受ける。
そこで、本実施の形態では、WriteFM0、WriteFM1というコマンドシーケンスに対して、従来は2度のバックヒッチが発生していた点を、1度のバックヒッチの発生で済むよう、テープドライブ10側で解決する。尚、この場合、ホスト30側のソフトウェアを変更することは容易ではないので、テープドライブ10側でパフォーマンスを向上させることは有意義である。
具体的には、WriteFM0コマンドを受け取った時点で、次にWriteFM1コマンドが発行されることを想定して、WriteFM1コマンドに対応したFMを投機的に書き込んでおく。尚、以下では、このように投機的に書き込まれたFMを「投機的FM」(Speculative FM)と呼ぶことにする。そして、投機的FMを書き込んだことをカートリッジメモリ24に保持しておき、続くWriteFM1コマンドに対しては、カートリッジメモリ24に対する情報のアップデートのみを行うことで、バックヒッチの発生を防ぐ。このように、投機的FMを書き込んだことをカートリッジメモリ24に保持するようにしたのは、投機的FMを書き込んだ後、次の処理が行われる前に電源が遮断されてしまった場合に、テープ23の最後に残ったFMが投機的FMか通常のFMかを見分けるためである。
また、投機的FMが不要になった場合は、FMを読み出すコマンドに対し、投機的FMを誤ってホスト30に送らないようにする。
次に、このような動作を実現するためのコントローラ16の機能構成について説明する。
図3は、コントローラ16の機能構成例を示したブロック図である。
図示するように、コントローラ16は、コマンド処理部41と、バッファ管理部42と、チャネル入出力部43と、カートリッジメモリ入出力部(以下、「CM入出力部」という)44とを備える。
このうち、コマンド処理部41は、ホストI/F11からコマンドを受け取る。ここで、コマンドとしては、バッファ内のデータをテープ媒体に強制的に書き込むことを指示する第1のコマンドの一例であるWriteFM0コマンド、区切り情報をテープ媒体に書き込むことを指示する第2のコマンドの一例であるWriteFM1コマンド、バッファにデータを格納することを指示する第3のコマンドの一例であるWriteコマンド、テープ媒体に書き込まれた区切り情報を読み出したり、テープ媒体に書き込まれた区切り情報にテープ媒体を位置付けたりする第4のコマンドの一例であるReadコマンド、Locateコマンド、Spaceコマンド等がある。本実施の形態では、第1乃至第4のコマンドを受け付ける受付部の一例として、コマンド処理部41を設けている。
バッファ管理部42は、コマンド処理部41がWriteFM0コマンドを受け取った場合は、投機的FMをバッファ12内に用意し、コマンド処理部41がWriteFM1コマンドを受け取った場合は、WriteFM0コマンドの直後でなければ、FMをバッファ12内に用意する。また、コマンド処理部41がWriteコマンドを受け取った場合は、データをバッファ12内に用意し、コマンド処理部41がWriteFMコマンド、Writeコマンド以外のコマンドを受け取った場合は、WriteFM0コマンドの直後であれば、EOD(End Of Data)をバッファ12内に用意する。
チャネル入出力部43は、バッファ管理部42がバッファ12から読み出したデータをチャネル13に出力したり、チャネル13から受け取ったデータをバッファ12に格納したりする。特に、区切り情報の一例であるFM、ダミーの区切り情報の一例である投機的FM、投機的FMを上書きするためのデータをテープ23に書き込むべく出力する。本実施の形態では、バッファ内のデータとダミーの区切り情報とをテープ媒体に書き込む書込み部の一例として、また、ダミーの区切り情報を有効な区切り情報として扱えないようにする処理を行う処理部の一例として、チャネル入出力部43を設けている。
CM入出力部44は、カートリッジメモリ24がアクセス可能であるかどうかや、投機的FMがテープ23に存在することを示す情報(以下、「投機的FM存在情報」という)がカートリッジメモリ24に保存されているかどうかを、CMI/F19を介して調べる。また、カートリッジメモリ24に保存された投機的FM存在情報の消去も行う。本実施の形態では、ダミーの区切り情報がテープ媒体に書き込まれたことを示す情報を記録媒体に記録する記録部の一例として、また、ダミーの区切り情報を有効な区切り情報として扱えるようにする処理を行う処理部一例として、CM入出力部44を設けている。
次に、コントローラ16の動作について説明する。
この場合の動作は、WriteFM0コマンドに応じて投機的FMを書き込んだ後、予想に反してWriteFM1コマンドが来なかった場合に、投機的FMを物理的に上書きするか論理的に上書きするかで異なってくるので、これらを分けて説明する。
[物理的に上書きする場合]
図4は、この場合のデータセットの内容を模式的に示した図である。尚、ここでも、「データセット」を便宜上「DS」と表記している。即ち、図は、データセットのうちDS#NとDS#N+1に着目して、その内容を示している。
まず、(a)では、WriteFM0コマンドに応じて、その時点でホスト30から受け取っていたレコードRec#Mを含むDS#Nと、投機的FMのみを含むDS#N+1がテープ23に書き込まれている。尚、図中、「SFM」は、投機的FM(Speculative FM)を表す。
そして、(b)は、予想通り、次にWriteFM1コマンドが来た場合のDS#N及びDS#N+1の内容を示す。この場合、投機的FMは、有効化され、通常のFMとなっている。
一方、(c),(d)は、予想に反して、次にWriteFM1コマンドが来なかった場合のDS#N及びDS#N+1の内容を示す。例えば、WriteコマンドによりRec#M+1を書き込むよう指示されれば、(c)に示すように、投機的FMを含むDS#N+1は、Rec#M+1を含むDS#N+1で物理的に上書きされる。また、Writeコマンド以外のコマンドが来れば、(d)に示すように、投機的FMを含むDS#N+1は、EODを含むDS#N+1で物理的に上書きされる。尚、この場合、物理的上書き(Physical Overwrite)とは、テープ23上の投機的FMと同じ位置に他のデータを書き込むことによって上書きすることをいう。
以下、この場合のコントローラ16の動作について、詳細に説明する。
まず、WriteFMコマンドを受け取った場合の動作について説明する。
図5は、このときのコントローラ16の動作例を示したフローチャートである。尚、このとき、バッファ12内にはDS#Nまでの幾つかのデータセットが格納されており、DS#Nには、図4に示したように途中までデータが格納されているものとする。
コントローラ16では、まず、コマンド処理部41が、ホストI/F11からWriteFMコマンドを受け取り(ステップ401)、それがWriteFM0コマンドかWriteFM1コマンドかを判定する(ステップ402)。
ここで、WriteFM0コマンドであると判定した場合、コマンド処理部41はその旨の情報をバッファ管理部42に出力し、バッファ管理部42が、投機的FMを含むDS#N+1をバッファ12に用意する(ステップ403)。そして、バッファ管理部42が、バッファ12内のデータをチャネル入出力部43に渡し、チャネル入出力部43が、このデータをチャネル13に出力する(ステップ404)。これにより、バッファ12内にあるDS#N+1までのデータセットがチャネル13及びヘッド14を介してテープ23に書き込まれることになる。
また、バッファ管理部42は、投機的FMをテープ23に書き込んだ旨をCM入出力部44に通知し、CM入出力部44が、投機的FM存在情報をカートリッジメモリ24に保存することを指示する情報をCMI/F19に出力する(ステップ405)。
その後、これらの処理の結果は、コマンド処理部41に返され、コマンド処理部41は、WriteFMコマンド(この場合、WriteFM0コマンド)の完了をホスト30に報告する(ステップ406)。
一方、ステップ402でWriteFM1コマンドであると判定した場合、コマンド処理部41はその旨をCM入出力部44に通知し、CM入出力部44が、CMI/F19を用いて、投機的FM存在情報がカートリッジメモリ24に保存されているかどうかを確認することにより、投機的FMがテープ23上にあるかどうかを判定する(ステップ407)。
その結果、投機的FMがテープ23上にないと判定した場合、CM入出力部44は、その旨をバッファ管理部42に伝える。この場合は、前回のコマンドがWriteFM0コマンドではない、つまり、WriteFM0コマンドに続けてWriteFM1コマンドが来たわけではないので、バッファ管理部42は、通常のFMの書込みを行う。即ち、まず、FMを含むDS#N+1をバッファ12に用意する(ステップ408)。そして、バッファ12内のデータをチャネル入出力部43に渡し、チャネル入出力部43が、このデータをチャネル13に出力する(ステップ409)。これにより、バッファ12内にあるDS#N+1までのデータセットがチャネル13及びヘッド14を介してテープ23に書き込まれることになる。
その後、これらの処理の結果は、コマンド処理部41に返され、コマンド処理部41は、WriteFMコマンド(この場合、WriteFM1コマンド)の完了をホスト30に報告する(ステップ406)。
一方、ステップ407で投機的FMがテープ23上にあると判定した場合は、前回のコマンドがWriteFM0コマンドである、つまり、WriteFM0コマンドに続けてWriteFM1コマンドが来た場合であるので、CM入出力部44は、カートリッジメモリ24に記憶された投機的FM存在情報を消去することを指示する情報をCMI/F19に出力する(ステップ410)。これにより、カートリッジメモリ24内の投機的FM存在情報は消去される。
その後、これらの処理の結果は、コマンド処理部41に返され、コマンド処理部41は、WriteFMコマンド(この場合、WriteFM1コマンド)の完了をホスト30に報告する(ステップ406)。
次に、Writeコマンドを受け取った場合の動作について説明する。
図6は、このときのコントローラ16の動作例を示したフローチャートである。尚、このとき、テープ23上にはDS#N+1までが書かれているものとする。
コントローラ16では、まず、コマンド処理部41が、ホストI/F11からWriteコマンドを受け取り(ステップ411)、その旨の情報をバッファ管理部42及びCM入出力部44に出力する。すると、CM入出力部44が、CMI/F19を用いて、投機的FM存在情報がカートリッジメモリ24に保存されているかどうかを確認することにより、投機的FMがテープ23上にあるかどうかを判定する(ステップ412)。
ここで、投機的FMがテープ23上にあると判定した場合は、WriteFM0コマンドに続くコマンドとしてWriteFM1コマンドが来ることを予想して投機的FMをテープ23に書き込んだにも関わらず、続くコマンドとしてWriteコマンドが来た場合である。この場合、CM入出力部44は、カートリッジメモリ24に記憶された投機的FM存在情報を消去することを指示する情報をCMI/F19に出力する(ステップ413)。これにより、カートリッジメモリ24内の投機的FM存在情報は消去される。
また、CM入出力部44は、投機的FM存在情報がカートリッジメモリ24に保存されていた旨をバッファ管理部42に通知する。すると、バッファ管理部42は、テープ23上の投機的FMを無効化して次のデータを書き込むための処理を行う。即ち、バッファ12内のデータの格納位置をDS#N+1に設定し、この新たなDS#N+1によりテープ23上の投機的FMを含むDS#N+1が物理的に上書きされるように管理する(ステップ414)。例えば、バッファ12内のDS#N+1が、テープ23上のDS#N+1を物理的に上書きする位置に書き込まれる場合であれば、テープ23上の上書きされるべきデータセットの番号と、バッファ12内の上書きすべきデータセットの番号とを同じにすることが、物理的に上書きされるように管理することに相当する。一方、バッファ12内のDS#N+1が、テープ23上のDS#N+1を物理的に上書きする位置に書き込まれるとは限らない場合であれば、例えば、データセットに付随する情報テーブル(DSIT:Data Set Information Table)の中に、そのデータセットが同じ番号のテープ23上のデータセットを物理的に上書きすべきことを示す情報を持たせてもよい。
そして、バッファ管理部42は、Writeコマンドと共にホスト30から送られたデータをコマンド処理部41から受け取り、バッファ12内の格納位置として設定されたデータセットに格納する(ステップ415)。
その後、これらの処理の結果は、コマンド処理部41に返され、コマンド処理部41は、Writeコマンドの完了をホスト30に報告する(ステップ416)。
そして、その後の同期コマンドにより、投機的FMは、データにより物理的に上書きされる。これは、WriteFM1コマンドを実行し、それを次のデータで物理的に上書きした場合と同じと考えることができる。
一方、ステップ412で投機的FMがテープ23上にないと判定した場合は、WriteFM0コマンドに続いて来たWriteコマンドではなく、通常のWriteコマンドである。この場合、CM入出力部44は、その旨をバッファ管理部42に通知する。すると、バッファ管理部42は、Writeコマンドと共にホスト30から送られたデータをコマンド処理部41から受け取り、バッファ12内の現在のデータに続けて格納する(ステップ415)。
その後、これらの処理の結果は、コマンド処理部41に返され、コマンド処理部41は、Writeコマンドの完了をホスト30に報告する(ステップ416)。
次いで、WriteFMコマンド、Writeコマンド以外のコマンドを受け取った場合の動作について説明する。尚、この動作においては、カートリッジメモリ24を読める場合と読めない場合について考慮する。仮に、カートリッジメモリ24が物理的に壊れていたとしても、テープ23上に書かれたデータは正しく読み出されることが求められるからである。
図7は、このときのコントローラ16の動作例を示したフローチャートである。尚、ここでは、DS#N+1がテープ23の最後に書かれたデータセットであるとする。
コントローラ16では、まず、コマンド処理部41が、ホストI/F11からWriteFMコマンド、Writeコマンド以外のコマンドを受け取る(ステップ421)。尚、このようなコマンドとしては、Readコマンド、Locateコマンド、Spaceコマンド、Rewindコマンド、Unloadコマンド等がある。
そして、コマンド処理部41は、コマンドを受け取った旨の情報をバッファ管理部42に出力し、バッファ管理部42は、まだ書かれていないデータがバッファ12内にあるかどうかを判定する(ステップ422)。
ここで、まだ書かれていないデータがバッファ12内にあると判定した場合、バッファ12内の全てのデータをテープ23に書き込んで(ステップ429)、ステップ427へ進む。一方、まだ書かれていないデータがバッファ12内にないと判定した場合、その旨の情報をCM入出力部44に出力する。すると、CM入出力部44が、カートリッジメモリ24にアクセス可能かどうかを調べることを指示する情報をCMI/F19に出力する(ステップ423)。
その結果、カートリッジメモリ24にアクセス可能でないと判定すると、ステップ427へ進むが、カートリッジメモリ24にアクセス可能であると判定すると、CM入出力部44は、CMI/F19を用いて、投機的FM存在情報がカートリッジメモリ24に保存されているかどうかを確認することにより、投機的FMがテープ23上にあるかどうかを判定する(ステップ424)。ここで、投機的FMがテープ23上にない場合は、ステップ427へ進むが、投機的FMがテープ23上にある場合、CM入出力部44は、カートリッジメモリ24に記憶された投機的FM存在情報を消去することを指示する情報をCMI/F19に出力する(ステップ425)。これにより、カートリッジメモリ24内の投機的FM存在情報は消去される。
また、CM入出力部44は、投機的FM存在情報がカートリッジメモリ24に保存されていた旨をバッファ管理部42に通知する。一連の書込み処理が終わった時点で投機的FMはテープ23上に存在してはいけないので、この通知により、バッファ管理部42は、テープ23上の投機的FMを無効化してEODを書き込むための処理を行う。即ち、バッファ12内のEODの格納位置をDS#N+1に設定し、この新たなDS#N+1によりテープ23上の投機的FMを含むDS#N+1が物理的に上書きされるように管理する(ステップ426)。尚、この場合の物理的に上書きされるような管理の方法としては、ステップ414に関して説明したのと同様の方法を用いることができる。
その後、コマンド処理部41が受け取ったコマンドに応じて、後述するコマンド処理が行われる(ステップ427)。そして、コマンド処理が終了すると、コマンド処理部41は、コマンドの完了をホスト30に報告する(ステップ428)。
次いで、図7のステップ427におけるコマンド処理の動作について説明する。
図8は、コマンド処理を行うときのコントローラ16の動作例を示したフローチャートである。
コントローラ16では、まず、コマンド処理部41が、処理の対象となるコマンドがターゲットの指定を有するものであるかどうかを判定する(ステップ431)。尚、ここで、ターゲットとは、Readコマンドで指定される読出し対象のレコード又はFM、LocateコマンドやSpaceコマンドで指定される位置合わせ対象のレコード又はFMである。
その結果、ターゲット指定を有するコマンドでない場合、例えば、Unloadコマンド等の場合は、そのコマンドに応じた処理が行われ(ステップ440)、図7のフローチャートに戻る。
一方、ターゲット指定を有するコマンドである場合、例えば、Readコマンド、Locateコマンド、Spaceコマンド等の場合、コマンド処理部41は、コマンド及びターゲットをチャネル入出力部43に出力し、チャネル入出力部43が、ターゲットを含むデータセット及びその次のデータセットを読んで、読めたかどうかをコマンド処理部41に返す。そして、この結果に基づいて、コマンド処理部41は、ターゲットを含むデータセットがテープ23上の最後のデータセットであるかどうかを判定する(ステップ433)。尚、図では、ターゲットを含むデータセットをDS#Nとしている。
ここで、最後のデータセットでないと判定した場合、Readコマンドに対しては、チャネル入出力部43が取得したレコード又はFMをコマンド処理部41がホスト30に転送する。また、LocateコマンドやSpaceコマンドに対しては、指定されたレコード又はFMへの位置合わせをバッファ管理部42が行う(ステップ436)。
一方、最後のデータセットであると判定した場合、コマンド処理部41は、その旨の情報をCM入出力部44に出力する。すると、CM入出力部44が、カートリッジメモリ24にアクセス可能かどうかを調べることを指示する情報をCMI/F19に出力する(ステップ434)。
まず、このステップ434でカートリッジメモリ24にアクセス可能であると判定された場合について述べる。この場合、コマンド処理部41は、ターゲットが投機的FMであるかどうかを判定する(ステップ435)。尚、ここでの判定は、具体的には、次のように行うことが可能である。即ち、まず、コマンド処理部41が、ターゲットがデータセット内の最後のブロック(レコード又はFM)であるかどうかを判定する。そして、CM入出力部44が、CMI/F19を用いて、投機的FM存在情報がカートリッジメモリ24に保存されているかどうかを確認することにより、投機的FMがテープ23上にあるかどうかを判定する。その結果、ターゲットがデータセット内の最後のブロックであり、かつ、投機的FMがテープ23上にあれば、この投機的FMがターゲットとして指定されたことになる。
電源障害等により投機的FMを書き込んだ後に正常に書き込み処理が終了できなかった場合を除けば、この時点で、投機的FM存在情報がカートリッジメモリ24に残っていることはない。従って、物理的上書きの規則に従って、DS#N、DS#N+1を扱えば、整合性の取れたデータをホスト30に転送することが可能である。即ち、ターゲットが投機的FMでないと判定した場合、Readコマンドに対しては、チャネル入出力部43が取得したレコード又はFMをコマンド処理部41がホスト30に転送する。また、LocateコマンドやSpaceコマンドに対しては、指定されたレコード又はFMへの位置合わせをバッファ管理部42が行う(ステップ436)。
一方、例えば、WriteFM0コマンドにより投機的FMがテープ23上に書き込まれた状態で、ドライブの電源障害等により以後の処理が行われなかった場合は、投機的FM存在情報がカートリッジメモリ24に残っていると考えられる。その場合には、テープ23上の最後に書き込まれた投機的FMはなかったものとして扱う。即ち、ターゲットが投機的FMであると判定した場合、コマンド処理部41は、読出しエラーを報告する準備を行う(ステップ439)。尚、この読出しエラーは、図7のステップ428でホスト30に報告されることになる。
次に、ステップ434でカートリッジメモリ24にアクセス可能でないと判定された場合について述べる。このように、カートリッジメモリ24が無効な場合としては、カートリッジメモリ24が物理的に利用できないような場合がある。このような場合でも、テープ23上のデータは可能な限り、正しい内容でホスト30に転送することが要求される。
ここでは、次のデータセットを読めない場合、つまり、ターゲットを含むデータセットがテープ23上の最後のデータセットである場合を考えている。この場合、最後にテープ23上から読めたFMは、情報が不確かである(投機的FMであるかもしれない)ため、ホスト30に転送しない。即ち、まず、コマンド処理部41は、ターゲットがFMであるかどうかを判定する(ステップ438)。そして、ターゲットがFMであると判定されれば、読出しエラーを報告する準備を行う(ステップ439)。尚、この読出しエラーは、図7のステップ428でホスト30に報告されることになる。また、ターゲットがFMでないと判定されれば、Readコマンドに対しては、チャネル入出力部43が取得したレコードをコマンド処理部41がホスト30に転送する。また、LocateコマンドやSpaceコマンドに対しては、指定されたレコードへの位置合わせをバッファ管理部42が行う(ステップ436)。
尚、次のデータセットが読める場合、つまり、ターゲットを含むデータセットがテープ23上の最後のデータセットでない場合は、物理上書きの規則に従って、DS#N、DS#N+1を扱えば、整合性の取れたデータをホスト30に転送することが可能である。この場合は、カートリッジメモリ24に投機的FM存在情報が存在することはない。なぜなら、次のデータセットの書込みが正常に終了していれば、投機的FMは、有効なFMであるか、続くデータで物理的に上書きされているかのどちらかのケースしかありえないからである。このような場合は、ステップ433の判断が「No」である場合に該当する。
[論理的に上書きする場合]
図9は、この場合のデータセットの内容を模式的に示した図である。尚、ここでも、「データセット」を便宜上「DS」と表記している。即ち、図は、データセットのうちDS#Nと必要があればDS#N+1に着目して、その内容を示している。
まず、(a)では、WriteFM0コマンドに応じて、その時点でホスト30から受け取っていたレコードRec#Mと投機的FMとを含むDS#Nがテープ23に書き込まれている。尚、図中、「SFM」は、投機的FM(Speculative FM)を表す。
そして、(b)は、予想通り、次にWriteFM1コマンドが来た場合のDS#Nの内容を示す。この場合、投機的FMは、有効化され、通常のFMとなっている。
一方、(c),(d)は、予想に反して、次にWriteFM1コマンドが来なかった場合のDS#N及びDS#N+1の内容を示す。例えば、WriteコマンドによりRec#M+1を書き込むよう指示されれば、(c)に示すように、Rec#Mと投機的FMとを含むDS#Nは、Rec#MとRec#M+1を含むDS#N+1で論理的に上書きされる。また、Writeコマンド以外のコマンドが来れば、(d)に示すように、Rec#Mと投機的FMとを含むDS#Nは、Rec#Mを含むDS#N+1で論理的に上書きされ、その後にEODが書かれる。尚、この場合、論理的上書き(Logical Overwrite)とは、テープ23上の投機的FMと異なる位置に他のデータを書き込むと共にテープ23に投機的FMが無効であることを示す情報を書き込むことによって上書きすることをいう。
以下、この場合のコントローラ16の動作について、詳細に説明する。
まず、WriteFMコマンドを受け取った場合の動作について説明する。
図10は、このときのコントローラ16の動作例を示したフローチャートである。尚、このとき、バッファ12内にはDS#Nまでの幾つかのデータセットが格納されており、DS#Nには、図9に示したように途中までデータが格納されているものとする。
コントローラ16では、まず、コマンド処理部41が、ホストI/F11からWriteFMコマンドを受け取り(ステップ451)、それがWriteFM0コマンドかWriteFM1コマンドかを判定する(ステップ452)。
ここで、WriteFM0コマンドであると判定した場合、コマンド処理部41はその旨の情報をバッファ管理部42に出力し、バッファ管理部42が、投機的FMを含むDS#Nをバッファ12に用意する(ステップ453)。そして、バッファ管理部42が、バッファ12内のデータをチャネル入出力部43に渡し、チャネル入出力部43が、このデータをチャネル13に出力する(ステップ454)。これにより、バッファ12内にあるDS#Nまでのデータセットがチャネル13及びヘッド14を介してテープ23に書き込まれることになる。
また、バッファ管理部42は、投機的FMをテープ23に書き込んだ旨をCM入出力部44に通知し、CM入出力部44が、投機的FM存在情報をカートリッジメモリ24に保存することを指示する情報をCMI/F19に出力する(ステップ455)。
その後、これらの処理の結果は、コマンド処理部41に返され、コマンド処理部41は、WriteFMコマンド(この場合、WriteFM0コマンド)の完了をホスト30に報告する(ステップ456)。
一方、ステップ452でWriteFM1コマンドであると判定した場合、コマンド処理部41はその旨をCM入出力部44に通知し、CM入出力部44が、CMI/F19を用いて、投機的FM存在情報がカートリッジメモリ24に保存されているかどうかを確認することにより、投機的FMがテープ23上にあるかどうかを判定する(ステップ457)。
その結果、投機的FMがテープ23上にないと判定した場合、CM入出力部44は、その旨をバッファ管理部42に伝える。この場合は、前回のコマンドがWriteFM0コマンドではない、つまり、WriteFM0コマンドに続けてWriteFM1コマンドが来たわけではないので、バッファ管理部42は、通常のFMの書込みを行う。即ち、まず、FMを含むDS#Nをバッファ12に用意する(ステップ458)。そして、バッファ12内のデータをチャネル入出力部43に渡し、チャネル入出力部43が、このデータをチャネル13に出力する(ステップ459)。これにより、バッファ12内にあるDS#Nまでのデータセットがチャネル13及びヘッド14を介してテープ23に書き込まれることになる。
その後、これらの処理の結果は、コマンド処理部41に返され、コマンド処理部41は、WriteFMコマンド(この場合、WriteFM1コマンド)の完了をホスト30に報告する(ステップ456)。
一方、ステップ457で投機的FMがテープ23上にあると判定した場合は、前回のコマンドがWriteFM0コマンドである、つまり、WriteFM0コマンドに続けてWriteFM1コマンドが来た場合であるので、CM入出力部44は、カートリッジメモリ24に記憶された投機的FM存在情報を消去することを指示する情報をCMI/F19に出力する(ステップ460)。これにより、カートリッジメモリ24内の投機的FM存在情報は消去される。
その後、これらの処理の結果は、コマンド処理部41に返され、コマンド処理部41は、WriteFMコマンド(この場合、WriteFM1コマンド)の完了をホスト30に報告する(ステップ456)。
次に、Writeコマンドを受け取った場合の動作について説明する。
図11は、このときのコントローラ16の動作例を示したフローチャートである。尚、このとき、テープ23上にはDS#Nまでが書かれているものとする。
コントローラ16では、まず、コマンド処理部41が、ホストI/F11からWriteコマンドを受け取り(ステップ461)、その旨の情報をバッファ管理部42及びCM入出力部44に出力する。すると、CM入出力部44が、CMI/F19を用いて、投機的FM存在情報がカートリッジメモリ24に保存されているかどうかを確認することにより、投機的FMがテープ23上にあるかどうかを判定する(ステップ462)。
ここで、投機的FMがテープ23上にあると判定した場合は、WriteFM0コマンドに続くコマンドとしてWriteFM1コマンドが来ることを予想して投機的FMをテープ23に書き込んだにも関わらず、続くコマンドとしてWriteコマンドが来た場合である。この場合、CM入出力部44は、カートリッジメモリ24に記憶された投機的FM存在情報を消去することを指示する情報をCMI/F19に出力する(ステップ463)。これにより、カートリッジメモリ24内の投機的FM存在情報は消去される。
また、CM入出力部44は、投機的FM存在情報がカートリッジメモリ24に保存されていた旨をバッファ管理部42に通知する。すると、バッファ管理部42は、テープ23上の投機的FMを無効化して次のデータを書き込むための処理を行う。即ち、バッファ12内のデータの格納位置をDS#N+1に設定し、この新たなDS#N+1によりテープ23上の投機的FMを含むDS#Nが論理的に上書きされるように管理する(ステップ464)。例えば、DS#N+1に付随する情報テーブル(DSIT)の中に、DS#Nは無効であることを示す情報を持たせておき、DS#N+1がDS#Nの代わりになることを示しておけばよい。
そして、バッファ管理部42は、Writeコマンドと共にホスト30から送られたデータをコマンド処理部41から受け取り、バッファ12内の格納位置として設定されたデータセットに格納する(ステップ465)。
その後、これらの処理の結果は、コマンド処理部41に返され、コマンド処理部41は、Writeコマンドの完了をホスト30に報告する(ステップ466)。
そして、その後の同期コマンドにより、投機的FMは、データにより論理的に上書きされる。これは、WriteFM1コマンドを実行し、それを次のデータで論理的に上書きした場合と同じと考えることができる。
一方、ステップ462で投機的FMがテープ23上にないと判定した場合は、WriteFM0コマンドに続いて来たWriteコマンドではなく、通常のWriteコマンドである。この場合、CM入出力部44は、その旨をバッファ管理部42に通知する。すると、バッファ管理部42は、Writeコマンドと共にホスト30から送られたデータをコマンド処理部41から受け取り、バッファ12内の現在のデータに続けて格納する(ステップ465)。
その後、これらの処理の結果は、コマンド処理部41に返され、コマンド処理部41は、Writeコマンドの完了をホスト30に報告する(ステップ466)。
次いで、WriteFMコマンド、Writeコマンド以外のコマンドを受け取った場合の動作について説明する。尚、この動作においては、カートリッジメモリ24を読める場合と読めない場合について考慮する。仮に、カートリッジメモリ24が物理的に壊れていたとしても、テープ23上に書かれたデータは正しく読み出されることが求められるからである。
図12は、このときのコントローラ16の動作例を示したフローチャートである。尚、ここでは、DS#Nがテープ23の最後に書かれたデータセットであるとする。
コントローラ16では、まず、コマンド処理部41が、ホストI/F11からWriteFMコマンド、Writeコマンド以外のコマンドを受け取る(ステップ471)。尚、このようなコマンドとしては、Readコマンド、Locateコマンド、Spaceコマンド、Rewindコマンド、Unloadコマンド等がある。
そして、コマンド処理部41は、コマンドを受け取った旨の情報をバッファ管理部42に出力し、バッファ管理部42は、まだ書かれていないデータがバッファ12内にあるかどうかを判定する(ステップ472)。
ここで、まだ書かれていないデータがバッファ12内にあると判定した場合、バッファ12内の全てのデータをテープ23に書き込んで(ステップ479)、ステップ477へ進む。一方、まだ書かれていないデータがバッファ12内にないと判定した場合、その旨の情報をCM入出力部44に出力する。すると、CM入出力部44が、カートリッジメモリ24にアクセス可能かどうかを調べることを指示する情報をCMI/F19に出力する(ステップ473)。
その結果、カートリッジメモリ24にアクセス可能でないと判定すると、ステップ477へ進むが、カートリッジメモリ24にアクセス可能であると判定すると、CM入出力部44は、CMI/F19を用いて、投機的FM存在情報がカートリッジメモリ24に保存されているかどうかを確認することにより、投機的FMがテープ23上にあるかどうかを判定する(ステップ474)。ここで、投機的FMがテープ23上にない場合は、ステップ477へ進むが、投機的FMがテープ23上にある場合、CM入出力部44は、カートリッジメモリ24に記憶された投機的FM存在情報を消去することを指示する情報をCMI/F19に出力する(ステップ475)。これにより、カートリッジメモリ24内の投機的FM存在情報は消去される。
また、CM入出力部44は、投機的FM存在情報がカートリッジメモリ24に保存されていた旨をバッファ管理部42に通知する。一連の書込み処理が終わった時点で投機的FMはテープ23上に存在してはいけないので、この通知により、バッファ管理部42は、テープ23上の投機的FMを無効化してEODを書き込むための処理を行う。即ち、バッファ12内のデータの格納位置をDS#N+1に設定し、この新たなDS#N+1によりテープ23上の投機的FMを含むDS#Nが論理的に上書きされるように管理すると共に、次のデータセットにEODを格納する(ステップ476)。尚、この場合の論理的に上書きされるような管理の方法としては、ステップ464に関して説明したのと同様の方法を用いることができる。
その後、コマンド処理部41が受け取ったコマンドに応じて、後述するコマンド処理が行われる(ステップ477)。そして、コマンド処理が終了すると、コマンド処理部41は、コマンドの完了をホスト30に報告する(ステップ478)。
次いで、図12のステップ477におけるコマンド処理の動作について説明する。
図13は、コマンド処理を行うときのコントローラ16の動作例を示したフローチャートである。
コントローラ16では、まず、コマンド処理部41が、処理の対象となるコマンドがターゲットの指定を有するものであるかどうかを判定する(ステップ481)。尚、ここで、ターゲットとは、Readコマンドで指定される読出し対象のレコード又はFM、LocateコマンドやSpaceコマンドで指定される位置合わせ対象のレコード又はFMである。
その結果、ターゲット指定を有するコマンドでない場合、例えば、Unloadコマンド等の場合は、そのコマンドに応じた処理が行われ(ステップ490)、図12のフローチャートに戻る。
一方、ターゲット指定を有するコマンドである場合、例えば、Readコマンド、Locateコマンド、Spaceコマンド等の場合、コマンド処理部41は、コマンド及びターゲットをチャネル入出力部43に出力し、チャネル入出力部43が、ターゲットを含むデータセット及びその次のデータセットを読んで、読めたかどうかをコマンド処理部41に返す。そして、この結果に基づいて、コマンド処理部41は、ターゲットを含むデータセットの次のデータセットが読めたかどうかを判定する(ステップ482)。尚、図では、ターゲットを含むデータセットをDS#Nとしている。
ここで、次のデータセットが読めたと判定した場合、Readコマンドに対しては、チャネル入出力部43が取得したレコード又はFMをコマンド処理部41がホスト30に転送する。また、LocateコマンドやSpaceコマンドに対しては、指定されたレコード又はFMへの位置合わせをバッファ管理部42が行う(ステップ486)。
一方、次のデータセットが読めなかったと判定した場合、ターゲットを含むデータセットがテープ23上の最後のデータセットであるかどうかを判定する(ステップ483)。
ここで、最後のデータセットでないと判定した場合、Readコマンドに対しては、チャネル入出力部43が取得したレコード又はFMをコマンド処理部41がホスト30に転送する。また、LocateコマンドやSpaceコマンドに対しては、指定されたレコード又はFMへの位置合わせをバッファ管理部42が行う(ステップ486)。
一方、最後のデータセットであると判定した場合、コマンド処理部41は、その旨の情報をCM入出力部44に出力する。すると、CM入出力部44が、カートリッジメモリ24にアクセス可能かどうかを調べることを指示する情報をCMI/F19に出力する(ステップ484)。
まず、このステップ484でカートリッジメモリ24にアクセス可能であると判定された場合について述べる。この場合、コマンド処理部41は、ターゲットが投機的FMであるかどうかを判定する(ステップ485)。尚、ここでの判定は、具体的には、次のように行うことが可能である。即ち、まず、コマンド処理部41が、ターゲットがデータセット内の最後のブロック(レコード又はFM)であるかどうかを判定する。そして、CM入出力部44が、CMI/F19を用いて、投機的FM存在情報がカートリッジメモリ24に保存されているかどうかを確認することにより、投機的FMがテープ23上にあるかどうかを判定する。その結果、ターゲットがデータセット内の最後のブロックであり、かつ、投機的FMがテープ23上にあれば、この投機的FMがターゲットとして指定されたことになる。
電源障害等により投機的FMを書き込んだ後に正常に書き込み処理が終了できなかった場合を除けば、この時点で、投機的FM存在情報がカートリッジメモリ24に残っていることはない。従って、論理的上書きの規則に従って、DS#N、DS#N+1を扱えば、整合性の取れたデータをホスト30に転送することが可能である。即ち、ターゲットが投機的FMでないと判定した場合、Readコマンドに対しては、チャネル入出力部43が取得したレコード又はFMをコマンド処理部41がホスト30に転送する。また、LocateコマンドやSpaceコマンドに対しては、指定されたレコード又はFMへの位置合わせをバッファ管理部42が行う(ステップ486)。
一方、例えば、WriteFM0コマンドにより投機的FMがテープ23上に書き込まれた状態で、ドライブの電源障害等により以後の処理が行われなかった場合は、投機的FM存在情報がカートリッジメモリ24に残っていると考えられる。その場合には、テープ23上の最後に書き込まれた投機的FMはなかったものとして扱う。即ち、ターゲットが投機的FMであると判定した場合、コマンド処理部41は、読出しエラーを報告する準備を行う(ステップ489)。尚、この読出しエラーは、図12のステップ478でホスト30に報告されることになる。
次に、ステップ484でカートリッジメモリ24にアクセス可能でないと判定された場合について述べる。このように、カートリッジメモリ24が無効な場合としては、カートリッジメモリ24が物理的に利用できないような場合がある。このような場合でも、テープ23上のデータは可能な限り、正しい内容でホスト30に転送することが要求される。
ここでは、次のデータセットを読めない場合、つまり、ターゲットを含むデータセットがテープ23上の最後のデータセットである場合を考えている。この場合、最後にテープ23上から読めたFMは、情報が不確かである(投機的FMであるかもしれない)ため、ホスト30に転送しない。即ち、まず、コマンド処理部41は、ターゲットがFMであるかどうかを判定する(ステップ488)。そして、ターゲットがFMであると判定されれば、読出しエラーを報告する準備を行う(ステップ489)。尚、この読出しエラーは、図12のステップ478でホスト30に報告されることになる。また、ターゲットがFMでないと判定されれば、Readコマンドに対しては、チャネル入出力部43が取得したレコードをコマンド処理部41がホスト30に転送する。また、LocateコマンドやSpaceコマンドに対しては、指定されたレコードへの位置合わせをバッファ管理部42が行う(ステップ486)。
尚、次のデータセットが読める場合、つまり、ターゲットを含むデータセットがテープ23上の最後のデータセットでない場合は、論理上書きの規則に従って、DS#N、DS#N+1を扱えば、整合性の取れたデータをホスト30に転送することが可能である。この場合は、カートリッジメモリ24に投機的FM存在情報が存在することはない。なぜなら、次のデータセットの書込みが正常に終了していれば、投機的FMは、有効なFMであるか、続くデータで物理的に上書きされているかのどちらかのケースしかありえないからである。このような場合は、ステップ483の判断が「No」である場合に該当する。
以上により、本実施の形態についての説明を終了する。
尚、本実施の形態では、上述したように、投機的FMを書き込んだ後、次の処理が行われる前に電源が遮断されてしまった場合に、テープ23の最後に残ったFMが投機的FMか通常のFMかを見分けるため、投機的FM存在情報をテープカートリッジ20内のカートリッジメモリ24に保存した。しかしながら、このような電源が遮断されるようなケースを想定しなければ、カートリッジメモリ24以外の記録媒体に保存するようにしてもよい。
このように、本実施の形態では、WriteFM0コマンドに応じて、バッファ12内のデータに加えて投機的FMをテープ23に書き込み、かつ、投機的FM存在情報をカートリッジメモリ24に記録しておき、次にWriteFM1コマンドが来れば、投機的FM存在情報をカートリッジメモリ24から消去して、投機的FMを有効なFMとして扱えるようにした。これにより、WriteFM0コマンドとWriteFM1コマンドが連続して送られる場合に、2度のバックヒッチが1度のバックヒッチで済み、かつ、カートリッジメモリ24へのアクセス(数ミリ秒)だけで処理できるので、パフォーマンスが著しく向上する。
尚、本実施の形態では、WriteFM0コマンドとWriteFM1コマンドが連続して送られる場合について述べたが、これはあくまで一実施例であり、WriteFM1コマンドとWriteFM1コマンドが連続して送られる場合についても本発明は適用可能である。
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム(装置又は機器)、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ(CD−ROM)、コンパクトディスク−リード/ライト(CD−R/W)及びDVDが含まれる。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
本発明の実施の形態が適用されるテープドライブの構成を示したブロック図である。 本発明の実施の形態が解決しようとする課題を説明するための図である。 本発明の実施の形態におけるコントローラの機能構成例を示したブロック図である。 本発明の実施の形態におけるコントローラの第1の動作例の概要を示した図である。 本発明の実施の形態におけるコントローラのWriteFMコマンドを受け取った際の第1の動作例を示したフローチャートである。 本発明の実施の形態におけるコントローラのWriteコマンドを受け取った際の第1の動作例を示したフローチャートである。 本発明の実施の形態におけるコントローラのWriteFMコマンド、Writeコマンド以外のコマンドを受け取った際の第1の動作例を示したフローチャートである。 本発明の実施の形態におけるコントローラのWriteFMコマンド、Writeコマンド以外のコマンドを受け取った際の第1の動作例を示したフローチャートである。 本発明の実施の形態におけるコントローラの第2の動作例の概要を示した図である。 本発明の実施の形態におけるコントローラのWriteFMコマンドを受け取った際の第2の動作例を示したフローチャートである。 本発明の実施の形態におけるコントローラのWriteコマンドを受け取った際の第2の動作例を示したフローチャートである。 本発明の実施の形態におけるコントローラのWriteFMコマンド、Writeコマンド以外のコマンドを受け取った際の第2の動作例を示したフローチャートである。 本発明の実施の形態におけるコントローラのWriteFMコマンド、Writeコマンド以外のコマンドを受け取った際の第2の動作例を示したフローチャートである。
符号の説明
10…テープドライブ、11…ホストI/F、12…バッファ、13…チャネル、14…ヘッド、15…モータ、16…コントローラ、17…ヘッド位置制御システム、18…モータドライバ、19…CMI/F

Claims (6)

  1. 上位装置からのコマンドに応じてバッファ内のデータをテープ媒体に書き込む装置であって、
    前記バッファ内の全てのデータを前記テープ媒体に書き込むことを指示する第1のコマンドと、区切り情報を当該テープ媒体に書き込むことを指示する第2のコマンドと、前記バッファにデータを格納することを指示する第3のコマンドとを前記上位装置から受け付ける受付部と、
    前記受付部が前記第1のコマンドを受け付けた場合に、前記バッファ内の全てのデータとダミーの区切り情報とを前記テープ媒体に書き込む書込み部と、
    前記書込み部により前記ダミーの区切り情報が前記テープ媒体に書き込まれたことを示す情報を記録媒体に記録する記録部と、
    前記受付部が前記第1のコマンドに続けて前記第2のコマンドを受け付けた場合に、前記記録媒体に記録された前記情報を消去することにより、前記ダミーの区切り情報を、前記受付部が前記第2のコマンドを受け付けた場合に書き込まれる通常の区切り情報とする処理を行い、前記受付部が前記第1のコマンドに続けて前記第3のコマンドを受け付けた場合に、当該第3のコマンドが前記バッファに格納することを指示するデータを、前記テープ媒体上の前記ダミーの区切り情報と同じ位置に書き込まれるデータが記憶される当該バッファ内の位置に記憶する処理、及び、当該第3のコマンドが前記バッファに格納することを指示するデータと、前記ダミーの区切り情報が無効であることを示す情報とを、前記テープ媒体上の前記ダミーの区切り情報と異なる位置に書き込まれるデータが記憶される当該バッファ内の位置に記憶する処理の何れかを行う処理部と
    を含む、装置。
  2. 前記記録媒体は、前記テープ媒体を収納するカートリッジに設けられたメモリである、請求項1の装置。
  3. 前記受付部は、前記テープ媒体に書き込まれた前記区切り情報を読み出すこと、及び、前記テープ媒体に書き込まれた前記区切り情報が目的の位置に来るように当該テープ媒体を移動させることの何れかを指示する第4のコマンドを更に受け付け、
    前記処理部は、前記受付部が前記第1のコマンドに続けて前記第4のコマンドを受け付けた場合に、終端情報を、前記テープ媒体上の前記ダミーの区切り情報と同じ位置に書き込まれるデータが記憶される前記バッファ内の位置に記憶する処理、及び、終端情報と、前記ダミーの区切り情報が無効であることを示す情報とを、前記テープ媒体上の前記ダミーの区切り情報と異なる位置に書き込まれるデータが記憶される前記バッファ内の位置に記憶する処理の何れかを行う、請求項1の装置。
  4. 前記受付部は、前記テープ媒体に書き込まれた前記区切り情報を読み出すこと、及び、前記テープ媒体に書き込まれた前記区切り情報が目的の位置に来るように当該テープ媒体を移動させることの何れかを指示する第4のコマンドを更に受け付け、
    前記処理部は、前記受付部が前記第4のコマンドを受け付けた場合に、前記区切り情報が前記ダミーの区切り情報でなければ、当該第4のコマンドにより指示された処理を行い、前記区切り情報が前記ダミーの区切り情報であれば、当該第4のコマンドにより指示された処理を行わない、請求項1の装置。
  5. 上位装置からのコマンドに応じてバッファ内のデータをテープ媒体に書き込む方法であって、
    前記バッファ内の全てのデータを前記テープ媒体に書き込むことを指示する第1のコマンドが前記上位装置から送られた場合に、当該バッファ内の全てのデータとダミーの区切り情報とを当該テープ媒体に書き込むステップと、
    前記ダミーの区切り情報が前記テープ媒体に書き込まれたことを示す情報を記録媒体に記録するステップと、
    区切り情報を前記テープ媒体に書き込むことを指示する第2のコマンドが前記第1のコマンドに続けて前記上位装置から送られた場合に、前記記録媒体に記録された前記情報を消去することにより、前記ダミーの区切り情報を、前記第2のコマンドが前記上位装置から送られた場合に書き込まれる通常の区切り情報とするステップと、
    前記バッファにデータを格納することを指示する第3のコマンドが前記第1のコマンドに続けて前記上位装置から送られた場合に、当該第3のコマンドが前記バッファに格納することを指示するデータを、前記テープ媒体上の前記ダミーの区切り情報と同じ位置に書き込まれるデータが記憶される当該バッファ内の位置に記憶する処理、及び、当該第3のコマンドが前記バッファに格納することを指示するデータと、前記ダミーの区切り情報が無効であることを示す情報とを、前記テープ媒体上の前記ダミーの区切り情報と異なる位置に書き込まれるデータが記憶される当該バッファ内の位置に記憶する処理の何れかを行うステップと、
    を含む、方法。
  6. 上位装置からのコマンドに応じてバッファ内のデータをテープ媒体に書き込む装置としてコンピュータを機能させるプログラムであって、
    前記コンピュータを、
    前記バッファ内の全てのデータを前記テープ媒体に書き込むことを指示する第1のコマンドと、区切り情報を当該テープ媒体に書き込むことを指示する第2のコマンドと、前記バッファにデータを格納することを指示する第3のコマンドとを前記上位装置から受け付ける手段と、
    前記第1のコマンドが受け付けられた場合に、前記バッファ内の全てのデータとダミーの区切り情報とを前記テープ媒体に書き込む手段と、
    前記ダミーの区切り情報が前記テープ媒体に書き込まれたことを示す情報を記録媒体に記録する手段と、
    前記第1のコマンドに続けて前記第2のコマンドが受け付けられた場合に、前記記録媒体に記録された前記情報を消去することにより、前記ダミーの区切り情報を、前記第2のコマンドが受け付けられた場合に書き込まれる通常の区切り情報とし、前記第1のコマンドに続けて前記第3のコマンドが受け付けられた場合に、当該第3のコマンドが前記バッファに格納することを指示するデータを、前記テープ媒体上の前記ダミーの区切り情報と同じ位置に書き込まれるデータが記憶される当該バッファ内の位置に記憶する処理、及び、当該第3のコマンドが前記バッファに格納することを指示するデータと、前記ダミーの区切り情報が無効であることを示す情報とを、前記テープ媒体上の前記ダミーの区切り情報と異なる位置に書き込まれるデータが記憶される当該バッファ内の位置に記憶する処理の何れかを行う手段と
    して機能させる、プログラム。
JP2008120505A 2008-05-02 2008-05-02 データをテープ媒体に書き込む装置及び方法 Expired - Fee Related JP5044822B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008120505A JP5044822B2 (ja) 2008-05-02 2008-05-02 データをテープ媒体に書き込む装置及び方法
US12/433,606 US8489785B2 (en) 2008-05-02 2009-04-30 Apparatus and method for writing data onto tape medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008120505A JP5044822B2 (ja) 2008-05-02 2008-05-02 データをテープ媒体に書き込む装置及び方法

Publications (2)

Publication Number Publication Date
JP2009271987A JP2009271987A (ja) 2009-11-19
JP5044822B2 true JP5044822B2 (ja) 2012-10-10

Family

ID=41379482

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008120505A Expired - Fee Related JP5044822B2 (ja) 2008-05-02 2008-05-02 データをテープ媒体に書き込む装置及び方法

Country Status (2)

Country Link
US (1) US8489785B2 (ja)
JP (1) JP5044822B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9153246B1 (en) 2014-09-25 2015-10-06 International Business Machines Corporation Magnetic tape rewind overwrite data protection

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0782708B2 (ja) * 1990-01-26 1995-09-06 ティアツク株式会社 データの追加書込み方法
US5247223A (en) * 1990-06-30 1993-09-21 Sony Corporation Quantum interference semiconductor device
JPH05241736A (ja) * 1992-02-28 1993-09-21 Fujitsu Ltd 磁気テープ記憶装置のファイル制御方法
US5553266A (en) * 1992-04-24 1996-09-03 Digital Equipment Corporation Update vs. invalidate policy for a snoopy bus protocol
JP2002070636A (ja) * 2000-08-31 2002-03-08 Suzuki Motor Corp 車載電子制御装置、データ書換システム、データ書換方法、及び記憶媒体
JP4783527B2 (ja) * 2001-01-31 2011-09-28 株式会社ガイア・システム・ソリューション データ処理システム、データ処理装置およびその制御方法
US6857044B2 (en) * 2001-10-15 2005-02-15 International Business Machines Corporation Data storage device for fast multiple file write operations
US6534841B1 (en) * 2001-12-14 2003-03-18 Hewlett-Packard Company Continuous antifuse material in memory structure
US6754737B2 (en) * 2001-12-24 2004-06-22 Hewlett-Packard Development Company, L.P. Method and apparatus to allow dynamic variation of ordering enforcement between transactions in a strongly ordered computer interconnect
US20030131175A1 (en) * 2001-12-24 2003-07-10 Heynemann Tom A. Method and apparatus for ensuring multi-threaded transaction ordering in a strongly ordered computer interconnect
US7729322B2 (en) * 2002-02-28 2010-06-01 Qualcomm Incorporated HDLC hardware accelerator
JP4004984B2 (ja) * 2003-03-28 2007-11-07 シャープ株式会社 電磁界発生素子、情報記録再生ヘッドおよび情報記録再生装置
US7107397B2 (en) * 2003-05-29 2006-09-12 International Business Machines Corporation Magnetic tape data storage system buffer management
US20080082736A1 (en) * 2004-03-11 2008-04-03 Chow David Q Managing bad blocks in various flash memory cells for electronic data flash card
US6950257B1 (en) * 2004-04-29 2005-09-27 International Business Machines Corporation Writing to magnetic tape with backhitchless backspacing and data set invalidation
WO2006011186A1 (ja) * 2004-07-23 2006-02-02 Spansion Llc コントローラ、データ記憶システム、データ書き換え方法及びコンピュータプログラムプロダクト
JP2006065999A (ja) * 2004-08-30 2006-03-09 Fujitsu Ltd 磁気テープ制御装置、方法及びプログラム
JP2006127574A (ja) * 2004-10-26 2006-05-18 Sony Corp コンテンツ利用装置、コンテンツ利用方法、配信サーバー装置、情報配信方法および記録媒体
US7433141B2 (en) * 2005-03-09 2008-10-07 Tandberg Data Corporation Data randomization for rewriting in recording/reproduction apparatus
JP2007095321A (ja) 2005-09-27 2007-04-12 Hitachi Ltd 画像表示装置
GB2431770B (en) * 2005-10-31 2011-09-21 Hewlett Packard Development Co Emulated tape-based storage media
US20070136517A1 (en) * 2005-11-29 2007-06-14 Quantum Corporation Use of directory revision number to validate directory
JP2008016117A (ja) * 2006-07-05 2008-01-24 Fujitsu Ltd テープへのデータ書込方法、テープへのデータ書込プログラム、及びテープ記憶装置
US20080059144A1 (en) * 2006-09-01 2008-03-06 Inphase Technologies Emulation of dissimilar removable medium storage device types assisted by information embedded in the logical format
US7793159B2 (en) * 2006-10-02 2010-09-07 International Business Machines Corporation Method, computer program product, and computer system for detecting a corruption in a data block stored by a tape recording apparatus
US8554964B2 (en) * 2009-03-20 2013-10-08 Oracle America, Inc. Method and apparatus for efficient synchronization request response

Also Published As

Publication number Publication date
US8489785B2 (en) 2013-07-16
US20090296267A1 (en) 2009-12-03
JP2009271987A (ja) 2009-11-19

Similar Documents

Publication Publication Date Title
JP3870215B1 (ja) テープ記録装置のデータ書込み読取り制御方法
JP4131517B2 (ja) テープ媒体にデータを書き込むための装置
JP4140913B2 (ja) 記録媒体の駆動を制御するための装置、方法、及びプログラム
US9053745B2 (en) Method for writing file on tape medium that can be read at high speed
US9330713B2 (en) Linear recording executing optimum writing upon receipt of series of commands including mixed read and write commands
JP5325128B2 (ja) データの書込みを制御する装置及び方法
US10353624B2 (en) Apparatus and method for writing data to recording medium
JPWO2010016365A1 (ja) テープ媒体にデータを書き込む装置及び方法
US8964327B2 (en) Tape storage device, data writing method, and program
JP5065203B2 (ja) データのフォーマットを変換する装置及び方法
JP2015088199A (ja) テープメディア上に複数のアクセスパターンを持つデータの書き込み、及び、読み出し
JP5753498B2 (ja) テープ記憶装置
JP5179596B2 (ja) テープ記録装置におけるデータの上書き制御方法、上書き制御プログラム、及びテープ記録装置
JP4452269B2 (ja) データ書込みパフォーマンスが改善されたテープ記録装置、及びそのデータ書込み制御方法
JP5044822B2 (ja) データをテープ媒体に書き込む装置及び方法
JP6433170B2 (ja) リードヘッドとライトヘッドとを活用して記録データの削除所要時間を削減する手法
JPWO2011001820A1 (ja) 複数のテープ記録装置を含むテープ記憶システム
US20070236817A1 (en) Magnetic-tape recording method, magnetic-tape recording apparatus, and computer system
JP3121387B2 (ja) 磁気テ−プ制御装置
JP3147575B2 (ja) データ書込み装置及びデータブロック書込み方法
JP2864751B2 (ja) ディスク制御装置の不揮発性メモリ管理方式
JPH11259993A (ja) 磁気テープ装置記録方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111017

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111025

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120221

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120508

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20120529

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

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

Free format text: PAYMENT UNTIL: 20150727

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