JPS6133548A - プログラム暴走検出方式 - Google Patents

プログラム暴走検出方式

Info

Publication number
JPS6133548A
JPS6133548A JP15449484A JP15449484A JPS6133548A JP S6133548 A JPS6133548 A JP S6133548A JP 15449484 A JP15449484 A JP 15449484A JP 15449484 A JP15449484 A JP 15449484A JP S6133548 A JPS6133548 A JP S6133548A
Authority
JP
Japan
Prior art keywords
branch
program
address
memory
instruction
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
JP15449484A
Other languages
English (en)
Inventor
Hiroyuki Sakakibara
裕之 榊原
Junichi Fujii
藤井 準一
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.)
Fuji Electric Co Ltd
Fuji Facom Corp
Original Assignee
Fuji Electric Co Ltd
Fuji Facom Corp
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 Fuji Electric Co Ltd, Fuji Facom Corp filed Critical Fuji Electric Co Ltd
Priority to JP15449484A priority Critical patent/JPS6133548A/ja
Publication of JPS6133548A publication Critical patent/JPS6133548A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明は、プログラム暴走検出方式に関するものであ
り、特に、プロゲラtの暴走が発生したときに、これを
直接的に検出でき、比較的速くプログラムの暴走に対処
することができるようなプログラム暴走検出方式に関す
るものである。
〔従来技術〕
従来、情報処理装置において、プログラムの暴走を検出
する方式としては、演算処理装置(以下CPU)がプロ
グラムの格納されていないアドレスから命令をフェツチ
したことを検出するものとか、プログラムで常時リフレ
ッシュするカウンタを設けて、そのリフレッシュの間隔
が一定時間以上空いたことを検出してプログラムの暴走
を検知する、いわゆるウォッチドッグタイマ方式などが
知られている。
〔発明が解決しようとする問題点〕
しかし、これらの方式は、プログラムの暴走を直接検出
するものではな(、プログラムの暴走が発生した場合に
、その結果として、二次的に発生する現象を検出する方
式であるため、プログラムが暴走してからそれを検出す
るまでに時間かがかり、暴走を検出した時には、メモリ
とかレジスタの内容が変わってしまい、これらの値を退
避させたとしても、すでに回復不可能な影響を及ぼして
しまっていることが多いという問題点がある。
〔発明の目的〕
この発明は、このような従来技術の問題点にがんがみて
なされたものであって、このような問題点を解決すると
ともに、直接的にプログラムの暴走を検出できて、早期
にプログラム暴走に対処できるようなプログラム暴走検
出方式を提供することを目的とする。
〔問題点を解決する手段〕
この発明は、プログラムの暴走の多くが予定外の分岐に
より発生するという点に着目したものであって、ある任
意のアドレスに対して、CPUがプログラムの分岐命令
を実行した結果プログラムが分岐してもよいアドレスで
あるか否かを示すフラグを設けて、これを分岐制御フラ
グとしてcPUのアドレス空間に対応して格納するフラ
グ情報記憶部(以下、分岐制御メモリ)を備えるように
して、CPUがプログラムの分岐命令を実行した結果、
上記の分岐命令制御フラグにより、禁止されているアド
レスに対し、プログラムにより分岐した場合にこれを検
出することによりプログラムの暴走を検知するというも
のである。
しかして、前記の問題点を解決し、目的を達成するこの
発明のプログラム暴走検出方式における手段は、記憶部
と、この記憶部に格納されているプログラムに応じて所
定の処理を実行する演算処理装置と、演算処理装置が分
岐命令を実行して、この演算処理装置がアクセス可能な
アドレス空間に配置されたレジスタ、メモリ、バフフプ
メモリ等のいわゆるアクセス可能な記憶部等がアクセス
された場合にその分岐先のアドレスが分岐してよいアド
レスか否かを判定する判定回路とを備えるというもので
ある。
〔作用〕
このように、分岐の際に記憶部等のアクセスと同時にア
ドレッシングされたアドレスが分岐可能なアドレスか否
かを判定するものであるので、分岐の際にプログラムの
暴坦が発生した場合、即座にかつ直接的にプログラムの
暴走が検知できることになる。
その結果、メモリとかレジスタの内容が変化する前に、
これらの値を退避させることができ、より元に回復し易
いような処理が実現できることになる。したがって、元
の状態の回復が早期にできかつ容易なプログラム暴走検
出装置が実現できるものである。
〔実施例〕
以下、この発明の一実施例について図面を用い説明する
第1図は、この発明を適用した情報処理装置の要部の一
実施例のブロック図であり、第2図は、そのプログラム
を記憶したプログラムメモリと分岐制御メモリとの関係
を示す説明図である。なお、これらの図において同一の
ものは、同一の符号で示す。
第1図において、1はcPUであって、アドレスバス1
0及びデータバス1)を介してプログラムメモリ2から
命令を取出して、その命令を解読し、所定の処理を実行
する。
3は、CPUIが分岐命令を実行したことを検出する分
岐検出回路であって、CPLTIが分岐命令の次の命令
をプログラムメモリ2がら取出すときに、分岐信号線1
3に分岐信号を発生する。なお、この明細書での分岐命
令には、いわゆるブランチ命令のほか、分岐を伴うサブ
ルーチンコール命令1、サブルーチンからのリターン命
令等、各種の分岐する命令を含むものである。
一方、4は、1ビツトの分岐許可を示すフラグを格納し
ている分岐制御メモリであって、アドレスバス10上の
アドレスに対応した記憶位置に分岐制御フラグを記憶し
ていて、あるアドレスがアクセスされたときに、この制
御フラグを信号線14に発生するものである。
5は、プログラム暴走検出回路であって、分岐命令の実
行を検出する分岐検出回路3の出力信号(分岐信号線1
3の信号)と分岐制御メモリ4から読出される分岐制御
フラグ情報(信号線14の信号)とが供給され、分岐信
号線13に検出信号として、例えば“1″ (ON状P
M)の信号が発生したときに、分岐制御フラグが分岐を
許可する状態例えばフラグ1″ (又は禁止する状態例
えばフラグ0”)か否かを判定するものである。
ここで、それが分岐を禁止する場合であると判定された
ときには、プログラム暴走検出回路5はプログラムの暴
走が発生したものと判定して、プログラム暴走検出信号
を検出信号線15上に出力する。
この検出信号線15上に出力されたプログラム暴走検出
信号は、CPUIへの割込み信号として送出されて、暴
走したプログラムの停止処理をさせる起動信号として使
用されたり、外部として、例えば、中央処理装置や他の
計算機に対してプログラムが暴走したことを通知する信
号とされるものである。
さて、プログラムメモリ2のアドレスA2に分岐命令が
格納されているとすると、第2図に見るごとく、分岐制
御メモリ4には、このプログラムメモリ2のアドレス空
間に対応してアドレスAO及びアドレスAllにプログ
ラムが分岐してよいことを示す分岐フラグl°が格納さ
れている。
なお、分岐フラグ0”のところは、分岐が禁止されてい
るアドレスを示す。
次に、その動作について説明する。
今仮に、CPUIが例えはアドレスAOから順次プログ
ラムメモリ2又は他のメモリとかレジスタ等をアクセス
して、ある所定のプログラムを実行して行き、アドレス
A2の分岐命令を実行し、その後に、次の命令を取出し
に行くとき、第1図に見る分岐検出回路3が分岐命令の
実行を検出して、分岐信号13を発生する。
もし、この次の命令のアドレスがA1) (又はAO)
であれば、分岐制御メモリ4のアドレスA1) (又は
AO)がアクセスされて、分岐信号線13の分岐信号が
“1”の条件で分岐制御フラグも“1″となって、プロ
グラム暴走検出回路5は、これら信号が“1″、1″で
あるときには分岐が正常のものと判定し、プログラム暴
走検出信号を発生しない。
しかし、このとき、次の命令のアドレスが例えばアドレ
スA]2であって、分岐制御フラグ1”以外の領域であ
るときには、分岐信号線13の分岐信号が“1”のとき
に分岐制御フラグ0”が発生して、プログラム暴走検出
回路5は、分岐が異常なものとして、暴走検出信号を検
出信号1)5上に発生する。
このように、CPUIのアドレス空間に対応してそのア
ドレスに対して、CPUIがプログラムの分岐命令を実
行した結果プログラムの実行先として分岐してきてよい
アドレスであるか否かを示すものとしての分岐制御フラ
グを設けて、これを格納するメモリを備えているので、
CPUIがプログラムの分岐命令を実行した結果、上記
分岐制御フラグにより、禁止されているアドレスに対し
てプログラムの分岐がなされたことを検出することによ
り、直ちにかつ直接的にプログラムの暴走を検出できる
ものである。
以上説明してきたが、実施例では、分岐を許可するか否
かについて、分岐フラグが“1″であるか否かにより判
定しているが、これは、分岐を禁止するところにフラグ
1“を立てるようにしてもよく、また、判定の方法は、
このようなフラグによる方法に限定されるものではない
。要するに、分岐を許可するか否かについて判定できる
判定回路を有すればよいものである。
さらに、分岐命令であるか否かを検出する検出方法とし
ては、命令のアドレスが前回の命令のアドレスからある
範囲を越えて変化したことを検出する方法によってもよ
く、CPUIがプログラムメモリ2から読出した命令を
解読する方法などを用いてもよく、これは、実施例の回
路に限定されるものではない。
また、分岐命令の分岐検出回路3をCPUl0中に組込
み、分岐信号13をCPUIから出力するようにしても
よい。さらにCPUIが命令とともに、その命令のアド
レスの分岐制御フラグを分岐制御メモリ4から読込み、
これを判定するようれすれば、暴走検出回路までの回路
をCPU0中に組込むことができるものである。そして
、このような方法によれば、命令の先取りを行うCPU
にもこの発明を適用できることになる。
したがって、このような判定回路も含めて、CPUに一
体化された形のものもこの発明の範囲に含まれるもので
ある。
なお、本発明によれば、アドレス対応にフラグを設ける
ようにしているのでプログラムの異常による暴走ばかり
でなく、CPUに内蔵されるCPUレジスタの間接ブラ
ンチ命令に使用するCPUレジスタの値の計算誤りや、
サブルーチン内での戻りアドレスのハード的又はソフト
的な破壊など、広範囲な原因に起因する暴走を直ちにか
つ直接的に検出することができる。
〔発明の効果〕
以上説明してきたが、この発明は、記憶部と、この記憶
部に格納されているプログラムに応じて所定の処理を実
行する演算処理装置と、演算処理装置が分岐命令を実行
して、この演算処理装置がアクセス可能なアドレス空間
に配置されたレジスタ、メモリ、バッファメモリ等の、
いわゆるアクセス可能な記憶部等がアクセスされた場合
に、その分岐先のアドレスが分岐してよいアドレスか否
かを判定する判定回路とを備えているので、分岐の際に
記憶部等のアクセスと同時に、アクセスされたアドレス
が分岐可能なアドレスか否かを判定でき、分岐の際にプ
ログラムの暴走が発生した場合、即座にかつ直接的にプ
ログラムの暴走を検知できるものである。
その結果、メモリとかレジスタ等も含めて、その内容が
変化する以前にこれらの値を退避させることができ、よ
り元に回復し易いような処理が可能となる。そこで元の
状態の回復が早期にできかつ容易なプログラム暴走検出
装置が実現できるものである。
【図面の簡単な説明】
第1図は、この発明を適用した情報処理装置の要部の一
実施例ブロック図であり、第2図は、そのプログラムを
記憶したプログラムメモリと分岐制御メモリとの関係を
示す説明図である。 1・・・・・・CPU、2・・・・・・プログラムメモ
リ。 3・・・・・・分岐検出回路、4・・・・・・分岐制御
メモリ。 5・・・・・・プログラム暴走検出回路。 特許出願人 富士電機製造株式会社 冨士ファコム制御株式会社 弁理士 代理人 森   哲 也 弁理士 代理人 内 藤 嘉 昭 弁理士 代理人 清 水   正 弁理士 代理人 梶 山 倍 是 第1図 第2図

