JP2004151846A - 暴走検出装置 - Google Patents
暴走検出装置 Download PDFInfo
- Publication number
- JP2004151846A JP2004151846A JP2002314452A JP2002314452A JP2004151846A JP 2004151846 A JP2004151846 A JP 2004151846A JP 2002314452 A JP2002314452 A JP 2002314452A JP 2002314452 A JP2002314452 A JP 2002314452A JP 2004151846 A JP2004151846 A JP 2004151846A
- Authority
- JP
- Japan
- Prior art keywords
- address
- counter
- runaway detection
- runaway
- registered
- 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
Images
Landscapes
- Debugging And Monitoring (AREA)
- Microcomputers (AREA)
Abstract
【課題】ソフトウェアが暴走中に誤って暴走検出カウンタをクリアして、暴走検出ができない可能性がある。
【解決手段】暴走検出用カウンタ14のクリアをソフトウェアを介さずハードウェアで行なうことにより、ソフトウェアの暴走中に、誤ってソフトウェアが暴走検出カウンタ14をクリアすることを防止できるため、ソフトウェアが暴走したときの暴走検出を確実に行なうことができる。
具体的には、ソフトウェアの実行アドレスを監視し、あらかじめ登録されたアドレスを実行していれば、暴走検出カウンタ14のクリアを行なう。また、マイコン周辺ハードウェア13の要因がすべて正しく機能している場合、に暴走検出用カウンタのクリアを行なう。
【選択図】 図1
【解決手段】暴走検出用カウンタ14のクリアをソフトウェアを介さずハードウェアで行なうことにより、ソフトウェアの暴走中に、誤ってソフトウェアが暴走検出カウンタ14をクリアすることを防止できるため、ソフトウェアが暴走したときの暴走検出を確実に行なうことができる。
具体的には、ソフトウェアの実行アドレスを監視し、あらかじめ登録されたアドレスを実行していれば、暴走検出カウンタ14のクリアを行なう。また、マイコン周辺ハードウェア13の要因がすべて正しく機能している場合、に暴走検出用カウンタのクリアを行なう。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
この発明は、例えばマイクロコンピュータ等のコンピュータにおける暴走検出カウンタを用いた暴走検出装置に関するものである。
【0002】
【従来の技術】
マイクロコンピュータは図8に示す様に、CPU、ROM、RAM、及び周辺ハードウェア等から構成される。周辺ハードウェアはタイマ、A/D変換器、暴走検出カウンタなどを有する。
【0003】
(従来例1)
従来、組み込みマイコンシステムにおいてプログラムの暴走を検出するには次に示す方式が採用されている。
すなわち、図9(a)に示すように、マイコン動作時は暴走検出カウンタを常に動作させておき、メインループ中の毎回必ず通る場所で、暴走検出用タイマをクリアする。正常動作時には暴走検出カウンタがメインループ毎にクリアされるため、暴走検出カウンタがオーバーフローすることはない。
【0004】
ところが、ソフトウェアが暴走し、所定のメインループを動作せず、一定の場所で無限ループに入った場合や、ソフトウェアの記述されていない場所を実行した場合、メインループの所定の場所で暴走検出用タイマをクリアすることができなくなり、所定の時間経過後に暴走検出カウンタがオーバーフローすることにより、CPUに対して、異常信号を発生する。
【0005】
(従来例2)
また、暴走検出の効果を向上する手段として、ソフトウェアの複数のチェックポイントをすべて実行したときのみ暴走検出カウンタをクリアする方法や、ソフトウェアの複数のチェックポイントを順番とおり実行したときのみ暴走検出カウンタをクリアする方法が、知られている(特許文献参照)。ここでは、図9(b)に示すようにソフトウェア中の複数の個所を通ったかどうかの判定を行うため、ソフトウェアによりチェックポイントを通過したことを示すフラグを設定し、すべてのフラグがセットされていれば、暴走検出用カウンタをクリアする方法が紹介されている。
【0006】
【特許文献】
特開平4−241642号公報(段落009〜の内容および図1)
【0007】
【発明が解決しようとしている課題】
従来構成の暴走検出手段を用いた場合、ソフトウェアにより暴走検出カウンタをクリアすることが可能であるため、暴走を検出することができない場合がある。
【0008】
例えば、従来例1の様な構成の場合、ソフトウェアが暴走検出カウンタのクリアを含む無限ループに入った場合、暴走検出カウンタは常にクリアされ続けるため、暴走検出カウンタがオーバーフローすることは無く、システムとして暴走を検出することはできない。
【0009】
また、従来例2の場合においても、暴走検出カウンタのクリアやチェックポイントを通過したか否かの判定をソフトウェアにより「チェックポイント通過フラグのセット命令」を記述する構成であるため、ソフトウェアの暴走中に通過判定用のレジスタを設定する命令を実行する可能性がある。もし、ソフトウェアの暴走中に上記命令を実行するループに入った場合、本来期待しているソフトウェアのチェックポイントを通過していないにも関わらず暴走検出カウンタをクリアしてしまうため、暴走検出カウンタがオーバーフローすることは無く、本来の暴走を検出できない可能性がある。
【0010】
この様にソフトウェアにより暴走検出カウンタをクリア可能なシステムにおいては、どのような手段を用いても、ソフトウェアでソフトウェア自身の暴走を完全に検出することは不可能である。
【0011】
したがって、この発明の目的は、ハードウェアにより暴走の検出を実現することにより、暴走検出の精度向上を行なうことができる暴走検出装置を提供することである。
【0012】
【課題を解決するための手段】
請求項1記載の暴走検出装置は、クリアから所定時間を経過すると異常状態信号を出力する暴走検出カウンタと、あらかじめ所定のアドレスが登録されたアドレス保持用のROMと、プログラムを実行するアドレスを発生するプログラムカウンタと、プログラムカウンタにより実行しているアドレスとROMに登録されたアドレスとを比較してROMに登録されたアドレスが実行されたとき暴走検出カウンタをクリアする比較器とを備えたものである。
【0013】
請求項1記載の暴走検出装置によれば、プログラムカウンタが実行するアドレスとあらかじめROMに登録されたアドレスを、比較器により比較して、登録されたアドレスを実行したことを監視することにより、ソフトウェア処理を介さずに、暴走検出カウンタのクリアを実現できる。
【0014】
請求項2記載の暴走検出装置は、クリアから所定時間を経過すると異常状態信号を出力する暴走検出カウンタと、あらかじめ所定のアドレスが登録されたアドレス保持用のROMと、プログラムを実行するアドレスを発生するプログラムカウンタと、所定のアドレスごとに設けられてプログラムカウンタにより実行しているアドレスとROMに登録されたアドレスを比較して一致した場合に出力信号を出力する複数の比較器と、比較器に対応して設けられ出力信号を登録されたアドレスを既に実行した状態として保持する複数のラッチ回路と、複数のラッチ回路に接続されて登録されたすべてのアドレスが実行されたかを判定して暴走検出カウンタをクリアするANDゲートとを備えたものである。
【0015】
請求項2記載の暴走検出装置によれば、ROMに登録されたすべてのアドレスを実行した時にのみ暴走検出カウンタのクリアを行うため、すべての登録アドレスを実行できたことの確認を、ソフトウェアを介さずハードウェアのみにより実現できる。これにより、確実に登録されたアドレスを実行できたかどうかを判定でき、暴走検出の精度が向上する。
【0016】
請求項3記載の暴走検出装置は、クリアから所定時間を経過すると異常状態信号を出力する暴走検出カウンタと、あらかじめ所定のアドレスが登録されたアドレス保持用のROMと、プログラムを実行するアドレスを発生するプログラムカウンタと、所定のアドレスごとに設けられてプログラムカウンタにより実行しているアドレスとROMに登録されたアドレスを比較して一致した場合に出力信号を出力する複数の比較器と、比較器に対応して設けられ出力信号を登録されたアドレスを既に実行した状態として保持する複数のラッチ回路と、ラッチ回路に接続されて登録されたいずれかのアドレスを実行したかを判定して暴走検出カウンタをクリアするORゲートとを備えたものである。
【0017】
請求項3記載の暴走検出装置によれば、ROMに登録されたいずれかのアドレスを実行した時にのみ暴走検出カウンタのクリアを行い、例えばメイン処理のパスが複数に分岐する様な構成のソフトウェアにおいて、登録アドレスのいずれかが実行できたことの確認を、ソフトウェアを介さずハードウェアのみにより実現できる。これにより、確実に登録されたアドレスを実行できたかどうかを判定でき、暴走検出の精度が向上する。
【0018】
請求項4記載の暴走検出装置は、クリアから所定時間を経過すると異常状態信号を出力する暴走検出カウンタと、あらかじめ所定のアドレスが登録されたアドレス保持用のROMと、このROMのアドレスを選択するセレクタと、プログラムを実行するアドレスを発生するプログラムカウンタと、このプログラムカウンタにより実行されているアドレスとセレクタにより選択されたアドレスを比較して一致した場合に出力信号を出力する複数の比較器と、出力信号を入力してROMのアドレスの何番目と比較しているのかをカウントしセレクタにつぎのアドレスを選択させる信号を出力するとともに所定のカウント数のときにアドレス比較が終了したとして暴走検出カウンタをクリアする比較順序カウンタとを備えたものである。
【0019】
請求項4記載の暴走検出装置によれば、例えばメインループの構成を有し、処理を上から順次実行される構成されるソフトウェアにおいて、登録されたアドレスが順次実行したかをソフトウェアを介さず、暴走検出カウンタのクリアを行うことができる。これにより、ソフトウェアが確実に登録されたアドレスを順次実行したかどうかを判定できるため、暴走検出の精度が向上する。
請求項5記載の暴走検出装置は、周辺ハードウェアを有するCPUと、クリアから所定時間経過後にCPUに異常状態信号を出力する暴走検出カウンタと備えた暴走検出装置であって、周辺ハードウェアの割込み信号により暴走検出カウンタをクリアすることを特徴とするものである。
【0020】
請求項5記載の暴走検出装置によれば、あらかじめ定期的に起こることを前提に構成しているハードウェアの割込み回数を監視することにより、暴走の検出を行なうことができる。例えば、ソフトウェアのメイン周期をカウントしているタイマの割込みが一定時間発生しない場合や、定期的に行なっているA/D変換が発生しない場合にシステムの異常状態信号をCPUに対して発生する。これにより暴走検出の精度向上が実現できる。
【0021】
請求項6記載の暴走検出装置は、所定の暴走検出周期を超えると異常状態信号を出力する暴走検出カウンタと、暴走検出周期より短いタイマ周期時間を計時するタイマと、タイマ周期時間が経過する度にカウントし所定値に達すると暴走検出カウンタのクリアを行う信号を出力するカウンタとを備えたものである。
【0022】
請求項6記載の暴走検出装置によれば、定期的に発生するタイマ割込みを暴走検出カウンタのクリア要因にすることで、ソフトウェアの暴走により、「タイマの停止命令」を実行し、定期タイマが発生しなくなった場合においても暴走を検出することができる。ソフトウェアが指定されたパスを正常にとおっている場合であっても、定期時間の計時ができないことにより暴走を検出することができるため、暴走検出の精度が向上する。また、正常にタイマ計時ができないと致命的な欠陥となるシステムにおける暴走検出手段として有効である。
【0023】
請求項7記載の暴走検出装置は、所定の暴走検出周期を超えると異常状態信号を出力する暴走検出カウンタと、暴走検出周期より短い周期で動作するA/D変換機と、このA/D変換機によるA/D変換が終了する度にカウントし所定値に達すると暴走検出カウンタのクリアを行う信号を出力するカウンタとを備えたものである。
【0024】
請求項7記載の暴走検出装置によれば、定期的に発生するAD割込みを暴走検出カウンタのクリア要因にすることで、ソフトウェアの暴走により、「A/D変換の停止命令」を実行し、定期的なA/D変換が発生しなくなった場合においても暴走を検出することができる。ソフトウェアが指定されたパスを正常にとおっている場合であっても、定期的にA/D変換ができないことにより暴走を検出することができるため、暴走検出の精度が向上する。また、正常にA/D変換ができないと致命的な欠陥となるシステムにおける暴走検出手段として有効である。
【0025】
【発明の実施形態】
(第1の実施の形態)
この発明の請求項1および請求項2に対応する第1の実施の形態の暴走検出装置を図1および図2により説明する。図1はコンピュータを示している。10は演算処理部であるCPU、11は情報を永久記憶するROM、12は情報を一時記憶するRAM、13は周辺ハードウェアである。周辺ハードウェア13はクリアから所定時間経過後にCPU10にオーバーフローとなる異常状態信号を発生する暴走検出カウンタ14、ソフトウェアのメイン周期をカウントするタイマ15および定期的にA/D変換を行うA/D変換機16を有する。
【0026】
そして暴走検出装置は、上記した所定時間を経過すると異常状態信号を出力する暴走検出カウンタ14と、あらかじめ所定のアドレスが登録されたアドレス保持用のROM11と、プログラムを実行するアドレスを発生するプログラムカウンタと、プログラムカウンタにより実行しているアドレスとROM11に登録されたアドレスとを比較してROM11に登録されたアドレスが実行されたとき暴走検出カウンタ14をクリアする比較器とで構成する。
【0027】
このようにすると、プログラムカウンタが実行させるアドレスとあらかじめROM11に登録されたアドレスを、比較器により比較して、登録されたアドレスを実行したことを監視することにより、ソフトウェア処理を介さずに、暴走検出カウンタ14のクリアを実現することができる。
【0028】
図2は暴走検出装置の具体的構成を示す。プログラムカウンタ20は現在プログラムがどの命令を実行しているかを指定する。ROM21は、あらかじめ所定のアドレスが登録されており、ROM21内にアドレス保持用として設けられている。比較器22は、各アドレスに対応して複数設けられ、プログラムカウンタ20により指定されたアドレスと、ROM21に登録されたアドレスを比較して一致した場合に出力信号を出力する。ラッチ回路23は各比較器22に対応して設けられ、出力信号を登録されたROMを既に実行した状態として保持する。ANDゲート24は登録されたすべてのアドレスを実行したかを判定するもので、すべてのアドレスを実行したとき出力信号を出力する。暴走検出カウンタ25は、リセット信号を入力せずに所定時間経過後に異常状態信号を出力するもので、ANDゲート24の出力信号をリセット信号として受けると暴走検出カウンタ25をクリアする。
【0029】
図2(b)に示すように、複数のタスクや、割込み処理から構成されるソフトウェアにおいて、定期的に通過するアドレスを、あらかじめROM21のROMテーブルに保持しておく。これらアドレスはプログラムの作成段階(リンク時)に絶対アドレスが確定するので、あらかじめROM21に格納しておくことが可能である。ROMテーブルは現在プログラムがどの命令を実行しているかを指すプログラムカウンタ20と比較器22によって常に比較される。ROMテーブルに登録されているアドレスが実行されたとき、ROMテーブルのアドレスとプログラムカウンタ20が一致し、登録されたアドレスを実行したことを保持するラッチ回路23がセットされる。
【0030】
ROMテーブルに登録されたすべてのアドレスを実行したとき、対応するすべてのラッチ回路23がセットされ、ANDゲート24がONし、暴走検出カウンタ25のクリアを行うと同時にすべてのラッチ状態を解除する。
【0031】
この実施の形態によれば、ROM21に登録されたすべてのアドレスを実行した時にのみ暴走検出カウンタ25のクリアを行い、図3(b)に示す様に複数のタスクや、割込み処理から構成されるソフトウェアにおいて、すべての登録アドレスを実行できたことの確認を、ソフトウェアを介さずハードウェアのみにより実現できる。これにより、暴走中に誤って上記の「暴走検出カウンタのクリア命令」や「チェックポイント通過フラグのセット命令」を実行する可能性が無くなり、確実に登録されたアドレスを実行できたかどうかを判定でき、暴走検出の精度が向上する。
(第2の実施形態)
この発明の請求項3に対応する第2の実施の形態の暴走検出装置を図3により説明する。第2の実施の形態は第1の実施の形態と共通し、ANDゲート24に代えて、登録されたいずれかのアドレスを実行したかを判定するためのORゲート26を設けている。
【0032】
図3(b)に示すように、複数の並列処理により構成されるソフトウェアにおいて、いずれかのアドレスを定期的に実行するアドレスを、あらかじめROMテーブルに保持しておく。これらアドレスはプログラムの作成段階(リンク時)に絶対アドレスが確定するので、あらかじめROMに格納しておくことが可能である。ROMテーブルは現在プログラムがどの命令を実行しているかを指すプログラムカウンタ20と、比較器22によって常に比較される。ROMテーブルに登録されているアドレスが実行されたとき、ROMテーブルのアドレスとプログラムカウンタ20の実行アドレスが一致し、登録されたアドレスを実行したことを保持するラッチ回路23がセットされる。
【0033】
したがって、ROMテーブルに登録されたいずれかのアドレスを実行したとき、ORゲート26がONし、暴走検出カウンタ25のクリアを行うと同時にすべてのラッチ状態を解除する。
【0034】
この実施の形態によれば、ROM21に登録されたいずれかのアドレスを実行した時にのみ暴走検出カウンタ25のクリアを行い、図4(b)に示す様にメイン処理のパスが複数に分岐する様な構成のソフトウェアにおいて、登録アドレスのいずれかが実行できたことの確認を、ソフトウェアを介さずハードウェアのみにより実現できる。これにより、暴走中に誤って上記の「暴走検出カウンタのクリア命令」や「チェックポイント通過フラグのセット命令」を実行する可能性が無くなり、確実に登録されたアドレスを実行できたかどうかを判定でき、暴走検出の精度が向上する。
【0035】
(第3の実施形態)
この発明の請求項4に対応する第3の実施の形態の暴走検出装置を図4により説明する。この暴走検出装置において、プログラムカウンタ20、ROM21、比較器22、暴走検出カウンタ25は第1の実施の形態および第2の実施の形態と同様である。セレクタ28は何番目に登録されたアドレスとプログラムカウンタ20のアドレスと比較するのかを選択する。したがって、比較器22はプログラムカウンタ20とセレクタで選択されたアドレスを比較する。比較順序カウンタ29は、登録されたROM21のアドレスの何番目と比較しているのかをカウントする、すなわち比較したアドレスが一致するときにカウントし、つぎのアドレスを選択するようセレクタに信号を出力する。またカウンタ29は所定の全アドレスを比較し一致したときにオーバフローする。暴走検出カウンタはオーバフロー信号を受けてクリアされる。
【0036】
動作について説明する。図4(b)に示す様にメインループの構成を有し、処理を上から順次実行される構成されるソフトウェアにおいて、定期的に実行するアドレスを、あらかじめROMテーブルに保持しておく。これらアドレスはプログラムの作成段階(リンク時)に絶対アドレスが確定するので、あらかじめROMに格納しておくことが可能である。プログラムカウンタ20はROMテーブルの中からセレクタ28により選択されているROMテーブルのアドレスと、比較器22により比較される。選択されているROMテーブルのアドレスとプログラムカウンタ20のアドレスが一致したとき、比較順序カウンタ29がインクリメントされる。これにより、セレクタ28により選択される比較対象であるROMテーブルのアドレスが次アドレスへと変わり、次からは2番目に登録されているROMテーブルのアドレスと比較を行う。順次これを繰り返し、最後に登録されているアドレスとの比較が終了すると、比較順序カウンタ29がオーバーフローし、これに伴い、暴走検出カウンタ25のクリアを行う。この後、再度ROMテーブルに登録されたアドレスの1番目から再度比較を開始する。
【0037】
この実施の形態によれば、図4(b)に示す様にメインループの構成を有し、処理を上から順次実行される構成されるソフトウェアにおいて、登録されたアドレスが順次実行したかをソフトウェアを介さず、暴走検出カウンタのクリアを行うことができる。これにより、暴走中に誤って上記の「暴走検出カウンタのクリア命令」や「チェックポイント通過フラグのセット命令」を実行することが無くなり、ソフトウェアが確実に登録されたアドレスを順次実行したかどうかを判定できるため、暴走検出の精度が向上する。
【0038】
この発明の請求項5および請求項6に対応する第4の実施の形態の暴走検出装置を図5および図6により説明する。図5は暴走検出装置を有するマイクロコンピュータを示す。すなわち、暴走検出装置は、周辺ハードウェア13を有するCPU10と、クリアから所定時間経過後にCPU10に異常状態信号を出力する暴走検出カウンタ14と備えたものであって、周辺ハードウェア13の割込み信号により暴走検出カウンタ14をクリアする。
【0039】
このようにすると、あらかじめ定期的に起こることを前提に構成しているハードウェアの割込み回数を監視することにより、暴走の検出を行なうことができる。例えば、ソフトウェアのメイン周期をカウントしているタイマの割込みが一定時間発生しない場合や、定期的に行なっているA/D変換が発生しない場合にシステムの異常状態信号をCPUに対して発生する。
【0040】
図6は暴走検出装置の具体的構成を示す。暴走検出カウンタ25が期待する暴走検出周期より短い時間を計時するタイマ15と、タイマ周期時間が経過する度にカウントする割り込み回数カウンタ31と、あらかじめROMに登録された比較値を格納するコンペアレジスタ32を有する。
【0041】
動作について説明する。メイン周期等の決まった間隔で定期的に発生するタイマ15の割り込み発生信号を割込み回数カウンタ31によりカウントし、そのカウント回数がコンペアレジスタ32に格納された比較値の一定回数に達した時に暴走検出カウンタをクリアすると共に、割込み回数カウンタ自身もクリアする。
【0042】
暴走検出カウンタ25のオーバーフロー周期が決まっているため、その間に何回のタイマ割込みが発生するかをあらかじめ算出できるので、ソフトウェア正常動作時に暴走検出カウンタ25のオーバーフロー周期内に期待するタイマ割込み発生回数未満の回数をあらかじめROMに登録しておくことによりソフトウェアを介さず、暴走検出を行う。
【0043】
この実施の形態によれば、定期的に発生するタイマ割込みを暴走検出カウンタのクリア要因にすることで、ソフトウェアの暴走により、「タイマの停止命令」を実行し、定期タイマが発生しなくなった場合においても暴走を検出することができる。ソフトウェアが指定されたパスを正常にとおっている場合であっても、定期時間の計時ができないことにより暴走を検出することができるため、暴走検出の精度が向上する。また、正常にタイマ計時ができないと致命的な欠陥となるシステムにおける暴走検出手段として有効である。
【0044】
(第5の実施形態)
この発明の請求項7に対応する第5の実施の形態の暴走検出装置を図7により説明する。すなわち、暴走検出装置は、暴走検出カウンタ25が期待する暴走検出周期より短い周期で動作するA/D変換機16と、A/D変換が終了する度にカウントする割り込み回数カウンタ31と、あらかじめROMに登録された比較値を格納するコンペアレジスタ32を有する。
【0045】
動作について説明する。メイン周期等の決まった間隔で定期的に発生するA/D変換機16の割り込み発生信号を割込み回数カウンタ31によりカウントし、そのカウント回数がコンペアレジスタ32の一定回数に達した時に暴走検出カウンタ25をクリアすると共に、割込み回数カウンタ25自身もクリアする。
【0046】
暴走検出カウンタ25のオーバーフロー周期が決まっているため、その間に何回のA/D変換割込みが発生するかをあらかじめ算出できるので、正常動作時にA/D変換割込み発生回数をROMに登録しておくことによりソフトウェアを介さず、暴走検出を行う。
【0047】
この実施の形態によれば、定期的に発生するAD割込みを暴走検出カウンタのクリア要因にすることで、ソフトウェアの暴走により、「A/D変換の停止命令」を実行し、定期的なA/D変換が発生しなくなった場合においても暴走を検出することができる。ソフトウェアが指定されたパスを正常にとおっている場合であっても、定期的にA/D変換ができないことにより暴走を検出することができるため、暴走検出の精度が向上する。また、正常にA/D変換ができないと致命的な欠陥となるシステムにおける暴走検出手段として有効である。
【0048】
【発明の効果】
請求項1記載の暴走検出装置によれば、プログラムカウンタが実行するアドレスとあらかじめROMに登録されたアドレスを、比較器により比較して、登録されたアドレスを実行したことを監視することにより、ソフトウェア処理を介さずに、暴走検出カウンタのクリアを実現できる。
【0049】
請求項2記載の暴走検出装置によれば、ROMに登録されたすべてのアドレスを実行した時にのみ暴走検出カウンタのクリアを行うため、すべての登録アドレスを実行できたことの確認を、ソフトウェアを介さずハードウェアのみにより実現できる。これにより、確実に登録されたアドレスを実行できたかどうかを判定でき、暴走検出の精度が向上する。
【0050】
請求項3記載の暴走検出装置によれば、ROMに登録されたいずれかのアドレスを実行した時にのみ暴走検出カウンタのクリアを行い、例えばメイン処理のパスが複数に分岐する様な構成のソフトウェアにおいて、登録アドレスのいずれかが実行できたことの確認を、ソフトウェアを介さずハードウェアのみにより実現できる。これにより、確実に登録されたアドレスを実行できたかどうかを判定でき、暴走検出の精度が向上する。
【0051】
請求項4記載の暴走検出装置によれば、例えばメインループの構成を有し、処理を上から順次実行される構成されるソフトウェアにおいて、登録されたアドレスが順次実行したかをソフトウェアを介さず、暴走検出カウンタのクリアを行うことができる。これにより、ソフトウェアが確実に登録されたアドレスを順次実行したかどうかを判定できるため、暴走検出の精度が向上する。
【0052】
請求項5記載の暴走検出装置によれば、あらかじめ定期的に起こることを前提に構成しているハードウェアの割込み回数を監視することにより、暴走の検出を行なうことができる。例えば、ソフトウェアのメイン周期をカウントしているタイマの割込みが一定時間発生しない場合や、定期的に行なっているA/D変換が発生しない場合にシステムの異常状態信号をCPUに対して発生する。これにより暴走検出の精度向上が実現できる。
【0053】
請求項6記載の暴走検出装置によれば、定期的に発生するタイマ割込みを暴走検出カウンタのクリア要因にすることで、ソフトウェアの暴走により、「タイマの停止命令」を実行し、定期タイマが発生しなくなった場合においても暴走を検出することができる。ソフトウェアが指定されたパスを正常にとおっている場合であっても、定期時間の計時ができないことにより暴走を検出することができるため、暴走検出の精度が向上する。また、正常にタイマ計時ができないと致命的な欠陥となるシステムにおける暴走検出手段として有効である。
【0054】
請求項7記載の暴走検出装置によれば、定期的に発生するAD割込みを暴走検出カウンタのクリア要因にすることで、ソフトウェアの暴走により、「A/D変換の停止命令」を実行し、定期的なA/D変換が発生しなくなった場合においても暴走を検出することができる。ソフトウェアが指定されたパスを正常にとおっている場合であっても、定期的にA/D変換ができないことにより暴走を検出することができるため、暴走検出の精度が向上する。また、正常にA/D変換ができないと致命的な欠陥となるシステムにおける暴走検出手段として有効である。
【図面の簡単な説明】
【図1】この発明の第1の実施の形態のハードウェアによる暴走検出装置を有するマイクロコンピュータの構成図である。
【図2】この発明の第2の実施の形態のハードウェアによる暴走検出装置を有するマイクロコンピュータの構成図である。
【図3】(a)はこの発明の第3の実施の形態の暴走検出回路のブロック図、(b)はマイクロコンピュータで実施するソフトウェアの構成図である。
【図4】(a)はこの発明の第4の実施の形態の暴走検出回路のブロック図、(b)はマイクロコンピュータで実施するソフトウェアの構成図である。
【図5】(a)はこの発明の第5の実施の形態の暴走検出装置のブロック図、(b)はマイクロコンピュータで実施するソフトウェアの構成図である。
【図6】この発明の第6の実施の形態の暴走検出装置のブロック図である。
【図7】この発明の第7の実施の形態の暴走検出装置のブロック図である。
【図8】マイクロコンピュータの基本構成図である。
【図9】(a)は従来例1の暴走検出手段の構成図、(b)は従来例2の暴走検出手段の構成図である。
【符号の説明】
10 CPU
11 ROM
13 周辺ハードウェア
14 暴走検出カウンタ
15 タイマ
16 A/D変換機
20 プログラムカウンタ
21 ROM
22 比較器
23 ラッチ回路
24 ANDゲート
25 暴走検出カウンタ
26 ORゲート
28 セレクタ
29 比較順序カウンタ
31 割込み回数カウンタ
32 コンペアレジスタ
【発明の属する技術分野】
この発明は、例えばマイクロコンピュータ等のコンピュータにおける暴走検出カウンタを用いた暴走検出装置に関するものである。
【0002】
【従来の技術】
マイクロコンピュータは図8に示す様に、CPU、ROM、RAM、及び周辺ハードウェア等から構成される。周辺ハードウェアはタイマ、A/D変換器、暴走検出カウンタなどを有する。
【0003】
(従来例1)
従来、組み込みマイコンシステムにおいてプログラムの暴走を検出するには次に示す方式が採用されている。
すなわち、図9(a)に示すように、マイコン動作時は暴走検出カウンタを常に動作させておき、メインループ中の毎回必ず通る場所で、暴走検出用タイマをクリアする。正常動作時には暴走検出カウンタがメインループ毎にクリアされるため、暴走検出カウンタがオーバーフローすることはない。
【0004】
ところが、ソフトウェアが暴走し、所定のメインループを動作せず、一定の場所で無限ループに入った場合や、ソフトウェアの記述されていない場所を実行した場合、メインループの所定の場所で暴走検出用タイマをクリアすることができなくなり、所定の時間経過後に暴走検出カウンタがオーバーフローすることにより、CPUに対して、異常信号を発生する。
【0005】
(従来例2)
また、暴走検出の効果を向上する手段として、ソフトウェアの複数のチェックポイントをすべて実行したときのみ暴走検出カウンタをクリアする方法や、ソフトウェアの複数のチェックポイントを順番とおり実行したときのみ暴走検出カウンタをクリアする方法が、知られている(特許文献参照)。ここでは、図9(b)に示すようにソフトウェア中の複数の個所を通ったかどうかの判定を行うため、ソフトウェアによりチェックポイントを通過したことを示すフラグを設定し、すべてのフラグがセットされていれば、暴走検出用カウンタをクリアする方法が紹介されている。
【0006】
【特許文献】
特開平4−241642号公報(段落009〜の内容および図1)
【0007】
【発明が解決しようとしている課題】
従来構成の暴走検出手段を用いた場合、ソフトウェアにより暴走検出カウンタをクリアすることが可能であるため、暴走を検出することができない場合がある。
【0008】
例えば、従来例1の様な構成の場合、ソフトウェアが暴走検出カウンタのクリアを含む無限ループに入った場合、暴走検出カウンタは常にクリアされ続けるため、暴走検出カウンタがオーバーフローすることは無く、システムとして暴走を検出することはできない。
【0009】
また、従来例2の場合においても、暴走検出カウンタのクリアやチェックポイントを通過したか否かの判定をソフトウェアにより「チェックポイント通過フラグのセット命令」を記述する構成であるため、ソフトウェアの暴走中に通過判定用のレジスタを設定する命令を実行する可能性がある。もし、ソフトウェアの暴走中に上記命令を実行するループに入った場合、本来期待しているソフトウェアのチェックポイントを通過していないにも関わらず暴走検出カウンタをクリアしてしまうため、暴走検出カウンタがオーバーフローすることは無く、本来の暴走を検出できない可能性がある。
【0010】
この様にソフトウェアにより暴走検出カウンタをクリア可能なシステムにおいては、どのような手段を用いても、ソフトウェアでソフトウェア自身の暴走を完全に検出することは不可能である。
【0011】
したがって、この発明の目的は、ハードウェアにより暴走の検出を実現することにより、暴走検出の精度向上を行なうことができる暴走検出装置を提供することである。
【0012】
【課題を解決するための手段】
請求項1記載の暴走検出装置は、クリアから所定時間を経過すると異常状態信号を出力する暴走検出カウンタと、あらかじめ所定のアドレスが登録されたアドレス保持用のROMと、プログラムを実行するアドレスを発生するプログラムカウンタと、プログラムカウンタにより実行しているアドレスとROMに登録されたアドレスとを比較してROMに登録されたアドレスが実行されたとき暴走検出カウンタをクリアする比較器とを備えたものである。
【0013】
請求項1記載の暴走検出装置によれば、プログラムカウンタが実行するアドレスとあらかじめROMに登録されたアドレスを、比較器により比較して、登録されたアドレスを実行したことを監視することにより、ソフトウェア処理を介さずに、暴走検出カウンタのクリアを実現できる。
【0014】
請求項2記載の暴走検出装置は、クリアから所定時間を経過すると異常状態信号を出力する暴走検出カウンタと、あらかじめ所定のアドレスが登録されたアドレス保持用のROMと、プログラムを実行するアドレスを発生するプログラムカウンタと、所定のアドレスごとに設けられてプログラムカウンタにより実行しているアドレスとROMに登録されたアドレスを比較して一致した場合に出力信号を出力する複数の比較器と、比較器に対応して設けられ出力信号を登録されたアドレスを既に実行した状態として保持する複数のラッチ回路と、複数のラッチ回路に接続されて登録されたすべてのアドレスが実行されたかを判定して暴走検出カウンタをクリアするANDゲートとを備えたものである。
【0015】
請求項2記載の暴走検出装置によれば、ROMに登録されたすべてのアドレスを実行した時にのみ暴走検出カウンタのクリアを行うため、すべての登録アドレスを実行できたことの確認を、ソフトウェアを介さずハードウェアのみにより実現できる。これにより、確実に登録されたアドレスを実行できたかどうかを判定でき、暴走検出の精度が向上する。
【0016】
請求項3記載の暴走検出装置は、クリアから所定時間を経過すると異常状態信号を出力する暴走検出カウンタと、あらかじめ所定のアドレスが登録されたアドレス保持用のROMと、プログラムを実行するアドレスを発生するプログラムカウンタと、所定のアドレスごとに設けられてプログラムカウンタにより実行しているアドレスとROMに登録されたアドレスを比較して一致した場合に出力信号を出力する複数の比較器と、比較器に対応して設けられ出力信号を登録されたアドレスを既に実行した状態として保持する複数のラッチ回路と、ラッチ回路に接続されて登録されたいずれかのアドレスを実行したかを判定して暴走検出カウンタをクリアするORゲートとを備えたものである。
【0017】
請求項3記載の暴走検出装置によれば、ROMに登録されたいずれかのアドレスを実行した時にのみ暴走検出カウンタのクリアを行い、例えばメイン処理のパスが複数に分岐する様な構成のソフトウェアにおいて、登録アドレスのいずれかが実行できたことの確認を、ソフトウェアを介さずハードウェアのみにより実現できる。これにより、確実に登録されたアドレスを実行できたかどうかを判定でき、暴走検出の精度が向上する。
【0018】
請求項4記載の暴走検出装置は、クリアから所定時間を経過すると異常状態信号を出力する暴走検出カウンタと、あらかじめ所定のアドレスが登録されたアドレス保持用のROMと、このROMのアドレスを選択するセレクタと、プログラムを実行するアドレスを発生するプログラムカウンタと、このプログラムカウンタにより実行されているアドレスとセレクタにより選択されたアドレスを比較して一致した場合に出力信号を出力する複数の比較器と、出力信号を入力してROMのアドレスの何番目と比較しているのかをカウントしセレクタにつぎのアドレスを選択させる信号を出力するとともに所定のカウント数のときにアドレス比較が終了したとして暴走検出カウンタをクリアする比較順序カウンタとを備えたものである。
【0019】
請求項4記載の暴走検出装置によれば、例えばメインループの構成を有し、処理を上から順次実行される構成されるソフトウェアにおいて、登録されたアドレスが順次実行したかをソフトウェアを介さず、暴走検出カウンタのクリアを行うことができる。これにより、ソフトウェアが確実に登録されたアドレスを順次実行したかどうかを判定できるため、暴走検出の精度が向上する。
請求項5記載の暴走検出装置は、周辺ハードウェアを有するCPUと、クリアから所定時間経過後にCPUに異常状態信号を出力する暴走検出カウンタと備えた暴走検出装置であって、周辺ハードウェアの割込み信号により暴走検出カウンタをクリアすることを特徴とするものである。
【0020】
請求項5記載の暴走検出装置によれば、あらかじめ定期的に起こることを前提に構成しているハードウェアの割込み回数を監視することにより、暴走の検出を行なうことができる。例えば、ソフトウェアのメイン周期をカウントしているタイマの割込みが一定時間発生しない場合や、定期的に行なっているA/D変換が発生しない場合にシステムの異常状態信号をCPUに対して発生する。これにより暴走検出の精度向上が実現できる。
【0021】
請求項6記載の暴走検出装置は、所定の暴走検出周期を超えると異常状態信号を出力する暴走検出カウンタと、暴走検出周期より短いタイマ周期時間を計時するタイマと、タイマ周期時間が経過する度にカウントし所定値に達すると暴走検出カウンタのクリアを行う信号を出力するカウンタとを備えたものである。
【0022】
請求項6記載の暴走検出装置によれば、定期的に発生するタイマ割込みを暴走検出カウンタのクリア要因にすることで、ソフトウェアの暴走により、「タイマの停止命令」を実行し、定期タイマが発生しなくなった場合においても暴走を検出することができる。ソフトウェアが指定されたパスを正常にとおっている場合であっても、定期時間の計時ができないことにより暴走を検出することができるため、暴走検出の精度が向上する。また、正常にタイマ計時ができないと致命的な欠陥となるシステムにおける暴走検出手段として有効である。
【0023】
請求項7記載の暴走検出装置は、所定の暴走検出周期を超えると異常状態信号を出力する暴走検出カウンタと、暴走検出周期より短い周期で動作するA/D変換機と、このA/D変換機によるA/D変換が終了する度にカウントし所定値に達すると暴走検出カウンタのクリアを行う信号を出力するカウンタとを備えたものである。
【0024】
請求項7記載の暴走検出装置によれば、定期的に発生するAD割込みを暴走検出カウンタのクリア要因にすることで、ソフトウェアの暴走により、「A/D変換の停止命令」を実行し、定期的なA/D変換が発生しなくなった場合においても暴走を検出することができる。ソフトウェアが指定されたパスを正常にとおっている場合であっても、定期的にA/D変換ができないことにより暴走を検出することができるため、暴走検出の精度が向上する。また、正常にA/D変換ができないと致命的な欠陥となるシステムにおける暴走検出手段として有効である。
【0025】
【発明の実施形態】
(第1の実施の形態)
この発明の請求項1および請求項2に対応する第1の実施の形態の暴走検出装置を図1および図2により説明する。図1はコンピュータを示している。10は演算処理部であるCPU、11は情報を永久記憶するROM、12は情報を一時記憶するRAM、13は周辺ハードウェアである。周辺ハードウェア13はクリアから所定時間経過後にCPU10にオーバーフローとなる異常状態信号を発生する暴走検出カウンタ14、ソフトウェアのメイン周期をカウントするタイマ15および定期的にA/D変換を行うA/D変換機16を有する。
【0026】
そして暴走検出装置は、上記した所定時間を経過すると異常状態信号を出力する暴走検出カウンタ14と、あらかじめ所定のアドレスが登録されたアドレス保持用のROM11と、プログラムを実行するアドレスを発生するプログラムカウンタと、プログラムカウンタにより実行しているアドレスとROM11に登録されたアドレスとを比較してROM11に登録されたアドレスが実行されたとき暴走検出カウンタ14をクリアする比較器とで構成する。
【0027】
このようにすると、プログラムカウンタが実行させるアドレスとあらかじめROM11に登録されたアドレスを、比較器により比較して、登録されたアドレスを実行したことを監視することにより、ソフトウェア処理を介さずに、暴走検出カウンタ14のクリアを実現することができる。
【0028】
図2は暴走検出装置の具体的構成を示す。プログラムカウンタ20は現在プログラムがどの命令を実行しているかを指定する。ROM21は、あらかじめ所定のアドレスが登録されており、ROM21内にアドレス保持用として設けられている。比較器22は、各アドレスに対応して複数設けられ、プログラムカウンタ20により指定されたアドレスと、ROM21に登録されたアドレスを比較して一致した場合に出力信号を出力する。ラッチ回路23は各比較器22に対応して設けられ、出力信号を登録されたROMを既に実行した状態として保持する。ANDゲート24は登録されたすべてのアドレスを実行したかを判定するもので、すべてのアドレスを実行したとき出力信号を出力する。暴走検出カウンタ25は、リセット信号を入力せずに所定時間経過後に異常状態信号を出力するもので、ANDゲート24の出力信号をリセット信号として受けると暴走検出カウンタ25をクリアする。
【0029】
図2(b)に示すように、複数のタスクや、割込み処理から構成されるソフトウェアにおいて、定期的に通過するアドレスを、あらかじめROM21のROMテーブルに保持しておく。これらアドレスはプログラムの作成段階(リンク時)に絶対アドレスが確定するので、あらかじめROM21に格納しておくことが可能である。ROMテーブルは現在プログラムがどの命令を実行しているかを指すプログラムカウンタ20と比較器22によって常に比較される。ROMテーブルに登録されているアドレスが実行されたとき、ROMテーブルのアドレスとプログラムカウンタ20が一致し、登録されたアドレスを実行したことを保持するラッチ回路23がセットされる。
【0030】
ROMテーブルに登録されたすべてのアドレスを実行したとき、対応するすべてのラッチ回路23がセットされ、ANDゲート24がONし、暴走検出カウンタ25のクリアを行うと同時にすべてのラッチ状態を解除する。
【0031】
この実施の形態によれば、ROM21に登録されたすべてのアドレスを実行した時にのみ暴走検出カウンタ25のクリアを行い、図3(b)に示す様に複数のタスクや、割込み処理から構成されるソフトウェアにおいて、すべての登録アドレスを実行できたことの確認を、ソフトウェアを介さずハードウェアのみにより実現できる。これにより、暴走中に誤って上記の「暴走検出カウンタのクリア命令」や「チェックポイント通過フラグのセット命令」を実行する可能性が無くなり、確実に登録されたアドレスを実行できたかどうかを判定でき、暴走検出の精度が向上する。
(第2の実施形態)
この発明の請求項3に対応する第2の実施の形態の暴走検出装置を図3により説明する。第2の実施の形態は第1の実施の形態と共通し、ANDゲート24に代えて、登録されたいずれかのアドレスを実行したかを判定するためのORゲート26を設けている。
【0032】
図3(b)に示すように、複数の並列処理により構成されるソフトウェアにおいて、いずれかのアドレスを定期的に実行するアドレスを、あらかじめROMテーブルに保持しておく。これらアドレスはプログラムの作成段階(リンク時)に絶対アドレスが確定するので、あらかじめROMに格納しておくことが可能である。ROMテーブルは現在プログラムがどの命令を実行しているかを指すプログラムカウンタ20と、比較器22によって常に比較される。ROMテーブルに登録されているアドレスが実行されたとき、ROMテーブルのアドレスとプログラムカウンタ20の実行アドレスが一致し、登録されたアドレスを実行したことを保持するラッチ回路23がセットされる。
【0033】
したがって、ROMテーブルに登録されたいずれかのアドレスを実行したとき、ORゲート26がONし、暴走検出カウンタ25のクリアを行うと同時にすべてのラッチ状態を解除する。
【0034】
この実施の形態によれば、ROM21に登録されたいずれかのアドレスを実行した時にのみ暴走検出カウンタ25のクリアを行い、図4(b)に示す様にメイン処理のパスが複数に分岐する様な構成のソフトウェアにおいて、登録アドレスのいずれかが実行できたことの確認を、ソフトウェアを介さずハードウェアのみにより実現できる。これにより、暴走中に誤って上記の「暴走検出カウンタのクリア命令」や「チェックポイント通過フラグのセット命令」を実行する可能性が無くなり、確実に登録されたアドレスを実行できたかどうかを判定でき、暴走検出の精度が向上する。
【0035】
(第3の実施形態)
この発明の請求項4に対応する第3の実施の形態の暴走検出装置を図4により説明する。この暴走検出装置において、プログラムカウンタ20、ROM21、比較器22、暴走検出カウンタ25は第1の実施の形態および第2の実施の形態と同様である。セレクタ28は何番目に登録されたアドレスとプログラムカウンタ20のアドレスと比較するのかを選択する。したがって、比較器22はプログラムカウンタ20とセレクタで選択されたアドレスを比較する。比較順序カウンタ29は、登録されたROM21のアドレスの何番目と比較しているのかをカウントする、すなわち比較したアドレスが一致するときにカウントし、つぎのアドレスを選択するようセレクタに信号を出力する。またカウンタ29は所定の全アドレスを比較し一致したときにオーバフローする。暴走検出カウンタはオーバフロー信号を受けてクリアされる。
【0036】
動作について説明する。図4(b)に示す様にメインループの構成を有し、処理を上から順次実行される構成されるソフトウェアにおいて、定期的に実行するアドレスを、あらかじめROMテーブルに保持しておく。これらアドレスはプログラムの作成段階(リンク時)に絶対アドレスが確定するので、あらかじめROMに格納しておくことが可能である。プログラムカウンタ20はROMテーブルの中からセレクタ28により選択されているROMテーブルのアドレスと、比較器22により比較される。選択されているROMテーブルのアドレスとプログラムカウンタ20のアドレスが一致したとき、比較順序カウンタ29がインクリメントされる。これにより、セレクタ28により選択される比較対象であるROMテーブルのアドレスが次アドレスへと変わり、次からは2番目に登録されているROMテーブルのアドレスと比較を行う。順次これを繰り返し、最後に登録されているアドレスとの比較が終了すると、比較順序カウンタ29がオーバーフローし、これに伴い、暴走検出カウンタ25のクリアを行う。この後、再度ROMテーブルに登録されたアドレスの1番目から再度比較を開始する。
【0037】
この実施の形態によれば、図4(b)に示す様にメインループの構成を有し、処理を上から順次実行される構成されるソフトウェアにおいて、登録されたアドレスが順次実行したかをソフトウェアを介さず、暴走検出カウンタのクリアを行うことができる。これにより、暴走中に誤って上記の「暴走検出カウンタのクリア命令」や「チェックポイント通過フラグのセット命令」を実行することが無くなり、ソフトウェアが確実に登録されたアドレスを順次実行したかどうかを判定できるため、暴走検出の精度が向上する。
【0038】
この発明の請求項5および請求項6に対応する第4の実施の形態の暴走検出装置を図5および図6により説明する。図5は暴走検出装置を有するマイクロコンピュータを示す。すなわち、暴走検出装置は、周辺ハードウェア13を有するCPU10と、クリアから所定時間経過後にCPU10に異常状態信号を出力する暴走検出カウンタ14と備えたものであって、周辺ハードウェア13の割込み信号により暴走検出カウンタ14をクリアする。
【0039】
このようにすると、あらかじめ定期的に起こることを前提に構成しているハードウェアの割込み回数を監視することにより、暴走の検出を行なうことができる。例えば、ソフトウェアのメイン周期をカウントしているタイマの割込みが一定時間発生しない場合や、定期的に行なっているA/D変換が発生しない場合にシステムの異常状態信号をCPUに対して発生する。
【0040】
図6は暴走検出装置の具体的構成を示す。暴走検出カウンタ25が期待する暴走検出周期より短い時間を計時するタイマ15と、タイマ周期時間が経過する度にカウントする割り込み回数カウンタ31と、あらかじめROMに登録された比較値を格納するコンペアレジスタ32を有する。
【0041】
動作について説明する。メイン周期等の決まった間隔で定期的に発生するタイマ15の割り込み発生信号を割込み回数カウンタ31によりカウントし、そのカウント回数がコンペアレジスタ32に格納された比較値の一定回数に達した時に暴走検出カウンタをクリアすると共に、割込み回数カウンタ自身もクリアする。
【0042】
暴走検出カウンタ25のオーバーフロー周期が決まっているため、その間に何回のタイマ割込みが発生するかをあらかじめ算出できるので、ソフトウェア正常動作時に暴走検出カウンタ25のオーバーフロー周期内に期待するタイマ割込み発生回数未満の回数をあらかじめROMに登録しておくことによりソフトウェアを介さず、暴走検出を行う。
【0043】
この実施の形態によれば、定期的に発生するタイマ割込みを暴走検出カウンタのクリア要因にすることで、ソフトウェアの暴走により、「タイマの停止命令」を実行し、定期タイマが発生しなくなった場合においても暴走を検出することができる。ソフトウェアが指定されたパスを正常にとおっている場合であっても、定期時間の計時ができないことにより暴走を検出することができるため、暴走検出の精度が向上する。また、正常にタイマ計時ができないと致命的な欠陥となるシステムにおける暴走検出手段として有効である。
【0044】
(第5の実施形態)
この発明の請求項7に対応する第5の実施の形態の暴走検出装置を図7により説明する。すなわち、暴走検出装置は、暴走検出カウンタ25が期待する暴走検出周期より短い周期で動作するA/D変換機16と、A/D変換が終了する度にカウントする割り込み回数カウンタ31と、あらかじめROMに登録された比較値を格納するコンペアレジスタ32を有する。
【0045】
動作について説明する。メイン周期等の決まった間隔で定期的に発生するA/D変換機16の割り込み発生信号を割込み回数カウンタ31によりカウントし、そのカウント回数がコンペアレジスタ32の一定回数に達した時に暴走検出カウンタ25をクリアすると共に、割込み回数カウンタ25自身もクリアする。
【0046】
暴走検出カウンタ25のオーバーフロー周期が決まっているため、その間に何回のA/D変換割込みが発生するかをあらかじめ算出できるので、正常動作時にA/D変換割込み発生回数をROMに登録しておくことによりソフトウェアを介さず、暴走検出を行う。
【0047】
この実施の形態によれば、定期的に発生するAD割込みを暴走検出カウンタのクリア要因にすることで、ソフトウェアの暴走により、「A/D変換の停止命令」を実行し、定期的なA/D変換が発生しなくなった場合においても暴走を検出することができる。ソフトウェアが指定されたパスを正常にとおっている場合であっても、定期的にA/D変換ができないことにより暴走を検出することができるため、暴走検出の精度が向上する。また、正常にA/D変換ができないと致命的な欠陥となるシステムにおける暴走検出手段として有効である。
【0048】
【発明の効果】
請求項1記載の暴走検出装置によれば、プログラムカウンタが実行するアドレスとあらかじめROMに登録されたアドレスを、比較器により比較して、登録されたアドレスを実行したことを監視することにより、ソフトウェア処理を介さずに、暴走検出カウンタのクリアを実現できる。
【0049】
請求項2記載の暴走検出装置によれば、ROMに登録されたすべてのアドレスを実行した時にのみ暴走検出カウンタのクリアを行うため、すべての登録アドレスを実行できたことの確認を、ソフトウェアを介さずハードウェアのみにより実現できる。これにより、確実に登録されたアドレスを実行できたかどうかを判定でき、暴走検出の精度が向上する。
【0050】
請求項3記載の暴走検出装置によれば、ROMに登録されたいずれかのアドレスを実行した時にのみ暴走検出カウンタのクリアを行い、例えばメイン処理のパスが複数に分岐する様な構成のソフトウェアにおいて、登録アドレスのいずれかが実行できたことの確認を、ソフトウェアを介さずハードウェアのみにより実現できる。これにより、確実に登録されたアドレスを実行できたかどうかを判定でき、暴走検出の精度が向上する。
【0051】
請求項4記載の暴走検出装置によれば、例えばメインループの構成を有し、処理を上から順次実行される構成されるソフトウェアにおいて、登録されたアドレスが順次実行したかをソフトウェアを介さず、暴走検出カウンタのクリアを行うことができる。これにより、ソフトウェアが確実に登録されたアドレスを順次実行したかどうかを判定できるため、暴走検出の精度が向上する。
【0052】
請求項5記載の暴走検出装置によれば、あらかじめ定期的に起こることを前提に構成しているハードウェアの割込み回数を監視することにより、暴走の検出を行なうことができる。例えば、ソフトウェアのメイン周期をカウントしているタイマの割込みが一定時間発生しない場合や、定期的に行なっているA/D変換が発生しない場合にシステムの異常状態信号をCPUに対して発生する。これにより暴走検出の精度向上が実現できる。
【0053】
請求項6記載の暴走検出装置によれば、定期的に発生するタイマ割込みを暴走検出カウンタのクリア要因にすることで、ソフトウェアの暴走により、「タイマの停止命令」を実行し、定期タイマが発生しなくなった場合においても暴走を検出することができる。ソフトウェアが指定されたパスを正常にとおっている場合であっても、定期時間の計時ができないことにより暴走を検出することができるため、暴走検出の精度が向上する。また、正常にタイマ計時ができないと致命的な欠陥となるシステムにおける暴走検出手段として有効である。
【0054】
請求項7記載の暴走検出装置によれば、定期的に発生するAD割込みを暴走検出カウンタのクリア要因にすることで、ソフトウェアの暴走により、「A/D変換の停止命令」を実行し、定期的なA/D変換が発生しなくなった場合においても暴走を検出することができる。ソフトウェアが指定されたパスを正常にとおっている場合であっても、定期的にA/D変換ができないことにより暴走を検出することができるため、暴走検出の精度が向上する。また、正常にA/D変換ができないと致命的な欠陥となるシステムにおける暴走検出手段として有効である。
【図面の簡単な説明】
【図1】この発明の第1の実施の形態のハードウェアによる暴走検出装置を有するマイクロコンピュータの構成図である。
【図2】この発明の第2の実施の形態のハードウェアによる暴走検出装置を有するマイクロコンピュータの構成図である。
【図3】(a)はこの発明の第3の実施の形態の暴走検出回路のブロック図、(b)はマイクロコンピュータで実施するソフトウェアの構成図である。
【図4】(a)はこの発明の第4の実施の形態の暴走検出回路のブロック図、(b)はマイクロコンピュータで実施するソフトウェアの構成図である。
【図5】(a)はこの発明の第5の実施の形態の暴走検出装置のブロック図、(b)はマイクロコンピュータで実施するソフトウェアの構成図である。
【図6】この発明の第6の実施の形態の暴走検出装置のブロック図である。
【図7】この発明の第7の実施の形態の暴走検出装置のブロック図である。
【図8】マイクロコンピュータの基本構成図である。
【図9】(a)は従来例1の暴走検出手段の構成図、(b)は従来例2の暴走検出手段の構成図である。
【符号の説明】
10 CPU
11 ROM
13 周辺ハードウェア
14 暴走検出カウンタ
15 タイマ
16 A/D変換機
20 プログラムカウンタ
21 ROM
22 比較器
23 ラッチ回路
24 ANDゲート
25 暴走検出カウンタ
26 ORゲート
28 セレクタ
29 比較順序カウンタ
31 割込み回数カウンタ
32 コンペアレジスタ
Claims (7)
- クリアから所定時間を経過すると異常状態信号を出力する暴走検出カウンタと、あらかじめ所定のアドレスが登録されたアドレス保持用のROMと、プログラムを実行するアドレスを発生するプログラムカウンタと、前記プログラムカウンタにより実行している前記アドレスと前記ROMに登録された前記アドレスとを比較して前記ROMに登録された前記アドレスが実行されたとき前記暴走検出カウンタをクリアする比較器とを備えた暴走検出装置。
- クリアから所定時間を経過すると異常状態信号を出力する暴走検出カウンタと、あらかじめ所定のアドレスが登録されたアドレス保持用のROMと、プログラムを実行するアドレスを発生するプログラムカウンタと、前記所定のアドレスごとに設けられて前記プログラムカウンタにより実行している前記アドレスと前記ROMに登録された前記アドレスを比較して一致した場合に出力信号を出力する複数の比較器と、前記比較器に対応して設けられ前記出力信号を登録された前記アドレスを既に実行した状態として保持する複数のラッチ回路と、前記複数のラッチ回路に接続されて登録されたすべての前記アドレスが実行されたかを判定して前記暴走検出カウンタをクリアするANDゲートとを備えた暴走検出装置。
- クリアから所定時間を経過すると異常状態信号を出力する暴走検出カウンタと、あらかじめ所定のアドレスが登録されたアドレス保持用のROMと、プログラムを実行するアドレスを発生するプログラムカウンタと、前記所定のアドレスごとに設けられて前記プログラムカウンタにより実行している前記アドレスと前記ROMに登録された前記アドレスを比較して一致した場合に出力信号を出力する複数の比較器と、前記比較器に対応して設けられ前記出力信号を登録された前記アドレスを既に実行した状態として保持する複数のラッチ回路と、前記ラッチ回路に接続されて登録されたいずれかの前記アドレスを実行したかを判定して前記暴走検出カウンタをクリアするORゲートとを備えた暴走検出装置。
- クリアから所定時間を経過すると異常状態信号を出力する暴走検出カウンタと、あらかじめ所定のアドレスが登録されたアドレス保持用のROMと、このROMの前記アドレスを選択するセレクタと、プログラムを実行するアドレスを発生するプログラムカウンタと、このプログラムカウンタにより実行されている前記アドレスと前記セレクタにより選択された前記アドレスを比較して一致した場合に出力信号を出力する複数の比較器と、前記出力信号を入力して前記ROMの前記アドレスの何番目と比較しているのかをカウントし前記セレクタにつぎのアドレスを選択させる信号を出力するとともに所定のカウント数のときにアドレス比較が終了したとして前記暴走検出カウンタをクリアする比較順序カウンタとを備えた暴走検出回路。
- 周辺ハードウェアを有するCPUと、クリアから所定時間経過後に前記CPUに異常状態信号を出力する暴走検出カウンタと備えた暴走検出装置であって、前記周辺ハードウェアの割込み信号により前記暴走検出カウンタをクリアすることを特徴とする暴走検出装置。
- 所定の暴走検出周期を超えると異常状態信号を出力する暴走検出カウンタと、前記暴走検出周期より短いタイマ周期時間を計時するタイマと、前記タイマ周期時間が経過する度にカウントし所定値に達すると前記暴走検出カウンタのクリアを行う信号を出力するカウンタとを備えた暴走検出装置。
- 所定の暴走検出周期を超えると異常状態信号を出力する暴走検出カウンタと、前記暴走検出周期より短い周期で動作するA/D変換機と、このA/D変換機によるA/D変換が終了する度にカウントし所定値に達すると前記暴走検出カウンタのクリアを行う信号を出力するカウンタとを備えた暴走検出装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002314452A JP2004151846A (ja) | 2002-10-29 | 2002-10-29 | 暴走検出装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002314452A JP2004151846A (ja) | 2002-10-29 | 2002-10-29 | 暴走検出装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004151846A true JP2004151846A (ja) | 2004-05-27 |
Family
ID=32458761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002314452A Pending JP2004151846A (ja) | 2002-10-29 | 2002-10-29 | 暴走検出装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004151846A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7558990B2 (en) | 2004-09-08 | 2009-07-07 | Nec Electronics Corporation | Semiconductor circuit device and method of detecting runaway |
-
2002
- 2002-10-29 JP JP2002314452A patent/JP2004151846A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7558990B2 (en) | 2004-09-08 | 2009-07-07 | Nec Electronics Corporation | Semiconductor circuit device and method of detecting runaway |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4034363B2 (ja) | オペレーティング・システム・ベースのプログラムの性能モニタ方法およびシステム | |
JPH09305412A (ja) | 最大割り込み禁止期間測定機能を有するマイクロコンピュータ | |
JPH0528063A (ja) | マイクロコンピユータ | |
EP0702297A1 (en) | A data processor with breakpoint circuit and method therefor | |
JP2004151846A (ja) | 暴走検出装置 | |
WO2002048888A2 (en) | Watchpoint engine for a pipelined processor | |
JP2007026028A (ja) | マイクロコンピュータの異常検出装置 | |
JP2012059127A (ja) | 情報処理装置、ウォッチドッグタイマ、異常検出方法 | |
JP3609601B2 (ja) | 自己診断機能付きタイマー回路 | |
JP5375756B2 (ja) | 時間監視装置及び方法 | |
JP2002116926A (ja) | プログラム処理装置およびプログラム処理方法 | |
JP3068578B2 (ja) | インサーキットエミュレータおよび飽和演算処理方法 | |
JP4454566B2 (ja) | プログラム暴走監視回路および方法 | |
JP4842036B2 (ja) | 半導体装置と、タイミング制御回路の異常検出方法 | |
JPH11102298A (ja) | タイマ制御方法、その回路、およびそのプログラム記録 媒体 | |
JP2003131903A (ja) | 半導体集積回路 | |
JP2005301616A (ja) | デバッグシステム | |
JP3308670B2 (ja) | イベントドリブン型処理装置の故障検出装置 | |
JP2003067008A (ja) | プログラマブルコントローラ | |
JP2005250711A (ja) | ストール監視システム、データ処理装置及びそれらに用いるストール監視方法 | |
JP2010244393A (ja) | パフォーマンス評価装置、及びパフォーマンス評価方法 | |
JPH06195245A (ja) | 監視タイマ装置 | |
JPH10161908A (ja) | マイクロコンピュータの暴走検出方法 | |
JPH09113556A (ja) | パルス計測回路及びその計測方法 | |
JP2002163008A (ja) | プログラマブルコントローラ暴走検出回路およびその方法 |