JPH06295254A - Cpuの暴走検出装置 - Google Patents

Cpuの暴走検出装置

Info

Publication number
JPH06295254A
JPH06295254A JP5082886A JP8288693A JPH06295254A JP H06295254 A JPH06295254 A JP H06295254A JP 5082886 A JP5082886 A JP 5082886A JP 8288693 A JP8288693 A JP 8288693A JP H06295254 A JPH06295254 A JP H06295254A
Authority
JP
Japan
Prior art keywords
stack address
output
stack
cpu
signal
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
Application number
JP5082886A
Other languages
English (en)
Inventor
Koichi Hasegawa
浩一 長谷川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Casio Electronics Manufacturing Co Ltd
Original Assignee
Casio Computer Co Ltd
Casio Electronics Manufacturing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd, Casio Electronics Manufacturing Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP5082886A priority Critical patent/JPH06295254A/ja
Publication of JPH06295254A publication Critical patent/JPH06295254A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】CPUの暴走をウオッチドッグタイマによる検
出より早期に検出する暴走検出装置を提供する。 【構成】処理開始の初期にCPUからスタックアドレス
の最小値Bとバーiw1(“0”)が出力され最小値B
がラッチ3aに記憶され、さらにスタックアドレスの最
大値B′とバーiw2(“0”)が出力され最大値B′
がラッチ3a′に記憶される。コンパレータ3bはバー
EN端子にスタック指示信号バーSTACK−EN
(“0”)が入力すると、2つの入力端子に入力してい
るスタックアドレスAと最小値Bを比較し、A<Bなら
“1”を、A≧Bなら“0”を出力する。一方、コンパ
レータ3b′はスタックアドレスAと最大値B′を比較
し、A>Bなら“1”を、A≦Bなら“0”を出力す
る。オア回路3dは、入力される上記信号が両方とも
“0”のときのみ“0”を出力し、入力のいずれか一方
が“1”のときは“1”を出力してフリップフロップ3
dをセットし、フリップフロップ3dは信号“1”を暴
走検出信号として外部回路に出力し続ける。

Description

