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