(57)【要約】【課題】従来の半導体装置では、演算コア以外のモード切替処理に必要な回路で生じた故障を検出することができず、信頼性が不十分である問題がある。【解決手段】一実施の形態によれば、半導体装置は、複数の演算コア１０、１１のうちロックステップモードでチェック用演算コアとなる演算コア１１に対応して設けられ、ロックステップモード時には対応する演算コア１１から出力されるインタフェース信号群を遮断し、スプリットモード時には対応する演算コア１１から出力されるインタフェース信号群を通過させる選択部１４と、選択部１４を介して出力されるインタフェース信号群を監視して、インタフェース信号群の異常状態をエラー信号として出力するアクセスモニタ１５と、アクセスモニタ１５から出力されるエラー信号に基づき異常状態処理要求を上位システムに出力するエラー制御部１６と、を有するものである。【選択図】図１
2019095893.tif 000002
【特許請求の範囲】
【請求項１】
第１の演算コアと、
第２の演算コアと、
前記第１の演算コアと前記第２の演算コアとが共通して利用する共有リソースと、
前記第１の演算コア及び前記第２の演算コアと、前記共有リソースと、の間の信号の送受信を仲介するシステムバスと、
前記第１の演算コアが前記共有リソースに対して出力する第１のインタフェース信号群と前記第２の演算コアが前記共有リソースに対して出力する第２のインタフェース信号群とを比較して、前記第１のインタフェース信号群と前記第２のインタフェース信号群とが不一致な状態となった場合に第１のエラー信号をイネーブル状態とする比較器と、
ロックステップモード時には前記第２のインタフェース信号群が前記システムバスに出力されることを防止し、前記第１の演算コアと前記第２の演算コアとが異なる動作を行うスプリットモード時には前記第２のインタフェース信号群を前記システムバスに伝達する選択部と、
前記選択部を介して前記システムバスに出力される前記第２のインタフェース信号群に含まれる監視対象信号を監視し、前記監視対象信号が前記システムバスに出力された場合に第２のエラー信号を出力すると共に前記監視対象信号が一定期間の間出力されなかった場合に第３のエラー信号を出力するアクセスモニタと、
前記第１のエラー信号、前記第２のエラー信号及び前記第３のエラー信号に基づき前記第１の演算コア、前記第２の演算コア及び前記選択部のいずれか１つの異常状態を検出し、検出された異常状態に応じて上位システムに前記異常状態に応じた処理を要求する異常状態処理要求を出力するエラー制御部と、
を有する半導体装置。
【請求項２】
前記アクセスモニタは、前記第２のインタフェース信号群のうち既知の値を有するアクセス要求信号を監視する請求項１に記載の半導体装置。
【請求項３】
前記アクセスモニタは、前記監視対象信号の値をそのまま前記第２のエラー信号として前記エラー制御部に出力する第１のパスと、経路上にカウンタを有し、前記監視対象信号の値に応じてカウンタを動作させ、前記カウンタにオーバーフローが発生した際に論理レベルが変化する前記第３のエラー信号を前記エラー制御部に出力する第２のパスとを有する請求項１に記載の半導体装置。
【請求項４】
前記カウンタは、前記監視対象信号が第１の論理レベルから第２の論理レベルに切り替わった後に前記第２の論理レベルが維持される期間が所定の期間を超えた場合に前記オーバフローが発生する請求項３に記載の半導体装置
【請求項５】
前記半導体装置は、
前記エラー制御部が前記異常状態処理要求を出力する前記監視対象信号の値を格納したエラー注入データレジスタと、
前記エラー注入データレジスタの値を前記第１のパス及び前記第２のパスに入力するか否かを切り替える切替設定値を格納するエラー注入有効レジスタと、を有し、
前記アクセスモニタは、
前記切替設定値に応じて、前記エラーデータ注入レジスタに格納された値と、前記監視対象信号とのいずれか一方を選択して前記第１のパス及び前記第２のパスに出力するセレクタを更に有する請求項３に記載の半導体装置。
【請求項６】
前記アクセスモニタは、前記第２のインタフェース信号群に含まれる前記監視対象信号と前記監視対象信号に付加されるＥＣＣコードとを用いて、前記ロックステップモード時に前記選択部を介して出力される前記監視対象信号の固着エラーを検出するＥＣＣデコーダを有し、前記ＥＣＣデコーダの出力を前記第１パス及び前記第２のパスに出力する請求項３に記載の半導体装置。
【請求項７】
前記アクセスモニタは、前記ロックステップモードと前記スプリットモードとの切り替えを指示するスプリットモード有効信号に応じて前記第１のパスを有効と無効化のいずれか一方とする第１のゲーティング回路と、スプリットモード有効信号に応じて前記第２のパスを有効と無効化のいずれか一方とする第２のゲーティング回路と、を有し、前記第１のゲーティング回路と前記第２のゲーティング回路は、排他的に有効と無効とが切り替えられる請求項１に記載の半導体装置。
【請求項８】
前記エラー制御部は、
前記第２のエラー信号により発生したエラー状態を通知する第１のエラー値を格納する第１のレジスタと、
前記第３のエラー信号により発生したエラー状態を通知する第２のエラー値を格納する第２のレジスタと、を有し、
前記第１のレジスタに格納された値が前記第２のエラー信号として入力された場合、又は、前記第２のレジスタに格納された値が前記第３のエラー信号として入力された場合に、前記異常状態処理要求を出力する請求項１に記載の半導体装置。
【請求項９】
前記エラー制御部は、
前記第１のエラー信号から前記第３のエラー信号によりエラーを検出した場合に、前記第１の演算コア、前記比較器、及び前記アクセスモニタに動作を初期化するローカルリセット信号を出力する請求項１に記載の半導体装置。
【請求項１０】
前記選択部を第１の選択部とし、
前記システムバスを介して前記共有リソースにアクセスを行うと共に前記ロックステップモードと前記スプリットモードとで動作可能な第３の演算コア及び第４の演算コアと、
ロックステップモード時には前記共有リソースに対して前記第４の演算コアが出力する第４のインタフェース信号群が前記システムバスに出力されることを防止し、前記第３の演算コアと前記第４の演算コアとが異なる動作を行うスプリットモード時には前記第４のインタフェース信号群を前記システムバスに伝達する第２の選択部と、
前記第１の選択部を介して前記システムバスに出力される前記第２のインタフェース信号群と、前記第２の選択部を介して前記システムバスに出力される前記第４のインタフェース信号群と、を調停して前記アクセスモニタに出力する調停回路と、
を有する請求項１に記載の半導体装置。
【請求項１１】
第１の演算コアと、
第２の演算コアと、
前記第１の演算コアと前記第２の演算コアとが共通して利用する共有リソースと、
前記第１の演算コア及び前記第２の演算コアと、前記共有リソースと、の間の信号の送受信を仲介するシステムバスと、
前記第１の演算コアが前記共有リソースに対して出力する第１のインタフェース信号群と前記第２の演算コアが前記共有リソースに対して出力する第２のインタフェース信号群とを比較して、前記第１のインタフェース信号群と前記第２のインタフェース信号群とが不一致な状態となった場合に第１のエラー信号をイネーブル状態とする比較器と、
ロックステップモード時には前記第２のインタフェース信号群が前記システムバスに出力されることを防止し、前記第１の演算コアと前記第２の演算コアとが異なる動作を行うスプリットモード時には前記第２のインタフェース信号群を前記システムバスに伝達する選択部と、
前記選択部を介して前記システムバスに出力される前記第２のインタフェース信号群に含まれる監視対象信号を監視し、前記監視対象信号が前記システムバスに出力された場合に第２のエラー信号を出力するアクセスモニタと、
前記第１のエラー信号及び前記第２のエラー信号に基づき前記第１の演算コア、前記第２の演算コア及び前記選択部のいずれか１つの異常状態を検出し、検出された異常状態に応じて上位システムに前記異常状態に応じた処理を要求する異常状態処理要求を出力するエラー制御部と、を有し、
前記監視対象信号は、前記ロックステップモード時において、正常時には予め値が定まっており、前記選択部が故障した異常時に値に変化が生じる信号である半導体装置。
【請求項１２】
前記監視対象信号は、前記第２の演算コアが前記共有リソースへのアクセスの許可を要求するアクセス要求信号である請求項１１に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置に関し、例えば複数のプロセッサを含み、動作モードとして、複数のプロセッサが同一の動作を行うロックステップモードと、複数のプロセッサが個別の動作を行うスプリットモードとを有する半導体装置に関する。
【背景技術】
【０００２】
近年、プログラムを実行する演算コアを内蔵した半導体装置では、複数の演算コアを内蔵することで信頼性の向上、或いは、処理能力の向上を実現しているものがある。このような半導体装置では、同じ演算結果を得られるようにして複数の演算コアを動作させるロックステップモードと、複数の演算コアを個別に動作させるスプリットモードと、を備えるものがある。そこで、特許文献１にこのロックステップモードとスプリットモードとを切替可能な半導体装置の例が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第８０５１３２３号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に開示された半導体装置では、ロックステップモード時の故障によりチェック用演算コアが内蔵メモリや周辺回路に対して意図しないアクセスを発生させるリスクがある。また、このような故障が発生した場合、スプリットモード時にチェック用演算コアとして機能していた演算コアが内蔵メモリや周辺回路にアクセス出来なくなるリスクが発生する。つまり、特許文献１に記載の半導体装置では、演算コア以外のモード切替処理に必要な回路で生じた故障を検出することができず、信頼性が不十分である問題がある。
【０００５】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００６】
一実施の形態によれば、半導体装置は、複数の演算コアのうちロックステップモードでチェック用演算コアとなる演算コアに対応して設けられ、ロックステップモード時には対応する演算コアから出力されるインタフェース信号群を遮断し、スプリットモード時には対応する演算コアから出力されるインタフェース信号群を通過させる選択部と、前記選択部を介して出力されるインタフェース信号群を監視して、前記インタフェース信号群の異常状態をエラー信号として出力するアクセスモニタと、前記アクセスモニタから出力されるエラー信号に基づき異常状態処理要求を上位システムに出力するエラー制御部と、を有するものである。
【発明の効果】
【０００７】
一実施の形態によれば、半導体装置は、演算コア以外のモード切替処理に必要な回路で生じた故障を検出することができる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１にかかる半導体装置のブロック図である。
【図２】実施の形態１にかかるアクセスモニタ及びエラー制御部のブロック図である。
【図３】実施の形態１にかかる時間監視部の状態遷移図である。
【図４】実施の形態２にかかる半導体装置のブロック図である。
【図５】実施の形態２にかかるエラー注入部及びアクセスモニタのブロック図である。
【図６】実施の形態３にかかる半導体装置のブロック図である。
【図７】実施の形態３にかかるエラー注入部及びアクセスモニタのブロック図である。
【図８】実施の形態４にかかる半導体装置のブロック図である。
【図９】実施の形態５にかかるアクセスモニタのブロック図である。
【図１０】実施の形態６にかかる半導体装置のブロック図である。
【図１１】実施の形態７にかかる半導体装置のブロック図である。
【図１２】実施の形態７にかかるアクセスモニタ及びエラー制御部のブロック図である。
【発明を実施するための形態】
【０００９】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、ＣＰＵ、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１０】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００１１】
実施の形態１
図１に実施の形態１にかかる半導体装置１のブロック図を示す。図１に示すように、半導体装置１は、それぞれがプログラムを実行する複数の演算コアを含む。実施の形態１にかかる半導体装置１は、内蔵する複数の演算コアの動作モードとして、それぞれの演算コアから同一の演算結果を得られるように複数の演算コアを動作させるロックステップモードと、複数の演算コアを独立して動作させるスプリットモードと、を有する。ロックステップモードでは、一方の演算コアを主たる演算処理に用い、他方の演算コアを一方の演算コアの動作を監視するチェック用演算コアとして用いる。つまり、ロックステップモードでは、２つの演算コアの演算結果の差に基づき演算コアの故障を早期に発見できるため、演算結果の信頼性を向上させることができる。一方、スプリットモードでは、複数の演算コアがそれぞれプログラムを実行するため、実行されるプログラム数の並列数を高めた高速な演算処理が可能である。
【００１２】
図１に示すように、実施の形態１にかかる半導体装置１は、第１の演算コア（例えば、第１のプロセッサ１０）、第２の演算コア（例えば、第２のプロセッサ１１）、第３のプロセッサ１２、比較器１３、選択部１４、アクセスモニタ１５、エラー制御部１６、共有リソース１７、１８を有する。共有リソース１７、１８は、例えば、メモリや、タイマ・Ｉ／Ｏインタフェース回路・アナログデジタル変換器・デジタルアナログ変換器等の周辺回路である。また、共有リソースは、第１のプロセッサ１０から第３のプロセッサ１２により共有されるハードウェアリソースである。図１では、共有リソース１７としてメモリが実装され、共有リソース１８としてメモリ以外のハードウェアリソース（例えば、周辺回路）が実装される例を示した。
【００１３】
第１のプロセッサ１０、第２のプロセッサ１１、第３のプロセッサ１２は、いずれもプログラムを実行する演算コアである。図１に示す実施の形態１にかかる半導体装置１は、ロックステップモードにおいて第１のプロセッサ１０を主演算コア及び第２のプロセッサ１１を主演算コアに対するチェック用演算コアとして用いる。このロックステップモード時の同一の演算結果を出力する演算コアは、同一の回路構成であることが好ましいが、異なる構成であっても構わない。また、図１に示す実施の形態１にかかる半導体装置１では、スプリットモードにおいては、第１のプロセッサ１０、第２のプロセッサ１１、第３のプロセッサ１２がそれぞれ個別にプログラムを実行する。
【００１４】
また、図１に示すように実施の形態１にかかる半導体装置１では、第１のプロセッサ１０、第２のプロセッサ１１、第３のプロセッサ１２、アクセスモニタ１５、エラー制御部１６、共有リソース１７、１８がシステムバスＢＵＳを介して通信可能な状態で構成される。なお、第２のプロセッサ１１については、選択部１４を介してシステムバスＢＵＳと接続される。
【００１５】
比較器１３は、第１のプロセッサ１０が共有リソース１７、１８に対して出力する第１のインタフェース信号群と第２のプロセッサ１１が共有リソース１７、１８に対して出力する第２のインタフェース信号群とを比較して、第１のインタフェース信号群と第２のインタフェース信号群とが不一致な状態となった場合に第１のエラー信号ＥＲＲ１をイネーブル状態とする。なお、比較器１３が監視するインタフェース信号群に含まれる信号の一部（例えば、データ信号のみ）であっても構わない。
【００１６】
選択部１４は、スプリットモード有効信号Ｓ＿ＳＬＴに応じて、第２のプロセッサ１１が出力するインタフェース信号群をシステムバスＢＵＳに伝達するか否かを切り替える。また、選択部１４は、スプリットモード有効信号Ｓ＿ＳＬＴに応じて、第２のプロセッサ１１宛にシステムバスＢＵＳから伝達されるインタフェース信号群を第２のプロセッサ１１に与えるのか、第１のプロセッサ１０宛にシステムバスＢＵＳから伝達されるインタフェース信号群を第２のプロセッサ１１に与えるのか、を切り替える。
【００１７】
具体的には、選択部１４は、スプリットモード有効信号Ｓ＿ＳＬＴがロックステップモードを指示する状態においては、第２のプロセッサ１１が出力する第２のインタフェース信号群がシステムバスＢＵＳに出力されることを防止する。また、ロックステップモード時には、選択部１４は、第２のプロセッサ１１宛にシステムバスＢＵＳから伝達される第２のインタフェース信号群と第１のプロセッサ１０宛にシステムバスＢＵＳから伝達される第１のインタフェース信号群とのうち第１のインタフェース信号群を選択して第２のプロセッサ１１に与える。
【００１８】
また、選択部１４は、スプリットモード有効信号Ｓ＿ＳＬＴがスプリットモードを指示する状態においては、第２のプロセッサ１１が出力する第２のインタフェース信号群をシステムバスＢＵＳに出力する。また、スプリットモード時には、選択部１４は、第２のプロセッサ１１宛にシステムバスＢＵＳから伝達される第２のインタフェース信号群と第１のプロセッサ１０宛にシステムバスＢＵＳから伝達される第１のインタフェース信号群とのうち第２のインタフェース信号群を選択して第２のプロセッサ１１に与える。
【００１９】
アクセスモニタ１５は、選択部１４を介してシステムバスＢＵＳに出力される第２のインタフェース信号群を監視し、第２のインタフェース信号群がシステムバスＢＵＳに出力された場合に第２のエラー信号ＥＲＲ２を出力すると共に第２のインタフェース信号群が一定期間の間出力されなかった場合に第３のエラー信号ＥＲＲ３を出力する。このアクセスモニタ１５の詳細は後述する。
【００２０】
エラー制御部１６は、第１のエラー信号ＥＲＲ１、第２のエラー信号ＥＲＲ２及び第３のエラー信号ＥＲＲ３に基づき第１のプロセッサ１０、第２のプロセッサ１１及び選択部１４のいずれか１つの異常状態を検出し、検出された異常状態に応じて上位システムに異常状態に応じた処理を要求する異常状態処理要求を出力する。図１に示す例では、エラー制御部１６は、異常状態処理要求を行うための信号として、外部エラー通知信号ＥＸ＿ＯＵＴ、エラー割込信号ＩＮＴ、リセット要求信号ＲＳＴを出力する。このエラー制御部１６の詳細については後述する。
【００２１】
続いて、アクセスモニタ１５、エラー制御部１６について詳細に説明する。そこで、図２に実施の形態１にかかるアクセスモニタ１５及びエラー制御部１６のブロック図を示す。なお、図２においては、アクセスモニタ１５及びエラー制御部１６で扱う信号を説明するために、第２のプロセッサ１１及び選択部１４を示した。
【００２２】
図２に示すように、実施の形態１にかかる半導体装置１では、第２のプロセッサ１１に入出力される第２のインタフェース信号群（以下、単にインタフェース信号群とも称す）に含まれる複数の信号のうちアクセス要求信号をアクセスモニタ１５及びエラー制御部１６によるエラー検出処理の対象とする。これはアクセス要求信号が既知の値を有する信号であるため、アクセスモニタ１５及びエラー制御部１６における値判定が容易であるためである。
【００２３】
図２に示すように、アクセスモニタ１５は、第１のパスＰＳ１、第２のパスＰＳ２を有する。また、第２のパスＰＳ２には時間監視部２１が設けられる。第１のパスＰＳ１は、第２のインタフェース信号群に含まれる信号のうち監視対象とする信号（実施の形態１ではアクセス要求信号）の値をそのまま第２のエラー信号ＥＲＲ２としてエラー制御部１６に出力する信号経路である。時間監視部２１は、アクセス要求信号の信号変化を検出し、信号変化を検出したタイミングから所定の時間を計時し、所定の時間が経過したところで出力信号（例えば、エラー信号ＥＲＲ３）の論理レベルを変化させる。時間監視部２１としては、例えば、カウンタを用いることができる。つまり、第２のパスＰＳ２は、第２のインタフェース信号群に含まれる信号のうち監視対象とする信号（例えば、アクセス要求信号）の値に応じてカウンタを動作させ、カウンタにオーバーフローが発生した際に論理レベルが変化する第３のエラー信号をエラー制御部１６に出力する。なお、時間監視部２１（例えば、カウンタ）がカウント値をオーバーフローさせるカウント値はシステムバスＢＵＳを介して第１のプロセッサ１０、或いは、他のプロセッサから与えられるものである。
【００２４】
ここで、実施の形態１にかかる半導体装置１では、時間監視部２１の動作に特徴の１つがあるため、時間監視部２１の動作について詳細に説明する。そこで、図３に実施の形態１にかかる時間監視部２１の状態遷移図を示す。なお、図３に示す例は、アクセス要求信号を監視対象信号としたものである。
【００２５】
実施の形態１にかかる半導体装置１は、起動直後は、アクセス要求信号が無効状態、カウンタがリセット状態、かつ、第３のエラー信号ＥＲＲ３がロウレベル（図３中のＬ）となる。そのため、時間監視部２１は、図３の状態遷移図の最上段の状態から動作を開始する。そして、アクセス要求信号が無効状態を維持する間は、時間監視部２１はリセット状態を維持する。そして、アクセス要求信号が無効から有効に切り替わると、時間監視部２１はカウンタを動作させる。そして、時間監視部２１は、アクセス要求信号が有効から無効に切り替わるとアクセス要求信号が無効な期間の長さをカウントする。
【００２６】
その後、時間監視部２１はカウント値がオーバーフローするまでは第３のエラー信号ＥＲＲ３をロウレベルで維持したままカウント値を増加させる。そして、時間監視部２１は、カウンタを動作させている期間にアクセス要求信号が無効から有効に切り替わった場合には再度カウンタをリセット状態として第３のエラー信号ＥＲＲ３をロウレベルとする状態に戻る。一方、時間監視部２１は、アクセス要求信号が無効状態から有効状態に切り替わらずに、カウンタのカウント値がオーバーフローした場合には第３のエラー信号ＥＲＲ３をロウレベルからハイレベルに切り替える。そして、時間監視部２１は、再度アクセス要求信号が無効から有効に切り替わったことに応じて、最初の状態に状態を戻す。
【００２７】
つまり、アクセスモニタ１５は、時間監視部２１を有することで、半導体装置１がスプリットモードで動作している場合に、何らかの原因でアクセス要求信号が無効状態で固着した場合に第３のエラー信号ＥＲＲ３により、当該エラーをエラー制御部１６に通知する。
【００２８】
エラー制御部１６は、第１のレジスタ（例えば、レジスタ３１）、ＡＮＤ回路３２、第２のレジスタ（例えば、レジスタ３３）、３４、ＯＲ回路３５、エラー通知信号生成部３６を有する。レジスタ３１には、第２のエラー信号ＥＲＲ２により発生したエラー状態を通知する第１のエラー値（例えば、第２のエラー信号ＥＲＲ２用リセット制御ビット）が格納される。レジスタ３３には、第３のエラー信号ＥＲＲ３により発生したエラー状態を通知する第１のエラー値（例えば、第３のエラー信号ＥＲＲ３用リセット制御ビット）が格納される。レジスタ３１、３３に格納される値は、システムバスＢＵＳを介して第１のプロセッサ１０、或いは、他のプロセッサから与えられるものである。
【００２９】
ＡＮＤ回路３２は、第２のエラー信号ＥＲＲ２がエラー状態を示す場合（例えばハイレベル）に、レジスタ３１に格納された第２のエラー信号ＥＲＲ２用リセット制御ビットの値を出力する。ＡＮＤ回路３４は、第３のエラー信号ＥＲＲ３がエラー状態を示す場合（例えばハイレベル）に、レジスタ３３に格納された第３のエラー信号ＥＲＲ３用リセット制御ビットの値を出力する。
【００３０】
ＯＲ回路３５は、ＡＮＤ回路３２及びＡＮＤ回路３４の出力信号のうち少なくとも一方がアクティブ（例えば、ハイレベル）となったことに応じて出力信号の論理レベルをロウレベルからハイレベルに切り替える。エラー通知信号生成部３６は、第１のエラー信号ＥＲＲ１及びＯＲ回路３５の出力信号がアクティブ（例えば、ハイレベル）となったことに応じて、異常状態処理要求を出力する。つまり、エラー通知信号生成部３６は、第２のエラー信号ＥＲＲ２として想定される値を格納するレジスタ３１と、前記第３のエラー信号として想定される値を格納する第２のレジスタと、を有し、前記第１のレジスタに格納された値が前記第２のエラー信号として入力された場合、又は、前記第２のレジスタに格納された値が前記第３のエラー信号として入力された場合に、異常状態処理要求を出力する。
【００３１】
なお、エラー通知信号生成部３６は、通知されたエラーの内容によって異常状態処理要求の内容を変更しても良い。例えば、第１のエラー信号ＥＲＲ１によりエラーが通知された場合には、上位システムにロックステップモードによる動作の停止を要求する異常状態処理要求を出力し、第２のエラー信号ＥＲＲ２又は第３のエラー信号ＥＲＲ３（つまり、ＯＲ回路３５の出力信号）によりエラーが通知された場合にはロックステップモードによる動作を停止すると共に第２のプロセッサ１１を使用不可にする異常状態処理要求を出力する等が考えられる。
【００３２】
ここで、実施の形態１にかかる半導体装置１の動作について説明する。実施の形態１にかかる半導体装置１は、上述したようにロックステップモードとスプリットモードとを有する。そこで、以下の説明では、ロックステップモードとスプリットモードとにわけて実施の形態１にかかる半導体装置１の動作の説明を行う。
【００３３】
まず、ロックステップモード動作時の実施の形態１にかかる半導体装置１の動作について説明する。ロックステップモードでは、スプリットモード有効信号Ｓ＿ＳＬＴが無効状態を指示する値（例えば、ロックステップモードを指示する値であって、ハイレベル）となる。これにより、選択部１４は、第２のプロセッサ１１から出力される第２のインタフェース信号群を遮断すると共に第１のプロセッサ１０を宛先としてシステムバスＢＵＳから入力される第１のインタフェース信号群を第２のプロセッサ１１に与える。つまり、ロックステップモードでは、選択部１４から出力されるインタフェース信号群は固定値（例えば、ロウレベル）となる。そのため、ロックステップモードでは、アクセスモニタ１５にはロウレベル（無効状態）で固定された監視対象信号（例えば、アクセス要求信号）が入力され、第２のエラー信号ＥＲＲ２は、無効状態（例えば、ロウレベル）が維持される。
【００３４】
しかしながら、選択部１４の故障、或いは、スプリットモード有効信号Ｓ＿ＳＬＴが有効状態（例えば、ハイレベル）で固着する故障が発生すると、選択部１４が第２のプロセッサ１１から出力される第２のインタフェース信号群を遮断できず、第２のインタフェース信号群がシステムバスＢＵＳに出力される。そして、このような故障が発生した場合、アクセスモニタ１５に与えられるアクセス要求信号の状態に変化が生じる。実施の形態１にかかる半導体装置１では、このアクセス要求信号の変化により第２のエラー信号ＥＲＲ２がハイレベルとなり、エラー制御部１６が異常状態処理要求を出力する。
【００３５】
ロックステップモードにおいて上記のような故障が発生した場合、第２のプロセッサ１１がスプリットモードの動作を行ってしまうという誤作動を起こし、共有リソース１７、１８へのライトアクセスすることで、ＦＩＦＯなどに対し、意図しない連続アクセスが発生し、正しくない動作となり、問題となる。なお、リードアクセスの場合は、第１のプロセッサ１０と第２のプロセッサ１１の動作の違いとなり、比較器で検出可能である。さらに、上記のような故障が発生した場合、共有リソース１７、１８へのアクセスの発行数が、２倍に増えることにより、バス性能が低下し、システムの制御周期が満足できないという問題がおきる可能性がある。
【００３６】
しかしながら、実施の形態１にかかる半導体装置１では、アクセスモニタ１５及びエラー制御部１６により、上記故障を検出することで、誤動作の発生を防ぐ処理を上位システムが行うことで、このような故障が発生した際の影響を最小限にとどめる。
【００３７】
続いて、スプリットモード動作時の実施の形態１にかかる半導体装置１の動作について説明する。スプリットモードでは、スプリットモード有効信号Ｓ＿ＳＬＴが有効状態を指示する値（例えば、スプリットモードを指示する値であって、ロウレベル）となる。これにより、選択部１４は、第２のプロセッサ１１から出力される第２のインタフェース信号群をシステムバスＢＵＳに出力すると共に第２のプロセッサ１１を宛先としてシステムバスＢＵＳから入力される第２のインタフェース信号群を第２のプロセッサ１１に与える。つまり、スプリットモードでは、選択部１４から出力されるインタフェース信号群は変動することになる。そのため、スプリットモードでは、アクセスモニタ１５には値が変動する監視対象信号（例えば、アクセス要求信号）が入力され、第３のエラー信号ＥＲＲ３は、無効状態（例えば、ロウレベル）が維持される。
【００３８】
しかしながら、選択部１４の故障、或いは、スプリットモード有効信号Ｓ＿ＳＬＴが無効状態（例えば、ロウレベル）で固着する故障が発生すると、選択部１４が第２のプロセッサ１１から出力される第２のインタフェース信号群を遮断し、第２のインタフェース信号群が遮断に出力される。そして、このような故障が発生した場合、アクセスモニタ１５に与えられるアクセス要求信号の状態が無効状態（例えばロウレベル）に固定される。実施の形態１にかかる半導体装置１では、スプリットモード時にアクセス要求信号が無効状態で固定されるため第３のエラー信号ＥＲＲ３がハイレベルとなり、エラー制御部１６が異常状態処理要求を出力する。
【００３９】
スプリットモードの時に上記のような故障が発生すると、選択部１４がロックステップモードとして誤動作し、第２のプロセッサ１１が共有リソース１７、１８にアクセスできなくなり、問題となる。しかしながら、実施の形態１にかかる半導体装置１では、アクセスモニタ１５及びエラー制御部１６により、上記故障を検出することで、誤動作の発生を防ぐ処理を上位システムが行うことで、このような故障が発生した際の影響を最小限にとどめる。
【００４０】
なお、故障が無ければ、ロックステップモードにおいて第３のエラー信号ＥＲＲ３が常にエラー通知状態になり、スプリットモードにおいて第２のエラー信号ＥＲＲ２が常にエラー通知状態となる。これらのエラー通知状態は、故障によるものではないため、疑似エラーとして上位システムが異常が発生したと判定しない疑似エラーとして処理する必要がある。この疑似エラー対策としては、エラー制御部１６（例えば、エラー通知信号生成部３６）の設定により、疑似エラーによるリセット要求、割り込み要求、端子出力を抑制する必要がある。このエラー制御部３６の設定は、独立した別の第３のプロセッサ１２により実施されることが望ましい。
【００４１】
上記説明より、実施の形態１にかかる半導体装置１では、比較器１３によるプロセッサ動作の監視だけでは検出できない選択部１４及びスプリットモード有効信号Ｓ＿ＳＬＴに関する故障を検出して、ロックステップモード時に生じた不具合に対処することが可能になる。
【００４２】
また、実施の形態１にかかる半導体装置１では、アクセスモニタ１５がスプリットモード時に生じた選択部１４及びスプリットモード有効信号Ｓ＿ＳＬＴに関する故障を検出して、スプリットモード時に生じた不具合に対処することが可能になる。
【００４３】
つまり、実施の形態１にかかる半導体装置１では、プロセッサの動作の監視のみでは検出することができない選択部１４及びスプリットモード有効信号Ｓ＿ＳＬＴに関する故障を検出し、不具合に対処することが可能になる。
【００４４】
実施の形態２
実施の形態２では、実施の形態１にかかる半導体装置１の別の例となる半導体装置２について説明する。なお、実施の形態２の説明では、実施の形態１の説明において説明した構成要素と同じ構成要素については実施の形態１と同じ符号を付して説明を省略する。
【００４５】
図４に実施の形態２にかかる半導体装置２のブロック図を示す。図４に示すように、実施の形態２にかかる半導体装置２は、実施の形態１のアクセスモニタ１５をアクセスモニタ１５ａに置き換え、エラー注入部１９を追加したものである。そこで、アクセスモニタ１５ａとエラー注入部１９について詳細に説明する。図５に実施の形態２にかかるエラー注入部及びアクセスモニタのブロック図を示す。
【００４６】
図５に示すように、アクセスモニタ１５ａは、アクセスモニタ１５にセレクタ２２を追加したものである。また、エラー注入部１９は、エラー注入有効レジスタ４１及びエラー注入データレジスタ４２を有する。エラー注入有効レジスタ４１は、エラー制御部が前記異常状態処理要求を出力する監視対象信号の値（例えばエラーデータ）が格納される。エラー注入データレジスタ４２は、エラー注入データレジスタの値を第１のパスＰＳ１及び第２のパスＰＳ２に入力するか否かを切り替える切替設定値を格納する。セレクタ２２は、切替設定値に応じて、エラーデータ注入レジスタ４２に格納された値と、監視対象信号とのいずれか一方を選択して第１のパス及び第２のパスに出力する。なお、エラー注入有効レジスタ４１に格納される切替設定値とエラー注入データレジスタ４２に格納される値は、第１のプロセッサ１０或いは第３のプロセッサ１２により与えられるものである。
【００４７】
実施の形態２にかかる半導体装置２では、アクセスモニタ１５ａ及びエラー注入部１９を有することで、アクセスモニタ１５ａ及びエラー制御部１６が正しく動作しているか否かを確認することができる。つまり、実施の形態２にかかる半導体装置２では、選択部１４のみならずアクセスモニタ１５ａ及びエラー制御部１６の故障も検出かのうであり、実施の形態１にかかる半導体装置１より高い信頼性を得ることができる。
【００４８】
実施の形態３
実施の形態３では、実施の形態１にかかる半導体装置２の別の例となる半導体装置３について説明する。なお、実施の形態３の説明では、実施の形態１、２の説明において説明した構成要素と同じ構成要素については実施の形態１、２と同じ符号を付して説明を省略する。
【００４９】
図６に実施の形態３にかかる半導体装置３のブロック図を示す。図６に示すように、実施の形態３にかかる半導体装置３は、アクセスモニタ１５をアクセスモニタ１５ｂに置き換えたものである。また、実施の形態３にかかる半導体装置３は、比較器１３にスプリットモード有効信号Ｓ＿ＳＬＴが入力される。そこで、アクセスモニタ１５ｂについて詳細に説明する。図７に実施の形態３にかかるエラー注入部及びアクセスモニタのブロック図を示す。
【００５０】
図７に示すように、アクセスモニタ１５ｂは、アクセスモニタ１５ａにＡＮＤ回路２３、２４を追加したものである。ＡＮＤ回路２３は、スプリットモード有効信号Ｓ＿ＳＬＴに応じて第１のパスＰＳ１を有効と無効化のいずれか一方とする第１のゲーティング回路である。ＡＮＤ回路２４は、スプリットモード有効信号Ｓ＿ＳＬＴに応じて第２のパスＰＳ２を有効と無効化のいずれか一方とする第２のゲーティング回路である。ここで、ＡＮＤ回路２３の２つの入力端子のうちスプリットモード有効信号Ｓ＿ＳＬＴを入力する入力端子は、スプリットモード有効信号Ｓ＿ＳＬＴがロウレベルのときにアクティブ（例えば、ハイレベルが入力された時の状態）となる端子である。一方、ＡＮＤ回路２４の２つの入力端子のうちスプリットモード有効信号Ｓ＿ＳＬＴを入力する入力端子は、スプリットモード有効信号Ｓ＿ＳＬＴがハイレベルのときにアクティブとなる端子である。つまり、ＡＮＤ回路２３とＡＮＤ回路２４は、排他的に有効と無効とが切り替えられる。
【００５１】
このようにＡＮＤ回路２３、２４を設けることで、実施の形態３にかかる半導体装置３では、ロックステップモード時には第２のパスＰＳ２を無効にして第３のエラー信号ＥＲＲ３が有効になることを防止し、スプリットモードには第１のパスＰＳ１を無効にして第２のエラー信号ＥＲＲ２が有効になることを防止する。
【００５２】
また、実施の形態３にかかる半導体装置３では、比較器１３にスプリットモード有効信号Ｓ＿ＳＬＴが入力されることで、スプリットモード時に比較器１３を停止させる。
【００５３】
上記説明より、実施の形態３にかかる半導体装置３では、ＡＮＤ回路２３、２４を用いることで各モードにおいて疑似エラーを生じさせる経路を無効化して、疑似エラーの発生を抑制する。これにより、実施の形態３ではエラー制御部１６における疑似エラーに関する処理をなくすことができる。また、実施の形態３では、比較器１３の動作期間を短縮して、消費電力を低減することができる。
【００５４】
実施の形態４
実施の形態４では、実施の形態３にかかる半導体装置３の別の例となる半導体装置４について説明する。なお、実施の形態４の説明では、実施の形態１〜３の説明において説明した構成要素と同じ構成要素については実施の形態１〜３と同じ符号を付して説明を省略する。
【００５５】
図８に実施の形態４にかかる半導体装置４のブロック図を示す。図８に示すように、実施の形態４にかかる半導体装置４は、第２のプロセッサ１１、比較器１３、アクセスモニタ１５ｂ、エラー制御部１６を第２のプロセッサ１１ｃ、比較器１３ｃ、アクセスモニタ１５ｃ、エラー制御部１６ｃに置き換えたものである。
【００５６】
エラー制御部１６ｃは、エラー制御部１６に第１のエラー信号ＥＲＲ１から第３のエラー信号ＥＲＲ３によりエラーを検出した場合に、第２のプロセッサ１１ｃ、比較器１３ｃ、アクセスモニタ１５ｃに動作を初期化するローカルリセット信号ＲＳＴ＿Ｌを出力する機能を追加したものである。そして、第２のプロセッサ１１ｃ、比較器１３ｃ、アクセスモニタ１５ｃは、第２のプロセッサ１１、比較器１３、アクセスモニタ１５ｂにローカルリセット信号ＲＳＴ＿Ｌによるリセットを実行可能な機能を追加したものである。
【００５７】
実施の形態４にかかる半導体装置４は、第２のプロセッサ１１ｃ及び比較器１３ｃをリセット状態とすることで、第２のプロセッサ１１による共有リソース１７、１８への侵害、或いは、比較器、アクセスモニタ１５ｃからの疑似エラーの発生を抑止する。また、これにより、実施の形態４にかかる半導体装置４では、第１のプロセッサ１０や第３のプロセッサ１２等による動作継続が可能となる。また、第１のプロセッサ１０や第３のプロセッサ１２はエラー制御部からの割込み通知により、第２のプロセッサ１１、比較器１３ｃ、アクセスモニタ１５ｃがリセット状態であることを理解した上での動作継続が可能である。
【００５８】
実施の形態５
実施の形態５では、実施の形態１にかかるアクセスモニタ１５の別の形態となるアクセスモニタ１５ｄについて説明する。なお、実施の形態５の説明では、実施の形態１の説明において説明した構成要素と同じ構成要素については実施の形態１と同じ符号を付して説明を省略する。
【００５９】
図９に実施の形態５にかかるアクセスモニタ１５ｄのブロック図を示す。図９に示すように、アクセスモニタ１５ｄは、アクセスモニタ１５にＥＣＣデコーダ２５を追加したものである。ＥＣＣデコーダ２５は、第２のインタフェース信号群に含まれる監視対象信号と監視対象信号に付加されるＥＣＣコードとを用いて、ロックステップモード時に前記選択部を介して出力される前記監視対象信号の固着エラーを検出する。そして、アクセスモニタ１５ｄでは、ＥＣＣデコーダ２５の出力を第１パスＰＳ１及び第２のパスＰＳ２に出力する。なお、選択部１４から出力される監視対象信号と監視対象信号に付随するＥＣＣコードとの組み合わせは、選択部１４が故障した際にＥＣＣデコーダ２５におけるデコード処理によりエラーとなる組み合わせが好ましい。
【００６０】
実施の形態５にかかる半導体装置では、ＥＣＣデコーダ２５を用いることで、監視対象信号としてアクセス要求信号等の既知の値を有する信号のみならず、データ信号等の値がその都度変化するような信号を用いることができる。これは、ロックステップモード時に選択部１４に故障が発生した場合、選択部１４を介して出力される何れかの信号に固着が発生するが、ＥＣＣコードのようなエラー検出コードを用いたデコード処理を用いることで、インタフェース信号群に含まれる信号がその都度変化する信号であったとしても、この固着エラーを検出できるためである。
【００６１】
実施の形態６
実施の形態６では、実施の形態１にかかる半導体装置１の別の形態となる半導体装置６について説明する。なお、実施の形態６の説明では、実施の形態１の説明において説明した構成要素と同じ構成要素については実施の形態１と同じ符号を付して説明を省略する。
【００６２】
図１０に実施の形態６にかかる半導体装置６のブロック図を示す。図１０に示すように、実施の形態６にかかる半導体装置６は、ロックステップモードとスプリットモードとで動作を切り替え可能な構成を２組有する。図１０に示す例では、第１のプロセッサ１０、第２のプロセッサ１１、比較器１３、選択部１４が第１のロックステップ構成であり、第３のプロセッサ５０、第４のプロセッサ５１、比較器５３、選択部５４が第２のロックステップ構成である。そして、実施の形態６にかかる半導体装置６では、調停回路（例えば、ＯＲ回路）が追加される。ＯＲ回路６０は、選択部１４を介して出力される第２のインタフェース信号群と、選択部５４を介して第４のプロセッサ５１が出力する第４のインタフェース信号群とを調停してアクセスモニタ１５に選択部を介して出力されるインタフェース信号群を伝達する。
【００６３】
実施の形態６にかかる半導体装置６では、ＯＲ回路６０を用いて２つのロックステップ構成の動作を１組のアクセスモニタ１５及びエラー制御部１６により監視することができる。これにより、実施の形態６にかかる半導体装置６では、ロックステップ構成の回路の数に対するアクセスモニタ１５及びエラー制御部１６の回路面積を削減することができる。
【００６４】
実施の形態７
実施の形態７では、実施の形態１にかかる半導体装置１の別の形態となる半導体装置７について説明する。なお、実施の形態７の説明では、実施の形態１の説明において説明した構成要素と同じ構成要素については実施の形態１と同じ符号を付して説明を省略する。
【００６５】
図１１に実施の形態７にかかる半導体装置７のブロック図を示す。図１１に示すように、実施の形態７にかかる半導体装置７は、アクセスモニタ１５及びエラー制御部１６に代えてアクセスモニタ１５ｅ及びエラー制御部１６ｅを有する。
【００６６】
アクセスモニタ１５ｅは、選択部１４を介してシステムバスＢＵＳに出力される第２のインタフェース信号群に含まれる監視対象信号を監視し、監視対象信号がシステムバスＢＵＳに出力された場合に第２のエラー信号ＥＲＲ２を出力する。エラー制御部１６ｅは、第１のエラー信号ＥＲＲ１及び第２のエラー信号ＥＲＲ２に基づき第１のプロセッサ１０、第２のプロセッサ１１及び選択部１４のいずれか１つの異常状態を検出し、検出された異常状態に応じて上位システムに異常状態に応じた処理を要求する異常状態処理要求（例えば、リセット要求信号ＲＳＴ、エラー割込信号ＩＮＴ、外部エラー通知信号ＥＸ＿ＯＵＴ）を出力する。
【００６７】
ここで、アクセスモニタ１５ｅ及びエラー制御部１６ｅについて詳細に説明する。そこで、図１２に実施の形態７にかかるアクセスモニタ１５ｅ及びエラー制御部１６ｅのブロック図を示す。図１２に示すように、アクセスモニタ１５ｅは、アクセスモニタ１５から時間監視部２１及び第２のパスＰＳ２を除いたものである。また、エラー制御部１６ｅは、エラー制御部１６からレジスタ３３、ＡＮＤ回路３４、ＯＲ回路３５を除いたものである。そして、実施の形態７にかかるアクセスモニタ１５ｅは、ロックステップモード時において、正常時には予め値が定まっており、前記選択部が故障した異常時に値に変化が生じる信号を監視対象信号とする。図１２に示す例では、アクセスモニタ１５ｅは、第２のプロセッサ１１が共有リソース１７、１８へのアクセスの許可を要求するアクセス要求信号を監視対象信号とする。アクセス要求信号は、ロックステップモード時には選択部１４がロウレベルを維持する信号であり、選択部１４に故障が発生した場合には、第２のプロセッサ１１の動作に応じてハイレベルとなることがある信号である。アクセスモニタ１５ｅは、ロックステップモード時に選択部１４から出力されるアクセス要求信号がハイレベルとなった場合に、第２のエラー信号ＥＲＲ２によりエラーが発生したことをエラー制御部１６ｅに伝達する。
【００６８】
実施の形態７にかかる半導体装置７では、実施の形態１にかかる半導体装置１からスプリットモード時のエラー検出機能を削減したものである。しかしながら、共有リソースへのアクセス集中（或いは衝突）等のより重大な不具合は、ロックステップモードに発生する。そのため、半導体装置の仕様に応じて、実施の形態７にかかる半導体装置７を採用することで、時間監視部２１、レジスタ３３等の回路を削減して回路面積を削減することができる。
【００６９】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【００７０】
１〜４、６、７  半導体装置
１０  第１のプロセッサ
１１  第２のプロセッサ
１２  第３のプロセッサ
１３  比較器
１４  選択部
１５  アクセスモニタ
１６  エラー制御部
１７  共有リソース
１８  共有リソース
１９  エラー注入部
２１  時間監視部
２２  セレクタ
２３  ＡＮＤ回路
２４  ＡＮＤ回路
２５  ＥＣＣデコーダ
３１  レジスタ
３２  ＡＮＤ回路
３３  レジスタ
３４  ＡＮＤ回路
３５  ＯＲ回路
３６  エラー通知信号生成部
４１  エラー注入有効レジスタ
４２  エラー注入データレジスタ
５０  第３のプロセッサ
５１  第４のプロセッサ
５３  比較器
５４  選択部
６０  ＯＲ回路
ＰＳ１  第１のパス
ＰＳ２  第２のパス
Ｓ＿ＳＬＴ  スプリットモード有効信号
ＥＲＲ１  第１のエラー信号
ＥＲＲ２  第２のエラー信号
ＥＲＲ３  第３のエラー信号
ＥＸ＿ＯＵＴ  外部エラー通知信号
ＩＮＴ  エラー割込信号
ＲＳＴ  リセット要求信号
【図１】
2019095893.tif 000003
【図２】
2019095893.tif 000004
【図３】
2019095893.tif 000005
【図４】
2019095893.tif 000006
【図５】
2019095893.tif 000007
【図６】
2019095893.tif 000008
【図７】
2019095893.tif 000009
【図８】
2019095893.tif 000010
【図９】
2019095893.tif 000011
【図１０】
2019095893.tif 000012
【図１１】
2019095893.tif 000013
【図１２】
2019095893.tif 000014