JP2014533859A - ヘテロジニアスマルチプロセッサシステムオンチップにおける熱駆動作業負荷スケジューリング - Google Patents

ヘテロジニアスマルチプロセッサシステムオンチップにおける熱駆動作業負荷スケジューリング Download PDF

Info

Publication number
JP2014533859A
JP2014533859A JP2014542327A JP2014542327A JP2014533859A JP 2014533859 A JP2014533859 A JP 2014533859A JP 2014542327 A JP2014542327 A JP 2014542327A JP 2014542327 A JP2014542327 A JP 2014542327A JP 2014533859 A JP2014533859 A JP 2014533859A
Authority
JP
Japan
Prior art keywords
processing component
eligible
code block
workload
processing components
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014542327A
Other languages
English (en)
Other versions
JP6249953B2 (ja
Inventor
サミット・スール
ジェイムズ・エム・アートマイアー
マーク・ディー・グーツィー
フィリップ・ティー・ミューラー
ボフスラフ・リフリキ
Original Assignee
クアルコム,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2014533859A publication Critical patent/JP2014533859A/ja
Application granted granted Critical
Publication of JP6249953B2 publication Critical patent/JP6249953B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

ヘテロジニアスマルチプロセッサシステムオンチップ(「SoC」)を含むポータブルコンピューティングデバイスにおける作業負荷の熱認識スケジューリングのための方法およびシステムの様々な実施形態が開示される。ヘテロジニアスマルチプロセッサSoCにおける個々の処理コンポーネントは所与の時間に異なる処理効率性を示し得るので、また処理コンポーネントのうちの2つ以上が、所与のコードブロックを処理する能力を有し得るので、コードブロックを効率的に処理するのに最も良い状況にある処理コンポーネントにリアルタイムまたはほぼリアルタイムで作業負荷を配分することによってサービス品質(「QoS」)を最適化するために、個々の処理コンポーネントの性能カーブをそれらの測定された動作温度で比較する熱認識作業負荷スケジューリング技法が利用され得る。

Description

関連出願の相互参照
2011年11月21日に出願された「THERMALLY DRIVEN WORKLOAD SCHEDULING IN A HETEROGENEOUS MULTI-PROCESSOR SYSTEM ON A CHIP」という表題の、出願番号第61/562,234号を割り当てられ、その出願の内容全体が参照によって本明細書に組み込まれる米国仮出願に対する、米国特許法第119条(e)による優先権が主張される。
ポータブルコンピューティングデバイス(「PCD」)は、個人レベルおよび専門レベルにおいて人々に必要なものになりつつある。これらのデバイスには、携帯電話、携帯情報端末(「PDA」)、ポータブルゲームコンソール、パームトップコンピュータ、および他のポータブル電子デバイスが含まれ得る。
PCDの1つの特有の態様は、ラップトップコンピュータおよびデスクトップコンピュータなどのより大型のコンピューティングデバイスで見られることが多い、ファンのような能動的な冷却デバイスを通常は有していないということである。ファンを使用する代わりに、PCDは、2つ以上の能動的かつ熱を発生させるコンポーネントが互いに近接して配置されないように、電子パッケージングの空間構成に依存する場合がある。2つ以上の熱を発生させるコンポーネントがPCD内で互いから適切に間隔を空けられれば、各コンポーネントの動作から発生する熱は、他のコンポーネントの動作に悪影響を与えることはない。その上、PCD内の熱を発生させるコンポーネントがデバイス内で他のコンポーネントから物理的に隔離されれば、熱を発生させるコンポーネントの動作から発生する熱は、他の周囲の電子装置に悪影響を与えることはない。多くのPCDはまた、それぞれのPCDを一緒に形成する複数の電子コンポーネントの間で熱エネルギーを管理するための、ヒートシンクなどの受動的な冷却デバイスに依存する場合がある。
現実には、PCDは、通常、サイズに制約があり、したがってPCD内のコンポーネント用の空間は貴重である場合が多い。したがって、通常は、技術者および設計者が、空間構成または受動的な冷却コンポーネントの配置の利用を通じて熱的な劣化または障害を軽減するのに十分な空間が、PCD内には単に存在しない。その結果、熱エネルギーの発生はPCDにおいて、性能を犠牲にして電子装置を弱めることまたは停止することを含み得る様々な熱管理技法の適用を通じて管理される場合が多い。
PCD内では、熱エネルギーの発生を軽減することとPCDにより提供されるサービス品質(「QoS」)に影響を与えることとの間のバランスを取ろうとして、熱管理技法が利用される。ヘテロジニアス処理コンポーネントを有するPCDでは、PCD内の様々な処理コンポーネントが同等に作られていないので、そのトレードオフのバランスを取ることによる問題を管理するは難しいことがある。たとえば、PCDには、所与のコードブロックを処理する能力を有する複数の処理コンポーネントが存在することがあり、それらのコンポーネントのそれぞれの動作温度に応じて、あるコンポーネントは、そのコードブロックを処理する際に、別のコンポーネントよりも効率的となる。その結果、作業負荷タスクが完了し、熱軽減対策が適用されるとき、コードブロックを処理するのに最も良い状況にある特定のプロセッサは、様々なプロセッサの個々の動作温度により刻一刻と変化し得る。
したがって、当技術分野において必要なものは、プロセッサの性能カーブのリアルタイムまたはほぼリアルタイムの比較分析に基づいて、ヘテロジニアス処理コンポーネントにわたりPCDにおける作業負荷をスケジューリングまたは配分するための方法およびシステムである。
ヘテロジニアスマルチプロセッサシステムオンチップ(「SoC」)を含むポータブルコンピューティングデバイスにおける作業負荷の熱認識(thermally aware)スケジューリングのための方法およびシステムの様々な実施形態が開示される。ヘテロジニアスマルチプロセッサSoCにおける個々の処理コンポーネントは所与の時間に異なる処理効率性を示し得るので、また処理コンポーネントのうちの2つ以上が、所与のコードブロックを処理する能力を有し得るので、コードブロックを効率的に処理するのに最も良い状況にある処理コンポーネントにリアルタイムまたはほぼリアルタイムで作業負荷を配分することによってサービス品質(「QoS」)を最適化するために、個々の処理コンポーネントの性能カーブをそれらの測定された動作温度で比較する熱認識作業負荷スケジューリング技法が利用され得る。
1つのそのような方法は、ヘテロジニアスマルチプロセッサSoC中の複数の個々の処理コンポーネントの各々に一意に関連付けられる温度測定値を監視することを伴う。コードブロックを処理するためにスケジューリングすることが必要になったとき、コードブロックを処理するのに適格な複数の処理コンポーネントのうちの2つ以上が識別される。識別された処理コンポーネントの各々に関連付けられる温度測定値を取得し、使用して、それらの処理コンポーネントに関連付けられる温度関連性能カーブのデータベースに照会する。性能カーブは、所与の個々の処理コンポーネントの、その処理コンポーネントが所与の温度で動作しているときの電力消費と作業負荷処理能力との間の関係を表す。照会された性能カーブが比較され、比較に基づいて、コードブロックを処理するのに利用可能な最も効率的な処理コンポーネントが選択される。コードブロックは、選択された処理コンポーネントに配分される。
本方法のいくつかの実施形態は、処理コンポーネントの現在の作業負荷を、各々に関連付けられる照会された性能カーブにマッピングすることによって、最も効率的な処理コンポーネントを選択する。他の実施形態は、コードブロックによって表される作業負荷の負担を、個々の処理コンポーネントの現在の作業負荷の負担に追加し、次いで将来の作業負荷を、各々に関連付けられる照会された性能カーブにマッピングする。さらに他の実施形態は、適格な処理コンポーネントの各々へのコードブロックの配分により起こり得る温度上昇を予測し、次いで予測される温度に基づいて、各処理コンポーネントの性能カーブを照会する。
有利なことに、システムおよび方法の実施形態は、コードブロックが処理するためにスケジューリング待ち行列から到着したときに、リアルタイムまたはほぼリアルタイムで最良の利用可能な処理コンポーネントを選択することによって、QoSを最適化する。このようにして、作業負荷の負担は、作業負荷を効率的に処理するのに最も良い状況にある処理コンポーネントに割り当てられ得る。特に、当業者であれば認識するように、様々な処理コンポーネントに関連する動作温度は時間とともに変化するので、作業負荷の熱認識スケジューリングのためのシステムおよび方法は、異なる処理コンポーネントに対して同様または同一のコードブロックをスケジューリングし得る。すなわち、ある時点で所与のコードブロックを効率的に処理するのに最も良い状況にある特定の処理コンポーネントは、後の時点で同一のコードブロックを処理するのに最も良い状況にある処理コンポーネントではないことがある。
図面では、別段に規定されていない限り、様々な図の全体を通して、同様の参照番号は同様の部分を指す。「102A」または「102B」などの文字指定を伴う参照番号の場合、文字指定は、同じ図に存在する2つの同様の部分または要素を区別することができる。参照番号がすべての図において同じ参照番号を有するすべての部分を包含することが意図されるとき、参照番号の文字指定は省略される場合がある。
異なる熱条件のもとで動作する例示的な処理コンポーネントの性能カーブのペアを示すグラフである。 異なる熱条件のもとで動作する、「低性能」中央処理装置(「CPU」)処理コンポーネントおよび「高性能」グラフィカル処理装置(「GPU」)処理コンポーネントという2つの例示的な処理コンポーネントの各々の性能カーブのペアを示すグラフである。 ヘテロジニアスマルチプロセッサシステムオンチップ(「SoC」)にわたる熱認識作業負荷スケジューリングを通じてポータブルコンピューティングデバイス(「PCD」)におけるサービス品質(「QoS」)を最適化するためのオンチップシステムの一実装形態を示す機能ブロック図である。 図3のPCDの例示的な実施形態を示す機能ブロック図である。 図4に示されるチップのための、ハードウェアの例示的な空間構成を示す機能ブロック図である。 プロセッサの性能カーブの比較分析に基づく、熱認識作業負荷スケジューリングをサポートするための、図4のPCDの例示的なソフトウェアアーキテクチャを示す概略図である。 プロセッサの性能カーブの比較分析に基づく、ヘテロジニアス処理コンポーネントにわたる熱認識作業負荷スケジューリングのための方法の一実施形態を示す論理的なフローチャートである。 プロセッサの性能カーブの比較分析のための例示的な副方法またはサブルーチンを示す論理的なフローチャートである。 プロセッサの性能カーブの比較分析のための例示的な副方法またはサブルーチンを示す論理的なフローチャートである。 プロセッサの性能カーブの比較分析のための例示的な副方法またはサブルーチンを示す論理的なフローチャートである。
「例示的な」という言葉は、「例、実例、または例示として機能すること」を意味するために本明細書で使用される。「例示的な」ものとして本明細書に記載されるいずれの態様も、必ずしも他の態様に対して排他的であるか、他の態様よりも好ましいか、または有利であると解釈されるべきではない。
本明細書では、「アプリケーション」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの実行可能なコンテンツを有するファイルも含むことができる。加えて、本明細書で言及する「アプリケーション」は、開封される必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなどの本質的に実行可能ではないファイルも含むことができる。
本明細書で使用される場合、「コンポーネント」、「データベース」、「モジュール」、「システム」、「熱エネルギー発生コンポーネント」、「処理コンポーネント」、「処理エンジン」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアを問わず、コンピュータ関連のエンティティを指すことが意図される。たとえば、コンポーネントは、プロセッサ上で動作しているプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータであり得るが、これらに限定されない。例として、コンピューティングデバイス上で動作しているアプリケーションとコンピューティングデバイスの両方は、コンポーネントであり得る。1つまたは複数のコンポーネントは、プロセスおよび/または実行スレッドの中に存在してよく、1つのコンポーネントは、1つのコンピュータに局在してよく、かつ/または2つ以上のコンピュータに分散してよい。加えて、これらのコンポーネントは、様々なデータ構造が記憶された様々なコンピュータ可読媒体から実行することができる。コンポーネントは、1つまたは複数のデータパケット(たとえば、信号によって、ローカルシステム、分散システムにおいて別のコンポーネントと対話し、かつ/またはインターネットなどのネットワークにわたって他のシステムと対話する、1つのコンポーネントからのデータ)を有する信号に従うなどする、ローカルプロセスおよび/またはリモートプロセスによって通信することができる。
本明細書では、「中央処理装置」(「CPU」)、デジタル信号プロセッサ(「DSP」)、および「チップ」という用語は、PCD中に存在し得る処理コンポーネントの非限定的な例であり、別段に規定されている場合を除き、互換的に使用される。その上、本明細書で区別されているように、CPU、DSP、またはチップは、「コア」または「サブコア」と本明細書では全般的に呼ばれる1つまたは複数の別個の処理コンポーネントからなることができる。
本明細書では、「熱」および「熱エネルギー」という用語は、「温度」の単位で測定され得るエネルギーを発生させまたは放散することが可能な、デバイスまたはコンポーネントに関連付けられて使われ得ることが理解されるだろう。その結果、「温度」という用語は、「熱エネルギー」を発生させるデバイスまたはコンポーネントの、相対的な暖かさまたは熱の欠如を示すことができる、何らかの基準値に対する任意の測定値を想定することがさらに理解されるだろう。たとえば、2つのコンポーネントの「温度」は、2つのコンポーネントが「熱的に」平衡であるとき同じである。
本明細書では、「作業負荷」、「処理負荷」、「処理作業負荷」および「コードブロック」という用語は互換的に使用され、全般的に、所与の実施形態の所与の処理コンポーネントに関連付けられるか、または割り当てられ得る処理負担または処理負担の割合を対象にする。上記に定義されたものに加えて、「処理コンポーネント」または「熱エネルギー発生コンポーネント」または「熱アグレッサ」は、限定はされないが、中央処理装置、グラフィカル処理装置、コア、メインコア、サブコア、処理エリア、ハードウェアエンジンなど、またはポータブルコンピューティングデバイス内の集積回路の内部もしくは外部にある任意のコンポーネントであり得る。その上、「熱負荷」、「熱分布」、「熱シグネチャ」、「熱処理負荷」などの用語が処理コンポーネント上で動作し得る作業負荷の負担を示す限り、本開示のこれらの「熱」の用語の使用が、処理負荷の分布、作業負荷の負担および電力消費に関連し得ることを、当業者は認識するだろう。
本明細書では、「熱軽減技法」、「熱ポリシー」、「熱管理」、および「熱軽減対策」という用語は、互換的に使用される。
当業者は、「DMIPS」という用語が、所与の数の100万命令毎秒を処理するのに必要なドライストーン反復の数を表すことを認識するだろう。本明細書では、この用語は、例示的な実施形態におけるプロセッサ性能の相対的なレベルを示すための尺度の一般的な単位として使用され、本開示の範囲内に入る任意の所与の実施形態が任意の特定のドライストーン評価を有するプロセッサを含むべきであること、または含むべきではないことを示唆するものと、解釈されることはない。
本明細書では、「ポータブルコンピューティングデバイス」(「PCD」)という用語は、バッテリーなどの限られた容量の電源で動作する任意のデバイスを記載するために使用される。何十年もの間バッテリー式PCDが使用されてきたが、第3世代(「3G」)および第4世代(「4G」)ワイヤレス技術の出現とともにもたらされた充電式バッテリーの技術的進歩は、複数の機能を有する多数のPCDを可能にした。したがって、PCDは、とりわけ、携帯電話、衛星電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、スマートブックまたはリーダー、メディアプレーヤ、上述のデバイスの組合せ、およびワイヤレス接続を有するラップトップコンピュータであり得る。
ヘテロジニアス処理コンポーネントを有するPCDにおけるQoS最適化のために処理性能を管理することが、作業負荷の配分に利用可能な個々の処理エンジンの異なる性能特性を利用することによって、達成され得る。ヘテロジニアス処理コンポーネントに含まれ得る様々な処理エンジンの異なる性能特性に関して、性能の差異を、限定はされないが、異なるレベルのシリコン、設計の差異などを含む、いくつもの理由に帰すことができることを、当業者は認識するだろう。その上、所与の処理コンポーネントに関連付けられる性能特性は、処理コンポーネントの動作温度、その処理コンポーネントに供給される電力などとの関係で変化し得ることを、当業者は認識するだろう。
たとえば、概して実行能力が低から高まで幅があるいくつかの異なる処理コアを含み得る例示的なヘテロジニアスマルチコアプロセッサについて考える(特に、当業者は、各々が1つまたは複数のコアを含むいくつかの異なる処理コンポーネントを含み得る例示的なヘテロジニアスマルチコアプロセッサシステムオンチップ(「SoC」)も考えられ得ることを認識するだろう)。当業者に理解されるように、ヘテロジニアスプロセッサ内の低性能から中性能の処理コアは、所与の作業負荷能力において、より低い電力漏洩率を示し、その結果、比較的実行能力の高い処理コアよりも、低い熱エネルギー発生率を示す。より能力の高いコアは、能力の低いコアよりも、短い期間で所与の数のDMIPを処理することが可能であり得る。同様に、低下している処理速度を有する能力の高いコアは、所与の作業負荷能力において、より低い電力漏洩率を示し、その結果、フルの、抑制されていない能力で処理しているときよりも、低い熱エネルギー発生率を示す。
それでも、コアが動作し得る熱条件に応じて、低性能のコアは、所与の数のDMIPを処理する際に、(電力消費において)高性能のコアよりも効率的であることも、高性能のコアほど効率的ではないこともある。したがって、ヘテロジニアスプロセッサ内の異なるコアの個々の性能カーブを考慮することによって、熱認識スケジューリングアルゴリズムを利用して、最良の効率をもたらすように処理コアに作業負荷を配分することができ、ここで性能カーブは、所与の数のDMIPを処理するために所与の動作温度において所与のコアによって消費される電力を示す。同様に、かつ、ヘテロジニアスプロセッサ内の異なるコアの個々の性能カーブにも基づいて、熱認識スケジューリングアルゴリズムを利用して、個々のコアに関連付けられる処理効率が最適化できなくても処理コンポーネント全体にわたる電力密度が最適化されるように、作業負荷を配分することができる。
非限定的な例として、特定のコードブロックが、例示的なPCD内で中央処理装置(「CPU」)またはグラフィカル処理装置(「GPU」)のいずれかによって処理され得る。有利なことに、特定のコードブロックがCPUまたはGPUのうちの1つによって処理されることを事前に判定する代わりに、例示的な実施形態は、コードを処理する必要性が熟したときに、処理コンポーネントのうちのいずれが、コードブロックを処理するタスクを割り当てられるかを選択することができる。すなわち、コードブロックを効率的に処理するのに最も良い状態にあるプロセッサが作業負荷を割り当てられるように、CPUおよびGPUの性能カーブの「スナップショット」が比較され得る。特に、後続作業負荷の配分のための後続プロセッサ選択は、コードブロックがスケジューリング待ち行列から出るのに伴ってリアルタイムまたはほぼリアルタイムで行われ得ることが理解されるだろう。このようにして、熱認識スケジューリングモジュールは、作業負荷配分の直前に処理コアを選択することによって、QoSを最適化するために、ヘテロジニアスプロセッサ中の個々のコアに関連する動作温度を利用することができる。
図1は、異なる熱条件のもとで動作する例示的な処理コンポーネントの性能カーブ(コア105℃、コア95℃)のペアを示すグラフ300である。処理コンポーネントは、ヘテロジニアスマルチコアプロセッサ内のコアであってよく、能力の高いコア、能力が中程度のコア、または能力の低いコアであり得る。より具体的には、当業者であれば認めるように、処理コンポーネントは、限定はしないが、CPU、GPU、DSP、プログラマブルアレイなどを含む所与のコードブロックを処理する能力を有する任意の処理エンジンであり得る。その上、上述のように、例示的な処理エンジンは、CPU、GPUなどの中にあるコアまたはサブコアであり得る。
図1の図示から理解され得るように、3500DMIPの作業負荷において、95℃の環境で動作する例示的なコアは約620mW(点315)の電力を消費するが、同じ3500DMIPの作業負荷において、動作環境が105℃に達すると、コアの電力消費はほぼ1000mWの電力(点310)に増える。同様に、所与の動作温度において、コアの処理効率は作業負荷の増加に伴って低下する。コア95℃のカーブを参照すると、たとえば、作業負荷が3500DMIPから約4300DMIPに増えると、電力消費はほぼ1000mW(点305)に増える。
所与の処理コンポーネントに対して、動作温度が上がると電力消費に関して処理コンポーネントの効率が下がることが、図1の図示から理解され得る。特に、例示的な処理コンポーネントの動作温度の上昇は、限定はされないが、より高いクロック速度に関連する処理コンポーネント内での電力漏洩の増加、処理コンポーネントの近くの熱アグレッサ、処理コンポーネントの近くの多機能コンポーネントなどを含む、任意の数の要因または要因の組合せによって引き起こされ得ることを、当業者は認識するだろう。その上、処理コンポーネント上の作業負荷が増加すると、電力消費の増加に関連する電力漏洩率の上昇により、作業負荷配分時に処理コンポーネントに関連する動作温度が上昇し得ることを、当業者は認識するだろう。処理コンポーネントの動作温度が上昇または下降し得る理由に関係なく、一般に、所与の処理コンポーネントの処理効率は、動作温度の上昇に反比例して下がるということを、図1の図示から気付くことが重要である。
ここで図2を見ると、異なる熱条件のもとで動作する、「低性能」CPU処理コンポーネントおよび「高性能」GPU処理コンポーネントという2つの例示的な処理コンポーネントの各々に対する、性能カーブのペア(GPU 105℃、GPU 95℃、CPU 105℃、CPU 95℃)を示すグラフ400が示されている。基本的に、図2のグラフ400は、2つの異なる例示的な処理コンポーネントの性能カーブを示し、これらの各々は、図1の図示によって表され得る。その上、図2の性能カーブのペアによって表される2つの例示的なプロセッサGPU、CPUは、共通のヘテロジニアスマルチプロセッサシステムオンチップ(「SoC」)内に含まれ得ることを、当業者は認識するだろう。
特に、例示的なエンジンGPU、CPUの性能カーブを重畳することによって、様々な移行点または乗換点405、410、415が、様々なカーブの交差点において定義されることが理解され得る。これらの乗換点は、所与のコードブロックを効率的に処理するのに最も良い状況にある処理コンポーネントを選択するために熱認識スケジューリングモジュールによって利用され得る潜在的なしきい値を表す。
たとえば、例示的なGPU、CPUプロセッサの性能カーブの比較分析によって、プロセッサGPU、CPUの各々が95℃で動作している場合、約3700DMIP(点410)の作業負荷では両方のプロセッサGPU、CPUが処理効率に関して実質的に同等であると、判定することができる。しかしながら、点410より下ではCPU処理コンポーネントがより効率的であること、すなわち、作業負荷が3700DMIP未満ならば作業負荷のDMIP当たりの電力消費はCPU処理コンポーネントの方が少ないことも、比較分析から理解され得る。逆に、点410より上ではGPUコアがより効率的であり、すなわち、作業負荷が3700DMIPを超えれば作業負荷のDMIP当たりの電力消費はGPUコアの方が少ない。
したがって、グラフ400の点410に対する上で概説された例示的な比較分析を利用して、95℃という所与の動作温度における例示的なGPU、CPUの性能カーブの比較分析を利用する熱認識スケジューリングモジュールは、3700DMIPを超える作業負荷がGPU処理コンポーネントに対してスケジューリングされるべきであると指示し得る。同様に、同じ熱認識スケジューリングコンポーネントは、3700DMIP未満の作業負荷がCPU処理コンポーネントに対してスケジューリングされるべきであることを指示し得る。
グラフ400において、動作温度が105℃程度であるとき同じ2つの例示的な処理コンポーネントGPU、CPUの移行点415は、点410に対して上で概説された論理と一致する処理コンポーネント選択の引き金となり得る。すなわち、性能カーブ(GPU 105℃、CPU 105℃)の比較分析を熱認識スケジューリングモジュールが利用して、所要DMIPが移行点415より上であるときにGPU処理コンポーネントがコードブロックを受信するようにバイアスされ、所要DMIPが移行点415より下であるときにCPU処理コンポーネントがコードブロックを受信するようにバイアスされるように、作業負荷をスケジューリングすることができる。
その上、いくつもの要因により、ヘテロジニアスマルチプロセッサSoC中の異なるプロセッサおよび/またはコアは、異なる熱条件で動作し得ることが理解されるだろう。たとえば、図2の図示では、移行点405は、105℃で動作する例示的なCPU処理コンポーネントの性能カーブと、95℃で動作する例示的なGPU処理コンポーネントの性能カーブの交差点を表す。その結果、例示的なプロセッサが異なる温度で動作していることを認識することによって、実施形態は、比較分析を利用して、上で説明された例示的な状況と同様に、処理の準備ができた所与のコードブロックを効率的に処理するために作業負荷を配分する直前に、プロセッサのうちのいずれが最も良い状態にあるかを判定することができる。たとえば、最も効率的な条件で作業負荷が処理されることを確実にするために、2400DMIP未満の作業負荷はCPU処理コンポーネントに割り当てられてよく、2400DMIPを超える作業負荷はGPU処理コンポーネントに割り当てられてよい。
上で概説された作業負荷スケジューリングの様々な状況は、処理コンポーネントの性能カーブの比較分析がヘテロジニアスマルチコアプロセッサおよび/またはヘテロジニアスマルチプロセッサSoCにおける作業負荷スケジューリングに有益であり得る状況を網羅的に表すものではないことを、当業者は理解するだろう。したがって、作業負荷の配分を決定するために、場合によりヘテロジニアスマルチコアプロセッサまたはヘテロジニアスマルチプロセッサSoCにおける2つ以上の処理コアの性能カーブを比較するように動作可能な熱認識スケジューリングコンポーネントまたはモジュールが想定されることが理解されるだろう。様々な実施形態による処理コンポーネントの性能カーブの比較分析を使用して、作業負荷配分時に利用可能な最も効率的な処理コンポーネントの識別に基づいて、複数の処理コンポーネント間で作業負荷をスケジューリングすることができる。
特に、熱認識スケジューリングアルゴリズムのいくつかの実施形態は、熱認識スケジューリングモジュールによって、1つまたは複数の適格な処理コンポーネントの性能カーブを、次のコードブロックが割り当てられた場合に個々の処理コンポーネントが直面し得る総作業負荷に基づいて比較するために実行され得ることが想定される。たとえば、図2の図示の例示的なカーブGPU 95℃およびCPU 105℃を再び参照し、カーブに関連するプロセッサGPU、CPUが現在、2000DMIPの割合で処理しており、熱認識スケジューリングモジュールが、2つの例示的なプロセッサのうちのいずれが、追加の作業負荷1000DMIPを効率的に処理するのに最も良い状況にあるかを判定しようとしていると仮定する。熱認識スケジューリングアルゴリズムを使用して、現在処理されている2000DMIPの作業負荷ではなく、処理コンポーネントGPU、CPUにつき想定される総作業負荷3000DMIP(エンジンごとに以前に配分された2000DMIPとエンジンのうちの1つに配分される追加の1000DMIPとの和)に基づいて、カーブを比較することができる。この非限定的な例では、図2の図示の例示的なカーブGPU 95℃およびCPU 105℃に基づいて、熱認識スケジューリングモジュールは、3000DMIPで500mW超の電力を消費することになるCPUではなく、同じ作業負荷で処理するために400mW未満の電力を消費することになるより効率的なGPUを選択することができる。
熱認識スケジューリングアルゴリズムのさらに他の実施形態を使用して、追加の作業負荷が割り当てられた場合に予測されるカーブのシフトに基づいて性能カーブを比較することができる。たとえば、それぞれ95℃および105℃の動作温度でそれぞれ2000DMIPの割合で処理しているプロセッサGPUおよびCPUの例を再び参照すると、熱認識スケジューリングモジュールの実施形態は、追加の1000DMIPの作業負荷配分から生じ得る性能カーブのシフトを予測することができる。特に、追加の1000DMIPの作業負荷により、それが割り当てられた処理コンポーネントがより多くの電力を消費することがあるので、熱認識スケジューリングモジュールは、処理コンポーネントに現在関連付する動作温度が、追加の作業負荷により上昇すると考え、それにより、予測される温度上昇に関連する性能カーブを比較しようとすることがある。
例に戻ると、追加の作業負荷1000DMIPにより、GPUの動作温度は95℃から100℃に上昇し、同様に、CPUの動作温度は105℃から110℃に上昇し得る。したがって、熱認識スケジューリングモジュールの実施形態は、それぞれ予測される温度100℃および110℃で動作するコアGPUおよびコアCPUに関連付けられる性能カーブ(図2には示されていないGPU 100℃およびCPU 110℃の性能カーブ)を照会し、比較することができる。
図3は、ヘテロジニアスマルチコア処理コンポーネント110にわたる熱認識作業負荷スケジューリングを通じたPCD100におけるQoS最適化のための、オンチップシステム102の一実施形態を示す機能ブロック図である。図1および図2の図示に対して上で説明されたように、処理コンポーネントにわたる作業負荷の配分は、個々のコアまたはプロセッサ222、224、226、228に一意に関連付けられる性能カーブの比較分析に基づき得る。特に、当業者は、処理コンポーネント110が説明のためにのみヘテロジニアス処理エンジンのグループとして示されており、各々が複数のコアおよび/またはサブコアを含むことも含まないこともある複数のヘテロジニアスコア222、224、226、228または複数のヘテロジニアスプロセッサ222、224、226、228を有する単一の処理コンポーネントを表し得ることを認識するだろう。したがって、処理エンジン222、224、226および228を本明細書において「コア」と呼ぶことは、本質的に例示的なものと理解され、本開示の範囲を限定しない。
オンチップシステムは、熱ポリシーマネージャ(「TPM」)モジュール101および熱認識作業負荷スケジューリング(「TAWS」)モジュール207と通信している監視モジュール114によって、コア222、224、226、228に個々に関連付けられる温度センサ157を監視することができる。TPMモジュール101は、監視モジュール114から温度測定値を受信し、測定値を使用して、熱管理ポリシーを決定し、適用することができる。TPMモジュール101によって適用された熱管理ポリシーは、ある処理コンポーネントから別の処理コンポーネントへの作業負荷の再配分、プロセッサクロック速度の低下または変化などによって、熱エネルギー発生を管理することができる。特に、熱管理ポリシーの適用を通じて、TPMモジュール101は、QoSを犠牲にして熱エネルギーの過剰な発生を低減または緩和することができる。
当業者は、TPMモジュール101によって指示される熱管理ポリシーが、処理コア222、224、226、228のうちの1つまたは複数の動作温度に直接影響を及ぼし得ることを認識するだろう。すなわち、TPMモジュール101によって適用される熱管理技法は、ある処理エンジンの動作温度を、増加した作業負荷の負担を引き受けるよう要請される別の処理エンジンの動作温度を犠牲にして低下させることができる。したがって、様々な処理コア222、224、226、228の動作温度が変動するとき、そのような変動が、適用された熱管理ポリシーに起因するか、外部の熱エネルギーソースなどに起因するかを問わず、それらのエンジン222、224、226、228に関連付けられる性能カーブも変動する。
コア222、224、226、228の各々に関連する動作温度が変化するとき、監視モジュール114は変化を認識し、変化を示す温度データを、TPMモジュール101とTAWSモジュール207の両方に送信する。上記で説明したように、測定された動作温度の変化が引き金となって、TPMモジュール101は様々な熱管理ポリシーを調整または適用することができる。一方で、同じ温度データが引き金となって、TAWSモジュール207は、測定された動作温度に基づいてコア222、224、226、228のうちの1つまたは複数に関する性能カーブを照会するために、コア性能(「CP」)データストア24を参照することができる。続いて、TAWSモジュール207は、識別された性能カーブを比較して、上記の図で示され、記述されたのと同様に、比較時に所与のコードブロックを効率的に処理するのに最も良い状況にあるコア222、224、226、228を選択することができる。
例示的なTAWSモジュール207は、様々な異なる処理コンポーネント222、224、226、228に関連する1つまたは複数の性能カーブの比較分析を利用するように構成される。TAWSモジュール207は、比較された性能カーブの交差点によって表される移行点を考慮して、コアの各々について最適作業負荷範囲を判定し、コア222、224、226、228のうちの1つまたは複数がその最適範囲内で継続して動作するようにコードブロックを割り当てることができる。有利なことに、監視モジュール114から受信された温度測定値を使用して、CPデータストア24に性能カーブを照会することによって、TAWSモジュール207は、作業負荷を効率的に処理するのに最も良い状況にある特定の処理エンジンにリアルタイムまたはほぼリアルタイムで作業負荷を割り当てることによって、QoSを最適化することができる。
特に、当業者は、処理コンポーネント222、224、226、228の動作温度が変化したときには、TAWSモジュール207によって照会され、比較される性能カーブも変化することを認識するだろう。したがって、異なる時間にTAWSモジュール207は、それぞれのコードブロックまたは同様のコードブロックの配分のために異なる処理エンジン222、224、226、228を選択することができる。このようにして、いくつかの実施形態の利点として、TAWSモジュール207は、配分時に利用可能な最も効率的な処理コンポーネントに作業負荷割当てが配分されるようにする。
図4は、熱条件を監視し、性能カーブを比較し、効率的に処理するのに最も良い状況にある処理コンポーネントに対して作業負荷をスケジューリングするための方法およびシステムを実施するための、ワイヤレス電話の形態の、PCD100の例示的で非限定的な態様の機能ブロック図である。図示されるように、PCD100は、互いに結合されたヘテロジニアスマルチコア中央処理装置(「CPU」)110およびアナログ信号プロセッサ126を含むオンチップシステム102を含む。当業者によって理解されるように、CPU110は、第0のコア222、第1のコア224、および第Nのコア230を含み得る。さらに、当業者によって理解されるように、CPU110の代わりに、デジタル信号プロセッサ(「DSP」)も利用され得る。その上、ヘテロジニアスマルチコアプロセッサの技術分野で理解されるように、コア222、224、230の各々は、同様の処理条件のもとで異なる効率で作業負荷を処理し得る。
一般に、TPMモジュール101は、1つまたは複数の熱軽減技法を含む熱ポリシーを監視し適用することを担い得る。熱軽減技法の適用は、PCD100が、熱条件および/または熱負荷を管理し、不都合な熱条件にさらされること、たとえば危機的な温度に達することなどを回避しつつ、高水準の機能を維持するのを、助けることができる。熱認識作業負荷スケジューリングモジュール207は、TPMモジュール101と同じまたは同様の温度データを受信し得るが、温度データを利用して、コア222、224、230に関連付けられる性能カーブを照会し、処理コアの性能カーブの比較分析を実行し、作業負荷を最も効率的に処理することになるコア222、224、230に対してコードブロックをスケジューリングすることができる。
図4はまた、PCD100が監視モジュール114を含むことができることを示す。監視モジュール114は、オンチップシステム102全体に分布する複数の動作するセンサ(たとえば熱センサ157)およびPCD100のCPU110、さらにはTPMモジュール101および/またはTAWSモジュール207と通信する。TPMモジュール101は、監視モジュール114とともに動作して、作業負荷の配分および/または再配分を含む1つまたは複数の熱軽減技法の適用を保証し得る熱移行点を識別することができる。TAWSモジュール207は、監視モジュール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」)回路に専用である、絶対温度に比例する(「PTAT」)1つまたは複数の温度センサを含み得る。オフチップ熱センサ157Bは、1つまたは複数のサーミスタを含み得る。熱センサ157は、アナログデジタルコンバータ(「ADC」)コントローラ103(図5A参照)によってデジタル信号に変換される、電圧降下を発生させ得る。しかし、本発明の範囲から逸脱することなく、他の種類の熱センサ157が利用されてもよい。
熱センサ157は、ADCコントローラ103により制御され監視されるのに加えて、1つまたは複数のTPMモジュール101および/またはTAWSモジュール207によっても制御され監視され得る。TPMモジュール101および/またはTAWSモジュール207は、CPU110によって実行されるソフトウェアを備えることができる。しかしながら、本発明の範囲から逸脱することなく、TPMモジュール101および/またはTAWSモジュール207はまた、ハードウェアおよび/またはファームウェアから形成されてもよい。TPMモジュール101は、PCD100が、高水準の機能を維持しつつ、危機的な温度を回避するのを助け得る、1つまたは複数の熱軽減技法を含む、熱ポリシーを監視し適用することを担い得る。TAWSモジュール207は、プロセッサの性能カーブを照会し、それらのカーブの分析に基づいて、コードブロックを、作業負荷配分時にコードを効率的に処理する能力が最も高いプロセッサに割り当てることを担い得る。
図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上で動作可能なリソースのリアルタイムの管理を援助するために、アナログ信号プロセッサ126およびCPU110によって、これらの外部デバイスのうちの1つまたは複数から1つまたは複数の指示または信号を受信することもできることを理解されたい。
ある特定の態様では、本明細書で説明される方法ステップのうちの1つまたは複数は、1つまたは複数のTPMモジュール101および/またはTAWSモジュール207を形成する、メモリ112に記憶された実行可能命令およびパラメータによって実施され得る。TPMモジュール101および/またはTAWSモジュール207を形成するこれらの命令は、本明細書で説明される方法を実行するために、ADCコントローラ103に加えて、CPU110、アナログ信号プロセッサ126、または別のプロセッサによって実行され得る。さらに、プロセッサ110、126、メモリ112、メモリ112に記憶された命令、またはそれらの組合せは、本明細書に記載された方法ステップのうちの1つまたは複数を実行するための手段として機能し得る。
図5Aは、図4に示されるチップ102のための、ハードウェアの例示的な空間構成を示す機能ブロック図である。この例示的な実施形態によれば、アプリケーションCPU110がチップ102の遠く左側の領域に配置され、一方モデムCPU168、126がチップ102の遠く右側の領域に配置される。アプリケーションCPU110は、第0のコア222、第1のコア224、および第Nのコア230を含む、ヘテロジニアスマルチコアプロセッサを含み得る。アプリケーションCPU110は、(ソフトウェアで具現化される場合)TPMモジュール101Aおよび/またはTAWSモジュール207Aを実行していてよく、または、(ハードウェアで具現化される場合)TPMモジュール101Aおよび/またはTAWSモジュール207Aを含んでよい。アプリケーションCPU110は、オペレーティングシステム(「O/S」)モジュール208および監視モジュール114を含むように、さらに例示される。監視モジュール114についてのさらなる詳細は、図5Bに関して以下で説明される。
アプリケーションCPU110は、アプリケーションCPU110に隣接して配置されチップ102の左側の領域にある、1つまたは複数の位相ロックループ(「PLL」)209A、209Bに結合され得る。PLL209A、209Bの隣、またアプリケーションCPU110の下には、アナログデジタル(「ADC」)コントローラ103があってもよく、このADCコントローラ103は、アプリケーションCPU110の主要なモジュール101A、207Aとともに動作する固有の熱ポリシーマネージャ101Bおよび/またはTAWSモジュール207Bを含み得る。
ADCコントローラ103の熱ポリシーマネージャ101Bは、「チップ102上」および「チップ102外」に設けられ得る複数の熱センサ157を監視し追跡することを担い得る。オンチップまたは内部熱センサ157Aは、様々な位置に配置され得る。
非限定的な例として、第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との間に配置され得る。
第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つの例示的な空間構成を示し、主要なTPMモジュール101Aと、主要なTAWSモジュール207Aと、TPMモジュール101BおよびTAWSモジュール207Bを有するADCコントローラ103とがどのように、図5Aに示される例示的な空間構成により決まる熱条件を認識し、性能カーブを比較し、熱条件を管理するために作業負荷を配分することができるかを示す。
図5Bは、作業負荷配分のためにプロセッサを選択するために処理コアの性能カーブの比較分析を利用する、熱条件の識別およびアルゴリズムの適用をサポートするための、図4および図5AのPCD100の例示的なソフトウェアアーキテクチャ200を示す概略図である。任意の数のアルゴリズムが、ある熱条件が満たされ、性能カーブが分析される場合に、熱ポリシーマネージャ101によって適用され得る少なくとも1つの熱軽減技法を形成することができ、またはその一部であり得る。同様に、任意の数のアルゴリズムが、ある熱条件が存在し、関連する性能カーブが分析される場合に、TAWSモジュール207によって適用され得る少なくとも1つの熱認識スケジューリングアルゴリズムを形成することができ、またはその一部であり得る。
図5Bに示されるように、CPUまたはデジタル信号プロセッサ110は、バス211を介してメモリ112に結合される。上で述べられたように、CPU110は、N個のコアプロセッサを有する複数コアのヘテロジニアスプロセッサである。すなわち、CPU110は、第0のコア222、第1のコア224、および第Nのコア230を含む。当業者には知られているように、第0のコア222、第1のコア224、および第Nのコア230の各々は、専用のアプリケーションまたはプログラムをサポートするのに利用可能であり、ヘテロジニアスコアの一部として、同様の熱的な動作条件のもとで異なるレベルの性能を提供し得る。あるいは、利用可能なヘテロジニアスコアの2つ以上にわたる処理のために、1つまたは複数のアプリケーションまたはプログラムは分散していてよい。
CPU110は、ソフトウェアおよび/またはハードウェアを備えることができるTPMモジュール101から、コマンドを受け取ることができる。ソフトウェアとして具現化される場合、TPMモジュール101は、CPU110および他のプロセッサによって実行されている他のアプリケーションプログラムにコマンドを出す、CPU110によって実行される命令を備える。
CPU110の第0のコア222、第1のコア224〜第Nのコア230は、単一の集積回路ダイに集積されてよく、または、複数回路のパッケージにおいて別個のダイ上で集積されてよく、または結合されてよい。設計者は、第0のコア222、第1のコア224〜第Nのコア230を、1つまたは複数の共有キャッシュを介して結合することができ、バス、リング、メッシュ、およびクロスバートポロジのようなネットワークトポロジを介して、メッセージまたは命令の伝達を実施することができる。
図示された実施形態では、RF送受信機168は、デジタル回路素子を介して実装され、(「コア」と標示される)コアプロセッサ210などの、少なくとも1つのプロセッサを含む。このデジタル実装では、RF送受信機168は、バス213を介してメモリ112に結合される。
当技術分野で知られているように、バス211およびバス213の各々は、1つまたは複数の有線接続またはワイヤレス接続を介した複数の通信経路を含むことができる。バス211およびバス213は、通信を可能にするために、コントローラ、バッファ(キャッシュ)、ドライバ、リピータ、および受信機などのさらなる要素を有することができるが、これらは簡単のために省略する。さらに、バス211およびバス213は、上記のコンポーネントの間の適切な通信を可能にするために、アドレス、制御、および/またはデータ接続を含むことができる。
図5Bに示されるように、PCD100によって使用される論理がソフトウェアで実装されるとき、開始論理250、管理論理260、熱認識作業負荷スケジューリングインターフェース論理270、アプリケーションストア280中のアプリケーション、およびファイルシステム290の部分のうちの1つまたは複数が、任意のコンピュータ関連のシステムまたは方法によって、またはそれと関連して使用するために、任意のコンピュータ可読媒体に記憶され得ることに留意されたい。
この文書の文脈では、コンピュータ可読媒体は、コンピュータ関連のシステムまたは方法によって、またはそれと関連して使用するために、コンピュータプログラムおよびデータを格納または記憶することができる、電子式、磁気式、光学式、または他の物理デバイスまたは手段である。様々な論理素子およびデータストアは、たとえばコンピュータベースのシステム、プロセッサを含むシステム、または命令実行システム、装置、もしくはデバイスから命令をフェッチし、命令を実行することができる他のシステムのような、命令実行システム、装置、またはデバイスによって、またはそれと関連して使用するために、任意のコンピュータ可読媒体に組み込まれ得る。この文書の文脈では、「コンピュータ可読媒体」は、命令実行システム、装置、またはデバイスによって、またはそれと関連して使用するために、プログラムを記憶、通信、伝搬、または移送することができる任意の手段であってよい。
コンピュータ可読媒体は、限定はされないがたとえば、電子式、磁気式、光学式、電磁式、赤外線式、または半導体の、システム、装置、デバイス、または伝搬媒体であってよい。コンピュータ可読媒体のより具体的な例(非網羅的なリスト)には、1つまたは複数の配線を有する電気的接続(電子式)、ポータブルコンピュータディスケット(磁気式)、ランダムアクセスメモリ(RAM)(電子式)、読取り専用メモリ(ROM)(電子式)、消去可能プログラマブル読取り専用メモリ(EPROM、EEPROM、またはフラッシュメモリ)(電子式)、光ファイバ(光学式)、および携帯式コンパクトディスク読取り専用メモリ(CD-ROM)(光学式)が含まれよう。プログラムは、たとえば紙または他の媒体の光学走査を介して、電子的に記録され、次いで、コンパイルされ、解釈され、または場合によっては、必要に応じて適切な方法で処理され、次いでコンピュータメモリに記憶され得るので、コンピュータ可読媒体は、プログラムが印刷される紙または別の適切な媒体でさえあり得ることに留意されたい。
代替の実施形態では、開始論理250、管理論理260、および場合によっては熱認識作業負荷スケジューリングインターフェース論理270のうちの1つまたは複数がハードウェアで実装されるとき、様々な論理は、各々当技術分野でよく知られている以下の技術、すなわち、データ信号に対する論理機能を実装するための論理ゲートを有する個別の論理回路、適切な組合せの論理ゲートを有する特定用途向け集積回路(ASIC)、プログラマブルゲートアレイ(PGA)、フィールドプログラマブルゲートアレイ(FPGA)などのうちのいずれか、またはその組合せによって実装することができる。
メモリ112は、フラッシュメモリまたはソリッドステートメモリデバイスなどの不揮発性データ記憶デバイスである。単一のデバイスとして描写されているが、メモリ112は、デジタル信号プロセッサおよび/またはRF送受信機168内のコア210(またはさらなるプロセッサコア)に結合された別々のデータストアを有する分散型メモリデバイスであり得る。
開始論理250は、第0のコア222、第1のコア224〜第Nのコア230のような、利用可能なコアのうちの1つまたは複数の熱認識比較分析および選択のために、選択プログラムを選択的に識別し、ロードし、実行するための1つまたは複数の実行可能命令を含む。
管理論理260は、熱認識性能カーブ分析プログラムを終了し、さらに、利用可能なコアのうちの1つまたは複数に対する熱認識比較分析、選択および作業負荷配分のためのより適切な交換プログラムを選択的に識別し、ロードし、実行するための、1つまたは複数の実行可能命令を含む。管理論理260は、実行時に、またはPCD100が電力供給されデバイスの操作者によって使用されている間に、これらの機能を実行するように構成される。交換プログラムは、組込みファイルシステム290のプログラムストア296において見出され得る。
交換プログラムは、デジタル信号プロセッサのコアプロセッサのうちの1つまたは複数、またはRF送受信機168のコア210によって実行されると、TPMモジュール101、TAWSモジュール207、および監視モジュール114によって提供される1つまたは複数の信号に従って動作し得る。これに関して、モジュール114は、TPM101から発せられる制御信号に応答して、イベント、プロセス、アプリケーション、リソース状態の条件、経過時間、温度などの、1つまたは複数のインジケータを提供することができる。
インターフェース論理270は、組込みファイルシステム290に記憶された情報を観察し、構成し、または場合によっては更新するために、外部入力を提示し、管理し、それと対話するための1つまたは複数の実行可能命令を含む。一実施形態では、インターフェース論理270は、USBポート142を介して受信された製造業者の入力とともに動作することができる。これらの入力は、プログラムストア296から削除されるべき、またはプログラムストア296に追加されるべき、1つまたは複数のプログラムを含むことができる。あるいは、入力は、プログラムストア296内のプログラムのうちの1つまたは複数に対する編集または変更を含むことができる。その上、入力は、開始論理250と管理論理260の一方または両方に対する1つまたは複数の変更、または全交換を識別することができる。例として、入力は、受信信号電力が識別されたしきい値を下回ると、RF送受信機168内のすべての性能スケーリングを中断するようにPCD100に命令する管理論理260に対する変更を含むことができる。さらなる例として、入力は、ビデオコーデック134がアクティブであるとき、所望のプログラムを適用するように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は、プロセッサの性能カーブの比較分析に基づく、PCD100におけるヘテロジニアス処理コンポーネントにわたる熱認識作業負荷スケジューリングのための方法600の一実施形態を示す論理的なフローチャートである。図6の実施形態では、様々な処理コア222、224、226、228の各々の性能カーブは、監視モジュール114によって収集された実際の性能データに基づいて経験的に決定されてよく、またはいくつかの実施形態では、性能カーブは、各コアの性能スペックにより決まる先験的なカーブであってよい。
いくつかの実施形態では、様々な処理コア222、224、226、228の性能カーブを経験的に決定するために、監視モジュール114は、温度センサ157、さらにはコア222、224、226、228の電力消費を監視するのに有用な様々な他の電圧センサまたは電流センサと通信していてよい。そのような実施形態では、監視モジュール114によって収集されるデータは、TAWSモジュール207から受け取られた以前の作業負荷配分データと組み合わされ、経験的な性能カーブへと編集され得ることを、当業者は認識するだろう。経験的な性能カーブは、CPデータストア24に記憶され、熱認識作業負荷スケジューリングアルゴリズムによって利用され得る。
ブロック605で始まって、TAWSモジュール207は、処理の準備ができたコードブロックを処理する能力を有するヘテロジニアスマルチプロセッサSoC内の2つ以上の処理コンポーネントを識別する。ブロック610において、TAWSモジュール207は、たとえば、コア222、224、226、228など、2つ以上の処理コンポーネントの動作温度を監視モジュール114に対し要求し、監視モジュール114から受信することができる。ブロック615において、様々なコア222、224、226、228の動作温度をTAWSモジュール207が使用して、CPデータストア24に対し、コアの各々に該当する性能カーブを照会することができ、副方法620において、コードブロックを処理する際に最も効率的であり得るのはいずれであるかを判定するために、カーブを比較することができる。上述のように、比較されたカーブによって共有される移行点および比較されている各コアの現在の作業負荷に基づいて、TAWSモジュール207はブロック625において、例示的な処理コンポーネント222、224、226、228のうちのいずれがコードブロックを最も効率的に処理する能力を有するかを選択する。適格な処理コンポーネントのうちの最も効率的なものが識別されると、ブロック630において、コードブロックは、選択された処理コンポーネントに配分され、本方法は、次のコードブロックのスケジューリング準備のためにブロック605に戻る。
図7は、比較のために選択される電力カーブが、適格な処理コンポーネントの現在の動作温度に関連付けられる、プロセッサの性能カーブの比較分析のための例示的な副方法620を示す論理的なフローチャートである。ブロック705において、処理コンポーネントの各々に関連付けられ、ブロック610においてすでにTAWSモジュール207に提供されている温度測定値に基づいて、CPデータストア24に性能カーブが照会される。ヘテロジニアスマルチコアプロセッサ110中のコア222、224、226、228などの処理コンポーネントの各々に対して適切な性能カーブが識別されると、ブロック710において、どの処理コンポーネントが比較時に最も効率的に動作している可能性があるかを識別するためにカーブが比較され得る。特に、上述のように比較されるカーブの移行点は、TAWSモジュール207がある処理コンポーネントを別の処理コンポーネントに優先して選択し得る際のしきい値を表し得る。しかしながら、すべての比較される性能カーブが必ずしも、移行点が存在するように「クロスオーバーする」とは限らないことが想定される。そのような場合、ある処理コンポーネントの性能カーブは、その処理コンポーネントが現在、いずれかまたは大半の作業負荷レベルにおいて他の処理コンポーネントよりも効率的に動作していることを示し得ることを、当業者は認識するだろう。
図7の副方法に戻ると、コアの各々の現在の作業負荷レベルが、選択されたカーブ上にマッピングされ得るので、TAWSモジュール207は、コアの各々の現在の電力消費率を判定することができる。続いてブロック715において、比較された処理コンポーネントの各々の電力消費量が計算され、現在の電力消費量が最も少ないプロセッサが、追加の作業負荷の配分に利用可能な最も効率的な処理コンポーネントとして識別され得る。
図8は、比較のために選択される電力カーブが、適格な処理コンポーネントの現在の動作温度に関連付けられる、プロセッサの性能カーブの比較分析のための例示的な副方法620を示す論理的なフローチャートである。ブロック805において、処理コンポーネントの各々に関連付けられ、ブロック610においてすでにTAWSモジュール207に提供されている温度測定値に基づいて、CPデータストア24に性能カーブが照会される。ヘテロジニアスマルチコアプロセッサ110中のコア222、224、226、228などの処理コンポーネントの各々に対して適切な性能カーブが識別されると、ブロック810において、どの処理コンポーネントが、コードブロックが配分された場合に最良の処理効率をもたらし得るかを識別するためにカーブが比較され得る。すなわち、コードブロックによって表される追加の作業負荷の負担が、識別された処理コンポーネントによって処理されている既存の作業負荷に追加され得る。次いで810において、予測される将来の作業負荷が性能カーブにマッピングされ、各処理コンポーネントの予測される将来の電力消費量が比較され得る。ブロック815および625において、将来の作業負荷レベルにおいて予測される電力消費量が最も少ない処理コンポーネントが選択され得る。
図9は、比較のために選択される電力カーブが、適格な処理コンポーネントの予測される動作温度に関連付けられる、プロセッサの性能カーブの比較分析のための例示的な副方法620を示す論理的なフローチャートである。上述のように、追加の作業負荷の負担により、処理コンポーネントはより多くの電力を消費し、その結果、その電力漏洩率が上昇し、さらなる熱エネルギーが発生することがある。当業者であれば理解するように、発生する熱エネルギーが放散すると、所与の処理コンポーネントの動作温度が上昇し、その処理コンポーネントは代替処理コンポーネントほど効率的ではなくなることがある。
ブロック905において、識別された処理コンポーネントごとに、作業負荷の追加から生じ得る動作温度への影響が計算される。予測される動作温度に基づいて、ブロック910において、性能カーブがCPデータストア24に照会される。ヘテロジニアスマルチコアプロセッサ110中のコア222、224、226、228などの処理コンポーネントの各々に対して適切な性能カーブが識別されると、ブロック915において、どの処理コンポーネントが、コードブロックが配分された場合に最良の処理効率をもたし得るかを識別するためにカーブが比較され得る。すなわち、コードブロックによって表される追加の作業負荷の負担が、識別された処理コンポーネントによって処理されている既存の作業負荷に追加され、照会された性能カーブにマッピングされ得る。続いて、各処理コンポーネントの予測される将来の電力消費量が比較され得る。ブロック920および625において、将来の作業負荷レベルおよび動作温度において予測される電力消費量が最も少ない処理コンポーネントが選択され得る。
本発明が説明通りに機能するように、本明細書に記載されたプロセスまたはプロセスフロー内のある特定のステップが他のステップよりも前に行われるのは当然である。しかしながら、そのような順序またはシーケンスが本発明の機能を変えない場合、本発明は記載されたステップの順序に限定されない。すなわち、本発明の範囲および趣旨から逸脱することなく、あるステップは、他のステップの前に実行されるか、後に実行されるか、または他のステップと並行して(実質的に同時に)実行される場合があることを認識されたい。いくつかの例では、ある特定のステップは、本発明から逸脱することなく、省略されるか、または実行されない場合がある。さらに、「その後」、「次いで」、「次に」などの語は、ステップの順序を限定することを意図していない。これらの語は、単に例示的な方法の説明を通じて読者を導くために使用されている。
加えて、プログラミングの当業者は、たとえば本明細書内のフローチャートおよび関連する説明に基づいて、コンピュータコードを書くか、または適切なハードウェアおよび/もしくは回路を識別して、開示された発明を容易に実施することができる。したがって、特定の1組のプログラムコード命令または詳細なハードウェアデバイスの開示は、本発明をどのように製作および使用すべきかについて適切に理解するために必要であるとは見なされない。特許請求されるコンピュータ実装プロセスの発明性のある機能は、上記の説明において、かつ、様々なプロセスフローを示すことができる図面とともに、より詳細に説明される。
1つまたは複数の例示的な態様では、記載された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装することができる。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体上で送信することができる。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む、コンピュータ記憶媒体と通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であってよい。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形式で所望のプログラムコードを搬送もしくは記憶するために使用され得るとともに、コンピュータによってアクセスされ得る任意の他の媒体を備えることができる。
また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(「DSL」)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。
本明細書で使用する場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フレキシブルディスク、およびブルーレイディスクを含み、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザで光学的にデータを再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
したがって、選択された態様が詳細に図示および説明されたが、以下の特許請求の範囲によって定義されるような本発明の趣旨および範囲から逸脱することなく、各態様において様々な置換および改変を実施できることが理解されるだろう。
24 コア性能(「CP」)データストア
100 PCD
101 熱ポリシーマネージャ(「TPM」)モジュール、TPM
101A 主要なモジュール、TPMモジュール、主要なTPMモジュール
101B 熱ポリシーマネージャ、TPMモジュール
102 オンチップシステム、チップ
103 アナログデジタルコンバータ(「ADC」)コントローラ
110 ヘテロジニアスマルチコア処理コンポーネント、処理コンポーネント、ヘテロジニアスマルチコア中央処理装置(「CPU」)、CPU、デジタル信号プロセッサ、マルチコア中央処理装置(「CPU」)、プロセッサ、アプリケーションCPU、ヘテロジニアスマルチコアプロセッサ
112 メモリ、内部メモリ
114 監視モジュール、モジュール
126 アナログ信号プロセッサ、プロセッサ、モデムCPU
128 ディスプレイコントローラ
130 タッチスクリーンコントローラ
132 タッチスクリーンディスプレイ
134 ビデオデコーダ
135A 第1のグラフィックプロセッサ
135B 第2のグラフィックプロセッサ
135C 第3のグラフィックプロセッサ
135D 第4のグラフィックプロセッサ
136 ビデオ増幅器
138 ビデオポート
140 ユニバーサルシリアルバス(「USB」)コントローラ
142 USBポート
146 加入者識別モジュール(SIM)カード
148 デジタルカメラ、カメラ
150 ステレオオーディオコーデック
152 オーディオ増幅器
154 第1のステレオスピーカー
156 第2のステレオスピーカー
157 温度センサ、熱センサ
157A オンチップ熱センサ、内部熱センサ
157A1 第1の内部熱センサ
157A2 第2の内部熱センサ
157A3 第3の内部熱センサ
157A4 第4の内部熱センサ
157A5 第5の内部熱センサ
157B オフチップ熱センサ、熱センサ、外部熱センサ
157B1 第1の外部熱センサ
157B2 第2の外部熱センサ
158 マイクロフォン増幅器
160 マイクロフォン
162 周波数変調(「FM」)ラジオチューナ
164 FMアンテナ
166 ステレオヘッドフォン
168 無線周波(「RF」)送受信機、モデムCPU
170 RFスイッチ
172 RFアンテナ
173 デジタルアナログコントローラ(「DAC」)
174 キーパッド
176 マイクロフォンを備えたモノヘッドセット、モノヘッドセット
177 進化した縮小命令セットコンピュータ(「RISC」)命令セットマシン(「ARM」)、ARM
178 バイブレータデバイス、バイブレータ
180 電源
200 ソフトウェアアーキテクチャ
207 熱認識作業負荷スケジューリング(「TAWS」)モジュール
207A 主要なモジュール、TAWSモジュール、主要なTAWSモジュール
207B TAWSモジュール
208 オペレーティングシステム(「O/S」)モジュール
209A 位相ロックループ(「PLL」)
209B 位相ロックループ(「PLL」)
210 コアプロセッサ、コア
211 バス
213 バス
222 プロセッサ、ヘテロジニアスコア、ヘテロジニアスプロセッサ、処理エンジン、コア、処理コア、エンジン、処理コンポーネント、第0のコア
224 プロセッサ、ヘテロジニアスコア、ヘテロジニアスプロセッサ、処理エンジン、コア、処理コア、エンジン、処理コンポーネント、第1のコア
226 プロセッサ、ヘテロジニアスコア、ヘテロジニアスプロセッサ、処理エンジン、コア、処理コア、エンジン、処理コンポーネント
228 プロセッサ、ヘテロジニアスコア、ヘテロジニアスプロセッサ、処理エンジン、コア、処理コア、エンジン、処理コンポーネント
230 第Nのコア、コア
250 開始論理
260 管理論理
270 熱認識作業負荷スケジューリングインターフェース論理、インターフェース論理
280 アプリケーションストア
290 ファイルシステム、組込みファイルシステム
296 プログラムストア
300 グラフ
305 点
310 点
315 点
400 グラフ
405 移行点、乗換点
410 移行点、乗換点、点
415 移行点、乗換点

