JP5175335B2 - 電力/パフォーマンスのサービス品質のための優先度に基づくスロットリング - Google Patents

電力/パフォーマンスのサービス品質のための優先度に基づくスロットリング Download PDF

Info

Publication number
JP5175335B2
JP5175335B2 JP2010502273A JP2010502273A JP5175335B2 JP 5175335 B2 JP5175335 B2 JP 5175335B2 JP 2010502273 A JP2010502273 A JP 2010502273A JP 2010502273 A JP2010502273 A JP 2010502273A JP 5175335 B2 JP5175335 B2 JP 5175335B2
Authority
JP
Japan
Prior art keywords
processing element
priority
operating point
level
logic
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.)
Expired - Fee Related
Application number
JP2010502273A
Other languages
English (en)
Other versions
JP2010524087A (ja
Inventor
クマール イリッカール,ラメシュ
アイヤール,ラヴィシャンカール
モーゼズ,ジャイディープ
ニューウェル,ドン
フォッサム,トリグヴ
Original Assignee
インテル コーポレイション
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 インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2010524087A publication Critical patent/JP2010524087A/ja
Application granted granted Critical
Publication of JP5175335B2 publication Critical patent/JP5175335B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/504Resource capping
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、プロセッサの分野に、より詳細にはコンピュータ・システムにおいてサービス品質(QoS: Quality of Service)を提供することに関する。
半導体処理および論理設計における進歩は、集積回路デバイス上に存在しうる論理の量の増大を許容してきた。結果として、コンピュータ・システム構成は、システム中の単一または複数の集積回路から、個々の集積回路上に存在する複数コアおよび複数論理プロセッサへと進化してきた。プロセッサまたは集積回路は典型的には単一のプロセッサ・ダイからなる。ここで、プロセッサ・ダイは、コア、スレッドおよび/または論理プロセッサといった処理資源をいくつ含んでいてもよい。
複数スレッドをもつプロセッサでは、一つのスレッドの振る舞いが同じプロセッサ・コア上の他のスレッドの振る舞いに影響する可能性がある。これはキャッシュ、メモリおよび電力といった資源の共有のためである。しばしば、一つのスレッドの振る舞いが、共有される資源およびパイプラインの使用における不公正さを生じる。実際、一つのスレッドのパフォーマンスが同じコア上の他のスレッドに対して著しく変化するとき、しばしば共有される資源の不釣り合いな使用からの、パフォーマンスにおける大きな予測できない変動性が生じる。
結果として、低優先度のアプリケーションを実行している一つのスレッドまたはコアが潜在的に、より高い優先度のアプリケーションを実行しているコアまたはスレッドのパフォーマンスに悪影響を及ぼす。たとえば、ウイルス・スキャンのようなバックグラウンド・アプリケーションは、フォアグラウンド・アプリケーションを実行している第二のコアのパフォーマンスに悪影響を及ぼすのに十分な共有資源を利用して第一のコア上で実行されることがありうる。以前には、電圧および周波数のスロットリング(throttling)は電力節約のために利用されてきた。しかしながら、これらの努力は典型的には、現在のアプリケーション、仮想マシンまたはオペレーティング・システムのタスクの優先度を顧慮することなくスレッドやコアをスロットリングすることに関わる。これに対し、いくつかの努力は、すべてのアプリケーションにサービス品質を提供するための資源の分配に焦点を当ててきた。しかしながら、優先度や電力消費を顧慮しない分配は、潜在的には悪いパフォーマンスおよび電力使用を引き起こす。
従来技術の課題は請求項記載の手段により解決される。
本発明を例として図示するが、付属の図面の図によって限定されることは意図されていない。
関連付けられたアプリケーション優先度に基づいて処理要素の動作点を設定する優先度マネージャを含むマルチ処理要素のある実施形態を示す図である。 処理要素のレートおよび共有される資源の割り当てを修正することのできる電力/パフォーマンス論理のある実施形態を示す図である。 処理要素のレートおよびキャッシュ・メモリの割り当てを修正することのできる電力/パフォーマンス論理のある実施形態を示す図である。 処理要素のレートおよび割り当てメモリ・バンド幅を修正することのできる電力/パフォーマンス論理のある実施形態を示す図である。
以下の記述では、本発明の十全な理解を与えるために、個別的な資源、資源の利用を追跡するための個別的な論理、アプリケーション優先度の個別的な通信などの例といった数多くの個別的な詳細が述べられる。しかしながら、当業者には、これらの個別的な詳細が本発明において実際に用いられる必要はないことは明白であろう。その一方で、マイクロプロセッサ・アーキテクチャ、仮想マシン・モニタ/マシン、電力/クロック・ゲーティング/変調および既知の論理の個別的な動作上の詳細といったよく知られたコンポーネントや方法は、本発明を無用に埋没させるのを避けるために詳細に述べてはいない。
本稿で記載される方法および装置は、処理要素に関連付けられたソフトウェア・エンティティの優先度に基づいて処理要素の電力および/またはパフォーマンスを絞るためのものである。具体的には、優先度(priority)に基づくスロットリング(throttling)は、主として、仮想化環境における複数コアを参照して論じられる。しかしながら、優先度に基づくスロットリングのための方法および装置はそれに限定されるものではなく、携帯電話、携帯情報端末(personal digital assistant)、組み込みコントローラ(embedded controller)、モバイル・プラットフォーム、デスクトップ・プラットフォームおよびサーバー・プラットフォームのようないかなる集積回路デバイスまたはシステム上で、またいかなる集積回路デバイスまたはシステムとの関連で実装されてもよいし、コア、ハードウェア・スレッド、ソフトウェア・スレッドもしくは論理プロセッサまたは他の処理資源といったいかなる型の処理要素と連携して実装されてもよい。さらに、優先度に基づくスロットリングは、ハードウェア上で実行される伝統的なオペレーティング・システムまたはハイパーバイザといったいかなるハードウェア/ソフトウェア環境において生起してもよい。
図1を参照すると、処理要素に関連付けられたソフトウェア・エンティティの優先度に基づいて処理要素をスロットリングする機能のあるプロセッサの実施形態が示されている。ハードウェア120はプロセッサ125、ハブ150およびメモリ160を含む。ハブ125は、メモリ・コントローラ・ハブまたはチップセットのような、プロセッサ121とメモリ130との間の通信のためのいかなるデバイスをも含む。ハブ125はプロセッサ121またはメモリ130内に統合されていてもよいことを注意しておく。メモリ160はプロセッサ125に専用に供されてもよいし、あるいはシステム中の他のデバイスと共有されてもよい。メモリ160の例は動的ランダム・アクセス・メモリ(DRAM)、静的RAM(SRAM)、不揮発性メモリ(NVメモリ)および長期記憶装置を含む。
典型的には、プロセッサ125は、相互接続上のバス信号を送信および受信するための入出力(I/O)バッファを含む。相互接続(interconnect)の例は、ガニング・トランシーバー論理(GTL: Gunning Transceiver Logic)バス、GTL+バス、倍速データレート(DDR: double data rate)バス、ポンプ・バス(pumped bus)、差動バス(differential bus)、キャッシュ・コヒーレント・バス(cache coherent bus)、ポイントツーポイント・バス(point-to-point bus)、マルチドロップ・バス(multi-drop bus)または任意の既知のバス・プロトコルを実装する他の既知の相互接続を含む。
プロセッサ125は、処理要素130〜133のような複数の処理要素を含む。処理要素(processing element)とは、スレッド、プロセス、コンテキスト、論理プロセッサ、ハードウェア・スレッド、コアおよび/または、予約ユニット、実行ユニットおよびより高レベルのキャッシュ/メモリなどといったプロセッサの他の共有される資源を共有する任意の処理する要素をいう。処理要素はスレッド・ユニットと称されてもよい。すなわち、ソフトウェア・スレッドによる実行のために独立してスケジューリングされる命令を有することのできる要素である。物理的プロセッサとは、典型的には集積回路のことをいい、これは潜在的にはコアまたはハードウェア・スレッドのような他の処理要素をいくつでも含みうる。
コア(core)はしばしば、独立したアーキテクチャ状態を維持することのできる集積回路上に位置する論理であって、独立して維持される各アーキテクチャ状態が少なくともいくつかの専用実行資源に関連付けられるものをいう。コアとは対照的に、ハードウェア・スレッド(hardware thread)は典型的には、独立したアーキテクチャ状態を維持することのできる集積回路上に位置する任意の論理であって、独立して維持されるアーキテクチャ状態が実行資源へのアクセスを共有するものをいう
見て取れるように、ある種の処理資源は共有され、他の処理資源はあるアーキテクチャ状態の専用に供される。ハードウェア・スレッドとコアの命名法の間の境界線には重なりがある。しかしながら、しばしば、コアおよびハードウェア・スレッドはオペレーティング・システムおよび管理ソフトウェアによって個々の論理プロセッサと見なされ、該ソフトウェアはそれぞれの論理プロセッサ上での動作を個々にスケジューリングできる。換言すれば、ソフトウェアは物理プロセッサ上の二つのコアまたはスレッドを二つの独立したプロセッサと見なす。さらに、各コアは潜在的には、複数のソフトウェア・スレッドを実行するための複数のハードウェア・スレッドを含む。したがって、処理要素は、コア、スレッド、ハードウェア・スレッドまたは他の要素のような、コンテキストを維持することのできる前述の資源の任意のものを含む。
ハイパーバイザ110は、仮想マシン(VM)105〜107とハードウェア120のようなハードウェアとの間のインターフェースを提供するものである。しばしば、ハイパーバイザは、ハードウェア120を抽象化して、ハードウェア120上で複数の仮想マシンおよび/またはゲスト・アプリケーションが独立して走ることを許容する。仮想マシン105〜107はオペレーティング・システム、アプリケーション、ゲスト・ソフトウェアまたはハードウェア120上で実行される他のソフトウェアでありうる。仮想化環境が例示されているが、ハードウェア120は、ハードウェア120上で実行される伝統的なオペレーティング・システムのような他のファームウェアおよびソフトウェア環境において存在していてもよい。結果として、任意のタスク、ソフトウェア・プログラム、アプリケーション、ユーザー・レベル・アプリケーション、ゲスト・ソフトウェア、オペレーティング・システム、仮想マシン、仮想マシン・モニタまたは優先度が割り当てられることのできる他の実行可能コードがソフトウェア・エンティティ(software entity)と称される。
ある実施形態では、処理要素(PE)130〜133はソフトウェア・エンティティに関連付けられる。第一の例として、ハイパーバイザ110および仮想マシン105〜108のようなソフトウェア・エンティティは、PE 130〜133に直接割り当てられる、あるいは、PE 130〜133はハイパーバイザ110および仮想マシン105〜108を実行することに専用に供される。もう一つの例としては、ソフトウェア・エンティティは単にPE 130〜133による該ソフトウェア・エンティティのためのコード/タスクの実行を通じて、PE 130〜133に関連付けられる。上記のように、処理要素125の例は、コア、スレッド、コンテキスト、論理プロセッサおよびそれらの組み合わせを含む。
ある実施形態では、処理要素130のような処理要素の動作点が、処理要素130に関連付けられたソフトウェア・エンティティの優先度レベルに基づいて設定される。処理要素の動作点(operating point)とは、その処理要素のレート/電力レベル、その処理要素に利用可能にされた資源の割り当て/パフォーマンス・レベルまたはそれらの組み合わせをいう。一例として、処理要素の動作点は、クロック、周波数、電圧または電力といった資源を修正して処理要素のレートを変更することによって変えられる。これらの異なる電力および周波数状態は、しばしばP状態またはT状態と称され、動作点を例解する例である。さらに、命令発行(instruction issue)およびメモリ・アクセス発行(memory access issue)のレートのような他の機構も異なる動作点について変更されうる。
追加的な例として、処理要素の動作点は、メモリ、メモリ・バンド幅、キャッシュ、フェッチ・ハードウェア、デコード・ハードウェア、順序外(out-of-order)ハードウェア、予約ハードウェアおよび処理要素によって利用される他の任意の論理/ハードウェアといった共有される資源の割り当てを修正することによって修正される。したがって、処理要素の動作点は、その処理要素のレートおよびその処理要素に利用可能にされる共有資源の割り当ての任意の組み合わせを含む。換言すれば、動作点は、処理要素の、キャッシュのような共有資源ならびに電圧および周波数のようなレート・レベルの割り当て/パフォーマンスを含みうる。
例解すると、処理要素130の第一の動作点が完全な電力/電圧、完全なクロック/周波数、共有キャッシュのすべての路(ウェイ[way])へのアクセスおよびメモリへのアクセスのための禁止されないトークン/クレジットを含み、一方、処理要素130の第二の動作点が低下した電圧/電力、低下したクロック周波数、共有キャッシュの一部のみへのアクセスおよびメモリへのアクセスのための禁止されたトークン/クレジットを含むとする。この例は純粋に例示的であるが、動作点が特定のレベルでの資源の任意の組み合わせを含みうることを例証する。
優先度を考慮するマネージャ(priority aware manager)140は、処理要素130に関連付けられたソフトウェア・エンティティの優先度レベルを受け取り、その優先度レベルに基づいて処理要素130の動作点を修正する。ある実施形態では、優先度を考慮するマネージャ140は、優先度レベルに基づいて処理要素130についての動作点を決定する。たとえば、仮想マシン(VM)105が、低い優先度を割り当てられるバックグラウンドで走らされるべきウイルス・スキャン・ソフトウェアであり、VM 105がPE 130を利用して実行されるべきであるとする。ここで、VM 105の優先度は、VM 105の優先度レベルを示すために記憶要素135に記憶される。あるいはまた、VM 105を実行するタスクを与えられる際に、PE 130の優先度レベルは優先度要素135内に保持されうる。PE 130に関連付けられているVM 105の低い優先度に基づいて、マネージャ140はPE 130の動作点を低い動作点に修正する。上記のように、より低い動作点は、PE 130の、より低い電圧、より低い周波数またはより低い電力のようなより低いレートならびに低下した数のキャッシュ路へのアクセスのような共有資源への低下したアクセスの組み合わせを含みうる。
前記の例をさらに進めて、ハイパーバイザ110がPE 133上での実行のためにスケジューリングされる高優先度アプリケーションであるとする。マネージャ140は、ハイパーバイザ110およびPE 133について優先度要素135に保持されている高い優先度に基づいて、PE 133の動作点を、PE 130の動作点に比べ、より高い電圧、より高い周波数および/または共有資源への増加したアクセスのようなより高い動作点に設定する。キャッシュおよびメモリ・バンド幅レベルの割り当てのような動作点の他の例は図2および図3を参照してのちに論じる。動作点は、資源を変更するまたは共有資源へのアクセスを修正するためのいかなる既知の方法を通じて設定または修正されてもよい。たとえば、電圧は、回路またはゲーティングを通じて低下されてもよく、一方、クロックは変調され、増倍され、分割され、ゲーティングされ、あるいは抑制されてもよい。
上記では高い優先度および低い優先度といった言い方がされていることを注意されたい。しかしながら、優先度のいかなるレベル、あるいはいかなる数のレベルが使用されてもよい。たとえば、たった二つの優先度レベルがあるのでもよいし、あるいはソフトウェア・エンティティと同じ数の優先度レベルがあってもよい。例解する例として、図1について4つの優先度レベルがあり、ハイパーバイザ110は優先度レベル1、すなわち最高の優先度レベルにあり、VM 105は最低4の優先度にあり、VM 106は優先度レベル2にあり、VM 107は優先度レベル3にある。ソフトウェア優先度のハードウェアへの通信は、シリアル番号11/527,222および代理人整理番号42.P24869をもつ同時係属中の出願においてより詳細に議論されている。
もう一つの実施形態では、ソフトウェア・エンティティが、他のソフトウェア・エンティティの優先度レベルを両方とも決定し、他のソフトウェア・エンティティに関連付けられている処理要素に動作点を割り当てる。たとえば、仮想マシン・モニタ(VMM)であってもよいハイパーバイザ110は、処理要素130上で低優先度VM 105のための命令をスケジューリングするとともに、処理要素130が低動作点に修正/設定されるべきことを決定する。ここで、処理要素130のための選択された動作点がVMM 110によって優先度要素135に書き込まれ、それはPE 130のアーキテクチャ状態レジスタ内にも位置されてもよい。マネージャ140は次いで、適切な電力レベル、周波数レベルまたは資源割り当てレベルを修正することによってその動作点を実施する。この例では優先度および動作点を決めるソフトウェア・エンティティとしてVMMが論じられているが、オペレーティング・システムまたは特化したコードのようないかなるソフトウェア・エンティティが優先度レベルおよび/または動作点を決定してもよい。
優先度レベルに基づいて動作点を決定するのに加えて、マネージャ140は、潜在的には、資源利用に基づいても動作点を決定する。上記のように、マネージャ140はある実施形態では、処理要素のレートおよび処理要素へのハードウェア資源の割り当てを制御する機能をもつ。したがって、マネージャ140のポリシーは、ソフトウェア・エンティティ優先度レベルを考慮に入れるのみならず、ソフトウェア・エンティティの他の優先度ソフトウェア・エンティティへの影響をも考慮に入れうる。一例として、VM 105、すなわちウイルス・スキャン・ソフトウェアがハイパーバイザ110または他の高優先度アプリケーションに影響していない、すなわち電力、周波数、キャッシュ、メモリまたは他の資源といった資源145のあまりに多くを利用しているのでない場合、電力マネージャ140は、PE 130の動作点を低下させないことを決定してもよい。これに対し、VM 105を含む優先度レベルが資源145のあまりに多くを利用している場合には、電力マネージャ140は、VM 105の優先度レベルおよび資源145の利用度に基づいて、PE 130の動作点を低下させてもよい。
したがって、電力/パフォーマンス・マネージャ140は、ソフトウェア・エンティティ/処理要素の優先度を決定する、処理要素のレートを決定する、資源のパフォーマンスを決定する、処理要素のレートを設定する、資源のパフォーマンス割り当てを設定する、電力/パフォーマンス管理ポリシーを実装する、あるいはそれらの組み合わせを行うための、中央集中のまたは分散型のいかなる量の論理を含んでいてもよい。
ある実施形態では、資源145は、優先度レベルに関連付けられた資源145の利用度を示す優先度使用論理(priority usage logic)を含む。したがって、より低い優先度レベルが資源145のあまりに多く、すなわち資源145のある所定量より多くを利用している場合、利用論理は、その過剰利用をマネージャ140に対して示す。第一の例として、利用論理は、マネージャ140に対して、プロセッサ125についての電力予算のどれだけをそのPE 130が利用しているかを示す。その電力の量が20%などある閾値を超えていれば、電力マネージャ論理140は、PE 130の動作点が修正されるべきかどうかを決定する。VM 105は低優先度アプリケーションなので、マネージャ140は、PE 130の電力消費が他のより高い優先度のソフトウェア・エンティティに影響していると判定されるなら、前述したレート制御またはパフォーマンス制御機構をいくつでも使って、PE 130の動作点を低下させうる。レート制御機構の追加的な例は、周波数スケーリング、クロック変調、クロック抑制、命令発行スロットリング(instruction issuance throttling)、メモリ発行スロットリング(memory issue throttling)または他の資源ベースのレート変調技法を含む。
利用論理のもう一つの例は、メモリ・バンド幅論理151を含む。図示したように、論理151は、優先度レベルに関連付けられたメモリ相互接続上のトラフィックを追跡するために、ハブ150内に位置される。ここで、あまりに多くのメモリ・バンド幅が低優先度レベルによって利用されている場合、マネージャ140は、その、より低い優先度レベルに関連付けられている、処理要素130のような処理要素へのバンド幅割り当てを低下させてもよい。ハブ150内に描かれているが、論理151はハードウェア120内のどこにあってもよい。
図2aに目を転じると、処理要素レートおよび共有資源割り当てを制御する機能をもつ電力/パフォーマンス論理のある実施形態が示されている。ここで、レート制御モジュール255は、処理要素(PE)251〜254のレートを修正するものである。たとえば、最高動作点において、PE 251は最高の電圧、電力、周波数、クロッキング、命令発行容量およびメモリ・アクセス容量に設定される。しかしながら、動作点がより低い動作点に修正されるとき、前述のレート・ベースの機構の一つまたは複数が低下されうる。たとえば、PE 251のためのクロックのサイクルが抑制されてもよい。PE 251〜254のうち一つのPEについての資源の変更は、他のPEに影響しうることを注意しておく。伝統的には、PE 251〜254について共通の電圧レールが利用されるが、他のPEに影響することなく単一のPEのレートを制御するよう電圧の独立した変調を許容するため、個々の電力レールが供給されてもよい。
レート・ベースの機構に加えて、電力/パフォーマンス・マネージャ275は、より高い優先度のソフトウェア・エンティティのための十分な資源容量を保証するために、共有資源260の割り当てを修正してもよい。ここで、モニタ265は、共有資源260の種々の優先度レベルによる使用を追跡するものである。低い優先度が共有資源260のあまりに多くを利用している、すなわち他のより高い優先度レベルに影響している場合、マネージャ275は、レート制御255を利用して、ソースからの、すなわちその低優先度レベルに関連付けられたPEからの共有資源260の利用を低下させうる。対照的に、マネージャ275は、割り当て論理270を利用して、共有資源260の割り当てを低優先度に修正してもよい。
例解すると、PE 251が低優先度のソフトウェア・エンティティに関連付けられており、PE 252がより高い優先度のソフトウェア・エンティティに関連付けられているとする。ある実施形態では、PE 251はデフォルトにより、電力節約のため、より低い動作点に設定される。たとえば、マネージャ275は、レート制御255を利用して、電力節約のためにPE 251への電圧および周波数を低下させる。もう一つの実施形態では、PE 251は、モニタ265によって前記より低い優先度レベルがより高い優先度レベルのパフォーマンスに影響していることが検出されるまでは、通常に動作することを許容される。ここで、モニタ265は、前記より低い優先度レベルが共有資源260のあまりに多くを利用していることを判別する。結果として、マネージャ275は、前記より低い優先度のソフトウェアに関連付けられているPE 251を、より低い動作点に設定する。
上記から、マネージャ275は、動作点を低下させるためにいかなるポリシーを実装してもよいことを注意しておく。たとえば、マネージャ275は、PE 251が共有資源260の一部しか利用できないことを保証するために、電圧および周波数のようなレート制御機構ならびに割り当て論理270のような割り当て機構を利用してもよい。換言すれば、前記より高い優先度レベルが、共有資源260の少なくとも一部分の利用を保証される。共有資源260は、キャッシュ、メモリ、メモリ・アクセス機構または他の既知の共有ハードウェア、ファームウェアもしくはソフトウェアといった、二つ以上の処理要素によって共有される任意の資源を含む。
図2bに目を向けると、処理要素のレートおよびキャッシュ・メモリの割り当てを修正する機能をもつ電力/パフォーマンス論理のある実施形態が示されている。キャッシュ200は、ダイレクト・マッピング・キャッシュ、フル・アソシアティブ・キャッシュまたはセット・アソシアティブ・キャッシュのようないかなる仕方で編成されていてもよい。図示したところでは、キャッシュ200はK個の路(way)、すなわち4つの路205〜208をもつセット・アソシアティブ・キャッシュである。諸セット201は、それぞれの路内においては同じオフセット位置を含む。ここで、追加的なフィールド210〜216がキャッシュ200の各セットに関連付けられ、対応するセット内での位置に関連付けられた優先度レベルを示す。追加的フィールドは、位置、路、セットまたは他の構成といったいかなるエントリーにおける優先度レベルを追跡するために利用されてもよいことを注意しておく。
ある実施形態では、第一の優先度レベルに関連付けられたキャッシュ・ラインがキャッシュ200にもたらされるとき、カウンタ220は第一の優先度レベルについてのカウント値をインクリメントし、第一の優先度レベルに関連付けられたキャッシュ・ラインが追い出されるとき、前記カウント値はデクリメントされる。したがって、第一の優先度レベルに関連付けられたエントリーの第一の数が追跡される。同様にして、キャッシュ200の利用が、複数の優先度レベルについて追跡されうる。カウンタ220によって追跡される種々の優先度の利用レベルに基づいて、マネージャ230は優先度レベルについての、すなわちその優先度レベルであるソフトウェア・エンティティに関連付けられている処理要素についての動作点を決定する。
前述したように、前記より低い優先度の諸キャッシュ・ラインに関連付けられた処理要素のようなソース要素のレートが低下させられ、それによりソース要素がキャッシュ200を利用するレートが減少する。別個に、あるいはレート制御に加えて、マネージャ230は、キャッシュ200の割り当てポリシーを修正してもよい。ここで、マスク240に関連付けられたある優先度レベルは、マスク240によって示されるキャッシュ200の諸部分、すなわちいくつかの路へのアクセスを許容される。たとえば、ある低優先度レベルがキャッシュ200の75%を利用しており、これがキャッシュの25%を利用する高優先度レベルのソフトウェア・エンティティに悪影響を与えているとする。
マネージャ230は、マスク240を二進値1000に設定する。この二進値1000は前記より低い優先度レベルに関連付けられた処理要素が、キャッシュ200の路205にしかアクセスしえないことを表している。あるいはまた、前記より高い優先度レベルについての動作点は維持され、あるいは向上されてもよい。一例として、マスク240は1111に設定されてもよい。この1111はより高い優先度のソフトウェア・エンティティに関連付けられた処理要素がキャッシュ200のすべての路にアクセスしうることを表している。結果として、より低い優先度レベルはキャッシュ200の一つの路にのみアクセスが許され、影響される優先度レベルは、干渉なしにアクセスするためのキャッシュ200の少なくとも3つの路をもつことが保証される。この例では、各優先度レベルについてのマスクの使用を通じて割り当てが実行される。しかしながら、優先度に基づいてキャッシュの一部分を専用に供する、制限するまたは制約するために、いかなる割り当てポリシーおよび論理が利用されてもよい。キャッシュの優先度利用を追跡することは、シリアル番号11/503,633および代理人整理番号42.P24235をもつ同時係属中の出願においてもより詳細に論じられている。
次に図3を参照すると、処理要素のレートおよびメモリのようなデバイスへの割り当てアクセスを修正する機能をもつ電力/パフォーマンス論理のある実施形態が示されている。キャッシュ・メモリと同様に、別個にあるいはレート制御に加えて、マネージャ330は、種々の動作点内における共有デバイスへのアクセス・ポリシーをも修正してもよい。ここで、処理要素306〜309は、メモリ340にアクセスするためのリング優先度を利用し、割り当て論理315は、種々の優先度レベルに関連付けられたメモリ・アクセスのためのバンド幅の種々の量を割り当てる機能をもつ。リング・アクセス・フォーマットが例示されているが、アクセスの追跡および割り当ては、シリアル相互接続その他について同様の仕方でなされてもよい。
ある実施形態では、クレジットまたは制御優先度待ち行列が、メモリ340へのアクセスのために利用される。要素306のような処理要素がメモリへのアクセスを要求する。アクセス要求は待ち行列に入れられ、それにより、メモリへのアクセスのため、クレジット/トークンが処理要素306に対して発行される。一例として、バンド幅モニタ325が、クレジット待ち行列に関連付けられたフィールドを含み、これが、メモリ・アクセス要求に関連付けられる優先度レベルおよび/または処理要素を追跡するために使用されうる。したがって、先に図2に示したように、より高いレベルのキャッシュへのミスおよび/またはメモリへのアクセスの数が、優先度レベルに関連付けられた要求されたクレジットの数によって追跡されうる。
もう一つの例として、バンド幅モニタ325は、各優先度レベルに関連付けられるカウンタを含む。特定の優先度レベルからの各アクセスについて、関連付けられたカウンタがインクリメントされる。所定の時間がたって、カウンタがその関連付けられた優先度レベルについての閾値に達していれば、マネージャ330に通知される。バンド幅モニタ325においては、メモリ・バンド幅、使用またはアクセスを追跡するための他のいかなる既知の論理が利用されてもよい。
マネージャ330が、より低い優先度レベルがあまりに多くのメモリ・バンド幅を利用していると通知されるとき、マネージャ330はしかるべくPE 306〜309のレートを修正し、および/またはPE 306〜309へのバンド幅の割り当てを修正しうる。たとえば、パフォーマンス・マネージャ330および割り当て論理315は、前記より低い優先度レベルに関連付けられた処理要素306のような処理要素に対してより少数のクレジット/トークンを許容するよう、クレジットまたは制御優先度待ち行列にバイアスをかける。さらに、サイクル当たりに発行される命令の数を低下させるまたはPE 306の周波数を低下させることによって、ソースにおいて要求されたメモリ・アクセスの量を減少させるなどするよう、PE 306のレートも変更されてもよい。
上記した諸方法、ソフトウェア、ファームウェアまたはコードの諸実施形態は、機械アクセス可能または機械読み取り可能媒体上に記憶された、処理要素によって実行可能な命令またはコードを介して実装されてもよい。機械アクセス可能/読み取り可能媒体は、コンピュータまたは電子システムのような機械によって読むことができる形で情報を提供する(すなわち記憶するおよび/または伝送する)任意の機構を含む。たとえば、機械アクセス可能媒体は、静的RAM(SRAM)または動的RAM(DRAM)といったランダム・アクセス・メモリ(RAM);ROM;磁気または光学式記憶媒体;フラッシュメモリ・デバイス;電気的、光学的、音響的またはその他の形の伝搬信号(たとえば搬送波、赤外線信号、デジタル信号)等を含む。
本明細書を通じて「一つの実施形態」または「ある実施形態」という言い方は、その実施形態との関連で記述された特定の特徴、構造または特性が本発明の少なくとも一つの実施形態に含まれることを意味する。よって、「一つの実施形態では」あるいは「ある実施形態では」という句が本明細書を通じて随所に現れることは、必ずしもすべてが同じ実施形態を指すものではない。さらに、個別的な特徴、構造または特性は、一つまたは複数の実施形態において、いかなる好適な仕方で組み合わされてもよい。
上記の明細において、個別的な例示的な実施形態を参照して詳細な記述が与えられてきたが、付属の請求項に述べられる本発明の広義の精神および範囲から外れることなく、さまざまな修正及び変更がそれに対してなされうることは明白であろう。したがって、本明細書および図面は、制約するものというよりは例示的な意味に解されるべきものである。さらに、実施形態およびその他の例示的な言辞の上記の使用は、必ずしも同じ実施形態または同じ例を指すのではなく、潜在的には同じ実施形態を指すことがありうるのと同様、異なり、区別される実施形態を指すことがありうる。

Claims (24)

  1. 複数のソフトウェア・エンティティのうち第一のソフトウェア・エンティティに関連付けられるよう適応された、複数の処理要素のうちの第一の処理要素と;
    複数の処理要素によって共有されるよう適応された共有資源の、前記第一の処理要素による利用を判別するよう適応されたモニタ論理と;
    前記第一のソフトウェア・エンティティの優先度レベルを受け取って、前記第一のソフトウェア・エンティティの優先度レベルおよび前記第一のソフトウェア・エンティティによる前記共有資源の利用に基づいて、前記優先度レベル内で前記第一の処理要素の動作点を決定するよう適応された、優先度を考慮する管理論理とを有する装置であって前記動作点は前記第一の処理要素のレート・レベルと、前記第一の処理要素への共有資源の割り当てとを含むものである、
    装置。
  2. 前記第一の処理要素が、コア、スレッドおよびコンテキストからなる群より選択される、請求項1記載の装置。
  3. 先度を考慮する管理論理が、前記第一の処理要素以外の前記複数の処理要素のレート・レベルとは独立に、前記第一の処理要素のレート・レベルを修正するよう適応されたレート制御論理を含む、請求項1記載の装置。
  4. 先度を考慮する管理論理が、前記第一の処理要素以外の前記複数の処理要素への共有資源の割り当てとは独立に、前記第一の処理要素への共有資源の割り当てを修正するよう適応された割り当て制御論理を含む、請求項3記載の装置。
  5. 前記第一の処理要素のレート・レベルを修正するよう適応されたレート制御論理が、前記第一の処理要素の電圧レベルを修正するよう適応された電圧制御論理を含む、請求項記載の装置。
  6. 前記第一の処理要素のレート・レベルを修正するよう適応されたレート制御論理が、前記第一の処理要素に関連付けられたクロックを調整するよう適応されたクロック制御論理を含む、請求項記載の装置。
  7. 前記第一の処理要素のレート・レベルを修正するよう適応されたレート制御論理が、前記第一の処理要素の周波数を修正するよう適応された周波数制御論理を含む、請求項1記載の装置。
  8. 前記第一の処理要素への共有資源の割り当てを修正するよう適応された割り当て制御論理が、前記第一の処理要素のメモリ・アクセス・バンド幅を修正するよう適応されたメモリ割り当て論理を含む、請求項記載の装置。
  9. 前記第一の処理要素への共有資源の割り当てを修正するよう適応された割り当て制御論理が、前記第一の処理要素のサイクル当たりに発行される命令を修正するよう適応された命令論理を含む、請求項記載の装置。
  10. 前記第一の処理要素への共有資源の割り当てを修正するよう適応された割り当て制御論理が、前記第一の処理要素に関連付けられた資源の利用量を修正するよう適応された資源制御論理を含む、請求項記載の装置。
  11. 前記資源がキャッシュ・メモリであり、前記資源の利用量を修正することが、前記第一の処理要素によりアクセス可能な前記キャッシュ・メモリの量を修正することを含む、請求項10記載の装置。
  12. 前記資源がメモリであり、前記資源の利用量を修正することが、前記メモリへのアクセスの量を修正することを含む、請求項10記載の装置。
  13. 前記第一のソフトウェア・エンティティが、オペレーティング・システム、仮想マシン・モニタ(VMM)、仮想マシン(VM)、ユーザー・レベル・アプリケーションおよびゲスト・ソフトウェアからなる群より選択される、請求項1記載の装置。
  14. プロセッサを有する装置であって、
    前記プロセッサが:
    第一のソフトウェア・エンティティを実行するよう適応された第一の処理要素と;
    第二のソフトウェア・エンティティを実行するよう適応された第二の処理要素と;
    前記第一のソフトウェア・エンティティに関連付けられる第一の優先度レベルおよび前記第二のソフトウェア・エンティティに関連付けられる第二の優先度レベルを保持するよう適応された記憶部であって、前記第一の優先度レベルは前記第二の優先度レベルより高い、記憶と;
    前記第一の処理要素および前記第二の処理要素による共有資源の利用をモニタリングするよう適応されたモニタ論理と;
    前記第一の優先度レベルが前記第二の優先度レベルより高いことおよび前記第一および第二の優先度レベルとの関係での前記第一および第二の処理要素による共有資源の利用に基づいて、前記第一の処理要素の第一の動作点を、前記第二の処理要素の第二の動作点より高い動作点に設定する、優先度を考慮するマネージャとを有する、
    装置。
  15. 前記第一の動作点における前記第一の処理要素のレート関係パラメータの値が、前記第二の動作点における前記第二の処理要素の前記レート関係パラメータの値よりも高く、前記レート関係パラメータは、電圧レベル、クロック速度、周波数またはサイクル当たりに発行される命令数のいずれかである、請求項14記載の装置。
  16. 前記第一および前記第二の処理要素がコアであり、前記第一の動作点が、前記第二の動作点の第二の電圧および第二の周波数よりも高い第一の電圧および第一の周波数を含む、請求項14記載の装置。
  17. 前記第一の処理要素の前記第一の動作点が、キャッシュ・メモリのある第一の数の路(way)へのアクセスを含み、前記第二の処理要素の前記第二の動作点が、前記キャッシュ・メモリのある第二の数の路へのアクセスを含み、路の前記第一の数が路の前記第二の数より大きい、請求項14記載の装置。
  18. 第一の優先度レベルに関連付けられた資源の利用度および第二の優先度レベルに関連付けられた前記資源の利用度を示し、ここで、前記第一の優先度レベルは前記第二の優先度レベルより低い、優先度使用論理と;
    前記第一の優先度レベルに関連付けられた前記資源の利用度がある所定の利用量を上回ることに応答して、前記第一の優先度レベルのソフトウェア・エンティティに関連付けられるべき第一の処理要素の動作点を低下させるよう適応された、前記優先度使用論理に結合された、優先度を考慮する管理ハードウェアとを有する、
    装置。
  19. 前記第一の処理要素の前記第一の動作点のレート関係パラメータの値が、前記第二の処理要素の前記第二の動作点の前記レート関係パラメータの値より大きく、前記レート関係パラメータは、電圧レベル、クロック速度、周波数またはサイクル当たりに発行される命令数のいずれかである、請求項18記載の装置。
  20. 前記第一の処理要素の前記第一の動作点が前記資源の第一の割当量を含み、前記第二の処理要素の前記第二の動作点が前記資源の第二の割当量を含み、前記第一の割当量が前記第二の割当量より大きい、請求項18記載の装置。
  21. 前記第一の処理要素の前記第一の動作点がキャッシュ・メモリの第一の部分へのアクセスを含み、前記第二の処理要素の前記第二の動作点が前記キャッシュ・メモリの第二の部分へのアクセスを含み、前記第一の部分が前記第二の部分より大きい、請求項18記載の装置。
  22. 前記優先度使用論理が、前記第一の優先度レベルに関連付けられた前記キャッシュ・メモリ中のエントリーの第一の数および前記第二の優先度レベルに関連付けられたエントリーの第二の数を追跡する追跡論理を含む、請求項21記載の装置。
  23. 前記第一の処理要素の前記第一の動作点が、待ち行列に入れられることが許容されるメモリアクセス要求の第一の数を含み、前記第二の処理要素の前記第二の動作点が、待ち行列に入れられることが許容されるメモリアクセス要求の第二の数を含み、前記第一の数が前記第二の数より大きい、請求項18記載の装置。
  24. 前記優先度使用論理が、前記第一の処理要素についての、待ち行列内にあるメモリ・アクセス要求の第三の数および前記第二の処理要素についての、待ち行列内にあるメモリ・アクセス要求の第四の数を追跡する追跡論理を含む、請求項23記載の装置。
JP2010502273A 2007-04-09 2008-04-02 電力/パフォーマンスのサービス品質のための優先度に基づくスロットリング Expired - Fee Related JP5175335B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/786,019 2007-04-09
US11/786,019 US8799902B2 (en) 2007-04-09 2007-04-09 Priority based throttling for power/performance quality of service
PCT/US2008/059172 WO2008124455A2 (en) 2007-04-09 2008-04-02 Priority based throttling for power/performance quality of service

Publications (2)

Publication Number Publication Date
JP2010524087A JP2010524087A (ja) 2010-07-15
JP5175335B2 true JP5175335B2 (ja) 2013-04-03

Family

ID=39828105

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010502273A Expired - Fee Related JP5175335B2 (ja) 2007-04-09 2008-04-02 電力/パフォーマンスのサービス品質のための優先度に基づくスロットリング

Country Status (6)

Country Link
US (1) US8799902B2 (ja)
JP (1) JP5175335B2 (ja)
CN (1) CN101414269B (ja)
BR (1) BRPI0810879A2 (ja)
DE (1) DE102008016181A1 (ja)
WO (1) WO2008124455A2 (ja)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8799902B2 (en) 2007-04-09 2014-08-05 Intel Corporation Priority based throttling for power/performance quality of service
US8219996B1 (en) * 2007-05-09 2012-07-10 Hewlett-Packard Development Company, L.P. Computer processor with fairness monitor
GB2449455B (en) * 2007-05-22 2011-08-03 Advanced Risc Mach Ltd A data processing apparatus and method for managing multiple program threads executed by processing circuitry
US7930578B2 (en) * 2007-09-27 2011-04-19 International Business Machines Corporation Method and system of peak power enforcement via autonomous token-based control and management
US20090165004A1 (en) * 2007-12-21 2009-06-25 Jaideep Moses Resource-aware application scheduling
US7802057B2 (en) * 2007-12-27 2010-09-21 Intel Corporation Priority aware selective cache allocation
US8683483B2 (en) * 2008-03-25 2014-03-25 Oracle America, Inc. Resource utilization monitor
JP5322529B2 (ja) * 2008-07-29 2013-10-23 キヤノン株式会社 表示装置、表示制御方法
US8424007B1 (en) * 2008-09-30 2013-04-16 Symantec Corporation Prioritizing tasks from virtual machines
US8566834B2 (en) * 2008-10-02 2013-10-22 Dell Products L.P. Mechanism for application management during server power changes
US10095533B1 (en) * 2008-10-06 2018-10-09 Veritas Technologies Llc Method and apparatus for monitoring and automatically reserving computer resources for operating an application within a computer environment
US8190930B2 (en) 2009-03-30 2012-05-29 Intel Corporation Methods and apparatuses for controlling thread contention
US9396042B2 (en) 2009-04-17 2016-07-19 Citrix Systems, Inc. Methods and systems for evaluating historical metrics in selecting a physical host for execution of a virtual machine
US8291416B2 (en) * 2009-04-17 2012-10-16 Citrix Systems, Inc. Methods and systems for using a plurality of historical metrics to select a physical host for virtual machine execution
US8219063B2 (en) * 2009-06-26 2012-07-10 Vmware, Inc. Controlling usage in mobile devices via a virtualization software layer
US9311245B2 (en) 2009-08-13 2016-04-12 Intel Corporation Dynamic cache sharing based on power state
JP5482052B2 (ja) * 2009-09-24 2014-04-23 富士通株式会社 観測分析装置および観測分析方法
US8578180B2 (en) * 2009-10-14 2013-11-05 Red Hat, Inc. Dynamic tuning of computing systems
CN101788926B (zh) * 2009-12-28 2014-04-30 中兴通讯股份有限公司 J2me应用前台切换的资源调配方法及装置
CN102141928A (zh) * 2010-01-29 2011-08-03 国际商业机器公司 虚拟环境下的数据处理方法、系统以及系统的部署方法
US20120331477A1 (en) * 2010-02-18 2012-12-27 Roy Zeighami System and method for dynamically allocating high-quality and low-quality facility assets at the datacenter level
WO2011134716A1 (en) * 2010-04-26 2011-11-03 International Business Machines Corporation Managing a multiprocessing computer system
US8589932B2 (en) 2010-07-02 2013-11-19 International Business Machines Corporation Data processing workload control
CN102479108B (zh) * 2010-11-26 2013-09-11 中国科学院声学研究所 一种多应用进程的嵌入式系统终端资源管理系统及方法
US20120137289A1 (en) * 2010-11-30 2012-05-31 International Business Machines Corporation Protecting high priority workloads in a virtualized datacenter
US9235500B2 (en) 2010-12-07 2016-01-12 Microsoft Technology Licensing, Llc Dynamic memory allocation and relocation to create low power regions
US8898390B2 (en) 2011-03-08 2014-11-25 Intel Corporation Scheduling workloads based on cache asymmetry
US8566935B2 (en) * 2011-05-12 2013-10-22 At&T Intellectual Property I, L.P. Balancing malware rootkit detection with power consumption on mobile devices
US8645733B2 (en) 2011-05-13 2014-02-04 Microsoft Corporation Virtualized application power budgeting
US20130326249A1 (en) * 2011-06-09 2013-12-05 Guillermo Navarro Regulating power consumption of a mass storage system
US20130014119A1 (en) * 2011-07-07 2013-01-10 Iolo Technologies, Llc Resource Allocation Prioritization Based on Knowledge of User Intent and Process Independence
CA2843320A1 (en) * 2011-07-25 2013-01-31 Servergy, Inc. Method and system for building a low power computer system
US8813240B1 (en) 2012-05-30 2014-08-19 Google Inc. Defensive techniques to increase computer security
US9015838B1 (en) * 2012-05-30 2015-04-21 Google Inc. Defensive techniques to increase computer security
WO2014000779A1 (en) * 2012-06-27 2014-01-03 Qatar Foundation An arrangement configured to allocate resources of a plurality of data storage media to a plurality virtual machines and associated method
US9183022B2 (en) 2012-06-30 2015-11-10 International Business Machines Corporation Maintaining hardware resource bandwidth quality-of-service via hardware counter
US20140025890A1 (en) * 2012-07-19 2014-01-23 Lsi Corporation Methods and structure for improved flexibility in shared storage caching by multiple systems operating as multiple virtual machines
CN103596045B (zh) * 2012-08-14 2017-03-15 吴飞 一种用于视频码流播放终端设备的节能控制方法
US9134778B2 (en) 2012-11-21 2015-09-15 International Business Machines Corporation Power distribution management in a system on a chip
US9134779B2 (en) 2012-11-21 2015-09-15 International Business Machines Corporation Power distribution management in a system on a chip
JP6070150B2 (ja) * 2012-12-14 2017-02-01 富士通株式会社 情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラム
CN103502939B (zh) * 2013-02-07 2016-11-02 华为技术有限公司 对虚拟机进行管理的方法及系统
US9594411B2 (en) * 2013-02-28 2017-03-14 Qualcomm Incorporated Dynamic power management of context aware services
US9760389B2 (en) * 2013-03-15 2017-09-12 Excalibur Ip, Llc Activity initiated virtual machine migration
US9336068B2 (en) 2013-06-07 2016-05-10 Apple Inc. Throttling of application access to resources
US9477526B2 (en) * 2013-09-04 2016-10-25 Nvidia Corporation Cache utilization and eviction based on allocated priority tokens
US10386900B2 (en) * 2013-09-24 2019-08-20 Intel Corporation Thread aware power management
US10291472B2 (en) 2015-07-29 2019-05-14 AppFormix, Inc. Assessment of operational states of a computing environment
US10581687B2 (en) 2013-09-26 2020-03-03 Appformix Inc. Real-time cloud-infrastructure policy implementation and management
US10355997B2 (en) 2013-09-26 2019-07-16 Appformix Inc. System and method for improving TCP performance in virtualized environments
US10915449B2 (en) * 2013-12-19 2021-02-09 Hewlett Packard Enterprise Development Lp Prioritizing data requests based on quality of service
US10095286B2 (en) 2014-05-30 2018-10-09 Apple Inc. Thermally adaptive quality-of-service
US10203746B2 (en) 2014-05-30 2019-02-12 Apple Inc. Thermal mitigation using selective task modulation
KR101543969B1 (ko) 2014-09-24 2015-08-11 연세대학교 산학협력단 애플리케이션 처리 속도와 소모 전력 향상을 위한 cpu 제어 방법 및 장치
US9612651B2 (en) * 2014-10-27 2017-04-04 Futurewei Technologies, Inc. Access based resources driven low power control and management for multi-core system on a chip
US10146296B2 (en) * 2014-11-06 2018-12-04 Qualcomm Incorporated Independent asynchronous framework for embedded subsystems
US10534714B2 (en) * 2014-12-18 2020-01-14 Hewlett Packard Enterprise Development Lp Allocating cache memory on a per data object basis
US9733987B2 (en) * 2015-02-20 2017-08-15 Intel Corporation Techniques to dynamically allocate resources of configurable computing resources
US10007556B2 (en) 2015-12-07 2018-06-26 International Business Machines Corporation Reducing utilization speed of disk storage based on rate of resource provisioning
JP6886301B2 (ja) * 2017-01-26 2021-06-16 キヤノン株式会社 メモリアクセスシステム、その制御方法、プログラム、及び画像形成装置
US11068314B2 (en) * 2017-03-29 2021-07-20 Juniper Networks, Inc. Micro-level monitoring, visibility and control of shared resources internal to a processor of a host machine for a virtual environment
US10868742B2 (en) 2017-03-29 2020-12-15 Juniper Networks, Inc. Multi-cluster dashboard for distributed virtualization infrastructure element monitoring and policy control
US11323327B1 (en) 2017-04-19 2022-05-03 Juniper Networks, Inc. Virtualization infrastructure element monitoring and policy control in a cloud environment using profiles
US10721294B2 (en) * 2017-07-12 2020-07-21 Telefonaktiebolaget Lm Ericsson (Publ) Apparatus and method for subscription-based resource throttling in a cloud environment
US10496150B2 (en) 2017-07-13 2019-12-03 Red Hat, Inc. Power consumption optimization on the cloud
US10503550B2 (en) 2017-09-30 2019-12-10 Intel Corporation Dynamic performance biasing in a processor
CN110300138B (zh) * 2018-03-22 2022-04-08 浙江宇视科技有限公司 图片业务调度方法、装置、管理节点及计算机可读存储介质
US11144473B2 (en) * 2018-06-13 2021-10-12 Advanced Micro Devices, Inc. Quality of service for input/output memory management unit
US10817217B2 (en) * 2018-06-28 2020-10-27 Seagate Technology Llc Data storage system with improved time-to-ready
JP7151219B2 (ja) * 2018-07-05 2022-10-12 株式会社リコー 組み込み機器、ウィルススキャンプログラム実行方法、プログラム
CN109308196B (zh) * 2018-08-22 2020-04-14 腾讯科技(深圳)有限公司 一种多机型设备复用方法、装置及存储介质
US11237985B2 (en) * 2019-10-29 2022-02-01 Arm Limited Controlling allocation of entries in a partitioned cache
CN112887348B (zh) * 2019-11-29 2024-04-26 罗伯特·博世有限公司 用于控制车辆定位数据在网络上的传输的方法和系统
US11442890B1 (en) 2020-11-06 2022-09-13 Amazon Technologies, Inc. On-circuit data activity monitoring for a systolic array
US11520731B1 (en) * 2020-11-06 2022-12-06 Amazon Technologies, Inc. Arbitrating throttling recommendations for a systolic array
US20210224128A1 (en) * 2020-12-24 2021-07-22 Intel Corporation Technologies for managing workloads in processor cores
US11436145B1 (en) 2021-03-30 2022-09-06 Kyndryl, Inc. Analytics-driven direction for computer storage subsystem device behavior
CN112989733B (zh) * 2021-05-07 2021-11-30 北京芯愿景软件技术股份有限公司 电路分析方法、装置、设备及存储介质

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6269390B1 (en) * 1996-12-17 2001-07-31 Ncr Corporation Affinity scheduling of data within multi-processor computer systems
US5918057A (en) * 1997-03-20 1999-06-29 Industrial Technology Research Institute Method and apparatus for dispatching multiple interrupt requests simultaneously
US6016503A (en) * 1997-08-29 2000-01-18 International Business Machines Corporation Methods, systems and computer program products for preemptive avoidance of constraints for shared resources
US6567839B1 (en) * 1997-10-23 2003-05-20 International Business Machines Corporation Thread switch control in a multithreaded processor system
US6148324A (en) * 1998-01-05 2000-11-14 Lucent Technologies, Inc. Prioritized load balancing among non-communicating processes in a time-sharing system
US6473780B1 (en) * 1998-04-01 2002-10-29 Intel Corporation Scheduling of direct memory access
US6141762A (en) 1998-08-03 2000-10-31 Nicol; Christopher J. Power reduction in a multiprocessor digital signal processor based on processor load
US6477562B2 (en) * 1998-12-16 2002-11-05 Clearwater Networks, Inc. Prioritized instruction scheduling for multi-streaming processors
JP2001109661A (ja) 1999-10-14 2001-04-20 Hitachi Ltd キャッシュメモリの割当方法及びオペレーティングシステム及びそのオペレーティングシステムを有するコンピュータシステム
JP2001331461A (ja) 2000-05-19 2001-11-30 Nec Corp マルチプロセッサシステム及びプロセッサスケジュリング方法
US20030023889A1 (en) * 2001-07-26 2003-01-30 Hofstee Harm Peter Apparatus and method for controlling power dissipation and convective cooling to reduce temperature excursion rates in a processing system
US6813665B2 (en) * 2001-09-21 2004-11-02 Intel Corporation Interrupt method, system and medium
US7159216B2 (en) * 2001-11-07 2007-01-02 International Business Machines Corporation Method and apparatus for dispatching tasks in a non-uniform memory access (NUMA) computer system
JP2003256067A (ja) 2002-03-01 2003-09-10 Mitsubishi Electric Corp 省電力制御方式及び省電力制御方法及びプログラム及び記録媒体
US7464380B1 (en) * 2002-06-06 2008-12-09 Unisys Corporation Efficient task management in symmetric multi-processor systems
US7191349B2 (en) * 2002-12-26 2007-03-13 Intel Corporation Mechanism for processor power state aware distribution of lowest priority interrupt
US7475399B2 (en) * 2004-01-13 2009-01-06 International Business Machines Corporation Method and data processing system optimizing performance through reporting of thread-level hardware resource utilization
US7614053B2 (en) 2004-02-20 2009-11-03 Sony Computer Entertainment Inc. Methods and apparatus for task management in a multi-processor system
JP4490298B2 (ja) 2004-03-02 2010-06-23 三菱電機株式会社 プロセッサ電力制御装置及びプロセッサ電力制御方法
US7487503B2 (en) * 2004-08-12 2009-02-03 International Business Machines Corporation Scheduling threads in a multiprocessor computer
US7802110B2 (en) * 2004-08-25 2010-09-21 Microsoft Corporation System and method for secure execution of program code
US7458065B2 (en) * 2004-09-21 2008-11-25 Intel Corporation Selection of spawning pairs for a speculative multithreaded processor
US8364897B2 (en) 2004-09-29 2013-01-29 Intel Corporation Cache organization with an adjustable number of ways
EP1715405A1 (en) * 2005-04-19 2006-10-25 STMicroelectronics S.r.l. Processing method, system and computer program product for dynamic allocation of processing tasks in a multiprocessor cluster platforms with power adjustment
US7779287B2 (en) * 2005-08-22 2010-08-17 Intel Corporation Reducing power consumption in multiprocessor systems
US7945913B2 (en) * 2006-01-19 2011-05-17 International Business Machines Corporation Method, system and computer program product for optimizing allocation of resources on partitions of a data processing system
US8799902B2 (en) 2007-04-09 2014-08-05 Intel Corporation Priority based throttling for power/performance quality of service

Also Published As

Publication number Publication date
US20080250415A1 (en) 2008-10-09
US8799902B2 (en) 2014-08-05
CN101414269B (zh) 2013-11-20
JP2010524087A (ja) 2010-07-15
DE102008016181A1 (de) 2008-12-18
WO2008124455A2 (en) 2008-10-16
CN101414269A (zh) 2009-04-22
WO2008124455A3 (en) 2008-12-24
BRPI0810879A2 (pt) 2014-10-29

Similar Documents

Publication Publication Date Title
JP5175335B2 (ja) 電力/パフォーマンスのサービス品質のための優先度に基づくスロットリング
JP4543081B2 (ja) リソースの割り当ておよび制限を介するヘテロジニアスチップマルチプロセッサのための装置および方法
JP5170782B2 (ja) ヘテロジニアス処理ユニットのための集中デバイス仮想化レイヤ
US7921276B2 (en) Applying quality of service (QoS) to a translation lookaside buffer (TLB)
US8683476B2 (en) Method and system for event-based management of hardware resources using a power state of the hardware resources
US10242420B2 (en) Preemptive context switching of processes on an accelerated processing device (APD) based on time quanta
US20150095919A1 (en) Methods and system for swapping memory in a virtual machine environment
US20150007189A1 (en) Service rate redistribution for credit-based arbitration
US9342122B2 (en) Distributing power to heterogeneous compute elements of a processor
JP2011118871A (ja) イベント処理のためのターボ性能を向上させる方法および装置
US20090049446A1 (en) Providing quality of service via thread priority in a hyper-threaded microprocessor
WO2014133705A1 (en) A method, apparatus, system for representing, specifying and using deadlines
CN107003962B (zh) 保持计算系统中高速缓存一致性的方法、装置和计算系统
US8041896B2 (en) Virtualization platform with dedicated cache access
WO2014105163A1 (en) Apparatus and method for implementing a scratchpad memory
Suo et al. Preserving i/o prioritization in virtualized oses
Rehm et al. The road towards predictable automotive high-performance platforms
CN112306652A (zh) 带有上下文提示的功能的唤醒和调度
CN107636563B (zh) 用于通过腾空cpu和存储器的子集来降低功率的方法和系统
US20130135327A1 (en) Saving and Restoring Non-Shader State Using a Command Processor
US20090077290A1 (en) Controller for processing apparatus
US20220291962A1 (en) Stack memory allocation control based on monitored activities
EP3971718A1 (en) Application negotiable resource director technology for efficient platform resource management
Nair et al. Mediator-a mixed criticality deadline honored arbiter for multi-core real-time systems
US20220300421A1 (en) Memory Sharing

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120424

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: 20121204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130104

R150 Certificate of patent or registration of utility model

Ref document number: 5175335

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

LAPS Cancellation because of no payment of annual fees