JP2011159136A - 制御装置、制御装置の異常検出・復旧方法および電子機器 - Google Patents
制御装置、制御装置の異常検出・復旧方法および電子機器 Download PDFInfo
- Publication number
- JP2011159136A JP2011159136A JP2010020809A JP2010020809A JP2011159136A JP 2011159136 A JP2011159136 A JP 2011159136A JP 2010020809 A JP2010020809 A JP 2010020809A JP 2010020809 A JP2010020809 A JP 2010020809A JP 2011159136 A JP2011159136 A JP 2011159136A
- Authority
- JP
- Japan
- Prior art keywords
- core
- sub
- reset
- abnormality
- predetermined
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】複数のプロセッサコアの、どのプロセッサコアに異常が生じても確実に復旧する制御装置を提供する。
【解決手段】サブコア32は、メインコア31に所定コマンドを所定送信間隔で送信し、その応答を受信する第1動作状態監視部53と、所定応答時間内に応答を受信できない場合、メインコア31に異常が発生したと判定する第1異常判定部54と、異常の発生を判定した場合、動作ログを不揮発性メモリー23に記録後、リセット処理を指令する第1リセット指令部55とを備え、メインコア31は、サブコア32から所定コマンドを受信し、その応答を送信する第2動作状態監視部64と、所定受信時間内に次の所定コマンドを受信できない場合、サブコア32に異常が発生したと判定する第2異常判定部65と、異常の発生を判定した場合、動作ログを不揮発性メモリー23に記録後、リセット処理を指令する第2リセット指令部66とを備える。
【選択図】図3
【解決手段】サブコア32は、メインコア31に所定コマンドを所定送信間隔で送信し、その応答を受信する第1動作状態監視部53と、所定応答時間内に応答を受信できない場合、メインコア31に異常が発生したと判定する第1異常判定部54と、異常の発生を判定した場合、動作ログを不揮発性メモリー23に記録後、リセット処理を指令する第1リセット指令部55とを備え、メインコア31は、サブコア32から所定コマンドを受信し、その応答を送信する第2動作状態監視部64と、所定受信時間内に次の所定コマンドを受信できない場合、サブコア32に異常が発生したと判定する第2異常判定部65と、異常の発生を判定した場合、動作ログを不揮発性メモリー23に記録後、リセット処理を指令する第2リセット指令部66とを備える。
【選択図】図3
Description
本発明は、1つのパッケージ内に複数のプロセッサコアが集積されたマルチコアプロセッサを備えた制御装置、制御装置の異常検出・復旧方法および電子機器に関するものである。
従来、複数の機器から構成されるシステムにおいて、これら各機器の状態を監視し、異常を検出した場合に復旧する方法として、特許文献1が提案されている。当該特許文献1に記載のシステムは、クライアントとプリンターとプリントサーバーからなり、プリンターはプリントサーバーを介してクライアントと通信を行う。このシステムでは、プリンターが、クライアントから送信されるコマンド(リセット確認コマンド)を所定時間内に受信した場合、プリンターとクライアントとの間に介在するプリントサーバーは正常に動作していると判断する。一方、クライアントからのコマンドを所定時間内に受信できなかった場合、プリンターは、プリントサーバーの状態が機能不全状態(ハングアップ状態)であると判断し、プリントサーバーをリセットする。
ところで、上記の監視方法、即ち、機器間(CPU間)のコマンドの授受により状態を監視するという方法は、複数のプロセッサコアを1つのパッケージに集約したマルチコアプロセッサにも適用することが可能である。例えば、デュアルコアプロセッサに適用する場合、2つのプロセッサコアのうちの一方(コアAとする)を上記プリンターに見立て、他方(コアBとする)を上記プリントサーバーに見立てることで、プロセッサコア間でコマンドの授受による監視を実現することができる。
しかしながら、上記引用文献1では、プリントサーバーに異常が発生した場合、プリンターからプリントサーバーをリセットすることはできるが、プリンターに異常が発生した場合、プリントサーバーからプリンターをリセットできないという問題がある。つまり、プリンターに異常が発生した場合に復旧することができない。これは、デュアルコアプロセッサに適用した場合も同様であり、コアBに異常が発生した場合、コアAはリセット処理を実行できるが、その逆はできない。即ち、2つのプロセッサコアのうち、一方のプロセッサコアの異常時にはリセット処理を行い復旧できるが、他方のプロセッサコアの異常時にはリセット処理が行えないため、復旧できないという問題が発生する。
しかしながら、上記引用文献1では、プリントサーバーに異常が発生した場合、プリンターからプリントサーバーをリセットすることはできるが、プリンターに異常が発生した場合、プリントサーバーからプリンターをリセットできないという問題がある。つまり、プリンターに異常が発生した場合に復旧することができない。これは、デュアルコアプロセッサに適用した場合も同様であり、コアBに異常が発生した場合、コアAはリセット処理を実行できるが、その逆はできない。即ち、2つのプロセッサコアのうち、一方のプロセッサコアの異常時にはリセット処理を行い復旧できるが、他方のプロセッサコアの異常時にはリセット処理が行えないため、復旧できないという問題が発生する。
本発明は、上記の問題に鑑み、マルチコアプロセッサを構成する複数のプロセッサコアのうち、どのプロセッサコアに異常が生じても確実に復旧することができる制御装置、制御装置の異常検出・復旧方法および電子機器を提供することを目的とする。
本発明の制御装置は、制御対象物を制御する複数のプロセッサコアと、当該複数のプロセッサコアによって共用されるリセットレジスターと、当該複数のプロセッサコアが自身の動作ログを記録するための揮発性の共有メモリーと、当該複数のプロセッサコアがアクセス可能な不揮発性メモリーと、を有し、各プロセッサコアは、メインコアおよびサブコアの少なくとも一方として機能し、且つ、複数のプロセッサコアの間で、メインコアおよびサブコアの主従関係が成立している制御装置であって、サブコアは、メインコアに対して、当該メインコアの動作状態を取得するための所定コマンドを所定の送信間隔で送信し、その応答を受信する第1動作状態監視部と、応答を、所定の応答時間内に受信できなかった場合、メインコアに異常が発生したと判定する第1異常判定部と、第1異常判定部により異常の発生を判定した場合、共有メモリー内の動作ログを不揮発性メモリーに記録した後、リセットレジスターに対し装置全体のリセット処理を指令する第1リセット指令部と、を備え、メインコアは、サブコアから所定コマンドを受信すると共に、サブコアに対し応答を送信する第2動作状態監視部と、所定コマンドを受信してから、所定の受信時間内に次の所定コマンドを受信できなかった場合、サブコアに異常が発生したと判定する第2異常判定部と、第2異常判定部により異常の発生を判定した場合、共有メモリー内の動作ログを不揮発性メモリーに記録した後、リセットレジスターに対し装置全体のリセット処理を指令する第2リセット指令部と、を備えたことを特徴とする。
また、本発明の制御装置の異常検出・復旧方法は、制御対象物を制御する複数のプロセッサコアと、当該複数のプロセッサコアによって共用されるリセットレジスターと、当該複数のプロセッサコアが自身の動作ログを記録するための揮発性の共有メモリーと、当該複数のプロセッサコアがアクセス可能な不揮発性メモリーと、を有し、各プロセッサコアは、メインコアおよびサブコアの少なくとも一方として機能し、且つ、複数のプロセッサコアの間で、メインコアおよびサブコアの主従関係が成立している制御装置の異常検出・復旧方法であって、サブコアは、メインコアに対して、当該メインコアの動作状態を取得するための所定コマンドを所定の送信間隔で送信し、その応答を受信する第1動作状態監視ステップと、応答を、所定の応答時間内に受信できなかった場合、メインコアに異常が発生したと判定する第1異常判定ステップと、第1異常判定ステップにより異常の発生を判定した場合、共有メモリー内の動作ログを不揮発性メモリーに記録した後、リセットレジスターに対し装置全体のリセット処理を指令する第1リセット指令ステップと、を実行し、メインコアは、サブコアから所定コマンドを受信すると共に、サブコアに対し応答を送信する第2動作状態監視ステップと、所定コマンドを受信してから、所定の受信時間内に次の所定コマンドを受信できなかった場合、サブコアに異常が発生したと判定する第2異常判定ステップと、第2異常判定ステップにより異常の発生を判定した場合、共有メモリー内の動作ログを不揮発性メモリーに記録した後、リセットレジスターに対し装置全体のリセット処理を指令する第2リセット指令ステップと、を実行することを特徴とする。
これらの構成によれば、マルチコアプロセッサを構成する複数のプロセッサコアを、メインコアおよびサブコアの少なくとも一方として割り当て、当該メインコアおよびサブコア間で、所定コマンドおよびその応答の送受信を行うことでコア間の相互監視を行う。そして、メインコアに異常が発生した場合、サブコアが当該メインコアの異常を検出してリセット処理を実行し、サブコアに異常が発生した場合、メインコアが当該サブコアの異常を検出してリセット処理を実行する。また、複数のプロセッサコアの間では、メインコアとサブコアの主従関係が成立しているため、これら複数のプロセッサコアのうち、どのプロセッサコアに異常が発生しても、対となる他方のプロセッサコアが自動的にリセット処理を行うことができ、確実に装置全体(特に、異常状態のプロセッサコア)を復旧することができる。
また、リセット処理を行う前に、異常を検出したプロセッサコアが、異常が発生したプロセッサコアを含む全てのプロセッサコアの動作ログを不揮発性メモリーに記録するため、ユーザーは記録された情報を元に、容易に障害発生原因の解析を行うことができる。
また、リセット処理を行う前に、異常を検出したプロセッサコアが、異常が発生したプロセッサコアを含む全てのプロセッサコアの動作ログを不揮発性メモリーに記録するため、ユーザーは記録された情報を元に、容易に障害発生原因の解析を行うことができる。
本発明の制御装置において、第1および第2動作状態監視部によるコア間通信を実行するか否かを示すフラグをさらに有し、第1または第2リセット指令部の指令によりリセット処理が実行された場合、フラグを、コア間通信をしないことを示す無効状態に設定することが好ましい。
この構成によれば、第1または第2リセット指令部の指令によりリセット処理が実行された場合、次回起動時はコア間通信による相互監視を行わないようにする。言い換えれば、1度リセット処理を行った後は、コア間通信による相互監視を停止する。これにより、例えば、ハードウェア障害等によりリセット処理が繰り返し行われることを防止でき、結果として、障害時の動作ログが上書きされ障害発生原因の解析に必要な情報が消失するといったことを防止できる。また、ユーザーが障害の発生自体に気づかず、異常な状態で装置を使い続けてしまう等の事象も回避できる。
本発明の制御装置において、動作ログは、共有メモリー上の所定領域に、所定時間間隔で記録され、所定領域は、リングバッファとして構成されることが好ましい。
この構成によれば、動作ログを記録する際のオーバーフローを防止することができる。
本発明の制御装置において、送信間隔、応答時間および受信時間のうちの、少なくとも1つを設定する時間設定部を、さらに備えたことが好ましい。
また、本発明の制御装置において、フラグを無効状態に設定するまでのリセット処理の回数を設定するリセット回数設定部を、さらに備えたことが好ましい。
これらの構成によれば、マルチコアプロセッサを搭載する装置の特性(利用頻度や重要性等)に応じた時間設定、あるいはリセット回数の設定を行うことができる。これにより、より多くの装置に柔軟に対応でき、利便性が良い。
本発明の制御装置において、サブコアは、外部装置から送信される指示を受信し、メインコアは、前記指示に基づき制御対象物を制御することが好ましい。
この構成によれば、プリンター等の出力に関わるメカニズム(制御対象物)や、スキャナーや磁気読取器等の入力に関わるメカニズム(制御対象物)を備えた装置に適応が可能である。
本発明の電子機器は、上記に記載の制御装置を備えたことを特徴とする。
この構成によれば、複数のプロセッサコアのうち、どのプロセッサコアに異常が発生しても、確実に装置全体を復旧することができる電子機器を提供することができる。
以下、添付の図面を参照して、本発明の一実施形態に係る制御装置および制御装置の異常検出・復旧方法について説明する。なお、本実施形態では、制御装置を備えた機器として、プリンターを例に挙げて説明する。また、制御装置の中核を成すプロセッサ(CPU)は、2つのプロセッサコアが1つのパッケージに集積された、所謂デュアルコアプロセッサ(デュアルコアCPU)により構成されているものとする。
図1は、本実施形態に係るプリンター1(電子機器)の構成を示す制御ブロック図である。同図に示すように、プリンター1は、制御部11(制御装置)、プリンター機構部12(制御対象物、メカニズム)およびネットワークインターフェイス部(ネットワークI/F部)13を主要な構成要素とする。プリンター機構部12は、印刷機構、印刷媒体搬送機構、印刷媒体切断機構およびインク供給機構など(いずれも図示省略)、プリンター1としての主要な機能を実現するための各種機構を有している。ネットワークI/F部13は、パーソナルコンピュータ等の外部装置2との接続および通信を行うためのインターフェイスであり、例えば、LANインターフェイスやUSB(Universal Serial Bus)インターフェイス等を有している。
制御部11は、デュアルコアプロセッサ21、共有メモリー(共有RAM)22、およびフラッシュROM(不揮発性メモリー)23を主要な構成要素とする。デュアルコアプロセッサ21は、2つのプロセッサコア(ここでは、メインコア31およびサブコア32とする)およびリセットレジスター33を有している。
メインコア31は、主にプリンター機構部12を構成する各機構を制御するものであり、例えば、印刷ヘッド制御、印刷媒体の送り制御、印刷媒体の切断制御、およびインクの供給制御などを行う。一方、サブコア32は、主にネットワークI/F13を介した外部装置2との通信制御を行う。このメインコア31およびサブコア32は、それぞれ独立したプログラムを実行可能であり、OS(Operating System)もそれぞれ独立したプロセスとなっている。このため、2つのプロセッサコアは、他のプロセッサコアの状態に影響されること無くプログラムを実行する。また、これらメインコア31およびサブコア32は、共有メモリー22を介してコア間通信を行う機構を備えている。このコア間通信により、後述する状態取得コマンドおよびその応答の授受を行うことで、双方のプロセッサコアの状態を相互に監視する機能を実現する(詳細は後述する)。
リセットレジスター33は、プリンター1(デュアルコアプロセッサ21全体)のリセット処理(リブート処理)を行うためのリセット信号を出力するものであり、メインコア31およびサブコア32の双方からアクセス可能と成っている。
共有メモリー22は、各プロセッサコアによる各種処理を行う際の作業領域(ワーク領域)として使用される。また、共有メモリー22は、各プロセッサコアのコア間通信による相互監視に関する情報を記憶する領域(以下、「相互監視用領域41(図2参照)」と称す。)を有している。以下、図2を参照して説明する。
図2は、相互監視用領域41を説明する図である。同図に示すように、相互監視用領域41は、相互監視有効/無効フラグ領域42、識別フラグ領域43、ログ管理情報領域44、メインコア用動作ログ保存領域45およびサブコア用動作ログ保存領域46を有している。
相互監視有効/無効フラグ領域42は、メインコア31とサブコア32との間で相互監視を行うか否か(相互監視を有効にするか無効にするか)を示すフラグ(相互監視有効/無効フラグ)を記録する領域である。この領域42は、メインコア31の起動時に参照され、当該参照結果に基づいて、コア間の相互監視を行うか否かが判定される。なお、このフラグの値は、外部装置2等からユーザーが所定の指示コマンドを発行することにより任意に設定することが可能である。本実施形態では、相互監視有効/無効フラグ領域42には、デフォルトの値として、「有効」を示すフラグが設定されているものとする。
識別フラグ領域43は、どちらのプロセッサコアが異常(ハングアップ)を検出してプリンター1のリセット処理を行ったのかを示すフラグ(識別フラグ)を記憶する領域である。この識別フラグとしては、例えば、メインコア31およびサブコア32を特定する値を予め定義しておき、異常を検出した方のプロセッサコアを示す値を記録するようにしても良いし、どちらか一方のプロセッサコアだけが(例えば、メインコア31だけが)この識別フラグを記録するようにしても良い。後者の場合、識別フラグが記録されているか否かで、どちらのプロセッサコアがリセット処理を行ったのかを知ることができる。
ログ管理情報領域44は、異常発生時のログ解析に必要な情報のうち、両プロセッサコア31、32で共通の情報(ログ管理情報)を記録する領域である。例えば、異常を検出した日時情報などが挙げられる。
メインコア用動作ログ保存領域45は、異常発生時のログ解析時にメインコア31の動作状況を分析するための情報(動作ログ)を、定期的に(所定時間間隔で)記録する領域である。一方、サブコア用動作ログ保存領域46は、異常発生時のログ解析時にサブコア32の動作状況を分析するための情報(動作ログ)を、定期的に記録する領域である。記録する動作ログとしては、例えば、内部レジスタ情報、プログラム内で管理している状態情報、ユーザー操作情報、エラー情報などが挙げられる。なお、これらメインコア用動作ログ保存領域45およびサブコア用動作ログ保存領域46は、リングバッファとして構成されている。これにより、定期的に動作ログを記録し、複数の動作ログを保持する場合のオーバーフローを防止することができる。
図1の説明に戻る。フラッシュROM23は、共有メモリー22の相互監視用領域41に保存された情報を不揮発に記録するものであり、当該フラッシュROM23への記録は、メインコア31およびサブコア32のいずれか一方で異常が発生した場合に、当該異常を検出した側のプロセッサコアにより行われる。このフラッシュROM23の情報は、リセット処理によりプリンター1が再起動した際、メインコア31により共有メモリー22の所定領域(図示省略)に展開され、ユーザーによる障害発生原因の解析に利用される。また、フラッシュROM23に記録された相互監視有効/無効フラグの値は、リセット処理によりプリンター1が再起動した際、共有メモリー22の相互監視有効/無効フラグ領域42に設定される。
以上の構成により、制御部11は、2つのプロセッサコアの間で相互監視を実行し、いずれかのプロセッサコアで異常が発生した場合、他方のプロセッサコア(正常動作しているプロセッサコア)が当該異常を検出し、リセットレジスター33によってプリンター1のリセット処理を行う。以下、プロセッサコア間での相互監視/異常検出/復旧を実現するための機能構成およびその手順について、図3ないし図5を参照して詳細に説明する。
図3は、メインコア31およびサブコア32の機能構成について詳細に説明する図である。同図に示すように、サブコア32は、第1動作ログ記録部51、相互監視有無問い合わせ部52、第1動作状態監視部53、第1異常判定部54、および第1リセット指令部55を有している。
第1動作ログ記録部51は、定期的に、自身(サブコア32)の動作ログを共有メモリー22のサブコア用動作ログ保存領域46に記録する。相互監視有無問い合わせ部52は、メインコア31に対し、コア間通信による相互監視を実行するか否かを問い合わせ、当該問い合わせに対する応答を受信する。
第1動作状態監視部53は、メインコア31に対して、当該メインコア31の動作状態を取得するための状態取得コマンドを所定の送信間隔で送信し、その応答を受信する。この状態取得コマンドの送信は、上記相互監視有無問い合わせ部52による問い合わせに対し、メインコア31から「相互監視有効」を示す応答を受信した場合に行われ、これによりコア間の相互監視が開始される。一方、メインコア31から「相互監視無効」を示す応答を受信した場合は、状態取得コマンドの送信を行わない。つまり、相互監視を実行しない。
第1異常判定部54は、メインコア31からの状態取得コマンドに対する応答を、所定の応答時間内に受信できなかった場合、メインコア31に異常が発生したと判定する。
第1リセット指令部55は、第1異常判定部54によりメインコア31の異常を検出(判定)した場合、プリンター1(デュアルコアプロセッサ21全体)のリセット処理を行う。この第1リセット指令部55は、実際にリセット処理を行う前に、まず、共有メモリー22に記録されている相互監視有効/無効フラグを「無効」に設定すると共に、現時点の自身の動作ログを記録し、その後、共有メモリー22の相互監視用領域41に記録された全ての情報(相互監視有効/無効フラグ(無効)、識別フラグ、異常検出日時、メインコア31およびサブコア32の動作ログなど)をフラッシュROM23に記録(コピー)する。そして、リセットレジスター33に対して指令を出し、プリンター1のリセット処理を行う。
上記のように、第1リセット指令部55によりリセット処理を行う場合、相互監視有効/無効フラグを「無効」に設定することで、当該リセット処理により再起動した時に、コア間通信による相互監視を開始しないようにすることができる。言い換えれば、1度リセット処理を行った後は、コア間通信による相互監視を停止する。これにより、例えば、ハードウェア障害等によりリセット処理が繰り返し行われることを防止でき、結果として、障害時の動作ログが上書きされ障害発生原因の解析に必要な情報が消失するといったことを防止できる。また、ユーザーが障害の発生自体に気づかず、異常な状態で装置を使い続けてしまうといった事象も回避できる。
一方、メインコア31は、第2動作ログ記録部61、相互監視有無判別部62、相互監視有無応答部63、第2動作状態監視部64、第2異常判定部65、および第2リセット指令部66を有している。
第2動作ログ記録部61は、定期的に、自身(メインコア31)の動作ログを共有メモリー22のメインコア用動作ログ保存領域45に記録する。相互監視有無判別部62は、自身の起動時に、共有メモリー22の相互監視有効/無効フラグ領域42を参照し、当該領域42に記録されたフラグの状態を判別する。
相互監視有無応答部63は、サブコア32(相互監視有無問い合わせ部52)からの問い合わせに対し、上記相互監視有無判別部62による判別結果に基づく応答を返す。つまり、相互監視有無判別部62でフラグが「有効」に設定されていると判別した場合は、「相互監視有効」を示す応答を返し、フラグが「無効」に設定されていると判別した場合は、「相互監視無効」を示す応答を返す。
第2動作状態監視部64は、サブコア32(第1動作状態監視部53)から状態取得コマンドを受信し、サブコア32に対して当該状態取得コマンドに対する応答を送信する。第2異常判定部65は、サブコア32から状態取得コマンドを受信した後、所定の受信時間内に、次の状態取得コマンドを受信できなかった場合、サブコア32に異常が発生したと判定する。
第2リセット指令部66は、第2異常判定部65によりサブコア32の異常を検出した場合、プリンター1(デュアルコアプロセッサ21全体)のリセット処理を行う。この第2リセット指令部66においても、上記第1リセット指令部55と同様、実際にリセット処理を行う前に、まず、共有メモリー22に記録されている相互監視有効/無効フラグを「無効」に設定すると共に、現時点の自身の動作ログを記録し、その後、共有メモリー22の相互監視用領域41に記録された全ての情報(相互監視有効/無効フラグ(無効)、識別フラグ、異常検出日時、メインコア31およびサブコア32の動作ログなど)をフラッシュROM23に記録(コピー)する。そして、リセットレジスター33に対して指令を出し、プリンター1のリセット処理を行う。つまり、第2リセット指令部66によりリセット処理を行う場合においても、相互監視有効/無効フラグを「無効」に設定することで、当該リセット処理により再起動した時に、コア間通信による相互監視を開始しないようにする。
ここで、図4のシーケンス図を参照し、メインコア31に異常が発生した場合の異常検出および復旧手順の一例について説明する。なお、特に図示しないが、メインコア31およびサブコア32は、正常動作中は、自身の動作ログを定期的に共有メモリー22に書き込む処理を行っているものとする(図5においても同様とする)。
まず、メインコア31は、相互監視有効/無効フラグ領域42を参照し、当該領域42に記録された相互監視有効/無効フラグの状態を判別する(S01)。ここでは、当該フラグは「有効」に設定されているものとする。次に、サブコア32は、メインコア31に対して相互監視有無の問い合わせを実行し(S02)、メインコア31は、この問い合わせを受け、サブコア32に対してS01の判別結果、つまり「相互監視有効」を示す応答を返す(S03)。
続いて、サブコア32は、メインコア31から「相互監視有効」を示す応答を受信したことにより相互監視が有効であると判別し、メインコア31に対して、所定の送信間隔(例えば、10秒間隔)で状態取得コマンドを送信する(S04、S06)。そして、状態取得コマンドを受信したメインコア31は、サブコア32から状態取得コマンドを受信する度に、サブコア32に対して当該状態取得コマンドに対する応答を送信する(S05、S07)。
ここで、メインコア31に異常が発生しハングアップした場合(S08)、サブコア32は、通常通りメインコア31に対して状態取得コマンドを送信するが、メインコア31から当該コマンドに対する応答が返ってこない状況に陥る(S09)。この時、サブコア32は、メインコア31からの応答を受け取れない状態が、予め定めた所定の応答時間(例えば、5分間)継続したか否かを判定し、メインコア31からの応答が上記応答時間内(5分以内)に受信できなかった場合、メインコア31に異常が発生したと判定する(S10)。
そして、メインコア31の異常を検出したサブコア32は、相互監視有効/無効フラグを「無効」に設定すると共に、識別フラグ、ログ管理情報、および現時点の自身の動作ログを共有メモリー22の相互監視用領域41に記録した後、当該相互監視用領域41に記録した情報をフラッシュROM23にコピーする(S11)。その後、サブコア32は、リセットレジスター33によるリセット処理を行う(S12)。これにより、プリンター1の再起動が実行される。
続いて、図5のシーケンス図を参照し、サブコア32に異常が発生した場合の、異常検出および復旧手順の一例について説明する。なお、S21からS27までの処理は、図4のS01からS07までの処理と同様であるため、説明を省略する。
S27の処理が終了した時点で、サブコア32に異常が発生しハングアップした場合(S28)、メインコア31は、サブコア32から次の状態取得コマンドを受信できない状況に陥る。この時、メインコア31は、S26でサブコア32から状態取得コマンドを受信してから、次の状態取得コマンドを受信できない状態が、予め定めた所定の受信時間(例えば、5分間)継続したか否かを判定する。そして、メインコア31は、サブコア32からの状態取得コマンドが上記受信時間内(5分以内)に受信できなかった場合、サブコア32に異常が発生したと判定する(S29)。
サブコア32の異常を検出したメインコア31は、相互監視有効/無効フラグを「無効」に設定すると共に、識別フラグ、ログ管理情報、および現時点の自身の動作ログを共有メモリー22の相互監視用領域41に記録した後、当該相互監視用領域41に記録した情報をフラッシュROM23にコピーする(S30)。その後、サブコア32は、リセットレジスター33によるリセット処理を行う(S31)。これにより、プリンター1の再起動が実行される。
なお、上記リセット処理(S12およびS31)によりプリンター1が再起動された後、メインコア31とサブコア32との間で、再度S01〜S03(またはS21〜S23)の処理が行われるが、この時、相互監視有効/無効フラグは「無効」に設定されているため(再起動時にフラッシュROM23に記憶した相互監視有効/無効フラグの情報が適用されるため)、S04(またはS24)以降の処理、つまり、コア間の相互監視は実行されない。相互監視の再開は、ユーザー(外部装置2)から指定コマンドが発行されることで行われる。
以上のように、本実施形態によれば、デュアルコアプロセッサ21を構成する2のプロセッサコアを、メインコア31およびサブコア32として割り当て、当該メインコア31およびサブコア32間で、状態取得コマンドおよびその応答の送受信を行うことでコア間の相互監視を行う。そして、メインコア31に異常が発生した場合、サブコア32が当該メインコア31の異常を検出してリセット処理を実行し、サブコア32に異常が発生した場合、メインコア31が当該サブコア32の異常を検出してリセット処理を実行する。このように、2つのプロセッサコアのうち、どちらプロセッサコアに異常が発生しても、対となる他方のプロセッサコアが自動的にリセット処理を行うことができ、確実に装置全体を復旧することができる。
また、リセット処理を行う前に、異常を検出したプロセッサコアが、異常が発生したプロセッサコアの動作ログもフラッシュROM23に記録するため、ユーザーは記録された情報を元に、容易に障害発生原因の解析を行うことができる。
なお、本実施形態では、状態取得コマンドの送信間隔、状態取得コマンドに対する応答を受信できない場合に他方のプロセッサコア(メインコア31)に異常が発生したと判定するまでの時間(応答時間)、および状態取得コマンドが受信できない場合に他方のプロセッサコア(サブコア32)に異常が発生したと判定するまでの時間(受信時間)を予め所定の時間に設定するようにしているが、これに限るものではなく、ユーザーにより任意の時間を設定する機能(時間設定部)を設けることも可能である。
また、本実施形態において、メインコア31およびサブコア32による相互監視により一度リセット処理が行われた場合、相互監視有効/無効フラグを「無効状態」に設定するようにしているが、これに限るものではなく、ユーザーにより相互監視有効/無効フラグを「無効状態」にするまでのリセット回数を設定する機能(リセット回数設定部)を設けることも可能である。
これらの機能を設けることにより、デュアルコアプロセッサ21を搭載する装置の特性(利用頻度や重要性など)に応じた時間設定、あるいはリセット回数の設定を行うことができる。これにより、より多くの装置に柔軟に対応でき、利便性が良い。
また、本実施形態では、デュアルコアプロセッサ21を例に挙げて説明したが、プロセッサコアが3個以上搭載されたマルチコアプロセッサにも適用することができる。例えば、プロセッサコアが4つ搭載されたクアッドコアプロセッサ(コア1〜コア4を搭載)に適用する場合、コア1とコア2との間、およびコア3とコア4との間で、それぞれ本実施形態のメインコア31とサブコア32との関係を構成するようにすれば良い。あるいは、コア1とコア2との間では、コア1がメインコア31、コア2がサブコア32となる関係を構成し、コア2とコア3との間では、コア2がメインコア31、コア3がサブコア32となる関係を構成するという様に、全てのプロセッサコア間で循環するように相互関係を構成するようにしても良い。または、コア1をメインコア31とし、コア2からコア4をサブコア32とする構成にしても良い。
また、本実施形態の異常検出・復旧方法は、マルチコアプロセッサのみならず、マルチプロセッサにも適用することが可能である。
また、本実施形態では、電子機器としてプリンター1を例示したが、これに限るものではない。
また、上述した実施例によらず、制御部11(プリンター1)の構成や処理工程等について、本発明の要旨を逸脱しない範囲で、適宜変更も可能である。
1…プリンター 11…制御部 21…デュアルコアプロセッサ 22…共有メモリー 23…フラッシュROM 31…メインコア 32…サブコア 33…リセットレジスター 41…相互監視用領域 43…相互監視有効/無効フラグ領域 45…メインコア用動作ログ保存領域 46…サブコア用動作ログ保存領域 53…第1動作状態監視部 54…第1異常判定部 55…第1リセット指令部 64…第2動作状態監視部 65…第2異常判定部 66…第2リセット指令部
Claims (8)
- 制御対象物を制御する複数のプロセッサコアと、当該複数のプロセッサコアによって共用されるリセットレジスターと、当該複数のプロセッサコアが自身の動作ログを記録するための揮発性の共有メモリーと、当該複数のプロセッサコアがアクセス可能な不揮発性メモリーと、を有し、前記各プロセッサコアは、メインコアおよびサブコアの少なくとも一方として機能し、且つ、前記複数のプロセッサコアの間で、前記メインコアおよび前記サブコアの主従関係が成立している制御装置であって、
前記サブコアは、
前記メインコアに対して、当該メインコアの動作状態を取得するための所定コマンドを所定の送信間隔で送信し、その応答を受信する第1動作状態監視部と、
前記応答を、所定の応答時間内に受信できなかった場合、前記メインコアに異常が発生したと判定する第1異常判定部と、
前記第1異常判定部により異常の発生を判定した場合、前記共有メモリー内の前記動作ログを前記不揮発性メモリーに記録した後、前記リセットレジスターに対し装置全体のリセット処理を指令する第1リセット指令部と、を備え、
前記メインコアは、
前記サブコアから前記所定コマンドを受信すると共に、前記サブコアに対し応答を送信する第2動作状態監視部と、
前記所定コマンドを受信してから、所定の受信時間内に次の前記所定コマンドを受信できなかった場合、前記サブコアに異常が発生したと判定する第2異常判定部と、
前記第2異常判定部により異常の発生を判定した場合、前記共有メモリー内の前記動作ログを前記不揮発性メモリーに記録した後、前記リセットレジスターに対し装置全体のリセット処理を指令する第2リセット指令部と、を備えたことを特徴とする制御装置。 - 前記第1および第2動作状態監視部によるコア間通信を実行するか否かを示すフラグをさらに有し、
前記第1または第2リセット指令部の指令によりリセット処理が実行された場合、前記フラグを、コア間通信をしないことを示す無効状態に設定することを特徴とする請求項1に記載の制御装置。 - 前記動作ログは、
前記共有メモリー上の所定領域に、所定時間間隔で記録され、
前記所定領域は、リングバッファとして構成されることを特徴とする請求項1または2に記載の制御装置。 - 前記送信間隔、前記応答時間および前記受信時間のうちの、少なくとも1つを設定する時間設定部を、さらに備えたことを特徴とする請求項1ないし3のいずれか1項に記載の制御装置。
- 前記フラグを無効状態に設定するまでのリセット処理の回数を設定するリセット回数設定部を、さらに備えたことを特徴とする請求項2ないし4のいずれか1項に記載の制御装置。
- 前記サブコアは、外部装置から送信される指示を受信し、
前記メインコアは、前記指示に基づき前記制御対象物を制御することを特徴とする請求項1ないし5のいずれか1項に記載の制御装置。 - 請求項1ないし6のいずれか1項に記載の制御装置を備えたことを特徴とする電子機器。
- 制御対象物を制御する複数のプロセッサコアと、当該複数のプロセッサコアによって共用されるリセットレジスターと、当該複数のプロセッサコアが自身の動作ログを記録するための揮発性の共有メモリーと、当該複数のプロセッサコアがアクセス可能な不揮発性メモリーと、を有し、前記各プロセッサコアは、メインコアおよびサブコアの少なくとも一方として機能し、且つ、前記複数のプロセッサコアの間で、前記メインコアおよび前記サブコアの主従関係が成立している制御装置であって、の異常検出・復旧方法であって、
前記サブコアは、
前記メインコアに対して、当該メインコアの動作状態を取得するための所定コマンドを所定の送信間隔で送信し、その応答を受信する第1動作状態監視ステップと、
前記応答を、所定の応答時間内に受信できなかった場合、前記メインコアに異常が発生したと判定する第1異常判定ステップと、
前記第1異常判定ステップにより異常の発生を判定した場合、前記共有メモリー内の前記動作ログを前記不揮発性メモリーに記録した後、前記リセットレジスターに対し装置全体のリセット処理を指令する第1リセット指令ステップと、を実行し、
前記メインコアは、
前記サブコアから前記所定コマンドを受信すると共に、前記サブコアに対し応答を送信する第2動作状態監視ステップと、
前記所定コマンドを受信してから、所定の受信時間内に次の前記所定コマンドを受信できなかった場合、前記サブコアに異常が発生したと判定する第2異常判定ステップと、
前記第2異常判定ステップにより異常の発生を判定した場合、前記共有メモリー内の前記動作ログを前記不揮発性メモリーに記録した後、前記リセットレジスターに対し装置全体のリセット処理を指令する第2リセット指令ステップと、を実行することを特徴とする制御装置の異常検出・復旧方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010020809A JP2011159136A (ja) | 2010-02-02 | 2010-02-02 | 制御装置、制御装置の異常検出・復旧方法および電子機器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010020809A JP2011159136A (ja) | 2010-02-02 | 2010-02-02 | 制御装置、制御装置の異常検出・復旧方法および電子機器 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011159136A true JP2011159136A (ja) | 2011-08-18 |
Family
ID=44591025
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010020809A Pending JP2011159136A (ja) | 2010-02-02 | 2010-02-02 | 制御装置、制御装置の異常検出・復旧方法および電子機器 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011159136A (ja) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013121502A1 (ja) * | 2012-02-13 | 2013-08-22 | 三菱電機株式会社 | プロセッサシステム |
JP2013254379A (ja) * | 2012-06-07 | 2013-12-19 | Mitsubishi Electric Corp | 情報通信装置及びハングアップ時の動作ログ保存方法 |
JP2014085872A (ja) * | 2012-10-24 | 2014-05-12 | Sumitomo Electric Ind Ltd | 障害発生トレースシステム及び光通信システム用光モジュール |
JP2015130023A (ja) * | 2014-01-07 | 2015-07-16 | Necプラットフォームズ株式会社 | 情報記録装置、情報処理装置、情報記録方法、及び情報記録プログラム |
KR101539933B1 (ko) * | 2015-01-26 | 2015-07-28 | 주식회사 파이오링크 | Cpu 행업 시 로그를 생성하는 방법 및 장치 |
US9753808B2 (en) | 2012-12-06 | 2017-09-05 | Denso Corporation | Data processing device having resetting feature without interfering with user interface unit |
CN108121630A (zh) * | 2016-11-29 | 2018-06-05 | 株式会社理光 | 电子装置、重新启动方法及记录媒介 |
JP2018092571A (ja) * | 2016-04-20 | 2018-06-14 | 株式会社リコー | 電子装置、再起動方法およびプログラム |
JP2018112977A (ja) * | 2017-01-13 | 2018-07-19 | 株式会社デンソー | マイクロコンピュータ |
KR20180133606A (ko) * | 2017-06-07 | 2018-12-17 | 현대오트론 주식회사 | 멀티 코어를 갖는 마이크로콘트롤러 유닛을 감시하는 감시장치 및 그것의 동작 방법 |
KR20190014388A (ko) * | 2017-08-02 | 2019-02-12 | 현대오트론 주식회사 | 멀티 코어 mcu 및 그 동작 방법 |
CN109582483A (zh) * | 2017-09-29 | 2019-04-05 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
JP2019057267A (ja) * | 2017-09-19 | 2019-04-11 | 株式会社明電舎 | 情報処理装置 |
CN110198065A (zh) * | 2019-06-21 | 2019-09-03 | 深圳市小兔充充科技有限公司 | 充电站的检测电路及充电站的检测装置 |
CN110716822A (zh) * | 2019-10-14 | 2020-01-21 | 深圳市网心科技有限公司 | 嵌入式设备、跨芯片监控方法、装置及存储介质 |
KR102222723B1 (ko) * | 2020-01-31 | 2021-03-04 | 엘에스일렉트릭(주) | 듀얼 CPU(MPU) 시스템을 활용한 외부 Watchdog 기술 |
CN114527857A (zh) * | 2022-02-15 | 2022-05-24 | 深圳市航顺芯片技术研发有限公司 | 多核系统复位方法、装置、设备及可读存储介质 |
JP7210834B2 (ja) | 2018-06-13 | 2023-01-24 | 東洋電機製造株式会社 | マルチcpuシステムにおける異常検知と状態記録 |
-
2010
- 2010-02-02 JP JP2010020809A patent/JP2011159136A/ja active Pending
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140105034A (ko) * | 2012-02-13 | 2014-08-29 | 미쓰비시덴키 가부시키가이샤 | 프로세서 시스템 |
CN104137077A (zh) * | 2012-02-13 | 2014-11-05 | 三菱电机株式会社 | 处理器系统 |
US20150006978A1 (en) * | 2012-02-13 | 2015-01-01 | Mitsubishi Electric Corporation | Processor system |
KR101581608B1 (ko) * | 2012-02-13 | 2015-12-30 | 미쓰비시덴키 가부시키가이샤 | 프로세서 시스템 |
WO2013121502A1 (ja) * | 2012-02-13 | 2013-08-22 | 三菱電機株式会社 | プロセッサシステム |
JP2013254379A (ja) * | 2012-06-07 | 2013-12-19 | Mitsubishi Electric Corp | 情報通信装置及びハングアップ時の動作ログ保存方法 |
JP2014085872A (ja) * | 2012-10-24 | 2014-05-12 | Sumitomo Electric Ind Ltd | 障害発生トレースシステム及び光通信システム用光モジュール |
US9753808B2 (en) | 2012-12-06 | 2017-09-05 | Denso Corporation | Data processing device having resetting feature without interfering with user interface unit |
JP2015130023A (ja) * | 2014-01-07 | 2015-07-16 | Necプラットフォームズ株式会社 | 情報記録装置、情報処理装置、情報記録方法、及び情報記録プログラム |
KR101539933B1 (ko) * | 2015-01-26 | 2015-07-28 | 주식회사 파이오링크 | Cpu 행업 시 로그를 생성하는 방법 및 장치 |
JP2018092571A (ja) * | 2016-04-20 | 2018-06-14 | 株式会社リコー | 電子装置、再起動方法およびプログラム |
US10585755B2 (en) | 2016-11-29 | 2020-03-10 | Ricoh Company, Ltd. | Electronic apparatus and method for restarting a central processing unit (CPU) in response to detecting an abnormality |
CN108121630A (zh) * | 2016-11-29 | 2018-06-05 | 株式会社理光 | 电子装置、重新启动方法及记录媒介 |
CN108121630B (zh) * | 2016-11-29 | 2021-07-16 | 株式会社理光 | 电子装置、重新启动方法及记录媒介 |
JP2018112977A (ja) * | 2017-01-13 | 2018-07-19 | 株式会社デンソー | マイクロコンピュータ |
KR20180133606A (ko) * | 2017-06-07 | 2018-12-17 | 현대오트론 주식회사 | 멀티 코어를 갖는 마이크로콘트롤러 유닛을 감시하는 감시장치 및 그것의 동작 방법 |
KR101988558B1 (ko) * | 2017-06-07 | 2019-06-12 | 현대오트론 주식회사 | 멀티 코어를 갖는 마이크로콘트롤러 유닛을 감시하는 감시장치 및 그것의 동작 방법 |
US10684903B2 (en) | 2017-06-07 | 2020-06-16 | Hyundai Autron Co., Ltd. | Apparatus and operating method for monitoring micro controller unit having multi-core |
KR20190014388A (ko) * | 2017-08-02 | 2019-02-12 | 현대오트론 주식회사 | 멀티 코어 mcu 및 그 동작 방법 |
KR101998469B1 (ko) | 2017-08-02 | 2019-07-09 | 현대오트론 주식회사 | 멀티 코어 mcu 및 그 동작 방법 |
JP2019057267A (ja) * | 2017-09-19 | 2019-04-11 | 株式会社明電舎 | 情報処理装置 |
CN109582483A (zh) * | 2017-09-29 | 2019-04-05 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN109582483B (zh) * | 2017-09-29 | 2022-09-06 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
JP7210834B2 (ja) | 2018-06-13 | 2023-01-24 | 東洋電機製造株式会社 | マルチcpuシステムにおける異常検知と状態記録 |
CN110198065A (zh) * | 2019-06-21 | 2019-09-03 | 深圳市小兔充充科技有限公司 | 充电站的检测电路及充电站的检测装置 |
CN110716822A (zh) * | 2019-10-14 | 2020-01-21 | 深圳市网心科技有限公司 | 嵌入式设备、跨芯片监控方法、装置及存储介质 |
KR102222723B1 (ko) * | 2020-01-31 | 2021-03-04 | 엘에스일렉트릭(주) | 듀얼 CPU(MPU) 시스템을 활용한 외부 Watchdog 기술 |
CN114527857A (zh) * | 2022-02-15 | 2022-05-24 | 深圳市航顺芯片技术研发有限公司 | 多核系统复位方法、装置、设备及可读存储介质 |
CN114527857B (zh) * | 2022-02-15 | 2024-04-19 | 深圳市航顺芯片技术研发有限公司 | 多核系统复位方法、装置、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2011159136A (ja) | 制御装置、制御装置の異常検出・復旧方法および電子機器 | |
US9075752B2 (en) | Information processing apparatus that detects startup error, method of controlling the same, and storage medium | |
US20210037148A1 (en) | Image forming apparatus, information processing apparatus, method of controlling image forming apparatus, method of controlling information processing apparatus, and storage medium | |
JP2017517060A (ja) | 障害処理方法、関連装置、およびコンピュータ | |
US9349084B2 (en) | Image forming apparatus, non-transitory computer-readable storage medium and method for monitoring error in central processing unit and performs resetting process | |
US8922810B2 (en) | Information processing apparatus and method for displaying status information of a job present in a print queue | |
US11076055B2 (en) | Control apparatus detects an error in image processor and reboots the image processor before transmits printing data to printing apparatus | |
JP2010079855A (ja) | 周辺装置管理プログラム、および周辺装置管理システム | |
JP6599725B2 (ja) | 情報処理装置およびログ管理方法、並びにコンピュータ・プログラム | |
JP6349733B2 (ja) | 情報処理装置、復旧支援方法、復旧支援プログラム、復旧支援システムおよび復旧支援サーバー | |
US9141896B2 (en) | Apparatus, job management method, and storage medium storing program for notifying processing result of a job | |
US9418248B2 (en) | Image forming apparatus, image forming system, and method | |
JP5987797B2 (ja) | 情報処理装置及びプログラム | |
US9906680B2 (en) | Information processing system, information processing apparatus and information processing method | |
US9832340B2 (en) | Image forming apparatus and method of performing error notification and error recovery functions in image forming apparatus | |
JP2006285384A (ja) | プロセッサ障害処理方式、管理プロセッサ及びプロセッサ障害処理方法 | |
US8670138B2 (en) | Information processing apparatus, printing apparatus, and monitoring method | |
JP5435205B2 (ja) | マルチノードシステム、ノード、メモリダンプ処理方法、及びプログラム | |
JP4633553B2 (ja) | デバッグシステム、デバッグ方法およびプログラム | |
JP4795388B2 (ja) | 電子計算機装置及びソフトウェア処理遅延検出時のデータ保存方法 | |
US11422877B2 (en) | Information processing apparatus, method, and non-transitory computer-readable storage medium for storing control program of information processing apparatus | |
JP6398858B2 (ja) | 電子機器およびリブートプログラム | |
JP7251188B2 (ja) | 情報処理装置、画像形成装置、画像形成システム及び情報処理方法 | |
JP2022107145A (ja) | 画像形成装置、画像形成装置の制御方法および制御装置 | |
JP6844375B2 (ja) | システム監視方法およびコンピュータ装置 |