(57)【特許請求の範囲】
【請求項１】
入力信号を記憶保持する複数の記憶素子と、
前記複数の記憶素子からの出力の多数決結果を出力する多数決回路と、
前記複数の記憶素子の出力不一致を検出し、エラー信号を出力するエラー検出回路と、
前記エラー検出回路からの前記エラー信号を監視する監視回路と、を備え、
前記監視回路は、前記エラー信号をもとに、前記複数の記憶素子のうち、出力不一致が発生している記憶素子に対して前記多数決回路の多数決結果で書き戻しを行うリフレッシュ動作を指示するとともに、前記リフレッシュ動作により書き戻らなかった場合には外部に通知を行う半導体集積回路。
【請求項２】
前記エラー検出回路は、前記複数の記憶素子の出力を常時監視し、出力不一致が発生しているか否かの検出を行う請求項１に記載の半導体集積回路。
【請求項３】
前記監視回路は、前記エラー信号を検出した回数に基づいて、不一致の要因がソフトエラーによるものなのか、ハードエラーによるものなのかを判定する請求項１又は２に記載の半導体集積回路。
【請求項４】
前記複数の記憶素子は、それぞれ、ウェルを分離するか、もしくは少なくとも３セル分に相当する間隔を空けて配置されている請求項１乃至３のいずれか１項に記載の半導体集積回路。
【請求項５】
前記複数の記憶素子それぞれに設けられ、前記入力信号と前記多数決回路の出力とを前記監視回路の出力により切り替えて前記記憶素子に出力するセレクタと、
前記監視回路の出力により前記複数の記憶素子のそれぞれのクロックを制御するクロック制御回路と、をさらに備える請求項1乃至4のいずれか1項に記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路に関し、特に詳しくは入力信号を記憶保持する複数の記憶素子と、この複数の記憶素子からの出力の多数決結果を出力する多数決回路とを備える半導体集積回路に関する。
【背景技術】
【０００２】
２０００年に機能安全規格ＩＥＣ６１５０８（電気・電子・プログラマブル電子安全関連システムの機能安全）が制定され、欧州では、自動車として認証を取得する前に、自動車等についてＥＣＵレベルの機能安全認証の取得を義務付けている。これは、自動車等について政府が事前に基準適合性を確認することを目的としたものである。
【０００３】
このような背景から、ＣＰＵ（Central Processing Unit：中央処理装置）内においてメモリの制御や管理を行うＭＣＵ（Memory Control Unit）についても、ＩＥＣ６１５０８のサポートが要求されている。これに伴い、ＭＣＵ中の各周辺回路に搭載されているレジスタの信頼性向上と機能安全に対応するべく、多数決回路などを用いたデジタル回路に使用される信号の信頼性向上が求められている。
【０００４】
デジタル回路が誤動作を起こす原因のひとつに、ソフトエラーがある。ソフトエラーとは、放射線（例えば、α線、中性子線など）が半導体集積回路に突入した場合に、半導体基板と放射線とが反応して電荷を発生させ、論理回路の出力素子に発生した電荷が収集されることで論理を反転させる異常である。ソフトエラーは、回路の縮退故障などの物理的な故障によるハードエラーとは異なり一時的なものであるため、再書込みによって正常に戻すことが可能である。
【０００５】
このソフトエラーの自動修復を行うための技術が特許文献１に開示されている。図９は、特許文献１に開示されたソフトエラー自動修復機能付メモリシステムの構成を示すブロック図である。
【０００６】
特許文献１のソフトエラー自動修復機能付メモリシステムは、図９に示すように、コンピュータプログラムやデータを記憶保持するメモリ装置８０と、メモリ装置８０にアクセスして計算・演算・制御などの処理を実施するＣＰＵ３５と、ＣＰＵ３５に接続される無線Ｉ／Ｆ（Interface：インターフェース）４０と、ＣＰＵ３５に接続された有線Ｉ／Ｆ５０と、を備える制御装置９０と、コンピュータプログラムやデータを保持し、これを要求により配信可能な機能を有する情報処理装置であるところのサーバー６０と、から構成されている。
【０００７】
制御装置９０の備えるメモリ装置８０は、コンピュータプログラムやデータを記憶保持し、これらのデータをリード（読出し）／ライト（書込み）可能な、３個で一組のメモリ１０（１０−１、１０−２、１０−３）と、該メモリ１０へのデータのリード／ライトを行うと共に、該メモリ１０内に発生したソフトエラーなどの不具合の検出／修復を行うエラー検出制御回路２０と、から構成されている。
【０００８】
図１０は、図９のメモリ装置８０の一例を示す詳細ブロック図である。なお、図１０において図９に示す構成要素に対応するものは同一の参照数字または符号を付している。
【０００９】
図１０において、先ず、３個で一組のメモリ１０の各々は、ユーザデータ領域１１（１１−１、１１−２、１１−３）と冗長データ領域１２（１２−１、１２−２、１２−３）とに区分されている。ユーザデータ領域１１は、本メモリ装置８０を使用するユーザが自由にアクセス可能な領域であり、ＣＰＵ３５の制御により自由にデータをリード／ライト可能な領域である。データのリード／ライトの単位は、本メモリ装置８０の使用形態に応じて、如何様な単位のデータでも良く、例えばバイト単位、ワード単位、或いはレコード単位（複数バイト或いは複数ワードから構成される記憶の単位）とする事が可能である。
【００１０】
次に、図９、図１０に示したソフトエラー自動修復機能付メモリシステムの動作について以下に明記する。
【００１１】
制御装置９０のＣＰＵ３５は、メモリ１０にメモリ装置８０を使用するユーザのデータを書込む場合には、メモリ１０の指定するアドレスに該データをライトするよう、メモリ装置８０に対してライト要求を送出する。ライト要求は、本メモリ装置８０の使用形態に応じて、バイト単位、ワード単位、或いはレコード単位の何れでも可能である。メモリ装置８０は、バイト単位のライト要求であればバイト単位の冗長データを生成し、ワード単位のライト要求であればワード単位の冗長データを生成し、レコード単位の要求であればレコード単位の冗長データを生成するようになっている。
【００１２】
データのライト要求を受けたメモリ装置８０は、該ライト要求をエラー検出制御回路２０のメモリライト部２１に送出し、メモリライト部２１は、ライト要求されたデータをメモリ１０−１のユーザデータ領域１１−１内の該当アドレスにライトすると共に、該データの冗長データを自動的に生成し、該冗長データを冗長データ領域１２−１の該当アドレス対応部分にライトし、蓄積する。そして、該データと該冗長データを、他の２つのメモリ１０−２、１０−３の該当アドレス対応部分にコピーして上書きする。そして、メモリライト部２１は、３つのメモリ１０（１０−１、１０−２、１０−３）のデータのライトを終了した時点で、該３つのメモリ１０内に記憶保持されたデータの一致性を確認して、データのライト終了通知をＣＰＵ３５に対して送出する。
【００１３】
データのライト終了通知を受けたＣＰＵ３５は、次にメモリ１０にライトすべきデータが存在する場合には、該次のデータのライト要求をメモリ装置８０に送出することにより、メモリ装置８０は上述と同様の動作を行って、３つのメモリ１０（１０−１、１０−２、１０−３）内に同一のデータを記憶保持する。
【００１４】
次に、ＣＰＵ３５がメモリ１０からデータを読み出す場合には、メモリ１０のアドレスを指定したデータのリード要求を、メモリ装置８０に送出する。
【００１５】
データのリード要求を受けたメモリ装置８０は、該リード要求をエラー検出制御回路のメモリリード部２２に送出し、メモリリード部２２は、リード要求されたデータを、メモリ１０−１のユーザデータ領域１１−１内の該当アドレスからリードすると共に、該データの冗長データを冗長データ領域１２−１の該当アドレス対応部分からリードする。そして、該データと該冗長データとから、該データにソフトエラー等の不具合が発生しているか否かの検査を行う。
【００１６】
検査の結果、該データにソフトエラー等の不具合が検出されなければ、該データにはエラーが無いので、これをリード終了通知と共にＣＰＵ３５に送出する。
【００１７】
メモリリード部２２による検査の結果、該データにソフトエラー等の不具合が検出された場合には、メモリリード部２２は、該データのアドレスをエラー修復部２３に通知する。
【００１８】
エラー修復部２３は、該アドレスのデータを、既にリードを行ったメモリ１０−１からでなく、メモリ１０−２のユーザデータ領域１１−２内の該当アドレスからリードすると共に、該データの冗長データを冗長データ領域１２−２の該当アドレス対応部分からリードする。そして、該データと該冗長データとから、該データにソフトエラー等の不具合が発生しているか否かの検査を行う。検査の結果、該データに不具合が検出されなければ、該データ、すなわち、メモリ１０−２からリードしたデータをメモリリード部２２に送出し、メモリリード部２２は該データをリード終了通知と共にＣＰＵ３５に送出する。さらに、エラー修復部２３は、メモリ１０−２の該データと該冗長データを、メモリ１０−１のユーザデータ領域１１−１と冗長データ領域１２−１とにライトし直すことにより、メモリ１０−１の修復を行う。
【００１９】
エラー修復部２３がメモリ１０−２をリードした際、メモリ１０−２からもエラーが検出された場合には、エラー修復部２３は、該アドレスのデータを、既にリードを行ったメモリ１０−１、１０−２からではなく、メモリ１０−３のユーザデータ領域１１−３内の該当アドレスからリードすると共に、該データの冗長データを冗長データ領域１２−３の該当アドレス対応部分からリードする。そして、該データと該冗長データとから、該データにソフトエラー等の不具合が発生しているか否かの検査を行う。検査の結果、該データに不具合が検出されなければ、該データ、すなわち、メモリ１０−３からリードしたデータをメモリリード部２２に送出し、メモリリード部２２は該データをリード終了通知と共にＣＰＵ３５に送出する。さらに、エラー修復部２３は、メモリ１０−３の該データと該冗長データをメモリ１０−１及び１０−２のユーザデータ領域１１−１、１１−２と冗長データ領域１２−１、１２−２とにライトし直すことにより、メモリ１０−１、１０−２の修復を行う。
【００２０】
エラー修復部２３が、メモリ１０−２及びメモリ１０−３の両者からエラーを検出した場合には、エラー修復部２３によるエラー修復は不可能である為、メモリリード部２２に対してエラー修復不可能の旨を通知し、メモリリード部２２は、エラー修復不可能通知をエラーの発生したアドレスと共にＣＰＵ３５に対して送出する。
【００２１】
ＣＰＵ３５が、メモリリード部２２からリード終了通知を受けた場合には、ＣＰＵ３５は、該リード終了通知と共に送出された該データすなわちエラーの無いデータを使用して、必要とする処理を実行する。
【００２２】
ＣＰＵ３５が、メモリリード部２２からエラー修復不可能通知を受けた場合には、ＣＰＵ３５は、有線Ｉ／Ｆ５０を起動してエラーの発生したデータのアドレス情報をサーバー６０に送信するよう指示を行う。有線Ｉ／Ｆ５０は、有線ネットワーク５５を介してサーバー６０に送出する。サーバー６０は、該当アドレスにエラーが発生したことを履歴として記憶蓄積すると共に、該当アドレスのデータを自身が記憶保持している記憶装置から取り出し、これを有線ネットワーク５５を介して配信し、通線Ｉ／Ｆ５０に対して送出する。有線Ｉ／Ｆ５０は、サーバー６０から配信された該当データをＣＰＵ３５に送出する。
【００２３】
サーバー６０から配信された該当データを有線Ｉ／Ｆ５０から受けたＣＰＵ３５は、該当データをメモリ１０の該当アドレスに再度ライトするよう、メモリ装置８０に対してライト要求を送出する。メモリ装置８０は上述した通常時のライト要求を受けたと同様の動作を行い、該当データをメモリ１０（１０−１、１０−２、１０−３の３つのメモリ）の該当アドレスにライトする。これにより、該当アドレスのデータは、元通りのエラー無いデータとして修復されることとなる。なお、ＣＰＵ３５がメモリ１０に再ライトした該当データにつき、再度、有線Ｉ／Ｆ５０を介してサーバー６０への問合せを送出し、サーバー６０から再度、該当データを配信させ、該当データの正当性をチェックさせるようにすることにより、データの修復の信頼性を一層高めることが可能となる。
【先行技術文献】
【特許文献】
【００２４】
【特許文献１】特開２００４−３８４６８号公報
【発明の概要】
【発明が解決しようとする課題】
【００２５】
上述したように、特許文献１のソフトエラー自動修復機能付メモリ装置は、ＣＰＵとデータの記憶部としてのメモリ装置とを有する装置であって、メモリ装置が、データを記憶保持すると共にデータのリード／ライトが可能な３個一組のメモリと、ＣＰＵの制御によりメモリへのデータのリード／ライトを実行すると共に、メモリ内に発生したソフトエラーなどの不具合の検出／修復を行うエラー検出制御回路を備えた構成となっている。
【００２６】
しかしながら、特許文献１のエラー発生時の修復方法では、修正を行うタイミングがメモリのリード／ライト時のみとなっている。そのため、エラーの発生を逐次監視することが出来ないという課題があった。
【００２７】
また、３つのメモリのそれぞれにおいてデータと冗長データが一致していない場合、ＣＰＵがサーバーに命令を伝達してサーバーからリライト情報を入手後、メモリに再度、書込みを行うステップが必要である。そのため、３つのメモリに物理的要因によるハードエラーが発生した場合には、常に各メモリにおいてデータと冗長データの不一致が生じ、メモリへのリライトループが生じてしまう。そして、ＣＰＵでの割込みの優先順位が高く設定されていなければ、命令の待ち状態が生じてしまい、エラーが発生したことをサーバーに履歴として蓄積するものの、エラーの要因が何であるかの判定が出来ない。
【課題を解決するための手段】
【００２８】
本発明にかかる半導体集積回路は、入力信号を記憶保持する複数の記憶素子と、前記複数の記憶素子からの出力の多数決結果を出力する多数決回路と、前記複数の記憶素子の出力不一致を検出し、エラー信号を出力するエラー検出回路と、前記エラー検出回路からの前記エラー信号を監視する監視回路と、を備え、前記監視回路は、前記エラー信号をもとに、前記複数の記憶素子のうち、出力不一致が発生している記憶素子に対して書き戻しを行うリフレッシュ動作を指示するとともに、前記リフレッシュ動作により書き戻らなかった場合には外部に通知を行うものである。これにより、エラーの要因がハードエラーであった場合に、ＣＰＵ動作に依存することなく、リフレッシュループが発生するのを防止できる。
【発明の効果】
【００２９】
本発明によれば、より信頼性の高い半導体集積回路を提供することができる。
【図面の簡単な説明】
【００３０】
【図１】実施の形態１に係る半導体集積回路の全体構成を示すブロック図である。
【図２】実施の形態１に係る半導体集積回路に用いられる監視回路の一例を示す回路図である。
【図３】実施の形態１に係る半導体集積回路に用いられるクロック制御回路の一例を示す回路図である。
【図４】実施の形態１に係る半導体集積回路のエラー検出方法の流れを示すフローチャートである。
【図５】実施の形態１に係る半導体集積回路のタイミングチャートである。
【図６】実施の形態１に係る半導体集積回路のタイミングチャートである。
【図７】実施の形態２に係る半導体集積回路の全体構成を示すブロック図である。
【図８】実施の形態２に係る半導体集積回路のエラー検出方法の流れを示すフローチャートである。
【図９】特許文献１に開示されたソフトエラー自動修復機能付メモリシステムの構成を示すブロック図である。
【図１０】図９のメモリ装置８０の一例を示す詳細ブロック図である。
【発明を実施するための形態】
【００３１】
以下、図面を参照して本発明の実施の形態について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。また、説明の明確化のため、必要に応じて重複説明は省略されている。尚、各図において同一の符号を付されたものは同様の要素を示しており、適宜、説明が省略されている。
【００３２】
実施の形態１．
始めに、本実施の形態に係る半導体集積回路の構成について、図１〜図３を用いて説明する。図１は、実施の形態１に係る半導体集積回路の全体構成を示すブロック図である。図２は、実施の形態１に係る半導体集積回路に用いられる監視回路の一例を示す回路図である。図３は、実施の形態１に係る半導体集積回路に用いられるクロック制御回路の一例を示す回路図である。
【００３３】
本実施の形態に係る半導体集積回路は、図１に示すように、３つのフリップフロップＦ１１，Ｆ１２，Ｆ１３と、多数決回路７と、エラー検出回路２と、監視回路３と、クロック制御回路４と、３つのセレクタＳ１，Ｓ２，Ｓ３とを備えている。
【００３４】
フリップフロップＦ１１，Ｆ１２，Ｆ１３（以下、各フリップフロップを区別しない場合は、単に、フリップフロップＦ１と称する）の入力端子は、セレクタＳ１，Ｓ２，Ｓ３（以下、各セレクタを区別しない場合は、単に、セレクタＳと称する）の出力端子とそれぞれ接続されている。フリップフロップＦ１１，Ｆ１２，Ｆ１３は、それぞれが記憶素子として機能する。セレクタＳ１，Ｓ２，Ｓ３からの出力信号Ｂ１，Ｂ２，Ｂ３のレベルが、３つのフリップフロップＦ１１，Ｆ１２，Ｆ１３のそれぞれに格納される。
【００３５】
フリップフロップＦ１１は、入力されるクロック信号ＣＬＫ１に同期して、セレクタＳ１からの出力信号Ｂ１を遷移させて、出力信号Ｂ４として出力する。同様に、フリップフロップＦ１２は、入力されるクロック信号ＣＬＫ２に同期して、セレクタＳ２からの出力信号Ｂ２を遷移させて、出力信号Ｂ５として出力する。また、フリップフロップＦ１３は、入力されるクロック信号ＣＬＫ３に同期して、セレクタＳ３からの出力信号Ｂ３を遷移させて、出力信号Ｂ６として出力する。
【００３６】
３つのフリップフロップＦ１１，Ｆ１２，Ｆ１３のそれぞれの出力端子は、多数決回路７とエラー検出回路２とに接続されている。すなわち、フリップフロップＦ１１，Ｆ１２，Ｆ１３から出力される出力信号Ｂ４，Ｂ５，Ｂ６は、多数決回路７とエラー検出回路２とに入力される。
【００３７】
多数決回路７は、フリップフロップＦ１１，Ｆ１２，Ｆ１３から出力される出力信号Ｂ４，Ｂ５，Ｂ６を相互に比較し、多数決論理に従って決定したデータを多数決結果ＭＪとして出力する。すなわち、多数決回路７は、入力される３つの出力信号Ｂ４，Ｂ５，Ｂ６のうちの１つが不一致である場合、一致する残りの２つのデータを多数決結果ＭＪとして出力する回路である。そして、多数決回路７の多数決結果ＭＪが、出力信号ＤＯＵＴとして、半導体集積回路の外部に出力される。
【００３８】
ここで、フリップフロップなどの記憶素子に関して、中性子線がウェルに当たった際に寄生バイポーラ動作が原因で隣接した３個までのセルにマルチエラーが発生することが知られている（信学技報ICD2003-24，「16.7fA/cell Tunnel-Leakage-Suppressed 16Mb SRAM for Handling Cosmic-Ray-Induced Multi-Errors」参照）。すなわち、マルチエラーを避けるためにはウェルを分離するか、少なくとも３セル分に相当する間隔を空ければ十分であることが分かっている。従って、本実施の形態では、多数決回路７に入力される３つ出力信号Ｂ４，Ｂ５，Ｂ６のうちの２つ以上（半数以上）がデータ反転しないように、３つのフリップフロップＦ１１，Ｆ１２，Ｆ１３が、それぞれ、ウェルを分離するか、もしくは少なくとも３セル分に相当する間隔を空けて配置されている。これにより、多数決回路７に入力される３つ出力信号Ｂ４，Ｂ５，Ｂ６が、ソフトエラーによって同時に反転するマルチエラーを防止することができる。つまり、多数決回路７に入力されるフリップフロップＦ１１，Ｆ１２，Ｆ１３からの出力信号Ｂ４，Ｂ５，Ｂ６のうち半数以上がソフトエラーによって同時にデータ反転することを防止できる。よって、多数決回路７の出力を常に正しい値に保つことができる。
【００３９】
エラー検出回路２は、３つのフリップフロップＦ１１，Ｆ１２，Ｆ１３の出力不一致を検出することによってエラー発生とエラー発生元を通知する回路である。エラー検出回路２は、多数決回路７に入力される、フリップフロップＦ１１，Ｆ１２，Ｆ１３からの出力信号Ｂ４，Ｂ５，Ｂ６を常時監視し、これらが一致しているか否かの判定を行う。すなわち、エラー検出回路２は、３つのフリップフロップＦ１１，Ｆ１２，Ｆ１３のいずれかにエラーが発生して出力信号Ｂ４，Ｂ５，Ｂ６のいずれかが不一致となっているか否かを判定し、その判定結果に応じてエラー信号Ｅ１を出力する。また、エラー検出回路２は、このエラー信号Ｅ１とともに、エラー発生元のフリップフロップに対応したエラー信号Ｅ２ａ，Ｅ２ｂ，Ｅ２ｃを出力する。
【００４０】
具体的には、エラー検出回路２は、出力信号Ｂ４、Ｂ５、Ｂ６に不一致が生じていることを検出すると、エラー信号Ｅ１をＨｉｇｈにする。このとき、出力信号Ｂ４のみが不一致の場合（すなわち、出力信号Ｂ４が出力信号Ｂ５，Ｂ６と一致しない場合）、エラー検出回路２は、エラー信号Ｅ２ａをＨｉｇｈにする。同様に、出力信号Ｂ５のみが不一致の場合（すなわち、出力信号Ｂ５が出力信号Ｂ４，Ｂ６と一致しない場合）、エラー検出回路２は、エラー信号Ｅ２ｂをＨｉｇｈにする。また、出力信号Ｂ６のみが不一致の場合（すなわち、出力信号Ｂ６が出力信号Ｂ４，Ｂ５と一致しない場合）、エラー検出回路２は、エラー信号Ｅ２ｃをＨｉｇｈにする。
【００４１】
従って、３つのフリップフロップＦ１１，Ｆ１２，Ｆ１３からの出力信号Ｂ４，Ｂ５，Ｂ６が一致している場合には、エラー検出回路２から出力されるエラー信号Ｅ１，Ｅ２ａ，Ｅ２ｂ，Ｅ２ｃはＬｏｗとなる。エラーが発生して３つのフリップフロップＦ１１，Ｆ１２，Ｆ１３からの出力信号Ｂ４，Ｂ５，Ｂ６が不一致となっている場合には、エラー信号Ｅ１がＨｉｇｈになるとともに、エラー信号Ｅ２ａ，Ｅ２ｂ，Ｅ２ｃのうちのいずれか１つが、エラー発生元のフリップフロップに対応してＨｉｇｈになる。このエラー検出回路２は、例えば、組み合わせ回路のみで構成することができる。
【００４２】
エラー検出回路２から出力されるエラー信号Ｅ１，Ｅ２ａ，Ｅ２ｂ，Ｅ２ｃは、監視回路３に入力される。監視回路３は、エラー検出回路２の出力であるエラー信号Ｅ１，Ｅ２ａ，Ｅ２ｂ，Ｅ２ｃを監視し、これらの信号を元に、エラー通知信号ＥＲＲＯＲ１，ＥＲＲＯＲ２、及びセレクト信号ＳＥＬＥＣＴ１，ＳＥＬＥＣＴ２，ＳＥＬＥＣＴ３を生成する。監視回路３は、出力不一致が発生しているフリップフロップに対して書き戻しを行うリフレッシュ動作を指示するとともに、リフレッシュ動作で正しい値に書き戻らなかった場合には外部に通知を行う。
【００４３】
具体的には、監視回路３は、出力信号Ｂ４，Ｂ５，Ｂ６のうちの１つが他と不一致であることを通知するエラー信号Ｅ１を検知した場合に、エラーを検出したとして、エラー通知信号ＥＲＲＯＲ１をＨｉｇｈにする。すなわち、エラー通知信号ＥＲＲＯＲ１は、多数決回路７に使用する３つのフリップフロップＦ１１，Ｆ１２，Ｆ１３の出力信号Ｂ４，Ｂ５，Ｂ６のうちの１つが他と不一致であることを監視回路３が検知した場合に、Ｈｉｇｈになる。さらに、監視回路３は、入力されるエラー信号Ｅ２ａ，Ｅ２ｂ，Ｅ２ｃに応じて、エラー発生元のフリップフロップに対して正しい値に書き戻しするリフレッシュ動作を行うためのセレクト信号ＳＥＬＥＣＴ１，ＳＥＬＥＣＴ２，ＳＥＬＥＣＴ３（以下、各セレクト信号を区別しない場合は、単に、セレクト信号ＳＥＬＥＣＴと称する）を出力する。
【００４４】
リフレッシュ動作によりエラー発生元のフリップフロップＦ１が正しい値に書き換えられた場合、監視回路３は、エラーの原因がソフトエラーであったと判断し、エラー通知信号ＥＲＲＯＲ１をＬｏｗにする。リフレッシュ動作によりエラー発生元のフリップフロップＦ１が正しい値に書き戻らなかった場合には、監視回路３は、エラーの原因がソフトエラーではなくハードエラーであると判断し、エラー通知信号ＥＲＲＯＲ２をＨｉｇｈにする。このように、監視回路３は、リフレッシュ動作後に再度エラー検出を行うことによって、エラーの原因がソフトエラーによるものなのか、ハードエラーによるものなのかを判定する。
【００４５】
すなわち、フリップフロップＦ１１，Ｆ１２，Ｆ１３の出力信号Ｂ４，Ｂ５，Ｂ６が不一致の場合、監視回路３は、エラー検出を２回続けて行う。そして、監視回路３は、エラー検出回路２からのエラー信号Ｅ１を検出した回数に基づいて、エラーの原因を判定する。１回目のエラー検出にて、エラーを検出した場合にはエラー通知信号ＥＲＲＯＲ１＝Ｈｉｇｈ、エラー通知信号ＥＲＲＯＲ２＝Ｌｏｗが出力され、２回目のエラー検出にて、再度エラーを検出した場合には、エラー通知信号ＥＲＲＯＲ１＝Ｈｉｇｈ、エラー通知信号ＥＲＲＯＲ２＝Ｈｉｇｈが出力される。なお、エラー通知信号ＥＲＲＯＲ１，ＥＲＲＯＲ２は、半導体集積回路から外部へ出力される信号である。また、監視回路３には、外部から入力されるリセット信号ＲＳＴ及び入力クロックＣＬＫ０が入力されるようになっている。
【００４６】
監視回路３は、例えば、図２に示すように、フリップフロップＦ６１、Ｆ６２、Ｆ７、Ｆ８、Ｆ９、Ｆ１０を有する構成とすることができる。フリップフロップＦ６１、Ｆ６２は非同期信号であるエラー信号Ｅ１を同期化することを目的に用いられる。フリップフロップＦ６１にはエラー信号Ｅ１が入力され、このフリップフロップＦ６１からの出力信号がフリップフロップＦ６２に入力される。フリップフロップＦ６２の出力は、エラー通知信号ＥＲＲＯＲ１として外部にソフトエラーが発生した事を通知する。フリップフロップＦ７は、フリップフロップＦ６２から出力されるエラー通知信号ＥＲＲＯＲ１に基づいて、出力信号Ｂ７を出力する。
【００４７】
フリップフロップＦ８は、エラー発生元のフリップフロップのリフレッシュ動作を行う際に訂正対象となるフリップフロップにクロックを入力する為のタイミングを、出力信号Ｂ８として生成している。フリップフロップＦ８は、フリップフロップＦ６２からのエラー通知ＥＲＲＯＲ１と、フリップフロップＦ７からの出力信号Ｂ７とから生成される、コントロール信号ＣＯＮＴＲＯＬを元に、出力信号Ｂ８を出力する。そして、この出力信号Ｂ８と、エラー検出回路２から入力されるエラー信号Ｅ２ａ，Ｅ２ｂ，Ｅ２ｃを元に、セレクト信号ＳＥＬＥＣＴ１，ＳＥＬＥＣＴ２，ＳＥＬＥＣＴ３のいずれかがＨｉｇｈになる。
【００４８】
フリップフロップＦ９は、リフレッシュ動作後にアクティブとなるリフレッシュ判定タイミング信号Ｂ９を生成する。フリップフロップＦ９は、フリップフロップＦ８からの出力信号Ｂ８に基づいて、リフレッシュ判定タイミング信号Ｂ９を生成する。フリップフロップＦ１０は、ハードエラーによるエラー通知信号ＥＲＲＯＲ２信号を生成する。リフレッシュ判定タイミング信号Ｂ９がＨｉｇｈでかつ、エラー信号Ｅ１がＨｉｇｈの場合には、エラー発生元のフリップフロップが訂正できなかったため物理的な要因があると判定して、外部にエラー通知信号ＥＲＲＯＲ２を出力する。
【００４９】
このような構成により、監視回路３では、エラー検出回路２が検出したエラーに対して、リフレッシュ動作の制御と、外部への通知とを行う。ただし、それぞれの信号の初期値は、エラー通知信号ＥＲＲＯＲ１＝Ｌｏｗ、エラー通知信号ＥＲＲＯＲ２＝Ｌｏｗ、セレクト信号ＳＥＬＥＣＴ１＝Ｌｏｗ、セレクト信号ＳＥＬＥＣＴ２＝Ｌｏｗ、セレクト信号ＳＥＬＥＣＴ３＝Ｌｏｗとする。
【００５０】
監視回路３から出力されるセレクト信号ＳＥＬＥＣＴは、セレクタＳとクロック制御回路４とに入力される。このセレクト信号ＳＥＬＥＣＴは、エラー発生元のフリップフロップに対して正しい値に書き戻しするリフレッシュ動作を行うためのセレクト信号として使用される。また、セレクト信号ＳＥＬＥＣＴは、リフレッシュ動作を行う際のクロック入力イネーブル信号として使用される。
【００５１】
セレクタＳには、監視回路からのセレクト信号と、外部からの入力信号ＤＩＮと、多数決回路７からの多数決結果ＭＪとが入力される。入力信号ＤＩＮは、フリップフロップＦ１に値を書き込むために外部から入力される入力信号である。セレクタＳは、入力されるセレクト信号ＳＥＬＥＣＴに応じて、入力信号ＤＩＮと多数決結果ＭＪのどちらかを選択して出力する。セレクタＳは、リフレッシュ動作時には、エラー発生元のフリップフロップに多数決回路７の多数決結果ＭＪが入力する制御に切り替えを行う。
【００５２】
具体的には、セレクタＳ１は、セレクト信号ＳＥＬＥＣＴ１がＬｏｗのときには出力信号Ｂ１として入力信号ＤＩＮを出力し、セレクト信号ＳＥＬＥＣＴ１がＨｉｇｈのときには出力信号Ｂ１として多数決結果ＭＪを出力する。同様に、セレクタＳ２は、セレクト信号ＳＥＬＥＣＴ２がＬｏｗのときには出力信号Ｂ２として入力信号ＤＩＮを出力し、セレクト信号ＳＥＬＥＣＴ２がＨｉｇｈのときには出力信号Ｂ２として多数決結果ＭＪを出力する。また、セレクタＳ３は、セレクト信号ＳＥＬＥＣＴ３がＬｏｗのときには出力信号Ｂ３として入力信号ＤＩＮを出力し、セレクト信号ＳＥＬＥＣＴ３がＨｉｇｈのときには出力信号Ｂ３として多数決結果ＭＪを出力する。
【００５３】
クロック制御回路４は、３つのフリップフロップＦ１１，Ｆ１２，Ｆ１３のライト／リライトする為のクロック制御を行う。クロック制御回路４は、監視回路３から入力されるセレクト信号ＳＥＬＥＣＴと、外部から入力される書込み許可信号ＲＥＧ＿ＷＲと、外部から入力される入力クロックＣＬＫ０とを元に、クロック信号ＣＬＫ１，ＣＬＫ２，ＣＬＫ３を生成する。なお、書込み許可信号ＲＥＧ＿ＷＲは、３つのフリップフロップＦ１１，Ｆ１２，Ｆ１３への書込みを許可する信号である。
【００５４】
クロック制御回路４は、例えば、図３に示すように、３つのフリップフロップＦ４１，Ｆ４２，Ｆ４３を有する。フリップフロップＦ４１は、セレクト信号ＳＥＬＥＣＴ１又は書込み許可信号ＲＥＧ＿ＷＲが入力されると、入力される入力クロックＣＬＫ０に同期して、イネーブル信号ＥＮ１を出力する。このイネーブル信号ＥＮ１を元に、入力クロックＣＬＫ０に同期したクロック信号ＣＬＫ１が生成される。
【００５５】
同様に、フリップフロップＦ４２は、セレクト信号ＳＥＬＥＣＴ２又は書込み許可信号ＲＥＧ＿ＷＲが入力されると、入力される入力クロックＣＬＫ０に同期して、イネーブル信号ＥＮ２を出力する。このイネーブル信号ＥＮ２を元に、入力クロックＣＬＫ０に同期したクロック信号ＣＬＫ２が生成される。また、フリップフロップＦ４３は、セレクト信号ＳＥＬＥＣＴ３又は書込み許可信号ＲＥＧ＿ＷＲが入力されると、入力される入力クロックＣＬＫ０に同期して、イネーブル信号ＥＮ３を出力する。このイネーブル信号ＥＮ３を元に、入力クロックＣＬＫ０に同期したクロック信号ＣＬＫ３が生成される。
【００５６】
次に、上記のように構成された半導体集積回路の動作について、図４を用いて説明をする。図４は、実施の形態１に係る半導体集積回路のエラー検出方法の流れを示すフローチャートである。
【００５７】
まず、初期状態では、セレクタＳ１，Ｓ２，Ｓ３に入力されるセレクト信号ＳＥＬＥＣＴ１、ＳＥＬＥＣＴ２，ＳＥＬＥＣＴ３がＬｏｗとなっており、セレクタＳ１、Ｓ２，Ｓ３から入力信号ＤＩＮが選択されて出力信号Ｂ１，Ｂ２，Ｂ３として出力される状態となっている。入力信号ＤＩＮを３つのフリップフロップＦ１１，Ｆ１２，Ｆ１３に書込む場合には、フリップフロップへの書き込み許可信号ＲＥＧ＿ＷＲをＣＰＵアクセスによりＨｉｇｈにして、クロック制御回路４からクロック信号ＣＬＫ１，ＣＬＫ２，ＣＬＫ３を出力する。
【００５８】
クロック信号ＣＬＫ１，ＣＬＫ２，ＣＬＫ３が入力されたフリップフロップＦ１１，Ｆ１２，Ｆ１３には、セレクタＳ１，Ｓ２，Ｓ３からの出力信号Ｂ１，Ｂ２，Ｂ３が入力され、入力信号ＤＩＮのレベルが格納される。このようにして、入力信号ＤＩＮを３つのフリップフロップＦ１１，Ｆ１２，Ｆ１３のそれぞれに入力する（ステップＳ４０１）。各フリップフロップＦ１１，Ｆ１２，Ｆ１３からの出力信号Ｂ４，Ｂ５，Ｂ６が多数決回路７に入力されると、多数決回路７はそれらの多数決結果ＭＪを出力する。そして、この多数決結果ＭＪが外部に出力信号ＤＯＵＴとして出力される。このように、同一のデータを３つのフリップフロップＦ１に書き込んでおき、多数決をとることにより、いずれかのデータが消失しても元のデータを正しく読み出すことができる。
【００５９】
エラー検出回路２は、各フリップフロップＦ１１，Ｆ１２，Ｆ１３からの出力信号Ｂ４，Ｂ５，Ｂ６が入力されると、出力信号Ｂ４，Ｂ５，Ｂ６が一致しているか否かの判定を行う（ステップＳ４０２）。判定の結果、出力信号Ｂ４，Ｂ５，Ｂ６が一致している場合には、エラー検出回路２はエラー信号Ｅ１＝Ｈｉｇｈを監視回路３に入力する（ステップＳ４０３）。これを受けた監視回路３は、フリップフロップＦ１１，Ｆ１２，Ｆ１３にエラーが発生していないと判断し、エラー通知信号ＥＲＲＯＲ１，ＥＲＲＯＲ２＝Ｌｏｗ，セレクト信号ＳＥＬＥＣＴ１，ＳＥＬＥＣＴ２，ＳＥＬＥＣＴ３＝Ｌｏｗを出力する（ステップＳ４０４）。
【００６０】
ステップＳ４０２における判定の結果、出力信号Ｂ４，Ｂ５，Ｂ６が一致していない場合には、エラー検出回路２はエラー信号Ｅ１＝Ｈｉｇｈを監視回路３に入力する（ステップＳ４０５）。また、エラー検出回路２は、不一致が生じている出力信号に応じたいずれかのエラー信号Ｅ２ａ，Ｅ２ｂ，Ｅ２ｃをＨｉｇｈにし、監視回路３に入力する。監視回路３は、これらの信号を元に、エラー検出を行う。ここでは、例えば、エラー信号Ｅ１をもとに生成された、出力信号Ｂ７の否定とエラー通知信号ＥＲＲＯＲ１とがともにＨｉｇｈであるか否かを判定する（ステップＳ４０６）ことによって、エラー検出が行われる。
【００６１】
ステップＳ４０６のエラー検出では、監視回路３にて、最初はＹｅｓが判定される。そして、監視回路３は、フリップフロップＦ１１，Ｆ１２，Ｆ１３にエラーが発生していると判断し、エラー通知信号ＥＲＲＯＲ１＝Ｈｉｇｈ，エラー通知信号ＥＲＲＯＲ２＝Ｌｏｗ，エラー発生元のフリップフロップに対応したいずれかのセレクト信号ＳＥＬＥＣＴ＝Ｈｉｇｈを出力する（ステップＳ４０７）。
【００６２】
このセレクト信号により、リフレッシュ動作が実行され、エラー発生元のフリップフロップの保持値の訂正が行われる（ステップＳ４０８）。具体的には、クロック制御回路４は、監視回路３から入力されるセレクト信号ＳＥＬＥＣＴに対応して、クロック信号ＣＬＫ１，ＣＬＫ２，ＣＬＫ３のいずれかを出力する。また、３つのセレクタＳのうち、監視回路３からセレクト信号ＳＥＬＥＣＴ＝Ｈｉｇｈが入力されたセレクタＳは、フリップフロップＦ１への出力を多数決回路７からの多数決結果ＭＪに切り替えを行う。このようにして、エラー発生元のフリップフロップＦ１は、データの書き直しを行う。
【００６３】
リフレッシュ動作後、エラー発生元のフリップフロップＦ１が正しい値に書き換えられているかどうかの確認のため、ステップＳ４０２が再度実行される。
【００６４】
リフレッシュ動作によりエラー発生元のフリップフロップＦ１が正しい値に書き換えられた場合、ステップＳ４０２の判定においてＹｅｓと判断される。そして、ステップＳ４０３にて、エラー検出回路２はエラー信号Ｅ１＝Ｌｏｗを監視回路３に入力する。その後、ステップＳ４０４にて、監視回路３は、フリップフロップＦ１にエラーが発生していないと判断し、エラー通知信号ＥＲＲＯＲ１，ＥＲＲＯＲ２＝Ｌｏｗ，セレクト信号ＳＥＬＥＣＴ１，ＳＥＬＥＣＴ２，ＳＥＬＥＣＴ３＝Ｌｏｗを出力する。
【００６５】
一方、リフレッシュ動作によりエラー発生元のフリップフロップＦ１が正しい値に書き戻らなかった場合には、ステップＳ４０２の判定においてＮｏと判断される。そして、ステップＳ４０５にて、エラー検出回路２はエラー信号Ｅ１＝Ｈｉｇｈを監視回路３に入力する。次に、テップＳ４０６にて、出力信号Ｂ７の否定とエラー通知信号ＥＲＲＯＲ１とがともにＨｉｇｈであるか否かを再度判定する。すなわち、監視回路３は、エラー検出回路２から入力される信号を元に、再びエラー検出を行う。
【００６６】
ステップＳ４０６のエラー検出では、監視回路３にて、２回目はＮｏが判定される。そして、監視回路３は、フリップフロップＦ１１，Ｆ１２，Ｆ１３のいずれかにハードエラーが発生していると判断し、エラー通知信号ＥＲＲＯＲ１，ＥＲＲＯＲ２＝Ｈｉｇｈ，セレクト信号ＳＥＬＥＣＴ１，ＳＥＬＥＣＴ２，ＳＥＬＥＣＴ３＝Ｌｏｗを出力する（ステップＳ４０９）。このようにして、エラー通知信号ＥＲＲＯＲ２がＨｉｇｈとなって出力され、この信号をもとにリフレッシュ動作を停止させることができる。
【００６７】
図５及び図６は、実施の形態１に係る半導体集積回路のタイミングチャートである。図５は、リフレッシュ動作によりエラー発生元のフリップフロップが正しい値に訂正された場合の動作、図６は、リフレッシュ動作を行ってもエラー発生元のフリップフロップを正しい値に訂正できない場合の動作をそれぞれ示す。
【００６８】
図５及び図６に示す何れの場合の動作においても、まず、ステップＳ４０１にて入力信号ＤＩＮを３つのフリップフロップＦ１１，Ｆ１２，Ｆ１３のそれぞれに入力する。そして、ステップＳ４０２にて、エラー検出回路２が出力信号Ｂ４，Ｂ５，Ｂ６が一致しているか否かの判定を行う。このステップＳ４０２が、タイミングＴ０に対応している。次に、ステップＳ４０５にて、エラー信号Ｅ１＝Ｈｉｇｈを監視回路に入力する。そして、ステップＳ４０６の監視回路３によるエラー検出にてＹｅｓと判断され、ステップＳ４０７が実行される。このステップＳ４０７がタイミングＴ１となる。その後、Ｓ４０８にてエラー発生元のフリップフロップＦ１へのリフレッシュ動作が実行される。このステップＳ４０８がタイミングＴ２となる。これにより、監視回路３から出力されるエラー通知信号ＥＲＲＯＲ１がＨｉｇｈ、エラー通知信号ＥＲＲＯＲ２がＬｏｗとなる。
【００６９】
次に、再びステップＳ４０２にて、エラー検出回路２が出力信号Ｂ４，Ｂ５，Ｂ６が一致しているか否かの判定を行う。この２回目のステップＳ４０２が、タイミングＴ３となる。ここで、図５に示す場合の動作では、リフレッシュ動作によりエラー発生元のフリップフロップが正しい値に訂正された場合の動作であり、エラー検出回路２からのエラー信号Ｅ１がＨｉｇｈからＬｏｗに変化する。そのため、ステップＳ４０３にて、エラー信号Ｅ１＝Ｌｏｗが監視回路３に入力され、ステップＳ４０４が実行される。これにより、監視回路３から出力されるエラー通知信号ＥＲＲＯＲ１がＬｏｗ、エラー通知信号ＥＲＲＯＲ２がＬｏｗとなる。
【００７０】
一方、図６に示す場合の動作では、リフレッシュ動作を行ってもエラー発生元のフリップフロップを正しい値に訂正できない場合の動作であり、出力信号Ｂ４，Ｂ５，Ｂ６のうちの１つが他と不一致である状態が継続されるため、エラー検出回路２からのエラー信号Ｅ１がＨｉｇｈのままである。そのため、ステップＳ４０５にて、エラー信号Ｅ１＝Ｈｉｇｈが監視回路３に入力される、そして、ステップＳ４０６の監視回路３によるエラー検出にてＮｏと判断され、ステップＳ４０９が実行される。これにより、監視回路３から出力されるエラー通知信号ＥＲＲＯＲ１がＨｉｇｈ、エラー通知信号ＥＲＲＯＲ２がＨｉｇｈとなる。
【００７１】
以上のように、本実施の形態では、エラー検出回路２にて多数決回路７に入力される３つのフリップフロップＦ１の出力不一致の検出を行い、出力不一致発生の場合には、監視回路３に通達し、正しい値に書き戻すためのリフレッシュ動作を行う。監視回路３は、リフレッシュ動作で正しい値に書き戻された場合には、発生したエラーがソフトエラーであったと判断する。リフレッシュ動作で正しい値に書き戻らなかった場合には、発生したエラーがハードエラーであると判断し、外部に通知を行う。これにより、監視回路３によりエラー発生要因の特定ができ、この情報をもとに、リフレッシュ動作を停止させることが可能である。このように、本実施の形態では、エラーの要因がハードエラーであった場合に、ＣＰＵ動作に依存することなく、リフレッシュループ（リライトループ）が発生するのを防止できる。
【００７２】
また、多数決回路７に入力される３つのフリップフロップＦ１の出力は、エラー検出回路２にて常時監視を行っている。これにより、エラーの発生を逐次監視することができ、発生したソフトエラーの修正を常時行うことができる。さらに、３つのフリップフロップＦ１がそれぞれウェルを分離するか、もしくは少なくとも３セル分に相当する間隔を空けて配置されている。これにより、多数決回路７に入力される３つ出力信号Ｂ４，Ｂ５，Ｂ６が、ソフトエラーによって同時に反転するマルチエラーを防止することができる。よって、多数決回路７の出力を常に正しい値に保つことができる。従って、これらのことから、本実施の形態によれば、より信頼性の高い半導体集積回路及びそのエラー検出方法を提供することができる。
【００７３】
実施の形態２．
本実施の形態に係る半導体集積回路の構成について、図７を用いて説明する。図７は、実施の形態２に係る半導体集積回路の全体構成を示すブロック図である。実施の形態１では、監視回路３が、１つの多数決回路７に入力される、フリップフロップからの出力を監視する場合について説明を行ったが、本実施の形態では、複数の多数決回路７に入力される、フリップフロップからの出力を同時に監視するようにしたものである。
【００７４】
図７において、本実施の形態の監視回路３には、実施の形態１の監視回路３に、他の周辺回路５，６のエラー検出回路２からのエラー信号が新たに入力される構成になっている。具体的には、周辺回路５の図示しないエラー検出回路２からのエラー信号Ｅ３，Ｅ４ａ，Ｅ４ｂ，Ｅ４ｃと、周辺回路６の図示しないエラー検出回路２からのエラー信号Ｅ５，Ｅ６ａ，Ｅ６ｂ，Ｅ６ｃとが、監視回路３に入力される。また、監視回路３から、周辺回路５にセレクト信号ＳＥＬＥＣＴ４，ＳＥＬＥＣＴ５，ＳＥＬＥＣＴ６、周辺回路６にセレクト信号ＳＥＬＥＣＴ７，ＳＥＬＥＣＴ８，ＳＥＬＥＣＴ９が入力される。
【００７５】
監視回路３は、複数のエラー検出回路２からのエラー信号に基づいて、出力不一致が発生しているフリップフロップに対して書き戻しを行うリフレッシュ動作を指示するとともに、リフレッシュ動作で正しい値に書き戻らなかった場合には外部に通知を行う。すなわち、１つの監視回路３で、ＭＣＵ内の他の周辺回路５，６に使用されている多数決回路７へ入力信号のうち１つが他と不一致かどうかをも監視することが出来る。それ以外の構成については実施の形態１と同様であるため、説明を省略する。なお、図７では、２つの周辺回路５，６のみを図示しているが、周辺回路の数は２つに限るものではない。すなわち、多数決回路７を使用している複数の周辺回路への対応が可能である。
【００７６】
図８は、実施の形態２に係る半導体集積回路のエラー検出方法の流れを示すフローチャートである。図８に示すフローチャートは、図４で示した実施の形態１のフローチャートに、他の周辺回路でエラーが発生しているか否かを判定するステップＳ４１０と、監視回路３内部のエラー信号Ｅ１をＨｉｇｈにするステップ４１１とを新たに追加したものである。
【００７７】
具体的には、ステップＳ４０１にて入力信号ＤＩＮを３つのフリップフロップＦ１１，Ｆ１２，Ｆ１３のそれぞれに入力した後、ステップＳ４０２にて出力信号Ｂ４，Ｂ５，Ｂ６が一致しているか否かの判定をエラー検出回路２が行う。判定の結果、出力信号Ｂ４，Ｂ５，Ｂ６が一致している場合には、ステップＳ４０３にてエラー検出回路２はエラー信号Ｅ１＝Ｌｏｗを監視回路３に入力する。
【００７８】
ステップＳ４０３の後、本実施の形態では、ＭＣＵ中の他の周辺回路５，６において多数決回路７への入力信号のうちの１つが他と不一致かどうかの確認を行う（ステップＳ４１０）。ステップＳ４１０における判定の結果、ＭＣＵ中の他の周辺回路の多数決回路に入力される信号に不一致が生じていない場合にはＮｏと判断される。そして、ステップＳ４０４を実施し、他の周辺回路５，６の多数決回路７に入力される信号が一致していることを通知する。
【００７９】
ステップＳ４１０における判定の結果、ＭＣＵ中の他の周辺回路５，６の多数決回路７に入力される信号に不一致が生じている場合にはＹｅｓと判断される。そして、監視回路３に入力されるエラー信号Ｅ１をＨｉｇｈにする制御を行う（ステップＳ４１１）。ステップＳ４１０及びステップＳ４１１により、他の周辺回路５，６で使用される多数決回路７に入力される信号に不一致が生じているかどうかを監視することが可能となる。その後、ステップＳ４０６を実施するが、ステップＳ４０６以降のフローは実施の形態１と同様であるため説明を省略する。
【００８０】
このように、本実施の形態では、監視回路３が、１つの多数決回路７入力される、フリップフロップＦ１からの出力を監視するだけでなく、複数の多数決回路７に入力される、フリップフロップからの出力をも同時に監視することができる。また、実施の形態１と同様の効果を奏することができる。
【００８１】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上記実施の形態１，２では、３つのフリップフロップＦ１から出力される３つの出力信号Ｂ４，Ｂ５，Ｂ６を入力とする３ビット多数決回路７を用いた場合について例示的に説明をしたが、フリップフロップＦ１の数は３つに限るものではない。すなわち、本発明は、３つ以上の奇数個のフリップフロップＦ１から出力される出力信号を入力とする多数決回路７に対しても適用することができる。また、上記説明では、記憶素子としてフリップフロップＦ１を用いたが、メモリなど、リード／ライト可能な他の記憶素子を用いることももちろん可能である。
【符号の説明】
【００８２】
２  エラー検出回路、３  監視回路、４  クロック制御回路、
５、６  周辺回路、７  多数決回路、
１０、１０−１、１０−２、１０−３  メモリ、
１１、１１−１、１１−２、１１−３  ユーザデータ領域、
１２、１２−１、１２−２、１２−３  冗長データ領域、
２０  エラー検出制御回路、２１  メモリライト部、
２２  メモリリード部、２３  エラー修復部、
３５  ＣＰＵ、４０  無線Ｉ／Ｆ、５０  有線Ｉ／Ｆ、
５５  有線ネットワーク、６０  サーバー、
８０  メモリ装置、９０  制御装置、
Ｂ１、Ｂ２、Ｂ３、Ｂ４、Ｂ５、Ｂ６、Ｂ７、Ｂ８  出力信号、
Ｂ９  リフレッシュ判定タイミング信号
ＣＬＫ０  入力クロック、
ＣＬＫ１，ＣＬＫ２，ＣＬＫ３  クロック信号、
ＣＯＮＴＲＯＬ  コントロール信号、
ＤＩＮ  入力信号、ＤＯＵＴ  出力信号、
Ｅ１、Ｅ２ａ、Ｅ２ｂ、Ｅ２ｃ  エラー信号、
Ｅ３、Ｅ４ａ、Ｅ４ｂ、Ｅ４ｃ  エラー信号、
Ｅ５、Ｅ６ａ、Ｅ６ｂ、Ｅ６ｃ  エラー信号、
ＥＮ１、ＥＮ２、ＥＮ３  イネーブル信号、
ＥＲＲＯＲ１、ＥＲＲＯＲ２  エラー通知信号、
Ｆ１、Ｆ７、Ｆ８、Ｆ９  フリップフロップ、
Ｆ１１、Ｆ１２、Ｆ１３、  フリップフロップ、
Ｆ４１、Ｆ４２、Ｆ４３、Ｆ６１、Ｆ６２  フリップフロップ、
ＭＪ  多数決結果、ＲＥＧ＿ＷＲ  書込み許可信号、
ＲＳＴ  リセット信号、Ｓ、Ｓ１、Ｓ２、Ｓ３  セレクタ、
ＳＥＬＥＣＴ  セレクト信号、
ＳＥＬＥＣＴ１、ＳＥＬＥＣＴ２、ＳＥＬＥＣＴ３  セレクト信号、
ＳＥＬＥＣＴ４、ＳＥＬＥＣＴ５、ＳＥＬＥＣＴ６  セレクト信号、
ＳＥＬＥＣＴ７、ＳＥＬＥＣＴ８、ＳＥＬＥＣＴ９  セレクト信号
【図１】
0005421152.tif 000002
【図２】
0005421152.tif 000003
【図３】
0005421152.tif 000004
【図４】
0005421152.tif 000005
【図５】
0005421152.tif 000006
【図６】
0005421152.tif 000007
【図７】
0005421152.tif 000008
【図８】
0005421152.tif 000009
【図９】
0005421152.tif 000010
【図１０】
0005421152.tif 000011