JPS61170832A - プログラム実行シ−ケンス異常検出方式 - Google Patents

プログラム実行シ−ケンス異常検出方式

Info

Publication number
JPS61170832A
JPS61170832A JP60011612A JP1161285A JPS61170832A JP S61170832 A JPS61170832 A JP S61170832A JP 60011612 A JP60011612 A JP 60011612A JP 1161285 A JP1161285 A JP 1161285A JP S61170832 A JPS61170832 A JP S61170832A
Authority
JP
Japan
Prior art keywords
instruction
value
counter
branch
operand
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
JP60011612A
Other languages
English (en)
Inventor
Tadashi Kaneko
正 金古
Toru Otsu
徹 大津
Mikio Uehara
幹生 上原
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 JP60011612A priority Critical patent/JPS61170832A/ja
Publication of JPS61170832A publication Critical patent/JPS61170832A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、逐次処理型計算機において、ノイズやソフト
ウェアのバグにより意図したプログラム・シーケンス通
りの処理が実行されない場合、これを検出できるように
したプログラム実行シーケンス異常検出方式に関するも
のである。
〔従来技術と問題点〕
逐次処理型計算機では、一般にプログラムを先頭から順
番に実行して行く。例外としてジャンプ命令やサブルー
チン・コール命令、リターン命令等があり、これらの命
令を使用して命令を飛ばしたり、繰り返して同じルーチ
ンを実行したりすることが出来る。成るプログラムの実
行シーケンスがノイズやソフトウェアのバグにより狂っ
た場合、中央処理装置の暴走やプログラムの実行不良が
発生する。これを検出できればそこで実行をストップす
る等の対策を講することが出来るが、検出できないと重
大な障害に繋がることもある。また、このような異常が
常に起きれば発見や調査がし易いが、再現性がないため
(例えばノイズが原因で起こる場合)や特別の条件が重
なったときに起こる場合(稀なソフトウェア・バグ)な
どは発見が非常に困難である。従来、このような異常を
検出する手段としてトレース機能等があるが、中央処理
装置自身では実行シーケンスが異常であるか否かを判断
できないので、再現性の少ない異常動作に対しては十分
機能していなかった。
〔発明の目的〕
本発明は、上記の考察に基づくものであって、中央処理
装置自身で実行シーケンスの異常を検出出来るようにし
たプログラム実行シーケンス異常検出方式を提供するこ
とを目的としている。
〔目的を達成するための手段〕
そしてそのため本発明のプログラム実行シーケンス異常
検出方式は、逐次処理型計算機におけるプログラム実行
シーケンス異常検出方式であって、命令が実行される毎
に単位量ずつその値が更新される命令カウンタを有する
と共に、メモリの中に、命令数が記入されたオペランド
を持つ分岐命令及び命令数が記入されたオペランドを持
つ合流命令を有するプログラムを格納し、且つ中央処理
装置は、上記分岐命令をフェッチした時、上記命令カウ
ンタの値と当該分岐命令のオペランドの値とを比較し、
両者が一致していたならば上記命令カウンタをクリアし
次いで分岐処理を行い、命令カウンタの値とオペランド
の値が一致しない場合には異常処理を行うように構成さ
れ、上記合流命令をフエ・チした時・上記命令カラ′り
の値が0でな     lければ、上記命令カウンタの
値と合流命令のオペランドの値を比較し、両者が一致し
ていれば上記命令カウンタをクリアして次の命令を実行
し、両者が一致していなければ異常処理を行い、上記命
令カウンタの値が0であれば次の命令を実行するように
構成されていることを特徴とするものである。
〔発明の実施例〕
以下、本発明を図面を参照しつつ説明する。まず、プロ
グラムをシーケンシャルに実行される部分、ジャンプ命
令、サブルーチン・コール命令及びリターン命令に分け
る。第1図及び第2図はシーケンシャルに実行されるプ
ログラム部分の実行異常検出方式を説明する図である。
シーケンシャルに実行される部分の異常の原因は、プロ
グラム・カウンタの誤動作が考えられる。そこで、シー
ケンシャルに実行される部分の命令数と実際に実行され
た命令の数とを比較し、実行シーケンスの異常を検出す
る。これを実現するために、命令カウンタを設け、シー
ケンシャルに実行される部分の先頭に“開始命令”を、
シーケンシャルに実行される部分の後ろに“終了命令”
を配置する。終了命令には、オペランドとしてシーケン
シャルに実行される部分の命令の数を入れておく。中央
処理装置は開始命令をフェッチすると命令カウンタをク
リアし、それから順次1命令を実行する度に命令カウン
タを+1し、終了命令をフェッチするど、命令カウンタ
の値とオペランドの値を比較する。一致していなければ
、実行シーケンスの異常であると判断し、異常処理を行
う。第1図はシーケンシャルに実行される部分が正常に
実行された場合を示す図である。命令AないしFがシー
ケンシャルに実行される部分、であり、命令Aの前に開
始命令が、命令Fの後ろに終了命令が配置されている。
開始命令によって、命令カウンタが0クリアされ、以下
、命令A、B、C・・・が実行される度に命令カウンタ
の値は+1される。終了命令をフェッチすると、中央処
理装置は、命令カウンタの値と終了命令のオペランドの
値を比較する。この場合は、両者が一致するので、命令
Fの次の命令が直ちに実行される。第2図(al及び(
b)はシーケンシャルに実行される部分が正常に実行さ
れなかった場合を示す図である。第2図+8)は命令が
A、 B。
C・・・、Fと実行されるべき所、命令カウンタのエラ
ーでA、B、C,Fと実行された場合を示す。
この場合には、終了命令のオペランドの値と命令カウン
タの値とは一致しない。第2図(b)は、命令がA、B
、C・・・、Fと実行されるべき所、A、B。
Y、zと実行された場合を示す。この場合も終了命令の
オペランドの値と命令カウンタの値は一致しない。
第3図は分岐命令(ジャンプ、サブルーチン・コール、
リターン)の実行シーケンスの異常検出方式を説明する
図である0分岐命令の実行シーケンス異常には次のよう
な原因が考えられる。
+8>  ハードウェアの誤動作や番地算出のソフトウ
ェア・バグ等による分岐先番地の異常。
(bl  本来分岐命令でない命令の分岐命令への化け
ジャンプ命令の実行シーケンス異常を検出するために、
分岐は必ず開始命令へ行き、且つ分岐によって合流され
るプログラムでは合流される番地の開始命令の直前に終
了命令を置く。こうすることによって開始命令以外に分
岐した場合、実行シーケンスの異常が検出できる。さら
に実行シーケンス異常によって分岐命令以外から開始命
令に実行が移ってしまった場合、これを検出するために
開始命令をフェッチした時の命令カウンタの値が“0”
であれば異常なし、′0”以外であれば実行シーケンス
異常であると判断する機能を開始命令に付加する。即ち
、分岐が終了命令−分岐命令−開始命令と正常に行われ
た場合、開始命令をフェッチした時の命令カウンタの値
は“0”になっている筈である。但し、終了命令、分岐
命令、開始命令はカウントしない。第3図の実線の矢印
は正常ジャンプを示し、点線の矢印は異常ジャンプを示
す。
第4図(a)はサブルーチン・コール命令及びリターン
命令の異常検出方式を説明する図、第4図中)は分岐命
令以外から開始命令に分岐した場合を説明する図である
上述した実行シーケンス異常検出命令(開始台    
  I令、終了命令、分岐命令)は単機能のものである
