JPH0580692B2 - - Google Patents
Info
- Publication number
- JPH0580692B2 JPH0580692B2 JP61082127A JP8212786A JPH0580692B2 JP H0580692 B2 JPH0580692 B2 JP H0580692B2 JP 61082127 A JP61082127 A JP 61082127A JP 8212786 A JP8212786 A JP 8212786A JP H0580692 B2 JPH0580692 B2 JP H0580692B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- error
- error processing
- runaway
- processing
- 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.)
- Expired - Fee Related
Links
Landscapes
- Debugging And Monitoring (AREA)
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、計算機の誤動作防止手段に係り、特
にプログラムが暴走した場合の保護方式に関す
る。
にプログラムが暴走した場合の保護方式に関す
る。
ストアドプログラム方式を用いた計算機システ
ムにおいては、ハードウエアの故障や、プログラ
ムミス、または誤書き込みによるプログラム内容
の破壊等により、所望の順序制御が乱れ予期せぬ
動作を起すことが考えられる。このような誤動作
をプログラムの暴走と呼んでいる。制御用計算機
においては、プログラム暴走により該計算機の制
御下にあるプラントが誤動作し、大きな災害をひ
きおこす危険性がある。
ムにおいては、ハードウエアの故障や、プログラ
ムミス、または誤書き込みによるプログラム内容
の破壊等により、所望の順序制御が乱れ予期せぬ
動作を起すことが考えられる。このような誤動作
をプログラムの暴走と呼んでいる。制御用計算機
においては、プログラム暴走により該計算機の制
御下にあるプラントが誤動作し、大きな災害をひ
きおこす危険性がある。
上記の理由により、プログラムの暴走が発生し
た場合は、速やかに暴走を検出し、計算機動作を
停止させなくてはならない。
た場合は、速やかに暴走を検出し、計算機動作を
停止させなくてはならない。
プログラムの暴走を検出する方式として従来は
ウオツチドツグタイマー方式と、イリーガル命令
埋込み方式があつた。
ウオツチドツグタイマー方式と、イリーガル命令
埋込み方式があつた。
ウオツチドツグタイマー方式は、特開昭60−
205757号に記載の様に、周期的にトリガされるタ
イマーと、単位時間毎に該タイマーをリセツトす
るプログラムとを設け、一定時間内に該タイマー
のリセツトが行われないと外部に対して暴走を報
告する方式である。この方式においては計算機シ
ステム自体は、暴走発生時に自分自身を停止する
手段を持たず、暴走停止は外部手段によつておこ
なわれる。このため、外部に計算機システムの暴
走検出時に、該システムを停止する手段を必要と
し、また暴走を検出する手段として時間を用いて
いるため、暴走から検出するまでの時間が比較的
長くなつてしまう。
205757号に記載の様に、周期的にトリガされるタ
イマーと、単位時間毎に該タイマーをリセツトす
るプログラムとを設け、一定時間内に該タイマー
のリセツトが行われないと外部に対して暴走を報
告する方式である。この方式においては計算機シ
ステム自体は、暴走発生時に自分自身を停止する
手段を持たず、暴走停止は外部手段によつておこ
なわれる。このため、外部に計算機システムの暴
走検出時に、該システムを停止する手段を必要と
し、また暴走を検出する手段として時間を用いて
いるため、暴走から検出するまでの時間が比較的
長くなつてしまう。
イリーガル命令埋込み方式は、特開昭60−
14345に記載の様に、プログラムが格納されてい
ないメモリの空きエリアに、特定の命令コードを
埋込み、プログラムが暴走し空きエリア内の命令
を実行したときに暴走を検出する方式である。イ
リーガル命令埋込み方式においては、プログラム
が暴走するときに、必ず空きエリア内の命令を実
行するという前提に基づいているため、該エリア
を実行しない故障モードにおいては、配慮されて
いなかつた。
14345に記載の様に、プログラムが格納されてい
ないメモリの空きエリアに、特定の命令コードを
埋込み、プログラムが暴走し空きエリア内の命令
を実行したときに暴走を検出する方式である。イ
リーガル命令埋込み方式においては、プログラム
が暴走するときに、必ず空きエリア内の命令を実
行するという前提に基づいているため、該エリア
を実行しない故障モードにおいては、配慮されて
いなかつた。
従来、比較的小形の計算機システム、例えばマ
イコンシステムでは、プログラム容量が小さく、
限定された目的で使用されていたため、プログラ
ムは、読み出し専用メモリ(Read Only
Memory、以下ROMと略す)のみに格納されて
いた。しかし、マイクロプロセツサの処理能力の
向上とともにプログラム容量の増加や、汎用性、
拡張性が要求される様になつた。そのため、中大
形システムの様に、外部補助記憶装置からプログ
ラムを読み書き可能メモリ(Randum Access
Memory、以下RAMと略す)にローデイングす
る方法がとられる様になつた。
イコンシステムでは、プログラム容量が小さく、
限定された目的で使用されていたため、プログラ
ムは、読み出し専用メモリ(Read Only
Memory、以下ROMと略す)のみに格納されて
いた。しかし、マイクロプロセツサの処理能力の
向上とともにプログラム容量の増加や、汎用性、
拡張性が要求される様になつた。そのため、中大
形システムの様に、外部補助記憶装置からプログ
ラムを読み書き可能メモリ(Randum Access
Memory、以下RAMと略す)にローデイングす
る方法がとられる様になつた。
この場合の問題点として、RAM内のプログラ
ムがハードウエアの故障やプログラムミスによつ
て誤つて書込まれ、破壊されてしまつた場合にプ
ログラムが暴走してしまう。特に破壊されたプロ
グラムがエラー処理に関わるものである時には、
計算機を停止させることもできなくなる。
ムがハードウエアの故障やプログラムミスによつ
て誤つて書込まれ、破壊されてしまつた場合にプ
ログラムが暴走してしまう。特に破壊されたプロ
グラムがエラー処理に関わるものである時には、
計算機を停止させることもできなくなる。
ウオツチドツグタイマー方式においては、外部
の停止手段が必要であることを前に述べたが、小
さなシステムにおいてその様な手段を別途設ける
ことが困難であり、暴走から検出までの時間が長
い問題がある。
の停止手段が必要であることを前に述べたが、小
さなシステムにおいてその様な手段を別途設ける
ことが困難であり、暴走から検出までの時間が長
い問題がある。
また、イリーガル命令埋込み方式においては、
誤書込みに起因する場合、暴走検出が困難とな
る。
誤書込みに起因する場合、暴走検出が困難とな
る。
本発明の目的は、エラー処理などのプログラム
がRAMに格納されるシステムにおけるプログラ
ムを暴走を検出し、システムを確実に停止させる
方式を提供することにある。
がRAMに格納されるシステムにおけるプログラ
ムを暴走を検出し、システムを確実に停止させる
方式を提供することにある。
プログラムが暴走した場合、何らかの例外が発
生するだろうことは容易に考えられる。通常の場
合は、例外処理プログラムが実行され、その暴走
を検出することが可能である。しかしながら、該
例外処理プログラムもまた、破壊されていると、
その実行途中で再び例外が発生するため、永久ル
ープに落入り、暴走の検出は不可能となる。
生するだろうことは容易に考えられる。通常の場
合は、例外処理プログラムが実行され、その暴走
を検出することが可能である。しかしながら、該
例外処理プログラムもまた、破壊されていると、
その実行途中で再び例外が発生するため、永久ル
ープに落入り、暴走の検出は不可能となる。
第3図は上記プロセスの説明図である。暴走し
たプログラム4が、イリーガル発生時のエラー処
理プログラム5を破壊した後でイリーガル命令に
よるエラー発生した場合、イリーガル発生時のエ
ラー処理が実行される。しかし、この処理プログ
ラムが破壊されているため、再び同じイリーガル
エラーが発生しループしてしまう。または、他の
エラーが発生し、他のエラー処理6が実行され
る。
たプログラム4が、イリーガル発生時のエラー処
理プログラム5を破壊した後でイリーガル命令に
よるエラー発生した場合、イリーガル発生時のエ
ラー処理が実行される。しかし、この処理プログ
ラムが破壊されているため、再び同じイリーガル
エラーが発生しループしてしまう。または、他の
エラーが発生し、他のエラー処理6が実行され
る。
そこで、本発明は、上記永久ループに落ち入る
ことなしに暴走を検出するため、エラー処理を実
行するプログラムにエラー処理中を示す手段を設
け、プログラムの暴走が発生した際には、この手
段を、絶対に書き込まれることのないROM上の
プログラムにより判定することによつて、エラー
処理を実行するプログラムにおけるエラー発生を
検出し、このエラー発生を検出した場合には計算
機システムを停止する処理を行なうようにしたも
のである。
ことなしに暴走を検出するため、エラー処理を実
行するプログラムにエラー処理中を示す手段を設
け、プログラムの暴走が発生した際には、この手
段を、絶対に書き込まれることのないROM上の
プログラムにより判定することによつて、エラー
処理を実行するプログラムにおけるエラー発生を
検出し、このエラー発生を検出した場合には計算
機システムを停止する処理を行なうようにしたも
のである。
ソフトウエアで書込みができるメモリ上のエラ
ー処理中を示す手段をエラー処理開始時にセツト
し、終了時にクリアされるようにプログラムで制
御する。このエラー処理中を示す手段の判定をエ
ラー処理開始時に、かつ、ソフトウエアで書込み
ができないメモリ上のプログラムで判定すること
で、エラー処理中に再度、エラーが発生した2重
エラーを検出することができ、プログラムの暴走
を防止できる。
ー処理中を示す手段をエラー処理開始時にセツト
し、終了時にクリアされるようにプログラムで制
御する。このエラー処理中を示す手段の判定をエ
ラー処理開始時に、かつ、ソフトウエアで書込み
ができないメモリ上のプログラムで判定すること
で、エラー処理中に再度、エラーが発生した2重
エラーを検出することができ、プログラムの暴走
を防止できる。
次に本発明の実施例について図面をもちいて説
明する。まず、プログラムの暴走のプロセスを第
3図を用いて説明する。暴走したプログラム4
が、実行中にエラー処理プログラム(イリーガル
も含む)を破壊した後で、何らかのエラー、この
場合はイリーガル命令によるエラーが発生した場
合、イリーガル発生時のエラー処理が実行され
る。しかし、この処理プログラムが破壊されてい
るため、エラー、即ち同じイリーガルエラーが発
生し無限ループを形成したり、イリーガル以外の
他のエラーが発生し、他のエラー処理6が実行さ
れる。
明する。まず、プログラムの暴走のプロセスを第
3図を用いて説明する。暴走したプログラム4
が、実行中にエラー処理プログラム(イリーガル
も含む)を破壊した後で、何らかのエラー、この
場合はイリーガル命令によるエラーが発生した場
合、イリーガル発生時のエラー処理が実行され
る。しかし、この処理プログラムが破壊されてい
るため、エラー、即ち同じイリーガルエラーが発
生し無限ループを形成したり、イリーガル以外の
他のエラーが発生し、他のエラー処理6が実行さ
れる。
第1図は本発明の全体構成図でプログラム1が
暴走しイリーガル命令によるエラーが発生した場
合のエラー処理フローは次の様になる。まず、
ROM上のエラー処理プログラム2でエラー処理
中フラグが“1”であるかどうか、判定する。プ
ログラム1でエラー発生時には、フラグがクリア
(=0)されているので、次にこのフラグをセツ
トし、RAM上のエラー処理プログラム3に分岐
する。プログラム3ではエラー処理終了後、フラ
グをクリアする。プログラム3が破壊されている
場合は、フラグがセツトされた状態で再度プログ
ラム2に分岐する。フラグが“1”であるから、
フラグの判定後CPUをストツプする処理を行う。
暴走しイリーガル命令によるエラーが発生した場
合のエラー処理フローは次の様になる。まず、
ROM上のエラー処理プログラム2でエラー処理
中フラグが“1”であるかどうか、判定する。プ
ログラム1でエラー発生時には、フラグがクリア
(=0)されているので、次にこのフラグをセツ
トし、RAM上のエラー処理プログラム3に分岐
する。プログラム3ではエラー処理終了後、フラ
グをクリアする。プログラム3が破壊されている
場合は、フラグがセツトされた状態で再度プログ
ラム2に分岐する。フラグが“1”であるから、
フラグの判定後CPUをストツプする処理を行う。
第2図は本発明に必要なハードウエアのシステ
ム構成を示している。CPU10と、RAM11、
ROM12、I/O13間には、アドレスバス1
4とデータバス15がインターフエイスされ、こ
のパスを介してデータ転送を行う。さらにこのデ
ータ転送を制御するためのリード信号16が、同
じくCPU10、RAM11、ROM12、I/O
13間にインターフエイスされている。もう一つ
の制御信号であるライト信号17は、ROM12
を除いて、インターフエイスされている。以上の
構成において、CPU10からRAM11の内容を
リードまたはライトすることができ、CPU10
からROM12の内容はリードのみ行える。
ム構成を示している。CPU10と、RAM11、
ROM12、I/O13間には、アドレスバス1
4とデータバス15がインターフエイスされ、こ
のパスを介してデータ転送を行う。さらにこのデ
ータ転送を制御するためのリード信号16が、同
じくCPU10、RAM11、ROM12、I/O
13間にインターフエイスされている。もう一つ
の制御信号であるライト信号17は、ROM12
を除いて、インターフエイスされている。以上の
構成において、CPU10からRAM11の内容を
リードまたはライトすることができ、CPU10
からROM12の内容はリードのみ行える。
次に、ROM12内のエラー処理フローは第1
図に示されるごとく、処理21でエラー処理フラ
グ=1?であるのか判定を行う。このフラグが
“1”であつた場合は、エラー処理中に再度エラ
ーが発生した2重障害であるから、プログラムの
暴走、無限ループを防止するため、エラー処理を
行なわず処理22でCPUをストツプさせる。フ
ラグが“0”であつた場合は、前記した2重障害
ではない。処理23でエラー処理中フラグをセツ
トし、処理24でRAM上のエラー処理に分岐す
る。
図に示されるごとく、処理21でエラー処理フラ
グ=1?であるのか判定を行う。このフラグが
“1”であつた場合は、エラー処理中に再度エラ
ーが発生した2重障害であるから、プログラムの
暴走、無限ループを防止するため、エラー処理を
行なわず処理22でCPUをストツプさせる。フ
ラグが“0”であつた場合は、前記した2重障害
ではない。処理23でエラー処理中フラグをセツ
トし、処理24でRAM上のエラー処理に分岐す
る。
エラー処理中フラグはCPU10からリードま
たはライタ可能なRAM11内にあり、セツト即
ち“1”の時は、エラー処理中であり、クリア即
ち“0”の時はエラー処理中でないことを示す。
たはライタ可能なRAM11内にあり、セツト即
ち“1”の時は、エラー処理中であり、クリア即
ち“0”の時はエラー処理中でないことを示す。
RAM内のエラー処理フローは第1図に示され
るごとく処理31ではエラー要因の判定さらにエ
ラーメツセージの出力などのエラー処理を行つた
後、処理32でエラー処理中フラグをクリアす
る。
るごとく処理31ではエラー要因の判定さらにエ
ラーメツセージの出力などのエラー処理を行つた
後、処理32でエラー処理中フラグをクリアす
る。
計算機における障害、エラー要因は、ソフトウ
エアまたはハードウエア両面とも当然一つの要因
だけでなく多数存在する。エラー発生時にCPU
10は、その要因を判定し、各、エラー処理の先
頭アドレスがセーブされているエラー処理用ベク
タテーブルから対応するエラー処理先頭アドレス
をリードし、このリードしたアドレスからエラー
処理を行う。第4図は本発明に用いられるベクタ
テーブルの構成図を示す。全てのエラー処理用ベ
クタテーブルにエラー処理中フラグを判定する
ROMのエラー処理プログラム2の先頭アドレス
を格納する。
エアまたはハードウエア両面とも当然一つの要因
だけでなく多数存在する。エラー発生時にCPU
10は、その要因を判定し、各、エラー処理の先
頭アドレスがセーブされているエラー処理用ベク
タテーブルから対応するエラー処理先頭アドレス
をリードし、このリードしたアドレスからエラー
処理を行う。第4図は本発明に用いられるベクタ
テーブルの構成図を示す。全てのエラー処理用ベ
クタテーブルにエラー処理中フラグを判定する
ROMのエラー処理プログラム2の先頭アドレス
を格納する。
以上のように本発明によれば、プログラムで破
壊されない様にハードウエアによりライトプロテ
クトされているメモリ上をプログラムが、エラー
フラグの判定を行うことで、2重エラーを検出で
きるので、実際にはプログラムが暴走していても
それを検出できないという事態、または、直接の
エラー要因に対するエラー処理が行なわれず、エ
ラー解析が複雑になるという事態を避けることが
でき、プログラム暴走検出時間の減少と、信頼性
を向上させることができる。
壊されない様にハードウエアによりライトプロテ
クトされているメモリ上をプログラムが、エラー
フラグの判定を行うことで、2重エラーを検出で
きるので、実際にはプログラムが暴走していても
それを検出できないという事態、または、直接の
エラー要因に対するエラー処理が行なわれず、エ
ラー解析が複雑になるという事態を避けることが
でき、プログラム暴走検出時間の減少と、信頼性
を向上させることができる。
第1図は本発明の全体構成図、第2図は本発明
のシステム構成図、第3図は従来のプログラム暴
走保護方式の問題点を示す図、第4図はエラー処
理用のベクタテーブルと処理フローの関係を示す
図である。 1,4……暴走プログラム、2……ROM上の
エラー処理プログラム、3……RAM上のエラー
処理プログラム、5……イリーガル発生時のエラ
ー処理プログラム、6……他のエラー処理プログ
ラム、10……CPU、11……RAM、12……
ROM、13……I/O、14……アドレスバ
ス、15……データバス、16……リード信号、
17……ライト信号。
のシステム構成図、第3図は従来のプログラム暴
走保護方式の問題点を示す図、第4図はエラー処
理用のベクタテーブルと処理フローの関係を示す
図である。 1,4……暴走プログラム、2……ROM上の
エラー処理プログラム、3……RAM上のエラー
処理プログラム、5……イリーガル発生時のエラ
ー処理プログラム、6……他のエラー処理プログ
ラム、10……CPU、11……RAM、12……
ROM、13……I/O、14……アドレスバ
ス、15……データバス、16……リード信号、
17……ライト信号。
Claims (1)
- 【特許請求の範囲】 1 プログラムが暴走した場合にエラー処理プロ
グラムによりエラー処理を行なう計算機システム
のプログラム暴走保護方式において、 エラー処理プログラムにエラー処理中を示す手
段を設け、プログラムの暴走が発生した際には、
前記エラー処理中を示す手段を、読み出し専用メ
モリに格納されているプログラムにより判定する
ことによつて、前記エラー処理プログラムにおけ
るエラー発生を検出し、該エラー発生を検出した
場合には計算機システムを停止する処理を行なう
ことを特徴とするプログラム暴走保護方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61082127A JPS62241036A (ja) | 1986-04-11 | 1986-04-11 | プログラム暴走保護方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61082127A JPS62241036A (ja) | 1986-04-11 | 1986-04-11 | プログラム暴走保護方式 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS62241036A JPS62241036A (ja) | 1987-10-21 |
| JPH0580692B2 true JPH0580692B2 (ja) | 1993-11-10 |
Family
ID=13765746
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP61082127A Granted JPS62241036A (ja) | 1986-04-11 | 1986-04-11 | プログラム暴走保護方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS62241036A (ja) |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS56164444A (en) * | 1980-05-23 | 1981-12-17 | Toshiba Corp | Error check method for controller of microprogram |
| JPS57199056A (en) * | 1981-06-03 | 1982-12-06 | Nec Corp | Execution and monitoring device for control program |
-
1986
- 1986-04-11 JP JP61082127A patent/JPS62241036A/ja active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| JPS62241036A (ja) | 1987-10-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH02156357A (ja) | プログラム破壊防止方法 | |
| JPH0580692B2 (ja) | ||
| KR890003322B1 (ko) | 데이타처리 시스템 | |
| JP2000099372A (ja) | コンピュータシステム | |
| JPH0430245A (ja) | マルチプロセッサ制御方式 | |
| EP0655686B1 (en) | Retry control method and device for control processor | |
| JPH0644145A (ja) | メモリエラー回避システム | |
| JPH0319574B2 (ja) | ||
| JPS6336431Y2 (ja) | ||
| JPH0230060B2 (ja) | ||
| JPH0212443A (ja) | 二重化処理装置 | |
| JPS62175834A (ja) | 中央処理装置の暴走検出回路 | |
| JPS6020769B2 (ja) | マイクロプログラム制御方式 | |
| JPH0665941U (ja) | プログラム動作装置 | |
| JPH0480860A (ja) | プログラムロード方式 | |
| JPH03230216A (ja) | 記憶デバイスへの処理データの書込処理方式 | |
| JPS5975348A (ja) | 計算機の異常検出方法およびその装置 | |
| JPH0395634A (ja) | 計算機システム再起動制御方式 | |
| JPH01166145A (ja) | Cpu監視装置 | |
| JPS6112585B2 (ja) | ||
| JPS63168733A (ja) | マイクロプログラム制御装置 | |
| JPH0391841A (ja) | 異常回復処理方式 | |
| JPH11161548A (ja) | 暴走検知機能付きコンピュータ | |
| JPH06168161A (ja) | データ処理装置におけるプログラム未格納領域の実行エラー検出方法 | |
| JPH02148340A (ja) | 制御記憶書込み制御方式 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |