JP2016076268A - 利用可能な並列性の量に従って1命令当たりのエネルギーを変化させるための方法及び装置 - Google Patents

利用可能な並列性の量に従って1命令当たりのエネルギーを変化させるための方法及び装置 Download PDF

Info

Publication number
JP2016076268A
JP2016076268A JP2015257488A JP2015257488A JP2016076268A JP 2016076268 A JP2016076268 A JP 2016076268A JP 2015257488 A JP2015257488 A JP 2015257488A JP 2015257488 A JP2015257488 A JP 2015257488A JP 2016076268 A JP2016076268 A JP 2016076268A
Authority
JP
Japan
Prior art keywords
core
processor
cores
power consumption
threads
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
JP2015257488A
Other languages
English (en)
Other versions
JP6289444B2 (ja
Inventor
グロホウスキー、エドワード
Edward Grochowski
シェン、ジョン
John Shen
ワン、ホン
Hong Wang
オレンスタイン、ドロン
Doron Orenstein
シーファー、ガッド
Gad Sheaffer
ローネン、ロニー
Ronny Ronen
アンナバラム、ムラリ
Murali Annavaram
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 JP2016076268A publication Critical patent/JP2016076268A/ja
Application granted granted Critical
Publication of JP6289444B2 publication Critical patent/JP6289444B2/ja
Active 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • 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/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • 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
    • 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/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • G06F9/3891Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
    • G06F9/3897Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)

Abstract

【課題】スカラータスク及び並列タスクの双方においてうまく動作するマイクロプロセッサを提供する。【解決手段】スロットルモジュール(又はスロットルロジック)が、現在実行されているプログラムに存在する並列性の量を求め、さまざまなコアにおけるそのプログラムのスレッドの実行を変更する。並列性の量が多い場合には、少ない電力を消費するように構成されたコアで多くの量のスレッドを実行するようにプロセッサを構成する。並列性の量が低い場合には、より大きなスカラー性能を得るように構成されたコアで少ない量のスレッドを実行するようにプロセッサを構成する。【選択図】図1

Description