が、分岐命令でシーケンシャルな実行部分は打ち切りに
なり、分岐する場合は分岐先で、分岐しない場合は分岐
命令の次から新たにシーケンシャルな実行部分が開始さ
れると考えられるので、分岐命令に終了命令、開始命令
の機能を持たせることが出来る。また、分岐先では合流
される方のプログラムは、そこでシーケンシャルな実行
部分が打ち切りになり、分岐先の次から新たにシーケン
シャルな実行部分が開始されると考えられるので、分岐
先の終了命令、開始命令の機能を1つにして合流命令と
することが出来る。
このように考えると、本発明を実現するための最低必要
な構成は、下記のようになる。
(a)  1命令を実行する毎に+1される命令カウン
タを有すること。
山) リセットにより命令カウンタをクリアする機能を
有すること。
(C1第1オペランドとして直前に存在するシーケンシ
ャルな実行部分に含まれる命令の数を持ち、命令カウン
タの値と第1オペランドの値を比較して一致したならば
、命令カウンタをクリアし且つ分岐条件が満足されたな
らば飛び先番地へ飛び、分岐条件が満足されなければ次
の命令を実行し、第1オペランドの値と命令カウンタの
値が一致しなければ、異常処理を行う分岐命令を有する
こと。
分岐命令とはジャンプ命令、サブルーチン・コール命令
、リターン命令を含む概念である。
(d)  オペランドとして直前に存在するシーケンシ
ャルな実行部分に含まれる命令の数を持ち、命令カウン
タの値が“0”であれば何もしないで次の番地に進み、
“O”でなければ命令カウンタの値とオペランドの値を
比較し、一致したならば、命令カウンタをクリアして次
の番地へ進み、一致しなければ、異常処理を行う“合流
命令”を有すること。
第5図は上記のような本発明の分岐命令及び合流命令を
持つプログラムの1例を示す図である。
第5図において、命令人ないしFはシーケンシャルに実
行される部分であり、命令Fの後に条件付分岐命令が配
置されている。この条件付分岐命令の第1オペランドに
は“6″が記入されている。
命令Gないし■もシーケンシャルに実行される部分であ
る。命令Iの後に条件付分岐命令が配置されている。こ
の条件付分岐命令の後に命令Jが配置され、命令Jの後
にオペランドに“1″が記入された合流命令が配置され
、この後に命令にないしNが配置される。命令にないし
Nはシーケンシャルに実行される部分である。命令Nの
後にオペランドに4″が記入された合流命令が配置され
、この合流命令の後に命令OとPが配置され、命令Pの
後に第1オペランドが“2”の条件付分岐命令が配置さ
れ、この条件付分岐命令の後に命令QないしSが配置さ
れる。
命令AないしFが実行されると、命令カウンタの値は“
6”となり、命令Fの次の分岐命令が実行されると命令
カウンタの値とこの分岐命令の第1オペランドの値が比
較され、この場合は一致するので、命令カウンタの値は
0クリアされ、分岐条件が成立するか否かが調べられる
。この場合は分岐条件は成立しないので命令Gが実行さ
れ、続いて命令H,Iが実行される。命令■が実行され
ると、命令カウンタの値は“3”となる。命令Iの後の
条件付分岐命令が実行されると、命令カウンタの値とこ
の分岐命令の第1オペランドの値が比較される。この場
合も両者は一致するので、命令カウンタは0クリアされ
、分岐条件が成立するか否かが調べられる。この場合は
分岐条件が成立するので、命令Nの次の合流命令がフェ
ッチされる。この場合、命令カウンタの値は“O”であ
るので、この合流命令のオペランドの値と命令カウンタ
の値との比較は行われない。続いて命令O1Pが実行さ
れる。命令Pが実行されると、命令カウンタの値は“2
”となる。命令Pの次に分岐命令が実行されるが、この
ときの命令カウンタの値と分岐命令の第1オペランドの
値は一致するので命令カウンタは0クリアされ、分岐条
件が成立するか否かが調べられる。分岐条件が成立する
と、命令Nの次の合流命令に飛び、以下、同様な処理h
<HD) iL’t1.5>@:l’Fh<tcfLL
ftイht 4 h、   −命令Q、R,Sが実行さ
れる。
第6図は本発明を実施するための中央処理装置の1実施
例構成を示す図である。第6図において、1は中央処理
装置、2は制御部、3はプログラム・力りンタ、4はア
ドレス・レジスタ、5は命令実行部、6はデータ・レジ
スタ、7は命令解析部、8は命令レジスタ、9は命令カ
ウンタ、lOは比較部をそれぞれ示している。命令カウ
ンタ9及び比較部10が本発明を実現するために追加さ
れた部分である。リセット時、制御部2の指令によって
命令カウンタ9をクリアする。中央処理装置1が命令レ
ジスタ8に命令をフェッチすると、命令解析部7により
命令を解析して命令実行部5に決められた動作をするよ
うに指示する。この時、命令が分岐命令、合流命令以外
であれば命令カウンタ9の値を1つ増加する動作を行う
。命令が分岐命令であれば命令レジスタ8にオペランド
を読み込み、命令カウンタ9の値と命令レジスタ8の値
を比較部IO・で比較し、一致すれば命令カウンタ9を
クリアし、分岐処理を行う。一致しない場合は異常を制
御部2に通知し、制御部2は異常処理を行う。
命令が合流命令であれば、まず命令カウンタ9の値が“
0”であるか否かを比較部10で検査し、“0”であれ
ば次の命令の実行に移る。もし、“0”でなければ、さ
らに合流命令のオペランドを命令レジスタ8に読み込み
、命令カウンタ9の値と命令レジスタ8の値を比較部1
0で比較し、一致すれば命令カウンタ、9をクリアして
次の命令の実行に移る。一致しない場合は、異常を制御
部2に通知し、制御部2は異常処理を行う。
〔発明の効果〕
以上の説明から明らかなように、本発明によれは、プロ
グラムの実行シーケンスの異常を中央処理装置自身で検
出することが出来る。
【図面の簡単な説明】
第1図及び第2図はシーケンシャルに実行されるプログ
ラム部分の実行異常検出方式を説明する図、第3図はジ
ャンプ命令の実行シーケンスの異常検出方式を説明する
図、第4図はサブルーチン・コール命令及びリターン命
令の異常検出方式を説明する図、第5図は本発明の分岐
命令及び合流命令を持つプログラムの1例を示す図、第
6図は本発明を実施するための中央処理装置の1実施例
構成を示す図である。 ■・・・中央処理装置、2・・・制御部、3・・・プロ
グラム・カウンタ、4・・・アドレス・レジスタ、5・
・・命令実行部、6・・・データ・レジスタ、7・・・
命令解析部、8・・・命令レジスタ、9・・・命令カウ
ンタ、10・・・比較部。

