(57)【要約】【課題】コンピュータ装置において、起動不良による動作停止を回避し、自動的に再起動する。【解決手段】キーボードを備えるコンピュータ装置において、コンピュータ装置を起動するとき自己診断を行う自己診断手段と、コンピュータ装置とキーボードの通信状態を監視する監視手段と、前記自己診断手段による自己診断結果又は前記監視手段による監視結果が起動異常を示すときコンピュータ装置及びキーボードをリセットするリセット手段を備える。また、前記リセット手段によるリセット回数をカウントするカウント手段と、前記カウント手段がカウントしたリセット回数が予め定めた回数以上であるか否かを判別する回数判別手段と、前記回数判別手段によってリセット回数が予め定めた回数以上であると判別されたとき警報を出力する警報出力手段を備える。【選択図】　図１
2004094455.tif 000002
【特許請求の範囲】
【請求項１】
キーボードを備えるコンピュータ装置において、コンピュータ装置を起動するとき自己診断を行う自己診断手段と、コンピュータ装置とキーボードの通信状態を監視する監視手段と、前記自己診断手段による自己診断結果又は前記監視手段による監視結果が起動異常を示すときコンピュータ装置及びキーボードをリセットするリセット手段を備えることを特徴とするコンピュータ装置。
【請求項２】
請求項１に記載のコンピュータ装置であって、前記リセット手段によるリセット回数をカウントするカウント手段と、前記カウント手段がカウントしたリセット回数が予め定めた回数以上であるか否かを判別する回数判別手段と、前記回数判別手段によってリセット回数が予め定めた回数以上であると判別されたとき警報を出力する警報出力手段を備えることを特徴とするコンピュータ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータ装置に関するものである。
【０００２】
【従来の技術】
パーソナルコンピュータ（ＰＣ：Ｐｅｒｓｏｎａｌ　Ｃｏｍｐｕｔｅｒ）等のコンピュータ装置における不具合は、部品の経年変化及び寿命に起因するもの（例：冷却ファンの故障による温度上昇）、外的要因（例：停電）に起因するものがある。部品の経年変化及び寿命、停電に起因するものについては、冷却ファンの回転状態、コンピュータ装置に接続した無停電電源装置等の停電信号を、コンピュータ装置内のＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）が監視することによって検出することができる。
【０００３】
このような従来の技術の例が、特開２００１−９２７３８公報「コンピュータのサーバのシステム保全及びデータ保護システム」に記載されている。これは、障害監視ボード（停電・電圧・温度監視用）及び予備ユニット（予備電源、予備ハードディスク等）をコンピュータに備え、停電が発生した場合、予備電源に切り替えて電力を供給し、緊急停止処理を行った後、停電から復旧したことを検出した場合、自動的に電力の再供給を行ったり、正常な温度範囲を越える温度上昇時に、ハードディスクに記憶されたデータを予備ハードディスクにバックアップしたりすることによって、コンピュータのサーバのシステムの障害発生時の対応、及びデータの保護を行うことができるようにするものである。
【０００４】
ＰＣにおける不具合として、ＰＣ上でアプリケーションプログラムを動作させたとき、アプリケーションプログラムが確保したメモリを動作終了後も解放しないことにより使用可能なメモリ容量が低減し（メモリリーク）、ＰＣが停止しキーボードやマウスの入力を受け付けなくなること（ハングアップ）がある。
メモリリークによるＰＣのハングアップを回避する方法としては、ＰＣのプログラムによって使用可能なメモリ容量を監視し、使用可能なメモリ容量が一定値以下になった場合にＰＣを自動的に再起動するという方法が一般的に用いられている。
【０００５】
また、ＰＣにおける不具合として、電源スイッチを入れて装置を起動する場合、又はリセットして再起動する場合における起動不良がある。起動不良とは、ＰＣの起動処理が途中で停止し起動しないことであり、原因としては、振動や塵埃等による各種コネクタの接触不良などがある。
【０００６】
【発明が解決しようとする課題】
従来の技術において、コンピュータ装置の電源スイッチを入れて起動した場合、又はリセット操作による再起動を行った場合に、起動不良が発生し、コンピュータ装置を起動することができない場合があった。
本発明が解決しようとする課題は、コンピュータ装置において、起動不良が発生した場合、自動的に再起動を行い、可能な限り、起動不良によるコンピュータ装置の停止を回避することにある。
【０００７】
【課題を解決するための手段】
本発明の請求項１に記載のコンピュータ装置は、キーボードを備えるコンピュータ装置において、コンピュータ装置を起動するとき自己診断を行う自己診断手段と、コンピュータ装置とキーボードの通信状態を監視する監視手段と、前記自己診断手段による自己診断結果又は前記監視手段による監視結果が起動異常を示すときコンピュータ装置及びキーボードをリセットするリセット手段を備えるものである。
【０００８】
本発明の請求項２に記載のコンピュータ装置は、請求項１に記載のコンピュータ装置であって、前記リセット手段によるリセット回数をカウントするカウント手段と、前記カウント手段がカウントしたリセット回数が予め定めた回数以上であるか否かを判別する回数判別手段と、前記回数判別手段によってリセット回数が予め定めた回数以上であると判別されたとき警報を出力する警報出力手段を備えるものである。
【０００９】
【発明の実施の形態】
図１は、本発明のコンピュータ装置の一実施例の構成を示すブロック図である。主ＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）１は、演算処理を行うものであり、プログラムを実行する。また、主ＣＰＵ１は、コンピュータ装置の電源スイッチを入れて（ＯＮ）起動するとき、又はコンピュータ装置がリセットされて再起動するときに、自己診断（ＰＯＳＴ：Ｐｏｗｅｒ　Ｏｎ　Ｓｅｌｆ　Ｔｅｓｔ）を行い、自己診断結果を示すＰＯＳＴコードを出力する。
【００１０】
監視回路２は、主ＣＰＵ１に接続され、コンピュータ装置の電源電圧、温度、空冷ファンの回転状態を監視する。インタフェース回路３は、主ＣＰＵ１に接続され、メモリ４、ビデオインタフェース５とバス６との間のデータの入出力を行う。メモリ４は、インタフェース回路３に接続され、コンピュータ装置で実行されるプログラム、プログラムの実行に使用されるデータ等を記憶する。ビデオインタフェース５は、インタフェース回路３に接続され、画像表示データの入出力を行う。
【００１１】
バス６には、インタフェース回路３、通信入出力回路７、インタフェース回路９が接続され、データの伝送を行う。バス６は、図示しないが、ハードディスクの接続、ネットワーク通信用のＬＡＮ（Ｌｏｃａｌ　Ａｒｅａ　Ｎｅｔｗｏｒｋ）入出力回路の接続、システム監視用カードの接続にも用いられる。通信入出力回路７は、バス６、シリアルインタフェース回路１１、スイッチ１２に接続され、シリアル通信、キーボード通信の入出力を行う。
【００１２】
副ＣＰＵ８は、主ＣＰＵ１の動作を監視するためのＣＰＵであり、主ＣＰＵ１に接続され、インタフェース回路９を介してバス６に接続される。インタフェース回路９は、副ＣＰＵ８とバス６との間のデータの入出力を行う。フラッシュメモリ１０は、副ＣＰＵ８に接続され、ＰＯＳＴコード、エラーコードを記憶する。シリアルインタフェース回路１１は、通信入出力回路７及び副ＣＰＵ８に接続され、シリアル通信の入出力を行う。主ＣＰＵ１と副ＣＰＵ８は、インタフェース回路３、バス６、通信入出力回路７、シリアルインタフェース回路１１を介してデータの通信をする。
【００１３】
スイッチ１２は、副ＣＰＵ８に接続され、通信入出力回路７とコンソールエミュレータ１４との間の通信（キーボード通信）の接続（ＯＮ）と切断（ＯＦＦ）を切り換える。通信入出力回路７のキーボード通信線は、副ＣＰＵ８に接続される。
【００１４】
リセットスイッチ１３は、副ＣＰＵ８に接続され、副ＣＰＵ８のリセット操作を行う。インタフェース回路９は、バス６に接続されるが、バス６を介して伝送されるリセット信号の副ＣＰＵ８への入力を阻止する。副ＣＰＵ８は、主ＣＰＵ１の動作を監視するため、リセットスイッチ１３によってのみリセットされる構成とする。
【００１５】
コンソールエミュレータ１４には、スイッチ１２、キーボード１５、マウス１６が接続される。コンソールエミュレータ１４は、キーボード１５、マウス１６を外した場合であっても、コンピュータ装置によりキーボードやマウスと同様に認識される。本実施例では、通信入出力回路７にスイッチ１２を介してコンソールエミュレータ１４を接続し、コンソールエミュレータ１４にキーボード１５、マウス１６を接続することによって、コンピュータ装置の電源スイッチがＯＮされ動作している状態で、キーボード１５、マウス１６を着脱することができる。アラーム出力部１７は、副ＣＰＵ８に接続され、使用者に起動不良を伝える警報（アラーム）を、文字表示、音声等で出力する。
なお、本実施例は、コンソールエミュレータ１４を介してキーボード１５をスイッチ１２、通信入出力回路７に接続する構成としたが、コンソールエミュレータ１４を介さずに、キーボード１５をスイッチ１２、通信入出力回路７に直接接続する構成として、実施することもできる。
【００１６】
図２は、本実施例の通信入出力回路７とコンソールエミュレータ１４の接続の詳細構成を示す図である。通信入出力回路７とコンソールエミュレータ１４は、データ（ＤＡＴＡ）線とクロック（ＣＬＫ）線により、双方向の通信を行う。ＤＡＴＡはシリアル通信で伝送されるデータ、ＣＬＫはＤＡＴＡが有効であることを示す信号である。主ＣＰＵ１は、通信入出力回路７、バッファ回路１８を介してコンソールエミュレータ１４を制御するためのコマンドをコンソールエミュレータ１４に送信する。コンソールエミュレータ用の電力（＋５Ｖ）は、コンピュータ装置本体の電源から供給される。
【００１７】
コンソールエミュレータ１４は、ＤＡＴＡ線、ＣＬＫ線が、バッファ回路１９を介してマイクロコンピュータ（マイコン）２０に接続される。キーマトリックス２１は、マイコン２０に接続され、入力されたキーのデータをマイコン２０に入力する。
【００１８】
通信入出力回路７、マイコン２０のＤＡＴＡ線及びＣＬＫ線の入出力は、各々、オープンコレクタタイプのバッファ回路１８、１９を介して接続されているので、双方が同時に出力しても動作停止又は動作不良を起こさない回路構成である。ＤＡＴＡ線、ＣＬＫ線、＋５Ｖの電力供給線は、副ＣＰＵ８によって制御されるスイッチ１２によってＯＮとＯＦＦが切り換えられる。スイッチ１２をＯＦＦすることによって、マイコン２０はリセットされる。ここで、電力供給線だけでなく、ＤＡＴＡ線、ＣＬＫ線もＯＮとＯＦＦを切り換える構成としたのは、ＤＡＴＡ線、ＣＬＫ線を接続したままの状態で電力供給線だけをＯＦＦしても、バッファ回路１９内のＤＡＴＡ線、ＣＬＫ線に接続されたダイオードを経由してコンソールエミュレータ１４に電力が供給されるのでリセットがかからないためである。
【００１９】
図３は、本実施例の通信入出力回路７とコンソールエミュレータ１４との通信状況を示す図である。コンピュータ装置の起動処理において、通信入出力回路７からコンソールエミュレータ１４に、ＣＰＵ１がコンソールエミュレータ１４を認識するためのコマンド「イネーブル」を示すコードＦ４ｈが送信される。次に、コンソールエミュレータ１４から通信入出力回路７に、受信確認（ＡＣＫ）を示すコードＦＡｈが送信される。
【００２０】
通信入出力回路７からコンソールエミュレータ１４に、マイコン２０のリセットと自己診断（ＢＡＴ）を指示するコマンド「リセット」を示すコードＦＦｈが送信される。次に、コンソールエミュレータ１４から通信入出力回路７に、受信確認（ＡＣＫ）を示すコードＦＡｈが送信される。
コンソールエミュレータ１４から通信入出力回路７に、リセットコマンド受信後の自己診断の終了を示すコードＡＡｈが送信される。
【００２１】
ここで、コンピュータ装置が再起動されると、通信入出力回路７からコンソールエミュレータ１４に、コンソールエミュレータ１４からのＤＡＴＡ送信を禁止するＣＬＫ＝Ｌが送信される。
通信入出力回路７からコンソールエミュレータ１４に、マイコン２０のリセットと自己診断（ＢＡＴ）を指示するコマンド「リセット」を示すコードＦＦｈが送信される。次に、コンソールエミュレータ１４から通信入出力回路７に、受信確認（ＡＣＫ）を示すコードＦＡｈが送信される。
コンソールエミュレータ１４から通信入出力回路７に、リセットコマンド受信後の自己診断の終了を示すコードＡＡｈが送信される。
【００２２】
コンピュータ装置の正常時の起動処理は、図３に示したパターンで毎回行われる。そこで、起動処理における通信状況（送受信されるコード、コードの送受信される順番）をフラッシュメモリ１０に記憶しておき、副ＣＰＵ８は、起動処理の通信状況をフラッシュメモリ１０に記憶した正常時の通信状況と比較し、比較結果が異なる場合に異常が発生したと判断する。
【００２３】
副ＣＰＵ８は、主ＣＰＵ１とコンソールエミュレータ１４との通信状況を監視し、通信が異常であると判断した場合、主ＣＰＵ１にリセット信号を送信しリセットをかけ、スイッチ１２を制御してコンソールエミュレータ１４への電力供給及び信号線を切断した後に接続し再起動させる。
副ＣＰＵ８は、主ＣＰＵ１とコンソールエミュレータ１４の通信状況の監視に加えて、主ＣＰＵ１がバス６を介して出力するＰＯＳＴコードを受信し監視する。
【００２４】
主ＣＰＵ１は、コンピュータ装置の電源スイッチを入れたときに、主ＣＰＵ１、インタフェース回路３などの主要な回路を自己診断する。ＰＯＳＴコードは、自己診断が終了したステップを示し、インタフェース回路３を介してバス６に出力される。副ＣＰＵ８は、自己診断が停止したときのＰＯＳＴコードを受信し、フラッシュメモリ１０に記憶した後、主ＣＰＵ１をリセットし、再起動させる。主ＣＰＵ１他の回路に不具合があって自己診断が途中で停止すると、ＰＯＳＴコードは自己診断が停止したステップを示すので、使用者はＰＯＳＴコードを知ることによって不具合がある回路を判断することができる。
【００２５】
副ＣＰＵ８は、キーボード通信の監視、ＰＯＳＴコードの監視に加え、シリアル通信を利用して、ＯＳ（Ｏｐｅｒａｔｉｎｇ　Ｓｙｓｔｅｍ）の起動、アプリケーションプログラムの起動を監視する。
アプリケーションプログラムが起動したとき、主ＣＰＵ１は副ＣＰＵ８にシリアルインタフェースを介して起動終了を示すデータを送信し、副ＣＰＵ８は、アプリケーションプログラムが起動したと判断する。
正常時のコンピュータ装置の起動時間を予め測定して、タイムアウト時間を決めてフラッシュメモリ１０に記憶しておく。ＯＳ及びアプリケーションプログラムがタイムアウト時間を経過した後も起動しない場合に、副ＣＰＵ８から主ＣＰＵ１にリセットをかけ、再起動する。
【００２６】
図４は、本実施例の副ＣＰＵ８の動作を示すフローチャートである。コンピュータ装置の電源スイッチがＯＮされると、副ＣＰＵ８は起動回数のカウントを１にセットする（ＳＴ１）。これは、コンピュータ装置に不具合が発生した場合、再起動を延々と繰り返していつまでもアラームを出力できないことを防止し、再起動の回数を制限するためである。
【００２７】
次に、時間の計測を開始する（ＳＴ２）。副ＣＰＵ８は、通信入出力回路７とコンソールエミュレータ１４とのキーボード通信の状態を監視し、コンソールエミュレータ１４が自己診断を終了したとき通信入出力回路７に出力するコード＝ＡＡｈを、時間の計測開始後１０秒経過する前に受信した場合、コンピュータ装置の動作を正常と判断する（ＳＴ３ａ，ＳＴ３ｂ）。ここで、１０秒経過するまでに、ＡＡｈを受信しなかった場合、副ＣＰＵ８は、バスインタフェース９、バス６を介して主ＣＰＵ１からのＰＯＳＴコードを受信し、フラッシュメモリ１０に、ＰＯＳＴコード、及びＡＡｈを受信しなかったことを示すエラーコードを記憶する（ＳＴ３ａ，ＳＴ３ｂ，ＳＴ７）。エラーコードは、予め副ＣＰＵ８に記憶されている。
【００２８】
副ＣＰＵ８は、バス６、バスインタフェース９を介して主ＣＰＵ１からＰＯＳＴコードを受信し、時間の計測開始後３０秒経過する前に主ＣＰＵ１の自己診断を終了し起動した状態を示すＰＯＳＴコード＝ＦＦｈを受信した場合、コンピュータ装置の動作を正常と判断する（ＳＴ４ａ，ＳＴ４ｂ）。副ＣＰＵ８は、３０秒経過するまでにＰＯＳＴコード＝ＦＦｈを受信しなかった場合、フラッシュメモリ１０にＰＯＳＴコード、及びＦＦｈを受信しなかったことを示すエラーコードを記憶する（ＳＴ４ａ，ＳＴ４ｂ，ＳＴ７）。
【００２９】
主ＣＰＵ１による自己診断が正常に終了した後、コンピュータ装置のＯＳ（Ｏｐｅｒａｔｉｎｇ　Ｓｙｓｔｅｍ）が起動し、ＯＳによってマウスの接続検出が行われ、シリアル通信の通信レートが、例えば、１９２００ｂｐｓから９６００ｂｐｓに切り替わる。副ＣＰＵ８は、このシリアル通信の通信レートの切り替わりによってＯＳの起動を判断することができる。時間の計測開始後３分経過する前に通信レートが切り替われば、副ＣＰＵ８は、コンピュータ装置のＯＳが正常に起動したと判断する（ＳＴ５ａ，ＳＴ５ｂ）。３分経過するまでに通信レートが切り替わらない場合、副ＣＰＵ８は、フラッシュメモリ１０にＯＳの起動不良を示すエラーコードを記憶する（ＳＴ５ａ，ＳＴ５ｂ，ＳＴ７）。
【００３０】
副ＣＰＵ８は、主ＣＰＵ１からアプリケーションプログラムの起動終了後にシリアルインタフェース回路１１を介して送信される起動終了通知を、時間の計測開始後１０分経過する前に受信すれば、アプリケーションプログラムが正常に起動したと判断する（ＳＴ６ａ，ＳＴ６ｂ）。１０分経過するまでに起動終了通知を受信しない場合、副ＣＰＵ８は、フラッシュメモリ１０にアプリケーションプログラムの起動不良を示すエラーコードを記憶する（ＳＴ６ａ，ＳＴ６ｂ，ＳＴ７）。
以上の各処理で正常と判断されなかった場合（ＳＴ３ｂ，ＳＴ４ｂ，ＳＴ５ｂ，又はＳＴ６ｂでＹＥＳ）、起動回数のカウントが１であれば２にセットした後、主ＣＰＵ１とコンソールエミュレータ１４をリセットし、ＳＴ２の時間計測開始に戻って再起動する（ＳＴ８，ＳＴ１０〜ＳＴ１５）。
【００３１】
起動回数のカウントが２であった場合、再起動をしても回復できなかったと判断し、副ＣＰＵ８は、アラーム出力部１７を介して、使用者に起動不良を伝えるアラームを、文字表示、音声等で出力する（ＳＴ８，ＳＴ９）。アラームを出力する場合、フラッシュメモリ１０に記憶されたエラーコード、ＰＯＳＴコードを併せて出力することにより、使用者は不具合のあった箇所を判断することができる。
【００３２】
図４で説明した、起動回数の制限値、コンピュータ装置の動作を正常と判断するための経過時間は、実際に使用されるコンピュータ装置に対応して変更して実施することができる。
【００３３】
【発明の効果】
本発明のコンピュータ装置によれば、コンピュータ装置の起動不良による動作停止を回避し、再起動することができる。
本発明のコンピュータ装置によれば、コンピュータ装置の再起動を繰り返し行って起動しない場合、警報を出力することができる。
【図面の簡単な説明】
【図１】本発明のコンピュータ装置の一実施例の構成を示すブロック図である。
【図２】本実施例の通信入出力回路７とコンソールエミュレータ１４の接続の詳細構成を示す図である。
【図３】本実施例の主ＣＰＵ１とコンソールエミュレータ１４との通信状態を示す図である。
【図４】本実施例の副ＣＰＵ８の動作を示すフローチャートである。
【符号の説明】
１　主ＣＰＵ
２　監視回路
３、９　インタフェース回路
４　メモリ
５　ビデオインタフェース
６　バス
７　通信入出力回路
８　副ＣＰＵ
１０　フラッシュメモリ
１１　シリアルインタフェース回路
１２　スイッチ
１３　リセットスイッチ
１４　コンソールエミュレータ
１５　キーボード
１６　マウス
１７　アラーム出力部
１８、１９　バッファ回路
２０　マイクロコンピュータ（マイコン）
２１　キーマトリックス
【図１】
2004094455.tif 000003
【図２】
2004094455.tif 000004
【図３】
2004094455.tif 000005
【図４】
2004094455.tif 000006