本開示は、包括的には、変化するスカラー資源所要量及び並列資源所要量を有するプログラムを実行することができるマイクロプロセッサに関し、より具体的には、複数のコアを使用するマイクロプロセッサに関する。
コンピュータワークロードは、いくつかの実施の形態では、本来的に並列性をほとんど有さない(大部分がスカラーである)ものから、かなりの量の並列性を有する(大部分が並列である)ものまで連続的に及んでおり、この性質は、ソフトウェアのセグメントごとに変化し得る。一般的なスカラーワークロードには、ソフトウェア開発ツール、オフィス生産性スイート、及びオペレーティングシステムカーネルルーチンが含まれる。一般的な並列ワークロードには、3Dグラフィックス、メディア処理、及び科学的応用が含まれる。スカラーワークロードは、1クロック当たりの命令数(IPC)が0.2〜2.0の範囲で命令をリタイヤさせることができるのに対して、並列ワークロードは、4IPC〜数千IPCの範囲のスループットを達成することができる。後者の高いIPCは、命令レベルの並列性及びスレッドレベルの並列性の使用を通じて取得可能な場合がある。
従来技術のマイクロプロセッサは、多くの場合、スカラー性能又は並列性能のいずれかを主目的として設計されている。高いスカラー性能を達成するには、多くの場合、実行待ち時間をできるだけ削減することが望ましい。有効待ち時間を削減するためのマイクロアーキテクチャ技法には、投機的実行、分岐予測、及びキャッシュが含まれる。高いスカラー性能の追求の結果、パイプラインマイクロプロセッサは、大きなアウトオブオーダの、投機性の高い、深いパイプラインマイクロプロセッサとなっている。高い並列性能を達成するには、できるだけ大きな実行スループット(帯域幅)を提供することが望ましい場合がある。スループットを増大させるためのマイクロアーキテクチャ技法には、幅の広いスーパースカラー処理、単一命令複数データ命令、チップレベルマルチプロセシング、及びマルチスレッド化が含まれる。
問題は、スカラータスク及び並列タスクの双方においてうまく動作するマイクロプロセッサを構築しようとする時に発生し得る。1つの問題は、短い待ち時間を達成するのに必要とされる設計技法が、場合により、高いスループットを達成するのに必要とされる設計技法と非常に異なるという認識から発生し得る。
本発明は、添付図面の図に、限定ではなく一例として示されている。添付図面において、同じ参照符号は同様の構成要素を指す。
以下の説明は、ソフトウェアプログラムにおいて利用可能な並列性の量に従って各命令を処理するのに費やされるエネルギー量を変化させるための技法を記載している。以下の説明では、本発明のより完全な理解を提供するために、ロジック実施態様、ソフトウェアモジュール割り当て、バス及び他のインターフェースシグナリング技法、オペレーションの詳細等の多数の具体的な詳細が述べられている。しかしながら、本発明は、このような具体的な詳細がなくても実施できることが当業者には十分理解されよう。それ以外の場合には、制御構造、ゲートレベルの回路、及び完全なソフトウェア命令シーケンスは、本発明を分かりにくくしないために詳細に示されていない。当業者は、含まれた説明によって、必要以上の実験を行うことなく適切な機能を実施することができる。特定の実施態様では、本発明は、Intel(登録商標)社によって生産されたようなPentium(登録商標)互換プロセッサのマルチコアの実施態様の形で開示されている。しかしながら、本発明は、Itaniumプロセッサファミリー互換プロセッサ、X−Scale(登録商標)ファミリー互換プロセッサ、他のベンダ又は設計者のプロセッサアーキテクチャのいずれかからの多種多様な異なる汎用プロセッサのいずれか等の、他の種類のプロセッサにおいても実施することができる。加えて、いくつかの実施の形態は、グラフィックス、ネットワーク、画像、通信、他の任意の既知のタイプのプロセッサ又は別の方法で利用可能なタイプのプロセッサ等の、専用プロセッサを含むこともできるし、専用プロセッサとすることもできる。
電力効率は、1ワット当たりについての1秒当たりの命令数(IPS)の点で測定することができる。IPS/ワットのメトリックは、1命令当たりのエネルギーと等価である。より正確には、IPS/ワットは、以下のように、1命令当たりのエネルギーの逆数に比例する。
Figure 2016076268
(1)
1命令当たりのエネルギーのメトリックの重要な特性は、命令を処理するのに必要とされる時間とは独立であるということである。これによって、1命令当たりのエネルギーは、スループット性能にとって役立つメトリックとなる。
マイクロプロセッサの電力消費の近似解析は、命令が処理される度に充電又は放電されるコンデンサとしてマイクロプロセッサをモデル化することにより行うことができる(簡単にするために、漏れ電流及び短絡スイッチング電流は無視することができる)。この前提により、1命令当たりのエネルギーは、2つの事項、すなわち、(フェッチからリタイヤへ)各命令を処理するためにトグルされる静電容量及び電源電圧にのみ依存することができる。コンデンサに標準的に適用される既知の公式
Figure 2016076268
(2)
をマイクロプロセッサにも同様に適用することができる。Eは、1つの命令を処理するのに必要とされるエネルギーであり、Cは、その1つの命令を処理する際にトグルされる静電容量であり、Vは、電源電圧である。
マイクロプロセッサは、たとえば100ワット等の一定の電力バジェット内で動作することができる。或る時間にわたって平均化されたマイクロプロセッサの電力消費は、マイクロプロセッサ又はソフトウェアが何を行うかにかかわらず、この電力バジェットを超えるべきではない。この目的を達成するために、マイクロプロセッサは、或る種の動的な温度管理を組み込むことができる。同様に、チップレベルマルチプロセッサは、そのマルチプロセッサが、1クロックあたりの命令数(IPC)がたとえば0.2個で命令をリタイヤしているのか、又は20IPCで命令をリタイヤしているのかにかかわらず、一定の電力バジェット内に留まるようにそのアクティビティを調整(又はスロットル)することができる。良好な性能を発揮するために、チップレベルマルチプロセッサは、自身のMIPS/ワットを変化させることができるべきである。すなわち、自身のエネルギー/命令を、この例では100:1の範囲にわたって変化させることができるべきである。
高いスカラー性能及び高いスループット性能の双方を達成できるマイクロプロセッサを設計するための1つの手法は、ソフトウェアにおいて利用可能な並列性の量又は利用可能であると推定される並列性の量に従って、各命令を処理するのに費やされるエネルギー量を動的に変化させることである。換言すれば、並列性の量が少ない場合には、マイクロプロセッサは、すべての利用可能なエネルギーを、少数の命令を処理することに費やすことができ、並列性の量がより多い場合には、マイクロプロセッサは、各命令を処理することにほとんどエネルギーを費やすことができない。これは、
Figure 2016076268
(3)
として表すことができる。ここで、Pは、一定の電力バジェットであり、EPIは、リタイヤされた1命令当たりの平均エネルギーであり、IPSは、すべてのプロセッサコアにわたって1秒あたりにリタイヤされた命令の総数である。この実施の形態は、全マルチプロセッサチップ電力をほぼ一定のレベルに維持しようと試みるものである。
相補型金属酸化膜半導体(CMOS)の電圧及び周波数のスケーリングは、1命令あたりのエネルギーの比について異なった比を達成するのに使用することができる。一実施の形態では、ロジックが、所望の性能レベル及び電力レベルに従って、マイクロプロセッサの電源電圧及びクロック周波数を調和して変化させる。チップレベルマルチプロセッサの全電力消費を一定の電力バジェット内に維持するために、電圧及び周波数のスケーリングを以下のように動的に適用することができる。スレッドの並列性が低い段階では、最良のスカラー性能を得るために、高い電源電圧及び高い周波数を使用して、少数のコアを実行することができる。スレッドの並列性が高い段階では、最良のスループット性能を得るために、低い電源電圧及び低い周波数を使用して、多数のコアを実行することができる。アクティブでないコアの電力消費は低いことが望ましい場合があるので、ダイナミックスリープトランジスタ(dynamic sleep transistor)やボディバイアス等の漏れ制御技法を使用することができる。
次に図1を参照すると、一実施の形態による、電圧及び周波数によって構成可能なコアを含むプロセッサの概略図が示されている。コア1 120、コア2 130、コア3 140、及びコア4 150が示されているが、他の実施の形態では、プロセッサのコアは4つよりも多くすることもできるし、少なくすることもできる。これらのコアの1つ又は複数は、電圧制御回路及びクロック周波数制御回路を有することができる。図1は、コア1 120が、電圧制御回路122及び周波数制御回路124を所有することを明示的に示しているが、他のコアも、同等の回路を同様に有することもできるし、電圧制御ロジック及び周波数制御ロジックを、特定のコアに直接関連付けられていない別個のロジックとすることもできる。
スロットルモジュール110は、情報を収集して、実行しているソフトウェアプログラムに存在する並列性の量又はその量の推定値を求めるのに使用することができる。一実施の形態では、並列性の量は、サポートされる同時スレッドの個数とすることができる。他の実施の形態では、1秒あたりにリタイヤされる命令の総数又はマルチスレッド化された投機的実行をサポートできる分岐命令の個数等の、他のメトリックを使用して、並列性の量を表すことができる。スロットルモジュール110は、オペレーティングシステムによって提供された情報を利用して、並列性の量を求めるのを助けることができる。他の実施の形態では、スロットルモジュール110は、プロセッサ内のハードウェアロジック及びプロセッサのコアを使用してこの並列性の量を求めることを行うことができる。この並列性の量を求めることは、連続的に行うこともできるし、定期的に行うこともできる。
スロットルモジュール110は、プログラムにおける並列性の量を求めるごとに、信号線112、114、116、及び118を介してコア120、130、140、150に、それらの電圧及びクロック周波数を変更するように指示することができる。一実施の形態では、信号線112、114、116、及び118は、コアをオン又はオフにするのに使用することもできるし、コアを収容する電力泉(power well)からの電力を除去するのに使用することもできる。他の実施の形態では、コアは、クロックゲーティング技法又は命令スタベーション(instruction starvation)技法によってオフにすることもできる。一実施の形態では、現在のスレッドレベルの並列性の量が以前の量を超え、その超える量がしきい値を超える場合、スロットルモジュールは、各コアの電圧及びクロック周波数を減少させながらより多数のコアでスレッドを実行することによって、より多数のスレッドの実行への移行を開始することができる。以前にオフにされていたコアをオンにして、より多数のスレッドをサポートすることができる。同様に、現在のスレッドレベルの並列性の量が以前の量を下回り、その下回る量がしきい値を超える場合、スロットルモジュールは、いくつかのコアの電圧及びクロック周波数を増加させながらより少数のこれらのコアでスレッドを実行することによって、より少数のスレッドの実行への移行を開始することができる。以前にオンにされていたいくつかのコアは、より少数のスレッドをサポートするのにもはや必要とされる場合はないので、それらのコアをオフにすることができる。
一実施の形態では、異なるマイクロアーキテクチャを使用して或る範囲の性能及び電力を補うことができる単一命令セットアーキテクチャ(ISA)異種マルチコアマイクロプロセッサを設計することが可能な場合がある。一実施の形態では、チップレベルマルチプロセッサを2つのタイプのプロセッサコアから構築することができる。これら2つのタイプのコアは、ラージコア及びスモールコアと呼ぶことができる。これら2つのタイプのコアは、同じ命令セットアーキテクチャを実施することができ、キャッシュコヒーレンシを使用して共有メモリを実施することができ、それらのマイクロアーキテクチャのみが異なることができる。他の実施の形態では、2つのタイプのコアは、類似の命令セットアーキテクチャを実施することができる。すなわち、スモールコアは、ラージコアの命令セットのサブセットを実施することができる。ラージコアは、アウトオブオーダでスーパースカラーの深いパイプラインマシンとすることができるのに対して、スモールコアは、インオーダのスカラーの短いパイプラインマシンとすることができる。Intel Pentium4プロセッサ及びIntel i486プロセッサは、これら2つのクラスのコアの代表的なものである。他の実施の形態では、ほぼ同様又は同一の命令セットアーキテクチャを実行する3つ以上のクラスのコア又は3つ以上の性能レベルのコアを使用することができる。
一実施の形態では、チップレベルマルチプロセッサは、1つのラージコア及び25個のスモールコアを含む。これら2つのタイプのコアは、電力消費が25:1の比を有し、スカラー性能が5:1の比を有し、5:1レンジの1命令当たりのエネルギーを有する。チップレベルマルチプロセッサ又はこの実施の形態は、以下のように動作することができる。スレッドレベルの並列性が低い段階では、ラージコアが、最良のスカラー性能を得るために実行することができる。スレッドレベルの並列性が高い段階では、複数のスモールコアが、最良のスループット性能を得るために実行することができる。
どの瞬間においても、マイクロプロセッサは、1つのラージコア又は25個のスモールコアのいずれかを実行することができる。利用可能なソフトウェアスレッドの個数は、時間と共に変化するので、非対称型マルチプロセッサは、ラージコアとスモールコアとの間でスレッドをマイグレーションできるべきである。スレッドマイグレーションロジックが、この機能をサポートするために実施される場合がある。
実際には、ラージコアをオフにスイッチングした時点におけるスループット性能の不連続を低減するために、ラージコアと同時に少数のスモールコアを実行することを可能にすることが望ましい場合がある。前の例では、ラージコアをオフにスイッチングすると共に2つのスモールコアをオンにスイッチングすることに起因して、3ユニットのスループットの不連続が生じる場合がある。たとえば、電源が、5個までのスモールコアをラージコアと同時に実行することを短時間の間サポートする場合に、失われる全スループットの割合を削減するために、この同時実行を可能にすることによって、不連続を、より多数の実行スレッドで発生するように移動させることができる。
今日のマイクロプロセッサを代表する2つのタイプのコアを使用すると、4:1レンジの1命令当たりのエネルギーが達成可能である。将来のマイクロプロセッサがさらに高いレベルのスカラー性能を発揮し続けると、可能な1命令当たりのエネルギーのレンジは、おそらく6:1、又は、この比よりもはるかに優れた比に増加すると予想することができる。
次に図2を参照すると、一実施の形態による、処理電力及び電力消費によって選択可能なコアを含むプロセッサの概略図が示されている。このプロセッサは、少数のラージコアであるAコアを含むことができ、また、より多数のスモールコアであるコアBも含むことができる。Aコア1 220、Aコア2 222、及びBコア1 230〜60 262が示されているが、他の実施の形態では、プロセッサに存在するAコアは、2つよりも多くすることもできるし、少なくすることもでき、プロセッサに存在するBコアは、60個よりも多くすることもできるし、少なくすることもできる。
スロットルモジュール210は、この場合も、情報を収集して、実行しているソフトウェアプログラムに存在する並列性の量を求めるのに使用することができる。一実施の形態では、並列性の量は、サポートされる同時スレッドの個数とすることができる。他の実施の形態では、上述したように、他のメトリックを使用して、並列性の量を表すことができる。スロットルモジュール210は、オペレーティングシステムによって提供される情報を利用して、並列性の量を求めることを助けることができる。他の実施の形態では、スロットルモジュール210は、プロセッサ内のハードウェアロジック及びプロセッサのコアを使用してこの並列性の量を求めることを行うことができる。この並列性の量を求めることは、連続的に行うこともできるし、定期的に行うこともできる。
利用可能なソフトウェアスレッドの個数は、時間と共に変化するので、図1のプロセッサは、ラージAコアとスモールBコアとの間でスレッドをマイグレーションできるスレッドマイグレーションロジック212を含むことができる。ラージAコアをオフにスイッチングした時点におけるスループット性能の不連続を低減するために、ラージAコアと同時に少数のスモールBコアを実行することを可能にすることが望ましい場合がある。失われる全スループットの割合を削減するために、たとえば、5個までのスモールコアをラージコアと同時に実行することを可能にすることによって、不連続を、より多数の実行スレッドで発生するように移動させることができる。
スロットルモジュール210は、プログラムにおける並列性の量を求めるごとに、信号線224〜266を使用してAコア及びBコアの電源投入又は電源切断を開始することができる。一実施の形態では、現在の並列性の量が以前の量を超え、その超える量がしきい値を超える場合、スロットルモジュール210は、スレッドマイグレーションロジック212を使用して、より多数のBコアで実行できる、より多数のスレッドの実行への移行を開始することができる。以前にオフにされていたBコアをオンにして、それら多数のスレッドをサポートすることができ、オンにされているどのAコアもオフにすることができる。同様に、現在の並列性の量が以前の量を下回り、その下回る量がしきい値を超える場合、スロットルモジュールは、より少数のAコアでスレッドを実行することによって、より少数のスレッドの実行への移行を開始することができる。以前にオンにされていたBコアは、それら少数のスレッドをサポートするのにもはや必要とされる場合はないので、それらのBコアをオフにすることができ、Aコアをオンにして、それら少数のスレッドをサポートすることができる。上述したように、ラージコアをオフにスイッチングした時点におけるスループット性能の不連続を低減するために、Aコアと同時に少数のBコアを実行することを可能にすることが望ましい場合がある。
一実施の形態では、スロットルモジュールは、フィードバックループを必要としない方法で実施することができる。この点で、スロットルの制御動作(たとえば、どのタイプのいくつのコアがスレッドを実行するかの決定)が、入力値(たとえば、スレッドのコアの割り当て及び構成)に影響を与えるために戻されることはない。この実施の形態では、各Aコア220、222は、Bコア230〜262の中の25個と同じ電力量を消費できるものと仮定することができる。他の実施の形態では、異なる電力消費の比を使用することができる。プロセッサは、自身の全電力バジェットを2つの部分に分割することができる。各部分について、その電力バジェットにより、1つのAコア及び5個までのBコアが同時に動作することを可能にすることもできるし、Aコアが動作せず、30個までのBコアが同時に動作することを可能にすることもできる。他の実施の形態では、電力バジェットは、他の方法で複数の部分に分割することができる。
一実施の形態では、表Iに従って、実行スレッド(RT)の個数を或る数量のAコア(QAC)及び或る数量のBコア(QBC)に割り当てることができる。
Figure 2016076268
実行スレッドの個数が増加し、新しいスレッドが(一実施の形態では、プロセッサ間割り込みを介して)起動されると、スロットルモジュールは、現在の実行スレッドの個数を求めることができる。現在の実行スレッドの個数に応じて、上記表Iに従い、新しいスレッドをAコア又はBコアのいずれかに割り当てることができる。この実施の形態では、12個のスレッドから13個のスレッドに増加した時、又は36個のスレッドから37個のスレッドに増加した時等の特定の場合に、Aコアで実行されている既存のスレッドは、Bコアにおける実行にマイグレーションされる。このマイグレーションが完了すると、マイグレーションされた既存のスレッド及び新しいスレッドの双方を起動することができる。この理由により、この実施の形態では、新しいスレッドは、起動の際に遅延を示す場合がある。
同様のプロセスは、実行スレッドの個数が減少した時にも発生し得る。特定のスレッドが終了し、そのコアが停止されると、さまざまな方法を使用して、残りのスレッドの1つをBコアにおける実行からAコアにおける実行へ、場合によりマイグレーションすることができる。これは、たとえば、実行スレッドの個数を13個のスレッドから12個のスレッドへ、又は37個のスレッドから36個のスレッドへ削減する時に発生する可能性がある。一実施の形態では、周期タイマを使用して、特定の時間間隔に1度だけマイグレーションを可能にすることができる。これによって、スレッドが高速に作成されて終了される場合に、スレッドマイグレーションがあまりにも頻繁に行われることを有利に防止することができる。影響を受けるスレッドは、特定の時間間隔までの間は、Bコアで引き続き実行し続けることができる。
一実施の形態では、スロットルモジュールは、AコアからBコアへのマイグレーションを、ソフトウェアにトランスペアレントに行うことができる。スロットルモジュールのスレッドマイグレーションメカニズムは、論理コアを物理コアへマッピングするための表と、コアマイグレーションが必要とされていることを信号で伝えるための割り込みと、コアのプロセッサ状態をコピーするためのマイクロコード又は配線ロジックと、プロセッサのコア間の相互接続ネットワークとを含むことができる。論理コアの個数は、Bコアの個数と等しくすることができる。
別の実施の形態では、スロットルモジュールは、AコアからBコアへのマイグレーションを、ソフトウェアにトランスペアレントでない方法で行うことができる。このスレッドマイグレーションは、オペレーティングシステムのスケジューラが行うことができる。オペレーティングシステムは、現在の実行スレッドを有するコアの個数を追跡して、新しいスレッドをコアに割り当て、AコアからBコア(又はBコアからAコアへ)スレッドをマイグレーションすることができる。ソフトウェアスレッドマイグレーションは、ハードウェア実施態様について上述したものと同等の機能を使用することができる。一実施の形態では、スロットルモジュールの動作は、アプリケーションプログラムにはトランスペアレントとすることができるが、オペレーティングシステムにはトランスペアレントでないものとすることができる。
電力消費を調節するための1つの代替的な方法は、ロジックブロックのサイズ又は機能を調整することとすることができる。たとえば、大きなアレイサイズが必要とされない場合に、可変サイズのスケジューラ、キャッシュ、変換索引バッファ(TLB)、分岐予測、及び他のオプションの性能回路を使用して、スイッチング容量(したがって、エネルギー)を削減することができる。アレイを動的にサイズ変更することに加えて、実行ユニット、パイプライン段、及び他のオプションの性能回路を動的に無効化することによって、コアの性能をより小さなコアの性能に低下させるラージコアを設計することも可能である。これらの技法は、まとめて適応型処理として既知である場合がある。
チップレベルマルチプロセッサの一実施の形態は、以下のように動作することができる。スレッドの並列性が低い段階では、少数のコアが、良好なスカラー性能を得るために、各コアにおける第1の一組の(たとえば、すべて又は多くの)利用可能なオプションの性能回路を使用して実行することができる。スレッドの並列性が高い段階では、良好なスループット性能を得るために、各コアにおいて使用するオプションの性能回路をより少なくして多くのコアを動作させることができる。
アレイサイズの削減及び実行ユニットの無効化の最終結果は、1命令当たりにトグルされる静電容量を削減することになる場合がある。しかしながら、スイッチング容量は、最初からより小さなコアを設計するほど多く削減されない場合がある。未使用の実行ハードウェアはゲート制御でオフにできるが、コアの物理サイズは変化せず、したがって、まだアクティブであるハードウェアブロックに関連したワイヤの長さは、スモールコアにおける長さよりも依然として長いままである場合がある。
1命令当たりの削減可能なエネルギーの推定は、大きなアウトオブオーダマイクロプロセッサの配置図(floorplan)を調べて、そのプロセッサを小さなインオーダマシンに変換するためにオプションの性能回路をいくつオフにできるかを求めることにより行うことができる(ブロックは物理的に移動できないことに留意されたい)。オフにされたプロセッサコア面積の割合をその後定量化することができる。この定量化によって、スイッチング容量の削減を近似することができる。式(2)から、1命令当たりのエネルギーは、スイッチング容量の量にほぼ比例する。
粗い推定は、場合により、スイッチング容量の50%までをオフにできるということになり、その結果、1命令当たりのエネルギーの1倍から2倍の削減となる。いくつかの実施の形態では、クロックゲーティングに加えて、ダイナミックスリープトランジスタ及びボディバイアス等の漏れ制御技法を使用することにより、1命令当たりに消費されるエネルギーの削減を容易にすることができる。
次に図3を参照すると、一実施の形態による、オプションの性能回路によって構成可能なコアを含むプロセッサの概略図が示されている。この図3のプロセッサは、コア1 320、コア2 370、コア3 380、及びコア4 390の4つのコアを含むことができる。他の実施の形態では、4つよりも多くのコア又は少ないコアを使用することができる。コア1 320は、さまざまなオプションの性能回路を示している。スケジューラA 334は、オンにされると性能を高めることができるオプションのスケジューラB 336に接続することができる。実行ユニット1 340は、オンにされると性能を高めることができるオプションの実行ユニット2〜4の342、344、346に接続することができる。レベル0(L0)キャッシュA 322は、オンにされると性能を高めることができるL0キャッシュB 324に接続することができる。TLB A 326は、オンにされると性能を高めることができるTLB B 328に接続することができる。再配列バッファ(ROB)338は、可変の個数のラインを有することができ、すなわち、完全にオフしてアウトオブオーダ実行を防止することができる。最後に、他のパイプライン段330とは別個のプリフェッチ段332は、電源が投入されると、投機的フェッチを行うことができる。他の実施の形態では、他のオプションの性能回路を使用することができる。
スロットルモジュール310は、この場合も、情報を収集して、実行しているソフトウェアプログラムに存在する並列性の量を求めるのに使用することができる。スロットルモジュール310は、図1及び図2に関して上述したものと同様のものとすることができる。スロットルモジュール310は、プログラムにおける並列性の量を求めるごとに、信号線312、314、316、及び318を介してコア320、370、380、及び390に、電源が投入又は切断されるオプションの性能回路の個数を変更するように指示することができる。一実施の形態では、信号線312、314、316、及び318は、コア320、370、380、及び390をオン又はオフにするのに使用することもできる。一実施の形態では、現在の並列性の量が以前の量を超え、その超える量がしきい値を超える場合、スロットルモジュールは、各コアでオンにされているオプションの性能回路を減少させながらより多数のこれらのコアでスレッドを実行することによって、より多数のスレッドの実行への移行を開始することができる。以前にオフにされていたコアをオンにして、より多数のスレッドをサポートすることができる。同様に、現在の並列性の量が以前の量を下回り、その下回る量がしきい値を超える場合、スロットルモジュールは、いくつかのコアでオンにされているオプションの性能回路を増加させながらより少数のこれらのコアでスレッドを実行することによって、より少数のスレッドの実行への移行を開始することができる。以前にオンにされていたいくつかのコアは、より少数のスレッドをサポートするのにもはや必要とされる場合はないので、それらのコアをオフにすることができる。
たとえば予測ミスした分岐に続く命令といった投機ミスした命令により浪費されるエネルギーを削減するためのさまざまな形態の投機制御が提案されている。追加されるエネルギーは、投機ミスした命令を処理するためにトグルされる静電容量に起因する。投機ミスした命令の結果は廃棄することができるが、エネルギーはすでに費やされている。このエネルギーは、次の正しく投機(リタイヤ)された命令にこのエネルギーを充電することによって考慮することができる。
パイプラインゲーティングは、1つ又は複数の信頼性の低い分岐予測によって廃棄される可能性のある命令でパイプラインが満たされることを回避するための技法である。投機制御を使用する一実施の形態では、チップレベルマルチプロセッサは、以下のように動作することができる。スレッドの並列性が低い段階では、良好なスカラー性能を得るために、投機の量を増加させて少数のコアを実行することができる。スレッドの並列性が高い段階では、良好なスループット性能を得るために、各コアにおける投機の量を減少させて多くのコアを実行することができる。
スケジューラ及び再配列バッファのエントリーの個数を削減することによって、投機できる命令の個数も削減されるので、可変サイズコア技法と投機制御との間には或る重複が存在する。キャッシュ、TLB、分岐予測器等の他のプロセッサ資源のサイズは、可能な投機の量にそれほど大きな影響を与えることはできない。
次に図4を参照すると、本開示の一実施の形態による、オプションの投機回路によって構成可能なコアを含むプロセッサの概略図が示されている。この図4のプロセッサは、コア1 420、コア2 470、コア3 480、及びコア4 490の4つのコアを含むことができる。他の実施の形態では、4つよりも多くのコア又は少ないコアを使用することができる。コア1 420は、さまざまなオプションの投機回路を示している。プリフェッチ段430は、命令を投機的にフェッチするのに使用することができる。分岐予測器434は、プログラムの分岐の投機的実行をサポートするのに使用することができる。他の予測器436は、実施の形態によっては、ループ予測器とすることもできるし、他の形態の投機的実行をサポートするための他の形態の予測器とすることもできる。他の実施の形態では、さらに別のオプションの投機回路を使用することができる。
スロットルモジュール410は、この場合も、情報を収集して、実行しているソフトウェアプログラムに存在する並列性の量を求めるのに使用することができる。スロットルモジュール410は、一般的に、図1、図2、及び図3に関して上述したように動作することができる。スロットルモジュール410は、プログラムにおける並列性の量を求めるごとに、信号線412、414、416、及び418を介してコア420、470、480、及び490に、電源が投入又は切断されるオプションの投機回路の個数を変更するように指示することができる。一実施の形態では、信号線412、414、416、及び418は、コア420、470、480、及び490をオン又はオフにするのに使用することもできる。一実施の形態では、現在の並列性の量が以前の量を超え、その超える量がしきい値を超える場合、スロットルモジュールは、各コアでオンにされているオプションの投機回路を減少させながらより多数のこれらのコアでスレッドを実行することによって、より多数のスレッドの実行への移行を開始することができる。以前にオフにされていたコアをオンにして、より多数のスレッドをサポートすることができる。同様に、現在の並列性の量が以前の量を下回り、その下回る量がしきい値を超える場合、スロットルモジュールは、いくつかのコアでオンにされているオプションの投機回路を増加させながらより少数のこれらのコアでスレッドを実行することによって、より少数のスレッドの実行への移行を開始することができる。以前にオンにされていたいくつかのコアは、より少数のスレッドをサポートするのにもはや必要とされる場合はないので、それらのコアをオフにすることができる。
図1、図2、図3、及び図4に関して上述した技法のそれぞれについて、スロットルモジュールは、マルチプロセッサの動作を調整して、全チップ電力を一定の電力バジェット内に維持することができる。スロットルモジュールハードウェアは、1秒当たりにリタイヤされる命令の総数に反比例する、1命令当たりのエネルギー量を変化させることによって、式(3)を満たすことができる。過電力状況に応じて、いくつかの実施の形態では、スロットルモジュールは、以下の動作、すなわち、電圧及び周波数を下げること(図1の電圧及び周波数のスケーリングの場合)、ラージコアからスモールコアへスレッドをマイグレーションすること(図2の非対称型コアの場合)、オプションの性能回路部の容量を削減すること(図3の可変サイズのコアの場合)、又は、投機の量を削減すること(図4の投機制御の場合)の1つ又は複数を取ることができる。
各場合において、たとえ正味のスループットが増加しても、ソフトウェアはより多くのスレッドを同時に実行するようにハードウェアに依頼するので、既存のスレッドはより遅くなるという独特の特性を有するが、ソフトウェアプログラムは、プロセッサを大きな対称型チップレベルマルチプロセッサとみなすことができる。この手法によれば、今日の共有メモリマルチプロセッサプログラミングモデル用に記述されたソフトウェアを、変更することなく、引き続き実行することができる。
次に図5を参照すると、本開示の一実施の形態による、コア、及び、スロットルモジュールの細部を含むプロセッサの概略図が示されている。数量Mのプロセッサコア1 502〜M 508は、実施の形態によっては、電圧及び周波数によって構成可能な図1のコア、処理電力及び電力消費が変化する図2のラージコア及びスモールコア、オプションの性能回路によって構成可能な図3のコア、オプションの投機回路によって構成可能な図4のコア、又は、これらのタイプの一部又は全部の混在したものとすることができる。他の実施の形態では、他のタイプのコアを使用することができる。
モニタ1 512〜M 518は、関連するコア及び補助的なプロセッサ回路部の1つ又は複数の属性を監視することができる。いくつかの実施の形態では、これらの属性には、コアが実行されているのか又は停止されているのか、1クロックサイクル当たりにリタイヤされる命令の瞬間の個数、コアの所与の機能ブロックがアクティブであるのか又はアイドルであるのか、コア内の機能ブロック以外のプロセッサの所与の機能ブロックがアクティブであるのか又はアイドルであるのか、並びに、コアの電源電流及び温度(又はダイの温度)が含まれ得る。コア内の機能ブロック以外のプロセッサの機能ブロックには、共有キャッシュ又はメモリコントローラ等の回路が含まれ得る。電源電流は、電流センサ抵抗器及びアナログ/デジタル(A/D)変換器を介して測定することができる。温度は、サーマルダイオード及びA/D変換器を介して測定することができる。各モニタ1 512〜M 518の出力は、これらの属性のすべて又は或る部分の監視値とすることができる。
電力化変換(convert-to-power)ロジック530は、モニタ1 512〜M 518から1つ又は複数の監視された値を受け取ることができる。さまざまな実施の形態では、これら監視された値は、電力消費の大きさに変換することができる。監視された値が、コアが実行されているのか又は停止されているのかを反映する一実施の形態では、監視された値は、コアが実行(又は停止)状態にある間に1クロック当たりに費やされる平均エネルギー量をコアの実行(又は停止)状態に乗算することによって、電力消費に変換することができる。これらの積は、その後、プロセッサのすべてのコアについて合計することができる。監視された値が、1クロックサイクル当たりにリタイヤされる命令の瞬間の個数を反映する一実施の形態では、監視された値は、その命令数に、1クロック当たりの命令ごとに費やされる平均エネルギー量を乗算することによって電力消費に変換することができる。これらの積は、その後、プロセッサのすべてのコアについて合計することができる。監視された値が、コアの所与の機能ブロックがアクティブであるのか若しくはアイドルであるのか(又はいくつかの実施の形態では、コア内の機能ブロック以外のプロセッサの所与の機能ブロックがアクティブであるのか若しくはアイドルであるのか)を反映する一実施の形態では、監視された値は、ブロックがアクティブ(又はアイドル)状態である間に1クロック当たりに費やされる平均エネルギー量をアクティブ(又はアイドル)状態に乗算することによって電力消費に変換することができる。これらの積は、その後、各コアのすべてのブロックについて合計することができ、そして、プロセッサのすべてのコアについて合計することができる。コアの内部にないブロックが考慮される場合、その積を合計に含めることができる。これらの実施の形態のそれぞれにおいて、結果の合計は、電源電圧の2乗をクロック周波数に乗算したものに比例する値を乗算することによって、電圧及び周波数について調整することができる。
監視された値が各コアの電源電流を反映する一実施の形態では、監視された値は、電源電流に電源電圧を乗算することによって電力消費に変換することができる。
監視された値がコア又はダイの温度を反映する一実施の形態では、図5の回路を使用して、ほぼ一定の電力消費を維持する代わりに、ほぼ一定のコア又はダイの温度を維持することができる。
計算差ロジック534は、電力化変換ロジック530の変換された電力消費(又はダイの温度)出力と所望の電力消費値(又は所望のダイの温度値)との間の差を計算するのに使用することができる。この差は、「誤差」値として使用することができる。
積分ロジック538は、一実施の形態では、計算差ロジック534によって供給された誤差値の時間にわたる積分に比例する積分値を提供することができる。一実施の形態では、この積分は、アキュムレータを使用することによって計算することができる。このアキュムレータは、加算器及びレジスタを使用して実施することができる。アキュムレータは、オーバーフローを回避するために上限及び下限の双方で飽和させることができる。一実施の形態では、アキュムレータの出力は、たとえば、2〜6ビットの整数ビット及び2〜16ビットの小数ビットを有する固定小数点の2進数とすることができる。アキュムレータの最上位ビットを調べることが可能である。これによって、出力をゆるやかに変化させるという特性を有利に与えることができる。積分ロジック538の使用によって、低速フィードバックループ550が時間と共に誤差値を0に削減しようとすることを助けることができる。積分ロジック538の使用は、誤差値が電力である場合に最も有利であり得る。その理由は、瞬間電力消費は、ほぼクロックサイクルごとに変化し得るからである。
他の実施の形態では、積分ロジック538を、誤差値に比例する値を与えるロジックと取り替えることができる。このロジックは、誤差値が温度である場合に有利となり得る。別の実施の形態では、このロジックは、誤差値の時間微分又は上記値のすべての或る線形結合に比例した値を与えることができる。
サンプルロジック544は、特定の実施の形態で使用することができる。たとえ積分ロジック538からの積分値が理論上は図5のロジックの速度に比べてゆるやかに変化する場合があっても、その集積値は、各クロックサイクルと共に変化する場合がある。いくつかの制御技法は、システムコストをほとんど伴うことなく、クロックサイクルごとにそれらの動作を変化させることができる。この場合、サンプリングは必要とされない場合がある。他の制御技法では、積分ロジック538の出力が遷移点に近くなった時に、各クロックと共に振動する値を低減することを助けるのにサンプリングを使用することが有利な場合がある。
一実施の形態では、一定サンプリング技法をサンプルロジック544に使用することができる。一定数Nのクロックサイクルごとに1回値をサンプリングすることができる。これによって、値が、Nクロックサイクルごとに1回よりも高速に変化することを防止することができる。しかしながら、この技法は、Nクロックサイクルよりも短い期間の間制御を行うことを可能にすることができず、積分が、Nクロックサイクルの期間と比較して遅い場合に、最もよく機能することができる。
別の実施の形態では、ヒステリシス技法をサンプルロジック544に使用することができる。サンプルロジック544の出力は、入力値と出力値との間の差がしきい値Tを超えた時にのみ変化することができる。この出力値は、差がTを超えた時に入力値と取り替えることができ、そうでない時、出力値は変わらないままにすることができる。
低速フィードバックループ550を使用する実施の形態の場合、制御ロジック548を使用することができる。コアが、電源電圧及び周波数を変化させることによって電力消費を変化させることができる図1の実施の形態等の一実施の形態では、制御ロジック548は、電源電圧及び周波数の変更を指示することができる。これらの実施の形態では、電源電圧を変更することは、100マイクロ秒等の比較的長い時間を要する場合があることに留意すべきである。一実施の形態では、表又は論理ブロックを使用して、電源電圧及び周波数を設定することができる。表IIは、制御値(CV)のさまざまな値についてのこのような表又は論理ブロックの一例を与えている。
Figure 2016076268
スレッドをラージコア及びスモールコアに割り当てることができる図2の実施の形態等の一実施の形態では、制御ロジック948は、制御値に従って、ソフトウェアに対してトランスペアレントにスレッドをコアに割り当てることができ、且つ、スレッドをマイグレーションすることができる。スレッドマイグレーションメカニズムは、「論理」プロセッサコアを「物理」プロセッサコアにマッピングするための表又は論理ブロックを含むことができる。また、スレッドマイグレーションメカニズムは、マイグレーションが要求されていることを信号で伝えるための割り込みと、プロセッサ状態をコピーするためのマイクロコード又は同等のロジックと、さまざまなプロセッサコア間の相互接続ネットワークとを含むこともできる。ソフトウェアに見える論理プロセッサの個数は、実行されているスモールコアの個数と等しくすることができる。電力バジェットが許す場合には、スモールコアの代わりにラージコアを使用することができる。ラージコアのこのような使用を制御値の関数として配分する(budget)のに使用される表又は論理ブロックは、一実施の形態では、表IIIに与えるものとすることができる。
Figure 2016076268
ここで、ラージコアを使用できない時にスモールコアでスレッドを実行するという簡単な仮定を行うことができる。
資源を動的に変化させることができるコアにスレッドを割り当てることができる図3の実施の形態等の一実施の形態では、制御ロジック548は、コアの機能ユニットの数量又は容量を変更できる制御値を与えることができる。実施の形態によっては、コアの容量を変化させるのに、アレイを満たすか若しくはライトバックする必要がある場合、又は、パイプラインを補充する必要がある場合に、この変更に使用される時間は、10マイクロ秒の範囲となる場合がある。コアの機能ユニットの使用を制御値の関数として配分するのに、表又は論理ブロックを使用することができる。機能ユニットのこのような使用を制御値の関数として配分するのに使用される表又は論理ブロックは、一実施の形態では、表IVに与えるものとすることができる。ここで、機能ユニットは、コアの実行ユニットとすることができる。
Figure 2016076268
投機の量を動的に変化させることができるコアにスレッドを割り当てることができる図4の実施の形態等の一実施の形態では、制御ロジック548は、コアで許可される投機の量を変更できる制御値を与えることができる。コアにおける投機の量の使用を制御値の関数として配分するのに表又は論理ブロックを使用することができる。投機の量を制御値の関数として調整するのに使用される表又は論理ブロックは、一実施の形態では、表Vに与えるものとすることができる。ここで、投機の量は、コアにおいて、非投機的な命令よりも先に投機的に実行される命令の個数によって与えることができる。
Figure 2016076268
多くの実施の形態では、プロセッサコアは、上記属性のいくつかを含むことができる。たとえば、プロセッサは、電圧及び周波数のスケーリングが可能なコアを有することができ、また、調整可能な量の投機的実行が可能なコアも有することができる。一実施の形態では、図2のラージAコア及びスモールBコアも、図1に示すような電圧及び周波数のスケーリングを有することができる。一実施の形態について、電圧及び周波数は一定とすることができ、ラージAコアは高電圧で実行するように構成され、スモールBコアは低電圧で実行するように構成される。別の実施の形態では、電圧及び周波数の調整範囲が、ラージAコアとスモールBコアとの間で異なったものとすることができる。ラージAコアとスモールBコアとの間のマイグレーションを援助するために、スモールBコアが最初に、高電圧及び高周波数で実行されている場合に、ラージAコアからスモールBコアへスレッドをマイグレーションすることができる。そのBコアの電圧及び周波数は、その後、ラージAコアが実行されなくなると、下げることができる。
この場合も、スレッドをラージAコア又はスモールBコアに割り当てるのに表又は論理ブロックを使用することができ、さらに、スレッドをコアの電圧及び周波数に割り当てるのにも表又は論理ブロックを使用することができる。制御値の関数としてこれらの調整を行うのに使用される表又は論理ブロックは、一実施の形態では、表VIに与えるものとすることができる。
Figure 2016076268
低速フィードバックループ550を巡って幾分一定の利得を維持することが有利な場合がある。この幾分一定の利得は、このような表又は論理ブロックの各段階の電力効果を同様の大きさにすることにより達成することができる。
特定の実施の形態では、前述した低速フィードバックループ550と併せて高速フィードバックループ560を使用することができる。一実施の形態では、たとえクロックスロットルを行うことが、1命令当たりのエネルギー量に影響を与えることができなくても、クロックスロットル540を使用することができる。クロックスロットル540を使用することは、上述した低速フィードバックループ550技法の1つ又は複数と組み合わせて使用されると有利な場合がある。
特定の場合に、待ち時間の短い高速フィードバックループ560を適用して、過電力状況を防止することができ、この適用は、低速フィードバック550が応答時間を有するまでしか効力を持続することができない。高速フィードバックループ960が実施されない実施の形態では、プロセッサ及びその電力供給システムは、低速フィードバックループ550の応答時間の間持続する過電力状況をハンドリングするように設計されるべきである。高速フィードバックループ560が追加される場合、過電力状況は、高速フィードバックループ560の応答時間よりも長く持続することはできない。この応答時間は、10ナノ秒の範囲にすることができる。
クロックスロットル540は、その入力として計算差ロジック534で計算された誤差値を使用して、特定のデューティサイクルでコアクロックのオン及びオフをゲート制御するように動作することができる。1つの簡単な実施の形態では、誤差値が一定のしきい値を超えると、所与のサイクル数の間、クロックを停止することができる。この計算は、各クロックサイクルにおいて行うことができ、完全にパイプライン化することができる。この所与のサイクル数は、その電力を、(低速フィードバックループ550が応答することを可能にすることができる)所望の電力よりも多少大きい電力に制限するように選ぶことができるが、最大電力よりも大きくするように選ぶことはできない。
別の実施の形態では、クロックスロットル550は、計算差ロジック535によって供給された誤差値の大きさ(たとえば、プロセッサが、電力しきい値をどの程度上回って現在実行されているか)に応じて、デューティサイクルを調節することができる。一実施の形態では、デューティサイクル及び誤差値を表VIIのように関係付けることができる。
Figure 2016076268
次に図6を参照すると、本開示の一実施の形態による、異なるコア構成への移行を示すフローチャートが示されている。このプロセスは、ブロック610で開始する。ブロック610は、さまざまなソフトウェアスレッドを利用可能なコアに割り当てることを含むことができる。一実施の形態では、スレッドの個数が求められ、各スレッドは1つのコアに割り当てられる。実施の形態によっては、この個数を求めることは、オペレーティングシステム等のソフトウェアが行うことができる。他の実施の形態では、この個数を求めることは、ハードウェアロジックが行うこともできるし、ハードウェア及びソフトウェアを組み合わせたものが行うこともできる。ブロック614において、各コアによって消費される電力量が監視され、観測された電力消費と所望の電力消費との間の誤差値が計算される。さまざまな実施の形態では、図5に関して上述した監視技法のいずれも使用することができる。次に、ブロック618において、ブロック614の誤差値は、図5に関して上述したような積分技法若しくはサンプリング技法又はその双方を受けることができる。実施の形態によっては、ブロック618はオプションとすることができる。ブロック618の出力は、或る期間の間の誤差値が、コアの構成を変更する性能ペナルティを正当とするのにほぼ十分であると判断できるまでコアの構成変更を防止できる制御値とすることができる。
判定ブロック622において、時間中の誤差値がコアの構成の変更を正当とするのに十分であるかどうかの判断を行うことができる。差が十分でない場合、プロセスは、NOの経路を通って判定ブロック622を出ることができ、プロセスは繰り返す。一方、差が十分である場合、プロセスは、YESの経路を通って判定ブロック622を出ることができる。
ブロック626において、電圧及び周波数を制御値に従って変更することができる。一実施の形態では、電圧及び周波数は、上記の表IIで示したように制御値について変更することができる。一実施の形態では、さまざまなコアの電圧及び周波数をすべて同様に変更することができる。他の実施の形態では、電圧及び周波数をさまざまなコアにおいて異なって変更することができる。いずれの場合にも、プロセスはブロック610で繰り返す。
次に図7を参照すると、本開示の一実施の形態による、異なるコア構成への移行を示すフローチャートが示されている。このプロセスは、ブロック710で開始する。ブロック710は、さまざまなソフトウェアスレッドを利用可能なコアに割り当てることを含むことができる。一実施の形態では、スレッドの個数が求められ、各スレッドは1つのコアに割り当てられる。実施の形態によっては、この個数を求めることは、オペレーティングシステム等のソフトウェアが行うことができる。他の実施の形態では、この個数を求めることは、ハードウェアロジックが行うこともできるし、ハードウェア及びソフトウェアを組み合わせたものが行うこともできる。ブロック714において、各コアによって消費される電力量が監視され、観測された電力消費と所望の電力消費との間の誤差値が計算される。さまざまな実施の形態では、図5に関して上述した監視技法のいずれも使用することができる。次に、ブロック718において、ブロック714の誤差値は、図5に関して上述したような積分技法若しくはサンプリング技法又はその双方を受けることができる。実施の形態によっては、ブロック718はオプションとすることができる。ブロック718の出力は、或る期間の間の誤差値が、コアの構成を変更する性能ペナルティを正当とするのにほぼ十分であると判断できるまでコアの構成変更を防止できる制御値とすることができる。
判定ブロック722において、時間中の誤差値がコアの構成の変更を正当とするのに十分であるかどうかの判断を行うことができる。差が十分でない場合、プロセスは、NOの経路を通って判定ブロック722を出ることができ、プロセスは繰り返す。一方、差が十分である場合、プロセスは、YESの経路を通って判定ブロック722を出ることができる。
ブロック726において、制御値に従ってコア間にスレッドを再割り当てすることができる。一実施の形態では、スレッドは、上記の表IIIで示したように、制御値についての特定の個数のラージコアに再割り当てすることができる。一実施の形態では、ラージコアの個数は、表IIIのように与えられ、ラージコアで実行できないスレッドは、スモールコアに再割り当てすることができる。他の実施の形態では、スレッドをコアに再割り当てするための他の方式を使用することができる。いずれの場合にも、プロセスはブロック710で繰り返す。
次に図8を参照すると、本開示の一実施の形態による、異なるコア構成への移行を示すフローチャートが示されている。このプロセスは、ブロック810で開始する。ブロック810は、さまざまなソフトウェアスレッドを利用可能なコアに割り当てることを含むことができる。一実施の形態では、スレッドの個数が求められ、各スレッドは1つのコアに割り当てられる。実施の形態によっては、この個数を求めることは、オペレーティングシステム等のソフトウェアが行うことができる。他の実施の形態では、この個数を求めることは、ハードウェアロジックが行うこともできるし、ハードウェア及びソフトウェアを組み合わせたものが行うこともできる。ブロック814において、各コアによって消費される電力量が監視され、観測された電力消費と所望の電力消費との間の誤差値が計算される。さまざまな実施の形態では、図5に関して上述した監視技法のいずれも使用することができる。次に、ブロック818において、ブロック814の誤差値は、図5に関して上述したような積分技法若しくはサンプリング技法又はその双方を受けることができる。実施の形態によっては、ブロック818はオプションとすることができる。ブロック818の出力は、或る期間の間の誤差値が、コアの構成を変更する性能ペナルティを正当とするのにほぼ十分であると判断できるまでコアの構成変更を防止できる制御値とすることができる。
判定ブロック822において、時間中の誤差値がコアの構成の変更を正当とするのに十分であるかどうかの判断を行うことができる。差が十分でない場合、プロセスは、NOの経路を通って判定ブロック822を出ることができ、プロセスは繰り返す。一方、差が十分である場合、プロセスは、YESの経路を通って判定ブロック822を出ることができる。
ブロック826において、上記の表IVで与えるように、制御値に従った量の、コアのオプションの回路部をオン又はオフにすることができる。一実施の形態では、上記の表IVに示すような制御値について、電源をオン又はオフにされる実行ユニットの個数を変更することができる。他の実施の形態では、他のオプションの性能回路を、制御値に従ってオン又はオフにすることができる。これらの他のオプションの性能回路には、スケジューラ、キャッシュ、変換索引バッファ、スケジューラ、及び再配列バッファが含まれ得る。いずれの場合にも、プロセスはブロック810で繰り返す。
次に図9を参照すると、本開示の一実施の形態による、異なるコア構成への移行を示すフローチャートが示されている。このプロセスは、ブロック910で開始する。ブロック910は、さまざまなソフトウェアスレッドを利用可能なコアに割り当てることを含むことができる。一実施の形態では、スレッドの個数が求められ、各スレッドは1つのコアに割り当てられる。実施の形態によっては、この個数を求めることは、オペレーティングシステム等のソフトウェアが行うことができる。他の実施の形態では、この個数を求めることは、ハードウェアロジックが行うこともできるし、ハードウェア及びソフトウェアを組み合わせたものが行うこともできる。ブロック914において、各コアによって消費される電力量が監視され、観測された電力消費と所望の電力消費との間の誤差値が計算される。さまざまな実施の形態では、図5に関して上述した監視技法のいずれも使用することができる。次に、ブロック918において、ブロック914の誤差値は、図5に関して上述したような積分技法若しくはサンプリング技法又はその双方を受けることができる。実施の形態によっては、ブロック918はオプションとすることができる。ブロック918の出力は、或る期間の間の誤差値が、コアの構成を変更する性能ペナルティを正当とするのにほぼ十分であると判断できるまでコアの構成変更を防止できる制御値とすることができる。
判定ブロック922において、時間中の誤差値がコアの構成の変更を正当とするのに十分であるかどうかの判断を行うことができる。差が十分でない場合、プロセスは、NOの経路を通って判定ブロック922を出ることができ、プロセスは繰り返す。一方、差が十分である場合、プロセスは、YESの経路を通って判定ブロック922を出ることができる。
ブロック926において、コアにおける投機の量を、上記の表Vで与えるように制御値に従って変化させることができる。一実施の形態では、投機的に実行される命令の個数を、上記の表Vに示すような制御値について変更することができる。他の実施の形態では、他の方法を使用して、制御値に従って投機の量を変化させることができる。投機の量を変化させるためのこれらの他の方法は、プリフェッチユニット、分岐予測器、又は別の形態の予測器の電源をオン又はオフにすることを含むことができる。いずれの場合にも、プロセスはブロック910で繰り返す。
次に図10A及び図10Bを参照すると、本開示の2つの実施の形態による、スロットル及び複数のコアを有するプロセッサを含むシステムの概略図が示されている。図10Aのシステムは、プロセッサとメモリと入出力デバイスとがシステムバスによって相互接続されているシステムを一般的に示しているのに対して、図10Bのシステムは、プロセッサとメモリと入出力デバイスとが複数のポイントツーポイントインターフェースによって相互接続されているシステムを一般的に示している。
図10Aのシステムは、1つ又はいくつかのプロセッサを含むことができ、明確にするためにこれらプロセッサのうちの2つのプロセッサ40、60のみが図10Aに示されている。プロセッサ40、60は、レベル1キャッシュ42、62を含むことができる。図10Aのシステムは、システムバス6とのバスインターフェース44、64、12、8を介して接続されているいくつかの機能を有することができる。一実施の形態では、システムバス6は、Intel(登録商標)社によって製造されたPentium(登録商標)クラスのマイクロプロセッサと共に利用されるフロントサイドバス(FSB)とすることができる。他の実施の形態では、他のバスを使用することができる。実施の形態によっては、メモリコントローラ34及びバスブリッジ32は、まとめてチップセットと呼ばれる場合がある。いくつかの実施の形態では、チップセットの機能は、図10Aの実施の形態で示したようなものとは異なり、複数の物理チップに分割することができる。
メモリコントローラ34は、プロセッサ40、60がシステムメモリ10及び基本入出力システム(BIOS)消去可能プログラマブル読み出し専用メモリ(EPROM)36から読み出し及び書き込みを行うことを可能にすることができる。いくつかの実施の形態では、BIOS EPROM36は、フラッシュメモリを利用することができる。メモリコントローラ34は、メモリ読み出しデータ及びメモリ書き込みデータをシステムバス6のバスエージェントへ運ぶこと、及び、当該バスエージェントから運ぶことを可能にするためのバスインターフェース8を含むことができる。また、メモリコントローラ34は、高性能グラフィックスインターフェース39を通じて、高性能グラフィックス回路38と接続することもできる。特定の実施の形態では、高性能グラフィックスインターフェース39は、アドバンスドグラフィックスポートAGPインターフェースとすることができる。メモリコントローラ34は、システムメモリ10からのデータを、高性能グラフィックスインターフェース39を通じて高性能グラフィックス回路38へ向けることができる。
図10Bのシステムも、1つ又はいくつかのプロセッサを含むことができ、明確にするためにこれらプロセッサのうちの2つのプロセッサ70、80のみが示されている。プロセッサ70、80は、それぞれ、メモリ2、4と接続するためのローカルメモリコントローラハブ(MCH)72、82を含むことができる。プロセッサ70、80は、ポイントツーポイントインターフェース回路78、88を使用して、ポイントツーポイントインターフェース50を介してデータを交換することができる。プロセッサ70、80は、それぞれ、ポイントツーポイントインターフェース回路76、94、86、98を使用して、個別のポイントツーポイントインターフェース52、54を介してチップセット90とデータを交換することができる。チップセット90も、高性能グラフィックスインターフェース92を介して高性能グラフィックス回路38とデータを交換することができる。
図10Aのシステムでは、バスブリッジ32が、システムバス6とバス16との間のデータ交換を可能にすることができる。バス16は、実施の形態によっては、業界標準アーキテクチャ(ISA)バス又は周辺機器相互接続(PCI)バスとすることができる。図10Bのシステムでは、チップセット90は、バスインターフェース96を介してバス16とデータを交換することができる。いずれのシステムにも、バス16上にさまざまな入出力I/Oデバイス14が存在することができる。これらの入出力I/Oデバイスには、いくつかの実施の形態では、低性能グラフィックスコントローラ、ビデオコントローラ、及びネットワーク接続コントローラが含まれる。別のバスブリッジ18は、実施の形態によっては、バス16とバス20との間のデータ交換を可能にするのに使用することができる。バス20は、実施の形態によっては、小型コンピュータシステムインターフェース(SCSI)バス、統合ドライブエレクトロニクス(IDE)バス、又はユニバーサルシリアルバス(USB)バスとすることができる。追加のI/Oデバイスをバス20と接続することもできる。これらの追加のI/Oデバイスには、マウスを含むキーボード/カーソル制御デバイス22、音声I/O24、モデム及びネットワークインターフェースを含む通信デバイス26、並びにデータストレージデバイス28が含まれ得る。ソフトウェアコード30は、データストレージデバイス28に記憶することができる。実施の形態によっては、データストレージデバイス28は、固定磁気ディスク、フロッピーディスクドライブ、光ディスクドライブ、光磁気ディスクドライブ、磁気テープ、又はフラッシュメモリを含む不揮発性メモリとすることができる。
上記明細書では、本発明をその特定の実施の形態に関して説明してきた。しかしながら、添付の特許請求の範囲で述べられているような本発明のより広い精神及び範囲から逸脱することなく、それら実施の形態に対してさまざまな修正及び変更を行えることは明らかである。本明細書及び図面は、したがって、限定的な意味ではなく例示の意味とみなされるべきである。
一実施の形態による、電圧及び周波数によって構成可能なコアを含むプロセッサの概略図である。 一実施の形態による、処理電力及び電力消費によって選択可能なコアを含むプロセッサの概略図である。 一実施の形態による、オプションの性能回路によって構成可能なコアを含むプロセッサの概略図である。 本開示の一実施の形態による、オプションの投機回路によって構成可能なコアを含むプロセッサの概略図である。 本開示の一実施の形態による、コア、及び、スロットルの細部を含むプロセッサの概略図である。 本開示の一実施の形態による、異なるコア構成への移行を示すフローチャートである。 本開示の別の実施の形態による、異なるコア構成への移行を示すフローチャートである。 本開示の別の実施の形態による、異なるコア構成への移行を示すフローチャートである。 本開示の別の実施の形態による、異なるコア構成への移行を示すフローチャートである。 本開示の一実施の形態による、スロットル及び複数のコアを有するプロセッサを含むシステムの概略図である。 本開示の別の実施の形態による、スロットル及び複数のコアを有するプロセッサを含むシステムの概略図である。