Claims (1)

    【特許請求の範囲】
  1. 逐次処理型計算機におけるプログラム実行シーケンス異
    常検出方式であって、命令が実行される毎に単位量ずつ
    その値が更新される命令カウンタを有すると共に、メモ
    リの中に、命令数が記入されたオペランドを持つ分岐命
    令及び命令数が記入されたオペランドを持つ合流命令を
    有するプログラムを格納し、且つ中央処理装置は、上記
    分岐命令をフェッチした時、上記命令カウンタの値と当
    該分岐命令のオペランドの値とを比較し、両者が一致し
    ていたならば上記命令カウンタをクリアし次いで分岐処
    理を行い、命令カウンタの値とオペランドの値が一致し
    ない場合には異常処理を行うように構成され、上記合流
    命令をフェッチした時、上記命令カウンタの値が0でな
    ければ、上記命令カウンタの値と合流命令のオペランド
    の値を比較し、両者が一致していれば上記命令カウンタ
    をクリアして次の命令を実行し、両者が一致していなけ
    れば異常処理を行い、上記命令カウンタの値が0であれ
    ば次の命令を実行するように構成されていることを特徴
    とするプログラム実行シーケンス異常検出方式。
JP60011612A 1985-01-24 1985-01-24 プログラム実行シ−ケンス異常検出方式 Pending JPS61170832A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP60011612A JPS61170832A (ja) 1985-01-24 1985-01-24 プログラム実行シ−ケンス異常検出方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60011612A JPS61170832A (ja) 1985-01-24 1985-01-24 プログラム実行シ−ケンス異常検出方式

