(57)【特許請求の範囲】
【請求項１】
非アクティブ動作状態に入るべきか判断した後であって、前記非アクティブ動作状態に入る前に、１以上の実行ユニットに１以上のマイクロオペレーションシーケンスを実行させるステップを有する方法であって、
前記シーケンスは、前記１以上の実行ユニットの１以上の論理素子を、該１以上の論理素子における電力リークを減少させるための第１動作状態に移行させ、
前記１以上の論理素子は、初期的なパーキングシーケンスが対応する論理素子に印加されたときの前記論理素子の電力リークと閾値との比較及び前記初期的なパーキングシーケンスの制御可能性レベルの評価に少なくとも部分的に基づき前記１以上の論理素子に割り当てられた少なくとも１つのＬＬ（Ｌｏｗ−Ｌｅａｋａｇｅ）トランジスタを有する方法。
【請求項２】
請求項１記載の方法であって、
前記実行させるステップは、前記実行ユニットの１以上の論理素子を所定の論理状態にするよう前記シーケンスを前記実行ユニットに実行させるから構成されることを特徴とする方法。
【請求項３】
請求項２記載の方法であって、
前記実行させるステップは、前記実行ユニットの論理素子の少なくとも半分を所定の論理状態にするよう前記シーケンスを前記実行ユニットに実行させるから構成されることを特徴とする方法。
【請求項４】
請求項１記載の方法であって、
前記非アクティブ動作状態に入った後に、前記実行ユニットの１以上の論理素子を所定の論理状態に設定するステップを有することを特徴とする方法。
【請求項５】
請求項４記載の方法であって、
前記１以上の論理素子を設定するステップは、前記１以上の論理素子の入力に所定の値を設定することから構成されることを特徴とする方法。
【請求項６】
請求項４記載の方法であって、
前記非アクティブ動作状態から出る前に、前記１以上の論理素子を処理論理状態にスイッチするステップを有することを特徴とする方法。
【請求項７】
請求項１記載の方法であって、
前記非アクティブ動作状態に入る前に、１以上の制御処理が前記実行ユニットによって実行されることをクリアするステップを有することを特徴とする方法。
【請求項８】
プロセッサが非アクティブ動作状態に入るべきか判断し、前記非アクティブ動作状態に入るべきか判断した後であって、前記非アクティブ動作状態に入る前に、１以上の実行ユニットに１以上のマイクロオペレーションのシーケンスを実行させるコントローラを有する装置であって、
前記シーケンスは、前記１以上の実行ユニットの１以上の論理素子を、該１以上の論理素子における電力リークを減少させるための第１動作状態に移行させ、
前記１以上の論理素子は、初期的なパーキングシーケンスが対応する論理素子に印加されたときの前記論理素子の電力リークと閾値との比較及び前記初期的なパーキングシーケンスの制御可能性レベルの評価に少なくとも部分的に基づき前記１以上の論理素子に割り当てられた少なくとも１つのＬＬ（Ｌｏｗ−Ｌｅａｋａｇｅ）トランジスタを有する装置。
【請求項９】
請求項８記載の装置であって、
前記実行ユニットは、複数の論理素子を有し、
前記シーケンスは、前記複数の論理素子の１以上を所定の論理状態にするマイクロオペレーションのシーケンスから構成される、
ことを特徴とする装置。
【請求項１０】
請求項９記載の装置であって、
前記シーケンスは、前記論理素子の少なくとも半分を所定の論理状態にするマイクロオペレーションのシーケンスから構成されることを特徴とする装置。
【請求項１１】
請求項９記載の装置であって、さらに、
前記所定の論理状態における前記論理素子の電力リークレベルに基づき、前記論理素子の１以上に割り当てられる複数のＬＬ（Ｌｏｗ−Ｌｅａｋａｇｅ）トランジスタを有することを特徴とする装置。
【請求項１２】
請求項８記載の装置であって、さらに、
前記実行ユニットにクロック信号を提供し、前記非アクティブ動作状態に入った後に、前記実行ユニットの１以上の論理素子に所定の論理状態を維持させるコントロール信号をアサートするクロックを有することを特徴とする装置。
【請求項１３】
請求項１２記載の装置であって、
前記所定の論理状態にあるとき、前記１以上の論理素子の入力は、所定の値を有することを特徴とする装置。
【請求項１４】
請求項１２記載の装置であって、
前記クロックは、前記非アクティブ動作状態から出る前に、前記コントロール信号をデアサートすることが可能であることを特徴とする装置。
【請求項１５】
請求項９記載の装置であって、
前記実行ユニットに前記シーケンスを実行させた後に、前記コントローラは、１以上の制御処理が前記実行ユニットにより実行されることをクリアするクリア信号を生成可能であることを特徴とする装置。
【請求項１６】
当該プロセッサが非アクティブ動作状態に入るべきか判断し、前記非アクティブ動作状態に入るべきか判断した後であって、前記非アクティブ動作状態に入る前に、１以上の実行ユニットに１以上のマイクロオペレーションのシーケンスを実行させるコントローラを有するプロセッサと、
前記プロセッサにより処理されるデータを格納するメモリと、
から構成されるシステムであって、
前記シーケンスは、前記１以上の実行ユニットの１以上の論理素子を、該１以上の論理素子における電力リークを減少させるための第１動作状態に移行させ、
前記１以上の論理素子は、初期的なパーキングシーケンスが対応する論理素子に印加されたときの前記論理素子の電力リークと閾値との比較及び前記初期的なパーキングシーケンスの制御可能性レベルの評価に少なくとも部分的に基づき前記１以上の論理素子に割り当てられた少なくとも１つのＬＬ（Ｌｏｗ−Ｌｅａｋａｇｅ）トランジスタを有するシステム。
【請求項１７】
請求項１６記載のシステムであって、
前記実行ユニットは、複数の論理素子を有し、
前記シーケンスは、前記複数の論理素子の１以上を所定の論理状態にするマイクロオペレーションのシーケンスから構成される、
ことを特徴とするシステム。
【請求項１８】
請求項１７記載のシステムであって、
前記シーケンスは、前記論理素子の少なくとも半分を所定の論理状態にするマイクロオペレーションのシーケンスから構成されることを特徴とするシステム。
【請求項１９】
請求項１７記載のシステムであって、さらに、
前記所定の論理状態における前記論理素子の電力リークレベルに基づき、前記論理素子の１以上に割り当てられる複数のＬＬ（Ｌｏｗ−Ｌｅａｋａｇｅ）トランジスタを有することを特徴とするシステム。
【請求項２０】
請求項１６記載のシステムであって、さらに、
前記実行ユニットにクロック信号を提供し、前記非アクティブ動作状態に入った後に、前記実行ユニットの１以上の論理素子に所定の論理状態を維持させるコントロール信号をアサートするクロックを有することを特徴とするシステム。
【請求項２１】
請求項２０記載のシステムであって、
前記所定の論理状態にあるとき、前記１以上の論理素子の入力は、所定の値を有することを特徴とするシステム。
【請求項２２】
請求項２０記載のシステムであって、
前記クロックは、前記非アクティブ動作状態から出る前に、前記コントロール信号をデアサートすることが可能であることを特徴とするシステム。
【請求項２３】
請求項１７記載のシステムであって、
前記実行ユニットに前記シーケンスを実行させた後に、前記コントローラは、１以上の制御処理が前記実行ユニットにより実行されることをクリアするクリア信号を生成可能であることを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にプロセッサに関し、より詳細には、非アクティブ動作状態を有するプロセッサ及びその方法に関する。
【背景技術】
【０００２】
プロセッサは、例えば、処理の実行中などにはアクティブな動作状態にある一方、アクティブな動作状態時にプロセッサによって消費される電力と比較してより少ない電力しか消費しない非アクティブな動作状態もある。
【０００３】
非アクティブ動作状態におけるプロセッサにより消費される電力の少なくとも一部は、プロセッサの１以上の論理素子、例えば、論理素子の組み合わせ、論理素子シーケンスなどによる電力リークによるものであるかもしれない。例えば、論理素子は、例えば、トランジスタソースとトランジスタドレインとの間の電界などにより、非アクティブ又は「オフ」動作状態にあるときでさえ電力を消費する可能性のある複数のトランジスタを有している。プロセッサによって消費される電力量は、プロセッサが比較的長期間非アクティブ状態にある場合、増大するかもしれない。いくつかの事例、特にバッテリー電源により動作するものでは、過大な電力がプロセッサにより消費されることは望ましくないかもしれない。さらに、過大な電力消費は、電子システムによる熱の発生を引き起こす可能性があり、望ましくない（ラップトップコンピュータなどにおいて）。
【０００４】
非アクティブ状態中のプロセッサにおける電力消費を管理する従来技術は、プロセッサの１以上のトランジスタに印加される閾値電圧の増大を含むものである。しかしながら、閾値電圧は電力リークを低減するかもしれないが、それはパフォーマンスを低減する望ましくない効果を有するかもしれない。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の課題は、上記問題点に鑑み、効果的な非アクティブ動作状態を有するプロセッサ及びその方法を提供することである。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明は、非アクティブ動作状態に入るべきか判断した後であって、前記非アクティブ動作状態に入る前に、１以上の実行ユニットに１以上のマイクロオペレーションシーケンスを実行させるステップを有することを特徴とする方法を提供する。
【０００７】
また、本発明は、プロセッサが非アクティブ動作状態に入るべきか判断し、前記非アクティブ動作状態に入るべきか判断した後であって、前記非アクティブ動作状態に入る前に、１以上の実行ユニットに１以上のマイクロオペレーションのシーケンスを実行させるコントローラを有することを特徴とする装置を提供する。
【０００８】
さらに、本発明は、当該プロセッサが非アクティブ動作状態に入るべきか判断し、前記非アクティブ動作状態に入るべきか判断した後であって、前記非アクティブ動作状態に入る前に、１以上の実行ユニットに１以上のマイクロオペレーションのシーケンスを実行させるコントローラを有するプロセッサと、前記プロセッサにより処理されるデータを格納するメモリとから構成されることを特徴とするシステムを提供する。
【発明の効果】
【０００９】
本発明によると、効果的な非アクティブ動作状態を有するプロセッサ及びその方法を提供することができる。
【発明を実施するための最良の形態】
【００１０】
以下の詳細な説明において、本発明の実施例の完全なる理解を提供するため、多数の具体的詳細が提供される。しかしながら、本発明の実施例がこれらの具体的詳細なく実現可能であるということは、当業者により理解されるであろう。また、本発明の実施例を不明りょうにしないように、周知の方法、手続、構成要素及び回路は、詳細には説明されないかもしれない。
【００１１】
特段の記載がない場合、以下の説明から明らかなように、本明細書を通じて、「処理」、「計算」、「演算」、「決定」などの各用語の使用は、計算システムのレジスタ及び／又はメモリ内の電子的などの物理量として表されるデータを、計算システムのメモリ、レジスタ、他の情報ストレージ、送信又は表示装置内の物理量として同様に表される他のデータに変換及び／又は操作するコンピュータ、計算システム又は同様の電子計算装置のアクション及び／又はプロセスを表す。さらに、「複数の」という用語は、本明細書を通じて、２以上の構成要素、装置、要素、パラメータなどを示すのに利用されるかもしれない。
【００１２】
本発明の実施例は、例えば、マシーンにより実行される場合（例えば、プロセッサ及び／又は他の適切なマシーンなど）、マシーンに本発明の実施例に従って方法及び／又は処理を実行させる命令又は命令セットを格納するマシーン可読媒体又は物を利用して実現されるかもしれない。このようなマシーンは、例えば、何れか適切な処理システム、計算システム、計算装置、処理装置、計算システム、処理システム、コンピュータ、プロセッサなどを含むかもしれず、何れか適切なハードウェアとソフトウェアの組み合わせを用いて実現されるかもしれない。マシーン可読媒体又は物は、例えば、何れか適切なタイプのメモリユニット、記憶装置、メモリ物品、記憶媒体、ストレージ装置、ストレージ物品、ストレージ媒体、ストレージユニット、メモリ、着脱可能又は着脱不可な媒体、イレーサブル又は非イレーサブル媒体、書き込み可能又は書き換え可能媒体、デジタル又はアナログ媒体、ハードディスク、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ（ＣＤ−Ｒｅｃｏｒｄａｂｌｅ）、ＣＤ−ＲＷ（ＣＤ−Ｒｅｗｒｉｔａｂｌｅ）、光ディスク、磁気媒体、各種タイプのＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、テープ、カセットなどを含むかもしれない。命令は、ソースコード、コンパイルコード、インタープリットコード、実行可能コード、スタティックコード、ダイナミックコードなど何れか適切なタイプのコードを含むかもしれず、Ｃ、Ｃ＋＋、Ｊａｖａ（登録商標）、ＢＡＳＩＣ、Ｐａｓｃａｌ、Ｆｏｒｔｒａｎ、Ｃｏｂｏｌ、アセンブリ言語、マシーンコードなどの何れか適切な高レベル、低レベル、オブジェクト指向、視覚的、コンパイル及び／又はインタープリットプログラムニング言語を用いて実現されるかもしれない。
【００１３】
図１は、本発明の一実施例による計算システム１００を概略的に示す。
【００１４】
本発明の実施例によると、システム１００は、プロセッサ１０４を有する、プロセッサ１０４は、例えば、中央処理ユニット（ＣＰＵ）、デジタル信号プロセッサ（ＤＳＰ）、マイクロプロセッサ、ホストプロセッサ、複数のプロセッサ、コントローラ、チップ、マイクロチップ又は他の何れか適切な多目的又は特定用途プロセッサ又はコントローラを含むかもしれない。
【００１５】
本発明の実施例によると、システム１００はまた、「フロントサイドバス（ＦＳＢ）」１３２などの共有バスを有するかもしれない。例えば、ＦＳＢ１３２は、プロセッサ１０４と計算システム１００の他の装置との間で情報を搬送可能なＣＰＵデータバスであってもよい。本発明の実施例によると、ＦＳＢ１３２は、プロセッサ１０４とチップセット（ＣＳ）１３３との間を接続するかもしれない。本発明はこれに限定されるものではないが、チップセット１３３は、「ノースブリッジ」、「サウスブリッジ」、「ファームウェアハブ」などの１以上のマザーボードチップを有するかもしれない。チップセット１３３は、計算システム１００のさらなるバス及び／又は装置に対する接続ポイントを有するかもしれない。
【００１６】
本発明の実施例によると、システム１００は、チップセット１３３に接続可能な１以上の周辺装置１３４を有するかもしれない。例えば、周辺装置１３４は、キーボード、マウス、タッチパッド又は他の適切なポインティング装置や入力装置などの入力ユニットと、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）モニタ、液晶表示（ＬＣＤ）モニタ又は他の適切なモニタや表示ユニットなどの出力ユニットを有するかもしれない。いくつかの実施例では、上述した出力装置は、ファームウェアハブを含むシステムの場合など、チップセット１３３に接続されるかもしれない。いくつかの実施例では、周辺装置１３４は、ハードディスクドライブ、フロッピー（登録商標）ディスクドライブ、ＣＤドライブ、ＣＤ−Ｒドライブ、又は他の適切な着脱可能及び／又は固定されたストレージユニットなどのストレージユニットを有するかもしれない。
【００１７】
本発明の実施例によると、システム１００は、メモリバス１３６を介しチップセット１３３に接続されるシステムメモリなどのメモリ１３５を有するかもしれない。メモリ１３５は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＲＡＭ（Ｄｙｎａｍｉｃ  ＲＡＭ）、ＳＤ−ＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  ＲＡＭ）、フラッシュメモリ、揮発性メモリ、不揮発性メモリ、キャッシュメモリ、バッファ、ショートタームメモリユニット、ロングタームメモリユニット、又は他の適切なメモリユニット若しくはストレージユニットを含むかもしれない。システム１００はさらに、他の適切なハードウェアコンポーネント及び／又はソフトウェアコンポーネントを有するかもしれない。
【００１８】
いくつかの実施例では、システム１００は、例えば、パーソナルコンピュータ、デスクトップコンピュータ、モバイルコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、ターミナル、ワークステーション、サーバコンピュータ、携帯情報端末（ＰＤＡ）装置、タブレットコンピュータ、ネットワーク装置、マイクロコントローラ、携帯電話、カメラ又は他の何れか適切な計算及び／又は通信装置などの計算システムを有するかもしれない。
【００１９】
本発明の実施例によると、プロセッサ１０４は、当該技術分野において周知なように、アクティブ動作状態又は非アクティブ動作状態にあるかもしれない。例えば、プロセッサ１０４は、当該技術分野において周知なように、処理動作中にはアクティブ動作状態にあるかもしれない。「スタンバイ」状態、「スリープ」状態、「パワーダウン」状態、「ディープスリープ」状態及び／又は他の何れかの非アクティブ動作状態などの非アクティブ動作状態時には、プロセッサ１０４は、アクティブ動作状態時にプロセッサ１０４により消費される電力と比較して、より低減された電力量しか消費しないかもしれない。
【００２０】
本発明の実施例によると、プロセッサ１０４は、以下に詳細に記載されるようなクロック１８２、コントローラ１８４及びロジックブロック１８６を有するかもしれない。本発明の実施例によると、クロック１８２は、プロセッサ１０４のアクティブ動作状態中など、クロック信号１８８によるコントローラ１８４及び／又はロジックブロック１８６を提供するかもしれない。本発明の実施例によると、クロック１８２は、コントロール信号（パーキング信号）１８０を選択的にアサート又はデアサートするかもしれない。例えば、クロック１８２は、以下で詳細に説明されるように、非アクティブ動作状態に入った後、信号１８０をアサートし、アクティブ動作状態に戻る前に、信号１８０をデアサートするかもしれない。
【００２１】
本発明の実施例によると、コントローラ１８４は、例えば、ロジックブロック１８６により実行される１以上のマイクロオペレーションを含む信号１９２をロジックブロック１８６に提供するなどによって、ロジックブロック１８６の動作を制御するかもしれない。本発明の実施例によると、ロジックブロック１８６は、信号１９２のマイクロオペレーションに対応する１以上のロジック処理を実行するかもしれない。本発明はこれに限定されるものではないが、ロジックブロック１８６は、例えば、ＯＯＯ（Ｏｕｔ−Ｏｆ−Ｏｒｄｅｒ）モジュール１９４と、１以上の実行ユニット（ＥＵ）、例えば、ＥＵ１６０と１６２などを含む実行（ＥＸＥ）ブロック１９８を含むかもしれない。ＯＯＯモジュール１９４は、当該技術分野において周知な何れか適切なＯＯＯコンフィギュレーション又はアーキテクチャを有するかもしれない。実行ユニットセットは、例えば、当該技術分野において周知な１以上の加算器、乗算器、シフタ及び／又は他の何れか適切な実行ユニットを有するかもしれない。
【００２２】
本発明の実施例によると、実行ブロック１９８は、１以上の論理素子を有するかもしれない。例えば、ＥＵ１６０は論理素子１６０を有し、ＥＵ１６２は論理素子１６６及び１６８を有するかもしれない。論理素子１６４、１６６及び／又は１６８は、例えば、ＡＤＤゲート、ＯＲゲート、ＮＯＴゲートなどの１以上の合成論理素子フリップフロップ（ＦＦ）、ラッチなどの１以上のシーケンシャルな論理素子、及び／又は当該技術分野において周知な他の何れか適切な論理素子、ユニット又はコンポーネントを有するかもしれない。本発明の実施例によると、コントローラ１８４は、以下に詳細に説明されるように、非アクティブ動作状態に入る前に、１以上のマイクロオペレーション（パーキングシーケンス）のシーケンスを実行するようロジックブロック１８６の１以上のＥＵに指示するかもしれない。
【００２３】
本発明の実施例によると、ロジックブロック１８６は、後述されるように、非アクティブ動作状態におけるロジックブロック１８６の論理状態などに基づき、１以上の論理素子に割り当てられた１以上のＬＬ（Ｌｏｗ−Ｌｅａｋａｇｅ）トランジスタを有するかもしれない。例えば、ＬＬトランジスタ１７０は論理素子１６４に割り当てられ、ＬＬトランジスタ１７２は論理素子１６８に割り当てられるかもしれない。さらに、又はその代わりに、論理素子１６６などのロジックブロック１８６の１以上の論理素子が、信号１８０のアサート時などに、動作状態を選択的にスイッチするかもしれない（「パーキング動作状態」など）。パーキング動作状態にあるとき、論理素子１６６は、後述されるように、低減された、例えば、最小化された電力リークを有するかもしれない。例えば、信号１８０がアサートされている間には、素子１６６は、１以上のデータバス及び／又はデータステアリングセレクタをゼロ状態などのコモン状態にスイッチするかもしれない。これは、例えば、素子１６６のセレクタノードを通じた電力リークの低減をもたらすかもしれない。
【００２４】
本発明の実施例によると、素子１６６は、例えば、ワイドマルチプレクサ（ＭＵＸ）及び／又はＭＵＸ−ラッチコンフィギュレーションなどを含むかもしれない。素子１６６の電力リークは、パーキング動作状態において、ＭＵＸのすべてのデータ入力を「０」又は「１」などの同一の論理値に設定することによって低減されるかもしれない。これは、例えば、ＭＵＸのパスゲートのソース及びドレインが同一の電圧に設定可能であるため、電力リークを低減するかもしれない。素子１６６をパーキング動作状態にスイッチすることはまた、ＭＵＸの出力電圧を母線の近傍のレベルに維持するかもしれない。これは、ＭＵＸの以降のステージでの電力リークを低減させるかもしれない。
【００２５】
図２は、本発明の他の実施例による計算システム２００を概略的に示す。
【００２６】
本発明の実施例によると、システム２００は、例えば、プロセッサ２７０と２８０などの１以上のプロセッサ、メモリ２０２と２０４などのメモリ、及び／又は１以上のポイント・ツー・ポイントインタフェースにより相互接続される装置２１４などの入出力（Ｉ／Ｏ）装置を有するポイント・ツー・ポイントバススキームを有するかもしれない。プロセッサ２７０と２８０は、それぞれプロセッサコア２７４と２８４を有するかもしれない。プロセッサコア２７４と２８４は、図１を参照して上述されたように、クロック１８２、コントローラ１８４及び／又はロジックブロック１８６を有するかもしれない。
【００２７】
本発明の実施例によると、プロセッサ２７０と２８０はまた、それぞれメモリ２０２と２０４と接続するためのローカルメモリチャネルハブ（ＭＣＨ）２７２と２８２を有するかもしれない。プロセッサ２７０と２８０はそれぞれ、ポイント・ツー・ポイントインタフェース回路２７８と２８８などを利用して、ポイント・ツー・ポイントインタフェース２５０を介しデータをやりとりするかもしれない。プロセッサ２７０と２８０は、ポイント・ツー・ポイントインタフェース回路２７６、２９４、２８６及び２９８などを利用して、ポイント・ツー・ポイントインタフェース２５２と２５４を介しチップセット２９０とデータをやりとりするかもしれない。チップセット２９０はまた、ハイパフォーマンスグラフィックスインタフェース２９２を介しハイパフォーマンスグラフィックス回路２３８とデータをやりとりするかもしれない。チップセット２９０はまた、バスインタフェース２９６を介しバス２１６とデータをやりとりするかもしれない。入出力装置２１４は、いくつかの実施例によると、当該技術分野では周知なように、ローパフォーマンスグラフィックスコントローラ、ビデオコントローラ及び／又はネットワーキングコントローラなどを有するかもしれない。システム２００はまた、いくつかの実施例によると、バス２１６と２２０との間のデータ交換を可能にするためなどに用いられる他のバスブリッジ２１８を有するかもしれない。バス２２０は、いくつかの実施例では、当該技術分野において周知なように、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）バス、ＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）バス、又はＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）バスなどであるかもしれない。さらなるＩ／Ｏ装置が、バス２２０に接続されてもよい。例えば、システム２００はまた、キーボード及び／又はマウスなどのカーソル制御装置２２２、音声Ｉ／Ｏ２２４、モデム及び／又はネットワークインタフェースを含む通信装置２２６、及び／又はソフトウェアコード２３０を格納するデータストレージ装置２２８を有するかもしれない。いくつかの実施例では、データストレージ装置２２８は、固定式磁気ディスク、フロッピー（登録商標）ディスクドライブ、光ディスクドライブ、光磁気ディスクドライブ、磁気テープ、フラッシュメモリを含む不揮発性メモリを有するかもしれない。
【００２８】
図３は、本発明の実施例による非アクティブ動作状態に入る方法を概略的に示す。本発明はこれに限定されるものではないが、図３の方法は、プロセッサ１０４（図１）及び／又はプロセッサ２００（図２）により実現可能である。
【００２９】
ブロック３０２に示されるように、本方法は、アクティブ動作状態中など、非アクティブ動作状態に入るべきか判断する。例えば、コントローラ１８４は、クロック信号１８８をモニタリングし、それに基づき、非アクティブ動作状態に入るべきか判断するようにしてもよい。
【００３０】
ブロック３０４に示されるように、本方法はまた、非アクティブ動作状態に入るべきか判断した後であって、非アクティブ動作状態に入る前などに、１以上の実行ユニットにパーキングシーケンスを実行させるかもしれない。コントローラ１８４は、非アクティブ動作状態に入るべきか判断した後などに、例えば、ブロック１８６の１以上の実行ユニットにパーキングシーケンスを実行させるようにしてもよい。例えば、非アクティブ動作状態に入るべきか判断した後、コントローラ１８４は、ＥＵ１６０及び／又は１６２により実行されるパーキングシーケンスを表すマイクロオペレーションシーケンスを含む信号１９２をロジックブロック１８６に提供するかもしれない。
【００３１】
本発明の実施例によると、パーキングシーケンスは、ブロック１８６の１以上のＥＵ、例えば、ブロック１８６の少なくとも５０％のＥＵが所定の論理状態（パーキング状態）となるようにするマイクロオペレーションを有するかもしれない。パーキング状態は、例えば、以下で詳細に説明されるように、ロジックブロック１８６の電力消費を最小化するなど低減するよう実現されてもよい。
【００３２】
ブロック３０６に示されるように、本発明の実施例によると、本方法はまた、パーキングシーケンスの実行後であって、非アクティブ動作状態に入る前などに、実行ユニットによって１以上の制御処理が実行されることをクリアするかもしれない。例えば、コントローラ１８４は、ロジックブロック１８６により１以上の制御処理が実行されることをロジックブロック１８６にクリアさせるためのクリアコマンド信号１９１をロジックブロック１８６に提供するかもしれない。クリア信号１９１を受信すると、ＯＯＯモジュール１９４は、１以上の制御処理がＥＸＥブロック１９８により実行されることをクリアするかもしれない。
【００３３】
ブロック３０８に示されるように、本方法は、非アクティブ動作状態に入るかもしれない。例えば、コントローラは、スリープレジスタへの繰り返しのライト処理を実行するかもしれない。
【００３４】
ブロック３１０に示されるように、本方法はまた、クロック信号をイネーブル解除するかもしれない。例えば、コントローラ１８４は、例えば、コントロール信号１９０をアサートすることによって、クロック１８２をイネーブル解除するかもしれない。
【００３５】
ブロック３１１に示されるように、本方法はまた、クロック信号のイネーブル解除後など、実行ユニットの１以上の論理素子にパーキング動作状態にスイッチさせるかもしれない。例えば、クロック１８２は、コントローラ８１４から信号１９０を受信などすると、パーキングコントロール信号１８０をアサートするかもしれない。論理素子１６６は、信号１８０がアサートされている間に、パーキング動作状態を維持するかもしれない。
【００３６】
プロセッサ１０４の非アクティブ動作状態は、例えば、コントローラ１８４が当該技術分野において周知なように、ロジックブロック１８６を用いて処理を実行しようとする試みを特定した場合などに、中断されるかもしれない。ブロック３１５に示されるように、本方法はまた、アクティブ動作状態に返るかもしれない。例えば、上記試みを特定すると、コントローラ１８４は、信号１９０をデアサートなどすることによって、ブロック１８２を再びアクティブ化するかもしれない。
【００３７】
ブロック３１４に示されるように、本方法はまた、アクティブ動作状態に返る前などに、パーキング動作状態にスイッチされた１以上の論理素子を動作状態に戻す。例えば、クロック１８２が、信号１９０のデアサートなどにより、パーキングコントロール信号１８０をデアサートするかもしれない。論理素子１６６は、例えば、信号１８０がデアサートされるときなど、動作状態に戻るかもしれない。
【００３８】
本発明の実施例によると、非アクティブ動作状態中にプロセッサ１０４により消費される電力は、ロジックブロック１８６の１以上の論理素子を介した電力リークに関するかもしれない。論理素子を通じた電力リークは、論理素子の論理状態に依存するかもしれない。
【００３９】
本発明の実施例によると、ロジックブロック１８６のコンフィギュレーション及び／又はパーキングシーケンスは、後述されるように、非アクティブ動作状態中のブロック１８６の電力リークが最小化されるなど、低減されるように決定されるかもしれない。本発明の実施例によると、パーキングシーケンスは、後述されるように、ロジックブロック１８６の論理素子の１以上の電力リークが、非アクティブ動作状態において最小化されるなど、低減されるように決定されるかもしれない。
【００４０】
本発明の実施例によると、非アクティブ動作状態中のブロック１８６の論理素子の電力リークは、ブロック１８６のパーキング状態に基づき決定されるかもしれない。１以上のＬＬトランジスタが、例えば、ロジックブロック１８６のパーキング状態に基づき、ブロック１８６の１以上の論理素子に割り当てられるかもしれない。ＬＬトランジスタは、例えば、パーキング状態における決定された電力リークに従って、論理素子に割り当てられるかもしれない。例えば、論理素子１６４及び／又は１６８がパーキング状態時に、所定のレベルより高い電力リークを有するよう決定されている場合、ＬＬトランジスタ１７０は論理素子１６４に割り当てられ、ＬＬトランジスタ１７２は論理素子１６８に割り当てられるかもしれない。
【００４１】
図４は、本発明の実施例によるプロセッサを構成する方法を概略的に示す。本発明はこれに限定されるものではないが、図４の方法は、プロセッサ１０４（図１）及び／又はプロセッサ２００（図２）を構成するよう実現されるかもしれない。例えば、図４の方法は、ロジックブロック１８６（図１）に適用されるパーキングシーケンスを決定し、ＬＬトランジスタ１７０（図１）及び／又は１７２（図１）などの１以上のＬＬトランジスタを割り当て、論理素子１６６（図１）などの１以上の論理素子のパーキング動作状態を構成することによって、ロジックブロック１８６（図１）を構成するよう実現されるかもしれない。
【００４２】
ブロック４０２に示されるように、本方法は、ロジックブロックの複数の論理素子に適用されるパーキングシーケンスを決定する。例えば、初期的なパーキングシーケンスは、ロジックブロックの与えられたコンフィギュレーションに基づき決定されるかもしれない。この初期的なパーキングシーケンスは、例えば、論理素子の個数、位置、配置及び／又はタイプなどに基づくものであってもよい。
【００４３】
本発明の実施例によると、パーキングシーケンスは、Ｎにより示される所定数の処理フェーズだけ続くことが意図される。フェーズ数Ｎは、例えば、パーキングシーケンスを実行するのに必要とされるＣｌにより示されるサイクル数などに対応し、例えば、Ｎ＝２Ｃｌとされるかもしれない。ロジックブロックは、図１を参照して上述されるように、複数の合成論理素子及び複数のシーケンシャルな論理素子を有するかもしれない。合成論理素子の論理状態は、シーケンシャルな素子の論理状態に基づき決定されるかもしれないということは、当業者に理解されるであろう。従って、後述される本発明の実施例によると、パーキングシーケンスは、合成論理素子に関することなく、シーケンシャルな論理素子に関する制御可能性解析に基づき評価されるかもしれない。本発明の他の実施例によると、パーキングシーケンスを決定及び／又は評価するための他の何れか適切な方法又は解析が利用可能であるということは、当業者により理解されるであろう。
【００４４】
ブロック４０３に示されるように、本発明のいくつかの実施例によると、本方法は、パーキングシーケンスを適用する際のシーケンシャル論理素子の制御可能性などに基づき、パーキングシーケンスの制御可能性レベルを評価するかもしれない。例えば、パーキングシーケンスをシーケンシャル素子の未知などの任意の状態に適用することにより、パーキングシーケンスのエンドにおいて、ｎ＝３０などのｎフェーズの所定の間隔に対して、「０」や「１」などの既知の論理値（信号確率（ＳＰ）値）をシーケンシャル素子に維持させる可能性がある場合、シーケンシャルな論理素子は制御可能と規定されるかもしれない。パーキングシーケンスの制御可能性は、例えば、制御可能なシーケンシャルな素子のパーセンテージにより決定されるかもしれない。
【００４５】
本発明の実施例によると、当該技術分野において周知なように、パーキングシーケンスの制御可能性は、例えば、「０」、「１」、未知の値のＸにより示される可能な値を有することなどによって、３値シミュレーションを利用して決定されるかもしれない。例えば、パーキングシーケンスは、すべてのシーケンシャルな素子が初期的に未知の値Ｘを有する論理状態に適用されるかもしれない。シミュレーションの最後のｎフェーズ中に「０」又は「１」などの定数を維持するシーケンシャルな素子は、制御可能と決定されるかもしれない。
【００４６】
ブロック４０４に示されるように、パーキングシーケンスの制御可能レベルの評価は、例えば、Ｎフェーズの１以上の間に複数の論理素子に対応する複数のＳＰ値を決定することを含むかもしれない。例えば、ＳＰ値は、第ｉフェーズにおけるシーケンシャルな素子の「０」又は「１」などのＸのシミュレートされた論理状態に従って、第ｉフェーズにおけるシーケンシャルな素子に対して決定されるかもしれない。
【００４７】
ブロック４０６に示されるように、パーキングシーケンスの制御可能レベルの評価はまた、複数のＳＰ値に基づき、パーキングシーケンスの制御可能レベルを決定するかもしれない。例えば、パーキングシーケンスの制御可能性は、ｎフェーズに対する「０」又は「１」などの既知の値を有するシーケンシャルな素子のパーセンテージに基づき決定されるかもしれない。
【００４８】
ブロック４０８に示されるように、方法はまた、パーキングシーケンスの制御可能レベルが、既知の値を有するシーケンシャルな素子の９０％に対応する制御可能レベルなどの所定の制御可能性閾値以上であるか判断するかもしれない。本方法はまた、例えば、パーキングシーケンスの制御可能レベルが、制御可能性閾値未満である場合、ブロック４０２などに示されるように、パーキングシーケンスを再規定するようにしてもよい。
【００４９】
本発明はこれに限定されるものではないが、当該技術分野において知られるようなＳＴＥ（Ｓｙｍｂｏｌｉｃ  Ｔｒａｊｅｃｔｏｒｙ  Ｅｖａｌｕａｔｉｏｎ）方法などのシンボリックシミュレーション方法は、ブロック４０３、４０４及び／又は４０６を参照して上述される処理の１以上を実行するため実現可能である。
【００５０】
図５は、パーキングシーケンスのフェーズに対する制御可能なシーケンシャルな素子のパーセンテージを示す概略図である。図５に示されるように、制御可能性は、パーキングシーケンスの約３０フェーズ後に約８０％に達するかもしれない。制御可能性は、パーキングシーケンスの約６０フェーズ後などには約９０％まで増加するかもしれない。
【００５１】
図４を再び参照するに、ブロック４１２に示されるように、本方法はまた、パーキング状態時にあるとき、１以上の合成論理素子及び／又はシーケンシャルな素子などを含むロジックブロックの電力リークを決定及び／又は解析するかもしれない。当該技術分野において知られているように、何れか適切な電力リーク解析及び／又は電力推定方法は、電力リークを決定及び／又は解析するため実現可能である。
【００５２】
ブロック４１４に示されるように、本方法はまた、ロジックブロックの電力リークが、所定のリーク閾値以下であるか判断するかもしれない。本方法は、例えば、ロジックブロックの電力閾値がリーク閾値より高い場合、パーキングシーケンスを再規定するようにしてもよい。
【００５３】
ブロック４１６に示されるように、本方法はまた、ロック１８６などのロジックブロックの電力リーク及び／又はタイミング効率が、例えば、後述されるように、１以上のＬＬトランジスタを割り当てることによって向上可能か判断するかもしれない。
【００５４】
ブロック４１８に示されるように、本方法はまた、後述されるように、ロジックブロックのパーキング状態に基づき、１以上のＬＬトランジスタをロジックブロックの１以上の論理素子に割り当てるかもしれない。
【００５５】
本発明のいくつかの実施例によると、ロジックブロックのパーキング状態の知識は、パーキング状態にあるときの素子の電力リークなどに基づき、１以上のＬＬトランジスタを論理素子に割り当てるのに利用可能である。さらに、トランジスタなどの論理素子のスタックの効果的なリークは、スタックのすべての素子のパーキング情報に基づき評価されるかもしれない。これは、例えば、トランジスタサイズ及び／又は状態確率に従うのではなく、パーキング状態にいるときの電力リークに従って、スタックの論理素子を重み付けすることを可能にするかもしれない。例えば、パーキング状態において３以上のトランジスタを含む２以上のトランジスタのスタックは、１０倍のリーク低減を有するかもしれず、これにより、パーキング状態の２以下のトランジスタしか有しないスタックと比較して、１０倍の小ささの有効Ｚをもたらすかもしれない。スタックの１つのトランジスタしかパーキング状態になく、当該トランジスタがスタックの出力に最も近いトランジスタでない場合、リークは約４０％まで低減され、これにより、約０．６倍小さい有効なＺが得られる。従って、パーキング状態の知識が非アクティブ動作状態におけるトランジスタの電力リークに基づき、ＬＬトランジスタを割り当てることを可能にするかもしれないということが、当業者により理解されるであろう。従って、パーキング状態に基づくＬＬトランジスタの割当ては、電力リークの相対的に大きな低減をもたらすかもしれない。本発明のいくつかの実施例によると、ロジックブロックは、当業者に周知なように、１以上のタイミングクリティカルパスを含むかもしれない。
【００５６】
本発明のいくつかの実施例によると、ＬＬトランジスタは、パーキング状態の論理素子の電力リークに基づき、及び／又は論理素子がタイミングクリティカルパスの一部であるかに基づき、論理素子に割り当てられるかもしれない。例えば、ＬＬトランジスタは、以下のルールに基づき、ロジックブロックの論理素子に割り当てられるかもしれない。すなわち、
・タイミング境界が許す限り、クリティカルタイミングパスの論理素子について、パーキング状態における最大の電力リークを有する論理素子にＬＬトランジスタを割り当てる。
・スピードの低下が許容される場合、タイミング挿入リミット以下のタイミングマージンを有するパスにさらなるＬＬトランジスタを割り当てる。これらさらなるＬＬトランジスタは、例えば、ＬＬトランジスタの割当てから生ずる電力リークの低減及びスピードの低下の組み合わせに基づき、当該パス上の論理素子に割り当てられるようにしてもよい。
【００５７】
上記２つのケースについて、ＬＬトランジスタの挿入は、例えば、スタックのすべての論理素子の論理状態から導かれるように、論理素子の有効なスタック処理を考慮するときなど、論理素子の有効なリークに従って優先順位が付けられるかもしれない。
【００５８】
本発明はこれに限定されるものではないが、当業者に知られるような何れか適切な電力コンパイリングが、ブロック４１６及び／又は４１８を参照して上述される処理の１以上を実行するため実現されるようにしてもよい。
【００５９】
ブロック４２０に示されるように、本方法はまた、ＬＬトランジスタの割当て後など、ロジックブロックの電力リークを決定及び解析するかもしれない。
【００６０】
ブロック４２２に示されるように、本方法はまた、割り当てられたＬＬトランジスタに従って、ロジックブロックを変更するかもしれない。
【００６１】
本発明の実施例は、ソフトウェア、ハードウェア又はソフトウェアとハードウェアの何れかの組み合わせによって、特定のアプリケーションに適したものとなるように、又は特定の設計要求に従って実現可能である。本発明の実施例は、全体的又は部分的に互いに独立した、又は組み合わされるユニットとサブユニットを有するようにしてもよく、当該技術分野において知られるような特定、多目的又は汎用プロセッサ又は装置を用いて実現可能である。本発明のいくつかの実施例は、特定の実施例の処理を実現するため、またデータの一時的又は長期の格納のため、バッファ、レジスタ、ストレージユニット及び／又はメモリユニットを有するようにしてもよい。
【００６２】
本発明の特徴がここで例示及び説明されたが、当業者には、多数の変更、代替、変形及び均等が想起するかもしれない。従って、添付した請求項は、本発明の真の趣旨の範囲内のこのようなすべての変更及び変形をカバーするよう意図されている。
【図面の簡単な説明】
【００６３】
【図１】図１は、本発明の一実施例によるプロセッサを有する計算システムの概略図である。
【図２】図２は、本発明の他の実施例によるプロセッサを有する計算システムの概略図である。
【図３】図３は、本発明の実施例による非アクティブ動作状態に入る方法のブロック図である。
【図４】図４は、本発明の実施例によるプロセッサを構成する方法のブロック図である。
【図５】図５は、本発明の実施例によるパーキングシーケンスのフェーズに対する制御可能なシーケンシャルな論理素子のパーセンテージを示す図である。
【符号の説明】
【００６４】
１００、２００  計算システム
１０４、２７０、２８０  プロセッサ
１３３  チップセット
１３４  周辺装置
１３５  メモリ
１８６  ロジックブロック
１９８  実行ブロック
【図１】
0004509996.tif 000002
【図２】
0004509996.tif 000003
【図３】
0004509996.tif 000004
【図４】
0004509996.tif 000005
【図５】
0004509996.tif 000006