JPS5975348A - 計算機の異常検出方法およびその装置 - Google Patents

計算機の異常検出方法およびその装置

Info

Publication number
JPS5975348A
JPS5975348A JP57184607A JP18460782A JPS5975348A JP S5975348 A JPS5975348 A JP S5975348A JP 57184607 A JP57184607 A JP 57184607A JP 18460782 A JP18460782 A JP 18460782A JP S5975348 A JPS5975348 A JP S5975348A
Authority
JP
Japan
Prior art keywords
address
program
read
output
abnormality
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
JP57184607A
Other languages
English (en)
Inventor
Hiromasa Yamaoka
弘昌 山岡
Tadashi Okamoto
正 岡本
Yoshihiro Uekane
上金 良博
Susumu Kitani
木谷 進
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP57184607A priority Critical patent/JPS5975348A/ja
Publication of JPS5975348A publication Critical patent/JPS5975348A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy

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

【発明の詳細な説明】 〔従来技術〕 計算機システムではその誤動作を防止するために従来か
ら各種の手段が用いられている。
特に、制御用計算機やプログラマブルコントローラのよ
うに、直接プラント機器類を操作する出力は、誤出力が
プラントのノンコントロール状態や、機器破壊等の重大
事故を引きおこす可能性力;ある。
このようなシステムではCPUの異常をいち早く検出し
、誤出力を防止することが重要である。
一般に、CPUの誤出力を異常内容で分類すると処理デ
ータそのものが異常になる場合(例えば2−1−3の答
が4になった等)と実行順序が異常となる場合に分かれ
る。前者の場合はデータバスのエラーチェック(パリテ
ィ、CRC等)ならびに冗長プログラムにより検出、訂
正が可能であるが、後者の場合はプログラムの実行順序
そのものが意図せぬものとなるだめ、その検出は前者の
場合に比べて相当の困難を伴う。
従来のCP II異常、特に、プログラム暴走を検出す
る方法は、■ウオッチドグタイマによるタイムアウト検
出■未定義命令実行検出■未定義アドレスアクセス検出
等があった。
■ウオッチドグタイマによるタイムアウト検出はプログ
ラムの渋滞を検出するもので、ハードウェアには、一定
期間(通常はソフトウェアにて期間を設定できる)内に
トリガされなければタイムアウトとなるカウンタ又はワ
ンショット・マルチプライヤを設け、ソフトウェアにて
周期的にそのカウンタをトリガするようにしたものであ
る。通常、ウオッチドグタイマをトリガする命令は最も
優先度の低いタスクに置かれる。そうすることにより、
プログラムの暴走等によるループインが発生すると、ウ
オッチドグタイマがトリガされなくなり、CPUの異常
を検出できる。
■未定義命令実行検出は未定義の命令コードを実行しよ
うとしたことを検出するもので、CPUが暴走し、デー
タ部分を命令として実行しようとしたとき等に検出され
る。
■未定義アドレスアクセス検出は、実装されていないエ
リアのメモリアクセス又はリードオンリエリアへの書き
込み等を検出するものである。
以上、プログラムの暴走を検出する従来例を挙げたが、
これらはいずれも、プログラムが暴走した後でないと検
出できず、場合によってはメモリ内容の破壊や、外部に
対して誤出力を発生するおそれがある。
すなわち、ウォッチトゲタイムアウト検出はプログラム
が暴走した後、一定時間以上経過しないと検出されない
し、未定義命令検出も暴走の結果、−実行しようしたコ
ードが、たまたま未定義命令コードであったときのみ検
出され、暴走の結果、実行しようとしたコードが命令と
して定義されていれば、その命令を実行してしまい、誤
出力のおそれがある。
さらに、未定義アドレス検出に関しても同様に暴走の結
果として検出されるものであり、メモリ内容の破壊や誤
出力が発生するおそれがある。
そこで通常はメモリのプロテクション機能全付加したり
、プロセス出力側でインターロック機構を設ける等の工
夫を行なって重大事故の発生を防止している。
ところが、このようなアプローチは異常発生時点ヲ捕え
るのではなく、異常現象が外部に現われた時点で捕えよ
うとしているため、たとえ誤出力が防止できたとしても
、再試行等による正常状態への復帰が困難であるばかり
でなく、出力規模が増大するにつれ、外部インターロッ
クは膨大なものとならざるを得ない。
〔発明の目的〕
本発明の目的はプログラムの暴走をその開始時点で補え
、暴走の継続を防止l〜、誤出力を阻止するに良好なC
PU異常検出方法を提供するにある。
〔発明の概要〕
上記の目的を達成するだめには、プログラムが意図した
実行順序で実行されているかどうかを監視する必要があ
るが、実際のプログラムでは、条件分岐や割込等がある
ため実行順序をあらかじめ登録しておくことは不可能に
近い。
そこで、本発明は命令ゴシーケンシャルに実行されてい
ることを確認する機能と、分岐先を登録しておき、命令
がシーケンシャルでなく実行されようとした場合に分岐
先が登録さねでいるかどうかを監視する機能を設けるこ
とにより、不正な命傭実行順序の変化(すなわち暴走)
の開始時点を検出しようとするものである。
〔発明の実施例〕
以下、本発明の実施例を第1図〜第6図を用いて説明す
る。
第1図は従来の計算機システムのCPUとメモリの接続
を示す。CPUIはメモリ2又はメモリ3に対する書き
込み、読み込みをアドレスバス100およびデータバス
110およびタイミングをとるためのストローブ120
を用いて行なうものである。
例えば、CP TJ I Arメモリ2にデータを書き
込む場合は、書き込み先のアドレスおよび書き込みを表
わす信号をアドレスバス100上に、書き込むデータを
データバス110上に乗せ、それらが確定したタイミン
グでストローブ120を送出する。メモリ2はアドレス
バス100とストローブ120により自己のある番地が
選ばれているのを知ると、データバス110上のデータ
をその番地にとり込む。
第2図は第1図のシステムに本発明を付加したシステム
を示す。エラー検出部5がプログラムの暴走を検出する
部分である。エラー検出部゛5はCP Uからのストロ
ーブ121、メモリアクセスがフェッチか実行時かを示
すフェッチ信号501をとり込み、フェッチ時にはその
アドレスを毎回監視し、異常時にはメモリに対するスト
ローブ502を禁止し、エラー信号503を発生する。
第3図はエラー検出部5の詳細を示したものであり、第
4図ないし第6図は第3図の動作を示すタイムチャート
である。
以下、順を追って第3図の動作を説明する。第3図にお
いて、ゲート55および59はフェッチでない場合、C
P TJからのストローブ121をメモリへのストロー
ブ502として送出するゲートである。ゲート54およ
び58はフェッチ時に、CPUからのストローブ121
をメモリへのストローブ502として送出するゲートで
あるが、ゲート58によりコンパレータ53の一致出力
517カ;出力されているときのみ、メモリへのストロ
ーブ502が送出される。516は不一致出力であり、
アンドゲート60の入力となる。
ココで、コニ/パレータ53けメモリフェッチ時のアド
レスが正常かどうかを判定するものであり、アドレスバ
ス101とカウンタ52の出力515の一致を検出して
いる。カウンタ52の出力515は正常であろうはずの
フェッチアドレスを示している。すなわち、分岐や割込
がない場合はフェッチ時のメモリアドレスはn 、 n
 + l 、 n + 2 、・・・のように連続した
