(57)【特許請求の範囲】
【請求項１】
テープ媒体にデータを書き込む際に参照される情報を設定する装置であって、
前記テープ媒体上で発生する不具合の影響を受ける当該テープ媒体上の領域のサイズを取得するサイズ取得部と、
前記テープ媒体に書き込まれたデータの一部が読み出せなくても当該データの全体を回復できる場合の当該一部の当該全体に対する比率を取得する比率取得部と、
上位装置から受信した受信データを前記テープ媒体に書き込むことを命令する同期命令に応じて当該テープ媒体に一度に書き込まれる書込みデータを構成するデータ断片の最低限の個数を、前記サイズ取得部により取得された前記サイズと、前記比率取得部により取得された前記比率とを用いて、当該書込みデータの一部が前記不具合により読み出せなくても当該書込みデータの全体を回復できるように決定する決定部と
を含む、装置。
【請求項２】
前記同期命令を受け付ける受付部と、
前記受付部が前記同期命令を受け付けた場合に、前記決定部により決定された前記個数の前記データ断片よりも前記受信データが小さければ、当該受信データを含み当該個数の当該データ断片からなる前記書込みデータを生成し、前記決定部により決定された前記個数の前記データ断片よりも前記受信データが大きければ、当該受信データを含むのに最低限必要な個数の当該データ断片からなる前記書込みデータを生成する生成部と、
前記生成部により生成された前記書込みデータを前記テープ媒体に書き込む書込み部と
を更に含む、請求項１の装置。
【請求項３】
前記書込み部により前記書込みデータが前記テープ媒体に書き込まれた後にバックヒッチが行われないように当該テープ媒体の走行を制御する走行制御部を更に含む、請求項２の装置。
【請求項４】
前記テープ媒体上のフォーマットの種別を認識する認識部を更に含み、
前記比率取得部は、前記認識部により認識された前記フォーマットの種別に応じた前記比率を取得する、請求項１乃至３の何れかの装置。
【請求項５】
上位装置から受信した受信データをテープ媒体に書き込むことを命令する同期命令に応じて当該受信データを当該テープ媒体に書き込む装置であって、
前記同期命令に応じて前記テープ媒体に一度に書き込まれる書込みデータの一部が当該テープ媒体上で発生する不具合により読み出せなくても当該書込みデータの全体を回復できるようにするための当該書込みデータを構成するデータ断片の最低限の個数を取得する個数取得部と、
前記同期命令を受け付ける受付部と、
前記受付部が前記同期命令を受け付けた場合に、前記個数取得部により取得された前記個数の前記データ断片よりも前記受信データが小さければ、当該受信データを含み当該個数の当該データ断片からなる前記書込みデータを生成し、前記個数取得部により取得された前記個数の前記データ断片よりも前記受信データが大きければ、当該受信データを含むのに最低限必要な個数の当該データ断片からなる前記書込みデータを生成する生成部と、
前記生成部により生成された前記書込みデータを前記テープ媒体に書き込む書込み部と
を含む、装置。
【請求項６】
前記不具合の影響を受ける前記テープ媒体上の領域のサイズを取得するサイズ取得部と、
前記テープ媒体に書き込まれたデータの一部が読み出せなくても当該データの全体を回復できる場合の当該一部の当該全体に対する比率を取得する比率取得部と、
前記サイズ取得部により取得された前記サイズと、前記比率取得部により取得された前記比率とを用いて、前記個数取得部により取得される前記個数を決定する決定部と
を更に含む、請求項５の装置。
【請求項７】
上位装置から受信した受信データをテープ媒体に書き込むことを命令する同期命令に応じて当該受信データを当該テープ媒体に書き込む装置であって、
前記テープ媒体上で発生する不具合の影響を受ける当該テープ媒体上の領域のサイズを取得するサイズ取得部と、
前記テープ媒体に書き込まれたデータの一部が読み出せなくても当該データの全体を回復できる場合の当該一部の当該全体に対する比率を取得する比率取得部と、
上位装置から受信した受信データを前記テープ媒体に書き込むことを命令する同期命令に応じて当該テープ媒体に一度に書き込まれる書込みデータを構成するデータ断片の最低限の個数を、前記サイズ取得部により取得された前記サイズと、前記比率取得部により取得された前記比率とを用いて、当該書込みデータの一部が前記不具合により読み出せなくても当該書込みデータの全体を回復できるように決定する決定部と、
前記同期命令を受け付ける受付部と、
前記受付部が前記同期命令を受け付けた場合に、前記決定部により決定された前記個数の前記データ断片よりも前記受信データが小さければ、当該受信データにパディングデータを付加することにより当該個数の当該データ断片からなる前記書込みデータを生成し、前記決定部により決定された前記個数の前記データ断片よりも前記受信データが大きければ、当該受信データを含むのに最低限必要な個数の当該データ断片からなる前記書込みデータを生成する生成部と、
前記生成部により生成された前記書込みデータを前記テープ媒体に書き込む書込み部と
を含む、装置。
【請求項８】
上位装置から受信した受信データをテープ媒体に書き込むことを命令する同期命令に応じて当該受信データを当該テープ媒体に書き込む方法であって、
前記同期命令に応じて前記テープ媒体に一度に書き込まれる書込みデータの一部が当該テープ媒体上で発生する不具合により読み出せなくても当該書込みデータの全体を回復できるようにするための当該書込みデータを構成するデータ断片の最低限の個数を取得するステップと、
前記同期命令を受け付けるステップと、
前記同期命令を受け付けた場合に、取得された前記個数の前記データ断片よりも前記受信データが小さければ、当該受信データを含み当該個数の当該データ断片からなる前記書込みデータを生成し、取得された前記個数の前記データ断片よりも前記受信データが大きければ、当該受信データを含むのに最低限必要な個数の当該データ断片からなる前記書込みデータを生成するステップと、
生成された前記書込みデータを前記テープ媒体に書き込むステップと
を含む、方法。
【請求項９】
テープ媒体にデータを書き込む際に参照される情報を設定する装置としてコンピュータを機能させるプログラムであって、
前記コンピュータを、
前記テープ媒体上で発生する不具合の影響を受ける当該テープ媒体上の領域のサイズを取得するサイズ取得部と、
前記テープ媒体に書き込まれたデータの一部が読み出せなくても当該データの全体を回復できる場合の当該一部の当該全体に対する比率を取得する比率取得部と、
上位装置から受信した受信データを前記テープ媒体に一度に書き込むことを命令する同期命令に応じて当該テープ媒体に書き込まれる書込みデータを構成するデータ断片の最低限の個数を、前記サイズ取得部により取得された前記サイズと、前記比率取得部により取得された前記比率とを用いて、当該書込みデータの一部が前記不具合により読み出せなくても当該書込みデータの全体を回復できるように決定する決定部と
して機能させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テープ媒体にデータを書き込む装置及び方法に関する。特に、本発明は、上位装置から受信した受信データをテープ媒体に書き込むことを命令する同期命令に応じて受信データをテープ媒体に書き込む装置及び方法に関する。
【背景技術】
【０００２】
磁気テープ等のテープ媒体にデータを書き込むテープドライブでは、データを一旦バッファに蓄積しておき、所定のタイミングでバッファからテープ媒体へデータを書き込むのが一般的である。このようなバッファからテープ媒体への書込みを、「書込みの同期」又は「バッファフラッシュ」という（以下では、単に「同期」という）。
ところで、テープ媒体を停止させずに同期を行った場合、先行する同期にて書き込まれたデータと、次の同期にて書き込まれたデータとの間に、長いギャップが生じる。その結果、テープ媒体の記録領域が無駄になってしまう。そのため、先行する同期にて書き込まれたデータの後にそれほど長いギャップを伴わずに次の同期にてデータが書き込まれるよう、バックヒッチを行う必要がある。バックヒッチとは、テープ媒体の走行速度を減速して一旦停止し、書き込むべき位置まで戻る、という動作のことである。従って、このバックヒッチのために、同期に多くの時間が費やされるという状況が生じていた。
【０００３】
そこで、かかる状況を回避するための技術として、ＲＡＢＦ（Recursive Accumulating Backhitchless Flush）が提案されている（例えば、特許文献１、２参照）。
この特許文献１、２からも分かるように、ＲＡＢＦは次のような手法と捉えることができる。
即ち、まず、テープドライブが、同期要求を受けた際に、テープにまだ書かれていないバッファ内のデータを、テープ媒体の走行を継続させたまま、テープ媒体上に予約されている一時記録領域（ＡＢＦラップ）に書き出す。尚、この書出しは、先行する同期にて書き込まれたデータと次の同期にて書き込まれたデータとの間のギャップが問題とならないため、バックヒッチを行わないバッファフラッシュ（Backhitchless Flush）である。一方で、テープドライブは、データをバッファに蓄積し（Accumulate）、バッファ又は一時記録領域に空きがなくなった際に通常の記録領域（通常ラップ）に書き戻す（リライトする）動作を反復的に（Recursive）行う。
このように、ＲＡＢＦでは、同期を行う際に、次の同期に備えてバックヒッチを行うことが必要とならないため、同期に要する時間の短縮が図れる。特に、データ量に対する同期要求の頻度が高い場合において、大幅なパフォーマンス向上を実現するものである。
【０００４】
一方、エンタープライズ向けテープドライブ（ＩＢＭ３５９２等）やＬＴＯ規格に則ったテープドライブでは、ホストから送られてきた可変長のデータを再編成し、データセットという固定長の単位でテープ媒体にデータを書き込む。その際、通常、複数（例えば１６本）のトラックに同時にデータを書き込む。つまり、各トラックには、データセットの内容が例えば１／１６ずつ書き込まれる。また、データセットは、ホストから送られてきたデータ以外にエラー訂正符号等も含む。エラー訂正符号としては、書込み時や読込み時におけるバイト単位のランダムエラーを訂正可能なＣ１符号と、テープドライブの書込み端子やテープの傷等によるバーストエラーを訂正するＣ２符号との積符号が採用されている。更に、データセット内ではデータをインターリーブしている。つまり、データの配置をばらつかせている。こうすることにより、データセット内の何れかの場所の２割程度のデータが欠損しても、残されたデータから全てのデータを回復できるようにしている。
ところが、近年、記録密度の向上により単位データ当たりの記録長が短くなり、テープ媒体上の傷やゴミの影響によりデータセットの一部のデータを読み出せない事態が生じ易くなっている。そこで、読み出せないデータをエラー訂正符号を用いても回復できないような事態が発生することを防止するための対策の一つとして、データセットの容量が、世代が進むに従って徐々に大きくなっていく傾向にある。
【０００５】
尚、公報記載の技術として、エラー訂正手段から外部バッファに訂正データを戻す際に、エラー訂正された一部のサブユニットのみを転送するものもある（例えば、特許文献３参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許第６８５６４７９号明細書
【特許文献２】米国特許第６８６５０４３号明細書
【特許文献３】国際公開第２００６／０７０６６８号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、このようにデータセットの容量が大きくなってくると、トランザクションサイズ、つまり、ある同期から次の同期までの間にホストから書き込まれるデータ量がデータセットのサイズに比べて十分に小さい場合、データセットを書き込む時間がＲＡＢＦのボトルネックとなる。具体的には、ＲＡＢＦでデータセットを書き込むのに要する時間の半分以上は、純粋にデータセットに含まれるビット数に比例することが知られている。例えば、トランザクションサイズが４ＫＢの場合、残りの部分がパディングされた１つのデータセットがテープ媒体に書き込まれる。即ち、データセットのサイズが４０３ＫＢの世代であれば、４０３ＫＢのデータを書き込めば十分であったが、データセットのサイズが１．６ＭＢの世代になると、１．６ＭＢのデータがテープ媒体に書き込まれることになる。従って、データセットのサイズが１．６ＭＢの世代において、データセットのサイズが４０３ＫＢの世代におけるパフォーマンスを実現できないという問題が生じる。
そして、このような問題は、ＲＡＢＦだけでなく、通常の書込みにおいても生じる可能性がある。
尚、特許文献３の技術は、このような問題を解決するための有効な手段を提供するものではない。
【０００８】
本発明の目的は、エラーに対する耐性を確保しつつ、テープ媒体への書込みのパフォーマンスを向上することにある。
【課題を解決するための手段】
【０００９】
かかる目的のもと、本発明は、テープ媒体にデータを書き込む際に参照される情報を設定する装置であって、テープ媒体上で発生する不具合の影響を受けるテープ媒体上の領域のサイズを取得するサイズ取得部と、テープ媒体に書き込まれたデータの一部が読み出せなくてもデータの全体を回復できる場合の一部の全体に対する比率を取得する比率取得部と、上位装置から受信した受信データをテープ媒体に書き込むことを命令する同期命令に応じてテープ媒体に書き込まれる書込みデータを構成するデータ断片の最低限の個数を、サイズ取得部により取得されたサイズと、比率取得部により取得された比率とを用いて、書込みデータの一部が不具合により読み出せなくても書込みデータの全体を回復できるように決定する決定部とを含む、装置を提供する。
【００１０】
ここで、この装置は、同期命令を受け付ける受付部と、受付部が同期命令を受け付けた場合に、決定部により決定された個数のデータ断片よりも受信データが小さければ、受信データを含み個数のデータ断片からなる書込みデータを生成し、決定部により決定された個数のデータ断片よりも受信データが大きければ、受信データを含むのに最低限必要な個数のデータ断片からなる書込みデータを生成する生成部と、生成部により生成された書込みデータをテープ媒体に書き込む書込み部とを更に含む、ものであってよい。
また、この装置は、書込み部により書込みデータがテープ媒体に書き込まれた後にバックヒッチが行われないようにテープ媒体の走行を制御する走行制御部を更に含む、ものであってよい。
更に、この装置は、テープ媒体上のフォーマットの種別を認識する認識部を更に含み、比率取得部は、認識部により認識されたフォーマットの種別に応じた比率を取得する、ものであってよい。
【００１１】
また、本発明は、上位装置から受信した受信データをテープ媒体に書き込むことを命令する同期命令に応じて受信データをテープ媒体に書き込む装置であって、同期命令に応じてテープ媒体に書き込まれる書込みデータの一部がテープ媒体上で発生する不具合により読み出せなくても書込みデータの全体を回復できるようにするための書込みデータを構成するデータ断片の最低限の個数を取得する個数取得部と、同期命令を受け付ける受付部と、受付部が同期命令を受け付けた場合に、個数取得部により取得された個数のデータ断片よりも受信データが小さければ、受信データを含み個数のデータ断片からなる書込みデータを生成し、個数取得部により取得された個数のデータ断片よりも受信データが大きければ、受信データを含むのに最低限必要な個数のデータ断片からなる書込みデータを生成する生成部と、生成部により生成された書込みデータをテープ媒体に書き込む書込み部とを含む、装置も提供する。
【００１２】
ここで、この装置は、不具合の影響を受けるテープ媒体上の領域のサイズを取得するサイズ取得部と、テープ媒体に書き込まれたデータの一部が読み出せなくてもデータの全体を回復できる場合の一部の全体に対する比率を取得する比率取得部と、サイズ取得部により取得されたサイズと、比率取得部により取得された比率とを用いて、個数取得部により取得される個数を決定する決定部とを更に含む、ものであってよい。
【００１３】
また、本発明は、上位装置から受信した受信データをテープ媒体に書き込むことを命令する同期命令に応じて受信データをテープ媒体に書き込む装置であって、テープ媒体上で発生する不具合の影響を受けるテープ媒体上の領域のサイズを取得するサイズ取得部と、テープ媒体に書き込まれたデータの一部が読み出せなくてもデータの全体を回復できる場合の一部の全体に対する比率を取得する比率取得部と、上位装置から受信した受信データをテープ媒体に書き込むことを命令する同期命令に応じてテープ媒体に書き込まれる書込みデータを構成するデータ断片の最低限の個数を、サイズ取得部により取得されたサイズと、比率取得部により取得された比率とを用いて、書込みデータの一部が不具合により読み出せなくても書込みデータの全体を回復できるように決定する決定部と、同期命令を受け付ける受付部と、受付部が同期命令を受け付けた場合に、決定部により決定された個数のデータ断片よりも受信データが小さければ、受信データにパディングデータを付加することにより個数のデータ断片からなる書込みデータを生成し、決定部により決定された個数のデータ断片よりも受信データが大きければ、受信データを含むのに最低限必要な個数のデータ断片からなる書込みデータを生成する生成部と、生成部により生成された書込みデータをテープ媒体に書き込む書込み部とを含む、装置も提供する。
【００１４】
更に、本発明は、上位装置から受信した受信データをテープ媒体に書き込むことを命令する同期命令に応じて受信データをテープ媒体に書き込む方法であって、同期命令に応じてテープ媒体に書き込まれる書込みデータの一部がテープ媒体上で発生する不具合により読み出せなくても書込みデータの全体を回復できるようにするための書込みデータを構成するデータ断片の最低限の個数を取得するステップと、同期命令を受け付けるステップと、同期命令を受け付けた場合に、取得された個数のデータ断片よりも受信データが小さければ、受信データを含み個数のデータ断片からなる書込みデータを生成し、取得された個数のデータ断片よりも受信データが大きければ、受信データを含むのに最低限必要な個数のデータ断片からなる書込みデータを生成するステップと、生成された書込みデータをテープ媒体に書き込むステップとを含む、方法も提供する。
【００１５】
更にまた、本発明は、テープ媒体にデータを書き込む際に参照される情報を設定する装置としてコンピュータを機能させるプログラムであって、コンピュータを、テープ媒体上で発生する不具合の影響を受けるテープ媒体上の領域のサイズを取得するサイズ取得部と、テープ媒体に書き込まれたデータの一部が読み出せなくてもデータの全体を回復できる場合の一部の全体に対する比率を取得する比率取得部と、上位装置から受信した受信データをテープ媒体に書き込むことを命令する同期命令に応じてテープ媒体に書き込まれる書込みデータを構成するデータ断片の最低限の個数を、サイズ取得部により取得されたサイズと、比率取得部により取得された比率とを用いて、書込みデータの一部が不具合により読み出せなくても書込みデータの全体を回復できるように決定する決定部として機能させる、プログラムも提供する。
【発明の効果】
【００１６】
本発明によれば、エラーに対する耐性を確保しつつ、テープ媒体への書込みのパフォーマンスを向上することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施の形態が適用されるテープドライブの構成を示したブロック図である。
【図２】本発明の実施の形態と他の技術との効果の違いを数値で示した図である。
【図３】本発明の実施の形態と他の技術との効果の違いを模式的に示した図である。
【図４】本発明の実施の形態と他の技術との効果の違いを模式的に示した図である。
【図５】本発明の実施の形態におけるコントローラの機能構成例を示したブロック図である。
【図６】本発明の実施の形態のコントローラにおけるサブデータセットの最小数を決定する際の動作例を示したフローチャートである。
【図７】本発明の実施の形態のコントローラにおけるサブデータセットを書き込む際の動作例を示したフローチャートである。
【発明を実施するための形態】
【００１８】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
図１は、本実施の形態が適用されるテープドライブ１０の構成例を示した図である。このテープドライブ１０は、ホストインターフェイス（以下、「ホストＩ／Ｆ」という）１１と、バッファ１２と、チャネル１３と、ヘッド１４と、モータ１５とを含む。また、コントローラ１６と、ヘッド位置制御システム１７と、モータドライバ１８とを含む。更に、テープドライブ１０には、テープカートリッジ２０が挿入されることにより装填可能となっているので、ここでは、テープカートリッジ２０も図示している。このテープカートリッジ２０は、リール２１、２２に巻かれたテープ２３を含む。テープ２３は、リール２１、２２の回転に伴い、リール２１からリール２２の方向へ、又は、リール２２からリール２１の方向へ、長手方向に移動する。尚、テープ２３としては、磁気テープが例示されるが、磁気テープ以外のテープ媒体でもよい。
【００１９】
また、テープカートリッジ２０は、カートリッジメモリ２４も含む。このカートリッジメモリ２４は、例えば、テープ２３上にどのようにデータが書かれたかの情報を記録する。そして、例えばＲＦインターフェイスを用いて非接触でテープ２３に書かれたデータのインデックスやテープ２３の使用状況等を調べることにより、データへの高速アクセスを可能としている。尚、図では、このＲＦインターフェイスのようなカートリッジメモリ２４へのアクセスを行うためのインターフェイスを、カートリッジメモリインターフェイス（以下、「ＣＭＩ／Ｆ」という）１９として示している。
【００２０】
ここで、ホストＩ／Ｆ１１は、上位装置の一例であるホスト３０との通信を行う。例えば、ホスト３０から、テープ２３へのデータの書込みを指示するコマンド、テープ２３を目的の位置に移動させるコマンド、テープ２３からのデータの読出しを指示するコマンドを受け取る。尚、このホストＩ／Ｆ１１で用いる通信規格としては、ＳＣＳＩが例示される。ＳＣＳＩの場合、１つ目のコマンドは、Ｗｒｉｔｅコマンドに相当し、２つ目のコマンドは、ＬｏｃａｔｅコマンドやＳｐａｃｅコマンドに相当し、３つ目のコマンドは、Ｒｅａｄコマンドに相当する。また、ホストＩ／Ｆ１１は、ホスト３０に対し、これらのコマンドに応じた処理が成功したのか失敗したのかの応答を返す。
【００２１】
バッファ１２は、テープ２３に書き込むべきデータやテープ２３から読み出されたデータを蓄積するメモリである。例えば、ＤＲＡＭ（Dynamic Random Access Memory）によって構成される。また、バッファ１２は、複数のバッファセグメントからなり、各バッファセグメントが、テープ２３に対する読み書きの単位であるデータセットを格納している。
チャネル１３は、テープ２３に書き込むべきデータをヘッド１４に送ったり、テープ２３から読み出されたデータをヘッド１４から受け取ったりするために用いられる通信経路である。
ヘッド１４は、テープ２３が長手方向に移動するとき、テープ２３に対して情報を書き込んだり、テープ２３から情報を読み出したりする。
モータ１５は、リール２１、２２を回転させる。尚、図では、１つの矩形でモータ１５を表しているが、モータ１５としては、リール２１、２２の各々に１つずつ、合計２個設けるのが好ましい。
【００２２】
一方、コントローラ１６は、テープドライブ１０の全体を制御する。例えば、ホストＩ／Ｆ１１で受け付けたコマンドに従って、データのテープ２３への書込みやテープ２３からの読出しを制御する。また、ヘッド位置制御システム１７やモータドライバ１８の制御も行う。
ヘッド位置制御システム１７は、所望のラップを追跡するシステムである。ここで、ラップとは、テープ２３上の複数のトラックのグループである。ラップを切り換える必要が生じると、ヘッド１４を電気的に切り換える必要も生じるので、このような切り換えの制御を、このヘッド位置制御システム１７で行う。
モータドライバ１８は、モータ１５を駆動する。尚、上述したように、モータ１５を２個使用する場合であれば、モータドライバ１８も２個設けられる。
ＣＭＩ／Ｆ１９は、例えば、ＲＦリーダライタにより実現され、カートリッジメモリ２４への情報の書込みや、カートリッジメモリ２４からの情報の読出しを行う。
【００２３】
本実施の形態では、かかる構成を有するテープドライブ１０において、更新された情報を含むデータだけでなく、更新された情報を含まないデータの塊（例えばサブデータセット）も必要に応じて一緒に書き込むことにより、バーストエラーに対する耐性を確保する。
尚、如何なる場面におけるテープ媒体へのデータの書込みに対しても本実施の形態は適用可能であるが、以下では、最も好適な例として、ＲＡＢＦにおけるテープ媒体へのデータの書込みに本実施の形態を適用した場合について説明する。
【００２４】
まず、本実施の形態のアルゴリズムについて述べる。
ＲＡＢＦでは、トランザクションサイズが小さい場合に、データセットの単位でデータをテープ媒体に書き込むとオーバーヘッドが大きくなる。一方、更新されたデータをサブデータセットの単位でテープ媒体に書き込むと、サブデータセットを小さく設定すればバーストエラーに対する耐性を確保できず、サブデータセットを大きく設定すればデータセットの単位でデータを書き込む場合と同様、オーバーヘッドが無視できなくなる。
そこで、本実施の形態では、サブデータセットを小さめに設定し、一度に（１回の同期時に）書き込むサブデータセットの最小数をトランザクションサイズによらず一定とする。
【００２５】
具体的には、一度に書き込むサブデータセットの最小数ｍ［ｓｄｓ］を、次の式を満たす最小の整数とする。
ｍ＞ｍｄｌ＊ｌｄ＊ｎｏｔ／ｃｓｄｓ／ｒｒ＊ｆｓ
但し、各変数は以下のように定義されているとする。
ｍｄｌ［ｍ］：maximum defect length（回復することが期待されるテープ媒体上の傷の大きさの最大値）
ｌｄ［ｂｙｔｅ／ｍ］：linear density（トラック当たりの記録線密度）
ｎｏｔ：number of tracks（あるデータセットの書込みに用いられるトラックの本数）
ｃｓｄｓ［ｂｙｔｅ／ｓｄｓ］：capacity of sub dataset（サブデータセットの容量）
ｒｒ：recoverable ratio（Ｃ２符号によって回復できる部分の全体に対する最大限の比率である最大回復率）
ｆｓ：factor of safety（安全係数）
【００２６】
次に、第３世代のエンタープライズ向けテープドライブ（以下、「エンタープライズ３」という）のフォーマットに本実施の形態を適用した場合の効果を、具体的な数値を用いて説明する。
まず、テープ媒体上に発生する傷の大きさは不定であるが、回復することが期待される傷の大きさの最大値は、エンタープライズ３の規約における追記時の制限事項等を考慮すると約３［ｍｍ］と考えるのが自然である。また、安全係数は２とする。
そして、エンタープライズ３のフォーマットに従い、トラック当たりの記録線密度を７９５［ｂｙｔｅ／ｍｍ］、トラックの本数を１６［本］とする。また、エンタープライズ３のフォーマットでは、データセットが１６１６９４０［ｂｙｔｅ］であるが、１つのデータセットが６４個のサブデータセットから構成されるものとし、サブデータセットの容量を２５２７２［ｂｙｔｅ］とする。更に、エンタープライズ３のフォーマットに従い、６４個のサブデータセットのうち１０個のサブデータセットが失われてもＣ２符号によって全体を回復できるものとする。
【００２７】
すると、ＲＡＢＦにおいて書き込むべきサブデータセットの最小数ｍは、以下の式から２０となる。
ｍ＞３＊７９５＊１６／２５２７２／（２０／１２８）＊２＝１９．３
即ち、２０個のサブデータセットを書き込めば、３ｍｍまでの傷に対する耐性を確保することができると言える。
【００２８】
ここで、本実施の形態の効果と他の技術の効果とを数値によって比較する。
図２は、本実施の形態と他の技術の効果の違いを数値で示した図である。
尚、図中、従来例は、「背景技術」の項で述べた、ＲＡＢＦ中にデータセット単位で書き込む技術を指す。また、比較例は、ＲＡＢＦ中に更新されたサブデータセットのみを書き込む技術を指す。但し、エラーに対する耐性を確保するため、２０個のサブデータセットを新サブデータセットと定義し、新サブデータセット単位でデータを書き込むこととしている。そして、発明例が、本実施の形態に対応する。
【００２９】
また、図では、トランザクションサイズごとに、従来例で同期を行う場合の所要時間を「１００」とし、比較例及び発明例で同期を行う場合の所要時間としては、従来例の所要時間に対する相対所要時間を示している。
そして、現在、ＲＡＢＦにおいて同期時に１つのデータセットを書き込む場合、同期処理の所要時間における実際にテープ媒体にデータセットを書き込む処理の所要時間の割合は約５０％であることが知られている。残りの時間は、空き領域のパディングやエラー訂正符号の付加等に費やされている。従って、ここでは、従来例における所要時間「１００」を、実際にテープ媒体にデータセットを書き込む処理以外の処理の所要時間である第１項の「５０」と、実際にテープ媒体にデータセットを書き込む処理の所要時間である第２項の「５０」とに分け、第２項の「５０」がどの程度短縮されるかを考察している。
【００３０】
この図から、本実施の形態では、トランザクションサイズがデータセットの容量に比べて十分に小さい場合（トランザクションサイズが４０９６バイトの場合）、データセット単位でデータを書き込む従来例と比較して約６５％の時間で同期処理を完了できることが分かる。
また、本実施の形態と比較例とを比べると、トランザクションサイズが４０９６バイトの場合は差が出ないものの、トランザクションサイズが１０１０８８２バイトの場合は、本実施の形態の方が、約１５％所要時間を短縮できることが分かる。
つまり、本実施の形態では、テープ媒体に書き込むデータの単位として小容量のサブデータセットを採用しつつも、更新された情報を持たないサブデータセットも必要に応じて一緒に書き込むようにしている。これによって、トランザクションサイズによらず一度に書き込むべき最低限のデータ量を維持しており、このことはＲＡＢＦのパフォーマンスの向上に効果的であると言える。
【００３１】
尚、図２の比較例の場合、実際には６４の約数の中で２０以上の最小の数である３２を採用し、３２個のサブデータセットを新サブデータセットと定義するのが自然であるが、新サブデータセットをどのように定義したとしても本実施の形態の優位性は揺らがない。
【００３２】
また、本実施の形態の効果と他の技術の効果とを、テープ媒体に書き込まれるデータを模式的に示した図によって比較する。
図３は、トランザクションサイズが４０９６バイトである場合において同期時にテープ媒体に書き込まれるデータについて示したものである。左から順に、１回目の同期、２回目の同期、３回目の同期で書き込まれたデータを示している。また、図中、「ｄｓ」はデータセットを、「ｓｄｓ」はサブデータセットを示している。
【００３３】
（ａ）は、従来例において同期時にテープ媒体に書き込まれたデータについて示したものである。従来例では、ホストから送られたデータ以外の部分を、斜線ハッチングで示したようにパディングすることでデータセットを構成し、このデータセットを単位としてデータを書き込んでいる。図では、あるデータセットにサブデータセットＡ，Ｂ，Ｃが溜まっており、データセット単位で書き込んでいる。従って、２回目の同期時には更新された情報を含むサブデータセットＢだけでなく既に書き込んだサブデータセットＡも一緒にテープ媒体に書き込むようになっており、３回目の同期時には更新された情報を含むサブデータセットＣだけでなく既に書き込んだサブデータセットＡ，Ｂも一緒にテープ媒体に書き込むようになっている。
【００３４】
（ｂ）は、比較例において同期時にテープ媒体に書き込まれたデータについて示したものである。比較例では、ホストから送られたデータ以外の部分を、斜線ハッチングで示したようにパディングすることで新サブデータセット（サブデータセット２０個分）を構成し、この新サブデータセットを単位としてデータを書き込んでいる。図では、データセットを構成するサブデータセットのうち１番目のサブデータセットから２０番目のサブデータセットまでを毎回書き込んでいる。従って、２回目の同期時には更新された情報を含むサブデータセットＢだけでなく既に書き込んだサブデータセットＡも一緒にテープ媒体に書き込むようになっており、３回目の同期時には更新された情報を含むサブデータセットＣだけでなく既に書き込んだサブデータセットＡ，Ｂも一緒にテープ媒体に書き込むようになっている。尚、比較例としては、サブデータセット２０個分を新サブデータセットと定義せずに、更新されたサブデータセットのみをテープ媒体に書き込む例も考えられるが、この例ではエラーに対する耐性が極めて低くなるので、図示していない。
【００３５】
（ｃ）は、発明例において同期時にテープ媒体に書き込まれたデータについて示したものである。発明例では、ホストから送られたデータ以外の部分を、斜線ハッチングで示したようにパディングすることで最低限書き込むべき個数のサブデータセット（上記の計算によればサブデータセット２０個分）を構成し、この最低限書き込むべき個数のサブデータセットを単位としてデータを書き込んでいる。図では、データセットを構成するサブデータセットのうち１番目のサブデータセットから２０番目のサブデータセットまでを毎回書き込んでいる。従って、２回目の同期時には更新された情報を含むサブデータセットＢだけでなく既に書き込んだサブデータセットＡも一緒にテープ媒体に書き込むようになっており、３回目の同期時には更新された情報を含むサブデータセットＣだけでなく既に書き込んだサブデータセットＡ，Ｂも一緒にテープ媒体に書き込むようになっている。
【００３６】
図４は、トランザクションサイズが５０５４４２バイトである場合において同期時にテープ媒体に書き込まれるデータについて示したものである。左から順に、１回目の同期、２回目の同期、３回目の同期で書き込まれたデータを示している。また、図中、「ｄｓ」はデータセットを、「ｓｄｓ」はサブデータセットを示している。
【００３７】
（ａ）は、従来例において同期時にテープ媒体に書き込まれたデータについて示したものである。従来例では、ホストから送られたデータ以外の部分を、斜線ハッチングで示したようにパディングすることでデータセットを構成し、このデータセットを単位としてデータを書き込んでいる。図では、あるデータセットにサブデータセットＡ，Ｂ，Ｃが溜まっており、データセット単位で書き込んでいる。従って、２回目の同期時には更新された情報を含むサブデータセットＢだけでなく既に書き込んだサブデータセットＡも一緒にテープ媒体に書き込むようになっており、３回目の同期時には更新された情報を含むサブデータセットＣだけでなく既に書き込んだサブデータセットＡ，Ｂも一緒にテープ媒体に書き込むようになっている。
【００３８】
（ｂ）は、比較例において同期時にテープ媒体に書き込まれたデータについて示したものである。比較例では、ホストから送られたデータ以外の部分を、斜線ハッチングで示したようにパディングすることで新サブデータセット２個分（サブデータセット４０個分）を構成し、この新サブデータセット２個分を単位としてデータを書き込んでいる。図では、１回目の同期時に、データセットを構成するサブデータセットのうち１番目のサブデータセットから４０番目のサブデータセットまでを書き込み、２回目の同期時に、データセットを構成するサブデータセットのうち２２番目のサブデータセットから６１番目のサブデータセットまでを書き込む、といった書き込みを行っている。従って、同期時には更新された情報を含むサブデータセットのみをテープ媒体に書き込むようになっている。
【００３９】
（ｃ）は、発明例において同期時にテープ媒体に書き込まれたデータについて示したものである。発明例では、ホストから送られた５０５４４２バイトを格納するのに最低限必要な個数のサブデータセット（サブデータセット２１個分）を構成し、この最低限必要な個数のサブデータセットを単位としてデータを書き込んでいる。図では、１回目の同期時に、データセットを構成するサブデータセットのうち１番目のサブデータセットから２１番目のサブデータセットまでを書き込み、２回目の同期時に、データセットを構成するサブデータセットのうち２２番目のサブデータセットから４２番目のサブデータセットまでを書き込む、といった書き込みを行っている。従って、同期時には更新された情報を含むサブデータセットのみをテープ媒体に書き込むようになっている。
【００４０】
次に、このような動作を実現するためのコントローラ１６の機能構成について説明する。
図５は、コントローラ１６の機能構成例を示したブロック図である。
図示するように、コントローラ１６は、コマンド処理部４１と、バッファ管理部４２と、チャネル入出力部４３と、カートリッジメモリ入出力部（以下、「ＣＭ入出力部」という）４４と、テープ変数取得部４５と、設定変数取得部４６と、最小数算出部４７と、動作信号出力部４８とを備える。
【００４１】
このうち、コマンド処理部４１は、ホストＩ／Ｆ１１からコマンドを受け取る。ここで、コマンドとしては、例えば、バッファ１２にデータを格納することを指示するＷｒｉｔｅコマンド、バッファ１２に格納されたデータをテープ２３に書き込む同期コマンド（ＷｒｉｔｅＦＭコマンド等）がある。本実施の形態では、同期命令の一例として、同期コマンドを用いており、同期命令を受け付ける受付部の一例として、コマンド処理部４１を設けている。
バッファ管理部４２は、コマンド処理部４１がＷｒｉｔｅコマンドを受け取った場合は、データをバッファ１２内に用意する。また、コマンド処理部４１が同期コマンドを受け取った場合は、データをバッファ１２から読み出してチャネル入出力部４３に出力する。本実施の形態では、同期命令に応じてテープ媒体に書き込まれる書込みデータを生成する生成部の一例として、バッファ管理部４２を設けている。
チャネル入出力部４３は、バッファ管理部４２がバッファ１２から読み出したデータをチャネル１３に出力したり、チャネル１３から受け取ったデータをバッファ１２に格納したりする。本実施の形態では、書込みデータを書き込む書込み部の一例として、チャネル入出力部４３を設けている。
【００４２】
ＣＭ入出力部４４は、カートリッジメモリ２４に記憶された情報を取得する。ここで、カートリッジメモリ２４に記憶された情報としては、テープ２３のフォーマットに関する情報がある。また、ＣＭ入出力部４４は、カートリッジメモリ２４に対して記憶させる情報を送出する。本実施の形態では、テープ媒体上のフォーマットの種別を認識する認識部の一例として、ＣＭ入出力部４４を設けている。
【００４３】
テープ変数取得部４５は、ＣＭ入出力部４４が取得したテープ２３のフォーマットに関する情報に基づいて、テープ２３に関する変数（以下、「テープ変数」という）を取得する。ここで、テープ変数としては、記録線密度ｌｄ［ｂｙｔｅ／ｍ］、トラック本数ｎｏｔ、サブデータセットの容量ｃｓｄｓ［ｂｙｔｅ］、最大回復率ｒｒがある。本実施の形態では、データの一部が読み出せなくてもデータの全体を回復できる場合の一部の全体に対する比率の一例として、最大回復率ｒｒを用いており、比率を取得する比率取得部の一例として、テープ変数取得部４５を設けている。
設定変数取得部４６は、テープドライブ１０に設定された変数（以下、「設定変数」という）を取得する。ここで、設定変数としては、傷の最大値ｍｄｌ［ｍ］、安全率ｆｓがある。本実施の形態では、不具合の一例として、テープ２３上の傷を用いており、不具合の影響を受けるテープ媒体上の領域のサイズの一例として、傷の最大値ｍｄｌ［ｍ］を用いており、サイズを取得するサイズ取得部の一例として、設定変数取得部４６を設けている。
【００４４】
最小数算出部４７は、テープ変数取得部４５が取得したテープ変数と、設定変数取得部４６が取得した設定変数とを用いて、同期コマンドに応じて書き込むべきサブデータセットの最小数ｍを算出する。本実施の形態では、書込みデータを構成するデータ断片の一例として、サブデータセットを用いており、データ断片の最低限の個数の一例としてサブデータセットの最小数ｍを用いており、個数を決定する決定部の一例として、最小数算出部４７を設けている。
動作信号出力部４８は、ヘッド位置制御システム１７に対してラップを切り替えるように指示する信号を出力し、モータドライバ１８に対してテープ２３を走行させるように指示する信号を出力する。本実施の形態では、テープ媒体の走行を制御する走行制御部の一例として、動作信号出力部４８を設けている。
【００４５】
次に、コントローラ１６の動作について説明する。
図６は、コントローラ１６においてサブデータセットの最小数ｍを決定する際の動作例を示したフローチャートである。この動作例は、新たなテープカートリッジ２０が装填されたときや、テープカートリッジ２０が装填された状態でそのテープ２３のフォーマットが変換されたときに開始するものとする。
【００４６】
コントローラ１６では、まず、ＣＭ入出力部４４がテープ２３のフォーマットを示す情報を取得する（ステップ４０１）。テープドライブ１０がエンタープライズ向けテープドライブである場合やＬＴＯ規格に則ったテープドライブである場合は、これらの世代によってフォーマットが特定されるので、世代を特定する情報を取得すればよい。
このように世代を特定する情報が取得されると、テープ変数取得部４５は、テープ変数として、記録線密度ｌｄ［ｂｙｔｅ／ｍ］、トラック本数ｎｏｔ、サブデータセットの容量ｃｓｄｓ［ｂｙｔｅ］、最大回復率ｒｒを取得する（ステップ４０２）。この場合、例えば世代とこれらの変数の値との対応情報を図示しないメモリに予め記憶しておき、ステップ４０１で認識した世代に対応する変数の値をこの対応情報を参照して取得するとよい。
【００４７】
一方、設定変数取得部４６は、設定変数として、傷の最大値ｍｄｌ［ｍ］、安全率ｆｓを取得する（ステップ４０３）。ここで、設定変数は、テープドライブ１０の出荷前に既に設定されているものであってもよいし、テープドライブ１０の出荷後にユーザが設定したものであってもよい。
【００４８】
これにより、最小数算出部４７は、次の式を満たす最小の整数を、サブデータセットの最小数ｍとして求める（ステップ４０４）。
ｍ＞ｍｄｌ＊ｌｄ＊ｎｏｔ／ｃｓｄｓ／ｒｒ＊ｆｓ
そして、求めた最小数ｍを図示しないメモリに記憶する（ステップ４０５）。
【００４９】
図７は、コントローラ１６においてサブデータセットをテープ２３に書き込む際の動作例を示したフローチャートである。この動作例は、バッファ１２にデータが蓄積された状態でコマンド処理部４１がホスト３０から同期コマンドを受信したときに開始するものとする。尚、ここでは、説明を簡単にするため、バッファ１２には前回の同期後に更新された更新データのみが蓄積されているものとする。
【００５０】
コントローラ１６では、まず、バッファ管理部４２が、ステップ４０５で図示しないメモリに記憶されたサブデータセットの最小数ｍを読み出す（ステップ４２１）。
また、バッファ１２に蓄積された更新データを格納するサブデータセットの数ｎを求め、更新データを格納するｎ個のサブデータセットを生成する（ステップ４２２）。
そして、バッファ管理部４２は、ステップ４２２で生成したサブデータセットの数ｎが、ステップ４２１で算出されたサブデータセットの最小数ｍよりも小さいかどうかを判定する（ステップ４２３）。
【００５１】
その結果、サブデータセットの数ｎがサブデータセットの最小数ｍよりも小さいと判定すれば、バッファ管理部４２は、ステップ４２２で生成したｎ個のサブデータセットにパディングデータを含むサブデータセットを付加することにより、ｍ個のサブデータセットを生成する（ステップ４２４）。
その後、ｍ個のサブデータセットはチャネル入出力部４３に渡され、チャネル入出力部４３が、ｍ個のサブデータセットをテープ２３上のＲＡＢＦ用の一時記憶領域に書き込む（ステップ４２５）。具体的には、バッファ管理部４２からの指示により、動作信号出力部４８が、一時記憶領域を含むラップへのラップ切り替えを指示する信号をヘッド位置制御システム１７に出力し、ｍ個のサブデータセットが一時記憶領域に書き込まれた後にバックヒッチレスのテープ走行を指示する信号をモータドライバ１８に出力する。
【００５２】
一方、サブデータセットの数ｎがサブデータセットの最小数ｍ以上であると判定すれば、ステップ４２２で生成されたｎ個のサブデータセットはチャネル入出力部４３に渡され、チャネル入出力部４３が、ｎ個のサブデータセットをテープ２３上のＲＡＢＦ用の一時記憶領域に書き込む（ステップ４２５）。具体的には、バッファ管理部４２からの指示により、動作信号出力部４８が、一時記憶領域を含むラップへのラップ切り替えを指示する信号をヘッド位置制御システム１７に出力し、ｎ個のサブデータセットが一時記憶領域に書き込まれた後にバックヒッチレスのテープ走行を指示する信号をモータドライバ１８に出力する。
【００５３】
以上により、本実施の形態についての説明を終了する。
このように、本実施の形態では、更新された情報を含むデータを、データセットにしろサブデータセットにしろ固定された単位でテープ媒体に書き込むのではなく、バーストエラーに対する耐性を確保するための最低限のサブデータセット数以上の必要なサブデータセットだけ書き込むようにした。これにより、バーストエラーに対する耐性を確保しつつ、ＲＡＢＦにおける書込みのパフォーマンスを向上できるようになった。
【００５４】
尚、本実施の形態では、サブデータセットの最小数ｍを「ｍ＞ｍｄｌ＊ｌｄ＊ｎｏｔ／ｃｓｄｓ／ｒｒ＊ｆｓ」という式によって決定したが、決定方法はこれには限らない。傷の最大値ｍｄｌ［ｍ］と最大回復率ｒｒとを用いて、テープ媒体に書き込まれたデータの一部が傷やゴミによって読み出せなくてもデータの全体を回復できるように決定する方法であれば、如何なる決定方法を採用してもよい。
【００５５】
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム（装置又は機器）、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ（ＣＤ−ＲＯＭ）、コンパクトディスク−リード／ライト（ＣＤ−Ｒ／Ｗ）及びＤＶＤが含まれる。
【００５６】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
【符号の説明】
【００５７】
１０…テープドライブ、１１…ホストＩ／Ｆ、１２…バッファ、１３…チャネル、１４…ヘッド、１５…モータ、１６…コントローラ、１７…ヘッド位置制御システム、１８…モータドライバ、１９…ＣＭＩ／Ｆ、２０…テープカートリッジ、２１，２２…リール、２３…テープ、２４…カートリッジメモリ、４１…コマンド処理部、４２…バッファ管理部、４３…チャネル入出力部、４４…ＣＭ入出力部、４５…テープ変数取得部、４６…設定変数取得部、４７…最小数算出部、４８…動作信号出力部
【図１】
0005536565.tif 000002
【図２】
0005536565.tif 000003
【図３】
0005536565.tif 000004
【図４】
0005536565.tif 000005
【図５】
0005536565.tif 000006
【図６】
0005536565.tif 000007
【図７】
0005536565.tif 000008