(57)【特許請求の範囲】
【請求項１】
プログラムを記憶する不揮発性メモリと、
揮発性メモリと、
前記不揮発性メモリに記憶されているプログラムを前記揮発性メモリに読み出して実行するプロセッサと、
予め定められた期間、前記プロセッサからアクセスがない場合に、前記プロセッサにリセット信号を送信するとともに、前記プロセッサからの情報を記憶するタイマ監視部と、を備える情報処理装置であって、
前記プロセッサは、前記タイマ監視部からのリセット信号を受信した場合に、前記揮発性メモリの未使用領域に記憶領域を確保し、前記情報処理装置の状態を示す情報を含むログ情報の少なくとも一部を当該記憶領域に記憶し、当該ログ情報の少なくとも一部を記憶した当該記憶領域のアドレスを前記タイマ監視部に記憶してから、再起動を行い、
前記プロセッサは、前記再起動後に、前記タイマ監視部に記憶されたアドレスに基づいて、前記記憶領域から前記ログ情報の少なくとも一部を読み出すこと
を特徴とする情報処理装置。
【請求項２】
前記プロセッサは、前記記憶領域に前記ログ情報の全てを記憶し、前記再起動後に、前記タイマ監視部に記憶されたアドレスに基づいて、前記記憶領域から前記ログ情報の全てを読み出すこと
を特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記プロセッサは、前記揮発性メモリのカーネル管理外領域に、前記ログ情報の一部を記憶するとともに、前記記憶領域に、前記ログ情報の残りを記憶し、前記再起動後に、前記カーネル管理外領域から前記ログ情報の一部を読み出すとともに、前記タイマ監視部に記憶されたアドレスに基づいて、前記記憶領域から前記ログ情報の残りを読み出すこと
を特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記プロセッサは、前記不揮発性メモリに、前記ログ情報の一部を記憶するとともに、前記記憶領域に、前記ログ情報の残りを記憶し、前記再起動後に、前記不揮発性メモリから前記ログ情報の一部を読み出すとともに、前記タイマ監視部に記憶されたアドレスに基づいて、前記記憶領域から前記ログ情報の残りを読み出すこと
を特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記タイマ監視部は、
前記予め定められた期間に前記プロセッサからアクセスがあるか否かを判断するＷＤＴ回路と、
前記ＷＤＴ回路が前記予め定められた期間に前記プロセッサからアクセスがなかったと判断してから、待機期間経過後に、前記リセット信号を前記プロセッサに送信するリセット発生回路と、
前記アドレスを記憶する一時記憶回路と、を備えること
を特徴とする請求項１から４の何れか一項に記載の情報処理装置。
【請求項６】
前記タイマ監視部は、前記ＷＤＴ回路が前記予め定められた期間に前記プロセッサからアクセスがなかったと判断した場合に、前記プロセッサに割り込み信号を送信する割り込み発生回路をさらに備え、
前記プロセッサは、前記割り込み信号を受信した場合に、前記揮発性メモリの未使用領域に前記記憶領域を確保して、前記ログ情報の少なくとも一部を前記記憶領域に記憶すること
を特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記リセット発生回路には、前記待機期間の初期値が予め設定されており、
前記プロセッサは、前記割り込み信号を受信した後、かつ、前記リセット信号を受信する前に、前記待機期間の初期値を変更すること
を特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記揮発性メモリは、セルフリフレッシュモードを有し、
前記プロセッサは、前記割り込み信号を受信した後、かつ、前記リセット信号を受信する前に、前記揮発性メモリをセルフリフレッシュモードにすること
を特徴とする請求項６又は７に記載の情報処理装置。
【請求項９】
前記プロセッサは、前記割り込み信号を受信した後に、前記揮発性メモリを省電力状態にすること
を特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記揮発性メモリは、ＤＤＲ３メモリであること
を特徴とする請求項８又は９に記載の情報処理装置。
【請求項１１】
前記ログ情報は、前記ＷＤＴ回路が前記予め定められた期間に前記プロセッサからアクセスがなかったと判断した時刻であるエラー発生時刻を含むこと
を特徴とする請求項５から１０の何れか一項に記載の情報処理装置。
【請求項１２】
前記ログ情報は、前記情報処理装置の電源が入れられてから、前記ＷＤＴ回路が前記予め定められた期間に前記プロセッサからアクセスがなかったと判断した回数であるエラー発生回数を含むこと
を特徴とする請求項５から１１の何れか一項に記載の情報処理装置。
【請求項１３】
外部記憶媒体を接続するための接続インターフェースをさらに備え、
前記プロセッサは、前記記憶領域から少なくとも一部を読み出したログ情報を、前記接続インターフェースに接続された前記外部記憶媒体に記憶すること
を特徴とする請求項１から１２の何れか一項に記載の情報処理装置。
【請求項１４】
通信するための通信インターフェースをさらに備え、
前記プロセッサは、前記記憶領域から少なくとも一部を読み出したログ情報を、前記通信インターフェースを介して、外部サーバに送信すること
を特徴とする請求項１から１３の何れか一項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関し、特に、再起動時にログ情報を保存又はネットワークに送信する情報処理装置に関する。
【背景技術】
【０００２】
駅及び空港等の公共施設、ショッピングセンター等の商業施設、並びに、電車、航空機及びバス等の公共交通機関において、広告又は案内情報を表示する情報処理装置が普及している。
【０００３】
このような情報処理装置では、何らかの不具合によりプログラムが暴走する等の原因で、広告又は案内情報の更新が止まる等の障害が発生する場合がある。このような場合には、情報処理装置は、障害発生時の状態を記憶しておくことにより、原因究明を行う。障害発生後一定時間経過後に、自動で再起動するように設計され、広告又は案内情報等のサービスを再開する情報処理装置もある。
【０００４】
再起動では、通常、揮発性メモリのソフトウェアリセットが行われる。よって、揮発性メモリに保持された障害情報等のデータは再起動により壊れてしまうという問題がある。
このような問題に対して、特許文献１には、コンピュータ本体を監視するサービスプロセッサ（ＳＶＰ：Ｓｅｒｖｉｃｅ  Ｐｒｏｃｅｓｓｏｒ）と呼ばれる監視装置プログラムが、監視装置内の異常発生時に、揮発メモリ内のカーネル管理外領域に障害情報を保存し、揮発性メモリをリセットしないソフトウェアリセットを行うことで、障害情報の保存を保障し、再起動後に障害情報を取得する方法が開示されている。
【０００５】
また、特許文献２には、障害発生後、再起動時に、メモリアドレスの割り当てを変更することにより複数の揮発性メモリを切り替え、ダンプ対象となるエラー発生時のメモリ状態を再起動時に上書きしない方法が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開第２０１１−０１６１１５号（段落００１１、第７−１０頁、図３〜図７）
【特許文献２】特開２０１５−９０５１２号公報（段落０００７〜０００８、図１、図５）
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載の方法では、動的組み込みドライバ及びユーザプロセスが動的にメモリを確保できるカーネル管理空間とは別に、予め障害情報を保存する領域をカーネル管理外領域に確保する必要があり、揮発性メモリの容量を十分に生かすことができないという問題がある。
【０００８】
また、特許文献２に記載の方法では、障害発生後の再起動時、メモリを切り替えるため、複数の揮発性メモリを設ける必要があるという問題がある。
【０００９】
そこで、本発明は、障害発生時のログ情報格納のために固定的に装置仕様、具体的には、メモリ容量を肥大化したり、使用可能なメモリ領域を圧迫したりすることなく、通常動作で用意された限られたメモリ仕様の中でログ情報を格納できるようにすることを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一態様に係る情報処理装置は、プログラムを記憶する不揮発性メモリと、揮発性メモリと、前記不揮発性メモリに記憶されているプログラムを前記揮発性メモリに読み出して実行するプロセッサと、予め定められた期間、前記プロセッサからアクセスがない場合に、前記プロセッサにリセット信号を送信するとともに、前記プロセッサからの情報を記憶するタイマ監視部と、を備える情報処理装置であって、前記プロセッサは、前記タイマ監視部からのリセット信号を受信した場合に、前記揮発性メモリの未使用領域に記憶領域を確保し、前記情報処理装置の状態を示す情報を含むログ情報の少なくとも一部を当該記憶領域に記憶し、当該ログ情報の少なくとも一部を記憶した当該記憶領域のアドレスを前記タイマ監視部に記憶してから、再起動を行い、前記プロセッサは、前記再起動後に、前記タイマ監視部に記憶されたアドレスに基づいて、前記記憶領域から前記ログ情報の少なくとも一部を読み出すことを特徴とする。
【発明の効果】
【００１１】
本発明の一態様によれば、障害発生時にログ情報を格納するための領域を揮発性メモリの領域に動的確保することで、障害発生時のログ情報格納のために固定的に装置仕様、具体的には、メモリ容量を肥大化したり、使用可能なメモリ領域を圧迫したりすることなく、通常動作で用意された限られたメモリ仕様の中でログ情報を格納することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１〜３に係る情報処理装置の構成を概略的に示すブロック図である。
【図２】実施の形態１におけるタイマ監視部の構成を概略的に示すブロック図である。
【図３】実施の形態１におけるプロセッサのメモリマップを説明する概略図である。
【図４】実施の形態１において、起動後、通常動作に入るまでの動作を示すフローチャートである。
【図５】実施の形態１におけるプロセッサの動作監視処理を示すフローチャートである。
【図６】実施の形態１において、ＷＤＴ割り込み（ＷＤＴエラー）が発生したときの処理を示すフローチャートである。
【図７】（Ａ）及び（Ｂ）は、実施の形態１において、ＷＤＴエラー発生時、ログ情報を保存した場合のメモリマップの例を示す概略図である。
【図８】実施の形態１において、揮発性メモリがセルフリフレッシュモードを有する場合において、ＷＤＴ割り込みが発生したときの処理を示すフローチャートである。
【図９】実施の形態１において、揮発性メモリがセルフリフレッシュモードを有する場合において、起動後、通常動作に入るまでの動作を示すフローチャートである。
【図１０】実施の形態２におけるプロセッサのメモリマップを説明する概略図である。
【図１１】実施の形態２において、ＷＤＴ割り込みが発生したときの処理を示すフローチャートである。
【図１２】実施の形態３におけるプロセッサのメモリマップを説明する概略図である。
【図１３】実施の形態３において、ＷＤＴ割り込みが発生したときの処理を示すフローチャートである。
【発明を実施するための形態】
【００１３】
実施の形態１．
図１は、実施の形態１に係る情報処理装置１００の構成を概略的に示すブロック図である。
情報処理装置１００は、プロセッサ１０１と、不揮発性メモリ１０２と、揮発性メモリ１０３と、接続インターフェース（以下、接続Ｉ／Ｆという）１０４と、通信インターフェース（以下、通信Ｉ／Ｆという）１０６と、タイマ監視部１１０とを備える。接続Ｉ／Ｆ１０４には、外部記憶媒体１０５が接続されている。
【００１４】
プロセッサ１０１は、情報処理装置１００の動作を制御する。例えば、プロセッサ１０１は、不揮発性メモリ１０２に保存された各種プログラムを揮発性メモリ１０３に読み出して実行することにより、情報処理装置１００の動作を制御する。
【００１５】
不揮発性メモリ１０２は、情報処理装置１００の動作に必要なデータ及びプログラムを記憶する。例えば、不揮発性メモリ１０２は、ＮＯＲ型のフラッシュメモリによって構成され、プロセッサ１０１が使用するデータ及びプログラムを記憶する。なお、不揮発性メモリ１０２は、ＮＯＲ型のフラッシュメモリに限るものではなく、マスクＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）でもよいし、ＳＤカード等でもよい。
【００１６】
揮発性メモリ１０３は、例えば、ＤＤＲ３（Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ  ３）メモリによって構成され、プロセッサ１０１が不揮発性メモリ１０２から読み出した各種プログラムを展開したり、あるいは実行したりする際のワーク領域として機能する。なお、揮発性メモリ１０３は、ＤＤＲ３メモリに限るものではなく、ＤＤＲ２メモリ，ＤＤＲメモリ、ＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）でもよい。
【００１７】
接続Ｉ／Ｆ１０４は、外部記憶媒体１０５を接続するためのインターフェースである。
外部記憶媒体１０５は、可搬性の記憶媒体である。例えば、外部記憶媒体１０５は、ＳＤカード、ＣＦ（Ｃｏｍｐａｃｔ  Ｆｌａｓｈ（登録商標））カード、ＣＦａｓｔカード等の取り外し可能な不揮発性カード型記憶媒体である。
【００１８】
通信Ｉ／Ｆ１０６は、外部の装置である外部サーバ１３０と通信するためのインターフェースである。例えば、通信Ｉ／Ｆ１０６は、Ｅｔｈｅｒｎｅｔ（登録商標）通信又はＲＳ４８５通信等のインターフェースである。
【００１９】
タイマ監視部１１０は、プロセッサ１０１の動作を監視する。例えば、タイマ監視部１１０は、プロセッサ１０１の動作を監視し、プロセッサ１０１から予め定められた期間アクセスがない場合に、割り込み信号をプロセッサ１０１に送信し、その後、待機期間経過後にリセット信号をプロセッサ１０１に送信する。
また、タイマ監視部１１０は、プロセッサ１０１からの情報を記憶する。
【００２０】
ここで、プロセッサ１０１は、タイマ監視部１１０からのリセット信号を受信した場合に、揮発性メモリ１０３の未使用領域に記憶領域（第１の記憶領域）を確保し、情報処理装置１００の状態を示す情報を含むログ情報の少なくとも一部をこの記憶領域に記憶し、ログ情報の少なくとも一部を記憶したこの記憶領域のアドレスをタイマ監視部１１０に記憶してから、再起動を行う。そして、プロセッサ１０１は、再起動後に、タイマ監視部１１０に記憶されたアドレスに基づいて、その記憶領域からログ情報の少なくとも一部を読み出す。
【００２１】
図２は、実施の形態１におけるタイマ監視部１１０の構成を概略的に示すブロック図である。
タイマ監視部１１０は、ＷＤＴ（Ｗａｔｃｈｄｏｇ  Ｔｉｍｅｒ）からなるＷＤＴ回路１１１と、割り込みを発生させる割り込み発生回路１１２と、リセットを発生させるリセット発生回路１１３と、障害発生時の装置の状態を記憶する一時記憶回路１１４と、タイマ監視部１１０の各内部回路を制御する制御回路１１５とを備える。
【００２２】
ＷＤＴ回路１１１は、プロセッサ１０１から予め定められた期間にアクセスがあるか否かを判断する。例えば、ＷＤＴ回路１１１は、プロセッサ１０１から一定周期毎にＷＤＴカウンタがクリアされるかどうかを監視することにより、プロセッサ１０１の動作を監視する。ＷＤＴ回路１１１は、ＷＤＴタイムアップまでにクリアが行われない（ＷＤＴエラーと称す）場合には、割り込み発生回路１１２を経由してプロセッサ１０１に割り込み（ＷＤＴ割り込み信号）を発行し、一定時間後にリセット発生回路１１３からリセット（ＷＤＴリセット信号）を発行する。
【００２３】
割り込み発生回路１１２は、ＷＤＴ回路１１１からＷＤＴタイムアップ信号を受けて、プロセッサ１０１にＷＤＴ割り込み信号を発行する。
【００２４】
リセット発生回路１１３は、ＷＤＴ回路１１１からＷＤＴタイムアップ信号を受けて、一定時間後（待機期間経過後）に、プロセッサ１０１にＷＤＴリセット信号を発行する。
【００２５】
一時記憶回路１１４は、プロセッサ１０１が割り込み発生回路１１２からのＷＤＴ割り込み信号を受け、その後、リセット発生回路１１３から出力されるＷＤＴリセット信号によるリセットからの再起動後まで、書き込まれた装置情報（ログ情報の書き込みアドレス）を保存する。なお、その装置情報は、再起動後も明示的に消去されなければ、そのまま保持される。
【００２６】
制御回路１１５は、プロセッサ１０１からの命令を受けて、ＷＤＴ回路１１１、割り込み発生回路１１２、リセット発生回路１１３及び一時記憶回路１１４を制御する。
【００２７】
実施の形態１におけるタイマ監視部１１０は、ＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）で実現される。ＰＬＤの一部領域、具体的には、一時記憶回路１１４及びＷＤＴエラーステータスのレジスタは、フリップフロップ（Ｆ／Ｆ）で構成されている。これらは、電源投入時のパワーオンリセット（ハードウェアリセット）ではＦ／Ｆをクリアされるが、プロセッサ１０１から発行されたソフトウェアリセット又はＷＤＴ発生後のＷＤＴリセットではクリアされない。例えば、Ｆ／Ｆのリセット端子（又はセット端子）には、ハードウェアリセット信号のみが接続され、ソフトウェアリセット信号は接続されない。
一般的に、ソフトウェアリセットは、プロセッサ１０１を初期化することになり、その他のプロセッサ１０１の周辺回路を初期化するかどうかは、プロセッサ１０１上で動くソフトウェアに依存する。実施の形態１では、揮発性メモリ１０３及びタイマ監視部１１０は、ＷＤＴエラー発生後の再起動時には初期化されない。
【００２８】
図３は、プロセッサ１０１のメモリマップを説明する概略図である。なお、図３に示されているメモリマップは一例であり、これに限るものではない。
不揮発性メモリ１０２には、ブートプログラム及びカーネルが格納される。
タイマ監視部１１０は、上述のように、ＰＬＤで実現される。なお、タイマ監視部１１０は、ＰＬＤに限定されるものではなく、小規模なマイコン等であってもよい。
【００２９】
揮発性メモリ１０３は、カーネル管理領域及びカーネル管理外領域に分けられる。カーネル管理領域は、論理アドレス空間及び仮想アドレス空間に分けられる。
【００３０】
論理アドレス空間は、図示されていないが、テキスト領域（テキストセグメント又はテキストセクション）、データ領域（データセグメント又はデータセクション）及びＢＳＳ領域（ＢＳＳセグメント又はＢＳＳセクション）を含む。
テキスト領域は、データ領域機械語プログラム又はそのプログラムが使用する読み取り専用のデータを格納する。
データ領域は、プログラムで使用される初期値を持つデータを格納する。
ＢＳＳ領域は、「０」で初期化されるデータを格納する。
【００３１】
仮想アドレス空間は、図示されていないが、ヒープ領域、ｍｍａｐ領域及びスタック領域を含む。
ヒープ領域は、プロセッサ１０１がプログラムの実行中に必要に応じてメモリを割り当てる領域である。
ｍｍａｐ領域は、ファイルの内容の一部を仮想アドレス空間の一部に対応させてユーザプロセスがメモリの読み書きでファイルの読み書きを可能とする領域である。
スタック領域は、実行中のプログラムがサブルーチンの読み出しを行う際のリターンアドレス又は呼び出されたサブルーチン等が一時的に使用する領域である。
【００３２】
カーネル管理外領域は、カーネルからはＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）空間に見える領域である。
【００３３】
図４は、起動後、通常動作に入るまでの動作を示すフローチャートである。
プロセッサ１０１は、タイマ監視部１１０のＷＤＴ回路１１１からＷＤＴエラーのステータスを読み出し確認する（Ｓ１０）。ＷＤＴエラーのステータスは、電源投入後に発生したＷＤＴタイムアップの発生回数である。ＷＤＴエラーのステータスは、電源切断により０クリアされる。
【００３４】
プロセッサ１０１は、読み出されたＷＤＴエラーのステータスにおいて、ＷＤＴエラーの発生回数が「０」よりも多いか否かを判断する（Ｓ１１）。ＷＤＴエラーの発生回数が「０」である場合（Ｓ１１でＮｏ）には、処理はステップＳ１２に進む。ＷＤＴエラーの発生回数が「０」よりも多い場合（Ｓ１１でＹｅｓ）には、処理はステップＳ１３に進む。
【００３５】
ステップＳ１２では、電源投入後、一度もＷＤＴエラーが発生していない状態（初めての動作）であるので、プロセッサ１０１は、揮発性メモリ１０３を初期化する。そして処理はステップＳ１３に進む。
ステップＳ１３では、プロセッサ１０１は、カーネル起動を行う。ＷＤＴエラーの発生回数が１以上の場合にはＷＤＴエラー発生による再起動であるので、プロセッサ１０１は、揮発性メモリ１０３の初期化をせずに、そのまま、ステップＳ１３でカーネル起動を行う。
【００３６】
次に、プロセッサ１０１は、時刻サーバ（不図示）との間で現在時刻を問い合わせて、時刻合わせを行う（Ｓ１４）。
そして、プロセッサ１０１は、再度、ＷＤＴ回路１１１からＷＤＴエラーのステータスを読み出し、ＷＤＴエラーの発生回数を確認する（Ｓ１５）。
ＷＤＴエラー発生回数が１回以上の場合（Ｓ１５でＹｅｓ）には、処理はステップＳ１６に進む。一方、ＷＤＴエラー発生回数が０の場合（Ｓ１５でＮｏ）、言い換えると、電源投入後ＷＤＴエラーがまだ発生していない状態である場合には、プロセッサ１０１は、そのまま通常動作に移行する。
【００３７】
ステップＳ１６では、プロセッサ１０１は、揮発性メモリ１０３からログ情報を取得する。
そして、プロセッサ１０１は、ログ情報を保存する（Ｓ１７）。例えば、プロセッサ１０１は、接続Ｉ／Ｆ１０４を介して、外部記憶媒体１０５にログ情報を保存し、又は、通信Ｉ／Ｆ１０６を介して外部サーバ１３０にログ情報を送信する。なお、これらの両方が行われてもよい。
そして、プロセッサ１０１は、通常動作に移行する。
【００３８】
図５は、プロセッサ１０１の動作監視処理を示すフローチャートである。
プロセッサ１０１の監視プログラムは、プロセッサ１０１内のタイマ（不図示）割り込みを受けて、定期的にＷＤＴ回路１１１のＷＤＴカウンタをクリアする（Ｓ２０）。例えば、プロセッサ１０１は、ＷＤＴカウンタをクリアするための命令をＷＤＴ回路１１１に送信する。
障害発生により監視プログラムがＷＤＴクリアをできなくなった場合、タイマ監視部１１０内のＷＤＴ回路１１１が、ＷＤＴタイムアップ信号（ＷＤＴエラー信号）を制御回路１１５に伝える。
制御回路１１５は、ＷＤＴ回路１１１から入力されるＷＤＴタイムアップ信号を受けて、割り込み発生回路１１２からＷＤＴ割り込み信号をプロセッサ１０１に出力する。
【００３９】
プロセッサ１０１は、タイマ監視部１１０からＷＤＴ割り込み信号を受ける。プロセッサ１０１は、必要に応じて、タイマ監視部１１０のリセット発生回路１１３から出力されるＷＤＴリセット信号発生までの待機時間を再設定するとともに、ログ情報の保存を行う。具体的には、リセット発生回路１１３は、ＷＤＴタイムアップ後（ＷＤＴ割り込み信号発生後）、初期値として、一定時間後、例えば１秒後に、ＷＤＴリセット信号が発生するように構成されている。プロセッサ１０１は、ＷＤＴ割り込み信号を受けた時点で、保存するログ情報の大きさに応じて、ＷＤＴリセット信号発生までの待機時間を再設定、又は、一旦、ＷＤＴリセット信号の発生を止めたうえで、ログ情報保存後にＷＤＴリセット信号を発生させる。初期値として、一定時間を設定しておくのは、プロセッサ１０１がログ情報の保存ができないような障害を受けている場合に、ログ情報の保存ができないまでも、再起動を行うことにより、広告や案内情報等の本来のサービス提供に復帰できるようにするためである。
【００４０】
図６は、ＷＤＴ割り込み（ＷＤＴエラー）が発生したときの処理を示すフローチャートである。
ＷＤＴ割り込みが発生すると、プロセッサ１０１は、揮発性メモリ１０３にログ情報を記憶するための記憶領域である第１のログ情報格納領域を確保する（Ｓ３０）。
次に、プロセッサ１０１は、ＷＤＴエラー発生時の時刻（ＷＤＴエラー発生時刻）を取得する（Ｓ３１）。
【００４１】
次に、プロセッサ１０１は、情報処理装置１００の各部から、必要な情報を取得して、ＷＤＴエラー発生時のログ情報を生成する（Ｓ３２）。ログ情報は、ＷＤＴエラー発生時刻、ＷＤＴエラー発生回数の他、ＷＤＴエラー発生時の情報処理装置１００の状態（直前のプロセス情報、オペレーティングシステム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ、ＯＳ）情報、ハードウェア情報、タスクトレース情報）等である。ＷＤＴエラー発生回数は、電源投入後に発生したＷＤＴエラーの回数であり、電源切断により０クリアされる。そのため、ＷＤＴエラー発生回数により、電源投入後１回目で発生したエラーなのか、再起動後に発生したエラーなのか、判別することができる。
【００４２】
次に、プロセッサ１０１は、ステップＳ３２で生成されたログ情報を、ステップＳ３０で確保された、揮発性メモリ１０３の第１のログ情報格納領域に保存する（Ｓ３３）。
【００４３】
次に、プロセッサ１０１は、ログ情報格納アドレスをタイマ監視部１１０の一時記憶回路１１４に保存する（Ｓ３４）。
最後に、プロセッサ１０１は、必要に応じて、明示的にソフトウェアリセットを発行する（Ｓ３５）。
【００４４】
なお、図６に示されている処理の順番は、これに限るものではなく、例えば、ステップＳ３１の時刻取得と、ステップＳ３２のログ情報の生成が逆になってもよい。また、ステップＳ３４で、あらためて揮発性メモリ１０３にログ情報を保存するのではなく、プロセッサ１０１は、ステップＳ３１で、取得された時刻情報を揮発性メモリ１０３に保存してもよく、また、ステップＳ３２で、生成されたログ情報を揮発性メモリ１０３に保存してもよい。さらに、ステップＳ３１の時刻取得及びステップＳ３２のログ情報生成後に、プロセッサ１０１は、あらためてログ情報を格納する第１のログ情報格納領域を確保し、ステップＳ３４で保存してもよい。
【００４５】
ここで、カーネル及びハードウェアが持っている情報のうち故障解析等に有効なログ情報は、揮発性メモリ１０３又は情報処理装置１００のハードウェアから取得される。なお、ログ情報として収集される情報には、プログラムが逐次動作する中で、ＷＤＴエラー発生時、既に揮発性メモリ１０３に出力されている情報もあれば、ＷＤＴエラー発生時にあらためて命令を実行して出力させる情報もある。
【００４６】
図７（Ａ）及び（Ｂ）は、ＷＤＴエラー発生時、ログ情報を保存した場合のメモリマップの例を示す概略図である。
図７（Ａ）に示されている例では、第１のログ情報格納領域が「０ｘ６８００＿００００〜０ｘ６ＦＦＦ_ＦＦＦＦ」であり、第１のログ情報格納領域の先頭アドレスは、「０ｘ６８００＿００００」、保存サイズは「０ｘ０８００＿００００」である。
図７（Ｂ）に示されている例では、第１のログ情報格納領域が、「０ｘ４４００＿００００〜０ｘ４ＢＦＦ＿ＦＦＦＦ」及び「０ｘ６Ｃ００＿００００〜０ｘ６ＦＦＦ＿ＦＦＦＦ」の２箇所に分かれており、第１のログ情報格納領域の先頭アドレスは、それぞれ「０ｘ４４００＿００００」「０ｘ６Ｃ００＿００００」、保存サイズは、それぞれ「０ｘ０８００＿００００」「０ｘ０４００＿００００」である。
【００４７】
プロセッサ１０１は、図６のステップＳ３０でログ情報を格納する領域をまとまった大きな領域を確保できない場合、第１のログ情報格納領域として、複数の領域を確保してもよい。その場合には、プロセッサ１０１は、一時記憶回路１１４に、複数のログ情報格納アドレスを保存する。また、プロセッサ１０１は、一時記憶回路１１４に、例えば、第１のログ情報格納領域の先頭アドレス及び保存サイズを保存してもよいし、又は、先頭アドレスのみを保存し、揮発性メモリ１０３の保存先の先頭に保存サイズを保存してもよい。
【００４８】
ユーザ操作を伴い、ユーザ操作履歴によって再起動後の使用リソースが変化する装置と違い、組み込み向けの情報処理装置の場合、ソフトウェア更新ではない限り、再起動により初期状態に戻る。揮発性メモリ１０３の仮想アドレス空間のうち、例えば、起動直後に確保される領域は、図７（Ａ）及び（Ｂ）に示されているように、第１のシステム初期確保領域及び第２のシステム初期確保領域のように、装置により限定されるが、マッピング領域はこれに限るものではない。そのため、プロセッサ１０１は、再起動後、揮発性メモリ１０３の初期化を行わず、リソースを多数使用する通常動作に入る前に読み出す限り、再起動前に保存したログ情報を取り出すことが可能である。
【００４９】
また、揮発性メモリ１０３であるＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）は、コンデンサに電荷を蓄えることによって「０」又は「１」の状態を保持するが、電荷は時間とともに減少するため、一定時間毎に電荷を注入するためのリフレッシュ動作が必要である。障害発生時に確保した第１のログ情報格納領域のデータは、再起動期間中もリフレッシュ動作を行うか、あるいは、電荷が放電するまでにリフレッシュ動作が再開できれば、データを消失することなく、保持することができる。
【００５０】
ＤＤＲ３には、セルフリフレッシュモードがあり、電源供給状態にあれば、外部クロックを止めた状態でもデータの保持が可能である。このため、プロセッサ１０１は、揮発性メモリ１０３がセルフリフレッシュモードを有する場合には、タイマ監視部１１０から割り込み信号を受信し、ログ情報を保存した後に、揮発性メモリ１０３を省電力状態にすることができる。
【００５１】
図８は、揮発性メモリ１０３がセルフリフレッシュモードを有する場合において、ＷＤＴ割り込みが発生したときの処理を示すフローチャートである。
図８に示されている処理において、図６と同様の処理については、図６と同様の符号が付されている。
図８のステップＳ３０〜Ｓ３４の処理は、図６のステップＳ３０〜Ｓ３４の処理と同様である。但し、図８のステップＳ３４の処理の後には、処理はステップＳ４０に進む。
ステップＳ４０では、プロセッサ１０１は、リセット発生回路１１３からのリセット発生までの時間をタイマ設定する。
そして、プロセッサ１０１は、揮発性メモリ１０３をセルフリフレッシュモードに移行させる（Ｓ４１）。
【００５２】
図８においては、ステップＳ４１でセルフリフレッシュモードに移行させることにより、ワーク領域として使用している揮発性メモリ１０３が使用できなくなり、プロセッサ１０１が動作しなくなる。しかしながら、ステップＳ４０でリセット発生回路１１３に設定した時間後に、タイマ機能により自動でリセットが発行され、再起動することができる。
【００５３】
図９は、揮発性メモリ１０３がセルフリフレッシュモードを有する場合において、起動後、通常動作に入るまでの動作を示すフローチャートである。
図９に示されている処理において、図４と同様の処理については、図４と同様の符号が付されている。
図９のステップＳ１０〜Ｓ１７の処理は、図４のステップＳ１０〜Ｓ１７の処理と同様である。但し、図９のステップＳ１１でＷＤＴエラーの発生回数が１以上の場合（Ｓ１１でＮｏ）には、処理はステップＳ５０に進む。
ステップＳ５０では、プロセッサ１０１は、揮発性メモリ１０３をセルフリフレッシュモードから復帰させる。そして、処理はステップＳ１３に進む。
【００５４】
以上により、プロセッサ１０１は、揮発性メモリ１０３に保存したログ情報を再起動の間、確実に保持することができる。
【００５５】
情報処理装置１００が、広告又は案内情報等のサービスを提供する場合、ＷＤＴエラー発生時、いち早く、再起動して、装置を復旧及びサービスを再開させる必要がある。
【００５６】
一方で、ＷＤＴエラーの発生は、障害の発生を示すものとなっているため、障害の内容又は大きさによっては、取得されたログ情報を、ネットワークを介してサーバに送信する等、大きなリソースを必要とするような複雑な操作を行うことはできない。障害発生時のログ情報は、電源が遮断された後も内容が保持される不揮発性メモリ１０２（フラッシュメモリ）に保存されることが多い。しかしながら、不揮発性メモリ１０２には、書き込み回数に制限があり、また、書き込みには消去が必要となるため高速書き込みができず、さらに、ＤＤＲ等の揮発性メモリに対して容量が小さいため、十分なログ情報を書き込むことができない等の欠点がある。
【００５７】
実施の形態１によれば、情報処理装置１００は、障害発生時には再起動を行うことを前提に、大容量が故に必要なメモリ容量を確保しやすく、高速書き込みができる揮発性メモリ１０３にログ情報を一時的に記憶する。そして、情報処理装置１００は、再起動後、リソースが回復した状態で、ログ情報を読み出し、より大容量の外部記憶媒体１０５に記憶、又は、ネットワーク上の外部サーバ１３０に送信することができる。
【００５８】
揮発性メモリ１０３への保存では、情報処理装置１００は、障害発生時に初めて第１のログ情報格納領域を動的に確保する。情報処理装置１００は、動的に確保された第１のログ情報格納領域のログ情報格納アドレスを一時記憶回路１１４に保存する。そして、情報処理装置１００は、再起動時に揮発性メモリ１０３を初期化せずに、起動することにより、揮発性メモリ１０３のデータを保持することができる。さらに、情報処理装置１００は、再起動後に、一時記憶回路１１４に保存されたログ情報格納アドレスを参照することにより、揮発性メモリ１０３内のログ情報格納アドレスからログ情報を読み出すことができる。このため、情報処理装置１００は、第１のログ情報格納領域を動的に確保することができるため、実運用上で必要な最小限のメモリ構成で、ログ記憶に対応することができる。
【００５９】
タイマ監視部１１０のリセット発生回路１１３は、保存するログ情報の大きさにあわせて、ＷＤＴ割り込み発生からリセット発行までの待機期間を、無期限を含め可変に設定することができる。このため、情報処理装置１００は、ログ情報保存中にリセットが発生したり、不必要にリセットまでの時間を引き延ばしたりすることがない。また、情報処理装置１００は、障害により待機期間を設定できない場合にも、初期設定により、一定時間後に自動でリセットが発生し、再起動することができる。
【００６０】
情報処理装置１００では、ＤＤＲ３にはセルフリフレッシュモードがあるため、電源供給が維持できれば、保存したログ情報を確実に保持することが可能である。
【００６１】
情報処理装置１００では、ＷＤＴエラー発生時、ログ情報として、ＷＤＴエラー発生時刻を保存することにより、ＷＤＴエラーがいつ発生したのかがわかり、障害解析に有効である。
【００６２】
情報処理装置１００では、ＷＤＴエラー発生時、ログ情報として、ＷＤＴエラー発生回数を保存することにより、電源起動後１回目のＷＤＴエラーなのか、ＷＤＴエラー発生による再起動後に発生したＷＤＴエラーなのか区別できるため、障害解析に有効である。
【００６３】
情報処理装置１００では、再起動によりリソースが回復するため、第１のログ情報格納領域に格納したログ情報を読み出し、ＵＳＢメモリ、ＣＦ又はＣＦａｓｔ等の外部記憶媒体１０５に記憶することが可能である。これにより、ログ情報を情報処理装置１００から取り出すことにより障害解析が容易になる。
【００６４】
情報処理装置１００は、再起動によりリソースが回復するため、第１のログ情報格納領域に格納したログ情報を読み出し、Ｅｔｈｅｒｎｅｔネットワーク等の通信インターフェースを経由して外部サーバ１３０に送信することが可能である。これにより、ログ情報を情報処理装置１００から取り出すことにより障害解析が容易になる。
【００６５】
実施の形態２．
次に、実施の形態２について説明する。
図１に示されているように、実施の形態２に係る情報処理装置２００は、プロセッサ２０１と、不揮発性メモリ１０２と、揮発性メモリ２０３と、接続Ｉ／Ｆ１０４と、通信Ｉ／Ｆ１０６と、タイマ監視部１１０とを備える。接続Ｉ／Ｆ１０４には、外部記憶媒体１０５が接続されている。
実施の形態２に係る情報処理装置２００は、プロセッサ２０１のメモリマップが異なることを除いて、実施の形態１に係る情報処理装置１００と同様に構成されている。
【００６６】
図１０は、実施の形態２におけるプロセッサ２０１のメモリマップを説明する概略図である。なお、図１０に示されているメモリマップは一例であり、これに限るものではない。
実施の形態１との違いは、揮発性メモリ２０３のカーネル管理外領域に、ログ情報を記憶するための第２の記憶領域である第２のログ情報格納領域が設けられている点である。カーネル管理外領域は、メモリを動的に確保することができないため、第２のログ情報格納領域は、固定アドレス及び固定サイズとなる。プロセッサ２０１には、第２のログ情報格納領域のアドレスが予め設定されているものとする。
【００６７】
図１１は、実施の形態２において、ＷＤＴ割り込みが発生したときの処理を示すフローチャートである。
図１１に示されている処理において、図６と同様の処理については、図６と同様の符号が付されている。
図１１のステップＳ３０〜Ｓ３２、ステップＳ３４及びステップＳ３５の処理は、図６のステップステップＳ３０〜Ｓ３２、ステップＳ３４及びステップＳ３５の処理と同様である。但し、図１１のステップＳ３２の処理の後には、処理はステップＳ６０に進む。
【００６８】
ステップＳ６０では、プロセッサ２０１は、ステップＳ３２で生成されたログ情報の内、少なくとも一部を、カーネル管理外領域（第２のログ情報格納領域）に保存する。
次に、プロセッサ２０１は、ステップＳ３２で生成されたログ情報の残りを、ステップＳ３０で確保された、揮発性メモリ２０３の第１のログ情報格納領域に保存する（Ｓ６１）。そして、ステップＳ６１の後には、処理はステップＳ３４に進む。
なお、順番はこれに限るものではなく、ステップＳ６１の揮発性メモリ２０３への保存の後に、ステップＳ６０の処理が行われてもよい。
【００６９】
カーネル管理外領域には、ＷＤＴエラー発生時刻及びＷＤＴエラー発生回数が保存される。また、カーネル管理外領域には、ＷＤＴエラー発生時の状態の内、プロセス情報、ＯＳ情報又はハードウェア情報等の基本的情報、サイズが確定している情報、再起動後に図４のステップＳ１７で保存するほどの必要性を有しない情報、又は、通常動作に移行後もしばらくそのままに残しておく情報等が保存される。揮発性メモリ２０３には、トレース情報等大容量の情報が保存される。なお、どの領域にどの情報を保存するかはこの限りではない。
【００７０】
実施の形態２では、情報処理装置２００は、カーネル管理外領域も併用することにより、通常動作後も、保存したログ情報を参照することができる。
【００７１】
実施の形態３．
次に、本発明に係る実施の形態３について説明する。
図１に示されているように、実施の形態３に係る情報処理装置３００は、プロセッサ３０１と、不揮発性メモリ３０２と、揮発性メモリ１０３と、接続Ｉ／Ｆ１０４と、通信Ｉ／Ｆ１０６と、タイマ監視部１１０とを備える。接続Ｉ／Ｆ１０４には、外部記憶媒体１０５が接続されている。
実施の形態３に係る情報処理装置３００は、プロセッサ３０１のメモリマップが異なることを除いて、実施の形態１に係る情報処理装置１００と同様に構成されている。
【００７２】
図１２は、実施の形態３におけるプロセッサ３０１のメモリマップを説明する概略図である。なお、図１２に示されているメモリマップは一例であり、これに限るものではない。
不揮発性メモリ３０２は、ブートプログラム及びカーネルの他、ログ情報を記憶するための第３の記憶領域である第３のログ情報格納領域にログ情報を格納する。これらは、それぞれ、パーティションに分割して管理及び格納され、一部のパーティションの空きが枯渇しても、システム全体に影響が及ばないよう構成されている。
【００７３】
図１３は、実施の形態３において、ＷＤＴ割り込みが発生したときの処理を示すフローチャートである。
図１３に示されている処理において、図６と同様の処理については、図６と同様の符号が付されている。
図１３のステップＳ３０〜Ｓ３２、ステップＳ３４及びステップＳ３５の処理は、図６のステップステップＳ３０〜Ｓ３２、ステップＳ３４及びステップＳ３５の処理と同様である。但し、図１３のステップＳ３２の処理の後には、処理はステップＳ７０に進む。
【００７４】
ステップＳ７０では、プロセッサ３０１は、ステップＳ３２で生成されたログ情報の内、少なくとも一部を、不揮発性メモリ３０２（第３のログ情報格納領域）に保存する。
次に、プロセッサ３０１は、ステップＳ３２で生成されたログ情報の残りを、ステップＳ３０で確保された、揮発性メモリ１０３の第１のログ情報格納領域に保存する（Ｓ７１）。そして、ステップＳ７１の処理の後には、処理はステップＳ３４に進む。
なお、順番はこれに限るものではなく、ステップＳ７１の揮発性メモリ１０３への保存の後に、ステップＳ７０の処理が行われてもよい。
【００７５】
不揮発性メモリ３０２には、ＷＤＴエラー発生時刻及びＷＤＴエラー発生回数が保存される。また、不揮発性メモリ３０２には、ＷＤＴエラー発生時の状態の内、プロセス情報、ＯＳ情報又はハードウェア情報等の基本的情報、及び、比較的容量が小さく、重要かつ保存的価値の高い情報の少なくとも一方が保存される。揮発性メモリ１０３には、トレース情報等大容量の情報が保存される。なお、どの領域にどの情報を保存するかはこの限りではない。
【００７６】
実施の形態３では、情報処理装置３００は、不揮発性メモリ３０２も併用することにより、再起動までの時間は伸びるものの、障害により、次回再起動できない場合にも最低限のログ情報を取り出し残すことができる。
【００７７】
実施の形態は、実施の形態２に示されているように、揮発性メモリ２０３のカーネル管理領域及びカーネル管理外領域の併用、又は、実施の形態３に示されているように、揮発性メモリ１０３のカーネル管理領域及び不揮発性メモリ３０２の併用に限られない。例えば、揮発性メモリ１０３のカーネル管理領域及びカーネル管理外領域、並びに、不揮発性メモリ１０２を組み合わせることにより、より目的に応じた最適なログ情報の記憶が可能となる。
【符号の説明】
【００７８】
１００，２００，３００  情報処理装置、  １０１，２０１，３０１  プロセッサ、  １０２，３０２  不揮発性メモリ、  １０３，２０３  揮発性メモリ、  １０４  接続Ｉ／Ｆ、  １０５  外部記憶媒体、  １０６  通信Ｉ／Ｆ、  １１０  タイマ監視部、  １１１  ＷＤＴ回路、  １１２  割り込み発生回路、  １１３  リセット発生回路、  １１４  一時記憶回路、  １１５  制御回路、  １３０  外部サーバ。
【図１】
0006385322.tif 000002
【図２】
0006385322.tif 000003
【図３】
0006385322.tif 000004
【図４】
0006385322.tif 000005
【図５】
0006385322.tif 000006
【図６】
0006385322.tif 000007
【図７】
0006385322.tif 000008
【図８】
0006385322.tif 000009
【図９】
0006385322.tif 000010
【図１０】
0006385322.tif 000011
【図１１】
0006385322.tif 000012
【図１２】
0006385322.tif 000013
【図１３】
0006385322.tif 000014