(57)【特許請求の範囲】
【請求項１】
複数のソース記憶素子と、
複数のデスティネーション記憶素子と、
前記複数のソース記憶素子の間に接続された複数のパワーゲーティングされたゲートであって、前記デスティネーション記憶素子へ供給する複数のパワーゲーティングされたゲートと、
パワー供給ノードと、前記パワーゲーティングされたゲートとの間に直列に接続された１つ以上のパワーゲートであって、デアサートされた、スリープ状態を示す制御信号に応じて、前記パワーゲーティングされたゲートを通る電流フローを低減し、アサートされた、ウェイク状態を示す制御信号に応じて、前記パワーゲーティングされたゲートを通る電流フローを可能にする１つ以上のパワーゲートと、
１つ以上の前記ソース記憶素子をクロッキング可能にする１つ以上のソースクロックイネーブル信号を受信し、少なくとも１つのデスティネーションクロックイネーブル信号を受信するように接続された制御ロジックであって、前記ソースクロックイネーブル信号の何れかのアサーションに応じて、前記制御信号が前記ウェイク状態を示すように構成されている、制御ロジックと、を備え、
前記制御ロジックは、前記１つ以上のソースクロックイネーブル信号のすべてがデアサートされ、且つ、前記デスティネーションクロックイネーブル信号がアサートされた後にのみ、前記制御信号が前記スリープ状態を示すように構成されており、これによって、前記パワーゲーティングされたゲートにより供給された値を処理するために、前記デスティネーション記憶素子がクロックされるのを可能にする、
装置。
【請求項２】
前記制御ロジックは状態機械を含み、
状態機械は、アサートされた前記ソースクロックイネーブル信号の何れかに応じて、新たなソースイネーブル制御信号を、前記１つ以上のソースクロックイネーブル信号が有効にされていることを示す前記状態機械の第１の状態にアサートし、前記ソース記憶素子の前記ソースクロックイネーブル信号のすべてがデアサートされ、且つ、前記少なくとも１つのデスティネーションクロックイネーブル信号がアサートされているのに応じて、前記新たなソースイネーブルを前記状態機械の第２の状態にデアサートし、前記状態機械の前記第２の状態に移行した後にのみ、前記パワーゲートのための前記制御信号をデアサートする、請求項１に記載の装置。
【請求項３】
第１のデスティネーションクロックイネーブル信号を前記新たなソースイネーブル信号と組み合わせて、前記デスティネーションクロックイネーブル信号を生成するためのロジックゲートを備える、請求項２に記載の装置。
【請求項４】
前記制御ロジックは、デスティネーション記憶素子のためのデスティネーションクロックイネーブル信号を、前記１つ以上のソースクロックイネーブル信号がアサートされた後の少なくとも１クロックサイクルの間遮断することによって、パワーゲーティングされたロジックが完全に充電されるまでデスティネーション記憶素子がクロックされないことを確保する、請求項１に記載の装置。
【請求項５】
前記１つ以上のパワーゲートは、前記パワーゲーティングされたゲートとグランドとの間において直列の１つ以上のＮＭＯＳトランジスタを含む、請求項１に記載の装置。
【請求項６】
前記１つ以上のパワーゲートは、前記パワーゲーティングされたゲートと電源電圧との間において直列の１つ以上のＰＭＯＳトランジスタを含む、請求項１に記載の装置。
【請求項７】
前記制御ロジックは、遮断信号を供給して、前記デスティネーション記憶素子のクロッキングを、前記ソース記憶素子がクロックされた後まで遮断するように構成されている、請求項１に記載の装置。
【請求項８】
前記遮断信号は、前記デスティネーション記憶素子のクロッキングを有効にするために、第１のデスティネーションクロックイネーブル信号と論理的に組み合わされている、請求項７に記載の装置。
【請求項９】
前記ソース記憶素子と前記デスティネーション記憶素子との間に接続された少なくとも１つのゲートであって、前記ソース記憶素子に対してより近い位置に存在する少なくとも１つのゲートをさらに備え、
前記少なくとも１つのゲートは、前記デスティネーション記憶素子のみに供給する出力信号を有し、前記ソース記憶素子と前記デスティネーション記憶素子との間の他のゲートがパワーゲーティングされるのに対し、前記少なくとも１つのゲートは、パワーゲーティングから除外されている、請求項１に記載の装置。
【請求項１０】
制御信号にしたがって１つ以上のパワーゲートを制御することによって、１つ以上のソース記憶素子と、１つ以上のデスティネーション記憶素子との間に接続された複数のパワーゲーティングされたゲートにおける電流フローを低減するステップと、
前記１つ以上のソース記憶素子のクロッキングを有効にする１つ以上のソースイネーブル信号を受信し、前記１つ以上のソースイネーブル信号の何れかのアサーションに応じて、前記制御信号が前記１つ以上のパワーゲートにウェイク状態を示すようにするステップと、
デスティネーションクロックイネーブル信号を受信し、第１及び第２の条件が真であるのに応じて、前記制御信号にスリープ状態を示させるステップと、を含み、
前記第１の条件は、前記１つ以上のソースイネーブル信号のすべてがデアサートされるということであり、前記第２の条件は、前記デスティネーションクロックイネーブル信号がアサートされているということであり、これによって、前記デスティネーション記憶素子がクロックされて、前記パワーゲーティングされたゲートによって供給された入力を記憶するのを可能にする、
方法。
【請求項１１】
前記１つ以上のソースイネーブル信号がアサートされるのに応じて、状態機械の第１の状態に移行し、新たなソースイネーブル制御信号を、前記状態機械の前記第１の状態にアサートするステップと、
前記ソース記憶素子のすべての前記ソースイネーブル信号がデアサートされ、且つ、少なくとも１つの前記デスティネーションクロックイネーブル信号がアサートされるのに応じて、第２の状態に移行し、前記新たなソースイネーブルを、前記状態機械の前記第２の状態にデアサートするステップと、を含む、
請求項１０に記載の方法。
【請求項１２】
前記デスティネーションクロックイネーブル信号を生成するために、第１のデスティネーションクロックイネーブル信号を前記新たなソースイネーブル信号と論理的に組み合わせるステップをさらに含む、
請求項１１に記載の方法。
【請求項１３】
前記パワーゲーティングされたゲートとグランドとの間において直列の１つ以上のＮＭＯＳトランジスタに前記制御信号を供給するステップであって、前記１つ以上のパワーゲートは前記ＮＭＯＳトランジスタで構成されているステップをさらに含む、
請求項１０に記載の方法。
【請求項１４】
前記パワーゲーティングされたゲートと電源電圧との間において直列の１つ以上のＰＭＯＳトランジスタに前記制御信号を供給するステップであって、前記１つ以上のパワーゲートは前記ＰＭＯＳトランジスタで構成されているステップをさらに含む、
請求項１０に記載の方法。
【請求項１５】
遮断信号を供給して、前記デスティネーション記憶素子のクロッキングを、前記ソース記憶素子がクロックされた後まで遮断するステップをさらに含む、
請求項１０に記載の方法。
【請求項１６】
前記遮断信号を第１のデスティネーションクロックイネーブル信号と組み合わせて、前記デスティネーションクロックイネーブル信号を生成するステップをさらに含む、
請求項１５に記載の方法。
【請求項１７】
集積回路のコンピュータ可読表現を記憶する有形のコンピュータ可読媒体であって、前記コンピュータ可読表現は、
複数のソース記憶素子と、
複数のデスティネーション記憶素子と、
前記複数のソース記憶素子の間に接続された複数のパワーゲーティングされたゲートであって、前記デスティネーション記憶素子へ供給する複数のパワーゲーティングされたゲートと、
パワー供給ノードと、前記パワーゲーティングされたゲートとの間に直列に接続された１つ以上のパワーゲートであって、デアサートされた、スリープ状態を示す制御信号に応じて、前記パワーゲーティングされたゲートを通る電流フローを低減し、アサートされた、ウェイク状態を示す制御信号に応じて、前記パワーゲーティングされたゲートを通る電流フローを可能にする１つ以上のパワーゲートと、
１つ以上の前記ソース記憶素子をクロッキング可能にする１つ以上のソースクロックイネーブル信号を受信し、１つ以上のデスティネーションクロックイネーブル信号を受信するように接続された制御ロジックであって、前記ソースクロックイネーブル信号の何れかのアサーションに応じて、前記制御信号が前記ウェイク状態を示すように構成されている、制御ロジックと、を備え、
前記制御ロジックは、前記１つ以上のソースクロックイネーブル信号のすべてがデアサートされ、且つ、前記デスティネーションクロックイネーブル信号がアサートされた後にのみ、前記制御信号が前記スリープ状態を示すように構成されており、これによって、前記パワーゲーティングされたゲートにより供給された値を処理するために、前記デスティネーション記憶素子がクロックされるのを可能にする、
という表現を含む、
コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路における省電力に関し、より具体的には、ランタイム中の漏洩電流の低減に関する。
【背景技術】
【０００２】
集積回路における電力消費は、アクティブ状態でスイッチングしている回路と、アイドル状態の回路との両方に起因し得る。回路がアイドル状態の場合であっても、トランジスタからの漏洩電流は、望ましくない電力消費をもたらす。省電力に対する従来の解決方法では、長期間アイドル状態にある規模の大きいアーキテクチャ機構を特定し、使用されていない回路機構に対して供給される電圧と、供給されるクロック信号との周波数の両方、又は何れか一方を低減することによって、特定した回路に省電力機能を実装している。例えば、マルチコアプロセッサでは、例えば入出力ブロックなどのその他の機能ブロックをアクティブ状態に維持しながら、１つ以上のコアが、供給される周波数及び／又は電圧を低減することによって、より低い消費電力状態に置かれる場合がある。しかしながら、特に、例えば携帯機器、ラップトップ及びタブレットなどのバッテリ駆動式装置においては、省電力のためのさらなる方法を見出すことによって、電池の寿命を延ばし、熱の発生を低減し、冷却要求を緩和することが望ましい。デスクトップやサーバシステムでも、電力消費を低減することは、熱の発生の低減、電力使用の低減によるコスト節減及び冷却要求の低減につながる。省電力の問題は、集積回路及びシステム設計の重要な側面であり続ける。
【発明の概要】
【０００３】
集積回路の小さい機構に焦点を当てることにより、さらなる省電力が達成される。
【課題を解決するための手段】
【０００４】
一実施形態では、ソース記憶素子とデスティネーション記憶素子との間に接続された複数のゲートにおける漏洩電流を減らす方法を提供する。本方法は、１つ以上のソースクロックイネーブル信号の何れかのアサーションに応じて、複数のゲートをウェイク状態にして、電流フローを可能にするステップを含む。複数のゲートは、スリープ条件に応じてスリープ状態にされており、電流フローを抑制して複数のゲートの漏洩電流を低減する。スリープ条件は、デスティネーションクロックイネーブル信号のアサーションを含む。
【０００５】
一実施形態では、スリープ条件は、１つ以上のソースクロックイネーブル信号のすべてがデアサートされたことを含む。
【０００６】
一実施形態では、本方法は、第１の値の制御信号を１つ以上のパワーゲートに供給することにより、複数のゲートをウェイク状態にするステップと、第２の値の制御信号を前記１つ以上のパワーゲートに供給することにより、前記複数のゲートをスリープ状態にするステップとを含む。
【０００７】
他の実施形態では、装置は、複数のソース記憶素子と、複数のデスティネーション記憶素子とを含む。複数のパワーゲーティングされたゲートは、ソース記憶素子とデスティネーション記憶素子との間に接続されており、デスティネーション記憶素子への供給を行う。１つ以上のパワーゲートは、パワー供給ノードと、パワーゲーティングされたゲートとの間に直列に接続されている。パワーゲートは、デアサートされた、スリープ状態を示す制御信号に応じて、パワーゲーティングされたゲートを通る電流フローを低減し、アサートされた、ウェイク状態を示す制御信号に応じて、パワーゲーティングされたゲートを通る電流フローを可能にする。制御ロジックは、１つ以上のソース記憶素子をクロッキング可能にする１つ以上のソースクロックイネーブル信号を受信するように接続される。また、制御ロジックは、少なくとも１つのデスティネーションクロックイネーブル信号を受信する。制御ロジックは、何れかのソースクロックイネーブル信号のアサーションに応じて、制御信号がウェイク状態を示すようになっている。また、制御ロジックは、１つ以上のソースクロックイネーブル信号のすべてがデアサートされ、且つ、少なくとも１つのデスティネーションクロックイネーブル信号がアサートされた後にのみ、制御信号がスリープ状態を示すように構成されており、これによって、デスティネーション記憶素子がクロックされて、パワーゲーティングされたゲートによって供給された値を処理するのを可能にする。
【０００８】
一実施形態では、制御ロジックは、状態機械を含み、状態機械が、アサートされたソースイネーブルの何れかに応じて、新たなソースイネーブル制御信号を、１つ以上のソースイネーブルがアサートされていることを示す状態機械の第１の状態にアサートし、ソース記憶素子のイネーブルのすべてがデアサートされ、且つ、少なくとも１つのデスティネーションクロックイネーブル信号が有効にされているのに応じて、新たなソースイネーブルを、状態機械の第２の状態にデアサートし、状態機械の第２の状態に移行するのに応じて、制御信号をデアサートする。
【０００９】
一実施形態では、装置は、ロジックゲートを含み、第１のデスティネーションクロックイネーブル信号を新たなソースイネーブル信号と組み合わせて、デスティネーションクロックイネーブル信号を生成する。
【００１０】
一実施形態では、制御ロジックは、デスティネーション記憶素子のためのデスティネーションクロックイネーブル信号を、１つ以上のソースイネーブル信号がアサートされた後の少なくとも１クロックサイクルの間遮断することによって、パワーゲーティングされたロジックが完全に充電されるまでデスティネーション記憶素子がクロックされないことを確保する。
【００１１】
一実施形態では、１つ以上のパワーゲートは、パワーゲーティングされたゲートと、グランドとの間において直列の１つ以上のＮＭＯＳトランジスタを含む。
【００１２】
一実施形態では、１つ以上のパワーゲートは、パワーゲーティングされたゲートと、電源電圧との間において直列の１つ以上のＰＭＯＳトランジスタを含む。
【００１３】
一実施形態では、制御ロジックは、遮断信号を供給して、ソースフリップフロップがクロックされた後までデスティネーションフリップフロップのクロッキングを遮断するように構成されている。一実施形態では、遮断信号は、デスティネーションフリップフロップのクロッキングを有効にするのに用いられるデスティネーションクロックイネーブル信号と論理的に組み合わされている。
【００１４】
一実施形態では、装置は、ソース記憶素子とデスティネーション記憶素子との間に接続された少なくとも１つのゲートであって、ソース記憶素子の近くに位置する少なくとも１つのゲートを含み、少なくとも１つのゲートは、デスティネーション記憶素子のみに供給する出力信号を有し、ソース記憶素子とデスティネーション記憶素子との間の他のゲートがパワーゲーティングされる一方で、パワーゲーティングから除外されている。
【００１５】
他の実施形態では、制御信号を用いて１つ以上のパワーゲートを制御することによって、１つ以上のソース記憶素子と１つ以上のデスティネーション記憶素子との間に接続された、複数のパワーゲーティングされたゲートにおける電流フローを制御するステップを含む方法が提供される。１つ以上のソース記憶素子のクロッキングを有効にする１つ以上のソースイネーブル信号は、受信され、１つ以上のソースイネーブル信号の何れかのアサーションに応じて、制御信号が、１つ以上のパワーゲートにウェイク状態を示すようにし、これによって、複数のパワーゲーティングされたゲートを通る電流フローを可能にする。制御信号は、第１及び第２の条件が真であるのに応じてスリープ状態を示し、第１の条件は、１つ以上のソースクロックイネーブル信号のすべてがデアサートされることであって、第２の条件は、デスティネーションクロックイネーブル信号がアサートされていることであって、これによって、デスティネーション記憶素子がクロックされて、パワーゲーティングされたゲートによって供給された値を処理するのを可能にし、スリープ状態は、複数のパワーゲーティングされたゲートの電流フローを阻む。
【００１６】
本方法は、１つ以上のソースイネーブルがアサートされるのに応じて、状態機械の第１の状態に移行し、新たなソースイネーブル制御信号を、状態機械の第１の状態にアサートするステップと、ソース記憶素子のすべてのソースイネーブルがデアサートされ、且つ、少なくとも１つのデスティネーションクロックイネーブル信号がアサートされるのに応じて、第２の状態に移行し、新たなソースイネーブル制御信号を、状態機械の第２の状態にデアサートするステップとをさらに含んでもよい。
【００１７】
本方法は、第１のデスティネーションクロックイネーブル信号を、新たなソースイネーブル制御信号と論理的に組み合わせて、デスティネーションクロックイネーブル信号を生成するステップをさらに含んでもよい。
【００１８】
本方法は、制御信号を、パワーゲーティングされたゲートと、グランドとの間で直列の１つ以上のＮＭＯＳトランジスタに供給するステップをさらに含み、１つ以上のパワーゲートは、ＮＭＯＳトランジスタから構成されていてもよい。
【００１９】
本方法は、制御信号を、パワーゲーティングされたゲートと、電源電圧との間で直列の１つ以上のＰＭＯＳトランジスタに供給するステップをさらに含み、１つ以上のパワーゲートは、ＰＭＯＳトランジスタから構成されていてもよい。
【００２０】
本方法は、遮断信号を供給して、ソース記憶素子がクロックされた後までデスティネーション記憶素子のクロッキングを遮断するステップをさらに含んでもよい。
【００２１】
本方法は、遮断信号を、第１のデスティネーションクロックイネーブル信号と組み合わせて、デスティネーションクロックイネーブル信号を生成するステップをさらに含んでもよい。
【００２２】
添付の図面を参照することにより、当業者には、本発明がより良く理解され、その無数の目的、特徴及び利点が明らかにされる。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施形態を用いるのに適する集積回路のハイレベル図である。
【図２】本発明の一実施形態によるパワーゲーティングロジックゲートを示すハイレベル図である。
【図３】図２の実施形態と関連するタイミングダイアグラムである。
【図４Ａ】例示的なパワーゲーティング手法を示す図である。
【図４Ｂ】追加のパワーゲートを用いる、例示的なパワーゲーティング手法を示す図である。
【図４Ｃ】ゲートをパワーゲーティングされないようにすることによって、タイミング制約が緩和される、例示的なパワーゲーティング手法を示すハイレベル図である。
【図５】構成を示す図である。ここでは、グループＡのゲート及びグループＢのゲートがパワーゲーティングされており、グループＡＢのゲートがパワーゲーティングされていない。
【図６】論理カバレッジが図５の構成を上回っている構成を示す図である。
【図７】図５の構成と比べて論理カバレッジが改善され、図６の構成と比べて省電力が改善されている、複数のグループのための他の構成を示す図である。
【発明を実施するための形態】
【００２４】
異なる図面において同じまたは類似の参照記号が使用される場合、同じまたは類似の項目を示す。
【００２５】
ゲートのグループをパワーゲーティングすることは、ゲートのトランジスタの漏洩電流を低減することによって、ランタイム動作中のさらなる省電力を達成する。１つの実施形態では、パワーゲートは、パワーゲーティングされたゲートと、その電源ＶＤＤ及び／又はＧＮＤとの間で直列のトランジスタ（若しくは多数の並列のトランジスタ）によって形成されている。次いで、パワーゲートは、ゲートが使用されていない場合に漏洩電流が低減され得るようにゲートをＶＤＤ及び／又はＧＮＤから切り離すために、選択的に制御される。
【００２６】
図１を参照すると、ハイレベルブロック図は、例えばマイクロプロセッサなどの集積回路１０１を示している。集積回路１０１は、例えば処理コアなどの複数のマクロアーキテクチャ機構１０２を含み、これらの電力は、各マクロアーキテクチャ機構１０２を、スリープ状態から完全に電力を供給された状態まで、様々なレベルの性能を提供するパワー状態に置くことによって制御され得る。加えて、１つ以上のマクロアーキテクチャ機構は、ランタイム中、完全な（又は低減された）動作状態中での電力消費を低減するように制御し得るゲートのグループ１０３を有する。
【００２７】
図２は、電力消費を減らすための、ランタイム中でのゲートのグループの制御方法の例示的な実施形態を示す。図２を参照すると、ｎＦＥＴパワーゲート２０１は、パワーゲーティングされたゲート２０３とＧＮＤとの間で直列に設けられている。パワーゲーティングされたゲート２０３は、図１のゲートのグループ１０３に対応している。パワーゲーティングされたゲートは、一般に、ＡＮＤ、ＯＲ、ＮＯＲ、ＮＡＮＤ及び類似のロジックゲートであり、パワーゲーティングされたゲート２０３として図２に表されている。ゲート２０３がアイドル状態の場合には、パワーゲート２０１はオフにされて、ゲート間電圧を低減する。これによって、ゲートからの漏洩電流を低減することができる。また、ｎＦＥＴ２０１を用いる代わりに、ｐＦＥＴ２０２をＶＤＤと直列に接続するように用いることが可能であり、オフにされるとゲート間電圧を低減し、これによって漏洩電流を低減することができる。
【００２８】
ランタイムパワーゲーティングに関わる重要な問題は、ゲートをスリープ状態から電力が完全に供給された状態まで移行させるのに十分な時間を設けること、すなわち、ウェイク状態になるのに十分な時間を設けることである。換言すれば、パワーゲート２０１がオンにされた場合には、パワーゲート２０１（又は２０２）がオンになるのに応じて、パワーゲーティングされたゲートが、完全に電力供給された状態になるように完全に充電されるまでに時間がかかる。１つの手法は、ゲートが完全に充電されるのを確実にするために、設計において十分なタイミングマージン、例えばタイミング設計においてガードバンド、を含むことである。しかしながら、このようなタイミングペナルティは、マイクロプロセッサなどの高性能集積回路では一般に許容されない。
【００２９】
制御ロジック２０５は、ソースフリップフロップ２０７のクロックゲートイネーブル２２１，２２３を監視して、パワーゲーティングされたゲートをウェイク状態にする場合と、スリープ状態にする場合とを判定する。本明細書において詳述するように、ＡＮＤゲート２０８は、制御ロジック２０５の一部とみなされてよく、デスティネーションフリップフロップのクロッキングの制御を助けることに留意されたい。フリップフロップが図２に示される一方で、例えばラッチなどの任意のソース及びデスティネーション記憶素子が、図２のフリップフロップの代わり又はこれに追加して用いられてもよいことに留意されたい。
【００３０】
図２は、例示的な実施形態の基本的な動作及び構成を示す。選ばれた一群のデスティネーションフリップフロップ２０９は、パワーゲーティングされ得る一群のゲート２０３を判定する。換言すると、ゲートの出力経路のすべてが、デスティネーションフリップフロップ２０９のうち１つだけに終端する場合には、ゲートがパワーゲーティングされ得る。デスティネーションフリップフロップ以外の場所に行く出力経路を有するゲートは、パワーゲーティングされない。例えば、インバータ２１５は、デスティネーションフリップフロップ２０９以外のどこかへ行く出力経路２１７を有している。したがって、インバータ２１５は、パワーゲーティングされたゲート２０３の一部には含まれない。制御ロジック２０５は、パワーゲートを制御し、クロックゲートイネーブルを監視し、パワーゲーティングされたゲートがウェイク状態になる場合及びスリープ状態になる場合を判定する状態機械を含む。
【００３１】
スリープの初期状態を考える。図２に示された初期のスリープ状態では、デスティネーションフリップフロップ２０９はクロッキングから遮断されており、パワーゲーティングされたゲート２０３はスリープ状態にある。スリープ状態という語は、漏洩電流を低減するために、パワーゲート２０１（又は２０２）がオフにされていることを指す。スリープ状態では、制御ロジック２０５の状態機械は、ＷＡＫＥ信号がデアサートされる第１の状態にある。図３は、図２の回路と関連するタイミングダイアグラムを示す。
【００３２】
図３を参照し、クロック信号線２２４上のクロック信号ＣＬＫ３０１を想定する。ラッチ２２６，２２８は、イネーブル信号ＥＮＡ１  ２２１，ＥＮＡ２  ２２３を、ソースフリップフロップ２０７用のクロック信号のために供給するのに用いられる。イネーブル信号は、ＡＮＤゲート２３０，２３２において、クロック信号との論理積をとられる。ゲート２０３は、ソースフリップフロップクロックゲートイネーブル２２１又は２２３のアサーションに応じて、ＯＲゲート２２５，２２７，２２９による遅延の後にウェイク状態になる（３０２に示す）。状態機械フリップフロップ２３１は、３０４における次のサイクルの立ち上がりエッジでその出力をアサートし、このようにして、第２の状態に変わる。フリップフロップ２３１の出力のアサーションは、遅延の後に、３０６における、ＡＮＤゲート２０８の出力でのＤＥＳＴ＿ＥＮＡ＿３信号のアサーションとなる。次いで、ラッチ２１０及びＡＮＤゲート２１２における遅延の後に、デスティネーションフリップフロップ２０９がクロックされる。デスティネーションフリップフロップのためのイネーブル（ＥＮＡ３）は、このときにアサートされることが仮定される。状態機械を用いると、３０２におけるソースイネーブルのアサートと、３０６におけるデスティネーションイネーブルのアサートとの間には、少なくとも１サイクルの遅延があり、デスティネーションフリップフロップクロックが遮断解除されてクロックされる前に、パワーゲーティングされたゲートが完全に充電するための時間を取ることができる。
【００３３】
パワーゲーティングされたゲート２０３は、デスティネーションフリップフロップがクロックされるまで、制御ロジック２０５によってウェイク状態に保たれる。３０６においてＤＥＳＴ＿ＥＮＡ＿３  ２３６がアサートされ、ソースイネーブル２２１，２２３がデアサートされた後に、デスティネーションフリップフロップがクロックされると、状態機械フリップフロップの出力は、３０８においてクロックの立ち上がりエッジをデアサートし、第１の状態に戻る。そして、３１０におけるＷＡＫＥ信号のデアサーションによって、パワーゲーティングされたゲートをスリープ状態にする。デスティネーションフリップフロップ２０９用のさらなるクロックは、ソースフリップフロップが再びクロックされるまで、ＡＮＤゲート２０８によって遮断される。当然のことながら、ソースフリップフロップが変化しなければ、デスティネーションフリップフロップは変化しない。遮断機能は、デスティネーションフリップフロップ入力が処理される前に全クロック周期を確保する。
【００３４】
一実施形態では、複数のデスティネーションイネーブルを有してもよい。この場合には、すべてのデスティネーションクロックイネーブル信号がアサートされるまで待機した後、パワーゲーティングされたゲートをスリープ状態にする必要がある。デスティネーションイネーブルは、様々なときに到達し得ることが考えられることから、当該信号は、フリップフロップに記憶された後に、すべてのビットが少なくとも一度アサートされ、ロジックに供給されてフリップフロップ２３１を介してスリープ状態にされる場合に、リセットされてもよい。一実施形態では、ビットは、エンコードされて、多数のフリップフロップ上に保存されてもよい。
【００３５】
図４Ａは、ソースフリップフロップ４０２とデスティネーションフリップフロップ４０４との間のパワーゲーティングされたゲート４０３が、単一のパワーゲート４０５に接続されている実施形態を示す。図４Ｂでは、複数のパワーゲート４０７，４０９が使用されている。多数のパワーゲーティングされたゲートが存在する場合には、パワーゲートへのＷＡＫＥの分配は、数段のバッファを取ることもある。図４Ｂは、ゲートを、クリティカルタイミングゲート（ＷＡＫＥ１に備わっている）と、非クリティカルタイミングゲート（ＷＡＫＥ２に備わる）とに分割することによって、タイミング要求を緩和し得る方法を示している。このようにして、パワーゲート４０７はＷＡＫＥ１を受信し、パワーゲート４０９はＷＡＫＥ２を受信する。ソースフリップフロップに時間的に最も近いゲートが、最も重要である。図４Ｂに示される実施形態では、クリティカルゲート用のパワーゲートは、ＷＡＫＥ２と比べて、バッファを使うことなく（又はわずかなバッファで）ＷＡＫＥ１を受信する。説明を容易にするために、ＷＡＫＥ２は、１つのバッファで生成されるように示され、ＷＡＫＥ１はバッファなしで生成されるように示されている。その他の多くのバッファは、具体的な実装及びウェイク信号の各々によって駆動されるパワーゲートの数に応じて必要とされることもある。
【００３６】
タイミング要求は積極的であるが、緩和し得る。ソースフリップフロップのイネーブルの論理和は、状態機械フリップフロップ２３１に供給する。しかしながら、フリップフロップ２３１用のクロックは、当該クロックがウェイク状態にするのではなく、スリープ状態にする機能を起動することから、遅延し得る。
【００３７】
第２のタイミング制約は、ゲートの使用時には、電力が完全に供給されていなければならないということであり、そうでないとタイミングが損なわれ得る。ゲートは、ソースフリップフロップ出力が遷移し得るときには、ウェイク状態にされていなければならない。このタイミング制約は、ソースフリップフロップの直後のゲートの段をパワーゲーティングしないことにより緩和し得る。図４Ｃを参照すると、ゲート４１１，４１５は、パワーゲーティングされず、又はパワーゲーティングされたゲート４１７に含まれておらず、制御信号ＷＡＫＥ用の追加的なタイミングマージンを提供して、パワーゲーティングされたロジックゲートをウェイク状態にする。図４Ｂ及び図４Ｃに示されるこれらのタイミング緩和技術の何れも、漏れを節減させる。図４Ｃに示されるように、設定要求は、パワーゲーティングの影響下にあるゲートの数がいくつであるかというカバレッジと引き換えにすることにより、緩和され得る。
【００３８】
本明細書で説明される動的なパワーゲーティング手法は、マイクロプロセッサの設計に適用できるが、回路設計一般に幅広く適用できる。本明細書における技術は一般にデジタル回路に適用し得ることから、本明細書で説明される動的なパワーゲーティングは高いカバレッジを達成でき、これは同様にさらなる省電力を意味する。タイミングの影響は控えめである。タイミングの影響は、クロックイネーブル経路におけるＡＮＤゲート２０８において論理積をとられたときから生じ、１つ以上のソースイネーブル信号に対する論理和ツリーからの追加的な負荷が存在する。従来の手法よりもクロックゲーティング効率が改善されるため、本明細書における動的なパワーゲーティングは、その漏れの節減への影響に関して自動的に改善される。
【００３９】
本明細書において説明されるパワーゲーティングは、漏れ電力が選択的且つ過渡的に低減されることから、パワーゲーティングされたドメイン内での低閾値電圧（ＬＶＴ）ゲート又は超低閾値電圧（ＵＬＶＴ）ゲートのより高頻度の利用につながり得る。動的モードパワーゲーティングは、性能とパワーのトレードオフを行うときに、漏れ電力を動的電力と同じ水準にする。
【００４０】
図２に記載された手法の追加的な利点は、デスティネーションフリップフロップのクロック上のＡＮＤゲート２０８によるクロック遮断機能のために、動的電力も低減される可能性があるということである。換言すると、デスティネーションクロックが制御ロジック２０５により遮断される場合には、さらに省電力になるということである。
【００４１】
これまで説明してきたように、パイプライン方式のパワーゲーティング（ＰＰＧ）は、ランタイム中の非アクティブ状態の回路の漏れを低減する。特定の実施形態では、元の省電力を維持しながらＰＰＧの論理カバレッジを拡大して、漏れの節減を高めることができる。
【００４２】
図５を参照して図示の構成を考える。ここでは、デスティネーションフリップフロップ５０１に供給するグループＡのゲートと、デスティネーションフリップフロップ５０３に供給するグループＢのゲートとがパワーゲーティングされている。グループＡＢのゲートはパワーゲーティングされていないが、これは、これらが２つ以上のデスティネーション、すなわち、グループＡデスティネーションフリップフロップおよびグループＢデスティネーションフリップフロップの両方で終端しているためである。グループＡＢゲートは、グループＡ又はグループＢのデスティネーションフロップがクロックされている場合には常にウェイク状態でなければならない。
【００４３】
他の重要な問題は、パワーゲーティングされたドメインの出力が、分離ゲートの無い状態で、完全に電力を供給されたゲートを駆動してはならないということである。結果は、クロスオーバー電流であり、信頼性の予測される妥協である。分離ゲートは、選択的に入力を無視するように構成されるゲートであり、これを制御するためにはフルレールの信号を要する。グループＡおよびグループＢのゲートでは、分離ゲートはデスティネーションフロップであり、分離制御手段はクロックである。分離ゲートをグループＡＢゲートの出力に加えることは、一般に適用されるならば、タイミングに影響を与える。
【００４４】
図６に示すように、論理カバレッジは、デスティネーションフリップフロップの複数の群を単一のデスティネーションフロップの群として組み合わせることにより拡大し得る。図６に示されるように、ゲートのグループＡ，Ｂは、より大きなグループＡＢに組み込まれている。図６の回路は、論理カバレッジを拡大するが、この手法の主要な問題は、静的及び動的省電力が実際に低減され得るということである。ここでは、グループＡゲートは、グループＡ及びグループＢのソースイネーブルの何れかによってもウェイク状態にされることから、元の構成よりもスリープ状態にされる頻度が下がる可能性がある。同様に、ＥＮＡ３Ａだけではなく、ＥＮＡ３Ａ又はＥＮＡ３ＢがアサートされるときにグループＡデスティネーションフロップがクロックされることから、動的電力が増加する可能性がある。同様の静的及び動的な不利益がグループＢゲートに当てはまる。
【００４５】
加えて、図６の手法には他に２つの問題がある。第１に、３つ以上のデスティネーションの群がある場合には、どのゲートのグループを組み合わせるべきか不明である。グループＣ，ＡＣ，ＢＣ，ＡＢＣゲートが存在する場合を考える。すべてのグループがグループＡＢＣに組み込まれる場合には、上述した省電力問題が悪化する。グループＡＢが形成される場合には、グループＡＣ，ＢＣ，ＡＢＣは（ロジックの重複なしに）論理カバレッジに含まれない。第２の問題は、グループが組み合わされるときに、レジスタ転送言語（ＲＴＬ）記述を書き換えて、ロジックを再構築しなければならないことである。
【００４６】
図７は、改善された論理カバレッジ及び省電力を提供する、パワーゲーティングされたグループを組み合わせるための例示的な手法を示す。図６の回路とは異なり、図７では、グループＡおよびグループＢゲートは、元の図５の構成にあるのと同じ頻度でパワーゲーティングされる。さらに、グループＡ及びグループＢデスティネーションフリップフロップは、元の構成にあるのと同じ頻度でクロックされる。したがって、図７では、グループＡＢゲートは、漏れの節減を向上させる。この手法では、グループＡ又はグループＢゲートがウェイク状態にされている場合には、グループＡＢゲートが常にウェイク状態にされる。グループＡパワーゲートを駆動するＡＮＤゲートの機能は、グループＡゲートがウェイク状態にされる前にグループＡＢゲートがウェイク状態にされていることを確保することであり、すなわち、論理積は、電力軽減のためにある。同じ原理は、グループＢパワーゲートを駆動するＡＮＤゲートに適用される。
【００４７】
図７で説明された手法は、いかなるグループの形成もその他のグループの形成を妨げないという別の利点がある。さらにグループＣ，ＡＣ，ＢＣ，ＡＢＣゲートが存在する場合には、これらのすべては、別個に類似のロジックを用いてパワーゲーティングされ得る。
【００４８】
１つの好ましい手法は、パワーゲートイネーブル経路にＡＮＤゲート遅延を加えることによって、タイミングマージンを低減することに留意されたい。さらに、組み合わせたグループが加えられる場合には、回路のレジスタ転送言語（ＲＴＬ）記述が更新されなければならない。しかし、図７の手法は、論理カバレッジを拡大し、動的な省電力を損ねることなくパイプライン方式のパワーゲーティングからの漏れの節減を増加し、すべてのグループの組み合わせに対して拡張可能である。
【００４９】
本発明の実施形態を説明するために回路及び物理的構造を概して仮定してきたが、現代の半導体設計及び製造において、物理的構造及び回路は、その後の設計、シミュレーション、試験又は製造段階での使用に適するコンピュータ可読記述形式で実施され得ることが良く認識されている。
【００５０】
例示的な構成において個別の部品として表された構造及び機能は、組み合わされた構造又は部品として実装されてもよい。本発明の様々な実施形態は、本明細書において説明したような回路、回路のシステム、関連の方法及びそのような回路、システム並びに方法のエンコーティングをそれ自体に備えるコンピュータ可読媒体（例えば、ＨＤＬ、Ｖｅｒｉｌｏｇ、ＧＤＳＩＩデータ）を含むように企図される。コンピュータ可読媒体は、有形のコンピュータ可読媒体、例えば、ディスク、テープ又はその他の磁気、光学若しくは電子記憶媒体を含む。回路、システム及び方法のエンコーティングをそれ自体に備えるコンピュータ可読媒体に加えて、コンピュータ可読媒体は、本発明を実装するために使用され得る命令及びデータを記憶してもよい。本明細書において説明された構造は、プロセッサ上で実行されるソフトウェアを用いて、ハードウェア上で実行されるファームウェアを用いて、又はソフトウェア、ファームウェア及びハードウェアの組み合わせによって実装されてもよい。
【００５１】
本明細書において説明された本発明の記述は、説明のためのものであり、以下の特許請求の範囲で説明されるような本発明の範囲を限定するように意図されない。本明細書において開示された実施形態のその他の変形及び変更は、以下の特許請求の範囲で説明されるような本発明の範囲から逸脱することなしに、本明細書において説明された記述に基づいてなされ得る。
【図１】
0005799167.tif 000002
【図２】
0005799167.tif 000003
【図３】
0005799167.tif 000004
【図４Ａ】
0005799167.tif 000005
【図４Ｂ】
0005799167.tif 000006
【図４Ｃ】
0005799167.tif 000007
【図５】
0005799167.tif 000008
【図６】
0005799167.tif 000009
【図７】
0005799167.tif 000010