(57)【要約】【課題】電力消費抑制時におけるデータの消失を防止し、かつ電力消費の抑制効果の向上を可能とする。【解決手段】レジスタ２６のリテンションＦＦ回路２８は、データを保持するデータ保持部３２及びデータ保持部のデータが一時的に格納されるリテンション部３４を含む。データ保持部は、電力消費抑制時に、電源遮断スイッチ４０が動作することにより電源電圧ＶＤＤの供給が停止される。また、リテンション部は、電力消費抑制時に、電源遮断スイッチ４２が操作された場合に、電力の供給が停止される。【選択図】図２
2014067184.tif 000002
【特許請求の範囲】
【請求項１】
データを保持する保持部、及び保持部のデータが一時的に格納されるリテンション部を含む記憶回路と、
電力消費抑制時に、前記記憶回路の前記保持部への電力の供給を停止する第１の給電遮断部と、
前記電力消費抑制時に、前記記憶回路の前記リテンション部への電力の供給を停止可能とする第２の給電遮断部と、
を含む半導体集積回路。
【請求項２】
前記第２の給電遮断部は、
前記リテンション部への電力の供給をオンオフするためのスイッチと、
前記保持部に保持されている前記データに応じて、前記スイッチを操作することにより前記リテンション部への電力の供給を停止するスイッチ制御部と、
を含む請求項１記載の半導体集積回路。
【請求項３】
前記スイッチ制御部は、
前記保持部に保持されるデータの初期値を記憶する初期値記憶部と、
前記初期値と前記保持部に保持されているデータとを比較する比較部と、
を備え、前記比較部の比較結果に基づいて前記スイッチを制御する、請求項２記載の半導体集積回路。
【請求項４】
前記スイッチ制御部は、前記保持部に保持されている前記データと前記初期値とが一致している場合に電力の供給を停止するように前記スイッチを制御する、請求項３記載の半導体集積回路。
【請求項５】
前記スイッチは、複数の前記リテンション部の各々への電力の供給をオンオフし、
前記スイッチ制御部は、前記複数の前記リテンション部の各々に対応する前記保持部に保持されている前記データが当該保持部に対する前記初期値と一致する場合に、電力の供給を停止するように前記スイッチを制御する、
請求項３又は請求項４記載の半導体集積回路。
【請求項６】
前記スイッチ制御部は、前記保持部に保持された前記データが有効か否かを示すデータ情報に基づいて、前記スイッチを制御する、請求項２記載の半導体集積回路。
【請求項７】
前記スイッチ制御部は、
前記保持部に保持されるデータの初期値を記憶する初期値記憶部と、
前記初期値と前記保持部に保持されているデータとを比較する比較部と、
を備え、前記比較部の比較結果及び前記データ情報に基づいて前記スイッチを制御する、請求項６記載の半導体集積回路。
【請求項８】
前記スイッチ制御部は、前記保持部に保持されている前記データと前記初期値とが一致している場合に電力の供給を停止するように前記スイッチを制御する、請求項７記載の半導体集積回路。
【請求項９】
前記スイッチ制御部は、前記データ情報が前記データの無効を示す場合に、電力の供給を停止するように前記スイッチを制御する、請求項６から請求項８の何れか１項記載の半導体集積回路。
【請求項１０】
電力消費抑制時に、記憶回路に設けられてデータを保持する保持部への電力の供給を停止し、
前記記憶回路に設けられて前記保持部のデータが一時的に格納されるリテンション部への電力の供給を、前記保持部のデータに応じて停止する、
ことを含む電力消費抑制方法。
【請求項１１】
初期値記憶部に記憶されている前記保持部に保持されるデータの初期値と、前記保持部に保持されている前記データとを比較し、
前記初期値と前記保持部に保持されている前記データとが一致している場合に、前記リテンション部への電力の供給を停止する、
ことを含む請求項１０記載の電力消費抑制方法。
【請求項１２】
複数の前記リテンション部の前記保持部に保持されている前記データの各々が、当該保持部に対する前記初期値と一致する場合に、前記複数の前記リテンション部の各々への電力の供給を停止する、ことを含む請求項１１記載の電力消費抑制方法。
【請求項１３】
前記保持部に保持された前記データが有効か否かを示すデータ情報に基づき、前記リテンション部への電力の供給を停止する、ことを含む請求項１０から請求項１２の何れか１項記載の電力消費抑制方法。
【請求項１４】
前記データ情報が前記データの無効を示す場合に、前記リテンション部への電力の供給を停止する、ことを含む請求項１３記載の電力消費抑制方法。
【発明の詳細な説明】
【技術分野】
【０００１】
開示する技術は、半導体集積回路及び電力消費抑制方法に関する。
【背景技術】
【０００２】
半導体集積回路における消費電力の削減技術としては、クロックゲーティング技術、パワーゲーティング技術などがある。クロックゲーティング技術は、クロック信号の供給を停止することによりダイナミック電力を削減している。これに対して、パワーゲーティング技術は、電力供給を停止することによりダイナミック電力のみならずスタティック（リーク）電力を含めた電力消費を削減している。
【０００３】
また、パイプラインレジスタを介して複数の演算器を直列接続したパイプライン演算装置は、入力されるデータ列に無効データが含まれることがある。ここから、データ列の無効期間中に一定のデータを入力するかデータを除去することにより、論理回路のスイッチングが起こらないようにして、消費電力を削減するパイプライン演算装置が提案されている。
【０００４】
一方、携帯電話や携帯情報端末などにおいては、電源容量が限られており、ＣＰＵをパワーダウンすることにより消費電力の低減が図られる。ＣＰＵのパワーダウン時には、演算実行ユニットなどへの電力供給が停止される。このとき、演算実行ユニットが作動状態に戻る際に重要な値をレジスタファイルに記憶し、このレジスタファイルなどに記憶素子回路がデータを保持できる下限近くの電圧を供給する提案がなされている。
【０００５】
ところで、データを記憶する記憶回路には、リテンションフリップフロップ回路（リテンションＦＦ回路）がある。このリテンションＦＦ回路は、データを保持するＦＦ回路及びラッチ回路を含んで形成されている。パワーゲーティング技術においては、リテンションＦＦ回路のうちのＦＦ回路への電力供給を停止し、ラッチ回路へ電力を供給することにより、電力供給停止時にＦＦ回路に保持していたデータの消失を防止している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平０６−７５７６８号公報
【特許文献２】特表２００５−５２８６６４号公報
【特許文献３】特開２００４−１５９３３８号公報
【特許文献４】特開２００５−１６７１８４号公報
【特許文献５】特表２００７−５３５０３１号公報
【特許文献６】特開２０１１−５４９８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、リテンションＦＦ回路では、データの消失は防止できるが、ＦＦ回路への電力供給を停止してもラッチ回路へ電力が供給されるため、電力消費の抑制効果が低いという問題がある。
【０００８】
開示の技術は、一つの側面として、電力消費抑制時におけるデータの消失を防止し、かつ電力消費の抑制効果の向上を可能とするものである。
【課題を解決するための手段】
【０００９】
開示の技術は、データを保持する保持部、及び保持部のデータが一時的に格納されるリテンション部を含む記憶回路を備える。第１の給電遮断部は、電力消費抑制時に、前記記憶回路の前記保持部への電力の供給を停止する。また、第２の給電遮断部は、前記電力消費抑制時に、前記記憶回路の前記リテンション部への電力の供給を停止可能とする。
【発明の効果】
【００１０】
開示の技術は、一つの側面として、電力消費抑制時におけるデータの消失を防止し、かつ、電力消費の抑制効果の向上が可能となる、という効果を有する。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態に係る半導体集積回路の一例を示すブロック図である。
【図２】第１の実施形態に係るレジスタ及び電源遮断スイッチ部の要部の一例を示すブロック図である。
【図３】リテンションＦＦ回路の一例を示すブロック図である。
【図４】第１の実施形態に係る電源遮断の一例を示すタイミングチャートであり、データＤａと初期値Ｄｉとが不一致の場合を示す。
【図５】第１の実施形態に係る電源遮断の一例を示すタイミングチャートであり、データＤａと初期値Ｄｉとが一致する場合を示す。
【図６】第２の実施形態に係るレジスタ及び電源遮断スイッチ部の要部の一例を示すブロック図である。
【図７】第２の実施形態に係るリテンション制御部の一例を示すブロック図である。
【図８】第３の実施形態に係るＣＰＵの要部の一例を示すブロック図である。
【図９】第３の実施形態に係るパイプラインレジスタ及び電源遮断スイッチ部の要部の一例を示すブロック図である。
【図１０】第３の実施形態に係るリテンション制御部の一例を示すブロック図である。
【図１１】パイプライン処理の一例を示す流れ図である。
【図１２】第３の実施形態に係る電源遮断の一例を示すタイミングチャートである。
【図１３】第４の実施形態に係るリテンション制御部の一例を示すブロック図である。
【図１４】第４の実施形態に係る電源遮断の一例を示すタイミングチャートであり、データと初期値とが不一致の場合を示す。
【図１５】第４の実施形態に係る電源遮断の一例を示すタイミングチャートであり、データと初期値とが一致する場合を示す。
【発明を実施するための形態】
【００１２】
以下、図面を参照して開示する技術の実施の形態の一例を詳細に説明する。
【００１３】
〔第１の実施形態〕
図１には、本実施形態に係る半導体集積回路１０の要部を示している。半導体集積回路１０は、ＬＳＩ（Large  Scale   Integrated  circuit）、ＶＬＳＩ（Very   Large  Scale   Integrated  circuit）などの集積回路（Integrated  Circuit）が適用される。
【００１４】
半導体集積回路１０は、ＣＰＵ（Central  Processing  Unit）１２、ＲＡＭ（Random  Access  Memory）１４及び複数のＩＰ（Intellectual  Property  core）１６Ａ、１６Ｂが設けられている。ＣＰＵ１２、ＲＡＭ１４及び複数のＩＰ１６Ａ、１６Ｂは、バス１８に接続されている。半導体集積回路１０は、例えば、ＳｏＣ（System−on−ａ−Chip）が適用され、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、マイクロコントローラとして用いられる。なお、本実施形態では、一例として２個のＩＰ１６Ａ、１６Ｂを示すが、半導体集積回路１０に設けられるＩＰの数はこれに限るものではない。
【００１５】
半導体集積回路１０は、電源電圧ＶＤＤが、蓄電池などの図示しない外部直流電源から供給される。半導体集積回路１０は、電源電圧ＶＤＤが、ＣＰＵ１２、ＲＡＭ１４、ＩＰ１６Ａ、１６Ｂの各々に供給されることにより、ＣＰＵ１２、ＲＡＭ１４、ＩＰ１６Ａ、１６Ｂの各々が動作する。半導体集積回路１０は、外部から入力される直流電圧をＣＰＵ１２、ＲＡＭ１４、ＩＰ１６Ａ、１６Ｂの各々に設定された電源電圧ＶＤＤに変換する電圧変換回路（ＤＣ−ＤＣコンバータ）を含んでも良い。
【００１６】
半導体集積回路１０は、電源制御部（ＰＭＵ：Power  Management  Unit）２０を備えている。電源制御部２０は、第１の給電遮断部及び第２の給電遮断部の一例の一部として機能する。半導体集積回路１０は、複数のパワードメイン（Power  Domain）２２が設定されている。なお、本実施形態では、一例として、ＣＰＵ１２を含むパワードメイン２２Ａ、ＲＡＭ１４を含むパワードメイン２２Ｂ、ＩＰ１６Ａを含むパワードメイン２２Ｃ、及びＩＰ１６Ｂを含むパワードメイン２２Ｄが設定されている。
【００１７】
半導体集積回路１０は、パワードメイン２２（２２Ａ〜２２Ｄ）の各々に電源遮断スイッチ（ＰＳＷ：power  switch）部２４が設けられている。なお、本実施形態においては、一例として、パワードメイン２２Ａに電源遮断スイッチ部２４Ａが設けられ、パワードメイン２２Ｂに電源遮断スイッチ部２４Ｂが設けられている。また、本実施形態においては、パワードメイン２２Ｃに電源遮断スイッチ部２４Ｃが設けられ、パワードメイン２２Ｄに電源遮断スイッチ部２４Ｄが設けられている。
【００１８】
半導体集積回路１０は、ＣＰＵ１２が動作モードとして通常モード及びスリープモードを含む。電源制御部２０は、ＣＰＵ１２がスリープモードへ移行することにより、パワードメイン２２の電源遮断スイッチ部２４（２４Ａ〜２４Ｄ）に電源遮断信号ＰＳを出力する。電源制御部２０は、電力消費を抑制するために、電源遮断スイッチ部２４により各パワードメイン２２への電源電圧ＶＤＤの供給（電力の供給）を遮断するパワーゲーティングを行なう。これにより、半導体集積回路１０は、ＣＰＵ１２が動作停止状態となりスリープモードへ移行し、パワーゲーティングによる電力消費の削減が図られる。
【００１９】
また、電源制御部２０は、ＣＰＵ１２の起動要求が入力されると、電源遮断スイッチ部２４（２４Ａ〜２４Ｄ）の各々を操作し、各パワードメイン２２へ電力を供給する。これにより、半導体集集積回路１０は、ＣＰＵ１２がスリープモードから通常モードへ移行し、通常モードにおける動作を開始する。なお、半導体集積回路１０には、アイソレーションセルが設けられており、電源制御部２０は、パワーゲーティングを行なうときにアイソレーション制御信号を出力する。これにより、半導体集積回路１０は、電力供給が停止した回路と電力が供給されてアクティブとなっている回路との間等におけるデータ等の信号の伝播が防止される。
【００２０】
ところで、ＣＰＵ１２は、アキュムレータ、アドレスレジスタ、インデックスレジスタ、ステータスレジスタ等のレジスタ（register）２６を備える。なお、以下では、パワードメイン２２ＡのＣＰＵ１２に設けられるレジスタ２６を例に説明するが、ＣＰＵ１２（パワードメイン２２Ａ）に限らず、他のパワードメイン２２Ｂ〜２２Ｄに設けられるレジスタに適用することができる。
【００２１】
図２には、レジスタ２６の一例を示す。レジスタ２６は、１ビット（bit）分のデータを格納して保持するフリップフロップ（flip−flop）回路２８を備える。レジスタ２６は、記憶するデータのビット数ｎに応じた数のフリップフロップ回路２８を備える。３２ビット（ｎ＝３２）のデータを記憶するレジスタ２６は、３２個のフリップフロップ回路２８を備える。なお、レジスタ２６は、例えば、論理回路により形成される複数の組合せ回路３０を含んでも良い。組合せ回路３０は、レジスタ２６の機能に応じて設定される論理回路が適用され、ここでは詳細な説明を省略する。
【００２２】
一方、半導体集積回路１０に設けるレジスタ２６は、フリップフロップ回路２８として、データ保持部３２及びリテンション部３４を含む所謂リテンションフリップフロップ回路が用いられている。データ保持部３２は、保持部の一例として機能し、リテンション部３４は、リテンション部の一例として機能する。以下の説明では、フリップフロップ回路２８をリテンションＦＦ回路２８として説明する。レジスタ２６、リテンションＦＦ回路２８は、記憶回路の一例として機能する。
【００２３】
図３には、リテンションＦＦ回路２８の一例を示す。リテンションＦＦ回路２８は、データ保持部３２がＦＦ回路３６を含む。また、リテンションＦＦ回路２８は、リテンション部３４がラッチ回路３８を含む。リテンションＦＦ回路２８は、リセット信号ＲＳＴが入力される入力端子Ｒ、データＤａが入力される入力端子Ｄ、クロック信号ＣＬＫが入力される入力端子Ｃ、及びデータＤａを出力する出力端子Ｑを備える。
【００２４】
リテンションＦＦ回路２８は、通常、ＦＦ回路３６が動作し、リセット信号ＲＳＴがアサート（assert）することにより、ＦＦ回路３６がリセット（初期化）される。また、リテンションＦＦ回路２８は、クロック信号ＣＬＫが入力されることにより、クロック信号ＣＬＫに同期し、入力端子Ｄに入力されるデータＤａを読み込んでＦＦ回路３６に保持する。さらに、リテンションＦＦ回路２８は、クロック信号ＣＬＫに同期し、ＦＦ回路３６に保持しているデータＤａを出力端子Ｑから出力する。
【００２５】
図２及び図３に示すように、半導体集積回路１０は、電源遮断スイッチ部２４Ａが、電源遮断スイッチ（ＰＳＷ）４０を備える。レジスタ２６は、電源遮断スイッチ４０を介し、電源電圧ＶＤＤの電力が各リテンションＦＦ回路２８のＦＦ回路３６に供給される。また、図２に示すように、レジスタ２６は、電源遮断スイッチ４０を介して電源電圧ＶＤＤの電力が各組合せ回路３０へ供給される。電源遮断スイッチ部２４Ａは、第１の給電遮断部及び第２の給電遮断部の一例の一部として機能し、電源遮断スイッチ４０は、第１の給電遮断部の一例の一部として機能する。
【００２６】
電源遮断スイッチ４０は、電源制御部２０から出力される電源遮断信号ＰＳに基づいて動作し、電源遮断信号ＰＳが有効（イネーブル：enable、例えば、Ｌレベル）となることで電源電圧ＶＤＤを遮断する。半導体集積回路１０は、電源電圧ＶＤＤが遮断されることで、レジスタ２６に設けられているリテンションＦＦ回路２８のＦＦ回路３６、及び組合せ回路３０への電力の供給が停止される（パワーゲーティング）。
【００２７】
図３に示すように、リテンションＦＦ回路２８は、入力端子Ｓ及び入力端子ＲＳを備える。リテンションＦＦ回路２８は、入力端子Ｓに保存信号Ｓｖが入力され、入力端子ＲＳに復帰信号Ｒｔｏが入力される。電源制御部２０は、保存信号Ｓｖ及び復帰信号Ｒｔｏを、レジスタ２６のリテンションＦＦ回路２８の各々に出力する。電源制御部２０は、電源遮断信号ＰＳの出力に先立って保存信号Ｓｖを有効とし、電源遮断信号ＰＳの出力を停止した後、復帰信号Ｒｔｏを出力する。
【００２８】
リテンションＦＦ回路２８は、保存信号Ｓｖが入力端子Ｓに入力され、復帰信号Ｒｔｏが、ＡＮＤ回路２０Ａを介して入力端子ＲＳに入力される。リテンションＦＦ回路２８は、保存信号Ｓｖが出力（有効）されることにより、ＦＦ回路３６に保持されているデータＤａがラッチ回路３８へ出力される。また、リテンションＦＦ回路２８は、復帰信号Ｒｔｏが出力されることにより、ラッチ回路３８のデータＤａがＦＦ回路３６へ出力される。これにより、リテンションＦＦ回路２８は、ＦＦ回路３６に保持されているデータＤａがラッチ回路３８に退避され、また、ラッチ回路３８に退避させていたデータＤａがＦＦ回路３６に復元される。
【００２９】
一方、図２及び図３に示すように、半導体集積回路１０は、電源遮断スイッチ部２４Ａが、電源遮断スイッチ（ＰＳＷ）４２を備える。電源遮断スイッチ４２は、リテンションＦＦ回路２８の各々に設けられる。各リテンションＦＦ回路２８は、電源遮断スイッチ４２を介して、ラッチ回路３８に電源電圧ＶＤＤの電力が供給される。
【００３０】
電源遮断スイッチ４２は、第２の給電遮断部の一例の一部として機能する。電源遮断スイッチ４２は、電源制御部２０から出力される電源遮断信号ＰＳに応じて動作する。リテンションＦＦ回路２８は、電源遮断スイッチ４２が電源電圧ＶＤＤを遮断することにより、ラッチ回路３８への電力の供給が停止される。
【００３１】
半導体集積回路１０は、電源遮断スイッチ４２が設けられていることにより、レジスタ２６のリテンションＦＦ回路２８に設けられているリテンション部３４のラッチ回路３８への電力の供給を停止するパワーゲーティングを行なうことができる。また、半導体集積回路１０は、レジスタ２６のリテンションＦＦ回路２８の各々に電源遮断スイッチ４２が設けられることにより、リテンションＦＦ回路２８の各ラッチ回路３８への電力の供給を個別に停止可能としている。
【００３２】
図２に示すように、電源遮断スイッチ部２４Ａは、リテンション制御部４４を備える。リテンション制御部４４は、リテンションＦＦ回路２８の各々に対して設けられている。リテンション制御部４４は、スイッチ制御部の一例として機能する。リテンション制御部４４には、電源制御部２０から出力される電源遮断信号ＰＳが入力される。また、リテンション制御部４４は、電源遮断信号ＰＳに応じて電源遮断スイッチ４２を制御する電源遮断信号ＰＳＥＮを出力する。電源遮断スイッチ４２は、電源遮断信号ＰＳＥＮがイネーブル（有効、例えば、Ｌレベル）となることで電源電圧ＶＤＤを遮断する。
【００３３】
図３に示すように、リテンション制御部４４は、イネーブル制御部４６及びデータ比較部４８を備える。データ比較部４８は、初期値記憶部５０、比較回路５２及び信号保持部５４を含む。初期値記憶部５０は初期値記憶部の一例として機能し、比較回路５２は比較部の一例として機能する。
【００３４】
初期値記憶部５０は、レジスタ２６のリテンションＦＦ回路２８（ＦＦ回路３６）の各々に設定されているデータの初期値Ｄｉが記憶される。初期値Ｄｉは、例えば、半導体集積回路１０の電源がオンされたときに、レジスタ２６の各リテンションＦＦ回路２８がリセットされる場合、リセットされたときの値（データ）としている。
【００３５】
比較回路５２には、リテンションＦＦ回路２８のＦＦ回路３６に保持されているデータＤａ、及び初期値記憶部５０に保持されている初期値Ｄｉが入力される。比較回路５２は、例えば、エクスクルーシブオア（Exclusive−OR、以下、ＥＸ−ＯＲとする）回路５６を備える。比較回路５２は、データＤａが初期値Ｄｉと一致することで有効（例えば、Ｌレベル）となる出力信号ＥＱを出力する。信号保持部５４は、比較回路５２の出力信号ＥＱ、及び電源制御部２０から出力される保存信号Ｓｖが入力される。信号保持部５４は、例えば、ラッチ回路５８を備える。信号保持部５４は、入力端子ＥＮに保存信号Ｓｖが入力されることにより、比較回路５２の出力信号ＥＱを読み込んで保持する。また、信号保持部５４は、読み込んだ比較回路５２の出力信号ＥＱを、出力信号ＳＥＱとしてイネーブル制御部４６へ出力する。
【００３６】
イネーブル制御部４６は、信号保持部５４から出力される出力信号ＳＥＱ、及び電源制御部２０（図１参照）が出力する電源遮断信号ＰＳが入力される。イネーブル制御部４６は、例えば、ＯＲ回路６０を含み、出力信号ＳＥＱ及び電源遮断信号ＰＳに基づき、電源遮断スイッチ４２へ電源遮断信号ＰＳＥＮを出力する。イネーブル制御部４６が出力する電源遮断信号ＰＳＥＮは、出力信号ＳＥＱ（出力信号ＥＱ）が有効となり、かつ電源遮断信号ＰＳが有効となることにより、有効（例えば、Ｌレベル）となる。
【００３７】
電源遮断スイッチ４２は、リテンション制御部４４のイネーブル制御部４６が出力する電源遮断信号ＰＳＥＮに基づき、リテンションＦＦ回路２８のラッチ回路３８への電源電圧ＶＤＤの供給を停止する。すなわち、イネーブル制御部４６は、電源遮断信号ＰＳが入力されたときに、データＤａと初期値Ｄｉとが一致していることで，電源遮断スイッチ４２の動作を有効とする電源遮断信号ＰＳＥＮを出力する。また、ラッチ回路５８が出力する出力信号ＳＥＱは、ＡＮＤ回路２０Ａに入力される。これにより、リテンションＦＦ回路２８には、出力信号ＳＥＱが有効となっているときに、電源制御部２０から出力される復帰信号ＲｔｏがＡＮＤ回路２０Ａを介して入力される。
【００３８】
以下に、第１の実施形態の作用を説明する。
【００３９】
半導体集積回路１０は、電源電圧ＶＤＤが供給されることにより、電源電圧ＶＤＤが各パワードメイン２２に供給される。これにより、半導体集積回路１０は、ＣＰＵ１２がブート処理を開始し、ブート処理が終了することで通常モードで動作する。また、半導体集積回路１０は、例えば非動作状態が継続するとＣＰＵ１２がスリープモードへ移行する。
【００４０】
半導体集積回路１０に設けられた電源制御部２０は、例えば、ＣＰＵ１２がスリープモードへ移行することによりパワーゲーティングを行なう。電源制御部２０は、パワードメイン２２の各々に設けている電源遮断スイッチ部２４に電源遮断信号ＰＳを出力する。これにより、半導体集積回路１０は、電源遮断スイッチ部２４の各々がパワードメイン２２内への電源電圧ＶＤＤの供給を停止する。
【００４１】
ところで、半導体集積回路１０は、電源遮断スイッチ部２４Ａに設けられている電源遮断スイッチ４０及び電源遮断スイッチ４２を介して、レジスタ２６に設けているリテンションＦＦ回路２８に電源電圧ＶＤＤを供給している。電源制御部２０は、パワーゲーティングを行なうときに、電源遮断スイッチ４０、４２の各々に電源遮断信号ＰＳを出力する。なお、以下では、各信号について出力とは、当該信号を有効（アサート、イネーブル）とすることを含み、停止とは、当該信号を無効（ディアサート、ディスエーブル）とすることを含む。
【００４２】
ここで、図４及び図５を参照しながら、レジスタ２６に対するパワーゲーティングを説明する。なお、図４及び図５は、パワーゲーティングを行なうときの、クロック信号ＣＬＫ、保存信号Ｓｖ、復帰信号Ｒｔｏ、リセット信号ＲＳＴ、電源遮断信号ＰＳ、及びＦＦ回路３６の電源電圧の変化を示す。また、図４及び図５は、比較回路５２の出力信号ＥＱ、信号保持部５４の出力信号ＳＥＱ、イネーブル制御部４６の電源遮断信号ＰＳＥＮ、及びラッチ回路３８の電源電圧の変化を示す。
【００４３】
電源制御部２０は、パワーゲーティングを行なうときに、電源遮断信号ＰＳの出力に先立って、保存信号Ｓｖを出力する。また、電源制御部２０は、電源遮断信号ＰＳの出力を停止すると、復帰信号Ｒｔｏを出力する。半導体集積回路１０は、ＣＰＵ１２がスリープモードへ移行することによりクロック信号ＣＬＫが停止され、リセット信号ＲＳＴがアサート（assert）される。また、半導体集積回路１０は、ＣＰＵ１２に電源電圧ＶＤＤの供給が開始されると、リセット信号ＲＳＴがディアサート（de-assert）され、この後、クロック信号ＣＬＫの出力が開始される。
【００４４】
したがって、図４及び図５に示すように、リテンションＦＦ回路２８には、クロック信号ＣＬＫの入力が停止した後、保存信号Ｓｖが入力される。リテンションＦＦ回路２８は、保存信号Ｓｖが入力されることにより、ＦＦ回路３６に保持されているデータＤａがラッチ回路３８に出力され、ラッチ回路３８に保持される。
【００４５】
この後、半導体集積回路１０は、電源制御部２０が出力する電源遮断信号ＰＳがイネーブルとなることにより電源遮断スイッチ４０が動作し、ＦＦ回路３６への電力供給が停止される。これにより、半導体集積回路１０のレジスタ２６は、リテンションＦＦ回路２８の各々のＦＦ回路３６におけるダイナミック電力及びリーク電力の消費が抑制される。
【００４６】
一方、データ比較部４８は、リテンションＦＦ回路２８のＦＦ回路３６に保持されているデータＤａと初期値記憶部５０に保持されている初期値Ｄｉとを比較回路５２により比較する。比較回路５２は、クロック信号ＣＬＫが停止される場合、停止される直前のクロック信号ＣＬＫに応じてＦＦ回路３６から出力されたデータＤａ及び初期値Ｄｉに基づいた比較結果を、出力信号ＥＱとして出力する。また、データ比較部４８は、信号保持部５４に保存信号Ｓｖが入力されることにより、信号保持部５４が、比較回路５２の出力信号ＥＱを保持し、出力信号ＳＥＱとして出力する。
【００４７】
ここで、図４に示すように、データＤａと初期値Ｄｉとが一致していない場合、比較回路５２の出力信号ＥＱは、Ｈレベルとなる。これにより、信号保持部５４は、保存信号Ｓｖに基づき、Ｈレベルの出力信号ＳＥＱを出力する。
【００４８】
イネーブル制御部４６は、電源遮断信号ＰＳが入力されたときに、出力信号ＳＥＱがＨレベルとなっていると、電源遮断スイッチ４２に対する電源遮断信号ＰＳＥＮとしてＨレベルのディスエーブル信号（disable：無効信号）を出力する。これにより、電源遮断スイッチ４２は、ラッチ回路３８への電源電圧ＶＤＤの供給を停止せず、ラッチ回路３８は、データＤａの保持を継続する。
【００４９】
電源制御部２０は、パワーゲーティングを終了するときに、電源遮断信号ＰＳの出力を停止する。これにより、電源遮断スイッチ４０は、電源電圧ＶＤＤの停止を解除し、リテンションＦＦ回路２８のＦＦ回路３６には、電源電圧ＶＤＤが供給される。この後、リテンションＦＦ回路２８は、リセット信号ＲＳＴがアサートされることによりＦＦ回路３６が初期化され、復帰信号Ｒｔｏが入力されることにより、ラッチ回路３８に保持されているデータＤａがＦＦ回路３６に入力される。これにより、リテンションＦＦ回路２８は、パワーゲーティングの直前のデータＤａがＦＦ回路３６に復元される。
【００５０】
これに対して、図５に示すように、ＦＦ回路３６に保持しているデータＤａと初期値Ｄｉとが一致していると、比較回路５２の出力信号ＥＱがＬレベル（有効）となる。これにより、信号保持部５４は、Ｌレベルの出力信号ＳＥＱを出力する。
【００５１】
イネーブル制御部４６は、電源遮断信号ＰＳが入力されたときに、出力信号ＳＥＱがＬレベルとなっていると、電源遮断スイッチ４２に対し、電源遮断信号ＰＳＥＮとしてイネーブル信号（EN）を出力する。
【００５２】
これにより、電源遮断スイッチ４２は、電源電圧ＶＤＤを遮断し、ラッチ回路３８への電力供給を停止する。したがって、リテンションＦＦ回路２８は、ＦＦ回路３６のデータＤａが消去される。また、リテンションＦＦ回路２８は、ラッチ回路３８が設けられたリテンション部３４に対してもパワーゲーティングが行なわれ、リテンション部３４における電力消費が停止される。
【００５３】
イネーブル制御部４６は、電源遮断信号ＰＳが停止すると、出力信号ＰＳＥＮとしてディスエーブル信号を出力する。これにより、ラッチ回路３８には、電源電圧ＶＤＤの供給が開始される。
【００５４】
また、リセット信号ＲＳＴは、レジスタ２６の各リテンションＦＦ回路２８にも入力される。レジスタ２６のリテンションＦＦ回路２８は、リセット信号ＲＳＴがアサートされることによりＦＦ回路３６がリセットされ、初期値Ｄｉにセットされる。ここで、比較回路５２が出力する出力信号ＳＥＱがリセットされずにＬレベルのままであると、ＡＮＤ回路２０Ａが復帰信号Ｒｔｏをマスクする。これにより、リテンションＦＦ回路２８には、復帰信号Ｒｔｏが入力されず、リセット直後で不安定となっているラッチ回路３８のデータがＦＦ回路３６に書き戻されてしまうのを防止している。
【００５５】
したがって、電源遮断スイッチ部２４Ａは、データＤａと初期値Ｄｉとが一致していない場合、パワーゲーティング前とパワーゲーティング後とで、同じデータＤａをリテンションＦＦ回路２８のＦＦ回路３６に保持させる。
【００５６】
また、半導体集積回路１０は、リテンションＦＦ回路２８のＦＦ回路３６に保持されているデータＤａが、初期値Ｄｉである場合、ＦＦ回路３６のデータＤａを保持せずに、ラッチ回路３８の電力供給を停止する。したがって、ＣＰＵ１２が再起動したときに、不要となるデータを保持するために電力を消費してしまうことがない。
【００５７】
〔第２の実施形態〕
次に、第２の実施形態を説明する。なお、第２の実施形態の基本的構成は、前記した第１の実施形態と同じであり、第２の実施形態において第１の実施形態と同じ機能部品については、同一の符号を付与して詳細な説明を省略する。
【００５８】
図６には、第２の実施形態に係るレジスタ２６に対する電源電圧ＶＤＤの供給系統を示す。第２の実施形態は、電源遮断スイッチ部２４Ａに替えて電源遮断スイッチ部６２を用いている。電源遮断スイッチ部６２は、電源遮断スイッチ４２に替えて電源遮断スイッチ６４を含む。電源遮断スイッチ部６２は、第２の給電遮断部の一例として機能し、電源遮断スイッチ６４は、スイッチの一例として機能する。
【００５９】
電源遮断スイッチ６４は、電源電圧ＶＤＤを、レジスタ２６に設けられているリテンションＦＦ回路２８の各々のリテンション部３４（ラッチ回路３８）に供給する。レジスタ２６は、電源遮断スイッチ６４を介して、複数のリテンションＦＦ回路２８の各々に電源電圧ＶＤＤが供給される。
【００６０】
また、電源遮断スイッチ部６２は、リテンション制御部６６を備える。リテンション制御部６６は、第１の実施形態に係る複数のリテンション制御部４４に替えて設けられている。リテンション制御部６６は、スイッチ制御部の一例として機能する。リテンション制御部６６は、電源遮断信号ＰＳに応じて、電源遮断スイッチ６４に電源遮断信号ＰＳＥＮを出力する。
【００６１】
図７には、第２の実施形態に係るリテンション制御部６６の一例を示す。リテンション制御部６６は、イネーブル制御部４６及びデータ比較部６８を含む。データ比較部６８は、初期値記憶部５０Ａ、比較回路５２Ａ、信号保持部５４を含む。
【００６２】
初期値記憶部５０Ａには、レジスタ２６の各リテンションＦＦ回路２８における初期値Ｄｉの各々が保持されている。すなわち、レジスタ２６が、ｎビット（例えば３２ビット）であれば、ｎビット分のリテンションＦＦ回路２８の初期値Ｄｉ０、Ｄｉ１、Ｄｉ２、・・・、Ｄｉｎが保持されている。
【００６３】
また、データ比較部６８には、ｎビット分の各リテンションＦＦ回路２８のＦＦ回路３６に保持されているデータＤａ０、Ｄａ１、Ｄａ２、・・・、Ｄａｎが入力される。
【００６４】
比較回路５２Ａは、例えば、ｎビット分のリテンションＦＦ回路２８の各々に対応するＥＸ−ＯＲ回路５６、及びＯＲ回路７０を含む。ＥＸ−ＯＲ回路５６には、対応するリテンションＦＦ回路２８のデータＤａ及び初期値Ｄｉが入力される。これにより、ＥＸ−ＯＲ回路５６は、リテンションＦＦ回路２８毎の出力信号ＥＱ０、ＥＱ１、ＥＱ２、・・・、ＥＱｎを出力する。
【００６５】
各ＥＸ−ＯＲ回路５６の各々が出力する出力信号ＥＱ０、ＥＱ１、ＥＱ２、・・・、ＥＱｎは、ＯＲ回路７０に入力される。ＯＲ回路７０は、出力信号ＥＱ０、ＥＱ１、ＥＱ２、・・・、ＥＱｎに基づいて出力信号ＥＱを出力する。ＯＲ回路７０の出力信号ＥＱは、データＤａ０と初期値Ｄｉ０、データＤａ１と初期値Ｄｉ１、データＤａ２と初期値Ｄｉ２、・・・、データＤａｎと初期値Ｄｉｎの全てが一致することで有効（Ｌレベル）となる。また、ＯＲ回路７０の出力信号ＥＱは、データＤａ０と初期値Ｄｉ０、データＤａ１と初期値Ｄｉ１、データＤａ２と初期値Ｄｉ２、・・・、及びデータＤａｎと初期値Ｄｉｎの少なくとも１組が不一致となることにより無効（Ｈレベル）となる。
【００６６】
第２の実施形態においては、電源遮断スイッチ４０及び電源遮断スイッチ６４が、前記した図４及び図５に示す電源遮断スイッチ４０及び電源遮断スイッチ４２と同等に動作する。このとき、第２の実施形態においては、レジスタ２６の少なくとも一つのリテンションＦＦ回路２８において、データＤａが初期値Ｄｉと一致しない場合、電源遮断信号ＰＳが入力されても、電源遮断スイッチ６４が電源電圧ＶＤＤを遮断しない。また、第２の実施形態においては、レジスタ２６の各リテンションＦＦ回路２８のデータＤａが初期値Ｄｉとなっている場合、電源遮断信号ＰＳに応じて、リテンションＦＦ回路２８のパワーゲーティングが行なわれる。
【００６７】
したがって、電源遮断スイッチ部６２は、不必要にリテンションＦＦ回路２８のリテンション部３４（ラッチ回路３８）に電源電圧ＶＤＤを供給することがないので、パワーゲーティングを行なうときの、電力消費の抑制が図られる。
【００６８】
なお、第１の実施形態は、リテンションＦＦ回路２８毎に電源遮断スイッチ４２を設け、第２の実施形態は、レジスタ２６毎に電源遮断スイッチ６４を設けたが、開示の技術は、これに限るものではない。開示の技術においては、レジスタ２６に含まれる複数のリテンションＦＦ回路２８に対して一つの電源遮断スイッチを設けることを含む。また、開示の技術は、複数のレジスタ２６に対して一つの電源遮断スイッチを設けることを含む。
【００６９】
〔第３の実施形態〕
次に、第３の実施形態を説明する。なお、第３の実施形態において、第１又は第２の実施形態と同一の機能部品については、同一の符号を付与してその説明を省略する。
【００７０】
第３の実施形態は、ＣＰＵ１２（図１参照）としてパイプラインプロセッサ（以下、ＣＰＵ１２Ａとする）を用いている。図８には、パイプラインプロセッサとして用いるＣＰＵ１２Ａの要部の機能ブロック図の一例を示す。なお、第３の実施形態では、５段のパイプラインを例示するが、パイプラインの段数はこれに限るものではない。
【００７１】
ＣＰＵ１２Ａのパイプラインは、命令フェッチステージ７２、命令デコードステージ７４、演算命令実行ステージ７６、メモリアクセスステージ７８、及びライトバック（結果ライト）ステージ８０を含む。命令フェッチステージ７２は、命令メモリ７２Ａから命令をフェッチする。また、命令デコードステージ７４は、命令デコード制御部７４Ａ及びレジスタ７４Ｂを含む。演算命令実行ステージ７６は、ＡＬＵ（Arithmetic  Logic  Unit：演算装置）７６Ａを含み、メモリアクセスステージ７８は、データメモリ７８Ａを含む。
【００７２】
ＣＰＵ１２Ａは、命令フェッチステージ７２と命令デコードステージ７４との間に用いるパイプラインレジスタ８２、及び命令デコードステージ７４と演算命令実行ステージ７６との間に用いるパイプラインレジスタ８４を含む。また、ＣＰＵ１２Ａは、演算命令実行ステージ７６とメモリアクセスステージ７８との間に用いるパイプラインレジスタ８６、及びメモリアクセスステージ７８とライトバックステージ８０との間に用いるパイプラインレジスタ８８を含む。パイプラインレジスタ８２〜８８は、記憶回路の一例として機能する。
【００７３】
ＣＰＵ１２Ａは、パイプラインを形成する各ステージにおける処理が、所定のクロックサイクルで並行して実行される。このとき、パイプラインレジスタ８２〜８８には、各ステージの情報が記録される。また、パイプラインレジスタ８２〜８８には、フラグ領域９０が設けられている。
【００７４】
命令デコード制御部７４Ａは、データ依存関係に起因するハザード（data  dependent  hazard）等のパイプラインハザードが発生した場合に、対応するパイプラインレジスタ８２〜８８のフラグ領域９０の情報（フラグＦ）を書き換える。第３の実施形態では、パイプラインレジスタ８２〜８８に対してパワーゲーティングを含む。
【００７５】
図９には、第３の実施形態に係る電源遮断スイッチ部９２の要部を示す。電源遮断スイッチ部９２は、第２の給電遮断部の一例として機能する。パイプラインレジスタ８２〜８８には、電源遮断スイッチ部９２を介して電源電圧ＶＤＤが供給される。なお、パイプラインレジスタ８２〜８８に対する基本的構成は同じであり、以下の説明で、特に区別しない場合、パイプレインレジスタ８２を例に説明する。
【００７６】
電源遮断スイッチ部９２は、電源遮断スイッチ４０及び電源遮断スイッチ６４を含む。パイプラインレジスタ８２〜８８の各々は、ビット数ｎに応じた数のリテンションＦＦ回路２８を含む。電源遮断スイッチ４０は、パイプラインレジスタ８２〜８８の各々のリテンションＦＦ回路２８に設けられるデータ保持部３２（ＦＦ回路３６）に接続される。パイプラインレジスタ８２〜８８は、電源遮断スイッチ４０を介して、リテンションＦＦ回路２８のデータ保持部３２に電源電圧ＶＤＤが供給される。また、パイプラインレジスタ８２〜８８は、パワーゲーティング時に、電源遮断スイッチ４０により電源電圧ＶＤＤが遮断される。
【００７７】
電源遮断スイッチ６４は、パイプラインレジスタ８２〜８８の各々に対して設けられ、各リテンションＦＦ回路２８のリテンション部３４（ラッチ回路３８）は、電源遮断スイッチ６４を介して電源電圧ＶＤＤが供給される。また、パイプラインレジスタ８２〜８８は、電源遮断スイッチ６４が動作することにより、リテンションＦＦ回路２８のリテンション部３４への電源電圧ＶＤＤの供給が停止される。また、電源遮断スイッチ部９２には、パイプラインレジスタ８２〜８８に対して、個別に、リテンションＦＦ回路２８のリテンション部３４への電力供給の停止が可能となっている。
【００７８】
電源遮断スイッチ部９２は、リテンションＦＦ回路２８のリテンション部３４に対する電源遮断を制御するリテンション制御部９４を備える。リテンション制御部９４は、第２の実施形態に係るリテンション制御部６６に替えて設けられている。リテンション制御部９４は、スイッチ制御部の一例として機能する。
【００７９】
図１０には、第３の実施形態に係るリテンション制御部９４の一例を示す。リテンション制御部９４は、イネーブル制御部４６を含む。イネーブル制御部４６は、例えば、ＯＲ回路６０を備える。ＯＲ回路６０には、電源遮断信号ＰＳが入力される。また、ＯＲ回路６０には、リテンション制御部９４が対応するパイプラインレジスタ８２のフラグ領域９０に保持されているフラグＦの情報（以下、フラグデータＦＤとする）が入力される。
【００８０】
命令デコード制御部７４Ａは、パイプラインレジスタ８２に対して、保持しているデータが有効であるか否かを判定する。パイプラインレジスタ８２に保持しているデータが有効であれば、命令デコード制御部７４Ａは、フラグＦを有効（例えば、フラグデータＦＤをＨレベル）にセットする。また、命令デコード制御部７４Ａは、パイプラインハザード等が生じ、パイプラインレジスタ８２に保持しているデータが無効となることで、フラグＦを無効（例えば、フラグデータＦＤをＬレベル）にセットする。
【００８１】
イネーブル制御部４６は、電源遮断信号ＰＳが入力されているときに、フラグＦが有効であれば、電源遮断スイッチ６４の動作を無効（disable、例えばＨレベル）とする電源遮断信号ＰＳＥＮを出力する。また、イネーブル制御部４６は、電源遮断信号ＰＳが入力されているときに、フラグＦが無効であれば、電源遮断スイッチ６４の動作を有効（Enable、例えばＬレベル）とする電源遮断信号ＰＳＥＮを出力する。
【００８２】
ここで、ＣＰＵ１２ＡにおけるフラグＦの設定の一例を、図１１を参照しながら説明する。なお、図１１には、命令の実行順序を、命令Ｗ、命令Ｘ、命令Ｙ、命令Ｚ、命令１、命令２、命令３、命令４、命令５・・・としている。また、各ステージでは、１サイクル（１クロックサイクル）ごとに対応する命令が順に実行される。
【００８３】
図１１に示すように、ＣＰＵ１２Ａは、サイクル１で命令フェッチステージ７２において命令１のフェッチを実行しているときに、命令デコードステージ７４においては、一つ前の命令Ｚのデコードを実行する。また、ＣＰＵ１２Ａは、サイクル１で、演算命令実行ステージ７６において命令Ｙの演算命令を実行し、メモリアクセスステージ７８において命令Ｘのメモリアクセスを実行し、ライトバックステージ８０において命令Ｗの結果の書き込みを行なう。
【００８４】
また、ＣＰＵ１２Ａは、クロックサイクルの経過に応じて、命令フェッチステージ７２において、命令１、命令２、命令３、命令４を順に実行し、命令デコードステージ７４において、命令Ｚ、命令１、命令２、命令３を順に実行する。さらに、ＣＰＵ１２Ａは、演算命令実行ステージ７６において、命令Ｙ、命令Ｚ、命令１、命令２を順に実行し、メモリアクセスステージ７８において、命令Ｘ、命令Ｙ、命令Ｚ、命令１を順に実行する。このとき、パイプラインレジスタ８２〜８８は、保持しているデータが下流側のステージから読み出され、上流側のステージの実行結果が書き込まれる。
【００８５】
ここで、命令１が分岐命令であり、命令２〜命令５が演算命令であるとする。この場合、ＣＰＵ１２Ａは、分岐予測にしたがって、命令フェッチステージ７２において、命令２、命令３、命令４のフェッチ（読み出し）を順に実行する。命令５が命令１の分岐先である場合、ＣＰＵ１２Ａは、命令５のフェッチを行なうことにより命令１の分岐先を確定する。このとき、命令２から命令４が既に実行されていることで、分岐ハザードが発生する。
【００８６】
この分岐ハザードにより、既にフェッチされて実行された命令２、３、４が無効となる。すなわち、命令デコードステージ７４における命令４のデコード、演算命令実行ステージ７６における命令３の実行、及びメモリアクセスステージ７８における命令２のメモリアクセスが無効となる。また、ライトバックステージ８０における命令１の結果の書き込みが無効となる（図１１において斜線で示す）。
【００８７】
パイプラインレジスタ８４〜８８には、無効となった命令２〜４に対応する中間データが格納されており、分岐ハザードが発生することでパイプラインレジスタ８４〜８８に格納されている中間データが無効となる。このとき、命令デコード制御部７４Ａは、パイプラインレジスタ８４〜８８の各々に格納されているデータを無効とするように、フラグ領域９０のフラグＦ（フラグデータＦＤ）の書換えを行なう。
【００８８】
ＣＰＵ１２Ａは、フラグＦを確認しながら、無効となった命令２からの処理を実行する。なお、パイプライン処理及びパイプライン処理におけるハザードの検出、検出したハザードを解消するための処理は、公知の一般的構成を適用することができる。
【００８９】
電源遮断スイッチ部９４は、パイプラインレジスタ８２（８２〜８８）が保持しているデータに対するフラグＦを用い、ＣＰＵ１２Ａのパイプラインレジスタ８２（８２〜８８）に対するパワーゲーティングを行なう。以下では、パイプラインレジスタ８２に対するパワーゲーティングを例に説明する。
【００９０】
図１２には、パワーゲーティングを行なうときの、クロック信号ＣＬＫ、保存信号Ｓｖ、復帰信号Ｒｔｏ、リセット信号ＲＳＴ、電源遮断信号ＰＳ、及びＦＦ回路３６の電源電圧の変化を示す。また、図１２には、フラグＦ、イネーブル制御部４６の電源遮断信号ＰＳＥＮ、及びラッチ回路３８の電源電圧の変化を、フラグＦが有効な場合を実線とし、無効な場合を二点鎖線として示している。
【００９１】
パイプラインレジスタ８２は、保存信号Ｓｖが入力されることにより、各リテンションＦＦ回路２８において、ＦＦ回路３６のデータＤａが、ラッチ回路３８に保持される。
【００９２】
電源遮断スイッチ部９２の電源遮断スイッチ４０は、電源遮断信号ＰＳが入力されることにより、各リテンションＦＦ回路２８のＦＦ回路３６（データ保持部３２）への電源電圧ＶＤＤの供給を停止する。また、電源遮断スイッチ４０は、電源遮断信号ＰＳが停止することにより、各リテンションＦＦ回路２８のＦＦ回路３６へ電源電圧ＶＤＤを供給する。リテンションＦＦ回路２８の各々は、電源電圧ＶＤＤが供給されている状態で、リセット信号ＲＳＴがアサートされると、ＦＦ回路３６が初期化される。また、リテンションＦＦ回路２８の各々は、ラッチ回路３８にデータＤａが保持されている状態で復帰信号Ｒｔｏが入力されることにより、ラッチ回路３８のデータＤａがＦＦ回路３６に格納される。
【００９３】
一方、リテンション制御部９４は、パイプラインレジスタ８２のデータに対するフラグＦが有効である場合、電源遮断信号ＰＳが入力されたときに、電源遮断スイッチ６４の動作を無効（Ｈレベル）とする電源遮断信号ＰＳＥＮを出力する。
【００９４】
これにより、リテンションＦＦ回路２８は、ラッチ回路３８に電源電圧ＶＤＤが供給され、ＦＦ回路３６のデータＤａを保持する。したがって、パイプラインレジスタ８２は、パワーゲーティングが行なわれたときにデータが消滅してしまうことがない。
【００９５】
これに対して、図１２に二点鎖線で示すように、フラグＦが無効となっている場合、リテンション制御部９４は、電源遮断信号ＰＳが入力されたときに、電源遮断スイッチ６４の動作を有効（Ｌレベル）とする電源遮断信号ＰＳＥＮを出力する。電源遮断スイッチ部９２の電源遮断スイッチ６４は、動作を有効とする電源遮断信号ＰＳＥＮが入力されることにより、電源電圧ＶＤＤを遮断する。
【００９６】
これにより、各リテンションＦＦ回路２８は、ラッチ回路３８への電力供給が停止され、ラッチ回路３８におけるダイナミック電力及びリーク電力の消費が抑制される。
【００９７】
パイプラインレジスタ８２は、ＦＦ回路３６への電力供給が停止され、ラッチ回路３８への電力供給が停止されることで、保持しているデータが消滅する。しかし、パイプラインレジスタ８２に格納されているデータが無効であることにより、ＣＰＵ１２Ａの処理動作に影響が生じることはない。
【００９８】
〔第４の実施形態〕
次に、開示の技術における第４の実施形態を説明する。なお、第４の実施形態において、前記した第１から第３の実施形態の何れかと同一の機能部品については、同一の符号を付与してその説明を省略する。
【００９９】
図１３には、第４の実施形態に係る電源遮断スイッチ部９２Ａに設けたリテンション制御部９６の一例を示している。第４の実施形態の基本的構成は、前述の第３の実施形態と同じである。電源遮断スイッチ部９２Ａは、第３の実施形態の電源遮断スイッチ部９２に対し、リテンション制御部９４に替えてリテンション制御部９６を設けている点で相違する。電源遮断スイッチ部９２Ａは、第２の給電遮断部の一例として機能し、リテンション制御部９６は、スイッチ制御部の一例として機能する。
【０１００】
リテンション制御部９６は、イネーブル制御部４６、及びデータ比較部９８を含む。データ比較部９８は、初期値記憶部５０Ａ、比較回路５２Ａ、及び信号保持部５４Ａを含む。信号保持部５４Ａは、データ比較部６８の信号保持部５４に替えて設けられ、ラッチ回路５８及びＡＮＤ回路１００を含む。
【０１０１】
初期値記憶部５０Ａには、パイプラインレジスタ８２の各リテンションＦＦ回路２８における初期値Ｄｉが保持される。この初期値Ｄｉは、例えば、パイプラインレジスタ８２がリセットされたときのリテンションＦＦ回路２８のＦＦ回路３６のデータが用いられる。
【０１０２】
比較回路５２Ａは、パイプラインレジスタ８２のビット数ｎに応じた数のＥＸ−ＯＲ回路５６を備える。ＥＸ−ＯＲ回路５６は、各ＦＦ回路３６に保持されているデータＤａ（Ｄａ０、Ｄａ１、Ｄａ２、・・・、Ｄａｎ）、と初期値Ｄｉ（Ｄｉ０、Ｄｉ１、Ｄｉ２、・・・、Ｄｉｎ）とを比較する。ＥＸ−ＯＲ回路５６は、データＤａと初期値Ｄｉとが一致することで有効（Ｌレベル）となる信号（出力信号ＥＱ０、ＥＱ１、ＥＱ２、・・・、ＥＱｎ）を出力する。ＯＲ回路７０は、各々のＥＸ−ＯＲ回路５６の出力する信号が有効となることで有効（Ｌレベル）となる出力信号ＥＱを出力する。
【０１０３】
信号保持部５４Ａは、ＡＮＤ回路１００に、出力信号ＥＱ及びパイプラインレジスタ８２のデータに対して設定されたフラグＦに応じたフラグデータＦＤが入力される。ＡＮＤ回路１００は、無効（データＤａと初期値Ｄｉとが不一致、Ｈレベル）の出力信号ＥＱ、及びフラグＦが有効（Ｈレベル）に対応するフラグデータＦＤが入力されることにより、無効となる出力信号ＦＥＱを出力する。
【０１０４】
ラッチ回路５８は、パイプラインレジスタ８２の各リテンションＦＦ回路２８に保存信号Ｓｖが入力されることにより、出力信号ＦＥＱを保持し、出力信号ＦＥＱを出力信号ＳＥＱとしてイネーブル制御部４６へ出力する。なお、出力信号ＳＥＱは、復帰信号Ｒｔｏのマスク用としても用いられる。
【０１０５】
これにより、リテンション制御部９６は、電源遮断信号ＰＳが入力されたときに、出力信号ＳＥＱに応じた電源遮断信号ＰＳＥＮを出力する。リテンション制御部９６が出力する電源遮断信号ＰＳＥＮは、出力信号ＳＥＱが有効（Ｌレベル）となるか、フラグＦが無効（フラグデータＦＤがＬレベル）となっているときに、電源遮断スイッチ６４の動作を有効とする。
【０１０６】
図１４及び図１５には、第４の実施形態において、パワーゲーティングを行なうときの、クロック信号ＣＬＫ、保存信号Ｓｖ、復帰信号Ｒｔｏ、リセット信号ＲＳＴ、電源遮断信号ＰＳ、及びＦＦ回路３６の電源電圧の変化を示す。また、図１４及び図１５には、比較回路５２Ａの出力信号ＥＱ、フラグＦ、信号保持部５４Ａの出力信号ＳＥＱ、イネーブル制御部４６の電源遮断信号ＰＳＥＮ、及びラッチ回路３８の電源電圧の変化を示す。なお、図１４は、ＦＦ回路３６に保持されているデータＤａと初期値Ｄｉとが一致していない場合を示し、図１５は、ＦＦ回路３６に保持されているデータＤａと初期値Ｄｉとが一致している場合を示している。また、図１４及び図１５においては、フラグＦが有効な場合を実線とし、無効な場合を二点鎖線として示している。
【０１０７】
リテンション制御部９６は、リテンションＦＦ回路２８の各々のＦＦ回路３６のデータＤａが、初期値Ｄｉであることにより比較回路５２Ａの出力信号ＥＱが有効（Ｌレベル）となる。また、リテンション制御部９６は、出力信号ＥＱが有効であることにより、パイプラインレジスタ８２のフラグＦに関わらず、ＡＮＤ回路１００の出力信号ＦＥＱがＬレベルとなる。
【０１０８】
これにより、図１５に示すように、イネーブル制御部４６は、電源遮断スイッチ６４の動作を有効とする電源遮断信号ＰＳＥＮを出力する。したがって、パイプラインレジスタ８２は、各リテンションＦＦ回路２８のラッチ回路３８の電源電圧ＶＤＤが遮断される。
【０１０９】
また、リテンション制御部９６は、リテンションＦＦ回路２８の何れかのＦＦ回路３６のデータＤａが、初期値Ｄｉと異なることにより比較回路５２Ａの出力信号ＥＱが無効（Ｈレベル）となる。
【０１１０】
しかし、図１４に二点鎖線で示すように、リテンション制御部９６は、フラグＦが無効（Ｌレベル）である場合、ＡＮＤ回路１００の出力信号ＦＥＱが、Ｌレベルとなる。これにより、イネーブル制御部４６は、電源遮断スイッチ６４の動作を有効とする電源遮断信号ＰＳＥＮを出力する。したがって、各ＦＦ回路３６のデータＤａが初期値Ｄｉと異なっても、フラグＦが無効である場合、パイプラインレジスタ８２は、各リテンションＦＦ回路２８のラッチ回路３８の電源電圧ＶＤＤが遮断される。
【０１１１】
これに対して、リテンション制御部９６は、フラグＦが有効となっており、フラグデータＦＤがＨレベルである場合、ＡＮＤ回路１００の出力信号ＦＥＱが、Ｈレベルとなる。これにより、イネーブル制御部４６は、電源遮断スイッチ６４の動作を無効とする電源遮断信号ＰＳＥＮを出力する。したがって、パイプラインレジスタ８２は、各リテンションＦＦ回路２８のラッチ回路３８に電源電圧ＶＤＤが供給される状態が継続され、ＦＦ回路３６に保持されていたデータＤａがラッチ回路３８に保存される。
【０１１２】
リテンション制御部９６は、パイプラインレジスタ８２のフラグＦが無効である場合に加え、フラグＦが有効であっても、各リテンションＦＦ回路２８のＦＦ回路３６のデータＤａが、初期値Ｄｉであれば、パワーゲーティングを行なう。これにより、リテンション制御部９６を用いる電源遮断スイッチ部９２Ａは、パイプラインレジスタ８２の電力消費を効率的に抑制することができる。
【０１１３】
以上説明した第１から第４の実施形態は、開示の技術を限定するものではない。開示の技術においては、一つのリテンションＦＦ回路２８を記憶回路としても良く、ｎビット分のデータを記憶するレジスタ２６を記憶回路とすることを含む。開示の技術において、記憶回路は、データを保持する保持部、及び保持部のデータを一時的に格納して保持するリテンション部を対で備えることを含む。
【０１１４】
また、記憶回路としては、レジスタ２６、パイプラインレジスタ８２〜８８に限らず、電源電圧が遮断されることによりデータが消失するＲＡＭ（random  access  memory）等を含む。
【０１１５】
さらに、開示の技術は、上記実施の形態に記載に限らず、各部分が目的とする機能を含む形態であれば良い。また、本明細書に記載された全ての特許出願及び特許出願に開示される技術文献は、個々の文献、特許出願及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に、参照により取り込まれる。
【０１１６】
以上の実施形態に関し、更に、以下の付記を含む。
【０１１７】
（付記１）
データを保持する保持部、及び保持部のデータが一時的に格納されるリテンション部を含む記憶回路と、
電力消費抑制時に、前記記憶回路の前記保持部への電力の供給を停止する第１の給電遮断部と、
前記電力消費抑制時に、前記記憶回路の前記リテンション部への電力の供給を停止可能とする第２の給電遮断部と、
を含む半導体集積回路。
【０１１８】
（付記２）
前記第２の給電遮断部は、
前記リテンション部への電力の供給をオンオフするためのスイッチと、
前記保持部に保持されている前記データに応じて、前記スイッチを操作することにより前記リテンション部への電力の供給を停止するスイッチ制御部と、
を含む付記１記載の半導体集積回路。
【０１１９】
（付記３）
前記スイッチ制御部は、
前記保持部に保持されるデータの初期値を記憶する初期値記憶部と、
前記初期値と前記保持部に保持されているデータとを比較する比較部と、
を備え、前記比較部の比較結果に基づいて前記スイッチを制御する、付記２記載の半導体集積回路。
【０１２０】
（付記４）
前記スイッチ制御部は、前記保持部に保持されている前記データと前記初期値とが一致している場合に電力の供給を停止するように前記スイッチを制御する、付記３記載の半導体集積回路。
【０１２１】
（付記５）
前記スイッチは、複数の前記リテンション部の各々への電力の供給をオンオフし、
前記スイッチ制御部は、前記複数の前記リテンション部の各々に対応する前記保持部に保持されている前記データが当該保持部に対する前記初期値と一致する場合に、電力の供給を停止するように前記スイッチを制御する、
付記３又は付記４記載の半導体集積回路。
【０１２２】
（付記６）
前記記憶回路は、複数対の前記保持部及び前記リテンション部を含むレジスタである、付記５記載の半導体集積回路。
【０１２３】
（付記７）
前記スイッチ制御部は、前記保持部に保持された前記データが有効か否かを示すデータ情報に基づいて、前記スイッチを制御する、付記２記載の半導体集積回路。
【０１２４】
（付記８）
前記スイッチ制御部は、
前記保持部に保持されるデータの初期値を記憶する初期値記憶部と、
前記初期値と前記保持部に保持されているデータとを比較する比較部と、
を備え、前記比較部の比較結果及び前記データ情報に基づいて前記スイッチを制御する、付記７記載の半導体集積回路。
【０１２５】
（付記９）
前記スイッチ制御部は、前記保持部に保持されている前記データと前記初期値とが一致している場合に前記電源電圧の供給を停止するように前記スイッチを制御する、付記８記載の半導体集積回路。
【０１２６】
（付記１０）
前記スイッチ制御部は、前記データ情報が前記データの無効を示す場合に、電力の供給を停止するように前記スイッチを制御する、付記７から付記９の何れかに記載の半導体集積回路。
【０１２７】
（付記１１）
前記記憶回路は、複数対の前記保持部及び前記リテンション部を含むレジスタパイプラインレジスタである、付記７から付記１０の何れかに記載の半導体集積回路。
【０１２８】
（付記１２）
前記記憶回路は、前記保持部として設けられたフリップフロップ回路、及び前記リテンション部として設けられたラッチ回路を対で含む、付記１から付記１１の何れかに記載の半導体集積回路。
【０１２９】
（付記１３）
電力消費抑制時に、記憶回路に設けられてデータを保持する保持部への電力の供給を停止し、
前記記憶回路に設けられて前記保持部のデータが一時的に格納されるリテンション部への電力の供給を、前記保持部のデータに応じて停止する、
ことを含む電力消費抑制方法。
【０１３０】
（付記１４）
初期値記憶部に記憶される前記保持部に保持されるデータの初期値と、前記保持部に保持されているデータとを比較し、
前記初期値と前記保持部に保持されている前記データとが一致している場合に、前記リテンション部への電力の供給を停止する、
ことを含む付記１３記載の電力消費抑制方法。
【０１３１】
（付記１５）
複数の前記リテンション部の前記保持部に保持されている前記データの各々が、当該保持部に対する前記初期値と一致する場合に、前記複数の前記リテンション部の各々への電力の供給を停止する、
ことを含む付記１４記載の電力消費抑制方法。
【０１３２】
（付記１６）
前記保持部に保持された前記データが有効か否かを示すデータ情報に基づき、前記リテンション部への電力の供給を停止する、ことを含む付記１３から付記１５の何れかに記載の電力消費抑制方法。
【０１３３】
（付記１７）
前記データ情報が前記データの無効を示す場合に、前記リテンション部への電力の供給を停止する、ことを含む付記１６記載の電力消費抑制方法。
【符号の説明】
【０１３４】
１０    半導体集積回路
１２    ＣＰＵ
１２Ａ    ＣＰＵ
２０    電源制御部
２２（２２Ａ）    パワードメイン
２４（２４Ａ）、６２、９２、９２Ａ    電源遮断スイッチ部
２６    レジスタ
２８    リテンションＦＦ回路
３２    データ保持部
３４    リテンション部
３６    ＦＦ回路
３８    ラッチ回路
４０    電源遮断スイッチ
４２、６４    電源遮断スイッチ
４４、６６、９４、９６    リテンション制御部
４６    イネーブル制御部
４８、６８、９８    データ比較部
５０、５０Ａ    初期値記憶部
５２、５２Ａ    比較回路
５４、５４Ａ    信号保持部
８２〜８８    パイプラインレジスタ
９０    フラグ領域
【図１】
2014067184.tif 000003
【図２】
2014067184.tif 000004
【図３】
2014067184.tif 000005
【図４】
2014067184.tif 000006
【図５】
2014067184.tif 000007
【図６】
2014067184.tif 000008
【図７】
2014067184.tif 000009
【図８】
2014067184.tif 000010
【図９】
2014067184.tif 000011
【図１０】
2014067184.tif 000012
【図１１】
2014067184.tif 000013
【図１２】
2014067184.tif 000014
【図１３】
2014067184.tif 000015
【図１４】
2014067184.tif 000016
【図１５】
2014067184.tif 000017