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