(58)【調査した分野】(Int.Cl.,DB名)
前記熱インジケータが、オンダイ温度、前記PCDの接触温度、前記PCD内のバッテリの充電状態、および前記PCD内の母線上での電流レベルのうちの少なくとも1つである、請求項1に記載の方法。
前記熱インジケータが、オンダイ温度、前記PCDの接触温度、前記PCD内のバッテリの充電状態、および前記PCD内の母線上での電流レベルのうちの少なくとも1つである、請求項8に記載のコンピュータシステム。
前記モニタモジュールが、前記センサをもう一度ポーリングするようにさらに構成され、前記TABモジュールが、前記ポーリングされた測定値が前記所定の閾値を依然として超えている場合、前記ブートシーケンスの遅延をもう一度引き起こすようにさらに構成される、請求項8に記載のコンピュータシステム。
前記モニタモジュールが、前記センサをもう一度ポーリングするようにさらに構成され、前記TABモジュールが、前記ポーリングされた測定値が前記所定の閾値未満である場合、前記ブートシーケンスの完了を許可するようにさらに構成される、請求項8に記載のコンピュータシステム。
前記熱インジケータが、オンダイ温度、前記PCDの接触温度、前記PCD内のバッテリの充電状態、および前記PCD内の母線上での電流レベルのうちの少なくとも1つである、請求項15に記載の方法。
前記熱インジケータが、オンダイ温度、前記PCDの接触温度、前記PCD内のバッテリの充電状態、および前記PCD内の母線上での電流レベルのうちの少なくとも1つである、請求項20に記載のコンピュータシステム。
【発明を実施するための形態】
【0013】
「例示的な」という言葉は、例、事例、または例示として機能することを意味するように本明細書で使用される。「例示的な」ものとして本明細書に記載されるいずれの態様も、必ずしも他の態様に対して排他的であるか、他の態様よりも好ましいか、または有利であると解釈されるべきではない。
【0014】
本明細書では、「アプリケーション」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの実行可能なコンテンツを有するファイルも含むことができる。加えて、本明細書で言及する「アプリケーション」は、開封される必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなどの本質的に実行可能ではないファイルも含むことができる。
【0015】
本明細書で使用される場合、「構成要素」、「データベース」、「モジュール」、「システム」、「熱エネルギー生成構成要素」、「処理構成要素」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアを問わず、コンピュータ関連のエンティティを指すことが意図されている。たとえば、構成要素は、プロセッサ上で稼動するプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータであり得るが、これらに限定されない。例を挙げると、コンピューティングデバイス上で作動しているアプリケーションとコンピューティングデバイスの両方が構成要素であり得る。1つまたは複数の構成要素は、プロセスおよび/または実行スレッド内に常駐することができ、1つの構成要素を1つのコンピュータに局在化すること、および/または2つ以上のコンピュータに分散することが可能である。加えて、これらの構成要素は、様々なデータ構造を記憶している様々なコンピュータ可読媒体から実行することができる。各構成要素は、1つまたは複数のデータパケット(たとえば、信号を介してローカルシステム、分散システムにおける別の構成要素と相互作用するある構成要素からのデータ、および/または信号を介してインターネットなどのネットワーク上で他のシステムと相互作用するある構成要素からのデータ)を有する信号に従うなどしてローカルプロセスおよび/またはリモートプロセスを介して通信することができる。
【0016】
本明細書では、「中央処理装置(「CPU」)」、「デジタル信号プロセッサ(「DSP」)」、「グラフィカル処理ユニット(GPU)」、および「チップ」という用語は互換的に使用される。その上、CPU、DSP、GPUまたはチップは、「コア」と本明細書では全般的に呼ばれる1つまたは複数の別個の処理構成要素からなることができる。さらに、CPU、DSP、GPU、チップまたはコアが、様々なレベルの機能効率で動作するために様々なレベルの電力を消費するPCD内の機能構成要素である限り、これらの用語の使用は、開示する実施形態、またはそれらの等価物の適用を、PCD内の処理構成要素のコンテキストに限定するものではないことが当業者には認識されよう。つまり、実施形態の多くは、処理構成要素のコンテキストにおいて記載されるが、熱アウェアブーティングは、モデム、カメラ、ワイヤレスネットワークインターフェースコントローラ(「WNIC」)、ディスプレイ、ビデオエンコーダ、周辺デバイス、パッケージオンパッケージ(「PoP」)メモリデバイスなどを含むが、それに限定されない、PCD内のどの機能構成要素の利益のためにも適用され得ると想定される。
【0017】
本明細書では、「熱」および「熱エネルギー」という用語は、「温度」の単位で測定され得るエネルギーを生成させまたは消散することが可能な、デバイスまたは構成要素と関連付けられて使われ得ることが理解されるだろう。その結果、「温度」という用語は、「熱エネルギー」を生成させるデバイスまたは構成要素の、相対的な暖かさまたは熱の欠如を示すことができる、何らかの基準値に対する任意の測定値を想定することがさらに理解されるだろう。たとえば、2つの構成要素の「温度」は、2つの構成要素が「熱的に」平衡であるとき同じである。
【0018】
本明細書では、「作業負荷」、「プロセス負荷」および「プロセス作業負荷」という用語は互換的に使用され、一般に、所与の実施形態の所与の処理構成要素に関連付けられた処理負担または処理負担のパーセンテージを対象にする。上記に定義されたものに加えて、「処理構成要素」または「熱エネルギー生成構成要素」または「熱アグレッサ」は、限定はされないが、中央処理装置、グラフィカル処理ユニット、コア、メインコア、サブコア、処理エリア、ハードウェアエンジンなど、またはポータブルコンピューティングデバイス内の集積回路の内部もしくは外部にある任意の電力消費構成要素であり得る。
【0019】
本明細書では、「熱緩和技法」、「熱ポリシー」、「熱管理」、「熱緩和対策」および「熱緩和ソフトウェア」という用語は、交換可能に使用される。特に、特定の使用コンテキストによっては、この段落で列挙する用語のいずれも、またはそれらの等価物も、熱エネルギー生成を犠牲にして性能を高め、性能を犠牲にして熱エネルギー生成を低下させ、またはそのような目標の間で交替するように動作可能なハードウェアおよび/またはソフトウェアを記述するのに役立ち得ることが当業者には認識されよう。
【0020】
本明細書では、「ポータブルコンピューティングデバイス」(「PCD」)という用語は、バッテリなどの限られた容量の電源で動作する任意のデバイスを記載するために使用される。何十年もの間バッテリ式PCDが使用されてきたが、第3世代(「3G」)および第4世代(「4G」)ワイヤレス技術の出現とともにもたらされた充電式バッテリの技術的進歩は、複数の機能を有する多数のPCDを可能にした。したがって、PCDは、とりわけ、携帯電話、衛星電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、スマートブックまたはリーダー、メディアプレーヤ、上述のデバイスの組合せ、およびワイヤレス接続を有するラップトップコンピュータであり得る。
【0021】
本説明では、いくつかの熱条件にさらされた場合の、PCDまたはPCD内の構成要素の「健全性」に対する悪影響の可能性に対して、頻繁に参照が行われる。本記述のコンテキストにおいて、構成要素の「健全性」に対する悪影響とは、重大度が、一時的な動作不安定性から永続的な構成要素損傷に及ぶ、構成要素の機能的側面に対するいかなる悪影響も含むことを意図していることが理解されよう。この目的のために、いくつかの熱条件は、構成要素を永続的に動作不能にさせる場合があり、異なる熱条件下では、同じ構成要素が、一時的不安定性のみを経る場合があることが当業者には認識されよう。たとえば、高レベルの熱エネルギーへの露出が長引くと、PCD内のメモリ構成要素が破壊される場合があり、より極端でない熱条件下での同じメモリ構成要素は、その機能性に対する影響が長くは続かない、一時的故障を経るだけである場合がある。
【0022】
本説明では、「ブート」、「リブート」、「ブートモード」、「ブートシーケンス」、「ブートフェーズ」などの用語は、オペレーティングシステムのロードおよび使用のための様々なPCD構成要素の準備を含むが、それに限定されない、PCDが、最初に電源投入されたときに実施する初期動作セットを指すことを意図している。この目的のために、「オンライン」または「オンラインになる」という用語は、本説明では、PCD内の1つの構成要素、または複数の構成要素の完了された「ブート」の最終結果であると理解される。
【0023】
オンダイ温度測定値などの熱インジケータが一定の閾値を上回ったときにPCDをブートしようと試みると、PCD内の任意の数の構成要素の健全性を危険にさらす可能性がある。
たとえば、集中型ゲームセッションまたは高温の車内に放置された後にPCDが受け得るような、オンダイ温度がすでに上昇しているときに近くの熱アグレッサから消散される熱エネルギーにPoPメモリがさらされた場合、積層ボールグリッドアレイ(「BGA」)メモリ構成要素を備えるパッケージオンパッケージ(「PoP」)メモリデバイスの完全性が犠牲にされ得る。同様に、温度がすでに上昇しているとき、ブートシーケンス中に、処理構成要素が全電力で、またはある程度全電力未満であってもオンラインにされた場合、強力マルチコア処理構成要素内のシリコンが劣化する場合がある。
【0024】
当業者によって理解されるように、PCD内のこれらの例示的な構成要素および他の処理構成要素は、作業負荷を処理する間、熱エネルギーを生じ、消散し得る。過度に、これらの熱的に攻撃的な構成要素によって生成される熱エネルギーの消散は、PCDの全体的機能性に対して修復不可能な損傷を引き起こす場合がある。一般に、したがって、熱インジケータが一定の閾値を超えたときにPCDのブートを試みると、PCD内の1つまたは複数の構成要素の健全性に対する修復不可能な損害の危険性を軽減するための一連の電力崩壊およびリブートが生じ得る。電力崩壊およびリブートは、PCDの健全性を保護するのには有用であるが、ユーザの経験には悪影響を与える。
【0025】
PCDが、その様々な感熱構成要素の健全性を危険にさらすことも、ユーザ経験に悪い方向で過度に影響することもなく、そのブートシーケンスを確実に完了することは、ブートフェーズの早い段階で1つまたは複数のセンサ測定値を活用する熱アウェアブート(「TAB」)モジュールによって遂行され得る。TABモジュールの例示的な実施形態は、ブートシーケンスの早い段階でオンラインになるように構成される、リソース電力マネージャ(「RPM」)プロセッサなどの低電力(「LP」)処理構成要素を利用する。LPプロセッサ上で稼動する熱アウェアブートソフトウェア態様を含み得るTABモジュールは、監視モジュールによってとられた、熱インジケータに関連付けられた測定値を活用する。監視モジュールは、たとえば、特定用途向け集積回路(「ASIC」)または他の集積回路のダイの周辺に置かれた、1つまたは複数の温度センサをポーリングし、いくつかのケースでは、アナログデジタル変換器ハードウェアを使って、測定値データをデジタル信号に変換することができる。
【0026】
モニタモジュールによって生成されるデジタル信号は、たとえば、PCDの接触温度、CPUコアに関連付けられた処理温度、PoPメモリデバイスに近接した周辺温度、バッテリに関連付けられた充電状態(「SoC」)読取り値、電力バスにおける漏れ電流レベルなどだが、それに限定されない熱エネルギー消散レベルの熱インジケータと相関付けることができる任意の数の測定値を表し得る。これらの信号は、TABモジュールによって受信されると、所与の測定値についての所定の閾値と比較され得る。所定の閾値は、PCDの最大許容接触温度、PCD内の構成要素の最大動作温度、PCD内のバッテリについての最小充電レベル、PCD内の電力バス上での最大電流レベルなどを含むが、それに限定されない、所与の熱インジケータについての任意の数のパラメータに基づき得る。
【0027】
測定値と閾値の比較に基づいて、TABモジュールのいくつかの実施形態は、ブートシーケンスを完了または遅延させることを選べばよい。他の実施形態では、TABモジュールは、比較を活用して、PCD内の1つまたは複数の構成要素についてのスケーリングされた性能レベルを選択し、次いで、所与の構成要素が、低下した性能レベルでオンラインになるようにブートシーケンスを修正することができる。当業者によって理解されるように、低下した電力レベルで処理構成要素をオンラインにすると、構成要素が、比較的低いレートの熱エネルギーを生成し得る。さらに、1つまたは複数の構成要素を、低下した性能レベルまでブートすることによって、構成要素を全電力レベルまでブートした結果生じ得るPCD健全性に対する危険性なしで、短いブート継続時間を維持できることが当業者には認識されよう。
【0028】
たとえば、いくつかの実施形態では、モニタモジュールは、PCDのメインCPUのコアの近くに置かれた温度センサを読み取ることができる。温度読取り値は、コアの温度が最大閾値を下回り、したがって、高電力消費CPUを全電力でオンラインにするのは、PCD内のCPUおよび/または他の構成要素にとって有害ではないということをTABモジュールに対して示すことができる。そのようなシナリオにおいて、TABモジュールは、LPプロセッサに、ブートシーケンスを変更なしで進め、または完了することを許可してよい。ただし、TABモジュールによって、温度読取り値が所定の閾値を超えると判断された場合、TABモジュールは、温度上昇を引き起こす熱エネルギーが消散され得るように、ブートシーケンスが遅延されることを選んでよい。あるいは、閾値を超えたとき、TABモジュールは、ブートシーケンスが完了されたとき、CPUが、PCDの既存の熱的フットプリントに過度には影響しない熱エネルギー生成のレートに関連付けられた、スケーリングされた電力レベルでオンラインになるように、ブートシーケンスを修正してよい。
【0029】
有利には、ブートシーケンスをそのように一時的に遅延させ、または修正することによって、PCDを電力崩壊させることも、ブートプロセスを完全にリスタートすることもなく、PCD内の1つまたは複数の構成要素の健全性に対する壊滅的または否定的であり得る影響が回避され得る。つまり、超過熱エネルギーへの露出によって生じる永続的な構成要素損傷または性能不安定性が、電力崩壊することも、PCDのブートプロセスを完全にリスタートすることもなく回避され得る。このようにして、理想よりも低い熱条件下でPCDがブートされたとき、ユーザ経験およびQoSレベルが最適化され得る。さらに、熱インジケータ測定値がポーリングされ、所定の閾値と比較され続けるので、いくつかの実施形態が、ブートシーケンスを無期限に、または設定された数の周期だけ遅延させ得ると想定される。
【0030】
特に、本明細書において説明し例示する例示的な実施形態は、ポーリングされた熱インジケータに基づいてブートシーケンスを遅延させ、許可し、または修正することを主に対象とする。ただし、より一般的な意味では、これらの実施形態は、PCD内のプロセスを遅延させ、許可し、または修正することを選ぶ前に、利用可能な「熱ヘッドルーム」を判断しようとする。したがって、ブートシーケンスは、1つまたは複数のポーリングされた熱インジケータに基づいて遅延され、完了のために許可または修正され得る、PCD内のプロセスの単なる一例であることが当業者には認識されよう。したがって、本システムおよび方法の実施形態は、ポーリングされた測定値と所与の閾値との間の差によって定量化された「熱ヘッドルーム」が、どのプロセスも、閾値を超えることなく完了され得ることを示唆する限り、そのようなプロセスを許可または修正できることが想定される。非限定的例として、いくつかの実施形態は、特定の高電力コアにおける処理用にスケジュールされた作業負荷を遅延させ、許可し、または修正することを選ぶ前に、ポーリングされた熱インジケータを閾値と比較することができる。特に、そのような実施形態では、スケジュールされた作業負荷の遅延または修正は、より低いレベルの熱エネルギー生成に関連付けられた他の作業負荷が代わりに処理され得るように、作業負荷の優先度を変えることを含み得る。
【0031】
図1は、PCD100において熱アウェアブートシーケンスを実装するためのオンチップシステム102の実施形態を示す機能ブロック図である。熱アウェアブートシーケンスの実施形態は、PCD100内の1つまたは複数の場所からの温度測定値など、熱インジケータの測定値を活用して、PCD100内のすべての構成要素がオンラインになることが安全かどうか判断する。PCD100内の1つまたは複数の構成要素にとってオンラインになることが有害であるということを測定値が示す場合、測定値の後続読取り値が、熱条件がブートシーケンスの完了に対してより好ましいということを示すまで、ブートシーケンスは遅延されてよい。あるいは、いくつかの実施形態は、比較的低いレートの熱エネルギー生成および消散と相関する低下電力レベルで1つまたは複数の構成要素がオンラインになるように、ブートシーケンスを修正することができる。これらのやり方で、実施形態は、PCD100の全体的健全性を確保し、連続リブートを回避することができる。
【0032】
上で説明したように、多くのPCD100は、CPU110などのメイン処理構成要素上で稼動するメイン熱ポリシーマネージャモジュール113を含む。メイン熱ポリシーマネージャモジュール113は、PCD100が動作可能であり作業負荷を処理中であるときに熱エネルギー生成を管理しようとして、任意の数の熱緩和技法を適用するように構成され得る。ただし、ブートシーケンスの早期フェーズ中、メインCPU110はまだオンラインになっていないので、CPU110上で稼動するメイン熱ポリシーマネージャモジュール113はアクティブ化されていない。さらに、CPU110(または例示的なPoPメモリ112Aなど、他の処理構成要素)に関連付けられた温度が上昇した場合、この温度上昇は、CPU110がオンラインになるとともに過量の熱エネルギーを生成し始めるようになっている場合は、PCD100内のCPU110および/または他の構成要素の健全性にとって有害である。
【0033】
概して、本システムは、いくつかの実施形態では単一モジュールに含まれ得る2つのメインモジュール、すなわち(1)熱インジケータ測定値を所定の閾値と比較し、進行中のブートシーケンスを遅延させ、許可し、または修正するためのTABモジュール101と、(2)PCD100中に置かれた関連センサ157をポーリングし、ポーリングされた測定値をTABモジュール101に中継するためのモニタモジュール114とを利用する。有利には、これら2つのメインモジュールを含むシステムおよび方法の実施形態は、センサ測定値を活用して、PCD100の全体的健全性を最適化し、ユーザ経験に悪影響を及ぼす電力崩壊およびリブートの必要性を最小限にする。
【0034】
ブートシーケンスの初期にオンラインになるとともに低レベルの電力を消費する(したがって、比較的低レベルの熱エネルギーを生成する)LPプロセッサ111、たとえばリソース電力マネージャ(「RPM」)プロセッサは、CPU110など、他の、より高電力を消費する構成要素がオンラインになることを許可するようにブートシーケンスを管理するように構成され得る。当業者によって理解されるように、LPプロセッサ111は、クロック切替え、電力切替えなどを含むが、それに限定されない、任意の数の機能を制御するように構成され得る。ただし、ブートシーケンスの初期に稼動するように構成された、PCD内のどの構成要素も所与の実施形態の実装に適し得るので、熱アウェアブートシーケンスを実装するためのシステムおよび方法は、RPMプロセッサを活用することに限定されるわけではない。
【0035】
図1の例示に戻ると、LPプロセッサ111は、TABモジュール101、モニタモジュール114ならびにPCD100内の2つの例示的な構成要素、すなわちPoPメモリ112AおよびCPU110と通信中であることが示されている。特に、TABモジュール101および/またはモニタモジュール114の作業負荷の全部または一部は、LPプロセッサ111によって処理することができる。PoPメモリ112AおよびCPU110は、例示的目的でのみ示され、したがって、熱アウェアブートシーケンスを実装するためのシステムおよび方法の実施形態は、PoPメモリおよび/またはCPUへの適用に限定されないことが理解されよう。そうではなく、本システムおよび方法の様々な実施形態は、理想よりも低い熱条件下でブートシーケンスを完了した結果、損害を受け得る、PCD100内のどの構成要素の健全性も最適化するのに使われ得ることが理解されよう。
【0036】
さらに、センサ157は概して、本説明では、オンダイまたはオフダイ温度読取り値の形の熱インジケータを測定するものとして参照されるが、熱アウェアブートシーケンスを実装するためのシステムおよび方法のいくつかの実施形態は、温度以外の熱インジケータパラメータを測定するセンサを活用できると想定される。たとえば、上で述べたように、いくつかの実施形態では、センサ157は、バッテリの充電状態の形の熱インジケータを測定して、バッテリが、完了ブートシーケンスから生じた処理負荷を持続させるための容量を有するかどうか判断することができると想定される。または、いくつかの実施形態では、センサ157は、母線上での電流レベルを測定して、所与の構成要素の熱エネルギーレベルを推定することができる。したがって、本記述において、熱インジケータを単に「温度測定値」または「温度読取り値」などと呼ぶことが、様々な点において好都合であるが、記載する実施形態およびそれらの等価物は、熱インジケータ測定値を温度測定値の直接的な形で活用することに限定されないことが当業者には認識されよう。そうではなく、熱エネルギーレベルのどのインジケータも、実施形態によって、熱アウェアブートポリシーを判断またはトリガするのに使われ得ることは、完全に本開示の範囲内であることが理解されよう。
【0037】
モニタモジュール114は、たとえば温度読取り値など、センサ157からとられた読取り値をポーリングする。
図1の例示において、センサ157Bは、チップ102から離して置かれ、残りの例示的なセンサ157Aは、PoPメモリ112AおよびCPU110のコア222、224、226、228に近接して置かれている。例示的な使用ケースでは、PCD100は、集中的な高作業負荷ゲームセッションにより生じる、CPU110における処理温度の上昇を受けた可能性がある。CPU110のコア222、224、226、228のうちの1つまたは複数に関連付けられたセンサ157Aをポーリングするモニタモジュール114は、高温レベルを認識し、TABモジュール101に通信することができる。TABモジュール101は、測定された温度レベルを所定の閾値と比較し、LPプロセッサ111に、温度上昇を引き起こす熱エネルギーの一部がより安全なレベルに消散するまで、CPU110の電源投入を遅延させるよう命令することができる。同様に、PoPメモリ112Aの健全性にとっての安全なレベルを超える、PoPメモリ112Aの近くで測定された温度は、LPプロセッサ111に、PoPデバイス112A近くの温度を危機的レベルに達せさせ得る熱エネルギーの生成を回避するために、ブートシーケンスを遅延させるよう、TABモジュール101が命令するのをトリガし得る。同様に、オフチップセンサ157Bは、PCD100の接触温度を測定し、許容可能な接触温度についての所定の閾値に基づいてブートシーケンスを遅延させ、または許可するように配置され得る。
【0038】
例示的な使用ケースに戻ると、TABモジュール101の他の実施形態は、熱性能ルックアップ(「TPL」)テーブル24を照会して、PCD100の熱状態に過度に影響することなく、1つまたは複数の処理構成要素がそこまでブートされ得る電力レベルの低下を判断することができる。たとえば、センサ157Aにおいてポーリングされた温度測定値は、CPU110の近くの温度が、PoPメモリ112Aにとって有害であり得るレベルに迫っているが、そのような閾値を超えていないことを示し得る。そのようなケースにおいて、TABモジュール101は、TPLテーブル24の照会から、CPU110が、その最大周波数の50パーセントで、閾値を超えるのに十分なエネルギーを生成する危険なく電源投入され得ると判断してよい。したがって、TABモジュール101は、CPU110がその最大周波数の50パーセントで電源投入されるように、ブートシーケンスを修正することができ、そうすることによって、PoPメモリ112Aの健全性を危険にさらすことなく、CPU110をオンラインにすることによってユーザ経験を最適化する。例示的な熱ブート状態に関するさらなる詳細については、
図4〜
図5および
図7に関連して記載する。
【0039】
図2は、ポーリングされた熱条件に基づいてブートシーケンスを遅延させ、許可し、または修正する方法およびシステムを実装するための、ワイヤレス電話の形の、
図1のPCD100の例示的な非限定的態様を示す機能ブロック図である。図示されたように、PCD100は、互いに結合されたマルチコア中央処理装置(「CPU」)110およびアナログ信号プロセッサ126を含むオンチップシステム102を含む。オンチップシステム102は、リソース電力マネージャプロセッサなどの低電力(「LP」)プロセッサ111も含む。当業者によって理解されるように、CPU110は、第0のコア222、第1のコア224、および第Nのコア230を含み得る。さらに、当業者によって理解されるように、CPU110の代わりに、デジタル信号プロセッサ(「DSP」)も利用され得る。
【0040】
概して、熱アウェアブート(「TAB」)モジュール101は、温度関連測定値を所定の閾値と比較し、比較に基づいて、PCD100のブートシーケンスを許可し、遅延させ、または修正するのを選ぶ役目を果たし得る。有利には、ポーリングされた温度が所定の閾値を超え、またはあらかじめ定義された熱状態範囲内であるとき、ブートシーケンスを遅延させ、または修正することによって、TABモジュール101は、PCD100が、熱条件および/または熱負荷を管理し、たとえば、ブートシーケンス中に危機的温度に達するなど、不都合な熱条件を受けるのを回避するのを助けることができる。
【0041】
図2はまた、PCD100がモニタモジュール114を含むことができることを示す。モニタモジュール114は、オンチップシステム102全体を通して分散された複数の動作するセンサ(たとえば、熱センサ157)、およびPCD100のLPプロセッサ111、ならびにTABモジュール101と通信する。TABモジュール101は、モニタモジュール114と連携して、ブートシーケンスの初期に、所定の温度閾値および/または範囲と比較して不都合な熱条件を識別し、熱エネルギー消散を管理するためにブートシーケンスを遅延させ、または修正することができる。
【0042】
図2に示されたように、ディスプレイコントローラ128およびタッチスクリーンコントローラ130は、デジタル信号プロセッサ110に結合される。オンチップシステム102の外部にあるタッチスクリーンディスプレイ132が、ディスプレイコントローラ128およびタッチスクリーンコントローラ130に結合される。PCD100はさらに、ビデオエンコーダ134、たとえば位相反転線(「PAL」)エンコーダ、順次式カラーメモリ(「SECAM」)エンコーダ、全国テレビジョン方式委員会(「NTSC」)エンコーダ、または任意の他のタイプのビデオエンコーダ134を含むことができる。ビデオエンコーダ134は、マルチコアCPU110に結合される。ビデオ増幅器136は、ビデオエンコーダ134およびタッチスクリーンディスプレイ132に結合される。ビデオポート138は、ビデオ増幅器136に結合される。
図2に示されたように、ユニバーサルシリアルバス(「USB」)コントローラ140は、CPU110に結合される。また、USBポート142は、USBコントローラ140に結合される。PoPメモリ112Aを含み得るメモリ112、および加入者識別情報モジュール(「SIM」)カード146も、CPU110および/またはLPプロセッサ111に結合され得る。さらに、
図2に示されたように、デジタルカメラ148は、CPU110に結合され得る。例示的な態様では、デジタルカメラ148は、電荷結合デバイス(「CCD」)カメラまたは相補型金属酸化膜半導体(「CMOS」)カメラである。
【0043】
図2にさらに示されるように、ステレオオーディオコーデック150が、アナログ信号プロセッサ126に結合され得る。さらに、オーディオ増幅器152が、ステレオオーディオコーデック150に結合され得る。例示的な態様では、第1のステレオスピーカー154および第2のステレオスピーカー156は、オーディオ増幅器152に結合される。
図2は、マイクロフォン増幅器158もステレオオーディオコーデック150に結合できることを示す。加えて、マイクロフォン160が、マイクロフォン増幅器158に結合され得る。特定の態様では、周波数変調(「FM」)ラジオチューナ162がステレオオーディオコーデック150に結合され得る。また、FMアンテナ164がFMラジオチューナ162に結合される。さらに、ステレオヘッドフォン166がステレオオーディオコーデック150に結合され得る。
【0044】
図2は、さらに、無線周波(「RF」)送受信機168がアナログ信号プロセッサ126に結合できることを示す。RFスイッチ170がRF送受信機168およびRFアンテナ172に結合され得る。
図2に示されるように、キーパッド174がアナログ信号プロセッサ126に結合され得る。また、マイクロフォン付きモノヘッドセット176は、アナログ信号プロセッサ126に結合され得る。さらに、バイブレータデバイス178は、アナログ信号プロセッサ126に結合され得る。
図2は、たとえばバッテリなどの電源188が、電力管理集積回路(「PMIC」)180を介してオンチップシステム102に結合されることも示す。ある特定の態様では、電源は、充電式DCバッテリ、または交流(「AC」)電源に接続されたAC-DC変換器から取り出されるDC電源を含む。
【0045】
CPU110は、1つまたは複数の内部のオンチップ熱センサ157A、さらには、1つまたは複数の外部のオフチップ熱センサ157Bにも結合され得る。オンチップ熱センサ157Aは、垂直のPNP構造に基づき通常は相補型金属酸化膜半導体(「CMOS」)超大規模集積(「VLSI」)回路に専用である、絶対温度に比例する(「PTAT」)1つまたは複数の温度センサを含み得る。オフチップ熱センサ157Bは、1つまたは複数のサーミスタを含み得る。熱センサ157は、アナログデジタル変換器(「ADC」)コントローラ103(
図3A参照)によってデジタル信号に変換される、電圧降下を発生させ得る。しかし、本発明の範囲から逸脱することなく、他の種類の熱センサ157が利用されてもよい。
【0046】
熱センサ157は、ADCコントローラ103により制御され監視されるのに加えて、TABモジュール101によっても制御され監視され得る。TABモジュール101は、LPプロセッサ111によって実行されるソフトウェアを含み得る。しかしながら、本発明の範囲から逸脱することなく、TABモジュール101はまた、ハードウェアおよび/またはファームウェアから形成することができる。TABモジュール101は、センサ157によって生成される信号のどの組合せによってもトリガされ得るブートシーケンス遅延および/または変更を監視および適用する役割を果たし得る。たとえば、TABモジュール101は、いくつかの実施形態では、センサ157Aによって測定された動作温度を温度閾値と比較し、比較に基づいてブートシーケンスを遅延させることを選ぶことができる。他の実施形態では、TABモジュール101は、センサ157Bによってとられた「接触温度」測定値を温度閾値と比較し、比較に基づいて、接触温度が上昇しないようにするために、低下したレベルの処理能力でPCD100をオンラインにするようにブートシーケンスを修正することを選ぶことができる。特に、TABモジュール101によるブートシーケンス遅延および/または変更の適用は、危機的温度および電力崩壊およびリブートの繰り返しを回避することによって、PCD100がユーザ経験を最適化するのを助け得る。
【0047】
タッチスクリーンディスプレイ132、ビデオポート138、USBポート142、カメラ148、第1のステレオスピーカー154、第2のステレオスピーカー156、マイクロフォン160、FMアンテナ164、ステレオヘッドフォン166、RFスイッチ170、RFアンテナ172、キーパッド174、モノヘッドセット176、バイブレータ178、熱センサ157B、PMIC180および電源188は、オンチップシステム102の外部にある。しかし、モニタモジュール114は、PCD100上で動作可能なリソースのリアルタイムの管理を援助するために、アナログ信号プロセッサ126およびCPU110およびLPプロセッサ111によって、これらの外部デバイスのうちの1つまたは複数から1つまたは複数の指示または信号を受信することもできることを理解されたい。たとえば、モニタモジュール114によってポーリングされ生成される信号は、メイン熱ポリシー管理(「TPM」)モジュール113によって、ブートシーケンスの完了後の、PCD100における熱エネルギー生成を管理するのに使うことができる。さらに、
図2のPCD100の例示的な実施形態において、オンチップシステム102に対して外部として示されるこれらのデバイスのうちの1つまたは複数は、他の例示的な実施形態ではチップ102上に存在し得ることが理解されよう。
【0048】
ある特定の態様では、本明細書で説明される方法ステップのうちの1つまたは複数は、1つまたは複数のTABモジュール101およびTPMモジュール113を形成する、メモリ112に記憶された実行可能命令およびパラメータによって実施され得る。TABモジュール101およびTPMモジュール113を形成するこれらの命令は、本明細書で説明される方法を実施するために、ADCコントローラ103に加えて、CPU110、アナログシグナルプロセッサ126、LPプロセッサ111または別のプロセッサによって実行され得る。さらに、プロセッサ110、111、126、メモリ112、メモリ112に記憶された命令、またはそれらの組合せは、本明細書に記載された方法ステップのうちの1つまたは複数を実施するための手段として機能し得る。
【0049】
図3Aは、
図2に示されるチップ102のための、ハードウェアの例示的な空間配置を示す機能ブロック図である。この例示的な実施形態によると、アプリケーションCPU110およびLPプロセッサ111がチップ102の遠く左側の領域に配置され、一方モデムCPU168、126がチップ102の遠く右側の領域に配置される。アプリケーションCPU110は、第0のコア222、第1のコア224、および第Nのコア230を含む、マルチコアプロセッサを含み得る。アプリケーションCPU110は、TPMモジュール113を実行していてよく(ソフトウェアで具現化される場合)、または、TPMモジュール113を含んでよい(ハードウェアで具現化される場合)。同様に、LPプロセッサ111は、TABモジュール101を実行していてよく(ソフトウェアで具現化される場合)、または、TABモジュール101を含んでよい(ハードウェアで具現化される場合)。アプリケーションCPU110は、オペレーティングシステム(「O/S」)モジュール207を含むように、さらに例示される。LPプロセッサ111は、ADCコントローラ103と接続されて、およびモニタモジュール114を含むようにさらに示されている。アプリケーションCPU110は、アプリケーションCPU110に隣接して配置されチップ102の左側の領域にある、1つまたは複数の位相ロックループ(「PLL」)209A、209Bに結合され得る。モニタモジュール114およびADCコントローラ103は、「チップ102上」および「チップ102外」に設けられ得る複数の熱センサ157を監視し追跡することを担い得る。
【0050】
オンチップまたは内部熱センサ157Aは、様々な場所に、およびこれらの場所に近位の1つまたは複数の構成要素に関連付けられて配置され得る。非限定的な例として、第1の内部熱センサ157A1は、アプリケーションCPU110とモデムCPU168、126との間に、かつ内部メモリ112に隣接して、チップ102の上部の中心領域に配置され得る。第2の内部熱センサ157A2は、モデムCPU168、126の下の、チップ102の右側領域に配置され得る。この第2の内部熱センサ157A2はまた、進化した縮小命令セットコンピュータ(「RISC」)命令セットマシン(「ARM」)177と第1のグラフィックプロセッサ135Aとの間にも配置され得る。デジタルアナログコントローラ(「DAC」)173は、第2の内部熱センサ157A2とモデムCPU168、126との間に配置され得る。
【0051】
第3の内部熱センサ157A3は、第2のグラフィックプロセッサ135Bと第3のグラフィックプロセッサ135Cとの間の、チップ102の遠く右側の領域に配置され得る。第4の内部熱センサ157A4は、チップ102の遠く右側の領域に、かつ第4のグラフィックプロセッサ135Dの下に配置され得る。第5の内部熱センサ157A5は、チップ102の遠く左側の領域に、かつPLL209に隣接して配置され得る。
【0052】
1つまたは複数の外部熱センサ157Bも、ADCコントローラ103に結合され得る。第1の外部熱センサ157B1は、チップの外部に、かつ、モデムCPU168、126、ARM177、およびDAC173を含み得るチップ102の右上4分の1の領域に隣接して配置され得る。第2の外部熱センサ157B2は、チップの外部に、かつ、第3のグラフィックプロセッサ135Cおよび第4のグラフィックプロセッサ135Dを含み得るチップ102の右下4分の1の領域に隣接して配置され得る。特に、外部熱センサ157Bのうちの1つまたは複数は、PCD100の接触温度、すなわちユーザがPCD100に接触する際に受け得る温度を示すのに活用することができる。
【0053】
図3Aに示されるハードウェアの様々な他の空間構成が、本発明の範囲から逸脱することなく実現され得ることを、当業者は認識するだろう。
図3Aは、さらに1つの例示的な空間的配置と、TABモジュール101、モニタモジュール114およびADCコントローラ103がどのように、
図3Aに示す例示的な空間的配置に応じる熱条件を認識し、認識された熱条件を温度閾値と比較し、ブートシーケンスを許可し、遅延させ、または修正するための論理を適用することができるかとを示す。
【0054】
図3Bは、熱アウェアブートシーケンスをサポートするための、
図2および
図3AのPCD100の例示的なソフトウェアアーキテクチャを示す概略図である。
図3Bに示されるように、LPプロセッサ111はバス211を介してメモリ112に結合される。CPU110は、上述したように、N個のコアプロセッサ222、224、Nを有する多重コアプロセッサであり、メイン熱ポリシーマネージャモジュール113を含み、PCD100が完全にブートされ、稼動中になると、またはモジュール113を実行することができる。当業者には知られているように、第0のコア222、第1のコア224、および第Nのコア230の各々は、専用のアプリケーションまたはプログラム、たとえば、メインTPMモジュール113に関連付けられたプログラムなどをサポートするために利用可能であってよい。あるいは、2つ以上の利用可能なコアにわたる処理のために、1つまたは複数のアプリケーションまたはプログラムを分散することができる。特に、熱アウェアブーティングのための方法の実行について、CPU110に対するブートシーケンスの許可、遅延、または修正に関連して記載するが、そのような方法の適用は有利には、熱アグレッサとして識別され得る、PCD100内のどの構成要素に対してもブートシーケンスを許可し、遅延させ、または修正し得ることが当業者には認識されよう。
【0055】
LPプロセッサ111は、ソフトウェアおよび/またはハードウェアを含み得るTABモジュール101から、命令を受け取ることができる。ソフトウェアとして具現化される場合、TABモジュール101は、LPプロセッサ111および/または他のプロセッサにより実行されている他のアプリケーションプログラムに対して命令を発する、LPプロセッサ111により実行される指示を含む。たとえば、TABモジュール101は、LPプロセッサ111に、優先度がより高い構成要素のブートに適応し得る閾値を熱エネルギーレベルが下回ったままであるように特定の構成要素のブートシーケンスを遅延させるよう命令することができる。この例により特有なこととして、CPU110のコア222に専用の特定の高優先度アプリケーションが素早くオンラインにされることを確実にしようとするTABモジュール101は、LPプロセッサ111に、熱的に強力な隣接コア224のブートを遅延させればよい。あるいは、TABモジュール101は、熱的に攻撃的なコア224が低減周波数でオンラインにされてよく、そうすることによってコア224が生成する熱エネルギーの量を緩和し、コア222の近くの温度レベルが危機的閾値を超えないことを確実にすると判断してよい。有利には、そうすることによって、TABモジュール101は、PCD100が理想よりも低い熱条件下でブートされていてもコア222に関連付けられた高優先度アプリケーションを利用可能にすることによって、ユーザ経験を最適化することが可能であり得る。
【0056】
当技術分野で知られているように、バス211は、1つまたは複数のワイヤード接続またはワイヤレス接続を介した複数の通信経路を含み得る。バス211は、通信を可能にするために、コントローラ、バッファ(キャッシュ)、ドライバ、レピータ、および受信機のような、簡単にするために省略される追加の要素を有してもよい。さらに、バス211は、上述の構成要素の間での適切な通信を可能にするために、アドレス、制御、および/またはデータ接続を含み得る。
【0057】
図3Bに示すように、PCD100によって使用される論理がソフトウェアに実装されるとき、開始論理250、管理論理260、熱ブートインターフェース論理270、アプリケーションストア280内のアプリケーション、TPLテーブル24に関連するデータ、およびファイルシステム290の部分のうちの1つまたは複数が、任意のコンピュータ関連のシステムもしくは方法によって、またはそれと関連して使用するために、任意のコンピュータ可読媒体に記憶できることに留意されたい。
【0058】
この文書の文脈では、コンピュータ可読媒体は、コンピュータ関連のシステムまたは方法によって、またはそれと関連して使用するために、コンピュータプログラムおよびデータを格納または記憶することができる、電子式、磁気式、光学式、または他の物理デバイスまたは手段である。様々な論理素子およびデータストアは、たとえばコンピュータベースのシステム、プロセッサを含むシステム、または命令実行システム、装置、もしくはデバイスから命令をフェッチし、命令を実行することができる他のシステムのような、命令実行システム、装置、またはデバイスによって、またはそれと関連して使用するために、任意のコンピュータ可読媒体に組み込まれ得る。この文書の文脈では、「コンピュータ可読媒体」は、命令実行システム、装置、もしくはデバイスによって、またはそれと関連して使用するために、プログラムを記憶、通信、伝搬、または移送することができる任意の手段であってよい。
【0059】
コンピュータ可読媒体は、限定はされないがたとえば、電子式、磁気式、光学式、電磁式、赤外線式、または半導体の、システム、装置、デバイス、または伝搬媒体であってよい。コンピュータ可読媒体のより具体的な例(非網羅的なリスト)には、1つまたは複数の配線を有する電気的接続(電子式)、ポータブルコンピュータディスケット(磁気式)、ランダムアクセスメモリ(「RAM」)(電子式)、読取り専用メモリ(「ROM」)(電子式)、消去可能プログラマブル読取り専用メモリ(「EPROM」、「EEPROM」、または「フラッシュ」メモリ)(電子式)、光ファイバ(光学式)、および携帯式コンパクトディスク読取り専用メモリ(「CDROM」)(光学式)が含まれるはずである。プログラムは、たとえば紙または他の媒体の光学走査を介して、電子的に記録され、次いで、コンパイルされ、解釈され、または場合によっては、必要に応じて適切な方法で処理され、次いでコンピュータメモリに記憶され得るので、コンピュータ可読媒体は、プログラムが印刷される紙または別の適切な媒体でさえあり得ることに留意されたい。
【0060】
代替の実施形態では、開始論理250、管理論理260、および場合によっては熱ブートインターフェース論理270のうちの1つまたは複数がハードウェアに実装されるとき、様々な論理は、各々当技術分野でよく知られている以下の技術、すなわち、データ信号に対する論理機能を実装するための論理ゲートを有する個別の論理回路、適切な組合せの論理ゲートを有する特定用途向け集積回路(「ASIC」)、プログラマブルゲートアレイ(「PGA」)、フィールドプログラマブルゲートアレイ(「FPGA」)などのうちのいずれか、またはその組合せによって実装することができる。
【0061】
メモリ112は、フラッシュメモリまたはソリッドステートメモリデバイスなどの不揮発性データ記憶デバイスであり得る。単一のデバイスとして示されているが、メモリ112は、デジタル信号プロセッサおよび/またはプロセッサ111に結合された別個のデータストアを有する分散型メモリデバイスでもよい。
【0062】
熱アウェアブーティングのための例示的な一実施形態において、開始論理250は、ブートシーケンスを管理または制御するための選択プログラムを選択的に識別し、ロードし、実行するための1つまたは複数の実行可能命令を含む。開始論理250は、TABモジュール101による、様々な温度測定値と閾値温度設定の比較に基づいて選択プログラムを識別し、ロードし、実行すればよい。例示的な選択プログラムは、組込みファイルシステム290のプログラムストア296で見つけることができ、ブートアルゴリズム297とパラメータのセット298との特定の組合せによって定義される。いくつかの実施形態において、ブートアルゴリズム297は、PCD100内の1つまたは複数の構成要素の性能スケーリングを対象とし得る。
例示的な選択プログラムは、LPプロセッサ111によって実行されると、TABモジュール101によって与えられる制御信号と組み合わせて、モニタモジュール114によって与えられる1つまたは複数の信号に従って、1つまたは複数の構成要素が、低下したレベルの電力消費でオンラインにされるように、ブートシーケンスを遅延させ、ブートシーケンスの完了を許可し、またはブートシーケンスを修正するように動作し得る。この点について、モニタモジュール114は、TABモジュール101から受け取られた、イベント、プロセス、アプリケーション、リソース状態の条件、経過時間、ならびに温度などの、1つまたは複数のインジケータを提供することができる。
【0063】
管理論理260は、所与の熱ブートポリシーを終了させ、ならびにより適切な熱ブートポリシーを選択的に識別し、ロードし、実行するための1つまたは複数の実行可能命令を含む。管理論理260は、実行時に、またはPCD100が電力供給されデバイスの操作者によって使用されている間に、これらの機能を実施するように構成される。交換プログラムは、組込みファイルシステム290のプログラムストア296で見つけることができ、いくつかの実施形態では、ブートアルゴリズム297とパラメータのセット298との特定の組合せによって定義され得る。
【0064】
交換プログラムは、LPプロセッサ111によって実行されると、モニタモジュール114によって与えられる1つまたは複数の信号に従って、PCD100内の1つまたは複数の構成要素向けのブートシーケンスを許可し、遅延させ、または修正するように動作し得る。これに関して、モニタモジュール114は、TABモジュール101から発信する制御信号に応答して、イベント、プロセス、アプリケーション、リソース状態の条件、経過時間、温度、漏洩電流などの、1つまたは複数のインジケータを提供することができる。
【0065】
インターフェース論理270は、組込みファイルシステム290に記憶された情報を観察し、構成し、または場合によっては更新するために、外部入力を提示し、管理し、それと対話するための1つまたは複数の実行可能命令を含む。一実施形態では、インターフェース論理270は、USBポート142を介して受信された製造業者の入力とともに動作することができる。これらの入力は、プログラムストア296から削除されるべき、またはプログラムストア296に追加されるべき、1つまたは複数のプログラムを含むことができる。あるいは、入力は、プログラムストア296内のプログラムのうちの1つまたは複数に対する編集または変更を含むことができる。その上、入力は、開始論理250と管理論理260の一方または両方に対する1つまたは複数の変更、または全交換を識別することができる。例として、入力は、ブートがある特定の回数または総持続期間だけ遅延されているとき、温度測定値にかかわらずブートシーケンスを許可するよう、PCD100に命令する管理論理260に対する変更を含み得る。
【0066】
インターフェース論理270により、製造業者が、PCD100の定義された動作状態の下で、エンドユーザの体験を制御可能に構成および調整することが可能になる。メモリ112がフラッシュメモリであるとき、開始論理250、管理論理260、インターフェース論理270、アプリケーションストア280内のアプリケーションプログラム、TPLテーブル24内のデータ、または組込みファイルシステム290内の情報のうちの1つまたは複数は、編集され、置き換えられ、または場合によっては修正することができる。いくつかの実施形態では、インターフェース論理270により、PCD100のエンドユーザまたは操作者が、開始論理250、管理論理260、アプリケーションストア280内のアプリケーション、TPLテーブル24内のデータ、および組込みファイルシステム290内の情報を検索し、特定し、修正し、または置き換えることができる。操作者は、得られたインターフェースを使用して、PCD100の次の開始時に実装される変更を行うことができる。あるいは、操作者は、得られたインターフェースを使用して、実行時に実装される変更を行うことができる。
【0067】
組込みファイルシステム290は、階層配置の熱アウェアブートモードストア292を含む。これに関して、ファイルシステム290は、PCD100が使用する様々なパラメータ298およびブートシーケンスアルゴリズム297の構成および管理のための情報を記憶するための、その全ファイルシステム容量の確保された部分を含むことができる。
図3Bに示すように、ストア292は、プログラムストア296を含み、ストア296は、1つまたは複数の熱アウェアブートプログラムを含む。
【0068】
図4は、PCD100のQoSおよび全体的ユーザ経験を最適化するようにTABモジュール101によって認識および管理され得る様々な熱ブート状態405、410、415、420を示す例示的な状態
図400である。第1の熱ブート状態405は、TABモジュール101の熱アウェアブートポリシーが不変のままである、「正常な」状態を含むことができる。この例示的な第1のおよび正常な状態405において、モニタモジュール114によってポーリングされた温度は、危機的温度に達するいかなる恐れも危険もなく、PCD100内の構成要素が全電力容量および機能性でブートされ得るように、所定の閾値を十分に下回る。この例示的な状態において、モニタモジュール114によってポーリングされた接触温度または他の熱インジケータは、最大閾値を十分に下回り得る。
【0069】
第2の熱ブート状態410は、TABモジュール101が、モニタモジュールによってポーリングされた、上昇した熱インジケータを認識するとともに、その熱アウェアブートポリシーを、PCD100の1つまたは複数の処理構成要素に対して修正することができる「上昇」状態を含み得る。この例示的な第2の状態410には、PCD100の健全性も、ミッションクリティカルなサービスの配信も危険にさらすことなく、PCD100内のすべての構成要素が全電力でブートされ得るわけではないことを熱インジケータが示唆するとき、TABモジュール101によって達し、または入ることができる。
【0070】
第2の上昇熱ブート状態410において、TABモジュール101は、TPLテーブル24を照会し、構成要素をブートした結果として生成された熱エネルギーにより、PCD100が重度または危機的状態に入ることがないように、1つまたは複数の処理構成要素の性能をスケーリングするよう、LPプロセッサ111に要求することができる。この特定の状態410において、TABモジュール101は、操作者によってほとんど知覚可能でないとともにPCD100によって提供されるサービス品質を最小限にしか低下させ得ない性能スケーリングを実装または要求することによって、ブートシーケンスを修正するように設計される。この第2の上昇熱ブート状態410のさらなる詳細は、
図5に関連して以下に記載される。
【0071】
第3の熱ブート状態415は、TABモジュール101が、上述された第2の上昇状態410と比較してより攻撃的な熱アウェアブートポリシーを要求および/または適用する、「重度の」状態を含むことができる。これは、この状態では、TABモジュール101が操作者の観点からサービス品質にあまり関心がないことを意味する。この重度の熱ブート状態において、TABモジュール101は、ブートシーケンスを完了する前にPCD100の温度を下げるために、全体的熱エネルギー消散レベルを緩和または低下させることをより懸念する。この第3の熱ブート状態415において、操作者によって影響が容易に認知または観察されるように、PCD100の1つもしくは複数の構成要素が、完全ブートにおいて厳しくスケーリングされ、または1つもしくは複数の構成要素のブートが完全にキルされてよい。第3の重度の熱ブート状態415、およびTABモジュール101によって適用または開始される対応する熱アウェアブートポリシーは、
図5に関連して以下でさらに詳しく記載される。
【0072】
この図の中の矢印が示すように、各々の熱ブートは、順番に開始される場合があるか、または、検出できる熱エネルギー消散内の変化の大きさに応じて、順番と関係なく開始される場合がある。したがって、このことは、TABモジュール101が、センサ157によって検出される熱インジケータの変化に基づいて、第1および正常な熱ブート状態405を出て、第3および重度の熱ブート状態415に関連付けられた熱アウェアブートポリシーに入り、または開始し得ることを意味する。同様に、PCD100は、第2または上昇熱ブート状態410にあり、熱インジケータの、認識された変化に基づいて、第4または危機的な状態420に入り、または開始することができる。この例示的な第3および危機的な状態420において、TABモジュール101は、PCD100に含まれる1つまたは複数の構成要素が熱的不安定性または永続的な損傷さえをも経ることになる温度に達することなくPCD100をブートするために、可能な限り多くの処理構成要素の電力レベルを大幅にスケーリング中であり得る。
【0073】
この第4および危機的な熱ブート状態420は、危機的温度またはPCD100内の1つまたは複数の構成要素に対する永続的な損傷を回避するために、PCD100のブートシーケンスを完全に遅延させることができる。第4の熱ブート状態420は、TABモジュール101が、構成要素をオンラインにする前に熱エネルギーがより安全なレベルに消散する機会を与えるために、ブートシーケンスの一連の遅延を適用またはトリガする「危機的」状態を含み得る。第4の危機的な熱状態420は、
図5に関連して以下でさらに詳しく記載される。
【0074】
熱アウェアブーティングのための様々な方法は、
図4に示す4つの熱ブート状態405、410、415、および420に限定されない。特定のPCD100に応じて、追加のまたはより少数の熱ブート状態が、本発明の範囲から逸脱することなく提供されてよい。すなわち、さらなる熱ブート状態が、特定のPCD100の機能および動作を改善することができる一方、他の状況では、より少ない熱ブート状態が、固有のハードウェアおよび/またはソフトウェアを有する特定のPCD100に適切であり得ることを、当業者は認識されよう。
【0075】
図5は、QoSおよび全体的ユーザ経験を最適化するために適用することができるとともに、
図4の例示に関して記載した例示的なブート状態405、410、415、420など、PCD100の特定の熱ブート状態に依存する例示的な熱アウェアブートポリシーを示す
図500である。前述したように、この第1の熱ブート状態405において、センサ157によって測定され、モニタモジュール114によってポーリングされる熱インジケータは、全電力ブートシーケンスが悪影響を与えない安全な熱エネルギーレベルをPCD100が受けていることを示し得る。一般に、この第1の熱ブート状態において、TABモジュール101は、PCD100内の構成要素がそれらの最大限の可能性および最も高い性能までブートされるように、どの熱アウェアブートポリシーも適用中でないか、または要求済みでない。したがって、ブートシーケンスは、変更も遅延もなしで完了され、PCD100の全機能性が可能な限り素早くユーザに対して利用可能にされ得る。
【0076】
上昇状態410とも呼ばれる第2の熱ブート状態410において、TABモジュール101は、PCD100の操作者によって知覚されるようなサービス品質の低下の知覚をほとんどまたはまったく伴わずに高い性能を維持する目的で、熱アウェアブートポリシーを開始または要求することができる。PCD100は、優先度が比較的低い作業負荷に専用の処理構成要素をわずかにスケーリングするだけで、全電力レベルの近くまでブートされる。あるいは、上昇した熱インジケータに関連付けられた様々な処理構成要素が、構成要素に割り当てられた作業負荷の優先度を考慮せずに、全電力未満のある程度の電力レベルまでブートされ得る。
【0077】
ここで、重度の状態415としても知られる、
図5の第3の熱ブート状態415を参照すると、TABモジュール101は、おそらく知覚可能な性能低下がPCD100の操作者によって観察される、より攻撃的な熱アウェアブートポリシーを適用または要求することができる。この例示的な熱ブート状態415によれば、TABモジュール101は、ブートされると、GPU182またはCPU110のコアのような1つまたは複数の構成要素に対して電力の低下を引き起こす可能性がある。TABモジュール101は、優先度がより高い作業負荷に関連付けられた他の処理構成要素をオンラインにすることを好んで、いくつかの構成要素のブーティングを完全に遅延させてもよい。本質的に、この第3および重度の熱ブート状態415の熱アウェアブートポリシーは、第2の上昇した熱ブート状態410を参照して上述したものと同じであり得る。しかしながら、これらの同じ熱アウェアブートポリシーは、より攻撃的な方式で適用することができる。
【0078】
ここで、
図5の第4および危機的な熱ブート状態420を参照すると、TABモジュール101は、PCD100が危機的レベルの熱エネルギー消散を受け、したがって、どの不可欠ではないハードウェアのブートシーケンスも持続させることができないと認識し得る。TABモジュール101は、LPプロセッサ111に、超過熱エネルギーが消散する機会をもつまで、ブートシーケンスを全体的に遅延させ、またはおそらく、不可欠なハードウェアのブートのみを許可するよう命令すればよい。「不可欠ではない」ハードウェアモジュールおよび/またはソフトウェアモジュールは、特定のPCD100の各々のタイプによって異なる場合がある。例示的な一実施形態によると、すべての不可欠ではないハードウェアモジュールおよび/またはソフトウェアモジュールは、緊急の911通話機能および全地球測定システム(「GPS」)機能以外のすべてを含むことができる。このことは、この第4の危機的な熱ブート状態420では、TABモジュール101が、緊急の911通話およびGPS機能性に影響しないすべての構成要素のブーティングを遅延させる場合があることを意味する。TABモジュール101は、モニタモジュール114によって監視される危機的温度または熱インジケータに応じて、構成要素のブーティングを、順に、および/または並行して許可または拒否することができる。
【0079】
図6は、監視される熱的インジケータに基づいてブートシーケンスを許可または遅延させることを含む、PCD100における熱アウェアブーティングのための方法600を示す論理フローチャートである。
図6の方法600は、第1のブロック605で始まり、ここでTABモジュール101は、モニタモジュール114とともに、集積回路102の上に、または回路102から離れて置かれた温度センサなど、1つまたは複数の熱インジケータセンサ157をポーリングする。
特に、上で説明したように、様々なセンサ157は、PCD100内の構成要素に関連付けられ、ブートシーケンスの早い段階中にポーリングまたは監視される。したがって、ブロック605によって表される機能が最初に実行されるとき、PCD100内の構成要素の多くはオンラインではない。
【0080】
決定ブロック610で、TABモジュール101は、ブロック605でポーリングされた測定値を所定の閾値と比較する(この例示のために、熱インジケータおよび関連閾値については、温度読取り値のコンテキストで記載する)。所定の温度閾値は、ブートプロセス中のおそらく超過熱エネルギー生成および消散から、構成要素の健全性を危うくすることも危険にさらすこともなく、PCD100内の様々な構成要素がブートされ得る最大許容可能温度を示し得る。測定された温度が、決定ブロック610で、ポーリングされたセンサ157に関連付けられた構成要素についての関連閾値未満であると判断された場合、「no」分岐に続いてブロック635に進み、PCD100は、ブートシーケンスを完了することを認められる。特に、ブートプロセスの完了は、全電力がCPU110などの処理構成要素に供給されることを含み得る。有利には、センサ157をポーリングし、測定された温度が、センサ157に関連付けられた構成要素の所定の閾値より低いことを確認することによって、PCD100内の構成要素の健全性を危うくすることも、ユーザ経験を過度に犠牲にすることもなく、PCD100は、完全にブートされ、フルレベルのサービス品質(「QoS」)まで上げられ得る。
【0081】
決定ブロック610で、測定された温度のうちの1つまたは複数が、所定の閾値を超えると判断された場合、TABモジュール101は、ブートシーケンスの完了により、熱エネルギー生成および消散が構成要素の健全性を危険にさらすと推定してよい。例示的な方法600でのそのような状況において、「yes」分岐に続いてブロック615に進み、ブートシーケンスが遅延される。有利には、ブートシーケンスを遅延させることによって、熱エネルギーには、消散する機会を与えることができ、そうすることによって、温度が、閾値より低いレベルまで下がる。遅延の長さは所定であってもよく、いくつかの実施形態では、遅延の長さは、測定された値と所定の閾値との間の差に相対して算出することもできる。
【0082】
ブロック615でブートシーケンスを遅延させた後、温度センサ157は、ブロック620で再度ポーリングされ、所定の閾値と再度比較される。遅延により、温度が今では閾値を下回るように超過熱エネルギーが消散したことを、測定された温度が示す場合、「no」分岐に続いてブロック635に進み、PCD100は、ブートシーケンスを完了することを認められる。ただし、決定ブロック625で、温度のうちの1つまたは複数が、依然として所定の閾値を超える場合、「yes」分岐に続いて、決定ブロック630に進む。
【0083】
決定ブロック630で、遅延の回数または全長が確認され、遅延周期についての所定の閾値が満たされている場合、「yes」分岐に続いてブロック635に進んでよく、ここでPCD100は、測定された温度が依然として最大閾値を上回っていても、ブートシーケンスを完了することを認められる。特に、QoSおよびユーザ経験を最適化するために、熱アウェアブーティングのためのシステムおよび方法のいくつかの実施形態は、最大数の遅延周期を含み得ると想定される。周期の最大数、または遅延周期の総持続期間は、上昇した温度条件下でPCD100をブートする際の危険と、ユーザ経験およびQoSレベルとのトレードオフに基づいて算出することができる。
【0084】
決定ブロック630で、遅延周期の最大数、または遅延周期の総持続期間が満たされていないと判断された場合、「no」分岐に続いてブロック615に戻ってよく、ここでブートシーケンスは、追加の熱エネルギー消散を可能にするためにさらに遅延される。このようにして、方法がブロック635に移るよう、およびPCD100がブートシーケンスを完了することを許可されるよう、アルゴリズムが命じるまで、一続きのブロック615〜630が繰り返される。
【0085】
図7は、熱ブート状態(例示的な状態については、
図4〜
図5参照)の認識に基づいて、および
図8の例示的な熱性能ルックアップテーブルに従って、ブートシーケンスを修正することを含む、PCD100における熱アウェアブーティングのための方法700を示す論理フローチャートである。
図8は、
図7に示す例示的な方法700など、熱アウェアブーティングのための方法の実施形態によって照会することができる例示的な熱性能ルックアップテーブル24である。
図8の熱性能ルックアップテーブル24について、例示的な熱アウェアブーティング方法700と並行して記載する。
【0086】
ブロック705で開始すると、モニタモジュール114は、熱インジケータに関連付けられた測定値を求めて、1つまたは複数のセンサ157をポーリングすることができる。上述したように、モニタモジュール114によってポーリングされた測定値は、動作温度、接触温度、母線上での漏れ電流、バッテリの充電状態などを含むが、それに限定されない、どの熱インジケータにも関連付けられ得ると想定される。熱インジケータ測定値は、デジタル信号に変換され、TABモジュール101にフォワードされ得る。ブロック710で、TABモジュール101は、熱性能ルックアップテーブル24(
図8参照)を照会し、測定値を、テーブル24に含まれる様々な熱インジケータ範囲と比較することができる。続いて、決定ブロック715で、TABモジュール101は、存在する場合、テーブル24に含まれる閾値のうちのどれを超えているか判断することができる。
【0087】
図8の例示を参照すると、熱インジケータは、温度測定値の形であり、最も低い閾値は65℃である。したがって、決定ブロック715で、TABモジュール101が、テーブル24の照会から、ブロック705でとられた温度測定値が65℃の閾値を下回ると判断した場合、「正常」熱ブート状態に関連付けられた熱ブートポリシーが、ブロック735で適用され得る。
図8の例示的なTPLテーブル24において、「正常」熱ブート状態は、TABモジュール101が変更なしでブートシーケンスを許可するよう、すなわち、2つの例示的なコアが、それぞれ1.5GHzの全処理速度でオンラインになるよう命じる。2つのコアが1.5GHzの全処理速度でオンラインになると、ブロック740で、メインTPMモジュール113はオンラインになって、熱管理ポリシーを適用し、熱管理技法を実装することができる。
【0088】
ただし、決定ブロック715で、TABモジュール101が、ブロック710での比較から、温度測定値が、TPLテーブル24から照会された閾値を超えると判断した場合、「yes」分岐に続いてブロック720に進む。ブロック720で、TABモジュール101は、超えられた最も高い閾値に基づいて、TPLテーブル24から適切な熱ブートポリシーを選択することができる。たとえば、
図8の例示を参照すると、ブロック705でとられた温度測定値が、65℃を超えるが76℃未満である場合、「上昇」熱ブート状態に関連付けられたポリシーが、ブロック725でTABモジュール101によって適用され得る。つまり、TABモジュール101は、LPプロセッサ111に、2つの例示的なコアの各々を918MHzの低減周波数までブートするよう命令することによって、ブートシーケンスを修正することができる。有利には、ブートシーケンスをこのように修正することによって、完全にブートされたときにコアによって生成される熱エネルギーの量は、現在の熱条件を悪化させ、PCD100内の1つまたは複数の構成要素の健全性を危険にさらす程ではなくなる場合があるが、以前として高レベルのQoSおよびユーザ経験を、PCD100のユーザに提供する。
【0089】
ブロック720および725に戻って参照すると、決定ブロック715で、温度測定値が、76℃は超えるが80℃は超えないと判断された場合、TABモジュール101は、「重度」熱ブート状態に関連付けられた熱ブートポリシーを適用し、LPプロセッサ111に、単一コア用のブートプロセスのみを、786MHzの低減周波数で完了するよう命令することができる。重度熱ブート状態の例示的な熱ブートポリシーは、上昇ブート状態に関して記載したものよりも攻撃的であるが、このポリシーは、構成要素を損ない得る重度の熱条件下でPCD100がブートするよう頼まれたときでさえも、PCD100のユーザに何らかの機能性を少なくとも提供し得ることが当業者には認識されよう。
【0090】
同様に、TABモジュール101が、TPLテーブル24の照会から、測定された温度が80℃を超えると判断した場合、危機的熱ブート状態が認識され、LPプロセッサ111は、TABモジュール101によって、超過熱エネルギーが消散する機会を得るまで、ブートシーケンス全体を遅延させるよう命令され得る。特に、
図6の方法600に関して記載したように、モニタモジュール114は、熱インジケータをポーリングし続け(ブロック705)、方法700は、熱ブートポリシーに従ってPCD100がブートされるまで繰り返されてよい。
【0091】
ブロック725で、熱ブートポリシーに従ってブートされると、ブロック730で、TABモジュール101のいくつかの実施形態が、熱インジケータをポーリングし続け、熱インジケータに基づいて処理構成要素の電力周波数を上方または下方調整することができる。有利には、全電力未満の周波数レベルまでブートされた処理コアに、熱管理技法を適用し続けることによって、TABモジュール101は、ブロック740で、処理構成要素がメインTPMモジュール113をオンラインにするのに熱条件が適するまで、QoSおよびユーザ経験を最適化することができる。
【0092】
本発明が説明通りに機能するように、本明細書に記載されたプロセスまたはプロセスフロー内のある特定のステップが他のステップよりも前に行われるのは当然である。しかしながら、そのような順序またはシーケンスが本発明の機能を変えない場合、本発明は記載されたステップの順序に限定されない。すなわち、本発明の範囲および趣旨から逸脱することなく、あるステップは、他のステップの前に実施されるか、後に実施されるか、または他のステップと並行して(実質的に同時に)実施される場合があることを認識されたい。
いくつかの例では、ある特定のステップは、本発明から逸脱することなく、省略されるか、または実施されない場合がある。さらに、「その後」、「次いで」、「次に」などの語は、ステップの順序を限定することを意図していない。これらの語は、単に例示的な方法の説明を通じて読者を導くために使用されている。
【0093】
加えて、プログラミングの当業者は、たとえば本明細書内のフローチャートおよび関連する説明に基づいて、コンピュータコードを書くか、または適切なハードウェアおよび/もしくは回路を識別して、開示された発明を容易に実施することができる。したがって、特定の1組のプログラムコード命令または詳細なハードウェアデバイスの開示は、本発明をどのように製作および使用すべきかについて適切に理解するために必要であるとはみなされない。特許請求されるコンピュータ実装プロセスの発明性のある機能は、上記の説明において、かつ、様々なプロセスフローを示すことができる図面とともに、より詳細に説明される。
【0094】
1つまたは複数の例示的な態様では、記載された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せに実装することができる。ソフトウェアに実装される場合、機能は、1つもしくは複数の命令もしくはコードとしてコンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体上で送信することができる。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体とコンピュータ通信媒体の両方を含む。
記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であってよい。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形式で所望のプログラムコードを搬送もしくは記憶するために使用され得るとともに、コンピュータによってアクセスされ得る任意の他の媒体を備えることができる。
【0095】
また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(「DSL」)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。
【0096】
本明細書で使用する場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(「CD」)、レーザー(登録商標)ディスク、光ディスク、デジタル多用途ディスク(「DVD」)、フロッピー(登録商標)ディスク、およびブルーレイディスクを含み、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザーで光学的にデータを再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【0097】
したがって、選択された態様が詳細に図示および説明されたが、以下の特許請求の範囲によって定義されるような本発明の趣旨および範囲から逸脱することなく、各態様において様々な置換および改変を実施できることが理解されよう。