JP2012198822A - 情報処理装置、制御装置および異常ユニット判定方法 - Google Patents

情報処理装置、制御装置および異常ユニット判定方法 Download PDF

Info

Publication number
JP2012198822A
JP2012198822A JP2011063404A JP2011063404A JP2012198822A JP 2012198822 A JP2012198822 A JP 2012198822A JP 2011063404 A JP2011063404 A JP 2011063404A JP 2011063404 A JP2011063404 A JP 2011063404A JP 2012198822 A JP2012198822 A JP 2012198822A
Authority
JP
Japan
Prior art keywords
unit
abnormal
abnormality
access
svc
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011063404A
Other languages
English (en)
Other versions
JP5682392B2 (ja
Inventor
Shigeo Kamishina
重雄 神志那
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2011063404A priority Critical patent/JP5682392B2/ja
Priority to US13/346,820 priority patent/US8799708B2/en
Publication of JP2012198822A publication Critical patent/JP2012198822A/ja
Application granted granted Critical
Publication of JP5682392B2 publication Critical patent/JP5682392B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2005Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0016Inter-integrated circuit (I2C)

Abstract

【課題】I2Cバスに接続されたI2Cユニットに異常があった場合、どのI2Cユニットに異常があるのかを判定できる。
【解決手段】I2Cバス装置9は、I2Cバスで接続する複数のI2Cスレーブユニット3を制御するI2Cマスタユニット1Aと、複数のI2Cスレーブユニット3を制御し、I2Cマスタユニット1Aと二重化されたI2Cマスタユニット2とを有し、I2Cマスタユニット1Aは、自ユニットと接続されたI2Cスレーブユニット3へのアクセスで異常を検出したとき、異常を検出した箇所に関するアクセス結果と、I2Cマスタユニット1Bと接続されたI2Cスレーブユニット3へのI2Cマスタユニット1Bからのアクセス結果とを用いて、異常となるユニットを判定する制御部30を有する。
【選択図】図1

Description

本発明は、情報処理装置などに関する。
I2C(Inter Integrated Circuit)バスは、二線式の双方向シリアルバスであり、シリアルクロックおよびシリアルデータの2本の信号線で構成されるシンプルな構成であるので、導入が容易である。
同一のI2Cバスに、複数のI2Cユニットが接続される接続状態において、いずれかのI2Cユニットが、信号線内の電圧レベルが低くなるロースタックなどが原因でハングアップすると、他のI2Cユニットは通信することができなくなる。かかる場合に、I2Cバスと接続されたバスマスタユニットが、I2Cバスのシリアルデータ線の電圧に基づいて、ハングアップしたバススレーブユニットを特定し、かつリセットする技術が開示されている。
特開2010−55472号公報 特開2005−4745号公報 特開2010−211810号公報
しかしながら、従来の技術では、バスマスタユニットにロースタックなどが原因でアクセス異常が発生した場合、バスマスタユニット側の異常であるのかアクセス先のバススレーブユニット側の異常であるのかを判定することができない。
開示の技術は、上記に鑑みてなされたものであって、I2Cバスに接続されたI2Cユニットに異常があった場合、どのI2Cユニットに異常があるのかを判定できる情報処理装置などを提供することを目的とする。
本願の開示する情報処理装置は、一つの態様において、シリアルバスで接続する複数のスレーブユニットを制御する第1のマスタユニットと、前記複数のスレーブユニットを制御し、前記第1のマスタユニットと二重化された第2のマスタユニットとを有し、前記第1のマスタユニットは、自ユニットと接続された前記スレーブユニットへのアクセスで異常を検出したとき、異常を検出した箇所に関するアクセス結果と、前記第2のマスタユニットと接続された前記スレーブユニットへの前記第2のマスタユニットからのアクセス結果とを用いて、異常であるユニットを判定する制御部を有する。
本願の開示する情報処理装置の一つの態様によれば、I2Cバスに接続されたI2Cユニットに異常があった場合、どのI2Cユニットに異常があるのかを判定できるという効果を奏する。
図1は、実施例に係るI2Cバス装置の構成を示す機能ブロック図である。 図2Aは、実施例に係る異常ユニット判定を実行するためのユニット間のI2Cバスの接続について説明する図である。 図2Bは、実施例に係る異常ユニット判定の方法を説明する図である。 図3は、実施例に係る異常箇所判定を説明する図である。 図4は、実施例に係る異常ユニット判定マトリクスの一例を示す図である。 図5は、実施例に係る異常ユニット判定の具体例を説明する図である。 図6は、実施例に係る異常ユニット判定の別の具体例を説明する図である。 図7は、実施例に係る異常ユニット判定の別の具体例を説明する図である。 図8は、実施例に係る異常ユニット判定の別の具体例を説明する図である。 図9は、実施例に係る異常ユニット判定を実行するためのI2Cバス装置の一例を説明する図である。 図10は、実施例に係る異常ユニット判定を実行するためのハードウェアの全体構成一例を説明する図である。 図11は、SVCと対象ユニットとのI2Cバスの接続を説明する図である。 図12は、SVCに搭載されたFPGAを用いたFPGA間通信を説明する図である。 図13は、SVCに搭載されたFPGAを用いたリセット制御を説明する図である。 図14は、SVCに搭載されたI2C−MUXの接続方法について説明する図である。 図15Aは、運用SVCのI2C−MUXのステータス異常判定の手順を示すフローチャートである。 図15Bは、運用SVCの対象ユニットとの接続異常判定の手順を示すフローチャートである。 図15Cは、運用SVCの対象ユニットからの読取異常判定の手順を示すフローチャートである。 図15Dは、運用SVCの対象ユニットへの書込異常判定の手順を示すフローチャートである。 図15Eは、運用SVCの対象ユニットからの切断異常判定の手順を示すフローチャートである。 図16は、待機SVCへのアクセス依頼の手順を示すフローチャートである。 図17は、異常ユニット判定の手順を示すフローチャートである。 図18は、待機SVCのアクセス依頼待ちの手順を示すフローチャートである。 図19Aは、待機SVCのI2C−MUXのステータス異常判定の手順を示すフローチャートである。 図19Bは、待機SVCの対象ユニットとの接続異常判定の手順を示すフローチャートである。 図19Cは、待機SVCの対象ユニットからの読取異常判定の手順を示すフローチャートである。 図19Dは、待機SVCの対象ユニットへの書込異常判定の手順を示すフローチャートである。 図19Eは、待機SVCの対象ユニットからの切断異常判定の手順を示すフローチャートである。 図20は、運用SVCへのアクセス結果通知の手順を示すフローチャートである。
以下に、本願の開示する情報処理装置、制御装置および異常ユニット判定方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例では、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:Service Controller)といい、I2Cバスで接続する複数のI2Cスレーブユニット3を制御したり、監視したりする。I2Cマスタユニット1Aは、I2Cマスタユニット1Bと冗長構成であり、運用系となったり、待機系となったりする。以降の説明では、I2Cマスタユニット1Aが、運用系であるものとして説明する。そして、I2Cマスタユニット1Bは、I2Cマスタユニット1Aと同様の構成であるので、その説明を省略する。
I2Cスレーブユニット3は、I2Cスレーブとなるユニットであり、I2Cマスタユニット1AおよびI2Cマスタユニット1Bとそれぞれ接続される。I2Cスレーブユニット3には、例えば、FRT(Frontend Router)、BRT(Backend Router)、PSU(Power Supply Unit)、BBU(Battery Backup Unit)が挙げられる。ここで、FRTは、ユニットの動作を管理するCM(Control Module)間の通信手段を提供するユニットである。BRTは、CMにハードディスクへのアクセス手段を提供するユニットである。PSUは、全ユニットに電力を供給するユニットである。BBUは、停電発生時に特定のユニットに電力を供給するユニットである。なお、図1では、説明の便宜上、I2Cスレーブユニット3が1台となる構成を採用しているが、I2Cスレーブユニット3が複数となる構成を適用しても良い。
I2Cマスタユニット1Aは、I2Cマスタとなるユニットであり、FPGA(Field Programmable Gate Array)10と、I2C−MUX(multiplexer)20と、制御部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は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)等の電子回路である。
記憶部40は、異常ユニット判定マトリクス41を有する。記憶部40は、例えば、RAM(Random Access Memory)、フラッシュメモリ(flash memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置である。異常ユニット判定マトリクス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がI2C-MUXから対象ユニットを切断する箇所で、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は、I2C-MUX20Bのレジスタで、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は、I2C-MUX20Bのレジスタで、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は、I2C-MUX20Bのレジスタで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は、I2C-MUX20Bのレジスタで、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は、I2C-MUX20Bのレジスタで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:Device Enclosure)とハードディスク以外のユニットが搭載される筐体(CE:Controller Enclosure)を有する。DEには、複数のハードディスク(Hard Disk)が搭載されている。また、CEには、ユニットの動作を管理するユニット(CM:Control Module)、CM間の通信手段を提供するユニット(FRT:Frontend Router)、CMにハードディスクへのアクセス手段を提供するユニット(BRT:Backend Router)が搭載されている。また、CEには、CEに搭載される全ユニットに電力を供給するユニット(PSU:Power Supply Unit)、停電発生時に特定のユニットに電力を供給するユニット(BBU:Battery Backup Unit)が搭載されている。さらに、CEには、ユーザの操作により自装置に電源を投入したり切断したりするユニット(Panel)および自装置を制御したり監視したりするユニット(SVC:Service Controller)が搭載されている。なお、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は、FRT#0〜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の通信回路であるUART(Universal Asynchronous Receiver Transmitter)を特殊モード1(I2Cモード)で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デバイスであるFRT#0から目的のデータを読み取れないデバイス異常「e7」となった場合、FRT#0を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のFRT#0(s11)〜#3(s14)と接続することで、1個の対象ユニットs1のみと接続する。これにより、SVC4Aに搭載されたMPU60Aは、I2C−MUXm1によって対象ユニットs1と1対1で接続することとなる。
また、I2C−MUXm1は、FPGA40Aからのリセット信号でリセットされる。これにより、I2C−MUXm1では、すべての接続が切断される。例えば、図14では、I2C−MUXm1は、出力端子m14で対象ユニットs1のFRT#3(s14)と接続している。この場合に、I2C−MUXm1は、FPGA40Aによってリセットされると、既に接続されていたFRT#3(s14)を含め、すべての接続を切断することとなる。
[実施例に係る異常ユニット判定処理の手順]
次に、実施例に係る異常ユニット判定処理の手順を、図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、MCU(Micro Controller Unit)などのマイクロ・コンピュータ)あるいは、ワイヤードロジックによるハードウェアとして実現されても良い。また、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のマスタユニットに依頼し、
前記判定する処理によって異常箇所があると判定された異常箇所に関するアクセス結果と前記依頼する処理によって依頼した結果を示すアクセス結果とを用いて、異常であるユニットを判定する
処理を含むことを特徴とする異常ユニット判定方法。
1A、1B I2Cマスタユニット
3 I2Cスレーブユニット
10 FPGA
20 I2C−MUX
30 制御部
31 I2Cデバイス制御部
31a 異常箇所判定部
31b アクセス依頼部
31c 異常ユニット判定部
32 I2Cシーケンス制御部
40 記憶部
41 異常ユニット判定マトリクス

