JPH0330030A - プログラム暴走検出方法 - Google Patents

プログラム暴走検出方法

Info

Publication number
JPH0330030A
JPH0330030A JP1165727A JP16572789A JPH0330030A JP H0330030 A JPH0330030 A JP H0330030A JP 1165727 A JP1165727 A JP 1165727A JP 16572789 A JP16572789 A JP 16572789A JP H0330030 A JPH0330030 A JP H0330030A
Authority
JP
Japan
Prior art keywords
branch instruction
instruction
specific branch
address
register
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
JP1165727A
Other languages
English (en)
Inventor
Kouki Katou
光幾 加藤
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP1165727A priority Critical patent/JPH0330030A/ja
Publication of JPH0330030A publication Critical patent/JPH0330030A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔概 要〕 計算機のプログラム暴走検出方法に関し、プログラムの
分岐先を示す登録表を持たずとも、暴走の開始後に最初
に実行する分岐命令の時点で暴走を検出し暴走の継続を
防止するプログラム暴走検出方法の提供を目的とし、 プログラムの先頭に、次に特定分岐命令を実行するアド
レスをレジスタにセットするレジスタセット命令を追加
し、 プログラムの中の無条件分岐命令には、次の特定分岐命
令を実行するアドレスを該レジスタ(1)にセットする
命令を追加した特定分岐命令とし、プログラムの中の条
件分岐命令には、条件を満足する場合の次の特定分岐命
令を実行するアドレスを該レジスタにセットする命令と
、条件を満足しない場合の、次の特定分岐命令を実行す
るアドレスを該レジスタにセットする命令を追加した特
定分岐命令とし、 ハードウエアとしては、該レジスタセット命令,該特定
分岐命令を検出すると特定分岐命令制御回路に渡す特定
分岐命令検出回路と、該レジスタセット命令を受信する
と、次の特定分岐命令を実行するアドレスを該レジスタ
にセットし、該特定分岐命令を受信すると、現在行って
いる命令のアドレスを示すプログラムカウンタ(以下P
Cと称す)の値と、該レジスタにセットされた値とを比
較し、一敗すれば、次に実行する特定分岐命令のアドレ
スを該レジスタにセットし、実行し、一致しなければ、
該特定分岐命令を無効としてプログラム暴走とする該特
定分岐命令制御回路を設けた構戒とする。
(産業上の利用分野) 本発明は、計算機のプログラム暴走検出方法の改良に関
する。
(従来の技術) 第4図は従来例のプログラム暴走検出に用いる登録表を
示す図である。
プログラム暴走検出方法としては、ウオッチドグタイマ
のタイムアウトによりプログラムの渋滞を検出する如き
、プログラムが暴走した後で検出する方法があるが、こ
れでは、メモリ内容の破壊や外部に対して誤出力を発生
する恐れがある。
そこでプログラム暴走を、その開始時点で捕捉し暴走の
継続を防止するプログラム暴走検出方法が、昭和59年
4月28日公開,特開昭59−75348号の計算機の
異常検出方法およびその装置に示されている。
これは、命令がシーケンシャルに実行することを確認す
る機能と、 例えば、第4図(A)に示す如く、アドレスl20では
、アドレス540に分岐し、アドレス542ではアドレ
ス118に分岐するプログラムの場合は、(B)に示す
如く分岐元と分岐先を示す登録表をメモリに登録してお
き、命令がシーケンシャルでな《実行されようとした場
合に、分岐先が登録しているかどうかを監視する機能を
設け、不正な命令実行順序の変化点(暴走)の開始時点
を検出する方法である。
〔発明が解決しようとする課題〕
しかしながら、上記従来のプログラム暴走検出方法では
、プログラムの分岐先を示す登録表をメモリに登録しな
ければならない問題点がある。
本発明は、プログラムの分岐先を示す登録表を持たすと
も暴走の開始後に最初に実行する分岐命令の時点で暴走
を検出し暴走の継続を防止するプログラム暴走検出方法
の提供を目的としている。
〔課題を解決するための手段〕
第1図は本発明の原理ブロック図である。
第1図に示す如く、プログラムの先頭に、次に特定分岐
命令を実行するアドレスをレジスタ1にセットするレジ
スタセット命令を追加し、プログラムの中の無条件分岐
命令には、次の特定分岐命令を実行するアドレスを該レ
ジスタlにセットする命令を追加した特定分岐命令とし
、プログラムの中の条件分岐命令には、条件を満足する
場合の次の特定分岐命令を実行するアドレスを該レジス
タ1にセットする命令と、条件を満足しない場合の次の
特定分岐命令を実行するアドレスを該レジスタlにセッ
トする命令を追加した特定分岐命令とする。
又ハードウエアとしては、該レジスタセット命令,該特
定分岐命令を検出すると特定分岐命令制御回路3に渡す
特定分岐命令検出回路2と、該レジスタセット命令を受
信すると、次の特定分岐命令を実行するアドレスを該レ
ジスタlにセットし、該特定分岐命令を受信すると、現
在行っている命令のアドレスを示すPC4の値と、該レ
ジスタIにセットされた値とを比較し、一致すれば、次
に実行する特定分岐命令のアドレスを該レジスタ1にセ
ットし、実行し、 一致しなければ、該特定分岐命令を無効としてプログラ
ム暴走とする該特定分岐命令制御回路3を設ける。
〔作 用〕
本発明では、プログラムの先頭には、レジスタセット命
令を追加し、プログラムの分岐命令を特定分岐命令とし
てあり、又ハードウエアとしては、特定分岐命令検出回
路2と特定分岐命令制御回路3が設けてある。
そして、まずレジスタセット命令のアドレスにて、特定
分岐命令検出回路2はこれを検出し、特定分岐命令制御
回路3に送り、レジスタ1に、次に特定分岐命令を実行
するアドレスaをセットする。
プログラムを実行中アドレスがaとなると、特定分岐命
令検出回路2は特定分岐命令を検出し、特定分岐命令制
御回路3に送り、特定分岐命令制御回路3では、現在実
行している命令のアドレスを示すPC4の値と、該レジ
スタ1にセットされた値とを比較し、一致すれば、次に
実行する特定分岐命令のアドレスbを該レジスタ1にセ
ットし、実行し、一致しなければ、該特定分岐命令を無
効としてプログラム暴走とする。
暴走でなく、アドレスbとなると、上記と同じく、特定
分岐命令検出回路2は特定分岐命令を検出し、特定分岐
命令制御回路3に送り、特定分岐命令制御回路3では、
現在実行している命令のアドレスを示すPC4の値と、
該レジスタ1にセットされた値とを比較し、一致すれば
、次に実行する特定分岐命令のアドレスCを該レジスタ
lにセットし、実行し、一致しなければ、該特定分岐命
令を無効としてプログラム暴走とする。
即ち、分岐先を示す登録表を持たなくとも、プログラム
の暴走開始後に最初に実行する分岐命令の時点で暴走を
検出し、継続を阻止することが出来る。
〔実施例〕
第2図は本発明の実施例の計算機の要部のブロック図、
第3図は本発明の実施例のプログラムを示す図である。
第3図のアドレス50に示す如く、プログラムの先頭に
次に特定分岐命令を実行するアドレス124をレジスタ
lにセットするレジスタセット命令を追加する。
又第3図のアドレス124に示す如く、アドレス122
でXとyとを比較し、アドレス124でx>yの条件を
満足すればアドレス140に分岐し、満足しない場合は
次のアドレス128に進む条件分岐命令の時は、条件を
満足すればレジスタ1に次に特定分岐命令を実行するア
ドレス150をセットする命令を、条件を満足しなけれ
ば、アドレス128を経た次に特定分岐命令を実行する
アドレス130をレジスタ1にセットする命令を追加し
た特定分岐命令とする。
又第3図のアドレス130,150に示す如く、分岐命
令の時は、次に特定分岐命令を実行するアドレス150
,600をレジスタ1にセットする命令を追加して特定
分岐命令とする。
そこで、上記のプログラムを第2図のメモリ5より読み
出し、命令解読回路6に入力するが、命令解読回路6内
の特定分岐命令検出回路2では、アドレス50にてレジ
スタセット命令を、アドレス124,130,150,
600では特定分岐命令を検出し、特定分岐命令制御回
路3に渡す。
特定分岐命令制御回路3では、レジスタセソト命令を受
信すると、次に特定分岐命令を実行するアドレス124
をレジスタlにセットする。
次にアドレス124にて特定分岐命令を受信すると、現
在実行している命令のアドレス(正常であれば124)
を示すPC4の値と、レジスタ1にセットされた124
と比較し、一致すれば次に実行する特定分岐命令のアド
レスをレジスタ1にセットし、実行する。
このアドレス124は条件分岐命令であるので、条件を
満足すれば、アドレス140に進むので、次に特定分岐
命令を実行するアドレス150をレジスタ1にセットし
、条件を満足しなければ、アドレス128に進むので、
次に特定分岐命令を実行するアドレス130をレジスタ
lにセットする.一致しなければ、特定分岐命令を無効
とし、プログラム暴走として異常信号を出力する。
条件を満足し、アドレス140に進み、特定分岐命令の
アドレス150にくると、特定分岐命令制御回路3では
、現在実行している命令のアドレス(正常であれば15
0)を示すPC4の値と、レジスタlにセットされた1
50と比較し、一致すれば次に実行する特定分岐命令の
アドレス600をレジスタ1にセットし、実行する.一
致しなければ、特定分岐命令を無効とし、プログラム暴
走として異常信号を出力する。
特定分岐命令のアドレス600にくると又上記の動作を
行う。
このようにすれば、分岐先を示す登録表を持たなくとも
、プログラム暴走開始後に最初に実行する分岐命令の時
点で暴走を検出し、継続を防止することが出来る。
〔発明の効果〕
以上詳細に説明せる如く本発明によれば、分岐先を示す
登録表を持たなくとも、プログラム暴走開始後に最初に
実行する分岐命令の時点で暴走を検出し、暴走継続を防
止することが出来る効果がある。
【図面の簡単な説明】
第1図は本発明の原理ブロック図、 第2図は本発明の実施例の計算機の要部のブロック図、 第3図は本発明の実施例のプログラムを示す図、第4図
は従来例のプログラム暴走検出に用いる登録表を示す図
である。 図において、 lはレジスタ、 2は特定分岐命令検出回路、 3は特定分岐命令制御回路、 4はプログラムカウンタ、 5はメモリ、 6は命令解読回路を示す。 ネ鞭aF4t>賀砲伊1の7ログラムt示ず図′lfJ
  旧 −168一

