(57)【特許請求の範囲】
【請求項１】
第１のバススイッチを備える制御装置と、
前記第１のバススイッチと第１のパスを介して接続される第２のバススイッチを備え前記制御装置と接続される通信装置と、
前記通信装置と第２のパスを介して接続されると共に、前記制御装置と第３のパスを介して接続され、前記制御装置と前記通信装置との通信を管理する管理装置とを備える通信システムであって、
前記通信装置が、
前記第２のバススイッチから転送されるデータの異常を検出し、前記管理装置に対して前記第２のパスを介してエラー通知を送信する異常検知部を備え、
前記管理装置が、
前記エラー通知を受信すると、前記制御装置に対して前記第１のバススイッチによる接続の切断要求を前記第３のパスを介して送信する接続切断要求処理部を備え、
前記制御装置が、
前記接続切断要求処理部からの切断要求に応じて、前記第１のパスを切断する接続切断処理部を備える
ことを特徴とする、バス通信システム。
【請求項２】
前記第１のバススイッチが単独リセット可能なポートを備え、
前記接続切断処理部が、前記第１のバススイッチに対して、前記単独リセット可能なポートをリセットすることで、前記第１のパスを切断することを特徴とする、請求項１記載のバス通信システム。
【請求項３】
前記管理装置が、
前記エラー通知を受信すると、前記通信装置に対して、前記第２のバススイッチをリセットすることで前記第２のバススイッチを経由する接続を切断する第２の切断処理部を備える
ことを特徴とする、請求項１又は２記載のバス通信システム。
【請求項４】
前記第１のバススイッチが、
転送されるデータの異常を検出し、エラー通知を発行する第２の異常検知部と、
前記エラー通知を受信すると、前記第１のバススイッチを経由する接続を切断する第３の接続切断処理部とを備える
ことを特徴とする、請求項１〜３のいずれか１項に記載のバス通信システム。
【請求項５】
前記第１のバススイッチが単独リセット可能なポートを備え、
前記第３の接続切断処理部が、前記単独リセット可能なポートをリセットすることで、前記第１のバススイッチを経由する接続を切断することを特徴とする、請求項４記載のバス通信システム。
【請求項６】
前記制御装置は、記憶装置に対する制御を行なうストレージ制御装置である
ことを特徴とする、請求項１〜５のいずれか１項に記載のバス通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バス通信システムに関する。
【背景技術】
【０００２】
複数のコントローラモジュール（Controller Module：以下ＣＭと記す）を備え、これらのＣＭが、フロントエンドルータ（Front-End Router：以下ＦＲＴと記す）を経由して互いにＰＣＩｅ（Peripheral Component Interconnect Express）バス（以下、ＰＣＩｅバスと記す）を介して接続されるＲＡＩＤ（Redundant Arrays of Inexpensive Disks）装置が知られている。
【０００３】
ＣＭ間を接続する経路にはデータの冗長性を保つために多くのユーザーデータが流れる。仮に、そのデータが、ＬＳＩ（Large Scale Integration）デバイス内部異常などの要因により化けて他のＣＭへ伝搬した場合に、正常なデータが喪失して冗長性を保持できなくなる。これにより、システムダウンに至るおそれがある。
【０００４】
図１０は従来のＲＡＩＤ装置におけるＰＣＩｅスイッチにおいて異常検知された場合の処理を示す図である。図１０に示す例においては、ＲＡＩＤ装置１００は、４つのＣＭ２００と、２つのサービスコントローラ（Service Controller：以下ＳＶＣと記す）３００と４つのＦＲＴ４００とを備える。
ＣＭ２００は、監視ＦＰＧＡ（Field Programmable Gate Array）２０１，ＣＰＵ２０２およびＰＣＩｅスイッチ２０３を備える。
【０００５】
ＰＣＩｅスイッチ２０３はポート２０３１およびＮＴＢ（Non Transparent Bridge）ポート２０３２を備える。ポート２０３１は、ＰＣＩｅスイッチ２０３が受信したデータを外部デバイスに転送するための中継を行なう。また、検出したエラー要因およびデータを転送するために必要なコンフィグレーション情報を格納するレジスタをポート２０３１毎に有する。
【０００６】
ＰＣＩｅスイッチ２０３は、ポート２０３１を介してＣＰＵ２０２と接続されている。ＣＰＵ２０２はＣＭ２００における種々の制御を行なうものであり、ＰＣＩｅのルートコンプレックスに相当する。
また、ＰＣＩｅスイッチ２０３は、ＮＴＢポート２０３２を介してＦＲＴ４００のＰＣＩｅスイッチ４０１と接続されている。
【０００７】
ＮＴＢポート２０３２は、ＣＭ２００間でデータを転送するに際して、自分が送信するデータのドメイン（アドレス）を相手が扱えるドメインに変換する。なお、ＮＴＢポート２０３２も前述したポート２０３１と同様のレジスタを有する。
【０００８】
監視ＦＰＧＡ２０１は、ＦＰＧＡ間通信制御ブロック２０１１とエラー検出ロジック２０１２とを備える。エラー検出ロジック２０１２にはＦＲＴ４００のＰＣＩｅスイッチ４０１からエラー通知信号が入力される。
【０００９】
ＦＰＧＡ間通信制御ブロック２０１１は、ＳＶＣ３００の監視ＦＰＧＡ３０１のＦＰＧＡ間通信制御ブロック３０１１とＦＰＧＡ間通信データバスを介して接続されている。
【００１０】
これにより、各ＳＶＣ３００の監視ＦＰＧＡ３０１は全てのＣＭ２００の監視ＦＰＧＡ（監視デバイス）２０１とＦＰＧＡ間通信データバスで接続される。また各ＣＭ２００からのデータバスは、それぞれ２つのＳＶＣ３００に分岐して接続され冗長バスを構成している。
【００１１】
ＳＶＣ３００は監視ＦＰＧＡ３０１を備える。監視ＦＰＧＡ３０１は、ＦＰＧＡ間通信制御ブロック３０１１と電源オフ制御機能３０１２とを備える。電源オフ制御機能３０１２は、指定されたＦＲＴ４００のＰＣＩｅスイッチ４０１に対して電源オフ要求を通知することにより、このＰＣＩｅスイッチ４０１を電源オフにする制御を行なう。
【００１２】
ＦＲＴ４００はＰＣＩｅスイッチ４０１を備える。ＰＣＩｅスイッチ４０１は複数のポート４０１１を備え、各ポート４０１１にＣＭ２００がそれぞれ接続される。
【００１３】
ＰＣＩｅスイッチ４０１のポート４０１１もＰＣＩｅスイッチ２０３のポート２０３１と同様の機能・構成を備え、ＰＣＩｅスイッチ４０１が受信したデータを外部デバイスに転送するための中継を行なう。
【００１４】
ＰＣＩｅスイッチ４０１は、複数のポート４０１１を備える。なお、図１０中においては簡便のため１つのポート４０１１のみを図示している。ＰＣＩｅスイッチ４０１の各ポート４０１１には、ＣＭ２００のＰＣＩｅスイッチ２０３のＮＴＢポート２０３２がＰＣＩｅバスを介して接続される。これにより、ＣＭ２００どうしの通信はＦＲＴ４００を経由して行なわれる。
【００１５】
ＰＣＩｅスイッチ４０１は、ＰＣＩｅアンコレクタブルエラー（Uncorrectable Error）等の訂正不可能なデータ化け（いわゆる２ビット化け）となりうる異常を検出した場合に、エラー通知信号を出力することで、その異常を外部デバイスに通知する機能を有する。このエラー通知信号は、全ＣＭ２００に入力される。
【００１６】
なお、前述したＰＣＩｅスイッチ２０３のＮＴＢポート２０３２と同様のＮＴＢポートをこのＰＣＩｅスイッチ４０１に、搭載することは可能であるが、ＮＴＢポートは１つしか持たせることができないというシステム上の制約がある。そのため、ＰＣＩｅスイッチ４０１においてＰＣＩｅバスが接続される全てのポートにＮＴＢポートを割り当てることはできない。
このように構成された従来のＲＡＩＤ装置において、ＦＲＴ４００のＰＣＩｅスイッチ４０１が異常を検出した場合の処理を以下に説明する。
【００１７】
ＰＣＩｅスイッチ４０１が異常を検出すると（図１０中の符号Ａ１参照）、ＰＣＩｅスイッチ４０１は、異常を検出したことを、エラー通知信号を発行することで全てのＣＭ２００の監視ＦＰＧＡ２０１に通知する（図１０中の符号Ａ２参照）。
【００１８】
エラー通知信号を受信した監視ＦＰＧＡ２０１は、エラー検出ロジック２０１２により、エラー通知信号の送信元をエラー要因として特定する。監視ＦＰＧＡ２０１は、ＦＰＧＡ間通信データ信号により、ＳＶＣ３００の監視ＦＰＧＡ３０１へ向けて、エラー要因であるＰＣＩｅスイッチ４０１の電源オフ要求を通知する（図１０中の符号Ａ３参照）。
エラー通知信号を受信したＳＶＣ３００の監視ＦＰＧＡ３０１は、指定されたＦＲＴ４００に対して動作電源オフ制御を発行する（図１０中の符号Ａ４参照）。
【００１９】
動作電源オフ制御を発行されたＦＲＴ４００は動作電源がオフされ、ＣＭ２００との間のＰＣＩｅバス通信が切断される（図１０中の符号Ａ５参照）。これにより、ＦＲＴ４００は全てのＣＭ２００から切り離される（図１０中の符号Ａ６参照）。
【先行技術文献】
【特許文献】
【００２０】
【特許文献１】特開２００５−２９３５９５号公報
【特許文献２】特開平１１−１９１０７３号公報
【発明の概要】
【発明が解決しようとする課題】
【００２１】
しかしながら、このような従来のＲＡＩＤ装置においては、特定のＣＭ２００からＦＲＴ４００に向かってデータが転送されるケースにおいて、ＣＭ２００のＰＣＩｅスイッチ２０３の内部でデータ化けが生じる異常が発生した場合に、そのデータを受信するＦＲＴ４００のＰＣＩｅスイッチ４０１がエラーを検出する。
【００２２】
エラーを検知したＰＣＩｅスイッチ４０１は、外部デバイスに対してエラー通知信号を発行する。上述の如く、エラー通知信号を受信したＳＶＣ３００の監視ＦＰＧＡ３０１は、指定されたＦＲＴ４００に対して動作電源オフ制御を発行し、動作電源オフ制御を発行されたＦＲＴ４００は動作電源がオフされ、全てのＣＭ２００から切り離される。
【００２３】
本来であれば、異常が発生したＣＭ２００だけを切り離すことで、エラー検出による影響を最小限に抑えることが望ましいが、上述した従来のＲＡＩＤ装置においては、結果としてＰＣＩｅスイッチ４０１を備えるＦＲＴ４００に接続された全てのＣＭ２００に影響が拡大してしまうという課題がある。
１つの側面では、本発明は、転送中のデータに異常を検出した場合においてその異常の伝播を阻止することを目的とする。
【課題を解決するための手段】
【００２４】
このため、この通信システムは、第１のバススイッチを備える制御装置と、前記第１のバススイッチと第１のパスを介して接続される第２のバススイッチを備え前記制御装置と接続される通信装置と、前記通信装置と第２のパスを介して接続されると共に、前記制御装置と第３のパスを介して接続され、前記制御装置と前記通信装置との通信を管理する管理装置とを備える通信システムであって、前記通信装置が、前記第２のバススイッチから転送されるデータの異常を検出し、前記管理装置に対して前記第２のパスを介してエラー通知を送信する異常検知部を備え、前記管理装置が、前記エラー通知を受信すると、前記制御装置に対して前記第１のバススイッチによる接続の切断要求を前記第３のパスを介して送信する接続切断要求処理部を備え、前記制御装置が、前記接続切断要求処理部からの切断要求に応じて、前記第１のパスを切断する接続切断処理部を備える。
【発明の効果】
【００２５】
一実施形態によれば、転送中のデータに異常を検出した場合においてその異常の伝播を阻止することができる。
【図面の簡単な説明】
【００２６】
【図１】実施形態の一例としてのストレージ装置におけるケーブル接続構成を例示する図である。
【図２】実施形態の一例としてのストレージ装置の機能構成を示す図である。
【図３】実施形態の一例としてのストレージ装置のＦＲＴに備えられるＰＣＩｅスイッチにおけるバス接続状態を例示する図である。
【図４】実施形態の一例としてのストレージ装置においてＣＭのＰＣＩｅスイッチ内でデータ化けとなる異常が検出された場合の処理を説明するシーケンス図である。
【図５】実施形態の一例としてのストレージ装置においてＣＭのＰＣＩｅスイッチ内でデータ化けとなる異常が検出された場合における信号の流れを示す図である。
【図６】実施形態の一例としてのストレージ装置においてＦＲＴのＰＣＩｅスイッチでデータ化けとなる異常が検出された場合の第１のエラー処理モードによる処理を説明するシーケンス図である。
【図７】実施形態の一例としてのストレージ装置においてＦＲＴのＰＣＩｅスイッチ内でデータ化けとなる異常が検出された場合における信号の流れを示す図である。
【図８】実施形態の一例としてのストレージ装置においてＦＲＴのＰＣＩｅスイッチ内でデータ化けとなる異常が検出された場合の第２のエラー処理モードによる処理を説明するシーケンス図である。
【図９】実施形態の一例としてのストレージ装置においてＦＲＴのＰＣＩｅスイッチ内でデータ化けとなる異常が検出された場合における信号の流れを示す図である。
【図１０】従来のＲＡＩＤ装置におけるＰＣＩｅスイッチにおいて異常検知された場合の処理を示す図である。
【発明を実施するための形態】
【００２７】
以下、図面を参照して本バス通信システムに係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形及び各変形例を組み合わせる等して実施することができる。又、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【００２８】
（Ａ）構成
図１は実施形態の一例としてのストレージ装置１におけるケーブル接続構成を例示する図、図２はその機能構成を示す図である。
【００２９】
この図１に示す例においては、ストレージ装置１は、ＳＶＣ３，ミッドプレーン５，複数（図１には２つを図示）のＣＭ２−１，２−２及び複数（図１には２つを図示）のＦＲＴ４−１，４−２を備える。
【００３０】
以下、このようなストレージ装置１において複数のＣＭ２−１，２−２とＦＲＴ４−１，４−２との間をＰＣＩｅの通信ケーブル８によって接続する例について示す。
【００３１】
ミッドプレーン５は、装置間のデータ通信を行なう回路基板装置であり、図示しない複数のコネクタを備え、これらのコネクタに接続された機器間でバス通信を行なう。
図１に示す例においては、ミッドプレーン５に、ＳＶＣ３と２つのＦＲＴ４−１，４−２が接続されている。
【００３２】
ＦＲＴ４−１，４−２は、複数のＣＭ２−１，２−２間の通信（ＣＭ−ＣＭ間通信）を実現する通信装置である。ＦＲＴ４−１，４−２は互いに同様の構成を有している。
なお、以下、ＦＲＴ４−１をＦＲＴ＃０と示す場合がある。同様に、ＦＲＴ４−２をＦＲＴ＃１と示す場合がある。
【００３３】
以下、ＦＲＴを示す符号としては、複数のＦＲＴのうち１つを特定する必要があるときには符号４−１，４−２を用いるが、任意のＦＲＴを指すときには符号４を用いる。
【００３４】
また、以下、ＣＭを示す符号としては、複数のＣＭのうち１つを特定する必要があるときには符号２−１，２−２を用いるが、任意のＣＭを指すときには符号２を用いる。
【００３５】
［１］ＦＲＴ
ＦＲＴ４は、ＰＣＩｅスイッチ４１および複数（例えば２４個）のコネクタ４２を備える。なお、図１中においては、便宜上、各ＦＲＴ４における一部のコネクタ４２のみを図示している。
【００３６】
コネクタ４２には、ＰＣＩｅ通信ケーブル（以下、単に通信ケーブルという）８の一端に取り付けられたコネクタ（図示省略）が脱着可能に実装される。また、通信ケーブル８の他端は、後述するＣＭ２−１，２−２のコネクタ２５に実装される。
各ＦＲＴ４は、全てのＣＭ２と通信ケーブル８によって接続される。すなわち、各ＣＭ２は、全てのＦＲＴ４とそれぞれ通信ケーブル８を介して接続される。
【００３７】
ＰＣＩｅスイッチ４１は、データの通信経路を切り替える回路装置であり、コネクタ４２に入力されたデータを、そのデータの送信先（通信相手）に応じて他のコネクタ４２等から出力させる。
【００３８】
図３は実施形態の一例としてのストレージ装置１のＦＲＴ４に備えられるＰＣＩｅスイッチ４１におけるバス接続状態を例示する図である。この図３に例示するＰＣＩｅスイッチ４１においては、その外周に沿って２４個のポート（Port）４１２を備える。これらのポート４１２にはそれぞれコネクタ４２が接続され（図３においては図示省略）、各コネクタ４２に通信ケーブル８を介してＣＭ２（ＣＭ＃０〜２３）が接続される。
また、ＰＣＩｅスイッチ４１は、図２に示すように、第２異常検出部４１１としての機能を備える。
【００３９】
第２異常検出部４１１は、ＦＲＴ４からＣＭ２に対してデータを転送する際に、ＰＣＩｅスイッチ４１内でデータ化けとなる異常を検出する。なお、このような異常の検出は既知の手法により実現することができ、その説明は省略する。
第２異常検出部４１１は、異常を検出すると、ＳＶＣ３の監視ＦＰＧＡ３１に対して異常が発生したことを通知するエラー通知信号を発行する。
【００４０】
また、各ＦＲＴ４は、データバス９及びミッドプレーン５を介して、ＳＶＣ３と接続されている。以下、これらのデータバス９及びミッドプレーン５によって各ＦＲＴ４とＳＶＣ３とを接続するデータ通信路を第１データバス９０という場合がある。
【００４１】
［２］ＣＭ
ＣＭ２は、ストレージ装置１における種々の制御を行なうものであり、図示しないホスト装置からのストレージアクセス要求に従って、図示しないＨＤＤ（Hard Disk Drive）等の記憶装置へのアクセス制御等、各種制御を行なう。また、各ＣＭ２は互いに同様の構成を有している。各ＣＭ２は図示しないコントローラエンクロージャ（Controller Enclosure：ＣＥ）に収納される。
【００４２】
図１に例示するＣＭ２は、ＣＰＵ２３，コネクタ（ｏＣＮ）２４，監視ＦＰＧＡ２２を備えるとともに、複数（図１に示す例では４つ）の、コネクタ（ＣＮ）２５およびＰＣＩｅスイッチ２１を備える。
【００４３】
コネクタ２５には、通信ケーブル８の一端が脱着可能に実装される。また、通信ケーブル８の他端は、前述したＦＲＴ４のコネクタ４２に実装される。各ＣＭ２はそれぞれ全てのＦＲＴ４と通信ケーブル８によって接続される。
【００４４】
コネクタ２４には、監視用インタフェースケーブル７０の一端が着脱可能に実装される。監視用インタフェースケーブル７０の他端は、ＳＶＣ３に備えられたコネクタ３２に実装され、これにより、ＣＭ２は監視用インタフェースケーブル７０を介してＳＶＣ３と通信可能に接続される。
各コネクタ２５には、それぞれＰＣＩｅスイッチ２１が接続されている。
ＰＣＩｅスイッチ２１は、図２に示すように、ポート２１２およびＮＴＢ（Non Transparent Bridge）ポート２１３を備える。
ポート２１２は、ＰＣＩｅスイッチ２１が受信したデータを外部デバイスに転送するための中継を行なう。
また、ポート２１２は、検出したエラー要因およびデータを転送するために必要なコンフィグレーション情報を格納するレジスタ（図示省略）を有する。
ＰＣＩｅスイッチ２１は、ポート２１２を介してＣＰＵ２３と接続されている。
また、ＰＣＩｅスイッチ２１は、ＮＴＢポート２１３を介してＦＲＴ４のＰＣＩｅスイッチ４１と接続されている。
【００４５】
ＮＴＢポート２１３は、ＣＭ２間でデータを転送するに際して、自身が送信するデータのドメイン（アドレス）を相手が扱えるドメインに変換する。なお、ＮＴＢポート２１３も前述したポート２１２と同様のレジスタを有する。
また、ＰＣＩｅスイッチ２１には、後述する監視ＦＰＧＡ２２のリセット制御部２２４からＮＴＢポートリセット信号が入力される。
ＮＴＢポートを備えたＰＣＩｅスイッチにおいては、チップに、ポートリセットを外部からポート単位で指示できるリセット端子（ポートリセット端子，ＮＴＢポートリセット端子）を備えるものがある。このようなＰＣＩｅスイッチのＮＴＢポートは、ポート単独でリセットさせることができる。ポート単独でリセットを行なうことにより、他のポートを介して接続された通信に影響を与えることなく、最小限の影響範囲でシステムの復旧を実現することができる。
本システムにおいては、このようなＮＴＢポートを、単独でリセット可能なポートとして取り扱う。また、ＮＴＢポートリセット信号は、ＮＴＢポートを単独でリセットさせるための指示信号として機能するものである。
【００４６】
ＰＣＩｅスイッチ２１においては、このＮＴＢポートリセット信号が入力されるとＮＴＢポート２１３のリセットが行なわれる。以下、ＮＴＢポート２１３をリセットすることをＮＴＢポートリセットという場合がある。ＮＴＢポートリセットにより、ＮＴＢポート２１３は単独でリセットされる。
【００４７】
なお、ＮＴＢポートリセット信号は、例えばＰＣＩｅスイッチ２１に備えられたＮＴＢポートリセット端子（図示省略）に入力される。ＰＣＩｅスイッチ２１においては、このＮＴＢポートリセット端子に信号入力が行なわれることで、ＮＴＢポート２１３のリセットが行なわれる。ただし、ＮＴＢポート２１３のリセットは、これに限定されるものではなく、他の種々の手法を用いて実現してもよい。例えば、ＮＴＢポート２１３のリセットを指示するなんらかの信号をＰＣＩｅスイッチ２１の他の端子に入力してもよい。ＰＣＩｅスイッチ２１は、この信号を受信するとＮＴＢポート２１３のリセットを行なう。
【００４８】
ＰＣＩｅスイッチ２１においてＮＴＢポート２１３のリセットが行なわれると、ＰＣＩｅスイッチ２１における当該ＮＴＢポート２１３とＦＲＴ４とを接続するＰＣＩｅバスが切断される。
【００４９】
ＰＣＩｅバスシステムにおいては、ＮＴＢポートと接続されるＰＣＩｅバスが期待外のバス速度や数で接続されてしまうことにより異常が生じた場合に、ＰＣＩｅバスの状態を再構築（復旧）させるための手法としてＮＴＢポートリセットが用いられる。本ストレージ装置１においては、ＣＭ２のＰＣＩｅスイッチ２１にＮＴＢポートリセットを行なうことで、ＰＣＩｅスイッチ２１とＦＲＴ４とを接続するＰＣＩｅバスを切断する。
【００５０】
前述の如く、ＰＣＩｅバスシステムにおいては、ＰＣＩｅスイッチには、ＮＴＢポートを１つしか持たせることができないというシステム上の制約がある。このため、上述したＦＲＴ４のＰＣＩｅスイッチ４１のＰＣＩｅバスが接続される全てのポートにＮＴＢポートを割り当てることはできない。このように、ＰＣＩｅスイッチ４１はＮＴＢポートを複数持つことができないため、ＰＣＩｅスイッチ４１においてはＮＴＢポートリセット機能は使用しない。
さらに、ＰＣＩｅスイッチ２１は、図２に示すように、第１異常検出部２１１としての機能を備える。
【００５１】
第１異常検出部（異常検出部，第２の異常検知部）２１１は、ＣＭ２からＦＲＴ４に対してデータを転送する際に、ＰＣＩｅスイッチ２１内でデータ化けとなる異常を検出する。例えば、第１異常検出部２１１は、ＰＣＩｅアンコレクタブルエラー等の訂正不可能なデータ化け（いわゆる２ビット化け）となりうる異常を検出する。なお、このような異常の検出は既知の手法により実現することができ、その説明は省略する。
第１異常検出部２１１は、異常を検出すると、監視ＦＰＧＡ２２に対して異常が発生したことを通知するエラー通知信号を発行する。
ＣＰＵ２３はＣＭ２における種々の制御を行なうものであり、ＰＣＩｅのルートコンプレックスに相当する。
【００５２】
監視ＦＰＧＡ２２は、図２に示すように、エラー要因判断部２２１，ＦＰＧＡ間通信制御ブロック２２２，リセット制御部２２４，第１判断レジスタ２２５，第２判断レジスタ２２６およびエラー検出ロジック２２３としての機能を備える。これらの機能は、監視ＦＰＧＡ２２において回路構成を設定して書き換えることにより実現される。
【００５３】
エラー検出ロジック２２３には、ＰＣＩｅスイッチ２１からエラー通知信号が入力される。エラー検出ロジック２２３は、このエラー通知信号の入力を検出することで、ＰＣＩｅスイッチ２１における異常の発生を検出する。
【００５４】
エラー要因判断部２２１は、外部（例えばＰＣＩｅスイッチ２１）から入力されるエラー通知信号に基づきエラー要因を特定する。例えば、エラー要因判断部２２１は、エラー通知信号の送信元をエラー要因であると判断する。また、エラー通知信号にエラー要因を表す情報が含まれている場合には、エラー要因判断部２２１は、エラー通知信号からエラー要因を示す情報を読み出し、この情報に基づきエラー要因を特定する。
【００５５】
従って、ＰＣＩｅスイッチ２１から監視ＦＰＧＡ２２にエラー通知信号が入力されると、エラー要因判断部２２１は、ＰＣＩｅスイッチ２１がエラー要因であると判断する。
【００５６】
また、エラー要因判断部２２１は、特定したエラー要因であるＰＣＩｅスイッチ２１のＮＴＢポート２１３をリセットさせる指示（ＮＴＢポートリセット指示）を、リセット制御部２２４に対して行なう。
【００５７】
すなわち、エラー要因判断部２２１は、ＰＣＩｅスイッチ２１からエラー通知信号を受信した場合に、ＰＣＩｅスイッチ２１のＮＴＢポート２１３をリセットさせる指示（ＮＴＢポートリセット指示）を、リセット制御部２２４に対して行なう。
【００５８】
また、エラー要因判断部２２１は、後述するＳＶＣ３の監視ＦＰＧＡ３１から、ＰＣＩｅスイッチ２１のＮＴＢポート２１３をリセットさせる要求（ＮＴＢポートリセット要求）を受信した場合にも、ＰＣＩｅスイッチ２１のＮＴＢポート２１３をリセットさせる指示（ＮＴＢポートリセット指示）を、リセット制御部２２４に対して行なう。
【００５９】
これらにより、エラー要因判断部２２１および後述するリセット制御部２２４は、異常検知を行なったＰＣＩｅスイッチ４１やＰＣＩｅスイッチ２１を経由する接続を切断する接続切断処理部（第３の接続切断処理部）として機能する。
【００６０】
第１判断レジスタ２２５には、ＰＣＩｅスイッチ２１からエラー通知信号を受信した場合において、上述の如きエラー要因判断部２２１によるＮＴＢポート２１３のＮＴＢポートリセット指示を発行する機能を有効にするか否かを表す設定値が格納される。
エラー要因判断部２２１は、この第１判断レジスタ２２５に設定された値に応じた処理を行なう。
【００６１】
例えば、この第１判断レジスタ２２５に“１”が設定されている場合には、ＰＣＩｅスイッチ２１からエラー通知信号を受信した場合に、エラー要因判断部２２１は、リセット制御部２２４に対してＰＣＩｅスイッチ２１のＮＴＢポート２１３をリセットさせるＮＴＢポートリセット指示を発行する。ＮＴＢポートリセット指示を受信したリセット制御部２２４は、後述の如く、ＰＣＩｅスイッチ２１に対してＮＴＢポートリセット信号を発行することで、ＮＴＢポート２１３をリセット（ＮＴＢポートリセット）させる。
【００６２】
一方、この第１判断レジスタ２２５に“０”が設定されている場合には、ＰＣＩｅスイッチ２１からエラー通知信号を受信した場合であっても、エラー要因判断部２２１は、ＰＣＩｅスイッチ２１のＮＴＢポート２１３をリセットさせるＮＴＢポートリセット指示を発行しない。すなわち、ＰＣＩｅスイッチ２１のＮＴＢポート２１３をリセットさせる機能を無効にする。
【００６３】
第２判断レジスタ２２６には、後述するＳＶＣ３の監視ＦＰＧＡ３１からＰＣＩｅスイッチ２１のＮＴＢポート２１３をリセットさせるＮＴＢポートリセット要求を受信した場合において、上述の如きエラー要因判断部２２１によるＮＴＢポート２１３のＮＴＢポートリセット指示を発行する機能を有効にするか否かを表す設定値が格納される。
エラー要因判断部２２１は、この第２判断レジスタ２２６に設定された値に応じた処理を行なう。
【００６４】
例えば、この第２判断レジスタ２２６に“１”が設定されている場合には、ＳＶＣ３の監視ＦＰＧＡ３１からＮＴＢポートリセット要求を受信した場合に、エラー要因判断部２２１は、リセット制御部２２４に対してＰＣＩｅスイッチ２１のＮＴＢポート２１３をリセットさせるＮＴＢポートリセット指示を発行する。
【００６５】
一方、この第２判断レジスタ２２６に“０”が設定されている場合には、ＳＶＣ３の監視ＦＰＧＡ３１からＮＴＢポートリセット要求を受信した場合でも、エラー要因判断部２２１は、リセット制御部２２４に対してＮＴＢポートリセット指示を発行しない。すなわち、エラー要因判断部２２１は、ＰＣＩｅスイッチ２１のＮＴＢポート２１３をリセットさせる機能（処理）を無効化する。
【００６６】
なお、第１判断レジスタ２２５および第２判断レジスタ２２６の各値は、“０”もしくは“１”のいずれかの値が初期値として予め設定され、また、ユーザが任意にその初期値を変更することができる。
【００６７】
ＦＰＧＡ間通信制御ブロック２２２は、ＳＶＣ３のＦＰＧＡ間通信制御ブロック３１２との間でＦＰＧＡ間データ通信を行なう。例えば、ＦＰＧＡ間通信制御ブロック２２２は、ＳＶＣ３の監視ＦＰＧＡ３１のＦＰＧＡ間通信制御ブロック３１２から送信されるＮＴＢポートリセット指示を受信する。
リセット制御部２２４は、ＰＣＩｅスイッチ２１のＮＴＢポート２１３をリセットさせる制御を行なう。
【００６８】
リセット制御部２２４は、エラー要因判断部２２１からＮＴＢポートリセット指示を受信すると、ＰＣＩｅスイッチ２１に対して、ＰＣＩｅスイッチ２１のＮＴＢポート２１３をリセットさせるＮＴＢポートリセット信号を発行する。
【００６９】
ＰＣＩｅスイッチ２１においては、このＮＴＢポートリセット信号が入力されるとＮＴＢポート２１３のリセットが行なわれる。なお、ＮＴＢポートリセット信号は、例えばＰＣＩｅスイッチ２１に備えられたＮＴＢポートリセット端子（図示省略）に入力してもよい。ＰＣＩｅスイッチ２１においては、このＮＴＢポートリセット端子に信号入力が行なわれることで、ＮＴＢポート２１３のリセットが行なわれる。ただし、ＮＴＢポート２１３のリセットは、これに限定されるものではなく、他の種々の手法を用いて実現してもよい。
ＰＣＩｅスイッチ２１においてＮＴＢポート２１３のリセットが行なわれると、ＰＣＩｅスイッチ２１とＦＲＴ４とを接続するＰＣＩｅバスが切断される。
【００７０】
従って、ＣＭ２において、エラー要因判断部２２１とリセット制御部２２４とが、ＳＶＣ３の監視ＦＰＧＡ３１からの切断要求（ＮＴＢポートリセット要求）に応じて、ＰＣＩｅスイッチ２１とＰＣＩｅスイッチ４１との接続を切断する接続切断処理部として機能する。
【００７１】
［３］ＳＶＣ
ＳＶＣ３は、本ストレージ装置１における各種監視を行なう監視装置であり、例えば、ＳＶＣ３は、各ＣＭ２と通信してエラーステート情報を収集しエラーログを蓄積する。ＳＶＣ３は、ＣＭ２とＦＲＴ４との通信を管理する管理装置としても機能する。
【００７２】
ＳＶＣ３は、図１に示すように、監視ＦＰＧＡ３１と複数（図１に示す例では２つを図示）のコネクタ（ｏＣＮ）３２を備える。コネクタ３２には、監視用インタフェースケーブル７０の一端が着脱可能に実装される。監視用インタフェースケーブル７０の他端は、ＣＭ２に備えられたコネクタ（ｏＣＮ）２４に実装され、これにより、ＳＶＣ３は監視用インタフェースケーブル７０を介して各ＣＭ２と通信可能に接続され、これらのＣＭ２を監視する。
【００７３】
図１に示す例においては、便宜上、２つのＣＭ２及び２つのコネクタ３２を図示しているが、３つ以上（例えば２４個）のＣＭ２及びコネクタ３２を備えてもよく、種々変形して実施することができる。
【００７４】
監視ＦＰＧＡ３１は回路構成を書き換え可能な集積回路である。この監視ＦＰＧＡ３１は、図２に示すように、エラー要因判断部３１１，ＦＰＧＡ間通信制御ブロック３１２，リセット制御部３１４，第３判断レジスタ３１５およびエラー検出ロジック３１３としての機能を備える。これらの機能は、監視ＦＰＧＡ３１において回路構成を設定して書き換えることにより実現される。
【００７５】
エラー検出ロジック３１３には、外部（例えばＦＲＴ４）からエラー通知信号が入力される。エラー検出ロジック３１３は、このエラー通知信号の入力を検出することで異常の発生を検出する。
【００７６】
エラー要因判断部３１１は、外部（例えばＦＲＴ４）から入力されるエラー通知信号に基づきエラー要因を特定する。例えば、エラー要因判断部３１１は、エラー通知信号の送信元をエラー要因として特定する。また、エラー通知信号にエラー要因を表す情報が含まれている場合には、エラー要因判断部３１１は、エラー通知信号からエラー要因を示す情報を読み出し、この情報に基づきエラー要因を特定する。
【００７７】
また、エラー要因判断部３１１は、エラー通知信号が入力された場合において、以下に示す（１）第１のエラー処理モードと（２）第２のエラー処理モードとのいずれかのモードで処理を行なう。
【００７８】
（１）第１のエラー処理モード
ＣＭ２からＦＲＴ４にデータが正常に転送された後、ＦＲＴ４のＰＣＩｅスイッチ４１でデータ化けとなる異常を検出したケースにおいて、その異常の検出を契機に、当該ＰＣＩｅスイッチ４１に接続された全てのＣＭ２のＰＣＩｅスイッチ２１に対してＮＴＢポート２１３のポートリセットをそれぞれ行なう。
【００７９】
第１のエラー処理モードにおいては、エラー要因判断部３１１は、特定したエラー要因との接続に用いられているＰＣＩｅスイッチ２１のＮＴＢポート２１３をリセットさせる指示（ＮＴＢポートリセット指示）を、ＣＭ２の監視ＦＰＧＡ２２に対してＦＰＧＡ間通信制御ブロック３１２を介して通知する。
【００８０】
例えば、図２に示す例においては、ＰＣＩｅスイッチ４１がエラー要因であるものとする。第１のエラー処理モードにおいては、エラー要因判断部３１１は、ＣＭ２に対して、ＰＣＩｅスイッチ４１との接続に用いられているＰＣＩｅスイッチ２１のＮＴＢポート２１３をリセットさせるＮＴＢポートリセット指示を、そのＣＭ２の監視ＦＰＧＡ２２に対して送信する。
【００８１】
このＮＴＢポートリセット指示に応じて、監視ＦＰＧＡ２２はＰＣＩｅスイッチ２１に対してＮＴＢポートリセット信号を発行し、ＮＴＢポート２１３をリセットする。当該ＦＲＴ４に接続される各ＣＭ２においてＮＴＢポート２１３のリセットを行なうことで、当該ＦＲＴ４に接続される全てのＰＣＩｅバスが切断される。これにより、異常を検出したＦＲＴ４を経由する通信経路を遮断し、データ化けがＣＭ２全体に伝搬するのを防止する事が可能となる。
【００８２】
すなわち、エラー要因判断部３１１は、ＦＲＴ４からエラー通知信号を受信すると、ＣＭ２に対してＰＣＩｅスイッチ２１による接続の切断要求（ＮＴＢポートリセット要求）を発行する接続切断要求処理部として機能する。
【００８３】
（２）第２のエラー処理モード
前述の第１のエラー処理モードにおいては、第２異常検出部４１１において異常検出が行なわれた場合に、ＣＭ２の監視ＦＰＧＡ２２等を介してＰＣＩｅスイッチ２１をポートリセットすることによりＰＣＩｅバスを遮断する。この場合、ＰＣＩｅバスの遮断が間に合わずにＰＣＩｅスイッチ４１において発生したデータ化けが伝搬してしまうおそれがある。
【００８４】
第２のエラー処理モードにおいては、エラー要因判断部３１１は、エラー通知信号の送信元であるＦＲＴ４のＰＣＩｅスイッチ４１に対してデバイスリセットを行なう。すなわち、ＦＲＴ４のＰＣＩｅスイッチ４１において、データ化けとなる異常を検出したことを契機に、ＰＣＩｅスイッチ４１に対してデバイスリセットを行なう。ＰＣＩｅスイッチ４１のデバイスリセットを行なうことにより、当該ＦＲＴ４と接続される全てのＰＣＩｅバスが切断される。これにより、異常を検出したＦＲＴ４を経由する通信経路を遮断し、データ化けがＣＭ２全体に伝搬するのをより素早く防止する事が可能となる。
【００８５】
デバイスリセットが実施されると、ＰＣＩｅスイッチ４１がリセットされ、このＰＣＩｅスイッチ４１と接続される全てのＰＣＩｅバスが切断される。ＦＲＴ４上の電源としてはオン状態のままとなる。
【００８６】
なお、ＰＣＩｅスイッチ４１に対して発行されるデバイスリセット信号は、外部デバイスにＰＣＩｅスイッチ４１のデバイスリセットをさせるための制御信号である。従来のストレージ装置においては、このようなデバイスリセットを装置動作に利用することは行なわれていない。
【００８７】
エラー要因判断部３１１は、第３判断レジスタ３１５に設定されている値に応じて、上述した第１のエラー処理モードと第２のエラー処理モードとのいずれかを選択して処理を行なう。
【００８８】
第３判断レジスタ３１５には、ＰＣＩｅスイッチ４１からエラー通知信号を受信した場合において、エラー要因判断部３１１が、第１のエラー処理モードと第２のエラー処理モードとのいずれのモードで処理を行なうかを表す設定値が格納される。
【００８９】
例えば、第３判断レジスタ３１５に“０”が設定されている場合には、第１のエラー処理モードで処理が行なわれる。すなわち、エラー要因判断部３１１は、ＦＲＴ４上のＰＣＩｅスイッチ４１からエラー通知信号を受信した場合に、ＦＲＴ４のＰＣＩｅスイッチ４１に対してデバイスリセットを発行せず、各ＣＭ２の監視ＦＰＧＡ２２に対して、ＰＣＩｅスイッチ２１のＮＴＢポート２１３をリセットさせるＮＴＢポートリセット要求を通知する。
【００９０】
一方、第３判断レジスタ３１５に“１”が設定されている場合には、第２のエラー処理モードで処理が行なわれる。すなわち、エラー要因判断部３１１は、ＦＲＴ４上のＰＣＩｅスイッチ４１からエラー通知信号を受信した場合に、リセット制御部３１４に対してＦＲＴ４のＰＣＩｅスイッチ４１をリセットさせるデバイスリセット指示を発行する。
【００９１】
このデバイスリセット指示を受信したリセット制御部３１４は、エラー通知信号の送信元であるＦＲＴ４のＰＣＩｅスイッチ４１に対してデバイスリセットを発行する。なお、各ＣＭ２の監視ＦＰＧＡ２２に対して、ＰＣＩｅスイッチ２１のＮＴＢポート２１３をリセットさせるＮＴＢポートリセット要求は通知しない。
【００９２】
ＦＰＧＡ間通信制御ブロック３１２は、ＣＭ２のＦＰＧＡ間通信制御ブロック２２２との間でＦＰＧＡ間データ通信を行なう。例えば、ＦＰＧＡ間通信制御ブロック３１２は、ＣＭ２の監視ＦＰＧＡ２２のＦＰＧＡ間通信制御ブロック２２２に向けて、ＮＴＢポートリセット指示を送信する。
【００９３】
リセット制御部３１４は、ＦＲＴ４のＰＣＩｅスイッチ４１に対してデバイスリセットを発行する。このリセット制御部３１４には、エラー要因判断部３１１からデバイスリセット指示が入力される。このデバイスリセット指示を受信したリセット制御部３１４は、ＦＲＴ４のＰＣＩｅスイッチ４１に対してデバイスリセットを発行する。
【００９４】
ＦＲＴ４のＰＣＩｅスイッチ４１がデバイスリセットされることにより、このＦＲＴ４と接続される全てのＰＣＩｅバスが切断される。これにより、このデバイスリセットが発行されたＦＲＴ４と接続される全てのＰＣＩｅバスが切断される。
すなわち、異常を検出したＦＲＴ４を経由する通信経路を遮断し、データ化けがＣＭ２全体に伝搬するのをより素早く防止する事が可能となる。
【００９５】
そして、第２のエラー処理モードにおいて、エラー要因判断部３１１およびリセット制御部３１４が、異常検知を行なったＰＣＩｅスイッチ４１を経由する接続を切断する接続切断処理部として機能する。また、第２のエラー処理モードにおいて、これらのエラー要因判断部３１１およびリセット制御部３１４が、エラー通知信号を受信すると、ＦＲＴ４に対して、ＰＣＩｅスイッチ４１をリセット（デバイスリセット）することで、このＰＣＩｅスイッチ４１を経由する接続を切断する第２の切断処理部として機能する。
なお、ＰＣＩｅスイッチ４１のデバイスリセットは既知の手法で実現することができ、その説明は省略する。
【００９６】
（Ｂ）動作
上述の如く構成された実施形態の一例としてのストレージ装置１における異常発生時の処理を説明する。
【００９７】
（ａ）ＣＭ２で異常検出された場合
先ず、ＣＭ２からＦＲＴ４に対してデータを転送する際に、ＣＭ２のＰＣＩｅスイッチ２１内でデータ化けとなる異常が検出された場合の処理を、図５を参照しながら図４に示すシーケンス図（ステップＳ１１〜Ｓ１７）に従って説明する。図５はＣＭ２からＦＲＴ４に対してデータを転送する際にＰＣＩｅスイッチ２１内でデータ化けとなる異常が検出された場合における信号の流れを示す図である。
【００９８】
なお、図４に示すシーケンス図において、ステップＳ１１，Ｓ１２，Ｓ１５〜Ｓ１７はＣＭ２のＰＣＩｅスイッチ２１における処理を示し、ステップＳ１３，Ｓ１４はＣＭ２の監視ＦＰＧＡ２２における処理を示す。
【００９９】
本例においては、ＣＭ２のＣＰＵ２３（ルートコンプレックス）からＦＲＴ４に対してデータが転送される過程において異常が検出される場合について示す（図５の矢印Ｂ１参照）。
【０１００】
ＣＭ２からＦＲＴ４に対してデータを転送する際に、ＰＣＩｅスイッチ２１において第１異常検出部２１１がＰＣＩｅスイッチ２１内でデータ化けとなる異常を検出する（図４のステップＳ１１，図５の符号Ｂ２参照）。
【０１０１】
第１異常検出部２１１は、異常を検出すると、監視ＦＰＧＡ２２に対してエラー通知信号を発行し（図４のステップＳ１２，図５の符号Ｂ３参照）、監視ＦＰＧＡ２２においてエラー検出ロジック２２３がこのエラー通知信号を受信する（図４のステップＳ１３）。
【０１０２】
監視ＦＰＧＡ２２において、エラー要因判断部２２１は、第１判断レジスタ２２５を参照する。第１判断レジスタ２２５に“１”が設定されている場合に以降の処理が行なわれる。
【０１０３】
すなわち、エラー要因判断部２２１は、ＰＣＩｅスイッチ２１のＮＴＢポート２１３をリセットさせるＮＴＢポートリセット指示をリセット制御部２２４に対して発行する。
リセット制御部２２４は、ＰＣＩｅスイッチ２１に対して、ＮＴＢポートリセット信号を発行する（図４のステップＳ１４，図５の符号Ｂ４参照）。
【０１０４】
ＰＣＩｅスイッチ２１は、このＮＴＢポートリセット信号を受信し（図４のステップＳ１５）、ＮＴＢポート２１３をリセットする（図４のステップＳ１６，図５の符号Ｂ５参照）。
【０１０５】
ＮＴＢポート２１３がリセットされることにより、ＰＣＩｅスイッチ２１とＦＲＴ４のＰＣＩｅスイッチ４１との間のＰＣＩｅバス接続が切断される（図４のステップＳ１７，図５の符号Ｂ６参照）。これにより、ＣＭ２において発生したデータ化けが（エラー）がＦＲＴ４に伝達されることを防止することができる。
【０１０６】
（ｂ）ＦＲＴ４で異常検出された場合（第１のエラー処理モード）
次に、データの送信元のＣＭ２からＦＲＴ４にデータが正常に転送された後、ＦＲＴ４のＰＣＩｅスイッチ４１でデータ化けとなる異常が検出された場合の第１のエラー処理モードによる処理を、図７を参照しながら図６に示すシーケンス図（ステップＳ２１〜Ｓ２９）に従って説明する。図７はＦＲＴ４からＣＭ２に対してデータを転送する際にＰＣＩｅスイッチ４１内でデータ化けとなる異常が検出された場合における信号の流れを示す図である。
【０１０７】
なお、図６に示すシーケンス図において、ステップＳ２１，Ｓ２２，Ｓ２９はＦＲＴ４のＰＣＩｅスイッチ４１における処理を示し、ステップＳ２３，Ｓ２４はＳＶＣ３の監視ＦＰＧＡ３１における処理を示す。また、ステップＳ２５，Ｓ２６はＣＭ２の監視ＦＰＧＡ２２における処理を示し、ステップＳ２７，Ｓ２８はＣＭ２のＰＣＩｅスイッチ２１における処理を示す。
本例においては、ＦＲＴ４からＣＭ２に対してデータが転送される過程において異常が検出される場合について示す（図７の矢印Ｃ１参照）。
【０１０８】
ＦＲＴ４からＣＭ２に対してデータを転送する際に、ＰＣＩｅスイッチ４１において第２異常検出部４１１がＰＣＩｅスイッチ４１内でデータ化けとなる異常を検出する（図６のステップＳ２１，図７の符号Ｃ２参照）。
【０１０９】
第２異常検出部４１１は、異常を検出すると、ＳＶＣ３の監視ＦＰＧＡ３１に対してエラー通知信号を発行する（図６のステップＳ２２，図７の符号Ｃ３参照）。ＳＶＣ３の監視ＦＰＧＡ３１においてエラー検出ロジック３１３がこのエラー通知信号を受信する（図６のステップＳ２３）。
【０１１０】
監視ＦＰＧＡ３１において、エラー要因判断部３１１は、第３判断レジスタ３１５を参照する。第３判断レジスタ３１５に“０”が設定されている場合に、エラー要因判断部３１１は、第１のエラー処理モードでの処理を行なう。すなわち、エラー要因判断部３１１は、各ＣＭ２の監視ＦＰＧＡ２２に対して、ＰＣＩｅスイッチ２１のＮＴＢポート２１３をリセットさせるＮＴＢポートリセット要求を通知する（図６のステップＳ２４，図７の符号Ｃ４参照）。このＮＴＢポートリセット要求は、監視ＦＰＧＡ３１のＦＰＧＡ間通信制御ブロック３１２からＣＭ２の監視ＦＰＧＡ２２のＦＰＧＡ間通信制御ブロック２２２に対してＦＰＧＡ間通信により送信される。
ＣＭ２においては、監視ＦＰＧＡ２２のＦＰＧＡ間通信制御ブロック２２２がＮＴＢポートリセット要求を受信する（図６のステップＳ２５）。
監視ＦＰＧＡ２２においては、エラー要因判断部２２１は、第２判断レジスタ２２６を参照する。
ここで、第２判断レジスタ２２６に “１”が設定されている場合に以下の処理が行なわれる。
【０１１１】
すなわち、エラー要因判断部２２１は、リセット制御部２２４に対してＰＣＩｅスイッチ２１のＮＴＢポート２１３をリセットさせるＮＴＢポートリセット指示を発行する。
【０１１２】
リセット制御部２２４は、エラー要因判断部２２１からＮＴＢポートリセット指示を受信すると、ＰＣＩｅスイッチ２１に対してＮＴＢポートリセット信号を発行する（図６のステップＳ２６，図７の符号Ｃ５参照）。
【０１１３】
ＣＭ２のＰＣＩｅスイッチ２１においては、ＮＴＢポートリセット信号が入力されると、ＮＴＢポート２１３がリセットされる（図６のステップＳ２７，図７の符号Ｃ６参照）。ＰＣＩｅスイッチ２１においてＮＴＢポート２１３のリセットが行なわれると、ＰＣＩｅスイッチ２１とＦＲＴ４のＰＣＩｅスイッチ４１との間のＰＣＩｅバス接続が切断される（図６のステップＳ２８，図７の符号Ｃ７参照）。各ＣＭ２において同様の処理が行なわれ、これにより、当該ＦＲＴ４が全てのＣＭ２から切り離される（図６のステップＳ２９）。従って、ＦＲＴ４において発生したデータ化けが（エラー）が各ＣＭ２に伝達されることを防止することができる（図７の符号Ｃ８参照）。
【０１１４】
（ｃ）ＦＲＴ４で異常検出された場合（第２のエラー処理モード）
次に、データの送信元のＣＭ２からＦＲＴ４にデータが正常に転送された後、ＦＲＴ４のＰＣＩｅスイッチ４１内でデータ化けとなる異常が検出された場合の第２のエラー処理モードによる処理を、図９を参照しながら図８に示すシーケンス図（ステップＳ３１〜Ｓ３６）に従って説明する。図９はＦＲＴ４からＣＭ２に対してデータを転送する際にＰＣＩｅスイッチ４１内でデータ化けとなる異常が検出された場合における信号の流れを示す図である。
【０１１５】
なお、図８に示すシーケンス図において、ステップＳ３１，Ｓ３２，Ｓ３５，Ｓ３６はＦＲＴ４のＰＣＩｅスイッチ４１における処理を示し、ステップＳ３３，Ｓ３４はＳＶＣ３の監視ＦＰＧＡ３１における処理を示す。
本例においては、ＦＲＴ４からＣＭ２に対してデータが転送される過程において異常が検出される場合について示す（図９の符号Ｄ１参照）。
【０１１６】
ＦＲＴ４からＣＭ２に対してデータを転送する際に、ＰＣＩｅスイッチ４１において第２異常検出部４１１がＰＣＩｅスイッチ４１内でデータ化けとなる異常を検出する（図８のステップＳ３１，図９の符号Ｄ２参照）。
【０１１７】
第２異常検出部４１１は、異常を検出すると、ＳＶＣ３の監視ＦＰＧＡ３１に対してエラー通知信号を発行する（図８のステップＳ３２，図９の符号Ｄ３参照）。ＳＶＣ３の監視ＦＰＧＡ３１においてエラー検出ロジック３１３がこのエラー通知信号を受信する（図８のステップＳ３３）。
【０１１８】
監視ＦＰＧＡ３１において、エラー要因判断部３１１は、第３判断レジスタ３１５を参照する。第３判断レジスタ３１５に“１”が設定されている場合に、エラー要因判断部３１１は、第２のエラー処理モードでの処理を行なう。すなわち、エラー要因判断部３１１が、リセット制御部３１４に対してＦＲＴ４のＰＣＩｅスイッチ４１をリセットさせるデバイスリセット指示を発行する。
【０１１９】
このデバイスリセット指示を受信したリセット制御部３１４は、ＦＲＴ４のＰＣＩｅスイッチ４１に対してデバイスリセットを発行する（図８のステップＳ３４，図９の符号Ｄ４参照）。
【０１２０】
ＦＲＴ４においては、ＰＣＩｅスイッチ４１がデバイスリセットされる（図８のステップＳ３５）。ＰＣＩｅスイッチ４１がデバイスリセットされると、このＦＲＴ４と接続される全てのＰＣＩｅバスが切断される（図８のステップＳ３６，図９の符号Ｄ５参照）。これにより、このデバイスリセットが発行されたＦＲＴ４と接続される全てのＰＣＩｅバスが切断される。従って、ＦＲＴ４において発生したデータ化けが（エラー）が各ＣＭ２に伝達されることを防止することができる（図９の符号Ｄ６参照）。
【０１２１】
（Ｃ）効果
このように、実施形態の一例としてのストレージ装置１によれば、ＣＭ２のＰＣＩｅスイッチ２１において、第１異常検出部２１１がＰＣＩｅスイッチ２１内でデータ化けとなる異常を検出した場合に、エラー通知信号を監視ＦＰＧＡ２２に発行する。
【０１２２】
そして、監視ＦＰＧＡ２２のリセット制御部２２４がＰＣＩｅスイッチ２１に対して、ＮＴＢポートリセット信号を発行する。ＰＣＩｅスイッチ２１においては、このＮＴＢポートリセット信号を受信しＮＴＢポート２１３をリセットすることで、ＰＣＩｅスイッチ２１とＦＲＴ４のＰＣＩｅスイッチ４１との間のＰＣＩｅバス接続が切断される。
これにより、ＣＭ２において発生したデータ化けが（エラー）がＦＲＴ４に伝達されることを迅速に阻止することができ、信頼性を向上させることができる。
【０１２３】
また、データの送信元のＣＭ２からＦＲＴ４にデータが正常に転送された後、ＦＲＴ４のＰＣＩｅスイッチ４１でデータ化けとなる異常が検出された場合には、第１のエラー処理モードによる処理が行なわれる。
この第１のエラー処理モードにおいて、第２異常検出部４１１は、異常を検出すると、ＳＶＣ３の監視ＦＰＧＡ３１に対してエラー通知信号を発行する。
【０１２４】
監視ＦＰＧＡ３１において、エラー要因判断部３１１は、各ＣＭ２の監視ＦＰＧＡ２２に対して、ＰＣＩｅスイッチ２１のＮＴＢポート２１３をリセットさせるＮＴＢポートリセット要求を通知する。
【０１２５】
そして、ＣＭ２においては、監視ＦＰＧＡ２２のリセット制御部２２４がＰＣＩｅスイッチ２１に対してＮＴＢポートリセット信号を発行し、ＣＭ２のＰＣＩｅスイッチ２１においてＮＴＢポート２１３のリセットが行なわれる。これにより、ＰＣＩｅスイッチ２１とＦＲＴ４のＰＣＩｅスイッチ４１との間のＰＣＩｅバス接続が切断され、ＦＲＴ４において発生したデータ化けが（エラー）が各ＣＭ２に伝達されることを阻止することができる。従って、信頼性を向上させることができる。
【０１２６】
また、データの送信元のＣＭ２からＦＲＴ４にデータが正常に転送された後、ＦＲＴ４のＰＣＩｅスイッチ４１でデータ化けとなる異常が検出された場合には、第２のエラー処理モードによる処理が行なわれる。
この第２のエラー処理モードにおいて、第２異常検出部４１１は、異常を検出すると、ＳＶＣ３の監視ＦＰＧＡ３１に対してエラー通知信号を発行する。
【０１２７】
そして、監視ＦＰＧＡ３１において、リセット制御部３１４が、ＦＲＴ４のＰＣＩｅスイッチ４１に対してデバイスリセットを発行し、これにより、ＦＲＴ４のＰＣＩｅスイッチ４１のデバイスリセットが行なわれる。
【０１２８】
これにより、ＦＲＴ４のＰＣＩｅスイッチ４１と各ＣＭ２との間のＰＣＩｅバス接続が迅速に切断され、ＦＲＴ４において発生したデータ化けが（エラー）が各ＣＭ２に伝達されることを迅速に阻止することができる。従って、信頼性を向上させることができる。
【０１２９】
また、第３判断レジスタ３１５には、エラー要因判断部３１１が、第１のエラー処理モードと第２のエラー処理モードとのいずれのモードで処理を行なうかを表す設定値が格納される。そして、この第３判断レジスタ３１５の値をユーザが任意に変更することにより、システムを柔軟に運用することができ利便性が高い。
【０１３０】
第１判断レジスタ２２５には、ＰＣＩｅスイッチ２１からエラー通知信号を受信した場合において、上述の如きエラー要因判断部２２１によるＮＴＢポート２１３のＮＴＢポートリセット指示を発行する機能を有効にするか否かを表す設定値が格納される。
【０１３１】
また、第２判断レジスタ２２６には、ＳＶＣ３の監視ＦＰＧＡ３１からＰＣＩｅスイッチ２１のＮＴＢポート２１３をリセットさせるＮＴＢポートリセット要求を受信した場合において、上述の如きエラー要因判断部２２１によるＮＴＢポート２１３のＮＴＢポートリセット指示を発行する機能を有効にするか否かを表す設定値が格納される。
【０１３２】
そして、これらの第１判断レジスタ２２５や第２判断レジスタ２２６の値をユーザが任意に変更することにより、システムを柔軟に運用することができ利便性が高い。
【０１３３】
（Ｄ）その他
開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【０１３４】
例えば、監視ＦＰＧＡ２２の構成はこれに限定されるものではなく、種々変形して実施することができる。例えば、監視ＦＰＧＡ２２としての各機能を、ＣＰＵ２３がプログラムを実行することによって実現してもよい。
同様に、監視ＦＰＧＡ３１としての各機能を、ＣＰＵがプログラムを実行することによって実現してもよい。
【０１３５】
これらの機能を実現するためのプログラムは、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【０１３６】
そして各機能を実現する際には、メモリ等の内部記憶装置に格納されたプログラムがコンピュータのマイクロプロセッサ（例えばＭＰＵ（Micro-Processing Unit）やＣＰＵ）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
また、本ストレージ装置１に備えられるＣＭ２の数やＦＲＴ４の数は、上述した各実施形態に限定されるものではなく種々変形して実施することができる。
【０１３７】
また、ＣＭ２に備えられるコネクタ２５やＦＲＴ４に備えられるコネクタ４２の数も同様に、上述した各実施形態に限定されるものではなく種々変形して実施することができる。
【０１３８】
さらに、上述した実施形態においては、通信ケーブル８がPCIeケーブルであり、ＣＭ２とＦＲＴ４との間でPCIeによる通信を行なう例を示しているが、これに限定されるものではなく、PCIe以外の規格による通信に適用してもよい。
【０１３９】
また、上述した実施形態においては、ストレージ装置１のＣＭ２とＦＲＴ４との通信を行なう場合の例を示しているが、これに限定されるものではない。例えば、複数の情報処理装置を相互に接続するコンピュータシステム等に適用してもよく、種々変形して実施することができる。
さらに、上述した実施形態においては、第３判断レジスタ３１５の値に基づき、第１のエラー処理モードと第２のエラー処理モードが択一的に実行されるが、これに限定されるものではなく、第１のエラー処理モードと第２のエラー処理モードとの両方を実行してもよい。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
【０１４０】
（Ｅ）付記
（付記１）
バススイッチと接続監視部とを備えるバス接続対象装置であって、
前記バススイッチが、
転送中のデータの異常を検出し、前記接続監視部に対してエラー通知を発行する異常検出部を備え、
前記接続監視部が、
前記エラー通知を受信すると、前記バススイッチを経由する接続を切断する接続切断処理部を備える
ことを特徴とする、バス接続対象装置。
【０１４１】
（付記２）
前記バススイッチが単独リセット可能なポートを備え、
前記接続切断処理部が、前記データの異常を検出した前記バススイッチに対して、前単独リセット可能なポートをリセットすることで、前記バススイッチを経由する接続を切断することを特徴とする、付記１記載のバス接続対象装置。
【０１４２】
（付記３）
バススイッチと接続監視部とを備え、記憶装置に対する制御を行なうストレージ制御装置であって、
前記バススイッチが、
転送中のデータの異常を検出し、前記接続監視部に対してエラー通知を発行する異常検出部を備え、
前記接続監視部が、
前記エラー通知を受信すると、前記バススイッチを経由する接続を切断する接続切断処理部を備える
ことを特徴とする、ストレージ制御装置。
【０１４３】
（付記４）
前記バススイッチが単独リセット可能なポートを備え、
前記接続切断処理部が、前記データの異常を検出した前記バススイッチに対して、前記単独リセット可能なポートをリセットすることで、前記バススイッチを経由する接続を切断することを特徴とする、付記３記載のストレージ制御装置。
【０１４４】
（付記５）
第１のバススイッチを備える制御装置と、前記第１のバススイッチと接続される第２のバススイッチを備え前記制御装置と接続される通信装置と、前記制御装置と前記通信装置との通信を管理する管理装置とを備える通信システムであって、
前記通信装置が、
前記第２のバススイッチにおける転送中のデータの異常を検出し、前記管理装置に対してエラー通知を発行する異常検知部を備え、
前記管理装置が、
前記エラー通知を受信すると、前記制御装置に対して前記第１のバススイッチによる接続の切断要求を発行する接続切断要求処理部を備え、
前記制御装置が、
前記接続切断要求処理部からの切断要求に応じて、前記第１のバススイッチと前記第２のバススイッチとの接続を切断する接続切断処理部を備える
ことを特徴とする、バス通信システム。
【０１４５】
（付記６）
前記第１のバススイッチが単独リセット可能なポートを備え、
前記接続切断処理部が、前記第１のバススイッチに対して、前記単独リセット可能なポートをリセットすることで、前記第１のバススイッチと前記第２のバススイッチとの接続を切断することを特徴とする、付記５記載のバス通信システム。
【０１４６】
（付記７）
前記管理装置が、
前記エラー通知を受信すると、前記通信装置に対して、前記第２のバススイッチをリセットすることで前記第２のバススイッチを経由する接続を切断する第２の切断処理部を備える
ことを特徴とする、付記５又は６記載のバス通信システム。
【０１４７】
（付記８）
前記第１のバススイッチが、
転送中のデータの異常を検出し、前記接続監視部に対してエラー通知を発行する第２の異常検知部と、
前記エラー通知を受信すると、前記第１のバススイッチを経由する接続を切断する第３の接続切断処理部とを備える
ことを特徴とする、付記５〜７のいずれか１項に記載のバス通信システム。
【０１４８】
（付記９）
前記第１のバススイッチが単独リセット可能なポートを備え、
前記第３の接続切断処理部が、前記単独リセット可能なポートをリセットすることで、前記第１のバススイッチを経由する接続を切断することを特徴とする、付記８記載のバス通信システム。
【符号の説明】
【０１４９】
１    ストレージ装置
２−１，２−２，２    ＣＭ
２１    PCIeスイッチ
２１１    第１異常検出部
２１２    ポート
２１３    ＮＴＢポート
２２    監視ＦＰＧＡ
２２１    エラー要因判断部
２２２    ＦＰＧＡ間通信制御ブロック
２２３    エラー検出ロジック
２２４    リセット制御部
２２５    第１判断レジスタ
２２６    第２判断レジスタ
２３    ＣＰＵ
３    ＳＶＣ
３１    監視ＦＰＧＡ
３２    コネクタ（ｏＣＮ）
３１１    エラー要因判断部
３１２    ＦＰＧＡ間通信制御ブロック
３１３    エラー検出ロジック
３１４    リセット制御部
３１５    第３判断レジスタ
４−１，４−２，４    ＦＲＴ
４１    ＰＣＩｅスイッチ
４１１    第２異常検出部
４１２    ポート
４２    コネクタ
５    ミッドプレーン
８    通信ケーブル
９    データバス
７０    監視用インタフェースケーブル
９０    第１データバス
【図１】
0006455302.tif 000002
【図２】
0006455302.tif 000003
【図３】
0006455302.tif 000004
【図４】
0006455302.tif 000005
【図５】
0006455302.tif 000006
【図６】
0006455302.tif 000007
【図７】
0006455302.tif 000008
【図８】
0006455302.tif 000009
【図９】
0006455302.tif 000010
【図１０】
0006455302.tif 000011