(57)【要約】【課題】外部装置に対する応答時間のばらつきを抑制する通信装置、通信方法、及び通信プログラムを提供する。【解決手段】ホストインタフェース１１０は複数のホスト２００とＬＡＮケーブル４００を介して通信する。そして、制御部１２０は、１のホスト２００から一度に連続して受信可能な連続データ受信可能量、もしくは／および、１のホスト２００へ一度に連続して送信可能な連続データ送信可能量基づいて、ホストインタフェース１１０を制御する。この際、制御部１２０は、所定のタイミングで、連続データ受信可能量もしくは／および連続データ送信可能量を変更する。【選択図】図１
2012205140.tif 000002
【特許請求の範囲】
【請求項１】
複数の外部装置からのデータが交互に通過する共有回線を介し、複数の外部装置と通信する通信手段と、
１の外部装置から一度に連続して受信可能な連続データ受信可能量、もしくは／および、１の外部装置へ一度に連続して送信可能な連続データ送信可能量を設定する設定手段と、
前記連続データ受信可能量もしくは／および前記連続データ送信可能量に基づいて、複数の外部装置との通信を制御する通信制御手段と、
所定のタイミングで、前記連続データ受信可能量もしくは／および前記連続データ送信可能量を変更する変更手段と、を備える、
ことを特徴とする通信装置。
【請求項２】
前記変更手段は、外部装置からデータの送信を要求された際に、前記連続データ送信可能量を変更する、
ことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記変更手段は、外部装置からデータの受入れを要求された際に、前記連続データ受信可能量を変更する、
ことを特徴とする請求項１または２に記載の通信装置。
【請求項４】
前記変更手段は、一定時間毎に、前記連続データ送信可能量もしくは／および前記連続データ受信可能量を変更する、
ことを特徴とする請求項１乃至３のいずれか１項に記載の通信装置。
【請求項５】
複数の外部装置との単位時間あたりの通信データ量を取得する取得手段、を備え、
前記変更手段は、前記取得手段で取得した通信データ量に基づいて取得した値に、前記連続データ受信可能量もしくは／および前記連続データ送信可能量を変更する、
ことを特徴とする請求項１乃至４のいずれか１項に記載の通信装置。
【請求項６】
共有回線を介して接続されている外部装置の接続数を取得する接続数取得手段、を備え、
前記変更手段は、前記取得手段で取得した通信データ量を前記接続数で分割して算出した１外部装置あたりの通信データ量に基づいて取得した値に、前記連続データ送信可能量もしくは／および前記連続データ受信可能量を変更する、
ことを特徴とする請求項５に記載の通信装置。
【請求項７】
前記取得手段は、一定時間内の通信データ量を平均して単位時間あたりの通信データ量を算出する、
ことを特徴とする請求項５または６に記載の通信装置。
【請求項８】
外部装置より受信したデータ、もしくは／および、外部装置に送信するデータを記憶する記憶手段、をさらに備える、
ことを特徴とする請求項１乃至７のいずれか１項に記載の通信装置。
【請求項９】
複数の外部装置からのデータが交互に通過する共有回線を介し、複数の外部装置と通信する通信ステップと、
１の外部装置から一度に連続して受信可能な連続データ受信可能量、もしくは／および、１の外部装置へ一度に連続して送信可能な連続データ送信可能量を設定する設定ステップと、
前記連続データ受信可能量もしくは／および前記連続データ送信可能量に基づいて、複数の外部装置との通信を制御する通信制御ステップと、
所定のタイミングで、前記連続データ受信可能量もしくは／および前記連続データ送信可能量を変更する変更ステップと、を有する、
ことを特徴とする通信方法。
【請求項１０】
コンピュータに、
複数の外部装置からのデータが交互に通過する共有回線を介し、複数の外部装置と通信する通信ステップと、
１の外部装置から一度に連続して受信可能な連続データ受信可能量、もしくは／および、１の外部装置へ一度に連続して送信可能な連続データ送信可能量を設定する設定ステップと、
前記連続データ受信可能量もしくは／および前記連続データ送信可能量に基づいて、複数の外部装置との通信を制御する通信制御ステップと、
所定のタイミングで、前記連続データ受信可能量もしくは／および前記連続データ送信可能量を変更する変更ステップと、を実行させる、
ことを特徴とする通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信方法、及び通信プログラムに関する。
【背景技術】
【０００２】
ｉＳＣＳＩ（Ｉｎｔｅｒｎｅｔ  ＳＣＳＩ）は、ＴＣＰ／ＩＰベースでＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）の構築を可能とする技術である。ｉＳＣＳＩに準拠した装置同士であれば、インターネット等を介し、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）コマンドベースで通信することが可能になる。特許文献１には、ｉＳＣＳＩに準拠した２台の装置間でデータを送受信するネットワークシステムが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−００９４７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に示すような１対１のシステムでは、他の装置の影響は考慮しなくてもよいので、通常、複数のＴＣＰ／ＩＰパケットにまたがって一定量バーストでデータを送受信する。しかしながら、例えば、１台のディスクアレイ装置に複数台の外部装置（例えば、ホストコンピュータ）が接続されるような１対複数のシステム場合、１の外部装置がバースト転送等によりディスクアレイ装置の通信ポートを占有してしまうと、ディスクアレイ装置は、その間、他の外部装置の通信に対して応答できなくなる。つまり、１対複数のシステムには、通信の状態次第で応答時間にばらつきが出るという問題がある。
【０００５】
本発明はこのような問題に鑑みてなされたものであり、外部装置に対する応答時間のばらつきを抑制する通信装置、通信方法、及び通信プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の第１の観点にかかる通信装置は、
複数の外部装置からのデータが交互に通過する共有回線を介し、複数の外部装置と通信する通信手段と、
１の外部装置から一度に連続して受信可能な連続データ受信可能量、もしくは／および、１の外部装置へ一度に連続して送信可能な連続データ送信可能量を設定する設定手段と、
前記連続データ受信可能量もしくは／および前記連続データ送信可能量に基づいて、複数の外部装置との通信を制御する通信制御手段と、
所定のタイミングで、前記連続データ受信可能量もしくは／および前記連続データ送信可能量を変更する変更手段と、を備える、
ことを特徴とする。
【０００７】
上記目的を達成するため、本発明の第２の観点にかかる通信方法は、
複数の外部装置からのデータが交互に通過する共有回線を介し、複数の外部装置と通信する通信ステップと、
１の外部装置から一度に連続して受信可能な連続データ受信可能量、もしくは／および、１の外部装置へ一度に連続して送信可能な連続データ送信可能量を設定する設定ステップと、
前記連続データ受信可能量もしくは／および前記連続データ送信可能量に基づいて、複数の外部装置との通信を制御する通信制御ステップと、
所定のタイミングで、前記連続データ受信可能量もしくは／および前記連続データ送信可能量を変更する変更ステップと、を有する、
ことを特徴とする。
【０００８】
上記目的を達成するため、本発明の第３の観点にかかる通信プログラムは、
コンピュータに、
複数の外部装置からのデータが交互に通過する共有回線を介し、複数の外部装置と通信する通信ステップと、
１の外部装置から一度に連続して受信可能な連続データ受信可能量、もしくは／および、１の外部装置へ一度に連続して送信可能な連続データ送信可能量を設定する設定ステップと、
前記連続データ受信可能量もしくは／および前記連続データ送信可能量に基づいて、複数の外部装置との通信を制御する通信制御ステップと、
所定のタイミングで、前記連続データ受信可能量もしくは／および前記連続データ送信可能量を変更する変更ステップと、を実行させる、
ことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、外部装置に対する応答時間のばらつきを抑制する通信装置、通信方法、及び通信プログラムを提供することができる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態に係るディスクアレイ装置の構成を示すブロック図である。
【図２】ＰＤＵがＩＰパケットにパッケージされて送信されることを説明するための図である。
【図３】分割データ転送長を算出するための平均データ転送長保存テーブルを説明するための図である。
【図４】１の外部装置から一度に連続して受信可能な「連続データ受信可能量」、および、１の外部装置に一度に連続して送信可能な「連続データ送信可能量」を説明するための図であり、（Ａ）は連続データ受信可能量を、（Ｂ）は連続データ送信可能量を示す図である。
【図５】本実施形態に係るデータ送受信処理を説明するためのフローチャートである。
【図６】ホストとディスクアレイ装置の間でデータを送受信するための簡略化されたシーケンスを説明するための図であり、（Ａ）はディスクアレイ装置にデータを記録するライトシーケンスを、（Ｂ）はディスクアレイ装置からデータを読み取るリードシーケンスをそれぞれ説明するための図である。
【図７】図５に示すデータ送受信処理で実行される分割データ転送長決定処理を説明するためのフローチャートである。
【図８】本実施形態に係るタイマ割込処理を説明するためのフローチャートである。
【図９】図８に示すタイマ割込処理で実行されるデータ送信処理を説明するためのフローチャートである。
【図１０】図８に示すタイマ割込処理で実行されるＲ２Ｔ送信処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本実施形態に係るディスクアレイ装置について、図面を参照しながら説明する。ディスクアレイ装置１００は、複数の外部装置（ホスト２００ａ〜ｃ）と、ｉＳＣＳＩに従って通信するストレージ装置である。ディスクアレイ装置１００は、図１に示すように、ホストインタフェース１１０と、制御部１２０と、データ記憶部１３０と、タイマ１４０と、記憶部１５０とから構成される。
【００１２】
ホストインタフェース１１０は、ＬＡＮポート等から構成され、ＴＣＰ／ＩＰに従ってホスト２００ａ〜ｃと通信する。ホストインタフェース１１０は、ＬＡＮケーブル４００でスイッチングハブ３００と接続されていて、ホスト２００ａ〜ｃからＩＰパケットを受信すると、そのＩＰパケットの中からｉＳＣＳＩ  ＰＤＵ（ｉＳＣＳＩ  Ｐｒｏｔｏｃｏｌ  Ｄａｔａ  Ｕｎｉｔ）を取り出し、送信元ホストのＩＰアドレスとともに、制御部１２０に送信する。ここで、「ｉＳＣＳＩ  ＰＤＵ」とは、インターネット等を介してＳＣＳＩコマンド等のやり取りを可能にするためのｉＳＣＳＩに準拠したパケットデータのことをいう（以下、ｉＳＣＳＩ  ＰＤＵを単に「ＰＤＵ」という）。このＰＤＵは、例えば、図２（Ａ）に示すように、ＩＰパケットにパッケージされて相手装置に送信される。また、ＰＤＵが１つのＩＰパケットに収まらない場合は、図２（Ｂ）に示すように、複数のＩＰパケットに分割して送信される。
【００１３】
また、ホストインタフェース１１０は単位時間（１００ｍｓ）ごとに、ホスト２００ａ〜ｃとの通信データ量（例えば、単位時間内に送受信したＰＤＵの総データ量）を集計し、制御部１２０を介して後述の平均データ転送長記憶テーブル１５１に記録する。
【００１４】
制御部１２０は、プロセッサ等から構成され、記憶部１５０に格納されているプログラムに従って動作し、後述の「データ送受信処理」、「タイマ割込処理」を含む種々の動作を実行する。
【００１５】
データ記憶部１３０は、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）構成とされた複数台のハードディスクから構成され、ホスト２００ａ〜ｃから受信したデータを、制御部１２０のＲＡＩＤ制御に従って記憶する。
【００１６】
タイマ１４０は、タイマ番号ａ〜ｃの３つの割込タイマから構成され、制御部１２０に対し「タイマ割込処理」の起動トリガとなる割込信号を送信する。このタイマ１４０は「データ送受信処理」等で制御部１２０によりセットされる（例えば、受信したＰＤＵが、ホスト“ａ”のＩＰアドレスから送信されたものであれば、タイマ“ａ”に割込時間がセットされる）。セットされた時間経過後、タイマ１４０は、割込をかけるタイマの情報（ａ〜ｃ）とともに、制御部１２０に割込信号を送信する。
【００１７】
記憶部１５０は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等から構成され、平均データ転送長記憶テーブル１５１や分割データ転送長１５２等の各種データを記憶する。
【００１８】
平均データ転送長記憶テーブル１５１は、直近５秒間のホスト２００との通信データ量を記憶しておくためのテーブルであり、図３に示すように、１〜５０のレコード番号が振られた５０個のレコードから構成される。このレコード１つ１つには、ホスト２００との単位時間あたりの通信データ量が記録されていて、ホストインタフェース１１０によって逐次更新される。例えば、現在時刻が１時２３分４５秒６００ミリ秒なのであれば、１時２３分４５秒６００ミリ秒を５秒で割った余り６００ｍｓを、さらに単位時間１００ｍｓで割ったときの商６に該当するレコード番号のレコードに、直近１００ｍｓの通信データ量が上書される。これにより、平均データ転送長記憶テーブル１５１には、常に、直近５秒間（１００ｍｓ×５０）の通信データ量が保存される。
【００１９】
分割データ転送長１５２には、１の外部装置から一度に連続して受信可能な「連続データ受信可能量」、および、１の外部装置に一度に連続して送信可能な「連続データ送信可能量」が保存されている。ここで、「連続データ受信可能量」とは、図４（Ａ）に示すように、ホストインタフェース１１０が、１の外部装置から１または複数のＩＰパケットを連続して受信する際の、ＰＤＵの上限データ量のことをいう。また、「連続データ送信可能量」とは、図４（Ｂ）に示すように、ホストインタフェース１１０が、１の外部装置に１または複数のＩＰパケットを連続して送信する際の、ＰＤＵの上限データ量のことをいう。この分割データ転送長１５２は制御部１２０によって所定のタイミングで設定または更新される（詳細は「データ送受信処理」で後述する）。
【００２０】
次に、このような構成を有するディスクアレイ装置１００の動作について説明する。ホストインタフェース１１０はホスト２００からＩＰパケットを受信すると、そのＩＰパケットからＰＤＵを取り出し、制御部１２０に送信する。制御部１２０はホストインタフェース１１０からＰＤＵを受信すると、図５に示す「データ送受信処理」を開始する。
【００２１】
なお、以下の説明では、理解を容易にするため、ホストインタフェース１１０とホスト２００ａ〜ｃは、図６に示す簡略化されたシーケンスでデータを送受信するものとする（つまり、レスポンスＰＤＵやＴＣＰ  ＡＣＫ等は省略する）。
【００２２】
例えば、ホストインタフェース１１０が、図６（Ａ）に示すように、ホスト２００ａから、ライトデータの受け入れを要求する「ライトコマンドＰＤＵ」を受信したのであれば、ホストインタフェース１１０は、ライトデータを受け入れ可能になったタイミングでホスト２００ａに対し受け入れ準備完了を示す「Ｒ２Ｔ（Ｒｅａｄｙ  ｔｏ  ｔｒａｎｓｆｅｒ）  ＰＤＵ」を送信する。Ｒ２Ｔ  ＰＤＵには、ディスクアレイ装置１００が一度に受け入れ可能なデータ量（以下「要求ライト長」という）が記載されていて、ホスト２００ａは、その要求ライト長に基づいて、「Ｄａｔａ−ｏｕｔ  ＰＤＵ」にライトデータをパッケージして送信する。ホストインタフェース１１０とホスト２００ａは、ライトデータの送信が全て完了するまで「Ｒ２Ｔ  ＰＤＵ」と「Ｄａｔａ−ｏｕｔ  ＰＤＵ」の送受信を繰り返す。
【００２３】
また、ホストインタフェース１１０が、図６（Ｂ）に示すように、ホスト２００ａから、データの送信を要求する「リードコマンドＰＤＵ」を受信したのであれば、ホストインタフェース１１０はリードコマンドＰＤＵで指定されたデータを複数の「Ｄａｔａ−ｉｎ  ＰＤＵ」にパッケージして、順次、ホスト２００ａに送信する。
【００２４】
以下、図５のフローチャートを参照して「データ送受信処理」を説明する。
【００２５】
最初に、制御部１２０は、ホストインタフェース１１０から受信したＰＤＵが、Ｄａｔａ−ｏｕｔ  ＰＤＵか、リード／ライトコマンドＰＤＵかを判別する（ステップＳ１００）。
【００２６】
ＰＤＵがＤａｔａ−ｏｕｔ  ＰＤＵである場合（ステップＳ１００：Ｎｏ）、制御部１２０は、Ｄａｔａ−ｏｕｔ  ＰＤＵからライトデータを取り出し、そのデータをデータ記憶部に保存する（ステップＳ２００）。
【００２７】
一方、ＰＤＵがリード／ライトコマンドＰＤＵである場合（ステップＳ１００：Ｙｅｓ）、制御部１２０は、１の外部装置から一度に連続して送受信可能なデータ量を決定するため「分割データ転送長決定処理」を実行する（ステップＳ３００）。以下、図７のフローチャートを参照して「分割データ転送長決定処理」を説明する。
【００２８】
最初に、制御部１２０は、直近５秒間の単位時間（１００ｍｓ）あたりの平均データ転送長を算出する。（ステップＳ３０１）。例えば、平均データ転送長記憶テーブル１５１の５０個のレコードには、それぞれ直近５秒間の１００ｍｓ単位の通信データ量が記録されているので、制御部１２０は、５０個のレコード値を全て加算し、それを５０で割ることによって、単位時間あたりの平均データ転送長を算出する。
【００２９】
制御部１２０は算出した平均データ転送長が所定の最小値（例えば、３２Ｋバイト）以下か判別する（ステップＳ３０２）。平均データ転送長が所定の最小値以下の場合（ステップＳ３０２：Ｙｅｓ）、分割データ転送長１５２にその最小値をセットし（ステップＳ３０３）、分割データ転送長決定処理を終了する。
【００３０】
一方、平均データ転送長が最小値を超えている場合（ステップＳ３０２：Ｎｏ）、制御部１２０は、算出した平均データ転送長が所定の最大値（例えば、１Ｍバイト）以上か否かを判別する（ステップＳ３０４）。所定の最大値以上の場合（ステップＳ３０４：Ｙｅｓ）、分割データ転送長１５２にその最大値をセットし（ステップＳ３０５）、分割データ転送長決定処理を終了する。
【００３１】
平均データ転送長が最大値未満の場合（ステップＳ３０４：Ｎｏ）、制御部１２０は、平均データ転送長をホスト数（本実施形態の場合“３”）で割り、その値を分割データ転送長１５２にセットする（ステップＳ３０６）。
【００３２】
分割データ転送長１５２にデータのセットが完了したら、図５のフローチャートに戻り、制御部１２０は、受信したＰＤＵが、ライトコマンドＰＤＵであるかリードコマンドＰＤＵであるかを判別する（ステップＳ４００）。
【００３３】
受信したＰＤＵがライトコマンドＰＤＵである場合（ステップＳ４００：Ｙｅｓ）、制御部１２０は、制御部１２０のキャッシュメモリ（不図示）に接続ホスト数分のライトフラグ（ライトフラグａ〜ｃ）を用意して、そのうちの１つをＯＮにする（ステップＳ５００）。例えば、ディスクアレイ装置１００がホスト２００ａからライトコマンドＰＤＵを受信したのであれば、制御部１２０は、ホスト２００“ａ”に対応するライトフラグ“ａ”をＯＮする。
【００３４】
一方、受信したＰＤＵがリードコマンドＰＤＵである場合（ステップＳ４００：Ｎｏ）、制御部１２０は、制御部１２０のキャッシュメモリ（不図示）に接続ホスト数分のリードフラグ（リードフラグａ〜ｃ）を用意して、そのうちの１つをＯＮにする（ステップＳ６００）。例えば、ディスクアレイ装置１００がホスト２００ａからリードコマンドＰＤＵを受信したのであれば、ホスト２００“ａ”に対応するリードフラグ“ａ”をＯＮする。
【００３５】
そして、制御部１２０は、後述の「タイマ割込処理」を開始するため、３つのタイマの１つに所定の割込時間をセットする（ステップＳ７００）。例えば、ホスト２００“ａ”からＰＤＵを受信したのであれば、タイマ“ａ”に割込時間をセットする。なお、この割込時間はあらかじめ記憶部１５０等に記憶しておいた一定値であってもよいし、毎回異なった値（例えば、タイマに時間をセットする度にランダムに決定した値）であってもよい。割込時間をセットしたら、制御部１２０は「データ送受信処理」を終了する。
【００３６】
「データ送受信処理」終了後、ステップＳ７００でセットされた時間が経過したら、タイマ１４０は、制御部１２０に割込信号を送信する。制御部１２０はタイマ１４０から割込信号を受信したら、図８に示すタイマ割込処理を開始する。以下、図８のフローチャートを参照して「タイマ割込処理」について説明する。
【００３７】
最初に、制御部１２０は、キャッシュメモリに保存されているリードフラグ（タイマａから割込をかけられたのであればリードフラグａ）がＯＮかＯＦＦかを判別する（ステップＳ８００）。リードフラグがＯＦＦの場合（ステップＳ８００：Ｎｏ）、ステップＳ１０００に処理を進める。リードフラグがＯＮの場合（ステップＳ８００：Ｙｅｓ）、制御部１２０は、該当ホストにリードデータを送信するための「データ送信処理」を開始する（ステップＳ９００）。以下、図９のフローチャートを参照して「データ送信処理」を説明する。
【００３８】
データ送信処理が開始されたら、制御部１２０は、データ記憶部から該当データを取り出し、Ｄａｔａ−ｉｎ  ＰＤＵにパッケージする。この際、制御部１２０は、Ｄａｔａ−ｉｎ  ＰＤＵのデータ量が分割データ転送長１５２に記録されたデータ量以下となるようにデータを取り出す。そして、パッケージしたＤａｔａ−ｉｎ  ＰＤＵを該当ホストに送信する（ステップＳ９０１）。
【００３９】
次に、制御部１２０はホスト２００から要求されたデータを全て送信したか判別する（ステップＳ９０２）。データを全て送信完了している場合（ステップＳ９０２：Ｙｅｓ）、リードフラグをオフにして（ステップＳ９０３）、「データ送信処理」を終了する。一方、データを全て送信完了していない場合（ステップＳ９０２：Ｎｏ）、再びタイマに所定の割込時間をセットし（ステップＳ９０４）、「データ送信処理」を終了する。
【００４０】
データ送信処理が完了したら、制御部１２０は、図８のフローチャートに戻り、ライトフラグ（タイマａから割込をかけられたのであればライトフラグａ）がＯＮかＯＦＦかを判別する（ステップＳ１０００）。ライトフラグがＯＦＦの場合（ステップＳ１０００：Ｎｏ）、「タイマ割込処理」を終了する。ライトフラグがＯＮの場合（ステップＳ１０００：Ｙｅｓ）、制御部１２０は、ホスト２００にデータ受け入れ準備完了を通知するため、「Ｒ２Ｔ送信処理」を開始する（ステップＳ１１００）。以下、図１０のフローチャートを参照して「Ｒ２Ｔ送信処理」を説明する。
【００４１】
Ｒ２Ｔ送信処理が開始されると、制御部１２０は、Ｄａｔａ−ｏｕｔ  ＰＤＵの受信が全て完了しているか否かを判別する（ステップＳ１１０１）。例えば、ｉＳＣＳＩ規格では、Ｄａｔａ−ｏｕｔ  ＰＤＵの中にＦｉｎａｌフラグが用意されることになっていて、ホストは最後のＤａｔａ−ｏｕｔ  ＰＤＵを送信する際に、このＦｉｎａｌフラグをＯＮにする。そこで、制御部１２０は、Ｄａｔａ−ｏｕｔ  ＰＤＵを処理する際（具体的にはステップＳ２００の処理の際）に、このＦｉｎａｌフラグをＤａｔａ−ｏｕｔ  ＰＤＵから抜き出してキャッシュメモリ（不図示）に保存しておく。そして、制御部１２０は、本ステップにおいて、キャッシュメモリに保存したＦｉｎａｌフラグがＯＮかＯＦＦかを判別することによって、最後のＤａｔａ−ｏｕｔ  ＰＤＵの受信が完了しているか否かを判別する。
【００４２】
最後のＤａｔａ−ｏｕｔ  ＰＤＵの受信が完了している場合（ステップＳ１１０１：Ｙｅｓ）、該当のライトフラグをＯＦＦにし（ステップＳ１１０２）、「Ｒ２Ｔ送信処理」および「タイマ割込処理」を終了する。
【００４３】
最後のＤａｔａ−ｏｕｔ  ＰＤＵの受信が完了していない場合（ステップＳ１１０１：Ｎｏ）、ステップＳ３００の「分割データ転送長決定処理」で算出した分割データ転送長１５２を、Ｒ２Ｔ  ＰＤＵの中の「要求ライト長」にセットし、Ｒ２Ｔ  ＰＤＵを該当ホストに送信する（ステップＳ１１０３）。送信が完了したら「Ｒ２Ｔ送信処理」および「タイマ割込処理」を終了する。
【００４４】
本実施形態によれば、連続データ送信可能量および連続データ受信可能量に基づいて、ＰＤＵを分割して送受信しているので、１のホストが大きなデータを連続して送受信する場合であっても、応答時間のばらつきを抑制することができる。
【００４５】
また、連続データ送信可能量および連続データ受信可能量を固定の値とした場合、通信量の多いホストと通信量の少ないホストとの間で、応答時間に不均衡が出る（すなわち、通信量の多いホストはすぐに応答されるにも関わらず、通信量の少ないホストは必ず固定時間待たされる）場合があった。しかし、本実施形態では、“動的”に、すなわち、コマンドＰＤＵを受信する度に、連続データ送受信可能量を変更しているので、応答時間の不均衡は抑制され、応答時間を効率よく平準化することができる。
【００４６】
具体的には、通信量の多い２つのホストと通信を行っている時は、その通信量の平均値、すなわち「連続データ送信可能量」および「連続データ受信可能量」は比較的大きな値となり、通信量の多いホストと少ないホストとの間で通信を行っている時は、その通信量の平均値、すなわち「連続データ送信可能量」および「連続データ受信可能量」は比較的小さな値となる。そのため、通信量の多いホストと少ないホストとの間で通信を行っている時に、通信量の少ないホストが常に固定時間待たされることがなくなり、通信量の多いホストと少ないホストとの間の応答時間の不均衡を抑制することができる。
【００４７】
なお、本実施形態では、コマンドＰＤＵを受信する度に（ステップＳ１００）、分割データ転送長決定処理（ステップＳ３００）を実行したが、分割データ転送長決定処理はＰＤＵを受信するたびに実行してもよく、ＰＤＵを送信する度に実行してもよい。また、タイマ割り込み等を使用して、一定時間毎に実行してもよい。
【００４８】
また、本実施形態では、平均データ転送長を算出するための単位時間を１００ｍｓとしたが、平均データ転送長を算出するための単位時間は１００ｍｓに限られない。例えば、５０ｍｓであってもよいし、５００ｍｓであってもよい。
【００４９】
また、本実施形態では、平均データ転送長記憶テーブル１５１に保存する通信データ量を直近５秒間の通信データ量としたが平均データ転送長記憶テーブル１５１に保存する通信データ量は直近５秒間の通信データ量に限られない。例えば、直近１秒間の通信データ量であってもよいし、直近１０秒間の通信データ量であってもよい。
【００５０】
また、ステップＳ３０６では、平均データ転送長をホスト数で割ることで、分割データ転送長１５２を算出したが、平均データ転送長を接続ホスト数で割ることで、分割データ転送長１５２を算出してもよい。この際、「接続ホスト数」は、例えば、装置間の認証が完了し、ＳＣＳＩコマンドの送受信ができる状態（以下、「ログイン」という）のホスト２００の数であってもよいし、ログインしたホスト２００のうち一定時間（例えば２０分間）内に通信があったホスト２００の数であってもよい。
【００５１】
また、本実施形態では通信プロトコルにｉＳＣＳＩを使ったが、他のプロトコル、例えば、ファイバーチャネル（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）や、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）とＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を統合するＦＣｏＥ等を使ってもよい。また、ｉＳＣＳＩとＦＣｏＥとが、ディスクアレイ装置１００上の同一ポートで動作する方式であってもよい。本実施形態と同様に応答時間を平準化することができる。
【００５２】
また、本実施形態では「連続データ受信可能量」を、１の外部装置から１度に連続受信可能なＰＤＵのデータ量としたが、「連続データ受信可能量」は、１の外部装置から１度に連続受信可能なＩＰパケットのデータ量であってもよいし、１の外部装置から１度に連続受信可能なライトデータのデータ量であってもよい。
【００５３】
また、本実施形態では「連続データ送信可能量」を、１の外部装置に対し１度に連続送信可能なＰＤＵのデータ量としたが、「連続データ送信可能量」は、１の外部装置に対し１度に連続送信可能なＩＰパケットのデータ量であってもよいし、１の外部装置に対し１度に連続送信可能なリードデータのデータ量であってもよい。
【００５４】
本実施形態のディスクアレイ装置１００は、専用のシステムによらず、通常のコンピュータシステムを用いても実現可能である。例えば、上述の動作を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に格納して配布し、該プログラムをコンピュータにインストールして、上述の処理を実行することによってディスクアレイ装置１００を構成してもよい。また、インターネット等のネットワーク上のサーバ装置が備えるディスク装置に格納しておき、例えばコンピュータにダウンロード等できるようにしてもよい。また、上述の機能を、ＯＳとアプリケーションソフトとの共同により実現してもよい。この場合には、ＯＳ以外の部分のみを媒体に格納して配布してもよく、また、コンピュータにダウンロード等してもよい。
【００５５】
上記プログラムを記録する記録媒体としては、ＵＳＢメモリ、フレキシブルディスク、ＣＤ、ＤＶＤ、Ｂｌｕ−ｒａｙ  Ｄｉｓｃ（登録商標）、ＭＯ、ＳＤカード、メモリースティック（登録商標）、その他、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリ、磁気テープ等のコンピュータ読取可能な記録媒体を使用することができる。また、ＨＤＤ（ハードディスク）やＳＳＤ（ソリッドステートドライブ）等、通常、システム又は装置に固定して使用する記録媒体を使用することもできる。
【００５６】
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００５７】
（付記１）
複数の外部装置からのデータが交互に通過する共有回線を介し、複数の外部装置と通信する通信手段と、
１の外部装置から一度に連続して受信可能な連続データ受信可能量、もしくは／および、１の外部装置へ一度に連続して送信可能な連続データ送信可能量を設定する設定手段と、
前記連続データ受信可能量もしくは／および前記連続データ送信可能量に基づいて、複数の外部装置との通信を制御する通信制御手段と、
所定のタイミングで、前記連続データ受信可能量もしくは／および前記連続データ送信可能量を変更する変更手段と、を備える、
ことを特徴とする通信装置。
【００５８】
（付記２）
前記変更手段は、外部装置からデータの送信を要求された際に、前記連続データ送信可能量を変更する、
ことを特徴とする付記１に記載の通信装置。
【００５９】
（付記３）
前記変更手段は、外部装置からデータの受入れを要求された際に、前記連続データ受信可能量を変更する、
ことを特徴とする付記１または２に記載の通信装置。
【００６０】
（付記４）
前記変更手段は、一定時間毎に、前記連続データ送信可能量もしくは／および前記連続データ受信可能量を変更する、
ことを特徴とする付記１乃至３のいずれか１つに記載の通信装置。
【００６１】
（付記５）
複数の外部装置との単位時間あたりの通信データ量を取得する取得手段、を備え、
前記変更手段は、前記取得手段で取得した通信データ量に基づいて取得した値に、前記連続データ受信可能量もしくは／および前記連続データ送信可能量を変更する、
ことを特徴とする付記１乃至４のいずれか１つに記載の通信装置。
【００６２】
（付記６）
共有回線を介して接続されている外部装置の接続数を取得する接続数取得手段、を備え、
前記変更手段は、前記取得手段で取得した通信データ量を前記接続数で分割して算出した１外部装置あたりの通信データ量に基づいて取得した値に、前記連続データ送信可能量もしくは／および前記連続データ受信可能量を変更する、
ことを特徴とする付記５に記載の通信装置。
【００６３】
（付記７）
前記取得手段は、一定時間内の通信データ量を平均して単位時間あたりの通信データ量を算出する、
ことを特徴とする付記５または６に記載の通信装置。
【００６４】
（付記８）
外部装置より受信したデータ、もしくは／および、外部装置に送信するデータを記憶する記憶手段、をさらに備える、
ことを特徴とする付記１乃至７のいずれか１つに記載の通信装置。
【００６５】
（付記９）
複数の外部装置からのデータが交互に通過する共有回線を介し、複数の外部装置と通信する通信ステップと、
１の外部装置から一度に連続して受信可能な連続データ受信可能量、もしくは／および、１の外部装置へ一度に連続して送信可能な連続データ送信可能量を設定する設定ステップと、
前記連続データ受信可能量もしくは／および前記連続データ送信可能量に基づいて、複数の外部装置との通信を制御する通信制御ステップと、
所定のタイミングで、前記連続データ受信可能量もしくは／および前記連続データ送信可能量を変更する変更ステップと、を有する、
ことを特徴とする通信方法。
【００６６】
（付記１０）
コンピュータに、
複数の外部装置からのデータが交互に通過する共有回線を介し、複数の外部装置と通信する通信ステップと、
１の外部装置から一度に連続して受信可能な連続データ受信可能量、もしくは／および、１の外部装置へ一度に連続して送信可能な連続データ送信可能量を設定する設定ステップと、
前記連続データ受信可能量もしくは／および前記連続データ送信可能量に基づいて、複数の外部装置との通信を制御する通信制御ステップと、
所定のタイミングで、前記連続データ受信可能量もしくは／および前記連続データ送信可能量を変更する変更ステップと、を実行させる、
ことを特徴とする通信プログラム。
【符号の説明】
【００６７】
１００      ディスクアレイ装置
１１０      ホストインタフェース
１２０      制御部
１３０      データ記憶部
１４０      タイマ
１５０      記憶部
１５１      平均データ転送長記憶テーブル
１５２      分割データ転送長
２００      ホスト
３００      スイッチングハブ
４００      ＬＡＮケーブル
【図１】
2012205140.tif 000003
【図２】
2012205140.tif 000004
【図３】
2012205140.tif 000005
【図４】
2012205140.tif 000006
【図５】
2012205140.tif 000007
【図６】
2012205140.tif 000008
【図７】
2012205140.tif 000009
【図８】
2012205140.tif 000010
【図９】
2012205140.tif 000011
【図１０】
2012205140.tif 000012