JPH05346876A - Cpu制御装置 - Google Patents
Cpu制御装置Info
- Publication number
- JPH05346876A JPH05346876A JP4156429A JP15642992A JPH05346876A JP H05346876 A JPH05346876 A JP H05346876A JP 4156429 A JP4156429 A JP 4156429A JP 15642992 A JP15642992 A JP 15642992A JP H05346876 A JPH05346876 A JP H05346876A
- Authority
- JP
- Japan
- Prior art keywords
- runaway
- cpu
- address
- signal
- program
- 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
Landscapes
- Debugging And Monitoring (AREA)
- Storage Device Security (AREA)
Abstract
(57)【要約】
【目的】 CPUの暴走をRAM上のデ−タが消される
前に検出して停止させる。 【構成】 CPUのマシンサイクルのステ−ト信号によ
って、命令コ−ドのフェッチが行なわれているか否かを
認識し、プログラムコ−ドが存在するメモリアドレス以
外の値がアドレスバスに現われたか否かをデコ−ダ10
で検出し、プログラムコ−ドが存在しないアドレスに対
して命令コ−ドのフェッチが行なわれた時に、暴走を検
出する。暴走を検出すると、RAMの書込みを禁止し、
割り込み要求信号をCPUに出力し、暴走を停止させ
る。
前に検出して停止させる。 【構成】 CPUのマシンサイクルのステ−ト信号によ
って、命令コ−ドのフェッチが行なわれているか否かを
認識し、プログラムコ−ドが存在するメモリアドレス以
外の値がアドレスバスに現われたか否かをデコ−ダ10
で検出し、プログラムコ−ドが存在しないアドレスに対
して命令コ−ドのフェッチが行なわれた時に、暴走を検
出する。暴走を検出すると、RAMの書込みを禁止し、
割り込み要求信号をCPUに出力し、暴走を停止させ
る。
Description
【0001】
【産業上の利用分野】本発明は、マイクロコンピュ−タ
などのCPU(中央処理装置)を用いた制御装置に関す
る。
などのCPU(中央処理装置)を用いた制御装置に関す
る。
【0002】
【従来の技術】一般にCPUは、メモリ上に予め配置さ
れたプログラムのコ−ド及びデ−タの内容を順次に読み
取り、そのプログラムの各々のコ−ドに割り当てられた
命令の通りに順次に処理を実行する。従ってプログラム
の各コ−ドの読取り時に1ビットでも誤りが発生する
と、その命令コ−ドを別の命令として誤認識し、誤った
命令を実行するので、それ以後のCPUの動作は全く予
期しないものになる。これが暴走と呼ばれるものであ
る。この種の暴走は、例えば静電気等の電気ノイズがC
PUの近傍で放射された場合に、CPUのデ−タバス上
などで信号が変形することによって発生しうる。暴走が
発生すると、例えばRAM(読み書きメモリ)上などに
存在するそれまでの処理で蓄積された重要なデ−タが破
壊される危険がある。
れたプログラムのコ−ド及びデ−タの内容を順次に読み
取り、そのプログラムの各々のコ−ドに割り当てられた
命令の通りに順次に処理を実行する。従ってプログラム
の各コ−ドの読取り時に1ビットでも誤りが発生する
と、その命令コ−ドを別の命令として誤認識し、誤った
命令を実行するので、それ以後のCPUの動作は全く予
期しないものになる。これが暴走と呼ばれるものであ
る。この種の暴走は、例えば静電気等の電気ノイズがC
PUの近傍で放射された場合に、CPUのデ−タバス上
などで信号が変形することによって発生しうる。暴走が
発生すると、例えばRAM(読み書きメモリ)上などに
存在するそれまでの処理で蓄積された重要なデ−タが破
壊される危険がある。
【0003】そこで従来より、プログラムの実行中に、
CPUに予め命令が割り当てられているコ−ド以外の不
正コ−ド(未定義コ−ド)を命令コ−ドとして取り込ん
だ場合には、CPU自身が暴走の発生を検出し、暴走発
生時の動作正常化のために予め用意された再スタ−トプ
ログラムにジャンプして、それを実行するように構成さ
れている。
CPUに予め命令が割り当てられているコ−ド以外の不
正コ−ド(未定義コ−ド)を命令コ−ドとして取り込ん
だ場合には、CPU自身が暴走の発生を検出し、暴走発
生時の動作正常化のために予め用意された再スタ−トプ
ログラムにジャンプして、それを実行するように構成さ
れている。
【0004】
【発明が解決しようとする課題】しかしながら従来の方
法では、特定の不正コ−ドを命令コ−ドとして取り込ま
ない限り、暴走の発生を検出できないので、暴走の検出
が遅すぎる場合が多く、暴走が検出されるまでに様々な
異常処理が実行され、メモリ上デ−タの破壊を防止でき
ない。例えば、コ−ル命令によってサブル−チンプログ
ラムを実行した後でメインル−チンに戻る時に、戻り先
のアドレスの値を読む際にデ−タ読取エラ−が発生する
と、誤ったアドレスに戻ってプログラムの実行を続け
る。つまり、実際にはプログラムの存在しない領域をプ
ログラム領域として認識し、その領域のデ−タをプログ
ラムとして順次に読取ることになる。しかし、この種の
領域のデ−タは、どれも似たような特定の値である場合
が多く、特定の不正コ−ドが現われて暴走が検出される
までの間には、プログラムの読込み及び実行が何回とな
く繰り返されてしまう。
法では、特定の不正コ−ドを命令コ−ドとして取り込ま
ない限り、暴走の発生を検出できないので、暴走の検出
が遅すぎる場合が多く、暴走が検出されるまでに様々な
異常処理が実行され、メモリ上デ−タの破壊を防止でき
ない。例えば、コ−ル命令によってサブル−チンプログ
ラムを実行した後でメインル−チンに戻る時に、戻り先
のアドレスの値を読む際にデ−タ読取エラ−が発生する
と、誤ったアドレスに戻ってプログラムの実行を続け
る。つまり、実際にはプログラムの存在しない領域をプ
ログラム領域として認識し、その領域のデ−タをプログ
ラムとして順次に読取ることになる。しかし、この種の
領域のデ−タは、どれも似たような特定の値である場合
が多く、特定の不正コ−ドが現われて暴走が検出される
までの間には、プログラムの読込み及び実行が何回とな
く繰り返されてしまう。
【0005】そこで本発明は、CPUに暴走が発生した
場合、その暴走をすばやく検出することによって、デ−
タの破壊を最小限にくい止めることを課題とする。
場合、その暴走をすばやく検出することによって、デ−
タの破壊を最小限にくい止めることを課題とする。
【0006】
【課題を解決するための手段】上記課題を解決するため
に、本発明のCPU制御装置は、メモリアドレスのう
ち、所定の動作プログラムが存在する領域を除く特定の
領域をCPUが指定したことを検出する、アドレス検出
手段(10);CPU上の所定のマシンサイクルにおい
て、所定のコ−ドを命令コ−ドとして取込んだことを検
出する命令フェッチ検出手段(20);及び前記アドレ
ス検出手段が特定のアドレス値を検出し、それと実質上
同時に、前記命令フェッチ検出手段が所定のコ−ドの取
込みを検出すると、CPUの暴走発生を示す信号を出力
する暴走検出手段(30);を備える。
に、本発明のCPU制御装置は、メモリアドレスのう
ち、所定の動作プログラムが存在する領域を除く特定の
領域をCPUが指定したことを検出する、アドレス検出
手段(10);CPU上の所定のマシンサイクルにおい
て、所定のコ−ドを命令コ−ドとして取込んだことを検
出する命令フェッチ検出手段(20);及び前記アドレ
ス検出手段が特定のアドレス値を検出し、それと実質上
同時に、前記命令フェッチ検出手段が所定のコ−ドの取
込みを検出すると、CPUの暴走発生を示す信号を出力
する暴走検出手段(30);を備える。
【0007】また第2番の発明のCPU制御装置は、更
に、前記暴走検出手段が暴走の発生を検出した時に、メ
モリに対する書込みストロ−ブ信号の出力を禁止する書
込み禁止手段(40)を含む。
に、前記暴走検出手段が暴走の発生を検出した時に、メ
モリに対する書込みストロ−ブ信号の出力を禁止する書
込み禁止手段(40)を含む。
【0008】また第3番の発明のCPU制御装置は、更
に、前記暴走検出手段が暴走の発生を検出した時に、C
PUに対して割り込み要求信号を出力する割り込み発生
手段(50)を含む。
に、前記暴走検出手段が暴走の発生を検出した時に、C
PUに対して割り込み要求信号を出力する割り込み発生
手段(50)を含む。
【0009】なお上記括弧内に示した記号は、後述する
実施例中の対応する要素の符号を参考までに示したもの
であるが、本発明の各構成要素は実施例中の具体的な要
素のみに限定されるものではない。
実施例中の対応する要素の符号を参考までに示したもの
であるが、本発明の各構成要素は実施例中の具体的な要
素のみに限定されるものではない。
【0010】
【作用】一般に、CPUが各々の命令を実行する期間
(マシンサイクル)は、CPUの内部では複数の処理ス
テップに区分されている。例えば、ある種のCPUで
は、マシンサイクルが5つのステ−トに区分されてお
り、クロックパルスに同期して、ステ−ト1−ステ−ト
2−ステ−ト3−ステ−ト4−ステ−ト5−ステ−ト1
−ステ−ト2・・・と処理を進める。そして、ステ−ト
1ではCPUの内部に存在するプログラムカウンタが示
すメモリアドレスの値をアドレスバスに出力してそのア
ドレスの内容、即ち1つのプログラムコ−ドの読込み
(命令フェッチ)を行なってその命令コ−ドを解読し、
ステ−ト2ではプログラムカウンタの内容をインクリメ
ント(次のアドレスに進める)し、ステ−ト3では例え
ば命令で定まるアドレスの値をアドレスバスに出力し、
ステ−ト4では所定の内部処理を実行し、ステ−ト5で
は例えばプログラムで定まるデ−タをデ−タバスに出力
する。CPUは、メモリ上のプログラムコ−ドが配置さ
れた領域と様々なデ−タが配置された領域を必要に応じ
てアクセスするが、CPUが暴走していない限り、前者
の領域の値がアドレスバスに現われている時に、命令フ
ェッチを実行する。しかし暴走が生じると、後者の領域
の値がアドレスバスに現われている時に、命令フェッチ
が生じうる。
(マシンサイクル)は、CPUの内部では複数の処理ス
テップに区分されている。例えば、ある種のCPUで
は、マシンサイクルが5つのステ−トに区分されてお
り、クロックパルスに同期して、ステ−ト1−ステ−ト
2−ステ−ト3−ステ−ト4−ステ−ト5−ステ−ト1
−ステ−ト2・・・と処理を進める。そして、ステ−ト
1ではCPUの内部に存在するプログラムカウンタが示
すメモリアドレスの値をアドレスバスに出力してそのア
ドレスの内容、即ち1つのプログラムコ−ドの読込み
(命令フェッチ)を行なってその命令コ−ドを解読し、
ステ−ト2ではプログラムカウンタの内容をインクリメ
ント(次のアドレスに進める)し、ステ−ト3では例え
ば命令で定まるアドレスの値をアドレスバスに出力し、
ステ−ト4では所定の内部処理を実行し、ステ−ト5で
は例えばプログラムで定まるデ−タをデ−タバスに出力
する。CPUは、メモリ上のプログラムコ−ドが配置さ
れた領域と様々なデ−タが配置された領域を必要に応じ
てアクセスするが、CPUが暴走していない限り、前者
の領域の値がアドレスバスに現われている時に、命令フ
ェッチを実行する。しかし暴走が生じると、後者の領域
の値がアドレスバスに現われている時に、命令フェッチ
が生じうる。
【0011】従って例えば、CPUの命令フェッチが常
にステ−ト1のみで実行され、しかもステ−ト1ではデ
−タの入出力は実行されない、と仮定すれば、CPUの
マシンサイクルがステ−ト1の時に、プログラムコ−ド
が存在しないデ−タ領域の値がアドレスバスに出力され
れば、CPUが暴走していると判定しうる。勿論、この
判定条件はCPUの種類に応じて適宜変更する必要があ
るが、命令フェッチが行なわれるタイミングで、アドレ
スバスに出力された値がプログラム領域か否かを識別す
れば、CPUの暴走の有無を判定しうる。
にステ−ト1のみで実行され、しかもステ−ト1ではデ
−タの入出力は実行されない、と仮定すれば、CPUの
マシンサイクルがステ−ト1の時に、プログラムコ−ド
が存在しないデ−タ領域の値がアドレスバスに出力され
れば、CPUが暴走していると判定しうる。勿論、この
判定条件はCPUの種類に応じて適宜変更する必要があ
るが、命令フェッチが行なわれるタイミングで、アドレ
スバスに出力された値がプログラム領域か否かを識別す
れば、CPUの暴走の有無を判定しうる。
【0012】本発明では、CPUの指定アドレスを検出
するアドレス検出手段と命令フェッチ検出手段との両者
が出力する信号の組合せを、暴走検出手段が判定し、そ
れによって暴走を検出すると所定の信号を出力する。例
えば、コ−ル命令によってサブル−チンプログラムを実
行した後でメインル−チンに戻る時に、戻り先のアドレ
スの値を読む際にデ−タ読取エラ−が発生すると、実際
にはプログラムの存在しない領域をプログラム領域とし
て誤認識し、その領域のデ−タをプログラムとして読取
り実行するが、このような場合には、メインル−チンに
戻った後の1番目のコ−ドを読取った時に、そのコ−ド
の値が不正コ−ドか否かに関わらず、命令フェッチ時の
アドレス値がプログラム領域外であるので直ちに暴走が
検出される。
するアドレス検出手段と命令フェッチ検出手段との両者
が出力する信号の組合せを、暴走検出手段が判定し、そ
れによって暴走を検出すると所定の信号を出力する。例
えば、コ−ル命令によってサブル−チンプログラムを実
行した後でメインル−チンに戻る時に、戻り先のアドレ
スの値を読む際にデ−タ読取エラ−が発生すると、実際
にはプログラムの存在しない領域をプログラム領域とし
て誤認識し、その領域のデ−タをプログラムとして読取
り実行するが、このような場合には、メインル−チンに
戻った後の1番目のコ−ドを読取った時に、そのコ−ド
の値が不正コ−ドか否かに関わらず、命令フェッチ時の
アドレス値がプログラム領域外であるので直ちに暴走が
検出される。
【0013】また第2番の発明では、暴走発生を検出し
た時に、メモリに対する書込み動作が禁止される。従っ
て、暴走が検出された後は、RAMの内容が変更される
心配がない。
た時に、メモリに対する書込み動作が禁止される。従っ
て、暴走が検出された後は、RAMの内容が変更される
心配がない。
【0014】また第3番の発明では、暴走発生を検出し
た時に、割り込み要求信号がCPUに対して出力され
る。従ってこれによれば、暴走が検出されると、CPU
は割り込みによって直ちに所定の初期化プログラムにジ
ャンプして、暴走を停止することができる。
た時に、割り込み要求信号がCPUに対して出力され
る。従ってこれによれば、暴走が検出されると、CPU
は割り込みによって直ちに所定の初期化プログラムにジ
ャンプして、暴走を停止することができる。
【0015】
【実施例】本発明を実施する一形式のマイクロコンピュ
−タの主要部分の構成を図1に示す。図1に示すマイク
ロコンピュ−タは、マイクロプロセッサCPUと、それ
のアドレスバス及びデ−タバスに接続された各種周辺ユ
ニットで構成されている。周辺ユニットとしては、プロ
グラムコ−ドを予め格納したROM(読出し専用メモ
リ)90,各種処理によって得られたデ−タ等を蓄積す
るためのRAM(読み書きメモリ)80,信号の入出力
を実施するためのI/Oユニット70,及び割り込みコ
ントロ−ラ50が含まれている。
−タの主要部分の構成を図1に示す。図1に示すマイク
ロコンピュ−タは、マイクロプロセッサCPUと、それ
のアドレスバス及びデ−タバスに接続された各種周辺ユ
ニットで構成されている。周辺ユニットとしては、プロ
グラムコ−ドを予め格納したROM(読出し専用メモ
リ)90,各種処理によって得られたデ−タ等を蓄積す
るためのRAM(読み書きメモリ)80,信号の入出力
を実施するためのI/Oユニット70,及び割り込みコ
ントロ−ラ50が含まれている。
【0016】アドレスデコ−ダ10は、CPUがそのア
ドレスバスに出力するアドレス値が特定の範囲の値であ
る時に、所定の出力信号ラインをアクティブレベルにセ
ットする。即ち、CPUのアドレス空間は複数の領域に
区分してあり、それらの領域の各々をI/Oユニット7
0,RAM80,ROM90等にそれぞれ割り当ててあ
るので、それぞれが割り当てられたアドレス範囲の値が
現われた時にのみ、そこに割り当てられたユニットを選
択するように様々なチップセレクト信号を生成する。
ドレスバスに出力するアドレス値が特定の範囲の値であ
る時に、所定の出力信号ラインをアクティブレベルにセ
ットする。即ち、CPUのアドレス空間は複数の領域に
区分してあり、それらの領域の各々をI/Oユニット7
0,RAM80,ROM90等にそれぞれ割り当ててあ
るので、それぞれが割り当てられたアドレス範囲の値が
現われた時にのみ、そこに割り当てられたユニットを選
択するように様々なチップセレクト信号を生成する。
【0017】マイクロプロセッサCPUが動作するため
のクロックパルスCLKは、外部から供給される。マイ
クロプロセッサCPUは、このクロックパルスCLKを
内部に設けられたカウンタ20によって分周し、内部で
使用する。また、分周されたクロックパルスは、CPU
の出力端子CK1から出力される。この例では、カウン
タ20は入力されるクロックパルスを1/5に分周す
る。分周された後のパルスの1周期、即ち入力クロック
パルスCLKの5周期が1つのマシンサイクルになり、
その期間毎に1つの命令が実施される。1マシンサイク
ルの間のクロックパルスCLKの各周期を、それぞれス
テ−ト1(S1),ステ−ト2(S2),ステ−ト3
(S3),ステ−ト4(S4)及びステ−ト5(S5)
と呼ぶ。
のクロックパルスCLKは、外部から供給される。マイ
クロプロセッサCPUは、このクロックパルスCLKを
内部に設けられたカウンタ20によって分周し、内部で
使用する。また、分周されたクロックパルスは、CPU
の出力端子CK1から出力される。この例では、カウン
タ20は入力されるクロックパルスを1/5に分周す
る。分周された後のパルスの1周期、即ち入力クロック
パルスCLKの5周期が1つのマシンサイクルになり、
その期間毎に1つの命令が実施される。1マシンサイク
ルの間のクロックパルスCLKの各周期を、それぞれス
テ−ト1(S1),ステ−ト2(S2),ステ−ト3
(S3),ステ−ト4(S4)及びステ−ト5(S5)
と呼ぶ。
【0018】ステ−ト1ではCPUの内部に存在するプ
ログラムカウンタが示すメモリアドレスの値をアドレス
バスに出力してそのアドレスの内容、即ち1つのプログ
ラムコ−ドの読込み(命令フェッチ)を行なってその命
令コ−ドを解読し、ステ−ト2ではプログラムカウンタ
の内容をインクリメント(次のアドレスに進める)し、
ステ−ト3では例えば命令で定まるアドレスの値をアド
レスバスに出力し、ステ−ト4では所定の内部処理を実
行し、ステ−ト5では例えばプログラムで定まるデ−タ
をデ−タバスに出力する。
ログラムカウンタが示すメモリアドレスの値をアドレス
バスに出力してそのアドレスの内容、即ち1つのプログ
ラムコ−ドの読込み(命令フェッチ)を行なってその命
令コ−ドを解読し、ステ−ト2ではプログラムカウンタ
の内容をインクリメント(次のアドレスに進める)し、
ステ−ト3では例えば命令で定まるアドレスの値をアド
レスバスに出力し、ステ−ト4では所定の内部処理を実
行し、ステ−ト5では例えばプログラムで定まるデ−タ
をデ−タバスに出力する。
【0019】従って、カウンタ20が出力するステ−ト
信号SSの状態を参照することによって、CPUがマシ
ンサイクル中のどの状態にあるのかを知ることができ
る。この例では、CPUから出力されるステ−ト信号S
Sは、デコ−ダ30に入力される。またデコ−ダ30の
他の入力端子には、アドレスデコ−ダ10が出力するア
ドレス領域信号A0が印加される。この例では、アドレ
ス領域信号A0は、プログラムコ−ドを保持するROM
90が割り当てられたアドレス空間以外のアドレス値が
検出された時にのみ、アクティブレベルになる。デコ−
ダ30は、アドレス領域信号A0がアクティブレベル
で、しかもステ−ト信号SSがステ−ト1であると、暴
走検出信号DETをアクティブレベルにセットする。
信号SSの状態を参照することによって、CPUがマシ
ンサイクル中のどの状態にあるのかを知ることができ
る。この例では、CPUから出力されるステ−ト信号S
Sは、デコ−ダ30に入力される。またデコ−ダ30の
他の入力端子には、アドレスデコ−ダ10が出力するア
ドレス領域信号A0が印加される。この例では、アドレ
ス領域信号A0は、プログラムコ−ドを保持するROM
90が割り当てられたアドレス空間以外のアドレス値が
検出された時にのみ、アクティブレベルになる。デコ−
ダ30は、アドレス領域信号A0がアクティブレベル
で、しかもステ−ト信号SSがステ−ト1であると、暴
走検出信号DETをアクティブレベルにセットする。
【0020】つまりこの例では、CPUがステ−ト1の
状態にある時には、正常時には必ずCPUは、プログラ
ムコ−ドの読み取り、即ち命令フェッチを実行している
ので、例えばRAM80に割り当てられたメモリアドレ
ス領域のように、プログラムコ−ドが存在するはずのな
いアドレスの値が、ステ−ト1の時に現われたとすれ
ば、CPUが暴走しているとみなしうる。
状態にある時には、正常時には必ずCPUは、プログラ
ムコ−ドの読み取り、即ち命令フェッチを実行している
ので、例えばRAM80に割り当てられたメモリアドレ
ス領域のように、プログラムコ−ドが存在するはずのな
いアドレスの値が、ステ−ト1の時に現われたとすれ
ば、CPUが暴走しているとみなしうる。
【0021】暴走が検出される時の信号のタイミング
は、図2に示す状態になる。即ち、暴走検出信号DET
がアクティブになると、この信号がマシンサイクルに同
期したクロックパルス(CK1)の立ち上がり時点でD
型フリップフロップ41にセットされ、それによってR
Sフリップフロップ42の出力端子がアクティブレベル
になり、暴走信号D2が現われる。この暴走信号D2
は、ゲ−ト40及び割り込みコントロ−ラ50に印加さ
れる。
は、図2に示す状態になる。即ち、暴走検出信号DET
がアクティブになると、この信号がマシンサイクルに同
期したクロックパルス(CK1)の立ち上がり時点でD
型フリップフロップ41にセットされ、それによってR
Sフリップフロップ42の出力端子がアクティブレベル
になり、暴走信号D2が現われる。この暴走信号D2
は、ゲ−ト40及び割り込みコントロ−ラ50に印加さ
れる。
【0022】ストロ−ブジェネレ−タ60は、一般のマ
イクロコンピュ−タの場合と同様に、入力クロックパル
スCLKならびにCPUが端子R/W及びCK1に出力
する各信号に基づいて、読み出しストロ−ブ信号RD,
書き込みストロ−ブ信号WR,ロウアドレスストロ−ブ
信号RAS,及びカラムアドレスストロ−ブ信号CAS
を生成する。但しこの実施例では、実際にRAM80に
印加される書き込みストロ−ブ信号WRは、ゲ−ト40
を通った後の信号である。即ち、ゲ−ト40の一方の入
力端子には、前述の暴走信号D2が印加され、CPUが
暴走した場合には、書き込みストロ−ブ信号WRがRA
M80に印加されるのが阻止される。つまり、CPUの
暴走が検出されると、ゲ−ト40によってRAM80の
内容の書き替えは禁止される。
イクロコンピュ−タの場合と同様に、入力クロックパル
スCLKならびにCPUが端子R/W及びCK1に出力
する各信号に基づいて、読み出しストロ−ブ信号RD,
書き込みストロ−ブ信号WR,ロウアドレスストロ−ブ
信号RAS,及びカラムアドレスストロ−ブ信号CAS
を生成する。但しこの実施例では、実際にRAM80に
印加される書き込みストロ−ブ信号WRは、ゲ−ト40
を通った後の信号である。即ち、ゲ−ト40の一方の入
力端子には、前述の暴走信号D2が印加され、CPUが
暴走した場合には、書き込みストロ−ブ信号WRがRA
M80に印加されるのが阻止される。つまり、CPUの
暴走が検出されると、ゲ−ト40によってRAM80の
内容の書き替えは禁止される。
【0023】一方、暴走信号D2が現われると、割り込
みコントロ−ラ50の入力端子INTに割り込み要求信
号が印加される。この場合、割り込みコントロ−ラ50
は、割り込み要求信号をCPUの割り込み要求制御端子
IRQに印加するとともに、予め定めた割り込みベクト
ル信号をCPUに出力する。CPUは、端子IRQに割
り込み要求信号が印加されると、別の入力端子に印加さ
れるベクトル信号を参照し、そのベクトル信号の状態に
対して予め割り当てたメモリアドレスにジャンプする。
そのメモリアドレスには、プログラムの実行を中止して
暴走状態を停止するための初期化プログラムが予め配置
されている。また、そのプログラムの実行によって、I
/Oユニット70から所定のコマンド信号が出力され、
それによってRSフリップフロップ42がクリアされる
ので、暴走信号D2はオフレベルになる。
みコントロ−ラ50の入力端子INTに割り込み要求信
号が印加される。この場合、割り込みコントロ−ラ50
は、割り込み要求信号をCPUの割り込み要求制御端子
IRQに印加するとともに、予め定めた割り込みベクト
ル信号をCPUに出力する。CPUは、端子IRQに割
り込み要求信号が印加されると、別の入力端子に印加さ
れるベクトル信号を参照し、そのベクトル信号の状態に
対して予め割り当てたメモリアドレスにジャンプする。
そのメモリアドレスには、プログラムの実行を中止して
暴走状態を停止するための初期化プログラムが予め配置
されている。また、そのプログラムの実行によって、I
/Oユニット70から所定のコマンド信号が出力され、
それによってRSフリップフロップ42がクリアされる
ので、暴走信号D2はオフレベルになる。
【0024】上記実施例においては、カウンタ20が出
力する信号のステ−ト1を、CPUが命令コ−ドを取込
んだ状態として認識している。しかしCPUの構成によ
っては、例えば複数のマシンサイクルを繰り返すことに
よって1つの命令の実行が完了することもありうる。そ
の場合、CPUの動作が正常であっても、例えば1番目
のマシンサイクルのステ−ト1で命令コ−ドをフェッチ
し、2番目のマシンサイクルのステ−ト1では命令コ−
ドのフェッチ以外の動作、例えばRAMに対する書込み
動作を実行するかもしれない。しかしこのようなCPU
に対しても、暴走状態を検出しうる。例えば図1の端子
CK1のクロック数、即ちマシンサイクルの数を計数す
るもう1つのカウンタを追加し、マシンサイクル数とマ
シンサイクル中のステ−トとの両者を同時に参照し、例
えば1番目のマシンサイクルのステ−ト1であるか否か
を判断すれば、CPUが命令コ−ドのフェッチをしてい
るか否かを識別しうる。
力する信号のステ−ト1を、CPUが命令コ−ドを取込
んだ状態として認識している。しかしCPUの構成によ
っては、例えば複数のマシンサイクルを繰り返すことに
よって1つの命令の実行が完了することもありうる。そ
の場合、CPUの動作が正常であっても、例えば1番目
のマシンサイクルのステ−ト1で命令コ−ドをフェッチ
し、2番目のマシンサイクルのステ−ト1では命令コ−
ドのフェッチ以外の動作、例えばRAMに対する書込み
動作を実行するかもしれない。しかしこのようなCPU
に対しても、暴走状態を検出しうる。例えば図1の端子
CK1のクロック数、即ちマシンサイクルの数を計数す
るもう1つのカウンタを追加し、マシンサイクル数とマ
シンサイクル中のステ−トとの両者を同時に参照し、例
えば1番目のマシンサイクルのステ−ト1であるか否か
を判断すれば、CPUが命令コ−ドのフェッチをしてい
るか否かを識別しうる。
【0025】また上記実施例においては、ROM90が
割り当てられた領域以外のメモリアドレス空間の値がア
ドレスバスに現われた時に、CPUがプログラム領域外
をアクセスしているものとみなし、信号A0を出力して
いる。しかし、コンピュ−タシステムの構成によって
は、例えばハ−ドディスク等から読込んだプログラムコ
−ドをRAM上に配置した後、RAMをアクセスしてプ
ログラムを実行する場合もあるし、例えばプログラムの
一部分だけをRAM上にコピ−し、一時的にRAMをア
クセスしてプログラムを実行する場合もありうる。従っ
て、CPUがプログラム領域外をアクセスしているか否
かを検出するアドレス検出手段(10)については、検
出するアドレスの範囲を必要に応じて適宜変更しなけれ
ばならない。このアドレス範囲は、例えばRAMに割り
当てられたアドレス空間内の特定のデ−タ領域だけに限
定してもよい。また、例えばディップスイッチなどをア
ドレスデコ−ダ10に接続し、スイッチの切替えによっ
て信号A0のアドレス範囲を変更可能に構成すれば、そ
のアドレス範囲をユ−ザが任意に設定しうる。また、書
込みストロ−ブ信号WRの出力を禁止するアドレスの範
囲についても、同様に特定のデ−タ領域だけに限定して
もよいし、その範囲をディップスイッチ等で切替え可能
に構成してもよい。
割り当てられた領域以外のメモリアドレス空間の値がア
ドレスバスに現われた時に、CPUがプログラム領域外
をアクセスしているものとみなし、信号A0を出力して
いる。しかし、コンピュ−タシステムの構成によって
は、例えばハ−ドディスク等から読込んだプログラムコ
−ドをRAM上に配置した後、RAMをアクセスしてプ
ログラムを実行する場合もあるし、例えばプログラムの
一部分だけをRAM上にコピ−し、一時的にRAMをア
クセスしてプログラムを実行する場合もありうる。従っ
て、CPUがプログラム領域外をアクセスしているか否
かを検出するアドレス検出手段(10)については、検
出するアドレスの範囲を必要に応じて適宜変更しなけれ
ばならない。このアドレス範囲は、例えばRAMに割り
当てられたアドレス空間内の特定のデ−タ領域だけに限
定してもよい。また、例えばディップスイッチなどをア
ドレスデコ−ダ10に接続し、スイッチの切替えによっ
て信号A0のアドレス範囲を変更可能に構成すれば、そ
のアドレス範囲をユ−ザが任意に設定しうる。また、書
込みストロ−ブ信号WRの出力を禁止するアドレスの範
囲についても、同様に特定のデ−タ領域だけに限定して
もよいし、その範囲をディップスイッチ等で切替え可能
に構成してもよい。
【0026】また実施例では、暴走を検出した場合に、
割り込み要求信号INTを出力し、CPUのソフトウェ
ア処理によって暴走を停止するように構成してあるが、
暴走を検出した場合に、例えばCPUに対してハ−ドウ
ェアのリセット信号を出力するように構成してもよい。
割り込み要求信号INTを出力し、CPUのソフトウェ
ア処理によって暴走を停止するように構成してあるが、
暴走を検出した場合に、例えばCPUに対してハ−ドウ
ェアのリセット信号を出力するように構成してもよい。
【0027】
【発明の効果】以上のとおり本発明によれば、CPUの
指定アドレスを検出するアドレス検出手段と命令フェッ
チ検出手段との両者が出力する信号の組合せを、暴走検
出手段が判定し、それによって暴走を検出すると所定の
信号を出力する。例えば、コ−ル命令によってサブル−
チンプログラムを実行した後でメインル−チンに戻る時
に、戻り先のアドレスの値を読む際にデ−タ読取エラ−
が発生すると、実際にはプログラムの存在しない領域を
プログラム領域として誤認識し、その領域のデ−タをプ
ログラムとして読取り実行するが、このような場合に
は、メインル−チンに戻った後の1番目のコ−ドを読取
った時に、そのコ−ドの値が不正コ−ドか否かに関わら
ず、命令フェッチ時のアドレス値がプログラム領域外で
あるので直ちに暴走が検出される。
指定アドレスを検出するアドレス検出手段と命令フェッ
チ検出手段との両者が出力する信号の組合せを、暴走検
出手段が判定し、それによって暴走を検出すると所定の
信号を出力する。例えば、コ−ル命令によってサブル−
チンプログラムを実行した後でメインル−チンに戻る時
に、戻り先のアドレスの値を読む際にデ−タ読取エラ−
が発生すると、実際にはプログラムの存在しない領域を
プログラム領域として誤認識し、その領域のデ−タをプ
ログラムとして読取り実行するが、このような場合に
は、メインル−チンに戻った後の1番目のコ−ドを読取
った時に、そのコ−ドの値が不正コ−ドか否かに関わら
ず、命令フェッチ時のアドレス値がプログラム領域外で
あるので直ちに暴走が検出される。
【0028】また第2番の発明では、暴走発生を検出し
た時に、メモリに対する書込み動作が禁止されるので、
暴走が検出された後は、RAM上のデ−タ領域の内容が
変更される心配がない。
た時に、メモリに対する書込み動作が禁止されるので、
暴走が検出された後は、RAM上のデ−タ領域の内容が
変更される心配がない。
【0029】また第3番の発明では、暴走発生を検出し
た時に、割り込み要求信号がCPUに対して出力される
ので、暴走が検出されると、CPUは割り込みによって
直ちに所定の初期化プログラムにジャンプして、暴走を
停止することができる。
た時に、割り込み要求信号がCPUに対して出力される
ので、暴走が検出されると、CPUは割り込みによって
直ちに所定の初期化プログラムにジャンプして、暴走を
停止することができる。
【図1】 実施例のコンピュ−タ主要部の構成を示すブ
ロック図である。
ロック図である。
【図2】 図1の装置の信号タイミングの例を示すタイ
ムチャ−トである。
ムチャ−トである。
10:アドレスデコ−ダ 20:カウンタ 30:デコ−ダ 40:ゲ−ト 41:D型フリップフロップ 42:RSフリッ
プフロップ 50:割り込みコントロ−ラ 60:ストロ−ブ
ジェネレ−タ 70:I/Oユニット 80:RAM 90:ROM CPU:マイクロ
プロセッサ DET:暴走検出信号 D2:暴走信号 CLK:クロックパルス
プフロップ 50:割り込みコントロ−ラ 60:ストロ−ブ
ジェネレ−タ 70:I/Oユニット 80:RAM 90:ROM CPU:マイクロ
プロセッサ DET:暴走検出信号 D2:暴走信号 CLK:クロックパルス
Claims (3)
- 【請求項1】 メモリアドレスのうち、所定の動作プロ
グラムが存在する領域を除く特定の領域をCPUが指定
したことを検出する、アドレス検出手段;CPU上の所
定のマシンサイクルにおいて、所定のコ−ドを命令コ−
ドとして取込んだことを検出する命令フェッチ検出手
段;及び前記アドレス検出手段が特定のアドレス値を検
出し、それと実質上同時に、前記命令フェッチ検出手段
が所定のコ−ドの取込みを検出すると、CPUの暴走発
生を示す信号を出力する暴走検出手段;を備えるCPU
制御装置。 - 【請求項2】 前記暴走検出手段が暴走の発生を検出し
た時に、メモリに対する書込みストロ−ブ信号の出力を
禁止する書込み禁止手段を含む、前記請求項1記載のC
PU制御装置。 - 【請求項3】 前記暴走検出手段が暴走の発生を検出し
た時に、CPUに対して割り込み要求信号を出力する割
り込み発生手段を含む、前記請求項1記載のCPU制御
装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4156429A JPH05346876A (ja) | 1992-06-16 | 1992-06-16 | Cpu制御装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4156429A JPH05346876A (ja) | 1992-06-16 | 1992-06-16 | Cpu制御装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH05346876A true JPH05346876A (ja) | 1993-12-27 |
Family
ID=15627558
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4156429A Pending JPH05346876A (ja) | 1992-06-16 | 1992-06-16 | Cpu制御装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH05346876A (ja) |
-
1992
- 1992-06-16 JP JP4156429A patent/JPH05346876A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5305460A (en) | Data processor | |
| EP0702297B1 (en) | A data processor with breakpoint circuit | |
| US7752427B2 (en) | Stack underflow debug with sticky base | |
| JPH0877075A (ja) | 情報処理装置 | |
| JPH05257815A (ja) | 中央処理装置 | |
| KR100239438B1 (ko) | 오동작 방지 기능을 갖는 중앙 처리 장치 | |
| JP2504191B2 (ja) | マイクロプロセッサ | |
| JP2721610B2 (ja) | プログラマブルコントローラ | |
| KR100442290B1 (ko) | 프로그램 카운터 제어회로 | |
| JPH0484224A (ja) | スタックエリア保護回路 | |
| JP2626119B2 (ja) | マイクロコンピュータ開発支援装置 | |
| JPS6118045A (ja) | プログラムの暴走検出方式 | |
| JP3057732B2 (ja) | 情報処理装置 | |
| JPH06139084A (ja) | 情報処理装置 | |
| JPH02278446A (ja) | メモリアクセス制御回路 | |
| JPH0612292A (ja) | マイクロコンピュータ | |
| JPH05216701A (ja) | 入出力命令のリカバリタイム調整回路 | |
| JPH0258648B2 (ja) | ||
| JP2001202291A (ja) | マイクロコンピュータ | |
| JPH11184751A (ja) | メモリ制御回路及びメモリ装置 | |
| JPS60151754A (ja) | デ−タ処理装置 | |
| JPH05108384A (ja) | マイクロプロセツサ | |
| JPS61251937A (ja) | 中央処理装置の動作チエツク装置 | |
| JPS60105048A (ja) | マイクロプログラム制御方式 | |
| JPH05101203A (ja) | マイクロ・プロセツサ |