Claims (1)

  1. 【特許請求の範囲】  計算機のプログラム暴走を検出するに際し、プログラ
    ムの先頭に、次の特定分岐命令を実行するアドレスをレ
    ジスタ(1)にセットするレジスタセット命令を追加し
    、 プログラムの中の無条件分岐命令には、次の特定分岐命
    令を実行するアドレスを該レジスタ(1)にセットする
    命令を追加した特定分岐命令とし、プログラムの中の条
    件分岐命令には、条件を満足する場合の次の特定分岐命
    令を実行するアドレスを該レジスタ(1)にセットする
    命令と、条件を満足しない場合の次の特定分岐命令を実
    行するアドレスを該レジスタ(1)にセットする命令を
    追加した特定分岐命令とし、 ハードウェアとしては、該レジスタセット命令、該特定
    分岐命令を検出すると特定分岐命令制御回路(3)に渡
    す特定分岐命令検出回路(2)と、該レジスタセット命
    令を受信すると、次の特定分岐命令を実行するアドレス
    を該レジスタ(1)にセットし、該特定分岐命令を受信
    すると、現在行っている命令のアドレスを示すプログラ
    ムカウンタ(4)の値と、該レジスタ(1)にセットさ
    れた値とを比較し、一致すれば、次に実行する特定分岐
    命令のアドレスを該レジスタ(1)にセットし、実行し
    、 一致しなければ、該特定分岐命令を無効としてプログラ
    ム暴走とする該特定分岐命令制御回路(3)を設けたこ
    とを特徴とするプログラム暴走検出方法。