Claims (3)

    【特許請求の範囲】
  1. (1)記憶部と、この記憶部に格納されているプログラ
    ムに応じて所定の処理を実行する演算処理装置と、前記
    演算処理装置が分岐命令を実行して前記記憶部等がアク
    セスされた場合にその分岐先のアドレスが分岐してより
    アドレスか否かを判定する判定回路とを備えることを特
    徴とするプログラム暴走検出方式。
  2. (2)判定回路は、記憶部等と同時にこの記憶部等のア
    ドレスでアドレツシングされるメモリを有するものであ
    つて、このメモリの分岐先アドレスに対応する位置には
    、分岐が可能であることを示すフラグが記憶され、この
    フラグにより分岐してよいアドレスか否かを判定するこ
    とを特徴とする特許請求の範囲第1項記載のプログラム
    暴走検出方式。
  3. (3)判定回路は、記憶部等と同時にこの記憶部等のア
    ドレスでアドレツシングされるメモリを有するものであ
    つて、このメモリの分岐先とならないアドレスに対応す
    る位置には、分岐を禁止することを示すフラグが記憶さ
    れ、このフラグにより分岐してよいアドレスか否かを判
    定することを特徴とする特許請求の範囲第1項記載のプ
    ログラム暴走検出方式。
JP15449484A 1984-07-25 1984-07-25 プログラム暴走検出方式 Pending JPS6133548A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP15449484A JPS6133548A (ja) 1984-07-25 1984-07-25 プログラム暴走検出方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP15449484A JPS6133548A (ja) 1984-07-25 1984-07-25 プログラム暴走検出方式

