(57)【要約】【課題】複数のチャネルアダプタにおけるスループットの均一化を図ること。【解決手段】ＤＭＡ制御部４３は、キャッシュメモリ６０に記憶されたデータのリード要求を発行し、ブリッジチップ４４からキャッシュコントローラ７０へ送信する。状態情報通知部４７は、応答時間監視部４５において監視される応答時間が所定時間を超過すると、スループット計測部４６からスループットの計測値を取得し、応答時間遅延の情報およびバスの状態情報をキャッシュコントローラ７０へ通知する。抑制指示カウント部４８は、キャッシュコントローラ７０からリード要求の抑制指示が出された回数をカウントし、抑制指示回数を抑制制御部４９へ通知する。抑制制御部４９は、抑制指示カウント部４８から抑制指示回数が通知されると、抑制指示回数に応じた待機時間をＤＭＡ制御部４３へ指示してリード要求発行の抑制制御を行う。【選択図】        図２
2008197909.tif 000002
【特許請求の範囲】
【請求項１】
各々データの読み出しを要求するリード要求を発行する複数のチャネルアダプタとリード要求に応じたデータを返信するキャッシュコントローラとを備えたデータ転送装置であって、
前記チャネルアダプタは、
リード要求の発行によりデータ転送を制御する制御手段と、
前記制御手段によって制御されるデータ転送の応答時間を監視する監視手段と、
前記監視手段によって監視される応答時間が所定時間に達すると応答時間の遅延を前記キャッシュコントローラへ通知する通知手段と、
前記通知手段による通知後、前記キャッシュコントローラからリード要求発行の抑制指示が受信された場合に、前記制御手段におけるリード要求の発行を抑制する抑制手段と
を有することを特徴とするデータ転送装置。
【請求項２】
前記抑制手段は、
前記キャッシュコントローラから抑制指示を受信する受信手段と、
前記受信手段によって受信された抑制指示回数をカウントするカウント手段とを含み、
前記カウント手段によってカウントされた抑制指示回数に応じてリード要求発行を抑制することを特徴とする請求項１記載のデータ転送装置。
【請求項３】
前記抑制手段は、
リード要求発行の抑制を開始後、所定時間内に前記受信手段によって新たに抑制指示が受信されなければ、リード要求発行の抑制を解除することを特徴とする請求項２記載のデータ転送装置。
【請求項４】
前記キャッシュコントローラは、
スループットが所定の閾値以上のチャネルアダプタへリード要求発行の抑制指示を送信することを特徴とする請求項１記載のデータ転送装置。
【請求項５】
前記キャッシュコントローラは、
応答時間の遅延を通知したチャネルアダプタのスループットより所定割合以上大きいスループットを持つチャネルアダプタへリード要求発行の抑制指示を送信することを特徴とする請求項１記載のデータ転送装置。
【請求項６】
各々データの読み出しを要求するリード要求を発行する複数のチャネルアダプタとリード要求に応じたデータを返信するキャッシュコントローラとを備えたデータ転送装置におけるデータ転送方法であって、
前記チャネルアダプタが、
リード要求の発行によるデータ転送の応答時間を監視する監視工程と、
前記監視工程にて監視される応答時間が所定時間に達すると応答時間の遅延を前記キャッシュコントローラへ通知する通知工程と、
前記キャッシュコントローラからリード要求発行の抑制指示が受信された場合に、リード要求の発行を抑制する抑制工程と
を有することを特徴とするデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各々データの読み出しを要求するリード要求を発行する複数のチャネルアダプタとリード要求に応じたデータを返信するキャッシュコントローラとを備えたデータ転送装置およびデータ転送方法に関し、特に、複数のチャネルアダプタにおけるスループットの均一化を図ることができるデータ転送装置およびデータ転送方法に関する。
【背景技術】
【０００２】
近年のコンピュータの処理能力の向上に伴って、コンピュータが利用するデータは肥大化の一途をたどっており、膨大なデータを記憶しておくためのストレージに関する検討が多く行われている。具体的には、例えばＲＡＩＤ（Redundant Array of Independent Disks）と呼ばれ、複数のハードディスクドライブを組み合わせることにより、高速・大容量・高信頼性を実現するディスクシステムを構築する技術などが確立されている。
【０００３】
このＲＡＩＤなどのディスクシステムにおいては、データを記憶する複数のディスクを備えたディスクアレイ装置が上位装置であるホストコンピュータなどからコマンドを受け付け、データの書き込み（ライト）や読み出し（リード）が行われる。このとき、ホストコンピュータとディスクの間でやり取りされるデータは、ディスクアレイ装置内のキャッシュメモリにもキャッシュされ、以降の処理においては、キャッシュメモリからこのデータを読み出して高速化を図るのが一般的である。
【０００４】
また、ホストコンピュータとディスクアレイ装置の間のデータ転送を効率的に行うために、両者間に複数のチャネルが設けられ、ディスクアレイ装置内の複数のチャネルアダプタがホストコンピュータに接続される構成が採られることがある。この場合、ホストコンピュータとディスクアレイ装置内のキャッシュメモリとの間には、それぞれチャネルアダプタを含む複数のデータ転送経路が形成されることになる（例えば特許文献１参照）。
【０００５】
図８は、複数のデータ転送経路が形成されるディスクアレイ装置の一部を示すブロック図である。同図に示すように、このディスクアレイ装置は、それぞれホストコンピュータとの間でコマンドやデータのやり取りをする複数のチャネルアダプタ１−１〜４、各チャネルアダプタ１−１〜４によって入力されるコマンドやデータを１出力に変換するスイッチ２、データを一時的に記憶するキャッシュメモリ３、およびキャッシュメモリ３におけるデータの読み書きを制御するキャッシュコントローラ４を有している。
【０００６】
このようなディスクアレイ装置に対して、ホストコンピュータが例えばデータのリードを要求するコマンドを送信した場合、このコマンドは、チャネルアダプタ１−１〜４のいずれかによって受信され、データの読み出しを要求するリード要求がスイッチ２を経由してキャッシュコントローラ４へ送出される。そして、キャッシュコントローラ４によって、キャッシュメモリ３からデータが読み出され、読み出されたデータは、リード要求送信元のチャネルアダプタ１−１〜４へスイッチ２を介して返信され、ホストコンピュータへ提供される。
【０００７】
また、ディスクアレイ装置に対して、ホストコンピュータが例えばデータのライトを要求するコマンドとライト対象のデータとを送信した場合、このコマンドおよびデータは、チャネルアダプタ１−１〜４のいずれかによって受信され、データの書き込みを要求するライト要求がスイッチ２を経由してキャッシュコントローラ４へ送出される。そして、キャッシュコントローラ４によって、ライト要求に含まれるデータがキャッシュメモリ３に書き込まれるとともに、このデータは、図示しないハードディスクなどのディスクにも書き込まれる。
【０００８】
【特許文献１】特許第２５６７９２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述のようなディスクアレイ装置においては、複数のチャネルアダプタが設けられるため、それぞれのチャネルアダプタにおけるスループットが均一でないことがあるという問題がある。例えば、いずれかのチャネルアダプタがデータのリード処理を多く行い、その他のチャネルアダプタがデータのライト処理を多く行う場合、データのリードに関しては、リード要求を送出してから実際に読み出されたデータを受信するまでの間チャネルアダプタが他の処理を行うことがないため、リード処理を多く行うチャネルアダプタのスループットが低下してしまう。
【００１０】
また、複数のチャネルアダプタからの入力を１出力に変換するスイッチについては、汎用デバイスが利用されることがあるが、このようなスイッチは、各チャネルアダプタからのコマンドやデータを公平に出力する等価アービトレーションを行うとは限らず、スイッチの構成によってはチャネルアダプタのスループットが不均一になる。そして、たとえスイッチが等価アービトレーションを行っていても、上述のように、チャネルアダプタ間の処理がリード処理に偏ったりライト処理に偏ったりした場合は、それぞれのチャネルアダプタのスループットのバランスが悪くなる。
【００１１】
本発明はかかる点に鑑みてなされたものであり、複数のチャネルアダプタにおけるスループットの均一化を図ることができるデータ転送装置およびデータ転送方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明は、各々データの読み出しを要求するリード要求を発行する複数のチャネルアダプタとリード要求に応じたデータを返信するキャッシュコントローラとを備えたデータ転送装置であって、前記チャネルアダプタは、リード要求の発行によりデータ転送を制御する制御手段と、前記制御手段によって制御されるデータ転送の応答時間を監視する監視手段と、前記監視手段によって監視される応答時間が所定時間に達すると応答時間の遅延を前記キャッシュコントローラへ通知する通知手段と、前記通知手段による通知後、前記キャッシュコントローラからリード要求発行の抑制指示が受信された場合に、前記制御手段におけるリード要求の発行を抑制する抑制手段とを有することを特徴とする。
【００１３】
また、本発明は、上記発明において、前記抑制手段は、前記キャッシュコントローラから抑制指示を受信する受信手段と、前記受信手段によって受信された抑制指示回数をカウントするカウント手段とを含み、前記カウント手段によってカウントされた抑制指示回数に応じてリード要求発行を抑制することを特徴とする。
【００１４】
また、本発明は、上記発明において、前記抑制手段は、抑制指示回数に応じた待機時間だけリード要求発行を待機させることを特徴とする。
【００１５】
また、本発明は、上記発明において、前記抑制手段は、所定の単位時間に抑制指示回数を乗算してリード要求発行の待機時間を求めることを特徴とする。
【００１６】
また、本発明は、上記発明において、前記抑制手段は、リード要求発行の抑制を開始後、所定時間内に前記受信手段によって新たに抑制指示が受信されなければ、リード要求発行の抑制を解除することを特徴とする。
【００１７】
また、本発明は、上記発明において、前記カウント手段は、リード要求発行の抑制が解除されるたびに抑制指示回数のカウントをリセットすることを特徴とする。
【００１８】
また、本発明は、上記発明において、前記チャネルアダプタにおけるスループットを計測する計測手段をさらに有し、前記通知手段は、応答時間の遅延とともに前記計測手段によって計測されたスループットを通知することを特徴とする。
【００１９】
また、本発明は、上記発明において、前記チャネルアダプタにおけるスループットを計測する計測手段と、前記キャッシュコントローラによって要求された場合に、前記計測手段によって計測されたスループットを送信する送信手段とをさらに有することを特徴とする。
【００２０】
また、本発明は、上記発明において、前記キャッシュコントローラは、いずれか１つのチャネルアダプタから応答時間の遅延が通知された場合に、前記複数のチャネルアダプタへスループットの送信を要求することを特徴とする。
【００２１】
また、本発明は、上記発明において、前記キャッシュコントローラは、スループットが所定の閾値以上のチャネルアダプタへリード要求発行の抑制指示を送信することを特徴とする。
【００２２】
また、本発明は、上記発明において、前記キャッシュコントローラは、応答時間の遅延を通知したチャネルアダプタのスループットより所定割合以上大きいスループットを持つチャネルアダプタへリード要求発行の抑制指示を送信することを特徴とする。
【００２３】
また、本発明は、各々データの読み出しを要求するリード要求を発行する複数のチャネルアダプタとリード要求に応じたデータを返信するキャッシュコントローラとを備えたデータ転送装置におけるデータ転送方法であって、前記チャネルアダプタが、リード要求の発行によるデータ転送の応答時間を監視する監視工程と、前記監視工程にて監視される応答時間が所定時間に達すると応答時間の遅延を前記キャッシュコントローラへ通知する通知工程と、前記キャッシュコントローラからリード要求発行の抑制指示が受信された場合に、リード要求の発行を抑制する抑制工程とを有することを特徴とする。
【発明の効果】
【００２４】
本発明によれば、チャネルアダプタは、リード要求の発行によりデータ転送を制御し、制御されるデータ転送の応答時間を監視し、監視される応答時間が所定時間に達すると応答時間の遅延をキャッシュコントローラへ通知し、通知後、キャッシュコントローラからリード要求発行の抑制指示が受信された場合に、リード要求の発行を抑制する。このため、キャッシュコントローラから指定されたチャネルアダプタにおけるリード要求の発行が抑制され、このチャネルアダプタのスループットが低下する分、他のチャネルアダプタのスループットが向上する。したがって、キャッシュコントローラがスループットが比較的大きいチャネルアダプタを抑制対象のチャネルアダプタと決定することにより、複数のチャネルアダプタにおけるスループットの均一化を図ることができる。
【００２５】
また、本発明によれば、キャッシュコントローラから抑制指示を受信し、受信された抑制指示回数をカウントし、カウントされた抑制指示回数に応じてリード要求発行を抑制する。このため、リード要求発行の抑制後も依然としてスループットが大きく、抑制指示が繰り返して受信されたチャネルアダプタのスループットを確実に低下させて、他のチャネルアダプタのスループットを向上させることができる。
【００２６】
また、本発明によれば、抑制指示回数に応じた待機時間だけリード要求発行を待機させるため、抑制指示回数が多くなるほどリード要求の発行間隔を長くして、チャネルアダプタのスループットを低下させることができる。
【００２７】
また、本発明によれば、所定の単位時間に抑制指示回数を乗算してリード要求発行の待機時間を求めるため、抑制指示回数に比例して長くなる待機時間を求め、抑制指示回数が多くなるほどリード要求の発行間隔を確実に長くすることができる。
【００２８】
また、本発明によれば、リード要求発行の抑制を開始後、所定時間内に新たに抑制指示が受信されなければ、リード要求発行の抑制を解除するため、キャッシュコントローラは、抑制の解除を各チャネルアダプタに指示する必要がなく、キャッシュコントローラの処理負荷を軽減することができる。
【００２９】
また、本発明によれば、リード要求発行の抑制が解除されるたびに抑制指示回数のカウントをリセットするため、抑制の解除後も抑制指示回数が累積されることを防止し、不要な抑制が行われないようにすることができる。
【００３０】
また、本発明によれば、チャネルアダプタにおけるスループットを計測し、応答時間の遅延とともに計測されたスループットを通知するため、キャッシュコントローラは、応答時間の遅延が発生したチャネルアダプタにおけるスループットを把握することができる。
【００３１】
また、本発明によれば、チャネルアダプタにおけるスループットを計測し、キャッシュコントローラによって要求された場合に、計測されたスループットを送信するため、キャッシュコントローラは、すべてのチャネルアダプタにおけるスループットを把握することができ、スループットの大小からリード要求発行の抑制対象のチャネルアダプタを決定することができる。
【００３２】
また、本発明によれば、キャッシュコントローラは、いずれか１つのチャネルアダプタから応答時間の遅延が通知された場合に、複数のチャネルアダプタへスループットの送信を要求する。このため、すべてのチャネルアダプタにおけるスループットを把握することができ、スループットの大小からリード要求発行の抑制対象のチャネルアダプタを決定することができる。
【００３３】
また、本発明によれば、キャッシュコントローラは、スループットが所定の閾値以上のチャネルアダプタへリード要求発行の抑制指示を送信するため、スループットが比較的大きいチャネルアダプタを抑制対象とすることができ、リード要求発行の抑制によりこのチャネルアダプタのスループットを低下させてスループットの均一化を図ることができる。
【００３４】
また、本発明によれば、キャッシュコントローラは、応答時間の遅延を通知したチャネルアダプタのスループットより所定割合以上大きいスループットを持つチャネルアダプタへリード要求発行の抑制指示を送信する。このため、スループットが比較的大きいチャネルアダプタを抑制対象とすることができ、このチャネルアダプタのスループット低下分を応答時間が遅延したチャネルアダプタのスループット向上に用いることができる。
【発明を実施するための最良の形態】
【００３５】
以下、本発明に係る一実施の形態について、図面を参照して詳細に説明する。
【００３６】
図１は、本発明の一実施の形態に係るディスクアレイ装置１０の概略構成を示すブロック図である。同図に示すディスクアレイ装置１０は、ＤＭＡ（Direct Memory Access：ダイレクトメモリアクセス）が適用されるコンピュータシステムの一例であり、ファイバチャネルリンク３０Ａ、３０Ｂを介してホストコンピュータ２０Ａ、２０Ｂと接続されている。このディスクアレイ装置１０は、高信頼性を確保するために二重化構成が採られており、各構成要素が２系統ずつ（図中、参照符号に付加したＡ、Ｂによって区別する）備えられている。それぞれの系統の構成要素は互いに同等の機能を有するため、以下では一方の系統についてのみ構成要素の説明をする。
【００３７】
ディスクアレイ装置１０は、複数のチャネルアダプタ４０Ａ−１〜Ｎ（Ｎは２以上の自然数）、スイッチ５０Ａ、キャッシュメモリ６０Ａ、キャッシュコントローラ７０Ａ、ディスクアダプタ８０Ａ、スイッチ９０Ａ、およびディスク１００Ａを有している。
【００３８】
チャネルアダプタ４０Ａ−１〜Ｎは、それぞれがホストコンピュータ２０Ａとデータの送受信を行う通信インタフェースとしての機能を有するとともに、ＤＭＡによりデータ転送を行うＤＭＡチップを有している。チャネルアダプタ４０Ａ−１〜Ｎは、それぞれスイッチ５０Ａに接続するバスの状態を監視しており、必要に応じてバスの状態情報をキャッシュコントローラ７０Ａへ通知する。また、チャネルアダプタ４０−１〜Ｎは、キャッシュコントローラ７０Ａからリード要求発行の抑制が指示されると、リード要求発行の際に所定の待機時間だけ待機しながらリード要求を発行する。チャネルアダプタ４０−１〜Ｎの詳細な構成および動作については、後に詳述する。
【００３９】
スイッチ５０Ａは、リード要求やリード要求に応じたデータをチャネルアダプタ４０Ａ−１〜Ｎとキャッシュメモリ６０Ａとの間で中継する。このとき、スイッチ５０Ａは、チャネルアダプタ４０Ａ−１〜Ｎそれぞれから入力されたリード要求を１出力に変換した上でキャッシュコントローラ７０Ａへ中継する。
【００４０】
キャッシュメモリ６０Ａは、ホストコンピュータ２０Ａから複数のディスク１００Ａへ書き込まれるデータ、または複数のディスク１００Ａからホストコンピュータ２０Ａへ読み出されるデータを一時的に記憶する。
【００４１】
キャッシュコントローラ７０Ａは、キャッシュメモリ６０Ａにおけるデータの書き込みおよび読み出しを管理・制御する。具体的には、キャッシュコントローラ７０Ａは、例えばチャネルアダプタ４０Ａ−１〜Ｎから発行されスイッチ５０Ａを介して受信したリード要求に応じて、キャッシュメモリ６０Ａからデータを読み出し、このデータをチャネルアダプタ４０Ａ−１〜Ｎへ返信する。また、キャッシュコントローラ７０Ａは、チャネルアダプタ４０−１〜Ｎのいずれかからリード要求に対する応答時間の遅延が通知されると、すべてのチャネルアダプタ４０−１〜Ｎへバスの状態情報を要求し、得られた状態情報に基づいてリード要求の抑制をチャネルアダプタ４０−１〜Ｎに指示する。なお、キャッシュコントローラ７０Ａは、他方の系統のキャッシュコントローラ７０Ｂとキャッシュ間リンクによって接続されており、キャッシュメモリ６０Ａ、６０Ｂに書き込まれるデータが共有されるようになっている。
【００４２】
ディスクアダプタ８０Ａは、複数のディスク１００Ａとデータの送受信を行う通信インタフェースとしての機能を有する。すなわち、ディスクアダプタ８０Ａは、キャッシュメモリ６０Ａから読み出されたデータを複数のディスク１００Ａへ送信したり、キャッシュメモリ６０Ａへ書き込まれるデータを複数のディスク１００Ａから受信したりする。
【００４３】
スイッチ９０Ａは、複数のディスク１００Ａを接続するとともに、各ディスクとディスクアダプタ８０Ａの接続を切り替える。複数のディスク１００Ａは、例えば複数のハードディスクドライブからなり、それぞれのディスクがキャッシュメモリ６０Ａに読み書きされるデータを記憶している。
【００４４】
図２は、本実施の形態に係るチャネルアダプタ４０−１の要部構成を示すブロック図である。同図においては、図１の参照符号におけるＡ、Ｂの表記を省略し、例えばホストコンピュータ２０Ａ、２０Ｂをホストコンピュータ２０と表記している。図２に示すチャネルアダプタ４０−１は、光モジュール４１、プロトコルチップ４２、ＤＭＡ制御部４３、ブリッジチップ４４、応答時間監視部４５、スループット計測部４６、状態情報通知部４７、抑制指示カウント部４８、および抑制制御部４９を有している。なお、チャネルアダプタ４０−２〜Ｎも同様の構成を有している。
【００４５】
光モジュール４１は、ホストコンピュータ２０と接続され、ホストコンピュータ２０から光ファイバなどによって伝送される光信号を電気信号に変換し、プロトコルチップ４２から出力される電気信号を光信号に変換してホストコンピュータ２０へ伝送する。
【００４６】
プロトコルチップ４２は、ホストコンピュータ２０との接続に用いられるファイバチャネル（図１のファイバチャネルリンク３０Ａ、３０Ｂ）のプロトコルを制御するためのＬＳＩ（Large Scale Integration）である。プロトコルチップ４２は、チャネルアダプタ４０−１とホストコンピュータ２０との間でやり取りされるコマンドやデータを電気信号として光モジュール４１またはＤＭＡ制御部４３へ出力する。
【００４７】
ＤＭＡ制御部４３は、キャッシュコントローラ７０に接続されたキャッシュメモリ６０と通信するインタフェース機能およびＤＭＡ機能を有している。ＤＭＡ制御部４３は、図示しないＣＰＵなどのプロセッサからの指示に従って、キャッシュメモリ６０との間で通信処理を行い、ＤＭＡによるデータ転送を実行する。具体的には、例えばホストコンピュータ２０からユーザデータを読み出すコマンドが受信された場合、ＤＭＡ制御部４３は、キャッシュメモリ６０に記憶されたデータのリード要求を発行し、ブリッジチップ４４からキャッシュコントローラ７０へ送信する。このとき、ＤＭＡ制御部４３は、抑制制御部４９によって待機時間が指示されると、指示された待機時間だけリード要求発行を待機して抑制する。
【００４８】
ブリッジチップ４４は、スイッチ５０と接続され、ＤＭＡ制御部４３によって発行されるリード要求をスイッチ５０へ送信したり、リード要求に応じたデータをスイッチ５０から受信したりする。また、ブリッジチップ４４は、キャッシュコントローラ７０から状態情報が要求されると、その旨を状態情報通知部４７へ通知し、キャッシュコントローラ７０からリード要求の抑制指示が出されると、その旨を抑制指示カウント部４８へ通知する。
【００４９】
応答時間監視部４５は、ブリッジチップ４４とスイッチ５０を接続するバスを監視し、ブリッジチップ４４からスイッチ５０へ向けて送信されたリード要求に対してデータが返信されるまでの応答時間を監視する。そして、応答時間監視部４５は、応答時間が所定時間を超過すると、その旨を状態情報通知部４７へ通知する。
【００５０】
スループット計測部４６は、ブリッジチップ４４とスイッチ５０を接続するバスのスループットを計測する。そして、スループット計測部４６は、状態情報通知部４７から要求されると、計測によって得られたスループットの計測値を状態情報通知部４７へ出力する。なお、スループット計測部４６が計測するスループットが大きければ、チャネルアダプタ４０−１において送受信される単位時間当たりのデータ量が多く、スループットが小さければ、チャネルアダプタ４０−１において送受信される単位時間当たりのデータ量が少ないことを意味する。
【００５１】
状態情報通知部４７は、応答時間監視部４５から応答時間が所定時間を超過した旨が通知されると、スループット計測部４６からスループットの計測値を取得し、応答時間遅延の情報とともにバスの状態情報としてブリッジチップ４４およびスイッチ５０を介してキャッシュコントローラ７０へ通知する。また、状態情報通知部４７は、ブリッジチップ４４からキャッシュコントローラ７０によって状態情報が要求されている旨が通知されると、スループット計測部４６からスループットの計測値を取得し、バスの状態情報としてキャッシュコントローラ７０へ通知する。
【００５２】
抑制指示カウント部４８は、キャッシュコントローラ７０からリード要求の抑制指示が出された回数をカウントし、抑制指示回数を抑制制御部４９へ通知する。このとき、抑制指示カウント部４８は、抑制制御部４９によってリード要求の発行が抑制制御されている間のみ抑制指示のカウントアップを行い、リード要求の発行の抑制制御が終了するとカウントをリセットする。換言すれば、抑制指示カウント部４８は、抑制制御部４９から抑制制御の解除が通知されると、カウントをリセットする。
【００５３】
抑制制御部４９は、抑制指示カウント部４８から抑制指示回数が通知されると、ＤＭＡ制御部４３へリード要求発行時の待機時間を指示して抑制制御を行う。具体的には、抑制制御部４９は、抑制指示回数が１回であれば所定の時間Ｔを待機時間ＴaとしてＤＭＡ制御部４３へ指示する。さらに、抑制制御部４９は、抑制指示回数が２回であれば待機時間Ｔaを２Ｔとし、抑制指示回数が１回の場合の２倍にする。すなわち、抑制制御部４９は、抑制指示回数がＭ（Ｍは自然数）回であれば、所定の時間ＴをＭ倍して待機時間Ｔaとする。さらに、抑制制御部４９は、ＤＭＡ制御部４３へ待機時間Ｔaを指示すると、抑制制御を行う抑制時間の計測を開始し、抑制指示カウント部４８から新たに抑制指示回数を通知されることなく抑制時間が所定の抑制時間Ｔbに達すると、ＤＭＡ制御部４３における抑制制御を解除するとともに、その旨を抑制指示カウント部４８へ通知する。
【００５４】
図３は、本実施の形態に係るキャッシュコントローラ７０の要部構成を示すブロック図である。同図においても図２と同様に、図１の参照符号におけるＡ、Ｂの表記を省略し、例えばスイッチ５０Ａ、５０Ｂをスイッチ５０と表記している。図３に示すキャッシュコントローラ７０は、バスインタフェース部（以下「バスＩ／Ｆ部」と略記する）７１、書込・読出制御部７２、状態情報要求部７３、および抑制指示判定部７４を有している。
【００５５】
バスＩ／Ｆ部７１は、スイッチ５０とキャッシュコントローラ７０を接続するバスからリード要求を受信したり、リード要求に応じたデータを送信したりする。また、バスＩ／Ｆ部７１は、状態情報要求部７３によって状態情報が要求されると、すべてのチャネルアダプタ４０−１〜Ｎへ状態情報要求を送信し、チャネルアダプタ４０−１〜Ｎから返信される状態情報を抑制指示判定部７４へ出力する。そして、バスＩ／Ｆ部７１は、抑制指示判定部７４から出力される抑制指示を抑制指示判定部７４によって指定されたチャネルアダプタ４０−１〜Ｎへ送信する。
【００５６】
書込・読出制御部７２は、キャッシュメモリ６０におけるデータの書き込みおよび読み出しを制御するとともに、ディスク１００へ書き込むデータをディスクアダプタ８０へ転送する。具体的には、書込・読出制御部７２は、バスＩ／Ｆ部７１によって受信されたリード要求に応じてキャッシュメモリ６０からデータを読み出し、リード要求を送信したチャネルアダプタ４０−１〜ＮへバスＩ／Ｆ部７１を介してデータを送信する。また、書込・読出制御部７２は、ディスクアダプタ８０を介してディスク１００に書き込まれるデータをキャッシュメモリ６０にも書き込む。
【００５７】
状態情報要求部７３は、バスＩ／Ｆ部７１において、いずれかのチャネルアダプタ４０−１〜Ｎから応答時間遅延の情報と状態情報とが受信されると、このチャネルアダプタ以外のチャネルアダプタ４０−１〜Ｎにおけるスループットを示す状態情報を要求する。
【００５８】
抑制指示判定部７４は、バスＩ／Ｆ部７１によって受信されたすべてのチャネルアダプタ４０−１〜Ｎの状態情報に基づいてリード要求を抑制させる抑制対象のチャネルアダプタを決定し、決定されたチャネルアダプタに対してバスＩ／Ｆ部７１から抑制指示を送信させる。具体的には、抑制指示判定部７４は、例えばスループットが所定の閾値以上のチャネルアダプタを抑制対象のチャネルアダプタと決定したり、応答時間遅延の情報を送信したチャネルアダプタのスループットと比較して所定割合以上大きいスループットを持つチャネルアダプタを抑制対象のチャネルアダプタと決定したりする。
【００５９】
次いで、上記のように構成されたチャネルアダプタ４０−１〜Ｎおよびキャッシュコントローラ７０の動作について、図４に示すシーケンス図を参照しながら説明する。なお、図４においては、ディスクアレイ装置１０にチャネルアダプタ４０−１〜３の３つのチャネルアダプタが設けられているものとする。
【００６０】
チャネルアダプタ４０−１〜３は、それぞれホストコンピュータ２０からのコマンドに応じたＤＭＡ制御部４３の制御により、リード要求をキャッシュコントローラ７０へ送信してデータを読み出したり、ライト要求をキャッシュコントローラ７０へ送信してデータを書き込んだりしている。具体的には、リード要求およびライト要求を受信するキャッシュコントローラ７０の書込・読出制御部７２によって、キャッシュメモリ６０におけるデータの読み書きが行われている。この過程で、各チャネルアダプタ４０−１〜３の応答時間監視部４５は、リード要求に対する応答としてデータが返信されるまでの応答時間を監視しているとともに、スループット計測部４６は、ブリッジチップ４４とスイッチ５０を接続するバスにおけるスループットを計測している。
【００６１】
ここで、チャネルアダプタ４０−１において、リード要求に対するデータの返信が遅延して、応答時間監視部４５によって監視される応答時間が所定時間に達する場合を考える。このとき、チャネルアダプタ４０−１の応答時間監視部４５によって、応答時間が所定時間を超過した旨が状態情報通知部４７へ通知され、状態情報通知部４７によってスループット計測部４６において計測されるスループットの計測値が取得され、バスの状態情報として応答時間遅延の情報とともにキャッシュコントローラ７０へ送信される（ステップＳ１０１）。
【００６２】
これらの情報は、スイッチ５０を介してキャッシュコントローラ７０のバスＩ／Ｆ部７１によって受信され、状態情報要求部７３によって応答時間遅延の情報が検知されると、チャネルアダプタ４０−１以外のチャネルアダプタ４０−２、３に対して状態情報が要求される。すなわち、バスＩ／Ｆ部７１からチャネルアダプタ４０−２へ状態情報要求が送信されるとともに（ステップＳ１０２）、チャネルアダプタ４０−３へ状態情報要求が送信される（ステップＳ１０３）。
【００６３】
状態情報要求を受信するチャネルアダプタ４０−２、３においては、ブリッジチップ４４において状態情報要求が受信されると、状態情報通知部４７によってスループット計測部４６において計測されるスループットの計測値が取得され、バスの状態情報としてキャッシュコントローラ７０へ送信される（ステップＳ１０４、ステップＳ１０５）。
【００６４】
送信された状態情報は、キャッシュコントローラ７０のバスＩ／Ｆ部７１に受信され、抑制指示判定部７４へ出力される。そして、抑制指示判定部７４によって、リード要求の発行を抑制する抑制対象のチャネルアダプタが決定される。具体的には、例えば各チャネルアダプタ４０−１〜３から送信された状態情報に含まれるスループットの計測値が所定の閾値と比較され、スループットの計測値が所定の閾値以上のチャネルアダプタが抑制対象のチャネルアダプタと決定される。また、応答時間遅延の情報を送信したチャネルアダプタ４０−１におけるスループットの計測値と比較して、所定割合以上大きいスループットが計測されたチャネルアダプタを抑制対象のチャネルアダプタと決定しても良い。要するに、抑制指示判定部７４は、応答時間が遅延しておりスループットが小さいチャネルアダプタがあるにも拘らず、一定以上の大きさのスループットを有しているチャネルアダプタを抑制対象のチャネルアダプタと決定する。
【００６５】
なお、例えばすべてのチャネルアダプタ４０−１〜３のスループットが小さい場合には、応答時間遅延の情報を送信したチャネルアダプタ４０−１についても抑制対象のチャネルアダプタになることもある。このような状況は、例えばディスクアダプタ８０を介したディスク１００とのデータのやり取りやキャッシュ間リンクにおけるデータのやり取りによってキャッシュコントローラ７０の処理負荷が一時的に過大になっている場合などに発生する。
【００６６】
抑制指示判定部７４によって抑制対象のチャネルアダプタが決定されると、このチャネルアダプタに対して抑制指示がバスＩ／Ｆ部７１から送信される。ここでは、チャネルアダプタ４０−２が抑制対象のチャネルアダプタと決定されたものとし、バスＩ／Ｆ部７１からチャネルアダプタ４０−２へ抑制指示が送信される（ステップＳ１０６）。
【００６７】
送信された抑制指示は、チャネルアダプタ４０−２のブリッジチップによって受信され、抑制指示カウント部４８によって、抑制指示の回数がカウントアップされる。すなわち、抑制制御部４９による抑制制御が実行されている最中でなければ抑制指示回数が１回となる。そして、抑制指示カウント部４８によってカウントされる抑制指示回数が抑制制御部４９へ通知され、抑制制御部４９によって、抑制指示回数に応じたリード要求発行の待機時間Ｔaが決定され、ＤＭＡ制御部４３へ指示されることにより、リード要求の抑制が開始される（ステップＳ１０７）。
【００６８】
ＤＭＡ制御部４３では、抑制制御部４９から待機時間Ｔaが指示されると、リード要求の発行を待機時間Ｔaだけ待機し、リード要求の発行間隔を大きくする。これにより、チャネルアダプタ４０−２のスループットが低下し、その分他のチャネルアダプタ４０−１、３のスループットを向上することができる。結果として、応答時間の遅延が生じていたチャネルアダプタ４０−１の応答時間が短縮されるとともに、すべてのチャネルアダプタ４０−１〜３のスループットの均一化を図ることができる。なお、リード要求の抑制制御については、後に具体的に説明する。
【００６９】
その後、抑制開始からの抑制時間がＴbに達するまでの間に、新たな抑制指示がチャネルアダプタ４０−２に対して出されることがなければ、抑制制御部４９からＤＭＡ制御部４３へ抑制解除の指示が出され、リード要求の抑制が終了する（ステップＳ１０８）。本実施の形態においては、いずれかのチャネルアダプタにおいて応答時間が遅延した場合に、スループットが比較的大きいチャネルアダプタのリード要求のみを抑制することになる。ここで、ライト要求は、キャッシュメモリ６０などに書き込まれるデータがチャネルアダプタ４０−１〜Ｎからキャッシュコントローラ７０へデータが転送されるのみであるため、スループットの増減に大きな影響を与えない。これに対して、リード要求は、リード要求後、キャッシュメモリ６０などから読み出されたデータがチャネルアダプタ４０−１〜Ｎへ返信されるため、この間、リード要求を発行したチャネルアダプタ４０−１〜Ｎは、他の処理を行うことができず、スループットの増減に大きな影響を与える。このため、本実施の形態においては、スループットへの影響が大きいリード要求に着目し、リード要求の発行を抑制することにより、スループットの均一化を図る。
【００７０】
次に、本実施の形態に係るリード要求抑制の動作について、図５に示すフロー図を参照しながら具体的に例を挙げて説明する。
【００７１】
まず初期状態では、チャネルアダプタ４０−１〜Ｎのいずれにおいても抑制制御が行われておらず、抑制制御部４９においては待機時間Ｔaが０に初期化される（ステップＳ２０１）。この状態では、ＤＭＡ制御部４３は、ホストコンピュータ２０からコマンドが受信されると即座にリード要求を発行し、リード要求に応じたデータをキャッシュコントローラ７０から受信する。
【００７２】
そして、いずれかのチャネルアダプタにおける応答時間が遅延し、状態情報通知部４７から応答時間遅延の情報と状態情報がキャッシュコントローラ７０へ送信されると、キャッシュコントローラ７０によってすべてのチャネルアダプタ４０−１〜Ｎの状態情報が取得され、抑制指示判定部７４によって、状態情報に含まれるスループットから抑制対象のチャネルアダプタが決定される。そして、抑制指示判定部７４から抑制対象のチャネルアダプタへ抑制指示が送信される。
【００７３】
各チャネルアダプタ４０−１〜Ｎにおいては、リード要求の発行、応答時間の監視、およびスループットの計測とともに、抑制指示の受信が常に待機されており（ステップＳ２０２）、キャッシュコントローラ７０の抑制指示判定部７４から送信された抑制指示が受信されると（ステップＳ２０２Ｙｅｓ）、抑制指示カウント部４８によって抑制指示回数がカウントアップされる（ステップＳ２０３）。ここでは、チャネルアダプタ４０−１〜Ｎのいずれにおいても抑制制御が行われていなかったため、抑制指示カウント部４８のカウントはリセットされており、今回の抑制指示によって抑制指示回数が１回となる。抑制指示回数は、抑制制御部４９へ通知され、抑制制御部４９によって抑制指示回数に応じた待機時間Ｔaが更新される（ステップＳ２０４）。具体的には、抑制制御部４９によって、所定の時間Ｔに抑制指示回数の１が乗算され待機時間Ｔaとされる。
【００７４】
更新された待機時間Ｔaは、ＤＭＡ制御部４３へ指示されると同時に（ステップＳ２０５）、抑制制御部４９によって、抑制制御を実行する抑制時間の計測が開始される（ステップＳ２０６）。以後、ＤＭＡ制御部４３によるリード要求の発行は、待機時間Ｔa（＝Ｔ）だけ待機されながら行われることになる。すなわち、例えば図６において、抑制指示がある前（紙面向かって左側）は、リード要求の発行を示す白い三角形の間隔が密であり、ホストコンピュータ２０からのコマンドに応じて即座にリード要求が発行されていたものの、抑制指示があった後（紙面向かって右側）は、リード要求が少なくとも所定時間Ｔの間隔を空けて発行されている。これにより、このチャネルアダプタから発行されるリード要求が減少し、キャッシュコントローラ７０は、他のチャネルアダプタから発行されるリード要求やライト要求の処理を実行することができる。結果として、他のチャネルアダプタのスループットが向上するとともに、スループットの均一化が図られる。
【００７５】
このような抑制制御の開始後も抑制指示の受信は引き続き待機され（ステップＳ２０７）、新たに抑制指示が受信されなければ（ステップＳ２０７Ｎｏ）、抑制時間が計測され続けて所定の抑制時間Ｔbと比較される（ステップＳ２０８）。そして、抑制時間が所定の抑制時間Ｔbを経過すれば（ステップＳ２０８Ｙｅｓ）、抑制制御部４９によってＤＭＡ制御部４３へ抑制制御の解除が指示され、抑制制御が終了する（ステップＳ２０９）。また、このとき、抑制制御部４９によって抑制制御が終了した旨が抑制指示カウント部４８へ通知され、抑制指示カウント部４８のカウントがリセットされる。
【００７６】
一方、抑制制御の開始後、抑制時間が所定の抑制時間Ｔbを経過する以前に新たに抑制指示が受信されると（ステップＳ２０７Ｙｅｓ）、再び抑制指示カウント部４８によって抑制指示回数がカウントアップされる（ステップＳ２０３）。ここでは、前回の抑制指示によって既に抑制指示回数が１回となっているため、今回の抑制指示によって抑制指示回数が２回となる。抑制指示回数は、抑制制御部４９へ通知され、抑制制御部４９によって抑制指示回数に応じた待機時間Ｔaが更新される（ステップＳ２０４）。具体的には、抑制制御部４９によって、所定の時間Ｔに抑制指示回数の２が乗算された待機時間Ｔaとされる。
【００７７】
更新された待機時間Ｔaは、ＤＭＡ制御部４３へ指示されると同時に（ステップＳ２０５）、抑制制御部４９によって、抑制制御を実行する抑制時間の計測が改めて開始される（ステップＳ２０６）。したがって、１回目の抑制指示に応じた抑制制御開始時から計測されていた抑制時間はリセットされ、また０から新たに抑制時間が計測される。以後、ＤＭＡ制御部４３によるリード要求の発行は、待機時間Ｔa（＝２Ｔ）だけ待機されながら行われることになる。すなわち、例えば図７において、１回目の抑制指示に応じた抑制制御開始から所定の抑制時間Ｔbが経過する前に２回目の抑制指示が受信されると、待機時間Ｔaが所定の時間Ｔの２倍となり、この期間が所定の抑制時間Ｔbだけ継続する。
【００７８】
さらに、２回目の抑制指示に応じた抑制制御開始から所定の抑制時間Ｔbが経過する前に３回目の抑制指示が受信されると、待機時間Ｔaは所定の時間Ｔの３倍となり、リード要求の発行間隔がより大きくなる。以降も同様の処理が行われ、抑制制御中に新たな抑制指示が受信されるごとに待機時間Ｔaが大きくなり、抑制対象のチャネルアダプタのスループットは低下し、このチャネルアダプタのスループット低下が他のチャネルアダプタのスループット向上に寄与することになる。これにより、すべてのチャネルアダプタ４０−１〜Ｎのスループットが均一になる。
【００７９】
以上のように、本実施の形態によれば、チャネルアダプタがリード要求に対する応答時間を監視し、応答時間の遅延が所定基準に達すると、その旨がキャッシュコントローラへ通知される。そして、キャッシュコントローラによって、すべてのチャネルアダプタにおけるスループットが取得され、スループットが比較的大きいチャネルアダプタがリード要求の抑制対象のチャネルアダプタに決定され、このチャネルアダプタへ抑制指示が送信される。抑制指示を受信するチャネルアダプタは、抑制指示の回数に応じてリード要求の発行の待機時間を設定し、リード要求の発行を抑制する。このため、スループットが大きいチャネルアダプタのスループットが低下することにより、他のチャネルアダプタにおける応答時間が短縮されるとともに、スループットが向上される。結果として、複数のチャネルアダプタにおけるスループットの均一化を図ることができる。
【００８０】
なお、上記一実施の形態においては、所定の時間Ｔに抑制指示回数を乗算して待機時間Ｔaとすることとしたが、必ずしも乗算する必要はなく、抑制指示回数が増加するごとに待機時間Ｔaを大きくすれば良い。また、抑制制御開始後、新たな抑制指示がなければ所定の抑制時間Ｔbが経過した時に抑制制御が解除されるものとしたが、キャッシュコントローラ７０においていずれのチャネルアダプタ４０−１〜Ｎからも応答時間遅延の情報が受信されなくなった場合に、キャッシュコントローラ７０から抑制制御中のチャネルアダプタへ抑制解除の指示が出されるようにしても良い。
【００８１】
（付記１）各々データの読み出しを要求するリード要求を発行する複数のチャネルアダプタとリード要求に応じたデータを返信するキャッシュコントローラとを備えたデータ転送装置であって、
前記チャネルアダプタは、
リード要求の発行によりデータ転送を制御する制御手段と、
前記制御手段によって制御されるデータ転送の応答時間を監視する監視手段と、
前記監視手段によって監視される応答時間が所定時間に達すると応答時間の遅延を前記キャッシュコントローラへ通知する通知手段と、
前記通知手段による通知後、前記キャッシュコントローラからリード要求発行の抑制指示が受信された場合に、前記制御手段におけるリード要求の発行を抑制する抑制手段と
を有することを特徴とするデータ転送装置。
【００８２】
（付記２）前記抑制手段は、
前記キャッシュコントローラから抑制指示を受信する受信手段と、
前記受信手段によって受信された抑制指示回数をカウントするカウント手段とを含み、
前記カウント手段によってカウントされた抑制指示回数に応じてリード要求発行を抑制することを特徴とする付記１記載のデータ転送装置。
【００８３】
（付記３）前記抑制手段は、
抑制指示回数に応じた待機時間だけリード要求発行を待機させることを特徴とする付記２記載のデータ転送装置。
【００８４】
（付記４）前記抑制手段は、
所定の単位時間に抑制指示回数を乗算してリード要求発行の待機時間を求めることを特徴とする付記３記載のデータ転送装置。
【００８５】
（付記５）前記抑制手段は、
リード要求発行の抑制を開始後、所定時間内に前記受信手段によって新たに抑制指示が受信されなければ、リード要求発行の抑制を解除することを特徴とする付記２記載のデータ転送装置。
【００８６】
（付記６）前記カウント手段は、
リード要求発行の抑制が解除されるたびに抑制指示回数のカウントをリセットすることを特徴とする付記２記載のデータ転送装置。
【００８７】
（付記７）前記チャネルアダプタにおけるスループットを計測する計測手段をさらに有し、
前記通知手段は、
応答時間の遅延とともに前記計測手段によって計測されたスループットを通知することを特徴とする付記１記載のデータ転送装置。
【００８８】
（付記８）前記チャネルアダプタにおけるスループットを計測する計測手段と、
前記キャッシュコントローラによって要求された場合に、前記計測手段によって計測されたスループットを送信する送信手段と
をさらに有することを特徴とする付記１記載のデータ転送装置。
【００８９】
（付記９）前記キャッシュコントローラは、
いずれか１つのチャネルアダプタから応答時間の遅延が通知された場合に、前記複数のチャネルアダプタへスループットの送信を要求することを特徴とする付記１記載のデータ転送装置。
【００９０】
（付記１０）前記キャッシュコントローラは、
スループットが所定の閾値以上のチャネルアダプタへリード要求発行の抑制指示を送信することを特徴とする付記１記載のデータ転送装置。
【００９１】
（付記１１）前記キャッシュコントローラは、
応答時間の遅延を通知したチャネルアダプタのスループットより所定割合以上大きいスループットを持つチャネルアダプタへリード要求発行の抑制指示を送信することを特徴とする付記１記載のデータ転送装置。
【００９２】
（付記１２）各々データの読み出しを要求するリード要求を発行する複数のチャネルアダプタとリード要求に応じたデータを返信するキャッシュコントローラとを備えたデータ転送装置におけるデータ転送方法であって、
前記チャネルアダプタが、
リード要求の発行によるデータ転送の応答時間を監視する監視工程と、
前記監視工程にて監視される応答時間が所定時間に達すると応答時間の遅延を前記キャッシュコントローラへ通知する通知工程と、
前記キャッシュコントローラからリード要求発行の抑制指示が受信された場合に、リード要求の発行を抑制する抑制工程と
を有することを特徴とするデータ転送方法。
【産業上の利用可能性】
【００９３】
本発明は、複数のチャネルアダプタにおけるスループットの均一化を図る場合に適用することができる。
【図面の簡単な説明】
【００９４】
【図１】一実施の形態に係るディスクアレイ装置の概略構成を示すブロック図である。
【図２】一実施の形態に係るチャネルアダプタの要部構成を示すブロック図である。
【図３】一実施の形態に係るキャッシュコントローラの要部構成を示すブロック図である。
【図４】一実施の形態に係るディスクアレイ装置の動作を示すシーケンス図である。
【図５】一実施の形態に係るリード要求抑制の動作を示すフロー図である。
【図６】一実施の形態に係るリード要求抑制の一例を示す図である。
【図７】一実施の形態に係るリード要求抑制の他の一例を示す図である。
【図８】ディスクアレイ装置の一部分を示すブロック図である。
【符号の説明】
【００９５】
４０  チャネルアダプタ
４１  光モジュール
４２  プロトコルチップ
４３  ＤＭＡ制御部
４４  ブリッジチップ
４５  応答時間監視部
４６  スループット計測部
４７  状態情報通知部
４８  抑制指示カウント部
４９  抑制制御部
７０  キャッシュコントローラ
７１  バスＩ／Ｆ部
７２  書込・読出制御部
７３  状態情報要求部
７４  抑制指示判定部
【図１】
2008197909.tif 000003
【図２】
2008197909.tif 000004
【図３】
2008197909.tif 000005
【図４】
2008197909.tif 000006
【図５】
2008197909.tif 000007
【図６】
2008197909.tif 000008
【図７】
2008197909.tif 000009
【図８】
2008197909.tif 000010