JP2018501546A - マルチコアプロセッサの熱緩和 - Google Patents

マルチコアプロセッサの熱緩和 Download PDF

Info

Publication number
JP2018501546A
JP2018501546A JP2017523332A JP2017523332A JP2018501546A JP 2018501546 A JP2018501546 A JP 2018501546A JP 2017523332 A JP2017523332 A JP 2017523332A JP 2017523332 A JP2017523332 A JP 2017523332A JP 2018501546 A JP2018501546 A JP 2018501546A
Authority
JP
Japan
Prior art keywords
core
temperature
cores
threshold
determining
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.)
Pending
Application number
JP2017523332A
Other languages
English (en)
Other versions
JP2018501546A5 (ja
Inventor
ミッタル、ラジャット
クリシュナッパ、マダン
チャンドラ、ラジット
タムジディ、モハンマド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2018501546A publication Critical patent/JP2018501546A/ja
Publication of JP2018501546A5 publication Critical patent/JP2018501546A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering 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/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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • 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/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • 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/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • 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
    • 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)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)
  • Molds, Cores, And Manufacturing Methods Thereof (AREA)

Abstract

方法、装置、およびコンピュータプログラム製品が提供される。装置は、ユーザ機器であり得、UEと呼ばれる。UEは、複数のコアを含むプロセッサを有する。複数のコアは、第1のコアおよび残りのコアを含む。UEは、複数のコアのうちの第1のコアの温度を決定する。第1のコアは、負荷を処理する。UEは、第1のコアの温度が、第1のしきい値よりも高いことを決定する。UEは、第1のコアの温度が、第2のしきい値よりも高くないことを決定する。第2のしきい値は、第1のしきい値よりも大きい。UEは、第1のコアの温度が、第1のしきい値よりも高いことを決定することに応じて、第1のコアの負荷の少なくとも一部を、残りのコアのうちの第2のコアへ移動させる。

Description

