(57)【要約】【課題】複数のチャネルアダプタからキャッシュメモリへのデータの書き込みを制御するキャッシュコントローラ内のＣＰＵの停止を防止するとともに、このＣＰＵの処理負荷を低減すること。【解決手段】アドレス監視部５１ｂは、チャネルアダプタ４０−１〜Ｎから受信されるデータの転送アドレスが割り込み処理を指定するアドレスであるか否かを判定する。データ判定部５１ｃは、割り込み処理時に転送され得るデータのデータパターンをあらかじめ記憶しており、アドレス監視部５１ｂからデータチェックを指示されると、チャネルアダプタ４０−１〜Ｎから受信されたデータとデータパターンとを比較して、エラー発生の有無を判定する。そして、データ判定部５１ｃは、エラー発生時には、その旨をエラー通知部５１ｄおよびエラー通知部５２ｂへ通知するとともに、データ送出部５１ａにおけるデータ送出を遮断する。【選択図】        図３
2008146456.tif 000002
【特許請求の範囲】
【請求項１】
複数のアダプタからプロセッサを含むコントローラへデータを中継するデータ中継装置であって、
アダプタから受信したデータの転送アドレスを監視する監視手段と、
前記監視手段によって監視される転送アドレスが前記プロセッサへの割り込み処理に対応するアドレスである場合に、このデータが適正であるか否かを判定する判定手段と、
前記判定手段によってデータが適正であると判定された場合にのみ、このデータを前記コントローラへ送信する送信手段と
を有することを特徴とするデータ中継装置。
【請求項２】
前記判定手段は、
あらかじめ規定された割り込み処理に対応するデータパターンの中に、アダプタから受信したデータと一致するものがある場合に、このデータが適正であると判定することを特徴とする請求項１記載のデータ中継装置。
【請求項３】
前記判定手段は、
データが不適正であると判定した場合に、前記送信手段によるデータの送信を遮断することを特徴とする請求項１記載のデータ中継装置。
【請求項４】
前記判定手段によってデータが不適正であると判定された場合に、このデータを送信したアダプタへエラーを通知する通知手段をさらに有することを特徴とする請求項１記載のデータ中継装置。
【請求項５】
前記判定手段によってデータが不適正であると判定された場合に、前記プロセッサへエラーを通知する通知手段をさらに有することを特徴とする請求項１記載のデータ中継装置。
【請求項６】
ホストコンピュータから送信されるデータを記憶媒体に書き込んで記憶するストレージ装置であって、
前記ホストコンピュータから送信されたデータを受信する複数のチャネルアダプタと、
前記複数のチャネルアダプタによって受信されたデータを中継するスイッチと、
プロセッサを備え前記スイッチによって中継されたデータのキャッシュメモリへの書き込みを制御するキャッシュコントローラとを有し、
前記スイッチは、
前記チャネルアダプタによって受信されたデータの転送アドレスを監視する監視手段と、
前記監視手段によって監視される転送アドレスが前記プロセッサへの割り込み処理に対応するアドレスである場合に、このデータが適正であるか否かを判定する判定手段と、
前記判定手段によってデータが適正であると判定された場合にのみ、このデータを前記キャッシュコントローラへ送信する送信手段とを備える
ことを特徴とするストレージ装置。
【請求項７】
複数のアダプタからプロセッサを含むコントローラへデータを中継するデータ中継方法であって、
アダプタから受信したデータの転送アドレスを監視する監視工程と、
前記監視工程にて監視される転送アドレスが前記プロセッサへの割り込み処理に対応するアドレスである場合に、このデータが適正であるか否かを判定する判定工程と、
前記判定工程にてデータが適正であると判定された場合にのみ、このデータを前記コントローラへ送信する送信工程と
を有することを特徴とするデータ中継方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のアダプタからプロセッサを含むコントローラへデータを中継するデータ中継装置、ストレージ装置、およびデータ中継方法に関し、特に、複数のチャネルアダプタからキャッシュメモリへのデータの書き込みを制御するキャッシュコントローラ内のプロセッサの停止を防止するとともに、このプロセッサの処理負荷を低減することができるデータ中継装置、ストレージ装置、およびデータ中継方法に関する。
【背景技術】
【０００２】
近年のコンピュータの処理能力の向上に伴って、コンピュータが利用するデータは肥大化の一途をたどっており、膨大なデータを記憶しておくためのストレージに関する検討が多く行われている。具体的には、例えばＲＡＩＤ（Redundant Array of Independent Disks）と呼ばれ、複数のハードディスクドライブを組み合わせることにより、高速・大容量・高信頼性を実現するディスクシステムを構築する技術などが確立されている。
【０００３】
このＲＡＩＤなどのディスクシステムにおいては、データを記憶する複数のディスクを備えたディスクアレイ装置が上位装置であるホストコンピュータなどからコマンドを受け付け、データの書き込み（ライト）や読み出し（リード）が行われる。このとき、ホストコンピュータとディスクの間でやり取りされるデータは、ディスクアレイ装置内のキャッシュメモリにもキャッシュされ、以降の処理においては、キャッシュメモリからこのデータを読み出して高速化を図るのが一般的である。
【０００４】
また、ホストコンピュータとディスクアレイ装置の間のデータ転送を効率的に行うために、両者間に複数のチャネルが設けられ、ディスクアレイ装置内の複数のチャネルアダプタがホストコンピュータに接続される構成が採られることがある。この場合、ホストコンピュータとディスクアレイ装置内のキャッシュメモリとの間には、それぞれチャネルアダプタを含む複数のデータ転送経路が形成されることになる（例えば特許文献１参照）。
【０００５】
したがって、ホストコンピュータからディスクアレイ装置内のディスクにデータがライトされる際、キャッシュメモリへのデータ転送経路を１つに変換して中継するスイッチが必要となる。また、チャネルアダプタおよびスイッチを経由したデータは、チップセットやＣＰＵ（Central Processing Unit）などからなるキャッシュコントローラを介してキャッシュメモリにライトされる。この様子を図８（ａ）に示す。図８（ａ）において、ホストコンピュータからチャネルアダプタに入力されたライトデータは、スイッチを介してキャッシュコントローラ内のチップセットへ転送される（ステップＳ１）。そして、チップセットによって、ライトデータの転送アドレスが参照され、キャッシュメモリの該当するアドレスにライトデータが書き込まれる（ステップＳ２）。
【０００６】
一方、ＰＣＩ（Peripheral Component Interconnect）バスなどの規格では、キャッシュコントローラにおける通常の処理中に、ＭＳＩ（Message Signaled Interrupt）と呼ばれる割り込み方法によりキャッシュコントローラ内のＣＰＵに割り込み処理を実行させることが規定されている。ＭＳＩによる割り込みは、ライトデータの転送アドレスとして特定のアドレスが指定されている場合に、チップセットからＣＰＵへ割り込みの発生が通知されることにより行われる。
【０００７】
すなわち、図８（ｂ）に示すように、割り込みを要求するライトデータは、チャネルアダプタからスイッチを介してキャッシュコントローラ内のチップセットへ転送される（ステップＳ３）。そして、チップセットによって、ライトデータの転送アドレスがＭＳＩを示す特定アドレスであることが検知され、ＣＰＵに対して割り込み処理の実行が促される（ステップＳ４）。
【０００８】
【特許文献１】特許第２５６７９２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述したＭＳＩによる割り込み時には、あらかじめ割り込みが発生すると規定されている処理が実行されることになる。しかしながら、例えば割り込みを要求するライトデータに異常が発生したり、このライトデータの転送アドレスに異常が発生したりすると、割り込み処理として規定されていない処理が要求されることがある。
【００１０】
このとき、規定されていない割り込み処理を要求されたＣＰＵは、エラーが発生したと判断してエラーリカバリ処理を行うが、致命的なエラーが発生したと判断した場合には、すべての処理を停止してしまうという問題がある。そして、キャッシュコントローラ内のＣＰＵが処理を停止してしまえば、ディスクアレイ装置におけるデータの書き込みおよび読み出しは一切実行不可能となり、多大な損害が発生することがある。
【００１１】
さらに、ＣＰＵが処理を停止せずにエラーリカバリ処理を行う場合も、エラーの原因の特定のために処理負荷が増大し、ＣＰＵに負担がかかるという問題がある。すなわち、規定されていない割り込み処理の要求があった場合、この原因となったエラーが複数のチャネルアダプタ、スイッチ、キャッシュコントローラ内のチップセット、および周辺デバイスのいずれで発生したかを特定するため、ＣＰＵがすべてのデバイスの状態を逐一リードする必要がある。このため、ＣＰＵの処理負荷が大きくなり、ホストコンピュータとキャッシュメモリの間のデータ転送にも影響が及ぶことがある。
【００１２】
本発明はかかる点に鑑みてなされたものであり、複数のチャネルアダプタからキャッシュメモリへのデータの書き込みを制御するキャッシュコントローラ内のプロセッサの停止を防止するとともに、このプロセッサの処理負荷を低減することができるデータ中継装置、ストレージ装置、およびデータ中継方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、本発明は、複数のアダプタからプロセッサを含むコントローラへデータを中継するデータ中継装置であって、アダプタから受信したデータの転送アドレスを監視する監視手段と、前記監視手段によって監視される転送アドレスが前記プロセッサへの割り込み処理に対応するアドレスである場合に、このデータが適正であるか否かを判定する判定手段と、前記判定手段によってデータが適正であると判定された場合にのみ、このデータを前記コントローラへ送信する送信手段とを有することを特徴とする。
【００１４】
また、本発明は、上記発明において、前記判定手段は、あらかじめ規定された割り込み処理に対応するデータパターンの中に、アダプタから受信したデータと一致するものがある場合に、このデータが適正であると判定することを特徴とする。
【００１５】
また、本発明は、上記発明において、前記判定手段は、データが不適正であると判定した場合に、前記送信手段によるデータの送信を遮断することを特徴とする。
【００１６】
また、本発明は、上記発明において、前記判定手段によってデータが不適正であると判定された場合に、このデータを送信したアダプタへエラーを通知する通知手段をさらに有することを特徴とする。
【００１７】
また、本発明は、上記発明において、前記判定手段によってデータが不適正であると判定された場合に、前記プロセッサへエラーを通知する通知手段をさらに有することを特徴とする。
【００１８】
また、本発明は、上記発明において、前記監視手段は、アダプタから受信したデータの転送アドレスが前記複数のアダプタそれぞれに割り当てられた割り込み処理を指定するアドレス領域のいずれかに含まれるか否かを監視することを特徴とする。
【００１９】
また、本発明は、上記発明において、前記送信手段は、前記複数のアダプタから受信したデータを多重する多重手段を含むことを特徴とする。
【００２０】
また、本発明は、ホストコンピュータから送信されるデータを記憶媒体に書き込んで記憶するストレージ装置であって、前記ホストコンピュータから送信されたデータを受信する複数のチャネルアダプタと、前記複数のチャネルアダプタによって受信されたデータを中継するスイッチと、プロセッサを備え前記スイッチによって中継されたデータのキャッシュメモリへの書き込みを制御するキャッシュコントローラとを有し、前記スイッチは、前記チャネルアダプタによって受信されたデータの転送アドレスを監視する監視手段と、前記監視手段によって監視される転送アドレスが前記プロセッサへの割り込み処理に対応するアドレスである場合に、このデータが適正であるか否かを判定する判定手段と、前記判定手段によってデータが適正であると判定された場合にのみ、このデータを前記キャッシュコントローラへ送信する送信手段とを備えることを特徴とする。
【００２１】
また、本発明は、複数のアダプタからプロセッサを含むコントローラへデータを中継するデータ中継方法であって、アダプタから受信したデータの転送アドレスを監視する監視工程と、前記監視工程にて監視される転送アドレスが前記プロセッサへの割り込み処理に対応するアドレスである場合に、このデータが適正であるか否かを判定する判定工程と、前記判定工程にてデータが適正であると判定された場合にのみ、このデータを前記コントローラへ送信する送信工程とを有することを特徴とする。
【発明の効果】
【００２２】
本発明によれば、アダプタから受信したデータの転送アドレスを監視し、監視される転送アドレスがプロセッサへの割り込み処理に対応するアドレスである場合に、このデータが適正であるか否かを判定し、データが適正であると判定された場合にのみ、このデータをコントローラへ送信する。このため、コントローラ内のプロセッサに対して不正な割り込み処理の要求が発生することがないと同時に、不適正なデータを送信したアダプタをデータ中継装置において把握することが可能となる。結果として、複数のチャネルアダプタからキャッシュメモリへのデータの書き込みを制御するキャッシュコントローラ内のプロセッサの停止を防止するとともに、プロセッサは、データ中継装置におけるエラー履歴を参照することによりエラーの原因となるチャネルアダプタを容易に特定することができ、このプロセッサの処理負荷を低減することができる。
【００２３】
また、本発明によれば、あらかじめ規定された割り込み処理に対応するデータパターンの中に、アダプタから受信したデータと一致するものがある場合に、このデータが適正であると判定する。このため、割り込み処理として正当に規定されている処理に対応するデータ以外は適正と判定されることがなく、プロセッサに対する規定外の割り込み処理の要求を防止することができる。
【００２４】
また、本発明によれば、データが不適正であると判定した場合に、データの送信を遮断するため、プロセッサに対する不正な割り込み処理の要求を確実に防止することができる。
【００２５】
また、本発明によれば、データが不適正であると判定された場合に、このデータを送信したアダプタへエラーを通知するため、アダプタは、内部の状態を保存した上で自発的にシャットダウンすることができる。
【００２６】
また、本発明によれば、データが不適正であると判定された場合に、プロセッサへエラーを通知するため、プロセッサは、エラーの原因となったアダプタをデータ中継装置に保持されたエラー履歴から特定し、このアダプタを強制的にシャットダウンさせることができる。
【００２７】
また、本発明によれば、アダプタから受信したデータの転送アドレスが複数のアダプタそれぞれに割り当てられた割り込み処理を指定するアドレス領域のいずれかに含まれるか否かを監視する。このため、データを送信したアダプタに拘わらず、転送アドレスが割り込み領域のアドレスである場合には必ずデータのチェックが行われることになり、例えば転送アドレスに異常が発生して他のアダプタに割り当てられた割り込み領域のアドレスとなってしまった場合でも、プロセッサにおける不正な割り込み処理の発生を予防することができる。
【００２８】
また、本発明によれば、複数のアダプタから受信したデータを多重するため、送信されるデータが１出力となり、例えばＰＣＩバスなどのバスを介した転送を行うことができる。
【発明を実施するための最良の形態】
【００２９】
以下、本発明の一実施の形態について、図面を参照して詳細に説明する。
【００３０】
図１は、本実施の形態に係るディスクアレイ装置１０の概略構成を示すブロック図である。同図に示すディスクアレイ装置１０は、ＤＭＡ（Direct Memory Access：ダイレクトメモリアクセス）が適用されるコンピュータシステムの一例であり、ファイバチャネルリンク３０Ａ、３０Ｂを介してホストコンピュータ２０Ａ、２０Ｂと接続されている。このディスクアレイ装置１０は、高信頼性を確保するために二重化構成が採られており、各構成要素が２系統ずつ（図中、参照符号に付加したＡ、Ｂによって区別する）備えられている。それぞれの系統の構成要素は互いに同等の機能を有するため、以下では一方の系統についてのみ構成要素の説明をする。
【００３１】
ディスクアレイ装置１０は、複数のチャネルアダプタ４０Ａ−１〜Ｎ（Ｎは２以上の自然数）、スイッチ５０Ａ、キャッシュメモリ６０Ａ、キャッシュコントローラ７０Ａ、ディスクアダプタ８０Ａ、スイッチ９０Ａ、およびディスク１００Ａを有している。
【００３２】
チャネルアダプタ４０Ａ−１〜Ｎは、それぞれがホストコンピュータ２０Ａとデータの送受信を行う通信インタフェースとしての機能を有するとともに、ＤＭＡによりデータ転送を行うＤＭＡチップを有している。チャネルアダプタ４０Ａ−１〜Ｎは、すべて同等の機能を有しており、いずれかのチャネルアダプタ４０Ａ−Ｍ（Ｍは１以上Ｎ以下の自然数）に重大なエラーが発生した場合には、キャッシュコントローラ７０Ａによって強制的にまたは自発的にシャットダウンする。
【００３３】
スイッチ５０Ａは、チャネルアダプタ４０Ａ−１〜Ｎとキャッシュメモリ６０Ａとの間のデータ転送を中継する。このとき、スイッチ５０Ａは、キャッシュメモリ６０Ａへ転送するためにチャネルアダプタ４０Ａ−１〜Ｎそれぞれから入力されたデータを多重して１出力に変換する。また、スイッチ５０Ａは、各チャネルアダプタ４０Ａ−１〜Ｎから入力されたデータの転送アドレスが所定のアドレスである場合には、データが適正であるか否かをチェックし、不適正なデータが検知されると、このデータを出力したチャネルアダプタ４０Ａ−１〜Ｎおよびキャッシュコントローラ７０Ａへエラーが発生したことを示すエラーメッセージを送出する。スイッチ５０Ａによるデータのチェックについては、後に詳述する。
【００３４】
キャッシュメモリ６０Ａは、ホストコンピュータ２０Ａから複数のディスク１００Ａへ書き込まれるデータ、または複数のディスク１００Ａからホストコンピュータ２０Ａへ読み出されるデータを一時的に記憶する。
【００３５】
キャッシュコントローラ７０Ａは、キャッシュメモリ６０Ａにおけるデータの書き込みおよび読み出しを管理・制御する。また、キャッシュコントローラ７０Ａは、スイッチ５０Ａからエラーメッセージを受け取ると、スイッチ５０Ａに保持されたエラー履歴をリードしてエラーの原因となったチャネルアダプタ４０Ａ−１〜Ｎを特定し、このチャネルアダプタ４０Ａ−１〜Ｎが自発的にシャットダウンしていない場合は、強制的にシャットダウンさせる。なお、キャッシュコントローラ７０Ａは、他方の系統のキャッシュコントローラ７０Ｂとキャッシュ間リンクによって接続されており、キャッシュメモリ６０Ａ、６０Ｂに書き込まれるデータが共有されるようになっている。
【００３６】
ディスクアダプタ８０Ａは、複数のディスク１００Ａとデータの送受信を行う通信インタフェースとしての機能を有する。すなわち、ディスクアダプタ８０Ａは、キャッシュメモリ６０Ａから読み出されたデータを複数のディスク１００Ａへ送信したり、キャッシュメモリ６０Ａへ書き込まれるデータを複数のディスク１００Ａから受信したりする。
【００３７】
スイッチ９０Ａは、複数のディスク１００Ａを接続するとともに、各ディスクとディスクアダプタ８０Ａの接続を切り替える。複数のディスク１００Ａは、例えば複数のハードディスクドライブからなり、それぞれのディスクが転送対象となるデータを記憶している。
【００３８】
図２は、本実施の形態に係るディスクアレイ装置１０の要部構成を示すブロック図である。同図においては、図１の参照符号におけるＡ、Ｂの表記を省略し、例えばホストコンピュータ２０Ａ、２０Ｂをホストコンピュータ２０と表記している。図２は、図１に示したディスクアレイ装置１０の構成要素のうちチャネルアダプタ４０−１、スイッチ５０、キャッシュメモリ６０、キャッシュコントローラ７０、およびディスクアダプタ８０を図示し、チャネルアダプタ４０−１およびキャッシュコントローラ７０の内部構成を示している。
【００３９】
チャネルアダプタ４０−１は、光モジュール４１、プロトコルチップ４２、ＤＭＡチップ４３、ブリッジチップ４４、メモリ４５、およびＣＰＵ４６を備えている。
【００４０】
光モジュール４１は、ホストコンピュータ２０と接続され、ホストコンピュータ２０から光ファイバなどによって伝送される光信号を電気信号に変換し、プロトコルチップ４２から出力される電気信号を光信号に変換してホストコンピュータ２０へ伝送する。
【００４１】
プロトコルチップ４２は、ホストコンピュータ２０との接続に用いられるファイバチャネル（図１のファイバチャネルリンク３０Ａ、３０Ｂ）のプロトコルを制御するためのＬＳＩ（Large Scale Integration）である。プロトコルチップ４２は、チャネルアダプタ４０−１とホストコンピュータ２０との間でやり取りされるデータを電気信号として光モジュール４１へ出力する。
【００４２】
ＤＭＡチップ４３は、キャッシュコントローラ７０に接続されたキャッシュメモリ６０と通信するインタフェース機能およびＤＭＡ機能を有している。ＤＭＡチップ４３は、ＣＰＵ４６からの指示に従って、キャッシュメモリ６０との間で通信処理を行い、ＤＭＡによるデータ転送を実行する。具体的には、例えばＤＭＡによってホストコンピュータ２０からのデータをキャッシュメモリ６０へ転送する場合、ＤＭＡチップ４３は、データの転送アドレスおよびデータそのものをブリッジチップ４４を介してスイッチ５０へ送信する。また、ＤＭＡチップ４３は、割り込み処理の必要が生じた場合に、例えばＭＳＩなどの割り込み処理に対応するアドレスを転送アドレスとしてデータ転送を実行する。
【００４３】
ブリッジチップ４４は、スイッチ５０と接続され、ＤＭＡチップ４３によって実行されるデータ転送の際に、データをスイッチ５０へ送信したり、スイッチ５０からデータを受信したりする。
【００４４】
メモリ４５は、例えばＤＲＡＭ（Dynamic Random Access Memory）などから構成され、ＣＰＵ４６により生成されたディスクリプタ（ＣＰＵ４６からＤＭＡチップ４３に対する指示）などを記憶する。
【００４５】
ＣＰＵ４６は、チャネルアダプタ４０−１の全体を統括制御するプロセッサであり、ホストコンピュータ２０からのコマンドを解釈してＤＭＡチップ４３へデータ転送の指示を出す。
【００４６】
プロトコルチップ４２、ＤＭＡチップ４３、およびＣＰＵ４６は、互いにＰＣＩバスによって接続されており、データ転送やデータ転送の指示などは、ＰＣＩバスを介して実行される。
【００４７】
一方、図２に示すキャッシュコントローラ７０は、ＣＰＵ７１、チップセット７２、およびメモリ７３を備えている。
【００４８】
ＣＰＵ７１は、キャッシュコントローラ７０の全体を統括制御するプロセッサであり、キャッシュメモリ６０におけるデータの読み書きやディスクアダプタ８０との間のデータ転送をチップセット７２へ指示する。また、ＣＰＵ７１は、チップセット７２から割り込み処理の発生が通知された場合は、処理を中断して割り込み処理を優先して実行する。さらに、ＣＰＵ７１は、エラーの発生が通知されると、スイッチ５０に保持されたエラー履歴を参照し、エラーの原因となったチャネルアダプタ４０−１〜Ｎを強制的にシャットダウンさせる。
【００４９】
チップセット７２は、ＣＰＵ７１からの指示に従って、スイッチ５０から出力されるデータをキャッシュメモリ６０に書き込んだり、ディスクアダプタ８０へ転送したりする。このとき、チップセット７２は、スイッチ５０から出力されるデータの転送アドレスが割り込み処理に対応するアドレスである場合には、ＣＰＵ７１へ割り込み処理の発生を通知する。また、チップセット７２は、スイッチ５０からエラーメッセージを受信すると、ＣＰＵ７１へエラーの発生を通知する。
【００５０】
メモリ７３は、例えばＤＲＡＭなどから構成され、ＣＰＵ７１により生成されたチップセット７２に対する指示などを記憶する。
【００５１】
図３は、本実施の形態に係るスイッチ５０の内部構成を示すブロック図である。同図に示すスイッチ５０は、複数のチャネルアダプタ４０−１〜Ｎそれぞれに対応する受信処理部５１とキャッシュコントローラ７０へデータを送信する送信処理部５２とから構成されている。また、受信処理部５１は、データ送出部５１ａ、アドレス監視部５１ｂ、データ判定部５１ｃ、およびエラー通知部５１ｄを有している。なお、図３においては、チャネルアダプタ４０−１に対応する受信処理部５１のみの詳細な構成を示しているが、他のチャネルアダプタ４０−２〜Ｎに対応する受信処理部５１も同様の構成を有している。
【００５２】
データ送出部５１ａは、それぞれ対応するチャネルアダプタ４０−１〜ＮからＤＭＡによって転送されるデータや割り込み処理を要求するデータを受信し、これらのデータを送信処理部５２へ送出する。ただし、データ送出部５１ａは、データ判定部５１ｃによってデータ送出が遮断された場合は、送信処理部５２へデータを送出することはない。
【００５３】
アドレス監視部５１ｂは、それぞれ対応するチャネルアダプタ４０−１〜Ｎから受信されるデータの転送アドレスを監視し、この転送アドレスが割り込み処理を指定するアドレスであるか否かを判定する。そして、アドレス監視部５１ｂは、転送アドレスが割り込み処理を指定するアドレスであると判定した場合に、データのチェックを行うようにデータ判定部５１ｃに指示する。
【００５４】
ここで、チャネルアダプタ４０−１〜Ｎから受信されるデータの転送アドレスに関するアドレス空間は、例えば図４に示すようになっている。すなわち、チャネルアダプタ４０−１〜Ｎに対しては、全アドレス空間のうち領域２０１のアドレスが割り当てられており、この領域２０１のアドレスがチャネルアダプタ４０−１〜Ｎに分配されている。したがって、図４においては、領域２０２のアドレスがチャネルアダプタ４０−１に割り当てられ、領域２０３のアドレスがチャネルアダプタ４０−２に割り当てられ、領域２０４のアドレスがチャネルアダプタ４０−Ｎに割り当てられている。
【００５５】
さらに、各チャネルアダプタ４０−１〜Ｎに割り当てられた領域には、キャッシュメモリ６０への通常のデータライトを指定するデータ領域２０５と、例えばＭＳＩなどによる割り込み処理を指定する割り込み領域２０６とが含まれている。そして、アドレス監視部５１ｂは、チャネルアダプタ４０−１〜Ｎから受信されるデータの転送アドレスが上述の割り込み領域２０６に含まれる場合に、データチェックを指示する。なお、アドレス監視部５１ｂは、すべてのチャネルアダプタ４０−１〜Ｎに関する割り込み領域のアドレスをデータチェックの対象とする。すなわち、例えばチャネルアダプタ４０−１に対応する受信処理部５１内のアドレス監視部５１ｂは、チャネルアダプタ４０−１に割り当てられた領域内の割り込み領域２０６のみではなく、チャネルアダプタ４０−２〜Ｎに割り当てられた領域内の割り込み領域２０６のアドレスもデータチェック対象とする。
【００５６】
データ判定部５１ｃは、割り込み処理時に転送され得るデータのデータパターンをあらかじめ記憶しており、アドレス監視部５１ｂからデータチェックを指示されると、チャネルアダプタ４０−１〜Ｎから受信されたデータとあらかじめ記憶しているデータパターンとを比較して、データが適正であるか否かを判定する。すなわち、割り込み処理として発生する処理は限られているため、データ判定部５１ｃは、割り込み処理となり得る処理すべてに対応するデータのデータパターンを記憶している。そして、データ判定部５１ｃは、アドレス監視部５１ｂからデータチェックを指示されたときに受信されたデータが、あらかじめ記憶するデータパターンのいずれかと一致するか否かを判定する。
【００５７】
具体的には、データ判定部５１ｃは、例えば図５に示すようなデータパターンをあらかじめ記憶している場合、アドレス監視部５１ｂからデータチェックを指示されたときにチャネルアダプタ４０−１〜Ｎから入力されたデータが「０１２４」であると、データ「０１２４」はデータパターンと一致しないため、エラーが発生したと判断する。一方、チャネルアダプタ４０−１〜Ｎから入力されたデータが「Ａ１Ｆ２」であると、データ「Ａ１Ｆ２」がデータパターンに含まれているため、データ「Ａ１Ｆ２」は適正であると判断する。
【００５８】
そして、データ判定部５１ｃは、エラーが発生した場合には、その旨をエラー通知部５１ｄおよび送信処理部５２内のエラー通知部５２ｂへ通知するとともに、データ送出部５１ａにおけるデータ送出を遮断する。
【００５９】
エラー通知部５１ｄは、データ判定部５１ｃからエラー発生の旨が通知されると、対応するチャネルアダプタ４０−１〜Ｎへエラーメッセージを送信してエラーを通知する。エラー通知部５１ｄからエラーを通知されたチャネルアダプタ４０−１〜Ｎは、可能であればメモリ４５などの状態を保存した上で自発的にシャットダウンする。
【００６０】
一方、送信処理部５２は、多重部５２ａおよびエラー通知部５２ｂを有している。多重部５２ａは、各受信処理部５１内のデータ送出部５１ａから送出されるデータを多重し、１出力の多重データとしてキャッシュコントローラ７０へ転送する。なお、多重部５２ａは、各受信処理部５１内のデータ送出部５１ａから送出されるデータのいずれか１つを選択してキャッシュコントローラ７０へ転送するようにしても良い。
【００６１】
エラー通知部５２ｂは、各受信処理部５１内のデータ判定部５１ｃからエラー発生の旨が通知されると、キャッシュコントローラ７０へエラーメッセージを送信してエラーを通知する。エラー通知部５２ｂからエラーを通知されると、キャッシュコントローラ７０内のＣＰＵ７１がスイッチ５０の図示しないレジスタなどに記憶されたエラー履歴を参照し、エラーが発生したチャネルアダプタ４０−１〜Ｎを特定する。そして、ＣＰＵ７１は、エラーが発生したチャネルアダプタ４０−１〜Ｎが自発的にシャットダウンしていなければ、ＣＰＵ７１と各チャネルアダプタ４０−１〜Ｎを接続する専用線を通じて強制的にシャットダウンさせる。
【００６２】
次いで、上記のように構成されたスイッチ５０によるデータ中継方法について、図６に示すフロー図を参照しながら説明する。以下では、主にチャネルアダプタ４０−１からデータが転送された場合を例に挙げて説明する。
【００６３】
チャネルアダプタ４０−１内のＣＰＵ４６およびＤＭＡチップ４３によって、キャッシュメモリ６０へライトされるデータのデータ転送や割り込み処理を要求するデータ転送が実行されると、これらのデータがチャネルアダプタ４０−１内のブリッジチップ４４からスイッチ５０に入力され、キャッシュコントローラ７０への中継が要求される（ステップＳ１０１）。スイッチ５０へ入力されたデータは、チャネルアダプタ４０−１に対応する受信処理部５１に入力され、アドレス監視部５１ｂによって、データの転送アドレスが割り込み領域に含まれるか否かが判定される。換言すれば、アドレス監視部５１ｂによって、データの転送アドレスがチェック対象であるか否かが判定される（ステップＳ１０２）。
【００６４】
なお、アドレス監視部５１ｂには、チャネルアダプタ４０−１のみではなく、チャネルアダプタ４０−２〜Ｎに関する割り込み領域のアドレスもあらかじめ保持されているため、チャネルアダプタ４０−１から入力されたデータの転送アドレスが他のチャネルアダプタ４０−２〜Ｎの割り込み領域のアドレスである場合にも、チェック対象であると判定される。このため、チャネルアダプタ４０−１から入力されたデータの転送アドレスが例えばチャネルアダプタ４０−２に関する割り込み領域のアドレスになっている場合でもデータのチェックが行われることになり、転送アドレスが割り込み処理を指定するデータについては、確実にチェックが行われることになる。
【００６５】
アドレス監視部５１ｂによる判定の結果、転送アドレスがチェック対象でなければ（ステップＳ１０２Ｎｏ）、チャネルアダプタ４０−１から転送されたデータはキャッシュメモリ６０へライトされるデータであることになるため、そのままデータ送出部５１ａから送信処理部５２へ送出される（ステップＳ１０４）。そして、このデータは、送信処理部５２内の多重部５２ａによって他の受信処理部５１から送出されたデータと多重され（ステップＳ１０５）、１出力の多重データとしてキャッシュコントローラ７０内のチップセット７２へ送信される。多重データを受信したチップセット７２は、データの転送アドレスを参照してキャッシュメモリ６０にデータを書き込む。
【００６６】
一方、チャネルアダプタ４０−１から入力されたデータの転送アドレスがチェック対象であれば（ステップＳ１０２Ｙｅｓ）、このデータはキャッシュコントローラ７０内のＣＰＵ７１へ割り込み処理を要求するデータであることになるため、アドレス監視部５１ｂからの指示により、データ判定部５１ｃによってデータが適正であるか否かの判定が行われる（ステップＳ１０３）。具体的には、データ判定部５１ｃに割り込み処理に対応するデータとしてあらかじめ記憶されたデータパターンの中に、チャネルアダプタ４０−１から入力されたデータと一致するものがあるか否かが判定される。
【００６７】
そして、データパターンの中に一致するデータがあればデータが適正であると判断され（ステップＳ１０３Ｙｅｓ）、割り込み処理を要求するデータは、データ送出部５１ａから送信処理部５２へ送出される（ステップＳ１０４）。そして、このデータは、送信処理部５２内の多重部５２ａによって他の受信処理部５１から送出されたデータと多重され（ステップＳ１０５）、１出力の多重データとしてキャッシュコントローラ７０内のチップセット７２へ送信される。多重データを受信したチップセット７２は、データの転送アドレスを参照して割り込み処理が発生したことを検知し、ＣＰＵ７１へ割り込み処理の発生を通知する。
【００６８】
また、データ判定部５１ｃにあらかじめ記憶されたデータパターンの中に一致するデータがなければデータが不適正であると判断され（ステップＳ１０３Ｎｏ）、データ判定部５１ｃによってデータ送出部５１ａからのデータの送出が遮断される（ステップＳ１０６）。これにより、転送アドレスが割り込み処理を指定するにも拘らず、データが割り込み処理として規定されていないものである場合に、キャッシュコントローラ７０へのデータ中継が行われず、キャッシュコントローラ７０内のＣＰＵ７１が予期せぬ割り込み処理の要求によって停止するのを防止することができる。
【００６９】
こうしてデータ判定部５１ｃによってデータ送出が遮断されるのと同時に、エラーが発生した旨がエラー通知部５１ｄおよび送信処理部５２内のエラー通知部５２ｂへ通知される。エラー発生の旨が通知されたエラー通知部５１ｄは、チャネルアダプタ４０−１へエラーメッセージを送信し、エラー通知部５２ｂは、キャッシュコントローラ７０へエラーメッセージを送信する（ステップＳ１０７）。さらに、データ判定部５１ｃによって、スイッチ５０内の図示しないレジスタなどにチャネルアダプタ４０−１においてエラーが発生したことを示すエラー履歴が記憶される。
【００７０】
ここで、データ判定部５１ｃによって検知されるエラーには２種類ある。１つ目は、図７（ａ）に示すように、チャネルアダプタ４０−１からスイッチ５０までの転送中に割り込み処理を指定するデータそのものに異常が発生し、転送アドレスには異常が発生せず、図中斜線で示す割り込み領域に含まれている場合である。この場合、転送アドレスが割り込み領域に含まれていることから、データ判定部５１ｃによってデータのチェックが行われるが、データそのものに異常が発生しているため、データ判定部５１ｃにあらかじめ記憶されたデータパターンに一致するものがなくエラー発生となる。
【００７１】
データ判定部５１ｃによって検知されるエラーの２つ目は、図７（ｂ）に示すように、データそのものには異常が発生せずに、チャネルアダプタ４０−１からスイッチ５０までの転送中にデータの転送アドレスに異常が発生し、図中斜線で示す割り込み領域に含まれてしまう場合である。この場合、本来、データはキャッシュメモリ６０に書き込まれるデータであるため、データ判定部５１ｃによってデータのチェックが行われると、データ判定部５１ｃにあらかじめ記憶されたデータパターンに一致するものがなくエラー発生となる。
【００７２】
これらのエラーはいずれもデータ判定部５１ｃによるチェックによって検知され、異常が発生したチャネルアダプタ４０−１およびキャッシュコントローラ７０へエラーが通知される。そして、エラーが通知されたチャネルアダプタ４０−１は、自発的なシャットダウンを試みる。また、エラーが通知されたキャッシュコントローラ７０においては、チップセット７２からＣＰＵ７１へエラー発生が通知され、ＣＰＵ７１がスイッチ５０内の図示しないレジスタに記憶されたエラー履歴をリードする。エラー履歴にはチャネルアダプタ４０−１において異常が発生したことが保持されているため、ＣＰＵ７１は、他のデバイスの状態をリードすることなく、容易にエラーの発生原因を特定することができる。
【００７３】
そして、ＣＰＵ７１によって、異常が発生したチャネルアダプタ４０−１が特定されると、ＣＰＵ７１は、各チャネルアダプタ４０−１〜Ｎと接続される専用線を通じて異常が発生したチャネルアダプタ４０−１を切り離す。これにより、異常が発生したチャネルアダプタ４０−１は、確実にシャットダウンされ、以後は、他のチャネルアダプタによって処理が続行される。
【００７４】
以上のように、本実施の形態によれば、チャネルアダプタから転送されるデータの転送アドレスが割り込み処理に対応するアドレスである場合、チャネルアダプタからキャッシュメモリへデータを中継するスイッチは、データが規定通りの割り込み処理を指定するものであるか否かを判定し、データが不適正であればこのデータの中継を停止する。同時に、スイッチは、このデータを送信したチャネルアダプタおよびキャッシュコントローラへエラー発生を通知する。このため、規定されていない割り込み処理がキャッシュコントローラ内のＣＰＵに要求されることがなく、複数のチャネルアダプタからキャッシュメモリへのデータの書き込みを制御するキャッシュコントローラ内のＣＰＵの停止を防止することができる。また、エラーを通知されたキャッシュコントローラ内のＣＰＵは、スイッチに保持されたエラー履歴を参照することにより、容易に異常が発生したチャネルアダプタを特定することができ、このＣＰＵの処理負荷を低減することができる。
【００７５】
なお、上記一実施の形態においては、スイッチ５０がキャッシュコントローラ７０と別体として設けられるものとしたが、スイッチ５０と同等の機能がキャッシュコントローラ７０に組み込まれ、一体的に構成されても良い。また、チャネルアダプタ４０−１〜Ｎやキャッシュコントローラ７０の内部には、ＣＰＵの代わりに例えばＭＰＵ（Micro Processing Unit）など他のプロセッサが設けられていても良い。
【００７６】
（付記１）複数のアダプタからプロセッサを含むコントローラへデータを中継するデータ中継装置であって、
アダプタから受信したデータの転送アドレスを監視する監視手段と、
前記監視手段によって監視される転送アドレスが前記プロセッサへの割り込み処理に対応するアドレスである場合に、このデータが適正であるか否かを判定する判定手段と、
前記判定手段によってデータが適正であると判定された場合にのみ、このデータを前記コントローラへ送信する送信手段と
を有することを特徴とするデータ中継装置。
【００７７】
（付記２）前記判定手段は、
あらかじめ規定された割り込み処理に対応するデータパターンの中に、アダプタから受信したデータと一致するものがある場合に、このデータが適正であると判定することを特徴とする付記１記載のデータ中継装置。
【００７８】
（付記３）前記判定手段は、
データが不適正であると判定した場合に、前記送信手段によるデータの送信を遮断することを特徴とする付記１記載のデータ中継装置。
【００７９】
（付記４）前記判定手段によってデータが不適正であると判定された場合に、このデータを送信したアダプタへエラーを通知する通知手段をさらに有することを特徴とする付記１記載のデータ中継装置。
【００８０】
（付記５）前記判定手段によってデータが不適正であると判定された場合に、前記プロセッサへエラーを通知する通知手段をさらに有することを特徴とする付記１記載のデータ中継装置。
【００８１】
（付記６）前記監視手段は、
アダプタから受信したデータの転送アドレスが前記複数のアダプタそれぞれに割り当てられた割り込み処理を指定するアドレス領域のいずれかに含まれるか否かを監視することを特徴とする付記１記載のデータ中継装置。
【００８２】
（付記７）前記送信手段は、
前記複数のアダプタから受信したデータを多重する多重手段を含むことを特徴とする付記１記載のデータ中継装置。
【００８３】
（付記８）ホストコンピュータから送信されるデータを記憶媒体に書き込んで記憶するストレージ装置であって、
前記ホストコンピュータから送信されたデータを受信する複数のチャネルアダプタと、
前記複数のチャネルアダプタによって受信されたデータを中継するスイッチと、
プロセッサを備え前記スイッチによって中継されたデータのキャッシュメモリへの書き込みを制御するキャッシュコントローラとを有し、
前記スイッチは、
前記チャネルアダプタによって受信されたデータの転送アドレスを監視する監視手段と、
前記監視手段によって監視される転送アドレスが前記プロセッサへの割り込み処理に対応するアドレスである場合に、このデータが適正であるか否かを判定する判定手段と、
前記判定手段によってデータが適正であると判定された場合にのみ、このデータを前記キャッシュコントローラへ送信する送信手段とを備える
ことを特徴とするストレージ装置。
【００８４】
（付記９）複数のアダプタからプロセッサを含むコントローラへデータを中継するデータ中継方法であって、
アダプタから受信したデータの転送アドレスを監視する監視工程と、
前記監視工程にて監視される転送アドレスが前記プロセッサへの割り込み処理に対応するアドレスである場合に、このデータが適正であるか否かを判定する判定工程と、
前記判定工程にてデータが適正であると判定された場合にのみ、このデータを前記コントローラへ送信する送信工程と
を有することを特徴とするデータ中継方法。
【産業上の利用可能性】
【００８５】
本発明は、複数のチャネルアダプタからキャッシュメモリへのデータの書き込みを制御するキャッシュコントローラ内のプロセッサの停止を防止するとともに、このプロセッサの処理負荷を低減する場合に適用することができる。
【図面の簡単な説明】
【００８６】
【図１】一実施の形態に係るディスクアレイ装置の概略構成を示すブロック図である。
【図２】一実施の形態に係るディスクアレイ装置の要部構成を示すブロック図である。
【図３】一実施の形態に係るスイッチの内部構成を示すブロック図である。
【図４】一実施の形態に係るアドレス空間を説明する図である。
【図５】一実施の形態に係るデータチェックの例を示す図である。
【図６】一実施の形態に係るデータ中継方法を示すフロー図である。
【図７】一実施の形態に係るエラー発生の例を示す図である。
【図８】チャネルアダプタによるデータライトの例を示す図である。
【符号の説明】
【００８７】
４０  チャネルアダプタ
５０  スイッチ
５１  受信処理部
５１ａ  データ送出部
５１ｂ  アドレス監視部
５１ｃ  データ判定部
５１ｄ  エラー通知部
５２  送信処理部
５２ａ  多重部
５２ｂ  エラー通知部
６０  キャッシュメモリ
７０  キャッシュコントローラ
【図１】
2008146456.tif 000003
【図２】
2008146456.tif 000004
【図３】
2008146456.tif 000005
【図４】
2008146456.tif 000006
【図５】
2008146456.tif 000007
【図６】
2008146456.tif 000008
【図７】
2008146456.tif 000009
【図８】
2008146456.tif 000010