【発明の詳細な説明】
【0001】
【産業上の技術分野】本発明は、CPUの暴走検出装置
に係わり、さらに詳しくはCPUの暴走をウオッチドッ
グタイマによる検出より早期に検出するCPUの暴走検
出装置に関する。
【0002】
【従来の技術】従来、制御装置において、CPU(中央
演算処理装置)が、処理するデータをメモリに読み書き
する際、その読み書きするデータが誤っているために誤
動作する場合がある。また、CPUが、フェッチ(プロ
グラムの読み出し)する際、プログラム領域とは異なる
領域を誤ってアクセスすることがある。そうすると、プ
ログラムと関係ないコードを読み出し、そのコードを命
令コードであるとして実行し暴走する。
【0003】上記誤動作の場合は、処理プログラムの中
で同一処理が永久に繰り返される場合が多く、このよう
な場合は、強制停止後に処理プログラムをステップ毎に
順次チェックして原因を探索することが可能であり、原
因が判明すれば、例えば誤動作を起こした処理プログラ
ムを逆に走らせる等して、誤動作によって破壊されたデ
ータファイルを復元することも可能である。
【0004】しかし、命令コードの読み出しを誤って暴
走した場合は、処理プログラムのメインルーチンとサブ
ルーチンとの相互関係も失われることが多く、処理プロ
グラムとは無関係に処理が行われるため、原因の究明が
困難であるばかりでなく、破壊されたデータファイル等
の復元も容易ではない。
【0005】このような暴走を、従来は、図2に示すよ
うに、ウォッチドッグタイマを用いて検出していた。こ
のウォッチドッグタイマ1は、システムクロックに基づ
いてカウントアップされ、処理プログラムに基づくCP
U2の制御によって定周期でリセットされる。したがっ
て、CPU2が処理プログラムを実行している間はリセ
ットによってウォッチドッグタイマ1のカウンタ値はオ
ーバーフローしないようになっている。そして、上述し
たアクセス異常が発生してCPU2が暴走すれば、処理
プログラムを正常に実行できなくなり、そのプログラム
に基づいて行っている定周期のリセットも行えなくな
る。このためシステムクロックによるウォッチドッグタ
イマ1のカウントアップが続行され、ウォッチドッグタ
イマ1はオーバーフローを起こしてキャリー信号を出力
する。このキャリー信号が所定回路に入力されCPU2
の暴走が検出され、所定の事後処置がなされていた。
【0006】
【発明が解決しようとする課題】しかしながら、上記ウ
ォッチドッグタイマによる暴走検出は、ウォッチドッグ
タイマのオーバーフローまでに時間がかかり、このオー
バーフローまでの時間内に進行した暴走によって重要な
データが破壊され、さらには処理プログラムとは無関係
な誤動作によって予想外の重大事故を誘発する危険率が
極めて高いという問題点があった。
【0007】本発明は、上記従来の問題点に鑑み、ウォ
ッチドッグタイマによる検出よりも早期にCPUの暴走
を検出するCPUの暴走検出装置を提供することを目的
とする。
【0008】
【課題を解決するための手段】本発明の手段は次の通り
である。タイミング手段は、プログラム実行中において
スタックポインタの値を逐次更新する中央処理装置によ
りスタックアドレスの出力される時期を示す信号を出力
する。同手段は、例えば、スタックイネーブル信号出力
線等からなる。
【0009】記憶手段は、上記スタックアドレスの予め
定められた最大値及び最小値を記憶する。同手段は、例
えば、2個のラッチ等からなる。比較手段は、中央処理
装置によりスタックアドレスの出力される時期を示す信
号がタイミング手段により出力されたとき、中央処理装
置により出力されるスタックアドレスと記憶手段により
記憶されているスタックアドレスの最大値及び最小値と
を比較する。同手段は、例えば、2個のコンパレータ等
からなる。
【0010】暴走検知手段は、比較手段により比較され
る上記中央処理装置により出力されたスタックアドレス
が記憶手段により記憶されているスタックアドレスの最
大値及び最小値の範囲にないとき上記中央処理装置が暴
走したことを示す信号を出力する。同手段は、例えば、
オア回路、フリップフロップ等からなる。
【0011】
【作用】本発明の手段の作用は次の通りである。プログ
ラム実行中において、中央処理装置によりスタックアド
レスの出力される時期を示す信号がタイミング手段によ
り出力されると、この出力された信号のタイミングに基
づいて、比較手段により、中央処理装置により出力され
るスタックアドレスと記憶手段により記憶されているス
タックアドレスの最大値及び最小値とが比較される。こ
の比較の結果、中央処理装置により出力されたスタック
アドレスが記憶手段により記憶されているスタックアド
レスの最大値及び最小値の範囲にないとき、暴走検知手
段は、中央処理装置が暴走したことを示す信号を出力す
る。
【0012】
【実施例】以下、本発明の実施例について図面を参照し
ながら詳述する。本発明のアルゴリズムは、CPUの暴
走時には処理プログラムのメインルーチンとサブルーチ
ンとの相互関係が失われ、これによって、スタックポイ
ンタによるスタックアドレスの指定も正常ではなくなる
ことに着目している。
【0013】即ち、正常時においてスタックポインタに
より指定されるスタックアドレス値の最大値及び最小値
を予めプログラマブルに記憶しておき、処理プログラム
実行時において、スタックポインタによるスタックアド
レス指定が、予め記憶した最大値を越えたとき又は最小
値を下回るとき、CPUが暴走したと判断する。
【0014】図1は、上記アルゴリズムを実現する一実
施例の暴走検出回路の構成ブロック図である。同図にお
いて、暴走検出回路3は、2個のラッチ3a、3a′、
2個のコンパレータ3b、3b′、並びに夫々1個のオ
ア回路3c及びフリップフロップ3dから構成される。
【0015】上記ラッチ3a及び3a′のデータ入力端
子は、それぞれ不図示のCPUに接続しているデータバ
ス31に接続し、ラッチ指示信号入力端子が同じくCP
Uの制御信号線32、32′に接続している。ラッチ3
aの出力はコンパレータ3bの一方の入力端子に入力さ
れ、ラッチ3a′の出力はコンパレータ3b′の一方の
入力端子に入力される。
【0016】コンパレータ3b及び3b′の他方の入力
端子は、それぞれCPUのアドレスバス33に接続して
おり共にCPUからスタックアドレスを入力される。ま
た、コンパレータ3b及び3b′のタイミング信号入力
端子バーENは、CPUのスタック指示信号線34に接
続しており、共にCPUからスタック指示信号バーST
ACK−ENを入力される。コンパレータ3b及び3
b′の出力は、オア回路3cの2つの入力端子にそれぞ
れ入力される。
【0017】オア回路3cは、コンパレータ3b及び3
b′から入力される信号のいずれか一方又は両方が
“1”のとき、イネーブル信号“1”をフリップフロッ
プ3dのセット端子に出力し、コンパレータ3b及び3
b′から入力される信号がいずれも“0”のとき非イネ
ーブル信号“0”をフリップフロップ3dのセット端子
に出力する。
【0018】フリップフロップ3dは、R−Sフリップ
フロップであり、リセット端子がCPUとリセット信号
線35で接続しており、イネーブル(“0”)なリセッ
ト信号バーResetを入力されるとリセットされて出
力“0”となり、オア回路3cからイネーブル
(“1”)信号をセット端子に入力されると信号“1”
を出力し続ける。
【0019】上記構成の一実施例の暴走検出回路の動作
を、再び図1を用いて説明する。同図において、処理プ
ログラム実行時において、先ず、不図示のCPUから予
め定めたスタックアドレスの最小値Bを出力すると共に
信号線32に信号バーiw1をイネーブルにして出力す
る。これにより、予め定めたスタックアドレスの最小値
Bをラッチ3aに記憶させることができる。同様に、今
度はデータバス31にスタックアドレスの最大値B′を
出力すると共に信号線32′に信号バーiw2をイネー
ブルにして出力する。これにより、予め定めたスタック
アドレスの最大値B′をラッチ3a′に記憶させること
ができる。
【0020】このように、予め定めたスタックアドレス
の最小値B及び最大値B′を、処理開始の初期に、ラッ
チ3a及び3a′にそれぞれプログラマブルに設定す
る。これに続いて上記ラッチ3aは、記憶したスタック
アドレスの最小値Bをコンパレータ3bの一方の入力端
子に出力し、一方、ラッチ3a′は、記憶したスタック
アドレスの最大値B′をコンパレータ3b′の一方の入
力端子に出力する。
【0021】上記コンパレータ3bは、タイミング信号
入力端子バーENに入力されるスタック指示信号バーS
TACK−ENがイネーブル(“0”)になると、その
とき2つの入力端子に入力されるているスタックアドレ
スAとスタックアドレス最小値Bを比較して、その比較
結果を示す信号をオア回路3cの一方の入力端子に出力
する。
【0022】このとき、比較結果がA<B、即ちCPU
が出力しているスタックアドレスAがラッチ3aに記憶
されているスタックアドレス最小値Bより小さいときは
結果信号“1”を出力し、A≧Bであれば結果信号
“0”を出力する。
【0023】同様に、コンパレータ3b′も、タイミン
グ信号入力端子バーENに入力されるスタック指示信号
バーSTACK−ENがイネーブル(“0”)になった
とき、2つの入力端子に入力されるスタックアドレスA
とスタックアドレス最大値B′を比較して、比較結果が
A>B、即ちCPUが出力しているスタックアドレスA
がラッチ3a′に記憶されているスタックアドレス最大
値B′より大きいときは結果信号“1”をオア回路3c
の他方の端子に出力し、A≦Bであれば結果信号“0”
を出力する。
【0024】オア回路3dは、2つの入力端子に入力さ
れる結果信号が両方とも“0”のとき、即ちCPUが出
力しているスタックアドレスAが予めラッチ3a及び3
a′に記憶されたスタックアドレス最小値B及び最大値
B′により設定されている正常なスタックアドレスの範
囲内であれば、非イネーブル信号“0”をフリップフロ
ップ3dに出力し、したがって、何事も変化しない。
【0025】一方、オア回路3dの2つの入力端子に入
力される結果信号のいずれか一方が“1”のとき、即ち
CPUが出力しているスタックアドレスAがラッチ3a
に記憶されているスタックアドレス最小値Bより小さい
か又はラッチ3a′に記憶されているスタックアドレス
最大値B′より大きい、つまり予め設定されている正常
なスタックアドレスの範囲を越えている場合は、オア回
路3dはイネーブル信号“1”を出力し、フリップフロ
ップ3dがセットされて、フリップフロップ3dから信
号“1”が外部回路に出力される。この信号“1”は暴
走検出信号として外部回路に検知される。
【0026】
【発明の効果】以上詳細に説明したように、本発明によ
れば、ウォッチドッグタイマによる検出よりも早期にC
PUの暴走を検出することができるので、重要なデータ
の破壊を防止でき、さらには処理プログラムとは無関係
な誤動作による予想外の重大事故の誘発を予防すること
が可能となる。
【図面の簡単な説明】
【図1】一実施例の暴走検出回路の構成ブロック図であ
る。
【図2】従来の暴走を検出するウォッチドッグタイマを
説明する図である。
【符号の説明】
1 ウォッチドッグタイマ 2 CPU 3 暴走検出回路 3a、3a′ ラッチ 3b、3b′ コンパレータ 3c オア回路 3d フリップフロップ 31 CPUのデータバス 32、32′ ラッチ指示信号線 33 CPUのアドレスバス 34 コンパレータのタイミング信号線 35 フリップフロップのリセット線

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 プログラム実行中においてスタックポイ
    ンタの値を逐次更新する中央処理装置によりスタックア
    ドレスの出力される時期を示す信号を出力するタイミン
    グ手段と、 前記スタックアドレスの予め定められた最大値及び最小
    値を記憶する記憶手段と、 前記中央処理装置によりスタックアドレスの出力される
    時期を示す信号が前記タイミング手段により出力された
    とき、前記中央処理装置により出力されるスタックアド
    レスと前記記憶手段により記憶されているスタックアド
    レスの最大値及び最小値とを比較する比較手段と、 該比較手段により比較される前記中央処理装置により出
    力されたスタックアドレスが前記記憶手段により記憶さ
    れているスタックアドレスの最大値及び最小値の範囲に
    ないとき前記中央処理装置が暴走したことを示す信号を
    出力する暴走検知手段と、 を有することを特徴とするCPUの暴走検出装置。