Claims (62)

  1. プロセッサであって、
    該プロセッサのコアの属性の値を監視するためのモニタロジックと、
    前記コアの前記属性に応じて、該プロセッサの電力消費の大きさを求めるための変換ロジックと、
    前記電力消費の大きさに応じて、該プロセッサの1命令当たりのエネルギーのメトリックを調整するための制御ロジックと
    を備えるプロセッサ。
  2. 前記コアの前記属性は、コア実行状態である、請求項1に記載のプロセッサ。
  3. 前記電力消費の大きさは、前記コア実行状態に、前記コアが該コア実行状態にある時に1クロック当たりに費やされるエネルギー量を乗算することによって求められる、請求項2に記載のプロセッサ。
  4. 前記コアの前記属性は、1クロック当たりにリタイヤされる命令の個数である、請求項1に記載のプロセッサ。
  5. 前記電力消費の大きさは、1クロック当たりにリタイヤされる命令の前記個数に、1クロック当たりの命令ごとに費やされるエネルギー量を乗算することによって求められる、請求項4に記載のプロセッサ。
  6. 前記コアの前記属性は、前記コアの機能ブロックのアクティブステータスである、請求項1に記載のプロセッサ。
  7. 前記電力消費の大きさは、前記機能ブロックの前記アクティブステータスに、該機能ブロックが該アクティブステータスにある時に1クロック当たりに費やされるエネルギー量を乗算することによって求められる、請求項6に記載のプロセッサ。
  8. 前記属性は、コア電源電流である、請求項1に記載のプロセッサ。
  9. 前記電力消費の大きさは、前記コア電源電流を含む、請求項8に記載のプロセッサ。
  10. 前記制御ロジックは、前記電力消費の大きさに応じて、前記プロセッサの動作電圧及び動作周波数を調整する、請求項1に記載のプロセッサ。
  11. 前記制御ロジックは、前記電力消費の大きさに応じて、前記プロセッサのラージコアとスモールコアとの間でプログラムのスレッドをマイグレーションする、請求項1に記載のプロセッサ。
  12. 前記制御ロジックは、前記電力消費の大きさに応じて、前記プロセッサの前記コアにおけるオプションの性能回路部をオンにする、請求項1に記載のプロセッサ。
  13. 前記制御ロジックは、前記電力消費の大きさに応じて、前記プロセッサの前記コアにおけるオプションの投機回路部をオンにする、請求項1に記載のプロセッサ。
  14. 前記電力消費の大きさと所望の電力消費との間の差を計算するための差ロジックをさらに備える、請求項1に記載のプロセッサ。
  15. 前記電力消費の大きさと所望の電力消費との間の前記差の時間積分を求めるための積分回路部をさらに備える、請求項14に記載のプロセッサ。
  16. サンプリング方法に従って、前記電力消費の大きさを前記制御ロジックに供給するためのサンプリング回路部をさらに備える、請求項14に記載のプロセッサ。
  17. 高速フィードバック制御を可能にするためのクロックスロットル回路をさらに備える、請求項1に記載のプロセッサ。
  18. プロセッサであって、
    第1の複数の第1のタイプのコアと、
    第2の複数の第2のタイプのコアと、
    前記第1の複数の前記第1のタイプのコア又は前記第2の複数の前記第2のタイプのコアのいずれかの1つにスレッドを割り当てるためのモジュールと
    を備えるプロセッサ。
  19. 前記モジュールは、電力バジェットに従って前記スレッドを割り当てる、請求項18に記載のプロセッサ。
  20. 前記モジュールは、割り当て表に従って前記スレッドを割り当てる、請求項18に記載のプロセッサ。
  21. 前記モジュールは、前記第2の複数のコアの1つに新しいスレッドを割り当てると共に、前記第1の複数のコアの1つから前記第2の複数のコアの1つへ既存のスレッドをマイグレーションするためのスレッドマイグレーションロジックを含む、請求項18に記載のプロセッサ。
  22. 前記スレッドマイグレーションロジックは、論理コアを物理コアにマッピングするための表を含む、請求項21に記載のプロセッサ。
  23. 前記スレッドマイグレーションロジックは、オペレーティングシステムスケジューラに応答する、請求項21に記載のプロセッサ。
  24. 前記第1のタイプのコアは、設計によって、前記第2のタイプのコアよりも高い性能を有する、請求項18に記載のプロセッサ。
  25. 前記第1のタイプのコアは、構成によって、前記第2のタイプのコアよりも高い性能を有する、請求項18に記載のプロセッサ。
  26. 方法であって、
    一組のスレッドを一組のプロセッサコアに割り当てること、
    該プロセッサコアの消費電力を監視すること、
    該消費電力と所望の電力との間の誤差値を計算すること、及び
    該誤差値に基づいて前記割り当てから移行すること
    を含む方法。
  27. 前記移行することは、前記一組のプロセッサコアにおける性能の高い方のコア及び性能の低い方のコアの間で、前記一組のスレッドの前記割り当てを変更することを含む、請求項26に記載の方法。
  28. 前記移行することは、前記一組のプロセッサコアにおいて性能の高い方のコア及び性能の低い方のコアを構成することによって、前記性能の高い方のコア及び前記性能の低い方のコアの間で、前記一組のスレッドの前記割り当てを変更することを含む、請求項26に記載の方法。
  29. 前記誤差値を時間にわたって積分することをさらに含む、請求項26に記載の方法。
  30. 前記誤差値を時間にわたってサンプリングすることをさらに含む、請求項26に記載の方法。
  31. 一組の実行スレッドを決定すること、及び
    該スレッドのそれぞれを、一組のプロセッサコアのうちの1つに割り当てること
    を含む方法であって、前記割り当てることは、電力バジェットに応答する、方法。
  32. 前記一組のプロセッサコアは、第1のタイプのコア及び第2のタイプのコアとして動作することができる構成可能なコアを含む、請求項31に記載の方法。
  33. 前記一組のプロセッサコアは、第1のタイプのコア及び第2のタイプのコアとして設計されるコアを含む、請求項31に記載の方法。
  34. 前記一組のプロセッサコアから第2のタイプのコアに新しいスレッドを割り当てること、及び、前記一組のプロセッサコアにおける第1のタイプのコアから前記第2のタイプのコアへ、前記一組の実行スレッドのうちの1つをマイグレーションすることをさらに含む、請求項31に記載の方法。
  35. 前記マイグレーションすることは、スレッドマイグレーションロジックによって行われる、請求項34に記載の方法。
  36. 前記マイグレーションすることは、オペレーティングシステムスケジューラに応答する、請求項34に記載の方法。
  37. システムであって、
    プロセッサであって、該プロセッサのコアの属性の値を監視するためのモニタロジックと、前記コアの前記属性に応じて、該プロセッサの電力消費の大きさを求めるための変換ロジックと、前記電力消費の大きさに応じて、該プロセッサの1命令当たりのエネルギーのメトリックを調整するための制御ロジックとを備える、プロセッサと、
    音声入出力ロジックと、
    前記プロセッサを前記音声入出力ロジックに接続するためのインターフェースと
    を備えるシステム。
  38. 前記コアの前記属性はコア実行状態であり、前記電力消費の大きさは、前記コア実行状態に、前記コアが該コア実行状態にある時に1クロック当たりに費やされるエネルギー量を乗算することによって求められる、請求項37に記載のシステム。
  39. 前記コアの前記属性は1クロック当たりにリタイヤされる命令の個数であり、前記電力消費の大きさは、1クロック当たりにリタイヤされる命令の前記個数に、1クロック当たりの命令ごとに費やされるエネルギー量を乗算することによって求められる、請求項37に記載のシステム。
  40. 前記コアの前記属性は前記コアの機能ブロックのアクティブステータスであり、前記電力消費の大きさは、前記機能ブロックの前記アクティブステータスに、該機能ブロックが該アクティブステータスにある時に1クロック当たりに費やされるエネルギー量を乗算することによって求められる、請求項37に記載のシステム。
  41. 前記属性はコア電源電流であり、前記電力消費の大きさは、前記コア電源電流を含む、請求項37に記載のシステム。
  42. 前記制御ロジックは、前記電力消費の大きさに応じて、前記プロセッサの動作電圧及び動作周波数を調整する、請求項37に記載のシステム。
  43. 前記制御ロジックは、前記電力消費の大きさに応じて、前記プロセッサのラージコアとスモールコアとの間でプログラムのスレッドをマイグレーションする、請求項37に記載のシステム。
  44. 前記制御ロジックは、前記電力消費の大きさに応じて、前記プロセッサの前記コアにおけるオプションの性能回路部をオンにする、請求項37に記載のシステム。
  45. 前記制御ロジックは、前記電力消費の大きさに応じて、前記プロセッサの前記コアにおけるオプションの投機回路部をオンにする、請求項37に記載のシステム。
  46. 前記プロセッサは、前記電力消費の大きさと所望の電力消費との間の差を計算するための差ロジックをさらに備える、請求項37に記載のシステム。
  47. 前記プロセッサは、前記電力消費の大きさと所望の電力消費との間の前記差の時間積分を求めるための積分回路部をさらに備える、請求項45に記載のシステム。
  48. サンプリング方法に従って、前記電力消費の大きさを前記制御ロジックに供給するためのサンプリング回路部をさらに備える、請求項45に記載のプロセッサ。
  49. システムであって、
    第1の複数の第1のタイプのコアと、第2の複数の第2のタイプのコアと、前記第1の複数の前記第1のタイプのコア又は前記第2の複数の前記第2のタイプのコアのいずれかの1つにスレッドを割り当てるためのモジュールとを含むプロセッサと、
    音声入出力ロジックと、
    前記プロセッサを前記音声入出力ロジックに接続するためのインターフェースと
    を備えるシステム。
  50. 前記モジュールは、電力バジェットに従って前記スレッドを割り当てる、請求項47に記載のシステム。
  51. 前記モジュールは、割り当て表に従って前記スレッドを割り当てる、請求項47に記載のシステム。
  52. 前記モジュールは、前記第2の複数のコアの1つに新しいスレッドを割り当てると共に、前記第1の複数のコアの1つから前記第2の複数のコアの1つへ既存のスレッドをマイグレーションするためのスレッドマイグレーションロジックを含む、請求項47に記載のシステム。
  53. 前記スレッドマイグレーションロジックは、論理コアを物理コアにマッピングするための表を含む、請求項50に記載のシステム。
  54. プロセッサであって、
    一組のスレッドを一組のプロセッサコアに割り当てる手段と、
    該プロセッサコアの消費電力を監視する手段と、
    該消費電力と所望の電力との間の誤差値を計算する手段と、
    該誤差値に基づいて前記割り当てから移行する手段と
    を備えるプロセッサ。
  55. 前記移行する手段は、前記一組のプロセッサコアにおける性能の高い方のコア及び性能の低い方のコアの間で、前記一組のスレッドの前記割り当てを変更する手段を含む、請求項52に記載のプロセッサ。
  56. 前記移行する手段は、前記一組のプロセッサコアにおいて性能の高い方のコア及び性能の低い方のコアを構成することによって、前記性能の高い方のコア及び前記性能の低い方のコアの間で、前記一組のスレッドの前記割り当てを変更する手段を含む、請求項52に記載のプロセッサ。
  57. 前記誤差値を時間にわたって積分する手段をさらに備える、請求項52に記載のプロセッサ。
  58. 前記誤差値を時間にわたってサンプリングする手段をさらに備える、請求項52に記載のプロセッサ。
  59. 一組の実行スレッドを決定する手段と、
    該スレッドのそれぞれを、一組のプロセッサコアの1つに割り当てる手段と
    を備えるプロセッサであって、前記割り当てる手段は、電力バジェットに応答する、プロセッサ。
  60. 前記一組のプロセッサコアは、第1のタイプのコア及び第2のタイプのコアとして動作することができる構成可能なコアを含む、請求項56に記載のプロセッサ。
  61. 前記一組のプロセッサコアは、第1のタイプのコア及び第2のタイプのコアとして設計されるコアを含む、請求項56に記載のプロセッサ。
  62. 前記一組のプロセッサコアから第2のタイプのコアに新しいスレッドを割り当てる手段と、前記一組のプロセッサコアにおける第1のタイプのコアから前記第2のタイプのコアへ、前記一組の実行スレッドのうちの1つをマイグレーションする手段とをさらに備える、請求項56に記載のプロセッサ。
