(57)【要約】【課題】故障情報がシステムを安全な状態に保つ回路まで確実に伝達され、システムとしての安全性を確保できる障害監視回路、半導体集積回路及び故障個所特定方法を提供すること【解決手段】本発明にかかる障害監視回路は、周辺回路の障害により当該周辺回路を監視する周辺監視回路１００から出力される障害信号を第１の経路を介して取得する。さらに、取得した障害信号を外部監視装置へ出力する障害信号出力部１２を備えている。また、周辺監視回路１００から出力される障害信号を第１の経路とは異なる第２の経路を介して取得し、取得した障害信号に基づいて半導体集積回路の動作制御を行う制御部１４を備えるものである。【選択図】図１
2011043957.tif 000002
【特許請求の範囲】
【請求項１】
周辺回路の障害により当該周辺回路を監視する周辺監視回路から出力される障害信号を第１の経路を介して取得し、当該障害信号を外部監視装置へ出力する障害信号出力部と、
前記周辺監視回路から出力される障害信号を前記第１の経路とは異なる第２の経路を介して取得し、当該障害信号に基づいて半導体集積回路の動作制御を行う制御部と、を備える障害監視回路。
【請求項２】
前記障害信号出力部が出力した障害信号に対して前記外部監視装置から出力される停止信号を取得する停止信号取得部をさらに備え、
前記停止信号取得部が取得した停止信号により、前記障害が発生した周辺回路の動作を停止することを特徴とする請求項１記載の障害監視回路。
【請求項３】
前記周辺回路の障害を模擬的に発生させる第１の疑似障害信号を生成し、当該第１の疑似障害信号を前記障害信号出力部へ出力する疑似障害信号生成部をさらに備え、
前記障害信号出力部は、前記第１の疑似障害信号に基づいて前記外部監視装置へ障害信号を出力することを特徴とする請求項１又は２記載の障害監視回路。
【請求項４】
前記障害信号出力部が取得した障害信号を前記外部監視装置へ出力するか否かを決定するマスク部をさらに有することを特徴とする請求項１〜３のいずれか１項に記載の障害監視回路。
【請求項５】
前記制御部は、前記障害信号に基づいて、前記障害が発生した周辺回路の動作を停止する停止信号を生成し、当該停止信号を出力する停止信号出力部を有することを特徴とする請求項１〜４のいずれか１項に記載の障害監視回路。
【請求項６】
前記制御部が取得した障害信号に基づいて特定される前記周辺回路の障害状態を記憶する障害記憶部をさらに有することを特徴とする請求項１〜５のいずれか１項に記載の障害監視回路。
【請求項７】
周辺回路の障害を検出する障害検出部を有する周辺監視回路と、
前記周辺回路の障害を検出した周辺監視回路から出力される障害信号を第１の経路を介して取得し、当該障害信号を外部監視装置に対して出力する第１の障害信号出力部と、
前記周辺回路の障害を検出した周辺監視回路から出力される障害信号を前記第１の経路とは異なる第２の経路を介して取得し、当該障害信号に基づいて半導体集積回路の動作制御を行う第１の制御部と、
前記周辺回路の障害を検出した周辺監視回路から出力される障害信号を前記第１の経路及び前記第２の経路とは異なる第３の経路から取得し、当該障害信号を外部装置に対して出力する第２の障害信号出力部と、
前記周辺回路の障害を検出した周辺監視回路から出力される障害信号を前記第１の経路、前記第２の経路及び前記第３の経路とは異なる第４の経路から取得し、当該障害信号に基づいて半導体集積回路の動作制御を行う第２の制御部と、
前記第１の障害信号出力部又は第２の障害信号出力部の少なくとも一方から障害信号が出力された場合、外部監視装置へ障害を通知する障害通知部と、を備える半導体集積回路。
【請求項８】
前記第１の制御部及び第２の制御部により取得された障害信号に基づいて特定される前記周辺回路の障害状態を記憶する障害記憶部をさらに有することを特徴とする請求項７に記載の半導体集積回路。
【請求項９】
複数の周辺回路と当該周辺回路を監視する複数の監視回路とで構成されている回路の故障個所を特定する故障個所特定方法であって、
前記周辺監視回路から前記周辺回路の障害を模擬的に発生させる疑似障害信号を出力し、
前記出力された疑似障害信号に基づいて前記周辺回路の障害状態を記憶し、
前記障害状態の記憶状況に基づいて前記周辺回路、前記監視回路及び前記周辺回路と前記監視回路とを接続する配線の故障個所を特定する、故障個所特定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は障害監視回路、半導体集積回路及び故障個所特定方法に関し、特に半導体集積回路の動作制御を行う障害監視回路、半導体集積回路及び故障個所特定方法に関する。
【背景技術】
【０００２】
自動車分野で特に安全性を要求されるＥＰＳ（Electronic Power Steering）、ＥＳＣ（Electronic Stability Control）分野においては、誤動作が人命に関わるため、機能安全（故障が発生してもシステムや機器の安全性を確保できるように機能を実装しておくという考え方）が重要となる。そのため、自動車分野における機能安全に関する国際規格（ＩＥＣ６１５０８）が発行（自動車分野向けのＩＳＯ２６２６２は投票中。２０１１年規格化予定）されたのに伴い、ＥＰＳ／ＥＳＣシステムを構成するマイクロコントローラに対しても機能安全の考え方に基づいた設計（高い安全性および信頼性）の要求及び必要性が高まってきている。つまり、故障を監視／判断し、故障信号を出力する回路自体に異常が発生した場合も検出可能な技術が要求されている。
【０００３】
特許文献１には、鉄道駅構内の信号機や転てつ器の制御に用いられる二重系電子連動装置に関する技術が開示されている。図６を用いて、特許文献１に開示されている二重系電子連動装置の構成について説明する。二重系電子連動装置は、制御盤３０１と、結合系３０２と、リセット回路３０３と、ＣＰＵ３０４及び３０６と、照合起動／停止回路３０５と、ラッチ３０７及び３０９と、データ照合回路３０８と、ウェイト回路３１０及び３１１と、照合誤りラッチ回路３１２と、を備えている。汎用Ｉ／Ｆ３１３と、入出力リレー部３１４と、現場機器３１５と、を備える外部装置は、二重系電子連動装置と接続されている。制御盤３０１は、保安系の二重系電子連動装置へ進路データを送出する運行管理システムにおける駅制御装置等である。結合系３０２は、制御盤３０１とＣＰＵ３０４及び３０５とを結合する。ＣＰＵ３０４は、ラッチ回路３０７へ処理データを出力する。ＣＰＵ３０６は、ラッチ回路３０９へ処理データを出力する。データ照合回路３０８は、ラッチ回路３０７及びラッチ回路３０９から取得したＣＰＵ３０４及び３０６の処理データのデータ照合を行う。データ照合の結果、処理データが不一致となる誤りが発生していた場合、照合誤りラッチ回路３１２へ誤り信号を出力する。照合誤りラッチ回路３１２は、誤り信号をリセット回路３０３へ出力し、リセット回路３０３は、誤り信号に基づいて生成するリセット信号をＣＰＵ３０４及びＣＰＵ３０６へ出力する。
【０００４】
続いて、図７を用いて、二重系電子連動装置の処理の流れについて説明する。ＣＰＵ３０４及び３０６は、現場機器３１５の処理データの書き込み信号及び読み込み信号を予めセットする（Ｓ５１）。次に、ＣＰＵ３０４及び３０６が現場機器３１５の制御のために、セットされた書き込み信号を発行して現場機器３１５に対してデータを書き込んだか否かを判定する。（Ｓ５２）。次に、ＣＰＵ３０４及び３０６が書き込み信号を発行せず、書き込み動作がない場合、ＣＰＵ３０４及び３０６は、処理動作の待機状態無しで現場機器３１５の制御処理を実行する（Ｓ５３）。この時、ＣＰＵ３０４及び３０６は、ラッチ回路３０７及び３０９と、データ照合回路３０８を介して、処理データを汎用Ｉ／Ｆ３１３へ出力する。汎用Ｉ／Ｆ３１３は、入出力リレー部３１４を介して現場機器３１５へ処理データを出力する。次に、ＣＰＵ３０４及び３０６が書き込み信号を発行したならば、書き込み信号を照合起動／停止回路３０５へ出力する。照合起動／停止回路３０５は、照合起動信号をデータ照合回路３０８へ出力する。この時、ＣＰＵ３０４及び３０６は、書き込まれた同一の処理データを同一に処理し、処理結果を出力してラッチ回路３０７及び３０９に記憶させ、データ照合回路３０８に取り込ませてデータ照合をさせる（Ｓ５４）。データ照合動作中は、データ照合回路３０８は、データ照合が終了するまでウェイト回路３１０及び３１１に起動をかけてＣＰＵ３０４及び３０６の処理動作を待機させる（Ｓ５５）。次に、データ照合回路３０８は、照合結果が正しいと判断した場合（Ｓ５６）、故障無しと判定してウェイト回路３１０及び３１１の起動を解除し、ＣＰＵ３０４及び３０６の待機状態を解き、次の処理動作に移す（Ｓ５７）。一方、ＣＰＵ３０４及び３０６の処理結果が不一致と判定された場合、故障と判断し、照合誤りラッチ回路３１２がデータ照合回路３０８の判断結果である誤り信号を記憶する（Ｓ５８）。次に、照合誤りラッチ回路３１２が誤り信号をリセット回路３０３へ出力すると、リセット回路３０３は、リセット信号をＣＰＵ３０４及び３０６に対して発行することでその動作をリセットする。
【０００５】
特許文献２には、高信頼性が要求されるシステムにおいて、データ伝送の際の伝送特性の劣化を防ぎ、かつケーブルルートの変更が容易で、データ伝送装置の故障やケーブル切断に対するシステムリダンダンシーを有するデータ伝送システムに関して開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第３２１６９９６号公報
【特許文献２】特開２００５−１５０９５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１及び２に開示されている内容においては、データ照合回路、ラッチ回路及びリセット回路が故障した場合には、故障情報がシステムを安全な状態に保つ回路まで伝達されず、システムとしての安全性を確保できないという問題がある。
【課題を解決するための手段】
【０００８】
本発明の第１の態様にかかる障害監視回路は、周辺回路の障害により当該周辺回路を監視する周辺監視回路から出力される障害信号を第１の経路を介して取得し、当該障害信号を外部監視装置へ出力する障害信号出力部と、前記周辺監視回路から出力される障害信号を前記第１の経路とは異なる第２の経路を介して取得し、当該障害信号に基づいて半導体集積回路の動作制御を行う制御部と、を備えるものである。
【０００９】
このような障害監視回路を用いることにより、制御部に障害が発生した場合においても、外部監視装置へ障害信号を通知することができる。
【００１０】
本発明の第２の態様にかかる半導体集積回路は、周辺回路の障害を検出する障害検出部を有する周辺監視回路と、前記周辺回路の障害を検出した周辺監視回路から出力される障害信号を第１の経路を介して取得し、当該障害信号を外部監視装置に対して出力する第１の障害信号出力部と、前記周辺回路の障害を検出した周辺監視回路から出力される障害信号を前記第１の経路とは異なる第２の経路を介して取得し、当該障害信号に基づいて半導体集積回路の動作制御を行う第１の制御部と、前記周辺回路の障害を検出した周辺監視回路から出力される障害信号を前記第１の経路及び前記第２の経路とは異なる第３の経路から取得し、当該障害信号を外部装置に対して出力する第２の障害信号出力部と、前記周辺回路の障害を検出した周辺監視回路から出力される障害信号を前記第１の経路、前記第２の経路及び前記第３の経路とは異なる第４の経路から取得し、当該障害信号に基づいて半導体集積回路の動作制御を行う第２の制御部と、前記第１の障害信号出力部又は第２の障害信号出力部の少なくとも一方から障害信号が出力された場合、外部監視装置へ障害を通知する障害通知部と、を備えるものである。
【００１１】
このような半導体集積回路を用いることにより、第１の制御部又は第２の制御部に障害が発生した場合においても、外部監視装置へ障害信号を通知することができる。
【００１２】
本発明の第３の態様にかかる故障個所特定方法は、複数の周辺回路と当該周辺回路を監視する複数の監視回路とで構成されている回路の故障個所を特定する故障個所特定方法であって、前記周辺監視回路から前記周辺回路の障害を模擬的に発生させる疑似障害信号を出力し、前記出力された疑似障害信号に基づいて前記周辺回路の障害状態を記憶し、前記障害状態の記憶状況に基づいて前記周辺回路、前記監視回路及び前記周辺回路と前記監視回路とを接続する配線の故障個所を特定する、ものである。
【００１３】
このような故障個所特定方法を用いることにより、障害を模擬的に発生させることで、回路及び配線の故障個所を特定することができる。
【発明の効果】
【００１４】
本発明により、故障情報がシステムを安全な状態に保つ回路まで確実に伝達され、システムとしての安全性を確保できる障害監視回路、半導体集積回路及び故障個所特定方法を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】実施の形態１にかかる半導体集積回路の構成図である。
【図２】実施の形態１にかかる異常出力回路と、記憶／判別回路との構成図である。
【図３】実施の形態１にかかる障害発生時のフローチャートである。
【図４】実施の形態１にかかる半導体集積回路の自己診断を実行する際のフローチャートである。
【図５】実施の形態１にかかる異常監視／通知回路からシステム監視回路までの間の自己診断を実行する際のフローチャートである。
【図６】特許文献１にかかる二重系電子連想装置の構成図である。
【図７】特許文献１にかかる二重系電子連想装置のフローチャートである。
【発明を実施するための形態】
【００１６】
（実施の形態１）
以下、図面を参照して本発明の実施の形態について説明する。図１を用いて、本発明の実施の形態１にかかる半導体集積回路の構成例について説明する。半導体集積回路１は、異常監視／通知回路１０、２０と、ＣＰＵサブシステム３０と、クロックモニター４０と、ウォッチドッグタイマ５０と、メモリＥＣＣ回路６０と、障害通知部７０と、排他的論理和回路８０と、停止信号取得部１１０とを備えている。異常監視／通知回路１０は、障害信号出力部１２と、制御部１４と、を有している。同様に、異常監視／通知回路２０は、障害信号出力部２２と、制御部２４と、を有している。ＣＰＵサブシステム３０は、ＣＰＵ３１及び３２と、比較回路３３と、を有している。クロックモニター４０は、異常検出回路４１と、疑似異常発生回路４２と、論理和回路４３と、を有している。ウォッチドッグタイマ５０は、異常検出回路５１と、疑似異常発生回路５２と、論理和回路５３と、を有している。メモリＥＣＣ回路６０は、異常検出回路６１と、疑似異常発生回路６２と、論理和回路６３と、を有している。障害通知部７０は、論理積回路７５を有している。また、半導体集積回路１は、論理積回路７５を介して、システム監視回路９０に接続されている。ＣＰＵサブシステム３０と、クロックモニター４０と、ウォッチドッグタイマ５０と、メモリＥＣＣ回路６０とは、それぞれ周辺監視回路１００に対応する。また、ＣＰＵサブシステム３０が監視するＣＰＵ、クロックモニター４０が監視するクロック、ウォッチドッグタイマ５０が監視するハードウェアクロック、メモリＥＣＣ回路６０が監視するメモリ、がそれぞれ周辺回路に対応する。
【００１７】
半導体集積回路１は、ＣＰＵ、クロック等を監視する回路であり、例えばＭＣＵを構成する。
【００１８】
異常監視／通知回路１０と、異常監視／通知回路２０とは、二重化された冗長の接続構成であって、同様の構成であるため、以下異常監視／通知回路１０の構成例について説明する。異常監視／通知回路１０は、ＣＰＵサブシステム３０と、クロックモニター４０と、ウォッチドッグタイマ５０と、メモリＥＣＣ回路６０と、が監視している各機能ブロックの障害又は異常状態を通知する障害信号を取得する。具体的には、異常監視／通知回路１０は、障害信号を、障害信号出力部１２及び制御部１４にて取得する。異常監視／通知回路１０は、ＣＰＵサブシステム３０等から出力される障害信号を異常監視／通知回路１０内で分岐させて障害信号出力部１２及び制御部１４に取得させてもよい。又は、ＣＰＵサブシステム３０等が同一内容の障害信号を物理的に異なる２つの経路に出力し、異常監視／通知回路１０は、物理的に異なる２つの経路から障害信号を障害信号出力部１２及び制御部１４に取得させてもよい。
【００１９】
障害信号出力部１２は、取得した障害信号を、論理積回路７５を介して、システム監視回路９０へ出力する。また、障害信号出力部１２は、排他的論理和回路８０を介して、異常監視／通知回路１０及び異常監視／通知回路２０に対して、障害信号の出力結果についてフィードバックを行う。異常監視／通知回路１０及び異常監視／通知回路２０から出力される障害信号が不一致である場合、異常監視／通知回路１０及び異常監視／通知回路２０のどちらか一方の回路に障害が発生していると推定することができる。
【００２０】
障害信号出力部１２は、障害の発生を通知する場合、障害信号をロウレベルの値に設定して論理積回路７５へ出力する。論理積回路７５は、障害信号を障害信号出力部１２及び障害信号出力部２２から取得する。この時、障害信号出力部１２及び障害信号出力部２２のどちらか一方、もしくは両方の回路からロウレベルの値が設定された障害信号を取得した場合、ＣＰＵ等の回路に障害が発生しているものとして、システム監視回路９０に対して、障害を通知する信号を出力する。障害通知を受けたシステム監視回路９０は、ＣＰＵ等の回路に対するリセット制御を行うリセット制御信号を半導体集積回路１の停止信号取得部１１０に対して出力する。システム監視回路９０からリセット制御信号を取得した停止信号取得部１１０は、障害が発生している回路もしくは半導体集積回路１の動作を停止させるために、リセット信号を出力する。
【００２１】
また、排他的論理和回路８０は、障害信号出力部１２及び障害信号出力部２２から同一の値を取得した場合は、異常監視／通知回路１０及び異常監視／通知回路２０の動作及びＣＰＵサブシステム３０等からの信号出力が正常であることを示すロウレベルに設定した信号を、異常監視／通知回路１０及び異常監視／通知回路２０へ通知する。排他的論理和回路８０は、障害信号出力部１２及び障害信号出力部２２から異なる値を取得した場合は、異常監視／通知回路１０もしくは異常監視／通知回路２０の動作又は、ＣＰＵサブシステム３０等からの障害信号の出力動作に異常があるものと判定し、回路異常を示すアクティブに設定した信号を異常監視／通知回路１０及び異常監視／通知回路２０へ通知する。
【００２２】
制御部１４は、障害信号出力部１２とは異なる経路で取得した障害信号に基づいて、ＣＰＵ、クロック等の動作を停止させるリセット信号を生成し、ＣＰＵ、クロック等を構成する回路に出力する。リセット信号を取得した回路は、動作を停止する。
【００２３】
ＣＰＵサブシステム３０は、冗長構成のＣＰＵ３１及び３２と、比較回路３３とを備えている。比較回路３３は、ＣＰＵ３１及び３２の処理データを取得し、取得したデータが一致するか否かを判定する。比較回路３３は、取得したデータが不一致である場合、ＣＰＵの障害を通知する障害信号を異常監視／通知回路１０及び異常監視／通知回路２０へ出力する。比較回路３３は、異常監視／通知回路１０の障害信号出力部１２及び制御部１４に対して物理的に異なる経路を介して障害信号を出力してもよく、異常監視／通知回路１０までは同一の経路を介して障害信号を出力してもよい。異常監視／通知回路２０に対しても同様に障害信号を出力する。
【００２４】
クロックモニター４０は、クロック回路（図示せず）の障害又は異常状態の検出を行う異常検出回路４１と、クロック回路の障害を模擬的又は疑似的に発生させる疑似異常発生回路４２と、論理和回路４３と、を備えている。論理和回路４３は、異常検出回路４１もしくは疑似異常発生回路４２のどちらか一方もしくは両方から障害信号を取得した場合に、障害信号を異常監視／通知回路１０及び異常監視／通知回路２０に対して出力する。クロックモニター４０が障害信号を出力する経路は、ＣＰＵサブシステム３０の比較回路３３と同様に、物理的に異なる経路を用いてもよく、物理的に同一の経路を用いてもよい。ウォッチドッグタイマ５０及びメモリＥＣＣ回路６０についても、クロックモニター４０と同様に障害信号を出力するため、説明を省略する。
【００２５】
続いて、図２を用いて本発明の実施の形態１にかかる異常監視／通知回路１０の障害信号出力部１２と、制御部１４との構成例について説明する。なお、異常監視／通知回路２０の構成は、異常監視／通知回路１０と同様である。
【００２６】
制御部１４は、異常出力クリアレジスタ１４１と、異常出力セットレジスタ１４２と、異常記憶レジスタ１４３と、異常記憶クリアレジスタ１４４と、マスクレジスタ１４５と、リセット制御レジスタ１４６と、割り込み制御レジスタ１４７と、異常出力波形選択レジスタ１４８と、否定回路１４９及び１５２と、否定論理積回路１５０及び１５３と、論理積回路１５１及び１５４と、否定論理積回路１５５と、論理和回路１５６と、論理積回路１５７と、を備えている。ここで、異常出力クリアレジスタ１４１と異常出力セットレジスタ１４２とは、疑似障害信号生成部１４０を構成する。さらに、論理和回路１５６と、論理積回路１５７とは、制御部１４における停止信号出力部１６０を構成する。また、異常記憶レジスタ１４３は、障害記憶部を構成する。
【００２７】
マスクレジスタ１４５は、ＣＰＵサブシステム３０又はクロックモニター４０等の周辺監視回路から障害の発生がデータバス１６を介して通知された場合に、システム監視回路９０へ障害情報を通知するか否かの制御を行う。例えば、重要障害の場合には、システム監視回路９０へ障害情報の通知を行い、比較的障害の重要度が低い場合には、システム監視回路９０へ障害情報を通知しない運用を行う場合に、マスクレジスタ１４５は、発生した障害をシステム監視回路９０へ通知するか否かの制御を行う。発生した障害を通知するか否かについては、障害発生箇所若しくは障害レベル等によりあらかじめ定められている。マスクレジスタ１４５は、発生した障害をシステム監視回路９０に対して通知しない、つまり障害信号のマスクを行う場合には、ハイレベルに設定された値を否定回路１４９、１５２へ出力する。また、マスクレジスタ１４５は、発生した障害をシステム監視回路９０に対して通知する場合は、ロウレベルに設定された値を否定回路１４９、１５２へ出力する。否定回路１４９、１５２は、取得した信号を反転して障害信号出力部１２の論理積回路１２１、１２２へ出力する。
【００２８】
リセット制御レジスタ１４６は、データバス１６を介して、ＣＰＵサブシステム３０等に障害発生が通知された場合に、当該障害により、障害が発生したＣＰＵ等の各回路の動作を停止するか否かを制御する。例えば、障害発生箇所が重要機能を有するＣＰＵである場合には、動作を停止し、その他の重要度が比較的に低い回路である場合には、動作を停止しない制御を行うことができる。もしくは、障害のレベルにより動作を停止するか否かを判定してもよい。
【００２９】
リセット制御レジスタ１４６は、発生した障害により回路の停止を行う場合は、ハイレベルに設定した信号を否定論理積回路１５０、１５３へ出力する。リセット制御レジスタ１４６は、発生した障害により回路の停止を行わない場合は、ロウレベルに設定した信号を否定論理積回路１５０、１５３へ出力する。
【００３０】
否定論理積回路１５０、１５３は、リセット制御レジスタ１４６からリセット制御に関する信号を取得し、さらに、ＣＰＵサブシステム３０又はクロックモニター４０等から障害発生を通知する障害信号を取得する。否定論理積回路１５０、１５３は、リセット制御レジスタ１４６からハイレベルに設定された信号及びＣＰＵサブシステム３０又はクロックモニター４０等から障害の発生を通知するハイレベルの値が設定された障害信号を取得した場合、論理積回路１５７に対してロウレベルの値を設定した信号を出力する。論理積回路１５７は、否定論理積回路１５０又は否定論理積回路１５３のどちらか一方もしくは両方の回路から、ロウレベルに設定された値を取得した場合、ロウレベルに設定したリセット信号を出力し、回路の動作を停止する制御を行う。動作を停止させる回路は、障害が発生した回路のみでもよく、障害が発生した回路に関連する複数の回路であってもよい。
【００３１】
割り込み制御レジスタ１４７は、ＣＰＵサブシステム３０又はクロックモニター４０等に障害が発生した場合に、ＣＰＵに対して、現在行っている処理とは異なる処理を割り込ませるか否かについての制御を行う。割り込み制御レジスタ１４７は、割り込み処理を行う場合には、ハイレベルの値を設定した信号を論理積回路１５１、１５４に対して出力する。論理積回路１５１、１５４は、割り込み制御レジスタ１４７から割り込み処理に関する信号を取得するとともに、ＣＰＵサブシステム３０又はクロックモニター４０等から障害信号を取得する。論理積回路１５１、１５４は、割り込み制御レジスタ１４７及び、ＣＰＵサブシステム３０又はクロックモニター４０等から、ともにハイレベルに設定された値を取得した場合、論理和回路１５６に対して、ハイレベルに設定した値を出力する。論理和回路１５６は、論理積回路１５１、論理積回路１５４のどちらか一方もしくは両方の回路から、ハイレベルに設定された値を取得した場合、割り込み処理を実行する割り込み信号を出力する。
【００３２】
異常出力波形選択レジスタ１４８は、タイマー１８が出力するパルス信号の出力制御を行う。具体的には、ＣＰＵサブシステム３０又はクロックモニター４０等の周辺回路において障害が発生していない場合は、タイマー１８が出力するパルス信号を障害信号出力部１２へ出力する。障害信号出力部１２は、取得したパルス信号をシステム監視回路９０へ出力することにより、回路の正常性を通知する。ＣＰＵサブシステム３０又はクロックモニター４０等に障害が発生した場合もしくはタイマー１８に障害が発生した場合には、固定値を障害信号出力部１２へ出力する。例えば、ＣＰＵサブシステム３０又はクロックモニター４０等に障害が発生していない場合は、異常出力波形選択レジスタ１４８は、ハイレベルの値を設定した信号を否定論理積回路１５５へ出力する。タイマー１８は、パルス信号を否定論理積回路１５５へ出力する。これより、否定論理積回路１５５は、パルス信号を障害信号出力部１２の論理積回路１２６へ出力する。
【００３３】
これに対して、ＣＰＵサブシステム３０又はクロックモニター４０等に障害が発生したことをデータバス１６を介して通知された場合は、異常出力波形選択レジスタ１４８は、ロウレベルの値を設定した信号を否定論理積回路１５５へ出力する。この場合、否定論理積回路１５５は、タイマー１８から取得する信号によらず、ロウレベルの値を反転したハイレベルの値を設定した信号を障害信号出力部１２の論理積回路１２６へ出力する。また、タイマー１８に故障が発生した場合は、タイマー１８は、パルス信号を出力することはできず、ハイレベルもしくはロウレベルの値を設定した信号を否定論理積回路１５５へ出力する。この時、異常出力波形選択レジスタ１４８は、ＣＰＵサブシステム３０又はクロックモニター４０等の障害を通知されていないため、否定論理積回路１５５に対してハイレベルの値を設定した信号を出力する。このため、否定論理積回路１５５は、ハイレベルもしくはロウレベルの値を設定した信号を障害信号出力部１２の論理積回路１２６へ出力する。
【００３４】
異常出力セットレジスタ１４２は、周辺回路の障害を模擬的に発生させる疑似障害信号を生成し、出力する。疑似障害信号は、周辺回路に実際に障害が発生していない時に、回路動作の正常性を確認するために用いられる。周辺回路の障害発生有無は、データバス１６を介して通知される情報に基づいて判定される。疑似障害信号は、ハイレベルの値が設定されている場合に模擬的に障害が発生していることを示す。異常出力セットレジスタ１４２は、生成した疑似障害信号を障害信号出力部１２の否定論理和回路１２４へ出力する。また、異常出力クリアレジスタ１４１は、異常出力セットレジスタ１４２が出力した疑似障害信号をクリアする信号を生成し、出力する。異常出力クリアレジスタ１４１は、異常出力セットレジスタ１４２に設定された値と異なる値を設定して、論理積回路１２５へ出力する。
【００３５】
異常記憶レジスタ１４３は、周辺回路に障害が発生した場合に、障害発生の状態を保持する。具体的には、ＣＰＵサブシステム３０又はクロックモニター４０等から通知された障害信号を取得し、障害の状態を保持する。異常記憶レジスタ１４３は、障害信号をＣＰＵサブシステム３０又はクロックモニター４０等から直接取得してもよく、データバス１６を介して取得してもよい。また、異常出力セットレジスタ１４２が模擬的に周辺回路の障害を発生させた場合に、疑似障害信号を取得し、障害の状態を保持する。
【００３６】
異常記憶クリアレジスタ１４４は、異常記憶レジスタ１４３が保持する障害情報をクリアする際にクリア信号を異常記憶クリアレジスタ１４４へ出力する。例えば、異常記憶クリアレジスタ１４４は、データバス１６を介して障害が復旧したことを通知された場合に、異常記憶レジスタ１４３が保持する障害情報をクリアする制御を行ってもよい。
【００３７】
次に、障害信号出力部１２の構成例について説明する。障害信号出力部１２は、論理積回路１２１及び１２２と、論理和回路１２３と、否定論理和回路１２４と、論理積回路１２５及び１２６と、を備えている。障害信号出力部１２は、一義的に出力が決まる組み合わせ回路のみで構成されている。
【００３８】
論理積回路１２１は、マスクレジスタ１４５からシステム監視回路９０へ障害を通知するか否かの信号を取得し、さらにＣＰＵサブシステム３０から障害信号を取得する。ここで、ＣＰＵサブシステム３０から取得する障害信号は、制御部１４へ出力される経路とは異なる経路で障害信号出力部１２へ出力される。つまり、障害信号出力部１２は、制御部１４を経由した障害信号ではなく、ＣＰＵサブシステム３０から直接障害信号を取得する。
【００３９】
論理積回路１２１は、ＣＰＵサブシステム３０からハイレベルの値が設定された障害信号により障害発生が通知され、さらに、マスクレジスタ１４５から、否定回路１４９を介して取得するハイレベルの値が設定された信号によりシステム監視回路９０に対する障害の通知が許可された場合、論理和回路１２３へハイレベルの値を設定した信号を出力する。クロックモニター４０から障害信号を取得する論理積回路１２２も論理積回路１２１と同様に動作し、ハイレベルもしくはロウレベルの値を設定した信号を論理和回路１２３へ出力する。また、論理積回路１２１、１２２に相当する論理積回路は、データバス１６に接続されている周辺監視回路１００に対して１つ設けられる。そのため、図示していないウォッチドッグタイマ５０及びメモリＥＣＣ回路６０から信号を取得する論理積回路も存在する。
【００４０】
論理和回路１２３は、論理積回路１２１及び１２２の少なくとも一方の回路からハイレベルの値が設定された信号を取得した場合、否定論理和回路１２４へハイレベルの値を設定した信号を出力する。つまり、論理積回路１２１及び１２２の少なくとも一方の回路から障害通知を受けた場合に、否定論理和回路１２４へハイレベルの値を設定した信号を出力する。否定論理和回路１２４は、論理和回路１２３からハイレベルの値が設定された信号を取得した場合、値を反転してロウレベルの値を設定した信号を論理積回路１２５へ出力する。
【００４１】
否定論理和回路１２４からロウレベルの値が設定された信号を取得した論理積回路１２５は、異常出力クリアレジスタ１４１から取得する値によらず、論理積回路１２６へロウレベルの値を設定した信号を出力する。論理積回路１２５からロウレベルの値が設定された信号を取得した論理積回路１２６は、否定論理積回路１５５を介してタイマー１８から出力される信号によらず、ロウレベルの値が設定された信号をシステム監視回路９０へ出力する。論理積回路１２６からロウレベルの値が設定された信号が出力された場合、障害が発生していることを示す。
【００４２】
また、周辺回路において障害が発生しておらず、ＣＰＵサブシステム３０及びクロックモニター４０等からハイレベルの値が設定された障害信号が通知されない場合、論理積回路１２１、１２２は、ロウレベルの値を設定した信号を論理和回路１２３へ出力する。さらに、論理和回路１２３も、ロウレベルの値を設定した信号を否定論理和回路１２４へ出力する。この時、異常出力セットレジスタ１４２が疑似障害信号を発生させておらず、ロウレベルの値を設定した信号を出力した場合、否定論理和回路１２４は、ハイレベルの値を設定した信号を論理積回路１２５へ出力する。論理積回路１２５は、否定論理和回路１２４からハイレベルの値が設定された信号を取得し、さらに異常出力クリアレジスタ１４１からハイレベルの値を設定した信号を取得する。そのため、論理積回路１２６に対して、ハイレベルの値が設定された信号を出力する。ここで、周辺回路において障害が発生していない場合、論理積回路１２６は、否定論理積回路１５５からパルス信号を取得するため、システム監視回路９０に対して、障害が発生していないことを示すパルス信号を出力する。
【００４３】
続いて、図３を用いて、本発明の実施の形態１にかかる障害発生時の処理の流れについて説明する。はじめに、ＣＰＵサブシステム３０、クロックモニター４０等の周辺監視回路１００が、障害検出を行う（Ｓ１１）。
【００４４】
次に、周辺監視回路から障害発生を通知された障害信号出力部１２及び障害信号出力部２２は、システム監視回路９０に対して、ＣＰＵ、クロック等から構成されるＭＣＵの異常発生を通知する（Ｓ１２）。また、システム監視回路９０に対して異常発生を通知するとともに、制御部１４の異常記憶レジスタ１４３において、障害状態を保存する（Ｓ１６）。つまり、異常記憶レジスタ１４３は、障害状態を記録するための該当ビットに値を設定する。
【００４５】
次に、システム監視回路９０から半導体集積回路１の停止信号取得部１１０に対してリセット信号を出力する（Ｓ１３）。これにより、停止信号取得部１１０は、ＣＰＵ、クロック等の障害が発生している回路に対して動作を停止させるためにリセットを行う。ここで、ＣＰＵ、クロック等の回路が半導体集積回路１に搭載されている場合には、半導体集積回路１の動作を停止させてもよい。また、障害発生を通知された制御部１４、制御部２４から出力されるリセット信号に基づいて、ＣＰＵ、クロック等の停止を行ってもよい。
【００４６】
次に、システム監視回路９０から、リセット状態の解除が通知されると（Ｓ１４）、ＣＰＵは、データバス１６を介して制御部１４又は制御部２４の各記憶レジスタの内容を読み出し、動作を継続する（Ｓ１５）。
【００４７】
続いて、図４を用いて、本発明の実施の形態１にかかる半導体集積回路１の自己診断の処理の流れについて説明する。はじめに、クロックモニター４０、ウォッチドッグタイマ５０又はメモリＥＣＣ回路６０は、疑似異常発生回路を用いて疑似異常、もしくは疑似障害を発生させる（Ｓ２１）。
【００４８】
次に、自己診断テストを実行するコンピュータは、制御部１４及び制御部２４の異常記憶レジスタの状態を確認する（Ｓ２２）。
【００４９】
次に、自己診断テストを実行するコンピュータが、制御部１４及び制御部２４の有する異常記憶レジスタに異常状態が設定されているか否かを確認する（Ｓ２３）。制御部１４及び制御部２４の有する異常記憶レジスタ、つまり全ての異常記憶レジスタに異常状態が設定されている場合、異常発生源であるクロックモニター４０、ウォッチドッグタイマ５０又はメモリＥＣＣ回路６０から異常監視／通知回路１０及び異常監視／通知回路２０までの回路及び信号配線は正常と判断できる（Ｓ２４）。
【００５０】
全ての異常記憶レジスタに異常状態が設定されていない場合、自己診断テストを実行するコンピュータは、全ての異常記憶レジスタに正常状態が設定されているか否かを確認する（Ｓ２５）。全ての異常記憶レジスタに正常状態が設定されている場合、障害信号が制御部１４及び制御部２４の異常記憶レジスタに反映されていないため、異常発生源であるクロックモニター４０、ウォッチドッグタイマ５０又はメモリＥＣＣ回路６０の故障であると判断することができる（Ｓ２６）。
【００５１】
制御部１４及び制御部２４のどちらか一方の異常記憶レジスタのみ異常状態が設定され、他方の異常記憶レジスタは正常状態が設定されている場合、正常状態が設定されている異常記憶レジスタを有する記憶／判別回路、もしくはクロックモニター４０、ウォッチドッグタイマ５０又はメモリＥＣＣ回路６０から当該記憶／判別回路までの信号配線に故障が発生していると判断することができる（Ｓ２７）。
【００５２】
続いて、図５を用いて本発明の実施の形態１にかかる、異常監視／通知回路１０もしくは異常監視／通知回路２０からシステム監視回路９０までの間の自己診断の処理の流れについて説明する。
【００５３】
はじめに、異常監視／通知回路１０もしくは異常監視／通知回路２０のどちらか一方の異常出力セットレジスタは、異常通知信号の状態をセット又はクリアの状態へ変更する（Ｓ３１）。次に、システム監視回路９０へ出力される異常通知信号の状態を確認する（Ｓ３２）。異常通知信号の状態確認は、例えばコンピュータにより実行される。
【００５４】
ここで、異常通知信号の状態が異常通知状態から正常状態、もしくは正常状態から異常通知状態へ、状態が変化しているか否かを確認する（Ｓ３３）。システム監視回路９０に対する異常通知信号の状態が変化していない場合、疑似異常信号を発生させた異常出力セットレジスタに故障が発生していると判断できる（Ｓ３４）。
【００５５】
次に、システム監視回路９０に対する異常通知信号の状態が変化している場合、排他的論理和回路８０の出力状態を確認する（Ｓ３５）。排他的論理和回路８０は、障害信号出力部１２及び障害信号出力部２２から出力される信号が異なる場合、ハイレベルの値が設定された信号を出力する。つまり、ハイレベルの値を設定された信号が出力された場合、異常監視／通知回路１０もしくは異常監視／通知回路２０のどちらか一方の回路に障害が発生したことを検知したことになる。現在は、制御部１４もしくは制御部２４のどちらか一方の異常出力セットレジスタから疑似異常信号を発生させているため、排他的論理和回路８０が正常であれば、障害の発生を検知する。そのため、排他的論理和回路８０がハイレベルの値を設定した信号を出力した場合、正常に障害を検知したことになるため、異常監視／通知回路１０及び異常監視／通知回路２０からシステム監視回路９０までの回路及び信号配線は正常であると判断できる（Ｓ３６）。
【００５６】
排他的論理和回路８０がロウレベルの値を設定した信号を出力した場合、正常に障害を検知しなかったことになるため、排他的論理和回路８０に故障が発生していると判断できる（Ｓ３７）。
【００５７】
以上説明したように、本発明の実施の形態１にかかる半導体集積回路は、障害を検出した回路から、外部装置であるシステム監視回路へ異常状態を通知する異常出力回路と回路に発生した障害によりリセット制御等を行う記憶／判別回路とに障害を通知する経路が異なる。これにより、記憶／判別回路に障害が発生した場合においても、システム監視回路に対して回路の異常状態を通知することができる。これにより、システム監視回路から、半導体集積回路に対してリセット信号を通知することができ、障害が発生した回路の動作を停止させることができる。また、異常出力回路に障害が発生した場合においても、記憶／判別回路には正常に障害を検出した回路から障害が通知される。これにより、障害が発生した回路の動作を停止させることができる。さらに、周辺監視回路又は異常監視／通知回路から出力される疑似障害信号を用いた自己診断処理を行うことにより、故障個所を特定することができる。
【００５８】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００５９】
１  半導体集積回路
１０  異常監視／通知回路
１２  障害信号出力部
１４  制御部
１６  データバス
１７  ＩＯバッファ
１８  タイマー
２０  異常監視／通知回路
２２  障害信号出力部
２４  制御部
３０  ＣＰＵサブシステム
３１  ＣＰＵ
３２  ＣＰＵ
３３  比較回路
４０  クロックモニター
４１  異常検出回路
４２  疑似異常発生回路
４３  論理和回路
５０  ウォッチドッグタイマ
５１  異常検出回路
５２  疑似異常発生回路
５３  論理和回路
６０  メモリＥＣＣ回路
６１  異常検出回路
６２  疑似異常発生回路
６３  論理和回路
７０  障害通知部
７５  論理積回路
８０  排他的論理和回路
９０  システム監視回路
１００  周辺監視回路
１１０  停止信号取得部
１２１、１２２  論理積回路
１２３  論理和回路
１２４  否定論理和回路
１２５、１２６  論理積回路
１４０  疑似障害信号生成部
１４１  異常出力クリアレジスタ
１４２  異常出力セットレジスタ
１４３  異常記憶レジスタ
１４４  異常記憶クリアレジスタ
１４５  マスクレジスタ
１４６  リセット制御レジスタ
１４７  割り込み制御レジスタ
１４８  異常出力波形選択レジスタ
１４９、１５２  否定回路
１５０、１５３  否定論理積回路
１５１、１５４  論理積回路
１５５  否定論理積回路
１５６  論理和回路
１５７  論理積回路
１６０  停止信号出力部
【図１】
2011043957.tif 000003
【図２】
2011043957.tif 000004
【図３】
2011043957.tif 000005
【図４】
2011043957.tif 000006
【図５】
2011043957.tif 000007
【図６】
2011043957.tif 000008
【図７】
2011043957.tif 000009