JP5082886A 1993-04-09 1993-04-09 Cpuの暴走検出装置 Pending JPH06295254A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5082886A JPH06295254A (ja) 1993-04-09 1993-04-09 Cpuの暴走検出装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5082886A JPH06295254A (ja) 1993-04-09 1993-04-09 Cpuの暴走検出装置

Publications (1)

Publication Number Publication Date
JPH06295254A true JPH06295254A (ja) 1994-10-21

Family

ID=13786761

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5082886A Pending JPH06295254A (ja) 1993-04-09 1993-04-09 Cpuの暴走検出装置

Country Status (1)

Country Link
JP (1) JPH06295254A (ja)

Similar Documents

Publication Publication Date Title
JP3684590B2 (ja) リセット制御装置及びリセット制御方法
JPS59114652A (ja) ウォッチドッグ・タイマ回路
US3618042A (en) Error detection and instruction reexecution device in a data-processing apparatus
US5327362A (en) System for detecting a runaway of a microcomputer
JPH06324914A (ja) コンピュータの暴走検出方法
CN113177063B (zh) 一种pci总线设备的热复位方法及相关装置
JPH06295254A (ja) Cpuの暴走検出装置
KR100525537B1 (ko) 인터럽트를 이용한 응용 프로그램의 에러검출장치 및 방법.
US5218606A (en) Current-spare switching control system
JP2870202B2 (ja) プロセッサ間相互監視方法及びその装置
JP3152014B2 (ja) タイマ回路
JP3081234B2 (ja) Cpuボードのチェック方法
JPS6362776B2 (ja)
JP3110222B2 (ja) マイクロコンピュータ
JPS63155330A (ja) マイクロプログラム制御装置
JPS6324331A (ja) コンピユ−タの暴走検知装置
JP3172981B2 (ja) 未使用メモリ空間アクセスエラー検出回路
JPS59123054A (ja) イニシアル検出方式
JPS63126039A (ja) マイクロコンピユ−タ
JPH04270441A (ja) データ処理装置
JPH0764823A (ja) ウォッチドックタイマ回路
JPS5827246A (ja) 論理装置
JPS63150732A (ja) プログラム走行監視装置
JPH0432935A (ja) マイクロプロセッサ監視回路
JPH10333920A (ja) 割込み処理回路

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20011002