Claims (40)

  1. ヘテロジニアスマルチプロセッサシステムオンチップ(「SoC」)を有するポータブルコンピューティングデバイスにおける作業負荷をスケジューリングするための方法であって、
    前記ヘテロジニアスマルチプロセッサSoC中の複数の個々の処理コンポーネントの各々に一意に関連付けられる温度測定値を監視するステップと、
    前記複数の個々の処理コンポーネントのうちの1つによって処理されるべきコードブロックを受信するステップと、
    前記コードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するステップと、
    前記2つ以上の適格な処理コンポーネントの各々に一意に関連付けられる前記温度測定値に基づいて、各々の性能カーブを照会するステップであって、前記性能カーブが、所与の個々の処理コンポーネントの、所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、ステップと、
    適格な各処理コンポーネントの前記性能カーブを比較して、より効率的な処理コンポーネントを識別するステップと、
    前記識別された最も効率的な処理コンポーネントに対して前記コードブロックをスケジューリングするステップと
    を含む方法。
  2. 適格な各処理コンポーネントの前記性能カーブを比較して、前記より効率的な処理コンポーネントを識別するステップは、
    適格な各処理コンポーネントの前記性能カーブを比較して、1つまたは複数の移行点を定義するステップであって、移行点が、前記性能カーブのうちの2つが交差する点である、ステップ
    をさらに含む、請求項1に記載の方法。
  3. 前記より効率的な処理コンポーネントは、その現在の作業負荷において最も少ない電力量を消費する前記処理コンポーネントである、請求項1に記載の方法。
  4. 前記より効率的な処理コンポーネントは、前記コードブロックを含むことになる将来の作業負荷において最も少ない電力量を消費すると計算される前記処理コンポーネントである、請求項1に記載の方法。
  5. 前記複数の個々の処理コンポーネントのうちの1つによって処理されるべき第2のコードブロックを受信するステップと、
    前記第2のコードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するステップと、
    前記2つ以上の適格な処理コンポーネントの各々に関連付けられる前記温度測定値に基づいて、各々の性能カーブを照会するステップであって、前記性能カーブが、所与の個々の処理コンポーネントの、所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、ステップと、
    適格な各処理コンポーネントの前記性能カーブを比較して、より効率的な処理コンポーネントを識別するステップと、
    前記識別された最も効率的な処理コンポーネントに対して前記第2のコードブロックをスケジューリングするステップと
    をさらに含む、請求項1に記載の方法。
  6. 前記コードブロックを含むことになる将来の作業負荷に起因する前記適格な処理コンポーネントの各々に関する前記温度測定値の上昇を予測するステップ
    をさらに含み、
    適格な各処理コンポーネントの前記照会された性能カーブは、前記温度測定値の前記予測される上昇に関連付けられる、請求項1に記載の方法。
  7. 適格な各処理コンポーネントの前記性能カーブを比較して、前記より効率的な処理コンポーネントを識別するステップは、
    適格な各処理コンポーネントの前記性能カーブを比較して、1つまたは複数の移行点を定義するステップであって、移行点が、前記性能カーブのうちの2つが交差する点である、ステップ
    をさらに含む、請求項6に記載の方法。
  8. 前記より効率的な処理コンポーネントは、その現在の作業負荷において最も少ない電力量を消費することになる前記処理コンポーネントである、請求項6に記載の方法。
  9. 前記より効率的な処理コンポーネントは、前記コードブロックを含むことになる将来の作業負荷において最も少ない電力量を消費することになる前記処理コンポーネントである、請求項6に記載の方法。
  10. 前記複数の個々の処理コンポーネントのうちの1つによって処理されるべき第2のコードブロックを受信するステップと、
    前記第2のコードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するステップと、
    前記2つ以上の適格な処理コンポーネントの各々に関連付けられる前記温度測定値に基づいて、各々の性能カーブを照会するステップであって、前記性能カーブが、所与の個々の処理コンポーネントの、所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、ステップと、
    適格な各処理コンポーネントの前記性能カーブを比較して、より効率的な処理コンポーネントを識別するステップと、
    前記識別された最も効率的な処理コンポーネントに対して前記第2のコードブロックをスケジューリングするステップと
    をさらに含む、請求項6に記載の方法。
  11. ヘテロジニアスマルチプロセッサシステムオンチップ(「SoC」)を有するポータブルコンピューティングデバイスにおける作業負荷をスケジューリングするためのコンピュータシステムであって、
    前記ヘテロジニアスマルチプロセッサSoC中の複数の個々の処理コンポーネントの各々に一意に関連付けられる温度測定値を監視するステップ
    を行うように構成された監視モジュールと、
    前記複数の個々の処理コンポーネントのうちの1つによって処理されるべきコードブロックを受信するステップと、
    前記コードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するステップと、
    前記2つ以上の適格な処理コンポーネントの各々に関連付けられる前記温度測定値に基づいて、各々の性能カーブをコア性能ストアに照会するステップであって、前記性能カーブが、所与の個々の処理コンポーネントの、所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、ステップと、
    適格な各処理コンポーネントの前記性能カーブを比較して、より効率的な処理コンポーネントを識別するステップと、
    前記識別された最も効率的な処理コンポーネントに対して前記コードブロックをスケジューリングするステップと
    を行うように構成された熱認識作業負荷スケジューリングモジュールと
    を含むコンピュータシステム。
  12. 前記熱認識作業負荷スケジューリングモジュールは、
    適格な各処理コンポーネントの前記性能カーブを比較して、1つまたは複数の移行点を定義するステップであって、移行点が、前記性能カーブのうちの2つが交差する点である、ステップ
    を行うようにさらに構成される、請求項11に記載のコンピュータシステム。
  13. 前記より効率的な処理コンポーネントは、その現在の作業負荷において最も少ない電力量を消費する前記処理コンポーネントである、請求項11に記載のコンピュータシステム。
  14. 前記より効率的な処理コンポーネントは、前記コードブロックを含むことになる将来の作業負荷において最も少ない電力量を消費すると計算される前記処理コンポーネントである、請求項11に記載のコンピュータシステム。
  15. 前記熱認識作業負荷スケジューリングモジュールは、
    前記複数の個々の処理コンポーネントのうちの1つによって処理されるべき第2のコードブロックを受信するステップと、
    前記第2のコードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するステップと、
    前記2つ以上の適格な処理コンポーネントの各々に関連付けられる前記温度測定値に基づいて、各々の性能カーブをコア性能ストアに照会するステップであって、前記性能カーブが、所与の個々の処理コンポーネントの、所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、ステップと、
    適格な各処理コンポーネントの前記性能カーブを比較して、より効率的な処理コンポーネントを識別するステップと、
    前記識別された最も効率的な処理コンポーネントに対して前記第2のコードブロックをスケジューリングするステップと
    を行うようにさらに構成される、請求項11に記載のコンピュータシステム。
  16. 前記熱認識作業負荷スケジューリングモジュールは、
    前記コードブロックを含むことになる将来の作業負荷に起因する前記適格な処理コンポーネントの各々に関する前記温度測定値の上昇を予測するステップ
    を行うようにさらに構成され、
    適格な各処理コンポーネントの前記照会された性能カーブは、温度測定値の前記予測される上昇に関連付けられる、請求項11に記載のコンピュータシステム。
  17. 前記熱認識作業負荷スケジューリングモジュールは、
    適格な各処理コンポーネントの前記性能カーブを比較して、1つまたは複数の移行点を定義するステップであって、移行点が、前記性能カーブのうちの2つが交差する点である、ステップ
    を行うようにさらに構成される、請求項16に記載のコンピュータシステム。
  18. 前記より効率的な処理コンポーネントは、その現在の作業負荷において最も少ない電力量を消費することになる前記処理コンポーネントである、請求項16に記載のコンピュータシステム。
  19. 前記より効率的な処理コンポーネントは、前記コードブロックを含むことになる将来の作業負荷において最も少ない電力量を消費することになる前記処理コンポーネントである、請求項16に記載のコンピュータシステム。
  20. 前記熱認識作業負荷スケジューリングモジュールは、
    前記複数の個々の処理コンポーネントのうちの1つによって処理されるべき第2のコードブロックを受信するステップと、
    前記第2のコードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するステップと、
    前記2つ以上の適格な処理コンポーネントの各々に関連付けられる前記温度測定値に基づいて、各々の性能カーブをコア性能ストアに照会するステップであって、前記性能カーブが、所与の個々の処理コンポーネントの、所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、ステップと、
    適格な各処理コンポーネントの前記性能カーブを比較して、前記より効率的な処理コンポーネントを識別するステップと、
    前記識別された最も効率的な処理コンポーネントに対して前記第2のコードブロックをスケジューリングするステップと
    を行うようにさらに構成される、請求項16に記載のコンピュータシステム。
  21. ヘテロジニアスマルチプロセッサシステムオンチップ(「SoC」)を有するポータブルコンピューティングデバイスにおける作業負荷をスケジューリングするためのコンピュータシステムであって、
    前記ヘテロジニアスマルチプロセッサSoC中の複数の個々の処理コンポーネントの各々に一意に関連付けられる温度測定値を監視するための手段と、
    前記複数の個々の処理コンポーネントのうちの1つによって処理されるべきコードブロックを受信するための手段と、
    前記コードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するための手段と、
    前記2つ以上の適格な処理コンポーネントの各々に関連付けられる前記温度測定値に基づいて、各々の性能カーブを照会するための手段であって、前記性能カーブが、所与の個々の処理コンポーネントの、所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、手段と、
    適格な各処理コンポーネントの前記性能カーブを比較して、より効率的な処理コンポーネントを識別するための手段と、
    前記識別された最も効率的な処理コンポーネントに対して前記コードブロックをスケジューリングするための手段と
    を含むコンピュータシステム。
  22. 適格な各処理コンポーネントの前記性能カーブを比較して、より効率的な処理コンポーネントを識別するための前記手段は、
    適格な各処理コンポーネントの前記性能カーブを比較して、1つまたは複数の移行点を定義するための手段であって、移行点が、前記性能カーブのうちの2つが交差する点である、手段
    をさらに含む、請求項21に記載のコンピュータシステム。
  23. 前記より効率的な処理コンポーネントは、その現在の作業負荷において最も少ない電力量を消費する前記処理コンポーネントである、請求項21に記載のコンピュータシステム。
  24. 前記より効率的な処理コンポーネントは、前記コードブロックを含むことになる将来の作業負荷において最も少ない電力量を消費すると計算される前記処理コンポーネントである、請求項21に記載のコンピュータシステム。
  25. 前記複数の個々の処理コンポーネントのうちの1つによって処理されるべき第2のコードブロックを受信するための手段と、
    前記第2のコードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するための手段と、
    前記2つ以上の適格な処理コンポーネントの各々に関連付けられる前記温度測定値に基づいて、各々の性能カーブを照会するための手段であって、前記性能カーブが、所与の個々の処理コンポーネントの、所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、手段と、
    適格な各処理コンポーネントの前記性能カーブを比較して、より効率的な処理コンポーネントを識別するための手段と、
    前記識別された最も効率的な処理コンポーネントに対して前記第2のコードブロックをスケジューリングするための手段と
    をさらに含む、請求項21に記載のコンピュータシステム。
  26. 前記コードブロックを含むことになる将来の作業負荷に起因する前記適格な処理コンポーネントの各々に関する前記温度測定値の上昇を予測するための手段
    をさらに含み、
    適格な各処理コンポーネントの前記照会された性能カーブは、温度測定値の前記予測される上昇に関連付けられる、請求項21に記載のコンピュータシステム。
  27. 適格な各処理コンポーネントの前記性能カーブを比較して、より効率的な処理コンポーネントを識別するための前記手段は、
    適格な各処理コンポーネントの前記性能カーブを比較して、1つまたは複数の移行点を定義するための手段であって、移行点が、前記性能カーブのうちの2つが交差する点である、手段
    をさらに含む、請求項26に記載のコンピュータシステム。
  28. 前記より効率的な処理コンポーネントは、その現在の作業負荷において最も少ない電力量を消費することになる前記処理コンポーネントである、請求項26に記載のコンピュータシステム。
  29. 前記より効率的な処理コンポーネントは、前記コードブロックを含むことになる将来の作業負荷において最も少ない電力量を消費することになる前記処理コンポーネントである、請求項26に記載のコンピュータシステム。
  30. 前記複数の個々の処理コンポーネントのうちの1つによって処理されるべき第2のコードブロックを受信するための手段と、
    前記第2のコードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するための手段と、
    前記2つ以上の適格な処理コンポーネントの各々に関連付けられる前記温度測定値に基づいて、各々の性能カーブを照会するための手段であって、前記性能カーブが、所与の個々の処理コンポーネントの、所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、手段と、
    適格な各処理コンポーネントの前記性能カーブを比較して、より効率的な処理コンポーネントを識別するための手段と、
    前記識別された最も効率的な処理コンポーネントに対して前記第2のコードブロックをスケジューリングするための手段と
    をさらに含む、請求項26に記載のコンピュータシステム。
  31. コンピュータ可読プログラムコードを含むコンピュータプログラムであって、前記コンピュータ可読プログラムコードが、ヘテロジニアスマルチプロセッサシステムオンチップ(「SoC」)を有するポータブルコンピューティングデバイスにおける作業負荷をスケジューリングするための方法を実施するために実行されるように適合され、前記方法が、
    前記ヘテロジニアスマルチプロセッサSoC中の複数の個々の処理コンポーネントの各々に一意に関連付けられる温度測定値を監視するステップと、
    前記複数の個々の処理コンポーネントのうちの1つによって処理されるべきコードブロックを受信するステップと、
    前記コードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するステップと、
    前記2つ以上の適格な処理コンポーネントの各々に関連付けられる前記温度測定値に基づいて、各々の性能カーブを照会するステップであって、前記性能カーブが、所与の個々の処理コンポーネントの、所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、ステップと、
    適格な各処理コンポーネントの前記性能カーブを比較して、より効率的な処理コンポーネントを識別するステップと、
    前記識別された最も効率的な処理コンポーネントに対して前記コードブロックをスケジューリングするステップと
    を含む、コンピュータプログラム。
  32. 前記方法を実施する前記コンピュータ可読プログラムコードは、
    適格な各処理コンポーネントの前記性能カーブを比較して、1つまたは複数の移行点を定義するステップであって、移行点が、前記性能カーブのうちの2つが交差する点である、ステップ
    をさらに含む、請求項31に記載のコンピュータプログラム。
  33. 前記より効率的な処理コンポーネントは、その現在の作業負荷において最も少ない電力量を消費する前記処理コンポーネントである、請求項31に記載のコンピュータプログラム。
  34. 前記より効率的な処理コンポーネントは、前記コードブロックを含むことになる将来の作業負荷において最も少ない電力量を消費すると計算される前記処理コンポーネントである、請求項31に記載のコンピュータプログラム。
  35. 前記方法を実施する前記コンピュータ可読プログラムコードは、
    前記複数の個々の処理コンポーネントのうちの1つによって処理されるべき第2のコードブロックを受信するステップと、
    前記第2のコードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するステップと、
    前記2つ以上の適格な処理コンポーネントの各々に関連付けられる前記温度測定値に基づいて、各々の性能カーブを照会するステップであって、前記性能カーブが、所与の個々の処理コンポーネントの、所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、ステップと、
    適格な各処理コンポーネントの前記性能カーブを比較して、前記より効率的な処理コンポーネントを識別するステップと、
    前記識別された最も効率的な処理コンポーネントに対して前記第2のコードブロックをスケジューリングするステップと
    をさらに含む、請求項31に記載のコンピュータプログラム。
  36. 前記方法を実施する前記コンピュータ可読プログラムコードは、
    前記コードブロックを含むことになる将来の作業負荷に起因する前記適格な処理コンポーネントの各々に関する前記温度測定値の上昇を予測するステップ
    をさらに含み、
    適格な各処理コンポーネントの前記照会された性能カーブは、温度測定値の前記予測される上昇に関連付けられる、請求項31に記載のコンピュータプログラム。
  37. 前記方法を実施する前記コンピュータ可読プログラムコードは、
    適格な各処理コンポーネントの前記性能カーブを比較して、1つまたは複数の移行点を定義するステップであって、移行点が、前記性能カーブのうちの2つが交差する点である、ステップ
    をさらに含む、請求項36に記載のコンピュータプログラム。
  38. 前記より効率的な処理コンポーネントは、その現在の作業負荷において最も少ない電力量を消費することになる前記処理コンポーネントである、請求項36に記載のコンピュータプログラム。
  39. 前記より効率的な処理コンポーネントは、前記コードブロックを含むことになる将来の作業負荷において最も少ない電力量を消費することになる前記処理コンポーネントである、請求項36に記載のコンピュータプログラム。
  40. 前記方法を実施する前記コンピュータ可読プログラムコードは、
    前記複数の個々の処理コンポーネントのうちの1つによって処理されるべき第2のコードブロックを受信するステップと、
    前記第2のコードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するステップと、
    前記2つ以上の適格な処理コンポーネントの各々に関連付けられる前記温度測定値に基づいて、各々の性能カーブを照会するステップであって、前記性能カーブが、所与の個々の処理コンポーネントの、所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、ステップと、
    適格な各処理コンポーネントの前記性能カーブを比較して、より効率的な処理コンポーネントを識別するステップと、
    前記識別された最も効率的な処理コンポーネントに対して前記第2のコードブロックをスケジューリングするステップと
    をさらに含む、請求項36に記載のコンピュータプログラム。