JP2015257488A 2004-09-28 2015-12-28 利用可能な並列性の量に従って1命令当たりのエネルギーを変化させるための方法及び装置 Active JP6289444B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/952,627 2004-09-28
US10/952,627 US7437581B2 (en) 2004-09-28 2004-09-28 Method and apparatus for varying energy per instruction according to the amount of available parallelism

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2014204987A Division JP6049668B2 (ja) 2004-09-28 2014-10-03 利用可能な並列性の量に従って1命令当たりのエネルギーを変化させるためのシステム

Publications (2)

Publication Number Publication Date
JP2016076268A true JP2016076268A (ja) 2016-05-12
JP6289444B2 JP6289444B2 (ja) 2018-03-07

Family

ID=35759336

Family Applications (6)

Application Number Title Priority Date Filing Date
JP2007533787A Expired - Fee Related JP4898687B2 (ja) 2004-09-28 2005-09-28 利用可能な並列性の量に従って1命令当たりのエネルギーを変化させるための方法及び装置
JP2009232857A Pending JP2010092483A (ja) 2004-09-28 2009-10-06 利用可能な並列性の量に従って1命令当たりのエネルギーを変化させるための方法及び装置
JP2011123762A Active JP5465215B2 (ja) 2004-09-28 2011-06-01 利用可能な並列性の量に従って1命令当たりのエネルギーを変化させるための方法及び装置
JP2013123127A Active JP5709938B2 (ja) 2004-09-28 2013-06-11 プロセッサ、コンピュータシステム、および方法
JP2014204987A Active JP6049668B2 (ja) 2004-09-28 2014-10-03 利用可能な並列性の量に従って1命令当たりのエネルギーを変化させるためのシステム
JP2015257488A Active JP6289444B2 (ja) 2004-09-28 2015-12-28 利用可能な並列性の量に従って1命令当たりのエネルギーを変化させるための方法及び装置

