(57)【特許請求の範囲】
【請求項１】
チップを含むポータブルコンピューティングデバイスの1つまたは複数の熱ポリシーを管理するための方法であって、
少なくとも第1の所定の熱状態と第2の所定の熱状態を定義するステップであって、各々の所定の熱状態が、夫々の温度範囲および夫々の熱ポリシーと関連付けられており、
前記第1の所定の熱状態と関連する第1の温度範囲の最高の温度が、前記第2の所定の熱状態と関連する第2の温度範囲の最低の温度以下であり、
熱ポリシーが、1つまたは複数の熱軽減技法を含み、
熱軽減技法の1つまたは複数による熱ポリシーの適用が、前記ポータブルコンピューティングデバイスの利用可能な機能を減らし、
前記第1の所定の熱状態と関連する第1の熱ポリシーが、前記ポータブルコンピューティングデバイスの機能を、初期レベルに対して減らされた第1のレベルへと減らし、前記第2の所定の熱状態と関連する第2の熱ポリシーが、前記ポータブルコンピューティングデバイスの機能を、前記第1のレベルに対して減らされた第2のレベルへと減らす、ステップと、
1つまたは複数の熱センサから温度測定値を受け取ることによって、前記ポータブルコンピューティングデバイスの温度を監視するステップと、
最近受け取られた温度測定結果を、前に受け取られた温度測定結果ならびに前記第1の所定の熱状態および前記第2の所定の熱状態と関連する前記夫々の温度範囲と比較することによって、前記第1の所定の熱状態および前記第2の所定の熱状態のうちの1つに前記ポータブルコンピューティングデバイスが到達したかどうかを判定するステップであって、前記第1の所定の熱状態および前記第2の所定の熱状態のうちの1つに到達することが、前記最近受け取られた温度測定結果が、前記前に受け取られた温度測定結果に対する所定の大きさの温度変化を示すことを認識することによって判定される、ステップと、
前記第1の所定の熱状態に前記ポータブルコンピューティングデバイスが到達した場合に、前記第1の所定の熱状態に関連する前記夫々の熱ポリシーに含まれる1つまたは複数の第1の熱軽減技法を開始して、前記ポータブルコンピューティングデバイスの前記温度を減らし、機能を前記第1のレベルに減らすステップと、
前記ポータブルコンピューティングデバイスが前記第2の所定の熱状態に達した場合には、前記第2の所定の熱状態に関連する前記夫々の熱ポリシーに含まれる1つまたは複数の第2の熱軽減技法を開始して、前記ポータブルコンピューティングデバイスの前記温度を減らし、機能を前記第2のレベルに減らすステップと、
前記第1の所定の熱状態および前記第2の所定の熱状態の少なくとも1つに到達すると、温度測定結果が受け取られる頻度を上げるステップと
を含む、方法。
【請求項２】
前記1つまたは複数の熱センサが、内部のオンチップ熱センサと外部のオフチップ熱センサの少なくとも1つを含む、請求項1に記載の方法。
【請求項３】
熱センサを、ハードウェアに隣接させて、前記ポータブルコンピューティングデバイス内で前記ハードウェアと同じ面上に配置し、前記熱センサと前記ハードウェアの関係に基づいて、夫々の熱ポリシーに対して、1つまたは複数の熱軽減技法を前記ハードウェアに割り当てるステップをさらに含む、請求項2に記載の方法。
【請求項４】
チップを含むポータブルコンピューティングデバイスの1つまたは複数の熱ポリシーを管理するためのコンピュータシステムであって、
1つまたは複数の熱センサから温度測定値を受け取ることによって、前記ポータブルコンピューティングデバイスの温度を監視する
ように動作可能な監視モジュールと、
少なくとも第1の所定の熱状態と第2の所定の熱状態を定義し、各々の所定の熱状態が、夫々の温度範囲および夫々の熱ポリシーと関連付けられており、
前記第1の所定の熱状態と関連する第1の温度範囲の最高の温度が、前記第2の所定の熱状態と関連する第2の温度範囲の最低の温度以下であり、
熱ポリシーが、1つまたは複数の熱軽減技法を含み、
熱軽減技法の1つまたは複数による熱ポリシーの適用が、前記ポータブルコンピューティングデバイスの利用可能な機能を減らし、
前記第1の所定の熱状態と関連する第1の熱ポリシーが、前記ポータブルコンピューティングデバイスの機能を、初期レベルに対して減らされた第1のレベルへと減らし、前記第2の所定の熱状態と関連する第2の熱ポリシーが、前記ポータブルコンピューティングデバイスの機能を、前記第1のレベルに対して減らされた第2のレベルへと減らし、
最近受け取られた温度測定結果を、前に受け取られた温度測定結果ならびに前記第1の所定の熱状態および前記第2の所定の熱状態と関連する前記夫々の温度範囲と比較することによって、前記第1の所定の熱状態および前記第2の所定の熱状態のうちの1つに前記ポータブルコンピューティングデバイスが到達したかどうかを判定し、前記第1の所定の熱状態および前記第2の所定の熱状態のうちの1つに到達することが、前記最近受け取られた温度測定結果が、前記前に受け取られた温度測定結果に対する所定の大きさの温度変化を示すことを認識することによって判定され、
前記第1の所定の熱状態に前記ポータブルコンピューティングデバイスが到達した場合に、前記第1の所定の熱状態に関連する前記夫々の熱ポリシーに含まれる1つまたは複数の第1の熱軽減技法を開始して、前記ポータブルコンピューティングデバイスの前記温度を減らし、機能を前記第1のレベルに減らし、
前記ポータブルコンピューティングデバイスが前記第2の所定の熱状態に達した場合には、前記第2の所定の熱状態に関連する前記夫々の熱ポリシーに含まれる1つまたは複数の第2の熱軽減技法を開始して、前記ポータブルコンピューティングデバイスの前記温度を減らし、機能を前記第2のレベルに減らす
ように動作可能な熱ポリシーマネージャとを含み、
前記監視モジュールが、前記第1の所定の熱状態および前記第2の所定の熱状態の少なくとも1つに到達すると、温度測定結果が受け取られる頻度を上げるようにさらに動作可能である、コンピュータシステム。
【請求項５】
前記1つまたは複数の熱センサが、内部のオンチップ熱センサと外部のオフチップ熱センサの少なくとも1つを含む、請求項4に記載のシステム。
【請求項６】
前記熱ポリシーマネージャがさらに、前記熱センサとハードウェアの関係に基づいて、夫々の熱ポリシーに対して、1つまたは複数の熱軽減技法をハードウェアに割り当てるように動作可能であり、前記熱センサが、前記ハードウェアに隣接して、前記ポータブルコンピューティングデバイス内で前記ハードウェアと同じ面上に配置される、請求項4に記載のシステム。
【請求項７】
チップを含むポータブルコンピューティングデバイスの1つまたは複数の熱ポリシーを管理するためのコンピュータシステムであって、
少なくとも第1の所定の熱状態と第2の所定の熱状態を定義するための手段であって、各々の所定の熱状態が、夫々の温度範囲および夫々の熱ポリシーと関連付けられており、
前記第1の所定の熱状態と関連する第1の温度範囲の最高の温度が、前記第2の所定の熱状態と関連する第2の温度範囲の最低の温度以下であり、
熱ポリシーが、1つまたは複数の熱軽減技法を含み、
熱軽減技法の1つまたは複数による熱ポリシーの適用が、前記ポータブルコンピューティングデバイスの利用可能な機能を減らし、
前記第1の所定の熱状態と関連する第1の熱ポリシーが、前記ポータブルコンピューティングデバイスの機能を、初期レベルに対して減らされた第1のレベルへと減らし、前記第2の所定の熱状態と関連する第2の熱ポリシーが、前記ポータブルコンピューティングデバイスの機能を、前記第1のレベルに対して減らされた第2のレベルへと減らす、手段と、
1つまたは複数の熱センサから温度測定値を受け取ることによって、前記ポータブルコンピューティングデバイスの温度を監視するための手段と、
最近受け取られた温度測定結果を、前に受け取られた温度測定結果ならびに前記第1の所定の熱状態および前記第2の所定の熱状態と関連する前記温度範囲と比較することによって、前記第1の所定の熱状態および前記第2の所定の熱状態のうちの1つに前記ポータブルコンピューティングデバイスが到達したかどうかを判定するための手段であって、前記第1の所定の熱状態および前記第2の所定の熱状態のうちの1つに到達することが、前記最近受け取られた温度測定結果が、前記前に受け取られた温度測定結果に対する所定の大きさの温度変化を示すことを認識することによって判定される、手段と、
前記第1の所定の熱状態に前記ポータブルコンピューティングデバイスが到達した場合に、前記第1の所定の熱状態に関連する前記夫々の熱ポリシーに含まれる1つまたは複数の第1の熱軽減技法を開始して、前記ポータブルコンピューティングデバイスの前記温度を減らし、機能を前記第1のレベルに減らすための手段と、
前記ポータブルコンピューティングデバイスが前記第2の所定の熱状態に達した場合には、前記第2の所定の熱状態に関連する前記夫々の熱ポリシーに含まれる1つまたは複数の第2の熱軽減技法を開始して、前記ポータブルコンピューティングデバイスの前記温度を減らし、機能を前記第2のレベルに減らすための手段と、
前記第1の所定の熱状態および前記第2の所定の熱状態の少なくとも1つに到達すると、温度測定結果が受け取られる頻度を上げるための手段と
を含む、コンピュータシステム。
【請求項８】
前記1つまたは複数の熱センサが、内部のオンチップ熱センサと外部のオフチップ熱センサの少なくとも1つを含む、請求項7に記載のシステム。
【請求項９】
前記熱センサとハードウェアの関係に基づいて、夫々の熱ポリシーに対して、1つまたは複数の熱軽減技法をハードウェアに割り当てるための手段をさらに含み、前記熱センサが、前記ハードウェアに隣接して、前記ポータブルコンピューティングデバイス内で前記ハードウェアと同じ面上に配置される、請求項8に記載のシステム。
【請求項１０】
コンピュータ可読プログラムコードを含むコンピュータプログラムであって、前記コンピュータ可読プログラムコードが、ポータブルコンピューティングデバイスの熱ポリシーを管理するための方法を実施するために実行されるように適合され、前記方法が、
少なくとも第1の所定の熱状態と第2の所定の熱状態を定義するステップであって、各々の所定の熱状態が、夫々の温度範囲および夫々の熱ポリシーと関連付けられており、
前記第1の所定の熱状態と関連する第1の温度範囲の最高の温度が、第2の熱状態と関連する第2の温度範囲の最低の温度以下であり、
熱ポリシーが、1つまたは複数の熱軽減技法を含み、
熱軽減技法の1つまたは複数による熱ポリシーの適用が、前記ポータブルコンピューティングデバイスの利用可能な機能を減らし、
前記第1の所定の熱状態と関連する第1の熱ポリシーが、前記ポータブルコンピューティングデバイスの機能を、初期レベルに対して減らされた第1のレベルへと減らし、前記第2の所定の熱状態と関連する第2の熱ポリシーが、前記ポータブルコンピューティングデバイスの機能を、前記第1のレベルに対して減らされた第2のレベルへと減らす、ステップと、
1つまたは複数の熱センサから温度測定値を受け取ることによって、前記ポータブルコンピューティングデバイスの温度を監視するステップと、
最近受け取られた温度測定結果を、前に受け取られた温度測定結果ならびに前記第1の所定の熱状態および前記第2の所定の熱状態と関連する前記夫々の温度範囲と比較することによって、前記第1の所定の熱状態および前記第2の所定の熱状態のうちの1つに前記ポータブルコンピューティングデバイスが到達したかどうかを判定するステップであって、前記第1の所定の熱状態および前記第2の所定の熱状態のうちの1つに到達することが、前記最近受け取られた温度測定結果が、前記前に受け取られた温度測定結果に対する所定の大きさの温度変化を示すことを認識することによって判定される、ステップと、
前記第1の所定の熱状態に前記ポータブルコンピューティングデバイスが到達した場合に、前記第1の所定の熱状態に関連する前記夫々の熱ポリシーに含まれる1つまたは複数の第1の熱軽減技法を開始して、前記ポータブルコンピューティングデバイスの前記温度を減らし、機能を前記第1のレベルに減らすステップと、
前記ポータブルコンピューティングデバイスが前記第2の所定の熱状態に達した場合には、前記第2の所定の熱状態に関連する前記夫々の熱ポリシーに含まれる1つまたは複数の第2の熱軽減技法を開始して、前記ポータブルコンピューティングデバイスの前記温度を減らし、機能を前記第2のレベルに減らすステップと、
前記第1の所定の熱状態および前記第2の所定の熱状態の少なくとも1つに到達すると、温度測定結果が受け取られる頻度を上げるステップと
を含む、コンピュータプログラム。
【請求項１１】
前記1つまたは複数の熱センサが、内部のオンチップ熱センサと外部のオフチップ熱センサの少なくとも1つを含む、請求項10に記載のコンピュータプログラム。
【請求項１２】
前記方法を実施する前記プログラムコードが、前記熱センサとハードウェアの関係に基づいて、夫々の熱ポリシーに対して、1つまたは複数の熱軽減技法をハードウェアに割り当てステップをさらに含み、前記熱センサが、前記ハードウェアに隣接して、前記ポータブルコンピューティングデバイス内で前記ハードウェアと同じ面上に配置される、請求項11に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
2011年1月6日に出願され出願番号第61/430,261号が割り当てられた、「METHOD AND SYSTEM FOR MANAGING THERMAL POLICIES OF A PORTABLE COMPUTING DEVICE」という表題の、米国仮特許出願に対する、米国特許法第119条(e)に基づく優先権が主張される。本出願の内容全体が、参照により本明細書に組み込まれる。
【背景技術】
【０００２】
ポータブルコンピューティングデバイス(PCD)は、個人レベルおよび専門家レベルで人々に必要なものになりつつある。これらのデバイスは、携帯電話、携帯情報端末(PDA)、ポータブルゲームコンソール、パームトップコンピュータ、および他のポータブル電子デバイスを含み得る。
【０００３】
PCDの1つの特有の点として、ラップトップコンピュータおよびデスクトップコンピュータのようなより大型のコンピューティングデバイスで見出されることが多い、ファンのような能動的な冷却デバイスを通常は有さないということがある。ファンを使う代わりに、PCDは、2つ以上の能動的かつ熱を発生させるデバイスが互いに近接して配置されないような、電子パッケージングの空間的な配置に依存し得る。2つ以上の熱デバイスが互いに近接して配置されなければ、そうしたデバイスの動作が、互いに、またそれらの周囲にあり得る任意の他の電子装置に、悪影響を与えることはない。多くのPCDはまた、それぞれのPCDを形成する電子装置の間で熱エネルギーを管理するためのヒートシンクのような、受動的な冷却デバイスに依存し得る。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、電子パッケージングの空間的な配置および、ヒートシンクのような受動的な冷却デバイスは、PCDが危機的な温度に達するのを防ぐのには、十分適していないことがある。そのような危機的な熱的温度により、それぞれのPCD内の電子装置に対して恒久的な損傷が発生し得る。現在は、PCDが危機的な温度に近づくと、PCDを冷却するために、熱エネルギーを発生させる電子装置の大半を停止するように、オペレーティングシステムが設計されている。恒久的な損傷を引き起こし得る危機的な温度を回避するには、電子装置を停止することは有効であり得るが、そのような極端な対策は、PCDの性能に直接影響を与え、そのような対策がとられた時に機能的にPCDを実用に耐えないものにし得る。
【０００５】
したがって、当技術分野で必要とされることは、PCDが、エンドユーザのために性能および機能を維持しつつ、電子装置を冷却できるようにする、1つまたは複数の熱ポリシーを管理するための方法およびシステムである。
【課題を解決するための手段】
【０００６】
ポータブルコンピューティングデバイス(PCD)の1つまたは複数の熱ポリシーを管理するための方法およびシステムは、内部熱センサおよび外部熱センサによって、ポータブルコンピューティングデバイスの温度を監視するステップを含む。温度の変化が少なくとも1つの熱センサによって検出されると、熱ポリシーマネージャが、熱センサによって温度測定値が検出される頻度を、上げることができる。熱ポリシーマネージャはまた、熱センサの1つまたは複数によって検出されたようなポータブルコンピューティングデバイスの現在の温度が、1つまたは複数の所定の熱状態の中に入るかどうかを判定することができる。各々の熱状態は、熱軽減技法の固有のセットを割り当てられ得る。熱軽減技法の各セットは、互いに異なり得る。熱軽減技法のセットは、技法の程度の点で異なり得るので、PCDの性能に影響を与える。
【０００７】
図中、別段に規定されていない限り、同様の参照番号は、様々な図の全体を通じて、同様の部分を指す。「102A」または「102B」のような文字指定を伴う参照番号について、文字指定は、同じ図に存在する2つの同様の部分または要素を区別し得る。参照番号の文字指定は、すべての図において同じ参照番号を有するすべての部分を参照番号が包含することが意図される場合には、省略されることがある。
【図面の簡単な説明】
【０００８】
【図１】ポータブルコンピューティングデバイス(PCD)の一実施形態を示す機能ブロック図である。
【図２Ａ】図1に示されるチップのための、ハードウェアの例示的な空間配置を示す機能ブロックである。
【図２Ｂ】動的電圧周波数スケーリング(「DVFS」)アルゴリズムをサポートするための、図1のPCDの例示的なソフトウェアアーキテクチャを示す概略図である。
【図２Ｃ】2つのDVFSアルゴリズムに対する例示的な周波数の値を列挙する、第1の表である。
【図２Ｄ】2つのDVFSアルゴリズムに対する例示的な周波数と電圧のペアを列挙する、第2の表である。
【図３】図1のPCDにおいて熱ポリシーマネージャによって追跡される様々な熱ポリシー状態を示す、例示的な状態図である。
【図４】熱ポリシーマネージャによって適用され命令され得る、例示的な熱軽減技法を示す図である。
【図５】温度の、時間および対応する熱ポリシー状態との、例示的なグラフを示す図である。
【図６Ａ】1つまたは複数の熱ポリシーを管理するための方法を示す、論理的なフローチャートである。
【図６Ｂ】1つまたは複数の熱ポリシーを管理するための方法を示す、論理的なフローチャートである。
【図７】DVFS熱軽減技法を適用するためのサブメッソドまたはサブルーチンを示す、論理的なフローチャートである。
【図８Ａ】4コアマルチコアプロセッサと、マルチコアプロセッサによって空間的に管理され得る異なる作業負荷との概略図である。
【図８Ｂ】空間的な作業負荷の移動による熱軽減技法を適用するためのサブメッソドまたはサブルーチンを示す、論理的なフローチャートである。
【発明を実施するための形態】
【０００９】
「例示的な」という語は、「例、実例、または具体例としての役割を果たすこと」を意味するように本明細書において用いられている。「例示的」であると本明細書で説明されるいずれの態様も、必ずしも他の態様よりも好ましい、または有利であると解釈されるわけではない。
【００１０】
本明細書では、「アプリケーション」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチのような、実行可能なコンテンツを有するファイルも含み得る。加えて、本明細書で言及する「アプリケーション」は、開かれる必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなど、本質的に実行可能ではないファイルを含むこともある。
【００１１】
「コンテンツ」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチのような、実行可能なコンテンツを有するファイルも含み得る。加えて、本明細書で言及する「コンテンツ」は、開かれる必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなど、本質的に実行可能ではないファイルを含むこともある。
【００１２】
本明細書で使用される場合、「コンポーネント」、「データベース」、「モジュール」、「システム」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、実行中のソフトウェアを問わず、コンピュータ関連のエンティティを指すことが意図されている。たとえばコンポーネントは、プロセッサ上で作動しているプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラムおよび/またはコンピュータであってよいが、これらであることに限定されない。例を挙げると、コンピューティングデバイス上で作動しているアプリケーションとコンピューティングデバイスの両方がコンポーネントであり得る。1つまたは複数のコンポーネントは、プロセスおよび/または実行スレッド内に存在してよく、1つのコンポーネントは1つのコンピュータに局在化していてよく、かつ/または2つ以上のコンピュータ間に分散していてもよい。加えて、これらのコンポーネントは、様々なデータ構造を記憶している様々なコンピュータ可読媒体から実行することができる。コンポーネントは、1つまたは複数のデータパケット(たとえば、信号によって、ローカルシステム、分散システムにおいて別のコンポーネントと対話し、かつ/またはインターネットなどのネットワークにわたって他のシステムと対話する、1つのコンポーネントからのデータ)を有する信号に従うなどして、ローカルプロセスおよび/またはリモートプロセスにより通信することができる。
【００１３】
本明細書では、「通信デバイス」、「ワイヤレスデバイス」、「ワイヤレス電話」、「ワイヤレス通信デバイス」、および「ワイヤレスハンドセット」という用語は交換可能に用いられる。第3世代(「3G」)および第4世代(「4G」)のワイヤレス技術が出現したことによって、利用可能な帯域が拡大されたので、より多くのワイヤレス機能を備えたより携帯が容易なコンピューティングデバイスが利用可能になっている。
【００１４】
本明細書では、「ポータブルコンピューティングデバイス」(「PCD」)という用語は、バッテリーのような限られた容量の電源で動作する任意のデバイスを説明するために使用される。何十年もの間バッテリー駆動のPCDが使用されてきたが、第3世代(「3G」)ワイヤレス技術の出現とともにもたらされた充電式バッテリーの技術的進歩は、複数の機能を有する多数のPCDを可能にした。したがって、PCDは、とりわけ、携帯電話、衛星電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、スマートブックまたはリーダー、メディアプレーヤ、上述したデバイスの組合せ、およびワイヤレス接続を有するラップトップコンピュータであってよい。
【００１５】
図1: PCD 100の熱ポリシー管理要素
図1を参照すると、この図は、熱状態を監視し熱ポリシーを管理するための方法およびシステムを実現するための、ワイヤレス電話の形態の、PCD100の例示的で非限定的な態様の機能ブロック図である。図示のように、PCD 100は、互いに結合されたマルチコア中央処理装置(「CPU」)110およびアナログシグナルプロセッサ126を含むオンチップシステム102を含む。当業者によって理解されるように、CPU 110は、第0のコア222、第1のコア224、および第Nのコア230を含み得る。当業者によって理解されるように、CPU 110の代わりに、デジタルシグナルプロセッサ(「DSP」)も利用され得る。
【００１６】
CPU 110は、1つまたは複数の内部のオンチップ熱センサ157A、さらには、1つまたは複数の外部のオフチップ熱センサ157Bにも結合され得る。オンチップ熱センサ157Aは、垂直のPNP構造に基づき通常は相補型金属酸化膜半導体(「CMOS」)超大規模集積(「VLSI」)回路に専用である、絶対温度に比例する(「PTAT」)1つまたは複数の温度センサ（温度センサ）を含み得る。オフチップ熱センサ157Bは、1つまたは複数のサーミスタを含み得る。熱センサ157は、アナログデジタルコンバータ(「ADC」)コントローラ103(図2A参照)によってデジタル信号に変換される、電圧降下を発生させ得る。しかし、本発明の範囲から逸脱することなく、他の種類の熱センサ157が利用されてもよい。
【００１７】
熱センサ157は、ADCコントローラ103により制御され監視されるのに加えて、1つまたは複数の熱ポリシーマネージャモジュール101によっても制御され監視され得る。熱ポリシーマネージャモジュールは、CPU 110によって実行されるソフトウェアを含み得る。しかし、本発明の範囲から逸脱することなく、熱ポリシーマネージャモジュール101はまた、ハードウェアおよび/またはファームウェアから形成されてもよい。
【００１８】
一般に、熱ポリシーマネージャモジュール101は、PCD 100が、熱条件および/または熱負荷を管理し、高水準の機能を維持しつつ、たとえば危機的な温度に達することなどの不都合な熱条件を受けるのを回避するのを助け得る、1つまたは複数の熱軽減技法を含む、熱ポリシーを監視し適用することを担い得る。
【００１９】
図1は、PCD 100が監視モジュール114を含み得ることも示している。監視モジュール114は、オンチップシステム102全体に分散する複数の動作するセンサ(たとえば熱センサ157)およびPCD 100のCPU 110、さらには熱ポリシーマネージャモジュール101と、通信する。以下でより詳しく説明されるように、熱ポリシーマネージャモジュール101は、監視モジュール114とともに動作して、不都合な熱条件を識別し、1つまたは複数の熱軽減技法を含む熱ポリシーを適用することができる。
【００２０】
ある特定の態様では、本明細書で説明する方法ステップのうちの1つまたは複数は、1つまたは複数の熱ポリシーマネージャモジュール101を形成するメモリ112に記憶された、実行可能命令およびパラメータによって実施され得る。熱ポリシーマネージャモジュールを形成するこれらの命令は、本明細書で説明される方法を実行するために、ADCコントローラ103に加えて、CPU 110、アナログシグナルプロセッサ126、または別のプロセッサによって実行され得る。さらに、プロセッサ110、126、メモリ112、メモリ112に記憶された命令、またはそれらの組合せは、本明細書で説明する方法ステップのうちの1つまたは複数を実行するための手段として動作し得る。
【００２１】
図1: PCD 100の他の要素
図1に示されるように、ディスプレイコントローラ128およびタッチスクリーンコントローラ130が、デジタルシグナルプロセッサ110に結合される。オンチップシステム102の外部にあるタッチスクリーンディスプレイ132が、ディスプレイコントローラ128およびタッチスクリーンコントローラ130に結合される。
【００２２】
図1は、ビデオデコーダ134を含むポータブルコンピューティングデバイス(PCD)のある実施形態を示す、概略図である。ビデオデコーダ134は、マルチコア中央処理装置(「CPU」)110に結合される。ビデオ増幅器136が、ビデオデコーダ134およびタッチスクリーンディスプレイ132に結合される。ビデオポート138が、ビデオ増幅器136に結合される。図1に示すように、ユニバーサルシリアルバス(「USB」)コントローラ140がCPU110に結合される。また、USBポート142がUSBコントローラ140に結合される。メモリ112および加入者識別モジュール(SIM)カード146も、CPU 110に結合され得る。さらに、図1に示すように、デジタルカメラ148がCPU 110に結合され得る。例示的な態様では、デジタルカメラ148は、電荷結合デバイス(「CCD」)カメラまたは相補型金属酸化膜半導体(「CMOS」)カメラである。
【００２３】
図1にさらに示すように、ステレオオーディオコーデック150が、アナログシグナルプロセッサ126に結合され得る。さらに、オーディオ増幅器152が、ステレオオーディオコーデック150に結合され得る。例示的な態様では、第1のステレオスピーカー154および第2のステレオスピーカー156が、オーディオ増幅器152に結合される。図1は、マイクロフォン増幅器158もステレオオーディオコーデック150に結合され得ることを、示している。加えて、マイクロフォン160がマイクロフォン増幅器158に結合され得る。ある特定の態様では、周波数変調(「FM」)ラジオチューナー162が、ステレオオーディオコーデック150に結合され得る。また、FMアンテナ164がFMラジオチューナー162に結合される。さらに、ステレオヘッドフォン166がステレオオーディオコーデック150に結合され得る。
【００２４】
図1は、高周波(「RF」)送受信機168がアナログシグナルプロセッサ126に結合され得ることを、さらに示している。RFスイッチ170が、RF送受信機168およびRFアンテナ172に結合され得る。図1に示されるように、キーパッド174がアナログシグナルプロセッサ126に結合され得る。また、マイクロフォンを備えたモノヘッドセット176が、アナログシグナルプロセッサ126に結合され得る。さらに、バイブレータデバイス178が、アナログシグナルプロセッサ126に結合され得る。図1は、たとえばバッテリーなどの電源180がオンチップシステム102に結合されることも、示している。ある特定の態様では、電源は、充電式DCバッテリー、または交流(「AC」)電源に接続されたAC-DC変換器から導かれるDC電源を含む。
【００２５】
図1に示されるように、タッチスクリーンディスプレイ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つまたは複数の指示または信号を受信することもできることを理解されたい。
【００２６】
図2Aは、図1に示されるチップ102のための、ハードウェアの例示的な空間配置を示す機能ブロック図である。この例示的な実施形態によれば、アプリケーションCPU 110がチップ102の遠く左側の領域に配置され、一方モデムCPU 168/126がチップ102の遠く右側の領域に配置される。アプリケーションCPU 110は、第0のコア222、第1のコア224、および第Nのコア230を含む、マルチコアプロセッサを含み得る。
【００２７】
アプリケーションCPU 110は、熱ポリシーマネージャモジュール101Aを実行していてよく(ソフトウェアで具現化される場合)、または、熱ポリシーマネージャモジュール101Bを含んでよい(ハードウェアおよび/またはファームウェアで具現化される場合)。アプリケーションCPU 110は、オペレーティングシステム(「O/S」)モジュール207および監視モジュール114を含むように、さらに例示される。監視モジュール114についてのさらなる詳細は、図2Bに関して以下で説明される。
【００２８】
アプリケーション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は、PCD 100の熱条件を監視するために、様々な位置に配置され得る。
【００３０】
たとえば、第1の内部熱センサ157A1は、アプリケーションCPU 110とモデムCPU 168/126との間に、内部メモリ112に隣接して、チップ102の上部の中心領域に配置され得る。第2の内部熱センサ157A2は、モデムCPU 168/126の下の、チップ102の右側領域に配置され得る。この第2の内部熱センサ157A2はまた、進化した縮小命令セットコンピュータ(「RISC」)命令セットマシン(「ARM」) 177と第1のグラフィックプロセッサ134Aとの間にも配置され得る。デジタルアナログコントローラ(「DAC」)173は、第2の内部熱センサ157A2とモデムCPU 168/126との間に配置され得る。
【００３１】
第3の内部熱センサ157A3は、第2のグラフィックプロセッサ134Bと第3のグラフィックプロセッサ134Cの間の、チップ102の遠く右側の領域に配置され得る。第4の内部熱センサ157A4は、チップ102の遠く右側の領域に、かつ第4のグラフィックプロセッサ134Dの下に配置され得る。第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のグラフィックプロセッサ134Cおよび第4のグラフィックプロセッサ134Dを含み得るチップ102の右下4分の1の領域に隣接して配置され得る。
【００３３】
図2Aに示されるハードウェア(または他のハードウェアリソース)の様々な他の空間的な配置が、本発明の範囲から逸脱することなく実現され得ることを、当業者は理解するだろう。図2Aは、さらなる1つの例示的な空間配置を示し、図2Aに示される例示的な空間配置により決まる熱状態を、主要な熱ポリシーマネージャモジュール101Aと熱ポリシーマネージャ101Bを有するADCコントローラ103とがどのように管理できるかを示す。
【００３４】
熱センサ157は、CPU 110のようなハードウェアに隣接して、かつポータブルコンピューティングデバイス100内のハードウェアと同じ面上に配置され得る。たとえば、第1の内部熱センサ157A1を参照されたい。熱ポリシーマネージャ101Aは、第1の内部熱センサ157A1に対応するCPU 110のような、ある特定の熱センサ157Aと関連付けられるハードウェアに固有の、1つまたは複数の特有の熱軽減技法を割り当てることができる。1つの例示的な実施形態では、CPU 110および対応する熱センサ157A1に割り当てられる熱軽減技法は、第3の熱センサ157A3と関連付けられる第3のグラフィックプロセッサ134Cに割り当てられる熱軽減技法と比較して、異なり得る。他の例示的な実施形態では、ハードウェアに適用される熱軽減技法は、ポータブルコンピューティングデバイス100全体にわたって、均一または同一であってよい。
【００３５】
図2Bは、動的電圧周波数スケーリング(「DVFS」)アルゴリズムをサポートするための、図1および図2AのPCD 100の例示的なソフトウェアアーキテクチャを示す概略図である。DVFSアルゴリズムは、ある熱条件が以下で詳しく説明されるように満たされる場合に、熱ポリシーマネージャ101によってトリガされ得る少なくとも1つの熱軽減技法を形成することができ、またはその一部であり得る。
【００３６】
図2Bに示されるように、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は、上記のコンポーネントの間の適切な通信を可能にするために、アドレス、制御、および/またはデータ接続を含み得る。
【００４１】
図2Bに示されるように、PCD 100によって使われる論理がソフトウェアで実装される場合、開始論理250、管理論理260、動的電圧周波数スケーリング(「DVFS」)インターフェース論理270、アプリケーションストア280内のアプリケーション、およびファイルシステム290の一部のうちの1つまたは複数を、何らかのコンピュータ関連のシステムまたは方法によって、またはそれと関連して使用するために、何らかのコンピュータ可読媒体に記憶できることに留意されたい。
【００４２】
当業者が理解するように、高性能と低消費電力を実現するプロセッサに対する需要により、プロセッサ設計において、動的電圧周波数スケーリング(「DVFS」)のような様々な電力管理技法が使用されるようになった。DVFSは、消費電力と性能との間のトレードオフを可能にする。プロセッサ110および126(図1)は、各プロセッサのクロック周波数を、電圧の対応する調整によって調整できるようにすることによって、DVFSを利用するように設計され得る。動作電圧を低減すると、それに比例して消費電力が節減される。DVFS対応のプロセッサ110、126の主要な問題は、性能と電力節減との間のバランスをどのように制御するかということである。
【００４３】
この文書の文脈では、コンピュータ可読媒体は、コンピュータ関連のシステムまたは方法によって、またはそれと関連して使用するために、コンピュータプログラムおよびデータを格納または記憶することができる、電子式、磁気式、光学式、または他の物理デバイスまたは手段である。様々な論理素子およびデータストアは、たとえばコンピュータベースのシステム、プロセッサを含むシステム、または命令実行システム、装置、もしくはデバイスから命令をフェッチし、命令を実行することができる他のシステムのような、命令実行システム、装置、またはデバイスによって、またはそれと関連して使用するために、任意のコンピュータ可読媒体に組み込まれ得る。この文書の文脈では、「コンピュータ可読媒体」は、命令実行システム、装置、またはデバイスによって、またはそれと関連して使用するために、プログラムを記憶、通信、伝搬、または移送することができる任意の手段であってよい。
【００４４】
コンピュータ可読媒体は、限定はされないがたとえば、電子式、磁気式、光学式、電磁式、赤外線式、または半導体の、システム、装置、デバイス、または伝搬媒体であってよい。コンピュータ可読媒体のより具体的な例(非網羅的なリスト)には、1つまたは複数の配線を有する電気的接続(電子式)、ポータブルコンピュータディスケット(磁気式)、ランダムアクセスメモリ(RAM)(電子式)、読取り専用メモリ(ROM)(電子式)、消去可能プログラマブル読取り専用メモリ(EPROM、EEPROM、またはフラッシュメモリ)(電子式)、光ファイバー(光学式)、および携帯式コンパクトディスク読取り専用メモリ(CD-ROM)(光学式)が含まれよう。プログラムは、たとえば紙または他の媒体の光学走査を介して、電子的に記録され、次いで、コンパイルされ、解釈され、または場合によっては、必要に応じて好適な方法で処理され、次いでコンピュータメモリに記憶され得るので、コンピュータ可読媒体は、プログラムが印刷される紙または別の適切な媒体でさえあり得ることに留意されたい。
【００４５】
ハードウェアの実装形態では、開始論理250、管理論理260、および場合によってはDVFSインターフェース論理270は、各々当技術分野でよく知られている以下の技術、すなわち、データ信号に論理関数を実装するための論理ゲートを有する個別の論理回路、適切な組合せの論理ゲートを有する特定用途向け集積回路(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つまたは複数の実行可能命令を含む。一実施形態では、DVFSインターフェース論理270は、USBポート142を介して受け取られる製造業者の入力とともに動作することができる。これらの入力は、プログラムストア296から削除されるべき、またはプログラムストア296に追加されるべき、1つまたは複数のプログラムを含み得る。あるいは、入力は、プログラムストア296中のプログラムのうちの1つまたは複数に対する編集または変更を含み得る。その上、入力は、開始論理250と管理論理260の一方または両方に対する1つまたは複数の変更、または全体の置換を特定することができる。例として、入力は、受信信号電力が特定の閾値を下回ると、RF送受信機168におけるすべての性能スケーリングを中断するようPCD 100に命令する、管理論理260に対する変更を含み得る。さらなる例として、入力は、ビデオコーデック134がアクティブであるとき、所望のプログラムを適用するようPCD 100に命令する、管理論理260に対する変更を含み得る。
【００５１】
DVFSインターフェース論理270によって、製造業者は、PCD 100の定義された動作状態の下で、エンドユーザの体験を制御可能に設定し、調整することができる。メモリ112がフラッシュメモリであるとき、開始論理250、管理論理260、DVFSインターフェース論理270、アプリケーションストア280中のアプリケーションプログラム、または組込みファイルシステム290における情報のうちの1つまたは複数を、編集し、置き換え、または場合によっては修正することができる。いくつかの実施形態では、DVFSインターフェース論理270によって、PCD 100のエンドユーザまたは操作者は、開始論理250、管理論理260、アプリケーションストア280中のアプリケーション、および組込みファイルシステム290中の情報を検索し、位置を特定し、修正し、または置き換えることができる。操作者は、結果として生じるインターフェースを使用して、PCD 100の次の開始時に実装される変更を加えることができる。あるいは、操作者は、結果として生じるインターフェースを使用して、ランタイム中に実装される変更を加えることができる。
【００５２】
組込みファイルシステム290は、階層的に構成されたDVFSストア292を含む。これに関して、ファイルシステム290は、PCD 100が用いる様々なパラメータ298および性能スケーリングアルゴリズム297の、構成および管理のための情報を格納するための、全体のファイルシステム容量の中で確保された部分を含み得る。図2に示されるように、DVFSストア292はコアストア294を含み、コアストア294はプログラムストア296を含み、プログラムストア296は1つまたは複数のDVFSプログラムを含む。各プログラムは、それぞれの性能スケーリングアルゴリズムと、特定のアルゴリズムと関連付けられるパラメータのセットとの組合せとして、定義される。DVFSストア292の階層的な性質のさらなる例として、ファイルのセットのある特定のメンバーは、\startup\core0\algorithm\parametersetというパスによって位置を定められ特定され得る。この例では、プログラムは、パラメータセットに格納された情報の内容と組み合わせて、アルゴリズムによって特定される。たとえば、「典型的」として知られる従来の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の性質を決定づけると予想される。
【００５６】
図2Cは、DVFSインターフェース論理270によって選択され得る、3つ以上の異なるDVFSアルゴリズムの例示的な周波数を列挙する、第1の表267である。これらの例示的な値はスロットリングを示し、スロットリングにおいて、1つまたは複数のプロセッサ110および/またはコアの活動が、熱負荷を軽減するために減らされる。この例示的な第1の表267に従って、マルチコアCPU 110の各コアは、実行されている現在のDVFSアルゴリズムに応じて、固有の最大クロック周波数値を割り当てられ得る。表627の第1行に記載されている第1のDVFSアルゴリズムでは、コア0は、600MHzの最大クロック周波数を割り当てられ得るが、コア1は、650MHzの最大クロック周波数を割り当てられてよく、第Nのコアは、720MHzの最大クロック周波数を割り当てられてよい。表627の第2行に記載されている第2のDVFSアルゴリズムでは、コア0は、550MHzの最大クロック周波数を割り当てられ得るが、コア1は、600MHzの最大クロック周波数を割り当てられ、第Nのコアは、650MHzの最大クロック周波数を割り当てられてよい。表627の第3行に記載されている第3のDVFSアルゴリズムでは、コア0は、450MHzの最大クロック周波数を割り当てられ得るが、コア1は、500MHzの最大クロック周波数を割り当てられ、第Nのコアは、550MHzの最大クロック周波数を割り当てられてよい。クロック周波数に対するこれらの制限は、PCD 100の現在の熱状態に応じて、熱ポリシーマネージャ101によって選択され得る。
【００５７】
図2Dは、3つのDVFSアルゴリズムに対する例示的な周波数と電圧のペアを列挙する、第2の表277である。この表277は、第1の表267のように、1つまたは複数のプロセッサ110および/または対応するコアのスロットリングを示す。表277の第1行に記載されているDVFSアルゴリズムでは、コア0は、600MHzの最大クロック周波数を割り当てられ得るが、その最大電圧は1.3ボルト(「V」)に制限され得る。コア1は、500MHzの最大クロック周波数および対応する2.0Vの最大電圧を割り当てられ得る。コアNは、550MHzの最大クロック周波数および対応する2.0Vの最大電圧を割り当てられ得る。表277の第2行に記載されている第2のDVFSアルゴリズムでは、コア0は、550MHzの最大クロック周波数を割り当てられ得るが、最大電圧は1.0Vの値を割り当てられ得る。コア1は、450MHzの最大クロック周波数および対応する1.5Vの最大電圧を割り当てられ得る。
【００５８】
第2行について、コアNは、500MHzの最大クロック周波数および対応する1.9Vの最大電圧を割り当てられ得る。第3行について、コア0は、450MHzの最大クロック周波数を割り当てられ得るが、最大電圧は0.9Vの値を割り当てられ、コア1は、350MHzの最大クロック周波数および対応する1.0Vの最大電圧を割り当てられ得る。コアNは、400MHzの最大クロック周波数および1.3Vの対応する最大電圧を割り当てられ得る。熱ポリシーマネージャ101は、PCD 100の現在の熱状態に応じて、表277に列挙された周波数と電圧の様々なペアを選択することができる。
【００５９】
図3は、熱ポリシーマネージャ101によって追跡される様々な熱ポリシー状態305、310、315、および320を示す、例示的な状態図300である。4つの状態のみが示されるが、これらの4つ以外の他の状態も生成され得ることを、当業者は理解するだろう。同様に、本発明から逸脱することなく、より少数のポリシーが利用されてもよいことを、当業者は理解する。さらに、当業者が理解するように、追加の副状態またはサブポリシーが、各状態305、310、315、および320に追加され得る。
【００６０】
第1のポリシー状態305は、所定のまたは普通の方式で熱ポリシーマネージャ101が熱センサ157を監視するのみである、「正常」な熱状態を含み得る。この例示的な第1の正常な状態305では、通常PCD 100には、ハードウェアおよび/またはソフトウェアコンポーネントのいずれかの障害を引き起こし得る危機的な温度に達することのような、不都合な熱条件を受ける危険性またはリスクがない。この例示的な状態では、熱センサ157は、50℃以下の温度を検出または追跡していてよい。しかし、本発明の範囲から逸脱することなく、第1の正常な状態305に対して、他の温度範囲が確立されてもよいことが、当業者には理解されよう。
【００６１】
第2のポリシー状態310は、熱センサ157が調査される頻度、または、熱センサ157が自身の温度状態の報告を熱ポリシーマネージャ101に送る頻度を熱ポリシーマネージャ101が上げることができる、「サービス品質」すなわち「QoS」状態を含み得る。熱センサ157が調査される頻度、または熱センサ157が自身の温度状態の報告を送る頻度を上げることは、1つまたは複数の熱センサ157が高い温度を示す領域と直接接触していないという状況を、熱ポリシーマネージャ101が補償するのを助ける。温度測定値が受け取られる頻度は、高い温度領域と特定の熱センサ157との間に存在し得る、異なる材料の熱定数を補償するように調整され得る。
【００６２】
温度の大幅な変化が第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のさらなる詳細が、図4に関連して以下で説明される。
【００６６】
第3の熱状態315は、熱ポリシーマネージャ101が、熱センサ157からの割り込みの監視および/または受け取りを続けつつ、上で説明された第2のQoS状態310よりも強力な熱軽減技法を要求および/または適用する、「重度の」状態を含み得る。これは、この状態では、熱ポリシーマネージャ101が、操作者から見たサービス品質にあまり配慮しないことを意味する。
【００６７】
この第3の熱状態315では、熱ポリシーマネージャ101は、PCD 100の温度を下げるために、熱負荷を軽減または低減することにより配慮している。この状態315では、PCD 100は、操作者により容易に知覚または観測される、性能の低下を有し得る。第3の重度の熱状態315および、熱ポリシーマネージャ101によって適用またはトリガされる対応する熱軽減技法が、図4に関連して以下でさらに詳しく説明される。この第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は、図4に関連して以下でさらに詳しく説明される。
【００７１】
熱ポリシー管理システムは、図3に示される4つの熱状態305、310、315、および320には限定されない。特定のPCD 100に応じて、追加のまたはより少数の熱状態が、本発明の範囲から逸脱することなく提供されてよい。つまり、追加の熱状態が、特定のPCD 100の機能および動作を改善し得る一方、他の状況では、より少数の熱状態が、固有のハードウェアおよび/またはソフトウェアを有する特定のPCD 100に対して好適であり得ることを、当業者は認識する。
【００７２】
図4は、熱ポリシーマネージャ101によって適用または命令され得るとともにPCD 100の具体的な熱状態に依存する、例示的な熱軽減技法を示す図である。前に述べられたように、第1の熱状態305は、CPU 110によって、かつADCコントローラ103によって部分的に実行されている熱ポリシーマネージャ101が、図2Aに示されるような1つまたは複数の熱センサ157からの、温度についての1つまたは複数の状態報告を監視し、調査し、または受け取ることができる、「正常」状態を含み得る。この第1の熱状態305では、PCD 100には、PCD 100内の1つまたは複数のソフトウェアおよび/またはハードウェアコンポーネントを損傷させ得る危機的な温度に達する、危険性またはリスクは全くなくてよい。通常、この第1の熱状態では、熱ポリシーマネージャ101は、熱軽減技法の開始を何ら適用しておらず、または要求していないので、PCD 100は、熱負荷を考慮せず、その最大の能力と最高の性能で動作している。この第1の熱状態305の温度範囲は、約50℃以下の範囲を含み得る。この第1の熱状態305では、熱ポリシーマネージャ101は、ADCコントローラ103内に存在し得るが、すべての他の状態のための主要な熱ポリシーマネージャ101は、CPU110に存在しまたはCPU110によって実行され得る。ある代替的かつ例示的な実施形態では、熱ポリシーマネージャ101は、CPU 110内にしか存在しなくてよい。
【００７３】
QoS状態310とも呼ばれる第2の熱状態310では、その状態が開始されると、熱ポリシーマネージャ101が、PCD 100の現在の温度に関する熱センサ157からの割り込みの、(第1の熱状態305よりも)高速な監視、調査、および/または受け取りを始めることができる。この例示的な第2の熱状態310では、熱ポリシーマネージャ101は、図2Aの監視モジュール114および/またはオペレーティングシステム(「O/S」)モジュール207を起動または要求して、PCD 100の操作者によって知覚されるようなサービス品質の低下をほとんどまたは全く伴わず、高い性能を維持する目的で、熱軽減技法の適用を開始することができる。
【００７４】
図4に示されるこの例示的な第2の熱状態310によれば、熱ポリシーマネージャ101は、監視モジュール114および/またはO/Sモジュール207に要求して、限定はされないが、(1)負荷のスケーリングおよび/または(2)負荷の動的なスケーリングおよび(3)空間的な負荷の移動のような、熱軽減技法を開始することができる。負荷のスケーリングは、図2Cの第1の表267で与えられる値のような、DVFSアルゴリズムで許容される最大クロック周波数の調整または「スケーリング」を含み得る。そのような調整は、最大限の熱放散を制限し得る。この熱負荷軽減技法はまた、ある特定の固有のPCD 100に使われる標準的なDVFSの表と一致するように、電圧を調整することを伴い得る。
【００７５】
負荷の動的なスケーリングの熱負荷軽減技法は、N個のアプリケーションプロセッサコア222、224、および230の1つおよび/またはすべてのスケーリングを含み得る。この熱負荷軽減技法は、特定のコア222、224、または230のDVFSアルゴリズムに対して許容される、最大クロック周波数を設定することを含み得る。DVFSアルゴリズムは、図2Dに示される第2の表277のような電圧/周波数ペアの表を使って、処理能力をスケーリングする。
【００７６】
1つのそのような動的なスケーリング技法は、許容される最大周波数を制限することによって、100万命令毎秒(MIPS)を制限することを含む。このようにして、熱ポリシーマネージャ101は、コア222、224、および230の電力消費を効果的に制限しており、利用可能な能力(MIPS)を制限している。熱ポリシーマネージャ101は、N個のコア222、224、230を一緒に制限すると決めることができ、または、他のコア222、224、230が制約のない方式で動作するのを許与しつつ、どのコア222、224、230が機能を削られるかを選択し決めることができる。熱ポリシーマネージャ101、監視モジュール114、および/またはO/Sモジュール207は、どのコア222、224、230を制御すべきかについての決定を、熱センサ157から受け取られたデータ、またはソフトウェアアプリケーションの要件、および/または最善努力の予測に基づいて、行うことができる。この第2の熱状態の温度範囲は、約50℃から約80℃の範囲を含み得る。
【００７７】
空間的な負荷移動という熱軽減技法は、マルチコアプロセッサシステム内での、コアのアクティブ化および非アクティブ化を含む。N個の複数のコアが存在する場合、各コアは、最大でN-1個のコアを使って、作業またはコアの性能が最大限になった状態で負荷をかけられており、そして熱センサ157が発熱の問題を示すと、冷却デバイスとして機能する非アクティブなコアの位置が移動され得る。各コアは、所定のパターンで、または熱測定結果によって表されるパターンで、コアを休止状態にさせることによって、効果的に冷却され得る。MIPSホールは、コアを冷却するための数秒の間、コアの周りに事実上移動される。このようにして、数GHzの処理能力がPCD 100に対して利用可能にされ得るが、それでも、負荷を転々と移動させることによって、シリコンダイが冷却される。空間的な負荷移動のさらなる詳細は、図8A〜図8Bに関連して以下で説明される。
【００７８】
重度の熱状態315としても知られる図4の第3の熱状態315をここで参照すると、熱ポリシーマネージャ101は、熱センサ157からの割り込みの連続的な監視、調査、または受け取りを開始できるので、温度は、第2のより低温の熱状態310と比較して、より連続的に/頻繁に感知される。この例示的な熱状態315では、熱ポリシーマネージャ101は、監視モジュール114および/またはO/Sモジュール207が、PCD 100の操作者によって観測される知覚できる可能性のある性能の低下を伴う、(第2の熱状態310よりも)強力な熱軽減技法および/または追加の熱軽減技法を適用することを、適用または要求することができる。
【００７９】
この例示的な第3の熱状態315によれば、熱ポリシーマネージャ101は、増幅器、プロセッサ、先進の受信機ハードウェアなどのような、1つまたは複数のハードウェアデバイスに対する、電力の低減を引き起こし得る。
【００８０】
熱ポリシーマネージャ101はまた、アクティブなデバイスを非接続状態にして、アクティブなデバイスを接続状態にするために、空間的な方式で、様々なハードウェアデバイスの間で作業負荷を移動させることができる。この第3の重度の熱状態315の熱軽減技法は、第2のサービス品質熱状態310に関して上で説明された技法と同一であり得る。しかし、これらの同一の熱軽減技法は、より強力な方式で適用され得る。
【００８１】
たとえば、DVFSパラメータを調整する時、熱ポリシーマネージャ101は、これらのパラメータがより大幅に調整されること、たとえば、第2の熱状態310と比較して大幅に低い電圧および/または周波数を実現することを、要求することができる。これらのより低い電圧および/または周波数は、性能を低下させ得る特定のアプリケーションプログラムをサポートするために推奨されるものよりも、低くてよい。
【００８２】
図4の第4の危機的な状態320をここで参照すると、熱ポリシーマネージャ101は、すべての不可欠ではないハードウェアおよび/またはソフトウェアモジュールの停止を開始することができ、またはそれを行うように監視モジュール114および/またはO/Sモジュール207に要求することができる。
【００８３】
「不可欠ではない」ハードウェアおよび/またはソフトウェアモジュールは、特定のPCD 100の各々の種類によって異なり得る。1つの例示的な実施形態によれば、すべての不可欠ではないハードウェアおよび/またはソフトウェアモジュールは、緊急の911通話機能および全地球測定衛星(「GPS」)機能以外の、すべてを含み得る。このことは、この第4の危機的な熱状態320において、熱ポリシーマネージャ101が、緊急の911通話およびGPS機能以外のハードウェアおよび/またはソフトウェアモジュールの停止を引き起こし得ることを意味する。熱ポリシーマネージャ101は、熱センサ157によって監視されている危機的な温度、熱センサ157の位置、および熱ポリシーマネージャ101によって観測されている温度変化に応じて、モジュールを順番に、かつ/または並列に停止することができる。この第4の熱状態320の温度範囲は、約100℃以上の範囲を含み得る。
【００８４】
図5は、温度と、時間および対応する熱ポリシー状態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によって観測される温度に応じて、飛ばされてよくまたはスキップされてよい。さらに、より低い熱状態に戻る時、熱ポリシーマネージャ101がたどる熱状態は、ヒステリシスと類似し得る。
【００９１】
図6A〜図6Bは、PCD 100の1つまたは複数の熱ポリシーを管理するための方法600を示す、論理的なフローチャートである。図6Aの方法600Aは、熱ポリシーマネージャ101が第1の熱状態305の間に内部および外部の熱センサ157で温度を監視できる、第1のブロック605で開始する。この第1のブロック605は全般に、図3〜図4に示される第1の熱状態305に対応する。前に述べられたように、熱ポリシーマネージャ101は、1つまたは複数の熱センサ157からの割り込みを監視し、アクティブに調査し、かつ/または受け取ることができる。この特定の熱状態では、熱ポリシーマネージャ101は、熱軽減技法を何ら適用しない。PCD 100は、この第1の熱状態305において、熱負荷条件を全く考慮せずに、その理想的なレベルで動作することができる。
【００９２】
次に、判定ブロック610において、熱ポリシーマネージャ101は、温度変化(デルタT)または絶対温度の変化が1つまたは複数の熱センサ157によって検出されたかどうかを、判定することができる。判定ブロック610への照会が否定的であれば、ブロック605への「NO」の分岐に戻る。判定ブロック610への照会が肯定的であれば、「YES」の分岐がブロック615に至り、そこで熱ポリシーマネージャ101が、熱センサ157の監視の頻度を上げることができる。ブロック615において、熱ポリシーマネージャは、熱センサ157をより頻繁にアクティブに調査することができ、または、温度データを提供する割り込みをより頻繁に送るように、熱センサ157に要求することができる。熱センサ157によるこの監視の増加は、第1の正常な状態305において起こってよく、また、第2のサービス品質熱状態310において起こってもよい。
【００９３】
あるいは、ブロック615は、ブロック620の後へと完全に移動されてもよい。こうすると、センサ157による熱の監視の増加は、次の熱状態、すなわちQoS状態に達した場合にのみ起こる。以下で説明されるように、方法は、当業者が理解するように、説明される実施形態の各々の特定の順序に限定されない。
【００９４】
次に、判定ブロック620において、熱ポリシーマネージャ101が、PCD 100が次の熱状態に達したかまたは到達したかどうかを判定することができる。この判定ブロック620において、熱ポリシーマネージャ101は、第2の熱状態310に割り当てられた温度範囲に到達したかどうかを、判定していてよい。あるいは、この判定ブロック620において、熱ポリシーマネージャは、ある時間にわたる大幅な温度変化(デルタT)が最後の測定値に対して発生したかどうかを、判定していてよい。
【００９５】
判定ブロック620への照会が否定的であれば、判定ブロック610への「NO」の分岐に戻る。判定ブロック620への照会が肯定的であれば、ルーチンまたはサブメッソド625への「YES」の分岐に進む。ルーチンまたはサブメッソド625は、QoS状態310とも呼ばれる第2の熱状態310を含んでよく、この状態において、熱ポリシーマネージャ101は、図4に関して上で説明された1つまたは複数の熱軽減技法を、適用または要求することができる。たとえば、熱ポリシーマネージャ101は、監視モジュール114および/またはO/Sモジュール207に要求して、限定はされないが、上で説明されたような(1)負荷のスケーリングおよび/または(2)負荷の動的なスケーリングのような、熱軽減技法を開始することができる。
【００９６】
次に、判定ブロック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と比較して、より連続的に/頻繁に感知される。
【０１００】
この例示的な第3の熱状態315では、熱ポリシーマネージャ101は、監視モジュール114および/またはO/Sモジュール207が、PCD 100の操作者によって観測される知覚できる可能性のある性能の低下を伴う、(第2の熱状態310よりも)強力な熱軽減技法および/または追加の熱軽減技法を適用することを、適用または要求することができる。この例示的な熱状態315によれば、熱ポリシーマネージャ101は、増幅器、プロセッサ、先進の受信機ハードウェアなどのような、1つまたは複数のハードウェアデバイスに対する、電力の低減を引き起こし得る。
【０１０１】
熱ポリシーマネージャ101はまた、アクティブなデバイスを非接続状態にして、アクティブなデバイスを接続状態にするために、空間的な方式で、様々なハードウェアデバイスの間で作業負荷を移動させることができる。この第3の重度の熱状態315の熱軽減技法は、第2のサービス品質熱状態310に関して上で説明された技法と同一であり得る。しかし、これらの同一の熱軽減技法は、より強力な方式で適用され得る。たとえば、DVFSパラメータを調整する時、熱ポリシーマネージャ101は、これらのパラメータがより大幅に調整されること、たとえば、第2の熱状態310と比較して大幅に低い電圧および/または周波数を実現することを、要求することができる。これらのより低い電圧および/または周波数は、特定のアプリケーションプログラムをサポートするために推奨されるものよりも、低くてよい。
【０１０２】
次に、判定ブロック645において、熱ポリシーマネージャ101は、サブメッソドまたはルーチン640において適用された1つまたは複数の熱軽減技法がPCD 100の温度の上昇を防ぐのに成功したかどうかを、判定することができる。判定ブロック645への照会が否定的であれば、図6Bのステップ655への「NO」の分岐に進む。判定ブロック645への照会が肯定的であれば、「YES」の分岐がステップ650に至り、そこで熱ポリシーマネージャ101が、1つまたは複数の熱センサ157により提供される温度測定値に基づいて、PCD 100の現在の温度状態を判定する。
【０１０３】
ここで図6Bを参照すると、この図は、図6Aに示されるフローチャートに対する、続きのフローチャートである。図6Bの方法600Bは判定ブロック655において開始し、そこで、熱ポリシーマネージャ101は、PCD 100が第4の危機的な熱状態320に入っているかどうかを、1つまたは複数の熱センサ157により検出される温度に基づいて、判定することができる。判定ブロック655への照会が否定的である場合、「NO」の分岐がステップ660に至り、そこで、熱ポリシーマネージャ101は、PCD 102を第3の重度の熱状態315へと戻し、プロセスは図6Aのブロック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により検出される温度範囲に対応する熱状態を開始する(またはそれに戻る)。
【０１０７】
図7は、DVFS熱軽減技法を適用するためのサブメッソドまたはサブルーチン625、640、および665を示す、論理的なフローチャートである。ブロック705は、DVFS熱軽減技法を適用するためのサブメッソドまたはサブルーチンの最初のステップである。この最初のブロック705において、熱ポリシーマネージャ101は、熱センサ157によって提供される温度測定値に基づいて、現在の熱状態を判定することができる。現在の熱状態が熱ポリシーマネージャ101によって判定されると、熱ポリシーマネージャ101は次いで、ブロック710において、現在のDVFS設定を見直すことができる。次に、ブロック715において、熱ポリシーマネージャ101は、1つまたは複数のハードウェアおよび/またはソフトウェアモジュールの現在の作業負荷を見直すことができる。
【０１０８】
次に、ブロック720において、熱ポリシーマネージャ101は、熱ポリシーマネージャ101により判定された現在の熱状態に従って、熱負荷条件を軽減するように作業負荷を低減し、または作業負荷を空間的に移動させるために、電圧および/または周波数を含み得る現在のDVFS設定を調整することができ、またはそのための命令を発することができる。
【０１０９】
よって第2のQoS熱状態310では、ブロック720において、熱ポリシーマネージャ101は、図2Aの監視モジュール114および/またはオペレーティングシステム(「O/S」)モジュール207を起動し、またはそれに要求して、PCD 100の操作者によって知覚されるようなサービス品質の低下の知覚をほとんどまたは全く伴わずに高い性能を維持する目的で、熱軽減技法の適用を開始することができる。
【０１１０】
図4に示されるこの例示的な第2の熱状態310によれば、熱ポリシーマネージャ101は、監視モジュール114および/またはO/Sモジュール207に要求して、限定はされないが、(1)負荷のスケーリングおよび/または(2)負荷の動的なスケーリングのような、熱軽減技法を開始することができる。負荷スケーリングは、DVFSアルゴリズムにおいて許容される最大クロック周波数を調整または「スケーリング」することを含み得る。
【０１１１】
第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に関して上で説明された技法と同一であり得る。しかし、これらの同一の熱軽減技法は、より強力な方式で適用され得る。たとえば、DVFSパラメータを調整する時、熱ポリシーマネージャ101は、これらのパラメータがより大幅に調整されること、たとえば、第2の熱状態310と比較して大幅に低い電圧および/または周波数を実現することを、要求することができる。これらのより低い電圧および/または周波数は、特定のアプリケーションプログラムをサポートするために推奨されるものよりも、低くてよい。
【０１１３】
第4の危機的な熱状態320では、ブロック720において、この熱状態320は、危機的な温度を回避するために、PCD 100の機能および動作を中止するように設計される、従来の技法と同様であり得る。第4の熱状態320は、熱ポリシーマネージャ101が、不可欠ではないハードウェアおよび/またはソフトウェアの停止を適用またはトリガする、「危機的」な状態を含み得る。この第4の熱状態の温度範囲は、約100℃以上の範囲を含み得る。サブメッソド625、640、または665は次いで、PCD 100の現在の熱状態に応じて、熱管理方法600における適切なステップに戻る。
【０１１４】
図8Aは、4コアマルチコアプロセッサ110と、マルチコアプロセッサ110によって空間的に管理され得る異なる作業負荷との概略図800Aである。4つのコアのみが示されているが、追加のコアが利用されてよく、本発明の範囲内であることを、当業者は認識する。
【０１１５】
4コアマルチコアプロセッサ110は、第0のコア222、第1のコア224、第2のコア226、および第3のコア228を有する。マルチコアプロセッサ110の第1の作業負荷の状況は、第0のコア222が(特定のコアの100%の最大の作業能力/利用率のうち)70%の作業負荷を有する一方、第1のコア224が30%の作業負荷を有し、第2のコア226が50%の作業負荷を有し、第3のコア228が10%の作業負荷を有する、マルチコアプロセッサ110Aにより示される。
【０１１６】
熱軽減技法がPCD 100に適用される、上で説明された熱状態310、315、320のいずれか1つに、熱ポリシーマネージャ101が入ると、この図8Aで示されたような空間的な熱負荷軽減技法が実施され得る。この空間的な熱負荷軽減技法によれば、熱ポリシーマネージャ101、監視モジュール114、および/またはO/Sモジュール207は、マルチコアプロセッサ110中の1つのコアの作業負荷を、1つまたは複数の他のコアに移すことができる。
【０１１７】
図8Aに示される例示的な実施形態では、第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について効果的に移される。図8Aのマルチコアプロセッサ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によって管理されていた、前の作業負荷を負っている、そのような移動を示すものである。
【０１１９】
図8Bは、空間的な作業負荷の移動による熱軽減技法を適用するための、サブメッソドまたはサブルーチン625、645、665を示す、論理的なフローチャートである。ブロック805は、空間的な作業負荷の移動による熱軽減技法を適用するための、サブメッソドまたはサブルーチン625、640、665の最初のステップである。この最初のブロック805において、熱ポリシーマネージャ101は、熱センサ157によって提供される温度測定値に基づいて、現在の熱状態を判定することができる。現在の熱状態が熱ポリシーマネージャ101によって判定されると、熱ポリシーマネージャ101、監視モジュール114、および/またはO/Sモジュール207は次いで、ブロック810において、マルチコアプロセッサ110のコアの現在の作業負荷を見直すことができる。前に述べられたように、熱ポリシーマネージャ101は、1つまたは複数の熱軽減技法の実施を担い得る。
【０１２０】
しかし、代替的かつ例示的な実施形態では、熱ポリシーマネージャ101は、熱軽減技法が適用されるべきであると提案するのみであってよく、熱ポリシーマネージャ101は、監視モジュール114および/またはO/Sモジュールが、熱軽減技法がどのように実際に実施されるかを決定できるようにし得る。簡潔にするために、このサブルーチン625、640、665の残りは、熱ポリシーマネージャ101が熱軽減技法を実際に実施する実施形態を参照する。
【０１２１】
次に、ブロック815において、熱ポリシーマネージャ101は、どのコアが大きな作業負荷を受けているか、およびほとんどまたは全く作業負荷を受けていないコアを決定することができる。ブロック820において、熱ポリシーマネージャ101は、熱負荷条件および現在の熱状態に寄与している可能性があるプロセッサ、またはそれらを引き起こしている可能性があるプロセッサを、判定することができる。次いで、ブロック825において、熱ポリシーマネージャ101は、現在の熱状態に従って、マルチコアプロセッサ110のコアの間での、空間的な作業負荷の分担を調整し、熱負荷を軽減することができる。ブロック825は一般に、図8Aに示される空間的な移動による熱軽減技法に相当する。サブメッソド625、640、または665は次いで、PCD 100の現在の温度状態に応じて、熱管理方法600における適切なステップに戻る。
【０１２２】
本発明が説明通りに機能するように、本明細書で説明したプロセスまたはプロセスの流れの特定のステップが、他のステップよりも前に行われるのは当然である。しかしながら、ステップの順序または手順によって本発明の機能が変わることがない場合、本発明は説明したステップの順序に限定されない。つまり、本発明の範囲および趣旨から逸脱することなく、あるステップを他のステップの前に実行しても、後に実行してもよく、あるいは各ステップを並行して(実質的に同時に)実行してもよいことを認識されたい。いくつかの場合には、特定のステップが、本発明から逸脱することなく、省略されてもよく、または実行されなくてもよい。さらに、「その後」、「次いで」、「次に」などの語は、ステップの順序を限定することを意図していない。これらの語は、単に例示的な方法の説明を通じて読者を導くために使用されている。
【０１２３】
加えて、プログラミングの当業者は、たとえば本明細書のフローチャートおよび関連する説明に基づいて、コンピュータコードを書くか、または適切なハードウェアおよび/もしくは回路を特定し、開示された発明を容易に実施することができる。
【０１２４】
したがって、特定の1組のプログラムコード命令または詳細なハードウェアデバイスの開示が、本発明をどのように製作し使用すべきかについて適切に理解するうえで必要であるとはみなされない。コンピュータによって実施される特許請求されるプロセスの発明性のある機能が、上の説明において、かつ、様々なプロセスの流れを示し得る各図に関連して、より詳細に説明されている。
【０１２５】
1つまたは複数の例示的な態様では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装することができる。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体上で送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体とコンピュータ通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であってよい。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形式で所望のプログラムコードを搬送もしくは記憶するために使用され得るとともに、コンピュータによってアクセスされ得る任意の他の媒体を含み得る。
【０１２６】
また、任意の接続をコンピュータ可読媒体と呼ぶのが妥当である。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。
【０１２７】
本明細書で使用する場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フレキシブルディスク、およびブルーレイディスクを含み、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザで光学的にデータを再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０１２８】
選択された態様について詳細に図示し説明したが、以下の特許請求の範囲によって定義されるような本発明の趣旨および範囲から逸脱することなく、各態様において様々な置換および改変を実施できることが理解されよう。
【符号の説明】
【０１２９】
101 熱ポリシーマネージャモジュール
103 ADCコントローラ
110 アプリケーションCPU
112 内部メモリ
114 監視モジュール
134A 第1のグラフィックプロセッサ
134B 第2のグラフィックプロセッサ
134C 第3のグラフィックプロセッサ
134D 第4のグラフィックプロセッサ
157A1 第1の内部熱センサ
157A2 第2の内部熱センサ
157A3 第3の内部熱センサ
157A4 第4の内部熱センサ
157A5 第5の内部熱センサ
157B1 第1の外部熱センサ
157B2 第2の外部熱センサ
207 O/Sモジュール
222 第0のコア
224 第1のコア
230 第Nのコア
250 開始論理
260 管理論理
270 DVFSインターフェース論理
280 アプリケーションストア
290 ファイルシステム
292 DVFSストア
294 コアストア
296 プログラムストア
297 アルゴリズム
298 パラメータ
【図１】
0005883967.tif 000002
【図２Ａ】
0005883967.tif 000003
【図２Ｂ】
0005883967.tif 000004
【図２Ｃ】
0005883967.tif 000005
【図２Ｄ】
0005883967.tif 000006
【図３】
0005883967.tif 000007
【図４】
0005883967.tif 000008
【図５】
0005883967.tif 000009
【図６Ａ】
0005883967.tif 000010
【図６Ｂ】
0005883967.tif 000011
【図７】
0005883967.tif 000012
【図８Ａ】
0005883967.tif 000013
【図８Ｂ】
0005883967.tif 000014