JP2014542327A 2011-11-21 2012-10-30 ヘテロジニアスマルチプロセッサシステムオンチップにおける熱駆動作業負荷スケジューリング Expired - Fee Related JP6249953B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161562234P 2011-11-21 2011-11-21
US61/562,234 2011-11-21
US13/357,777 US9442773B2 (en) 2011-11-21 2012-01-25 Thermally driven workload scheduling in a heterogeneous multi-processor system on a chip
US13/357,777 2012-01-25
PCT/US2012/062582 WO2013077972A1 (en) 2011-11-21 2012-10-30 Thermally driven workload scheduling in a heterogeneous multi - processor system on a chip

Publications (2)

Publication Number Publication Date
JP2014533859A true JP2014533859A (ja) 2014-12-15
JP6249953B2 JP6249953B2 (ja) 2017-12-20

Family

ID=48428237

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014542327A Expired - Fee Related JP6249953B2 (ja) 2011-11-21 2012-10-30 ヘテロジニアスマルチプロセッサシステムオンチップにおける熱駆動作業負荷スケジューリング

Country Status (6)

Country Link
US (2) US9442773B2 (ja)
EP (1) EP2783265A1 (ja)
JP (1) JP6249953B2 (ja)
KR (1) KR101747308B1 (ja)
CN (1) CN104067199B (ja)
WO (1) WO2013077972A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017513147A (ja) * 2014-04-08 2017-05-25 クアルコム,インコーポレイテッド マルチプロセッサシステムオンチップにおけるエネルギー効率認識型熱管理

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8397088B1 (en) 2009-07-21 2013-03-12 The Research Foundation Of State University Of New York Apparatus and method for efficient estimation of the energy dissipation of processor based systems
US8601300B2 (en) * 2011-09-21 2013-12-03 Qualcomm Incorporated System and method for managing thermal energy generation in a heterogeneous multi-core processor
US9442773B2 (en) 2011-11-21 2016-09-13 Qualcomm Incorporated Thermally driven workload scheduling in a heterogeneous multi-processor system on a chip
US20130339978A1 (en) * 2012-06-13 2013-12-19 Advanced Micro Devices, Inc. Load balancing for heterogeneous systems
US9448829B2 (en) 2012-12-28 2016-09-20 Intel Corporation Hetergeneous processor apparatus and method
US9639372B2 (en) 2012-12-28 2017-05-02 Intel Corporation Apparatus and method for heterogeneous processors mapping to virtual cores
US9329900B2 (en) 2012-12-28 2016-05-03 Intel Corporation Hetergeneous processor apparatus and method
US9672046B2 (en) * 2012-12-28 2017-06-06 Intel Corporation Apparatus and method for intelligently powering heterogeneous processor components
US8694939B1 (en) * 2013-03-13 2014-04-08 Xilinx, Inc. Method for determining critical junction temperature
US9727345B2 (en) 2013-03-15 2017-08-08 Intel Corporation Method for booting a heterogeneous system and presenting a symmetric core view
US9342443B2 (en) * 2013-03-15 2016-05-17 Micron Technology, Inc. Systems and methods for memory system management based on thermal information of a memory system
US9261935B2 (en) * 2013-07-01 2016-02-16 Advanced Micro Devices, Inc. Allocating power to compute units based on energy efficiency
US9612879B2 (en) * 2013-08-01 2017-04-04 Texas Instruments Incorporated System constraints-aware scheduler for heterogeneous computing architecture
US9292293B2 (en) * 2013-08-08 2016-03-22 Qualcomm Incorporated Intelligent multicore control for optimal performance per watt
US9703355B2 (en) 2013-08-28 2017-07-11 Qualcomm Incorporated Method, devices and systems for dynamic multimedia data flow control for thermal power budgeting
KR101538458B1 (ko) 2014-01-03 2015-07-23 연세대학교 산학협력단 3차원 매니코어 프로세서를 위한 전압섬 형성 방법
KR102205836B1 (ko) 2014-01-29 2021-01-21 삼성전자 주식회사 태스크 스케줄링 방법 및 장치
US20150220097A1 (en) * 2014-02-04 2015-08-06 Qualcomm Incorporated System and method for just-in-time learning-based predictive thermal mitigation in a portable computing device
US9378536B2 (en) * 2014-04-30 2016-06-28 Qualcomm Incorporated CPU/GPU DCVS co-optimization for reducing power consumption in graphics frame processing
US9557797B2 (en) 2014-05-20 2017-01-31 Qualcomm Incorporated Algorithm for preferred core sequencing to maximize performance and reduce chip temperature and power
US10203746B2 (en) 2014-05-30 2019-02-12 Apple Inc. Thermal mitigation using selective task modulation
US10095286B2 (en) 2014-05-30 2018-10-09 Apple Inc. Thermally adaptive quality-of-service
CN106662886A (zh) * 2014-06-12 2017-05-10 联发科技股份有限公司 热管理方法和具有热管理机制的电子系统
US9424092B2 (en) 2014-09-26 2016-08-23 Microsoft Technology Licensing, Llc Heterogeneous thread scheduling
US9903764B2 (en) 2014-09-30 2018-02-27 Samsung Electronics Co., Ltd. Integrated circuit for estimating power of at least one node using temperature and a system including the same
US10215800B2 (en) * 2015-04-24 2019-02-26 Qualcomm Incorporated Device specific thermal mitigation
US9507641B1 (en) * 2015-05-11 2016-11-29 Qualcomm Incorporated System and method for dynamic granularity control of parallelized work in a portable computing device (PCD)
US10671131B2 (en) 2015-06-05 2020-06-02 Apple Inc. Predictive control systems and methods
CN106325325A (zh) * 2015-06-15 2017-01-11 联想(北京)有限公司 电子设备及控制方法
WO2017016590A1 (en) 2015-07-27 2017-02-02 Hewlett-Packard Development Company, L P Scheduling heterogenous processors
US9733685B2 (en) 2015-12-14 2017-08-15 International Business Machines Corporation Temperature-aware microprocessor voltage management
US20170300361A1 (en) * 2016-04-15 2017-10-19 Intel Corporation Employing out of order queues for better gpu utilization
US10459517B2 (en) 2017-03-31 2019-10-29 Qualcomm Incorporated System and methods for scheduling software tasks based on central processing unit power characteristics
JP2019046041A (ja) * 2017-08-31 2019-03-22 富士通株式会社 情報処理装置、情報処理システム、情報処理装置の制御方法及び情報処理装置の制御プログラム
US10545793B2 (en) * 2017-09-29 2020-01-28 Intel Corporation Thread scheduling using processing engine information
US11010330B2 (en) 2018-03-07 2021-05-18 Microsoft Technology Licensing, Llc Integrated circuit operation adjustment using redundant elements
US11334398B2 (en) 2018-08-29 2022-05-17 International Business Machines Corporation Learning-based thermal estimation in multicore architecture
US11140243B1 (en) * 2019-03-30 2021-10-05 Snap Inc. Thermal state inference based frequency scaling
US11442513B1 (en) 2019-04-16 2022-09-13 Snap Inc. Configuration management based on thermal state
US11175952B2 (en) 2020-02-21 2021-11-16 International Business Machines Corporation Leveraging thermal profiles of processing tasks to dynamically schedule execution of the processing tasks
US11886315B2 (en) * 2020-12-10 2024-01-30 Amazon Technologies, Inc. Managing computing capacity in radio-based networks

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0876874A (ja) * 1994-09-06 1996-03-22 Hitachi Ltd 中央処理装置のクロック制御装置およびクロック制御方法
JP2006099624A (ja) * 2004-09-30 2006-04-13 Toshiba Corp マルチプロセッサ計算機及びプログラム
JP2006133995A (ja) * 2004-11-04 2006-05-25 Toshiba Corp プロセッサシステム及びその制御方法
JP2008165815A (ja) * 2003-02-24 2008-07-17 Internatl Business Mach Corp <Ibm> マシン・コード・ビルダによって得られる電力消費低減
WO2010068855A2 (en) * 2008-12-11 2010-06-17 Qualcomm Incorporated Apparatus and methods for adaptive thread scheduling on asymmetric multiprocessor

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2003083693A1 (ja) 2002-04-03 2005-08-04 富士通株式会社 分散処理システムにおけるタスクスケジューリング装置
US7072805B2 (en) 2003-10-17 2006-07-04 International Business Machines Corporation Mechanism for on-line prediction of future performance measurements in a computer system
US9063785B2 (en) 2004-11-03 2015-06-23 Intel Corporation Temperature-based thread scheduling
JP4553307B2 (ja) 2004-11-19 2010-09-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、制御方法、及びプログラム
US20070124618A1 (en) 2005-11-29 2007-05-31 Aguilar Maximino Jr Optimizing power and performance using software and hardware thermal profiles
US8051276B2 (en) 2006-07-07 2011-11-01 International Business Machines Corporation Operating system thread scheduling for optimal heat dissipation
US8813080B2 (en) 2007-06-28 2014-08-19 Intel Corporation System and method to optimize OS scheduling decisions for power savings based on temporal characteristics of the scheduled entity and system workload
US8555283B2 (en) * 2007-10-12 2013-10-08 Oracle America, Inc. Temperature-aware and energy-aware scheduling in a computer system
US8302098B2 (en) 2007-12-06 2012-10-30 Oracle America, Inc. Hardware utilization-aware thread management in multithreaded computer systems
US8635625B2 (en) * 2008-04-04 2014-01-21 International Business Machines Corporation Power-aware workload allocation in performance-managed computing environments
US8543857B2 (en) 2009-09-26 2013-09-24 Intel Corporation Method and apparatus for low power operation of multi-core processors
US20110138395A1 (en) 2009-12-08 2011-06-09 Empire Technology Development Llc Thermal management in multi-core processor
US8589932B2 (en) * 2010-07-02 2013-11-19 International Business Machines Corporation Data processing workload control
US9261949B2 (en) * 2010-10-29 2016-02-16 Advanced Micro Devices, Inc. Method for adaptive performance optimization of the soc
US8788866B2 (en) * 2011-04-25 2014-07-22 Qualcomm Incorporated Method and system for reducing thermal load by monitoring and controlling current flow in a portable computing device
US8601300B2 (en) * 2011-09-21 2013-12-03 Qualcomm Incorporated System and method for managing thermal energy generation in a heterogeneous multi-core processor
US9442773B2 (en) 2011-11-21 2016-09-13 Qualcomm Incorporated Thermally driven workload scheduling in a heterogeneous multi-processor system on a chip

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0876874A (ja) * 1994-09-06 1996-03-22 Hitachi Ltd 中央処理装置のクロック制御装置およびクロック制御方法
JP2008165815A (ja) * 2003-02-24 2008-07-17 Internatl Business Mach Corp <Ibm> マシン・コード・ビルダによって得られる電力消費低減
JP2006099624A (ja) * 2004-09-30 2006-04-13 Toshiba Corp マルチプロセッサ計算機及びプログラム
JP2006133995A (ja) * 2004-11-04 2006-05-25 Toshiba Corp プロセッサシステム及びその制御方法
WO2010068855A2 (en) * 2008-12-11 2010-06-17 Qualcomm Incorporated Apparatus and methods for adaptive thread scheduling on asymmetric multiprocessor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017513147A (ja) * 2014-04-08 2017-05-25 クアルコム,インコーポレイテッド マルチプロセッサシステムオンチップにおけるエネルギー効率認識型熱管理

