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
Application number
JP4156429A
Other languages
English (en)
Inventor
Masatoshi Inoue
上 正 俊 井
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.)
Ricoh Co Ltd
Original Assignee
Ricoh 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP4156429A priority Critical patent/JPH05346876A/ja
Publication of JPH05346876A publication Critical patent/JPH05346876A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Abstract

(57)【要約】 【目的】 CPUの暴走をRAM上のデ−タが消される
前に検出して停止させる。 【構成】 CPUのマシンサイクルのステ−ト信号によ
って、命令コ−ドのフェッチが行なわれているか否かを
認識し、プログラムコ−ドが存在するメモリアドレス以
外の値がアドレスバスに現われたか否かをデコ−ダ10
で検出し、プログラムコ−ドが存在しないアドレスに対
して命令コ−ドのフェッチが行なわれた時に、暴走を検
出する。暴走を検出すると、RAMの書込みを禁止し、
割り込み要求信号をCPUに出力し、暴走を停止させ
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、マイクロコンピュ−タ
などのCPU(中央処理装置)を用いた制御装置に関す
る。
【0002】
【従来の技術】一般にCPUは、メモリ上に予め配置さ
れたプログラムのコ−ド及びデ−タの内容を順次に読み
取り、そのプログラムの各々のコ−ドに割り当てられた
命令の通りに順次に処理を実行する。従ってプログラム
の各コ−ドの読取り時に1ビットでも誤りが発生する
と、その命令コ−ドを別の命令として誤認識し、誤った
命令を実行するので、それ以後のCPUの動作は全く予
期しないものになる。これが暴走と呼ばれるものであ
る。この種の暴走は、例えば静電気等の電気ノイズがC
PUの近傍で放射された場合に、CPUのデ−タバス上
などで信号が変形することによって発生しうる。暴走が
発生すると、例えばRAM(読み書きメモリ)上などに
存在するそれまでの処理で蓄積された重要なデ−タが破
壊される危険がある。
【0003】そこで従来より、プログラムの実行中に、
CPUに予め命令が割り当てられているコ−ド以外の不
正コ−ド(未定義コ−ド)を命令コ−ドとして取り込ん
だ場合には、CPU自身が暴走の発生を検出し、暴走発
生時の動作正常化のために予め用意された再スタ−トプ
ログラムにジャンプして、それを実行するように構成さ
れている。
【0004】
【発明が解決しようとする課題】しかしながら従来の方
法では、特定の不正コ−ドを命令コ−ドとして取り込ま
ない限り、暴走の発生を検出できないので、暴走の検出
が遅すぎる場合が多く、暴走が検出されるまでに様々な
異常処理が実行され、メモリ上デ−タの破壊を防止でき
ない。例えば、コ−ル命令によってサブル−チンプログ
ラムを実行した後でメインル−チンに戻る時に、戻り先
のアドレスの値を読む際にデ−タ読取エラ−が発生する
と、誤ったアドレスに戻ってプログラムの実行を続け
る。つまり、実際にはプログラムの存在しない領域をプ
ログラム領域として認識し、その領域のデ−タをプログ
ラムとして順次に読取ることになる。しかし、この種の
領域のデ−タは、どれも似たような特定の値である場合
が多く、特定の不正コ−ドが現われて暴走が検出される
までの間には、プログラムの読込み及び実行が何回とな
く繰り返されてしまう。
【0005】そこで本発明は、CPUに暴走が発生した
場合、その暴走をすばやく検出することによって、デ−
タの破壊を最小限にくい止めることを課題とする。
【0006】
【課題を解決するための手段】上記課題を解決するため
に、本発明のCPU制御装置は、メモリアドレスのう
ち、所定の動作プログラムが存在する領域を除く特定の
領域をCPUが指定したことを検出する、アドレス検出
手段(10);CPU上の所定のマシンサイクルにおい
て、所定のコ−ドを命令コ−ドとして取込んだことを検
出する命令フェッチ検出手段(20);及び前記アドレ
ス検出手段が特定のアドレス値を検出し、それと実質上
同時に、前記命令フェッチ検出手段が所定のコ−ドの取
込みを検出すると、CPUの暴走発生を示す信号を出力
する暴走検出手段(30);を備える。
【0007】また第2番の発明のCPU制御装置は、更
に、前記暴走検出手段が暴走の発生を検出した時に、メ
モリに対する書込みストロ−ブ信号の出力を禁止する書
込み禁止手段(40)を含む。
【0008】また第3番の発明のCPU制御装置は、更
に、前記暴走検出手段が暴走の発生を検出した時に、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が暴走していない限り、前者
の領域の値がアドレスバスに現われている時に、命令フ
ェッチを実行する。しかし暴走が生じると、後者の領域
の値がアドレスバスに現われている時に、命令フェッチ
が生じうる。
【0011】従って例えば、CPUの命令フェッチが常
にステ−ト1のみで実行され、しかもステ−ト1ではデ
−タの入出力は実行されない、と仮定すれば、CPUの
マシンサイクルがステ−ト1の時に、プログラムコ−ド
が存在しないデ−タ領域の値がアドレスバスに出力され
れば、CPUが暴走していると判定しうる。勿論、この
判定条件はCPUの種類に応じて適宜変更する必要があ
るが、命令フェッチが行なわれるタイミングで、アドレ
スバスに出力された値がプログラム領域か否かを識別す
れば、CPUの暴走の有無を判定しうる。
【0012】本発明では、CPUの指定アドレスを検出
するアドレス検出手段と命令フェッチ検出手段との両者
が出力する信号の組合せを、暴走検出手段が判定し、そ
れによって暴走を検出すると所定の信号を出力する。例
えば、コ−ル命令によってサブル−チンプログラムを実
行した後でメインル−チンに戻る時に、戻り先のアドレ
スの値を読む際にデ−タ読取エラ−が発生すると、実際
にはプログラムの存在しない領域をプログラム領域とし
て誤認識し、その領域のデ−タをプログラムとして読取
り実行するが、このような場合には、メインル−チンに
戻った後の1番目のコ−ドを読取った時に、そのコ−ド
の値が不正コ−ドか否かに関わらず、命令フェッチ時の
アドレス値がプログラム領域外であるので直ちに暴走が
検出される。
【0013】また第2番の発明では、暴走発生を検出し
た時に、メモリに対する書込み動作が禁止される。従っ
て、暴走が検出された後は、RAMの内容が変更される
心配がない。
【0014】また第3番の発明では、暴走発生を検出し
た時に、割り込み要求信号がCPUに対して出力され
る。従ってこれによれば、暴走が検出されると、CPU
は割り込みによって直ちに所定の初期化プログラムにジ
ャンプして、暴走を停止することができる。
【0015】
【実施例】本発明を実施する一形式のマイクロコンピュ
−タの主要部分の構成を図1に示す。図1に示すマイク
ロコンピュ−タは、マイクロプロセッサCPUと、それ
のアドレスバス及びデ−タバスに接続された各種周辺ユ
ニットで構成されている。周辺ユニットとしては、プロ
グラムコ−ドを予め格納したROM(読出し専用メモ
リ)90,各種処理によって得られたデ−タ等を蓄積す
るためのRAM(読み書きメモリ)80,信号の入出力
を実施するためのI/Oユニット70,及び割り込みコ
ントロ−ラ50が含まれている。
【0016】アドレスデコ−ダ10は、CPUがそのア
ドレスバスに出力するアドレス値が特定の範囲の値であ
る時に、所定の出力信号ラインをアクティブレベルにセ
ットする。即ち、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)
と呼ぶ。
【0018】ステ−ト1ではCPUの内部に存在するプ
ログラムカウンタが示すメモリアドレスの値をアドレス
バスに出力してそのアドレスの内容、即ち1つのプログ
ラムコ−ドの読込み(命令フェッチ)を行なってその命
令コ−ドを解読し、ステ−ト2ではプログラムカウンタ
の内容をインクリメント(次のアドレスに進める)し、
ステ−ト3では例えば命令で定まるアドレスの値をアド
レスバスに出力し、ステ−ト4では所定の内部処理を実
行し、ステ−ト5では例えばプログラムで定まるデ−タ
をデ−タバスに出力する。
【0019】従って、カウンタ20が出力するステ−ト
信号SSの状態を参照することによって、CPUがマシ
ンサイクル中のどの状態にあるのかを知ることができ
る。この例では、CPUから出力されるステ−ト信号S
Sは、デコ−ダ30に入力される。またデコ−ダ30の
他の入力端子には、アドレスデコ−ダ10が出力するア
ドレス領域信号A0が印加される。この例では、アドレ
ス領域信号A0は、プログラムコ−ドを保持するROM
90が割り当てられたアドレス空間以外のアドレス値が
検出された時にのみ、アクティブレベルになる。デコ−
ダ30は、アドレス領域信号A0がアクティブレベル
で、しかもステ−ト信号SSがステ−ト1であると、暴
走検出信号DETをアクティブレベルにセットする。
【0020】つまりこの例では、CPUがステ−ト1の
状態にある時には、正常時には必ずCPUは、プログラ
ムコ−ドの読み取り、即ち命令フェッチを実行している
ので、例えばRAM80に割り当てられたメモリアドレ
ス領域のように、プログラムコ−ドが存在するはずのな
いアドレスの値が、ステ−ト1の時に現われたとすれ
ば、CPUが暴走しているとみなしうる。
【0021】暴走が検出される時の信号のタイミング
は、図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の
内容の書き替えは禁止される。
【0023】一方、暴走信号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が命令コ−ドのフェッチをしてい
るか否かを識別しうる。
【0025】また上記実施例においては、ROM90が
割り当てられた領域以外のメモリアドレス空間の値がア
ドレスバスに現われた時に、CPUがプログラム領域外
をアクセスしているものとみなし、信号A0を出力して
いる。しかし、コンピュ−タシステムの構成によって
は、例えばハ−ドディスク等から読込んだプログラムコ
−ドをRAM上に配置した後、RAMをアクセスしてプ
ログラムを実行する場合もあるし、例えばプログラムの
一部分だけをRAM上にコピ−し、一時的にRAMをア
クセスしてプログラムを実行する場合もありうる。従っ
て、CPUがプログラム領域外をアクセスしているか否
かを検出するアドレス検出手段(10)については、検
出するアドレスの範囲を必要に応じて適宜変更しなけれ
ばならない。このアドレス範囲は、例えばRAMに割り
当てられたアドレス空間内の特定のデ−タ領域だけに限
定してもよい。また、例えばディップスイッチなどをア
ドレスデコ−ダ10に接続し、スイッチの切替えによっ
て信号A0のアドレス範囲を変更可能に構成すれば、そ
のアドレス範囲をユ−ザが任意に設定しうる。また、書
込みストロ−ブ信号WRの出力を禁止するアドレスの範
囲についても、同様に特定のデ−タ領域だけに限定して
もよいし、その範囲をディップスイッチ等で切替え可能
に構成してもよい。
【0026】また実施例では、暴走を検出した場合に、
割り込み要求信号INTを出力し、CPUのソフトウェ
ア処理によって暴走を停止するように構成してあるが、
暴走を検出した場合に、例えばCPUに対してハ−ドウ
ェアのリセット信号を出力するように構成してもよい。
【0027】
【発明の効果】以上のとおり本発明によれば、CPUの
指定アドレスを検出するアドレス検出手段と命令フェッ
チ検出手段との両者が出力する信号の組合せを、暴走検
出手段が判定し、それによって暴走を検出すると所定の
信号を出力する。例えば、コ−ル命令によってサブル−
チンプログラムを実行した後でメインル−チンに戻る時
に、戻り先のアドレスの値を読む際にデ−タ読取エラ−
が発生すると、実際にはプログラムの存在しない領域を
プログラム領域として誤認識し、その領域のデ−タをプ
ログラムとして読取り実行するが、このような場合に
は、メインル−チンに戻った後の1番目のコ−ドを読取
った時に、そのコ−ドの値が不正コ−ドか否かに関わら
ず、命令フェッチ時のアドレス値がプログラム領域外で
あるので直ちに暴走が検出される。
【0028】また第2番の発明では、暴走発生を検出し
た時に、メモリに対する書込み動作が禁止されるので、
暴走が検出された後は、RAM上のデ−タ領域の内容が
変更される心配がない。
【0029】また第3番の発明では、暴走発生を検出し
た時に、割り込み要求信号が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:クロックパルス

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 メモリアドレスのうち、所定の動作プロ
    グラムが存在する領域を除く特定の領域をCPUが指定
    したことを検出する、アドレス検出手段;CPU上の所
    定のマシンサイクルにおいて、所定のコ−ドを命令コ−
    ドとして取込んだことを検出する命令フェッチ検出手
    段;及び前記アドレス検出手段が特定のアドレス値を検
    出し、それと実質上同時に、前記命令フェッチ検出手段
    が所定のコ−ドの取込みを検出すると、CPUの暴走発
    生を示す信号を出力する暴走検出手段;を備えるCPU
    制御装置。
  2. 【請求項2】 前記暴走検出手段が暴走の発生を検出し
    た時に、メモリに対する書込みストロ−ブ信号の出力を
    禁止する書込み禁止手段を含む、前記請求項1記載のC
    PU制御装置。
  3. 【請求項3】 前記暴走検出手段が暴走の発生を検出し
    た時に、CPUに対して割り込み要求信号を出力する割
    り込み発生手段を含む、前記請求項1記載のCPU制御
    装置。
JP4156429A 1992-06-16 1992-06-16 Cpu制御装置 Pending JPH05346876A (ja)

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)

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) マイクロ・プロセツサ