(57)【特許請求の範囲】
【請求項１】
ヘテロジニアスマルチコアプロセッサを有するポータブルコンピューティングデバイスにおいて熱エネルギーの発生を管理するための方法であって、
前記ヘテロジニアスマルチコアプロセッサ中の複数の個々の処理コアの各々と一意に関連付けられる温度測定値を監視するステップと、
前記複数の個々の処理コアの各々に割り当てられた作業負荷を追跡するステップと、
各々の個々の処理コアと関連付けられる前記温度測定値に基づいて、各々の性能カーブを決定するステップであって、前記性能カーブが、所与の温度で動作する時の、所与の個々の処理コアの電力消費と、所与の数の100万命令毎秒を処理するのに必要なドライストーン反復の数(DMIPS)との関係を表す、前記性能カーブを決定するステップと、
各々の個々の処理コアの前記決定された性能カーブを比較して、1つまたは複数の移行点を定義するステップであって、移行点が、2つの前記決定された性能カーブが交差する点である、前記移行点を定義するステップと、
前記決定された移行点の1つまたは複数に基づいて、他の個々の処理コアの各々と比較して最良の効率を提供する、前記複数の個々の処理コアの1つまたは複数に前記作業負荷を配分または再配分するステップと
を含み、
前記ヘテロジニアスマルチコアプロセッサ中の前記個々の処理コアの2つ以上が、異なる温度において動作しており、
前記移行点が、異なる温度において動作している処理コアの性能カーブが交差する点を含む、方法。
【請求項２】
個々の処理コアの現在の作業負荷が移行点と関連付けられる作業負荷レベルを超えると
判定するステップと、
前記現在の作業負荷の一部分を別の個々のコアに再配分するステップとをさらに含む、
請求項1に記載の方法。
【請求項３】
個々の処理コアの現在の作業負荷が移行点と関連付けられる作業負荷レベルより少ない
と判定するステップと、
前記現在の作業負荷の一部分を別の個々のコアに再配分するステップとをさらに含む、
請求項1に記載の方法。
【請求項４】
個々の処理コアの現在の電力消費が移行点と関連付けられる電力消費レベルを超えると
判定するステップと、
現在の作業負荷の一部分を別の個々のコアに再配分するステップとをさらに含む、請求
項1に記載の方法。
【請求項５】
個々の処理コアの現在の電力消費が移行点と関連付けられる電力消費レベルより少ない
と判定するステップと、
現在の作業負荷の一部分を別の個々のコアに再配分するステップとをさらに含む、請求
項1に記載の方法。
【請求項６】
前記複数の個々のコアにわたる全体の電力消費を計算するステップをさらに含み、
前記移行点の1つまたは複数および前記複数の個々のコアにわたる前記電力消費に基づ
いて、前記複数の個々のコアにわたる前記全体の電力消費が最小化されるように前記作業
負荷が前記複数の個々のコアにわたり配分される、請求項1に記載の方法。
【請求項７】
個々のコアによって消費される電力が最適化されるように前記作業負荷が配分される、
請求項1に記載の方法。
【請求項８】
前記性能カーブの1つまたは複数が経験的に導出される、請求項1に記載の方法。
【請求項９】
前記移行点の1つまたは複数および前記複数の個々のコアにわたる前記電力消費に基づ
いて、前記ヘテロジニアスマルチコアプロセッサにわたる電力密度が最適化されるように
前記作業負荷が配分される、請求項1に記載の方法。
【請求項１０】
ヘテロジニアスマルチコアプロセッサを有するポータブルコンピューティングデバイスにおいて熱エネルギーの発生を管理するためのコンピュータシステムであって、
前記ヘテロジニアスマルチコアプロセッサ中の複数の個々の処理コアの各々と一意に関連付けられる温度測定値を監視し、
前記複数の個々の処理コアの各々に割り当てられた作業負荷を追跡する
ように構成される監視モジュールと、
各々の個々の処理コアと関連付けられる前記温度測定値に基づいて、各々の性能カーブを決定し、このとき前記性能カーブが、所与の温度で動作する時の、所与の個々の処理コアの電力消費と、所与の数の100万命令毎秒を処理するのに必要なドライストーン反復の数(DMIPS)との関係を表し、
各々の個々の処理コアの前記決定された性能カーブを比較して、1つまたは複数の移行点を定義し、このとき移行点が、2つの前記決定された性能カーブが交差する点である  ように構成される負荷切替モジュールと、
前記決定された移行点の1つまたは複数に基づいて、他の個々の処理コアの各々と比較して最良の効率を提供する、前記複数の個々の処理コアの1つまたは複数に前記作業負荷を配分または再配分するように構成される熱ポリシーマネージャモジュールと
を含み、
前記ヘテロジニアスマルチコアプロセッサ中の前記個々の処理コアの2つ以上が、異なる温度において動作し、
前記移行点が、異なる温度において動作している処理コアの性能カーブが交差する点を含む、コンピュータシステム。
【請求項１１】
前記熱ポリシーマネージャモジュールがさらに、
個々の処理コアの現在の作業負荷が移行点と関連付けられる作業負荷レベルを超えると
判定し、
前記現在の作業負荷の一部分を別の個々のコアに再配分するように構成される、請求項
10に記載のコンピュータシステム。
【請求項１２】
前記熱ポリシーマネージャモジュールがさらに、
個々の処理コアの現在の作業負荷が移行点と関連付けられる作業負荷レベルより少ない
と判定し、
前記現在の作業負荷の一部分を別の個々のコアに再配分するように構成される、請求項
10に記載のコンピュータシステム。
【請求項１３】
前記熱ポリシーマネージャモジュールがさらに、
個々の処理コアの現在の電力消費が移行点と関連付けられる電力消費レベルを超えると
判定し、
現在の作業負荷の一部分を別の個々のコアに再配分するように構成される、請求項10に
記載のコンピュータシステム。
【請求項１４】
前記熱ポリシーマネージャモジュールがさらに、
個々の処理コアの現在の電力消費が移行点と関連付けられる電力消費レベルより少ない
と判定し、
現在の作業負荷の一部分を別の個々のコアに再配分するように構成される、請求項10に
記載のコンピュータシステム。
【請求項１５】
前記熱ポリシーマネージャモジュールがさらに、
前記複数の個々のコアにわたる全体の電力消費を計算し、
前記移行点の1つまたは複数および前記複数の個々のコアにわたる前記電力消費に基づ
いて、前記複数の個々のコアにわたる前記全体の電力消費が最小化されるように前記複数
の個々のコアにわたり前記作業負荷を配分するように構成される、請求項10に記載のコン
ピュータシステム。
【請求項１６】
前記熱ポリシーマネージャモジュールがさらに、個々のコアによって消費される電力が
最適化されるように前記作業負荷を配分するように構成される、請求項10に記載のコンピ
ュータシステム。
【請求項１７】
前記負荷切替モジュールがさらに、前記性能カーブの1つまたは複数を経験的に導出す
るように構成される、請求項10に記載のコンピュータシステム。
【請求項１８】
前記移行点の1つまたは複数および前記複数の個々のコアにわたる前記電力消費に基づ
いて、前記ヘテロジニアスマルチコアプロセッサにわたる電力密度が最適化されるように
前記作業負荷が配分される、請求項10に記載のコンピュータシステム。
【請求項１９】
ヘテロジニアスマルチコアプロセッサを有するポータブルコンピューティングデバイスにおいて熱エネルギーの発生を管理するためのコンピュータシステムであって、
前記ヘテロジニアスマルチコアプロセッサ中の複数の個々の処理コアの各々と一意に関連付けられる温度測定値を監視するための手段と、
前記複数の個々の処理コアの各々に割り当てられた作業負荷を追跡するための手段と、
各々の個々の処理コアと関連付けられる前記温度測定値に基づいて、各々の性能カーブを決定するための手段であって、前記性能カーブが、所与の温度で動作する時の、所与の個々の処理コアの電力消費と、所与の数の100万命令毎秒を処理するのに必要なドライストーン反復の数(DMIPS)との関係を表す、前記性能カーブを決定するための手段と、
各々の個々の処理コアの前記決定された性能カーブを比較して、1つまたは複数の移行点を定義するための手段であって、移行点が、2つの前記決定された性能カーブが交差する点である、前記移行点を定義するための手段と、
前記決定された移行点の1つまたは複数に基づいて、他の個々の処理コアの各々と比較して最良の効率を提供する、前記複数の個々の処理コアの1つまたは複数に前記作業負荷を配分または再配分するための手段と
を含み、
前記ヘテロジニアスマルチコアプロセッサ中の前記個々の処理コアの2つ以上が、異なる温度において動作しており、
前記移行点が、異なる温度において動作している処理コアの性能カーブが交差する点を含む、コンピュータシステム。
【請求項２０】
個々の処理コアの現在の作業負荷が移行点と関連付けられる作業負荷レベルを超えると
判定するための手段と、
前記現在の作業負荷の一部分を別の個々のコアに再配分するための手段とをさらに含む
、請求項19に記載のコンピュータシステム。
【請求項２１】
個々の処理コアの現在の作業負荷が移行点と関連付けられる作業負荷レベルより少ない
と判定するための手段と、
前記現在の作業負荷の一部分を別の個々のコアに再配分するための手段とをさらに含む
、請求項19に記載のコンピュータシステム。
【請求項２２】
個々の処理コアの現在の電力消費が移行点と関連付けられる電力消費レベルを超えると
判定するための手段と、
現在の作業負荷の一部分を別の個々のコアに再配分するための手段とをさらに含む、請
求項19に記載のコンピュータシステム。
【請求項２３】
個々の処理コアの現在の電力消費が移行点と関連付けられる電力消費レベルより少ない
と判定するための手段と、
現在の作業負荷の一部分を別の個々のコアに再配分するための手段とをさらに含む、請
求項19に記載のコンピュータシステム。
【請求項２４】
前記複数の個々のコアにわたる全体の電力消費を計算するための手段をさらに含み、
前記移行点の1つまたは複数および前記複数の個々のコアにわたる前記電力消費に基づ
いて、前記複数の個々のコアにわたる前記全体の電力消費が最小化されるように前記作業
負荷が前記複数の個々のコアにわたり配分される、請求項19に記載のコンピュータシステ
ム。
【請求項２５】
個々のコアによって消費される電力が最適化されるように前記作業負荷が配分される、
請求項19に記載のコンピュータシステム。
【請求項２６】
前記性能カーブの1つまたは複数が経験的に導出される、請求項19に記載のコンピュー
タシステム。
【請求項２７】
前記移行点の1つまたは複数および前記複数の個々のコアにわたる前記電力消費に基づ
いて、前記ヘテロジニアスマルチコアプロセッサにわたる電力密度が最適化されるように
前記作業負荷が配分される、請求項19に記載のコンピュータシステム。
【請求項２８】
コンピュータ可読プログラムコードを含むコンピュータプログラムであって、前記コンピュータ可読プログラムコードが、ヘテロジニアスマルチコアプロセッサを有するポータブルコンピューティングデバイスにおける熱エネルギーの発生を管理するための方法を実施するために実行されるように適合され、前記方法が、
前記ヘテロジニアスマルチコアプロセッサ中の複数の個々の処理コアの各々と一意に関連付けられる温度測定値を監視するステップと、
前記複数の個々の処理コアの各々に割り当てられた作業負荷を追跡するステップと、
各々の個々の処理コアと関連付けられる前記温度測定値に基づいて、各々の性能カーブを決定するステップであって、前記性能カーブが、所与の温度で動作する時の、所与の個々の処理コアの電力消費と、所与の数の100万命令毎秒を処理するのに必要なドライストーン反復の数(DMIPS)との関係を表す、前記性能カーブを決定するステップと、
各々の個々の処理コアの前記決定された性能カーブを比較して、1つまたは複数の移行点を定義するステップであって、移行点が、2つの前記決定された性能カーブが交差する点である、前記移行点を定義するステップと、
前記決定された移行点の1つまたは複数に基づいて、他の個々の処理コアの各々と比較して最良の効率を提供する、前記複数の個々の処理コアの1つまたは複数に前記作業負荷を配分または再配分するステップと
を含み、
前記ヘテロジニアスマルチコアプロセッサ中の前記個々の処理コアの2つ以上が、異なる温度において動作しており、
前記移行点が、異なる温度において動作している処理コアの性能カーブが交差する点を含む、コンピュータプログラム。
【請求項２９】
前記方法を実施する前記コンピュータ可読プログラムコードがさらに、
個々の処理コアの現在の作業負荷が移行点と関連付けられる作業負荷レベルを超えると
判定するステップと、
前記現在の作業負荷の一部分を別の個々のコアに再配分するステップとを含む、請求項
28に記載のコンピュータプログラム。
【請求項３０】
前記方法を実施する前記コンピュータ可読プログラムコードがさらに、
個々の処理コアの現在の作業負荷が移行点と関連付けられる作業負荷レベルより少ない
と判定するステップと、
前記現在の作業負荷の一部分を別の個々のコアに再配分するステップとを含む、請求項
28に記載のコンピュータプログラム。
【請求項３１】
前記方法を実施する前記コンピュータ可読プログラムコードがさらに、
個々の処理コアの現在の電力消費が移行点と関連付けられる電力消費レベルを超えると
判定するステップと、
現在の作業負荷の一部分を別の個々のコアに再配分するステップとを含む、請求項28に
記載のコンピュータプログラム。
【請求項３２】
前記方法を実施する前記コンピュータ可読プログラムコードがさらに、
個々の処理コアの現在の電力消費が移行点と関連付けられる電力消費レベルより少ない
と判定するステップと、
現在の作業負荷の一部分を別の個々のコアに再配分するステップとを含む、請求項28に
記載のコンピュータプログラム。
【請求項３３】
前記方法を実施する前記コンピュータ可読プログラムコードがさらに、
前記複数の個々のコアにわたる全体の電力消費を計算するステップをさらに含み、
前記移行点の1つまたは複数および前記複数の個々のコアにわたる前記電力消費に基づ
いて、前記複数の個々のコアにわたる前記全体の電力消費が最小化されるように前記作業
負荷が前記複数の個々のコアにわたり配分される、請求項28に記載のコンピュータプログ
ラム。
【請求項３４】
個々のコアによって消費される電力が最適化されるように前記作業負荷が配分される、
請求項28に記載のコンピュータプログラム。
【請求項３５】
前記性能カーブの1つまたは複数が経験的に導出される、請求項28に記載のコンピュー
タプログラム。
【請求項３６】
前記移行点の1つまたは複数および前記複数の個々のコアにわたる前記電力消費に基づ
いて、前記ヘテロジニアスマルチコアプロセッサにわたる電力密度が最適化されるように
前記作業負荷が配分される、請求項28に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
2011年9月21に出願された、「SYSTEM AND METHOD FOR MANAGING THERMAL ENERGY GENERATION IN A HETEROGENEOUS MULTI-CORE PROCESSOR」という表題の、出願番号第61/537,441号を割り当てられた米国仮出願に対する、米国特許法第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により提供されるサービス品質(「QoS」)に影響を与えることとの間で避けられないトレードオフのバランスを取ろうとする。ヘテロジニアス処理コンポーネントを有するPCDでは、PCD内の様々な処理コンポーネントが同等に作られていないので、効率的にそのトレードオフのバランスを取ることは複雑であり得る。
【０００７】
したがって、本技術分野で必要とされるのは、プロセッサの性能カーブの比較分析に基づく、ヘテロジニアス処理コンポーネントにわたる作業負荷の配分および再配分、すなわち、負荷の切り替えを通じて、PCDにおける熱エネルギーの発生を管理するための方法およびシステムである。
【課題を解決するための手段】
【０００８】
ヘテロジニアスマルチコアプロセッサを含むポータブルコンピューティングデバイス上で熱エネルギーの発生を制御および/または管理するための方法およびシステムの様々な実施形態が、開示される。ヘテロジニアスプロセッサ中の個々のコアは、所与の温度において異なる処理効率を示し得るので、測定された動作温度における個々のコアの性能カーブを比較する熱軽減技法を利用して、性能カーブの比較に基づいて個々のコアにわたり作業負荷を配分し、かつ/または再配分することによって、PCDにおける熱エネルギーの発生を管理することができる。
【０００９】
1つのそのような方法は、ヘテロジニアスマルチコアプロセッサ中の複数の個々の処理コアの各々と一意に関連付けられる温度測定値を監視するステップと、複数の個々の処理コアの各々に割り当てられた作業負荷を同時に追跡するステップとを伴う。各々の所与のコアと関連付けられる測定された温度に基づいて、コアに対する適用可能な性能カーブが決定され得る。特に、いくつかの実施形態における性能カーブは、測定された温度において動作する時の、所与の処理コアの電力消費と作業負荷処理能力との関係を表し得る。
【００１０】
各々の個々の処理コアに対する決定された性能カーブを比較し、または互いに重畳して、比較対象のコアの各々のそれぞれの瞬時温度における1つまたは複数の移行点を定義することができる。移行点は、決定された性能カーブの2つが交差する点であり、性能カーブにより表される2つの処理コアが等しい電力量を消費する作業負荷レベルを表す。特に、マルチコアヘテロジニアスプロセッサ中のいくつかの処理コアでは、電力消費は、別の処理コアとの移行点より上の作業負荷レベルにおいて最も効率的である。同様に、マルチコアヘテロジニアスプロセッサ中の他の処理コアでは、電力消費は、別の処理コアとの移行点より下の作業負荷レベルにおいて最も効率的である。
【００１１】
有利なことに、決定された移行点の1つまたは複数に基づいて、所与の温度状態において決定された作業負荷レベルをマルチコアハードウェア全体で効率的に処理するために最良に配置された個々のコアに対して、作業負荷が配分または再配分され得る。このようにして、ヘテロジニアスマルチコアプロセッサの全体の電力消費を、可能な限り効率的に動作するように管理することができ、QoSに大きな影響を与えることなく、エネルギーを節約し熱エネルギーの発生を制御する。
【００１２】
図中、別段に規定されていない限り、同様の参照番号は、様々な図の全体を通じて、同様の部分を指す。「102A」または「102B」のような文字指定を伴う参照番号について、文字指定は、同じ図に存在する2つの同様の部分または要素を区別し得る。参照番号の文字指定は、参照番号が、すべての図において同じ参照番号を有するすべての部分を包含することが意図される場合には、省略されることがある。
【図面の簡単な説明】
【００１３】
【図１】異なる熱条件のもとで動作する例示的な処理コンポーネントの性能カーブのペアを示すグラフである。
【図２】異なる熱条件のもとで動作する、「低性能」処理コンポーネントおよび「高性能」処理コンポーネントという2つの例示的な処理コンポーネントの各々の性能カーブのペアを示すグラフである。
【図３】プロセッサの性能カーブの比較分析に基づく、ヘテロジニアス処理コンポーネントにわたる作業負荷の配分および再配分を通じて、PCDにおける熱エネルギーの発生を管理するための、オンチップシステムのある実施形態を示す機能ブロック図である。
【図４】図3のPCDの例示的な実施形態を示す機能ブロック図である。
【図５Ａ】図4に示されるチップのための、ハードウェアの例示的な空間構成を示す機能ブロック図である。
【図５Ｂ】プロセッサの性能カーブの比較分析に基づく、ヘテロジニアス処理コンポーネントにわたる作業負荷の配分および再配分を通じた、熱エネルギーの発生の管理をサポートするための、図4のPCDの例示的なソフトウェアアーキテクチャを示す概略図である。
【図６】プロセッサの性能カーブの比較分析に基づく、ヘテロジニアス処理コンポーネントにわたる作業負荷の配分および再配分を通じて、熱エネルギーの発生を管理するための方法のある実施形態を示す、論理的なフローチャートである。
【図７】プロセッサの性能カーブの比較分析のための副方法またはサブルーチンを示す、論理的なフローチャートである。
【発明を実施するための形態】
【００１４】
「例示的な」という語は、「例、実例、または例示として機能すること」を意味するように本明細書において使用されている。「例示的な」ものとして本明細書で説明されるいずれの態様も、必ずしも他の態様に対して排他的である、他の態様よりも好ましい、または有利であると解釈されるべきではない。
【００１５】
本明細書では、「アプリケーション」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチのような、実行可能なコンテンツを有するファイルも含み得る。加えて、本明細書で言及される「アプリケーション」は、開封される必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなど、本質的に実行可能ではないファイルを含むこともある。
【００１６】
本明細書で使用される場合、「コンポーネント」、「データベース」、「モジュール」、「システム」、「熱エネルギーを発生させるコンポーネント」、「処理コンポーネント」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアを問わず、コンピュータ関連のエンティティを指すことが意図されている。たとえば、コンポーネントは、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータであり得るが、これらに限定されない。例を挙げると、コンピューティングデバイス上で実行されているアプリケーションとコンピューティングデバイスの両方がコンポーネントであり得る。1つまたは複数のコンポーネントは、プロセスおよび/または実行スレッドの中に存在してよく、1つのコンポーネントは、1つのコンピュータに局在してよく、かつ/または2つ以上のコンピュータに分散してよい。加えて、これらのコンポーネントは、様々なデータ構造を記憶している様々なコンピュータ可読媒体から実行することができる。コンポーネントは、1つまたは複数のデータパケット(たとえば、信号によって、ローカルシステム、分散システムにおいて別のコンポーネントと対話し、かつ/またはインターネットのようなネットワークにわたって他のシステムと対話する、1つのコンポーネントからのデータ)を有する信号に従うなどして、ローカルプロセスおよび/またはリモートプロセスにより通信することができる。
【００１７】
本明細書では、「中央処理装置(「CPU」)」、「デジタルシグナルプロセッサ(「DSP」)」、および「チップ」という用語は交換可能に使用される。その上、CPU、DSP、またはチップは、「コア」と本明細書では全般に呼ばれる1つまたは複数の別個の処理コンポーネントからなり得る。
【００１８】
本明細書では、「熱」および「熱エネルギー」という用語は、「温度」の単位で測定され得るエネルギーを発生させまたは放散することが可能な、デバイスまたはコンポーネントと関連付けられて使われ得ることが理解されるだろう。その結果、「温度」という用語は、「熱エネルギー」を発生させるデバイスまたはコンポーネントの、相対的な暖かさまたは熱の欠如を示し得る、何らかの基準値に対する任意の測定値を想定することが、さらに理解されるだろう。たとえば、2つのコンポーネントの「温度」は、2つのコンポーネントが「熱的に」平衡である場合、同じである。
【００１９】
本明細書では、「作業負荷」、「処理負荷」および「処理作業負荷」という用語は交換可能に使用され、一般に、所与の実施形態の所与の処理コンポーネントと関連付けられた処理負担または処理負担の割合を対象にする。上で定義されるものに加えて、「処理コンポーネント」または「熱エネルギーを発生させるコンポーネント」または「熱アグレッサ」は、限定はされないが、中央処理装置、グラフィカル処理ユニット、コア、メインコア、サブコア、処理エリア、ハードウェアエンジンなど、またはポータブルコンピューティングデバイス内の集積回路内または外にある任意のコンポーネントであってよい。その上、「熱負荷」、「熱分布」、「熱シグネチャ」、「熱処理負荷」などの用語が処理コンポーネント上で動作し得る作業負荷の負担を示す限り、本開示のこれらの「熱」の用語の使用が、処理負荷の分布、作業負荷の負担および電力消費に関連し得ることを、当業者は認識するだろう。
【００２０】
本明細書では、「熱軽減技法」、「熱ポリシー」、「熱管理」、および「熱軽減対策」という用語は、交換可能に使用される。
【００２１】
当業者は、「DMIPS」という用語が、所与の数の100万命令毎秒を処理するのに必要なドライストーン反復の数を表すことを認識するだろう。本明細書では、この用語は、例示的な実施形態におけるプロセッサ性能の相対的なレベルを示すための尺度の一般的な単位として使用され、本開示の範囲内に入る任意の所与の実施形態が任意の特定のドライストーン評価を有するプロセッサを含むべきであること、または含むべきではないことを示唆するものと、解釈されることはない。
【００２２】
本明細書では、「ポータブルコンピューティングデバイス」(「PCD」)という用語は、バッテリーのような限られた容量の電源で動作する任意のデバイスを表すために使用される。何十年もの間バッテリー式PCDが使用されてきたが、第3世代(「3G」)および第4世代(「4G」)ワイヤレス技術の出現とともにもたらされた充電式バッテリーの技術的進歩は、複数の機能を有する多数のPCDを可能にした。したがって、PCDは、とりわけ、携帯電話、衛星電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、スマートブックまたはリーダー、メディアプレーヤ、上述のデバイスの組合せ、およびワイヤレス接続を有するラップトップコンピュータであってよい。
【００２３】
不必要にQoSに影響を与えることなく、ヘテロジニアス処理コンポーネントを有するPCDにおける熱エネルギーの発生を管理することが、作業負荷の配分のために利用可能な個々の処理コアの異なる性能特性を利用することによって、達成され得る。ヘテロジニアス処理コンポーネントに含まれ得る様々な処理コアの異なる性能特性に関して、性能の差異を、限定はされないが、異なるレベルのシリコン、設計の差異などを含む、いくつもの理由に帰すことができることを、当業者は認識するだろう。
【００２４】
たとえば、実行能力が低いものから高いものにまでわたる多数の異なる処理コアを含み得る、例示的なヘテロジニアスマルチコアプロセッサを考える。当業者に理解されるように、ヘテロジニアスプロセッサ内の低性能から中性能の処理コアは、所与の作業負荷能力において、より低い電力漏洩率を示し、その結果、比較的実行能力の高い処理コアよりも、低い熱エネルギー発生率を示す。より能力の高いコアは、能力の低いコアよりも、短い期間で所与の数のDMIPを処理することが可能であり得る。
【００２５】
それでも、コアが動作し得る熱条件に応じて、低性能のコアは、所与の数のDMIPを処理する際に、高性能のコアよりも(電力消費において)効率的であることもあり、効率的ではないこともある。したがって、ヘテロジニアスプロセッサ内の異なるコアの個々の性能カーブを考慮することによって、熱軽減アルゴリズムを利用して、最良の効率をもたらすように処理コアに作業負荷を配分および/または再配分することができ(すなわち、負荷の切り替え)、ここで性能カーブは、所与の数のDMIPを処理するために所与の動作温度において所与のコアによって消費される電力を示す。同様に、かつ、ヘテロジニアスプロセッサ内の異なるコアの個々の性能カーブにも基づいて、熱軽減アルゴリズムを利用して、個々のコアと関連付けられる処理効率が最適化できなくても処理コンポーネント全体にわたる電力密度が最適化されるように、作業負荷を配分および/または再配分する(すなわち、負荷の切り替え)ことができる。
【００２６】
図1は、異なる熱条件のもとで動作する例示的な処理コンポーネントの性能カーブ(コア105°、コア95°)のペアを示すグラフ300である。処理コンポーネントは、ヘテロジニアスマルチコアプロセッサ内のコアであってよく、能力の高いコア、能力が中程度のコア、または能力の低いコアであり得る。図1の図示から理解され得るように、3500DMIPの作業負荷において、95°の環境で動作する例示的なコアは約620mW(点315)の電力を消費するが、同じ3500DMIPの作業負荷において、動作環境が105°に達すると、コアの電力消費はほぼ1000mWの電力(点310)に増える。同様に、所与の動作温度に対して、コアの処理効率は、作業負荷の増加とともに下がる。コア95°のカーブを参照すると、たとえば、作業負荷が3500DMIPから約4300DMIPに増えると、電力消費はほぼ1000mW(点305)に増える。
【００２７】
所与の処理コアに対して、動作温度が上がると電力消費に関して処理コアの効率が下がることが、図1の図示から理解され得る。特に、例示的なコアの動作温度の上昇は、限定はされないが、より高いクロック速度と関連するコア内での電力漏洩の増加、コアの近くの熱アグレッサ、コアの近くの多機能コンポーネントなどを含む、任意の数の要因または要因の組合せによって引き起こされ得ることを、当業者は認識するだろう。コアの動作温度が上昇または下降し得る理由に関係なく、一般に、所与のコアの処理効率は、動作温度の上昇に反比例して下がるということを、図1の図示から気付くことが重要である。
【００２８】
ここで図2を見ると、異なる熱条件のもとで動作する、「低性能」処理コンポーネントおよび「高性能」処理コンポーネントという2つの例示的な処理コンポーネントの各々に対する、性能カーブのペア(HP 105°、HP 95°; LP 105°、LP 95°)を示すグラフ400が、示されている。基本的に、図2のグラフ400は、2つの異なる例示的なコアの性能カーブを示し、これらの各々は、図1の図示によって表され得る。その上、図2の性能カーブのペアによって表される2つの例示的なコアHP、LPは、共通のヘテロジニアスマルチコアCPU内に含まれ得ることを、当業者は認識するだろう。
【００２９】
特に、例示的なコアHP、LPの性能カーブを重畳することによって、様々な移行点または乗換点405、410、415が、様々なカーブの交差点において定義されることが理解され得る。これらの乗換点は、PCD中での熱エネルギーの発生を管理するための方法およびシステムにおける、負荷の切り替えまたは再配分に利用され得る、潜在的なトリガを表す。その上、これらの乗換点は、PCD中での熱エネルギーの発生を管理するための方法およびシステムにおける、最初の負荷配分、コアの初期化、コアの停止または休止、コア作業負荷親和性の定義、作業負荷の偏在化などに利用され得る、潜在的なトリガを表す。
【００３０】
たとえば、例示的なHP、LPプロセッサの性能カーブの比較分析によって、プロセッサHP、LPの各々が95°で動作している場合、約3700DMIP(点410)の作業負荷では両方のプロセッサHP、LPが処理効率に関して実質的に同等であると、判定することができる。しかしながら、点410より下ではLPコアがより効率的であること、すなわち、作業負荷が3700DMIP未満ならば作業負荷のDMIP当たりの電力消費はLPコアの方が少ないことも、比較分析から理解され得る。逆に、点410より上ではHPコアがより効率的であり、すなわち、作業負荷が3700DMIPを超えれば作業負荷のDMIP当たりの電力消費はHPコアの方が少ない。
【００３１】
したがって、グラフ400の点410に対する上で概説された例示的な比較分析を利用して、95°という所与の動作温度における例示的なLP、HPの性能カーブの比較分析を利用する熱軽減技法は、3700DMIPを超える作業負荷がHPコアに対してスケジューリングされるべきであると指示し得る。同様に、同じ熱軽減技法は、3700DMIP未満の作業負荷がLPコアに対してスケジューリングされるべきであることを指示し得る。その上、LPコアは移行点410より下ではHPコアより効率的なので、ある実施形態による熱軽減技法は、3700DMIPを超えるLPコアの部分的な作業負荷を、LPコアからHPコアに再配分することができる。
【００３２】
グラフ400において、動作温度が105°のオーダーにある時の同じ2つの例示的なコアLP、HPの移行点415は、点410に対して上で概説された例示的な事象と一致する事象を引き起こし得る。すなわち、熱軽減技法は、性能カーブ(HP 105°、LP 105°)の比較分析を利用して、移行点415よりも上ではHPコアに作業負荷の処理を偏らせ、移行点415よりも下ではLPコアに作業負荷の処理を偏らせるように、作業負荷をスケジューリングまたは再配分することができる。
【００３３】
その上、いくつもの要因により、ヘテロジニアスマルチコアプロセッサ中の異なるコアは、異なる熱条件で動作し得ることが理解されるだろう。たとえば、図2の図示では、移行点405は、105°で動作する例示的なLPコアの性能カーブと、95°で動作する例示的なHPコアの性能カーブの交差点を表す。その結果、例示的なコアが異なる温度で動作していると判定され得る場合、実施形態は、比較分析の熱軽減技法を利用して、上で説明された例示的な状況と同様に、2つの例示的なコアへの作業負荷の配分を決定することができる。たとえば、最も効率的な条件で作業負荷が処理されることを確実にするために、2400DMIP未満の作業負荷はLPコアに割り当てられてよく、2400DMIPを超える作業負荷はHPコアに割り当てられてよい。
【００３４】
上で概説された負荷の切り替え、配分、または再配分の様々な状況は、処理コアの性能カーブの比較分析がヘテロジニアスマルチコアプロセッサにおける熱エネルギーの発生を管理するのに有益であり得る状況を網羅的に表すものではないことを、当業者は理解するだろう。したがって、ヘテロジニアスマルチコアプロセッサ中の2つ以上の処理コアの性能カーブを比較して、作業負荷の配分または再配分を決定するように動作可能である、任意の熱軽減アルゴリズムが想定されることが理解されるだろう。様々な実施形態による処理コアの性能カーブの比較分析は、複数の処理コアの1つまたは複数への作業負荷の最初の配分、2つ以上の処理コアへの既存の作業負荷の再配分、または、複数の処理コアの間での作業負荷の配分と再配分の組合せを行うために使用され得る。
【００３５】
図3は、ヘテロジニアスマルチコア処理コンポーネント110にわたる作業負荷の配分および/または再配分を通じて、PCD 100における熱エネルギーの発生を管理するための、オンチップシステム102のある実施形態を示す機能ブロック図である。図1および図2の図示に対して上で説明されたように、コアへの作業負荷の配分は、個々のプロセッサ222、224、226、228と一意に関連付けられる性能カーブの比較分析に基づき得る。
【００３６】
オンチップシステムは、負荷切替(「LS」)モジュール26と通信している監視モジュール114によって、コア222、224、226、228と個々に関連付けられる温度センサ157を監視することができる。監視モジュール114から受け取られた温度データに基づいて、負荷切替モジュール26は、コア性能(「CP」)データストア24を参照して、コア222、224、226、228の1つまたは複数の性能カーブを特定することができる。続いて、LSモジュール26は、上の図で示され説明されたのと同様に、作業負荷の配分の閾値を表し得る様々な移行点を決定するために、特定された性能カーブを重畳することができる。
【００３７】
LSモジュール26は、様々な異なるコア222、224、226、228と関連付けられる1つまたは複数の性能カーブの比較分析を利用するように構成される、熱ポリシーマネージャ(「TPM」)101と通信し得る。TPM 101は、LSモジュール26から移行点を受け取り、コアの各々に対する最適な作業負荷の範囲を決定することができる。有利なことに、スケジューラ207とともに動作することによって、TPM 101は、全体の作業負荷を処理するためにヘテロジニアスマルチコア処理コンポーネント110によって消費される全体の電力が最小化され、熱エネルギーの発生が管理されるように、作業負荷を配分または再配分することができる。同様に、他の実施形態では、TPM 101は、ヘテロジニアスマルチコア処理コンポーネント110にわたる全体の電力消費を最小化することとは反対に、1つまたは複数の特定のコア222、224、226、228の電力消費を最小化しようとしてよいことを、当業者は認識するだろう。
【００３８】
図4は、熱条件を監視し、性能カーブを比較し、熱条件を管理するために作業負荷を配分するための方法およびシステムを実装するための、ワイヤレス電話の形態の、PCD 100の例示的で非限定的な態様の機能ブロック図である。示されるように、PCD 100は、互いに結合されたヘテロジニアスマルチコア中央処理装置(「CPU」)110およびアナログシグナルプロセッサ126を含むオンチップシステム102を含む。当業者によって理解されるように、CPU 110は、第0のコア222、第1のコア224、および第Nのコア230を含み得る。さらに、当業者によって理解されるように、CPU 110の代わりに、デジタルシグナルプロセッサ(「DSP」)も利用され得る。その上、ヘテロジニアスマルチコアプロセッサの技術分野で理解されるように、コア222、224、230の各々は、同様の処理条件のもとで異なる効率で作業負荷を処理し得る。
【００３９】
一般に、TPMモジュール101は、処理コアの性能カーブの比較分析とともに温度データを利用する1つまたは複数の熱軽減技法を含む熱ポリシーを、監視し適用することを担い得る。熱軽減技法の適用は、PCD 100が、熱条件および/または熱負荷を管理し、不都合な熱条件にさらされること、たとえば危機的な温度に達することを回避しつつ、高水準の機能を維持するのを、助けることができる。
【００４０】
図4は、PCD 100が監視モジュール114を含み得ることも示している。監視モジュール114は、オンチップシステム102全体に分布する複数の動作するセンサ(たとえば熱センサ157)およびPCD 100のCPU 110、さらにはTPMモジュール101および/またはLSモジュール26と通信する。LSモジュール26およびTPMモジュール101は、監視モジュール114とともに動作して、作業負荷の配分および/または再配分を含む1つまたは複数の熱軽減技法の適用を保証し得る熱移行点を特定することができる。
【００４１】
図4に示されるように、ディスプレイコントローラ128およびタッチスクリーンコントローラ130が、デジタルシグナルプロセッサ110に結合される。オンチップシステム102の外部にあるタッチスクリーンディスプレイ132が、ディスプレイコントローラ128およびタッチスクリーンコントローラ130に結合される。
【００４２】
PCD 100はさらに、ビデオエンコーダ134、たとえば位相反転線(「PAL」)エンコーダ、順次式カラーメモリ(「SECAM」)エンコーダ、全国テレビジョン方式委員会(「NTSC」)エンコーダ、または任意の他のタイプのビデオエンコーダ134を含み得る。ビデオエンコーダ134は、マルチコア中央処理装置(「CPU」)110に結合される。ビデオ増幅器136が、ビデオエンコーダ134およびタッチスクリーンディスプレイ132に結合される。ビデオポート138がビデオ増幅器136に結合される。図4に示されるように、ユニバーサルシリアルバス(「USB」)コントローラ140がCPU 110に結合される。また、USBポート142がUSBコントローラ140に結合される。メモリ112および加入者識別モジュール(SIM)カード146も、CPU 110に結合され得る。さらに、図4に示されるように、デジタルカメラ148がCPU 110に結合され得る。例示的な態様では、デジタルカメラ148は、電荷結合デバイス(「CCD」)カメラまたは相補型金属酸化膜半導体(「CMOS」)カメラである。
【００４３】
図4にさらに示されるように、ステレオオーディオコーデック150が、アナログシグナルプロセッサ126に結合され得る。その上、オーディオ増幅器152が、ステレオオーディオコーデック150に結合され得る。例示的な態様では、第1のステレオスピーカー154および第2のステレオスピーカー156がオーディオ増幅器152に結合される。図4は、マイクロフォン増幅器158もステレオオーディオコーデック150に結合され得ることを示している。加えて、マイクロフォン160が、マイクロフォン増幅器158に結合され得る。特定の態様では、周波数変調(「FM」)ラジオチューナー162がステレオオーディオコーデック150に結合され得る。また、FMアンテナ164がFMラジオチューナー162に結合される。さらに、ステレオヘッドフォン166がステレオオーディオコーデック150に結合され得る。
【００４４】
図4は、高周波(「RF」)送受信機168がアナログシグナルプロセッサ126に結合され得ることをさらに示している。RFスイッチ170が、RF送受信機168およびRFアンテナ172に結合され得る。図4に示されるように、キーパッド174がアナログシグナルプロセッサ126に結合され得る。また、マイクロフォンを備えたモノヘッドセット176がアナログシグナルプロセッサ126に結合され得る。さらに、バイブレータデバイス178が、アナログシグナルプロセッサ126に結合され得る。図4は、たとえばバッテリーなどの電源180がオンチップシステム102に結合されることも示している。ある特定の態様では、電源は、充電式DCバッテリー、または交流(「AC」)電源に接続されたAC-DC変換器から導かれるDC電源を含む。
【００４５】
CPU 110は、1つまたは複数の内部のオンチップ熱センサ157A、さらには、1つまたは複数の外部のオフチップ熱センサ157Bにも結合され得る。オンチップ熱センサ157Aは、垂直のPNP構造に基づき通常は相補型金属酸化膜半導体(「CMOS」)超大規模集積(「VLSI」)回路に専用である、絶対温度に比例する(「PTAT」)1つまたは複数の温度センサを含み得る。オフチップ熱センサ157Bは、1つまたは複数のサーミスタを含み得る。熱センサ157は、アナログデジタルコンバータ(「ADC」)コントローラ103(図5A参照)によってデジタル信号に変換される、電圧降下を発生させ得る。しかしながら、本発明の範囲から逸脱することなく、他の種類の熱センサ157が利用されてもよい。
【００４６】
熱センサ157は、ADCコントローラ103により制御され監視されるのに加えて、1つまたは複数のTPMモジュール101によっても制御され監視され得る。TPMモジュール101は、CPU 110によって実行されるソフトウェアを含み得る。しかしながら、本発明の範囲から逸脱することなく、TPMモジュール101はまた、ハードウェアおよび/またはファームウェアから形成されてもよい。TPMモジュール101は、PCD 100が、高水準の機能を維持しつつ、危機的な温度を回避するのを助け得る、1つまたは複数の熱軽減技法を含む、熱ポリシーを監視し適用することを担い得る。
【００４７】
同様に、LSモジュール26は、CPU 110によって実行されるソフトウェアを含み得る。しかしながら、本発明の範囲から逸脱することなく、LSモジュール26はまた、ハードウェアおよび/またはファームウェアから形成されてもよい。
【００４８】
図4に戻ると、タッチスクリーンディスプレイ132、ビデオポート138、USBポート142、カメラ148、第1のステレオスピーカー154、第2のステレオスピーカー156、マイクロフォン160、FMアンテナ164、ステレオヘッドフォン166、RFスイッチ170、RFアンテナ172、キーパッド174、モノヘッドセット176、バイブレータ178、熱センサ157B、および電源180は、オンチップシステム102の外部にある。しかし、監視モジュール114は、PCD 100において動作可能なリソースのリアルタイムの管理を援助するために、アナログシグナルプロセッサ126およびCPU 110によって、これらの外部デバイスのうちの1つまたは複数から1つまたは複数の指示または信号を受信することもできることを理解されたい。
【００４９】
ある特定の態様では、本明細書で説明される方法ステップのうちの1つまたは複数は、1つまたは複数のTPMモジュール101およびLSモジュール26を形成する、メモリ112に記憶された実行可能命令およびパラメータによって実施され得る。TPMモジュール101およびLSモジュール26を形成するこれらの命令は、本明細書で説明される方法を実行するために、ADCコントローラ103に加えて、CPU 110、アナログシグナルプロセッサ126、または別のプロセッサによって実行され得る。さらに、プロセッサ110、126、メモリ112、メモリ112に記憶された命令、またはそれらの組合せは、本明細書で説明された方法ステップのうちの1つまたは複数を実行するための手段として機能し得る。
【００５０】
図5Aは、図4に示されるチップ102のための、ハードウェアの例示的な空間構成を示す機能ブロック図である。この例示的な実施形態によれば、アプリケーションCPU 110がチップ102の遠く左側の領域に配置され、一方モデムCPU 168、126がチップ102の遠く右側の領域に配置される。アプリケーションCPU 110は、第0のコア222、第1のコア224、および第Nのコア230を含む、ヘテロジニアスマルチコアプロセッサを含み得る。アプリケーションCPU 110は、(ソフトウェアで具現化される場合)TPMモジュール101Aおよび/またはLSモジュール26Aを実行していてよく、または、(ハードウェアで具現化される場合)TPMモジュール101Aおよび/またはLSモジュール26Aを含んでよい。アプリケーションCPU 110は、オペレーティングシステム(「O/S」)モジュール207および監視モジュール114を含むように、さらに例示される。監視モジュール114についてのさらなる詳細は、図5Bに関して以下で説明される。
【００５１】
アプリケーションCPU 110は、アプリケーションCPU 110に隣接して配置されチップ102の左側の領域にある、1つまたは複数の位相ロックループ(「PLL」)209A、209Bに結合され得る。PLL 209A、209Bの隣、またアプリケーションCPU 110の下には、アナログデジタル(「ADC」)コントローラ103があってもよく、このADCコントローラ103は、アプリケーションCPU 110の主要なモジュール101A、26Aとともに動作する固有の熱ポリシーマネージャ101Bおよび/またはLSモジュール26Bを含み得る。
【００５２】
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の領域に隣接して配置され得る。
【００５６】
図5Aに示されるハードウェアの様々な他の空間構成が、本発明の範囲から逸脱することなく実現され得ることを、当業者は認識するだろう。図5Aは、さらなる1つの例示的な空間構成を示し、図5Aに示される例示的な空間構成により決まる熱条件を、主要なTPMモジュール101Aと、主要なLSモジュール26Aと、TPMモジュール101BおよびLSモジュール26Bを有するADCコントローラ103とがどのように認識し、性能カーブを比較し、熱条件を管理するために作業負荷を配分できるかを示す。
【００５７】
図5Bは、処理コアの性能カーブの比較分析を利用する熱軽減技法と関連付けられる、熱条件の識別およびアルゴリズムの適用をサポートするための、図4および図5AのPCD 100の例示的なソフトウェアアーキテクチャを示す概略図である。任意の数のアルゴリズムが、ある熱条件が満たされ性能カーブが分析される場合に、熱ポリシーマネージャ101によって適用され得る少なくとも1つの熱軽減技法を形成することができ、またはその一部であり得る。
【００５８】
図5Bに示されるように、CPUまたはデジタルシグナルプロセッサ110は、バス211を介してメモリ112に結合される。上で述べられたように、CPU 110は、N個のコアプロセッサを有する複数コアのヘテロジニアスプロセッサである。すなわち、CPU 110は、第0のコア222、第1のコア224、および第Nのコア230を含む。当業者には知られているように、第0のコア222、第1のコア224、および第Nのコア230の各々は、専用のアプリケーションまたはプログラムをサポートするのに利用可能であり、ヘテロジニアスコアの一部として、同様の熱的な動作条件のもとで異なるレベルの性能を提供し得る。あるいは、利用可能なヘテロジニアスコアの2つ以上にわたる処理のために、1つまたは複数のアプリケーションまたはプログラムは分散していてよい。
【００５９】
CPU 110は、ソフトウェアおよび/またはハードウェアを含み得るTPMモジュール101から、命令を受け取ることができる。ソフトウェアとして具現化される場合、TPMモジュール101は、CPU 110および他のプロセッサにより実行されている他のアプリケーションプログラムに対して命令を発する、CPU 110により実行される指示を含む。
【００６０】
CPU 110の第0のコア222、第1のコア224〜第Nのコア230は、単一の集積回路ダイに集積されてよく、または、複数回路のパッケージにおいて別個のダイ上で集積されてよく、または結合されてよい。設計者は、第0のコア222、第1のコア224〜第Nのコア230を、1つまたは複数の共有キャッシュを介して結合することができ、たとえばバス、リング、メッシュ、およびクロスバートポロジのようなネットワークトポロジを介して、メッセージまたは命令の伝達を実施することができる。
【００６１】
図示の実施形態では、RF送受信機168は、デジタル回路素子を介して実装され、たとえばコアプロセッサ210(「コア」と標示される)のような、少なくとも1つのプロセッサを含む。このデジタル実装では、RF送受信機168は、バス213を介してメモリ112に結合される。
【００６２】
当技術分野で知られているように、バス211およびバス213の各々は、1つまたは複数の有線接続またはワイヤレス接続を介した複数の通信経路を含み得る。バス211およびバス213は、通信を可能にするために、たとえばコントローラ、バッファ(キャッシュ)、ドライバ、レピータ、および受信機のような、追加の要素を有していてもよいが、これらは簡単のために省略する。さらに、バス211およびバス213は、上記のコンポーネントの間の適切な通信を可能にするために、アドレス、制御、および/またはデータ接続を含み得る。
【００６３】
図5Bに示されように、PCD 100によって使用される論理がソフトウェアで実装されるとき、開始論理250、管理論理260、熱軽減技法インターフェース論理270、アプリケーションストア280内のアプリケーション、およびファイルシステム290の部分のうちの1つまたは複数が、任意のコンピュータ関連のシステムもしくは方法によって、またはそれと関連して使用するために、任意のコンピュータ可読媒体に記憶され得ることに留意されたい。
【００６４】
この文書の文脈では、コンピュータ可読媒体は、コンピュータ関連のシステムもしくは方法によって、またはそれと関連して使用するために、コンピュータプログラムおよびデータを格納または記憶することができる、電子式、磁気式、光学式、または他の、物理デバイスまたは手段である。様々な論理素子およびデータストアは、たとえばコンピュータベースのシステム、プロセッサを含むシステム、または、命令実行システム、装置、もしくはデバイスから命令をフェッチし、命令を実行することができる他のシステムのような、命令実行システム、装置、もしくはデバイスによって、またはそれと関連して使用するために、任意のコンピュータ可読媒体に組み込まれ得る。この文書の文脈では、「コンピュータ可読媒体」は、命令実行システム、装置、もしくはデバイスによって、またはそれと関連して使用するために、プログラムを記憶、通信、伝搬、または移送することができる任意の手段であってよい。
【００６５】
コンピュータ可読媒体は、限定はされないがたとえば、電子式、磁気式、光学式、電磁式、赤外線式、または半導体の、システム、装置、デバイス、または伝搬媒体であってよい。コンピュータ可読媒体のより具体的な例(非網羅的なリスト)には、1つまたは複数の配線を有する電気的接続(電子式)、ポータブルコンピュータディスケット(磁気式)、ランダムアクセスメモリ(RAM)(電子式)、読取り専用メモリ(ROM)(電子式)、消去可能プログラマブル読取り専用メモリ(EPROM、EEPROM、またはフラッシュメモリ)(電子式)、光ファイバ(光学式)、および携帯式コンパクトディスク読取り専用メモリ(CD-ROM)(光学式)が含まれよう。プログラムは、たとえば紙または他の媒体の光学走査を介して、電子的に記録され、次いで、コンパイルされ、解釈され、または場合によっては、必要に応じて適切な方法で処理され、次いでコンピュータメモリに記憶され得るので、コンピュータ可読媒体は、プログラムが印刷される紙または別の適切な媒体でさえあり得ることに留意されたい。
【００６６】
代替的な実施形態では、開始論理250、管理論理260、および場合によっては熱軽減技法インターフェース論理270のうちの1つまたは複数がハードウェアで実装される場合、様々な論理は、各々当技術分野でよく知られている以下の技術、すなわち、データ信号に対する論理機能を実装するための論理ゲートを有する個別の論理回路、適切な組合せの論理ゲートを有する特定用途向け集積回路(ASIC)、プログラマブルゲートアレイ(PGA)、フィールドプログラマブルゲートアレイ(FPGA)などのうちのいずれか、またはその組合せによって実装され得る。
【００６７】
メモリ112は、たとえばフラッシュメモリまたはソリッドステートメモリデバイスのような、不揮発性データ記憶デバイスである。単一のデバイスとして示されているが、メモリ112は、デジタルシグナルプロセッサおよび/またはRF送受信機168のコア210(または追加のプロセッサコア)に結合された別個のデータストアを有する分散型メモリデバイスでもよい。
【００６８】
開始論理250は、第0のコア222、第1のコア224〜第Nのコア230のような、利用可能なコアのうちの1つまたは複数の性能を管理または制御するために、選択プログラムを選択的に特定し、ロードし、実行するための1つまたは複数の実行可能命令を含む。
【００６９】
管理論理260は、熱軽減プログラムを終了し、さらに、利用可能なコアのうちの1つまたは複数への負荷の配分を管理または制御するためのより適切な交換プログラムを選択的に特定し、ロードし、実行するための、1つまたは複数の実行可能命令を含む。管理論理260は、実行時に、またはPCD 100が電力供給されデバイスの操作者によって使用されている間に、これらの機能を実行するように構成される。交換プログラムは、組込みファイルシステム290のプログラムストア296において見出され得る。
【００７０】
交換プログラムは、デジタルシグナルプロセッサのコアプロセッサのうちの1つもしくは複数、またはRF送受信機168のコア210によって実行されると、TPMモジュール101、LSモジュール26、および監視モジュール114によって提供される1つまたは複数の信号、または、作業負荷スケジューラ207のそれぞれの制御入力で提供される1つまたは複数の信号に従って、動作し得る。これに関して、モジュール26、114は、TPM 101から発せられる制御信号に応答して、イベント、プロセス、アプリケーション、リソース状態の条件、経過時間、温度などの、1つまたは複数のインジケータを提供することができる。
【００７１】
インターフェース論理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は、階層的に構成されたコア性能データストア24を含む。これに関して、ファイルシステム290は、様々な動作温度における様々なコア222、224、226、228の性能カーブと関連付けられる情報を格納するための、全体のファイルシステム容量の中で確保された部分を含み得る。
【００７４】
図6は、プロセッサの性能カーブの比較分析に基づく、ヘテロジニアス処理コンポーネントにわたる作業負荷の配分および再配分を通じて、PCD 100における熱エネルギーの発生を管理するための方法600のある実施形態を示す、論理的なフローチャートである。図6の実施形態では、様々な処理コア222、224、226、228の各々の性能カーブは、監視モジュール114によって収集された実際の性能データに基づいて経験的に決定されてよく、またはいくつかの実施形態では、性能カーブは、各コアの性能スペックにより決まる先験的なカーブであってよい。
【００７５】
いくつかの実施形態では、様々な処理コア222、224、226、228の性能カーブを経験的に決定するために、監視モジュール114は、温度センサ157、さらにはコア222、224、226、228の電力消費を監視するのに有用な様々な他の電圧センサまたは電流センサと通信していてよい。そのような実施形態では、監視モジュール114によって収集されるデータは、スケジューラ207から受け取られた作業負荷配分データと組み合わされ、LSモジュール26によって経験的な性能カーブへと編集され得ることを、当業者は認識するだろう。経験的な性能カーブは、CPデータストア24に記憶され、負荷切替熱軽減アルゴリズムによって利用され得る。
【００７６】
ブロック605および610において開始し、LSモジュール26は、ヘテロジニアスマルチコア処理コンポーネント110中の2つ以上の処理コア222、224、226、228の現在の作業負荷レベルおよび動作温度を受け取ることができる。様々なコア222、224、226、228の動作温度は、コアの各々に対して適用可能な性能カーブを決定するために使用されてよく、副方法615において、カーブは移行点を特定するために比較され得る。上で説明されたように、比較されている各コアに対する移行点および現在の作業負荷に基づいて、TPM 101は、作業負荷が再配分される必要があるかどうかを、判定ブロック620において判定することができる。再配分する必要がある場合、ブロック625において、TPM 101は、比較されたプロセッサに負荷を再配分することができ、処理はブロック605および610に戻る。再配分する必要がない場合、作業負荷の配分は行われず、処理はブロック605および610に戻る。
【００７７】
図7は、プロセッサの性能カーブの比較分析のための副方法615を示す、論理的なフローチャートである。ブロック705において、経験的に創出されたカーブは、コアの各々と関連付けられる温度測定結果に基づいて参照される。適切な性能カーブが、ヘテロジニアスマルチコアプロセッサ110中の処理コア222、224、226、228の各々に対して特定されると、ブロック710において、移行点を特定するためにカーブが比較され得る。特に、コアの各々の現在の作業負荷レベルが選択されたカーブにマッピングされ得るので、TPM 101および/またはLSモジュール26は、コアの各々の現在の電力消費率を決定することができる。続いて、ブロック715において、熱軽減アルゴリズムが、特定された移行点に基づいてコアへの最適な作業負荷の配分を計算するために使用され得る。
【００７８】
図1および図2の図示に関して上で説明されたように、一部のコアでは、特定された移行点よりも下で処理効率がより良好であることがあり、一方他のコアでは、移行点よりも上で処理効率がより良好であることがある。その上、図1および図2の図示において見られたように、所与のコアと関連付けられる性能カーブは、ヘテロジニアスプロセッサ内の他のコアと関連付けられる複数の性能カーブと比較すると、複数の移行点を含み得る。特に、ブロック715における熱軽減アルゴリズムの実施形態は、複数の性能カーブの比較分析において特定された複数の移行点に基づいて、既存の負荷を再配分し、かつ/または追加の負荷を配分しようとし得る。有利なことに、そうすることで、熱軽減アルゴリズムのいくつかの実施形態は、様々なコア222、224、226、228の全体の電力消費に基づいて、配分および再配分を決定することができる。同様に、他の実施形態は、個々のコアの電力消費レベルに基づいて、作業負荷の配分および再配分を決定することができる。
【００７９】
本発明が説明通りに機能するように、本明細書で説明された処理または処理の流れの特定のステップが他のステップよりも前に行われるのは当然である。しかしながら、ステップの順序または手順によって本発明の機能が変わることがない場合、本発明は説明したステップの順序に限定されない。つまり、本発明の範囲および趣旨から逸脱することなく、あるステップを他のステップの前に実行しても、後に実行してもよく、または他のステップと並行して(実質的に同時に)実行してもよいことを認識されたい。いくつかの場合には、特定のステップが、本発明から逸脱することなく、省略されてもよく、または実行されなくてもよい。さらに、「その後」、「次いで」、「次に」などの語は、ステップの順序を限定することを意図していない。これらの語は、単に例示的な方法の説明を通じて読者を導くために使用されている。
【００８０】
加えて、プログラミングの当業者は、たとえば本明細書のフローチャートおよび関連する説明に基づいて、コンピュータコードを書くか、または適切なハードウェアおよび/もしくは回路を特定し、開示された発明を容易に実施することができる。したがって、特定の1組のプログラムコード命令または詳細なハードウェアデバイスの開示が、本発明をどのように製作し使用すべきかについて適切に理解するうえで必要であるとはみなされない。特許請求されるコンピュータで実施される処理の発明性のある機能は、上の説明において、かつ、様々な処理の流れを示し得る図面とともに、より詳細に説明される。
【００８１】
1つまたは複数の例示的な態様では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つもしくは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体上で送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む、コンピュータ記憶媒体とコンピュータ通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であってよい。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形式で所望のプログラムコードを搬送もしくは記憶するために使用され得るとともに、コンピュータによってアクセスされ得る任意の他の媒体を備え得る。
【００８２】
また、任意の接続をコンピュータ可読媒体と呼ぶのが妥当である。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(「DSL」)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。
【００８３】
本明細書で使用される場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(「CD」)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(「DVD」)、フレキシブルディスク(disk)、およびブルーレイディスク(disc)を含み、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザで光学的にデータを再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【００８４】
したがって、選択された態様が詳細に図示され説明されたが、以下の特許請求の範囲によって定義されるような本発明の趣旨および範囲から逸脱することなく、各態様において様々な置換および改変が実施され得ることが理解されよう。
【符号の説明】
【００８５】
24  コア性能データストア
26  負荷切替モジュール
100  ポータブルコンピューティングデバイス
101  熱ポリシーマネージャモジュール
103  ADCコントローラ
112  メモリ
114  監視モジュール
157  温度センサ、熱センサ
168  RF送受信機、モデムCPU
207  スケジューラ、O/Sモジュール
211  バス
213  バス
222  第0のコア
224  第1のコア
230  第Nのコア
250  開始論理
260  管理論理
270  熱軽減技法インターフェース論理
280  アプリケーションストア
290  ファイルシステム
296  プログラムストア
【図１】
0005922778.tif 000002
【図２】
0005922778.tif 000003
【図３】
0005922778.tif 000004
【図４】
0005922778.tif 000005
【図５Ａ】
0005922778.tif 000006
【図５Ｂ】
0005922778.tif 000007
【図６】
0005922778.tif 000008
【図７】
0005922778.tif 000009