JP2014509032A - オーバーヘッドを抑えた電力プロフィール情報の取得 - Google Patents

オーバーヘッドを抑えた電力プロフィール情報の取得 Download PDF

Info

Publication number
JP2014509032A
JP2014509032A JP2014501060A JP2014501060A JP2014509032A JP 2014509032 A JP2014509032 A JP 2014509032A JP 2014501060 A JP2014501060 A JP 2014501060A JP 2014501060 A JP2014501060 A JP 2014501060A JP 2014509032 A JP2014509032 A JP 2014509032A
Authority
JP
Japan
Prior art keywords
power state
state transition
counter
low power
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014501060A
Other languages
English (en)
Other versions
JP5615990B2 (ja
Inventor
ナイト、ロバート
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2014509032A publication Critical patent/JP2014509032A/ja
Application granted granted Critical
Publication of JP5615990B2 publication Critical patent/JP5615990B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3093Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Power Sources (AREA)

Abstract

【解決手段】 一実施形態に係る方法は、マルチコアプロセッサのコアについて複数の電力状態移行イベントが発生すると、タイマ切れまたは割り込みのトリガが発生しなくても、コアのシステムカウンタの値およびコアの複数の低電力カウンタの値を読み出す段階を備える。読み出された値は、プロセッサのストレージに格納することができる。そして、収集処理が完了した後、ストレージにアクセスして、格納されている値を用いてプロセッサの電力プロフィールを決定するとしてよい。他の実施形態も説明および請求している。
【選択図】 図1

Description

最新のコンピュータシステムでは、多くの異なる構成要素が結合されて、データ処理、アクセス情報およびその他の多くの公知のタスクを実行する。しかし、コンピュータシステムが動作中であっても、多くの構成要素またはその一部は有用な作業を実行する上で必要ないことがある。これらの構成要素は低電力状態に移行して消費電力を抑制することが多い。これらの構成要素またはデバイスは、特定のチップ、プロセッサ、または、電力を消費する任意のその他のハードウェアエンティティであってよい。また、プロセッサまたはシステムオンチップ(SoC)等、単一のチップであれば、構成要素のうち1以上を低電力状態に制御することが可能である。
消費電力分析を実行し易くするべく、デバイスの電力状態を時系列に示した情報である電力プロフィールを求めることがある。多くのシステムでは、デバイスの電力状態を決定するためには、プロセッサは、電力プロフィール情報を取得する命令またはその他の処理を実行するべく、低電力状態以外の状態である必要がある。つまり、プロファイリングの対象であるシステムで実行されるプロファイリングアプリケーションは、イベントをスケジューリングすることで動作している(例えば、割り込みまたはタイマ)。イベントが発生すると、オペレーティングシステムはプロファイリングアプリケーションを呼び出して、プロファイリング対象の挙動を説明するために必要な情報を収集する。しかし、この情報を取得するべくプロセッサを強制的に完全オン状態に維持すると、消費電力を低減するという目的が実現できない。つまり、このようにプラットフォームについて電力情報を定期的に収集すると、利用電力が増加すると共に、プラットフォームの電力挙動が混乱してしまう。
本発明の実施形態に係るタイミングシーケンスを示す図である。
本発明の一実施形態に係る電力プロフィール形成を実行するための方法を説明するフローチャートである。
本発明の一実施形態に係る収集方法を説明するためのフローチャートである。
本発明の実施形態に係るデータ収集を停止する方法を説明するためのフローチャートである。
本発明の実施形態に係る収集したデータを処理する方法を説明するためのフローチャートである。
本発明の実施形態に係るプロセッサを示すブロック図である。
本発明の実施形態に係るシステムを示すブロック図である。
さまざまな実施形態によると、電力プロファイリングは、プロセッサまたはその他のデバイスが不要に低電力状態を終了することを要求することなく、実行可能である。このように、電力プロフィール情報は、消費電力を抑制しつつ(例えば、低電力状態またはスリープ状態にあるプロセッサを電力プロフィール情報の収集に利用することなく)、決定することができる。このように、ある実施形態によると、プロセッサの低電力状態またはスリープ状態を終了させることなくプラットフォーム上で電力プロファイリングを実行することができる方法が提供される。一方で、ユーザは、プラットフォームを非常に正確にプロファイリングすることができる。多くの実施形態では、電力状態の移行を追跡するために用いられるイベントおよびハードウェア電力計測機能を組み合わせて、電力プロファイリングアプリケーションに、非常に正確にプラットフォームの電力使用をプロファイリングさせることができる。本明細書ではプロセッサに関する実施形態例を説明するが、本発明の範囲はこれに限定されないものと理解されたい。電力プロファイリングはさらに、システムの他の構成要素、例えば、システムオンチップ(SoC)等に適用され得る。具体的には、SoCは、常時オンになっておりSoC全体の電力を管理する小型プロセッサであるシステムコントロールユニット(SCU)を含むとしてよい。一部の実施形態は、このプロセッサから電力プロファイラを実行するとしてよく、プラットフォームの任意の構成要素を監視することができる。
プロセッサ電力状態移行イベントは、プロセッサが現在の電力状態をいつ変更したかを追跡するためのイベントである。このような電力状態移行イベントは、アクティブ状態からスリープ状態への移行およびスリープ状態からアクティブ状態への移行を含む。尚、本明細書で用いる場合、「スリープ状態」および「低電力状態」という用語は、デバイスの通常動作状態未満の電力状態を意味する同義語として用いられるとしてよい。このような低電力状態では、例えば、プロセッサに関して、一部の構成要素はオン状態を維持して機能を継続する一方、他の構成要素は電源オフ状態になる。プロセッサが低電力状態になると、電力が節約される。プロセッサは、実行中の作業負荷が当該プロセッサのサポートを必要としない旨を検出すると低電力状態になるようプログラミングされているとしてよく、または、自発的に低電力状態になるとしてよい。つまり、一部の実施形態によると、このようなイベントはソフトウェア(例えば、オペレーティングシステム(OS))またはハードウェア(例えば、プロセッサ自身)によってトリガされるとしてよい。さまざまな実施形態によると、移行イベントが発生すると、プロファイリングアプリケーションまたはその他のプロファイラに通知が行くとしてよい。
プロセッサの電力状態移行イベントの一例は、Linux(登録商標)オペレーティングシステム、つまり、電力開始トレースポイント(C状態エントリトレースポイントとも呼ばれる)に見られる。C状態エントリトレースポイントは、オペレーティングシステムがプロセッサをスリープ状態に移行させるためにプログラミングする用意をしている場合に実行される。これらのトレースポイントは、カーネル計測メカニズムであり、開発者がカーネルの機能を理解し易いように、カーネルソースコードフロー内のポイントに配置するとしてよい。言い換えると、トレースポイントは、カーネルソースコードにおけるprintf関数呼び出しと同様である。
トレースポイントによれば、デバイスドライバがトレースポイントに動的に接続される機能が得られる。デバイスドライバがトレースポイントに接続(例えば、登録)されている場合、オペレーティングシステムは、当該トレースポイントを含むカーネルソースコードが実行されると、デバイスドライバ内の関数を呼び出す。言い換えると、C状態エントリトレースポイントは、プロセッサがスリープ状態に移行する用意をしている場合、電力プロファイリングアプリケーションに通知するために利用され得る。尚、Linux(登録商標)OSについての実施形態に基づいて説明しているが、本発明の範囲はこれに限定されず、実施形態は他のOSで利用し得るものと理解されたい。つまり、より一般的には、実施形態では、例えば、OSで実施されるものとして、電力状態移行時に特定の電力状態情報を収集する。
プロセッサは、所定の低電力状態に移行すると、通常は動作を停止する。言い換えると、命令は実行しない。プロセッサは、低電力状態に移行するようにプログラミングされると、要求されたスリープ状態から逸脱することを選択するとしてよい。言い換えると、オペレーティングシステムがスリープ状態1に移行するようハードウェアをプログラミングする一方、ハードウェアは現在のプラットフォーム動作の情報に基づいてスリープ状態2に移行することを選択するとしてよい。代表的なプロセッサは、Intel(登録商標)命令セットアーキテクチャ(ISA)に基づいたプロセッサであって、複数の低電力状態を可能とするプロセッサを含む。例えば、アドバンスドコンフィグレーションアンドパワーインターフェース(ACPI)規格、例えば、Rev.3.0b(2006年10月10日に公開)に応じたプロセッサ、プロセッサコアに対して複数の低電力状態、いわゆるC状態を実現するプロセッサを含む。
一部の実施形態によると、プロセッサは、電力プロフィール情報について、ハードウェアサポートを提供するとしてよい。例えば、マルチコアプロセッサにおいて、各コアは低電力状態レジデンシカウンタ(例えば、C状態レジデンシカウンタ)を含むとしてよい。低電力状態レジデンシカウンタは、ハードウェアが特定の低電力状態に留まっている時間(例えば、プロセッササイクル)をカウントする単調増加カウンタである。例えば、プロセッサは、特定の低電力状態、例えば、C3およびC6のC状態についてのみ、C状態レジデンシカウンタを提供するとしてよい。このハードウェア監視計測機能によって、ハードウェアの低電力挙動を正確に監視することができる。また、ハードウェアはシステムタイムカウンタを提供するとしてよい。例えば、プロセッサは、コア単位で、タイムスタンプカウンタ(TSC)を提供するとしてよい。一部の実施形態では、これらのカウンタは、ハードウェアがアクティブ状態または低電力状態に留まっている場合は、常時カウントしている単調増加カウンタである。
上述したように、従来のプロファイリングアプリケーションは、イベント(例えば、割り込みまたはタイマー)をスケジューリングして、プロファイリングアプリケーションが特定の情報を収集できるようにする。しかしこれでは、電力プロファイリングソフトウェアによって、スリープ状態のプロセッサがスリープ状態を終了させることになってしまう。プロセッサがスリープ状態を終了させると、プロセッサは通常消費電力モードで動作を継続する。言い換えると、イベントをスケジューリングする従来のプロファイリングアプリケーションのために、プロファイリングアプリケーションが実行されていないプラットフォームと比較すると、プラットフォームが消費する電力が増加する(そして、低電力性能情報が混乱してしまう)。実施形態ではプロセッサ電力状態移行イベントをトリガイベントとして利用してプラットフォームに関する電力情報を収集するので、タイマまたは割り込みは回避され、実施形態でデータを取得するのは、プロセッサがアクティブ状態で実行されている場合のみである。このようにして、プロファイリングアプリケーションが、プラットフォームをプロファイリングするために用いられる電力を最小限に抑え、プラットフォームの低電力挙動の混乱を回避する。
一実施形態によると、電力プロフィール情報を収集するためにデバイスドライバを用いることができる。しかし、他の実施形態では、他の特権レベルソフトウェアまたはユーザレベルソフトウェアがこの情報を取得するとしてよい。デバイスドライバは、プロセッサが低電力状態に移行する用意をしている場合に通知されるプロセッサ電力状態移行イベントを利用する。この実施形態では、デバイスドライバは、例えば、収集関数等の関数を、OS電力状態移行コードに登録する。例えば、一実施形態において、このコードは、Linux(登録商標)のC状態エントリトレースポイントであってよく、この登録によって、C状態エントリトレースポイントは、オペレーティングシステムがプロセッサをスリープ状態に移行させると判断する度に、登録された関数を呼び出す。
OSがC状態エントリトレースポイントを実行すると、デバイスドライバの収集関数が、一実施形態によると、システムクロックおよびプロセッサのスリープ状態レジデンシカウンタを読み出して、アクセスした情報を保存する。例えば、第1の情報収集は、第1のC状態エントリトレースポイントにおいて発生し、サンプルAを取得するとしてよい。この次にC状態エントリトレースポイントが実行されると、デバイスドライバの関数は、同じ情報をサンプルBについて収集する。この処理は、データ収集段階において継続して行われる。性能コストは最小限に抑えられるとしてよい。これは、一回のC状態エントリトレースポイントにおいて読み出されるレジスタは一握りのみのためである。
図1は、本発明の実施形態に係るタイミングシーケンスを示す図である。t0において、C状態エントリトレースポイントが実行され、サンプルAが収集される。この後、プロセッサはスリープ状態になる。尚、このスリープ状態は、オペレーティングシステムがプログラミングした状態とは異なる状態であるとしてよい。t1において、ハードウェアがスリープ状態を終了して、通常の動作に戻り、消費電力も通常に戻るイベントが発生する。スリープ状態を終了させる当該イベント(例えば、割り込みまたはタイマ切れ)は、電力プロファイラがスケジューリングしたものではなかった。t2において、C状態エントリトレースポイントが再度実行され、サンプルBを収集する。尚、データの収集は、トレースポイントにトリガされる代わりに、OSまたはプラットフォームロジックの別の通知メカニズムに応じて実施されるとしてもよい。
データの収集が終了した後、収集されたデータを、例えば、プロファイリングアプリケーションによって処理することができる。サンプルBのシステムクロック値とサンプルAのシステムクロック値との間の差分を算出する。この差分は、2つの電力状態移行イベントの間に実際に経過した時間に対応するとしてよい。また、サンプルAとサンプルBとの間のレジデンシカウンタの差分も算出して、第1の電力状態移行イベントについての低電力状態(およびその長さまたは期間、さまざまな実施形態によると、サイクル単位で計測するとしてもよいし、時間で計測するとしてもよい)を決定することができる。
例えば、C3状態について1つのレジデンシカウンタ、そして、C6状態について1つのレジデンシカウンタの2つのレジデンシカウンタがあると仮定する。また、サンプルAおよびサンプルBにおいて、表1に示す値が収集されたと仮定する。
Figure 2014509032
このデータからは、電力プロファイラは、どのスリープ状態に移行したか(この場合には、C3カウンタが変化していないのでC6状態)、スリープ状態で動作した時間(C6状態において300カウント)、および、通常電力レベルでの動作時間(200カウント、総時間−スリープ時間に等しい)を正確に決定することができる。
上述したように、さまざまなシステムに実施形態を組み込むことが可能であり、複数の異なる構成要素を用いて実施形態を実施し得る。一部の実施形態によると、一連の性能分析ツールの一部として方法を実施し得る。より具体的に説明すると、システムの構成要素における電力状態移行に関する情報を取得して当該データを処理することができるツールの電力プロファイラに実施形態を組み込むとしてよい。そして、このデータを用いることで、ユーザ、コンパイラ、オペレーティングシステムまたはその他の同様のエンティティ等、所定のエンティティによる分析を実行できるようにするとしてよい。本明細書で説明した実施形態は、マルチコアプロセッサ等のプロセッサで発生する電力移行に関する実施形態である。しかし、この特定の実施例で説明しているが、本発明の範囲はこれに限定されるものではなく、他の実施形態では、システムの他の構成要素、例えば、チップセット、メモリ、周辺機器等もまた、本発明の実施形態に係る電力監視方式によって有益な効果が得られると理解されたい。
図2を参照すると、本発明の実施形態に係る電力プロファイリング方法の概要を示すフローチャートが図示されている。図2に示すように、方法10は、性能分析部、より具体的には、性能分析部の電力プロファイラで実行され得るが、電力プロファイラのデバイスドライバを初期化することから開始されるとしてよい(ブロック20)。このようなデバイスドライバの初期化によって、当該デバイスドライバに対応付けられている低レベル機能、例えば、さまざまなプロセッサレジスタ等の特権リソースにアクセスする機能がイネーブルされるとしてよい。続いて、ブロック30に進み、例えば、このドライバの収集関数を登録して、電力状態移行イベントの際に呼び出すことができるようにするとしてよい。一例を挙げると、電力状態移行イベントを処理するOSモジュールをアップデートして、この収集関数を登録することができる。Linux(登録商標)のOSについての特定の一実施形態において、この収集関数は、電力移行に関する計測処理を実行するトレースポイントに登録することができる。
さらに図2を参照しつつ説明すると、続いて、収集関数によって取得される電力状態移行情報を格納するためのバッファを割り当てるとしてよい(ブロック40)。一例を挙げると、このバッファはプロセッサのキャッシュメモリ、例えば、最終レベルキャッシュに設定されるとしてよい。したがって、この時点において、電力プロファイラは、電力状態移行イベントの発生に応じて、収集処理を実行して電力状態移行情報を取得するように構成されている。
したがって、電力状態移行イベントについて収集処理を行うブロック50に進む。取得した対応する情報をバッファに格納するとしてよい。さまざまな実施形態によると、収集処理は、低電力モードの開始に対応する電力状態移行イベントに対して実行されるとしてよい。これは、さまざまな処理がOSによって実行されて、プロセッサが低電力モードに入る準備をして、低電力モードへの移行を可能にするためである。しかし、これに代えて、他の実施形態によると、この情報は、低電力モードを終了する際に取得されるとしてもよい。いずれのイベントにしても、従来の電力プロファイラのようにシステム動作中のランダムなタイミング(例えば、割り込みまたはタイマに応じて)ではなく、プロファイリングウィンドウにおいて(特定の方向の、つまり、低電力モード開始時または低電力モード終了時の)どの電力状態移行イベントにおいても情報を画定的に収集し得ることに留意されたい。この収集処理は、プロファイリングウィンドウに対応する期間にわたって(所定の方向の)多くの連続した電力状態移行イベントについて実行され得る。プロファイリングウィンドウは、さまざまな実施形態によると、バラツキが大きい。例えば、収集処理は、一秒と短くてもよいが、通常は作業負荷がシステムを駆動している限り(通常は数分であるが、まれに数時間に及ぶ)において、実行される。
このように、複数の連続した電力状態移行イベントで得られる情報は、収集ウィンドウにおいて収集され得る。本発明の範囲はこれに限定されないが、さまざまな実施形態によると、この移行イベントに関して収集される情報は、タイムスタンプカウンタ等のシステムレベルカウンタを含むさまざまなカウンタの値、および、プロセッサ内で利用可能な複数の異なる低電力状態に対応付けられている1以上のカウンタの値を含むとしてよい。例えば、C状態はそれぞれ、機械固有レジスタ(MSR)が対応付けられており、当該レジスタを用いて所与の低電力モードの期間をカウントすることができるとしてよい。各収集処理の後、収集処理が完了したか否かを判断するとしてよい(ダイヤモンド60)。例えば、さまざまな実施形態によると、電力プロファイラは、所定の時間にわたって、または、所定数の電力状態イベントについて等、データを収集するように構成されるとしてよい。収集が完了していなければ、ブロック50に戻る。
収集が完了していれば、ブロック70に進み、収集処理で取得した電力状態移行情報を処理してユーザに報告するとしてよい。尚、図2の実施形態では比較的概略的なレベルで説明したが、複数の異なる実施形態において詳細な内容および変形例はさまざまなものが実施可能であると理解されたい。
図3を参照すると、本発明の一実施形態に係る収集方法を説明するためのフローチャートが図示されている。上述したように、一部の実施形態によると、当該収集方法は、MSR、システムカウンタ等の特権リソースに存在する情報にアクセス可能なドライバに対する関数呼び出しによって実施されるとしてよい。しかし、他の実施形態によると、収集処理はユーザモードで実行され得ると理解されたい。図3において、方法100は、ブロック110でシステムクロックを読み出すことによって開始されるとしてよい。さまざまな実施形態によると、システムクロックは、低電力状態に入るコアに存在するタイムスタンプカウンタに対応するとしてよい。このため、プロセッサはコア単位で電力管理を行うように制御され得るので、収集処理はコアの粒度で実行され得ると理解されたい。しかし、他の実施形態によると、プロセッサは、パッケージレベルでのみ電力管理を実現するので、このような実施形態では、情報はパッケージ単位で取得されるとしてよい。さらに別の実施例によると、コアレベルおよびパッケージレベルの電力状態情報の組み合わせを取得することもできる。
さらに図3を参照すると、読み出したシステムクロック値は、バッファに格納されるとしてよい(ブロック120)。より具体的には、収集処理毎に、バッファのエントリが割り当てられ、このシステムクロック値を、利用可能な各低電力状態に対応付けられている単調カウンタの値と共に格納するために用いることができる。
このため、図3からさらに分かるように、プロセッサで利用可能なスリープ状態毎に(ダイヤモンド130での決定に応じて)、その低電力状態についての対応するレジデンシカウンタの読出処理を含むループを実行する(ブロック140)。当該読出処理は、当該低電力状態のMSRを読み出すことによって実行されるとしてよい。その後、カウンタ値をバッファ内のエントリに書き込む(ブロック150)。このように、利用可能な低電力状態についてカウンタを全て読み出すと、方法100は終了するとしてよい。したがって、電力状態移行イベントについての収集処理が完了し、取得された情報はバッファのエントリに格納される。尚、図3の実施形態ではこの特定の情報について関連付けて説明しているが、本発明の範囲はこれに限定されるものではなく、他の実施形態では、追加で情報を取得するとしてもよいし、別の情報を取得してもよいものと理解されたい。例えば、一実施形態によると、追加で取得する情報には、OSが要求した低電力状態(ハードウェアが実際に利用している低電力状態でない場合もある)が含まれるとしてよい。
図3を参照しつつ説明したような収集処理は、何度も実行するとしてよい。所望の量のデータを収集すると、電力プロファイラは、さまざまな処理を実行して、収集したデータにさらに処理を実行する準備をすると共にデータ収集を終了させるとしてよい。図4を参照すると、本発明の実施形態に係るデータ収集を終了させる方法を説明するためのフローチャートが図示されている。図4に図示しているように、方法200は、デバイスドライバをアンロードする処理においてさまざまな処理を実行するとしてよい(ブロック210)。概して、ドライバは、アンロード処理の前に、データをフラッシュして(例えば、ディスクに書き込んで)、バッファを空にして、収集関数の登録を解除する。これらのステップ(ドライバをアンロードするステップを除く)は、収集処理が終了する度に実行され得る。ドライバは、「insmod」コマンドまたは「rmmod」コマンドを用いて手動で挿入および削除が可能であり(Linux(登録商標)のOSの場合)、または、ドライバは、ブート期間に自動的にロードして決して削除されないとしてもよい。また、一部のOSでは、デバイスドライバを、特定のユーザモードのシステム呼び出しでロードして、アンロードすることができる。このような実施例では、(1)ドライバをロードして、(2)時間が経過すると、収集処理を実行して、(3)所望に応じてステップ(2)を繰り返し、(4)ドライバをアンロードするという順序になる。また、一部の実施例によると、収集したデータは、収集処理を制御するユーザレベルコードに戻して、ユーザレベルコードによってファイルに保存されることに留意されたい。言い換えると、ドライバは、実際にはファイルへの書き込みを実行せず、バッファをユーザレベルコードに渡して、収集処理中にユーザレベルコードがデータをファイルに書き込む。Linux(登録商標)のOSであれば、この種類のデバイスドライバは「キャラクタ」ドライバと呼ばれる。
図から分かるように、当該方法は、バッファがファイルに書き込まれるブロック215で開始される。例えば、バッファは、上述したように、プロセッサのキャッシュ内の一時ストレージに位置しているとしてよく、ファイルシステムに転送することができ、例えば、後でアクセスするべくデータファイル220としてシステムメモリに格納されるとしてよい。続いて、ブロック225に進み、バッファを解放して、OSのリソースプールに戻すとしてよい。最後に、ブロック230に進み、収集関数の登録を解除するとしてよい。つまり、収集関数を登録していたOSトレースポイントまたは他のカーネル(または、他の位置)は登録を解除するので、当該関数は電力状態移行イベントにおいて呼び出されることがなくなる。この時点において、デバイスドライバはアンロードされるとしてよい。
このように、この時点において、所望の電力状態情報が取得されており、さらに処理することで、システムの分析ツール等のユーザまたはその他のエンティティによる分析が可能となる。図5を参照すると、本発明の実施形態に係る収集したデータを処理する方法を説明するためのフローチャートが図示されている。図5に図示されているように、方法250は、データファイル220を処理することによって開始されるとしてよい(ブロック260)。一実施形態によると、この処理は、データとプロセッサがアクティブ状態に戻った理由の説明(例えば、タイマまたは割り込み、または、アクティブ状態へ戻るきっかけとなったイベントに至るソースコードコールスタックの説明)とを対応付ける処理を含むとしてよい。この時点において、データは、例えば、電力プロファイラのユーティリティによって処理すべき形式になっている。
さらに図5を参照して説明すると、ブロック265に進んで、第1の電力状態移行イベントの収集処理に対応する第1のサンプルをデータファイルから読み出すとしてよい。そして、ダイヤモンド270での判断に応じて、ファイル内の追加サンプル毎にループを実行するとしてよい。特に、このループでは、ブロック275において、現在サンプルと過去サンプルとの間の経過時間を算出することができる(ブロック275)。また、ブロック280において、現在サンプルのレジデンシカウントのそれぞれと、過去サンプルのレジデンシカウントとの差分も算出するとしてよい。ブロック290において、算出結果をテーブルに格納するとしてよい。このため、互いに隣接する一対のサンプル毎について、低電力状態の前回の開始タイミングと低電力状態の今回の開始タイミングとの間に経過した時間(システムクロック数で表される差分によって決まる)を決定することができる。さらに、対応するレジデンシカウントの差分に基づき、前回の低電力移行での移行先である所与の低電力状態を、この低電力状態の期間の長さを決定するとともに、決定することができる。このように、一対のサンプル毎に、2つの電力状態イベントの間の経過時間を、前回の低電力移行の期間および種類と共に、決定することができる。このため、これらの値は、他のレジデンシカウンタの差分(全てゼロに等しいとしてよい)と共にテーブルエントリに格納されるとしてよい。このため、このループはデータファイル内の追加サンプル毎に実行される。
この処理が完了すると、ブロック295に進み、結果をユーザに出力するとしてよい。例えば、この出力は、収集処理の間の動作を説明するタイムラインとしてもよいし、または、ある状態を利用した頻度を説明するヒストグラムとして表示することもできる。幾つかの例によると、出力は、プリントアウトされるとしてもよいし、または、プラットフォームのディスプレイのユーザが見ることが可能なディスプレイであってよい。さらに、テーブルに格納されている結果はまた、他の分析ツールおよび制御ツール、例えば、コンパイラ、OSまたはその他のツールで利用されるべく、機械可読媒体形式で利用可能であるとしてよい。一例を挙げると、テーブル内の情報は、人間が読み出し可能な形式で、および/または、コンピュータが読み出し可能な形式で、OSエンティティに供給されるとしてよい。この情報は、OS開発者および/または動作しているOS自体によって、電力管理に関する判断処理についての性能を改善するべく、利用されるとしてよい。例えば、開発者は、受信した情報に基づいて、OSの電力管理コードを更新するとしてよい。
このような一例によると(上述したように)、プロセッサハードウェアは、OSが要求した低電力状態とは異なる低電力状態に入ることを選択することが可能である。テーブルから利用可能な情報、つまり、所与の間隔で開始された特定の低電力状態の期間および種類に基づき、OSエンティティは、自身が発行した低電力状態移行要求は受け入れられず、プロセッサが選択した別の低電力状態が優先されたと決定することができる。この情報に基づき、OSエンティティは、電力管理アルゴリズムおよび/または電力管理ヒューリスティックスを修正して、例えば、今後新しいOSがリリースされる場合には、別の電力管理判断がなされるようにしてもよい。さらに、この情報がコンピュータ可読形式で、プラットフォームで実行される現在のOSのインスタンス化に供給される実施形態では、OSのインスタンス化は、リアルタイムで、制御アルゴリズムを更新するとしてよく、その後実行する際にはこの情報に基づいてより良い判断を行うとしてよい。図5の実施形態ではこの特定の実施形態を図示しているが、本発明の範囲はこれに限定されるものではないと理解されたい。
図6を参照すると、本発明の実施形態に係るプロセッサのブロック図が図示されている。図6に図示しているように、プロセッサ400は、複数のコア410−410を含むマルチコアプロセッサであってよい。一実施形態によると、各コアは、例えば、フロントエンドユニットと、アウトオブオーダロジックと、実行ユニットと、リタイヤメントロジック等のバックエンドユニットとを含むパイプラインを持つとしてよい。さらに、上述したように、各コアは、機械固有レジスタ、性能モニタ等のレジスタとして実現され得るさまざまなカウンタを含むとしてよい。図6の実施形態によると、これらのカウンタはタイムスタンプカウンタ412を含む。カウンタ412は、プロセッサの公称周波数で、例えば、マシンサイクルとして、カウントするとしてよく、一部の実施形態によると、コア(または、電力がプロセッサに供給されている限りにおいて、プロセッサ)の電力状態および複数の低電力カウンタ4140−xに関係なく常にカウントしているとしてよい。各低電力カウンタは、コアが所与の低電力状態にあるサイクルをカウントする。
さまざまなコアが、インターコネクト415を介して、さまざまな構成要素を含む非コア部420に結合されているとしてよい。図示されているように、非コア部420は、最終レベルキャッシュである共有キャッシュ430を含むとしてよい。また、非コア部は、集積化メモリコントローラ440、さまざまなインターフェース450、および、電力制御ユニット455を含むとしてよい。一部の実施形態では、電力制御ユニット455を用いて、OSには関係なく、低電力状態を開始および終了するとしてよい。図示されているように、プロセッサ400は、例えば、メモリバスを介して、システムメモリ460と通信するとしてよい。また、インターフェース450によって、さまざまなチップ外構成要素、例えば、周辺機器、大容量ストレージ等に接続を行うことができる。図6の実施形態ではこの特定の実施例で図示しているが、本発明の範囲はこれに限定されない。
実施形態は多くの異なる種類のシステムで実現され得る。図7を参照すると、本発明の実施形態に係るシステムを示すブロック図が図示されている。図7に示すように、マルチプロセッサシステム500は、ポイント・ツー・ポイントインターコネクトシステムであり、ポイント・ツー・ポイントインターコネクト550を介して結合されている第1のプロセッサ570および第2のプロセッサ580を含む。図7に示すように、プロセッサ570および580はそれぞれ、マルチコアプロセッサであってよく、第1および第2のプロセッサコア(つまり、プロセッサコア574aおよび574b、ならびに、プロセッサコア584aおよび584b)を含むが、プロセッサにははるかに多くのコアが存在するとしてもよい。各コアは、上述したように、さまざまなレジデンシカウンタおよびシステムカウンタを含むとしてよい。
さらに図7を参照しつつ説明すると、第1のプロセッサ570はさらに、メモリコントローラハブ(MCH)572ならびにポイント・ツー・ポイント(P−P)インターフェース576および578を含む。同様に、第2のプロセッサ580は、MCH582ならびにP−Pインターフェース586および588を含む。図7に示すように、MCH572および582によって、プロセッサが対応するメモリ、つまり、メモリ532およびメモリ534に結合されている。メモリ532および534は、対応するプロセッサにローカルに接続されているメインメモリ(例えば、ダイナミックランダムアクセスメモリ(DRAM))の一部であってよい。第1のプロセッサ570および第2のプロセッサ580は、P−Pインターコネクト552および554を介して、チップセット590に結合されるとしてよい。図7に示すように、チップセット590は、P−Pインターフェース594および598を含む。
さらに、チップセット590は、チップセット590と高性能グラフィクスエンジン538とをP−Pインターコネクト539を介して結合するインターフェース592を含む。一方、チップセット590は、インターフェース596を介して第1のバス516に結合されるとしてよい。図7に示すように、さまざまな入出力(I/O)デバイス514は、バスブリッジ518と共に、第1のバス516に結合されているとしてよい。バスブリッジ518は、第1のバス516を第2のバス520に結合する。第2のバス520には、例えば、本発明の実施形態に応じた電力プロファイリング処理を実行するべく、さまざまなデバイスが結合されているとしてよい。例えば、キーボード/マウス522、通信デバイス526、および、コード530を含む、ディスクドライブまたはその他の大容量ストレージデバイス等のデータストレージユニット528が結合されているとしてよい。さらに、第2のバス520には音声I/O524が結合されているとしてよい。
実施形態は、コードで実現するとしてよく、命令を格納しており、当該命令を実行するようシステムをプログラミングするために用いられる格納媒体に格納するとしてよい。格納媒体は、これらに限定されないが、フロッピー(登録商標)ディスク、光ディスク、光ディスク、ソリッドステートドライブ(SSD)、コンパクトディスクリードオンリーメモリ(CD−ROM)、コンパクトディスクリライタブル(CD−RW)および光磁気ディスクを含むディスク、リードオンリーメモリ(ROM)等の半導体デバイス、ダイナミックランダムアクセスメモリ(DRAM)等のランダムアクセスメモリ(RAM)、スタティックランダムアクセスメモリ(SRAM)、消去可能プログラム可能リードオンリーメモリ(EPROM)、フラッシュメモリ、電気的消去可能プログラム可能リードオンリーメモリ(EEPROM)、磁気カードまたは光カード、または、電子命令の格納に適した任意のその他の種類の媒体等の任意の種類の非一時的格納媒体を含むとしてよい。
本発明を限られた数の実施形態に基づいて説明したが、当業者であれば、開示内容から数多くの変形例および変更例に想到するであろう。添付した特許請求の範囲はこのような変形例および変更例をすべて、本発明の真の意図および範囲に含むものとする。

Claims (20)

  1. システムのコンポーネントにおいて電力状態移行イベントが発生すると呼び出される電力プロファイラを登録する段階と、
    前記電力状態移行イベントに関する情報を格納するバッファを割り当てる段階と、
    前記電力状態移行イベントが発生すると、システムカウンタ値および前記コンポーネントの1以上の低電力状態のそれぞれについてのカウンタ値を読み出して、前記システムカウンタ値および1以上の前記カウンタ値を前記バッファに書き込む段階と
    を備える方法。
  2. 割り込みまたはタイマ切れが発生しなくても、前記システムカウンタ値および前記1以上のカウンタ値を読み出す段階をさらに備える請求項1に記載の方法。
  3. オペレーティングシステム(OS)から前記電力プロファイラのデバイスドライバの収集関数へと制御を移行して、前記システムカウンタ値および前記1以上のカウンタ値を読み出す段階をさらに備える請求項2に記載の方法。
  4. 前記収集関数への呼び出しを前記OSのトレースポイントに挿入する段階をさらに備える請求項3に記載の方法。
  5. 前記システムカウンタ値および前記1以上のカウンタ値を複数の電力状態移行イベントのそれぞれについて読み出して、前記複数の電力状態移行イベントのそれぞれについて、前記システムカウンタ値および前記1以上のカウンタ値を前記バッファに書き込む段階をさらに備える請求項1または2に記載の方法。
  6. 第1の電力状態移行イベントと第2の電力状態移行イベントとの間の経過時間を、前記第1の電力状態移行イベントおよび前記第2の電力状態移行イベントにおいて読み出した前記システムカウンタ値に基づいて決定し、前記第1の電力状態移行イベントの後に開始された低電力状態の期間および種類を、前記第1の電力状態移行イベントおよび前記第2の電力状態移行イベントにおいて読み出された複数の前記カウンタ値に基づいて決定する段階をさらに備える請求項5に記載の方法。
  7. 前記第1の電力状態移行イベントおよび前記第2の電力状態移行イベントにおいて読み出された前記システムカウンタ値の差分を決定する段階をさらに備える請求項6に記載の方法。
  8. 前記低電力状態の期間および種類を含む情報を、前記第1の電力状態移行イベントを要求したオペレーティングシステムに供給する段階をさらに備える請求項6または7に記載の方法。
  9. 前記オペレーティングシステムの挙動を修正する段階をさらに備え、
    前記オペレーティングシステムの要求では、前記第1の電力状態移行イベントは別の種類であり、前記コンポーネントは、前記要求を無効にして、前記低電力状態の種類に対応する別の低電力状態に移行する請求項8に記載の方法。
  10. 前記経過時間、ならびに、前記低電力状態の期間および種類をテーブルに記録する段階をさらに備える請求項6から9のいずれか一項に記載の方法。
  11. コンピュータに、
    マルチコアプロセッサのコアについて第1の方向の複数の電力状態移行イベントのそれぞれが発生すると、タイマ切れまたは割り込みのトリガが発生しなくても、前記コアのシステムカウンタの値および前記コアの複数の低電力カウンタのそれぞれの値を読み出す手順と、
    前記複数の電力状態移行イベントのそれぞれについて、前記システムカウンタの値および前記複数の低電力カウンタのそれぞれの値を前記マルチコアプロセッサのストレージに格納する手順と、
    前記複数の電力状態移行イベントの後、前記ストレージにアクセスして、格納されている前記システムカウンタの値および格納されている前記複数の低電力カウンタのそれぞれの値を用いて、前記マルチコアプロセッサの電力プロフィールを決定する手順と
    を実行させるためのプログラム。
  12. 前記コンピュータにさらに、第1の電力状態移行イベントと第2の電力状態移行イベントとの間の経過時間を、前記第1の電力状態移行イベントおよび前記第2の電力状態移行イベントにおいて読み出された前記システムカウンタの値に基づいて決定し、前記第1の電力状態移行イベントの後で開始された低電力状態の期間および種類を、前記第1の電力状態移行イベントおよび前記第2の電力状態移行イベントにおいて読み出された前記複数の低電力カウンタのそれぞれの値に基づいて、決定する手順を実行させる請求項11に記載のプログラム。
  13. 前記コンピュータにさらに、前記経過時間ならびに前記低電力状態の期間および種類をテーブルに記録して、前記低電力状態の期間および種類を含む情報を、前記第1の電力状態移行イベントを要求したオペレーティングシステムに提供する手順を実行させる請求項12に記載のプログラム。
  14. 前記コンピュータにさらに、前記複数の電力状態移行イベントのそれぞれが発生すると、前記システムカウンタの値および前記複数の低電力カウンタのそれぞれの値を読み出すべく、通知メカニズムから電力プロファイラの関数を呼び出す手順を実行させる請求項13に記載のプログラム。
  15. 前記コンピュータにさらに、前記システムカウンタの値および前記複数の低電力カウンタのそれぞれの値を格納するバッファを前記コンピュータが割り当てる手順を実行させる請求項14に記載のプログラム。
  16. 前記コンピュータにさらに、前記システムカウンタの値および前記複数の低電力カウンタのそれぞれの値を読み出すべく、オペレーティングシステムから電力プロファイラのデバイスドライバの収集関数へと制御を移行する手順を実行させる請求項11または12に記載のプログラム。
  17. それぞれがフロントエンドロジック、アウトオブオーダロジックおよびバックエンドロジックを含む複数のコアと、サイクルのカウントを格納するタイムスタンプカウンタと、それぞれが一のコアが対応する低電力状態であるサイクルをカウントする複数の低電力状態カウンタとを有するマルチコアプロセッサと、
    前記マルチコアプロセッサの1以上の低電力状態のそれぞれについて前記タイムスタンプカウンタおよび前記複数の低電力状態カウンタを読み出して、前記タイムスタンプカウンタの値および前記複数の低電力状態カウンタの値をバッファに書き込む電力プロファイラと
    を備えるシステム。
  18. 前記電力プロファイラは、第1の方向の連続した複数の電力状態移行イベントについて、前記タイムスタンプカウンタおよび前記複数の低電力状態カウンタを読み出す請求項17に記載のシステム。
  19. 前記電力プロファイラは、タイマ切れまたは割り込みのトリガが発生しなくても、前記タイムスタンプカウンタおよび前記複数の低電力状態カウンタを読み出す請求項18に記載のシステム。
  20. 前記電力プロファイラは、オペレーティングシステムの通知メカニズムによって呼び出される収集関数を含み、
    前記通知メカニズムは、前記1以上の低電力状態のそれぞれに移行する電力状態移行イベントにおいて実行される請求項17から19のいずれか一項に記載のシステム。
JP2014501060A 2011-03-24 2011-12-30 オーバーヘッドを抑えた電力プロフィール情報の取得 Active JP5615990B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/070,700 2011-03-24
US13/070,700 US8949637B2 (en) 2011-03-24 2011-03-24 Obtaining power profile information with low overhead
PCT/US2011/068006 WO2012128817A2 (en) 2011-03-24 2011-12-30 Obtaining power profile information with low overhead

Publications (2)

Publication Number Publication Date
JP2014509032A true JP2014509032A (ja) 2014-04-10
JP5615990B2 JP5615990B2 (ja) 2014-10-29

Family

ID=46878354

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014501060A Active JP5615990B2 (ja) 2011-03-24 2011-12-30 オーバーヘッドを抑えた電力プロフィール情報の取得

Country Status (7)

Country Link
US (1) US8949637B2 (ja)
EP (1) EP2689316A4 (ja)
JP (1) JP5615990B2 (ja)
KR (1) KR101496077B1 (ja)
CN (1) CN103443737B (ja)
TW (1) TWI550507B (ja)
WO (1) WO2012128817A2 (ja)

Families Citing this family (126)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8943334B2 (en) 2010-09-23 2015-01-27 Intel Corporation Providing per core voltage and frequency control
US9069555B2 (en) 2011-03-21 2015-06-30 Intel Corporation Managing power consumption in a multi-core processor
US8793515B2 (en) 2011-06-27 2014-07-29 Intel Corporation Increasing power efficiency of turbo mode operation in a processor
US9026815B2 (en) 2011-10-27 2015-05-05 Intel Corporation Controlling operating frequency of a core domain via a non-core domain of a multi-domain processor
US9158693B2 (en) 2011-10-31 2015-10-13 Intel Corporation Dynamically controlling cache size to maximize energy efficiency
US8943340B2 (en) 2011-10-31 2015-01-27 Intel Corporation Controlling a turbo mode frequency of a processor
US9052901B2 (en) 2011-12-14 2015-06-09 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including configurable maximum processor current
US9372524B2 (en) 2011-12-15 2016-06-21 Intel Corporation Dynamically modifying a power/performance tradeoff based on processor utilization
US9323316B2 (en) 2012-03-13 2016-04-26 Intel Corporation Dynamically controlling interconnect frequency in a processor
US9436245B2 (en) 2012-03-13 2016-09-06 Intel Corporation Dynamically computing an electrical design point (EDP) for a multicore processor
WO2013137859A1 (en) 2012-03-13 2013-09-19 Intel Corporation Providing energy efficient turbo operation of a processor
CN104204825B (zh) 2012-03-30 2017-06-27 英特尔公司 动态测量处理器中的功耗
WO2013162589A1 (en) 2012-04-27 2013-10-31 Intel Corporation Migrating tasks between asymmetric computing elements of a multi-core processor
US9444328B2 (en) * 2012-06-26 2016-09-13 Intel Corporation Acoustic noise mitigation using periodicity disruption
US8984313B2 (en) 2012-08-31 2015-03-17 Intel Corporation Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator
US9063727B2 (en) 2012-08-31 2015-06-23 Intel Corporation Performing cross-domain thermal control in a processor
US9575543B2 (en) 2012-11-27 2017-02-21 Intel Corporation Providing an inter-arrival access timer in a processor
US9183144B2 (en) 2012-12-14 2015-11-10 Intel Corporation Power gating a portion of a cache memory
US9405351B2 (en) 2012-12-17 2016-08-02 Intel Corporation Performing frequency coordination in a multiprocessor system
US9292468B2 (en) 2012-12-17 2016-03-22 Intel Corporation Performing frequency coordination in a multiprocessor system based on response timing optimization
US9075556B2 (en) 2012-12-21 2015-07-07 Intel Corporation Controlling configurable peak performance limits of a processor
US9235252B2 (en) 2012-12-21 2016-01-12 Intel Corporation Dynamic balancing of power across a plurality of processor domains according to power policy control bias
US20140229754A1 (en) * 2013-02-11 2014-08-14 Nvidia Corporation Power telemetry remote monitoring
US9335803B2 (en) 2013-02-15 2016-05-10 Intel Corporation Calculating a dynamically changeable maximum operating voltage value for a processor based on a different polynomial equation using a set of coefficient values and a number of current active cores
JP6054203B2 (ja) 2013-02-28 2016-12-27 株式会社東芝 情報処理装置、デバイス制御方法及びプログラム
US9367114B2 (en) 2013-03-11 2016-06-14 Intel Corporation Controlling operating voltage of a processor
US9690353B2 (en) * 2013-03-13 2017-06-27 Intel Corporation System and method for initiating a reduced power mode for one or more functional blocks of a processor based on various types of mode request
US9395784B2 (en) 2013-04-25 2016-07-19 Intel Corporation Independently controlling frequency of plurality of power domains in a processor system
US9377841B2 (en) 2013-05-08 2016-06-28 Intel Corporation Adaptively limiting a maximum operating frequency in a multicore processor
US9823719B2 (en) 2013-05-31 2017-11-21 Intel Corporation Controlling power delivery to a processor via a bypass
US9471088B2 (en) 2013-06-25 2016-10-18 Intel Corporation Restricting clock signal delivery in a processor
US9348401B2 (en) 2013-06-25 2016-05-24 Intel Corporation Mapping a performance request to an operating frequency in a processor
US9348407B2 (en) 2013-06-27 2016-05-24 Intel Corporation Method and apparatus for atomic frequency and voltage changes
US9377836B2 (en) 2013-07-26 2016-06-28 Intel Corporation Restricting clock signal delivery based on activity in a processor
US9495001B2 (en) 2013-08-21 2016-11-15 Intel Corporation Forcing core low power states in a processor
US10386900B2 (en) 2013-09-24 2019-08-20 Intel Corporation Thread aware power management
US9405345B2 (en) 2013-09-27 2016-08-02 Intel Corporation Constraining processor operation based on power envelope information
US9594560B2 (en) 2013-09-27 2017-03-14 Intel Corporation Estimating scalability value for a specific domain of a multicore processor based on active state residency of the domain, stall duration of the domain, memory bandwidth of the domain, and a plurality of coefficients based on a workload to execute on the domain
US9934119B2 (en) 2013-10-22 2018-04-03 Cisco Technology, Inc. Rogue hardware detection through power monitoring
US8843700B1 (en) * 2013-11-29 2014-09-23 NXGN Data, Inc. Power efficient method for cold storage data retention management
US9494998B2 (en) 2013-12-17 2016-11-15 Intel Corporation Rescheduling workloads to enforce and maintain a duty cycle
US9459689B2 (en) 2013-12-23 2016-10-04 Intel Corporation Dyanamically adapting a voltage of a clock generation circuit
US9323525B2 (en) 2014-02-26 2016-04-26 Intel Corporation Monitoring vector lane duty cycle for dynamic optimization
US9665153B2 (en) 2014-03-21 2017-05-30 Intel Corporation Selecting a low power state based on cache flush latency determination
US10108454B2 (en) 2014-03-21 2018-10-23 Intel Corporation Managing dynamic capacitance using code scheduling
US9395788B2 (en) 2014-03-28 2016-07-19 Intel Corporation Power state transition analysis
US9760158B2 (en) 2014-06-06 2017-09-12 Intel Corporation Forcing a processor into a low power state
US10417149B2 (en) 2014-06-06 2019-09-17 Intel Corporation Self-aligning a processor duty cycle with interrupts
US9606602B2 (en) 2014-06-30 2017-03-28 Intel Corporation Method and apparatus to prevent voltage droop in a computer
US9513689B2 (en) 2014-06-30 2016-12-06 Intel Corporation Controlling processor performance scaling based on context
US9575537B2 (en) 2014-07-25 2017-02-21 Intel Corporation Adaptive algorithm for thermal throttling of multi-core processors with non-homogeneous performance states
US9760136B2 (en) 2014-08-15 2017-09-12 Intel Corporation Controlling temperature of a system memory
US9671853B2 (en) 2014-09-12 2017-06-06 Intel Corporation Processor operating by selecting smaller of requested frequency and an energy performance gain (EPG) frequency
US10339023B2 (en) 2014-09-25 2019-07-02 Intel Corporation Cache-aware adaptive thread scheduling and migration
US9977477B2 (en) 2014-09-26 2018-05-22 Intel Corporation Adapting operating parameters of an input/output (IO) interface circuit of a processor
US9684360B2 (en) 2014-10-30 2017-06-20 Intel Corporation Dynamically controlling power management of an on-die memory of a processor
US9703358B2 (en) 2014-11-24 2017-07-11 Intel Corporation Controlling turbo mode frequency operation in a processor
US9710043B2 (en) 2014-11-26 2017-07-18 Intel Corporation Controlling a guaranteed frequency of a processor
US20160147280A1 (en) 2014-11-26 2016-05-26 Tessil Thomas Controlling average power limits of a processor
US10048744B2 (en) 2014-11-26 2018-08-14 Intel Corporation Apparatus and method for thermal management in a multi-chip package
US10877530B2 (en) 2014-12-23 2020-12-29 Intel Corporation Apparatus and method to provide a thermal parameter report for a multi-chip package
US20160224098A1 (en) 2015-01-30 2016-08-04 Alexander Gendler Communicating via a mailbox interface of a processor
US9639134B2 (en) 2015-02-05 2017-05-02 Intel Corporation Method and apparatus to provide telemetry data to a power controller of a processor
US10234930B2 (en) 2015-02-13 2019-03-19 Intel Corporation Performing power management in a multicore processor
US9910481B2 (en) 2015-02-13 2018-03-06 Intel Corporation Performing power management in a multicore processor
US9874922B2 (en) 2015-02-17 2018-01-23 Intel Corporation Performing dynamic power control of platform devices
EP3062142B1 (en) 2015-02-26 2018-10-03 Nokia Technologies OY Apparatus for a near-eye display
US9842082B2 (en) 2015-02-27 2017-12-12 Intel Corporation Dynamically updating logical identifiers of cores of a processor
US9710054B2 (en) 2015-02-28 2017-07-18 Intel Corporation Programmable power management agent
US9626227B2 (en) 2015-03-27 2017-04-18 Intel Corporation Technologies for offloading and on-loading data for processor/coprocessor arrangements
US9760160B2 (en) 2015-05-27 2017-09-12 Intel Corporation Controlling performance states of processing engines of a processor
US9710041B2 (en) 2015-07-29 2017-07-18 Intel Corporation Masking a power state of a core of a processor
US10001822B2 (en) 2015-09-22 2018-06-19 Intel Corporation Integrating a power arbiter in a processor
US9983644B2 (en) 2015-11-10 2018-05-29 Intel Corporation Dynamically updating at least one power management operational parameter pertaining to a turbo mode of a processor for increased performance
US9910470B2 (en) 2015-12-16 2018-03-06 Intel Corporation Controlling telemetry data communication in a processor
US10146286B2 (en) 2016-01-14 2018-12-04 Intel Corporation Dynamically updating a power management policy of a processor
US10289188B2 (en) 2016-06-21 2019-05-14 Intel Corporation Processor having concurrent core and fabric exit from a low power state
US10324519B2 (en) 2016-06-23 2019-06-18 Intel Corporation Controlling forced idle state operation in a processor
US10281975B2 (en) 2016-06-23 2019-05-07 Intel Corporation Processor having accelerated user responsiveness in constrained environment
US10379596B2 (en) 2016-08-03 2019-08-13 Intel Corporation Providing an interface for demotion control information in a processor
US10423206B2 (en) 2016-08-31 2019-09-24 Intel Corporation Processor to pre-empt voltage ramps for exit latency reductions
US10234920B2 (en) 2016-08-31 2019-03-19 Intel Corporation Controlling current consumption of a processor based at least in part on platform capacitance
US10379904B2 (en) 2016-08-31 2019-08-13 Intel Corporation Controlling a performance state of a processor using a combination of package and thread hint information
US10168758B2 (en) 2016-09-29 2019-01-01 Intel Corporation Techniques to enable communication between a processor and voltage regulator
US10650552B2 (en) 2016-12-29 2020-05-12 Magic Leap, Inc. Systems and methods for augmented reality
EP3343267B1 (en) 2016-12-30 2024-01-24 Magic Leap, Inc. Polychromatic light out-coupling apparatus, near-eye displays comprising the same, and method of out-coupling polychromatic light
US10429919B2 (en) 2017-06-28 2019-10-01 Intel Corporation System, apparatus and method for loose lock-step redundancy power management
US10578870B2 (en) 2017-07-26 2020-03-03 Magic Leap, Inc. Exit pupil expander
EP3673344A4 (en) 2017-08-23 2021-04-21 INTEL Corporation SYSTEM, DEVICE AND METHOD FOR ADAPTIVE OPERATING VOLTAGE IN A FIELD-PROGRAMMABLE GATE ARRAY (FPGA)
US10657059B2 (en) 2017-09-12 2020-05-19 International Business Machines Corporation Controlling a rate of prefetching based on bus bandwidth
US10620266B2 (en) 2017-11-29 2020-04-14 Intel Corporation System, apparatus and method for in-field self testing in a diagnostic sleep state
KR20230152180A (ko) 2017-12-10 2023-11-02 매직 립, 인코포레이티드 광학 도파관들 상의 반사―방지 코팅들
CA3086206A1 (en) 2017-12-20 2019-06-27 Magic Leap, Inc. Insert for augmented reality viewing device
US10620682B2 (en) 2017-12-21 2020-04-14 Intel Corporation System, apparatus and method for processor-external override of hardware performance state control of a processor
US10739843B2 (en) * 2018-02-21 2020-08-11 Dell Products L.P. System and method of monitoring device states
EP3766039A4 (en) 2018-03-15 2021-04-07 Magic Leap, Inc. IMAGE CORRECTION BY DEFORMING COMPONENTS OF A VIEWING DEVICE
US10620969B2 (en) 2018-03-27 2020-04-14 Intel Corporation System, apparatus and method for providing hardware feedback information in a processor
US10739844B2 (en) 2018-05-02 2020-08-11 Intel Corporation System, apparatus and method for optimized throttling of a processor
CN112236713B (zh) 2018-05-30 2023-01-24 奇跃公司 紧凑的可变聚焦配置
WO2019231850A1 (en) 2018-05-31 2019-12-05 Magic Leap, Inc. Radar head pose localization
US10825424B2 (en) 2018-06-05 2020-11-03 Magic Leap, Inc. Homography transformation matrices based temperature calibration of a viewing system
US11092812B2 (en) 2018-06-08 2021-08-17 Magic Leap, Inc. Augmented reality viewer with automated surface selection placement and content orientation placement
US10955899B2 (en) 2018-06-20 2021-03-23 Intel Corporation System, apparatus and method for responsive autonomous hardware performance state control of a processor
US11579441B2 (en) 2018-07-02 2023-02-14 Magic Leap, Inc. Pixel intensity modulation using modifying gain values
US11856479B2 (en) 2018-07-03 2023-12-26 Magic Leap, Inc. Systems and methods for virtual and augmented reality along a route with markers
WO2020010226A1 (en) 2018-07-03 2020-01-09 Magic Leap, Inc. Systems and methods for virtual and augmented reality
WO2020023545A1 (en) 2018-07-24 2020-01-30 Magic Leap, Inc. Temperature dependent calibration of movement detection devices
WO2020023543A1 (en) 2018-07-24 2020-01-30 Magic Leap, Inc. Viewing device with dust seal integration
WO2020028834A1 (en) 2018-08-02 2020-02-06 Magic Leap, Inc. A viewing system with interpupillary distance compensation based on head motion
CN112789544B (zh) 2018-08-03 2023-06-30 奇跃公司 图腾在用户交互系统中的融合姿势的基于未融合姿势的漂移校正
US10976801B2 (en) 2018-09-20 2021-04-13 Intel Corporation System, apparatus and method for power budget distribution for a plurality of virtual machines to execute on a processor
US10860083B2 (en) 2018-09-26 2020-12-08 Intel Corporation System, apparatus and method for collective power control of multiple intellectual property agents and a shared power rail
CN117111304A (zh) 2018-11-16 2023-11-24 奇跃公司 用于保持图像清晰度的图像尺寸触发的澄清
US11656676B2 (en) 2018-12-12 2023-05-23 Intel Corporation System, apparatus and method for dynamic thermal distribution of a system on chip
JP2022519292A (ja) * 2019-02-06 2022-03-22 マジック リープ, インコーポレイテッド 複数のプロセッサによって発生される総熱を限定するための標的意図ベースのクロック速度の決定および調節
JP2022523852A (ja) 2019-03-12 2022-04-26 マジック リープ, インコーポレイテッド 第1および第2の拡張現実ビューア間でのローカルコンテンツの位置合わせ
US11256657B2 (en) 2019-03-26 2022-02-22 Intel Corporation System, apparatus and method for adaptive interconnect routing
US11445232B2 (en) 2019-05-01 2022-09-13 Magic Leap, Inc. Content provisioning system and method
US11442529B2 (en) 2019-05-15 2022-09-13 Intel Corporation System, apparatus and method for dynamically controlling current consumption of processing circuits of a processor
WO2021021670A1 (en) 2019-07-26 2021-02-04 Magic Leap, Inc. Systems and methods for augmented reality
US11698812B2 (en) 2019-08-29 2023-07-11 Intel Corporation System, apparatus and method for providing hardware state feedback to an operating system in a heterogeneous processor
WO2021097323A1 (en) 2019-11-15 2021-05-20 Magic Leap, Inc. A viewing system for use in a surgical environment
US11366506B2 (en) 2019-11-22 2022-06-21 Intel Corporation System, apparatus and method for globally aware reactive local power control in a processor
US11132201B2 (en) 2019-12-23 2021-09-28 Intel Corporation System, apparatus and method for dynamic pipeline stage control of data path dominant circuitry of an integrated circuit
US11422173B2 (en) * 2020-05-09 2022-08-23 Intel Corporation Method and apparatus for accurate measurement of platform power
US11921564B2 (en) 2022-02-28 2024-03-05 Intel Corporation Saving and restoring configuration and status information with reduced latency

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000039937A (ja) * 1998-07-22 2000-02-08 Toshiba Corp コンピュータシステムおよびそのパワーセーブ制御方法
JP2005352672A (ja) * 2004-06-09 2005-12-22 Kyocera Mita Corp 電気機器

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6792392B1 (en) * 2000-06-30 2004-09-14 Intel Corporation Method and apparatus for configuring and collecting performance counter data
US7903116B1 (en) 2003-10-27 2011-03-08 Nvidia Corporation Method, apparatus, and system for adaptive performance level management of a graphics system
US7543161B2 (en) 2004-09-30 2009-06-02 International Business Machines Corporation Method and apparatus for tracking variable speed microprocessor performance caused by power management in a logically partitioned data processing system
US7502948B2 (en) 2004-12-30 2009-03-10 Intel Corporation Method, system, and apparatus for selecting a maximum operation point based on number of active cores and performance level of each of the active cores
US7490254B2 (en) 2005-08-02 2009-02-10 Advanced Micro Devices, Inc. Increasing workload performance of one or more cores on multiple core processors
US8301868B2 (en) 2005-09-23 2012-10-30 Intel Corporation System to profile and optimize user software in a managed run-time environment
US20070079294A1 (en) * 2005-09-30 2007-04-05 Robert Knight Profiling using a user-level control mechanism
US7689838B2 (en) 2005-12-22 2010-03-30 Intel Corporation Method and apparatus for providing for detecting processor state transitions
US20070198864A1 (en) 2006-02-21 2007-08-23 Toshiba America Electronic Components Systems and methods for determining and using power profiles for software programs executing on data processors
US7644293B2 (en) 2006-06-29 2010-01-05 Intel Corporation Method and apparatus for dynamically controlling power management in a distributed system
US7949887B2 (en) 2006-11-01 2011-05-24 Intel Corporation Independent power control of processing cores
US8117478B2 (en) 2006-12-29 2012-02-14 Intel Corporation Optimizing power usage by processor cores based on architectural events
US20090007108A1 (en) 2007-06-29 2009-01-01 Hanebutte Ulf R Arrangements for hardware and software resource monitoring
US8024590B2 (en) 2007-12-10 2011-09-20 Intel Corporation Predicting future power level states for processor cores
US8127153B2 (en) * 2008-07-29 2012-02-28 Oracle America, Inc. Memory power profiling
US8135970B2 (en) * 2009-03-06 2012-03-13 Via Technologies, Inc. Microprocessor that performs adaptive power throttling
US20110106282A1 (en) 2009-07-23 2011-05-05 Corevalus Systems, Llc Audio Processing Utilizing a Dedicated CPU Core and a Real Time OS
US8321705B2 (en) 2009-10-13 2012-11-27 Advanced Micro Devices, Inc. Dynamic table look-up based voltage regulator control

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000039937A (ja) * 1998-07-22 2000-02-08 Toshiba Corp コンピュータシステムおよびそのパワーセーブ制御方法
JP2005352672A (ja) * 2004-06-09 2005-12-22 Kyocera Mita Corp 電気機器

Also Published As

Publication number Publication date
WO2012128817A3 (en) 2013-01-31
JP5615990B2 (ja) 2014-10-29
KR101496077B1 (ko) 2015-02-25
KR20130126717A (ko) 2013-11-20
WO2012128817A2 (en) 2012-09-27
US20120246506A1 (en) 2012-09-27
EP2689316A4 (en) 2014-12-03
EP2689316A2 (en) 2014-01-29
CN103443737A (zh) 2013-12-11
TWI550507B (zh) 2016-09-21
TW201239753A (en) 2012-10-01
CN103443737B (zh) 2017-03-22
US8949637B2 (en) 2015-02-03

Similar Documents

Publication Publication Date Title
JP5615990B2 (ja) オーバーヘッドを抑えた電力プロフィール情報の取得
Bailey et al. Adaptive configuration selection for power-constrained heterogeneous systems
Eyerman et al. A counter architecture for online DVFS profitability estimation
US7426731B2 (en) Determining processor usage by a thread
US8291249B2 (en) Method and apparatus for transitioning devices between power states based on activity request frequency
US8302098B2 (en) Hardware utilization-aware thread management in multithreaded computer systems
US8402463B2 (en) Hardware threads processor core utilization
US8219995B2 (en) Capturing hardware statistics for partitions to enable dispatching and scheduling efficiency
EP2513752B1 (en) A counter architecture for online dvfs profitability estimation
US20140143781A1 (en) Methods and systems to identify and migrate threads among system nodes based on system performance metrics
US6711526B2 (en) Operating system-independent method and system of determining CPU utilization
EP1934749A2 (en) Profiling using a user-level control mechanism
CN103842933B (zh) 多核平台中的受约束引导技术
US7665000B2 (en) Meeting point thread characterization
CN111052094B (zh) 使用c状态和睿频加速提高用户空间的自旋锁效率
Yu et al. Collaborative heterogeneity-aware os scheduler for asymmetric multicore processors
Nakajima et al. Enhancements for {Hyper-Threading} Technology in the Operating System: Seeking the Optimal Scheduling
US9323640B2 (en) Method and system for measuring the performance of a computer system on a per logical partition basis
Singleton et al. Monitoring of cache miss rates for accurate dynamic voltage and frequency scaling
US7603673B2 (en) Method and system for reducing context switch times
Markovic Hardware thread scheduling algorithms for single-ISA asymmetric CMPs
US20040199801A1 (en) Automatic read of current time when exiting low-power state utility
Jia et al. DTS: using dynamic time-slice scaling to address the os problem incurred by DVFS
US20230122295A1 (en) Dynamic adaptive threading using idle time analysis
US7707556B1 (en) Method and system to measure system performance

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130920

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140709

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140715

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140813

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140818

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140910

R150 Certificate of patent or registration of utility model

Ref document number: 5615990

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250