(57)【要約】  プロセッサを管理するシステム及び方法は、複数のコアを有するプロセッサのコアにおいてコマンドを検出し、当該コマンドは、コアのアイドル状態への移行をリクエストする。コアの電力消費は、コマンドと複数のコアのそれぞれのアイドル状態とに基づき管理される。
2008511912.tif 000002
【特許請求の範囲】
【請求項１】
複数のコアを有するプロセッサのコアにおいて、該コアのアイドル状態への移行を要求するコマンドを検出するステップを有する方法。
【請求項２】
前記コマンドと、前記複数のコアのそれぞれのアイドル状態とに基づき、前記コアの電力消費を管理するステップをさらに有する、請求項１記載の方法。
【請求項３】
前記コアのアイドル状態への移行前に、前記コアにおいて専用の省電力機能を起動するステップと、
前記コアの実行を停止するステップと、
をさらに有する、請求項２記載の方法。
【請求項４】
前記電力消費を管理するステップはさらに、
前記複数のコアの何れもがアクティブでないと判断するステップと、
前記実行の停止前に、共有の省電力機能を起動するステップと、
外部のブレークイベントが前記複数のコアに到達することを禁止するステップと、
前記複数のコアを前記アイドル状態に移行するステップと、
を有する、請求項３記載の方法。
【請求項５】
前記複数のコアのそれぞれが、共通状態への移行を要求するコマンドを検出したか判断するステップと、
前記複数のコアのそれぞれが前記共通状態への移行を要求するコマンドを検出していない場合、前記複数のコアのうち最も浅い状態を前記アイドル状態として選択するステップと、
をさらに有する、請求項４記載の方法。
【請求項６】
前記複数のコアをアイドル状態に移行するステップは、チップセットにリードトランザクション、バスメッセージ及びサイドバンド信号から構成されるグループから選択された信号を発信するステップを有する、請求項４記載の方法。
【請求項７】
前記共有の省電力機能を起動するステップは、前記プロセッサのパフォーマンス状態を低減すること、共有の位相同期ループをシャットダウンすること、及び前記プロセッサの実行コンテクストを保存することから構成されるグループから選択されるプロセスを起動するステップを有する、請求項４記載の方法。
【請求項８】
前記電力消費を管理するステップはさらに、
前記複数のコアの１以上がアクティブであると判断するステップと、
前記アイドル状態が前記複数のコアにより共有されるリソースに係るものであるか判断するステップと、
を有する、請求項３記載の方法。
【請求項９】
前記電力消費を管理するステップはさらに、
前記アイドル状態が前記複数のコアによって共有されるリソースに係るものである場合、前記複数のコアのそれぞれが前記アイドル状態への移行を要求するコマンドを検出するまで、前記コアを一時的状態に移行するステップと、
前記アイドル状態が前記複数のコアによって共有されるリソースに係るものでない場合、前記コアを前記アイドル状態に移行するステップと、
を有する、請求項８記載の方法。
【請求項１０】
前記専用の省電力機能を起動するステップは、
前記コアのレベル１キャッシュを前記プロセッサのレベル２キャッシュにフラッシュするステップと、
前記レベル１キャッシュをスヌープ不可状態に配置するステップと、
前記コアの専用のクロックをゲート処理するステップと、
を有する、請求項３記載の方法。
【請求項１１】
前記検出するステップは、
アドレスを特定する第１コマンドを検出するステップと、
前記アドレスに遭遇すると、前記コアに前記アイドル状態で待機するよう指示する第２コマンドを検出するステップと、
を有する、請求項１記載の方法。
【請求項１２】
前記検出するステップは、
前記アイドル状態を特定する入出力（Ｉ／Ｏ）リードトランザクションを受け付けるステップと、
前記Ｉ／Ｏリードトランザクションを、アドレスに遭遇するまで前記コアに前記アイドル状態で待機するよう指示する第２コマンドに変換するステップと、
を有する、請求項１記載の方法。
【請求項１３】
当該コアのアイドル状態への移行を要求するコマンドを検出するコアを含む複数のコアと、
前記コマンドと、前記複数のコアのそれぞれのアイドル状態とに基づき前記コアの電力消費を管理するハードウェア調整ロジックと、
を有するプロセッサを有する装置。
【請求項１４】
前記コアは、該コアが前記アイドル状態に移行される前に、該コアにおいて専用の省電力機能を起動し、該コアの実行を停止する、請求項１３記載の装置。
【請求項１５】
前記調整ロジックは、前記複数のコアの何れもアクティブでないと判断し、前記実行の停止前に共有の省電力機能を起動し、外部のブレークイベントが前記複数のコアに到達することを禁止し、前記複数のコアを前記アイドル状態に移行する、請求項１４記載の装置。
【請求項１６】
前記調整ロジックは、前記複数のコアのそれぞれが、共通の状態への移行を要求するコマンドを検出したか判断し、前記複数のコアのそれぞれが前記共通の状態への移行を要求するコマンドを検出していない場合、前記複数のコアのうち最も浅い状態を前記アイドル状態として選択する、請求項１５記載の装置。
【請求項１７】
前記調整ロジックは、前記複数のコアを前記アイドル状態に移行するため、リードトランザクション、バスメッセージ及びサイドバンド信号から構成されるグループから選択される信号をチップセットに発信する、請求項１５記載の装置。
【請求項１８】
前記調整ロジックは、前記共有の省電力機能を起動するため、前記プロセッサのパフォーマンス状態を低減すること、共有の位相同期ループをシャットダウンすること、又は前記プロセッサの実行コンテクストを保存することから構成されるグループから選択されるプロセスを起動する、請求項１５記載の装置。
【請求項１９】
前記調整ロジックは、前記複数のコアの１以上がアクティブであると判断し、前記アイドル状態が前記複数のコアによって共有されるリソースに係るものであるか判断する、請求項１４記載の装置。
【請求項２０】
前記複数のコアによって共有されるリソースをさらに有し、
前記コアは、前記アイドル状態が前記リソースに係るものである場合、前記複数のコアのそれぞれが前記アイドル状態への移行を要求するコマンドを検出するまで、当該コアを一時的状態に移行し、前記アイドル状態が前記リソースに係るものでない場合、当該コアを前記アイドル状態に移行する、請求項１９記載の装置。
【請求項２１】
前記コアに専用のレベル１キャッシュと、
前記複数のコアによって共有されるレベル２キャッシュと、
前記コアに専用のクロックと、
をさらに有し、
前記コアは、前記レベル１キャッシュを前記レベル２キャッシュにフラッシュし、前記レベル１キャッシュをスヌープ不可状態に配置し、前記クロックをゲート処理する、請求項１４記載の装置。
【請求項２２】
前記コアは、アドレスを特定する第１コマンドを検出し、前記アドレスに遭遇するまで、前記コアに前記アイドル状態で待機するよう指示する第２コマンドを検出する、請求項１３記載の装置。
【請求項２３】
前記コアは、前記アイドル状態を特定する入出力（Ｉ／Ｏ）リードトランザクションを受け付け、前記Ｉ／Ｏリードトランザクションを、アドレスに遭遇するまで前記コアが前記アイドル状態で待機するよう指示する第２コマンドに変換する、請求項１３記載の装置。
【請求項２４】
命令を格納するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）と、
前記命令を実行し、当該コアのアイドル状態への移行を要求するコマンドを検出するコアを含む複数のコアと、前記コマンドと、前記複数のコアのそれぞれのアイドル状態とに基づき、前記コアの電力消費を管理するハードウェア調整ロジックとを有するプロセッサと、
を有するシステム。
【請求項２５】
前記コアは、該コアが前記アイドル状態に移行される前に、該コアにおいて専用の省電力機能を起動し、該コアの実行を停止する、請求項２４記載のシステム。
【請求項２６】
前記調整ロジックは、前記複数のコアの何れもアクティブでないと判断し、前記実行の停止前に共有の省電力機能を起動し、外部のブレークイベントが前記複数のコアに到達することを禁止し、前記複数のコアを前記アイドル状態に移行する、請求項２５記載のシステム。
【請求項２７】
前記プロセッサと前記メモリとの間に配置されるチップセットをさらに有し、
前記調整ロジックは、前記複数のコアを前記アイドル状態に移行するため、リードトランザクション、バスメッセージ及びサイドバンド信号から構成されるグループから選択される信号を前記チップセットに発信する、請求項２６記載のシステム。
【請求項２８】
前記コアは、該コアのＣ−ｓｔａｔｅへの移行を要求するコマンドを検出する、請求項２４記載のシステム。
【請求項２９】
複数のコアを有するプロセッサのコアにおいて、該コアのＣ−ｓｔａｔｅへの移行を要求するコマンドを検出するステップと、
前記コアをＣ−ｓｔａｔｅに移行する前に、前記コアにおいて専用の省電力機能を起動するステップと、
前記複数のコアのそれぞれがアクティブであるか判断するステップと、
前記複数のコアの何れかもアクティブでない場合、共有の省電力機能を起動し、外部のブレークイベントが前記複数のコアに到達することを禁止し、前記複数のコアをＣ−ｓｔａｔｅに移行するステップと、
前記複数のコアの１以上がアクティブである場合、前記Ｃ−ｓｔａｔｅは前記複数のコアによって共有されるリソースに係るものであるか判断するステップと、
前記Ｃ−ｓｔａｔｅが前記複数のコアによって共有されるリソースに係るものである場合、前記複数のコアのそれぞれが前記Ｃ−ｓｔａｔｅへの移行を要求するコマンドを検出するまで、前記コアを一時的状態に移行するステップと、
前記Ｃ−ｓｔａｔｅが前記複数のコアによって共有されるリソースに係るものでない場合、前記コアを前記Ｃ−ｓｔａｔｅに移行するステップと、
前記コアの実行を停止するステップと、
を有する方法。
【請求項３０】
前記専用の省電力機能を起動するステップは、
前記コアのレベル１キャッシュを前記プロセッサのレベル２キャッシュにフラッシュするステップと、
前記レベル１キャッシュをスヌープ不可状態に配置するステップと、
前記コアの専用クロックをゲート処理するステップと、
を有する、請求項２８記載の方法。
【請求項３１】
前記複数のコアの何れもがアクティブでない場合、当該方法はさらに、
前記複数のコアのそれぞれが共通の状態への移行を要求するコマンドを検出したか判断するステップと、
前記複数のコアのそれぞれが前記共通の状態を要求するコマンドを検出しなかった場合、前記複数のコアのうち最も浅い状態を前記Ｃ−ｓｔａｔｅとして選択するステップと、
を有する、請求項２８記載の方法。
【請求項３２】
前記共有の省電力機能を起動するステップは、前記プロセッサのパフォーマンス状態を低減すること、位相同期ループをシャットダウンすること、及び前記プロセッサの実行コンテクストを保存することから構成されるグループから選択されるプロセスを起動するステップを有する、請求項２８記載の方法。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
［背景］
技術分野
本発明の１以上の実施例は、一般に電力管理に関する。特に、ある実施例は、マルチコアプロセッサにおける電力消費の管理に関する。
【０００２】
説明
より多くのトランジスタとより高い周波数を備えた先進的な中央処理ユニット（ＣＰＵ）に対するトレンドが拡大し続けるに従って、コンピュータ設計者及びメーカーはしばしば、電力及びエネルギー消費の対応する増加に直面する。さらに、より高速かつより小型のコンポーネントを提供する製造技術は、同時に漏れ電力の増大を招く可能性がある。特にモバイル計算環境では、電力消費の増大は、パフォーマンスに悪影響を及ぼしうるオーバーヒートを招く可能性があり、バッテリー寿命を大きく短縮させうる。バッテリーは典型的には、限られた容量しか有しないため、必要以上にモバイル計算システムのプロセッサを実行させることは、所望するよりも早くに容量を枯渇させる可能性がある。
【０００３】
ある現在のモバイル計算システムは、実行すべき命令がないとき、各種パワー／アイドル状態にプロセッサをおくことによって、電力を節約しようとしている。しかしながら、これらの解決手段は典型的には、シングルコアプロセッサに特化したものであるということに留意すべきである。この結果、従来のアプローチは、電力を管理し、電力状態移行決定を行う際、シングルコアの状態しか考慮する必要がない。さらに、電力管理はオペレーティングシステム（ＯＳ）レベルで実現されることが通常であり、プロセッサアーキテクチャがより複雑になるに従って、低速になりすぎるようになるかもしれない。
【０００４】
［詳細な説明］
図１は、各コア１２が命令フェッチユニット、命令デコーダ、レベル１（Ｌ１）キャッシュ（１４ａ〜１４ｂ）、実行ユニットなどにより十分機能的なものである複数のコア１２（１２ａ〜１２ｂ）を有するプロセッサ１０を示す。図示されたプロセッサ１０は２つのコア１２を有するが、本発明の実施例はこれに限定されるものではない。実際、ここに記載される技術は、電力消費が問題となる任意のマルチコアアーキテクチャに有用となる可能性がある。従って、任意数のコアが、ここに記載される実施例の趣旨及び範囲から逸脱することなく利用可能である。
【０００５】
各コア１２は、アイドル状態へのコア１２の移行をリクエストするコマンドを検出することが可能である。当該コマンドは、コア１２の内部又はコア１２の外部からのものであるかもしれない。アイドル状態は、Ａｄｖａｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅ（ＡＣＰＩ、Ｖｅｒ．ｘ２８５，Ｊｕｎｅ  ２００４）Ｓｐｅｃｉｆｉｃａｔｉｏｎに記載される“Ｃ−ｓｔａｔｅｓ”の１つなどのプロセッサパワー状態であるかもしれない。一般に、よりディープなアイドル状態は、より低い電力消費及びより長いイグジット遅延に関連付けされる。以下のテーブルは、Ｃ−ｓｔａｔｅ遅延を特定するための１つのアプローチを示す。他のアプローチもまた利用可能である。
【０００６】
【表１】
2008511912.tif 000003
プロセッサ１０は、コア１２により共有されるレベル２（Ｌ２）キャッシュ２０を有することが可能である。他方、Ｌ１キャッシュ１４は、それら各自のコア１２に専用のものであってもよい。以下でより詳細に説明されるように、Ｌ１キャッシュ１４の専用性は、コア単位の電力管理を提供する。コア１２はまた、コア単位の電力の節約を獲得するためゲート処理可能な専用のクロック入力１５（１５ａ〜１５ｂ）を有する。ハードウェア調整ロジック１６は、複数のコア１２のそれぞれのアイドル状態１８（１８ａ〜１８ｂ）とコマンドに基づき、所与のコア１２の電力消費を管理することが可能である。複数のコア１２と複数のアイドル状態１８を調整することによって、図示されたプロセッサ１０は、より複雑なアーキテクチャをサポートすることが可能であり、従来のソフトウェアによるアプローチより迅速に状態変化に応答することが可能である。図示されたプロセッサ１０はまた、調整ロジック１６を利用して、実際の電力状態移行前に省電力機能を起動することが可能である。この結果は、大きな電力の節約となりうる。
【０００７】
例えば、利用の不足に基づき、Ｃ４状態が第１コア１２ａに適切であると判断されるかもしれない。その他のＣ−ｓｔａｔｅに関してディープなＣ４状態は、典型的には、パッケージワイド電圧及び／又は周波数設定などの共有リソースと関連付けされている。他方、第２コア１２ｂは、アクティブ状態にあるかもしれない。このような状態の下、調整ロジック１６は、第１コア１２ａが依然として電力を節約することができるように、専用の省電力機能の起動に関する「一時的な」状態に第１コアを移行することができる。さらに、第２コア１２ｂが以降においてＣ４状態に移行するリクエストを受け付ける場合、調整ロジック１６はまた、コア１２がＣ４状態に移行されている間、より大きな電力を節約するため共有されている省電力機能を起動することが可能である。同様の効果が、同一の状態にすべてのコアが移行しているときを検出することによって、他のアイドル状態に対して実現可能である。
【０００８】
図２は、上述されたハードウェア調整ロジック１６’と複数のコア１２’（１２ａ’〜１２ｂ’）を備えるプロセッサ１０’を有するシステム２２を示す。図示されたシステム２２はまた、チップセット２０を介しプロセッサ１０’に接続される１以上の入出力（Ｉ／Ｏ）装置２４と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２６と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２８とを有する。ＲＡＭ２６とＲＯＭ２８は、命令３２の実行が電力消費の増大を招く可能性があるコア１２’による１以上のスレッド及び／又はプロセスとして実行可能な命令３２を格納する。アイドル状態移行コマンドがチップセット３０及び／又はオペレーティングシステム（ＯＳ）からコア１２’によって受け付けされると、ハードウェア調整ロジック１６’は、システム２２に対する電力消費を実質的に低減することができる。
【０００９】
図３を参照するに、コアアイドル電力を管理する方法３４が示される。方法３４は、ハードウェア及び／又はソフトウェアプログラミング技術の何れかの組み合わせを利用して実現可能である。例えば、方法３４は、固定された機能ハードウェア、マイクロコード又はそれらの何れかの組み合わせとして、ＲＩＳＣ（Ｒｅｄｕｃｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ）マルチコアプロセッサにより実現可能である。特に、処理ブロック３６は、複数のコアを有するプロセッサのコアにおいてコマンドを検出する。コマンドは、アイドル状態へのコアの移行をリクエストするものであるかもしれない。コアの電力消費は、複数のコアのそれぞれのアイドル状態とコマンドに基づき、ブロック３８において管理される。従って、１つのコアの状態は、他のコアのアイドル状態を管理する際、考慮することが可能である。
【００１０】
図４は、ブロック３８’におけるより詳細な電力消費を管理する１つのアプローチを示す。図示されたブロック４０は、コアのアイドル状態への移行前に、コアの専用の省電力機能を起動する。このようなアプローチは、コアがアイドル状態と等しい状態に入ることを可能にし、コアがアイドル状態によって提供される以上及び以下の電力の節約を実現することを可能にするかもしれない。例えば、リクエストされたアイドル状態が一般に専用のクロックのゲート処理に係るものである場合、ブロック４０は、このような機能を有することが可能である。ブロック４２は、複数のコアのそれぞれがアイドル状態に入る準備ができているか判断する（すなわち、複数のコアの何れもがアクティブでない）。この場合、ブロック４３は、複数のコアのそれぞれが共通の（すなわち、同一の）アイドル状態への移行をリクエストするコマンドを検出したか決定する。
【００１１】
すべてのコアが同一のアイドル状態に必ずしも移行していない場合、複数のコアの中の最も浅い状態が、ブロック５２においてアイドル状態として選択される。従って、第１コアがＣ２に等価な状態（すなわち、ＣＣ２状態）にあり、第２コアがＣ３に等価な状態（すなわち、ＣＣ３状態）にある場合、最も浅い状態はＣ２／ＣＣ２に等価な状態となるであろう。従って、チップセットは、プロセッサが複数の異なるアイドル状態に内部的に直面しているかもしれないが、プロセッサとの統一的なインタフェースに直面する。このようなアプローチは、従来のシングルコア及びマルチプロセッサアーキテクチャからの大きな離脱を表す。適切なアイドル状態が特定されると、共有されている省電力機能がブロック４４において起動される。アイドル状態への移行が、典型的にクロックのゲート処理と実行の停止を伴うことに留意すべきである。しかしながら、ブロック４０及び４４において開始される省電力機能が、クロックが利用可能であり、コアが依然として実行中である間に実現される。この技術は、従来のアプローチに対する実質的な効果を提供することが可能である。
【００１２】
共有されている状態エントリ処理が進行している間、割り込み、例外処理及びモニタイベントなどの外部的なブレークイベントが、ブロック４６において複数のコアに到達することを回避される。ブレークイベントは、様々な方法により禁止することが可能である。例えば、１つのアプローチは、コアのブレークロジックのそれぞれへの特別なインタフェースを提供するものである。他のアプローチは、すべてのブレークソースからコアを物理的に分離することである。共有状態に到達した後、ブレークイベントが検出された場合、共有状態から抜け出る。このようなイグジットは、いくつかの方法により実現可能である。例えば、チップセットは、ブレークイベントを検出し、及び／又はイグジットシーケンスを開始することが可能であるか、又はブレークイベントを検出し、及び／又はイグジットシーケンスを開始するためのロジックが、プロセッサ内に設けることができる。マルチコアプロセッサがアイドル状態から抜け出すと、外部のブレークイベントの禁止が中止できる。ブロック４８は、複数のコアをアイドル状態に移行する。コアのアイドル状態への移行は、リードトランザクション、特殊なバスメッセージ、チップセットへのサイドバンド信号などの信号の発信を伴う可能性がある。例えば、１つのアプローチは、スリープ（すなわち、ＳＬＰ）、ディープスリープ（すなわち、ＤＰＳＬＰ）及びディーパースリープ（すなわち、ＤＰＲＳＬＰ）状態信号が、プロセッサとチップセットの間で転送されるチップセットにより良好にドキュメント化されたハンドシェイクシーケンスを開始するということである。
【００１３】
ブロック４２において、複数のコアの１以上がアクティブであると判断された場合、ブロック５６は、アイドル状態が複数のコアによって共有されるリソースに係るものであるか決定する。上述したように、共有リソースは、周波数及び／又はコア電圧設定であるかもしれない。このような状態の一例は、Ｃ４状態であるかもしれない。アイドル状態が共有リソースに係る場合、各コアがアイドル状態への移行をリクエストするコマンドを検出するまで、コアはブロック５８において一時的状態に移行される。そうでない場合、コアはブロック５７において要求された状態に移行させることが可能である。ブロック５０は、コアの実行を中断する。
【００１４】
図５Ａ及び５Ｂを参照するに、ブロック４０’及び４４’において、専用及び共有の省電力機能を起動するアプローチがより詳細に示される。特に、Ｌ１キャッシュは、ブロック６０においてＬ２キャッシュにフラッシュされ、ブロック６２において低電力スヌープ不可状態におかれる。フラッシュされたデータがＬ２キャッシュ（Ｌ１キャッシュがスヌープ不可状態にある間、スヌープを処理する）に存在しない場合、データはさらにシステムメモリにフラッシュすることができる。Ｌ１フラッシュ機能は、Ｃ３及びＣＣ３状態に利用可能である。ブロック６４は、コアの専用クロックをゲート処理する。
【００１５】
すべてのコアがアイドル状態に入る準備ができると、ブロック６６は、プロセッサのパフォーマンス状態を低減する。パフォーマンス状態は、典型的にはコア電圧及び／又は周波数などの共有リソース設定の調整に関する。以下のテーブルは、プロセッサコアに利用可能な複数のパフォーマンス状態設定の一例を示す。
【００１６】
【表２】
2008511912.tif 000004
プロセッサの実行コンテクストが、ブロック７０においてセーブすることができ、共有位相同期ループ（ＰＬＬ）が、ブロック６８においてシャットダウンすることが可能である。図示されたアプローチでは、ＰＬＬシャットダウンは、チップセットハンドシェイクシーケンスが完了した後、実行することができる。上述したように、上記などの先進的な省電力機能を開始することによって、コアが命令を依然として実行可能である一方、図示されたアプローチは、従来技術に対して大きな効果を提供する。
【００１７】
図６Ａは、ブロック７２におけるアイドル状態移行コマンドを検出する１つのアプローチをより詳細に示す。従って、ブロック７２は、上述したブロック３６（図３）に容易に置換可能である。特に、図示されたブロック７６は、アドレスを特定する第１コマンドを検出する。このような１つのコマンドは、ＭＯＮＩＴＯＲコマンドであるかもしれない。第２コマンドは、ブロック７６において検出され、第２コマンドは、コアが当該アドレスに直面するまで、アイドル状態において待機することを指示する。このような１つのコマンドは、ＭＷＡＩＴ（Ｃｘ）コマンドであるかもしれない。ここで、“ｘ”はターゲットとなるアイドルコマンドを意味する。ＭＷＡＩＴアプローチは、マルチコア処理をサポートするよう最適化されたプロセッサドライバにより実現可能である。
【００１８】
図６Ｂは、ブロック７２’におけるアイドル状態移行コマンドを検出する他のアプローチをより詳細に示す。従って、ブロック７２’は、上述したブロック３６に容易に置換可能である。特に、図示されたブロック７８は、アイドル状態を特定するＩ／Ｏリードトランザクションを受け付ける。このような１つのトランザクションは、Ｌｅｖｅｌｘ＿Ｒｄトランザクションであるかもしれない。ここで、“ｘ”はターゲットアイドル状態を意味する。このタイプのコマンドは、チップセット及び／又はＯＳにより発信することが可能である。ブロック８０は、Ｉ／Ｏリードトランザクションをアドレスに直面するまでアイドル状態で待機するようコアに指示する第２コマンドに変換する。従って、Ｉ／Ｏリードトランザクションは、ＭＷＡＩＴコマンドに変換することが可能である。
【００１９】
図７を参照するに、マルチコア状態マシーン８２の特定の具体例が示される。状態マシーン８２は、説明のためＣ４状態のターゲット状態を参照して説明される。例えば、双方のコアが状態８４と８６として示されるアクティブ状態Ｃ０にあるケースを検討する。第１コア（すなわち、ｃｏｒｅ＿０）がＭＷＡＩＴ（Ｃ４）コマンド（又はＩ／Ｏリードトランザクション）を受け付けると、第１コアは、矢印８８において一時的状態９０におかれる。一時的状態９０は“ＣＣ３（Ｃ４）”として示される。第１コアは、Ｌ１キャッシュのフラッシュ、第１コアの専用クロックのゲート処理など、各種専用の省電力機能を起動する。割り込み又は指定されたＭＯＮＩＴＯＲアドレスに遭遇すると、第１コアは、矢印９２においてアクティブ状態８４に「ブレーク」する。第１コアが一時的状態９０にいる間、ハードウェア調整ロジックは、第２コアがＣ４状態に移行する準備ができたときを検出するため、第２コア（すなわち、ｃｏｒｅ＿１）をモニタリングする。第１コアが一時的状態９０にいる間に、第２コアがＣ４状態に移行するリクエストを受け付けると、第２コアは、矢印９６において一時的状態９４に移行する。
【００２０】
その後、ハードウェア調整ロジックは、双方のコアがＣ４状態への移行をリクエストするコマンドを検出したと判断し、パフォーマンス状態低減、共有ＰＬＬのシャットダウン、プロセッサの実行コンテクストの保存など、より先進的な省電力機能を起動するかもしれない。調整ロジックはまた、外部のブレークイベントが状態９８においてコアに到達することを禁止することができる。外部のブレークイベントが禁止されると、調整ロジックは、双方のコアをＣ４状態に移行することができる。特に、Ｉ／Ｏリードトランザクションは、矢印１００においてチップセットに発信することが可能であり、ここで、コアが状態１０２において完了通知を待機する。チップセットアクノリッジメント（ＳＴＰＣＬＫピンアサーションなど）及びＩ／Ｏサイクル完了通知を受け付けると、調整ロジックは、矢印１０４においてチップセットにストップグラント（ｓｔｏｐ  ｇｒａｎｔ）信号を発信し、Ｓｔｏｐ＿ＧＮＴ状態１０６において待機する。その後、プロセッサ全体は、スリープ（すなわち、ＳＬＰ）、ディープスリープ（すなわち、ＤＰＳＬＰ）及びディーパースリープ（すなわち、ＤＰＲＴＳＬＰ）を介しシーケンス処理される。ここで、ディープスリープ状態とディーパースリープ状態は、それぞれ従来のＣ３及びＣ４状態に対応する。
【００２１】
いくつかの効果が、ここに記載された各種技術を通じて実現可能である。例えば、コア毎にソフトウェアが異なるアイドル状態コマンドを開始することを可能にすることは、最大のフレキシビリティと省電力を提供する。さらに、コア単位でターゲットとなるアイドル状態を内部的に解析することによって（外部専用のシーケンス処理に対して）、クロックが利用可能であり、コアが依然として実行している間、先進的な電力管理動作を開始することが可能である。また、共通の「最も浅い（ｓｈａｌｌｏｗｅｓｔ）」状態をチップセット及び他のシステムコンポーネントに提供しながら、各コアに対して独立したアイドル状態を確立することが可能である。この結果は、大変スケーラブルであり、高度な解決手段である。簡単に言えば、上述したようなマルチコア環境におけるアイドル状態のハードウェア調整は、従来のアーキテクチャ及び／又は技術に対する実質的な効果を提供することができる。
【００２２】
当業者は、本発明の実施例の広範な技術が様々な方法により実現可能であることを上記説明から理解することができる。従って、本発明の実施例がそれの具体例に関して説明されたが、本発明の実施例の真の範囲は、これに限定されるものではなく、図面、明細書及び以下の請求項を参照することにより、他の改良が当業者に明らかになるであろう。
【図面の簡単な説明】
【００２３】
【図１】図１は、本発明の一実施例によるマルチコアプロセッサの一例のブロック図である。
【図２】図２は、本発明の一実施例による計算システムの一例のブロック図である。
【図３】図３は、本発明の一実施例によるコアアイドル電力を管理する方法の一例のフローチャートである。
【図４】図４は、本発明の一実施例による電力消費を管理するプロセスの一例のフローチャートである。
【図５Ａ】図５Ａは、本発明の一実施例による専用の省電力機能を起動するプロセスの一例のフローチャートである。
【図５Ｂ】図５Ｂは、本発明の一実施例による共有の省電力機能を起動するプロセスの一例のフローチャートである。
【図６Ａ】図６Ａは、本発明の一実施例によるコマンドを検出するプロセスの一例のフローチャートである。
【図６Ｂ】図６Ｂは、本発明の他の実施例によるコマンドを検出するプロセスの一例のフローチャートである。
【図７】図７は、本発明の一実施例による電力管理状態マシーンの一例の状態図である。
【図１】
2008511912.tif 000005
【図２】
2008511912.tif 000006
【図３】
2008511912.tif 000007
【図４】
2008511912.tif 000008
【図５Ａ】
2008511912.tif 000009
【図５Ｂ】
2008511912.tif 000010
【図６Ａ】
2008511912.tif 000011
【図６Ｂ】
2008511912.tif 000012
【図７】
2008511912.tif 000013
【国際調査報告】
2008511912.tif 000014
2008511912.tif 000015
2008511912.tif 000016
2008511912.tif 000017
2008511912.tif 000018