(57)【要約】【課題】  プロセッサの動作異常を迅速に検出する【解決手段】  マイクロコンピュータ１は、ＣＰＵ１１の動作をモニタし、異常を検出した場合に対応する回復処理を実行する。異常判定部１５は、ＣＰＵ１１からその状態遷移に応答して出力される状態遷移信号によって、異常判定を行う。異常判定部１５はカウンタ・クロックに同期してカウントするカウンタ１５１を備え、状態遷移信号を検出すると、カウンタ１５１をクリアする。異常判定部１５が状態遷移信号を検出せずに、カウンタ１５１が基準値に達すると、異常判定部１５はＣＰＵ１１の処理動作における異常と判定する。【選択図】  図１23
2006099654.tif 000002
【特許請求の範囲】
【請求項１】
命令コードに従って動作し、複数の異なる動作状態を遷移するプロセッサと、
前記動作状態に基づいて前記プロセッサから出力される状態信号が、予め定められた条件において検出されたかを判定する判定部と、
前記状態信号が予め定められた条件において検出されなかったと前記判定部が判定した場合に、予め定められた回復処理を指示する回復処理指示部と、
を有する、半導体回路装置。
【請求項２】
前記状態信号は、前記プロセッサの動作状態の遷移に応答して出力される状態遷移信号である、請求項１に記載の半導体回路装置。
【請求項３】
前記状態信号は、前記プロセッサの命令フェッチ状態において出力されるフェッチ信号である、請求項１に記載の半導体回路装置。
【請求項４】
前記判定部は、前記状態信号が規準時間内に検出されるかを判定し、
前記回復処理指示部は、前記状態信号が前記規準時間内に検出されなかったと前記判定部が判定した場合に、前記回復処理を指示する、
請求項１に記載の半導体回路装置。
【請求項５】
前記判定部は、基準値を記憶する基準値記憶部と前記状態信号に基づいて制御されるカウンタとを備え、前記基準値と前記カウンタのカウンタ値とに基づき前記状態信号の検出を判定し、
前記半導体回路装置は、前記基準値記憶部に記憶されている基準値を、前記プロセッサの処理に基づいて変更する基準値設定部をさらに備える、
請求項１に記載の半導体回路装置。
【請求項６】
前記判定部は、カウント・クロックに従ってカウントし前記状態信号に基づいて制御されるカウンタを備え、前記カウンタのカウント値が予め定められた基準値に達する前に前記状態信号を検出するかを判定し、
前記半導体回路装置は、前記カウンタのカウントを制御信号に従って停止するカウンタ制御部をさらに備える、
請求項１又は５に記載の半導体回路装置。
【請求項７】
前記状態信号が予め定められた条件において検出されなかったと前記判定部が判定した場合に、前記プロセッサが保持している命令実行アドレスを一時的に保持する命令実行アドレス保持部をさらに備える、請求項１に記載の半導体回路装置。
【請求項８】
命令コードに従って動作するプロセッサと、
入力信号に従ってカウントするカウンタと、
基準値を記憶する基準値記憶部と、
前記カウンタのカウント値と前記基準値とに基づき回路動作異常を判定する判定部と、
前記基準値記憶部に記憶されている基準値を、前記プロセッサの処理に基づいて変更する基準値設定部と、
を有する半導体回路装置。
【請求項９】
前記カウンタは、前記入力信号としてのカウント・クロックに同期してカウントし、前記プロセッサからの信号に応答してクリアされ、
前記判定部は、前記カウンタのカウント値が前記基準値に達している場合に回路動作異常と判定する、
請求項８に記載の半導体回路装置。
【請求項１０】
前記基準値設定部は、前記プロセッサのアクセス先に基づいて前記基準値を変更する、請求項８に記載の半導体回路装置。
【請求項１１】
命令コードに従って処理を実行するプロセッサと、
カウント・クロックに従ってカウントするカウンタと、
前記カウンタのカウント値が予め定められた基準値に達した場合に、前記プロセッサ処理の異常と判定する判定部と、
制御信号に従って前記カウンタのカウントを停止するカウンタ制御部と、
を有する半導体回路装置。
【請求項１２】
前記判定部は、前記基準値を記憶する基準値記憶部を備えており、
前記半導体回路装置は、前記基準値記憶部の基準値を前記プロセッサの処理に基づいて変更する基準値設定部をさらに備える、
請求項１１に記載の半導体回路装置。
【請求項１３】
前記判定部は、前記カウント値が前記基準値に達して前記カウンタがオーバーフローした場合に、前記プロセッサの動作異常と判定する、請求項１１に記載の半導体回路装置。
【請求項１４】
前記制御信号は前記プロセッサへのウェイト信号である、請求項１１に記載の半導体回路装置。
【請求項１５】
前記制御信号は前記プロセッサがスタンバイ状態に対応して出力されるスタンバイ信号である、請求項１１に記載の半導体回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体回路装置に関し、特に、回路動作の異常判定を実行する半導体回路装置に関する。
【背景技術】
【０００２】
現在、パーソナルコンピュータなどのコンピュータ・システムに限らず、家電製品やＯＡ機器、自動車や製造装置の制御装置など、多くの電子機器においてマイクロコンピュータが利用されている。マイクロコンピュータは、機能的要素として、命令コードやアドレスを含むデータを読み出して命令実行の結果に応じてマイクロコンピュータ全体を制御す制御部、算術演算や論理演算を実行する演算処理部、必要なデータを記憶するレジスタ・セットなどを備えている。また、各種装置の制御装置として実装される場合には、ＲＯＭやＲＡＭなどのメモリの他、各種周辺機能などを備えている。また、制御部、演算処理部、及びレジスタ・セットなどはＣＰＵ内の機能要素として実装される。マイクロコンピュータはプログラムに含まれる命令コードを順次解読し、それに従って処理を行うことで所望の機能を実現する。
【０００３】
命令コードはレジスタ・セットに含まれるプログラム・カウンタの示すアドレスからフェッチされる。例えば外部ノイズなどのためにプログラム・カウンタの値が変化すると、マイクロコンピュータは不測のアドレスにアクセスし、マイクロコンピュータのプログラム実行が暴走する問題が知られている。このため、マイクロコンピュータの暴走を自動的に検出し、暴走に対応した復帰処理を行うことが必要とされる。暴走検出の方法としては、これまでにいくつかのものが提案されている。例えば、ＲＯＭに記憶されているプログラムにＴＲＡＰ命令を分散的に配置することによって暴走を検出し、ＴＲＡＰ処理によって所定の復帰プログラムを実行することができる。
【０００４】
この他、例えば特許文献１は、マイクロコンピュータの一つの暴走検出方法について開示している。特許文献１に開示されたマイクロコンピュータは暴走検出カウンタを備え、常にそれを動作させている。暴走検出カウンタがオーバーフローとなると暴走と判定し、ＣＰＵに異常信号を出力する。マイクロコンピュータは、通常動作時の所定のタイミングで暴走検出カウンタをクリアする。これによって正常動作時に暴走検出カウンタがオーバーフローとなることがなく、正常動作と異なる暴走を検出することができる。
【０００５】
具体的には、マイクロコンピュータはプログラムの実行アドレスを監視し、あらかじめ登録されたアドレスを実行していれば暴走検出カウンタのクリアを行なう。また、マイクロコンピュータの周辺ハードウェアの要因がすべて正しく機能している場合に、暴走検出用カウンタのクリアを行なう。暴走検出用カウンタのクリアは、ソフトウェア（プログラム）を介さずハードウェアによって直接に行われる。このように、暴走検出用カウンタのクリアをハードウェアで行なうことによって、プログラム実行の暴走中に誤ってプログラムが暴走検出カウンタをクリアすることを防止し、プログラム実行が暴走したときの暴走検出を確実に行なうことができる。
【特許文献１】特開２００４−１５１８４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記特許文献１の技術において、マイクロコンピュータの異常判定の基準となる信号は、ＣＰＵが特定アドレスのプログラムを実行した際に出力する信号であり、マイクロコンピュータ内の動作による二次的な信号であった。このように、従来の技術はＣＰＵの動作に直接に起因する信号を監視するものではないので、マイクロコンピュータの動作異常を確実にあるいは迅速に検出することができなかった。例えば、ＣＰＵの故障によりプログラムの実行が不安定である場合でもあっても、特定アドレスが実行されカウンタのオーバーフローが起きない程度に信号が出力される場合には、ＣＰＵの異常を検出することができなかった。あるいは、バス上のメモリ等の異常により通常よりＣＰＵによるアクセス時間が長くなる場合であっても、カウンタのオーバーフローが起きない程度に信号が出力される限り、異常を検出することができなかった。
【０００７】
本発明は上記のような事情を背景としてなされたものであって、本発明の一つの目的は、回路動作の異常検出を改善することである。
【課題を解決するための手段】
【０００８】
本発明の第１の態様は、命令コードに従って動作し、複数の異なる動作状態を遷移するプロセッサと、前記動作状態に基づいて前記プロセッサから出力される状態信号が、予め定められた条件において検出されたかを判定する判定部と、前記状態信号が予め定められた条件において検出されなかったと前記判定部が判定した場合に、予め定められた回復処理を指示する回復処理指示部とを有する。状態信号を使用することによって、回路動作の異常を迅速に検出することができる。
【０００９】
前記状態信号は、前記プロセッサの動作状態の遷移に応答して出力される状態遷移信号であることが好ましい。あるいは、前記状態信号は、前記プロセッサの命令フェッチ状態において出力されるフェッチ信号であることが好ましい。これらの信号を使用することでプロセッサ処理における異常を迅速に検出することができる。
【００１０】
前記判定部は、前記状態信号が規準時間内に検出されるかを判定し、前記回復処理指示部は、前記状態信号が前記規準時間内に検出されなかったと前記判定部が判定した場合に、前記回復処理を指示することが好ましい。これによって、プロセッサの動作停止を迅速に検出することができる。
【００１１】
前記判定部は、基準値を記憶する基準値記憶部と前記状態信号に基づいて制御されるカウンタとを備え、前記基準値と前記カウンタのカウンタ値とに基づき前記状態信号の検出を判定し、前記半導体回路装置は、前記基準値記憶部に記憶されている基準値を、前記プロセッサの処理に基づいて変更する基準値設定部をさらに備えることが好ましい。これによって、プロセッサ処理に応じた適切な回路動作異常の検出を行うことができる。
【００１２】
前記判定部は、カウント・クロックに従ってカウントし前記状態信号に基づいて制御されるカウンタを備え、前記カウンタのカウント値が予め定められた基準値に達する前に前記状態信号を検出するかを判定し、前記半導体回路装置は、前記カウンタのカウントを制御信号に従って停止するカウンタ制御部をさらに備えることが好ましい。これによって、プロセッサ処理に応じた適切な回路動作異常の検出を行うことができる。前記状態信号が予め定められた条件において検出されなかったと前記判定部が判定した場合に、前記プロセッサが保持している命令実行アドレスを一時的に保持する命令実行アドレス保持部をさらに備えることが好ましい。これによって、回復処理後に中断された処理から再開することができる。
【００１３】
本発明の第２の態様は半導体回路装置であって、命令コードに従って動作するプロセッサと、入力信号に従ってカウントするカウンタと、基準値を記憶する基準値記憶部と、前記カウンタのカウント値と前記基準値とに基づき回路動作異常を判定する判定部と、前記基準値記憶部に記憶されている基準値を、前記プロセッサの処理に基づいて変更する基準値設定部を有する。基準値をプロセッサの処理に基づいて変更することによって、プロセッサ処理に応じた適切な回路動作異常の検出を行うことができる。
【００１４】
前記カウンタは、前記入力信号としてのカウント・クロックに同期してカウントし、前記プロセッサからの信号に応答してクリアされ、前記判定部は、前記カウンタのカウント値が前記基準値に達している場合に回路動作異常と判定することが好ましい。これによりカウンタを使用した異常検出を効果的に行うことができる。前記基準値設定部は、前記プロセッサのアクセス先に基づいて前記基準値を変更することが好ましい。これによって、アクセス先によって変化するプロセッサの処理時間に応じた適切な異常検出を行うことができる。
【００１５】
本発明の第３の態様は半導体回路装置であって、命令コードに従って処理を実行するプロセッサと、カウント・クロックに従ってカウントするカウンタと、前記カウンタのカウント値が予め定められた基準値に達した場合に、前記プロセッサ処理の異常と判定する判定部と、制御信号に従って前記カウンタのカウントを停止するカウンタ制御部を有する。これによって、より正確なプロセッサ処理の異常検出を行うことができる。
【００１６】
前記判定部は、前記基準値を記憶する基準値記憶部を備えており、前記半導体回路装置は、前記基準値記憶部の基準値を前記プロセッサの処理に基づいて変更する基準値設定部をさらに備えることが好ましい。これによって、プロセッサ処理に応じた適切な回路動作異常の検出を行うことができる。
【００１７】
前記判定部は、前記カウント値が前記基準値に達して前記カウンタがオーバーフローした場合に、前記プロセッサの動作異常と判定することができる。前記制御信号は前記プロセッサへのウェイト信号であることが好ましい。あるいは、前記制御信号は前記プロセッサがスタンバイ状態に対応して出力されるスタンバイ信号であることが好ましい。これらの信号によってカウント動作を停止することによって、より正確な異常検出を行うことができる。
【発明の効果】
【００１８】
本発明によれば、回路動作における異常検出を改善することができる。
【発明を実施するための最良の形態】
【００１９】
以下に、本発明を適用可能な実施の形態が説明される。以下の説明は、本発明の実施形態を説明するものであり、本発明が以下の実施形態に限定されるものではない。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。又、当業者であれば、以下の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換することが可能である。
【００２０】
実施の形態１．
本実施形態のマイクロコンピュータは、プロセッサ（本形態ではＣＰＵとして示されている）の動作をモニタし、異常を検出した場合に対応する回復処理を実行する。プロセッサ動作の異常は、プロセッサからその動作状態に基づいて出力される状態信号を検出することによって行う。本形態のおいては、状態信号として、プロセッサの動作状態の遷移に応じて出力される状態遷移信号が使用される。プロセッサからの状態信号によってその異常を判定することによって、プロセッサの動作異常を迅速に検出することができる。
【００２１】
プロセッサ動作の異常検出のため、本形態のマイクロコンピュータはカウンタを使用する。例えば、カウンタをプロセッサの状態信号に基づいてクリアし、カウンタが基準値に達するとプロセッサの動作異常と判定して、対応する回復処理を実行する。プロセッサの状態遷移が正常に行われている場合には、基準値に達する前にカウンタがクリアされる。状態遷移が正常ではない場合にカウンタが基準値に達し、プロセッサ動作の異常を検出することができる。基準値は、プロセッサの処理に応じて変化される。これによって、異常検出をより適切なものとすることができる。
【００２２】
本形態のマイクロコンピュータにおける異常検出について詳しい説明を行う前に、まず、本形態のマイクロコンピュータのハードウェア構成について、その概略を説明する。図１は、本実施形態に係るマイクロコンピュータ１のハードウェア構成の概略を模式的に示すブロック図である。マイクロコンピュータ１は、プロセッサの一例であるＣＰＵ１１、読み出し専用メモリであるＲＯＭ１２、任意のアドレスを指定してデータを読み書きすることが可能なＲＡＭ１３、周辺回路との間のデータの入出力をインターフェースする周辺Ｉ／Ｏ回路１４を備えている。ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３及び周辺Ｉ／Ｏ回路１４は内部バスを介して接続されており、各回路は、命令コード、アドレスあるいは演算データなどのデータ及び制御信号を、内部バスを介して互いに入出力する。
【００２３】
さらに、マイクロコンピュータ１は、ＣＰＵ１１の処理動作の異常を検出する異常判定部１５、異常判定部１５の検出結果に基づいて回復処理の指示を行う監視部１６及びＣＰＵ１１動作の異常発生時における命令実行アドレスを記憶する命令実行アドレス保持部１７を備えている。異常判定部１５はＣＰＵ１１の動作をモニタし、ＣＰＵ１１動作の異常を検出すると異常検出信号を監視部１６に出力する。監視部１６は、異常検出信号に応答して回復処理の指示を行う。回復処理の指示は、割り込み要求、あるいは、リセット信号等として出力される。
【００２４】
図１に示された各回路要素の構成について説明する。ＣＰＵ１１は、レジスタ・セット１１１、制御部１１２、演算処理部１１３及びバス・インターフェース１１４などの各回路ブロックを備えている。レジスタ・セット１１１は複数のレジスタからなり、命令コードやアドレスあるいは演算データなどを一時的に格納する。レジスタ・セット１１１には、演算データを格納するアキュムレータやプログラム実行アドレスを指示するプログラム・カウンタなどが含まれている。
【００２５】
制御部１１２は、ＲＯＭ１２などから命令コードをフェッチする命令フェッチ回路や、命令コードを解読する命令デコーダなどを備えている。制御部１１２は、ＲＯＭ１２やＲＡＭ１３などから命令コードやアドレスを含むデータをレジスタに読み出し、命令実行の結果に応じてマイクロコンピュータ１全体を制御する。また、他の回路からの割り込み要求があった場合に、割り込み要因に応じた割り込み処理の制御を行う。割り込み処理は、ＲＯＭ１２に記憶されている割り込みプログラムを実行することによって行う。演算処理部１１３は、加減算などの数値演算、ＡＮＤ・ＯＲ・ＮＯＴなどの論理演算及びシフト命令などを実行する。バス・インターフェース１１４は、他の回路と間のデータや命令コードの入出力をインターフェースする。
【００２６】
ＲＯＭ１２は、ユーザによって設定された命令コードや演算データを予め記憶している。ＲＯＭ１２としては、電源が切れても記憶データを保持する不揮発性メモリが使用され、例えば、フラッシュメモリなどのＥＥＰＲＯＭ（Electrically Erasable Read-Only Memory）を使用することができる。ＲＡＭ１３は揮発性の記憶デバイスであり、再書き込みが不要なＳＲＡＭ、一定時間毎に再書き込みが必要なＤＲＡＭなどを使用することができる。
【００２７】
異常判定部１５は、カウンタ１５１及びコンペア・レジスタ１５２を備えている。カウンタ１５１は入力されたカウント・クロックに従ってカウントする。典型的には、カウント・クロックは一定周波数の信号として入力される。コンペア・レジスタ１５２は設定された基準値を記憶する。異常判定部１５は、カウンタ１５１の値とコンペア・レジスタ１５２の値を比較する。カウンタ１５１の値が基準値に達した場合にＣＰＵ１１動作の異常と判定し、異常検出信号を出力する。尚、異常判定部１５は、コンペア・レジスタ１５２の値から演算により基準値を算出すること、あるいは、コンペア・レジスタ１５２の値とカウンタ１５１の値を演算処理して異常の判定を行うことも可能である。
【００２８】
監視部１６は、異常判定部１５の異常判定結果に基づいて、回復処理の実行を制御する。異常判定部１５が異常検出信号を出力すると、異常検出信号に応答して、監視部１６は回復処理の実行を指示する。例えば、監視部１６はＣＰＵ１１へ割り込み要求を行う、あるいは、内部リセット信号を出力する。割り込み要求に応答して、ＣＰＵ１１は予め定められた割り込みプログラムをＲＯＭ１２から読み込み、割り込みプログラムに従って回復処理を実行する。
【００２９】
あるいは、回復処理の他の態様として、リセット信号によってＣＰＵ１１やＲＡＭ１３を選択的にリセットし、あるいは、マイクロコンピュータ１の全体をリセットすることができる。リセット後は所定の初期化処理が実行される。尚、割り込み要求を外部回路に出力し、の外部装置に対してマイクロコンピュータ１（ＣＰＵ１１）の異常を通知し、外部装置からリセット信号をマイクロコンピュータ１に入力することなども可能である。
【００３０】
命令実行アドレス保持部１７は、監視部１６からの制御信号に応答して、異常検出時のＣＰＵ１１の命令実行アドレスを一時的に記憶する。監視部１６は、異常判定部１５から異常検出信号を取得すると制御信号を命令実行アドレス保持部１７に出力し、その制御信号に応答してＣＰＵ１１のプログラム・カウンタに記憶されている値を命令実行アドレス保持部１７が記憶する。
【００３１】
命令実行アドレス保持部１７に記憶されたアドレスは、外部のデバッグ・ツール（不図示）で読み出しデバッグに利用する、あるいは、異常から復帰した後にＣＰＵ１１によって読み出すことも可能である。異常検出時の実行アドレスを保持することによって、異常時の解析（デバッグ）をより容易なものとすることができる。あるいは、異常状態からの復帰処理において、異常発生時の実行アドレスを知ることができるので、適切な復帰処理を行うことができる。尚、実行アドレスの他に、レジスタ・セット１１１に記憶された他のデータを記憶することができる。
【００３２】
上記のように、カウンタ１５１のカウント値が基準値以上となる（基準値に達する）と、異常判定部１５はＣＰＵ１１の動作に異常発生したと判定する。このため、ＣＰＵ１１が正常に動作している場合には、カウンタ１５１の値をクリアする（規定値にリセットする）ことが必要である。異常判定部１５は、ＣＰＵ１１からのクリア信号に応答してカウンタ１５１をクリアする。本形態において、クリア信号として状態遷移信号が使用される。図２は、カウンタ１５１のクリア・タイミングを示すタイミング・チャートである。図２に示すように、カウンタ１５１は、入力されたカウント・クロックに同期してカウンタする。本例においては、カウンタはカウント・クロックの立ち上がりタイミングでカウント・アップする。クリア信号が入力された場合、カウンタ１５１がクリアされる。本例では、クリア信号の立ち上がりに同期してカウンタの値が０にリセットされる。
【００３３】
上記のように、本形態のマイクロコンピュータ１は、ＣＰＵ１１からのクリア信号として、ＣＰＵ１１の動作状態遷移を表す状態遷移信号を使用する。異常判定部１５はＣＰＵ１１の動作状態遷移をモニタし、ＣＰＵ１１の動作状態遷移に基づいてカウンタ１５１をクリアする。これによって、状態遷移信号が所定の基準時間内に検出されない場合、ＣＰＵ１１処理における異常と判定される。つまり、ＣＰＵ１１の動作が停止し、ＣＰＵ１１の動作状態が次の動作状態に遷移することなく所定時間以上経過した場合に、ＣＰＵ１１の動作の異常と判定する。
【００３４】
ＣＰＵ１１の動作状態の変化を表す状態遷移信号が、ＣＰＵ１１から異常判定部１５に入力される。状態遷移信号が状態遷移を示したことに応答して、異常判定部１５はカウンタ１５１をクリアする。状態遷移信号が状態遷移を示すまでカウンタ１５１はカウントを進め、カウンタ１５１の値がコンペア・レジスタ１５２の基準値に達すると、異常判定部１５は異常検出信号を出力する。
【００３５】
図３は、ＣＰＵ１１の動作状態及び状態遷移信号の関係を示すタイミング・チャートである。本形態のＣＰＵ１１はパイプライン処理によってプログラムの命令を実行する。図３に示すように、命令処理（命令サイクル）は複数の処理工程（動作状態）に分割されている。「ＩＦ（Instruction Fetch）」は命令フェッチ、「ＩＤ（Instruction Decode）」は命令デコード／レジスタ・ファイル読み出し、ＥＸ（EXecution）は実行／アドレス生成の各処理単位を示している。また、ＭＥＭ（MEMory access）はメモリ・アクセス（読み出し／書き込み）、ＷＢ（Write Back）はレジスタ・ファイルへの書き込みの各処理（動作状態）を示している。
【００３６】
パイプライン処理は、異なる処理工程を同時に行うことによって、前の命令サイクルが終了する前に、次の命令サイクルを開始する。ＣＰＵ１１は、上記の各処理に対応する異なる回路ブロックを備え、各回路ブロックはパイプライン・レジスタを介して接続されている。各回路ブロックは、独立して処理を行う。このように、パイプライン化されたデータ・パスを備えているため、ＣＰＵ１１は、一つのクロックサイクルにおいて異なる処理単位を同時的に実行し、複数の命令を並列的に実行することができる。
【００３７】
状態遷移信号は、ＣＰＵ１１によるパイプライン処理を構成する各動作状態の終了（もしくは開始）に同期して出力される。状態遷移を表す状態遷移信号は、ＣＰＵ１１がパイプライン処理を正常に実行している間は、ほぼ一定の周期で出力される。しかし、メモリのロックなどによりＣＰＵ１１の処理が停止すると状態遷移信号も停止し、出力信号のレベルが変化することなく一定に維持される。この状態が所定時間以上続くと、カウンタ１５１の値が基準値に達して。このように、ＣＰＵ１１の動作状態変化を監視することによって、ＣＰＵ１１の動作クロックに応じた異常検出が可能となり、迅速な異常検出を行うことができる。
【００３８】
本形態のマイクロコンピュータ１は、さらに、コンペア・レジスタ１５２に記憶された基準値を、ＣＰＵ１１の処理に基づいて変化させる。例えば、メモリへのアクセス（図３におけるＭＥＭステージ）時間は、メモリ（アクセス先）の応答時間によって変化する。アクセスされるメモリ（アクセス先）は、ＲＯＭ１２、ＲＡＭ１３の他、外部バスに接続される外部装置であり、あるいは、周辺Ｉ／Ｏ回路１４のレジスタなどである。
【００３９】
これらの応答時間はそれぞれ異なりうるため、ＣＰＵ１１停止の許容時間（ＣＰＵ１１動作が異常であると判定する時間）を、アクセス先に応じて適切な値に設定することが好ましい。本形態においては、ＣＰＵ１１もしくはその要求に従う異常判定部１５は、ＣＰＵ１１のアクセス先に応じて、コンペア・レジスタ１５２の基準値を決定し、その値を設定する。これによって、カウンタ１５１の値が基準値に達するまでの時間を変更し、現在の状態に遷移してから次の状態に遷移することなく異常と判定するまでの時間を適切な時間に設定する。以上の構成を有することによって、ＣＰＵ１１のアクセス先に合ったＣＰＵ１１停止の許容時間を設定することができ、ＣＰＵ１１の動作異常の検出精度を向上することができる。
【００４０】
尚、本形態のマイクロコンピュータ１は、異常判定部１５や監視部１６などの回路を内部回路として備えているが、これらを外部回路として構成することも可能である。また、カウンタ１５１の値をコンペア・レジスタ１５２の基準値と比較するのではなく、異常判定部１５は、カウンタ１５１がオーバーフローした場合に異常検出信号を出力することも可能である。さらに、異常判定部１５は、ＣＰＵ１１の動作に応じてオーバーフロー値を再設定することも可能である。
【００４１】
また、本形態のＣＰＵ１１動作の異常検出は、様々なタイプのマイクロコンピュータに適用することが可能である。例えば、ＭＰＵ、周辺用ＬＳＩ（MPR：Micro Peripheral Unit）、マイクロコントローラ、ＤＳＰ（Digital Signal Processor）など、いずれのタイプのマイクロコンピュータに適用することも可能である。これらの点は、以下の記載において同様である。
【００４２】
実施の形態２．
図４を参照して、本実施形態に係るマイクロコンピュータについて説明する。本形態のマイクロコンピュータは、実施の形態１と異なり、プロセッサからの状態信号として、プロセッサの各動作状態（１命令サイクルにおける処理工程）において必ず出力される信号を使用する。特に、以下においては、命令フェッチ動作状態におけるフェッチ信号に従って、プロセッサの動作異常の判定を実行する例を説明する。
【００４３】
また、プロセッサ動作の異常検出のため、本形態のマイクロコンピュータはカウンタを使用する。本形態のマイクロコンピュータは、実施の形態１と異なり、予め定められた状態信号の検出に応答してカウンタをカウントアップし、所定時間内に基準値に達しない場合にプロセッサの動作異常と判定して、対応する回復処理を実行する。
【００４４】
図４は、本実施形態に係るマイクロコンピュータ２のハードウェア構成の概略を模式的に示すブロック図である。本形態のマイクロコンピュータ２は、異常判定部２５とカウンタ２５１において実施の形態１と異なり、他の構成要素は実施の形態１において説明されたものと同様である。異常判定部２５には、ＣＰＵ１１からフェッチバスに出力されるフェッチ信号が入力される。フェッチ信号として、フェッチバス上のリードクロック、フェッチアドレス、あるいはフェッチバスの使用権取得信号などを使用することができる。尚、異常判定部２５はフェチバス上の信号をモニタするのではなく、命令フェッチ状態にあるＣＰＵ１１から出力される信号を直接に異常判定部２５に入力することも可能である。
【００４５】
本例において、カウンタ２５１は、カウント・クロックではなく、ＣＰＵ１１から入力されたフェッチ信号に応答してカウントアップする。異常判定部２５は、予め定められた基準時間において、カウンタ２５１のカウント値が予め定められた基準値に達しているかを判定する。異常判定部２５は、カウント値が基準値に達している場合、ＣＰＵ動作に異常がないと判定し、カウンタ２５１をクリアする。クリアされたカウンタ２５１は、検出したフェッチ信号に応答したカウント処理を始めから再開する。
【００４６】
カウント値が基準値に達していない場合、異常判定部２５はＣＰＵ１１の動作に異常が発生したと判定する。本例においては、フェッチ信号が基準時間内に基準回数検出されなかった場合（つまり、基準時間内にフェッチ信号が検出されなかったことに相当する）、異常判定部２５はＣＰＵ１１に動作に異常があると判定する。これによって、命令フェッチ処理（動作状態）が基準時間内に基準回数実行されなかった場合、異常判定部２５はＣＰＵ１１に動作に異常があると判定する。
【００４７】
例えば、ＣＰＵ１１の故障やバスのロックなどによってＣＰＵ１１に実行が停止した場合、実行プログラムのフェッチ信号が停止する。異常判定部２５は、カウンタ２５１のカウンタ値が規定値に達しないことによって、ＣＰＵ１１の実行停止（動作異常）を検出することができる。ＣＰＵ１１異常判定部２５が異常と判定した場合の回復処理は、実施の形態１と同様である。上記のように、ＣＰＵ１１の各動作状態において出力される信号をモニタして、ＣＰＵ１１の動作異常を判定することによって、ＣＰＵ１１の動作異常を迅速に検出することができる。
【００４８】
本実施形態はフェッチ信号の例を説明したが、命令デコード／レジスタ・ファイル読み出し、実行／アドレス生成など、他の動作状態において出力される信号を状態信号として使用することが可能である。また、実施の形態１で説明したように、カウンタ・クロックに従って動作するカウンタを使用して、異常検出を行うことが可能である。反対に、実施の形態１において、状態信号検出に応答して動作するカウンタを使用することが可能である。
【００４９】
実施の形態１と同様に、コンペア・レジスタ１５２の値をＣＰＵ１１の処理に応じて変更することも可能である。例えば、処理に時間を要する命令を実行するためにフェッチ信号が一時的に停止する場合に、コンペア・レジスタ１５２の値を変更することで異常検出を適切化することができる。又、フェッチ先（ＲＯＭ１１やＲＡＭ１３）に応じて、コンペア・レジスタ１５２の値を変更することもできる。尚、状態遷移信号とフェッチ信号など、複数の異なる状態信号を使用してＣＰＵ１１動作の異常判定を行うことも可能である。
【００５０】
実施の形態３．
図５及び６を参照して、本実施形態に係るマイクロコンピュータについて説明する。本形態のマイクロコンピュータは、実施の形態１と異なり、異常判定部のカウンタに入力されるカウント・クロックをマスクするマスク制御部を備えている。マスク制御部がカウント・クロックをマスクすることによってカウンタのカウントが停止し、カウンタの制御を容易に行うことができる。
【００５１】
図５本実施形態に係るマイクロコンピュータの概略構成を模式的に示すブロック図である。図に示すように、マイクロコンピュータ３は、マスク制御部３１を備えている。マスク制御部３１にはカウント・クロックとカウント・クロックのマスクを制御する制御信号が入力される。本形態においては、好ましい態様として、ＲＯＭ１２、ＲＡＭ１３及び周辺Ｉ／Ｏ回路１４からのウェイト信号が制御信号として入力されている。これらのウェイト信号は、ＯＲ論理３２を介してマスク制御部３１に入力されている。
【００５２】
また、異常判定部３５は、カウンタ３５１のオーバーフローに応答して異条検出信号を出力する。この他の構成は、実施の形態１と同様であり、詳細な説明を省略する。尚、実施の形態１と同様に、異常判定部３５はコンペア・レジスタ１５２を備え、基準値とカウンタ３５１の値を比較することによってＣＰＵ１１動作の異常を判定することも可能である。
【００５３】
図６は、本実施形態におけるカウンタ３５１の制御信号とカウンタ動作の関係を示すタイミング・チャートである。図６は、ＣＰＵ１１からのクリア信号、マスク制御部３１に入力されるカウント・クロック、マスク制御部３１からのマスク信号及びカウンタ３５１のカウンタ動作を示している。マスク制御部３１は、ＡＮＤ論理を備えており、ウェイト信号とカウント・クロックが入力される。ウェイト信号が入力されている場合、マスク制御部３１はカウント・クロックをマスクし、マスク信号をアクティブにセットする。カウント・クロックはカウンタ３５１に入力されないため、カウンタ３５１はカウントを停止する。ＲＯＭ１２、ＲＡＭ１３及び周辺Ｉ／Ｏ回路１４からのウェイト信号はＯＲ論理３２に入力されているので、これら回路要素のいずれか一つがウェイト信号を出力している場合、マスク制御部３１にウェイト信号が入力される。
【００５４】
一方、ウェイト信号が入力されていない場合、マスク制御部３１は入力されたカウント・クロックをカウンタ３５１に出力する。カウンタ３５１はカウント・クロックに同期してカウント処理を行う。カウンタ３５１がオーバーフローすると、異常判定部３５が異常検出信号を監視部１６に出力する。
【００５５】
ＣＰＵ１１がメモリにアクセスする場合、メモリ（ＲＡＭ１３）からデータがＣＰＵ１１に入力されるまで、ＣＰＵ１１の状態遷移動作が停止する。メモリ・アクセスが不特定時間のウェイトによって変動する場合において、ウェイト時間がシステム上問題にならない場合、そのウェイト信号でカウント・クロックをマスクする。これによって、ウェイト時間以外の処理時間をカウンタ３５１がカウントし、監視することができる。これによって、従来不特定のウェイト時間の影に埋もれていたウェイト時間以外の処理を効果的に監視することができる。
【００５６】
例えば、ＣＰＵ１１がメモリ・アクセスをする場合、ＣＰＵ１１はバス使用権を獲得する。ＣＰＵ１１がメモリ（ＲＡＭ１３）へデータ要求を出力すると、それに応答してＲＡＭ１３からＣＰＵ１１のデータが入力される。ＲＡＭ１３が、ＣＰＵ１１からの要求に応答して即座にデータを出力することができない場合、ＲＡＭ１３はＣＰＵ１１にウェイト信号を出力する。ウェイト信号が出力されている間はカウンタ１５１がカウントを停止することによって、ウェイト時間の影に隠れていたバス使用権の獲得時間を監視することができる。あるいは、カウント・クロックをマスクすることでカウンタのカウントを停止し監視機能を無効にすることができる。デバッグ時など、監視機能を停止させたい場合に有効である。
【００５７】
上記例においては、ウェイト信号を使用してカウント・クロックをマスクするが、この他、マイクロコンピュータのスタンバイ状態に対応するスタンバイ信号を使用することができる。スタンバイ信号は、マイクロコンピュータ３をスタンバイ状態にセットするためにマイクロコンピュータ入力される、あるいは、スタンバイ状態になった後にマイクロコンピュータ内で出力される信号である。又、外部端子から制御信号に応じてカウント・クロックをマスクすることができる。図５に示されたＯＲ論理３２にスタンバイ信号や外部端子からの制御信号を入力する。これによって、これらの信号に応答してカウント・クロックをマスクし、監視機能を一時的に停止することができる。
【００５８】
あるいは、カウンタ３５１に、カウント動作を制御するカウント許可信号の入力を設けることによって、カウンタ３５１のカウント動作を所望のタイミングで停止させることができる。カウント許可信号は、カウント・クロックのマスク機能に代えて、あるいはマスク機能と共に利用することができる。尚、本例においては複数の回路要素からのウェイト信号をＯＲ論理に入力して利用しているが、一つの回路からのウェイト信号のみを使用する、あるいは複数の回路要素からの信号をＡＮＤ論理に入力することも可能である。
【図面の簡単な説明】
【００５９】
【図１】第１の実施形態に係るマイクロコンピュータのハードウェア構成を模式的に示すブロック図である。
【図２】第１の実施形態に係るカウンタのクリア・タイミングを示すタイミング・チャートである。
【図３】第１の実施形態に係るＣＰＵの動作状態及び状態遷移信号の関係を示すタイミング・チャートである。
【図４】第２の実施形態に係るマイクロコンピュータのハードウェア構成を模式的に示すブロック図である。
【図５】第３の実施形態に係るマイクロコンピュータのハードウェア構成を模式的に示すブロック図である。
【図６】第３の実施形態に係るカウンタのカウント動作、クリア信号及びマスク信号の関係を示すタイミング・チャートである。
【符号の説明】
【００６０】
１  マイクロコンピュータ、２  マイクロコンピュータ、
３  マイクロコンピュータ、１４  周辺Ｉ／Ｏ回路、１５  カウンタ、
１５  異常判定部、１６  監視部、１７  命令実行アドレス保持部、
２５  異常判定部、３１  マスク制御部、３２  ＯＲ論理、３５  異常判定部、
１１１  レジスタ・セット、１１２  制御部、１１３  演算処理部、
１１４  バス・インターフェース、１５１  カウンタ、
１５２  コンペア・レジスタ、２５１  カウンタ、３５１  カウンタ
【図１】
2006099654.tif 000003
【図２】
2006099654.tif 000004
【図３】
2006099654.tif 000005
【図４】
2006099654.tif 000006
【図５】
2006099654.tif 000007
【図６】
2006099654.tif 000008