(57)【要約】【課題】消費電力削減のために機能モジュール単位で柔軟に電源供給を制御でき、及びこれに伴い必要なデータの退避及び復帰を制御できる集積回路装置であって、しかも退避したデータの信頼性を低下させることがなく低コストで実現可能な集積回路装置を提供すること【解決手段】退避クロック信号に同期して退避データを出力する少なくとも一つの機能モジュールと、該機能モジュールからいずれかの機能モジュールを選択し、選択された該機能モジュールへの電源供給の停止及び再開を制御する電源制御ユニットと、この電源制御ユニットにより選択された機能モジュールから出力された退避データを格納する退避データ格納部と、この退避データ格納部に格納された退避データが復帰クロック信号に同期して機能モジュールに復帰される際に、該退避データをエラー検出訂正するエラー検出訂正部とを具備する。【選択図】　　図１
2004126932.tif 000002
【特許請求の範囲】
【請求項１】
退避クロック信号に同期して退避データを出力する少なくとも一つの機能モジュールと、
前記機能モジュールからいずれかの機能モジュールを選択し、選択された該機能モジュールへの電源供給の停止及び再開を制御する電源制御ユニットと、
前記電源制御ユニットにより選択された機能モジュールから出力された退避データを格納する退避データ格納部と、
前記退避データ格納部に格納された退避データが復帰クロック信号に同期して前記機能モジュールに復帰される際に、該退避データをエラー検出訂正するエラー検出訂正部と
を具備することを特徴とする集積回路装置。
【請求項２】
複数のフリップフロップを有し、該複数のフリップフロップがスキャンチェーンを構成しており、退避動作時には該フリップフロップのデータを退避クロック信号に同期した該スキャンチェーンのシフト動作により出力する一方、復帰動作時には退避したデータを復帰クロック信号に同期した該スキャンチェーンのシフト動作により前記フリップフロップに復帰させる少なくとも一つの機能モジュールと、
前記機能モジュールからいずれかの機能モジュールを選択し、選択された該機能モジュールへの電源供給の停止及び再開を制御する電源制御ユニットと、
前記電源制御ユニットにより選択された機能モジュールについて、退避クロック信号及び復帰クロック信号を生成するクロック信号生成部と、
退避動作時又は復帰動作時において、前記電源制御ユニットにより選択された機能モジュールをスキャンテストモードに移行させると共に、前記スキャンチェーンのシフト動作のために供給するクロック信号として、前記クロック信号生成部により生成された退避クロック信号又は復帰クロック信号を選択するスキャンコントローラと、
前記電源制御ユニットにより選択された機能モジュールから前記退避クロック信号に同期した前記スキャンチェーンのシフト動作により出力された退避データを格納する退避データ格納部と、
前記退避データ格納部に格納された退避データが前記復帰クロック信号に同期した前記スキャンチェーンのシフト動作により前記機能モジュールのフリップフロップに復帰される際に、該退避データをエラー検出訂正するエラー検出訂正部と
を具備することを特徴とする集積回路装置。
【請求項３】
前記エラー検出訂正部は、
前記退避データからエラー訂正符号を生成し、前記退避データ格納部に書き込む符号化器と、
前記退避データ格納部から、格納されていた退避データとそれに対応する前記エラー訂正符号を読み出して該退避データを復号化する復号化器と
を具備することを特徴とする請求項１又は２に記載の集積回路装置。
【請求項４】
前記エラー検出訂正部は、前記退避データ格納部に格納された退避データを定期的にエラー検出訂正することを特徴とする請求項１乃至３のいずれかに記載の集積回路装置。
【請求項５】
前記退避データ格納部は前記退避データの複製を複数格納し、
前記エラー検出訂正部は前記退避データ格納部に格納された複数の複製データを用いる多数決演算によりエラー検出訂正することを特徴とする請求項１又は２に記載の集積回路装置。
【請求項６】
前記クロック信号生成部は、前記退避データ格納部における定期的なエラー検出訂正に用いられるクロック信号を生成することを特徴とする請求項１乃至５のいずれかに記載の集積回路装置。
【請求項７】
前記退避データ格納部が、自己テスト回路用の記憶手段から構成されることを特徴とする請求項１乃至６のいずれかに記載の集積回路装置。
【請求項８】
前記退避データ格納部に格納された退避データを圧縮する圧縮器と、
前記圧縮器により圧縮された退避データを前記機能モジュールへの復帰の際に復元する復元器と
をさらに具備することを特徴とする請求項１乃至７のいずれかに記載の集積回路装置。
【請求項９】
前記退避データ格納部を揮発性メモリにより構成したことを特徴とする請求項１乃至８のいずれかに記載の集積回路装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は消費電力削減のために機能モジュール単位で電源供給を制御し、内部レジスタ等のデータの退避及び復帰制御を行う集積回路装置に関する。
【０００２】
【従来の技術】
低電力ＳｏＣ（システム・オン・チップ）の実現においては、消費電力削減のために遊休（アイドル）状態の機能モジュールの動作を停止させるのが常套手段である。機能モジュールの動作を止めるにはクロックの供給を停止するという手法が知られている。しかし、クロック供給を停止し機能モジュールの動作を止めたとしても、機能モジュール自体には電源が供給されつづけているのでリーク電流によって生じる電力の損失を止めることはできない。このため、リークによる電力損失をも削減するためにアイドル状態の機能モジュールへの電源供給を停止する手法が考案されている。このような電源供給を停止され動作停止している機能モジュールの状態をスリープ（ＳＬＥＥＰ）状態という。
【０００３】
電源が遮断されると回路が保持していた情報がすべて失われてしまう。このため、機能モジュールがスリープ状態から復帰し、スリープに入る直前の状態から動作を再開するには、機能モジュールがスリープ状態になり電源供給が停止したとしても、復帰後に必要となるデータを保持していられる回路構成が必須である。このような回路構成としては、機能モジュールを構成する回路素子のうち必要なデータを保持する回路素子の電源は常に供給し、その他の回路素子の電源供給のみ停止する手法や、必要なデータを別のメモリブロックなどに退避・保存しておく手法が提案されている。
【０００４】
図１３はかかる従来例を示す図である。同図に示すＶＤＤは電源であり、この電源ＶＤＤに対しそれぞれスイッチＳＷＡ，ＳＷＢ，ＳＷＣを介してロジックＬＡ，ＬＢ，ＬＣが接続されている。ロジックＬＡとＬＢの間およびロジックＬＢとＬＣの間にはそれぞれフリップフロップＦＦ１，ＦＦ２が接続されている。これらフリップフロップＦＦ１，ＦＦ２は電源ＶＤＤにも接続されている。ロジックＬＡ，ＬＢ，ＬＣは組合せ回路に相当し、フリップフロップＦＦ１，ＦＦ２は順序回路に相当する。フリップフロップＦＦ１，ＦＦ２には、スリープ後にその直前の状態から動作を再開できるようデータを保持するために常に電源が供給されるようにする一方、ロジックＬＡ，ＬＢ，ＬＣについては消費電力削減のために必要に応じてスイッチＳＷＡ，ＳＷＢ，ＳＷＣをＯＦＦにすることで電源ＶＤＤからの給電を遮断する。このように給電方法を制御する従来例によれば、フリップフロップＦＦ１，ＦＦ２には常に電源が供給されるのでデータの退避動作が不要であるという利点がある。当然ながらデータ退避先の記憶領域を確保する必要もない。しかしながら、図１３から分かるように電源ＶＤＤからの配線をスイッチＳＷＡ，ＳＷＢ，ＳＷＣ（ロジックＬＡ，ＬＢ，ＬＣ）へのものと、フリップフロップＦＦ１，ＦＦ２へのものとに分ける必要があり、これにより回路のレイアウトが非常に困難となる。また、貫通電流を防止する目的からフリップフロップＦＦ１，ＦＦ２の前段にＮＡＮＤゲート等を設ける必要があり、これによりゲート段数が増加するというデメリットもある。
【０００５】
なお、この図１３の従来例と同様の先行技術が非特許文献１にも記載されている。
【０００６】
また、消費電力削減を目的として機能モジュールへの電源供給を適宜遮断する際に、データ退避を行う技術が幾つか提案されている。かかる従来例は、ロジックのみ電源供給を遮断しフリップフロップについては常に電源供給する上述の従来例とは異なり、機能モジュール内の必要なデータを退避した後に、該機能モジュール内への全ての電源供給を遮断するというものである。このようなデータ退避を行う従来例の一つに、メモリの内容を外部記憶装置（ハードディスク装置等）に退避するものがある（特許文献１参照）。この従来例では、ハードディスク装置等を用いていることから、データ退避先でのエラー発生を抑えることができ信頼性が高いものの、データ退避及びその復帰動作の際の遅延時間の問題がある。
【０００７】
また、データ退避を行う他の従来例として、フリップフロップのデータをスキャンチェーン用いて強誘電体メモリ（ＦＲＡＭ：　Ｆｅｒｒｏｅｌｅｃｔｒｉｃ　Ｒａｎｄｏｍ　ＡｃｃｅｓｓＭｅｍｏｒｙ）に退避するもの（特許文献２参照）がある。この従来例は、待機動作時のリーク電流を削減可能であり、消費電力削減の目的に適うものではあるが、製造時において通常ロジックとＦＲＡＭとの混載プロセスが必要であることから、コスト面において不利である。
【０００８】
ＦＲＡＭのような不揮発性メモリに代えてＤＲＡＭのような揮発性メモリをデータの退避先とする場合、消費電力削減のためにデータ退避先への供給電圧をデータ保持に必要な最低電圧としても、いわゆるソフトエラー等の発生による退避したデータの信頼性低下を抑えられることが好ましい。ソフトエラーは、トランジスタが保持したデータが外部から入射したα線や中性子の影響で発生した電荷によって変化させられる現象である。α線や中性子が生成する最大電荷量は１５〜１５０ｆＣ程度であり、トランジスタの保持している電荷が、該１５〜１５０ｆＣ程度の電荷発生では影響を受けないほど多ければ、ソフトエラーは発生しない。しかし、そのためには回路への印加電圧を高くしなければならず、低消費電力化の妨げとなってしまう。
【０００９】
また、低消費電力化という点からだけでなく、近年のプロセス微細化によってトランジスタの印加可能電圧が低下しているという問題もある。例えば、１００ｎｍプロセスで１．０Ｖ動作の場合の論理セルの臨界電荷量はおよそ１０ｆＣという報告がある（非特許文献２参照）。臨界電荷量とは、これ以上の電荷が加わったときにトランジスタが保持したデータが失われる電荷量である。このことにより中性子が生成する電荷量よりも臨界電荷量を大きくするには通常の１５倍の電圧をかける必要が生じることになる。これは、プロセスの微細化が進んでいる現状では、印加電圧を高くすることでソフトエラーを回避することは事実上、不可能となってきていることを示している。
【００１０】
【特許文献１】
特開２０００−８２０１４公報
【００１１】
【特許文献２】
特開平１０−７８８３６号公報
【００１２】
【非特許文献１】
Ｓｔｅｐｈｅｎ　Ｖ．　Ｋｏｓｏｎｏｃｋｙ，　Ｍｉｋｅ　Ｉｍｍｅｄｉａｔｏ，　Ｐｅｔｅｒ　Ｃｏｔｔｒｅｌｌ，　ｅｔ　ａｌ．　：　”Ｅｎｈａｎｃｅｄ　Ｍｕｌｔｉ−Ｔｈｒｅｓｈｏｌｄ　（ＭＴＣＭＯＳ）　Ｃｉｒｃｕｉｔｓ　Ｕｓｉｎｇ　Ｖａｒｉａｂｌｅ　Ｗｅｌｌ　Ｂｉａｓ”，　Ｐｒｏｃｅｅｄｉｎｇｓ　ｏｆ　ｔｈｅ　２００１　Ｉｎｔｅｒｎａｔｉｏｎａｌ　Ｓｙｍｐｏｓｉｕｍ　ｏｎ　Ｌｏｗ　Ｐｏｗｅｒ　Ｅｌｅｃｔｒｏｎｉｃｓ　ａｎｄ　Ｄｅｓｉｇｎ　ｐｐ．１６５−１６９，　２００１
【００１３】
【非特許文献２】
Ｐ．　Ｓｈｉｖａｋｕｍａｒ，　Ｄ．　Ｂｕｒｇｅｒ，　ｅｔ　ａｌ．：　”Ｍｏｄｅｌｉｎｇ　ｔｈｅ　Ｅｆｆｅｃｔ　ｏｆ　Ｔｅｃｈｎｏｌｏｇｙ　Ｔｒｅｎｄｓ　ｏｎ　ｔｈｅ　Ｓｏｆｔ　Ｅｒｒｏｒ　Ｒａｔｅ　ｏｆ　Ｃｏｍｂｉｎａｔｉｏｎａｌ　Ｌｏｇｉｃ”，　Ｉｎｔｌ．　Ｃｏｎｆ．　Ｏｎ　Ｄｅｐｅｎｄａｂｌｅ　Ｓｙｓｔｅｍ　ａｎｄ　Ｎｅｔｗｏｒｋ，　２００２
【００１４】
【発明が解決しようとする課題】
本発明はかかる事情に鑑みてなされたものであり、消費電力削減のために機能モジュール単位で柔軟に電源供給を制御でき、及びこれに伴い必要なデータの退避及び復帰を制御できる集積回路装置であって、しかもデータ退避の信頼性を低下させることがなく低コストで実現可能な集積回路装置を提供することを目的とする。
【００１５】
【課題を解決するための手段】
本発明に係る集積回路装置は、退避クロック信号に同期して退避データを出力する少なくとも一つの機能モジュールと、前記機能モジュールからいずれかの機能モジュールを選択し、選択された該機能モジュールへの電源供給の停止及び再開を制御する電源制御ユニットと、前記電源制御ユニットにより選択された機能モジュールから出力された退避データを格納する退避データ格納部と、前記退避データ格納部に格納された退避データが復帰クロック信号に同期して前記機能モジュールに復帰される際に、該退避データをエラー検出訂正するエラー検出訂正部とを具備することを特徴とする集積回路装置である。
【００１６】
また、本発明に係るより具体的な構成の集積回路装置は、複数のフリップフロップを有し、該複数のフリップフロップがスキャンチェーンを構成しており、退避動作時には該フリップフロップのデータを退避クロック信号に同期した該スキャンチェーンのシフト動作により出力する一方、復帰動作時には退避したデータを復帰クロック信号に同期した該スキャンチェーンのシフト動作により前記フリップフロップに復帰させる少なくとも一つの機能モジュールと、前記機能モジュールからいずれかの機能モジュールを選択し、選択された該機能モジュールへの電源供給の停止及び再開を制御する電源制御ユニットと、前記電源制御ユニットにより選択された機能モジュールについて、退避クロック信号及び復帰クロック信号を生成するクロック信号生成部と、退避動作時又は復帰動作時において、前記電源制御ユニットにより選択された機能モジュールをスキャンテストモードに移行させると共に、前記スキャンチェーンのシフト動作のために供給するクロック信号として、前記クロック信号生成部により生成された退避クロック信号又は復帰クロック信号を選択するスキャンコントローラと、前記電源制御ユニットにより選択された機能モジュールから前記退避クロック信号に同期した前記スキャンチェーンのシフト動作により出力された退避データを格納する退避データ格納部と、前記退避データ格納部に格納された退避データが前記復帰クロック信号に同期した前記スキャンチェーンのシフト動作により前記機能モジュールのフリップフロップに復帰される際に、該退避データをエラー検出訂正するエラー検出訂正部とを具備することを特徴とする集積回路装置である。
【００１７】
なお、上記構成について、さらに、前記エラー検出訂正部を、前記退避データからエラー訂正符号を生成し、前記退避データ格納部に書き込む符号化器と、前記退避データ格納部から、格納されていた退避データとそれに対応する前記エラー訂正符号を読み出して該退避データを復号化する復号化器とを具備する具体的な構成としてもよい。
【００１８】
また、前記エラー検出訂正部が、前記退避データ格納部に格納された退避データを定期的にエラー検出訂正する構成としてもよい。
【００１９】
また、前記退避データ格納部が前記退避データの複製を複数格納し、前記エラー検出訂正部が前記退避データ格納部に格納された複数の複製データを用いる多数決演算によりエラー検出訂正する構成としてもよい。
【００２０】
また、前記クロック信号生成部が、前記退避データ格納部における定期的なエラー検出訂正に用いられるクロック信号を生成する構成としてもよい。
【００２１】
また、前記退避データ格納部を、自己テスト回路用の記憶手段により構成してもよい。
【００２２】
また、前記退避データ格納部に格納された退避データを圧縮する圧縮器と、前記圧縮器により圧縮された退避データを前記機能モジュールへの復帰の際に復元する復元器とをさらに具備する構成としてもよい。
【００２３】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態を説明する。本実施形態は低電力ＳｏＣ（システム・オン・チップ）の実現に好適であり、消費電力削減のために遊休（アイドル）状態の機能モジュールに対する給電を遮断してスリープ（ＳＬＥＥＰ）状態に遷移させる集積回路装置に関する。本実施形態の集積回路装置では、機能モジュールへの電源供給を遮断する際にデータ退避を行い、所定のイベントに応じて、退避したデータを該機能モジュールに復帰させ、スリープ状態から通常動作状態に復帰させる。
【００２４】
図１は本発明に係る集積回路装置の基本構成図である。図１に示す１はＰＭＵ（Ｐｏｗｅｒ　Ｍａｎａｇｅｍｅｎｔ　Ｕｎｉｔ：電源管理ユニット）、２は機能モジュール、３は退避部である。機能モジュール２に設けられたスイッチＳＷ１の制御端子には、ＰＭＵ１からの電源制御信号線が接続されている。このスイッチＳＷ１はＰＭＵ１からの電源制御信号に応じてＯＮ又はＯＦＦとなり、これにより機能モジュール２に対する電源の供給又は遮断が制御される。
【００２５】
図１に示すように、退避部３は、符号化器５、退避データ格納領域６、および復号化器７を有する。符号化器４は、データ退避時において、退避クロック信号に同期して機能モジュール２から出力された退避データをエラー検出訂正のために符号化する。これにより得られた符号化データを退避データと共に退避データ格納領域６に出力する。退避データ格納領域６には、例えば揮発性メモリが用いられる。後述するが、退避データ格納領域６は専用領域として新規に設けられたり、既存のメモリ領域が利用される。既存のメモリ領域としては、ＤＲＡＭや、キャッシュ（ＣＡＣＨＥ）メモリを構成するＳＲＡＭ等である。
【００２６】
復号化器７は、退避データ格納領域６に格納されている退避データと、対応する符号化データとを読み出して復号化を行い、エラー訂正がなされた退避データを出力する。復号化器７によりエラー訂正がなされた退避データは復帰クロック信号に同期して機能モジュール２に復帰される。なお、このようなエラー訂正動作は、少なくとも、退避データ格納領域６から機能モジュール２に退避データが復帰される前に行うこととするが、データ退避期間中において定期的に行うことが好ましい。図１の構成では退避部３には常時電源が供給される。しかし、電力効率を考慮すると退避部３には使用されるときのみに電源が供給されることが好ましいことから、同退避部３への電源供給を制御するためのスイッチ（ＳＷ２）を備えていても良い。この場合、退避部３に設けられたスイッチの制御端子には、機能モジュール２に設けられたスイッチＳＷ１と同様にＰＭＵ１からの退避制御信号線が接続され、その退避制御信号に応じてＯＮ状態又はＯＦＦ状態となることで、退避部３の使用状態（イネーブル状態）又は未使用状態が機能モジュール２の電源供給状態に応じて制御されることになる。
【００２７】
図２はスキャンチェーンを用いたデータのシフト動作を説明するための図、図３はデータの退避及び復帰に係る処理の流れを示すフローチャートである。図２に示すように、機能モジュール２は複数のフリップフロップ（Ｓｃａｎ−ＦＦ）２１を有し、該複数のフリップフロップ２１がスキャンチェーン１１を構成している。一方、退避部３の退避データ格納領域６はシフトレジスタ２２を構成しており、データの退避時においてスキャンチェーン１１の出力端に接続される。なお、退避データ格納領域６にシフトレジスタ２２を用いる構成は、説明の簡単化のため想定したものであり、本発明はかかる構成に限定されないことは言うまでもない。
【００２８】
先ず、スリープモードへの遷移判定を行う（ステップＳ１）。機能モジュール２がスリープモードに遷移すると、退避部３は退避動作を開始する（ステップＳ２）。機能モジュール２は退避クロック信号に同期してスキャンチェーン１１のシフト動作を行い、フリップフロップ２１が保持している値を順番に出力する。この出力されたフリップフロップ２１の値は、退避クロック信号に同期して退避部３のシフトレジスタ２２に退避されていく（ステップＳ３）。退避クロック信号の周波数は、可能な限り低速でよい。
【００２９】
なお、退避すべき値を保持しているフリップフロップ（例えば機能モジュール２の内部レジスタを構成するようなもの）を、一つのスキャンチェーン１１に纏める構成にしておけば、データ退避領域側すなわち退避部３において必要なフリップフロップの数、および、退避に要するクロックサイクル数を必要最低限に抑えることができ好ましい。
【００３０】
また、退避部３のフリップフロップは、図２のようなシフトレジスタ２２のような直列接続としても構わないが、図４に示すように、数ビットからなるグループ１７の分割単位としてもよい。この図４の構成によれば、符号化器５によりチェックビット１６を生成する符号化処理が簡単に行える。また、この図４の構成は一種のパラレル−シリアル変換であり、退避部３内の殆どのフリップフロップのクロックをより低速にすることが可能になることから、電力消費量削減の面で有利である。
【００３１】
機能モジュール２は、必要な全てのフリップフロップ２１の値を退避部３側に退避し終えた時点（ステップＳ４＝ＹＥＳ）でスリープモードに遷移する。一方、退避部３はシフトレジスタ２２のシフト動作を停止し、機能モジュール２から退避された値を保持し続ける。このとき、データ退避領域の電圧すなわちシフトレジスタ２２の動作電圧を、同シフトレジスタ２２が値を保持できる最低限の電圧まで下げる構成とすれば、電力消費量削減の面で有利である。
【００３２】
定期的なエラー検出訂正以外の退避部３の動作状態は、言うまでもなく退避データを記憶するという動作状態である。この状態では回路内のトランジスタのスイッチングが発生しないので、スイッチングによる電力消費は発生しない。しかしながら、今日の半導体プロセスでは微細化が進み、サブスレッショルドリークによる電力消費が無視できなくなっている。このサブスレッショルドリークは印加電圧に比例して増加することから、低消費電力化のためには退避部３の印加電圧を極力低くすることが望ましい。例えば、１００ｎｍプロセスでは電圧１．０Ｖ程度が通常動作時に用いられるが、データを記憶しておくだけならばトランジスタのスレッショルド電圧近辺（例えば０．３〜０．５Ｖ周辺）まで下げることができる。
【００３３】
退避部３において、符号化器５はシフトレジスタ２２に退避されたデータに対してエラー訂正のための符号化を行う（ステップＳ５）。これにより、エラー訂正符号すなわちチェックビット１６が生成される。生成されたチェックビット１６は、退避部３内の図示しないフリップフロップに保存される。尚、チェックビット１６の保存先としては、フリップフロップのみに限定されない。
【００３４】
ここでは、ＥＣＣ（Ｅｒｒｏｒ　Ｃｈｅｃｋｉｎｇ　ａｎｄ　Ｃｏｒｒｅｃｔｉｏｎ）の手法を用いることとするが、ソフトエラー発生確率に応じて他の適切な手法を採ってもよい。例えば、ＳＥＣ−ＤＥＤの手法を用いてもよい。ＳＥＣ−ＤＥＤは１ビット誤り訂正・２ビット誤り検出（Ｓｉｎｇｌｅ　Ｅｒｒｏｒ　Ｃｏｒｒｅｃｔｉｏｎ　ａｎｄ　Ｄｏｕｂｌｅ　Ｅｒｒｏｒ　Ｄｅｔｅｃｔｉｏｎ）の略称であり、データビット列と符号ビット列に対して特定の演算を行うコーディング方法である。ＳＥＣ−ＤＥＤでは、１ビット分のエラーが生じた場合はこれを訂正可能である。また、２ビット分のエラーが生じた場合、その訂正はできないがエラーが発生したこと自体は検知できる。
【００３５】
ステップＳ５においてエラー訂正符号（チェックビット１６）を生成したのち、機能モジュール２はスリープモードに従い動作停止する。すなわち、ＰＭＵ１からの制御による電源供給が一時的に遮断される（ステップＳ６）。
【００３６】
ここで、退避部３において、シフトレジスタ２２の保持値に対して定期的にエラー検出を行うようにし（ステップＳ７）、ステップＳ８においてエラーを検出した際は復号化器７によって該エラーを訂正する構成としてもよい（ステップＳ９）。このような定期的なエラー検出訂正によれば、退避データの信頼性を向上できる。
【００３７】
そしてステップＳ１０において機能モジュール２のスリープモードが解除されると、先ず機能モジュール２が動作を再開する（ステップＳ１１）。続いて、退避部３のシフトレジスタ２２から退避データが読み出されるとともに、フリップフロップに保持されているチェックビット１６も読み出され、これらのデータを用いて復号化器７により復号化が行われる。復号化されたデータは、エラー訂正がなされたものとなる。
【００３８】
エラー訂正が行われた退避データは、退避時とは逆に、スキャンチェーン１１を用いたシフト動作により機能モジュール２側に転送され、フリップフロップ２１に戻される（ステップＳ１２）。シフトレジスタ２２から全ての退避データが機能モジュール２のフリップフロップ２１に復帰されると、該機能モジュール２はスリープモードに遷移する直前の状態（通常動作モード）に復帰する一方、退避部３は動作停止しオフ状態となる（ステップＳ１３）。
【００３９】
以下、このような本発明に係る集積回路装置の基本構成が適用された種々の実施形態を説明する。
【００４０】
（第１実施形態）
図５は、本発明に係る集積回路装置の第１実施形態を示す構成図である。この第１実施形態は、図１に示した構成をより具体化したものである。図１に示した構成と同様、ＰＭＵ１が電源制御及び退避処理自体の制御を管理する主体である。ＰＭＵ１は、低電力指向の集積回路装置（ＬＳＩ）に通常設けられるものであって、各機能モジュール２へのクロック供給や電源供給の制御を行い、アイドル状態の機能モジュール２における電力消費を極力抑える働きを持つ。このようなＰＭＵ１はＯＳ（オペレーティングシステム）のようなソフトウェアで実現されても良いし、ハードウェアで実現されても良い。いずれの場合においても、ＰＭＵ１は特定の機能モジュール２ヘのクロック供給や電源供給の制御を、集積回路装置における処理のヒストリや待機時間をもとに行う。
【００４１】
ＰＭＵ１により管理される機能モジュール２は複数あり、同ＰＭＵ１がいずれかの機能モジュール２を選択して電源制御及び退避制御を行うことができるが、本実施形態では説明の便宜上、機能モジュールＡのみがスリープ時に退避しておくべきデータを持っており、その他のメモリ等の他の機能モジュール（不図示）はそのようなデータを持っていないものと仮定する。
【００４２】
また、図５の構成においては、退避部３には、その電源供給を制御するためのスイッチＳＷ２が設けられている。このスイッチＳＷ２の制御端子には、機能モジュール２に設けられたスイッチＳＷ１と同様にＰＭＵ１からの退避制御信号線が接続されており、その退避制御信号に応じてＯＮ状態又はＯＦＦ状態となる。これにより退避部３の使用状態（イネーブル状態）又は未使用状態が機能モジュール２の電源供給状態に応じて制御される。
【００４３】
図６はデータの退避及び復帰のタイミングを示すシーケンス図である。図６において、ＣＬＫ＿ＥＮはクロック供給のイネーブル信号、ＰＷ＿ＥＮは電源供給のイネーブル信号、ＳＨ＿ＥＮは退避部３のイネーブル信号である。ＰＭＵ１がある機能モジュール２（ここでは図５に示されるモジュールＡ）の電源をＯＮ／ＯＦＦする場合、これに先立ちＰＭＵ１は退避部３のイネーブル信号（ＳＨ＿ＥＮ）を出力する。またＰＭＵ１は、退避部３から、データ退避処理又はデータ復帰処理の動作が完了した旨の返答を受けてから、電源供給のイネーブル信号（ＰＷ＿ＥＮ）により電源のＯＮ／ＯＦＦを制御する。
【００４４】
図５に示すスキャンコントローラ１０は、通常では集積回路装置全体をスキャンテストモードに切り替える制御を行うが、スキャンチェーン１１を用いたシフト動作によるデータの退避又は復帰を行う際には、ＰＭＵ１からその旨の指示を受け、該ＰＭＵ１から指定された機能モジュール（ここではモジュールＡ）をテストモードイネーブル信号（ＮＴ）によりスキャンテストモードに切り替える。
【００４５】
退避部３に設けられたパルスジェネレータ１３は、コントローラ１２からの制御により、データ退避処理において必要なデータをスキャンインするため、もしくはデータ復帰処理において必要なデータをスキャンアウトするために必要な数のクロックパルス（ｐｕｌｓｅ）を発生し、スキャンコントローラ１０に対して出力する。これらは上述した退避クロック信号又は復帰クロック信号に相当する。コントローラ１２は、ＰＭＵ１からの指示により、パルスジェネレータ１３による発生パルスの制御および定期的なエラー検出訂正動作を制御するコントローラであり、退避部３に設けられている。
【００４６】
以下、このように構成された本実施形態の動作を説明する。
【００４７】
モジュールＡが当分使用されないことがＰＭＵ１により判断された場合、ＰＭＵ１はまずクロック制御ユニット（ＣｌｋＭｇｒ）にモジュールＡへのクロック供給を停止するよう指示する。これを受けてクロック制御ユニットはモジュールＡへのクロック供給のイネーブル信号（ＣＬＫ＿ＥＮ）を“Ｌ”にしてクロック供給を停止する。
【００４８】
この状態からさらにモジュールＡが当分使用されないことが判断されると、ＰＭＵ１は退避部３のイネーブル信号（ＳＨ＿ＥＮ）を出力して退避部３を動作可能状態にする。
【００４９】
一方、スキャンコントローラ１０は、テストモードイネーブル信号（ＮＴ）を出力し、モジュールＡをスキャンテストモードにする。また、このときモジュールＡへ供給されるクロックのパスを、通常のスキャンテストモード動作時のクロックパルス信号（ｎｏｒｍａｌ＿ｃｌｋ）のパスに代えて、退避部３のパルスジェネレータ１３から供給されるクロックパルス信号（ｐｕｌｓｅ）のパスに切り替える。
【００５０】
イネーブル信号（ＳＨ＿ＥＮ）により退避部３が動作可能状態になると、パルスジェネレータ１３はクロックパルス信号（ｐｕｌｓｅ）の生成を開始する。このクロックパルス信号は上記のようにパスが切り替えられたスキャンコントローラ１０を通じてモジュールＡのスキャンチェーン１１に供給される。このクロックパルス信号に同期して、スキャンチェーン１１のフリップフロップが保持していたデータが順次シフトアウトされる。モジュールＡからシフトアウトされたデータは退避部３のシリアルパラレル変換器及び符号化器１４によりシリアルパラレル変換がなされる。また、該データに対する訂正符号化処理によりチェックビットが生成され、退避データとともに退避データ格納領域６に格納されていく。
【００５１】
なお、退避データを圧縮することで退避データ格納領域６へ格納する際のデータサイズを小さくすることも可能である。この場合、退避データ格納領域６に格納された退避データを圧縮する圧縮器と、この圧縮器により圧縮された退避データを機能モジュールへの復帰の際に復元する復元器とを設ける。
【００５２】
また、退避データ格納領域６が十分大きい場合は多数決法などを使うことで、訂正符号化処理が不要となる可能性もある。多数決法を用いる実施形態については後述する（第６実施形態）。また、上記シリアルパラレル変換処理は、退避部３における動作周波数を下げて電力効率を上げるために行うのであり、必須の処理ではない。
【００５３】
スキャンチェーン１１の全てのフリップフロップのデータの退避処理が完了すると、パルスジェネレータ１３はクロックパルス信号の生成を停止する。その後、ＰＭＵ１はモジュールＡの電源供給イネーブル信号（ＰＷ＿ＥＮ）を“Ｌ”にしてモジュールＡの電源をＯＦＦにする。ここまでで、データの退避処理は完了である。
【００５４】
次に、退避データの定期的な検証について説明する。既存のエラー訂正処理にはエラーを訂正できるビット数に上限があることが知られている。データを退避している時間が長くなるにつれて退避データ中のエラーが増加していくので、可能なうちにエラーを訂正しておく必要がある。このため、退避データを保持している間、つまりＳＨ＿ＥＮが“Ｈ”の間、退避部３において次のような定期的なエラー検出・訂正処理を行うことが望ましい。
【００５５】
すなわち、退避データを保持している間、退避部３のコントローラ１２が時間を測定する。一定時間が経過すると、コントローラ１２はパルスジェネレータ１３にクロックパルス信号を生成するよう指示を出す。この指示を受けると、パルスジェネレータ１３はクロックパルス信号を出力し始め、これに同期して復号化器及びパラレルシリアル変換器１５が、退避されているデータの復号化及びパラレルシリアル変換を行う。復号化が行われた時点でエラー訂正は実施されているので、ここで得られたデータはエラーのないデータといえる。ここでシリアルパラレル変換器及び符号化器１４が、訂正後のデータに対し再びシリアルパラレル変換及び符号化処理を施し、退避データ格納領域６に格納する。
【００５６】
次に、退避データの復帰について説明する。ＰＭＵ１はモジュールＡを動作させる必要が生じたことを判断すると、電源供給のイネーブル信号（ＰＷ＿ＥＮ）を“Ｈ”にしてモジュールＡに電源を供給し始める。モジュールＡの電源が完全に行き渡って安定すると、退避部３に対し退避データを復帰するよう指示を出す（ＳＨ＿Ｃｔｒｌ）。この指示を受けると退避部３のパルスジェネレータ１３はクロックパルス信号を生成してスキャンコントローラ１０に出力する。一方、復号化器及びパラレルシリアル変換器１５は復号化及ぴパラレルシリアル変換を行いながら、退避データ格納領域６に格納されていたデータを出力し始める。
【００５７】
このとき、モジュールＡはテストモードイネーブル信号（ＮＴ）によってスキャンテストモードに設定されているので、退避部３から出力されたデータはデータ退避時と同様、スキャンチェーン１１を通って元のフリップフロップに復帰される。パルスジェネレータ１３は何サイクル分のクロックパルス信号を出力すればよいかの情報をデータ退避時に得ている。退避部３から全てのデータが出力され、データの復帰が完了した時点でパルスジェネレータ１３はクロックパルス信号の生成を停止する。
【００５８】
その後、スキャンコントローラ１０はテストモードイネーブル信号（ＮＴ）の出力を停止し、モジュールＡを通常動作モードにする。さらに退避部３のイネーブル信号（ＳＨ＿ＥＮ）を“Ｌ”にするとともに、該退避部３の電源をＯＦＦにする。これらの処理の後で、ＰＭＵ１はクロック制御ユニットにモジュールＡのクロックを供給するように指示する。これを受けてクロック制御ユニットはクロック供給のイネーブル信号（ＣＬＫ＿ＥＮ）を“Ｈ”にする。これによってモジュールＡは通常の動作を再開する。
【００５９】
なお、上記の動作において、機能モジュールのクロック停止の後、更に暫くしてから電源を切るようにしているのは、いったん電源を切ってしまうと次に電源を入れるときに時間がかかるためである。頻繁に機能モジュールのＯＮ／ＯＦＦが行われる場合はクロックだけを制御して、電源は入れたままにしておくのが一般的である。
【００６０】
上述したパルスジェネレータ１３は、退避部３に設けられるものとして説明したが、次に説明する第２実施形態の図７の構成のようにスキャンコントローラ１０が同等のパルスジェネレータ３１を備える構成とし、退避部３にパルスジェネレータ１３を設けない構成としてもよい。あるいは、第２実施形態の図７のようにスキャンコントローラ１０がパルスジェネレータ３１を備えるとともに退避部３もパルスジェネレータ１３を備え、両者が協働して制御を行う構成としてもよい。この場合、例えば、データの退避又は復帰動作時には、専らスキャンコントローラ１０のパルスジェネレータ３１を用い、定期的なエラー検出訂正処理時には専ら退避部３のパルスジェネレータ１３を用いるようにする。なお、いずれの構成においても、若干制御方法が異なるものとなるに過ぎず、当業者であればこれらの変形を容易に行うことができる。
【００６１】
コントローラ１２についても、パルスジェネレータと同様に、スキャンコントローラ１０に含めたり、本実施形態のように退避部３の各々が備える構成としてもよい。要するに、ＰＭＵ１からの指示を認識し、データ退避及び復帰ならびに定期的なエラー検出訂正処理のシーケンスを実行できる構成であれば良い。
【００６２】
（第２実施形態）
図７は第２実施形態に係るスキャンコントローラの構成例を示す図である。本実施形態のスキャンコントローラ１０は、退避部３のイネーブル信号（ＳＨ＿ＥＮ＿Ａ、ＳＨ＿ＥＮ＿Ｂ）を出力する退避コントローラ３０を備えており、ＰＭＵ１ではなくこの退避コントローラ３０を退避又は復帰時の制御主体としている点で上述した第１実施形態のものとは構成が異なっている。
【００６３】
本実施形態のスキャンコントローラ１０についても、第１実施形態のものと同様に通常では集積回路装置全体をスキャンテストモードに切り替える制御を行う。スキャンチェーン１１を用いたシフト動作によるデータの退避又は復帰を行う際には、ＰＭＵ１からその旨の指示を受け、これに応じて退避コントローラ３０は該当する機能モジュールを選択してイネーブル信号（ＳＨ＿ＥＮ＿ＡまたはＳＨ＿ＥＮ＿Ｂ）を出力する。また、退避コントローラ３０は選択した機能モジュールに対してテストモードイネーブル信号ＮＴ１またはＮＴ２を出力する。これにより機能モジュールを選択的にスキャンテストモードに切り替えることができる。第２実施形態は、このような機能モジュール単位の退避及び復帰制御のためのモード切替の具体的構成に関する。
【００６４】
クロックパルス発生器３１は、必要なサイクル数のクロックパルス信号を生成する。このクロックパルス信号は、図７に示すｓｃａｎ＿ｃｌｋと同じパスを通じて機能モジュールのスキャンチェーンに与えられる。なお、ｓｃａｎ＿ｃｌｋは通常のスキャンテストモード時に用いられるクロックパルス信号である。また、ｎｏｒｍａｌ＿ｃｌｋ＿Ａおよびｎｏｒｍａｌ＿ｃｌｋ＿Ｂは、スキャンテストモードでも退避又は復帰動作モードでもない、通常の動作モード時に用いられるクロックパルス信号である。
【００６５】
図８は複数の機能モジュールの夫々に退避部を設ける構成例を示す図である。図８に示される複数の機能モジュールには、図７に示したスキャンコントローラ１０が接続される。
【００６６】
図８から分かるように、モジュールＡに対応して退避部Ａが設けられ、モジュールＢに対応して退避部Ｂが設けられている。モジュールＡではスキャンチェーン１１を構成する全てのフリップフロップのデータ（ｓｃａｎ＿ｏｕｔ１）が退避部Ａに退避されるのに対し、モジュールＢについては一部のフリップフロップのデータ（ｓｃａｎ＿ｏｕｔ２）は退避部Ｂには退避されず、他のフリップフロップのデータ（ｓｃａｎ＿ｏｕｔ３）のみが退避部Ｂに退避される構成である。
【００６７】
機能モジュール毎に退避部を設ける構成とした場合、このような詳細な退避制御を退避部Ａと退避部Ｂとを一つの退避部に纏める場合よりも容易に実現できる。
【００６８】
（第３実施形態）
図９は本発明に係る集積回路装置の第３実施形態（専用領域へ退避）を示す構成図である。
【００６９】
同図に示す２０は機能モジュールとしてのメモリである。このメモリ２０に対しデータの書き込み及び読み出しを行うモジュールＡは、該メモリ２０をアクセスする際のアドレスを生成するアドレス生成器２３を備えている。
【００７０】
退避部３は、このような機能モジュールとしてのメモリ２０とは別に、専用領域としての退避データ格納領域６を備える。このような退避部３は、機能モジュール毎に設けられていてもよいし、複数の機能モジュールに対して一つだけ設けられてもよい。退避データ格納領域６を大容量化できる場合、多数決法などを使うことで、訂正符号化処理が不要となる可能性がある。この場合、シリアルパラレル変換器および符号化器１４、および復号化器およびパラレルシリアル変換器１５を省略できる。多数決法を用いる実施形態については後述する（第６実施形態）。
【００７１】
また、退避データ格納領域６をソフトエラー対策ラッチで構成すれば、上述した定期的なエラー検出訂正を行わなくとも、所要のデータ信頼性を得ることができる。この場合、シリアルパラレル変換器および符号化器１４、および復号化器およびパラレルシリアル変換器１５を省略できる可能性もある。
【００７２】
また、退避データ格納領域６を後述するＢＩＳＴ（Ｂｕｉｌｔ　Ｉｎ　Ｓｅｌｆ　Ｔｅｓｔ；自己テスト）回路などによるテスト処理に使用することができる。また、退避データ格納領域６をセット／リセット付きフリップフロップによって構成する場合、退避領域にデータを退避していないときならば、該退避領域に初期化信号を与えることによってセット付きフリップフロップ、リセット付きフリップフロップの並び順に応じたデータを必ず読み出すことができる。これを利用して退避データ格納領域６をＲＯＭとして使用することも可能である。
【００７３】
（第４実施形態）
図１０は本発明に係る集積回路装置の第４実施形態（ＲＡＭやＣＡＣＨＥへ退避）を示す構成図である。
【００７４】
本実施形態の退避部５００は、第３実施形態のものとは異なりデータ退避先の専用領域を持たず、ＲＡＭやキャッシュメモリからなる他の機能モジュール（ここでは例えばメモリ７００）を退避先として利用する構成である。データを退避／復帰させる際のメモリ７００へのアクセスのために、退避部５００はアドレス生成器７０１を備える。また、本構成において、コントローラ１２は、メモリ７００に対する書き込みイネーブル信号線（ｗＥＮ）および読み出しイネーブル信号線（ｒＥＮ）に接続されている。
【００７５】
機能モジュール１２から退避されたデータはシリアルパラレル変換器及び符号化器１４を介して１ワードの中に退避データとそれに対応するチェックビットを含んだライトデータとして生成され、ａｄｄｒｅｓｓ　ｇｅｎ７０１で指定されたアドレスに書き込まれる。退避部５００はデータを復帰するのに備えて、退避したデータをメモリ上のどのアドレスに保存したかを記憶しておく必要がある。そのため書き込んだアドレスを記憶しておくメモリ領域を備えても良いし、メモリ上の各アドレスにそこに格納しているデータが退避データか通常データのどちらかであるかを示す情報（タグ）を備えても良い。
【００７６】
また、シリアルパラレル変換器および符号化器１４は、メモリ７００への書き込みデータ信号線（ｗｒｉｔｅ＿ｄａｔａ）に接続されており、復号化器およびパラレルシリアル変換器１５はメモリ７００からの読み出しデータ信号線（ｒｅａｄ＿ｄａｔａ）に接続されている。
【００７７】
なお、退避部５００は、機能モジュール毎にそれぞれ設けられてもよいし、複数の機能モジュールについて一つだけ設けられる構成としてもよい。また、退避部５００がアクセスする退避先としては、一つの退避先（ここではメモリ７００）のみならず複数の退避先を用いてもよい。また、退避部毎に異なる退避先を設けても良い。
【００７８】
ここで、データ退避先を専用領域とする上述の第３実施形態と当該第４実施形態との比較、すなわちデータ退避先の違いによる得失（メリット／デメリット）を説明する。
【００７９】
データ退避先を専用領域とする上述の第３実施形態の場合、退避データ及び訂正符号を格納する退避領域を新規に用意しなければならないため面積のオーバヘッドが大きい。なお、電力のオーバヘッドは機能モジュールが動作しているときには退避部の電源は遮断されているのでわずかである。一方、データ退避先としてＲＡＭやキャッシュを用いる第４実施形態の場合、既存のメモリに対して退避データを格納したアドレスを記憶する領域またはメモリの各アドレスが保持しているデータが退避されたデータであるか通常のデータであるかを判定するためのデータ判定用ＩＤの格納領域を追加するだけで済むので面積のオーバヘッドは小さい。電力のオーバヘッドについては、第３実施形態の場合と同様に小さい。なお、データ退避時にはメモリ上の必要な部分のみを動作させるようにして無駄な電力消費を抑えるべきである。
【００８０】
また、第３実施形態の場合、通常動作への影響がほとんどないが、第４実施形態の場合は若干ある。それは例えばノーマルパスの容量増加や退避データを識別する論理が増加（キャッシュのタグ）することである。
【００８１】
エラー検出訂正（ＥＣＣ）の実現容易性に関して、第３実施形態の場合は速度がそれほど重要とされないので、良く知られたＥＣＣを利用可能である点で好ましい。ただし、ソフトエラー対策のために、該ＥＣＣを定期的に行う必要がある。一方、第４実施形態の場合、退避データ量に対して退避データ格納領域の容量が十分大きい場合、データのコピー（複数）を用いた多数決演算によるエラー検出訂正により容易化が可能である。かかる構成については後の第６実施形態にて説明する。また、通常動作時にＥＣＣを兼用できる可能性がある。
【００８２】
制御容易性に関して、第３実施形態の場合は通常動作用モジュールから完全に独立した構成とすることができ、極めて容易である。一方、第４実施形態の場合、ＲＡＭやキャッシュを使用する他のモジュールが動作中である場合は制御がやや困難化する。
【００８３】
以上述べたことから、第４実施形態は、面積のオーバーヘッドのメリット、および容量の特性を生かしたＥＣＣの容易化、簡素化のメリットがある。それ以外については当該第４実施形態よりも専用領域への退避を行う第３実施形態の方が有利（特に通常動作への影響が小さいこと）である。
【００８４】
（第５実施形態）
図１１は本発明に係る集積回路装置の第５実施形態（ＢＩＳＴ用メモリへ退避）を示す構成図である。
【００８５】
本実施形態の退避部６００は、第４実施形態のものと同様にデータ退避先の専用領域を持たず、他の機能モジュールを退避先として利用する構成であるが、特に本実施形態ではデータ退避先としてＢＩＳＴ（Ｂｕｉｌｔ　Ｉｎ　Ｓｅｌｆ　Ｔｅｓｔ；自己テスト）回路を利用する。ＢＩＳＴ回路８００は、コントローラ８０１、パターン生成器８０２、ＢＩＳＴメモリ８０３、およびコンパレータ（比較器）８０４から構成されており、具体的にはＢＩＳＴ用メモリ８０３をデータ退避先とするものである。ＢＩＳＴについては公知であり詳細な説明は省略するが、コントローラ８０１からの制御によりパターン生成器８０２がテストパターンを生成し、これを入力データ（ＢＩＳＴ＿ｉｎｐｕｔ＿ｄａｔａ）としてモジュール２に与える。その結果を出力データ（ＢＩＳＴ＿ｏｕｔｐｕｔ＿ｄａｔａ）としてモジュール２からＢＩＳＴ回路８００側が受け取り、先の入力データと該出力データとをＢＩＳＴ用メモリ８０３から読み出し、コンパレータ８０４が比較演算を行って故障の有無を判断するというものである。
【００８６】
ＢＩＳＴ用メモリ８０３の容量が十分大きい場合、本実施形態のようにデータ退避先として利用することで上述の第４実施形態と同様に面積オーバーヘッドを小さくできるメリットがある。尚、本実施形態は、ＢＩＳＴ回路に代えて、通常動作時には使用されない内部テストモード用のメモリ領域を利用するよう変形することも可能である。
【００８７】
（第６実施形態）
図１２は本発明に係る集積回路装置の第６実施形態を示す構成図であって、多数決演算によるエラー検出訂正を説明する図である。
【００８８】
本実施形態の退避部４００は、コントローラ４０１、退避データ格納領域６０、および復号化器４０３から構成されている。コントローラ４０１は、大容量のＲＡＭやキャッシュメモリからなる退避データ格納領域６０をアクセスする際のアドレスを生成するアドレス生成器４０２を備える。なお、図１２では退避データ格納領域６０が退避部４００内の専用領域として設けられるよう示されているが、専用領域としてではなく、上述したように他の機能モジュールや、ＢＩＳＴ用メモリを利用する構成としてもよい。
【００８９】
コントローラ４０１は、機能モジュール２からデータが退避されてきた際に、該退避データの複製を複数、生成する。この複数の複製データは退避データ格納領域６０の異なる領域に格納される。このように退避されたデータを機能モジュール２に復帰させる際に、エラー検出訂正部としての復号化器４０３は、これら複数の複製データのすべてを退避データ格納領域６０から読み出し、多数決演算を行う。多数決演算の結果として得られるデータは、仮にソフトエラー等がデータ退避中に生じていたとしても、これが訂正された本来のデータとして得られる。このような本実施形態によれば、上述したような定期的なエラー検出訂正処理が不要となり好ましい。
【００９０】
なお、本発明は上述した実施形態に限定されず種々変形して実施可能である。
【００９１】
【発明の効果】
以上説明したように本発明によれば、消費電力削減のために機能モジュール単位で柔軟に電源供給を制御でき、及びこれに伴い必要なデータの退避及び復帰を制御できる集積回路装置であって、しかもデータ退避の信頼性を低下させることなく低コストで実現可能な集積回路装置を提供できる。特に、消費電力削減のためにデータ退避先への供給電圧をデータ保持に必要な最低電圧としても、データ退避先においてエラー検出訂正を行う構成によって、いわゆるソフトエラー等の発生による退避したデータの信頼性低下を抑えることができる。
【図面の簡単な説明】
【図１】本発明に係る集積回路装置の基本構成図
【図２】スキャンチェーンを用いたデータのシフト動作を説明するための図
【図３】データの退避及び復帰に係る処理の流れを示すフローチャート
【図４】退避データ格納領域におけるエラー検出訂正の流れを示す図
【図５】本発明に係る集積回路装置の第１実施形態を示す構成図
【図６】データの退避及び復帰のタイミングを示すシーケンス図
【図７】本発明に係る集積回路装置の第２実施形態を説明するための図であって、スキャンコントローラの構成例を示す図
【図８】第２実施形態に係り、複数の機能モジュールの夫々に退避部を設ける構成例を示す図
【図９】本発明に係る集積回路装置の第３実施形態（専用領域へ退避）を示す構成図
【図１０】本発明に係る集積回路装置の第４実施形態（ＲＡＭ／ＣＡＣＨＥへ退避）を示す構成図
【図１１】本発明に係る集積回路装置の第５実施形態（ＢＩＳＴ用メモリへ退避）を示す構成図
【図１２】本発明に係る集積回路装置の第６実施形態を示す構成図であって、多数決演算によるエラー検出訂正を説明する図
【図１３】従来例に係る給電制御を説明するための図
【符号の説明】
１…ＰＭＵ（電源管理ユニット）
２，２００，２０１…機能モジュール
３，３００，３０１，４００，５００，６００…退避部
４…セレクタ
５…符号化器
６，６０…退避データ格納領域
７，４０３…復号化器
１０…スキャンコントローラ
１１…スキャンチェーン
１２…コントローラ
１３…パルスジェネレータ
１４…シリアルパラレル変換器及び符号化器
１５…復号化器及びパラレルシリアル変換器
１６…チェックビット
１７…退避データ
２０，７００…メモリ（ＲＡＭ又はＣＡＣＨＥ）
２１…フリップフロップ
２２…シフトレジスタ
３０…退避コントローラ
３１…パルスジェネレータ
７０１…アドレス生成器
８００…ＢＩＳＴ（自己テスト回路）
８０１…コントローラ
８０２…パターン生成器
８０３…ＢＩＳＴ用メモリ
８０４…コンパレータ
【図１】
2004126932.tif 000003
【図２】
2004126932.tif 000004
【図３】
2004126932.tif 000005
【図４】
2004126932.tif 000006
【図５】
2004126932.tif 000007
【図６】
2004126932.tif 000008
【図７】
2004126932.tif 000009
【図８】
2004126932.tif 000010
【図９】
2004126932.tif 000011
【図１０】
2004126932.tif 000012
【図１１】
2004126932.tif 000013
【図１２】
2004126932.tif 000014
【図１３】
2004126932.tif 000015