(57)【要約】【課題】  従来の周期処理を前提としたハードウェアによる暴走検出回路では、一意に決定された周期処理に対してウォッチドッグタイマを用いて暴走検出するため、処理毎に実行期間が異なるなど複雑な処理システムや、暴走検出に即時性が求められるようなシステムに対応することは難しい。【解決手段】  暴走検出対象のプロセッサに入力される信号の出力期間を計測し、所定の期間と比較して信号の出力期間が長い場合、暴走検出対象のプロセッサに関する暴走通知信号を出力する暴走監視部と、暴走通知信号が入力されることで暴走検出対象のプロセッサに対して復旧処理を行う暴走監視プロセッサとを備えた暴走検出回路である。【選択図】  図１
2008146223.tif 000002
【特許請求の範囲】
【請求項１】
暴走検出対象のプロセッサに入力される信号の出力期間を計測し、所定の期間と比較して前記信号の出力期間が長い場合、前記暴走検出対象のプロセッサに関する暴走通知信号を出力する暴走監視部と、
前記暴走通知信号が入力されることで、前記暴走検出対象のプロセッサに対して復旧処理を行う暴走監視プロセッサと、
を備えたことを特徴とする暴走検出回路。
【請求項２】
前記暴走検出対象のプロセッサに入力される信号は、前記暴走検出対象のプロセッサに対する割込信号であることを特徴とする請求項１記載の暴走検出回路。
【請求項３】
複数のプロセッサより構成され、プロセッサに入力される信号を計測して前記プロセッサの暴走を検出する暴走検出回路において、
一方のプロセッサに入力される信号の出力期間を計測し、前記一方のプロセッサに関する所定の期間と比較して前記一方のプロセッサに入力される信号の出力期間が長い場合、前記一方のプロセッサに関する暴走通知信号を出力するとともに、他方のプロセッサに入力される信号の出力期間を計測し、前記他方のプロセッサに関する所定の期間と比較して前記他方のプロセッサに入力される信号の出力期間が長い場合、前記他方のプロセッサに関する暴走通知信号を出力する暴走監視部を備え、
前記一方のプロセッサは、前記暴走監視部から出力される前記他方のプロセッサに関する暴走通知信号が入力されることで、前記他方のプロセッサに対して復旧処理を行い、
前記他方のプロセッサは、前記暴走監視部から出力される前記一方のプロセッサに関する暴走通知信号が入力されることで、前記一方のプロセッサに対して復旧処理を行う
ことを特徴とする暴走検出回路。
【請求項４】
前記一方のプロセッサに入力される信号は、前記一方のプロセッサに対する割込信号であり、前記他方のプロセッサに入力される信号は、前記他方のプロセッサに対する割込信号であることを特徴とする請求項３記載の暴走検出回路。
【請求項５】
暴走検出対象のプロセッサに入力される信号の出力期間を計測し、所定の期間と比較して前記信号の出力期間が長い場合、前記暴走検出対象のプロセッサに関する暴走通知信号を出力する第１の工程と、
前記暴走通知信号が入力されることで、前記暴走検出対象のプロセッサに対して復旧処理を行う第２の工程と、
を備えたことを特徴とする暴走検出方法。
【請求項６】
前記暴走検出対象のプロセッサに入力される信号は、前記暴走検出対象のプロセッサに対する割込信号であることを特徴とする請求項５記載の暴走検出方法。
【請求項７】
複数のプロセッサより構成され、プロセッサに入力される信号を計測して前記プロセッサの暴走を検出する暴走検出方法において、
一方のプロセッサに入力される信号の出力期間を計測し、前記一方のプロセッサに関する所定の期間と比較して前記一方のプロセッサに入力される信号の出力期間が長い場合、前記一方のプロセッサに関する暴走通知信号を出力するとともに、他方のプロセッサに入力される信号の出力期間を計測し、前記他方のプロセッサに関する所定の期間と比較して前記他方のプロセッサに入力される信号の出力期間が長い場合、前記他方のプロセッサに関する暴走通知信号を出力する第１の工程と、
前記一方のプロセッサに対し、前記他方のプロセッサに関する暴走通知信号を入力することで、前記他方のプロセッサの復旧処理を行う第２の工程と、
前記他方のプロセッサに対し、前記一方のプロセッサに関する暴走通知信号を入力することで、前記一方のプロセッサの復旧処理を行う第３の工程と、
を備えたことを特徴とする暴走検出方法。
【請求項８】
前記一方のプロセッサに入力される信号は前記一方のプロセッサに対する割込信号であり、前記他方のプロセッサに入力される信号は前記他方のプロセッサに対する割込信号であることを特徴とする請求項７記載の暴走検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサより構成されるマルチプロセッサシステムにおいて、プロセッサが暴走した場合の暴走検出回路および暴走検出方法に関する。
【背景技術】
【０００２】
マルチプロセッサシステムでは、複数のプロセッサが様々なタスクを分散処理する。この分散処理中に、一部のプロセッサが暴走する場合がある。ここでプロセッサの暴走とは、例えば、プロセッサが実行するプログラムの設計不良に起因する設計の想定を超えた動作や、設置実装されているプロセッサに対する温度、湿度、電磁気、放射線などの物理的環境に起因するプロセッサ内部素子の誤動作や、半導体等によって構成されるプロセッサ内部素子の故障に起因する予測不可能な動作などがある。
【０００３】
従来の暴走を検出する手段としては、例えばシステム動作に周期性を持たせ、この周期間隔を監視し、周期間隔以上システム動作が滞った場合、暴走していると判断して検出するウォッチドッグタイマを用いた暴走検出回路がある。
【０００４】
この暴走検出回路は、異常状態を検出するための一定の期間を計時し、タイマが飽和した場合に異常検出信号を出力するウォッチドッグタイマや、異常検出信号をもとにＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：中央処理装置）にリセット信号を出力する手段や、異常検出信号を記憶する記憶手段や、記憶手段の出力によりＣＰＵのウォッチドッグタイマ割込みを起動させる手段や、ウォッチドッグタイマ割込みの受付によりＣＰＵから発生する受付信号をもとに記憶手段の出力をクリアする手段など、ハードウェアにより構成される。
【０００５】
ウォッチドッグタイマは、例えば、システム動作に必要な周期期間よりは長い期間で飽和するタイマである。正常なシステム動作においては、ウォッチドッグタイマが飽和する前に周期処理によりウォッチドッグタイマをリセットする。しかしプロセッサが暴走した場合、ウォッチドッグタイマはリセットされず飽和する。従って、ウォッチドッグタイマが飽和したことによりプロセッサの暴走検出を行う（例えば、特許文献１参照）。
【０００６】
【特許文献１】特登２８７００８３号公報（第２〜３頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来の構成において、ＣＰＵは、ある一意に決定された周期処理を実行する。よって、その周期を異常検出のための閾値としてウォッチドッグタイマに設定する。ところが、処理ごとにＣＰＵの実行期間が異なるようなシステムや、そもそもＣＰＵが実行すべき処理内容に周期性が無い場合など、複雑な処理を行うシステムに対しては、周期処理を前提とした従来の暴走検出回路では、暴走検出に対して十分な効果を発揮することができない。
【０００８】
また従来の方法では、周期処理の最後にウォッチドッグタイマのクリア処理を行い次の周期処理に移るか、あるいは周期処理の最初にウォッチドッグタイマをクリアしてから処理を開始する。周期処理の最中でプロセッサが暴走状態に陥った場合、周期処理期間を超過するまではウォッチドッグタイマは飽和しない。従って、特に周期処理の処理期間が長く、暴走検出に即時性が求められるようなシステムに対しては、従来の暴走検出回路の適用は難しい。
【０００９】
このように、周期処理を前提としたハードウェアによる暴走検出回路では、複雑な処理を行うシステムや、周期処理の期間が長く、暴走検出に即時性が求められるようなシステムに対応することは難しい。
【００１０】
本発明は係る課題を解決するためになされたものであり、システム動作に不可欠なプロセッサへの割込信号を計測してプロセッサが暴走していることを検出する回路、および暴走検出方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明に係る暴走検出回路は、
暴走検出対象のプロセッサに入力される信号の出力期間を計測し、所定の期間と比較して前記信号の出力期間が長い場合、前記暴走検出対象のプロセッサに関する暴走通知信号を出力する暴走監視部と、
前記暴走通知信号が入力されることで、前記暴走検出対象のプロセッサに対して復旧処理を行う暴走監視プロセッサと、
を備えたことを特徴とする。
【発明の効果】
【００１２】
本発明のように、暴走監視部と暴走監視プロセッサを用いて暴走検出対象のプロセッサに入力される信号を計測する暴走検出回路により、ソフトウェア処理による暴走検出が可能となる。従って、従来の周期処理での暴走検出に加え、周期処理期間が長いシステムに対する暴走検出の即時性を確保でき、また、周期処理期間が変動するシステムに対しても適用可能なため、システムに応じた暴走検出が可能となる。
【発明を実施するための最良の形態】
【００１３】
実施の形態１．
以下、図を用いて本発明に係る実施の形態について説明する。図１は、実施の形態１におけるマルチプロセッサシステムの暴走検出回路の構成例を示している。
【００１４】
プロセッサＡ１１は、暴走検出対象となるプロセッサである。プロセッサＡ１１と周辺ＬＳＩ−Ａ１２は、バスＡ１３により接続されている。プロセッサＡ１１は、バスＡ１３を介して周辺ＬＳＩ−Ａ１２に必要な処理を命令する。
【００１５】
また周辺ＬＳＩ−Ａ１２からは、周期的あるいは非周期的に割込信号Ａ１４を出力し、プロセッサＡ１１に対して適切な処理を要求する。ここで割込信号Ａ１４は、周辺ＬＳＩ−Ａ１２が出力する割込期間中に信号レベルが固定されるレベルセンスの割込信号である。プロセッサＡ１１等が正常に動作する場合、これらの一連の処理は連続的に行われる。
【００１６】
プロセッサＢ１５は、暴走監視部１６を通してプロセッサＡ１１の暴走を監視するプロセッサである。ここで暴走監視部１６は、割込信号Ａ１４をモニタしており、あらかじめ設定された所定の期間よりも長い期間に渡り、割込信号Ａ１４が出力されているかどうかを監視する。なお、あらかじめ設定された所定の期間とは、例えば、一連の処理動作を開始してから設計上想定される割込信号の発生タイミングまでの期間である。
【００１７】
暴走監視部１６は、割込信号Ａ１４の出力期間と設定された所定の期間との比較を行い、割込信号Ａ１４の出力期間が所定の期間を超過している場合には、プロセッサＡ１１が暴走していることを示す暴走通知信号Ａ１７をプロセッサＢ１５に出力する。
【００１８】
図２は、実施の形態１におけるマルチプロセッサシステムの暴走検出回路の割込信号Ａ１４と暴走通知信号Ａ１７の動作の例を示している。図２（ａ）は、プロセッサＡ１１が暴走し、割込信号Ａ１４が出力され続けている場合を示している。また図２（ｂ）は、プロセッサＡ１１が暴走し、割込信号Ａ１４が出力されない場合を示している。
【００１９】
固定あるいは変動する周期処理期間に対して、割込信号に対する応答期間はプロセッサの割込処理回路と割込処理プログラムの実行期間だけで規定できる。正常なシステム動作においては、割込信号に対してプロセッサは即時に応答して必要なプログラムを起動する。
【００２０】
プロセッサＡ１１が正常動作している場合は、割込信号Ａ１４はプロセッサＡ１１で適切に処理される。その場合、例えば、図２（ａ）や図２（ｂ）に示すように周辺ＬＳＩ−Ａ１２より出力される割込信号Ａ１４は、Ｌレベル有意であり、割込期間中はＬレベルを出力する。
【００２１】
プロセッサＡ１１が正常動作している場合は、割込信号Ａ１４に対してプロセッサＡ１１は即時に応答する。従って、所定の期間を超えて周辺ＬＳＩ−Ａ１２より割込信号Ａ１４が出力され続けることはない。従って、暴走監視部１６において、割込信号Ａ１４の出力期間と設定された所定の期間との比較を行った場合、割込信号Ａ１４の出力期間が所定の期間を超過することはないため、暴走監視部１６より暴走通知信号Ａ１７が出力されることはない。
【００２２】
しかし例えば、物理的な故障、宇宙線や電源ノイズなどによる一時的な故障、誤動作、プログラムの設計ミスによる想定外の動作などの不具合によりプロセッサＡ１１が暴走状態に陥ると、図２（ａ）に示すように、所定の期間を超えて割込信号Ａ１４が出力され続ける場合がある。
【００２３】
つまり暴走状態にあるプロセッサでは、例えば、割込信号Ａ１４自体を無視する状態に陥っていたり、割込信号Ａ１４には応答するものの、割込信号Ａ１４に対する処理を誤ったり、周辺ＬＳＩ−Ａ１２あるいは他のプロセッサの障害により、割込信号Ａ１４を出力したままの故障や、割込信号Ａ１４をクリアするための制御レジスタに対するプロセッサからのアクセスが行えないために、割込信号Ａ１４をクリアすることができないなどの場合、割込信号Ａ１４は出力され続ける。
【００２４】
この場合、周辺ＬＳＩ−Ａ１２からは、割込信号Ａ１４はＬレベルを出力し続けるため、暴走監視部１６は、割込信号Ａ１４の出力期間を計測し、所定の期間と比較して異常と判断する。暴走監視部１６が割込信号Ａ１４の出力期間を異常と判断した場合、プロセッサＢ１５に対して暴走通知信号Ａ１７を出力する。
【００２５】
なお図２（ａ）に示すように、例えば、暴走通知信号Ａ１７はＬレベル有意とし、暴走通知信号Ａ１７のＬレベル期間は、一定期間出力すればよい。
【００２６】
また、マルチプロセッサシステムの周期処理においては、設計上想定される期間内に、必ず一定周期の割込信号Ａ１４が出力される。しかしプロセッサＡ１１が暴走状態に陥ると、図２（ｂ）に示すように、周辺ＬＳＩへの設定が正しく行えず、規定された周期処理期間を超えても、割込信号Ａ１４が発生せずに動作が滞るなどの場合もある。
【００２７】
周期処理期間が一意に決定できるシステムにおいては、この周期処理を実現するために一定間隔で発生する割込信号が発生しないことを検出することで、暴走として処理することができる。
【００２８】
この場合も割込信号Ａ１４が出力され続ける場合と同様に、暴走監視部１６は、割込信号Ａ１４が出力されない期間を計測し、所定の期間と比較して異常と判断することが可能である。暴走監視部１６が割込信号Ａ１４の出力されない期間を異常と判断した場合、プロセッサＢ１５に対して暴走通知信号Ａ１７を出力する。
【００２９】
監視を行っているプロセッサＢ１５が暴走通知信号Ａ１７を受けた場合、プロセッサＢ１５はプロセッサＡ１１の復旧処理を行う。復旧処理としては、例えばプロセッサＢ１５によって、プロセッサＡ１１の異常を無視したり、プロセッサＡ１１に対して直接リセットをかけたり、プロセッサＡ１１との論理的な接続を切断し実行中の処理を別のプロセッサに引き継がせたりする、などの判断動作を行うようにすればよい。また表示装置等を用いて、暴走検出をプログラム開発者や運用操作者に通知させるようにしてもよい。
【００３０】
これらの処理は、暴走通知信号を受信したプロセッサ上のプログラムにより記述することで対処可能なため、システム開発のデバッグ途中での設計変更や、運用開始後での修正などに対してプログラムを修正することで対応することができる。
【００３１】
このように、従来の暴走検出回路はハードウェアで構成されていたが、本発明の実施の形態１による暴走監視部１６とプロセッサＢ１５のような監視専用のプロセッサを用いて割込信号Ａ１４を監視することで、ソフトウェア処理による暴走検出が可能となる。例えば、処理内容に合わせた暴走検出期間の閾値をプロセッサで変更できるため、従来の周期処理での暴走検出に加え、周期処理期間が長いシステムに対する暴走検出の即時性を確保でき、また、周期処理期間が変動するシステムに対しても適用可能なため、システムに応じた暴走検出が可能となる。
【００３２】
実施の形態２．
図３は、実施の形態２におけるマルチプロセッサシステムの暴走検出回路の構成例を示している。図３において、プロセッサＡ１１から暴走通知信号Ａ１７までは、図１と同様である。
【００３３】
プロセッサＢ１５と周辺ＬＳＩ−Ｂ１８は、バスＢ１９により接続されている。プロセッサＢ１５は、バスＢ１９を介して周辺ＬＳＩ−Ｂ１８に必要な処理を命令する。なお、プロセッサＡ１１はバスＡ１３を介して周辺ＬＳＩ−Ａ１２と接続し同時に動作しており、プロセッサＢ１５はバスＢ１９を介して周辺ＬＳＩ−Ｂ１８と接続し同時に動作する。
【００３４】
また周辺ＬＳＩ−Ｂ１８からは、周期的あるいは非周期的に割込信号Ｂ２０を出力し、プロセッサＢ１５に対して適切な処理を要求する。なお割込信号Ｂ２０は、割込信号Ａ１４と同様、レベルセンスの割込信号である。プロセッサＢ１５等が正常に動作する場合、これらの一連の処理は連続的に行われる。
【００３５】
プロセッサＡ１１とプロセッサＢ１５は、プロセッサＡ１１とプロセッサＢ１５で共用する暴走監視部１６を介して、相互に暴走通知信号を監視する。つまり図３に示すように、プロセッサＡ１１はプロセッサＢ１５の暴走通知信号Ｂ２１を監視し、プロセッサＢ１５はプロセッサＡ１１の暴走通知信号Ａ１７を監視する。
【００３６】
暴走監視部１６は、プロセッサＡ１１の割込信号Ａ１４およびプロセッサＢ１５の割込信号Ｂ２０を監視しており、あらかじめ設定された所定の期間と比較して、割込信号が出力され続けるかどうかを監視する。なお、あらかじめ設定された所定の期間とは、実施の形態１同様、例えば、一連の処理動作を開始してから設計上想定される割込信号の発生タイミングまでの期間である。また、プロセッサＡ１１に対する所定の期間とプロセッサＢ１５に対する所定の期間はそれぞれ異なる期間として設定しても良いし、あるいは同一の期間として設定しても良い。
【００３７】
一方のプロセッサが暴走状態に陥った場合、割込信号をもとに暴走監視部１６にて暴走を検出し、暴走したプロセッサとは別のプロセッサに対して、暴走通知信号を出力する。例えば、プロセッサＢ１５が暴走状態に陥った場合、暴走監視部１６にて割込信号Ｂ２０が出力され続けることによりプロセッサＢ１５の暴走を検出し、プロセッサＡ１１に対して、暴走通知信号Ｂ２１を出力する。なお、プロセッサＡ１１が暴走状態に陥った場合は、実施の形態１と同様の動作をすればよいため、動作の説明は省略する。
【００３８】
また実施の形態１と同様に、周期処理期間が一意に決定できるシステムにおいては、この周期処理を実現するために一定間隔で発生する割込信号が発生しないことを検出することで、暴走として処理することもできる。
【００３９】
この場合も実施の形態１と同様、暴走監視部１６は、割込信号が出力されない期間を計測し、所定の期間と比較して異常と判断することも可能である。暴走監視部１６が割込信号の出力されない期間を異常と判断した場合、暴走したプロセッサとは別のプロセッサに対して、暴走通知信号を出力する。
【００４０】
例えば、プロセッサＢ１５が暴走状態に陥った場合、暴走監視部１６にて割込信号Ｂ２０が出力されないことによりプロセッサＢ１５の暴走を検出し、プロセッサＡ１１に対して、暴走通知信号Ｂ２１を出力する。なお、プロセッサＡ１１が暴走状態に陥った場合は、実施の形態１と同様の動作をすればよいため、動作の説明は省略する。
【００４１】
なお、例えばプロセッサＡ１１が暴走通知信号Ｂ２１を受けた場合、プロセッサＢ１５の復旧処理としては、実施の形態１でも述べたように、例えばプロセッサＡ１１によって、プロセッサＢ１５の異常を無視したり、プロセッサＢ１５にリセットをかけたり、プロセッサＢ１５との論理的な接続を切断し実行中の処理を別のプロセッサに引き継がせたりする、などの判断動作を行うようにすればよい。また表示装置等を用いて、暴走検出をプログラム開発者や運用操作者に通知させるようにしてもよい。プロセッサＢ１５が暴走通知信号Ａ１７を受けた場合も同様である。
【００４２】
このように、本発明の実施の形態１ではプロセッサＡ１１が暴走検出対象のプロセッサ、プロセッサＢ１５が暴走監視部１６を通して暴走監視するプロセッサであったが、本発明の実施の形態２に示すように、暴走監視部１６をプロセッサＡ１１およびプロセッサＢ１５で共用することで、相互の暴走監視が可能となり、監視専用のプロセッサを配置する必要がない。従って、正常動作中にはプロセッサＡ１１とプロセッサＢ１５はシステム動作に専念することができ、プロセッサの利用効率を上げることができる。
【００４３】
なお、実施の形態１では暴走検出対象のプロセッサと暴走監視のプロセッサが各々１つの例を示しているが、各々２つ以上のプロセッサを用いるマルチプロセッサシステムにおいても、暴走監視部１６を用いて暴走監視が可能であることは言うまでもない。
【００４４】
なお、実施の形態２ではプロセッサが２つの例を示しているが、３つ以上のプロセッサを用いるマルチプロセッサシステムにおいても、暴走監視部１６を用いて相互の監視が可能であることは言うまでもない。この場合、暴走状態のプロセッサに対応する暴走通知信号を、他のすべてのプロセッサに通知させてもよいし、あるいは特定のプロセッサに通知するように構成動作させても良い。
【００４５】
また、実施の形態１及び実施の形態２における周辺ＬＳＩ−Ａ１２及び周辺ＬＳＩ−Ｂ１８は、各々プロセッサＡ１１及びプロセッサＢ１５により必要な処理の命令を受け、割込信号を出力することにより各々のプロセッサに適切な処理を要求するものであれば周辺回路、周辺機器としてもよい。
【図面の簡単な説明】
【００４６】
【図１】実施の形態１におけるマルチプロセッサシステムの暴走検出回路の構成例を示した図である。
【図２】実施の形態１におけるマルチプロセッサシステムの暴走検出回路の割込信号と暴走通知信号の動作の例を示した図である。
【図３】実施の形態２におけるマルチプロセッサシステムの暴走検出回路の構成例を示した図である。
【符号の説明】
【００４７】
１１．プロセッサＡ
１２．周辺ＬＳＩ−Ａ
１３．バスＡ
１４．割込信号Ａ
１５．プロセッサＢ
１６．暴走監視部
１７．暴走通知信号Ａ
１８．周辺ＬＳＩ−Ｂ
１９．バスＢ
２０．割込信号Ｂ
２１．暴走通知信号Ｂ
【図１】
2008146223.tif 000003
【図２】
2008146223.tif 000004
【図３】
2008146223.tif 000005