関連出願に対する相互参照
[0001]本願は、「THERMAL MITIGATION OF MULTI-CORE PROCESSOR」と題され2014年10月30日に出願された米国仮出願番号第62/072,975号と、「THERMAL MITIGATION OF MULTI-CORE PROCESSOR」と題され2015年3月31日に出願された米国特許出願番号第14/675,409号とに対する利益を主張し、この全体が本明細書において参照によって明確に組み込まれた。
[0002]本開示は、一般に、ユーザ機器(UE)に関し、さらに詳しくは、UEにおけるマルチコアプロセッサの熱緩和の技術に関する。
[0003]UEは、多数のコアを有するプロセッサを利用し得る。UEは、セルラ電話、携帯情報端末(「PDA」)、ポータブルゲームコンソール、パームトップコンピュータ、および他のポータブル電子デバイスのようなポータブルコンピューティングデバイス(「PCD」)を含む。いくつかのより小さなUEは、たとえばファンのような能動的な冷却デバイスを有していないことがあり、能動的な冷却デバイスは、ラップトップおよびデスクトップコンピュータのようなより大きなUEにおいてしばしば見出される。したがって、UEのプロセッサの1つまたは複数のコアによって生成された熱を効率的に緩和するためのニーズがある。
[0004]本開示の態様では、方法、コンピュータプログラム製品、および装置が提供される。装置は、UEであり得る。UEは、複数のコアを含むプロセッサを有する。複数のコアは、第1のコアおよび残りのコアを含む。UEは、複数のコアのうちの第1のコアの温度を決定する。第1のコアは、負荷を処理する。UEは、第1のコアの温度が、第1のしきい値よりも高いことを決定する。UEは、第1のコアの温度が、第2のしきい値よりも高くないことを決定する。第2のしきい値は、第1のしきい値よりも大きい。UEは、第1のコアの温度が、第1のしきい値よりも高いことを決定することに応じて、第1のコアの負荷の少なくとも一部を、残りのコアのうちの第2のコアへ移動させる。
[0005]図1は、UEの典型的な実施形態を例示する機能ブロック図である。 [0006]図2は、UEの熱緩和手順を例示する図解である。 [0007]図3は、UEにおける温度上昇を例示する図解である。 [0008]図4は、UEの別の熱緩和手順を例示する図解である。 [0009]図5は、UEがプロセッサのコア間で負荷を移動させるための熱緩和手順を例示する図解である。 [0010]図6は、UEがプロセッサのコア間で負荷を分配するための熱緩和手順を例示する図解である。
[0011]添付図面とともに以下に記述される詳細な説明は、様々な構成の説明として意図されており、本明細書に記載された概念が実現され得る唯一の構成を表すことは意図されていない。詳細な説明は、様々な概念の完全な理解を提供することを目的とした具体的な詳細を含む。しかしながら、これら概念は、これら具体的な詳細無しで実現され得ることが当業者に明らかになるであろう。いくつかの事例では、周知の構成および構成要素が、このような概念を曖昧にすることを避けるために、ブロック図形式で図示される。装置および方法は、以下の詳細な説明において説明されるであろう。そして、様々なブロック、モジュール、構成要素、回路、ステップ、処理、アルゴリズム、要素等によって添付図面において例示され得る。
[0012]UEのいくつかの態様が、様々な装置および方法を参照して提示されるであろう。これら装置および方法は、様々なブロック、モジュール、構成要素、回路、ステップ、処理、アルゴリズム等(集合的に「要素」と称される)によって、後述する詳細な説明おいて説明され、添付図面に例示されるであろう。これら要素は、電子ハードウェア、コンピュータソフトウェア、またはそれらの任意の組合せを使用して実施され得る。これら要素がハードウェアとしてまたはソフトウェアとして実施されるか否かは、特定のアプリケーションと、システム全体に課せられる設計制約とに依存する。
[0013]例として、要素、要素の任意の部分、または、要素の任意の組合せは、1つまたは複数のプロセッサを含む「処理システム」を用いて実施され得る。プロセッサの例は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理デバイス(PLD)、ステートマシン、ゲートロジック、ディスクリートハードウェア回路、およびこの開示の全体にわたって説明された様々な機能を実行するように構成された他の適切なハードウェアを含む。処理システムにおける1つまたは複数のプロセッサは、ソフトウェアを実行し得る。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはその他として称されるかに関わらず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行形式、実行スレッド、手順、機能等を意味するように広く解釈されるものとする。
[0014]したがって、1つまたは複数の典型的な実施形態では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、あるいはそれらの任意の組合せによって実施され得る。ソフトウェアにおいて実施される場合、これら機能は、コンピュータ読取可能な媒体に記憶され得るか、または、コンピュータ読取可能な媒体における1つまたは複数の命令またはコードとして符号化され得る。コンピュータ読取可能な媒体は、コンピュータ記憶媒体を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。例として、限定することなく、このようなコンピュータ読取可能な媒体は、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、電子的消去可能なプログラマブルROM(EEPROM(登録商標))、コンパクトディスクROM(CD−ROM)または他の光ディスク記憶装置、磁気ディスク記憶装置または他の磁気記憶デバイス、または、命令およびデータ構造の形式で所望のプログラムコードを伝送または記憶するために使用され得、しかもコンピュータによってアクセスされ得る他の任意の媒体を備え得る。上記の組合せもまた、コンピュータ読取可能な媒体の範囲内に含まれるべきである。
[0015]PCDおよび他のUEにおけるパフォーマンス要求が増加している。この結果、PCDのプロセッサ上のコアの数が増加した。しかしながら、利用可能な電力(電力バジェット)は、これらのデバイスの、制限されたフォームファクタによって制限され得る。コアのすべてが利用される場合、プロセッサのパフォーマンスは、電力バジェットによって制限される。PCDの信頼度を維持するために、緩和温度しきい値より低くプロセッサ/コアの温度を維持することが有益である。緩和温度しきい値が達せられた場合、PCDは、プロセッサ/コアの温度を制御するために、プロセッサ/コアのパフォーマンスを低減する熱緩和手順を実行し得る。プロセッサ/コアのパフォーマンスを下げることを避けるために、プロセッサ/コアを緩和温度しきい値の下でより長い期間動作させることがさらに有益である。
[0016]いくつかの構成では、実施される緩和手順は、プロセッサの温度を減少させるために、プロセッサパフォーマンスを低下させる。たとえば、コアの温度が、緩和温度しきい値に達した場合、コアの供給電圧および/または動作周波数は、電力消費、すなわち、コアの温度を低下させるために減少され得る。周波数/電圧の低下は、パフォーマンスの低下に至り得る。
[0017]他方、PCDにおいて実行中のアプリケーションは、シングル/デュアルコア集中型であり得る。したがって、プロセッサへのさらなるコアの追加が、直接的に、向上されたパフォーマンスにならないことがある。シングル/デュアルコアアプリケーションは、余分なコアを利用しないことがある。1つまたは2つのコアが、アプリケーションによって利用されている間、残りのコアが、より少ないタスクを取り扱い得、より少ない電力を消費し得る。結果として、より少ないタスクを取り扱う残りのコアは、アプリケーションによって利用されるコアよりも比較的温度が低いことがある。
[0018]いくつかの構成では、PCDは、事前緩和温度しきい値を伴って構成され得、事前緩和温度しきい値は、緩和温度しきい値よりも低い。コアの温度が、事前緩和温度しきい値に達した場合、スケジューラまたは熱制御モジュールは、より効率的またはより低温のコアの位置を確認し得、事前緩和温度しきい値に達したコアのジョブまたはスレッドを、より低温のコアへ移動させることを開始し得る。より低温のコアの動作周波数は、ジョブまたはスレッドを処理するために必要とされるレベルへと増加され得る。移動が完了すると、事前緩和温度しきい値に達したコアは、温度を低減するために電力急減され得る。この手順は、コアが、緩和温度しきい値の下で、より長時間動作することを可能とし、全体的により良好なパフォーマンスおよびより低い動作温度へと導き得る。
[0019]図1は、UEの典型的な実施形態を例示する機能ブロック図100である。UE110の例は、セルラ電話、スマートフォン、セッション開始プロトコル(SIP)電話、ラップトップ、携帯情報端末(PDA)、衛星無線機、全地球測位システム、マルチメディアデバイス、ビデオデバイス、デジタルオーディオプレーヤ(たとえば、MP3プレーヤ)、カメラ、ゲーム機、タブレット、またはその他任意の同様な機能のデバイスを含む。UE110はまた、移動局、加入者局、モバイルユニット、加入者ユニット、ワイヤレスユニット、遠隔ユニット、モバイルデバイス、ワイヤレスデバイス、ワイヤレス通信デバイス、遠隔デバイス、モバイル加入者局、アクセス端末、移動機、ワイヤレス端末、遠隔端末、ハンドセット、ユーザエージェント、モバイルクライアント、クライアント、または、他のいくつかの適切な用語として当業者によって称され得る。
[0020]UE110は、他の構成要素の中でも、プロセッサ112、メモリ114、および記憶装置116を有する。メモリ114は、RAMのような揮発性データ記憶デバイスである。記憶装置116は、フラッシュメモリまたはソリッドステートメモリデバイスのような不揮発性データ記憶デバイスである。記憶装置116は、プロセッサ112へ結合された個別のデータ記憶装置を備えた分散されたメモリデバイスであり得る。UE110のプロセッサ112、メモリ114、記憶装置116、および他の構成要素は、システムバス118を介して互いに通信し得る。プロセッサ112は、複数のコアを有する。たとえば、図1に図示されるように、プロセッサ112は4つのコア、すなわち、第1のコア122、第2のコア124、第3のコア126、および第4のコア128を有する。コア122、124、126、128の各々は、中央処理ユニット(CPU)コア、グラフィック処理ユニット(GPU)コア、または、他の専用機能を有する処理ユニットであり得る。コア122、124、126、128の各々は、L1キャッシュ129を有し得る。コア122、124、126、128は、L2キャッシュ130を分配し得る。いくつかの構成では、L1キャッシュ129は、3つの独立キャッシュ、すなわち、実行可能な命令フェッチをスピードアップするための命令キャッシュ、データフェッチおよび記憶をスピードアップするためのデータキャッシュ、および、実行可能な命令とデータの両方のためのバーチャル−物理アドレス変換をスピードアップするために使用される変換ルックアサイドバッファ(TLB)を含み得る。いくつかの構成では、コア122、124、126、128は、同じクラスタに属し得る。言い換えると、コア122、124、126、128のアクティブなコアは、同じまたは類似のパフォーマンスレベルで動作するように構成され得る。たとえば、コア122、124、126、128のアクティブなコアは、同じ周波数または類似の周波数で動作し得る。いくつかの構成では、コア122、124、126、128は、異なるクラスタに属し得る。
[0021]負荷を処理する場合、コア122、124、126、128は、熱エネルギ(熱)を生成する。負荷が、コア122、124、126、128の所与のコアに集中されている場合、熱エネルギ生成が増加し得、これによって、UE110および/またはユーザ経験のパフォーマンスに潜在的にインパクトを与える。熱エネルギ生成は、相補的なコアにまたがる負荷の再割当によって緩和され得る。UE110の熱制御モジュール140は、コア122、124、126、128のうち、熱リスクにあるコアと、熱リスクにあるコアから再割当され得る負荷の受け取りのための候補である十分に利用されていないコアとを識別し得る。
[0022]いくつかの構成では、UE110は、コア122、124、126、128の近傍に各々配置され、熱制御モジュール140によってモニタされる温度センサ132、134、136、138を有する。温度センサ132、134、136、138のうちの1つが、1つまたは複数の温度しきい値とのあらかじめ決定された関係における温度を測定したことを熱制御モジュール140が検出した場合、熱制御モジュール140は、プロセッサ112内の熱エネルギ生成を低減するために、1つまたは複数の熱緩和対策をコア122、124、126、128へ適用し得る。
[0023]いくつかの構成では、熱制御モジュール140は、コア122、124、126、128の温度をモニタするために、温度センサ132、134、136、138を利用しないことがあり、他の利用可能なメカニズムを使用し得る。たとえば、熱制御モジュール140は、コア122、124、126、128の各々の温度を順に測定する単一の温度センサを使用し得る。
[0024]いくつかの構成では、熱制御モジュール140は、プロセッサ112の同じダイ(チップ)上の熱コントローラ140−1として実施され得る。熱コントローラ140−1は、通信リンク142を介して温度センサ132、134、136、138と通信し得る。熱コントローラ140−1は、通信リンク118を介してプロセッサ112と通信し得る。熱コントローラ140−1は、多数の状態を有し様々なフリップフロップまたはレジスタを適用する有限ステートマシンであり得る。熱コントローラ140−1は、入力として、温度センサ132、134、136、138から温度測定結果を受信し得、それに応答して、1つの状態から、多数の状態のうちの別の状態へ変化させ得る。多数の状態の各々において、熱コントローラ140−1は、図4〜図6を参照して以下に説明される動作のうちの1つまたは複数を実行し得る。
[0025]いくつかの構成では、熱制御モジュール140は、プロセッサ112から分離された熱コントローラ140−1として実施され得る。熱コントローラ140−1は、通信リンク142(たとえば、管理バス)を介して、温度センサ132、134、136、138と通信し得る。熱コントローラ140−1は、通信リンク118(たとえば、システムバス)を介して、プロセッサ112と通信し得る。熱コントローラ140−1は、それ自身の処理ユニットおよびメモリを有し得る。
[0026]いくつかの構成では、熱制御モジュール140は、ソフトウェア熱制御モジュール140−2によって実施され得る。ソフトウェア熱制御モジュール140−2は、記憶装置116に記憶され得、コア122、124、126、128のうちの1つによる実行のために、メモリ114へロードされ得る。
[0027]図2は、UE110の熱緩和手順を例示する図解200である。動作204において、UE110の手順が開始する。動作206において、UE110は電源を投入される。動作208において、UE110は、UE110にインストールされたシステムを使えるようにする。たとえば、記憶装置116は、オペレーティングシステム(OS)を記憶し得る。プロセッサ112は、OSの必要な構成要素をメモリ114へロードし、これら構成要素を実行し得る。1つの構成では、OSは、電源を投入し得、1つまたは複数のタスクを、コア122、124、126、128のうちの1つまたは複数へ割り当て得る。コア122、124、126、128のうちのコアの最も頻繁に使用されるデータおよび命令は、対応するL1キャッシュ129において記憶され得る。L1キャッシュ129におけるデータよりもさほど頻繁に使用されないいくつかのデータは、L2キャッシュ130において記憶され得る。コアがタスクを割り当てられていないのであれば、このコアは、オフされ得る。たとえば、コアは、電力急減され得る。すなわち、電力は、もはやコアへ提供されない。あるいは、コアは、クロックゲートされ得る。このケースでは、電力は、未だにコアへ提供されるが、クロックは、トグルしないように、ゲート制御される。クロックは、ゲート制御により、今や静止しているので、コアは、処理を実行せず、したがって、「オフ」であると見なされ得る。それに加えて、コアのクロックがゲートされ得、コアへ供給された電圧が、(L1キャッシュ129のような)コアのローカルメモリに記憶されたデータを保持するのに十分であるが、、コアが処理を実行するためには低すぎる低いレベルへ低減され得る。したがって、コアは、「オフ」であると見なされ得る。コアをオフするこれら異なる方式は、異なる復帰時間となり得る。言い換えれば、上記各方法について、コアを、オフされた後に「オン」に戻すステップは、異なる長さの時間を費やし得る。負荷を処理する(すなわち、1つまたは複数のタスクを実行している)各コアは、熱エネルギを生成する。各コアは、1つまたは複数の動作周波数において実行し得る。いくつかの構成では、コア122、124、126、128は、異なる動作周波数で動作し得る。いくつかの構成では、コア122、124、126、128は、常に同じ動作周波数で動作し得る。さらに、この例において、温度センサ132、134、136、138は、コア122、124、126、128の温度を各々測定するために動作する。
[0028]熱制御モジュール140は、緩和温度しきい値(Tmit)、事前緩和温度しきい値(Tpre−mit)、および負荷分配温度しきい値(Tload−share)を用いて設定され得る。動作210において、熱制御モジュール140は、コア122、124、126、128のコアの温度を決定する。温度センサにおいて測定されたコアの温度(T)を受信するために、熱制御モジュール140は、温度センサと通信し得る。いくつかの構成では、熱制御モジュール140は、すべてのコア122、124、126、128の温度を受信し得、その後、緩和対策を適用するために、最高温度を有するコア(たとえば、第1のコア122)を選択し得る。今後、例として、第1のコア122が参照され得る。それでもなお、説明された手順は、コア122、124、126、128のうちの他のコアへ同様に適用され得る。この例において、熱制御モジュール140は、温度センサ132において測定された第1のコア122の温度を受信し得る。動作212において、熱制御モジュール140は、測定された温度が、緩和温度しきい値(たとえば、90℃)よりも高いか否かを決定する。測定された温度が、緩和温度しきい値よりも高いのであれば、熱制御モジュール140は、第1のコア122が、臨界熱条件にあると決定し得る。それに続いて、動作214において、熱制御モジュール140は、第1のコア122の温度を下げるために、第1のコア122に対して、動作周波数を低減するか、および/または、第1のコア122の供給電圧を下げるように指示し得る。それに続いて、手順は動作210へ戻り、ここでは、熱制御モジュール140が、次のコア(たとえば、第2のコア124)の温度を決定する。
[0029]動作212において、第1のコア122の温度が、緩和温度しきい値よりも高くないと熱制御モジュール140が決定すると、動作216において、熱制御モジュール140は、温度が、事前緩和温度しきい値(たとえば、80℃)よりも高いか否かを決定する。温度が、事前緩和温度しきい値よりも高くないのであれば、手順は、動作210へ戻り、ここで、熱制御モジュール140は、次のコア(たとえば、第2のコア124)の温度を決定する。
[0030]動作216において、第1のコア122の温度が、緩和温度しきい値よりも高いことを熱制御モジュール140が決定すると、熱制御モジュール140は、第1のコア122が、熱リスクにあるコアであると考慮し得る。動作218において、熱制御モジュール140は、残りのコア(すなわち、第2のコア124、第3のコア126、および第4のコア128)の温度を決定するために、温度センサ134、温度センサ136、および温度センサ138と通信する。いくつかの構成では、コア122、124、126、128は、同じクラスタに属し得る。すなわち、残りのコアは、第1のコア122の同じクラスタからのものである。したがって、熱制御モジュール140は、同じクラスタ内の別のコアを選択するために、以下に説明された技術を使用し得、第1のコア122のいくつかまたはすべての負荷を、同じクラスタの選択されたコアへ移動させ得る。いくつかの構成では、コア122、124、126、128は、異なるクラスタに属し得る。したがって、熱制御モジュール140は、第1のコア122のいくつかまたはすべての負荷を移動させるために、コアのクラスタを考察することなく、別のコアを選択するために、以下に説明される技術を使用し得る。たとえば、熱制御モジュール140は、異なるクラスタにわたるコアの温度に基づいて、コアを選択し得る。第1のコア122および第3のコア126は、第1のクラスタ(たとえば、高いパフォーマンスのクラスタ)に属し得る。第2のコア124および第4のコア128は、第2のクラスタ(たとえば、低いパフォーマンスのクラスタ)に属し得る。動作220において、熱制御モジュール140は、最低温度(T)のみならず、最低温度を有するコアをも決定し得る。たとえば、第2のコア124は、最低温度を有するコアであり得る。動作222において、第2のコア124がオンされないのであれば、熱制御モジュール140は、第2のコア124(すなわち、最低温度を有するコア)をオンする。
[0031]動作224において、熱制御モジュール140は、第2のコア124の温度が、負荷分配温度しきい値(たとえば、75℃)よりも高いか否かを決定する。この温度が、負荷分配温度しきい値よりも高くないのであれば、動作226において、熱制御モジュール140は、第1のコア122に対して、第1のコア122のすべての負荷を、第2のコア124へ移動させるように指示する。いくつかの構成では、第1のコア122は、第1のコア122のL1キャッシュ129−1におけるすべてのデータおよび指示を、第2のコア124のL1キャッシュ129−2へ移動させる。したがって、第2のコア124は、第1のコア122上で実行されたタスクの実行を継続することができる。いくつかの構成では、第2のコア124は、移動された負荷を受け取ることに応じて、増加した負荷を処理するために、第2のコア124の動作周波数を増加させ得る。それに続いて、動作228において、熱制御モジュール140は、第1のコア122をオフする、すなわち、電力急減する。実行中のコアは、リーク電流を生成し得、それは、熱エネルギを生成する。実行中のコアをオフするステップは、リーク電流を低下または除去し得る。いくつかの構成では、さらなる緩和対策として、熱制御モジュール140は、他の残りの実行中のコア(すなわち、第3のコア126および第4のコア128)の各々が、タスクを取り扱っているか否かを検出し得、タスクを取り扱っていない任意のコアをオフにし得る。それに続いて、手順は、動作210へ戻り、ここでは、熱制御モジュール140が、次のコアの温度を決定する。
[0032]動作224中に、第2のコア124の温度が負荷分配温度しきい値よりも高いと熱制御モジュール140が決定すると、動作230において、熱制御モジュール140は、他の残りの実行中のコア(すなわち、第3のコア126および第4のコア128)の各々が、タスクを取り扱っているか否かを検出し得、タスクを取り扱っていない任意のコアをオフにし得る。たとえば、熱制御モジュール140は、第4のコア128が、何れのタスクをも取り扱っていないことを検出し得、第4のコア128をオフにし得る。動作232において、熱制御モジュール140は、第1のコア122に対して、第1のコア122の負荷を、すべての残りの実行中のコア(すなわち、この例では、第2のコア124と第3のコア126)と分配するように指示する。熱制御モジュール140は、第2のコア124および第3のコア126へ移動されるべき第1のコア122の負荷のパーセンテージを決定し得る。熱制御モジュール140は、第1のコア122に対して、第1のコア122のL1キャッシュ129−1に記憶された対応するデータおよび命令を、第2のコア124のL1キャッシュ129−2と、第3のコア126のL1キャッシュ129−3へ移動させるように指示し得る。
[0033]いくつかの構成では、第1のコア122から残りの実行中のコアへ移動されるべき負荷のパーセンテージが、第1のコア122の温度と、残りの実行中のコアの温度とに基づいて決定され得る。さらに、残りの実行中のコア間で移動される負荷の分散は、第1のコア122と、残りの実行中のコアとの間の相対的な温度の差に基づき得る。第1のコア122からのより大きな温度の差を有するコアは、第1のコア122から移動された、より大きなパーセンテージの負荷を受け取り得る。たとえば、第1のコア122は、85℃にあり得、第2のコア124は、75℃にあり得、第3のコア126は、78℃にあり得、(オンである)第4のコア128は、76℃にあり得る。よって、第2のコア124は、最も大きいパーセンテージの負荷を受け取り、第3のコア126は、最も低いパーセンテージの負荷を受け取る。それに続いて、手順は、動作210へ戻り、ここでは、熱制御モジュール140が、次のコアの温度を決定する。
[0034]図3は、UEにおける温度上昇を例示する図解300である。X軸は時間である。Y軸は温度である。曲線310は、第1のコア122の温度変化を例示する。曲線320は、第2のコア124の温度変化を例示する。
[0035]時間tにおいて、UE110は電源を投入される。第1のコア122および第2のコア124は、たとえば室温である基準温度(Tbase)にある。第1のコア122は、1つまたは複数の処理タスクを割り当てられ得る。第2のコア124は、0以上の処理タスクを割り当てられ得る。第1のコア122が負荷を処理している場合、第1のコア122は、熱エネルギを生成し、時間tにおいて事前緩和温度しきい値に達し得る。何れの緩和対策をも受け取ることがなければ、第1のコア122は、時間tにおいて、緩和温度しきい値に達し得る。第2のコア124は、たとえば、より少ないタスクを処理し得、したがって、時間tにおいて、事前緩和温度しきい値よりも低い温度を有する。いくつかの構成では、時間tにおいて(すなわち、第1のコア122の温度が、事前緩和温度しきい値に達したことを検出すると)、熱制御モジュール140は、第1のコア122の負荷のいくつかまたはすべてを第2のコア124へ移動させるように動作し得る。第1のコア122の負荷のすべてが、第2のコア124へ移動されると、第1のコア122がオフされ得る。
[0036]第1のコア122の負荷が、第2のコア124へ移動された後、第1のコア122の温度は、低下し始め得る。時間tの後、第2のコア124が、第1のコア122から移動された負荷を処理し始めるので、第2のコア124の温度は、以前よりも早く上昇し得る。第2のコア124の温度は、時間tにおいて、事前緩和温度しきい値に達し得る。何れの緩和対策も受け取らないと、第2のコア124の温度は、時間tにおいて緩和温度しきい値に達し得る。時間tから時間tまで、第1のコア122は、以前よりも少ない負荷しか処理しないか、または、負荷をまったく処理しない。よって、第1のコア122の温度が低下し、時間tにおいて事前緩和温度より下の点に到達し得る。いくつかの構成では、時間tにおいて(すなわち、第2のコア124の温度が事前緩和温度しきい値に達したことと、第1のコア122の温度が事前緩和温度しきい値より下であることとを検出すると)、熱制御モジュール140は、第2のコア124の負荷のいくつかまたはすべてを第1のコア122へ移動させるように動作し得る。それに続いて、第1のコア122の温度が上昇し始め得、tにおいて事前緩和温度しきい値に達し得る。第2のコア124の温度は、下降し始め得、時間tにおいて事前緩和温度しきい値より下の点に達し得る。
[0037]図4は、UEの熱緩和手順を例示する図解400である。UEは(たとえば、UE110)は、複数のコア(たとえば、コア122、124、126、128)を含むプロセッサ(たとえば、プロセッサ112)を有する。複数のコアは、第1のコアおよび残りのコアを含む。第1のコアは、負荷を処理する。
[0038]動作402において、UEは、第1のコアの温度を決定する。たとえば、図2を参照して示すように、熱制御モジュール140は、温度センサ132において測定された第1のコア122の温度を受信し得る。動作404において、UEは、第1のコアの温度が、第2のしきい値(たとえば、緩和温度しきい値)よりも高いか否かを決定し得る。第1のコアの温度が第2のしきい値よりも高いのであれば、動作406において、UEは、第1のコアの電力消費量を低減させる。いくつかの構成では、第1のコアの電力消費量を低減させるために、UEは、(a)第1のコアの周波数を低減する、(b)第1のコアの供給電圧を低減する、(c)第1のコアを電力急減させる、(d)第1のコードのすべての負荷を、残りのコアのうちの少なくとも1つのコアへ移動させる、のうちの少なくとも1つを行い得る。たとえば、図2を参照して示すように、動作214において、熱制御モジュール140は、第1のコア122の温度を低下させるために、第1のコア122に対して、動作周波数を低減するように指示し得、および/または、第1のコア122の供給電圧を低下するように指示し得る。
[0039]動作404中に、第1のコアの温度が、第2のしきい値よりも高くないことをUEが決定すると、動作408において、UEは、第1のコアの温度が、第1のしきい値(たとえば、事前緩和温度しきい値)よりも高いか否かを決定する。第2のしきい値は、第1のしきい値よりも大きい。第1のコアの温度が、第1のしきい値よりも高くないのであれば、動作410において、手順は終了する。
[0040]第1のコアの温度が、第1のしきい値よりも高いのであれば、動作412において、UEは、残りのコアの第2のコアへ、第1のコアの負荷の少なくとも一部を移動させる。追加の動作411が、動作412に先立って実行され得る。動作412内において、UEは、動作414において、残りのコアの各コアの温度を決定し得る。それに続いて、動作416において、UEは、残りのコアの各コアの温度の決定に基づいて、第2のコアへ、第1のコアの負荷の少なくとも一部を移動させる。たとえば、図3を参照して示すように、時間tにおいて(すなわち、第1のコア122の温度が、事前緩和温度しきい値に達したことが検出されると)、熱制御モジュール140は、第2のコア124へ、第1のコア122の負荷のうちのいくつかまたはすべてを移動させるように動作し得る。
[0041]図5は、UEがプロセッサのコア間で負荷を移動させるための熱緩和手順を例示する図解500である。この手順は、図4に例示された動作411、412において動作408に続く。動作502において、UEは、残りのコアのどれが、最低温度を有しているのかを決定する。たとえば、図2を参照して示すように、動作220において、熱制御モジュール140は、最低温度(T)のみならず、最低温度を有するコアを決定し得る。
[0042]動作504において、UEは、第2のコアが、残りのコアのうちの最低温度を有していると決定する。動作506において、UEは、第2のコアの温度が、第3の温度(たとえば、負荷分配温度しきい値)より低いことを決定する。第3のしきい値は、第1のしきい値(たとえば、事前緩和温度しきい値)より小さい。動作508において、UEは、第2のコアに電力を供給する。たとえば、図2を参照して示すように、動作222において、熱制御モジュール140は、第2のコア124(すなわち、最低温度を有するコア)がオンされていないのであれば、第2のコア124をオンする。
[0043]動作510において、UEは、第2のコアへ第1のコアのすべての負荷を移動させる。たとえば、図2を参照して示すように、動作226において、第1のコア122が、第1のコア122のL1キャッシュ129−1におけるすべてのデータおよび命令を、第2のコア124のL1キャッシュ129−2へ移動させる。動作512において、UEは、第1のコアの電力を落とす。たとえば、図2を参照して示すように、動作228において、熱制御モジュール140は、第1のコア122をオフする、すなわち、電力急減する。
[0044]図6は、UEがプロセッサのコア間で負荷を分配するための熱緩和手順を例示する図解600である。この手順は、図4に例示された動作411、412において動作408に続く。動作602において、UEは、残りのコアの各コアが、第3のしきい値(たとえば、負荷分配温度しきい値)よりも高い温度を有することを決定する。第3のしきい値は、第1のしきい値(たとえば、事前緩和温度しきい値)より小さい。動作604において、UEは、各コアの相対的な温度の差に基づいて、残りのコアの各コアへ移動するための負荷の一部を決定する。たとえば、図2を参照して示すように、動作232において、第1のコア122から残りの実行中のコアへ移動されるべき負荷のパーセンテージが、第1のコア122の温度と、残りの実行中のコアの温度とに基づいて決定され得る。さらに、残りの実行中のコア間で移動される負荷の分散は、第1のコア122と、残りの実行中のコアとの間の相対的な温度の差に基づき得る。動作606において、UEは、第2のコアと、コアのセットとの間で負荷を分配するために、残りのコアのうちのコアのセットへ、負荷の残りの部分を移動させる。たとえば、図2を参照して示すように、動作232において、熱制御モジュール140は、第1のコア122に対して、第1のコア122のL1キャッシュ129−1に記憶された対応するデータおよび命令を、第2のコア124のL1キャッシュ129−2および第3のコア126のL1キャッシュ129−3へ移動させるように指示し得る。
[0045]1つの構成では、装置は、複数のコアを含むプロセッサとインターフェースするために提供される。複数のコアは、第1のコアおよび残りのコアを含む。装置は、複数のコアのうちの第1のコアの温度を決定するための手段を含む。第1のコアは、負荷を処理する。装置はさらに、第1のコアの温度が、第1のしきい値よりも高いことを決定するための手段を含む。装置はさらに、第1のコアの温度が、第2のしきい値よりも高くないことを決定するための手段を含む。第2のしきい値は、第1のしきい値よりも大きい。装置はさらに、第1のコアの温度が、第1のしきい値よりも高いことを決定することに応じて、残りのコアのうちの第2のコアへ、第1のコアの負荷の少なくとも一部を移動させるための手段を含む。装置はさらに、残りのコアの各コアの温度を決定するための手段を含み得る。第1のコアの負荷の少なくとも一部が、残りのコアの各コアの温度の決定に基づいて、第2のコアへ移動され得る。装置はさらに、残りのコアのうちのどれが、最低温度を有するのかを決定するための手段を含み得る。負荷の少なくとも一部は、第2のコアが、残りのコアのうちの最低温度を有していることを決定することに応じて、第2のコアへ移動され得る。1つの構成では、負荷の少なくとも一部は、すべての負荷であり、すべての負荷は、第2のコアが、残りのコアのうちの最低温度を有していることを決定することに応じて、第1のコアから第2のコアへ移動される。装置はさらに、第2のコアの温度が、第3のしきい値より低いことを決定するための手段を含み得る。第3のしきい値は、第1のしきい値より小さい。すべての負荷は、第2のコアが、第3のしきい値より低い温度を有していることを決定することに応じて、第2のコアへ移動され得る。装置はさらに、すべての負荷を第1のコアから第2のコアへ移動させる前に、第2のコアの電力を増加させるための手段と、すべての負荷を第1のコアから第2のコアへ移動させたことに応じて、第1のコアの電力を低下させるための手段とを含み得る。装置はさらに、残りのコアの各コアが、第1のしきい値より小さい第3のしきい値よりも高い温度を有していることを決定するための手段と、第2のコアと、コアのセットとの間で負荷を分配するために、負荷の残りの部分を、残りのコアのうちのコアのセットへ移動させるための手段とを含み得る。装置はさらに、第1のコアの温度から、残りのコアの各々のそれぞれの温度のそれぞれの温度の差を決定するための手段を含み得る。移動させるための手段は、残りのコアのそれぞれの温度の差に基づいて、残りのコアの間で、第1のコアの負荷を分配するように構成される。移動させるための手段は、第1のコアの温度が、第2のしきい値よりも高くないことを決定することに応じて、負荷の少なくとも一部をさらに移動させるように構成され得る。装置はさらに、複数のコアのうちの第1のコアの第2の温度を決定するための手段を含み得る。装置はさらに、第1のコアの第2の温度が、第2のしきい値よりも高いことを決定するための手段を含み得る。装置はさらに、第1のコアの第2の温度が、第2のしきい値よりも高いことを決定することに応じて、第1のコアの電力消費量を低減させるための手段を含み得る。第1のコアの電力消費量を低減させるために、電力消費量を低減させるための手段は、(a)第1のコアの周波数を下げること、(b)第1のコアの供給電圧を下げること、(c)第1のコアを電力急減させること、および(d)第1のコードのすべての負荷を、残りのコアのうちの少なくとも1つのコアへ移動させること、のうちの少なくとも1つを行うように構成される。前述した手段は、前述した手段の各々に対応する機能を実行するように構成された熱制御モジュール140−1であり得る。
[0046]開示された処理における各ステップの具体的な順序または階層は、典型的なアプローチの例示であることが理解される。設計選択に基づいて、これら処理におけるステップの特定の順序または階層は、再構成され得ることが理解される。さらに、いくつかのステップは、結合または省略され得る。同伴する方法請求項は、様々なステップの要素を、サンプル順に示しており、提示された特定の順序または階層に限定されるとは意味されていない。
[0047]前述された説明は、いかなる当業者であっても、本明細書で説明された様々な態様を実現できるように提供される。これら態様に対する様々な変形は、当業者に容易に明らかになり、本明細書で定義された一般的な原理は、他の態様に適用され得る。したがって、特許請求の範囲は、本明細書に図示された態様に限定されることは意図されておらず、文言である特許請求の範囲に一致するすべての範囲を与えられるものとし、単数形での要素に対する参照は、このように具体的に述べられていないのであれば、「1つであり唯一」ではなく、「1つまたは複数」を意味することが意図されている。「典型的な」という用語は、本明細書において、「例、事例、または例示として役立つ」ことを意味するために使用される。本明細書において「典型的」として説明されるいかなる態様も、他の態様よりも好適であるとか、有利であると必ずしも解釈される必要はない。特に明記されていない限り、用語「いくつか」は、1つまたは複数を称する。「A、BまたはCの少なくとも1つ」、「A、BおよびCの少なくとも1つ」、および「A、B、Cまたはそれらの任意の組合せ」のような組合せは、A、B、および/またはCの任意の組合せを含み、Aの倍数、Bの倍数、またはCの倍数を含み得る。特に、「A、BまたはCの少なくとも1つ」、「A、BおよびCの少なくとも1つ」、および「A、B、Cまたはそれらの任意の組合せ」のような組合せは、Aのみ、Bのみ、Cのみ、AとB、AとC、BとC、またはAとBとCであり得、このようなどの組合せも、A、B、またはCのうちの1つまたは複数のメンバを含み得る。当業者に周知であるか、または、後に周知になるべきこの開示を通じて説明された様々な態様の要素に対するすべての構造的および機能的な等価物が、参照によって本明細書に明確に組み込まれており、特許請求の範囲に包含されると意図される。さらに、本明細書で開示された何れも、このような開示が特許請求の範囲において明示的に述べられているか否かに関わらず、公衆に対して放棄されたものとは意図されていない。特許請求の範囲の要素が、「〜するための手段」という文言を用いて明示的に示されていないのであれば、特許請求の範囲の何れの要素も、ミーンズプラスファンクション(means plus function)として解釈されるべきではない。

