データ処理システム
【課題】システムの安全性と稼動性の幅が広くなるように異常の兆候を検出することができるデータ処理システムを提供する
【解決手段】CPU(CPU0,CPU1)の処理における着目する現象の累積的な履歴に基づいて異常の徴候を検出する予知回路(PRDCT)を採用する。予知回路は、前記CPUからの定期的通知の最新の通知タイミングの情報をそのCPUと対応させて保持すると共に、所定周期毎に前記最新の通知タイミングからの経過時間を取得し、目標値に対する前記経過時間の変化に応ずる履歴情報を前記CPUに対応させて逐次保持し、保持した履歴情報が所定の閾値に達することを検出することによって異常の兆候ありと判別する。
【解決手段】CPU(CPU0,CPU1)の処理における着目する現象の累積的な履歴に基づいて異常の徴候を検出する予知回路(PRDCT)を採用する。予知回路は、前記CPUからの定期的通知の最新の通知タイミングの情報をそのCPUと対応させて保持すると共に、所定周期毎に前記最新の通知タイミングからの経過時間を取得し、目標値に対する前記経過時間の変化に応ずる履歴情報を前記CPUに対応させて逐次保持し、保持した履歴情報が所定の閾値に達することを検出することによって異常の兆候ありと判別する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数個のCPU(中央処理装置)を有するデータ処理システムにおいてCPUの異常を予知する技術に関し、例えば1チップの半導体集積回路化されたマイクロコンピュータに適用して有効な技術に関する。
【背景技術】
【0002】
複数個のCPUを有するデータ処理システムによって機能分散型システムを構成する場合に、夫々のCPUには夫々に固有の機能が割り当てられる。そのようなCPU及びプログラムによって実現される機能単位は便宜上ドメインとも称される。夫々のドメインには固有のオペレーティングシステム(OS)やアクセラレータを含む場合もある。このような機能分散型システムは1チップで半導体集積回路化されることによって、機能増加要求および複数システムの統合によるコスト低減要求に応えることができる。夫々のドメインは夫々に割り当てられた固有のメモリ領域、共有メモリ領域、共有リソースなどを必要に応じてアクセスしながら、相互に通信を行ってデータ処理を行う。
【0003】
この種のシステムオンチップ(SoC)のマイクロコンピュータなどにおいて、一のドメインのデータ処理結果を他のドメインが利用する場合が多々ある。他のドメインのデータ処理が例えばリアルタイム性を要する処理である場合に一のドメインのデータ処理の遅延は当該他のドメインによる正常なデータ処理に致命的な影響を与える場合がある。このような事態に予め対処するには、例えば、第1のドメインから第2のドメインへのリクエストを発行して返信がくるまでの許容時間を設定して、もしこの許容時間を超えても返信が無い場合には、第1のドメイン側で何らかの重大な障害が発生したと判断して、予め対応するエラー処理を発行すればよい。しかしながら、その許容時間を短く設定すると、単に第2のドメイン側で一時的なメモリアクセス集中などの障害が発生している場合でも重大な障害発生と判断されてしまう。また、この許容時間を長く設定すると、第1のドメイン側のリアルタイム制約が破られてしまい、システムとして回復不可能な状態になるまで第2のドメインからの応答を待ってしまうことになる。第2のドメイン側の異常の徴候を事前に検出しておくことができれば、第1のドメイン側のリアルタイム制約を回復可能なレベルで異常時の予防処理を第1のドメイン側で実施でき、システムの安定性に寄与することができる。
【0004】
ドメインの異常兆候を事前に検出する技術として、例えば、特許文献1にはシステムのヘルスチェック機能として、監視CPUが被監視CPUに対して、所定の値を転送し、これに応答して被監視CPUは転送された値を監視CPUに返すことで監視CPUは被監視CPUが正常であることを判定する技術が記載される。
【0005】
特許文献2には、タイマのタイムアウトにより被監視CPUは監視CPUに対して被監視CPUで計算した値を転送する。監視CPUは自分が管理している値と被監視CPUから転送された値を照合して、一致していたら被監視CPUが異常である、すなわち、新たに正しい値を計算できなかった、と判別する技術について記載される。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平08−305675号公報
【特許文献2】特開平11−039032号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1は、一回のチェックで不一致であればその時点で異常と判定してしまうので、安全な復帰ができないか、あるいは、厳しすぎる制約条件を課してしまうことにもなる。よって、システムの安全性を優先させることと可用性(稼動性)を優先させることとの間に選択の幅が狭くなり、異常徴候の事前検出による実効性を得ることがむずかしいと考えられる。特許文献2についても一回の異常もしくは登録遅れでのみ異常を判定するので、上記同様の問題がある。
【0008】
本発明の目的は、システムの安全性を優先させることと稼動性を優先させることとの間の選択の幅が広くなるように異常の兆候を検出することができるデータ処理システムを提供することにある。
【0009】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【0010】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0011】
すなわち、CPUの処理における着目する現象の累積的な履歴に基づいて異常の徴候を検出する予知回路を採用する。予知回路は、前記CPUからの定期的通知の最新の通知タイミングの情報をそのCPUと対応させて保持すると共に、所定周期毎に前記最新の通知タイミングからの経過時間を取得し、目標値に対する前記経過時間の変化に応ずる履歴情報を前記CPUに対応させて逐次保持し、保持した履歴情報が所定の閾値に達することを検出することによって異常の兆候ありと判別する。
【0012】
着目する現象の累積的な履歴に基づいて異常の徴候を検出するから、特定の事象が1回発生することによって異常の徴候があると判別する場合に比べて、異常の兆候を検出する場合にシステムの安全性を優先させることと稼動性を優先させることとの間の選択の幅が広くなる。
【発明の効果】
【0013】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【0014】
すなわち、システムの安全性を優先させることと稼動性を優先させることとの間の選択の幅が広くなるように異常の兆候を検出することができる。
【図面の簡単な説明】
【0015】
【図1】図1は本発明の一実施の形態に係るマイクロコンピュータを示すブロック図である。
【図2】図2は中央処理装置に対するメモリ空間のマッピング例を示すアドレスマッピング図である。
【図3】図3は割り込みを利用してドメインDMN0がその一部の処理をドメインDMN1に負担させる場合の処理フローを例示するフローチャートである。
【図4】図4は異常予知回路PRDCTの構成を例示するブロック図である。
【図5】図5は図1に即した例としてエントリデータの格納領域とドメインとの対応を例示する説明図である。
【図6】図6は図5の場合におけるエントリデータの格納領域に対する初期設定例を示す説明図である。
【図7】図7は予知判別制御部PCNTによる異常予知判定処理フローを例示するフローチャートである。
【図8】図8は予知判別制御部PCNTによる判別動作タイミングを例示するタイミングチャートである。
【図9】図9は図8の動作にしたがって操作されるエントリデータの変化を例示するタイミングチャートである。
【図10】図10は異常予知フローの別の例を示すフローチャートである。
【図11】図11は異常予知フローの更に別の例を示すフローチャートである。
【図12】図12はシャットダウンによるリカバリ処理の処理フローを例示するフローチャートである。
【図13】図13はリブートによるリカバリ処理の処理フローを例示するフローチャートである。
【図14】図14はメモリ退避によるリカバリ処理の処理フローを例示するフローチャートである。
【図15】図15は分担打ち切りによるリカバリ処理の処理フローを例示するフローチャートである。
【図16】図16はマイクロコンピュータの別の例を示すブロック図である。
【発明を実施するための形態】
【0016】
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【0017】
〔1〕<定期的通知タイミングの履歴に基づく異常予知判定>
本発明の代表的な実施の形態に係るデータ処理システム(MCU)は、複数のCPU(CPU0〜CPU3)と、前記CPUの異常を予知するための判別を行う予知回路(PRDCT)とを有する。前記予知回路は、前記CPUからの定期的通知の最新の通知タイミングの情報(Tp[0]、Tp[1]、Tp[2])をそのCPUと対応させて保持すると共に、所定周期毎に前記最新の通知タイミングからの経過時間(Tdiff)を取得し、目標値(Tw)に対する前記経過時間の変化に応ずる履歴情報(CNT,ACC)を前記CPUに対応させて逐次保持し、保持した履歴情報が所定の閾値(Cw)に達したとき、対応するCPUに対するリカバリ処理を要求する(IRQ_R)。
【0018】
所定周期毎における前記最新の通知タイミングからの経過時間の変化という着目する現象の累積的な履歴に基づいて異常の徴候を検出するから、特定の事象が1回発生することによって異常の徴候があると判別する場合に比べて、システムの安全性を優先させることと稼動性を優先させることとの間の選択の幅が広くなるように異常の兆候を検出することができる。要するに、前記目標値と閾値の設定しだいで、システムの安定性を優先させるか稼動性を優先させるかの選択を、システム性能やシステムの要求仕様に応じて容易に行うことができるようになる。
【0019】
〔2〕<タイマのタイムアウトによる定期的通知>
項1のデータ処理システムにおいて、前記CPUからの定期的通知は、第1のタイマ(TMR0〜TMR3)によるタイムアウト(IRQ0_T〜IRQ3_T)に起因してCPUがプログラム処理を行って前記予知回路に与える通知である。
【0020】
前記定期的通知を行うタイミングは第1のタイマに対するタイムアウトの設定によってプログラマブルに決めることができる。また、定期的通知の内容はCPUが実行するプログラムによって任意に決めることができる。
【0021】
〔3〕<CPU毎にプログラマブルなタイムアウト設定>
項2のデータ処理システムにおいて、前記第1のタイマは、前記CPU毎に異なるタイミングでタイムアウトを設定可能な複数のタイマチャネル(TMR0〜TMR3)を有する。
【0022】
前記定期的通知を行うタイミングをCPU毎に設定することができる。
【0023】
〔4〕<タイマのタイムアウトによる所定周期の生成>
項1乃至3のいずれかのデータ処理システムにおいて、前記所定周期は、第2のタイマ(TMRH)のタイムアウト(TOUT)の間隔に応ずる周期である。
【0024】
前記所定周期は第2のタイマに対するタイムアウトの設定によってプログラマブルに決めることができる。
【0025】
〔5〕<定期的通知のタイミングを時刻情報で与える>
項1乃至4のいずれかのデータ処理システムにおいて、前記通知タイミングの情報は、前記予知回路に前記定期的通知があったときの時刻情報である。
【0026】
時刻情報とすることにより、前記通知タイミングの情報の取得が容易になる。
【0027】
〔6〕<定期的通知が遅延した累積回数による履歴情報>
項5のデータ処理システムにおいて、前記履歴情報は、前記目標値に対して定期的通知が遅延した累積回数の情報である(図7)。
【0028】
累積回数の多少は異常の兆候度合に対応し、どの程度の異常の兆候を検出対象とするかは閾値の設定に応じて決めればよい。
【0029】
〔7〕<定期的通知が遅延した累積時間による履歴情報>
項5のデータ処理システムにおいて、前記履歴情報は、前記目標値に対して定期的通知が遅延した累積時間の情報である。
【0030】
累積時間の多少は異常の兆候度合に対応し、どの程度の異常の兆候を検出対象とするかは閾値の設定に応じて決めればよい。
【0031】
〔8〕<定期的通知が間に合った回数と遅延した回数の差分による履歴情報>
項5のデータ処理システムにおいて、前記履歴情報は、前記目標値に対して定期的通知が間に合った回数と遅延した回数の差分回数の情報である(図10)。
【0032】
差分回数は異常の兆候度合が変化する場合に異常の兆候からの回復を評価して異常の兆候度合を把握可能にする。
【0033】
〔9〕<定期的通知が間に合った余裕時間と遅延した時間との差分による履歴情報>
項5のデータ処理システムにおいて、前記履歴情報は、前記目標値に対して定期的通知が間に合った余裕時間と遅延した時間との差分時間の情報である(図11)。
【0034】
差分時間は異常の兆候度合が変化する場合に異常の兆候からの回復を評価して異常の兆候度合を把握可能にする。
【0035】
〔10〕<履歴情報などのエントリデータ格納領域>
項5のデータ処理システムにおいて、前記予知回路はCPUに対応するエントリデータの格納領域(ETRY0〜ETRYn)を有し、前記エントリデータは前記通知タイミングの情報である時刻情報(Tp)、履歴情報(CNT、ACC)、目標値(Tw)、及び閾値(Cw)である。
【0036】
予め夫々のCPUに対応するエントリデータの格納領域を設けておくことにより、何れのCPUに対しても異常の兆候を検出することが容易である。
【0037】
〔11〕<エントリデータの初期設定>
項10のデータ処理システムにおいて、前記エントリデータの格納領域は所定のCPUによって初期設定可能にされる。
【0038】
異常の兆候の検出対象とされるCPUによるデータ処理のリアルタイム性や処理速度などの性質に応じて前記目標値及び閾値を設定することができる。要するに、データ処理システムの機能や能力に応じてシステムの異常の兆候を検出可能になる。
【0039】
〔12〕<対応するCPUに対するリカバリ処理の要求>
項1乃至11のいずれかのデータ処理システムにおいて、前記対応するCPUに対するリカバリ処理の要求は、リカバリ処理を行うCPUへの割り込み要求(IRQ_R)である。
【0040】
割り込みを用いることによりリカバリ処理の内容を割り込み処理の内容によって任意に決定することが容易である。
【0041】
〔13〕<割り込みコントローラ>
項12のデータ処理システムにおいて、前記割り込み要求に応答してCPUに割り込み信号を出力する割り込みコントローラ(INTC)を更に有する。
【0042】
割り込み要求に対する割り込み優先レベルや割り込みベクタなどの制御をリカバリ処理にも容易に適用することができる。
【0043】
〔14〕<シャットダウンによるリカバリ処理>
項1乃至13のいずれかのデータ処理システムにおいて、前記リカバリ処理は、対応するCPUに対するシャットダウン処理である(S51)。
【0044】
異常の兆候があるCPUの不所望な動作を完全に排除することができる。
【0045】
〔15〕<リブートによるリカバリ処理>
項1乃至13のいずれかのデータ処理システムにおいて、前記リカバリ処理は、対応するCPUに対するリブート処理である(S61)。
【0046】
異常の兆候があるCPUの状態を初期化してから再度利用可能にすることができる。
【0047】
〔16〕<メモリ退避によるリカバリ処理>
項1乃至13のいずれかのデータ処理システムにおいて、前記リカバリ処理は、対応するCPUの内部状態をメモリに退避する処理である(S71)。
【0048】
メモリに退避した情報を用いてCPUの状態を再構成可能になる。
【0049】
〔17〕<分担打ち切りのリカバリ処理>
項1乃至13のいずれかのデータ処理システムにおいて、前記リカバリ処理は、対応するCPUへの処理の分担を打ち切ってその処理を自ら負担する処理である(S81,S82)。
【0050】
自らが処理を負担することによって処理が中断される事態を回避することができる。
【0051】
〔18〕<半導体集積回路化されたマイクロコンピュータ>
項1乃至17のいずれかのデータ処理システムは、1個の半導体基板にマイクロコンピュータ(MCU)として形成され。
【0052】
機能分散型の上記データ処理システムを1チップで半導体集積回路化することによって、機能増加要求および複数システムの統合によるコスト低減要求に応えることができる。
【0053】
2.実施の形態の詳細
実施の形態について更に詳述する。
【0054】
《マイクロコンピュータ》
図1には本発明の一実施の形態に係るデータ処理システムが例示される。同図に示されるデータ処理システムは、特に制限されないが、例えば、自動車分野の制御系システムとナビゲーションなどの情報系システムをひとつの半導体集積回路上で実現したシステムオンチップ(SoC)のマイクロコンピュータ(マクロプロセッサ、データ処理装置)などに適用される。
【0055】
同図に示されるマイクロコンピュータMCUは、例えば単結晶シリコンなどの1個の半導体基板にCMOS集積回路製造技術などによって形成される。マイクロコンピュータMCUは特に制限されないが2個のドメインDMN0(第1ドメイン),DMN1(第2ドメイン)を有する。ドメインDMN0,DMN1はCPUとその動作プログラムによって実現される機能単位であり、ドメインDMN0は、中央処理装置CPU0,中央処理装置CPU0のリソースに対するメモリ管理やタスクの管理を行う上位のプログラムであるオペレーティングシステムOS0、及びタスクを規定するためのアプリケーションプログラムPGM0を有する。同じくドメインDMN1は、中央処理装置CPU1、オペレーティングシステムOS1、及びアプリケーションプログラムPGM1を有する。
【0056】
ドメインDMN0,DMN1はシステムバスBUSを共有し、システムバスBUSにはリソースとして代表的に示された、メモリコントローラMCNT、電気的に書き換え可能な不揮発性メモリFLSH,第1タイマとしてのタイマ回路TMR0,TMR1、画像処理回路GRF、ネットワーク通信回路NET、割り込みコントローラINTC、異常予知回路PRDCT、及び第2のタイマとしてのタイマ回路TMRHを有する。メモリコントローラMCNTには外部メモリとしてシンクロナスダイナミックランダムアクセスメモリSDRAMが接続される。シンクロナスダイナミックランダムアクセスメモリSDRAMは画像処理回路GRFのフレームバッファ、ネットワーク通信回路NETの通信バッファ、中央処理装置CPUのワーク領域などに用いられる。タイマ回路TMR0,TMR1は割り込みコントローラINTCにタイムアウト割り込み要求信号IRQ0_T,IRQ1_Tを出力する。タイマ回路TMRHはタイムアウト信号TOUTを異常予知回路PRDCTに出力する。異常予知回路PRDCTは割り込みコントローラINTCにリカバリ割り込み要求信号IRQ_Rを出力する。割り込みコントローラINTCはドメインDMN0の中央処理装置CPU0に対する割り込み信号INT0、ドメインDMN1の中央処理装置CPU1に対する割り込み信号INT1を出力する。
【0057】
図2には中央処理装置に対するメモリ空間のマッピング例が示される。ここでは不揮発性メモリFLSH及びシンクロナスダイナミックランダムアクセスメモリSDRAM上のメモリマッピングが例示され、A1,A2は中央処理装置CPU0だけがアクセス可能にされたメモリ空間、Bは中央処理装置CPU01だけがアクセス可能にされたメモリ空間、Cは双方の中央処理装置CPU0、CPU1がアクセス可能な共有メモリ空間である。共有メモリ空間CはドメインDMN0とドメインDMN1との間のデータの受け渡しなどに利用される。
【0058】
図3には割り込みを利用してドメインDMN0がその一部の処理をドメインDMN1に負担させる場合の処理フローが例示される。
【0059】
ドメインDMN0の中央処理装置CPU0は所定のデータ処理結果を共有メモリ領域Cに書き込み(S1)、そのデータを用いる次のデータ処理をドメインDMN1の中央処理装置CPU1に負担させるために中央処理装置CPU0は割り込みコントローラINTに割り込みを要求する(S2)。
【0060】
割り込みコントローラINTCはその割り込み要求を受け付けることによって中央処理装置CPU1に割り込み信号INT1を出力すると共に、その割り込み要因をバスSUBに出力する(S10)。
【0061】
中央処理装置CPU1はその割り込み信号INT1による割り込みが通知されると、命令実行を中断して必要な退避処理を行って(S20)、その割り込み要因に対応する割り込み処理プログラムの処理に分岐し(S21)、当該割り込み処理プログラムにしたがって共有メモリ領域Cのデータを用いて所用のデータ処理を行う(S22)。中央処理装置CPU1はそれによるデータ処理結果を共有メモリ領域Cに書き込み(S23)、そのデータを中央処理装置CPU0に渡すために割り込みコントローラINTに割り込みを要求する(S24)。
【0062】
割り込みコントローラINTCは、その割り込み要求を受け付けることによって中央処理装置CPU0に割り込み信号INT0を出力すると共に、その割り込み要因をバスSUBに出力する(S11)。
【0063】
中央処理装置CPU0はその割り込み信号INT0による割り込みが通知されると、命令実行を中断して必要な退避処理を行って(S3)、その割り込み要因に対応する割り込み処理プログラムの処理に分岐し(S4)、当該割り込み処理プログラムにしたがって共有メモリ領域Cからデータを読み出して所用のデータ処理を行う(S4)。
【0064】
中央処理装置CPU0は、ステップS2で割り込みを要求してからステップS11の割り込み信号INT1を受け取るまでの時間が長すぎる場合、共有メモリ領域Cのデータを用いるデータ処理に関するリアルタイム制約を満足できない場合がある。前記異常予知回路PRDCTは、そのような待ち時間が長くなりすぎるような事態を発生させる異常を予知して早期にリカバリ可能とする回路である。以下、異常予知回路PRDCTについて詳述する。
【0065】
《異常予知回路》
図4には異常予知回路PRDCTの構成が例示される。異常予知回路PRDCTは予知の対象にされる中央処理装置と予知結果に従ってリカバリを行う主体になる中央処理装置との間で機能される。図4に従えば、異常予知回路PRDCTは夫々のドメイン若しくは中央処理装置に対応させたエントリデータの格納領域ETRY0〜ETRYnを有する。ここでは便宜上n+1のエントリデータの格納領域を備えるものとするが、図1の構成に従えば2個のエントリデータの格納領域ETRY0〜ETRY1を備えれば十分である。エントリデータの格納領域ETRY0〜ETRYnは実際にはランダムアクセスメモリで構成すればよく、異常予知動作において予知判別制御部PCNTがエントリデータのリード/ライトを行い、また、システムバスBUSを介してマスタとされる特定の中央処理装置、例えば中央処理装置CPU0がエントリデータの初期設定を行う。
【0066】
エントリデータは、例えば通知時刻情報Tp、目標値Tw、閾値Cw、及び履歴カウント値CNTとされる。
【0067】
通知時刻情報Tpは、予知の対象にされる中央処理装置から定期的に行われる通知の最新の通知タイミング情報としての時刻情報である。例えば、ドメインDMN0に対応するエントリ番号0のエントリデータの格納領域ETRY0における通知時刻情報Tpは次のようにして生成される。すなわち、タイマTMR0のタイムアウト割り込み要求IRQ0_T毎に中央処理装置CPU0が当該割り込みに応答して所定の割り込み処理プログラムを実行し、これによって予知判別制御部PRCNTにエントリ更新信号RNW0を与える。エントリ更新信号RNW0は中央処理装置CPU0に固有の信号であり、例えば予知判別制御部PRCNT内部の特定レジスタアドレスに対して中央処理装置CPU0が書き込みを行う当該中央処理装置CPU0の識別コードであってもよい。予知判別制御部PRCNTは、エントリ更新信号RNW0を受け取ったときに時刻情報を図示を省略するリアルタイムクロックタイマなどから取得し、エントリ更新信号RNW0に対応するエントリ番号0のエントリデータの格納領域ETRY0における通知時刻情報Tpをその時刻情報によって更新する。他のドメインDMN1に対応するエントリ番号1のエントリデータの格納領域ETRY1における通知時刻情報Tpについても同様である。
【0068】
予知判別制御部PCNTはタイマTMRHから所定周期でタイムアウト信号TOUTを受け取る毎に、更にはエントリ更新信号を受け取る毎に、最新の通知時刻情報Tpと現在時刻Thとの差(Tdiff)が目標値Twに達しているか否かを判別する。タイムアウト信号TOUTによるタイムアウト周期は、例えばタイマTMR0(TMR1)のタイムアウト割り込み要求IRQ0_T(IRQ1_T)による周期に比べて短くされる。
【0069】
予知判別制御部PCNTは、Tw≦Tdiffの判別結果にしたがって履歴カウント値CNTを操作する。その操作内容は、その判別結果の履歴を何らかの意味で蓄積できる操作であればよく、特に制限されないが、Tw≦Tdiffの判別結果を得る毎に履歴カウント値CNTを+1する(1インクリメントする)操作であってよい。
【0070】
予知判別制御部PCNTは、履歴カウント値CNTが閾値Cwに達したとき、対応する中央処理装置に対するリカバリ処理を要求するために割り込み要求信号IRQ_Rで割り込みコントローラINTCに割り込みを要求する。割り込みコントローラINTCはこれに応答してリカバリ処理の主体とされるべき中央処理装置CPU0(CPU1)に割り込み信号INT0(INT1)を出力すると共に対応する割り込み要因を与える。すなわち、ドメインDMN0に対応するエントリ番号0のエントリデータの格納領域ETRY0における履歴カウント値CNTがその閾値Cwに達したときには中央処理装置CPU1に対する割り込み信号INT1が活性化され、ドメインDMN1に対応するエントリ番号1のエントリデータの格納領域ETRY1における履歴カウント値CNTがその閾値Cwに達したときには中央処理装置CPU0に対する割り込み信号INT0が活性化される。
【0071】
図5には図1に即した例としてエントリデータの格納領域とドメインとの対応が例示される。エントリデータの格納領域ETRY0はドメインDMN0に対応され、エントリデータの格納領域ETRY1はドメインDMN1に対応される。ここではドメインDMN0はシステム全体の制御(システム制御)に用いられ、ドメインDMN1は画像処理や通信処理の制御に用いられる。
【0072】
図6には図5の場合におけるエントリデータの格納領域に対する初期設定例が示される。図より明らかのように、システム制御に用いるドメインDMN0のほうが目標値Tw及び閾値Cwの点で厳しい設定になっている。通知時刻情報Tpについても初期設定することが可能である。
【0073】
《異常予知フロー》
図7には予知判別制御部PCNTによる異常予知判定処理フローが例示される。同図に示される判定処理は、予知判別制御部PCNTがタイマTMRHから所定周期でタイムアウト信号TOUTを受け取る毎に、更にはエントリ更新信号RNW0,RNW1を受け取る毎に開始される。開始されるとまず、予知判別制御部PCNTは対応するエントリデータTp,Tw,Cw,CNTを読み込むと共に、現在時刻Thを取得する(S30)。
【0074】
次いで、予知判別制御部PCNTは、最新の通知時刻情報Tpと現在時刻Thとの差(Tdiff)を演算し(S31)、その差が目標値Twに達しているか否かを判別する(S32)。Tw≦Tdiffの判別結果を得たときは履歴カウント値CNTを+1する(S33)。
【0075】
そして予知判別制御部PCNTは、履歴カウント値CNTが閾値Cwに達したか否かを判別し(S34)、Cw≦CNTでなければTpを最新の通知時刻情報に更新し(S35)、Cw≦CNTであれば対応する中央処理装置に対するリカバリ処理を要求するために割り込み要求信号IRQ_Rで割り込みコントローラINTCに割り込みを要求する(S36)。例えば、ドメインDMN0に対応するエントリ番号0のエントリデータの格納領域ETRY0における履歴カウント値CNTがその閾値Cwに達したときには中央処理装置CPU1に対する割り込み信号INT1が活性化され、ドメインDMN1に対応するエントリ番号1のエントリデータの格納領域ETRY1における履歴カウント値CNTがその閾値Cwに達したときには中央処理装置CPU0に対する割り込み信号INT0が活性化される。割り込み信号が活性化された中央処理装置は当該割り込みに応答する得割り込み処理プログラムに従ってリカバリ処理を行う。リカバリ処理の具体的な内容については後述する。
【0076】
《異常予知の動作タイミング》
図8には予知判別制御部PCNTによる判別動作のタイミングチャートが例示される。図9には図8の動作にしたがって操作されるエントリデータの変化が例示される。ここではドメインDMN1に対して異常を予知する判定動作が例示される。
【0077】
ドメインDMN1に対応する格納領域ETRY1(エントリ番号1)におけるエントリデータの初期値は図9のようにTw=20,Cw=10,Tp=5,CNT=0である。タイマTMR1のタイマ割り込みIRQ1_Tの周期をTS、タイマTMRHによるタイムアウトTOUTの周期をTHとする。Th[1]〜Th[5]は周期TH毎の予知判別制御部PCNTによる判別動作タイミングである。Tp(0)、Tp(1)、Tp(2)はタイマTMR1から周期TSで発行される割り込み要求IRQ1_Tに応答する割り込み処理によって中央処理装置CPU1から更新信号RNW1が与えられるタイミングである。タイマTMR1から割り込み要求IRQ1_Tが発行される周期は周期TSで一定であるが、それに応答して中央処理装置CPU1から供給される更新信号RNW1の発生タイミングTp(1),Tp(2)は一定にならない。これは、中央処理装置CPU1が割り込み要求IRQ1_Tに応答して割り込み処理を行おうとするときに当該中央処理装置CPU1のデータ処理状況、更新信号RNW1を予知判別制御部PCNTに与えようとしたときにおけるシステムバスBUSの競合状態などの影響を受けるからである。また、中央処理装置CPU1に障害が発生していればその障害の度合いに応じて当該割り込み処理プログラムの実行が遅滞若しくは中断して、更新信号RNW1の発生タイミングに影響がでる。イベント1〜イベント4は中央処理装置CPU1が更新信号RNW1を出力するための割り込み処理の実行開始タイミングを意味する。
【0078】
Th[2]=20まではThとTpの差がTwよりも小さいからCNTは0に維持される。Th=25のTp(1)のタイミングでは更新前のTpが5であり、Th(=25)とTp(=5)の差がTw(=20)以上になるからCNTが+1されて1になる。CNTの更新と共にTpが最新の値25に更新される。この後のTh[4]まではThとTpの差がTwよりも小さいからCNTは1に維持される。Th[5]ではThとTpの差がTw以上になるからCNTは+1されて2に更新され、次のTh=55のTp(2)のタイミングでは更新前のTpが25であり、Th(=55)とTp(=25)の差がTw(=20)以上になるからCNTが+1されて3になる。これによってCNTはCw(=3)以上になるので、予知回路PRDCTはドメインDMN0の中央処理装置CPU0に対してリカバリ処理のための割り込みを要求する。
【0079】
上記タイミングチャートからも明らかなように、エントリデータとして保持されている最新の通知時刻情報Tpと現在時刻Thとの所定周期毎THの差の累積的な履歴であるカウント値CNTに基づいて異常の徴候を検出するから、特定の事象が1回発生することによって異常の徴候があると判別する場合に比べて、システムの安全性を優先させることと稼動性を優先させることとの間の選択の幅が広くなるように異常の兆候を検出することができる。要するに、前記目標値Twと閾値Cwの設定しだいで、システムの安定性を優先させるか稼動性を優先させるかの選択を、マイクロコンピュータMCUのシステム性能やシステムの要求仕様に応じて容易に行うことができるようになる。
【0080】
更新信号RNW0,RNW1による定期的通知を行うタイミングはタイマTMR0,TMR1に対するタイムアウトの設定によってプログラマブルに決めることができ、また、当該定期的通知の内容はタイマ割り込みに応答して中央処理装置が実行するプログラムによって任意に決めることができる。
【0081】
また、タイマTMR0,TMR1は中央処理装置毎に異なるタイミングでタイムアウトを設定可能であるから、前記定期的通知を行うタイミングを中央処理装置毎に設定することができる。
【0082】
周期THはタイマTMTHのタイムアウトの間隔に応ずる周期とされるから、その周期THはタイマTMRHに対するタイムアウトの設定によってプログラマブルに決めることができる。
【0083】
履歴情報は、前記目標値に対して定期的通知が遅延した累積回数としてのカウンタ値CNTであるから、累積回数の多少は異常の兆候度合に対応し、どの程度の異常の兆候を検出対象とするかは閾値Cwの設定に応じて容易に決めることができる。
【0084】
エントリデータの格納領域を所定の中央処理装置によって初期設定可能にすることにより、異常の兆候の検出対象とされるCPUによるデータ処理のリアルタイム性や処理速度などの性質に応じて前記目標値及び閾値を設定することができる。要するに、データ処理システムの機能や能力に応じてシステムの異常の兆候を検出することが容易になる。
【0085】
《異常予知フローの変形例》
図10には異常予知フローの別の例が示される。図7との相違点は、最新の通知時刻情報Tpと現在時刻Thとの差(Tdiff)を演算し(S31)、その差が目標値Twに達しているか否かを判別したとき(S32)、Tw≦Tdiffの判別結果が得られないときには履歴カウント値CNTを−1(1デクリメント)する処理(S40)を追加したことである。その他の処理は図7と同じであるからその詳細な説明は省略する。
【0086】
このように、目標値に対して定期的通知が間に合った回数と遅延した回数の差分回数の情報を履歴情報とすることにより、異常の兆候度合が変化する場合に異常の兆候からの回復を評価して異常の兆候度合を把握可能になる。
【0087】
図11には異常予知フローの更に別の例が示される。ここではエントリデータのカウンタ値CNTに代えて時間の累積値ACCを採用する。図11では、予知判別制御部PCNTは、最新の通知時刻情報Tpと現在時刻Thとの差(Tdiff)を演算し(S31)、その差が目標値Twに達しているか否かを判別したとき(S32)、Tw≦Tdiffの判別結果を得たときは累積値ACCにその差分時間Tdiffと目標値Twとの差を加算する(S41)。一方、Tw≦Tdiffの判別結果が得られないときには累積値ACCに目標値Twとその差分時間Tdiffとの差を減算する(S42)。その他の処理は図7と同じであるからその詳細な説明は省略する。
【0088】
累積値ACCの多少は異常の兆候度合に対応し、どの程度の異常の兆候を検出対象とするかは閾値の設定に応じて決めればよい。累積時間ACCとして前記目標値に対して定期的通知が間に合った余裕時間と遅延した時間との差分時間を採用することにより、異常の兆候度合が変化する場合に異常の兆候からの回復を評価して異常の兆候度合を把握可能になる。
【0089】
特に図示はしないが、図11においてステップS42の処理を省き、目標値に対して定期的通知が遅延した累積時間の情報を履歴情報として採用してもよい。
【0090】
《リカバリ処理》
上述の説明では、CPUに対するリカバリ処理の要求として、リカバリ処理を行うCPUへの割り込み要求を用いる。割り込みを用いることによりリカバリ処理の内容を割り込み処理の内容によって任意に決定することが容易である。
【0091】
図12にはシャットダウンによるリカバリ処理の処理フローが例示される。ここでは異常の予知が検出される対象を中央処理装置CPU1とし、中央処理装置CPU0がリカバリ処理を行うものとする。中央処理装置CPU1に対して検出された異常の予知が割り込み信号INT0によって中央処理装置CPU0に通知されると(S50)、中央処理装置CPU0はその割り込み要因に応答する割り込み処理プログラムを実行して、中央処理装置CPU1のドメインDMN1をシャットダウンする(S51)。これにより、異常の兆候がある中央処理装置CPU1の不所望な動作を完全に排除することができる。中央処理装置CPU0は中央処理措置CPU1を動作させずにシステム動作を継続し、マイクロコンピュータMCUの外部には異常発生を通知し(S52)、その後は、外部からの指示に従ってマイクロコンピュータMCUの運用を決定する(S53)。
【0092】
図13にはリブートによるリカバリ処理の処理フローが例示される。ここでは異常の予知が検出される対象を中央処理装置CPU1とし、中央処理装置CPU0がリカバリ処理を行うものとする。中央処理装置CPU1に対して検出された異常の予知が割り込み信号INT0によって中央処理装置CPU0に通知されると(S60)、中央処理装置CPU0はその割り込み要因に応答する割り込み処理プログラムを実行して、中央処理装置CPU1のドメインDMN1をリブートする(S61)。これにより、異常の兆候がある中央処理装置CPU1の状態を初期化してから再度利用可能にすることができる。ここでは、リブート後にも、中央処理装置CPU0は中央処理措置CPU1を動作させずにシステム動作を継続し、マイクロコンピュータMCUの外部には異常発生を通知し(S62)、その後は、外部からの指示に従ってマイクロコンピュータMCUの運用を決定する(S63)。
【0093】
図14はメモリ退避によるリカバリ処理の処理フローが例示される。ここでは異常の予知が検出される対象を中央処理装置CPU1とし、中央処理装置CPU0がリカバリ処理を行うものとする。中央処理装置CPU1に対して検出された異常の予知が割り込み信号INT0によって中央処理装置CPU0に通知されると(S70)、中央処理装置CPU0はその割り込み要因に応答する割り込み処理プログラムを実行して、中央処理装置CPU1の内部状態をメモリに退避する(S71)。これにより、メモリに退避した情報を用いてCPUの状態を再構成可能になる。中央処理装置CPU0は、退避されている情報を用いて中央処理装置CPU1の状態を回復し、ドメインDMN1を再起動して、利用可能にする(S72)。
【0094】
図15には分担打ち切りによるリカバリ処理の処理フローが例示される。ここでは異常の予知が検出される対象を中央処理装置CPU1とし、中央処理装置CPU0がリカバリ処理を行うものとする。中央処理装置CPU1に対して検出された異常の予知が割り込み信号INT0によって中央処理装置CPU0に通知されると(S80)、中央処理装置CPU0から中央処理装置CPU1に処理を依頼しているタスクの終了を待って新たなタスクの追加依頼を中止する(S81)。そして、中央処理装置CPU1への処理の分担を打ち切った処理を中央処理装置CPU0が自ら負担するようにシステムの状態を更新する(S82)。これにより、自らが処理を負担することによって処理が中断される事態を回避することができる。中央処理装置CPU0は中央処理措置CPU1を動作させずにシステム動作を継続し、マイクロコンピュータMCUの外部には異常発生を通知する(S83)。
【0095】
《マイクロコンピュータの別の例》
図16にはマイクロコンピュータの別の例が示される。同図に示されるマイクロコンピュータMCUは、図1に比べて4個のドメインDMN0〜DMN3が設けられ、4個のタイマTMR0〜TMR3が設けられ、夫々にタイマTMR0〜TMR3からタイマ割り込み要求信号IRQ0_T〜IRQ3_Tが出力され、割り込みコントローラINTCから夫々の中央処理装置CPU0〜CPU3に割り込み信号INT0〜INT3が出力される点が相違される。回路ユニットの数が増えることにとって影響されない回路は図1と同じである。図16には図示を省略してあるが図1の画像処理回路GRF及びネットワーク通信回路NETなどが設けられている。
【0096】
図1と同様に図16のマイクロコンピュータMCUも1個の半導体基板に集約されて構成される。マイクロコンピュータMCUが1チップで半導体集積回路化されることにより、機能増加要求および複数システムの統合によるコスト低減要求に応えることができる。
【0097】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0098】
例えば、中央処理装置の数は2個、4個に限定されず適宜決定することができる。データ処理システムはオペレーティングシステムを利用せずに構成されてもよい。定期的通知や所定周期毎の判別の周期の生成にオンチップタイマを用いたが、それに限定されない。
【符号の説明】
【0099】
MCU マイクロコンピュータ
DMN0〜DMN3 ドメイン
CPU0〜CPU3 中央処理装置
OS0〜OS3 オペレーティングシステム
PGM0〜PGM3 アプリケーションプログラム
BUS システムバス
MCNT メモリコントローラ
FLSH 不揮発性メモリ
TMR0〜TMR3 タイマ
GRF 画像処理回路
NET ネットワーク通信回路
INTC 割り込みコントローラ
PRDCT 異常予知回路
TMRH タイマ
IRQ0_T〜IRQ3_Tタイムアウト割り込み要求信号
TOUT タイムアウト信号
IRQ_R リカバリ割り込み要求信号
C 共有メモリ空間
ETRY0〜ETRYn エントリデータの格納領域
PCNT 予知判別制御部
RNW0、RNW1 エントリ更新信号
Tp 最新の通知時刻情報
Th 現在時刻
Tw 目標値
CNT 履歴カウント値
Cw 閾値
【技術分野】
【0001】
本発明は、複数個のCPU(中央処理装置)を有するデータ処理システムにおいてCPUの異常を予知する技術に関し、例えば1チップの半導体集積回路化されたマイクロコンピュータに適用して有効な技術に関する。
【背景技術】
【0002】
複数個のCPUを有するデータ処理システムによって機能分散型システムを構成する場合に、夫々のCPUには夫々に固有の機能が割り当てられる。そのようなCPU及びプログラムによって実現される機能単位は便宜上ドメインとも称される。夫々のドメインには固有のオペレーティングシステム(OS)やアクセラレータを含む場合もある。このような機能分散型システムは1チップで半導体集積回路化されることによって、機能増加要求および複数システムの統合によるコスト低減要求に応えることができる。夫々のドメインは夫々に割り当てられた固有のメモリ領域、共有メモリ領域、共有リソースなどを必要に応じてアクセスしながら、相互に通信を行ってデータ処理を行う。
【0003】
この種のシステムオンチップ(SoC)のマイクロコンピュータなどにおいて、一のドメインのデータ処理結果を他のドメインが利用する場合が多々ある。他のドメインのデータ処理が例えばリアルタイム性を要する処理である場合に一のドメインのデータ処理の遅延は当該他のドメインによる正常なデータ処理に致命的な影響を与える場合がある。このような事態に予め対処するには、例えば、第1のドメインから第2のドメインへのリクエストを発行して返信がくるまでの許容時間を設定して、もしこの許容時間を超えても返信が無い場合には、第1のドメイン側で何らかの重大な障害が発生したと判断して、予め対応するエラー処理を発行すればよい。しかしながら、その許容時間を短く設定すると、単に第2のドメイン側で一時的なメモリアクセス集中などの障害が発生している場合でも重大な障害発生と判断されてしまう。また、この許容時間を長く設定すると、第1のドメイン側のリアルタイム制約が破られてしまい、システムとして回復不可能な状態になるまで第2のドメインからの応答を待ってしまうことになる。第2のドメイン側の異常の徴候を事前に検出しておくことができれば、第1のドメイン側のリアルタイム制約を回復可能なレベルで異常時の予防処理を第1のドメイン側で実施でき、システムの安定性に寄与することができる。
【0004】
ドメインの異常兆候を事前に検出する技術として、例えば、特許文献1にはシステムのヘルスチェック機能として、監視CPUが被監視CPUに対して、所定の値を転送し、これに応答して被監視CPUは転送された値を監視CPUに返すことで監視CPUは被監視CPUが正常であることを判定する技術が記載される。
【0005】
特許文献2には、タイマのタイムアウトにより被監視CPUは監視CPUに対して被監視CPUで計算した値を転送する。監視CPUは自分が管理している値と被監視CPUから転送された値を照合して、一致していたら被監視CPUが異常である、すなわち、新たに正しい値を計算できなかった、と判別する技術について記載される。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平08−305675号公報
【特許文献2】特開平11−039032号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1は、一回のチェックで不一致であればその時点で異常と判定してしまうので、安全な復帰ができないか、あるいは、厳しすぎる制約条件を課してしまうことにもなる。よって、システムの安全性を優先させることと可用性(稼動性)を優先させることとの間に選択の幅が狭くなり、異常徴候の事前検出による実効性を得ることがむずかしいと考えられる。特許文献2についても一回の異常もしくは登録遅れでのみ異常を判定するので、上記同様の問題がある。
【0008】
本発明の目的は、システムの安全性を優先させることと稼動性を優先させることとの間の選択の幅が広くなるように異常の兆候を検出することができるデータ処理システムを提供することにある。
【0009】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【0010】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0011】
すなわち、CPUの処理における着目する現象の累積的な履歴に基づいて異常の徴候を検出する予知回路を採用する。予知回路は、前記CPUからの定期的通知の最新の通知タイミングの情報をそのCPUと対応させて保持すると共に、所定周期毎に前記最新の通知タイミングからの経過時間を取得し、目標値に対する前記経過時間の変化に応ずる履歴情報を前記CPUに対応させて逐次保持し、保持した履歴情報が所定の閾値に達することを検出することによって異常の兆候ありと判別する。
【0012】
着目する現象の累積的な履歴に基づいて異常の徴候を検出するから、特定の事象が1回発生することによって異常の徴候があると判別する場合に比べて、異常の兆候を検出する場合にシステムの安全性を優先させることと稼動性を優先させることとの間の選択の幅が広くなる。
【発明の効果】
【0013】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【0014】
すなわち、システムの安全性を優先させることと稼動性を優先させることとの間の選択の幅が広くなるように異常の兆候を検出することができる。
【図面の簡単な説明】
【0015】
【図1】図1は本発明の一実施の形態に係るマイクロコンピュータを示すブロック図である。
【図2】図2は中央処理装置に対するメモリ空間のマッピング例を示すアドレスマッピング図である。
【図3】図3は割り込みを利用してドメインDMN0がその一部の処理をドメインDMN1に負担させる場合の処理フローを例示するフローチャートである。
【図4】図4は異常予知回路PRDCTの構成を例示するブロック図である。
【図5】図5は図1に即した例としてエントリデータの格納領域とドメインとの対応を例示する説明図である。
【図6】図6は図5の場合におけるエントリデータの格納領域に対する初期設定例を示す説明図である。
【図7】図7は予知判別制御部PCNTによる異常予知判定処理フローを例示するフローチャートである。
【図8】図8は予知判別制御部PCNTによる判別動作タイミングを例示するタイミングチャートである。
【図9】図9は図8の動作にしたがって操作されるエントリデータの変化を例示するタイミングチャートである。
【図10】図10は異常予知フローの別の例を示すフローチャートである。
【図11】図11は異常予知フローの更に別の例を示すフローチャートである。
【図12】図12はシャットダウンによるリカバリ処理の処理フローを例示するフローチャートである。
【図13】図13はリブートによるリカバリ処理の処理フローを例示するフローチャートである。
【図14】図14はメモリ退避によるリカバリ処理の処理フローを例示するフローチャートである。
【図15】図15は分担打ち切りによるリカバリ処理の処理フローを例示するフローチャートである。
【図16】図16はマイクロコンピュータの別の例を示すブロック図である。
【発明を実施するための形態】
【0016】
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【0017】
〔1〕<定期的通知タイミングの履歴に基づく異常予知判定>
本発明の代表的な実施の形態に係るデータ処理システム(MCU)は、複数のCPU(CPU0〜CPU3)と、前記CPUの異常を予知するための判別を行う予知回路(PRDCT)とを有する。前記予知回路は、前記CPUからの定期的通知の最新の通知タイミングの情報(Tp[0]、Tp[1]、Tp[2])をそのCPUと対応させて保持すると共に、所定周期毎に前記最新の通知タイミングからの経過時間(Tdiff)を取得し、目標値(Tw)に対する前記経過時間の変化に応ずる履歴情報(CNT,ACC)を前記CPUに対応させて逐次保持し、保持した履歴情報が所定の閾値(Cw)に達したとき、対応するCPUに対するリカバリ処理を要求する(IRQ_R)。
【0018】
所定周期毎における前記最新の通知タイミングからの経過時間の変化という着目する現象の累積的な履歴に基づいて異常の徴候を検出するから、特定の事象が1回発生することによって異常の徴候があると判別する場合に比べて、システムの安全性を優先させることと稼動性を優先させることとの間の選択の幅が広くなるように異常の兆候を検出することができる。要するに、前記目標値と閾値の設定しだいで、システムの安定性を優先させるか稼動性を優先させるかの選択を、システム性能やシステムの要求仕様に応じて容易に行うことができるようになる。
【0019】
〔2〕<タイマのタイムアウトによる定期的通知>
項1のデータ処理システムにおいて、前記CPUからの定期的通知は、第1のタイマ(TMR0〜TMR3)によるタイムアウト(IRQ0_T〜IRQ3_T)に起因してCPUがプログラム処理を行って前記予知回路に与える通知である。
【0020】
前記定期的通知を行うタイミングは第1のタイマに対するタイムアウトの設定によってプログラマブルに決めることができる。また、定期的通知の内容はCPUが実行するプログラムによって任意に決めることができる。
【0021】
〔3〕<CPU毎にプログラマブルなタイムアウト設定>
項2のデータ処理システムにおいて、前記第1のタイマは、前記CPU毎に異なるタイミングでタイムアウトを設定可能な複数のタイマチャネル(TMR0〜TMR3)を有する。
【0022】
前記定期的通知を行うタイミングをCPU毎に設定することができる。
【0023】
〔4〕<タイマのタイムアウトによる所定周期の生成>
項1乃至3のいずれかのデータ処理システムにおいて、前記所定周期は、第2のタイマ(TMRH)のタイムアウト(TOUT)の間隔に応ずる周期である。
【0024】
前記所定周期は第2のタイマに対するタイムアウトの設定によってプログラマブルに決めることができる。
【0025】
〔5〕<定期的通知のタイミングを時刻情報で与える>
項1乃至4のいずれかのデータ処理システムにおいて、前記通知タイミングの情報は、前記予知回路に前記定期的通知があったときの時刻情報である。
【0026】
時刻情報とすることにより、前記通知タイミングの情報の取得が容易になる。
【0027】
〔6〕<定期的通知が遅延した累積回数による履歴情報>
項5のデータ処理システムにおいて、前記履歴情報は、前記目標値に対して定期的通知が遅延した累積回数の情報である(図7)。
【0028】
累積回数の多少は異常の兆候度合に対応し、どの程度の異常の兆候を検出対象とするかは閾値の設定に応じて決めればよい。
【0029】
〔7〕<定期的通知が遅延した累積時間による履歴情報>
項5のデータ処理システムにおいて、前記履歴情報は、前記目標値に対して定期的通知が遅延した累積時間の情報である。
【0030】
累積時間の多少は異常の兆候度合に対応し、どの程度の異常の兆候を検出対象とするかは閾値の設定に応じて決めればよい。
【0031】
〔8〕<定期的通知が間に合った回数と遅延した回数の差分による履歴情報>
項5のデータ処理システムにおいて、前記履歴情報は、前記目標値に対して定期的通知が間に合った回数と遅延した回数の差分回数の情報である(図10)。
【0032】
差分回数は異常の兆候度合が変化する場合に異常の兆候からの回復を評価して異常の兆候度合を把握可能にする。
【0033】
〔9〕<定期的通知が間に合った余裕時間と遅延した時間との差分による履歴情報>
項5のデータ処理システムにおいて、前記履歴情報は、前記目標値に対して定期的通知が間に合った余裕時間と遅延した時間との差分時間の情報である(図11)。
【0034】
差分時間は異常の兆候度合が変化する場合に異常の兆候からの回復を評価して異常の兆候度合を把握可能にする。
【0035】
〔10〕<履歴情報などのエントリデータ格納領域>
項5のデータ処理システムにおいて、前記予知回路はCPUに対応するエントリデータの格納領域(ETRY0〜ETRYn)を有し、前記エントリデータは前記通知タイミングの情報である時刻情報(Tp)、履歴情報(CNT、ACC)、目標値(Tw)、及び閾値(Cw)である。
【0036】
予め夫々のCPUに対応するエントリデータの格納領域を設けておくことにより、何れのCPUに対しても異常の兆候を検出することが容易である。
【0037】
〔11〕<エントリデータの初期設定>
項10のデータ処理システムにおいて、前記エントリデータの格納領域は所定のCPUによって初期設定可能にされる。
【0038】
異常の兆候の検出対象とされるCPUによるデータ処理のリアルタイム性や処理速度などの性質に応じて前記目標値及び閾値を設定することができる。要するに、データ処理システムの機能や能力に応じてシステムの異常の兆候を検出可能になる。
【0039】
〔12〕<対応するCPUに対するリカバリ処理の要求>
項1乃至11のいずれかのデータ処理システムにおいて、前記対応するCPUに対するリカバリ処理の要求は、リカバリ処理を行うCPUへの割り込み要求(IRQ_R)である。
【0040】
割り込みを用いることによりリカバリ処理の内容を割り込み処理の内容によって任意に決定することが容易である。
【0041】
〔13〕<割り込みコントローラ>
項12のデータ処理システムにおいて、前記割り込み要求に応答してCPUに割り込み信号を出力する割り込みコントローラ(INTC)を更に有する。
【0042】
割り込み要求に対する割り込み優先レベルや割り込みベクタなどの制御をリカバリ処理にも容易に適用することができる。
【0043】
〔14〕<シャットダウンによるリカバリ処理>
項1乃至13のいずれかのデータ処理システムにおいて、前記リカバリ処理は、対応するCPUに対するシャットダウン処理である(S51)。
【0044】
異常の兆候があるCPUの不所望な動作を完全に排除することができる。
【0045】
〔15〕<リブートによるリカバリ処理>
項1乃至13のいずれかのデータ処理システムにおいて、前記リカバリ処理は、対応するCPUに対するリブート処理である(S61)。
【0046】
異常の兆候があるCPUの状態を初期化してから再度利用可能にすることができる。
【0047】
〔16〕<メモリ退避によるリカバリ処理>
項1乃至13のいずれかのデータ処理システムにおいて、前記リカバリ処理は、対応するCPUの内部状態をメモリに退避する処理である(S71)。
【0048】
メモリに退避した情報を用いてCPUの状態を再構成可能になる。
【0049】
〔17〕<分担打ち切りのリカバリ処理>
項1乃至13のいずれかのデータ処理システムにおいて、前記リカバリ処理は、対応するCPUへの処理の分担を打ち切ってその処理を自ら負担する処理である(S81,S82)。
【0050】
自らが処理を負担することによって処理が中断される事態を回避することができる。
【0051】
〔18〕<半導体集積回路化されたマイクロコンピュータ>
項1乃至17のいずれかのデータ処理システムは、1個の半導体基板にマイクロコンピュータ(MCU)として形成され。
【0052】
機能分散型の上記データ処理システムを1チップで半導体集積回路化することによって、機能増加要求および複数システムの統合によるコスト低減要求に応えることができる。
【0053】
2.実施の形態の詳細
実施の形態について更に詳述する。
【0054】
《マイクロコンピュータ》
図1には本発明の一実施の形態に係るデータ処理システムが例示される。同図に示されるデータ処理システムは、特に制限されないが、例えば、自動車分野の制御系システムとナビゲーションなどの情報系システムをひとつの半導体集積回路上で実現したシステムオンチップ(SoC)のマイクロコンピュータ(マクロプロセッサ、データ処理装置)などに適用される。
【0055】
同図に示されるマイクロコンピュータMCUは、例えば単結晶シリコンなどの1個の半導体基板にCMOS集積回路製造技術などによって形成される。マイクロコンピュータMCUは特に制限されないが2個のドメインDMN0(第1ドメイン),DMN1(第2ドメイン)を有する。ドメインDMN0,DMN1はCPUとその動作プログラムによって実現される機能単位であり、ドメインDMN0は、中央処理装置CPU0,中央処理装置CPU0のリソースに対するメモリ管理やタスクの管理を行う上位のプログラムであるオペレーティングシステムOS0、及びタスクを規定するためのアプリケーションプログラムPGM0を有する。同じくドメインDMN1は、中央処理装置CPU1、オペレーティングシステムOS1、及びアプリケーションプログラムPGM1を有する。
【0056】
ドメインDMN0,DMN1はシステムバスBUSを共有し、システムバスBUSにはリソースとして代表的に示された、メモリコントローラMCNT、電気的に書き換え可能な不揮発性メモリFLSH,第1タイマとしてのタイマ回路TMR0,TMR1、画像処理回路GRF、ネットワーク通信回路NET、割り込みコントローラINTC、異常予知回路PRDCT、及び第2のタイマとしてのタイマ回路TMRHを有する。メモリコントローラMCNTには外部メモリとしてシンクロナスダイナミックランダムアクセスメモリSDRAMが接続される。シンクロナスダイナミックランダムアクセスメモリSDRAMは画像処理回路GRFのフレームバッファ、ネットワーク通信回路NETの通信バッファ、中央処理装置CPUのワーク領域などに用いられる。タイマ回路TMR0,TMR1は割り込みコントローラINTCにタイムアウト割り込み要求信号IRQ0_T,IRQ1_Tを出力する。タイマ回路TMRHはタイムアウト信号TOUTを異常予知回路PRDCTに出力する。異常予知回路PRDCTは割り込みコントローラINTCにリカバリ割り込み要求信号IRQ_Rを出力する。割り込みコントローラINTCはドメインDMN0の中央処理装置CPU0に対する割り込み信号INT0、ドメインDMN1の中央処理装置CPU1に対する割り込み信号INT1を出力する。
【0057】
図2には中央処理装置に対するメモリ空間のマッピング例が示される。ここでは不揮発性メモリFLSH及びシンクロナスダイナミックランダムアクセスメモリSDRAM上のメモリマッピングが例示され、A1,A2は中央処理装置CPU0だけがアクセス可能にされたメモリ空間、Bは中央処理装置CPU01だけがアクセス可能にされたメモリ空間、Cは双方の中央処理装置CPU0、CPU1がアクセス可能な共有メモリ空間である。共有メモリ空間CはドメインDMN0とドメインDMN1との間のデータの受け渡しなどに利用される。
【0058】
図3には割り込みを利用してドメインDMN0がその一部の処理をドメインDMN1に負担させる場合の処理フローが例示される。
【0059】
ドメインDMN0の中央処理装置CPU0は所定のデータ処理結果を共有メモリ領域Cに書き込み(S1)、そのデータを用いる次のデータ処理をドメインDMN1の中央処理装置CPU1に負担させるために中央処理装置CPU0は割り込みコントローラINTに割り込みを要求する(S2)。
【0060】
割り込みコントローラINTCはその割り込み要求を受け付けることによって中央処理装置CPU1に割り込み信号INT1を出力すると共に、その割り込み要因をバスSUBに出力する(S10)。
【0061】
中央処理装置CPU1はその割り込み信号INT1による割り込みが通知されると、命令実行を中断して必要な退避処理を行って(S20)、その割り込み要因に対応する割り込み処理プログラムの処理に分岐し(S21)、当該割り込み処理プログラムにしたがって共有メモリ領域Cのデータを用いて所用のデータ処理を行う(S22)。中央処理装置CPU1はそれによるデータ処理結果を共有メモリ領域Cに書き込み(S23)、そのデータを中央処理装置CPU0に渡すために割り込みコントローラINTに割り込みを要求する(S24)。
【0062】
割り込みコントローラINTCは、その割り込み要求を受け付けることによって中央処理装置CPU0に割り込み信号INT0を出力すると共に、その割り込み要因をバスSUBに出力する(S11)。
【0063】
中央処理装置CPU0はその割り込み信号INT0による割り込みが通知されると、命令実行を中断して必要な退避処理を行って(S3)、その割り込み要因に対応する割り込み処理プログラムの処理に分岐し(S4)、当該割り込み処理プログラムにしたがって共有メモリ領域Cからデータを読み出して所用のデータ処理を行う(S4)。
【0064】
中央処理装置CPU0は、ステップS2で割り込みを要求してからステップS11の割り込み信号INT1を受け取るまでの時間が長すぎる場合、共有メモリ領域Cのデータを用いるデータ処理に関するリアルタイム制約を満足できない場合がある。前記異常予知回路PRDCTは、そのような待ち時間が長くなりすぎるような事態を発生させる異常を予知して早期にリカバリ可能とする回路である。以下、異常予知回路PRDCTについて詳述する。
【0065】
《異常予知回路》
図4には異常予知回路PRDCTの構成が例示される。異常予知回路PRDCTは予知の対象にされる中央処理装置と予知結果に従ってリカバリを行う主体になる中央処理装置との間で機能される。図4に従えば、異常予知回路PRDCTは夫々のドメイン若しくは中央処理装置に対応させたエントリデータの格納領域ETRY0〜ETRYnを有する。ここでは便宜上n+1のエントリデータの格納領域を備えるものとするが、図1の構成に従えば2個のエントリデータの格納領域ETRY0〜ETRY1を備えれば十分である。エントリデータの格納領域ETRY0〜ETRYnは実際にはランダムアクセスメモリで構成すればよく、異常予知動作において予知判別制御部PCNTがエントリデータのリード/ライトを行い、また、システムバスBUSを介してマスタとされる特定の中央処理装置、例えば中央処理装置CPU0がエントリデータの初期設定を行う。
【0066】
エントリデータは、例えば通知時刻情報Tp、目標値Tw、閾値Cw、及び履歴カウント値CNTとされる。
【0067】
通知時刻情報Tpは、予知の対象にされる中央処理装置から定期的に行われる通知の最新の通知タイミング情報としての時刻情報である。例えば、ドメインDMN0に対応するエントリ番号0のエントリデータの格納領域ETRY0における通知時刻情報Tpは次のようにして生成される。すなわち、タイマTMR0のタイムアウト割り込み要求IRQ0_T毎に中央処理装置CPU0が当該割り込みに応答して所定の割り込み処理プログラムを実行し、これによって予知判別制御部PRCNTにエントリ更新信号RNW0を与える。エントリ更新信号RNW0は中央処理装置CPU0に固有の信号であり、例えば予知判別制御部PRCNT内部の特定レジスタアドレスに対して中央処理装置CPU0が書き込みを行う当該中央処理装置CPU0の識別コードであってもよい。予知判別制御部PRCNTは、エントリ更新信号RNW0を受け取ったときに時刻情報を図示を省略するリアルタイムクロックタイマなどから取得し、エントリ更新信号RNW0に対応するエントリ番号0のエントリデータの格納領域ETRY0における通知時刻情報Tpをその時刻情報によって更新する。他のドメインDMN1に対応するエントリ番号1のエントリデータの格納領域ETRY1における通知時刻情報Tpについても同様である。
【0068】
予知判別制御部PCNTはタイマTMRHから所定周期でタイムアウト信号TOUTを受け取る毎に、更にはエントリ更新信号を受け取る毎に、最新の通知時刻情報Tpと現在時刻Thとの差(Tdiff)が目標値Twに達しているか否かを判別する。タイムアウト信号TOUTによるタイムアウト周期は、例えばタイマTMR0(TMR1)のタイムアウト割り込み要求IRQ0_T(IRQ1_T)による周期に比べて短くされる。
【0069】
予知判別制御部PCNTは、Tw≦Tdiffの判別結果にしたがって履歴カウント値CNTを操作する。その操作内容は、その判別結果の履歴を何らかの意味で蓄積できる操作であればよく、特に制限されないが、Tw≦Tdiffの判別結果を得る毎に履歴カウント値CNTを+1する(1インクリメントする)操作であってよい。
【0070】
予知判別制御部PCNTは、履歴カウント値CNTが閾値Cwに達したとき、対応する中央処理装置に対するリカバリ処理を要求するために割り込み要求信号IRQ_Rで割り込みコントローラINTCに割り込みを要求する。割り込みコントローラINTCはこれに応答してリカバリ処理の主体とされるべき中央処理装置CPU0(CPU1)に割り込み信号INT0(INT1)を出力すると共に対応する割り込み要因を与える。すなわち、ドメインDMN0に対応するエントリ番号0のエントリデータの格納領域ETRY0における履歴カウント値CNTがその閾値Cwに達したときには中央処理装置CPU1に対する割り込み信号INT1が活性化され、ドメインDMN1に対応するエントリ番号1のエントリデータの格納領域ETRY1における履歴カウント値CNTがその閾値Cwに達したときには中央処理装置CPU0に対する割り込み信号INT0が活性化される。
【0071】
図5には図1に即した例としてエントリデータの格納領域とドメインとの対応が例示される。エントリデータの格納領域ETRY0はドメインDMN0に対応され、エントリデータの格納領域ETRY1はドメインDMN1に対応される。ここではドメインDMN0はシステム全体の制御(システム制御)に用いられ、ドメインDMN1は画像処理や通信処理の制御に用いられる。
【0072】
図6には図5の場合におけるエントリデータの格納領域に対する初期設定例が示される。図より明らかのように、システム制御に用いるドメインDMN0のほうが目標値Tw及び閾値Cwの点で厳しい設定になっている。通知時刻情報Tpについても初期設定することが可能である。
【0073】
《異常予知フロー》
図7には予知判別制御部PCNTによる異常予知判定処理フローが例示される。同図に示される判定処理は、予知判別制御部PCNTがタイマTMRHから所定周期でタイムアウト信号TOUTを受け取る毎に、更にはエントリ更新信号RNW0,RNW1を受け取る毎に開始される。開始されるとまず、予知判別制御部PCNTは対応するエントリデータTp,Tw,Cw,CNTを読み込むと共に、現在時刻Thを取得する(S30)。
【0074】
次いで、予知判別制御部PCNTは、最新の通知時刻情報Tpと現在時刻Thとの差(Tdiff)を演算し(S31)、その差が目標値Twに達しているか否かを判別する(S32)。Tw≦Tdiffの判別結果を得たときは履歴カウント値CNTを+1する(S33)。
【0075】
そして予知判別制御部PCNTは、履歴カウント値CNTが閾値Cwに達したか否かを判別し(S34)、Cw≦CNTでなければTpを最新の通知時刻情報に更新し(S35)、Cw≦CNTであれば対応する中央処理装置に対するリカバリ処理を要求するために割り込み要求信号IRQ_Rで割り込みコントローラINTCに割り込みを要求する(S36)。例えば、ドメインDMN0に対応するエントリ番号0のエントリデータの格納領域ETRY0における履歴カウント値CNTがその閾値Cwに達したときには中央処理装置CPU1に対する割り込み信号INT1が活性化され、ドメインDMN1に対応するエントリ番号1のエントリデータの格納領域ETRY1における履歴カウント値CNTがその閾値Cwに達したときには中央処理装置CPU0に対する割り込み信号INT0が活性化される。割り込み信号が活性化された中央処理装置は当該割り込みに応答する得割り込み処理プログラムに従ってリカバリ処理を行う。リカバリ処理の具体的な内容については後述する。
【0076】
《異常予知の動作タイミング》
図8には予知判別制御部PCNTによる判別動作のタイミングチャートが例示される。図9には図8の動作にしたがって操作されるエントリデータの変化が例示される。ここではドメインDMN1に対して異常を予知する判定動作が例示される。
【0077】
ドメインDMN1に対応する格納領域ETRY1(エントリ番号1)におけるエントリデータの初期値は図9のようにTw=20,Cw=10,Tp=5,CNT=0である。タイマTMR1のタイマ割り込みIRQ1_Tの周期をTS、タイマTMRHによるタイムアウトTOUTの周期をTHとする。Th[1]〜Th[5]は周期TH毎の予知判別制御部PCNTによる判別動作タイミングである。Tp(0)、Tp(1)、Tp(2)はタイマTMR1から周期TSで発行される割り込み要求IRQ1_Tに応答する割り込み処理によって中央処理装置CPU1から更新信号RNW1が与えられるタイミングである。タイマTMR1から割り込み要求IRQ1_Tが発行される周期は周期TSで一定であるが、それに応答して中央処理装置CPU1から供給される更新信号RNW1の発生タイミングTp(1),Tp(2)は一定にならない。これは、中央処理装置CPU1が割り込み要求IRQ1_Tに応答して割り込み処理を行おうとするときに当該中央処理装置CPU1のデータ処理状況、更新信号RNW1を予知判別制御部PCNTに与えようとしたときにおけるシステムバスBUSの競合状態などの影響を受けるからである。また、中央処理装置CPU1に障害が発生していればその障害の度合いに応じて当該割り込み処理プログラムの実行が遅滞若しくは中断して、更新信号RNW1の発生タイミングに影響がでる。イベント1〜イベント4は中央処理装置CPU1が更新信号RNW1を出力するための割り込み処理の実行開始タイミングを意味する。
【0078】
Th[2]=20まではThとTpの差がTwよりも小さいからCNTは0に維持される。Th=25のTp(1)のタイミングでは更新前のTpが5であり、Th(=25)とTp(=5)の差がTw(=20)以上になるからCNTが+1されて1になる。CNTの更新と共にTpが最新の値25に更新される。この後のTh[4]まではThとTpの差がTwよりも小さいからCNTは1に維持される。Th[5]ではThとTpの差がTw以上になるからCNTは+1されて2に更新され、次のTh=55のTp(2)のタイミングでは更新前のTpが25であり、Th(=55)とTp(=25)の差がTw(=20)以上になるからCNTが+1されて3になる。これによってCNTはCw(=3)以上になるので、予知回路PRDCTはドメインDMN0の中央処理装置CPU0に対してリカバリ処理のための割り込みを要求する。
【0079】
上記タイミングチャートからも明らかなように、エントリデータとして保持されている最新の通知時刻情報Tpと現在時刻Thとの所定周期毎THの差の累積的な履歴であるカウント値CNTに基づいて異常の徴候を検出するから、特定の事象が1回発生することによって異常の徴候があると判別する場合に比べて、システムの安全性を優先させることと稼動性を優先させることとの間の選択の幅が広くなるように異常の兆候を検出することができる。要するに、前記目標値Twと閾値Cwの設定しだいで、システムの安定性を優先させるか稼動性を優先させるかの選択を、マイクロコンピュータMCUのシステム性能やシステムの要求仕様に応じて容易に行うことができるようになる。
【0080】
更新信号RNW0,RNW1による定期的通知を行うタイミングはタイマTMR0,TMR1に対するタイムアウトの設定によってプログラマブルに決めることができ、また、当該定期的通知の内容はタイマ割り込みに応答して中央処理装置が実行するプログラムによって任意に決めることができる。
【0081】
また、タイマTMR0,TMR1は中央処理装置毎に異なるタイミングでタイムアウトを設定可能であるから、前記定期的通知を行うタイミングを中央処理装置毎に設定することができる。
【0082】
周期THはタイマTMTHのタイムアウトの間隔に応ずる周期とされるから、その周期THはタイマTMRHに対するタイムアウトの設定によってプログラマブルに決めることができる。
【0083】
履歴情報は、前記目標値に対して定期的通知が遅延した累積回数としてのカウンタ値CNTであるから、累積回数の多少は異常の兆候度合に対応し、どの程度の異常の兆候を検出対象とするかは閾値Cwの設定に応じて容易に決めることができる。
【0084】
エントリデータの格納領域を所定の中央処理装置によって初期設定可能にすることにより、異常の兆候の検出対象とされるCPUによるデータ処理のリアルタイム性や処理速度などの性質に応じて前記目標値及び閾値を設定することができる。要するに、データ処理システムの機能や能力に応じてシステムの異常の兆候を検出することが容易になる。
【0085】
《異常予知フローの変形例》
図10には異常予知フローの別の例が示される。図7との相違点は、最新の通知時刻情報Tpと現在時刻Thとの差(Tdiff)を演算し(S31)、その差が目標値Twに達しているか否かを判別したとき(S32)、Tw≦Tdiffの判別結果が得られないときには履歴カウント値CNTを−1(1デクリメント)する処理(S40)を追加したことである。その他の処理は図7と同じであるからその詳細な説明は省略する。
【0086】
このように、目標値に対して定期的通知が間に合った回数と遅延した回数の差分回数の情報を履歴情報とすることにより、異常の兆候度合が変化する場合に異常の兆候からの回復を評価して異常の兆候度合を把握可能になる。
【0087】
図11には異常予知フローの更に別の例が示される。ここではエントリデータのカウンタ値CNTに代えて時間の累積値ACCを採用する。図11では、予知判別制御部PCNTは、最新の通知時刻情報Tpと現在時刻Thとの差(Tdiff)を演算し(S31)、その差が目標値Twに達しているか否かを判別したとき(S32)、Tw≦Tdiffの判別結果を得たときは累積値ACCにその差分時間Tdiffと目標値Twとの差を加算する(S41)。一方、Tw≦Tdiffの判別結果が得られないときには累積値ACCに目標値Twとその差分時間Tdiffとの差を減算する(S42)。その他の処理は図7と同じであるからその詳細な説明は省略する。
【0088】
累積値ACCの多少は異常の兆候度合に対応し、どの程度の異常の兆候を検出対象とするかは閾値の設定に応じて決めればよい。累積時間ACCとして前記目標値に対して定期的通知が間に合った余裕時間と遅延した時間との差分時間を採用することにより、異常の兆候度合が変化する場合に異常の兆候からの回復を評価して異常の兆候度合を把握可能になる。
【0089】
特に図示はしないが、図11においてステップS42の処理を省き、目標値に対して定期的通知が遅延した累積時間の情報を履歴情報として採用してもよい。
【0090】
《リカバリ処理》
上述の説明では、CPUに対するリカバリ処理の要求として、リカバリ処理を行うCPUへの割り込み要求を用いる。割り込みを用いることによりリカバリ処理の内容を割り込み処理の内容によって任意に決定することが容易である。
【0091】
図12にはシャットダウンによるリカバリ処理の処理フローが例示される。ここでは異常の予知が検出される対象を中央処理装置CPU1とし、中央処理装置CPU0がリカバリ処理を行うものとする。中央処理装置CPU1に対して検出された異常の予知が割り込み信号INT0によって中央処理装置CPU0に通知されると(S50)、中央処理装置CPU0はその割り込み要因に応答する割り込み処理プログラムを実行して、中央処理装置CPU1のドメインDMN1をシャットダウンする(S51)。これにより、異常の兆候がある中央処理装置CPU1の不所望な動作を完全に排除することができる。中央処理装置CPU0は中央処理措置CPU1を動作させずにシステム動作を継続し、マイクロコンピュータMCUの外部には異常発生を通知し(S52)、その後は、外部からの指示に従ってマイクロコンピュータMCUの運用を決定する(S53)。
【0092】
図13にはリブートによるリカバリ処理の処理フローが例示される。ここでは異常の予知が検出される対象を中央処理装置CPU1とし、中央処理装置CPU0がリカバリ処理を行うものとする。中央処理装置CPU1に対して検出された異常の予知が割り込み信号INT0によって中央処理装置CPU0に通知されると(S60)、中央処理装置CPU0はその割り込み要因に応答する割り込み処理プログラムを実行して、中央処理装置CPU1のドメインDMN1をリブートする(S61)。これにより、異常の兆候がある中央処理装置CPU1の状態を初期化してから再度利用可能にすることができる。ここでは、リブート後にも、中央処理装置CPU0は中央処理措置CPU1を動作させずにシステム動作を継続し、マイクロコンピュータMCUの外部には異常発生を通知し(S62)、その後は、外部からの指示に従ってマイクロコンピュータMCUの運用を決定する(S63)。
【0093】
図14はメモリ退避によるリカバリ処理の処理フローが例示される。ここでは異常の予知が検出される対象を中央処理装置CPU1とし、中央処理装置CPU0がリカバリ処理を行うものとする。中央処理装置CPU1に対して検出された異常の予知が割り込み信号INT0によって中央処理装置CPU0に通知されると(S70)、中央処理装置CPU0はその割り込み要因に応答する割り込み処理プログラムを実行して、中央処理装置CPU1の内部状態をメモリに退避する(S71)。これにより、メモリに退避した情報を用いてCPUの状態を再構成可能になる。中央処理装置CPU0は、退避されている情報を用いて中央処理装置CPU1の状態を回復し、ドメインDMN1を再起動して、利用可能にする(S72)。
【0094】
図15には分担打ち切りによるリカバリ処理の処理フローが例示される。ここでは異常の予知が検出される対象を中央処理装置CPU1とし、中央処理装置CPU0がリカバリ処理を行うものとする。中央処理装置CPU1に対して検出された異常の予知が割り込み信号INT0によって中央処理装置CPU0に通知されると(S80)、中央処理装置CPU0から中央処理装置CPU1に処理を依頼しているタスクの終了を待って新たなタスクの追加依頼を中止する(S81)。そして、中央処理装置CPU1への処理の分担を打ち切った処理を中央処理装置CPU0が自ら負担するようにシステムの状態を更新する(S82)。これにより、自らが処理を負担することによって処理が中断される事態を回避することができる。中央処理装置CPU0は中央処理措置CPU1を動作させずにシステム動作を継続し、マイクロコンピュータMCUの外部には異常発生を通知する(S83)。
【0095】
《マイクロコンピュータの別の例》
図16にはマイクロコンピュータの別の例が示される。同図に示されるマイクロコンピュータMCUは、図1に比べて4個のドメインDMN0〜DMN3が設けられ、4個のタイマTMR0〜TMR3が設けられ、夫々にタイマTMR0〜TMR3からタイマ割り込み要求信号IRQ0_T〜IRQ3_Tが出力され、割り込みコントローラINTCから夫々の中央処理装置CPU0〜CPU3に割り込み信号INT0〜INT3が出力される点が相違される。回路ユニットの数が増えることにとって影響されない回路は図1と同じである。図16には図示を省略してあるが図1の画像処理回路GRF及びネットワーク通信回路NETなどが設けられている。
【0096】
図1と同様に図16のマイクロコンピュータMCUも1個の半導体基板に集約されて構成される。マイクロコンピュータMCUが1チップで半導体集積回路化されることにより、機能増加要求および複数システムの統合によるコスト低減要求に応えることができる。
【0097】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0098】
例えば、中央処理装置の数は2個、4個に限定されず適宜決定することができる。データ処理システムはオペレーティングシステムを利用せずに構成されてもよい。定期的通知や所定周期毎の判別の周期の生成にオンチップタイマを用いたが、それに限定されない。
【符号の説明】
【0099】
MCU マイクロコンピュータ
DMN0〜DMN3 ドメイン
CPU0〜CPU3 中央処理装置
OS0〜OS3 オペレーティングシステム
PGM0〜PGM3 アプリケーションプログラム
BUS システムバス
MCNT メモリコントローラ
FLSH 不揮発性メモリ
TMR0〜TMR3 タイマ
GRF 画像処理回路
NET ネットワーク通信回路
INTC 割り込みコントローラ
PRDCT 異常予知回路
TMRH タイマ
IRQ0_T〜IRQ3_Tタイムアウト割り込み要求信号
TOUT タイムアウト信号
IRQ_R リカバリ割り込み要求信号
C 共有メモリ空間
ETRY0〜ETRYn エントリデータの格納領域
PCNT 予知判別制御部
RNW0、RNW1 エントリ更新信号
Tp 最新の通知時刻情報
Th 現在時刻
Tw 目標値
CNT 履歴カウント値
Cw 閾値
【特許請求の範囲】
【請求項1】
複数のCPUと、前記CPUの異常を予知するための判別を行う予知回路とを有するデータ処理システムであって、
前記予知回路は、前記CPUからの定期的通知の最新の通知タイミングの情報をそのCPUと対応させて保持すると共に、所定周期毎に前記最新の通知タイミングからの経過時間を取得し、目標値に対する前記経過時間の変化に応ずる履歴情報を前記CPUに対応させて逐次保持し、保持した履歴情報が所定の閾値に達したとき、対応するCPUに対するリカバリ処理を要求する、データ処理システム。
【請求項2】
前記CPUからの定期的通知は、第1のタイマによるタイムアウトに起因してCPUがプログラム処理を行って前記予知回路に与える通知である、請求項1記載のデータ処理システム。
【請求項3】
前記第1のタイマは、前記CPU毎に異なるタイミングでタイムアウトを設定可能な複数のタイマチャネルを有する、請求項2記載のデータ処理システム。
【請求項4】
前記所定周期は、第2のタイマのタイムアウトの間隔に応ずる周期である、請求項1記載のデータ処理システム。
【請求項5】
前記通知タイミングの情報は、前記予知回路に前記定期的通知があったときの時刻情報である、請求項1記載のデータ処理システム。
【請求項6】
前記履歴情報は、前記目標値に対して定期的通知が遅延した累積回数の情報である、請求項5記載のデータ処理システム。
【請求項7】
前記履歴情報は、前記目標値に対して定期的通知が遅延した累積時間の情報である、請求項5記載のデータ処理システム。
【請求項8】
前記履歴情報は、前記目標値に対して定期的通知が間に合った回数と遅延した回数の差分回数の情報である、請求項5記載のデータ処理システム。
【請求項9】
前記履歴情報は、前記目標値に対して定期的通知が間に合った余裕時間と遅延した時間との差分時間の情報である、請求項5記載のデータ処理システム。
【請求項10】
前記予知回路はCPUに対応するエントリデータの格納領域を有し、前記エントリデータは前記通知タイミングの情報である時刻情報、履歴情報、目標値、及び閾値である、請求項5記載のデータ処理システム。
【請求項11】
前記エントリデータの格納領域は所定のCPUによって初期設定可能にされる、請求項10記載のデータ処理システム。
【請求項12】
前記対応するCPUに対するリカバリ処理の要求は、リカバリ処理を行うCPUへの割り込み要求である、請求項1記載のデータ処理システム。
【請求項13】
前記割り込み要求に応答してCPUに割り込み信号を出力する割り込みコントローラを更に有する、請求項12記載のデータ処理システム。
【請求項14】
前記リカバリ処理は、対応するCPUに対するシャットダウン処理である、請求項1記載のデータ処理システム。
【請求項15】
前記リカバリ処理は、対応するCPUに対するリブート処理である、請求項1記載のデータ処理システム。
【請求項16】
前記リカバリ処理は、対応するCPUの内部状態をメモリに退避する処理である、請求項1記載のデータ処理システム。
【請求項17】
前記リカバリ処理は、対応するCPUへの処理の分担を打ち切ってその処理を自ら負担する処理である、請求項1記載のデータ処理システム。
【請求項18】
1個の半導体基板にマイクロコンピュータとして形成された、請求項1記載のデータ処理システム。
【請求項1】
複数のCPUと、前記CPUの異常を予知するための判別を行う予知回路とを有するデータ処理システムであって、
前記予知回路は、前記CPUからの定期的通知の最新の通知タイミングの情報をそのCPUと対応させて保持すると共に、所定周期毎に前記最新の通知タイミングからの経過時間を取得し、目標値に対する前記経過時間の変化に応ずる履歴情報を前記CPUに対応させて逐次保持し、保持した履歴情報が所定の閾値に達したとき、対応するCPUに対するリカバリ処理を要求する、データ処理システム。
【請求項2】
前記CPUからの定期的通知は、第1のタイマによるタイムアウトに起因してCPUがプログラム処理を行って前記予知回路に与える通知である、請求項1記載のデータ処理システム。
【請求項3】
前記第1のタイマは、前記CPU毎に異なるタイミングでタイムアウトを設定可能な複数のタイマチャネルを有する、請求項2記載のデータ処理システム。
【請求項4】
前記所定周期は、第2のタイマのタイムアウトの間隔に応ずる周期である、請求項1記載のデータ処理システム。
【請求項5】
前記通知タイミングの情報は、前記予知回路に前記定期的通知があったときの時刻情報である、請求項1記載のデータ処理システム。
【請求項6】
前記履歴情報は、前記目標値に対して定期的通知が遅延した累積回数の情報である、請求項5記載のデータ処理システム。
【請求項7】
前記履歴情報は、前記目標値に対して定期的通知が遅延した累積時間の情報である、請求項5記載のデータ処理システム。
【請求項8】
前記履歴情報は、前記目標値に対して定期的通知が間に合った回数と遅延した回数の差分回数の情報である、請求項5記載のデータ処理システム。
【請求項9】
前記履歴情報は、前記目標値に対して定期的通知が間に合った余裕時間と遅延した時間との差分時間の情報である、請求項5記載のデータ処理システム。
【請求項10】
前記予知回路はCPUに対応するエントリデータの格納領域を有し、前記エントリデータは前記通知タイミングの情報である時刻情報、履歴情報、目標値、及び閾値である、請求項5記載のデータ処理システム。
【請求項11】
前記エントリデータの格納領域は所定のCPUによって初期設定可能にされる、請求項10記載のデータ処理システム。
【請求項12】
前記対応するCPUに対するリカバリ処理の要求は、リカバリ処理を行うCPUへの割り込み要求である、請求項1記載のデータ処理システム。
【請求項13】
前記割り込み要求に応答してCPUに割り込み信号を出力する割り込みコントローラを更に有する、請求項12記載のデータ処理システム。
【請求項14】
前記リカバリ処理は、対応するCPUに対するシャットダウン処理である、請求項1記載のデータ処理システム。
【請求項15】
前記リカバリ処理は、対応するCPUに対するリブート処理である、請求項1記載のデータ処理システム。
【請求項16】
前記リカバリ処理は、対応するCPUの内部状態をメモリに退避する処理である、請求項1記載のデータ処理システム。
【請求項17】
前記リカバリ処理は、対応するCPUへの処理の分担を打ち切ってその処理を自ら負担する処理である、請求項1記載のデータ処理システム。
【請求項18】
1個の半導体基板にマイクロコンピュータとして形成された、請求項1記載のデータ処理システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2012−43315(P2012−43315A)
【公開日】平成24年3月1日(2012.3.1)
【国際特許分類】
【出願番号】特願2010−185719(P2010−185719)
【出願日】平成22年8月23日(2010.8.23)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】
【公開日】平成24年3月1日(2012.3.1)
【国際特許分類】
【出願日】平成22年8月23日(2010.8.23)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】
[ Back to top ]