値になるはずであるから、カウンタ52のINC人力5
14によりカウンタ52の出力515は更新される。し
たがって、CPUが正常に働く限り、フェッチ時のアド
レスとカウンタ52の出力515は一致する。(この状
態を第4図のタイムチャートに示す) ところが分岐や割込が発生した場合、フェッチ順序は不
連続となる。このような場合に、その不連続力;正規の
不連続であることを検出するのが連想メモリ51とゲー
ト57である。連想メモリ51には、あらかじめ、分岐
先や割込時の実行開始光を書き込んでおき、フェッチ時
のアドレスバス101の内容ガ、あらかじめ書き込んで
おいたアドレスと一致した場合、信号512を出力し、
ゲート57を介しカウンタ52にロード信号513とし
て与えられる。したがって、フェッチ時のアドレスが不
連続となっても、その内容カニあらかじめ登録されたア
ドレスならば、カウンタ52にその値がロードされコン
パレータ53の出カ一致信号が出力され、メモリに対す
るストローブ信号502が出力される。アンドゲート5
6は、信号512がないときカウンタ52のINCへの
入力信号514を与える。(この状態を第5図のタイム
チャートに示す) さらに、連想メモリ51の出力512が出力されなかっ
たのにかかわらず、カウンタ52の値とフェッチ時のア
ドレス10Fが一致しなかった場合は、CPUに異常が
発生したことを示すから、この場合は、ゲート58によ
りメモリに対するストローブ信号502を禁止すると共
にエラー信号503を発し、CPUは異常処理に入る。
(この状態を第6図のタイムチャートに示す)本発明の
一実施例によれば従来検出することができなかった暴走
の開始時点を検出することができ、CPUの異常動作に
よる誤出力を防止することができ、高信頼のオンライン
リアルタイムシステムが実現する。
実施例第3図における連想メモリ51の内容は固定され
ているとして説明したが、その内容はCP Uから書き
換え可能であってもよく、その場合は、プログラムの修
正が多いシステムや二次記憶が可能なシステムの場合効
果を発揮する。
さらに、前述の実施例では連想メモリ51には分岐や割
込における分岐先のアドレスを記憶させておいだ力;、
分岐先のみならず分岐元アドレスをも記憶1〜でおき、
割込以外の分岐に関しては分岐元と分岐先の双方があら
かじめ記憶したアドレスと一致したときのみ出力512
を発し、割込時には分岐先アドレスのみの一致で出力5
12を発生するようにしてもよい。この場合は暴走の検
出率がさらに向上する。
〔発明の効果〕
本発明によ引ば、プログラムの暴走をその開始時点で補
え、暴走の継続を防止し、誤出力を阻することができる
【図面の簡単な説明】
第1図は従来の計算機の概略構成図、第2図は本発明を
適用した一実施例の構成図、第3図は第2図におけるエ
ラー検出部の詳細図、第4図ないし第6図は第3図の動
作を説明するタイムチャートである。 1・・・CPU、2.3・・・メモリ、5・・・エラー
検出部、51・・・連想メモリ、52・・・カウンタ、
53・・・コン第 1 図 第 2  図 第3 口