Claims (5)

  1. シリアルバスで接続する複数のスレーブユニットを制御する第1のマスタユニットと、
    前記複数のスレーブユニットを制御し、前記第1のマスタユニットと二重化された第2のマスタユニットとを有し、
    前記第1のマスタユニットは、
    自ユニットと接続された前記スレーブユニットへのアクセスで異常を検出したとき、異常を検出した箇所に関するアクセス結果と、前記第2のマスタユニットと接続された前記スレーブユニットへの前記第2のマスタユニットからのアクセス結果とを用いて、異常であるユニットを判定する制御部
    を有することを特徴とする情報処理装置。
  2. 前記制御部は、
    自ユニットと接続された前記スレーブユニットへのアクセスで異常箇所があるか否かを判定する異常箇所判定部と、
    前記異常箇所判定部によって前記スレーブユニットへのアクセスで異常箇所があると判定された場合に、前記スレーブユニットと同一のスレーブユニットへのアクセスを、前記第2のマスタユニットに依頼するアクセス依頼部と、
    前記異常箇所判定部によって異常箇所があると判定された異常箇所に関するアクセス結果と前記アクセス依頼部による依頼の結果を示すアクセス結果との組み合わせを用いて、異常であるユニットを判定する異常ユニット判定部と
    を有することを特徴とする請求項1に記載の情報処理装置。
  3. 前記第1のマスタユニットは、
    前記スレーブユニットへのアクセスでマスタユニット中の異常となる可能性のある箇所に関するアクセス情報について、二重化されたマスタユニットの一方の前記アクセス情報と他方の前記アクセス情報との組み合わせにより異常と判定されるユニットの候補を記憶する記憶部を有し、
    前記異常ユニット判定部は、
    さらに、前記記憶部に記憶された、二重化されたマスタユニットのそれぞれの前記アクセス情報の組み合わせを用いて、前記スレーブユニットへのアクセスで異常の原因となったユニットを判定する
    ことを特徴とする請求項1または請求項2に記載の情報処理装置。
  4. 自ユニットとシリアルバスで接続されたスレーブユニットへのアクセスで異常を検出したとき、異常を検出した箇所に関するアクセス結果と、自ユニットと二重化された他のマスタユニットとシリアルバスで接続された前記スレーブユニットへの他のマスタユニットからのアクセス結果とを用いて、異常であるユニットを判定する制御部
    を有することを特徴とする制御装置。
  5. 情報処理装置によって実行される異常ユニット判定方法であって、
    シリアルバスで接続する複数のスレーブユニットを制御する第1のマスタユニットが前記スレーブユニットへのアクセスで異常箇所があるか否かを判定し、
    前記判定する処理によって前記スレーブユニットへのアクセスで異常箇所があると判定された場合に、前記スレーブユニットと同一のスレーブユニットへのアクセスを、前記第1のマスタユニットと二重化された第2のマスタユニットに依頼し、
    前記判定する処理によって異常箇所があると判定された異常箇所に関するアクセス結果と前記依頼する処理によって依頼した結果を示すアクセス結果とを用いて、異常であるユニットを判定する
    処理を含むことを特徴とする異常ユニット判定方法。
