(57)【要約】【課題】メモリアクセス回路と共有リソース間の経路や論理回路の故障および共有リソース内の故障を検出することである。【解決手段】半導体装置は、第一メモリアクセス回路と、前記第一メモリアクセス回路のチェック用の第二メモリアクセス回路と、前記第一メモリアクセス回路から入力される第一アクセスアドレスに基づいてメモリアドレスを出力するメモリと、前記第一アクセスアドレスと前記第二メモリアクセス回路から出力される第二アクセスアドレスとを比較する二重化比較回路と、前記第一アクセスアドレスと前記メモリアドレスを比較する第一アドレス比較回路と、前記二重化比較回路の比較結果および前記第一アドレス比較回路の比較結果に基づいて制御信号を出力するエラー制御回路と、を備える。【選択図】図４
2019066983.tif 000002
【特許請求の範囲】
【請求項１】
第一メモリアクセス回路と、
前記第一メモリアクセス回路のチェック用の第二メモリアクセス回路と、
前記第一メモリアクセス回路から入力される第一アクセスアドレスに基づいてメモリアドレスを出力するメモリと、
前記第一アクセスアドレスと前記第二メモリアクセス回路から出力される第二アクセスアドレスとを比較する二重化比較回路と、
前記第一アクセスアドレスと前記メモリアドレスを比較する第一アドレス比較回路と、
前記二重化比較回路の比較結果および前記第一アドレス比較回路の比較結果に基づいて制御信号を出力するエラー制御回路と、
を備える半導体装置。
【請求項２】
請求項１において、
前記第一アドレス比較回路は、
エラーアドレスを生成するためのパターンを生成するエラー注入回路と、
前記メモリアドレスと前記エラー注入回路との出力に基づいて第一エラーアドレスを生成する第一エラーアドレス生成回路と、
前記第一アクセスアドレスと前記第一エラーアドレス生成回路から出力される第一アドレスとを比較する第一比較回路と、
前記第一比較回路の比較結果に基づいて前記第一アドレスを保持するエラーアドレス保持回路と、
を備え、
前記第一アドレスは前記第一エラーアドレスまたは前記第一アクセスアドレスである半導体装置。
【請求項３】
請求項２において、
さらに、前記第二アクセスアドレスと前記メモリアドレスを比較する第二アドレス比較回路を備え、
第二アドレス比較回路は、
前記メモリアドレスと前記エラー注入回路との出力に基づいて第二エラーアドレスを生成する第二エラーアドレス生成回路と、
前記第二アクセスアドレスと前記第二エラーアドレス生成回路から出力される第二アドレスとを比較する第二比較回路と、
を備え、
前記第二アドレスは前記第二エラーアドレスまたは前記第一アクセスアドレスである半導体装置。
【請求項４】
請求項１乃至３のいずれか１つにおいて、
前記第一メモリアクセス回路および前記第二メモリアクセス回路はＣＰＵである半導体装置。
【請求項５】
請求項１乃至３のいずれか１つにおいて、
前記第一メモリアクセス回路および前記第二メモリアクセス回路はメモリコントローラである半導体装置。
【請求項６】
第一メモリアクセス回路と、
前記第一メモリアクセス回路から入力される第一アクセスアドレスに基づいて第一メモリアドレスを出力する第一メモリと、
前記第一メモリアクセス回路から入力される第一アクセスアドレスに基づいて第二メモリアドレスを出力する第二メモリと、
前記第一アクセスアドレスと前記第一メモリアドレスを比較する第一アドレス比較回路と、
前記第一アクセスアドレスと前記第二メモリアドレスを比較する第二アドレス比較回路と、
前記第一アドレス比較回路の比較結果および前記第二比較回路の比較結果に基づいて制御信号を出力するエラー制御回路と、
を備える半導体装置。
【請求項７】
請求項６において、
前記第一アドレス比較回路は、
エラーアドレスを生成するためのパターンを生成するエラー注入回路と、
前記第一メモリアドレスと前記エラー注入回路との出力に基づいて第一エラーアドレスを生成する第一エラーアドレス生成回路と、
前記第一アクセスアドレスと前記第一エラーアドレス生成回路から出力される第一アドレスとを比較する第一比較回路と、
前記第一比較回路の比較結果に基づいて前記第一アドレスを保持するエラーアドレス保持回路と、
を備え、
前記第二アドレス比較回路は、
前記第二メモリアドレスと前記エラー注入回路との出力に基づいて第二エラーアドレスを生成する第二エラーアドレス生成回路と、
前記第一アクセスアドレスと前記第二エラーアドレス生成回路から出力される第二アドレスとを比較する第二比較回路と、
を備え、
前記第一アドレスは前記第一エラーアドレスまたは前記第一アクセスアドレスであり、
前記第二アドレスは前記第二エラーアドレスまたは前記第一アクセスアドレスであり、
前記エラーアドレス保持回路は、前記第二比較回路の比較結果に基づいて前記第二アドレスを保持する半導体装置。
【請求項８】
請求項７において、さらに、
前記第一メモリアクセス回路のチェック用の第二メモリアクセス回路と、
前記第一メモリアクセス回路から出力される第一アクセスアドレスと前記第二メモリアクセス回路から出力される第二アクセスアドレスとを比較し、前記第一メモリアクセス回路から出力される第一メモリ選択信号と前記第二メモリアクセス回路から出力される第三メモリ選択信号とを比較し、前記第一メモリアクセス回路から出力される第二メモリ選択信号と前記第二メモリアクセス回路から出力される第四メモリ選択信号とを比較する二重化比較回路と、
を備え、
前記エラー制御回路は前記二重化比較回路の比較結果に基づいて制御信号を出力する半導体装置。
【請求項９】
請求項８において、さらに、
前記第二アクセスアドレスと前記第一メモリアドレスを比較する第三アドレス比較回路と、
前記第二アクセスアドレスと前記第二メモリアドレスを比較する第四アドレス比較回路と、
を備え、
第三アドレス比較回路は、
前記第一メモリアドレスと前記エラー注入回路との出力に基づいて第三エラーアドレスを生成する第三エラーアドレス生成回路と、
前記第二アクセスアドレスと前記第三エラーアドレス生成回路から出力される第三アドレスとを比較する第三比較回路と、
を備え、
第四アドレス比較回路は、
前記第二メモリアドレスと前記エラー注入回路との出力に基づいて第四エラーアドレスを生成する第四エラーアドレス生成回路と、
前記第二アクセスアドレスと前記第四エラーアドレス生成回路から出力される第四アドレスとを比較する第四比較回路と、
を備え、
前記第三アドレスは前記第三エラーアドレスまたは前記第二アクセスアドレスであり、
前記第四アドレスは前記第四エラーアドレスまたは前記第二アクセスアドレスである半導体装置。
【請求項１０】
請求項６乃至９のいずれか１つにおいて、
前記第一メモリアクセス回路および前記第二メモリアクセス回路はＣＰＵである半導体装置。
【請求項１１】
請求項６乃至９のいずれか１つにおいて、
前記第一メモリアクセス回路および前記第二メモリアクセス回路はメモリコントローラである半導体装置。
【請求項１２】
第一アドレス生成回路と、前記第一アドレス生成回路で生成される第一原アドレスから第一アクセスアドレスと第一メモリ選択信号と第二メモリ選択信号とを生成する第一アドレスデコーダと、前記第一メモリ選択信号および前記第二メモリ選択信号から前記第一アクセスアドレスの上位アドレスを生成する第二アドレス生成回路と、を有する第一メモリアクセス回路と、
前記第一アクセスアドレスに基づいて第一メモリアドレスを出力する第一メモリと、
前記第一アクセスアドレスに基づいて第二メモリアドレスを出力する第二メモリと、
前記第一原アドレスと、前記第一メモリアドレスと前記第一アクセスアドレスの上位アドレスを合成した第一復元アドレスを比較する第一アドレス比較回路と、
前記第一原アドレスと、前記第二メモリアドレスと前記第一アクセスアドレスの上位アドレスを合成した第二復元アドレスを比較する第二アドレス比較回路と、
前記第一アドレス比較回路の比較結果または前記第二アドレス比較回路の比較結果に基づいて制御信号を出力するエラー制御回路と、
を備える半導体装置。
【請求項１３】
請求項１２において、
前記第一アドレス比較回路は、
エラーアドレスを生成するためのパターンを生成するエラー注入回路と、
前記第一メモリアドレスと前記エラー注入回路との出力に基づいて第一エラーアドレスを生成する第一エラーアドレス生成回路と、
前記第一復元アドレスと前記第一エラーアドレス生成回路から出力される第一アドレスとを比較する第一比較回路と、
前記第一比較回路の比較結果に基づいて前記第一アドレスを保持するエラーアドレス保持回路と、
を備え、
前記第二アドレス比較回路は、
前記第二メモリアドレスと前記エラー注入回路との出力に基づいて第二エラーアドレスを生成する第二エラーアドレス生成回路と、
前記第二復元アドレスと前記第二エラーアドレス生成回路から出力される第二アドレスとを比較する第二比較回路と、
を備え、
前記第一アドレスは前記第一エラーアドレスまたは前記第一アクセスアドレスであり、
前記第二アドレスは前記第二エラーアドレスまたは前記第一アクセスアドレスであり、
前記エラーアドレス保持回路は、前記第二比較回路の比較結果に基づいて前記第二アドレスを保持する半導体装置。
【請求項１４】
請求項１３において、さらに、
第三アドレス生成回路と、前記第三アドレス生成回路で生成される第二原アドレスから第二アクセスアドレスと第三メモリ選択信号と第四メモリ選択信号とを生成する第二アドレスデコーダと、前記第三メモリ選択信号および前記第四メモリ選択信号から前記第二アクセスアドレスの上位アドレスを生成する第四アドレス生成回路と、を有する第二メモリアクセス回路と、
第一アクセスアドレスと第二アクセスアドレスとを比較し、第一メモリ選択信号と第三選択信号とを比較し、第二メモリ選択信号と第四選択信号とを比較する二重化比較回路と、
を備え、
前記エラー制御回路は前記二重化比較回路の比較結果に基づいて制御信号を出力する半導体装置。
【請求項１５】
請求項１４において、さらに、
前記第二原アドレスと、前記第一メモリアドレスと前記第二アクセスアドレスの上位アドレスを合成した第三復元アドレスを比較する第三アドレス比較回路と、
前記第二原アドレスと、前記第二メモリアドレスと前記第二アクセスアドレスの上位アドレスを合成した第四復元アドレスを比較する第四アドレス比較回路と、
を備え、
前記第三アドレス比較回路は、
前記第一メモリアドレスと前記エラー注入回路との出力に基づいて第三エラーアドレスを生成する第三エラーアドレス生成回路と、
前記第三復元アドレスと前記第三エラーアドレス生成回路から出力される第三アドレスとを比較する第三比較回路と、
を備え、
前記第四アドレス比較回路は、
前記第二メモリアドレスと前記エラー注入回路との出力に基づいて第四エラーアドレスを生成する第四エラーアドレス生成回路と、
前記第四復元アドレスと前記第四エラーアドレス生成回路から出力される第四アドレスとを比較する第四比較回路と、
を備え、
前記第三アドレスは前記第三エラーアドレスまたは前記第二アクセスアドレスであり、
前記第四アドレスは前記第四エラーアドレスまたは前記第二アクセスアドレスである半導体装置。
【請求項１６】
請求項１２乃至１５のいずれか１つにおいて、
前記第一メモリアクセス回路および前記第二メモリアクセス回路はＣＰＵである半導体装置。
【請求項１７】
請求項１２乃至１５のいずれか１つにおいて、
前記第一メモリアクセス回路および前記第二メモリアクセス回路はメモリコントローラである半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は半導体装置に関し、例えば故障検出機能を備える半導体装置に適用可能である。
【背景技術】
【０００２】
車載用のマイクロコントローラは、ＳＲＡＭやフラッシュメモリーなどに付加するＥＣＣ（誤り検出訂正）回路や自己診断を行うＢＩＳＴ（Built in Self Test）回路などの安全機構の他に、マイクロコントローラのＣＰＵの動作を監視する安全機構を備えている。
【０００３】
ＣＰＵの動作を監視する安全機構として、最も一般的な方式がデュアルロックステップ（以下、ロックステップという。）である。同方式では、１つの半導体チップに搭載した２つのＣＰＵのクロックを同期させながら、それぞれのＣＰＵで同じ処理を行う。そして、それぞれのＣＰＵの処理結果を比較回路で比較して、同じ処理結果だったときだけ実行する。ロックステップについては例えば米国特許出願公開第２０１３／０３８９４５号明細書に開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許出願公開第２０１３／０３８９４５号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＣＰＵ等のバスマスタはロックステップ構成をとることで、バスマスタの故障を検出することが可能である。しかし、ロックステップ構成では、ロックステップの外の故障を検出できない。すなわち、バスマスタがメモリ等の共有リソースにアクセスした場合、ロックステップ構成のバスマスタと共有リソース間の経路や論理回路の故障および共有リソース内の故障を検出することができない。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００６】
本開示のうち代表的なものの概要を簡単に説明すれば下記の通りである。
すなわち、半導体装置は共有リソースに対するアクセス信号の比較回路を備える。
【発明の効果】
【０００７】
上記半導体装置によれば、共有リソースのアクセス経路の故障を検出可能である。
【図面の簡単な説明】
【０００８】
【図１】マイクロコントローラの構成例を説明する図
【図２】図１のＣＰＵ側のアドレスおよびデータの流れを説明する図
【図３】図１のメモリコントローラ側のアドレスおよびデータの流れを説明する図
【図４】図２のＣＰＵと故障検出回路とローカルメモリとのより詳細な構成を示すブロック図
【図５】図４の一つのアドレス故障検出回路の構成例を示すブロック図
【図６】図４の他のアドレス故障検出回路の構成例を示すブロック図
【図７】図２のＣＰＵと故障検出回路とローカルメモリとの他の構成例を示すブロック図
【図８】図７のアドレス故障検出回路の構成例を示すブロック図
【図９】図２のＣＰＵと故障検出回路とローカルメモリとの他の構成例を示すブロック図
【図１０】図９のアドレス故障検出回路の構成例を示すブロック図
【発明を実施するための形態】
【０００９】
上述したように、ＣＰＵ等のバスマスタはロックステップ構成をとることで、バスマスタの故障を検出することが可能である。しかし、ロックステップ構成では、ロックステップの外の故障を検出できない。すなわち、バスマスタがメモリ等の共有リソースにアクセスした場合、ロックステップ構成のバスマスタと共有リソース間の経路や論理回路の故障および共有リソース内の故障を検出することができない。
【００１０】
また、メモリにおいては、ＢＩＳＴ回路によりメモリ内部の故障を検出可能である。しかし、ＢＩＳＴ回路はユーザ動作と同時実行できないパスでテストパターンをメモリに書き込み、パターンの期待値と読み出した結果を比較する手法であるため、ランタイム中の常時監視ができない回路構成となっている。仮にランタイム中にＢＩＳＴ回路を動作させるには、ＢＩＳＴ回路によりメモリ内のデータが書き換わってしまうため、バスマスタがメモリ内のデータをＢＩＳＴ回路実行前に別のメモリに退避させてから、実行する必要がある。
【００１１】
よって、ロックステップの二重化比較回路以降のメモリ等共有リソースが故障した場合に、ランタイム中にその故障を検出できないことがある。
【００１２】
そこで、実施形態に係る半導体装置は、共有リソースをアクセスする信号と共有リソースから出力されるアクセス信号とを比較する比較回路を備える。これにより、アクセス信号の故障を検出することが可能である。また、故障したアクセス信号を保持する回路を備える。これにより、故障の原因等を特定することが可能である。また、比較器に故障したアクセス信号を入力することにより、比較器の故障を検出することが可能である。
【００１３】
以下、実施例および変形例について、図面を用いて説明する。ただし、以下の説明において、同一構成要素には同一符号を付し繰り返しの説明を省略することがある。
【実施例】
【００１４】
まず、マイクロコントローラの構成と動作の概略について図１〜３を用いて説明する。図１はマイクロコントローラの構成例を示すブロック図である。図２は図１のＣＰＵ側のアドレスおよびデータの流れを示すブロック図である。図３は図１のメモリコントローラ側のアドレスおよびデータの流れを示すブロック図である。
【００１５】
マイクロコントローラ１は、マスタ側のＣＰＵ１１とチェッカ側のＣＰＵ１２を有するＣＰＵ１０と、ローカルメモリ２０と、故障検出回路３０と、マスタ側のメモリコントローラ４１とチェッカ側のメモリコントローラ４２を有するメモリコントローラ４０と、共有メモリ５０と、故障検出回路６０と、ＤＭＡコントローラ（ＤＭＡＣ）７０と、バス８０と、を一つの半導体チップに備える半導体装置である。ローカルメモリ２０および共有メモリ５０は、例えばＳＲＡＭ等で構成される。ＣＰＵ１０はローカルメモリ２０をアクセスすることが可能であると共に、メモリコントローラ４０を介して共有メモリ５０もアクセスすることが可能である。また、ＤＭＡＣ７０はメモリコントローラ４０を介して共有メモリ５０もアクセスすることが可能である。
【００１６】
ＣＰＵ側の故障検出回路３０はマスタ側のアドレス故障検出回路３１とチェッカ側のアドレス故障検出回路３２と二重化比較回路３３とマスタ側のＥＣＣ回路３４とチェッカ側のＥＣＣ回路３５とを備える。
【００１７】
メモリコントローラ側の故障検出回路６０はマスタ側のアドレス故障検出回路６１とチェッカ側のアドレス故障検出回路６２と二重化比較回路６３とマスタ側のＥＣＣ回路６４とチェッカ側のＥＣＣ回路６５とを備える。
【００１８】
メモリアクセス回路であるＣＰＵ１０がローカルメモリ２０からデータを読み出す場合、図２に示すように、ＣＰＵ１１は、ローカルメモリ２０とアドレス故障検出回路３１と二重化比較回路３３にメモリアクセスのアドレス信号（ＣＡＡ１）を出力し、ローカルメモリ２０からデータ信号（ＬＤ）をＥＣＣ回路３４介して読み出す。ＣＰＵ１２は、アドレス故障検出回路３２と二重化比較回路３３にメモリアクセスのアドレス信号（ＣＡＡ２）を出力し、データ信号（ＬＤ）をＥＣＣ回路３５介して読み出す。ローカルメモリ２０は入力されたアドレス信号（ＣＡＡ１）をメモリ出力アドレス信号（ＬＯＡ）としてアドレス故障検出回路３１、３２に出力する。
【００１９】
ＣＰＵ１０がローカルメモリ２０へデータを書き込む場合、図２に示すように、ＣＰＵ１１は、ローカルメモリ２０とアドレス故障検出回路３１と二重化比較回路３３にメモリアクセスのアドレス信号（ＣＡＡ１）を出力し、データ信号（ＣＤ１）をＥＣＣ回路３４介してローカルメモリ２０と二重化比較回路３３に出力する。ＣＰＵ１２は、アドレス故障検出回路３２と二重化比較回路３３にメモリアクセスのアドレス信号（ＣＡＡ２）を出力し、データ信号（ＣＤ２）をＥＣＣ回路３５介して二重化比較回路３３に出力する。ローカルメモリ２０は入力されたアドレス信号（ＣＡＡ１）をメモリ出力アドレス信号（ＬＯＡ）としてアドレス故障検出回路３１、３２に出力する。
【００２０】
ＣＰＵ１０がバス８０へデータを書き込む場合、図２に示すように、ＣＰＵ１１は、データ信号（ＷＤ１）を二重化比較回路３３に出力する。ＣＰＵ１２は、データ信号（ＷＤ２）を二重化比較回路３３に出力する。ＣＰＵ１１がバス８０からデータ信号（ＲＤ１）を読み出す場合、図２に示すように、ＣＰＵ１２もデータ信号（ＲＤ１）を読み出す。
【００２１】
メモリアクセス回路であるメモリコントローラ４０が共有メモリ５０からデータを読み出す場合、図３に示すように、メモリコントローラ４１は、共有メモリ５０とアドレス故障検出回路６１と二重化比較回路６３にメモリアクセスのアドレス信号（ＭＡＡ１）を出力し、共有メモリ５０からデータ信号（ＫＤ）をＥＣＣ回路６４介して読み出す。メモリコントローラ４２は、アドレス故障検出回路６２と二重化比較回路６３にメモリアクセスのアドレス信号（ＭＡＡ２）を出力し、データ信号（ＫＤ）をＥＣＣ回路６５介して読み出す。共有メモリ５０は入力されたアドレス信号（ＭＡＡ１）をアドレス信号（ＫＯＡ）としてアドレス故障検出回路６１、６２に出力する。
【００２２】
メモリコントローラ４０が共有メモリ５０へデータを書き込む場合、図３に示すように、メモリコントローラ４１は、共有メモリ５０とアドレス故障検出回路６１と二重化比較回路６３にメモリアクセスのアドレス信号（ＭＡＡ１）を出力し、データ信号（ＭＤ１）をＥＣＣ回路６４を介して共有メモリ５０と二重化比較回路６３に出力する。メモリコントローラ４２は、アドレス故障検出回路６２と二重化比較回路６３にメモリアクセスのアドレス信号（ＭＡＡ２）を出力し、データ信号（ＭＤ２）をＥＣＣ回路６５を介して二重化比較回路６３に出力する。共有メモリ５０は入力されたアドレス信号（ＭＡＡ１）をアドレス信号（ＫＯＡ）としてアドレス故障検出回路６１、６２に出力する。
【００２３】
メモリコントローラ４０からバス８０へデータを読み出す場合、図３に示すように、メモリコントローラ４１は、データ信号（ＲＤ１）を二重化比較回路６３に出力する。メモリコントローラ４２は、データ信号（ＲＤ２）を二重化比較回路６３に出力する。ＣＰＵ１１がバス８０からデータ信号（ＷＤ１）をメモリコントローラ４１に書き込む場合、図３に示すように、メモリコントローラ４２にもデータ信号（ＷＤ１）を書き込む。
【００２４】
領域Ｘ１のローカルメモリ２０はアドレス故障検出回路３１とＥＣＣ回路３４とで故障が検出される。アドレス信号（ＣＡＡ１）が伝達される領域Ｘ２のアドレス線やバッファ回路等はアドレス故障検出回路３１で故障が検出される。アドレス信号（ＣＡＡ１）が伝達される領域Ｘ３のアドレス線やバッファ回路等はアドレス故障検出回路３１と二重化比較回路３３とで故障が検出される。アドレス信号（ＣＡＡ１）が伝達される領域Ｘ４のアドレス線やバッファ回路等は二重化比較回路３３で故障が検出される。
【００２５】
次に、故障検出回路の構成について図４〜６を用いて説明する。図４は図２のＣＰＵと故障検出回路とローカルメモリとのより詳細な構成を示すブロック図である。図５は図４の一つのアドレス故障検出回路の構成例を示すブロック図である。図６は図４の他のアドレス故障検出回路の構成例を示すブロック図である。
【００２６】
ＣＰＵ１１はアドレス生成回路１３と、アドレス生成回路１３で生成される原アドレスをメモリアクセスのアドレス信号（ＣＡＡ１）とメモリ選択信号（ＭＳ１）を生成するアドレスデコーダ１４と、を備える。アドレスデコーダ１４は原アドレス（ＯＡ）の上位側アドレスをデコードしてメモリ選択信号（ＭＳ１）を生成し、原アドレス（ＯＡ）の下位側アドレスをメモリアクセスのアドレス信号（ＣＡＡ１）として出力する。
【００２７】
アドレス信号（ＣＡＡ１）は信号線１１１によって二重化比較回路３３と選択回路３７と同期化回路３８に伝達される。アドレス信号（ＣＡＡ１）は同期化回路３８でクロックに同期されてアドレス故障検出回路３１に伝達される。選択回路３７はアドレス信号（ＣＡＡ１）とメモリＢＩＳＴ用のテストアドレス（ＴＡ）を選択する回路であり、選択されたアドレスは信号線１１３によってローカルメモリ２０に伝達される。メモリ選択信号（ＭＳ１）は信号線１１２によってローカルメモリ２０と二重化比較回路３３とに伝達される。
【００２８】
ＣＰＵ１２はＣＰＵ１１と同様な構成であり、メモリアクセスのアドレス信号（ＣＡＡ２）は信号線１２１によって二重化比較回路３３と同期化回路３９に伝達される。アドレス信号（ＣＡＡ２）は同期化回路３９でクロックに同期されてアドレス故障検出回路３２に伝達される。メモリ選択信号（ＭＳ２）は信号線１２２によって二重化比較回路３３に伝達される。二重化比較回路３３はＣＰＵ１１側からの信号とＣＰＵ１２側からの信号とが一致しない場合はエラー信号（ＤＥ）をエラー制御回路３６に伝達する。
【００２９】
ローカルメモリ２０は、メモリアクセスのアドレス信号（ＣＡＡ１）をクロックに同期する同期化回路２３と、メモリ選択信号（ＭＳ１）をクロックに同期する同期化回路２４と、を備える。ローカルメモリ２０は、さらに、同期化回路２３で同期されたアドレス信号をデコードするアドレスデコーダ２５と、同期化回路２４で同期されたメモリ選択信号が入力される制御回路２６と、行アドレスが入力されるワード線ドライバ２７と、列アドレスで選択された列にデータを入出力するＩＯ２８と、メモリセルアレイ２９と、を備える。ローカルメモリ２０は、さらに、同期化回路２３で同期されたメモリアクセスのアドレス信号をメモリ出力アドレス信号（ＬＯＡ）として出力する経路２１１と、を備えている。経路２１１からのメモリ出力アドレス信号（ＬＯＡ）は信号線２１２によってアドレス故障検出回路３１、３２に伝達される。
【００３０】
図５に示すように、アドレス故障検出回路３１はアドレス比較回路３１１とエラーアドレス保持回路３１２とエラーアドレス注入回路３１３と同期化回路３１４とを備える。アドレス比較回路３１１は比較器３１１１とエラーアドレス生成回路３１１２とを備える。比較器３１１１はローカルメモリ２０へ入力されるアドレス信号（ＣＡＡ１）とローカルメモリ２０から出力されるメモリ出力アドレス信号（ＬＯＡ）を比較し、比較されたアドレス信号に不一致があった場合、エラー検出信号（ＥＤ１）を出力し、エラーアドレス生成回路３１１２はメモリ出力アドレス信号をエラーアドレス信号（ＥＡ１）として出力する。エラー検出信号（ＥＤ１）はエラー制御回路３６に伝達される。
【００３１】
エラーアドレス保持回路３１２はエラー検出信号（ＥＤ１）によってエラーアドレス信号（ＥＡ１）を保持する。また、エラーアドレス保持回路３１２は、最初に発生するエラーアドレス信号のみを保持する。これは、アドレスの故障に対しては、即時に安全状態への遷移が求められるためである。エラーアドレス保持回路３１２に保持されるエラーアドレス信号（ＥＡ１）はＣＰＵ１１等によって読み出すことが可能である。
【００３２】
エラーアドレス注入回路３１３は所定のパターンをエラーアドレス生成回路３１１２に注入する。エラーアドレス生成回路３１１２は注入されたパターンによってメモリ出力アドレス（ＬＯＡ）を１ビットから複数ビット反転させる回路（ＥＯＲ回路）を用いて擬似的にエラーアドレスを生成する。これにより、比較器３１１１のテストが可能となる。なお、エラーアドレス注入回路３１３は所定のパターンを、後述するアドレス故障検出回路３２のアドレス比較回路３１１のエラーアドレス生成回路３１１２にも注入する。
【００３３】
図６に示すように、アドレス故障検出回路３２はアドレス比較回路３１１を備えるが、エラーアドレス保持回路３１２、エラーアドレス注入回路３１３および同期化回路３１４を備えていない。
【００３４】
さらに、エラー制御回路３６では、エラー検出信号（ＥＤ１、ＤＥ）を検知し、設定に応じて、割り込み要求信号（ＩＲ）やリセット要求信号（ＲＲ）、端子出力信号（ＴＯ）の出力を行うことで、ＣＰＵ等のバスマスタやシステムは、エラーが発生したことを検知する。
【００３５】
次に、図４の回路全体の動作について以下説明する。
【００３６】
マスタ側のＣＰＵ１１内のアドレス生成回路１３から生成される原アドレス信号（ＯＡ）がアドレスデコーダ１４に入力され、メモリ選択信号（ＭＳ１）とメモリアクセスのアドレス信号（ＣＡＡ１）にデコードされる。メモリ選択信号（ＭＳ１）とアドレス信号（ＣＡＡ１）は、ローカルメモリ２０に入力される前に二重化比較回路３３に入力され、チェッカ側のＣＰＵ１２のメモリ選択信号（ＭＳ２）とアドレス信号（ＣＡＡ２）とそれぞれ比較される。
【００３７】
アドレス信号（ＣＡＡ１）は、二重化比較回路３３の入力との分岐後、メモリＢＩＳＴ用テストアドレス信号（ＴＡ）を選択するための選択回路（マルチプレクサ）３７を通過する。選択回路（マルチプレクサ）３７は、ランタイム（ユーザモード）中、常にバスマスタから出力されるアドレス信号（ＣＡＡ１）を選択する。
【００３８】
信号線１１３のアドレス信号は、ローカルメモリ２０内のフリップフロップで構成される同期化回路２３でリタイミングされ、アドレスデコーダ２５の手前から分岐し、ローカルメモリ２０から出力される。この時、ローカルメモリ２０へのリード／ライト（Ｒ／Ｗ）アクセスは、メモリ選択信号（ＭＳ１）のアサートとアドレス信号から、アドレスデコーダ２５でメモリセルアレイ２９のアドレス空間が選択され、通常通り行われる。メモリ出力アドレス信号（ＬＯＡ）は、アドレス故障検出回路３１に入力される。アドレス故障検出回路３１の比較器３１１１では、アドレス信号（ＣＡＡ１）とメモリ出力アドレス信号（ＬＯＡ）を比較する。比較器３１１１でアドレス信号の不一致が検出される場合では、アドレス比較回路３１１はメモリ出力アドレス信号（ＬＯＡ）をエラーアドレス（ＥＡ１）として出力し、エラーアドレス保持回路３１２はエラーアドレス（ＥＡ１）を保持する。その際に、アドレス比較回路３１１はエラー検出信号（ＥＤ１）をエラー制御回路３６に入力する。
【００３９】
メモリ出力アドレス信号（ＬＯＡ）は、アドレス故障検出回路３２に入力される。アドレス故障検出回路３２の比較器３１１１では、アドレス信号（ＣＡＡ２）とメモリ出力アドレス信号（ＬＯＡ）を比較する。比較器３１１１でアドレス信号の不一致が検出される場合では、アドレス故障検出回路３２はメモリ出力アドレス信号（ＬＯＡ）をエラーアドレス（ＥＡ２）として出力し、エラー検出信号（ＥＤ２）を出力する。
【００４０】
エラー制御回路３６は、ユーザがあらかじめエラー毎に処理を設定しておくことで、リセット要求信号（ＲＲ）・割り込み要求信号（ＩＲ）・端子出力信号（ＴＯ）を出力する。システムは、エラー制御回路３６から出力されるこれらの信号により、エラーが発生したことを検知する。その後、エラー制御回路３６とエラーアドレス保持回路３１２にアクセスすることで、エラーの原因と誤ライト／誤リード先のアドレスを特定することが可能となる。
【００４１】
また、エラーアドレス注入回路３１３は、アドレス比較回路３１１の比較器３１１１の故障を診断するために利用される。エラーアドレス注入回路３１３を設定することで、メモリ出力アドレス信号（ＬＯＡ）の一部のビットが反転し、比較器３１１１はアドレス信号（ＣＡＡ１）と比較する。比較器３１１１が故障していない場合、エラーアドレス生成回路３１１２から出力される信号とアドレス信号（ＣＡＡ１）は、確実に不一致を起こすため、比較器３１１１の故障をテストすることができる。
【００４２】
メモリアクセス回路であるＣＰＵ１０がローカルメモリ２０をアクセスする場合について、図４、５を用いて説明したが、メモリアクセス回路であるメモリコントローラ４０が共有メモリ５０をアクセスする場合も同様である。
【００４３】
メモリアクセス回路からメモリに入力されるアドレスとメモリから出力されるアドレスを比較することでロックステップ以降のメモリへのアドレス故障を検出することが可能となる。また、メモリから出力されるアドレスをエラーアドレスとして保持することで、誤ライト先のアドレスを検出可能であり、誤ライトにより破壊されたデータの特定が可能となる。
【００４４】
＜変形例＞
以下、代表的な変形例について例示する。以下の変形例の説明において、上述の実施例にて説明されているものと同様の構成および機能を有する部分に対しては、上述の実施例と同様の符号が用いられ得るものとする。そして、かかる部分の説明については、技術的に矛盾しない範囲内において、上述の実施例における説明が適宜援用され得るものとする。また、上述の実施例の一部、および、変形例の全部または一部が、技術的に矛盾しない範囲内において、適宜、複合的に適用され得る。
【００４５】
（変形例１）
ローカルメモリ２０が複数存在する（例えば、ローカルメモリ２０Ａとローカルメモリ２０Ｂとの二つが存在する）場合について図７、８を用いて説明する。図７は図２のＣＰＵと故障検出回路とローカルメモリとの他の構成を示すブロック図である。図８は図７のアドレス故障検出回路の構成例を示すブロック図である。
【００４６】
ＣＰＵ１１はアドレス生成回路１３と、アドレス生成回路１３で生成される原アドレスをメモリアクセスのアドレス信号（ＣＡＡ１）とメモリ選択信号（ＭＳ１Ａ、ＭＳ１Ｂ）を生成するアドレスデコーダ１４と、を備える。アドレスデコーダ１４は原アドレス（ＯＡ）の上位側アドレスをデコードしてメモリ選択信号（ＭＳ１Ａ、ＭＳ１Ｂ）を生成し、原アドレス（ＯＡ）の下位側アドレスをメモリアクセスのアドレス信号（ＣＡＡ１）として出力する。
【００４７】
アドレス信号（ＣＡＡ１）は二重化比較回路３３と選択回路３７Ａ、３７Ｂと同期化回路３８Ａ、３８Ｂに伝達される。アドレス信号（ＣＡＡ１）は同期化回路３８Ａ、３８Ｂでクロックに同期されてアドレス故障検出回路３１Ａ、３１Ｂに伝達される。選択回路３７Ａ、３７Ｂはアドレス信号（ＣＡＡ１）とメモリＢＩＳＴ用のテストアドレス（ＴＡＡ、ＴＡＢ）を選択する回路であり、選択されたアドレスはローカルメモリ２０Ａ、２０Ｂに伝達される。メモリ選択信号（ＭＳ１Ｂ）はローカルメモリ２０Ｂと二重化比較回路３３とに伝達される。メモリ選択信号（ＭＳ１Ａ）はローカルメモリ２０Ａと二重化比較回路３３とに伝達される。
【００４８】
ＣＰＵ１２はＣＰＵ１１と同様な構成であり、メモリアクセスのアドレス信号（ＣＡＡ２）はアドレス故障検出回路３２Ａ、３２Ｂと二重化比較回路３３と同期化回路３９Ａ、３９Ｂに伝達される。メモリ選択信号（ＭＳ２Ａ、ＭＳ２Ｂ）は二重化比較回路３３に伝達される。
【００４９】
ローカルメモリ２０Ａ、２０Ｂはローカルメモリ２０と同様な構成である。ローカルメモリ２０Ａは、同期化回路２３でクロックに同期されたメモリアクセスのアドレス信号をメモリ出力アドレス信号（ＬＯＡＡ）として出力する。ローカルメモリ２０Ｂは、同期化回路２３でクロックに同期されたメモリアクセスのアドレス信号をメモリ出力アドレス信号（ＬＯＡＢ）として出力する。メモリ出力アドレス信号（ＬＯＡＡ）はアドレス故障検出回路３１Ａ、３２Ａに伝達される。メモリ出力アドレス信号（ＬＯＡＢ）はアドレス故障検出回路３１Ｂ、３２Ｂに伝達される。
【００５０】
図８に示すように、アドレス故障検出回路３１Ａはアドレス比較回路３１１とエラーアドレス保持回路３１２Ａとエラーアドレス注入回路３１３と同期化回路３１４とを備える。アドレス比較回路３１１は比較器３１１１とエラーアドレス生成回路３１１２とを備える。比較器３１１１はローカルメモリ２０へ入力されるアドレス信号（ＣＡＡ１）とローカルメモリ２０Ａから出力されるメモリ出力アドレス信号（ＬＯＡＡ）を比較し、比較されたアドレス信号に不一致があった場合、エラー検出信号（ＥＤ１Ａ）を出力し、エラーアドレス生成回路３１１２はメモリ出力アドレス信号をエラーアドレス信号（ＥＡ１Ａ）として出力する。エラー検出信号（ＥＤ１Ａ）はエラー制御回路３６に伝達される。
【００５１】
エラーアドレス保持回路３１２Ａはエラー検出信号（ＥＤ１Ａ）によってエラーアドレス信号（ＥＡ１Ａ）を保持し、エラー検出信号（ＥＤ１Ｂ）によってエラーアドレス信号（ＥＡ１Ｂ）を保持する。また、エラーアドレス保持回路３１２Ａは、最初に発生するエラーアドレス信号のみを保持する。これは、アドレスの故障に対しては、即時に安全状態への遷移が求められるためである。エラーアドレス保持回路３１２に保持されるエラーアドレス信号（ＥＡ１Ａ）またはエラーアドレス信号（ＥＡ１Ｂ）はＣＰＵ１１等によって読み出すことが可能である。
【００５２】
エラーアドレス注入回路３１３は所定のパターンをエラーアドレス生成回路３１１２に注入する。エラーアドレス生成回路３１１２は注入されたパターンによってメモリ出力アドレス（ＬＯＡＡ）を１ビットから複数ビット反転させる回路（ＥＯＲ回路）を用いて擬似的にエラーアドレスを生成する。これにより、比較器３１１１のテストが可能となる。なお、エラーアドレス注入回路３１３は所定のパターンを、後述するアドレス故障検出回路３２のアドレス比較回路３１１のエラーアドレス生成回路３１１２にも注入する。
【００５３】
アドレス故障検出回路３１Ｂ、３２Ａ、３２Ｂは、実施例（図６）のアドレス故障検出回路３２と同様に、アドレス比較回路３１１を備えるが、エラーアドレス保持回路３１２、エラーアドレス注入回路３１３および同期化回路３１４とを備えていない。エラー検出信号（ＥＤ１Ｂ）およびエラーアドレス信号（ＥＡ１Ｂ）はアドレス故障検出回路３１Ａのエラーアドレス保持回路３１２Ａに伝達される。
【００５４】
また、エラー検出信号（ＥＤ１Ｂ）はエラー制御回路３６に伝達される。
【００５５】
さらに、エラー制御回路３６では、エラー検出信号（ＥＤ１Ａ、ＥＤ１Ｂ、ＤＥ）を検知し、設定に応じて、割り込み要求信号（ＩＲ）やリセット要求信号（ＲＲ）、端子出力信号（ＴＯ）の出力を行うことで、ＣＰＵ等のバスマスタやシステムは、エラーが発生したことを検知する。
【００５６】
メモリアクセスのアドレス信号（ＣＡＡ２）は二重化比較回路３３と同期化回路３９Ａ、３９Ｂに伝達される。アドレス信号（ＣＡＡ２）は同期化回路３９Ａ、３９Ｂでクロックに同期化されてアドレス故障検出回路３２Ａ、３２Ｂに伝達される。メモリ選択信号（ＭＳ２Ａ、ＭＳ２Ｂ）は二重化比較回路３３に伝達される。二重化比較回路３３はＣＰＵ１１側からの信号とＣＰＵ１２側からの信号とが一致しない場合はエラー信号（ＤＥ）をエラー制御回路３６に伝達する。
【００５７】
アドレス生成回路１３で生成された原アドレス（ＯＡ）はＣＰＵ１１内のアドレスデコーダ１４でデコードされ、メモリ選択信号（ＭＳ１Ａ、ＭＳ１Ｂ）とローカルメモリ２０Ａ、２０Ｂのアクセスアドレス（ＣＡＡ１）を生成する。メモリ選択信号（ＭＳ１Ａ、ＭＳ１Ｂ）により、ローカルメモリ２０Ａ、２０Ｂのいずれかへのアクセスを選択し、ローカルメモリ２０Ａまたはローカルメモリ２０Ｂにアクセスする。その後、ＣＰＵ１１が選択しアクセスしたローカルメモリから出力されるメモリ出力アドレス（ＬＯＡＡ、ＬＯＡＢ）とＣＰＵ１１からローカルメモリ２０Ａ、２０Ｂに入力されるアクセスアドレス（ＣＡＡ１）をアドレス故障検出回路３１Ａ、３１Ｂの比較器３１１１が比較する。比較器３１１１の比較結果が不一致であれば、実施例と同様にエラーアドレス保持回路３１２にエラーアドレス（ＥＡ１Ａ、ＥＡ１Ｂ）が保持され、エラー制御回路３６にエラー検出信号（ＥＤ１Ａ、ＥＤ１Ｂ）が通知される。
【００５８】
また、エラーアドレス注入回路３１３を設定すると、メモリ出力アドレス（ＬＯＡＡ、ＬＯＡＢ）のどちらにも故障を注入することが可能である。アドレス故障検出回路３１Ａ、３１Ｂの比較器３１１１は、アクセス先のメモリに応じて、エラーアドレス注入回路より故障が注入され、テストされる。
【００５９】
メモリアクセス回路であるＣＰＵ１０がローカルメモリ２０をアクセスする場合について、図７、８を用いて説明したが、メモリアクセス回路であるメモリコントローラ４０が共有メモリ５０をアクセスする場合も同様である。
【００６０】
メモリ毎に二重化比較回路やエラーアドレス注入回路、エラーアドレス保持回路、エラー制御回路を共通化することで、面積の増加を抑えることができる。また、メモリ毎に共通回路の設定をする必要がないため、ソフトウェア処理時間の削減に寄与する。さらに、エラーアドレス注入回路をメモリから出力されるアドレス信号に共通に設定できるため、物理的なメモリの構成を把握しなくても、メモリ空間に沿ってテストを行うことが可能である。
【００６１】
（変形例２）
メモリアクセス回路内の回路の故障検出を行う例について図９、１０を用いて説明する。図９は図２のＣＰＵと故障検出回路とローカルメモリとの他の構成を示すブロック図である。図１０は図９のアドレス故障検出回路の構成例を示すブロック図である。
【００６２】
ＣＰＵ１１はアドレス生成回路１３と、アドレス生成回路１３で生成される原アドレスをメモリアクセスのアドレス信号（ＣＡＡ１）とメモリ選択信号（ＭＳ１Ａ、ＭＳ１Ｂ）を生成するアドレスデコーダ１４と、同期化回路１５と、アドレス生成回路１６と、を備える。アドレスデコーダ１４は原アドレス（ＯＡ）の上位側アドレスをデコードしてメモリ選択信号（ＭＳ１Ａ、ＭＳ１Ｂ）を生成し、原アドレス（ＯＡ１）の下位側アドレスをメモリアクセスのアドレス信号（ＣＡＡ１）として出力する。同期化回路１５は原アドレス（ＯＡ１）をクロックで同期して出力する。原アドレス（ＯＡ１）はアドレス故障検出回路３１ＡＳ、３１ＢＳに伝達される。アドレス生成回路１６はメモリ選択信号（ＭＳ１Ａ、ＭＳ１Ｂ）から原アドレス（ＯＡ）の上位側のアドレス信号（ＵＡ１Ａ、ＵＡ１Ｂ）を生成する。アドレス信号（ＵＡ１Ａ）は同期化回路３８Ａでクロックに同期されてアドレス故障検出回路３１ＡＳに伝達される。アドレス信号（ＵＡ１Ｂ）は同期化回路３８Ｂでクロックに同期されアドレス故障検出回路３１ＢＳに伝達される。
【００６３】
アドレス信号（ＣＡＡ１）は二重化比較回路３３と選択回路３７Ａ、３７Ｂとに伝達される。選択回路３７Ａ、３７Ｂはアドレス信号（ＣＡＡ１）とメモリＢＩＳＴ用のテストアドレス（ＴＡＡ、ＴＡＢ）を選択する回路であり、選択されたアドレスはローカルメモリ２０Ａ、２０Ｂに伝達される。メモリ選択信号（ＭＳ１Ｂ）はローカルメモリ２０Ｂと二重化比較回路３３とに伝達される。メモリ選択信号（ＭＳ１Ａ）はローカルメモリ２０Ａと二重化比較回路３３とに伝達される。
【００６４】
ＣＰＵ１２はＣＰＵ１１と同様な構成であり、メモリアクセスのアドレス信号（ＣＡＡ２）は二重化比較回路３３に伝達される。メモリ選択信号（ＭＳ２Ａ、ＭＳ２Ｂ）は二重化比較回路３３に伝達される。
【００６５】
ローカルメモリ２０Ａ、２０Ｂはローカルメモリ２０と同様な構成である。ローカルメモリ２０Ａは、同期化回路２３で同期されたメモリアクセスのアドレス信号をメモリ出力アドレス信号（ＬＯＡＡ）として出力する。ローカルメモリ２０Ｂは、同期化回路２３で同期されたメモリアクセスのアドレス信号をメモリ出力アドレス信号（ＬＯＡＢ）として出力する。メモリ出力アドレス信号（ＬＯＡＡ）はアドレス故障検出回路３１ＡＳ、３２ＡＳに伝達される。メモリ出力アドレス信号（ＬＯＡＢ）はアドレス故障検出回路３１ＢＳ、３２ＢＳに伝達される。
【００６６】
図１０に示すように、アドレス故障検出回路３１ＡＳはアドレス比較回路３１１とエラーアドレス保持回路３１２Ａとエラーアドレス注入回路３１３と同期化回路３１４と結合回路３１５とを備える。アドレス比較回路３１１は比較器３１１１とエラーアドレス生成回路３１１２とを備え、比較器３１１１はローカルメモリ２０へ入力される原アドレス信号（ＯＡ１）と、メモリ出力アドレス信号（ＬＯＡＡ）と上位側のアドレス信号（ＵＡ１Ａ）とを結合したアドレスと、を比較する。比較されたアドレス信号に不一致があった場合、エラー検出信号（ＥＤ１Ａ）を出力し、エラーアドレス生成回路３１１２はメモリ出力アドレス信号をエラーアドレス信号（ＥＡ１Ａ）として出力する。エラー検出信号（ＥＤ１Ａ）はエラー制御回路３６に伝達される。
【００６７】
エラーアドレス保持回路３１２Ａは変形例１と同様である。エラーアドレス注入回路３１３は変形例１と同様である。
【００６８】
アドレス故障検出回路３１ＢＳ、３２ＡＳ、３２ＢＳは、アドレス比較回路３１１と結合回路３１５とを備えるが、エラーアドレス保持回路３１２Ａ、エラーアドレス注入回路３１３および同期化回路３１４を備えていない。エラー検出信号（ＥＤ１Ｂ）またはエラーアドレス信号（ＥＡ１Ｂ）はアドレス故障検出回路３１Ａのエラーアドレス保持回路３１２に伝達される。また、エラーアドレス保持回路３１２は、最初に発生するエラーアドレス信号のみを保持する。これは、アドレスの故障に対しては、即時に安全状態への遷移が求められるためである。エラーアドレス保持回路３１２に保持されるエラーアドレス信号（ＥＡ１Ａ）またはエラーアドレス信号（ＥＡ１Ｂ）はＣＰＵ１１等によって読み出すことが可能である。
【００６９】
また、エラー検出信号（ＥＤ１Ｂ）はエラー制御回路３６に伝達される。
【００７０】
さらに、エラー制御回路３６では、エラー検出信号（ＥＤ１Ａ、ＥＤ１Ｂ、ＤＥ）を検知し、設定に応じて、割り込み要求信号（ＩＲ）やリセット要求信号（ＲＲ）、端子出力信号（ＴＯ）の出力を行うことで、ＣＰＵ等のバスマスタやシステムは、エラーが発生したことを検知する。
【００７１】
ＣＰＵ１２はＣＰＵ１１と同様な構成であり、アドレス生成回路１６はメモリ選択信号（ＭＳ２Ａ、ＭＳ２Ｂ）から原アドレス（ＯＡ）の上位側のアドレス信号（ＵＡ２Ａ、ＵＡ２Ｂ）を生成する。アドレス信号（ＵＡ２Ａ）は同期化回路３９Ａでクロックに同期されてアドレス故障検出回路３２Ａに伝達される。アドレス信号（ＵＡ２Ｂ）は同期化回路３９Ｂでクロックに同期されアドレス故障検出回路３２Ｂに伝達される。メモリアクセスのアドレス信号（ＣＡＡ２）は二重化比較回路３３に伝達される。メモリ選択信号（ＭＳ２Ａ、ＭＳ２Ｂ）は二重化比較回路３３に伝達される。二重化比較回路３３はＣＰＵ１１側からの信号とＣＰＵ１２側からの信号とが一致しない場合はエラー信号（ＤＥ）をエラー制御回路３６に伝達する。
【００７２】
アドレスデコーダ１４から出力されるメモリ選択信号（ＭＳ１Ａ、ＭＳ１Ｂ）からＣＰＵ１１内のアドレス生成回路１６でエンコードして再度上位アドレス信号（ＵＡ１Ａ、ＵＳ１Ｂ）を生成する。アドレス生成回路１３から出力する原アドレス信号（ＯＡ）と、アドレス生成回路１６が生成する上位アドレス信号（ＵＡ１Ａ、ＵＳ１Ｂ）とローカルメモリ２０Ａ、２０Ｂから出力される下位アドレス信号（メモリ出力信号（ＬＯＡＡ、ＬＯＡＢ））を結合したアドレス信号と、をアドレス故障検出回路３１Ａ、３１Ｂの比較器３１１１で比較する。これにより、アドレスデコーダ１４の故障を検出することができる。
【００７３】
メモリアクセス回路であるＣＰＵ１０がローカルメモリ２０をアクセスする場合について、図９、１０を用いて説明したが、メモリアクセス回路であるメモリコントローラ４０が共有メモリ５０をアクセスする場合も同様である。
【００７４】
実施例および変形例１では、メモリアクセス回路内のアドレス線やアドレスデコーダの故障をアドレス故障検出回路で検出することはできない。変形例２では、メモリアクセス回路内のアドレスデコーダに入力される前のアドレスをバスマスタの外に出力し、メモリから出力されたアドレスとアドレス故障検出回路で比較する。これにより、メモリアクセス回路をロックステップ化していない製品に対して、メモリアクセス回路内のアドレスデコーダの故障が検出可能になる。
【００７５】
以上、本発明者によってなされた発明を実施形態、実施例および変形例に基づき具体的に説明したが、本発明は、上記実施形態、実施例および変形例に限定されるものではなく、種々変更可能であることはいうまでもない。
【００７６】
例えば、実施例および変形例では、メモリアクセス回路がメモリをアクセスする場合について説明したが、これに限定されるものではなく、メモリアクセス回路がレジスタを備える回路等の共用リソースをアクセスする場合にも適用可能である。
【００７７】
また、実施例および変形例では、メモリをアクセスするアドレスを比較することでアドレス経路の故障を検出することについて説明したが、これに限定されるものではなく、例えばメモリ選択信号を比較するようにしてもよい。
【００７８】
実施例および変形例では、マスタ側のＣＰＵとチェッカ側のＣＰＵとローカルメモリと故障検出回路の組が一つの場合について説明したが、これに限定されるものではなく、二組以上あってもよい。
【符号の説明】
【００７９】
１０・・・ＣＰＵ
１１・・・ＣＰＵ（マスタ）
１２・・・ＣＰＵ（チェッカ）
２０・・・ローカルメモリ
３０・・・故障検出回路
３１・・・アドレス故障検出回路（マスタ）
３１１・・・アドレス比較回路
３１１１・・・比較器
３１１２・・・エラーアドレス生成回路
３１２・・・エラーアドレス保持回路
３１３・・・エラーアドレス注入回路
３２・・・アドレス故障検出回路（チェッカ）
３３・・・二重化比較回路
３６・・・エラー制御回路
４０・・・メモリコントローラ
４１・・・アドレス故障検出回路（マスタ）
４２・・・アドレス故障検出回路（チェッカ）
５０・・・共有メモリ
６０・・・故障検出回路
【図１】
2019066983.tif 000003
【図２】
2019066983.tif 000004
【図３】
2019066983.tif 000005
【図４】
2019066983.tif 000006
【図５】
2019066983.tif 000007
【図６】
2019066983.tif 000008
【図７】
2019066983.tif 000009
【図８】
2019066983.tif 000010
【図９】
2019066983.tif 000011
【図１０】
2019066983.tif 000012