(57)【要約】【課題】  同一バスに接続される複数のドライブ装置のバスリコネクトタイミングを効果的に制御するデータ記憶システムを提供する。【解決手段】  データ記憶システム１は、ＳＣＳＩバス１１２を介して転送されるデータを、並行してテープに読み書きするテープドライブ装置２１〜２３と、ＳＣＳＩバスへのデータ転送を制御するホストＰＣ４とを備える。ホストＰＣ４は、各ドライブ装置２１〜２３がバスリコネクトタイミングに達してから、他の全ドライブ装置がデータ転送を完了するまで待機した場合でも書き込み読み出しの停止を回避できるバスリコネクトタイミングを、テープドライブ装置情報（ドライブ装置の台数、バスのデータ転送速度、各ドライブ装置のデータ読み出し速度およびデータ書き込み速度の一方）＝（ｍ、Ｓ、Ｒ）に基づいて算出するデータアクセス制御部４１を備える。【選択図】        図１
2004171541.tif 000002
【特許請求の範囲】
【請求項１】
１つのバスを介して転送されたデータを並行して記録媒体に書き込み、並行して記録媒体から読み出したデータを１つのバスを介して転送する複数のドライブ装置と、前記各ドライブ装置のデータ転送を制御する転送制御装置とを備えたデータ記憶システムであって、
前記転送制御装置は、
前記各ドライブ装置からのバス使用権の要求に対し、所定の規則に基づいて、バス使用権を与えるバス制御手段と、
前記各ドライブ装置が前記バスの使用権を要求するタイミングを示す要求閾値を、前記ドライブ装置の台数と前記バスのデータ転送速度と前記各ドライブ装置のデータ読み出し速度およびデータ書き込み速度の一方とに基づいて算出する要求閾値算出手段と、
算出された前記要求閾値を前記各ドライブ装置に通知する要求閾値通知手段とを備え、
前記各ドライブ装置は、
前記記録媒体と前記バスとの間で転送されるデータを一時格納するバッファと、
前記記録媒体からデータを読み出して前記バッファに格納し、前記バッファからデータを読み出して前記記録媒体に書き込む記録ヘッドと、
前記バッファ内のデータ量が増加または減少して、通知された前記要求閾値に達すると、バス使用権を要求および獲得して、前記バッファと前記バスとの間でデータを転送する制御手段と
を備えることを特徴とするデータ記憶システム。
【請求項２】
前記要求閾値算出手段は、前記各ドライブ装置におけるデータ読み出し時の前記要求閾値である読み出し閾値を、前記ドライブ装置の台数と前記バスのデータ転送速度と前記記録媒体からのデータ読み出し速度とに基づいて、前記使用権を要求してから他の全ドライブ装置が前記バスによるデータ転送を完了するまで待機しても、前記バッファ内のデータがオーバフローしない値に算出する読み出し閾値算出部を備え、
前記要求閾値通知手段は、算出された前記読み出し閾値を、データ読み出し時の前記要求閾値として前記各ドライブ装置に通知し、
前記記録ヘッドは、記録媒体からデータを読み出して前記バッファに格納し、
前記制御手段は、前記バッファ内のデータ量が増加して、通知された前記読み出し閾値に達すると、バス使用権を要求および獲得して、前記バッファから前記バスにデータを送出する
ことを特徴とする請求項１記載のデータ記憶システム。
【請求項３】
前記ドライブ装置の台数をｍ（ｍは自然数）とし、前記記録媒体からのデータ読み出し速度と、前記バッファの記憶容量とは前記各ドライブ装置に共通であるとして、
前記記録媒体からのデータ読み出し速度をＲ、前記バッファから前記バスへのデータ送出速度をＳ、速度比ｋ＝（Ｓ−Ｒ）／Ｒ、（ただし、ｋは自然数）として、ｍＲ＜Ｓであるとき、
前記読み出し閾値算出部は、前記読み出し閾値を、前記バッファ使用率が１−（ｍ−１）／ｋ以下となる範囲内で算出する
ことを特徴とする請求項２記載のデータ記憶システム。
【請求項４】
前記バス制御手段は、前記各ドライブ装置のＩＤ番号によるバス使用権の優先度に従って前記バス使用権を調停し、
前記読み出し閾値算出部は、さらに、前記速度比ｋおよび前記台数ｍがｋ＞（２ｍ−３）を満たすとき、前記読み出し閾値を、前記バッファ使用率が（ｍ−２）／ｋ以上となる範囲内で算出する
ことを特徴とする請求項３記載のデータ記憶システム。
【請求項５】
前記読み出し閾値算出部は、さらに、前記速度比ｋおよび前記台数ｍがｋ＞（２ｍ−３）を満たさないとき、前記読み出し閾値を算出できない旨の警告を発する警告部を備える
ことを特徴とする請求項４記載のデータ記憶システム。
【請求項６】
前記読み出し閾値算出部は、前記読み出し閾値を、前記バッファ使用率の上限である１−（ｍ−１）／ｋと、前記バッファ使用率の下限である（ｍ−２）／ｋとの平均値に定める
ことを特徴とする請求項４記載のデータ記憶システム。
【請求項７】
前記読み出し閾値算出部は、前記読み出し閾値を、前記バッファ使用率の下限である（ｍ−２）／ｋの値に定める
ことを特徴とする請求項４記載のデータ記憶システム。
【請求項８】
前記読み出し閾値算出部は、前記読み出し閾値を、前記バッファ使用率の下限である（ｍ−２）／ｋの値に、所定の値を加算して得られる値に定める
ことを特徴とする請求項４記載のデータ記憶システム。
【請求項９】
前記複数のドライブ装置（台数：ｍ）は、異なる性能のドライブ装置を含み、ｉ（１≦ｉ≦ｍ：ｉは、自然数）番目の前記ドライブ装置において、前記バッファの記憶容量がＭｉ、前記記録媒体からのデータ読み出し速度をＲｉ、前記バッファから前記バスへのデータ送出速度をＳ、前記バッファをフルの状態からエンプティの状態にするために要する時間をＴｉ＝Ｍｉ／（Ｓ−Ｒｉ）として、（Ｒｉの総和）＜Ｓであるとき、
前記読み出し閾値算出部は、各ｉについて、[（ΣＴｉ）−Ｔｉ]・Ｒｉ＜Ｍｉであれば、ｉ番目の前記ドライブ装置に対する前記読み出し閾値を、前記バッファ使用率が１−[（ΣＴｉ）−Ｔｉ]・Ｒｉ／Ｍｉ以下となる範囲内で算出する
ことを特徴とする請求項２記載のデータ記憶システム。
【請求項１０】
前記バス制御手段は、前記各ドライブ装置のＩＤ番号によるバス使用権の優先度に従って前記バス使用権を調停し、
前記各ドライブ装置の前記時間Ｔｉのうち、前記ｉ番目のドライブ装置の時間Ｔｉを除く最小値をＮｉとし、
前記各ｉについて前記Ｔｉと前記Ｎｉと前記Ｒｉとが[（ΣＴｉ）−Ｔｉ]・Ｒｉ＋[（ΣＴｉ）−（Ｎｉ＋Ｔｉ）]・Ｒｉ＜Ｍｉを満たす場合、
前記読み出し閾値算出部は、ｉ番目の前記ドライブ装置に対する前記読み出し閾値を、前記バッファ使用率が[（ΣＴｉ）−（Ｎｉ＋Ｔｉ）]・Ｒｉ／Ｍｉ以上となる範囲内で算出する
ことを特徴とする請求項９記載のデータ記憶システム。
【請求項１１】
前記読み出し閾値算出部は、さらに、前記Ｔｉと前記Ｎｉと前記Ｒｉとが[（ΣＴｉ）−Ｔｉ]・Ｒｉ＋[（ΣＴｉ）−（Ｎｉ＋Ｔｉ）]・Ｒｉ＜Ｍｉを満たさない場合、前記読み出し閾値を算出できない旨の警告を発する警告部を備える
ことを特徴とする請求項１０記載のデータ記憶システム。
【請求項１２】
前記要求閾値算出手段は、前記各ドライブ装置におけるデータ書き込み時の前記要求閾値である書き込み閾値を、前記ドライブ装置の台数と前記バスのデータ転送速度と前記記録媒体へのデータ書き込み速度とに基づいて、前記使用権を要求してから他の全ドライブ装置が前記バスによるデータ転送を完了するまで待機しても、前記バッファ内のデータがアンダフローしない値に算出する書き込み閾値算出部を備え、
前記要求閾値通知手段は、算出された前記書き込み閾値を、データ書き込み時の前記要求閾値として前記各ドライブ装置に通知し、
前記記録ヘッドは、前記バッファからデータを読み出して前記記録媒体に書き込み、
前記制御手段は、前記バッファ内のデータ量が減少して、通知された前記書き込み閾値に達すると、バス使用権を要求および獲得して前記バスから前記バッファにデータを取得する
ことを特徴とする請求項１記載のデータ記憶システム。
【請求項１３】
前記ドライブ装置の台数をｍ（ｍは自然数）とし、前記記録媒体へのデータ書き込み速度と、前記バッファの記憶容量とは前記各ドライブ装置に共通であるとして、
前記記録媒体へのデータ書き込み速度をＲ、前記バスから前記バッファへのデータ取得速度をＳ、速度比ｋ＝（Ｓ−Ｒ）／Ｒ、（ただし、ｋは自然数）として、ｍＲ＜Ｓであるとき、
前記書き込み閾値算出部は、前記書き込み閾値を、前記バッファ使用率が（ｍ−１）／ｋ以上となる範囲内で算出する
ことを特徴とする請求項１２記載のデータ記憶システム。
【請求項１４】
前記バス制御手段は、前記各ドライブ装置のＩＤ番号によるバス使用権の優先度に従って前記バス使用権を調停し、
前記書き込み閾値算出部は、さらに、前記速度比ｋおよび前記台数ｍがｋ＞（２ｍ−３）を満たすとき、前記書き込み閾値を、前記バッファ使用率が１−（ｍ−２）／ｋ以下となる範囲内で算出する
ことを特徴とする請求項１３記載のデータ記憶システム。
【請求項１５】
前記書き込み閾値算出部は、さらに、前記速度比ｋおよび前記台数ｍがｋ＞（２ｍ−３）を満たさないとき、前記書き込み閾値を算出できない旨の警告を発する警告部を備える
ことを特徴とする請求項１４記載のデータ記憶システム。
【請求項１６】
前記書き込み閾値算出部は、前記書き込み閾値を、前記バッファ使用率の上限である１−（ｍ−２）／ｋと、前記バッファ使用率の下限である（ｍ−１）／ｋとの平均値に定める
ことを特徴とする請求項１４記載のデータ記憶システム。
【請求項１７】
前記書き込み閾値算出部は、前記書き込み閾値を、前記バッファ使用率の下限である（ｍ−１）／ｋの値に定める
ことを特徴とする請求項１４記載のデータ記憶システム。
【請求項１８】
前記書き込み閾値算出部は、前記書き込み閾値を、前記バッファ使用率の下限である（ｍ−１）／ｋの値に、所定の値を加算して得られる値に定める
ことを特徴とする請求項１４記載のデータ記憶システム。
【請求項１９】
前記複数のドライブ装置（台数：ｍ）は、異なる性能のドライブ装置を含み、ｉ（１≦ｉ≦ｍ：ｉは、自然数）番目の前記ドライブ装置において、前記バッファの記憶容量をＭｉ、前記記録媒体へのデータ書き込み速度をＲｉ、前記バスから前記バッファへのデータ取得速度をＳ、前記バッファをエンプティの状態からフルの状態にするために要する時間をＴｉ＝Ｍｉ／（Ｓ−Ｒｉ）として、（Ｒｉの総和）＜Ｓであるとき、
前記書き込み閾値算出部は、各ｉについて、[（ΣＴｉ）−Ｔｉ]・Ｒｉ＜Ｍｉであれば、ｉ番目の前記ドライブ装置に対する前記書き込み閾値を、前記バッファ使用率が[（ΣＴｉ）−Ｔｉ]Ｒｉ／Ｍｉ以上となる範囲内で算出する
ことを特徴とする請求項１２記載のデータ記憶システム。
【請求項２０】
前記バス制御手段は、前記各ドライブ装置のＩＤ番号によるバス使用権の優先度に従って前記バス使用権を調停し、
前記各ドライブ装置の前記時間Ｔｉのうち、前記ｉ番目のドライブ装置の時間Ｔｉを除く最小値をＮｉとし、
前記各ｉについて、前記Ｔｉと前記Ｒｉと前記Ｎｉとが、[（ΣＴｉ）−Ｔｉ]・Ｒｉ＋[（ΣＴｉ）−（Ｎｉ＋Ｔｉ）]・Ｒｉ＜Ｍｉを満たす場合、
前記書き込み閾値算出部は、ｉ番目の前記ドライブ装置に対する前記書き込み閾値を、前記バッファ使用率が１−[（ΣＴｉ）−（Ｎｉ＋Ｔｉ）]・Ｒｉ／Ｍｉ以下となる範囲内で算出する
ことを特徴とする請求項１９記載のデータ記憶システム。
【請求項２１】
前記書き込み閾値算出部は、さらに、前記Ｔｉと前記Ｒｉと前記Ｎｉとが、[（ΣＴｉ）−Ｔｉ]・Ｒｉ＋[（ΣＴｉ）−（Ｎｉ＋Ｔｉ）]・Ｒｉ＜Ｍｉを満たさない場合、前記書き込み閾値を算出できない旨の警告を発する警告部を備える
ことを特徴とする請求項２０記載のデータ記憶システム。
【請求項２２】
前記ドライブ装置の台数は、前記バスに接続された前記複数のドライブ装置のうち稼動するドライブ装置の数である
ことを特徴とする請求項１〜２１のいずれか１項に記載のデータ記憶システム。
【請求項２３】
前記複数のドライブ装置は、ライブラリ装置内のＳＣＳＩバスに接続されるドライブ装置である
ことを特徴とする請求項１〜２２のいずれか１項に記載のデータ記憶システム。
【請求項２４】
前記要求閾値算出手段は、前記複数のドライブ装置を備えたライブラリ装置に備えられる
ことを特徴とする請求項１記載のデータ記憶システム。
【請求項２５】
１つのバスを介して転送されたデータを並行して記録媒体に書き込み、並行して記録媒体から読み出したデータを１つのバスを介して転送する複数のドライブ装置のデータ転送を制御する制御する転送制御装置であって、
前記各ドライブ装置からのバス使用権の要求に対し、所定の規則に基づいて、バス使用権を与えるバス制御手段と、
前記各ドライブ装置が前記バスの使用権を要求するタイミングを示す要求閾値を、前記ドライブ装置の台数と前記バスのデータ転送速度と前記各ドライブ装置のデータ読み出し速度およびデータ書き込み速度の一方とに基づいて算出する要求閾値算出手段と、
算出された前記要求閾値を前記各ドライブ装置に通知する要求閾値通知手段と
を備えることを特徴とする転送制御装置。
【請求項２６】
１つのバスを介して転送されたデータを並行して記録媒体に書き込み、並行して記録媒体から読み出したデータを１つのバスを介して転送する複数のドライブ装置のデータ転送を制御する転送制御方法であって、
前記各ドライブ装置からのバス使用権の要求に対し、所定の規則に基づいて、バス使用権を与えるバス制御ステップと、
前記各ドライブ装置が前記バスの使用権を要求するタイミングを示す要求閾値を、前記ドライブ装置の台数と前記バスのデータ転送速度と前記各ドライブ装置のデータ読み出し速度およびデータ書き込み速度の一方とに基づいて算出する要求閾値算出ステップと、
算出された前記要求閾値を前記各ドライブ装置に通知する要求閾値通知ステップと
を含むことを特徴とする転送制御方法。
【請求項２７】
コンピュータを請求項１〜２２のいずれか１項に記載のデータ記憶システムにおける前記要求閾値算出手段として機能させるためのプログラム。
【請求項２８】
請求項２７記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
１本のバス上に複数の記録媒体ドライブ装置が存在するデータ記憶システムに関する。
【背景技術】
【０００２】
従来、大量のデータを記録媒体にバックアップするなどの用途に、光ディスクドライブ、ハードディスクドライブおよびテープドライブなどのドライブ装置が用いられている。図１１は、複数のテープドライブ装置を備えた従来のデータ記憶システムの構成を示すブロック図である。データ記憶システム１０１は、データアクセス制御部１１１、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）バス１１２および同一仕様のテープドライブ装置１２１〜１２３からなる。テープドライブ装置１２１〜１２３は、ＳＣＳＩバス１１２を介してデータアクセス制御部１１１と接続される。データアクセス制御部１１１は、パーソナルコンピュータなどであって、内部にＣＰＵ１１３、メモリ１１４およびバスインタフェース部１１５を備える。
【０００３】
データアクセス制御部１１１は、外部装置であるハードディスク装置１０２と接続されており、ユーザからのリクエストを受けてテープドライブ装置１２１〜１２３およびハードディスク装置１０２にアクセス要求を送り、テープドライブ装置１２１〜１２３とハードディスク装置１０２との間でデータ転送を実行する。ＳＣＳＩバス１１２は、ＳＣＳＩバス１１２に接続されているデータアクセス制御部１１１と外部装置との間で、パラレルにデータを転送するデータ伝送路である。ＣＰＵ１１３は、メモリ１１４に保持されている制御プログラムを実行して、データ記憶システム１０１内のデータ転送を制御する演算処理部である。メモリ１１４は、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）およびハードディスクなどによって実現され、データアクセス制御部１１１の制御プログラムをあらかじめ保持し、データアクセス制御部１１１のデータを一時的に格納するための記憶領域を提供する。バスインタフェース部１１５は、データアクセス制御部１１１とＳＣＳＩバス１１２とのインタフェース機能を実行する処理部である。テープドライブ装置１２１〜１２３は、データアクセス制御部１１１からのアクセス要求を受けて、テープからのデータ読み出しやテープへのデータ書き込みを行う。
【０００４】
テープドライブ装置１２１〜１２３は、それぞれ内部バッファを備え、ＳＣＳＩバス１１２を介して転送されてきたデータを一旦、内部バッファに蓄積した後、蓄積されたデータを内部バッファから読み出してテープに書き込む。また、読み出しの場合には、テープドライブ装置１２１〜１２３は、テープから読み出したデータを一旦、内部バッファに蓄積した後、内部バッファからＳＣＳＩバス１１２に送出する。図１２は、図１１に示した各テープドライブ装置１２１〜１２３における内部バッファの蓄積データ量の時間変化を示すグラフである。図１２（ａ）は、テープドライブ装置１２１でのデータ書き込み時における内部バッファの蓄積データ量の時間変化を示すグラフである。図１２（ｂ）は、テープドライブ装置１２２でのデータ読み出し時における内部バッファの蓄積データ量の時間変化を示すグラフである。図１２（ｃ）は、テープドライブ装置１２３でのデータ書き込み時における内部バッファの蓄積データ量の時間変化を示すグラフである。ここで、テープドライブ装置１２１〜１２３は、それぞれ並行して、テープからの読み出し／書き込みを行っているものとする。図１２（ａ）に示すように、テープドライブ装置１２１では、データ書き込み処理を行っており、ＳＣＳＩバス１１２を介して転送されてきたデータが内部バッファに蓄積される。例えば、時刻ｔ０から時刻ｔ１までの間に、ＳＣＳＩバス１１２を介して転送されてきたデータが内部バッファにフルの状態まで蓄積される。テープドライブ装置１２１では内部バッファがオーバフローしそうになったときは、ＳＣＳＩバス１１２をディスコネクトして、内部バッファ内の蓄積データ量が内部バッファ書き込み閾値（バスリコネクトタイミング）に達するまで、データアクセス制御部１１１から内部バッファへのデータ転送を停止する。
【０００５】
一方、この間にも、テープドライブ装置１２２では、テープから内部バッファにデータが読み出され、読み出されたデータが内部バッファ内に蓄積される。テープドライブ装置１２２は、テープから読み出されたデータが内部バッファに蓄積されバスリコネクトタイミングに達した（時刻ｔ０）にもかかわらず、ＳＣＳＩバス１１２が優先順位の高いテープドライブ装置１２１に使用されているため、ＳＣＳＩバス１１２を使用できない。この結果、テープドライブ装置１２２は、内部バッファがオーバフローしそうになると（時刻ｔ１）、テープ走行を止めてテープからの読み出しを中止する。テープドライブ装置１２１によってＳＣＳＩバス１１２がディスコネクトされる（時刻ｔ２）と、次に使用権が与えられたテープドライブ装置１２２がＳＣＳＩバス１１２にリコネクトし、内部バッファに蓄積されているデータを読み出して、データアクセス制御部１１１に転送を開始する（時刻ｔ３）。
【０００６】
この間にも、例えば、テープドライブ装置１２３では、内部バッファに蓄積されているデータが読み出されており、この時点（時刻ｔ２）で内部バッファのデータ残量が内部バッファ書き込み閾値（バスリコネクトタイミング）に達していたとする。しかし、それにもかかわらず、ＳＣＳＩバス１１２の使用権がテープドライブ装置１２２に渡されるため、テープドライブ装置１２３は、ＳＣＳＩバス１１２を使用することができない。このため、テープドライブ装置１２３において内部バッファがアンダフローしそうになったとき（時刻ｔ４）には、テープドライブ装置１２３は、テープ走行を止めてテープへの書き込みを中止する。
【０００７】
また、この間に、テープドライブ装置１２２では、内部バッファに蓄積されたデータが、ＳＣＳＩバス１１２を介してデータアクセス制御部１１１に転送され、内部バッファ内のデータ残量がエンプティ状態になる（時刻ｔ５）。ＳＣＳＩバス１１２へのデータ読み出しによって内部バッファに蓄積されたデータがアンダフローしそうになったときは、テープドライブ装置１２２は、ＳＣＳＩバス１１２をディスコネクトして、テープから読み出されたデータが内部バッファ読み出し閾値（バスリコネクトタイミング）に達するまで、内部バッファからデータアクセス制御部１１１へのデータ転送を停止する。これにより、テープドライブ装置１２３は、ＳＣＳＩバス１１２の使用権を得ることができ、ＳＣＳＩバス１１２にリコネクトして、データアクセス制御部１１１から内部バッファへのデータ転送を開始することができる（時刻ｔ６）。
【０００８】
しかし、テープドライブ装置では、テープ走行を停止した場合はテープ位置のリポジショニングが必要となるため、次に実際に読み書きを開始するまでに秒単位の時間のロスを生じてしまう上、頻繁にテープを停止することがデータ転送性能の低下や機構部品のダメージ（磨耗等）の原因になるという問題がある。また、上記テープドライブ装置１２１〜１２３の代わりに、複数のディスクドライブ装置を用いた場合、内部バッファの状態に応じて、データの書き込みが停止されると、（１）次にデータの書き込みを開始したときのヘッドの位置によって、ヘッドがトラック上の次の書き込み位置に来るまで回転待ちをしなければならないという問題がある。この問題は、アクセス時間の短いハードディスクドライブ装置よりも、ディスクの回転速度が遅い光ディスクドライブ装置を用いた場合に顕著となる。（２）さらに、ＣＤ−Ｒ、ＤＶＤ−Ｒなどのディスクドライブ装置では、書き込みを再開するときに、前に書き込まれたデータと間隔を空けてマーカを作成する必要があり、次に書き込まれるデータが直前に書き込まれたデータと連続して書き込まれないという問題がある。これにより、ディスク全体としてデータがトラック上の飛び飛びの位置に書き込まれてしまい、無駄な空き容量を生じてしまう。この空き容量は、毎回、数十Ｍバイト〜１００Ｍバイトの単位で発生するので、頻繁にデータの書き込みが停止されると、ディスク全体およびデータ記憶システム全体では無視できない量になってしまう。
【０００９】
そこで、従来のテープドライブ装置においては、データアクセス制御部１１１と内部バッファ間のデータ転送レートを転送量／転送時間により随時計算したり、内部バッファの使用量を常時監視したりすることによって、ＳＣＳＩバス１１２にリコネクトできないことによる転送レートの低下や、内部バッファが頻繁にオーバフローまたはアンダフローを起こしそうになっている状態を検出し、テープ側の走行速度を減速させたり、バスリコネクトタイミングを早めたりすることによって内部バッファのオーバフローやアンダフローの発生を動的に抑制し、テープ走行を可能な限り止めないように制御している（例えば、特許文献１参照）。
【特許文献１】特開平０５−３０７４４４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、データアクセス制御部１１１と内部バッファ間のデータ転送レートを随時計算したり、内部バッファの使用量を常時監視しながら動的にテープ側の走行速度を制御したり、バスリコネクトタイミングを変更したりする従来の方法では、ドライブ装置にデータ転送レート計算機能や内部バッファ監視機能、テープ走行速度制御機能、動的バスリコネクトタイミング変更機能等を追加する必要がある。このため、テープドライブ装置の構成が複雑になり、データ記憶システムがコスト高になってしまうという問題がある。
【００１１】
また、従来のように動的にバスリコネクトタイミングを制御する手法では、その時点でのデータ転送レートに基づいてリコネクト制御を行うだけであるので、同一バスに繋がったドライブ装置の数までは考慮されていないため、同一バス上に複数のドライブ装置が存在する状況では必ずしも有効でないという問題点がある。
本発明は上記問題点を考慮してなされたものであり、同一バス上に複数のドライブ装置が存在する状況で各ドライブ装置の内部バッファにおけるアンダフローおよびオーバフローを静的に抑制する簡単な構成のデータ記憶システムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、本発明のデータ記憶システムは、１つのバスを介して転送されたデータを並行して記録媒体に書き込み、並行して記録媒体から読み出したデータを１つのバスを介して転送する複数のドライブ装置と、前記各ドライブ装置のデータ転送を制御する転送制御装置とを備えたデータ記憶システムであって、前記転送制御装置は、前記各ドライブ装置からのバス使用権の要求に対し、所定の規則に基づいて、バス使用権を与えるバス制御手段と、前記各ドライブ装置が前記バスの使用権を要求するタイミングを示す要求閾値を、前記ドライブ装置の台数と前記バスのデータ転送速度と前記各ドライブ装置のデータ読み出し速度およびデータ書き込み速度の一方とに基づいて算出する要求閾値算出手段と、算出された前記要求閾値を前記各ドライブ装置に通知する要求閾値通知手段とを備え、前記各ドライブ装置は、前記記録媒体と前記バスとの間で転送されるデータを一時格納するバッファと、前記記録媒体からデータを読み出して前記バッファに格納し、前記バッファからデータを読み出して前記記録媒体に書き込む記録ヘッドと、前記バッファ内のデータ量が増加または減少して、通知された前記要求閾値に達すると、バス使用権を要求および獲得して、前記バッファと前記バスとの間でデータを転送する制御手段とを備えることを特徴とする。
【００１３】
また、本発明のデータ記憶システムにおいて、前記要求閾値算出手段は、前記各ドライブ装置におけるデータ読み出し時の前記要求閾値である読み出し閾値を、前記ドライブ装置の台数と前記バスのデータ転送速度と前記記録媒体からのデータ読み出し速度とに基づいて、前記使用権を要求してから他の全ドライブ装置が前記バスによるデータ転送を完了するまで待機しても、前記バッファ内のデータがオーバフローしない値に算出する読み出し閾値算出部を備え、前記要求閾値通知手段は、算出された前記読み出し閾値を、データ読み出し時の前記要求閾値として前記各ドライブ装置に通知し、前記記録ヘッドは、記録媒体からデータを読み出して前記バッファに格納し、前記制御手段は、前記バッファ内のデータ量が増加して、通知された前記読み出し閾値に達すると、バス使用権を要求および獲得して、前記バッファから前記バスにデータを送出するとしてもよい。
【００１４】
また、本発明のデータ記憶システムにおいて、前記ドライブ装置の台数をｍ（ｍは自然数）とし、前記記録媒体からのデータ読み出し速度と、前記バッファの記憶容量とは前記各ドライブ装置に共通であるとして、前記記録媒体からのデータ読み出し速度をＲ、前記バッファから前記バスへのデータ送出速度をＳ、速度比ｋ＝（Ｓ−Ｒ）／Ｒ、（ただし、ｋは自然数）として、ｍＲ＜Ｓであるとき、前記読み出し閾値算出部は、前記読み出し閾値を、前記バッファ使用率が１−（ｍ−１）／ｋ以下となる範囲内で算出するとしてもよい。
【００１５】
また、本発明のデータ記憶システムにおいて、前記バス制御手段は、前記各ドライブ装置のＩＤ番号によるバス使用権の優先度に従って前記バス使用権を調停し、前記読み出し閾値算出部は、さらに、前記速度比ｋおよび前記台数ｍがｋ＞（２ｍ−３）を満たすとき、前記読み出し閾値を、前記バッファ使用率が（ｍ−２）／ｋ以上となる範囲内で算出するとしてもよい。
【００１６】
また、本発明のデータ記憶システムにおいて、前記複数のドライブ装置（台数：ｍ）は、異なる性能のドライブ装置を含み、ｉ（１≦ｉ≦ｍ：ｉは、自然数）番目の前記ドライブ装置において、前記バッファの記憶容量がＭｉ、前記記録媒体からのデータ読み出し速度をＲｉ、前記バッファから前記バスへのデータ送出速度をＳ、前記バッファをフルの状態からエンプティの状態にするために要する時間をＴｉ＝Ｍｉ／（Ｓ−Ｒｉ）として、（Ｒｉの総和）＜Ｓであるとき、前記読み出し閾値算出部は、各ｉについて、[（ΣＴｉ）−Ｔｉ]・Ｒｉ＜Ｍｉであれば、ｉ番目の前記ドライブ装置に対する前記読み出し閾値を、前記バッファ使用率が１−[（ΣＴｉ）−Ｔｉ]・Ｒｉ／Ｍｉ以下となる範囲内で算出するとしてもよい。
【００１７】
また、本発明のデータ記憶システムにおいて、前記バス制御手段は、前記各ドライブ装置のＩＤ番号によるバス使用権の優先度に従って前記バス使用権を調停し、前記各ドライブ装置の前記時間Ｔｉのうち、前記ｉ番目のドライブ装置の時間Ｔｉを除く最小値をＮｉとし、前記各ｉについて前記Ｔｉと前記Ｎｉと前記Ｒｉとが[（ΣＴｉ）−Ｔｉ]・Ｒｉ＋[（ΣＴｉ）−（Ｎｉ＋Ｔｉ）]・Ｒｉ＜Ｍｉを満たす場合、前記読み出し閾値算出部は、ｉ番目の前記ドライブ装置に対する前記読み出し閾値を、前記バッファ使用率が[（ΣＴｉ）−（Ｎｉ＋Ｔｉ）]・Ｒｉ／Ｍｉ以上となる範囲内で算出するとしてもよい。
【００１８】
さらに、本発明のデータ記憶システムは、前記要求閾値算出手段は、前記各ドライブ装置におけるデータ書き込み時の前記要求閾値である書き込み閾値を、前記ドライブ装置の台数と前記バスのデータ転送速度と前記記録媒体へのデータ書き込み速度とに基づいて、前記使用権を要求してから他の全ドライブ装置が前記バスによるデータ転送を完了するまで待機しても、前記バッファ内のデータがアンダフローしない値に算出する書き込み閾値算出部を備え、前記要求閾値通知手段は、算出された前記書き込み閾値を、データ書き込み時の前記要求閾値として前記各ドライブ装置に通知し、前記記録ヘッドは、前記バッファからデータを読み出して前記記録媒体に書き込み、前記制御手段は、前記バッファ内のデータ量が減少して、通知された前記書き込み閾値に達すると、バス使用権を要求および獲得して前記バスから前記バッファにデータを取得するとしてもよい。
【００１９】
また、本発明のデータ記憶システムにおいて、前記ドライブ装置の台数をｍ（ｍは自然数）とし、前記記録媒体へのデータ書き込み速度と、前記バッファの記憶容量とは前記各ドライブ装置に共通であるとして、前記記録媒体へのデータ書き込み速度をＲ、前記バスから前記バッファへのデータ取得速度をＳ、速度比ｋ＝（Ｓ−Ｒ）／Ｒ、（ただし、ｋは自然数）として、ｍＲ＜Ｓであるとき、前記書き込み閾値算出部は、前記書き込み閾値を、前記バッファ使用率が（ｍ−１）／ｋ以上となる範囲内で算出する）としてもよい。
【００２０】
また、本発明のデータ記憶システムにおいて、前記バス制御手段は、前記各ドライブ装置のＩＤ番号によるバス使用権の優先度に従って前記バス使用権を調停し、前記書き込み閾値算出部は、さらに、前記速度比ｋおよび前記台数ｍがｋ＞（２ｍ−３）を満たすとき、前記書き込み閾値を、前記バッファ使用率が１−（ｍ−２）／ｋ以下となる範囲内で算出するとしてもよい。
【００２１】
また、本発明のデータ記憶システムにおいて、前記複数のドライブ装置（台数：ｍ）は、異なる性能のドライブ装置を含み、ｉ（１≦ｉ≦ｍ：ｉは、自然数）番目の前記ドライブ装置において、前記バッファの記憶容量をＭｉ、前記記録媒体へのデータ書き込み速度をＲｉ、前記バスから前記バッファへのデータ取得速度をＳ、前記バッファをエンプティの状態からフルの状態にするために要する時間をＴｉ＝Ｍｉ／（Ｓ−Ｒｉ）として、（Ｒｉの総和）＜Ｓであるとき、前記書き込み閾値算出部は、各ｉについて、[（ΣＴｉ）−Ｔｉ]・Ｒｉ＜Ｍｉであれば、ｉ番目の前記ドライブ装置に対する前記書き込み閾値を、前記バッファ使用率が[（ΣＴｉ）−Ｔｉ]Ｒｉ／Ｍｉ以上となる範囲内で算出するとしてもよい。
【００２２】
また、本発明のデータ記憶システムにおいて、前記バス制御手段は、前記各ドライブ装置のＩＤ番号によるバス使用権の優先度に従って前記バス使用権を調停し、前記各ドライブ装置の前記時間Ｔｉのうち、前記ｉ番目のドライブ装置の時間Ｔｉを除く最小値をＮｉとし、前記各ｉについて、前記Ｔｉと前記Ｒｉと前記Ｎｉとが、[（ΣＴｉ）−Ｔｉ]・Ｒｉ＋[（ΣＴｉ）−（Ｎｉ＋Ｔｉ）]・Ｒｉ＜Ｍｉを満たす場合、前記書き込み閾値算出部は、ｉ番目の前記ドライブ装置に対する前記書き込み閾値を、前記バッファ使用率が１−[（ΣＴｉ）−（Ｎｉ＋Ｔｉ）]・Ｒｉ／Ｍｉ以下となる範囲内で算出するとしてもよい。
【００２３】
なお、本発明は、このようなデータ記憶システムとして実現することができるだけでなく、これらのデータ記憶システムを構成するホストＰＣ、テープライブラリ装置、ディスクライブラリ装置、テープドライブ装置、ディスクドライブ装置及びデータアクセス制御部などの単体として実現したり、これらのデータ記憶システムにおける特徴的な動作をステップとするデータアクセス制御方法として実現したり、その特徴的な動作をパーソナルコンピュータ等の汎用のコンピュータに実行させて機能させるプログラムとして実現することもできる。そして、そのプログラムは、ＣＤ−ＲＯＭ等のコンピュータ読み取り可能な記録媒体やインターネット等の伝送媒体を介して頒布することができるのは言うまでもない。
【発明の効果】
【００２４】
これにより、要求閾値算出手段は、各ドライブ装置がバスの使用権を要求するタイミングを示す要求閾値を、同一バス上のドライブ装置の台数まで考慮に入れて算出するので、同一バス上に複数のドライブ装置が存在する状況においても、各ドライブ装置に対して、より均等にバスの使用権を割り当てることができるという効果がある。
これにより、読み出し閾値算出部は、ドライブ装置の台数と、前記バスのデータ転送速度と前記記録ヘッドのデータ読み出し速度との関係に応じて、各ドライブ装置が均等にバスを使用してバッファ内のデータをバスに送出できるよう、読み出し閾値を算出することができるので、各ドライブ装置においてバッファ内のデータがオーバフローする前にバッファ内のデータをバスに送出することができるという効果がある。
【００２５】
これにより、同一性能のドライブ装置のみが複数存在する状況下で、各ドライブ装置がバスの使用権を要求した後、さらに、他の全部のドライブ装置がバスの使用を完了するまで待機した場合においても、バッファ内のデータがオーバフローする前にバッファ内のデータをバスに送出することができるという効果がある。
これにより、記録媒体からのデータ読み出しの際に、各ドライブ装置は、バスを使用した後、他のすべてのドライブ装置が前記バスの使用権を獲得しうる時間、バス使用権の要求を待機するので、優先順位の高い特定のドライブ装置がバスの使用権を独占することなく、各ドライブ装置が均等にバスの使用権を獲得できる可能性が高くなる。従って、前記各ドライブ装置のバッファにおいてオーバフローが発生する前にバス使用権を獲得できる可能性が高くなるという効果がある。また、各ドライブ装置が頻繁にバス使用権の要求を発することを防止することができるので、前記バスのデータ転送効率の低下を抑制することができるという効果がある。
【００２６】
これにより、内部性能が異なるドライブ装置が複数存在する状況においても、前記ドライブ装置のバッファにおいてオーバフローが発生する前にバス使用権を獲得できる可能性が高くなるという効果がある。
これにより、内部性能が異なるドライブ装置が複数存在する状況においても、特定のドライブ装置がバスの使用権を独占することなく、各ドライブ装置が均等にバスの使用権を獲得できる可能性が高くなる。
【００２７】
これにより、書き込み閾値算出部は、ドライブ装置の台数と、前記バスのデータ転送速度と前記記録ヘッドのデータ書き込み速度との関係に応じて、各ドライブ装置が均等にバスを使用してバスからバッファにデータを取得できるよう、書き込み閾値を算出することができるので、各ドライブ装置においてバッファ内のデータがアンダフローする前にバスからバッファにデータを取得することができるという効果がある。
【００２８】
これにより、書き込みの場合、同一性能のドライブ装置のみが複数存在する状況下で、各ドライブ装置がバスの使用権を要求した後、さらに、他の全部のドライブ装置がバスの使用を完了するまで待機した場合においても、前記各ドライブ装置のバッファにおいてアンダフローが発生する前にバス使用権を獲得できる可能性が高くなるという効果がある。
これにより、書き込みの場合、各ドライブ装置は、バスを使用した後、他のすべてのドライブ装置が前記バスの使用権を獲得しうる時間、バス使用権の要求を待機するので、優先順位の高い特定のドライブ装置がバスの使用権を独占することなく、各ドライブ装置が均等にバスの使用権を獲得できる可能性が高くなる。従って、前記各ドライブ装置のバッファにおいてアンダフローが発生する前にバス使用権を獲得できる可能性が高くなるという効果がある。また、各ドライブ装置が頻繁にバス使用権の要求を発することを防止することができるので、前記バスのデータ転送効率の低下を抑制することができるという効果がある。
【００２９】
これにより、書き込みの場合、内部性能が異なるドライブ装置が複数存在する状況においても、バッファにおいてアンダフローが発生する前に、ドライブ装置がバス使用権を獲得できる可能性が高くなるという効果がある。
これにより、書き込みの場合、内部性能が異なるドライブ装置が複数存在する状況においても、優先順位の高い特定のドライブ装置がバスの使用権を独占することなく、各ドライブ装置が均等にバスの使用権を獲得できる可能性が高くなる。また、優先順位の高いドライブ装置が頻繁にバス使用権の要求をすることによるバスのデータ転送効率の低下を抑制することができるという効果がある。
【発明を実施するための最良の形態】
【００３０】
以下、図１から図１０を参照して本発明の実施の形態を説明する。
（実施の形態１）
図１は、本発明の実施の形態１におけるデータ記憶システム１の構成を示すブロック図である。なお、同図において従来のデータ記憶システム１０１と同様の構成要素については、同一の参照符号を付し、説明を省略する。本実施の形態１のデータ記憶システム１は、１つのＳＣＳＩバスに接続される複数のテープドライブ装置におけるバスリコネクトタイミングを、テープドライブ装置の台数、テープドライブ装置と内部バッファとの間のデータ転送速度、および内部バッファとＳＣＳＩバスとの間のデータ転送速度に応じてスタティックに制御し、各テープドライブ装置におけるテープ走行の停止を抑制するデータ記憶システムであって、ホストＰＣ（Personal Computer）４、ＳＣＳＩバス１１２およびテープライブラリ装置３を備える。データ記憶システム１は、ＬＡＮ（Local Area Network）２を介して、ハードディスクなどの記憶部を備えた他のＰＣ５〜７と接続されている。
【００３１】
テープライブラリ装置３は、同一仕様の３台（ｍ＝３）のテープドライブ装置２１〜２３のほか、複数のテープメディアを格納するマガジン２４およびテープメディアをマガジンから取り出してテープドライブ装置２１〜２３の１つに移動させるメディア移動機構部２５を備える。テープドライブ装置２１〜２３およびメディア移動機構部２５は、ＳＣＳＩバス１１２を介してホストＰＣ４と接続される。また、テープドライブ装置２１〜２３は、ホストＰＣ４からアクセス要求を受けてテープからのデータ読み出しや、テープへのデータ書き込みを行う装置であって、それぞれ内部に、制御部３１、ヘッド３２および内部バッファ３３を備える。各制御部３１は、データ記憶システム１の起動時にホストＰＣ４において計算された、バスリコネクトタイミングを示すデータを、ホストＰＣ４から受信して保持し、そのタイミングでバスリコネクトを行うようそれぞれの内部バッファ３３を制御し、ヘッド３２のデータの書き込み／読み出し動作を制御する。ヘッド３２は、内部バッファ３３から読み出されたデータをテープメディアに書き込み、また、テープメディアに書き込まれているデータをテープメディアから読み出して内部バッファ３３に出力する。内部バッファ３３は、ＳＣＳＩバス１１２を介してホストＰＣ４とテープとの間で転送されるデータを蓄積し、テープドライブ装置２１〜２３における磁気テープへの書き込み／読み出し速度と、ＳＣＳＩバス１１２のデータ転送速度との速度差を緩衝する。
【００３２】
ＳＣＳＩバス１１２は、８０メガバイト／秒の転送性能（Ｓ＝８０）を有する。また、ＳＣＳＩバス１１２の使用順位は、ＳＣＳＩ  ＩＤ番号によるバス調停（アービトレーション）により、ホストＰＣ４、テープドライブ装置２１、テープドライブ装置２２、テープドライブ装置２３、メディア移動機構部２５の順にＳＣＳＩバス使用権獲得優先度が高くなるように設定されている。
【００３３】
ホストＰＣ４は、ＳＣＳＩバスに接続されている各テープドライブ装置が、均等にＳＣＳＩバスを使用してテープ走行の停止頻度を低減することができるよう、データ記憶システム１の起動時に各テープドライブ装置のバスリコネクトタイミングを計算し、計算の結果、得られたバスリコネクトタイミングを各テープドライブ装置に出力するＰＣであって、データアクセス制御部４１と、メモリ４２と、バスインタフェース部１１５とを備える。ホストＰＣ４は、外部のＰＣ５〜７からデータのバックアップを要求するリクエストを受けて、所定のテープドライブ装置２１〜２３にアクセス要求やメディア移動機構部２５に対するテープメディア移動要求を送り、ＬＡＮ２を介して外部ＰＣ５〜７の記憶装置とテープライブラリ装置３の間でデータ転送を実行する。データアクセス制御部４１は、ＳＣＳＩバス１１２に接続されているホストＰＣ４およびテープライブラリ装置３の各部に対し、バス調停を行うとともに、ＳＣＳＩバス１１２に接続されているテープドライブ装置２１〜２３の台数と、ＳＣＳＩバス１１２のデータ転送速度と、テープドライブ装置２１〜２３の書き込み／読み出し速度とに応じて、各テープドライブ装置２１〜２３のバスリコネクトタイミングを計算する処理部である。メモリ４２は、従来のメモリ１１３と同様、ホストＰＣ４の制御プログラムを保持し、一時的にデータを格納するための記憶領域を有する。また、データアクセス制御部４１がバスリコネクトタイミングの計算処理をプログラムによって実行する場合には、その計算プログラムをあらかじめ保持する。バスインタフェース部４３は、従来のバスインタフェース部１１５と同様、ＳＣＳＩバス１１２とのインタフェース機能を備え、ホストＰＣ４とテープライブラリ装置３とのデータ転送を実行する。
【００３４】
以下では、以上のように構成されたデータ記憶システム１の動作について詳細に説明する。
上記のようなデータ記憶システム１において、テープドライブ装置２１〜２３は、それぞれ並行して、テープへのデータの書き込み／読み出しを行い、ホストＰＣ４と内部バッファ３３との間はＳＣＳＩバス１１２を介して例えば、８０メガバイト／秒（Ｓ＝８０）、内部バッファ３３とテープとの間は１３メガバイト／秒（Ｒ＝１３）の転送レートでデータ転送を行うものとする。
【００３５】
また、前提としてテープドライブ装置２１〜２３は、従来と同様、データ読み出し時に内部バッファがアンダフローしそうになったときは、バスをディスコネクトしてデータが内部バッファ読み出し閾値（バスリコネクトタイミング）に達するまで内部バッファ３３からホストＰＣ４へのデータ転送を停止する。バスリコネクトタイミングに達してもＳＣＳＩバス１１２が使用できず内部バッファ３３がオーバフローしそうになったときは、テープ走行を止めてテープからの読み出しを中止する。また、テープドライブ装置２１〜２３は、データ書き込み時に内部バッファ３３がオーバフローしそうになったときは、ＳＣＳＩバス１１２をディスコネクトして内部バッファ書き込み閾値（バスリコネクトタイミング）に達するまでホストＰＣ４から内部バッファ３３へのデータ転送を停止する。バスリコネクトタイミングに達してもＳＣＳＩバス１１２が使用できず内部バッファ３３がアンダフローしそうになったときは、テープ走行を止めてテープへの書き込みを中止する。
【００３６】
ただし、テープドライブ装置２１〜２３におけるこれらの内部バッファ閾値は可変であり、ホストＰＣ４からテープドライブ装置２１〜２３へ内部バッファ閾値変更要求（モードセレクトコマンド）を送ることにより、内部バッファ書き込み閾値および内部バッファ読み出し閾値を変更することができる。
図２は、図１に示したデータアクセス制御部４１によるテープドライブ装置２１〜２３のバスリコネクトタイミング設定動作を示すフローチャートである。データアクセス制御部４１は、テープドライブ装置２１〜２３へのアクセス要求の処理を開始する前に、ＳＣＳＩバス１１２に接続されているテープドライブ装置２１〜２３の台数を検出するとともに、テープドライブ装置２１〜２３のパラメータ値ＳおよびＲから整数ｋ＝（Ｓ−Ｒ）／Ｒを計算する。まず、
（第１条件）      ｍＲ＜Ｓ
を満足するか否かをチェックする（Ｓ２０１）。
【００３７】
すなわち、ＳＣＳＩバス１１２のデータ転送速度Ｓが各テープドライブ装置２１〜２３のデータ読み出し速度Ｒのｍ倍より大であること、さらに言えば、テープからのデータ読み出しにより、１つの内部バッファがエンプティの状態からフルの状態（またはその逆）になる間に、ＳＣＳＩバス１１２のデータ転送により、ｍ台のテープドライブ装置の内部バッファをすべてフルの状態からエンプティの状態（またはその逆）にすることができることを条件として示している。これは、ＳＣＳＩバス１１２の使用権が優先順位に従って、概ね、順次に次のテープドライブ装置に渡されるための条件である。整数ｋおよび台数ｍが第１条件を満足する場合、データアクセス制御部４１は、さらに、整数ｋが（ｍ−１）＋（ｍ−２）＝２ｍ−３より大きいか否か、すなわち、整数ｋおよびテープドライブ装置２１〜２３の台数ｍが、
（第２条件）      ２ｍ−３＜ｋ
を満足するか否かをチェックする（Ｓ２０２）。
【００３８】
この第２条件は、各テープドライブ装置２１〜２３において、バスリコネクト要求を発するタイミングである内部バッファのデータ残量の上限と下限とが逆転しないための条件を示している。従って、第２条件が満足されない場合には、以下のような制御を行うことができない。
以下では、本実施の形態のデータ記憶システム１におけるデータアクセス制御方法の考え方について説明する。図３（ａ）は、１つのテープドライブ装置の内部バッファ３３における内部バッファ書き込み閾値の上限と下限とを内部バッファ使用率Ｕｗで示す図である。内部バッファ使用率Ｕｗは、内部バッファの容量を「１」として、内部バッファに蓄積されているデータの残量を割合で示している。図３（ａ）に示すように、テープドライブ装置のテープ書き込み時において、内部バッファ３３には、ＳＣＳＩバス１１２からデータ転送速度Ｓでデータが取り込まれる。内部バッファ３３に取り込まれたデータは、テープへの書き込み速度Ｒで読み出される。テープ書き込み時の内部バッファ使用率Ｕｗの上限は、バス優先順位の最も高いテープドライブ装置２１がバスリコネクト要求を発する上限（すなわち、最も早いタイミング）で与えられる。具体的には、
（１）テープドライブ装置２１は、ＳＣＳＩバス１１２を使用して、内部バッファがフルの状態になると、ＳＣＳＩバス１１２を解放する。
（２）ＳＣＳＩバス１１２が解放されると、テープドライブ装置２１より優先順位の低いテープドライブ装置（テープドライブ装置２２およびテープドライブ装置２３）が順次、優先順位に従ってバス使用権を獲得してＳＣＳＩバス１１２を使用する。
（３）このようにして、優先順位が最も低いテープドライブ装置２３がバス使用権を獲得した時点、すなわち、テープドライブ装置２１が自分以外のすべてのテープドライブ装置がバス使用権を獲得するまで待機した時点でのテープドライブ装置２１の内部バッファ使用率を内部バッファ使用率Ｕｗの上限とする。もし、最もバス優先順位が高いテープドライブ装置２１が、この上限より早いタイミングでバスリコネクト要求を発したとすると、バス優先順位の低いテープドライブ装置（例えば、テープドライブ装置２３）では、内部バッファ書き込み閾値に達してバスリコネクト要求を発したとしても、バス使用権を獲得することができず、内部バッファがエンプティ状態になってしまう可能性がある。
【００３９】
また、内部バッファ使用率Ｕｗの下限は、バス優先順位が最も低いテープドライブ装置２３が、バスリコネクト要求を発する下限（すなわち、最も遅いタイミング）で与えられる。具体的には、テープドライブ装置２３の内部バッファの中に、テープドライブ装置２３より優先順位の高いテープドライブ装置（テープドライブ装置２１およびテープドライブ装置２２）すべてがＳＣＳＩバス１１２の使用を完了するまで、ＳＣＳＩバス１１２からのデータの補給なしにテープへのデータの書き込みを続行しても、内部バッファ３３がエンプティの状態にならないだけのデータ量を確保している時点での内部バッファ使用率である。最もバス優先順位が低いテープドライブ装置２３が、この下限より遅いタイミングでバスリコネクト要求を発したとすると、他のテープドライブ装置（テープドライブ装置２１およびテープドライブ装置２２）がＳＣＳＩバス１１２を使用している間に、内部バッファ３３がエンプティ状態になってしまう可能性がある。
【００４０】
テープ読み出しの場合は、テープ書き込みの場合と上限と下限とが逆転する。図３（ｂ）は、１つのテープドライブ装置の内部バッファ３３における内部バッファ読み出し閾値の上限と下限とを内部バッファ使用率Ｕｒで示す図である。内部バッファ使用率Ｕｒは、内部バッファの容量を「１」として、内部バッファに蓄積されているデータの残量を割合で示している。図３（ｂ）に示すように、テープドライブ装置のテープ読み出し時において、内部バッファ３３には、読み出し速度Ｒでテープから読み出されたデータが格納される。また、内部バッファ３３に格納されたデータは、ＳＣＳＩバス１１２からデータ転送速度Ｓで外部に送出される。この内部バッファ読み出し閾値の下限は、バス優先順位の最も高いテープドライブ装置２１がバスリコネクト要求を発する下限（すなわち、最も早いタイミング）で与えられる。テープドライブ装置２１がバスを使用して内部バッファがエンプティになった状態で、ＳＣＳＩバス１１２を解放し、テープのデータ読み出しを開始した場合に、テープドライブ装置２１より優先順位の低いテープドライブ装置（テープドライブ装置２２およびテープドライブ装置２３）がすべてバス使用権を獲得するまで待機した時点での内部バッファ使用率である。もし、最もバス優先順位が高いテープドライブ装置２１が、この下限より早いタイミングでバスリコネクト要求を発したとすると、バス優先順位の低いテープドライブ装置（例えば、テープドライブ装置２３）では、内部バッファ読み出し閾値に達してバスリコネクト要求を発したとしても、バス使用権を獲得することができず、内部バッファがフル状態になってしまう可能性がある。
【００４１】
また、内部バッファ読み出し閾値の上限は、バス優先順位が最も低いテープドライブ装置２３が、バスリコネクト要求を発する上限（すなわち、最も遅いタイミング）で与えられる。具体的には、テープドライブ装置２３の内部バッファの中に、テープドライブ装置２３より優先順位の高いテープドライブ装置（テープドライブ装置２１およびテープドライブ装置２２）すべてがＳＣＳＩバス１１２の使用を完了するまで、ＳＣＳＩバス１１２へのデータの送出なしにテープからデータの読み出しを続行しても、内部バッファ３３がフルの状態にならないだけの空き容量を確保している時点での内部バッファ使用率である。最もバス優先順位が低いテープドライブ装置２３が、この上限より遅いタイミングでバスリコネクト要求を発したとすると、他のテープドライブ装置（テープドライブ装置２１およびテープドライブ装置２２）がバスを使用している間に、内部バッファがフル状態になってしまう可能性がある。
【００４２】
このように、各テープドライブ装置において、上記の上限と下限との間のタイミングでバスリコネクト要求を発することにすれば、すべてのテープドライブ装置２１〜２３に偏りなくバス使用権を廻すことができ、内部バッファがエンプティの状態またはフルの状態になることによるテープ書き込みの停止を抑制することができる。
【００４３】
以下では、上記のバスアクセス制御方法により、具体的に各テープドライブ装置２１〜２３の内部バッファ書き込み閾値および内部バッファ読み出し閾値の算出方法を説明する。まず、テープへのデータ書き込み時には、各テープドライブ装置２１〜２３の内部バッファ３３の容量はいずれも同じで、容量Ｍであり、バッファ転送速度Ｓで、ＳＣＳＩバス１１２からデータが読み込まれ、各内部バッファ３３がエンプティの状態からフルの状態になるまでに要する時間をＴとする。また、各テープドライブ装置２１〜２３のヘッド３２が、内部バッファ３３からデータを読み出し、テープに記録する速度をＲとする。各内部バッファの容量Ｍは、Ｍ＝（Ｓ−Ｒ）Ｔで表される。
【００４４】
（上限）ＳＣＳＩバス１１２に接続されるテープドライブ装置２１〜２３のうち、テープドライブ装置２１がバスリコネクト要求を発するタイミングの上限は、最後にテープドライブ装置２１がバスを使用してから、テープドライブ装置２１を除く他のテープドライブ装置２２およびテープドライブ装置２３がすべてバス使用権を獲得した直後である。他のテープドライブ装置すべてがバス使用権を獲得するのに要する時間は、概ね、優先順位の高いテープドライブ装置から順に、バスリコネクト要求を発して使用権を獲得するまでの時間と、バスを使用してバスから内部バッファにデータを読み込む時間と、バスをディスコネクトする時間との合計である。ただし、（バス優先順位が最も低い）最後のテープドライブ装置２３がバス使用権を獲得した後は、テープドライブ装置２１は、バスリコネクト要求を発しようとしてもバスフリー状態になるまで待たされる。また、バスリコネクト要求を発して使用権を獲得するまでの時間と、バスをディスコネクトする時間とは、バスを使用して内部バッファにデータを読み込む時間と比べると十分に小さいので、無視できる。従って、この待機時間ｔは、テープドライブ装置２１とバス優先順位が最も低いテープドライブ装置（テープドライブ装置２３）との２台を除く残りのテープドライブ装置が、すべてエンプティの状態からフルの状態になるのに要する時間であり、ｔ＝（ｍ−２）Ｔである。この待機時間ｔの間に、フルの状態にあるテープドライブ装置２１の内部バッファ３３からヘッド３２に読み出されるデータ量Ｄ１は、Ｄ１＝（ｍ−２）ＲＴである。読み出されたデータ量Ｄ１が内部バッファ３３全体に占める割合は、Ｄ１／Ｍ＝（ｍ−２）ＲＴ／（Ｓ−Ｒ）Ｔとなり、ｋ＝（Ｓ−Ｒ）／Ｒであるので、Ｄ１／Ｍ＝（ｍ−２）／ｋである。内部バッファ使用率を、フルの状態を「１」、エンプティの状態を「０」として表すと、内部バッファ使用率Ｕｗの上限は、１−（ｍ−２）／ｋとなる。
【００４５】
（下限）バス優先順位が最も低いテープドライブ装置２３において、バスリコネクト要求を発する内部バッファ使用率Ｕｗの下限は、内部バッファ３３内のデータ残量がＤ２のときにバスリコネクト要求を発したとして、その後、さらに、他のテープドライブ装置（テープドライブ装置２１およびテープドライブ装置２２）のすべてがＳＣＳＩバス１１２を使用し終わるまで待機したとしても、内部バッファ３３がエンプティの状態にならないタイミングでなければならない。このときの待機時間ｔは、ＳＣＳＩバス１１２を使用して、テープドライブ装置２３以外の（ｍ−１）台のテープドライブ装置を、順次、エンプティの状態からフルの状態にするのに要する時間であり、ｔ＝（ｍ−１）Ｔと表される。従って、待機時間ｔの間に内部バッファ３３からヘッド３２に読み出されるデータ量は、（ｍ−１）ＲＴである。すなわち、バス優先順位が最も低いテープドライブ装置２３がバスリコネクト要求を発する下限でのデータ残量Ｄ２は、Ｄ２＝（ｍ−１）ＲＴと表される。このデータ残量Ｄ２が内部バッファ３３全体に占める割合は、Ｄ２／Ｍ＝（ｍ−１）ＲＴ／（Ｓ−Ｒ）Ｔである。ここで、ｋ＝（Ｓ−Ｒ）／Ｒであるので、内部バッファ使用率Ｕｗの下限は、Ｄ２／Ｍ＝（ｍ−１）／ｋとなる。
【００４６】
従って、上記の制御を行うためには、内部バッファ使用率Ｕｗの下限と上限とが反転してはならないので、前記２つのデータ量で表せば、Ｄ１＋Ｄ２＜Ｍ、すなわち、（ｍ−２）／ｋ＋（ｍ−１）／ｋ＜１が成立しなければならない。従って、第２条件の式である２ｍ−３＜ｋが導かれる。
読み出しの場合、バッファ転送速度Ｓで、内部バッファ３３からＳＣＳＩバス１１２へデータが送出され、各内部バッファ３３がフルの状態からエンプティの状態になるまでに要する時間をＴとする。また、各テープドライブ装置２１〜２３のヘッド３２がテープから内部バッファ３３にデータを読み出す速度をＲとする。各内部バッファの容量Ｍは、Ｍ＝（Ｓ−Ｒ）Ｔで表される。
【００４７】
（上限）バス優先順位が最も低いテープドライブ装置２３において、バスリコネクト要求を発する内部バッファ使用率Ｕｒの上限は、内部バッファ３３内のデータ残量がＤ１のときにバスリコネクト要求を発したとして、その後、さらに、他のテープドライブ装置（テープドライブ装置２１およびテープドライブ装置２２）のすべてがＳＣＳＩバス１１２を使用し終わるまで待機したとしても、内部バッファ３３がフルの状態にならないタイミングでなければならない。このときの待機時間ｔは、ＳＣＳＩバス１１２を使用して、テープドライブ装置２３以外の（ｍ−１）台のテープドライブ装置を、順次、フルの状態からエンプティの状態にするのに要する時間であり、ｔ＝（ｍ−１）Ｔと表される。従って、待機時間ｔの間に内部バッファ３３に蓄積されるデータ量は、（ｍ−１）ＲＴである。すなわち、バス優先順位が最も低いテープドライブ装置２３がバスリコネクト要求を発する上限でのデータ残量Ｄ１は、Ｄ１＝（ｍ−１）ＲＴと表される。このデータ残量Ｄ１が内部バッファ３３全体に占める割合は、Ｄ１／Ｍ＝（ｍ−１）ＲＴ／（Ｓ−Ｒ）Ｔである。ここで、ｋ＝（Ｓ−Ｒ）／Ｒであるので、Ｄ１／Ｍ＝（ｍ−１）／ｋとなる。内部バッファ使用率を、フルの状態を「１」、エンプティの状態を「０」として表すと、内部バッファ使用率Ｕｒの上限は、１−（ｍ−１）／ｋとなる。
【００４８】
（下限）ＳＣＳＩバス１１２に接続されるテープドライブ装置２１〜２３のうち、テープドライブ装置２１がバスリコネクト要求を発するタイミングの下限は、最後にテープドライブ装置２１がバスを使用してから、テープドライブ装置２１を除く他のテープドライブ装置２２およびテープドライブ装置２３がすべてバス使用権を獲得した直後である。他のテープドライブ装置すべてがバス使用権を獲得するのに要する時間は、概ね、優先順位の高いテープドライブ装置から順に、バスリコネクト要求を発して使用権を獲得するまでの時間と、バスを使用して内部バッファからＳＣＳＩバス１１２にデータを送出する時間と、ＳＣＳＩバス１１２をディスコネクトする時間との合計である。ただし、（バス優先順位が最も低い）最後のテープドライブ装置２３がバス使用権を獲得した後は、テープドライブ装置２３がバスを使用し終わるまで待機する必要はないので、テープドライブ装置２１は、即時、バスリコネクト要求を発する。また、バスリコネクト要求を発して使用権を獲得するまでの時間と、バスをディスコネクトする時間とは、バスを使用して内部バッファにデータを読み込む時間と比べると十分に小さいので、無視する。従って、この待機時間ｔは、テープドライブ装置２１とバス優先順位が最も低いテープドライブ装置（テープドライブ装置２３）との２台を除く残りのテープドライブ装置が、すべてフルの状態からエンプティの状態になるのに要する時間であり、ｔ＝（ｍ−２）Ｔである。この待機時間ｔの間に、テープドライブ装置２１のヘッド３２からエンプティの状態にある内部バッファ３３に読み出されるデータ量Ｄ２は、Ｄ２＝（ｍ−２）ＲＴである。読み出されたデータ量Ｄ２が内部バッファ３３全体に占める割合は、Ｄ２／Ｍ＝（ｍ−２）ＲＴ／（Ｓ−Ｒ）Ｔとなり、ｋ＝（Ｓ−Ｒ）／Ｒであるので、Ｄ２／Ｍ＝（ｍ−２）／ｋである。
【００４９】
読み出しの場合にも、上記の制御を行うためには、内部バッファ使用率Ｕｒの下限と上限とが反転してはならないので、前記２つのデータ量であらわせば、Ｄ１＋Ｄ２＜Ｍ、すなわち、（ｍ−２）／ｋ＋（ｍ−１）／ｋ＜１が成立しなければならない。従って、第２条件の式である２ｍ−３＜ｋが導かれる。
上記チェックの結果、パラメータＳ、Ｒ、ｍが上記２つの条件を満たせば、データアクセス制御部４１は、各テープドライブ装置２１〜２３に対し、内部バッファ書き込み閾値として、内部バッファ使用率Ｕｗを、（ｍ−１）／ｋ≦Ｕｗ≦１−（ｍ−２）／ｋの範囲に設定する。また、内部バッファ読み出し閾値として、内部バッファ使用率Ｕｒを、（ｍ−２）／ｋ≦Ｕｒ≦１−（ｍ−１）／ｋの範囲に設定する。
【００５０】
（内部バッファ書き込み閾値：内部バッファ使用率Ｕｗ）
（ｍ−１）／ｋ≦Ｕｗ≦１−（ｍ−２）／ｋ
（内部バッファ読み出し閾値：内部バッファ使用率Ｕｒ）
（ｍ−２）／ｋ≦Ｕｒ≦１−（ｍ−１）／ｋ
ここでは、ｋ＝５（＝（８０−１３）／１３）、ｍ＝３であるので、第１条件および第２条件の両方を満たしている。従って、データアクセス制御部４１は、内部バッファ書き込み閾値を内部バッファ使用率Ｕｗの範囲２／５≦Ｕｗ≦４／５から選ぶ。また、内部バッファ読み出し閾値を内部バッファ使用率Ｕｒの範囲１／５≦Ｕｒ≦３／５から選ぶ。ただし、内部バッファ書き込み閾値を上限に近い値に設定したり、内部バッファ読み出し閾値を下限に近い値に設定したりすると、バスへのアクセスが頻繁になり、バスが使用される時間に比べて、リコネクトおよびディスコネクトによるアルトレーション期間（オーバヘッド）の割合が無視できなくなり、バスのデータ伝送効率が悪くなってしまう。従ってここでは、例えば、それぞれ選択範囲の中間値（例えば、上限と下限との平均値など）を選び、内部バッファ書き込み閾値として内部バッファ使用率Ｕｗ＝３／５、内部バッファ読み出し閾値として内部バッファ使用率Ｕｒ＝２／５を選択する（Ｓ２０３）。
【００５１】
データアクセス制御部４１は、各テープドライブ装置２１〜２３の制御部３１に対して、算出された内部バッファ読み出し閾値および内部バッファ書き込み閾値を送信し、モードセレクトコマンドにより、以後、各テープドライブ装置２１〜２３のバスリコネクトタイミングを、新たに算出されたこの内部バッファ読み出し閾値および内部バッファ書き込み閾値を用いて制御させる（Ｓ２０４）。
【００５２】
その後、データアクセス制御部４１は、外部ＰＣ５〜７からのリクエストを受けてアクセス要求を処理し、テープドライブ装置２１〜２３へのアクセスを実行して、メモリ４２に一時的にデータを格納しながらＬＡＮ２を介して他コンピュータの記憶装置との間でデータを転送する（Ｓ２０５）。ステップＳ２０１またはステップＳ２０２において、もし、パラメータＳ、Ｒ、ｍが第１条件または第２条件を満たさないときは、データアクセス制御部４１は内部バッファ閾値の設定変更は行わずにアクセス要求を処理する。また、リクエストを受けたデータの転送が完了すると、処理を終了する（Ｓ２０６）。
【００５３】
このように内部バッファ閾値を設定したときの各テープドライブ装置２１〜２３における書き込みおよび読み出しの動作は、次のようになる。
図４は、図１に示した各テープドライブ装置２１〜２３における内部バッファ３３の蓄積データ量の時間変化を示すグラフである。図４（ａ）は、テープドライブ装置２１でのデータ書き込み時における内部バッファ３３の蓄積データ量の時間変化を示すグラフである。図４（ｂ）は、テープドライブ装置２２でのデータ読み出し時における内部バッファ３３の蓄積データ量の時間変化を示すグラフである。図４（ｃ）は、テープドライブ装置２３でのデータ書き込み時における内部バッファ３３の蓄積データ量の時間変化を示すグラフである。同図において、例えば、図４（ｃ）に示すテープドライブ装置２３の内部バッファ３３に注目すると、テープドライブ装置２３は、データ書き込み時において、内部バッファ書き込み閾値に達しているにもかかわらずＳＣＳＩバス１１２の使用権をすぐに獲得できない場合であっても、内部バッファ３３のデータがアンダフローする前にＳＣＳＩバス使用権を獲得して、内部バッファ３３にデータを補充できる可能性が高い。その理由は、第１条件において、テープドライブ装置２３以外の全てのテープドライブ装置２１〜２２がデータ書き込みや読み出しのためにＳＣＳＩバス１１２を連続して利用したとしても、テープドライブ装置２３の内部バッファ３３がアンダフローする前に、テープドライブ装置２３以外の全てのテープドライブ装置２１〜２２がＳＣＳＩバス１１２の利用を完了するよう、内部バッファ３３‐ＳＣＳＩバス１１２間と内部バッファ３３‐テープ間とのデータ転送速度の差、および、テープドライブ装置２１〜２３の台数が考慮されていることと、上記のように内部バッファ書き込み閾値の下限が定められているからである。
【００５４】
すなわち、図４（ａ）に示すように、テープドライブ装置２１がＳＣＳＩバス１１２を使用してホストＰＣ４と内部バッファ３３との間でデータ転送する間、時刻ｔ０〜ｔ１において、テープドライブ装置２３の内部バッファ３３からテープに、時刻ｔ０〜ｔ１の間転送されるデータ量は、図４（ｃ）に示すように、高々、（内部バッファ容量の１／５）＋（誤差）程度である。また、図４（ｂ）に示すように、テープドライブ装置２２がＳＣＳＩバス１１２を使用してホストＰＣ４と内部バッファ３３との間でデータ転送する間（時刻ｔ２〜ｔ３）において、テープドライブ装置２３の内部バッファ３３からテープに、時刻ｔ１〜ｔ４の間転送されるデータ量は、図４（ｃ）に示すように、やはり（内部バッファ容量の１／５）＋（誤差）程度である。
【００５５】
また、同時に、内部バッファ３３‐ＳＣＳＩバス１１２間のデータ転送速度と内部バッファ３３‐テープ間のデータ転送速度との差、および、テープドライブ装置２１〜２３の台数の関係が第２条件を満たすように、パラメータ値ｍ、Ｓ、Ｒを選び、上記のように内部バッファ書き込み閾値の上限を定めることによって、テープドライブ装置２３がＳＣＳＩバス使用権獲得を待っている間に、すでにＳＣＳＩバス１１２を利用した、テープドライブ装置２３よりもバス調停優先度が高いテープドライブ装置２１〜２２が再び閾値に到達することがないので、テープドライブ装置２３の内部バッファ３３のデータがアンダフローする前にテープドライブ装置２３がＳＣＳＩバス使用権を獲得して内部バッファ３３にデータを補充できる可能性がさらに高くなる。すなわち、図４（ｂ）に示すように、テープドライブ装置２１が内部バッファ３３をフルに充填した時点（時刻ｔ１）から、テープドライブ装置２２がＳＣＳＩバス１１２の使用を終了した時点（時刻ｔ３）までで、テープドライブ装置２１おいて内部バッファ３３とテープとの間で転送されたデータ量は図４（ａ）に示すように高々（内部バッファ容量の１／５）＋（誤差）程度であるので、テープドライブ装置２１においては、テープドライブ装置２３によるＳＣＳＩバス１１２の使用が終了する時刻ｔ５より後の時刻ｔ６まで、内部バッファ３３内のデータ量が内部バッファ書き込み閾値に達しないことになる。
【００５６】
図５は、図１に示した各テープドライブ装置２１〜２３における内部バッファ３３の蓄積データ量の時間変化を示すグラフである。図５（ａ）は、テープドライブ装置２１でのデータ書き込み時における内部バッファ３３の蓄積データ量の時間変化を示すグラフである。図５（ｂ）は、テープドライブ装置２２でのデータ書き込み時における内部バッファ３３の蓄積データ量の時間変化を示すグラフである。図５（ｃ）は、テープドライブ装置２３でのデータ読み出し時における内部バッファ３３の蓄積データ量の時間変化を示すグラフである。読み出しにおいても同様に、図５（ｃ）に示すテープドライブ装置２３の内部バッファ３３に注目すると、第１条件において、例えばテープドライブ装置２３が内部バッファ読み出し閾値に達してＳＣＳＩバス１１２の使用権がすぐに獲得できない場合でも、他の全てのテープドライブ装置２１〜２２がデータ書き込みや読み出しのためにＳＣＳＩバス１１２を利用する時間を考慮していることにより、テープドライブ装置２３では、内部バッファ３３のデータがオーバフローする前にＳＣＳＩバス使用権を獲得して、内部バッファ３３からデータを取り出せる可能性が高くなる。例えば、図５（ａ）に示すように、テープドライブ装置２１がホストＰＣ４と内部バッファ３３との間でデータ転送する間（時刻ｔ０〜ｔ１）に、テープドライブ装置２３においてテープから内部バッファ３３へ転送されるデータ量は、高々（内部バッファ容量の１／５）＋（誤差）程度である。従って、時刻ｔ０において内部バッファ３３内のデータ量が内部バッファ読み出し閾値（内部バッファ容量の２／５）であった場合でも、時刻ｔ１では、（内部バッファ容量の３／５）に達した程度である。それに続いてさらに、テープドライブ装置２２がＳＣＳＩバス１１２の使用権を獲得した場合でも、テープドライブ装置２２によるＳＣＳＩバス１１２の使用が終了する時刻ｔ３では、テープドライブ装置２３の内部バッファ３３内のデータ量は（内部バッファ容量の４／５）程度であり、フル状態になるまで十分に余裕があることになる。
【００５７】
同時に内部バッファ３３‐ＳＣＳＩバス１１２間のデータ転送速度と内部バッファ３３‐テープ間のデータ転送速度との差、および、テープドライブ装置２１〜２３の台数の関係が第２条件を満たすように、パラメータ値ｍ、Ｓ、Ｒを選ぶことにより、テープドライブ装置２３がＳＣＳＩバス使用権獲得を待っている時刻ｔ０〜ｔ４の間に、すでにＳＣＳＩバス１１２を利用した、バス調停優先度が高いテープドライブ装置２１〜２２が再び閾値に到達することがないので、テープドライブ装置２３の内部バッファのデータがオーバフローする前にテープドライブ装置２３がＳＣＳＩバス使用権を獲得して内部バッファからデータを取り出せる可能性がさらに高くなる。例えば、図５（ｂ）に示すようにテープドライブ装置２２がＳＣＳＩバス１１２の使用を開始して（時刻ｔ２）から終了した時点（時刻ｔ３）で、テープドライブ装置２１おいて、内部バッファ３３とテープとの間で転送されたデータ量は、高々（内部バッファ容量の１／５）＋（誤差）程度である。すなわち、テープドライブ装置２１の内部バッファ３３内のデータ量は、（内部バッファ容量の４／５）程度であるので、内部バッファ書き込み閾値（内部バッファ容量の３／５）には達しない。従って、テープドライブ装置２３がＳＣＳＩバス１１２の使用権を獲得するタイミングは、テープドライブ装置２１およびテープドライブ装置２２が順次、ＳＣＳＩバス１１２の使用を完了した後のタイミングとなる確率が高くなる。
【００５８】
以上のように、本発明の実施の形態１によれば、同一のドライブ装置のみ複数存在する状況において、テープドライブ装置２３が内部バッファ閾値に達してＳＣＳＩバスの使用権がすぐに獲得できない場合でも、他の全てのテープドライブ装置２１〜２２が書き込みや読み出しでＳＣＳＩバス１１２を利用する時間を考慮して内部バッファ閾値を決定することにより、テープドライブ装置２３の内部バッファのデータがアンダフローまたはオーバフローする前にテープドライブ装置２３がＳＣＳＩバス使用権を獲得してホストＰＣ４との間でデータ転送できる可能性が高くなる。同時にテープドライブ装置２３がＳＣＳＩバス使用権獲得を待っている間にＳＣＳＩバス１１２を利用した、バス調停優先度が高いテープドライブ装置２１〜２２が再び閾値に到達することがないように内部バッファ閾値を決定しているのでテープドライブ装置２３の内部バッファのデータがアンダフローまたはオーバフローする前にテープドライブ装置２３がＳＣＳＩバス使用権を獲得できる可能性がさらに高くなる。
【００５９】
なお、いずれの場合も、メディア移動機構部２５に対しテープメディア移動等の要求があっても、メディア移動機構部２５は通常はＳＣＳＩバス１１２を解放（ディスコネクト）した状態で要求を処理するので、テープドライブ装置２１〜２３の動作への影響はほとんどない。
なお、本実施の形態では、ホストＰＣ４がアクセス要求の処理を開始する前に、与えられたテープドライブ装置情報（ｍ、Ｓ、Ｒ）から内部バッファ書き込み閾値および内部バッファ読み出し閾値を算出し、各テープドライブ装置に対しモードセレクトコマンドを用いて閾値の設定を変更するようにしたが、稼動するテープドライブ装置の数を動的に変更しうる場合には、その都度、ホストＰＣ４（データアクセス制御部４１）が内部バッファ書き込み閾値および内部バッファ読み出し閾値を算出し、各テープドライブ装置に対し設定するようにしてもよい。
【００６０】
また、テープライブラリ装置３が、ドライブ内部バッファ閾値設定部を備え、そのドライブ内部バッファ閾値設定部がテープドライブ装置情報（ｍ、Ｓ、Ｒ）から内部バッファ書き込み閾値および内部バッファ読み出し閾値を算出し、各テープドライブ装置に対し、メンテナンス用の制御ライン等を介して内部バッファ閾値変更指示を送るようにしてもよい。また、各テープドライブ装置２１〜２３の制御部３１が、外部から与えられたテープドライブ装置情報（ｍ、Ｓ、Ｒ）に基づいて、各自の内部バッファ書き込み閾値および内部バッファ読み出し閾値を算出するとしてもよい。
【００６１】
なお、上記実施の形態１では、内部バッファ読み出し閾値と内部バッファ書き込み閾値とを、それぞれ選択範囲（内部バッファ使用率の下限と上限）の中間値（例えば、上限と下限との平均値など）を選ぶとしたが、本発明はこれに限定されず、内部バッファ読み出し閾値と内部バッファ書き込み閾値とをそれぞれの内部バッファ使用率の下限の値に定めてもよい。この場合、それぞれの下限の値に正確に一致する値を内部バッファ読み出し閾値および内部バッファ書き込み閾値としてもよいし、それぞれの下限の値に概ね一致する値を閾値としてもよい。例えば、内部バッファ使用率がそれぞれの下限に概ね一致したとき、バスリコネクト要求を発するとしてもよい。また、それぞれの下限の値に所定の微小値を加算して得られる値に定めてもよい。例えば、内部バッファ使用率の下限の値を所定の桁で切り上げて得られる値に定めてもよい。さらに、一旦、上限と下限との平均値を求め、求められた平均値と、前記下限との間でもう一度平均を取った値に定めてもよい。
【００６２】
また、ここでは、各テープドライブ装置２１〜２３のテープドライブ装置情報（ｍ、Ｓ、Ｒ）が、ホストＰＣ４のキーボードなどを用いて、オペレータからデータアクセス制御部４１に直接入力される場合を想定しているが、本発明はこれに限定されず、データアクセス制御部４１があらかじめテープライブラリ装置３のテスト走行などを行い、その際にテープドライブ装置情報（ｍ、Ｓ、Ｒ）を取得するとしてもよい。上記バリエーションは、以下の実施の形態２においても、実施の形態１と同様に適用することができる。
【００６３】
（実施の形態２）
図６は、実施の形態２のデータ記憶システム５０１の構成を示すブロック図である。同図において、図１に示したデータ記憶システム１と同様の構成要素については、同一の参照符号を付し説明を省略する。実施の形態２のデータ記憶システム５０１において、実施の形態１のデータ記憶システム１と異なる点は、テープライブラリ装置内に、それぞれ性能が異なるテープドライブ装置５１０〜５３０を備えることである。データ記憶システム５０１は、テープライブラリ装置５０３およびホストＰＣ５０４を備え、ＬＡＮ２を介して、それぞれ記憶部を有した他のＰＣ５〜７と接続される。テープライブラリ装置５０３は、ＳＣＳＩバス１１２を介してホストＰＣ５０４（データアクセス制御部５４１）と接続され、３台（ｍ＝３）のテープドライブ装置５１０、５２０、５３０と、メディア移動機構部２５とを備える。テープドライブ装置５１０、５２０、５３０は、データアクセス制御部５４１からアクセス要求を受けて、テープからのデータ読み出しやテープへのデータ書き込みを行う。このときデータアクセス制御部５４１と各内部バッファ５１２、５２２、５３２との間は、ＳＣＳＩバス１１２を介して８０メガバイト／秒（Ｓ＝８０）の転送レートでデータ転送を行う。また、ＳＣＳＩ  ＩＤ番号によるバス調停（アービトレーション）を行い、データアクセス制御部５４１、テープドライブ装置５１０、テープドライブ装置５２０、テープドライブ装置５３０の順にＳＣＳＩバス使用権獲得優先度が高いものとする。
【００６４】
テープドライブ装置５１０は、内部バッファ５１１、ヘッド５１２および制御部５１３を備える。テープドライブ装置５１０は、１２メガバイト（Ｍ１＝１２）の内部バッファ容量を有し、ヘッド５１２のテープへの読み出し／書き込み速度、すなわち、内部バッファ５１１とテープとの間の転送レートは１０メガバイト／秒（Ｒ１＝１０）である。
テープドライブ装置５２０は、内部バッファ５２１、ヘッド５２２および制御部５２３を備える。内部バッファ５２１は、１６メガバイト（Ｍ２＝１６）の内部バッファ容量を有し、ヘッド５２２のテープへの読み出し／書き込み速度、すなわち、内部バッファ５２１とテープとの間の転送レートは１３メガバイト／秒（Ｒ２＝１３）である。
【００６５】
テープドライブ装置５３０は、内部バッファ５３１、ヘッド５３２および制御部５３３を備える。内部バッファ５３１は、１６メガバイト（Ｍ３＝１６）の内部バッファ容量を有し、ヘッド５３２のテープへの読み出し／書き込み速度、すなわち、内部バッファ５３１とテープとの間の転送レートは１６メガバイト／秒（Ｒ３＝１６）である。
テープドライブ装置５１０、５２０、５３０の各制御部５１３、５２３、５３３は、データ読み出し時に内部バッファ５１１、５２１、５３１がアンダフローしそうになったときは、ＳＣＳＩバス１１２をディスコネクトして、データが内部バッファ読み出し閾値（バスリコネクトタイミング）に達するまで、内部バッファ５１１、５２１、５３１からデータアクセス制御部５４１へのデータ転送を停止する。バスリコネクトタイミングに達してもＳＣＳＩバス１１２を使用できず、内部バッファ５１１、５２１、５３１がオーバフローしそうになったときは、テープ走行を止めてテープからの読み出しを中止する。
【００６６】
また、データ書き込み時に内部バッファ５１１、５２１、５３１がオーバフローしそうになったときは、ＳＣＳＩバス１１２をディスコネクトして内部バッファ書き込み閾値（バスリコネクトタイミング）に達するまでデータアクセス制御部５４１から内部バッファ５１１、５２１、５３１へのデータ転送を停止する。バスリコネクトタイミングに達してもＳＣＳＩバス１１２を使用できず、内部バッファ５１１、５２１、５３１がアンダフローしそうになったときはテープ走行を止めてテープへの書き込みを中止する。テープドライブ装置５１０、５２０、５３０におけるこれらの内部バッファ閾値は可変であり、データアクセス制御部５４１からテープドライブ装置５１０、５２０、５３０へ内部バッファ閾値変更要求（モードセレクトコマンド）を送ることにより、内部バッファ書き込み閾値および内部バッファ読み出し閾値を変更することができる。
【００６７】
ホストＰＣ５０４は、データアクセス制御部５４１、メモリ４２およびバスインタフェース部４３を備え、テープライブラリ装置５０３内の性能の異なるテープドライブ装置５１０、５２０、５３０の内部バッファ書き込み閾値と内部バッファ読み出し閾値とを算出し、算出された内部バッファ書き込み閾値と内部バッファ読み出し閾値とを各テープドライブ装置５１０、５２０、５３０に設定し、外部ＰＣ５〜７からリクエストを受けて所定のテープドライブ装置にアクセス要求を送り、ＬＡＮ２を介して外部ＰＣ５〜７の記憶装置との間でデータ転送を実行する。データアクセス制御部５４１は、内部バッファ５１１、５２１、５３１の容量およびヘッド５１２、５２２、５３２の読み出し／書き込み速度など、それぞれ性能の異なる３台の内部バッファ書き込み閾値と内部バッファ読み出し閾値とを算出する。
【００６８】
以上のように構成されたデータ記憶システム５０１において、データアクセス制御部５４１は次のように動作する。図７は、テープドライブ装置５１０、５２０、５３０の各パラメータ値の関係を示す対応表である。図８は、図６に示したデータアクセス制御部５４１によるテープドライブ装置５１０、５２０、５３０のバスリコネクトタイミング設定動作を示すフローチャートである。
【００６９】
データアクセス制御部５４１は、テープドライブ装置５１０、５２０、５３０へのアクセス要求の処理を開始する前に、各テープドライブ装置５１０、５２０、５３０のパラメータ値Ｓ（ＳＣＳＩバス１１２のデータ転送速度）およびＲｉ（ｉ番目のテープドライブ装置５１０、５２０、５３０におけるテープへのデータ書き込み／読み出し速度、ただし、ｉは１≦ｉ≦３の自然数で、ｉの昇順に各テープドライブ装置５１０、５２０、５３０が対応する）から、Ｒｉの総和（Ｒ）がＳより小さいこと、
（第１条件）      ΣＲｉ＝Ｒ＜Ｓ
をチェックする（Ｓ７０１）。この第１条件は、実施の形態１の場合と同様に、ＳＣＳＩバスのバス使用権が、バス優先順位に従って、概ね順次に各テープドライブ装置に与えられるための条件である。上記第１条件が満たされた場合、さらに、各ｉについて
（第２条件）      [（ΣＴｉ）−Ｔｉ]・Ｒｉ＜Ｍｉ
をチェックする（Ｓ７０２）。この第２条件は、バス優先順位が最も低いｉ番目のテープドライブ装置の容量Ｍｉが、内部バッファ書き込み閾値の下限より大であることを条件として示す式である。実施の形態１で説明した内部バッファ書き込み閾値の下限は、バスリコネクト要求を発した後に、まださらに、優先順位の高い他のテープドライブ装置のすべてがバスを使用し終わるまで待機しなければならない場合でも、内部バッファ内のデータ残量が「０」にならないタイミングである。内部バッファ書き込み閾値に達した後に、最悪の場合、ｉ番目のテープドライブ装置が待機しなければならない最長の待機時間Ｔは、Ｔ＝（ΣＴｉ）−Ｔｉ、（ただし、１≦ｉ≦３）で表される。なお、時間Ｔｉは、ｉ番目のテープドライブ装置において、バスからデータ転送速度Ｓでデータを読み込み、テープへ転送速度Ｒｉで書き込んだ場合に内部バッファをエンプティの状態からフルの状態にするのに要する時間である。すなわち、ｉ番目のテープドライブ装置の内部バッファの容量Ｍｉは、Ｍｉ＝（Ｓ−Ｒｉ）Ｔｉと表される。また、この待機時間Ｔの間にｉ番目のテープドライブ装置の内部バッファから読み出されるデータの量は、ＲｉＴである。上記の第２条件から、待機時間Ｔの間にテープドライブ装置の内部バッファから読み出されるデータ量ＲｉＴよりも、ｉ番目のテープドライブ装置の内部バッファの容量Ｍｉの方が大きくなければならない。すなわち、ＲｉＴ＜Ｍｉ。この式を展開すると、Ｒｉ（ΣＴｉ）−ＲｉＴｉ＜Ｍｉであり、上記第２条件の式が得られる。上記第２条件が満たされた場合、データアクセス制御部５４１は、さらに、テープドライブ装置５１０、５２０、５３０の各時間Ｔｉのうちｉ番目のテープドライブ装置の時間Ｔｉを除いた最小の値をＮｉとするとき、各ｉについて
（第３条件）      [（ΣＴｉ）−Ｔｉ]Ｒｉ＋[（ΣＴｉ）−（Ｎｉ＋Ｔｉ）]・Ｒｉ＜Ｍｉ
をチェックする（Ｓ７０３）。上記第３の条件は、ｉ番目のテープドライブ装置が、内部バッファ書き込み閾値の上限と下限とが逆転しないだけのデータ容量Ｍｉを備えていることを条件として示す式である。この式で、[（ΣＴｉ）−（Ｔｉ＋Ｔｉ）]Ｒｉは、ｉ番目のテープドライブ装置における内部バッファ書き込み閾値の上限のタイミングまでにバッファから読み出されるデータの量である。また、[（ΣＴｉ）−Ｔｉ]Ｒｉは、前述の通り、ｉ番目のテープドライブ装置における内部バッファ書き込み閾値の下限に当たるデータ残量である。本実施の形態２のデータ記憶システム５０１のように、各テープドライブ装置５１０〜５３０の性能が異なる場合には、内部バッファ読み出し閾値の下限は、[（ΣＴｉ）−（Ｎｉ＋Ｔｉ）]・Ｒｉ／Ｍｉに、内部バッファ書き込み閾値の上限は、１−[（ΣＴｉ）−（Ｎｉ＋Ｔｉ）]・Ｒｉ／Ｍｉに定められている。それらはいずれも、ｉ番目のテープドライブ装置が、自分以外で内部バッファの状態を最も短時間でフルの状態からエンプティの状態（またはその逆）にできるテープドライブ装置が最後にバス使用権を獲得するテープドライブ装置であった場合でも、言い換えると、内部バッファの状態をフルの状態からエンプティの状態（またはその逆）にするまでに、より時間がかかるテープドライブ装置が先にバス使用権を獲得した場合でも、その最後のテープドライブ装置がバス使用権を獲得するまで待機することを意味している。また、ＳＣＳＩバス１１２のデータ転送効率の点から、内部バッファ読み出し閾値の下限が[（ΣＴｉ）−（Ｎｉ＋Ｔｉ）]・Ｒｉ／Ｍｉに、内部バッファ書き込み閾値の上限が１−[（ΣＴｉ）−（Ｎｉ＋Ｔｉ）]・Ｒｉ／Ｍｉに定められているのは、最悪の場合を想定して定めておいた方がよいからである。
【００７０】
次に、データアクセス制御部５４１は、各パラメータ値が上記の全条件を満たせば、ｉ番目のテープドライブ装置に対し、
内部バッファ書き込み閾値を、内部バッファ使用率
[（ΣＴｉ）−Ｔｉ]・Ｒｉ／Ｍｉ以上、
１−[（ΣＴｉ）−（Ｎｉ＋Ｔｉ）]・Ｒｉ／Ｍｉ以下
の範囲に設定する。また、内部バッファ読み出し閾値を、内部バッファ使用率
[（ΣＴｉ）−（Ｎｉ＋Ｔｉ）]・Ｒｉ／Ｍｉ以上、
１−[（ΣＴｉ）−Ｔｉ]・Ｒｉ／Ｍｉ以下の範囲に設定する。
【００７１】
この例では、図７に示すように、ΣＲｉ＝３９、ΣＭｉ＝４４であり、テープドライブ装置５１０のパラメータ値であるＭ１＝１２、Ｒ１＝１０、（Ｔ２＋Ｔ３）・Ｒ１＋Ｔ３・Ｒ１＝７．３８およびＮ１＝１６／６７は、上記の全条件を満たすので、テープドライブ装置５１０の内部バッファ書き込み閾値は、内部バッファ使用率をＵｗ１として、０．４０≦Ｕｗ１≦０．７９の範囲から選ぶ。また、内部バッファ読み出し閾値を、内部バッファ使用率をＵｒ１として、０．２１≦Ｕｒ１≦０．６の範囲から選ぶ。
【００７２】
同様に、テープドライブ装置５２０のパラメータ値であるＭ２＝１６、Ｒ２＝１３、（Ｔ１＋Ｔ３）・Ｒ２＋Ｔ３・Ｒ２＝８．７２およびＮ２＝１２／７０は、上記の全条件を満たすので、テープドライブ装置５２０の内部バッファ書き込み閾値は、内部バッファ使用率をＵｗ２として、０．３４≦Ｕｗ２≦０．７９の範囲から選ぶ。また、内部バッファ読み出し閾値を、内部バッファ使用率をＵｒ２として、０．２１≦Ｕｒ２≦０．６６の範囲から選ぶ。
【００７３】
また、テープドライブ装置５３０のパラメータ値Ｍ３＝１６、Ｒ３＝１６、（Ｔ１＋Ｔ２）・Ｒ３＋Ｔ２・Ｒ３＝１０．３８およびＮ３＝１２／７０も全条件を満たすので、テープドライブ装置５３０の内部バッファ書き込み閾値は、内部バッファ使用率をＵｗ３として、０．４１≦Ｕｗ３≦０．７６の範囲から選ぶ。また、内部バッファ読み出し閾値を、内部バッファ使用率をＵｒ３として、０．２４≦Ｕｒ３≦０．５９の範囲から選ぶ。ここでは、それぞれ中間値を選んで（Ｓ７０４）、
（テープドライブ装置５１０）
内部バッファ書き込み閾値を、内部バッファ使用率Ｕｗ１＝０．５９、
内部バッファ読み出し閾値を、内部バッファ使用率Ｕｒ１＝０．４０とする。
（テープドライブ装置５２０）
内部バッファ書き込み閾値を、内部バッファ使用率Ｕｗ２＝０．５６、
内部バッファ読み出し閾値を、内部バッファ使用率Ｕｒ２＝０．４３とする。
（テープドライブ装置５３０）
内部バッファ書き込み閾値を、内部バッファ使用率Ｕｗ３＝０．５８、
内部バッファ読み出し閾値を、内部バッファ使用率Ｕｒ３＝０．４１とする。
【００７４】
データアクセス制御部５４１は、上記のように選ばれた内部バッファ書き込み閾値および内部バッファ読み出し閾値を、モードセレクトコマンドにより、各テープドライブ装置５１０、５２０、５３０に設定する（Ｓ７０５）。その後、データアクセス制御部５４１は、アクセス要求を処理してテープドライブ装置５１０、５２０、５３０へのアクセスを実行し、メモリ４４に一時的にデータを格納しながらＬＡＮ２を介して外部ＰＣ５〜７の記憶装置との間でデータ転送を実行する（７０６）。この場合も実施の形態１と同様に、ＳＣＳＩバス１１２および各テープドライブ装置５１０、５２０、５３０のパラメータが、第１〜第３条件のいずれかを満足しない場合には、データアクセス制御部５４１は、新たに内部バッファ書き込み閾値および内部バッファ読み出し閾値を設定することなく、アクセス要求を処理して外部ＰＣ５〜７の記憶装置との間でデータ転送を実行する。また、リクエストを受けたデータの転送が完了した場合には、処理を終了する（Ｓ７０７）。
【００７５】
上記のように内部バッファ閾値を設定したときのテープドライブ装置５１０、５２０、５３０の書き込み／読み出し動作は、以下のようになる。図９は、図６に示した各テープドライブ装置５１０、５２０、５３０における内部バッファ５１１、５２１、５３１の蓄積データ量の時間変化を示すグラフである。図９（ａ）は、テープドライブ装置５１０でのデータ書き込み時における内部バッファ５１１の蓄積データ量の時間変化を示すグラフである。図９（ｂ）は、テープドライブ装置５２０でのデータ読み出し時における内部バッファ５２１の蓄積データ量の時間変化を示すグラフである。図９（ｃ）は、テープドライブ装置５３０でのデータ書き込み時における内部バッファ５３１の蓄積データ量の時間変化を示すグラフである。
【００７６】
書き込みにおいて、データアクセス制御部５４１は、第１条件および第２条件により、他の全てのテープドライブ装置５１０〜５２０がデータ書き込みや読み出しのためにＳＣＳＩバス１１２を利用する時間を考慮しているので、例えば、バス調停において一番優先順位の低いテープドライブ装置５３０が、内部バッファ書き込み閾値に達しているにもかかわらずＳＣＳＩバス１１２の使用権がすぐに獲得できない場合であっても、テープドライブ装置５３０の内部バッファ５３１のデータがアンダフローする前にＳＣＳＩバス使用権を獲得して内部バッファ５３１にデータを補充できる可能性が高くなる。
【００７７】
例えば、テープドライブ装置５１０がホストＰＣ５０４と内部バッファ５１１との間でデータ転送する間（時刻ｔ０〜ｔ１）に、テープドライブ装置５３０において内部バッファ５３１からテープに転送されるデータ量は、高々、内部バッファ容量のＴ１・Ｒ３／Ｍ３＝１７％に誤差を加えた程度である。また、テープドライブ装置５２０がホストＰＣ５０４と内部バッファ５２１との間でデータ転送する間（時刻ｔ２〜ｔ３）に、テープドライブ装置５３０において内部バッファ５３１からテープに転送されるデータ量は、Ｔ２・Ｒ３／Ｍ３＝２４％に誤差を加えた程度である。従って、バス調停において一番優先順位の低いテープドライブ装置５３０が、時刻ｔ０において内部バッファ書き込み閾値に達しているにもかかわらず、テープドライブ装置５３０より優先順位の高いテープドライブ装置がすべてＳＣＳＩバス１１２を使用した後（時刻ｔ４）まで、アンダフローせずにテープへのデータ書き込みを続けることができる。
【００７８】
同時に、データアクセス制御部５４１は、第３条件と、内部バッファ書き込み閾値の上限値を上記のように定めることとにより、テープドライブ装置５３０がＳＣＳＩバス使用権獲得を待っている間に、すでにＳＣＳＩバス１１２を利用した、バス調停優先度が高いテープドライブ装置５１０〜５２０が再び内部バッファ書き込み閾値に到達することがないので、テープドライブ装置５３０は、内部バッファ５３１のデータがアンダフローする前にＳＣＳＩバス使用権を獲得して、内部バッファ５３１にデータを補充できる可能性がさらに高くなる。
【００７９】
例えば、テープドライブ装置５２０がＳＣＳＩバス１１２の使用を終了した時点（時刻ｔ３）で、テープドライブ装置５１０おいて内部バッファ５１１とテープとの間で転送されたデータ量は、高々内部バッファ容量のＴ２・Ｒ１／Ｍ１＝２０％に誤差を加えた程度である。従って、テープドライブ装置５２０がＳＣＳＩバス１１２の使用を終了してから、次にテープドライブ装置５３０がＳＣＳＩバス１１２の使用を終了するまで、テープドライブ装置５１０が再度ＳＣＳＩバス１１２の使用権を獲得することがなく、テープドライブ装置５３０は、速やかに、内部バッファ５３１にデータを補充することができる。
【００８０】
図１０は、図６に示した各テープドライブ装置５１０、５２０、５３０における内部バッファ５１１、５２１、５３１の蓄積データ量の時間変化を示すグラフである。図１０（ａ）は、テープドライブ装置５１０でのデータ書き込み時における内部バッファ５１１の蓄積データ量の時間変化を示すグラフである。図１０（ｂ）は、テープドライブ装置５２０でのデータ書き込み時における内部バッファ５２１の蓄積データ量の時間変化を示すグラフである。図１０（ｃ）は、テープドライブ装置５３０でのデータ読み出し時における内部バッファ５３１の蓄積データ量の時間変化を示すグラフである。
【００８１】
読み出しにおいて、データアクセス制御部５４１は、第１条件および第２条件により、他の全てのテープドライブ装置５１０〜５２０がデータ書き込みや読み出しのためにＳＣＳＩバス１１２を利用する時間を考慮しているので、例えば、テープドライブ装置５３０が内部バッファ読み出し閾値に達してからＳＣＳＩバス１１２の使用権をすぐに獲得できない場合であっても、テープドライブ装置５３０の内部バッファ５３１のデータがオーバフローする前にＳＣＳＩバス使用権を獲得して内部バッファからデータを取り出せる可能性が高くなる。
【００８２】
例えば、テープドライブ装置５１０がホストＰＣ５０４と内部バッファ５１１との間でデータ転送している間（時刻ｔ０〜ｔ１）に、テープドライブ装置５３０においてテープから内部バッファ５３１へ転送されるデータ量は、高々、内部バッファ容量のＴ１・Ｒ３／Ｍ３＝１７％に誤差を加えた程度であり、テープドライブ装置５２０がホストＰＣ５０４と内部バッファ５２１との間でデータ転送している間（時刻ｔ２〜ｔ３）、テープドライブ装置５３０においてテープから内部バッファ５３１へ転送されるデータ量は、内部バッファ容量のＴ２・Ｒ３／Ｍ３＝２４％に誤差を加えた程度である。従って、テープドライブ装置５３０は、ＳＣＳＩバス１１２の使用権を獲得する時刻ｔ４までの間、内部バッファ５３１のデータがオーバフローすることなくテープからのデータ読み出しを続けることができる。
【００８３】
同時に、データアクセス制御部５４１は、第３条件と、内部バッファ書き込み閾値の上限を上記のように定めることにより、テープドライブ装置５３０がＳＣＳＩバス使用権獲得を待っている間に、すでにＳＣＳＩバス１１２を利用した、バス調停優先度が高いテープドライブ装置５１０〜５２０が、再び内部バッファ書き込み閾値に到達することがないので、テープドライブ装置５３０の内部バッファ５３１のデータがオーバフローする前に、速やかにＳＣＳＩバス使用権を獲得し、内部バッファ５３１からデータを取り出せる可能性がさらに高くなる。例えば、テープドライブ装置５２０がＳＣＳＩバス１１２の使用を開始して（時刻ｔ２）から終了した時点（時刻ｔ３）までで、テープドライブ装置５１０において内部バッファ５１１とテープとの間で転送されたデータ量は、高々、内部バッファ容量のＴ２・Ｒ１／Ｍ１＝２０％に誤差を加えた程度である。これにより、テープドライブ装置５３０は、ＳＣＳＩバス１１２のバス調停優先順位に従って、ＳＣＳＩバス１１２の使用権を獲得することができ、内部バッファ５３１のデータがオーバフローする前に、内部バッファ５３１からデータを取り出すことができる。
【００８４】
以上のように、本発明の実施の形態２によれば、内部性能が異なるドライブ装置が複数混在する状況において、テープドライブ装置５３０が内部バッファ閾値に達してＳＣＳＩバスの使用権がすぐに獲得できない場合でも、他の全てのテープドライブ装置５１０〜５２０が書き込みや読み出しでＳＣＳＩバス１１２を利用する時間を考慮して内部バッファ閾値を決定することにより、テープドライブ装置５３０の内部バッファのデータがアンダフローまたはオーバフローする前にテープドライブ装置５３０がＳＣＳＩバス使用権を獲得してデータアクセス制御部５４１との間でデータ転送できる可能性が高くなる。同時にテープドライブ装置５３０がＳＣＳＩバス使用権獲得を待っている間にＳＣＳＩバス１１２を利用した、バス調停優先度が高いテープドライブ装置５１０〜５２０が再び閾値に到達することがないように内部バッファ閾値を決定しているのでテープドライブ装置５３０の内部バッファのデータがアンダフローまたはオーバフローする前にテープドライブ装置５３０がＳＣＳＩバス使用権を獲得できる可能性がさらに高くなる。
【００８５】
なお、本発明の実施の形態では、ドライブ装置をテープドライブ装置として説明したが、本発明はこれに限定されず、記録メディアがＣＤやＤＶＤ等である光ディスクドライブ装置であっても転送の効率化において効果がある。また、本発明は、磁気ディスクドライブ装置にも適用することができる。
【産業上の利用可能性】
【００８６】
本発明は、ＳＣＳＩバスなどのバスに並列に接続された、複数のテープドライブ装置、光ディスクドライブ装置または磁気ディスクドライブ装置などにより、テープ、光ディスクおよび磁気ディスクなどにデータを保存するデータ記憶システムとして有用である。また、そのようなデータ記憶システムにおいて、テープドライブ装置、光ディスクドライブ装置または磁気ディスクドライブ装置などの各ドライブ装置のバスアクセスを制御するバスアクセス制御装置およびバスアクセス制御方法として有用である。さらに、このようなバスアクセス制御方法をコンピュータに実行させるプログラムおよびそのプログラムを記録した記録媒体として有用である。
【図面の簡単な説明】
【００８７】
【図１】本発明の実施の形態１におけるデータ記憶システムの構成を示すブロック図である。
【図２】図１に示したデータアクセス制御部によるテープドライブ装置のバスリコネクトタイミング設定動作を示すフローチャートである。
【図３】（ａ）１つのテープドライブ装置の内部バッファ書き込み閾値の上限と下限とを内部バッファ使用率Ｕｗで示す図である。（ｂ）１つのテープドライブ装置の内部バッファ読み出し閾値の上限と下限とを内部バッファ使用率Ｕｒで示す図である。
【図４】図１に示した各テープドライブ装置２１〜２３における内部バッファの蓄積データ量の時間変化を示すグラフである。（ａ）テープドライブ装置２１でのデータ書き込み時における時間変化を示す。（ｂ）テープドライブ装置２２でのデータ読み出し時における時間変化を示す。（ｃ）テープドライブ装置２３でのデータ書き込み時における時間変化を示す。
【図５】図１に示した各テープドライブ装置２１〜２３における内部バッファの蓄積データ量の時間変化を示すグラフである。（ａ）テープドライブ装置２１でのデータ書き込み時における時間変化を示す。（ｂ）テープドライブ装置２２でのデータ書き込み時における時間変化を示す。（ｃ）テープドライブ装置２３でのデータ読み出し時における時間変化を示す。
【図６】実施の形態２のデータ記憶システムの構成を示すブロック図である。
【図７】テープドライブ装置の各パラメータ値の関係を示す対応表である。
【図８】図６に示したデータアクセス制御部によるテープドライブ装置のバスリコネクトタイミング設定動作を示すフローチャートである。
【図９】図６に示した各テープドライブ装置５１０、５２０、５３０における内部バッファの蓄積データ量の時間変化を示すグラフである。（ａ）テープドライブ装置５１０でのデータ書き込み時における時間変化を示す。（ｂ）テープドライブ装置５２０でのデータ読み出し時における時間変化を示す。（ｃ）テープドライブ装置５３０でのデータ書き込み時における時間変化を示す。
【図１０】図６に示した各テープドライブ装置５１０、５２０、５３０における内部バッファの蓄積データ量の時間変化を示すグラフである。（ａ）テープドライブ装置５１０でのデータ書き込み時における時間変化を示す。（ｂ）テープドライブ装置５２０でのデータ書き込み時における時間変化を示す。（ｃ）テープドライブ装置５３０でのデータ読み出し時における時間変化を示す。
【図１１】複数のテープドライブ装置を備えた従来のデータ記憶システムの構成を示すブロック図である。
【図１２】図１１に示した各テープドライブ装置１２１〜１２３における内部バッファの蓄積データ量の時間変化を示すグラフである。（ａ）テープドライブ装置１２１でのデータ書き込み時における時間変化を示す。（ｂ）テープドライブ装置１２２でのデータ読み出し時における時間変化を示す。（ｃ）テープドライブ装置１２３でのデータ書き込み時における時間変化を示す。
【符号の説明】
【００８８】
１    データ記憶システム
２    ＬＡＮ
３    テープライブラリ装置
４    ホストＰＣ
５〜７    外部ＰＣ
２１、２２、２３    テープドライブ装置
２４    マガジン
２５    メディア移動機構部
３１    制御部
３２    ヘッダ
３３    内部バッファ
４１    データアクセス制御部
４２    メモリ
４３    バスインタフェース部
１１２    ＳＣＳＩバス
【図１】
2004171541.tif 000003
【図２】
2004171541.tif 000004
【図３】
2004171541.tif 000005
【図４】
2004171541.tif 000006
【図５】
2004171541.tif 000007
【図６】
2004171541.tif 000008
【図７】
2004171541.tif 000009
【図８】
2004171541.tif 000010
【図９】
2004171541.tif 000011
【図１０】
2004171541.tif 000012
【図１１】
2004171541.tif 000013
【図１２】
2004171541.tif 000014