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

プログラム暴走検出方法

Info

Publication number
JPS59154557A
JPS59154557A JP58029720A JP2972083A JPS59154557A JP S59154557 A JPS59154557 A JP S59154557A JP 58029720 A JP58029720 A JP 58029720A JP 2972083 A JP2972083 A JP 2972083A JP S59154557 A JPS59154557 A JP S59154557A
Authority
JP
Japan
Prior art keywords
program
address
executed
return
counter
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.)
Granted
Application number
JP58029720A
Other languages
English (en)
Other versions
JPH0610793B2 (ja
Inventor
Shoji Tashiro
田代 章二
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP58029720A priority Critical patent/JPH0610793B2/ja
Publication of JPS59154557A publication Critical patent/JPS59154557A/ja
Publication of JPH0610793B2 publication Critical patent/JPH0610793B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 〔発明の技術分野〕 本発明ケよす゛ブルーヂンフログラl、を含む各種プロ
グラムを実行する情報処理装置に好適するプログラム暴
走検出方式に関する。
〔発明の技術的背景とその問題点〕
この種の情報処理装置では、ザブルーチンプログラムを
呼ぶ場合、CALL文(CAIJ、命令)が用いられる
のが一般的である。第1図はメインプログラムPl中の
CALL文でサブルーチンプログラムP2を呼び、当該
プログラムP2中のCALL 文でサブルーチングログ
ラムP3を呼び、当該プログラムP3中のCALL文で
サブルーチングログラムP4を呼び、当該プログラムP
4中のCALL 文でサブルーチンプログラムP5を呼
ぶプログラム例を示したものである。周知のようにCA
LL文の実行時にはその戻υ番地が戻り先スタックに記
憶(退避)される。この戻り先スタックは通常メモリで
構成され、カウンタによりアドレスが指定される。第2
図(a)〜(e)は戻り先スタックの内容とカウンタの
示す−アビ1/スとを第1図に対応させて示したもので
ある。図中、11は戻り先スタック、12はカウンタで
ある。
この例では、戻り先スタック11は22(=4)ワード
のメモリであり、カウンタI2ば2ビツトの2進カウン
タである。第2図(a)はメインノログラムPI中のC
ALL文を実行する前の戻り先スタック11およびカウ
ンタ12の状態を示すもので、戻り先スタック11には
有効々戻り番地は記憶さ一!1ておらず、カウンタ12
は戻り先スタ、り11のアドレス″00”を指足してい
る。しかしてメインプログラムPIの番地AでCALL
文が実行されると、戻り先スタック11のアトlメス”
 OO“には戻り番地A+1が記憶(退避)され、カウ
ンタ12は+1さhる。同様にしてサブルーチンプログ
ラムP2゜P、?、P4が順に呼び出されて最後にザブ
ルーチングログラムP5が呼び出された時点では、戻り
先スタック11およびカウンタ12は第2図(、)に示
さえ1−る如き状態となる。すなわち、戻り先スタック
11のアドレス“00″にはP2からPlへの戻シ番地
A+1が、同じくアドレス“’01’にはP3がらP2
への戻り番地B+1が、同じくアドレス″10″にはP
lからP3への戻り番地C+1が、同じくアドレス”1
1”にはP5からPlへの戻り番地D+1がそれぞれ記
憶されている。丑だ、カウンタ12はアト1ノス゛00
”を示している。
そして、ザブルーチングログラムP5が走行シ、−やが
てRET (RETURN )命令が実行されるとカウ
ンタ12が−1され、尚該カウンタ12の示す戻シ先ス
タ、り11のアドレス゛11”に記憶されている戻り番
地I)+1へ実行が移る。これによりザブルーチングロ
グラム、Plの番地I)11以降の命令が逐次実行され
、RET命令によりサブルーチンプログラムP3の届池
C1−1に実行カ戻る。以下、同様にザブルーチングロ
グラムP3でRET命令が実行されることによりサブル
ーチンプログラムP2の番地B −t 1に実行が戻り
、当該P2でRET命令が実行されることによりメイン
ノログラムP1の番地A←1に実行が戻る。
ところが、このような構成では、第3図に示されるよう
に例えばメイン!「1グラノ、P6の番地Fから何らか
の原因で(番地F+−1に実行が移らずに)サブルーチ
ンプログラムP7の番地Gへ実行が移った場合、当該P
7のRET命令が実行されることになり、次のような不
都合が生じる。すなわちPlのRET命令が実行される
と、カウンタ(12)が−1され、当該カウンタ(12
)の示す戻り先スタック(11)のアドレス1′11”
に(Uき込まれている番地に実行が移るため、プログラ
ノ・が暴走してし捷うことである。そこで従来は、カウ
ンタ(12)の内容が’ (10’ )8合に−1しよ
うとするとエラ、−になるようにしてノログラノ・の暴
走を防いでいた。[7がし、この方式には次に示す2つ
の欠点があるため問題でちった。
■ ハードウェア溺が増大し、高価格となる。
■ CAIル文を何回か重ねて使用し2て第2図(、)
に示さね、る如き状態になると、RET命令を実行した
ときにエラーとなってし、まりので、戻り先スタ、りを
mワードのメモリで構成した場合でもCALL文tよr
n−1回(第2図の例でしょ3N)寸でしか重複できな
い。
〔発明の目的〕
本発明はト記事情に鑑みてなされたものでその目的は1
.FIらかの原因で誤ってプログラムが分岐し、RET
命令が余分に実行された場合に、その旨をバー ドウエ
アを迫加することなく効率よく検出することができ、も
ってプログラムの暴走が防止できるプログラム暴走検出
方式を提供することにある。
〔発明の植替〕
本発明は、プログラムの任意のチ、r、、クアI?イン
ドで1つ以上のCALL命令を実行し、戻り先スタック
に所定のエラー処理ルー=ブンヘジャンプさせるべく7
0ログラムされた番地を11き込んでおくことにより、
その後圧実行されるノログラムの途中で何らかの原因に
よゆ成るサーブルーチンプログラムの成る番地に誤って
実行が移り、RET命令が実行された際に、l−記エラ
ー処理ルーチンに飛ぶようにしたものである。
〔発明の実施例〕
μ丁、本発明の一実施例を1面を参照して説明する。な
お、第1図と同一部分には同−杓号をイー1して詳細な
説明を省略する。第4図は本発明一実施例で適用さノす
るプログラム構成を示すもので、P8はゾログラムの覗
るチf、 7クポイント(例えば電源をオンしまたとき
、割込み復帰のトキ、サブルーチンプログラムのRET
 命令を実行してメインプログラムに復帰したときなど
)で実行されるプログラムである。このプログラムP8
は、図示ぎぬ主メモリの番地Iから始する領域に格納さ
れており、番地Iに実行ずべきメインプログラム9を呼
び出すCALL文を、番地1+1以降にエラー処理ルー
ヂンを有している。
このエラー処理ルーチンはエラー情報を出力してプログ
ラム実行を停止するようにプログラノ・された舵のであ
る。メインゾログラムP9はCA LL文を含んでおり
、当該CAT、L文が実行されることによりザブルーチ
ンプログラムPIOが呼び出されるようになっている。
今、ゾログラムの成るヂエ、クポイントでプログラムP
8のCALL文が実行されたものとする。
これにより、第2図(a)に示される如き状態にあっノ
こ戻り先スタック1ノおよびカウンタ12の内容は第5
図に示される状態となる。ずなわち、カウンタ12の示
す戻り先スタック11のアドレス゛OO”に戻り番地■
→−1が記憶(退避)され、カウンタ12は→−1され
てその内容が” f)l ”となる。そして、メインプ
ログラムP9が呼び出され、当該P9が実行される。
この状態で、何らかの原因により第6図に示されるよう
にメインプログラムP9の番地Jから誤ってサブルーチ
ンプログラムP10の番地Kに実行が移ったものとする
。やがてザブルーチンプログラムP1θ中のRET命令
が実行さhると、カウンタ12が−1され、当庄亥カウ
ンタ12の示す戻り先スタ、り11のアドレス″OO″
に記憶されている戻り番地I→−1が取り出される。し
かしてプログラムP8の番地1+1以降のエラー処理ル
ーチンが実行され、これによりエラー情報が出力されプ
ログラム実行が停t’r、される。
次に本発明の他の実施例を第7図乃至第9図を参照[7
て説明する。第7図はプログラム構成例を示すもので、
pHは前述したエラー処理ルーチンと同様のデログラノ
、である。このプログラムpHは図示せぬ主メモリの番
地Xから始まる領域に格納されている。P12〜PI5
はゾログラムの成るヂエックポイントで実行されるゾロ
グラム、PI3はメインプログラム、PI7はサブルー
チンプログラムである。各プログラムP12〜p16は
それぞれプログラムP1.7〜pi 7f呼び出すだめ
のCALL文を含んでいる。
4実施例では、プログラムの成るチェック7Ieインド
でまず)0ログラムP12の番地POCALL文が実行
され、当該CALL文によりプログラムP13が呼び出
される。そして、プログラム構成例?の番地QOCAL
L文が実行されることによりゾログラ、!、 P 14
が呼び出される。以下、同様にプログラムP14の番地
RのCALL文が実行されることによりゾログラムp1
5が呼び出され、続いて当該プログラムPI5の番地S
のCALT、文が実行されることによりメインゾログラ
ムP16が呼び出される。第8図はこの時点における戻
り先スタック11およびカウンタ12の状態を示すもの
で、戻り先スタック1ノのアドレス″’00”、”01
”、”10”、 ” 11 ”  にはそれぞれ戻り番
地P+1.、Q+1 、R+1.、S+1が記憶(退避
)されている。図示せぬ主メモリのこれらの番地P+1
 、 Q+1 、 lN−1、S+4には、第7図から
明らかなようにいずれも番地XへのGOTO命令、すな
わち!ログラムPilへのGO’r(1命令が害き込1
れている。ま/こ、カウンタ12の内容は”!10 ”
となっている。
このような状態で、何らかの原因により第9図に示され
るようにメインプログラムI)16の番地Yから誤って
サブルーヂン、7″1Jグラノ・PI3の番地Zに実行
が移ったものとする。やがて−リプルーチンフ0ログラ
ム中のRF’:T命令が実行さノすると、カウンタ12
が−1され、当該カウンタ12の示す戻り先スタック1
1のアドレスパ11”にff1−目意されている戻り番
地s +1が取り出きれる。主メモリのS −+−1番
地には番地XへのGo TO’Q令が格納されており、
肖該GOTO@令が実i丁さil、ることにょ9エラー
処理ルーチンであるノ0ログラノ、pHに実行が移る。
この結果エラー情1弔が出力きれプログラム実行が停止
される。
t/こ、本実施例では、上述の貌明刀)ら明らかなよう
にプログラムP12〜P15の各CALL文の実行によ
シ戻シ先スタック11の各アドレスに戻り番地P+1 
、Q+1.R+1.S+1を記憶しておき、RET命令
によりいずれが読み出されても番地XへのGOTo命令
が実行されるようになっている・しだがって、(i’J
らかの原因でカウンタノ2が故障して正常な動作をしな
くなった場合でも、余分なRET命令が実行されると番
地XへのGOTO命令によりグログラムP11VC実行
が移る。
ところで」二連の例では、サブルーチンP17から別の
カブルーチンを呼ぶようにはなっていないが、第1図の
ように成るザブルーチンが別ノサフルーチンを呼び、当
該別のザブルーチンが更に別のサブルーチンを呼ぶ場合
などにおいても、プログラムP12〜P 15の各CA
LL文の実行により戻り先スタック12に記憶された戻
り番地(P+I 、Q+1. R+1.S+1 )の全
てが、その後のCALL文の重複により新たな戻り番地
に書き替えられない限、り、RET命令が余分に実行さ
れたことが検出できる。この場合、CALL文の重複が
3回までのプログラムに対しては、RET命令が余分に
実行されたことが検出でき、プログラムの暴走を防止で
きる。また、本実施例では、CALL文の重複が4回以
上ある場合にtよ、プログラムの暴走の防止を図ること
は困難であるが、従来方式と異ってCALL文の重複回
数が制限されることはない。
なお、前記実施例では、戻υ先スタ、りが4ワードのメ
モリで構成されているものとしだがこれに限るものでは
ない。壕だ、前記実施例ではN  I CALL命令、
或いは戻り先スタックのワード数(′アドレス数)と等
しい回数のCALL命令によシ、戻シ先スタックの1ア
ドレス位置、或いは全アドレス位1aにエラー処理ルー
チンへジャンプさせるべくプログラムさiまた番地を岩
き込むものとして説明したが、戻り先スタックのワード
数(アドレス数)をm(mは1以−J=の整ドレス位1
終に、上述の番地を書き込むようにしてもよい。
〔発明の効呆〕
1、J−I−I’+)一連したように本発明によれば何
らかの原因でRET命令が余分に実行されても、その旨
をハードウアアを追加することなく効率よく検出でき、
グログラムの暴走の防止が図れる。
【図面の簡単な説明】
第1図はサブルーチンを含む一般的なゾログラノ・例を
示す図、第2図は戻り先スタックおよびカウンタの状態
の変化金第1図に対応させて示す図、第31菌は7’ 
H−iグラムの異常分岐會示す図、第4図は本発明に係
るプログラム構成の一実施例を示す図、第5図はプログ
ラムのチェックポイントで第4図のプログラム構成によ
りCALL文が実行された際の戻り先スタyりおよびカ
ウンタの状態を示す図、第6図は一ヒ記実施例における
プログラムの異常分岐を示す図、第7図は本発明の他の
実施例に係る!ログラム構成例を示す図、第8図は上記
他の実施例においてプログラムのチェックポイントで4
 +pi CALL文が実行された際の戻り先スタック
およびカウンタの状態を示す図、第9図は上記他の実施
例におけるプログラムの異常分岐を/jtす図である。 11・・・カウンタ、12・・・戻り先スタ、7り。 出願人代理人  弁理士 鈴 江 武 彦第1図 )’1 第2図 第3図 6 第4図 ) 9 第5図 11          l 第6図 ) 9 第7図 ■I 11 第9図 S・

