(57)【要約】【課題】複数の割込み信号ごとに発生する様々な種類のエラーに基づく故障を検出すること。【解決手段】半導体装置は、プロセッサと、複数の回路ブロックと、複数の回路ブロックのそれぞれから複数の割込み信号を受け付け、プロセッサに対して割込み要求を出力する割込み制御回路と、いずれかの割込み信号に対応し、対応する割込み信号の監視対象の状態を示す監視種別並びに第１及び第２の監視期間を設定するための設定回路を有する割込み監視回路と、を備え、割込み監視回路は、監視種別が割込み信号のアサート状態を示す場合、当該アサート状態を監視し、当該アサート状態が継続している第１の継続時間が第１の監視期間を超える場合に、故障として検出し、監視種別が割込み信号のネゲート状態を示す場合、当該ネゲート状態を監視し、当該ネゲート状態が継続している第２の継続時間が第２の監視期間を超える場合に、故障として検出する。【選択図】図１
2019096243.tif 000002
【特許請求の範囲】
【請求項１】
割込み要求に応じて所定の割込処理を行う第１のプロセッサと、
複数の割込み信号のそれぞれを出力する複数の回路ブロックと、
前記複数の回路ブロックのそれぞれから前記複数の割込み信号を受け付け、前記第１のプロセッサに対して前記割込み要求を出力する第１の割込み制御回路と、
前記複数の割込み信号のうち少なくとも１つに対応し、対応する割込み信号の監視対象の状態を示す監視種別及び監視期間を設定するための設定回路を有する少なくとも１つの割込み監視回路と、を備え、
前記割込み監視回路は、
前記監視種別が前記割込み信号のアサート状態を示す場合、当該アサート状態を監視し、当該アサート状態が継続している第１の継続時間が第１の監視期間を超える場合に、故障として検出し、
前記監視種別が前記割込み信号のネゲート状態を示す場合、当該ネゲート状態を監視し、当該ネゲート状態が継続している第２の継続時間が第２の監視期間を超える場合に、故障として検出する
半導体装置。
【請求項２】
前記割込み監視回路は、
自身が有する前記設定回路に前記監視種別が設定された時に、前記割込み信号の監視を開始し、
前記割込み信号の状態の変化を検出する度に、前記アサート状態及び前記ネゲート状態の監視を切り替える
請求項１に記載の半導体装置。
【請求項３】
前記割込み監視回路は、
前記監視種別が前記アサート状態として前記設定回路に設定された時点で、前記割込み信号が前記アサート状態であった場合、前記第１の継続時間の計測を開始し、
前記監視種別が前記ネゲート状態として前記設定回路に設定された時点で、前記割込み信号が前記ネゲート状態であった場合、前記第２の継続時間の計測を開始する
請求項２に記載の半導体装置。
【請求項４】
前記設定回路には、
カメラモジュールから映像の入力が開始された時に、前記監視種別が設定され、
前記映像内の画像の１フレームの処理に対応した期間が前記監視期間として設定される
請求項２に記載の半導体装置。
【請求項５】
前記設定回路には、
前記複数の回路ブロックのうち一つが内蔵するタイマが、外部装置と時刻同期したことに応じて、前記監視種別が設定され、
前記タイマに基づき出力される前記割込み信号の発生タイミングに応じた期間が前記監視期間として設定される
請求項２に記載の半導体装置。
【請求項６】
前記設定回路には、
音声データのサンプリングモジュールからの入力が開始された時に、前記監視種別が設定され、
前記音声データの１フレームの処理に対応した期間が前記監視期間として設定される
請求項２に記載の半導体装置。
【請求項７】
前記半導体装置は、
第２のプロセッサと、
前記割込み監視回路から前記故障の検出通知を受け付け、当該検出通知を前記割込み信号として出力するエラー制御部と、
前記エラー制御部からの前記割込み信号を受け付け、前記第２のプロセッサに対して前記割込み要求として出力する第２の割込み制御回路と、をさらに備える
請求項１に記載の半導体装置。
【請求項８】
前記割込み監視回路は、
動作クロックに基づいて前記第１の継続時間及び前記第２の継続時間を計測するタイマカウンタと、
前記割込み信号のアサート及びネゲートを検出する制御回路と、をさらに有し、
前記制御回路は、
前記アサートを検出した場合に前記タイマカウンタをクリアし、その後の前記タイマカウンタの計測値を前記第１の継続時間として前記第１の監視期間と比較し、
前記ネゲートを検出した場合に前記タイマカウンタをクリアし、その後の前記タイマカウンタの計測値を前記第２の継続時間として前記第２の監視期間と比較する
請求項１に記載の半導体装置。
【請求項９】
前記複数の割込み信号は、第１の割込み信号と第２の割込み信号とを含み、
前記半導体装置は、
前記第１の割込み信号に対応する第１の割込み監視回路と、前記第２の割込み信号に対応する第２の割込み監視回路と、を備える
請求項１に記載の半導体装置。
【請求項１０】
前記第１の割込み監視回路は、前記第１の割込み信号の監視により前記故障を検出した場合に第１の故障通知信号を出力し、
前記第２の割込み監視回路は、前記第２の割込み信号の監視により前記故障を検出した場合に第２の故障通知信号を出力し、
前記半導体装置は、
前記第１の故障通知信号及び前記第２の故障通知信号の論理和を第３の故障通知信号として出力するＯＲ回路をさらに備える
請求項９に記載の半導体装置。
【請求項１１】
前記半導体装置は、
前記複数の割込み信号のうち２以上の信号のそれぞれに対応する２以上の前記割込み監視回路を備え、
前記半導体装置には、
前記２以上の割込み監視回路のそれぞれが有する各設定回路に設定された前記監視種別をまとめて参照するための参照アドレスが設定され、
前記参照アドレスに対するアクセス要求に応じて、前記各設定回路から前記監視種別を読み出し、当該読み出した前記監視種別をまとめて当該アクセス要求の要求元へ応答するアクセス制御回路をさらに備える
請求項１に記載の半導体装置。
【請求項１２】
前記半導体装置は、
前記複数の割込み信号の総数未満のＭ（Ｍは正の整数。）個の前記割込み監視回路を備え、
前記Ｍ個の割込み監視回路のそれぞれは、前記複数の割込み信号のうちＭ個の信号のそれぞれと対応する
請求項１に記載の半導体装置。
【請求項１３】
前記複数の回路ブロックは、Ｍ個の第１の回路ブロックと、当該第１の回路ブロックと比べて機能安全レベルが低い第２の回路ブロックとを含み、
前記Ｍ個の割込み監視回路は、前記Ｍ個の第１の回路ブロックのそれぞれから出力される前記割込み信号のそれぞれに対応する
請求項１２に記載の半導体装置。
【請求項１４】
前記半導体装置は、
前記複数の割込み信号のうち２以上の信号のそれぞれに対応する２以上の前記割込み監視回路と、
動作クロックに対して異なる分周比により分周する複数の分周器をさらに備え、
前記２以上の割込み監視回路のそれぞれは、前記複数の分周器の少なくとも一部から供給される動作クロックにより動作する
請求項１に記載の半導体装置。
【請求項１５】
前記複数の分周器のそれぞれから供給される動作クロックの供給先を前記２以上の割込み監視回路の中から選択する選択回路をさらに備える
請求項１４に記載の半導体装置。
【請求項１６】
半導体装置の故障検出方法であって、
前記半導体装置は、
割込み要求に応じて所定の割込処理を行う第１のプロセッサと、
複数の割込み信号のそれぞれを出力する複数の回路ブロックと、
前記複数の回路ブロックのそれぞれから前記複数の割込み信号を受け付け、前記第１のプロセッサに対して前記割込み要求を出力する第１の割込み制御回路と、
前記複数の割込み信号のうち少なくとも１つに対応し、対応する割込み信号の監視対象の状態を示す監視種別並びに第１及び第２の監視期間を設定するための設定回路を有する少なくとも１つの割込み監視回路と、を備え、
前記割込み監視回路において、
前記設定回路に前記監視種別並びに前記第１及び第２の監視期間を設定し、
前記監視種別の設定に応じて前記割込み信号の監視を開始し、
前記監視種別が前記割込み信号のアサート状態を示す場合、当該アサート状態を監視し、
前記アサート状態が継続している第１の継続時間と第１の監視期間とを比較し、当該第１の継続時間が第１の監視期間を超える場合に、故障として検出し、
前記監視種別が前記割込み信号のネゲート状態を示す場合、当該ネゲート状態を監視し、
前記ネゲート状態が継続している第２の継続時間が第２の監視期間を超える場合に、故障として検出する
半導体装置の故障検出方法。
【請求項１７】
複数の回路を含む複数の回路階層を備える半導体装置の故障検出方法であって、
前記複数の回路は、
割込み要求に応じて所定の割込処理を行う複数のプロセッサと、
複数の割込み信号のそれぞれを出力する複数の回路ブロックと、
前記複数の回路ブロックのそれぞれから前記複数の割込み信号を受け付け、前記複数のプロセッサのいずれかに対して前記割込み要求を出力する割込み制御回路と、
前記複数の割込み信号のうち少なくとも１つに対応し、対応する割込み信号の監視対象の状態を示す監視種別並びに第１及び第２の監視期間を設定するための設定回路を有する少なくとも１つの割込み監視回路と、を含み、
前記半導体装置の起動時に、前記複数の回路階層のそれぞれにおいて独立して所定の動作確認テストを実行し、
前記動作確認テストに異常がなかった場合に、前記半導体装置を通常動作させ、
前記通常動作中に、前記割込み制御回路及び前記割込み監視回路を含む第１の回路階層に向けて、前記第１の回路階層以外の第２の回路階層からの前記割込み信号を前記割込み監視回路において監視し、
前記割込み監視回路において、
前記監視種別が前記割込み信号のアサート状態を示す場合、当該アサート状態が継続している第１の継続時間が第１の監視期間を超える場合に、故障として検出し、
前記監視種別が前記割込み信号のネゲート状態を示す場合、当該ネゲート状態が継続している第２の継続時間が第２の監視期間を超える場合に、故障として検出する
半導体装置の故障検出方法。
【請求項１８】
前記通常動作中に、前記複数のプロセッサの一部が、前記割込み監視回路が有する前記設定回路から前記監視種別を読み出して所定の期待値と比較する
請求項１７に記載の半導体装置の故障検出方法。
【請求項１９】
前記第１の回路階層は、前記複数の割込み信号のうち一部である２以上の信号のそれぞれに対応する２以上の前記割込み監視回路を含み、
前記半導体装置には、
前記２以上の割込み監視回路のそれぞれが有する各設定回路に設定された前記監視種別をまとめて参照するための参照アドレスが設定され、
前記通常動作中に、前記複数のプロセッサのうち第１のプロセッサからの前記参照アドレスに対するアクセス要求に応じて、前記各設定回路から前記監視種別を読み出し、当該読み出した前記監視種別をまとめて当該第１のプロセッサへ応答する、
請求項１７に記載の半導体装置の故障検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置及びその故障検出方法に関し、例えば割込み信号を監視する半導体装置及びその故障検出方法に関する。
【背景技術】
【０００２】
特許文献１には、入出力装置からプロセッサへの割込み信号に対する割込制御を検証する割込制御装置に関する技術が開示されている。特許文献１にかかる割込制御装置は、割込み信号の履歴を保持するレジスタを有し、当該割込み信号に伴う割込処理が行われた後に当該レジスタの内容を参照し、当該割込処理の検証を行う。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−３３０７９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１には、複数の割込み信号ごとに発生する様々な種類のエラーが想定されていないという問題点がある。
【０００５】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００６】
一実施の形態によれば、半導体装置は、割込み信号ごとに設定された監視種別に応じて割込み信号の特定の状態の継続時間を監視することで、故障を検出するものである。
【発明の効果】
【０００７】
前記一実施の形態によれば、複数の割込み信号ごとに発生する様々な種類のエラーに基づく故障を検出することができる。
【図面の簡単な説明】
【０００８】
【図１】本実施の形態１にかかる半導体装置の構成を示すブロック図である。
【図２】本実施の形態１にかかるＩＮＴＣモニタの構成を示すブロック図である。
【図３】本実施の形態１にかかる割込み信号のアサート期間を監視する処理の流れを示すフローチャートである。
【図４】本実施の形態１にかかる割込み信号のアサート期間を監視する際のタイミングチャートである。
【図５】本実施の形態１にかかる割込み信号のアサート期間及びネゲート期間を監視する処理の流れを示すフローチャートである。
【図６】本実施の形態１にかかる割込み信号のアサート期間及びネゲート期間を監視する際のタイミングチャートである。
【図７】本実施の形態２にかかるＩＮＴＣモニタの構成を示すブロック図である。
【図８】本実施の形態３にかかるＩＮＴＣモニタの構成を示すブロック図である。
【図９】本実施の形態３にかかる割込み信号のアサート期間及びネゲート期間を監視する処理の流れを示すフローチャートである。
【図１０】本実施の形態３にかかる割込み信号のアサート期間及びネゲート期間を監視する際のタイミングチャートである。
【図１１】本実施の形態４にかかるＩＮＴＣモニタと分周器の構成を示すブロック図である。
【図１２】本実施の形態５にかかる半導体装置の構成を示すブロック図である。
【図１３】本実施の形態５にかかるコントロールレジスタの例を示す図である。
【図１４】本実施の形態５にかかるコントロールフラグ集約レジスタの例を示す図である。
【図１５】本実施の形態６にかかるビデオ処理装置の構成を示すブロック図である。
【図１６】本実施の形態７にかかるタイムトリガシステムの構成を示すブロック図である。
【図１７】本実施の形態７にかかるタイムトリガシステムを利用する電子制御装置の構成を示すブロック図である。
【図１８】本実施の形態８にかかる音声処理装置の構成を示すブロック図である。
【図１９】本実施の形態９にかかる半導体装置の構成を示すブロック図である。
【発明を実施するための形態】
【０００９】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１０】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００１１】
＜実施の形態１＞
図１は、本実施の形態１にかかる半導体装置１００の構成を示すブロック図である。半導体装置１００は、プロセッサ１１１及び１１２と、ＩＮＴＣ（Ｉｎｔｅｒｒｕｐｔ  Ｃｏｎｔｒｏｌｌｅｒ）１２１及び１２２と、割込み監視部１３０と、周辺ＩＰ（Ｉｎｔｅｌｌｅｃｔｕａｌ  Ｐｒｏｐｅｒｔｙ）１４１〜１４４とを備える。プロセッサ１１１は、割込み要求１８１に応じて所定の割込処理を行う制御回路である。また、プロセッサ１１２は、割込み要求１８２に応じて所定の割込処理を行う制御回路である。周辺ＩＰ１４１〜１４４のそれぞれは、割込み信号１６１〜１６４のそれぞれを出力する回路ブロックである。尚、周辺ＩＰ１４１及び１４３は、機能安全レベルが相対的に高いＩＰであるものとする。一方、周辺ＩＰ１４２及び１４４は、周辺ＩＰ１４１及び１４３と比べて機能安全レベルが低いＩＰであるものとする。そのため、周辺ＩＰ１４１及び１４３から出力される割込み信号１６１及び１６３は、監視対象としての優先度が相対的に高いものとする。また、周辺ＩＰ１４２及び１４４から出力される割込み信号１６２及び１６４は、監視対象としての優先度が相対的に低いものとする。そこで、本実施の形態では、一例として、割込み信号１６１及び１６３を監視対象とし、割込み信号１６２及び１６４を監視対象外とする場合について説明する。但し、監視対象としての優先度が低い割込み信号であっても、監視対象として構わない。また、監視対象としての優先度が高い割込み信号であっても、監視対象外として構わない。つまり、本実施の形態では、割込み信号１６１及び１６３のうち少なくとも一方が監視対象であればよい。尚、周辺ＩＰ及び割込み信号の数はこれに限定されない。例えば、周辺ＩＰから出力される割込み信号の数は、数百本の場合がある。また、機能安全レベルが高い周辺ＩＰと低い周辺ＩＰの比率もこれに限定されない。さらに、本実施の形態にかかる半導体装置１００は、監視対象となる割込み信号を出力する周辺ＩＰが少なくとも１つ含まれていればよい。また、本実施の形態にかかるプロセッサの数及びＩＮＴＣの数は、上記に限定されない。
【００１２】
ＩＮＴＣ１２１は、複数の割込み信号を受け付け、プロセッサ１１１に対して割込み要求１８１を出力する割込み制御回路である。ここで、ＩＮＴＣ１２１には、周辺ＩＰ１４１〜１４４のそれぞれからの割込み信号１６１〜１６４の信号線と、エラー制御部１５０からの割込み信号１６９の信号線とが接続されている。但し、ＩＮＴＣ１２１は、割込み信号１６１及び１６３が割込み対象として内部に設定されているものとする。そのため、ＩＮＴＣ１２１は、割込み信号１６１又は１６３を受け付けたことに応じてプロセッサ１１１に対して割込み要求１８１を出力する。言い換えると、ＩＮＴＣ１２１は、割込み対象として設定されていない割込み信号１６２、１６４及び１６９を受け付けたとしても、割込み要求を出力しない。
【００１３】
また、ＩＮＴＣ１２２は、複数の割込み信号を受け付け、プロセッサ１１２に対して割込み要求１８２を出力する割込み制御回路である。ここで、ＩＮＴＣ１２２には、周辺ＩＰ１４１〜１４４のそれぞれからの割込み信号１６１〜１６４の信号線と、エラー制御部１５０からの割込み信号１６９の信号線とが接続されている。但し、ＩＮＴＣ１２２は、割込み信号１６２、１６４及び１６９が割込み対象として内部に設定されているものとする。そのため、ＩＮＴＣ１２２は、割込み信号１６２、１６４又は１６９を受け付けたことに応じてプロセッサ１１２に対して割込み要求１８２を出力する。言い換えると、ＩＮＴＣ１２２は、割込み対象として設定されていない割込み信号１６１及び１６３を受け付けたとしても、割込み要求を出力しない。つまり、ＩＮＴＣ１２１及びＩＮＴＣ１２２の内部の設定の仕方により、ＩＮＴＣ１２１及びＩＮＴＣ１２２における割込み対象の割込み信号の組合せを任意に変更することができる。尚、ＩＮＴＣ１２１は、後述する第１の割込み制御回路の一例である。また、ＩＮＴＣ１２２は、後述する第２の割込み制御回路の一例である。
【００１４】
割込み監視部１３０は、複数の割込み信号のそれぞれに対応する複数の割込み監視回路であるＩＮＴＣモニタ１３１及び１３２と、ＯＲ回路１３０１とを含む。ここでは、ＩＮＴＣモニタ１３１は割込み信号１６１に対応し、ＩＮＴＣモニタ１３２は割込み信号１６３に対応するものとする。ＩＮＴＣモニタ１３１は、割込み信号１６１の状態を監視し、異常を検出した場合には、故障通知信号１７１を出力する。また、ＩＮＴＣモニタ１３２は、割込み信号１６３の状態を監視し、異常を検出した場合には、故障通知信号１７２を出力する。また、ＯＲ回路１３０１は、故障通知信号１７１及び１７２の論理和の結果を故障通知信号１７０として出力する。尚、本実施の形態では上述したように、監視対象の割込み信号は少なくとも１つで構わない。そのため、割込み監視部１３０は、少なくとも１つのＩＮＴＣモニタを有していれば良い。そして、その場合、ＯＲ回路１３０１は不要となる。また、監視対象の割込み信号が３以上の場合には、割込み信号の数に対応する数のＩＮＴＣモニタを有していれば良く、各ＩＮＴＣモニタは、それぞれ各割込み信号に対応していればよい。
【００１５】
ここで、図２を用いてＩＮＴＣモニタ１３１の内部構成を説明する。図２は、本実施の形態１にかかるＩＮＴＣモニタ１３１の構成を示すブロック図である。尚、ＩＮＴＣモニタ１３２の構成はＩＮＴＣモニタ１３１の構成と同等であるため、図示及び説明を省略する。
【００１６】
ＩＮＴＣモニタ１３１は、タイマカウンタ２１０と、制御論理回路２２０と、コントロールレジスタ２３０と、ステータスレジスタ２４０とを備える。タイマカウンタ２１０は、クロック信号ＣＬＫに基づいて割込み信号１６１のアサート状態及びネゲート状態の継続時間を計測する。尚、クロック信号ＣＬＫは、動作クロックを分周した低速な（ｋＨｚレベル）クロック信号としてもよい。動作クロックの周波数に対して監視期間は非常に長い（ミリ秒レベル）ためである。
【００１７】
コントロールレジスタ２３０は、監視期間２３１と、アサートフラグ２３２と、ネゲートフラグ２３３とを設定するための設定回路の一例である。監視期間２３１は、割込み信号１６１のアサート状態及びネゲート状態の継続時間が正常な範囲であることを示す閾値となる時間である。尚、監視期間２３１は、第１の監視期間と第２の監視期間が共通である場合に相当する。アサートフラグ２３２は、ＩＮＴＣモニタ１３１が割込み信号１６１のアサート状態を監視するか否かを示すフラグ情報である。ネゲートフラグ２３３は、ＩＮＴＣモニタ１３１が割込み信号１６１のネゲート状態を監視するか否かを示すフラグ情報である。尚、アサートフラグ２３２及びネゲートフラグ２３３は、対応する割込み信号１６１の監視対象の状態を示す監視種別の一例である。よって、アサートフラグ２３２及びネゲートフラグ２３３をまとめて一つの監視種別情報とし、監視種別情報のＯＮ／ＯＦＦにより、割込み信号１６１のアサート状態及びネゲート状態の双方を監視するか否かを制御してもよい。
【００１８】
ステータスレジスタ２４０は、アサート期間故障フラグ２４１と、ネゲート期間故障フラグ２４２とを保持する保持回路である。アサート期間故障フラグ２４１は、割込み信号１６１のアサート状態の継続時間が監視期間２３１を超えた場合に、制御論理回路２２０により故障を検出したことを示す値（例えば１）が設定される。ネゲート期間故障フラグ２４２は、割込み信号１６１のネゲート状態の継続時間が監視期間２３１を超えた場合に、制御論理回路２２０により故障を検出したことを示す値（例えば１）が設定される。
【００１９】
コントロールレジスタ２３０及びステータスレジスタ２４０は、プロセッサ１１１又は１１２等の外部から、プロセッサＩＯ信号１１１０により設定値の読み書きが行われる。つまり、プロセッサ１１１又は１１２等は、コントロールレジスタ２３０及びステータスレジスタ２４０の各設定値の設定及び参照が可能である。また、ステータスレジスタ２４０のアサート期間故障フラグ２４１及びネゲート期間故障フラグ２４２は、故障通知信号１７１として出力される。
【００２０】
制御論理回路２２０は、コントロールレジスタ２３０にアサートフラグ２３２又はネゲートフラグ２３３が設定された時に、割込み信号１６１の監視を開始する。また、制御論理回路２２０は、割込み信号１６１のアサート状態及びネゲート状態の変化を検出する。そして、制御論理回路２２０は、アサートフラグ２３２及びネゲートフラグ２３３の設定に応じて、割込み信号１６１の状態の変化を検出する度に、アサート状態及びネゲート状態の監視を切り替える。
【００２１】
具体的には、制御論理回路２２０は、監視種別がアサート状態として設定回路に設定された時点で（例えば、プロセッサ１１１等によりアサートフラグ２３２に１が設定された時）、割込み信号１６１がアサート状態であった場合、タイマカウンタ２１０により第１の継続時間の計測を開始する。また、制御論理回路２２０は、監視種別がネゲート状態として設定回路に設定された時点で（例えば、プロセッサ１１１等によりネゲートフラグ２３３に１が設定された時）、割込み信号１６１がネゲート状態であった場合、タイマカウンタ２１０により第２の継続時間の計測を開始する。
【００２２】
制御論理回路２２０は、割込み信号１６１のアサート及びネゲートを検出する制御回路の一例である。そして、制御論理回路２２０は、割込み信号１６１のアサートの開始を検出した場合にタイマカウンタ２１０をクリアし、その後のタイマカウンタ２１０の計測値を第１の継続時間として監視期間２３１と比較する。そして、制御論理回路２２０は、第１の継続時間が監視期間２３１を超える場合に、故障として検出し、ステータスレジスタ２４０のアサート期間故障フラグ２４１に故障を検出したことを示す値（例えば１）を設定する。
【００２３】
また、制御論理回路２２０は、割込み信号１６１のネゲートの開始を検出した場合にタイマカウンタ２１０をクリアし、その後のタイマカウンタ２１０の計測値を第２の継続時間として監視期間２３１と比較する。そして、制御論理回路２２０は、第２の継続時間が監視期間２３１を超える場合に、故障として検出し、ステータスレジスタ２４０のネゲート期間故障フラグ２４２に故障を検出したことを示す値（例えば１）を設定する。
【００２４】
図１に戻り説明を続ける。エラー制御部１５０は、ＩＮＴＣモニタ１３１及び１３２から故障の検出通知を故障通知信号１７０により受け付け、当該検出通知を割込み信号１６９として出力する。但し、エラー制御部１５０は、出力先をＩＮＴＣ１２１及び１２２側か、または、外部端子１５１側へのいずれか又は両方を選択できるものとする。そのため、エラー制御部１５０が外部端子１５１へ故障の検出通知を出力した場合、半導体装置１００の外部の監視装置等により故障を検出することができる。そして、外部端子１５１からのエラー情報に応じて各種フェイルオペレーションを行う。例えば、半導体装置１００をパワーオンリセットする。
【００２５】
尚、故障通知信号１７０は、少なくともいずれかのＩＮＴＣモニタにより故障を検出した旨を示す信号である。但し、故障通知信号１７０は、故障を検出したＩＮＴＣモニタ又は割込み信号を特定する情報を含んでも構わない。さらに、故障通知信号１７０は、故障がアサート期間又はネゲート期間のいずれで検出されたかを特定する情報を含んでも構わない。
【００２６】
ここで、エラー制御部１５０は、割込み信号１６９をＩＮＴＣ１２１及び１２２の両方に出力するが、上述した通り、ＩＮＴＣ１２１は、割込み信号１６９を受け付けたとしても割込み対象として設定されていないため、プロセッサ１１１には割込み要求１８１として通知しない。ここで、ＩＮＴＣ１２１は、監視対象である割込み信号１６１及び１６３を割込み対象として設定している。そして、割込み信号１６９が故障の検出を示す場合、割込み信号１６１又は１６３に関わる系統である周辺ＩＰ１４１及び１４３、ＩＮＴＣ１２１及びプロセッサ１１１のいずれかにおいて異常が発生している可能性がある。よって、プロセッサ１１１において割込み処理が適切に行えない可能性がある。そのため、割込み信号１６１及び１６３が監視対象である場合には、ＩＮＴＣ１２１において割込み信号１６９が割込み対象として設定されていない。一方、ＩＮＴＣ１２２は、割込み信号１６９を受け付けた場合に、割込み対象として設定されているため、プロセッサ１１２へ割込み要求１８２として通知する。そのため、プロセッサ１１２は、割込み要求１８２に応じて、ＩＮＴＣモニタ１３１及び１３２のステータスレジスタ２４０を参照し、異常が検出された割込み信号（又は、その出力元の周辺ＩＰ）と、監視期間を超過したのがアサート期間又はネゲート期間のいずれであるかを特定する。そして、プロセッサ１１２は、特定した情報をＤＲＡＭ（不図示）等に書き込む。そして、特定した情報に基づいてフェイルオペレーションを行う。例えば、特定された周辺ＩＰに対してソフトウェアリセットを行い、故障状態からの復帰を試みても良い。尚、上述したエラー通知処理及び復旧処理は、一例に過ぎない。
【００２７】
エラー通知の他の例としては、ＩＮＴＣモニタ１３１及び１３２が、自己のＩＮＴＣモニタ、割込み信号又は出力元の周辺ＩＰを識別する情報を含めて、ＩＮＴＣ１２１及び１２２の双方へ故障の検出通知を行ってもよい。その場合、ＩＮＴＣ１２１及び１２２は、故障の検出通知を解析して、自身がプロセッサに対してエラー通知を行う対象であるか否かを判定し、エラー通知対象であると判定した場合に、プロセッサへ割込み要求を出力してもよい。これにより、適切なプロセッサにおいて復旧処理等を行うことができる。
【００２８】
または、ＩＮＴＣモニタ１３１及び１３２が、自己のＩＮＴＣモニタ、割込み信号又は出力元の周辺ＩＰを識別する情報を含めて、故障通知信号１７１又は１７２を出力し、エラー制御部１５０が故障通知信号１７０により故障個所のＩＮＴＣモニタ、割込み信号又は出力元の周辺ＩＰを特定できるようにしてもよい。その場合、エラー制御部１５０は、例えば、ＩＮＴＣ１２１及び１２２のそれぞれに設定された割込み信号の定義等を予め有しても良い。そして、エラー制御部１５０は、特定した情報と上記定義等に基づいてＩＮＴＣ１２１又は１２２のいずれかへ割込み信号を出力するようにしてもよい。
【００２９】
尚、本実施の形態では、上述した通り、割込み信号を通知する系統を２つ設けている。すなわち、第１の系統は、周辺ＩＰ１４１及び１４３からの割込み信号１６１及び１６３をＩＮＴＣ１２１へ通知し、ＩＮＴＣ１２１が割込み信号１６１又は１６３に応じてプロセッサ１１１へ割込み要求１８１を通知する系統である。また、第２の系統は、周辺ＩＰ１４２及び１４４からの割込み信号１６２及び１６４並びにエラー制御部１５０からの割込み信号１６９をＩＮＴＣ１２２へ通知し、ＩＮＴＣ１２２が割込み信号１６２、１６４又は１６９に応じてプロセッサ１１２へ割込み要求１８２を通知する系統である。
【００３０】
そして、割込み信号１６１又は１６３において状態の異常が検出された場合には、第１の系統に属する周辺ＩＰ１４１及び１４３、ＩＮＴＣ１２１、プロセッサ１１１、又は、関連する信号線等のいずれかが故障している可能性が高い。そのため、第１の系統の割込み信号１６１又は１６３において異常が検出された場合には、第１の系統を経由せず、異常が検出されていない第２の系統へ故障の検出通知を行う。これにより、以後の復旧処理等を可能にしている。
【００３１】
続いて、割込み信号の異常の検出処理として、アサート期間のみを監視する場合について以下に説明する。図３は、本実施の形態１にかかる割込み信号のアサート期間を監視する処理の流れを示すフローチャートである。尚、以下では、割込み信号１６１を監視するＩＮＴＣモニタ１３１に対する処理について説明する。また、以下の説明では、後述の図４のように開始時において割込み信号１６１がネゲート状態であるものとする。
【００３２】
まず、プロセッサ１１１等は、割込み信号１６１の監視期間を設定する（Ｓ１０１）。具体的には、プロセッサ１１１等は、ＩＮＴＣモニタ１３１のコントロールレジスタ２３０に監視期間２３１を設定する。そして、プロセッサ１１１等は、割込み信号１６１のアサートフラグを設定する（Ｓ１０２）。具体的には、プロセッサ１１１等は、ＩＮＴＣモニタ１３１のコントロールレジスタ２３０のアサートフラグ２３２に１を設定する。尚、ネゲートフラグ２３３には０が設定されたままとする。
【００３３】
その後、ＩＮＴＣモニタ１３１は、割込み信号１６１がアサートするまで待機する（Ｓ１０３）。そして、割込み信号１６１がアサートしたものとする（Ｓ１０４）。この時、ＩＮＴＣモニタ１３１の制御論理回路２２０は、割込み信号１６１がアサートしたことを検出し、タイマカウンタ２１０による第１の継続時間の計測を開始する。そして、ＩＮＴＣモニタ１３１は、割込み信号１６１のアサート期間を監視する（Ｓ１０５）。ＩＮＴＣモニタ１３１の制御論理回路２２０は、割込み信号１６１がネゲートしたか否かを判定する（Ｓ１０６）。制御論理回路２２０が割込み信号１６１のネゲートの開始を検出した場合、制御論理回路２２０は、タイマカウンタ２１０をクリアし（Ｓ１０７）、ステップＳ１０３へ戻る。
【００３４】
一方、ステップＳ１０６において、制御論理回路２２０が割込み信号１６１のネゲートの開始を検出しなかった場合、制御論理回路２２０は、タイマカウンタ２１０がオーバーフローしたか否かを判定する（Ｓ１０８）。具体的には、制御論理回路２２０は、タイマカウンタ２１０の計測値、つまり、割込み信号１６１のアサート状態が継続している時間である第１の継続時間と、監視期間２３１とを比較する。そして、第１の継続時間が監視期間２３１を超えていると判定した場合、制御論理回路２２０は、アサート期間における故障を検出する（Ｓ１０９）。具体的には、制御論理回路２２０は、ステータスレジスタ２４０のアサート期間故障フラグ２４１に１を設定する。一方、ステップＳ１０８において、タイマカウンタ２１０がオーバーフローしていないと判定した場合、ステップＳ１０５へ戻る。
【００３５】
図４は、本実施の形態１にかかる割込み信号のアサート期間を監視する際のタイミングチャートである。ここでは、監視期間２３１として５ミリ秒が設定され、アサートフラグ２３２が設定され、ネゲートフラグ２３３は設定されていないことを示す。そして、割込み信号１６１の１回目のアサート期間は３ミリ秒以内のため監視期間２３１を超えず、タイマカウンタ２１０がクリアされたことを示す。そして、割込み信号１６１の２回目のアサート期間が監視期間２３１である５ミリ秒を超えたため、アサート期間故障フラグ２４１に１が設定されたことを示す。以降、エラー制御部１５０を介して故障の検出通知がなされる。
【００３６】
尚、上述した図４は、割込み信号のアサート期間のみを監視し、かつ、アサートフラグ２３２の設定時、つまり、監視開始時において割込み信号がネゲート状態である場合である。その場合、上述したように、図３のステップＳ１０４で割込み信号がアサートされるまで、ステップＳ１０３のように割込み信号の監視を保留する。
【００３７】
これに対して、割込み信号のアサート期間のみを監視し、かつ、アサートフラグ２３２の設定時において、割込み信号がアサート状態である場合にも本実施形態は適用可能である。その場合、アサートフラグ２３２の設定直後に、ＩＮＴＣモニタ１３１の制御論理回路２２０は、割込み信号１６１がアサートしていることを検出し、タイマカウンタ２１０による第１の継続時間の計測を開始する。そのため、半導体装置１００の動作中にアサートフラグ２３２を設定したとしても、即時に監視を開始でき、より速く故障を検出できる。
【００３８】
また、本実施形態では、割込み信号のネゲート期間のみを監視してもよい。この場合、ネゲートフラグ２３３の設定時、つまり、監視開始時において割込み信号がアサート状態又はネゲート状態である場合があり得る。例えば、ネゲートフラグ２３３の設定時において割込み信号がアサート状態である場合、割込み信号がネゲートされるまで割込み信号の監視を保留することとなる。一方、ネゲートフラグ２３３の設定時において割込み信号がネゲート状態である場合、ネゲートフラグ２３３の設定直後に、ＩＮＴＣモニタ１３１の制御論理回路２２０は、割込み信号１６１がネゲートしていることを検出し、タイマカウンタ２１０による第２の継続時間の計測を開始する。そのため、半導体装置１００の動作中にネゲートフラグ２３３を設定したとしても、即時に監視を開始でき、より速く故障を検出できる。
【００３９】
次に、割込み信号の異常の検出処理として、アサート期間及びネゲート期間を監視する場合について以下に説明する。図５は、本実施の形態１にかかる割込み信号のアサート期間及びネゲート期間を監視する処理の流れを示すフローチャートである。尚、以下の説明では、後述の図６のように開始時において割込み信号１６１がネゲート状態であるものとする。
【００４０】
プロセッサ１１１等は、割込み信号１６１の監視期間を設定する（Ｓ１０１）。そして、プロセッサ１１１等は、割込み信号１６１のアサートフラグを設定する（Ｓ１０２）。具体的には、プロセッサ１１１等は、ＩＮＴＣモニタ１３１のコントロールレジスタ２３０のアサートフラグ２３２に１を設定する。また、プロセッサ１１１等は、割込み信号１６１のネゲートフラグを設定する（Ｓ１１０）。具体的には、プロセッサ１１１等は、ＩＮＴＣモニタ１３１のコントロールレジスタ２３０のネゲートフラグ２３３に１を設定する。
【００４１】
続いて、アサートフラグ２３２及びネゲートフラグ２３３が１に設定された時点から、ＩＮＴＣモニタ１３１は、割込み信号１６１の監視を開始する（Ｓ１１１）。この時、上述したように、割込み信号１６１がネゲート状態であるため、ＩＮＴＣモニタ１３１の制御論理回路２２０は、割込み信号１６１がネゲート状態であることを検出し、タイマカウンタ２１０による第２の継続時間の計測を開始する。尚、以下では、ＩＮＴＣモニタ１３１に注目して説明する。
【００４２】
ＩＮＴＣモニタ１３１の制御論理回路２２０は、割込み信号１６１がアサートしたか否かを判定する（Ｓ１１２）。制御論理回路２２０が割込み信号１６１のアサートの開始を検出しなかった場合、制御論理回路２２０は、タイマカウンタ２１０がオーバーフローしたか否かを判定する（Ｓ１１４）。具体的には、制御論理回路２２０は、タイマカウンタ２１０の計測値、つまり、割込み信号１６１のネゲート状態が継続している時間である第２の継続時間と、監視期間２３１とを比較する。そして、第２の継続時間が監視期間２３１を超えていると判定した場合、制御論理回路２２０は、ネゲート期間における故障を検出する（Ｓ１１５）。具体的には、制御論理回路２２０は、ステータスレジスタ２４０のネゲート期間故障フラグ２４２に１を設定する。一方、ステップＳ１１４において、タイマカウンタ２１０がオーバーフローしていないと判定した場合、ステップＳ１１１へ戻る。
【００４３】
また、ステップＳ１１２において、制御論理回路２２０が割込み信号１６１のアサートの開始を検出した場合、制御論理回路２２０は、タイマカウンタ２１０をクリアし（Ｓ１１３）、タイマカウンタ２１０による第１の継続時間の計測を開始する。そして、ＩＮＴＣモニタ１３１は、割込み信号１６１のアサート期間を監視する（Ｓ１０５）。ＩＮＴＣモニタ１３１の制御論理回路２２０は、割込み信号１６１がネゲートしたか否かを判定する（Ｓ１０６）。制御論理回路２２０が割込み信号１６１のネゲートの開始を検出した場合、制御論理回路２２０は、タイマカウンタ２１０をクリアし（Ｓ１０７）、ステップＳ１１１へ戻る。
【００４４】
一方、ステップＳ１０６において、制御論理回路２２０が割込み信号１６１のネゲートの開始を検出しなかった場合、上述した図３と同様である。
【００４５】
図６は、本実施の形態１にかかる割込み信号のアサート期間及びネゲート期間を監視する際のタイミングチャートである。ここでは、監視期間２３１として５ミリ秒が設定され、アサートフラグ２３２が設定され、その後、ネゲートフラグ２３３が設定されたことを示す。そして、ネゲートフラグ２３３の設定直後から、ネゲート期間の計測が開始し、監視期間２３１内でアサートし、アサート期間も監視期間２３１内でネゲートしたことを示す。その後、割込み信号１６１の２回目のネゲート期間が監視期間２３１である５ミリ秒を超えたため、ネゲート期間故障フラグ２４２に１が設定されたことを示す。以降、エラー制御部１５０を介して故障の検出通知がなされる。
【００４６】
尚、上述した図６は、割込み信号のアサート期間及びネゲート期間の両方を監視し、かつ、アサートフラグ２３２及びネゲートフラグ２３３の設定時、つまり、監視開始時において割込み信号がネゲート状態である場合である。これに対して、割込み信号のアサート期間及びネゲート期間の両方を監視し、かつ、アサートフラグ２３２及びネゲートフラグ２３３の設定時において、割込み信号がアサート状態である場合にも本実施形態は適用可能である。その場合、アサートフラグ２３２の設定直後、かつ、ネゲートフラグ２３３の設定前に、ＩＮＴＣモニタ１３１の制御論理回路２２０は、割込み信号１６１がアサートしていることを検出し、タイマカウンタ２１０による第１の継続時間の計測を開始する。そのため、半導体装置１００の動作中にアサートフラグ２３２及びネゲートフラグ２３３を設定したとしても、即時に監視を開始でき、より速く故障を検出できる。
【００４７】
ここで、割込み信号のアサート期間又はネゲート期間が所定の監視期間を超えた場合には、当該割込み信号の出力元の周辺ＩＰや出力先の割込み制御回路又はプロセッサといった、一連の系統のいずれかに故障があるということができる。
【００４８】
そして、本実施の形態では、コントロールレジスタ２３０及びタイマカウンタ２１０を、割込み信号ごとに設けるため、各割り込み信号の特長を反映して、適切な監視期間を設定することができる。例えば、テレビやビデオの信号処理であれば、３０ｆｐｓでリアルタイム性のあるデータを処理する必要がある。例えば１フレーム毎に必ずアサートされるべき割り込み信号があれば、１フレーム相当以上の時間をコントロールレジスタ２３０の監視期間２３１に設定することにより、割り込み制御の異常を速やかに検出できる。
【００４９】
つまり、本実施の形態により、割込み信号ごとにＩＮＴＣモニタを設け、割込み信号ごとに監視種別及び監視期間の設定が可能であるため、複数の割込み信号ごとに発生する様々な種類のエラーに基づく故障を検出することができる。
【００５０】
尚、上述した本実施の形態は、以下のように表現することもできる。すなわち、半導体装置１００は、第１のプロセッサ１１１と、複数の回路ブロック（周辺ＩＰ１４１及び１４３）と、第１の割込み制御回路（ＩＮＴＣ１２１）と、少なくとも１つの割込み監視回路（ＩＮＴＣモニタ１３１又は１３２）と、を備える。ここで、第１のプロセッサ１１１は、割込み要求に応じて所定の割込処理を行う。複数の回路ブロックは、複数の割込み信号１６１及び１６３のそれぞれを出力する。第１の割込み制御回路は、複数の回路ブロックのそれぞれから複数の割込み信号を受け付け、第１のプロセッサ１１１に対して割込み要求１８１を出力する。少なくとも１つの割込み監視回路は、複数の割込み信号１６１及び１６３のうち少なくとも１つに対応し、対応する割込み信号の監視対象の状態を示す監視種別（アサートフラグ２３２及びネゲートフラグ２３３）並びに第１及び第２の監視期間（監視期間２３１）を設定するための設定回路（コントロールレジスタ２３０）を有する。そして、割込み監視回路は、監視種別が割込み信号のアサート状態を示す場合、アサート状態を監視し、アサート状態が継続している第１の継続時間が第１の監視期間を超える場合に、故障として検出する。また、割込み監視回路は、監視種別が割込み信号のネゲート状態を示す場合、ネゲート状態を監視し、ネゲート状態が継続している第２の継続時間が第２の監視期間を超える場合に、故障として検出するものである。これにより、割込み信号ごとに監視種別及び監視期間をきめ細かく設定することができ、割込み信号に応じて発生する様々な種類のエラーを故障として検出することができる。
【００５１】
また、割込み監視回路は、自身が有する設定回路に監視種別が設定された時に、割込み信号の監視を開始し、割込み信号の状態の変化を検出する度に、アサート状態及びネゲート状態の監視を切り替えることが望ましい。これにより、割込み信号の状態に応じた適切な監視期間により故障を検出できる。
【００５２】
さらに、割込み監視回路は、監視種別がアサート状態として設定回路に設定された時点で、割込み信号がアサート状態であった場合、第１の継続時間の計測を開始し、監視種別がネゲート状態として設定回路に設定された時点で、割込み信号がネゲート状態であった場合、第２の継続時間の計測を開始することが望ましい。これにより、監視種別の設定に応じて即時に監視を開始できるため、早期に故障を検出可能である。
【００５３】
また、半導体装置は、第２のプロセッサ１１２と、割込み監視回路から故障の検出通知を受け付け、検出通知を割込み信号１６９として出力するエラー制御部１５０と、エラー制御部１５０からの割込み信号１６９を受け付け、第２のプロセッサ１１２に対して割込み要求１８２として出力する第２の割込み制御回路（ＩＮＴＣ１２２）と、をさらに備えることが望ましい。これにより、ある割込み信号から故障が検出された場合に、割込み要求を通知するためのＩＮＴＣ及びプロセッサの複数の系統のうち、故障が検出されていない系統を用いて、故障を通知することができる。よって、正確に故障原因の解析を行うことができる。
【００５４】
また、割込み監視回路は、動作クロックに基づいて第１の継続時間及び第２の継続時間を計測するタイマカウンタ２１０と、割込み信号のアサート及びネゲートを検出する制御回路（制御論理回路２２０）と、をさらに有し、制御回路は、アサートを検出した場合にタイマカウンタ２１０をクリアし、その後のタイマカウンタ２１０の計測値を第１の継続時間として第１の監視期間と比較し、ネゲートを検出した場合にタイマカウンタ２１０をクリアし、その後のタイマカウンタ２１０の計測値を第２の継続時間として第２の監視期間と比較することが望ましい。これにより、アサート及びネゲートの継続時間を交互に計測することで、適切に故障を検出することができる。
【００５５】
ここで、複数の割込み信号は、第１の割込み信号１６１と第２の割込み信号１６３とを含みものとする。そして、半導体装置は、第１の割込み信号１６１に対応する第１の割込み監視回路（ＩＮＴＣモニタ１３１）と、第２の割込み信号１６３に対応する第２の割込み監視回路（ＩＮＴＣモニタ１３２）と、を備えることが望ましい。これにより、複数の割込み信号のそれぞれについて適切に故障を検出できる。
【００５６】
さらに、第１の割込み監視回路は、第１の割込み信号の監視により故障を検出した場合に第１の故障通知信号１７１を出力し、第２の割込み監視回路は、第２の割込み信号の監視により故障を検出した場合に第２の故障通知信号１７２を出力するものとする。そして、半導体装置は、第１の故障通知信号１７１及び第２の故障通知信号１７２の論理和を第３の故障通知信号１７０として出力するＯＲ回路１３０１をさらに備えるとよい。これにより、複数の割込み信号を総合的に監視及び故障検出をすることができる。
【００５７】
また、半導体装置は、複数の割込み信号の総数未満のＭ（Ｍは正の整数。）個の割込み監視回路を備え、Ｍ個の割込み監視回路のそれぞれは、複数の割込み信号のうちＭ個の信号のそれぞれと対応するものとする。これにより、多数の割込み信号のうちより一部の信号の故障を優先して検出できるため、柔軟な監視を実現できる。
【００５８】
さらに、複数の回路ブロックは、Ｍ個の第１の回路ブロックと、当該第１の回路ブロックと比べて機能安全レベルが低い第２の回路ブロックとを含むものとする。そして、Ｍ個の割込み監視回路は、Ｍ個の第１の回路ブロックのそれぞれから出力される割込み信号のそれぞれに対応するものとする。これにより、機能安全の観点から重要な割込み信号のみを監視対象とすることで、回路規模を抑制できる。
【００５９】
＜実施の形態２＞
本実施の形態２は、上述した実施の形態１の改良例である。本実施の形態２では、ＩＮＴＣモニタのコントロールレジスタにリセットフラグを格納する領域を設けたものである。リセットフラグは、ユーザが任意にタイマカウンタ値をリセットするために設定する値である。尚、本実施の形態２では、ＩＮＴＣモニタ以外の構成は、上述した実施の形態１と同等であるため、それらの図示及び説明を省略する。
【００６０】
図７は、本実施の形態２にかかるＩＮＴＣモニタ１３１ａの構成を示すブロック図である。ＩＮＴＣモニタ１３１ａは、図２と比べて、コントロールレジスタ２３０にリセットフラグ２３４が追加されたものである。例えば、プロセッサ１１１等は、任意のタイミングでプロセッサＩＯ信号１１１０を介してコントロールレジスタ２３０のリセットフラグ２３４を１に設定する。ＩＮＴＣモニタ１３１ａは、リセットフラグ２３４に１が設定されると、タイマカウンタ２１０の測定値をクリアする。
【００６１】
例えば、同時に複数の割込みが発生したが、一方の割込み信号が他方よりも割込み処理の優先度が低かった場合などに、当初設定した監視期間よりも長く遅延させる必要が生じたものとする。この場合、当該割込み信号が遅延することは、実際には故障ではないにもかかわらず、故障として検出されてしまうおそれがある。そのような場合に、当該割込み信号を監視するＩＮＴＣモニタにリセットフラグを設定することで、一旦、タイマカウンタ２１０をクリアして、再度、カウントを開始させることで、当該割込み信号の故障の検出を保留させることができる。
【００６２】
＜実施の形態３＞
本実施の形態３は、上述した実施の形態１又は２の改良例である。本実施の形態３は、ＩＮＴＣモニタの監視期間をアサート用とネゲート用に個別に設定できるようにしたものである。尚、本実施の形態３では、ＩＮＴＣモニタ以外の構成は、上述した実施の形態１と同等であるため、それらの図示及び説明を省略する。また、本実施の形態３は、実施の形態２に適用しても良い。
【００６３】
図８は、本実施の形態３にかかるＩＮＴＣモニタ１３１ｂの構成を示すブロック図である。ＩＮＴＣモニタ１３１ｂは、図２と比べて、コントロールレジスタ２３０内の監視期間２３１がアサート用監視期間２３１１とネゲート用監視期間２３１２とに分けられたものである。アサート用監視期間２３１１は第１の監視期間の一例であり、ネゲート用監視期間２３１２は第２の監視期間の一例である。そして、アサート用監視期間２３１１とネゲート用監視期間２３１２と同一の期間であっても、異なる期間であっても構わない。
【００６４】
図９は、本実施の形態３にかかる割込み信号のアサート期間及びネゲート期間を監視する処理の流れを示すフローチャートである。尚、以下の説明では、後述の図１０のように開始時において割込み信号１６１がネゲート状態であるものとする。また、以下では上述した図５と同等の処理については説明を省略する。
【００６５】
まず、ステップＳ１０１ａにおいて、プロセッサ１１１等は、割込み信号１６１のアサート用及びネゲート用の監視期間を個別に設定する。具体的には、プロセッサ１１１等は、ＩＮＴＣモニタ１３１ｂのコントロールレジスタ２３０にアサート用監視期間２３１１及びネゲート用監視期間２３１２を設定する。
【００６６】
その後、ステップＳ１１２において、制御論理回路２２０が割込み信号１６１のアサートの開始を検出しなかった場合、制御論理回路２２０は、ネゲート用監視期間２３１２と比較して、タイマカウンタ２１０がオーバーフローしたか否かを判定する（Ｓ１１４ａ）。具体的には、制御論理回路２２０は、第２の継続時間と、ネゲート用監視期間２３１２とを比較する。そして、第２の継続時間がネゲート用監視期間２３１２を超えていると判定した場合、制御論理回路２２０は、ネゲート期間における故障を検出する（Ｓ１１５）。一方、ステップＳ１１４ａにおいて、タイマカウンタ２１０がオーバーフローしていないと判定した場合、ステップＳ１１１へ戻る。
【００６７】
また、ステップＳ１０６において、制御論理回路２２０が割込み信号１６１のネゲートの開始を検出しなかった場合、制御論理回路２２０は、アサート用監視期間２３１１と比較して、タイマカウンタ２１０がオーバーフローしたか否かを判定する（Ｓ１０８ａ）。具体的には、制御論理回路２２０は、第１の継続時間と、アサート用監視期間２３１１とを比較する。そして、第１の継続時間がアサート用監視期間２３１１を超えていると判定した場合、制御論理回路２２０は、アサート期間における故障を検出する（Ｓ１０９）。一方、ステップＳ１０８ａにおいて、タイマカウンタ２１０がオーバーフローしていないと判定した場合、ステップＳ１０５へ戻る。
【００６８】
図１０は、本実施の形態３にかかる割込み信号のアサート期間及びネゲート期間を監視する際のタイミングチャートである。ここでは、アサート用監視期間２３１１として３ミリ秒、ネゲート用監視期間２３１２として７ミリ秒が設定され、アサートフラグ２３２が設定され、その後、ネゲートフラグ２３３が設定されたことを示す。そして、ネゲート期間は、６ミリ秒となってもネゲート用監視期間２３１２未満であるため、故障としては検出されない。一方、アサート期間は、３ミリ秒を経過し、アサート用監視期間２３１１を超えたため、アサート期間故障フラグ２４１に１が設定されたことを示す。以降、エラー制御部１５０を介して故障の検出通知がなされる。
【００６９】
よって、本実施の形態は、以下のように表現することもできる。すなわち、プロセッサ等が設定回路に監視種別並びに第１及び第２の監視期間を設定する。そして、割込み監視回路は、監視種別の設定に応じて割込み信号の監視を開始し、監視種別が割込み信号のアサート状態を示す場合、当該アサート状態を監視し、アサート状態が継続している第１の継続時間と第１の監視期間とを比較し、当該第１の継続時間が第１の監視期間を超える場合に、故障として検出する。また、割込み監視回路は、監視種別が割込み信号のネゲート状態を示す場合、当該ネゲート状態を監視し、ネゲート状態が継続している第２の継続時間が第２の監視期間を超える場合に、故障として検出する。このように、割込み信号のアサート期間とネゲート期間とに個別の監視期間を設定することで、割込み信号の種類に応じて柔軟に監視期間を設定し、適切に故障を検出することができる。
【００７０】
＜実施の形態４＞
本実施の形態４は、上述した実施の形態１〜３の改良例である。上述した実施の形態１〜３では、複数のＩＮＴＣモニタに対して１つの分周器（不図示）が接続されることを想定していた。そのため、クロック信号の周期が共通していた。しかしながら、割込み信号によっては、監視期間として長い期間の設定を要するものと、相対的に短い期間の設定で十分なものがある。よって、周期が共通することによる監視期間の制約があるといえる。そこで、本実施の形態４では、各ＩＮＴＣモニタに用いるクロック信号の周期を異なるようにするものである。
【００７１】
すなわち、本実施の形態４にかかる半導体装置は、複数の割込み信号のうち２以上の信号のそれぞれに対応する２以上の割込み監視回路と、動作クロックに対して異なる分周比により分周する複数の分周器と、を備えるものである。そして、２以上の割込み監視回路のそれぞれは、複数の分周器の少なくとも一部から供給される動作クロックにより動作する。これにより、割込み監視回路ごとに動作クロックを異なるものとすることができ、監視期間を柔軟に調整することができる。さらに、本実施の形態４にかかる半導体装置は、複数の分周器のそれぞれから供給される動作クロックの供給先を２以上の割込み監視回路の中から選択する選択回路を備えることが望ましい。これにより、監視期間と分周比の組合せにより、きめ細かい監視期間の調整が可能となる。
【００７２】
図１１は、本実施の形態４にかかるＩＮＴＣモニタと分周器の構成を示すブロック図である。ここでは、ＩＮＴＣモニタ１３１から１３３の３つの割込み監視回路を用いるものとする。そして、例えば、分周器１９１は１００Ｈｚ、分周器１９２は１ＫＨｚ、分周器１９３は１０ＫＨｚのクロック信号を出力するように分周比が設定されているものとする。但し、割込み監視回路は少なくとも２以上であればよい。また、分周器は少なくとも２以上であればよい。また、分周比は上記に限定されない。そして、選択論理１９０は、分周器とＩＮＴＣモニタの組合せを信号ＳＥＬに基づいて、分周器１９１〜１９３と、ＩＮＴＣモニタ１３１〜１３３との接続の組合せを任意に選択することが可能な選択回路の一例である。そのため、例えば、プロセッサ１１１等が選択論理１９０に対して分周器とＩＮＴＣモニタの組合せを信号ＳＥＬにより指定することで、任意の組合せで分周器とＩＮＴＣモニタとを接続することができる。これにより、分周器における分周比の設定、ＩＮＴＣモニタにおける監視期間の設定、及び、選択論理１９０における組合せの指定により、よりきめ細かな監視期間の調整が可能となる。
【００７３】
＜実施の形態５＞
本実施の形態５は、上述した実施の形態１〜４の応用例である。
半導体装置の機能安全を担保するための故障検出の手段として、例えば、製造時に不良チップを選別するためのスキャンテストや、半導体装置がユーザシステムに組み込まれた後、起動時に実施されるＰｏｗｅｒ−Ｏｎ  Ｓｅｌｆ  Ｔｅｓｔ（ＰＯＳＴ）が挙げられる。特に、ＰＯＳＴは、半導体装置の実使用前に毎回、実施される。ここで、半導体装置内の検査対象回路の規模が大きく、テスト時間の増大が見込まれる場合には、テスト時間を短縮するために、複数の回路を機能ごとにグループ化した回路ブロック（階層）単位でＰＯＳＴを実施し、複数階層を並列テストする等の工夫をすることが考えられる。但し、ＰＯＳＴには、階層間を跨ぐ信号についてはテストすることができないため、階層間を跨ぐ信号に関わる故障検出率が低下するという課題がある。
【００７４】
そこで、上述した本実施の形態１等を適用することで、半導体装置の動作中にＰＯＳＴでは検出できない部分の故障を検出できる。すなわち、実施の形態１等にかかるＩＮＴＣモニタは、周辺ＩＰからＩＮＴＣへの割込み信号を監視するものであるため、周辺ＩＰとＩＮＴＣとが別階層である場合には、その割込み信号が階層間を跨ぐ信号といえる。よって、ＩＮＴＣモニタが当該割込み信号を監視することにより、ＰＯＳＴでは検出できない故障を検出することができる。
【００７５】
また、機能安全の観点から、半導体装置の動作中に所定期間ごとに割込み信号の監視設定が適切に行われているかをチェックする必要がある。その際には、ＩＮＴＣモニタ内のコントロールレジスタのアサートフラグ及びネゲートフラグの値を読み出し、読み出した値を所定の期待値と比較することで、割込み信号の監視設定が適切にされているかを検証可能である。
【００７６】
ここで、近年の半導体装置における割込み信号の数は、例えば、数百本等であり、多数である。そして、実施の形態１等にかかるＩＮＴＣモニタ及びそのコントロールレジスタは、割込み信号ごとに設けられているため、アサートフラグ及びネゲートフラグの値の全ての読み出し処理には、相当の処理時間を要する。しかし、上述した通り、当該読み出し処理は所定期間内に行わなければならず、また、ＩＮＴＣモニタ以外の機能安全向け回路についても大量の設定値を検証する必要がある。そのため、短時間で処理できる方が望ましい。
【００７７】
そこで、本実施の形態５では、割込み信号ごとに設けられた各コントロールレジスタ内のアサートフラグ及びネゲートフラグの値に対して、横断的に参照できるようにアドレスを定義する。具体的には、アサートフラグ及びネゲートフラグについて、コントロールレジスタ間で連続した参照アドレスを付与する。例えば、第１のコントロールレジスタのアサートフラグに参照アドレス１、ネゲートフラグに参照アドレス１の次の参照アドレス２を付与し、第２のコントロールレジスタのアサートフラグに参照アドレス２の次の参照アドレス３、ネゲートフラグに参照アドレス３の次の参照アドレス４を付与する。そして、プロセッサ等から割込み監視部へのアクセス要求として、開始アドレスを参照アドレス１、サイズを４としたものとする。この場合、当該アクセス要求に応じて参照アドレス１から参照アドレス４までの値が読み出される。つまり、１回のアクセス要求で、第１及び第２のコントロールレジスタのアサートフラグ及びネゲートフラグの値を読み出すことができる。また、このような参照アドレスを付与することにより、割込み監視部の外部であるプロセッサ等からは、少なくとも２以上のコントロールレジスタからアサートフラグ及びネゲートフラグのみを集約した仮想的なレジスタ（仮想レジスタ）として扱うことができる。仮想レジスタは、例えば、コントロールレジスタを構成する各フリップフロップのうち、アサートフラグ及びネゲートフラグを保持するフリップフロップについて、ＩＮＴＣモニタを横断的に参照できるように、連続した参照アドレスを付与して、半導体装置に設定することで実現可能である。ここで、仮想レジスタの数は、コントロールレジスタの数よりも少ない。そのため、アサートフラグ及びネゲートフラグの設定時には、プロセッサ等は、該当する各コントロールレジスタにアクセスするための第１のアドレスに対して個別に設定要求を行う。一方、アサートフラグ及びネゲートフラグの設定確認時には、プロセッサ等は、仮想レジスタにアクセスするための第２のアドレス（参照アドレス）に対して参照要求を行う。上述したように、仮想レジスタの数は、全コントロールレジスタの数（＝監視対象の割込み信号の数）より少ないため、全てのアサートフラグ及びネゲートフラグの値の読み出し処理時間を短縮することができる。
【００７８】
図１２は、本実施の形態５にかかる半導体装置３００の構成を示すブロック図である。半導体装置３００は、階層３１０と、階層３２０と、階層３３０と、階層３４０と、階層３５０とを備える。階層３１０は、複数のＣＰＵコア３１１、・・・３１ｉ（ｉは２以上の整数。）を含む回路ブロック（以下、「回路階層」という。）である。階層３２０は、複数のＣＰＵコア３２１、・・・３２ｊ（ｊは２以上の整数。）を含む回路階層である。階層３３０は、ＩＮＴＣ１２１及び１２２、割込み監視部３６０、周辺ＩＰ１４１及び１４２、並びに、エラー制御部１５０を含む回路階層である。階層３４０は、周辺ＩＰ１４２及び１４４を含む回路階層である。階層３５０は、周辺ＩＰ１４５及び１４６を含む回路階層である。尚、ＣＰＵコアを含む階層３１０及び３２０は３以上であっても構わない。また、階層３３０、３４０及び３５０が有する周辺ＩＰの数及び種類はこれらに限定されない。さらに、階層３４０及び３５０以外に周辺ＩＰを含む回路階層が存在しても構わない。
【００７９】
ここで、ＩＮＴＣ１２１は、割込み信号１６１、１６３及び１６５が割込み対象として内部に設定されているものとする。また、ＩＮＴＣ１２２は、割込み信号１６２、１６４、１６６及び１６９が割込み対象として内部に設定されているものとする。
【００８０】
割込み監視部３６０は、ＩＮＴＣモニタ３０００、３００１、・・・３００ｎ（ｎは２以上の整数。）と、ＯＲ回路３６１と、レジスタアクセス制御回路３６２とを含む。ＩＮＴＣモニタ３０００は割込み信号１６１に対応し、ＩＮＴＣモニタ３００１は割込み信号１６３に対応し、ＩＮＴＣモニタ３００ｎは割込み信号１６５に対応するものとする。ＯＲ回路３６１は、ＩＮＴＣモニタ３０００〜３００ｎのそれぞれからの故障通知信号の論理和の結果を故障通知信号１７０として出力する。
【００８１】
ここで、半導体装置３００には、ＩＮＴＣモニタ３０００〜３００ｎのそれぞれが有する各コントロールレジスタへアクセスするための第１のアドレスが定義されている。つまり、第１のアドレスは、コントロールレジスタ単位でアクセスする際に適したアドレスである。また、半導体装置３００には、各コントロールレジスタ内で監視種別であるアサートフラグ及びネゲートフラグへアクセスするための第２のアドレスが定義されている。第２のアドレスは、割込み信号ごとに分散して格納されているアサートフラグ及びネゲートフラグを連続したアドレスで読み出すために定義された参照アドレスである。
【００８２】
レジスタアクセス制御回路３６２は、階層３１０又は３２０内のＣＰＵコア等からのアクセス要求に応じて、指定されたアドレスに対する読み出し又は書き込みのアクセス処理を制御する。尚、レジスタアクセス制御回路３６２は、アクセス先のアドレスを物理アドレスに変換するデコーダ等で実現可能である。例えば、ＣＰＵコア等は、レジスタアクセス制御回路３６２に対して、第１のアドレスを指定し、アサートフラグ及びネゲートフラグの値を設定するための書込み要求を送信する。この場合、レジスタアクセス制御回路３６２は、第１のアドレスで特定されるコントロールレジスタのアサートフラグ及びネゲートフラグの格納領域に、書込み要求で指定された値を設定する。また、ＣＰＵコア等は、レジスタアクセス制御回路３６２に対して、第２のアドレス及び読み出しサイズを指定し、アサートフラグ及びネゲートフラグの読み出し要求を送信する。この場合、レジスタアクセス制御回路３６２は、第２のアドレスで特定されるコントロールレジスタのアサートフラグから、読み出しサイズ分のアドレスまでのデータを読み出す。この際、第２のアドレスでは、複数のコントロールレジスタのうちアサートフラグ及びネゲートフラグの格納領域に対して連続したアドレスが付与されているため、当該読み出し要求より、アサートフラグ及びネゲートフラグだけを読み出すことができる。
【００８３】
図１３は、本実施の形態５にかかるコントロールレジスタの例を示す図である。ここでは、監視対象の割込み信号数が３２０本、アサートフラグが１ビット、ネゲートフラグが１ビット、プロセッサ１１１等から一度に読み出し可能なレジスタのビット数が３２ビットであるものとする。そのため、ＩＮＴＣモニタはＩＮＴＣモニタ３０００〜３３１９の３２０個、そして、コントロールレジスタもコントロールレジスタ０＿４０００〜コントロールレジスタ３１９＿４３１９の３２０個存在することとなる。そして、各コントロールレジスタ内には、アサートフラグ及びネゲートフラグがそれぞれ１ビットずつ設定されている。尚、アサートフラグ、ネゲートフラグ、アサート用監視期間、及び、ネゲート用監視期間の格納位置や格納サイズは、図１３の例に限定されない。また、図１３は、上述した第１のアドレスでアクセスする場合に、プロセッサ１１１等から認識されるレジスタの概念を示すものといえる。つまり、例えば、コントロールレジスタ０＿４０００のアサートフラグ０からネゲート用監視期間までの３２ビット分のフリップフロップに連続した第１のアドレスが付与されている。以降、コントロールレジスタ１＿４００１のアサートフラグ１からネゲート用監視期間までや、コントロールレジスタ３１９＿４３１９のアサートフラグ３１９からネゲート用監視期間までについても、それぞれ３２ビット分のフリップフロップに連続した第１のアドレスが付与されている。尚、コントロールレジスタ間では、アドレスが連続している必要はない。
【００８４】
そのため、プロセッサ１１１等から第１のアドレスを指定して各コントロールレジスタ内のアサートフラグ及びネゲートフラグの読み出し処理を行うには、３２０回の読み出し処理が必要となる。そのため、上述した割込み信号の監視設定の確認処理には、３２０回分の読み出し処理時間を要する。そこで、本実施の形態では、以下に示すように、仮想レジスタに対して読み出し処理を行う。
【００８５】
図１４は、本実施の形態５にかかる仮想レジスタ３６３の例を示す図である。図１４は、上述した第２のアドレスでアクセスする場合に、プロセッサ１１１等から認識されるレジスタの概念を示すものといえる。仮想レジスタ３６３は、図１４の例では、２０個のコントロールフラグ確認レジスタ０＿３６２００〜コントロールフラグ確認レジスタ１９＿３６２１９で表現できる。コントロールフラグ確認レジスタ０＿３６２００には、コントロールレジスタ０＿４０００のアサートフラグ０及びネゲートフラグ０のフリップフロップへの参照が設定されている。同様に、コントロールレジスタ１＿４００１のアサートフラグ１及びネゲートフラグ１、・・・コントロールレジスタ１５＿４０１５のアサートフラグ１５及びネゲートフラグ１５のフリップフロップへの参照が設定されている。つまり、コントロールフラグ確認レジスタ０＿３６２００は、コントロールレジスタ０＿４０００からコントロールレジスタ１５＿４０１５のうちアサートフラグ及びネゲートフラグの設定値を集約して保持しているものとみなすことができる。そのため、例えば、コントロールフラグ確認レジスタ０＿３６２００に対するアクセス処理は、コントロールレジスタ０＿４０００からコントロールレジスタ１５＿４０１５のうちアサートフラグ及びネゲートフラグに対するアクセスとなる。そして、例えば、コントロールフラグ確認レジスタ０＿３６２００のアサートフラグ０からネゲートフラグ１５までの３２ビット分のフリップフロップに連続した第２のアドレスが付与されている。以降、コントロールフラグ確認レジスタ１＿３６２０１のアサートフラグ１６からネゲートフラグ３１までや、コントロールフラグ確認レジスタ１９＿３６２１９のアサートフラグ３０４からネゲートフラグ３１９までについても、それぞれ３２ビット分のフリップフロップに連続した第２のアドレスが付与されている。尚、コントロールレジスタ間では、アドレスが連続している必要はない。
【００８６】
そのため、プロセッサ１１１等から第２のアドレスを指定して各コントロールフラグ確認レジスタ内のアサートフラグ及びネゲートフラグの読み出し処理を行うことで、読み出し処理が２０回で済むことになる。よって、コントロールフラグ集約レジスタに対して読み出し処理を行うことにより、各コントロールレジスタに対して読み出し処理を行うことと比べて、読み出し処理時間を短縮することができる。
【００８７】
以上のことから、本実施の形態は、以下のように表現することもできる。すなわち、半導体装置は、複数の割込み信号のうち２以上の信号のそれぞれに対応する２以上の割込み監視回路を備える。そして、半導体装置には、２以上の割込み監視回路のそれぞれが有する各設定回路に設定された監視種別をまとめて参照するための参照アドレスが設定される。そして、半導体装置は、参照アドレスに対するアクセス要求に応じて、各設定回路から監視種別を読み出し、当該読み出した監視種別をまとめて当該アクセス要求の要求元へ応答するアクセス制御回路（レジスタアクセス制御回路３６２）をさらに備える。これにより、割込み信号ごとに対応する複数のコントロールレジスタを個別に参照することなく、アクセス制御回路を介してフラグを横断的にアクセスできる参照アドレスを用いてアクセスすることで、監視設定の確認処理時間を短縮できる。
【００８８】
また、本実施の形態は、次のような側面もある。まず、複数の回路を含む複数の回路階層３１０〜３５０を備える半導体装置３００の故障検出方法である。そして、複数の回路は、複数のプロセッサ（ＣＰＵコア３１１〜３１ｉ、３２１〜３２ｉ）と、複数の回路ブロック（周辺ＩＰ１４１〜１４６）と、割込み制御回路（ＩＮＴＣ１２１）と、少なくとも１つの割込み監視回路（ＩＮＴＣモニタ３０００）と、を含むものである。ここで、複数のプロセッサは、割込み要求に応じて所定の割込処理を行う。複数の回路ブロックは、複数の割込み信号１６１〜１６６のそれぞれを出力する。割込み制御回路は、複数の回路ブロックのそれぞれから複数の割込み信号を受け付け、複数のプロセッサのいずれかに対して割込み要求１８１を出力する。割込み監視回路のそれぞれは、複数の割込み信号１６１，１６３，１６５等のそれぞれに対応し、対応する割込み信号の監視対象の状態を示す監視種別並びに第１及び第２の監視期間を設定するための設定回路を有する。その上で、半導体装置３００の起動時に、複数の回路階層のそれぞれにおいて独立して所定の動作確認テストを実行し、動作確認テストに異常がなかった場合に、半導体装置を通常動作させ、通常動作中に、第１の回路階層に向けて、第２の回路階層からの割込み信号を複数の割込み監視回路の一部において監視する。ここで、第１の回路階層は、割込み制御回路及び複数の割込み監視回路を含む。また、第２の回路階層は、第１の回路階層以外の回路階層である。そして、割込み監視回路において、監視種別が割込み信号のアサート状態を示す場合、当該アサート状態が継続している第１の継続時間が第１の監視期間を超える場合に、故障として検出し、監視種別が割込み信号のネゲート状態を示す場合、当該ネゲート状態が継続している第２の継続時間が第２の監視期間を超える場合に、故障として検出するものである。これにより、階層間をまたぐ信号を監視することで、同一階層内に閉じた起動時の動作確認テストでは検出できない故障を検出でき、故障検出率を向上できる。
【００８９】
また、通常動作中に、複数のプロセッサの一部が、割込み監視回路が有する設定回路から監視種別を読み出して所定の期待値と比較することができる。これにより、半導体装置の動作中に、割込み信号の監視が適切にされているかを定期的かつ迅速に検査することを可能とする。そして、機能安全のために設けたＩＮＴＣモニタが正しく監視機能を果たしていることを担保できる。
【００９０】
または、第１の回路階層は、複数の割込み信号のうち一部である２以上の信号のそれぞれに対応する２以上の割込み監視回路を含みものとする。そして、半導体装置３００には、２以上の割込み監視回路のそれぞれが有する各設定回路に設定された監視種別をまとめて参照するための参照アドレスが設定される。そして、半導体装置３００の通常動作中に、複数のプロセッサのうち第１のプロセッサからの参照アドレスに対するアクセス要求に応じて、各設定回路から監視種別を読み出し、当該読み出した監視種別をまとめて当該第１のプロセッサへ応答することが望ましい。これにより、割込み信号ごとに対応する複数のコントロールレジスタを個別に参照することなく、アクセス制御回路を介してフラグを横断的にアクセスできる参照アドレスを用いてアクセスすることで、監視設定の確認処理時間を短縮できる。
【００９１】
＜実施の形態６＞
本実施の形態６は、上述した実施の形態１〜５の応用例である。具体的には、上述した半導体装置をビデオ処理装置に適用した場合について説明する。図１５は、本実施の形態６にかかるビデオ処理装置４２０の構成を示すブロック図である。ビデオ処理装置４２０は、カメラモジュール４１０からの映像データの入力を受け付け、表示装置４３０に対して表示用データを出力する。カメラモジュール４１０は、撮影した映像データを画像単位でビデオ処理装置４２０へ入力する。具体的には、カメラモジュール４１０は、電源が投入されると、その時点から画像データ４４１の入力を開始する。そして、カメラモジュール４１０は、１フレーム分の画像データが入力されるごとに、ビデオ処理装置４２０に対して割込み信号４４２を出力する。
【００９２】
ビデオ処理装置４２０は、画像入力部４２１と、ＩＮＴＣモニタ４２２と、ＩＮＴＣ４２３と、ＣＰＵ４２４と、ＲＡＭ４２５と、ＤＳＰ（Digital Signal Processor）４２６と、画像出力部４２７と、バス４２８とを備える。ＲＡＭ４２５は、画像データを保存するための記憶装置である。画像入力部４２１は、カメラモジュール４１０から入力される画像データ４４１を受け付け、バス４２８を介してＲＡＭ４２５に画像データを保存する。また、画像入力部４２１は、カメラモジュール４１０から映像の入力の開始（１フレーム目の画像データの入力）を検出すると、ＣＰＵ４２４へＩＮＴＣモニタ４２２及びＩＮＴＣ４２３へ、映像の入力開始を示す割込み信号４４３を出力する。ＩＮＴＣ４２３は、映像の入力開始を示す割込み信号４４３に応じて、映像の入力開始を示す割込み要求４４４をＣＰＵ４２４へ出力する。ＣＰＵ４２４は、映像の入力開始を示す割込み要求４４４に応じて、プロセッサＩＯ信号１１１０によりＩＮＴＣモニタ４２２に監視種別の設定を行う。尚、監視種別の設定は、画像入力部４２１が行っても良い。また、監視種別の設定は、１フレーム目の画像データの入力に限らず、カメラモジュール４１０の電源投入時に行われても良い。また、画像入力部４２１は、上述した周辺ＩＰということができる。すなわち、画像入力部４２１は、カメラモジュール４１０からの割込み信号４４２を検出すると、ＩＮＴＣモニタ４２２及びＩＮＴＣ４２３へ割込み信号４４３を出力する。
【００９３】
ＩＮＴＣ４２３は、割込み信号４４３に応じて割込み要求４４４をＣＰＵ４２４へ出力する。ＣＰＵ４２４は、割込み要求４４４に応じて、予め設定されたプログラムに従って演算処理を行う。すなわち、ＣＰＵ４２４は、バス４２８を介して、ＲＡＭ４２５から１フレーム分の画像データを読み出し、ＤＳＰ４２６へ通知する。ＤＳＰ４２６は、通知された画像データに対して所定のアルゴリズムにより圧縮処理等を行う。尚、圧縮されたデータは、一旦、ＲＡＭ４２５に保存されてもよい。画像出力部４２７は、圧縮されたデータを表示用データとして表示装置４３０へ出力し、画面に表示させる。
【００９４】
ここで、ＩＮＴＣモニタ４２２には、監視期間（ネゲート用監視期間２３１２）として映像内の画像の１フレームの処理に対応した期間が設定されている。そして、ＩＮＴＣモニタ４２２は、割込み信号４４３を監視し、ネゲート期間がネゲート用監視期間２３１２を超える場合、故障として検出し、故障通知信号４４５を出力する。この場合、１フレーム分の処理時間相当が経過しても割込み信号４４３がアサートされていないため、例えば、カメラモジュール４１０の故障である可能性がある。
【００９５】
また、ＩＮＴＣモニタ４２２は、アサート期間が所定のアサート用監視期間２３１１を超えた場合にも、故障として検出し、故障通知信号４４５を出力する。この場合、割込み信号４４３が一旦、アサートされた後、１フレーム分の画像データに対する何らかの処理が終了せず、割込み信号４４３がネゲートされないため、例えば、ＩＮＴＣ４２３又はＣＰＵ４２４等の故障である可能性がある。
【００９６】
そのため、本実施の形態６にかかる前記設定回路には、カメラモジュールから映像の入力が開始された時に、前記監視種別が設定され、前記映像内の画像の１フレームの処理に対応した期間が前記監視期間として設定されるものである。これにより、映像処理中の故障を適切に検出できる。
【００９７】
また、より詳細には、割込み監視回路は、複数の回路ブロックのうち一つを介してカメラモジュールから撮影画像の１フレームごとに出力される割込み信号に対応し、割込み監視回路が有する設定回路は、カメラモジュールから映像の入力が開始された時に、監視種別が設定され、設定回路に設定される監視期間は、撮影画像の１フレームの処理に対応した期間である。
【００９８】
＜実施の形態７＞
本実施の形態７は、上述した実施の形態１〜５の応用例である。具体的には、複数の端末間で伝送路を介してフレームの送受信を行う通信システムにおける各端末に、上述した半導体装置を適用した場合について説明する。当該通信システムは、車載機器や生産ラインなどの制御機器である電子制御装置間におけるフレームデータの送受信を、所定のタイムスケジュールに従って行わせるタイムトリガシステムに適用した例である。
【００９９】
図１６は、本実施の形態７にかかるタイムトリガシステム７０００の構成を示すブロック図である。タイムトリガシステム７０００は、ネットワークバス７００に接続された複数の電子制御装置７１０、７２０及び７３０等を備える。電子制御装置７１０は、タイマスケジュール７１１と、ローカル時刻タイマ７１２とを含み、フレームデータを送受信する機能（不図示）を備える。尚、電子制御装置７２０及び７３０も同等の構成及び機能を有するものとする。
【０１００】
タイマスケジュール７１１、７２１及び７３１には、電子制御装置７１０〜７３０の間でフレームデータの送受信を行うためのタイミングが共通の時間軸で定義されている。そして、電子制御装置７１０〜７３０のそれぞれは、自己が有するローカル時刻タイマにより、タイムスケジュールに定義された自己の処理タイミングを判断し、フレームデータの送受信を行う。例えば、電子制御装置７１０は、タイマスケジュール７１１に定義された、電子制御装置７１０によるフレームデータの送信時刻に到達したことをローカル時刻タイマ７１２により判断し、到達した場合にフレームデータの送信処理を行う。そのため、ローカル時刻タイマ７１２、７２２及び７３２の時刻は、同期が取れている必要がある。尚、ローカル時刻タイマの時刻同期処理は、公知の技術を用いて実現可能である。
【０１０１】
図１７は、本実施の形態７にかかるタイムトリガシステム７０００を利用する電子制御装置７１０の構成を示すブロック図である。尚、電子制御装置７２０及び７３０の構成も電子制御装置７１０と同等であるため、図示及び説明を省略する。
【０１０２】
電子制御装置７１０は、通信制御装置７４０と、ＩＮＴＣモニタ７５０と、ＩＮＴＣ７６０と、ＣＰＵ７７０と、ＲＡＭ７８０とを備える。通信制御装置７４０は、周辺ＩＰの一例であり、タイマスケジュール７１１と、ローカル時刻タイマ７１２と、制御部７１３と、バッファ７１４とを備える。タイマスケジュール７１１は、タイマスケジュール７２１及び７３１と共通の時間軸により、少なくとも電子制御装置７１０におけるフレームデータの送受信処理のタイミングが定義されている。ローカル時刻タイマ７１２は、ローカル時刻タイマ７２２及び７３２と時刻同期がされたタイマである。制御部７１３は、通信制御装置７４０の各種処理を制御する。制御部７１３は、例えば、ローカル時刻タイマ７１２の時刻同期処理、データの送受信処理等を行う。制御部７１３は、ローカル時刻タイマ７１２が時刻同期したことに応じて、ＩＮＴＣモニタ７５０に監視種別の設定を行う。尚、監視種別の設定は、ＣＰＵ７７０が行っても良い。また、制御部７１３は、タイマスケジュール７１１に定義された電子制御装置７１０の送受信処理タイミングの間隔に応じた時間を、監視期間としてＩＮＴＣモニタ７５０に設定を行う。例えば、電子制御装置７１０の送受信処理タイミングがタイマスケジュール７１１に等間隔で定義されていれば、監視期間は固定である。一方、電子制御装置７１０の送受信処理タイミングがタイマスケジュール７１１に様々な間隔で定義されていれば、ＩＮＴＣモニタ７５０の監視期間が都度、更新されることとなる。制御部７１３は、ローカル時刻タイマ７１２が示す時刻がタイマスケジュール７１１に定義された時刻に到達したか否かを判定し、到達した場合、割込み信号７９１をＩＮＴＣモニタ７５０及びＩＮＴＣ７６０へ出力する。バッファ７１４は、電子制御装置７２０及び７３０等からネットワークバス７００を介して受信したデータを保持し、電子制御装置７２０及び７３０等への送信対象のデータを保持する記憶領域である。
【０１０３】
ＩＮＴＣ７６０は、割込み信号７９１に応じて割込み要求７９２をＣＰＵ７７０へ出力する。ＣＰＵ７７０は、割込み要求７９２に応じて、予め設定されたプログラムに従って演算処理を行う。例えば、ＣＰＵ７７０は、バッファ７１４に保存された受信データを読み出し、ＲＡＭ７８０に保存する。また、ＣＰＵ７７０は、ＲＡＭ７８０から送信対象データを読み出し、バッファ７１４へ保存する。その他、ＣＰＵ７７０は、送受信データに対する各種処理を行う。
【０１０４】
ここで、ＩＮＴＣモニタ７５０には、監視期間（ネゲート用監視期間２３１２）としてローカル時刻タイマ７１２に基づき出力される割込み信号７９１の発生タイミングに応じた期間が設定されている。そして、ＩＮＴＣモニタ７５０は、割込み信号７９１を監視し、ネゲート期間がネゲート用監視期間２３１２を超える場合故障として検出し、故障通知信号７９３を出力する。この場合、ローカル時刻タイマ７１２が正常であれば、予め設定された監視期間内に割込み信号７９１がアサートされるはずである。よって、割込み信号７９１がネゲート用監視期間２３１２内にアサートされず、ネゲート期間がネゲート用監視期間２３１２を超える場合には、例えば、ローカル時刻タイマ７１２の故障である可能性がある。
【０１０５】
また、ＩＮＴＣモニタ７５０は、アサート期間が所定のアサート用監視期間２３１１を超えた場合にも、故障として検出し、故障通知信号７９３を出力する。この場合、ＩＮＴＣ７６０及びＣＰＵ７７０が正常であれば、所定のアサート用監視期間２３１１内で割込み信号７９１がネゲートされるはずである。よって、割込み信号７９１がアサート用監視期間２３１１内にネゲートされず、アサート期間がアサート用監視期間２３１１を超える場合には、例えば、ＩＮＴＣ７６０又はＣＰＵ７７０の故障、ＩＮＴＣ７６０とＣＰＵ７７０の間での結線の切断、又は、ＣＰＵ７７０の処理遅延によるタイムトリガシステム７０００全体の故障である可能性がある。
【０１０６】
そのため、本実施の形態７にかかる前記設定回路には、前記複数の回路ブロックのうち一つが内蔵するタイマが、外部装置と時刻同期したことに応じて、前記監視種別が設定され、前記タイマに基づき出力される前記割込み信号の発生タイミングに応じた期間が前記監視期間として設定されるものである。これにより、タイムトリガシステムにおいて的確に故障を検出できる。
【０１０７】
また、より詳細には、割込み監視回路は、前記複数の回路ブロックのうち一つが内蔵するタイマにより所定のスケジュールに従って出力される割込み信号に対応し、割込み監視回路が有する設定回路は、タイマが外部装置と時刻同期したことに応じて、監視種別が設定され、設定回路に設定される監視期間は、所定のスケジュールにおける割込み信号の発生タイミングに応じた期間である。
【０１０８】
＜実施の形態８＞
本実施の形態８は、上述した実施の形態１〜５の応用例である。具体的には、上述した半導体装置を音声データ処理装置に適用した場合について説明する。図１８は、本実施の形態８にかかる音声処理装置８００の構成を示すブロック図である。音声処理装置８００は、音声データサンプリングモジュール８１０と、ＩＮＴＣモニタ８２０と、ＩＮＴＣ８３０と、ＣＰＵ８４０とを備える。
【０１０９】
音声データサンプリングモジュール８１０は、通常、８ｋＨｚ（１２５マイクロ秒間隔）で音声データのサンプリングを行う。そして、音声データサンプリングモジュール８１０は、１６０サンプル（２０ミリ秒）を１音声フレームとして、各種信号処理を行っている。そのため、音声データサンプリングモジュール８１０は、音声データのサンプリング周期、すなわち、１２５マイクロ秒間隔で割込み信号８５１をＩＮＴＣモニタ８２０及びＩＮＴＣ８３０へ出力する。尚、音声データサンプリングモジュール８１０は、周辺ＩＰの一例である。また、音声データサンプリングモジュール８１０は、音声データの入力が開始された時に、ＩＮＴＣモニタ８２０に監視種別の設定を行う。尚、監視種別の設定は、ＣＰＵ８４０が行っても良い。
【０１１０】
ＩＮＴＣ８３０は、割込み信号８５１に応じて割込み要求８５２をＣＰＵ８４０へ出力する。ＣＰＵ８４０は、割込み要求８５２に応じて、音声データサンプリングモジュール８１０に対してソフトウェア処理８５３を行う。
【０１１１】
ここで、ＩＮＴＣモニタ８２０には、監視期間（ネゲート用監視期間２３１２）として音声データの１フレームの処理に対応した期間が設定されている。そして、ＩＮＴＣモニタ８２０は、割込み信号８５１を監視し、ネゲート期間がネゲート用監視期間２３１２を超える場合、故障として検出し、故障通知信号８５４を出力する。ここで、音声データサンプリングモジュール８１０が正常に動作していれば、１２５マイクロ秒ごとに割込み信号８５１がアサートされるはずである。よって、割込み信号８５１がネゲート用監視期間２３１２内にアサートされず、ネゲート期間がネゲート用監視期間２３１２を超える場合、例えば、音声データサンプリングモジュール８１０の故障である可能性がある。
【０１１２】
また、ＩＮＴＣモニタ８２０は、アサート期間が所定のアサート用監視期間２３１１を超えた場合にも、故障として検出し、故障通知信号８５４を出力する。ＩＮＴＣ８３０及びＣＰＵ８４０が正常に動作していれば、ＣＰＵ８４０からのソフトウェア処理８５３が行われ、割込み信号８５１がアサート用監視期間２３１１内にネゲートされるはずだからである。そのため、この場合、例えば、ＩＮＴＣ８３０又はＣＰＵ８４０が故障である可能性がある。
【０１１３】
そのため、本実施の形態８にかかる前記設定回路には、音声データのサンプリングモジュールからの入力が開始された時に、前記監視種別が設定され、前記音声データの１フレームの処理に対応した期間が前記監視期間として設定されるものである。これにより、サイドトーン処理等において的確に故障を検出できる。
【０１１４】
また、言い換えると、割込み監視回路は、複数の回路ブロックのうち音声データのサンプリングモジュールから出力される割込み信号に対応し、割込み監視回路が有する設定回路は、サンプリングモジュールから音声データの入力があった時に、監視種別が設定され、設定回路に設定される監視期間は、音声データの１フレームの処理に対応した期間である。
【０１１５】
＜実施の形態９＞
本実施の形態９は、上述した実施の形態１の変形例である。図１９は、本実施の形態９にかかる半導体装置１００ａの構成を示すブロック図である。半導体装置１００ａは、プロセッサ１１１と、ＩＮＴＣ１２１と、割込み監視部１３０ａと、周辺ＩＰ１４１及び１４２とを備える。ここで、割込み監視部１３０ａは、ＩＮＴＣモニタ１３１を備える。ＩＮＴＣモニタ１３１は、割込み信号１６１の状態を監視し、異常を検出した場合には、外部端子１５２に対して故障通知信号１７１を出力する。これにより、半導体装置１００ａの外部の監視装置等により故障を検出することができる。尚、その他の構成は実施形態１と同等である。
【０１１６】
つまり、本実施の形態により、少なくとも１つの割込み信号に対応したＩＮＴＣモニタを設け、割込み信号に対応した監視種別及び監視期間の設定が可能であるため、割込み信号に関連して発生する様々な種類のエラーに基づく故障を検出することができる。
【０１１７】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【０１１８】
１００  半導体装置
１００ａ  半導体装置
１１１  プロセッサ
１１２  プロセッサ
１２１  ＩＮＴＣ
１２２  ＩＮＴＣ
１３０  割込み監視部
１３０ａ  割込み監視部
１３１  ＩＮＴＣモニタ
１３１ａ  ＩＮＴＣモニタ
１３１ｂ  ＩＮＴＣモニタ
１３２  ＩＮＴＣモニタ
１３３  ＩＮＴＣモニタ
１３０１  ＯＲ回路
１４１  周辺ＩＰ
１４２  周辺ＩＰ
１４３  周辺ＩＰ
１４４  周辺ＩＰ
１４５  周辺ＩＰ
１４６  周辺ＩＰ
１５０  エラー制御部
１５１  外部端子
１５２  外部端子
１５３  外部端子
１６１  割込み信号
１６２  割込み信号
１６３  割込み信号
１６４  割込み信号
１６５  割込み信号
１６９  割込み信号
１７０  故障通知信号
１７１  故障通知信号
１７２  故障通知信号
１８１  割込み要求
１８２  割込み要求
２１０  タイマカウンタ
２２０  制御論理回路
２３０  コントロールレジスタ
２３１  監視期間
２３１１  アサート用監視期間
２３１２  ネゲート用監視期間
２３２  アサートフラグ
２３３  ネゲートフラグ
２３４  リセットフラグ
２４０  ステータスレジスタ
２４１  アサート期間故障フラグ
２４２  ネゲート期間故障フラグ
１１１０  プロセッサＩＯ信号
ＣＬＫ  クロック信号
３００  半導体装置
３１０  階層
３１１  ＣＰＵコア
３１ｉ  ＣＰＵコア
３２０  階層
３２１  ＣＰＵコア
３２ｊ  ＣＰＵコア
３３０  階層
３４０  階層
３５０  階層
３６０  割込み監視部
３０００  ＩＮＴＣモニタ
４０００  コントロールレジスタ０
３００１  ＩＮＴＣモニタ
４００１  コントロールレジスタ１
３３１９  ＩＮＴＣモニタ
４３１９  コントロールレジスタ３１９
３００ｎ  ＩＮＴＣモニタ
３６１  ＯＲ回路
３６２  レジスタアクセス制御回路
３６３  仮想レジスタ
３６２００  コントロールフラグ確認レジスタ０
３６２０１  コントロールフラグ確認レジスタ１
３６２１９  コントロールフラグ確認レジスタ１９
１９０  選択論理
１９１  分周器
１９２  分周器
１９３  分周器
４１０  カメラモジュール
４２０  ビデオ処理装置
４２１  画像入力部
４２２  ＩＮＴＣモニタ
４２３  ＩＮＴＣ
４２４  ＣＰＵ
４２５  ＲＡＭ
４２６  ＤＳＰ
４２７  画像出力部
４２８  バス
４３０  表示装置
４４１  画像データ
４４２  割込み信号
４４３  割込み信号
４４４  割込み要求
４４５  故障通知信号
７０００  タイムトリガシステム
７００  ネットワークバス
７１０  電子制御装置
７１１  タイマスケジュール
７１２  ローカル時刻タイマ
７１３  制御部
７１４  バッファ
７２０  電子制御装置
７２１  タイマスケジュール
７２２  ローカル時刻タイマ
７３０  電子制御装置
７３１  タイマスケジュール
７３２  ローカル時刻タイマ
７４０  通信制御装置
７５０  ＩＮＴＣモニタ
７６０  ＩＮＴＣ
７７０  ＣＰＵ
７８０  ＲＡＭ
７９１  割込み信号
７９２  割込み要求
７９３  故障通知信号
８００  音声処理装置
８１０  音声データサンプリングモジュール
８２０  ＩＮＴＣモニタ
８３０  ＩＮＴＣ
８４０  ＣＰＵ
８５１  割込み信号
８５２  割込み要求
８５３  ソフトウェア処理
８５４  故障通知信号
【図１】
2019096243.tif 000003
【図２】
2019096243.tif 000004
【図３】
2019096243.tif 000005
【図４】
2019096243.tif 000006
【図５】
2019096243.tif 000007
【図６】
2019096243.tif 000008
【図７】
2019096243.tif 000009
【図８】
2019096243.tif 000010
【図９】
2019096243.tif 000011
【図１０】
2019096243.tif 000012
【図１１】
2019096243.tif 000013
【図１２】
2019096243.tif 000014
【図１３】
2019096243.tif 000015
【図１４】
2019096243.tif 000016
【図１５】
2019096243.tif 000017
【図１６】
2019096243.tif 000018
【図１７】
2019096243.tif 000019
【図１８】
2019096243.tif 000020
【図１９】
2019096243.tif 000021