(57)【要約】【課題】  少ない回路規模で、複数の処理部の暴走を検出し、しかも、検出後にいずれの処理部が暴走したかを特定可能なウォッチドッグタイマを実現する。【解決手段】  カウンタ３１が前回クリアされてからタイムアウト時間が経過しても、クリア端子Ｔ１１・Ｔ１２の双方にクリア信号ＣＬＲ１・ＣＬＲ２が入力されていない場合、比較器３３は、各クリア端子Ｔ１１・Ｔ１２に対応するプログラム処理部のいずれかが暴走したことを示す信号を出力する。さらに、ＡＮＤ回路５３・５４は、当該信号が出力され、しかも、上記クリア信号ＣＬＲ１・ＣＬＲ２を蓄積するラッチ回路２１・２２の出力がクリアを示していない場合、それぞれに対応するラッチ回路５１・５２をセットする。これにより、当該ラッチ回路５１・５２は、暴走を検出した後、上記プログラム処理部のいずれが暴走したかを示す値を出力できる。【選択図】  図１ 
2005092430.tif 000002
【特許請求の範囲】
【請求項１】
予め定められたタイムアウト時間が経過すると暴走を示す出力信号を出力する計時手段を有するウォッチドッグタイマにおいて、
監視対象に設定可能な処理部毎に設けられた複数のクリア端子と、
監視対象となる処理部に対応するクリア端子全てにクリアを示す信号が入力された場合に上記計時手段をリセットするリセット手段と、
上記クリア端子毎に設けられたラッチ回路およびラッチ回路制御手段とを備え、
上記ラッチ回路制御手段は、上記計時手段が暴走を示す出力信号を出力し、しかも、上記クリア端子へクリアを示す信号が入力されていない場合、当該クリア端子に対応するラッチ回路をセットすると共に、上記暴走を示す出力信号とは独立したタイミングで印加されるリセット信号が入力されるまでの間、上記ラッチ回路に値を保持させることを特徴とするウォッチドッグタイマ。
【請求項２】
上記各処理部を監視対象とするか否かを示す制御信号が入力される入力端子を備え、
上記リセット手段は、当該入力端子への信号に基づいて、上記監視対象となる処理部を特定することを特徴とする請求項１記載のウォッチドッグタイマ。
【請求項３】
上記ラッチ回路制御手段は、上記入力端子への入力信号が監視対象から外れていることを示している処理部に対応するラッチ回路をリセットすることを特徴とする請求項２記載のウォッチドッグタイマ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ウォッチドッグタイマに関するものであり、特に、単一のカウンタによって複数の処理部のいずれかが暴走したことを検出可能であるにも拘わらず、暴走後に、いずれの処理部が暴走したかを特定可能なウォッチドッグタイマに関するものである。
【背景技術】
【０００２】
従来から、正常に動作し続けることが強く要求されるシステム（例えば、制御システムなど）では、例えば、暴走からの復帰処理を行い、正常に動作し続けるために、プログラムの暴走を検出するウォッチドッグタイマを有する情報処理装置が広く使用されている。
【０００３】
図３に示すように、当該ウォッチドッグタイマ１１４では、カウンタ１３１が予め定められた時間間隔で自らのカウント値Ｃ１３１をカウントアップしており、比較器１３３は、当該カウント値Ｃ１３１と、時間設定レジスタ１３２に予め格納されたカウント値Ｃ１３２とを比較することによって、カウンタ１３１が前回リセットされてから、上記カウント値Ｃ１３２に対応するタイムアップ時間が経過したか否かを判定し、タイムアップ時間が経過した場合は、ＮＭＩ（ノン・マスカブル・インタラプト）信号を、図示しないＣＰＵへ出力する。
【０００４】
ここで、上記ＣＰＵによって実行されるプログラムαは、正常に動作している間中、上記タイムアップ時間よりも短い時間でクリア信号ＣＬＲをアクティブ（図３の例ではロー）にすることによって、上記カウンタ１３１を繰り返しリセットするようにプログラムされている。ところが、当該プログラムαが暴走してしまうと、上記カウンタ１３１をリセットできなくなるので、上記カウンタ１３１のカウント値Ｃ１３１がカウント値Ｃ１３２に到達し、ウォッチドッグタイマ１１４によって、ＮＭＩ信号が出力される。
【０００５】
当該ＮＭＩ信号が入力されると、上記ＣＰＵは、現在実行中の命令に拘わらず、暴走状態から復帰するためのプログラムを実行する。これにより、上記プログラムαが暴走している場合であっても、ＣＰＵは、何ら支障なく、復帰用のプログラムΩを実行でき、上記プログラムαを正常な状態に復帰させることができる。
【０００６】
さらに、後述の特許文献１では、システムの立ち上げ時と通常動作時とのように、適切なタイムアップ時間の互いに異なる状態のそれぞれにおいて適切なタイムアップ時間でプログラムの暴走を監視するために、立ち上げ時にクリア信号が与えられると、カウンタ１３１へ与えるクロック信号を生成する際の分周比を変更する構成が記載されている。
【特許文献１】特開２００１−３０６３６２号公報（公開日：2001年１１月２日）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記従来の構成では、少ない回路規模で、プログラムなどによって実現される複数の処理部の暴走を検出し、しかも、検出後にいずれの処理部が暴走したかを特定するという課題全てを解決することはできないという問題を生じる。
【０００８】
より詳細に説明すると、現在は、情報処理装置に要求される処理が複雑になり、上記ＣＰＵは、互いに独立した複数のプログラムを時分割で実行していることも多い。この場合は、これら複数のプログラムα…をウォッチドッグタイマ１１４が監視対象とすることが望まれる。
【０００９】
ところが、各プログラムα…毎にウォッチドッグタイマ１１４を設けると、必要なカウンタの数が増えてしまうので、回路規模の削減が求められる場合には、単一のカウンタによって、複数のプログラムα…の暴走を監視することが要求される。
【００１０】
ここで、監視対象とするプログラム毎にクリア端子を設け、各プログラムによるクリア信号を独立させると共に、全クリア信号が真の場合に、カウンタ１３１をリセットするように構成すれば、ウォッチドッグタイマ１１４は、各プログラムのいずれかが暴走したことを検出できるので、単一のカウンタで単一のプログラムの暴走を監視する構成に比べて回路規模を削減できる。
【００１１】
ところが、当該構成では、暴走を検出した後、いずれのプログラムが暴走したかを特定することができない。したがって、例えば、暴走したプログラムのみに対して復帰処理したり、暴走したプログラムを表示し、当該プログラムを集中的に検証して暴走の原因を特定するなど、暴走したプログラムに応じた処理を行うことができない。
【００１２】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、少ない回路規模で、複数の処理部の暴走を検出し、しかも、検出後にいずれの処理部が暴走したかを特定可能なウォッチドッグタイマを実現することにある。
【課題を解決するための手段】
【００１３】
本発明に係るウォッチドッグタイマは、上記課題を解決するために、予め定められたタイムアウト時間が経過すると暴走を示す出力信号を出力する計時手段を有するウォッチドッグタイマにおいて、監視対象に設定可能な処理部毎に設けられた複数のクリア端子と、監視対象となる処理部に対応するクリア端子全てにクリアを示す信号が入力された場合に上記計時手段をリセットするリセット手段と、上記クリア端子毎に設けられたラッチ回路およびラッチ回路制御手段とを備え、上記ラッチ回路制御手段は、上記計時手段が暴走を示す出力信号を出力し、しかも、上記クリア端子へクリアを示す信号が入力されていない場合、当該クリア端子に対応するラッチ回路をセットすると共に、上記暴走を示す出力信号とは独立したタイミングで印加されるリセット信号が入力されるまでの間、上記ラッチ回路に値を保持させることを特徴としている。
【００１４】
また、上記構成に加えて、上記各処理部を監視対象とするか否かを示す制御信号が入力される入力端子を備え、上記リセット手段は、当該入力端子への信号に基づいて、上記監視対象となる処理部を特定してもよい。
【００１５】
さらに、上記構成に加えて、上記ラッチ回路制御手段は、上記入力端子への入力信号が監視対象から外れていることを示している処理部に対応するラッチ回路をリセットしてもよい。
【発明の効果】
【００１６】
本発明に係るウォッチドッグタイマは、以上のように、上記計時手段、クリア端子、リセット手段、ラッチ回路およびラッチ回路制御手段を備えており、上記リセット手段は、監視対象となる処理部に対応するクリア端子全てにクリアを示す信号が入力された場合に上記計時手段をリセットする。したがって、上記タイムアウト時間が経過するまでの間に、監視対象となる処理部の全てが、正常に動作しており、それぞれに対応して設けられたクリア端子へクリアを示す信号を入力している間は、暴走を示す出力信号を出力していない。なお、上記処理部は、ＣＰＵなどの演算手段がＲＯＭやＲＡＭなどに記憶されたプログラムを実行することによって実現できる。
【００１７】
一方、ある処理部が暴走すると、上記計時手段を前回リセットしてから上記タイムアウト時間が経過しても、当該処理部は、対応するクリア端子へクリアを示す信号を入力することができないので、計時手段は、暴走を示す出力信号を出力する。
【００１８】
これにより、ウォッチドッグタイマは、監視対象に応じた計時手段を設ける構成に比べて回路規模が縮小されているにも拘わらず、複数の処理部が暴走したか否かを検出できると共に、例えば、各処理部を正常動作に復帰させるプログラムによって実現される制御部など、暴走時に所定の処理を行うように設定された制御部へ、監視対象とする処理部の暴走を通知でき、当該制御部に処理部の暴走に対応した処理を実施させることができる。
【００１９】
さらに、上記構成では、各クリア端子に対応して、ラッチ回路が設けられており、ラッチ回路制御手段は、上記計時手段が暴走を示す出力信号を出力し、しかも、上記クリア端子へクリアを示す信号が入力されていない場合、当該クリア端子に対応するラッチ回路をセットすると共に、上記暴走を示す出力信号とは独立したタイミングで印加されるリセット信号が入力されるまでの間、上記ラッチ回路に値を保持させる。
【００２０】
これにより、各ラッチ回路は、暴走が検出されてから、上記リセット信号が入力されるまでの間、それぞれに対応する処理部が暴走していたか否かを示す値を出力できる。したがって、各ラッチ回路は、例えば、各ラッチ回路を参照して、各処理部が暴走しているか否かを判定して、暴走している処理部をユーザに提示したり、暴走している処理部のみに対して復帰処理を行したりする制御部など、暴走している処理部に応じた処理を行うように設定された制御部に、いずれの処理部が暴走しているかに応じた処理を実施させることができる。
【００２１】
また、本発明に係るウォッチドッグタイマは、以上のように、各処理部を監視対象とするか否かを示す制御信号が入力される入力端子を備えているので、当該入力端子へ印加する制御信号によって、監視対象に設定可能な処理部のうち、いずれの処理部を監視対象とするかを変更できる。
【００２２】
当該構成では、例えば、監視対象となる処理部の動作を変更して、自らに対応するクリア端子だけではなく、監視対象としていない処理部に対応するクリア端子をもクリアする場合とは異なり、監視対象となる処理部の動作を変更することなく、監視対象に設定可能な処理部のうち、いずれの処理部を監視対象とするかを変更できる。したがって、容易に監視対象を変更可能なウォッチドッグタイマを実現できる。
【００２３】
さらに、本発明に係るウォッチドッグタイマは、以上のように、上記ラッチ回路制御手段は、監視対象から外れている処理部に対応するラッチ回路をリセットするので、各ラッチ回路の出力のうち、出力がセットされているラッチ回路は、暴走が検出された処理部に対応するラッチ回路のみになる。したがって、監視対象としないラッチ回路の出力が不定になる構成と比較して、暴走が検出された処理部のみを的確に通知可能なウォッチドッグタイマを実現できる。
【発明を実施するための最良の形態】
【００２４】
本発明の一実施形態について図１および図２に基づいて説明すると以下の通りである。すなわち、本実施形態に係る情報処理装置１は、ウォッチドッグタイマによって、プログラムの暴走を検出可能な装置であって、図２に示すように、監視対象としての第１および第２プログラム処理部１１・１２と、両プログラム処理部１１・１２が正常に動作している場合、各プログラム処理部１１・１２によって、予め定められたタイムアップ時間よりも短い時間で正常を示す値が繰り返し書き込まれる制御レジスタ１３と、前回正常を示す値が書き込まれてから当該タイムアップ時間が経過しているにも拘わらず、当該制御レジスタ１３に正常を示す値が書き込まれていない場合、監視対象としているプログラム処理部のいずれかが暴走していると判断するウォッチドッグタイマ１４と、当該ウォッチドッグタイマ１４から暴走を検出したことが通知されると、例えば、各プログラム処理部１１・１２を初期化するなど、予め定められた処理を行う制御部１５とを備えている。なお、上記両プログラム処理部１１・１２が特許請求の範囲に記載の処理部に対応する。
【００２５】
また、上記タイムアップ時間は、各プログラム処理部１１・１２がクリアを示す値を書き込む周期の変動を考慮して、当該周期よりも充分に長く設定されている。なお、これらの時間および周期は、用途に応じて種々の値が選択されるが、本実施形態では、一例として、タイムアップ時間が１〔ｓ〕、繰り返しの周期が１０〔ｍｓ〕に設定されている。
【００２６】
ここで、上記第１および第２プログラム処理部１１・１２および制御部１５は、ＣＰＵなどの演算手段が、ＲＯＭやＲＡＭなどの記憶手段に格納されたプログラムを実行し、必要に応じて、タッチパネルや液晶表示装置などの入出力手段、あるいは、インターフェース回路などの通信手段を制御することによって実現される機能ブロックであって、上記第１および第２プログラム処理部１１・１２は、例えば、メモリ領域やＩ／Ｏ領域など、ＣＰＵなどの演算手段がアクセス可能な領域に割り当てられた上記制御レジスタ１３へ、正常を示す値を繰り返し書き込んでいる。また、上記ウォッチドッグタイマ１４は、例えば、ＮＭＩ（ノン・マスカブル・インタラプト）信号などの割り込み信号によって、暴走の発生をＣＰＵなどの演算手段へ通知し、当該演算手段は、現在実行している命令に拘わらず、上記制御部１５を実現するためのプログラムを実行する。これにより、制御部１５は、第１および第２プログラム処理部１１・１２が暴走している場合であっても、何ら支障なく動作できる。
【００２７】
さらに、本実施形態に係る情報処理装置１のウォッチドッグタイマ１４には、監視対象とするプログラム処理部１１・１２毎に異なる記憶領域が設けられた状態レジスタ１６をが設けられており、上記ウォッチドッグタイマ１４は、監視対象としているプログラム処理部１１・１２のいずれかが暴走していると検出した時点に、状態レジスタ１６の各記憶領域に、各プログラム処理部１１・１２の暴走を検出しているか否かを書き込むことができる。また、上記状態レジスタ１６は、制御部１５が上記所定の処理を行っている間も、記憶されている値を保持するように構成されており、上記制御部１５は、ウォッチドッグタイマ１４から暴走検出通知を受け取った後、状態レジスタ１６の値（後述するＷＤＴ１Ｐ・ＷＤＴ２Ｐ）を参照して、プログラム処理部１１・１２のいずれが暴走しているかを判定でき、暴走しているプログラム処理部１１・１２に応じた処理を行うことができる。
【００２８】
以下では、一例として、上記第１および第２プログラム処理部１１・１２のいずれかが暴走していることを検出するモードとは別に、第１プログラム処理部１１の暴走のみを検出するモード、および、第２プログラム処理部１２の暴走のみを検出するモードを情報処理装置１が持っている場合の構成について、図１を参照しながら、詳細に説明する。なお、以下では、説明の便宜上、それぞれを、第３、第１および第２モードと称する。
【００２９】
本実施形態に係る制御レジスタ１３には、第１プログラム処理部１１の暴走を監視するか否かを記憶するビット領域Ｂ１と、第２プログラム処理部１２の暴走を監視するか否かを記憶するビット領域Ｂ２とが設けられており、制御部１５は、ウォッチドッグタイマ１４を第１モードに設定する場合、領域Ｂ１の値のみを真に設定する。また、制御部１５は、第２モードあるいは第３モードに設定する場合、それぞれ、領域Ｂ２の値のみ、および、両領域Ｂ１・Ｂ２の値を真に設定する。
【００３０】
さらに、上記制御レジスタ１３には、第１プログラム処理部１１によって繰り返し正常を示す値（真）が書き込まれるビット領域Ｂ１１と、第２プログラム処理部１２によって繰り返し正常を示す値（真）が書き込まれるビット領域Ｂ１２とが設けられている。
【００３１】
上記各領域Ｂ１・Ｂ２・Ｂ１１・Ｂ１２の値は、図１に示すように、それぞれ、入力端子Ｔ１・Ｔ２およびクリア端子Ｔ１１・Ｔ１２を介して、制御信号ＥＮＢ１・ＥＮＢ２・ＣＬＲ１・ＣＬＲ２として、ウォッチドッグタイマ１４に入力されている。
【００３２】
一方、ウォッチドッグタイマ１４には、クリア信号としての上記制御信号ＣＬＲ１・ＣＬＲ２をそれぞれラッチするラッチ回路２１および２２が設けられている。本実施形態では、両ラッチ回路２１・２２は、例えば、Ｄフリップフロップによって実現されており、両ラッチ回路２１・２２のＤ端子は、真を示す値に常時維持されていると共に、上記クリア信号ＣＬＲ１・ＣＬＲ２が、対応するラッチ回路のクロック端子に印加されている。
【００３３】
さらに、上記ウォッチドッグタイマ１４は、計時手段として、以下の各部材３１〜３３、すなわち、予め定められた周期のクロック信号ＣＬＫが入力され、クロック信号ＣＬＫが示す時間間隔でカウント値をカウントアップするカウンタ３１と、上記タイムアップ時間に対応するカウント値が格納された時間設定レジスタ３２と、当該時間設定レジスタ３２に格納されたカウント値Ｃ３２およびカウンタ３１のカウント値Ｃ３１を比較して、例えば、両者が一致した時点など、前回カウンタ３１がリセットされてからタイムアップ時間が経過した時点で、ＮＭＩ信号を真を示す値に変更する比較器３３とを備えている。なお、上記カウント値Ｃ３２は、予め定められた値に固定されていてもよいし、制御部１５が時間設定レジスタ３２へアクセスして設定してもよい。
【００３４】
また、上記カウンタ３１のリセット端子Ｒと、上記両ラッチ回路２１・２２との間には、論理回路（リセット手段）４１が設けられており、制御信号ＥＮＢ１・ＥＮＢ２が第３モードを示す値で、しかも、両ラッチ回路２１・２２の出力信号が真の場合に、カウンタ３１をリセットできる。図１の例では、カウンタ３１のリセット信号がローアクティブであり、上記論理回路４１には、制御信号ＥＮＢ１・ＥＮＢが第３モードを示す値（双方、真）で、しかも、両ラッチ回路２１・２２の出力信号が真の場合にのみ、真を出力するＡＮＤ回路４２と、ＡＮＤ回路４２の出力信号が入力され、入力信号のいずれかが真の場合に、出力信号をアクティブ（ロー）にする、負論理出力のＯＲ回路４３とが設けられている。
【００３５】
さらに、本実施形態では、第１および第２モードが設けられているので、上記論理回路４１は、制御信号ＥＮＢ１・ＥＮＢ２が第１モードを示す値で、しかも、ラッチ回路２１の出力信号が真の場合と、制御信号ＥＮＢ１・ＥＮＢ２が第２モードを示す値で、しかも、ラッチ回路２２の出力信号が真の場合とのそれぞれにも、上記カウンタ３１をリセットできるように構成されている。例えば、図１に示すように、上記論理回路４１として、上記ＯＲ回路４３と上記両ラッチ回路２１・２２との間に、上記制御信号ＥＮＢ１・ＥＮＢ２が第１モードを示す値（真・偽）で、しかも、ラッチ回路２１の出力信号が真の場合にのみ、ＯＲ回路４３に真を出力するＡＮＤ回路４４と、上記制御信号ＥＮＢ１・ＥＮＢ２が第２モードを示す値（偽・真）で、しかも、ラッチ回路２２の出力信号が真の場合にのみ、ＯＲ回路４３に真を出力するＡＮＤ回路４５とが設けられている。
【００３６】
また、上記ＯＲ回路４３の出力は、上記各ラッチ回路２１・２２のリセット端子Ｒにも入力されており、各ラッチ回路２１・２２は、各ラッチ回路２１・２２の出力によってカウンタ３１がリセットされた時点でリセットされる。
【００３７】
なお、本実施形態に係るウォッチドッグタイマ１４では、情報処理装置１全体をリセットする制御信号ＲＳＴ、および、ウォッチドッグタイマ１４をリセットする制御信号ＷＤＴＲＳＴのいずれかが真になった場合も、上記カウンタ３１をリセットできるように構成されており、図１の例では、端子Ｔ２１および端子Ｔ２２を介して入力される制御信号ＲＳＴ・ＷＤＴＲＳＴが、上記ＯＲ回路４３に入力されている。なお、図１では、両制御信号ＲＳＴ・ＷＤＴＲＳＴがローアクティブであることを符号の末尾に”＊”を付すことで示している。
【００３８】
さらに、本実施形態に係るウォッチドッグタイマ１４は、上記図２に示す状態レジスタ１６として、上記各プログラム処理部１１・１２のそれぞれに対応して設けられたラッチ回路５１・５２を備えている。また、当該ウォッチドッグタイマ１４には、上記比較器３３の出力が真で、ラッチ回路２１の出力がクリアを示していない場合（比較器３３の出力およびラッチ回路２１の反転出力の双方が真の場合）にのみ、当該ラッチ回路２１に対応するラッチ回路５１をセットするＡＮＤ回路５３と、上記比較器３３の出力が真で、ラッチ回路２２の出力がクリアを示していない場合（比較器３３の出力およびラッチ回路２２の反転出力の双方が真の場合）にのみ、当該ラッチ回路２２に対応するラッチ回路５２をセットするＡＮＤ回路５４とが設けられている。なお、上記ラッチ回路５１・５２は、例えば、制御部１５を実現するＣＰＵなどの演算手段によってアクセス可能な領域に割り当てられており、制御部１５は、各ラッチ回路５１・５２の値（ＷＤＴ１Ｐ・ＷＤＴ２Ｐ）を読み出すことができる。上記両ラッチ回路５１・５２は、例えば、Ｄフリップフロップによって実現されており、両ラッチ回路５１・５２のＤ端子は、真を示す値に常時維持されていると共に、ＡＮＤ回路５３・５４の出力信号が、それぞれに対応するラッチ回路のクロック端子に印加されている。
【００３９】
また、上記両ラッチ回路５１・５２のリセット端子Ｒには、比較器３３の出力とは独立したリセット信号が入力されており、比較器３３の出力が真になった後も値を保持できるように構成されている。
【００４０】
本実施形態では、上記両制御信号ＲＳＴ・ＷＤＴＲＳＴのいずれかが真の場合、あるいは、上記制御信号ＥＮＢ１が偽の場合に、真の値を出力するＯＲ回路５５と、上記両制御信号ＲＳＴ・ＷＤＴＲＳＴのいずれかが真の場合、あるいは、上記制御信号ＥＮＢ２が偽の場合に、真の値を出力するＯＲ回路５６とが設けられており、ＯＲ回路５５の出力がラッチ回路５１のリセット端子Ｒに、ＯＲ回路５６の出力がラッチ回路５２の出力にされている。なお、図１の例では、両制御信号ＲＳＴ・ＷＤＴＲＳＴおよび両ラッチ回路５１・５２へのリセット信号が、いずれもローアクティブであり、両制御信号ＥＮＢ１・ＥＮＢ２がハイアクティブである。なお、上記各回路５３〜５６が特許請求の範囲に記載のラッチ回路制御手段に対応する。
【００４１】
上記構成において、図２に示す第１および第２プログラム処理部１１・１２の暴走を監視する場合、制御部１５は、制御レジスタ１３の領域Ｂ１・Ｂ２に第３モードを示す値（双方真）を書き込んで、図１に示す両制御信号ＥＮＢ１・ＥＮＢ２を真に設定している。
【００４２】
ここで、図１に示すウォッチドッグタイマ１４のカウンタ３１は、リセットされた時点からタイムアウト時間が経過すると、暴走を示すＮＭＩ信号を出力するように構成されている。
【００４３】
ところが、上記両プログラム処理部１１・１２は、正常に動作している間、ウォッチドッグタイマ１４のタイムアウト時間よりも短い時間間隔で、制御レジスタ１３の領域Ｂ１１・Ｂ１２に正常を示す値（真）を書き込んで、クリア信号ＣＬＲ１・ＣＬＲ２を真に設定しているので、前回リセットされた時点からタイムアウト時間が経過するよりも前に、両ラッチ回路２１・２２の出力信号が真になり、カウンタ３１がリセットされる。したがって、上記両プログラム処理部１１・１２は、正常に動作している間は、ウォッチドッグタイマ１４のタイムアウトが発生しない。
【００４４】
これに対して、両プログラム処理部１１・１２のいずれか（例えば、第１プログラム処理部１１）が暴走すると、当該プログラム処理部は、制御レジスタ１３の領域Ｂ１１・Ｂ１２のうちの対応する領域（この場合は、領域Ｂ１１）のリセットを繰り返すことができなくなる。したがって、前回リセットされた時点からタイムアウト時間が経過しても、両ラッチ回路２１・２２の出力信号の双方が真になることがない。この結果、比較器３３は、タイムアウト時間が経過した時点で、暴走を示すＮＭＩ信号を出力する。これにより、制御部１５は、ウォッチドッグタイマ１４のタイムアウトが発生したことを把握して、例えば、両プログラム処理部１１・１２を初期化するなど、予め定められた処理を行う。したがって、両プログラム処理部１１・１２のいずれが暴走しても、各プログラム処理部１１・１２の動作を正常動作に復帰させることができる。
【００４５】
また、ラッチ回路５１・５２は、暴走を示すＮＭＩ信号が出力された場合、それぞれに対応するラッチ回路２１・２２の反転出力をラッチし、ＮＭＩ信号とは独立したリセット信号が入力されるまでの間、ラッチした値を保持し続けている。例えば、上記の例のように、第１プログラム処理部１１のみが暴走した場合、ラッチ回路２２の出力のみが真なので、ラッチ回路５１の出力は、暴走を示す値（真）になり、ラッチ回路５２の出力が暴走していないことを示す値（偽）になる。
【００４６】
したがって、図２に示す状態レジスタ１６として、両ラッチ回路５１・５２の出力ＷＤＴ１Ｐ・ＷＤＴ２Ｐを読み出すことによって、制御部１５は、監視対象としているプログラム処理部１１・１２のうち、いずれが暴走したかを把握でき、例えば、暴走している方のみを初期化したり、暴走した方をユーザに提示したりするなど、各プログラム処理部の暴走の状態に応じた処理を行うことができる。
【００４７】
この結果、１つのカウンタ３１によって、複数のプログラム処理部１１・１２の暴走を監視しているため、それぞれの監視用のカウンタを別々に設ける場合よりも回路規模が縮小されているにも拘わらず、それぞれが暴走したか否かを判断でき、より適切な処置を講じることができる。
【００４８】
一方、第１プログラム処理部１１の暴走のみを監視する場合、制御部１５は、制御レジスタ１３の領域Ｂ１・Ｂ２に第１モードを示す値（真・偽）を書き込んで、図１に示す制御信号ＥＮＢ１・ＥＮＢ２を真・偽に設定している。
【００４９】
この状態では、第２プログラム処理部１２によるクリア信号ＣＬＲ２に拘わらず、第１プログラム処理部１１によるクリア信号ＣＬＲ１が真の場合に、カウンタ３１がリセットされる。したがって、第１プログラム処理部１１が暴走して、前回のリセット時点からタイムアウト時間が経過した時点で、暴走を示すＮＭＩ信号が出力される。これにより、第１モードの場合でも、監視対象となる第１プログラム処理部１１が暴走しても、当該第１プログラム処理部１１を正常動作に復帰させることができる。
【００５０】
また、この場合は、制御信号ＥＮＢ２が偽なので、監視対象ではない方に対応するラッチ回路５２は、リセットされている。また、監視対象に対応するラッチ回路５１の値ＷＤＴ１Ｐは、リセットされるまでの間、暴走検出時のラッチ回路２１の出力に応じた値に設定されている。したがって、モードに拘わらず、両ラッチ回路５１・５２の値ＷＤＴ１Ｐ・ＷＤＴ２Ｐを参照するだけで、暴走したプログラム処理部１１を特定できる。
【００５１】
同様に、第２プログラム処理部１２の暴走のみを監視する場合は、制御レジスタ１３の領域Ｂ１・Ｂ２に第２モードを示す値（真・偽）が書き込まれ、第１プログラム処理部１１によるクリア信号ＣＬＲ１に拘わらず、第２プログラム処理部１２によるクリア信号ＣＬＲ２が真の場合に、カウンタ３１がリセットされる。
【００５２】
なお、上記では、カウンタ３１がカウントアップする場合を例にして説明したが、これに限るものではなく、例えば、カウントダウンする構成であってもよい。いずれの場合であっても、前回リセットされてから、タイムアップ時間が経過すると、暴走を示す出力信号を出力できれば、同様の効果が得られる。
【００５３】
さらに、上記では、監視対象となるプログラム処理部が２つの場合を例にして説明したが、これに限るものではない。監視対象となるプログラム処理部毎に、ラッチ回路２１・５１、ＡＮＤ回路４２・５３並びにＯＲ回路５５と同様の部材を設けることによって、何ら支障なく、３以上のプログラム処理部の暴走を監視できる。
【００５４】
また、本実施形態では、制御レジスタ１３のビット領域Ｂ１・Ｂ２に監視の要否を示す値を設定することによって、監視対象を切り換えているが、これに限るものではない。例えば、監視対象が予め定められた複数に固定されていてもよい。なお、この場合は、制御信号ＥＮＢ１・ＥＮＢ２を処理するための回路（ビット領域Ｂ１・Ｂ２、ＡＮＤ回路４２〜４４のうち、監視対象の組み合わせ以外に対応する回路）は不要である。
【００５５】
ただし、本実施形態のように、制御レジスタ１３のビット領域Ｂ１・Ｂ２と、その出力信号（制御信号ＥＮＢ１・ＥＮＢ２）を処理するための回路を設け、監視対象を切り換え可能に構成した場合は、監視対象となるプログラム処理部１１・１２の動作を変更することなく、制御部１５がビット領域Ｂ１・Ｂ２を変更するだけで、監視対象を変更できるので、監視対象変更時の手間を削減できる。
【００５６】
さらに、本実施形態のように、上記ラッチ回路５１・５２のうち、監視対象ではないものをリセットすることによって、監視対象とするプログラム処理部がいずれの場合であっても、それぞれに対応するラッチ回路５１・５２の値を参照するだけで、暴走したプログラム処理部を特定できる。また、本実施形態では、各ラッチ回路５１・５２の値が状態レジスタ１６としてまとめられており、制御部１５が一括してアクセスできる。なお、図１の例では、プログラム処理部を監視対象から外すと、残りのプログラム処理部が１つだけであるが、プログラム処理部が３以上あり、あるプログラム処理部を監視対象から外しても、監視対象が複数の場合には、全てのラッチ回路の出力を読み出すだけで、これら複数の監視対象のいずれが暴走したかを判定できるので、特に効果が大きい。
【産業上の利用可能性】
【００５７】
複数の処理部のいずれかが暴走したことを検出し、例えば、暴走状態からの復帰処理など、暴走時のための処理を実行できると共に、検出後に、それらのいずれが暴走したかを特定でき、例えば、制御システムの分野など、安全性や利便性などを向上させるために、処理部の暴走後も何らかの処理が必要な用途に好適に使用できる。
【図面の簡単な説明】
【００５８】
【図１】本発明の実施形態を示すものであり、ウォッチドッグタイマの要部構成を示す回路図である。
【図２】上記ウォッチドッグタイマが設けられた情報処理装置全体の要部構成を示すブロック図である。
【図３】従来技術を示すものであり、ウォッチドッグタイマの要部構成を示す回路図である。
【符号の説明】
【００５９】
１１        第１プログラム処理部（処理部）
１２        第２プログラム処理部（処理部）
１４        ウォッチドッグタイマ
３１        カウンタ（計時手段）
３２        時間設定レジスタ（計時手段）
３３        比較器（計時手段）
４１        論理回路（リセット手段）
５１・５２  ラッチ回路
５３・５４  ＡＮＤ回路（ラッチ回路制御手段）
５５・５６  ＯＲ回路（ラッチ回路制御手段）
Ｔ１      入力端子
Ｔ２      入力端子
Ｔ１１      クリア端子
Ｔ１２      クリア端子
【図１】
2005092430.tif 000003
【図２】
2005092430.tif 000004
【図３】
2005092430.tif 000005