(57)【要約】  方法、装置、およびコンピュータプログラム製品が提供される。装置は、ユーザ機器であり得、ＵＥと呼ばれる。ＵＥは、複数のコアを含むプロセッサを有する。複数のコアは、第１のコアおよび残りのコアを含む。ＵＥは、複数のコアのうちの第１のコアの温度を決定する。第１のコアは、負荷を処理する。ＵＥは、第１のコアの温度が、第１のしきい値よりも高いことを決定する。ＵＥは、第１のコアの温度が、第２のしきい値よりも高くないことを決定する。第２のしきい値は、第１のしきい値よりも大きい。ＵＥは、第１のコアの温度が、第１のしきい値よりも高いことを決定することに応じて、第１のコアの負荷の少なくとも一部を、残りのコアのうちの第２のコアへ移動させる。
2018501546.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ機器（ＵＥ）の動作する方法であって、前記ＵＥは、複数のコアを含むプロセッサを有し、前記複数のコアは、第１のコアと残りのコアとを含み、
前記複数のコアの前記第１のコアの温度を決定すること、ここで、前記第１のコアは負荷を処理する、と、
前記第１のコアの前記温度が、第１のしきい値よりも高いことを決定することと、
前記第１のコアの前記温度が、第２のしきい値よりも高くないことを決定すること、ここで、前記第２のしきい値は、前記第１のしきい値よりも大きい、と、
前記第１のコアの前記温度が、前記第１のしきい値よりも高いことを決定することに応じて、前記第１のコアの前記負荷の少なくとも一部を、前記残りのコアのうちの第２のコアへ移動させることと、
を備える方法。
【請求項２】
前記残りのコアの各コアの温度を決定することをさらに備え、ここにおいて、前記第１のコアの前記負荷の前記少なくとも一部が、前記残りのコアの各コアの前記温度の前記決定に基づいて、前記第２のコアへ移動される、請求項１に記載の方法。
【請求項３】
前記残りのコアのうちのどれが、最も低い温度を有しているのかを決定することをさらに備え、ここにおいて、前記負荷の前記少なくとも一部が、前記第２のコアが前記残りのコアのうちの最も低い温度を有していることを決定することに応じて、前記第２のコアへ移動される、請求項２に記載の方法。
【請求項４】
前記負荷の前記少なくとも一部は、すべての前記負荷であり、すべての前記負荷が、前記第２のコアが前記残りのコアのうちの前記最も低い温度を有していることを決定することに応じて、前記第１のコアから前記第２のコアへ移動される、請求項３に記載の方法。
【請求項５】
前記第２のコアの温度が、第３のしきい値より低いことを決定することをさらに備え、前記第３のしきい値は、前記第１のしきい値より小さく、前記第２のコアが、前記第３のしきい値より低い温度を有していることを決定することに応じて、すべての前記負荷が、前記第２のコアへ移動される、請求項４に記載の方法。
【請求項６】
前記第１のコアから前記第２のコアへすべての前記負荷を移動させる前に、前記第２のコアの電力を増加させることと、
前記第１のコアから前記第２のコアへすべての前記負荷を移動させることに応じて、前記第１のコアの電力を減少させることと、
をさらに備える請求項４に記載の方法。
【請求項７】
前記残りのコアの各コアが、第３のしきい値よりも高い温度を有していることを決定すること、ここで、前記第３のしきい値は、前記第１のしきい値より小さい、と、
前記第２のコアと、前記残りのコアのうちのコアのセットとの間で前記負荷を分配するために、前記負荷の残りの部分をコアの前記セットへ移動させることと、
をさらに備える請求項２に記載の方法。
【請求項８】
前記第１のコアの前記温度から、前記残りのコアの各々のそれぞれの温度の前記それぞれの温度の差を決定することをさらに備え、ここにおいて、前記第１のコアの前記負荷は、前記残りのコアの前記それぞれの温度の差に基づいて、前記残りのコアの間で分配される、請求項７に記載の方法。
【請求項９】
前記負荷の前記少なくとも一部が、さらに、前記第１のコアの前記温度が前記第２のしきい値よりも高くないことを決定することに応じて、移動され、前記方法は、
前記複数のコアの前記第１のコアの第２の温度を決定することと、
前記第１のコアの前記第２の温度が、前記第２のしきい値よりも高いことを決定することと、
前記第１のコアの前記第２の温度が、前記第２のしきい値よりも高いことを決定することに応じて、前記第１のコアの電力消費量を低減させることと、
をさらに備える、請求項１に記載の方法。
【請求項１０】
前記第１のコアの電力消費量を前記低減させることは、
前記第１のコアの周波数を下げること、
前記第１のコアの供給電圧を下げること、
前記第１のコアを電力急減させること、および、
前記残りのコアのうちの少なくとも１つのコアへ前記第１のコードのすべての前記負荷を移動させること、
のうちの少なくとも１つを含む、請求項９に記載の方法。
【請求項１１】
複数のコアを含むプロセッサの熱エネルギを管理するための熱制御モジュールであって、前記複数のコアは、第１のコアと残りのコアとを含み、
前記複数のコアの前記第１のコアの温度を決定するための手段、ここで、前記第１のコアは負荷を処理する、と、
前記第１のコアの前記温度が、第１のしきい値よりも高いことを決定するための手段と、
前記第１のコアの前記温度が、第２のしきい値よりも高くないことを決定するための手段、ここで、前記第２のしきい値は、前記第１のしきい値よりも大きい、と、
前記第１のコアの前記温度が、前記第１のしきい値よりも高いことを決定することに応じて、前記第１のコアの前記負荷の少なくとも一部を、前記残りのコアのうちの第２のコアへ移動させるための手段と、
を備える熱制御モジュール。
【請求項１２】
前記残りのコアの各コアの温度を決定するための手段をさらに備え、ここにおいて、前記第１のコアの前記負荷の前記少なくとも一部が、前記残りのコアの各コアの前記温度の前記決定に基づいて、前記第２のコアへ移動される、請求項１１に記載の熱制御モジュール。
【請求項１３】
前記残りのコアのうちのどれが、最も低い温度を有しているのかを決定するための手段をさらに備え、ここにおいて、前記負荷の前記少なくとも一部が、前記第２のコアが前記残りのコアのうちの前記最も低い温度を有していることを決定することに応じて、前記第２のコアへ移動される、請求項１２に記載の熱制御モジュール。
【請求項１４】
前記負荷の前記少なくとも一部は、すべての前記負荷であり、すべての前記負荷が、前記第２のコアが前記残りのコアのうちの前記最も低い温度を有していることを決定することに応じて、前記第１のコアから前記第２のコアへ移動される、請求項１３に記載の熱制御モジュール。
【請求項１５】
前記第２のコアの温度が、第３のしきい値より低いことを決定するための手段をさらに備え、前記第３のしきい値は前記第１のしきい値より小さく、ここにおいて、すべての前記負荷が、前記第２のコアが前記第３のしきい値より低い温度を有していることを決定することに応じて、前記第２のコアへ移動される、請求項１４に記載の熱制御モジュール。
【請求項１６】
前記第１のコアから前記第２のコアへすべての前記負荷を移動させる前に、前記第２のコアの電力を増加させるための手段と、
前記第１のコアから前記第２のコアへすべての前記負荷を移動させることに応じて、前記第１のコアの電力を減少させるための手段と、
をさらに備える請求項１４に記載の熱制御モジュール。
【請求項１７】
前記残りのコアの各コアが、第３のしきい値よりも高い温度を有していることを決定するための手段、ここで、前記第３のしきい値は、前記第１のしきい値より小さい、と、
前記第２のコアと、前記残りのコアのうちのコアのセットとの間で前記負荷を分配するために、前記負荷の残りの部分を、コアの前記セットへ移動させるための手段と、
をさらに備える請求項１２に記載の熱制御モジュール。
【請求項１８】
前記第１のコアの温度から、前記残りのコアの各々のそれぞれの温度の前記それぞれの温度の差を決定するための手段をさらに備え、ここにおいて、移動させるための前記手段は、前記残りのコアの前記それぞれの温度の差に基づいて、前記残りのコアの間で前記第１のコアの前記負荷を分配するように構成される、請求項１７に記載の熱制御モジュール。
【請求項１９】
移動させるための前記手段は、さらに、前記第１のコアの前記温度が前記第２のしきい値よりも高くないことを決定することに応じて、前記負荷の前記少なくとも一部を移動させるように構成され、前記熱制御モジュールは、
前記複数のコアの前記第１のコアの第２の温度を決定するための手段と、
前記第１のコアの前記第２の温度が、前記第２のしきい値よりも高いことを決定するための手段と、
前記第１のコアの前記第２の温度が、前記第２のしきい値よりも高いことを決定することに応じて、前記第１のコアの電力消費量を低減させるための手段と、
をさらに備える、請求項１１に記載の熱制御モジュール。
【請求項２０】
前記第１のコアの電力消費量を低減させるために、前記電力消費量を低減させるための前記手段は、
前記第１のコアの周波数を下げること、
前記第１のコアの供給電圧を下げること、
前記第１のコアを電力急減させること、および
前記第１のコードのすべての前記負荷を、前記残りのコアのうちの少なくとも１つのコアへ移動させること
のうちの少なくとも１つを行うように構成された、請求項１９に記載の熱制御モジュール。
【請求項２１】
複数のコアを含むプロセッサの熱エネルギを管理するための熱制御モジュールであって、前記複数のコアは、第１のコアと残りのコアとを含み、
温度センサと電気通信する回路を備え、ここにおいて、前記回路は、
前記温度センサから、前記複数のコアの前記第１のコアの温度を受信し、ここで、前記第１のコアは負荷を処理し、
前記第１のコアの前記温度が、第１のしきい値よりも高いことを決定し、
前記第１のコアの前記温度が、第２のしきい値よりも高くないことを決定し、ここで、前記第２のしきい値は前記第１のしきい値よりも大きく、
前記第１のコアの前記温度が、前記第１のしきい値よりも高いことを決定することに応じて、前記第１のコアの前記負荷の少なくとも一部を、前記残りのコアのうちの第２のコアへ移動させるように、前記プロセッサに指示する、
ように構成される、熱制御モジュール。
【請求項２２】
前記回路は、前記温度センサから、前記残りのコアの各コアの温度を受信するようにさらに構成され、ここにおいて、前記回路は、前記第１のコアの前記負荷の前記少なくとも一部を、前記残りのコアの各コアの前記温度に基づいて、前記第２のコアへ移動させるように前記プロセッサに指示するようにさらに構成される、請求項２１に記載の熱制御モジュール。
【請求項２３】
前記回路は、前記残りのコアのうちのどれが、最も低い温度を有しているのかを決定するようにさらに構成され、ここにおいて、前記回路は、前記第２のコアが、前記残りのコアのうちの前記最も低い温度を有していることを決定することに応じて、前記負荷の前記少なくとも一部を、前記第２のコアへ移動させるように前記プロセッサに指示するようにさらに構成される、請求項２２に記載の熱制御モジュール。
【請求項２４】
前記負荷の前記少なくとも一部は、すべての前記負荷であり、前記回路は、前記第２のコアが、前記残りのコアのうちの前記最も低い温度を有していることを決定することに応じて、すべての前記負荷を、前記第１のコアから、前記第２のコアへ移動させるように前記プロセッサに指示するようにさらに構成される、請求項２３に記載の熱制御モジュール。
【請求項２５】
前記回路は、前記第２のコアの温度が、第３のしきい値より低いことを決定するようにさらに構成され、前記第３のしきい値は、前記第１のしきい値より小さく、ここにおいて、前記回路は、前記第２のコアが、前記第３のしきい値より低い温度を有していることを決定することに応じて、すべての前記負荷を、前記第２のコアへ移動させるように前記プロセッサに指示するようにさらに構成された、請求項２４に記載の熱制御モジュール。
【請求項２６】
前記回路は、
前記第１のコアから前記第２のコアへすべての前記負荷を移動させる前に、前記第２のコアの電力を増加し、
前記第１のコアから前記第２のコアへすべての前記負荷を移動させることに応じて、前記第１のコアの電力を減少させる、
ように前記プロセッサに指示するようにさらに構成された、請求項２４に記載の熱制御モジュール。
【請求項２７】
前記回路は、
前記残りのコアの各コアが、第３のしきい値よりも高い温度を有していることを決定し、ここで、前記第３のしきい値は前記第１のしきい値より小さく、
前記第２のコアと、前記残りのコアのうちのコアのセットとの間で前記負荷を分配するために、前記負荷の残りの部分をコアの前記セットへ移動させるように前記プロセッサに指示する、
ようにさらに構成された、請求項２２に記載の熱制御モジュール。
【請求項２８】
前記回路は、前記第１のコアの前記温度から、前記残りのコアの各々のそれぞれの温度の前記それぞれの温度の差を決定するようにさらに構成され、ここにおいて、前記回路は、前記残りのコアの前記それぞれの温度の差に基づいて、前記残りのコアの間で前記第１のコアの前記負荷を分配するように前記プロセッサに指示するように構成された、請求項２７に記載の熱制御モジュール。
【請求項２９】
前記回路は、
さらに、前記第１のコアの前記温度が、前記第２のしきい値よりも高くないことを決定することに応じて、前記負荷の少なくとも一部を移動させるように前記プロセッサに指示し、
前記温度センサから、前記複数のコアの前記第１のコアの第２の温度を受信し、
前記第１のコアの第２の前記温度が、前記第２のしきい値よりも高いことを決定し、
前記第１のコアの前記第２の温度が、前記第２のしきい値よりも高いことを決定することに応じて、前記第１のコアの電力消費量を低減させるように前記プロセッサに指示する、
ようにさらに構成された、請求項２１に記載の熱制御モジュール。
【請求項３０】
前記第１のコアの電力消費量を低減させるために、前記回路は、
前記第１のコアの周波数を下げること、
前記第１のコアの供給電圧を下げること、
前記第１のコアを電力急減させること、および
前記第１のコードのすべての前記負荷を、前記残りのコアのうちの少なくとも１つのコアへ移動させるように前記プロセッサに指示すること、
のうちの少なくとも１つを行うように構成された、請求項２９に記載の熱制御モジュール。
【請求項３１】
複数のコアを含むプロセッサとインターフェースするためのコンピュータ実行可能なコードを記憶するコンピュータ読取可能な媒体であって、前記複数のコアは、第１のコアと残りのコアとを含み、前記コンピュータ読取可能な媒体は、
前記複数のコアの前記第１のコアの温度を決定すること、ここで、前記第１のコアは負荷を処理する、と、
前記第１のコアの前記温度が、第１のしきい値よりも高いことを決定することと、
前記第１のコアの前記温度が、第２のしきい値よりも高くないことを決定すること、ここで、前記第２のしきい値は、前記第１のしきい値よりも大きい、と、
前記第１のコアの温度が、前記第１のしきい値よりも高いことを決定することに応じて、前記第１のコアの前記負荷の少なくとも一部を、前記残りのコアのうちの第２のコアへ移動させることと、
のためのコードを備える、コンピュータ読取可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願に対する相互参照
[0001]本願は、「THERMAL MITIGATION OF MULTI-CORE PROCESSOR」と題され２０１４年１０月３０日に出願された米国仮出願番号第６２／０７２，９７５号と、「THERMAL MITIGATION OF MULTI-CORE PROCESSOR」と題され２０１５年３月３１日に出願された米国特許出願番号第１４／６７５，４０９号とに対する利益を主張し、この全体が本明細書において参照によって明確に組み込まれた。
【０００２】
[0002]本開示は、一般に、ユーザ機器（ＵＥ）に関し、さらに詳しくは、ＵＥにおけるマルチコアプロセッサの熱緩和の技術に関する。
【背景技術】
【０００３】
[0003]ＵＥは、多数のコアを有するプロセッサを利用し得る。ＵＥは、セルラ電話、携帯情報端末（「ＰＤＡ」）、ポータブルゲームコンソール、パームトップコンピュータ、および他のポータブル電子デバイスのようなポータブルコンピューティングデバイス（「ＰＣＤ」）を含む。いくつかのより小さなＵＥは、たとえばファンのような能動的な冷却デバイスを有していないことがあり、能動的な冷却デバイスは、ラップトップおよびデスクトップコンピュータのようなより大きなＵＥにおいてしばしば見出される。したがって、ＵＥのプロセッサの１つまたは複数のコアによって生成された熱を効率的に緩和するためのニーズがある。
【発明の概要】
【０００４】
[0004]本開示の態様では、方法、コンピュータプログラム製品、および装置が提供される。装置は、ＵＥであり得る。ＵＥは、複数のコアを含むプロセッサを有する。複数のコアは、第１のコアおよび残りのコアを含む。ＵＥは、複数のコアのうちの第１のコアの温度を決定する。第１のコアは、負荷を処理する。ＵＥは、第１のコアの温度が、第１のしきい値よりも高いことを決定する。ＵＥは、第１のコアの温度が、第２のしきい値よりも高くないことを決定する。第２のしきい値は、第１のしきい値よりも大きい。ＵＥは、第１のコアの温度が、第１のしきい値よりも高いことを決定することに応じて、第１のコアの負荷の少なくとも一部を、残りのコアのうちの第２のコアへ移動させる。
【図面の簡単な説明】
【０００５】
【図１】[0005]図１は、ＵＥの典型的な実施形態を例示する機能ブロック図である。
【図２】[0006]図２は、ＵＥの熱緩和手順を例示する図解である。
【図３】[0007]図３は、ＵＥにおける温度上昇を例示する図解である。
【図４】[0008]図４は、ＵＥの別の熱緩和手順を例示する図解である。
【図５】[0009]図５は、ＵＥがプロセッサのコア間で負荷を移動させるための熱緩和手順を例示する図解である。
【図６】[0010]図６は、ＵＥがプロセッサのコア間で負荷を分配するための熱緩和手順を例示する図解である。
【発明を実施するための形態】
【０００６】
[0011]添付図面とともに以下に記述される詳細な説明は、様々な構成の説明として意図されており、本明細書に記載された概念が実現され得る唯一の構成を表すことは意図されていない。詳細な説明は、様々な概念の完全な理解を提供することを目的とした具体的な詳細を含む。しかしながら、これら概念は、これら具体的な詳細無しで実現され得ることが当業者に明らかになるであろう。いくつかの事例では、周知の構成および構成要素が、このような概念を曖昧にすることを避けるために、ブロック図形式で図示される。装置および方法は、以下の詳細な説明において説明されるであろう。そして、様々なブロック、モジュール、構成要素、回路、ステップ、処理、アルゴリズム、要素等によって添付図面において例示され得る。
【０００７】
[0012]ＵＥのいくつかの態様が、様々な装置および方法を参照して提示されるであろう。これら装置および方法は、様々なブロック、モジュール、構成要素、回路、ステップ、処理、アルゴリズム等（集合的に「要素」と称される）によって、後述する詳細な説明おいて説明され、添付図面に例示されるであろう。これら要素は、電子ハードウェア、コンピュータソフトウェア、またはそれらの任意の組合せを使用して実施され得る。これら要素がハードウェアとしてまたはソフトウェアとして実施されるか否かは、特定のアプリケーションと、システム全体に課せられる設計制約とに依存する。
【０００８】
[0013]例として、要素、要素の任意の部分、または、要素の任意の組合せは、１つまたは複数のプロセッサを含む「処理システム」を用いて実施され得る。プロセッサの例は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ（ＤＳＰ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プログラマブル論理デバイス（ＰＬＤ）、ステートマシン、ゲートロジック、ディスクリートハードウェア回路、およびこの開示の全体にわたって説明された様々な機能を実行するように構成された他の適切なハードウェアを含む。処理システムにおける１つまたは複数のプロセッサは、ソフトウェアを実行し得る。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはその他として称されるかに関わらず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行形式、実行スレッド、手順、機能等を意味するように広く解釈されるものとする。
【０００９】
[0014]したがって、１つまたは複数の典型的な実施形態では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、あるいはそれらの任意の組合せによって実施され得る。ソフトウェアにおいて実施される場合、これら機能は、コンピュータ読取可能な媒体に記憶され得るか、または、コンピュータ読取可能な媒体における１つまたは複数の命令またはコードとして符号化され得る。コンピュータ読取可能な媒体は、コンピュータ記憶媒体を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。例として、限定することなく、このようなコンピュータ読取可能な媒体は、ランダムアクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、電子的消去可能なプログラマブルＲＯＭ（ＥＥＰＲＯＭ（登録商標））、コンパクトディスクＲＯＭ（ＣＤ−ＲＯＭ）または他の光ディスク記憶装置、磁気ディスク記憶装置または他の磁気記憶デバイス、または、命令およびデータ構造の形式で所望のプログラムコードを伝送または記憶するために使用され得、しかもコンピュータによってアクセスされ得る他の任意の媒体を備え得る。上記の組合せもまた、コンピュータ読取可能な媒体の範囲内に含まれるべきである。
【００１０】
[0015]ＰＣＤおよび他のＵＥにおけるパフォーマンス要求が増加している。この結果、ＰＣＤのプロセッサ上のコアの数が増加した。しかしながら、利用可能な電力（電力バジェット）は、これらのデバイスの、制限されたフォームファクタによって制限され得る。コアのすべてが利用される場合、プロセッサのパフォーマンスは、電力バジェットによって制限される。ＰＣＤの信頼度を維持するために、緩和温度しきい値より低くプロセッサ／コアの温度を維持することが有益である。緩和温度しきい値が達せられた場合、ＰＣＤは、プロセッサ／コアの温度を制御するために、プロセッサ／コアのパフォーマンスを低減する熱緩和手順を実行し得る。プロセッサ／コアのパフォーマンスを下げることを避けるために、プロセッサ／コアを緩和温度しきい値の下でより長い期間動作させることがさらに有益である。
【００１１】
[0016]いくつかの構成では、実施される緩和手順は、プロセッサの温度を減少させるために、プロセッサパフォーマンスを低下させる。たとえば、コアの温度が、緩和温度しきい値に達した場合、コアの供給電圧および／または動作周波数は、電力消費、すなわち、コアの温度を低下させるために減少され得る。周波数／電圧の低下は、パフォーマンスの低下に至り得る。
【００１２】
[0017]他方、ＰＣＤにおいて実行中のアプリケーションは、シングル／デュアルコア集中型であり得る。したがって、プロセッサへのさらなるコアの追加が、直接的に、向上されたパフォーマンスにならないことがある。シングル／デュアルコアアプリケーションは、余分なコアを利用しないことがある。１つまたは２つのコアが、アプリケーションによって利用されている間、残りのコアが、より少ないタスクを取り扱い得、より少ない電力を消費し得る。結果として、より少ないタスクを取り扱う残りのコアは、アプリケーションによって利用されるコアよりも比較的温度が低いことがある。
【００１３】
[0018]いくつかの構成では、ＰＣＤは、事前緩和温度しきい値を伴って構成され得、事前緩和温度しきい値は、緩和温度しきい値よりも低い。コアの温度が、事前緩和温度しきい値に達した場合、スケジューラまたは熱制御モジュールは、より効率的またはより低温のコアの位置を確認し得、事前緩和温度しきい値に達したコアのジョブまたはスレッドを、より低温のコアへ移動させることを開始し得る。より低温のコアの動作周波数は、ジョブまたはスレッドを処理するために必要とされるレベルへと増加され得る。移動が完了すると、事前緩和温度しきい値に達したコアは、温度を低減するために電力急減され得る。この手順は、コアが、緩和温度しきい値の下で、より長時間動作することを可能とし、全体的により良好なパフォーマンスおよびより低い動作温度へと導き得る。
【００１４】
[0019]図１は、ＵＥの典型的な実施形態を例示する機能ブロック図１００である。ＵＥ１１０の例は、セルラ電話、スマートフォン、セッション開始プロトコル（ＳＩＰ）電話、ラップトップ、携帯情報端末（ＰＤＡ）、衛星無線機、全地球測位システム、マルチメディアデバイス、ビデオデバイス、デジタルオーディオプレーヤ（たとえば、ＭＰ３プレーヤ）、カメラ、ゲーム機、タブレット、またはその他任意の同様な機能のデバイスを含む。ＵＥ１１０はまた、移動局、加入者局、モバイルユニット、加入者ユニット、ワイヤレスユニット、遠隔ユニット、モバイルデバイス、ワイヤレスデバイス、ワイヤレス通信デバイス、遠隔デバイス、モバイル加入者局、アクセス端末、移動機、ワイヤレス端末、遠隔端末、ハンドセット、ユーザエージェント、モバイルクライアント、クライアント、または、他のいくつかの適切な用語として当業者によって称され得る。
【００１５】
[0020]ＵＥ１１０は、他の構成要素の中でも、プロセッサ１１２、メモリ１１４、および記憶装置１１６を有する。メモリ１１４は、ＲＡＭのような揮発性データ記憶デバイスである。記憶装置１１６は、フラッシュメモリまたはソリッドステートメモリデバイスのような不揮発性データ記憶デバイスである。記憶装置１１６は、プロセッサ１１２へ結合された個別のデータ記憶装置を備えた分散されたメモリデバイスであり得る。ＵＥ１１０のプロセッサ１１２、メモリ１１４、記憶装置１１６、および他の構成要素は、システムバス１１８を介して互いに通信し得る。プロセッサ１１２は、複数のコアを有する。たとえば、図１に図示されるように、プロセッサ１１２は４つのコア、すなわち、第１のコア１２２、第２のコア１２４、第３のコア１２６、および第４のコア１２８を有する。コア１２２、１２４、１２６、１２８の各々は、中央処理ユニット（ＣＰＵ）コア、グラフィック処理ユニット（ＧＰＵ）コア、または、他の専用機能を有する処理ユニットであり得る。コア１２２、１２４、１２６、１２８の各々は、Ｌ１キャッシュ１２９を有し得る。コア１２２、１２４、１２６、１２８は、Ｌ２キャッシュ１３０を分配し得る。いくつかの構成では、Ｌ１キャッシュ１２９は、３つの独立キャッシュ、すなわち、実行可能な命令フェッチをスピードアップするための命令キャッシュ、データフェッチおよび記憶をスピードアップするためのデータキャッシュ、および、実行可能な命令とデータの両方のためのバーチャル−物理アドレス変換をスピードアップするために使用される変換ルックアサイドバッファ（ＴＬＢ）を含み得る。いくつかの構成では、コア１２２、１２４、１２６、１２８は、同じクラスタに属し得る。言い換えると、コア１２２、１２４、１２６、１２８のアクティブなコアは、同じまたは類似のパフォーマンスレベルで動作するように構成され得る。たとえば、コア１２２、１２４、１２６、１２８のアクティブなコアは、同じ周波数または類似の周波数で動作し得る。いくつかの構成では、コア１２２、１２４、１２６、１２８は、異なるクラスタに属し得る。
【００１６】
[0021]負荷を処理する場合、コア１２２、１２４、１２６、１２８は、熱エネルギ（熱）を生成する。負荷が、コア１２２、１２４、１２６、１２８の所与のコアに集中されている場合、熱エネルギ生成が増加し得、これによって、ＵＥ１１０および／またはユーザ経験のパフォーマンスに潜在的にインパクトを与える。熱エネルギ生成は、相補的なコアにまたがる負荷の再割当によって緩和され得る。ＵＥ１１０の熱制御モジュール１４０は、コア１２２、１２４、１２６、１２８のうち、熱リスクにあるコアと、熱リスクにあるコアから再割当され得る負荷の受け取りのための候補である十分に利用されていないコアとを識別し得る。
【００１７】
[0022]いくつかの構成では、ＵＥ１１０は、コア１２２、１２４、１２６、１２８の近傍に各々配置され、熱制御モジュール１４０によってモニタされる温度センサ１３２、１３４、１３６、１３８を有する。温度センサ１３２、１３４、１３６、１３８のうちの１つが、１つまたは複数の温度しきい値とのあらかじめ決定された関係における温度を測定したことを熱制御モジュール１４０が検出した場合、熱制御モジュール１４０は、プロセッサ１１２内の熱エネルギ生成を低減するために、１つまたは複数の熱緩和対策をコア１２２、１２４、１２６、１２８へ適用し得る。
【００１８】
[0023]いくつかの構成では、熱制御モジュール１４０は、コア１２２、１２４、１２６、１２８の温度をモニタするために、温度センサ１３２、１３４、１３６、１３８を利用しないことがあり、他の利用可能なメカニズムを使用し得る。たとえば、熱制御モジュール１４０は、コア１２２、１２４、１２６、１２８の各々の温度を順に測定する単一の温度センサを使用し得る。
【００１９】
[0024]いくつかの構成では、熱制御モジュール１４０は、プロセッサ１１２の同じダイ（チップ）上の熱コントローラ１４０−１として実施され得る。熱コントローラ１４０−１は、通信リンク１４２を介して温度センサ１３２、１３４、１３６、１３８と通信し得る。熱コントローラ１４０−１は、通信リンク１１８を介してプロセッサ１１２と通信し得る。熱コントローラ１４０−１は、多数の状態を有し様々なフリップフロップまたはレジスタを適用する有限ステートマシンであり得る。熱コントローラ１４０−１は、入力として、温度センサ１３２、１３４、１３６、１３８から温度測定結果を受信し得、それに応答して、１つの状態から、多数の状態のうちの別の状態へ変化させ得る。多数の状態の各々において、熱コントローラ１４０−１は、図４〜図６を参照して以下に説明される動作のうちの１つまたは複数を実行し得る。
【００２０】
[0025]いくつかの構成では、熱制御モジュール１４０は、プロセッサ１１２から分離された熱コントローラ１４０−１として実施され得る。熱コントローラ１４０−１は、通信リンク１４２（たとえば、管理バス）を介して、温度センサ１３２、１３４、１３６、１３８と通信し得る。熱コントローラ１４０−１は、通信リンク１１８（たとえば、システムバス）を介して、プロセッサ１１２と通信し得る。熱コントローラ１４０−１は、それ自身の処理ユニットおよびメモリを有し得る。
【００２１】
[0026]いくつかの構成では、熱制御モジュール１４０は、ソフトウェア熱制御モジュール１４０−２によって実施され得る。ソフトウェア熱制御モジュール１４０−２は、記憶装置１１６に記憶され得、コア１２２、１２４、１２６、１２８のうちの１つによる実行のために、メモリ１１４へロードされ得る。
【００２２】
[0027]図２は、ＵＥ１１０の熱緩和手順を例示する図解２００である。動作２０４において、ＵＥ１１０の手順が開始する。動作２０６において、ＵＥ１１０は電源を投入される。動作２０８において、ＵＥ１１０は、ＵＥ１１０にインストールされたシステムを使えるようにする。たとえば、記憶装置１１６は、オペレーティングシステム（ＯＳ）を記憶し得る。プロセッサ１１２は、ＯＳの必要な構成要素をメモリ１１４へロードし、これら構成要素を実行し得る。１つの構成では、ＯＳは、電源を投入し得、１つまたは複数のタスクを、コア１２２、１２４、１２６、１２８のうちの１つまたは複数へ割り当て得る。コア１２２、１２４、１２６、１２８のうちのコアの最も頻繁に使用されるデータおよび命令は、対応するＬ１キャッシュ１２９において記憶され得る。Ｌ１キャッシュ１２９におけるデータよりもさほど頻繁に使用されないいくつかのデータは、Ｌ２キャッシュ１３０において記憶され得る。コアがタスクを割り当てられていないのであれば、このコアは、オフされ得る。たとえば、コアは、電力急減され得る。すなわち、電力は、もはやコアへ提供されない。あるいは、コアは、クロックゲートされ得る。このケースでは、電力は、未だにコアへ提供されるが、クロックは、トグルしないように、ゲート制御される。クロックは、ゲート制御により、今や静止しているので、コアは、処理を実行せず、したがって、「オフ」であると見なされ得る。それに加えて、コアのクロックがゲートされ得、コアへ供給された電圧が、（Ｌ１キャッシュ１２９のような）コアのローカルメモリに記憶されたデータを保持するのに十分であるが、、コアが処理を実行するためには低すぎる低いレベルへ低減され得る。したがって、コアは、「オフ」であると見なされ得る。コアをオフするこれら異なる方式は、異なる復帰時間となり得る。言い換えれば、上記各方法について、コアを、オフされた後に「オン」に戻すステップは、異なる長さの時間を費やし得る。負荷を処理する（すなわち、１つまたは複数のタスクを実行している）各コアは、熱エネルギを生成する。各コアは、１つまたは複数の動作周波数において実行し得る。いくつかの構成では、コア１２２、１２４、１２６、１２８は、異なる動作周波数で動作し得る。いくつかの構成では、コア１２２、１２４、１２６、１２８は、常に同じ動作周波数で動作し得る。さらに、この例において、温度センサ１３２、１３４、１３６、１３８は、コア１２２、１２４、１２６、１２８の温度を各々測定するために動作する。
【００２３】
[0028]熱制御モジュール１４０は、緩和温度しきい値（Ｔｍｉｔ）、事前緩和温度しきい値（Ｔｐｒｅ−ｍｉｔ）、および負荷分配温度しきい値（Ｔｌｏａｄ−ｓｈａｒｅ）を用いて設定され得る。動作２１０において、熱制御モジュール１４０は、コア１２２、１２４、１２６、１２８のコアの温度を決定する。温度センサにおいて測定されたコアの温度（Ｔｉ）を受信するために、熱制御モジュール１４０は、温度センサと通信し得る。いくつかの構成では、熱制御モジュール１４０は、すべてのコア１２２、１２４、１２６、１２８の温度を受信し得、その後、緩和対策を適用するために、最高温度を有するコア（たとえば、第１のコア１２２）を選択し得る。今後、例として、第１のコア１２２が参照され得る。それでもなお、説明された手順は、コア１２２、１２４、１２６、１２８のうちの他のコアへ同様に適用され得る。この例において、熱制御モジュール１４０は、温度センサ１３２において測定された第１のコア１２２の温度を受信し得る。動作２１２において、熱制御モジュール１４０は、測定された温度が、緩和温度しきい値（たとえば、９０℃）よりも高いか否かを決定する。測定された温度が、緩和温度しきい値よりも高いのであれば、熱制御モジュール１４０は、第１のコア１２２が、臨界熱条件にあると決定し得る。それに続いて、動作２１４において、熱制御モジュール１４０は、第１のコア１２２の温度を下げるために、第１のコア１２２に対して、動作周波数を低減するか、および／または、第１のコア１２２の供給電圧を下げるように指示し得る。それに続いて、手順は動作２１０へ戻り、ここでは、熱制御モジュール１４０が、次のコア（たとえば、第２のコア１２４）の温度を決定する。
【００２４】
[0029]動作２１２において、第１のコア１２２の温度が、緩和温度しきい値よりも高くないと熱制御モジュール１４０が決定すると、動作２１６において、熱制御モジュール１４０は、温度が、事前緩和温度しきい値（たとえば、８０℃）よりも高いか否かを決定する。温度が、事前緩和温度しきい値よりも高くないのであれば、手順は、動作２１０へ戻り、ここで、熱制御モジュール１４０は、次のコア（たとえば、第２のコア１２４）の温度を決定する。
【００２５】
[0030]動作２１６において、第１のコア１２２の温度が、緩和温度しきい値よりも高いことを熱制御モジュール１４０が決定すると、熱制御モジュール１４０は、第１のコア１２２が、熱リスクにあるコアであると考慮し得る。動作２１８において、熱制御モジュール１４０は、残りのコア（すなわち、第２のコア１２４、第３のコア１２６、および第４のコア１２８）の温度を決定するために、温度センサ１３４、温度センサ１３６、および温度センサ１３８と通信する。いくつかの構成では、コア１２２、１２４、１２６、１２８は、同じクラスタに属し得る。すなわち、残りのコアは、第１のコア１２２の同じクラスタからのものである。したがって、熱制御モジュール１４０は、同じクラスタ内の別のコアを選択するために、以下に説明された技術を使用し得、第１のコア１２２のいくつかまたはすべての負荷を、同じクラスタの選択されたコアへ移動させ得る。いくつかの構成では、コア１２２、１２４、１２６、１２８は、異なるクラスタに属し得る。したがって、熱制御モジュール１４０は、第１のコア１２２のいくつかまたはすべての負荷を移動させるために、コアのクラスタを考察することなく、別のコアを選択するために、以下に説明される技術を使用し得る。たとえば、熱制御モジュール１４０は、異なるクラスタにわたるコアの温度に基づいて、コアを選択し得る。第１のコア１２２および第３のコア１２６は、第１のクラスタ（たとえば、高いパフォーマンスのクラスタ）に属し得る。第２のコア１２４および第４のコア１２８は、第２のクラスタ（たとえば、低いパフォーマンスのクラスタ）に属し得る。動作２２０において、熱制御モジュール１４０は、最低温度（Ｔｊ）のみならず、最低温度を有するコアをも決定し得る。たとえば、第２のコア１２４は、最低温度を有するコアであり得る。動作２２２において、第２のコア１２４がオンされないのであれば、熱制御モジュール１４０は、第２のコア１２４（すなわち、最低温度を有するコア）をオンする。
【００２６】
[0031]動作２２４において、熱制御モジュール１４０は、第２のコア１２４の温度が、負荷分配温度しきい値（たとえば、７５℃）よりも高いか否かを決定する。この温度が、負荷分配温度しきい値よりも高くないのであれば、動作２２６において、熱制御モジュール１４０は、第１のコア１２２に対して、第１のコア１２２のすべての負荷を、第２のコア１２４へ移動させるように指示する。いくつかの構成では、第１のコア１２２は、第１のコア１２２のＬ１キャッシュ１２９−１におけるすべてのデータおよび指示を、第２のコア１２４のＬ１キャッシュ１２９−２へ移動させる。したがって、第２のコア１２４は、第１のコア１２２上で実行されたタスクの実行を継続することができる。いくつかの構成では、第２のコア１２４は、移動された負荷を受け取ることに応じて、増加した負荷を処理するために、第２のコア１２４の動作周波数を増加させ得る。それに続いて、動作２２８において、熱制御モジュール１４０は、第１のコア１２２をオフする、すなわち、電力急減する。実行中のコアは、リーク電流を生成し得、それは、熱エネルギを生成する。実行中のコアをオフするステップは、リーク電流を低下または除去し得る。いくつかの構成では、さらなる緩和対策として、熱制御モジュール１４０は、他の残りの実行中のコア（すなわち、第３のコア１２６および第４のコア１２８）の各々が、タスクを取り扱っているか否かを検出し得、タスクを取り扱っていない任意のコアをオフにし得る。それに続いて、手順は、動作２１０へ戻り、ここでは、熱制御モジュール１４０が、次のコアの温度を決定する。
【００２７】
[0032]動作２２４中に、第２のコア１２４の温度が負荷分配温度しきい値よりも高いと熱制御モジュール１４０が決定すると、動作２３０において、熱制御モジュール１４０は、他の残りの実行中のコア（すなわち、第３のコア１２６および第４のコア１２８）の各々が、タスクを取り扱っているか否かを検出し得、タスクを取り扱っていない任意のコアをオフにし得る。たとえば、熱制御モジュール１４０は、第４のコア１２８が、何れのタスクをも取り扱っていないことを検出し得、第４のコア１２８をオフにし得る。動作２３２において、熱制御モジュール１４０は、第１のコア１２２に対して、第１のコア１２２の負荷を、すべての残りの実行中のコア（すなわち、この例では、第２のコア１２４と第３のコア１２６）と分配するように指示する。熱制御モジュール１４０は、第２のコア１２４および第３のコア１２６へ移動されるべき第１のコア１２２の負荷のパーセンテージを決定し得る。熱制御モジュール１４０は、第１のコア１２２に対して、第１のコア１２２のＬ１キャッシュ１２９−１に記憶された対応するデータおよび命令を、第２のコア１２４のＬ１キャッシュ１２９−２と、第３のコア１２６のＬ１キャッシュ１２９−３へ移動させるように指示し得る。
【００２８】
[0033]いくつかの構成では、第１のコア１２２から残りの実行中のコアへ移動されるべき負荷のパーセンテージが、第１のコア１２２の温度と、残りの実行中のコアの温度とに基づいて決定され得る。さらに、残りの実行中のコア間で移動される負荷の分散は、第１のコア１２２と、残りの実行中のコアとの間の相対的な温度の差に基づき得る。第１のコア１２２からのより大きな温度の差を有するコアは、第１のコア１２２から移動された、より大きなパーセンテージの負荷を受け取り得る。たとえば、第１のコア１２２は、８５℃にあり得、第２のコア１２４は、７５℃にあり得、第３のコア１２６は、７８℃にあり得、（オンである）第４のコア１２８は、７６℃にあり得る。よって、第２のコア１２４は、最も大きいパーセンテージの負荷を受け取り、第３のコア１２６は、最も低いパーセンテージの負荷を受け取る。それに続いて、手順は、動作２１０へ戻り、ここでは、熱制御モジュール１４０が、次のコアの温度を決定する。
【００２９】
[0034]図３は、ＵＥにおける温度上昇を例示する図解３００である。Ｘ軸は時間である。Ｙ軸は温度である。曲線３１０は、第１のコア１２２の温度変化を例示する。曲線３２０は、第２のコア１２４の温度変化を例示する。
【００３０】
[0035]時間ｔ０において、ＵＥ１１０は電源を投入される。第１のコア１２２および第２のコア１２４は、たとえば室温である基準温度（Ｔｂａｓｅ）にある。第１のコア１２２は、１つまたは複数の処理タスクを割り当てられ得る。第２のコア１２４は、０以上の処理タスクを割り当てられ得る。第１のコア１２２が負荷を処理している場合、第１のコア１２２は、熱エネルギを生成し、時間ｔ１において事前緩和温度しきい値に達し得る。何れの緩和対策をも受け取ることがなければ、第１のコア１２２は、時間ｔ２において、緩和温度しきい値に達し得る。第２のコア１２４は、たとえば、より少ないタスクを処理し得、したがって、時間ｔ１において、事前緩和温度しきい値よりも低い温度を有する。いくつかの構成では、時間ｔ１において（すなわち、第１のコア１２２の温度が、事前緩和温度しきい値に達したことを検出すると）、熱制御モジュール１４０は、第１のコア１２２の負荷のいくつかまたはすべてを第２のコア１２４へ移動させるように動作し得る。第１のコア１２２の負荷のすべてが、第２のコア１２４へ移動されると、第１のコア１２２がオフされ得る。
【００３１】
[0036]第１のコア１２２の負荷が、第２のコア１２４へ移動された後、第１のコア１２２の温度は、低下し始め得る。時間ｔ１の後、第２のコア１２４が、第１のコア１２２から移動された負荷を処理し始めるので、第２のコア１２４の温度は、以前よりも早く上昇し得る。第２のコア１２４の温度は、時間ｔ３において、事前緩和温度しきい値に達し得る。何れの緩和対策も受け取らないと、第２のコア１２４の温度は、時間ｔ５において緩和温度しきい値に達し得る。時間ｔ１から時間ｔ３まで、第１のコア１２２は、以前よりも少ない負荷しか処理しないか、または、負荷をまったく処理しない。よって、第１のコア１２２の温度が低下し、時間ｔ３において事前緩和温度より下の点に到達し得る。いくつかの構成では、時間ｔ３において（すなわち、第２のコア１２４の温度が事前緩和温度しきい値に達したことと、第１のコア１２２の温度が事前緩和温度しきい値より下であることとを検出すると）、熱制御モジュール１４０は、第２のコア１２４の負荷のいくつかまたはすべてを第１のコア１２２へ移動させるように動作し得る。それに続いて、第１のコア１２２の温度が上昇し始め得、ｔ４において事前緩和温度しきい値に達し得る。第２のコア１２４の温度は、下降し始め得、時間ｔ４において事前緩和温度しきい値より下の点に達し得る。
【００３２】
[0037]図４は、ＵＥの熱緩和手順を例示する図解４００である。ＵＥは（たとえば、ＵＥ１１０）は、複数のコア（たとえば、コア１２２、１２４、１２６、１２８）を含むプロセッサ（たとえば、プロセッサ１１２）を有する。複数のコアは、第１のコアおよび残りのコアを含む。第１のコアは、負荷を処理する。
【００３３】
[0038]動作４０２において、ＵＥは、第１のコアの温度を決定する。たとえば、図２を参照して示すように、熱制御モジュール１４０は、温度センサ１３２において測定された第１のコア１２２の温度を受信し得る。動作４０４において、ＵＥは、第１のコアの温度が、第２のしきい値（たとえば、緩和温度しきい値）よりも高いか否かを決定し得る。第１のコアの温度が第２のしきい値よりも高いのであれば、動作４０６において、ＵＥは、第１のコアの電力消費量を低減させる。いくつかの構成では、第１のコアの電力消費量を低減させるために、ＵＥは、（ａ）第１のコアの周波数を低減する、（ｂ）第１のコアの供給電圧を低減する、（ｃ）第１のコアを電力急減させる、（ｄ）第１のコードのすべての負荷を、残りのコアのうちの少なくとも１つのコアへ移動させる、のうちの少なくとも１つを行い得る。たとえば、図２を参照して示すように、動作２１４において、熱制御モジュール１４０は、第１のコア１２２の温度を低下させるために、第１のコア１２２に対して、動作周波数を低減するように指示し得、および／または、第１のコア１２２の供給電圧を低下するように指示し得る。
【００３４】
[0039]動作４０４中に、第１のコアの温度が、第２のしきい値よりも高くないことをＵＥが決定すると、動作４０８において、ＵＥは、第１のコアの温度が、第１のしきい値（たとえば、事前緩和温度しきい値）よりも高いか否かを決定する。第２のしきい値は、第１のしきい値よりも大きい。第１のコアの温度が、第１のしきい値よりも高くないのであれば、動作４１０において、手順は終了する。
【００３５】
[0040]第１のコアの温度が、第１のしきい値よりも高いのであれば、動作４１２において、ＵＥは、残りのコアの第２のコアへ、第１のコアの負荷の少なくとも一部を移動させる。追加の動作４１１が、動作４１２に先立って実行され得る。動作４１２内において、ＵＥは、動作４１４において、残りのコアの各コアの温度を決定し得る。それに続いて、動作４１６において、ＵＥは、残りのコアの各コアの温度の決定に基づいて、第２のコアへ、第１のコアの負荷の少なくとも一部を移動させる。たとえば、図３を参照して示すように、時間ｔ１において（すなわち、第１のコア１２２の温度が、事前緩和温度しきい値に達したことが検出されると）、熱制御モジュール１４０は、第２のコア１２４へ、第１のコア１２２の負荷のうちのいくつかまたはすべてを移動させるように動作し得る。
【００３６】
[0041]図５は、ＵＥがプロセッサのコア間で負荷を移動させるための熱緩和手順を例示する図解５００である。この手順は、図４に例示された動作４１１、４１２において動作４０８に続く。動作５０２において、ＵＥは、残りのコアのどれが、最低温度を有しているのかを決定する。たとえば、図２を参照して示すように、動作２２０において、熱制御モジュール１４０は、最低温度（Ｔｊ）のみならず、最低温度を有するコアを決定し得る。
【００３７】
[0042]動作５０４において、ＵＥは、第２のコアが、残りのコアのうちの最低温度を有していると決定する。動作５０６において、ＵＥは、第２のコアの温度が、第３の温度（たとえば、負荷分配温度しきい値）より低いことを決定する。第３のしきい値は、第１のしきい値（たとえば、事前緩和温度しきい値）より小さい。動作５０８において、ＵＥは、第２のコアに電力を供給する。たとえば、図２を参照して示すように、動作２２２において、熱制御モジュール１４０は、第２のコア１２４（すなわち、最低温度を有するコア）がオンされていないのであれば、第２のコア１２４をオンする。
【００３８】
[0043]動作５１０において、ＵＥは、第２のコアへ第１のコアのすべての負荷を移動させる。たとえば、図２を参照して示すように、動作２２６において、第１のコア１２２が、第１のコア１２２のＬ１キャッシュ１２９−１におけるすべてのデータおよび命令を、第２のコア１２４のＬ１キャッシュ１２９−２へ移動させる。動作５１２において、ＵＥは、第１のコアの電力を落とす。たとえば、図２を参照して示すように、動作２２８において、熱制御モジュール１４０は、第１のコア１２２をオフする、すなわち、電力急減する。
【００３９】
[0044]図６は、ＵＥがプロセッサのコア間で負荷を分配するための熱緩和手順を例示する図解６００である。この手順は、図４に例示された動作４１１、４１２において動作４０８に続く。動作６０２において、ＵＥは、残りのコアの各コアが、第３のしきい値（たとえば、負荷分配温度しきい値）よりも高い温度を有することを決定する。第３のしきい値は、第１のしきい値（たとえば、事前緩和温度しきい値）より小さい。動作６０４において、ＵＥは、各コアの相対的な温度の差に基づいて、残りのコアの各コアへ移動するための負荷の一部を決定する。たとえば、図２を参照して示すように、動作２３２において、第１のコア１２２から残りの実行中のコアへ移動されるべき負荷のパーセンテージが、第１のコア１２２の温度と、残りの実行中のコアの温度とに基づいて決定され得る。さらに、残りの実行中のコア間で移動される負荷の分散は、第１のコア１２２と、残りの実行中のコアとの間の相対的な温度の差に基づき得る。動作６０６において、ＵＥは、第２のコアと、コアのセットとの間で負荷を分配するために、残りのコアのうちのコアのセットへ、負荷の残りの部分を移動させる。たとえば、図２を参照して示すように、動作２３２において、熱制御モジュール１４０は、第１のコア１２２に対して、第１のコア１２２のＬ１キャッシュ１２９−１に記憶された対応するデータおよび命令を、第２のコア１２４のＬ１キャッシュ１２９−２および第３のコア１２６のＬ１キャッシュ１２９−３へ移動させるように指示し得る。
【００４０】
[0045]１つの構成では、装置は、複数のコアを含むプロセッサとインターフェースするために提供される。複数のコアは、第１のコアおよび残りのコアを含む。装置は、複数のコアのうちの第１のコアの温度を決定するための手段を含む。第１のコアは、負荷を処理する。装置はさらに、第１のコアの温度が、第１のしきい値よりも高いことを決定するための手段を含む。装置はさらに、第１のコアの温度が、第２のしきい値よりも高くないことを決定するための手段を含む。第２のしきい値は、第１のしきい値よりも大きい。装置はさらに、第１のコアの温度が、第１のしきい値よりも高いことを決定することに応じて、残りのコアのうちの第２のコアへ、第１のコアの負荷の少なくとも一部を移動させるための手段を含む。装置はさらに、残りのコアの各コアの温度を決定するための手段を含み得る。第１のコアの負荷の少なくとも一部が、残りのコアの各コアの温度の決定に基づいて、第２のコアへ移動され得る。装置はさらに、残りのコアのうちのどれが、最低温度を有するのかを決定するための手段を含み得る。負荷の少なくとも一部は、第２のコアが、残りのコアのうちの最低温度を有していることを決定することに応じて、第２のコアへ移動され得る。１つの構成では、負荷の少なくとも一部は、すべての負荷であり、すべての負荷は、第２のコアが、残りのコアのうちの最低温度を有していることを決定することに応じて、第１のコアから第２のコアへ移動される。装置はさらに、第２のコアの温度が、第３のしきい値より低いことを決定するための手段を含み得る。第３のしきい値は、第１のしきい値より小さい。すべての負荷は、第２のコアが、第３のしきい値より低い温度を有していることを決定することに応じて、第２のコアへ移動され得る。装置はさらに、すべての負荷を第１のコアから第２のコアへ移動させる前に、第２のコアの電力を増加させるための手段と、すべての負荷を第１のコアから第２のコアへ移動させたことに応じて、第１のコアの電力を低下させるための手段とを含み得る。装置はさらに、残りのコアの各コアが、第１のしきい値より小さい第３のしきい値よりも高い温度を有していることを決定するための手段と、第２のコアと、コアのセットとの間で負荷を分配するために、負荷の残りの部分を、残りのコアのうちのコアのセットへ移動させるための手段とを含み得る。装置はさらに、第１のコアの温度から、残りのコアの各々のそれぞれの温度のそれぞれの温度の差を決定するための手段を含み得る。移動させるための手段は、残りのコアのそれぞれの温度の差に基づいて、残りのコアの間で、第１のコアの負荷を分配するように構成される。移動させるための手段は、第１のコアの温度が、第２のしきい値よりも高くないことを決定することに応じて、負荷の少なくとも一部をさらに移動させるように構成され得る。装置はさらに、複数のコアのうちの第１のコアの第２の温度を決定するための手段を含み得る。装置はさらに、第１のコアの第２の温度が、第２のしきい値よりも高いことを決定するための手段を含み得る。装置はさらに、第１のコアの第２の温度が、第２のしきい値よりも高いことを決定することに応じて、第１のコアの電力消費量を低減させるための手段を含み得る。第１のコアの電力消費量を低減させるために、電力消費量を低減させるための手段は、（ａ）第１のコアの周波数を下げること、（ｂ）第１のコアの供給電圧を下げること、（ｃ）第１のコアを電力急減させること、および（ｄ）第１のコードのすべての負荷を、残りのコアのうちの少なくとも１つのコアへ移動させること、のうちの少なくとも１つを行うように構成される。前述した手段は、前述した手段の各々に対応する機能を実行するように構成された熱制御モジュール１４０−１であり得る。
【００４１】
[0046]開示された処理における各ステップの具体的な順序または階層は、典型的なアプローチの例示であることが理解される。設計選択に基づいて、これら処理におけるステップの特定の順序または階層は、再構成され得ることが理解される。さらに、いくつかのステップは、結合または省略され得る。同伴する方法請求項は、様々なステップの要素を、サンプル順に示しており、提示された特定の順序または階層に限定されるとは意味されていない。
【００４２】
[0047]前述された説明は、いかなる当業者であっても、本明細書で説明された様々な態様を実現できるように提供される。これら態様に対する様々な変形は、当業者に容易に明らかになり、本明細書で定義された一般的な原理は、他の態様に適用され得る。したがって、特許請求の範囲は、本明細書に図示された態様に限定されることは意図されておらず、文言である特許請求の範囲に一致するすべての範囲を与えられるものとし、単数形での要素に対する参照は、このように具体的に述べられていないのであれば、「１つであり唯一」ではなく、「１つまたは複数」を意味することが意図されている。「典型的な」という用語は、本明細書において、「例、事例、または例示として役立つ」ことを意味するために使用される。本明細書において「典型的」として説明されるいかなる態様も、他の態様よりも好適であるとか、有利であると必ずしも解釈される必要はない。特に明記されていない限り、用語「いくつか」は、１つまたは複数を称する。「Ａ、ＢまたはＣの少なくとも１つ」、「Ａ、ＢおよびＣの少なくとも１つ」、および「Ａ、Ｂ、Ｃまたはそれらの任意の組合せ」のような組合せは、Ａ、Ｂ、および／またはＣの任意の組合せを含み、Ａの倍数、Ｂの倍数、またはＣの倍数を含み得る。特に、「Ａ、ＢまたはＣの少なくとも１つ」、「Ａ、ＢおよびＣの少なくとも１つ」、および「Ａ、Ｂ、Ｃまたはそれらの任意の組合せ」のような組合せは、Ａのみ、Ｂのみ、Ｃのみ、ＡとＢ、ＡとＣ、ＢとＣ、またはＡとＢとＣであり得、このようなどの組合せも、Ａ、Ｂ、またはＣのうちの１つまたは複数のメンバを含み得る。当業者に周知であるか、または、後に周知になるべきこの開示を通じて説明された様々な態様の要素に対するすべての構造的および機能的な等価物が、参照によって本明細書に明確に組み込まれており、特許請求の範囲に包含されると意図される。さらに、本明細書で開示された何れも、このような開示が特許請求の範囲において明示的に述べられているか否かに関わらず、公衆に対して放棄されたものとは意図されていない。特許請求の範囲の要素が、「〜するための手段」という文言を用いて明示的に示されていないのであれば、特許請求の範囲の何れの要素も、ミーンズプラスファンクション（ｍｅａｎｓ  ｐｌｕｓ  ｆｕｎｃｔｉｏｎ）として解釈されるべきではない。
【図１】
2018501546.tif 000003
【図２】
2018501546.tif 000004
【図３】
2018501546.tif 000005
【図４】
2018501546.tif 000006
【図５】
2018501546.tif 000007
【図６】
2018501546.tif 000008
【国際調査報告】
2018501546.tif 000009
2018501546.tif 000010
2018501546.tif 000011