Also Published As

Publication number Publication date
EP2783265A1 (en) 2014-10-01
JP6249953B2 (ja) 2017-12-20
WO2013077972A1 (en) 2013-05-30
US20130132972A1 (en) 2013-05-23
CN104067199B (zh) 2017-08-22
US9442774B2 (en) 2016-09-13
US20140189710A1 (en) 2014-07-03
US9442773B2 (en) 2016-09-13
KR20140103971A (ko) 2014-08-27
CN104067199A (zh) 2014-09-24
KR101747308B1 (ko) 2017-06-14

Similar Documents

Publication Publication Date Title
JP6249953B2 (ja) ヘテロジニアスマルチプロセッサシステムオンチップにおける熱駆動作業負荷スケジューリング
JP5922778B2 (ja) ヘテロジニアスマルチコアプロセッサにおける熱エネルギーの発生を管理するためのシステムおよび方法
JP6218967B2 (ja) マルチプロセッサシステムオンチップにおけるエネルギー効率認識型熱管理
US8996902B2 (en) Modal workload scheduling in a heterogeneous multi-processor system on a chip
KR101529419B1 (ko) 휴대용 컴퓨팅 디바이스에서의 열 로드 관리
JP6162262B2 (ja) 最適な電力レベルを予測するために熱抵抗値を使用したポータブルコンピューティングデバイスにおける熱管理のためのシステムおよび方法
JP6591971B2 (ja) チップ上のマルチプロセッサシステムにおけるアイドル状態最適化のためのシステムおよび方法
JP5781255B1 (ja) ポータブルコンピューティングデバイスにおける適応型熱管理のためのシステムおよび方法
JP5777827B2 (ja) ポータブルコンピューティングデバイスにおけるバッテリ負荷管理のためのシステムおよび方法
JP5808488B2 (ja) 主体的な負荷操作により熱負荷をあらかじめ回避するための方法、システム、及びコンピュータプログラム
JP5805881B2 (ja) 漏洩電流の測定値から熱管理ポリシーを決定するためのシステムおよび方法
US8595525B2 (en) On-chip thermal management techniques using inter-processor time dependent power density data for indentification of thermal aggressors
JP2017502383A (ja) ポータブルコンピューティングデバイスにおけるシステムオンチップのマルチ相関学習型熱管理のためのシステムおよび方法
JP2016538637A (ja) システムオンチップにおける動的dcvs調整および作業負荷スケジューリングのためのシステムおよび方法
JP6240225B2 (ja) ポータブルコンピューティングデバイスにおける電圧モードの温度駆動型選択のためのシステムおよび方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150907

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151126

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160412

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20160427

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

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20160520

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170823

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171121

R150 Certificate of patent or registration of utility model

Ref document number: 6249953

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees