(57)【要約】  【課題】  ホストから送られるデータと記録媒体に実際に書き込まれるデータとで容量に差異が生じる場合にデータの書込みを効率よく行う。  【解決手段】  ホストから送られたデータセットをバッファメモリ３２に格納し、バッファメモリ３２に格納されたデータセットを取り出してホストに送るホストＩ/Ｆ部３１と、バッファメモリ３２に格納されたデータセットを取り出してテープに転送し、テープから読み出されたデータセットをバッファメモリ３２に格納するメディアＩ/Ｆ部３３と、ホストとの間の転送レートをホストＩ/Ｆ部３１から取得する転送レート取得部３４と、テープに書き込む際のエラーレートをメディアＩ/Ｆ部３３から取得するエラーレート取得部３５と、この転送レートとエラーレートに基づいてテープスピードを決定するスピード決定部３６と、決定されたスピードでテープが動作するよう制御するスピード制御部３７とを備える。  【選択図】  図２
2006318571.tif 000002
【特許請求の範囲】
【請求項１】
記録媒体の駆動を制御するための装置であって、
前記記録媒体に記録されたデータの容量と、当該データを上位装置との間で送受信する際における当該データの容量との差異を検出する検出器と、
前記検出器により検出された前記差異に基づいて、前記記録媒体との間の第１の転送レートと、前記上位装置との間の第２の転送レートとが互いに近づくよう調整を行う調整器と
を含む、装置。
【請求項２】
前記検出器は、前記記録媒体に記録された前記データにおいて、前記上位装置との間で送受信される前記データの一部の重複が発生しているかどうかを判定する、請求項１記載の装置。
【請求項３】
前記重複は、ＬＴＯ(Linear Tape-Open)におけるＣＱ(Codeword Quad)のリライトによって発生したものである、請求項２記載の装置。
【請求項４】
前記調整器は、前記第２の転送レートと、前記検出器により検出された前記差異の大きさとに基づいて、前記記録媒体の走行又は回転の速度を制御する、請求項１記載の装置。
【請求項５】
前記調整器は、前記第２の転送レートと当該第２の転送レートに適した前記記録媒体の走行又は回転の速度とを予め対応付けた定義情報に従って、当該記録媒体の走行又は回転の速度を決定する、請求項４記載の装置。
【請求項６】
前記調整器は、前記調整の時点におけるデータの転送を、当該調整に先立って一旦停止し、当該調整の完了後に再開する、請求項１記載の装置。
【請求項７】
所定の提供元から受け取ったデータを所定の提供先に転送するための装置であって、
前記提供元から前記データを受け取るのに要する時間と、前記提供先へ前記データを受け渡すのに要する時間との差異を検出する検出器と、
前記検出器により検出された前記差異に基づいて、前記提供元との間の第１の転送レートと、前記提供先との間の第２の転送レートとが一致するよう調整を行う調整器と
を含む、装置。
【請求項８】
記録媒体の駆動を制御するための方法であって、
ホストコンピュータからデータを受け取るステップと、
前記データを前記記録媒体に書き込むステップと、
前記ホストコンピュータから受け取った時点での前記データの容量と、前記記録媒体に書き込んだ時点での前記データの容量との差異を検出するステップと、
前記差異に基づいて、前記記録媒体との間の第１の転送レートを、前記ホストコンピュータとの間の第２の転送レートに適応させるステップと
を含む、方法。
【請求項９】
前記検出するステップでは、前記記録媒体に書き込んだ時点での前記データが、前記ホストコンピュータから受け取った時点での前記データの一部を重複して含むかどうかを判定する、請求項８記載の方法。
【請求項１０】
前記適応させるステップでは、前記第２の転送レートと、検出された前記差異の大きさとに基づいて、前記記録媒体の走行又は回転の速度を制御する、請求項８記載の方法。
【請求項１１】
記録媒体の駆動を制御するための方法であって、
前記記録媒体からデータを読み出すステップと、
前記データの付加情報に基づいて、前記記録媒体に記録された前記データの容量と、前記記録媒体に記録するためにホストコンピュータから受け取った時点での前記データの容量との差異を検出するステップと、
前記差異に基づいて、前記記録媒体との間の第１の転送レートを、前記ホストコンピュータとの間の第２の転送レートに適応させるステップと
を含む、方法。
【請求項１２】
前記検出するステップでは、前記記録媒体上の前記データが、前記記録媒体に記録するために前記ホストコンピュータから受け取った時点での前記データの一部を重複して含むかどうかを判定する、請求項１１記載の方法。
【請求項１３】
前記適応させるステップでは、前記第２の転送レートと、検出された前記差異の大きさとに基づいて、前記記録媒体の走行又は回転の速度を制御する、請求項１１記載の方法。
【請求項１４】
記録媒体の駆動を制御するための装置に対し、
前記記録媒体に記録されたデータの容量と、当該データを上位装置との間で送受信する際における当該データの容量との差異を取得する取得処理と、
前記取得処理で取得された前記差異に基づいて、前記記録媒体との間の第１の転送レートと、前記上位装置との間の第２の転送レートとが互いに近づくよう調整を行う調整処理と
を実行させるためのプログラム。
【請求項１５】
前記取得処理では、前記記録媒体に記録された前記データにおいて、前記上位装置との間で送受信される前記データの一部の重複が発生しているかどうかを示す情報を取得する、請求項１４記載のプログラム。
【請求項１６】
前記重複は、ＬＴＯ(Linear Tape-Open)におけるＣＱ(Codeword Quad)のリライトによって発生したものである、請求項１５記載のプログラム。
【請求項１７】
前記調整処理では、前記第２の転送レートと、前記取得処理で取得された前記差異の大きさとに基づいて、前記記録媒体の走行又は回転の速度を制御する、請求項１４記載のプログラム。
【請求項１８】
前記調整処理では、前記第２の転送レートと当該第２の転送レートに適した前記記録媒体の走行又は回転の速度とを予め対応付けた定義情報に従って、当該記録媒体の走行又は回転の速度を決定する、請求項１７記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、磁気テープ等の記録媒体の駆動を制御するための装置等に関し、より詳しくは、上位装置との間の転送レートと記録媒体との間の転送レートとを調整する機能を有する装置等に関する。
【背景技術】
【０００２】
磁気テープ等のテープ媒体へのデータの書込みや、テープ媒体からのデータの読出しは、記録ヘッドをテープ媒体に対して相対的に移動させることにより行われる。従って、テープ媒体をより高速に走行させれば、記録ヘッドとテープ媒体との間で、同じ量のデータをより短い時間で転送することが可能となる。即ち、テープ媒体との間の転送レート(書込みレート/読出しレート)は、テープ媒体の走行スピードが速ければ高くなり、テープ媒体の走行スピードが遅ければ低くなるのである。
従って、テープ媒体を可能な限り高速で走行させれば、テープ媒体との間の転送レートも高くなり、効率的なデータ転送が行えるはずである。
【０００３】
しかしながら、不必要に速いスピードでテープ媒体を走行させた場合は、却ってデータ転送を効率的に行えなくなる。ホストコンピュータ(以下、「ホスト」という)との間の転送レートが、テープ媒体との間の転送レートよりも低い場合に、バックヒッチと呼ばれる現象が生ずるからである。
バックヒッチとは、テープ媒体に書き出す十分なデータがなくなった場合に、次のデータをテープ媒体の連続する位置に書き込むため、テープ媒体の走行速度を減速して一旦停止し、書き込むべき位置まで戻る、という動作のことをいう。バックヒッチには、通常、３秒程度の時間を要する。このバックヒッチの間もホストからデータは送られているが、そのデータは、テープ媒体には書き出されない。即ち、３秒間ホストからデータを受け取り続けることができなければ、テープ媒体へのデータ転送のパフォーマンスは、著しく低下するのである。ホストから送られたデータは通常バッファに格納されるが、そのバッファのサイズが小さい場合は、このようなパフォーマンスの低下はより顕著に現れる。
また、バックヒッチは、テープ媒体に負担をかけるという理由からも、できるだけ減らすことが望ましい。
【０００４】
一方、テープ媒体を低速で走行させた場合にも不都合は生じる。テープ媒体との間の転送レートが、ホストとの間の転送レートよりも低いと、テープ媒体へ書き込まれるのを待つデータがバッファに滞留してしまい、ホストとの間の実質的な転送レートが低くなってしまうのである。
このようなことから、ホストから送られたデータをテープ媒体に書き込んだり、テープ媒体から読み出したデータをホストに送ったりする際、ホストとの間の転送レートとテープ媒体との間の転送レートとは一致していることが好ましいと言える。
【０００５】
そこで、従来は、ホストとの間の転送レートに見合った速度でテープ媒体を走行させるように制御していた。例えば、ホストとの間の転送レートが４０ＭＢ/ｓｅｃであれば、テープ媒体を２．７３ｍ/ｓｅｃで走行させ、ホストとの間の転送レートが５０ＭＢ/ｓｅｃであれば、テープ媒体を３．４１ｍ/ｓｅｃで走行させる、といったものである。
このような制御は、ホストから送られるデータをテープ媒体に書き込む場合に、データの容量が変わらない場合は、有効に機能するものである。しかしながら、ホストから送られる際と、テープ媒体に実際に書き込まれる際とで、データの容量が異なってくる場合には、有効に機能しなくなる。
【０００６】
このことを、ＬＴＯ(Linear Tape-Open)フォーマットを例にとって説明する。尚、ＬＴＯとは、ＩＢＭ、ヒューレットパッカード、サータンスの３社が共同で策定したテープのオープン規格である。このＬＴＯフォーマットでは、複数のＣＱ(Codeword Quad)がＣＱセットを構成し、複数のＣＱセットからなるデータセットを単位として書込みが行われる。その際、書込みは、書き込んだデータをｏｎ−ｔｈｅ−ｆｌｙで読み込み、データが正しく書かれたか検証しながら行われる(Ｒｅａｄ−Ｗｈｉｌｅ−Ｗｒｉｔｅ)。ここで、書き込んだはずのＣＱセットを構成するＣＱが１つでも読めなかった場合、そのＣＱセットを再度書き込むこと(ＣＱリライト)が許されている。そうなると、テープ媒体に実際に書き込まれたデータセットに含まれるＣＱセットの数は可変となり、データセットのサイズが異なってくるのである(ＣＱリライトの数は、ＬＴＯ第３世代の場合、最小０、最大２５６、ＬＴＯ第２世代/第１世代の場合、最小０、最大１２８)。
【０００７】
尚、従来技術としては、ホストからのコマンドがリトライのコマンドである場合にデータ転送速度を遅くする技術(例えば、特許文献１)や、記録媒体からのデータのリードリトライ時にテープ速度を記録時の速度よりも遅くする技術(例えば、特許文献２参照)が提案されている。
【０００８】
【特許文献１】特開平１１−２４９８２１号公報(第６、７頁、第１、２図)
【特許文献２】特開２０００−５７５１０号公報(第１０頁、第１４図)
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、これらの従来技術は、いずれも、ホストとの間の転送レートとテープ媒体との間の転送レートの一致を目的とするものではない。即ち、エラーが発生した場合に、ホストとの間の転送レートや、テープ媒体との間の転送レートを単独で調整しているに過ぎないものであった。従って、上述したような、ＬＴＯにおけるＣＱリライトの発生によってホストから送られるデータセットのサイズとテープ媒体に実際に書き込まれるデータセットのサイズとが異なってくるような場合に、テープ媒体への書き込みを効率的に行えないという問題点があった。
【００１０】
本発明は、以上のような技術的課題を解決するためになされたものであって、その目的は、ホストから送られるデータと記録媒体に実際に書き込まれるデータとで容量に差異が生じる場合にデータの書込みを効率よく行うことにある。
【課題を解決するための手段】
【００１１】
かかる目的のもと、本発明では、ホストから送られる際のデータ容量と記録媒体に書き込む際のデータ容量との違いを考慮してホスト側の転送レートと記録媒体側の転送レートとを一致させるようにしている。即ち、本発明の装置は、記録媒体の駆動を制御するためのものであり、記録媒体に記録されたデータの容量と、そのデータを上位装置との間で送受信する際におけるそのデータの容量との差異を検出する検出器と、この検出器により検出された差異に基づいて、記録媒体との間の第１の転送レートと、上位装置との間の第２の転送レートとが互いに近づくよう調整を行う調整器とを含んでいる。
これをテープ媒体に限定して述べると、ホスト側の転送レートだけでテープの走行スピードを決定するのではなく、メディア側のエラー情報(ＣＱリライト)も考慮してテープの走行スピードを決定する手法である。
【００１２】
また、本発明は、ホストから送られたデータの容量と記録媒体に実際に書き込むデータの容量との違いを考慮してホスト側の転送レートと記録媒体側の転送レートとを一致させる方法として捉えることもできる。その場合、本発明の方法は、記録媒体の駆動を制御するためのものであり、ホストからデータを受け取るステップと、データを記録媒体に書き込むステップと、ホストから受け取った時点でのデータの容量と、記録媒体に書き込んだ時点でのデータの容量との差異を検出するステップと、差異に基づいて、記録媒体との間の第１の転送レートを、ホストとの間の第２の転送レートに適応させるステップとを含んでいる。
【００１３】
更に、本発明は、記録媒体に書き込まれたデータの容量とそのデータのホストから送られた時点での容量との違いを考慮してホスト側の転送レートと記録媒体側の転送レートとを一致させる方法として捉えることもできる。その場合、本発明の方法は、記録媒体の駆動を制御するためのものであり、記録媒体からデータを読み出すステップと、データの付加情報に基づいて、記録媒体に記録されたデータの容量と、記録媒体に記録するためにホストから受け取った時点でのデータの容量との差異を検出するステップと、差異に基づいて、記録媒体との間の第１の転送レートを、ホストとの間の第２の転送レートに適応させるステップとを含んでいる。
【００１４】
一方、本発明は、コンピュータに所定の機能を実現させるプログラムとして捉えることもできる。その場合、本発明のプログラムは、記録媒体の駆動を制御するための装置に対し、記録媒体に記録されたデータの容量と、そのデータを上位装置との間で送受信する際におけるそのデータの容量との差異を取得する取得処理と、取得処理で取得された差異に基づいて、記録媒体との間の第１の転送レートと、上位装置との間の第２の転送レートとが互いに近づくよう調整を行う調整処理とを実行させるためのものである。
【発明の効果】
【００１５】
本発明によれば、ホストから送られるデータと記録媒体に実際に書き込まれるデータとで容量に差異が生じる場合にデータの書込みを効率よく行うことができる。
【発明を実施するための最良の形態】
【００１６】
以下、添付図面を参照して、本発明を実施するための最良の形態(以下、「実施の形態」という)について詳細に説明する。
図１は、本実施の形態が適用されるコンピュータシステムの構成を示した図である。このコンピュータシステムは、ホスト１０と、テープドライブ２０とから構成される。
ホスト１０は、パーソナルコンピュータ等の一般的なコンピュータである。即ち、コンピュータ全体の動作を制御するＣＰＵ(Central Processing Unit)や、ＣＰＵが直接アクセスするプログラム及びデータを記憶するメインメモリを備える。また、処理の指示やデータを入力するためのキーボード、マウス等の入力装置や、処理結果を表示するためのディスプレイ等の出力装置を更に備えていてもよい。
【００１７】
テープドライブ２０は、制御部３０と、ヘッド４０と、リール５０及び５１とを備える。そして、テープ６０が、リール５０とリール５１とにまたがって巻かれている。また、リール５０及び/又は５１の回転を制御する駆動部７０を更に備えている。
ヘッド４０は、テープ６０へのデータの書込み及びテープ６０からのデータの読出しを行う機構である。また、本実施の形態では、テープドライブ２０として、ＬＴＯに準拠した動作を行うものを想定しており、ヘッド４０は、データを書き込んだ後、書き込んだデータを読み出す機能も有している。
【００１８】
リール５０及び５１は、回転することによって、リール５０からリール５１の方向へ、又は、リール５１からリール５０の方向へテープ６０を移動させる機構である。駆動部７０が、リール５０及び/又は５１の回転を制御する。
制御部３０は、ホスト１０からの指示に従い、テープ６０へのデータの書込み及びテープ６０からのデータの読出しを制御する。また、本実施の形態では、これに加え、リール５０及び/又は５１の回転速度を制御することにより、テープ６０の走行速度を制御する。尚、制御部３０を実現するため、テープドライブ２０もホスト１０と同様、ＣＰＵやメインメモリを備えている。
【００１９】
図２は、本発明の実施の形態における制御部３０の機能構成を示した図である。この制御部３０は、ホストインターフェース部(以下、「ホストＩ/Ｆ部」という)３１と、バッファメモリ３２と、メディアインターフェース部(以下、「メディアＩ/Ｆ部」という)３３とを備える。また、転送レート取得部３４と、エラーレート取得部３５と、スピード決定部３６と、スピード制御部３７とを更に備える。
【００２０】
ホストＩ/Ｆ部３１は、テープ６０に書き込むべきデータセットをホスト１０から受け取ってバッファメモリ３２に格納したり、バッファメモリ３２に格納されたデータセットを取り出してホスト１０に送ったりする。尚、バッファメモリ３２は、複数のデータセットが格納できる容量を有している。
メディアＩ/Ｆ部３３は、バッファメモリ３２に格納されたデータを取り出してテープ６０に記録するためにヘッド４０に転送したり、テープ６０に記録されたデータセットをヘッド４０から受け取ってバッファメモリ３２に格納したりする。また、ＬＴＯでは、ＣＱセットを書き込んだ後、ＣＱセットを一旦読み出して正しく書かれたかどうかの検証を行う。このような検証も、メディアＩ/Ｆ部３３で行う。
【００２１】
転送レート取得部３４は、ホスト１０とテープドライブ２０との間で送受信されるデータセットの容量に関する情報をホストＩ/Ｆ部３１から受け取り、転送レートを取得する。
エラーレート取得部３５は、テープ６０にデータセットを書き込んだ際のＣＱリライトの情報をメディアＩ/Ｆ部３３から受け取り、エラーレートを取得する。
スピード決定部３６は、転送レート取得部３４が取得した転送レートと、エラーレート取得部３５が取得したエラーレートとに基づいて、テープ６０のスピードを決定する。
スピード制御部３７は、この決定されたスピードでテープ６０が走行するよう、駆動部７０を制御する。
【００２２】
尚、これらの各機能のうち、メディアＩ/Ｆ部３３及び/又はエラーレート取得部３５は、テープ６０に記録されたデータの容量とそのデータのホスト１０との送受信時における容量との差異(例えば、ＣＱリライトの回数)を検出する検出器として機能するものである。また、スピード決定部３６及び/又はスピード制御部３７は、検出された差異に基づいてホスト１０との間の転送レートとテープ６０との間の転送レートを調整する調整器として機能するものである。
ところで、これらの各機能は、ソフトウェアとハードウェア資源とが協働することにより実現される。具体的には、テープドライブ２０のＣＰＵが、ホストＩ/Ｆ部３１、メディアＩ/Ｆ部３３、転送レート取得部３４、エラーレート取得部３５、スピード決定部３６、スピード制御部３７の各機能を実現するプログラムを、図示しない磁気ディスク装置等からメインメモリに読み込むことにより実現される。
【００２３】
次に、制御部３０の動作について詳細に説明する。
まず、ホスト１０から送られたデータセットをテープ６０に書き込む際の制御部３０の動作について説明する。ホスト１０からデータセットが送られると、ホストＩ/Ｆ部３１がこのデータセットを受け取り、バッファメモリ３２に格納する。尚、この場合、ホスト１０から受け取る単位がデータセットである必要はない。例えば、ホスト１０から受け取る単位はレコードで、複数のレコードが集まって１つのデータセットを構成するようなものでもよい。また、図示するように、バッファメモリ３２は、複数の区画に分けられており、１つの区画に１つのデータセットが格納されるものとする。
このようにホストＩ/Ｆ部３１がデータセットをバッファメモリ３２に格納する際に、転送レート取得部３４がホスト１０との間の転送レートを取得する。尚、本実施の形態では、単に「転送レート」というときは、ホスト１０との間に転送レートをいうものとする。
【００２４】
図３は、転送レート取得部３４の動作を示したフローチャートである。
まず、転送レート取得部３４は、ホスト１０とテープドライブ２０との間で通信されるデータセットの容量に関する情報をホストＩ/Ｆ部３１から受け取る(ステップ１０１)。そして、受け取ったデータセットの容量の情報と、その情報を受け取った時刻Ｔの情報とを保存する(ステップ１０２)。
一方で、転送レート取得部３４は、これまでに受け取ったデータセットの容量の情報と、その情報を受け取った時刻の情報とを蓄積している。そこで、この情報の中から、時刻(Ｔ−△Ｔ)から時刻Ｔまでに受け取ったデータセットの容量に関する情報を読み出す(ステップ１０３)。そして、読み出したデータセットの容量を△Ｔで割ることにより、転送レートＭを求め(ステップ１０４)、この転送レートＭをスピード決定部３６に受け渡す(ステップ１０５)。
尚、以上の転送レートの取得に関する動作は、あくまで一例であり、いかなる処理によるものであっても構わない。例えば、転送レート取得部３４が、一定の時間間隔でバッファメモリ３２を参照し、新たに追加されたデータを認識することにより、転送レートを求めるような方法も考えられる。
【００２５】
また、バッファメモリ３２に格納されたデータセットは、所定のタイミングでメディアＩ/Ｆ部３３により取り出され、ヘッド４０に送られ、テープ６０に書き込まれる。その際、ＬＴＯでは、既に述べたように、ＣＱセットをテープ６０に書き込んだ後、再び読み出して正しく書かれているかどうかを検証する方式を採用している。その検証の結果、ＣＱセットに含まれるいずれかのＣＱが正しく書かれていなければ、ＣＱセットを再び書き込むＣＱリライトを行う。このようなＣＱリライトの回数の大小によって、ホスト１０から送られるデータセットと、テープ６０に実際に書き込まれるデータセットとでは、サイズが異なってくる。そこで、エラーレート取得部３５が、ＣＱリライトが発生する割合(エラーレート)を取得し、テープ速度の決定に反映させるのである。
【００２６】
図４は、エラーレート取得部３５の動作を示したフローチャートである。
まず、エラーレート取得部３５は、例えば、データセットごとに、ＣＱリライトの回数の情報をメディアＩ/Ｆ部３３から受け取る(ステップ２０１)。そして、受け取ったＣＱリライトの回数の情報を保存する(ステップ２０２)。
一方で、エラーレート取得部３５は、これまでに受け取ったＣＱリライトの回数の情報を蓄積している。そこで、この情報の中から、直近の幾つかのデータセットについてのＣＱリライトの回数の平均を求め、これをエラーレートＮとし(ステップ２０３)、このエラーレートＮをスピード決定部３６に受け渡す(ステップ２０４)。
尚、以上のエラーレートの取得に関する動作は、あくまで一例であり、いかなる処理によるものであっても構わない。ここでは、データセットごとのＣＱリライトの回数を用いたが、例えば、単位時間あたりのＣＱリライトの回数を用いるようにしてもよい。また、ＣＱリライトの回数を数えるのではなく、１つのデータセットを書き込むのに要する時間を計測するという方法も考えられる。ＣＱリライトが発生すると、１つのデータセットを書くのにかかる時間も長くなるので、ＣＱリライトの回数を直接数えなくても、この時間を計測することで同様の効果を得ることができるのである。
【００２７】
このようにして転送レート取得部３４から転送レートＭが渡され、エラーレート取得部３５からエラーレートＮが渡されると、スピード決定部３６がこれらの情報を用いてテープ６０のスピードを決定する。
図５は、スピード決定部３６の動作を示したフローチャートである。
まず、スピード決定部３６は、転送レート取得部３４から転送レートＭを受け取り(ステップ３０１)、エラーレート取得部３５からエラーレートＮを受け取る(ステップ３０２)。
【００２８】
ここで、１データセットに本来含まれているＣＱセットの数をＮａとし、１データセットあたりＮ回のＣＱリライトが発生するとした場合、テープ６０に書き込まれたデータセットに含まれるＣＱセットの数は、(Ｎ＋Ｎａ)となる。従って、ホスト１０からの転送レートはＭであるが、実際に書き込まれるＣＱセットの数が((Ｎ＋Ｎａ)/Ｎａ)倍となるため、テープ６０との間の転送レートは、(Ｍ×(Ｎ＋Ｎａ)/Ｎａ)とする必要がある。言い換えれば、テープ６０との間の転送レートを(Ｍ×(Ｎ＋Ｎａ)/Ｎａ)とすることにより、ホスト１０との間の転送レートＭに追いつくのである。即ち、スピード決定部３６は、「Ｍ’＝Ｍ×(Ｎ＋Ｎａ)/Ｎａ」により、調整後の転送レートＭ’を求める(ステップ３０３)。
そして、スピード決定部３６は、転送レートとテープ速度との対応を定義した対応テーブルを参照し、調整後の転送レートＭ’に対応するテープ速度Ｖ’を求める(ステップ３０４)。
【００２９】
図６は、この際に参照される対応テーブルの一例である。尚、この対応テーブルは、ＬＴＯ第３世代の場合の例である。ＬＴＯの世代が変わると、フォーマット、即ち、テープに記録されるデータの記録密度も変わるので、テープ速度としても異なる速度を対応付けることになる。
本実施の形態では、ホスト１０との間の転送レートを５段階に分けて設けている。具体的には、８０ＭＢ/ｓｅｃ、７０ＭＢ/ｓｅｃ、６０ＭＢ/ｓｅｃ、５０ＭＢ/ｓｅｃ、４０ＭＢ/ｓｅｃである。そして、これらの転送レートのそれぞれに対し、テープ速度は、５．４５ｍ/ｓｅｃ、４．７７ｍ/ｓｅｃ、４．０９ｍ/ｓｅｃ、３．４１ｍ/ｓｅｃ、２．７３ｍ/ｓｅｃが相応しいことが定義されている。尚、以下の説明では、テープ速度として、具体的な数値の代わりに、「ＳｐｅｅｄＸ」(Ｘ＝１，…，５)という表記を用いるものとする。
また、図では、転送レートを５段階に分けたが、これより少ない段階に分けてもよいし、これより多い段階に分けてもよい。
【００３０】
さて、再び図５に戻り、スピード決定部３６の動作の説明を続ける。ステップ３０４でテープ速度Ｖ’が求まると、スピード決定部３６は、最初のテープ速度Ｖと変更後のテープ速度Ｖ’とが等しいかどうかを判定する(ステップ３０５)。その結果、等しければ、何もせずに処理を終了する。
一方、等しくなれば、テープ速度を変更するための処理を行う。本実施の形態では、テープ速度の変更中はデータ転送を一旦停止することとしているので、まず、スピード決定部３６は、メディアＩ/Ｆ部３３に対し、データセットの転送を停止するよう指示する(ステップ３０６)。そして、テープ速度をＶからＶ’へ変更するようスピード制御部３７に指示する。これにより、スピード制御部３７からの指示が駆動部７０に伝えられ、駆動部７０は、リール５１又は５２を制御することにより、テープ速度を変更する(ステップ３０７)。テープ速度の変更が完了すると、スピード決定部３６は、メディアＩ/Ｆ部３３に対し、データセットの転送を再開するよう指示する(ステップ３０８)。
【００３１】
次に、図６の対応テーブルを参照して、ステップ３０４におけるテープ速度の決定について、具体的に述べる。尚、ここでは、ＬＴＯの第３世代を例にとり、１つのデータセットに含まれるＣＱセットの数Ｎａは１２８であるとする。
最初、転送レートＭは４０ＭＢ/ｓｅｃであり、テープ速度Ｖは、対応テーブルで４０ＭＢ/ｓｅｃに適したものとして定義されているＳｐｅｅｄ５であるとする。この場合において、エラーレートＮが１２８であるとすると、調整後の転送レートＭ’は、「４０×(１２８＋１２８)/１２８＝８０」により、８０ＭＢ/ｓｅｃとなる。対応テーブルを参照すると、８０ＭＢ/ｓｅｃに適したテープ速度Ｖ’はＳｐｅｅｄ１であるので、テープ速度をＳｐｅｅｄ１に変更する。この場合は、テープ速度をＳｐｅｅｄ５からＳｐｅｅｄ１に変更したことにより、約２倍(＝５．４５/２．７３)の転送効率を得ることができる。
【００３２】
また、転送レートＭが６０ＭＢ/ｓｅｃであり、テープ速度Ｖが、対応テーブルで６０ＭＢ/ｓｅｃに適したものとして定義されているＳｐｅｅｄ３である場合も同様にしてテープ速度が変更される。この場合において、エラーレートＮが１２８であるとすると、調整後の転送レートＭ’は、「６０×(１２８＋１２８)/１２８＝１２０」により、１２０ＭＢ/ｓｅｃとなる。対応テーブルを参照すると、１２０ＭＢ/ｓｅｃは定義されていないため、最大の転送レートである８０ＭＢ/ｓｅｃが選択されることになる。そこで、８０ＭＢ/ｓｅｃに適したテープ速度Ｖ’はＳｐｅｅｄ１であるので、テープ速度をＳｐｅｅｄ１に変更する。この場合は、Ｓｐｅｅｄ３をＳｐｅｅｄ１に変更したことにより、約１．３倍(＝５．４５/４．０９)の転送効率を得ることができる。
【００３３】
このように効果の幅は違うが、Ｓｐｅｅｄ２〜Ｓｐｅｅｄ４でテープ６０が走行していた場合にテープ６０の速度をＳｐｅｅｄ１とすることで、テープ６０へのデータ転送の効率を向上することができる。
一方、最初からＳｐｅｅｄ１でテープ６０を走行している場合には、転送効率は向上しない。しかしながら、不必要に高速にテープ６０を走行させた場合にはバックヒッチが生じることから、本実施の形態では、テープ速度は、一旦高速にした場合であっても、その後、エラーレートが小さくなれば、低速にするように制御している(ステップ３０３で、Ｎ＝０とすると、Ｍ’＝Ｍとなる)。従って、任意の時点を考えた場合、Ｓｐｅｅｄ１でテープ６０が走行していない可能性は高いため、大抵の場合にはデータ転送の効率の向上が見られることとなる。
【００３４】
次に、ヘッド４０から渡されたデータセットをホスト１０に送る際の制御部３０の動作について説明する。ヘッド４０からデータセットが渡されると、メディアＩ/Ｆ部３３がこのデータセットを受け取り、バッファメモリ３２に格納する。また、データセットには、その書込み時に発生したＣＱリライトの回数の情報がヘッダ情報として付加されているので、１データセットあたりのＣＱリライトの回数が分かるようになっている。そこで、エラーレート取得部３５が、１データセットあたりのＣＱリライトが発生する割合(エラーレート)を取得し、テープ速度の決定に反映させるのである。また、上述したように、バッファメモリ３２は、例えば、１２８個の区画に分けられており、各区画に各ＣＱセットが格納されるものとしている。ここで、ＣＱは、書き込まれた順に読み出されてバッファメモリ３２に格納される。従って、ＣＱリライトが発生したＣＱについては、正しく書けなかったＣＱが先に読み出されてバッファメモリ３２に格納され、その後に、正しく書かれたＣＱによって上書きされることになる。
尚、ここでのエラーレート取得部３５の動作は、図４を参照して既に述べたものと同様であるので、説明を省略する。
【００３５】
また、バッファメモリ３２に格納されたデータセットは、所定のタイミングでホストＩ/Ｆ部３１により取り出され、ホスト１０に送られる。このようなホストＩ/Ｆ部３１によるデータセットの送信の際に、転送レート取得部３４が転送レートを取得する。
尚、ここでの転送レート取得部３４の動作は、図３を参照して既に述べたものと同様であるので、説明を省略する。
【００３６】
その後、スピード決定部３６は、図５を参照して既に述べたのと同様の動作により、テープ速度を決定し、スピード制御部３７に対しテープ速度の変更を指示する。これにより、スピード制御部３７からの指示が駆動部７０に伝えられ、駆動部７０は、リール５０又は５１を制御することにより、テープ速度を変更する。
【００３７】
以上により、本実施の形態の動作は終了する。
本実施の形態では、ホスト側の転送レートだけでテープ速度を決定するのではなく、記録媒体側のエラー情報も考慮してテープ速度を決定するようにした。これにより、記録媒体側でエラーが発生することによりデータ長が大きくなってしまう場合にも、効率よくデータ転送を行うことができる。
【００３８】
次に、本実施の形態を採用することで効果があるエラーの例について、図７を参照して説明する。
図７は、ＬＴＯの第２世代/第１世代のテープフォーマットを示した図である。
まず、データセットは、サブデータセット０，１，…，１５に分割される。各サブデータセットは、６４行からなり、各行は４８０バイトである。そして、２×ｉ番目のサブデータセットの１行目と、(２×ｉ＋１)番目のサブデータセットの１行目とから、ｉ番目のＣＱ(Codeword Quad)が生成される。そして、ｉ番目のＣＱは、ｉ番目のトラックに書き込まれる(ｉ＝０，１，…，７)。このようにして書き込まれた８個のＣＱの集合がＣＱセット０である。これを６４行分繰り返し、テープ６０上には、ＣＱセット０，１，…，６３が書き込まれることになる。尚、第３世代であれば、サブデータセットは６４個、ＣＱセットは１２８個となる。
【００３９】
ここで、仮に、トラック０に書き込むためのヘッドに異常が発生したとする。すると、ＣＱセット０において、ＣＱ０は正しく書かれていないため、ＣＱ０を正常なヘッドで書かれる別のトラックに移してＣＱセット０がリライトされる。これにより、ＣＱ０は正しく書かれるため、ＣＱ０の書込みが完了する。その後も、トラック０に書き込むためのヘッドの異常が続いたとすると、結局、ＣＱセット０〜６３の全てについて、ＣＱリライトを１回ずつ行うことになり、データセットに含まれるＣＱセットの数は、ホスト１０から送られたデータセットに含まれるＣＱセットの数の２倍となる。このようなケースにおいて、本実施の形態の手法を採用すれば、ホスト１０を待たせることなくデータ転送を行えるようになる。
【００４０】
尚、本実施の形態では、テープ速度の調節中の書込みをサポートしないテープドライブを前提としたため、速度変更中はデータの転送を一時的に停止するようにした。しかしながら、これは、テープドライブのハードウェア機構に依存するものであり、テープ速度変更中の書込みをサポートしているテープドライブであれば、データを転送しながらテープ速度を変更することも可能である。このようなハードウェア機構を使用した場合は、図５のステップ３０６及び３０８の処理は実行されない。また、本実施の形態におけるデータ転送の停止は、あくまで一時的なものであり、エラーが継続して発生する場合は、テープのスピードを変更した方が、長期的にみれば転送レートの向上につながることとなる。
【００４１】
また、本実施の形態では、記録媒体としてテープ媒体を例示したが、ディスク媒体であっても同様に考えることができる。その場合、ホスト側の転送レートと記録媒体側のエラーレートに基づいて、ディスク媒体の回転速度を決定することとなる。
更に、本実施の形態では、エラーレートの例として、ＣＱリライトを想定したが、他のエラーによって転送時と記録時とでデータサイズに差異が生じた場合においても、本発明は有効である。但し、この場合のエラーは、テープ速度の変更とは相関がないものであり、かつ、バックヒッチを伴わずに(テープを止めずに)エラーリカバリが可能なものである。或いは、本発明は、エラーにより、データの容量は変わらないが、データの転送にかかる時間と、データの書込み/読出しにかかる時間とに差異が生じた場合に、転送レートと書込み/読出しレートを調整するものとして把握することも可能である。
また、上記では、ＬＴＯにおけるＣＱリライトのように、ホストから送られるデータの容量よりも、記録媒体に実際に書き込まれるデータの容量の方が大きいことを前提として説明してきたが、必ずしもそのような大小関係に限る必要はない。即ち、ホストから送られるデータの容量が、記録媒体に書き込まれるデータの容量よりも大きい場合に、ホスト側の転送レートと記録媒体側の転送レートを一致させるような形態であっても構わない。
【００４２】
更にまた、ホスト側の転送レートを記録媒体側の転送レートに合わせても、記録媒体側の転送レートをホスト側の転送レートに合わせてもよく、結果的に、これらの転送レートが互いに近づくように調整されるものであればよい。
但し、ここで調整される転送レートは、その一方がホストとバッファメモリとの間の転送レートであり、他方がバッファメモリと記録媒体との間の転送レートである、という構成には限られない。
例えば、ホストとバッファメモリとの間に圧縮装置が設けられている場合、一方は、圧縮装置とバッファメモリの間の転送レートであってもよい。この場合、データの書込み時においては、圧縮後のデータがバッファメモリに書き込まれる際の転送レートと、その圧縮後のデータがバッファメモリから取り出されて記録媒体へ書き込まれる際の転送レートとが一致するように調整される。また、データの読出し時においては、記録媒体からバッファメモリにデータが読み出される際の転送レートと、解凍前のデータが圧縮装置に読み込まれる際の転送レートとが一致するように調整される。
また、ホストと記録媒体の間に複数のバッファメモリが設けられている場合、調整対象の転送レートの一方又は両方は、バッファメモリ間の転送レートであってもよい。例えば、ホストから送られたデータが、バッファＡ、バッファＢ、バッファＣをこの順に経由して記録媒体に書き込まれるとする。この場合、バッファＢの前後で何らかの原因で転送レートが変わった場合に、バッファＡとバッファＢの間の転送レートと、バッファＢとバッファＣの間の転送レートとを一致させるために本発明を適用することも可能である。
【図面の簡単な説明】
【００４３】
【図１】本発明の実施の形態におけるコンピュータシステムの全体構成を示したブロック図である。
【図２】本発明の実施の形態における制御部の機能構成を示したブロック図である。
【図３】本発明の実施の形態における転送レート取得部の動作を示したフローチャートである。
【図４】本発明の実施の形態におけるエラーレート取得部の動作を示したフローチャートである。
【図５】本発明の実施の形態におけるスピード決定部の動作を示したフローチャートである。
【図６】本発明の実施の形態のスピード決定部で参照される対応テーブルの内容の例を示した図である。
【図７】本発明の実施の形態におけるＣＱリライトについて説明するための図である。
【符号の説明】
【００４４】
１０…ホスト、２０…テープドライブ、３０…制御部、３１…ホストＩ/Ｆ部、３２…バッファメモリ、３３…メディアＩ/Ｆ部、３４…転送レート取得部、３５…エラーレート取得部、３６…スピード決定部、３７…スピード制御部、４０…ヘッド、５０，５１…リール、６０…テープ、７０…駆動部
【図１】
2006318571.tif 000003
【図２】
2006318571.tif 000004
【図３】
2006318571.tif 000005
【図４】
2006318571.tif 000006
【図５】
2006318571.tif 000007
【図６】
2006318571.tif 000008
【図７】
2006318571.tif 000009