JPH1124962A - マイクロコンピュータ装置 - Google Patents
マイクロコンピュータ装置Info
- Publication number
- JPH1124962A JPH1124962A JP9172369A JP17236997A JPH1124962A JP H1124962 A JPH1124962 A JP H1124962A JP 9172369 A JP9172369 A JP 9172369A JP 17236997 A JP17236997 A JP 17236997A JP H1124962 A JPH1124962 A JP H1124962A
- Authority
- JP
- Japan
- Prior art keywords
- cpu
- runaway
- program
- reset
- stack pointer
- 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.)
- Granted
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
イクロコンピュータ装置でも、プログラムの暴走時に、
簡単かつ確実にリセットを行うことを可能にする。 【解決手段】 メイルーチン処理(a1)の一環とし
て、マイクロコンピュータ装置の暴走検出処理を行う
(a10)。マイクロコンピュータ装置の暴走が検出さ
れると(a11)、スタックポインタ操作命令のうち、
その値を一方向に変化させる命令であるPUSH命令な
どを繰返して行う(a13)。スタックポインタの値が
異常になると、CPUはリセットされ、プログラムの暴
走状態は解消される。
Description
く用いられるマイクロコンピュータ装置、特にプログラ
ム実行中の暴走を検出してリセットする機能を有するマ
イクロコンピュータ装置に関する。
(以下、「マイコン」と略称することもある)を用いて
各種制御などがプログラム動作に基づいて自動的に行わ
れている。たとえば、自動車には、「ECU」と呼ばれ
る制御用マイクロコンピュータ装置が各種搭載される。
プログラム動作を行うマイクロコンピュータは、プログ
ラム自体の誤りや、外部からのノイズなどの影響によっ
て、正常なプログラム実行中の動作ではない「暴走」を
起こすことがある。
ラム動作から外れる暴走状態となると、制御用などのマ
イクロコンピュータ装置の動作が予測がつかないものに
なってしまう。暴走が部分的であっても、制御の信頼性
が低くなってしまう。CPUの命令セット中にリセット
命令を備えるマイクロコンピュータ装置であれば、暴走
を検知したときにリセット命令を実行し、リセット状態
からプログラムの実行を再開させる。CPUの動作がリ
セット状態から開始するときには、各種データなどを初
期化し、一定の環境を整えてプログラムの実行が行われ
る。
られた各種データなどの値も異常になってしまう可能性
があるので、暴走検知の際にはリセットをかけることが
有効である。操作者が暴走に気付いたときは、リセット
用スイッチなどを操作してリセットをかける。
いて、ソフトウエアにて実現する方法は、一般によく知
られている。実際に「暴走」を生じていると検出される
場合には、マイクロコンピュータ装置のCPUが備える
命令セットにリセット命令が含まれていれば、リセット
命令に対応する命令語を暴走対策プログラム中で実行す
るようにすればよい。
ッグタイマを備え、CPUから周期的にウオッチドッグ
パルスが導出されなくなると、CPUをリセットするマ
イクロプロセッサの暴走監視システムについての先行技
術が開示されている。この先行技術では、CPUは複数
のサブルーチンを含むメインルーチンを周期的に繰返し
て実行する。サブルーチンを通る回数はカウンタによっ
て計数され、プログラムが部分的に暴走して、メインル
ーチンの最後に計数値が異常であると、ウオッチドック
パルスの出力を停止する。プログラムが完全に暴走する
ときにもウオッチドックパルスの出力は停止するので、
プログラムの完全暴走と、部分的な暴走とで、いずれも
ウオッチドックタイマが動作し、CPUのリセットな
ど、暴走対策のための処置が行われる。特開平6−20
2909には、マイクロコンピュータ装置のプログラム
が格納されるプログラムメモリの空きメモリエリアの最
後などに暴走処理命令を配置し、他の空きメモリエリア
には無処理命令を配置して、プログラムの暴走によっ
て、本来アクセスされるはずのない空きメモリエリアに
プログラムの実行アドレスが移ってしまっても、暴走処
理命令を実行して暴走を停止させる先行技術が開示され
ている。暴走処理命令は、リセット命令に相当する命令
であり、たとえばプログラムカウンタの初期値である0
番地などにジャンプする命令が用いられる。
ラムが暴走しているときに、CPUをリセットすれば、
暴走状態が解除されると期待される。しかしながら、リ
セット命令を有していないCPUでは、ソフトウエアに
よって簡単にリセットをかけることができない。CPU
の命令リセットはコードの種類に限界があり、含むこと
ができる命令の数にも限界が生じる。このため、CPU
には必ずしもリセット命令が含まれているとは限らな
い。
るマイクロコンピュータ装置でのプログラム暴走対策に
は、特開昭62−52647の先行技術のように、ウオ
ッチドッグタイマ機能を用いることも多い。しかしなが
ら、ウオッチドッグタイマ機能でも、プログラム暴走時
に完全にリセットすることができるとは限らない。たと
えば、部分的なプログラムの暴走によって、プログラム
メモリの未使用部分にプログラムの実行アドレスが一時
的に移ってしまっても、元のプログラム領域に復帰して
ウォッチドッグパルスを発生するような場合には、ウオ
ッチドッグタイマ機能を利用するリセットを行うことが
できない。リセットを行うことができないにもかかわら
ず、プログラム領域への復帰がどのように行われるかが
不明であるので、誤動作は生じてしまう。
ないCPUに対し、簡単かつ確実にリセットをかけるこ
とができるマイクロコンピュータ装置を提供することで
ある。
ンタの異常検出時にリセット状態へ移行する機能を備え
るCPUと、CPUのプログラム実行動作中に、暴走が
生じているか否かを検出する暴走検出手段と、暴走検出
手段によって暴走が生じていると判断されるとき、スタ
ックポインタ操作命令を実行することでスタックポイン
タを異常値とさせることで、CPUをリセットさせる暴
走対策手段とを含むことを特徴とするマイクロコンピュ
ータ装置である。
動作中に、暴走検出手段によって暴走が生じていること
が検出されると、暴走対策手段によってスタックポイン
タを異常にするスタックポインタ操作命令が実行され
る。CPUは、スタックポインタの異常検出時にリセッ
ト状態へ移行する機能を備えているので、スタックポイ
ンタが異常になった時点で、リセット状態へ移行させる
ことができる。
検出時にリセット状態へ移行する機能を備えるCPU
と、CPUの動作用プログラムが格納され、未使用部分
に、スタックポインタを異常にするスタックポインタ操
作命令が格納されるプログラムメモリとを含むことを特
徴とするマイクロコンピュータ装置である。
ムが格納されているプログラムメモリには、未使用部分
にスタックポインタを異常にするスタックポインタ操作
命令が格納される。プログラムの暴走の結果、プログラ
ムメモリの未使用部分に移行すると、CPUはスタック
ポインタを異常にするスタックポインタ操作命令を読込
んで実行する。スタックポインタの値が異常になると、
リセット状態に移行するので、暴走状態を解消させるこ
とができる。
るCPUと、CPUのプログラム実行動作中に、暴走が
生じているか否かを検出する暴走検出手段と、暴走検出
手段によって暴走が生じていると判断されるとき、CP
Uのリセット入力端子にCPUにリセットをかける信号
を出力するリセット出力手段とを含むことを特徴とする
マイクロコンピュータ装置である。
CPUの実行動作中に暴走が生じていると判断される
と、CPUのリセット入力端子にCPUにリセットをか
ける信号を、リセット出力手段からリセット入力端子に
与えるので、プログラム暴走時にはリセット状態に移行
し、暴走状態を解除することができる。
るCPUと、CPUの予め定める出力端子からの出力に
応答し、所定の出力が導出されるときリセット入力端子
にCPUにリセットをかける信号を出力するリセット出
力手段と、CPUの動作用プログラムが格納され、未使
用部分に、リセット出力手段に所定の出力を導出する命
令が格納されるプログラムメモリとを含むことを特徴と
するマイクロコンピュータ装置である。
中に暴走して、プログラムメモリの未使用部分に移行す
ると、リセット出力手段に所定の出力を導出して、CP
Uの入力端子にリセットをかける信号が出力される。暴
走によって未使用部分にプログラムの実行アドレスが移
行すれば、確実にリセット状態に移ることができる。
アドレスからプログラムの実行動作を開始するCPU
と、CPUのプログラム実行動作中に、暴走が生じてい
るか否かを検出する暴走検出手段と、暴走検出手段によ
って暴走が生じていると判断されるとき、プログラムの
実行を、前記開始アドレスに移行させる暴走対策手段と
を含むことを特徴とするマイクロコンピュータ装置であ
る。
プログラムの実行中に暴走が生じていると判断されると
きには、リセット後にプログラムの実行動作を開始する
特定の開始アドレスにプログラムの実行が移行するの
で、暴走状態を解消させることができる。
としてのマイクロコンピュータ装置1の概略的なシステ
ム構成を示す。CPU2と、その動作用プログラムが格
納されているROMやワークエリアなどとして使用され
るRAMを含むプログラムメモリ3とは、システムバス
4を介して接続される。CPU2内には、プログラムカ
ウンタ(以下「PC」と略称する)5や、スタックポイ
ンタ(以下「SP」と略称する)6などが含まれる。P
C5は、プログラムメモリ3中で、CPU2が実行する
プログラムが格納されているメモリ領域のアドレスを参
照するために用いられ、通常プログラムのコードが読込
まれると次のアドレスを指定するように自動的に変更さ
れる。SP6は、プログラムメモリ3中のRAMに設定
されるスタック領域をアクセスするように、アドレス値
が設定される。サブルーチンへのジャンプが行われる
と、復帰アドレスがSP6によって示されるプログラム
メモリ3のアドレスに保存され、SP6の値は、たとえ
ば増加するように変更される。サブルーチンから復帰す
るリターン命令などを実行すると、SP6の値は、たと
えば減少するように変更され、SP6で指定されるアド
レスから復帰アドレスがPC5に読込まれ、元のプログ
ラムに復帰する。CPU2内の各種レジスタなどの値を
スタック領域に保存したり、スタック領域から読込んだ
りするためには、プッシュ(PUSH)命令やポップ
(POP)命令などが一般に備えられる。これらの命令
は、SP6の値を、現在値を基準に相対的に増減する。
マイクロコンピュータによっては、SP6の値を直接変
更する命令を備えている場合もある。
容される値を外れると、リセット動作に移行する機能が
備えられている場合を想定する。SP6の値が異常にな
り、たとえばRAMのアドレス領域を外れると、正常な
スタック動作を行うことができなくなるので、そのよう
な事態を避けるために、SP6の値を監視する機能が備
えられる場合がある。また、マイクロコンピュータによ
っては、スタック領域を外部のメモリには設けずに、C
PUの内部レジスタやメモリに設ける場合もある。この
ようなアーキテクチャのCPUでは、スタック領域の制
限は厳しく、SPの値が異常になるときの保護も一層、
必要となる。
ログラムの暴走を監視し、暴走検出時にリセット動作を
行う処理を示す。ステップa1からメインルーチンの処
理を行う。メインルーチンの最後に、ステップa10で
マイコン暴走検出処理を行う。マイコン暴走検出処理
は、たとえば特開昭62−52647の先行技術に示さ
れているように、サブルーチンのカウント動作などによ
って行うことができる。ステップa11で、マイクロコ
ンピュータが暴走していないと判断されれば、ステップ
a12で、次のモジュールのプログラム動作に移り、さ
らにステップa1のメインルーチン処理に戻る。ステッ
プa11で、マイクロコンピュータの暴走が検出される
と、ステップa13で、スタックポインタ操作命令が行
われる。このスタックポインタ操作命令は、たとえばP
USHあるいはPOP命令の一方を繰返す無限ループと
する。PUSH命令を繰返して行うと、SP6の値が順
次変化し、制限範囲を超えるとCPU2がリセットされ
る。
示す。本実施形態は、図1に示すようなシステム構成で
行われ、プログラムメモリ3には、図3(a)に示すよ
うなメインルーチンの処理プログラムが格納される。す
なわち、ステップba1からステップbamまで、メイ
ンルーチンが繰返して実行される。プログラムメモリ3
の未使用部分3xには、図3(b)に示すようなスタッ
クポインタ操作命令が格納される。すなわちステップb
b1、ステップbb2、ステップbb3、…ステップb
bnには、たとえばPUSH命令が格納される。他のス
タックポインタ操作命令、たとえばPOP命令であって
も同様である。プログラムが暴走して、図3(a)に示
すメインルーチン処理から逸脱し、図3(b)に示す未
使用部分3xに移行すると、SP6の値が増加または減
少するいずれかの方向に変化し、制限値を超えてCPU
2はリセットされる。
な電気的構成を示す。本形態のマイクロコンピュータ装
置11では、CPU12のリセット入力端子13に、出
力ポート14からの出力が接続される。リセット入力端
子13は、たとえばローレベルの入力でCPU12にリ
セットをかけることができる。通常は、リセット入力端
子13を抵抗15で直流の正電圧Vccにプルアップし
ておく。CPU12は、システムバスチを介して、プロ
グラムメモリ3に接続され、PC5のアドレス値に従っ
て命令を実行する。
示す。ステップc1からステップc12までは、図2の
ステップa1〜ステップa12とそれぞれ同等の動作で
ある。ステップc11で、マイクロコンピュータ装置1
1の暴走が検出されたときの動作であるステップc13
では、出力ポート14にローレベルを出力する命令を実
行する。この出力ポート14にローレベルの出力を実行
する命令が無限ループで繰返されるので、リセット端子
13には出力ポート14からローレベルの入力信号が連
続的に与えられ、CPU12はリセットされる。
示す。本実施形態も、図4に示すようなマイクロコンピ
ュータ装置11を使用することを前提とする。図6
(a)に示すように、メインルーチン処理であるステッ
プda1からステップdamは、図3(a)のメインル
ーチン処理、すなわちステップba1からステップba
mと同等である。図6(b)に示すプログラムメモリ3
の未使用部分3xの命令は、ステップdb1、ステップ
db2、ステップdb3、…ステップdbnともに、出
力ポート14にローレベルの出力を与える命令とする。
これによって、プログラムが暴走し、未使用部分3xを
アクセスするようになると、出力ポート14にローレベ
ルが出力され、リセット入力端子13からCPU12が
リセットされ、暴走状態を解消することができる。
示す。本実施形態では、マイクロコンピュータ装置とし
てのハードウエア構成がどのような場合であっても、基
本的に実現可能である。ステップe1からステップe1
2までは、図2のステップa1〜ステップa12までと
同等の動作を行う。ステップe11で、マイクロコンピ
ュータ装置が暴走していると判断されると、ステップe
13で、ジャンプAAA命令を実行する。ここでAAA
はCPUがリセット状態の後、実行するアドレスであ
る。CPUは、一般に電源投入時にはハードウエアによ
って自動的にリセットされ、特定のアドレス、たとえば
0番地や最終番地からプログラムの実行を開始する。本
実施形態では、プログラムの暴走が検出されると、その
先頭アドレスからプログラム実行を再開する。
ムの実行中に暴走が検出されると、スタックポインタの
値を異常にするプログラムが実行され、スタックポイン
タの値が異常となってCPUがリセット動作を行うの
で、CPUの命令セット中にリセット命令が含まれてい
なくても、暴走を検出して簡単かつ確実にリセットをか
けることができる。
実行中に、暴走を生じてプログラムメモリの未使用部分
に実行アドレスが移行すれば、スタックポインタの値を
異常にするスタックポインタ操作命令が実行され、スタ
ックポインタの値が異常になって、CPUはリセット状
態に移行するので、容易にかつ確実に暴走状態を解消さ
せることができる。
を備えるCPUであれば、暴走検出手段によってCPU
のプログラム動作中に暴走が生じていると判断されると
き、リセット出力手段からリセット入力端子にCPUを
リセットさせる信号を出力することができるので、暴走
状態を簡単かつ確実に解消させることができる。
ム動作中に暴走し、プログラムメモリの未使用部分の命
令を読込んでも、リセット出力手段を介してリセット入
力端子にリセットをかけることができるので、暴走を簡
単かつ確実に解消させることができる。
ってプログラムの実行動作中に暴走が生じていると判断
されるときには、CPUがリセット後にプログラム実行
動作を開始する特定の開始アドレスに移行するので、リ
セットと同様にプログラムの暴走を解消させることがで
きる。
電気的構成を示すブロック図である。
ャートである。
ャートである。
電気的構成を示すブロック図である。
ャートである。
ャートである。
ャートである。
Claims (5)
- 【請求項1】 スタックポインタの異常検出時にリセッ
ト状態へ移行する機能を備えるCPUと、 CPUのプログラム実行動作中に、暴走が生じているか
否かを検出する暴走検出手段と、 暴走検出手段によって暴走が生じていると判断されると
き、スタックポインタ操作命令を実行することでスタッ
クポインタを異常値とさせることで、CPUをリセット
させる暴走対策手段とを含むことを特徴とするマイクロ
コンピュータ装置。 - 【請求項2】 スタックポインタの異常検出時にリセッ
ト状態へ移行する機能を備えるCPUと、 CPUの動作用プログラムが格納され、未使用部分に、
スタックポインタを異常にするスタックポインタ操作命
令が格納されるプログラムメモリとを含むことを特徴と
するマイクロコンピュータ装置。 - 【請求項3】 リセット入力端子を備えるCPUと、 CPUのプログラム実行動作中に、暴走が生じているか
否かを検出する暴走検出手段と、 暴走検出手段によって暴走が生じていると判断されると
き、 CPUのリセット入力端子にCPUにリセットをかける
信号を出力するリセット出力手段とを含むことを特徴と
するマイクロコンピュータ装置。 - 【請求項4】 リセット入力端子を備えるCPUと、 CPUの予め定める出力端子からの出力に応答し、所定
の出力が導出されるときリセット入力端子にCPUにリ
セットをかける信号を出力するリセット出力手段と、 CPUの動作用プログラムが格納され、未使用部分に、
リセット出力手段に所定の出力を導出する命令が格納さ
れるプログラムメモリとを含むことを特徴とするマイク
ロコンピュータ装置。 - 【請求項5】 リセット後に特定の開始アドレスからプ
ログラムの実行動作を開始するCPUと、 CPUのプログラム実行動作中に、暴走が生じているか
否かを検出する暴走検出手段と、 暴走検出手段によって暴走が生じていると判断されると
き、プログラムの実行を、前記開始アドレスに移行させ
る暴走対策手段とを含むことを特徴とするマイクロコン
ピュータ装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP17236997A JP3182373B2 (ja) | 1997-06-27 | 1997-06-27 | マイクロコンピュータ装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP17236997A JP3182373B2 (ja) | 1997-06-27 | 1997-06-27 | マイクロコンピュータ装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH1124962A true JPH1124962A (ja) | 1999-01-29 |
| JP3182373B2 JP3182373B2 (ja) | 2001-07-03 |
Family
ID=15940638
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP17236997A Expired - Fee Related JP3182373B2 (ja) | 1997-06-27 | 1997-06-27 | マイクロコンピュータ装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3182373B2 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2003063278A3 (en) * | 2002-01-18 | 2004-12-09 | Intelligent Energy Ltd | Fuel cell oxygen removal and pre-conditioning system |
| WO2004045012A3 (en) * | 2002-11-12 | 2005-01-06 | Nissan Motor | Fuel cell system |
-
1997
- 1997-06-27 JP JP17236997A patent/JP3182373B2/ja not_active Expired - Fee Related
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2003063278A3 (en) * | 2002-01-18 | 2004-12-09 | Intelligent Energy Ltd | Fuel cell oxygen removal and pre-conditioning system |
| WO2004045012A3 (en) * | 2002-11-12 | 2005-01-06 | Nissan Motor | Fuel cell system |
Also Published As
| Publication number | Publication date |
|---|---|
| JP3182373B2 (ja) | 2001-07-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4775957A (en) | Microcomputer with abnormality sensing function | |
| JP3255693B2 (ja) | 自動車のマルチコンピュータシステム | |
| US4839895A (en) | Early failure detection system for multiprocessor system | |
| JPH08503802A (ja) | マイクロコンピュータ | |
| US7716524B2 (en) | Restarting an errored object of a first class | |
| JPH1124962A (ja) | マイクロコンピュータ装置 | |
| US6904543B2 (en) | Electronic control having floating-point data check function | |
| JPH04266141A (ja) | スタックオーバーフロー検出方式 | |
| JPH07281912A (ja) | スタック異常検出装置 | |
| US6185700B1 (en) | Method and device for evaluating a program | |
| JPH0325813B2 (ja) | ||
| JPH09120368A (ja) | Cpu監視装置 | |
| JPS6118045A (ja) | プログラムの暴走検出方式 | |
| JPS6136665B2 (ja) | ||
| JP2870202B2 (ja) | プロセッサ間相互監視方法及びその装置 | |
| US20040153768A1 (en) | Method and device for storing a computer program in a program memory of a control unit | |
| JPS6211745B2 (ja) | ||
| JPH03252735A (ja) | プログラムの暴走検出方法 | |
| JPH06103467B2 (ja) | 自動車用コンピュータの誤動作防止方法 | |
| JPH01310422A (ja) | マイクロコンピュータのリセット回路 | |
| JP3183982B2 (ja) | ディジタル制御装置 | |
| JP3169879B2 (ja) | マイクロプロセッサ暴走検出方式 | |
| JPH08123704A (ja) | 制御装置 | |
| JPH0764822A (ja) | マイクロコンピュータ | |
| JPS63109545A (ja) | ハ−ドウエアの自己診断方式 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20010410 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080420 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090420 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090420 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100420 Year of fee payment: 9 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110420 Year of fee payment: 10 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110420 Year of fee payment: 10 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120420 Year of fee payment: 11 |
|
| LAPS | Cancellation because of no payment of annual fees |