Claims (31)

  1. ユーザ機器(UE)の動作する方法であって、前記UEは、複数のコアを含むプロセッサを有し、前記複数のコアは、第1のコアと残りのコアとを含み、
    前記複数のコアの前記第1のコアの温度を決定すること、ここで、前記第1のコアは負荷を処理する、と、
    前記第1のコアの前記温度が、第1のしきい値よりも高いことを決定することと、
    前記第1のコアの前記温度が、第2のしきい値よりも高くないことを決定すること、ここで、前記第2のしきい値は、前記第1のしきい値よりも大きい、と、
    前記第1のコアの前記温度が、前記第1のしきい値よりも高いことを決定することに応じて、前記第1のコアの前記負荷の少なくとも一部を、前記残りのコアのうちの第2のコアへ移動させることと、
    を備える方法。
  2. 前記残りのコアの各コアの温度を決定することをさらに備え、ここにおいて、前記第1のコアの前記負荷の前記少なくとも一部が、前記残りのコアの各コアの前記温度の前記決定に基づいて、前記第2のコアへ移動される、請求項1に記載の方法。
  3. 前記残りのコアのうちのどれが、最も低い温度を有しているのかを決定することをさらに備え、ここにおいて、前記負荷の前記少なくとも一部が、前記第2のコアが前記残りのコアのうちの最も低い温度を有していることを決定することに応じて、前記第2のコアへ移動される、請求項2に記載の方法。
  4. 前記負荷の前記少なくとも一部は、すべての前記負荷であり、すべての前記負荷が、前記第2のコアが前記残りのコアのうちの前記最も低い温度を有していることを決定することに応じて、前記第1のコアから前記第2のコアへ移動される、請求項3に記載の方法。
  5. 前記第2のコアの温度が、第3のしきい値より低いことを決定することをさらに備え、前記第3のしきい値は、前記第1のしきい値より小さく、前記第2のコアが、前記第3のしきい値より低い温度を有していることを決定することに応じて、すべての前記負荷が、前記第2のコアへ移動される、請求項4に記載の方法。
  6. 前記第1のコアから前記第2のコアへすべての前記負荷を移動させる前に、前記第2のコアの電力を増加させることと、
    前記第1のコアから前記第2のコアへすべての前記負荷を移動させることに応じて、前記第1のコアの電力を減少させることと、
    をさらに備える請求項4に記載の方法。
  7. 前記残りのコアの各コアが、第3のしきい値よりも高い温度を有していることを決定すること、ここで、前記第3のしきい値は、前記第1のしきい値より小さい、と、
    前記第2のコアと、前記残りのコアのうちのコアのセットとの間で前記負荷を分配するために、前記負荷の残りの部分をコアの前記セットへ移動させることと、
    をさらに備える請求項2に記載の方法。
  8. 前記第1のコアの前記温度から、前記残りのコアの各々のそれぞれの温度の前記それぞれの温度の差を決定することをさらに備え、ここにおいて、前記第1のコアの前記負荷は、前記残りのコアの前記それぞれの温度の差に基づいて、前記残りのコアの間で分配される、請求項7に記載の方法。
  9. 前記負荷の前記少なくとも一部が、さらに、前記第1のコアの前記温度が前記第2のしきい値よりも高くないことを決定することに応じて、移動され、前記方法は、
    前記複数のコアの前記第1のコアの第2の温度を決定することと、
    前記第1のコアの前記第2の温度が、前記第2のしきい値よりも高いことを決定することと、
    前記第1のコアの前記第2の温度が、前記第2のしきい値よりも高いことを決定することに応じて、前記第1のコアの電力消費量を低減させることと、
    をさらに備える、請求項1に記載の方法。
  10. 前記第1のコアの電力消費量を前記低減させることは、
    前記第1のコアの周波数を下げること、
    前記第1のコアの供給電圧を下げること、
    前記第1のコアを電力急減させること、および、
    前記残りのコアのうちの少なくとも1つのコアへ前記第1のコードのすべての前記負荷を移動させること、
    のうちの少なくとも1つを含む、請求項9に記載の方法。
  11. 複数のコアを含むプロセッサの熱エネルギを管理するための熱制御モジュールであって、前記複数のコアは、第1のコアと残りのコアとを含み、
    前記複数のコアの前記第1のコアの温度を決定するための手段、ここで、前記第1のコアは負荷を処理する、と、
    前記第1のコアの前記温度が、第1のしきい値よりも高いことを決定するための手段と、
    前記第1のコアの前記温度が、第2のしきい値よりも高くないことを決定するための手段、ここで、前記第2のしきい値は、前記第1のしきい値よりも大きい、と、
    前記第1のコアの前記温度が、前記第1のしきい値よりも高いことを決定することに応じて、前記第1のコアの前記負荷の少なくとも一部を、前記残りのコアのうちの第2のコアへ移動させるための手段と、
    を備える熱制御モジュール。
  12. 前記残りのコアの各コアの温度を決定するための手段をさらに備え、ここにおいて、前記第1のコアの前記負荷の前記少なくとも一部が、前記残りのコアの各コアの前記温度の前記決定に基づいて、前記第2のコアへ移動される、請求項11に記載の熱制御モジュール。
  13. 前記残りのコアのうちのどれが、最も低い温度を有しているのかを決定するための手段をさらに備え、ここにおいて、前記負荷の前記少なくとも一部が、前記第2のコアが前記残りのコアのうちの前記最も低い温度を有していることを決定することに応じて、前記第2のコアへ移動される、請求項12に記載の熱制御モジュール。
  14. 前記負荷の前記少なくとも一部は、すべての前記負荷であり、すべての前記負荷が、前記第2のコアが前記残りのコアのうちの前記最も低い温度を有していることを決定することに応じて、前記第1のコアから前記第2のコアへ移動される、請求項13に記載の熱制御モジュール。
  15. 前記第2のコアの温度が、第3のしきい値より低いことを決定するための手段をさらに備え、前記第3のしきい値は前記第1のしきい値より小さく、ここにおいて、すべての前記負荷が、前記第2のコアが前記第3のしきい値より低い温度を有していることを決定することに応じて、前記第2のコアへ移動される、請求項14に記載の熱制御モジュール。
  16. 前記第1のコアから前記第2のコアへすべての前記負荷を移動させる前に、前記第2のコアの電力を増加させるための手段と、
    前記第1のコアから前記第2のコアへすべての前記負荷を移動させることに応じて、前記第1のコアの電力を減少させるための手段と、
    をさらに備える請求項14に記載の熱制御モジュール。
  17. 前記残りのコアの各コアが、第3のしきい値よりも高い温度を有していることを決定するための手段、ここで、前記第3のしきい値は、前記第1のしきい値より小さい、と、
    前記第2のコアと、前記残りのコアのうちのコアのセットとの間で前記負荷を分配するために、前記負荷の残りの部分を、コアの前記セットへ移動させるための手段と、
    をさらに備える請求項12に記載の熱制御モジュール。
  18. 前記第1のコアの温度から、前記残りのコアの各々のそれぞれの温度の前記それぞれの温度の差を決定するための手段をさらに備え、ここにおいて、移動させるための前記手段は、前記残りのコアの前記それぞれの温度の差に基づいて、前記残りのコアの間で前記第1のコアの前記負荷を分配するように構成される、請求項17に記載の熱制御モジュール。
  19. 移動させるための前記手段は、さらに、前記第1のコアの前記温度が前記第2のしきい値よりも高くないことを決定することに応じて、前記負荷の前記少なくとも一部を移動させるように構成され、前記熱制御モジュールは、
    前記複数のコアの前記第1のコアの第2の温度を決定するための手段と、
    前記第1のコアの前記第2の温度が、前記第2のしきい値よりも高いことを決定するための手段と、
    前記第1のコアの前記第2の温度が、前記第2のしきい値よりも高いことを決定することに応じて、前記第1のコアの電力消費量を低減させるための手段と、
    をさらに備える、請求項11に記載の熱制御モジュール。
  20. 前記第1のコアの電力消費量を低減させるために、前記電力消費量を低減させるための前記手段は、
    前記第1のコアの周波数を下げること、
    前記第1のコアの供給電圧を下げること、
    前記第1のコアを電力急減させること、および
    前記第1のコードのすべての前記負荷を、前記残りのコアのうちの少なくとも1つのコアへ移動させること
    のうちの少なくとも1つを行うように構成された、請求項19に記載の熱制御モジュール。
  21. 複数のコアを含むプロセッサの熱エネルギを管理するための熱制御モジュールであって、前記複数のコアは、第1のコアと残りのコアとを含み、
    温度センサと電気通信する回路を備え、ここにおいて、前記回路は、
    前記温度センサから、前記複数のコアの前記第1のコアの温度を受信し、ここで、前記第1のコアは負荷を処理し、
    前記第1のコアの前記温度が、第1のしきい値よりも高いことを決定し、
    前記第1のコアの前記温度が、第2のしきい値よりも高くないことを決定し、ここで、前記第2のしきい値は前記第1のしきい値よりも大きく、
    前記第1のコアの前記温度が、前記第1のしきい値よりも高いことを決定することに応じて、前記第1のコアの前記負荷の少なくとも一部を、前記残りのコアのうちの第2のコアへ移動させるように、前記プロセッサに指示する、
    ように構成される、熱制御モジュール。
  22. 前記回路は、前記温度センサから、前記残りのコアの各コアの温度を受信するようにさらに構成され、ここにおいて、前記回路は、前記第1のコアの前記負荷の前記少なくとも一部を、前記残りのコアの各コアの前記温度に基づいて、前記第2のコアへ移動させるように前記プロセッサに指示するようにさらに構成される、請求項21に記載の熱制御モジュール。
  23. 前記回路は、前記残りのコアのうちのどれが、最も低い温度を有しているのかを決定するようにさらに構成され、ここにおいて、前記回路は、前記第2のコアが、前記残りのコアのうちの前記最も低い温度を有していることを決定することに応じて、前記負荷の前記少なくとも一部を、前記第2のコアへ移動させるように前記プロセッサに指示するようにさらに構成される、請求項22に記載の熱制御モジュール。
  24. 前記負荷の前記少なくとも一部は、すべての前記負荷であり、前記回路は、前記第2のコアが、前記残りのコアのうちの前記最も低い温度を有していることを決定することに応じて、すべての前記負荷を、前記第1のコアから、前記第2のコアへ移動させるように前記プロセッサに指示するようにさらに構成される、請求項23に記載の熱制御モジュール。
  25. 前記回路は、前記第2のコアの温度が、第3のしきい値より低いことを決定するようにさらに構成され、前記第3のしきい値は、前記第1のしきい値より小さく、ここにおいて、前記回路は、前記第2のコアが、前記第3のしきい値より低い温度を有していることを決定することに応じて、すべての前記負荷を、前記第2のコアへ移動させるように前記プロセッサに指示するようにさらに構成された、請求項24に記載の熱制御モジュール。
  26. 前記回路は、
    前記第1のコアから前記第2のコアへすべての前記負荷を移動させる前に、前記第2のコアの電力を増加し、
    前記第1のコアから前記第2のコアへすべての前記負荷を移動させることに応じて、前記第1のコアの電力を減少させる、
    ように前記プロセッサに指示するようにさらに構成された、請求項24に記載の熱制御モジュール。
  27. 前記回路は、
    前記残りのコアの各コアが、第3のしきい値よりも高い温度を有していることを決定し、ここで、前記第3のしきい値は前記第1のしきい値より小さく、
    前記第2のコアと、前記残りのコアのうちのコアのセットとの間で前記負荷を分配するために、前記負荷の残りの部分をコアの前記セットへ移動させるように前記プロセッサに指示する、
    ようにさらに構成された、請求項22に記載の熱制御モジュール。
  28. 前記回路は、前記第1のコアの前記温度から、前記残りのコアの各々のそれぞれの温度の前記それぞれの温度の差を決定するようにさらに構成され、ここにおいて、前記回路は、前記残りのコアの前記それぞれの温度の差に基づいて、前記残りのコアの間で前記第1のコアの前記負荷を分配するように前記プロセッサに指示するように構成された、請求項27に記載の熱制御モジュール。
  29. 前記回路は、
    さらに、前記第1のコアの前記温度が、前記第2のしきい値よりも高くないことを決定することに応じて、前記負荷の少なくとも一部を移動させるように前記プロセッサに指示し、
    前記温度センサから、前記複数のコアの前記第1のコアの第2の温度を受信し、
    前記第1のコアの第2の前記温度が、前記第2のしきい値よりも高いことを決定し、
    前記第1のコアの前記第2の温度が、前記第2のしきい値よりも高いことを決定することに応じて、前記第1のコアの電力消費量を低減させるように前記プロセッサに指示する、
    ようにさらに構成された、請求項21に記載の熱制御モジュール。
  30. 前記第1のコアの電力消費量を低減させるために、前記回路は、
    前記第1のコアの周波数を下げること、
    前記第1のコアの供給電圧を下げること、
    前記第1のコアを電力急減させること、および
    前記第1のコードのすべての前記負荷を、前記残りのコアのうちの少なくとも1つのコアへ移動させるように前記プロセッサに指示すること、
    のうちの少なくとも1つを行うように構成された、請求項29に記載の熱制御モジュール。
  31. 複数のコアを含むプロセッサとインターフェースするためのコンピュータ実行可能なコードを記憶するコンピュータ読取可能な媒体であって、前記複数のコアは、第1のコアと残りのコアとを含み、前記コンピュータ読取可能な媒体は、
    前記複数のコアの前記第1のコアの温度を決定すること、ここで、前記第1のコアは負荷を処理する、と、
    前記第1のコアの前記温度が、第1のしきい値よりも高いことを決定することと、
    前記第1のコアの前記温度が、第2のしきい値よりも高くないことを決定すること、ここで、前記第2のしきい値は、前記第1のしきい値よりも大きい、と、
    前記第1のコアの温度が、前記第1のしきい値よりも高いことを決定することに応じて、前記第1のコアの前記負荷の少なくとも一部を、前記残りのコアのうちの第2のコアへ移動させることと、
    のためのコードを備える、コンピュータ読取可能な媒体。