Claims (2)

    【特許請求の範囲】
  1. (1)  7’oグラムの任、@のチェックポイントで
    1つ以上のCALL命令を実行し、戻り番地が格納され
    る戻り先スタックに所定のエラー処理ルーヂンへジャン
    プ0させるべくデログラノ、された番地を店き込むこと
    を動機とするプログラム暴走検出方式。
  2. (2)  十1;fニスタックがn1ワードのメモリで
    構成され、各メモリ番地がブイクリ、りに使用さハ。 るスタックであり、m回のCALL命令により上記スタ
    ックの各メモリ番地に上記エラー処理ルーチンへジャン
    プさせるべくゾログラムされた番地を汀き込むことを特
    徴とする特許請求の範囲第1項記載のプログラム暴走検
    出方式。
JP58029720A 1983-02-24 1983-02-24 プログラム暴走検出方法 Expired - Lifetime JPH0610793B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP58029720A JPH0610793B2 (ja) 1983-02-24 1983-02-24 プログラム暴走検出方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58029720A JPH0610793B2 (ja) 1983-02-24 1983-02-24 プログラム暴走検出方法

Publications (2)

Publication Number Publication Date
JPS59154557A true JPS59154557A (ja) 1984-09-03
JPH0610793B2 JPH0610793B2 (ja) 1994-02-09

