(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0023】
次に、本発明の第1の実施の形態について図面を参照して詳細に説明する。
【0024】
図1は、本実施形態の情報処理システム100の構成の例を表すブロック図である。
【0025】
図1を参照すると、情報処理システム100は、代替制御装置1と、デバイス32Aと、デバイス32Bと、制御装置4を含む。
図1の例では、デバイスの数は2個であるが、デバイスの数は、
図1の例に限られない。デバイスの数は、3個以上であってもよい。代替性御装置1は、バス2に接続されている。各デバイスは、バス接続部31を介して、バス2に接続されている。また、各デバイスは、信号接続部33を介して、信号源に接続されている。
図1の例では、信号源は、信号源34Aと信号源34Bである。バス接続部31は、代替制御装置1に含まれていてもよい。信号接続部33も、代替制御装置1に含まれていてもよい。
図1の例では、制御装置4は、代替制御装置1を介して、バス2に接続されている。
【0026】
代替制御装置1は、障害検出部10と、接続制御部11と、代替指示部12と、命令送信部13と、命令記憶部14とを含む。
【0027】
信号源は、例えば、温度センサ、ファンの回転数を計測するセンサ、あるいは他のセンサである。信号源は、例えば、何らかのデータを記憶した記憶装置であってもよい。
【0028】
デバイスは、そのデバイスに接続されている信号源からの信号を、データに変換する。そして、デバイスは、そのデバイスに対する、制御装置4からのデータの読み出し命令を、バス2を介して受信すると、信号源からの信号を表すデータを、バス2に出力する。データの読み出し命令を、以下では単に命令と表記する。命令は、バス2に接続されている各装置に送信される。命令には、その命令が対象とするデバイスのアドレスが含まれる。命令を受信したデバイスは、受信した命令に、そのデバイスのアドレスとして設定されているアドレスが含まれる場合、受信した命令に対する応答を返信する。デバイスは、命令を受信しても、受信した命令にそのデバイスに設定されているアドレスが含まれない場合、受信した命令を実行しない。デバイスのアドレスは、あらかじめ設定されていていればよい。また、後述されるように、代替指示部12は、デバイスのアドレスを変更することができる。
【0029】
図2は、本実施形態の情報処理システム100の構成の他の例を表すブロック図である。
図2の例では、制御装置4がバス2に直接接続されている。このように、制御装置4は、バス2に直接接続されていてもよい。
【0030】
バス接続部31は、初期状態では、各デバイスとバス2との間を接続する。さらに、バス接続部31は、接続制御部11からの指示に基づき、各デバイスとバス2との間の接続を、個別に切断する。また、バス接続部31は、接続制御部11からの指示に基づき、バス2に接続されていないデバイスとバス2を、接続する。
【0031】
図3は、バス接続部31の構成の一例を表すブロック図である。
図3の例では、バス接続部31は、スイッチ311Aとスイッチ311Bを含む。
図3の例では、デバイスの数と同じ数のスイッチが存在する。そして、各スイッチは、いずれかのデバイスとバス2に接続される。すなわち、全てのデバイスが、いずれかのスイッチに接続されている。なお、スイッチの数は、デバイスの数と異なっていてもよい。例えば、バス接続部31を介さずにバス2に接続されているデバイスが存在してもよい。ただし、バス2に直接接続されているデバイスに障害が検出された場合、後述の
図10に示されるステップS104の動作は行われない。スイッチが接続状態である場合、そのスイッチに接続されているデバイスとバス2は接続される。スイッチが開放状態である場合、そのスイッチに接続されているデバイスとバス2との間の接続は、切断される。
図3の例では、全てのスイッチが接続状態である。バス接続部31は、接続制御部11からの指示に基づき、スイッチが接続状態であるか、開放状態であるかを、スイッチ毎に制御する。
【0032】
例えば、スイッチ311Aは、デバイス32Aとバス2に接続されている。スイッチ311Aが接続状態である場合、デバイス32Aとバス2は接続される。スイッチ311Aが開放状態である場合、そのスイッチ311Aに接続されているデバイス32Aとバス2との間の接続は、切断される。スイッチ311Bは、デバイス32Bとバス2に接続されている。スイッチ311Bが接続状態である場合、デバイス32Bとバス2は接続される。スイッチ311Bが開放状態である場合、そのスイッチ311Bに接続されているデバイス32Aとバス2との間の接続は、切断される。
【0033】
図4は、バス接続部31の構成の一例を表すブロック図である。
図4に示されるバス接続部31の構成は、
図3に示されるバス接続部31の構成と同じである。ただし、
図4の例では、デバイス32Aに接続されているスイッチ311Aが開放状態である。
【0034】
図5は、バス接続部31の構成の他の例を表すブロック図である。
図5の例では、バス接続部31は、バス接続部31Aとバス接続部31Bによって実現されている。このように、バス接続部31は、複数の部分に分かれたバス接続部によって実現されてもよい。そして、
図5に示す例のように、一つのバス接続部が、一つのデバイスとバス2に接続されていてもよい。
図5に示す例では、スイッチ311Aを含むバス接続部31Aが、デバイス32Aとバス2に接続される。また、スイッチ311Bを含むバス接続部31Bが、デバイス32Bとバス2に接続される。
【0035】
信号接続部33は、初期状態では、デバイスとそのデバイスに割り当てられている信号源との間を接続する。さらに、信号接続部33は、接続制御部11からの指示に基づき、デバイスに接続される信号源を、他の信号源に切り替える。
【0036】
図6は、信号接続部33の構成の一例を表すブロック図である。
図6に示す例では、信号接続部33は、スイッチ331Aとスイッチ331Bを含む。スイッチ331Aは、デバイス32Aと、信号源34Aと、信号源34Bに接続されている。スイッチ331Aは、信号源34Aと信号源34Bのいずれかを、デバイス32Aに接続する。スイッチ331Bは、デバイス32Bと、信号源34Aと、信号源34Bに接続されている。スイッチ331Bは、信号源34Aと信号源34Bのいずれかを、デバイス32Bに接続する。信号接続部33が含むスイッチの数は、3個以上であってもよい。一つのスイッチに接続される信号源の数は、3個以上であってもよい。それぞれのスイッチは、そのスイッチに接続される信号源のいずれかを、そのスイッチに接続されているデバイスに接続する。それぞれのスイッチは、信号源をデバイスに接続しない開放状態であってもよい。信号接続部33は、接続制御部11から受信する信号の基づき、各スイッチの状態を制御する。
【0037】
初期状態では、信号接続部33は、例えば
図6に示す例のように、信号源34Aをデバイス32Aに接続する。また、信号接続部33は、信号源34Bをデバイス32Bに接続する。
【0038】
図7は、信号接続部33の構成の一例を表すブロック図である。
図7の例では、信号接続部33は、信号源34Aをデバイス32Bに接続する。また、信号接続部33は、信号源34Bをデバイス32Aに接続する。信号接続部33は、接続制御部11から受信する信号の基づき、
図6に示す状態と、
図7に示す状態を切り替えてもよい。
【0039】
図8は、信号接続部33の構成の他の例を表すブロック図である。
図8の例では、信号接続部33は、スイッチ331Aを含む信号接続部33Aと、スイッチ331Bを含む信号接続部33Bによって実現される。このように、信号接続部33は、複数の部分に分かれた信号接続部によって実現されていてもよい。
【0040】
バス2は、例えば、I2Cバスによって実現されるバスである。バス2は、マスタ装置として動作する装置と、スレーブ装置として動作する複数の装置が接続されるバスであれば、他のバスであってもよい。
【0041】
図9は、バス2がI2Cバスである場合の、バス2とバス2に接続されている装置の、具体的な接続の例を表す図である。バス2は、シリアルデータ線であるSDA(Serial Data)2Aと、シリアルクロック線であるSCL(Serial Clock)2Bにより実現される。代替制御装置1は、SDA2AとSCL2Bに接続される。また、各デバイスは、バス接続部を介して、SDA2AとSCL2Bに接続される。なお、
図9の例では、一つのデバイスは、一つのバス接続部を介して、SDA2AとSCL2Bに接続されている。SDA2AとSCL2Bは、バス2の不使用時に信号をhighに保つために、電源VDDによってプルアップされている。
【0042】
制御装置4は、バス2に接続されている各デバイスと通信することができる。制御装置4は、命令をバス2に出力する。命令には、命令を実行するデバイスのアドレスが含まれる。例えば、バス2がI2Cバスである場合、命令はI2Cコマンドである。そして、命令は、バス2に接続されている全てのデバイスに送信される。
【0043】
命令を受信したデバイスは、そのデバイスのアドレスが受信した命令に含まれる場合、命令に対する応答をバス2を介して送信する。前述のように、本実施形態では、制御装置4が送信するデバイスに対する命令は、そのデバイスに接続されている信号源からの信号を表すデータの読み出し命令である。
図1の例では、各デバイスは、そのデバイスに接続されている信号源からの信号を表すデータを、応答としてバス2に送信する。
【0044】
制御装置4は、命令を送信したデバイスから、命令に対する応答を受信する。
【0045】
図1の例のように、制御装置4が代替制御装置1を介してバス2に接続されている場合、例えば、代替制御装置1の命令送信部13が、制御装置4から命令を受信する。そして、命令送信部13は、受信した命令を命令記憶部14に格納する。さらに、命令送信部13は、受信した命令を、バス2に対して出力する。命令送信部13は、出力した命令に対する応答をバス2から受信すると、受信した応答を制御装置4に送信する。
【0046】
図2の例のように、制御装置4がバス2に接続されている場合、制御装置4は、バス2に命令を直接出力する。また、制御装置4は、バス2から応答を直接受信する。そして、命令送信部13は、制御装置4がバス2に出力した命令を、バス2から受信する。そして、命令送信部13は、受信した命令を、命令記憶部14に格納する。
【0047】
また、命令送信部13は、バス2に送信された命令に対する応答を検出してもよい。そして、命令送信部13は、応答が検出された命令を、命令記憶部14から削除してもよい。
【0048】
命令記憶部14は、制御装置4が送信した命令を記憶する。
【0049】
障害検出部10は、各デバイスから、障害が生じているデバイスを検出する。本実施形態及び他の実施形態の説明において、障害検出部10により検出されたデバイスを、検出デバイスと表記する。
【0050】
代替指示部12は、代替デバイスに対して、代替動作指示を送信する。代替デバイスは、検出されたデバイスである検出デバイス以外のデバイスである。代替デバイスは、代替動作指示を受信すると検出デバイスに対する命令を受信して実行する。
【0051】
接続制御部11は、信号接続部33に、切り替え指示を送信する。信号接続部33は、切り替え指示を受信すると、検出デバイスに接続されている信号源を、代替デバイスに接続する。また、検出デバイスが検出された場合、接続制御部11は、バス接続部31に対して、切断指示を送信する。バス接続部31は、切断指示を受信すると、バス2と検出デバイスとの間の接続を切断する。
【0052】
命令送信部13は、代替動作指示及び切り返し時が送信された場合、命令記憶部14に格納されている、検出デバイスに対する命令を、バス2に対して出力する。
【0053】
次に、本実施形態の動作について説明する。
【0054】
図10は、本実施形態の代替制御装置1の、障害デバイス検出時の動作の一例を表すフローチャートである。
【0055】
命令送信部13は、制御装置4によってバス2に送信された命令を、命令記憶部14に格納する(ステップS101)。
【0056】
前述のように、制御装置4が命令送信部13を介してバス2に命令を送信する場合、命令送信部13は、制御装置4から受信した命令を、命令記憶部14に格納する。また、制御装置4がバス2に命令を直接送信する場合、命令送信部13は、バス2に送信される命令を受信して、命令記憶部14に格納すればよい。
【0057】
次に、障害検出部10が、障害が発生したデバイスを検出する(ステップS102)。
【0058】
例えば、障害検出部10は、命令が送信されてからの時間をタイマにより計測する。その際、例えば、命令送信部13が、送信された命令に対する応答の検出を行えばよい。そして、障害検出部10は、命令が送信されてから所定時間内に、その命令に対する応答が検出されない場合、その命令にアドレスが含まれるデバイスに障害が発生したと判定する。
【0059】
命令が送信されてから所定時間内に、その命令に対する応答が検出された場合、その命令にアドレスが含まれるデバイスに、障害は発生していない。この場合、障害デバイスは検出されない。さらに、この場合、命令送信部13は、命令記憶部14に格納されている、応答が検出された命令に対して、応答が検出されたことを表すデータを関連付けてもよい。あるいは、命令送信部13は、応答が検出された命令を命令記憶部14から削除してもよい。
【0060】
障害デバイスが検出されない場合(ステップS103でNo)、命令送信部13は、次に命令が送信されるまで待機する。
【0061】
障害デバイスが検出された場合(ステップS103でYes)、接続制御部11は、障害デバイスをバスから切り離す切断指示を、バス接続部31に送信する。
【0062】
切断指示は、障害デバイスの識別子を含んでいてもよい。切断指示を受信したバス接続部31は、バス2と障害デバイスとの間の接続を切断する。バス接続部31が、デバイスの識別子を受信するたびに、その識別子に関連付けられているスイッチを接続状態と切断状態の間で切り替えるよう構成されている場合、切断指示は、障害デバイスの識別子そのものであってもよい。
図5のように、一つのデバイスに一つのバス接続部が接続されている場合、接続制御部11は、障害デバイスに接続されているバス接続部に対して、切断指示を表す信号を送信すればよい。切断指示を受信したバス接続部31は、例えばバス2と障害デバイスを接続するスイッチを切断状態にすることにより、バス2と障害デバイスとの間の接続を切断する。
【0063】
デバイス32Aに障害が検出された場合、接続制御部11は、例えば、デバイス32Aの識別子を含む切断指示を、バス接続部31に送信する。切断指示を受信したバス接続部31は、例えばスイッチ311Aを切断状態にすることにより、バス2とデバイス32Aとの間の接続を切断する。バス接続部31が、
図3に示す例のように構成されている場合、切断指示を受信したバス接続部31の状態は、
図3に示す状態から、
図4に示す状態になる。
【0064】
例えば、障害デバイスに、SDAやSCLをlow状態にするような故障している場合、障害デバイスとバス2が接続されていると、制御装置4と他のデバイスとの間の、バス2を介した通信ができなくなる。バス接続部31が、障害デバイスをバス2から切り離すことにより、そのような故障が発生している場合であっても、制御装置4と他のデバイスとの間の、バス2を介した通信が可能になる。各デバイスが、SDAやSCLをlow状態にしないよう設計されている場合、代替制御装置1は、ステップS104の動作を行わなくてもよい。
【0065】
次に、代替指示部12が、障害デバイスでないデバイスを、代替デバイスとして選択する。そして、代替指示部12は、代替デバイスに対して、障害デバイスへの命令を実行させる指示である代替動作指示を送信する(ステップS105)。代替動作指示を受信した代替デバイスは、障害デバイスへの命令に対して応答する。すなわち、障害デバイスに割り当てられていたアドレスを含む命令に対して、応答する。
【0066】
代替動作指示は、例えば、デバイスに割り当てられているアドレスを変更する指示を表す信号である。代替指示部12は、代替デバイスに対して、代替動作指示として、例えば、アドレスを、障害デバイスに割り当てられていたアドレスに変更する指示を表す信号を送信する。代替動作指示を受信したデバイスは、そのデバイスのアドレスを変更する。そして、そのデバイスは、変更されたアドレスを含む命令に対して、応答する。以下では、デバイスに対して、デバイスに割り当てられているアドレスを変更する指示を表す信号を送信することを、デバイスにアドレスを設定するとも表記する。
【0067】
代替指示部12は、あらかじめ、アドレスを変更することにより同じ動作をするデバイスのグループを表す情報を保持していればよい。アドレスを変更することにより同じ動作をするデバイスは、例えば、信号源からの信号に対して同じ変換を行ってデータを生成し、生成されたデータを応答として返信するデバイスである。デバイスのグループを表す情報は、例えば、デバイスの識別子の組である。代替指示部12は、障害デバイスが検出された場合、その障害デバイスと同じグループに含まれるデバイスから、任意の方法で代替デバイスを選択すればよい。
【0068】
例えば、制御装置4が、各デバイスに対して順次命令を送信するよう構成されている場合、代替指示部12は、各デバイスに対する命令が送信された時刻を記憶していてもよい。そして、代替指示部12は、直近の命令が送信されてから経過した時間が最も短いデバイスを、代替デバイスとして選択してもよい。代替指示部12は、過去の所定時間内にデバイスに対する命令が送信された回数をデバイス毎にカウントしてもよい。代替指示部12は、カウントされた回数を、デバイス毎に記憶していてもよい。そして、代替指示部12は、命令が送信された回数が最も少ないデバイスを、代替デバイスとして選択してもよい。代替指示部12は、過去の所定時間内において、デバイスに対して命令が送信されてから、同じデバイスに対して命令が送信されるまでの平均時間を、デバイス毎に算出してもよい。代替指示部12は、算出されたデバイス毎の平均時間を記憶していてもよい。そして、代替指示部12は、直近に命令が送信されてから平均時間が経過する時刻が、現在の時刻から最も遠いデバイスを、代替デバイスとして選択してもよい。これらの場合、例えば、命令送信部13が、各デバイスに対する命令を検出すればよい。そして命令送信部13が、デバイスの識別子とそのデバイスに対する命令が検出された時刻の組を、代替指示部12に送信すればよい。
【0069】
次に、接続制御部11は、信号接続部33に対して、障害デバイスに接続されている信号源を、代替デバイスに接続させる指示である切り替え指示を送信する(ステップS106)。
【0070】
切り替え指示の送信時に、代替デバイスに信号源が接続されている場合、切り替え指示を受信した信号接続部33は、代替デバイスに接続されている信号源を、代替デバイスから切り離す。信号接続部33は、障害デバイスに接続されている信号源を、障害デバイスから切り離す。そして、信号接続部33は、障害デバイスから切り離された信号源を、代替デバイスに接続する。信号接続部33は、代替デバイスから切り離された信号源を、障害デバイスに接続してもよい。
【0071】
切り替え指示は、例えば、障害デバイスの識別子と代替デバイスの識別子の組み合わせを含む信号である。その場合、信号接続部33は、識別子が組み合わせに含まれる2つのデバイスに接続される信号源が入れ替わるよう、デバイスと信号源を接続するスイッチの接続状態を変更する。
【0072】
切り替え指示は、例えば、デバイスの識別子とそのデバイスに接続される信号源の識別子の組み合わせを表す信号であってもよい。その場合、接続制御部11は、代替デバイスの識別子と障害デバイスに接続されている信号源の識別子の組み合わせを表す信号を、信号接続部33に送信する。接続制御部11は、さらに、障害デバイスの識別子を表す信号と、信号源が接続されないことを表す信号を、信号接続部33に送信してもよい。接続制御部11は、障害デバイスの識別子と代替デバイスに接続されている信号源の識別子の組み合わせを表す信号を、信号接続部33に送信してもよい。
【0073】
例えば、デバイス32Bが代替デバイスであり、障害デバイスが検出されたときの信号接続部33の状態が、
図6に示す状態である場合、切り替え指示を受信した信号接続部の状態は、例えば
図7に示す状態になる。
【0074】
ステップS104からステップS106までの動作の順番は、
図10に示す順番に限られない。代替制御装置1は、ステップS104、ステップS105、及びステップS106の動作を、
図10に示す順番と異なる順番で行ってもよい。
【0075】
次に、命令送信部13が、障害デバイスに対する命令を、命令記憶部14から読み出す(ステップS107)。
【0076】
命令送信部13は、応答が送信されていない命令だけを、命令記憶部14から読み出すのが望ましい。障害デバイスに対する命令が、複数、命令記憶部14に格納されている場合、命令記憶部14は、それらの複数の命令を命令記憶部14から読み出す。
【0077】
次に、命令送信部13は、読み出された命令を、バス2に対して送信する(ステップS108)。
【0078】
複数の命令が読み出された場合、命令送信部13は、それらの命令を、それらの命令が送信された順番で、バス2に対して送信してもよい。
【0079】
送信された、障害デバイスに対する命令に対して、代替デバイスが応答する。前述のように、送信される命令が、デバイスに接続されている信号源からの信号を表すデータを送信する命令である場合、代替デバイスは、代替デバイスに接続されている信号を表すデータを、応答として送信する。代替デバイスに接続されている信号源は、障害デバイスが検出された時に、障害デバイスに接続されていた信号源である。従って、障害デバイスに対する命令を受信した代替デバイスは、障害デバイスに接続されていた信号源からの信号を表すデータを、応答として送信する。このことにより、制御装置4は、命令に対して応答を行わない障害デバイスに接続されている信号源からの信号を表すデータを取得することができる。
【0080】
なお、例えばステップS108の動作の後、障害デバイスが検出された際代替デバイスに設定されていたアドレスを含む命令が送信された場合、代替制御装置1は、再び
図10の動作を行えばよい。その場合の障害デバイスのアドレスは、最初の
図10の動作において、障害デバイスが検出された際、代替デバイスに設定されていたアドレスである。その結果、例えば、最初の
図10の動作における代替デバイス以外に代替デバイスとして動作するデバイスが存在しなければ、その代替デバイスに当初設定されていたアドレスが設定される。最初の
図10の動作における代替デバイス以外にも、代替デバイスとして動作するデバイスが存在する場合、最初の
図10の動作における代替デバイスと代替デバイスとして動作する他のデバイスから、新たな代替デバイスが選択される。
【0081】
以上で説明した本実施形態には、信号源に接続され、信号源からのデータを、バスを介してマスタ装置である制御装置4に送信するデバイスに障害が発生した場合でも、制御装置4がその信号源からのデータを得ることができるという第1の効果がある。
【0082】
その理由は、障害検出部10により障害デバイスが検出された場合、代替指示部12が、選択された代替デバイスに対して、障害デバイスとして動作する指示を送信するからである。このことにより、代替デバイスが、障害デバイスに対する命令に応答する。そして、さらに、接続制御部11が、障害デバイスに接続されていた信号源を、代替デバイスに接続するからである。このことにより、制御装置4が、障害デバイスに対する、障害デバイスに接続されていた信号源からの信号を表すデータを送信する命令を送信した場合、代替デバイスが、応答することができる。すなわち、代替デバイスが、障害デバイスに接続されていた信号源からの信号を表すデータを送信することができる。
【0083】
本実施形態には、さらに、制御装置4が、デバイスに障害が検出された際に送信されていた、障害デバイスに対する命令を再送しなくても、その命令に対する応答を得ることができるという効果がある。
【0084】
その理由は、命令送信部13が、各デバイスが接続されたバス2に送信された命令を、命令記憶部14に格納するからである。代替デバイスが障害デバイスとして動作をし始めた後、命令送信部13が、応答が検出されていない、障害デバイスに対する命令を、命令記憶部14から読み出して送信するからである。
【0085】
次に、本発明の第2の実施形態について、図面を参照して詳細に説明する。
【0086】
図11は、本実施形態の情報処理システム100Aの構成を表す図である。
【0087】
図1に示される第1の実施形態の情報処理システム100の構成と比較すると、情報処理システム100Aは、代替制御装置1の代わりに代替制御装置1Aを含む。
【0088】
代替制御装置1Aは、代替制御装置1の各構成要素に加えて、リセット部15を含む。
【0089】
リセット部15は、障害デバイスに対して、リセットを指示する信号である、リセット信号を送信する。
【0090】
各デバイスは、リセット信号を受信すると、リセットされる。すなわち、各デバイスは、リセット信号を受信すると、初期状態に戻る。デバイスが初期状態に戻るとは、例えば、そのデバイスの内部状態が初期状態に戻ることである。各デバイスは、例えば再起動することにより、初期状態に戻る。
【0091】
情報処理システム100Aの他の構成要素は、第1の実施形態の情報処理システム100の、同じ番号が付与された構成要素と同じである。
【0092】
次に、本実施形態の代替制御装置1Aの動作について、図面を参照して詳細に説明する。
【0093】
代替制御装置1Aの、障害デバイス検出時の動作は、
図10に示す、第1の実施形態の代替制御装置1の、障害デバイス検出時の動作と同じである。
【0094】
図12は、本実施形態の代替制御装置1Aの、障害デバイス復帰処理時の動作を表すフローチャートである。
【0095】
本実施形態では、代替制御装置1Aは、
図10に示す動作の後、障害デバイスがバス2から切り離された状態で、
図12の動作を開始する。
【0096】
まず、リセット部15が、リセット信号を障害デバイスに送信する(ステップS201)。
【0097】
障害デバイスが何らかの原因でハングアップしている場合、リセット信号を受信した障害デバイスは、リセットされる。すなわち、障害デバイスは、初期状態に戻る。例えば、障害デバイスが何らかの原因でハングアップしている場合、リセット信号を受信した障害デバイスは、再起動することにより、初期状態に戻る。障害デバイスが故障しており、正常に動作しない場合、障害デバイスは、リセット信号を受信してもリセットされない場合がある。例えば、障害デバイスが故障しており、正常に動作しない場合、障害デバイスは、リセット信号を受信しても、再起動せず、初期状態に戻らない場合がある。
【0098】
次に、接続制御部11は、障害デバイスをバス2に接続する指示である接続指示を、バス接続部31に送信する(ステップS202)。接続指示は、例えば、障害デバイスとバス2が接続されているスイッチを接続状態にする信号である。
【0099】
ステップS202の動作は、障害デバイスに生じた障害が、リセット信号の送信によって解消されたか否かを確認するための準備動作である。
【0100】
ステップS202の動作が行われるまでに、代替指示部12は、障害デバイスに対して、障害デバイスに割り当てられているアドレスを、例えば障害デバイスが検出された際に代替デバイスに設定されていたアドレスに変更する指示を表す信号を送信する。障害デバイスに割り当てられるアドレスは、他のデバイスに割り当てられているアドレスと異なるアドレスであれば、他のアドレスであってもかまわない。このことにより、障害デバイスの障害が解消されていれば、障害デバイスに割り当てられているアドレスは、変更される。
【0101】
また、ステップS202の動作が行われるまでに、接続制御部11は、信号接続部33に対して、障害デバイスに、例えば、障害デバイスが検出された際代替デバイスに接続されていた信号源を接続する指示を送信してもよい。接続制御部11は、障害デバイスに、障害デバイスが検出された際代替デバイスに接続されていた信号源を接続する指示の送信を、例えば、後述のステップS204でNoである場合に行ってもよい。
【0102】
次に、障害検出部10が、障害デバイスに障害があるか否かを検出する(ステップS203)。
【0103】
障害検出部10は、まず、障害デバイスに割り当てられているアドレスが指定されている命令、すなわち、障害デバイスに割り当てられているアドレスを含む命令を生成する。次に、障害検出部10は、生成された命令を、バス2に送信する。障害検出部10は、命令送信部13を介して、生成された命令を送信してもよい。前述のように、障害デバイスに割り当てられているアドレスは、他のデバイスに割り当てられているアドレスと異なるアドレスである。バス2に送信された命令は、バス2に接続されている全てのデバイスに送信される。障害デバイスに発生していた障害が解消していれば、障害デバイスは、障害検出部10が生成した命令に対して、応答を行う。障害検出部10は、障害検出部10が生成した命令に対して、所定時間内に応答があった場合、障害デバイスに生じていた障害は解消したことを検出する。障害検出部10は、障害検出部10が生成した命令に対して、所定時間内に応答がない場合、障害デバイスに生じていた障害は解消されておらず、依然として障害デバイスに障害があることを検出する。
【0104】
障害検出部10が障害があることを検出した場合(ステップS204においてYes)、接続制御部11は、障害デバイスとバス2の間の接続を切り離す切断指示を、バス接続部31に送信する。そして、代替制御装置1は、ステップS201からの動作を繰り返してもよい。あるいは、代替制御装置1は、障害デバイスに、例えば再起動することによって回復する障害ではない故障が生じたと判断し、
図12の動作を終了してもよい。あるいは、代替制御装置1は、ステップS201からステップS205までの動作を、所定回数繰り返した後、
図12の動作を終了してもよい。
【0105】
障害検出部10が、障害が解消されたことを検出した場合(ステップS204においてNo)、接続制御装置1は、
図12の動作を終了する。
【0106】
ステップS203の動作の際に、障害デバイスに割り当てられているアドレスが、障害デバイスが検出された時に代替デバイスに割り当てられていたアドレスあれば、接続制御装置1は、そのまま
図12の動作を終了する。
【0107】
そうでない場合、代替指示部12は、障害デバイスが検出された時に代替デバイスに割り当てられていたアドレスを、障害デバイスに割り当ててもよい。そして、接続制御装置1は、そのまま
図12の動作を終了する。
【0108】
あるいは、代替指示部12は、代替指示部12は、障害デバイスが検出された時に代替デバイスに割り当てられていたアドレスを、代替デバイスに割り当ててもよい。この場合、代替指示部12は、さらに、障害デバイスが検出された時に障害デバイスに割り当てられていたアドレスを、障害デバイスに割り当てる。そして、接続制御装置1は、そのまま
図12の動作を終了する。
【0109】
以上で説明した本実施形態には、デバイスに発生した障害がリセットによって解消される障害である場合、障害デバイスを再び稼働させることができるという効果がある。
【0110】
その理由は、リセット部15が障害デバイスにリセット信号を送信するからである。そして、障害デバイスに生じていた障害が解消されたことが検出された場合、障害デバイスが信号源とバス2に接続された状態に戻すからである。
【0111】
次に、本発明の第3の実施形態について、図面を参照して詳細に説明する。
【0112】
図13は、本実施形態の代替制御装置1Bの構成の例を表すブロック図である。
【0113】
図13を参照すると、本実施形態の代替制御装置1Bは、信号接続部33を介して信号源に接続されると共にバス2に接続され、前記バス2を介して、受信した命令に対して前記信号源からの信号に基づくデータを返送する複数のデバイスから、障害が生じている障害デバイスを検出する障害検出部10と、前記複数のデバイスのうち前記障害デバイス以外の特定デバイスであって、代替動作指示を受信すると前記障害デバイスに対する命令を受信して実行する代替デバイスに対して、前記代替動作指示を送信する代替指示部12と、切り替え指示を受信すると、前記障害デバイスに接続されている前記信号源を、前記代替デバイスに接続する前記信号接続部33に、前記切り替え指示を送信する接続制御部11と、を含む。
【0114】
以上で説明した本実施形態には、第1の実施形態の第1の効果と同じ効果がある。
【0115】
その理由は、第1の実施形態の第1の効果と同じである。
【0116】
代替制御装置1、代替制御装置1A、代替制御装置1Bは、それぞれ、コンピュータ及びコンピュータを制御するプログラム、専用のハードウェア、又は、コンピュータ及びコンピュータを制御するプログラムと専用のハードウェアの組合せにより実現することができる。
【0117】
図14は、代替制御装置1、代替制御装置1A、代替制御装置1Bを実現するために使用される、コンピュータ1000の構成の一例を表す図である。
図14を参照すると、コンピュータ1000は、プロセッサ1001と、メモリ1002と、記憶装置1003と、I/O(Input/Output)インタフェース1004とを含む。また、コンピュータ1000は、記録媒体1005にアクセスすることができる。メモリ1002と記憶装置1003は、例えば、RAM(Random Access Memory)、ハードディスクなどの記憶装置である。記録媒体1005は、例えば、RAM、ハードディスクなどの記憶装置、ROM(Read Only Memory)、可搬記録媒体である。記憶装置1003が記録媒体1005であってもよい。プロセッサ1001は、メモリ1002と、記憶装置1003に対して、データやプログラムの読み出しと書き込みを行うことができる。プロセッサ1001は、I/Oインタフェース1004を介して、例えば、バス2にアクセスすることができる。プロセッサ1001は、記録媒体1005にアクセスすることができる。記録媒体1005には、コンピュータ1000を代替制御装置1、代替制御装置1A、あるいは代替制御装置1Bとして動作させるプログラムが格納されている。
【0118】
プロセッサ1001は、記録媒体1005に格納されている、コンピュータ1000を代替制御装置1、代替制御装置1A、あるいは代替制御装置1Bとして動作させるプログラムを、メモリ1002にロードする。そして、プロセッサ1001が、メモリ1002にロードされたプログラムを実行することにより、コンピュータ1000は代替制御装置1、代替制御装置1A、あるいは代替制御装置1Bとして動作する。
【0119】
障害検出部10、接続制御部11、代替指示部12、命令送信部13、リセット部15、バス接続部31、バス接続部31A、バス接続部31B、信号接続部33、信号接続部33A、信号接続部33Bは、例えば、プログラムを記憶する記録媒体1005からメモリ1002に読み込まれた、各部の機能を実現するための専用のプログラムと、そのプログラムを実行するプロセッサ1001により実現することができる。また、命令記憶部14は、コンピュータが含むメモリ1002やハードディスク装置等の記憶装置1003により実現することができる。あるいは、障害検出部10、接続制御部11、代替指示部12、命令送信部13、命令記憶部14、リセット部15、バス接続部31、バス接続部31A、バス接続部31B、信号接続部33、信号接続部33A、信号接続部33Bの一部又は全部を、各部の機能を実現する専用の回路によって実現することもできる。
【0120】
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。