説明

情報処理装置

【課題】情報処理装置において障害が発生した場合、その障害情報の自動的な収集と障害情報の保存の確実性を提供する。
【解決手段】情報処理装置8は、ソフトウェアを実行するCPU1と、ソフトウェアの動作を監視するウォッチドッグタイマ2と、ハードウェアの状態を監視するハードウェア監視デバイス4と、その監視結果を管理する障害情報管理用LSI3と、障害情報を保存する不揮発性メモリ6とを備える。ウォッチドッグタイマ2は、一定時間内にウォッチドッグトグルがない場合、CPU1に対してノンマスカブルの割り込み信号を通知して2回目のスタートを行う。CPU1は障害情報管理用LSI3から障害情報を収集する。収集が完了した場合はColdリセットを行って再起動し、収集が未完了の場合はHotリセットを行って再起動する。Hotリセットの場合、再起動後に障害情報を収集する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置に関する。
【背景技術】
【0002】
従来、CPU(Central Processing Unit)を用いて装置としての動作に必要なソフトウェアを実行する情報処理装置において、例えば電源投入後のリセットが解除されると、CPUがフラッシュROM(Read Only Memory)に保存されているプログラム(デバイスの初期化と自己診断プログラム)を実行する先行技術が知られている(例えば、特許文献1参照。)。
【0003】
この先行技術では、フラッシュROMの先頭アドレスから大部分を占める領域(第1領域)がBIOS(Basic Input/Output System)に使用されており、その他の第2領域には、起動日時及び初期化処理、自己診断処理の経過情報、環境情報等が処理番号とともに保存され、また第3領域には、前回未完了処理の検出時に、検出データが第2領域からコピーされ、このデータに関連付けたタイムアウトのステータス情報や装置構成が合わせて保存される。このため、CPUは第2領域に保持された各処理番号に基づいて未完了処理を検出し、検出したデータやタイムアウトステータス情報、装置構成等を第3の領域にコピーすることで、障害発生時の情報だけを保存し、起動不良の要因を特定することができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009−211625号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、先行技術の手法では、障害発生時の情報をその場では保存せず、再起動後に障害情報を保存しているため、毎回の起動時にソフトウェアの処理が余分に必要になる。また先行技術の手法は、情報処理装置の起動不良に関する障害情報を取得することが目的であるため、起動後に発生した障害には対応できないという問題がある。
【0006】
本発明の目的は、情報処理装置において障害が発生した場合、その障害情報の自動的な収集と障害情報の保存の確実性を提供することにある。
【課題を解決するための手段】
【0007】
上記の目的は、以下に開示する本発明の一態様により達成される。
すなわち本発明は、情報処理装置としての動作に必要なソフトウェアを実行する処理部と、起動後に初回の監視用タイマをスタートさせた状態でソフトウェアを実行中の処理部から監視用の通知を受け取り、この通知に基づいてソフトウェアの動作を監視する動作監視部と、情報処理装置に内蔵されたハードウェアの状態を監視し、その監視結果を障害情報として管理する障害情報管理部と、障害情報管理部により管理される障害情報を保存する保存部とを備える。
【0008】
動作監視部は、一定時間内に監視用の通知を受け取らなかった場合、処理部に対して割り込み信号を通知するとともに、2回目の監視用タイマを改めてスタートさせる。また処理部は、動作監視部から割り込み信号の通知を受けると、障害情報管理部から障害情報を収集して保存部に保存する収集プロセスを開始する。
【0009】
処理部による収集プロセスが完了した場合、障害情報管理部から処理部に対して収集完了を通知する一方、この収集完了の通知を受け取った処理部は監視用の通知を止め、一定時間後、動作監視部から処理部及び障害情報管理部に対して第1のリセット命令を出力することで処理部を再起動させる。
【0010】
処理部による収集プロセスが完了する前に、動作監視部に対して一定時間内に監視用の通知がなくなった場合、動作監視部から処理部及び障害情報管理部に対して第2のリセット命令を出力することで処理部を再起動させる。
【0011】
処理部は再起動に際して、第1のリセット命令が出力された場合は障害情報管理部から障害情報を収集することなく再起動を行う一方、第2のリセット命令が出力された場合は障害情報管理部から収集した障害情報を保存部に保存した上で再起動を行う。
【発明の効果】
【0012】
本発明の情報処理装置によれば、動作中に障害が発生した場合、その障害情報の自動的な収集と障害情報の保存の確実性を実現することができる。
【図面の簡単な説明】
【0013】
【図1】一実施形態の情報処理装置の構成を概略的に示すブロック図である。
【図2】情報処理装置8の起動後における動作順序を示す一連のフローチャート(1/2)である。
【図3】情報処理装置8の起動後における動作順序を示す一連のフローチャート(2/2)である。
【発明を実施するための形態】
【0014】
以下、本発明の一実施形態について図面を参照しながら説明する。
図1は、一実施形態の情報処理装置8の構成を概略的に示すブロック図である。この情報処理装置8は、エンベデッドシステム(Embedded system)として特定の電子機器(例えばネットワーク中継機器、メディアコンバータ、スイッチングハブ等)に組み込まれるコンピュータハードウェアである。
【0015】
情報処理装置8は、例えば処理部としてのCPU1を有するほか、動作監視部としてのウォッチドッグタイマ2、DRAM(Dynamic Random Access Memory)7、障害情報管理部としての障害情報管理用LSI(Large Scale Integration)3及びハードウェア監視デバイス4、フラッシュROM5、そして、保存部としての不揮発性メモリ6等で構成されている。
【0016】
情報処理装置8のハードウェア構成上、DRAM7及びウォッチドッグタイマ2は、CPU1に対してそれぞれ専用のハード線(図中参照符号なし)で接続されている。またウォッチドッグタイマ2は、障害情報管理用LSI3と専用のハード線(図中参照符号なし)で接続されている。また障害情報管理用LSI3、フラッシュROM5及び不揮発性メモリ6は、CPU1のシステムバス9を介してそれぞれCPU1に接続されている。ハードウェア監視デバイス4は、障害情報管理用LSI3と専用のハード線(図中参照符号なし)で接続されている。
【0017】
CPU1は、例えばフラッシュROM5に格納されている装置内のソフトウェアを読み出して実行する。ソフトウェアには、情報処理装置8としての動作に必要なプログラムモジュールが組み込まれており、CPU1がこのソフトウェアを実行することで、情報処理装置8がその使用目的に適した機能を実現する。
【0018】
またソフトウェアは、監視用の通知としてウォッチドッグトグルをCPU1からウォッチドッグタイマ2に対して出力させる。ソフトウェアは動作している間、このウォッチドッグトグルを出力し続ける。これを受けてウォッチドッグタイマ2は、ソフトウェアが正常に動作し続けているか否かを監視することができる。なおウォッチドッグタイマ2は、情報処理装置8の起動時から初回の監視用タイマとしてスタートしている。
【0019】
CPU1によるソフトウェアの通常実行中(情報処理装置8の作動中)に、例えば図示しないリセットスイッチ等がオペレータによって操作され、意図的にリセット信号が出力された場合、ソフトウェアはウォッチドッグトグルの出力を停止する。この場合、ウォッチドッグタイマ2は一定時間内にウォッチドッグトグルを受け取らなくなるため、CPU1に対してリセット命令を出力する。
【0020】
一方、何らかの原因(例えばCPU1の熱暴走)でソフトウェアに動作異常が発生すると、ソフトウェアから正常にウォッチッグトグルが出力されなくなる。この場合、一定時間内にウォッチドッグトグルを受け取らなくなるため、ウォッチドッグタイマ2はソフトウェアが正常に機能していないと判断し、CPU1に対してノンマスカブルの割り込み(NMI:Non−Maskable Interrupt)信号を通知する。このためCPU1は、現在のステータスが割り込み禁止中であったとしても、ノンマスカブルの割り込み信号を正常に受け付けることができる。なお、ハードウェア構成上でCPU1にNMI端子が設けられていれば、割り込み信号がNMI端子に入力されることとしてもよい。
【0021】
ここでCPU1は、ノンマスカブルの割り込み信号を受けると、再度のウォッチドッグトグルをウォッチドッグタイマ2へ出力する。これを受けてウォッチドッグタイマ2は、2回目のウォッチドッグタイマをスタートさせる。その上でウォッチドッグタイマ2が一定時間内にウォッチドッグトグルを受け取らなかった場合、ウォッチドッグタイマ2はリセット命令を出力する。
【0022】
またウォッチドッグタイマ2は、リセット命令の出力を状況に応じて制御し、具体的には第1のリセット命令として「Coldリセット」、第2のリセット命令として「Hotリセット」の2種類のリセット命令を状況に応じて使い分けながら出力することができる。
【0023】
このうち「Coldリセット」は、障害発生時に実行されるプロセス中で、障害情報管理用LSI3の内部に記録された障害情報を消去可能にする。一方の「Hotリセット」は、障害情報管理用LSI3の内部に記録された障害情報を消去させることなく保存し、再起動後にCPU1が障害情報を収集可能にする。なお、これら「Coldリセット」や「Hotリセット」を用いた障害発生時のプロセスについては、別のフローチャートを用いて詳しく後述する。
【0024】
ハードウェア監視デバイス4は、情報処理装置8に内蔵された電源やクロック等の各種ハードウェアについて、監視可能である対象の状態(例えば駆動電圧やクロック周期)を常時監視し、その監視結果を障害情報管理用LSI3に対して通知する。
また障害情報管理用LSI3は、ハードウェア監視デバイス4からの監視結果を常時管理し、通知された監視結果を内部のレジスタ(図示していない)に取り込む。
【0025】
その他、フラッシュROM5は、上記のようにCPU1が実行するソフトウェアを格納している。CPU1は起動時にフラッシュROM5からソフトウェアを読み込んで実行する。
また不揮発性メモリ6は、障害発生時にCPU1が障害情報管理用LSI3から収集した障害情報を保存する。
【0026】
図2及び図3は、情報処理装置8の起動後における動作順序を示す一連のフローチャートである。
情報処理装置8が起動すると、先ずウォッチドッグタイマ2は、初期状態でのリセットのタイプを「Hotリセット」に設定する(ステップS1)。これにより、例えば突然の情報処理装置8の再起動が発生した場合であっても、障害情報を残すことが可能になる。
【0027】
次に、ソフトウェアがCPU1に取り込まれ、通常に実行されると、ソフトウェアはCPU1からウォッチドッグタイマ2に対してウォッチドッグトグルの出力を開始させる。これを受けて、ウォッチドッグタイマ2が初回(1回目)にスタートする(ステップS2)。
【0028】
ソフトウェアの通常動作中、ウォッチドッグタイマ2はウォッチドッグトグルに基づいてソフトウェアの動作を監視している。すなわち、一定時間(例えば数ms〜数十ms)内にCPU1からウォッチドッグトグルを受け取った場合(ステップS3:No)、ウォッチドッグタイマ2はそれまでの時間カウントをクリア(タイマ停止はできない)し、初期値からのカウントを繰り返し実行する。
【0029】
何らかの原因でウォッチドッグトグルが一定時間にわたり停止すると、ウォッチドッグタイマ2が満了する(ステップS3:Yes)。このときの原因がリセットスイッチ操作等の意図的なものであった場合、ウォッチドッグタイマ2は「Coldリセット」を出力し(ステップS5)、情報処理装置8が再起動する(ステップS6)。再起動後は、上記のステップS1〜S3を繰り返し実行する。
【0030】
〔障害発生時のプロセス〕
これに対し、意図的な操作ではなく、情報処理装置8内で何らかの障害が発生した場合、本実施形態では以下の特徴的なプロセスが実行される。
【0031】
すなわち、ウォッチドッグトグルの一定時間にわたる停止がリセットスイッチ操作等の意図的な要因でなかった場合(ステップS4:No)には、ウォッチドッグタイマ2はCPU1にノンマスカブルの割り込み信号を通知する(ステップS7)。CPU1はノンマスカブル割り込み信号を受け取ると、再びウォッチドッグタイマ2に対してウォッチドッグトグルを出力する。これを受けてウォッチドッグタイマ2が2回目にスタートする(ステップS8)。
【0032】
2回目のスタート後、ウォッチドッグタイマ2は引き続きウォッチドッグトグルに基づいてソフトウェアの動作を監視する。そして、ウォッチドッグトグルが出力され続けている間(ステップS9:No)は、CPU1が障害情報管理用LSIから障害情報を収集するプロセス(収集プロセス)を実行する。なお収集した障害情報は、不揮発性メモリ6に保存される(接続記号B→B,図3のステップS10,ステップS12:No)。
【0033】
〔障害情報の収集完了時〕
CPU1による障害情報の収集プロセスが正常に完了すると、障害情報管理用LSI3はCPU1に収集完了を通知する(ステップS11:Yes)。続いてCPU1はウォッチドッグトグルの出力を停止する(ステップS13)。そして一定時間の経過後、ウォッチドッグタイマ2は「Coldリセット」をCPU1及び障害情報管理LSIに対して出力する(ステップS14)。
【0034】
上記のようにリセット命令のタイプが「Coldリセット」である場合、障害情報管理用LSI3の内部の障害情報は消去され(ステップS15)、その上でCPU1が再起動する(ステップS16)。
【0035】
〔障害情報の収集未完了時〕
これに対し、2回目のウォッチドッグタイマ2がスタートした後、障害情報管理用LSI3から収集完了の通知がある前(ステップS11:No)に、一定時間にわたりウォッチドッグトグルが停止した場合(ステップS12:Yes)、ウォッチドッグタイマ2は「Hotリセット」をCPU1及び障害情報管理LSI3に対して出力する(ステップS17)。なお、障害情報の収集プロセスに進む前に一定時間にわたりウォッチドッグトグルが停止した場合(ステップS9:Yes)も同様である(接続記号A→A:図3へ)。
【0036】
上記のようにリセット命令のタイプが「Hotリセット」の場合、障害情報管理LSI3の内部の障害情報は消去されず(ステップS18)、CPU1が再起動する(ステップS19)。
【0037】
〔再起動後の障害情報収集〕
本実施形態においてCPU1の再起動後、前回のリセット命令のタイプが「Coldリセット」であったか、それとも「Hotリセット」であったかによって、以下のように処理の内容が異なる。
【0038】
〔Coldリセット時〕
すなわち再起動後、CPU1は、障害情報管理LSI3の内部に保存されている情報に基づき、前回の再起動時に実行されたリセット命令のタイプを確認する(ステップS20)。このとき、リセット命令のタイプが「Coldリセット」であった場合、CPU1は障害情報の収集の処理を行わない(ステップS21:No)。そして、情報処理装置8の起動後から処理が再開される(接続記号C→C:図2のステップS1へ戻る)。この場合、既に障害情報の収集プロセスは完了しているため、再起動時に余分なソフトウェア処理が実行される手間を省略し、処理負荷を軽減してソフトウェアの通常動作を早期に再開することができる。
【0039】
〔Hotリセット時〕
一方、リセット命令のタイプが「Hotリセット」であって(ステップS21:Yes)、かつ、ウォッチドッグタイマ2が満了したことが再起動の要因であった場合(ステップS22:Yes)、CPU1は障害情報の収集が未完了であると判断し、障害情報管理LS13の内部の障害情報を収集する(ステップS23)。そして、情報処理装置8の起動後から処理が再開される(接続記号C→C:図2のステップS1へ戻る)。これにより、障害情報を完全に収集せずにCPU1が再起動した場合であっても、再起動後に障害情報の収集を可能とした。
【0040】
以上のように本実施形態の情報処理装置8は、ウォッチドッグタイマ2を2段階構成(初回及び2回目)とし、また、リセット命令のタイプを2種類に分けることで、障害発生時に障害情報の自動収集とその保存の確実性を実現することができる。
【0041】
また、ハードウェア監視デバイス4が情報処理装置8内部のハードウェアの状態を常時監視しつつ、障害情報管理用LSI3がハードウェア監視デバイス4からの情報を常時管理するため、障害情報を漏れなく収集することができる。
【0042】
またウォッチドッグタイマ2は、一定時間内にウォッチドッグトグルがなかった場合、CPU1に対してノンマスカブルの割り込み信号を通知する。これを受けてCPU1は、再びウォッチドッグトグルをウォッチドッグタイマ2に対して出力し、ウォッチドッグタイマ2が2回目のスタートを行うため、直ちにCPU1が再起動することなく、その後の障害情報の収集が可能となる。これにより、障害情報の収集を完了した場合は「Coldリセット」を出力し、再起動時に繰り返し障害情報を収集する処理を省くことができる。また、障害情報の収集が未完了であっても、「Hotリセット」を出力することで、再起動後の障害情報の収集が確実に行われる。
【0043】
上述した一実施形態では、障害情報管理部としてハードウェア監視デバイス4及び障害情報管理用LSI3の2つを用いているが、これらの機能を併せ持つ1つのデバイス(例えば、電圧測定が可能な電圧監視LSI等)を採用してもよい。この場合、部品点数を抑えてハードウェア構成を簡素化することができる。
【0044】
また一実施形態では、情報処理装置8をエンベデッドシステムとして扱っているが、情報処理装置8はエンベデッドシステム以外の用途にも利用することができる。
【符号の説明】
【0045】
1 CPU
2 ウォッチドッグタイマ
3 障害情報管理用LSI
4 ハードウェア監視デバイス
5 フラッシュROM
6 不揮発性メモリ
7 DRAM
8 情報処理装置


