JPS62182934A - プログラム実行装置 - Google Patents
プログラム実行装置Info
- Publication number
- JPS62182934A JPS62182934A JP61025386A JP2538686A JPS62182934A JP S62182934 A JPS62182934 A JP S62182934A JP 61025386 A JP61025386 A JP 61025386A JP 2538686 A JP2538686 A JP 2538686A JP S62182934 A JPS62182934 A JP S62182934A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- program counter
- jump
- program
- counter value
- 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
- Executing Machine-Instructions (AREA)
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[発明の目的]
(産業上の利用分野)
プログラムを実行するプログラム実行装置に係わり、プ
ログラムカウンタ値の非逐次的変化に対する検証機能を
有するプログラム実行装置に関する。
ログラムカウンタ値の非逐次的変化に対する検証機能を
有するプログラム実行装置に関する。
(従来の技術)
従来のコンピュータでプログラムを実行さぜる′場合に
は、演算制御装置により以下のような命令実行制御が行
われている。
は、演算制御装置により以下のような命令実行制御が行
われている。
すなわち、プログラムカウンタにより指定されたメモリ
アドレスより命令語が命令レジスタに読み出される。次
にこの命令レジスタに格納された命令が解釈、実行され
る。ざらにプログラムカウンタの値が更新された後、上
記のステップが繰返されている。
アドレスより命令語が命令レジスタに読み出される。次
にこの命令レジスタに格納された命令が解釈、実行され
る。ざらにプログラムカウンタの値が更新された後、上
記のステップが繰返されている。
しかしながらこのような命令実行制御では、プログラム
カウンタの示す値の適、不適にかかわらず読み出された
命令は実行されてしまい、命令語にふされしくないもの
、たとえばデータ等であっても命令として実行されると
いう問題があった。
カウンタの示す値の適、不適にかかわらず読み出された
命令は実行されてしまい、命令語にふされしくないもの
、たとえばデータ等であっても命令として実行されると
いう問題があった。
(発明が解決しようとする問題点)
このように従来のプログラム実行装置では、外乱(ノイ
ズ等)によりプログラムカウンタの内容が不適当な値に
書換えられた場合にも、その不適当なプログラムカウン
タ値にしたがって不適当な命令が実行されてしまうとい
う問題があった。
ズ等)によりプログラムカウンタの内容が不適当な値に
書換えられた場合にも、その不適当なプログラムカウン
タ値にしたがって不適当な命令が実行されてしまうとい
う問題があった。
本発明はこのような問題を解決するもので、暴走したり
、あるいは引っ掛かった(ハングアップ)状態になる等
の異常動作を防止したプログラム実行装置を提供するこ
とを目的とする。
、あるいは引っ掛かった(ハングアップ)状態になる等
の異常動作を防止したプログラム実行装置を提供するこ
とを目的とする。
[発明の構成]
(問題点を解決するための手段)
本発明は、プログラムカウンタを制御してプログラムの
実行を管理する演算制御装置を有するプログラム実行装
置において、演算制御装置にプログラムカウンタ値の非
逐次的変化を検出する飛越検出手段と、この飛越検出手
段がプログラムカウンタ値の非逐次的変化を検出した場
合、このプログラムカウンタ値によって指定された現命
令がプログラムカウンタ値を非逐次的に変更する命令ま
たは割込みに対応した正当な飛越先にのみ置かれる飛越
先命令であるかを判定する正当性判定部を少なくとも有
する検証手段とを設けたものである。
実行を管理する演算制御装置を有するプログラム実行装
置において、演算制御装置にプログラムカウンタ値の非
逐次的変化を検出する飛越検出手段と、この飛越検出手
段がプログラムカウンタ値の非逐次的変化を検出した場
合、このプログラムカウンタ値によって指定された現命
令がプログラムカウンタ値を非逐次的に変更する命令ま
たは割込みに対応した正当な飛越先にのみ置かれる飛越
先命令であるかを判定する正当性判定部を少なくとも有
する検証手段とを設けたものである。
(作 用)
従って演算制御装置はまず飛越検出手段によりプログラ
ムカウンタ値を読み出してプログラムカウンタ値の変化
を検出する。この場合、プログラムカウンタ値が逐次的
に変化している場合には正常と判断し、プログラムカウ
ンタ値が何らかの原因(ジャンプ命令、サブルーチンコ
ール命令、サブルーチンリターン命令、割込み、割込み
リターン命令、外乱による誤動作等)により非逐次的に
変化した場合には、検証手段によりこのプログラムカウ
ンタ値にしたがって読み出された命令が飛越先命令であ
るか等を判定してプログラムカウンタの非逐次的変化が
正常かどうかを検証する。
ムカウンタ値を読み出してプログラムカウンタ値の変化
を検出する。この場合、プログラムカウンタ値が逐次的
に変化している場合には正常と判断し、プログラムカウ
ンタ値が何らかの原因(ジャンプ命令、サブルーチンコ
ール命令、サブルーチンリターン命令、割込み、割込み
リターン命令、外乱による誤動作等)により非逐次的に
変化した場合には、検証手段によりこのプログラムカウ
ンタ値にしたがって読み出された命令が飛越先命令であ
るか等を判定してプログラムカウンタの非逐次的変化が
正常かどうかを検証する。
(実施例)
以下、図面を参照しながら本発明を説明する。
第1図は本発明の一実施例を示す回路ブロック図である
。
。
このプログラム実行装置は、プログラムの記憶される主
記憶装置1と、このプログラムの実行を制御する演算側
m+装置2とよりその要部が構成され、ざらに演算制御
装置2にはプログラムカウンタ3、命令レジスタ4、プ
ログラムカウンタの非逐次的変化(飛越し)を検出し、
正常な飛越しかどうかを判定する飛越正当性判定回路5
、演算処理を行なう演算部6等が設けられている。
記憶装置1と、このプログラムの実行を制御する演算側
m+装置2とよりその要部が構成され、ざらに演算制御
装置2にはプログラムカウンタ3、命令レジスタ4、プ
ログラムカウンタの非逐次的変化(飛越し)を検出し、
正常な飛越しかどうかを判定する飛越正当性判定回路5
、演算処理を行なう演算部6等が設けられている。
なお飛越先であることを示す飛越先命令は、この実施例
においては通常のNOP命令が用いられている。
においては通常のNOP命令が用いられている。
次にこのプログラム実行装置の命令実行制御動作を説明
する。
する。
最初に飛越正当性判定回路5により、プログラムカウン
タ3の値が逐次的に変化しているか、飛越し的に変化し
ているかが判定される。
タ3の値が逐次的に変化しているか、飛越し的に変化し
ているかが判定される。
そしてプログラムカウンタ3の値が飛越し的に変化して
いる場合には、さらに飛越正当性判定回路5により命令
レジスタ4内に読み出された命令が、NOP命令である
かが判定され、NOP命令であれば正しい飛越しと判断
される。
いる場合には、さらに飛越正当性判定回路5により命令
レジスタ4内に読み出された命令が、NOP命令である
かが判定され、NOP命令であれば正しい飛越しと判断
される。
もし命令レジスタ4内の命令がNOP命令でなかった場
合でも、直前に読み出された命令が割込ルーチンからの
復帰を示す割込リターン命令(RETI)の時に限り飛
越正当性判定回路5により正しい飛越しと判断される。
合でも、直前に読み出された命令が割込ルーチンからの
復帰を示す割込リターン命令(RETI)の時に限り飛
越正当性判定回路5により正しい飛越しと判断される。
ざらに飛越正当性判定回路5により、正常な飛越しと判
断されなかった場合には、動作異常として異常検出信号
7が出力され、プログラム実行装置の暴走を未然に防止
することが可能となる。
断されなかった場合には、動作異常として異常検出信号
7が出力され、プログラム実行装置の暴走を未然に防止
することが可能となる。
なおこの実施例の命令実行制御以外にも、例えば割込リ
ターン命令を検出した時上記の飛越正当性判定回路5の
動作を解除することにより、上記の割込みリターン時の
状況に対処することもできる。
ターン命令を検出した時上記の飛越正当性判定回路5の
動作を解除することにより、上記の割込みリターン時の
状況に対処することもできる。
第2図はこのプログラム実行装置によって実行されるプ
ログラムの命令語記述方式を示す図でおる。
ログラムの命令語記述方式を示す図でおる。
このプログラムでは、条件付きジャンプ命令JCLOo
P;、サブルーチンコール命令CALL 5UBR:
、ジャンプ命令JMP 5TART;、サブルーチン
リターン命令RET;に対応し飛越先アドレスにそれぞ
れLOOP:NOP:、5UBR: NOP: 、5T
ART:NOP: 、NEXT:NOP:のようにNO
P命令が置かれ、また割込ルーチンの入口にも、lNT
R:NOP:のようにNOP命令が置かれている。
P;、サブルーチンコール命令CALL 5UBR:
、ジャンプ命令JMP 5TART;、サブルーチン
リターン命令RET;に対応し飛越先アドレスにそれぞ
れLOOP:NOP:、5UBR: NOP: 、5T
ART:NOP: 、NEXT:NOP:のようにNO
P命令が置かれ、また割込ルーチンの入口にも、lNT
R:NOP:のようにNOP命令が置かれている。
このように各飛越先アドレスに置かれたNOP命令は、
マニュアルで書込むことも、コンパイラで自動生成する
こともできる。
マニュアルで書込むことも、コンパイラで自動生成する
こともできる。
第3図はこの実施例の飛越正当性判定回路5の動作を説
明するフローチャート図である。
明するフローチャート図である。
まず飛越正当性判定回路5は前サイクルのプログラムカ
ウンタ値PC(n−1> 、および命令レジスタ値IR
(n−1>と、現サイクルのプログラム力「クンタ値P
C(n>と命令レジスタImIR(n>とを保存する(
ステップ301〜304)。
ウンタ値PC(n−1> 、および命令レジスタ値IR
(n−1>と、現サイクルのプログラム力「クンタ値P
C(n>と命令レジスタImIR(n>とを保存する(
ステップ301〜304)。
次に前サイクルのプログラムカウンタ値PC(n−1)
と現サイクルのプログラムカウンタ値PC(n>とを比
較してプログラムカウンタ値が逐次的に変化しているか
、飛越し的に変化しているかを判定する(ステップ30
5)。
と現サイクルのプログラムカウンタ値PC(n>とを比
較してプログラムカウンタ値が逐次的に変化しているか
、飛越し的に変化しているかを判定する(ステップ30
5)。
このとき逐次的に変化している場合には、正常と判断し
くステップ306) 、飛越し的に変化している場合に
は、現サイクルの命令レジスタ値■R(n>がNOP命
令でおるかどうかを判定する(ステップ307)。
くステップ306) 、飛越し的に変化している場合に
は、現サイクルの命令レジスタ値■R(n>がNOP命
令でおるかどうかを判定する(ステップ307)。
このとき命令レジスタ値IR(n>がNOP命令であれ
ば正常と判断しくステップ308)、さらに命令レジス
タ値IR(n>がNOP命令でなければ前サイクルの命
令レジスタ値IR(n−1)が割込リターン命令である
かどうかを判定する(ステップ309)。
ば正常と判断しくステップ308)、さらに命令レジス
タ値IR(n>がNOP命令でなければ前サイクルの命
令レジスタ値IR(n−1)が割込リターン命令である
かどうかを判定する(ステップ309)。
このときこの命令レジスタ値IR(n−1>が割込リタ
ーン命令であれば、正常と判断しくステップ310)、
そうでなければ異常を検出したものと判断し、異常検出
信号を出力する(ステップ311)。
ーン命令であれば、正常と判断しくステップ310)、
そうでなければ異常を検出したものと判断し、異常検出
信号を出力する(ステップ311)。
なおこの飛越正当性判定回路5は、ハードウェアロジッ
クまたはマイクロプログラム制御により実現され、演算
制御装置の演算部6等の命令実行に並行して動作するも
のである。
クまたはマイクロプログラム制御により実現され、演算
制御装置の演算部6等の命令実行に並行して動作するも
のである。
また飛越先命令は、たとえば飛越先であることを示す加
算命令と飛越先でないことを示す加算命令というように
、各命令ごとに飛越先命令を別に設けることもできる。
算命令と飛越先でないことを示す加算命令というように
、各命令ごとに飛越先命令を別に設けることもできる。
[発明の効果]
以上説明したように本発明によれば、プログラム実行装
置においてプログラムカウンタの非逐次的変化を検出し
、この非逐次的変化が正当かどうl かを検証するよ
うにしたので、外乱によりプログラムカウンタの内容が
書換えられてもプログラム実行装置の暴走等を回避する
ことができ、プログラム実行装置の信頼性を向上させる
ことができる。
置においてプログラムカウンタの非逐次的変化を検出し
、この非逐次的変化が正当かどうl かを検証するよ
うにしたので、外乱によりプログラムカウンタの内容が
書換えられてもプログラム実行装置の暴走等を回避する
ことができ、プログラム実行装置の信頼性を向上させる
ことができる。
第1図は本発明の一実施例の回路ブロック図、第2図は
同実施例によって実行されるプログラムの命令語記述方
式を示す図、第3図は同実施例の飛越正当性判定回路の
動作を説明するフローチャート図である。 2・・・・・・・・・演算制御装置 3・・・・・・・・・プログラムカウンタ5・・・・・
・・・・飛越正当性判定回路出願人 株式会
社 東芝 代理人 弁理士 須 山 佐 − も2図
同実施例によって実行されるプログラムの命令語記述方
式を示す図、第3図は同実施例の飛越正当性判定回路の
動作を説明するフローチャート図である。 2・・・・・・・・・演算制御装置 3・・・・・・・・・プログラムカウンタ5・・・・・
・・・・飛越正当性判定回路出願人 株式会
社 東芝 代理人 弁理士 須 山 佐 − も2図
Claims (2)
- (1)プログラムカウンタを制御してプログラムの実行
を管理する演算制御装置を有するプログラム実行装置に
おいて、前記演算制御装置に前記プログラムカウンタ値
の非逐次的変化を検出する飛越検出手段と、この飛越検
出手段がプログラムカウンタ値の非逐次的変化を検出し
た場合このプログラムカウンタの指定する現命令がプロ
グラムカウンタ値を非逐次的に変更する命令または割込
みに対応した正当な飛越先にのみ置かれる飛越先命令で
あるかを判定する正当性判定部を少なくとも有する検証
手段とを設けたことを特徴とするプログラム実行装置。 - (2)検証手段は、プログラムカウンタ値が非逐次的に
変更され、かつプログラムカウンタの指定する現命令が
飛越先命令でない場合、直前のプログラムカウンタ値に
よって指定された前命令が割込みリターン命令であるか
を判定する割込み正当化部を有する特許請求の範囲第1
項記載のプログラム実行装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61025386A JPS62182934A (ja) | 1986-02-07 | 1986-02-07 | プログラム実行装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61025386A JPS62182934A (ja) | 1986-02-07 | 1986-02-07 | プログラム実行装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS62182934A true JPS62182934A (ja) | 1987-08-11 |
Family
ID=12164435
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP61025386A Pending JPS62182934A (ja) | 1986-02-07 | 1986-02-07 | プログラム実行装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS62182934A (ja) |
-
1986
- 1986-02-07 JP JP61025386A patent/JPS62182934A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5109381A (en) | Apparatus and method for detecting errors in a pipeline data processor | |
| US20050028036A1 (en) | Program debug apparatus, program debug method and program | |
| JPH02202642A (ja) | プログラム動作監視装置 | |
| JPS62182934A (ja) | プログラム実行装置 | |
| US6990569B2 (en) | Handling problematic events in a data processing apparatus | |
| JPH05216721A (ja) | 電子計算機 | |
| JPH0225937A (ja) | Cpu暴走検出方式 | |
| JPH05257815A (ja) | 中央処理装置 | |
| JP2531791B2 (ja) | フエッチアクセス時の異常処理方法 | |
| JPH0477826A (ja) | マイクロプロセツサ | |
| JP3616588B2 (ja) | マイクロプログラムチェックシステム | |
| JPH09319621A (ja) | プログラム暴走検出回路および検出方法と検出用ソフト ウエアの開発装置およびそのソフトウエア生成方法 | |
| JP2786215B2 (ja) | 再開処理制御方式 | |
| JP2978658B2 (ja) | プログラム開発支援装置 | |
| JPS6118045A (ja) | プログラムの暴走検出方式 | |
| JPH04235638A (ja) | プリフェッチ機能付マイクロプロセッサ | |
| JPH03233732A (ja) | 電子計算機 | |
| JP2503210B2 (ja) | マイクロプログラム制御装置 | |
| JPS62254236A (ja) | 例外事象検出装置 | |
| JP3169879B2 (ja) | マイクロプロセッサ暴走検出方式 | |
| JPH0764822A (ja) | マイクロコンピュータ | |
| JP2021144426A (ja) | プロセッサ及びエラー検出方法 | |
| JPH03296146A (ja) | プログラム開発支援装置 | |
| JPH06222804A (ja) | ディジタル制御装置 | |
| JPH07182251A (ja) | マイクロプロセッサ |