(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6835422
(24)【登録日】2021年2月8日
(45)【発行日】2021年2月24日
(54)【発明の名称】情報処理装置及び情報処理方法
(51)【国際特許分類】
G06F 11/07 20060101AFI20210215BHJP
G06F 9/48 20060101ALI20210215BHJP
【FI】
G06F11/07 178
G06F11/07 157
G06F9/48 100F
【請求項の数】6
【全頁数】12
(21)【出願番号】特願2019-202980(P2019-202980)
(22)【出願日】2019年11月8日
【審査請求日】2019年11月8日
(73)【特許権者】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100103894
【弁理士】
【氏名又は名称】家入 健
(72)【発明者】
【氏名】曽根 正浩
【審査官】
石川 雄太郎
(56)【参考文献】
【文献】
特開2015−156101(JP,A)
【文献】
国際公開第2014/112039(WO,A1)
【文献】
国際公開第2012/143978(WO,A1)
【文献】
国際公開第2013/008281(WO,A1)
【文献】
特開2000−112790(JP,A)
【文献】
特開2011−070655(JP,A)
【文献】
米国特許出願公開第2011/0231712(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/07
G06F 11/28−11/36
G06F 9/48
(57)【特許請求の範囲】
【請求項1】
情報処理装置の処理を実行する主制御部と、
前記主制御部の動作を監視する監視部と、
前記主制御部の障害情報を退避するDMA制御部を備えた情報処理装置であって、
前記監視部は、前記主制御部で障害が発生した場合に前記主制御部に割込み信号を出力する第1の処理と、当該第1の処理後に、前記DMA制御部を起動する第2の処理を実行し、
前記主制御部は、前記割込み信号を受け取った場合に前記主制御部の障害情報を退避した後に前記DMA制御部を起動し、
前記DMA制御部は、起動された場合に前記主制御部の障害情報を退避する情報処理装置。
【請求項2】
前記監視部は、
前記主制御部からの信号が第1の期間途切れたときに、前記第1の処理を実行し、
前記主制御部からの信号が第1の期間よりも長い第2の期間途切れたときに、前記第2の処理を実行する請求項1に記載の情報処理装置。
【請求項3】
前記監視部は、
第1の設定値を保持する第1の設定保持部と、
前記第1の設定値より大きい値である第2の設定値を保持する第2の設定保持部と、
前記主制御部からの信号が途切れた場合にカウント動作を継続的に実行するカウンタと、
前記第1の設定値と、前記カウンタのカウント値を比較する第1の比較部と、
前記第2の設定値と、前記カウンタのカウント値を比較する第2の比較部とを有し、
前記第1の比較部は、前記第1の設定値と前記カウント値が一致した場合、前記主制御部に割込み信号を送り、
前記第2の比較部は、前記第2の設定値と前記カウント値が一致した場合、前記DMA制御部を起動する請求項2に記載の情報処理装置。
【請求項4】
前記監視部は、
第3の設定値を保持する設定保持部と、
前記主制御部からの信号が途切れた場合にカウント動作を継続的に実行するカウンタと、
前記第3の設定値と前記カウンタのカウント値を比較する比較部と、
前記主制御部からの信号が途切れた場合にカウント動作を継続的に実行するカウンタと、
起動されるとカウント動作を継続的に実行するタイマと、を有し、
前記比較部は、前記第3の設定値と前記カウント値が一致した場合、前記主制御部に割込み信号を送った後、前記タイマを起動し、
前記タイマは、起動開始後所定時間の経過を検出すると前記DMA制御部を起動する請求項2に記載の情報処理装置。
【請求項5】
前記DMA制御部は、起動された場合に前記主制御部の障害情報を退避し、前記主制御部にリセット信号を出力する請求項1から4のいずれか1項に記載の情報処理装置。
【請求項6】
主制御部で障害が発生した場合に前記主制御部に割込み信号を出力するステップと、
当該割込み信号の出力後に、DMA制御部を起動するステップを備え、
前記主制御部は、前記割込み信号を受け取った場合に前記主制御部の障害情報を退避した後に前記DMA制御部を起動し、前記DMA制御部は、起動された場合に前記主制御部の障害情報を退避する情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は情報処理装置、情報処理方法及び情報処理プログラムに関し、特に主制御部が暴走した場合の動作情報の保存処理技術に関する。
【背景技術】
【0002】
CPU(Central Processing Unit)等の主制御部の暴走を監視する場合には、一般的にWDT(Watch Dog Timer)を使用する。WDTはCPUの暴走により満了するとCPUに対しリセット信号を出力し、情報処理装置を再起動させて復旧を試みる。一般的に、暴走前のCPUの動作情報はRAM(Random Access Memory)内に保存されるが、RAMは揮発性メモリであるため、情報処理装置を再起動させると、消えてしまう。そのため、暴走に至った原因解析の手掛かりがなくなってしまう。
【0003】
特許文献1は、原因解析のための情報を保存する技術を開示している。特許文献1では、WDTは、リセット信号の出力に代えて、割込みを発生させている。そして、特許文献1では、この割り込み処理によって、原因解析のための情報を収集し、自己リセットしている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2012−069032号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に記載された技術では、主制御部が暴走状態に至ると、割込み処理が正常に動作できない可能性がある。そして、この場合には、原因解析のための情報を保存することができない。さらには、自己リセットによる再起動も実行できないため、装置自体の復旧ができなくなってしまう恐れがあるという問題点があった。
【0006】
本発明は、このような問題点を解決するためになされたものであり、主制御部が暴走状態になった場合、原因解析のための情報を保存することができる情報通信装置、情報通信方法及び情報通信プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明にかかる情報処理装置は、情報処理装置の処理を実行する主制御部と、前記主制御部の動作を監視する監視部と、前記主制御部の障害情報を退避するDMA制御部を備えた情報処理装置であって、前記監視部は、前記主制御部で障害が発生した場合に前記主制御部に割込み信号を出力する第1の処理と、当該第1の処理後に、前記DMA制御部を起動する第2の処理を実行し、前記主制御部は、前記割込み信号を受け取った場合に前記主制御部の障害情報を退避した後に前記DMA制御部を起動し、前記DMA制御部は、起動された場合に前記主制御部の障害情報を退避する。
【0008】
本発明にかかる情報処理方法は、主制御部で障害が発生した場合に前記主制御部に割込み信号を出力するステップと、当該割込み信号の出力後に、DMA制御部を起動するステップを備え、前記主制御部は、前記割込み信号を受け取った場合に前記主制御部の障害情報を退避した後に前記DMA制御部を起動し、前記DMA制御部は、起動された場合に前記主制御部の障害情報を退避する。
【0009】
本発明にかかる情報処理プログラムは、主制御部で障害が発生した場合に前記主制御部に対して障害情報を退避させる割込み処理を実行させるステップと、前記主制御部に対して割込み処理を実行させた後に、前記主制御部の障害情報を退避させるためのDMA制御を起動させるステップをコンピュータに実行させる。
【発明の効果】
【0010】
本発明は、主制御部が暴走状態になった場合、原因解析のための情報を保存することができる情報通信装置、情報通信方法及び情報通信プログラムを提供することができる。
【図面の簡単な説明】
【0011】
【
図1】実施の形態1にかかる情報処理装置の構成図である。
【
図2】実施の形態2にかかる情報処理装置の構成図である。
【
図3】実施の形態2にかかるWDTの構成図である。
【
図4】実施の形態2にかかるWDTが第1の処理を行う場合に情報処理装置がする処理を示すシーケンス図である。
【
図5】実施の形態2にかかるCPUの割込み処理動作を示すブロック図である。
【
図6】実施の形態2にかかるDMAコントローラのDMA転送動作を示すブロック図である。
【
図7】実施の形態2にかかるWDTが第2の処理を行う場合に情報処理装置がする処理を示すシーケンス図である。
【
図8】実施の形態3にかかる情報処理装置の構成図である。
【
図9】実施の形態4にかかる情報処理装置の処理を示すシーケンス図である。
【発明を実施するための形態】
【0012】
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
【0013】
発明の実施の形態1.
図1に示されるように、本発明の実施の形態1にかかる情報処理装置101は、主制御部102と、監視部103と、DMA制御部104を備えている。
主制御部102は、情報処理装置101の処理を実行する。監視部103は、主制御部102の動作を監視する。DMA制御部104は、主制御部102の障害情報を退避する。
さらに、監視部103は、主制御部102で障害が発生した場合に主制御部102に割込み信号を出力する第1の処理と、当該第1の処理後に、DMA制御部104を起動する第2の処理を実行する。また、主制御部102は、割込み信号を受け取った場合に主制御部102の障害情報を退避した後にDMA制御部104を起動する。DMA制御部104は、起動された場合に主制御部102の障害情報を退避する。
【0014】
本実施の形態1にかかる情報処理装置101によれば、DMA制御部104によって障害情報の退避処理を行うことができるので主制御部102が暴走状態になった場合、原因解析のための情報を保存することができる。
【0015】
発明の実施の形態2.
図2を用いて、本発明の実施の形態2にかかる情報処理装置の構成について説明する。この情報通信装置は、
図2に示されるように、CPU1、WDT2、DMA(Direct Memory Access)コントローラ3、ROM(Read Only Memory)4、RAM5、不揮発性メモリ6及びCPUバス7を備えている。
【0016】
CPU1は、プログラムにより演算処理をする能力を有する演算装置である主制御部の一例である。本実施の形態にかかるCPU1は、特に、一定周期でWDT2に対してタイマクリア信号を出力する。CPU1は、自身の動作に異常が発生すると、WDT2から割込み信号を受け取る。CPU1は、当該割込み信号を受信すると、予めROM4に記憶されたプログラムに従って割込み処理を実行する。CPU1は、当該割込み処理を実行することによって、CPU1の情報、及びRAM5内の情報を不揮発性メモリ6に退避させる。
【0017】
WDT2は、基本的に、CPU1の動作を監視する監視部である。本実施の形態にかかるWDT2は、特に、CPU1の動作を2段階の処理により監視する。CPU1の動作異常に起因してCPU1からタイマクリア信号が一定時間入力されない場合に、WDT2は、CPU1に対し割込み信号を出力する。その後、WDT2は、さらに一定時間タイマクリア信号が入力されない場合に、DMAコントローラ3に対してDMA転送開始信号を出力する。
【0018】
DMAコントローラ3は、CPU1を介さずに、周辺機器、RAM5や不揮発性メモリ6等の記憶手段との間でデータを転送するDMA制御部である。本実施の形態にかかるDMAコントローラ3は、WDT2からの信号又はCPU1からのDMA転送開始コマンドにより、予め指定された情報をRAM5から不揮発性メモリ6に転送する。予め指定されている情報の一例は、動作ログである。DMAコントローラ3は、予め指定された情報の転送処理が終了すると、その後にCPU1に対しH/Wリセット信号を出力する。DMAコントローラ3は、通常、DMA転送終了をCPU1に対して割込みによって通知するが、本発明ではその信号を情報処理装置のリセット信号として使用している。
【0019】
ROM4は、CPU1が実行するプログラムを記憶する記憶手段である。本実施の形態にかかるROM4は、CPU1が割込み処理を実行するためのプログラムを格納している。
【0020】
RAM5は、CPU1の動作情報を記憶する揮発性メモリである。RAM5は、揮発性を有するため、CPU1の電源が停止するか若しくはCPU1がリセットされると、RAM5に記憶されたデータは失われる。
【0021】
不揮発性メモリ6は、RAM5から転送されたCPU1の動作情報を記憶する記憶手段である。不揮発性メモリ6は、不揮発性を有するため、CPU1の電源が停止したりCPU1がリセットされたりしても、不揮発性メモリ6に記憶されたデータは失われない。
【0022】
CPUバス7は、CPU1、WDT2、DMAコントローラ3、ROM4、RAM5、不揮発性メモリ6を相互にデータの送受信が可能なように接続している。
【0023】
続いて、
図3を用いて、WDT2の構成について説明する。ただし、
図3に示す構成でなくてもWDTが2段階で動作できる構成であればよい。このWDT2は、カウンタ21、1回目設定値保持部22、比較部23、比較部24及び2回目設定値保持部25を備える。1回目設定値保持部22と2回目設定値保持部25は、不揮発性メモリにより構成されている。
【0024】
カウンタ21は、CPU1から出力されたWDTクリア信号を受け取ると、カウンタ値を0に設定する。それ以外の場合、カウンタ21は、一定周期でカウントし続ける。
【0025】
1回目設定値保持部22は、CPU1に対して割込み信号を発生させるためのWDTのカウント値を保持する。当該カウント値は、予め設定された値である。
【0026】
比較部23は、カウンタ21のカウンタ値と1回目設定値保持部22に保持された値を比較し、比較の結果両者の値が一致した場合に、CPU1に対して割込み信号を出力する。
【0027】
比較部24は、カウンタ21のカウンタ値と2回目設定値保持部24に保持された値を比較し、比較の結果両者の値が一致した場合に、DMAコントローラ3に対してDMA転送開始信号を出力する。
【0028】
2回目設定値保持部25は、DMAコントローラ3へDMA転送開始信号を発生させるためのWDTのカウント値を保持する。当該カウント値は、予め設定された値である。なお、2回目設定値保持部25の設定値は、1回目設定値保持部22の設定値よりも大きい値を設定する。
【0029】
続いて、
図4のシーケンス図を用いて、本発明の実施形態1にかかる情報処理装置の動作について具体例を用いて詳細に説明する。この具体例では、CPUが暴走しているが、CPUの割込み処理自体は正常に実行されている。
【0030】
CPU1は、情報処理装置を起動したときに、DMAコントローラ3に対してRAM5の情報エリアと、不揮発性メモリ6の退避エリアの情報を格納する。また、CPU1は、情報処理装置を起動したときに、WDT2の1回目設定値保持部22及び2回目設定値保持部25に、それぞれの設定値を設定する。2回目設定値保持部25に保持されている設定値は、1回目設定値保持部22に保持されている設定値よりも大きい。
【0031】
CPU1は、自身が通常動作をしている場合、WDT2に対しWDTクリア信号を出力し、WDT2内のカウンタ21を0にクリアする(Seq1)。仮にCPU1が暴走した場合に、CPU1は、WDTクリア命令を出力しない。この場合、WDT2は、カウンタ21はカウントアップし続け、カウンタ値はより大きな値に変更され続ける。そして、比較部23は、カウンタ21のカウンタ値が1回目設定値保持部22に保持されている値と一致したと判定すると、CPU1に対して割込み信号を出力する(Seq2)。CPU1は、WDT2から割込み信号が入力されると、暴走状態である通常モードから割込みモードに遷移する。CPU1は、割込みモードでは、予めROM4内に格納されたプログラムに従って割込み処理を行う。CPU1は、割込み処理により、CPU1の情報、及びRAM5内の情報を取得する。さらに、その後に、CPU1は、DMAコントローラ3に対してCPUバス7を介してDMA転送開始コマンドを送信する(Seq3)。
なお、本実施の形態にかかるCPU1の割込み処理方法については、後で詳述する。
【0032】
DMAコントローラ3は、DMA転送開始コマンドを受信すると、予め指定された情報エリアのDMA転送を実行する。ここで、予め指定された情報エリアは例えば動作ログを格納するエリアである。DMA転送後、DMAコントローラ3は、H/Wリセット信号をCPU1に対して出力し、情報処理装置を再起動する(Seq4)。
なお、本実施の形態にかかるDMAコントローラ3のDMA転送動作については、後に詳述する。
【0033】
続いて、
図5を用いて、CPU1の割込み処理動作を詳細に説明する。CPU1は、CPU1の情報、及びRAM5内の情報を読み出し、読み出した情報を不揮発性メモリ6へ書込む。CPU1の情報は、例えばCPUの内部レジスタのダンプであり、RAM5内の情報は、例えばタスクのスタックの情報である。不揮発性メモリ6に格納したい情報、その読み出し方、及び書き込み方は、ROM4に格納されたプログラムにより規定されているので、詳細な情報を取得することができる。
【0034】
続いて、
図6を用いて、DMAコントローラ3のDMA転送動作を詳細に説明する。DMAコントローラ3はRAM5内の情報を読み出し、読み出した情報を不揮発性メモリ6へ書込む。指定されたエリアの情報の取得が終了すると、DMAコントローラ3は、H/Wリセット信号をCPU1に対して出力し、情報処理装置を再起動する。
【0035】
続いて、
図7のシーケンス図を用いて、CPUが暴走したときにCPUの割込み処理にも異常がある場合の処理の流れについて説明する。
【0036】
暴走状態にあるCPU1は、暴走中にRAM5内のどこにアクセスをし、どのデータを書き換えているか不明である。このような状態で、割込みによって強制復帰させたCPU1の割込み処理は、正常に終了しない場合がある。正常に動作できなかった場合、CPU1は、DMAコントローラ3にDMA転送開始コマンドを送信できないため、情報処理装置を再起動することができない。CPU1の暴走状態は、例えばCPU1の例外異常によりCPU1が動作不能となる場合である。本実施の形態では、このような状況を避けるためにWDT2を2段階の監視処理を実行している。
【0037】
CPU1が通常動作状態にある場合に、CPU1は、WDT2に対してWDTクリア命令を出力し、WDT2内のカウンタ21を0にクリアする(Seq5)。仮にCPU1が暴走した場合に、CPU1はWDTクリア命令を出力しないため、カウンタ21はカウントアップし続ける。これによりカウンタ21のカウント値はより大きな値に変更され続ける。
【0038】
比較部23は、カウンタ21のカウンタ値が1回目設定値保持部22に保持されている設定値と一致したと判定すると、CPU1に対し割込み信号を出力する(Seq6)。通常、CPU1は、割込み信号が入力された場合、暴走状態である通常モードから割込みモードに遷移する。しかし、CPU1の割込み処理に異常がある場合に、CPU1は、情報取得もDMA転送開始コマンドの送信もできず暴走状態を継続することになる。その結果、WDT2内のカウンタ21は、1回目設定値保持部22に保持された設定値を越えて、カウントアップし続ける。そして、比較部24は、カウンタ21のカウンタ値が2回目設定値保持部25に保持されている値と一致したと判定すると、DMAコントローラ3に対しDMA転送開始信号を出力する(Seq7)。DMAコントローラ3は、DMA転送開始信号を受信した後、DMA転送後、H/Wリセット信号をCPU1に対して出力し、情報処理装置を再起動する(Seq8)。この動作はH/W動作であるため、CPU1やRAM5内の情報によらず
図4で示した動作と同じ動作である。すなわち、情報処理装置の所定回路は、予め指定された情報エリアのDMA転送を行った後、再起動を行う。
【0039】
このように、本実施の形態2にかかる情報処理装置は、CPUの暴走をWDTが検知した後、割り込み処理を行うことによって、RAM内の詳細情報の取得、及び不揮発性メモリへの格納ができ、CPUの暴走の原因解析を行うことが容易になる。そして、その割り込み処理が異常になった場合であっても、WDTを2段階化してあるため、情報処理装置を確実に再起動できる。さらに、その割込み処理による情報が不十分であっても、DMAによる情報取得を行うことによって、暴走の原因解析のために最低限の情報を取得できる。
【0040】
発明の実施の形態3.
次に、
図8を用いて、本発明の実施の形態3にかかる情報処理装置の構成について説明する。この情報通信装置は、実施の形態1の情報通信装置にかかるWDT2のタイマを1段階にしたWDT8に変更し、タイマ9を追加した構成を有する。したがって、
図8に示されるように、情報処理装置は、CPU1、WDT8、タイマ9、DMAコントローラ3、ROM4、RAM5、不揮発性メモリ6及びCPUバス7を備えている。
【0041】
WDT8は、CPU1の動作を監視する手段である。WDT8は、CPU1からタイマクリア信号が一定時間入力されない場合にCPU1に対し割込み信号を送る。タイマ9は、CPU1に対する割込み信号と同期してカウント動作を開始する。タイマ9は、カウント動作の開始から予め定めた所定期間が経過したことを検出すると、DMAコントローラ3に対してDMA転送開始信号を出力する。以降の処理は、発明の実施の形態2にかかる情報処理装置と同じである。
【0042】
以上説明したように、本実施の形態3にかかる情報処理装置は、CPUの暴走をWDTが検知した後、割り込み処理を行うことによって、RAM内の詳細情報の取得、及び不揮発性メモリへの格納ができ、CPUの暴走の原因解析を行うことが容易になる。そして、その割り込み処理が異常な場合であっても、タイマ9が所定時間の経過を検出し、その後にDMA転送処理を実行できるように動作するため、情報処理装置を確実に再起動できる。さらに、その割込み処理による情報が不十分であっても、DMAによる情報取得を行うことによって、暴走の原因解析のために最低限の情報を取得できる。
【0043】
発明の実施の形態4.
次に、
図9のシーケンス図を用いて、本発明の実施の形態4にかかる情報処理装置の処理の流れについて説明する。この情報通信装置は、発明の実施の形態2にかかる情報処理装置とは異なり、CPU1が自身の割込み処理が正常に終了してもDMAコントローラ3への転送を行わない。すなわち、割込み処理の終了の結果にかかわらず、DMAコントローラ3は、WDT2から信号を受信する。
【0044】
通常動作状態のCPU1は、WDT2に対しWDTクリア命令を出力し、WDT2内のカウンタ21を0にクリアする(Seq9)。仮にCPU1が暴走した場合、CPU1は、WDTクリア命令を出力しない。このため、カウンタ21は、カウントアップし続ける。
【0045】
比較部23は、カウンタ21のカウンタ値が1回目設定値保持部22に保持されている設定値と一致したと判定すると、CPU1に対し割込み信号を出力する(Seq10)。通常、CPU1は、割込み信号が入力された場合、暴走状態である通常モードから割込みモードに遷移する。この時、CPU1は、DMAコントローラ3に通信を行わない。CPU1の割込み処理の間も、WDT2内のカウンタ21は、カウントアップし続ける。そして、比較部24は、カウンタ21のカウンタ値が2回目設定値保持部24に保持されている値と一致したと判定したとき、DMAコントローラ3に対しDMA転送開始信号を出力する(Seq11)。DMAコントローラ3は、DMA転送開始信号を受信した後、DMA転送後、H/Wリセット信号をCPU1に対して出力し、装置を再起動する(Seq12)。この動作はH/W動作であるため、CPU1やRAM5内の情報によらず
図4で示した動作と同じ動作である。すなわち、所定回路は、予め指定された情報エリアのDMA転送を行った後、再起動を行う。
【0046】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記によって限定されるものではない。本願発明の構成や詳細には、発明の範囲内で当事者が理解し得る様々な変更をすることができる。なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することができる。
【符号の説明】
【0047】
1 CPU
2 WDT
3 DMAコントローラ
4 ROM
5 RAM
6 不揮発性メモリ
8 WDT
9 タイマ
7 CPUバス
21 カウンタ
22 1回目設定値保持部
23 比較部
24 比較部
25 2回目設定値保持部
101 情報処理装置
102 主制御部
103 監視部
104 DMA制御部
【要約】
【課題】主制御部が暴走状態になった場合、原因解析のための情報を保存することができる情報通信装置、情報通信方法及び情報通信プログラムを提供すること。
【解決手段】本発明にかかる情報処理装置101は、情報処理装置の処理を実行する主制御部102と、主制御部102の動作を監視する監視部103と、主制御部102の障害情報を退避するDMA制御部104を備えている。監視部103は、主制御部102で障害が発生した場合に主制御部102に割込み信号を出力する第1の処理と、当該第1の処理後に、DMA制御部104を起動する第2の処理を実行する。主制御部102は、割込み信号を受け取った場合に主制御部102の障害情報を退避した後にDMA制御部104を起動する。DMA制御部104は、起動された場合に主制御部102の障害情報を退避する。
【選択図】
図1