(57)【特許請求の範囲】
【請求項１】
論理回路と、
前記論理回路から出力された書き込みデータを順次複数回生成し、前記複数回生成した書き込みデータを上書きして保持し、前記保持した書き込みデータを出力する書き込み回路とを備え、
前記書き込み回路は、
前記論理回路から出力された書き込みデータを順次複数回生成するデータ生成部と、
前記複数回生成した書き込みデータを上書きして保持し、前記保持した書き込みデータを出力するデータ保持部と、
前記データ生成部と前記データ保持部との間に接続され、前記データ生成部から複数の書き込みデータを順次入力し、連続する前記書き込みデータが同じ値か判定し、連続する前記書き込みデータが同じ値と判定された場合に前記同じ値と判定された書き込みデータを前記データ保持部に書き込む判定部
とを備えることを特徴とする半導体集積回路。
【請求項２】
前記データ生成部は、前記論理回路と前記データ保持部との間に並列接続され、前記論理回路から出力された書き込みデータを遅延させる複数の遅延回路を備えることを特徴とする請求項１に記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路に関し、特に記憶回路にデータを書き込み可能な半導体集積回路に関する。
【背景技術】
【０００２】
半導体集積回路において、パッケージに含まれる微量の放射性物質もしくはチップを基板上に実装する際の半田から出力された放射線により非破壊の動作不良、いわゆる「ソフトエラー」が生じることが知られている。また、宇宙線、特に中性子線により同様の不良を生じることも知られている。半導体素子のソフトエラーにより、システム全体の不良を生じる場合がある。このため、高い信頼性が要求されるシステムにおいては、ソフトエラー耐性の高い素子の使用、回路設計が行われている。
【０００３】
ソフトエラーから回路的に救済する方式として、メモリ素子では、誤り訂正符号（ＥＣＣ）が提案されている。ＥＣＣでは、メモリ素子にデータを格納する際、あるデータ数分纏めたパリティーデータを別の領域に格納しておき、メモリに格納されたデータとパリティデータを比較することによりエラーを検出し、エラーが検出された場合に再度新たなデータを上書きする。ＥＣＣはメモリ素子に対しては有効であるが、ロジック回路におけるラッチ回路のような小容量の記憶回路に適用すると、回路上のオーバーヘッドが大きくなる。
【０００４】
また、他の手法として、複数のラッチ回路に同じデータを格納しておき、読み出し時には格納されたデータを比較し多数決をとることで、格納されたデータがソフトエラーにより破壊されていても、正しいデータを転送する工夫が試みられている（例えば、特許文献１参照。）。しかしながら、データの多数決をとる方式では、３つ以上のラッチ回路が必要であり回路規模が増大する。したがって、従来のソフトエラーによる回路誤動作を防止する対策では、回路規模増大を招くという問題があった。
【特許文献１】特開昭６３−４９８６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、回路規模増大を抑制しつつ、ソフトエラーによる回路誤動作を防止可能な半導体集積回路を提供することである。
【課題を解決するための手段】
【０００７】
本願発明の一態様によれば、（イ）論理回路と、（ロ）論理回路から出力された書き込みデータを順次複数回生成し、複数回生成した書き込みデータを上書きして保持し、保持した書き込みデータを出力する書き込み回路とを備え、書き込み回路は、論理回路から出力された書き込みデータを順次複数回生成するデータ生成部と、複数回生成した書き込みデータを上書きして保持し、保持した書き込みデータを出力するデータ保持部と、データ生成部とデータ保持部との間に接続され、データ生成部から複数の書き込みデータを順次入力し、連続する書き込みデータが同じ値か判定し、連続する書き込みデータが同じ値と判定された場合に同じ値と判定された書き込みデータをデータ保持部に書き込む判定部とを備える半導体集積回路が提供される。
【発明の効果】
【０００９】
本発明によれば、回路規模増大を抑制しつつ、ソフトエラーによる回路誤動作を防止可能な半導体集積回路を提供することができる。
【発明を実施するための最良の形態】
【００１０】
次に、図面を参照して、本発明の第１〜第３の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。この発明の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
【００１１】
以下、第１〜第３の実施の形態において、ソフトエラーによる回路誤動作を防止させる論理回路、例えばプロセッサから出力される信号の誤動作を防止させる実施例について説明する。誤動作を防止させる論理回路はプロセッサに限らないことは当然である。
【００１２】
（第１の実施の形態）
本発明の実施の形態に係る半導体集積回路は、図１に示すように、プロセッサ１と、プロセッサ１から出力された書き込みデータＤを入力し、書き込みデータＤを反転した反転データ／Ｄを生成し、書き込みデータＤと反転データ／Ｄを比較し互いに異なる場合に保持した書き込みデータＯＵＴを出力する書き込み回路１０と、書き込み回路１０から出力された書き込みデータＯＵＴを記憶する記憶回路２を備える。
【００１３】
プロセッサ１は、データ書き込みにおいて、書き込みデータＤ、記憶回路２のメモリアドレスを指定するアドレス信号ＡＤ、及び書き込みを制御する制御信号ＷＲ等を生成する。プロセッサ１から出力された書き込みデータＤは、記憶回路２のアドレス信号ＡＤにより指定されたアドレスに書き込まれる。ここで、データを書き込む際にソフトエラーが生じると、書き込みデータＤが反転して「１」から「０」になったり、「０」から「１」になったりする。このため、ソフトエラーによる回路誤動作を防止することが重要である。
【００１４】
書き込み回路１０は、プロセッサ１に接続された反転データ生成部１１と、プロセッサ１及び反転データ生成部１１に接続された比較部１２と、プロセッサ１、比較部１２及び記憶回路２に接続されたデータ保持部１３と、プロセッサ１及び比較部１２に接続されたエラー信号生成部１４を備える。
【００１５】
反転データ生成部１１は、プロセッサ１から出力された書き込みデータＤを反転した反転データ／Ｄを生成する。反転データ生成部１１は、例えば書き込みデータＤが「１」であれば反転データ／Ｄとして「０」を生成し、書き込みデータＤが「０」であれば反転データ／Ｄとして「１」を生成する。
【００１６】
反転データ生成部１１としては、例えば図２に示すようにインバータＩＮＶ11が採用可能である。インバータＩＮＶ11は、例えば図３に示すように、ｎＭＯＳトランジスタＱ1と、ｐＭＯＳトランジスタＱ2を直列接続したＣＭＯＳ型インバータである。トランジスタＱ1の他端は接地され、トランジスタＱ2の他端は電源ＶＤＤに接続されている。トランジスタＱ1，Ｑ2の共通ゲートがプロセッサ１に接続され、トランジスタＱ１，Ｑ２の接続点が比較部１２に接続されている。
【００１７】
図１に示した比較部１２は、書き込みデータＤと反転データ／Ｄを比較することにより、書き込みデータＤと反転データ／Ｄが常に互いに異なるか、ソフトエラーが生じていないか監視（モニタ）する。ソフトエラーにより書き込みデータＤ又は反転データ／Ｄのうち一方が反転した場合、書き込みデータＤ及び反転データ／Ｄは一致する。比較部１２は、例えば書き込みデータＤと反転データ／Ｄが互いに異なる場合には「１」を、或いは書き込みデータＤと反転データ／Ｄが互いに一致する場合には「０」を比較結果ＣＯとして出力する。
【００１８】
比較部１２としては、例えば図４に示すような排他的論理和ＥＸ1からなる一致回路が使用可能である。排他的論理和ＥＸ1は、図５に示すようにトランジスタＱ3，Ｑ4，Ｑ5，Ｑ6、及びインバータＩＮＶ12を含む。
【００１９】
図１に示したデータ保持部１３は、比較結果ＣＯに応じて、外部端子１５から出力された外部クロック信号ＣＬＫ，／ＣＬＫに同期して、プロセッサ１から出力された書き込みデータＤを保持し、保持した書き込みデータＤを出力する。例えばソフトエラーが生じておらず比較結果ＣＯが「１」である場合には、データ保持部１３は、外部クロック信号ＣＬＫ，／ＣＬＫに同期して、プロセッサ１から出力された書き込みデータＤを保持し、保持した書き込みデータＯＵＴを記憶回路２へ伝達する。一方、ソフトエラーが生じて比較結果ＣＯが「０」である場合には、データ保持部１３は、プロセッサ１から出力された書き込みデータＤを受け取らず、且つ保持している書き込みデータＯＵＴを伝達しない。
【００２０】
データ保持部１３は、例えば図６に示すように、図１に示した比較部１２に接続されたインバータＩＮＶ13、プロセッサ１に並列接続された転送トランジスタＱ7，Ｑ8、転送トランジスタＱ7，Ｑ8の共通の他端にラッチ回路を構成する２つのインバータＩＮＶ14，ＩＮＶ15、インバータＩＮＶ14，ＩＮＶ15と記憶回路２の間に並列接続された転送トランジスタＱ9，Ｑ10を備える。
【００２１】
図１に示したエラー信号生成部１４は、比較結果ＣＯに応じて、反転データ生成部１１に再度データの出力を要求するエラー信号ＥＲＲを生成する。例えばソフトエラーが生じて比較結果ＣＯが「０」である場合には、エラー信号生成部１４は、反転データ生成部１１に再度データの出力を要求するエラー信号ＥＲＲを生成し、プロセッサ１に伝達する。プロセッサ１は、エラー信号ＥＲＲに応じて再度書き込みデータＤを出力する。一方、ソフトエラーが生じておらず比較結果ＣＯが「１」である場合には、エラー信号ＥＲＲを生成しない。
【００２２】
エラー信号生成部１４としては、例えば図７に示すように、ＮＡＮＤ回路ＮＡ1が使用可能である。ＮＡＮＤ回路ＮＡ1に入力する信号ＣＨＥＣＫは、図示を省略した外部端子やプロセッサ１から伝達され、例えば「１」である。ＮＡＮＤ回路ＮＡ1は、図８に示すように４つのトランジスタＱ11，Ｑ12，Ｑ13，Ｑ14を含む。
【００２３】
なお、図１に示した半導体集積回路は、記憶回路２からプロセッサ１へデータを読み出す回路、入力回路、出力回路、及びインターフェース回路等の図示を省略した種々の周辺回路を更に備える。
【００２４】
次に、本発明の第１の実施の形態に係るデータ書き込み方式を、図９のフローチャートを参照しながら説明する。
【００２５】
（イ）ステップＳ１０において、図１に示したプロセッサ１が、書き込みデータＤ、制御信号ＷＲ及びアドレス信号ＡＤを生成する。ステップＳ１１において、反転データ生成部１１は、書き込みデータＤを反転した反転データ／Ｄを生成する。
【００２６】
（ロ）ステップＳ１２において、比較部１２は、書き込みデータＤと反転データ／Ｄを比較する。ソフトエラーが生じずに書き込みデータＤ及び反転データ／Ｄが正しい値であれば、書き込みデータＤと反転データ／Ｄは互いに異なる。ソフトエラーにより書き込みデータＤ又は反転データ／Ｄの一方の値が反転した場合、書き込みデータＤと反転データ／Ｄは互いに一致する。比較部１２は、比較結果ＣＯを出力する。
【００２７】
（ハ）ステップＳ１２で書き込みデータＤと反転データ／Ｄが互いに異なる場合に、ステップＳ１３において、データ保持部１３は、外部クロック信号ＣＬＫ，／ＣＬＫに同期して、書き込みデータＤを保持し、保持した書き込みデータＯＵＴを記憶回路２へ伝達する。
【００２８】
（ニ）一方、ステップＳ１２で書き込みデータＤと反転データ／Ｄが互いに一致する場合に、データ保持部１３は、書き込みデータＤを保持した状態を維持する。ステップＳ１３において、エラー信号生成部１４は、エラー信号ＥＲＲを生成し、プロセッサ１に伝達する。ステップＳ１０に戻り、プロセッサ１は、エラー信号ＥＲＲに応じて書き込みデータＤを再度生成する。
【００２９】
本発明の第１の実施の形態によれば、書き込みデータＤと反転データ／Ｄを比較してソフトエラーの影響をチェックすることで、ＥＣＣ回路を付加したり複数のラッチ回路を必要とする多数決方式を採用する場合と比べて、回路規模増大を抑制しつつソフトエラーによる回路誤動作を防止可能となる。
【００３０】
なお、比較部１２はデータ保持部１３（ラッチ回路）毎に設ける必要はなく、複数のラッチ回路分纏めて順次モニタすれば、ＥＣＣ回路に比べて回路規模を小さくすることができる。
【００３１】
（第２の実施の形態）
本発明の第２の実施の形態に係る半導体集積回路は、図１０に示すように、プロセッサ１と、プロセッサ１から出力された書き込みデータＤを順次複数回生成し、複数回生成した書き込みデータＤ1，Ｄ2，Ｄ3を上書きして保持し、保持した書き込みデータＯＵＴを出力する書き込み回路２０と、書き込み回路２０から出力された書き込みデータＯＵＴを記憶する記憶回路２を備える。
【００３２】
書き込み回路２０は、プロセッサ１に接続されたデータ生成部２１と、データ生成部２１及び記憶回路２に接続されたデータ保持部２２を備える。
【００３３】
データ生成部２１は、プロセッサ１から出力された書き込みデータＤを入力して、書き込みデータＤ1，Ｄ2，Ｄ3として複数回順次生成する。データ生成部２１は、プロセッサ１に並列接続された複数の（第１及び第２）遅延回路２１１，２１２を備える。第１遅延回路２１１は、直列接続された２つのインバータＩＮＶ21，ＩＮＶ22を含む。第２遅延回路２１２は、直列接続された４つのインバータＩＮＶ23，ＩＮＶ24，ＩＮＶ25，ＩＮＶ26を含む。データ保持部２２は、例えばインバータＩＮＶ27，ＩＮＶ28からなるラッチ回路である。
【００３４】
次に、本発明の第２の実施の形態に係るデータ書き込み方式を、図１１のタイミングチャートを参照しながら説明する。
【００３５】
（イ）Ｔ1において、プロセッサ１から、制御信号ＷＲ、アドレス信号ＡＤ及び書き込みデータＤが生成される。書き込みデータＤが、プロセッサ１に直接接続するデータ生成部２１の配線２１０を経由して書き込みデータＤ1としてデータ保持部２２へ伝達される。Ｔ2において、データ保持部２２は、書き込みデータＤ1を保持し、保持した書き込みデータＯＵＴを記憶回路２に伝達する。
【００３６】
（ロ）Ｔ3において、プロセッサ１から出力された書き込みデータＤが第１遅延回路２１１を経由して、書き込みデータＤ2としてデータ保持部２２へ伝達される。その後、データ保持部２２は、保持していた書き込みデータＤ1に書き込みデータＤ2を上書きして保持し、保持した書き込みデータＯＵＴを記憶回路２に伝達する。Ｔ4において、プロセッサ１から出力された書き込みデータＤが第２遅延回路２１２を経由して、書き込みデータＤ3としてデータ保持部２２へ伝達される。その後、データ保持部２２は、保持していた書き込みデータＤ2に書き込みデータＤ3を上書きして保持し、保持した書き込みデータＯＵＴを記憶回路２に伝達する。
【００３７】
書き込みのときに、通常ラッチ回路にデータを一度しか書き込まないが、この一度しか書き込まない時にソフトエラーによりデータが破壊されると誤ったデータが書き込まれたままとなる。本発明の第２の実施の形態によれば、データを書き込む際に複数の書き込みデータＤ1，Ｄ2，Ｄ3を繰り返し伝達することで、ソフトエラーで反転したとしても続けてデータを上書きする。このため、どれか一つのデータがソフトエラーにより破壊されても、データ保持部２２で正確に受け取ることが可能となる。
【００３８】
なお、図１０には第１及び第２遅延回路２１１，２１２を示したが、更に６つのインバータを直列接続した第３遅延回路、８つのインバータを直列接続した第４遅延回路，・・・，（ｎ×２）個のインバータを直列接続した第ｎ遅延回路（ｎは５以上の整数）を適宜備えていても良い。
【００３９】
（変形例）
本発明の第２の実施の形態の変形例として、図１２に示すように、書き込み回路２０は、データ生成部２１とデータ保持部２２の間に、判定部２３を更に備えていても良い。
【００４０】
判定部２３は、データ生成部２１から出力された書き込みデータＤ1，Ｄ2，Ｄ3を入力して、２つ以上同じ値か判定する。２つ以上同じ値が来た場合に、その書き込みデータをデータ保持部２２に書き込む。また、判定部２３は、データ生成部２１から出力された書き込みデータＤ1，Ｄ2，Ｄ3を入力して、連続する値が同じか判定しても良い。
【００４１】
本発明の第２の実施の形態の変形例によれば、書き込みデータＤ1，Ｄ2，Ｄ3のうちどれか１つがソフトエラーにより破壊されても、他の２つの書き込みデータにより正しいデータをデータ保持部２２に書き込むことができる。
【００４２】
（第３の実施の形態）
本発明の第３の実施の形態に係る半導体集積回路は、図１３に示すように、プロセッサ１と、プロセッサ１から出力された書き込みデータＤを多重化し、多重化した書き込みデータＭＤをデコードし、デコードした書き込みデータＤＤを保持し、保持した書き込みデータＯＵＴを出力する書き込み回路３０と、書き込み回路３０から出力された書き込みデータＯＵＴを記憶する記憶回路２を備える。
【００４３】
書き込み回路３０は、プロセッサ１に接続された多重化部３１と、多重化部３１に接続されたデコーダ３２と、デコーダ３２に接続されたデータ保持部３３を備える。
【００４４】
多重化部３１は、プロセッサ１から出力された書き込みデータＤを多重化する。例えば、書き込みデータＤの「１」を多重化して、「１１０１１０」を出力する。
【００４５】
デコーダ３２は、外部端子３４又はプロセッサ１から出力された期待値ＥＤを参照しながら、多重化した書き込みデータＭＤをデコードする。例えば、多重化した書き込みデータＭＤの「１１０１１０」に対する期待値ＥＤとしては、すべてのビットが一致する「１１０１１０」の他に、「１１０１１０」のそれぞれ１ビットを反転した複数の値を用意しておく。このため、多重化した書き込みデータＭＤの「１１０１１０」のいずれか１ビットがソフトエラーにより反転していても、多重化した書き込みデータＭＤをデコードした書き込みデータＤＤとして「１」が出力される。２つ以上のデータが反転した場合には、デコーダ３２はデコードを行わない。
【００４６】
データ保持部３３は、デコーダ３２によりデコードされた書き込みデータＤＤを保持し、保持した書き込みデータＯＵＴを記憶回路２へ伝達する。
【００４７】
次に、本発明の第３の実施の形態に係るデータ書き込み方式を説明する。
【００４８】
（イ）プロセッサ１から書き込みデータＤが生成される。多重化部３１は、書き込みデータＤを多重化する。
【００４９】
（ロ）デコーダ３２は、期待値ＥＤを参照しながら多重化した書き込みデータＭＤをデコードして、デコードした書き込みデータＤＤを出力する。
【００５０】
（ハ）データ保持部３３は、外部端子３５から出力された外部クロック信号ＣＬＫ，／ＣＬＫに同期してデコーダ３２から出力されたデコードした書き込みデータＤＤを保持し、保持した書き込みデータＯＵＴを記憶回路２へ伝達する。
【００５１】
本発明の第３の実施の形態によれば、書き込みデータＤを多重化することにより、ソフトエラーの影響を分散し小さくすることができ、ソフトエラー耐性を向上させることができる。
【００５２】
なお、多重化部３１は、書き込みデータＤの「１」を多重化する際に、パリティビットを付加しても良い。そして、デコーダ３２により、パリティビットに基づいて多重化した書き込みデータＭＤが正しいかチェックしても良い。
【００５３】
（その他の実施の形態）
上記のように、本発明は第１〜第３の実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。このように、本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。したがって、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【図面の簡単な説明】
【００５４】
【図１】本発明の第１の実施の形態に係る半導体集積回路の一例を示すブロック図である。
【図２】本発明の第１の実施の形態に係る反転データ生成部の一例を示す回路図である。
【図３】本発明の第１の実施の形態に係るインバータの一例を示す回路図である。
【図４】本発明の第１の実施の形態に係る比較部の一例を示す回路図である。
【図５】本発明の第１の実施の形態に係る排他的論理和の一例を示す回路図である。
【図６】本発明の第１の実施の形態に係るデータ保持部の一例を示す回路図である。
【図７】本発明の第１の実施の形態に係るエラー信号生成部の一例を示す回路図である。
【図８】本発明の第１の実施の形態に係るＮＡＮＤ回路の一例を示す回路図である。
【図９】本発明の第１の実施の形態に係るデータ書き込み方式の一例を説明するためのフローチャートである。
【図１０】本発明の第２の実施の形態に係る半導体集積回路の一例を示すブロック図である。
【図１１】本発明の第２の実施の形態に係るデータ書き込み方式の一例を説明するためのタイミングチャートである。
【図１２】本発明の第２の実施の形態の変形例に係る半導体集積回路の一例を示すブロック図である。
【図１３】本発明の第３の実施の形態に係る半導体集積回路の一例を示すブロック図である。
【符号の説明】
【００５５】
１…論理回路（プロセッサ）
２…記憶回路
１０，２０，３０…書き込み回路
１１…反転データ生成部
１２…比較部
１３…データ保持部
１４…エラー信号生成部
２１…データ生成部
２２…データ保持部
２３…判定部
３１…多重化部
３２…デコーダ
３３…データ保持部
２１１…第１遅延回路
２１２…第２遅延回路
【図１】
0004602246.tif 000002
【図２】
0004602246.tif 000003
【図３】
0004602246.tif 000004
【図４】
0004602246.tif 000005
【図５】
0004602246.tif 000006
【図６】
0004602246.tif 000007
【図７】
0004602246.tif 000008
【図８】
0004602246.tif 000009
【図９】
0004602246.tif 000010
【図１０】
0004602246.tif 000011
【図１１】
0004602246.tif 000012
【図１２】
0004602246.tif 000013
【図１３】
0004602246.tif 000014