Publications (1)

Publication Number Publication Date
JPS61170832A true JPS61170832A (ja) 1986-08-01

Family

ID=11782731

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60011612A Pending JPS61170832A (ja) 1985-01-24 1985-01-24 プログラム実行シ−ケンス異常検出方式

Country Status (1)

Country Link
JP (1) JPS61170832A (ja)

Similar Documents

Publication Publication Date Title
US5379301A (en) Microprocessor for debugging programs
US5109381A (en) Apparatus and method for detecting errors in a pipeline data processor
US7266844B2 (en) Heuristic detection of polymorphic computer viruses based on redundancy in viral code
US20100293314A1 (en) Computer system and method of controlling computer system
US10747647B2 (en) Method, apparatus and system for diagnosing a processor executing a stream of instructions
US11152076B2 (en) Apparatus and method for executing debug instructions
US5283891A (en) Error information saving apparatus of computer
US20050050524A1 (en) Generating software test information
EP0417916B1 (en) Procedure state descriptor system for digital data processors
JP2531791B2 (ja) フエッチアクセス時の異常処理方法
JPH05216721A (ja) 電子計算機
KR102461532B1 (ko) 프로그램 제어 흐름 그래프 재건 시스템 및 방법
EP0525672A2 (en) Microprocessor with program tracing
JPH0540668A (ja) プログラム暴走防止方式
JP2735523B2 (ja) プロシージャ・ステップ処理方法
JPH0287237A (ja) Execute命令制御方式
JPS5875256A (ja) 実行命令遂行状態のモニタ方式
JP2786215B2 (ja) 再開処理制御方式
JP3012618B1 (ja) 被検査プログラムのデバグ方法とそのデバグ方式
JPH11242613A (ja) マイクロプロセッサ
JPH03230227A (ja) エラー検出方法および装置
JPS63165931A (ja) 不連続命令フエツチアドレス情報記憶方式
JPH01226031A (ja) 情報処理装置のパイプライン制御方式
JPS62182934A (ja) プログラム実行装置
JPH01166140A (ja) 情報処理装置診断方式