(58)【調査した分野】(Int.Cl.,DB名)
前記アクセスモニタは、前記監視対象信号の値をそのまま前記第2のエラー信号として前記エラー制御部に出力する第1のパスと、経路上にカウンタを有し、前記監視対象信号の値に応じてカウンタを動作させ、前記カウンタにオーバーフローが発生した際に論理レベルが変化する前記第3のエラー信号を前記エラー制御部に出力する第2のパスとを有する請求項1に記載の半導体装置。
前記カウンタは、前記監視対象信号が第1の論理レベルから第2の論理レベルに切り替わった後に前記第2の論理レベルが維持される期間が所定の期間を超えた場合に前記オーバフローが発生する請求項3に記載の半導体装置
前記アクセスモニタは、前記第2のインタフェース信号群に含まれる前記監視対象信号と前記監視対象信号に付加されるECCコードとを用いて、前記ロックステップモード時に前記選択部を介して出力される前記監視対象信号の固着エラーを検出するECCデコーダを有し、前記ECCデコーダの出力を前記第1パス及び前記第2のパスに出力する請求項3に記載の半導体装置。
前記アクセスモニタは、前記ロックステップモードと前記スプリットモードとの切り替えを指示するスプリットモード有効信号に応じて前記第1のパスを有効と無効化のいずれか一方とする第1のゲーティング回路と、スプリットモード有効信号に応じて前記第2のパスを有効と無効化のいずれか一方とする第2のゲーティング回路と、を有し、前記第1のゲーティング回路と前記第2のゲーティング回路は、排他的に有効と無効とが切り替えられる請求項1に記載の半導体装置。
【発明を実施するための形態】
【0009】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、CPU、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【0010】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non−transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0011】
実施の形態1
図1に実施の形態1にかかる半導体装置1のブロック図を示す。
図1に示すように、半導体装置1は、それぞれがプログラムを実行する複数の演算コアを含む。実施の形態1にかかる半導体装置1は、内蔵する複数の演算コアの動作モードとして、それぞれの演算コアから同一の演算結果を得られるように複数の演算コアを動作させるロックステップモードと、複数の演算コアを独立して動作させるスプリットモードと、を有する。ロックステップモードでは、一方の演算コアを主たる演算処理に用い、他方の演算コアを一方の演算コアの動作を監視するチェック用演算コアとして用いる。つまり、ロックステップモードでは、2つの演算コアの演算結果の差に基づき演算コアの故障を早期に発見できるため、演算結果の信頼性を向上させることができる。一方、スプリットモードでは、複数の演算コアがそれぞれプログラムを実行するため、実行されるプログラム数の並列数を高めた高速な演算処理が可能である。
【0012】
図1に示すように、実施の形態1にかかる半導体装置1は、第1の演算コア(例えば、第1のプロセッサ10)、第2の演算コア(例えば、第2のプロセッサ11)、第3のプロセッサ12、比較器13、選択部14、アクセスモニタ15、エラー制御部16、共有リソース17、18を有する。共有リソース17、18は、例えば、メモリや、タイマ・I/Oインタフェース回路・アナログデジタル変換器・デジタルアナログ変換器等の周辺回路である。また、共有リソースは、第1のプロセッサ10から第3のプロセッサ12により共有されるハードウェアリソースである。
図1では、共有リソース17としてメモリが実装され、共有リソース18としてメモリ以外のハードウェアリソース(例えば、周辺回路)が実装される例を示した。
【0013】
第1のプロセッサ10、第2のプロセッサ11、第3のプロセッサ12は、いずれもプログラムを実行する演算コアである。
図1に示す実施の形態1にかかる半導体装置1は、ロックステップモードにおいて第1のプロセッサ10を主演算コア及び第2のプロセッサ11を主演算コアに対するチェック用演算コアとして用いる。このロックステップモード時の同一の演算結果を出力する演算コアは、同一の回路構成であることが好ましいが、異なる構成であっても構わない。また、
図1に示す実施の形態1にかかる半導体装置1では、スプリットモードにおいては、第1のプロセッサ10、第2のプロセッサ11、第3のプロセッサ12がそれぞれ個別にプログラムを実行する。
【0014】
また、
図1に示すように実施の形態1にかかる半導体装置1では、第1のプロセッサ10、第2のプロセッサ11、第3のプロセッサ12、アクセスモニタ15、エラー制御部16、共有リソース17、18がシステムバスBUSを介して通信可能な状態で構成される。なお、第2のプロセッサ11については、選択部14を介してシステムバスBUSと接続される。
【0015】
比較器13は、第1のプロセッサ10が共有リソース17、18に対して出力する第1のインタフェース信号群と第2のプロセッサ11が共有リソース17、18に対して出力する第2のインタフェース信号群とを比較して、第1のインタフェース信号群と第2のインタフェース信号群とが不一致な状態となった場合に第1のエラー信号ERR1をイネーブル状態とする。なお、比較器13が監視するインタフェース信号群に含まれる信号の一部(例えば、データ信号のみ)であっても構わない。
【0016】
選択部14は、スプリットモード有効信号S_SLTに応じて、第2のプロセッサ11が出力するインタフェース信号群をシステムバスBUSに伝達するか否かを切り替える。また、選択部14は、スプリットモード有効信号S_SLTに応じて、第2のプロセッサ11宛にシステムバスBUSから伝達されるインタフェース信号群を第2のプロセッサ11に与えるのか、第1のプロセッサ10宛にシステムバスBUSから伝達されるインタフェース信号群を第2のプロセッサ11に与えるのか、を切り替える。
【0017】
具体的には、選択部14は、スプリットモード有効信号S_SLTがロックステップモードを指示する状態においては、第2のプロセッサ11が出力する第2のインタフェース信号群がシステムバスBUSに出力されることを防止する。また、ロックステップモード時には、選択部14は、第2のプロセッサ11宛にシステムバスBUSから伝達される第2のインタフェース信号群と第1のプロセッサ10宛にシステムバスBUSから伝達される第1のインタフェース信号群とのうち第1のインタフェース信号群を選択して第2のプロセッサ11に与える。
【0018】
また、選択部14は、スプリットモード有効信号S_SLTがスプリットモードを指示する状態においては、第2のプロセッサ11が出力する第2のインタフェース信号群をシステムバスBUSに出力する。また、スプリットモード時には、選択部14は、第2のプロセッサ11宛にシステムバスBUSから伝達される第2のインタフェース信号群と第1のプロセッサ10宛にシステムバスBUSから伝達される第1のインタフェース信号群とのうち第2のインタフェース信号群を選択して第2のプロセッサ11に与える。
【0019】
アクセスモニタ15は、選択部14を介してシステムバスBUSに出力される第2のインタフェース信号群を監視し、第2のインタフェース信号群がシステムバスBUSに出力された場合に第2のエラー信号ERR2を出力すると共に第2のインタフェース信号群が一定期間の間出力されなかった場合に第3のエラー信号ERR3を出力する。このアクセスモニタ15の詳細は後述する。
【0020】
エラー制御部16は、第1のエラー信号ERR1、第2のエラー信号ERR2及び第3のエラー信号ERR3に基づき第1のプロセッサ10、第2のプロセッサ11及び選択部14のいずれか1つの異常状態を検出し、検出された異常状態に応じて上位システムに異常状態に応じた処理を要求する異常状態処理要求を出力する。
図1に示す例では、エラー制御部16は、異常状態処理要求を行うための信号として、外部エラー通知信号EX_OUT、エラー割込信号INT、リセット要求信号RSTを出力する。このエラー制御部16の詳細については後述する。
【0021】
続いて、アクセスモニタ15、エラー制御部16について詳細に説明する。そこで、
図2に実施の形態1にかかるアクセスモニタ15及びエラー制御部16のブロック図を示す。なお、
図2においては、アクセスモニタ15及びエラー制御部16で扱う信号を説明するために、第2のプロセッサ11及び選択部14を示した。
【0022】
図2に示すように、実施の形態1にかかる半導体装置1では、第2のプロセッサ11に入出力される第2のインタフェース信号群(以下、単にインタフェース信号群とも称す)に含まれる複数の信号のうちアクセス要求信号をアクセスモニタ15及びエラー制御部16によるエラー検出処理の対象とする。これはアクセス要求信号が既知の値を有する信号であるため、アクセスモニタ15及びエラー制御部16における値判定が容易であるためである。
【0023】
図2に示すように、アクセスモニタ15は、第1のパスPS1、第2のパスPS2を有する。また、第2のパスPS2には時間監視部21が設けられる。第1のパスPS1は、第2のインタフェース信号群に含まれる信号のうち監視対象とする信号(実施の形態1ではアクセス要求信号)の値をそのまま第2のエラー信号ERR2としてエラー制御部16に出力する信号経路である。時間監視部21は、アクセス要求信号の信号変化を検出し、信号変化を検出したタイミングから所定の時間を計時し、所定の時間が経過したところで出力信号(例えば、エラー信号ERR3)の論理レベルを変化させる。時間監視部21としては、例えば、カウンタを用いることができる。つまり、第2のパスPS2は、第2のインタフェース信号群に含まれる信号のうち監視対象とする信号(例えば、アクセス要求信号)の値に応じてカウンタを動作させ、カウンタにオーバーフローが発生した際に論理レベルが変化する第3のエラー信号をエラー制御部16に出力する。なお、時間監視部21(例えば、カウンタ)がカウント値をオーバーフローさせるカウント値はシステムバスBUSを介して第1のプロセッサ10、或いは、他のプロセッサから与えられるものである。
【0024】
ここで、実施の形態1にかかる半導体装置1では、時間監視部21の動作に特徴の1つがあるため、時間監視部21の動作について詳細に説明する。そこで、
図3に実施の形態1にかかる時間監視部21の状態遷移図を示す。なお、
図3に示す例は、アクセス要求信号を監視対象信号としたものである。
【0025】
実施の形態1にかかる半導体装置1は、起動直後は、アクセス要求信号が無効状態、カウンタがリセット状態、かつ、第3のエラー信号ERR3がロウレベル(
図3中のL)となる。そのため、時間監視部21は、
図3の状態遷移図の最上段の状態から動作を開始する。そして、アクセス要求信号が無効状態を維持する間は、時間監視部21はリセット状態を維持する。そして、アクセス要求信号が無効から有効に切り替わると、時間監視部21はカウンタを動作させる。そして、時間監視部21は、アクセス要求信号が有効から無効に切り替わるとアクセス要求信号が無効な期間の長さをカウントする。
【0026】
その後、時間監視部21はカウント値がオーバーフローするまでは第3のエラー信号ERR3をロウレベルで維持したままカウント値を増加させる。そして、時間監視部21は、カウンタを動作させている期間にアクセス要求信号が無効から有効に切り替わった場合には再度カウンタをリセット状態として第3のエラー信号ERR3をロウレベルとする状態に戻る。一方、時間監視部21は、アクセス要求信号が無効状態から有効状態に切り替わらずに、カウンタのカウント値がオーバーフローした場合には第3のエラー信号ERR3をロウレベルからハイレベルに切り替える。そして、時間監視部21は、再度アクセス要求信号が無効から有効に切り替わったことに応じて、最初の状態に状態を戻す。
【0027】
つまり、アクセスモニタ15は、時間監視部21を有することで、半導体装置1がスプリットモードで動作している場合に、何らかの原因でアクセス要求信号が無効状態で固着した場合に第3のエラー信号ERR3により、当該エラーをエラー制御部16に通知する。
【0028】
エラー制御部16は、第1のレジスタ(例えば、レジスタ31)、AND回路32、第2のレジスタ(例えば、レジスタ33)、34、OR回路35、エラー通知信号生成部36を有する。レジスタ31には、第2のエラー信号ERR2により発生したエラー状態を通知する第1のエラー値(例えば、第2のエラー信号ERR2用リセット制御ビット)が格納される。レジスタ33には、第3のエラー信号ERR3により発生したエラー状態を通知する第1のエラー値(例えば、第3のエラー信号ERR3用リセット制御ビット)が格納される。レジスタ31、33に格納される値は、システムバスBUSを介して第1のプロセッサ10、或いは、他のプロセッサから与えられるものである。
【0029】
AND回路32は、第2のエラー信号ERR2がエラー状態を示す場合(例えばハイレベル)に、レジスタ31に格納された第2のエラー信号ERR2用リセット制御ビットの値を出力する。AND回路34は、第3のエラー信号ERR3がエラー状態を示す場合(例えばハイレベル)に、レジスタ33に格納された第3のエラー信号ERR3用リセット制御ビットの値を出力する。
【0030】
OR回路35は、AND回路32及びAND回路34の出力信号のうち少なくとも一方がアクティブ(例えば、ハイレベル)となったことに応じて出力信号の論理レベルをロウレベルからハイレベルに切り替える。エラー通知信号生成部36は、第1のエラー信号ERR1及びOR回路35の出力信号がアクティブ(例えば、ハイレベル)となったことに応じて、異常状態処理要求を出力する。つまり、エラー通知信号生成部36は、第2のエラー信号ERR2として想定される値を格納するレジスタ31と、前記第3のエラー信号として想定される値を格納する第2のレジスタと、を有し、前記第1のレジスタに格納された値が前記第2のエラー信号として入力された場合、又は、前記第2のレジスタに格納された値が前記第3のエラー信号として入力された場合に、異常状態処理要求を出力する。
【0031】
なお、エラー通知信号生成部36は、通知されたエラーの内容によって異常状態処理要求の内容を変更しても良い。例えば、第1のエラー信号ERR1によりエラーが通知された場合には、上位システムにロックステップモードによる動作の停止を要求する異常状態処理要求を出力し、第2のエラー信号ERR2又は第3のエラー信号ERR3(つまり、OR回路35の出力信号)によりエラーが通知された場合にはロックステップモードによる動作を停止すると共に第2のプロセッサ11を使用不可にする異常状態処理要求を出力する等が考えられる。
【0032】
ここで、実施の形態1にかかる半導体装置1の動作について説明する。実施の形態1にかかる半導体装置1は、上述したようにロックステップモードとスプリットモードとを有する。そこで、以下の説明では、ロックステップモードとスプリットモードとにわけて実施の形態1にかかる半導体装置1の動作の説明を行う。
【0033】
まず、ロックステップモード動作時の実施の形態1にかかる半導体装置1の動作について説明する。ロックステップモードでは、スプリットモード有効信号S_SLTが無効状態を指示する値(例えば、ロックステップモードを指示する値であって、ハイレベル)となる。これにより、選択部14は、第2のプロセッサ11から出力される第2のインタフェース信号群を遮断すると共に第1のプロセッサ10を宛先としてシステムバスBUSから入力される第1のインタフェース信号群を第2のプロセッサ11に与える。つまり、ロックステップモードでは、選択部14から出力されるインタフェース信号群は固定値(例えば、ロウレベル)となる。そのため、ロックステップモードでは、アクセスモニタ15にはロウレベル(無効状態)で固定された監視対象信号(例えば、アクセス要求信号)が入力され、第2のエラー信号ERR2は、無効状態(例えば、ロウレベル)が維持される。
【0034】
しかしながら、選択部14の故障、或いは、スプリットモード有効信号S_SLTが有効状態(例えば、ハイレベル)で固着する故障が発生すると、選択部14が第2のプロセッサ11から出力される第2のインタフェース信号群を遮断できず、第2のインタフェース信号群がシステムバスBUSに出力される。そして、このような故障が発生した場合、アクセスモニタ15に与えられるアクセス要求信号の状態に変化が生じる。実施の形態1にかかる半導体装置1では、このアクセス要求信号の変化により第2のエラー信号ERR2がハイレベルとなり、エラー制御部16が異常状態処理要求を出力する。
【0035】
ロックステップモードにおいて上記のような故障が発生した場合、第2のプロセッサ11がスプリットモードの動作を行ってしまうという誤作動を起こし、共有リソース17、18へのライトアクセスすることで、FIFOなどに対し、意図しない連続アクセスが発生し、正しくない動作となり、問題となる。なお、リードアクセスの場合は、第1のプロセッサ10と第2のプロセッサ11の動作の違いとなり、比較器で検出可能である。さらに、上記のような故障が発生した場合、共有リソース17、18へのアクセスの発行数が、2倍に増えることにより、バス性能が低下し、システムの制御周期が満足できないという問題がおきる可能性がある。
【0036】
しかしながら、実施の形態1にかかる半導体装置1では、アクセスモニタ15及びエラー制御部16により、上記故障を検出することで、誤動作の発生を防ぐ処理を上位システムが行うことで、このような故障が発生した際の影響を最小限にとどめる。
【0037】
続いて、スプリットモード動作時の実施の形態1にかかる半導体装置1の動作について説明する。スプリットモードでは、スプリットモード有効信号S_SLTが有効状態を指示する値(例えば、スプリットモードを指示する値であって、ロウレベル)となる。これにより、選択部14は、第2のプロセッサ11から出力される第2のインタフェース信号群をシステムバスBUSに出力すると共に第2のプロセッサ11を宛先としてシステムバスBUSから入力される第2のインタフェース信号群を第2のプロセッサ11に与える。つまり、スプリットモードでは、選択部14から出力されるインタフェース信号群は変動することになる。そのため、スプリットモードでは、アクセスモニタ15には値が変動する監視対象信号(例えば、アクセス要求信号)が入力され、第3のエラー信号ERR3は、無効状態(例えば、ロウレベル)が維持される。
【0038】
しかしながら、選択部14の故障、或いは、スプリットモード有効信号S_SLTが無効状態(例えば、ロウレベル)で固着する故障が発生すると、選択部14が第2のプロセッサ11から出力される第2のインタフェース信号群を遮断し、第2のインタフェース信号群が遮断に出力される。そして、このような故障が発生した場合、アクセスモニタ15に与えられるアクセス要求信号の状態が無効状態(例えばロウレベル)に固定される。実施の形態1にかかる半導体装置1では、スプリットモード時にアクセス要求信号が無効状態で固定されるため第3のエラー信号ERR3がハイレベルとなり、エラー制御部16が異常状態処理要求を出力する。
【0039】
スプリットモードの時に上記のような故障が発生すると、選択部14がロックステップモードとして誤動作し、第2のプロセッサ11が共有リソース17、18にアクセスできなくなり、問題となる。しかしながら、実施の形態1にかかる半導体装置1では、アクセスモニタ15及びエラー制御部16により、上記故障を検出することで、誤動作の発生を防ぐ処理を上位システムが行うことで、このような故障が発生した際の影響を最小限にとどめる。
【0040】
なお、故障が無ければ、ロックステップモードにおいて第3のエラー信号ERR3が常にエラー通知状態になり、スプリットモードにおいて第2のエラー信号ERR2が常にエラー通知状態となる。これらのエラー通知状態は、故障によるものではないため、疑似エラーとして上位システムが異常が発生したと判定しない疑似エラーとして処理する必要がある。この疑似エラー対策としては、エラー制御部16(例えば、エラー通知信号生成部36)の設定により、疑似エラーによるリセット要求、割り込み要求、端子出力を抑制する必要がある。このエラー制御部36の設定は、独立した別の第3のプロセッサ12により実施されることが望ましい。
【0041】
上記説明より、実施の形態1にかかる半導体装置1では、比較器13によるプロセッサ動作の監視だけでは検出できない選択部14及びスプリットモード有効信号S_SLTに関する故障を検出して、ロックステップモード時に生じた不具合に対処することが可能になる。
【0042】
また、実施の形態1にかかる半導体装置1では、アクセスモニタ15がスプリットモード時に生じた選択部14及びスプリットモード有効信号S_SLTに関する故障を検出して、スプリットモード時に生じた不具合に対処することが可能になる。
【0043】
つまり、実施の形態1にかかる半導体装置1では、プロセッサの動作の監視のみでは検出することができない選択部14及びスプリットモード有効信号S_SLTに関する故障を検出し、不具合に対処することが可能になる。
【0044】
実施の形態2
実施の形態2では、実施の形態1にかかる半導体装置1の別の例となる半導体装置2について説明する。なお、実施の形態2の説明では、実施の形態1の説明において説明した構成要素と同じ構成要素については実施の形態1と同じ符号を付して説明を省略する。
【0045】
図4に実施の形態2にかかる半導体装置2のブロック図を示す。
図4に示すように、実施の形態2にかかる半導体装置2は、実施の形態1のアクセスモニタ15をアクセスモニタ15aに置き換え、エラー注入部19を追加したものである。そこで、アクセスモニタ15aとエラー注入部19について詳細に説明する。
図5に実施の形態2にかかるエラー注入部及びアクセスモニタのブロック図を示す。
【0046】
図5に示すように、アクセスモニタ15aは、アクセスモニタ15にセレクタ22を追加したものである。また、エラー注入部19は、エラー注入有効レジスタ41及びエラー注入データレジスタ42を有する。エラー注入有効レジスタ41は、エラー制御部が前記異常状態処理要求を出力する監視対象信号の値(例えばエラーデータ)が格納される。エラー注入データレジスタ42は、エラー注入データレジスタの値を第1のパスPS1及び第2のパスPS2に入力するか否かを切り替える切替設定値を格納する。セレクタ22は、切替設定値に応じて、エラーデータ注入レジスタ42に格納された値と、監視対象信号とのいずれか一方を選択して第1のパス及び第2のパスに出力する。なお、エラー注入有効レジスタ41に格納される切替設定値とエラー注入データレジスタ42に格納される値は、第1のプロセッサ10或いは第3のプロセッサ12により与えられるものである。
【0047】
実施の形態2にかかる半導体装置2では、アクセスモニタ15a及びエラー注入部19を有することで、アクセスモニタ15a及びエラー制御部16が正しく動作しているか否かを確認することができる。つまり、実施の形態2にかかる半導体装置2では、選択部14のみならずアクセスモニタ15a及びエラー制御部16の故障も検出かのうであり、実施の形態1にかかる半導体装置1より高い信頼性を得ることができる。
【0048】
実施の形態3
実施の形態3では、実施の形態1にかかる半導体装置2の別の例となる半導体装置3について説明する。なお、実施の形態3の説明では、実施の形態1、2の説明において説明した構成要素と同じ構成要素については実施の形態1、2と同じ符号を付して説明を省略する。
【0049】
図6に実施の形態3にかかる半導体装置3のブロック図を示す。
図6に示すように、実施の形態3にかかる半導体装置3は、アクセスモニタ15をアクセスモニタ15bに置き換えたものである。また、実施の形態3にかかる半導体装置3は、比較器13にスプリットモード有効信号S_SLTが入力される。そこで、アクセスモニタ15bについて詳細に説明する。
図7に実施の形態3にかかるエラー注入部及びアクセスモニタのブロック図を示す。
【0050】
図7に示すように、アクセスモニタ15bは、アクセスモニタ15aにAND回路23、24を追加したものである。AND回路23は、スプリットモード有効信号S_SLTに応じて第1のパスPS1を有効と無効化のいずれか一方とする第1のゲーティング回路である。AND回路24は、スプリットモード有効信号S_SLTに応じて第2のパスPS2を有効と無効化のいずれか一方とする第2のゲーティング回路である。ここで、AND回路23の2つの入力端子のうちスプリットモード有効信号S_SLTを入力する入力端子は、スプリットモード有効信号S_SLTがロウレベルのときにアクティブ(例えば、ハイレベルが入力された時の状態)となる端子である。一方、AND回路24の2つの入力端子のうちスプリットモード有効信号S_SLTを入力する入力端子は、スプリットモード有効信号S_SLTがハイレベルのときにアクティブとなる端子である。つまり、AND回路23とAND回路24は、排他的に有効と無効とが切り替えられる。
【0051】
このようにAND回路23、24を設けることで、実施の形態3にかかる半導体装置3では、ロックステップモード時には第2のパスPS2を無効にして第3のエラー信号ERR3が有効になることを防止し、スプリットモードには第1のパスPS1を無効にして第2のエラー信号ERR2が有効になることを防止する。
【0052】
また、実施の形態3にかかる半導体装置3では、比較器13にスプリットモード有効信号S_SLTが入力されることで、スプリットモード時に比較器13を停止させる。
【0053】
上記説明より、実施の形態3にかかる半導体装置3では、AND回路23、24を用いることで各モードにおいて疑似エラーを生じさせる経路を無効化して、疑似エラーの発生を抑制する。これにより、実施の形態3ではエラー制御部16における疑似エラーに関する処理をなくすことができる。また、実施の形態3では、比較器13の動作期間を短縮して、消費電力を低減することができる。
【0054】
実施の形態4
実施の形態4では、実施の形態3にかかる半導体装置3の別の例となる半導体装置4について説明する。なお、実施の形態4の説明では、実施の形態1〜3の説明において説明した構成要素と同じ構成要素については実施の形態1〜3と同じ符号を付して説明を省略する。
【0055】
図8に実施の形態4にかかる半導体装置4のブロック図を示す。
図8に示すように、実施の形態4にかかる半導体装置4は、第2のプロセッサ11、比較器13、アクセスモニタ15b、エラー制御部16を第2のプロセッサ11c、比較器13c、アクセスモニタ15c、エラー制御部16cに置き換えたものである。
【0056】
エラー制御部16cは、エラー制御部16に第1のエラー信号ERR1から第3のエラー信号ERR3によりエラーを検出した場合に、第2のプロセッサ11c、比較器13c、アクセスモニタ15cに動作を初期化するローカルリセット信号RST_Lを出力する機能を追加したものである。そして、第2のプロセッサ11c、比較器13c、アクセスモニタ15cは、第2のプロセッサ11、比較器13、アクセスモニタ15bにローカルリセット信号RST_Lによるリセットを実行可能な機能を追加したものである。
【0057】
実施の形態4にかかる半導体装置4は、第2のプロセッサ11c及び比較器13cをリセット状態とすることで、第2のプロセッサ11による共有リソース17、18への侵害、或いは、比較器、アクセスモニタ15cからの疑似エラーの発生を抑止する。また、これにより、実施の形態4にかかる半導体装置4では、第1のプロセッサ10や第3のプロセッサ12等による動作継続が可能となる。また、第1のプロセッサ10や第3のプロセッサ12はエラー制御部からの割込み通知により、第2のプロセッサ11、比較器13c、アクセスモニタ15cがリセット状態であることを理解した上での動作継続が可能である。
【0058】
実施の形態5
実施の形態5では、実施の形態1にかかるアクセスモニタ15の別の形態となるアクセスモニタ15dについて説明する。なお、実施の形態5の説明では、実施の形態1の説明において説明した構成要素と同じ構成要素については実施の形態1と同じ符号を付して説明を省略する。
【0059】
図9に実施の形態5にかかるアクセスモニタ15dのブロック図を示す。
図9に示すように、アクセスモニタ15dは、アクセスモニタ15にECCデコーダ25を追加したものである。ECCデコーダ25は、第2のインタフェース信号群に含まれる監視対象信号と監視対象信号に付加されるECCコードとを用いて、ロックステップモード時に前記選択部を介して出力される前記監視対象信号の固着エラーを検出する。そして、アクセスモニタ15dでは、ECCデコーダ25の出力を第1パスPS1及び第2のパスPS2に出力する。なお、選択部14から出力される監視対象信号と監視対象信号に付随するECCコードとの組み合わせは、選択部14が故障した際にECCデコーダ25におけるデコード処理によりエラーとなる組み合わせが好ましい。
【0060】
実施の形態5にかかる半導体装置では、ECCデコーダ25を用いることで、監視対象信号としてアクセス要求信号等の既知の値を有する信号のみならず、データ信号等の値がその都度変化するような信号を用いることができる。これは、ロックステップモード時に選択部14に故障が発生した場合、選択部14を介して出力される何れかの信号に固着が発生するが、ECCコードのようなエラー検出コードを用いたデコード処理を用いることで、インタフェース信号群に含まれる信号がその都度変化する信号であったとしても、この固着エラーを検出できるためである。
【0061】
実施の形態6
実施の形態6では、実施の形態1にかかる半導体装置1の別の形態となる半導体装置6について説明する。なお、実施の形態6の説明では、実施の形態1の説明において説明した構成要素と同じ構成要素については実施の形態1と同じ符号を付して説明を省略する。
【0062】
図10に実施の形態6にかかる半導体装置6のブロック図を示す。
図10に示すように、実施の形態6にかかる半導体装置6は、ロックステップモードとスプリットモードとで動作を切り替え可能な構成を2組有する。
図10に示す例では、第1のプロセッサ10、第2のプロセッサ11、比較器13、選択部14が第1のロックステップ構成であり、第3のプロセッサ50、第4のプロセッサ51、比較器53、選択部54が第2のロックステップ構成である。そして、実施の形態6にかかる半導体装置6では、調停回路(例えば、OR回路)が追加される。OR回路60は、選択部14を介して出力される第2のインタフェース信号群と、選択部54を介して第4のプロセッサ51が出力する第4のインタフェース信号群とを調停してアクセスモニタ15に選択部を介して出力されるインタフェース信号群を伝達する。
【0063】
実施の形態6にかかる半導体装置6では、OR回路60を用いて2つのロックステップ構成の動作を1組のアクセスモニタ15及びエラー制御部16により監視することができる。これにより、実施の形態6にかかる半導体装置6では、ロックステップ構成の回路の数に対するアクセスモニタ15及びエラー制御部16の回路面積を削減することができる。
【0064】
実施の形態7
実施の形態7では、実施の形態1にかかる半導体装置1の別の形態となる半導体装置7について説明する。なお、実施の形態7の説明では、実施の形態1の説明において説明した構成要素と同じ構成要素については実施の形態1と同じ符号を付して説明を省略する。
【0065】
図11に実施の形態7にかかる半導体装置7のブロック図を示す。
図11に示すように、実施の形態7にかかる半導体装置7は、アクセスモニタ15及びエラー制御部16に代えてアクセスモニタ15e及びエラー制御部16eを有する。
【0066】
アクセスモニタ15eは、選択部14を介してシステムバスBUSに出力される第2のインタフェース信号群に含まれる監視対象信号を監視し、監視対象信号がシステムバスBUSに出力された場合に第2のエラー信号ERR2を出力する。エラー制御部16eは、第1のエラー信号ERR1及び第2のエラー信号ERR2に基づき第1のプロセッサ10、第2のプロセッサ11及び選択部14のいずれか1つの異常状態を検出し、検出された異常状態に応じて上位システムに異常状態に応じた処理を要求する異常状態処理要求(例えば、リセット要求信号RST、エラー割込信号INT、外部エラー通知信号EX_OUT)を出力する。
【0067】
ここで、アクセスモニタ15e及びエラー制御部16eについて詳細に説明する。そこで、
図12に実施の形態7にかかるアクセスモニタ15e及びエラー制御部16eのブロック図を示す。
図12に示すように、アクセスモニタ15eは、アクセスモニタ15から時間監視部21及び第2のパスPS2を除いたものである。また、エラー制御部16eは、エラー制御部16からレジスタ33、AND回路34、OR回路35を除いたものである。そして、実施の形態7にかかるアクセスモニタ15eは、ロックステップモード時において、正常時には予め値が定まっており、前記選択部が故障した異常時に値に変化が生じる信号を監視対象信号とする。
図12に示す例では、アクセスモニタ15eは、第2のプロセッサ11が共有リソース17、18へのアクセスの許可を要求するアクセス要求信号を監視対象信号とする。アクセス要求信号は、ロックステップモード時には選択部14がロウレベルを維持する信号であり、選択部14に故障が発生した場合には、第2のプロセッサ11の動作に応じてハイレベルとなることがある信号である。アクセスモニタ15eは、ロックステップモード時に選択部14から出力されるアクセス要求信号がハイレベルとなった場合に、第2のエラー信号ERR2によりエラーが発生したことをエラー制御部16eに伝達する。
【0068】
実施の形態7にかかる半導体装置7では、実施の形態1にかかる半導体装置1からスプリットモード時のエラー検出機能を削減したものである。しかしながら、共有リソースへのアクセス集中(或いは衝突)等のより重大な不具合は、ロックステップモードに発生する。そのため、半導体装置の仕様に応じて、実施の形態7にかかる半導体装置7を採用することで、時間監視部21、レジスタ33等の回路を削減して回路面積を削減することができる。
【0069】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。