シリアルバスで接続する複数のスレーブユニットを制御する第1のマスタユニットと、前記複数のスレーブユニットを制御し、前記第1のマスタユニットと二重化された第2のマスタユニットとを有し、前記第1のマスタユニットは、自ユニットと接続された前記スレーブユニットへのアクセスで異常を検出したとき、異常を検出した箇所に関するアクセス結果と、前記第2のマスタユニットと接続された前記スレーブユニットへの前記第2のマスタユニットからのアクセス結果とを用いて、異常であるユニットを判定する制御部を有することを特徴とする情報処理装置。前記制御部は、自ユニットと接続された前記スレーブユニットへのアクセスで異常箇所があるか否かを判定する異常箇所判定部と、前記異常箇所判定部によって前記スレーブユニットへのアクセスで異常箇所があると判定された場合に、前記スレーブユニットと同一のスレーブユニットへのアクセスを、前記第2のマスタユニットに依頼するアクセス依頼部と、前記異常箇所判定部によって異常箇所があると判定された異常箇所に関するアクセス結果と前記アクセス依頼部による依頼の結果を示すアクセス結果との組み合わせを用いて、異常であるユニットを判定する異常ユニット判定部とを有することを特徴とする請求項1に記載の情報処理装置。前記第1のマスタユニットは、前記スレーブユニットへのアクセスでマスタユニット中の異常となる可能性のある箇所に関するアクセス情報について、二重化されたマスタユニットの一方の前記アクセス情報と他方の前記アクセス情報との組み合わせにより異常と判定されるユニットの候補を記憶する記憶部を有し、前記異常ユニット判定部は、さらに、前記記憶部に記憶された、二重化されたマスタユニットのそれぞれの前記アクセス情報の組み合わせを用いて、前記スレーブユニットへのアクセスで異常の原因となったユニットを判定することを特徴とする請求項1または請求項2に記載の情報処理装置。自ユニットとシリアルバスで接続されたスレーブユニットへのアクセスで異常を検出したとき、異常を検出した箇所に関するアクセス結果と、自ユニットと二重化された他のマスタユニットとシリアルバスで接続された前記スレーブユニットへの他のマスタユニットからのアクセス結果とを用いて、異常であるユニットを判定する制御部を有することを特徴とする制御装置。情報処理装置によって実行される異常ユニット判定方法であって、シリアルバスで接続する複数のスレーブユニットを制御する第1のマスタユニットが前記スレーブユニットへのアクセスで異常箇所があるか否かを判定し、前記判定する処理によって前記スレーブユニットへのアクセスで異常箇所があると判定された場合に、前記スレーブユニットと同一のスレーブユニットへのアクセスを、前記第1のマスタユニットと二重化された第2のマスタユニットに依頼し、前記判定する処理によって異常箇所があると判定された異常箇所に関するアクセス結果と前記依頼する処理によって依頼した結果を示すアクセス結果とを用いて、異常であるユニットを判定する処理を含むことを特徴とする異常ユニット判定方法。しかしながら、従来の技術では、バスマスタユニットにロースタックなどが原因でアクセス異常が発生した場合、バスマスタユニット側の異常であるのかアクセス先のバススレーブユニット側の異常であるのかを判定することができない。開示の技術は、上記に鑑みてなされたものであって、I2Cバスに接続されたI2Cユニットに異常があった場合、どのI2Cユニットに異常があるのかを判定できる情報処理装置などを提供することを目的とする。本願の開示する情報処理装置は、一つの態様において、シリアルバスで接続する複数のスレーブユニットを制御する第1のマスタユニットと、前記複数のスレーブユニットを制御し、前記第1のマスタユニットと二重化された第2のマスタユニットとを有し、前記第1のマスタユニットは、自ユニットと接続された前記スレーブユニットへのアクセスで異常を検出したとき、異常を検出した箇所に関するアクセス結果と、前記第2のマスタユニットと接続された前記スレーブユニットへの前記第2のマスタユニットからのアクセス結果とを用いて、異常であるユニットを判定する制御部を有する。本願の開示する情報処理装置の一つの態様によれば、I2Cバスに接続されたI2Cユニットに異常があった場合、どのI2Cユニットに異常があるのかを判定できるという効果を奏する。以下に、本願の開示する情報処理装置、制御装置および異常ユニット判定方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例では、I2Cバスを備えた情報処理装置であるI2Cバス装置に適用した場合を示す。しかし、本実施例によりこの発明が限定されるものではない。まず、本実施例では、I2Cバス装置は、運用中に、I2Cバスに接続されたいずれかのI2Cユニットに異常があった場合、どのI2Cユニットに異常があるのかを判定する。かかる判定を実現するために、I2Cバス装置では、マスタ側のI2Cユニットとスレーブ側のI2Cユニットとを同一のI2Cバスを用いて1対多で接続せず、必ず1対1で接続するようにする。さらに、I2Cバス装置は、マスタ側に2個のI2Cユニットを配置し、マスタ側の2個のI2Cユニットから異なる経路を介してスレーブ側のI2Cユニットへそれぞれアクセスし、そのアクセス結果を統合して異常のI2Cユニットを判定する。図2Aは、実施例に係る異常ユニット判定を実行するためのユニット間のI2Cバスの接続について説明する図である。図2Aに示すように、I2Cマスタユニット1A、1BとI2Cスレーブユニット3とは、同一のI2Cバスを用いて1対1で接続する。また、I2Cマスタユニット1A、1BからI2Cスレーブユニット3へのI2Cバスの経路は、冗長化されている。すなわち、マスタユニット1Aは、自己に搭載されたI2Cマルチプレクサを介して、I2Cスレーブユニット3とI2Cバスで接続する。また、I2Cマスタユニット1Bは、自己に搭載されたI2Cマルチプレクサを介して、I2Cマスタユニット1Aと異なる経路でI2Cスレーブユニット3と接続する。そして、I2Cマスタユニット1AがI2Cマルチプレクサを介して、I2Cスレーブユニット3と接続しているとき、他方のI2Cマスタユニット1BはI2Cマルチプレクサにより未接続状態にし、I2Cスレーブユニット3と接続しないようにする。また、I2Cマスタユニット1BがI2Cマルチプレクサを介して、I2Cスレーブユニット3と接続しているとき、他方のI2Cマスタユニット1AはI2Cマルチプレクサにより未接続状態にし、I2Cスレーブユニット3と接続しないようにする。かかるユニット間の接続の下、I2Cマスタユニット1Aは、I2Cマスタユニット1Bと協調して、I2Cスレーブユニット3へそれぞれアクセスした結果である2個のアクセス結果を統合し、異常のI2Cユニットを判定する。図2Bは、実施例に係る異常ユニットの判定方法を説明する図である。図2Bに示すように、横軸は一方のI2Cマスタユニットの異常判定情報J0を示し、縦軸は他方のI2Cマスタユニットの異常判定情報J1を示す。異常判定情報J0、J1は、異常となる可能性のあるアクセス箇所j1および当該箇所での異常内容j2を含む。符号J2で表されるマトリクスは、それぞれ2個のI2Cマスタユニットの異常判定情報から推定される異常ユニット群を示す。そして、I2Cマスタユニット1は、I2Cマスタユニット1のアクセス結果異常発生箇所とI2Cマスタユニット2のアクセス結果異常発生箇所とをマトリクスJ2上で交差統合して、異常のI2Cユニットを判定する。[実施例に係るI2Cバス装置の構成]次に、図1は、本実施例に係るI2Cバス装置の構成を示す機能ブロック図である。図1に示すように、I2Cバス装置9は、I2Cマスタユニット1Aと、I2Cマスタユニット1Bと、I2Cスレーブユニット3とを備える。I2Cバス装置9は、例えば、複数のハードディスクを有するストレージデバイス格納筐体DEおよびハードディスク以外のユニットが搭載された筐体CEを備えるストレージ装置である。I2Cマスタユニット1Aは、サービスコントローラSVC:ServiceControllerといい、I2Cバスで接続する複数のI2Cスレーブユニット3を制御したり、監視したりする。I2Cマスタユニット1Aは、I2Cマスタユニット1Bと冗長構成であり、運用系となったり、待機系となったりする。以降の説明では、I2Cマスタユニット1Aが、運用系であるものとして説明する。そして、I2Cマスタユニット1Bは、I2Cマスタユニット1Aと同様の構成であるので、その説明を省略する。I2Cスレーブユニット3は、I2Cスレーブとなるユニットであり、I2Cマスタユニット1AおよびI2Cマスタユニット1Bとそれぞれ接続される。I2Cスレーブユニット3には、例えば、FRTFrontendRouter、BRTBackendRouter、PSUPowerSupplyUnit、BBUBatteryBackupUnitが挙げられる。ここで、FRTは、ユニットの動作を管理するCMControlModule間の通信手段を提供するユニットである。BRTは、CMにハードディスクへのアクセス手段を提供するユニットである。PSUは、全ユニットに電力を供給するユニットである。BBUは、停電発生時に特定のユニットに電力を供給するユニットである。なお、図1では、説明の便宜上、I2Cスレーブユニット3が1台となる構成を採用しているが、I2Cスレーブユニット3が複数となる構成を適用しても良い。I2Cマスタユニット1Aは、I2Cマスタとなるユニットであり、FPGAFieldProgrammableGateArray10と、I2C-MUXmultiplexer20と、制御部30と、記憶部40とを備える。FPGA10は、I2Cマスタユニット1Bと接続し、I2Cマスタユニット1BのFPGA間で通信する。また、FPGA10は、I2C-MUX20を初期化する際にリセットしたり、I2Cスレーブユニット3を初期化する際にリセットしたりする。I2C-MUX20は、I2Cスレーブユニット3が複数ある場合、複数あるI2Cスレーブユニット3の内の1個のI2Cスレーブユニット3とI2Cバスで接続するようにし、接続したI2Cスレーブユニット3にアクセスする。かかるI2C-MUX20とI2Cスレーブユニット3とのI2Cバスの接続については、後述するものとする。制御部30は、I2Cデバイス制御部31およびI2Cシーケンス制御部32を有する。なお、制御部30は、例えば、ASICApplicationSpecificIntegratedCircuitやFPGAFieldProgrammableGateArray等の集積回路またはCPUCentralProcessingUnitやMPUMicroProcessingUnit等の電子回路である。記憶部40は、異常ユニット判定マトリクス41を有する。記憶部40は、例えば、RAMRandomAccessMemory、フラッシュメモリflashmemory等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置である。異常ユニット判定マトリクス41は、I2Cマスタユニットで異常となる可能性のある異常箇所に関するアクセス情報について、二重化されたI2Cマスタユニットのそれぞれのアクセス情報の組み合わせにより異常と判定されるユニットの候補を記憶する。かかる異常ユニット判定マトリクス41の構成については、後述するものとする。I2Cデバイス制御部31は、I2Cスレーブユニット3およびI2Cマスタユニット1Bのデバイスを制御する。さらに、I2Cデバイス制御部31は、異常箇所判定部31aと、アクセス依頼部31bと、異常ユニット判定部31cとを有する。異常箇所判定部31aは、自ユニットと接続されたI2Cスレーブユニット3へのアクセスで異常箇所があるか否かを判定する。一例として、異常箇所判定部31aは、二重化された他系のI2Cマスタユニット1Bとの間のFPGA間通信を用いて、運用系となるか待機系となるかを調停したうえで決定する。また、異常箇所判定部31aは、運用系と決定された場合に、アクセス対象となるI2Cスレーブユニット3以降、対象ユニットという。との接続または切断を、I2Cシーケンス制御部32を介してI2C―MUX20を制御して行う。また、異常箇所判定部31aは、対象ユニットへのアクセスで異常となる異常箇所があった場合、異常箇所に基づいてI2C-MUX20または対象ユニットのI2CデバイスをFPGA10経由でリセットする。ここで、対象ユニットへのアクセスでの異常には、I2Cシーケンス異常と、I2Cデバイス異常とがある。I2Cシーケンス異常とは、後述するI2Cシーケンス制御部32によって異常を検出した場合を示す。例えば、バスの使用権を獲得するために使用する制御信号を示すスタートコンディションまたはバスを解放するために使用する制御信号を示すストップコンディションの検出ができなかった場合、対象ユニットから正常終了であることを通知するACKを検出できなかった場合やオーバランエラーを検出した場合等がある。また、I2Cデバイス異常とは、異常箇所判定部31aによって異常を検出した場合を示す。例えば、対象ユニットのI2Cデバイスが期待した動作をしない場合がある。また、異常箇所判定部31aは、対象ユニットのI2Cデバイスを指定し、指定したI2Cデバイスのレジスタの読み込み、および指定したI2Cデバイスのレジスタへの書き込みを、I2Cシーケンス制御部3を介してする。なお、異常箇所判定部31aは、指定したI2Cデバイスのレジスタの読み込み、および指定したI2Cデバイスのレジスタへの書き込みのどちらか一方を、I2Cシーケンス制御部3を介してするようにしても良い。また、異常箇所判定部31aは、待機系と決定された場合に、運用系のI2Cマスタユニット1AからFPGA間通信を介した、対象ユニットへのアクセス依頼を待ち受ける。そして、異常箇所判定部31aは、対象ユニットへのアクセス依頼を受け取ると、当該対象ユニットへのアクセスを実行し、アクセス結果を、FPGA間通信を介して運用系のI2Cマスタユニット1Aに通知する。アクセス依頼部31bは、異常箇所判定部31aによって対象ユニットへのアクセスで異常箇所があると判定された場合に、対象ユニットと同一の対象ユニットへのアクセスを、待機系側のI2Cマスタユニット1Bに依頼する。異常ユニット判定部31cは、異常箇所判定部31aによって判定された異常箇所に関するアクセス結果とアクセス依頼部31bによる依頼結果を示すアクセス結果との組み合わせを用いて、異常であるユニットを判定する。一例として、異常ユニット判定部31cは、異常ユニット判定マトリクス41に記憶された、I2Cマスタユニットのそれぞれの異常判定情報の組み合わせと、実際に実行されたそれぞれのアクセス結果の組み合わせとを用いて、異常のユニットを判定する。異常判定情報は、異常となる可能性のある箇所および当該箇所での異常内容を含むものである。例えば、異常判定情報には、I2C-MUXとアクセスした際のシーケンス異常およびデバイス異常がある。また、異常判定情報には、対象ユニットと接続した際のシーケンス異常、対象ユニットと接続後に読み書きした際のシーケンス異常およびデバイス異常等がある。かかる異常判定情報の詳細は、後述するものとする。I2Cシーケンス制御部32は、I2Cのシーケンスに用いられる各種信号や各種コマンドを対象ユニットに送信したり、検出したりする。一例として、I2Cシーケンス制御部32は、スタートコンディションの制御信号またはストップコンディションの制御信号を対象ユニットに送出したり、検出したりする。また、I2Cシーケンス制御部32は、ACKを対象ユニットに送出したり、検出したりする。また、I2Cシーケンス制御部32は、異常箇所判定部31aから指定された対象ユニットのデバイスに対するアドレスデータ、レジスタデータまたは書き込みデータを該当コマンドとともにI2Cバス上に送信する。そして、I2Cシーケンス制御部32は、対象ユニットから該当コマンドに対応するレジスタデータを受信し、異常箇所判定部31aに通知する。また、I2Cシーケンス制御部32は、I2Cのシーケンスの異常を、I2Cシーケンス異常として検出する。[異常箇所判定についての説明]ここで、異常判定部31aによる異常箇所判定について、図3を参照しながら説明する。図3は、実施例に係る異常箇所判定を説明する図である。なお、図3では、運用SVC2Aが運用系のI2Cマスタユニットに相当し、待機SVC2Bが待機系のI2Cマスタユニットに相当するものとする。図3に示すように、運用SVC2Aは、待機SVC2Bと二重化され、自己に搭載されたI2C-MUX20Aを介して、対象ユニット3とI2Cバスで接続する。なお、説明内の内の符号は、各異常種別を表すものとする。運用SVC2AのI2Cデバイス制御部31Aは、FPGA10Aと待機SVC2BのFPGA10Bとを介して、自己が運用系となるか待機系となるかを調停し決定するS1。ここでは、I2Cデバイス制御部31Aは、運用SVC2Aが運用系となると決定したものとする。次に、運用系と決定した運用SVC2Aは、I2Cシーケンス制御部32Aを介して、I2C-MUX20Aのステータスを、例えばI2C-MUX20Aの記憶部から読み出して確認するS2。ここで、I2Cシーケンス制御部32Aが、I2C-MUX20Aへのアクセスで異常を検出した場合、I2Cデバイス制御部31Aは、I2Cシーケンス異常e1と判定する。また、I2Cデバイス制御部31Aが、I2C-MUX20Aのステータスが期待した状態でないような異常を検出した場合、I2Cデバイス制御部31Aは、デバイス異常e2と判定する。なお、I2C-MUX20Aのステータスが期待した状態でないような異常とは、例えば、対象ユニットと既に接続状態となっているような場合がある。そして、I2Cデバイス制御部31Aは、I2C-MUX20Aのステータスの異常を検出した場合、I2C-MUX20Aをリセットによる切断をしたうえで、待機系と決定した待機SVC2Bに対し、対象ユニット3へのアクセス依頼を行い、アクセス結果を待ち受けることとなる。次に、運用SVC2Aは、I2Cシーケンス制御部32Aを介して、I2C-MUX20Aを対象ユニット3と接続するS3。ここで、I2Cデバイス制御部31Aが、I2C-MUX20Aへのアクセスで異常を検出した場合、I2Cデバイス制御部31Aは、I2Cシーケンス異常e3と判定する。そして、I2Cデバイス制御部31Aは、対象ユニット3との接続異常を検出した場合、I2C-MUX20Aをリセットによる切断をしたうえで、待機系と決定した待機SVC2Bに対し、対象ユニット3へのアクセス依頼を行い、アクセス結果を待ち受けることとなる。続いて、運用SVC2Aは、I2Cシーケンス制御部32Aを介して、I2C-MUX20Aのレジスタの値が例えば所定値に更新されることを確認することで、I2C-MUX20Aが対象ユニット3と接続したことを確認するS4。ここで、I2Cシーケンス制御部32Aが、I2C-MUX20Aへのアクセスで異常を検出した場合、I2Cデバイス制御部31Aは、I2Cシーケンス異常e4と判定する。また、I2Cデバイス制御部31Aが、I2C-MUX20Aのレジスタが期待した状態でない異常を検出した場合、I2Cデバイス制御部31Aは、I2Cデバイス異常e5と判定する。なお、I2C-MUX20Aのレジスタが期待した状態でない異常とは、例えば、I2C-MUX20Aが対象ユニット3とのみ接続されていない場合がある。そして、I2Cデバイス制御部31Aは、対象ユニット3との接続異常を検出した場合、I2C-MUX20Aをリセットによる切断をしたうえで、待機系と決定した待機SVC2Bに対し、対象ユニット3へのアクセス依頼を行い、アクセス結果を待ち受けることとなる。続いて、運用SVC2Aは、I2Cシーケンス制御部32Aを介して、対象ユニット3から目的のデータを読み取り、または対象ユニット3に目的のデータを書き込むS5。ここで、I2Cシーケンス制御部32Aが、対象ユニット3へのアクセスで異常を検出した場合、I2Cデバイス制御部31Aは、I2Cシーケンス異常e6と判定する。また、I2Cデバイス制御部31Aが、期待した値でない異常を検出した場合、I2Cデバイス制御部31Aは、I2Cデバイス異常e7と判定する。なお、期待した値でない異常とは、例えば、対象ユニット3のデバイスからの読み取り値がデバイス上あり得ない値であったり、対象ユニット3のデバイスの指定した位置に正しい値が書き込めなかったりした場合がある。そして、I2Cデバイス制御部31Aは、対象ユニット3とのアクセス異常を検出した場合、I2C-MUX20Aをリセットによる切断をしたうえで、待機系と決定した待機SVC2Bに対し、対象ユニット3へのアクセス依頼を行い、アクセス結果を待ち受けることとなる。さらに、運用SVC2Aは、I2Cシーケンス制御部32Aを介して、I2C-MUX20Aを対象ユニット3から切断するS6。ここで、I2Cデバイス制御部31Aが、I2C-MUX20Aへのアクセスで異常を検出した場合、I2Cデバイス制御部31Aは、I2Cシーケンス異常e8と判定する。そして、I2Cデバイス制御部31Aは、対象ユニット3との切断異常を検出した場合、I2C-MUX20Aをリセットによる切断をしたうえで、待機系と決定した待機SVC2Bに対し、対象ユニット3へのアクセス依頼を行い、アクセス結果を待ち受けることとなる。続いて、運用SVC2Aは、I2Cシーケンス制御部32Aを介して、I2C-MUX20Aのレジスタで、I2C-MUX20Aを対象ユニット3から切断したことを確認するS7。ここで、I2Cシーケンス制御部32Aが、I2C-MUX20Aへのアクセスで異常を検出した場合、I2Cデバイス制御部31Aは、I2Cシーケンス異常e9と判定する。また、I2Cデバイス制御部31Aが、I2C-MUX20Aのレジスタが期待した状態でない異常を検出した場合、I2Cデバイス制御部31Aは、I2Cデバイス異常e10と判定する。なお、I2C-MUX20Aのレジスタが期待した状態でない異常とは、例えば、I2C-MUX20Aが対象ユニット3と未接続状態とならなかったような場合がある。[異常ユニット判定マトリクスの一例]次に、異常ユニット判定マトリクス41の一例について、図4を参照しながら説明する。図4は、異常ユニット判定マトリクス41の一例を示す図である。図4に示すように、異常ユニット判定マトリクス41は、横軸に運用SVCの異常判定情報41A、縦軸に待機SVCの異常判定情報41Bを記憶する。運用SVCの異常判定情報41Aには、異常となる可能性のある箇所と異常内容とからなる異常種別正常を含むを複数記憶する。待機SVCの異常判定情報41Bには、運用SVCの異常判定情報41Aと同様に異常種別を複数記憶する。以下に、異常種別の例を示す。例えば、符号411で示す運用SVCの異常種別がe1の場合には、運用SVCがI2C-MUX20Aのステータスを確認する箇所で、I2Cシーケンス異常となる場合である。符号412で示す運用SVCの異常種別がe2の場合には、運用SVCがI2C-MUX20Aのステータスを確認する箇所で、I2Cデバイス異常となる場合である。符号413で示す運用SVCの異常種別がe3の場合には、運用SVCがI2C-MUX20Aを対象ユニット3と接続する箇所で、I2Cシーケンス異常となる場合である。符号414で示す運用SVCの異常種別がe4の場合には、運用SVCがI2C-MUX20Aのレジスタで、I2C-MUX20Aが対象ユニットと接続したことを確認する箇所で、I2Cシーケンス異常となる場合である。符号415で示す運用SVCの異常種別がe5の場合には、運用SVCがI2C-MUX20Aのレジスタで、I2C-MUX20Aが対象ユニットと接続したことを確認する箇所で、I2Cデバイス異常となる場合である。符号416で示す運用SVCの異常種別がe6の場合には、運用SVCが対象ユニット3とアクセスする箇所で、I2Cシーケンス異常となる場合である。符号417で示す運用SVCの異常種別がe7の場合には、運用SVCが対象ユニット3とアクセスする箇所で、I2Cデバイス異常となる場合である。符号418で示す運用SVCの異常種別がe8の場合には、運用SVCがI2CMUXから対象ユニットを切断する箇所で、I2Cシーケンス異常となる場合である。運用SVCの異常種別がe9の場合には、運用SVCがI2C-MUX20Aのレジスタで、I2C-MUX20Aを対象ユニットから切断したことを確認する箇所で、I2Cシーケンス異常となる場合である。運用SVCの異常種別がe10の場合には、運用SVCがI2C-MUX20Aのレジスタで、I2C-MUX20Aを対象ユニットから切断したことを確認する箇所で、I2Cデバイス異常となる場合である。なお、待機系SVCの異常判定情報41Aの異常種別は、運用SVCの異常判定情報41Bの異常種別と同様であるので、説明を省略する。異常ユニット情報41Cは、運用系SVCの異常判定情報41Aの異常種別と待機系SVCの異常判定情報41Bの異常種別との組み合わせにより異常を判別できるユニットの候補を記憶する。図4の例では、符号eu1では、運用SVCの異常種別e1と待機SVCの異常種別正常との組み合わせにより判別できる、異常となるユニットの候補を運用SVCとして記憶する。[異常ユニット判定の具体例]次に、運用SVC2Aから対象ユニット3へのアクセスで異常となる異常箇所があった場合に、異常箇所に基づいて異常ユニットを判定する具体例を、図5~図8を参照しながら説明する。図5は、実施例に係る異常ユニット判定の具体例を説明する図である。なお、図5では、運用SVC2AがI2C-MUX20Aのステータスを確認する箇所で、I2Cシーケンス異常e1となった場合を説明する。そこで、I2Cデバイス制御部31Aが、最初にI2Cシーケンス異常e1と判定した後の動作について説明する。最初にI2Cシーケンス異常e1と判定したI2Cデバイス制御部31Aは、FPGA経由で、I2C-MUX20AをリセットするS1a。その後、I2Cデバイス制御部31Aは、I2C-MUX20Aのステータスの確認を再試行するS1b。そして、I2Cデバイス制御部31Aは、再試行してもI2Cシーケンス異常が回復しない場合、再試行回数がX回に達したとき、運用SVC2Aからの接続を断念する。ここでは、I2Cデバイス制御部31Aは、自己のアクセス結果をe1として記憶部40に保持する。そして、I2Cデバイス制御部31Aは、待機系での動作に影響を与えないように、FPGA経由で、I2C-MUX20Aを再度リセットするS1c。そして、I2Cデバイス制御部31Aは、待機SVC2Bに対し、FPGA間通信を用いて、対象ユニット3への接続確認を依頼するS1d。すなわち、I2Cデバイス制御部31Aは、対象ユニット3へのアクセス依頼を行う。続いて、対象ユニット3への接続確認を依頼された待機SVC2BのI2Cデバイス制御部31Bは、I2C-MUX20Bのステータスを確認した後、I2C-MUX20Bを対象ユニット3と接続するS1e。そして、I2Cデバイス制御部31Bは、I2CMUX20Bのレジスタで、I2C-MUX20Bが対象ユニット3と接続したことを確認するS1f。さらに、I2Cデバイス制御部31Bは、対象ユニット3から目的のデータを読み取り、または対象ユニット3に目的のデータを書き込むS1g。続いて、I2Cデバイス制御部31Bは、I2C-MUX20Bを対象ユニット3から切断するS1h。そして、I2Cデバイス制御部31Bは、I2C-MUX20Bのレジスタで、I2C-MUX20Bを対象ユニット3から切断したことを確認するS1i。そして、I2Cデバイス制御部31Bは、運用SVC2Aに対し、FPGA間通信を用いて、対象ユニット3とのアクセス結果を通知するS1j。ここでは、I2Cデバイス制御部31Bは、自己のアクセス結果を正常として通知する。運用SVC2AのI2Cデバイス制御部31Aは、待機SVC2Bから対象ユニット3とのアクセス結果を受け取る。そして、I2Cデバイス制御部31Aは、異常ユニット判定マトリクス41に基づいて、運用SVC2Aのアクセス結果および待機SVC2Bのアクセス結果から異常ユニットを判定する。ここでは、I2Cデバイス制御部31Aは、運用SVC1Aのアクセス結果がe1であり、待機SVC2Aのアクセス結果が正常であるので、異常ユニット判定マトリクス41図4参照に基づいて、異常ユニットを運用SVCとして判定する。図6は、実施例に係る異常ユニット判定の別の具体例を説明する図である。なお、図6では、運用SVC2Aおよび待機SVC2Bが各I2C-MUX20のステータスを確認する箇所で、I2Cシーケンス異常e1となる場合を説明する。そこで、運用SVC2AのI2Cデバイス制御部31Aが、最初にI2Cシーケンス異常e1と判定した後の動作について説明する。最初にI2Cシーケンス異常e1と判定したI2Cデバイス制御部31Aは、FPGA経由で、I2C-MUX20AをリセットするS2a。その後、I2Cデバイス制御部31Aは、I2C-MUX20Aのステータスの確認を再試行するS2b。そして、I2Cデバイス制御部31Aは、再試行しても回復しない場合、再試行回数がX回に達したとき、運用SVC1Aからの接続を断念する。ここでは、I2Cデバイス制御部31Aは、自己のアクセス結果をe1として記憶部40に保持する。そして、I2Cデバイス制御部31Aは、待機系での動作に影響を与えないように、FPGA経由で、I2C-MUX20Aを再度リセットするS2c。そして、I2Cデバイス制御部31Aは、待機SVC2Bに対し、FPGA間通信を用いて、対象ユニット3への接続確認を依頼するS2d。すなわち、I2Cデバイス制御部31Aは、対象ユニット3へのアクセス依頼を行う。続いて、対象ユニット3への接続確認を依頼された待機SVC2BのI2Cデバイス制御部31Bは、I2C-MUX20Bのステータスを確認するS2e。ところが、I2Cデバイス制御部31Bは、I2C-MUX20Bへのアクセスで異常を検出したので、I2Cシーケンス異常e1と判定する。そこで、I2Cデバイス制御部31Bは、FPGA経由で、I2C-MUX20BをリセットするS2f。その後、I2Cデバイス制御部31Bは、I2C-MUX20Bのステータスの確認を再試行するS2g。そして、I2Cデバイス制御部31Bは、再試行しても回復しない場合、再試行回数がX回に達したとき、待機SVC2Bからの接続を断念する。ここでは、I2Cデバイス制御部31Bは、自己のアクセス結果をe1として待機系SVCの記憶部40に保持する。そして、I2Cデバイス制御部31Bは、運用系での動作に影響を与えないように、FPGA経由で、I2C-MUX20Bを再度リセットするS2h。そして、I2Cデバイス制御部31Bは、運用SVC2Aに対し、FPGA間通信を用いて、対象ユニット3とのアクセス結果を通知するS2i。ここでは、I2Cデバイス制御部31Bは、自己のアクセス結果をe1として通知する。運用SVC2AのI2Cデバイス制御部31Aは、待機SVC2Bから対象ユニット3とのアクセス結果を受け取る。そして、I2Cデバイス制御部31Aは、異常ユニット判定マトリクス41に基づいて、運用SVC2Aのアクセス結果および待機SVC2Bのアクセス結果から異常ユニットを判定する。ここでは、I2Cデバイス制御部31Aは、運用SVC2Aのアクセス結果がe1であり、待機SVC2Bのアクセス結果がe1であるので、異常ユニット判定マトリクス41に基づいて、異常ユニットを運用SVC、待機SVCとして判定する。つまり、アクセス結果がe1である場合は、I2C-MUX20へのアクセスそのもので異常を検出した場合であり、対象ユニット3までアクセスされていないので、異常ユニットを運用SVC、待機SVCとする。図7は、実施例に係る異常ユニット判定の別の具体例を説明する図である。なお、図7では、運用SVC2Aおよび待機SVC2Bが対象ユニット3から目的のデータを読み取る箇所で、I2Cデバイス異常e7となる場合を説明する。そこで、I2Cデバイス制御部31Aが、最初にI2Cデバイス異常e7と判定した後の動作について説明する。最初にI2Cデバイス異常e7と判定したI2Cデバイス制御部31Aは、対象ユニット3から目的のデータを読み取る動作を再試行するS3a。そして、I2Cデバイス制御部31Aは、再試行しても回復しない場合、再試行回数がX回に達したとき、運用SVC2Aからの接続を断念し、FPGA経由で、I2C-MUX20AをリセットするS3b。これにより、I2Cデバイス制御部31Aは、対象ユニット3との接続を強制的に切断する。そして、I2Cデバイス制御部31Aは、自己のアクセス結果をe7として記憶部40に保持する。そして、I2Cデバイス制御部31Aは、待機SVC2Bに対し、FPGA間通信を用いて、対象ユニット3への接続確認を依頼するS3c。すなわち、I2Cデバイス制御部31Aは、対象ユニット3へのアクセス依頼を行う。続いて、対象ユニット3への接続確認を依頼された待機SVC2BのI2Cデバイス制御部31Bは、I2C-MUX20Bを対象ユニット3と接続するS3d。続いて、I2Cデバイス制御部31Bは、I2CMUX20Bのレジスタで、I2C-MUX20Bが対象ユニット3と接続したことを確認するS3e。続いて、I2Cデバイス制御部31Bは、対象ユニット3から目的のデータを読み取るS3f。ところが、I2Cデバイス制御部31Bは、期待した値を読み取れなかったので、I2Cデバイス異常e7と判定する。その後、I2Cデバイス制御部31Bは、対象ユニット3から目的のデータの読み取りを再試行し、再試行しても回復しない場合、再試行回数がX回に達したとき、待機SVC2Bからの接続を断念する。そして、I2Cデバイス制御部31Bは、I2C-MUX20BをFPGA経由でリセットしたうえで、I2C-MUX20Bを対象ユニット3から切断するS3g。さらに、I2Cデバイス制御部31Bは、I2CMUX20BのレジスタでI2C-MUX20Bを対象ユニット3から切断したことを確認するS3h。そして、I2Cデバイス制御部31Bは、運用SVC2Aに対し、FPGA間通信を用いて、対象ユニット3とのアクセス結果を通知するS3i。ここでは、I2Cデバイス制御部31Bは、自己のアクセス結果をe7として通知する。運用SVC2AのI2Cデバイス制御部31Aは、待機SVC2Bから対象ユニット3とのアクセス結果を受け取る。そして、I2Cデバイス制御部31Aは、異常ユニット判定マトリクス41に基づいて、運用SVC2Aのアクセス結果および待機SVC2Bのアクセス結果から異常ユニットを判定する。ここでは、I2Cデバイス制御部31Aは、運用SVC2Aのアクセス結果がe7であり、待機SVC2Bのアクセス結果がe7であるので、異常ユニット判定マトリクス41に基づいて、異常ユニットを対象ユニットとして判定する。この場合には、I2Cデバイス制御部31Aは、FPGAで対象ユニット3をリセットするS3j。そして、I2Cデバイス制御部31Aは、I2C-MUX20Aが切断されているので、I2C-MUX20Aの状態を確認し、I2C-MUX20Aと接続したうえでS3aから再実施する。そして、I2Cデバイス制御部31Aは、再実施後も異常ユニットを対象ユニットとして判定する場合には、異常ユニットを対象ユニットとして確定する。なお、S3fにおいて、I2Cデバイス制御部31Bが、対象ユニット3から目的のデータを読み取る再試行で期待した値を読み取れた場合には、運用SVC2Aに対し、待機SVC2Bのアクセス結果を正常として通知する。この場合には、I2Cデバイス制御部31Aは、異常ユニットを運用SVCとして判定することとなる。図8は、実施例に係る異常ユニット判定の別の具体例を説明する図である。なお、図8では、運用SVC2AがI2C-MUX20Aのステータスを確認する箇所で、I2Cシーケンス異常e1となり、待機SVC2Bが対象ユニット3とアクセスする箇所で、I2Cデバイス異常e7となる場合を説明する。そこで、運用SVC2AのI2Cデバイス制御部31Aが、最初にI2Cシーケンス異常e1と判定した後の動作について説明する。最初にI2Cシーケンス異常e1と判定したI2Cデバイス制御部31Aは、FPGA経由で、I2C-MUX20AをリセットするS4a。その後、I2Cデバイス制御部31Aは、I2C-MUX20Aのステータスの確認を再試行するS4b。そして、I2Cデバイス制御部31Aは、再試行しても回復しない場合、再試行回数がX回に達したとき、運用SVC2Aからの接続を断念する。ここでは、I2Cデバイス制御部31Aは、自己のアクセス結果をe1として記憶部40に保持する。そして、I2Cデバイス制御部31Aは、待機系での動作に影響を与えないように、FPGA経由で、I2C-MUX20Aを再度リセットするS4c。そして、I2Cデバイス制御部31Aは、待機SVC2Bに対し、FPGA間通信を用いて、対象ユニット3への接続確認を依頼するS4d。すなわち、I2Cデバイス制御部31Aは、対象ユニット3へのアクセス依頼を行う。続いて、対象ユニット3への接続確認を依頼された待機SVC2BのI2Cデバイス制御部31Bは、I2C-MUX20Bを対象ユニット3と接続するS4e。続いて、I2Cデバイス制御部31Bは、I2CMUX20Bのレジスタで、I2C-MUX20Bが対象ユニット3と接続したことを確認するS4f。続いて、I2Cデバイス制御部31Bは、対象ユニット3から目的のデータを読み取るS4g。ところが、I2Cデバイス制御部31Bは、期待した値を読み取れなかったので、I2Cデバイス異常e7と判定する。その後、I2Cデバイス制御部31Bは、対象ユニット3から目的のデータの読み取りを再試行し、再試行しても回復しない場合、再試行回数がX回に達したとき、待機SVC2Bからの接続を断念する。そして、I2Cデバイス制御部31Bは、FPGA経由でI2C-MUX20Bをリセットしたうえで、I2C-MUX20Bを対象ユニット3から切断するS4h。さらに、I2Cデバイス制御部31Bは、I2CMUX20BのレジスタでI2C-MUX20Bを対象ユニット3から切断したことを確認するS4i。なお、I2Cデバイス制御部31Bは、運用SVC2Aから接続確認の依頼を受けたとき、運用SVC2Aの異常が判明している場合、FPGA10B経由で対象ユニット3をリセットしS4j、対象ユニット3と接続する処理S4eから再試行しても良い。そして、I2Cデバイス制御部31Bは、運用SVC2Aに対し、FPGA間通信を用いて、対象ユニット3とのアクセス結果を通知するS4k。ここでは、I2Cデバイス制御部31Bは、自己のアクセス結果をe7として通知する。運用SVC2AのI2Cデバイス制御部31Aは、待機SVC2Bから対象ユニット3とのアクセス結果を受け取る。そして、I2Cデバイス制御部31Aは、異常ユニット判定マトリクス41に基づいて、運用SVC2Aのアクセス結果および待機SVC2Bのアクセス結果から異常ユニットを判定する。ここでは、I2Cデバイス制御部31Aは、運用SVC2Aのアクセス結果がe1であり、待機SVC2Bのアクセス結果がe7であるので、異常ユニット判定マトリクス41に基づいて、異常ユニットを運用SVC、対象ユニットとして判定する。なお、S4jの処理後、I2Cデバイス制御部31Bが、対象ユニット3から目的のデータを読み取る再試行で期待した値を読み取れた場合には、運用SVC2Aに対し、待機SVC2Bのアクセス結果を正常として通知する。この場合には、I2Cデバイス制御部31Aは、異常ユニットを運用SVCとして判定することとなる。[異常ユニット判定を実行するためのI2Cバス装置]次に、実施例に係る異常ユニット判定を実行するためのI2Cバス装置について、図9を参照しながら説明する。図9は、実施例に係る異常ユニット判定を実行するためのI2Cバス装置の一例を説明する図である。図9に示すように、I2Cバス装置9Aは、ハードディスクが搭載される筐体DE:DeviceEnclosureとハードディスク以外のユニットが搭載される筐体CE:ControllerEnclosureを有する。DEには、複数のハードディスクHardDiskが搭載されている。また、CEには、ユニットの動作を管理するユニットCM:ControlModule、CM間の通信手段を提供するユニットFRT:FrontendRouter、CMにハードディスクへのアクセス手段を提供するユニットBRT:BackendRouterが搭載されている。また、CEには、CEに搭載される全ユニットに電力を供給するユニットPSU:PowerSupplyUnit、停電発生時に特定のユニットに電力を供給するユニットBBU:BatteryBackupUnitが搭載されている。さらに、CEには、ユーザの操作により自装置に電源を投入したり切断したりするユニットPanelおよび自装置を制御したり監視したりするユニットSVC:ServiceControllerが搭載されている。なお、SVC4Aが図1のI2Cマスタユニット1Aに相当し、SVC4Bが図1のI2Cマスタユニット1Bに相当する。また、符号5で表したFRT、BRT、PSUおよびBBUが図1のI2Cスレーブユニット3対象ユニットに相当する。[異常ユニット判定を実行するためのハードウェアの全体構成]次に、実施例に係る異常ユニット判定を実行するためのハードウェアの全体構成について、図10を参照しながら説明する。図10は、実施例に係る異常ユニット判定を実行するためのハードウェアの全体構成の一例を説明する図である。図10に示すように、SVC4Aは、FPGA40A、I2C-MUX50AおよびMPU60Aを有する。SVC4Aは、SVC4Bと冗長構成となっている。また、SVC4Aは、SVC4Bと、それぞれに搭載されたFPGA40A、40Bを介して接続する。また、SVC4Aは、I2C-MUX50Aを介して、対象ユニット5とI2Cバスで接続する。I2C-MUX50AのそれぞれのI2C-MUXm1~m4は、I2Cバスを介して、それぞれの対象ユニットs1~s4と1対1で接続する。さらに、I2C-MUX50BのそれぞれのI2C-MUXm1~m4は、I2C-MUX50Aが介するI2Cバスと異なるI2Cバスを介してそれぞれの対象ユニットs1~s4と1対1で接続する。一例として、I2C-MUX50AのI2C-MUXm1は、FRT0~3を有する対象ユニットs1と1対1で接続している。さらに、I2C-MUX50BのI2C-MUXm1は、同じ対象ユニットs1と、異なるI2Cバスを介して1対1で接続する。なお、FPGA40Aが図1のFPGA10に相当し、I2C-MUX50Aが図1のI2C-MUX20に相当する。また、MPU60Aが図1の制御部30に相当する。ここで、SVC4Aと対象ユニットs1~s4とのI2Cバスの接続について、図11を参照して説明する。図11は、SVCと対象ユニットとのI2Cバスの接続を説明する図である。図11に示すように、SVC4Aは、MPU60Aの通信回路であるUARTUniversalAsynchronousReceiverTransmitterを特殊モード1I2CモードでI2C-MUX50Aと接続する。そして、I2C-MUX50AのそれぞれのI2C-MUXm1~m4は、それぞれの対象ユニットs1~s4とI2CインタフェースをI2Cモードで接続する。次に、異常ユニット判定を実行する際に用いられるFPGA間通信について、図12を参照しながら説明する。図12は、SVCに搭載されたFPGAを用いたFPGA間通信を説明する図である。図12に示すように、SVC4Aは、対象ユニット5へのアクセスの際、FPGA間通信を用いて、二重化されたSVC4Bとの間で調停し、運用系となるか待機系となるかを決定する。すなわち、両方のSVC4A、4Bが、同一の対象ユニット5に同時にアクセスしないようにするのである。また、SVC4Aは、アクセスする対象ユニット5単位、すなわち対象ユニット5と接続することとなるUART単位に、SVC4Bとの間でどちらが運用系となるか待機系となるかを決定する。なお、FPGA間通信を用いて運用系となるか待機系となるかを調停する処理は、前述した異常箇所判定部31aによって行われる。次に、異常ユニット判定を実行する際に、異常箇所があった場合のリセット制御について、図13を参照しながら説明する。図13は、SVCに搭載されたFPGAを用いたリセット制御を説明する図である。図13に示すように、FPGA40Aは、それぞれの対象ユニットs1~s4のI2Cデバイスを個別にリセットする。また、FPGA40Aは、I2C-MUX50のそれぞれのI2C-MUXm1~m4を個別にリセットする。リセットされたI2C-MUXm1~m4では、その後、すべての接続が切断される。なお、異常箇所があった場合のリセット制御の処理は、前述した異常箇所判定部31aによって行われる。例えば、異常箇所判定部31aは、対象ユニットs1のI2CデバイスであるFRT0から目的のデータを読み取れないデバイス異常e7となった場合、FRT0をFPGA40A経由でリセットするg1。また、異常箇所判定部31aは、I2C-MUXm1へのアクセスでI2Cシーケンス異常e1となった場合、I2C-MUXm1をFPGA40A経由でリセットするg2。ここで、SVC4A、4Bに搭載されたI2C-MUXの接続方法について、図14を参照して説明する。図14は、SVCに搭載されたI2C-MUXの接続方法について説明する図である。なお、図14では、SVC4Aに搭載された1個のI2C-MUXm1に着目して説明するものとする。図14に示すように、I2C-MUXm1は、MPU60AのUARTと入力端子m10で接続する。また、I2C-MUXm1は、複数の出力端子m11~m14で対象ユニットs1のFRT0s11~3s14と接続することで、1個の対象ユニットs1のみと接続する。これにより、SVC4Aに搭載されたMPU60Aは、I2C-MUXm1によって対象ユニットs1と1対1で接続することとなる。また、I2C-MUXm1は、FPGA40Aからのリセット信号でリセットされる。これにより、I2C-MUXm1では、すべての接続が切断される。例えば、図14では、I2C-MUXm1は、出力端子m14で対象ユニットs1のFRT3s14と接続している。この場合に、I2C-MUXm1は、FPGA40Aによってリセットされると、既に接続されていたFRT3s14を含め、すべての接続を切断することとなる。[実施例に係る異常ユニット判定処理の手順]次に、実施例に係る異常ユニット判定処理の手順を、図15A~図20を参照して説明する。図15A~図17では、運用SVCの異常ユニット判定処理の手順を示し、図18~図20では、待機SVCの異常ユニット判定処理の手順を示す。図15A~図15Eは、運用SVCの異常ユニット判定処理の中の運用SVCの異常箇所判定の手順を示すフローチャートである。図15Aでは、運用SVCのI2C-MUXのステータス異常判定の手順を示す。図15Bでは、運用SVCの対象ユニットとの接続異常判定の手順を示す。図15Cでは、運用SVCの対象ユニットからの読取異常判定の手順を示す。図15Dでは、運用SVCの対象ユニットへの書込異常判定の手順を示す。図15Eでは、運用SVCの対象ユニットからの切断異常判定の手順を示す。なお、I2Cバス装置9は、運用中であるものとする。運用中であるI2Cバス装置9のI2Cマスタユニット1Aでは、異常箇所判定部31aが、他系のI2Cマスタユニット1Bとの間のFPGA間通信を用いて、運用SVCとなるか待機SVCとなるかを調停して決定するステップS11。ここでは、I2Cマスタユニット1Aは、調停の結果、自ユニットが運用SVCとなると決定したものとする。そして、異常箇所判定部31aは、対象ユニットのリカバリ済みフラグをクリアするステップS12。[運用SVC:I2C-MUXの接続状態異常判定]続いて、異常箇所判定部31aは、運用SVC上のI2C-MUXのリセット回数を0にクリアするステップS13。そして、異常箇所判定部31aは、I2Cシーケンス制御部32を介して、I2C-MUX20の接続状態ステータスを読み取るステップS14。そして、異常箇所判定部31aは、I2C-MUX20へのアクセスで異常があるか否かを判定するステップS15。I2C-MUX20へのアクセスで異常があると判定した場合ステップS15;Yes、異常箇所判定部31aは、異常の発生箇所と異常内容を含む異常種別をアクセス結果として記憶部40に保持するステップS16。ここでは、異常の発生箇所をI2C-MUX20のステータスを確認する箇所とし、異常内容をI2Cシーケンス異常とする異常種別e1を記憶部40に保持する。その後、異常箇所判定部31aは、ステップS71からの待機SVCへのアクセス依頼に移行する。一方、I2C-MUX20へのアクセスで異常がないと判定した場合ステップS15:No、異常箇所判定部31aは、I2C-MUX20が対象ユニット3と未接続状態であるか否かを判定するステップS17。I2C-MUX20が対象ユニット3と未接続状態であると判定した場合ステップS17;Yes、異常箇所判定部31aは、ステップS31からの対象ユニットとの接続異常判定に移行する。一方、I2C-MUX20が対象ユニット3と未接続状態でないと判定した場合ステップS17;No、異常箇所判定部31aは、期待した未接続状態となっていない。このため、異常箇所判定部31aは、I2C-MUX20のリセット回数が0であるか否かを判定するステップS18。I2C-MUX20のリセット回数が0である場合ステップS18;Yes、異常箇所判定部31aは、運用SVC上のI2C-MUX20をFPGA経由でリセットするステップS19。そして、異常箇所判定部31aは、運用SVC上のI2C-MUX20のリセット回数をカウントアップするステップS20。その後、異常箇所判定部31aは、I2C-MUX20へのアクセスを再試行すべく、ステップS14に移行する。一方、I2C-MUX20のリセット回数が0でない場合ステップS18;No、異常箇所判定部31aは、異常の発生箇所と異常内容を含む異常種別をアクセス結果として記憶部40に保持するステップS21。ここでは、異常の発生箇所をI2C-MUX20のステータスを確認する箇所とし、異常内容をI2Cデバイス異常とする異常種別e2を記憶部40に保持する。その後、異常箇所判定部31aは、ステップS71からの待機SVCへのアクセス依頼に移行する。[運用SVC:対象ユニットとの接続異常判定]次に、異常箇所判定部31aは、I2Cシーケンス制御部32を介して、運用SVC上のI2C-MUX20を対象ユニット3と接続するステップS31。そして、異常箇所判定部31aは、I2C-MUX20へのアクセスで異常があるか否かを判定するステップS32。I2C-MUX20へのアクセスで異常があると判定した場合ステップS32;Yes、異常箇所判定部31aは、異常の発生箇所と異常内容を含む異常種別をアクセス結果として記憶部40に保持するステップS33。ここでは、異常の発生箇所をI2C-MUX20を対象ユニット3と接続する箇所とし、異常内容をI2Cシーケンス異常とする異常種別e3を記憶部40に保持する。その後、異常箇所判定部31aは、ステップS71からの待機SVCへのアクセス依頼に移行する。I2C-MUX20へのアクセスで異常がないと判定した場合ステップS32;No、異常箇所判定部31aは、運用SVC上のI2C-MUX20の対象ユニット3との接続状態を読み取るステップS34。そして、異常箇所判定部31aは、I2C-MUX20へのアクセスで異常があるか否かを、I2C-MUX20のレジスタを用いて判定するステップS35。I2C-MUX20へのアクセスで異常があると判定した場合ステップS35;Yes、異常箇所判定部31aは、異常の発生箇所と異常内容を含む異常種別をアクセス結果として記憶部40に保持するステップS36。ここでは、異常の発生箇所をI2C-MUX20が対象ユニット3と接続したことを確認する箇所とし、異常内容をI2Cシーケンス異常とする異常種別e4を記憶部40に保持する。その後、異常箇所判定部31aは、ステップS71からの待機SVCへのアクセス依頼に移行する。一方、I2C-MUX20へのアクセスで異常がないと判定した場合ステップS35;No、異常箇所判定部31aは、I2C-MUX20が対象ユニット3とのみ接続されているか否かを判定するステップS37。I2C-MUX20が対象ユニット3とのみ接続されていないと判定した場合ステップ37;No、異常箇所判定部31aは、異常の発生箇所と異常内容を含む異常種別をアクセス結果として記憶部40に保持するステップS38。ここでは、異常の発生箇所をI2C-MUX20が対象ユニット3と接続したことを確認する箇所とし、異常内容をI2Cデバイス異常とする異常種別e5を記憶部40に保持する。その後、異常箇所判定部31aは、ステップS71からの待機SVCへのアクセス依頼に移行する。一方、I2C-MUX20が対象ユニット3とのみ接続されていると判定した場合ステップS37;Yes、異常箇所判定部31aは、ステップS41からの対象ユニットからの読取異常判定に移行する。[運用SVC:対象ユニットからの読取異常判定]次に、異常箇所判定部31aは、対象ユニット3のI2Cデバイスへの操作内容が書き込みのみか否かを判定するステップS41。対象ユニット3のI2Cデバイスへの操作内容が書き込みのみであると判定した場合ステップS41;Yes、異常箇所判定部31aは、ステップS51からの対象ユニットへの書込異常判定に移行する。一方、対象ユニット3のI2Cデバイスへの操作内容が書き込みのみでないと判定した場合ステップS41;No、異常箇所判定部31aは、運用SVC側から接続した対象ユニット3のI2Cデバイスのレジスタを読み取るステップS42。そして、異常箇所判定部31aは、I2Cデバイスへのアクセスで異常があるか否かを判定するステップS43。I2Cデバイスへのアクセスで異常があると判定した場合ステップS43;Yes、異常箇所判定部31aは、異常の発生箇所と異常内容を含む異常種別をアクセス結果として記憶部40に保持するステップS44。ここでは、異常の発生箇所を対象ユニットとアクセスする箇所とし、異常内容をI2Cシーケンス異常とする異常種別e6を記憶部40に保持する。その後、異常箇所判定部31aは、ステップS71からの待機SVCへのアクセス依頼に移行する。一方、I2Cデバイスへのアクセスで異常がないと判定した場合ステップS43;No、異常箇所判定部31aは、I2Cデバイスからの読み取り値がI2Cデバイス上あり得ない値であるか否かを判定するステップS45。I2Cデバイスからの読み取り値がI2Cデバイス上あり得ない値であると判定した場合ステップS45;Yes、異常箇所判定部31aは、異常の発生箇所と異常内容を含む異常種別をアクセス結果として記憶部40に保持するステップS46。ここでは、異常の発生箇所を対象ユニットとアクセスする箇所とし、異常内容をI2Cデバイス異常とする異常種別e7を記憶部40に保持する。その後、異常箇所判定部31aは、ステップS71からの待機SVCへのアクセス依頼に移行する。一方、I2Cデバイスからの読み取り値がI2Cデバイス上あり得る値であると判定した場合ステップS45;No、異常箇所判定部31aは、対象ユニット3のI2Cデバイスへの操作内容に書き込みがあるか否かを判定するステップS47。対象ユニット3のI2Cデバイスへの操作内容に書き込みがない読み取りのみと判定した場合ステップS47;No、異常箇所判定部31aは、ステップS61からの対象ユニットからの切断異常判定に移行する。一方、対象ユニット3のI2Cデバイスへの操作内容に書き込みがあると判定した場合ステップS47;Yes、異常箇所判定部31aは、ステップS51からの対象ユニットへの書込異常判定に移行する。[運用SVC:対象ユニットへの書込異常判定]次に、異常箇所判定部31aは、運用SVC側から接続した対象ユニット3のI2Cデバイスのレジスタへデータを書き込むステップS51。そして、異常箇所判定部31aは、I2Cデバイスへのアクセスで異常があるか否かを判定するステップS52。I2Cデバイスへのアクセスで異常があると判定した場合ステップS52;Yes、異常箇所判定部31aは、異常の発生箇所と異常内容を含む異常種別をアクセス結果として記憶部40に保持するステップS53。ここでは、異常の発生箇所を対象ユニットとアクセスする箇所とし、異常内容をI2Cシーケンス異常とする異常種別e6を記憶部40に保持する。その後、異常箇所判定部31aは、ステップS71からの待機SVCへのアクセス依頼に移行する。一方、I2Cデバイスへのアクセスで異常がないと判定した場合ステップS52;No、異常箇所判定部31aは、書き込んだデータを確認すべく、対象ユニット3のI2Cデバイスの書き込みを行ったレジスタを読み取るステップS54。そして、異常箇所判定部31aは、I2Cデバイスへのアクセスで異常があるか否かを判定するステップS55。I2Cデバイスへのアクセスで異常があると判定した場合ステップS55;Yes、異常箇所判定部31aは、異常の発生箇所と異常内容を含む異常種別をアクセス結果として記憶部40に保持するステップS56。ここでは、異常の発生箇所を対象ユニットとアクセスする箇所とし、異常内容をI2Cシーケンス異常とする異常種別e6を記憶部40に保持する。その後、異常箇所判定部31aは、ステップS71からの待機SVCへのアクセス依頼に移行する。一方、I2Cデバイスへのアクセスで異常がないと判定した場合ステップS55;No、異常箇所判定部31aは、I2Cデバイスに正しく書き込めていないか否かを判定するステップS57。具体的には、異常箇所判定部31aは、I2Cデバイスのレジスタへ書き込んだデータと、同一のレジスタから読み取ったデータを比較し、同一データでないか否かを判定すれば良い。そして、I2Cデバイスに正しく書き込めていないと判定した場合ステップS57;Yes、異常箇所判定部31aは、異常の発生箇所と異常内容を含む異常種別をアクセス結果として記憶部40に保持するステップS58。ここでは、異常の発生箇所を対象ユニットとアクセスする箇所とし、異常内容をI2Cデバイス異常とする異常種別e7を記憶部40に保持する。その後、異常箇所判定部31aは、ステップS71からの待機SVCへのアクセス依頼に移行する。一方、I2Cデバイスに正しく書き込めていると判定した場合ステップS57;No、異常箇所判定部31aは、ステップS61からの対象ユニットからの切断異常判定に移行する。[運用SVC:対象ユニットからの切断異常判定]次に、異常箇所判定部31aは、I2Cシーケンス制御部32を介して、運用SVC上のI2C-MUX20を対象ユニット3から切断するステップS61。そして、異常箇所判定部31aは、I2C-MUX20へのアクセスで異常があるか否かを判定するステップS62。I2C-MUX20へのアクセスで異常があると判定した場合ステップS62;Yes、異常箇所判定部31aは、異常の発生箇所と異常内容を含む異常種別をアクセス結果として記憶部40に保持するステップS63。ここでは、異常の発生箇所をI2C-MUX20を対象ユニット3から切断したことを確認する箇所とし、異常内容をI2Cシーケンス異常とする異常種別e8を記憶部40に保持する。その後、異常箇所判定部31aは、ステップS71からの待機SVCへのアクセス依頼に移行する。I2C-MUX20へのアクセスで異常があると判定した場合ステップS62;No、異常箇所判定部31aは、運用SVC上のI2C-MUX20の対象ユニット3との接続状態を読み取るステップS64。そして、異常箇所判定部31aは、I2C-MUX20へのアクセスで異常があるか否かを、I2C-MUX20のレジスタを用いて判定するステップS65。I2C-MUX20へのアクセスで異常があると判定した場合ステップS65;Yes、異常箇所判定部31aは、異常の発生箇所と異常内容を含む異常種別をアクセス結果として記憶部40に保持するステップS66。ここでは、異常の発生箇所をI2C-MUX20を対象ユニット3から切断したことを確認する箇所とし、異常内容をI2Cシーケンス異常とする異常種別e9を記憶部40に保持する。その後、異常箇所判定部31aは、ステップS71からの待機SVCへのアクセス依頼に移行する。一方、I2C-MUX20へのアクセスで異常がないと判定した場合ステップS65;No、異常箇所判定部31aは、I2C-MUX20が未接続状態であるか否かを判定するステップS67。I2C-MUX20が未接続状態でないと判定した場合ステップS67;No、期待した未接続状態となっていない。このため、異常箇所判定部31aは、異常の発生箇所と異常内容を含む異常種別をアクセス結果として記憶部40に保持するステップS68。ここでは、異常の発生箇所をI2C-MUX20を対象ユニット3から切断したことを確認する箇所とし、異常内容をI2Cデバイス異常とする異常種別e10を記憶部40に保持する。その後、異常箇所判定部31aは、ステップS71からの待機SVCへのアクセス依頼に移行する。一方、I2C-MUX20が未接続状態である場合ステップS67;Yesまたは異常ユニット判定部31cが待機SVCからアクセス結果を受け取った場合ステップS73;Yes、異常箇所判定部31aは、以下の処理を行う。すなわち、異常箇所判定部31aは、運用SVCが対象ユニット3との接続で異常が発生したか否かを判定するステップS69。例えば、異常箇所判定部31aは、記憶部40に運用SVCの正常以外の異常種別が保持されているか否かを判定すれば良い。そして、運用SVCが対象ユニット3との接続で異常が発生したと判定した場合ステップS69;Yes、異常箇所判定部31aは、ステップS81からの異常ユニット判定に移行する。一方、運用SVCが対象ユニット3との接続で異常が発生しなかった場合ステップS69;No、または異常ユニットの判定が完了した場合、異常箇所判定部31aは、異常ユニット判定処理を終了する。[運用SVC:待機SVCへのアクセス依頼]図16は、待機SVCへのアクセス依頼の手順を示すフローチャートである。異常箇所判定部31aによって対象ユニット3への接続、すなわちアクセスで異常箇所があった場合に、アクセス依頼部31bは、運用SVC上のI2C-MUX20をFPGA経由でリセットするステップS71。これは、待機SVCでの動作に影響を与えないためである。そして、アクセス依頼部31bは、運用SVCが行う予定であった処理を、待機SVC側から行うように、FPGA間通信経由で待機SVCに依頼するステップS72。すなわち、アクセス依頼部31bは、運用SVCにおいてアクセスが異常となった対象ユニットへのアクセスを、待機SVCに依頼する。そして、異常ユニット判定部31cは、FPGA間通信経由で送られるてくる待機SVCのアクセス結果を受け取ったか否かを判定するステップS73。待機SVCのアクセス結果を受け取っていないと判定した場合ステップS73;No、異常ユニット判定部31cは、再度判定すべく、ステップS73に移行する。そして、待機SVCのアクセス結果を受け取ったと判定した場合ステップS73;Yes、異常ユニット判定部31cは、異常ユニット判定をすべく、ステップS69に移行する。[運用SVC:異常ユニット判定]図17は、異常ユニット判定の手順を示すフローチャートである。待機SVCからアクセス結果を受け取った場合に、異常ユニット判定部31cは、異常ユニット判定マトリクス41を用いて、異常ユニットを判定するステップS81。すなわち、異常ユニット判定部31cは、運用SVC上での対象ユニット3へのアクセス結果を横軸とし、待機SVC上での対象ユニット3へのアクセス結果を縦軸とした異常ユニット判定マトリクス41で異常ユニットを判定する。一例として、異常ユニット判定部31cは、異常ユニット判定マトリクス41に記憶された、運用SVCと待機SVCとのそれぞれの異常判定情報の組み合わせと、それぞれのアクセス結果の組み合わせとを用いて、異常ユニットを判定する。そして、異常ユニット判定部31cは、判定の結果、異常ユニットが対象ユニット3であるか否かを判定するステップS82。異常ユニットが対象ユニット3でない、すなわち運用SVCまたは待機SVCであると判定した場合ステップS82;No、異常ユニット判定部31cは、対象ユニットのリカバリ済みフラグを0にクリアするステップS83。その後、異常ユニット判定部31cは、さらに異常ユニットを判別すべく、ステップS88に移行する。一方、異常ユニットが対象ユニット3であると判定した場合ステップS82;Yes、異常ユニット判定部31cは、対象ユニットのリカバリ済みフラグを用いて、リカバリ済みであるか否かを判定するステップS84。リカバリ済みであると判定した場合ステップS84;Yes、異常ユニット判定部31cは、対象ユニットを異常ユニットとして確定するステップS85。一方、リカバリ済みでないと判定した場合ステップS84;No、異常ユニット判定部31cは、運用SVC上のFPGAから対象ユニット3のI2CデバイスをリセットするステップS86。そして、異常ユニット判定部31cは、対象ユニットのリカバリ済みフラグを設定するステップS87。その後、異常ユニット判定部31cは、対象ユニット3へのアクセスを再試行すべく、ステップS13に移行する。さらに、異常ユニットが対象ユニット3でない場合に、ステップS83の処理後、異常ユニット判定部31cは、異常ユニットが運用SVCであるか否かを判定するステップS88。異常ユニットが運用SVCであると判定した場合ステップS88;Yes。異常ユニット判定部31cは、運用SVCを異常ユニットとして確定するステップS89。一方、異常ユニットが運用SVCでないと判定した場合ステップS88;No、異常ユニット判定部31cは、異常ユニットが待機SVCであるか否かを判定するステップS90。異常ユニットが待機SVCであると判定した場合ステップS90;Yes。異常ユニット判定部31cは、待機SVCを異常ユニットとして確定するステップS91。その後、異常ユニット判定部31cは、異常ユニット判定処理を終了する。また、異常ユニットが待機SVCでないと判定した場合もステップS90;No、その後、異常ユニット判定部31cは、異常ユニット判定処理を終了する。[待機SVC:アクセス依頼待ち]図18は、待機SVCのアクセス依頼待ちの手順を示すフローチャートである。まず、I2Cマスタユニット1Bでは、異常箇所判定部31aが、他系のI2Cマスタユニット1Aとの間のSPGA間通信を用いて、運用SVCとなるか待機SVCとなるかを調停して決定するステップS101。ここでは、I2Cマスタユニット1Bは、I2Cマスタユニット1Aとの調停の結果、自ユニットが待機SVCとなると決定したものとする。そして、異常箇所判定部31aは、対象ユニット3へのアクセス依頼を受け取ったか否かを判定するステップS102。すなわち、異常箇所判定部31aは、運用SVCが行う予定であった処理のアクセス依頼をPFGA間通信経由で受け取りを待ち合わせる。対象ユニット3へのアクセス依頼を受け取っていないと判定した場合ステップS102;No、異常箇所判定部31aは、再度判定すべく、ステップS102に移行する。そして、対象ユニット3へのアクセス依頼を受け取ったと判定した場合ステップS102;Yes、ステップS111からのI2C-MUXの接続状態異常判定に移行する。図19A~図19Eは、待機SVCの異常ユニット判定処理の中の待機SVCの異常箇所判定の手順を示すフローチャートである。図19Aでは、待機SVCのI2C-MUXのステータス異常判定の手順を示す。図19Bでは、待機SVCの対象ユニットとの接続異常判定の手順を示す。図19Cでは、待機SVCの対象ユニットからの読取異常判定の手順を示す。図19Dでは、待機SVCの対象ユニットへの書込異常判定の手順を示す。図19Eでは、待機SVCの対象ユニットからの切断異常判定の手順を示す。なお、異常箇所判定部31aは、対象ユニット3へのアクセス依頼を運用SVCから受け取ったものとする。[待機SVC:I2C-MUXの接続状態異常判定]対象ユニット3へのアクセス依頼を受け取った異常箇所判定部31aは、待機SVC上のI2C-MUXのリセット回数を0にクリアするステップS111。そして、異常箇所判定部31aは、I2Cシーケンス制御部32を介して、I2C-MUX20の接続状態ステータスを読み取るステップS112。そして、異常箇所判定部31aは、I2C-MUX20へのアクセスで異常があるか否かを判定するステップS113。I2C-MUX20へのアクセスで異常があると判定した場合ステップS113;Yes、異常箇所判定部31aは、異常の発生箇所と異常内容を含む異常種別をアクセス結果として記憶部40に保持するステップS114。ここでは、異常の発生箇所をI2C-MUX20のステータスを確認する箇所とし、異常内容をI2Cシーケンス異常とする異常種別e1を記憶部40に保持する。その後、異常箇所判定部31aは、ステップS161からの運用SVCへのアクセス結果通知に移行する。一方、I2C-MUX20へのアクセスで異常がないと判定した場合ステップS113:No、異常箇所判定部31aは、I2C-MUX20が対象ユニット3と未接続状態であるか否かを判定するステップS115。I2C-MUX20が対象ユニット3と未接続状態であると判定した場合ステップS115;Yes、異常箇所判定部31aは、ステップS121からの対象ユニットとの接続異常判定に移行する。一方、I2C-MUX20が対象ユニット3と未接続状態でないと判定した場合ステップS115;No、異常箇所判定部31aは、期待した未接続状態となっていない。このため、異常箇所判定部31aは、I2C-MUX20Aのリセット回数が0であるか否かを判定するステップS116。I2C-MUX20Aのリセット回数が0である場合ステップS116;Yes、異常箇所判定部31aは、待機SVC上のI2C-MUX20をFPGA経由でリセットするステップS117。そして、異常箇所判定部31aは、待機SVC上のI2C-MUX20のリセット回数をカウントアップするステップS118。その後、異常箇所判定部31aは、I2C-MUX20へのアクセスを再試行すべく、ステップS112に移行する。一方、I2C-MUX20のリセット回数が0でない場合ステップS116;No、異常箇所判定部31aは、異常の発生箇所と異常内容を含む異常種別をアクセス結果として記憶部40に保持するステップS119。ここでは、異常の発生箇所をI2C-MUX20のステータスを確認する箇所とし、異常内容をI2Cデバイス異常とする異常種別e2を記憶部40に保持する。その後、異常箇所判定部31aは、ステップS161からの運用SVCへのアクセス結果通知に移行する。[待機SVC:対象ユニットとの接続異常判定]次に、異常箇所判定部31aは、I2Cシーケンス制御部32を介して、待機SVC上のI2C-MUX20を対象ユニット3と接続するステップS121。そして、異常箇所判定部31aは、I2C-MUX20へのアクセスで異常があるか否かを判定するステップS122。I2C-MUX20へのアクセスで異常があると判定した場合ステップS122;Yes、異常箇所判定部31aは、異常の発生箇所と異常内容を含む異常種別をアクセス結果として記憶部40に保持するステップS123。ここでは、異常の発生箇所をI2C-MUX20を対象ユニット3と接続する箇所とし、異常内容をI2Cシーケンス異常とする異常種別e3を記憶部40に保持する。その後、異常箇所判定部31aは、ステップS161からの運用SVCへのアクセス結果通知に移行する。I2C-MUX20へのアクセスで異常がないと判定した場合ステップS122;No、異常箇所判定部31aは、待機SVC上のI2C-MUX20の対象ユニット3との接続状態を読み取るステップS124。そして、異常箇所判定部31aは、I2C-MUX20へのアクセスで異常があるか否かを、I2C-MUX20のレジスタを用いて判定するステップS125。I2C-MUX20へのアクセスで異常があると判定した場合ステップS125;Yes、異常箇所判定部31aは、異常の発生箇所と異常内容を含む異常種別をアクセス結果として記憶部40に保持するステップS126。ここでは、異常の発生箇所をI2C-MUX20が対象ユニット3と接続したことを確認する箇所とし、異常内容をI2Cシーケンス異常とする異常種別e4を記憶部40に保持する。その後、異常箇所判定部31aは、ステップS161からの運用SVCへのアクセス結果通知に移行する。一方、I2C-MUX20へのアクセスで異常がないと判定した場合ステップS125;No、異常箇所判定部31aは、I2C-MUX20が対象ユニット3とのみ接続されているか否かを判定するステップS127。I2C-MUX20が対象ユニット3とのみ接続されていないと判定した場合ステップ127;No、異常箇所判定部31aは、異常の発生箇所と異常内容を含む異常種別をアクセス結果として記憶部40に保持するステップS128。ここでは、異常の発生箇所をI2C-MUX20が対象ユニット3と接続したことを確認する箇所とし、異常内容をI2Cデバイス異常とする異常種別e5を記憶部40に保持する。その後、異常箇所判定部31aは、ステップS161からの運用SVCへのアクセス結果通知に移行する。一方、I2C-MUX20が対象ユニット3とのみ接続されていると判定した場合ステップS127;Yes、異常箇所判定部31aは、ステップS131からの対象ユニットからの読取異常判定に移行する。[待機SVC:対象ユニットからの読取異常判定]次に、異常箇所判定部31aは、対象ユニット3のI2Cデバイスへの操作内容が書き込みのみか否かを判定するステップS131。対象ユニット3のI2Cデバイスへの操作内容が書き込みのみであると判定した場合ステップS131;Yes、異常箇所判定部31aは、ステップS141からの対象ユニットへの書込異常判定に移行する。一方、対象ユニット3のI2Cデバイスへの操作内容が書き込みのみでないと判定した場合ステップS131;No、異常箇所判定部31aは、待機SVC側から接続した対象ユニット3のI2Cデバイスのレジスタを読み取るステップS132。そして、異常箇所判定部31aは、I2Cデバイスへのアクセスで異常があるか否かを判定するステップS133。I2Cデバイスへのアクセスで異常があると判定した場合ステップS133;Yes、異常箇所判定部31aは、異常の発生箇所と異常内容を含む異常種別をアクセス結果として記憶部40に保持するステップS134。ここでは、異常の発生箇所を対象ユニットとアクセスする箇所とし、異常内容をI2Cシーケンス異常とする異常種別e6を記憶部40に保持する。その後、異常箇所判定部31aは、ステップS161からの運用SVCへのアクセス結果通知に移行する。一方、I2Cデバイスへのアクセスで異常がないと判定した場合ステップS133;No、異常箇所判定部31aは、I2Cデバイスからの読み取り値がI2Cデバイス上あり得ない値であるか否かを判定するステップS135。I2Cデバイスからの読み取り値がI2Cデバイス上あり得ない値であると判定した場合ステップS135;Yes、異常箇所判定部31aは、異常の発生箇所と異常内容を含む異常種別をアクセス結果として記憶部40に保持するステップS136。ここでは、異常の発生箇所を対象ユニットとアクセスする箇所とし、異常内容をI2Cデバイス異常とする異常種別e7を記憶部40に保持する。その後、異常箇所判定部31aは、ステップS161からの運用SVCへのアクセス結果通知に移行する。一方、I2Cデバイスからの読み取り値がI2Cデバイス上あり得ない値でないと判定した場合ステップS135;No、異常箇所判定部31aは、対象ユニット3のI2Cデバイスへの操作内容に書き込みがあるか否かを判定するステップS137。対象ユニット3のI2Cデバイスへの操作内容に書き込みがない読み取りのみと判定した場合ステップS137;No、異常箇所判定部31aは、ステップS141からの対象ユニットからの切断異常判定に移行する。一方、対象ユニット3のI2Cデバイスへの操作内容に書き込みがあると判定した場合ステップS137;Yes、異常箇所判定部31aは、ステップS141からの対象ユニットへの書込異常判定に移行する。[待機SVC:対象ユニットへの書込異常判定]次に、異常箇所判定部31aは、待機SVC側から接続した対象ユニット3のI2Cデバイスのレジスタへデータを書き込むステップS141。そして、異常箇所判定部31aは、I2Cデバイスへのアクセスで異常があるか否かを判定するステップS142。I2Cデバイスへのアクセスで異常があると判定した場合ステップS142;Yes、異常箇所判定部31aは、異常の発生箇所と異常内容を含む異常種別をアクセス結果として記憶部40に保持するステップS143。ここでは、異常の発生箇所を対象ユニットとアクセスする箇所とし、異常内容をI2Cシーケンス異常とする異常種別e6を記憶部40に保持する。その後、異常箇所判定部31aは、ステップS161からの運用SVCへのアクセス結果通知に移行する。一方、I2Cデバイスへのアクセスで異常がないと判定した場合ステップS142;No、異常箇所判定部31aは、書き込んだデータを確認すべく、対象ユニット3のI2Cデバイスの書き込みを行ったレジスタを読み取るステップS144。そして、異常箇所判定部31aは、I2Cデバイスへのアクセスで異常があるか否かを判定するステップS145。I2Cデバイスへのアクセスで異常があると判定した場合ステップS145;Yes、異常箇所判定部31aは、異常の発生箇所と異常内容を含む異常種別をアクセス結果として記憶部40に保持するステップS146。ここでは、異常の発生箇所を対象ユニットとアクセスする箇所とし、異常内容をI2Cシーケンス異常とする異常種別e6を記憶部40に保持する。その後、異常箇所判定部31aは、ステップS161からの運用SVCへのアクセス結果通知に移行する。一方、I2Cデバイスへのアクセスで異常がないと判定した場合ステップS145;No、異常箇所判定部31aは、I2Cデバイスに正しく書き込めていないか否かを判定するステップS147。具体的には、異常箇所判定部31aは、I2Cデバイスのレジスタへ書き込んだデータと、同一のレジスタから読み取ったデータを比較し、同一データでないか否かを判定すれば良い。そして、I2Cデバイスに正しく書き込めていないと判定した場合ステップS147;Yes、異常箇所判定部31aは、異常の発生箇所と異常内容を含む異常種別をアクセス結果として記憶部40に保持するステップS148。ここでは、異常の発生箇所を対象ユニットとアクセスする箇所とし、異常内容をI2Cデバイス異常とする異常種別e7を記憶部40に保持する。その後、異常箇所判定部31aは、ステップS161からの運用SVCへのアクセス結果通知に移行する。一方、I2Cデバイスに正しく書き込めていると判定した場合ステップS147;No、異常箇所判定部31aは、ステップS151からの対象ユニットからの切断異常判定に移行する。[待機SVC:対象ユニットからの切断異常判定]次に、異常箇所判定部31aは、I2Cシーケンス制御部32を介して、待機SVC上のI2C-MUX20を対象ユニット3から切断するステップS151。そして、異常箇所判定部31aは、I2C-MUX20へのアクセスで異常があるか否かを判定するステップS152。I2C-MUX20へのアクセスで異常があると判定した場合ステップS152;Yes、異常箇所判定部31aは、異常の発生箇所と異常内容を含む異常種別をアクセス結果として記憶部40に保持するステップS153。ここでは、異常の発生箇所をI2C-MUX20を対象ユニット3から切断したことを確認する箇所とし、異常内容をI2Cシーケンス異常とする異常種別e8を記憶部40に保持する。その後、異常箇所判定部31aは、ステップS161からの運用SVCへのアクセス結果通知に移行する。I2C-MUX20へのアクセスで異常があると判定した場合ステップS152;No、異常箇所判定部31aは、待機SVC上のI2C-MUX20の対象ユニット3との接続状態を読み取るステップS154。そして、異常箇所判定部31aは、I2C-MUX20へのアクセスで異常があるか否かを、I2C-MUX20のレジスタを用いて判定するステップS155。I2C-MUX20へのアクセスで異常があると判定した場合ステップS155;Yes、異常箇所判定部31aは、異常の発生箇所と異常内容を含む異常種別をアクセス結果として記憶部40に保持するステップS156。ここでは、異常の発生箇所をI2C-MUX20を対象ユニット3から切断したことを確認する箇所とし、異常内容をI2Cシーケンス異常とする異常種別e9を記憶部40に保持する。その後、異常箇所判定部31aは、ステップS161からの運用SVCへのアクセス結果通知に移行する。一方、I2C-MUX20へのアクセスで異常がないと判定した場合ステップS155;No、異常箇所判定部31aは、I2C-MUX20が未接続状態であるか否かを判定するステップS157。I2C-MUX20が未接続状態でないと判定した場合ステップS157;No、期待した未接続状態となっていない。このため、異常箇所判定部31aは、異常の発生箇所と異常内容を含む異常種別をアクセス結果として記憶部40に保持するステップS158。ここでは、異常の発生箇所をI2C-MUX20を対象ユニット3から切断したことを確認する箇所とし、異常内容をI2Cデバイス異常とする異常種別e10を記憶部40に保持する。その後、異常箇所判定部31aは、ステップS161からの運用SVCへのアクセス結果通知に移行する。一方、I2C-MUX20が未接続状態でない場合ステップS157;Yes、異常箇所判定部31aは、対象ユニット3とのアクセスが正常であったことを記憶部40に保持するステップS159。その後、異常箇所判定部31aは、ステップS162からの運用SVCへのアクセス結果通知に移行する。[待機SVC:運用SVCへのアクセス結果通知]図20は、運用SVCへのアクセス結果通知の手順を示すフローチャートである。続いて、対象ユニット3とのアクセスが異常であった場合には、異常箇所判定部31aは、待機SVC上のI2C-MUX20をFPGA経由でリセットするステップS161。なお、対象ユニット3とのアクセスが正常であった場合には、異常箇所判定部31aは、待機SVC上のI2C-MUX20をリセットしない。そして、異常箇所判定部31aは、記憶部40に保持された処理結果アクセス結果をPFGA間通信経由で運用SVCに通知しステップS162、待機SVCでの異常ユニット判定処理を終了する。[実施例の効果]上記実施例によれば、I2Cバス装置9は、I2Cマスタユニット1Aと、I2Cマスタユニット1Aと二重化されたI2Cマスタユニット1Bとを有する。そして、I2Cマスタユニット1AおよびI2Cマスタユニット1Bは、I2Cバスで接続する複数のI2Cスレーブユニット3を制御する。さらに、I2Cマスタユニット1Aは、I2Cスレーブユニット3へのアクセスで異常を検出したとき、異常を検出した箇所に関するアクセス結果と、I2Cマスタユニット1Bからのアクセス結果との組み合わせを用いて、異常であるユニットを判定する。かかる構成によれば、I2Cバス装置9は、異常を検出されたI2Cスレーブユニット3に対する2個のアクセス結果の組み合わせを用いて、異常であるユニットを判定するので、どのユニットに異常があるのかを判定できる。例えば、I2Cバス装置9は、2個のアクセス結果が同じ箇所の異常である場合には、I2Cマスタユニット1A、1Bに異常はなく、I2Cスレーブユニット3に異常があることを判定できる。また、I2Cバス装置9は、I2Cマスタユニット1Aに異常があってもI2Cマスタユニット1Bに異常がない場合は、I2Cマスタユニット1Aに異常があることを判定できる。また、上記実施例によれば、I2Cバス装置9では、異常箇所判定部31aが、自ユニットと接続されたI2Cスレーブユニット3へのアクセスで異常箇所があるか否かを判定する。そして、アクセス依頼部31bが、異常箇所判定部31aによってI2Cスレーブユニット3へのアクセスで異常箇所があると判定された場合に、I2Cスレーブユニット3と同一のI2Cスレーブユニット3へのアクセスを、I2Cマスタユニット1Bに依頼する。さらに、異常ユニット判定部31cは、異常箇所判定部31aによって異常箇所があると判定された異常箇所に関するアクセス結果とアクセス依頼部31bによる依頼の結果を示すアクセス結果との組み合わせを用いて、異常であるユニットを判定する。かかる構成によれば、異常箇所判定部31aは、異常箇所があると判定されたアクセス結果とアクセス依頼部31bによる依頼の結果を示すアクセス結果との組み合わせを用いて、異常であるユニットを判定するので、どのユニットに異常があるのかを判定できる。また、上記実施例によれば、I2Cマスタユニット1Aは、異常ユニット判定マトリクス41を有する。異常ユニット判定マトリクス41は、マスタユニットで異常となる可能性のある異常箇所に関する異常判定情報について、二重化されたマスタユニットの一方の異常判定情報と他方の異常判定情報との組み合わせにより異常と判定されるユニットの候補を記憶する。そして、異常ユニット判定部31cは、さらに、異常ユニット判定マトリクス41に記憶された、二重化されたマスタユニットのそれぞれの異常判定情報の組み合わせを用いて、I2Cスレーブユニット3へのアクセスで異常の原因となったユニットを判定する。かかる構成によれば、異常ユニット判定部31cは、異常ユニット判定マトリクス41に記憶された異常判定情報の組み合わせを細分化して記憶すると、異常であるユニットの判定をより正確に行うことができる。また、上記実施例によれば、異常箇所に関する異常判定情報は、異常となる可能性のある箇所および当該箇所での異常内容を含む。かかる構成によれば、異常判定情報は、1個の異常となる可能性のある箇所に対して複数の異常内容を含ませることが可能となるので、異常判定情報のバリエーションを増やすことができる。この結果、異常ユニット判定部31cは、異常であるユニットの判定をさらに正確に行うことができる。[その他]なお、本実施例では、I2Cバス装置1が運用中に、運用SVCであるI2Cマスタユニット1Aが対象ユニット3へのアクセスで異常があった場合に、異常ユニットを判定するものとして説明した。しかしながら、これに限定されるものではなく、I2Cバス装置1が運用中でない場合であっても、異常ユニット判定処理を行っても良い。例えば、I2Cバス装置1が事前にI2Cバス間のユニットの故障診断を行う場合であっても良い。また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散統合の具体的態様は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散統合して構成することができる。例えば、アクセス依頼部31bと異常ユニット判定部31cとを1つの部として統合しても良い。また、I2Cデバイス制御部31に備えられた各種機能部を1つの部として統合しても良い。一方、異常箇所判定部31aに備えられた各種機能をそれぞれ分散しても良い。一例として、異常箇所判定部31aを、運用系となるか待機系となるかを調停する調停部と、運用系と調停された場合の異常箇所判定部と、待機系と調停された場合の異常箇所判定部とに分散しても良い。この場合、待機系と調停された場合の異常箇所判定部を、運用系からのアクセス依頼を待ち受ける待受部と、異常箇所判定部と、アクセス結果を通知する通知部とに分散しても良い。また、記憶部40をI2Cバス装置9の外部装置としてネットワーク経由で接続するようにしても良い。また、I2Cバス装置9にて行われる各処理機能は、その全部または任意の一部が、CPUまたはMPU、MCUMicroControllerUnitなどのマイクロコンピュータあるいは、ワイヤードロジックによるハードウェアとして実現されても良い。また、I2Cバス装置9にて行われる各処理機能は、その全部または任意の一部が、CPUまたはMPU、MCUなどのマイクロコンピュータにて解析実行されるプログラムにて実現されても良い。以上の実施例に係る実施形態に関し、さらに以下の付記を開示する。付記1シリアルバスで接続する複数のスレーブユニットを制御する第1のマスタユニットと、前記複数のスレーブユニットを制御し、前記第1のマスタユニットと二重化された第2のマスタユニットとを有し、前記第1のマスタユニットは、自ユニットと接続された前記スレーブユニットへのアクセスで異常を検出したとき、異常を検出した箇所に関するアクセス結果と、前記第2のマスタユニットと接続された前記スレーブユニットへの前記第2のマスタユニットからのアクセス結果とを用いて、異常であるユニットを判定する制御部を有することを特徴とする情報処理装置。付記2前記制御部は、自ユニットと接続された前記スレーブユニットへのアクセスで異常箇所があるか否かを判定する異常箇所判定部と、前記異常箇所判定部によって前記スレーブユニットへのアクセスで異常箇所があると判定された場合に、前記スレーブユニットと同一のスレーブユニットへのアクセスを、前記第2のマスタユニットに依頼するアクセス依頼部と、前記異常箇所判定部によって異常箇所があると判定された異常箇所に関するアクセス結果と前記アクセス依頼部による依頼の結果を示すアクセス結果との組み合わせを用いて、異常であるユニットを判定する異常ユニット判定部とを有することを特徴とする付記1に記載の情報処理装置。付記3前記第1のマスタユニットは、前記スレーブユニットへのアクセスでマスタユニット中の異常となる可能性のある箇所に関するアクセス情報について、二重化されたマスタユニットの一方の前記アクセス情報と他方の前記アクセス情報との組み合わせにより異常と判定されるユニットの候補を記憶する記憶部を有し、前記異常ユニット判定部は、さらに、前記記憶部に記憶された、二重化されたマスタユニットのそれぞれの前記アクセス情報の組み合わせを用いて、前記スレーブユニットへのアクセスで異常の原因となったユニットを判定することを特徴とする付記1または付記2に記載の情報処理装置。付記4前記アクセス情報は、異常となる可能性のある箇所および当該箇所での異常内容を含むことを特徴とする付記3に記載の情報処理装置。付記5自ユニットとシリアルバスで接続されたスレーブユニットへのアクセスで異常を検出したとき、異常を検出した箇所に関するアクセス結果と、自ユニットと二重化された他のマスタユニットとシリアルバスで接続された前記スレーブユニットへの他のマスタユニットからのアクセス結果とを用いて、異常であるユニットを判定する制御部を有することを特徴とする制御装置。付記6情報処理装置によって実行される異常ユニット判定方法であって、シリアルバスで接続する複数のスレーブユニットを制御する第1のマスタユニットが前記スレーブユニットへのアクセスで異常箇所があるか否かを判定し、前記判定する処理によって前記スレーブユニットへのアクセスで異常箇所があると判定された場合に、前記スレーブユニットと同一のスレーブユニットへのアクセスを、前記第1のマスタユニットと二重化された第2のマスタユニットに依頼し、前記判定する処理によって異常箇所があると判定された異常箇所に関するアクセス結果と前記依頼する処理によって依頼した結果を示すアクセス結果とを用いて、異常であるユニットを判定する処理を含むことを特徴とする異常ユニット判定方法。