複数のコアと1つの非コアとを含むマルチコアプロセッサを備え、前記1つの非コアは、少なくとも1つのキャッシュメモリと、ルータを含む複数の論理ユニットと、電力制御ユニットPCUと、少なくとも1つの他の論理ユニットとを有し、前記マルチコアプロセッサが低電力状態にあるとき、前記PCUは、前記複数の論理ユニットのうち少なくとも1つの論理ユニット、および、前記少なくとも1つのキャッシュメモリのクロックゲーティングを行う、装置。前記複数の論理ユニットが継続してトランザクションの空き状態にあり、前記複数の論理ユニットにインフライトトランザクションがない複数の期間が発生した後、前記PCUは前記クロックゲーティングを行う、請求項1に記載の装置。前記マルチコアプロセッサを含むマルチプロセッサシステムの他のマルチコアプロセッサが前記低電力状態にあるとき、前記PCUは前記クロックゲーティングを行う、請求項1または2に記載の装置。複数の期間、前記複数の論理ユニットが継続して空き状態にない場合、前記PCUは、前記複数の期間の2回目の反復の間、前記複数の論理ユニットが継続して空き状態にあるかどうかを判断し、前記2回目の反復の間、前記複数の論理ユニットが継続して空き状態にある場合、前記クロックゲーティングを行う、請求項1から3のいずれか1項に記載に記載の装置。前記PCUは、それぞれが異なる期間のトラッキングを行う複数のタイマーを含み、前記クロックゲーティングは、前記異なる期間の少なくともそれぞれの間、前記1つの非コアが継続して空き状態にある場合に行われる、請求項1から4のいずれか1項に記載の装置。前記少なくとも1つの論理ユニットがクロックゲーティングされているとき、前記PCUおよび前記ルータはクロックされたままである、請求項1から5のいずれか1項に記載の装置。前記1つの非コアが空き状態にない、または、帯域外インタフェースOOBインタフェースを介して、入力トランザクションが受信されたとき、前記PCUは前記クロックゲーティングを終了する、請求項1から6のいずれか1項に記載の装置。前記PCUは、入力トランザクションの前記マルチコアプロセッサによる受信を防止する、前記クロックゲーティングされた状態への移行フローを実行する、請求項1から7のいずれか1項に記載の装置。前記移行フローの後、および前記クロックゲーティングされた状態の間、前記PCUは前記入力トランザクションを有効化する、請求項8に記載の装置。複数のプロセッサソケットがソケット低電力状態に移行することを交渉したか判断し、前記複数のプロセッサソケットの第1プロセッサソケットの非コアが空き状態にあることを判断する段階と、前記空き状態にある場合、前記非コアに結合された帯域外チャネルOOBチャネルからのトランザクションを防止し、前記非コアが第1期間の後、まだ前記空き状態にあるかどうか判断する段階と、まだ前記空き状態にある場合、前記非コアに結合された1以上のオフソケットチャネルから入力トランザクションを防止し、前記非コアが第2期間の後、まだ前記空き状態にあるかどうか判断する段階と、前記非コアが前記第2期間の後、まだ前記空き状態にあるとの判断に応答して前記非コアの複数のユニットのクロックゲーティングを行う段階とを備える方法。前記クロックゲーティングに応答して、前記非コアがクロックゲーティングされた状態にあることを示すよう非コアクロックゲーティング状態信号を更新し、前記OOBチャネル上の入力トランザクションに応答して前記クロックゲーティングを無効化出来るよう前記OOBチャネル上のトランザクションを有効化する段階をさらに備える、請求項10に記載の方法。前記第1期間をカウントする継続期間タイマーを開始し、前記第1期間の間、前記非コアが継続して前記空き状態にあったかどうか、前記第1期間の後、判断する段階をさらに備える、請求項10または11に記載の方法。前記第1期間の間、前記非コアが継続して前記空き状態になかった場合、前記OOBチャネルのトランザクションを有効化する段階をさらに備える、請求項12に記載の方法。前記第2期間をカウントするドレインタイマーを開始し、前記第2期間の間、前記非コアが継続して前記空き状態にあったかどうか、前記第2期間の後、判断する段階をさらに備える、請求項12または13に記載の方法。前記第2期間の間、前記非コアが継続して前記空き状態になかった場合、前記1以上のオフソケットチャネルからの前記入力トランザクションを有効化し、前記OOBチャネル上のトランザクションを有効化する段階をさらに備える、請求項14に記載の方法。クロックゲーティング有効化信号をアサートし、クロックゲーティングタイマーを開始し、前記クロックゲーティングタイマーの期限切れに応答して前記クロックゲーティングを指示するよう状態インジケータを設定する段階をさらに備える、請求項14または15に記載の方法。前記非コアが前記空き状態のままであり、前記OOBチャネルを介してリクエスト信号が受信されない間、前記クロックゲーティングを継続し、そうでなければ、前記状態インジケータおよび前記クロックゲーティング有効化信号をディアサートする段階と、前記ディアサートに応答してクロックアンゲーティングタイマーを開始し、前記クロックアンゲーティングタイマーの期限切れに応じて、前記1以上のオフソケットチャネルからの前記入力トランザクションを防止するフロー制御信号をディアサートする段階とをさらに備える、請求項16に記載の方法。第1の複数のコアおよび第1の非コアを有する第1マルチコアプロセッサと、第2の複数のコアおよび第2非コアを有する第2マルチコアプロセッサと、前記第1マルチコアプロセッサおよび前記第2マルチコアプロセッサに結合されたダイナミックランダムアクセスメモリDRAMとを備え、前記第1マルチコアプロセッサおよび前記第2マルチコアプロセッサがパッケージ低電力状態に移行することを交渉したとき、前記第2非コアは、少なくとも前記第2非コアの一部のクロックゲーティングを行う、システム。前記第2非コアは、前記第2非コアが継続してトランザクションの空き状態にある複数の期間が発生した後、前記クロックゲーティングを行う電力制御ユニットPCUを含む、請求項18に記載のシステム。前記PCUは、それぞれが前記複数の期間のうち1つのトラッキングを行う複数のタイマーを含み、前記第2非コアは、前記第2マルチコアプロセッサに結合された帯域外チャネルOOBチャネルからのトランザクションを防止し、その後、前記複数のタイマーのうち第1期間をカウントする第1タイマーを開始し、前記第1期間の後、前記第2マルチコアプロセッサに結合された1以上のオフソケットチャネルからの入力トランザクションを防止し、その後、前記複数のタイマーのうち第2期間をカウントする第2タイマーを開始し、前記第2期間の後、前記クロックゲーティングを行わせる、請求項19に記載のシステム。サーバーのアイドル状態時の消費電力の大幅な低減を消費者も規格化団体も要望しているので、このことは解決すべき課題である。実施形態によると、プロセッサソケットのアイドル状態時の非コアの動的電力を低減することにより、サーバーのアイドル状態時の全体的な電力の低減が可能となる。より詳細には実施形態により、マクロクロックゲーティングMCGを可能とすることにより、非コア自体の多くが例えばクロックゲーティングを介して無効化され得る低電力状態にソケットの非コアが移行可能になる。いくつかの実施形態において、非コアを含むソケットが低電力状態にあるだけでなく、マルチソケットシステムの追加のソケットも低電力状態にあると判断された場合に、このMCG動作に移行し得る。一実施形態において、MCG動作は、インフライトトランザクションを失うことなく、非コア内の論理回路の大部分のクロックをゲーティングすることを含み得る。非コアに残っているインフライトトランザクションが存在しないときに、MCG移行フローの終わりにMCG状態に移行し得る。加えて、MCG終了フローによると、MCG動作は、外部のリクエスト、若しくは内部または外部のイベントが発生しないとき、最小の遅延で非コアの論理回路のクロックをアンゲーティングすることを含み得る。図1は、本願発明の一実施形態に係るプロセッサのブロック図を示す。詳細には、図1は、マルチコアプロセッサであり、サーバーベースのアプリケーションに適切であり得るプロセッサ100を示す。示されるようにプロセッサ100は、複数のコア1100~11011を含む。図1の実施形態においては特定数のコアが示されているが、本願発明の態様はこの点に関して限定されない。各コアは、例えば1以上のレベルのキャッシュメモリなどプライベート記憶装置などと関連付けられ得る。加えて各コアは、対応するキャッシュバンクコントローラ1150~11511を介して、例えば複数のスライス1200~12011から形成されるラストレベルキャッシュLLCなど、共有キャッシュメモリのスライスに結合されている。示されるように、異なる複数のコアおよびキャッシュを介した通信が、双方向性の拡張可能なリング相互接続160a-bであり得るリングベースの相互接続を介して行われ得る。オフチップ通信を行うべく、様々な異なる複数のポートとエージェントとが存在し得る。詳細には、示されるように、例えば、拡張可能メモリ相互接続scalablememoryinterconnect。SMIを介してソケットに結合されたダイナミックランダムアクセスメモリDRAMなどシステムメモリのローカル部分へソケットを結合するメモリI/Oポート175に加えて、複数のポイントツーポイントPtP入出力I/Oポート170が存在し得る。プロセッサの様々なエージェントを用いて、キャッシュコヒーレンスプロトコルが実装され得る。一実施形態において、PtPリンクにより、物理層、リンク層、およびプロトコル層を含む複数の層を有するキャッシュコヒーレンスプロトコルであるIntel登録商標QuickPathInterconnectQPIプロトコルに準拠した通信が可能となる。このプロトコルを用いることにより、複数のキャッシュエージェントを含むシステム内で、コヒーレントな通信が行われ得る。本願発明の一実施形態によると、キャッシュエージェントは、メモリデータのコピーをリクエストし、キャッシュし得るおよび当該データを変更し得るキャッシュ論理回路を一般的に表し得る。そのようなキャッシュエージェントは、メモリのリクエストをルーティングするキャッシュコントローラを含み得る。プロトコルにより、PtPリンクを介して互いに結合されたデバイス間の通信を可能とする低遅延リンクに沿った、複数のチャネルおよび仮想ネットワーク上での様々な通信が可能となる。当然ながら、本願発明の態様はこの点に関して限定されず、他の実施形態においては、PtPリンクは他の通信プロトコルに準拠してもよい。図1に示されるように、ルータ130は、ホームエージェント1400、1401のペアに結合し、そしてホームエージェント1400、1401は対応するメモリコントローラ1450~1451と通信を行い得る。そしてこれらのメモリコントローラ145は、例えばメモリI/Oポート175を介したSMI相互接続を介し、例えばプロセッサに結合された1以上のデュアルインラインメモリモジュールDIMMなどシステムメモリのローカル部分に結合され得る。図1の実施形態において、非コアは、ルータ130、LLC120、キャッシュバンクコントローラ115、ホームエージェント140、システムリングインタフェース160、メモリコントローラ145、および電力制御ユニットPCU150により一般的に構成されている。これらのユニットのそれぞれは、非コアクロックと呼ぶ共通のクロック信号によりクロックされ得る。図示を分かりやすくするべく示されてはいないが、非コアクロックは、非コアのクロック生成回路により生成され得る。MCG動作によると、非コアの特定のユニットにおける非コアクロックのゲーティングにより、低い動的電力が実質的に実現され得る。一実施形態において、非コアのいくつかのユニットは、MCGモードの間、電力が供給されアクティブなクロック信号によりアクティブなままであってもよい。つまり他の実施形態においては、ルータ130およびPCU150に電力が供給されたままであってもよく、追加の、または異なるユニットのクロックゲーティングが行われてもよい。一般的にルータ130は、入力されるQPIリンクパケットを適切なオンチップの宛て先へルーティングしてもよい。加えてルータ130は、オンチップユニット間で送信されるパケットをルーティングしてもよい。よって、外部のソケットおよびI/Oハブから入力されるパケットは、ルータ130の入力ポートに提供される。電力制御ユニット150は、コアおよびパッケージのC状態への移行およびC状態の終了など他の電力管理タスクの対応に加えて、MCGへの移行およびMCGの終了プロセスを順番付けし制御するマイクロコントローラおよび他の制御論理回路を含み得る。図1の実施形態においてはこの特定の実施例が示されているが、本願発明はこの点に関して限定されず、他の実施形態においてマルチコアプロセッサは異なる構成を有し得る。デバイスまたはエージェントなどの用語は一般的に用いられており、リンクに結合されるいかなる電気部材をも指し得る。リンクまたは相互接続という用語は、メッセージ、つまり所定の形式の情報のための通信経路を確立する情報伝達媒体として一般的に定義される。リンクまたは相互接続は、有線の物理媒体例えば、バス、1以上の電気配線、トレース、ケーブルなど、または無線媒体例えば、無線の信号伝達技術と組み合わせての空気であってもよい。実施形態は、多くの異なるシステムタイプで用いられ得る。特定の実施例において、システムは、非一様なメモリアーキテクチャnon-uniformmemoryarchitecture。NUMAを有するマルチプロセッササーバなどマルチソケットシステムであり得る。図2は、本願発明の一実施形態に係るシステムのブロック図である。図2に示されるように、システム200は、複数のソケット2100~2103を含む。各ソケットは、図1に関連して説明したものなどマルチコアプロセッサを含み得るが、当然ながら他の実装も可能である。各ソケットは、PtPリンクを介して他のソケットへ結合され得る。図2に示されるように、各プロセッサ210は中央処理装置CPUと一般的に呼ばれ得る。さらに示されるように、図1の実施形態などのマルチコアソケットまたはパッケージに対応する各プロセッサ210は、メモリ相互接続を介してシステムメモリ230のローカル部分とインタフェース接続する統合型メモリコントローラintegratedmemorycontrollerを含む。示されるように、各プロセッサ210Xは、メモリ相互接続を介して、様々な実施形態においてDRAMとして実装され得るシステムメモリの対応する部分230Xと通信を行い得る。様々な周辺デバイスなどシステムの他の部材とのインタフェースを設けるべく、プロセッサ210のそれぞれは、少なくとも1つのI/Oハブに結合され得る。詳細には、プロセッサ2100、2102は、I/Oハブ2200に結合され得、同様にプロセッサ2101、2103は、I/Oハブ2201に結合され得る。図2の実施形態においてはこの基本的な高レベルの構成を示しているが、本願発明の態様はこの点に関して限定されない。一般的に、MCG移行プロセスは、非コアが位置付けられているソケットだけでなく、マルチソケットシステム内の他の全てのソケットが任意の低電力状態にあると判断されたときに開始され得る。このようにするのは、あるソケットが低電力状態にあるときのみMCGへ移行され得るとなると、他のソケットからトランザクションが入力される可能性が高く、MCGへの移行フローを完了することが出来ない、若しくは、MCGへ移行することによって生じるコストは、非コアがMCG状態にあり得る小さなウィンドウに見合わないからである。より詳細には、一実施形態において、MCG移行フローに従ったMCG状態への移行の開始が許可される前に、様々な前提条件がまず設定され得る。最初に、任意のソケットに関し、全てのコアが、例えばACPI規格のC3またはC6スリープ状態などの所定の低電力状態にある。限定ではなく例示を目的とし、本明細書においては、C3およびC6のスリープ状態に関して実施形態を説明するが、他のスリープ状態も採用され得る。全てのコアがC6またはC3状態になると、非コアの電力制御ユニットはパッケージC6コアがC6にある場合、またはパッケージC3コアがC3にある場合と呼ばれるソケット全体の低電力アイドル状態に実質的に移行しようとする。パッケージC3およびパッケージC6移行プロセスの延長としてMCG状態に移行し得る。よってMCG状態は実質的に、パッケージC6またはパッケージC3状態にあるときの、非コアのアイドル状態時の電力低減状態である。しかし、現行のACPI規格はこの状態をサポートしていないので、MCG状態はACPI規格とは独立していてもよい。異なる低電力状態に用いられる他の実施形態において、オペレーティングシステムOSの電力制御とは独立してMCG状態に移行し、MCG状態を終了してもよく、代わりに、非コアPCUなどプロセッサのマイクロコントローラにより制御されてもよい。MCG状態への移行の他の前提条件として、プラットフォーム内の全ての他のソケットがパッケージC3またはパッケージC6状態にあるまたは移行しようとしている。共通の低電力状態が存在するこの状態を可能とするべく、パッケージC6および/またはパッケージC3への移行が調整され、当該移行が全てのソケット、並びにI/Oハブの間で合意されるように、様々なソケットの間で交渉プロセスが起こり得る。このことにより、全てのソケットが共にパッケージC6またはパッケージC3へ移行するようになり、MCG状態である期間が最大化される。MCG状態のためのさらに他の前提条件として、メモリサブシステムも、SMIリンクがアクティブでないことを示す、一実施形態においてはSMIキル状態と呼ぶ低電力状態に移行していてもよい。この低電力状態により、メモリコントローラおよびホームエージェントの論理回路がクロックゲーティングされ得る。これらの前提条件が満たされると、各非コアをMCG状態に移行させようとするべく、様々なソケットの非コアにおいてMCG移行フローが開始され得る。一実施形態において、MCG状態で、キャッシュバンクコントローラ、ホームエージェント、メモリコントローラ、およびシステムリングインタフェースユニットなどの非コアユニットを含む非コアの様々な回路が全てゲーティングされ得る。このゲーティングは領域毎のクロックバッファレベルで行われ得、これにより、細粒度のゲーティング方式の複雑さを避けることが出来る。これらの前提条件が満たされると、MCGへの移行が進められ得る。なお、非コアの物理的大きさが故に、異なる複数の実施形態において、クロックゲーティングプロセス自体が、異なる数の非コアクロックサイクル例えば、およそ10~20サイクルを要し得る。これは、ゲーティングされる全てのユニットにクロックゲーティング信号が到達出来るようにするためである。クロックゲーティングプロセスが問題なく行われるようにするため、様々なメカニズムが設けられ得る。一例として、非コアの各ユニットは、空き状況を示す、空き状態インジケータ、または空き状態信号を生成してもよい。よってこの状況は、対応するユニットが内部にインフライトトランザクションを有さないことを示す。全ての非コアユニットの空き状態は、合わせて論理的にAND処理を行われ、非コア全体としての空き状況が判断され得る。一実施形態において、論理的なAND処理は、PCUで実行され得るが、本願発明の態様はこの点に関して限定されない。加えて、MCG移行フローは入力トランザクションのフローを制御するメカニズムを用い得る。つまり、クロックゲーティングを行うという判断がされると、新たなトランザクションはクロックゲーティングされるユニットに送信されてはならない。このフロー制御は、入力トランザクションの全てを、クロックゲーティングされるユニットに入れないようにブロックすることにより実施することが出来る。一実施形態において、このフロー制御メカニズムは非コアのルータ内に位置付けられ、クロックゲーティングが問題なく行われるまで、様々なPtP相互接続などオフチップインタフェースから他のソケットまたはI/Oハブへの全てのトランザクションをブロックしてもよい。一例としてルータは、ソケットへのトランザクションの送信を制限すべく、他のソケット/I/Oハブへのオフチップの相互接続を介してフロー制御信号を送信してもよい。帯域外OOBインタフェースから入ってくるトランザクションがクロックゲーティングにより失われることがないよう、さらに他のメカニズムがMCG移行フローにおいて用いられ得る。この機能性を可能とすべく、一実施形態において、クロックゲーティングされた論理回路へアクセスしようとする新たな入力OOBトランザクションは実質的に受信確認されないNACK応答されるので、後の時間に再試行される。なお、クロックゲーティングされた論理回路へアクセスする必要のないOOBトランザクションの処理は通常通りに進められ、完了され得る。そのようなトランザクションの一例は、ダイ温度に関するPCUへの問い合わせである。図3は、本願発明の一実施形態に係るMCG状態に移行する際に実施される様々な動作を示すフロー図である。図3に示されるように、方法250は、例えば、いくつかの実施形態においては非コアのPCUの一部であってもよい、非コアの制御論理回路で実施され得る。一般的に、方法250は、MCG状態への移行を試みることが適切だと判断し、様々なタイマーのタイムアウトに対応し得る、複数の決定された期間の間、非コアが空き状態であると判断された場合にMCG状態に移行するための動作を行うことにより進められ得る。図3に示されるように、方法250は、全てのソケットが、例えばC3またはC6パッケージ状態などの任意のC状態である低電力ソケット状態にある、または当該任意のC状態へ移行しようとしていると判断することにより開始され得るブロック255。この判断は、プラットフォームのソケット間の交渉の結果に基づいてもよい。次に、非コアが空き状態にあると判断され得るブロック260。つまりこの判断は、非コアの様々なユニット内にペンディング中のトランザクションがないことを意味し、このことは、非コアの全ての論理ユニットからの空き状態信号の論理的なAND処理によって識別され得る。次に、OOBチャネル上のトランザクションが防止し得るブロック265。MCGイベントの間、そのようなトランザクションが受信されるのを防止する様々なメカニズムについては以下に説明する。続いて、非コアがまだ空き状態にあるかどうか判断され得るブロック270の制御が行われる。この判断の結果が肯定的な場合、ソケットに接続された様々なPtP相互接続などオフソケットチャネルから、入力トランザクションが入ってくるのを防止するブロック275の制御が行われる。さらに再びブロック280において、非コアがまだ空き状態にあると判断され得る。よってこのことは、ペンディング中のトランザクションがないということを示しており、MCG状態に移行するのが適切であるということを示している。したがって、様々な非コアユニットがクロックゲーティングされ得るブロック285の制御が行われる。このクロックゲーティングを実行するための異なる複数のメカニズムについては以下に説明する。最終的にブロック290において、非コアがMCG状態にあることを示すよう非コアクロックゲーティング状況が更新され、さらにこの時点において、OOBチャネル上のトランザクションが有効化され得る。つまり、非コアはこの時点でクロックゲーティングされた状態にあるので、そのようなトランザクションが有効化され、非コア論理回路がOOBトランザクションを扱う必要がある場合には、MCG状態を終了することが出来る。図3の実施例ではこの高レベルの構成が示されているが、本願発明の態様はこの点に関して限定されない。例えば、直線的なフローが示されたが、フローの様々な時点で非コアの空き状態を判断することにより、MCG移行フローが再開され得、または特定の動作が再試行され得る。図4は、本願発明の一実施形態に係るMCG移行フローに従う動作のフロー図である。図4に示すように方法300は、例えば非コアのPCU内のMCG論理回路によって実施され得る。なおMCG状態に移行する前提条件として、ブロック310において、パッケージ内の全てのコアが選択された低電力状態にありまたは、選択された低電力状態に移行するプロセスにあり、同じことが全てのプロセッサソケットに関しても当てはまることが判断され得る。加えて、プロセッサに結合されたメモリも、低電力メモリ相互接続状態例えば、アクティブSMIキル信号により示されるように例えばセルフリフレッシュ状態などの低電力状態にあると判断され得る。この判断の結果が肯定的である場合、MCG状態に移行する条件が満たされたことになる。したがって、MCGへの移行の第1段階が実行され得る。最初にひし形315において、非コアが空き状態にあるかどうか判断される。もし判断の結果が肯定的であれば、OOBインタフェースがドレインされ、タイマーの初期化と共に様々な制御信号が設定され得るブロック320の制御が行われるブロック320。より詳細には、この第1段階において、OOBインタフェースに、クロックゲーティングされることになる論理回路にアクセスしようとする全てのトランザクションに対しNACK応答を開始させるNACKEnableビットが設定され、そのようなアクセスを試みる全てのインフライトOOBトランザクションが例えば、トランザクションを適切に扱うことによりドレインされる。一実施形態において、OOBインタフェースは、アサートされた場合にMCGを終了させ得るNACKRequest信号を有する。この信号のアサートは、この時点において無効化される。その後、非コアの空き状態が、空き状態継続期間と呼ばれるプログラム可能な特定の期間の間、継続的にサンプリングされ、非コアが継続的に空き状態にあることを確認する。この期間は、このブロック320において初期化される継続期間タイマーと呼ばれるタイマーによってトラッキングされ得る。継続期間タイマーの長さはプログラム可能であり得、一実施形態においては、およそ50~1000サイクルの間であり得る。一実施形態において、このタイマーおよび説明される他のタイマーはPCU内に存在し得る。この期間が終わり、空き状態継続期間の全体に亘り1つの非コアクロックサイクルの間においてもディアサートイベントが起こることなく非コア空き状態信号がアサートされたままであるとの判断がひし形325において行われ、MCG移行フローの第2段階がトリガされる。なお、この非コア空き状態信号が第1段階のいずれかの時間においてサンプリングされディアサートされた場合、ひし形330およびブロック335で示されるフローで移行プロセスが中止され、OOBNACKEnableが再設定される。この第2段階において、ひし形340において非コアがまだ空き状態にあると判断されたものと仮定すると、フロー制御メカニズムが有効化され得るブロック350の制御が行われる。より詳細には、QPIリンクのフロー制御が行われ、ルータ入力ポートを超える新たなパケットの送信を防止する。この段階においても、ドレイン期間と呼ばれるプログラム可能な特定の期間の間、非コア空き状態信号が継続的にサンプリングされる。この期間は、ドレインタイマーと呼ばれるタイマーによりトラッキングされ得る。このドレインタイマーの長さはプログラム可能であり得、一実施形態においては、およそ50~1000サイクルの間であり得る。この第2段階は、フロー制御信号がアサートされる直前に到着したインフライトトランザクションの処理が問題なく進められ、最終的に非コア空き状態信号をディアサートすることを実質的に可能とする。なお、この入力信号は、非コア空き状態信号のディアサートを引き起こし、よって、MCG移行フロー全体の再開を引き起こす。ひし形360および375における判断の結果が肯定的でありこの期間が終わり、ドレイン期間の全体に亘り1つの非コアクロックサイクルの間もディアサートイベントが起こることなく非コア空き状態信号がアサートされたままである場合、第3段階がトリガされる。ひし形365または375の判断により非コア空き状態信号が第2段階のいずれかの時間においてサンプリングされディアサートされた場合、移行プロセスが中止され、ひし形370および335においてNACKEnableが再設定され、QPIリンクフロー制御がディアサートされる。MCG移行フローのこの最終段階である第3の段階において、ブロック380で実際のクロックゲーティング信号がアサートされる。加えて、クロックゲーティング信号の生成位置から比較的遠く離れたユニットに到達するクロックゲーティング信号の伝搬遅延に対応すべく、クロックゲーティングタイマーが開始され、このタイマーの期限が切れると、クロックゲーティングが完了したと見なされる。クロックゲーティングタイマーの長さはプログラム可能であってよく、一実施形態においては、10~30サイクルの範囲内であり得る。ひし形385の判断によりこのタイマーの期限が切れるとMCGへの移行が行われたものと見なされ、UncoreClockGated状態信号がブロック390において設定される。この状態信号が設定されると、OOBインタフェースはCLKReq信号をアサートすることによりMCGの終了を指示出来るよって、システムをクロックアンゲーティング状態に戻す。なお、CLKReq信号はUncoreClockGated状態信号が設定されているときつまりクロックがゲーティングされているときのみ有効である。またブロック390において、NACKEnable信号もディアサートされる。よってこの時点において、非コアは、ルータおよびPCUを除く全ての非コアユニットがクロックゲーティングされたMCG低電力状態にあり、動的消費電力が低減される。非コアは、任意のイベントまたは出来事によって終了がトリガされるまでこの状態のままである。一般的にクロックゲーティングまたはMCG状態の終了は、複数の条件のうち1つに応じて起こり得る。一実施形態において、第1条件は、QPIリンクの1つを介してルータ入力ポートから新たなトランザクションが受信され、非コア空き状態信号がディアサートされるということである。第2条件は、非コアクロックを有さないユニットを用いる新たなOOBトランザクションが受信され、OOBClkReq信号のアサートが起こるということである。図5は、本願発明の一実施形態に係るMCG終了フローのフロー図である。図5に示されるように、一実施形態において終了フロー400は同様に、PCUのMCG制御論理回路を介して実施され得る。図5に示されるように方法400は、MCG状態がアクティブである、言い換えると、UncoreClockGated状態信号がアクティブであるときに開始されるブロック410。ひし形420において、非コアが空き状態にあり、クロックリクエストがアサートされていないかが判断される。判断の結果が肯定的であれば、非コアはMCG状態のままである。そうでなければ、ブロック430の制御が行われる。ブロック430において、クロックゲーティング有効化信号がディアサートされ、クロックアンゲーティングタイマーが開始される。加えて、UncoreClockGated状態信号が非アクティブ化され得る。なお、クロックアンゲーティングプロセスは、ある程度の回数のサイクルの実行を要し得る。このアンゲーティング期間は、クロックアンゲーティング期間と呼ばれ得る。一実施形態においてこの期間は、クロックアンゲーティングタイマーを用いてトラッキングされ得る。クロックアンゲーティングタイマーの長さはプログラム可能であってよく、一実施形態において、およそ10~30サイクルの範囲であり得る。本願発明の態様はこの点に関して限定されないが、ひし形440の判断においてこのタイマーの期限が切れると、ブロック450においてリンクフロー制御信号がディアサートされ得、UncoreClockGated信号が再設定される。このことにより、この時点でOOBインタフェースは制限なく非コアの全てのユニットへアクセス出来るので、ClkReq信号の必要性がなくなる。図5の実施形態においてはこの特定の実施例が示されているが、本願発明の態様はこの点に関して限定されない。実施形態は、異なるコアアーキテクチャを有するマルチコアプロセッサに用いられ得る。図6は、本願発明の一実施形態に係るプロセッサコアのブロック図である。図6に示されるように、プロセッサコア500はマルチステージパイプラインアウトオブオーダープロセッサであり得、関連する非コアがMCU移行フローを開始する前に低電力状態例えば、C3またはC6状態であり得る存在する複数のコアのうち1つであり得る。図6に示されるように、コア500は、実行される命令をフェッチし、それら命令を後にプロセッサで用いられ得るようにするフロントエンドユニット510を含む。例えばフロントエンドユニット510は、フェッチユニット501、命令キャッシュ503、および、命令デコーダ505を含み得る。いくつかの実施例において、フロントエンドユニット510はさらに、マイクロコード記憶装置、およびマイクロオペレーション記憶装置と併せてトレースキャッシュを含み得る。フェッチユニット501は、例えばメモリまたは命令キャッシュ503からマクロ命令をフェッチし、当該マクロ命令を基本命令、つまりプロセッサにより実行されるマイクロオペレーションにデコードすべく命令デコーダ505に供給する。フロントエンドユニット510と実行ユニット520との間には、マイクロ命令を受信しそれらを実行され得るようにするアウトオブオーダーOOOエンジン515が結合される。より詳細にはOOOエンジン515は、マイクロ命令フローを再度順序付け、実行のために必要な様々なリソースを割り当て、レジスタファイル530および拡張レジスタファイル535などの様々なレジスタファイル内の格納位置へ論理レジスタの名前を変更する様々なバッファを含み得る。レジスタファイル530は、整数および浮動小数点操作のための別個のレジスタファイルを含み得る。拡張レジスタファイル535は、例えばレジスタあたり256または512ビットなどのベクトルサイズの単位での格納部を実現する。例えば様々な整数、浮動小数点、および単一命令複数データSIMD論理ユニット、およびその他専用のハードウェアを含む様々なリソースが実行ユニット520に存在し得る。例えば、そのような実行ユニットは、1以上の算術論理演算ユニットALU522およびその他の実行ユニットを含み得る。実行ユニットからの結果は、リタイア論理回路、つまり、リオーダーバッファROB540に提供され得る。より詳細には、ROB540は、実行される命令に関する情報を受信する様々なアレイおよび論理回路を含み得る。その後この情報は、ROB540によって検証され、命令が正当にリタイアされ得、プロセッサのアーキテクチャ状況にコミットしたデータを生じさせるか、または、命令の適切なリタイアを防止する1以上の例外状況が発生したかどうかの判断が行われる。当然ながら、ROB540はリタイアに関する他の動作も扱い得る。図6に示されるように、ROB540はキャッシュ550に結合され、キャッシュ550は一実施形態において、低レベルキャッシュ例えばL1キャッシュであり得るが、本願発明の態様はこの点に関して限定されない。また、実行ユニット520は直接キャッシュ550に結合され得る。キャッシュ550から、高レベルキャッシュ、システムメモリなどとのデータ通信が行われ得る。図6においてはこの高レベルの構成が示されているが、本願発明の態様はこの点に関して限定されない。例えば、図6の実装例は、いわゆるx86命令セットアーキテクチャISAなどのアウトオブオーダーマシンに関するが、本願発明の態様はこの点に関して限定されない。代わりにコアは、インオーダープロセッサ、ARMベースプロセッサなど縮小命令セットコンピューティングRISCプロセッサ、または、エミュレーションエンジンおよび関連付けられた論理回路を介して異なるISAの命令および動作をエミュレート出来る他のタイプのISAのプロセッサとして実装され得る。実施形態は、多くの異なるタイプのシステムにおいて実装され得る。図7は、本願発明の一実施形態に係るシステムのブロック図である。図7に示すようにマルチプロセッサシステム600は、ポイントツーポイント相互接続システムであり、ポイントツーポイント相互接続650を介して互いに結合された第1プロセッサ670と第2プロセッサ680とを含む。図7に示されるように、プロセッサ670、680のそれぞれは、第1および第2プロセッサコアつまり、プロセッサコア674a、674b、およびプロセッサコア684a、684bを含む多数のコアを有するプロセッサであり得る。なお、より多くのコアがプロセッサ内に存在していてもよい。加えて各プロセッサは、本願発明の一実施形態に係るMCGフローを実施する非コア675、685を含み得る。続けて図7を参照すると、第1プロセッサ670はさらに、メモリコントローラハブMCH672と、ポイントツーポイントP-Pインタフェース676、678とを含む。同様に、第2プロセッサ680はMCH682とP-Pインタフェース686、688とを含む。図7に示されるように、MCH672、682はプロセッサを、各プロセッサにローカルに取り付けられたシステムメモリ例えばDRAMの一部であってもよい各メモリ、つまり、メモリ632およびメモリ634に結合する。第1プロセッサ670および第2プロセッサ680は、P-P相互接続652、654を介してチップセット690に結合されてもよい。図7に示されるようにチップセット690は、P-Pインタフェース694、698を含む。さらに、チップセット690は、P-P相互接続639によりチップセット690を高性能グラフィクスエンジン638に結合するインタフェース692を含む。そしてチップセット690は、インタフェース696を介して第1バスに結合され得る。図7に示されるように、第1バス616を第2バス620に結合するバスブリッジ618と併せて、様々な入出力I/Oデバイス614が、第1バス616に結合され得る。例えばキーボード/マウス622、通信デバイス626、および、データ記憶ユニット628を含む様々なデバイスが第2バス620に結合され得る。一実施形態においてデータ記憶ユニット628は、コード630を含み得るディスクドライブ、または他の大容量記憶デバイスであり得る。さらに、オーディオI/O624が第2バス620に結合され得る。実施形態は、スマートセルラーフォン、タブレットコンピュータ、ネットブックなどのモバイルデバイスを含む他のタイプのシステムに組み込まれ得る。実施形態はコードを用いて実装されてもよく、当該コードは、命令を格納した記憶媒体に格納され得、当該記憶媒体を用いて、システムが当該命令を実行するようプログラムされ得る。記憶媒体には、フロッピー登録商標ディスク、光ディスク、半導体ドライブSSD、CD-ROM、CD-RW、および光磁気ディスクを含むディスクなどの何らかのタイプの非一時的記憶媒体、読取専用メモリROMなどの半導体デバイス、ダイナミックランダムアクセスメモリDRAM、スタティックランダムアクセスメモリSRAM、消去可能プログラム可能読取専用メモリEPROM、フラッシュメモリ、電気的消去可能プログラム可能読取専用メモリEEPROMなどのランダムアクセスメモリRAM、磁気カードまたは光カード、若しくは、電子命令を格納するのに適した他の何らかのタイプの媒体が含まれ得るが、これらに限定されない。本願発明について限られた数の実施形態に関して説明してきたが、当業者であれば、様々な修正例および変形例が実施可能であることを理解されよう。以下の請求項は、そのような修正例および変形例の全てを本願発明の思想および態様に含まれるものとして包含するよう意図されている。