(57)【要約】【課題】コンピュータ上で生じるプログラムの暴走から確実に自動復旧し得る、自動復旧型コンピュータを提供する。【解決手段】作動中に突発的に生じるプログラム暴走から自動的に復旧する機能を備えた自動復旧型コンピュータ１であって、実行すべきプログラムが格納された不揮発性のプログラム格納手段３と、揮発性の記憶手段４と、演算処理手段２とからなるプログラム実行部１０を備えていて、電源６から電力供給を受けたとき、プログラム実行部１０が自動的にプログラム格納手段３に格納された上記プログラムを順次実行するようになっており、さらに、電源６からプログラム実行部１０への電力供給を所定のタイムスケジュールに基づいて停止および再開させることにより、プログラム実行部１０をリセットさせるリセット部７を備えている自動復旧型コンピュータ１とした。【選択図】図１
2007323601.tif 000002
【特許請求の範囲】
【請求項１】
作動中に突発的に生じるプログラム暴走から自動的に復旧する機能を備えた自動復旧型コンピュータであって、
実行すべきプログラムが格納された不揮発性のプログラム格納手段と、揮発性の記憶手段と、演算処理手段とからなるプログラム実行部を備えていて、
電源から電力供給を受けたとき、前記プログラム実行部が自動的に前記プログラム格納手段に格納された前記プログラムを順次実行するようになっており、さらに、
前記電源から前記プログラム実行部への電力供給を所定のタイムスケジュールに基づいて停止および再開させることにより、前記プログラム実行部をリセットさせるリセット部を備えていることを特徴とする自動復旧型コンピュータ。
【請求項２】
不揮発性の補助記憶装置と、
前記タイムスケジュールに対応するタイミングで、前記プログラム実行部の実行状態に関する情報を前記補助記憶装置に格納すると共に、前記リセット部によってリセットされたとき、前記補助記憶装置に格納された前記情報に基づき、前記プログラム実行部を前記リセット前の実行状態に復帰させるレジューム手段と、
をさらに備えていることを特徴とする請求項１に記載の自動復旧型コンピュータ。
【請求項３】
作動中に突発的に生じるプログラム暴走から自動的に復旧する機能を備えた自動復旧型コンピュータであって、
それぞれ、実行すべきプログラムが格納された不揮発性のプログラム格納手段と、揮発性の記憶手段と、演算処理手段とからなり、電源から電力供給を受けたとき、自動的に前記プログラム格納手段に格納された前記プログラムを順次実行するようになっている複数のプログラム実行部と、
前記プログラム実行部のそれぞれがアクセス可能な不揮発性の補助記憶装置と、
前記電源から前記プログラム実行部それぞれへの電力供給を所定のタイムスケジュールに基づいて停止および再開させることにより、実質的にいずれか１つの前記プログラム実行部が常時作動しているように、前記プログラム実行部を順次リセットさせるリセット部と、
前記タイムスケジュールに対応するタイミングで、作動中の前記プログラム実行部の実行状態に関する情報を前記補助記憶装置に格納すると共に、前記リセット部によって当該プログラム実行部がリセットされたとき、前記補助記憶装置に格納された前記情報に基づき、次に作動すべきプログラム実行部を作動させるレジューム手段と、
を備えていることを特徴とする自動復旧型コンピュータ。
【請求項４】
プログラム暴走を監視すべき別のコンピュータと接続するためのインターフェース部をさらに備え、
前記プログラム実行部は、前記インターフェース部を介し、プログラム実行中の前記別のコンピュータから受信した動作確認信号に基づいて前記別のコンピュータ内におけるプログラム暴走を検知したとき、前記別のコンピュータをリセットさせるようになっていることを特徴とする請求項１に記載の自動復旧型コンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、作動中に突発的に生じるプログラム暴走から自動的に復旧する機能を備えた自動復旧型コンピュータに関する。
【背景技術】
【０００２】
プログラムに従って処理を行う装置（以下、コンピュータと称する）においては、ノイズや電圧変化等の要因によりプログラムの暴走が生じ、プログラムが正常に動作しない場合がある。このため、暴走監視装置を用い、プログラムの暴走を検知したときに当該コンピュータを自動でリセットし、暴走状態から復旧させる方法が広く用いられている。
【０００３】
この暴走監視装置として従来、ウォッチドッグタイマ（以下、ＷＤＴと称する）と呼ばれるものが広く用いられている。ＷＤＴは、ＷＤＴクリア信号を発生させるサブルーチンを監視対象のコンピュータ上で実行されるプログラムに挿入し、当該サブルーチンからのＷＤＴクリア信号を所定時間内に一度も受信できない場合にプログラムの暴走が発生したと判断し、コンピュータをリセットするようにプログラムされている（例えば、特許文献１参照）。
【特許文献１】特開平７−２３０３９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、ＷＤＴクリア信号を発生させるサブルーチンが何らかの要因によって無限ループに陥ってしまった場合、ＷＤＴクリア信号が発生し続けることになるため、ＷＤＴは、プログラムの暴走が生じているにも関わらず、その暴走を検知することができなかった。
【０００５】
また、ＷＤＴ自身のプログラムが何らかの影響によって暴走することも起こり得る。この場合、ＷＤＴを監視する２次的な監視装置をさらに並設して対処することも考えられるが、その２次的な監視装置が暴走する可能性が引き続き残ることになる。したがって、監視装置自身のプログラムが暴走し得ることを考慮すると、従来の暴走監視装置を備えたコンピュータは、確実にプログラム暴走から復旧し得るものではなかった。
【０００６】
本発明は上記事情に鑑みてなされたものであり、その目的とするところは、コンピュータ上で生じるプログラムの暴走から確実に自動復旧し得る、自動復旧型コンピュータを提供することにある。  
【課題を解決するための手段】
【０００７】
上記課題を解決するために本発明は、（１）作動中に突発的に生じるプログラム暴走から自動的に復旧する機能を備えた自動復旧型コンピュータであって、実行すべきプログラムが格納された不揮発性のプログラム格納手段と、揮発性の記憶手段と、演算処理手段とからなるプログラム実行部を備えていて、電源から電力供給を受けたとき、前記プログラム実行部が自動的に前記プログラム格納手段に格納された前記プログラムを順次実行するようになっており、さらに、前記電源から前記プログラム実行部への電力供給を所定のタイムスケジュールに基づいて停止および再開させることにより、前記プログラム実行部をリセットさせるリセット部を備えていることを特徴とする自動復旧型コンピュータを提供するものである。
なお、ここでのリセットとは、電力供給を受けたときと同じ状態にすることを意味する。
【０００８】
また本発明は、上記構成において、（２）不揮発性の補助記憶装置と、前記タイムスケジュールに対応するタイミングで、前記プログラム実行部の実行状態に関する情報を前記補助記憶装置に格納すると共に、前記リセット部によってリセットされたとき、前記補助記憶装置に格納された前記情報に基づき、前記プログラム実行部を前記リセット前の実行状態に復帰させるレジューム手段と、をさらに備えていることを特徴とする自動復旧型コンピュータを提供するものである。
【０００９】
また本発明は、上記構成において、（３）作動中に突発的に生じるプログラム暴走から自動的に復旧する機能を備えた自動復旧型コンピュータであって、それぞれ、実行すべきプログラムが格納された不揮発性のプログラム格納手段と、揮発性の記憶手段と、演算処理手段とからなり、電源から電力供給を受けたとき、自動的に前記プログラム格納手段に格納された前記プログラムを順次実行するようになっている複数のプログラム実行部と、前記プログラム実行部のそれぞれがアクセス可能な不揮発性の補助記憶装置と、前記電源から前記プログラム実行部それぞれへの電力供給を所定のタイムスケジュールに基づいて停止および再開させることにより、実質的にいずれか１つの前記プログラム実行部が常時作動しているように、前記プログラム実行部を順次リセットさせるリセット部と、前記タイムスケジュールに対応するタイミングで、作動中の前記プログラム実行部の実行状態に関する情報を前記補助記憶装置に格納すると共に、前記リセット部によって当該プログラム実行部がリセットされたとき、前記補助記憶装置に格納された前記情報に基づき、次に作動すべきプログラム実行部を作動させるレジューム手段と、を備えていることを特徴とする自動復旧型コンピュータを提供するものである。
なお、上記「実質的にいずれか１つの前記プログラム実行部が常時作動している」とは、プログラム実行部それぞれの作動期間が全く重複せずに作動している状態のみを意味するものではない。すなわち、先のプログラム実行部のレジューム格納作業が完了する前に、次のプログラム実行部のレジューム復帰作業が開始されてしまうようなことがない限り、重複して作動していてもよい。
【００１０】
また本発明は、上記構成（１）において、（４）プログラム暴走を監視すべき別のコンピュータと接続するためのインターフェース部をさらに備え、前記プログラム実行部は、前記インターフェース部を介し、プログラム実行中の前記別のコンピュータから受信した動作確認信号に基づいて前記別のコンピュータ内におけるプログラム暴走を検知したとき、前記別のコンピュータをリセットさせるようになっていることを特徴とする自動復旧型コンピュータを提供するものである。
なお、ここでの「リセット」は、上記のとおり、別のコンピュータに対するリセットを意味するのであって、当該自動復旧型コンピュータが自身に対して行うリセットを意味するものではない。
【発明の効果】
【００１１】
上記のように構成された本発明の自動復旧型コンピュータによれば、プログラムが暴走しているか否かに関わらず、予め定められたタイムスケジュールに基づいてコンピュータをリセットさせるので、当該コンピュータをプログラムの暴走から確実に復旧させることができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して本発明の好ましい実施形態につき説明する。
図１は第１実施形態にかかる自動復旧型コンピュータの構成を概略的に示すブロック図、図２は第２実施形態にかかる自動復旧型コンピュータの構成を概略的に示すブロック図、図３は第３実施形態にかかる自動復旧型コンピュータの構成を概略的に示すブロック図である。
【００１３】
［第１実施形態］
本実施形態にかかる自動復旧型コンピュータ１は、図１に示す如く、プログラムに基づいて演算等の処理を行うＣＰＵ（Central Processing Unit）２、上記プログラムを不揮発的に格納するＲＯＭ（Read Only Memory）３、およびＲＯＭ３に格納されたプログラムを一時的に記憶し、ＣＰＵ２との間で必要な情報を送受信するＲＡＭ（Random Access Memory）４からなるプログラム実行部１０と、外部の電源６に接続され、プログラム実行部１０への電力供給を停止および再開させて、プログラム実行部１０をリセットさせるリセット部７とが、バス８を介して相互に接続された構成となっている。
【００１４】
リセット部７は、図１に示す如く、バス８に接続されるＡＣ−ＤＣ変換回路７ａと、外部の交流電源６に接続された主電源スイッチ７ｂと、これらの間に接続されたタイムスイッチ７ｃとからなっている。
【００１５】
主電源スイッチ７ｂは、例えば公知の手動式スイッチであって、自動復旧型コンピュータ１への電力供給を手動でＯＮ／ＯＦＦできるようになっている。そして、主電源スイッチ７ｂがＯＮになっている間、ＡＣ−ＤＣ変換回路７ａによって整流しつつ、電源６から自動復旧型コンピュータ１への電力供給がなされるようになっている。
【００１６】
また、タイムスイッチ７ｃは、計時部、タイムスケジュール記憶部、入力部および出力部（いずれも不図示）を備えた電子式タイムスイッチであって、当該入力部から予め入力され当該タイムスケジュール記憶部に格納されたタイムスケジュールと、当該計時部が計時する時間とに基づいて、電源６からプログラム実行部１０への電力供給を停止／再開させるようになっている。
すなわち、タイムスイッチ７ｃは、主電源スイッチ７ｂがＯＮになっている間、予め定められたタイムスケジュールに基づいて、プログラム実行部１０を繰り返しリセットさせ得るようになっている。
【００１７】
ＲＯＭ３に格納されたプログラムには、ＯＳ（Operating System）やユーザプログラム等が含まれており、ＲＯＭ３が電力供給を受けると、これらプログラムは順次実行される。
【００１８】
次に、上記のように構成された自動復旧型コンピュータ１の動作について説明する。
まず、主電源スイッチ７ｂをＯＮにし、自動復旧型コンピュータ１に電力を供給すると、各デバイスの初期化が行われる。
【００１９】
初期化が終了すると、ＲＯＭ３に格納されたＯＳが起動され、当該ＯＳが自動復旧型コンピュータ１を管理することとなる。
そして、オペレータが選択するか、予め選択されていたユーザプログラムが自動で実行され、自動復旧型コンピュータ１は、当該ユーザプログラムに基づいて、予定されていた作業を行う。
【００２０】
その後、リセット部７におけるタイムスイッチ７ｃが、タイムスケジュール記憶部に格納されたタイムスケジュールに基づいて（例えば主電源スイッチ７ｂがＯＮにされてから３０分後に）、プログラム実行部１０への電力供給を一旦停止させる。
【００２１】
そして、タイムスイッチ７ｃが、タイムスケジュール記憶部に格納されたタイムスケジュールに基づいて（例えば電力供給停止の数秒後に）、プログラム実行部１０への電力供給を再開する。
【００２２】
電力供給が再開されると、自動復旧型コンピュータ１は、デバイスの初期化を経た後、自動的にユーザプログラムを実行し、上記作業を再度開始する。
【００２３】
以上のように、自動復旧型コンピュータ１は、タイムスケジュール記憶部に格納されたタイムスケジュールに基づいてプログラム実行部１０を繰り返しリセットしつつ、作業を進めていくことになる。
【００２４】
上記のように構成された自動復旧型コンピュータ１は、リセット部７が、プログラム暴走が生じているか否かに関わらず、予め設定されたタイムスケジュールに基づいて自動的かつ定期的にプログラム実行部１０をリセットするようになっている。したがって、自動復旧型コンピュータ１によれば、リセットによってプログラムの実行が都度中断されるものの、プログラム実行中に生じたＯＳやユーザプログラム等の暴走により、プログラムの実行が停止したままになってしまう状態を確実に回避することができる。
【００２５】
なお、ＯＳおよびユーザプログラムがＲＯＭに格納されているため、リセットする際にシャットダウン作業が不要であり、リセットにかかる時間は少なくて済む。
［第２実施形態］
次に、本発明にかかる第２実施形態について、図面を参照しつつ説明する。なお、第１実施形態と同一の構成要素については、同一の符号を付与すると共に説明を省略する。
本実施形態にかかる自動復旧型コンピュータ１１は、図２に示す如く、プログラムに基づいて演算等の処理を行うＣＰＵ２、上記プログラムを不揮発的に格納するＲＯＭ３、およびＲＯＭ３に格納されたプログラムを一時的に記憶し、ＣＰＵ２との間で必要な情報を送受信するＲＡＭ４からなるプログラム実行部１０と、プログラム実行部１０の実行状態に関する情報を不揮発的に格納するためのＳＳＤ（Solid State Disk）５と、外部の電源６に接続され、プログラム実行部１０への電力供給を停止および再開させて、プログラム実行部１０をリセットさせるリセット部１７とが、バス８を介して相互に接続された構成となっている。
【００２６】
タイムスイッチ１７ｃは、計時部、タイムスケジュール記憶部、入力部および出力部（いずれも不図示）を備えた電子式タイムスイッチであって、当該入力部から予め入力され当該タイムスケジュール記憶部に格納されたタイムスケジュールと、当該計時部が計時する時間とに基づいて、電源６からプログラム実行部１０への電力供給を停止／再開させるようになっている。
すなわち、タイムスイッチ１７ｃは、主電源スイッチ７ｂがＯＮになっている間、予め定められたタイムスケジュールに基づいて、プログラム実行部１０を繰り返しリセットさせ得るようになっている。
【００２７】
また、タイムスイッチ１７ｃは、その出力部により、電力供給停止に対応するタイミング（例えば電力供給を停止する数分前）において、プログラム実行部１０のＣＰＵ２に対し、後述するレジュームプログラムを実行させるためのレジューム信号を送るようになっている。
【００２８】
ＲＯＭ３に格納されたプログラムには、ＯＳ、レジュームプログラム、およびユーザプログラムが含まれており、ＲＯＭ３が電力供給を受けると、これらプログラムは順次実行される。
【００２９】
レジュームプログラムは、公知のレジュームプログラムであり、ＣＰＵ２がタイムスイッチ１７ｃからのレジューム信号を受信すると、実行される。レジュームプログラムは、ＣＰＵ２によって実行されると、プログラム実行部１０の実行状態に関する情報、すなわち、ＣＰＵ２のレジスタおよびＲＡＭ４に格納された全情報をＳＳＤ５に格納する。さらに、レジュームプログラムは、タイムスイッチ１７ｃによって電力供給が再開された後、ＳＳＤ５に格納した上記実行状態に関する情報をＣＰＵ２のレジスタおよびＲＡＭ４に復帰させて、プログラム実行部１０を電力供給停止前（リセット前）の状態に戻すようになっている。
【００３０】
次に、上記のように構成された自動復旧型コンピュータ１１の動作について説明する。
まず、主電源スイッチ７ｂをＯＮにし、自動復旧型コンピュータ１１に電力を供給すると、自動復旧型コンピュータ１１における各デバイスの初期化が行われる。
【００３１】
初期化が終了すると、ＯＳが起動され、当該ＯＳが自動復旧型コンピュータ１１を管理することとなる。
次いで、レジュームプログラムがＲＯＭ３からＲＡＭ４に読み出されて実行され、ＳＳＤ５に格納された情報をプログラム実行部１０に復帰させる。（ここでは、ＳＳＤ５は初期状態であるので、レジュームプログラムによって復帰せしめられる情報は存在せず、プログラム実行部１０は初期状態のままとなる）。
そして、オペレータが選択するか、予め選択されていたユーザプログラムが自動で実行され、自動復旧型コンピュータ１１は、当該ユーザプログラムに基づいて予定されていた作業を行う。
【００３２】
その後、リセット部１７におけるタイムスイッチ１７ｃが、タイムスケジュール記憶部に格納されたタイムスケジュールに基づいて（例えば主電源スイッチ７ｂがＯＮにされてから３０分後に）、プログラム実行部１０への電力供給を一旦停止させる。
ここで、電力供給が停止されるタイミングに対応して（例えば電力供給停止の数分前に）、タイムスイッチ１７ｃの出力部によって、レジューム信号がＣＰＵ２に対して送信される。レジューム信号を受信したＣＰＵ２は、ＲＯＭ３に格納されたレジュームプログラムをＲＡＭ４に読み出して実行し、プログラム実行部１０のそのときの実行状態に関する情報をＳＳＤ５に格納する。
なお、この時点でプログラム実行部１０においてプログラム暴走が生じていた場合は、当該レジューム信号はＣＰＵ２によって正常に受信されず、レジュームプログラムは実行されない。
また、上記実行状態のＳＳＤ５への格納処理は、電力供給が停止される時までに完了するようになっている。
【００３３】
そして、タイムスイッチ１７ｃが、タイムスケジュール記憶部に格納されたタイムスケジュールに基づいて（例えば電力供給停止の数秒後に）、プログラム実行部１０への電力供給を再開する。
電力供給が再開されると、各デバイスの初期化を経た後、レジュームプログラムが、ＲＯＭ３からＲＡＭ４に読み出されて実行され、ＳＳＤ５に格納した上記実行状態に関する情報に基づいて、プログラム実行部１０を電力供給停止前（リセット前）の状態に復帰させる。
そして、リセット前の状態に復帰した自動復旧型コンピュータ１１は、中断していたユーザプログラムによる作業を再開する。
【００３４】
以上のように、自動復旧型コンピュータ１１は、タイムスケジュール記憶部に格納されたタイムスケジュールに基づいてプログラム実行部１０を繰り返しリセットすると共に、その都度レジュームプログラムによって作業を引き継ぎながら、継続して作業を進めていくことになる。
【００３５】
上記のように構成された自動復旧型コンピュータ１１は、上記第１実施形態と同様の効果を有している。
さらに、自動復旧型コンピュータ１１は、リセットされる毎にレジュームプログラムが実行されることによって、リセット前の作業をその都度引き継ぎ、継続して作業を行うことができる。
【００３６】
［第３実施形態］
次に、本発明にかかる第３実施形態について、図面を参照しつつ説明する。なお、第１実施形態または第２実施形態と同一の構成要素については、同一の符号を付与すると共に説明を省略する。
本実施形態にかかる自動復旧型コンピュータ２１は、図３に示す如く、プログラムに基づいて演算等の処理を行うＣＰＵ２、上記プログラムを不揮発的に格納するＲＯＭ３、およびＲＯＭ３に格納されたプログラムを一時的に記憶し、ＣＰＵ２との間で必要な情報を送受信するＲＡＭ４からなるプログラム実行部１０ａ，１０ｂと、プログラム実行部１０ａ，１０ｂの実行状態に関する情報を不揮発的に格納するためのＳＳＤ５と、外部の電源６に接続され、プログラム実行部１０ａ，１０ｂへの電力供給を停止および再開させて、プログラム実行部１０ａ，１０ｂをリセットするリセット部２７とが、バス８，８’に接続された構成となっている。
【００３７】
ＳＳＤ５は、バス８，８’のいずれにもアクセス可能なように、バスに対する接続状況を使用状況に応じて切り替えるためのコントローラ５１を介して、バス８，８’に接続されている。
【００３８】
リセット部２７におけるタイムスイッチ２７ｃは、計時部、タイムスケジュール記憶部、入力部および出力部（いずれも不図示）を備えた電子式タイムスイッチであって、当該入力部から予め入力されて当該タイムスケジュール記憶部に格納されたタイムスケジュールと、当該計時部が計時する時間とに基づいて、電源６からプログラム実行部１０ａ，１０ｂへの電力供給を停止／再開させるようになっている。
すなわち、タイムスイッチ２７ｃは、主電源スイッチ７ｂがＯＮになっている間、予め定められたタイムスケジュールに基づいて、プログラム実行部１０ａ，１０ｂを順次かつ繰り返しリセットさせ得るようになっている。
【００３９】
また、タイムスイッチ２７ｃは、その出力部により、プログラム実行部１０ａまたは１０ｂに対する電力供給停止に対応するタイミング（例えば電力供給を停止する数分前）において、その電力供給を停止する側のプログラム実行部のＣＰＵ２に対し、レジュームプログラムを実行させるためのレジューム信号を送るようになっている。
【００４０】
次に、上記のように構成された自動復旧型コンピュータ２１の動作について説明する。
まず、主電源スイッチ７ｂをＯＮにし、自動復旧型コンピュータ２１に電力を供給すると、タイムスイッチ２７ｃによってプログラム実行部１０ａに電力が供給され（本実施形態においては、最初、プログラム実行部１０ａに電力供給がなされるものとする）、プログラム実行部１０ｂを除いた各デバイスの初期化が行われる。
【００４１】
初期化が終了すると、プログラム実行部１０ａにおいてＯＳが起動され、当該ＯＳが自動復旧型コンピュータ２１を管理することとなる。
次いで、レジュームプログラムがＲＯＭ３からＲＡＭ４に読み出されて実行され、ＳＳＤ５に格納された情報をプログラム実行部１０ａに復帰させる。（ここでは、ＳＳＤ５は初期状態であるので、レジュームプログラムによって復帰せしめられる情報は存在せず、プログラム実行部１０ａは初期状態のままとなる）。
そして、プログラム実行部１０ａにおいて、オペレータが選択するか、予め選択されていたユーザプログラムが自動的に実行され、自動復旧型コンピュータ２１は、当該ユーザプログラムに基づいて予定されていた作業を行う。
【００４２】
その後、リセット部２７におけるタイムスイッチ２７ｃが、タイムスケジュール記憶部に格納されたタイムスケジュールに基づいて（例えば主電源スイッチ７ｂがＯＮにされてから１時間後に）、プログラム実行部１０ａへの電力供給を一旦停止させると共に、他方のプログラム実行部１０ｂへの電力供給を開始する。なお、この際、他方のプログラム実行部１０ｂへの電力供給は、プログラム実行部１０ａへの電力供給が停止される少し前から前倒しで開始され、プログラム実行部１０ａにおけるレジューム退避処理の終了から、プログラム実行部１０ｂにおけるレジューム復帰処理の開始までの無駄時間が極力少なくなるようになっている。
【００４３】
また、プログラム実行部１０ａは、このとき、電力供給が停止されるタイミングに対応して、タイムスイッチ２７ｃの出力部によって、レジューム信号がＣＰＵ２に対して送信される。レジューム信号を受信したＣＰＵ２は、プログラム実行部１０ａにおいて、ＲＯＭ３に格納されたレジュームプログラムをＲＡＭ４に読み出して実行し、プログラム実行部１０ａのそのときの実行状態に関する情報をＳＳＤ５に格納する。
なお、この時点でプログラム実行部１０ａにおいてプログラム暴走が生じていた場合は、当該レジューム信号はＣＰＵ２によって正常に受信されず、レジュームプログラムは実行されない。
なお、上記実行状態のＳＳＤ５への格納処理は、電力供給が停止される時までに完了するようになっている。
【００４４】
他方、上述したように前倒しで電力供給が開始されたプログラム実行部１０ｂは、プログラム実行部１０ａの実行状態に関する情報がＳＳＤ５へ格納されるときまでに、自身のレジュームプログラムを実行可能な状態まで起動されている。その後、プログラム実行部１０ｂは、レジュームプログラムがＲＯＭ３からＲＡＭ４に読み出されて実行されることにより、ＳＳＤ５に格納された上記実行状態に関する情報に基づいて、プログラム実行部１０ａの電力供給停止前（リセット前）の作動状態になる。
そして、プログラム実行部１０ａのリセット前の作動状態となったプログラム実行部１０ｂは、中断していたユーザプログラムによる作業を再開する。
【００４５】
このように、自動復旧型コンピュータ２１は、タイムスケジュールに基づいてプログラム実行部１０ａ，１０ｂを繰り返しリセットする際、一方のプログラム実行部の電力供給停止の少し前から前倒しで他方のプログラム実行部への電力供給を開始し、レジューム退避処理の終了からレジューム復帰処理の開始までの無駄時間が極力少なくなるようにしつつ、リセットの都度レジュームプログラムによって作業を引き継ぎながら、継続して作業を進めていくことになる。
【００４６】
上記のように構成された自動復旧型コンピュータ２１は、上記第１実施形態および第２実施形態と同様の効果を有している。
さらに、自動復旧型コンピュータ２１によれば、上述の如く、一方のプログラム実行部の電力供給停止の少し前から前倒しで他方のプログラム実行部への電力供給を開始することにより、リセットによって生じてしまう作業の中断時間を極力少なくすることができ、作業の連続性を向上させることができる。
【００４７】
［変形例］
以上、具体例を例示しつつ、本発明の実施の形態について説明したが、本発明はこれらの具体例に限定されるものではない。
【００４８】
上記各実施形態においては、本発明にかかる自動復旧型コンピュータ自身がオペレータ所望の作業を実施するように構成されていたが、当該作業を別のコンピュータが行い、本発明にかかる自動復旧型コンピュータは、その別のコンピュータによる当該作業のサポートを行うように構成してもよい。
例えば、図４に示す如く、別のコンピュータＣにおいて突発的に生じるプログラム暴走を監視するための自動復旧型コンピュータ３１であって、上記第１実施形態の構成において、別のコンピュータＣに接続可能なインターフェース９がバス８に接続されたものとし、さらに、ＲＯＭ３に格納されたユーザプログラムには、インターフェース９を介して別のコンピュータＣにおけるプログラム暴走を監視するプログラムが含まれているように構成してもよい。
なお、上記別のコンピュータＣにおけるプログラム暴走を監視するプログラムは、公知のものであってよく、プログラム実行中の別のコンピュータＣからインターフェース９を介して受信した確認信号に基づいて、別のコンピュータＣにおけるプログラム暴走を検知したとき、別のコンピュータＣをリセットさせるものであってよい。
この場合、自動復旧型コンピュータ３１が行う作業は、別のコンピュータＣを監視し、当該コンピュータＣ上においてプログラム暴走が発生すれば当該コンピュータＣをリセットさせるものであり、オペレータが所望する作業は、監視対象である別のコンピュータＣ上で行われていることになる。
つまり、自動復旧型コンピュータ３１は、別のコンピュータＣからインターフェース９を介して確認信号を受信する際に起動されていればよく、短い間隔で頻繁に（例えば数十秒毎に）、自分自身に対するリセットを繰り返し行っても何ら問題がない。
したがって、自動復旧型コンピュータ３１によれば、自分自身に対するリセットを頻繁に繰り返すことにより、当該コンピュータ３１上でプログラム暴走が生じて監視作業が滞る状況をほぼ完全に回避することができ、ひいては、監視対象である別のコンピュータＣ上で実行されているオペレータ所望の作業を着実に進行させることができる。
なお、この例において、インターフェース９を介して接続される別のコンピュータＣを複数とし、自動復旧型コンピュータ３１がそれぞれのコンピュータＣを監視し得るように構成してもよい。
【００４９】
また、上記第３実施形態においては、プログラム実行部１０ａ，１０ｂに対して共通のリセット部２７を設けたが、これに替えて図５に示す如く、プログラム実行部１０ａ，１０ｂそれぞれに対応するＡＣ−ＤＣ変換回路７ａ，７ａおよびタイムスイッチ１７ｃ，１７ｃと、これらに共通の主電源スイッチ７ｂとからなるリセット部３７を設けてもよい。
この場合、２出力が必要であったタイムスイッチ２７ｃに替えて、単出力のシンプルなタイムスイッチ１７ｃを用いることができる。
【００５０】
また、上記第３実施形態においては、プログラム実行部１０ａ，１０ｂを、バス８，８’を介してリセット部２７に接続して構成したが、図６に示す如く、プログラム実行部１０ａ，１０ｂそれぞれにインターフェース９を設け、このインターフェース９を介してそれぞれを接続することにより、コントローラ５１が不要となるように構成してもよい。
【００５１】
また、図７に示す如く、プログラム実行部１０ａ，１０ｂそれぞれにインターフェース９およびリセット部１７を設けると共にプログラム実行部１０ａにＳＳＤ５を設け、プログラム実行部１０ａ，１０ｂに関してそれぞれ独立したユニット５１ａ，５１ｂを構成し、さらに、インターフェース９を介してこれらを接続して自動復旧型コンピュータ５１としてもよい。この場合、インターフェース９を介して接続するユニットの数を変更することにより、自動復旧型コンピュータ５１の構成を状況に応じて容易に変更することができる。
例えば、ＳＳＤを備えたユニット５１ａをレジュームサーバとして機能させ、複数のユニット５１ｂがそれぞれ、レジュームサーバにレジューム退避しながらユーザプログラムを継続して実行するように構成してもよい。
なお、このとき、レジュームサーバとして機能するユニット５１ａが、ある１つのユニット５１ｂにおけるリセットの際、そのユニットのユーザプログラムを実行することで、リセットの際に生じる作業の中断時間を短縮するように構成してもよい。逆に、ユニット５１ａにおけるリセットの際、ユニット５１ｂが、そのユーザプログラムを実行することで、その中断時間を短縮するように構成してもよい。
また、複数のユニット５１ｂが、レジュームサーバを利用しつつ、１つの作業をそれらの間で引き継ぎながら実行するように構成してもよい。
また、ＳＳＤを持たない複数のユニット５１ｂを、インターフェース９を介して相互に接続し、直接的にレジュームデータを送受信することにより、ユーザ所望のプログラムの連続性と中断時間の短縮を図ってもよい。
【００５２】
また、複数のユニット５１ａ，５１ｂ（図７参照）が、それぞれのインターフェース９を介して相互に接続された形態をつくり、この混在形態中で、自身のタイムスイッチ内における所定のタイムスケジュールに基づき、ユニットの起動／終了を繰り返し実行しながら待機するユニット（中断時間の短縮やリセット前の状態への復帰処理に寄与していないユニット）が複数存在するように構成してもよい。
この場合において、あるユニットが、リセット動作に伴い、レジュームによる復帰やその際の中断時間の短縮が必要となったとき、当該ユニットから他のユニットへの接続要求信号（依頼内容、タイムスケジュールデータ含む）を送信するようにし、その接続要求信号を受信した上記待機ユニットが対応可能と判断した場合、接続要求元のユニットへ受託可能信号を送り、その内の１つの待機ユニットが上記接続要求信号に対応する処理を実行するようにしてもよい。
このように構成することで、レジュームによる復帰やその際の中断時間の短縮に関する処理を担当するユニットが無いという状況を極力無くすことができる。
また、この混在形態中に存在する全てのユニットは、ユーザプログラムの実行の必要が無くなった場合、上記待機ユニットになり得るようにしてもよい。
【００５３】
また、上記第１実施形態において、電力供給の停止から再開までの時間間隔を数秒としたが、当該時間間隔は、本発明にかかる自動復旧型コンピュータが行う作業の内容に応じて、適宜選択することができる。すなわち、連続性が重要な作業であって中断期間を極力短縮する必要がある場合は上記時間間隔をさらに短くし、中断期間は長くてもよいが省電力化が重要であるような場合は上記時間間隔を長くすればよい。
【００５４】
また、レジュームプログラムが実行される各実施形態において、レジュームプログラムは、ＣＰＵがタイムスイッチからのレジューム信号を受信すると実行開始されるようになっているが、プログラム実行部内のユーザプログラムからレジュームプログラムを実行開始するようにしてもよい。また、レジュームプログラムが、補助記憶装置内に格納したレジュームプログラム用タイムスケジュールに基づいて、所定期間経過毎にレジューム作業を開始するようにしてもよい。また、レジュームプログラム起動用プログラムが、レジュームプログラム用タイムスケジュールに基づいて、所定期間経過毎にレジュームプログラムを起動するようにしてもよい。ただし、レジュームプログラム開始のタイミングと、電力供給の停止／再開のタイムスケジュールとが対応するように（例えば、レジュームプログラム実行中に電力供給が停止されるようなことがないように）、構成される。
この場合、タイムスイッチにレジューム信号を送信する機能を付加する必要がなく、タイムスケジュールに基づいてＯＮ／ＯＦＦするだけの単純なタイムスイッチを使用することができる。
【００５５】
また、レジュームプログラムが実行される実施形態において、ＳＳＤを複数設けるか、もしくはＳＳＤ内の情報格納領域を複数設けて、レジュームプログラムによって格納される実行状態に関する情報が、それらに順番に格納されるように構成してもよい。このように構成することにより、レジュームプログラムによる情報格納処理中に、プログラム暴走が生じて正常に情報格納処理が終了できなかった場合でも、その前回に格納した情報に基づいてレジューム復帰処理を行うことができる。
【００５６】
また、上記各実施形態において、外部の電源６を交流電源としたが、もちろんバッテリなどの直流電源であってもよい。この場合、ＡＣ−ＤＣ変換回路７ａは、ＤＣ−ＤＣ変換回路に換えて構成される。
【００５７】
また、上記各実施形態においては、プログラム実行部をＣＰＵ、ＲＯＭおよびＲＡＭによって構成したが、基本的な論理素子を組み合わせてなる単純な論理回路によって構成してもよい。
【００５８】
また、自動復旧型コンピュータを、モニタやキーボード等をさらに備えたものとして構成してもよく、その場合、それらの作業状態に関する情報をもレジュームプログラムによって退避／復帰させるように構成することもできる。
【００５９】
また、上記各実施形態においては、タイムスイッチは電子式のものを用いたが、公知のタイムスイッチであってよく、ゼンマイ式等の機械式、クオーツモータ式または交流モータ式のタイムスイッチであってよい。
【００６０】
また、上記各実施形態におけるＲＯＭ３は、読取り専用の不揮発性の記憶装置であればよく、ＣＤ−ＲＯＭドライブやＤＶＤドライブ等の光ディスクドライブであってもよい。
【図面の簡単な説明】
【００６１】
【図１】第１実施形態にかかる自動復旧型コンピュータの構成を概略的に示すブロック図である。
【図２】第２実施形態にかかる自動復旧型コンピュータの構成を概略的に示すブロック図である。
【図３】第３実施形態にかかる自動復旧型コンピュータの構成を概略的に示すブロック図である。
【図４】変形例にかかる自動復旧型コンピュータの構成を概略的に示すブロック図である。
【図５】別の変形例にかかる自動復旧型コンピュータの構成を概略的に示すブロック図である。
【図６】さらに別の変形例にかかる自動復旧型コンピュータの構成を概略的に示すブロック図である。
【図７】さらに別の変形例にかかる自動復旧型コンピュータの構成を概略的に示すブロック図である。
【符号の説明】
【００６２】
１  自動復旧型コンピュータ
２  ＣＰＵ（演算処理手段）
３  ＲＯＭ（プログラム格納手段）
４  ＲＡＭ（記憶手段）
５  ＳＳＤ（補助記憶装置）
６  電源
７  リセット部
１０  プログラム実行部
【図１】
2007323601.tif 000003
【図２】
2007323601.tif 000004
【図３】
2007323601.tif 000005
【図４】
2007323601.tif 000006
【図５】
2007323601.tif 000007
【図６】
2007323601.tif 000008
【図７】
2007323601.tif 000009