(57)【要約】【課題】処理装置の誤動作により暴走検出ができない可能性を低減し、処理装置の負担を軽減し、特定の条件下での暴走検出の確実性の低下がなく、さらにアドレス空間の大きさの制約も受けない暴走検出装置を提供する。【解決手段】本発明の暴走検出装置は、処理装置が同一のアドレスのデータ記憶領域へ複数回アクセスしたことを検出したとき、処理装置へ通知する。そして、通知した後、所定の時間が経過する前に処置装置から応答がないとき、暴走検出信号を発生する。【選択図】      図１
2009003589.tif 000002
【特許請求の範囲】
【請求項１】
処理装置が同一のアドレスのデータ記憶領域へ複数回アクセスしたことを検出したとき、前記処理装置へ通知し、
前記通知後、所定の規定時間が経過する前に前記処置部から応答がないとき、暴走検出信号を発生することを特徴とする暴走検出装置。
【請求項２】
処理装置がアクセスしたアドレスを記憶するアクセス記憶部と、
前記アクセス記憶部内に記憶された前記アドレスを検索し、同一のアドレスが存在することを検出したとき前記処理装置へ通知信号を送信する情報検索部と、
前記通知信号の送信時に時間の計測を開始し、前記規定時間が経過する前に前記処理装置から確認信号を受信しないとき前記暴走検出信号を発生するタイマ
を備えることを特徴とする請求項１記載の暴走検出装置。
【請求項３】
前記検出した回数をカウントするカウンタを備え、
前記回数が所定の通知基準値を超えたとき、前記処理装置へ前記通知信号を送信することを特徴とする請求項２記載の暴走検出装置。
【請求項４】
前記アクセス記憶部は、指定された範囲のアドレスのみ記憶するアドレス範囲指定部を備え、
前記アクセス記憶部は、前記処理装置によるアクセスが前記範囲内の前記アドレスのみを記憶することを特徴とする請求項２又は３のいずれかに記載の暴走検出装置。
【請求項５】
前記アクセス記憶部は、前記処理装置によるアクセスがデータの読み出しであるか書き込みであるかを区分し前記アドレスを記憶する
ことを特徴とする請求項２乃至４のいずれかに記載の暴走検出装置。
【請求項６】
前記アクセス記憶部は、前記処理装置によるアクセスがデータの読み出しであるときのみ前記アドレスを記憶することを特徴とする請求項５記載の暴走検出装置。
【請求項７】
前記アクセス記憶部は、前記処理装置によるアクセスが分岐命令を実行した直後の分岐先アドレスのデータの読み出しであるときのみ前記アドレスを記憶することを特徴とする請求項６記載の暴走検出装置。
【請求項８】
処理装置が同一のアドレスのデータ記憶領域へ複数回アクセスしたことを検出したとき、前記処理装置へ通知する工程と、
前記通知後、所定の規定時間が経過する前に前記処置部から応答がないとき、暴走検出信号を発生する工程を備えることを特徴とする暴走検出方法。
【請求項９】
処理装置がアクセスしたアドレスを記憶する工程と、
前記記憶した前記アドレスを検索し、同一のアドレスが存在することを検出したとき前記処理装置へ通知信号を送信する工程と、
前記通知信号の送信時に時間の計測を開始する工程と、
前記規定時間が経過する前に前記処理装置から確認信号を受信しないとき前記暴走検出信号を発生する工程
を備えることを特徴とする請求項８記載の暴走検出方法。
【請求項１０】
前記検出した回数をカウントする工程と、
前記回数が所定の通知基準値を超えたとき、前記処理装置へ前記通知信号を送信する工程
を備えることを特徴とする請求項８又は９のいずれかに記載の暴走検出方法。
【請求項１１】
前記処理装置によるアクセスが、指定範囲内であるときのみ前記アドレスを記憶する工程
を備えることを特徴とする請求項８乃至１０のいずれかに記載の暴走検出方法。
【請求項１２】
前記処理装置によるアクセスがデータの読み出しであるか書き込みであるかを区分し前記アドレスを記憶する工程
を備えることを特徴とする請求項８乃至１１のいずれかに記載の暴走検出方法。
【請求項１３】
前記処理装置によるアクセスがデータの読み出しであるときのみ前記アドレスを記憶する工程
を備えることを特徴とする請求項１２記載の暴走検出方法。
【請求項１４】
前記処理装置によるアクセスが分岐命令を実行した直後の分岐先アドレスのデータの読み出しであるときのみ前記アドレスを記憶する工程を備えることを特徴とする請求項１３記載の暴走検出方法。
【請求項１５】
請求項２乃至７のいずれかに記載の暴走検出装置から前記通知信号を受信し、前記暴走検出装置へ前記確認信号を送信する処理装置。
【請求項１６】
請求項７記載の暴走検出装置に前記分岐先アドレスのデータの読み出しであることを示す分岐命令信号を送信し、前記通知信号を受信し、前記暴走検出装置へ前記確認信号を送信する処理装置。
【請求項１７】
請求項２乃至７のいずれかに記載の暴走検出装置と、
請求項１５記載の処理装置と、
前記データ記憶装置
を備えることを特徴とする暴走検出システム。
【請求項１８】
請求項７記載の暴走検出装置と、
請求項１６記載の処理装置と、
前記データ記憶装置
を備えることを特徴とする暴走検出システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暴走検出回路及び暴走検出方法に関し、特に処理装置が記憶装置へアクセスするときのアドレスを監視し処理装置へ通知する暴走検出回路及び暴走検出方法に関する。
【背景技術】
【０００２】
プログラムに従い処理を実行する、プロセッサ、コンピュータ、ＣＰＵ等の処理装置は、制御不能の状態に陥り、意図した動作を行わない、あるいは意図しない動作を行うことがある。このような状態に陥ることを、処理装置が暴走する、あるいはプログラムが暴走するという。暴走状態に陥る原因には、プログラムのミス、ウイルスの感染などのソフトウェアに関する原因と、動作温度、発熱、ノイズなどのハードウェアに関する原因がある。
【０００３】
従来、ＣＰＵの暴走を検出する方式として、いわゆる「ウォッチドッグタイマ」がある。ウォッチドッグタイマとは、所定の期間内にリセットされない場合に暴走検出信号を出力するタイマである。ＣＰＵが正常にプログラムを実行している状態では、ＣＰＵは所定の期間以内にウォッチドッグタイマをリセットする。ところが、ＣＰＵが暴走状態となり、ウォッチドッグタイマが所定の期間内にリセットされなければ、ウォッチドッグタイマはオーバーフローし、暴走検出信号を出力する。このように、従来のウォッチドッグタイマは、所定の期間内にリセットされなければオーバーフローし、プログラムの暴走を検出していた。
【０００４】
ウォッチドッグタイマには、ＣＰＵが暴走したときに、誤動作したＣＰＵによって誤ってリセットされてしまい、暴走検出ができない可能性がある。この問題を解消するために、ウォッチドッグタイマをリセットするために各種の条件を設ける技術がある。
【０００５】
例えば、ＣＰＵから送出されるアドレス情報が特定の条件を満たすときのみ、ウォッチドッグタイマのリセットを行うという方式がある（例えば、特許文献１参照。）。特許文献１の技術では、予め記憶されている監視アドレス情報とＣＰＵから送出されるアドレス情報を比較することにより、予め定められた順序でアドレス情報が送出されているときのみウォッチドッグタイマをリスタートさせている。
【０００６】
また、特定のアドレスへのＣＰＵによるアクセスにより、ウォッチドッグタイマのリセットを行うという方式がある（例えば、特許文献２参照。）。特許文献２の技術では、予め記憶されているアドレス情報とアドレスバス上のアドレス情報を比較することにより、予め記憶されているアドレスへのアクセスがあったときのみウォッチドッグタイマをリスタートさせている。
【０００７】
あるいは、ＣＰＵがウォッチドッグタイマのリセットルーチンを含む無限ループに入ったような暴走を検出する技術もある（例えば、特許文献３参照。）。特許文献３の技術では、あるアドレスのプログラムを実行する間隔が等間隔であるか否かを検出し、等間隔でのプログラム実行が所定回数以上になると暴走検出信号を発生する。
【０００８】
【特許文献１】特開平２−７９１３５号公報  （第２−３頁、第１図）
【特許文献２】特開平７−３６７４２号公報  （第３−４頁、図１）
【特許文献３】特開平１０−１６１９０８号公報  （第３頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上記の各公知技術にはそれぞれ問題がある。まず、上述したように、従来の一般的なウォッチドッグタイマは、誤動作したＣＰＵによって誤ってリセットされ、暴走検出ができない可能性がある。また、ＣＰＵにより定期的にリセットする必要があるため、ＣＰＵがウォッチドッグタイマをリセットすべき時刻を常に管理していることが必要である。そして、ウォッチドッグタイマをリセットするべき時刻が近づくと、処理しているプロセスを強制的に中止し、ウォッチドッグタイマをリセットするための処理に移行する必要がある。このように、ＣＰＵの負担が重いという課題がある。
【００１０】
特許文献１記載の技術では、プロセッサが監視アドレスを含んだ無限ループに陥り、そのアドレスの順序が予め定められた順序に偶然一致してしまうと、その暴走状態を検出することができないという問題がある。このように、アドレスに関する特定の条件下では、暴走検出の確実性が低下するという課題がある。
【００１１】
特許文献２記載の技術でも同様であり、プロセッサがウォッチドッグタイマをリセットするためのアドレスを含んだ無限ループに陥った場合、その暴走状態を検出することができないという問題がある。従って、アドレスに関する特定の条件下では、暴走検出の確実性が低下するという課題がある。
【００１２】
特許文献３記載の技術では、暴走発生時のアドレスを予め特定することができないという課題がある。同じアドレスのプログラムを実行する時間間隔を監視することにより無限ループに入ったことを検出するためには、すべてのアドレスについて以前の実行から今回の実行までの時間を測定することが必要である。従って、ＣＰＵが実行したプログラムの全アドレス及び実行した時刻を記憶する必要がある。このことは、アドレス空間が広い場合には特に大きな問題となり、現実的には極めて困難である。
（発明の目的）
本発明は上記のような技術的課題に鑑みて行われたもので、処理装置の誤動作により暴走検出ができない可能性を低減し、処理装置の負担を軽減し、特定の条件下での暴走検出の確実性の低下がなく、さらにアドレス空間の大きさの制約も受けない暴走検出装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の暴走検出装置は、処理装置が同一のアドレスのデータ記憶領域へ複数回アクセスしたことを検出したとき処理装置へ通知し、通知後、所定の規定時間が経過する前に処置部から応答がないとき、暴走検出信号を発生することを特徴とする。
【００１４】
本発明の暴走検出装置は、処理装置がアクセスしたアドレスを記憶するアクセス記憶部と、アクセス記憶部内に記憶されたアドレスを検索し、同一のアドレスが存在することを検出したとき処理装置へ通知信号を送信する情報検索部と、通知信号の送信時に時間の計測を開始し、規定時間が経過する前に処理装置から確認信号を受信しないとき暴走検出信号を発生するタイマを備えてもよい。さらに、暴走検出装置は、検出した回数をカウントするカウンタを備え、回数が所定の通知基準値を超えたとき、処理装置へ通知信号を送信してもよい。
【００１５】
アクセス記憶部は、指定された範囲のアドレスのみ記憶するアドレス範囲指定部を備え、処理装置によるアクセスが範囲内のアドレスのみを記憶してもよい。
【００１６】
アクセス記憶部は、処理装置によるアクセスがデータの読み出しであるか書き込みであるかを区分しアドレスを記憶してもよい。そして、アクセス記憶部は、処理装置によるアクセスがデータの読み出しであるときのみアドレスを記憶してもよい。
【００１７】
アクセス記憶部は、処理装置によるアクセスが分岐命令を実行した直後の分岐先アドレスのデータの読み出しであるときのみアドレスを記憶してもよい。
【００１８】
本発明の暴走検出方法は、処理装置が同一のアドレスのデータ記憶領域へ複数回アクセスしたことを検出したとき、処理装置へ通知する工程と、通知後、所定の規定時間が経過する前に処置部から応答がないとき、暴走検出信号を発生する工程を備えることを特徴とする。
【００１９】
本発明の暴走検出方法は、処理装置がアクセスしたアドレスを記憶する工程と、記憶したアドレスを検索し、同一のアドレスが存在することを検出したとき処理装置へ通知信号を送信する工程と、通知信号の送信時に時間の計測を開始する工程と、規定時間が経過する前に処理装置から確認信号を受信しないとき暴走検出信号を発生する工程を備えてもよい。さらに、検出した回数をカウントする工程と、回数が所定の通知基準値を超えたとき、処理装置へ通知信号を送信する工程を備えてもよい。
【００２０】
本発明の暴走検出方法は、処理装置によるアクセスが、指定範囲内であるときのみアドレスを記憶する工程を備えてもよい。
【００２１】
本発明の暴走検出方法は、処理装置によるアクセスがデータの読み出しであるか書き込みであるかを区分しアドレスを記憶する工程を備えてもよい。
【００２２】
本発明の暴走検出方法は、処理装置によるアクセスがデータの読み出しであるときのみアドレスを記憶する工程を備えてもよい。
【００２３】
本発明の暴走検出方法は、処理装置によるアクセスが分岐命令を実行した直後の分岐先アドレスのデータの読み出しであるときのみアドレスを記憶する工程を備えてもよい。
【００２４】
本発明の処理装置は、暴走検出装置から通知信号を受信し、暴走検出装置へ確認信号を送信する。さらに、本発明の処理装置は、暴走検出装置に分岐先アドレスのデータの読み出しであることを示す分岐命令信号を送信し、通知信号を受信し、暴走検出装置へ確認信号を送信してもよい。
【００２５】
本発明の暴走検出システムは、処理装置が同一のアドレスのデータ記憶領域へ複数回アクセスしたことを検出したとき処理装置へ通知信号を送信し、規定時間が経過する前に処理装置から確認信号を受信しないとき、暴走検出信号を発生する暴走検出装置と、暴走検出装置から通知信号を受信し確認信号を送信する処理装置、及びデータ記憶装置を備えることを特徴とする。
【発明の効果】
【００２６】
本発明の暴走検出装置及び暴走検出方法は、処理装置が同一のアドレスのデータ記憶領域へ複数回アクセスしたことを検出したとき処理装置へ通知し、通知後、所定の規定時間が経過する前に処置部から応答がないとき、暴走検出信号を発生する。そのため、処理装置は通知信号を受信したときのみ確認信号を送信すればよい。従って、処理装置は暴走検出装置に対して信号を送信する時刻を常時管理する必要はなく、処理装置の負担が軽いという効果がある。
【００２７】
また、本発明の暴走検出装置及び暴走検出方法では、ある特定のアドレスにおいて実行することが必要な処理は特に求められないので、無限ループが発生したアドレスによっては暴走検出の確度が低下するという問題は生じないという効果もある。
【００２８】
さらに、処理装置がアクセスしたアドレスを記憶するのみで、アクセスした時刻の記憶は不要である。従って、記憶領域を削減することができるという効果がある。
【００２９】
本発明の処理装置は、暴走検出装置から通知信号を受信したときのみ確認信号を送信すればよい。従って、処理装置は暴走検出装置に対して信号を送信する時刻を常時管理する必要はなく、暴走検出のための処理の負担が軽いという効果がある。
【発明を実施するための最良の形態】
【００３０】
次に本発明の最良の実施形態について図面を参照して詳細に説明する。図１は、本発明の最良の実施形態の暴走検出システムのブロック図である。図２は、本実施形態の暴走検出システムのアクセス記憶部が記憶する情報の形態の一例である。図３は、本実施形態の暴走検出方法を示すフローチャートである。図４は、本実施形態の暴走検出装置と処理装置間の信号のやり取りを示すシーケンス図である。
【００３１】
図１、図２を用いて、本発明を実施するための最良の形態の構成について説明する。本実施形態の暴走検出システムは、処理装置１、データ記憶装置２、暴走検出装置３を備える。処理装置１は、アドレスバス７にアドレスを出力し、データバス８を介して、データ記憶装置２にデータを書き込み、あるいはデータ記憶装置２からデータを読み出す。以降、データ記憶装置２へデータを書き込むことと、データ記憶装置２からデータを読み出すことを区別しないときは、単に「アクセスする」という。
【００３２】
データ記憶装置２は、データ書き込み機能及びデータ読み出し機能を備える。データ記憶装置２は、データ書き込み時には、処理装置１がデータバス８に出力したデータを、処理装置１がアドレスバス７に出力したアドレスで指定された領域に書き込み、そして記憶する。データ読み出し時には、処理装置１がアドレスバス７に出力したアドレスで指定された領域に記憶されているデータを、データバス８に出力する。
【００３３】
暴走検出装置３は、アクセス記憶部４、情報検索部５、タイマ６を備える。アクセス記憶部４には処理装置１に供給されるクロックが供給されており、アクセス記憶部４は処理装置１に同期して動作している。そして、アクセス記憶部４は、処理装置１によるデータ記憶装置２へのアクセス時に、アドレスバス７上のアドレスを、クロックに同期して記憶する。
【００３４】
図２に、アクセス記憶部４が記憶する情報の形態の例を示す。図２（ａ）は、アクセス時のアドレスを、順にメモリに記憶する形態である。ここでは、アドレスは、５Ｈ、ＢＨ、８Ｈ、ＦＨ、・・・と順に記憶している。図２（ｂ）は、アドレス毎に確保された１ビットの記憶領域を確保し、アクセスがあったときにそのアドレスに対応する記憶領域を”１”にセットする形態である。
【００３５】
情報検索部５は、アクセス記憶部４内に記憶されているアドレスを検索し、同じアドレスが複数含まれていることを検出すると、通知信号９を処理装置９及びタイマ６へ送信する。
【００３６】
アクセス記憶部４の記憶形態が図２（ａ）の形態のときは、情報検索部５は、アクセス記憶部４が記憶するアドレスを順にスキャンし、同じアドレスが含まれていることを検出すると、通知信号９を送信する。図２（ａ）の記憶内容では、データ”５Ｈ”が２個存在する。従って、情報検索部５がアクセス記憶部４の記憶内容を検索し、データ”５Ｈ”を２個発見した時点で、通知信号９を送信する。
【００３７】
アクセス記憶部４の記憶形態が図２（ｂ）の形態のときは、情報検索部５は、”１”にセットされている記憶領域に、アクセス記憶部４がさらに”１”をセットしようとしたことを検出すると、通知信号９を送信する。あるいは、アクセス記憶部４が記憶領域を”１”にセットするとき、既にその記憶領域が”１”にセットされていることを検出した場合、情報検索部５に通知してもよい。この場合は、アクセス記憶部４からの通知に基づき、情報検索部５が通知信号９を送信すればよい。
【００３８】
タイマ６は、通知信号９を受信すると時間の計測を開始する。そして、タイマ６は、所定の時間内に確認信号１０を受信したときは、時間の計測を停止する。タイマ６は、所定の規定時間内に確認信号１０を受信しなかったときは、暴走検出信号１１を出力する。つまり、規定時間は、処理装置１が暴走状態に陥っていると判断されるまでの猶予時間である。以上のように、暴走検出装置３は、１種のウォッチドックタイマとして動作する。
【００３９】
タイマ６は、確認信号１０を受信したときに時間の計測値をクリアしてもよいし、計測を開始するときに計測値を一旦クリアしてから計測を開始してもよい。
（最良の実施の形態の動作）
次に、図３、図４を用いて、本実施形態の暴走検出システムの動作について説明する。アクセス記憶部４は、処理装置１によるアクセス時のアドレスバス７上のアドレスを常に記憶している。
【００４０】
始めに、情報検索部５は、アクセス記憶部４内に記憶されているアドレスを検索し、同一アドレスが複数存在するか否か調査する（ステップＳ１）。同一アドレスが複数存在することの検出方法は、前述の通り、アクセス記憶部４の記憶形態が図２（ａ）の形態か、図２（ｂ）の形態かによる。そして、情報検索部５は、同一のアドレスが存在することを検出すると、通知信号９を送信する。タイマ６は、通知信号９を受信すると、時間の計測を開始する（ステップＳ２）。情報検索部５が同一のアドレスが存在することを検出しなかったときは、Ｓ１に戻り、再びアクセス記憶部４内に記憶されているアドレスの検索を行う。
【００４１】
タイマ６が時間の計測を開始すると、処理装置１からの確認信号１０の受信の有無を確認する（ステップＳ３）。タイマ６が確認信号１０を受信すると、再びＳ１へ戻る。これは、処理装置１は暴走状態にはなく、通知信号９に対して正常に応答したことを意味する。タイマ６は、確認信号１０を受信しないとき、規定時間が経過したか否か確認する（ステップＳ４）。規定時間が経過していないときは、Ｓ３に戻る。規定時間が経過しているときは、処理装置１は暴走状態にあり、通知信号９に対して正常に応答しなかったことを意味する。そこで、タイマ６は、暴走検出信号１１を送信する（ステップＳ５）。
【００４２】
なお、暴走検出信号１１を送信する送信先は、処理装置１であっても、他の装置であってもよい。処理装置１に送信する場合は、処理装置１のリセット端子、又はノンマスカブル割り込み入力端子等、最優先度の割り込み入力端子へ入力すればよい。暴走検出信号１１を入力した後の、リセット処理、又は割り込み処理の内容は特に限定されない。暴走検出信号１１を処理装置１以外の装置へ送信する場合は、その装置が暴走発生に対応した必要な処理を行えばよい。その処理の内容も特に限定されない。
【００４３】
ところで、処理装置１が割り込み機能を備える場合、通知信号９を受信し確認信号１０するときの処理装置１の処理には注意が必要である。すなわち、通知信号９を受信する処理及び確認信号１０を送信する処理の両方を、割り込み処理で行うことがないようにすることが望ましい。なぜなら、処理装置１が暴走状態にあるときでも、通知信号９を受信すると割り込みルーチンへ分岐し、割り込みルーチンを正常に処理することができる可能性があるからである。あるいは、割り込み要求への応答として確認信号１０を送信することができる可能性があるからである。暴走状態にあるＣＰＵに割り込みが発生したとき、割り込みルーチンへは正常に分岐できる可能性がる。そして、割り込みルーチンの処理を完了し、割り込み発生時のルーチンに復帰したとき、元の暴走状態に戻ってしまう。つまり、暴走状態にあるにも関わらず、暴走状態ではないかのように、確認信号１０を送信してしまう可能性がある。従って、処理装置１が通知信号９を受信する処理、又は確認信号１０を送信する処理の少なくともいずれか一方は、割り込みルーチンでなく、メインルーチンで処理することが望ましい。
【００４４】
図４は、本実施形態の暴走検出装置３と処理装置１間の、信号のやり取りを示すシーケンス図である。図４のように、暴走検出装置３が、処理装置１による同一アドレスへのアクセスを検出すると、通知信号９を送信する。正常状態の処理装置１は通知信号９に応答し、確認信号１０を送信する。しかし、暴走状態の処理装置１は、プログラムの処理を正常に行っていないので、通知信号９を受信することができないか、あるいは確認信号１０を送信することができない。そのため、タイマ６はオーバーフローし、暴走検出装置３は暴走検出信号１１を出力する。
【００４５】
なお、処理装置１のリセット解除直後は、アドレスバス７には不定な信号が出力されている可能性がある。そのため、暴走検出装置３全体のリセット解除は、処理装置１のリセット解除から一定時間だけ遅延させて行うことが望ましい。
（最良の実施の形態の効果）
以上のように、本実施の形態の暴走検出装置は、処理装置がアクセスするときのアドレスを記憶し、同一のアドレスが複数個記憶されると処理装置へ通知する。そして、規定時間内に処理装置から確認信号を受信しないとき、暴走検出信号を出力する。そのため、処理装置は通知信号を受信したときのみ確認信号を送信すればよい。従って、処理装置は、従来のウォッチドッグタイマのリセットのように、暴走検出装置に対して信号を送信するべき時刻を常時管理する必要はなく、処理装置の負担が軽いという効果がある。
【００４６】
また、本実施の形態の暴走検出装置では、ある特定のアドレスにおいて実行することが必要な処理は特に求められないので、無限ループが発生したアドレスによっては暴走検出の確度が低下するという問題は生じないという効果もある。
【００４７】
さらに、処理装置がアクセスしたアドレスを記憶するのみで、アクセスした時刻の記憶は不要である。従って、記憶領域を削減することができるという効果がある。
【実施例１】
【００４８】
暴走検出装置には、検出確度が高いことが要求される。すなわち、暴走検出装置は、暴走が発生したときは確実に検出すること、そして暴走が発生していないときには不要な警告等を行わないことが必要である。そこで、暴走検出確度を向上させることができる実施例として、第１の実施例を示す。第１の実施例は、アクセス記憶部に同一のアドレスが複数組存在するときに処理装置へ通知する暴走検出システムである。
【００４９】
本発明の第１の実施例について図面を参照して詳細に説明する。図５は、第１の実施例の暴走検出システムのブロック図である。図６は、第１の実施例の暴走検出方法を示すフローチャートである。
【００５０】
図５を用いて、本発明の第１の実施例の構成について説明する。第１の実施例の暴走検出システムは、図１の最良の実施形態の本暴走検出システムの構成に加え、暴走検出装置３にカウンタ１２を備える。その他の構成は最良の実施形態と同じである。
【００５１】
暴走検出装置３は、アクセス記憶部４、情報検索部５、カウンタ１２、タイマ６を備える。情報検索部５は、アクセス記憶部４に格納されたアドレスを検索し、同一アドレスが存在することを検出すると、カウンタ１２に通知する。
【００５２】
カウンタ１２には、予め処理装置１から、通知基準値が設定されている。カウンタ１２は、情報検索部５から通知を受けると、カウント値を１だけカウントアップする。また、そして、カウンタ１２は、カウント値を監視し、カウント値が通知基準値を上回ると、通知信号９を処理装置１及びタイマ６へ送信する。つまり、通知基準値は、暴走検出装置３が通知信号９を送信するまでの、複数回のアクセスがあったアドレスの個数の許容値である。通知基準値を超えると、暴走検出装置３は、処理装置１が暴走状態に陥っている可能性があると判断し、通知信号９を処理装置１及びタイマ６へ送信する。
【００５３】
タイマ６の機能は、最良の実施形態と同様である。すなわち、タイマ６は、通知信号９を受信すると時間の計測を開始する。そして、タイマ６は、所定の時間内に確認信号１０を受信したときは、時間の計測を停止する。タイマ６は、所定の規定時間内に確認信号１０を受信しなかったときは、暴走検出信号１１を出力する。
（実施例１の動作）
次に、図６を用いて、第１の実施例の動作について説明する。上述のように、第１の実施例の構成要素は、最良の実施の形態の構成要素にカウンタ１２を付加したものである。そして、第１の実施例の動作と最良の実施の形態の動作は、カウンタ１２に関する動作のみ異なる。すなわち、第１の実施例の暴走検出システムでは、Ｓ１において、情報検索部５がアクセス記憶部４内に同一アドレスが複数存在することを検出すると、カウンタ１２がカウントアップする（ステップＳ６）。そして、カウンタ１２のカウント値が通知基準値を超えたか否か確認する（ステップＳ７）。そして、カウント値が通知基準値を超えた場合、カウンタ１２は通知信号９を送信する。タイマ６は、通知信号９を受信すると、時間の計測を開始し（ステップＳ２）、Ｓ３へ移行する。カウント値が通知基準値を超えていない場合、再びＳ１へ移行し、同一アドレスが存在するか否かの検出を継続する。Ｓ３以降の処理は図３と同じである。
（実施例１の効果）
以上のように、第１の実施例の暴走検出装置は、複数回のアクセスがあったアドレスの個数が基準値を超えると通知信号を送信する。つまり、無限ループに陥ったときなど、同じアドレスへのアクセスが頻繁に発生し、その回数が基準値を超えるまでは通知信号を送信しない。そして、暴走が発生している可能性が高いときのみ処理装置へ通知信号を送信する。従って、処理装置による通知信号の受信、確認信号の送信を必要最小限に留め、処理装置の負担を軽減することができるという効果がある。
【実施例２】
【００５４】
処理装置がアクセスするアドレスの領域には、プログラムが格納されている領域の他に、データや周辺装置がマッピングされている領域（以降、「ＲＡＭ領域」という。）がある。ＲＡＭ領域については、処理装置は同じアドレスへの複数回のアクセスを、正常動作時であっても頻繁に行うことが多い。そこで、第２の実施例の暴走検出システムでは、暴走検出を行うときの監視対象のアドレスの範囲を指定する。それにより、ＲＡＭ領域へのアクセスを監視対象から除外し、誤って不必要な通知信号を送信することを回避する。
【００５５】
本発明の第２の実施例について図面を参照して詳細に説明する。図７は、第２の実施例の暴走検出システムのブロック図である。第２の実施例の暴走検出システムは、図５の第１の実施例の本暴走検出システムの構成に加え、暴走検出装置３にアドレス範囲指定部１３を備える。その他の構成は第１の実施例と同じである。
【００５６】
暴走検出装置３は、アクセス記憶部４、アドレス範囲指定部１３、情報検索部５、タイマ６を備える。アクセス記憶部４は処理装置１に同期して動作している。アクセス記憶部４は、処理装置１によるデータ記憶装置２へのアクセス時に、アドレスバス７上のアドレスを、クロックに同期して記憶する。このとき、アクセス記憶部４は、アドレス範囲指定部１３で指定された範囲のアドレスのみ記憶する。その他の範囲のアドレスについては記憶しない。
【００５７】
アドレス範囲指定部１３のアドレス範囲指定方法の具体例としては、指定範囲の先頭アドレス、最終アドレスの組を記憶する方法、あるいはアドレスの上位の所定のビットのみを指定したりする方法がある。
【００５８】
アクセス記憶部４が、処理装置１がアクセスした、アドレス範囲指定部１３で指定された範囲のアドレスを記憶した以降の動作は、第１の実施例と同様であるので説明は省略する。
【００５９】
以上のように、暴走検出装置３は、指定された範囲のアドレスについてのみアクセスを記憶し、暴走検出の対象としている。従って、ＲＡＭ領域等、同一アドレスへのアクセスが複数回あっても暴走状態ではない領域へのアクセス時には、通知信号９を送信しない。つまり、暴走検出装置３は、不要な通知信号９を送信することがない。
【００６０】
なお、第２の実施例の暴走検出装置３は、カウンタ１２を備えるが、カウンタ１２は必須の要素ではない。暴走検出装置３がカウンタ１２を備えない場合には、処理装置１による同一アドレスへのアクセスを１回検出すると通知信号９を送信する。
（実施例２の効果）
以上のように、第２の実施例の暴走検出装置は、暴走検出を行うためにアクセスを監視するアドレスの範囲を指定することができる。同一アドレスに複数回アクセスがあったとしても、指定範囲外のアドレスの場合には通知信号を出力しない。そのため、例えばＲＡＭ領域などのように、同一アドレスに複数回アクセスがあったとしても正常動作状態であるときに、不必要な通知信号を送信することがない。従って、処理装置が不要な処理により処理を中断されるといった問題は生じないという効果がある。
【実施例３】
【００６１】
プログラムが暴走していることを検出するためには、処理装置１による命令コードの読み出しを監視すればよい。第３の実施例の暴走検出システムは、処理装置１によるデータ記憶装置２へのアクセスが書き込みか読み出しかを区別して監視する。
【００６２】
本発明の第３の実施例について図面を参照して詳細に説明する。図８は、第３の実施例の暴走検出システムのブロック図である。第３の実施例の暴走検出システムのアクセス記憶部４は、処理装置１から、リードライト信号１４を入力する。リードライト信号１４は、処理装置１によるアクセスが書き込みか、あるいは読み出しかを示す、２値の信号である。ここでは、リードライト信号１４は、ロウレベルのとき処理装置１によるアクセスが書き込みで、ハイレベルのときは読み出しであるものとする。その他の構成は第２の実施例と同じである。
【００６３】
暴走検出装置３は、アクセス記憶部４、アドレス範囲指定部１３、情報検索部５、タイマ６を備える。アクセス記憶部４は処理装置１に同期して動作している。アクセス記憶部４は、処理装置１によるデータ記憶装置２へのアクセス時に、アドレスバス７上のアドレスを、クロックに同期して記憶する。このとき、アクセス記憶部４はリードライト信号１４のレベルを確認し、ハイレベルであるとき、すなわち処理装置１によるアクセスが読み出しであるときのみアドレスを記憶する。アクセスが書き込みであるときのアドレスは記憶しない。
【００６４】
アクセス記憶部４が、アドレスを記憶した以降の動作は、第２の実施例と同様であるので説明は省略する。
【００６５】
ところで、データ記憶装置２には、正常動作時には読み出しのみが行われる領域、例えばプログラムや固定データ等が格納された領域（以降、「ＲＯＭ領域」という。）が存在する。そこで、上記の動作に加え、アドレス範囲指定部１２でＲＯＭ領域を指定し、ＲＯＭ領域からの読み出し時のアドレスのみを監視してもよい。ただし、ＲＡＭ領域にもプログラムが格納されている場合には、この追加処理は不要である。また、ＲＯＭ領域への書き込みを検出すると情報検索部５から即座に暴走検出信号１１を出力する処理を追加してもよい。
（実施例３の効果）
以上のように、実施例３の暴走検出装置は、処理装置１によるデータ記憶装置からの読み出し時のみアドレスを記憶し、通常のデータ書き込み等のアクセス時のアドレスは記憶しない。従って、アドレスを記憶するためにアクセス記憶部４が備えるべき記憶容量を削減することができる効果がある。
【実施例４】
【００６６】
プログラムが無限ループに陥り暴走していることを検出するためには、その無限ループを構成していると考えられるプログラムの、一部分のアドレスへのアクセスのみを監視してもよい。無限ループとはあるプログラムを繰り返し実行している状態であるから、無限ループ中に処理装置は分岐命令を必ず１回は実行しているものと考えられる。そこで、第４の実施例の暴走検出システムは、分岐命令を実行した直後のアクセスのみを監視対象とする。すなわち、第４の実施例の暴走検出装置は、処理装置１によるデータ記憶装置２へのアクセスが、分岐命令の実行によるものか否かを区別して監視する。
【００６７】
本発明の第４の実施例について図面を参照して詳細に説明する。図９は、第４の実施例の暴走検出システムのブロック図である。
【００６８】
第３の実施例の暴走検出システムのアクセス記憶部４は、処理装置１から、分岐命令信号１５を入力する。分岐命令信号１５は、処理装置１が出力する信号で、処理装置１が分岐命令を実行した結果、分岐先のアドレスをアクセスしていることを示す２値の信号である。ここでは、分岐命令信号１５がハイレベルのとき、処理装置１は分岐先のアドレスを読み出していることを示すものとする。ロウレベルのときは、分岐命令以外の命令を実行した結果に基づく、アクセスであるものとする。その他の構成は第３の実施例と同じである。
【００６９】
なお、分岐命令とは、連続したアドレスを順に読み出しプログラムを実行している処理装置１を、実行中の命令コードが格納されていたアドレスには連続していないアドレスのプログラムへ分岐させる命令を意味する。具体的には、ジャンプ命令やサブルーチンコール命令などがある。
【００７０】
暴走検出装置３は、アクセス記憶部４、アドレス範囲指定部１３、情報検索部５、タイマ６を備える。アクセス記憶部４は処理装置１に同期して動作している。アクセス記憶部４は、処理装置１によるデータ記憶装置２へのアクセス時に、アドレスバス７上のアドレスを、クロックに同期して記憶する。このとき、アクセス記憶部４は、分岐命令信号１５のレベルがハイレベルであるときのみアドレスを記憶する。分岐命令信号１５のレベルがロウレベルであるときはアクセス時のアドレスを記憶しない。
【００７１】
アクセス記憶部４が、処理装置１がアクセスした、アドレス範囲指定部１３で指定された範囲のアドレスを記憶した以降の動作は、第１の実施例と同様であるので説明は省略する。
【００７２】
以上のように、第４の実施例の暴走検出装置は、分岐命令を実行した直後の分岐先へのアクセスのみを監視対象とする。前述のように、処理装置は、無限ループ中に最低１回は分岐命令を実行しているものと考えられる。従って、分岐直後のアドレスのみを記憶すれば、処理装置１が無限ループに陥ったことの検知は可能である。
【００７３】
さらに、上記の動作に加え、アドレス範囲指定部１２でＲＡＭ領域を指定し、ＲＡＭ領域への分岐を検出すると情報検索部５から即座に暴走検出信号１１を出力するようにしてもよい。ただし、ＲＡＭ領域にプログラムが格納されている場合には、この処理を追加することはできないことは言うまでもない。
（実施例４の効果）
以上のように、実施例４の処理装置は、暴走検出装置へ、分岐命令を実行した直後の分岐先のアドレスからの読み出し時に分岐命令信号を出力する。そして、暴走検出装置は、分岐命令信号に基づき、処理装置による分岐命令実行直後の分岐先アドレスからの読み出し時のみアドレスを記憶する。そのため、アドレスを記憶するためにアクセス記憶部が備えるべき記憶容量を大幅に削減することができるという効果がある。
【００７４】
以上の実施形態及び実施例は、各々他の実施形態及び実施例と組み合わせることができる。すなわち、カウンタ１２、アドレス指定部１３、リードライト信号１４、分岐命令信号１５は、これらを使用していない実施形態や実施例に組み合わせて使用することができる。
【００７５】
本発明における処理装置は、メモリからプログラムを読み出し実行する機能を備える任意の装置を含む。このような処理装置の例としては、いわゆるＣＰＵ、プロセッサ、コンピュータ等と呼ばれる装置がある。
【図面の簡単な説明】
【００７６】
【図１】本発明の最良の実施形態の暴走検出システムのブロック図である。
【図２】本発明の最良の実施形態の暴走検出システムのアクセス記憶部が記憶する情報の形態の一例である。
【図３】本発明の最良の実施形態の暴走検出システムの暴走検出方法を示すフローチャートである。
【図４】本発明の最良の実施形態の暴走検出システムの暴走検出装置と処理装置間の信号のやり取りを示すシーケンス図である。
【図５】第１の実施例の暴走検出システムのブロック図である。
【図６】第１の実施例の暴走検出方法を示すフローチャートである。
【図７】第２の実施例の暴走検出システムのブロック図である。
【図８】第３の実施例の暴走検出システムのブロック図である。
【図９】第４の実施例の暴走検出システムのブロック図である。
【符号の説明】
【００７７】
７    アドレスバス
８    データバス
９    通知信号
１０    確認信号
１１    暴走検出信号
１４    リードライト信号
１５    分岐命令信号
【図１】
2009003589.tif 000003
【図２】
2009003589.tif 000004
【図３】
2009003589.tif 000005
【図４】
2009003589.tif 000006
【図５】
2009003589.tif 000007
【図６】
2009003589.tif 000008
【図７】
2009003589.tif 000009
【図８】
2009003589.tif 000010
【図９】
2009003589.tif 000011