【特許請求の範囲】
【請求項1】
情報処理装置としての動作に必要なソフトウェアを実行する処理部と、
起動後に初回の監視用タイマをスタートさせた状態で前記ソフトウェアを実行中の前記処理部から監視用の通知を受け取り、この通知に基づいて前記ソフトウェアの動作を監視する動作監視部と、
情報処理装置に内蔵されたハードウェアの状態を監視し、その監視結果を障害情報として管理する障害情報管理部と、
前記障害情報管理部により管理される前記障害情報を保存する保存部とを備え、
前記動作監視部は、
一定時間内に前記監視用の通知を受け取らなかった場合、前記処理部に対して割り込み信号を通知するとともに、2回目の前記監視用タイマを改めてスタートさせ、
前記処理部は、
前記動作監視部から前記割り込み信号の通知を受けると、前記障害情報管理部から障害情報を収集して前記保存部に保存する収集プロセスを開始し、
前記処理部による前記収集プロセスが完了した場合、前記障害情報管理部から前記処理部に対して収集完了を通知する一方、この収集完了の通知を受け取った前記処理部は前記監視用の通知を止め、一定時間後、前記動作監視部から前記処理部及び前記障害情報管理部に対して第1のリセット命令を出力することで前記処理部を再起動させ、
前記処理部による前記収集プロセスが完了する前に、前記動作監視部に対して一定時間内に前記監視用の通知がなくなった場合、前記動作監視部から前記処理部及び前記障害情報管理部に対して第2のリセット命令を出力することで前記処理部を再起動させ、
前記処理部は再起動に際して、
前記第1のリセット命令が出力された場合は前記障害情報管理部から前記障害情報を収集することなく再起動を行う一方、前記第2のリセット命令が出力された場合は前記障害情報管理部から収集した前記障害情報を前記保存部に保存した上で再起動を行うことを特徴とする情報処理装置。
【請求項2】
請求項1に記載の情報処理装置において、
前記障害情報管理部は、
前記ハードウェアの状態を常時監視して、その結果を障害情報として常時管理することを特徴とする情報処理装置。
【請求項3】
請求項1又は2に記載の情報処理装置において、
前記動作監視部は、
一定時間内に前記監視用の通知がなかった場合、前記処理部に対してマスク不能な割り込み信号を通知し、
前記処理部は、
前記マスク不能な割り込み信号の通知を受けると、改めて前記動作監視部に前記監視用の通知を行うことで、前記動作監視部に2回目の前記監視用タイマをスタートさせることを特徴とする情報処理装置。
【請求項4】
請求項1から3のいずれかに記載の情報処理装置において、
前記障害情報管理部は、
情報処理装置に内蔵されたハードウェアの状態を監視する監視デバイスと、
前記監視デバイスによる監視結果を管理する障害情報管理用LSIとを含むことを特徴とする情報処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate