(57)【要約】【課題】ＥＣＣ回路によりソフトエラー対策を行うとともにＥＣＣ回路を用いることによる処理速度の低下や消費電力の増加のない半導体集積回路を提供する。【解決手段】第１のモードと第２のモードとを有する複数の機能回路と、複数の機能回路毎に異なるタイミングで第１、２のモードを切り替える制御回路と、ＥＣＣ回路と、を備え、各機能回路は、記憶保持回路部を含み、各機能回路は、第２のモードではＥＣＣ回路を用いないで記憶保持回路部にアクセスし、第１のモードの間、ＥＣＣ回路を用いて記憶保持回路部が保持するデータのエラーチェック訂正を行う。【選択図】図１
2011090448.tif 000002
【特許請求の範囲】
【請求項１】
第１のモードと第２のモードとを有する複数の機能回路と、
前記複数の機能回路毎に異なるタイミングで前記第１、２のモードを切り替える制御回路と、
ＥＣＣ回路と、
を備え、
前記各機能回路は、記憶保持回路部を含み、
前記各機能回路は、前記第２のモードでは前記ＥＣＣ回路を用いないで前記記憶保持回路部にアクセスし、前記第１のモードの間、前記ＥＣＣ回路を用いて前記記憶保持回路部が保持するデータのエラーチェック訂正を行うことを特徴とする半導体集積回路。
【請求項２】
前記ＥＣＣ回路は、
前記記憶保持回路部が保持するデータに対してＥＣＣコードを生成し、前記ＥＣＣコードに基づいて前記記憶保持回路部が保持するデータのエラーをチェック、訂正するＥＣＣ演算回路と、
前記ＥＣＣコードを記憶するＥＣＣコード記憶回路と、
を含むことを特徴とする請求項１記載の半導体集積回路。
【請求項３】
前記ＥＣＣ回路は、前記各機能回路が前記第２のモードから前記第１のモードに切り替わったことを受けて前記ＥＣＣコードを生成して前記ＥＣＣコード記憶回路に記憶し、当該機能回路が前記第１のモードから前記第２のモードに切り換わり第２のモードの動作を開始する前に前記ＥＣＣコード記憶回路に記憶したＥＣＣコードに基づいて当該記憶保持回路部が保持するデータのエラーチェック及びエラー訂正を行うことを特徴とする請求項２記載の半導体集積回路。
【請求項４】
前記記憶保持回路部は、保持するデータの入出力を行う入出力回路を備え、前記ＥＣＣ回路に接続される記憶保持回路部の記憶保持ノードは、前記入出力回路を介さずに、直接前記ＥＣＣ回路に接続されていることを特徴とする請求項２又は３記載の半導体集積回路。
【請求項５】
複数ビットの前記記憶保持回路部の記憶保持ノードが、並列に前記ＥＣＣ回路に接続されていることを特徴とする請求項２乃至４いずれか１項記載の半導体集積回路。
【請求項６】
タイマーを備え、各機能回路の前記第１のモードが一定時間継続する毎に、前記ＥＣＣ演算回路を動作させ、前記ＥＣＣコード記憶回路が記憶するＥＣＣコードに基づいて前記記憶保持回路部のエラー訂正を行うことを特徴とする請求項２乃至５いずれか１項記載の半導体集積回路。
【請求項７】
前記第１のモードの期間が短い場合は、前記第２のモードの動作を開始する前に行う前記エラーチェック及びエラー訂正を行わないことを特徴とする請求項３記載の半導体集積回路。
【請求項８】
前記ＥＣＣ回路は、前記記憶保持回路部の記憶保持ノードに接続されたスイッチ回路をさらに備え、前記ＥＣＣ演算回路は、前記スイッチ回路を介して前記記憶保持回路部が保持するデータを取り込んでＥＣＣコードを生成し、演算結果に基づいてエラー訂正を行う場合は前記スイッチ回路を介してエラー訂正データを前記記憶保持ノードに書き込むことを特徴とする請求項２乃至７いずれか１項記載の半導体集積回路。
【請求項９】
前記記憶保持回路部はｍ（ｍは２以上の整数）ビットの記憶保持回路を備え、前記ｍビットのうち、ｎ（ｎ＜ｍの自然数）ビットの記憶保持回路が前記ＥＣＣ回路に接続され、残りのｍ−ｎビットの記憶保持回路は前記ＥＣＣ回路には接続されておらず前記ＥＣＣ回路によるエラーチェックやエラー訂正を行わないことを特徴とする請求項１乃至８いずれか１項記載の半導体集積回路。
【請求項１０】
前記ＥＣＣ回路に代えてエラー訂正機能を有しないエラーチェック回路を設け、
前記各機能回路は、前記第２のモードで動作中は、前記エラーチェック回路を用いないで前記記憶保持回路部にアクセスし、前記第１のモードの間、前記ＥＣＣ回路に代えて前記エラーチェック回路を用いて前記記憶保持回路部が保持するデータのエラーチェックを行うことを特徴とする請求項１乃至９いずれか１項記載の半導体集積回路。
【請求項１１】
前記複数の機能回路の内、前記第１のモード中に状態の保持が必要な前記記憶保持回路部のビット数が少ない機能回路は、保持が必要な１ビットのデータに対して複数ビットの記憶保持回路を設け、前記複数ビットの記憶保持回路を多数決回路、又は、一致回路として用いることにより前記ＥＣＣ回路、又は、エラーチェック回路として機能させることを特徴とする請求項１乃至１０いずれか１項記載の半導体集積回路。
【請求項１２】
前記記憶保持回路部の記憶保持回路は、レジスタ回路、ラッチ回路、フリップフロップ回路、ＤＩＣＥ（Ｄｕａｌ  Ｉｎｔｅｒｌｏｃｋｅｄ  Ｃｅｌｌ）回路のいずれかであることを特徴とする請求項１乃至１１いずれか１項記載の半導体集積回路。
【請求項１３】
前記第１のモードは、前記第２のモードより低速で動作するモード、少なくとも一部の動作を停止するモード、前記第２のモードより低い電源電圧が供給されるモード、前記第２のモードより少ない電源電流が供給されるモード、一部の回路に対して電源の供給を停止するモード、のうち、少なくとも１つのモードを含むモードであることを特徴とする請求項１乃至１２いずれか１項記載の半導体集積回路。
【請求項１４】
前記記憶保持回路部に含まれる複数ビットの記憶保持回路が１つの前記機能回路の中に分散して配置されていることを特徴とする請求項１乃至１３いずれか１項記載の半導体集積回路。
【請求項１５】
前記第１、第２のモードはそれぞれスタンバイモード、高速動作モードであることを特徴とする請求項１乃至１４いずれか１項記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路に関する。特に、レジスタ回路、ラッチ回路などの記憶保持回路に対してソフトエラーに対する対策を施した半導体集積回路に関する。
【背景技術】
【０００２】
半導体集積回路の分野において、素子の微細化、低電圧化、搭載する回路規模の増大によって、放射線等によるソフトエラーが、メモリセルだけでなく、論理回路においても問題となって来ている。
【０００３】
論理回路のソフトエラーの問題としては、フリップフロップ回路（Ｆ／Ｆ回路）やラッチ回路、レジスタ回路のように情報を一時的に保持している順序回路の保持情報の反転（ＳＥＵ：Ｓｉｎｇｌｅ  Ｅｖｅｎｔ  Ｕｐｓｅｔｓ）の問題と、組み合わせ回路等の誤動作（結果として誤った情報を伝達することとなり、ＳＥＴ：Ｓｉｎｇｌｅ  Ｅｖｅｎｔ  Ｔｒａｎｓｉｅｎｔと呼ばれている）の問題がある。前者のＳＥＵに対する対策としては情報保持回路が反転しにくいような回路を付加（トランジスタや容量素子を追加）することが知られている。また、後者のＳＥＴに対する対策としては一致回路や多数決回路などが考えられている。
【０００４】
また、システムの低消費電力化の一環として、高速での動作が必要でないときは、クロック周波数を下げて動作を遅くしたり、電源電圧を下げて低電圧で動作させるモードを設けるなどした半導体集積回路も知られている。
【０００５】
特許文献１や特許文献２には、データの保持のみを行う動作モードに入るときに誤り検出訂正用の検査ビットを生成して記憶させ、かかる検査ビットを用いることにより、リフレッシュ周期を遅くするＤＲＡＭが記載されている。
【０００６】
特許文献３には、ノーマル動作時にアクセスされたロウアドレスに対するワード線をＲＡＭに記憶させておき、このデータが反転する時間をＥＣＣ回路により計測して、セルフリフレッシュ周期を変えるＤＲＡＭが記載されている。
【０００７】
特許文献４には、ヒューズボックス等のプログラム回路と、プログラムされた情報を保持する情報保持回路（レジスタ）と、情報保持回路が保持する情報を圧縮する圧縮回路を設け、圧縮された情報を用いて情報保持回路がソフトエラーなどによって誤った情報をチェック訂正する半導体集積回路装置が記載されている。
【０００８】
特許文献５には、ソフトエラーが発生しにくいラッチ回路が記載されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００２−０５６６７１号公報
【特許文献２】特開２００６−００４５５９号公報
【特許文献３】特開２００８−１８６５８４号公報
【特許文献４】特開２００５−０７８２８６号公報
【特許文献５】特開２００９−１１８３３５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
以下の分析は本発明により与えられる。上記特許文献１〜特許文献４に記載されているようにＥＣＣ（Ｅｒｒｏｒ  Ｃｈｅｃｋ  ａｎｄ  Ｃｏｒｒｅｃｔ）回路を用いることにより、レジスタなどの記憶保持回路がソフトエラーにより誤動作することを防ぐことができる。しかし、ＥＣＣ回路によるエラーチェック、訂正には、一定の処理時間を必要とし、記憶保持回路に対する高速アクセスの妨げとなる。
【００１１】
また、半導体集積回路には、複数の機能回路が含まれ、低消費電力化のため、各機能回路は、必要なときのみ高速動作を実行し、高速動作が必要でないときは、消費電力を抑える必要がある。機能回路毎に高速動作を実行する高速動作モードと消費電力を抑えるモードに切り替えるタイミングは異なる。
【００１２】
さらに、記憶保持回路がソフトエラーを起こす確率は時間に比例し、記憶保持回路にアクセスする頻度とは直接の関係はないので、アクセスがあるたびにＥＣＣ回路によるエラーチェック、訂正を行うと消費電力が増加する。
【課題を解決するための手段】
【００１３】
本発明の１つの側面による半導体集積回路は、第１のモードと第２のモードとを有する複数の機能回路と、前記複数の機能回路毎に異なるタイミングで前記第１、２のモードを切り替える制御回路と、ＥＣＣ回路と、を備え、前記各機能回路は、記憶保持回路部を含み、前記各機能回路は、前記第２のモードでは前記ＥＣＣ回路を用いないで前記記憶保持回路部にアクセスし、前記第１のモードの間、前記ＥＣＣ回路を用いて前記記憶保持回路部が保持するデータのエラーチェック訂正を行う。
【発明の効果】
【００１４】
本発明によれば、機能回路毎に異なるタイミングで第１のモードと第２のモードとを切
り替え、各機能回路は、第２のモードではＥＣＣ回路を用いないで記憶保持回路部にアクセスするので、ＥＣＣ回路によるアクセス速度の低下や消費電力の増加はない。また、各機能回路は、第１のモードにおいてＥＣＣ回路を用いて記憶保持回路部が保持するデータのエラーチェック訂正を行うのでソフトエラーによる誤動作を防ぐことができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施例による半導体集積回路全体のブロック図である。
【図２】一実施例による一部の機能回路とその機能回路に対応するＥＣＣ回路のブロック図である。
【図３】一実施例による記憶保持回路部周辺のブロック図である。
【図４】一実施例による記憶保持回路及びスイッチ回路の一例を示す回路ブロック図である。
【図５】一実施例による高速動作モードとスタンバイモードの動作タイミングチャートである。
【図６】別な実施例による記憶保持回路部周辺のブロック図である。
【図７】さらに別な実施例による記憶保持回路部周辺のブロック図である。
【発明を実施するための形態】
【００１６】
本発明の実施形態の概要について、最初に説明する。なお、概要の説明において引用する図面及び図面の符号は実施形態の一例として示すものであり、それにより本発明による実施形態のバリエーションを制限するものではない。
【００１７】
一例として図１に示すように、本発明の一実施形態の半導体集積回路１００は、第１のモードと第２のモードとを有する複数の機能回路１１１、１１２、１１３と、複数の機能回路１１１、１１２、１１３毎に異なるタイミングで第１、第２のモードを切り替える制御回路１０１と、ＥＣＣ回路１２１、１２２、１２３と、を備え、各機能回路１１１、１１２、１１３は、記憶保持回路部ＲＧを含み、
各機能回路１１１、１１２、１１３は、第２のモードではＥＣＣ回路１２１、１２２、１２３を用いないで記憶保持回路部ＲＧにアクセスし、第１のモードの間、ＥＣＣ回路を用いて記憶保持回路部ＲＧが保持するデータのエラーチェック訂正を行う。
【００１８】
例えば、第１のモードがスタンバイモードで第２のモードが高速動作モードである場合、高速動作を要求されない第１のモードにおいてＥＣＣ回路を用いて記憶保持回路ＲＧが保持するデータのエラーチェック訂正を行うので、ソフトエラーによる誤動作する確率を低減することができる。また、高速動作が要求される第２のモードでは、ＥＣＣ回路によるエラーチェック訂正を行わないので、ＥＣＣ回路の動作が高速動作の妨げとなることがない。記憶保持回路へのアクセス頻度は、第１のモードより第２のモードの方が高いが、ソフトエラーが発生する確率は、アクセス頻度には依存せず、データの保持時間に依存すると考えられるため、第２のモードに設定される時間より第１のモードに設定される時間が長ければ、第２のモードにおいてＥＣＣ回路によるエラーチェック訂正を行わなくとも、第１のモードにおいてＥＣＣ回路によるエラーチェック訂正を行えば問題はない。
【００１９】
特に第１のモードで消費電力を抑えるために、電源電圧を下げたり、電源電流を制限したりする場合には、記憶保持回路の保持ノードは、外部からのエネルギーにより反転しやすくなるので、ソフトエラーが発生する確率も高くなる。従って、第１のモードにおいて、ＥＣＣ回路を用いて記憶保持回路ＲＧが保持するデータのエラーチェック訂正を行うことで、ソフトエラーによる誤動作を防ぐことができる。
【００２０】
一例として図２に示すように、ＥＣＣ回路１２１は、記憶保持回路部ＲＧが保持するデータに対してＥＣＣコードを生成し、ＥＣＣコードに基づいて前記記憶保持回路部が保持するデータのエラーをチェック、訂正するＥＣＣ演算回路２２１と、ＥＣＣコードを記憶するＥＣＣコード記憶回路２３１と、を含むものであってもよい。
【００２１】
一例として図５に示すように、ＥＣＣ回路（図１の１２１、１２２、１２３）は、各機能回路（図１の１１１、１１２、１１３）が第２のモードから第１のモードに切り替わったことを受けてＥＣＣコードを生成してＥＣＣコード記憶回路（図２の２３１）に記憶し、当該機能回路１１１、１１２、１１３が第１のモードから第２のモードに切り換わり第２のモードの動作を開始する前にＥＣＣコード記憶回路２３１に記憶したＥＣＣコードに基づいて当該記憶保持回路部（図２のＲＧ）が保持するデータのエラーチェック及びエラー訂正を行うものであってもよい。
【００２２】
また、一例として図４に示すように、記憶保持回路部ＲＧ１は、保持するデータの入出力を行う入出力回路Ｉ１、Ｔ１を備え、ＥＣＣ回路１２１に接続される記憶保持回路部ＲＧ１の記憶保持ノードＲＮは、入出力回路Ｉ１、Ｔ１を介さずに、直接ＥＣＣ回路１２１に接続するようにしてもよい。上記構成によれば、記憶保持回路部ＲＧ１が通常のデータ入出力には、クロックを必要とするような記憶保持回路であった場合でもクロックなしにＥＣＣ回路との間でエラーチェック訂正を行うことができる。
【００２３】
また、一例として図４に示すように、複数ビットの記憶保持回路部ＲＧ１〜ＲＧｍの記憶保持ノードが、並列にＥＣＣ回路１２１に接続されているようにしてもよい。上記構成によれば、複数ビットの記憶保持回路部のデータを並列にＥＣＣ回路１２１に入力することができるので、高速にエラーチェックを行うことができ、複数ビットの記憶保持回路部に対してエラー訂正を行う場合も並列に書き込むことができる。従って、特に第１のモードを解除してから第２のモードを立ち上げて、高速動作を開始するまでの時間を短縮することができる。
【００２４】
また、半導体集積回路は、タイマーを備え、各機能回路１１１（図２参照）の第１のモードが一定時間継続する毎に、ＥＣＣ演算回路２２１を動作させ、ＥＣＣコード記憶回路２３１が記憶するＥＣＣコードに基づいて記憶保持回路部ＲＧのエラー訂正を行うようにしてもよい。ソフトエラーの発生する確率は時間の経過とともに増大するので、一定時間毎にエラーチェック、訂正を行うことで、ソフトエラー発生の確率を低減することができる。タイマーは外部から時間を取得することでタイマーとしての機能を果たすものであってもよい。
【００２５】
また、第１のモードの期間が短い場合は、第２のモードの動作を開始する前に行うエラーチェック及びエラー訂正を行わないこととしてもよい。第１のモードの間にソフトエラーが発生する確率が低いと考えられ、無駄に電力を消費することを避けるためである。
【００２６】
一例として図４に示すように、ＥＣＣ回路１２１は、記憶保持回路部ＲＧ１〜ＲＧｍの記憶保持ノードＲＮに接続されたスイッチ回路２１１をさらに備え、ＥＣＣ演算回路２２１は、スイッチ回路２１１を介して記憶保持回路部ＲＧ１〜ＲＧｍが保持するデータを取り込んでＥＣＣコードを生成し、演算結果に基づいてエラー訂正を行う場合はスイッチ回路２１１を介してエラー訂正データを記憶保持ノードＲＮに書き込むようにしてもよい。スイッチ回路２１１を介してＥＣＣコードの生成、チェックに必要なデータを記憶保持回路部から取り込み、訂正が必要な場合は、スイッチ回路２１１を介して記憶保持回路部ＲＧ１〜ＲＧｍのデータを訂正することができる。
【００２７】
一例として図６、図７に示すように、記憶保持回路部（ＲＧ１〜ＲＧ６の全体）はｍ（ｍは２以上の整数）ビットの記憶保持回路（個々のＲＧ１〜ＲＧ６）を備え、前記ｍビットのうち、ｎ（ｎ＜ｍの自然数）ビットの記憶保持回路ＲＧ４〜ＲＧ６が前記ＥＣＣ回路に接続され、残りのｍ−ｎビットの記憶保持回路ＲＧ１〜ＲＧ３はＥＣＣ回路１２１には接続されておらずＥＣＣ回路１２１によるエラーチェックやエラー訂正を行わないとしてもよい。複数の記憶保持回路のうち、第１のモード期間にデータを保持する必要のない第２のモードで必要なテンポラリなデータのみを保持する記憶保持回路は、ＥＣＣ回路に接続する必要はない。それによりＥＣＣ回路等の素子数を減らし、ＥＣＣ演算の消費電力を減らすこともできる。なお、第１のモード中にテータを保持する必要のない記憶保持回路は、第１のモード期間中、電源の供給を遮断し、消費電力を減らしても良い。
【００２８】
また、ＥＣＣ回路１２１、１２２、１２３に代えてエラー訂正機能を有しないエラーチェック回路を設け、各機能回路１１１、１１２、１１３は、第２のモードで動作中は、エラーチェック回路を用いないで記憶保持回路ＲＧにアクセスし、第１のモードの間、ＥＣＣ回路１２１、１２２、１２３に代えてエラーチェック回路を用いて記憶保持回路ＲＧが保持するデータのエラーチェックを行うようにしてもよい。ソフトエラーが生じる確率が低い場合や、用途によって、ソフトエラーが発生したことを検出できればよく、エラー訂正まで必要とされない場合は、ＥＣＣ回路をエラー訂正機能のないエラーチェック回路に置き換えることにより回路規模を小さくし、消費電力も少なくすることができる。
【００２９】
複数の機能回路の内、第１のモード中に状態の保持が必要な記憶保持回路のビット数が少ない機能回路は、保持が必要な１ビットのデータに対して複数ビットの記憶保持回路を設け、複数ビットの記憶保持回路を多数決回路、又は、一致回路として用いることによりＥＣＣ回路、又は、エラーチェック回路として機能させることができる。
【００３０】
記憶保持回路部ＲＧの記憶保持回路（個々のＲＧ１〜ＲＧｍ）は、レジスタ回路、ラッチ回路、フリップフロップ回路、ＤＩＣＥ（Ｄｕａｌ  Ｉｎｔｅｒｌｏｃｋｅｄ  Ｃｅｌｌ）回路のいずれかであってもよい。また、第１のモードは、第２のモードより低速で動作するモード、少なくとも一部の動作を停止するモード、第２のモードより低い電源電圧が供給されるモード、第２のモードより少ない電源電流が供給されるモード、一部の回路に対して電源の供給を停止するモード、のうち、少なくとも１つのモードを含むモードであってもよい。さらに、第１、第２のモードはそれぞれスタンバイモード、高速動作モードであってもよい。
【００３１】
以上で概要の説明を終わり、より具体的な実施例について、図面を参照してさらに詳しく説明する。
【実施例１】
【００３２】
図１は、実施例１の半導体集積回路１００の構成を示すブロック図である。図１において、半導体集積回路１００は、複数の機能回路１１１、１１２、１１３とそれぞれの動作モードを制御する制御回路１０１を備えている。制御回路１０１は、モード制御信号ＭＯＤＥ１〜ＭＯＤＥ３により、各機能回路１１１、１１２、１１３の動作モードを制御する。ここでは単純に各機能回路の動作モードには、高速動作モードと、スタンバイモードの２つの動作モードがあり、対応するモード制御信号ＭＯＤＥ１〜ＭＯＤＥ３がハイレベルのときに、各機能回路１１１、１１２、１１３は高速動作モードに設定され、モード制御信号ＭＯＤＥ１〜ＭＯＤＥ３がロウレベルのときに、各機能回路１１１、１１２、１１３はスタンバイモードに設定されるとする。各機能回路に対する高速動作モードとスタンバイモードの切り換えはそれぞれ異なるタイミングで切り換えることができる。
【００３３】
なお、高速動作モードは機能回路の通常動作を高速で実行可能なモードである。一方、スタンバイモードは、上記高速動作モードより低速で動作するモード、一部の動作を停止するモード、高速動作モードより低い電源電圧が供給されるモード、高速動作モードより少ない電源電流が供給されるモード、機能回路の中の一部の回路に対して電源の供給を停止するモードのうち、少なくとも一つのモードを含むモードであり、次の高速動作モードに入るまで待機するモードである。スタンバイモードでは、高速動作モードに比較して消費電力を抑えることができる。
【００３４】
各機能回路１１１〜１１３には、それぞれ動作クロックＣＬＫ１〜ＣＬＫ３と入力信号ＩＮ１〜ＩＮ３が供給され、各機能回路から出力信号ＯＵＴ１〜ＯＵＴ３が出力される。なお、各機能回路に供給されるクロックＣＬＫ１〜ＣＬＫ３は同一のクロックであってもよいし、周波数が異なったクロックであってもよい。
【００３５】
また、各機能回路１１１〜１１３に対応してＥＣＣ回路１２１〜１２３が設けられている。ＥＣＣ回路１２１〜１２３は、スタンバイ動作中に各機能回路１１１〜１１３に含まれる記憶保持回路のエラーをチェックし、訂正が可能な場合は訂正を行う。ＥＣＣ回路は高速動作モードにおいては、高速動作の妨げとなるため、使用しない。
【００３６】
なお、ＥＣＣ回路１２１〜１２３は、一箇所に集中して配置したり、複数の機能回路でＥＣＣ回路を共通に設けたりしてもよいが、ここでは、機能回路毎にＥＣＣ回路１２１〜１２３を設けている。機能回路毎にＥＣＣ回路を近傍に配置することにより、スタンバイモードから高速動作モードへの復帰時などに速やかにエラーチェック訂正を完了させて、高速動作モードでの動作開始を迅速に行うことができる。
【００３７】
図２は、実施例１の機能回路１１１とその機能回路に対応するＥＣＣ回路１２１のブロック図である。
【００３８】
図２において、機能回路１１１は、ｍビット（ｍは自然数）のレジスタＲＧを備えている。このレジスタＲＧは、ｍビットのデータを保持する記憶保持回路部ＲＧとして機能する。機能回路１１１には、クロック信号ＣＬＫ１、モード制御信号ＭＯＤＥ１、入力信号Ｓ１〜ＳＸ（図１の入力信号ＩＮ１に相当）が供給され、出力信号Ｓ１１〜Ｓｘｘ（図１のＯＵＴ１信号に相当）を出力する。このｍビットの記憶保持回路部は機能回路１１１に含まれる他の組み合わせ回路等の中に分散して配置されていてもよい。各記憶保持回路と密接に関連のある組み合わせ回路の近傍に配置した方が高速なアクセスが確保できる場合は、そのように配置することもできる。
【００３９】
ＥＣＣ回路１２１は、内部にスイッチ回路２１１と、ＥＣＣ演算回路２２１と、ＥＣＣコード記憶回路２３１と、ＥＣＣ制御回路２４１と、を備える。スイッチ回路２１１は、記憶保持回路部ＲＧとＥＣＣ演算回路２２１とを接続するスイッチである。スイッチ回路２１１を制御する信号ＭＳ１がハイレベルのときに、記憶保持回路部ＲＧとＥＣＣ演算回路２２１が接続され、ＥＣＣコードの生成、記憶保持回路部ＲＧの保持するデータの内容とＥＣＣコードとの照合、記憶保持回路部ＲＧへの訂正データの書込みが行われる。それ以外のときは、スイッチ回路を制御する信号ＭＳ１はロウレベルとなり、スイッチ回路２１１はオフし、記憶保持回路部ＲＧはＥＣＣ演算回路２２１から切り離される。
【００４０】
ＥＣＣ演算回路２２１は、記憶保持回路部ＲＧが保持するｍビットのデータからＥＣＣコードを生成する。また、ＥＣＣコードに基づいて、記憶保持回路部ＲＧのデータのチェック訂正を行う。ＥＣＣコード記憶回路２３１は、ＥＣＣ演算回路２２１が生成したＥＣＣコードを記憶する。ＥＣＣコードは、ハミングコードを用いるものが良く知られている。
【００４１】
ＥＣＣ制御回路２４１は、クロック信号ＣＬＫ１と、モード制御信号ＭＯＤＥ１と、を入力し、ＥＣＣ回路１２１全体の動作を制御する。ＥＣＣ符号化制御信号ＥＣＣＥＮＣ１は、ＥＣＣコードの生成や保存を制御する信号であり、モード制御信号ＭＯＤＥ１がハイレベルからロウレベルに立下り、機能回路１１１が高速動作モードからスタンバイモードに移行するときに１ショットパルスとして出力する信号である。このＥＣＣ符号化制御信号ＥＣＣＥＮＣ１に基づいて、ＥＣＣ演算回路２２１は、記憶保持回路部の保持するデータからＥＣＣコードを生成して、そのＥＣＣコードをＥＣＣコード記憶回路２３１に保存する。
【００４２】
また、ＥＣＣ復号化制御信号ＥＣＣＤＥＣ１は、ＥＣＣコード記憶回路２３１が記憶するＥＣＣコードに基づいて、記憶保持回路部ＲＧが保持するデータのチェックを行い、誤りがあり、その誤りが訂正可能であれば、データの訂正を制御する信号である。ＥＣＣ復号化制御信号ＥＣＣＤＥＣ１は、モード制御信号ＭＯＤＥ１がロウレベルからハイレベルに立ち上がり、機能回路１１１がスタンバイモードから高速動作モードに切り替わるときに出力される。なお、図２には、特に図示していないが、半導体集積回路１００の内部に設けられるタイマーからの信号をＥＣＣ制御回路２４１に入力し、スタンバイモード動作中は、一定周期毎にＥＣＣ復号化制御信号ＥＣＣＤＥＣ１を活性化させて、エラーチェック訂正を行ってもよい。なお、タイマーは、ＥＣＣ制御回路２４１の内部に設けてもよい。さらに、ＥＣＣ制御回路２４１は、ＥＣＣ回路１２１の内部に設けずに、対応する機能回路や制御回路１０１の内部に設けてもよい。
【００４３】
また、スイッチ回路を制御する信号ＭＳ１は、ＥＣＣ符号化制御信号ＥＣＣＥＮＣ１、
ＥＣＣ復号化制御信号ＥＣＣＤＥＣ１と連動して出力され、スイッチ回路２１１のオンオフを制御する。
【００４４】
図３は、実施例１による記憶保持回路部周辺の一例を示すブロック図である。機能回路１１１には、レジスタである記憶保持回路ＲＧ１〜ＲＧ６を備えており、各記憶保持回路ＲＧ１〜ＲＧ６は、記憶保持回路入力データ信号Ｓ１〜Ｓ６を入力し、記憶保持回路出力データ信号Ｓ１１〜Ｓ１６を出力する。また各記憶保持回路ＲＧ１〜ＲＧ６の記憶保持ノードには、ＥＣＣ回路１２１が接続される。なお、図３の記憶保持回路ＲＧ１〜ＲＧ６の全体が図２の記憶保持回路部ＲＧに相当する。
【００４５】
また、各記憶保持回路ＲＧ１〜ＲＧ６には、アンド回路ＡＮ１からクロック信号ＣＫが供給される。アンド回路ＡＮ１には、クロック信号ＣＬＫ１とモード制御信号ＭＯＤＥ１を入力し、高速動作モードでモード制御信号ＭＯＤＥ１がハイレベルのときに、クロック信号ＣＬＫ１と同位相のクロック信号ＣＫを出力し、スタンバイモードでモード制御信号ＭＯＤＥ１がロウレベルであるときに、クロック信号ＣＫをロウレベルに固定する。
【００４６】
図４は、実施例１による記憶保持回路（レジスタ回路）ＲＧ１〜ＲＧｍ及びスイッチ回路２１１の一例を示す回路ブロック図である。
【００４７】
記憶保持回路ＲＧ１の入力データ信号Ｓ１は、クロック信号ＣＫに同期して記憶保持回路ＲＧ１に取り込まれ、記憶保持ノードＲＮに保持される。また、記憶保持回路ＲＧ１からは、出力データ信号Ｓ１１が出力している。記憶保持回路ＲＧ１の記憶保持ノードＲＮはスイッチ回路２１１に直接接続されている。スイッチ回路２１１は、記憶保持回路ＲＧ１の記憶保持ノードＲＮとＥＣＣ演算回路２２１とを直接接続するスイッチトランジスタで構成されており、ゲート信号ＭＳ１がハイレベルであるときにオンし、記憶保持回路（レジスタ回路）ＲＧ１の記憶保持ノードＲＮとＥＣＣ演算回路がスイッチ回路２１１を介して直接接続される。
【００４８】
なお、記憶保持回路部ＲＧの記憶保持回路は、図４に記載の記憶保持回路ＲＧ１に限らず、様々な回路方式の記憶保持回路を用いることができる。記憶保持回路は、基本的には、情報を保持する機能があればよいが、レジスタ回路、ラッチ回路、フリップフロップ回路、ＤＩＣＥ（Ｄｕａｌ  Ｉｎｔｅｒｌｏｃｋｅｄ  Ｃｅｌｌ）回路のいずれかであってもよい。ＤＩＣＥ回路は、ソフトエラーが起こりにくいような考慮がされた一種のラッチ回路で、例えば、前述した特許文献５の図２にも記載されている。記憶保持回路が、上述したレジスタ回路、ラッチ回路、フリップフロップ回路、ＤＩＣＥ回路であれば、かならずしも一箇所にまとめて配置する必要はなく、ビット毎にレイアウトの都合上、最適な位置に配置することもできる。
【００４９】
次に、半導体集積回路１００の高速動作モードとスタンバイモードの動作について、図５の動作タイミングチャートを用いて説明する。図５は、図１における機能回路１１１が高速動作モードからスタンバイモードに切り替わった後、再び高速動作モードに切り替わり高速動作を再開するまでの動作タイミングチャートである。
【００５０】
タイミングｔ１までは、モード制御信号ＭＯＤＥ１がハイレベルなので、高速動作モードであり、記憶保持回路部ＲＧは、機能回路１１１の内部クロック信号ＣＫに同期してデータの入出力を行う。Ｓ１１〜Ｓｘｘは、記憶保持回路部ＲＧの出力データ信号であり、内部クロック信号ＣＫの立ち上がりに同期して出力データ信号が変化している。また、Ｒ１〜Ｒｍは、記憶保持回路部ＲＧが保持しているデータであり、内部クロック信号ＣＫの立ち上がりに同期して変化する。
【００５１】
タイミングｔ１になると、制御回路１０１はモード制御信号ＭＯＤＥ１をロウレベルに立ち下げ、機能回路１１１をスタンバイモードに設定する。機能回路１１１は、モード制御信号ＭＯＤＥ１がロウレベルに立ち下がると内部クロック信号ＣＫをロウレベルに固定する。従って、機能回路１１１に含まれる記憶保持回路部ＲＧもそのデータの更新を停止し、記憶保持回路部ＲＧの出力データ信号も更新を停止する。
【００５２】
また、モード制御信号ＭＯＤＥ１がハイレベルからロウレベルに立ち下がると、ＥＣＣ回路１２１に含まれるＥＣＣ制御回路２４１は、ＥＣＣ符号化制御信号ＥＣＣＥＮＣ１を１ショットパルス信号として出力する。このＥＣＣ符号化制御信号ＥＣＣＥＮＣ１の立ち上がりに同期して記憶保持回路部ＲＧとＥＣＣ演算回路２２１との間に設けられたスイッチ回路２１１を制御する信号ＭＳ１がアクテイブになり、スイッチ回路２１１が導通し、記憶保持回路部ＲＧの保持するデータがＥＣＣ演算回路２２１に入力される。ＥＣＣ演算回路２２１は、入力した記憶保持回路部ＲＧのデータに基づいて、ＥＣＣコードを演算により求める。演算により求められたＥＣＣコードは、ＥＣＣ符号化制御信号ＥＣＣＥＮＣ１の立ち下がりに同期してＥＣＣコード記憶回路２３１に記憶される。このようにして高速動作モードからスタンバイモードに切り替わると記憶保持回路部ＲＧが保持しているデータのＥＣＣコードがＥＣＣ演算回路２２１により求められ、ＥＣＣコード記憶回路２３１に保存される。
【００５３】
次に、機能回路１１１がスタンバイモードであるときに、制御回路１０１がモード制御信号ＭＯＤＥ１をロウレベルからハイレベルに立ち上げると機能回路１１１は、スタンバイモードの解除動作に入る。モード制御信号ＭＯＤＥ１が立ち上がると、ＥＣＣ制御回路２４１は、ＥＣＣ符号化制御信号ＥＣＣＥＮＣ１を１ショットパルス信号として出力する。このＥＣＣ復号化制御信号ＥＣＣＤＥＣ１の立ち上がりに同期して記憶保持回路部ＲＧとＥＣＣ演算回路２２１の間に設けられたスイッチ回路２１１が導通し、記憶保持回路部ＲＧの保持するデータをＥＣＣ演算回路２２１に入力すると共に、ＥＣＣ演算回路２１１はＥＣＣコード記憶回路２３１からＥＣＣコードを入力し、記憶保持回路部ＲＧが保持するデータのＥＣＣコードについてＥＣＣコード記憶回路２３１が記憶しているＥＣＣコードと一致するか否かチェックを行う。チェックした結果、記憶保持回路部ＲＧが保持するデータが誤っており、その誤りをＥＣＣコードによって訂正可能な場合は、ＥＣＣ復号化制御信号ＥＣＣＤＥＣ１の立ち下がりに同期してスイッチ回路を再びオンし、訂正データを記憶保持回路部ＲＧに書き込む。また、誤り訂正が不可能な場合は、図示しないエラー発生信号を機能回路１１１又は、制御回路１０１へ出力する。
【００５４】
ＥＣＣ回路によるエラーチェック、訂正が終了し、タイミングｔ３になると、機能回路１１１のスタンバイモードは解除され、タイミングｔ３から機能回路１１１は高速動作を開始する。
【００５５】
なお、スタンバイ状態が長い期間継続し、一定の期間を経過すると、ＥＣＣ制御回路
２４１は、ＥＣＣ復号化信号ＥＣＣＤＥＣ１の１ショットパルスを出力し、スタンバイモードの途中で、記憶保持回路ＲＧの保持するデータについてＥＣＣ回路によるエラーチェック訂正を行うようにしてもよい。その場合は、エラーチェック訂正後高速動作モードには移行せずに、スタンバイモードを継続する。上記構成によれば、スタンバイ期間がいくら長くてもソフトエラーによる誤動作を防ぐことができる。また、全体として、スタンバイモードの期間が高速動作モードの期間より十分に長ければ、高速動作モードにおいてエラーチェック訂正を行わなくてもそれだけソフトエラーによる誤動作の発生する確率を低減することができる。
【実施例２】
【００５６】
図６は、実施例２による機能回路１１１Ａの記憶保持回路部周辺のブロック図である。図６において、実施例１と構成、動作がほぼ同一であるブロックは実施例１と同一の符号を付し、詳細な説明は省略する。
【００５７】
実施例１では、記憶保持回路部ＲＧの記憶保持回路ＲＧ１〜ＲＧ６の全ビットについてスタンバイモードにおいて、ＥＣＣ回路１２１によるエラーチェック訂正を行っていた（図３参照）。しかし、機能回路によっては、スタンバイモードになると一部の回路機能は停止しても残りの部分の回路は、高速動作を継続する場合がある。このような場合、スタンバイモードに移行しても高速動作を継続する回路については、ＥＣＣ回路によるエラーチェック訂正を行わないようにすることができる。図６に示す実施例２では、記憶保持回路ＲＧ１〜ＲＧ６のうち、ＲＧ１〜ＲＧ３はスタンバイモードに移送しても高速動作モードと同様にクロック信号ＣＬＫ１が供給される。
【００５８】
一方、記憶保持回路ＲＧ４〜ＲＧ６については、実施例１と同様に、クロック信号ＣＬＫ１をモード制御信号ＭＯＤＥ１でゲーティングした内部クロック信号ＣＫが供給されており、スタンバイモードに入ると内部クロック信号ＣＫが停止し、記憶保持回路ＲＧ４〜ＲＧ６の動作が停止する。記憶保持回路ＲＧ４〜ＲＧ６の動作を停止する場合は、記憶保持回路ＲＧ４〜ＲＧ６については、データを保持するだけでよいので、電源電圧をデータ保持に必要な低電圧に下げてリーク電流を抑えて消費電力をセーブすることができる。
【００５９】
電源電圧を下げると放射線等に対しては弱くなるので、記憶保持回路ＲＧ４〜ＲＧ６は、スタンバイ期間中、ＥＣＣ回路によるエラーチェック訂正を行うことにより、ソフトエラーによる誤動作を抑制することができる。
【００６０】
すなわち、実施例２では、記憶保持回路部ＲＧに含まれる複数の記憶保持回路ＲＧ１〜ＲＧ６のうち、スタンバイ中に電源電圧を下げる等ソフトエラーが起こりやすい記憶保持回路のみＥＣＣ回路を用いてエラーチェック、エラー訂正を行い、スタンバイモードになっても高速動作を継続する記憶保持回路については、ＥＣＣ回路を用いずに高速動作を維持することができる。
【実施例３】
【００６１】
実施例３も実施例２と同様に、スタンバイモードにおいて、一部の記憶保持回路のみＥＣＣ回路を用いてエラーチェック、エラー訂正を行う実施例である。図７は、実施例３による機能回路１１１Ｂ周辺のブロック図である。図７において、実施例１と構成、動作がほぼ同一であるブロックは実施例１と同一の符号を付し、詳細な説明は省略する。
【００６２】
図７の機能回路１１１Ｂは、制御回路が出力する２本のモード制御信号ＭＯＤＥ１Ａ、ＭＯＤＥ２Ａをデコードして記憶保持回路ＲＧ１〜ＲＧ６に与える内部クロックを制御するアンド回路ＡＮ３を設けている。アンド回路ＡＮ３は、モード制御信号ＭＯＤＥ１Ａ、ＭＯＤＥ２Ａのいずれもがハイレベルであるときにクロック信号ＣＬＫに同期した内部クロック信号ＣＫを記憶保持回路ＲＧ１〜ＲＧ６に供給している。モード制御信号ＭＯＤＥ１Ａ、ＭＯＤＥ２Ａのいずれかがロウレベルのときには、記憶保持回路ＲＧ１〜ＲＧ６に供給する内部クロックＣＫをロウレベルに固定する。
【００６３】
また、記憶保持回路ＲＧ４〜ＲＧ６は、ＥＣＣ回路１２１に接続されているが、記憶保持回路ＲＧ１〜ＲＧ３はＥＣＣ回路１２１には接続されていない。
【００６４】
記憶保持回路ＲＧ１〜ＲＧ６の保持するデータには、次にスタンバイモードが解除されて高速動作を開始するまでに保持する必要のデータの他に、高速動作モード中は必要であっても、一度スタンバイモードになった場合には、保持しておく必要のないデータもある。実施例３によれば、スタンバイモードでは、記憶保持回路ＲＧ１〜ＲＧ６のすべての記憶保持回路が動作を停止するが、このうち、記憶保持回路ＲＧ１〜ＲＧ３はＥＣＣ回路１２１に接続されておらず、記憶保持回路ＲＧ４〜ＲＧ６のみがＥＣＣ回路１２１に接続されている。スタンバイモード中も次の高速動作モードまで保持が必要なデータは、ＥＣＣ回路１２１に接続されている記憶保持回路ＲＧ４〜ＲＧ６に格納し、スタンバイモード中、ＥＣＣ回路によるエラーチェック訂正を行う。
【００６５】
一方、スタンバイモードになった後、保持が必要でないデータは、ＥＣＣ回路に接続されていない記憶保持回路ＲＧ１〜ＲＧ３を用いることができる。そのようにスタンバイモード期間中に、次の高速動作モード再開まで保持する必要のない記憶保持回路はＥＣＣ回路に接続せずにエラーチェック、訂正を行わないことでＥＣＣ回路の回路規模を小さくすることができる。
【実施例４】
【００６６】
上記実施例１〜３では、ソフトエラーが発生しても一部のビットのエラーならば、訂正が可能なＥＣＣ回路を設けている。しかし、ソフトエラーが発生する可能性が低いか、用途によってソフトエラーが発生してもエラー訂正までの必要はなく、ソフトエラーが発生したことがわかればよい場合もある。そのような場合は、ＥＣＣ回路に代えて、エラー訂正機能を有しないエラーチェック回路を設けることにより、回路規模を小さくすることができる。最も単純には、複数ビットの記憶保持回路のデータについて偶数か奇数かのパリティを記憶する１ビットのパリティコード記憶回路を設け、スタンバイモードの間、パリティコード記憶回路を用いてパリティが一致しているか否かチェックすることができる。パリティエラーが検出された場合には、機能回路１１１又は制御回路１０１にパリティエラー信号を出力すればよい。
【実施例５】
【００６７】
また、複数の機能回路の内、スタンバイモード中に状態の保持が必要な記憶保持回路のビット数が少ない機能回路は、保持が必要な１ビットのデータに対して複数ビットの記憶保持回路を設け、これら複数ビットの記憶保持回路を多数決回路、又は、一致回路として用いることによりＥＣＣ回路、又は、エラーチェック回路として機能させることができる。たとえば、図４において、記憶保持回路ＲＧ１と回路構成や入力信号が同一である回路をダミーの記憶保持回路ＲＧ１Ｄとして設けることができる。スタンバイ期間中に記憶保持回路ＲＧ１とダミーの記憶保持回路ＲＧ１Ｄとの出力を比較し、両者が不一致となった場合は、ソフトエラーが発生したものとして機能回路１１１や制御回路１０１へエラー発生信号を出力することができる。この場合、ダミーの記憶保持回路ＲＧ１Ｄと、出力を比較する回路がエラーチェック回路となる。
【００６８】
ダミーの記憶保持回路を複数設け、これら複数のダミーの記憶保持回路と記憶保持回路ＲＧ１の出力がすべて一致しているか否かチェックし、一致していなかった場合には、多数決を取って、多数決の結果に基づいて、記憶保持回路と複数のダミーの記憶保持回路のデータを更新すれば、ダミーの記憶保持回路と多数決回路、多数決によって更新する回路をＥＣＣ回路（エラーをチェックして訂正する回路）として機能させることができる。また、高速動作モードでは、上記エラーチェック回路、ＥＣＣ回路を記憶保持回路ＲＧ１から切り離し、記憶保持回路に高速にアクセスすることができるようにすることができる。
【００６９】
以上、実施例について説明したが、本発明は上記実施例の構成にのみ制限されるものでなく、本発明の範囲内で当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００７０】
１００：半導体集積回路
１０１：制御回路
１１１、１１２、１１３、１１１Ａ、１１１Ｂ：機能回路
１２１、１２２、１２３：ＥＣＣ回路
２１１：スイッチ回路
２２１：ＥＣＣ演算回路
２３１：ＥＣＣコード記憶回路
２４１：ＥＣＣ制御回路
ＡＮ１〜ＡＮ３：アンド回路
ＣＩ１：クロックインバータ回路
Ｉ１、Ｉ２：インバータ回路
ＲＧ、ＲＧ１〜ＲＧｍ：記憶保持回路部（レジスタ）
Ｔ１：トランスミッションゲート
ＣＬＫ１〜ＣＬＫ３、ＣＫ、ＣＫＢ：クロック信号
ＥＣＣＤＥＣ１：ＥＣＣ復号化制御信号
ＥＣＣＥＮＣ１：ＥＣＣ符号化制御信号
ＩＮ１〜ＩＮ３：入力信号
ＯＵＴ１〜ＯＵＴ２：出力信号
ＭＯＤＥ１〜ＭＯＤＥ３、ＭＯＤＥ１Ａ、ＭＯＤＥ２Ａ：モード制御信号
ＭＳ１：スイッチ回路を制御する信号
ＲＮ：記憶保持ノード
Ｓ１〜ＳＸ：記憶保持回路入力データ信号
Ｓ１１〜Ｓｘｘ：記憶保持回路出力データ信号
【図１】
2011090448.tif 000003
【図２】
2011090448.tif 000004
【図３】
2011090448.tif 000005
【図４】
2011090448.tif 000006
【図５】
2011090448.tif 000007
【図６】
2011090448.tif 000008
【図７】
2011090448.tif 000009