Claims (1)

  1. 【特許請求の範囲】 1、命令を逐次読み出して実行処理を行なうストアード
    プログラム方式の計算機システムの異常検出方法におい
    て、プログラムを読みだすたびに更新され、かつ、プロ
    グラムが分岐した場合には、分岐先があらかじめ登録し
    ておいだメモリ番地と一致したときのみ分岐先アドレス
    を設定、カウントし、前記計算機からの命令読み出し番
    地と前記カウント値が一致したときのみ正常の命令読み
    出しを行ない、前記計算機からの命令読み出し番地と前
    記カウント値が不一致の場合は、前記計算機の異常とみ
    なし、異常信号を発生することを特徴とするCPUの異
    常検出方法。 2、命令を逐次読み出して実行処理を行なうストアード
    プログラム方式の計算機システムにおいて、プログラム
    の分岐先を記憶し、かつ、任意のプログラム番地を入力
    するとその番地が記憶された番地か否かを示す信号を出
    力する連想メモリと、プログラムを読み出すたびに更新
    され、かつ、前記連想メモリの出力信号により読み出し
    番地が前記プログラムの分岐先を示している場合にはそ
    の番地が設定されるカウンタと、前記カウンタの値とプ
    ログラム読み出し番地の一致を検出する比較器と、この
    比較器の出力が一致を示すときのみ正常の命令読み出し
    を行ない、前記比較器の出力が不一致のときは前記計算
    機の異常とみなし異常信号を発生する手段とからなるこ
    とを特徴とする計算機の異常検出装置。
JP57184607A 1982-10-22 1982-10-22 計算機の異常検出方法およびその装置 Pending JPS5975348A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP57184607A JPS5975348A (ja) 1982-10-22 1982-10-22 計算機の異常検出方法およびその装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP57184607A JPS5975348A (ja) 1982-10-22 1982-10-22 計算機の異常検出方法およびその装置

Publications (1)

Publication Number Publication Date
JPS5975348A true JPS5975348A (ja) 1984-04-28

Family

ID=16156174

Family Applications (1)

Application Number Title Priority Date Filing Date
JP57184607A Pending JPS5975348A (ja) 1982-10-22 1982-10-22 計算機の異常検出方法およびその装置

Country Status (1)

Country Link
JP (1) JPS5975348A (ja)

Similar Documents

Publication Publication Date Title
JPS5975348A (ja) 計算機の異常検出方法およびその装置
JPH0540668A (ja) プログラム暴走防止方式
EP0655686B1 (en) Retry control method and device for control processor
JP3183982B2 (ja) ディジタル制御装置
JP3182373B2 (ja) マイクロコンピュータ装置
JPS61141047A (ja) 障害情報の退避方式
JP3169879B2 (ja) マイクロプロセッサ暴走検出方式
KR890001796B1 (ko) 기계체크 개입중단 처리시스템
JPH06266648A (ja) データ転送制御方式
JPS6298435A (ja) コンピユ−タの異常検出方法
JPH03192431A (ja) 割込み処理方式
JPH0580692B2 (ja)
JPH04235638A (ja) プリフェッチ機能付マイクロプロセッサ
JPS61121140A (ja) コンピユ−タの暴走検出方式
JPS59119451A (ja) 電子計算機システムの診断方式
JPH0665941U (ja) プログラム動作装置
JPH01166145A (ja) Cpu監視装置
JPH0293738A (ja) 割込み処理方式
JPS6324331A (ja) コンピユ−タの暴走検知装置
JPH036618A (ja) スタックポインタの異常検出回路
JPH04296938A (ja) コンピュータ装置
JPS58114146A (ja) プロセツサ暴走検出方式
JPH0651996A (ja) 情報処理装置
JPS5839321A (ja) 記憶装置
JPH01292554A (ja) フアームウエアシーケンスチエツク方式