(57)【要約】【課題】マイクロプロセッサにおける熱設計電力を設定する方法及び装置を提供する。【解決手段】熱設計電力（TDP）値を変更する技術である。一実施例では、１つ以上の環境又はユーザ駆動の変更は、プロセッサのTDP値を変更させてもよい。更に、或る実施例では、TDPの変更は、ターボモードの目標周波数を変更してもよい。【選択図】図１
2015228265.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサの熱設計電力（TDP）を設定する方法であって、
プロセッサの１つ以上のモデル固有レジスタ（MSR）を介して、ユーザ制御に応じて設定可能なプロセッサTDPの値を変更するステップと、
オペレーティングシステムに対して、設定可能なTDPの変更の一部として、複数の論理プロセッサのそれぞれのもとでACPI（Advanced  Configuration  and  Power  Interface）  PPC（Performance  Present  Capabilities）オブジェクトを評価させるステップと
を有する方法。
【請求項２】
前記設定可能なTDPの値は、ターボ比率の値の変更を含み、プラットフォームにより実現されたユーザ制御トリガに応じて変更するものである、請求項１に記載の方法。
【請求項３】
前記設定可能なTDPの変更を行わせるために、ユーザ制御を傍受し、基本入出力ソフトウェア（BIOS）呼び出しに変換するステップを更に有する、請求項１又は２に記載の方法。
【請求項４】
前記設定可能なTDPの値の変更は、ターボモードの目標周波数における対応する変更を行わせる、請求項１ないし３のうちいずれか１項に記載の方法。
【請求項５】
交流（AC）から直流（DC）への電源の変更又はその逆の電源の変更を有するプラットフォームにより実現されたユーザ制御トリガに応じて前記設定可能なTDPの値を変更するステップを更に有する、請求項１ないし４のうちいずれか１項に記載の方法。
【請求項６】
ドッキングのイベントを有するプラットフォームにより実現されたユーザ制御トリガに応じて前記設定可能なTDPの値を変更するステップを更に有する、請求項１ないし４のうちいずれか１項に記載の方法。
【請求項７】
前記設定可能なTDPの値は、少なくとも１つのMSRに情報を格納したことに応じて、前記設定可能なTDPの変更の一部としてランタイム平均電力制限（RAPL）値を更新することを含み、変更されるものである、請求項１ないし６のうちいずれか１項に記載の方法。
【請求項８】
熱設計電力（TDP）の設定をサポートするプロセッサであって、
前記プロセッサについて指定される設定可能な熱設計電力（TDP）をサポートする１つ以上のモデル固有レジスタ（MSR）と、
プラットフォームにより実現されたユーザ制御トリガに応じて前記設定可能なTDPの値を変更するロジックであり、前記プラットフォームは、PPC（Performance  Present  Capabilities）オブジェクトを評価するために、ACPI（Advanced  Configuration  and  Power  Interface）通知をオペレーティングシステムに対して実現するロジックと
を有するプロセッサ。
【請求項９】
前記設定可能なTDPの値の変更は、ターボモードの目標周波数における対応する変更を行わせる、請求項８に記載のプロセッサ。
【請求項１０】
前記ロジックは、前記設定可能なTDPの変更を行わせるために、ユーザ制御を傍受し、基本入出力ソフトウェア（BIOS）呼び出しに変換するため、プラットフォームソフトウェアを使用する、請求項８又は９に記載のプロセッサ。
【請求項１１】
前記プラットフォームにより実現されたユーザ制御トリガは、交流（AC）から直流（DC）への電源の変更又はその逆の電源の変更を有する、請求項８ないし１０のうちいずれか１項に記載のプロセッサ。
【請求項１２】
前記プラットフォームにより実現されたユーザ制御トリガは、ドッキングのイベントを有する、請求項８ないし１１のうちいずれか１項に記載のプロセッサ。
【請求項１３】
前記設定可能なTDPの値は、少なくとも１つのMSRに情報を格納したことに応じて、前記設定可能なTDPの変更の一部としてランタイム平均電力制限（RAPL）値を更新することを含み、変更されるものである、請求項８ないし１２のうちいずれか１項に記載のプロセッサ。
【請求項１４】
前記ロジックは、記プラットフォームにより実現されたユーザ制御トリガに応じて、ターボ比率の値を含む前記設定可能なTDPの値を変更する、請求項８ないし１３のうちいずれか１項に記載のプロセッサ。
【請求項１５】
プロセッサの熱設計電力（TDP）の設定をサポートするシステムであって、
複数の論理プロセッサと、前記プロセッサについて指定される設定可能なTDPをサポートする１つ以上のモデル固有レジスタ（MSR）とを有するプロセッサと、
ユーザ制御に応じて前記設定可能なTDPの値を変更し、前記複数の論理プロセッサのそれぞれのもとでPPC（Performance  Present  Capabilities）オブジェクトを評価するために、プラットフォームにより実現された通知をオペレーティングシステムに発行させるロジックと、
前記プロセッサにより実行される命令を格納するメモリと
を有するシステム。
【請求項１６】
前記設定可能なTDPの値は、ターボモードの目標周波数における対応する変更を行わせる、請求項１５に記載のシステム。
【請求項１７】
前記ロジックは、ドッキングのイベントを有するプラットフォームにより実現されたユーザ制御トリガに応じて前記設定可能なTDPの値を変更する、請求項１５又は１６に記載のシステム。
【請求項１８】
前記設定可能なTDPの値は、前記ユーザ制御に応じて、前記設定可能なTDPの変更の一部としてランタイム平均電力制限（RAPL）値を更新することを含み、最初に設定されたTDPの値から変更するものである、請求項１５ないし１７のうちいずれか１項に記載のシステム。
【請求項１９】
前記設定可能なTDPの値は、少なくとも１つのMSRに情報を格納したことに応じて変更されるものである、請求項１５ないし１８のうちいずれか１項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この出願は、2010年12月21日に出願されて現在継続中の特許出願第12/974,100号の一部継続出願である。
【０００２】
本発明の実施例は、概して情報処理の分野に関し、特にコンピュータシステム及びマイクロプロセッサにおける電力管理の分野に関する。
【背景技術】
【０００３】
マイクロプロセッサにおいて電力消費を制御することは、重要性が増加している。プロセッサの電力消費を制御するいくつかの従来技術は、プロセッサの熱設計電力（TDP：thermal  design  power）の柔軟な設定を適切に可能にしていない。
【図面の簡単な説明】
【０００４】
【図１】一実施例に従って熱設計電力（TDP）を設定する技術
【図２】一実施例に従って熱設計電力（TDP）を設定する少なくとも１つの技術の態様
【図３】一実施例に従って設定可能なTDPに対応する初期化技術の態様
【図４】一実施例に従ってTDPを設定する少なくとも１つの技術の態様
【図５】一実施例に従ってTDPを設定する少なくとも１つの技術の態様
【図６】一実施例に従ってTDPを設定する少なくとも１つの技術の態様
【図７】本発明の少なくとも１つの実施例が使用され得るマイクロプロセッサのブロック図
【図８】本発明の少なくとも１つの実施例が使用され得る共用バスコンピュータシステムのブロック図
【図９】本発明の少なくとも１つの実施例が使用され得るポイント・ツー・ポイント相互接続コンピュータシステムのブロック図
【発明を実施するための形態】
【０００５】
本発明の実施例について、添付図面において限定的ではなく、一例として説明する。添付図面において、同様の参照符号は同様の要素を示す。
【０００６】
本発明の実施例は、プロセッサの設定可能な熱設計電力（TDP：thermal  design  power）の消費に関する。本発明の複数の態様の複数の実施例が存在するが、本発明の実施例を教示するために、少なくとも１つ以上の態様について一例としてここで説明する。これらは、実施例の網羅的又は排他的な集合として考えられるべきではない。
【０００７】
プロセッサは、性能に関する特性及び電力に関する特性の双方を含むように評価又は指定されてもよい。個々の製品又は製品群は、特有の基本周波数能力及びターボ周波数能力を含む関連する仕様と、他の性能に関する特性とを有してもよい。プロセッサにおける電力消費の範囲は、製品群について指定されてもよい。例えば、標準電圧（SV：standard  voltage）のモバイルプロセッサは、35ワットの熱設計電力（TDP）の定格（rating）を有してもよい。この定格は、OEM（original  equipment  manufacturer）により購入されたプロセッサが指定されたTDP作業負荷を実行するときに製品の指定されたTDP値以下になる電力を消費するという、OEMへの指標である。これは、最悪の場合の温度で動作するときの最悪の場合の実際の作業負荷のシナリオを表してもよい。指定された性能特性は、製品群を通じて変化することがあるが、TDPは、複数の製品群を通じて同じ値として指定されてもよい。このことにより、OEMが異なる小売価格で一連の性能を提供しつつ、指定されたTDPを消費可能な単一のプラットフォームを設計することが可能になる。他方、ターボ能力は、TDP作業負荷がTDP電力を基本周波数で消費されるようにさせてもよいものより上の潜在的な性能である。
【０００８】
或る実施例では、複数の種類のターボモードが存在する。前述のものは、作業負荷又はパッケージ電力の共用に関するターボモードのバージョンである。この場合、ターボ無しでTDPアプリケーションより低い固有の電力である作業負荷は、同じ周波数で利益を受けてもよい。これらの作業負荷は、基本周波数より大きいものを与えることにより、パッケージTDP電力まで電力を上げることを可能にすることにより、利益を受けてもよい。他のバージョンのターボモードは、動的なターボモードであり、電力は限られた期間の間にTDP電力を超えることを許可される。これにより、時間で平均すると、電力は依然としてTDP電力である。このことは、例えば、アイドル作業負荷であれ、単にTDP電力閾値に等しい電力を引き出さない作業負荷であれ、TDPより低い電力により先行された場合、TDPを超える短い逸脱を許容する。TDP電力はまた、電力送出設計要件に影響を与える。
【０００９】
プラットフォームの熱能力は、サイズ、重さ、可聴雑音及び部品表（BOM：bill  of  material）のコストに影響を与えるため、OEMにとって設計上の選択肢である。従って、プロセッサについて指定されたTDPは、プラットフォームの熱設計にかなり影響を与えることがある。いくつかのプロセッサは、数個のTDPのみで販売される。例えば、モバイルプロセッサのSVは35Wであり、低電圧プロセッサのSVは25Wであり、調停電圧プロセッサのSVは18Wである。
【００１０】
モバイルプラットフォームでは、冷却能力及び可聴雑音の耐性は、使用環境に応じて変化することがある。例えば、ドッキングされて交流（AC：alternating  current）電力で実行するときに、プラットフォームは、ドッキング解除（undocked）されてバッテリ電力で実行するときより大きい冷却能力を有することがある。
【００１１】
指定されたTDPを冷却できるものより低い冷却能力の環境において高電力のプロセッサを実行することにより、熱制御は実際に製品を通じて変化する未知の能力レベルのものまで性能を低減させることがある。更に、ターボ能力は、熱制御の一部として無効にされることがある。
【００１２】
一実施例による設定可能なTDPにより、OEMは、プロセッサのTDPを複数の値のうち１つに設定することが可能になる。この設定は、初期化時に静的に実行されてもよく、“実行中（on-the-fly）に”動的に実行されてもよい。これは、プロセッサの基本周波数を複数のサポートされている基本周波数のうち１つに変更することにより実際に実現される。この変更の意味は、基本周波数により特定の性能が保証され、サポートされている基本周波数毎にTDPが指定されることにあってもよい。更に、基本周波数／TDPが変更されると、ターボが関与するポイント（point）もそれに従って変化してもよい。これは、提示された作業負荷が許容する場合には依然としてターボ増大の性能を送出しつつ、最大電力の消費が分かることを確保する能力をOEMに提供する。
【００１３】
図１は、３つのTDPレベル（“TDP  Up”105、“Nominal  TDP”110及び“TDP  Down”115等）を提供することにより、一実施例に従ってプロセッサにおける設定可能なTDPを提供する技術を示している。３つのTDPレベルは、電力状態（それぞれP0  130、P5  125及びP9  120のP状態等）に対応してもよい。TDP値は動的に変化するため、一実施例では、ターボ能力の量も同様に変化し、依然としてエンドユーザに特定の性能を提供しつつ、ターボ増大技術への更なる上昇を許容する。
【００１４】
一実施例では、設定可能なTDP技術は、プロセッサに提供される周波数及びTDP値の検証及び設定された集合を含む。一実施例では、検証された値はハードウェアに融合、プログラム又は設定されてもよく、プラットフォームファームウェア又はソフトウェアが能力を検出して利用することを可能にしてもよい。
【００１５】
一実施例では、設定可能なTDPは、プロセッサをプラットフォームの新たな部分に設計する機構を提供する。例えば、設定可能なTDPをサポートするプロセッサは、設定不可能なTDPのプロセッサの上のプレミアを付けてもよい。OEMは、プロセッサを購入し、必要性に応じてプロセッサを設定したり、性能及び電力の実行中の再設定をサポートするプラットフォームに提供したりしてもよい。１つのこのような例は、ドッキング解除されてバッテリ駆動する“モバイル・エクストリーム・エディション（mobile  extreme  edition）”である。設定可能なTDPは、提供される製品群の数を同様に低減させる潜在性を有する。
【００１６】
一実施例では、設定可能なTDPアーキテクチャは、標準及び他の技術等との相互依存に対する仮定を行わない。以下の表１は、一実施例に従って設定可能なTDPにより影響を受ける可能性があるプラットフォームの様々な側面及び部分を示している。
【００１７】
【表１】
2015228265.tif 000003
一実施例では、プロセッサのモデル固有レジスタ（MSR：model  specific  register）に変更が行われてもよく、プロセッサの設定可能なTDPをサポートするために新たなMSRが使用されてもよい。これらのレジスタは、例えば、ターボが関与するポイントを変更し、新たな基本周波数のランタイム平均電力制限（RAPL：runtime  average  power  limiting）の電力制限値を設定する機能を提供してもよい。一実施例では、設定可能なTDPを使用してアクセス、変更又は追加され得るレジスタのリストは、以下のものを含む。
PLATFORM_INFO：このレジスタは、設定可能なTDP能力を検出するために使用されてもよい。
CONFIG_TDP_LIMIT_1；CONFIG_TDP_LIMIT_2：このレジスタは、設定可能なTDP比率と、対応するTDP電力及び電力範囲を検出するために使用されてもよい。
CONFIG_TDP_CONTROL：このレジスタは、ソフトウェアが異なるTDPポイント（TDP  point）を選択し、現在の選択を読み取ることを可能にするために使用されてもよい。
PSTATE_NOTIFY  Hook：このレジスタは、ソフトウェアが新たなP1比率のポイントからターボを可能にするために使用されてもよい。このレジスタをCONFIG_TDP CONTROLと別にすることにより、OSが許容可能なターボ範囲の特有の上限を選択できる使用モデルを可能にしてもよい。
【００１８】
他の実施例では、設定可能なTDPを提供する際に、他のレジスタ又は記憶装置（例えば、メモリ、キャッシュ等）が使用されてもよい。更に、或る実施例では、前述のレジスタで提供された機能は、少ない数のレジスタ又は記憶装置に組み込まれてもよい。
【００１９】
或る実施例では、設定可能なTDPの固有のプラットフォームの物理要件が存在しなくてもよい。しかし、或る実施例では、電力送出及び冷却のための仕様は、TDPポイントのそれぞれの要件に対処するために策定されてもよい。或る実施例では、仕様は、設計のTDPレベルを選択する機能を反映し、他のポイントに対応してもよく、他のポイントに対応しなくてもよい。
【００２０】
或る実施例では、設定可能なTDPをサポートするために、新たなインタフェース又は技術は特に必要なくてもよい。しかし、或る実施例では、仕様及びイネーブリング（enabling）において対処され得る影響を受ける設計の特性は、熱設計電流（ITDC：thermal  design  current）及びサポートされ得る最大可能電流（例えば、“Iccmax”）を含む。或る実施例では、パラメータがTDPポイント毎に規定されてもよい。
【００２１】
TDPは、対応するTDP電力レベルをサポートするために無限に維持する冷却レベルが存在することを示してもよい。しかし、一実施例では、外来の設計（exotic  design）であれ、ドッキングされた冷却であれ、ファン速度の変更であれ、周囲環境の変更等であれ、冷却能力における変更を表すために特別な技術は必要ない。しかし、冷却設計要件は、イネーブリングのドキュメンテーションにおいてTDPレベル毎に定められてもよい。
【００２２】
一実施例では、他のロジック（グラフィックス、メモリ制御又は周辺機器制御等）の設定可能なTDPが使用されてもよい。例えば、設定可能なTDPがグラフィックスに使用される場合、新たなTDPレベル及び対応するRP1周波数について通知されるために、グラフィックスドライバが必要になってもよい。一実施例では、このことは少なくとも２つの方法で行われてもよい。
(1)TDPレベル及び対応するRP1周波数が変化したときに、プロセッサからグラフィックスデバイスドライバへの割り込みを介したもの。一実施例では、これは、設定可能なTDPをサポートするために既に必要なレジスタに加えて、割り込みの設定及び状態レジスタを必要としてもよい。
(2)TDPレベル及び対応するRP1周波数が変化したときに、グラフィックスドライバに通知するソフトウェアスタックを介したもの。これは、ソフトウェアスタックの一部としての既に配置されているソフトウェア−グラフィックスドライバ通信インタフェースへの更新を必要としてもよい。
【００２３】
一実施例では、TDP設定の変更は、初期化時にOSに対して全ての可能なP状態を公開して、様々な動作ポイントでターボ能力を有効にすることにより、特定のP状態（例えば、ACPI通知）を利用することをOSに制限するように、プラットフォームに対して要求してもよい。或る実施例では、ACPIのP状態テーブル（PSS：P-State  table）は、適切に生成されてもよい。一実施例では、設定可能なTDPをサポートするためのエコシステムの要件が存在しなくてもよい。
【００２４】
一実施例では、設定可能なTDPは、例えば初期化中にBIOSにより融合された初期値以外の値に静的に設定されてもよく、BOIS又はソフトウェアドライバによりランタイム中に動的に設定されてもよい。一実施例では、TDPの設定は、ターボが関与するポイントを設定するために新たなターボ比率の制限をMSRに書き込み、部分／基本周波数について指定された値に従って、対応する電力制限をRAPL電力制限のMSRに書き込むことにより実現される。更に、或る実施例では、オペレーティングシステムは、新たな基本周波数に従ってP状態のその使用を制限することを通知されてもよい。一実施例では、これは、OSに対して各論理プロセッサのもとでACPI_PPCオブジェクト（Performance  Present  Capabilities）を評価させることにより実現されてもよい。
【００２５】
図２は、一実施例に従ってTDPを設定するロジックを示している。図２に示すロジックは、プロセッサハードウェア又は他のハードウェアに含まれてもよい。或いは、図２のロジックは、実行された場合に図２に示すロジックの機能を実行させる命令を格納した有形の機械可読媒体に組み込まれてもよい。図２において、OSPM電力設定アプレット215は任意選択であり、DPPEのその使用は、TDP設定変更を呼び出すためのトリガ245としての役目をする。トリガ245（例えば、電源又は電力プランの変更）により、アプレットは、その変更をDPTFドライバ220に通信する。
【００２６】
DPTFドライバ220は、OSPM電力設定アプレットからTDP設定の変更を受信し、その結果として２つの機能を実行する。第１のものは、論理プロセッサ225のBIOS210によりOSにACPI通知を発行させるそのデバイス範囲内のACPIオブジェクトを評価し、各論理プロセッサのもとでPPCオブジェクトを再評価するためにそれに通知することである。オブジェクトからの戻り値は、DPTFドライバ220により渡された値から導かれ、特定のP状態のオペレーティングシステムの使用を新たな基本周波数以下に制限する。これが実現された後に、DPTFドライバ220は、新たなTDP設定270をプロセッサ225に書き込み（MSRの書き込み）、プロセッサの新たなターボ比率（ターボが呼び出されるポイント）及び新たな基本周波数について対応するRAPL電力制限値を設定する。
【００２７】
一実施例では、プロセッサは、前述のMSRを含む。MSRの書き込みは、ターボが呼び出されるP状態（ターボ比率）及びRAPL電力制限値についての情報を電力制御ユニット（PCU：power  control  unit）に伝えてもよい。
【００２８】
一実施例では、BIOS210は、ACPIファームウェアとネイティブ実行可能コードとを含む。一実施例では、BIOS210は、設定可能なTDP255の機能の有用性を検出し、ACPIファームウェア構造（_PSS）を適切に設定する役目をしてもよい。BIOS210は、初期化中に製品又は製品群の最大値未満であるTDPを静的に設定してもよい。或いは、一実施例では、BIOS210単独で、SMM実行及びACPI通知の組み合わせを通じてTDP設定を動的に設定してもよい。DPTFは、TDP設定を動的に設定するためにも使用されてもよいが、いずれの場合でも、BIOS210は、各論理プロセッサのもとで_PPCオブジェクトを再評価するようにOSに通知するために評価されるACPIファームウェアを含んでもよい。一実施例では、_PPCオブジェクトの評価は、どのP状態がTDP設定に対応してOSにより現在使用可能であるかを判定する（ターボが呼び出されるP状態を含む）。
【００２９】
一実施例では、OSは各論理プロセッサのもとで_PPCオブジェクトを再評価させるACPI通知230を受信する。_PPCオブジェクトの評価から戻された値は、オペレーティングシステムのP状態制御205のソフトウェアがTDP設定に従って特定のP状態を使用することを制限する。TDP設定が変更すると、_PPCオブジェクトにより許可された最も高い性能のP状態が設定され、ターボ動作を呼び出すP状態になる。
【００３０】
設定可能なTDP255を初期化するために、一実施例に従って、プラットフォームBIOS210は、まず機能の可用性を検出してもよい。次に、プロセッサから集めた設定可能なTDP255の情報を使用してOSPM  _PSSテーブルを構築してもよい。図３は、一実施例による初期化技術を示している。例えば、処理330において、BIOS310は、まず機能の有用性を検出してもよい。次に、BIOS310は、処理335においてプロセッサ／PCU315から集めたTDPレベル及び比率のような設定可能なTDPの情報を使用して、処理325においてOSPM  _PSSテーブルを構築してもよい。
【００３１】
処理340に示すように、BIOS310は、最大のTDP比率又は所望のTDP比率をプロセッサ／PCU315の現在のTDP比率としてプログラムしてもよい。処理345において、BIOS310はまた、許可されたP状態を示すように_PPCをゼロ（“0”）又は所望のTDP比率に対応するP状態に設定し、_PSSテーブルをOSPM320に報告してもよい。処理355において、OSPM320は、プロセッサ／PCU315のP状態を新たな最大のP状態に変更してもよい（作業負荷に依存する）。目標レートが現在のP1比率より大きい場合、処理350において、プロセッサ／PCU315は、ターボを有効にしてもよい。図３の初期化技術又はここに開示された他の処理若しくは機構は、汎用機械若しくは特殊目的機械又は双方の組み合わせにより実行可能なソフトウェア若しくはファームウェア動作コード又は専用ハードウェアを有してもよい処理ロジックにより実行される。
【００３２】
一実施例では、TDPがランタイム中に変更され得る３つの可能な機構が存在する。他の実施例では、ランタイム中にTDPを変更するために他の技術又は機構が使用されてもよい。一実施例では、プラットフォームは、システムの特定の動作モードを選択する選択肢をエンドユーザ405に提供してもよく、これは、ホットキー入力425として提供されてもよい。この例では、ユーザによるホットキー動作は、ランタイム中にTDP値の変更を起動する。図４は、一実施例によるユーザ起動のTDP変更のフローを示している。処理425においてホットキー入力としてのシステムの新たなTDP動作モードの選択に続いて、処理430に示すように、BIOS410は、新たなP1比率をプログラムし、RAPL電力制限をプロセッサ／PCU415の新たなTDPポイントにプログラムしてもよい。処理440において、BIOS410はまた、_PPCを新たな最大の利用可能なP状態（_PSSの新たなP状態）に設定し、_PSSテーブルをOSPM420に報告してもよい。次に処理445において、OSPM420は、プロセッサ／PCU415のP状態を新たな最大のP状態に変更してもよい（作業負荷に依存する）。目標レートが現在のP1比率より大きい場合、処理435において、プロセッサ／PCU415は、ターボを有効にしてもよい。
【００３３】
一実施例による使用モデルは、ユーザ入力を傍受して、それをBIOS510の呼び出しに変換し、TDP変更を呼び出すために、プラットフォームソフトウェアを使用する。図５は、一実施例によるこの使用モデルを示している。処理530において、例えば、イベント505は、電力プラン設定又はソフトウェアGUI若しくはドック（dock）等を介した新たなTDPモードのユーザ選択を有してもよく、イベント505により起動された変更は、DPTFドライバ520に通信される。DPTFドライバ520は、新たなP1選択で、処理540においてACPI通知をBIOS510によりOSPM515に発行させるACPIメソッドを呼び出し、_PPCオブジェクトを新たな最大の利用可能なP状態（_PSSの新たなターボP状態）に設定するように通知する。次に処理555において、OSPM515は、プロセッサ／PCU515のP状態を新たな最大のP状態に変更してもよい（作業負荷に依存する）。ACPIオブジェクトからの戻り値は、DPTFドライバ520により渡された値から導かれる。
【００３４】
一実施例では、プロセッサ／PCU525は、前述のMSRを含む。MSRの書き込みは、ターボが呼び出されたP状態（ターボ比率）及びRAPL電力制限値についての情報をプロセッサ／PCU525に伝えてもよい。そして、処理545において、DPTFドライバ520は、プロセッサ／PCU525の新たなターボ比率（ターボが呼び出されるポイント）を設定するために（MMIO／MSRの書き込みを介して）プロセッサ／PCU525の新たなP1比率をプログラムし、新たなTDP基本周波数ポイントの対応するRAPL電力制限値をプログラムする。目標レートが現在のP1比率より大きい場合、処理550において、プロセッサ／PCU525は、ターボを有効にしてもよい。
【００３５】
或る実施例では、プラットフォームは、TDPを変更するユーザ入力を提供しないことを選択し、ACからDCへの切り替え又はドッキングされたイベントに対するドッキング解除されたイベント等のようなシステムイベントの判定に基づいてもよい。この使用モデルは、一実施例に従って図６に示すシーケンスに示されている。処理625において、例えば、プラットフォームEC605は、前述のようなシステムイベントに従って、新たなTDP要件をBIOS610に通知する。処理630に示すように、BIOS610は、新たなP1比率をプログラムし、RAPL電力制限をプロセッサ／PCU615の新たなTDPポイントにプログラムしてもよい。処理635において、BIOS610はまた、_PPCを新たな最大の利用可能なP状態（_PSSの新たなターボP状態）に設定し、_PSSテーブルをOSPM620に報告してもよい。次に処理645において、OSPM620は、プロセッサ／PCU615のP状態を新たな最大のP状態に変更してもよい（作業負荷に依存する）。目標レートが現在のP1比率より大きい場合、処理640において、プロセッサ／PCU615は、ターボを有効にしてもよい。
【００３６】
一実施例では、TDP設定は前述のように動的に変更されてもよい。
【００３７】
一実施例では、設定可能なTDPは、衝突（collision）が生じないことを確保するようにACPIオブジェクトを操作する熱制御能力及びプラットフォームファームウェアと相互作用してもよい。一実施例では、ランタイム平均電力制限（RAPL：runtime  average  power  limiting）は、プラットフォームがプロセッサの電力消費を制限することを可能にする。プラットフォームは、RAPL制限の基礎としてTDPの詳細を使用してもよいため、TDPが動的に変化するという事実は、RAPL制限が無効になるという結果になる可能性がある。例えば、現在のTDPが15Wであり、RAPL制限がプラットフォームにより14Wに設定されていた場合を検討する。現在のTDPが23Wに変化した場合、14WのRAPL制限は制限しすぎであり、プロセッサはRAPL制限を維持することができなくなる。この問題を解決するために、一実施例によれば、RAPL制限は、新たなTDPレベルと合致するように、ランタイム中に設定可能なTDPの変更の一部として更新されてもよい。
【００３８】
一実施例では、設定可能なTDPは、２つのプラットフォーム機能（インタフェースの仕様のグループ）にマッピングする。これらは、TDP設定インタフェース（設定）及びトリガである。
機能名：ConfigTDP
プラットフォーム機能（PFAS）  ConfigTDP
ConfigTDP.Trigger
ConfigTDP.Trigger.app
ConfigTDP.Trigger.driver（DPTF）
ConfigTDP.Trigger.bios
ConfigTDP.Configuration（Interface）
ConfigTDP.Configuration.bios
ConfigTDP.Configuration.driver（DPTF）
ConfigTDP.Configuration.cpu
ConfigTDP.Configuration.GFXDriver
一実施例によるいくつかの更なる機能は、プロセッサMSR及びグラフィックスドライバの変更の新たな使用を含む。
【００３９】
図７は、本発明の少なくとも１つの実施例が使用され得るマイクロプロセッサを示している。特に、図７は、それぞれローカルキャッシュ707及び713に関連付けられている１つ以上のプロセッサコア705及び710を有するマイクロプロセッサ700を示している。また、図７には、ローカルキャッシュ707及び713のそれぞれに格納された情報の少なくともいくつかのバージョンを格納してもよい共用キャッシュメモリ715が示されている。或る実施例では、マイクロプロセッサ700はまた、統合メモリコントローラ、統合グラフィックスコントローラ及びコンピュータシステム内の他の機能を実行する他のロジック（I/O制御等）のように、図７に示さない他のロジックを含んでもよい。一実施例では、マルチプロセッサシステムの各マイクロプロセッサ又はマルチコアプロセッサの各プロセッサコアは、少なくとも１つの実施例に従ってTDP指定技術の柔軟な設定を可能にするロジック719を含んでもよく、ロジック719に関連付けられてもよい。ロジックは、いくつかの従来技術の実装より複数のコア又はプロセッサの間で効率的なリソース割り当てを可能にするための回路、ソフトウェア（有形の媒体に具現される）又はこれらの双方を含んでもよい。
【００４０】
図８は、例えば、本発明の一実施例が使用され得るフロントサイドバス（FSB：front-side-bus）コンピュータシステムを示している。いずれかのプロセッサ801、805、810又は815は、プロセッサコア823、827、833、837、843、847、853、857の１つの中の又は１つに関連付けられたいずれかのローカルのレベル1（L1）キャッシュメモリ820、825、830、835、840、845、850、855から情報にアクセスしてもよい。更に、いずれかのプロセッサ801、805、810又は815は、共用レベル2（L2）キャッシュ803、807、813、817のいずれか１つから又はチップセット865を介してシステムメモリ860から情報にアクセスしてもよい。少なくとも１つの実施例によれば、図８のプロセッサのうち１つ以上は、TDP指定技術の柔軟な設定を可能にするロジック819を含んでもよく、ロジック819に関連付けられてもよい。
【００４１】
図８に示すFSBコンピュータシステムに加えて、ポイント・ツー・ポイント（P2P：point-to-point）相互接続システム及びリング相互接続システムを含み、他のシステム設定も本発明の様々な実施例と共に使用されてもよい。例えば、図９のP2Pシステムは、複数のプロセッサを含んでもよく、そのうちの２つのみのプロセッサ970、980が一例として示されている。プロセッサ970、980は、メモリ92、94と接続するために、それぞれローカルメモリコントローラハブ（MCH：memory  controller  hub）972、982を含んでもよい。プロセッサ970、980は、PtPインタフェース回路978、988を使用して、ポイント・ツー・ポイント（PtP：point-to-point）インタフェース950を介してデータを交換してもよい。プロセッサ970、980は、ポイント・ツー・ポイント・インタフェース回路976、994、986、998を使用して、個々のPtPインタフェース952、954を介してチップセット990とデータをそれぞれ交換してもよい。チップセット990はまた、高性能グラフィックスインタフェース939を介して高性能グラフィックス回路938とデータを交換してもよい。本発明の実施例は、如何なる数の処理コアを有する如何なるプロセッサの中に存在してもよく、図９のPtPバスエージェントのそれぞれの中に存在してもよい。一実施例では、いずれかのプロセッサコアは、ローカルキャッシュメモリ（図示せず）を含んでもよく、ローカルキャッシュメモリに関連付けられてもよい。更に共用キャッシュ（図示せず）が双方のプロセッサの外部のいずれかのプロセッサに含まれ、プロセッサが低電力モードになった場合に一方又は双方のプロセッサのローカルキャッシュ情報が共用キャッシュに格納され得るように、p2p相互接続を介してプロセッサに接続されてもよい。図９のプロセッサ又はコアの１つ以上は、少なくとも１つの実施例に従ってTDP指定技術の柔軟な設定を可能にするロジック919を含んでもよく、ロジック919に関連付けられてもよい。
【００４２】
少なくとも１つの実施例の１つ以上の態様は、プロセッサ内の様々な説明したもの及び／又はロジックを表す又はこれらに結合された機械可読媒体に格納された代表的なデータにより実装されてもよい。これは、機械により読み取られた場合、機械に対して、ここに記載の技術を実行することを実現させる。“IPコア”として知られるこのような表現は、有形の機械可読媒体（“テープ”）に格納され、実際にロジック又はプロセッサを作る製造機械にロードされるために、様々な顧客又は製造施設に供給されてもよい。
【００４３】
本発明の実施例は、中央処理装置、グラフィックス処理ユニット又はプロセッサ若しくはコンピュータシステム内の他の処理ロジック若しくはコアを含み、如何なるハードウェアデバイス又はその一部に含まれてもよく、これらに適用されてもよい。実施例はまた、機械により実行された場合、機械に対してここに記載の動作を実行させる一式の命令を格納した有形の機械可読媒体に具現されてもよい。
【００４４】
このように、マイクロアーキテクチャのメモリ領域アクセスを指示する方法及び装置について説明した。前述の説明は例示的であり、限定的ではないことを意図する。多くの他の実施例は、前述の説明を読んで理解することにより、当業者に明らかになる。従って、本発明の範囲は、特許請求の範囲が権利を受ける均等の全範囲内と共に、特許請求の範囲を参照して判定され得る。
【図１】
2015228265.tif 000004
【図２】
2015228265.tif 000005
【図３】
2015228265.tif 000006
【図４】
2015228265.tif 000007
【図５】
2015228265.tif 000008
【図６】
2015228265.tif 000009
【図７】
2015228265.tif 000010
【図８】
2015228265.tif 000011
【図９】
2015228265.tif 000012
【外国語明細書】
2015228265000001.pdf