(57)【要約】【課題】複数の故障検出機構に対して短時間でフォルトインジェクションテストを実行することが可能な半導体装置を提供する。【解決手段】半導体装置１は、複数の階層モジュールと、複数の階層モジュールにおけるエラーに関する制御を行うエラー制御モジュール１００とを有する。複数の階層モジュールそれぞれは、階層モジュールを構成するコンポーネントの機能の故障を検出するセーフティメカニズムを有する。エラー制御モジュール１００は、複数の階層モジュールそれぞれの故障のステータスを示すデータを記録するように構成されたステータスレジスタ１２０と、ステータスレジスタ１２０に、フォルトインジェクションテストを実行するためのエラー信号を出力するフォルトインジェクション機能１１０とを有する。エラー信号は、ステータスレジスタ１２０を介してセーフティメカニズムに入力される。【選択図】図１
2020077095.tif 000002
【特許請求の範囲】
【請求項１】
機能ごとに分割され階層化された複数の階層モジュールと、
前記複数の階層モジュールにおけるエラーに関する制御を行うように構成されたエラー制御モジュールと
を有し、
前記複数の階層モジュールそれぞれは、前記階層モジュールを構成するコンポーネントの機能の故障を検出するように構成された少なくとも１つの故障検出機構を有し、
前記エラー制御モジュールは、
前記複数の階層モジュールそれぞれの故障のステータスを示すデータを記録するように構成されたステータスレジスタと、
前記ステータスレジスタに、フォルトインジェクションテストを実行するためのエラー信号を出力するように構成された少なくとも１つのエラー注入機能と
を有し、
前記エラー注入機能から出力された前記エラー信号は、前記ステータスレジスタを介して、前記複数の階層モジュールそれぞれの前記故障検出機構に入力される
半導体装置。
【請求項２】
前記エラー制御モジュールは、
前記エラー信号の入力に応じて前記故障検出機構から出力されたエラー通知信号を受け付け、
前記故障検出機構から出力されたエラー通知信号と前記エラー信号との比較に応じて、前記故障検出機構の故障を検出する
請求項１に記載の半導体装置。
【請求項３】
前記ステータスレジスタは、
前記エラー注入機能から前記エラー信号が入力された場合に、前記エラー信号に対応する第１のデータを記録し、
前記故障検出機構の故障が検出された場合に、前記第１のデータをリセットする
請求項２に記載の半導体装置。
【請求項４】
前記エラー注入機能は、前記複数の階層モジュールそれぞれの前記故障検出機構ごとに対応して設けられており、
前記エラー注入機能から出力された前記エラー信号は、前記複数の階層モジュールそれぞれの前記故障検出機構に、互いに独立して入力される
請求項１に記載の半導体装置。
【請求項５】
前記エラー注入機能は、前記階層モジュールが起動するときに、前記エラー信号を出力する
請求項１に記載の半導体装置。
【請求項６】
前記複数の階層モジュールそれぞれは、
前記故障検出機構に入力される前記エラー信号を監視する信号モニタ回路
をさらに有する
請求項１に記載の半導体装置。
【請求項７】
前記故障検出機構が通常動作を行っている場合に、前記ステータスレジスタは、前記故障検出機構が故障検出の対象としている前記機能のエラー状態を示す第２のデータを記録する
請求項１に記載の半導体装置。
【請求項８】
前記エラー制御モジュールは、
前記フォルトインジェクションテストを行うときに前記エラー注入機能から出力された前記エラー信号を前記ステータスレジスタに出力し、前記フォルトインジェクションテストを行わないときに前記第２のデータを前記ステータスレジスタに出力するように構成された選択回路
をさらに有する
請求項７に記載の半導体装置。
【請求項９】
１つの前記ステータスレジスタが、複数の故障検出機構に関する故障のステータスを示すデータを記録する
請求項１に記載の半導体装置。
【請求項１０】
前記複数の階層モジュールの１つの階層モジュールは、複数のプロセッサを有し、
前記複数のプロセッサごとに、前記故障検出機構が設けられており、
前記エラー制御モジュールは、前記複数のプロセッサのうちの少なくとも１つの第１のプロセッサが通常動作を行っている場合に、前記複数のプロセッサのうちの前記第１のプロセッサ以外の第２のプロセッサに対応する前記故障検出機構について、フォルトインジェクションテストを実行する
請求項１に記載の半導体装置。
【請求項１１】
請求項１に記載の半導体装置を複数有し、
複数の前記半導体装置を監視するように構成されたコントローラを有し、
前記コントローラは、
前記複数の半導体装置のうちの第１の半導体装置が通常動作を行うように制御し、
前記第１の半導体装置について前記故障検出機構の故障が検出された場合に、前記第１の半導体装置の動作を停止させ、前記複数の半導体装置のうち前記第１の半導体装置とは異なる第２の半導体装置を動作させるように切り替える
半導体システム。
【請求項１２】
機能ごとに分割され階層化された複数の階層モジュールそれぞれの故障のステータスを示すデータを記録するように構成されたステータスレジスタに、フォルトインジェクションテストを実行するためのエラー信号を出力し、
前記ステータスレジスタを介して、前記エラー信号を、前記複数の階層モジュールそれぞれを構成するコンポーネントの機能の故障を検出するように構成された少なくとも１つの故障検出機構に出力する
テスト方法。
【請求項１３】
前記エラー信号の入力に応じて前記故障検出機構から出力されたエラー通知信号と前記エラー信号との比較に応じて、前記故障検出機構の故障を検出する
請求項１２に記載のテスト方法。
【請求項１４】
前記ステータスレジスタは、前記エラー信号が入力された場合に前記エラー信号に対応する第１のデータを記録し、前記故障検出機構の故障が検出された場合に前記第１のデータをリセットする
請求項１３に記載のテスト方法。
【請求項１５】
前記エラー信号は、前記複数の階層モジュールそれぞれの前記故障検出機構に、互いに独立して入力される
請求項１２に記載のテスト方法。
【請求項１６】
前記階層モジュールが起動するときに、前記エラー信号が出力される
請求項１２に記載のテスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置、半導体システム及びテスト制御方法に関する。
【背景技術】
【０００２】
高い信頼性が要求されるシステムでは、機能安全と呼ばれる仕組みが適用される。機能安全（具体的にはフェイルセーフ機能）が適用されるシステムは、例えば、システム内部でエラーが発生した場合であっても、エラーの種類等に応じた各種安全動作を実行することで、重大な問題が生じる事態を回避することができる。このような機能安全が正常に働くことを保証するためには、システム内部にエラーを注入し、その後の動作を確認するようなテストが必要となる。
【０００３】
このような技術に関連し、特許文献１は、内部の擬似エラーを容易に生成させる半導体装置を開示する。特許文献１にかかる半導体装置は、一個の半導体チップで構成され、エラー検出回路と、エラー注入回路と、エラーレジスタと、選択回路とを有する。エラー検出回路は、半導体装置内で生じたエラーを検出し、当該検出結果となる第１のエラー信号を出力する。エラー注入回路は、予め定めたタイミングで予め定めた第２のエラー信号を出力する。選択回路は、モード信号に応じてエラー検出回路の出力かエラー注入回路の出力の一方を選択し、当該選択した出力をエラーレジスタの出力として定める。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−１５１７８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
エラー検出回路のような故障検出機構の故障、及び、故障検出機構と故障検出機構によって検出されたエラーの検出結果に応じた処理を行うエラー処理回路との間の伝達経路の故障（以下、これらを総称して「故障検出機構の故障」とする）を適切に検出することが望まれる。一方、特許文献１にかかる技術では、エラー注入回路から、選択回路に、予め定めた第２のエラー信号が注入される。このような構成では、故障検出機構の故障を適切に検出することができない可能性がある。また、エラー検出回路が多数設けられている場合には、テスト時間が膨大となるおそれがある。
【０００６】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
一実施の形態によれば、半導体装置は、機能ごとに分割され階層化された複数の階層モジュールと、前記複数の階層モジュールにおけるエラーに関する制御を行うように構成されたエラー制御モジュールとを有し、前記複数の階層モジュールそれぞれは、前記階層モジュールを構成するコンポーネントの機能の故障を検出するように構成された少なくとも１つの故障検出機構を有し、前記エラー制御モジュールは、前記複数の階層モジュールそれぞれの故障のステータスを示すデータを記録するように構成されたステータスレジスタと、前記ステータスレジスタに、フォルトインジェクションテストを実行するためのエラー信号を出力するように構成された少なくとも１つのエラー注入機能とを有し、前記エラー注入機能から出力された前記エラー信号は、前記ステータスレジスタを介して、前記複数の階層モジュールそれぞれの前記故障検出機構に入力される半導体装置である。
【０００８】
一実施の形態によれば、テスト方法は、機能ごとに分割され階層化された複数の階層モジュールそれぞれの故障のステータスを示すデータを記録するように構成されたステータスレジスタに、フォルトインジェクションテストを実行するためのエラー信号を出力し、前記ステータスレジスタを介して、前記エラー信号を、前記複数の階層モジュールそれぞれを構成するコンポーネントの機能の故障を検出するように構成された少なくとも１つの故障検出機構に出力するテスト方法である。
【発明の効果】
【０００９】
前記一実施の形態によれば、複数の故障検出機構に対して短時間でフォルトインジェクションテストを実行することができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１にかかる半導体装置のハードウェア構成の概要を示す図である。
【図２】実施の形態１にかかる半導体装置のハードウェア構成の詳細を示す図である。
【図３】実施の形態１にかかるセーフティメカニズムの構成を例示する図である。
【図４】実施の形態１にかかる信号モニタ回路の構成を例示する図である。
【図５】実施の形態１にかかるフォルトインジェクション機能をハードウェアで実現する場合の半導体装置の構成を示す図である。
【図６】実施の形態１にかかるフォルトインジェクション機能をハードウェアで実現する場合の半導体装置の構成を示す図である。
【図７】実施の形態１にかかるフォルトインジェクション機能をソフトウェアで実現する場合の半導体装置の構成を示す図である。
【図８】実施の形態１にかかるフォルトインジェクション機能をソフトウェアで実現する場合の半導体装置の構成を示す図である。
【図９】実施の形態１にかかるステータスレジスタの構成を示す図である。
【図１０】実施の形態１にかかるエラー制御モジュールの回路構成を示す図である。
【図１１】実施の形態１にかかる半導体装置のフォルトインジェクションテストに関するテスト方法を示すフローチャートである。
【図１２】実施の形態１にかかる半導体装置のフォルトインジェクションテストに関する動作を示すタイミングチャートである。
【図１３】実施の形態１にかかるフォルトインジェクションテストの第１の例を示すタイミングチャートである。
【図１４】実施の形態１にかかるフォルトインジェクションテストの第２の例を実現するための半導体装置の構成を示す図である。
【図１５】実施の形態１にかかるフォルトインジェクションテストの第２の例を示すタイミングチャートである。
【図１６】実施の形態１にかかるフォルトインジェクションテストの第３の例を実現するための半導体装置の構成を示す図である。
【図１７】実施の形態１にかかるフォルトインジェクションテストの第３の例を示すタイミングチャートである。
【図１８】実施の形態１にかかるフォルトインジェクションテストの第４の例を実現するための半導体装置の構成を示す図である。
【図１９】実施の形態２にかかる半導体システムの構成を示す図である。
【図２０】実施の形態２にかかる半導体システムにおける半導体装置の切り替え処理を説明するための図である。
【図２１】実施の形態２にかかる半導体システムにおける半導体装置の切り替え処理を説明するための図である。
【図２２】実施の形態２にかかる半導体システムにおけるタイミングチャートである。
【発明を実施するための形態】
【００１１】
以下、実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１２】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、応用例、詳細説明、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
【００１３】
さらに、以下の実施の形態において、その構成要素（動作ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数等（個数、数値、量、範囲等を含む）についても同様である。
【００１４】
また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００１５】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００１６】
（実施の形態の概要）
高い信頼性が要求されるシステムとして、例えば、完全自動運転技術がある。この完全自動運転技術を実現するためには、ＩＳＯ２６２６２（機能安全）規格の中でもＡＳＩＬ−Ｄの基準を満たす技術が必要とされている。ここで、ＡＳＩＬ（Ａｕｔｏｍｏｔｉｖｅ  Ｓａｆｅｔｙ  Ｉｎｔｅｇｒｉｔｙ  Ｌｅｖｅｌ：安全性要求レベル）としてＡ〜Ｄのレベルが規格化されている。完全自動運転技術は通常機能のランダムなハードウェア故障の基準検出率（ＳＰＦＭ；Ｓｉｎｇｌｅ  Ｐｏｉｎｔ  Ｆａｉｌｕｒｅ  Ｍｅｔｒｉｃｓ）が９９％以上であるＡＳＩＬ−Ｄの認定が必須となる。セーフティメカニズム（故障検出機構）を実装することで、基準検出率（ＳＰＦＭ）が９０％のＡＳＩＬ−Ｂをクリアすることに加えて、非活性経路の課題をクリアしたＡＳＩＬ−Ｄの認定がなされる技術が望まれる。
【００１７】
自動運転技術として、例えば、人間の機能で例えると目の部分に対応するコンポーネントとして、カメラ入力と、ＬＡＤＡＲ（Ｌａｓｅｒ  Ｄｅｔｅｃｔｉｏｎ  ａｎｄ  Ｒａｎｇｉｎｇ）入力と、ＬＩＤＡＲ（Ｌｉｇｈｔ  Ｄｅｔｅｃｔｉｏｎ  ａｎｄ  Ｒａｎｇｉｎｇ）入力と、これらの入力信号を処理するための画像処理エンジンと、マルチＣＰＵとがある。これらのコンポーネントを備えるＳＯＣ（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ）は、集積回路の大規模化に対応する必要がある。したがって、ＳＯＣ（半導体装置）の設計において、機能単位で分割設計する手法として、階層化された分割レイアウトが採用されている。すなわち、高集積化された自動運転用のＳＯＣでは、１つの回路にまとめてレイアウト設計することが困難なため、分割レイアウト設計された複数の階層モジュールを組み合わせる手法が採用されている。分割レイアウトを行う際、スタートアップＢＩＳＴ（ｂｕｉｌｔ−ｉｎ  ｓｅｌｆ−ｔｅｓｔ；組み込み自己テスト）に用いるスキャンチェーンも、分割レイアウト階層単位で実装され、また、スタートアップＢＩＳＴの実行自体も分割レイアウト階層単位で実行されることになる。
【００１８】
通常機能（上記のコンポーネント）の故障を検出するために実装されているセーフティメカニズム（ＳＭ：Ｓａｆｅｔｙ  Ｍｅｃｈａｎｉｓｍ）は、パワーオンリセット後のスタートアップロジックＢＩＳＴテストで確認され得る。ここで、ロジックＢＩＳＴテストは、機能単位での実施となる。このため、セーフティメカニズムが出力するエラー通知信号は、階層間の未テストの経路を通過するので、故障検出率が低下する可能性がある。この対策として、セーフティメカニズムにフォルトインジェクション（ＦＩ：Ｆａｕｌｔ  Ｉｎｊｅｃｔｉｏｎ）テストを実装して、エラー通知信号を伝達する経路の活性化を行う。ここで、フォルトインジェクションテストとは、セーフティメカニズムに故障を挿入して、意図的に疑似エラーを起こさせるテストである。本実施の形態では、フォルトインジェクションテストは、セルフテスト型とする。詳しくは後述する。
【００１９】
一例として、車載製品では、エンジンキーをオンにしてからブートが完了するまでの処理を、車両に要求される規定時間内に終わらせることが要求される。しかしながら、通常、半導体装置には、１０００個を超えるコンポーネントが実装され得るので、これらの故障をチェックするための１０００個を超えるセーフティメカニズムが実装され得る。したがって、スタートアップ時のロジックＢＩＳＴテストの実行後に１つずつ１０００回を超えるフォルトインジェクション（ＦＩ）テストを実行するための時間を割り当てることができない。
【００２０】
また、セーフティメカニズムが出力するエラー通知信号の伝達経路は、通常機能の信号伝達経路でもあるため、ＳＯＣ動作中のランダム故障を検出することを目的に、任意の時間に任意のセーフティメカニズムに対してテストを行うことが求められる。そのため、ＦＴＴＩ（Ｆａｕｌｔ  Ｔｏｌｅｒａｎｔ  Ｔｉｍｅ  Ｉｎｔｅｒｖａｌ）として規定される一定時間内に、全てのセーフティメカニズムを高速でテストする手法の確立が望まれる。一方、本実施の形態においては、以下に説明するように、複数の故障検出機構に対して短時間でフォルトインジェクションテストを実行するように構成されている。
【００２１】
（実施の形態１）
次に、実施の形態１について説明する。
図１は、実施の形態１にかかる半導体装置１のハードウェア構成の概要を示す図である。実施の形態１にかかる半導体装置１は、例えばＳＯＣである。半導体装置１は、階層モジュール１０（階層＃１）、階層モジュール２０（階層＃２）、階層モジュール３０（階層＃３）、階層モジュール４０（階層＃４）、及び、エラー制御モジュール１００（ＥＣＭ：Ｅｒｒｏｒ  Ｃｏｎｔｒｏｌ  Ｍｏｄｕｌｅ）を有する。階層モジュール１０，２０，３０，４０は、機能ごとに分割され階層化された複数の階層モジュールである。エラー制御モジュール１００は、複数の階層モジュール１０，２０，３０，４０におけるエラーに関する制御を行うように構成されている。なお、階層モジュール１０，２０，３０，４０の数は、４個に限られない。
【００２２】
階層モジュール１０，２０，３０，４０は、それぞれ、故障検出機構であるセーフティメカニズム１２，２２，３２，４２を、少なくとも１つ有する。例えば、階層モジュール１０は、複数のセーフティメカニズム１２を有してもよい。セーフティメカニズム１２，２２，３２，４２は、それぞれ、階層モジュール１０，２０，３０，４０を構成するコンポーネントの機能の故障を検出するように構成されている。例えば、セーフティメカニズム１２は、階層モジュール１０を構成するコンポーネント（例えばＣＰＵ（プロセッサ）等）ごとに設けられており、対応するコンポーネントの故障を検出（チェック）する。セーフティメカニズム１２，２２，３２，４２は、例えば、デュアルコアロックステップ（ハードウェアの２重化処理）、又は、メモリＥＣＣ（Ｅｒｒｏｒ  ｃｈｅｃｋ  ａｎｄ  ｃｏｒｒｅｃｔ）回路等によって構成されている。なお、セーフティメカニズム１２，２２，３２，４２は、互いに同じ構成であってもよい。
【００２３】
エラー制御モジュール１００は、少なくとも１つのフォルトインジェクション機能１１０（ＦＩ：Ｆａｕｌｔ  Ｉｎｊｅｃｔｉｏｎ）と、ステータスレジスタ１２０とを有する。ステータスレジスタ１２０は、複数の階層モジュール１０，２０，３０，４０それぞれの故障のステータスを示すデータを記録するように構成されている。エラー制御モジュール１００は、階層モジュール１０，２０，３０，４０それぞれのセーフティメカニズム１２，２２，３２，４２と、エラー通知経路Ｒｎ（細い実線で示す）で接続されている。
【００２４】
セーフティメカニズム１２，２２，３２，４２は、エラー通知経路Ｒｎを介して、エラー制御モジュール１００に対して、エラー（故障）を検出したことを示すエラー通知信号を出力する。ステータスレジスタ１２０は、エラー通知信号を用いて、セーフティメカニズム１２，２２，３２，４２によって検出された故障を特定するためのステータスを示すデータを記録する。例えば、セーフティメカニズム１２が故障を検出した場合、ステータスレジスタ１２０は、セーフティメカニズム１２が故障を検出した旨を示すデータを記録する。これにより、ユーザは、どの階層モジュール（階層モジュール１０，２０，３０，４０）のどのコンポーネントが故障したかを確認することができる。
【００２５】
フォルトインジェクション機能１１０は、エラー注入機能であって、後述するように、ハードウェア又はソフトウェアによって実現される。好ましくは、フォルトインジェクション機能１１０は、セーフティメカニズム１２、２２，３２，４２ごとに設けられ得る。フォルトインジェクション機能１１０は、フォルトインジェクションテストを実行するためのエラー信号を出力するように構成されている。エラー信号がセーフティメカニズム１２，２２，３２，４２に注入されることで、意図的に疑似的なエラー（故障）を発生させることができる。
【００２６】
本実施の形態では、エラー制御モジュール１００は、フィードバック経路Ｒｆ（細い破線で示す）を介して、セーフティメカニズム１２，２２，３２，４２と接続されている。エラー制御モジュール１００は、このフィードバック経路Ｒｆを用いて、フォルトインジェクション機能１１０から出力されたエラー信号を、セーフティメカニズム１２、２２，３２，４２に出力（フィードバック）する。この際に、エラー信号は、ステータスレジスタ１２０を介して、セーフティメカニズム１２，２２，３２，４２に入力（注入）される。これにより、セーフティメカニズム１２，２２，３２，４２は、正常であればエラーを検出するので、エラー通知経路Ｒｎが活性化する。そして、エラー制御モジュール１００は、エラー通知経路Ｒｎを介して送信されたエラー通知信号とエラー信号との比較に応じて、セーフティメカニズム１２，２２，３２，４２の故障を検出する。詳しくは後述する。
【００２７】
図２は、実施の形態１にかかる半導体装置１のハードウェア構成の詳細を示す図である。階層モジュール１０は、セーフティメカニズム１２−１，１２−２、信号モニタ回路１４−１，１４−２、及び、ＣＰＵ１６−１，１６−２を有する。ＣＰＵ１６−１（ＣＰＵ＃１）及びＣＰＵ１６−２（ＣＰＵ＃２）は、階層モジュール１０を構成するコンポーネントである。セーフティメカニズム１２−１は、ＣＰＵ１６−１の故障を検出する故障検出機構である。セーフティメカニズム１２−２は、ＣＰＵ１６−２の故障を検出する故障検出機構である。信号モニタ回路１４−１，１４−２は、それぞれ、セーフティメカニズム１２−１，１２−２に入力されるエラー信号を監視する。これにより、セーフティメカニズム１２−１，１２−２に接続されるフィードバック経路Ｒｆの故障（断線等）を検出することができる。なお、セーフティメカニズム１２−１，１２−２など複数ある構成要素を区別しない場合、セーフティメカニズム１２などと総称することがある。
【００２８】
階層モジュール２０は、セーフティメカニズム２２−１，２２−２、信号モニタ回路２４−１，２４−２、ビデオ入力２６−１、及び、ビデオ出力２６−２を有する。ビデオ入力２６−１及びビデオ出力２６−２は、階層モジュール２０を構成するコンポーネントである。セーフティメカニズム２２−１は、ビデオ入力２６−１の故障を検出する故障検出機構である。セーフティメカニズム２２−２は、ビデオ出力２６−２の故障を検出する故障検出機構である。信号モニタ回路２４−１，２４−２は、それぞれ、セーフティメカニズム２２−１，２２−２に入力されるエラー信号を監視する。これにより、セーフティメカニズム２２−１，２２−２に接続されるフィードバック経路Ｒｆの故障（断線等）を検出することができる。
【００２９】
階層モジュール３０は、セーフティメカニズム３２−１，３２−２、信号モニタ回路３４−１，３４−２、画像処理エンジン３６−１、及び、内蔵ＲＡＭ３６−２を有する。画像処理エンジン３６−１及び内蔵ＲＡＭ３６−２は、階層モジュール３０を構成するコンポーネントである。セーフティメカニズム３２−１は、画像処理エンジン３６−１の故障を検出する故障検出機構である。セーフティメカニズム３２−２は、内蔵ＲＡＭ３６−２の故障を検出する故障検出機構である。信号モニタ回路３４−１，３４−２は、それぞれ、セーフティメカニズム３２−１，３２−２に入力されるエラー信号を監視する。これにより、セーフティメカニズム３２−１，３２−２に接続されるフィードバック経路Ｒｆの故障（断線等）を検出することができる。
【００３０】
階層モジュール４０は、セーフティメカニズム４２−１，４２−２、信号モニタ回路４４−１，４４−２、ＤＤＲメモリＩＦ４６−１，４６−２（Ｄｏｕｂｌｅ−Ｄａｔａ−Ｒａｔｅメモリインタフェース）を有する。ＤＤＲメモリＩＦ４６−１，４６−２は、階層モジュール４０を構成するコンポーネントである。セーフティメカニズム４２−１は、ＤＤＲメモリＩＦ４６−１の故障を検出する故障検出機構である。セーフティメカニズム４２−２は、ＤＤＲメモリＩＦ４６−２の故障を検出する故障検出機構である。信号モニタ回路４４−１，４４−２は、それぞれ、セーフティメカニズム４２−１，４２−２に入力されるエラー信号を監視する。これにより、セーフティメカニズム４２−１，４２−２に接続されるフィードバック経路Ｒｆの故障（断線等）を検出することができる。
【００３１】
エラー制御モジュール１００は、上述したように、複数のフォルトインジェクション機能１１０と、ステータスレジスタ１２０とを有する。フォルトインジェクション機能１１０は、セーフティメカニズム１２，２２，３２，４２に対応して設けられている。したがって、図２に示した例では、セーフティメカニズムの数は８個であるので、フォルトインジェクション機能１１０も８個設けられている。フォルトインジェクション機能１１０及びステータスレジスタ１２０の構成については後述する。
【００３２】
図３は、実施の形態１にかかるセーフティメカニズム１２の構成を例示する図である。なお、図３には、セーフティメカニズム１２の構成を例示したが、他のセーフティメカニズム２２，３２，４２の構成も同様である。図３に示すセーフティメカニズム１２は、通常機能のマスタ回路に対するセーフティメカニズムとして、マスタ回路と同等のチェッカ回路で多重化（二重化）し出力を比較回路で比較するように構成したデュアルコアロックステップ機能を実装したものである。
【００３３】
セーフティメカニズム１２は、マスタ回路（通常機能）であるＣＰＵ１６と同等の回路であるチェッカ回路１２ａと、比較回路１２ｂとで構成される。なお、上位機能とチェッカ回路１２ａとの間、及び、ＣＰＵ１６（マスタ回路）と比較回路１２ｂとの間に、レジスタ回路等のバッファを設けてもよい。チェッカ回路１２ａは、ＣＰＵ１６と同一の処理を実行する。比較回路１２ｂは、ＣＰＵ１６の実行結果とチェッカ回路１２ａの実行結果とを比較する。そして、比較回路１２ｂは、比較の結果が一致しない場合に、マスタ回路であるＣＰＵ１６が故障していることを示すエラー通知信号を出力する。なお、フォルトインジェクションテストの際は、チェッカ回路１２ａにエラー信号が注入される。
【００３４】
図４は、実施の形態１にかかる信号モニタ回路１４の構成を例示する図である。なお、図４には、信号モニタ回路１４の構成を例示したが、信号モニタ回路２４，３４，４４の構成も同様である。信号モニタ回路１４は、ステータスレジスタ１４ａを有する。ステータスレジスタ１４ａは、フィードバック経路Ｒｆにおけるフォルトインジェクション信号のステータスを記録する。ステータスレジスタ１４ａは、フィードバック経路Ｒｆにおいてフォルトインジェクション信号が「１（アサート）」のときに、フォルトインジェクション信号が伝送されたことを示すデータ「１」を設定する。なお、このステータスレジスタ１４ａに記録されたステータスは、半導体装置１に搭載されたＣＰＵ（図示せず）のリードによって確認可能である。これにより、セーフティメカニズム１２に入力されるエラー信号を監視することができ、したがって、フィードバック経路Ｒｆの異常を検出することができる。
【００３５】
図５及び図６は、実施の形態１にかかるフォルトインジェクション機能１１０をハードウェアで実現する場合の半導体装置１の構成を示す図である。図５は、フォルトインジェクション機能１１０をハードウェアで実現する場合の半導体装置１のハードウェア構成を示す図である。図６は、フォルトインジェクション機能１１０をハードウェアで実現した場合のエラー制御モジュール１００の構成を示す図である。半導体装置１（ＳＯＣ）は、タイマ２と、階層モジュールと、エラー制御モジュール１００とを有する。なお、図５には、説明の明確化のため、階層モジュール１０，２０，３０，４０のうち、階層モジュール１０のみが示されている。
【００３６】
エラー制御モジュール１００は、フォルトインジェクション機能１１０であるエラー注入回路１１０Ａと、ステータスレジスタ１２０と、選択回路１３０とを有する。エラー注入回路１１０Ａは、ワンショット回路である。タイマ２は、例えば一定期間ごとに、Ｆａｕｌｔ＿ｉｎｊｅｃｔｉｏｎ＿ｅｎｂ信号をアサートする。
【００３７】
Ｆａｕｌｔ＿ｉｎｊｅｃｔｉｏｎ＿ｅｎｂ信号がアサートされていない場合、選択回路１３０は、セーフティメカニズム１２からの信号（エラー通知信号）をステータスレジスタ１２０に出力する。ステータスレジスタ１２０は、セーフティメカニズム１２が故障検出の対象としているコンポーネント（機能）のエラー状態を示すデータ（第２のデータ）を記録する。そして、ステータスレジスタ１２０は、そのコンポーネントに故障が発生したことを示すＳＭエラー通知信号を、外部（下位機能）に出力する。これにより、ユーザは、どのコンポーネントに故障が発生したかを確認できる。
【００３８】
一方、Ｆａｕｌｔ＿ｉｎｊｅｃｔｉｏｎ＿ｅｎｂ信号がアサートされた場合、エラー注入回路１１０Ａは、１パルスのフォルトインジェクション信号（エラー信号）を出力する。そして、選択回路１３０は、エラー注入回路１１０Ａからの出力、つまり１パルスのフォルトインジェクション信号を、ステータスレジスタ１２０に出力する。これにより、ステータスレジスタ１２０は、エラー信号に対応するデータ（第１のデータ）を記録する。そして、ステータスレジスタ１２０は、フィードバック経路Ｒｆを介してセーフティメカニズム１２にフォルトインジェクション信号を送信する。これにより、セーフティメカニズム１２がエラー通知信号を出力し、エラー通知経路Ｒｎが活性化する。
【００３９】
図７及び図８は、実施の形態１にかかるフォルトインジェクション機能１１０をソフトウェアで実現する場合の半導体装置１の構成を示す図である。図７は、フォルトインジェクション機能１１０をソフトウェアで実現する場合の半導体装置１のハードウェア構成を示す図である。図８は、フォルトインジェクション機能１１０をソフトウェアで実現した場合のエラー制御モジュール１００の構成を示す図である。半導体装置１（ＳＯＣ）は、タイマ２と、割り込みコントローラ３と、ＣＰＵ４と、階層モジュールと、エラー制御モジュール１００とを有する。なお、図７には、説明の明確化のため、階層モジュール１０，２０，３０，４０のうち、階層モジュール１０のみが示されている。
【００４０】
エラー制御モジュール１００は、フォルトインジェクション機能１１０であるエラー注入経路１１０Ｂと、ステータスレジスタ１２０と、選択回路１３０とを有する。エラー注入経路１１０Ｂは、ＣＰＵ４と接続される内部バスに接続されている。タイマ２により、例えば一定期間ごとに、Ｆａｕｌｔ＿ｉｎｊｅｃｔｉｏｎ＿ｅｎｂ信号がアサートされる。これにより、選択回路１３０は、エラー注入経路１１０Ｂからの出力をステータスレジスタ１２０に出力すると選択する。
【００４１】
また、タイマ２によりＦａｕｌｔ＿ｉｎｊｅｃｔｉｏｎ＿ｅｎｂ信号がアサートされると、割り込みコントローラ３は、割り込みを発生させる。これにより、ＣＰＵ４は、フォルトインジェクション信号を内部バス及びエラー注入経路１１０Ｂを介して、選択回路１３０に出力する。したがって、選択回路１３０は、フォルトインジェクション信号を、ステータスレジスタ１２０に出力する。なお、ステータスレジスタ１２０等の動作については図５及び図６に示した例と同様である。
【００４２】
図９は、実施の形態１にかかるステータスレジスタ１２０の構成を示す図である。ステータスレジスタ１２０は、セーフティメカニズム１２，２２，３２，４２に応じた数のビット数を少なくとも有する。図２の例では、半導体装置１には８個のセーフティメカニズムが設けられているので、ステータスレジスタ１２０は、８個以上のビットを有する。つまり、ステータスレジスタ１２０の各ビットは、セーフティメカニズム１２，２２，３２，４２それぞれと対応している。なお、図９に示したステータスレジスタ１２０は、１６個のビットを有しているので、１６個のセーフティメカニズムに対応可能である。また、半導体装置１（ＳＯＣ）の規模によっては、コンポーネント（セーフティメカニズム）の数が数百〜数千個となることがあるが、この場合は、ステータスレジスタ１２０のビット数も、数百〜数千ビットとなり得る。
【００４３】
例えば、ステータスレジスタ１２０のビット＃０（ＥＲＲ０）は、セーフティメカニズム１２−１に関するエラーを示すデータを記録してもよい。ステータスレジスタ１２０のビット＃１（ＥＲＲ１）は、セーフティメカニズム１２−２に関するエラーを示すデータを記録してもよい。また、ステータスレジスタ１２０は、フォルトインジェクションテストを行わない場合、つまり通常モードの場合のステータスと、フォルトインジェクションテストを行う場合のステータスとを記録するように構成されている。
【００４４】
言い換えると、実施の形態１にかかるステータスレジスタ１２０は、通常モードの場合とフォルトインジェクションモードとで、ステータスの記録を兼用するように構成されている。Ｆａｕｌｔ＿ｉｎｊｅｃｔｉｏｎ＿ｅｎｂ信号がアサートされていない場合、ステータスレジスタ１２０は、通常モードでデータを記録し、Ｆａｕｌｔ＿ｉｎｊｅｃｔｉｏｎ＿ｅｎｂ信号がアサートされた場合、ステータスレジスタ１２０は、フォルトインジェクションモードでデータを記録する。
【００４５】
ここで、フォルトインジェクションテストを行わない場合、つまり通常モードの場合、各ビットは、対応するセーフティメカニズム１２，２２，３２，４２から、対応するコンポーネントに故障が発生したことを示すエラー通知信号が出力されたか否かを示している。通常モードの場合に、あるビットが「０」であるとき、そのビットに対応するセーフティメカニズムから、エラー通知信号が出力されていない。一方、通常モードの場合に、あるビットが「１」であるとき、そのビットに対応するセーフティメカニズムから、エラー通知信号が出力されている。例えば、通常モードでビット＃０（ＥＲＲ０）が「０」であるとき、セーフティメカニズム１２−１はエラー通知信号を出力していない。したがって、セーフティメカニズム１２−１に対応するコンポーネント（ＣＰＵ１６−１）の故障は検出されていない。また、通常モードでビット＃１（ＥＲＲ１）が「１」であるとき、セーフティメカニズム１２−２はエラー通知信号を出力している。したがって、セーフティメカニズム１２−２に対応するコンポーネント（ＣＰＵ１６−２）の故障が検出されている。
【００４６】
一方、フォルトインジェクションモードの場合、各ビットは、対応するセーフティメカニズム１２，２２，３２，４２についてのフォルトインジェクションの設定（フォルトインジェクション信号に対応するデータ）を記録している。フォルトインジェクションモードの場合に、あるビットが「０」である場合、フォルトインジェクションの設定がなされていないことを示す。フォルトインジェクションモードの場合に、あるビットが「１」である場合、フォルトインジェクションの設定がなされたことを示す。あるセーフティメカニズム１２，２２，３２，４２についてフォルトインジェクション信号がアサートされると、そのセーフティメカニズム１２，２２，３２，４２に対応するビットが「１」に設定される。そして、後述するように、セーフティメカニズム１２，２２，３２，４２が故障すると、そのセーフティメカニズム１２，２２，３２，４２に対応するビットが「０」にリセットされる。
【００４７】
このように、実施の形態１にかかるステータスレジスタ１２０は、フォルトインジェクションテストを行っている場合に、フォルトインジェクション信号（エラー信号）に対応するデータ（第１のデータ）を記録する。そして、セーフティメカニズムが通常動作を行っている場合に、ステータスレジスタ１２０は、セーフティメカニズムが故障検出の対象としているコンポーネント（機能）のエラー状態を示すデータ（第２のデータ）を記録する。これにより、通常モードとフォルトインジェクションモードとで、ステータスレジスタ１２０を兼用することができる。したがって、ステータスレジスタの量を削減することが可能となる。
【００４８】
また、選択回路１３０は、フォルトインジェクションテストを行うときにフォルトインジェクション機能１１０から出力されたフォルトインジェクション信号（エラー信号）をステータスレジスタ１２０に出力する。一方、選択回路１３０は、フォルトインジェクションテストを行わないときにエラー通知信号（第２のデータ）をステータスレジスタ１２０に出力する。これにより、ステータスレジスタ１２０を、通常モードとフォルトインジェクションモードとで兼用することが可能となる。
【００４９】
なお、上述したように、ステータスレジスタ１２０は、セーフティメカニズム１２，２２，３２，４２に応じた数のビット数を少なくとも有する。このように構成されていることにより、ステータスレジスタ１２０のビットを効率的に使用できる。仮に、階層モジュールごとにステータスレジスタが設けられているケースを想定する。そして、ステータスレジスタは１６個のビットを有するとする。この場合、各階層モジュールに４個のセーフティメカニズムつまり４個の故障検出対象のコンポーネントが設けられているとすると、このステータスレジスタにおいて、１６個のビットのうちの４個のビットしか活用されていない。他の階層モジュールについても同様であるとすると、活用されていないビットがさらに増大する。これに対し、本実施の形態では、ステータスレジスタ１２０は、セーフティメカニズム１２，２２，３２，４２に応じた数のビット数を少なくとも有するので、全てのセーフティメカニズムについてのステータスを、一括して記録できる。これにより、ステータスレジスタ１２０のビットを効率的に使用できる。さらに、このように、１つのステータスレジスタ１２０が全てのセーフティメカニズムについてのステータスを一括して記録するので、より少ないレジスタアクセス回数で、多くのセーフティメカニズムのフォルトインジェクションテストを行うことができる。したがって、効率的且つ迅速にテストを行うことができる。
【００５０】
図１０は、実施の形態１にかかるエラー制御モジュール１００の回路構成を示す図である。説明の明確化のため、図１０には、階層モジュール１０，２０，３０，４０のうち、階層モジュール１０，２０，３０が示されている。また、各階層モジュール１０，２０，３０には、それぞれ１つのセーフティメカニズム１２，２２，３２が示されている。同様に、各階層モジュール１０，２０，３０には、それぞれ１つの信号モニタ回路１４，２４，３４が示されている。また、各階層モジュール１０，２０，３０は、それぞれ、ＯＲ回路１０ａ，２０ａ，３０ａを有する。ＯＲ回路１０ａ，２０ａ，３０ａにより、通常経路又はフィードバック経路Ｒｆの信号が、それぞれ、信号モニタ回路１４，２４，３４を介して、セーフティメカニズム１２，２２，３２に伝達される。
【００５１】
エラー制御モジュール１００は、それぞれセーフティメカニズム１２に対応する、フォルトインジェクション機能１１０−１と、選択回路１３０−１と、比較回路１３２−１と、ＡＮＤ回路１３４−１と、ＡＮＤ回路１４０−１とを有する。また、ステータスレジスタ１２０は、セーフティメカニズム１２に対応するステータスレジスタ部分１２０−１を有する。このステータスレジスタ部分１２０−１は、ステータスレジスタ１２０の、セーフティメカニズム１２に関するビットに対応する。
【００５２】
また、エラー制御モジュール１００は、それぞれセーフティメカニズム２２に対応する、フォルトインジェクション機能１１０−２と、選択回路１３０−２と、比較回路１３２−２と、ＡＮＤ回路１３４−２と、ＡＮＤ回路１４０−２とを有する。また、ステータスレジスタ１２０は、セーフティメカニズム２２に対応するステータスレジスタ部分１２０−２を有する。このステータスレジスタ部分１２０−２は、ステータスレジスタ１２０の、セーフティメカニズム２２に関するビットに対応する。
【００５３】
また、エラー制御モジュール１００は、それぞれセーフティメカニズム３２に対応する、フォルトインジェクション機能１１０−３と、選択回路１３０−３と、比較回路１３２−３と、ＡＮＤ回路１３４−３と、ＡＮＤ回路１４０−３とを有する。また、ステータスレジスタ１２０は、セーフティメカニズム３２に対応するステータスレジスタ部分１２０−３を有する。このステータスレジスタ部分１２０−３は、ステータスレジスタ１２０の、セーフティメカニズム３２に関するビットに対応する。
【００５４】
以下、セーフティメカニズム１２について説明するが、セーフティメカニズム２２，３２についても同様の動作が実行される。通常モードの場合、Ｆａｕｌｔ＿ｉｎｊｅｃｔｉｏｎ＿ｅｎｂ信号がアサートされない。この場合、セーフティメカニズム１２は、セーフティメカニズム１２が故障検出の対象としているコンポーネント（機能）が故障しているか否かをチェックする。そして、このコンポーネントが故障している場合、セーフティメカニズム１２は、エラー通知信号を、エラー通知経路Ｒｎを介して、選択回路１３０−１に出力する。選択回路１３０−１は、Ｆａｕｌｔ＿ｉｎｊｅｃｔｉｏｎ＿ｅｎｂ信号がアサートされていないので、エラー通知信号をステータスレジスタ部分１２０−１に出力する。ステータスレジスタ部分１２０−１は、セーフティメカニズム１２が故障検出の対象としているコンポーネント（機能）のエラー状態を示すデータ（第２のデータ）を記録する。そして、ステータスレジスタ部分１２０−１は、そのコンポーネントに故障が発生したことを示すＳＭエラー通知信号を出力する。このとき、ＮＯＴ回路６によりＡＮＤ回路１４０−１に入力されるＦａｕｌｔ＿ｉｎｊｅｃｔｉｏｎ＿ｅｎｂ信号が反転されるので、ＳＭエラー通知信号が、外部（下位機能）に出力される。
【００５５】
図１１は、実施の形態１にかかる半導体装置１のフォルトインジェクションテストに関するテスト方法を示すフローチャートである。図１２は、実施の形態１にかかる半導体装置１のフォルトインジェクションテストに関する動作を示すタイミングチャートである。半導体装置１は、フォルトインジェクションモードに移行する（図１１のステップＳ１００）。これにより、Ｆａｕｌｔ＿ｉｎｊｅｃｔｉｏｎ＿ｅｎｂ信号がアサートされる（図１１のステップＳ１０２，図１２のＴ１）。このとき、フォルトインジェクション機能１１０−１は、フォルトインジェクション信号を出力（アサート）し、選択回路１３０−１がフォルトインジェクション機能１１０−１からの信号を出力する。したがって、ステータスレジスタ部分１２０−１に「１」がセットされる（ステップＳ１０４）。
【００５６】
次のクロック出力のタイミングで（図１２のＴ２）、ステータスレジスタ部分１２０−１から、フォルトインジェクション信号が、フィードバック経路Ｒｆに出力される（ステップＳ１０６）。このとき、Ｆａｕｌｔ＿ｉｎｊｅｃｔｉｏｎ＿ｅｎｂ信号がアサートされているので、ＡＮＤ回路１３４−１は、フィードバック経路Ｒｆを介して、階層モジュール１０にフォルトインジェクション信号を出力する。これにより、セーフティメカニズム１２にフォルトインジェクション信号が入力され、セーフティメカニズム１２のフォルトインジェクションテストが実行される（ステップＳ１０８）。
【００５７】
セーフティメカニズム１２が正常つまり故障していない場合（ステップＳ１１０のＹＥＳ）、次のクロック出力のタイミング（図１２のＴ３）で、セーフティメカニズム１２は、正常にエラー（疑似エラー）を検出する。したがって、セーフティメカニズム１２は、エラー通知信号を、エラー通知経路Ｒｎを介して、エラー制御モジュール１００に対して出力する（ステップＳ１１２）。
【００５８】
比較回路１３２−１は、フィードバック経路Ｒｆにおけるフォルトインジェクション信号（エラー信号）と、エラー通知経路Ｒｎにおけるエラー通知信号とを比較する（ステップＳ１１４）。この場合、フィードバック経路Ｒｆにおけるフォルトインジェクション信号及びエラー通知経路Ｒｎにおけるエラー通知信号は、共にアサートされているので、比較回路１３２−１は、両者が一致すると判定する。したがって、比較回路１３２−１は、ステータスレジスタ部分１２０−１のリセットをオフ（ＲＳＴ＝０）とする（ステップＳ１１６）。これにより、セーフティメカニズム１２に関するステータスレジスタ１２０の設定は「１」のままであり、セーフティメカニズム１２が故障していないことが示される。
【００５９】
セーフティメカニズム１２が正常でない、つまり故障している場合（ステップＳ１１０のＮＯ）、次のクロック出力のタイミング（図１２のＴ３）で、セーフティメカニズム１２は、エラー（疑似エラー）を検出できない。したがって、セーフティメカニズム１２は、エラー通知信号を出力しないので、エラー通知経路Ｒｎにおけるエラー通知信号はネゲートとなる（ステップＳ１２２）。なお、セーフティメカニズム１２自体が故障していない場合であっても、エラー通知経路Ｒｎが断線等している場合も、エラー通知経路Ｒｎにおけるエラー通知信号はネゲートとなる（Ｓ１２２）。
【００６０】
比較回路１３２−１は、フィードバック経路Ｒｆにおけるフォルトインジェクション信号（エラー信号）と、エラー通知経路Ｒｎにおけるエラー通知信号とを比較する（ステップＳ１２４）。この場合、フィードバック経路Ｒｆにおけるフォルトインジェクション信号のみがアサートされ、エラー通知経路Ｒｎにおけるエラー通知信号はネゲートされているので、比較回路１３２−１は、両者が一致しないと判定する。したがって、比較回路１３２−１は、ステータスレジスタ部分１２０−１のリセットをオン（ＲＳＴ＝１）とする（ステップＳ１２６）。これにより、セーフティメカニズム１２に関するステータスレジスタ１２０の設定は「０」にリセットされ、セーフティメカニズム１２が故障していることが示される。そして、ステータスレジスタリードチェック期間において、ＣＰＵ（図示せず）がステータスレジスタ１２０にアクセスする。これにより、どのセーフティメカニズムが故障しているかを、容易に確認できる。
【００６１】
なお、選択回路１３０−１，１３０−２，１３０−３は、Ｆａｕｌｔ＿ｉｎｊｅｃｔｉｏｎ＿ｅｎｂ信号がアサートされると、一斉に、フォルトインジェクション機能１１０からのエラー信号を出力するように選択を行う。このとき、フォルトインジェクション機能１１０−１，１１０−２，１１０−３は、一斉に、フォルトインジェクション信号（エラー信号）を出力する。したがって、フォルトインジェクション機能１１０−１，１１０−２，１１０−３から出力されたフォルトインジェクション信号は、一斉に、ステータスレジスタ１２０に設定される。そして、ステータスレジスタ１２０に設定されたフォルトインジェクション信号は、一斉に、各セーフティメカニズムに出力される。したがって、本実施の形態にかかる半導体装置１は、全てのセーフティメカニズムについて、一括してフォルトインジェクションテストを実行することができる。
【００６２】
さらに、本実施の形態にかかる半導体装置１は、複数のセーフティメカニズムそれぞれについて、フォルトインジェクション機能１１０が設けられている。そして、フィードバック経路Ｒｆは、複数のセーフティメカニズムそれぞれについて独立して設けられている。これにより、フォルトインジェクション機能１１０から出力されたフォルトインジェクション信号（エラー信号）は、複数の階層モジュールそれぞれのセーフティメカニズムに、互いに独立して入力される。したがって、全てのセーフティメカニズムについて一斉にフォルトインジェクションテストを行うだけでなく、任意のセーフティメカニズムについて任意の時間にフォルトインジェクションテストを行ってもよい。具体的には、半導体装置１のタイマ２は、任意のタイミングで、フォルトインジェクションテストを行いたいセーフティメカニズムに関するフォルトインジェクション機能１１０及び選択回路１３０に対して、Ｆａｕｌｔ＿ｉｎｊｅｃｔｉｏｎ＿ｅｎｂ信号をアサートする。これにより、任意のセーフティメカニズムについて、任意のタイミングで、フォルトインジェクションテストが実行される。したがって、半導体装置１の通常動作時に、部分的にフォルトインジェクションテストの実行が可能となる。
【００６３】
以上説明したように、実施の形態１にかかる半導体装置１においては、フォルトインジェクション機能１１０（エラー注入機能）から出力されたエラー信号が、ステータスレジスタ１２０を介して、複数の階層モジュール１０，２０，３０，４０それぞれのセーフティメカニズム１２，２２，３２，４２（故障検出機構）に入力される。これにより、複数のセーフティメカニズムの故障をまとめてテストできるので、複数のセーフティメカニズムに対して短時間でフォルトインジェクションテストを実行することが可能となる。したがって、要求される時間内に、フォルトインジェクションテストを実行することが可能となる。
【００６４】
また、実施の形態１にかかるエラー制御モジュール１００は、フォルトインジェクション信号（エラー信号）の入力に応じてセーフティメカニズムから出力されたエラー通知信号を受け付ける。そして、エラー制御モジュール１００は、セーフティメカニズムから出力されたエラー通知信号とエラー信号との比較に応じて、セーフティメカニズムの故障を検出する。これにより、エラー通知経路Ｒｎの故障（断線等）も含んだセーフティメカニズムの故障を、適切に検出することができる。したがって、非活性経路の課題をクリアしたＡＳＩＬ−Ｄの認定がなされる可能性が高くなる。
【００６５】
また、実施の形態１にかかるステータスレジスタ１２０は、フォルトインジェクション機能１１０からエラー信号が入力された場合に、エラー信号に対応するデータ（第１のデータ）を記録する。そして、ステータスレジスタ１２０は、セーフティメカニズムの故障が検出された場合に、このデータ（第１のデータ）をリセットする。これにより、ステータスレジスタ１２０にアクセスすることで、どのセーフティメカニズムが故障したかを、容易に確認することが可能となる。
【００６６】
＜フォルトインジェクションテストの例＞
図１３は、実施の形態１にかかるフォルトインジェクションテストの第１の例を示すタイミングチャートである。第１の例では、通常動作の任意の時間にフォルトインジェクションテストが実行される。図１３に示すように、パワーオンリセットの後、階層モジュール１０，２０，３０，４０は、通常動作を行う。そして、半導体装置１（タイマ２）は、通常動作中の任意の時間に、フォルトインジェクションテストを割り込ませる。これにより、図１０〜図１２を用いて上述した処理が実行される（図１３の「ＦＩ」）。そして、フォルトインジェクションテストが終了すると、階層モジュール１０，２０，３０，４０は、再度、通常動作を行う。
【００６７】
なお、図１３には、全ての階層モジュールが一斉にフォルトインジェクションテストを行う例を示しているが、このような構成に限られない。任意の階層モジュールの任意のセーフティメカニズムについて、任意のタイミングで、別個に独立してフォルトインジェクションテストを実行してもよい。
【００６８】
このように、本実施の形態にかかる半導体装置１は、通常動作中の任意の時間に、セーフティメカニズムの故障の有無を確認することができる。また、通常動作中の任意の時間に、セーフティメカニズムの故障の有無を確認するので、セーフティメカニズムに経年故障が発生していないかを確認することができる。
【００６９】
図１４は、実施の形態１にかかるフォルトインジェクションテストの第２の例を実現するための半導体装置１の構成を示す図である。図１５は、実施の形態１にかかるフォルトインジェクションテストの第２の例を示すタイミングチャートである。第２の例では、スタートアップＢＩＳＴの後で、フォルトインジェクションテストが実行される。
【００７０】
図１４に示すように、半導体装置１は、図１に示した構成の他に、ＢＩＳＴ制御回路５０と、スタートアップＢＩＳＴ回路５２−１，５２−２，５２−３，５２−４とを有する。ＢＩＳＴ制御回路５０は、半導体装置１の起動（パワーオンリセット）の際に、ＢＩＳＴの開始を制御する。スタートアップＢＩＳＴ回路５２−１，５２−２，５２−３，５２−４は、ＢＩＳＴ制御回路５０の制御により、それぞれ、階層モジュール１０，２０，３０，４０の起動の際に、階層モジュール１０，２０，３０，４０についてのＢＩＳＴを実行する。
【００７１】
図１５に示すように、半導体装置１は、階層モジュール１０，２０，３０，４０について、パワーオンリセットの際に、スタートアップＢＩＳＴを実行する。これにより、半導体装置１は、各階層モジュールのセーフティメカニズムが正常に動作することを確認する。次に、スタートアップＢＩＳＴが終了すると、半導体装置１のＢＩＳＴ制御回路５０は、ハードウェア的に、フォルトインジェクションの起動信号を発生させる。これにより、これにより、図１０〜図１２を用いて上述した処理が実行される（図１５の「ＦＩ」）。そして、フォルトインジェクションテストが終了すると、階層モジュール１０，２０，３０，４０は、通常動作を行う。
【００７２】
このように、本実施の形態にかかる半導体装置１は、スタートアップＢＩＳＴの直後に、セーフティメカニズムに対してフォルトインジェクションテストを実行することができる。これにより、スタートアップＢＩＳＴによってセーフティメカニズムの故障の有無を確認し、さらに、セーフティメカニズムのエラー通知信号の伝達経路（エラー通知経路Ｒｎ）の故障の有無についても確認することができる。さらに、スタートアップＢＩＳＴが終了してから、短時間で、フォルトインジェクションテストを実行することができる。
【００７３】
図１６は、実施の形態１にかかるフォルトインジェクションテストの第３の例を実現するための半導体装置１の構成を示す図である。図１７は、実施の形態１にかかるフォルトインジェクションテストの第３の例を示すタイミングチャートである。第３の例では、マルチＣＰＵが構成されている。そして、あるタイミングでは、一部のＣＰＵについてのみフォルトインジェクションテストが実行され、残りのＣＰＵについてはフォルトインジェクションテストが実行されない。
【００７４】
図１６に示すように、半導体装置１の階層モジュール１０は、セーフティメカニズム１２−１，１２−２，１２−３，１２−４、及び、ＣＰＵ１６−１，１６−２，１６−３，１６−４を有する。ＣＰＵ１６−１，１６−２，１６−３，１６−４は、階層モジュール１０を構成するコンポーネントである。セーフティメカニズム１２−１，１２−２，１２−３，１２−４は、それぞれ、ＣＰＵ１６−１，１６−２，１６−３，１６−４の故障を検出する。
【００７５】
また、階層モジュール２０は、階層モジュール２０を構成するコンポーネントであるビデオ入力２６を有する。階層モジュール３０は、階層モジュール３０を構成するビデオ出力３８を有する。階層モジュール４０は、階層モジュール４０を構成する画像処理エンジン４８−１，４８−２を有する。
【００７６】
ＣＰＵ１６−１は、画像処理エンジン４８−１の実行を行う。ＣＰＵ１６−２は、画像処理エンジン４８−２の実行を行う。また、ＣＰＵ１６−３は、ＣＰＵ１６−１が画像処理エンジン４８−１を実行していないときに、画像処理エンジン４８−１の実行を行う。ＣＰＵ１６−４は、ＣＰＵ１６−２が画像処理エンジン４８−２を実行していないときに、画像処理エンジン４８−２の実行を行う。ここで、ＣＰＵ１６−１（ＣＰＵ１６−３）及びＣＰＵ１６−２（ＣＰＵ１６−４）は、それぞれ、画像処理エンジン４８−１及び画像処理エンジン４８−２を実行して、ソフトウェアロックステップにより二重化された画像処理を行う。
【００７７】
図１７に示すように、まず、半導体装置１は、ＣＰＵ１６−１，１６−２の故障のチェックを行うセーフティメカニズム１２−１，１２−２に対して、フォルトインジェクションテストを実行する（図１７の「ＣＰＵ＃１確認」及び「ＣＰＵ＃２確認」）。このとき、ＣＰＵ１６−１，１６−２は通常動作を行うことができない。したがって、ＣＰＵ１６−３が画像処理エンジン４８−１の実行を行い、ＣＰＵ１６−４が画像処理エンジン４８−２の実行を行う。
【００７８】
セーフティメカニズム１２−１，１２−２に対するフォルトインジェクションテストの実行後、任意のタイミングで、半導体装置１は、ＣＰＵ１６−３，１６−４の故障のチェックを行うセーフティメカニズム１２−３，１２−４に対して、フォルトインジェクションテストを実行する（図１７の「ＣＰＵ＃３確認」及び「ＣＰＵ＃４確認」）。このとき、ＣＰＵ１６−３，１６−４は通常動作を行うことができない。したがって、ＣＰＵ１６−１が画像処理エンジン４８−１の実行を行い、ＣＰＵ１６−２が画像処理エンジン４８−２の実行を行う。つまり、半導体装置１は、画像処理エンジン４８−１の実行主体を、ＣＰＵ１６−３からＣＰＵ１６−１に切り替える。同様に、半導体装置１は、画像処理エンジン４８−２の実行主体を、ＣＰＵ１６−４からＣＰＵ１６−２に切り替える。半導体装置１は、この実行主体の切り替えを、交互に繰り返す。
【００７９】
例えば、図１６に示した半導体装置１が自動運転技術に適用される場合、センサから、絶え間なく画像データが出力されるので、ＣＰＵ１６による画像処理（画像処理エンジン４８の実行）を停止することはできない。そして、自動運転技術では、通常動作中の任意のタイミングでフォルトインジェクションテストを実行することが望まれる。これに対し、本実施の形態にかかる半導体装置１は、複数のＣＰＵ１６のうちのいずれかのＣＰＵ１６（第１のプロセッサ）が通常動作を行っているときであっても、他のＣＰＵ１６（第２のプロセッサ）に対応するセーフティメカニズム１２について、フォルトインジェクションテストを実行できる。したがって、本実施の形態にかかる半導体装置１は、通常動作中の任意のタイミングで、ＣＰＵによる画像処理等の処理を停止することなく、フォルトインジェクションテストを実行することが可能となる。
【００８０】
図１８は、実施の形態１にかかるフォルトインジェクションテストの第４の例を実現するための半導体装置１の構成を示す図である。第４の例では、階層モジュールごとに電源が分離されている場合において、各階層モジュールの電源をオンしたタイミングで、フォルトインジェクションテストが実行される。
【００８１】
図１８に示すように、半導体装置１は、図１に示した構成の他に、低消費電力制御回路６０と、電源スイッチ６２−１，６２−２，６２−３，６２−４とを有する。低消費電力制御回路６０は、電源スイッチ６２−１，６２−２，６２−３，６２−４を制御して、階層モジュール１０，２０，３０，４０の電源制御を行う。つまり、低消費電力制御回路６０は、階層モジュール１０，２０，３０，４０のどれに電源を供給し、どれに電源を供給しないかを選択することができる。電源スイッチ６２−１，６２−２，６２−３，６２−４は、それぞれ、階層モジュール１０，２０，３０，４０に電源を供給するか、これらに供給される電源を遮断するかを制御する。
【００８２】
半導体装置の階層設計を行う際、回路規模を勘案しつつ、機能的に互いに関連するコンポーネントを同一階層に配置するといった階層分けを行うことがある。このような場合、半導体装置（ＳＯＣ）の動作中、現に使用していない階層のみについて、低消費電力制御回路６０及び電源スイッチ６２を用いて電源を遮断することで、半導体装置の消費電力を抑制することがある。そして、当該階層モジュール内のコンポーネントを使用する必要が生じた場合に、例えば、ＣＰＵから、低消費電力制御回路６０に内蔵されたコントロールレジスタ（図示せず）へ書き込みを行うことにより、当該階層モジュールに電源を供給する設定を行う。低消費電力制御回路６０は、当該設定に基づいて、当該階層モジュール用の電源スイッチ６２をオンする。電源スイッチ６２は、電源の供給が安定すると、低消費電力制御回路６０に電源が安定したとの情報を送信する。低消費電力制御回路６０は、電源スイッチ６２からの情報により、各階層モジュールの電源状態（ステータス）を管理することができる。
【００８３】
このような半導体装置１において、電源供給後、当該階層モジュール内のコンポーネントが動作を開始するまでの期間に、スタートアップＢＩＳＴ直後のフォルトインジェクションテスト（図１５）と同様の目的で、セーフティメカニズムの動作を確認することも、機能安全的に有効である。この場合、例えば、電源スイッチ６２から低消費電力制御回路６０に電源が安定したとの情報が送信される。その情報に基づき、低消費電力制御回路６０は、エラー制御モジュール１００に対して、当該階層モジュールに対してフォルトインジェクションテストを行うよう、Ｆａｕｌｔ＿ｉｎｊｅｃｔｉｏｎ＿ｅｎｂに接続する信号を出力することができる。また、上述の通り、低消費電力制御回路６０に内蔵されたコントロールレジスタへ電源ＯＮを指示する書き込みが行われた後、ＣＰＵは、各階層モジュールの電源状態を示すステータスレジスタ（図示せず）をリードし、電源ＯＮを確認した後、ソフトウェア上で、当該階層モジュールにＦａｕｌｔ＿ｉｎｊｅｃｔｉｏｎ＿ｅｎｂ信号を出力することもできる。このように、図１８に示した低消費電力制御を行う半導体装置１は、電源供給から動作開始までの間に、セーフティメカニズムのテストを、適時に、かつ、迅速に行うことが可能となる。
【００８４】
（実施の形態２）
次に、実施の形態２について説明する。実施の形態２は、上述した半導体装置１が複数ある点で、実施の形態１と異なる。なお、半導体装置１の構成については、上述した実施の形態１に記載したものと実質的に同様であるので、説明を省略する。
【００８５】
図１９は、実施の形態２にかかる半導体システム２００の構成を示す図である。半導体システム２００は、複数の半導体装置１−１，１−２と、電源コントローラ２０２と、マイコン２１０（マイクロコンピュータ）とを有する。なお、図１９に示した半導体システム２００の構成要素は、１つのチップに搭載され得る。
【００８６】
実施の形態２にかかる半導体システム２００には、経年故障による動作停止に備えて、半導体装置１−１（ＳＯＣ＃１）に加えて、半導体装置１−２（ＳＯＣ＃２）が予備的に実装されている。実施の形態２にかかる半導体システム２００は、このようなマルチＳＯＣシステムにより、二重化処理を実現している。なお、図１９の半導体装置１には、説明の明確化のため、階層モジュールとして階層モジュール３０（画像処理モジュール）のみが記載されている。しかしながら、半導体装置１−１，１−２は、図１等に示したように、複数の階層モジュールを有し得る。
【００８７】
マイコン２１０（コントローラ）は、半導体装置１−１，１−２を監視する。マイコン２１０は、電源コントローラ２０２に電源制御信号を出力する。電源コントローラ２０２は、マイコン２１０からの電源制御信号に応じて、半導体装置１−１，１−２の一方に電源を供給し、他方への電源の供給を遮断するように制御を行う。また、マイコン２１０は、半導体装置１−１，１−２から出力されたＳＭエラー通知信号を受信し、ＳＭエラー通知信号に基づいて、どのコンポーネントに故障が発生したかをユーザに通知し得る。なお、このユーザへの通知は、実施の形態１においても同様であり得る。
【００８８】
図２０及び図２１は、実施の形態２にかかる半導体システム２００における半導体装置１の切り替え処理を説明するための図である。また、図２２は、実施の形態２にかかる半導体システム２００におけるタイミングチャートである。通常時では、図２０に示すように、電源コントローラ２０２は、半導体装置１−１（ＳＯＣ＃１）に電源を供給し、半導体装置１−２（ＳＯＣ＃２）の電源をオフする。そして、図２２に示すように、実施の形態１において上述したように、半導体装置１−１は、通常動作中の任意のタイミングで、フォルトインジェクションテストを実行する。
【００８９】
そして、半導体装置１−１（ＳＯＣ＃１）についてのあるタイミングにおけるフォルトインジェクションテスト（図２２の３番目のＦＩ）で、エラー（セーフティメカニズムの故障）が検出されたとする。この場合、マイコン２１０は、半導体装置１−１のセーフティメカニズムが故障したことを示す通知信号を受信し得る。マイコン２１０は、電源コントローラ２０２に対し、半導体装置１−１から半導体装置１−２に電源供給を切り替える旨を示す電源制御信号を出力する。これにより、図２２に示すように、電源コントローラ２０２は、半導体装置１−１（ＳＯＣ＃１）の電源をオフにし、半導体装置１−２（ＳＯＣ＃２）の電源をオンにする。そして、半導体装置１−２は、通常動作中の任意のタイミングで、フォルトインジェクションテストを実行する。
【００９０】
上述したように、実施の形態２にかかる半導体システム２００において、マイコン２１０は、複数の半導体装置のうちの半導体装置１−１（第１の半導体装置）が通常動作を行うように制御する。そして、マイコン２１０は、半導体装置１−１についてセーフティメカニズムの故障が検出された場合に、半導体装置１−１の動作を停止させ、半導体装置１−１とは異なる半導体装置１−２（第２の半導体装置）を動作させるように切り替える。これにより、１つの半導体装置１が故障しても、通常動作を継続させることが可能となる。また、これにより、自動運転技術の安全性を確保することができる。
【００９１】
（変形例）
なお、本実施の形態は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、本実施の形態にかかる半導体装置１は、自動運転技術に適用されることに限定されない。各コンポーネントの故障をチェックするセーフティメカニズムを有する半導体装置を採用し得るような、高い信頼性が要求される任意の技術に適用可能である。
【００９２】
また、上述した実施の形態においては、フォルトインジェクション機能１１０がセーフティメカニズムごとに対応して設けられているとしたが、このような構成に限られない。１つのフォルトインジェクション機能１１０が、複数のセーフティメカニズムに対して送信されるフォルトインジェクション信号を出力してもよい。しかしながら、上述したように、フォルトインジェクション機能１１０がセーフティメカニズムごとに対応して設けられているように構成されることで、任意のセーフティメカニズムを任意のタイミングでテストすることが可能となる。
【００９３】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【００９４】
１  半導体装置
２  タイマ
３  割り込みコントローラ
４  ＣＰＵ
１０，２０，３０，４０  階層モジュール
１２，２２，３２，４２  セーフティメカニズム
１４，２４，３４，４４  信号モニタ回路
１６  ＣＰＵ
２６−１  ビデオ入力
２６−２  ビデオ出力
３６−１  画像処理エンジン
３６−２  内蔵ＲＡＭ
４６  ＤＤＲメモリＩＦ
４８  画像処理エンジン
５０  ＢＩＳＴ制御回路
５２  スタートアップＢＩＳＴ回路
６０  低消費電力制御回路
６２  電源スイッチ
１００  エラー制御モジュール
１１０  フォルトインジェクション機能
１２０  ステータスレジスタ
１３０  選択回路
１３２  比較回路
２００  半導体システム
２０２  電源コントローラ
２１０  マイコン
【図１】
2020077095.tif 000003
【図２】
2020077095.tif 000004
【図３】
2020077095.tif 000005
【図４】
2020077095.tif 000006
【図５】
2020077095.tif 000007
【図６】
2020077095.tif 000008
【図７】
2020077095.tif 000009
【図８】
2020077095.tif 000010
【図９】
2020077095.tif 000011
【図１０】
2020077095.tif 000012
【図１１】
2020077095.tif 000013
【図１２】
2020077095.tif 000014
【図１３】
2020077095.tif 000015
【図１４】
2020077095.tif 000016
【図１５】
2020077095.tif 000017
【図１６】
2020077095.tif 000018
【図１７】
2020077095.tif 000019
【図１８】
2020077095.tif 000020
【図１９】
2020077095.tif 000021
【図２０】
2020077095.tif 000022
【図２１】
2020077095.tif 000023
【図２２】
2020077095.tif 000024