(57)【要約】【課題】情報処理装置において障害が発生した場合、その障害情報の自動的な収集と障害情報の保存の確実性を提供する。【解決手段】情報処理装置８は、ソフトウェアを実行するＣＰＵ１と、ソフトウェアの動作を監視するウォッチドッグタイマ２と、ハードウェアの状態を監視するハードウェア監視デバイス４と、その監視結果を管理する障害情報管理用ＬＳＩ３と、障害情報を保存する不揮発性メモリ６とを備える。ウォッチドッグタイマ２は、一定時間内にウォッチドッグトグルがない場合、ＣＰＵ１に対してノンマスカブルの割り込み信号を通知して２回目のスタートを行う。ＣＰＵ１は障害情報管理用ＬＳＩ３から障害情報を収集する。収集が完了した場合はＣｏｌｄリセットを行って再起動し、収集が未完了の場合はＨｏｔリセットを行って再起動する。Ｈｏｔリセットの場合、再起動後に障害情報を収集する。【選択図】図１
2012069032.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置としての動作に必要なソフトウェアを実行する処理部と、
起動後に初回の監視用タイマをスタートさせた状態で前記ソフトウェアを実行中の前記処理部から監視用の通知を受け取り、この通知に基づいて前記ソフトウェアの動作を監視する動作監視部と、
情報処理装置に内蔵されたハードウェアの状態を監視し、その監視結果を障害情報として管理する障害情報管理部と、
前記障害情報管理部により管理される前記障害情報を保存する保存部とを備え、
前記動作監視部は、
一定時間内に前記監視用の通知を受け取らなかった場合、前記処理部に対して割り込み信号を通知するとともに、２回目の前記監視用タイマを改めてスタートさせ、
前記処理部は、
前記動作監視部から前記割り込み信号の通知を受けると、前記障害情報管理部から障害情報を収集して前記保存部に保存する収集プロセスを開始し、
前記処理部による前記収集プロセスが完了した場合、前記障害情報管理部から前記処理部に対して収集完了を通知する一方、この収集完了の通知を受け取った前記処理部は前記監視用の通知を止め、一定時間後、前記動作監視部から前記処理部及び前記障害情報管理部に対して第１のリセット命令を出力することで前記処理部を再起動させ、
前記処理部による前記収集プロセスが完了する前に、前記動作監視部に対して一定時間内に前記監視用の通知がなくなった場合、前記動作監視部から前記処理部及び前記障害情報管理部に対して第２のリセット命令を出力することで前記処理部を再起動させ、
前記処理部は再起動に際して、
前記第１のリセット命令が出力された場合は前記障害情報管理部から前記障害情報を収集することなく再起動を行う一方、前記第２のリセット命令が出力された場合は前記障害情報管理部から収集した前記障害情報を前記保存部に保存した上で再起動を行うことを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、
前記障害情報管理部は、
前記ハードウェアの状態を常時監視して、その結果を障害情報として常時管理することを特徴とする情報処理装置。
【請求項３】
請求項１又は２に記載の情報処理装置において、
前記動作監視部は、
一定時間内に前記監視用の通知がなかった場合、前記処理部に対してマスク不能な割り込み信号を通知し、
前記処理部は、
前記マスク不能な割り込み信号の通知を受けると、改めて前記動作監視部に前記監視用の通知を行うことで、前記動作監視部に２回目の前記監視用タイマをスタートさせることを特徴とする情報処理装置。
【請求項４】
請求項１から３のいずれかに記載の情報処理装置において、
前記障害情報管理部は、
情報処理装置に内蔵されたハードウェアの状態を監視する監視デバイスと、
前記監視デバイスによる監視結果を管理する障害情報管理用ＬＳＩとを含むことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関する。
【背景技術】
【０００２】
従来、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて装置としての動作に必要なソフトウェアを実行する情報処理装置において、例えば電源投入後のリセットが解除されると、ＣＰＵがフラッシュＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）に保存されているプログラム（デバイスの初期化と自己診断プログラム）を実行する先行技術が知られている（例えば、特許文献１参照。）。
【０００３】
この先行技術では、フラッシュＲＯＭの先頭アドレスから大部分を占める領域（第１領域）がＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）に使用されており、その他の第２領域には、起動日時及び初期化処理、自己診断処理の経過情報、環境情報等が処理番号とともに保存され、また第３領域には、前回未完了処理の検出時に、検出データが第２領域からコピーされ、このデータに関連付けたタイムアウトのステータス情報や装置構成が合わせて保存される。このため、ＣＰＵは第２領域に保持された各処理番号に基づいて未完了処理を検出し、検出したデータやタイムアウトステータス情報、装置構成等を第３の領域にコピーすることで、障害発生時の情報だけを保存し、起動不良の要因を特定することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２１１６２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、先行技術の手法では、障害発生時の情報をその場では保存せず、再起動後に障害情報を保存しているため、毎回の起動時にソフトウェアの処理が余分に必要になる。また先行技術の手法は、情報処理装置の起動不良に関する障害情報を取得することが目的であるため、起動後に発生した障害には対応できないという問題がある。
【０００６】
本発明の目的は、情報処理装置において障害が発生した場合、その障害情報の自動的な収集と障害情報の保存の確実性を提供することにある。
【課題を解決するための手段】
【０００７】
上記の目的は、以下に開示する本発明の一態様により達成される。
すなわち本発明は、情報処理装置としての動作に必要なソフトウェアを実行する処理部と、起動後に初回の監視用タイマをスタートさせた状態でソフトウェアを実行中の処理部から監視用の通知を受け取り、この通知に基づいてソフトウェアの動作を監視する動作監視部と、情報処理装置に内蔵されたハードウェアの状態を監視し、その監視結果を障害情報として管理する障害情報管理部と、障害情報管理部により管理される障害情報を保存する保存部とを備える。
【０００８】
動作監視部は、一定時間内に監視用の通知を受け取らなかった場合、処理部に対して割り込み信号を通知するとともに、２回目の監視用タイマを改めてスタートさせる。また処理部は、動作監視部から割り込み信号の通知を受けると、障害情報管理部から障害情報を収集して保存部に保存する収集プロセスを開始する。
【０００９】
処理部による収集プロセスが完了した場合、障害情報管理部から処理部に対して収集完了を通知する一方、この収集完了の通知を受け取った処理部は監視用の通知を止め、一定時間後、動作監視部から処理部及び障害情報管理部に対して第１のリセット命令を出力することで処理部を再起動させる。
【００１０】
処理部による収集プロセスが完了する前に、動作監視部に対して一定時間内に監視用の通知がなくなった場合、動作監視部から処理部及び障害情報管理部に対して第２のリセット命令を出力することで処理部を再起動させる。
【００１１】
処理部は再起動に際して、第１のリセット命令が出力された場合は障害情報管理部から障害情報を収集することなく再起動を行う一方、第２のリセット命令が出力された場合は障害情報管理部から収集した障害情報を保存部に保存した上で再起動を行う。
【発明の効果】
【００１２】
本発明の情報処理装置によれば、動作中に障害が発生した場合、その障害情報の自動的な収集と障害情報の保存の確実性を実現することができる。
【図面の簡単な説明】
【００１３】
【図１】一実施形態の情報処理装置の構成を概略的に示すブロック図である。
【図２】情報処理装置８の起動後における動作順序を示す一連のフローチャート（１／２）である。
【図３】情報処理装置８の起動後における動作順序を示す一連のフローチャート（２／２）である。
【発明を実施するための形態】
【００１４】
以下、本発明の一実施形態について図面を参照しながら説明する。
図１は、一実施形態の情報処理装置８の構成を概略的に示すブロック図である。この情報処理装置８は、エンベデッドシステム（Ｅｍｂｅｄｄｅｄ  ｓｙｓｔｅｍ）として特定の電子機器（例えばネットワーク中継機器、メディアコンバータ、スイッチングハブ等）に組み込まれるコンピュータハードウェアである。
【００１５】
情報処理装置８は、例えば処理部としてのＣＰＵ１を有するほか、動作監視部としてのウォッチドッグタイマ２、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）７、障害情報管理部としての障害情報管理用ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）３及びハードウェア監視デバイス４、フラッシュＲＯＭ５、そして、保存部としての不揮発性メモリ６等で構成されている。
【００１６】
情報処理装置８のハードウェア構成上、ＤＲＡＭ７及びウォッチドッグタイマ２は、ＣＰＵ１に対してそれぞれ専用のハード線（図中参照符号なし）で接続されている。またウォッチドッグタイマ２は、障害情報管理用ＬＳＩ３と専用のハード線（図中参照符号なし）で接続されている。また障害情報管理用ＬＳＩ３、フラッシュＲＯＭ５及び不揮発性メモリ６は、ＣＰＵ１のシステムバス９を介してそれぞれＣＰＵ１に接続されている。ハードウェア監視デバイス４は、障害情報管理用ＬＳＩ３と専用のハード線（図中参照符号なし）で接続されている。
【００１７】
ＣＰＵ１は、例えばフラッシュＲＯＭ５に格納されている装置内のソフトウェアを読み出して実行する。ソフトウェアには、情報処理装置８としての動作に必要なプログラムモジュールが組み込まれており、ＣＰＵ１がこのソフトウェアを実行することで、情報処理装置８がその使用目的に適した機能を実現する。
【００１８】
またソフトウェアは、監視用の通知としてウォッチドッグトグルをＣＰＵ１からウォッチドッグタイマ２に対して出力させる。ソフトウェアは動作している間、このウォッチドッグトグルを出力し続ける。これを受けてウォッチドッグタイマ２は、ソフトウェアが正常に動作し続けているか否かを監視することができる。なおウォッチドッグタイマ２は、情報処理装置８の起動時から初回の監視用タイマとしてスタートしている。
【００１９】
ＣＰＵ１によるソフトウェアの通常実行中（情報処理装置８の作動中）に、例えば図示しないリセットスイッチ等がオペレータによって操作され、意図的にリセット信号が出力された場合、ソフトウェアはウォッチドッグトグルの出力を停止する。この場合、ウォッチドッグタイマ２は一定時間内にウォッチドッグトグルを受け取らなくなるため、ＣＰＵ１に対してリセット命令を出力する。
【００２０】
一方、何らかの原因（例えばＣＰＵ１の熱暴走）でソフトウェアに動作異常が発生すると、ソフトウェアから正常にウォッチッグトグルが出力されなくなる。この場合、一定時間内にウォッチドッグトグルを受け取らなくなるため、ウォッチドッグタイマ２はソフトウェアが正常に機能していないと判断し、ＣＰＵ１に対してノンマスカブルの割り込み（ＮＭＩ：Ｎｏｎ−Ｍａｓｋａｂｌｅ  Ｉｎｔｅｒｒｕｐｔ）信号を通知する。このためＣＰＵ１は、現在のステータスが割り込み禁止中であったとしても、ノンマスカブルの割り込み信号を正常に受け付けることができる。なお、ハードウェア構成上でＣＰＵ１にＮＭＩ端子が設けられていれば、割り込み信号がＮＭＩ端子に入力されることとしてもよい。
【００２１】
ここでＣＰＵ１は、ノンマスカブルの割り込み信号を受けると、再度のウォッチドッグトグルをウォッチドッグタイマ２へ出力する。これを受けてウォッチドッグタイマ２は、２回目のウォッチドッグタイマをスタートさせる。その上でウォッチドッグタイマ２が一定時間内にウォッチドッグトグルを受け取らなかった場合、ウォッチドッグタイマ２はリセット命令を出力する。
【００２２】
またウォッチドッグタイマ２は、リセット命令の出力を状況に応じて制御し、具体的には第１のリセット命令として「Ｃｏｌｄリセット」、第２のリセット命令として「Ｈｏｔリセット」の２種類のリセット命令を状況に応じて使い分けながら出力することができる。
【００２３】
このうち「Ｃｏｌｄリセット」は、障害発生時に実行されるプロセス中で、障害情報管理用ＬＳＩ３の内部に記録された障害情報を消去可能にする。一方の「Ｈｏｔリセット」は、障害情報管理用ＬＳＩ３の内部に記録された障害情報を消去させることなく保存し、再起動後にＣＰＵ１が障害情報を収集可能にする。なお、これら「Ｃｏｌｄリセット」や「Ｈｏｔリセット」を用いた障害発生時のプロセスについては、別のフローチャートを用いて詳しく後述する。
【００２４】
ハードウェア監視デバイス４は、情報処理装置８に内蔵された電源やクロック等の各種ハードウェアについて、監視可能である対象の状態（例えば駆動電圧やクロック周期）を常時監視し、その監視結果を障害情報管理用ＬＳＩ３に対して通知する。
また障害情報管理用ＬＳＩ３は、ハードウェア監視デバイス４からの監視結果を常時管理し、通知された監視結果を内部のレジスタ（図示していない）に取り込む。
【００２５】
その他、フラッシュＲＯＭ５は、上記のようにＣＰＵ１が実行するソフトウェアを格納している。ＣＰＵ１は起動時にフラッシュＲＯＭ５からソフトウェアを読み込んで実行する。
また不揮発性メモリ６は、障害発生時にＣＰＵ１が障害情報管理用ＬＳＩ３から収集した障害情報を保存する。
【００２６】
図２及び図３は、情報処理装置８の起動後における動作順序を示す一連のフローチャートである。
情報処理装置８が起動すると、先ずウォッチドッグタイマ２は、初期状態でのリセットのタイプを「Ｈｏｔリセット」に設定する（ステップＳ１）。これにより、例えば突然の情報処理装置８の再起動が発生した場合であっても、障害情報を残すことが可能になる。
【００２７】
次に、ソフトウェアがＣＰＵ１に取り込まれ、通常に実行されると、ソフトウェアはＣＰＵ１からウォッチドッグタイマ２に対してウォッチドッグトグルの出力を開始させる。これを受けて、ウォッチドッグタイマ２が初回（１回目）にスタートする（ステップＳ２）。
【００２８】
ソフトウェアの通常動作中、ウォッチドッグタイマ２はウォッチドッグトグルに基づいてソフトウェアの動作を監視している。すなわち、一定時間（例えば数ｍｓ〜数十ｍｓ）内にＣＰＵ１からウォッチドッグトグルを受け取った場合（ステップＳ３：Ｎｏ）、ウォッチドッグタイマ２はそれまでの時間カウントをクリア（タイマ停止はできない）し、初期値からのカウントを繰り返し実行する。
【００２９】
何らかの原因でウォッチドッグトグルが一定時間にわたり停止すると、ウォッチドッグタイマ２が満了する（ステップＳ３：Ｙｅｓ）。このときの原因がリセットスイッチ操作等の意図的なものであった場合、ウォッチドッグタイマ２は「Ｃｏｌｄリセット」を出力し（ステップＳ５）、情報処理装置８が再起動する（ステップＳ６）。再起動後は、上記のステップＳ１〜Ｓ３を繰り返し実行する。
【００３０】
〔障害発生時のプロセス〕
これに対し、意図的な操作ではなく、情報処理装置８内で何らかの障害が発生した場合、本実施形態では以下の特徴的なプロセスが実行される。
【００３１】
すなわち、ウォッチドッグトグルの一定時間にわたる停止がリセットスイッチ操作等の意図的な要因でなかった場合（ステップＳ４：Ｎｏ）には、ウォッチドッグタイマ２はＣＰＵ１にノンマスカブルの割り込み信号を通知する（ステップＳ７）。ＣＰＵ１はノンマスカブル割り込み信号を受け取ると、再びウォッチドッグタイマ２に対してウォッチドッグトグルを出力する。これを受けてウォッチドッグタイマ２が２回目にスタートする（ステップＳ８）。
【００３２】
２回目のスタート後、ウォッチドッグタイマ２は引き続きウォッチドッグトグルに基づいてソフトウェアの動作を監視する。そして、ウォッチドッグトグルが出力され続けている間（ステップＳ９：Ｎｏ）は、ＣＰＵ１が障害情報管理用ＬＳＩから障害情報を収集するプロセス（収集プロセス）を実行する。なお収集した障害情報は、不揮発性メモリ６に保存される（接続記号Ｂ→Ｂ，図３のステップＳ１０，ステップＳ１２：Ｎｏ）。
【００３３】
〔障害情報の収集完了時〕
ＣＰＵ１による障害情報の収集プロセスが正常に完了すると、障害情報管理用ＬＳＩ３はＣＰＵ１に収集完了を通知する（ステップＳ１１：Ｙｅｓ）。続いてＣＰＵ１はウォッチドッグトグルの出力を停止する（ステップＳ１３）。そして一定時間の経過後、ウォッチドッグタイマ２は「Ｃｏｌｄリセット」をＣＰＵ１及び障害情報管理ＬＳＩに対して出力する（ステップＳ１４）。
【００３４】
上記のようにリセット命令のタイプが「Ｃｏｌｄリセット」である場合、障害情報管理用ＬＳＩ３の内部の障害情報は消去され（ステップＳ１５）、その上でＣＰＵ１が再起動する（ステップＳ１６）。
【００３５】
〔障害情報の収集未完了時〕
これに対し、２回目のウォッチドッグタイマ２がスタートした後、障害情報管理用ＬＳＩ３から収集完了の通知がある前（ステップＳ１１：Ｎｏ）に、一定時間にわたりウォッチドッグトグルが停止した場合（ステップＳ１２：Ｙｅｓ）、ウォッチドッグタイマ２は「Ｈｏｔリセット」をＣＰＵ１及び障害情報管理ＬＳＩ３に対して出力する（ステップＳ１７）。なお、障害情報の収集プロセスに進む前に一定時間にわたりウォッチドッグトグルが停止した場合（ステップＳ９：Ｙｅｓ）も同様である（接続記号Ａ→Ａ：図３へ）。
【００３６】
上記のようにリセット命令のタイプが「Ｈｏｔリセット」の場合、障害情報管理ＬＳＩ３の内部の障害情報は消去されず（ステップＳ１８）、ＣＰＵ１が再起動する（ステップＳ１９）。
【００３７】
〔再起動後の障害情報収集〕
本実施形態においてＣＰＵ１の再起動後、前回のリセット命令のタイプが「Ｃｏｌｄリセット」であったか、それとも「Ｈｏｔリセット」であったかによって、以下のように処理の内容が異なる。
【００３８】
〔Ｃｏｌｄリセット時〕
すなわち再起動後、ＣＰＵ１は、障害情報管理ＬＳＩ３の内部に保存されている情報に基づき、前回の再起動時に実行されたリセット命令のタイプを確認する（ステップＳ２０）。このとき、リセット命令のタイプが「Ｃｏｌｄリセット」であった場合、ＣＰＵ１は障害情報の収集の処理を行わない（ステップＳ２１：Ｎｏ）。そして、情報処理装置８の起動後から処理が再開される（接続記号Ｃ→Ｃ：図２のステップＳ１へ戻る）。この場合、既に障害情報の収集プロセスは完了しているため、再起動時に余分なソフトウェア処理が実行される手間を省略し、処理負荷を軽減してソフトウェアの通常動作を早期に再開することができる。
【００３９】
〔Ｈｏｔリセット時〕
一方、リセット命令のタイプが「Ｈｏｔリセット」であって（ステップＳ２１：Ｙｅｓ）、かつ、ウォッチドッグタイマ２が満了したことが再起動の要因であった場合（ステップＳ２２：Ｙｅｓ）、ＣＰＵ１は障害情報の収集が未完了であると判断し、障害情報管理ＬＳ１３の内部の障害情報を収集する（ステップＳ２３）。そして、情報処理装置８の起動後から処理が再開される（接続記号Ｃ→Ｃ：図２のステップＳ１へ戻る）。これにより、障害情報を完全に収集せずにＣＰＵ１が再起動した場合であっても、再起動後に障害情報の収集を可能とした。
【００４０】
以上のように本実施形態の情報処理装置８は、ウォッチドッグタイマ２を２段階構成（初回及び２回目）とし、また、リセット命令のタイプを２種類に分けることで、障害発生時に障害情報の自動収集とその保存の確実性を実現することができる。
【００４１】
また、ハードウェア監視デバイス４が情報処理装置８内部のハードウェアの状態を常時監視しつつ、障害情報管理用ＬＳＩ３がハードウェア監視デバイス４からの情報を常時管理するため、障害情報を漏れなく収集することができる。
【００４２】
またウォッチドッグタイマ２は、一定時間内にウォッチドッグトグルがなかった場合、ＣＰＵ１に対してノンマスカブルの割り込み信号を通知する。これを受けてＣＰＵ１は、再びウォッチドッグトグルをウォッチドッグタイマ２に対して出力し、ウォッチドッグタイマ２が２回目のスタートを行うため、直ちにＣＰＵ１が再起動することなく、その後の障害情報の収集が可能となる。これにより、障害情報の収集を完了した場合は「Ｃｏｌｄリセット」を出力し、再起動時に繰り返し障害情報を収集する処理を省くことができる。また、障害情報の収集が未完了であっても、「Ｈｏｔリセット」を出力することで、再起動後の障害情報の収集が確実に行われる。
【００４３】
上述した一実施形態では、障害情報管理部としてハードウェア監視デバイス４及び障害情報管理用ＬＳＩ３の２つを用いているが、これらの機能を併せ持つ１つのデバイス（例えば、電圧測定が可能な電圧監視ＬＳＩ等）を採用してもよい。この場合、部品点数を抑えてハードウェア構成を簡素化することができる。
【００４４】
また一実施形態では、情報処理装置８をエンベデッドシステムとして扱っているが、情報処理装置８はエンベデッドシステム以外の用途にも利用することができる。
【符号の説明】
【００４５】
１  ＣＰＵ
２  ウォッチドッグタイマ
３  障害情報管理用ＬＳＩ
４  ハードウェア監視デバイス
５  フラッシュＲＯＭ
６  不揮発性メモリ
７  ＤＲＡＭ
８  情報処理装置
【図１】
2012069032.tif 000003
【図２】
2012069032.tif 000004
【図３】
2012069032.tif 000005