JP1165727A 1989-06-28 1989-06-28 プログラム暴走検出方法 Pending JPH0330030A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1165727A JPH0330030A (ja) 1989-06-28 1989-06-28 プログラム暴走検出方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1165727A JPH0330030A (ja) 1989-06-28 1989-06-28 プログラム暴走検出方法

Publications (1)

Publication Number Publication Date
JPH0330030A true JPH0330030A (ja) 1991-02-08

Family

ID=15817929

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1165727A Pending JPH0330030A (ja) 1989-06-28 1989-06-28 プログラム暴走検出方法

Country Status (1)

Country Link
JP (1) JPH0330030A (ja)

Similar Documents

Publication Publication Date Title
JP2005317023A (ja) データ処理装置のブレークポイント論理ユニット、デバッグ論理、およびブレークポイントの方法
EP0638864B1 (en) Development support system for microcomputer with internal cache
JP2583525B2 (ja) データ処理装置
JPH0330030A (ja) プログラム暴走検出方法
JPS6158054A (ja) プログラムの暴走検出方式
JPH11167500A (ja) エミュレータ装置のイベント回路及びデバッグシステム
JP2786215B2 (ja) 再開処理制御方式
JPH01280818A (ja) 演算制御装置の初期化方法
JPS58161047A (ja) 計算機のプログラム例外検出方法
JPH02126331A (ja) マイクロプログラム制御装置
JPH04306743A (ja) 集積回路マイクロプロセッサのデバッグ支援システム
JPS61211746A (ja) プログラム実行制御方式
JPH0251742A (ja) プログラム暴走防止方式
JPH03233732A (ja) 電子計算機
JPH01185738A (ja) アドレストレース回路
JPS63133236A (ja) マイクロプログラムアドレス一致検出方式
JPH05108402A (ja) デバツグ装置
JPH02159619A (ja) 正常終了出口呼出し方式
JPH0991168A (ja) エミュレータ
JPH02162435A (ja) マイクロプロセツサよびインサーキツトエミユレータ
JPH05233359A (ja) デバッグ装置
JPH0334025A (ja) 命令処理方式
JPH03152637A (ja) 異常診断システム
JPH0371236A (ja) エラー検出システム
JPH06250856A (ja) マイクロコンピュータ