JP2017523332A 2014-10-30 2015-10-05 マルチコアプロセッサの熱緩和 Pending JP2018501546A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462072975P 2014-10-30 2014-10-30
US62/072,975 2014-10-30
US14/675,409 2015-03-31
US14/675,409 US9582052B2 (en) 2014-10-30 2015-03-31 Thermal mitigation of multi-core processor
PCT/US2015/054048 WO2016069209A1 (en) 2014-10-30 2015-10-05 Thermal mitigation of multi-core processor

Publications (2)

Publication Number Publication Date
JP2018501546A true JP2018501546A (ja) 2018-01-18
JP2018501546A5 JP2018501546A5 (ja) 2018-10-25

Family

ID=55852598

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017523332A Pending JP2018501546A (ja) 2014-10-30 2015-10-05 マルチコアプロセッサの熱緩和

Country Status (5)

Country Link
US (2) US9582052B2 (ja)
EP (1) EP3213202B1 (ja)
JP (1) JP2018501546A (ja)
CN (1) CN107111518B (ja)
WO (1) WO2016069209A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102210770B1 (ko) * 2014-09-02 2021-02-02 삼성전자주식회사 반도체 장치, 반도체 시스템 및 그 제어 방법
US9582052B2 (en) 2014-10-30 2017-02-28 Qualcomm Incorporated Thermal mitigation of multi-core processor
US9958921B2 (en) * 2015-03-09 2018-05-01 Advanced Micro Devices, Inc. Power management to change power limits based on device skin temperature
US20170039093A1 (en) * 2015-08-04 2017-02-09 Futurewei Technologies, Inc. Core load knowledge for elastic load balancing of threads
KR20170069730A (ko) * 2015-12-11 2017-06-21 삼성전자주식회사 온도 및 공간적인 위치에 따라 코어들의 동작들을 관리하는 연산 처리 장치, 및 연산 처리 장치를 포함하는 전자 장치
US10496141B2 (en) * 2016-03-17 2019-12-03 Qualcomm Incorporated System and method for intelligent thermal management in a system on a chip having a heterogeneous cluster architecture
US11399720B2 (en) 2016-04-05 2022-08-02 Qulacomm Incorporated Circuits and methods providing temperature mitigation for computing devices
US9747139B1 (en) 2016-10-19 2017-08-29 International Business Machines Corporation Performance-based multi-mode task dispatching in a multi-processor core system for high temperature avoidance
US9753773B1 (en) 2016-10-19 2017-09-05 International Business Machines Corporation Performance-based multi-mode task dispatching in a multi-processor core system for extreme temperature avoidance
US10884811B2 (en) * 2017-06-04 2021-01-05 Apple Inc. Scheduler for AMP architecture with closed loop performance controller using static and dynamic thread grouping
CN107390834A (zh) * 2017-06-30 2017-11-24 广东欧珀移动通信有限公司 终端设备、温升控制方法、控制装置及存储介质
US10985982B2 (en) * 2017-09-27 2021-04-20 Sonos, Inc. Proximal playback devices
CN107817836A (zh) * 2017-10-27 2018-03-20 界首广播电视台 发射机与多功器系统的控温方法
EP3721653A4 (en) * 2017-12-06 2021-09-01 Plume Design, Inc. THERMAL MANAGEMENT OF WIRELESS ACCESS POINTS
US11119830B2 (en) * 2017-12-18 2021-09-14 International Business Machines Corporation Thread migration and shared cache fencing based on processor core temperature
CN108834187B (zh) * 2018-06-12 2021-05-28 深圳市沃特沃德股份有限公司 移动终端及其温控方法
US11188379B2 (en) 2018-09-21 2021-11-30 International Business Machines Corporation Thermal capacity optimization for maximized single core performance
US11256232B2 (en) 2019-07-16 2022-02-22 Motorola Solutions, Inc. Thermal mitigation within a converged radio device
KR20210011166A (ko) * 2019-07-22 2021-02-01 삼성전자주식회사 전자 장치 및 전자 장치에서 발열 기반의 데이터 처리량 제어 방법
CN110794949A (zh) * 2019-09-27 2020-02-14 苏州浪潮智能科技有限公司 一种基于部件温度自动分配计算资源的降功耗方法和系统
CN110764605B (zh) * 2019-10-30 2021-11-02 Oppo广东移动通信有限公司 多核处理器控制方法、装置、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010039802A (ja) * 2008-08-06 2010-02-18 Nec Corp マルチプロセッサシステム、スケジューリング方法およびそのプログラム
JP2010538371A (ja) * 2007-08-27 2010-12-09 マーベル ワールド トレード リミテッド 動的コア切り替え
JP2011141672A (ja) * 2010-01-06 2011-07-21 Nec Computertechno Ltd 情報処理装置及びその制御方法
JP2013137688A (ja) * 2011-12-28 2013-07-11 Toshiba Corp 平滑化装置、プログラム、及びシステム
JP2014516443A (ja) * 2011-04-22 2014-07-10 クアルコム,インコーポレイテッド ポータブルコンピューティングデバイスにおける熱負荷の管理
JP2014516446A (ja) * 2011-04-25 2014-07-10 クアルコム,インコーポレイテッド ポータブルコンピューティングデバイスにおいて電流を監視し制御することによって熱負荷を低減するための方法およびシステム

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020087903A1 (en) * 2000-12-29 2002-07-04 James Hermerding Mechanism for managing power generated in a computer system
US8037445B2 (en) * 2003-08-20 2011-10-11 Hewlett-Packard Development Company, L.P. System for and method of controlling a VLSI environment
US7263457B2 (en) 2006-01-03 2007-08-28 Advanced Micro Devices, Inc. System and method for operating components of an integrated circuit at independent frequencies and/or voltages
US20080005591A1 (en) 2006-06-28 2008-01-03 Trautman Mark A Method, system, and apparatus for dynamic thermal management
US7783903B2 (en) * 2007-08-07 2010-08-24 International Business Machines Corporation Limiting power consumption by controlling airflow
US7886172B2 (en) * 2007-08-27 2011-02-08 International Business Machines Corporation Method of virtualization and OS-level thermal management and multithreaded processor with virtualization and OS-level thermal management
US7934110B2 (en) * 2007-09-25 2011-04-26 Intel Corporation Dynamically managing thermal levels in a processing system
US7962774B2 (en) * 2007-10-04 2011-06-14 Wisconsin Alumni Research Foundation Over-provisioned multicore processor
US20110138395A1 (en) 2009-12-08 2011-06-09 Empire Technology Development Llc Thermal management 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
US10049957B2 (en) 2011-03-03 2018-08-14 International Business Machines Corporation On-chip control of thermal cycling
US8904204B2 (en) * 2012-06-29 2014-12-02 International Business Machines Corporation Managing computing resources through aggregated core management
KR102005765B1 (ko) 2012-12-17 2019-07-31 삼성전자주식회사 시스템-온 칩과, 이의 동작 방법
US20140240031A1 (en) 2013-02-27 2014-08-28 Qualcomm Incorporated System and method for tuning a thermal strategy in a portable computing device based on location
US9037882B2 (en) * 2013-02-27 2015-05-19 Qualcomm Incorporated System and method for thermal management in a portable computing device using thermal resistance values to predict optimum power levels
CA2906529A1 (en) * 2013-03-14 2014-10-02 Rivada Networks, Llc Methods and systems for dynamic spectrum arbitrage
US9261935B2 (en) * 2013-07-01 2016-02-16 Advanced Micro Devices, Inc. Allocating power to compute units based on energy efficiency
US9342135B2 (en) * 2013-10-11 2016-05-17 Qualcomm Incorporated Accelerated thermal mitigation for multi-core processors
US9582052B2 (en) 2014-10-30 2017-02-28 Qualcomm Incorporated Thermal mitigation of multi-core processor

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010538371A (ja) * 2007-08-27 2010-12-09 マーベル ワールド トレード リミテッド 動的コア切り替え
JP2010039802A (ja) * 2008-08-06 2010-02-18 Nec Corp マルチプロセッサシステム、スケジューリング方法およびそのプログラム
JP2011141672A (ja) * 2010-01-06 2011-07-21 Nec Computertechno Ltd 情報処理装置及びその制御方法
JP2014516443A (ja) * 2011-04-22 2014-07-10 クアルコム,インコーポレイテッド ポータブルコンピューティングデバイスにおける熱負荷の管理
JP2014516446A (ja) * 2011-04-25 2014-07-10 クアルコム,インコーポレイテッド ポータブルコンピューティングデバイスにおいて電流を監視し制御することによって熱負荷を低減するための方法およびシステム
JP2013137688A (ja) * 2011-12-28 2013-07-11 Toshiba Corp 平滑化装置、プログラム、及びシステム