JP2011063404A 2011-03-22 2011-03-22 情報処理装置、制御装置および異常ユニット判定方法 Active JP5682392B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011063404A JP5682392B2 (ja) 2011-03-22 2011-03-22 情報処理装置、制御装置および異常ユニット判定方法
US13/346,820 US8799708B2 (en) 2011-03-22 2012-01-10 Information processing apparatus, control device, and abnormal unit determination method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011063404A JP5682392B2 (ja) 2011-03-22 2011-03-22 情報処理装置、制御装置および異常ユニット判定方法

Publications (2)

Publication Number Publication Date
JP2012198822A true JP2012198822A (ja) 2012-10-18
JP5682392B2 JP5682392B2 (ja) 2015-03-11

Family

ID=46878356

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011063404A Active JP5682392B2 (ja) 2011-03-22 2011-03-22 情報処理装置、制御装置および異常ユニット判定方法

Country Status (2)

Country Link
US (1) US8799708B2 (ja)
JP (1) JP5682392B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015018315A (ja) * 2013-07-09 2015-01-29 富士通株式会社 ストレージ制御装置、制御装置および制御プログラム
JP2015099487A (ja) * 2013-11-19 2015-05-28 富士通株式会社 情報処理装置,制御装置及び制御プログラム
KR101674529B1 (ko) * 2015-09-09 2016-11-09 한국원자력의학원 다엽 콜리메이터 제어 장치 및 방법
CN109189619A (zh) * 2018-08-13 2019-01-11 光梓信息科技(上海)有限公司 I2c总线兼容性测试方法、系统、存储介质及设备

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112012004029T5 (de) * 2011-09-27 2014-08-14 Mitsubishi Electric Corporation Slave-Vorrichtung, Master-Vorrichtung und Kommunikationsverfahren
US8891405B2 (en) 2012-07-18 2014-11-18 International Business Machines Corporation Integrated device management over Ethernet network
JP5921782B2 (ja) 2013-09-26 2016-05-24 三菱電機株式会社 通信システム、待機装置、通信方法及び待機プログラム
JP6340962B2 (ja) * 2014-07-07 2018-06-13 富士通株式会社 バス制御装置、データ転送システム、及びバス制御方法
US9665528B2 (en) * 2014-11-20 2017-05-30 International Business Machines Corporation Bus serialization for devices without multi-device support
CN105446837B (zh) * 2015-04-02 2019-05-07 北京眼神智能科技有限公司 检测iic接口器件是否连接的方法、装置以及系统
KR101999148B1 (ko) * 2017-07-28 2019-07-11 (주)씨드젠 로그 ap 탐지 시스템 및 방법과, 이를 위한 사용자 단말 및 컴퓨터 프로그램
JP6886934B2 (ja) * 2018-03-09 2021-06-16 株式会社東芝 I/o拡張装置及び制御システム
JP6939665B2 (ja) * 2018-03-15 2021-09-22 オムロン株式会社 ネットワークシステム

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06214895A (ja) * 1993-01-14 1994-08-05 Mitsubishi Electric Corp バス監視方法
JPH0934809A (ja) * 1995-07-18 1997-02-07 Hitachi Ltd 高信頼化コンピュータシステム
JPH10320307A (ja) * 1997-05-19 1998-12-04 Omron Corp リモートi/oシステム
JP2000181501A (ja) * 1998-12-14 2000-06-30 Hitachi Ltd 二重化制御装置
JP2002132535A (ja) * 2000-10-25 2002-05-10 Chubu Electric Power Co Inc 分散型計算機システムにおける計算機診断方式
JP2005004745A (ja) * 2003-06-12 2005-01-06 Hewlett-Packard Development Co Lp 集積回路間バスルータ
JP2009003613A (ja) * 2007-06-20 2009-01-08 Fujitsu Ltd バス障害検出方法及びバスシステム
JP2010033120A (ja) * 2008-07-25 2010-02-12 Yokogawa Electric Corp 二重化制御システム
JP2010055472A (ja) * 2008-08-29 2010-03-11 Internatl Business Mach Corp <Ibm> シリアルバスシステム、ハングアップスレーブ特定方法及びハングアップスレーブ特定プログラム
US20100131801A1 (en) * 2008-11-21 2010-05-27 Stmicroelectronics S.R.L. Electronic system for detecting a fault
JP2010211810A (ja) * 2004-05-20 2010-09-24 Qualcomm Inc 単線バス及び3線バスの相互運用性
JP2010250129A (ja) * 2009-04-16 2010-11-04 Canon Inc 画像形成装置

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06214895A (ja) * 1993-01-14 1994-08-05 Mitsubishi Electric Corp バス監視方法
JPH0934809A (ja) * 1995-07-18 1997-02-07 Hitachi Ltd 高信頼化コンピュータシステム
JPH10320307A (ja) * 1997-05-19 1998-12-04 Omron Corp リモートi/oシステム
JP2000181501A (ja) * 1998-12-14 2000-06-30 Hitachi Ltd 二重化制御装置
JP2002132535A (ja) * 2000-10-25 2002-05-10 Chubu Electric Power Co Inc 分散型計算機システムにおける計算機診断方式
JP2005004745A (ja) * 2003-06-12 2005-01-06 Hewlett-Packard Development Co Lp 集積回路間バスルータ
JP2010211810A (ja) * 2004-05-20 2010-09-24 Qualcomm Inc 単線バス及び3線バスの相互運用性
JP2009003613A (ja) * 2007-06-20 2009-01-08 Fujitsu Ltd バス障害検出方法及びバスシステム
JP2010033120A (ja) * 2008-07-25 2010-02-12 Yokogawa Electric Corp 二重化制御システム
JP2010055472A (ja) * 2008-08-29 2010-03-11 Internatl Business Mach Corp <Ibm> シリアルバスシステム、ハングアップスレーブ特定方法及びハングアップスレーブ特定プログラム
US20100131801A1 (en) * 2008-11-21 2010-05-27 Stmicroelectronics S.R.L. Electronic system for detecting a fault
JP2010250129A (ja) * 2009-04-16 2010-11-04 Canon Inc 画像形成装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015018315A (ja) * 2013-07-09 2015-01-29 富士通株式会社 ストレージ制御装置、制御装置および制御プログラム
US9645898B2 (en) 2013-07-09 2017-05-09 Fujitsu Limited Storage control device and control device for detecting abnormality of signal line
JP2015099487A (ja) * 2013-11-19 2015-05-28 富士通株式会社 情報処理装置,制御装置及び制御プログラム
US9727398B2 (en) 2013-11-19 2017-08-08 Fujitsu Limited Information processing apparatus, control device, and computer-readable recording medium having stored control program
KR101674529B1 (ko) * 2015-09-09 2016-11-09 한국원자력의학원 다엽 콜리메이터 제어 장치 및 방법
CN109189619A (zh) * 2018-08-13 2019-01-11 光梓信息科技(上海)有限公司 I2c总线兼容性测试方法、系统、存储介质及设备
CN109189619B (zh) * 2018-08-13 2023-03-17 光梓信息科技(上海)有限公司 I2c总线兼容性测试方法、系统、存储介质及设备

