JP2014516443A - ポータブルコンピューティングデバイスにおける熱負荷の管理 - Google Patents

ポータブルコンピューティングデバイスにおける熱負荷の管理 Download PDF

Info

Publication number
JP2014516443A
JP2014516443A JP2014506456A JP2014506456A JP2014516443A JP 2014516443 A JP2014516443 A JP 2014516443A JP 2014506456 A JP2014506456 A JP 2014506456A JP 2014506456 A JP2014506456 A JP 2014506456A JP 2014516443 A JP2014516443 A JP 2014516443A
Authority
JP
Japan
Prior art keywords
thermal
processing
processing region
temperature
temperature measurement
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
JP2014506456A
Other languages
English (en)
Other versions
JP6059204B2 (ja
Inventor
ジョン・ジェイ・アンダーソン
シュミット・スール
ジェフリー・エー・ニーマン
ジェイムズ・エム・アートマイアー
Original Assignee
クアルコム,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2014516443A publication Critical patent/JP2014516443A/ja
Application granted granted Critical
Publication of JP6059204B2 publication Critical patent/JP6059204B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/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
    • 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
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Power Sources (AREA)
  • Debugging And Monitoring (AREA)
  • Microcomputers (AREA)

Abstract

ポータブルコンピューティングデバイス(「PCD」)において温度センサを利用するための方法およびシステムが、開示される。センサは、中央処理装置(「CPU」)コア、グラフィカルプロセシングユニット(「GPU」)コア、電源管理集積回路(「PMIC」)、電力増幅器などのような、既知の熱エネルギーを発生させるコンポーネントの近くに、PCD内に設置され得る。センサによって生成される信号は、処理ユニット上で作動するドライバをトリガするために、監視され使われ得る。ドライバは、センサによって測定されるような、所与のコンポーネントによる熱エネルギーの発生と関連付けられる、処理負荷の再割り当てを引き起こすように動作可能である。いくつかの実施形態では、処理負荷の再割り当ては、事前に特定された熱負荷のシナリオと関連付けられるパラメータに従って計画される。

Description

優先権および関連出願
本特許出願は、2011年4月22日に出願された「METHOD AND SYSTEM FOR THERMAL LOAD MANAGEMENT IN A PORTABLE COMPUTING DEVICE」という表題の米国仮特許出願第61/478,175号の米国特許法第119条(e)に基づく優先権を主張するものであり、上記出願の内容全体が参照により本明細書に組み込まれる。
ポータブルコンピューティングデバイス(PCD)は、個人レベルおよび専門レベルで人々に必要なものになりつつある。これらのデバイスは、携帯電話、携帯情報端末(PDA)、ポータブルゲームコンソール、パームトップコンピュータ、および他のポータブル電子デバイスを含み得る。
PCDの1つの特有の側面に、ラップトップコンピュータおよびデスクトップコンピュータのようなより大型のコンピューティングデバイスで見出されることが多い、ファンのような能動的な冷却デバイスを通常は有さないということがある。ファンを使う代わりに、PCDは、2つ以上の能動的かつ熱を発生させるコンポーネントが互いに近接して配置されないような、電子パッケージングの空間配置に依存し得る。2つ以上の熱を発生させるコンポーネントがPCD内で互いに適切に離間されれば、各コンポーネントの動作により発生する熱は、他のコンポーネントの動作に悪影響を与え得ない。さらに、PCD内の熱を発生させるコンポーネントがデバイス内で他のコンポーネントから物理的に隔離されていれば、熱を発生させるコンポーネントの動作により発生する熱は、他の周囲の電子装置に悪影響を与え得ない。多くのPCDはまた、集合的にそれぞれのPCDを形成する電子コンポーネントの間で熱エネルギーを管理するためのヒートシンクのような、受動的な冷却デバイスに依存し得る。
現実には、PCDは通常サイズが限られているので、PCD内のコンポーネントのための空間は確保が難しいことが多い。したがって、通常は、空間配置の利用または受動的な冷却コンポーネントの配置によって技術者および設計者が熱的な劣化または障害を軽減するための十分な空間が、PCD内には単に存在しない。
現在、PCDが危機的な温度に近づくと、オペレーティングシステムは、過剰な熱エネルギーを発生させているPCD内の電子コンポーネントの大半を単に停止することによって、PCDを冷却するように設計されている。電子装置を停止させることは、PCD内での過剰な熱エネルギーの発生を回避するための効果的な対策であり得るが、そのような極端な対策は必然的にPCDの性能に影響を与え、いくつかの場合には、ある期間PCDが機能的に動作不可能にもなり得る。
したがって、当技術分野で必要とされるのは、PCDの性能および機能に過剰な影響を与えることなくPCD内のコンポーネントの冷却を促進する、PCDにおける熱負荷の管理のための方法およびシステムである。
ポータブルコンピューティングデバイス上での熱エネルギーの発生を制御および/または管理するための方法およびシステムの様々な実施形態が、開示される。温度測定値は、熱エネルギーを発生させるコンポーネント内の処理負荷と相関し得るので、1つのそのような方法は、ポータブルコンピューティングデバイス中のチップの熱エネルギーを発生させるコンポーネントに近接して温度センサを配置するステップと、次いで、温度センサによって生成される温度測定値を第1の頻度で監視するステップとを含む。高電力密度のサブプロセッサ領域のようなコンポーネント内の処理領域が温度閾値を超えたことを示し得る、第1の監視された温度測定値の検出に基づいて、方法は、コンポーネントの第1の処理領域で作動している処理負荷の一部を、コンポーネントの第2の処理領域に再割り当てする。有利なことに、処理作業負荷がより広い処理領域にわたって分散され、電力密度が低くなるので、処理負荷の一部の再割り当ては、単位時間にコンポーネントの任意の単位面積で発生するエネルギーの量を少なくするように機能する。ユーザ体験は、電力密度がより低い第2の処理領域と関連付けられるサービス品質(「QoS」)の低下によって悪化し得るが、高電力密度の処理領域に集中する危機的に高い温度は回避され得る。
例示的な方法はさらに、コンポーネントが冷却されたことを第2の監視された温度測定値が示すとき、第2の処理領域から第1の処理領域への処理負荷の次の再割り当てのためのステップを含み得る。有利なことに、コンポーネントが冷却されたことが示された後に処理負荷の第2の再割り当てを行うことによって、そのような負荷が、第1の処理領域から最初に再割り当てされた処理負荷を表すか、または最初の割り当てで待ち行列に入れられた新しい処理負荷を表すかにかかわらず、ポータブルコンピューティングデバイスと関連付けられるQoSが好ましい水準に戻され得る。
例示的な実施形態は、限定はされないが、中央処理装置(「CPU」)コア、グラフィカルプロセシングユニット(「GPU」)コア、電源管理集積回路(「PMIC」または「PMICs」)、電力増幅器などのような、既知の熱エネルギーを発生させるコンポーネントの近くに、PCD内で戦略的に配置される、温度センサを利用する。センサによって生成される温度信号は、所与のコンポーネントからの熱エネルギーの過剰な発生と相関する処理負荷の再割り当てを引き起こすように、処理装置上で作動しているドライバをトリガするために、監視され使われ得る。いくつかの実施形態では、処理負荷の再割り当ては、事前に特定された熱負荷のシナリオと関連付けられるパラメータに従って計画される。他の実施形態では、処理負荷の再割り当ては、リアルタイムの温度センサデータとともにCPUおよび/またはGPUの性能の仕様を考慮し得る、熱管理アルゴリズムによって生成される熱管理方法に従って、リアルタイムで、またはほぼリアルタイムで行われる。
図中、別段に規定されていない限り、同様の参照番号は、様々な図の全体を通じて、同様の部分を指す。「102A」または「102B」のような文字指定を伴う参照番号について、文字指定は、同じ図に存在する2つの同様の部分または要素を区別し得る。参照番号の文字指定は、すべての図において同じ参照番号を有するすべての部分を参照番号が包含することが意図される場合には、省略されることがある。
ポータブルコンピューティングデバイス(「PCD」)における熱負荷の分布をシミュレートし、PCDが熱負荷の分布を制御できるようにするためのデータを生成するための、コンピュータシステムのある実施形態を示す機能ブロック図である。 熱負荷の分布を制御するためにPCDによって使われる図1の熱負荷誘導テーブルを生成するための方法のある実施形態を示す論理フローチャートである。 図1の熱負荷誘導テーブルのある実施形態を示すデータ図である。 シミュレートされた作業負荷の下での熱負荷の分布を示す、例示的な集積回路の空間配置の概略的な上面図である。 図3の熱負荷誘導テーブルにおける熱負荷誘導パラメータに従って、熱センサにより近い位置に熱負荷が分布する、図4Aの集積回路を示す図である。 図1のPCDにおいて熱負荷の分布を制御するための方法のある実施形態を示す論理フローチャートである。 図1のPCDの例示的な実施形態を示す機能ブロック図である。 図6に示されるチップのための、ハードウェアの例示的な空間配置を示す機能ブロック図である。 動的電圧周波数スケーリング(「DVFS」)アルゴリズムをサポートするための、図6のPCDの例示的なソフトウェアアーキテクチャを示す概略図である。 2つのDVFSアルゴリズムに対する例示的な周波数の値を列挙する、第1の表である。 2つのDVFSアルゴリズムに対する例示的な周波数と電圧のペアを列挙する、第2の表である。 図1のPCDにおいて熱ポリシーマネージャによって管理され得る様々な熱ポリシー状態を示す、例示的な状態図である。 熱ポリシーマネージャによって適用され命令され得る、例示的な熱軽減技法を示す図である。 温度の、時間および対応する熱ポリシー状態に対する、例示的なグラフを示す図である。 1つまたは複数の熱ポリシーを管理するための方法を示す、論理フローチャートである。 1つまたは複数の熱ポリシーを管理するための方法を示す、論理フローチャートである。 処理負荷の再割り当てによる熱軽減技法を適用するための副方法またはサブルーチンを示す、論理フローチャートである。 4コアマルチコアプロセッサと、マルチコアプロセッサによって空間的に管理され得る様々な作業負荷との概略図である。 4コアマルチコアプロセッサと、マルチコアプロセッサによって処理負荷再割り当てアルゴリズムから管理され得る熱エネルギー放散のホットスポットとの概略図である。 図6に示されるチップのためのハードウェアの例示的な空間配置と、図6に示されるチップの外部の例示的なコンポーネントとを示す、機能ブロック図である。
「例示的な」という語は、「例、実例、または具体例としての役割を果たすこと」を意味するように本明細書において使われる。「例示的な」ものとして本明細書で説明されるいずれの態様も、必ずしも、他の態様を排除する、他の態様よりも好ましい、または有利であると解釈されるわけではない。
本明細書では、「アプリケーション」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチのような、実行可能なコンテンツを有するファイルも含み得る。加えて、本明細書で言及される「アプリケーション」は、開封される必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルのような、本質的に実行可能ではないファイルを含むこともある。
「コンテンツ」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチのような、実行可能なコンテンツを有するファイルも含み得る。加えて、本明細書で言及される「コンテンツ」は、開封される必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルのような、本質的に実行可能ではないファイルを含むこともある。
本明細書で使用される場合、「コンポーネント」、「データベース」、「モジュール」、「システム」、「熱エネルギーを発生させるコンポーネント」、「処理コンポーネント」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアを問わず、コンピュータ関連のエンティティを指すことが意図されている。たとえばコンポーネントは、プロセッサ上で作動しているプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラムおよび/またはコンピュータであってよいが、これらであることに限定されない。例を挙げると、コンピューティングデバイス上で作動しているアプリケーションとコンピューティングデバイスの両方がコンポーネントであり得る。1つまたは複数のコンポーネントは、プロセスおよび/または実行スレッド内に存在してよく、1つのコンポーネントを1つのコンピュータに局在化させること、および/または2つ以上のコンピュータに分散させることが可能である。加えて、これらのコンポーネントは、様々なデータ構造を記憶している様々なコンピュータ可読媒体から実行することができる。コンポーネントは、1つまたは複数のデータパケット(たとえば、信号によって、ローカルシステム、分散システムにおいて別のコンポーネントと対話し、かつ/またはインターネットのようなネットワークにわたって他のシステムと対話する、1つのコンポーネントからのデータ)を有する信号に従うなどして、ローカルプロセスおよび/またはリモートプロセスにより通信することができる。
本明細書では、「通信デバイス」、「ワイヤレスデバイス」、「ワイヤレス電話」、「ワイヤレス通信デバイス」、および「ワイヤレスハンドセット」という用語は交換可能に使われる。第3世代(「3G」)および第4世代(「4G」)のワイヤレス技術が出現したことによって、利用可能な帯域が拡大されたので、より多様なワイヤレス機能を備えたよりポータブルなコンピューティングデバイスが利用可能になっている。
本明細書では、「中央処理装置(「CPU」)」、「デジタルシグナルプロセッサ(「DSP」)」、および「チップ」という用語は交換可能に使われる。
本明細書では、「熱」および「熱エネルギー」という用語は、「温度」の単位で測定され得るエネルギーを発生させまたは放散することが可能な、デバイスまたはコンポーネントと関連付けられて使われ得ることが理解されるだろう。その結果、「温度」という用語は、「熱エネルギー」を発生させるデバイスまたはコンポーネントの、相対的な暖かさまたは熱の欠如を示し得る、何らかの基準値に対する任意の測定値を想定することが、さらに理解されるだろう。たとえば、2つのコンポーネントの「温度」は、2つのコンポーネントが「熱的に」平衡である場合、同じである。
本明細書では、「作業負荷」、「処理負荷」、および「処理作業負荷」という用語は交換可能に使われ、所与の実施形態における所与の処理コンポーネントと関連付けられる、処理の負担または処理の負担の割合を一般に対象とする。上で定義されたものに付け加えて、「処理コンポーネント」または「熱エネルギーを発生させるコンポーネント」は、限定はされないが、中央処理装置、グラフィカルプロセシングユニット、コア、メインコア、サブコア、処理領域、ハードウェアエンジンなど、または、ポータブルコンピューティングデバイス内の集積回路内に存在する、もしくはその外部の任意のコンポーネントであってよい。さらに、「熱負荷」、「熱分布」、「熱特徴」、「熱処理負荷」などの用語が、処理コンポーネント上で作動していることがある作業負荷の負担を示すものである限り、本開示におけるこれらの「熱の」用語の使用は、処理負荷の分布および負担と関連し得ることを当業者は認めるだろう。
本明細書では、「ポータブルコンピューティングデバイス」(「PCD」)という用語は、バッテリーのような限られた容量の電源で動作する任意のデバイスを表すために使われる。何十年もの間バッテリー駆動のPCDが使用されてきたが、第3世代(「3G」)ワイヤレス技術の出現とともにもたらされた充電式バッテリーの技術的進歩は、複数の機能を有する多数のPCDを可能にした。したがって、PCDは、とりわけ、携帯電話、衛星電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、スマートブックまたはリーダー、メディアプレーヤ、上述したデバイスの組合せ、およびワイヤレス接続を有するラップトップコンピュータであってよい。
図1は、PCD 100における熱負荷の管理または「誘導」に関連する様々な機能を実施するための、コンピュータシステムのある実施形態を示す。一般に、コンピュータシステムは、(1)シミュレーションコンピュータ10によって実行されるシミュレーション段階、および(2)PCD 100によって実行される動作段階という、2つの主要な段階を利用する。
シミュレーション段階は、PCD 100の動作の間に集積回路102が受けることになる熱負荷をシミュレートするステップを含む。シミュレーションコンピュータ10は、シミュレートされた作業負荷の下でPCD 100によって生成される熱負荷状態を特定する。シミュレートされた作業負荷は、所与のPCD 100上での特定のアプリケーションの作動または「使用事例」と関連付けられてよく、または代替的には、特定のまたは予測可能な処理負荷のシナリオとは何ら関連付けられなくてもよい。
シミュレーションコンピュータ10は、シリコンダイ上のシミュレートされた熱負荷の分布または「ホットスポット」がPCD 100のユーザ体験を悪化させ、またはそうでなければPCD 100の機能に対して有害になり得ると、判定することができる。特に、処理負荷が所与のコンポーネントに集中すると熱エネルギーの放散は増大し得るので、それによってPCD 100の性能および/またはユーザ体験が影響を受ける可能性があり、熱エネルギー発生は、補足的なコンポーネントへの処理負荷の再割り当てによって軽減され得る。シミュレーションコンピュータ10は、シリコンダイ上の第1のシミュレートされた位置から、処理に利用可能な第2のシミュレートされた位置に、処理負荷のすべてまたは一部を「誘導」または再割り当てすることによって、PCD 100の性能およびユーザ体験を向上させる。第2のシミュレートされた位置は、第2のシミュレートされた位置へと処理負荷を誘導するための動作段階の間に、PCD 100に提供されPCD 100によって使われ得る、コマンド、命令、または任意の他の適切なコンピュータ可読データ(「熱負荷誘導パラメータ」と呼ばれる)において表され得る。
さらに、いくつかの実施形態では、可能性のあるホットスポットのセンサに対する好ましい近接度は、摂氏5度の範囲内であり得る。つまり、ホットスポットから伝搬した熱の波と関連付けられる温度は、ホットスポットへの距離が長くなるに従って低くなるので、かつ、ホットスポットが発生し始める時間と、ホットスポットから離れたところで温度上昇が検出され得る時間との間には、必然的に時間差があるので、いくつかの実施形態では、温度センサが、摂氏5度の温度低下と相関すると予測される距離だけホットスポットから離れて配置されることが好ましいことがある。しかしながら、様々な実施形態における温度センサの配置は、そのような実施形態の新規の態様を示し得るが、様々な実施形態およびそれらの等価物は、既知のホットスポットまたは熱エネルギーを発生させるコンポーネントから5℃の位置に温度センサを設置することに限定されないことが、理解されるだろう。つまり、いくつかの実施形態では、既知のホットスポットまたは熱エネルギーを発生させるコンポーネントから、5℃よりも近くまたはそれよりも遠くに、センサが位置し得ることが想定される。
図1を参照すると、シミュレーションコンピュータ10は、ローカルインターフェースを介して互いに通信している、1つまたは複数のプロセッサ12、メモリ14、および1つまたは複数の入力/出力デバイス16を含む。メモリ14は、PCD 100で使われる集積回路102のコンピュータモデル22を含む。コンピュータモデル22は、PCD 100における様々なハードウェアおよびソフトウェアコンポーネントのデータ表現、ならびに、たとえば熱センサ157およびCPU 110を含む集積回路102の様々なコンポーネントの、空間配置、アーキテクチャ、および動作である。PCD 100の詳しい例示的な実施形態は、図6、図7A、図7B、および図14を参照して以下でより詳しく説明される。あらゆるPCD 100および/または集積回路102が、シミュレーションコンピュータ10に提供されるコンピュータモデル22においてモデル化され表され得ることを、理解されたい。当業者によって理解されるように、コンピュータモデル22は、限定はされないが、プリント回路基板(PCB)スタックの寸法、サイズ、および構成、配線中の金属の量、配線のサイズ、サーマルビアの使用、シリコンダイのサブブロックあたりの電力負荷、PCB上のコンポーネントあたりの電力負荷、電力負荷の使用事例の仕様、電力負荷の任意の一時的な変動、ならびに他の同様の情報のような、情報を含み得る。
熱負荷シミュレーションモジュール20は、コンピュータモデル22とインターフェースをとり、コンピュータモデル22に基づいて熱負荷シミュレーションを実行するための論理を一般に含む。熱負荷シミュレーションモジュール20は、熱負荷誘導パラメータ46を生成し、それらを、たとえば、PCD 100に提供される熱負荷誘導シナリオテーブル24に記憶する。図1の実施形態で示されるように、PCD 100は一般に、熱負荷誘導モジュール26、熱ポリシーマネージャモジュール101、監視モジュール114、中央処理装置110、集積回路102上に位置する1つまたは複数の熱センサ157A、および集積回路102から離れて位置する1つまたは複数の熱センサ157Bを含む。熱負荷誘導モジュール26は一般に、PCD 100によって実行されることになる動作を監視し、熱負荷の誘導が実行されるべきかどうかを判定するための、論理を含む。熱負荷の誘導が実行されるべきである場合、熱負荷誘導モジュール26は、熱負荷誘導シナリオテーブル24にアクセスし、熱負荷誘導パラメータ46を解釈し、熱負荷と関連付けられる処理負荷を、利用率の低い、温度の低い、またはそうでなければ利用可能な処理容量へと誘導するような方式で、作業負荷をスケジューリングする。有利なことに、処理負荷を空いている処理容量に再割り当てするために熱負荷誘導パラメータを利用するそのような実施形態は、再割り当てに起因するより低い温度という利益を実現することができる。
いくつかの実施形態では、熱負荷誘導パラメータ46の目的はさらに、ある1つの熱センサまたは複数の熱センサ157の近くの位置に熱負荷を誘導するための、熱負荷誘導モジュール26に対する命令の準備を含み得ることを、当業者は認識するだろう。つまり、いくつかの実施形態は、所与の熱負荷の特徴と相関する処理負荷を、センサ157により近い利用可能な処理容量へと誘導する目的で、熱負荷誘導パラメータを生成することができる。有利なことに、熱負荷誘導パラメータを利用して、センサの近くの空いている処理容量へと処理負荷を再割り当てするそのような実施形態は、より正確な温度測定を実現できるので、処理負荷のより効率的な再割り当てにつながる。
熱エネルギーの放散が処理負荷の再割り当てを介してどのように管理され得るかという非限定的な例として、主要な処理ブロックとより高性能で専門的なサブプロセッサブロックとを有するCPU 110を含む実施形態は、CPU 110の領域の3/4を占める主要な処理ブロックと、CPU領域の残りの1/4を示すサブプロセッサブロックとを有し得る。主要なプロセッサブロックは、CPU 110全体の総電力の1/2を放散する関連電力密度(「PD」)を有し得る一方、サブプロセッサブロックも、総電力の1/2を放散する関連電力密度を有する。そのような例示的な場合では、CPU 110全体に対してより高い計算能力を提供するサブプロセッサブロックは、より大きな主要な処理ブロックの電力密度の2倍を超える電力密度を示し[PDsub = (P/2)/(A/4) = 2 P/A; PDmain = (P/2)/(3A/4) = P/Aの2/3]、また、電力密度は熱エネルギーの発生に直接比例するので、所与の処理負荷に対して、主要な処理ブロックよりも多くの熱エネルギーの生成および放散を引き起こすことを、当業者は認識するだろう。したがって、熱負荷誘導パラメータを利用してあるコンポーネントから別のコンポーネントに、たとえばCPU 110のサブプロセッサブロックからCPU 110の主要なプロセッサブロックに処理負荷を再割り当てする実施形態は、処理性能またはサービス品質(「QoS」)の比較的小さなトレードオフと引き換えに、より小さな熱エネルギーの放散という利益を実現することができる。主要なプロセッサブロックは、負荷をより低速に処理し得るので、より低いQoSにつながるが、放散する熱エネルギーがサブプロセッサよりも少なくなり得る。CPU 110内のある領域から別の領域への処理負荷の再割り当てを通じて熱負荷を管理する、様々な利益、特徴および態様などが、図8から図14に対してより詳しく説明される。
熱負荷誘導モジュール26に戻ると、熱負荷誘導モジュール26は、熱ポリシーマネージャモジュール101、監視モジュール114、CPU 110、またはPCD 100の任意の他のハードウェアコンポーネントもしくはソフトウェアコンポーネントと通信していてよい(またはそれらの1つまたは複数に統合されていてよい)。
図2は、シミュレーションコンピュータ10によって実施される方法28を示す。ある実施形態では、デバイスが熱負荷誘導機能をサポートするように適切に構成され得るように、方法28は、集積回路102およびPCD 100の設計および開発の間に実行され得る。他の実施形態では、方法28は、PCD 100が製造された後で実行されてよく、この場合、熱負荷誘導機能は、適切なソフトウェア更新を通じて可能にされ得る。
ブロック30において、集積回路102のコンピュータモデル22が、シミュレーションコンピュータ10に記憶され、熱負荷シミュレーションモジュール20によってアクセスされる。ブロック32において、コンピュータシミュレーションが実行され、1つまたは複数のシミュレートされた熱負荷状態が特定される(ブロック34)。当業者によって知られているように、かつ図4Aの例で示されるように、熱負荷状態は、シミュレートされた作業負荷44の下で集積回路102によって生成される、空間的な熱負荷の分布または「ホットスポット」48を含む。図4Aに示されるようなホットスポット48は、第1のコア222(図7A)上に位置し得る。当業者によって理解されるように、ホットスポット48から何らかの距離の点にある温度センサ157Aによって、ホットスポット48の熱エネルギー(すなわち温度)を測定することは、物体(すなわち、コンピュータチップまたはプリント回路基板)の表面全体を移動する熱の波が原因で、難しいことがある。ホットスポット48に対して何らかの距離にあるセンサ157Aの場所の温度は、ホットスポット48自体の温度と同じではないことがある。しかしながら、上で説明されたように、大量の熱エネルギーを放散することが知られているコンポーネントに近接して、たとえば可能性のあるホットスポットの中心の5℃以内にセンサを配置することで、処理負荷のより効率的な再割り当てに有用なデータを得ることができる。
熱負荷管理アルゴリズムの有効性および精度を向上させるために、シミュレーションコンピュータ10は、ホットスポット48と関連付けられる処理負荷またはホットスポット48と関連付けられる処理負荷の一部が、利用率の低いまたは利用可能な処理領域に再割り当てされるべきであると、判定することができる。コンピュータモデル22に基づいて、シミュレーションコンピュータ10は、シミュレートされた作業負荷44の少なくとも一部が第1のコア222の代わりに第2のコア224によって処理されるべきであると判定することができ、それによって、2つのコア222、224に処理負荷を分散させることで、起こり得る熱エネルギーの放散を低減する。
ブロック36において、ホットスポット48と関連付けられる処理負荷を第2のコア224(図4B参照)上の位置に移すための、適切な熱負荷誘導パラメータ46が生成される。ブロック38において、シミュレーションコンピュータ10は、熱負荷誘導シナリオテーブル24を生成し、それをメモリ14に記憶する。図3に示されるように、熱負荷誘導シナリオテーブル24は、限定はされないが、熱負荷状態データ42、シミュレートされた作業負荷データ44、および熱負荷誘導パラメータ46のような対応するデータを伴う、各々のシミュレートされた熱負荷状態のためのシナリオ40を含み得る。当業者によって理解されるように、負荷状態データ、シミュレートされた作業負荷データ44、および熱負荷誘導パラメータ46は、限定はされないが、電力を消費する(すなわち熱を発生させる)コンポーネントあたりの電力放散の別々の使用事例における明細、チップ上とチップ外の両方でのこれらの放散点の位置、所与の使用法でのプロセッサあたりの数百万命令毎秒(「MIPS」)の予想される大きさ、チップ上で放散される総電力、デバイス全体によって放散される総電力、および他の同様の情報を含み得る。
動作段階において、熱負荷誘導シナリオテーブル24がPCD 100に提供される。図5は、熱負荷の誘導を実行するためにPCD 100によって実施される方法50のある実施形態を示す。ブロック52において、熱負荷誘導シナリオテーブル24が、PCD 100のメモリに記憶される。ブロック54において、熱負荷誘導モジュール26が、PCD 100のスケジューリングされた作業負荷を監視する。ある実施形態では、監視するステップは、O/Sスケジューラ207(図7A〜図7B参照)とインターフェースをとることによって実行されてよく、O/Sスケジューラ207は、PCD 100上のハードウェアリソースに対する要求を受け取り管理する。O/Sスケジューラ要求を監視することによって、熱負荷誘導モジュール26は、スケジューリングされた作業負荷をシミュレートされた作業負荷データ44と比較して、スケジューリングされた作業負荷がテーブル24中のシナリオ40の1つと一致するかどうかを判定することができる。スケジューリングされた作業負荷がシナリオ40と一致する場合(判定ブロック56)、対応する熱負荷誘導パラメータ46が、テーブル24から取得され(ブロック58)、PCD 100上で作業負荷をスケジューリングするために、またはそうでなければ再割り当てするために使われ得る(ブロック60)。
スケジューリングされた作業負荷がシナリオ40と一致しない場合、判定ブロック56からの「NO」の分岐が、任意選択のブロック57に進み得る。任意選択のブロック57において、スケジューリングされた作業負荷がシナリオ40と一致しない場合、デフォルトの負荷誘導ベクトルが、熱負荷誘導モジュール26によってアクセスされ使われ得る。あるいは、任意選択のブロック57は飛ばされてもよく、その場合「NO」の分岐は判定ブロック56に戻る。
上で言及されたように、作業負荷が熱負荷誘導パラメータ46に従ってスケジューリングされるとき、生じる熱負荷は、PCD 100にわたる処理負荷のより熱的に効率的な割り当てによって軽減され得る。ブロック62において、PCD 100は、任意の望ましい熱管理ポリシーを開始することができる。
PCD 100の様々な代替的な実施形態および熱管理ポリシーの例が、図6〜図14に関して以下で説明される。図6は、熱条件を監視し熱ポリシーを管理するための方法およびシステムを実施するための、ワイヤレス電話の形式の、PCD 100の例示的で非限定的な態様の機能ブロック図である。いくつかの実施形態ごとに、PCD 100は、グラフィック処理と関連付けられる熱負荷を管理するように構成され得る。図示のように、PCD 100は、互いに結合されたマルチコア中央処理装置(「CPU」)110およびアナログシグナルプロセッサ126を含むオンチップシステム102を含む。当業者によって理解されるように、CPU 110は、第0のコア222、第1のコア224、および第Nのコア230を含み得る。さらに、当業者によって理解されるように、CPU 110の代わりに、デジタルシグナルプロセッサ(「DSP」)も利用され得る。
一般に、熱ポリシーマネージャモジュール101は、PCD 100が、熱条件および/または熱負荷を管理し、高水準の機能を維持しつつ、たとえば危機的な温度に達することなどの不都合な熱条件を受けるのを回避するのを助け得る、1つまたは複数の熱軽減技法を含む、熱ポリシーを監視し適用することを担い得る。
図6は、PCD 100が監視モジュール114を含み得ることも示している。監視モジュール114は、オンチップシステム102全体に分散する複数の動作するセンサ(たとえば熱センサ157)およびPCD 100のCPU 110、さらには熱ポリシーマネージャモジュール101と、通信する。以下でさらに詳しく説明されるように、熱ポリシーマネージャモジュール101は、監視モジュール114とともに動作して、不都合な熱条件を特定し、1つまたは複数の熱軽減技法を含む熱ポリシーを適用することができる。
図6に示されるように、ディスプレイコントローラ128およびタッチスクリーンコントローラ130が、デジタルシグナルプロセッサ110に結合される。オンチップシステム102の外部にあるタッチスクリーンディスプレイ132が、ディスプレイコントローラ128およびタッチスクリーンコントローラ130に結合される。
PCD 100はさらに、ビデオエンコーダ134、たとえば位相反転線(「PAL」)エンコーダ、順次式カラーメモリ(「SECAM」)エンコーダ、全国テレビジョン方式委員会(「NTSC」)エンコーダ、または何らかの他の種類のビデオエンコーダ134を含み得る。ビデオエンコーダ134は、マルチコア中央処理装置(「CPU」)110に結合される。ビデオ増幅器136が、ビデオエンコーダ134およびタッチスクリーンディスプレイ132に結合される。ビデオポート138が、ビデオ増幅器136に結合される。図6に示されるように、universal serial bus(「USB」)コントローラ140がCPU 110に結合される。また、USBポート142がUSBコントローラ140に結合される。メモリ112および加入者識別モジュール(SIM)カード146も、CPU 110に結合され得る。さらに、図6に示されるように、デジタルカメラ148がCPU 110に結合され得る。例示的な態様では、デジタルカメラ148は、電荷結合デバイス(「CCD」)カメラまたは相補型金属酸化膜半導体(「CMOS」)カメラである。
図6にさらに示されるように、ステレオオーディオコーデック150が、アナログシグナルプロセッサ126に結合され得る。さらに、オーディオ増幅器152が、ステレオオーディオコーデック150に結合され得る。例示的な態様では、第1のステレオスピーカー154および第2のステレオスピーカー156が、オーディオ増幅器152に結合される。図6は、マイクロフォン増幅器158もステレオオーディオコーデック150に結合され得ることを示している。加えて、マイクロフォン160が、マイクロフォン増幅器158に結合され得る。特定の態様では、周波数変調(「FM」)ラジオチューナー162がステレオオーディオコーデック150に結合され得る。また、FMアンテナ164が、FMラジオチューナー162に結合される。さらに、ステレオヘッドフォン166が、ステレオオーディオコーデック150に結合され得る。
図6はさらに、高周波(「RF」)送受信機168がアナログシグナルプロセッサ126に結合され得ることを示している。RFスイッチ170が、RF送受信機168およびRFアンテナ172に結合され得る。図6に示されるように、キーパッド174が、アナログシグナルプロセッサ126に結合され得る。また、マイクロフォンを備えたモノヘッドセット176が、アナログシグナルプロセッサ126に結合され得る。さらに、バイブレータデバイス178が、アナログシグナルプロセッサ126に結合され得る。図6は、たとえばバッテリーなどの電源180がオンチップシステム102に結合されることも示している。ある特定の態様では、電源は、充電式DCバッテリー、または交流(「AC」)電源に接続されたAC-DC変換器から導かれるDC電源を含む。
CPU 110は、1つまたは複数の内部のオンチップ熱センサ157A、さらには、1つまたは複数の外部のオフチップ熱センサ157Bにも結合され得る。オンチップ熱センサ157Aは、垂直のPNP構造に基づき通常は相補型金属酸化膜半導体(「CMOS」)超大規模集積(「VLSI」)回路に専用である、絶対温度に比例する(「PTAT」)1つまたは複数の温度センサを含み得る。オフチップ熱センサ157Bは、1つまたは複数のサーミスタを含み得る。熱センサ157は、アナログデジタルコンバータ(「ADC」)コントローラ103(図7A参照)によってデジタル信号に変換される、電圧降下を発生させ得る。しかし、本発明の範囲から逸脱することなく、他の種類の熱センサ157が利用されてもよい。
熱センサ157は、ADCコントローラ103によって制御され監視されるのに加えて、1つまたは複数の熱ポリシーマネージャモジュール101によっても制御され監視され得る。熱ポリシーマネージャモジュールは、CPU 110によって実行されるソフトウェアを含み得る。しかし、本発明の範囲から逸脱することなく、熱ポリシーマネージャモジュール101はまた、ハードウェアおよび/またはファームウェアから形成されてもよい。熱ポリシーマネージャモジュール101は、PCD 100が高水準の機能を維持しつつ危機的な温度を回避するのを助け得る、1つまたは複数の熱軽減技法を含む、熱ポリシーを監視し適用することを担い得る。
簡単に図1に戻って参照すると、図1は、PCD 100が監視モジュール114を含み得ることも示している。監視モジュール114は、オンチップシステム102の全体にわたって分散する複数の動作可能なセンサおよびPCD 100のCPU 110、さらに熱ポリシーマネージャモジュール101と通信する。以下でさらに詳しく説明されるように、熱ポリシーマネージャモジュール101は、監視モジュールとともに動作して、1つまたは複数の熱軽減技法を含む熱ポリシーを適用することができる。
図6に戻ると、タッチスクリーンディスプレイ132、ビデオポート138、USBポート142、カメラ148、第1のステレオスピーカー154、第2のステレオスピーカー156、マイクロフォン160、FMアンテナ164、ステレオヘッドフォン166、RFスイッチ170、RFアンテナ172、キーパッド174、モノヘッドセット176、バイブレータ178、熱センサ157B、および電源180は、オンチップシステム322の外部にある。しかしながら、監視モジュール114は、PCD 100において動作可能なリソースのリアルタイムの管理を援助するために、アナログシグナルプロセッサ126およびCPU 110によって、これらの外部デバイスのうちの1つまたは複数から1つまたは複数の指示または信号を受信することもできることを理解されたい。
ある特定の態様では、本明細書で説明される方法ステップのうちの1つまたは複数は、1つまたは複数の熱ポリシーマネージャモジュール101を形成するメモリ112に記憶された、実行可能命令およびパラメータによって実施され得る。熱ポリシーマネージャモジュールを形成するこれらの命令は、本明細書で説明される方法を実行するために、ADCコントローラ103に加えて、CPU 110、アナログシグナルプロセッサ126、または別のプロセッサによって実行され得る。さらに、プロセッサ110、126、メモリ112、メモリ112に記憶された命令、またはそれらの組合せは、本明細書で説明される方法ステップのうちの1つまたは複数を実行するための手段として機能し得る。
図7Aは、図6に示されるチップ102のための、ハードウェアの例示的な空間配置を示す機能ブロック図である。この例示的な実施形態によれば、アプリケーションCPU 110がチップ102の遠く左側の領域に配置され、一方モデムCPU 168、126がチップ102の遠く右側の領域に配置される。アプリケーションCPU 110は、第0のコア222、第1のコア224、および第Nのコア230を含む、マルチコアプロセッサを含み得る。アプリケーションCPU 110は、熱ポリシーマネージャモジュール101Aを実行していてよく(ソフトウェアで具現化される場合)、または、熱ポリシーマネージャモジュール101Aを含んでよい(ハードウェアで具現化される場合)。アプリケーションCPU 110は、オペレーティングシステム(「O/S」)モジュール207および監視モジュール114を含むように、さらに示される。監視モジュール114についてのさらなる詳細は、図7Bに関して以下で説明される。
アプリケーションCPU 110は、アプリケーションCPU 110に隣接して配置されチップ102の左側の領域にある、1つまたは複数の位相ロックループ(「PLL」)209A、209Bに結合され得る。PLL 209A、209Bに隣接しアプリケーションCPU 110の下に、アプリケーションCPU 110の主要な熱ポリシーマネージャモジュール101Aとともに動作する固有の熱ポリシーマネージャ101Bを含み得るアナログデジタル(「ADC」)コントローラ103が、含まれ得る。
ADCコントローラ103の熱ポリシーマネージャ101Bは、「チップ102上」および「チップ102外」に設けられ得る複数の熱センサ157を監視し追跡することを担い得る。オンチップまたは内部の熱センサ157Aが、様々な位置に配置され得る。
たとえば、第1の内部熱センサ157A1は、アプリケーションCPU 110とモデムCPU 168、126との間に、かつ内部メモリ112に隣接して、チップ102の上部の中心領域に配置され得る。第2の内部熱センサ157A2は、モデムCPU 168、126の下の、チップ102の右側領域に配置され得る。この第2の内部熱センサ157A2はまた、進化した縮小命令セットコンピュータ(「RISC」)命令セットマシン(「ARM」) 177と第1のグラフィックプロセッサ135Aとの間にも配置され得る。デジタルアナログコントローラ(「DAC」)173は、第2の内部熱センサ157A2とモデムCPU 168、126との間に配置され得る。
第3の内部熱センサ157A3は、第2のグラフィックプロセッサ135Bと第3のグラフィックプロセッサ135Cの間の、チップ102の遠く右側の領域に配置され得る。第4の内部熱センサ157A4は、チップ102の遠く右側の領域に、かつ第4のグラフィックプロセッサ135Dの下に配置され得る。第5の内部熱センサ157A5は、チップ102の遠く左側の領域に、かつPLL 209およびADCコントローラ103に隣接して配置され得る。
1つまたは複数の外部熱センサ157Bも、ADCコントローラ103に結合され得る。第1の外部熱センサ157B1は、チップの外部に、かつ、モデムCPU 168、126、ARM 177、およびDAC 173を含み得るチップ102の右上4分の1の領域に隣接して配置され得る。
第2の外部熱センサ157B2は、チップの外部に、かつ、第3のグラフィックプロセッサ135Cおよび第4のグラフィックプロセッサ135Dを含み得るチップ102の右下4分の1の領域に隣接して配置され得る。
図7Aに示されるハードウェアの様々な他の空間配置が、本発明の範囲から逸脱することなく実現され得ることを、当業者は認識するだろう。図7Aは、さらなる1つの例示的な空間配置を示し、図7Aに示される例示的な空間配置により決まる熱状態を、主要な熱ポリシーマネージャモジュール101Aと熱ポリシーマネージャ101Bを有するADCコントローラ103とがどのように管理できるかを示す。
図7Bは、動的電圧周波数スケーリング(「DVFS」)アルゴリズムをサポートするための、図6および図7AのPCD 100の例示的なソフトウェアアーキテクチャを示す概略図である。DVFSアルゴリズムは、ある熱条件が以下で詳しく説明されるように満たされる場合に、熱ポリシーマネージャ101によってトリガされ得る少なくとも1つの熱軽減技法を形成することができ、またはその一部であり得る。
図7Bに示されるように、CPUまたはデジタルシグナルプロセッサ110は、バス211を介してメモリ112に結合される。CPU 110は、上で述べられたように、N個のコアプロセッサを有するマルチコアプロセッサである。つまり、CPU 110は、第1のコア222、第2のコア224、および第Nのコア230を含む。当業者には知られているように、第1のコア222、第2のコア224、および第Nのコア230の各々は、専用のアプリケーションまたはプログラムをサポートするのに利用可能である。あるいは、利用可能なコアの2つ以上にわたる処理のために、1つまたは複数のアプリケーションまたはプログラムは分散していてよい。
CPU 110は、ソフトウェアおよび/またはハードウェアを含み得る熱ポリシーマネージャモジュール101から、命令を受け取ることができる。ソフトウェアとして具現化される場合、熱ポリシーマネージャモジュール101は、CPU 110および他のプロセッサにより実行されている他のアプリケーションプログラムに対して命令を発する、CPU 110により実行される指示を含む。
CPU 110の第1のコア222、第2のコア224〜第Nのコア230は、単一の集積回路ダイ上に集積されてよく、または、複数回路のパッケージ中の別個のダイ上で集積または結合されてよい。設計者は、第1のコア222、第2のコア224〜第Nのコア230を、1つまたは複数の共有キャッシュを介して結合することができ、たとえばバス、リング、メッシュ、およびクロスバートポロジのようなネットワークトポロジを介して、メッセージまたは命令の伝達を実施することができる。
図示の実施形態では、RF送受信機168は、デジタル回路素子を介して実装され、たとえばコアプロセッサ210(「コア」と標示される)のような、少なくとも1つのプロセッサを含む。このデジタル実装では、RF送受信機168は、バス213を介してメモリ112に結合される。
当技術分野で知られているように、バス211およびバス213の各々は、1つまたは複数の有線接続またはワイヤレス接続を介した複数の通信経路を含み得る。バス211およびバス213は、通信を可能にするために、たとえばコントローラ、バッファ(キャッシュ)、ドライバ、レピータ、および受信機など、追加の要素を有していてもよいが、これらについては簡単のために省略する。さらに、バス211およびバス213は、上記のコンポーネントの間の適切な通信を可能にするために、アドレス、制御、および/またはデータ接続を含み得る。
PCD 100によって使われる論理が、図7Bで示されるようにソフトウェアで実装される場合、開始論理250、管理論理260、動的電圧周波数スケーリング(「DVFS」)インターフェース論理270、アプリケーションストア280中のアプリケーション、およびファイルシステム290の一部のうちの1つまたは複数が、任意のコンピュータ関連のシステムまたは方法によって、またはそれらと関連して使用するために、任意のコンピュータ可読媒体に記憶され得る。
当業者が理解するように、高性能と低消費電力を実現するプロセッサに対する需要により、プロセッサ設計において、動的電圧周波数スケーリング(「DVFS」)が使用されるようになった。DVFSは、消費電力と性能との間のトレードオフを可能にする。プロセッサ110および126(図6)は、各プロセッサのクロック周波数を、電圧の対応する調整によって調整できるようにすることによって、DVFSを利用するように設計され得る。あらゆる電力節減は実行時間の増加によって相殺され、結果的に総エネルギー消費量を全体としては減少させないので、クロック周波数のみの低減は役立たない。しかしながら、動作電圧を低減すると、それに比例して消費電力が節減される。DVFS対応のプロセッサ110、126の主要な問題は、性能と電力節減との間のバランスをどのように制御するかということである。
この文書の文脈では、コンピュータ可読媒体は、コンピュータ関連のシステムまたは方法によって、またはそれと関連して使用するために、コンピュータプログラムおよびデータを格納または記憶することができる、電子式、磁気式、光学式、または他の物理デバイスまたは手段である。様々な論理素子およびデータストアは、たとえばコンピュータベースのシステム、プロセッサを含むシステム、または命令実行システム、装置、もしくはデバイスから命令をフェッチし、命令を実行することができる他のシステムのような、命令実行システム、装置、もしくはデバイスによって、またはそれと関連して使用するために、任意のコンピュータ可読媒体に組み込まれ得る。この文書の文脈では、「コンピュータ可読媒体」は、命令実行システム、装置、またはデバイスによって、またはそれと関連して使用するために、プログラムを記憶、通信、伝搬、または移送することができる任意の手段であってよい。
コンピュータ可読媒体は、限定はされないがたとえば、電子式、磁気式、光学式、電磁式、赤外線式、または半導体の、システム、装置、デバイス、もしくは伝搬媒体であってよい。コンピュータ可読媒体のより具体的な例(非網羅的なリスト)には、1つまたは複数の配線を有する電気的接続(電子式)、ポータブルコンピュータディスケット(磁気式)、ランダムアクセスメモリ(RAM)(電子式)、読取り専用メモリ(ROM)(電子式)、消去可能プログラマブル読取り専用メモリ(EPROM、EEPROM、またはフラッシュメモリ)(電子式)、光ファイバー(光学式)、および携帯式コンパクトディスク読取り専用メモリ(CD-ROM)(光学式)が含まれよう。プログラムは、たとえば紙または他の媒体の光学走査を介して、電子的に記録され、次いで、コンパイルされ、解釈され、または場合によっては、必要に応じて好適な方法で処理され、次いでコンピュータメモリに記憶され得るので、コンピュータ可読媒体は、プログラムが印刷される紙または別の適切な媒体でさえあり得ることに留意されたい。
代替的な実施形態では、開始論理250、管理論理260、および場合によってはDVFSインターフェース論理270のうちの1つまたは複数がハードウェアで実装される場合、様々な論理は、各々当技術分野でよく知られている以下の技術、すなわち、データ信号に論理関数を実装するための論理ゲートを有する個別の論理回路、適切な組合せの論理ゲートを有する特定用途向け集積回路(ASIC)、プログラマブルゲートアレイ(PGA)、フィールドプログラマブルゲートアレイ(FPGA)などのうちのいずれか、または組合せによって実装され得る。
メモリ112は、たとえばフラッシュメモリまたはソリッドステートメモリデバイスのような、不揮発性データ記憶デバイスである。単一のデバイスとして示されているが、メモリ112は、デジタルシグナルプロセッサおよび/またはRF送受信機168のコア210(または追加のプロセッサコア)に結合された別個のデータストアを有する分散型メモリデバイスでもよい。
開始論理250は、第1のコア222、第2のコア224〜第Nのコア230のような、利用可能なコアのうちの1つまたは複数の性能を管理または制御するために、選択プログラムを選択的に特定し、ロードし、実行するための1つまたは複数の実行可能命令を含む。
選択プログラムは、組込みファイルシステム290のプログラムストア296で見つけることができ、性能スケーリングアルゴリズム297とパラメータのセット298との特定の組合せによって定義される。選択プログラムは、CPU 110中のコアプロセッサのうちの1つまたは複数およびRF送受信機168中のコア210によって実行されると、1つまたは複数の熱ポリシーマネージャモジュール101によって与えられる制御信号とともに、監視モジュール114によって与えられる1つまたは複数の信号に従って、それぞれのプロセッサコアの性能をスケーリングするように動作することができる。この点について、監視モジュール114は、熱ポリシーマネージャモジュール101から受け取られたような、イベント、プロセス、アプリケーション、リソース状態の条件、経過時間、さらには温度などの、1つまたは複数のインジケータを提供することができる。
管理論理260は、それぞれのプロセッサコアのうちの1つまたは複数において動作可能な性能スケーリングプログラムを終了し、さらに、利用可能なコアのうちの1つまたは複数の性能を管理または制御するためのより適切な交換プログラムを選択的に特定し、ロードし、実行するための、1つまたは複数の実行可能命令を含む。管理論理260は、ランタイム時に、またはPCD 100が電力供給されデバイスの操作者によって使用されている間に、これらの機能を実行するように構成される。交換プログラムは、組込みファイルシステム290のプログラムストア296で見つけることができ、性能スケーリングアルゴリズム297とパラメータのセット298との特定の組合せによって定義される。
交換プログラムは、デジタルシグナルプロセッサのコアプロセッサのうちの1つもしくは複数、またはRF送受信機168のコア210によって実行されると、それぞれのプロセッサコアの性能をスケーリングするために、監視モジュール114によって提供される1つもしくは複数の信号、または様々なプロセッサコアのそれぞれの制御入力で提供される1つもしくは複数の信号に従って動作し得る。この点について、監視モジュール114は、熱ポリシーマネージャ101から発せられる制御信号に応答して、イベント、プロセス、アプリケーション、リソース状態の条件、経過時間、温度などの、1つまたは複数のインジケータを提供することができる。
DVFSインターフェース論理またはインターフェース論理270は、組込みファイルシステム290に記憶された情報を観察し、構成し、またはそうでなければ更新するために、外部入力を提示し、管理し、それと対話するための1つまたは複数の実行可能命令を含む。一実施形態では、インターフェース論理270は、USBポート142を介して受信された製造業者の入力とともに動作することができる。これらの入力は、プログラムストア296から削除されるべき、またはプログラムストア296に追加されるべき、1つまたは複数のプログラムを含み得る。あるいは、入力は、プログラムストア296のプログラムのうちの1つまたは複数に対する編集または変更を含み得る。さらに、入力は、開始論理250と管理論理260の一方または両方に対する1つまたは複数の変更、または全交換を特定することができる。例として、入力は、受信信号電力が特定の閾値を下回ると、RF送受信機168におけるすべての性能スケーリングを中断するようPCD 100に命令する、管理論理260に対する変更を含み得る。さらなる例として、入力は、ビデオコーデック134がアクティブであるとき、所望のプログラムを適用するようPCD 100に命令する、管理論理260に対する変更を含み得る。
インターフェース論理270によって、製造業者は、PCD 100の定義された動作条件の下で、エンドユーザの体験を制御可能に設定し、調整することができる。メモリ112がフラッシュメモリである場合、開始論理250、管理論理260、インターフェース論理270、アプリケーションストア280におけるアプリケーションプログラム、または組込みファイルシステム290における情報のうちの1つまたは複数は、編集され、置き換えられ、またはそうでなければ修正され得る。いくつかの実施形態では、インターフェース論理270によって、PCD 100のエンドユーザまたは操作者は、開始論理250、管理論理260、アプリケーションストア280中のアプリケーション、および組込みファイルシステム290中の情報を検索し、位置を特定し、修正し、または置き換えることができる。操作者は、結果として生じるインターフェースを使用して、PCD 100の次の開始時に実装される変更を加えることができる。あるいは、操作者は、結果として生じるインターフェースを使用して、ランタイム中に実装される変更を加えることができる。
組込みファイルシステム290は、階層的に構成されたDVFSストア292を含む。これに関して、ファイルシステム290は、PCD 100によって使われる様々なパラメータ298および性能スケーリングアルゴリズム297の、構成および管理のための情報を格納するための、全体のファイルシステム容量の中で確保された部分を含み得る。図7Bに示されるように、DVFSストア292はコアストア294を含み、コアストア294はプログラムストア296を含み、プログラムストア296は1つまたは複数のDVFSプログラムを含む。各プログラムは、それぞれの性能スケーリングアルゴリズムと、特定のアルゴリズムと関連付けられるパラメータのセットとの組合せとして、定義される。DVFSストア292の階層的な性質のさらなる例として、ファイルのセットのある特定のメンバーは、\startup\core0\algorithm\parameter setというパスによって位置を定められ特定され得る。この例では、プログラムは、パラメータセットに格納された情報の内容と組み合わせて、アルゴリズムによって特定される。たとえば、「典型的」として知られる従来のDVFSアルゴリズムは、次のように、サンプルレート、サンプル増加数、およびサンプル減少数というパラメータに従って、コア0 222上で性能スケーリングを管理するものとして特定され得る。すなわち、サンプルレートは\startup\core0\classic\SampleRateにあり、値は100であり、MHz単位であり、サンプル増加数は\startup\core0\classic\SamplesToIncreaseにあり、値は2であり、整数であり、サンプル減少数は\startup\core0\classic\SamplesToDecreaseにあり、値は1であり、整数である。
つまり、それぞれのファイル名はパラメータを定義し、パラメータの値はファイルの内容によって特定される。アルゴリズムは、CPUのアイドル割合の周期的なサンプリングによって定義され、下側の閾値(%アイドル)および上側の閾値(%アイドル)に従って動作する。サンプル増加数閾値比較器が、2つの連続するサンプルに関して、性能を向上させるべきであることを示す場合、DVFSアルゴリズムは、所定のクロックレベルの調整に従って性能を向上させる。逆に、サンプル減少数閾値比較器が、1つの連続するサンプルに関して、性能を低下させるべきであることを示す場合、DVFSアルゴリズムは、所定のクロックレベル(すなわち周波数)の調整に従って性能を低下させる。上で説明されたように、プロセッサまたはコアの動作電圧が、クロック周波数の変化とともに変化し得る。
あるいは、または加えて、DVFSストア292は、パスの検索が、その適用(すなわち、プロセッサコア、アルゴリズム、およびパラメータ値)に関して最も特異的なものから、適用に関して最も特異的ではないものに向かって進むように、構成され得る。ある例示的な実施形態では、パラメータは、「典型的」な性能スケーリングアルゴリズムと関連付けられる、ディレクトリ/core0、/coreAll、および/defaultにおいて定義される。たとえば、パス\core0\classic\SampleRateは、コア0で動作する典型的なアルゴリズムにのみ適用される。この最も特異的な適用は、すべての他の適用を無効にする。パス\coreAll\classic\SampleRateは、典型的なアルゴリズムを実行する任意のプロセッサコアに適用される。この適用は、その上の例示的なパスよりも特異的ではないが、典型的なアルゴリズムを実行する任意のプロセッサコアに適用される\default\classic\SampleRateよりも特異的である。
このデフォルトの適用は、最も特異的ではなく、他の適切なパスがDVFSストア292に存在しない場合にのみ使われる。見出される第1のパラメータは、使用されたパラメータである。\defaultの位置には、有効なパラメータファイルが常にある。個々のコアのアーキテクチャ、1つまたは複数の共有キャッシュのアーキテクチャ、および、コア間で命令を渡すために使われる機構、さらには、PCD 100の所望の使用事例は、メモリ112に格納された様々な性能スケーリングアルゴリズム297の性質を決定づけると予想される。
図7Cは、DVFSインターフェース論理270によって選択され得る、2つの異なるDVFSアルゴリズムの例示的な周波数値を列挙する、第1の表267である。この例示的な第1の表267に従って、マルチコアCPU 110の各コアは、実行されている現在のDVFSアルゴリズムに応じて、固有の最大クロック周波数値を割り当てられ得る。表627の第1行に記載されている第1のDVFSアルゴリズムでは、コア0は600MHzの最大クロック周波数を割り当てられ得るが、コア1は650MHzの最大クロック周波数を割り当てられてよく、第Nのコアは720MHzの最大クロック周波数を割り当てられてよい。表627の第2行に記載されている第2のDVFSアルゴリズムでは、コア0は610MHzの最大クロック周波数を割り当てられ得るが、コア1は660MHzの最大クロック周波数を割り当てられ、第Nのコアは700MHzの最大クロック周波数を割り当てられる。クロック周波数に対するこれらの制限は、PCD 100の現在の熱状態に応じて、熱ポリシーマネージャ101によって選択され得る。
図7Dは、2つのDVFSアルゴリズムに対する例示的な周波数と電圧のペアを列挙する、第2の表277である。表277の第1行に記載されている第1のDVFSアルゴリズムでは、コア0は、600MHzの最大クロック周波数を割り当てられ得るが、その最大電圧は1.3mVに制限され得る。コア1は、500MHzの最大クロック周波数および対応する2.0mVの最大電圧を割り当てられ得る。コアNは、550MHzの最大クロック周波数および対応する1.8mVの最大電圧を割り当てられ得る。表277の第2行に記載されている第2のDVFSアルゴリズムでは、コア0は、550MHzの最大クロック周波数を割り当てられ得るが、最大電圧は1.0mVの値を割り当てられ得る。コア1は、600MHzの最大クロック周波数および対応する1.5mVの最大電圧を割り当てられ得る。そして最後に、コアNは、550MHzの最大クロック周波数および対応する1.9mVの最大電圧を割り当てられ得る。熱ポリシーマネージャ101は、PCD 100の現在の熱状態に応じて、表277で列挙された周波数と電圧の様々なペアを選択することができる。
図8は、熱ポリシーマネージャ101によって追跡される様々な熱ポリシー状態305、310、315、および320を示す、例示的な状態図300である。第1のポリシー状態305は、所定のまたは普通の方式で熱ポリシーマネージャ101が熱センサ157を監視するのみである、「正常」な状態を含み得る。この例示的な第1の正常な状態305では、通常PCD 100には、ハードウェアおよび/またはソフトウェアコンポーネントのいずれかの障害を引き起こし得る危機的な温度に達する危険性またはリスクがない。この例示的な状態では、熱センサ157は、50℃以下の温度を検出または追跡していてよい。しかしながら、本発明の範囲から逸脱することなく、第1の正常な状態305に対して、他の温度範囲が確立されてもよいことを、当業者は認識するだろう。
第2のポリシー状態310は、熱センサ157が調査される頻度、または、熱センサ157が自身の温度状態の報告を熱ポリシーマネージャ101に送る頻度を熱ポリシーマネージャ101が上げることができる、「サービス品質」すなわち「QoS」状態を含み得る。温度の変化が第1の正常な状態305で検出された場合、熱ポリシーマネージャ101によって、この例示的な第2の状態310に達し、またはその状態に入ることができる。このQoS状態310をトリガする、温度変化(デルタT)の閾値または大きさは、ある特定のPCD 100に従って調整または変更され得る。したがって、PCD 100が第1の正常な状態305で動作し得る間、1つまたは複数の熱センサにより検出される温度変化の大きさに応じて、PCD 100は、熱ポリシーマネージャ101によって追跡されるように、第1の正常な状態305から出て第2のQoS状態310に入ることができる。
たとえば、PCD 100は、約40℃という所与の熱センサ157からの第1の最高温度測定値を有し得る。同一の熱センサ157からの第2の測定値は、5℃の温度変化しか示さず、これは検出された最高温度を45℃にする。しかしながら、検出されている最高温度が、第1の正常な状態305の間、50℃という設定された閾値未満であり得る場合でも、5℃の温度変化は、熱ポリシーマネージャ101が状態を第2のQoS状態310に変更するのに、十分大幅であり得る。
第2のQoS熱状態310では、熱ポリシーマネージャ101は、PCD 100の熱負荷および温度を下げるために、1つまたは複数の熱軽減技法を要求することができ、または実際にそれを実行することができる。この特定の第2の熱状態310では、熱ポリシーマネージャ101は、操作者にほとんど知覚不可能でありPCD 100により提供されるサービス品質の劣化を最小限にし得る、熱軽減技法を実施または要求するように設計される。この第2のQoS熱状態310に対する温度範囲は、約50℃から約80℃の間の範囲を含み得る。他の温度範囲が第2のQoS状態310に対して設定されてもよく、本発明の範囲内であることを、当業者は認識するだろう。
前に述べられたように、第2のQoS状態310は、温度変化の大きさおよび/または位置に基づいてトリガされてよく、選択された温度範囲の端点には必ずしも限定されない。この第2のQoS熱状態310のさらなる詳細が、図9に関連して以下で説明される。
第3の熱状態315は、熱ポリシーマネージャ101が、熱センサ157からの割り込みの監視および/または受け取りを続けつつ、上で説明された第2のQoS状態310よりも強力な熱軽減技法を要求および/または適用する、「重度の」状態を含み得る。これは、この状態では、熱ポリシーマネージャ101が、操作者から見たサービス品質にあまり配慮しないことを意味する。この熱状態では、熱ポリシーマネージャ101は、PCD 100の温度を下げるために、熱負荷を軽減または低減することにより配慮している。この第3の熱状態315では、PCD 100は、操作者により容易に知覚または観測される、性能の低下を有し得る。第3の重度の熱状態315および、熱ポリシーマネージャ101によって適用またはトリガされる対応する熱軽減技法が、図9に関連して以下でさらに詳しく説明される。この第3の重度の熱状態315の温度範囲は、約80℃から約100℃の間の範囲を含み得る。
上で論じられた第1の熱状態305および第2の熱状態310と同様に、この第3の重度の熱状態315は、1つまたは複数の熱センサ157により検出される温度変化に基づいて開始されてよく、この第3の熱状態315に対して設定されまたは割り当てられる温度範囲には必ずしも限定されない。たとえば、この図中の矢印が示すように、各々の熱状態は、順番に開始されてよく、または、検出され得る温度変化の大きさ(デルタT)に応じて、順番と関係なく開始されてよい。よって、このことは、PCD 100が、1つまたは複数の熱センサ157により検出される温度変化に基づいて、第1の正常な熱状態305から出て、第3の重度の熱状態315に入り、またはその状態を開始できること、およびその逆を行えることを意味する。同様に、PCD 100は、第2のQoS熱状態310にあってよく、1つまたは複数の熱センサ157により検出される温度変化に基づいて、第4の危機的な熱状態320に入り、またはその状態を開始できることができ、かつその逆を行うことができる。この例示的な第4の危機的な状態320では、熱ポリシーマネージャ101は、PCD 100内に含まれる電子装置に対する恒久的な損傷を引き起こし得る1つまたは複数の危機的な温度に達するのを回避するために、可能な限り多数の大きな熱軽減技法を適用またはトリガしている。
この第4の危機的な熱状態320は、危機的な温度を回避するために、PCD 100の機能および動作を中止するように設計される、従来の技法と同様であり得る。第4の熱状態320は、熱ポリシーマネージャ101が、不可欠ではないハードウェアおよび/またはソフトウェアの停止を適用またはトリガする、「危機的」状態を含み得る。この第4の熱状態の温度範囲は、約100℃以上の範囲を含み得る。第4の危機的な熱状態320は、図9に関連して以下でさらに詳しく説明される。
熱ポリシー管理システムは、図8に示される4つの熱状態305、310、315、および320には限定されない。特定のPCD 100に応じて、追加のまたはより少数の熱状態が、本発明の範囲から逸脱することなく提供されてよい。つまり、追加の熱状態が、特定のPCD 100の機能および動作を改善し得る一方、他の状況では、より少数の熱状態が、固有のハードウェアおよび/またはソフトウェアを有する特定のPCD 100に対して好適であり得ることを、当業者は認識する。
図9は、熱ポリシーマネージャ101によって適用または命令され得るとともにPCD 100の具体的な熱状態に依存する、例示的な熱軽減技法を示す図である。本明細書で説明される熱軽減技法は、任意のタイプの処理と関連付けられる熱負荷を管理するために適用され得るが、特有の電力需要、システム要件、およびPCD 100の全体的なユーザ体験への重要性によって、グラフィック処理が関与する状況において特に有用であり得る。前に述べられたように、第1の熱状態305は、CPU 110によって、かつADCコントローラ103によって部分的に実行されている熱ポリシーマネージャ101が、1つまたは複数の熱センサ157からの温度についての1つまたは複数の状態報告を監視し、調査し、または受け取ることができる、「正常」状態を含み得る。この第1の熱状態305では、PCD 100には、PCD 100内の1つまたは複数のソフトウェアおよび/またはハードウェアコンポーネントを損傷させ得る危機的な温度に達する、危険性またはリスクはまったくなくてよい。通常、この第1の熱状態では、熱ポリシーマネージャ101は、熱軽減技法の開始を何ら適用しておらず、または要求していないので、PCD 100は、熱負荷を考慮せず、その最大の能力と最高の性能で動作している。この第1の熱状態305の温度範囲は、約50℃以下の範囲を含み得る。この第1の熱状態305では、熱ポリシーマネージャ101は、ADCコントローラ103内に存在し得るが、すべての他の状態のための主要な熱ポリシーマネージャ101は、CPU 110に存在しまたはCPU 110によって実行され得る。ある代替的かつ例示的な実施形態では、熱ポリシーマネージャ101は、CPU 110内にしか存在しなくてよい。
QoS状態310とも呼ばれる第2の熱状態310では、その状態が開始されると、熱ポリシーマネージャ101が、PCD 100の現在の温度に関する熱センサ157からの割り込みの、(第1の熱状態305よりも)高速な監視、調査、および/または受け取りを始めることができる。この例示的な第2の熱状態310では、熱ポリシーマネージャ101は、図7Aの監視モジュール114および/またはオペレーティングシステム(「O/S」)モジュール207を起動または要求して、PCD 100の操作者によって知覚されるようなサービス品質低下の知覚をほとんどまたはまったく伴わず、高い性能を維持する目的で、熱軽減技法の適用を開始することができる。
図9に示されるこの例示的な第2の熱状態310によれば、熱ポリシーマネージャ101は、監視モジュール114および/またはO/Sモジュール207に要求して、限定はされないが、(1)負荷のスケーリングおよび/または(2)負荷の動的なスケーリング、(3)空間的な負荷の移動、ならびに(4)処理負荷の再割り当てのような、熱軽減技法を開始することができる。負荷のスケーリングは、図7Cの第1の表267で与えられる値のような、DVFSアルゴリズムで許容される最大クロック周波数の調整または「スケーリング」を含み得る。そのような調整は、最大の熱放散を制限し得る。この熱負荷軽減技法はまた、ある特定の固有のPCD 100のために使われる標準的なDVFS表と一致するように電圧を調整するステップを含み得る。
負荷の動的なスケーリングの熱負荷軽減技法は、N個のアプリケーションプロセッサコア222、224、および230の1つおよび/またはすべてのスケーリングを含み得る。この熱負荷軽減技法は、特定のコア222、224、または230のDVFSアルゴリズムに対して許容される、最大クロック周波数を設定することを含み得る。DVFSアルゴリズムは、図7Dに示される第2の表277のような電圧/周波数ペアの表を使って、処理能力をスケーリングする。
1つのそのような方法は、許容される最大周波数を制限することによって、数百万命令毎秒(MIPS)の数を制限することを含む。このようにして、熱ポリシーマネージャ101は、コア222、224、および230の電力消費を効果的に制限し、利用可能なコアの能力(MIPS)を制限している。熱ポリシーマネージャ101は、N個のコア222、224、230を一緒に制限すると決めることができ、または、他のコア222、224、230が制約のない方式で動作するのを許容しつつ、コア222、224、230のいずれが機能を削られるかを選択し決めることができる。熱ポリシーマネージャ101、監視モジュール114、および/またはO/Sモジュール207は、熱センサ157から受け取られたデータまたはソフトウェアアプリケーションの要件に基づいて、かつ/またはベストエフォートの予測に基づいて、コア222、224、230のいずれを制御するかを判断することができる。この第2の熱状態の温度範囲は、約50℃から約80℃の範囲を含み得る。
空間的な負荷移動という熱軽減技法は、マルチコアプロセッサシステム内での、コアのアクティブ化および非アクティブ化を含む。N個の複数のコアが存在する場合、各コアは、最大でN-1個のコアを使って、作業またはコアの性能が最大限になった状態で負荷をかけられており、そして熱センサ157が発熱の問題を示すと、冷却デバイスとして機能する非アクティブなコアの位置が移され得る。各コアは、所定のパターンで、または熱測定結果によって表されるパターンで、コアを休止状態にさせることによって、効果的に冷却され得る。「ホール」は、数秒の間にコアを冷却するために、そのコアのグループの周りでMIPSについて効果的に移される。このようにして、数GHzの処理能力がPCD 100に対して利用可能にされ得るが、それでも、負荷を転々と移動させることによって、シリコンダイが冷却される。空間的な負荷移動のさらなる詳細は、図13Aに関連して以下で説明される。
処理負荷の再割り当ての熱軽減技法が、図12〜図14に関連して以下で説明される。しかしながら、一般に、この技法は、マルチコアグラフィックプロセシングユニット(「GPU」)および/またはマルチコア中央処理装置(「CPU」)の動作に起因する、熱エネルギーの生成および放散の管理を対象とする。理想的には、処理負荷再割り当てアルゴリズムの形式の熱軽減技法の効率的な実施のために、PCD 100は、個々のコアまたはコアのグループに近接した温度センサ157を有し得る。センサ157からの温度測定値に基づいて、コア自体の1つまたは複数で実行されるドライバが、「熱い」コアから「冷たい」コア、またはそうでなければ利用率の低いコアへの処理負荷の再割り当てを引き起こすために利用され得る。有利なことに、熱ポリシーマネージャモジュール101は、処理負荷とともに変動する温度測定値に反応するように動作可能であり得るので、処理負荷の再割り当ておよび空間的な負荷の移動のような様々な熱軽減技法の実施形態は、リアルタイムで、またはほぼリアルタイムで実施され得る。したがって、リアルタイム、またはほぼリアルタイムで熱軽減対策をとるように動作可能な実施形態では、センサ157からの温度測定値のアクティブな監視に基づいて、所定の熱誘導シナリオ24が必要とされ得ないことを、当業者は認識するだろう。つまり、いくつかの実施形態は、リアルタイムの温度の入力および作業負荷のデータに基づいて処理負荷の効率的な再割り当てまたは空間的な移動のための命令を生成できる、アルゴリズムを利用することができる。
特に、低電力密度の主要な処理ブロックと、高電力密度という評価を有する専門的なサブプロセッサブロックの両方を格納するコアを有する、マルチコアCPUにおける処理負荷の再割り当てのために設計された実施形態のような、いくつかの実施形態では、処理負荷は所与のコア内で再割り当てされ得る。たとえば、限定はされないが、過剰なグラフィカル処理の要件を有するゲームアプリケーションのような、高い計算能力を必要とする処理負荷は、通常、サブコアレベルにおける処理に対してスケジューリングされて、サブコアの改善された計算容量の恩恵を受けることができる。しかしながら、サブコアにおいて過剰にロードされた処理の待ち行列は、CPU 110またはPCD 100内に含まれる他のコンポーネントに対して有害になり得る過剰な熱エネルギーを発生させ得る。そのような状況では、熱エネルギー負荷は、高密度のサブプロセッサブロックから、電力密度がより低い主要な処理ブロックへと、処置負荷のすべてまたは一部を(複数のコア間ではなく)所与のコア内で再割り当てすることによって、軽減され得る。
重度の熱状態315としても知られる図9の第3の熱状態315をここで参照すると、熱ポリシーマネージャ101は、熱センサ157からの割り込みの連続的な監視、調査、または受け取りを開始できるので、温度は、第2のより低温の熱状態310と比較して、より連続的に/頻繁に感知される。この例示的な熱状態315では、熱ポリシーマネージャ101は、監視モジュール114および/またはO/Sモジュール207が、PCD 100の操作者によって観測される知覚できる可能性のある性能の低下を伴う、(第2の熱状態310に対して)より強力な熱軽減技法および/または追加の熱軽減技法を適用することを、適用または要求することができる。この例示的な熱状態315によれば、熱ポリシーマネージャ101は、増幅器、プロセッサなどのような、1つまたは複数のハードウェアデバイスに対する、電力の低減を引き起こし得る。熱ポリシーマネージャ101はまた、アクティブなデバイスを非接続状態にして、非アクティブなデバイスを接続状態にするために、空間的な方式で、様々なハードウェアデバイスの間で作業負荷を移動させることができる。この第3の重度の熱状態315の熱軽減技法は、第2のサービス品質熱状態310に関して上で説明された技法と同一であり得る。しかしながら、これらの同一の熱軽減技法は、より強力な方式で適用され得る。たとえば、処理負荷の再割り当てにおいて、熱ポリシーマネージャ101は、第2の熱状態310と比較してより大きな割合の処理負荷が、様々なコアの高電力密度のサブプロセッサブロックから主要なプロセッサブロックへと再割り当てされることを、要求することができる。さらに、熱ポリシーマネージャ101は、様々なコアの高電力密度のサブプロセッサブロックから主要なプロセッサブロックへとアクティブな処理負荷が完全に再割り当てされることを要求することができ、高い熱エネルギーを発生させるサブプロセッサブロックを実質的にオフラインにする。これらの処理負荷の再割り当てによって、ある特定のアプリケーションプログラムを支援するために推奨されるものよりも、処理性能が望ましくなくなり得る。
図9の第4の危機的な状態320をここで参照すると、熱ポリシーマネージャ101は、すべての不可欠ではないハードウェアおよび/またはソフトウェアモジュールの停止を開始することができ、または停止を開始できるように監視モジュール114および/またはO/Sモジュール207に要求することができる。
「不可欠な」ハードウェアおよび/またはソフトウェアモジュールは、具体的なPCD 100の各タイプによって異なり得る。1つの例示的な実施形態によれば、すべての不可欠ではないハードウェアおよび/またはソフトウェアモジュールは、緊急の911通話機能および全地球測位衛星(「GPS」)機能以外の、すべてを含み得る。このことは、この第4の危機的な熱状態320において、熱ポリシーマネージャ101が、緊急の911通話およびGPS機能以外のハードウェアおよび/またはソフトウェアモジュールの停止を引き起こし得ることを意味する。熱ポリシーマネージャ101は、熱センサ157によって監視されている危機的な温度および熱ポリシーマネージャ101によって観測されている温度変化に応じて、モジュールを順番に、かつ/または並列に停止することができる。この第4の熱状態320の温度範囲は、約100℃以上の範囲を含み得る。
図10は、温度と、時間および対応する熱ポリシー状態305、310、315、および320との、例示的なグラフ500を示す図である。温度のプロットまたは線505の第1の点503において、熱ポリシーマネージャ101は、1つまたは複数の熱センサ157から、40℃という第1の割り込み温度測定値を受け取ることができる。この40℃という第1の温度測定値は、正常な熱状態305に対して設定される50℃という最大温度未満であり得るので、熱ポリシーマネージャ101は、第1の正常な熱状態305にとどまり得る。
温度の線505上での第2の点506において、熱ポリシーマネージャ101は、50℃という第2の割り込み温度測定値を受け取ることができる。50℃は、第1の熱状態305に対して選択された温度範囲内にあり得るが、最後の温度測定値からの温度変化が大幅であった場合、たとえば、短い期間内で大きな温度変化(5秒以内に3℃の変化のような)があった場合、そのような温度の変化または急上昇は、正常な熱状態305から出て、第2のQoS熱状態310を開始するように、熱ポリシーマネージャ101をトリガすることができる。
温度の線505の第2の点506と第3の点509との間に、PCD 100の温度は50℃を超えており、熱ポリシーマネージャ101は、PCD 100の温度を下げるために、1つまたは複数の熱軽減技法を要求しまたは有効にしていてよい。温度の線505の第3の点509において、熱ポリシーマネージャ101は、PCD 100の熱状態を、第2の状態310から第1の正常な状態305に変えることができる。
第4の点512において、熱ポリシーマネージャ101は、温度の傾向が上方向に動いていること、または言い換えると、温度の線505がデルタTにおいて正の傾きまたは変化を有し得ることを、観測することができる。熱ポリシーマネージャ101は、このデータを考慮して、PCD 100の熱状態を第1の熱状態305から第2のQoS熱状態310に変えることができる。第2の熱状態310では、熱ポリシーマネージャ101は、PCD 100により実現されるサービス品質に大幅な影響は与えないはずである、1つまたは複数の熱軽減技法を要求しまたは有効にすることができる。第2の熱状態310は、約50℃から約80℃という温度範囲を含み得る。
約80℃の大きさを有する第5の点515へと温度の線505に沿って移動すると、熱ポリシーマネージャ101は、第2のQoS熱状態310から第3の重度の熱状態315への、熱状態の変更を開始することができる。前に述べられたように、この第1の熱状態の温度範囲は、約80℃と約100℃との間の範囲を含み得る。この第3の重度の熱状態315では、熱ポリシーマネージャ101は、PCD 100のサービス品質および性能に影響を与え得る、複数の熱軽減技法を要求しまたは有効にしていてよい。
第5の点515と第6の点518との間の温度の線505の区間は、第3の重度の熱状態315が、PCD 100内の温度上昇を軽減するのに成功しなかったことを反映する。したがって、約100℃の大きさを有し得る第6の点518において、熱ポリシーマネージャ101は、第4の危機的な状態320に入り得る。この第4の危機的な状態320では、熱ポリシーマネージャ101は、あるハードウェアおよび/またはソフトウェアコンポーネントが現在の熱負荷を軽減するために停止され得ることを、有効にしまたは要求することができる。上で述べられたように、熱ポリシーマネージャ101は、緊急の911通話機能およびGPS機能以外の、任意のハードウェアおよび/またはソフトウェアコンポーネントを、この第4の熱状態320の間に停止させることができる。
第7の点521へと温度の線505に沿って移動すると、第6の点518と第7の点521との間の線505の区間は、危機的な熱状態320および重度の熱状態315が、PCD 100の温度を下げるのに成功したことを反映する。前に述べられたように、1つまたは複数の熱状態は、熱センサ157によって測定され熱ポリシーマネージャ101によって観測される温度に応じて、飛ばされてよくまたはスキップされてよい。
図11Aおよび図11Bは、PCD 100の1つまたは複数の熱ポリシーを管理するための方法600を示す、論理フローチャートである。図11Aの方法600Aは、熱ポリシーマネージャ101が第1の熱状態305の間に内部および外部の熱センサ157で温度を監視できる、第1のブロック605で開始する。この第1のブロック605は全般に、図8および図9に示される第1の熱状態305に対応する。前に述べられたように、熱ポリシーマネージャ101は、1つまたは複数の熱センサ157からの割り込みを監視し、アクティブに調査し、かつ/または受け取ることができる。この特定の熱状態では、熱ポリシーマネージャ101は、熱軽減技法を何ら適用しない。PCD 100は、この第1の熱状態において、熱負荷条件をまったく考慮せずに、その理想的なレベルで動作することができる。
次に、判定ブロック610において、熱ポリシーマネージャ101は、温度変化(デルタT)が1つまたは複数の熱センサ157によって検出されたかどうかを、判定することができる。判定ブロック610への照会が否定的であれば、ブロック605への「NO」の分岐に戻る。判断ブロック610への照会が肯定的であれば、ブロック615への「YES」の分岐に進み、そこで熱ポリシーマネージャ101は、熱センサ157の監視の頻度を上げることができる。ブロック615において、熱ポリシーマネージャは、熱センサ157をより頻繁にアクティブに調査することができ、または、温度データを提供する割り込みをより頻繁に送るように、熱センサ157に要求することができる。熱センサ157によるこの監視の増加は、第1の正常な状態305において起こってよく、また、第2のサービス品質熱状態310において起こってもよい。
次に、判定ブロック620において、熱ポリシーマネージャ101が、PCD 100が次の熱状態に達したかまたは到達したかどうかを判定することができる。この判定ブロック620において、熱ポリシーマネージャ101は、第2の熱状態310に割り当てられた温度範囲に到達したかどうかを、判定していてよい。あるいは、この判定ブロック620において、熱ポリシーマネージャは、大幅な温度変化(デルタT)が最後の測定値に対して発生したかどうかを、判定していてよい。
判定ブロック620への照会が否定的であれば、判定ブロック610への「NO」の分岐に戻る。判定ブロック620への照会が肯定的であれば、ルーチンまたはサブルーチン625への「YES」の分岐に進む。ルーチンまたはサブルーチン625は、QoS状態310とも呼ばれる第2の熱状態310を含んでよく、この状態において、熱ポリシーマネージャ101は、図9に関して上で説明された1つまたは複数の熱軽減技法を、適用または要求することができる。たとえば、熱ポリシーマネージャ101は、監視モジュール114および/またはO/Sモジュール207に要求して、限定はされないが、上で説明されたような(1)負荷のスケーリングおよび/または(2)負荷の動的なスケーリングおよび/または(3)空間的な負荷の移動および/または(4)処理負荷の再割り当てなどの熱軽減技法を開始することができる。
次に、判定ブロック630において、熱ポリシーマネージャ101は、第2のQoS状態310の1つまたは複数の熱軽減技法が成功したかどうか、および、1つまたは複数の熱センサ157により検出された現在の温度が第1の正常な状態305の次に低い熱的な範囲の中に入るかどうかを、判定することができる。判定ブロック630への照会が肯定的であれば、ブロック605への「YES」の分岐に進む。判定ブロック630への照会が否定的であれば、判定ブロック635への「NO」の分岐に進む。
判定ブロック635において、熱ポリシーマネージャ101は、PCD 100が現在第3の重度の熱状態315に入っているかどうかを、1つまたは複数の熱センサ157により検出される温度に従って、判定することができる。あるいは、熱ポリシーマネージャモジュール101は、PCD 100が第3の重度の熱状態315に入っているかどうかを、大幅な温度変化(デルタT)が起きたかどうかを判定することによって、判定することができる。
判定ブロック635への照会が否定的であれば、判定ブロック620への「NO」の分岐に戻る。判定ブロック635への照会が肯定的であれば、副方法またはサブルーチン640への「YES」の分岐に進む。
副方法またはサブルーチン640において、熱ポリシーマネージャ101は、PCD 100が第3の重度の熱状態に入ったと判定している。熱ポリシーマネージャ101は次いで、1つまたは複数の熱軽減技法が適用されることを、有効にしまたは要求することができる。
前に述べられたように、この第3の重度の熱状態315において、熱ポリシーマネージャ101は、熱センサ157からの割り込みの連続的な監視、調査、または受け取りを開始できるので、温度は、第2のより低温の状態310と比較して、より連続的に/頻繁に感知される。
この例示的な熱状態315では、熱ポリシーマネージャ101は、監視モジュール114および/またはO/Sモジュール207が、PCD 100の操作者によって観測される知覚できる可能性のある性能の低下を伴う、(第2の熱状態310に対して)より強力な熱軽減技法および/または追加の熱軽減技法を適用することを、適用または要求することができる。この例示的な熱状態315によれば、熱ポリシーマネージャ101は、増幅器、プロセッサなどのような、1つまたは複数のハードウェアデバイスに対する、電力の低減を引き起こし得る。熱ポリシーマネージャ101はまた、アクティブなデバイスを非接続状態にして、非アクティブなデバイスを接続状態にするために、空間的な方式で、様々なハードウェアデバイスの間で作業負荷を移動させることができる。さらに、熱ポリシーマネージャは、高性能のサブプロセッサブロックから主要なプロセッサブロックへと再割り当てされる処理負荷の割合を上げることができる。この第3の重度の熱状態315の熱軽減技法は、第2のサービス品質熱状態310に関して上で説明された技法と同一であり得る。しかしながら、上で説明されたように、これらの同一の熱軽減技法が、より強力な方式で適用され得る。
次に、判定ブロック645において、熱ポリシーマネージャ101は、サブルーチン640で適用された1つまたは複数の熱軽減技法がPCD 100の温度の上昇を防ぐのに成功したと、判定することができる。判定ブロック645への照会が否定的であれば、図11Bのステップ655への「NO」の分岐に進む。判定ブロック645への照会が肯定的であれば、「YES」の分岐がステップ650に進み、そこで熱ポリシーマネージャ101が、1つまたは複数の熱センサ157によって提供される温度測定値に基づいて、PCD 100の現在の熱状態を判定する。
図11Bは、図11Aに示されるフローチャートに対する、続きのフローチャートである。
図11Bの方法600Bは判定ブロック655において開始し、そこで、熱ポリシーマネージャ101は、PCD 100が第4の危機的な熱状態320に入っているかどうかを、1つまたは複数の熱センサ157により検出される温度に基づいて、判定することができる。判定ブロック655への照会が否定的であれば、「NO」の分岐がステップ660に進み、そこで熱ポリシーマネージャ101が、PCD 100を第3の重大な熱状態315に戻し、処理は図11Aのブロック635に戻る。
判定ブロック655への照会が肯定的であれば、「YES」の分岐がサブルーチン665に進み、そこで熱ポリシーマネージャ101が、1つまたは複数の危機的な熱軽減技法が実施されることを、有効にしまたは要求する。この第4の危機的な熱状態320において、熱ポリシーマネージャ101は、緊急の911通話およびGPS機能以外のハードウェアおよび/またはソフトウェアモジュールの停止を引き起こし得る。熱ポリシーマネージャ101は、熱センサ157によって監視されている危機的な温度および熱ポリシーマネージャ101によって観測されている温度変化に応じて、モジュールを順番に、かつ/または並列に停止することができる。
次いで、判定ブロック670において、熱ポリシーマネージャ101は、ルーチンまたは副方法665において適用された熱軽減技法が、熱センサ157により検出されるようなPCD 100の温度の上昇を防ぐのに成功したと、判定することができる。判定ブロック670への照会が否定的であれば、ルーチンまたは副方法665への「NO」の分岐に進む。
判定ブロック670への照会が肯定的であれば、「YES」の分岐がステップ675に進み、そこで熱ポリシーマネージャ101が、1つまたは複数の熱センサ157により供給される温度測定値に基づいて、PCD 100の現在の熱状態を判定する。温度測定値が熱ポリシーマネージャ101によって評価されると、熱ポリシーマネージャ101は、熱センサ157により検出される温度範囲に対応する熱状態を開始する。
図12は、処理負荷の再割り当てによる熱軽減技法を適用するための副方法またはサブルーチン625、640、および665を示す、論理フローチャートである。ブロック705は、処理負荷の再割り当てによる熱軽減技法を適用するための副方法またはサブルーチンの最初のステップである。この第1のブロック705において、熱ポリシーマネージャ101は、様々なCPUおよび/またはGPUコアに最も近接した熱センサ157によって提供される温度測定値に基づいて、現在の熱状態を判定することができる。現在の熱状態が熱ポリシーマネージャ101によって判定されると、ブロック710において、熱ポリシーマネージャ101は次いで、温度測定値と関連付けられる様々なコアに対する現在の処理負荷の割り当てを見直すことができる。次に、ブロック715において、熱ポリシーマネージャ101は、利用可能な、またはそうでなければ利用率の低い、1つまたは複数のハードウェアおよび/またはソフトウェアモジュールの現在の作業負荷を見直すことができる。
次にブロック720において、熱ポリシーマネージャ101は、作業負荷を低減するために、または作業負荷を移動するために、様々なコアに現在の作業負荷を再割り当てすることができ、または再割り当てをするための命令を発することができる。処理負荷の再割り当ての割合、再割り当てされる処理負荷の具体的な部分、および負荷が再割り当てされる処理位置は、熱ポリシーマネージャ101によって判定された現在の熱状態に従って得ることができる。有利なことに、高い温度測定値と関連付けられるコアまたはコアの領域中の作業負荷を、別のコアまたは領域への作業負荷のすべてまたは一部の再割り当てを通じて低減することによって、熱エネルギーの発生が軽減され得る。
よって第2のQoS熱状態310では、ブロック720において、熱ポリシーマネージャ101は、図2Aの監視モジュール114および/またはオペレーティングシステム(「O/S」)モジュール207を起動し、またはそれに要求して、PCD 100の操作者によって知覚されるようなサービス品質の低下の知覚をほとんどまたはまったく伴わずに高い性能を維持する目的で、熱軽減技法の適用を開始することができる。
図9に示されるこの例示的な第2の熱状態310によれば、熱ポリシーマネージャ101は、監視モジュール114および/またはO/Sモジュール207に要求して、限定はされないが、上で説明されたような、(1)負荷のスケーリングおよび/または(2)負荷の動的なスケーリングおよび/または(3)空間的な負荷の移動および/または(4)処理負荷の再割り当てなどの熱軽減技法を開始することができる。
第3の重度の熱状態315では、ブロック720において、熱ポリシーマネージャ101は、熱センサ157からの割り込みの連続的な監視、調査、または受け取りを開始できるので、温度は、第2のより低温の熱状態310と比較して、より連続的に/頻繁に感知される。この例示的な熱状態315では、熱ポリシーマネージャ101は、監視モジュール114および/またはO/Sモジュール207が、PCD 100の操作者によって観測される知覚できる可能性のある性能の低下を伴う、(第2の熱状態310に対して)より強力な熱軽減技法および/または追加の熱軽減技法を適用することを、適用または要求することができる。この例示的な熱状態315に従って、熱ポリシーマネージャ101は、増幅器、プロセッサなどのような1つまたは複数のハードウェアデバイスに対する電力の低減、または、高性能のサブプロセッサブロックから電力密度のより低い主要なプロセッサブロックへの処理負荷の完全な再割り当てを引き起こし得る。
熱ポリシーマネージャ101はまた、アクティブなデバイスを非接続状態にして、非アクティブなデバイスを接続状態にするために、空間的な方式で、様々なハードウェアデバイスの間で作業負荷を移動させることができる。この第3の重度の熱状態315の熱軽減技法は、第2のサービス品質熱状態310に関して上で説明された技法と同一であり得る。しかしながら、これらの同一の熱軽減技法は、上で説明されたようにより強力な方式で適用され得る。
第4の危機的な熱状態320では、ブロック720において、この熱状態320は、危機的な温度を回避するために、PCD 100の機能および動作を中止するように設計される、従来の技法と同様であり得る。第4の熱状態320は、熱ポリシーマネージャ101が、不可欠ではないハードウェアおよび/またはソフトウェアの停止を適用またはトリガする、「危機的」な状態を含み得る。この第4の熱状態の温度範囲は、約100℃以上の範囲を含み得る。副方法625、640、または665は次いで、PCD 100の現在の熱状態に応じて、熱管理方法600における適切なステップに戻る。
図13Aは、4コアマルチコアプロセッサ110と、マルチコアプロセッサ110内で再割り当てされ得る様々な処理負荷との概略図800Aである。マルチコアプロセッサ110は、ディスプレイ132上に投影されるグラフィカルなコンテンツを支援するためのグラフィックプロセッサ110、または様々なアプリケーションの実行のための中央プロセッサ110であってよい。
4コアマルチコアプロセッサ110は、第0のコア222、第1のコア224、第2のコア226、および第3のコア228を有する。マルチコアプロセッサ110の第1の処理負荷のシナリオは、マルチコアプロセッサ110Aによって明示され、第0のコア222は(ある特定のコアのための100%の完全な作業容量/利用率のうちの)70%の処理作業負荷を有し、第1のコア224は30%の処理作業負荷を有し、第2のコア226は50%の処理作業負荷を有し、第3のコア228は10%の処理作業負荷を有する。熱ポリシーマネージャ101が、熱軽減技法がPCD 100に適用されるうえで説明された熱状態310、315、320のいずれか1つに入る場合、この図13Aで示されるような処理の再割り当てによる熱負荷軽減技法が実施され得る。この処理の再割り当ての熱負荷軽減技法に従って、熱ポリシーマネージャ101、監視モジュール114、および/またはO/Sモジュール207が、1つのコアの処理作業負荷を、マルチコアプロセッサ110中の1つまたは複数の他のコアへ移すことができる。
図13Aに示される例示的な実施形態では、第0のコア222の処理作業負荷は、追加の作業がマルチコアプロセッサ110の残りの3つの他のコアによって実行されるように、移され得る。マルチコアプロセッサ110Bは、第0のコア222の処理作業負荷の20%および第2のコア226の処理作業負荷の40%が残りの2つのコアに移されて、第0のコア222が受ける処理作業負荷が50%に低減された一方で、第2のコア226が受ける処理作業負荷が10%に低減されるような、そのような移動を例示する。一方、第1のコア224の処理作業負荷は70%に上げられたが、第3のコア228の処理作業負荷は30%に上げられた。作業負荷および対応する作業負荷の割合を移す際の、他の大きさおよび組合せが、本発明の範囲内に十分入ることを、当業者は認識する。
マルチコアプロセッサ110C〜110Dは、1つまたは複数のコアが、所定のパターンで、または熱測定結果により表されるパターンでコアを休止状態にすることによって効果的に冷却され得る、「ホール」の例示的な移動を説明するものである。「ホール」または利用されていないコアは、数秒の間に、周囲のコアを冷却するために、そのコアのグループの周りでMIPSについて効果的に移される。図13Aのマルチコアプロセッサ110Cにより示される例示的な実施形態では、第0のコア222および第1のコア224は、80%の例示的な作業負荷を有し得るが、第2のコア226および第3のコア228は、まったく負荷を有さない。この状況では、第0のコア222と第1のコア224のいずれかまたは両方が、第2の熱状態310、第3の熱状態315、または第4の熱状態320に達すると、2つのアクティブなコア222、224の作業負荷のすべてが2つの非アクティブなコア226、228へと移される、処理の再割り当てによる熱負荷軽減技法が適用されることを、熱ポリシーマネージャ101は適用しまたは要求することができる。第4のプロセッサ110Dは、第0のコア222および第1のコア224がもはやまったく作業負荷を有さない一方で、第2のコア226および第3のコア228が、第0のコア222および第1のコア224によって管理されていた、前の作業負荷を負っている、そのような移動を示すものである。
図13Bにおいて、マルチコアプロセッサ110E〜110Fは、例示的な図12の処理負荷の再割り当てによる熱軽減技法の実例を提供する。図12の処理負荷の再割り当てによる熱軽減技法は、所与のコア228内のホットスポット48Aが、より広い領域にわたって効果的に分散されてホットスポット48Bを形成できるように、コア228内で適用される。有利なことに、高電力のサブプロセッサブロック228Aから主要なプロセッサブロック228Bへ処理負荷の負担を再割り当てすることによって、単位面積あたりのエネルギー放散の割合が高いホットスポット48Aは、単位面積あたりのエネルギー放散の割合がより低いホットスポット48Bへと変換され得る。再割り当てされたタスクを処理するために使われる処理領域の単位面積あたりの電力密度は、高電力密度のサブプロセッサよりも低いので、単位面積あたりのエネルギー放散(および、したがって単位面積あたりの温度)は、ホットスポット48Bの方が少なくなり得る。加えて、再割り当てされた処理タスクは完了により時間がかかり、したがって所与の単位時間に放散される単位面積あたりのエネルギーも必然的に少なくなるので、単位面積あたりのエネルギー放散は、ホットスポット48Aよりもホットスポット48Bの方が少なくなり得る。
前の例に戻ると、処理負荷と関連付けられる熱エネルギーの発生は、処理負荷の再割り当てによって軽減され得る。主要な処理ブロック228Bおよびより高性能のサブプロセッサブロックブロック228Aを伴うコア228を有するCPU 110E、110Fを含むある実施形態は、CPU 110Eの領域の4分の3を占める主要な処理ブロック228Bと、CPU 110E、110Fの領域の残りの4分の1を占めるサブプロセッサブロック228Aとを有し得る。主要なプロセッサブロック228Bは、CPU 110E、110F全体の総電力の1/2を放散する関連電力密度(「PD」)を有し得る一方、主要なプロセッサよりも高い計算能力を有するサブプロセッサブロック228Aも、総電力の1/2を放散する関連電力密度を有する。
そのような例示的な場合では、CPU 110E、110F全体により高い計算能力を提供するサブプロセッサブロック228Aは、より大きな主要な処理ブロック228Bの電力密度の2倍の電力密度を示す[PD228A = (P/2)/(A/4) = 2 P/A; PD228B = (P/2)/(3A/4) = P/Aの2/3]ことを、当業者は認識するだろう。それは、電力密度が所与の処理負荷に対する熱エネルギーの発生に直接比例し、サブプロセッサブロック228Aが主要な処理ブロック228Bよりも多くの熱エネルギーの放散を引き起こすからである。
CPU 110Eによって示されるように、サブプロセッサブロック228Aは、たとえば、ゲームアプリケーションのような所与の処理負荷の80%を処理している一方、主要なプロセッサブロック228Bは、わずか20%の残りの処理負荷を処理している。有利なことに、サブプロセッサブロック228Aと関連付けられるより高い計算能力(主要な処理ブロック228Bに対する)は、スケジューラ207からの、計算量の多いアプリケーションに対する割り当ての偏りを設定することができるので、サブプロセッサブロック228Aに割り当てられている80%の処理負荷の原因である。つまり、サブプロセッサブロック228Aが強力なので、スケジューラ207からのデフォルトの動作は、サブプロセッサ228Aに対して高い計算能力を必要とするあらゆるアプリケーションを割り当てることであってよい。しかしながら、サブプロセッサブロック228Aへの過剰なまたは長時間の処理の需要は、ホットスポット48Aによって例示において表されるような、過剰な熱エネルギーを発生させ得る。例示のために、ホットスポット48Aは、80℃のオーダーであってよく、温度は場合によっては重度の状態315に対する閾値と関連付けられる。
前に説明されたように、CPU 110Eの近くに、またはさらにより具体的には、プロセッサコア228の近くに配置されるセンサ157は、ホットスポット48Aを読み取り、その後、処理負荷の再割り当てを含む熱軽減技法を開始するように、熱ポリシーマネージャモジュール101をトリガすることができる。高電力密度のサブプロセッサ228Aから低電力密度の主要なプロセッサ228Bへの処理負荷の再割り当ては、コア全体の熱放散の合計を少なくするように機能することを、当業者は理解するだろう。さらに、熱ポリシーマネージャモジュール101は、様々なコアまたはコア内の領域の温度測定値によってトリガされる場合、コアの温度と関連付けられる熱バイアス因子に基づいて、新たな処理負荷を割り当て、または既存の処理負荷を再割り当てするように、O/Sスケジューラに指示できることが想定される。つまり、様々な処理コアまたはコアのサブ領域のリアルタイムの温度測定値に基づいて、ユーザ体験またはデバイス性能を過剰に犠牲にすることなく熱エネルギーの発生を管理する方式で処理負荷の負担が割り当てられ、または再割り当てされるように、熱バイアス因子が様々な処理コアまたはコアのサブ領域に割り当てられ得ることが、想定される。さらに、コンポーネントの完全性を脅かすことがない最高の水準にQoSがとどまることを確実にしようとして、いくつかの実施形態では、処理の負担をより電力密度の高いサブコアに負わせるように機能するバイアス因子が含まれ得ることが、想定される。
処理負荷の再割り当ての後で、CPU 110Fのコア228は、主要なプロセッサブロック228Bに60%の作業負荷を割り当てていてよく、サブプロセッサブロック228Aに40%の作業負荷を割り当てていてよい。例示では、高PDのサブプロセッサブロック228Aからの処理の負担の低減と、よりPDの低い主要なプロセッサブロック228Bに対する処理の負担の相対的な増大が、必然的にQoSの低下を引き起こした。しかしながら、処理の負担またはその一部の、よりPDの低い主要なプロセッサブロック228Bへの再割り当てによって、熱エネルギーの発生は、コア228のより広い領域または多量のフットプリントに分散されるので、「より冷たい」または大きなホットスポット48Bによって示されるような、以前の狭い領域に対して単位面積あたりの温度が低い、より広い領域が生成される。例示のために、ホットスポット48Bは、50℃のオーダーであってよく、温度は、場合によって正常な状態305に対する閾値と関連付けられる。
図13Bの例から、熱負荷誘導パラメータを利用して、あるコンポーネントから別のコンポーネントに、たとえば、コア228のサブプロセッサブロックからコア228の主要なプロセッサブロックなどに、処理負荷を再割り当てすることで、比較的小規模であり得る処理性能の低下と引き換えに、より広い領域にわたる熱エネルギーの放散と関連付けられるより低い温度という利益を実現することができる。主要なプロセッサブロック228Bは、負荷をより低速に処理し得るので、より低いQoSにつながるが、サブプロセッサ228Aと比較して、より広い領域および長い時間にわたって所与の作業負荷と関連付けられる熱エネルギーを放散することができ、これによってPCD 100において危機的な温度が回避される可能性がある。
図14は、上で説明されたような様々な熱軽減技法の適用により恩恵を受け得る、特定用途向け集積回路(「ASIC」)102の例示的な平面図1400を示す。図14の実例では、GPUバンク135およびCPUバンク110は、ASIC 102上の熱エネルギーを発生させる主要なコンポーネントを表す。電源管理集積回路(「PMIC」)182は、たとえば、ASIC 102上に存在しないが、CPUバンク110に近接している(1405)ものとして表される。
たとえば、PCD 100内の物理的な空間が制限されていることによって、PMIC 182は、ASIC 102のすぐ後ろまたは近くに存在することがある。したがって、PMIC 182または他の熱を発生させるコンポーネントから放散される熱エネルギーは、CPU 110内のコア222、224、226、228のいずれかのセンサ157から読み取られる温度測定値に悪影響を与え得ることを、当業者は認識するだろう。
PMIC 182、さらにはPCD 100内に存在する他のコンポーネントは、所与の処理コアのすぐ近く(1405)に配置され得るので、コンポーネントから放散される熱エネルギーがコアを通って伝搬するとき、平均動作温度がより高くなるような偏りが処理コア中で発生する。これらの近接したコンポーネントの、処理コアの温度に対する悪影響を、様々なPCD 100の構成および/または使用事例にわたって予測またはシミュレートするのは難しいことがあることを、当業者は認識するだろう。したがって、リアルタイムで、またはほぼリアルタイムで利用され得る熱軽減アルゴリズムの利点は、例示的なPMIC 182のようなPCD 100内の隣接したコンポーネントに起因し得る処理コンポーネント中の温度の偏りが、カスタム構成または事前に生成された熱負荷誘導シナリオおよびパラメータを伴わずに調整され得ることであることも、当業者は認識するだろう。つまり、処理負荷は、リアルタイムの実際の温度測定値に基づいて、リアルタイムで割り当てられ、または再割り当てされ得る。
本発明が説明通りに機能するように、本明細書で説明された処理または処理の流れの特定のステップが、他のステップよりも前に行われるのは当然である。しかしながら、ステップの順序または手順によって本発明の機能が変わることがない場合、本発明は説明したステップの順序に限定されない。つまり、本発明の範囲および趣旨から逸脱することなく、あるステップを他のステップの前に実行しても、後に実行してもよく、または各ステップを並行して(実質的に同時に)実行してもよいことを認識されたい。いくつかの場合には、特定のステップが、本発明から逸脱することなく、省略されてもよく、または実行されなくてもよい。さらに、「その後」、「次いで」、「次に」などの語は、ステップの順序を限定することを意図していない。これらの語は、単に例示的な方法の説明を通じて読者を導くために使用されている。
加えて、プログラミングの当業者は、たとえば本明細書のフローチャートおよび関連する説明に基づいて、コンピュータコードを書くか、または適切なハードウェアおよび/もしくは回路を特定し、開示された発明を容易に実施することができる。
したがって、特定の1組のプログラムコード命令または詳細なハードウェアデバイスの開示が、本発明をどのように製作し使用すべきかについて適切に理解するうえで必要であるとはみなされない。特許請求されるコンピュータで実施される処理の発明性のある機能は、上の説明において、かつ、様々な処理の流れを示し得る図面とともに、より詳細に説明される。
1つまたは複数の例示的な態様では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体上で送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体とコンピュータ通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であってよい。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形式で所望のプログラムコードを搬送もしくは記憶するために使われコンピュータによってアクセスされ得る、任意の他の媒体を含み得る。
また、任意の接続をコンピュータ可読媒体と呼ぶのが妥当である。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。
本明細書で使われる場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザーディスク(登録商標)、光ディスク、デジタル多用途ディスク(DVD)、フロッピー(登録商標)ディスク、およびブルーレイディスクを含み、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザーで光学的にデータを再生する。上記の組合せも、コンピュータ可読媒体の範囲の中に含まれるべきである。
選択された態様について詳細に図示し説明したが、以下の特許請求の範囲によって定義されるような本発明の趣旨および範囲から逸脱することなく、各態様において様々な置換および改変を実施できることが理解されよう。
10 シミュレーションコンピュータ
12 プロセッサ
14 メモリ
16 入力/出力デバイス
20 熱負荷シミュレーションモジュール
22 コンピュータモデル
24 熱負荷誘導シナリオテーブル
26 熱負荷誘導モジュール
100 ポータブルコンピューティングデバイス
101 熱ポリシーマネージャモジュール
102 集積回路
114 監視モジュール
157A 熱センサ
157B 熱センサ

Claims (40)

  1. ポータブルコンピューティングデバイスにおいて熱エネルギーの発生を管理するための方法であって、
    ポータブルコンピューティングデバイス中で、チップの熱エネルギーを発生させるコンポーネントに近接して温度センサを配置するステップと、
    前記温度センサによって生成される温度測定値を第1の頻度で監視するステップであって、前記温度測定値が、前記熱エネルギーを発生させるコンポーネント内の処理負荷と相関する、ステップと、
    第1の監視された温度測定値に基づいて、前記熱エネルギーを発生させるコンポーネントの第1の処理領域から前記熱エネルギーを発生させるコンポーネントの第2の処理領域へと、処理負荷の一部を再割り当てするステップであって、前記処理負荷の一部の再割り当てが、単位時間の間に前記コンポーネントの任意の単位面積において発生するエネルギーの量を少なくするように機能する、ステップと
    を含む、方法。
  2. 第2の監視された温度測定値に基づいて、前記熱エネルギーを発生させるコンポーネントの前記第2の処理領域から前記熱エネルギーを発生させるコンポーネントの前記第1の処理領域へと、処理負荷の一部を再割り当てするステップをさらに含む、請求項1に記載の方法。
  3. 前記第1の処理領域の温度が前記第1の監視された温度測定値に対して冷却されたことを、前記第2の監視された温度測定値が示す、請求項2に記載の方法。
  4. 前記再割り当てされた処理負荷の一部が、前記第1の処理領域における前記処理負荷の約100パーセントに等しい、請求項1に記載の方法。
  5. 前記第1の処理領域が、前記第2の処理領域も含むコア内のサブプロセッサである、請求項1に記載の方法。
  6. 前記第1の処理領域が、前記第2の処理領域と関連付けられる電力密度を超える関連電力密度を有する、請求項1に記載の方法。
  7. 複数の熱状態を定義するステップをさらに含み、各々の熱状態が温度の範囲を含み、
    前記第1の監視された温度測定値が、前記熱エネルギーを発生させるコンポーネントの温度が第1の熱状態に含まれる温度から第2の熱状態に含まれる温度へと上昇したことを示す、請求項1に記載の方法。
  8. 第2の監視された温度測定値に基づいて、前記熱エネルギーを発生させるコンポーネントの前記第2の処理領域から前記熱エネルギーを発生させるコンポーネントの前記第1の処理領域へと、処理負荷の一部を再割り当てするステップをさらに含み、前記第2の監視された温度測定値が、前記熱エネルギーを発生させるコンポーネントの前記温度が前記第2の熱状態に含まれる温度から前記第1の熱状態に含まれる温度へと低下したことを示す、請求項7に記載の方法。
  9. 前記第1の処理領域から前記第2の処理領域へと再割り当てされるべき負荷の量が、前記第1の監視された温度測定値を含む前記熱状態に従って変動する、請求項7に記載の方法。
  10. 監視する頻度を、前記第1の頻度から第2の頻度に上げるステップをさらに含み、監視の頻度の上昇が、前記第1の監視された温度測定値によってトリガされる、請求項7に記載の方法。
  11. ポータブルコンピューティングデバイスにおいて熱エネルギーの発生を管理するためのコンピュータシステムであって、
    近接して配置された温度センサによって生成される温度測定値を第1の頻度で監視し、このとき前記温度測定値が、前記マルチコアプロセッサの所与のコア内の処理負荷と相関し、さらに、
    第1の監視された温度測定値に基づいて、前記所与のコアの第1の処理領域から前記所与のコアの第2の処理領域へと、処理負荷の一部を再割り当てし、このとき前記処理負荷の一部の再割り当てが、単位時間の間に前記コアの任意の単位面積において発生するエネルギーの量を少なくするように機能する
    ように動作可能なマルチコアプロセッサを含む、コンピュータシステム。
  12. 前記マルチコアプロセッサがさらに、第2の監視された温度測定値に基づいて、前記所与のコアの前記第2の処理領域から前記所与のコアの前記第1の処理領域へと、処理負荷の一部を再割り当てするように動作可能である、請求項11に記載のシステム。
  13. 前記第1の処理領域の温度が前記第1の監視された温度測定値に対して冷却されたことを、前記第2の監視された温度測定値が示す、請求項12に記載のシステム。
  14. 前記再割り当てされた処理負荷の一部が、前記第1の処理領域における前記処理負荷の約100パーセントに等しい、請求項11に記載のシステム。
  15. 前記第1の処理領域が前記所与のコア内のサブプロセッサである、請求項11に記載のシステム。
  16. 前記第1の処理領域が、前記第2の処理領域と関連付けられる電力密度を超える関連電力密度を有する、請求項11に記載のシステム。
  17. 前記マルチコアプロセッサがさらに、複数の熱状態を認識するように動作可能であり、
    各々の熱状態が温度の範囲を含み、
    前記第1の監視された温度測定値が、前記所与のコアの温度が第1の熱状態に含まれる温度から第2の熱状態に含まれる温度へと上昇したことを示す、請求項11に記載のシステム。
  18. 前記マルチコアプロセッサがさらに、
    第2の監視された温度測定値に基づいて、前記所与のコアの前記第2の処理領域から前記所与のコアの前記第1の処理領域へと、処理負荷の一部を再割り当てするように動作可能であり、前記第2の監視された温度測定値が、前記所与のコアの前記温度が前記第2の熱状態に含まれる温度から前記第1の熱状態に含まれる温度へと低下したことを示す、請求項17に記載のシステム。
  19. 前記第1の処理領域から前記第2の処理領域へと再割り当てされる負荷の量が、前記第1の監視された温度測定値を含む前記熱状態に従って変動する、請求項17に記載のシステム。
  20. 前記マルチコアプロセッサがさらに、監視する頻度を、前記第1の頻度から第2の頻度に上げるように動作可能であり、監視の頻度の上昇が、前記第1の監視された温度測定値によってトリガされる、請求項17に記載のシステム。
  21. ポータブルコンピューティングデバイスにおいて熱エネルギーの発生を管理するためのコンピュータシステムであって、
    ポータブルコンピューティングデバイスにおいてチップの熱エネルギーを発生させるコンポーネントに近接して配置された温度センサによって生成される温度測定値を第1の頻度で監視するための手段であって、前記温度測定値が、前記熱エネルギーを発生させるコンポーネント内の処理負荷と相関する、手段と、
    前記熱エネルギーを発生させるコンポーネントの第1の処理領域から前記熱エネルギーを発生させるコンポーネントの第2の処理領域へと、処理負荷の一部を再割り当てするための手段であって、前記処理負荷の一部の再割り当てが、第1の監視された温度測定値によってトリガされ、単位時間の間に前記コンポーネントの任意の単位面積において発生するエネルギーの量を少なくするように機能する、手段と
    を含む、コンピュータシステム。
  22. 前記熱エネルギーを発生させるコンポーネントの前記第2の処理領域から前記熱エネルギーを発生させるコンポーネントの前記第1の処理領域へと、処理負荷の一部を再割り当てするための手段をさらに含み、前記処理負荷の一部の再割り当てが、第2の監視された温度測定値によってトリガされる、請求項21に記載のシステム。
  23. 前記第1の処理領域の温度が前記第1の監視された温度測定値に対して冷却されたことを、前記第2の監視された温度測定値が示す、請求項22に記載のシステム。
  24. 前記再割り当てされた処理負荷の一部が、前記第1の処理領域における前記処理負荷の約100パーセントに等しい、請求項21に記載のシステム。
  25. 前記第1の処理領域が、前記第2の処理領域も含むコア内のサブプロセッサである、請求項21に記載のシステム。
  26. 前記第1の処理領域が、前記第2の処理領域と関連付けられる電力密度を超える関連電力密度を有する、請求項21に記載のシステム。
  27. 複数の熱状態を定義するための手段をさらに含み、各々の熱状態が温度の範囲を含み、
    前記第1の監視された温度測定値が、前記熱エネルギーを発生させるコンポーネントの温度が第1の熱状態に含まれる温度から第2の熱状態に含まれる温度へと上昇したことを示す、請求項21に記載のシステム。
  28. 前記熱エネルギーを発生させるコンポーネントの前記第2の処理領域から前記熱エネルギーを発生させるコンポーネントの前記第1の処理領域へと、処理負荷の一部を再割り当てするための手段をさらに含み、前記処理負荷の一部の再割り当てが前記第2の監視された温度測定値によってトリガされ、前記第2の監視された温度測定値が、前記熱エネルギーを発生させるコンポーネントの前記温度が前記第2の熱状態に含まれる温度から前記第1の熱状態に含まれる温度へと低下したことを示す、請求項27に記載のシステム。
  29. 前記第1の処理領域から前記第2の処理領域へと再割り当てされる負荷の量が、前記第1の監視された温度測定値を含む前記熱状態に従って変動する、請求項27に記載のシステム。
  30. 監視する頻度を、前記第1の頻度から第2の頻度に上げるための手段をさらに含み、監視の頻度の上昇が、前記第1の監視された温度測定値によってトリガされる、請求項27に記載のシステム。
  31. コンピュータ可読プログラムコードが具現化されるコンピュータ使用可能媒体であって、前記コンピュータ可読プログラムコードが、ポータブルコンピューティングデバイスにおける熱エネルギーの発生を管理するための方法を実施するために実行されるように適合され、前記方法が、
    ポータブルコンピューティングデバイスにおいてチップの熱エネルギーを発生させるコンポーネントに近接して配置された温度センサによって生成される温度測定値を第1の頻度で監視するステップであって、前記温度測定値が、前記熱エネルギーを発生させるコンポーネント内の処理負荷と相関する、ステップと、
    第1の監視された温度測定値に基づいて、前記熱エネルギーを発生させるコンポーネントの第1の処理領域から前記熱エネルギーを発生させるコンポーネントの第2の処理領域へと、処理負荷の一部を再割り当てするステップであって、前記処理負荷の一部の再割り当てが、単位時間の間に前記コンポーネントの任意の単位面積において発生するエネルギーの量を少なくするように機能する、ステップと
    を含む、コンピュータ使用可能媒体。
  32. 前記方法を実施する前記プログラムコードがさらに、
    第2の監視された温度測定値に基づいて、前記熱エネルギーを発生させるコンポーネントの前記第2の処理領域から、前記熱エネルギーを発生させるコンポーネントの前記第1の処理領域へと、処理負荷の一部を再割り当てするステップを含む、請求項31に記載のコンピュータ使用可能媒体。
  33. 前記第1の処理領域の温度が前記第1の監視された温度測定値に対して冷却されたことを、前記第2の監視された温度測定値が示す、請求項32に記載のコンピュータ使用可能媒体。
  34. 前記再割り当てされた処理負荷の一部が、前記第1の処理領域における前記処理負荷の約100パーセントに等しい、請求項31に記載のコンピュータ使用可能媒体。
  35. 前記第1の処理領域が、前記第2の処理領域も含むコア内のサブプロセッサである、請求項31に記載のコンピュータ使用可能媒体。
  36. 前記第1の処理領域が、前記第2の処理領域と関連付けられる電力密度を超える関連電力密度を有する、請求項31に記載のコンピュータ使用可能媒体。
  37. 前記方法を実施する前記プログラムコードがさらに、
    複数の熱状態を定義するステップを含み、各々の熱状態が温度の範囲を含み、
    前記第1の監視された温度測定値が、前記熱エネルギーを発生させるコンポーネントの温度が第1の熱状態に含まれる温度から第2の熱状態に含まれる温度へと上昇したことを示す、請求項31に記載のコンピュータ使用可能媒体。
  38. 前記方法を実施する前記プログラムコードがさらに、
    第2の監視された温度測定値に基づいて、前記熱エネルギーを発生させるコンポーネントの前記第2の処理領域から、前記熱エネルギーを発生させるコンポーネントの前記第1の処理領域へと、処理負荷の一部を再割り当てするステップを含み、前記第2の監視された温度測定値が、前記熱エネルギーを発生させるコンポーネントの前記温度が前記第2の熱状態に含まれる温度から前記第1の熱状態に含まれる温度へと低下したことを示す、請求項37に記載のコンピュータ使用可能媒体。
  39. 前記第1の処理領域から前記第2の処理領域へと再割り当てされるべき負荷の量が、前記第1の監視された温度測定値を含む前記熱状態に従って変動する、請求項37に記載のコンピュータ使用可能媒体。
  40. 前記方法を実施する前記プログラムコードがさらに、監視する頻度を前記第1の頻度から第2の頻度に上げるステップを含み、監視の頻度の上昇が、前記第1の監視された温度測定値によってトリガされる、請求項37に記載のコンピュータ使用可能媒体。
JP2014506456A 2011-04-22 2012-04-12 ポータブルコンピューティングデバイスにおける熱負荷の管理 Active JP6059204B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161478175P 2011-04-22 2011-04-22
US61/478,175 2011-04-22
US13/197,171 2011-08-03
US13/197,171 US8942857B2 (en) 2011-04-22 2011-08-03 Method and system for thermal load management in a portable computing device
PCT/US2012/033192 WO2012145212A2 (en) 2011-04-22 2012-04-12 Method and system for thermal load management in a portable computing device

Publications (2)

Publication Number Publication Date
JP2014516443A true JP2014516443A (ja) 2014-07-10
JP6059204B2 JP6059204B2 (ja) 2017-01-11

Family

ID=47021953

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014506456A Active JP6059204B2 (ja) 2011-04-22 2012-04-12 ポータブルコンピューティングデバイスにおける熱負荷の管理

Country Status (6)

Country Link
US (1) US8942857B2 (ja)
EP (1) EP2699977A2 (ja)
JP (1) JP6059204B2 (ja)
KR (1) KR101529419B1 (ja)
CN (1) CN103582857B (ja)
WO (1) WO2012145212A2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017513147A (ja) * 2014-04-08 2017-05-25 クアルコム,インコーポレイテッド マルチプロセッサシステムオンチップにおけるエネルギー効率認識型熱管理
JP2018501546A (ja) * 2014-10-30 2018-01-18 クゥアルコム・インコーポレイテッドQualcomm Incorporated マルチコアプロセッサの熱緩和
JP2021508863A (ja) * 2017-11-10 2021-03-11 エヌビディア コーポレーション 安全で信頼できる自動運転車両のためのシステム及び方法

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8768666B2 (en) * 2011-01-06 2014-07-01 Qualcomm Incorporated Method and system for controlling thermal load distribution in a portable computing device
US9047067B2 (en) * 2011-04-22 2015-06-02 Qualcomm Incorporated Sensorless detection and management of thermal loading in a multi-processor wireless device
US8718835B2 (en) * 2011-06-17 2014-05-06 Microsoft Corporation Optimized temperature-driven device cooling
CN103376869B (zh) * 2012-04-28 2016-11-23 华为技术有限公司 一种用于dvfs的温度反馈控制系统及方法
WO2013177765A1 (en) * 2012-05-30 2013-12-05 Intel Corporation Runtime dispatching among heterogeneous group of processors
KR102038427B1 (ko) * 2012-09-28 2019-10-31 삼성전자 주식회사 온도별 전압 제어 방법 및 이를 지원하는 단말기
US9946319B2 (en) * 2012-11-20 2018-04-17 Advanced Micro Devices, Inc. Setting power-state limits based on performance coupling and thermal coupling between entities in a computing device
KR101454219B1 (ko) * 2012-11-27 2014-10-24 포항공과대학교 산학협력단 그래픽 처리 장치의 전력 관리 방법 및 전력 관리 시스템
US9632550B2 (en) 2012-12-17 2017-04-25 Hewlett-Packard Development Company, L.P. Controlling the operating temperature of a portable device by decreasing the temperature threshold of a component upon detecting an event
KR20140080058A (ko) * 2012-12-20 2014-06-30 삼성전자주식회사 멀티코어를 위한 로드 밸런싱 방법 및 휴대 단말
US9342443B2 (en) * 2013-03-15 2016-05-17 Micron Technology, Inc. Systems and methods for memory system management based on thermal information of a memory system
US20140344827A1 (en) * 2013-05-16 2014-11-20 Nvidia Corporation System, method, and computer program product for scheduling a task to be performed by at least one processor core
US9158358B2 (en) 2013-06-04 2015-10-13 Qualcomm Incorporated System and method for intelligent multimedia-based thermal power management in a portable computing device
US9323318B2 (en) 2013-06-11 2016-04-26 Microsoft Technology Licensing, Llc Scenario power management
KR102076824B1 (ko) * 2013-06-28 2020-02-13 삼성디스플레이 주식회사 보호 회로, 이를 이용한 회로 보호 방법 및 표시장치
US9495491B2 (en) * 2014-03-14 2016-11-15 Microsoft Technology Licensing, Llc Reliability aware thermal design
US10082847B2 (en) * 2014-04-01 2018-09-25 Qualcomm Incorporated Method and system for optimizing performance of a PCD while mitigating thermal generation
US10042402B2 (en) * 2014-04-07 2018-08-07 Google Llc Systems and methods for thermal management of a chassis-coupled modular mobile electronic device
US10095286B2 (en) 2014-05-30 2018-10-09 Apple Inc. Thermally adaptive quality-of-service
US10203746B2 (en) * 2014-05-30 2019-02-12 Apple Inc. Thermal mitigation using selective task modulation
US9530174B2 (en) * 2014-05-30 2016-12-27 Apple Inc. Selective GPU throttling
CN104049716B (zh) * 2014-06-03 2017-01-25 中国科学院计算技术研究所 一种结合温度感知的计算机节能方法及系统
WO2015188785A1 (en) * 2014-06-12 2015-12-17 Mediatek Inc. Thermal management method and electronic system with thermal management mechanism
KR102329475B1 (ko) * 2014-08-27 2021-11-19 삼성전자주식회사 렌더링 퀄리티 제어 장치 및 방법
KR102210770B1 (ko) * 2014-09-02 2021-02-02 삼성전자주식회사 반도체 장치, 반도체 시스템 및 그 제어 방법
US9569221B1 (en) * 2014-09-29 2017-02-14 Amazon Technologies, Inc. Dynamic selection of hardware processors for stream processing
US10061331B2 (en) * 2015-01-22 2018-08-28 Qualcomm Incorporated Systems and methods for detecting thermal runaway
US9785209B2 (en) 2015-03-31 2017-10-10 Qualcomm Incorporated Thermal management in a computing device based on workload detection
CN105045359A (zh) * 2015-07-28 2015-11-11 深圳市万普拉斯科技有限公司 散热控制方法和装置
US10332230B2 (en) 2015-08-31 2019-06-25 Qualcomm Incorporated Characterizing GPU workloads and power management using command stream hinting
US9749740B2 (en) 2015-11-17 2017-08-29 Motorola Solutions, Inc. Method and apparatus for expanded temperature operation of a portable communication device
US20170147355A1 (en) * 2015-11-24 2017-05-25 Le Holdings (Beijing) Co., Ltd. Method and system for accelerating intelligent terminal boot speed
CN105342636A (zh) * 2015-12-08 2016-02-24 苏州波影医疗技术有限公司 多层x射线ct系统的探测器系统的温度控制系统和方法
US10168752B2 (en) * 2016-03-08 2019-01-01 Qualcomm Incorporated Systems and methods for determining a sustained thermal power envelope comprising multiple heat sources
US9817697B2 (en) * 2016-03-25 2017-11-14 International Business Machines Corporation Thermal-and spatial-aware task scheduling
US10175731B2 (en) 2016-06-17 2019-01-08 Microsoft Technology Licensing, Llc Shared cooling for thermally connected components in electronic devices
EP3264268A1 (en) * 2016-06-29 2018-01-03 Intel Corporation Distributed processing qos algorithm for system performance optimization under thermal constraints
US11175708B2 (en) * 2016-07-12 2021-11-16 American Megatrends International, Llc Thermal simulation for management controller development projects
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
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
US11742038B2 (en) * 2017-08-11 2023-08-29 Advanced Micro Devices, Inc. Method and apparatus for providing wear leveling
US11551990B2 (en) * 2017-08-11 2023-01-10 Advanced Micro Devices, Inc. Method and apparatus for providing thermal wear leveling
EP3547076A1 (en) * 2018-03-28 2019-10-02 Advanced Digital Broadcast S.A. System and method for adjusting performance of components of a multi-component system
CN110968415B (zh) * 2018-09-29 2022-08-05 Oppo广东移动通信有限公司 多核处理器的调度方法、装置及终端
JP7172625B2 (ja) * 2019-01-16 2022-11-16 トヨタ自動車株式会社 情報処理装置
CN110333933A (zh) * 2019-07-01 2019-10-15 华南理工大学 一种hpl计算模型仿真方法
CN110794949A (zh) * 2019-09-27 2020-02-14 苏州浪潮智能科技有限公司 一种基于部件温度自动分配计算资源的降功耗方法和系统
US20210223805A1 (en) * 2020-12-23 2021-07-22 Intel Corporation Methods and apparatus to reduce thermal fluctuations in semiconductor processors
US11860067B2 (en) * 2021-01-19 2024-01-02 Nvidia Corporation Thermal test vehicle
CN113616227B (zh) * 2021-09-18 2024-05-28 明峰医疗系统股份有限公司 一种探测器温度控制系统及方法
CN115237179B (zh) * 2022-09-22 2023-01-20 之江实验室 一种基于机器学习的智能温控管理电路
CN117215394B (zh) * 2023-11-07 2024-01-23 北京数渡信息科技有限公司 一种面向多核处理器的片上温度和能耗控制装置
CN117369603B (zh) * 2023-12-05 2024-03-22 广东迅扬科技股份有限公司 一种机箱散热控制系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005119402A1 (ja) * 2004-06-04 2005-12-15 Sony Computer Entertainment Inc. プロセッサ、プロセッサシステム、温度推定装置、情報処理装置および温度推定方法
JP2008157739A (ja) * 2006-12-22 2008-07-10 Toshiba Corp 情報処理装置および起動方法
US20100073068A1 (en) * 2008-09-22 2010-03-25 Hanwoo Cho Functional block level thermal control
JP2011014155A (ja) * 2009-06-30 2011-01-20 Toshiba Corp 情報処理装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7822996B2 (en) 1995-12-07 2010-10-26 Texas Instruments Incorporated Method for implementing thermal management in a processor and/or apparatus and/or system employing the same
US5940785A (en) 1996-04-29 1999-08-17 International Business Machines Corporation Performance-temperature optimization by cooperatively varying the voltage and frequency of a circuit
US7086058B2 (en) 2002-06-06 2006-08-01 International Business Machines Corporation Method and apparatus to eliminate processor core hot spots
US7360102B2 (en) 2004-03-29 2008-04-15 Sony Computer Entertainment Inc. Methods and apparatus for achieving thermal management using processor manipulation
JP3830491B2 (ja) * 2004-03-29 2006-10-04 株式会社ソニー・コンピュータエンタテインメント プロセッサ、マルチプロセッサシステム、プロセッサシステム、情報処理装置および温度制御方法
JP3805344B2 (ja) * 2004-06-22 2006-08-02 株式会社ソニー・コンピュータエンタテインメント プロセッサ、情報処理装置およびプロセッサの制御方法
US7739527B2 (en) 2004-08-11 2010-06-15 Intel Corporation System and method to enable processor management policy in a multi-processor environment
US8806228B2 (en) 2006-07-13 2014-08-12 International Business Machines Corporation Systems and methods for asymmetrical performance multi-processors
US7584369B2 (en) 2006-07-26 2009-09-01 International Business Machines Corporation Method and apparatus for monitoring and controlling heat generation in a multi-core processor
US20080115010A1 (en) 2006-11-15 2008-05-15 Rothman Michael A System and method to establish fine-grained platform control
US8171325B2 (en) 2008-12-03 2012-05-01 International Business Machines Corporation Computing component and environment mobility
WO2010112045A1 (de) 2009-04-02 2010-10-07 Siemens Aktiengesellschaft Verfahren und vorrichtung zur energieeffizienten lastverteilung
US8839012B2 (en) 2009-09-08 2014-09-16 Advanced Micro Devices, Inc. Power management in multi-GPU systems
US20110138395A1 (en) 2009-12-08 2011-06-09 Empire Technology Development Llc Thermal management in multi-core processor
CN102004673A (zh) * 2010-11-29 2011-04-06 中兴通讯股份有限公司 多核处理器负载均衡的处理方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005119402A1 (ja) * 2004-06-04 2005-12-15 Sony Computer Entertainment Inc. プロセッサ、プロセッサシステム、温度推定装置、情報処理装置および温度推定方法
JP2008157739A (ja) * 2006-12-22 2008-07-10 Toshiba Corp 情報処理装置および起動方法
US20100073068A1 (en) * 2008-09-22 2010-03-25 Hanwoo Cho Functional block level thermal control
JP2011014155A (ja) * 2009-06-30 2011-01-20 Toshiba Corp 情報処理装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017513147A (ja) * 2014-04-08 2017-05-25 クアルコム,インコーポレイテッド マルチプロセッサシステムオンチップにおけるエネルギー効率認識型熱管理
JP2018501546A (ja) * 2014-10-30 2018-01-18 クゥアルコム・インコーポレイテッドQualcomm Incorporated マルチコアプロセッサの熱緩和
JP2021508863A (ja) * 2017-11-10 2021-03-11 エヌビディア コーポレーション 安全で信頼できる自動運転車両のためのシステム及び方法
JP7346401B2 (ja) 2017-11-10 2023-09-19 エヌビディア コーポレーション 安全で信頼できる自動運転車両のためのシステム及び方法

Also Published As

Publication number Publication date
JP6059204B2 (ja) 2017-01-11
WO2012145212A2 (en) 2012-10-26
EP2699977A2 (en) 2014-02-26
US8942857B2 (en) 2015-01-27
CN103582857B (zh) 2017-06-23
CN103582857A (zh) 2014-02-12
KR20140002072A (ko) 2014-01-07
WO2012145212A3 (en) 2013-03-28
US20120271481A1 (en) 2012-10-25
KR101529419B1 (ko) 2015-06-16

Similar Documents

Publication Publication Date Title
JP6059204B2 (ja) ポータブルコンピューティングデバイスにおける熱負荷の管理
JP5922778B2 (ja) ヘテロジニアスマルチコアプロセッサにおける熱エネルギーの発生を管理するためのシステムおよび方法
JP5883967B2 (ja) ポータブルコンピューティングデバイスの熱ポリシーを管理するための方法およびシステム
JP5808488B2 (ja) 主体的な負荷操作により熱負荷をあらかじめ回避するための方法、システム、及びコンピュータプログラム
JP6249953B2 (ja) ヘテロジニアスマルチプロセッサシステムオンチップにおける熱駆動作業負荷スケジューリング
JP6162262B2 (ja) 最適な電力レベルを予測するために熱抵抗値を使用したポータブルコンピューティングデバイスにおける熱管理のためのシステムおよび方法
JP6218967B2 (ja) マルチプロセッサシステムオンチップにおけるエネルギー効率認識型熱管理
JP5781255B1 (ja) ポータブルコンピューティングデバイスにおける適応型熱管理のためのシステムおよび方法
JP5805881B2 (ja) 漏洩電流の測定値から熱管理ポリシーを決定するためのシステムおよび方法
US8996902B2 (en) Modal workload scheduling in a heterogeneous multi-processor system on a chip
US8595525B2 (en) On-chip thermal management techniques using inter-processor time dependent power density data for indentification of thermal aggressors
TW201329678A (zh) 用於一行動裝置之鄰近基礎熱管理之系統及方法
US20120179441A1 (en) Method and system for controlling thermal load distribution in a portable computing device

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150223

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150406

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150703

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20150710

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20150904

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160829

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161208

R150 Certificate of patent or registration of utility model

Ref document number: 6059204

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250