JPH05204681A - ソフトウェアの異常検出装置 - Google Patents

ソフトウェアの異常検出装置

Info

Publication number
JPH05204681A
JPH05204681A JP2214672A JP21467290A JPH05204681A JP H05204681 A JPH05204681 A JP H05204681A JP 2214672 A JP2214672 A JP 2214672A JP 21467290 A JP21467290 A JP 21467290A JP H05204681 A JPH05204681 A JP H05204681A
Authority
JP
Japan
Prior art keywords
task
software
identification number
timer
task identification
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
JP2214672A
Other languages
English (en)
Inventor
Yasushi Okada
泰 岡田
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 JP2214672A priority Critical patent/JPH05204681A/ja
Publication of JPH05204681A publication Critical patent/JPH05204681A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Hardware Redundancy (AREA)

Abstract

(57)【要約】 電子出願以前の出願であるので 要約・選択図及び出願人の識別番号は存在しない。

Description

【発明の詳細な説明】 [概要] データ処理装置におけるソフトウェアの異常動 作を検出するソフトウェアの異常検出装置に関 し、 ソフトウェアの誤動作の検出を確実に行えるよ うにすることを目的とし、 所定の設定時間をタイムアップした時に異常検 出信号を出力するタイマと、エントリされたソフ トウェアに関してタスク制御タスクが逐次実行す るタスクのタスク識別番号を保持する入力タスク 記憶回路と、エントリされるソフトウェアに関し て正常動作時に実行が予定される1以上のタスク の実行予定タスク識別番号を予め保持する実行予 定タスク記憶回路と、入力タスク記憶回路から現 に実行中の現タスク識別番号を逐次に取り出して 実行予定タスク記憶回路に保持された実行予定タ スク識別番号と比較し、現タスク識別番号が全て の実行予定タスク識別番号と一致したことを判定 してタイマリセット信号を発生しタイマに与える 比較判定回路とを備えたものである。
[産業上の利用分野] 本発明はデータ処理装置におけるソフトウェア の異常動作を検出するソフトウェアの異常検出装 置に関する。
[従来の技術] 従来、データ処理装置において実行されるプロ グラムの誤動作等の異常を検出するソフトウェア の異常検出装置としてはウォッチドッグタイマが よく知られている。ウォッチドッグタイマはハー ドウェアで設定されたタイマが所定の設定時間を タイムアウトするまでに、ソフトウェアが一定監 視時間毎にそのタイマをリセットすることを繰り 返すものである。したがってこのハードウェアタ イマはソフトウェアが正常に動作している間はタ イムアウトすることがなく、それによりソフトウ ェアの正常性を判断できる。一方、ハードウェア タイマがタイムアウトした時にはソフトウェアの 異常と判断する。この異常時にはハードウェアで システムにリスタートをかけたり、ノンマスカブ ル割込み(NMI)を上げたりして異常処理シー ケンスを実行している。
[発明が解決しようとする課題] ウォッチドッグタイマによるソフトウェアの異 常検出方式では、次のようなソフトウェアの暴走 が発生した場合には異常検出を行えない。
すなわち、ソフトウェアは、実際のアプリケー ションソフトウェアがタスク制御タスク(タスク コントロールタスク)にエントリされて、幾つか のアプリケーションタスクが交互に実行されるこ とにより、その機能を果たしていくものである。
ここでタスク制御タスクはアプリケーションソフ トウェアがエントリされて、その実行する順序を 決めるタスクである。
ところが、ソフトウェアの実際のアプリケー ションプログラムがタスク制御タスクにエントリ されておらず、しかもウォッチドッグタイマのリ セットタスクのみは正常にエントリされているよ うな場合には、アプリケーションソフトウェアが 実行されないので機能上は動作していないにもか かわらず、リセットタスクでウォッチドッグタイ マはリセットされ続けるので、異常検出ができな い状態になってしまう。
本発明は、ソフトウェアがアプリケーションソ フトの動作順序を定めているタスク制御タスクを ハードウェアによって監視するという構想に基づ いて、ソフトウェアの誤動作の検出をタスクレベ ルで確実に行うことができるソフトウェアの異常 検出装置を提供することを目的とする。
[課題を解決するための手段] 第1図は本発明に係る原理説明図である。
本発明に係るソフトウェアの異常検出装置は、 第1図[A]に示されるように、一つの形態とし て、所定の設定時間をタイムアップした時に異常 検出信号を出力するタイマ101と、エントリさ れたソフトウェアに関してタスク制御タスクが逐 次実行するタスクのタスク識別番号を保持する入 力タスク記憶回路102と、エントリされるソフ トウェアに関して正常動作時に実行が予定される 1以上のタスクの実行予定タスク識別番号を予め 保持する実行予定タスク記憶回路103と、入力 タスク記憶回路102から現に実行中の現タスク 識別番号を逐次に取り出して実行予定タスク記憶 回路103に保持された実行予定タスク識別番号 と比較し、現タスク識別番号が全ての実行予定タ スク識別番号と一致したことを判定してタイマリ セット信号を発生しタイマ101に与える比較判 定回路104とを備えてなる。
また本発明に係るソフトウェアの異常検出装置 は、第1図[B]に示されるように、他の形態と して、エントリされたソフトウェアに関してタス ク制御タスクが実行するタスクのタスク識別番号 が2の累乗数に選ばれたデータ処理装置における ものであって、所定の設定時間をタイムアップし た時に異常検出信号を出力するタイマ111と、 エントリされたソフトウェアに関してタスク制御 タスクが逐次実行するタスクのタスク識別番号を 保持する入力タスク記憶回路112と、タスク識 別番号の各ビット対応に設けられ、タスクの実行 に際して入力タスク記憶回路111から逐次取り 出される現に実行中の現タスク識別番号の対応 ビットによりそれぞれセットされる複数のセット 回路113と、全てのセット回路113がセット された時にタイマリセット信号を発生してタイマ 111に与える判定回路114とを備えてな る。
また本発明に係るデータ処理装置は、上述の何 れかの形態のソフトウェアの異常検出装置を備 え、この異常検出装置からの異常検出信号により 中央処理装置がリスタートされるように構成され たものである。
[作用] ソフトウェアの正常動作時には、実行予定タス ク記憶回路103に保持されている全ての実行予 定タスク識別番号は、ある時間内に少なくとも1 度は実行される。
したがって第1図[A]の異常検出装置におい ては、比較判定回路104によって、入力タスク 記憶回路102からタスク実行に際して取り出さ れる現タスク識別番号を実行予定タスク識別番号 と逐次に比較し、その結果、全ての実行予定タス ク識別番号と一致したと判定されたならば、タイ マリセット信号を発生したタイマ101に与え る。よってソフトウェアが正常動作していればタ イマ101はタイムアップしないので、異常検出 信号は出力されないが、もしソフトウェアに異常 があって現実に実行されない実行予定タスク識別 番号があると、タイマ101がリセットされずタ イムアップして異常検出が行われることにな る。
また第1図[B]の異常検出装置においては、 タスク識別番号が2つの累乗数に選ばれており、し たがってタスク識別番号は2進数表示の複数ビッ トのうちの1ビットのみが“1”となるデータ構 造となる。このタスク識別番号の各ビット対応に セット回路113を設け、現に実行される現タス ク識別番号中の“1”のビットでセット回路を セットする。これにより一つの現タスク識別番号 によりそれに対応した1つのセット回路113の みがセットされることになり、全てのセット回路 がセットされた時にはソフトウェアが正常動作し たと判定されて、タイマがリセットされる。
更に、上述の異常検出装置の異常検出信号を用 いてデータ処理装置中の中央処理装置をリスター トするようにすれば、ソフトウェアの異常時にお けるシステムのリスタートに大いに役立つ。
[実施例] 以下、図面を参照して本発明の実施例を説明す る。
本発明の一実施例としてのソフトウェアの異常 検出装置が第2図に示される。1は入力タスク バッファであり、これにはメモリ空間としてのR AM領域の一部が割り当てられており、この入力 タスクバッファ1には、第3図[A]に示される ように、タスク制御タスクによって、タスクの識 別番号(ID番号)がタスクの実行順に保持さ れ、これらが順次に読み出されるようになってい る。すなわち入力タスクバッファ1の先頭アドレ ス“0000”には現在実行中のソフトウェアの タスク識別番号「0123」が保持され、アドレ ス“0002”には次に動作するソフトウェアの タスク識別番号「2345」が、さらにアドレス “0004”には次の次に動作するソフトウェア のタスク識別番号「4567」が、というような 形でタスク識別番号が保持されている。ここで現 在実行中のソフトウェア、すなわちタスク識別番 号「0123」のタスクが終了すると、入力タス クバッファ1の先頭アドレス“0000”には、 第3図[B]に示されるように、次に動作するソ フトウェアのタスク識別番号「2345」がスト アされる。このようにこの入力タスクバッファ1 はその先頭アドレス“0000”に常に現在実行 中のソフトウェアのタスク識別番号が保持される ように構成されている。
2はハードウェア回路からなるモニタリング用 のレジスタであり、入力タスクバッファ1の先頭 アドレス“0000”と同一のアドレスを持ち、 入力タスクバッファ1の先頭アドレス“000 0”から逐次に読み出される現在動作中のソフト ウェアのタスク識別番号を逐次に保持するように 構成されている。
3〜3▲n▼は比較回路である。これらの比較回 路3〜3▲n▼はレジスタ部をそれぞれ有し、この レジスタ部には、ソフトウェアが正常動作したと 仮定した時にそのソフトウェアに関して実行が予 定されるタスクのタスク識別番号(例えば前述の 「0123」、「2345」、・・・など:以 下、実行予定タスク識別番号と称する)が予め保 持されており、各比較回路3〜3▲n▼はこの予め 保持された実行予定タスク識別番号とレジスタ2 から入力される現在実行中のタスクの現タスク識 別番号とを比較し、それらが一致した時に一致信 号を発生して、比較回路3〜3▲n▼のそれぞれに 対応して設けられたタイマリセット用レジスタ4 〜4▲n▼に与える。
タイマリセット用レジスタ4〜4▲n▼はフリッ プフロップで構成されており、対応する比較回路 3〜3▲n▼からの一致信号でそれぞれセットさ れ、その出力をタイマリセット条件判定用のNA ND回路5にそれぞれ与える。また各レジスタ4 〜4▲n▼はこのNAND回路5から出力されるタ イマリセット信号によってリセットされるように 構成される。
6はカウンタからなるタイマ回路であり、8は このタイマ回路6にクロックを供給するクロック 源である。タイマ回路6は設定回路7により設定 された所定のタイマ設定値のカウントをタイム アップすると、異常検出信号を発生して、これを 異常処理回路9に与えるように構成されてい る。
この実施例装置の動作が以下に説明される。
入力タスクバッファ1の先頭番地“0000” からは現在実行中のタスクの現タスク識別番号が 読み出され、これがレジスタ2に保持される。比 較回路3〜3▲n▼はレジスタ2に保持された現在 実行中の現タスク識別番号を、それぞれ自己に保 持する実行予定タスク識別番号と比較する。各比 較回路3〜3▲n▼に保持されている実行予定タス ク識別番号はソフトウェアが正常動作している時 に単位時間内に少なくとも1度は実行が予定され ているタスク識別番号である。したがって所定の 単位時間内に、比較回路3〜3▲n▼に保持された 実行予定タスク識別番号の全てが少なくとも一度 は動作することが予定されており、動作しなかっ た場合にはソフトウェアに異常があると判断する ことができる。
このように各比較回路3〜3▲n▼は入力タスク バッファ1の先頭アドレスでモニタリングしてい る現タスク識別番号を予め保持している実行予定 タスク識別番号と比較し、一致した場合には対応 するタイマリセット用レジスタ4〜4▲n▼(実行 予定タスク識別番号によって割り当てられたビッ トに相当)をONする。この結果、全ての実行予 定タスク識別番号が少なくとも1度実行された時 には、全てのタイマリセット用レジスタ4〜4 ▲n▼はセット状態となり、従ってNAND回路5の タイマリセット判定条件が成立し、NAND回路 5からタイマリセット信号がタイマ6に与えられ る。
もし、比較回路3〜3▲n▼のうちの何れかに、 一致が検出されないものがあった場合には、ソフ トウェアに異常があると判断でき、その場合に はタイマリセット用レジスタ4〜4▲n▼のうちに セットされないものが生じて、NAND回路5に よる判定条件が成立せず、よってNAND回路5 からタイマリセット信号は出力されない。このた め、タイマ回路6はリセットされず、所定のタイ マ設定時間が経過すると、ソフトウェアの異常を 示す異常処理信号が異常処理回路9に出力され、 この異常処理回路9でソフトウェア異常に対する 対策処理シーケンが実行される。
このように上述の実施例では、ソフトウェア実 行レベル(タスク単位レベル)でのハードウェア による異常処理処理が可能となる。
本発明の実施にあたっては種々の変形形態が可 能である。第4図にはかかる変形例としてのソフ トウェアの異常検出装置が示される。前述の実施 例装置では、予め設定された実行予定タスク識別 番号を現在実行中のタスク識別番号と比較するた めに比較回路3〜3▲n▼が必要となるので、ハー ドウェア量が大きなものとなっていた。第4図の 実施例装置はかかる比較回路3〜3▲n▼を不要と することで、ハードウェア量の削減を図ったもの である。
すなわち、この実施例装置が適用されるデータ 処理装置では、タスク識別番号は「0001」、 「0002」、「0004」、・・・「800 0」のように2の累乗数からなり、16ビットで 構成されている。したがって入力タスクバッファ 1の先頭アドレス“0000”にラッチされるタ スク識別番号は、第5図に示されるように、その 16ビットのうちの何れか1ビットだけが“1” となるようなデータ構造となっている。
第4図において第2図と同じ参照番号の回路は 同一機能を持った回路である。10〜10▲n▼は フリップフロップからなるタイマリセット用レジ スタであり、これらタイマリセット用レジスタ1 0〜10▲n▼はレジスタ2から読み出されるタス ク識別番号(16ビット)の各ビットにそれぞれ 対応して設けられており、タスク識別番号中の対 応する1ビットによりセットされるセット回路を 構成している。
各タイマリセット用レジスタ10〜10▲n▼か らの出力信号はNAND回路5に与えられ、NA ND回路5はNAND条件によるタイマリセット 判定条件が整うとタイマリセット信号を発生して タイマ回路6に与える。
このように構成すると、入力タスクバッファ1 の先頭アドレスにラッチされたタスク識別番号を 読み出してタスクを実行する度に、そのタスク識 別番号のビットの変化点によって、その実行タス クのタスク識別番号に対応したタイマリセット用 レジスタ10〜10▲n▼の一つを順次にセットし ていくことができ、第2図装置における比較回路 3〜3▲n▼を削減することが可能となる。
第6図には第2図の本発明の実施例装置を備え るデータ装置処理が示される。図中、第2図と同 一の参照番号の回路は同一機能の回路を示す。こ の実施例では、入力タスクバッファ1にはRAM 11内の一部記憶領域が割り当てられており、こ のRAM11はデータバスを介して中央処理装置 (CPU)12とレジスタ2に接続される。また 13はアドレスデコーダであり、CPU12にア ドレスバスを介して接続されており、このアドレ スデコーダ13はCPU12がRAM11内の入 力タスクバッファの先頭アドレス“0000”に アクセスした時に、レジスタ2に対してラッチ信 号を与えるように構成されており、それによりR AM11から読み出したタスク識別番号をレジス タ2に取り込むようになっている。
このデータ処理装置における異常検出装置の動 作は第2図に関して説明したものと同じなので、 詳細は省略するが、かかる装置によれば、ソフト ウェアのタスクレベルで異常の有無を検出でき、 その動作が保証されるようになるものである。
またタイマ回路6からの異常検出信号(タイマ のキャリ−アウトビットが用いられる)はCPU 12のリセット入力端子に与えられており、ソフ トウェアの異常が検出された時には、CPU12 をリスタートできるようになっており、ソフト ウェアの異常検出時のリスタートに大いに役立つ ものである。
[発明の効果] 以上に説明したように、本発明によれば、ソフ トウェアのタスクレベルでソフトウェア異常を検 出することができるようになり、ソフトウェアの 異常検出を確実に行えるようになる。
【図面の簡単な説明】
第1図は本発明に係る原理説明図、 第2図は本発明の一実施例としてのソフトウェ アの異常検出装置を示すブロック図、 第3図は実施例装置における入力タスクバッ ファのデータ格納状態を説明する図、 第4図は本発明の変形例としてのソフトウェア の異常検出装置を示すブロック図、 第5図は第4図の実施例装置で用いられるタス ク識別番号のデータ構成を説明する図、およ び、 第6図は第2図実施例装置を適用したデータ処 理の構成を示すブロック図である。 図において、 1…入力タスクバッファ 2…モニタリング用のレジスタ 3〜3▲n▼…比較回路3〜3▲n▼ 4〜4▲n▼…タイマリセット用レジスタ 5…NAND回路 6…タイマ回路 7…設定回路 8…クロック源 9…異常処理回路 10〜10▲n▼…タイマリセット用レジスタ 11…RAM(ランダムアクセスメモリ) 12…CPU 13…アドレスデコーダ

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 データ処理装置におけるソフトウェアの
    異常 検出装置であって、 所定の設定時間をタイムアップした時に異常検 出信号を出力するタイマ(101)と、 エントリされたソフトウェアに関してタスク制 御タスクが逐次実行するタスクのタスク識別番号 を保持する入力タスク記憶回路(102)と、 エントリされるソフトウェアに関して正常動作 時に実行が予定される1以上のタスクの実行予定 タスク識別番号を予め保持する実行予定タスク記 憶回路(103)と、 該入力タスク記憶回路(101)から現に実行 中の現タスク識別番号を逐次に取り出して該実行 予定タスク記憶回路(103)に保持された実行 予定タスク識別番号と比較し、該現タスク識別番 号が該全ての実行予定タスク識別番号を一致した ことを判定してタイマリセット信号を発生し該タ イマ(101)に与える比較判定回路(104) とを備えたソフトウェアの異常検出装置。
  2. 【請求項2】 エントリされたソフトウェアに関してタ
    スク 制御タスクが実行するタスクのタスク識別番号が 2の累乗数に選ばれたデータ処理装置におけるソ フトウェアの異常検出装置であって、 所定の設定時間をタイムアップした時に異常検 出信号を出力するタイマ(111)と、 エントリされたソフトウェアに関してタスク制 御タスクが逐次実行するタスクのタスク識別番号 を保持する入力タスク記憶回路(112)と、 該タスク識別番号の各ビット対応に設けられ、 タスクの実行に際して該入力タスク記憶回路から 逐次取り出される実行タスク識別番号の対応ビッ トによりそれぞれセットされる複数のセット回路 (113)と、 該全てのセット回路(113)がセットされた 時にタイマリセット信号を発生して該タイマ(1 11)に与える判定回路(114)とを備えたソ フトウェアの異常検出装置。
  3. 【請求項3】 請求項1または2記載のソフトウェアの
    異常 検出装置を備え、 該異常検出装置からの異常検出信号により中央 処理装置がリスタートされるように構成された データ処理装置。
