(57)【特許請求の範囲】
【請求項１】
電源部と、
前記電源部からの電力を受けて動作する第１および第２の演算処理部と、
前記電源部の電力供給の健全性を監視する第１および第２の監視回路とを備え、
前記第１の監視回路は、前記第１の演算処理部から定期的にリセットされる第１のウォッチドッグタイマを含み、予め定められた期間を超えて前記第１のウォッチドッグタイマがリセットされない場合には、前記第２の演算処理部へ動作の停止を指示し、
前記第２の監視回路は、前記第２の演算処理部から定期的にリセットされる第２のウォッチドッグタイマを含み、予め定められた期間を超えて前記第２のウォッチドッグタイマがリセットされない場合には、前記第１の演算処理部へ動作の停止を指示し、
前記第１の監視回路は、さらに、前記第１の演算処理部および前記第２の演算処理部のいずれか一方から定期的にリセットされる第３のウォッチドッグタイマを含み、予め定められた期間を超えて前記第３のウォッチドッグタイマがリセットされない場合には、他方の演算処理部へ動作の停止を指示する、システム。
【請求項２】
前記第１の監視回路は、前記第１および第２の演算処理部へ電力を供給する前記電源部の健全性を監視する第１の電源監視部を含み、前記第１の電源監視部が前記電源部に何らかの異常が発生していることを検知すると、前記第１および第２の演算処理部へ動作の停止を指示し、
前記第２の監視回路は、前記第１および第２の演算処理部へ電力を供給する前記電源部の健全性を監視する第２の電源監視部を含み、前記第２の電源監視部が前記電源部に何らかの異常が発生していることを検知すると、前記第１および第２の演算処理部へ動作の停止を指示する、請求項１に記載のシステム。
【請求項３】
前記第１の電源監視部と前記第２の電源監視部とは、互いに異なるプロセスによって製造された半導体デバイスで構成される、請求項２に記載のシステム。
【請求項４】
前記第１および第２の演算処理部には、ウォッチドッグタイマが実装されていない、請求項１〜３のいずれか１項に記載のシステム。
【請求項５】
電源部からの電力を受けて動作する第１および第２の演算処理部を含むシステムにおいて、前記電源部の電力供給の健全性および前記第１および第２の演算処理部の健全性を監視する半導体装置であって、
前記第１の演算処理部から定期的にリセットされる第１のウォッチドッグタイマと、
前記第２の演算処理部から定期的にリセットされる第２のウォッチドッグタイマと、
前記第１および第２の演算処理部のうち一方から定期的にリセットされる第３のウォッチドッグタイマと、
前記電源部の健全性を監視する第１および第２の電源監視部と、
前記第１および第２の電源監視部にそれぞれ対応付けられた第１および第２の制御部とを備え、
前記第１の制御部は、
予め定められた期間を超えて前記第１のウォッチドッグタイマがリセットされない場合には、前記第２の演算処理部へ動作の停止を指示し、
予め定められた期間を超えて前記第３のウォッチドッグタイマがリセットされない場合には、前記第１および第２の演算処理部のうち他方の演算処理部へ動作の停止を指示し、
前記第１の電源監視部が前記電源部に何らかの異常が発生していることを検知すると、前記第１および第２の演算処理部へ動作の停止を指示し、
前記第２の制御部は、
予め定められた期間を超えて前記第２のウォッチドッグタイマがリセットされない場合には、前記第１の演算処理部へ動作の停止を指示し、
前記第２の電源監視部が前記電源部に何らかの異常が発生していることを検知すると、前記第１および第２の演算処理部へ動作の停止を指示する、半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、電源部から複数の演算処理部へ電力が供給されるシステムおよび当該システムにおいて用いられる半導体装置に関する。
【背景技術】
【０００２】
製造現場などに配置された機械を安全に使用するためには、国際規格に従う安全機器（安全コンポーネント）を使用しなければならばない。安全機器は、安全プログラムを実行する安全コントローラを含み得て、ロボットなどの自動的に動く装置によって人の安全が脅かされるのを防止することを目的としている。このような安全機器には、高い信頼性が必要である。
【０００３】
このような高い信頼性が要求されるコントローラなどにおいては、演算処理などを多重化したような構成が採用されるとともに、相互に動作を監視することで、万が一の故障時にも、装置を安全に停止できるような機能、すなわちフェールセーフ機能が実装されることが多い。
【０００４】
例えば、特開２００７−３１０６９３号公報（特許文献１）は、１台のＩＯ統括ユニットに対して、ＩＯユニットを任意台数接続可能なビルディング・ブロック型のセーフティ・コントローラを開示している。このセーフティ・コントローラにおいて、ＩＯ統括ユニットに設けられたＩＯ電源遮断手段は、当該ユニットに給電されるＩＯ電源用の電源電圧が規定範囲外となったとき、当該ユニットの内部回路用の電源電圧が規定範囲外となったとき、当該ユニットの内部回路を構成するマイクロプロセッサがハードウェア異常を検知したとき、または当該ユニットの内部回路を構成するマイクロプロセッサのウォッチドッグタイマがタイムアップしたとき、のいずれかにおいて遮断動作するように仕組まれている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−３１０６９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述の特開２００７−３１０６９３号公報（特許文献１）に開示されるセーフティ・コントローラでは、２台のＭＰＵ（マイクロプロセッサ）の間でクロスコミュニケーションによって相互監視するとともに、さらに別に配置されたウォッチドッグタイマ回路（ＷＤＴ回路）が一方のＭＰＵを監視する構成が採用されている。
【０００７】
特開２００７−３１０６９３号公報（特許文献１）に開示される構成では、ＭＰＵで実行されるプログラムに相互監視の処理を組み入れる必要があり、ソフトウェア開発の難易度が高まるとともに、ウォッチドッグタイマ回路によりハードウェア実装面積が肥大化するという課題がある。
【０００８】
本技術は、監視機能が必要な構成においても、ソフトウェア開発の難易度が高まることを防止するとともに、ハードウェア実装面積の増大を防止することを目的とする。
【課題を解決するための手段】
【０００９】
本技術のある局面に従うシステムは、電源部と、電源部からの電力を受けて動作する第１および第２の演算処理部と、電源部の電力供給の健全性を監視する第１および第２の監視回路とを含む。第１の監視回路は、第１の演算処理部から定期的にリセットされる第１のウォッチドッグタイマを含み、予め定められた期間を超えて第１のウォッチドッグタイマがリセットされない場合には、第２の演算処理部へ動作の停止を指示する。第２の監視回路は、第２の演算処理部から定期的にリセットされる第２のウォッチドッグタイマを含み、予め定められた期間を超えて第２のウォッチドッグタイマがリセットされない場合には、第１の演算処理部へ動作の停止を指示する。第１の監視回路は、さらに、第１の演算処理部および第２の演算処理部のいずれか一方から定期的にリセットされる第３のウォッチドッグタイマを含み、予め定められた期間を超えて第３のウォッチドッグタイマがリセットされない場合には、他方の演算処理部へ動作の停止を指示する。
【００１０】
好ましくは、第１の監視回路は、第１および第２の演算処理部へ電力を供給する電源部の健全性を監視する第１の電源監視部を含み、第１の電源監視部が電源部に何らかの異常が発生していることを検知すると、第１および第２の演算処理部へ動作の停止を指示する。第２の監視回路は、第１および第２の演算処理部へ電力を供給する電源部の健全性を監視する第２の電源監視部を含み、第２の電源監視部が電源部に何らかの異常が発生していることを検知すると、第１および第２の演算処理部へ動作の停止を指示する。
【００１１】
好ましくは、第１の電源監視部と第２の電源監視部とは、互いに異なるプロセスによって製造された半導体デバイスで構成される。
【００１２】
好ましくは、第１および第２の演算処理部には、ウォッチドッグタイマが実装されていない。
【００１３】
本技術の別の局面に従えば、電源部からの電力を受けて動作する第１および第２の演算処理部を含むシステムにおいて、電源部の電力供給の健全性および第１または第２の演算処理部の健全性を監視する半導体装置が提供される。半導体装置は、第１の演算処理部から定期的にリセットされる第１のウォッチドッグタイマと、第２の演算処理部から定期的にリセットされる第２のウォッチドッグタイマと、電源部の健全性を監視する電源監視部と、制御部とを含む。制御部は、予め定められた期間を超えて第１のウォッチドッグタイマがリセットされない場合には、第２の演算処理部へ動作の停止を指示し、予め定められた期間を超えて第２のウォッチドッグタイマがリセットされない場合には、第１の演算処理部へ動作の停止を指示し、電源監視部が電源部に何らかの異常が発生していることを検知すると、第１および第２の演算処理部へ動作の停止を指示する。
【発明の効果】
【００１４】
本技術に従えば、監視機能が必要な構成においても、ソフトウェア開発の難易度が高まることを防止するとともに、ハードウェア実装面積の増大を防止できる。
【図面の簡単な説明】
【００１５】
【図１】本発明の関連技術に従うコントローラシステムの要部構成を示す模式図である。
【図２】本実施の形態に従うコントローラシステムの要部構成を示す模式図である。
【図３】本実施の形態に従うコントローラシステムにおいて何らかの異常が発生したときの各部の挙動を説明するための模式図である。
【図４】本実施の形態の変形例に従うコントローラシステムの要部構成を示す模式図である。
【発明を実施するための形態】
【００１６】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００１７】
＜Ａ．関連技術＞
まず、本実施の形態に従うコントローラシステムに関連する技術について説明する。
【００１８】
図１は、本発明の関連技術に従うコントローラシステムの要部構成を示す模式図である。図１を参照して、本発明の関連技術に従うコントローラシステム２００は、典型的には、安全制御に係る処理を実行することが責務となっており、複数の演算処理部が実質的に同一のプログラムを並列実行する多重化システムが採用されている。
【００１９】
コントローラシステム２００は、電源部２１０と、監視回路２２０，２３０と、マイクロプロセッサ（ＭＰＵ）２４０，２５０と、ウォッチドッグタイマ（ＷＤＴ）回路２６０とを含む。
【００２０】
電源部２１０は、スイッチングレギュレータといった電圧変換回路および電源安定化回路などを含み、１または複数の電圧を有する電力をコントローラシステム２００の内部または外部にある負荷へ供給する。
【００２１】
監視回路２２０，２３０は、電源部２１０の電力供給の健全性を監視するとともに、電源部２１０の異常時にマイクロプロセッサ２４０，２５０の動作を停止する回路である。監視回路２２０は、診断ロジック２２２および制御ロジック２２４を含み、監視回路２３０は、診断ロジック２３２および制御ロジック２３４を含む。診断ロジック２２２，２３２は、電源部２１０の内部情報および／または出力電圧などを監視することで、電源部２１０での異常の有無を判断する。制御ロジック２２４，２３４は、診断ロジック２２２，２３２にて電源部２１０の異常を検知すると、マイクロプロセッサ２４０，２５０に対して遮断指令（シャットダウン指令）を出力する。
【００２２】
監視回路２２０，２３０の各々単独でマイクロプロセッサ２４０，２５０の両方の動作を停止できるようになっている。監視回路２２０，２３０のいずれか一方が故障しても、電源部２１０の監視ができるように多重化されている。
【００２３】
マイクロプロセッサ２４０，２５０は、予め格納されたオペレーティングシステム（ＯＳ）およびユーザプログラムなどを並列実行する。図１に示す構成においては、マイクロプロセッサ２４０，２５０には、ウォッチドッグタイマ２４２，２５２がそれぞれ実装されており、マイクロプロセッサ２４０，２５０の間は相互通信可能になっている。プロセッサ２４０は、マイクロプロセッサ２５０のウォッチドッグタイマ２５２を定期的にリセットするとともに、プロセッサ２５０は、マイクロプロセッサ２４０のウォッチドッグタイマ２４２を定期的にリセットするようになっている。このようなウォッチドッグタイマ２４２，２５２により、マイクロプロセッサ間で異常の有無を相互監視できるようになっている。
【００２４】
すなわち、マイクロプロセッサ２４０に何らかの異常が生じて動作が停止すると、マイクロプロセッサ２５０のウォッチドッグタイマ２５２がリセットされなくなるので、マイクロプロセッサ２５０はマイクロプロセッサ２４０での異常発生を検知できる。同様に、マイクロプロセッサ２５０に何らかの異常が生じて動作が停止すると、マイクロプロセッサ２４０のウォッチドッグタイマ２４２がリセットされなくなるので、マイクロプロセッサ２４０はマイクロプロセッサ２５０での異常発生を検知できる。
【００２５】
但し、マイクロプロセッサ２４０，２５０が同一の半導体装置である場合などに、当該半導体装置に固有の原因がある場合、あるいは、共通に実行されるユーザプログラム自体に問題がある場合などには、マイクロプロセッサ２４０，２５０の両方に異常が発生する可能性がある。すなわち、マイクロプロセッサ２４０，２５０において、共通要因故障が生じる可能性がある。
【００２６】
このような共通要因故障を考慮して、図１に示す構成においては、ウォッチドッグタイマ回路２６０が設けられている。ウォッチドッグタイマ回路２６０は、マイクロプロセッサ２４０によって定期的にリセットされるウォッチドッグタイマを有している。このウォッチドッグタイマの値が予め定められた期間を超えてリセットされなくなると、ウォッチドッグタイマ回路２６０は、マイクロプロセッサ２４０で異常が発生と検知できる。ウォッチドッグタイマ回路２６０は、マイクロプロセッサ２４０での異常発生を検知すると、マイクロプロセッサ２４０，２５０に対して遮断指令を出力する。
【００２７】
図１に示すように、本発明の関連技術に従うコントローラシステム２００では、いずれかのコンポーネントが故障した際でも、安全制御に係る処理の責務を果たすため、複数のマイクロプロセッサ２４０，２５０が実装されている。このような多重化システムを採用するにあたって、マイクロプロセッサ２４０，２５０のそれぞれにウォッチドッグタイマ２４２，２５２を実装することで相互監視する構成が採用されている。
【００２８】
さらに、図１に示す構成においては、電源部２１０において何らかの異常が発生した場合に、コントローラシステム２００を安全に停止させるために、電源部２１０を監視する回路およびマイクロプロセッサ２４０，２５０を含むシステム全体を停止するための回路が必要となる。このような電源部２１０の監視などに係る回路を複数のマイクロプロセッサが実装された構成に適用する際には、図１に示すように、ソフトウェア開発の難易度を下げるために、同一デバイスを多重化する手法が一般的になっている。
【００２９】
但し、同一デバイスを多重化する手法では、デバイス固有の問題などの共通要因故障による故障モードへの対処が必要になる。すなわち、複数のデバイス間で共通に存在している要因によって、複数のデバイスが同時に停止するような事態が生じ得る。
【００３０】
このような共通要因故障の対策として、図１に示す構成においては、多重化した監視機構とは独立した監視機構として、ウォッチドッグタイマ回路２６０が設けられている。
【００３１】
図１に示すような構成を採用することで高い信頼度を実現できるが、独立した監視機構を設けることで、ハードウェア実装面積が肥大化するとともに、回路の複雑度が増加してしまうという課題が生じ得る。また、複数の監視機構を制御するためのソフトウェアが別途必要となるため、装置が有しているリソースのうち、本来の処理に割当てることのできるリソースが制約されてしまい十分な性能を発揮できないといった課題や、プログラムをコンパクトにできないといった課題が生じ得る。
【００３２】
そこで、本実施の形態は、マイクロプロセッサが有している性能のうち、より多くのリソースを本来のプログラム実行に割当てるとともに、ソフトウェア開発の難易度が高まることを防止することを目的とする。また、システム全体のハードウェア実装面積の増大を防止することも目的とする。
【００３３】
＜Ｂ．回路構成＞
次に、本実施の形態に従うコントローラシステムに関連する技術について説明する。
【００３４】
図２は、本実施の形態に従うコントローラシステム１００の要部構成を示す模式図である。図２を参照して、本実施の形態に従うコントローラシステム１００は、典型的には、安全制御に係る処理を実行することが責務となっており、複数の演算処理部が実質的に同一のプログラムを並列実行する多重化システムが採用されている。
【００３５】
コントローラシステム１００は、電源部１１０と、監視回路１２０，１３０と、マイクロプロセッサ（ＭＰＵ）１４０，１５０とを含む。
【００３６】
電源部１１０は、スイッチングレギュレータといった電圧変換回路および電源安定化回路などを含み、１または複数の電圧を有する電力をコントローラシステム１００の内部または外部にある負荷へ供給する。電源部１１０は、生成した電力をマイクロプロセッサ１４０，１５０へ供給する。また、電源部１１０は、図示しないＩＯ（Input Output）ユニットなどへ電力を供給するようにしてもよい。
【００３７】
監視回路１２０，１３０は、電源部１１０の電力供給の健全性を監視するとともに、電源部１１０の異常時にマイクロプロセッサ１４０，１５０の動作を停止する回路である。監視回路１２０は、診断ロジック１２２と、制御ロジック１２４と、２つのウォッチドッグタイマ（ＷＤＴ１，ＷＤＴ３）１２６，１２８とを含む。監視回路１３０は、診断ロジック１３２と、制御ロジック１３４と、ウォッチドッグタイマ（ＷＤＴ２）１３６とを含む。
【００３８】
監視回路１２０，１３０の各々を単一の半導体装置としてパッケージ化してもよいし、監視回路１２０および監視回路１３０を一体として、単一の半導体装置１０２としてパッケージ化してもよい。半導体装置１０２としては、ＩＣ（Integrated Circuit）やＬＳＩ（Large Scale Integrated circuit）などであってもよいし、ＡＳＩＣ（Application Specific Integrated Circuit）やＳｏＣ（System on Chip）などであってもよい。あるいは、ＦＰＧＡ（Field-Programmable Gate Array）などを利用した回路であってもよい。
【００３９】
診断ロジック１２２，１３２は、電源部１１０の内部情報および／または出力電圧などを監視することで、電源部２１０での異常の有無を判断する。
【００４０】
制御ロジック１２４は、診断ロジック１２２にて電源部１１０に何らかの異常が発生していることを検知すると、マイクロプロセッサ１４０，１５０に対して遮断指令（シャットダウン指令）を出力する。また、制御ロジック１２４は、ウォッチドッグタイマ１２６，１２８の値が予め定められた期間を超えてリセットされなくなると、マイクロプロセッサ１５０に対して遮断指令を出力する。ウォッチドッグタイマ１２６，１２８の値に起因して遮断指令を出力する処理については後述する。
【００４１】
制御ロジック１３４は、診断ロジック１３２にて電源部１１０に何らかの異常が発生していることを検知すると、マイクロプロセッサ１４０，１５０に対して遮断指令（シャットダウン指令）を出力する。また、制御ロジック１３４は、ウォッチドッグタイマ１３６の値が予め定められた期間を超えてリセットされなくなると、マイクロプロセッサ１４０に対して遮断指令を出力する。ウォッチドッグタイマ１３６の値に起因して遮断指令を出力する処理については後述する。
【００４２】
遮断指令（シャットダウン指令）は、マイクロプロセッサ１４０，１５０で実行されているプログラムを安全に停止させるための指令であり、任意の実装形態を採用できる。例えば、マイクロプロセッサ１４０，１５０の割込みポートへ遮断指令を与えるように配線するとともに、当該割込みポートに遮断指令が入力されると、予め定義されていたシャットダウン処理が実行されるようにしてもよい。あるいは、マイクロプロセッサ１４０，１５０の周辺回路へ遮断指令を与えるように配線するとともに、当該周辺回路がマイクロプロセッサ１４０，１５０のシャットダウンに必要な処理を実行するようにしてもよい。
【００４３】
マイクロプロセッサ１４０，１５０は、プログラムを実行する演算処理部の一例である。マイクロプロセッサ１４０，１５０の具体的なデバイスとしては、ＣＰＵ（Central Processing Unit）やＧＰＵ（Graphics Processing Unit）などを用いてもよい。マイクロプロセッサ１４０，１５０は、電源部１１０からの電力を受けて動作する。マイクロプロセッサ１４０，１５０は、互いに多重化された演算処理部を構成し、互いに実質的に同一のプログラムを実行する。マイクロプロセッサ１４０とマイクロプロセッサ１５０との間は、後述するような、監視回路１２０または監視回路１３０において異常が発生したときに、互いに安全に対しするための情報を遣り取りする。
【００４４】
ウォッチドッグタイマ（ＷＤＴ１）１２６は、マイクロプロセッサ１４０から定期的にリセットされる。監視回路１２０（制御ロジック１２４）は、予め定められた期間を超えてウォッチドッグタイマ１２６がリセットされない場合には、マイクロプロセッサ１５０へ遮断指令を出力して動作の停止を指示する。
【００４５】
同様に、ウォッチドッグタイマ（ＷＤＴ２）１３６は、マイクロプロセッサ１５０から定期的にリセットされる。監視回路１３０（制御ロジック１３４）は、予め定められた期間を超えてウォッチドッグタイマ１３６がリセットされない場合には、マイクロプロセッサ１４０へ遮断指令を出力して動作の停止を指示する。
【００４６】
マイクロプロセッサ１４０，１５０によるウォッチドッグタイマのリセットは、マイクロプロセッサ１４０，１５０で実行されるシステムプログラムまたはユーザプログラムにより実行されるようにしてもよいし、マイクロプロセッサ１４０，１５０にロードされるファームウェアやＢＩＯＳ（Basic Input/Output System）などによって実行されるようにしてもよい。さらにあるいは、マイクロプロセッサ１４０，１５０の周辺に配置される専用回路の一機能としてリセットする処理を実装してもよい。
【００４７】
監視回路１２０は、マイクロプロセッサ１４０およびマイクロプロセッサ１５０のいずれか一方から定期的にリセットされるウォッチドッグタイマ（ＷＤＴ３）１２８を有している。監視回路１２０は、予め定められた期間を超えてウォッチドッグタイマ１２８がリセットされない場合には、ウォッチドッグタイマ１２８をリセットするマイクロプロセッサとは別のマイクロプロセッサへ動作の停止を指示する。
【００４８】
図２に示す構成において、ウォッチドッグタイマ（ＷＤＴ３）１２８は、マイクロプロセッサ１４０から定期的にリセットされる。監視回路１２０（制御ロジック１２４）は、予め定められた期間を超えてウォッチドッグタイマ１２８がリセットされない場合には、マイクロプロセッサ１５０へ遮断指令を出力して動作の停止を指示する。なお、後述するように、ウォッチドッグタイマ（ＷＤＴ３）１２８は、マイクロプロセッサ１５０から定期的にリセットされるようにしてもよい。
【００４９】
図２に示す構成例においては、マイクロプロセッサ１４０およびマイクロプロセッサ１５０のいずれか一方に何らかの異常が発生すると、他方のマイクロプロセッサに対しても遮断指令が出力されるので、マイクロプロセッサ１４０，１５０に個別要因故障および共通要因故障のいずれが生じても対処可能である。そのため、マイクロプロセッサ１４０，１５０としては、実質的に同一デバイスを用いてもよい。すなわち、マイクロプロセッサ１４０，１５０が同じプロセスによって製造されたデバイスであってもよい。
【００５０】
これに対して、監視回路１２０および監視回路１３０は、少なくともウォッチドッグタイマの数において回路構成が相違しており、この回路構成上の相違によって、共通要因故障が生じる可能性をほぼゼロにできる。すなわち、監視回路１２０および監視回路１３０の両方が同時に故障するようなリスクを低減できる。さらに、監視回路１２０および監視回路１３０は、互いに異なるプロセスによって製造された半導体デバイスで構成されることが好ましい。このように製造プロセス自体を異ならせることで、共通要因故障が生じる可能性をさらに低減できる。
【００５１】
本実施の形態に従うコントローラシステム１００においては、監視機構である監視回路１２０，１３０として互いに異なる構成を採用した上で多重化することで、共通要因故障が生じる可能性を低減する。さらに、図２に示すような構成を採用することで、マイクロプロセッサにウォッチドッグタイマを実装する必要がなく、ソフトウェア開発をより容易化できる。
【００５２】
＜Ｃ．異常発生時の挙動＞
次に、本実施の形態に従うコントローラシステム１００において何らかの異常が発生したときの挙動について説明する。図３は、本実施の形態に従うコントローラシステム１００において何らかの異常が発生したときの各部の挙動を説明するための模式図である。
【００５３】
図３（ａ）には、電源部１１０に何らの異常が発生した場合を示す。この場合、監視回路１２０（図２の診断ロジック１２２）は、電源部１１０に発生した何らかの異常を検知すると、マイクロプロセッサ１４０，１５０に対して遮断指令を出力する。その結果、マイクロプロセッサ１４０，１５０は、必要な安全に動作を停止するための処理を実行して、シャットダウンする。なお、監視回路１２０に代えて監視回路１３０がマイクロプロセッサ１４０，１５０に対して遮断指令を出力する場合もあるし、監視回路１２０および監視回路１３０の両方がマイクロプロセッサ１４０，１５０に対して遮断指令を出力する場合もある。
【００５４】
図３（ｂ）には、マイクロプロセッサ１４０に何らかの異常が発生した場合を示す。この場合、ウォッチドッグタイマ１２６，１２８の値がリセットされなくなるので、このリセットされていない期間が予め定められた期間を超えることで、監視回路１２０（図２の制御ロジック１２４）は、マイクロプロセッサ１４０において何らかの異常が発生していることを検知する。そして、監視回路１２０（図２の制御ロジック１２４）は、マイクロプロセッサ１５０に対して遮断指令を出力する。その結果、マイクロプロセッサ１５０は、必要な安全に動作を停止するための処理を実行して、シャットダウンする。
【００５５】
なお、監視回路１２０（図２の制御ロジック１２４）は、マイクロプロセッサ１５０に加えて、マイクロプロセッサ１４０に対しても遮断指令を出力するようにしてもよい。
【００５６】
一方、マイクロプロセッサ１５０に何らかの異常が発生した場合には、ウォッチドッグタイマ１３６の値がリセットされなくなるので、監視回路１３０（図２の制御ロジック１３４）が同様の処理を行って、マイクロプロセッサ１４０，１５０を安全に停止させる。
【００５７】
図３（ｃ）には、監視回路１２０に何らかの異常が発生した場合を示す。この場合、ウォッチドッグタイマ１２６，１２８の値がカウントアップされなくなるので、リセット信号を書込むマイクロプロセッサ１４０が、監視回路１２０において何らかの異常が発生していることを検知する。そして、マイクロプロセッサ１４０は、自身の保護機能に従って、必要な安全に動作を停止するための処理を実行して、シャットダウンする。
【００５８】
また、マイクロプロセッサ１５０は、マイクロプロセッサ１４０の状態を定期的にモニタしており、マイクロプロセッサ１４０がシャットダウンされたことを検知できる。マイクロプロセッサ１５０は、マイクロプロセッサ１４０のシャットダウンに応答して、自身の保護機能に従って、必要な安全に動作を停止するための処理を実行して、自身もシャットダウンする。すると、ウォッチドッグタイマ１３６の値がリセットされなくなるので、監視回路１３０は、マイクロプロセッサ１４０，１５０のシャットダウンを検知する。
【００５９】
図３（ｄ）には、マイクロプロセッサ１４０，１５０が共通要因故障により停止した場合を示す。この場合、ウォッチドッグタイマ１２６，１２８の値がリセットされなくなるので、このリセットされていない期間が予め定められた期間を超えることで、監視回路１２０（図２の制御ロジック１２４）は、マイクロプロセッサ１４０において何らかの異常が発生していることを検知する。同様に、ウォッチドッグタイマ１３６の値がリセットされなくなるので、このリセットされていない期間が予め定められた期間を超えることで、監視回路１３０（図２の制御ロジック１３４）は、マイクロプロセッサ１５０において何らかの異常が発生していることを検知する。この場合、監視回路１２０（図２の診断ロジック１２２）および監視回路１３０（図２の診断ロジック１３２）は、検知された異常の内容に応じて、マイクロプロセッサ１４０，１５０および電源部１１０の少なくともいずれかに対して遮断指令を出力する。
【００６０】
例えば、検知された異常の原因が、単純なプログラムエラーなどによって、マイクロプロセッサ１４０，１５０がウォッチドッグタイマ１２６，１２８，１３６の値がリセット不能になっていることによる場合などには、マイクロプロセッサ１４０，１５０の両方または一方に対して遮断指令を与える。また、検知された異常の内容が、マイクロプロセッサ１４０，１５０がいずれも制御不能であるといった状態などである場合には、電源部１１０に対して遮断指令を与える。さらに別の原因などの場合には、電源部１１０およびマイクロプロセッサ１４０，１５０のすべてに対して遮断指令を与えるようにしてもよい。
【００６１】
以上説明したような挙動に従って、本実施の形態に従うコントローラシステム１００は、いずれの部位に何らかの異常が発生したとしても、システム全体を安全に停止させることができる。
【００６２】
＜Ｄ．変形例＞
上述の実施の形態においては、監視回路１２０が有している２つのウォッチドッグタイマ（ＷＤＴ１，ＷＤＴ３）１２６，１２８の値を、マイクロプロセッサ１４０が定期的にリセットする構成について例示したが、複数のウォッチドッグタイマを異なるマイクロプロセッサがそれぞれリセットするような構成を採用してもよい。
【００６３】
図４は、本実施の形態の変形例に従うコントローラシステム１００の要部構成を示す模式図である。図４を参照して、本実施の形態に従うコントローラシステム１００Ａにおいて、監視回路１２０が有しているウォッチドッグタイマ（ＷＤＴ１）１２６は、マイクロプロセッサ１４０によって定期的にリセットされる一方で、監視回路１２０が有しているウォッチドッグタイマ（ＷＤＴ３）１２８は、マイクロプロセッサ１５０によって定期的にリセットされるようになっている。
【００６４】
すなわち、図４に示すコントローラシステム１００においては、ウォッチドッグタイマ（ＷＤＴ３）１２８は、マイクロプロセッサ１５０から定期的にリセットされる。監視回路１２０（制御ロジック１２４）は、予め定められた期間を超えてウォッチドッグタイマ１２８がリセットされない場合には、マイクロプロセッサ１４０へ遮断指令を出力して動作の停止を指示する。
【００６５】
図４に示すような構成を採用することで、監視回路１２０では、マイクロプロセッサ１４０およびマイクロプロセッサ１５０の健全性を監視できるので、マイクロプロセッサ１４０，１５０に共通要因故障が生じた場合などにおいて、必要な処理の実施タイミングを短縮化でき、より安全にコントローラシステムを停止させることができる。
【００６６】
＜Ｅ．その他の応用例＞
上述の説明においては、マイクロプロセッサへ電力を供給する電源部での異常を監視する応用例について説明したが、電源部が他のデバイスへ電力を供給する場合においても、その異常を監視することができる。但し、マイクロプロセッサへ電力を供給する電源部とは異なり、電源部の異常がそのままシステムの停止につながるとは限らないので、その電力の供給先の用途や重要度などに応じて、異常を検知したときの処理の内容を適宜設定してもよい。
【００６７】
より具体的には、例えば、マイクロプロセッサ１４０，１５０での演算結果に基づいて動作するアクチュエータへ電力を供給するための電源部に対して適用することができる。この場合、電源部において異常が発生すると、監視回路は、電力の供給先であるアクチュエータを停止させための遮断指令を出力するようにしてもよいが、その他にも、縮退運転をさせるための指令、特定の機能のみを停止させるための指令、異常の発生を示すイベントを記録させるための指令のいずれかを出力するようにしてもよい。
【００６８】
このように、本実施の形態に従う監視回路については、様々な応用先が想定されており、かつ、異常を検知したときの動作についても応用先に応じて様々な態様が想定されている。すなわち、本実施の形態に従う監視回路は、任意の装置構成へ適用可能である。
【００６９】
＜Ｆ．利点＞
本実施の形態に従うコントローラシステム１００においては、多重化された監視機構として、互いに異なる数のウォッチドッグタイマを有する２種類の監視回路が用いられる。これらの監視回路の各々が電源部の電力供給の健全性を監視するとともに、電源部の異常時にマイクロプロセッサの動作を停止する。このような構造が互いに異なる複数の監視回路を用いて監視機構を多重化することで、共通要因故障が生じる可能性を低減できる。
【００７０】
このような共通要因故障が生じる可能性を低減した、信頼性の高い多重化された監視機構を採用することで、電源部の監視機能をマイクロプロセッサで実行されるプログラムで担う必要がない。つまり、監視機能が必要な構成においても、ソフトウェア開発の難易度が高まることを防止するとともに、マイクロプロセッサが有している性能のうち、より多くのリソースを本来のプログラム実行に割当てることができる。
【００７１】
また、マイクロプロセッサの動作を監視する別のウォッチドッグタイマなども不要になるので、回路構成を簡素化できるとともに、ハードウェア実装面積の肥大化を防止できる。
【００７２】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００７３】
１００，１００Ａ，２００  コントローラシステム、１０２  半導体装置、１１０，２１０  電源部、１２０，１３０，２２０，２３０  監視回路、１２２，１３２，２２２，２３２  診断ロジック、１２４，１３４，２２４，２３４  制御ロジック、１２６，１２８，１３６，２４２，２５２  ウォッチドッグタイマ、１４０，１５０，２４０，２５０  マイクロプロセッサ、２６０  ウォッチドッグタイマ回路。
【図１】
0006736980.tif 000002
【図２】
0006736980.tif 000003
【図３】
0006736980.tif 000004
【図４】
0006736980.tif 000005