Family

ID=12283938

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58029720A Expired - Lifetime JPH0610793B2 (ja) 1983-02-24 1983-02-24 プログラム暴走検出方法

Country Status (1)

Country Link
JP (1) JPH0610793B2 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS50138749A (ja) * 1974-04-23 1975-11-05
JPS54106142A (en) * 1978-02-08 1979-08-20 Nec Corp Data processor

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS50138749A (ja) * 1974-04-23 1975-11-05
JPS54106142A (en) * 1978-02-08 1979-08-20 Nec Corp Data processor

Also Published As

Publication number Publication date
JPH0610793B2 (ja) 1994-02-09

Similar Documents

Publication Publication Date Title
KR950006616B1 (ko) 변환된 프로그램 코드에서 소스 명령 분자를 보전하기 위한 시스템 및 방법
JPS5960652A (ja) デ−タ処理装置
JPH0283735A (ja) 命令先取り装置
US5136698A (en) Method for selective back-tracking in a hierarchical system containing a flag which indicates the validity of a choice-point
JPS59154557A (ja) プログラム暴走検出方法
JPH01201728A (ja) プログラム修正方式
JPS63217433A (ja) プログラム実行制御方式
JPH0954694A (ja) パイプラインプロセッサおよびその処理方法
JPS60221829A (ja) デ−タ処理装置
JPS59129995A (ja) 記憶装置
JPS6083149A (ja) コンピユ−タ
JPS58181148A (ja) S式入力方式
JPS60214043A (ja) パイプライン制御回路
JPS58166454A (ja) デ−タ処理装置
JPS6325372B2 (ja)
JPH03127171A (ja) ベクトル処理装置
JPH0544687B2 (ja)
JPS59117606A (ja) プログラマブルコントロ−ラ
JPH1027153A (ja) バス転送装置
JPH0337722A (ja) 情報処理装置
JPH03288229A (ja) 命令再試行処理方式
JPS59178547A (ja) 命令リトライ方式
JPS5870356A (ja) マイクロプログラム制御形デ−タ処理装置
JPH0473177B2 (ja)
JPH0427574B2 (ja)