JP2214672A 1990-08-14 1990-08-14 ソフトウェアの異常検出装置 Pending JPH05204681A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2214672A JPH05204681A (ja) 1990-08-14 1990-08-14 ソフトウェアの異常検出装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2214672A JPH05204681A (ja) 1990-08-14 1990-08-14 ソフトウェアの異常検出装置

Publications (1)

Publication Number Publication Date
JPH05204681A true JPH05204681A (ja) 1993-08-13

Family

ID=16659664

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2214672A Pending JPH05204681A (ja) 1990-08-14 1990-08-14 ソフトウェアの異常検出装置

Country Status (1)

Country Link
JP (1) JPH05204681A (ja)

Similar Documents

Publication Publication Date Title
RU2137182C1 (ru) Выполнение инструкции обработки данных
US4837702A (en) Electronic postage meter having an infinite loop lockout arrangement
EP0141744B1 (en) Method and apparatus for self-testing of floating point accelerator processors
US6158023A (en) Debug apparatus
JP2000187600A (ja) ウオッチドッグタイマ方式
US5978946A (en) Methods and apparatus for system testing of processors and computers using signature analysis
US20210004306A1 (en) Processor with non-intrusive self-testing
JP7375903B2 (ja) 異常検出回路及び異常検出方法
JPH1063541A (ja) コンピュータシステムのプログラム暴走監視装置
JPH08171504A (ja) エミュレ−ション装置
EP0385404A2 (en) Clock failure recovery system
US6185700B1 (en) Method and device for evaluating a program
JP2870202B2 (ja) プロセッサ間相互監視方法及びその装置
JPS62106552A (ja) ル−プ検出装置
JPH06214831A (ja) 中央処理装置の異常検出装置
JPH03132829A (ja) パリテイ検査システム
JP3609601B2 (ja) 自己診断機能付きタイマー回路
JPS6118045A (ja) プログラムの暴走検出方式
JPS6111853A (ja) 情報処理装置
JP2684966B2 (ja) 入出力処理装置のデバッグ装置
JP2658342B2 (ja) データ処理装置
JPH0736735A (ja) デバッグ装置
Gossányi et al. Error diagnostics and recovery procedure in a dual-processor computer system
JPS59206944A (ja) マイクロプログラム監視装置
JPH0642207B2 (ja) マルチレベルプログラミング方式