Family Applications Before (5)

Application Number Title Priority Date Filing Date
JP2007533787A Expired - Fee Related JP4898687B2 (ja) 2004-09-28 2005-09-28 利用可能な並列性の量に従って1命令当たりのエネルギーを変化させるための方法及び装置
JP2009232857A Pending JP2010092483A (ja) 2004-09-28 2009-10-06 利用可能な並列性の量に従って1命令当たりのエネルギーを変化させるための方法及び装置
JP2011123762A Active JP5465215B2 (ja) 2004-09-28 2011-06-01 利用可能な並列性の量に従って1命令当たりのエネルギーを変化させるための方法及び装置
JP2013123127A Active JP5709938B2 (ja) 2004-09-28 2013-06-11 プロセッサ、コンピュータシステム、および方法
JP2014204987A Active JP6049668B2 (ja) 2004-09-28 2014-10-03 利用可能な並列性の量に従って1命令当たりのエネルギーを変化させるためのシステム

Country Status (6)

Country Link
US (1) US7437581B2 (ja)
JP (6) JP4898687B2 (ja)
KR (1) KR100880060B1 (ja)
CN (1) CN100565426C (ja)
TW (1) TWI315847B (ja)
WO (1) WO2006037119A2 (ja)

Families Citing this family (198)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6895520B1 (en) 2001-03-02 2005-05-17 Advanced Micro Devices, Inc. Performance and power optimization via block oriented performance measurement and control
US7227383B2 (en) * 2004-02-19 2007-06-05 Mosaid Delaware, Inc. Low leakage and data retention circuitry
US7702848B2 (en) * 2004-06-10 2010-04-20 Marvell World Trade Ltd. Adaptive storage system including hard disk drive with flash interface
US7788427B1 (en) 2005-05-05 2010-08-31 Marvell International Ltd. Flash memory interface for disk drive
US20070094444A1 (en) * 2004-06-10 2007-04-26 Sehat Sutardja System with high power and low power processors and thread transfer
US7730335B2 (en) 2004-06-10 2010-06-01 Marvell World Trade Ltd. Low power computer with main and auxiliary processors
US20070083785A1 (en) * 2004-06-10 2007-04-12 Sehat Sutardja System with high power and low power processors and thread transfer
US8607241B2 (en) 2004-06-30 2013-12-10 Intel Corporation Compare and exchange operation using sleep-wakeup mechanism
US7437581B2 (en) * 2004-09-28 2008-10-14 Intel Corporation Method and apparatus for varying energy per instruction according to the amount of available parallelism
US7603571B2 (en) * 2004-10-08 2009-10-13 Dell Products L.P. System and method for regulating the power consumption of a computer system
US8719819B2 (en) 2005-06-30 2014-05-06 Intel Corporation Mechanism for instruction set based thread execution on a plurality of instruction sequencers
US20100281245A1 (en) * 2005-01-12 2010-11-04 Nxp B.V. Method and apparatus for tuning a digital system
US20060294401A1 (en) * 2005-06-24 2006-12-28 Dell Products L.P. Power management of multiple processors
US7613935B2 (en) * 2005-07-29 2009-11-03 Hewlett-Packard Development Company, L.P. Power monitoring for processor module
US7461275B2 (en) 2005-09-30 2008-12-02 Intel Corporation Dynamic core swapping
US8108863B2 (en) 2005-12-30 2012-01-31 Intel Corporation Load balancing for multi-threaded applications via asymmetric power throttling
US7802073B1 (en) 2006-03-29 2010-09-21 Oracle America, Inc. Virtual core management
US20080005591A1 (en) 2006-06-28 2008-01-03 Trautman Mark A Method, system, and apparatus for dynamic thermal management
US7836212B2 (en) * 2006-07-20 2010-11-16 Oracle America, Inc. Reflecting bandwidth and priority in network attached storage I/O
US20080263324A1 (en) 2006-08-10 2008-10-23 Sehat Sutardja Dynamic core switching
US7941805B2 (en) * 2006-08-15 2011-05-10 International Business Machines Corporation Affinity dispatching load balancer with precise CPU consumption data
GB2443277B (en) * 2006-10-24 2011-05-18 Advanced Risc Mach Ltd Performing diagnostics operations upon an asymmetric multiprocessor apparatus
US8060765B1 (en) * 2006-11-02 2011-11-15 Nvidia Corporation Power estimation based on block activity
US8429656B1 (en) * 2006-11-02 2013-04-23 Nvidia Corporation Thread count throttling for efficient resource utilization
US8117478B2 (en) 2006-12-29 2012-02-14 Intel Corporation Optimizing power usage by processor cores based on architectural events
US7793125B2 (en) * 2007-01-10 2010-09-07 International Business Machines Corporation Method and apparatus for power throttling a processor in an information handling system
US8022685B2 (en) * 2007-02-06 2011-09-20 International Business Machines Corporation Temperature dependent voltage source compensation
US7779235B2 (en) * 2007-02-06 2010-08-17 International Business Machines Corporation Using performance data for instruction thread direction
US7971035B2 (en) 2007-02-06 2011-06-28 International Business Machines Corporation Using temperature data for instruction thread direction
US7936153B2 (en) * 2007-02-06 2011-05-03 International Business Machines Corporation On-chip adaptive voltage compensation
US7895454B2 (en) * 2007-02-06 2011-02-22 International Business Machines Corporation Instruction dependent dynamic voltage compensation
US8615767B2 (en) * 2007-02-06 2013-12-24 International Business Machines Corporation Using IR drop data for instruction thread direction
US7865750B2 (en) * 2007-02-06 2011-01-04 International Business Machines Corporation Fan speed control from adaptive voltage supply
US7900069B2 (en) * 2007-03-29 2011-03-01 Intel Corporation Dynamic power reduction
US8161482B1 (en) * 2007-04-13 2012-04-17 Marvell International Ltd. Power optimization for multi-core devices
US7734873B2 (en) * 2007-05-29 2010-06-08 Advanced Micro Devices, Inc. Caching of microcode emulation memory
KR100801630B1 (ko) * 2007-06-15 2008-02-05 디비코 주식회사 멀티코어 프로세서를 이용한 분산 디코딩 처리 장치 및방법
US7865751B2 (en) 2007-06-18 2011-01-04 Intel Corporation Microarchitecture controller for thin-film thermoelectric cooling
US7797512B1 (en) 2007-07-23 2010-09-14 Oracle America, Inc. Virtual core management
JP4834625B2 (ja) * 2007-07-31 2011-12-14 株式会社東芝 電源管理装置及び電源管理方法
US7797131B2 (en) * 2007-08-24 2010-09-14 International Business Machines Corporation On-chip frequency response measurement
US8185572B2 (en) * 2007-08-24 2012-05-22 International Business Machines Corporation Data correction circuit
US8005880B2 (en) * 2007-08-24 2011-08-23 International Business Machines Corporation Half width counting leading zero circuit
US8365184B2 (en) 2007-08-31 2013-01-29 Apple Inc. Multi-core resource utilization planning
US8555283B2 (en) * 2007-10-12 2013-10-08 Oracle America, Inc. Temperature-aware and energy-aware scheduling in a computer system
US8032772B2 (en) * 2007-11-15 2011-10-04 Intel Corporation Method, apparatus, and system for optimizing frequency and performance in a multi-die microprocessor
US8302098B2 (en) * 2007-12-06 2012-10-30 Oracle America, Inc. Hardware utilization-aware thread management in multithreaded computer systems
US7996346B2 (en) 2007-12-19 2011-08-09 International Business Machines Corporation Method for autonomic workload distribution on a multicore processor
US7962770B2 (en) * 2007-12-19 2011-06-14 International Business Machines Corporation Dynamic processor reconfiguration for low power without reducing performance based on workload execution characteristics
KR101400286B1 (ko) 2008-01-22 2014-05-26 삼성전자주식회사 다중 프로세서 시스템에서 작업을 이동시키는 방법 및 장치
CN101493761B (zh) 2008-01-25 2013-05-29 国际商业机器公司 处理器流水线处理指令的方法及相应的处理器
KR100951671B1 (ko) * 2008-02-14 2010-04-07 사단법인 한국전자정보통신산업진흥회 멀티미디어 ic칩의 전력제어 장치 및 방법
US8028180B2 (en) * 2008-02-20 2011-09-27 International Business Machines Corporation Method and system for power conservation in a hierarchical branch predictor
US8615647B2 (en) 2008-02-29 2013-12-24 Intel Corporation Migrating execution of thread between cores of different instruction set architecture in multi-core processor and transitioning each core to respective on / off power state
KR100950874B1 (ko) * 2008-03-06 2010-04-06 주식회사 텔레칩스 동적 전압 제어 시스템 및 그 제어 방법
US20090235108A1 (en) * 2008-03-11 2009-09-17 Gold Spencer M Automatic processor overclocking
US8010822B2 (en) 2008-03-28 2011-08-30 Microsoft Corporation Power-aware thread scheduling and dynamic use of processors
US8448002B2 (en) * 2008-04-10 2013-05-21 Nvidia Corporation Clock-gated series-coupled data processing modules
US20110213998A1 (en) * 2008-06-11 2011-09-01 John George Mathieson System and Method for Power Optimization
US20110213950A1 (en) * 2008-06-11 2011-09-01 John George Mathieson System and Method for Power Optimization
US20110213947A1 (en) * 2008-06-11 2011-09-01 John George Mathieson System and Method for Power Optimization
US7921280B2 (en) * 2008-06-27 2011-04-05 Intel Corporation Selectively powered retirement unit using a partitioned allocation array and a partitioned writeback array
US8892916B2 (en) * 2008-08-06 2014-11-18 International Business Machines Corporation Dynamic core pool management
CN101661406A (zh) * 2008-08-28 2010-03-03 国际商业机器公司 处理单元调度装置和方法
GB2476606B (en) 2008-09-08 2012-08-08 Virginia Tech Intell Prop Systems, devices, and methods for managing energy usage
US9189268B2 (en) * 2008-10-10 2015-11-17 Netapp, Inc. Limiting simultaneous data transfers and efficient throttle management
JP5300005B2 (ja) * 2008-11-28 2013-09-25 インターナショナル・ビジネス・マシーンズ・コーポレーション スレッド実行制御方法、およびシステム
US9323306B2 (en) * 2008-12-03 2016-04-26 Telefonaktiebolaget Lm Ericsson (Publ) Energy based time scheduler for parallel computing system
US8214672B2 (en) * 2009-01-07 2012-07-03 Micron Technology, Inc. Method and systems for power consumption management of a pattern-recognition processor
US20100192012A1 (en) * 2009-01-26 2010-07-29 Sun Microsystems, Inc. Testing multi-core processors in a system
FR2941799B1 (fr) * 2009-01-30 2011-03-04 St Nxp Wireless France Procede et systeme de gestion du fonctionnement d'un dispositif de traitement de donnees multicoeurs
US8316368B2 (en) * 2009-02-05 2012-11-20 Honeywell International Inc. Safe partition scheduling on multi-core processors
US8707061B2 (en) * 2009-03-27 2014-04-22 Qualcomm Incorporated System and method of providing scalable computing between a portable computing device and a portable computing device docking station
US20100262966A1 (en) * 2009-04-14 2010-10-14 International Business Machines Corporation Multiprocessor computing device
US9569270B2 (en) * 2009-04-21 2017-02-14 Empire Technology Development Llc Mapping thread phases onto heterogeneous cores based on execution characteristics and cache line eviction counts
US20110066830A1 (en) * 2009-09-11 2011-03-17 Andrew Wolfe Cache prefill on thread migration
US9189282B2 (en) * 2009-04-21 2015-11-17 Empire Technology Development Llc Thread-to-core mapping based on thread deadline, thread demand, and hardware characteristics data collected by a performance counter
US8881157B2 (en) * 2009-09-11 2014-11-04 Empire Technology Development Llc Allocating threads to cores based on threads falling behind thread completion target deadline
KR101572879B1 (ko) * 2009-04-29 2015-12-01 삼성전자주식회사 병렬 응용 프로그램을 동적으로 병렬처리 하는 시스템 및 방법
US20110022870A1 (en) * 2009-07-21 2011-01-27 Microsoft Corporation Component power monitoring and workload optimization
US8856794B2 (en) * 2009-10-13 2014-10-07 Empire Technology Development Llc Multicore runtime management using process affinity graphs
US8635606B2 (en) * 2009-10-13 2014-01-21 Empire Technology Development Llc Dynamic optimization using a resource cost registry
US8892931B2 (en) 2009-10-20 2014-11-18 Empire Technology Development Llc Power channel monitor for a multicore processor
US9098274B2 (en) 2009-12-03 2015-08-04 Intel Corporation Methods and apparatuses to improve turbo performance for events handling
US8397238B2 (en) * 2009-12-08 2013-03-12 Qualcomm Incorporated Thread allocation and clock cycle adjustment in an interleaved multi-threaded processor
US9501705B2 (en) 2009-12-15 2016-11-22 Micron Technology, Inc. Methods and apparatuses for reducing power consumption in a pattern recognition processor
US8775830B2 (en) * 2009-12-16 2014-07-08 Qualcomm Incorporated System and method for dynamically controlling a plurality of cores in a multicore central processing unit based on temperature
US8689037B2 (en) * 2009-12-16 2014-04-01 Qualcomm Incorporated System and method for asynchronously and independently controlling core clocks in a multicore central processing unit
US8650426B2 (en) 2009-12-16 2014-02-11 Qualcomm Incorporated System and method for controlling central processing unit power in a virtualized system
US9104411B2 (en) 2009-12-16 2015-08-11 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US9563250B2 (en) * 2009-12-16 2017-02-07 Qualcomm Incorporated System and method for controlling central processing unit power based on inferred workload parallelism
US8909962B2 (en) 2009-12-16 2014-12-09 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US20110145559A1 (en) * 2009-12-16 2011-06-16 Thomson Steven S System and method for controlling central processing unit power with guaranteed steady state deadlines
US9128705B2 (en) 2009-12-16 2015-09-08 Qualcomm Incorporated System and method for controlling central processing unit power with reduced frequency oscillations
US9176572B2 (en) 2009-12-16 2015-11-03 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US8549330B2 (en) * 2009-12-18 2013-10-01 International Business Machines Corporation Dynamic energy management
KR101155202B1 (ko) * 2009-12-24 2012-06-13 포항공과대학교 산학협력단 멀티 코어 프로세서의 전력 관리 방법, 멀티 코어 프로세서의 전력 관리 방법이 기록된 기록매체 및 이를 실행하는 멀티 코어 프로세서 시스템
US8356194B2 (en) 2010-01-28 2013-01-15 Cavium, Inc. Method and apparatus for estimating overshoot power after estimating power of executing events
US8549339B2 (en) * 2010-02-26 2013-10-01 Empire Technology Development Llc Processor core communication in multi-core processor
US8418187B2 (en) * 2010-03-01 2013-04-09 Arm Limited Virtualization software migrating workload between processing circuitries while making architectural states available transparent to operating system
KR101653204B1 (ko) * 2010-03-16 2016-09-01 삼성전자주식회사 멀티 코어 시스템에서 데이터 병렬 처리를 위한 동적 태스크 관리 시스템 및 방법
EP2581830A4 (en) * 2010-06-10 2017-01-11 Fujitsu Limited Multi-core processor system, method of power control, and power control program
GB2481232A (en) * 2010-06-16 2011-12-21 Advanced Risc Mach Ltd Cache for a multiprocessor system which can treat a local access operation as a shared access operation
US20110320766A1 (en) * 2010-06-29 2011-12-29 Youfeng Wu Apparatus, method, and system for improving power, performance efficiency by coupling a first core type with a second core type
US8689021B1 (en) * 2010-09-10 2014-04-01 Marvell International Ltd. System and method for selecting a power management configuration in a multi-core environment according to various operating conditions such as voltage, frequency, power mode, and utilization factor varied on a per-core basis
US8495395B2 (en) * 2010-09-14 2013-07-23 Advanced Micro Devices Mechanism for controlling power consumption in a processing node
US8943334B2 (en) * 2010-09-23 2015-01-27 Intel Corporation Providing per core voltage and frequency control
US8677361B2 (en) 2010-09-30 2014-03-18 International Business Machines Corporation Scheduling threads based on an actual power consumption and a predicted new power consumption
US8656408B2 (en) 2010-09-30 2014-02-18 International Business Machines Corporations Scheduling threads in a processor based on instruction type power consumption
EP2442228A1 (en) 2010-10-13 2012-04-18 Thomas Lippert A computer cluster arrangement for processing a computaton task and method for operation thereof
US9317082B2 (en) 2010-10-13 2016-04-19 Advanced Micro Devices, Inc. Controlling operation of temperature sensors
JP5364070B2 (ja) * 2010-10-20 2013-12-11 株式会社日立製作所 仮想サーバ管理装置
KR101738641B1 (ko) 2010-12-17 2017-05-23 삼성전자주식회사 멀티 코어 시스템의 프로그램 컴파일 장치 및 방법
US8706789B2 (en) * 2010-12-22 2014-04-22 Intel Corporation Performing reciprocal instructions with high accuracy
US8972707B2 (en) * 2010-12-22 2015-03-03 Via Technologies, Inc. Multi-core processor with core selectively disabled by kill instruction of system software and resettable only via external pin
JP5644866B2 (ja) * 2011-01-13 2014-12-24 富士通株式会社 スケジューリング方法及びスケジューリングシステム
JP5568491B2 (ja) 2011-01-31 2014-08-06 ルネサスエレクトロニクス株式会社 マルチプロセッサ装置
US9513966B2 (en) * 2011-02-17 2016-12-06 Siemens Aktiengesellschaft Parallel processing in human-machine interface applications
US8683243B2 (en) * 2011-03-11 2014-03-25 Intel Corporation Dynamic core selection for heterogeneous multi-core systems
US8695008B2 (en) * 2011-04-05 2014-04-08 Qualcomm Incorporated Method and system for dynamically controlling power to multiple cores in a multicore processor of a portable computing device
US8910177B2 (en) * 2011-04-14 2014-12-09 Advanced Micro Devices, Inc. Dynamic mapping of logical cores
US8782645B2 (en) * 2011-05-11 2014-07-15 Advanced Micro Devices, Inc. Automatic load balancing for heterogeneous cores
US8683468B2 (en) 2011-05-16 2014-03-25 Advanced Micro Devices, Inc. Automatic kernel migration for heterogeneous cores
EP2681656B1 (de) * 2011-05-17 2017-01-18 Siemens Aktiengesellschaft Multicore host-system mit einer echtzeit-erweiterung und verfahren zum betreiben eines solchen host-systems
US9088951B2 (en) 2011-05-25 2015-07-21 Qualcomm Incorporated Dynamic feature-aware power management
US8661279B2 (en) * 2011-07-19 2014-02-25 Hewlett-Packard Development Company, L.P. Power capping using C-states
JP5786641B2 (ja) * 2011-10-25 2015-09-30 富士通株式会社 携帯端末装置の制御方法、制御プログラム及び携帯端末装置
US9347836B2 (en) 2011-11-15 2016-05-24 Ati Technologies Ulc Dynamic voltage reference for sampling delta based temperature sensor
US8862909B2 (en) 2011-12-02 2014-10-14 Advanced Micro Devices, Inc. System and method for determining a power estimate for an I/O controller based on monitored activity levels and adjusting power limit of processing units by comparing the power estimate with an assigned power limit for the I/O controller
US8924758B2 (en) 2011-12-13 2014-12-30 Advanced Micro Devices, Inc. Method for SOC performance and power optimization
US9304570B2 (en) * 2011-12-15 2016-04-05 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including power and performance workload-based balancing between multiple processing elements
US9075610B2 (en) * 2011-12-15 2015-07-07 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including thread consolidation
US9569278B2 (en) 2011-12-22 2017-02-14 Intel Corporation Asymmetric performance multicore architecture with same instruction set architecture
US9436512B2 (en) * 2011-12-22 2016-09-06 Board Of Supervisors Of Louisana State University And Agricultural And Mechanical College Energy efficient job scheduling in heterogeneous chip multiprocessors based on dynamic program behavior using prim model
US9727388B2 (en) 2011-12-29 2017-08-08 Intel Corporation Migrating threads between asymmetric cores in a multiple core processor
US9710306B2 (en) * 2012-04-09 2017-07-18 Nvidia Corporation Methods and apparatus for auto-throttling encapsulated compute tasks
US20130283280A1 (en) * 2012-04-20 2013-10-24 Qualcomm Incorporated Method to reduce multi-threaded processor power consumption
US9003218B2 (en) 2012-05-21 2015-04-07 International Business Machines Corporation Power shifting in multicore platforms by varying SMT levels
US9569279B2 (en) 2012-07-31 2017-02-14 Nvidia Corporation Heterogeneous multiprocessor design for power-efficient and area-efficient computing
JP2014048972A (ja) * 2012-08-31 2014-03-17 Fujitsu Ltd 処理装置、情報処理装置、及び消費電力管理方法
WO2014105010A1 (en) * 2012-12-26 2014-07-03 Intel Corporation Thread migration support for architectually different cores
US9195285B2 (en) * 2012-12-27 2015-11-24 Intel Corporation Techniques for platform duty cycling
US9417873B2 (en) * 2012-12-28 2016-08-16 Intel Corporation Apparatus and method for a hybrid latency-throughput processor
US9361116B2 (en) 2012-12-28 2016-06-07 Intel Corporation Apparatus and method for low-latency invocation of accelerators
US10162687B2 (en) * 2012-12-28 2018-12-25 Intel Corporation Selective migration of workloads between heterogeneous compute elements based on evaluation of migration performance benefit and available energy and thermal budgets
US20140189302A1 (en) * 2012-12-28 2014-07-03 Intel Corporation Optimal logical processor count and type selection for a given workload based on platform thermals and power budgeting constraints
US10140129B2 (en) 2012-12-28 2018-11-27 Intel Corporation Processing core having shared front end unit
US10346195B2 (en) 2012-12-29 2019-07-09 Intel Corporation Apparatus and method for invocation of a multi threaded accelerator
KR102082859B1 (ko) 2013-01-07 2020-02-28 삼성전자주식회사 복수의 이종 코어들을 포함하는 시스템 온 칩 및 그 동작 방법
US9575542B2 (en) * 2013-01-31 2017-02-21 Hewlett Packard Enterprise Development Lp Computer power management
US9727345B2 (en) 2013-03-15 2017-08-08 Intel Corporation Method for booting a heterogeneous system and presenting a symmetric core view
US10423216B2 (en) * 2013-03-26 2019-09-24 Via Technologies, Inc. Asymmetric multi-core processor with native switching mechanism
US9383806B2 (en) 2013-04-17 2016-07-05 Apple Inc. Multi-core processor instruction throttling
US9588570B2 (en) * 2013-04-30 2017-03-07 Samsung Electronics Co., Ltd. Apparatus and method for adjusting bandwidth
CN105210038B (zh) 2013-05-15 2018-10-30 英派尔科技开发有限公司 核亲和性位掩码变换
US9195291B2 (en) 2013-06-21 2015-11-24 Apple Inc. Digital power estimator to control processor power consumption
US9304573B2 (en) 2013-06-21 2016-04-05 Apple Inc. Dynamic voltage and frequency management based on active processors
JP6171658B2 (ja) * 2013-07-19 2017-08-02 富士通株式会社 並列処理最適化プログラム、並列処理最適化方法および情報処理装置
CN104346226A (zh) * 2013-08-09 2015-02-11 联想(北京)有限公司 处理器频率控制方法及电子设备
US9671844B2 (en) 2013-09-26 2017-06-06 Cavium, Inc. Method and apparatus for managing global chip power on a multicore system on chip
US10503513B2 (en) * 2013-10-23 2019-12-10 Nvidia Corporation Dispatching a stored instruction in response to determining that a received instruction is of a same instruction type
US9606605B2 (en) 2014-03-07 2017-03-28 Apple Inc. Dynamic voltage margin recovery
US9575867B2 (en) 2014-10-21 2017-02-21 International Business Machines Corporation Processor stressmarks generation
US9588863B2 (en) 2014-10-21 2017-03-07 International Business Machines Corporation Generation and application of stressmarks in a computer system
US20160147536A1 (en) * 2014-11-24 2016-05-26 International Business Machines Corporation Transitioning the Processor Core from Thread to Lane Mode and Enabling Data Transfer Between the Two Modes
US9696787B2 (en) * 2014-12-10 2017-07-04 Qualcomm Innovation Center, Inc. Dynamic control of processors to reduce thermal and power costs
KR102352756B1 (ko) 2015-04-29 2022-01-17 삼성전자주식회사 애플리케이션 프로세서, 시스템 온 칩, 및 이를 포함하는 컴퓨팅 장치
US10235219B2 (en) * 2015-07-27 2019-03-19 Sony Interactive Entertainment America Llc Backward compatibility by algorithm matching, disabling features, or throttling performance
US9740266B2 (en) * 2015-09-04 2017-08-22 Mediatek Inc. Apparatus and method for controlling multi-core of electronic device
US9891926B2 (en) * 2015-09-30 2018-02-13 International Business Machines Corporation Heterogeneous core microarchitecture
JP6631374B2 (ja) * 2016-04-13 2020-01-15 富士通株式会社 情報処理装置、動作状況収集プログラム及び動作状況収集方法
US10296460B2 (en) * 2016-06-29 2019-05-21 Oracle International Corporation Prefetch bandwidth throttling by dynamically adjusting miss buffer prefetch-dropping thresholds
CN106155815A (zh) * 2016-07-21 2016-11-23 张升泽 电流在多个内核中的分配方法及系统
CN106292976A (zh) * 2016-07-21 2017-01-04 张升泽 电子芯片内部电压分配方法及系统
WO2018014298A1 (zh) * 2016-07-21 2018-01-25 张升泽 电子芯片内部电压分配方法及系统
WO2018018371A1 (zh) * 2016-07-25 2018-02-01 张升泽 多核芯片电压计算方法及系统
CN106201726A (zh) * 2016-07-26 2016-12-07 张升泽 多内核芯片线程分配方法及系统
WO2018018424A1 (zh) * 2016-07-26 2018-02-01 张升泽 基于芯片的温度控制方法及系统
CN106250235A (zh) * 2016-07-26 2016-12-21 张升泽 基于多内核芯片的多任务调度方法及系统
WO2018018451A1 (zh) * 2016-07-27 2018-02-01 李媛媛 电子芯片中的功率分配方法及系统
WO2018018449A1 (zh) * 2016-07-27 2018-02-01 李媛媛 基于多核芯片的电压降低方法及系统
WO2018018448A1 (zh) * 2016-07-27 2018-02-01 李媛媛 芯片中温度降低方法及系统
CN106227604A (zh) * 2016-07-27 2016-12-14 李媛媛 芯片中温度降低方法及系统
CN106292995A (zh) * 2016-07-27 2017-01-04 李媛媛 电流限制在多核芯片中的应用方法及系统
WO2018018450A1 (zh) * 2016-07-27 2018-02-01 李媛媛 电流限制在多核芯片中的应用方法及系统
CN106292996A (zh) * 2016-07-27 2017-01-04 李媛媛 基于多核芯片的电压降低方法及系统
US10372494B2 (en) * 2016-11-04 2019-08-06 Microsoft Technology Licensing, Llc Thread importance based processor core partitioning
US11295204B2 (en) * 2017-01-06 2022-04-05 International Business Machines Corporation Area-efficient, reconfigurable, energy-efficient, speed-efficient neural network substrate
KR102643797B1 (ko) * 2017-01-10 2024-03-05 삼성전자주식회사 동적 발열 관리 방법
US10491524B2 (en) 2017-11-07 2019-11-26 Advanced Micro Devices, Inc. Load balancing scheme
CN108107782B (zh) * 2017-12-18 2021-04-16 宁波三星医疗电气股份有限公司 一种用于电力能源采集设备的自控并发数据采集方法
DE112018007177T5 (de) * 2018-02-28 2020-12-10 Intel Corporation Steuerung einer verarbeitungsleistungsstufe abhängig vom energieverbrauch
CN110347508A (zh) * 2019-07-02 2019-10-18 Oppo广东移动通信有限公司 应用程序的线程分配方法、装置、设备及可读存储介质
CN110347486B (zh) * 2019-07-02 2023-09-15 Oppo广东移动通信有限公司 应用程序的线程分配方法、装置、设备及可读存储介质
US10948957B1 (en) 2019-09-26 2021-03-16 Apple Inc. Adaptive on-chip digital power estimator
US11321123B2 (en) * 2019-11-21 2022-05-03 International Business Machines Corporation Determining an optimum number of threads to make available per core in a multi-core processor complex to executive tasks
CN112181124B (zh) * 2020-09-11 2023-09-01 华为技术有限公司 功耗管理的方法和相关设备
CN115904647A (zh) * 2021-09-30 2023-04-04 荣耀终端有限公司 一种任务调度方法、电子设备、芯片系统及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09138716A (ja) * 1995-11-14 1997-05-27 Toshiba Corp 電子計算機
US20010003207A1 (en) * 1998-12-23 2001-06-07 Intel Corporation Method and apparatus of measuring power consumption in a computer system to meet the power delivery specifications of a power outlet
JP2002202893A (ja) * 2000-10-24 2002-07-19 Texas Instruments Inc 多重タスクの実行を制御する方法と処理回路
US20030110012A1 (en) * 2001-12-06 2003-06-12 Doron Orenstien Distribution of processing activity across processing hardware based on power consumption considerations
US20040010679A1 (en) * 2002-07-09 2004-01-15 Moritz Csaba Andras Reducing processor energy consumption by controlling processor resources
US6711447B1 (en) * 2003-01-22 2004-03-23 Intel Corporation Modulating CPU frequency and voltage in a multi-core CPU architecture
US20050034002A1 (en) * 2003-08-04 2005-02-10 Krisztian Flautner Performance control within a multi-processor system

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01155459A (ja) * 1987-12-14 1989-06-19 Hitachi Ltd プロセツサおよび並列計算機
US5392437A (en) * 1992-11-06 1995-02-21 Intel Corporation Method and apparatus for independently stopping and restarting functional units
JP3696901B2 (ja) * 1994-07-19 2005-09-21 キヤノン株式会社 負荷分散方法
US5719800A (en) 1995-06-30 1998-02-17 Intel Corporation Performance throttling to reduce IC power consumption
US6411156B1 (en) 1997-06-20 2002-06-25 Intel Corporation Employing transistor body bias in controlling chip parameters
JPH11338719A (ja) * 1998-05-28 1999-12-10 Fujitsu Ltd 計算機システム
FR2784457B1 (fr) * 1998-10-13 2001-01-05 Sextant Avionique Instruments combines de secours pour aeronef
JP2000222376A (ja) * 1999-01-29 2000-08-11 Toshiba Corp 計算機システムとその運用方法
JP2000322259A (ja) * 1999-05-11 2000-11-24 Hitachi Ltd データ処理装置
US20020023123A1 (en) * 1999-07-26 2002-02-21 Justin P. Madison Geographic data locator
US6564328B1 (en) 1999-12-23 2003-05-13 Intel Corporation Microprocessor with digital power throttle
JP2002007367A (ja) * 2000-06-19 2002-01-11 Nec Corp モナーク・プロセッサの仮想管理による切り替え方法
JP2002108958A (ja) * 2000-09-26 2002-04-12 Toshiba Corp 回路設計システム、回路設計方法および回路設計プログラムを格納したコンピュータ読取り可能な記録媒体
JP2002132741A (ja) * 2000-10-20 2002-05-10 Hitachi Ltd プロセッサ追加方法、計算機及び記録媒体
EP1330699B1 (en) * 2000-10-31 2010-12-22 Millennial Net, Inc Networked processing system with optimized power efficiency
US6901522B2 (en) * 2001-06-07 2005-05-31 Intel Corporation System and method for reducing power consumption in multiprocessor system
US7487505B2 (en) * 2001-08-27 2009-02-03 Intel Corporation Multithreaded microprocessor with register allocation based on number of active threads
JP2003131900A (ja) * 2001-10-24 2003-05-09 Hitachi Ltd サーバシステム運用管理方式
US6639428B2 (en) 2001-12-20 2003-10-28 Advanced Technology Materials, Inc. Method and system for dynamically clocking digital systems based on power usage
US7080379B2 (en) * 2002-06-20 2006-07-18 International Business Machines Corporation Multiprocessor load balancing system for prioritizing threads and assigning threads into one of a plurality of run queues based on a priority band and a current load of the run queue
US7360220B2 (en) * 2002-10-31 2008-04-15 Intel Corporation Methods and apparatus for multi-threading using differently coded software segments to perform an algorithm
US20050155032A1 (en) * 2004-01-12 2005-07-14 Schantz John L. Dynamic load balancing
US20070094444A1 (en) * 2004-06-10 2007-04-26 Sehat Sutardja System with high power and low power processors and thread transfer
US7437581B2 (en) * 2004-09-28 2008-10-14 Intel Corporation Method and apparatus for varying energy per instruction according to the amount of available parallelism

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09138716A (ja) * 1995-11-14 1997-05-27 Toshiba Corp 電子計算機
US20010003207A1 (en) * 1998-12-23 2001-06-07 Intel Corporation Method and apparatus of measuring power consumption in a computer system to meet the power delivery specifications of a power outlet
JP2002202893A (ja) * 2000-10-24 2002-07-19 Texas Instruments Inc 多重タスクの実行を制御する方法と処理回路
US20030110012A1 (en) * 2001-12-06 2003-06-12 Doron Orenstien Distribution of processing activity across processing hardware based on power consumption considerations
US20040010679A1 (en) * 2002-07-09 2004-01-15 Moritz Csaba Andras Reducing processor energy consumption by controlling processor resources
US6711447B1 (en) * 2003-01-22 2004-03-23 Intel Corporation Modulating CPU frequency and voltage in a multi-core CPU architecture
US20050034002A1 (en) * 2003-08-04 2005-02-10 Krisztian Flautner Performance control within a multi-processor system

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
RAKESH KUMAR ET AL.: "A Multi-Core Approach to Addressing the Energy-Complexity Problem in Microprocessors", PROCEEDINGS OF THE WORKSHOP ON COMPLEXITY-EFFECTIVE DESIGN(WCED), JPN6012063624, June 2003 (2003-06-01) *
尾崎敦夫,佐藤裕幸: "並列演算環境における消費電力量低減化方式の検討", 情報処理学会研究報告, vol. 第2004巻,第80号,(2004-ARC-159), JPN6015026237, 31 July 2004 (2004-07-31), JP, pages Pages:175〜180 *
進藤智則,竹居智久: "オンチップの恩恵を生かす高速バスや記憶階層がカギ", 日経エレクトロニクス, vol. 第881号, JPN6015026235, 30 August 2004 (2004-08-30), JP, pages Pages:116〜121 *

