(57)【特許請求の範囲】
【請求項１】
各コアが対応する独立リソース設定を有し、第１コアと第２コアとを含む複数のコアにより共有される共有リソースに対して、互いに異なる対応する第１動作要求と第２動作要求とを含む複数の対応する整合しない動作要求を提供する複数のコアと、
前記複数のコアに接続され、前記複数の整合しない動作要求と、電力セービングポリシーと高パフォーマンスポリシーとの何れが制御するのに最も重要であるものとして特定されているかとに基づき、前記複数のコアにより共有される共有リソースに対する共有リソース設定を調整する調整ロジックと、
を有するプロセッサであって、
前記調整ロジックは、
電力状態遷移テーブルに基づき前記第１動作要求を第１目標値に変換し、
前記電力状態遷移テーブルに基づき前記第２動作要求を第２目標値に変換し、
前記第１目標値と前記第２目標値とを比較することによって前記第１動作要求と前記第２動作要求とを比較し、
前記第２目標値が前記第１目標値より大きい場合、前記第２目標値を前記共有リソース設定として選択する、
ことによって、前記複数の整合しない動作要求に基づき前記共有リソース設定を調整するプロセッサ。
【請求項２】
前記共有リソース設定は、前記複数のコアにより共有されるバス周波数設定と電圧設定とを有し、
前記独立リソース設定は、独立クロックスロットル設定とアーキテクチャスロットル設定とを有する、請求項１記載のプロセッサ。
【請求項３】
前記第１コアは、前記第１動作要求が充足されることを可能にする前記第１コアの対応する独立リソース設定に対する調整値を選択する、
請求項２記載のプロセッサ。
【請求項４】
前記調整ロジックは、前記共有リソース設定から得られる訂正された動作要求を前記第１コアに通知するよう動作可能であり、
前記第１コアは、前記訂正された動作要求に基づき前記調整値を選択する、請求項３記載のプロセッサ。
【請求項５】
前記第２コアは、より小さな第２目標値に対応する変更された動作要求を提供し、
前記調整ロジックは、前記変更された動作要求に基づき前記共有リソース設定を調整し、
前記第１コアは、前記調整された共有リソース設定に基づき、前記第１コアの独立リソース設定を調整し、
前記共有リソース設定は、前記複数のコアにより共有されるバス周波数設定と電圧設定とを有し、
前記独立リソース設定は、独立クロックスロットル設定とアーキテクチャスロットル設定とを有する、
請求項１記載のプロセッサ。
【請求項６】
前記独立リソース設定は、独立クロックスロットル設定とアーキテクチャスロットル設定とを含むセットから選択される設定を有する、請求項１記載のプロセッサ。
【請求項７】
前記共有リソース設定は、電圧設定と周波数設定とを含むセットから選択される設定を有する、請求項１記載のプロセッサ。
【請求項８】
前記複数の動作要求は、複数の電力要求を有する、請求項１記載のプロセッサ。
【請求項９】
前記複数の動作要求は、複数のパフォーマンス要求を有する、請求項１記載のプロセッサ。
【請求項１０】
各コアが対応する独立リソース設定を有し、第１コアと第２コアとを含む複数のコアにより共有される共有リソースに対して、互いに異なる対応する第１動作要求と第２動作要求とを含む複数の対応する整合しない動作要求を提供するステップと、
前記複数の整合しない動作要求と、電力セービングポリシーと高パフォーマンスポリシーとの何れが制御するのに最も重要であるものとして特定されているかとに基づき、前記複数のコアにより共有される共有リソースの共有リソース設定を調整するステップと、
を有する方法であって、
前記共有リソース設定を調整するステップは、
電力状態遷移テーブルに基づき前記第１動作要求を第１目標値に変換し、
前記電力状態遷移テーブルに基づき前記第２動作要求を第２目標値に変換し、
前記第１目標値と前記第２目標値とを比較することによって前記第１動作要求と前記第２動作要求とを比較し、
前記第２目標値が前記第１目標値より大きい場合、前記第２目標値を前記共有リソース設定として選択する、
ことを有する方法。
【請求項１１】
前記共有リソース設定は、前記複数のコアにより共有されるバス周波数設定と電圧設定とを有し、
前記独立リソース設定は、独立クロックスロットル設定とアーキテクチャスロットル設定とを有する、請求項１０記載の方法。
【請求項１２】
前記共有リソース設定から得られる訂正された動作要求を前記第１コアに通知するステップと、
前記訂正された動作要求に基づき前記調整値を選択するステップと、
をさらに有する、請求項１０記載の方法。
【請求項１３】
前記独立リソース設定により前記共有リソース設定を調整するステップは、独立クロックスロットル設定とアーキテクチャスロットル設定とを含むセットから選択される設定により前記共有リソース設定を調整する、請求項１１記載の方法。
【請求項１４】
前記調整するステップは、電圧設定と周波数設定とを含むセットから選択される設定により調整する、請求項１０記載の方法。
【請求項１５】
共有周波数設定を有するクロックソースと、
前記クロックソースに接続される請求項１乃至９何れか一項記載のプロセッサと、
を有する計算システム。
【請求項１６】
第１プロセッサコアから第１動作要求を通知するステップと、
第２プロセッサコアから第２動作要求を通知するステップと、
前記第１動作要求を第１目標値に変換するステップと、
前記第２動作要求を第２目標値に変換するステップと、
前記第１動作要求と前記第２動作要求とを比較するステップと、
前記第２動作要求が前記第１動作要求より大きい場合、前記第２目標値を共有リソース設定として選択するステップと、
前記第１動作要求が充足されることを可能にする独立リソース設定に対して調整値を選択するステップと、
前記第２プロセッサコアから変更された動作要求を通知するステップと、
前記変更された動作要求に基づき前記共有リソース設定を調整するステップと、
前記調整された共有リソース設定に基づき前記独立リソース設定を調整するステップと、
を有する方法。
【請求項１７】
前記共有リソース設定は、電圧設定と周波数設定とを含むセットから選択される設定を含む、請求項１６記載の方法。
【請求項１８】
前記独立リソース設定は、独立クロックスロットル設定とアーキテクチャスロットル設定とを含むセットから選択される設定を含む、請求項１６記載の方法。
【請求項１９】
前記第１動作要求と前記第２動作要求とは、合成された最適状態絶対電力、電力パーセンテージ、パフォーマンスインデックス及び／又は合成された最適状態絶対パフォーマンスの少なくも１つである、請求項１６記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の１以上の実施例は、一般に電力管理に関する。より詳細には、特定の実施例は、マルチコアプロセッサにおける電力管理動作の調整に関する。
【背景技術】
【０００２】
より多くのトランジスタとより高い周波数を備えた先進的なプロセッサに対するトレンドが増大し続けるに従って、コンピュータ設計者及び製造者は、しばしば対応する電力消費の増大に直面する。さらに、より高速かつ小型のコンポーネントを提供する製造技術は、同時に漏れ電力の増大をもたらしうる。特にモバイル計算環境では、電力消費の増大はオーバーヒートを発生させる可能性があり、パフォーマンスに悪影響を与え、バッテリ寿命を大きく低減させる可能性がある。
【０００３】
いくつかの現在のモバイル計算システムは、プロセッサベース電力管理スキームを実現することにより、バッテリ寿命の低減に対する懸念に取り組んでいる。例えば、より一般的なアプローチの１つは、高いパフォーマンスが必要とされない、又は所望されないときには、プロセッサのクロック周波数とコア電圧を低下させることによって、動的にプロセッサの電力消費を低下させるというものである。電力管理はまた、プロセッサがチップセット、メモリサブシステム、入出力（Ｉ／Ｏ）デバイスなどの他のコンポーネントと通信するのに利用するバスの周波数を招請することによって向上させることが可能である。他のアプローチは、電力を節約するため、プロセッサに対するクロックをスイッチオン・オフ又は「ゲート」オン・オフ（すなわち、クロックの「スロットル」）することである。プロセッサベース電力管理のさらなる具体例は、内部アレイ、実行ユニットなどのプロセッサのアーキテクチャコンポーネントをスロットルすることである。いくつかの技術は、電力消費をさらに低下させるため、上記アプローチの各種組み合わせを利用している。これらの電力管理スキームはある状況下においては許容であるものであるが、いくつかの問題が残っている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
１つの問題は、各プロセッサ上に複数のコアを備えるシステムの複数のプロセッサを含むことが可能なより複雑なプロセッサアーキテクチャに対する近年のトレンドに関するものである。このような場合、電力関連リソース及び関連するコントロールのいくつかは、プロセッサコア間で共有される一方、他のリソース及びコントロールは、所与のコアに専用とされるかもしれない。専用のリソース及びコントロールは、他のコアのリソース及びコントロールと独立したものである一方、共有されたリソース及びコントロールは、各コアの状態に依存する。しかしながら、従来の電力管理スキームは、これらのケースにおいては良好には機能しないかもしれない。なぜなら、それらはシングルプロセッサ環境に対して構成されているためである。
【０００５】
例えば、そのようなスキームの１つは、オペレーティングシステム（ＯＳ）レベルでの各種電力状態の間のプロセッサの遷移を制御する。将来的なＯＳの実現形態は、コア単位ベースにより電力を管理することが可能となるかもしれないが、ＯＳがコア間で調整を行うことが可能となるか否かは明らかではない。さらに、ＯＳの実現形態がコア単位の電力管理を実現したとしても、依然として効率性の問題が残る。特に、ＯＳは、利用可能なパフォーマンス／電力制御機構のすべてを認識していないかもしれず、それらの間のトレードオフをバランスさせることができないかもしれない。さらに、このような複雑なアーキテクチャを調整するためソフトウェアに依存することは、ＯＳのオーバヘッドを増大させ、ソフトウェア計算複雑さに増大させる可能性がある。マルチコアプロセッサのソフトウェアベースの電力管理は、相互依存する各コアにおいて行われる可能性がある迅速な状態変化のため、タイミングの観点から実現することが困難であるかもしれない。
【０００６】
本発明の課題は、上記課題に鑑み、マルチコアプロセッサにおける電力管理動作を調整するのに好適な技術を提供することである。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明の一特徴は、各コアが対応する独立リソース設定を有し、第１コアと第２コアとを含む複数のコアにより共有される共有リソースに対して、互いに異なる対応する第１動作要求と第２動作要求とを含む複数の対応する整合しない動作要求を提供する複数のコアと、前記複数のコアに接続され、前記複数の整合しない動作要求と、電力セービングポリシーと高パフォーマンスポリシーとの何れが制御するのに最も重要であるものとして特定されているかとに基づき、前記複数のコアにより共有される共有リソースに対する共有リソース設定を調整する調整ロジックとを有するプロセッサであって、前記調整ロジックは、電力状態遷移テーブルに基づき前記第１動作要求を第１目標値に変換し、前記電力状態遷移テーブルに基づき前記第２動作要求を第２目標値に変換し、前記第１目標値と前記第２目標値とを比較することによって前記第１動作要求と前記第２動作要求とを比較し、前記第２目標値が前記第１目標値より大きい場合、前記第２目標値を前記共有リソース設定として選択することによって、前記複数の整合しない動作要求に基づき前記共有リソース設定を調整するプロセッサに関する。
【発明の効果】
【０００８】
本発明によると、マルチコアプロセッサにおける電力管理動作を調整するのに好適な技術を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本発明の一実施例によるプロセッサの一例のブロック図である。
【図２】図２は、本発明の一実施例による電力管理アーキテクチャの一例を示す図である。
【図３】図３は、本発明の一実施例によるパフォーマンス状態遷移テーブルの一例を示す図である。
【図４】図４は、本発明の一実施例によるシステムの一例を示すブロック図である。
【図５】図５は、本発明の一実施例による電力管理方法の一例のフローチャートである。
【図６】図６は、本発明の一実施例による独立リソース設定により共有リソース設定を調整する処理の一例のフローチャートである。
【図７】図７は、本発明の一実施例による共有リソース設定を選択する処理の一例のフローチャートである。
【図８】図８は、本発明の一実施例によるリソース設定を調整する処理の一例のフローチャートである。
【発明を実施するための形態】
【００１０】
図１は、第１コア１２と、第２コア１４と、第１コア１２及び第２コア１４に動作可能に接続されるハードウェア調整ロジック１６とを有するプロセッサ１０を示す。ここでは、「第１」及び「第２」という用語は、説明の簡単化のためだけに利用される。さらに、ここではデュアルコアコンフィギュレーションが図示されているが、プロセッサ１０のコアの個数は、本発明の実施例の趣旨及び範囲から逸脱することなく、容易に増やすことが可能である。図示されたコア１２と１４のそれぞれは、論理プロセッサとして十分機能的なものであり、従来の実行ユニット、レベル１（Ｌ１）キャッシュなどを有する。従って、図示されたデュアルコアコンフィギュレーションは、従来のシングルコアプロセッサに対して大きなパフォーマンスの向上をもたらす。
【００１１】
プロセッサ１０は、電力の大きな低下を可能にするいくつかの機能／リソースを有する。例えば、プロセッサ１０は、高いパフォーマンスが必要とされない、又は所望されないときには、プロセッサクロック周波数及び電源電圧（コア電圧など）を低下させることが可能な機能を有するかもしれない。他の電力節約機能は、バス（図示せず）のクロック周波数を調整するものであるかもしれない。さらなる他の機能は、クロックをスロットル（又は「ゲート」）オン・オフすることが可能であり、これにより、電力消費を低下させることが可能である。クロックスロットル処理は、プロセッサ１０の各部分に又はパッケージレベルにおいて実行することが可能である。さらなる他の電力節約機能は、電力を低下及び／又は温度を低下させるため、コア１２及び１４のアーキテクチャコンポーネントをスロットル処理することに関するものであるかもしれない。
【００１２】
上記機能のそれぞれは電力管理の観点から特に効果的であるが、それらのいくつかは、コア１２及び１４により共有されるリソースを利用し、他のものは、コア１２及び１４により独立に制御されるリソースに関するものである。図示されたプロセッサ１０は、一般には双方のシナリオを動的にサポートすることが可能なアーキテクチャを有し、従来の電力管理スキームに対していくつかの効果を提供する。
【００１３】
例えば、図示されたプロセッサ１０は、コア１２及び１４の両者により共有される電源電圧設定及びプロセッサクロック周波数設定を有するが、独立したクロックスロットル設定は、どの頻度によりクロックが第１コア１２のみに印加されるか制御するものであるかもしれない。従って、クロック周波数及び電源電圧設定は、共有リソース設定２２としてみなすことができ、独立したクロックスロットル設定は、独立したリソース設定２４としてみなすことができる。同様に、第２コア１４はまた、独立したリソース設定２６により表される独立したクロックスロットル設定を有するかもしれない。
【００１４】
独立したクロックスロットル処理に加えて、コア１２及び１４は、それらの内部アーキテクチャの各種機能ブロックを独立にスロットル処理ことが可能であるかもしれない。例えば、独立したリソース設定２４と２６は、内部アレイ、リオーダバッファ（ＲＯＢ）、リザベーションステーション（ＲＳ）テーブル、パラレルユニット、実行ユニットなどのアーキテクチャコンポーネントのスロットル処理を行うことができる。
【００１５】
図示された実施例では、第１コア１２が第１動作要求１８を提供し、第２コア１４が第２動作要求を提供する。調整ロジック１６は、動作要求１８及び２０と共有リソース設定２２を調整することができる。以下においてより詳細に説明されるように、動作要求１８及び２０は、電力ポリシーやパフォーマンスポリシーなどのポリシーに従って生成することが可能であり、コア１２及び１４のそれぞれの上で実行されるオペレーティングシステム（ＯＳ）のプロダクトであるかもしれない。例えば、第１コア１２は、２０％だけ電力消費を低減させることが可能なユーザ／ソフトウェア選択可能な電力目標を有するかもしれない。この場合、第１動作要求１８は、８％の電力レベルを示す電力要求とすることができる。あるいは、第２コア１２は、第２動作要求２０が１００％の電力レベルを示すように、フルパワーを要求する動作モードにあるかもしれない。具体的な数値は、単なる例示として利用される。
【００１６】
動作要求１８と２０はまた、以下でより詳細に説明されるように、パフォーマンスレベルやパフォーマンス状態遷移テーブルへのインデックスなどのパフォーマンス要求を特定することができる。ハードウェア調整ロジック１６がパフォーマンス又は電力ポリシーに基づき機能することを可能にすることによって、プロセッサ１０は、他のものについてはおそらく妥協しながら、ソフトウェアが制御するのに現在最も重要なファクタとなるものに集中することができる。複数の機能と共通のポリシー（パフォーマンス又は電力）にわたって調整するとき、パフォーマンス／電力ポリシーが有用となりうるが、他のアプローチもまた利用可能である。例えば、実際のリソース設定を動作要求に組み込むことはまた、許容可能なアプローチであるかもしれない。
【００１７】
すでに説明したように、調整ロジック１６は、第１動作要求１８と第２動作要求２０に従って、共有リソース設定２２を選択することが可能である。この結果は、動作要求１８及び２０を充足するかもしれない、又はしないかもしれない動作状態である。例えば、第１動作要求１８が共有リソース設定２２により充足されない場合、第１コア１２は、第１動作要求１８が充足されることを可能にする第１独立リソース設定２４に対する変更／調整された値を選択する。あるいは、第２動作要求２０が共有リソース設定２２により充足されない場合、第２コア１４は、第２動作要求２０が充足されることを可能にする第２独立リソースに対して変更／調整された値を選択する。従って、調整ロジック１６は、実際に実現される調整された状態を反映する各動作要求１８及び２０と共有リソース設定２２との間の相違に基づき、結果としての独立リソース設定２４及び２６を決定するかもしれない。簡単に言えば、独立リソース設定２４及び２６は、１以上のコア１２と１４によって調整可能な共有リソース設定２２に係る電力／パフォーマンス不足を補償することが可能である。
【００１８】
従って、一致又は整合しない（ｍｉｓｍａｔｃｈｅｄ）動作要求の上記例では、調整ロジック１６は、第２コア１４がより高い電力レベルを要求しているという事実を考慮し、この要求を充足するため、調整された共有リソース設定２２を選択するであろう。従って、共有リソース設定２２は、両方のコア１２と１４に対して１００％の電力の動作状態をもたらし、第１コア１２は依然として８％の動作要求１８を有することとなるであろう。第１コア１２はまだ第１動作要求１８を充足していないため、第１コア１２は、第１動作要求１８が充足されることを可能にする第１の独立リソース設定２４に対する相関／調整された値を選択する。例えば、第１コア１２は、所望される２０％の電力低下を実現するため、それの独立クロックスロットル設定を増やすかもしれない。従って、共有リソース設定２２を独立リソース設定２４及び２６により調整することによって、調整ロジック１６は、マルチコア環境における電力を効率的に管理することが可能である。
【００１９】
調整ロジック１６は、第１動作要求１８を第１目標値に変換し、第２動作要求２０を第２目標値に変換することによって共有リソース設定２２を選択することが可能である。当該目標値は、共有リソース設定２２の潜在的な数値を表す。調整ロジック１６は、その後、第１目標値と第２目標値を比較し、より高いものを共有リソース設定２２として選択するかもしれない。また、調整ロジック１６は単に動作要求１８及び２０を比較し、より高いものを選択することも可能であるということに留意すべきである。従って、調整ロジック１６は、共有リソース設定２２の目標値及び／又は動作要求に対する「最大値検出装置」として機能することが可能である。
【００２０】
あるいは、調整ロジック１６は、「双方のリクエストの最小値」の調整ポリシーが適切である場合、より小さな値を選択するようにしてもよい。このような状況は、共有クロックスロットル処理の場合、又はＯＳがコントロールにおいて“Ｆｏｒｃｅ＿Ｍｉｎ”フラグを設定することを決定する場合に生じる可能性がある。ここで、“Ｆｏｒｃｅ＿Ｍｉｎ”フラグは、双方のコアの各スロットル処理リクエストの最小のものが選択されたものであることを保証するＭＩＮＩＭＵＭ動作ポイントポリシーを実行する必要があることを調整ロジック１６に通知することが可能となる。簡単化のため、ここで説明される具体例のいくつかは、最大値としての調整ポリシーを表す。しかしながら、本発明の実施例に係る効果はまた最小ポリシーに適用可能であるということに留意すべきである。
【００２１】
第２コア１４が以降において、より低い目標値に対応する変更された動作要求を提供する場合、調整ロジック１６は、この変更された動作要求に基づき共有リソース設定２２を調整することが可能である。このような場合、第１コア１２は、調整された共有リソース設定に基づき、独立リソース設定２４を調整することが可能である。一致しない動作要求の上述した例では、第１コア１２は、それの独立クロックスロットル設定を低減するかもしれない（それはもはや不要となるため）。調整ロジックをハードウェアにより実現することによって、迅速な状態変化に対応するため高速なＯＳレスポンス時間が、システムに要求されることがなくなる。独立リソース設定２４及び２６が共有リソース設定２２より効率的であると知られている場合、上述した処理は、独立リソース設定２４と２６がまず選択されるように、独立リソース設定２４と２６を補償する共有リソース設定２２と逆転されてもよい。
【００２２】
図２及び３は、上述した変換をそれぞれ実現するのに利用可能なハードウェア調整ロジックとパフォーマンス状態遷移テーブル３４を実現するのに利用可能な電力管理アーキテクチャ５８を示す。アーキテクチャ５８とテーブル３４は、電力を管理するのに大変有用となる可能性があるが、他のアプローチもまた利用可能である。図示された例では、各プロセッサコアに対するフォースミニマム（ｆｏｒｃｅ  ｍｉｎｉｍｕｍ）特性、パフォーマンスインデックス、パフォーマンスレベル及び／又は電力レベルなどの動作要求特性を規定するパフォーマンス状態（Ｐ状態）起動コマンド６０が、パフォーマンス状態遷移テーブル３４にアクセスするのに利用される。１つの起動コマンド６０しか示されていないが、複数の起動コマンドが同時にテーブル３４に適用可能である。
【００２３】
図示された例では、動作要求は、合成された最適状態絶対電力（Ａｂｓ−Ｐｗｒ）４２や電力パーセンテージ（Ｐｗｒ％）４４などの電力要求として規定することが可能である。動作要求はまた、パフォーマンスインデックス（Ｐｉｎｄｅｘ）５０や合成された最適状態絶対パフォーマンス（Ｐｅｒｆ）５２などのパフォーマンス要求として規定することが可能である。相対的に複雑なハードウェア調整をサポートするため、共有リソース設定が各種機能において統合され、実際の動作要求が「グローバル」レベルに指定されてもよいということが理解できる。従って、図示された例では、起動コマンド６０は、合成された最適状態を表す動作要求を含む。
【００２４】
上述されたように、リソース設定の目標値は、Ｓｐｅｅｄｓｔｅｐ（登録商標）機能（Ｓｈａｒｅｄ  Ｆｅａｔｕｒｅ）が、クロック周波数設定（Ｆｒｅｑｕｅｎｃｙ）３６とコア電圧設定（Ｖｃｃ）３８として示される共有リソース設定に対する制御を提供する機能によって特定することができる。他方、ＴＭ１機能（Ｉｎｄｅｐｅｎｄｅｎｔ  Ｆｅａｔｕｒｅ）は、独立クロックスロットル設定（Ｔｈｒｏｔｔｌｅ％）４０として示される独立リソース設定に対する制御を提供するかもしれない。動作要求及び目標値が調整ロジックにより受け付けされると、それらは、適切なグローバル設定の選択のため互いに比較することができる。
【００２５】
他の例では、第１コアが８８％のパフォーマンスレベルをリクエストする場合、調整ロジックは、テーブルの合成された最適状態部分へのインデックスするため、８８％のパフォーマンス「動作要求」を利用することが可能である。１３００ＭＨｚ／１．００８Ｖの目標周波数／電圧値が、テーブルから抽出され、第１共有リソースコントロールブロック６４に送信するためコントロールバス６２（６２ａ〜６２ｅ）に配置することができる。従って、図示された第１共有リソースコントロールブロック６４は、テーブル３４に示される共有機能に対応する。第１コアリクエストと同時に、第２コアは、１００％のパフォーマンスレベルにおいて動作するためのリクエストなどの動作要求を提供するかもしれない。従って、調整ロジックは、１００％のパフォーマンスを利用して、テーブルの合成された最適状態部分にインデックスし、テーブルから１７００ＭＨｚ／１．２３３Ｖの目標周波数／電圧値を抽出し、それをコントロールバス６６に配備することが可能である。
【００２６】
図示されたシステムが「最大検出」モードである場合（すなわち、Ｆｏｒｃｅ＿Ｍｉｎが設定されていない）、第１共有リソースコントロールブロック６４は、これら２つの動作要求を比較し、適切なグローバル設定が１００％のパフォーマンスであると判断する。従って、１７００ＭＨｚ／１．２３３Ｖの目標周波数／電圧値が、共有リソース設定６８として選択されるかもしれない。図示された例では、共有リソース設定６８が、クロックソース及び／又は電圧ソースに印加され、共有リソースに共有リソース設定６８により規定される適切な周波数及び／又はコア電圧において動作するよう指示する。第１共有リソースコントロールブロック６４はまた、実際の動作状態計算７２を生成する状態計算ロジック８４に動作状態信号７０を送信する。動作状態信号７０は、共有リソース設定６８から生じるパフォーマンス及び／又は電力状態を特定する。従って、本例では、動作状態信号７０が１００％のパフォーマンスレベルを特定することとなる。
【００２７】
さらに、第１共有リソースコントロールブロック６４は、共有リソース設定６８に基づき、訂正された動作要求及び／又は目標値を生成し、訂正された目標値をコントロールバス６２ｂに配備することができる。ここで、訂正された目標値は、第２共有リソースコントロールブロック７６が次の共有リソースに対する共有リソース設定８０を決定することを可能にする。訂正された値は、選択された動作レベルに対応し、テーブル３４などのテーブルから抽出することができる（１つの共有機能しかテーブルには図示されていないが）。図示された例では、共有リソース設定８０は、周波数設定とすることができる。第２共有リソースコントロールブロック７６はまた、コントロールバス７８から他の１以上のプロセッサコアの目標値及び／又は動作要求を収集し、当該セットにおける最大値を決定する。この最大値は、クロックが適切な共有リソース設定により動作するよう指示する共有リソース設定８０を表す。動作状態信号８２はまた、状態計算ロジック８４に送信される。さらなるリソースコントロールブロックが必要な場合、訂正された動作要求及び／又は目標値が生成され、コントロールバス６２ｃに配備される。
【００２８】
共有リソース設定がすべて完了すると、電力管理アーキテクチャ５８は、独立リソースコントロールブロック８６を利用して独立リソース設定８８を生成するため設けられ、独立リソース設定８８は、当該プロセッサコアがコントロールバス６２ｄを介し訂正された動作要求に反映されるさらなる電力の節約を実現することを可能にする。訂正された動作要求は、共有リソースコントロールブロックの最後から取得することができる。８８％のパフォーマンスレベルを必要とする第１コアの上記例では、独立リソースコントロールブロック８６は、８８％のパフォーマンスを提供する０．１２５の独立クロックスロットルの独立リソース設定を選択するかもしれない。図示されたＰ１２のグローバル設定はまた、０．１２５の独立クロックスロットルと合成される場合、全体として５７％のパフォーマンスを提供する共有電圧／周波数設定を通じて６７％のパフォーマンスの低下を含む。しかしながら、ここで説明されるアプローチは、共有リソースがすでに選択及び固定されているときには、独立リソース設定を利用することによりパフォーマンス数を補償する。独立リソースコントロールブロック８６はまた、実際の動作状態計算７２を生成するのに利用するため、動作状態信号９２を生成することが可能である。独立リソース設定８８が、訂正された動作要求を完全には充足することができない場合、他の訂正された動作要求が、コントロールバス６２ｅを介し次の独立リソースコントロールブロック（図示せず）に送信可能である。
【００２９】
次に図４を参照するに、共有周波数設定２２ａ’によるクロックソース３０と、共有周波数設定２２ｃ’によるバス１１と、共有電圧設定２２ｂ’による電圧ソース３２と、マルチコアプロセッサ１０’とを有するシステム２８の一例が示される。システム２８は、電力消費及びオーバーヒートが特に問題となる、ノートブックパーソナルコンピュータ（ＰＣ）、携帯情報端末（ＰＤＡ）、無線「スマート」フォンなどモバイル計算システムの一部とすることが可能である。図示されたプロセッサ１０’は、第１コア１２’と、第２コア１４’と、ハードウェア調整ロジック１６’とを有する。第１コア１２’は第１動作要求（図示せず）を提供し、第２コア１４’は第２動作要求（図示せず）を提供する。調整ロジック１６’は、これらの動作要求及び第１コア１２’と第２コア１４’のそれぞれの独立リソース設定２４’と２６’により共有周波数設定２２’（２２ａ’〜２２ｃ’）を調整する。
【００３０】
図５は、何れか利用可能なハードウェア及び／又はソフトウェアプログラミング技術を利用してマルチコアプロセッサにより実現することが可能である。例えば、方法９６の１以上の部分が、固定された機能ハードウェア、特定用途向け集積回路（ＡＳＩＣ）、マシーン可読媒体に格納されるマイクロコード命令セット又は上記の何れかの組み合わせにより実現することが可能である。特に、図示された方法９６は、処理ブロック９８において第１プロセッサコアから第１動作要求を提供する。第２動作要求は、ブロック１００において第２プロセッサコアから提供される。ブロック１０２は、これら動作要求により共有リソース設定を調整する。共有リソース設定は、第１及び第２動作要求に基づき独立リソース設定によりすでに調整されている。独立リソース設定は、第１又は第２プロセッサコアに専用のものとすることが可能である。
【００３１】
次に図６を参照するに、共有リソース設定を調整するための１つのアプローチが、ブロック１０２’においてより詳細に示される。特に、ブロック１０４は、第１及び第２動作要求に従って、共有リソース設定を選択する。ブロック１０６は、動作要求が充足されることを可能にする独立リソース設定に対する調整された値を選択する。
【００３２】
図７は、ブロック１０４’における共有リソース設定を選択する１つのアプローチをより詳細に示す。図示された例では、第１動作要求は、ブロック１０８において第１目標値に変換され、第２動作要求は、ブロック１１０において第２目標値に変換される。上述されたように、ブロック１０８及び１１０における変換は、電力状態遷移テーブルを利用することにより実現することができる。ブロック１１２は、第１動作要求と第２動作要求を比較する。あるいは、目標値自体を比較することが可能である。ブロック１１４において、第２動作要求が第１動作要求より大きいと判断されると、ブロック１１６は、共有リソース設定として第２目標値を選択する。そうでない場合、第１目標値は、ブロック１１８において共有リソース設定として選択される。ブロック１２０は、必要に応じて、残りの共有リソースに対して共有リソース設定選択処理を繰り返す。共有リソース設定から得られる訂正された動作要求が、ブロック１２２においてコアに通知される。
【００３３】
次に図８を参照するに、共有リソース設定及び独立リソース設定を更新する処理１２４が示される。図示された例では、第２プロセッサコアは、以前には第１プロセッサコアより高いレベルを要求していた。従って、第１プロセッサコアは、共有リソース設定を補償するため、独立リソース設定を利用している。ブロック１２６は、第２プロセッサコアから変更された動作要求を提供する。共有リソース設定は、ブロック１２８において変更された動作要求に基づき調整される。ブロック１３０は、調整された共有リソース設定に基づき、第１プロセッサコアの独立リソース設定を調整する。
【００３４】
以上より、ここに記載された実施例は、マルチコアプロセッサにおける電力管理についていくつかの特有の効果を提供する。例えば、ハードウェア調整ロジックにおける電力管理の調整は、ソフトウェアオーバヘッドと計算の問題を軽減する。さらに、ハードウェア調整は、比較的迅速であり、ＯＳにより調整される電力管理に係るレスポンス時間の問題を軽減する。さらに、パフォーマンス又は電力ポリシーに基づく電力管理によって、プロセッサは、おそらくその他のものに妥協しながら、ソフトウェアが制御する現在最も重要なファクタとなるものに集中することができる。
【００３５】
当業者は、上記記載から本発明の実施例の広範な技術が各種形態により実現可能であることを理解することが可能である。従って、本発明の実施例がそれの特定の具体例に関して説明されたが、当該図面、明細書及び以下の請求項を参照することにより、他の改良が当業者に想到すると考えられるため、本発明の実施例の真の範囲はこれに限定されるべきではない。
【符号の説明】
【００３６】
１０  プロセッサ
１２，１４  コア
１６  調整ロジック
【図１】
0005154682.tif 000002
【図２】
0005154682.tif 000003
【図３】
0005154682.tif 000004
【図４】
0005154682.tif 000005
【図５】
0005154682.tif 000006
【図６】
0005154682.tif 000007
【図７】
0005154682.tif 000008
【図８】
0005154682.tif 000009