(57)【要約】【課題】ソフトウェアが暴走中に誤って暴走検出カウンタをクリアして、暴走検出ができない可能性がある。【解決手段】暴走検出用カウンタ１４のクリアをソフトウェアを介さずハードウェアで行なうことにより、ソフトウェアの暴走中に、誤ってソフトウェアが暴走検出カウンタ１４をクリアすることを防止できるため、ソフトウェアが暴走したときの暴走検出を確実に行なうことができる。具体的には、ソフトウェアの実行アドレスを監視し、あらかじめ登録されたアドレスを実行していれば、暴走検出カウンタ１４のクリアを行なう。また、マイコン周辺ハードウェア１３の要因がすべて正しく機能している場合、に暴走検出用カウンタのクリアを行なう。【選択図】  図１
2004151846.tif 000002
【特許請求の範囲】
【請求項１】
クリアから所定時間を経過すると異常状態信号を出力する暴走検出カウンタと、あらかじめ所定のアドレスが登録されたアドレス保持用のＲＯＭと、プログラムを実行するアドレスを発生するプログラムカウンタと、前記プログラムカウンタにより実行している前記アドレスと前記ＲＯＭに登録された前記アドレスとを比較して前記ＲＯＭに登録された前記アドレスが実行されたとき前記暴走検出カウンタをクリアする比較器とを備えた暴走検出装置。
【請求項２】
クリアから所定時間を経過すると異常状態信号を出力する暴走検出カウンタと、あらかじめ所定のアドレスが登録されたアドレス保持用のＲＯＭと、プログラムを実行するアドレスを発生するプログラムカウンタと、前記所定のアドレスごとに設けられて前記プログラムカウンタにより実行している前記アドレスと前記ＲＯＭに登録された前記アドレスを比較して一致した場合に出力信号を出力する複数の比較器と、前記比較器に対応して設けられ前記出力信号を登録された前記アドレスを既に実行した状態として保持する複数のラッチ回路と、前記複数のラッチ回路に接続されて登録されたすべての前記アドレスが実行されたかを判定して前記暴走検出カウンタをクリアするＡＮＤゲートとを備えた暴走検出装置。
【請求項３】
クリアから所定時間を経過すると異常状態信号を出力する暴走検出カウンタと、あらかじめ所定のアドレスが登録されたアドレス保持用のＲＯＭと、プログラムを実行するアドレスを発生するプログラムカウンタと、前記所定のアドレスごとに設けられて前記プログラムカウンタにより実行している前記アドレスと前記ＲＯＭに登録された前記アドレスを比較して一致した場合に出力信号を出力する複数の比較器と、前記比較器に対応して設けられ前記出力信号を登録された前記アドレスを既に実行した状態として保持する複数のラッチ回路と、前記ラッチ回路に接続されて登録されたいずれかの前記アドレスを実行したかを判定して前記暴走検出カウンタをクリアするＯＲゲートとを備えた暴走検出装置。
【請求項４】
クリアから所定時間を経過すると異常状態信号を出力する暴走検出カウンタと、あらかじめ所定のアドレスが登録されたアドレス保持用のＲＯＭと、このＲＯＭの前記アドレスを選択するセレクタと、プログラムを実行するアドレスを発生するプログラムカウンタと、このプログラムカウンタにより実行されている前記アドレスと前記セレクタにより選択された前記アドレスを比較して一致した場合に出力信号を出力する複数の比較器と、前記出力信号を入力して前記ＲＯＭの前記アドレスの何番目と比較しているのかをカウントし前記セレクタにつぎのアドレスを選択させる信号を出力するとともに所定のカウント数のときにアドレス比較が終了したとして前記暴走検出カウンタをクリアする比較順序カウンタとを備えた暴走検出回路。
【請求項５】
周辺ハードウェアを有するＣＰＵと、クリアから所定時間経過後に前記ＣＰＵに異常状態信号を出力する暴走検出カウンタと備えた暴走検出装置であって、前記周辺ハードウェアの割込み信号により前記暴走検出カウンタをクリアすることを特徴とする暴走検出装置。
【請求項６】
所定の暴走検出周期を超えると異常状態信号を出力する暴走検出カウンタと、前記暴走検出周期より短いタイマ周期時間を計時するタイマと、前記タイマ周期時間が経過する度にカウントし所定値に達すると前記暴走検出カウンタのクリアを行う信号を出力するカウンタとを備えた暴走検出装置。
【請求項７】
所定の暴走検出周期を超えると異常状態信号を出力する暴走検出カウンタと、前記暴走検出周期より短い周期で動作するＡ／Ｄ変換機と、このＡ／Ｄ変換機によるＡ／Ｄ変換が終了する度にカウントし所定値に達すると前記暴走検出カウンタのクリアを行う信号を出力するカウンタとを備えた暴走検出装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、例えばマイクロコンピュータ等のコンピュータにおける暴走検出カウンタを用いた暴走検出装置に関するものである。
【０００２】
【従来の技術】
マイクロコンピュータは図８に示す様に、ＣＰＵ、ＲＯＭ、ＲＡＭ、及び周辺ハードウェア等から構成される。周辺ハードウェアはタイマ、Ａ／Ｄ変換器、暴走検出カウンタなどを有する。
【０００３】
（従来例１）
従来、組み込みマイコンシステムにおいてプログラムの暴走を検出するには次に示す方式が採用されている。
すなわち、図９（ａ）に示すように、マイコン動作時は暴走検出カウンタを常に動作させておき、メインループ中の毎回必ず通る場所で、暴走検出用タイマをクリアする。正常動作時には暴走検出カウンタがメインループ毎にクリアされるため、暴走検出カウンタがオーバーフローすることはない。
【０００４】
ところが、ソフトウェアが暴走し、所定のメインループを動作せず、一定の場所で無限ループに入った場合や、ソフトウェアの記述されていない場所を実行した場合、メインループの所定の場所で暴走検出用タイマをクリアすることができなくなり、所定の時間経過後に暴走検出カウンタがオーバーフローすることにより、ＣＰＵに対して、異常信号を発生する。
【０００５】
（従来例２）
また、暴走検出の効果を向上する手段として、ソフトウェアの複数のチェックポイントをすべて実行したときのみ暴走検出カウンタをクリアする方法や、ソフトウェアの複数のチェックポイントを順番とおり実行したときのみ暴走検出カウンタをクリアする方法が、知られている（特許文献参照）。ここでは、図９（ｂ）に示すようにソフトウェア中の複数の個所を通ったかどうかの判定を行うため、ソフトウェアによりチェックポイントを通過したことを示すフラグを設定し、すべてのフラグがセットされていれば、暴走検出用カウンタをクリアする方法が紹介されている。
【０００６】
【特許文献】
特開平４−２４１６４２号公報（段落００９〜の内容および図１）
【０００７】
【発明が解決しようとしている課題】
従来構成の暴走検出手段を用いた場合、ソフトウェアにより暴走検出カウンタをクリアすることが可能であるため、暴走を検出することができない場合がある。
【０００８】
例えば、従来例１の様な構成の場合、ソフトウェアが暴走検出カウンタのクリアを含む無限ループに入った場合、暴走検出カウンタは常にクリアされ続けるため、暴走検出カウンタがオーバーフローすることは無く、システムとして暴走を検出することはできない。
【０００９】
また、従来例２の場合においても、暴走検出カウンタのクリアやチェックポイントを通過したか否かの判定をソフトウェアにより「チェックポイント通過フラグのセット命令」を記述する構成であるため、ソフトウェアの暴走中に通過判定用のレジスタを設定する命令を実行する可能性がある。もし、ソフトウェアの暴走中に上記命令を実行するループに入った場合、本来期待しているソフトウェアのチェックポイントを通過していないにも関わらず暴走検出カウンタをクリアしてしまうため、暴走検出カウンタがオーバーフローすることは無く、本来の暴走を検出できない可能性がある。
【００１０】
この様にソフトウェアにより暴走検出カウンタをクリア可能なシステムにおいては、どのような手段を用いても、ソフトウェアでソフトウェア自身の暴走を完全に検出することは不可能である。
【００１１】
したがって、この発明の目的は、ハードウェアにより暴走の検出を実現することにより、暴走検出の精度向上を行なうことができる暴走検出装置を提供することである。
【００１２】
【課題を解決するための手段】
請求項１記載の暴走検出装置は、クリアから所定時間を経過すると異常状態信号を出力する暴走検出カウンタと、あらかじめ所定のアドレスが登録されたアドレス保持用のＲＯＭと、プログラムを実行するアドレスを発生するプログラムカウンタと、プログラムカウンタにより実行しているアドレスとＲＯＭに登録されたアドレスとを比較してＲＯＭに登録されたアドレスが実行されたとき暴走検出カウンタをクリアする比較器とを備えたものである。
【００１３】
請求項１記載の暴走検出装置によれば、プログラムカウンタが実行するアドレスとあらかじめＲＯＭに登録されたアドレスを、比較器により比較して、登録されたアドレスを実行したことを監視することにより、ソフトウェア処理を介さずに、暴走検出カウンタのクリアを実現できる。
【００１４】
請求項２記載の暴走検出装置は、クリアから所定時間を経過すると異常状態信号を出力する暴走検出カウンタと、あらかじめ所定のアドレスが登録されたアドレス保持用のＲＯＭと、プログラムを実行するアドレスを発生するプログラムカウンタと、所定のアドレスごとに設けられてプログラムカウンタにより実行しているアドレスとＲＯＭに登録されたアドレスを比較して一致した場合に出力信号を出力する複数の比較器と、比較器に対応して設けられ出力信号を登録されたアドレスを既に実行した状態として保持する複数のラッチ回路と、複数のラッチ回路に接続されて登録されたすべてのアドレスが実行されたかを判定して暴走検出カウンタをクリアするＡＮＤゲートとを備えたものである。
【００１５】
請求項２記載の暴走検出装置によれば、ＲＯＭに登録されたすべてのアドレスを実行した時にのみ暴走検出カウンタのクリアを行うため、すべての登録アドレスを実行できたことの確認を、ソフトウェアを介さずハードウェアのみにより実現できる。これにより、確実に登録されたアドレスを実行できたかどうかを判定でき、暴走検出の精度が向上する。
【００１６】
請求項３記載の暴走検出装置は、クリアから所定時間を経過すると異常状態信号を出力する暴走検出カウンタと、あらかじめ所定のアドレスが登録されたアドレス保持用のＲＯＭと、プログラムを実行するアドレスを発生するプログラムカウンタと、所定のアドレスごとに設けられてプログラムカウンタにより実行しているアドレスとＲＯＭに登録されたアドレスを比較して一致した場合に出力信号を出力する複数の比較器と、比較器に対応して設けられ出力信号を登録されたアドレスを既に実行した状態として保持する複数のラッチ回路と、ラッチ回路に接続されて登録されたいずれかのアドレスを実行したかを判定して暴走検出カウンタをクリアするＯＲゲートとを備えたものである。
【００１７】
請求項３記載の暴走検出装置によれば、ＲＯＭに登録されたいずれかのアドレスを実行した時にのみ暴走検出カウンタのクリアを行い、例えばメイン処理のパスが複数に分岐する様な構成のソフトウェアにおいて、登録アドレスのいずれかが実行できたことの確認を、ソフトウェアを介さずハードウェアのみにより実現できる。これにより、確実に登録されたアドレスを実行できたかどうかを判定でき、暴走検出の精度が向上する。
【００１８】
請求項４記載の暴走検出装置は、クリアから所定時間を経過すると異常状態信号を出力する暴走検出カウンタと、あらかじめ所定のアドレスが登録されたアドレス保持用のＲＯＭと、このＲＯＭのアドレスを選択するセレクタと、プログラムを実行するアドレスを発生するプログラムカウンタと、このプログラムカウンタにより実行されているアドレスとセレクタにより選択されたアドレスを比較して一致した場合に出力信号を出力する複数の比較器と、出力信号を入力してＲＯＭのアドレスの何番目と比較しているのかをカウントしセレクタにつぎのアドレスを選択させる信号を出力するとともに所定のカウント数のときにアドレス比較が終了したとして暴走検出カウンタをクリアする比較順序カウンタとを備えたものである。
【００１９】
請求項４記載の暴走検出装置によれば、例えばメインループの構成を有し、処理を上から順次実行される構成されるソフトウェアにおいて、登録されたアドレスが順次実行したかをソフトウェアを介さず、暴走検出カウンタのクリアを行うことができる。これにより、ソフトウェアが確実に登録されたアドレスを順次実行したかどうかを判定できるため、暴走検出の精度が向上する。
請求項５記載の暴走検出装置は、周辺ハードウェアを有するＣＰＵと、クリアから所定時間経過後にＣＰＵに異常状態信号を出力する暴走検出カウンタと備えた暴走検出装置であって、周辺ハードウェアの割込み信号により暴走検出カウンタをクリアすることを特徴とするものである。
【００２０】
請求項５記載の暴走検出装置によれば、あらかじめ定期的に起こることを前提に構成しているハードウェアの割込み回数を監視することにより、暴走の検出を行なうことができる。例えば、ソフトウェアのメイン周期をカウントしているタイマの割込みが一定時間発生しない場合や、定期的に行なっているＡ／Ｄ変換が発生しない場合にシステムの異常状態信号をＣＰＵに対して発生する。これにより暴走検出の精度向上が実現できる。
【００２１】
請求項６記載の暴走検出装置は、所定の暴走検出周期を超えると異常状態信号を出力する暴走検出カウンタと、暴走検出周期より短いタイマ周期時間を計時するタイマと、タイマ周期時間が経過する度にカウントし所定値に達すると暴走検出カウンタのクリアを行う信号を出力するカウンタとを備えたものである。
【００２２】
請求項６記載の暴走検出装置によれば、定期的に発生するタイマ割込みを暴走検出カウンタのクリア要因にすることで、ソフトウェアの暴走により、「タイマの停止命令」を実行し、定期タイマが発生しなくなった場合においても暴走を検出することができる。ソフトウェアが指定されたパスを正常にとおっている場合であっても、定期時間の計時ができないことにより暴走を検出することができるため、暴走検出の精度が向上する。また、正常にタイマ計時ができないと致命的な欠陥となるシステムにおける暴走検出手段として有効である。
【００２３】
請求項７記載の暴走検出装置は、所定の暴走検出周期を超えると異常状態信号を出力する暴走検出カウンタと、暴走検出周期より短い周期で動作するＡ／Ｄ変換機と、このＡ／Ｄ変換機によるＡ／Ｄ変換が終了する度にカウントし所定値に達すると暴走検出カウンタのクリアを行う信号を出力するカウンタとを備えたものである。
【００２４】
請求項７記載の暴走検出装置によれば、定期的に発生するＡＤ割込みを暴走検出カウンタのクリア要因にすることで、ソフトウェアの暴走により、「Ａ／Ｄ変換の停止命令」を実行し、定期的なＡ／Ｄ変換が発生しなくなった場合においても暴走を検出することができる。ソフトウェアが指定されたパスを正常にとおっている場合であっても、定期的にＡ／Ｄ変換ができないことにより暴走を検出することができるため、暴走検出の精度が向上する。また、正常にＡ／Ｄ変換ができないと致命的な欠陥となるシステムにおける暴走検出手段として有効である。
【００２５】
【発明の実施形態】
（第１の実施の形態）
この発明の請求項１および請求項２に対応する第１の実施の形態の暴走検出装置を図１および図２により説明する。図１はコンピュータを示している。１０は演算処理部であるＣＰＵ、１１は情報を永久記憶するＲＯＭ、１２は情報を一時記憶するＲＡＭ、１３は周辺ハードウェアである。周辺ハードウェア１３はクリアから所定時間経過後にＣＰＵ１０にオーバーフローとなる異常状態信号を発生する暴走検出カウンタ１４、ソフトウェアのメイン周期をカウントするタイマ１５および定期的にＡ／Ｄ変換を行うＡ／Ｄ変換機１６を有する。
【００２６】
そして暴走検出装置は、上記した所定時間を経過すると異常状態信号を出力する暴走検出カウンタ１４と、あらかじめ所定のアドレスが登録されたアドレス保持用のＲＯＭ１１と、プログラムを実行するアドレスを発生するプログラムカウンタと、プログラムカウンタにより実行しているアドレスとＲＯＭ１１に登録されたアドレスとを比較してＲＯＭ１１に登録されたアドレスが実行されたとき暴走検出カウンタ１４をクリアする比較器とで構成する。
【００２７】
このようにすると、プログラムカウンタが実行させるアドレスとあらかじめＲＯＭ１１に登録されたアドレスを、比較器により比較して、登録されたアドレスを実行したことを監視することにより、ソフトウェア処理を介さずに、暴走検出カウンタ１４のクリアを実現することができる。
【００２８】
図２は暴走検出装置の具体的構成を示す。プログラムカウンタ２０は現在プログラムがどの命令を実行しているかを指定する。ＲＯＭ２１は、あらかじめ所定のアドレスが登録されており、ＲＯＭ２１内にアドレス保持用として設けられている。比較器２２は、各アドレスに対応して複数設けられ、プログラムカウンタ２０により指定されたアドレスと、ＲＯＭ２１に登録されたアドレスを比較して一致した場合に出力信号を出力する。ラッチ回路２３は各比較器２２に対応して設けられ、出力信号を登録されたＲＯＭを既に実行した状態として保持する。ＡＮＤゲート２４は登録されたすべてのアドレスを実行したかを判定するもので、すべてのアドレスを実行したとき出力信号を出力する。暴走検出カウンタ２５は、リセット信号を入力せずに所定時間経過後に異常状態信号を出力するもので、ＡＮＤゲート２４の出力信号をリセット信号として受けると暴走検出カウンタ２５をクリアする。
【００２９】
図２（ｂ）に示すように、複数のタスクや、割込み処理から構成されるソフトウェアにおいて、定期的に通過するアドレスを、あらかじめＲＯＭ２１のＲＯＭテーブルに保持しておく。これらアドレスはプログラムの作成段階（リンク時）に絶対アドレスが確定するので、あらかじめＲＯＭ２１に格納しておくことが可能である。ＲＯＭテーブルは現在プログラムがどの命令を実行しているかを指すプログラムカウンタ２０と比較器２２によって常に比較される。ＲＯＭテーブルに登録されているアドレスが実行されたとき、ＲＯＭテーブルのアドレスとプログラムカウンタ２０が一致し、登録されたアドレスを実行したことを保持するラッチ回路２３がセットされる。
【００３０】
ＲＯＭテーブルに登録されたすべてのアドレスを実行したとき、対応するすべてのラッチ回路２３がセットされ、ＡＮＤゲート２４がＯＮし、暴走検出カウンタ２５のクリアを行うと同時にすべてのラッチ状態を解除する。
【００３１】
この実施の形態によれば、ＲＯＭ２１に登録されたすべてのアドレスを実行した時にのみ暴走検出カウンタ２５のクリアを行い、図３（ｂ）に示す様に複数のタスクや、割込み処理から構成されるソフトウェアにおいて、すべての登録アドレスを実行できたことの確認を、ソフトウェアを介さずハードウェアのみにより実現できる。これにより、暴走中に誤って上記の「暴走検出カウンタのクリア命令」や「チェックポイント通過フラグのセット命令」を実行する可能性が無くなり、確実に登録されたアドレスを実行できたかどうかを判定でき、暴走検出の精度が向上する。
（第２の実施形態）
この発明の請求項３に対応する第２の実施の形態の暴走検出装置を図３により説明する。第２の実施の形態は第１の実施の形態と共通し、ＡＮＤゲート２４に代えて、登録されたいずれかのアドレスを実行したかを判定するためのＯＲゲート２６を設けている。
【００３２】
図３（ｂ）に示すように、複数の並列処理により構成されるソフトウェアにおいて、いずれかのアドレスを定期的に実行するアドレスを、あらかじめＲＯＭテーブルに保持しておく。これらアドレスはプログラムの作成段階（リンク時）に絶対アドレスが確定するので、あらかじめＲＯＭに格納しておくことが可能である。ＲＯＭテーブルは現在プログラムがどの命令を実行しているかを指すプログラムカウンタ２０と、比較器２２によって常に比較される。ＲＯＭテーブルに登録されているアドレスが実行されたとき、ＲＯＭテーブルのアドレスとプログラムカウンタ２０の実行アドレスが一致し、登録されたアドレスを実行したことを保持するラッチ回路２３がセットされる。
【００３３】
したがって、ＲＯＭテーブルに登録されたいずれかのアドレスを実行したとき、ＯＲゲート２６がＯＮし、暴走検出カウンタ２５のクリアを行うと同時にすべてのラッチ状態を解除する。
【００３４】
この実施の形態によれば、ＲＯＭ２１に登録されたいずれかのアドレスを実行した時にのみ暴走検出カウンタ２５のクリアを行い、図４（ｂ）に示す様にメイン処理のパスが複数に分岐する様な構成のソフトウェアにおいて、登録アドレスのいずれかが実行できたことの確認を、ソフトウェアを介さずハードウェアのみにより実現できる。これにより、暴走中に誤って上記の「暴走検出カウンタのクリア命令」や「チェックポイント通過フラグのセット命令」を実行する可能性が無くなり、確実に登録されたアドレスを実行できたかどうかを判定でき、暴走検出の精度が向上する。
【００３５】
（第３の実施形態）
この発明の請求項４に対応する第３の実施の形態の暴走検出装置を図４により説明する。この暴走検出装置において、プログラムカウンタ２０、ＲＯＭ２１、比較器２２、暴走検出カウンタ２５は第１の実施の形態および第２の実施の形態と同様である。セレクタ２８は何番目に登録されたアドレスとプログラムカウンタ２０のアドレスと比較するのかを選択する。したがって、比較器２２はプログラムカウンタ２０とセレクタで選択されたアドレスを比較する。比較順序カウンタ２９は、登録されたＲＯＭ２１のアドレスの何番目と比較しているのかをカウントする、すなわち比較したアドレスが一致するときにカウントし、つぎのアドレスを選択するようセレクタに信号を出力する。またカウンタ２９は所定の全アドレスを比較し一致したときにオーバフローする。暴走検出カウンタはオーバフロー信号を受けてクリアされる。
【００３６】
動作について説明する。図４（ｂ）に示す様にメインループの構成を有し、処理を上から順次実行される構成されるソフトウェアにおいて、定期的に実行するアドレスを、あらかじめＲＯＭテーブルに保持しておく。これらアドレスはプログラムの作成段階（リンク時）に絶対アドレスが確定するので、あらかじめＲＯＭに格納しておくことが可能である。プログラムカウンタ２０はＲＯＭテーブルの中からセレクタ２８により選択されているＲＯＭテーブルのアドレスと、比較器２２により比較される。選択されているＲＯＭテーブルのアドレスとプログラムカウンタ２０のアドレスが一致したとき、比較順序カウンタ２９がインクリメントされる。これにより、セレクタ２８により選択される比較対象であるＲＯＭテーブルのアドレスが次アドレスへと変わり、次からは２番目に登録されているＲＯＭテーブルのアドレスと比較を行う。順次これを繰り返し、最後に登録されているアドレスとの比較が終了すると、比較順序カウンタ２９がオーバーフローし、これに伴い、暴走検出カウンタ２５のクリアを行う。この後、再度ＲＯＭテーブルに登録されたアドレスの１番目から再度比較を開始する。
【００３７】
この実施の形態によれば、図４（ｂ）に示す様にメインループの構成を有し、処理を上から順次実行される構成されるソフトウェアにおいて、登録されたアドレスが順次実行したかをソフトウェアを介さず、暴走検出カウンタのクリアを行うことができる。これにより、暴走中に誤って上記の「暴走検出カウンタのクリア命令」や「チェックポイント通過フラグのセット命令」を実行することが無くなり、ソフトウェアが確実に登録されたアドレスを順次実行したかどうかを判定できるため、暴走検出の精度が向上する。
【００３８】
この発明の請求項５および請求項６に対応する第４の実施の形態の暴走検出装置を図５および図６により説明する。図５は暴走検出装置を有するマイクロコンピュータを示す。すなわち、暴走検出装置は、周辺ハードウェア１３を有するＣＰＵ１０と、クリアから所定時間経過後にＣＰＵ１０に異常状態信号を出力する暴走検出カウンタ１４と備えたものであって、周辺ハードウェア１３の割込み信号により暴走検出カウンタ１４をクリアする。
【００３９】
このようにすると、あらかじめ定期的に起こることを前提に構成しているハードウェアの割込み回数を監視することにより、暴走の検出を行なうことができる。例えば、ソフトウェアのメイン周期をカウントしているタイマの割込みが一定時間発生しない場合や、定期的に行なっているＡ／Ｄ変換が発生しない場合にシステムの異常状態信号をＣＰＵに対して発生する。
【００４０】
図６は暴走検出装置の具体的構成を示す。暴走検出カウンタ２５が期待する暴走検出周期より短い時間を計時するタイマ１５と、タイマ周期時間が経過する度にカウントする割り込み回数カウンタ３１と、あらかじめＲＯＭに登録された比較値を格納するコンペアレジスタ３２を有する。
【００４１】
動作について説明する。メイン周期等の決まった間隔で定期的に発生するタイマ１５の割り込み発生信号を割込み回数カウンタ３１によりカウントし、そのカウント回数がコンペアレジスタ３２に格納された比較値の一定回数に達した時に暴走検出カウンタをクリアすると共に、割込み回数カウンタ自身もクリアする。
【００４２】
暴走検出カウンタ２５のオーバーフロー周期が決まっているため、その間に何回のタイマ割込みが発生するかをあらかじめ算出できるので、ソフトウェア正常動作時に暴走検出カウンタ２５のオーバーフロー周期内に期待するタイマ割込み発生回数未満の回数をあらかじめＲＯＭに登録しておくことによりソフトウェアを介さず、暴走検出を行う。
【００４３】
この実施の形態によれば、定期的に発生するタイマ割込みを暴走検出カウンタのクリア要因にすることで、ソフトウェアの暴走により、「タイマの停止命令」を実行し、定期タイマが発生しなくなった場合においても暴走を検出することができる。ソフトウェアが指定されたパスを正常にとおっている場合であっても、定期時間の計時ができないことにより暴走を検出することができるため、暴走検出の精度が向上する。また、正常にタイマ計時ができないと致命的な欠陥となるシステムにおける暴走検出手段として有効である。
【００４４】
（第５の実施形態）
この発明の請求項７に対応する第５の実施の形態の暴走検出装置を図７により説明する。すなわち、暴走検出装置は、暴走検出カウンタ２５が期待する暴走検出周期より短い周期で動作するＡ／Ｄ変換機１６と、Ａ／Ｄ変換が終了する度にカウントする割り込み回数カウンタ３１と、あらかじめＲＯＭに登録された比較値を格納するコンペアレジスタ３２を有する。
【００４５】
動作について説明する。メイン周期等の決まった間隔で定期的に発生するＡ／Ｄ変換機１６の割り込み発生信号を割込み回数カウンタ３１によりカウントし、そのカウント回数がコンペアレジスタ３２の一定回数に達した時に暴走検出カウンタ２５をクリアすると共に、割込み回数カウンタ２５自身もクリアする。
【００４６】
暴走検出カウンタ２５のオーバーフロー周期が決まっているため、その間に何回のＡ／Ｄ変換割込みが発生するかをあらかじめ算出できるので、正常動作時にＡ／Ｄ変換割込み発生回数をＲＯＭに登録しておくことによりソフトウェアを介さず、暴走検出を行う。
【００４７】
この実施の形態によれば、定期的に発生するＡＤ割込みを暴走検出カウンタのクリア要因にすることで、ソフトウェアの暴走により、「Ａ／Ｄ変換の停止命令」を実行し、定期的なＡ／Ｄ変換が発生しなくなった場合においても暴走を検出することができる。ソフトウェアが指定されたパスを正常にとおっている場合であっても、定期的にＡ／Ｄ変換ができないことにより暴走を検出することができるため、暴走検出の精度が向上する。また、正常にＡ／Ｄ変換ができないと致命的な欠陥となるシステムにおける暴走検出手段として有効である。
【００４８】
【発明の効果】
請求項１記載の暴走検出装置によれば、プログラムカウンタが実行するアドレスとあらかじめＲＯＭに登録されたアドレスを、比較器により比較して、登録されたアドレスを実行したことを監視することにより、ソフトウェア処理を介さずに、暴走検出カウンタのクリアを実現できる。
【００４９】
請求項２記載の暴走検出装置によれば、ＲＯＭに登録されたすべてのアドレスを実行した時にのみ暴走検出カウンタのクリアを行うため、すべての登録アドレスを実行できたことの確認を、ソフトウェアを介さずハードウェアのみにより実現できる。これにより、確実に登録されたアドレスを実行できたかどうかを判定でき、暴走検出の精度が向上する。
【００５０】
請求項３記載の暴走検出装置によれば、ＲＯＭに登録されたいずれかのアドレスを実行した時にのみ暴走検出カウンタのクリアを行い、例えばメイン処理のパスが複数に分岐する様な構成のソフトウェアにおいて、登録アドレスのいずれかが実行できたことの確認を、ソフトウェアを介さずハードウェアのみにより実現できる。これにより、確実に登録されたアドレスを実行できたかどうかを判定でき、暴走検出の精度が向上する。
【００５１】
請求項４記載の暴走検出装置によれば、例えばメインループの構成を有し、処理を上から順次実行される構成されるソフトウェアにおいて、登録されたアドレスが順次実行したかをソフトウェアを介さず、暴走検出カウンタのクリアを行うことができる。これにより、ソフトウェアが確実に登録されたアドレスを順次実行したかどうかを判定できるため、暴走検出の精度が向上する。
【００５２】
請求項５記載の暴走検出装置によれば、あらかじめ定期的に起こることを前提に構成しているハードウェアの割込み回数を監視することにより、暴走の検出を行なうことができる。例えば、ソフトウェアのメイン周期をカウントしているタイマの割込みが一定時間発生しない場合や、定期的に行なっているＡ／Ｄ変換が発生しない場合にシステムの異常状態信号をＣＰＵに対して発生する。これにより暴走検出の精度向上が実現できる。
【００５３】
請求項６記載の暴走検出装置によれば、定期的に発生するタイマ割込みを暴走検出カウンタのクリア要因にすることで、ソフトウェアの暴走により、「タイマの停止命令」を実行し、定期タイマが発生しなくなった場合においても暴走を検出することができる。ソフトウェアが指定されたパスを正常にとおっている場合であっても、定期時間の計時ができないことにより暴走を検出することができるため、暴走検出の精度が向上する。また、正常にタイマ計時ができないと致命的な欠陥となるシステムにおける暴走検出手段として有効である。
【００５４】
請求項７記載の暴走検出装置によれば、定期的に発生するＡＤ割込みを暴走検出カウンタのクリア要因にすることで、ソフトウェアの暴走により、「Ａ／Ｄ変換の停止命令」を実行し、定期的なＡ／Ｄ変換が発生しなくなった場合においても暴走を検出することができる。ソフトウェアが指定されたパスを正常にとおっている場合であっても、定期的にＡ／Ｄ変換ができないことにより暴走を検出することができるため、暴走検出の精度が向上する。また、正常にＡ／Ｄ変換ができないと致命的な欠陥となるシステムにおける暴走検出手段として有効である。
【図面の簡単な説明】
【図１】この発明の第１の実施の形態のハードウェアによる暴走検出装置を有するマイクロコンピュータの構成図である。
【図２】この発明の第２の実施の形態のハードウェアによる暴走検出装置を有するマイクロコンピュータの構成図である。
【図３】（ａ）はこの発明の第３の実施の形態の暴走検出回路のブロック図、（ｂ）はマイクロコンピュータで実施するソフトウェアの構成図である。
【図４】（ａ）はこの発明の第４の実施の形態の暴走検出回路のブロック図、（ｂ）はマイクロコンピュータで実施するソフトウェアの構成図である。
【図５】（ａ）はこの発明の第５の実施の形態の暴走検出装置のブロック図、（ｂ）はマイクロコンピュータで実施するソフトウェアの構成図である。
【図６】この発明の第６の実施の形態の暴走検出装置のブロック図である。
【図７】この発明の第７の実施の形態の暴走検出装置のブロック図である。
【図８】マイクロコンピュータの基本構成図である。
【図９】（ａ）は従来例１の暴走検出手段の構成図、（ｂ）は従来例２の暴走検出手段の構成図である。
【符号の説明】
１０    ＣＰＵ
１１    ＲＯＭ
１３    周辺ハードウェア
１４    暴走検出カウンタ
１５    タイマ
１６    Ａ／Ｄ変換機
２０    プログラムカウンタ
２１    ＲＯＭ
２２    比較器
２３    ラッチ回路
２４    ＡＮＤゲート
２５    暴走検出カウンタ
２６    ＯＲゲート
２８    セレクタ
２９    比較順序カウンタ
３１    割込み回数カウンタ
３２    コンペアレジスタ
【図１】
2004151846.tif 000003
【図２】
2004151846.tif 000004
【図３】
2004151846.tif 000005
【図４】
2004151846.tif 000006
【図５】
2004151846.tif 000007
【図６】
2004151846.tif 000008
【図７】
2004151846.tif 000009
【図８】
2004151846.tif 000010
【図９】
2004151846.tif 000011