Also Published As

Publication number Publication date
US20060095807A1 (en) 2006-05-04
JP6049668B2 (ja) 2016-12-21
JP5465215B2 (ja) 2014-04-09
TW200632742A (en) 2006-09-16
JP2008513912A (ja) 2008-05-01
CN100565426C (zh) 2009-12-02
WO2006037119A2 (en) 2006-04-06
WO2006037119A3 (en) 2007-01-25
US7437581B2 (en) 2008-10-14
JP2015028810A (ja) 2015-02-12
JP2013218721A (ja) 2013-10-24
JP2010092483A (ja) 2010-04-22
JP6289444B2 (ja) 2018-03-07
KR20070049226A (ko) 2007-05-10
KR100880060B1 (ko) 2009-01-22
TWI315847B (en) 2009-10-11
JP2011210275A (ja) 2011-10-20
JP5709938B2 (ja) 2015-04-30
CN101076770A (zh) 2007-11-21
JP4898687B2 (ja) 2012-03-21

Similar Documents

Publication Publication Date Title
JP6289444B2 (ja) 利用可能な並列性の量に従って1命令当たりのエネルギーを変化させるための方法及び装置
Mogul et al. Using asymmetric single-ISA CMPs to save energy on operating systems
TWI550518B (zh) 用於包括執行緒合併之能源效率及能源節約的方法、裝置及系統
US7389403B1 (en) Adaptive computing ensemble microprocessor architecture
EP2257861B1 (en) Power-aware thread scheduling and dynamic use of processors
Abdel-Majeed et al. Warped gates: Gating aware scheduling and power gating for gpgpus
US8190863B2 (en) Apparatus and method for heterogeneous chip multiprocessors via resource allocation and restriction
Attia et al. Dynamic power management techniques in multi-core architectures: A survey study
JP5695766B2 (ja) マルチコアシステムエネルギー消費最適化
US10254819B2 (en) Apparatus and method for activating and shutting down enhanced pipeline stages and enhanced modules based on priority and performance requirements
Tripathy et al. Slumber: static-power management for gpgpu register files
JP2009070389A (ja) 処理装置のためのコントローラ
Ishihara A multi-performance processor for reducing the energy consumption of real-time embedded systems
Leech et al. Energy efficient multi-core processing
Pan et al. Respin: Rethinking Near-Threshold Multiprocessor Design with Non-Volatile Memory
FALAHATI et al. ITAP: Idle-Time-Aware Power Management for GPU Execution Units
Bousias et al. The challenges of massive on-chip concurrency
Kurella ADACORE: Achieving Energy Efficiency via Adaptive Core Morphing at Runtime
Kim Power-Aware Core Management Scheme for Heterogeneous Many-Core Architecture
Bai et al. Reducing issue queue power for multimedia applications using a feedback control algorithm
Gupta et al. Core groups: System abstractions for extending the dynamic range of client devices using heterogeneous cores
Ghose et al. Memory-Aware DVFS for CMP Systems
Lien et al. Energy efficiency and performance of a controlled model for scalable computing systems
Gupta et al. Sustainable Computing: Informatics and Systems

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170207

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170502

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170707

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170807

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180206

R150 Certificate of patent or registration of utility model

Ref document number: 6289444

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250