Also Published As

Publication number Publication date
US8799708B2 (en) 2014-08-05
US20120246510A1 (en) 2012-09-27
JP5682392B2 (ja) 2015-03-11

Similar Documents

Publication Publication Date Title
JP5682392B2 (ja) 情報処理装置、制御装置および異常ユニット判定方法
US8812913B2 (en) Method and apparatus for isolating storage devices to facilitate reliable communication
JP4770982B2 (ja) ストレージシステム、ストレージ装置、ファームウェアの活性交換方法
EP1712997B1 (en) Disk array device and control method therefor
JP3620527B2 (ja) ループ状インタフェースの障害解析方法及び障害解析機能を有するシステム
US8850255B2 (en) Storage system control apparatus and control method for utilizing a relay unit of an abnormal control unit
CN102622279B (zh) 冗余控制系统、方法及管理控制器
US8583863B2 (en) Storage system
JP5794137B2 (ja) 制御システムおよび中継装置
JP2011070655A (ja) 情報処理装置、メモリダンプシステムおよびメモリダンプ方法
CN106909307B (zh) 一种管理双活存储阵列的方法及装置
JP2017010390A (ja) ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法
US20080010494A1 (en) Raid control device and failure monitoring method
JP2016100843A (ja) 中継装置
JP5573118B2 (ja) ディスクアレイ装置の故障診断システム、故障診断方法、故障診断プログラムおよびディスク装置
US9760460B2 (en) Storage system, storage device, and monitoring server
US20060195558A1 (en) Redundant manager modules
JP5332257B2 (ja) サーバシステム、サーバ管理方法、およびそのプログラム
US20070180329A1 (en) Method of latent fault checking a management network
JP6481490B2 (ja) ストレージシステム、制御装置および制御プログラム
JP2007334764A (ja) Nasシステムおよびnasシステムの情報処理方法
JP2018116477A (ja) 情報処理装置および情報処理システム
JP2005004791A (ja) ディスク制御装置
CN102081579A (zh) 双控制器存储设备的缓存镜像系统及方法
JP2001027972A (ja) ディスク制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140108

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140919

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140930

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141127

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141216

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141229

R150 Certificate of patent or registration of utility model

Ref document number: 5682392

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150