(57)【要約】  ヘテロジニアスマルチプロセッサシステムオンチップ(「SoC」)を含むポータブルコンピューティングデバイスにおけるエネルギー効率認識型熱管理のための方法およびシステムの様々な実施形態が開示される。ヘテロジニアスマルチプロセッサSoCにおける個々の処理構成要素は、所与の温度で異なる処理効率を呈するので、エネルギー効率が最も低い処理構成要素に対する電力供給を調整し、それから作業負荷を再配分し、またはその電力モードを移行することによって、サービス品質(「QoS」)を最適化するために、測定された動作温度で個々の処理構成要素の性能データを比較するエネルギー効率認識型熱管理技法が活用され得る。このようにして、本ソリューションの実施形態は、1MIPSの作業負荷を処理するためにSoCにわたって消費される平均電力量を最適化する。
2017517057.tif 000002
【特許請求の範囲】
【請求項１】
マルチプロセッサシステムオンチップ(「SoC」)を有するポータブルコンピューティングデバイスにおける熱エネルギー生成を管理するための方法であって、
前記マルチプロセッサSoCにおける複数の個々の処理構成要素の各々に関連付けられた温度測定値およびクロックジェネレータ周波数を監視するステップと、
前記処理構成要素の各々に一意に関連付けられた電流引き込み測定値を監視するステップであり、前記電流測定値が、各処理構成要素の処理効率を示す、ステップと、
熱パラメータを監視するステップと、
前記熱パラメータに関連付けられたしきい値を超えたことを示す警報を受信するステップと、
前記処理構成要素の各々に関連付けられた前記監視された温度測定値およびクロックジェネレータ周波数をサンプリングするステップと、
前記処理構成要素の各々に一意に関連付けられた前記電流引き込み測定値をサンプリングするステップと、
前記サンプリングされた温度およびクロックジェネレータ周波数測定値に基づいて、各処理構成要素についての性能データの問合せを行うステップであり、前記性能データが、各処理構成要素の、所与の温度およびクロックジェネレータ周波数で動作しているときの予想された電流引き込みを含む、ステップと、
処理構成要素ごとに、前記予想された電流引き込みを、前記サンプリングされた電流引き込みと比較するステップと、
前記比較に基づいて、各処理構成要素の前記効率を分類するステップと、
前記効率の分類に基づいて、エネルギー効率が最も低い処理構成要素を識別するステップと、
前記エネルギー効率が最も低い処理構成要素への入力を調整するステップであり、前記エネルギー効率が最も低い処理構成要素による電力消費を低減するように動作するステップと
を含む方法。
【請求項２】
前記調整された入力が、電源電圧およびクロックジェネレータ周波数に関連付けられる、請求項1に記載の方法。
【請求項３】
前記調整された入力が、作業負荷配分に関連付けられる、請求項1に記載の方法。
【請求項４】
前記エネルギー効率が最も低い処理構成要素に関連付けられた前記性能データ内に含まれる前記予想された電流引き込みを前記サンプリングされた電流引き込みに更新するステップをさらに含む、請求項1に記載の方法。
【請求項５】
前記予想された電流引き込みが、前記サンプリングされた電流引き込みよりも大きい、請求項1に記載の方法。
【請求項６】
前記予想された電流引き込みが、前記サンプリングされた電流引き込みよりも小さい、請求項1に記載の方法。
【請求項７】
前記熱パラメータが、皮膚温、PoPメモリ温度、接合温度、およびバッテリ容量のうちの1つに関連付けられる、請求項1に記載の方法。
【請求項８】
前記ポータブルコンピューティングデバイスがワイヤレス電話の形態である、請求項1に記載の方法。
【請求項９】
マルチプロセッサシステムオンチップ(「SoC」)を有するポータブルコンピューティングデバイスにおける熱エネルギー生成を管理するためのコンピュータシステムであって、
前記マルチプロセッサSoCにおける複数の個々の処理構成要素の各々に関連付けられた温度測定値およびクロックジェネレータ周波数を監視することと、
前記処理構成要素の各々に一意に関連付けられた電流引き込み測定値を監視することであり、前記電流測定値が、各処理構成要素の処理効率を示す、監視することと、
熱パラメータを監視することと、
前記熱パラメータに関連付けられたしきい値を超えたことを示す警報を受信することと、
前記処理構成要素の各々に関連付けられた前記監視された温度測定値およびクロックジェネレータ周波数をサンプリングすることと、
前記処理構成要素の各々に一意に関連付けられた前記電流引き込み測定値をサンプリングすることと
を行うためのモニタモジュールと、
前記サンプリングされた温度およびクロックジェネレータ周波数測定値に基づいて、各処理構成要素についての性能データの問合せを行うことであり、前記性能データが、各処理構成要素の、所与の温度およびクロックジェネレータ周波数で動作しているときの予想された電流引き込みを含む、問合せを行うことと、
処理構成要素ごとに、前記予想された電流引き込みを、前記サンプリングされた電流引き込みと比較することと、
前記比較に基づいて、各処理構成要素の前記効率を分類することと、
前記効率の分類に基づいて、エネルギー効率が最も低い処理構成要素を識別することと、
前記エネルギー効率が最も低い処理構成要素への入力を調整することであり、前記エネルギー効率が最も低い処理構成要素による電力消費を低減するように動作する、調整することと
を行うための効率マネージャ(「EM」)モジュールと
を含むコンピュータシステム。
【請求項１０】
前記調整された入力が、電源電圧およびクロックジェネレータ周波数に関連付けられる、請求項9に記載のコンピュータシステム。
【請求項１１】
前記調整された入力が、作業負荷配分に関連付けられる、請求項9に記載のコンピュータシステム。
【請求項１２】
前記EMモジュールが、さらに、前記エネルギー効率が最も低い処理構成要素に関連付けられた前記性能データ内に含まれる前記予想された電流引き込みを前記サンプリングされた電流引き込みに更新するように動作可能である、請求項9に記載のコンピュータシステム。
【請求項１３】
前記予想された電流引き込みが、前記サンプリングされた電流引き込みよりも大きい、請求項9に記載のコンピュータシステム。
【請求項１４】
前記予想された電流引き込みが、前記サンプリングされた電流引き込みよりも小さい、請求項9に記載のコンピュータシステム。
【請求項１５】
前記熱パラメータが、皮膚温、PoPメモリ温度、接合温度、およびバッテリ容量のうちの1つに関連付けられる、請求項9に記載のコンピュータシステム。
【請求項１６】
マルチプロセッサシステムオンチップ(「SoC」)を有するポータブルコンピューティングデバイスにおける熱エネルギー生成を管理するためのコンピュータシステムであって、
前記マルチプロセッサSoCにおける複数の個々の処理構成要素の各々に関連付けられた温度測定値およびクロックジェネレータ周波数を監視するための手段と、
前記処理構成要素の各々に一意に関連付けられた電流引き込み測定値を監視するための手段であり、前記電流測定値が、各処理構成要素の処理効率を示す、手段と、
熱パラメータを監視するための手段と、
前記熱パラメータに関連付けられたしきい値を超えたことを示す警報を受信するための手段と、
前記処理構成要素の各々に関連付けられた前記監視された温度測定値およびクロックジェネレータ周波数をサンプリングするための手段と、
前記処理構成要素の各々に一意に関連付けられた前記電流引き込み測定値をサンプリングするための手段と、
前記サンプリングされた温度およびクロックジェネレータ周波数測定値に基づいて、各処理構成要素についての性能データの問合せを行うための手段であり、前記性能データが、各処理構成要素の、所与の温度およびクロックジェネレータ周波数で動作しているときの予想された電流引き込みを含む、手段と、
処理構成要素ごとに、前記予想された電流引き込みを、前記サンプリングされた電流引き込みと比較するための手段と、
前記比較に基づいて、各処理構成要素の前記効率を分類するための手段と、
前記効率の分類に基づいて、エネルギー効率が最も低い処理構成要素を識別するために手段と、
前記エネルギー効率が最も低い処理構成要素への入力を調整するための手段であり、前記エネルギー効率が最も低い処理構成要素による電力消費を低減するように動作する、手段と
を含むコンピュータシステム。
【請求項１７】
前記調整された入力が、電源電圧およびクロックジェネレータ周波数に関連付けられる、請求項16に記載のコンピュータシステム。
【請求項１８】
前記調整された入力が、作業負荷配分に関連付けられる、請求項16に記載のコンピュータシステム。
【請求項１９】
前記エネルギー効率が最も低い処理構成要素に関連付けられた前記性能データ内に含まれる前記予想された電流引き込みを前記サンプリングされた電流引き込みに更新するための手段をさらに含む、請求項16に記載のコンピュータシステム。
【請求項２０】
前記予想された電流引き込みが、前記サンプリングされた電流引き込みよりも大きい、請求項16に記載のコンピュータシステム。
【請求項２１】
前記予想された電流引き込みが、前記サンプリングされた電流引き込みよりも小さい、請求項16に記載のコンピュータシステム。
【請求項２２】
前記熱パラメータが、皮膚温、PoPメモリ温度、接合温度、およびバッテリ容量のうちの1つに関連付けられる、請求項16に記載のコンピュータシステム。
【請求項２３】
前記ポータブルコンピューティングデバイスがワイヤレス電話の形態である、請求項16に記載のコンピュータシステム。
【請求項２４】
コンピュータ可読プログラムコードを記憶したコンピュータ使用可能記憶媒体を含むコンピュータプログラム製品であって、前記コンピュータ可読プログラムコードが、マルチプロセッサシステムオンチップ(「SoC」)を有するポータブルコンピューティングデバイスにおける熱エネルギー生成を管理するための方法を実施するために実行されるように適合され、前記方法が、
前記マルチプロセッサSoCにおける複数の個々の処理構成要素の各々に関連付けられた温度測定値およびクロックジェネレータ周波数を監視するステップと、
前記処理構成要素の各々に一意に関連付けられた電流引き込み測定値を監視するステップであり、前記電流測定値が、各処理構成要素の処理効率を示す、ステップと、
熱パラメータを監視するステップと、
前記熱パラメータに関連付けられたしきい値を超えたことを示す警報を受信するステップと、
前記処理構成要素の各々に関連付けられた前記監視された温度測定値およびクロックジェネレータ周波数をサンプリングするステップと、
前記処理構成要素の各々に一意に関連付けられた前記電流引き込み測定値をサンプリングするステップと、
前記サンプリングされた温度およびクロックジェネレータ周波数測定値に基づいて、各処理構成要素についての性能データの問合せを行うステップであり、前記性能データが、各処理構成要素の、所与の温度およびクロックジェネレータ周波数で動作しているときの予想された電流引き込みを含む、ステップと、
処理構成要素ごとに、前記予想された電流引き込みを、前記サンプリングされた電流引き込みと比較するステップと、
前記比較に基づいて、各処理構成要素の前記効率を分類するステップと、
前記効率の分類に基づいて、エネルギー効率が最も低い処理構成要素を識別するステップと、
前記エネルギー効率が最も低い処理構成要素への入力を調整するステップであり、前記エネルギー効率が最も低い処理構成要素による電力消費を低減するように動作するステップと
を含む、コンピュータ使用可能記憶媒体。
【請求項２５】
前記調整された入力が、電源電圧およびクロックジェネレータ周波数に関連付けられる、請求項24に記載のコンピュータ使用可能記憶媒体。
【請求項２６】
前記調整された入力が、作業負荷配分に関連付けられる、請求項24に記載のコンピュータプログラム製品。
【請求項２７】
前記方法が、
前記エネルギー効率が最も低い処理構成要素に関連付けられた前記性能データ内に含まれる前記予想された電流引き込みを前記サンプリングされた電流引き込みに更新するステッをさらに含む、請求項24に記載のコンピュータ使用可能記憶媒体。
【請求項２８】
前記予想された電流引き込みが、前記サンプリングされた電流引き込みよりも大きい、請求項24に記載のコンピュータ使用可能記憶媒体。
【請求項２９】
前記予想された電流引き込みが、前記サンプリングされた電流引き込みよりも小さい、請求項24に記載のコンピュータ使用可能記憶媒体。
【請求項３０】
前記熱パラメータが、皮膚温、PoPメモリ温度、接合温度、およびバッテリ容量のうちの1つに関連付けられる、請求項24に記載のコンピュータ使用可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願に関する説明
本出願は、その全内容が参照により本明細書に組み込まれる、2014年4月8日に出願された「SYSTEM AND METHOD FOR THERMAL MITIGATION IN A SYSTEM ON A CHIP」という名称の米国仮特許出願第61/977,013号の非仮出願として米国特許法第119条の下で優先権を主張する。本出願はまた、その全内容が参照により本明細書に組み込まれる、2014年4月18日に出願された「ENERGY EFFICIENCY AWARE THERMAL MANAGEMENT IN A HETEROGENEOUS MULTI-PROCESSOR SYSTEM ON A CHIP」という名称の米国仮特許出願第61/981,714号の非仮出願として米国特許法第119条の下で優先権を主張する。本出願は、両出願の全内容が参照により本明細書に組み込まれる、2014年5月18日に米国特許商標庁に出願され、それぞれ代理人整理番号141627U1および141627U2を有する「ENERGY EFFICIENCY AWARE THERMAL MANAGEMENT IN A MULTI-PROCESSOR SYSTEM ON A CHIP」という名称の2つの非仮出願に関する。
【背景技術】
【０００２】
ポータブルコンピューティングデバイス(PCD)は、個人レベルおよび専門レベルで人々に必要なものになりつつある。これらのデバイスは、セルラー電話、携帯情報端末(PDA)、ポータブルゲームコンソール、パームトップコンピュータ、および他のポータブル電子デバイスを含み得る。
【０００３】
PCDは、通常、サイズに制約があり、したがってPCD内の構成要素用の空間は貴重である場合が多い。そのように、技術者および設計者がパッシブな冷却構成要素の巧妙な空間的構成または配置によって処理構成要素の熱劣化または熱破損を軽減するのに十分な空間は、一般的なPCDフォームファクタ内に存在しないことが多い。その結果、熱エネルギーの発生はPCDにおいて、性能を犠牲にして電子装置を弱めることまたは停止することを含み得る様々な熱管理技法を適用することによって管理される場合が多い。
【０００４】
PCD内では、熱エネルギーの発生を軽減することとPCDにより提供されるサービス品質(「QoS」)に影響を与えることとの間のバランスを取ろうとして、熱管理技法が利用される。ヘテロジニアス処理構成要素を有するPCDでは、PCD内の様々な処理構成要素が同等に作られていないので、そのトレードオフのバランスを取ることによる問題を管理するは難しいことがある。したがって、熱トリガに応答して、すべての処理構成要素に対する電力周波数を等しく一様に制限する、または電源電圧およびクロックジェネレータ周波数を単に最も熱い処理構成要素に制限する当技術分野において知られている熱軽減手段は、熱エネルギー生成のレートを低減するのと引き換えに、QoSレベルを最適化できないことが多い。システムオンチップ(「SoC」)における様々な処理構成要素は、設計においてホモジニアスであるかヘテロジニアスであるかにかかわらず性能の点で必然的に変動するので、最も熱い処理構成要素が、QoSに対する影響に比べて熱エネルギー低減のための最大の可能性を提供するものであるとは限らない。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
したがって、当技術分野では、エネルギー効率認識型熱軽減のための方法およびシステムが必要である。さらに、当技術分野では、処理構成要素を比較して、最も非効率的なおよび最も効率的な処理構成要素を識別するためのシステムおよび方法が必要である。
【課題を解決するための手段】
【０００６】
マルチプロセッサシステムオンチップ(「SoC」)を有するポータブルコンピューティングデバイスにおけるエネルギー効率認識型熱管理(energy efficiency aware thermal management)のための方法およびシステムの様々な実施形態が開示される。個々の処理構成要素は、意図された設計によって、または製造プロセスばらつきから異なる特性を有し得、マルチプロセッサSoCは、所与の温度で異なる処理効率を呈し得るので、エネルギー効率が最も低い処理構成要素に対する電力供給を低減する、またはエネルギー効率が最も低い処理構成要素から作業負荷を配分および/もしくは再配分することによって、電力および熱の制約下で性能を最大にするために、それらの測定された動作温度で個々の処理構成要素の性能データを比較するエネルギー効率認識型熱管理技法が活用され得る。実施形態は、単にエネルギー効率がより低いコア上で作業負荷が稼働するのを防止しようとするのではない可能性がある。すなわち、いくつかの実施形態では、作業負荷が開始すると、システムは、各構成要素のエネルギー効率を考慮し、作業負荷を、作業負荷が適合する最も効率的なCPUに配置し得る。たとえば、最も効率的なコアがすでに非常に激しく利用されている場合、次に最も効率的なコアが選択され得る。このようにして、本ソリューションの実施形態は、既知の作業負荷を処理するためにSoCにわたって消費される平均電力量を最適化する。
【０００７】
1つのそのような方法は、ヘテロジニアスまたはホモジニアスマルチプロセッサSoC中の複数の個々の処理構成要素の各々に関連付けられた温度測定値およびクロックジェネレータ周波数を監視することを伴う。処理構成要素の各々に一意に関連付けられた電流引き込み測定値も監視される。特に、電流引き込み測定値は、各処理構成要素の処理効率を示す。熱パラメータも監視される。熱パラメータに関連付けられたしきい値を超えたことを示す警報が受信される。次に、処理構成要素の各々に関連付けられた監視された温度測定値およびクロックジェネレータ周波数がサンプリングされる。処理構成要素の各々に一意に関連付けられた電流引き込み測定値もサンプリングされる。サンプリングされた温度およびクロックジェネレータ周波数測定値に基づいて、各処理構成要素についての性能データの問合せが行われ、性能データは、各処理構成要素の、所与の温度およびクロックジェネレータ周波数で動作しているときの予想された電流引き込みを含む。次いで、処理構成要素ごとに、予想された電流引き込みが、サンプリングされた電流引き込みと比較され、比較に基づいて、各処理構成要素の効率が分類される。効率の分類に基づいて、エネルギー効率が最も低い処理構成要素への入力が調整され得るように、エネルギー効率が最も低い処理構成要素が識別される。入力は、その調整が、エネルギー効率が最も低い処理構成要素による電力消費を低減するように動作する任意の入力でよい。
【０００８】
図面では、特に明記しない限り、様々な図を通じて、同様の参照番号は、同様の部分を参照している。「102A」または「102B」などの文字指定を伴う参照番号について、文字指定は、同じ図内に存在する2つの同様の部分または要素を区別することができる。参照番号がすべての図において同じ参照番号を有するすべての部分を包含することを意図するとき、参照番号に対する文字指定は省略される場合がある。
【図面の簡単な説明】
【０００９】
【図１Ａ】異なる熱条件のもとで動作する例示的な処理構成要素の1対の性能曲線を示すグラフである。
【図１Ｂ】異なる熱条件のもとで動作する、「低性能」CPU処理構成要素および「高性能」GPU処理構成要素という2つの例示的な処理構成要素の各々についての1対の性能曲線を示すグラフである。
【図１Ｃ】例示的な1対のコアについての1対の性能曲線を示すグラフである。
【図１Ｄ】図1Cの図において示したコアの例示的な対についての異なる1対の性能曲線を示すグラフである。
【図２Ａ】複数の処理構成要素を含むオンチップシステムにおける非同期のアーキテクチャの態様を示す機能ブロック図である。
【図２Ｂ】複数の処理構成要素を含むオンチップシステムにおける同期のアーキテクチャの態様を示す機能ブロック図である。
【図３】ポータブルコンピューティングデバイス(「PCD」)においてエネルギー効率認識型熱管理のためのオンチップシステムの一実施形態を示す機能ブロック図である。
【図４】熱条件を監視し、性能データを比較し、最適電力周波数を設定し、効率的に処理するために最良に配置された処理構成要素に作業負荷をスケジュールするための方法およびシステムを実装するための、ワイヤレス電話の形態のPCDの例示的で非限定的な態様の機能ブロック図である。
【図５Ａ】図4に示すチップのための、ハードウェアの例示的な空間構成を示す機能ブロック図である。
【図５Ｂ】熱条件の識別およびエネルギー効率認識型熱管理アルゴリズムの適用をサポートするための、図4および図5AのPCDの例示的なソフトウェアアーキテクチャを示す概略図である。
【図６】非同期のシステムオンチップにおけるエネルギー効率認識型熱管理のための方法の一実施形態を示す論理フローチャートである。
【図７】作業負荷再配分を介した同期のシステムオンチップにおけるエネルギー効率認識型熱管理のための方法700の一実施形態を示す論理フローチャートである。
【図８】待ち行列に入れられた作業負荷の配分を介した同期のシステムオンチップにおけるエネルギー効率認識型熱管理のための方法の一実施形態を示す論理フローチャートである。
【図９】電力モード調整を介した同期のシステムオンチップにおけるエネルギー効率認識型熱管理のための方法の一実施形態を示す論理フローチャートである。
【図１０】電力モードデューティサイクリングを介した同期のシステムオンチップにおけるエネルギー効率認識型熱管理のための方法の一実施形態を示す論理フローチャートである。
【図１１】処理構成要素エネルギー効率レーティングの実行時検証のための方法の一実施形態を示す論理フローチャートである。
【発明を実施するための形態】
【００１０】
「例示的な」という言葉は、本明細書では「例、事例、または例示として役立つ」ことを意味するように使用される。「例示的」として本明細書で説明されるいずれの態様も、排他的であるか、他の態様より好ましいか、または有利であると、必ずしも解釈されるべきでない。
【００１１】
この説明において、「アプリケーション」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイルおよびパッチのような実行可能コンテンツを有するファイルを含むこともできる。さらに、本明細書において参照される「アプリケーション」は、開かれることが必要な場合があるドキュメント、またはアクセスされる必要がある他のデータファイルなどの、実際には実行可能ではないファイルを含む場合もある。
【００１２】
本明細書で使用される場合、「構成要素」、「データベース」、「モジュール」、「システム」、「熱エネルギー発生構成要素」、「処理構成要素」、「熱アグレッサ」、「処理エンジン」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアを問わず、コンピュータ関連のエンティティを指すことが意図される。たとえば、構成要素は、限定はされないが、プロセッサ上で実行されているプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、および/またはコンピュータであってもよい。実例として、コンピューティングデバイスにおいて実行されているアプリケーションと、コンピューティングデバイスの両方は、構成要素であり得る。1つまたは複数の構成要素は、プロセスおよび/または実行のスレッド内に存在する場合があり、構成要素は、1つのコンピュータに局在する場合があり、および/または、2つ以上のコンピュータ間に分散される場合がある。さらに、これらの構成要素は、種々のデータ構造を記憶している種々のコンピュータ可読媒体から実行することもできる。構成要素は、1つまたは複数のデータパケット(たとえば、ローカルシステム、分散システム内の別の構成要素とやりとりし、および/または、信号によってインターネットなどのネットワークにわたって他のシステムとやりとりする、1つの構成要素からのデータ)を有する信号などに従って、ローカルプロセスおよび/またはリモートプロセスによって通信することができる。
【００１３】
本明細書では、「中央処理装置」(「CPU」)、デジタル信号プロセッサ(「DSP」)、および「チップ」という用語は、PCD中に存在し得る処理構成要素の非限定的な例であり、別段に規定されている場合を除き、互換的に使用される。その上、本明細書で区別されているように、CPU、DSP、またはチップは、「コア」または「サブコア」と本明細書では全般的に呼ばれる1つまたは複数の別個の処理コンポーネントからなることができる。
【００１４】
本説明では、「ヘテロジニアス構成要素」は、それらの意図された設計において異なる構成要素、ならびに、ホモジニアス設計(設計によって同じ)であるが、生産のばらつき、動作中の温度、およびシリコンダイ上の構成要素位置による異なる電気的特性を有する構成要素を含む。処理構成要素が設計においてホモジニアスである場合でさえ、SOC上の各処理構成要素の電気的特性が、シリコン漏出製造ばらつき、スイッチング速度製造ばらつき、各構成要素における動作の間の動的な温度変化、およびシリコンダイ上の構成要素位置のうちの1つまたは複数のために変化する(互いに異なる)ことを、当業者は理解されよう。したがって、SOC上の構成要素が電力および性能の観点から完全にホモジニアスおよび同一でなくてもよいことを、当業者は認識されよう。
【００１５】
本明細書では、「熱」および「熱エネルギー」という用語は、「温度」の単位で測定され得るエネルギーを発生させ、または散逸する能力を有するデバイスまたは構成要素に関連して使用され得ることが理解されよう。その結果、「温度」という用語は、「熱エネルギー」を発生させるデバイスまたは構成要素の、相対的な暖かさまたは熱の欠如を示すことができる、何らかの基準値に対する任意の測定値を想定することはさらに理解されよう。たとえば、2つの構成要素が「熱」平衡にあるとき、2つの構成要素の「温度」は、同じである。
【００１６】
本明細書では、「作業負荷」、「処理負荷」、「処理作業負荷」および「コードブロック」という用語は互換的に使用され、全般的に、所与の実施形態の所与の処理構成要素に関連付けられるか、または割り当てられ得る処理負担または処理負担の割合を対象にする。上記に定義されたものに加えて、「処理構成要素」または「熱エネルギー発生構成要素」または「熱アグレッサ」は、限定はしないが、中央処理ユニット、グラフィカル処理ユニット、コア、メインコア、サブコア、処理エリア、ハードウェアエンジンなど、またはポータブルコンピューティングデバイス内の集積回路の内部もしくは外部にある任意の構成要素であり得る。その上、「熱負荷」、「熱分布」、「熱シグネチャ」、「熱処理負荷」などの用語が、処理構成要素上で実行中であり得る作業負荷の負担を示す限り、本開示におけるこれらの「熱」の用語の使用が、処理負荷の分布、作業負荷の負担および電力消費に関連する場合があることは、当業者には認められよう。
【００１７】
本明細書では、「熱軽減技法」、「熱ポリシー」、「熱管理」、および「熱軽減措置」という用語は、互換的に使用される。
【００１８】
当業者は、「DMIPS」という用語が、所与の数の100万命令毎秒を処理するのに必要なドライストーン反復の数を表すことを認識するだろう。本明細書では、この用語は、例示的な実施形態におけるプロセッサ性能の相対的なレベルを示すための尺度の一般的な単位として使用され、本開示の範囲内に入る任意の所与の実施形態が任意の特定のドライストーン評価を有するプロセッサを含むべきであること、または含むべきではないことを示唆するものと、解釈されることはない。
【００１９】
本明細書では、「ポータブルコンピューティングデバイス」(「PCD」)という用語は、バッテリなどの限られた容量の電源電圧およびクロックジェネレータ周波数で動作する任意のデバイスを説明するために使用される。バッテリで動作するPCDは、数十年にわたって使われてきたが、第3世代(「3G」)および第4世代(「4G」)のワイヤレス技術の出現に結び付けられる、充電式バッテリにおける技術的進歩により、多数の機能を有する数多くのPCDが可能になった。したがって、PCDは、数ある中でも、携帯電話、衛星電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、スマートブックすなわちリーダ、メディアプレーヤ、上述のデバイスの組合せ、ワイヤレス接続を有するラップトップコンピュータであり得る。
【００２０】
ヘテロジニアス処理構成要素を有するPCDにおけるQoS最適化のために処理性能を管理することが、個々の処理エンジンの異なる性能特性を利用することによって、達成され得る。処理構成要素が設計においてホモジニアスである場合でさえ、SOC上の各処理構成要素の電気的特性が、限定はしないが、シリコン漏出製造ばらつき、スイッチング速度製造ばらつき、各構成要素における動作の間の動的な温度変化、およびシリコンダイ上の構成要素位置を含む任意の数の要因のために変化し得る(互いに異なる)。したがって、SOC上の構成要素が電力および性能の観点から完全にホモジニアスおよび同一でなくてもよいことを、当業者は認識されよう。したがって、本開示では、「ヘテロジニアス構成要素」は、ホモジニアス設計(設計によって同じ)であるが、生産のばらつき、動作中の温度、およびシリコンダイ上の構成要素位置による異なる電気的特性を有する構成要素も意味する。ヘテロジニアス処理構成要素に含まれ得る様々な処理エンジンの異なる性能特性に関して、性能の差異を、限定はされないが、異なるレベルのシリコン、設計の差異などを含む、いくつもの理由に帰すことができることを、当業者は認識するだろう。その上、所与の処理構成要素に関連付けられる性能特性は、処理構成要素の動作温度、その処理構成要素に供給される電力などとの関係で変化し得ることを、当業者は認識するだろう。
【００２１】
たとえば、概して実施能力が低から高まで幅があるいくつかの異なる処理コアを含む場合がある、例示的なヘテロジニアスマルチコアプロセッサについて考える(特に、各々が1つまたは複数のコアを含むいくつかの異なる処理構成要素を含む場合がある、例示的なヘテロジニアスマルチプロセッサシステムオンチップ(「SoC」)も考えることができることは、当業者には認識されよう)。当業者に理解されるように、ヘテロジニアスプロセッサ内の低性能から中性能の処理コアは、所与の作業負荷能力において、より低い電力漏洩率を示し、その結果、比較的実施能力の高い処理コアよりも、低い熱エネルギー発生率を示す。より能力の高いコアは、より能力の低いコアよりも、短い期間で所与の作業負荷を処理することが可能であり得る。同様に、低下している処理速度を有する能力の高いコアは、所与の作業負荷能力において、より低い電力漏洩率を示し、その結果、フルの、抑制されていない能力で処理しているときよりも、低い熱エネルギー発生率を示す。
【００２２】
それでも、コアが動作し得る熱条件に応じて、より低性能のコアは、所与の作業負荷を処理する際に、(電力消費において)高性能のコアよりも効率的であることも、高性能のコアほど効率的ではないこともある。さらに、「最も熱い」コアは、所与の時間にエネルギー効率が最も低いコアである可能性はあるが、そうしたことが必ずしもすべてのシナリオに当てはまるとは限らない。したがって、犠牲にされた処理能力のために熱エネルギー軽減において最大のリターンを実現するために、エネルギー効率認識型熱管理ソリューションの実施形態は、相対温度と対照的に、様々な処理構成要素の中の相対的な処理効率を考慮して、熱管理決定を行う。
【００２３】
特に、所与の処理構成要素の処理効率は、動作周波数/電力消費によって表される電力効率比と見なされ得る。代替的に、電力効率は、たとえばDMIPSなど、既知の作業負荷によって表され得、効率比は、その既知の作業負荷/電力消費によって表され得る。ひとたび様々な処理構成要素の処理効率が決定されると、一般に当技術分野において理解されているように、動的制御および電圧スケーリング(「DCVS」)アルゴリズムは、SoCによって処理され得る全作業負荷量に対する最小限の影響で、熱エネルギー生成が軽減されるように、エネルギー効率が最も低い処理構成要素に供給される電力周波数を調整するために活用され得る。
【００２４】
所与の作業負荷を処理するために、所与の動作温度で所与のコアによって消費された電力を推論するために性能特性が使用され得る、ヘテロジニアスプロセッサ内の多様なコアの個々の性能特性(または限定はしないが、電流引き込みなど、性能特性のインジケータ)を考慮することによって、エネルギー効率認識型熱管理アルゴリズムは、全QoSに対する最小限の影響で熱エネルギー生成を低減するために、エネルギー効率が最も低いコア(必ずしも「最も熱い」コアとは限らない)が「ダイヤルダウンされる」ことを命令し得る。同様に、熱エネルギー生成を低減する必要性に応答して、エネルギー効率認識型熱管理アルゴリズムは、アクティブな作業負荷があまり効率的でないコアからより効率的なコアに再配分されるようにする、または、待ち行列に入れられた作業負荷(Queued Workloads)が、利用可能な容量を有するより効率的なコアに配分されるよう命令し得る。特に、本ソリューションの実施形態は、単にエネルギー効率がより低いコア上で作業負荷が稼働するのを防止しようとするのではない可能性がある。すなわち、いくつかの実施形態では、作業負荷が開始すると、システムは、各構成要素のエネルギー効率を考慮し、作業負荷を、作業負荷が適合する最も効率的なCPUに配置し得る。たとえば、最も効率的なコアがすでに非常に激しく利用されている場合、次に最も効率的なコアが選択され得る。これらの方法および他の方法で、エネルギー効率認識型熱管理ソリューションの実施形態は、ユーザによって経験される全QoSレベルを最適化しながら、PCDにおける熱エネルギー生成を管理し得る。
【００２５】
非限定的な例として、熱アラームをトリガするために、PCDにおける監視された熱しきい値が超えられ得る。熱しきい値は、限定はしないが、PCDの「皮膚」温、パッケージオンパッケージ(「PoP」)メモリデバイスの温度、コアの接合温度、電源およびクロックジェネレータ容量、使用事例シナリオなどに関連付けられ得る。熱しきい値を超えたと認識すると、エネルギー効率認識型熱管理ポリシーを容易にするための効率マネージャモジュールは、1つまたは複数の処理構成要素による電力消費を低減しようとし得る。有利には、電力消費を低減することによって、熱エネルギー生成が軽減され、熱警報が解除され得る。熱警報が解除された後、エネルギー効率認識型熱管理ソリューションのいくつかの実施形態は、以前、低減された電源電圧およびクロック生成周波数の受信側であったあまり効率的でない処理構成要素の電源電圧およびクロックジェネレータ周波数の増加を許可し得る。同様に、熱警報が解除された後、エネルギー効率認識型熱管理ソリューションのいくつかの実施形態は、以前、移行された電力モードの受信側であったあまり効率的でない処理構成要素についてアクティブ電力モードに戻ることを許可し得る。
【００２６】
効率マネージャモジュールは、様々な処理構成要素に関連付けられた性能データについての問合せを行い、またはプロセッサ性能を示す測定値を受信し、アクティブな、および熱的にアグレッシブな処理構成要素のうちのどの1つまたは複数が、処理作業負荷でエネルギー効率が最も低いかを判断し得る。すなわち、効率マネージャモジュールは、どの処理構成要素が処理される既知の作業負荷の電力を最も多く消費するかを判断し得る。判断に基づいて、効率マネージャモジュールは、次いで、エネルギー効率が最も低い処理構成要素に供給される電力を低減させ得、それによって、消費されるミリワット(「mW」)電力当たり処理され得る作業負荷の平均量を不必要に犠牲にすることなく、複数の処理構成要素の全熱エネルギー生成が軽減される。このようにして、効率マネージャモジュールは、熱エネルギー生成を低減する必要性を満たしながら、QoSを最適化し得る。
【００２７】
別の非限定的な例として、特定のコードブロックが、例示的なPCD内で中央処理装置(「CPU」)またはグラフィカル処理装置(「GPU」)のいずれかによって処理され得る。特定のコードブロックは、たとえば、CPUによる処理に割り当てられ得る。しかしながら、本ソリューションの例示的な実施形態の効率マネージャモジュールは、GPUが、コードブロックをより効率的に処理し、判断に応答して、コードブロックを、CPUからGPUに再配分する立場にあると決定し得る。このようにして、コードブロックを処理するために必要とされるエネルギー量は最小限に抑えられ得、その結果、SoCの全熱エネルギー生成が最小限に抑えられる。
【００２８】
別の非限定的な例として、特定のコードブロックが、例示的なPCD内で中央処理装置(「CPU」)またはグラフィカル処理装置(「GPU」)のいずれかによって処理され得る。有利なことに、特定のコードブロックがCPUまたはGPUのうちの1つによって処理されることを事前に判定する代わりに、例示的な実施形態は、コードを処理する必要性が熟したときに、処理構成要素のうちのいずれが、コードブロックを処理するタスクを割り当てられるかを選択することができる。すなわち、コードブロックを効率的に処理するのに最も良い状態にあるプロセッサが作業負荷を割り当てられるように、CPUおよびGPUの性能曲線の「スナップショット」が比較され得る。特に、後続作業負荷の配分のための後続プロセッサ選択は、コードブロックがスケジューリング待ち行列から出るのに伴ってリアルタイムまたはほぼリアルタイムで行われ得ることが理解されるだろう。このようにして、効率管理モジュールは、作業負荷配分の直前に処理コアを選択することによって、QoSを最適化するために、ヘテロジニアスプロセッサ中の個々のコアに関連する動作温度を利用することができる。
【００２９】
図1Aは、異なる熱条件のもとで動作する例示的な処理構成要素の1対の性能曲線(コア85℃、コア50℃)を示すグラフ300である。処理構成要素は、ヘテロジニアスマルチコアプロセッサ内のコアであってよく、効率の高いコア、効率が中程度のコア、または効率の低いコアであり得る。より具体的には、当業者であれば認めるように、処理構成要素は、限定はしないが、CPU、GPU、DSP、プログラマブルアレイ、ビデオエンコーダ/デコーダ、システムバス、カメラサブシステム(画像プロセッサ)、MDPなどを含む、所与のコードブロックを処理する能力を有する任意の処理エンジンであり得る。その上、上述のように、例示的な処理エンジンは、CPU、GPUなどの中にあるコアまたはサブコアであり得る。特に、エネルギー効率は、特定の電力消費レベルでの処理構成要素の処理性能または速度を示すために定義され得る。たとえば、エネルギー効率は、MIPS/mW(mW電力消費当たりの100万命令毎秒)またはMHz/mW(mW電力消費当たりのメガヘルツ動作クロック周波数)によって表され得る。
【００３０】
図1Aの図示からわかるように、3500MIPSの作業負荷において、50℃の環境内で動作する例示的なコアは約620mWの電力(点315)を消費するが、同じ3500MIPSの作業負荷において、動作環境が85℃に達するとき、コアの電力消費はほぼ1000mWの電力(点310)に増加する。したがって、85℃で動作するときの3.5MIPS/mWとは対照的に、約5.6MIPS/mWを処理することができるので、50℃の温度で動作するとき、例示的な処理構成要素の効率はより良い。さらに、所与の動作温度では、コアの処理効率は、作業負荷の増加につれて低減する。コア50℃の曲線を参照すると、たとえば、作業負荷が3500MIPSから約4300MIPSに増加するとき、電力消費はほぼ1000mW(点305)に増加する。
【００３１】
所与の処理構成要素では、動作温度が上昇するにつれて、電力消費に関する処理構成要素の効率が低下する(すなわち、処理構成要素の動作温度が上がるにつれて、処理構成要素が所与の動作周波数において処理する能力を有するMIPSの数が減少する)ことが、図1Aの図示からわかる。特に、例示的な処理構成要素の動作温度の上昇は、限定はしないが、より高いクロック速度に関連付けられた処理構成要素内の電力漏洩の増加、処理構成要素に隣接した熱アグレッサ、処理構成要素に隣接した誤動作構成要素、周囲環境の変化などを含む、任意の数のファクタまたはファクタの組合せによって引き起こされ得ることは、当業者には認識されよう。その上、処理構成要素上の作業負荷が増加すると、電力消費の増加に関連付けられた電力漏洩率の上昇により、作業負荷配分時に処理構成要素に関連付けられた動作温度を上昇させ得ることは、当業者には認識されよう。処理構成要素の動作温度が上昇または下降し得る理由に関係なく、一般に、所与の処理構成要素の処理効率は、動作温度の上昇に反比例して下がるということを、図1Aの図示から気付くことが重要である。
【００３２】
ここで図1Bを見ると、異なる熱条件のもとで動作する、「低性能」CPU処理構成要素および「高性能」GPU処理構成要素という2つの例示的な処理構成要素の各々に対する、性能曲線のペア(GPU105℃、GPU95℃、CPU105℃、CPU95℃)を示すグラフ400が示されている。基本的に、図1Bのグラフ400は、2つの異なる例示的な処理構成要素の性能曲線を示し、これらの各々は、図1Aの図示によって表され得る。その上、図2の性能曲線のペアによって表される2つの例示的なプロセッサGPU、CPUは、共通のヘテロジニアスマルチプロセッサシステムオンチップ(「SoC」)内に含まれ得ることを、当業者は認識するだろう。
【００３３】
特に、例示的なエンジンGPU、CPUの性能曲線を重畳することによって、様々な移行点または乗換点405、410、415が、様々な曲線の交差点において定義されることが理解され得る。これらの乗換点は、異なるエンジンが最も効率的であるしきい値を表す。
【００３４】
たとえば、例示的なGPU、CPUプロセッサの性能曲線の比較分析によって、プロセッサGPU、CPUの各々が95℃で動作している場合、約3700DMIPS(点410)の作業負荷では両方のプロセッサGPU、CPUが処理効率に関して実質的に同等であると、判定することができる。しかしながら、点410より下ではCPU処理構成要素がより効率的であること、すなわち、作業負荷が3700DMIPS未満ならば作業負荷のDMIPS当たりの電力消費はCPU処理構成要素の方が少ないことも、比較分析から理解され得る。逆に、点410より上ではGPUコアがより効率的であり、すなわち、作業負荷が3700DMIPSを超えれば作業負荷のDMIPS当たりの電力消費はGPUコアの方が少ない。
【００３５】
したがって、CPUが105℃で稼働しており、GPUがより低い95℃で稼働しているときの例示的な比較分析に依存すると、全熱エネルギー生成を低減するためのトリガに応答してエネルギー効率認識型熱管理ポリシーを適用する効率マネージャモジュールは、CPUの温度が高い場合であっても、ポイント405未満の作業負荷についてのあまり効率的でないGPUへの電力の低減を命令し得る。
【００３６】
その上、いくつもの要因により、ヘテロジニアスマルチプロセッサSoC中の異なるプロセッサおよび/またはコアは、異なる熱条件で動作し得ることが理解されるだろう。たとえば、図1Bの図示では、移行点405は、105℃で動作する例示的なCPU処理構成要素の性能曲線と、95℃で動作する例示的なGPU処理構成要素の性能曲線の交差点を表す。その結果、例示的なプロセッサが異なる温度で動作していることを認識することによって、実施形態は、比較分析を利用して、上で説明された例示的な状況と同様に、処理の準備ができた所与のコードブロックを効率的に処理するために作業負荷を配分する直前に、プロセッサのうちのいずれが最も良い状態にあるかを判定することができる。たとえば、最も効率的な条件で作業負荷が処理されることを確実にするために、2400DMIPS未満の作業負荷はCPU処理構成要素に割り当てられてよく、2400DMIPSを超える作業負荷はGPU処理構成要素に割り当てられてよい。さらに、エネルギー効率認識型熱管理ソリューションの実施形態は、集合的な処理エンジンの全平均効率が最適化されるように、処理構成要素の中、およびその間に作業負荷を再配分し得ることが想定される。そうする際に、いくつかの実施形態は、単にエネルギー効率がより低いコア上で作業負荷が稼働するのを防止しようとするのではない可能性がある。すなわち、いくつかの実施形態では、作業負荷が開始すると、システムは、各構成要素のエネルギー効率を考慮し、作業負荷を、作業負荷が適合する最も効率的なCPUに配置し得る。たとえば、最も効率的なコアがすでに非常に激しく利用されている場合、次に最も効率的なコアが選択され得る。
【００３７】
特に、エネルギー効率認識型熱管理アルゴリズムのいくつかの実施形態は、次のコードブロックが割り当てられた場合、全作業負荷処理効率を最適化するために実行され得ることが想定される。たとえば、図1Bの図示の例示的な曲線GPU95℃およびCPU105℃を再び参照し、曲線に関連するプロセッサGPU、CPUが現在、2000DMIPSの割合で処理しており、効率管理モジュールが、2つの例示的なプロセッサのうちのいずれが、追加の作業負荷1000DMIPSを効率的に処理するのに最も良い状況にあるかを判定しようとしていると仮定する。エネルギー効率認識型熱管理アルゴリズムを使用して、現在処理されている2000DMIPSの作業負荷ではなく、処理構成要素GPU、CPUにつき想定される総作業負荷3000MIPS(エンジンごとに以前に配分された2000MIPSとエンジンのうちの1つに配分される追加の1000MIPSとの和)に基づいて、曲線を比較することができる。この非限定的な例では、図2の図示の例示的な曲線GPU95℃およびCPU105℃に基づいて、熱認識スケジューリングモジュールは、3000DMIPSで500mW超の電力を消費することになるCPUではなく、同じ作業負荷で処理するために400mW未満の電力を消費することになるより効率的なGPUを選択することができる。
【００３８】
上記の例を拡張して、追加の1000DMIPSをGPUに割り当てた後、効率管理モジュールは、CPU上で稼働する作業負荷の2000DMIPSをGPUに再配分するために移動することができ、それによって、3000DMIPSから5000DMIPSへのGPUの作業負荷がさらに増える。有利には、5000DMIPSで、GPUは、その2000DMIPSの作業負荷が再配分されなかった場合、CPUが消費するおおよそ8mW/DMIPSとは対照的に、作業負荷を処理するために、1000mWの電力または5mW/DMIPSを消費する。さらに、この例においてCPUから作業負荷が完全に取り除かれた状態で、効率マネージャモジュールは、CPUを保持状態、またはさらには電力縮小状態(power collapsed state)に移行し得、それによって、さらにエネルギーが節約され、熱エネルギー生成が軽減される。
【００３９】
エネルギー効率認識型熱管理アルゴリズムのさらに他の実施形態を使用して、追加の作業負荷が割り当てられた場合に予測される曲線のシフトに基づいて性能曲線を比較することができる。たとえば、それぞれ95℃および105℃の動作温度でそれぞれ2000DMIPSの割合で処理しているプロセッサGPUおよびCPUの例を再び参照すると、効率管理モジュールの実施形態は、追加の1000DMIPSの作業負荷配分から生じ得る性能曲線のシフトを予測することができる。特に、追加の1000DMIPSの作業負荷により、それが割り当てられた処理構成要素がより多くの電力を消費することがあるので、効率管理モジュールは、処理構成要素に現在関連付する動作温度が、追加の作業負荷により上昇すると考え、それにより、予測される温度上昇に関連する性能曲線を比較しようとすることがある。
【００４０】
例に戻ると、追加の作業負荷1000DMIPSにより、GPUの動作温度は95℃から100℃に上昇し、同様に、CPUの動作温度は105℃から110℃に上昇し得る。したがって、効率管理モジュールの実施形態は、それぞれ予測される温度100℃および110℃で動作するコアGPUおよびコアCPUに関連付けられる性能データ(図1Bには示されていないGPU100℃およびCPU110℃の性能曲線)を照会し、比較することができる。
【００４１】
図1Cは、例示的な1対のコア、コア1およびコア2についての1対の性能曲線を示すグラフ500である。「遅い」コアと見なされ得るコア1に対して、コア2は、「速い」コアと見なされ得る。特に、当業者は、コア2は、コア1(約2100MHz)よりも高い最大周波数(約2500MHz)で処理することができるので、コア2を例示的な対のうちの速いコアとして認識する。したがって、および動作周波数がMIPSと相関するので、当業者は、コア2がコア1よりも多くMIPSを処理することができることも認識する。
【００４２】
図1Cの図における点510は、コア2がコア1よりも1MIPSの作業負荷を処理することにおいてより効率的である周波数(およそ1600MHz)を表す[2000MHzで、コア2は、およそ800mWの電力を消費しているだけである(点515)のに対して、コア1は、同じ2000MHzの動作周波数でおよそ1100mWの電力を消費している(点520)]。しかしながら、特に、点510より下では、例示的なコア1は、2つのうちより効率的なプロセッサである。したがって、コア1とコア2の両方が1600MHz未満の周波数で稼働しており、効率管理モジュールが熱エネルギー生成を低減するためのトリガ(たとえば、皮膚温しきい値を超えることに対する熱警報など)を認識した場合、効率管理モジュールは、トリガ時にコア2がコア1よりも「熱かった」かどうかにかかわらず、コア2に供給される周波数を低減しようとし得る。このようにして、所与のMIPSの作業負荷を処理する全効率が最適化されるとともに、熱エネルギー生成が軽減され得る。
【００４３】
図1Dは、図1Cの図において示した、例示的な1対のコア、コア1およびコア2についての異なる1対の性能曲線を示すグラフ600である。図1Dにおいて、性能曲線の各々は、コアのエネルギー効率対コアに供給される周波数をマッピングする。特に、図1Dの図における点610および615は、それぞれ、図1Cの図における点510および515/520と相関する。同様に、図1Dの図に示される最大動作周波数は、図1Cの図に示される最大動作周波数と相関する。
【００４４】
図1Dの図によって表される性能データを使用して、エネルギー効率認識型熱管理ソリューションの一実施形態は、両方のコアがそれらの最大動作周波数で、またはその近くで稼働している場合、最初にコア1に供給される周波数を低減することによって、熱トリガに反応し得る。特に、2000MHzの最大動作周波数で、コア1は、コア2よりも消費される電力のmW当たりより少ないMIPSの作業負荷を処理している。したがって、例示的なエネルギー効率認識型熱管理ソリューションは、熱エネルギー生成を軽減し、熱警報を解除しようとして、ワンステップで、コア1の周波数を低減し得る。あまり効率的でないコア1の周波数の低減が警報を解除しない場合、例示的なエネルギー効率認識型熱管理ソリューションは、第1のステップの低減後、コアのうちのどれがあまり効率的でないかを再評価し、周波数の第2のステップの低減を、エネルギー効率が最も低いコアに適用し得る。このプロセスは、そのようなステップバイステップ方式で、熱警報が解除されるまで、または、そうでなければ、熱軽減目標が達成されるまで、ステップの低減時に、エネルギー効率が最も低いコアに供給される周波数を低減し続ける。
【００４５】
図2Aは、ヘテロジニアス処理構成要素を含むオンチップシステム102Aにおける非同期のアーキテクチャの態様を示す機能ブロック図である。エネルギー効率認識型熱管理ソリューションのいくつかの実施形態は、作業負荷処理効率を不必要に下げることなく、処理構成要素による熱エネルギー生成を管理することに適用可能であり得る。
【００４６】
オンチップシステム102Aは、一連の処理構成要素PC0、PC1、PC2などを示すために表される。特に、オンチップシステム102Aのアーキテクチャは非同期であるので、処理構成要素の各々は、電源電圧およびクロックジェネレータ周波数、たとえば当業者によって理解されるように、位相ロックループ(「PLL」)などを制御するための専用クロックソースに関連付けられ得る。図において、クロック0は、PC0に対する電源およびクロックジェネレータに一意に関連付けられている。クロック1は、PC1に対する電源およびクロックジェネレータに一意に関連付けられている。クロック2は、PC2に対する電源およびクロックジェネレータに一意に関連付けられており、以下同様である。
【００４７】
有利には、非同期オンチップシステムにおける各処理構成要素が専用のクロックソースを有するので、エネルギー効率認識型熱管理ソリューションの実施形態は、熱エネルギー生成がしきい値を超えると、エネルギー効率が最も低い処理構成要素における目標とされた電力の低減を行うために、DCVSモジュールを使用し得る。
【００４８】
図2Bは、ヘテロジニアス処理構成要素を含むオンチップシステム102Bにおける同期のアーキテクチャの態様を示す機能ブロック図である。エネルギー効率認識型熱管理ソリューションのいくつかの実施形態は、作業負荷処理効率を不必要に下げることなく、処理構成要素による熱エネルギー生成を管理することに適用可能であり得る。
【００４９】
オンチップシステム102Bは、一連の処理構成要素PC0、PC1、PC2などを示すために表される。特に、オンチップシステム102Bのアーキテクチャが同期しているので、処理構成要素の各々は、すべての処理構成要素に対する単一の共通のクロックソースおよび電源に関連付けられる。有利には、同期のオンチップシステムにおける各処理構成要素が単一のクロックソースを共有するので、エネルギー効率認識型熱管理ソリューションの実施形態は、あまり効率的でない処理構成要素からより効率的な処理構成要素に作業負荷を配分または再配分することによって、熱エネルギー生成がしきい値を超えたとき、処理効率を最適化し得る。
【００５０】
特に、あまり効率的でない処理構成要素は作業負荷がないので、エネルギー効率認識型熱管理ソリューションの実施形態は、あまり効率的でない処理構成要素の電力状態が、たとえば、アクティブ状態から保持状態に移行する、または保持状態から電力縮小状態に移行するよう命令し得る。有利には、新たな作業負荷をより効率的なプロセッサに配分する、および/またはアクティブな作業負荷をあまり効率的でないプロセッサからより効率的なプロセッサに再配分することによって、本ソリューションの実施形態は、所与の作業負荷を処理するために必要な電力量を最適化し得る。さらに、より効率的な処理構成要素が許容できるQoSを維持することができない場合、あまり効率的でない処理構成要素をオンラインに戻すためのレイテンシパラメータに鑑みて、同期のSoC102Bにおけるあまり効率的でない処理構成要素をアクティブ状態からアイドル状態に移行することによって、エネルギー効率認識型熱管理ソリューションの実施形態は、全電力消費効率をさらに最適化することができる。
【００５１】
図3は、ポータブルコンピューティングデバイス(「PCD」)100におけるエネルギー効率認識型熱管理のためのオンチップシステム102の一実施形態を示す機能ブロック図である。特に、オンチップシステム102がアーキテクチャにおいて同期または非同期であり得ることが想定される。図1の図に対して上で説明されたように、電源電圧およびクロックジェネレータ周波数の目標とされた低減、ならびに/または処理構成要素にわたる作業負荷の配分は、個々のコアまたはプロセッサ222、224、226、228に一意に関連付けられた性能データの比較分析に基づき得る。特に、当業者は、処理構成要素110が説明のためにのみヘテロジニアス処理エンジンのグループとして示されており、各々が複数のコアおよび/またはサブコアを含むことも含まないこともある複数のヘテロジニアスコア222、224、226、228または複数のヘテロジニアスプロセッサ222、224、226、228を有する単一の処理構成要素を表し得ることを認識するだろう。したがって、処理エンジン222、224、226および228を本明細書において「コア」と呼ぶことは、本質的に例示的なものと理解され、本開示の範囲を限定しない。
【００５２】
オンチップシステム102は、効率マネージャ(「EM」)モジュール101、DCVSモジュール26、およびスケジューラモジュール207と通信しているモニタモジュール114を用いて、コア222、224、226、228に個々に関連付けられている温度センサ157を監視し得る。モニタモジュール114は、限定的はしないが、皮膚温センサ、PoPメモリ温度センサ、接合温度センサ、処理構成要素に対する電力レール上の電流センサ、電源に関連した電流センサ、電源能力センサなど、しきい値を超え得る任意の数の熱エネルギーインジケータを監視することもできる。
【００５３】
熱しきい値を超え、それがモニタモジュール114によって認識された場合、EMモジュール101は、エネルギー効率認識型の方法で熱エネルギー生成を軽減するための対策を講じるためにトリガされ得る。EMモジュール101は、モニタモジュール114から、処理構成要素のエネルギー効率に関連付けられた1つまたは複数の監視されたパラメータの表示を受信し、次いで、それらの表示を使用して、処理構成要素のうちのどれがエネルギー効率が最も低いかを判断し得る。いくつかの実施形態では、EMモジュール101は、モニタモジュール114から温度測定値を受信し、測定値を使用して、コア性能データストア24に性能データについて問い合わせ得る。性能データに基づいて、EMモジュール101は、作業負荷処理効率によってコア222、224、226、228のランキングを決定し得る。
【００５４】
その後、EMモジュール101は、非同期システム102Aにおけるあまり効率的でないコアに対する電源電圧およびクロックジェネレータ周波数を低減することを決定することができ、または同期システム102Bにおいて、EMモジュール101は、作業負荷があまり効率的でないコアからより効率的なコアに再配分されるようにし得る、または、待ち行列に入れられた作業負荷がより効率的なコアにスケジュールされるようにし得る。EMモジュール101によって命令された動的なDCVS調整ポリシーは、あまり効率的でない処理構成要素において低減されたレベルでプロセッサクロック速度を設定する、いくつかのあまり効率的でないプロセッサの電力状態をアクティブ状態からアイドル状態に移行するなどを行い得る。いくつかの実施形態では、EMモジュール101によって命令された作業負荷の配分および/または再配分は、スケジューラ207に対する命令を介して実施され得る。特に、エネルギー効率認識型熱管理ポリシーの適用を通して、EMモジュール101は、QoSを犠牲にして過度な電力消費を低減または緩和し得る。
【００５５】
当業者には認識されるように、処理コア222、224、226、228のうちの1つまたは複数の動作温度は、作業負荷が処理されるとき、周囲条件が変化するとき、隣接した熱エネルギー発生器がエネルギーを散逸させるときなどに変動することがある。したがって、様々な処理コア222、224、226、228の動作温度が変動するとき、それらのエンジン222、224、226、228に関連付けられた関連する性能データも変動する。コア222、224、226、228の各々に関連付けられた動作温度が変化するとき、モニタモジュール114は変化を認識し、変化を示す温度データをEMモジュール101へ送信し得る。測定された動作温度の変化は、EMモジュール101が、測定された動作温度に基づいてコア222、224、226、228のうちの1つまたは複数のための性能曲線について問い合わせるために、コア性能(「CP」)データストア24を参照することをトリガし得る。その後、EMモジュール101は、異なるコア222、224、226、228をエネルギー効率が最も低いコアと識別し、消費された電力のミリワット当たりの作業負荷のより効率的な処理を維持しながら、生成された熱エネルギーが軽減されるように、(DCVSモジュール26を介して)それに供給される電力周波数を調整し得る。EMモジュール101はまた、識別された性能曲線を比較し、待ち行列に入れられたコードブロック、またはあまり効率的でないコアからの再配分を必要とするコードブロックを効率的に処理するために比較時に最良に配置されたコア222、224、226、228を選択し得る。
【００５６】
例示的なEMモジュール101は、様々な多様な処理構成要素222、224、226、228に関連付けられた1つまたは複数の性能曲線の比較分析を活用して、電力供給を調整するように、DCVSモジュール26に命令する、および/または作業負荷を効率的に処理するために最良に配置されたある処理構成要素に作業負荷を配分するもしくは再配分するように、スケジューラモジュール207に命令するように構成される。特に、当業者は、処理構成要素222、224、226、228の動作温度が変化したときには、EMモジュール101によって照会され、比較される性能曲線も変化することを認識するだろう。したがって、異なる時間にEMモジュール101は、エネルギー効率認識型熱管理ポリシーの適用のために異なる処理エンジン222、224、226、228を選択することができる。このようにして、配分時に利用可能な最も効率的な処理構成要素に作業負荷の割当てが配分されることを確実にすることによって、および/またはより効率的なプロセッサがアクティブな作業負荷を処理できるようにするために、エネルギー効率が最も低い処理構成要素による電力消費が低減されることを確実にすることによって、熱エネルギー生成を管理するとき、EMモジュール101がQoSを最適化することは、いくつかの実施形態の利点である。
【００５７】
図4は、熱条件を監視し、性能データを比較し、最適電力周波数を設定し、効率的に処理するために最良に配置された処理構成要素に作業負荷をスケジュールするための方法およびシステムを実装するための、ワイヤレス電話の形態のPCD100の例示的で非限定的な態様の機能ブロック図である。図示されるように、PCD100は、互いに結合されたヘテロジニアスマルチコア中央処理装置(「CPU」)110およびアナログ信号プロセッサ126を含む、オンチップシステム102を含む。当業者によって理解されるように、CPU110は、0番目のコア222、1番目のコア224、およびN番目のコア230を備えてもよい。さらに、当業者によって理解されるように、CPU110の代わりに、デジタル信号プロセッサ(「DSP」)も利用され得る。その上、ヘテロジニアスマルチコアプロセッサの技術分野で理解されるように、コア222、224、230の各々は、同様の動作条件のもとで異なる効率で作業負荷を処理し得る。
【００５８】
一般に、効率マネージャモジュール101は、モニタモジュール114から温度データを受信し、温度データを使用してコア222、224、230に関連付けられた性能データについて問い合わせる、または性能データを推定し、コア222、224、230の相対的な処理効率を決定し、DCVSモジュール26および/またはスケジューラ207とともに働いて、電源を調整し、電力状態を移行し、および/またはコア222、224、230に対するコードブロックをスケジュールすることができる。
【００５９】
モニタモジュール114は、オンチップシステム102全体を通して分散された複数の動作するセンサ(たとえば、熱センサ157)、およびPCD100のCPU110、ならびにEMモジュール101と通信する。EMモジュール101は、モニタモジュール114とともに働いて、モニタモジュール114によって監視された温度に関係するプロセッサ性能曲線について問い合わせ、曲線を比較し、電力周波数を最も効率的なレベルに設定し、コードブロックを処理する能力を有する利用可能な最も効率的なプロセッサを選択し得る。
【００６０】
図4に示すように、ディスプレイコントローラ128およびタッチスクリーンコントローラ130は、デジタル信号プロセッサ110に結合される。オンチップシステム102の外部にあるタッチスクリーンディスプレイ132は、ディスプレイコントローラ128およびタッチスクリーンコントローラ130に結合される。
【００６１】
PCD100は、ビデオデコーダ134、たとえば位相反転線(「PAL」)デコーダ、順次式カラーメモリ(「SECAM」)デコーダ、全国テレビジョン方式委員会(「NTSC」)デコーダ、または任意の他のタイプのビデオデコーダ134をさらに含み得る。ビデオデコーダ134は、マルチコア中央処理ユニット(「CPU」)110に結合される。ビデオ増幅器136は、ビデオデコーダ134およびタッチスクリーンディスプレイ132に結合される。ビデオポート138は、ビデオ増幅器136に結合される。図4に示されるように、ユニバーサルシリアルバス(「USB」)コントローラ140が、CPU110に結合される。同様に、USBポート142は、USBコントローラ140に結合される。メモリ112および加入者識別モジュール(SIM)カード146も、CPU110に結合されてもよい。さらに、図4に示すように、デジタルカメラ148が、CPU110に結合され得る。例示的な態様では、デジタルカメラ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電源を含む。
【００６４】
CPU110は、1つまたは複数の内部のオンチップ熱センサ157A、ならびに、1つまたは複数の外部のオフチップ熱センサ157Bにも結合され得る。オンチップ熱センサ157Aは、縦型PNP構造に基づき、通常は相補型金属酸化膜半導体(「CMOS」)の超大規模集積(「VLSI」)回路に専用の、1つまたは複数の絶対温度比例(「PTAT」)の温度センサを備え得る。オフチップ熱センサ157Bは、1つまたは複数のサーミスタを含み得る。熱センサ157は、アナログデジタル変換器(「ADC」)コントローラ103を用いてデジタル信号に変換される、電圧降下を生じさせ得る。しかしながら、本発明の範囲から逸脱することなく、他のタイプの熱センサ157が採用され得る。
【００６５】
熱センサ157は、ADCコントローラ103によって制御され監視されることに加えて、1つまたは複数のEMモジュール101によっても制御され監視され得る。EMモジュール101は、CPU110によって実行されるソフトウェアを含み得る。しかしながら、本発明の範囲から逸脱することなく、EMモジュール101はまた、ハードウェアおよび/またはファームウェアから形成され得る。EMモジュール101は、プロセッサ性能データについて問い合わせ、および/またはプロセッサ性能の表示を受信し、データの分析に基づいて、エネルギー効率が最も低いプロセッサの電力周波数を調整し、および/またはコードブロックを、作業負荷配分時にコードを効率的に処理する能力が最も高いプロセッサに配分するもしくは再配分することを担い得る。
【００６６】
図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はまた、PCD100において動作可能なリソースのリアルタイム管理を助けるために、これらの外部のデバイスのうちの1つまたは複数から、アナログ信号プロセッサ126およびCPU110によって1つまたは複数の指示または信号を受信できることを理解されたい。
【００６７】
特定の態様では、本明細書で説明する方法ステップのうちの1つまたは複数は、1つまたは複数のEMモジュール101を形成する、メモリ112に記憶された実行可能命令およびパラメータによって実施され得る。EMモジュール101を形成するこれらの命令は、本明細書で説明する方法を実施するために、ADCコントローラ103に加えて、CPU110、アナログ信号プロセッサ126、または別のプロセッサによって実行され得る。さらに、プロセッサ、110、126、メモリ112、そこに記憶された命令、またはそれらの組合せは、本明細書で説明される方法ステップのうちの1つまたは複数を実行するための手段として働く場合がある。
【００６８】
図5Aは、図4に示されるチップ102のための、ハードウェアの例示的な空間構成を示す機能ブロック図である。この例示的な実施形態によれば、アプリケーションCPU110は、チップ102の遠く左側の領域に配置されるが、モデムCPU168、126は、チップ102の遠く右側の領域に配置される。アプリケーションCPU110は、第0のコア222、第1のコア224、および第Nのコア230を含む、ヘテロジニアスマルチコアプロセッサを含み得る。アプリケーションCPU110は、EMモジュール101Aを実行していてよく(ソフトウェアで具現化される場合)、または、EMモジュール101Aを含んでよい(ハードウェアで具現化される場合)。アプリケーションCPU110は、オペレーティングシステム(「O/S」)モジュール208およびモニタモジュール114を含むように、さらに例示される。
【００６９】
アプリケーションCPU110は、アプリケーションCPU110に隣接して配置されチップ102の左側の領域にある、1つまたは複数の位相ロックループ(「PLL」)209A、209Bに結合され得る。PLL209A、209Bに隣接しアプリケーションCPU110の下に、アプリケーションCPU110の主要なモジュール101Aとともに動作する固有のEMモジュール101Bを含み得るアナログデジタルコントローラ(「ADC」)103が、含まれ得る。
【００７０】
ADCコントローラ103のEMモジュール101Bは、モニタモジュール114とともに、「チップ102上」および「チップ102外」に設けられ得る複数の熱センサ157を監視および追跡することを担い得る。オンチップまたは内部熱センサ157Aは、様々な位置に配置され得る。
【００７１】
非限定的な例として、第1の内部熱センサ157A1は、アプリケーションCPU110とモデムCPU168、126との間に、かつ内部メモリ112に隣接して、チップ102の上部の中心領域に配置され得る。第2の内部熱センサ157A2は、モデムCPU168、126の下の、チップ102の右側領域に配置され得る。この第2の内部熱センサ157A2は、進化した縮小命令セットコンピュータ(「RISC」)命令セットマシン(「ARM」)177と第1のグラフィックプロセッサ135Aとの間にも配置され得る。デジタルアナログコントローラ(「DAC:digital-to-analog controller」)173は、第2の内部熱センサ157A2とモデムCPU168、126との間に配置され得る。
【００７２】
第3の内部熱センサ157A3は、第2のグラフィックプロセッサ135Bと第3のグラフィックプロセッサ135Cとの間の、チップ102の遠く右側の領域に配置され得る。第4の内部熱センサ157A4は、チップ102の遠く右側の領域に、かつ第4のグラフィックプロセッサ135Dの下に配置され得る。第5の内部熱センサ157A5は、チップ102の遠く左側の領域に、かつPLL209およびADCコントローラ103に隣接して配置され得る。
【００７３】
1つまたは複数の外部熱センサ157Bも、ADCコントローラ103に結合され得る。第1の外部熱センサ157B1は、チップの外部に、かつ、モデムCPU168、126、ARM177、およびDAC173を含み得るチップ102の右上4分の1の領域に隣接して配置され得る。第2の外部熱センサ157B2は、チップの外部に、かつ、第3のグラフィックプロセッサ135Cおよび第4のグラフィックプロセッサ135Dを含み得るチップ102の右下4分の1の領域に隣接して配置され得る。
【００７４】
図5Aに示されるハードウェアの様々な他の空間構成が、本発明の範囲から逸脱することなく実現され得ることを、当業者は認識するだろう。図5Aは、1つの例示的な空間配置、および主要なEMモジュール101AおよびそのEMモジュール101Bを有するADCコントローラ103が図5Aに示される例示的な空間配置に応じて決まる熱条件を認識し、処理効率データを比較し、作業負荷を配分する、またはQoSに不必要に影響を与えることなく熱条件を管理するよう電源を調整するために、モニタモジュール114とどのように連携し得るかを示す。
【００７５】
図5Bは、熱条件の識別およびエネルギー効率認識型熱管理アルゴリズムの適用をサポートするための、図4および図5AのPCD100の例示的なソフトウェアアーキテクチャ200を示す概略図である。任意の数のアルゴリズムが、ある熱条件が満たされる場合に、EMモジュール101によって適用され得る少なくとも1つのエネルギー効率認識型熱管理技法を形成することができ、またはその一部であり得る。
【００７６】
図5Bに示されるように、CPUまたはデジタル信号プロセッサ110は、バス211を介してメモリ112に結合される。上で述べられたように、CPU110は、N個のコアプロセッサを有する複数コアのヘテロジニアスプロセッサである。すなわち、CPU110は、第1のコア222、第2のコア224、および第Nのコア230を含む。当業者には知られているように、第1のコア222、第2のコア224、および第Nのコア230の各々は、専用のアプリケーションまたはプログラムをサポートするのに利用可能であり、ヘテロジニアスプロセッサの一部として、同様の熱的な動作条件のもとで異なるレベルの性能を提供し得る。あるいは、利用可能なヘテロジニアスコアの2つ以上にわたる処理のために、1つまたは複数のアプリケーションまたはプログラムは分散していてよい。
【００７７】
CPU110は、ソフトウェアおよび/またはハードウェアを備え得るEMモジュール101から、コマンドを受信し得る。ソフトウェアとして具現化される場合、EMモジュール101は、CPU110および他のプロセッサによって実行されている他のアプリケーションプログラムにコマンドを出す、CPU110によって実行される命令を備える。
【００７８】
CPU110の第1のコア222、第2のコア224〜第Nのコア230は、単一の集積回路ダイに集積されるか、または、複数回路のパッケージにおいて別個のダイ上で集積または結合される場合がある。設計者は、第1のコア222、第2のコア224〜第Nのコア230を、1つまたは複数の共有キャッシュを介して結合することができ、バス、リング、メッシュ、およびクロスバートポロジーのようなネットワークトポロジーを介して、メッセージまたは命令の伝達を実施することができる。
【００７９】
当技術分野で知られているように、バス211は、1つまたは複数のワイヤード接続またはワイヤレス接続を介した複数の通信経路を含み得る。バス211は、通信を可能にするために、コントローラ、バッファ(キャッシュ)、ドライバ、リピータ、および受信機のような、簡単にするために省略される追加の要素を有してもよい。さらに、バス211は、上述の構成要素の間での適切な通信を可能にするために、アドレス、制御、および/またはデータ接続を含むことができる。
【００８０】
図5Bに示すように、PCD100によって使用される論理がソフトウェアで実装されるとき、開始論理250、管理論理260、エネルギー効率認識型熱管理インターフェース論理270、アプリケーションストア280内のアプリケーション、およびファイルシステム290の部分のうちの1つまたは複数が、任意のコンピュータ関連のシステムまたは方法によって、またはそれと関連して使用するために、任意のコンピュータ可読媒体に記憶され得ることに留意されたい。
【００８１】
本明細書の文脈では、コンピュータ可読媒体は、コンピュータ関連システムまたは方法によって、またはそれと関連して使用するために、コンピュータプログラムおよびデータを含むか、または記憶することができる、電子式、磁気式、光学式、または他の物理デバイスまたは手段である。様々な論理要素およびデータストアは、命令実行システム、装置、またはデバイスから命令を取り出し、命令を実行することができる、コンピュータベースのシステム、プロセッサを含むシステム、または他のシステムなどの、命令実行システム、装置またはデバイスによって、またはそれと関連して使用するために、任意のコンピュータ可読媒体において具現化され得る。本明細書の文脈では、「コンピュータ可読媒体」は、命令実行システム、装置、またはデバイスによって、またはそれと関連して使用するために、プログラムを記憶、通信、伝搬、または移送することができる任意の手段であり得る。
【００８２】
コンピュータ可読媒体は、たとえば、限定はしないが、電子、磁気、光学、電磁、赤外線、または半導体のシステム、装置、デバイス、または伝搬媒体であることができる。コンピュータ可読媒体のより具体的な例(非包括的なリスト)を挙げると、以下のもの、すなわち、1つまたは複数のワイヤを有する電気的接続(電子的)、ポータブルコンピュータディスケット(磁気的)、ランダムアクセスメモリ(RAM)(電子的)、読取り専用メモリ(ROM)(電子的)、消去可能プログラマブル読取り専用メモリ(EPROM、EEPROM、またはフラッシュメモリ)(電子的)、光ファイバー(光学的)、およびポータブルコンパクトディスク読取り専用メモリ(CDROM)(光学的)を含むことになる。プログラムは、たとえば、紙または他の媒体の光学的走査を介して電子的に取り込まれ、次いでコンパイルされ、解釈され、またはさもなければ必要な場合に適当な方法で処理され、次いでコンピュータメモリに記憶され得るので、コンピュータ可読媒体が、そこにプログラムが印刷されている紙または別の適当な媒体でさえあり得ることに留意されたい。
【００８３】
代替の実施形態では、開始論理250、管理論理260、および場合によってはエネルギー効率認識型熱管理インターフェース論理270のうちの1つまたは複数がハードウェアに実装されるとき、様々な論理は、各々当技術分野でよく知られている以下の技術、すなわち、データ信号に対する論理機能を実装するための論理ゲートを有する個別の論理回路、適切な組合せの論理ゲートを有する特定用途向け集積回路(ASIC)、プログラマブルゲートアレイ(PGA)、フィールドプログラマブルゲートアレイ(FPGA)などのうちのいずれか、またはその組合せによって実装することができる。
【００８４】
メモリ112は、フラッシュメモリまたはソリッドステートメモリデバイスなどの不揮発性データ記憶デバイスである。単一のデバイスとして示されるが、メモリ112は、デジタル信号プロセッサ(または、追加のプロセッサコア)に結合される別個のデータストアとともに分散されたメモリデバイスであり得る。
【００８５】
開始論理250は、エネルギー効率認識比較分析、およびエネルギー効率認識型熱管理ポリシーの適用のために利用可能なコアのうちの1つまたは複数の識別のために、選択プログラムを選択的に特定し、ロードし、実行するための1つまたは複数の実行可能命令を含む。
【００８６】
管理論理260は、エネルギー効率認識型熱管理プログラムを終了し、さらに、利用可能なコアのうちの1つまたは複数に対するエネルギー効率認識比較分析、調整された電源のための選択、および/または作業負荷配分のためのより適切な交換プログラムを選択的に特定し、ロードし、実行するための1つまたは複数の実行可能命令を含む。管理論理260は、実行時に、またはPCD100が電力供給されデバイスのオペレータによって使用されている間に、これらの機能を実行するように構成される。交換プログラムは、組込みファイルシステム290のプログラムストア296において見出され得る。
【００８７】
代替プログラムは、デジタル信号プロセッサのコアプロセッサのうちの1つまたは複数よって実行されるときに、EMモジュール101およびモニタモジュール114によって提供される1つまたは複数の信号に従って動作することができる。この点について、監視モジュール114は、EMモジュール101から発せられる制御信号に応答して、イベント、プロセス、アプリケーション、リソース状態の条件、経過時間、温度などの、1つまたは複数のインジケータを提供することができる。
【００８８】
インターフェース論理270は、組込みファイルシステム290に記憶された情報を観察し、構成し、またはそうでなければ更新するために、外部入力を提示し、外部入力を管理し、かつ外部入力と相互にやりとりするための1つまたは複数の実行可能命令を含む。一実施形態では、インターフェース論理270は、USBポート142を介して受信された製造業者入力とともに動作することができる。これらの入力は、プログラムストア296から削除されるか、またはプログラムストア296に加えられることになる1つまたは複数のプログラムを含むことができる。代替的には、入力は、プログラムストア296内のプログラムのうちの1つまたは複数への編集または変更を含むことができる。さらに、入力は、開始論理250および管理論理260の一方または両方に対する1つまたは複数の変更、または全体的な代替を特定することができる。例として、入力は、皮膚温に関連付けられた温度測定値がある識別されたしきい値を超えると、あまり効率的でないコアからより効率的なコアに作業負荷を再配分するようPCD100に命令する管理ロジック260への変更を含み得る。さらなる例として、入力は、バッテリレベルがあるフロア量に達すると、エネルギー効率が最も低い処理コアに対する電力を1増分だけ低減するようPCD100に命令する管理ロジック260への変更を含み得る。
【００８９】
インターフェース論理270により、製造業者が、PCD100の定義された動作状態の下で、エンドユーザの体験を制御可能に構成および調整することが可能になる。メモリ112がフラッシュメモリであるとき、開始論理250、管理論理260、インターフェース論理270、アプリケーション記憶装置280内のアプリケーションプログラム、または組込みファイルシステム290内の情報のうちの1つまたは複数は、編集できるか、代替できるか、または別のやり方で変更できる。いくつかの実施形態では、インターフェース論理270によって、PCD100のエンドユーザまたは操作者は、開始論理250、管理論理260、アプリケーションストア280中のアプリケーション、および組込みファイルシステム290中の情報を検索し、見つけ、修正し、または置き換えることができる。操作者は、結果として生じるインターフェースを使用して、PCD100の次の開始時に実装される変更を加えることができる。あるいは、操作者は、得られたインターフェースを使用して、実行時中に実装される変更を行うことができる。
【００９０】
組込みファイルシステム290は、階層的に構成されたコア性能データストア24を含む。これに関して、ファイルシステム290は、様々な動作温度における様々なコア222、224、226、228の性能曲線に関連付けられた情報を記憶するための、全体のファイルシステム容量の中で確保された部分を含み得る。
【００９１】
図6は、非同期のシステムオンチップにおけるエネルギー効率認識型熱管理のための方法600の一実施形態を示す論理フローチャートである。図6の実施形態では、様々な処理コア222、224、226、228の各々の性能曲線は、監視モジュール114によって収集された実際の性能データに基づいて経験的に決定されてよく、またはいくつかの実施形態では、性能曲線は、各コアの性能スペックにより決まる先験的な曲線であってよい。
【００９２】
いくつかの実施形態では、様々な処理コア222、224、226、228の性能曲線を経験的に決定するために、監視モジュール114は、温度センサ157、ならびにコア222、224、226、228の電力消費を監視するために有用な様々な他の電圧センサまたは電流センサと通信していてよい。そのような実施形態では、モニタモジュール114によって収集されたデータは、以前の作業負荷配分と結合され、経験的な性能曲線へとコンパイルされ得ることは、当業者には認識されよう。経験的な性能曲線は、CPデータストア24に記憶され、エネルギー効率認識型熱管理アルゴリズムによって使用され得る。
【００９３】
ブロック605で開始し、モニタモジュール114は、たとえばあらかじめ決定された温度しきい値を上回る温度測定値など、熱イベントを、熱エネルギー生成を低減するためのトリガとして認識し得る。前に説明したように、モニタモジュール114は、そのような熱警報情報を、エネルギー効率認識型管理ソリューションの適用のために、EMモジュール101に提供し得る。
【００９４】
ブロック610で、EMモジュール101は、SoCにおける様々なヘテロジニアス処理構成要素に関連付けられた性能データについての問合せを行い得る。モニタモジュール114によってEMモジュール101に提供される動作温度に基づいて、関連する性能データについての問合せが行われ得る。性能データを使用して、EMモジュール101は、作業負荷を効率的に処理するそれらの相対的な能力に基づいて、処理構成要素のランキングを決定し得る。
【００９５】
ブロック615で、EMモジュール101は、あらかじめ決定された増分だけ、あまり効率的でない処理コアのうちの1つまたは複数に供給される電力の周波数を低減し得る。特に、周波数の低減が処理構成要素によって処理される作業負荷の量の低減と直接相関することを、当業者は認識する。
【００９６】
次に、決定ブロック620で、EMモジュール101は、モニタモジュール114とともに働いて、ブロック610および615をトリガした熱警報が解除されたかどうかを判断し得る。警報が解除された場合、すなわち、ブロック615で実施された周波数の低減が、警報を正常に解除する低減された熱エネルギー生成をもたらした場合、「はい」分岐に進み、方法600が戻る。EMモジュール101は、あまり効率的でない処理コアに供給された周波数の増加を許可し得る。しかしながら、ブロック615でとられたアクションの結果として、警報が解除されなかった場合、「いいえ」分岐はブロック610に戻り、電力周波数の漸進的低減のために、「新たな」エネルギー効率が最も低い処理構成要素が識別される。特に、「新たな」エネルギー効率が最も低い処理構成要素が、エネルギー効率が最も低い処理構成要素として以前識別された同じ処理構成要素であり得ることが理解されよう。ブロック610〜620のループは、熱警報が解除されるまで、エネルギー効率が最も低い処理構成要素に供給された電力の周波数を増分的に低減し続ける。
【００９７】
図7は、作業負荷再配分を介した同期のシステムオンチップにおけるエネルギー効率認識型熱管理のための方法700の一実施形態を示す論理フローチャートである。図7の実施形態では、様々な処理コア222、224、226、228の各々の性能曲線は、監視モジュール114によって収集された実際の性能データに基づいて経験的に決定されてよく、またはいくつかの実施形態では、性能曲線は、各コアの性能スペックにより決まる先験的な曲線であってよい。
【００９８】
いくつかの実施形態では、様々な処理コア222、224、226、228の性能曲線を経験的に決定するために、監視モジュール114は、温度センサ157、ならびにコア222、224、226、228の電力消費を監視するために有用な様々な他の電圧センサまたは電流センサと通信していてよい。そのような実施形態では、モニタモジュール114によって収集されたデータは、以前の作業負荷配分と結合され、経験的な性能曲線へとコンパイルされ得ることは、当業者には認識されよう。経験的な性能曲線は、CPデータストア24に記憶され、エネルギー効率認識型熱管理アルゴリズムによって使用され得る。
【００９９】
ブロック705で開始し、モニタモジュール114は、たとえばあらかじめ決定された温度しきい値を上回る温度測定値など、熱イベントを、熱エネルギー生成を低減するためのトリガとして認識し得る。前に説明したように、モニタモジュール114は、そのような熱警報情報を、エネルギー効率認識型管理ソリューションの適用のために、EMモジュール101に提供し得る。
【０１００】
ブロック710で、EMモジュール101は、SoCにおける様々なヘテロジニアス処理構成要素に関連付けられた性能データについての問合せを行い得る。モニタモジュール114によってEMモジュール101に提供される動作温度に基づいて、関連する性能データについての問合せが行われ得る。性能データを使用して、EMモジュール101は、作業負荷を効率的に処理するそれらの相対的な能力に基づいて、処理構成要素のランキングを決定し得る。
【０１０１】
ブロック715で、EMモジュール101は、あまり効率的でないプロセッサによって処理されているアクティブな作業負荷をより効率的なプロセッサに再配分し得る。特に、あまり効率的でないプロセッサおよびより効率的なプロセッサが共通の電源およびクロックジェネレータを共有する場合であっても、あまり効率的でないプロセッサからより効率的なプロセッサに作業負荷を移動することが、低減した電力量で作業負荷が処理されることにつながり得ることを、当業者は認識されよう。
【０１０２】
次に、決定ブロック720で、EMモジュール101は、モニタモジュール114とともに働いて、ブロック710および715をトリガした熱警報が解除されたかどうかを判断し得る。警報が解除された場合、すなわち、あまり効率的でないプロセッサからより効率的なプロセッサへの作業負荷の再配分が、警報を正常に解除する低減された熱エネルギー生成をもたらした場合、「はい」分岐に進み、方法700が戻る。EMモジュール101は、あまり効率的でない処理コアへの作業負荷の将来の配分または再配分を許可し得る。しかしながら、ブロック715でとられたアクションの結果として、警報が解除されなかった場合、「いいえ」分岐はブロック710に戻り、作業負荷の低減のために、「新たな」エネルギー効率が最も低い処理構成要素が識別される。特に、「新たな」エネルギー効率が最も低い処理構成要素が、エネルギー効率が最も低い処理構成要素として以前識別された同じ処理構成要素であり得ることが理解されよう。ブロック710〜720のループは、熱警報が解除されるまで、エネルギー効率が最も低い処理構成要素から作業負荷を移動させ続ける。
【０１０３】
図8は、待ち行列に入れられた作業負荷の配分を介した同期のシステムオンチップにおけるエネルギー効率認識型熱管理のための方法800の一実施形態を示す論理フローチャートである。図8の実施形態では、様々な処理コア222、224、226、228の各々の性能曲線は、監視モジュール114によって収集された実際の性能データに基づいて経験的に決定されてよく、またはいくつかの実施形態では、性能曲線は、各コアの性能スペックにより決まる先験的な曲線であってよい。
【０１０４】
いくつかの実施形態では、様々な処理コア222、224、226、228の性能曲線を経験的に決定するために、監視モジュール114は、温度センサ157、ならびにコア222、224、226、228の電力消費を監視するために有用な様々な他の電圧センサまたは電流センサと通信していてよい。そのような実施形態では、モニタモジュール114によって収集されたデータは、以前の作業負荷配分と結合され、経験的な性能曲線へとコンパイルされ得ることは、当業者には認識されよう。経験的な性能曲線は、CPデータストア24に記憶され、エネルギー効率認識型熱管理アルゴリズムによって使用され得る。
【０１０５】
ブロック805で開始し、モニタモジュール114は、たとえばあらかじめ決定された温度しきい値を上回る温度測定値など、熱イベントを、熱エネルギー生成を低減するためのトリガとして認識し得る。前に説明したように、モニタモジュール114は、そのような熱警報情報を、エネルギー効率認識型管理ソリューションの適用のために、EMモジュール101に提供し得る。
【０１０６】
ブロック810で、EMモジュール101は、SoCにおける様々なヘテロジニアス処理構成要素に関連付けられた性能データについての問合せを行い得る。モニタモジュール114によってEMモジュール101に提供される動作温度に基づいて、関連する性能データについての問合せが行われ得る。性能データを使用して、EMモジュール101は、作業負荷を効率的に処理するそれらの相対的な能力に基づいて、処理構成要素のランキングを決定し得る。
【０１０７】
ブロック815で、EMモジュール101は、作業負荷を最も効率的に処理するために最良に配置されたプロセッサに待ち行列に入れられた作業負荷を配分するようスケジューラ207に命令し得る。特に、作業負荷をより効率的なプロセッサに配分することが、低減した電力量で作業負荷が処理されることにつながり得ることを、当業者は認識されよう。
【０１０８】
特に、EMモジュール101は、モニタモジュール114とともに働いて、作業負荷の配分のための「新たな」より効率的な処理構成要素を識別し続けることができる。特に、「新たな」より効率的な処理構成要素が、より効率的な処理構成要素として以前識別された同じ処理構成要素であり得ることが理解されよう。このようにして、方法800のエネルギー効率認識型熱管理ソリューションは、新たな作業負荷が、最少の電力量を消費するために処理時に最良に配置された処理構成要素にスケジュールされることを、継続的に確実にすることができる。
【０１０９】
図9は、電力モード調整を介した同期のシステムオンチップにおけるエネルギー効率認識型熱管理のための方法900の一実施形態を示す論理フローチャートである。図9の実施形態では、様々な処理コア222、224、226、228の各々の性能曲線は、監視モジュール114によって収集された実際の性能データに基づいて経験的に決定されてよく、またはいくつかの実施形態では、性能曲線は、各コアの性能スペックにより決まる先験的な曲線であってよい。
【０１１０】
いくつかの実施形態では、様々な処理コア222、224、226、228の性能曲線を経験的に決定するために、監視モジュール114は、温度センサ157、ならびにコア222、224、226、228の電力消費を監視するために有用な様々な他の電圧センサまたは電流センサと通信していてよい。そのような実施形態では、モニタモジュール114によって収集されたデータは、以前の作業負荷配分と結合され、経験的な性能曲線へとコンパイルされ得ることは、当業者には認識されよう。経験的な性能曲線は、CPデータストア24に記憶され、エネルギー効率認識型熱管理アルゴリズムによって使用され得る。
【０１１１】
ブロック905で開始し、モニタモジュール114は、たとえばあらかじめ決定された温度しきい値を上回る温度測定値など、熱イベントを、熱エネルギー生成を低減するためのトリガとして認識し得る。前に説明したように、モニタモジュール114は、そのような熱警報情報を、エネルギー効率認識型管理ソリューションの適用のために、EMモジュール101に提供し得る。
【０１１２】
ブロック910で、EMモジュール101は、SoCにおける様々なヘテロジニアス処理構成要素に関連付けられた性能データについての問合せを行い得る。モニタモジュール114によってEMモジュール101に提供される動作温度に基づいて、関連する性能データについての問合せが行われ得る。性能データを使用して、EMモジュール101は、作業負荷を効率的に処理するそれらの相対的な能力に基づいて、処理構成要素のランキングを決定し得る。
【０１１３】
ブロック915で、EMモジュール101は、不必要な電力消費を低減しようとして、あまり効率的でないプロセッサの電力モードを調整し得る。EMモジュール101は、限定はしないが、所与のアイドル状態電力モードからアクティブ電力モードに移行しているプロセッサに関連付けられたレイテンシを含む様々なパラメータに基づいてその電力モードを調整させるために最良に配置されたプロセッサを識別し得ると想定される。特に、プロセッサの電力モードをアクティブモードから保持モードまたは電力縮小モードに調整することが、SoCにわたる電力消費の平均的な節約をもたらし得ることを、当業者は認識されよう。
【０１１４】
次に、決定ブロック920で、EMモジュール101は、モニタモジュール114とともに働いて、ブロック910および915をトリガした熱警報が解除されたかどうかを判断し得る。警報が解除された場合、すなわち、エネルギー効率が最も低いプロセッサの電力モードを調整することが警報を正常に解除する低減された熱エネルギー生成をもたらした場合、「はい」分岐に進み、方法900が戻る。EMモジュール101は、あまり効率的でない処理コアについてより高い電力消費モードに戻ることを許可し得る。しかしながら、ブロック915でとられたアクションの結果として、警報が解除されなかった場合、「いいえ」分岐はブロック910に戻り、電力モードの移行のために、「新たな」エネルギー効率が最も低い処理構成要素が識別される。特に、「新たな」エネルギー効率が最も低い処理構成要素が、エネルギー効率が最も低い処理構成要素として以前識別された同じ処理構成要素であり得ることが理解されよう。
【０１１５】
図10は、電力モードデューティサイクリングを介した同期のシステムオンチップにおけるエネルギー効率認識型熱管理のための方法1000の一実施形態を示す論理フローチャートである。図10の実施形態では、様々な処理コア222、224、226、228の各々の性能曲線は、監視モジュール114によって収集された実際の性能データに基づいて経験的に決定されてよく、またはいくつかの実施形態では、性能曲線は、各コアの性能スペックにより決まる先験的な曲線であってよい。
【０１１６】
いくつかの実施形態では、様々な処理コア222、224、226、228の性能曲線を経験的に決定するために、監視モジュール114は、温度センサ157、ならびにコア222、224、226、228の電力消費を監視するために有用な様々な他の電圧センサまたは電流センサと通信していてよい。そのような実施形態では、モニタモジュール114によって収集されたデータは、以前の作業負荷配分と結合され、経験的な性能曲線へとコンパイルされ得ることは、当業者には認識されよう。経験的な性能曲線は、CPデータストア24に記憶され、エネルギー効率認識型熱管理アルゴリズムによって使用され得る。
【０１１７】
ブロック1005で開始し、モニタモジュール114は、たとえばあらかじめ決定された温度しきい値を上回る温度測定値など、熱イベントを、熱エネルギー生成を低減するためのトリガとして認識し得る。前に説明したように、モニタモジュール114は、そのような熱警報情報を、エネルギー効率認識型管理ソリューションの適用のために、EMモジュール101に提供し得る。
【０１１８】
ブロック1010で、EMモジュール101は、SoCにおける様々なヘテロジニアス処理構成要素に関連付けられた性能データについての問合せを行い得る。モニタモジュール114によってEMモジュール101に提供される動作温度に基づいて、関連する性能データについての問合せが行われ得る。性能データを使用して、EMモジュール101は、作業負荷を効率的に処理するそれらの相対的な能力に基づいて、処理構成要素のランキングを決定し得る。
【０１１９】
ブロック1015で、EMモジュール101は、不必要な電力消費を低減しようとして、あまり効率的でないプロセッサの電力モードを循環させ得る。電力モードを循環させることによって、プロセッサは、たとえば、保持状態とアクティブ状態との間でトグルするなど、その様々な電力モードを移行することができる。ある時間期間の間、複数の低電力モードの各々で静止することによって、処理構成要素による平均電力消費が最適化され得る。EMモジュール101は、限定はしないが、所与のアイドル状態電力モードから別の電力モードに移行しているプロセッサに関連付けられたレイテンシを含む様々なパラメータに基づいてその電力モードを循環させるために最良に配置されたプロセッサを識別し得ると想定される。特に、プロセッサにその電力モードを循環させることが、サイクルプロセッサの処理能力を完全に犠牲にすることなく、SoCにわたる電力消費の平均的な節約をもたらし得ることを、当業者は認識されよう。
【０１２０】
次に、決定ブロック1020で、EMモジュール101は、モニタモジュール114とともに働いて、ブロック1010および1015をトリガした熱警報が解除されたかどうかを判断し得る。警報が解除された場合、すなわち、エネルギー効率が最も低いプロセッサの電力モードを循環させることが警報を正常に解除する低減された熱エネルギー生成をもたらした場合、「はい」分岐に進み、方法1000が戻る。EMモジュール101は、あまり効率的でない処理コアについて電力モードのデューティサイクルをやめることを許可し得る。しかしながら、ブロック1015でとられたアクションの結果として、警報が解除されなかった場合、「いいえ」分岐はブロック1010に戻り、電力モードの循環のために、「新たな」エネルギー効率が最も低い処理構成要素が識別される。特に、「新たな」エネルギー効率が最も低い処理構成要素が、エネルギー効率が最も低い処理構成要素として以前識別された同じ処理構成要素であり得ることが理解されよう。
【０１２１】
図11は、処理構成要素エネルギー効率レーティングの実行時検証のための方法1100の一実施形態を示す論理フローチャートである。エネルギー効率認識型熱管理ソリューションの例示的な実施形態に関して上述したように、様々なヘテロジニアス処理構成要素に関連付けられた性能データは、処理構成要素のうちのどれが、作業負荷を処理する際にエネルギー効率が最も低いかを判断するために使用され得る(処理構成要素に対する電力周波数が処理構成要素の処理能力と直接相関すると仮定すれば、エネルギー効率はMIPS/mWまたはMHz/mWで測定され得る)。性能データは、監視モジュール114によって収集された実際の性能データに基づいて経験的に決定されてよく、またはいくつかの実施形態では、性能曲線は、各コアの性能スペックによって決まる先験的な曲線であってよい。
【０１２２】
特に、処理構成要素が時間とともに消耗するにつれて、処理構成要素の性能仕様から導出される先験的な性能データは正確ではない、またはその精度を失う可能性がある。したがって、方法1100の実施形態は、エネルギー効率認識型熱管理ソリューションがエネルギー効率に関する決定を行うために性能データに依存する前に所与の処理コアに関連付けられた性能データの妥当性を検査しようとする。
【０１２３】
モニタモジュール114および/またはEMモジュール101は、チップ102の周りの電流センサおよび温度センサにアクセスし得るので、また、EMモジュール101は、CPデータストア24に記憶された、以前プロファイリングされた性能データについて問合せを行い得るので、方法1100の実施形態は、処理構成要素に関連付けられた記憶された性能データの精度を検査し、必要に応じて、それを更新するために使用され得る。関連の電流測定値および温度測定値は、サンプリングされ、処理構成要素またはサブシステムが予想された電流漏洩特性をアクティブに呈しているかどうかを判断するために、記憶された性能データと比較され得る。
【０１２４】
ブロック1105で、モニタモジュール114は、特定の処理構成要素に関連付けられた電流、動作温度、および動作点(たとえば、電力周波数設定MHz)を監視し得る。ブロック1110で、EMモジュール101は、ブロック1105でモニタモジュール114によって測定された動作温度および動作点に基づいて、記憶された性能データについて問合せを行い得る。記憶された性能データは、処理構成要素の性能仕様、動作点、および動作温度を鑑みて予想された電流レベルを含み得る。
【０１２５】
次に、ブロック1115で、EMモジュール101は、予想された電流漏洩を測定された電流漏洩と比較し得る。決定ブロック1120で、予想された電流漏洩が実際の測定された漏洩よりも大きい場合、「はい」分岐はブロック1140に進み、処理構成要素は、その最初の分類に対してより低い漏洩プロセッサと指定される。CPストア24内の処理構成要素に関連付けられた予想された電流漏洩は、実際の測定された電流漏洩を反映するために更新され得る。方法1100は戻る。
【０１２６】
決定ブロック1120に戻って、予想された電流漏洩が実際の測定された電流漏洩よりも大きくない場合、「いいえ」分岐は決定ブロック1125に進む。決定ブロック1125で、予想された電流漏洩が、許容できる統計的有意性の何らかの範囲内で、実際の測定された電流漏洩に実質的に等しい場合、「はい」分岐はブロック1135に進み、処理構成要素の分類が維持される。方法1100は戻る。
【０１２７】
決定ブロック1125で予想された電流漏洩が実際の測定された電流漏洩に実質的には等しくない場合、すなわち、予想された電流漏洩が実際の測定された電流漏洩よりも低い場合、「いいえ」分岐はブロック1130に進む。ブロック1130で、処理構成要素は、その最初の分類に対してより高い漏洩プロセッサと指定される。CPストア24内の処理構成要素に関連付けられた予想された電流漏洩は、実際の測定された電流漏洩を反映するために更新され得る。方法1100は戻る。
【０１２８】
有利には、処理構成要素の相対的な漏洩分類を検証し、更新することによって、エネルギー効率認識型熱管理ソリューションは、どの処理構成要素が、熱軽減手段を適用する前の他の処理構成要素よりもより効率的であるか、またはあまり効率的でないかに関する評価を行う能力をより備え得る。
【０１２９】
本発明が説明されたように機能するために、本明細書において説明されるプロセスまたはプロセスフローにおけるいくつかのステップが、他のステップに先行するのは当然である。しかしながら、そのような順序またはシーケンスが本発明の機能を変えない場合、本発明は、説明されたステップの順序に限定されない。すなわち、本発明の範囲および趣旨から逸脱することなく、いくつかのステップは、他のステップの前に実行される場合があるか、後に実行される場合があるか、または他のステップと並行して(実質的に同時に)実行される場合があることを認識されたい。場合によっては、本発明から逸脱することなく、いくつかのステップは、省略される場合があるか、または実行されない場合がある。さらに、「後に」、「次いで」、「次に」などの言葉は、ステップの順序を限定することを意図していない。これらの言葉は単に、例示的な方法の説明を通して読者を導くために使用される。
【０１３０】
さらに、プログラミングに関する当業者は、たとえば、本明細書における流れ図および関連する説明に基づいて、難なく、開示される発明を実施するコンピュータコードを書くことができるか、または実施するのに適したハードウェアおよび/もしくは回路を特定することができる。したがって、特定の1つのセットのプログラムコード命令または詳細なハードウェアデバイスの開示は、本発明の作製方法および使用方法を十分に理解するのに必要であるとは見なされない。特許請求されるコンピュータ実施のプロセスの本発明の機能性については、上述の説明において、様々な処理フローを示し得る図面と一緒に、より詳細に説明されている。
【０１３１】
1つまたは複数の例示的な態様では、説明される機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにおいて実装することができる。ソフトウェアにおいて実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶される場合があるか、またはコンピュータ可読媒体上に送信される場合がある。コンピュータ可読媒体は、コンピュータ記憶媒体と、コンピュータプログラムの1つの場所から別の場所への転送を容易する任意の媒体を含む通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされる場合がある任意の利用可能な媒体であってもよい。例であって、限定はしないが、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または命令またはデータ構造の形態で所望のプログラムコードを搬送または記憶するために使用することができ、コンピュータによってアクセスすることができる任意の他の媒体を含むことができる。
【０１３２】
また、任意の接続部も、厳密にはコンピュータ可読媒体と呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(「DSL」)、または、赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合には、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または、赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。
【０１３３】
ディスク(disk)およびディスク(disc)は、本明細書において使用されるときに、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生するが、ディスク(disc)は、レーザを用いてデータを光学的に再生する。上記のものの組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
【０１３４】
したがって、選択された態様が図示され詳細に説明されてきたが、以下の特許請求の範囲によって規定されるように、本発明の趣旨および範囲から逸脱することなく、態様において種々の置換および改変が行われる場合があることは理解されよう。
【符号の説明】
【０１３５】
24  コア性能データストア
26  DCVSモジュール
100  ポータブルコンピューティングデバイス(「PCD」)
101  効率マネージャ(「EM」)モジュール
102  オンチップシステム
103  ADCコントローラ
110  CPU
110  デジタル信号プロセッサ
112  メモリ
114  モニタモジュール
126  アナログ信号プロセッサ
128  ディスプレイコントローラ
130  タッチスクリーンコントローラ
132  タッチスクリーンディスプレイ
134  ビデオデコーダ
135  グラフィックプロセッサ
136  ビデオ増幅器
138  ビデオポート
140  ユニバーサルシリアルバス(「USB」)コントローラ
142  USBポート
146  加入者識別モジュール(SIM)カード
148  デジタルカメラ
150  ステレオオーディオコーデック
152  オーディオ増幅器
154  第1のステレオスピーカ
156  第2のステレオスピーカ
157  温度センサ
158  マイクロフォン増幅器
160  マイクロフォン
162  周波数変調(FM)ラジオチューナ
164  FMアンテナ
166  ステレオヘッドフォン
168  無線周波数(RF)トランシーバ
170  RFスイッチ
172  RFアンテナ
173  デジタルアナログコントローラ
174  キーパッド
176  マイクロフォン付きモノヘッドセット
177  縮小命令セットコンピュータ(「RISC」)命令セットマシン(「ARM」)
178  バイブレータデバイス
180  電源
207  スケジューラモジュール
208  オペレーティングシステム(「O/S」)モジュール
209  位相ロックループ(「PLL」)
211  バス
222  コア
224  コア
226  コア
228  コア
230  コア
250  開始論理
260  管理論理
270  エネルギー効率認識型熱管理インターフェース論理
280  アプリケーションストア
290  ファイルシステム
296  プログラムストア
【図１Ａ】
2017517057.tif 000003
【図１Ｂ】
2017517057.tif 000004
【図１Ｃ】
2017517057.tif 000005
【図１Ｄ】
2017517057.tif 000006
【図２Ａ】
2017517057.tif 000007
【図２Ｂ】
2017517057.tif 000008
【図３】
2017517057.tif 000009
【図４】
2017517057.tif 000010
【図５Ａ】
2017517057.tif 000011
【図５Ｂ】
2017517057.tif 000012
【図６】
2017517057.tif 000013
【図７】
2017517057.tif 000014
【図８】
2017517057.tif 000015
【図９】
2017517057.tif 000016
【図１０】
2017517057.tif 000017
【図１１】
2017517057.tif 000018
【手続補正書】
【提出日】平成28年10月12日(2016.10.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
マルチプロセッサシステムオンチップ(「SoC」)を有するポータブルコンピューティングデバイスにおける熱エネルギー生成を管理するための方法であって、
前記マルチプロセッサSoCにおける複数の個々の処理構成要素の各々に関連付けられた温度測定値およびクロックジェネレータ周波数を監視するステップと、
前記処理構成要素の各々に一意に関連付けられた電流引き込み測定値を監視するステップであり、前記電流測定値が、各処理構成要素の処理効率を示す、ステップと、
前記ポータブルコンピューティングデバイス内の熱パラメータを監視するステップと、
前記監視された熱パラメータがあらかじめ決定されたしきい値を超えたことに応答して、警報を生成するステップと、
前記警報に応答して、前記処理構成要素の各々に関連付けられた前記監視された温度測定値およびクロックジェネレータ周波数をサンプリングするステップと、
前記警報に応答して、前記処理構成要素の各々に一意に関連付けられた前記監視された電流引き込み測定値をサンプリングするステップと、
前記サンプリングされた温度およびクロックジェネレータ周波数測定値に基づいて、各処理構成要素についての性能データの問合せを行うステップであり、前記性能データが、各処理構成要素の、所与の温度およびクロックジェネレータ周波数で動作しているときの予想された電流引き込みを含む、ステップと、
処理構成要素ごとに、前記予想された電流引き込みを、前記サンプリングされた電流引き込みと比較するステップと、
前記比較に基づいて、各処理構成要素の前記効率を分類するステップと、
前記効率の分類に基づいて、エネルギー効率が最も低い処理構成要素を識別するステップと、
前記エネルギー効率が最も低い処理構成要素への入力を調整するステップであり、前記エネルギー効率が最も低い処理構成要素による電力消費を低減するように動作するステップと
を含む方法。
【請求項２】
前記調整された入力が、電源電圧およびクロックジェネレータ周波数に関連付けられる、請求項1に記載の方法。
【請求項３】
前記調整された入力が、作業負荷配分に関連付けられる、請求項1に記載の方法。
【請求項４】
前記エネルギー効率が最も低い処理構成要素に関連付けられた前記性能データ内に含まれる前記予想された電流引き込みを前記サンプリングされた電流引き込みに更新するステップをさらに含む、請求項1に記載の方法。
【請求項５】
前記予想された電流引き込みが、前記サンプリングされた電流引き込みよりも大きい、請求項1に記載の方法。
【請求項６】
前記予想された電流引き込みが、前記サンプリングされた電流引き込みよりも小さい、請求項1に記載の方法。
【請求項７】
前記熱パラメータが、前記PCDの温度、PoPメモリデバイス温度、および前記PCD内の構成要素の接合温度のうちの1つに関連付けられる、請求項1に記載の方法。
【請求項８】
前記ポータブルコンピューティングデバイスがワイヤレス電話の形態である、請求項1に記載の方法。
【請求項９】
マルチプロセッサシステムオンチップ(「SoC」)を有するポータブルコンピューティングデバイスにおける熱エネルギー生成を管理するためのコンピュータシステムであって、
前記マルチプロセッサSoCにおける複数の個々の処理構成要素の各々に関連付けられた温度測定値およびクロックジェネレータ周波数を監視することと、
前記処理構成要素の各々に一意に関連付けられた電流引き込み測定値を監視することであり、前記電流測定値が、各処理構成要素の処理効率を示す、監視することと、
前記ポータブルコンピューティングデバイス内の熱パラメータを監視することと、
前記監視された熱パラメータがあらかじめ決定されたしきい値を超えたことに応答して、警報を生成することと、
前記警報に応答して、前記処理構成要素の各々に関連付けられた前記監視された温度測定値およびクロックジェネレータ周波数をサンプリングすることと、
前記警報に応答して、前記処理構成要素の各々に一意に関連付けられた前記監視された電流引き込み測定値をサンプリングすることと
を行うためのモニタモジュールと、
前記サンプリングされた温度およびクロックジェネレータ周波数測定値に基づいて、各処理構成要素についての性能データの問合せを行うことであり、前記性能データが、各処理構成要素の、所与の温度およびクロックジェネレータ周波数で動作しているときの予想された電流引き込みを含む、問合せを行うことと、
処理構成要素ごとに、前記予想された電流引き込みを、前記サンプリングされた電流引き込みと比較することと、
前記比較に基づいて、各処理構成要素の前記効率を分類することと、
前記効率の分類に基づいて、エネルギー効率が最も低い処理構成要素を識別することと、
前記エネルギー効率が最も低い処理構成要素への入力を調整することであり、前記エネルギー効率が最も低い処理構成要素による電力消費を低減するように動作する、調整することと
を行うための効率マネージャ(「EM」)モジュールと
を含むコンピュータシステム。
【請求項１０】
前記調整された入力が、電源電圧およびクロックジェネレータ周波数に関連付けられる、請求項9に記載のコンピュータシステム。
【請求項１１】
前記調整された入力が、作業負荷配分に関連付けられる、請求項9に記載のコンピュータシステム。
【請求項１２】
前記EMモジュールが、さらに、前記エネルギー効率が最も低い処理構成要素に関連付けられた前記性能データ内に含まれる前記予想された電流引き込みを前記サンプリングされた電流引き込みに更新するように動作可能である、請求項9に記載のコンピュータシステム。
【請求項１３】
前記予想された電流引き込みが、前記サンプリングされた電流引き込みよりも大きい、請求項9に記載のコンピュータシステム。
【請求項１４】
前記予想された電流引き込みが、前記サンプリングされた電流引き込みよりも小さい、請求項9に記載のコンピュータシステム。
【請求項１５】
前記熱パラメータが、前記PCDの温度、PoPメモリデバイス温度、および前記PCD内の構成要素の接合温度のうちの1つに関連付けられる、請求項9に記載のコンピュータシステム。
【請求項１６】
マルチプロセッサシステムオンチップ(「SoC」)を有するポータブルコンピューティングデバイスにおける熱エネルギー生成を管理するためのコンピュータシステムであって、
前記マルチプロセッサSoCにおける複数の個々の処理構成要素の各々に関連付けられた温度測定値およびクロックジェネレータ周波数を監視するための手段と、
前記処理構成要素の各々に一意に関連付けられた電流引き込み測定値を監視するための手段であり、前記電流測定値が、各処理構成要素の処理効率を示す、手段と、
前記ポータブルコンピューティングデバイス内の熱パラメータを監視するための手段と、
前記監視された熱パラメータがあらかじめ決定されたしきい値を超えたことに応答して、警報を生成するための手段と、
前記警報に応答して、前記処理構成要素の各々に関連付けられた前記監視された温度測定値およびクロックジェネレータ周波数をサンプリングするための手段と、
前記警報に応答して、前記処理構成要素の各々に一意に関連付けられた前記監視された電流引き込み測定値をサンプリングするための手段と、
前記サンプリングされた温度およびクロックジェネレータ周波数測定値に基づいて、各処理構成要素についての性能データの問合せを行うための手段であり、前記性能データが、各処理構成要素の、所与の温度およびクロックジェネレータ周波数で動作しているときの予想された電流引き込みを含む、手段と、
処理構成要素ごとに、前記予想された電流引き込みを、前記サンプリングされた電流引き込みと比較するための手段と、
前記比較に基づいて、各処理構成要素の前記効率を分類するための手段と、
前記効率の分類に基づいて、エネルギー効率が最も低い処理構成要素を識別するために手段と、
前記エネルギー効率が最も低い処理構成要素への入力を調整するための手段であり、前記エネルギー効率が最も低い処理構成要素による電力消費を低減するように動作する、手段と
を含むコンピュータシステム。
【請求項１７】
前記調整された入力が、電源電圧およびクロックジェネレータ周波数に関連付けられる、請求項16に記載のコンピュータシステム。
【請求項１８】
前記調整された入力が、作業負荷配分に関連付けられる、請求項16に記載のコンピュータシステム。
【請求項１９】
前記エネルギー効率が最も低い処理構成要素に関連付けられた前記性能データ内に含まれる前記予想された電流引き込みを前記サンプリングされた電流引き込みに更新するための手段をさらに含む、請求項16に記載のコンピュータシステム。
【請求項２０】
前記予想された電流引き込みが、前記サンプリングされた電流引き込みよりも大きい、請求項16に記載のコンピュータシステム。
【請求項２１】
前記予想された電流引き込みが、前記サンプリングされた電流引き込みよりも小さい、請求項16に記載のコンピュータシステム。
【請求項２２】
前記熱パラメータが、前記PCDの温度、PoPメモリデバイス温度、および前記PCD内の構成要素の接合温度のうちの1つに関連付けられる、請求項16に記載のコンピュータシステム。
【請求項２３】
前記ポータブルコンピューティングデバイスがワイヤレス電話の形態である、請求項16に記載のコンピュータシステム。
【請求項２４】
コンピュータ可読プログラムコードを記憶したコンピュータ使用可能記憶媒体であって、前記コンピュータ可読プログラムコードが、マルチプロセッサシステムオンチップ(「SoC」)を有するポータブルコンピューティングデバイスにおける熱エネルギー生成を管理するための方法を実施するために実行されるように適合され、前記方法が、
前記マルチプロセッサSoCにおける複数の個々の処理構成要素の各々に関連付けられた温度測定値およびクロックジェネレータ周波数を監視するステップと、
前記処理構成要素の各々に一意に関連付けられた電流引き込み測定値を監視するステップであり、前記電流測定値が、各処理構成要素の処理効率を示す、ステップと、
前記ポータブルコンピューティングデバイス内の熱パラメータを監視するステップと、
前記監視された熱パラメータがあらかじめ決定されたしきい値を超えたことに応答して、警報を生成するステップと、
前記警報に応答して、前記処理構成要素の各々に関連付けられた前記監視された温度測定値およびクロックジェネレータ周波数をサンプリングするステップと、
前記警報に応答して、前記処理構成要素の各々に一意に関連付けられた前記監視された電流引き込み測定値をサンプリングするステップと、
前記サンプリングされた温度およびクロックジェネレータ周波数測定値に基づいて、各処理構成要素についての性能データの問合せを行うステップであり、前記性能データが、各処理構成要素の、所与の温度およびクロックジェネレータ周波数で動作しているときの予想された電流引き込みを含む、ステップと、
処理構成要素ごとに、前記予想された電流引き込みを、前記サンプリングされた電流引き込みと比較するステップと、
前記比較に基づいて、各処理構成要素の前記効率を分類するステップと、
前記効率の分類に基づいて、エネルギー効率が最も低い処理構成要素を識別するステップと、
前記エネルギー効率が最も低い処理構成要素への入力を調整するステップであり、前記エネルギー効率が最も低い処理構成要素による電力消費を低減するように動作するステップと
を含む、コンピュータ使用可能記憶媒体。
【請求項２５】
前記調整された入力が、電源電圧およびクロックジェネレータ周波数に関連付けられる、請求項24に記載のコンピュータ使用可能記憶媒体。
【請求項２６】
前記調整された入力が、作業負荷配分に関連付けられる、請求項24に記載のコンピュータ使用可能記憶媒体。
【請求項２７】
前記方法が、
前記エネルギー効率が最も低い処理構成要素に関連付けられた前記性能データ内に含まれる前記予想された電流引き込みを前記サンプリングされた電流引き込みに更新するステップをさらに含む、請求項24に記載のコンピュータ使用可能記憶媒体。
【請求項２８】
前記予想された電流引き込みが、前記サンプリングされた電流引き込みよりも大きい、請求項24に記載のコンピュータ使用可能記憶媒体。
【請求項２９】
前記予想された電流引き込みが、前記サンプリングされた電流引き込みよりも小さい、請求項24に記載のコンピュータ使用可能記憶媒体。
【請求項３０】
前記熱パラメータが、前記PCDの温度、PoPメモリデバイス温度、および前記PCD内の構成要素の接合温度のうちの1つに関連付けられる、請求項24に記載のコンピュータ使用可能記憶媒体。
【国際調査報告】
2017517057.tif 000019
2017517057.tif 000020