Publications (1)

Publication Number Publication Date
JPS6133548A true JPS6133548A (ja) 1986-02-17

Family

ID=15585469

Family Applications (1)

Application Number Title Priority Date Filing Date
JP15449484A Pending JPS6133548A (ja) 1984-07-25 1984-07-25 プログラム暴走検出方式

Country Status (1)

Country Link
JP (1) JPS6133548A (ja)

Similar Documents

Publication Publication Date Title
US4924382A (en) Debugging microprocessor capable of switching between emulation and monitor without accessing stack area
US6959367B2 (en) System having read-modify-write unit
US4949241A (en) Microcomputer system including a master processor and a slave processor synchronized by three control lines
US5003458A (en) Suspended instruction restart processing system based on a checkpoint microprogram address
US5146569A (en) System for storing restart address of microprogram, determining the validity, and using valid restart address to resume execution upon removal of suspension
JPH0527971A (ja) 情報処理装置
JPS6133548A (ja) プログラム暴走検出方式
JP2653412B2 (ja) ブレークポイント設定方法
JP2619425B2 (ja) シーケンスコントローラ
JP2760228B2 (ja) キャッシュメモリを内蔵したマイクロプロセッサとそのトレースアナライザ
JP2562838B2 (ja) プロセッサ及びストアバッファ制御方法
JPH0147818B2 (ja)
JPS62197831A (ja) デ−タ処理装置
JPS59112494A (ja) メモリテスト方式
JP2504191B2 (ja) マイクロプロセッサ
JP3590289B2 (ja) イベント検出回路
JPS6118045A (ja) プログラムの暴走検出方式
JPH0258648B2 (ja)
JPH07182251A (ja) マイクロプロセッサ
JPS63150732A (ja) プログラム走行監視装置
JPS6152747A (ja) マイクロプロセツサ
JP2658342B2 (ja) データ処理装置
JPH0330022A (ja) 情報処理装置
JPS6057439A (ja) スタツクあふれ検出装置
JPH07160498A (ja) マイクロプロセッサ