(57)【要約】【課題】プログラムの実行順序に異常が発生したことを検出する機能を備えるウォッチドック・タイマを提供する。【解決手段】ウォッチドック・タイマは、カウンタ１と、カウンタ１をクリアするタイミングで第一比較値（マジック・ワード）が書き込まれるクリアレジスタ７と、クリアレジスタ７への書き込みより前のタイミングで第一比較値と比較する第二比較値（設定比較値）が書き込まれる比較レジスタ８と、第一比較値と第二比較値を比較し、一致した場合に、カウンタをクリアする一致信号１４を出力し、一致しない場合に、不一致信号１５を出力する比較器９と、不一致信号が出力された場合に、不一致信号に基づいて、異常発生信号を出力する異常検出部（論理和回路９）と、を備える。【選択図】図１
2009289119.tif 000002
【特許請求の範囲】
【請求項１】
カウンタと、
前記カウンタをクリアするタイミングで第一比較値が書き込まれるクリアレジスタと、
前記クリアレジスタへの書き込みより前のタイミングで前記第一比較値と比較する第二比較値が書き込まれる比較レジスタと、
前記第一比較値と前記第二比較値を比較し、一致した場合に、カウンタをクリアする一致信号を出力し、一致しない場合に、不一致信号を出力する比較部と、
前記不一致信号が出力された場合に、前記不一致信号に基づいて、異常発生信号を出力する異常検出部と、を備えるウォッチドック・タイマ。
【請求項２】
前記比較部が一致信号を出力した後、前記比較レジスタへ前記第二比較値を書き込む書き換え制御部を、さらに備えることを特徴とする請求項１記載のウォッチドック・タイマ。
【請求項３】
前記クリアレジスタは、前記カウンタをクリアするタイミングを示す第一書き込み信号に基づいて、前記第一比較値が書き込まれ、
前記比較レジスタは、前記第一書き込みレジスタより前のタイミングで出力される第二書き込み信号に基づいて、前記第二比較値が書き込まれ、
前記書き換え制御回路は、前記第二書き込み信号が出力された後、前記一致信号が出力されたときに前記比較レジスタへ前記第二比較値を１回書き込むことを特徴とする請求項２記載のウォッチドック・タイマ。
【請求項４】
前記第一比較値は、実行中の処理を識別する処理識別子であり、
前記第二比較値は、次に前記カウンタをクリアするタイミングで実行する処理の処理識別子であり、
前記第一書き込み信号は、実行中の処理によって出力され、
前記第二書き込み信号は、前記第一書き込み信号を出力した後に、前記実行中の処理によって出力されること特徴とする請求項３記載のウォッチドック・タイマ。
【請求項５】
請求項１乃至４のいずれか一項に記載のウォッチドック・タイマを備えるマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータに関し、特にプログラムの暴走を検出するウォッチドッグ・タイマに関する。
【背景技術】
【０００２】
マイクロコンピュータは集積回路技術の進展に伴い、ＣＰＵ（central processing unit）は高速化し、より多くのメモリを集積することで、より複雑な応用が可能になってきている。複雑な応用に対応するためにプログラムはより大きく、より複雑化してきている。これに伴い、プログラムの評価がより難しく、全ての状態の検証は困難になってきている。そのため、フェール・セーフ機能のひとつとして、ウォッチドッグ・タイマ機能がマイクロコンピュータに内蔵されている。ウォッチドッグ・タイマは、定期的にクリアできなくなった場合にプログラムが暴走したことを検出する。
【０００３】
図６は、マイクロコンピュータに搭載されるウォッチドック・タイマの構成例を示すブロック図である。図６に示される、マイクロコンピュータ（以下、適宜「マイコン」という）のウォッチドッグ・タイマは、カウンタ６１、セレクタ６２、論理和回路６４、クリアレジスタ６７、及び制御回路６９から構成されている。クリアレジスタ６７は、クリアレジスタ６７への書き込みを指示する書込み信号７６に基づいて、カウンタ６１をクリアするために予め決められたデータが書き込まれる。制御回路６９は、書込み信号７６によってクリアレジスタ６７への書き込まれたデータが、予め決められたデータと等しいか照合する。照合した結果、ウィンドウ信号７４が有効期間で一致検出した場合、カウンタ６１をクリアする一致検出信号７５を出力し、一致検出しない場合やウィンドウ信号７４が有効でない期間で一致検出した場合、異常検出信号７３を出力する。セレクタ６２は、カウンタ６１からの複数のタイミングからオーバフローしたことを示すオーバフロー信号７１と、クリアレジスタ６７への書き込みが可能なことを示すウィンドウ信号７４とを出力する。論理和回路６４は、セレクタ６２からのオーバフロー信号７１または制御回路６９からの異常検出信号７３を受けて、ＣＰＵに対してリセット信号又は割り込み信号７２を出力する。
【０００４】
このウォッチドッグ・タイマはカウンタ６１がオーバフローする時間は、セレクタ６２により予め選択可能である。セレクタ６２で選択されたオーバフロー時間が経過する前に、内部バスから書込み信号７６に同期してクリアレジスタ６７に予め決められたデータを定期的に書き込むことによって、カウンタ６１をクリアしてオーバフローを発生させないようにして使用する。プログラムの暴走によりカウンタ６１のクリアができなかった場合にはセレクタ６２で選択されたオーバフロー時間経過後に、オーバフロー信号７１を発生させ、ＣＰＵに対してリセット信号又は割り込み信号７２を出力する。これによって、マイクロコンピュータは、プログラムの暴走を検出する。
【０００５】
また、ウォッチドッグ・タイマは、プログラムの異常動作により間違えてカウンタ６１がクリアされないように、クリアレジスタ６７に書き込むデータを比較している。予め決められたデータ以外が書き込まれた場合には異常検出信号７３によりＣＰＵに対してリセット信号又は割り込み信号７２を出力する。これによって、マイクロコンピュータは、プログラムの異常を検出する。また、カウンタ６１を短い間隔でクリアするような動作が行われたことを検出できるように、ウォッチドッグ・タイマは、クリアレジスタ６７への書き込みの許可タイミングを指定するウィンドウ信号７４を準備している。
【０００６】
特許文献１には、プログラムの暴走を検出するマイクロコンピュータが開示されている。特許文献１に開示されているマイクロコンピュータの構成を図７に示す。図７に示される、マイクロコンピュータは、クリア命令の実行によるクリアパルス９３によりクリアされるインターバルタイマ８１、クリア命令の実行によりトグル動作を行いキャプチャ信号９６かキャプチャ信号９８を発生するトグルＦ／Ｆ８２、プログラムカウンタ８５の値をキャプチャ信号９６によりキャプチャする第一キャプチャレジスタ８６、キャプチャ信号９８によりキャプチャする第二キャプチャレジスタ８８、第一キャプチャレジスタ８６の値と第二キャプチャレジスタ８８の値を比較して一致したら一致検出パルス９７を出力する比較回路８７、インターバルタイマ１からのオーバフロー９２または比較回路８７からの一致検出パルス９７によりＣＰＵに対してリセット信号又は割り込み信号９５を出力する論理和回路８４から構成されている。
【０００７】
このマイクロコンピュータはプログラムカウンタ８５の値を２つのキャプチャレジスタに交互にキャプチャしてその値を比較することによって、インターバルタイマ８１のクリアが前回のクリアと同じアドレスで発生したかを検出できる。これにより、プログラムがウォッチドッグ・タイマのクリアを行うような部分でループしてしまうようなプログラムの暴走を検出している。
【０００８】
図６に示すウォッチドック・タイマあるいは図７に示すマイクロコンピュータでは、処理フロー（プログラムの実行順序）のどこでクリアを行っても、どの処理でクリアされたかを識別することはできなかった。例えば、図４に示した処理フローに基づいて、処理Ｂ５２でクリアして、処理Ｃ５３に分岐し、処理Ｃ５３でクリアする処理フローを実行する場合を正常動作とする。このような処理フローで不具合が発生し、処理Ｂ５２から処理Ｆ５６に分岐してしまい、処理Ｆ５６でクリアしたとする。このような場合でも、図６のウォッチドッグ・タイマあるいは図７のマイクロコンピュータのクリア条件は同じであるため、異常な処理フローになったことが検出できなかった。
【０００９】
具体的には、図７のマイクロコンピュータでは、どこでクリアされたかを確認するため、同じアドレス（アドレスの命令）でクリアされた場合を検知している。このため、処理フローの処理の順番に異常が発生した場合でも、誤って実行されている処理が異なるアドレスを用いてクリアされている場合には、処理フローの異常を検出することができなかった。
【００１０】
このように、図７に示す従来技術では、処理フローに注目しているものの、単に同じアドレスの命令でのクリアが連続した場合を検出できることにとどまっていた。
【００１１】
また、図６に示すウォッチドック・タイマは、ウォッチドッグ・タイマをクリアするタイミングに制限をつけることで異常なクリアを検出するものである。プログラムのどこでウォッチドッグ・タイマをクリアしても構わなかった。また、どの処理でクリアされているかを認識する機能を備えていなかった。即ち、オーバフローまでの時間の設定を変更することはできるものの、どのプログラムでクリアが実行されたかを監視することはできなかった。
【特許文献１】特開平５−１００８７６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
プログラムが大きく、複雑化することにともなって、単にプログラムの暴走を検出するのみでは十分なフェール・セーフ機能と言えないという問題があった。例えば、プログラムの実行順序に異常が発生したことを検出する機能を備えることが要望されていた。
【課題を解決するための手段】
【００１３】
本発明に係るウォッチドック・タイマの一態様は、カウンタと、前記カウンタをクリアするタイミングで第一比較値が書き込まれるクリアレジスタと、前記クリアレジスタへの書き込みより前のタイミングで前記第一比較値と比較する第二比較値が書き込まれる比較レジスタと、
前記第一比較値と前記第二比較値を比較し、一致した場合に、カウンタをクリアする一致信号を出力し、一致しない場合に、不一致信号を出力する比較部と、前記不一致信号が出力された場合に、前記不一致信号に基づいて、異常発生信号を出力する異常検出部と、を備える。比較レジスタを備え、比較レジスタの値とクリアレジスタの値とを比較してカウンタをクリアすることにより、外部からカウンタをクリアするための値を設定し、設定した値を用いてカウンタをクリアすることができる。カウンタをクリアするための値に処理を識別する値を用いることによって、処理フローの異常を検出することができる。
【００１４】
また、本発明に係るマイクロコンピュータの一態様は、上述したウォッチドック・タイマを備える。
【発明の効果】
【００１５】
本発明によれば、プログラムの実行順序に異常が発生したことを検出することが可能となる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。各図面において同一の構成または機能を有する構成要素および相当部分には、同一の符号を付し、その説明は省略する。
【００１７】
（実施形態１）
図１は、本発明の実施形態１に係るウォッチドック・タイマの構成例を示すブロック図である。図１に示すように、ウォッチドッグ・タイマは、カウンタ１、セレクタ２、論理和回路（異常検出部）４、クリアレジスタ７、比較レジスタ８、比較器（比較部）９、及び書き換え制御回路（書き換え制御部）１０を備える。比較レジスタ８を備えることにより、ウォッチドッグ・タイマをクリアするためのデータを外部から変更できるようし、プログラムの処理フローに応じて、次にウォッチドック・タイマをクリアできる条件を変更する。また、本実施形態では、さらに書き換え制御回路１０を設置し、ウォッチドック・タイマをクリアできる条件の変更を制限してより安全にする一態様を説明する。これにより異常な処理フローが発生したことを検出する。以下に、各構成要素について説明する。
【００１８】
カウンタ１は、カウント値をセレクタ２に通知する。カウント値は、一致信号１４によってクリアされる。セレクタ２は、閾値を保持し、カウンタ１から通知されたカウント値がこの閾値を超えると、オーバフローが発生したと判定し、ＣＰＵにリセット信号または割り込み信号を発生させる。
【００１９】
クリアレジスタ７は、第一比較値（以降、「マジック・ワード」という）が書き込まれるレジスタである。マジック・ワードは、カウンタ１をオーバフロー発生前にクリアするためのデータであり、内部バス２０から転送され、第一書込み信号１３に同期してクリアレジスタ７に書き込まれる。
【００２０】
比較レジスタ８は、第二比較値（以降、「設定比較値」という）が書き込まれるレジスタである。設定比較値は、マジック・ワードと比較するデータであり、内部バス２０から転送され、一致信号１４と第二書込み信号１６とに基づいて有効にされる比較レジスタ書込み信号１７（書き換え制御回路１０の説明において後述する）に同期して、比較レジスタ８に書き込まれる。
【００２１】
比較器９は、第一書込み信号１３に同期して、クリアレジスタ７の値と比較レジスタ８の値とを比較し、一致すればカウンタをクリアするための一致信号１４を、一致しなければ不一致信号１５を出力する。
【００２２】
書き換え制御回路１０は、第二書込み信号１６と一致信号１４とが有効になったときに、比較レジスタ８へ設定比較値の書き込みを有効とする比較レジスタ書込み信号１７を出力する。また、比較レジスタ８への書き込みが完了したら比較レジスタ８への書込み信号１７を無効にする（制限する）。これにより、比較レジスタ８への書き換えを１回に制御し、他のプログラムから不正に設定比較値が変更されることを防止する。
【００２３】
論理和回路４は、セレクタ２からのオーバフロー信号１１または比較器９からの不一致信号１５のどちらかが有効になったらＣＰＵに対するリセット又は割り込み信号（異常発生信号）１２を有効にする。
なお、第一書込み信号１３を有効にし、マジック・ワードを内部バス２０へ転送すること、及び、第二書込み信号１６を有効し、設定比較値を内部バス２０へ転送することは、ウォッチドック・タイマが搭載されるマイクロコンピュータが有するアプリケーションプログラムの処理として行われる。
【００２４】
次に動作を説明する。図１に示すように、本実施形態のウォッチドッグ・タイマでは、カウンタ１がオーバフローする前にカウンタ１をクリアするために、第一書込み信号１３に同期して定期的に内部バス２０からクリアレジスタ７にマジック・ワードが書き込まれる。比較レジスタ８には、所定のタイミングでマジック・ワードと比較する設定比較値が書き込まれる。比較器９はクリアレジスタ７が保持する値と比較レジスタ８が保持する値とを比較し、一致したら一致信号１４を有効にしてカウンタ１をクリアする。一致しなければ、不一致信号１５を有効にして、論理和回路４を介してリセット信号又は割り込み信号１２を有効にしてＣＰＵに異常を通知する。カウンタ１がクリアされることなく、セレクタ２で指定されたオーバフロー時間を超えた場合、オーバフロー信号１１が有効になり、論理和回路４を介してリセット信号又は割り込み信号１２を有効にしてＣＰＵに異常を通知する。
【００２５】
比較レジスタ８への書き込みは、書き換え制御回路１０によって制御される。具体的には、書き換え制御回路１０は、第二書込み信号１６に同期して内部バス２０から比較レジスタ８への書き込みが要求されたとき、一致信号１４に同期して比較レジスタ書込み信号１７を有効にし、比較レジスタ８の値を内部バス２０から転送される設定比較値へ変更させる。比較レジスタ８の値が変更されるために、次回のマジック・ワードと比較する値が変更されることになる。
【００２６】
また、書き換え制御回路１０は、一致信号１４が有効になったときに同期して、１回比較レジスタ書込み信号１７を有効にし、その後次に一致信号１４が有効になるまで、すなわち、カウンタ１がクリアされるまで、第二書込み信号１６が有効になっても無視する。言い換えれば、書き換え制御回路１０は、一度比較レジスタ８を書き換えた後、再度一致信号１４が有効になり、かつ、第二書込み信号１６が有効になるタイミングまで、比較レジスタ８の書き換えを実施させない。これにより、アプリケーションプログラムが設定比較値を不正に書き換えたり、誤って書き換えることを防止する。アプリケーションプログラムは、第一書込み信号１３を有効にし、内部バス２０へマジック・ワードを転送した後、第二書込み信号１６を有効にし、内部バス２０へ、設定比較値を転送する。これにより、カウンタ１をクリアした後、比較レジスタ８の値として、次に実行する処理の処理識別子を格納することが可能になる。
【００２７】
次に、ウォッチドック・タイマの動作を図２、３を用いて詳細に説明する。図２は、正常時の動作例を示すタイミングチャートであり、図３は、異常時の動作例を示すタイミングチャートである。図２では、マジック・ワードと設定比較値に、処理を識別する処理識別子を用いている。また、図４に示す処理フローの処理を用いて説明する。
【００２８】
図２を用いて正常時の動作を説明する。図２では、処理Ａ５１実施後、処理Ｂ５２へ移行する場合を示している。処理Ａ５１、処理Ｂ５２の処理識別子をそれぞれ「ａ」、「ｂ」とする。処理Ａ５１は、所定のタイミングで第一書込み信号１３を有効にし、内部バス２０へマジック・ワード「ａ」を転送するプログラムを実行させた後、第二書込み信号１６を有効にし、内部バス２０へ「ｂ」を転送するプログラムを実行させる。所定時間経過後、処理Ｂ５２は、第一書込み信号１３を有効にし、内部バス２０へマジック・ワード「ｂ」を転送するプログラムを実行させる。この場合、ウォッチドック・タイマの動作は次のようになる。
【００２９】
処理Ａ５１実行中において、第一書込み信号１３を有効にすることに同期して内部バス２０へマジック・ワード「ａ」が転送されると、クリアレジスタ７へ書き込まれる。このとき、比較レジスタ８には、「ａ」が既に保持されている。また、第一書込み信号１３が有効になると、比較器９は、クリアレジスタ７「ａ」と比較レジスタ８の「ａ」を比較し、一致を検出すると、一致信号１４を出力する。一致信号１４が出力されることにより、カウンタ１のカウント値がクリアされる。また、書き換え制御回路１０は、一致信号１４が有効になり、かつ、第二書込み信号１６を有効にすることに同期して内部バス２０へ比較値「ｂ」が転送されると、比較レジスタ書込み信号１７を１回有効にして、比較レジスタ８へ比較値「ｂ」を書き込んだ後、比較レジスタ８への書き込みを無効とする（制限する）。
【００３０】
所定期間経過後処理Ｂ５２実行中において、第一書込み信号１３を有効にすることに同期して内部バス２０へマジック・ワード「ｂ」が転送されると、クリアレジスタ７へ書き込まれる。同様に、比較器９は、クリアレジスタ７と比較レジスタ８との値が一致したことを検出し、一致信号１４を出力する。一致信号１４が出力されることにより、クリアレジスタ１のカウンタがクリアされ、正常な動作が継続する。
【００３１】
次に、図３を用いて異常時の動作を説明する。図３では、処理Ｂ５２実施後、処理Ｃ５３へ移行する場合に、誤って処理Ｄ５４が実行された場合を示している。処理Ｂ５２、処理Ｃ５３、処理Ｄ５４の処理識別子をそれぞれ「ｂ」、「ｃ」、「ｄ」とする。処理Ｂ５２は、第一書込み信号１３を有効にし、内部バス２０へマジック・ワード「ｂ」を転送するプログラムを実行させた後、第二書込み信号１６を有効にし、内部バス２０へ「ｃ」を転送するプログラムを実行させる。所定時間経過後、誤って実施された処理Ｄ５４は、第一書込み信号１３を有効にし、内部バス２０へマジック・ワード「ｄ」を転送するプログラムを実行させる。この場合、ウォッチドック・タイマの動作は次のようになる。
【００３２】
処理Ｂ５２実行中において、第一書込み信号１３を有効にすることに同期して内部バス２０へマジック・ワード「ｂ」が転送されると、クリアレジスタ７へ書き込まれる。このとき、比較レジスタ８には、「ｂ」が既に保持されている。また、第一書込み信号１３が有効になると、比較器９は、クリアレジスタ７の「ｂ」と比較レジスタ８の「ｂ」を比較し、一致であることを検出すると、一致信号１４を出力する。一致信号１４が出力されることにより、クリアレジスタ１のカウント値がクリアされる。また、書き換え制御回路１０は、一致信号１４が有効になり、かつ、第二書込み信号１６を有効にすることに同期して内部バス２０へ比較値「ｃ」が転送されると、比較レジスタ書込み信号１７を1回有効にして、比較レジスタ８へ比較値「ｃ」を書き込む。
【００３３】
所定期間経過後処理Ｄ５４実行中において、第一書込み信号１３を有効にすることに同期して内部バス２０へマジック・ワード「ｄ」が転送されると、クリアレジスタ７へ書き込まれる。また、第一書込み信号１３が有効になると、比較器９は、クリアレジスタ７の「ｄ」と比較レジスタ８の「ｃ」を比較し、不一致であることを検出すると、不一致信号１５を出力する。不一致信号１５が出力されると、論理和回路４はリセット信号又は割り込み信号１２を有効にし、ＣＰＵへ異常発生を通知する。このようにして、処理フローの異常発生を検出する。
【００３４】
次に、本実施形態のウォッチドック・タイマを利用したときに、実行する処理の誤りが検出できることを、図４のプログラム処理フローを例にして説明する。処理Ａ５１で比較レジスタ８が保持する値を「ａ」から「ｂ」に変更し、処理Ｂ５２はマジック・ワードがｂを前提にしてウォッチドッグ・タイマをクリアする。さらに次が処理Ｃ５３の場合、処理Ｂ５２で比較レジスタ８が保持する値を「ｂ」から「ｃ」に変更する。処理Ｃ５３は、新しいマジック・ワードｃを前提としてウォッチドッグ・タイマをクリアする。次が処理Ｄ５４の場合、処理Ｃ５３で比較レジスタ８が保持する値を「ｃ」から「ｄ」に変更する。処理Ｄ５４は、新しいマジック・ワードｄを前提としてウォッチドッグ・タイマをクリアする。次が処理Ｅ５５場合、処理Ｄ５４で比較レジスタ８が保持する値を「ｄ」から「ｅ」に変更する。
【００３５】
また、処理Ｂ５２の後、次が処理Ｆ５６の場合、処理Ｂ５２で比較レジスタ８が保持する値を「ｂ」から「ｆ」に変更する。処理Ｆ５６は、新しいマジック・ワードｆを前提としてウォッチドッグ・タイマをクリアする。次が処理Ｇ５７の場合、処理Ｆ５６で比較レジスタ８が保持する値を「ｆ」から「ｇ」に変更する。処理Ｇ５７は、新しいマジック・ワードｇを前提とする。次の処理が処理Ｅ５５場合、処理Ｇ５７で比較レジスタ８が保持する値を「ｇ」から「ｅ」に変更する。
【００３６】
このように、各処理の後に実行すべき処理に対応したマジック・ワードを比較レジスタ８へ設定することによって、従来のウォッチドッグ・タイマでは検出できなかった、実行する処理の順序に誤りが生じた場合を検出することができる。例えば、図３でも説明したように、処理Ｂ５２から処理Ｃ５３へ進むところを処理Ｄ５４へ進んだ場合、処理Ｄ５４ではマジック・ワードとして「ｄ」をクリアレジスタ７へ書き込む。しかし、処理Ｂ５２で比較レジスタ８へ「ｃ」を設定しているため、処理Ｄ５４が書き込んだマジック・ワード「ｄ」とは一致しなくなる。このため、比較器９が不一致信号１５を発生させ、ＣＰＵにリセット信号又は割り込み信号１２を有効にしてプログラムの処理に異常があったことを通知できる。
【００３７】
また、処理Ｂ５２において、処理Ｃ５３へ進むところ処理Ｆ５６へ誤って分岐した場合にも、同様に検出することができる。このような場合、プログラムの分岐命令が誤っていることを検出することが可能になる。各処理において、カウンタ１のクリアを実行させることによって、実行される処理フロー（パス）を検査することになり、処理フローに異常が発生したことを検出することができる。
【００３８】
（その他の実施形態）
実施形態１では、書き換え制御回路１０によって比較レジスタ８への書き込みを一致信号１４が有効になったときに書き換えるように制御している。これに限らず、書き換え制御回路１０ではなく、アプリケーションプログラムが実施することとしてもよい。この場合、比較レジスタ８は、第二書込み信号１６に同期して書き換えが実行されるため、アプリケーションプログラムによる制御が必要となる。
【００３９】
たとえば、図５に示すウォッチドック・タイマの構成である場合、比較レジスタ８の書き換えがアプリケーションプログラムによる制御によって行われ、アプリケーションプログラムの処理において、書き換えるタイミングを任意に変更することが可能となる。
【００４０】
このようにマジック・ワードを書き換えることによって、ウォッチドッグ・タイマをクリアする条件を変えることができる。すなわち、比較レジスタ８を備え、比較レジスタ８の値とクリアレジスタ７の値とを比較してカウンタをクリアすることにより、外部からカウンタをクリアするための値を設定し、設定した値を用いてカウンタをクリアすることができる。また、外部からカウンタをクリアする値を所望の値に設定することにより、カウンタをクリアした処理を識別することが可能になっている。これにより、ウォッチドッグ・タイマをクリアする処理の順番を指定することが可能となり、従来のウォッチドッグ・タイマで検出できなかったプログラムの処理フローの異常を検出できる効果が得られる。
【００４１】
また、本発明に係るウォッチドック・タイマは、応用プログラムが大きく、複雑になっても、プログラムが正しいフローで動作しているかを確認できるという効果を奏する。
【００４２】
なお、本発明は上記に示す実施形態に限定されるものではない。本発明の範囲において、上記実施形態の各要素を、当業者であれば容易に考えうる内容に変更、追加、変換することが可能である。
【図面の簡単な説明】
【００４３】
【図１】本発明の実施形態１に係るウォッチドック・タイマの構成例を示すブロック図である。
【図２】実施形態１の正常時の動作例を示すタイミングチャートである。
【図３】実施形態１の異常時の動作例を示すタイミングチャートである。
【図４】プログラム処理フロー例を示す図である。
【図５】他の実施形態のウォッチドック・タイマの構成例を示すブロック図である。
【図６】マイクロコンピュータに搭載されるウォッチドック・タイマの構成例を示すブロック図である。
【図７】従来のマイクロコンピュータの構成例を示すブロック図である。
【符号の説明】
【００４４】
１  カウンタ
２  セレクタ
４  論理和回路
７  クリアレジスタ
８  比較レジスタ
９  比較器
１０  書き換え制御回路
１１  オーバフロー信号
１２  リセットまたは割り込み信号
１３  第一書込み信号
１４  一致信号
１５  不一致信号
１６  第二書込み信号
１７  比較レジスタ書込み信号
２０  内部バス
【図１】
2009289119.tif 000003
【図２】
2009289119.tif 000004
【図３】
2009289119.tif 000005
【図４】
2009289119.tif 000006
【図５】
2009289119.tif 000007
【図６】
2009289119.tif 000008
【図７】
2009289119.tif 000009