ホスト装置と複数の記憶装置との間のデータ転送を制御するディスクアレイコントローラであって、前記ホスト装置と前記記憶装置との間で転送されるデータを記憶する複数のキャッシュメモリと、前記ホスト装置と前記キャッシュメモリとの間のデータ転送を制御する複数の第1制御部と、前記記憶装置と前記キャッシュメモリとの間のデータ転送を制御する複数の第2制御部と、前記第1制御部または前記第2制御部と前記キャッシュメモリとの間の通信経路を切り替える複数のスイッチ部と、一の前記通信経路でのデータ転送において異常が発生した場合に、当該一の前記通信経路とは異なる他の前記通信経路により前記データを転送し、当該転送の結果に基づいて前記一の前記通信経路上の故障区間を特定する故障特定部と、を備え、前記故障区間は、前記一の前記通信経路上の分岐発生ポイントで分割することにより形成される複数の分割区間のいずれかの区間であり、前記他の前記通信経路は、当該他の前記通信経路が各前記分割区間を通過するか否かにより表す組み合わせの内容を、各前記分割区間の間で重複することなく割り当て可能な前記通信経路である、ことを特徴とするディスクアレイコントローラ。前記故障特定部は、少なくともいずれか一つの前記他の前記通信経路において前記データ転送が失敗した場合に、前記他の前記通信経路のうち前記データ転送に失敗した全ての前記他の前記通信経路のみが通過する前記分割区間を、前記故障区間であると特定する、ことを特徴とする請求項1記載のディスクアレイコントローラ。前記故障特定部は、全ての前記他の前記通信経路において前記データ転送が成功した場合に、全ての前記他の前記通信経路が非通過となる前記分割区間を、前記故障区間であると特定する、ことを特徴とする請求項1または2記載のディスクアレイコントローラ。前記他の前記通信経路の総数は、前記分割区間の総数をSとした場合に、以下の式を満たす自然数のうち、最小の自然数である、ことを特徴とする請求項1~3のいずれか1項に記載のディスクアレイコントローラ。請求項1~4のいずれか1項に記載のディスクアレイコントローラを有するディスクアレイ装置。ホスト装置と複数の記憶装置との間で転送されるデータを記憶する複数のキャッシュメモリと、前記ホスト装置と前記キャッシュメモリとの間のデータ転送を制御する複数の第1制御部と、前記記憶装置と前記キャッシュメモリとの間のデータ転送を制御する複数の第2制御部と、前記第1制御部または前記第2制御部と前記キャッシュメモリとの間の通信経路を切り替える複数のスイッチ部と、を有し、前記ホスト装置と前記記憶装置との間のデータ転送を制御するディスクアレイコントローラにおける故障特定方法であって、一の前記通信経路でのデータ転送において異常が発生した場合に、当該一の前記通信経路とは異なる他の前記通信経路により前記データを転送し、当該転送の結果に基づいて前記一の前記通信経路上の故障区間を特定する故障特定ステップを含み、前記故障区間は、前記一の前記通信経路上の分岐発生ポイントで分割することにより形成される複数の分割区間のいずれかの区間であり、前記他の前記通信経路は、当該他の前記通信経路が各前記分割区間を通過するか否かにより表す組み合わせの内容を、各前記分割区間の間で重複することなく割り当て可能な前記通信経路である、ことを特徴とする故障特定方法。本発明は、上述した課題を解決するためになされたものであり、ディスクアレイコントローラ内で故障が発生した場合に、故障箇所を簡易に特定することができるディスクアレイコントローラ、ディスクアレイ装置および故障特定方法を提供することを目的とする。本発明のディスクアレイコントローラは、ホスト装置と複数の記憶装置との間のデータ転送を制御するディスクアレイコントローラであって、前記ホスト装置と前記記憶装置との間で転送されるデータを記憶する複数のキャッシュメモリと、前記ホスト装置と前記キャッシュメモリとの間のデータ転送を制御する複数の第1制御部と、前記記憶装置と前記キャッシュメモリとの間のデータ転送を制御する複数の第2制御部と、前記第1制御部または前記第2制御部と前記キャッシュメモリとの間の通信経路を切り替える複数のスイッチ部と、一の前記通信経路でのデータ転送において異常が発生した場合に、当該一の前記通信経路とは異なる他の前記通信経路により前記データを転送し、当該転送の結果に基づいて前記一の前記通信経路上の故障区間を特定する故障特定部と、を備え、前記故障区間は、前記一の前記通信経路上の分岐発生ポイントで分割することにより形成される複数の分割区間のいずれかの区間であり、前記他の前記通信経路は、当該他の前記通信経路が各前記分割区間を通過するか否かにより表す組み合わせの内容を、各前記分割区間の間で重複することなく割り当て可能な前記通信経路である。本発明のディスクアレイ装置は、上記ディスクアレイコントローラを有する。本発明の故障特定方法は、ホスト装置と複数の記憶装置との間で転送されるデータを記憶する複数のキャッシュメモリと、前記ホスト装置と前記キャッシュメモリとの間のデータ転送を制御する複数の第1制御部と、前記記憶装置と前記キャッシュメモリとの間のデータ転送を制御する複数の第2制御部と、前記第1制御部または前記第2制御部と前記キャッシュメモリとの間の通信経路を切り替える複数のスイッチ部と、を有し、前記ホスト装置と前記記憶装置との間のデータ転送を制御するディスクアレイコントローラにおける故障特定方法であって、一の前記通信経路でのデータ転送において異常が発生した場合に、当該一の前記通信経路とは異なる他の前記通信経路により前記データを転送し、当該転送の結果に基づいて前記一の前記通信経路上の故障区間を特定する故障特定ステップを含み、前記故障区間は、前記一の前記通信経路上の分岐発生ポイントで分割することにより形成される複数の分割区間のいずれかの区間であり、前記他の前記通信経路は、当該他の前記通信経路が各前記分割区間を通過するか否かにより表す組み合わせの内容を、各前記分割区間の間で重複することなく割り当て可能な前記通信経路である。本発明によれば、ディスクアレイコントローラ内で故障が発生した場合に、故障箇所を簡易に特定することができる。以下、添付図面を参照して、本発明に係るディスクアレイコントローラ、ディスクアレイ装置および故障特定方法の好適な実施形態について説明する。まず、図1を参照して、実施形態におけるディスクアレイ装置の構成について説明する。図1に示すように、ディスクアレイ装置1は、ディスクアレイコントローラ2とディスクエンクロージャ3とを有する。ディスクエンクロージャ3は、複数のハードディスク記憶部。以下、ディスクという。を有し、これらのディスクによりRAIDRedundantArraysofInexpensiveDisksが構成される。ディスクアレイコントローラ2は、ホストディレクタ11、12と、ディスクディレクタ21、22と、ローカルスイッチ31、32と、キャッシュモジュール41~44とを有する。ディスクアレイコントローラ2に備えるホストディレクタ、ディスクディレクタおよびキャッシュモジュールの各枚数は、これに限定されず、より多くの枚数を備えてもよい。ホストディレクタ11は、ホストI/FInterface111、CPUCentralProcessingUnit112、スイッチ113、およびブリッジ114、115を含む。ここでは、ホストディレクタ11について説明するが、ホストディレクタ12も同様である。ホストI/F111は、ホストコンピュータ4と接続するためのインターフェースである。ホストI/F111としては、例えば、SCSIや、iSCSI、SASSerialAttachedSCSI、FibreChannel、InfiniBand等の汎用インターフェース、または専用インターフェースを用いることができる。CPU11212は、ホストディレクタ11の各モジュールを統制するプロセッサである。例えば、CPU11212は、ホストコンピュータ4やキャッシュモジュール41~44との間で行うデータ転送を制御する。また、CPU11212は、後述する故障箇所を特定するために必要なソフトウェアを実行する。スイッチ113は、ホストI/F111、CPU11212、およびブリッジ114、115を相互に接続する機器である。スイッチ113のインターフェースとしては、例えば、PCIPeripheralComponentInterconnectや、PCIExpress、PCIX、SAS、FibreChannel、InfiniBand等の汎用インターフェース、または専用のインターフェースを用いることができる。ブリッジ114、115は、スイッチ113とローカルスイッチ31、32とを接続するための機器である。ブリッジ114、115のインターフェースとしては、例えば、PCIExpressを用いることができる。PCIExpressを用いた場合には、各RootComplex間を接続するためのNonTransparentBridgeとなる。なお、ブリッジ114、115は、スイッチ113や、スイッチ312、323に内蔵されていてもよい。また、ブリッジ114、115は、非透過にする必要が無ければ省略してもよい。ディスクディレクタ21は、ディスクI/F211、CPU21212、スイッチ213、およびブリッジ214、215を含む。ここでは、ディスクディレクタ21について説明するが、ディスクディレクタ22も同様である。ディスクI/F211は、ディスクエンクロージャ3と接続するためのインターフェースである。ディスクI/F211としては、例えば、SCSIや、iSCSI、SAS、FibreChannel、InfiniBand、SATASerialAdvancedTechnologyAttachment等の汎用インターフェース、または専用インターフェースを用いることができる。CPU21212は、ディスクディレクタ21の各モジュールを統制するプロセッサである。例えば、CPU21212は、ディスクエンクロージャ3やキャッシュモジュール41~44との間で行うデータ転送を制御する。また、CPU21212は、後述する故障箇所を特定するために必要なソフトウェアを実行する。スイッチ213およびブリッジ214、215は、上述したスイッチ113およびブリッジ114、115と同様であるため、その説明を省略する。ローカルスイッチ31は、CPU12211、およびスイッチ312、313を含む。ここでは、ローカルスイッチ31について説明するが、ローカルスイッチ32も同様である。CPU12211は、ディスクアレイ装置1全体の状態を監視し、監視状態に応じてスイッチ312、313の設定を変更する等して、ホストディレクタ11、12やディスクディレクタ21、22と、キャッシュモジュール41~44との間で行われるデータ転送に必要なルーティングを制御する。スイッチ312、313は、CPU12211や、ホストディレクタ11、12、ディスクディレクタ21、22、キャッシュモジュール41~44とそれぞれ接続するための機器である。スイッチ312、313のインターフェースとしては、例えば、PCI、PCIExpress、PCIX、SAS、FibreChannel、InfiniBand等の汎用インターフェース、または専用のインターフェースを用いることができる。インターフェースとしてPCIExpressを用いた場合には、NonTransparentBridgeの機能を内蔵してもよい。キャッシュモジュール41は、キャッシュメモリ411、CPU412、スイッチ413、およびブリッジ414、415を含む。ここでは、キャッシュモジュール41について説明するが、キャッシュモジュール42~44も同様である。キャッシュメモリ411は、ホストコンピュータ4から読み書きされるデータを一時的にキャッシュするためのメモリである。キャッシュメモリ411は、ディスクエンクロージャ3内のディスクよりも十分高速なアクセスレイテンシおよび帯域幅を有するメモリ素子であれば、どのようなメモリ素子であってもよい。キャッシュメモリ411としては、例えば、DRAMDynamicRandomAccessMemory、SRAMStaticRAM、FlashMemory、FeRAMFerroelectricRAM、PRAMPhaseChangeRAM、MRAMMagnetoresistiveRAM等を用いることができる。キャッシュメモリ411は、SCSIや、SAS、FibreChannel、InfiniBand等の汎用インターフェース、または高速な専用インターフェースを用いてスイッチ413と接続する。なお、キャッシュメモリ411を、例えばDDRDoubleDataRateSDRAMインターフェース等でCPU412と直結してもよい。キャッシュモジュール41とキャッシュモジュール43、およびキャッシュモジュール42とキャッシュモジュール44は、それぞれ冗長ペアであり、故障時を除いて原則として同一のデータを保持する。CPU412は、キャッシュモジュール41の各モジュールを統制するプロセッサである。例えば、CPU412は、ホストディレクタ11、12やディスクディレクタ21、22との間で行われるデータ転送を制御する。また、CPU412は、キャッシュメモリ411内のキャッシュデータに関する情報を管理し、キャッシュデータの再配置や、不要になったキャッシュデータの削除、ディスクエンクロージャ3への書き出し、他のキャッシュモジュール42~44のキャッシュデータに関する管理情報と同期をとる、等の各種処理を実行する。スイッチ413、およびブリッジ414、415は、上述したスイッチ113およびブリッジ114、115と同様であるため、その説明を省略する。次に、図1を参照して本実施形態におけるディスクアレイ装置1の各種の動作について説明する。まず、ホストコンピュータ4から受信したデータをディスクエンクロージャ3内のディスクに書き込む際の動作について説明する。この動作では、ホストコンピュータ4からホストディレクタ11にライトデータが送信される場合について説明するが、ホストディレクタ12にライトデータが送信される場合についても同様である。最初に、ホストコンピュータ4からホストディレクタ11にライトデータが送信されると、ホストディレクタ11は、ローカルスイッチ31、32を介してキャッシュモジュール41およびキャッシュモジュール43に同じライトデータをキャッシュさせる。なお、キャッシュモジュール42およびキャッシュモジュール44に同じライトデータをキャッシュさせることとしてもよい。このライトデータは、まだディスクに書き込まれていないため、ダーティデータとなる。続いて、ディスクディレクタ21またはディスクディレクタ22は、キャッシュモジュール41~44内にダーティデータが存在する場合に、キャッシュメモリ411、421、431、441の空き状況やディスクエンクロージャ3内のディスクの負荷状況等を勘案し、適切なタイミングでディスクエンクロージャ3内のディスクにダーティデータを書き込む。ディスクへの書き込みが完了すると、キャッシュモジュール41~44内のダーティデータは、クリーンなデータとして取り扱われる。クリーンデータは、リードキャッシュとして用いてもよいし、キャッシュメモリ411、421、431、441の空き容量が少ない場合には削除してもよい。なお、参照される頻度が他よりも低いリードキャッシュは、キャッシュメモリ411、421、431、441から順次削除していく。次に、ホストコンピュータ4から要求されたデータをディスクエンクロージャ3内のディスクから読み出してホストコンピュータ4に送信する際の動作について説明する。最初に、ホストコンピュータ4からディスクアレイ装置1にデータのリード要求が送信されると、ホストディレクタ11またはホストディレクタ12は、そのリード要求を受け付ける。ホストディレクタ11またはホストディレクタ12は、キャッシュモジュール41およびキャッシュモジュール43にリード要求情報を登録する。なお、キャッシュモジュール42およびキャッシュモジュール44にリード要求情報を登録してもよい。続いて、ディスクディレクタ21またはディスクディレクタ22は、キャッシュモジュール41~44内に未完了のリード要求情報が存在する場合に、ディスクエンクロージャ3内のディスクからリード要求に対応するデータを読み出し、リード要求情報を登録しているキャッシュモジュール41およびキャッシュモジュール43に読み出したデータをキャッシュさせる。続いて、リード要求を受け付けたホストディレクタ11またはホストディレクタ12は、キャッシュモジュール41またはキャッシュモジュール43からリード要求に対応するデータを読み出し、ホストコンピュータ4に送信する。キャッシュモジュール41およびキャッシュモジュール43にキャッシュされたデータは、リードキャッシュとして用いてもよいし、キャッシュメモリ411、421、431、441の空き容量が少ない場合には削除してもよい。このように、ディスクアレイコントローラ2では、ホストディレクタ11、12とディスクディレクタ21、22は、それぞれキャッシュモジュール41~44との間でデータのやり取りを行う。ホストディレクタ11、12とディスクディレクタ21、22との間では、基本的にデータをやり取りしない。次に、ディスクアレイコントローラ2のモジュール間の経路で故障が発生した場合の動作について説明する。例えば、正常時の経路ブリッジ114-スイッチ312-ブリッジ414で通信が不能になった場合に、ホストディレクタ11は、代替経路ブリッジ115-スイッチ323-スイッチ322-ブリッジ415を使用する。ところが、故障箇所がホストディレクタ11のスイッチ113、またはキャッシュモジュール41のスイッチ413、CPU412およびキャッシュメモリ411である場合には、正常時の経路および代替経路は共に通信が不能となる。ここで、正常時には、ホストディレクタ11およびホストディレクタ12の両方を用いてホストコンピュータとの間のデータの読み書きを行うところ、ホストディレクタ11のスイッチ113で故障が発生した場合には、ホストディレクタ12を用いてホストコンピュータとの間のデータの読み書きを行うように、ホストコンピュータ4からのリード/ライト処理を変更する必要がある。一方、キャッシュモジュール41のスイッチ413、CPU412およびキャッシュメモリ411で故障が発生した場合には、キャッシュモジュール41を縮退させ、残りのキャッシュモジュール42~44を使用して、ダーティデータごとに、ダーティデータの冗長制御を変更する必要がある。具体的に説明すると、正常時には、キャッシュモジュール41とキャッシュモジュール43とで冗長させ、キャッシュモジュール41とキャッシュモジュール43とで冗長させるところ、上記故障が発生した場合には、第1ダーティデータをキャッシュモジュール42とキャッシュモジュール43とで冗長させ、第2ダーティデータをキャッシュモジュール43とキャッシュモジュール44とで冗長させ、第3ダーティデータをキャッシュモジュール42とキャッシュモジュール44とで冗長させるように、ダーティデータの冗長制御を変更する。このように、故障が発生した場合には、故障箇所に応じてディスクアレイコントローラ2内の動作を変更する必要があるため、ディスクアレイコントローラ2内の故障箇所をなるべく短時間で検出することに意義がある。本発明は、故障箇所を大まかに特定することで、故障発生後の対応をより迅速に行うことを可能としたものである。以下にその仕組みを説明する。まず、図2を用いて、データリード時に故障箇所を特定する手順について説明する。ここでは、ホストディレクタ11がキャッシュモジュール41に対して正常時の経路である経路R1を用いてデータ転送を要求し、失敗した場合について説明する。経路R1でのデータ転送が失敗した場合に、ホストディレクタ11は、キャッシュモジュール41に対してデータ転送を要求し、代替経路である経路R2を用いてデータ転送を試みる。また、ホストディレクタ11は、キャッシュモジュール43に対してデータ転送を要求し、代替経路である経路R3を用いてデータ転送を試みる。これは、転送対象のデータがダーティデータである場合には、キャッシュモジュール41と冗長ペアであるキャッシュモジュール43にも同じデータがあるためである。代替経路である経路R2と経路R3での転送が成功したか失敗したかを検出することで、故障箇所を大まかに特定することができる。以下に、その特定手順について具体的に説明する。図3は、経路R1を模式化した図である。図3に示すように、経路R1を、分岐が発生する機器ポイントで区切ると、4つの区間1~4に分割することができる。この場合、経路R2は、区間1および区間4を通過するが、区間2および区間3は通過しない。一方、経路R3は、区間1および区間2を通過するが、区間3および区間4は通過しない。なお、同時に2箇所以上で故障が発生する可能性が極めて低いことから、本実施形態では故障箇所が1箇所であることを前提にする。最初に、経路R2と経路R3の双方が成功した場合には、少なくとも経路R2か経路R3のいずれか一方が通過する区間1、区間2および区間4は正常であると考えられるため、残りの区間3が故障していると判断できる。次に、経路R2が成功して経路R3が失敗した場合には、成功した経路R2が通過する区間1と区間4は共に正常であり、残りの区間2および区間3のうち、失敗した経路R3が通過する区間2が故障であると判断できる。次に、経路R2が失敗して経路R3が成功した場合には、成功した経路R3が通過する区間1と区間2は共に正常であり、残りの区間3および区間4のうち、失敗した経路R2が通過する区間4が故障であると判断できる。最後に、経路R2と経路R3の双方が失敗した場合には、経路R2と経路R3の双方が通過する区間1が故障であると判断できる。この結果を、図4に示す。図4は、経路R2および経路R3におけるデータ転送の成功/失敗の組み合わせと故障区間との対応関係を示す。この対応関係は、重複することなく、1対1に対応している。したがって、経路R2および経路R3におけるデータ転送の成功/失敗の組み合わせによって、故障区間を特定することができる。つまり、経路R2および経路R3の転送結果に基づいて、経路R1を分割して形成した区間1~4の中から故障区間を特定することができる。次に、図5を用いて、データライト時に故障箇所を特定する手順について説明する。ここでは、ホストディレクタ11がキャッシュモジュール41に対して正常時の経路である経路R4を用いてライトデータを転送しようとし、失敗した場合について説明する。なお、ライトデータはディスクに書き込まれる前はダーティデータであるため、ホストディレクタ11は、キャッシュモジュール41と冗長ペアであるキャッシュモジュール43に対しても他の経路CPU11212-スイッチ113-ブリッジ115-スイッチ323-ブリッジ435-スイッチ433-CPU432を用いてライトデータを転送する。経路R4でのデータ転送が失敗した場合に、ホストディレクタ11は、キャッシュモジュール41に対し、代替経路である経路R5を用いてライトデータの転送を試みる。また、ホストディレクタ11は、キャッシュモジュール42に対し、代替経路である経路R6を用いてライトデータの転送を試みる。この場合、キャッシュモジュール42の冗長ペアであるキャッシュモジュール44にライトデータの転送を試みることとしてもよい。キャッシュモジュール42またはキャッシュモジュール44のいずれに転送するのかは、キャッシュメモリ421およびキャッシュメモリ441の空き容量や、キャッシュモジュール42およびキャッシュモジュール44の負荷状況等に基づいて決定することができる。なお、キャッシュモジュール44にライトデータの転送を試みる際の経路は、CPU11212-スイッチ113-ブリッジ114-スイッチ312-スイッチ313-ブリッジ444-スイッチ443-CPU442となる。代替経路である経路R5と経路R6での転送が成功したか失敗したかを検出することで、故障箇所を大まかに特定することができる。以下に、その特定手順について具体的に説明する。図6は、経路R4を模式化した図である。図6に示すように、経路R4を、分岐が発生する機器ポイントで区切ると、4つの区間1~4に分割することができる。この場合、経路R5は、区間1および区間4を通過するが、区間2および区間3は通過しない。一方、経路R6は、区間1および区間2を通過するが、区間3および区間4は通過しない。最初に、経路R5と経路R6の双方が成功した場合には、少なくとも経路R5か経路R6のいずれか一方が通過する区間1、区間2および区間4は正常であると考えられるため、残りの区間3が故障していると判断できる。次に、経路R5が成功して経路R6が失敗した場合には、成功した経路R5が通過する区間1と区間4は共に正常であり、残りの区間2および区間3のうち、失敗した経路R6が通過する区間2が故障であると判断できる。次に、経路R5が失敗して経路R6が成功した場合には、成功した経路R6が通過する区間1と区間2は共に正常であり、残りの区間3および区間4のうち、失敗した経路R5が通過する区間4が故障であると判断できる。最後に、経路R5と経路R6の双方が失敗した場合には、経路R5と経路R6の双方が通過する区間1が故障であると判断できる。この結果を、図7に示す。図7は、経路R5および経路R6におけるデータ転送の成功/失敗の組み合わせと故障区間との対応関係を示す。この対応関係は、重複することなく、1対1に対応している。したがって、経路R5および経路R6におけるデータ転送の成功/失敗の組み合わせによって、故障区間を特定することができる。つまり、経路R5および経路R5の転送結果に基づいて、経路R1を分割して形成した区間1~4の中から故障区間を特定することができる。上述した故障箇所を特定する手順を実行すると、データの転送を目的とせず、経路R1の故障箇所を特定する目的のみで行うデータ転送の回数を1回以内に抑えることが可能となる。なお、故障箇所を特定する手順は、ホストディレクタ11内に図4や図7に示すテーブルを予め登録しておき、このテーブルを参照しながら実行することで実現できる。上述した故障箇所を特定する手順によって、例えば区間1が故障箇所として特定された場合には、ホストディレクタ11が故障していることとなる。この場合には、ホストコンピュータ4によるデータ転送の要求先をホストディレクタ12に振り替える必要がある。例えば、一般的な冗長構成を有するホストコンピュータであれば、ホストディレクタ11とホストコンピュータ4との間の通信経路を閉塞することで、ホストコンピュータ4側で冗長経路であるホストディレクタ12側の通信経路に切り替える処理を実行させる。処理が完了していないデータ転送が存在する場合には、ホストディレクタ12側でリトライを行う。また、上述した故障箇所を特定する手順によって、例えば区間4が故障箇所として特定された場合には、キャッシュモジュール41が故障していることになる。この場合には、キャッシュモジュール41を縮退させ、残りのキャッシュモジュール42~44を使用して、ダーティデータごとに、ダーティデータの冗長制御を変更する必要がある。上述した具体例では、ホストディレクタ11とキャッシュモジュール41との間でデータ転送が失敗した場合について説明したが、データ転送が失敗する箇所は、これに限定されない。例えば、ホストディレクタ11とキャッシュモジュール42~44との間や、ホストディレクタ12とキャッシュモジュール41~44との間でデータ転送が失敗した場合であっても、上述した具体例と同様にして故障箇所を特定することができる。また、ディスクディレクタ21とキャッシュモジュール41~44との間や、ディスクディレクタ22とキャッシュモジュール41~44との間、一つのキャッシュモジュールと他の三つのキャッシュモジュールとの間で行われるデータ転送は、上述したホストディレクタ11とキャッシュモジュール41との間で行われるデータ転送と比較して、転送方法の一部に異なる部分があるものの、故障箇所を特定する手順については、上述した具体例と同様に行うことができる。また、本実施形態のディスクアレイコントローラ2では、ディスクエンクロージャ3内のディスクとディスクディレクタ21、22との間ではデータ転送を行っていないが、仮にこの間でデータ転送を行う場合であっても、上述した具体例と同様にして故障箇所を特定することができる。上述した具体例では、経路を4つの区間に分割する場合を用いて説明しているが、経路を分割する区間は4つに限定されず、任意に設定することができる。区間を任意に設定する場合には、設定する分割区間数に応じて代替経路数を決定する。具体的に、代替経路数は、設定する分割区間数をSとした場合に、以下の式を満たす自然数のうち、最小の自然数を用いる。つまり、例えば、分割区間数が1~2区間である場合には、代替経路数が1となり、分割区間数が3~4区間である場合には、代替経路数が2となり、分割区間数が5~8区間である場合には、代替経路数が3となり、分割区間数が9~16区間である場合には、代替経路数が4となる。これにより、各代替経路が各分割区間を通過するか否かにより表す組み合わせの内容を各分割区間に割り当てる際に、各分割区間の間でその内容を重複させることなく割り当てることができる。具体的には、例えば、分割区間数Sが16である場合には、上記式から、代替経路数は4となる。4つの代替経路による通過/非通過の組み合わせパターンは、全部で16パターンとなる。したがって、この16のパターンを、16の分割区間に割り当てることで、各分割区間の間で組み合わせの内容を重複させることなく割り当てることができる。図8に、4つの代替経路による通過/非通過の組み合わせを、16の分割区間に割り当てた状態を例示する。図8は、正常時の経路Rを16区間に分割し、4つの代替経路Ra~Rdによる通過/非通過の組み合わせ16パターンを、各区間に重複することなく割り当てた状態を示している。このように、本実施形態における故障箇所を特定する手順は、正常時の経路を複数の区間に分割し、この分割区間に応じて決定可能な代替経路の通過/非通過の組み合わせに基づいて、故障箇所を特定することができる。したがって、この故障箇所を特定する手順は、ディスクアレイ装置に限らず、より広範なネットワークにおける故障箇所を特定する場合にも適用することができる。また、上述した実施形態におけるディスクアレイ装置によると、代替経路でのデータ転送の結果成功/失敗を故障箇所の特定に使用するため、故障箇所の特定に必要な手順を減らすことができる。これにより、ディスクアレイ装置が故障箇所を切り離す縮退動作に移行するまでの性能や冗長性の低下を抑制することができる。ここで、本実施形態では、ディスクアレイコントローラ2内の各モジュールが全て正常である場合、ホストディレクタとキャッシュモジュールとの間、およびディスクディレクタとキャッシュモジュールとの間のデータ転送の経路は以下の経路となる。ホストディレクタ11キャッシュモジュール41間:CPU112スイッチ113ブリッジ114スイッチ312ブリッジ414スイッチ413キャッシュメモリ411またはCPU412ホストディレクタ11キャッシュモジュール42間:CPU112スイッチ113ブリッジ114スイッチ312ブリッジ424スイッチ423キャッシュメモリ421またはCPU422ホストディレクタ11キャッシュモジュール43間:CPU112スイッチ113ブリッジ115スイッチ323ブリッジ435スイッチ433キャッシュメモリ431またはCPU432ホストディレクタ11キャッシュモジュール44間:CPU112スイッチ113ブリッジ115スイッチ323ブリッジ445スイッチ443キャッシュメモリ441またはCPU442ホストディレクタ12キャッシュモジュール41間:CPU122スイッチ123ブリッジ125スイッチ322ブリッジ415スイッチ413キャッシュメモリ411またはCPU412ホストディレクタ12キャッシュモジュール42間:CPU122スイッチ123ブリッジ125スイッチ322ブリッジ425スイッチ423キャッシュメモリ421またはCPU422ホストディレクタ12キャッシュモジュール43間:CPU122スイッチ123ブリッジ124スイッチ313ブリッジ434スイッチ433キャッシュメモリ431またはCPU432ホストディレクタ12キャッシュモジュール44間:CPU122スイッチ123ブリッジ124スイッチ313ブリッジ444スイッチ443キャッシュメモリ441またはCPU442ディスクディレクタ21キャッシュモジュール41間:CPU212スイッチ213ブリッジ214スイッチ312ブリッジ414スイッチ413キャッシュメモリ411またはCPU412ディスクディレクタ21キャッシュモジュール42間:CPU212スイッチ213ブリッジ214スイッチ312ブリッジ424スイッチ423キャッシュメモリ421またはCPU422ディスクディレクタ21キャッシュモジュール43間:CPU212スイッチ213ブリッジ215スイッチ323ブリッジ435スイッチ433キャッシュメモリ431またはCPU432ディスクディレクタ21キャッシュモジュール44間:CPU212スイッチ213ブリッジ215スイッチ323ブリッジ445スイッチ443キャッシュメモリ441またはCPU442ディスクディレクタ22キャッシュモジュール41間:CPU222スイッチ223ブリッジ225スイッチ322ブリッジ415スイッチ413キャッシュメモリ411またはCPU412ディスクディレクタ22キャッシュモジュール42間:CPU222スイッチ223ブリッジ225スイッチ322ブリッジ425スイッチ423キャッシュメモリ421またはCPU422ディスクディレクタ22キャッシュモジュール43間:CPU222スイッチ223ブリッジ224スイッチ313ブリッジ434スイッチ433キャッシュメモリ431またはCPU432ディスクディレクタ22キャッシュモジュール44間:CPU222スイッチ223ブリッジ224スイッチ313ブリッジ444スイッチ443キャッシュメモリ441またはCPU442上記の各経路で異常が検出された場合には、それぞれ以下で説明する代替経路を用いて故障箇所を特定することができる。ホストディレクタ11キャッシュモジュール41間で異常が検出された場合:下記の経路111と、経路112、経路113および経路114のいずれか一つの経路との二つの代替経路を用いて故障箇所を特定する。経路111CPU112スイッチ113ブリッジ115スイッチ323スイッチ322ブリッジ415スイッチ413キャッシュメモリ411またはCPU412経路112CPU112スイッチ113ブリッジ114スイッチ312ブリッジ424スイッチ423キャッシュメモリ421またはCPU422経路113CPU112スイッチ113ブリッジ114スイッチ312スイッチ313ブリッジ434スイッチ433キャッシュメモリ431またはCPU432経路114CPU112スイッチ113ブリッジ114スイッチ312スイッチ313ブリッジ444スイッチ443キャッシュメモリ441またはCPU442ホストディレクタ11キャッシュモジュール42間で異常が検出された場合:下記の経路121と、経路122、経路123および経路124のいずれか一つの経路との二つの代替経路を用いて故障箇所を特定する。経路121CPU112スイッチ113ブリッジ115スイッチ323スイッチ322ブリッジ425スイッチ423キャッシュメモリ421またはCPU422経路122CPU112スイッチ113ブリッジ114スイッチ312ブリッジ414スイッチ413キャッシュメモリ411またはCPU412経路123CPU112スイッチ113ブリッジ114スイッチ312スイッチ313ブリッジ444スイッチ443キャッシュメモリ441またはCPU442経路124CPU112スイッチ113ブリッジ114スイッチ312スイッチ313ブリッジ434スイッチ433キャッシュメモリ431またはCPU432ホストディレクタ11キャッシュモジュール43間で異常が検出された場合:下記の経路131と、経路132、経路133および経路134のいずれか一つの経路との二つの代替経路を用いて故障箇所を特定する。経路131CPU112スイッチ113ブリッジ114スイッチ312スイッチ313ブリッジ434スイッチ433キャッシュメモリ431またはCPU432経路132CPU112スイッチ113ブリッジ115スイッチ323ブリッジ445スイッチ443キャッシュメモリ441またはCPU442経路133CPU112スイッチ113ブリッジ115スイッチ323スイッチ322ブリッジ415スイッチ413キャッシュメモリ411またはCPU412経路134CPU112スイッチ113ブリッジ115スイッチ323スイッチ322ブリッジ425スイッチ423キャッシュメモリ421またはCPU422ホストディレクタ11キャッシュモジュール44間で異常が検出された場合:下記の経路141と、経路142、経路143および経路144のいずれか一つの経路との二つの代替経路を用いて故障箇所を特定する。経路141CPU112スイッチ113ブリッジ114スイッチ312スイッチ313ブリッジ444スイッチ443キャッシュメモリ441またはCPU442経路142CPU112スイッチ113ブリッジ115スイッチ323ブリッジ435スイッチ433キャッシュメモリ431またはCPU432経路143CPU112スイッチ113ブリッジ115スイッチ323スイッチ322ブリッジ425スイッチ423キャッシュメモリ421またはCPU422経路144CPU112スイッチ113ブリッジ115スイッチ323スイッチ322ブリッジ415スイッチ413キャッシュメモリ411またはCPU412ホストディレクタ12キャッシュモジュール41間で異常が検出された場合:下記の経路151と、経路152、経路153および経路154のいずれか一つの経路との二つの代替経路を用いて故障箇所を特定する。経路151CPU122スイッチ123ブリッジ124スイッチ313スイッチ312ブリッジ414スイッチ413キャッシュメモリ411またはCPU412経路152CPU122スイッチ123ブリッジ125スイッチ322ブリッジ425スイッチ423キャッシュメモリ421またはCPU422経路153CPU122スイッチ123ブリッジ125スイッチ322スイッチ323ブリッジ435スイッチ433キャッシュメモリ431またはCPU432経路154CPU122スイッチ123ブリッジ125スイッチ322スイッチ323ブリッジ445スイッチ443キャッシュメモリ441またはCPU442ホストディレクタ12キャッシュモジュール42間で異常が検出された場合:下記の経路161と、経路162、経路163および経路164のいずれか一つの経路との二つの代替経路を用いて故障箇所を特定する。経路161CPU122スイッチ123ブリッジ124スイッチ313スイッチ312ブリッジ424スイッチ423キャッシュメモリ421またはCPU422経路162CPU122スイッチ123ブリッジ125スイッチ322ブリッジ415スイッチ413キャッシュメモリ411またはCPU412経路163CPU122スイッチ123ブリッジ125スイッチ322スイッチ323ブリッジ445スイッチ443キャッシュメモリ441またはCPU442経路164CPU122スイッチ123ブリッジ125スイッチ322スイッチ323ブリッジ435スイッチ433キャッシュメモリ431またはCPU432ホストディレクタ12キャッシュモジュール43間で異常が検出された場合:下記の経路171と、経路172、経路173および経路174のいずれか一つの経路との二つの代替経路を用いて故障箇所を特定する。経路171CPU122スイッチ123ブリッジ125スイッチ322スイッチ323ブリッジ435スイッチ433キャッシュメモリ431またはCPU432経路172CPU122スイッチ123ブリッジ124スイッチ313ブリッジ444スイッチ443キャッシュメモリ441またはCPU442経路173CPU122スイッチ123ブリッジ124スイッチ313スイッチ312ブリッジ414スイッチ413キャッシュメモリ411またはCPU412経路174CPU122スイッチ123ブリッジ124スイッチ313スイッチ312ブリッジ424スイッチ423キャッシュメモリ421またはCPU422ホストディレクタ12キャッシュモジュール44間で異常が検出された場合:下記の経路181と、経路182、経路183および経路184のいずれか一つの経路との二つの代替経路を用いて故障箇所を特定する。経路181CPU122スイッチ123ブリッジ125スイッチ322スイッチ323ブリッジ445スイッチ443キャッシュメモリ441またはCPU442経路182CPU122スイッチ123ブリッジ124スイッチ313ブリッジ434スイッチ433キャッシュメモリ431またはCPU432経路183CPU122スイッチ123ブリッジ124スイッチ313スイッチ312ブリッジ424スイッチ423キャッシュメモリ421またはCPU422経路184CPU122スイッチ123ブリッジ124スイッチ313スイッチ312ブリッジ414スイッチ413キャッシュメモリ411またはCPU412ディスクディレクタ21キャッシュモジュール41間で異常が検出された場合:下記の経路211と、経路212、経路213および経路214のいずれか一つの経路との二つの代替経路を用いて故障箇所を特定する。経路211CPU212スイッチ213ブリッジ215スイッチ323スイッチ322ブリッジ415スイッチ413キャッシュメモリ411またはCPU412経路212CPU212スイッチ213ブリッジ214スイッチ312ブリッジ424スイッチ423キャッシュメモリ421またはCPU422経路213CPU212スイッチ213ブリッジ214スイッチ312スイッチ313ブリッジ434スイッチ433キャッシュメモリ431またはCPU432経路214CPU212スイッチ213ブリッジ214スイッチ312スイッチ313ブリッジ444スイッチ443キャッシュメモリ441またはCPU442ディスクディレクタ21キャッシュモジュール42間で異常が検出された場合:下記の経路221と、経路222、経路223および経路224のいずれか一つの経路との二つの代替経路を用いて故障箇所を特定する。経路221CPU212スイッチ213ブリッジ215スイッチ323スイッチ322ブリッジ425スイッチ423キャッシュメモリ421またはCPU422経路222CPU212スイッチ213ブリッジ214スイッチ312ブリッジ414スイッチ413キャッシュメモリ411またはCPU412経路223CPU212スイッチ213ブリッジ214スイッチ312スイッチ313ブリッジ444スイッチ443キャッシュメモリ441またはCPU442経路224CPU212スイッチ213ブリッジ214スイッチ312スイッチ313ブリッジ434スイッチ433キャッシュメモリ431またはCPU432ディスクディレクタ21キャッシュモジュール43間で異常が検出された場合:下記の経路231と、経路232、経路233および経路234のいずれか一つの経路との二つの代替経路を用いて故障箇所を特定する。経路231CPU212スイッチ213ブリッジ214スイッチ312スイッチ313ブリッジ434スイッチ433キャッシュメモリ431またはCPU432経路232CPU212スイッチ213ブリッジ215スイッチ323ブリッジ445スイッチ443キャッシュメモリ441またはCPU442経路233CPU212スイッチ213ブリッジ215スイッチ323スイッチ322ブリッジ415スイッチ413キャッシュメモリ411またはCPU412経路234CPU212スイッチ213ブリッジ215スイッチ323スイッチ322ブリッジ425スイッチ423キャッシュメモリ421またはCPU422ディスクディレクタ21キャッシュモジュール44間で異常が検出された場合:下記の経路241と、経路242、経路243および経路244のいずれか一つの経路との二つの代替経路を用いて故障箇所を特定する。経路241CPU212スイッチ213ブリッジ214スイッチ312スイッチ313ブリッジ444スイッチ443キャッシュメモリ441またはCPU442経路242CPU212スイッチ213ブリッジ215スイッチ323ブリッジ435スイッチ433キャッシュメモリ431またはCPU432経路243CPU212スイッチ213ブリッジ215スイッチ323スイッチ322ブリッジ425スイッチ423キャッシュメモリ421またはCPU422経路244CPU212スイッチ213ブリッジ215スイッチ323スイッチ322ブリッジ415スイッチ413キャッシュメモリ411またはCPU412ディスクディレクタ22キャッシュモジュール41間で異常が検出された場合:下記の経路251と、経路252、経路253および経路254のいずれか一つの経路との二つの代替経路を用いて故障箇所を特定する。経路251CPU222スイッチ223ブリッジ224スイッチ313スイッチ312ブリッジ414スイッチ413キャッシュメモリ411またはCPU412経路252CPU222スイッチ223ブリッジ225スイッチ322ブリッジ425スイッチ423キャッシュメモリ421またはCPU422経路253CPU222スイッチ223ブリッジ225スイッチ322スイッチ323ブリッジ435スイッチ433キャッシュメモリ431またはCPU432経路254CPU222スイッチ223ブリッジ225スイッチ322スイッチ323ブリッジ445スイッチ443キャッシュメモリ441またはCPU442ディスクディレクタ22キャッシュモジュール42間で異常が検出された場合:下記の経路261と、経路262、経路263および経路264のいずれか一つの経路との二つの代替経路を用いて故障箇所を特定する。経路261CPU222スイッチ223ブリッジ224スイッチ313スイッチ312ブリッジ424スイッチ423キャッシュメモリ421またはCPU422経路262CPU222スイッチ223ブリッジ225スイッチ322ブリッジ415スイッチ413キャッシュメモリ411またはCPU412経路263CPU222スイッチ223ブリッジ225スイッチ322スイッチ323ブリッジ445スイッチ443キャッシュメモリ441またはCPU442経路264CPU222スイッチ223ブリッジ225スイッチ322スイッチ323ブリッジ435スイッチ433キャッシュメモリ431またはCPU432ディスクディレクタ22キャッシュモジュール43間で異常が検出された場合:下記の経路271と、経路272、経路273および経路274のいずれか一つの経路との二つの代替経路を用いて故障箇所を特定する。経路271CPU222スイッチ223ブリッジ225スイッチ322スイッチ323ブリッジ435スイッチ433キャッシュメモリ431またはCPU432経路272CPU222スイッチ223ブリッジ224スイッチ313ブリッジ444スイッチ443キャッシュメモリ441またはCPU442経路273CPU222スイッチ223ブリッジ224スイッチ313スイッチ312ブリッジ414スイッチ413キャッシュメモリ411またはCPU412経路274CPU222スイッチ223ブリッジ224スイッチ313スイッチ312ブリッジ424スイッチ423キャッシュメモリ421またはCPU422ディスクディレクタ22キャッシュモジュール44間で異常が検出された場合:下記の経路281と、経路282、経路283および経路284のいずれか一つの経路との二つの代替経路を用いて故障箇所を特定する。経路281CPU222スイッチ223ブリッジ225スイッチ322スイッチ323ブリッジ445スイッチ443キャッシュメモリ441またはCPU442経路282CPU222スイッチ223ブリッジ224スイッチ313ブリッジ434スイッチ433キャッシュメモリ431またはCPU432経路283CPU222スイッチ223ブリッジ224スイッチ313スイッチ312ブリッジ424スイッチ423キャッシュメモリ421またはCPU422経路284CPU222スイッチ223ブリッジ224スイッチ313スイッチ312ブリッジ414スイッチ413キャッシュメモリ411またはCPU412なお、上述した実施形態は、単なる例示に過ぎず、実施形態に明示していない種々の変形や技術の適用を排除するものではない。すなわち、本発明は、その趣旨を逸脱しない範囲で様々な形態に変形して実施することができる。例えば、上記の実施形態の一部または全部は、以下の付記のようにも記載され得るが、本発明を以下に限定するものではない。付記1ホスト装置と複数の記憶装置との間のデータ転送を制御するディスクアレイコントローラであって、前記ホスト装置と前記記憶装置との間で転送されるデータを記憶する複数のキャッシュメモリと、前記ホスト装置と前記キャッシュメモリとの間のデータ転送を制御する複数の第1制御部と、前記記憶装置と前記キャッシュメモリとの間のデータ転送を制御する複数の第2制御部と、前記第1制御部または前記第2制御部と前記キャッシュメモリとの間の通信経路を切り替える複数のスイッチ部と、一の前記通信経路でのデータ転送において異常が発生した場合に、当該一の前記通信経路とは異なる他の前記通信経路により前記データを転送し、当該転送の結果に基づいて前記一の前記通信経路上の故障区間を特定する故障特定部と、を備え、前記故障区間は、前記一の前記通信経路上の分岐発生ポイントで分割することにより形成される複数の分割区間のいずれかの区間であり、前記他の前記通信経路は、当該他の前記通信経路が各前記分割区間を通過するか否かにより表す組み合わせの内容を、各前記分割区間の間で重複することなく割り当て可能な前記通信経路である、ことを特徴とするディスクアレイコントローラ。付記2前記故障特定部は、少なくともいずれか一つの前記他の前記通信経路において前記データ転送が失敗した場合に、前記他の前記通信経路のうち前記データ転送に失敗した全ての前記他の前記通信経路のみが通過する前記分割区間を、前記故障区間であると特定する、ことを特徴とする付記1記載のディスクアレイコントローラ。付記3前記故障特定部は、全ての前記他の前記通信経路において前記データ転送が成功した場合に、全ての前記他の前記通信経路が非通過となる前記分割区間を、前記故障区間であると特定する、ことを特徴とする付記1または2記載のディスクアレイコントローラ。付記4前記他の前記通信経路の総数は、前記分割区間の総数をSとした場合に、以下の式を満たす自然数のうち、最小の自然数である、ことを特徴とする付記1~3のいずれか1に記載のディスクアレイコントローラ。付記5付記1~4のいずれか1に記載のディスクアレイコントローラを有するディスクアレイ装置。付記6ホスト装置と複数の記憶装置との間で転送されるデータを記憶する複数のキャッシュメモリと、前記ホスト装置と前記キャッシュメモリとの間のデータ転送を制御する複数の第1制御部と、前記記憶装置と前記キャッシュメモリとの間のデータ転送を制御する複数の第2制御部と、前記第1制御部または前記第2制御部と前記キャッシュメモリとの間の通信経路を切り替える複数のスイッチ部と、を有し、前記ホスト装置と前記記憶装置との間のデータ転送を制御するディスクアレイコントローラにおける故障特定方法であって、一の前記通信経路でのデータ転送において異常が発生した場合に、当該一の前記通信経路とは異なる他の前記通信経路により前記データを転送し、当該転送の結果に基づいて前記一の前記通信経路上の故障区間を特定する故障特定ステップを含み、前記故障区間は、前記一の前記通信経路上の分岐発生ポイントで分割することにより形成される複数の分割区間のいずれかの区間であり、前記他の前記通信経路は、当該他の前記通信経路が各前記分割区間を通過するか否かにより表す組み合わせの内容を、各前記分割区間の間で重複することなく割り当て可能な前記通信経路である、ことを特徴とする故障特定方法。