(57)【要約】      （修正有）【課題】メディアにデータを読み書きする場合に、テープスピードを切り替えるタイミングを決定する方法を提供する。【解決手段】テープ記憶装置は、上位装置との間で読み書きするデータを一時保管するバッファと、複数のデータをシーケンシャルに記録する記録媒体と、上位装置（ホスト）からの読み書き要求に応じて複数のデータを読み書きする制御部であって、上位装置との間のデータのホスト転送速度Ｔhが記録媒体との間のデータのドライブ転送速度Ｔdより大きいために、書込み時は前記バッファがフル又は読み出し時は前記バッファが空になることを避けるために、所定の速度変更タイミングでバックヒッチせずに、現在のテープスピードから目的のテープスピードになるようにテープスピードを加速させてドライブ転送速度をホスト転送速度にマッチングさせる、前記バッファと前記記録媒体との間でデータの読み書きを制御する前記読み書き制御部と、を含む。【選択図】図５
2014022002.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置であって、
上位装置との間で読み書きするデータを一時保管するバッファと、
複数のデータをシーケンシャルに記録する記録媒体と、
上位装置からの読出し又は書き出し要求に応じてシーケンシャルに複数のデータを読み書きする制御部であって、上位装置との間のデータのホスト転送速度が記録媒体との間のデータのドライブ転送速度より大きいために、書込み時は前記バッファがフル又は読み出し時は前記バッファが空になることを避けるたに、所定の速度変更タイミングで現在のテープスピードから目的のテープスピードになるようにテープスピードを加速させて、前記バッファと前記記録媒体との間でデータの読み書きを制御する前記読み書き制御部と、を含む記憶装置。
【請求項２】
前記所定の速度変更タイミングは、現時点で測定されたバッファ内のデータの空領域（書込み時）又はフル領域（読み出し時）の容量と、前記目的のテープスピードの変更時点で前記バッファのデータ容量がフル（書込み時）又は空（読み出し時）にならないように加速所要時間でのバッファへの流入データ量（書込み時）又はバッファからの流出データ量（読み出し時）で与えられる容量閾値とを比較して、決定される請求項２に記載の記憶装置。
【請求項３】
前記容量閾値は、ホスト転送速度と加速所要時間との積で計算される請求項３に記載の記憶装置。
【請求項４】
書込みの時の前記速度変更タイミングは、前記現時点で測定されたバッファの空の容量が前記流入データ量で計算された容量閾値より小さい場合である請求項３に記載の記憶装置。
【請求項５】
読み出し時の前記速度変更タイミングは、前記現時点で測定されたバッファのフル容量が前記流出データ量で計算された容量閾値より小さい場合である請求項３に記載の記憶装置。
【請求項６】
前記読み書き制御部は、スピード変更前後で書かれたデータの間隔が規格値内に納まるように、前記目的のテープスピードを選択することを特徴とする請求項４記載の記憶装置。
【請求項７】
前記読み書き制御部は、前記加速所要時間での読み飛ばし距離がＥＣＣ回復能力の範囲内に納まるように、前記目的のテープスピードを選択することを特徴とする、請求項５に記載の記憶装置。
【請求項８】
前記容量閾値に前記記憶装置のマージンを加えた値を新たな容量閾値として前記測定された容量と比較される請求項３に記載に記憶装置。
【請求項９】
上位装置からの読出し・書き出し要求に応じてシーケンシャルに複数のデータを読み書き制御する方法であって、
上位装置との間のデータのホスト転送速度が記録媒体との間のデータのドライブ転送速度より大きいために、書込み時はバッファがフル又は読み出し時はバッファが空になることを避けるたに、所定の速度変更タイミングで、現在のテープスピードから目的のテープスピードになるようにテープスピードを加速させて、前記バッファと前記記録媒体との間でデータの読み書きを制御する方法。
【請求項１０】
上位装置からの読出し・書き出し要求に応じてシーケンシャルに複数のデータを読み書き制御するプログラムであって、
上位装置との間のデータのホスト転送速度が記録媒体との間のデータのドライブ転送速度より大きいために、書込み時はバッファがフル又は読み出し時はバッファが空になることを避けるたに、所定の速度変更タイミングで、現在のテープスピードから目的のテープスピードになるようにテープスピードを加速させて、前記バッファと前記記録媒体との間でデータの読み書きを制御することを、コントローラに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シーケンシャルにデータを記録する記憶装置のデータ転送を改善する方法に関する。詳細には、テープ記憶装置がテープメディアにデータを読み書きする場合に、テープスピードを切り替えるタイミングを決定する方法に関する。
【背景技術】
【０００２】
ホストからデータ書込みにより、テープ記憶装置（テープドライブ）のバッファメモリ（バッファとも言う）にデータが蓄積される。ドライブ側でのテープでの書込み速度（ドライブ転送速度）が、ホスト側のデータの書込み速度（ホスト転送速度）よりは遅いと、バッファメモリはデータで一杯（フル、full）になる。バッファメモリがフルになると、通常テープドライブは記録媒体を巻戻す、バックヒッチと呼ばれる処理を実行する。バックヒッチは数秒（２〜５秒）かかる。バックヒッチの巻戻し加減速動作中は、テープドライブはテープ媒体にデータを書込み、バッファにデータを読み出すことはできない。バックヒッチの動作は、ホストのデータの転送を待たせるため全体としてデータ転送速度に影響を及ぼす。なお、ホストからのデータ読出し際には、テープドライブはバッファメモリがデータで空になるとバックヒッチを行う。
【０００３】
図１は、従来のテープスピードの変速方法を示す。
図１（ａ）は、ドライブ速度変更時にバックヒッチ動作が伴うことを示す。
ホスト転送速度とドライブ転送速度に差が大きい、又はホスト転送速度に断続的な変動すると、ドライブ転送速度のホスト転送速度への追従性が十分でない。バックヒッチは、その動作の間（２〜５秒）ホストからのデータの書込を待たせる。図１（ｂ）は、バックヒッチ動作の前後での書込みでは、テープスピードの前後においてデータ間隔は最小にしていること示す。
【０００４】
特許文献１は、ドライブ転送速度をホスト転送速度に調整するスピードマッチング技術を示す。マッチング技術は、バックヒッチ動作が伴うため全体の読み書きパフォーマンスに影響する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−３１８５７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
例えば、バッファメモリの容量を倍増することにより、このパフォーマンスへの影響を回避できる。しかし、特にホスト転送速度がドライブ転送速度大きい場合のホストのパフォーマンスをドライブの性能面から改善することが必要である。その際、バッファメモリの容量を増やすことは、製造コストや消費電力を増加させるデメリットが存在する。
【０００７】
従って、本発明の目的は、読み書きパフォーマンスを改善するために、テープスピードを変更するタイミングを決定する記憶装置、その方法、及びプログラムを提供することである。
【課題を解決するための手段】
【０００８】
かかる目的のもと、本発明は、上位装置との間で読み書きするデータを一時保管するバッファと、
複数のデータをシーケンシャルに記録する記録媒体（テープ媒体）と、
上位装置（ホスト）からの読出し又は書き出し要求に応じてシーケンシャルに複数のデータを読み書きする制御部であって、上位装置との間のデータのホスト転送速度Ｔhが記録媒体との間のデータのドライブ転送速度Ｔdより大きいために、書込み時は前記バッファがフル又は読み出し時は前記バッファが空になることを避けるたに、所定の速度変更タイミングでバックヒッチせずに、現在のテープスピードＳ(n)から目的のテープスピードＳ(n-1)になるようにテープスピードを加速（加速度Ａ）させてドライブ転送速度をホスト転送速度にマッチングさせる、前記バッファと前記記録媒体との間でデータの読み書きを制御する前記読み書き制御部と、を含む記憶装置である。
【０００９】
また、この装置において、前記所定の速度変更タイミングは、現時点で測定されたバッファ内のデータの空領域（書込み時）又はフル領域（読み出し時）容量Ａbfと、前記目的のテープスピードＳ(n-1)の変更時点（到達時点）で前記バッファのデータ容量がフル（書込み時）又は空（読み出し時）にならないように加速所要時間Ｔでのバッファへの流入データ量（書込み時）Ｔh×Ｔ又はバッファから流出データ量（読み出し時）Ｔh×Ｔで与えられる容量閾値Ｂthとを比較して、決定されることを含むことを特徴とする。
【００１０】
また、この装置において、前記容量閾値Ｂthは、ホスト転送速度Ｔｈと加速所要時間Ｔ＝（Ｓ（n-1）−Ｓ(n）)／Ａとの積で計算されることを特徴とする。
【００１１】
また、この装置において、書込みの時の前記速度変更タイミングは、前記現時点で測定されたバッファの空容量Ａbfが前記流入データ量で計算された容量閾値Ｂthより小さい場合であることを特徴とする。
【００１２】
また、この装置において、読み出し時の前記速度変更タイミングは、前記現時点で測定されたバッファのフル容量Ａbfが前記流出データ量で計算された容量閾値Ｂthより小さい場合であること特徴とする。
【００１３】
また、この装置において、前記読み書き制御部は、スピード変更前後で書かれたデータの間隔が規格値（例えば４ｍ）内に納まるように、前記目的のテープスピードＳ(n-1)を選択することを特徴とする。
【００１４】
また、この装置において、前記読み書き制御部は、前記速度変更タイミングで前記現在のテープスピードから前記目標のテープスピードＳ(n-1)に至までの前記加速所要時間Ｔでの読み飛ばし距離（（Ｓ(n)＋Ｓ（ｎ−１））／２）×Ｔ）がＥＣＣ回復能力の範囲（例えばデータ先頭部１５〜２０％）内に納まるように、前記目的のテープスピードＳ(n-1)を選択することを特徴とする。
【００１５】
また、この装置において、前記容量閾値に前記記憶装置のマージンαを加えた値を新たな容量閾値Ｂthとして前記測定された容量Ａbfと比較されることを特徴とする。
【００１６】
更に、本発明は、上位装置（ホスト）からの読出し・書き出し要求に応じてシーケンシャルに複数のデータを読み書き制御する方法である。この方法は、
上位装置との間のデータのホスト転送速度Ｔhが記録媒体との間のデータのドライブ転送速度Ｔdより大きいために、書込み時は前記バッファがフル又は読み出し時は前記バッファが空になることを避けるたに、所定の速度変更タイミングでバックヒッチせずに、現在のテープスピードＳ(n)から目的のテープスピードＳ(n-1)になるようにテープスピードを加速（加速度Ａ）させてドライブ転送速度をホスト転送速度にマッチングさせる、前記バッファと前記記録媒体との間でデータの読み書きを制御する。
【００１７】
更に、本発明は、上位装置（ホスト）からの読出し・書き出し要求に応じてシーケンシャルに複数のデータを読み書き制御するプログラムである。このプログラムは、
上位装置との間のデータのホスト転送速度Ｔhが記録媒体との間のデータのドライブ転送速度Ｔdより大きいために、書込み時は前記バッファがフル又は読み出し時は前記バッファが空になることを避けるたに、所定の速度変更タイミングでバックヒッチせずに、現在のテープスピードＳ(n)から目的のテープスピードＳ(n-1)になるようにテープスピードを加速（加速度Ａ）させてドライブ転送速度をホスト転送速度にマッチングさせる、前記バッファと前記記録媒体との間でデータの読み書きを制御することを、
コントローラに実行させる。
【発明の効果】
【００１８】
上述の手段を適用することにより、データをシーケンシャルに記録する記憶装置は、特にホスト転送速度がドライブ転送速度より大きい場合データ転送速度を改善できる。
【図面の簡単な説明】
【００１９】
【図１】従来のテープスピードの変速方法を示す。
【図２】本発明が適用されるテ−プドライブの構成例を示す。
【図３】テ−プドライブ１０がホスト３０からデータ読み出し、書込み要求を受取った場合のデータの転送速度の関係を示す。
【図４】テープスピードを加速させる本発明の態様を示す。
【図５】テープテープスピードの変更開始のタイミングの決定のフローチャートを示す。
【図６】本発明の読み書き制御１６の機能ブロックを示す。
【図７】書き込み時においてバッファがｆｕｌｌになるのを避けるための速度変更タイミングの決定の概念図を示す。
【図８】読出し時においてバッファが空になるのを避けるための速度変更タイミングの決定の概念図を示す。
【図９】従来の書込み方法と本発明での書込み方法でのパフォーマンスを示す。
【発明を実施するための形態】
【００２０】
以下、ホストからテープドライブへデータの書込みの場合及び読み出しの場合について実施の形態（実施例）を説明する。
【００２１】
ホスト転送速度がドライブ転送速度より速いと、データの書き込み中にバッファがｆｕｌｌに、及び、データの読み出し中にバッファメモリが空になるのを避ける読み書き方法である。本発明では、ドライブ転送速度、即ちテープ媒体（テープメディア）のスピード変更のタイミングに特徴がある。本発明ではバックヒッチを避けて事前にテープスピードの所定のタイミングで加速をする。テープスピードの変更が完了した時点で、バッファが書込み時はフル（full）又は読み出し時は空（empty）になるのを回避するために、所定の変更開始タイミングでテープスピードを変更する。本発明は、好適にはテープドライブのファームウェアの一機能として実装される。
【００２２】
図２は、本発明が適用されるテ−プドライブの構成例を示す。テ−プドライブ１０は、ホスト３０から送られた複数のデータを固定長のデータセット（ＤａｔａＳｅｔ、及びＤＳと言う。）単位でテ−プ記録媒体への書込み及び読取りを行う。ＤＳの典型的な大きさは４ＢＭである。ホストは３０、ファイルシステムを介してテープドライブに書込み、読み出し要求を送る。通信規格としてＳＣＳＩを用いる場合、ホスト３０は、書き込み／読取りデータのための要求（Ｗｒｉｔｅ、Ｒｅａｄ）をテープドライブ１０に発行する。
【００２３】
テ−プドライブ１０は、バッファ１２と、読み書きチャネル１３と、ヘッド１４と、モ−タ１５と、テ−プ２３を巻きつけるリ−ル２２とを含む。読み書き制御１６（コントローラ）と、ヘッド位置制御システム１７と、モ−タドライバ１８とを含む。モ−タ１５は、２個のモ−タを設けてよい。テ−プドライブ１０は、テープカートリッジ２０を着脱可能に搭載する。
【００２４】
テープカートリッジ２０は、リ−ル２１に巻かれたテ−プ２３を含む。テ−プ２３は、リ−ル２１、２２の回転に伴い、リ−ル２１からリ−ル２２の方向へ、又は、リ−ル２２からリ−ル２１の方向へ、長手方向に移動する。ヘッド１４は、テ−プ２３が長手方向に移動してテ−プ２３に対してデータを書き込んだり、テ−プ２３からデータを読出したりする。モ−タ１５は、リ−ル２１、２２を回転させる。また、テープカートリッジ２０はカートリッジメモリ（ＣＭ：Cartridge Memory）２５と呼ばれる非接触不揮発性メモリを備える。テープカートリッジ２０に搭載されたＣＭ２５は、テープドライブ１０により非接触的に読み書きされる。ＣＭ２５はテープカートリッジの属性（テープディレクトリと呼ばれる）情報を保管する。テープドライブは、読出し及び書込み時に、ＣＭから属性情報を取り出して最適な読み書きができるようにする。
【００２５】
読し書き制御１６はテ−プドライブ１０の全体を制御する。この制御はホスト３０から受取ったコマンドに従って、データのテ−プ２３への書込みやテ−プ２３からの読出しをする。データは、ＤＳ単位で、読み書きチャネル１３を介してヘッド１４によりテ−プ２３に書込まれる。また、この制御はヘッド位置制御システム１７やモ−タドライバ１８を制御し、バックヒッチ動作を行う。
【００２６】
バッファ１２は、テ−プ２３に書き込むべきデータやテ−プ２３から読出されたデータを蓄積する。例えば、バッファ１２は、ＤＲＡＭによって構成される。バッファ１２は、蓄積されたデータはファーストイン・ファーストアウト（ＦＩＦＯ）によりリングバッファとし機能する。ホスト転送速度とドライブ転送速度は多くの場合一致しない。テープドライブは、バッファによりホスト転送速度とドライブ転送速度の差を吸収している。例えば、データの書き込み時には、テープドライブはホストから送られてきたデータをバッファに一旦格納する。その後、テープドライブはバッファに格納されたデータをテープ媒体に書き込んでいる。バッファは数ＭＢ程度のセグメントと呼ばれる領域に分割されている。各セグメントは、テ−プ２３に対する読み書きの単位であるＤＳを格納する。
【００２７】
図３は、テ−プドライブ１０がホスト３０からデータ読出し、書込み要求を受取った場合のデータの転送速度の関係を示す。ホスト転送速度とドライブ転送速度は異なることが示される。テープドライブ１０は、この差を１ＧＢ程度のバッファ１２で吸収することにより、データ転送のパフォーマンスを改善している。
【００２８】
ホストからデータの書込みの際のホスト転送速度とドライブ転送速度の関係に説明する。ホスト３０は、データ書込みの際一様なホスト転送速度Ｈ（１００MB/s）でデータを送る。テープドライブ１０の読み書き制御１６は、バッファ１２からテ−プ２３へドライブ転送速度Ｄ（２００／１８０／１６０／１４０／１２０／１００／８０／６０／４０／２０MB/s）で送る。テープドライブ３０は、ホスト転送速度に一致する(マッチング)するように１０段階の値から最適なドライブ転送速度を選択できる。ホスト転送速度Ｔhは、バッファ１２への一定データ量の増加量の時間を複数サンプリング測定して決定される。ドライブ転送速度Ｔdは、モータ１５により駆動されるテープ２３のスピード（テープスピード）により決定される。
【００２９】
図４は、テープスピードを加速させる本発明の態様を示す。
図４（ａ）は、本発明のテープスピードを所定のタイミングで加速させる態様を示す。
ホスト転送速度がドライブ転送速度より大きい場合において、データの書込み（write）及び読込み（read）の場合の速度変更をバックヒッチなしで行う。テープスピードの変更時点でバッファがデータfull又は空にならないタイミングを選んで、ホストの書込み及び読み出しの待ちを出来るだけ小さくするタイミングを選ぶ。
【００３０】
図４（ｂ）は、本発明がデータ読み書きのデータ単位ごとに所定のタイミングで現在のテープスピードから新たなテープスピードに加速開始させる方法であることを示す。
図４（ｃ）は、本発明の手法で書込まれたテープスピード前後のデータ間隔を示す。
図から明らかなように、バックヒッチ動作をせずに書く本発明の手法を用いると、変速時にデータの間に隙間が発生する。隙間がどの程度発生するかは、変速前後のテープスピード及びその加速所要時間に依存する。一般的に、データの間隔は一定長以下であることがテープメディアにデータを書き込む際のフォーマットの規格値（典型的には４ｍ）で規定されている。この規格値が目標のテープスピードの値を制限する。
【００３１】
図５は、テープテープスピードの変更開始のタイミングの決定のフローチャートを示す。図６の機能部分及び図７（ｂ）・図８（ｂ）の関連で説明する。現在のテープスピードＳ(n)について速度変更のタイミングのフローを示す。
●（５１０）：読み書きの単位データ（ＤＳ）を1つ読み書きするごとに、変速要求を発する。
●（５２０）：測定部３１において現時点でのバッファ１２のデータの一部充填領域量（full領域容量）（書込み時）又はデータ空領域容量［MB］（読み出し時）Ａbfを測定する。また、書込みの際はバッファ１２への流入データの速度、即ちホスト転送速度Ｔh［MB/s］（図７（ｂ）参照）を測定する。読み出しの際はバッファ１２から流入データの速度、即ちホスト転送速度Ｔh［MB/s］（図８（ｂ）参照）を測定する。
●（５３０）：計算部５３においてテープスピードを変更開始のタイミングをデータ量で計算する。テープドライブの読み書き制御１６は、既知パラメータとして、テープ加速度Ａ［ｍ／s2］、現テープスピードＳ(n)、ドライブ転送速度Ｔd「MB/s」、目標テープスピードＳ(n-1)、装置マージンαを確保している。ｆｕｌｌ領域容量（書込み時）又は空領域容量（読み出し時）の閾値Ｂthの計算値を与える。加速所要時間Ｔh＝（Ｓ(n-1)−Ｓ(n)）／Ａ[s]とすると、容量閾値Ｂth（Ｂth＝Ｔh×Ｔ＋α）が計算される。
●（５４０）：（５２０）において測定された現在のＡbfと、（５３０）おいて計算された閾値容量Ｂthを対比する。書込み時において、測定された現在の空領域量Ａbfが計算された流入量である容量閾値Ｂthより小さい場合（Ｙｅｓ）、テープスピード変更を決定する（５２０）。同様に、読み出し時において、測定された現在のｆｕｌｌ領域の容量Ａbfが計算された流出量の容量閾値Ｂthより小さい場合（Ｙｅｓ）、テープスピード変更を決定する（５２０）。測定された空領域量Ａbfが計算された容量閾値Ｂthより大きい場合（Ｎｏ）、バッファでのデータ蓄積状態が変化してＹｅｓになるまで上述の測定（５２０）及び計算（５３０）を繰返す。
●（５５０）：決定部３４は、（５４０）のステップの変更指示でのタイミングに従って現在のテープ速度Ｓ(n)を目標テープスピードＳ(n-1)に到達するまで加速する。目標のテープスピードに至ったらテープへの書込み又は読み出しを始めるように駆動する。
【００３２】
図６は、本発明の読み書き制御１６の機能ブロックを示す。
・測定部３１は、現時点でのバッファ１２のデータのfull領域容量（書込み時）又はデータ空領域容量（読み出し時）Ａbfを測定する。また、その時点でのホスト転送速度Ｔh［MB/s］を測定する。
・計算部３２は、テープスピードを変更開始のタイミングをデータ量で計算する。
full領域（書込み時）又は空領域（読み出し時）の容量閾値Ｂthの計算値を与える。
・決定部３４は、速度変更開始時点での現在の測定しバッファの空領域（書込み時）又はfull領域（読み出し）の容量Ａbfが、計算された流入データ量（書込み）又は流出データ量（読み出し）Ｂthと比較される。
決定部は、比較結果に応じてテープスピードの変更が可能な場合は、モータドライバ１８等に加速指示を出す。また、判定部は読み書きチャネル１３及びヘッド位置制御システムにテープが加速仕始める処理を指示する。一方、決定部は、現在のバッファ１２の状態（空領域（書込み時）又はfull領域（読み出し）の容量Ａbf）が速度変更のタイミングでない場合は、測定部３１、計測部３２において同じ処理が繰り返される。
【００３３】
図７は、書き込み時においてバッファがｆｕｌｌになるのを避けるための速度変更タイミングの決定の概念図を示す。この図を参照しながら、バッファがデータでフルにならないタイミングを選ぶことを説明する
・テープメディアの走行速度の加速度をＡ[m/s2]とする。典型的なドライブでは、１０[m/s2] 程度である。
・テープメディアの走行速度をＳ（ｉ）[m/s]とし、ｉは０以上９以下の１０段階の走行速度を取り得るものとし、ｉの値が小さい走行速度程速いものと定義する。
・ホスト側の転送速度（ホスト転送速度）をＴｈ[MB/s]と呼ぶ。メディア側の転送速度（ドライブ転送速度）をＴｄ[MB/s] と呼ぶことにし、その際のテープメディアの走行速度をＳ（ｎ）[m/s]とする。
【００３４】
図７（ａ）は、現在のテープスピードから目標テープスピードに速度変更する時間的タイミングを示す。読み書き制御１６は速度変更の加速中ではデータを書込めないため、バッファがｆｕｌｌになるのを避けるために速度変更タイミングは決定される。
・ホスト転送速度がドライブ転送速度より大きいため（Ｔｈ＞Ｔｄ）バッファが一杯になりそうな場合を考える。現在のテープスピードＳ（ｎ）から目標のテープスピードＳ（ｎ−１）へＡ[m/s2]で加速させる加速所要時間Ｔは、（Ｓ（ｎ−１）−Ｓ（ｎ））／Ａ[s]で求められる。
【００３５】
図７（ｂ）は、加速所要時間Ｔでのバッファ１２への蓄積するデータ量を示す。
この時間Ｔの間はテープメディアへデータを書き込めない。この時間Ｔにバッファの空領域容量Ａbf＝Ｔｈ×Ｔ＝Ｔｈ×（Ｓ（ｎ−１）−Ｓ（ｎ））／Ａ）[MB]だけデータが流入すると、バッファｆｕｌｌになる。この時間Ｔに、バッファから流出するデータはない。Ｓ（ｎ）からＳ（ｎ−１）に加速する場合であれば、加速するタイミングは、バッファの空領域の容量がＢth＝Ｔｈ×Ｔ[MB]以下になったときである。実際には、Ｔｈがその間一定とは限らないので、加速するタイミングを好適にはもう少し余裕をもって考える。装置マージンαを与えて、もう少し空領域の容量が多い時Ｂth＝Ｔｈ×Ｔ＋α[MB]に加速を開始することを考える。
【００３６】
なお、書き込み時であれば加速中は加速中、図４（ｃ）で説明したように書き飛ばす領域が生じる。ＬＴＯテープドライブ及びエンタープライズ・テープドライブでもデータ間隔が一定の範囲になるように制限している。典型的にはデータセット間隔を規格値（例えば４ｍ）以内としている。上記タイミングの決定において、データ間隔が４ｍに収まるように目標テープスピードＳ(n-1)の選定することも考慮する必要がある。
【００３７】
図８は、読出し時においてバッファが空（ｅｍｐｔｙ）になるのを避けるための速度変更タイミングの決定の概念図を示す。
この図を参照しながら、バッファがデータで空にならないタイミングを選ぶことを説明する。
・テープメディアの走行速度の加速度をＡ[m/s2]とする。典型的なドライブでは、１０[m/s2] 程度である。
・テープメディアの走行速度をＳ（ｉ）[m/s]とし、ｉは０以上９以下の１０段階の走行速度を取り得るものとし、ｉの値が小さい走行速度程速いものと定義する。
・ホスト側の転送速度（ホスト転送速度）をＴｈ[MB/s]と呼ぶ。メディア側の転送速度（ドライブ転送速度）をＴｄ[MB/s]と呼ぶことにし、その際のテープメディアの走行速度をＳ（ｎ）[m/s]とする。
【００３８】
図８（ａ）は、現在のテープスピードから目標テープスピードに速度変更する時間的タイミングを示す。読み書き制御１６は速度変更の加速中ではデータを読み出せないため、バッファが空になるのを避けるために速度変更タイミングは決定される。
・ホスト転送速度がドライブ転送速度より大きいため（Ｔｈ＞Ｔｄ）バッファが空になりそうな場合を考える。現在のテープスピードＳ（ｎ）から目標のテープスピードＳ（ｎ−１）へＡ[m/s2]で加速させる加速所要時間Ｔは、（Ｓ（ｎ−１）−Ｓ（ｎ））／Ａ[s]で求められる。
【００３９】
図８（ｂ）は、加速所要時間Ｔでのバッファ１２からの流出するデータ量を示す。
この時間Ｔの間はテープメディアへデータを読出せない。この時間Ｔにテープドライブのバッファ内のｆｕｌｌ領域容量Ａbf＝Ｔｈ×Ｔ＝Ｔｈ×（Ｓ（ｎ−１）−Ｓ（ｎ））／Ａ）[MB]だけデータが流出するとバッファ空になる。この時間Ｔに、テープからバッファに流入するデータはない。Ｓ（ｎ）からＳ（ｎ−１）に加速する場合であれば、加速するタイミングは、バッファのフル領域の容量がＢth＝Ｔｈ×Ｔ[MB]以下になったときである。実際には、Ｔｈがその間一定とは限らないので、加速するタイミングを好適にはもう少し余裕を持って考える。容量マージンαを与えて、もう少しｆｕｌｌ領域の容量が多い時Ｂth＝Ｔｈ×Ｔ＋α[MB]に加速を開始することを考える。読み出し時であれば加速中に読み飛ばす領域がＥＣＣで回復可能な範囲に収まるかどうかである。
【００４０】
なお、読み出し時において加速中は、実質的にデータを読み出せないため、データの先頭部において読み飛ばし領域が生じる。仮に速度変更後のデータ先頭部について読み飛ばし領域が発生しても後述するＥＣＣ訂正符号により回復できる範囲を読めれば完全内データを再現できる。従って、読み取り時速度変更のタイミングの決定において、読み飛ばす領域がＥＣＣで回復可能な範囲に収まるように目標テープスピードＳ(n-1)の選定することも考慮する必要がある。
【００４１】
図７及び図８で説明された書込み時、及び、読み出し時における変更タイミングの決定を複数段階で分割して行う場合がある。
目標のテープスピードＳ（ｎ−１）に対応するメディア側の転送速度（ドライブ転送速度）Ｔｄがホスト転送速度Ｔｈより大きければ、その後はバッファ内のデータは減っていきデータ空に至らない。一方ドライブ転送速度Ｔｄがホスト転送速度Ｔｈより小さい場合にはＳ（ｎ）からＳ（ｎ−１）、Ｓ（ｎ−２）と２段階に分割して変更できる。更に、更に３段階に分けて更により速いテープ速度Ｓ（ｎ−３）に変更することができる。
【００４２】
例えば、速度変更のタイミングの決定及び目標速度への変更を複数回に分ける必要性があるかどうかは、次の場合がある。読み出し時であれば加減速中に読み飛ばす領域がＥＣＣで回復可能な範囲に収まるかどうかである。書き込み時であれば書き飛ばす領域が４ｍに収まるかどうかで判断する。
【００４３】
読み出し時の速度変更タイミングを、ＥＣＣ回復可能な読み飛ばし範囲内に納めることについて説明する。
テープドライブの読み書き制御は、加速中はデータを読み出せないため加速所要時間Ｔでの読み出しデータ量はＥＣＣ回復可能なデータ範囲内である必要がある。
典型的には、テープドライブの訂正符号の訂正能力は、元のデータの１０８／１２８だけ読めれば、その元のデータを完全に回復できる。データセット（ＤＳ）は、バッファ１２上では２次元データ構造である。１列はデータ１０８バイトに２０バイトのＥＣＣ訂正符号（冗長な情報）を付加して、この２０バイトが冗長な情報として１２８バイトの符号訂正を行う。訂正符号はリードソロモン符号（Ｒｅｅｄ-Ｓｏｌｏｍｏｎ) という方式を採用する。このＥＣＣ訂正符号では、冗長なデータの分だけ回復できる。元のデータの１０８／１２８だけ読めれば、その元のデータを完全に回復できる。変更後の速度でのデータを読む場合、２０／１２８（１５％）までのデータ消失量（読み飛ばし量）ならば完全なデータを回復できる。
【００４４】
本発明の読み出し方法では、加速中は読み出しを行わないので、バックヒッチを伴わずに変速した場合には、データ先頭の一部が欠落してしまう。ＬＴＯ（Ｌｉｎｅａｒ  Ｔａｐｅ  Ｏｐｅｎ）テープドライブやエンタープライズ・テープドライブ（ＩＢＭ  ＴＳ11x0）がテープメディアにデータを書き込む場合、データには上述のエラー訂正コードが付加されている。本発明での読み出しタイミングで後続のデータを読始めて、データ先頭の約１５〜２０％のデータが欠落しても、残りのデータ部分で欠落したデータ部分を回復できる。
【００４５】
欠落可能なデータの長さは、テープメディアの世代により異なるが、読み飛ばし可能（欠落可能）な長さＬを次の式で与えることが出来る。
Ｌ-M＞(S+D/2)×D/A
テープメディアの加速度をＡ、変速前のテープスピードをＳ、エラーへのマージンをＭとすると、読み出し時に変速可能な変速幅Ｄとして上の式を満す必要がある。
●左辺：左辺は、読み飛ばし可能な長さを表す。
例えば１データセット（ＤＳ）の長さが10[cm]で、１ＤＳの２割がＥＣＣであると仮定すると、Ｌは２[cm]となる。
２[cm]あるＥＣＣの半分を読み出し時のＥｒｒｏｒ訂正に利用することにすると、Ｍは1[cm]となる。そのため、加速中に読み飛ばし可能な長さであるＬ−Ｍは１[cm]ということになる。
●右辺：右辺は、加速中にテープが進む距離を表す。
変速前のテープスピードをＳとし、変速幅、つまり、変速後のテープスピードと変速前のテープスピードの差分をＤとする。
加速度が一定であれば加速中の平均テープスピードは（Ｓ＋Ｄ／２）＝（（Ｓ）＋（Ｓ＋Ｄ））／２となる。加速所要時間Ｔは、テープの加速度をＡとすると、Ｄ／Ａとなります。このＤ／ＡはＴ＝（Ｓ（ｎ−１）−Ｓ（ｎ）)／Ａと表現したものと等価である。
よって、加減速中にテープが進む距離は、加速中の平均テープスピード（Ｓ＋Ｄ／２）[m/s]と加速所要時間Ｔ＝Ｄ／Ａ[s]の積として表わすことができる。
●式の意義：加速中にテープが進む距離である右辺が、読み飛ばし可能な長さである左辺より短くなるように、変速可能な変速幅Ｄを定義すればよい。その幅Ｄを与えるように読み出しタイミングを制限すれば、加速中にデータセット（ＤＳ）の一部を読み飛ばしてもＥＣＣで回復できる。上記式を満たす変速幅Ｄ（Ｓ(n-1）−Ｓ（ｎ））を与えるように、図８で説明した変更タイミング及び目標速度Ｓ(n-1)を与えられる。
【００４６】
図９は、従来の書込み方法と本発明での書込み方法でのパフォーマンスを示す。
本発明の効果を測定するために、３２KB、５１２KB、１MB、１００MB,１GBのサイズのファイルを繰り返し書き込んだ場合の転送速度を実際のテープドライブを用いて計測し比較した。このテープドライブは、内部的書込みデータセット単位として４MBのデータセット単位でテープ媒体への書込みを行う。図９は、測定結果をグラフにまとめたものである。横軸がファイルサイズであり、縦軸はそれぞれのサイズのファイルを繰り返し書き込んだ場合の平均転送速度である。本発明を適用することにより、従来のバックヒッチを伴うマッチングに比べて長期的な転送速度は、２０〜５０％向上していることが確認できた。
【００４７】
以上、本発明を実施の形態を用いて説明したが、本発明の範囲は上記実施例には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
【符号の説明】
【００４８】
１０…テ−プドライブ、
１２…バッファ（ＤＲＡＭ）、
１３…読み書きチャネル、
１４…ヘッド、
１５…モ−タ、
１６…読み書き制御（コントロ−ラ）、
１７…ヘッド位置制御システム、
１８…モ−タドライバ、
２０…カ−トリッジ、
２１，２２…リ−ル、
２３…テ−プ
３０…ホスト
【図１】
2014022002.tif 000003
【図２】
2014022002.tif 000004
【図３】
2014022002.tif 000005
【図４】
2014022002.tif 000006
【図５】
2014022002.tif 000007
【図６】
2014022002.tif 000008
【図７】
2014022002.tif 000009
【図８】
2014022002.tif 000010
【図９】
2014022002.tif 000011