Also Published As

Publication number Publication date
EP3213202A1 (en) 2017-09-06
WO2016069209A1 (en) 2016-05-06
US9582052B2 (en) 2017-02-28
US20160124476A1 (en) 2016-05-05
CN107111518B (zh) 2020-12-29
CN107111518A (zh) 2017-08-29
US10114443B2 (en) 2018-10-30
EP3213202B1 (en) 2020-07-22
US20170160785A1 (en) 2017-06-08

Similar Documents

Publication Publication Date Title
JP2018501546A (ja) マルチコアプロセッサの熱緩和
JP6873082B2 (ja) 熱アウェアデバイスブーティングのためのシステムおよび方法
CN108780349B (zh) 用于在具有异构集群架构的片上系统中进行智能热管理的系统和方法
TWI595418B (zh) 用於排程任務之系統、電腦實施方法及電腦可讀媒體
US9297559B2 (en) Adaptive thermoelectric cooling in a processor
JP6162262B2 (ja) 最適な電力レベルを予測するために熱抵抗値を使用したポータブルコンピューティングデバイスにおける熱管理のためのシステムおよび方法
US9990024B2 (en) Circuits and methods providing voltage adjustment as processor cores become active based on an observed number of ring oscillator clock ticks
US9766675B2 (en) Methods and apparatuses to provide power in idle states
KR101534450B1 (ko) 누설 전류 측정으로부터 열 관리 폴리시를 결정하는 시스템 및 방법
US20120179441A1 (en) Method and system for controlling thermal load distribution in a portable computing device
US9383804B2 (en) Method and system for reducing thermal load by forced power collapse
US10474209B2 (en) Integrated circuit for implementing a cooling algorithm and a mobile device including the same
US9501299B2 (en) Minimizing performance loss on workloads that exhibit frequent core wake-up activity
US9152473B2 (en) Table driven multiple passive trip platform passive thermal management
JP5881198B2 (ja) 優先度ベースのインテリジェントプラットフォームの受動的熱管理
TW201541237A (zh) 電子裝置及其系統功率管理方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180912

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180912

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190529

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190702

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200324