(57)【要約】  ヘテロジニアスマルチプロセッサシステムオンチップ(「SoC」)を含むポータブルコンピューティングデバイスにおける作業負荷の熱認識スケジューリングのための方法およびシステムの様々な実施形態が開示される。ヘテロジニアスマルチプロセッサSoCにおける個々の処理コンポーネントは所与の時間に異なる処理効率性を示し得るので、また処理コンポーネントのうちの2つ以上が、所与のコードブロックを処理する能力を有し得るので、コードブロックを効率的に処理するのに最も良い状況にある処理コンポーネントにリアルタイムまたはほぼリアルタイムで作業負荷を配分することによってサービス品質(「QoS」)を最適化するために、個々の処理コンポーネントの性能カーブをそれらの測定された動作温度で比較する熱認識作業負荷スケジューリング技法が利用され得る。
2014533859.tif 000002
【特許請求の範囲】
【請求項１】
ヘテロジニアスマルチプロセッサシステムオンチップ(「SoC」)を有するポータブルコンピューティングデバイスにおける作業負荷をスケジューリングするための方法であって、
前記ヘテロジニアスマルチプロセッサSoC中の複数の個々の処理コンポーネントの各々に一意に関連付けられる温度測定値を監視するステップと、
前記複数の個々の処理コンポーネントのうちの1つによって処理されるべきコードブロックを受信するステップと、
前記コードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するステップと、
前記2つ以上の適格な処理コンポーネントの各々に一意に関連付けられる前記温度測定値に基づいて、各々の性能カーブを照会するステップであって、前記性能カーブが、所与の個々の処理コンポーネントの、所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、ステップと、
適格な各処理コンポーネントの前記性能カーブを比較して、より効率的な処理コンポーネントを識別するステップと、
前記識別された最も効率的な処理コンポーネントに対して前記コードブロックをスケジューリングするステップと
を含む方法。
【請求項２】
適格な各処理コンポーネントの前記性能カーブを比較して、前記より効率的な処理コンポーネントを識別するステップは、
適格な各処理コンポーネントの前記性能カーブを比較して、1つまたは複数の移行点を定義するステップであって、移行点が、前記性能カーブのうちの2つが交差する点である、ステップ
をさらに含む、請求項1に記載の方法。
【請求項３】
前記より効率的な処理コンポーネントは、その現在の作業負荷において最も少ない電力量を消費する前記処理コンポーネントである、請求項1に記載の方法。
【請求項４】
前記より効率的な処理コンポーネントは、前記コードブロックを含むことになる将来の作業負荷において最も少ない電力量を消費すると計算される前記処理コンポーネントである、請求項1に記載の方法。
【請求項５】
前記複数の個々の処理コンポーネントのうちの1つによって処理されるべき第2のコードブロックを受信するステップと、
前記第2のコードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するステップと、
前記2つ以上の適格な処理コンポーネントの各々に関連付けられる前記温度測定値に基づいて、各々の性能カーブを照会するステップであって、前記性能カーブが、所与の個々の処理コンポーネントの、所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、ステップと、
適格な各処理コンポーネントの前記性能カーブを比較して、より効率的な処理コンポーネントを識別するステップと、
前記識別された最も効率的な処理コンポーネントに対して前記第2のコードブロックをスケジューリングするステップと
をさらに含む、請求項1に記載の方法。
【請求項６】
前記コードブロックを含むことになる将来の作業負荷に起因する前記適格な処理コンポーネントの各々に関する前記温度測定値の上昇を予測するステップ
をさらに含み、
適格な各処理コンポーネントの前記照会された性能カーブは、前記温度測定値の前記予測される上昇に関連付けられる、請求項1に記載の方法。
【請求項７】
適格な各処理コンポーネントの前記性能カーブを比較して、前記より効率的な処理コンポーネントを識別するステップは、
適格な各処理コンポーネントの前記性能カーブを比較して、1つまたは複数の移行点を定義するステップであって、移行点が、前記性能カーブのうちの2つが交差する点である、ステップ
をさらに含む、請求項6に記載の方法。
【請求項８】
前記より効率的な処理コンポーネントは、その現在の作業負荷において最も少ない電力量を消費することになる前記処理コンポーネントである、請求項6に記載の方法。
【請求項９】
前記より効率的な処理コンポーネントは、前記コードブロックを含むことになる将来の作業負荷において最も少ない電力量を消費することになる前記処理コンポーネントである、請求項6に記載の方法。
【請求項１０】
前記複数の個々の処理コンポーネントのうちの1つによって処理されるべき第2のコードブロックを受信するステップと、
前記第2のコードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するステップと、
前記2つ以上の適格な処理コンポーネントの各々に関連付けられる前記温度測定値に基づいて、各々の性能カーブを照会するステップであって、前記性能カーブが、所与の個々の処理コンポーネントの、所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、ステップと、
適格な各処理コンポーネントの前記性能カーブを比較して、より効率的な処理コンポーネントを識別するステップと、
前記識別された最も効率的な処理コンポーネントに対して前記第2のコードブロックをスケジューリングするステップと
をさらに含む、請求項6に記載の方法。
【請求項１１】
ヘテロジニアスマルチプロセッサシステムオンチップ(「SoC」)を有するポータブルコンピューティングデバイスにおける作業負荷をスケジューリングするためのコンピュータシステムであって、
前記ヘテロジニアスマルチプロセッサSoC中の複数の個々の処理コンポーネントの各々に一意に関連付けられる温度測定値を監視するステップ
を行うように構成された監視モジュールと、
前記複数の個々の処理コンポーネントのうちの1つによって処理されるべきコードブロックを受信するステップと、
前記コードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するステップと、
前記2つ以上の適格な処理コンポーネントの各々に関連付けられる前記温度測定値に基づいて、各々の性能カーブをコア性能ストアに照会するステップであって、前記性能カーブが、所与の個々の処理コンポーネントの、所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、ステップと、
適格な各処理コンポーネントの前記性能カーブを比較して、より効率的な処理コンポーネントを識別するステップと、
前記識別された最も効率的な処理コンポーネントに対して前記コードブロックをスケジューリングするステップと
を行うように構成された熱認識作業負荷スケジューリングモジュールと
を含むコンピュータシステム。
【請求項１２】
前記熱認識作業負荷スケジューリングモジュールは、
適格な各処理コンポーネントの前記性能カーブを比較して、1つまたは複数の移行点を定義するステップであって、移行点が、前記性能カーブのうちの2つが交差する点である、ステップ
を行うようにさらに構成される、請求項11に記載のコンピュータシステム。
【請求項１３】
前記より効率的な処理コンポーネントは、その現在の作業負荷において最も少ない電力量を消費する前記処理コンポーネントである、請求項11に記載のコンピュータシステム。
【請求項１４】
前記より効率的な処理コンポーネントは、前記コードブロックを含むことになる将来の作業負荷において最も少ない電力量を消費すると計算される前記処理コンポーネントである、請求項11に記載のコンピュータシステム。
【請求項１５】
前記熱認識作業負荷スケジューリングモジュールは、
前記複数の個々の処理コンポーネントのうちの1つによって処理されるべき第2のコードブロックを受信するステップと、
前記第2のコードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するステップと、
前記2つ以上の適格な処理コンポーネントの各々に関連付けられる前記温度測定値に基づいて、各々の性能カーブをコア性能ストアに照会するステップであって、前記性能カーブが、所与の個々の処理コンポーネントの、所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、ステップと、
適格な各処理コンポーネントの前記性能カーブを比較して、より効率的な処理コンポーネントを識別するステップと、
前記識別された最も効率的な処理コンポーネントに対して前記第2のコードブロックをスケジューリングするステップと
を行うようにさらに構成される、請求項11に記載のコンピュータシステム。
【請求項１６】
前記熱認識作業負荷スケジューリングモジュールは、
前記コードブロックを含むことになる将来の作業負荷に起因する前記適格な処理コンポーネントの各々に関する前記温度測定値の上昇を予測するステップ
を行うようにさらに構成され、
適格な各処理コンポーネントの前記照会された性能カーブは、温度測定値の前記予測される上昇に関連付けられる、請求項11に記載のコンピュータシステム。
【請求項１７】
前記熱認識作業負荷スケジューリングモジュールは、
適格な各処理コンポーネントの前記性能カーブを比較して、1つまたは複数の移行点を定義するステップであって、移行点が、前記性能カーブのうちの2つが交差する点である、ステップ
を行うようにさらに構成される、請求項16に記載のコンピュータシステム。
【請求項１８】
前記より効率的な処理コンポーネントは、その現在の作業負荷において最も少ない電力量を消費することになる前記処理コンポーネントである、請求項16に記載のコンピュータシステム。
【請求項１９】
前記より効率的な処理コンポーネントは、前記コードブロックを含むことになる将来の作業負荷において最も少ない電力量を消費することになる前記処理コンポーネントである、請求項16に記載のコンピュータシステム。
【請求項２０】
前記熱認識作業負荷スケジューリングモジュールは、
前記複数の個々の処理コンポーネントのうちの1つによって処理されるべき第2のコードブロックを受信するステップと、
前記第2のコードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するステップと、
前記2つ以上の適格な処理コンポーネントの各々に関連付けられる前記温度測定値に基づいて、各々の性能カーブをコア性能ストアに照会するステップであって、前記性能カーブが、所与の個々の処理コンポーネントの、所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、ステップと、
適格な各処理コンポーネントの前記性能カーブを比較して、前記より効率的な処理コンポーネントを識別するステップと、
前記識別された最も効率的な処理コンポーネントに対して前記第2のコードブロックをスケジューリングするステップと
を行うようにさらに構成される、請求項16に記載のコンピュータシステム。
【請求項２１】
ヘテロジニアスマルチプロセッサシステムオンチップ(「SoC」)を有するポータブルコンピューティングデバイスにおける作業負荷をスケジューリングするためのコンピュータシステムであって、
前記ヘテロジニアスマルチプロセッサSoC中の複数の個々の処理コンポーネントの各々に一意に関連付けられる温度測定値を監視するための手段と、
前記複数の個々の処理コンポーネントのうちの1つによって処理されるべきコードブロックを受信するための手段と、
前記コードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するための手段と、
前記2つ以上の適格な処理コンポーネントの各々に関連付けられる前記温度測定値に基づいて、各々の性能カーブを照会するための手段であって、前記性能カーブが、所与の個々の処理コンポーネントの、所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、手段と、
適格な各処理コンポーネントの前記性能カーブを比較して、より効率的な処理コンポーネントを識別するための手段と、
前記識別された最も効率的な処理コンポーネントに対して前記コードブロックをスケジューリングするための手段と
を含むコンピュータシステム。
【請求項２２】
適格な各処理コンポーネントの前記性能カーブを比較して、より効率的な処理コンポーネントを識別するための前記手段は、
適格な各処理コンポーネントの前記性能カーブを比較して、1つまたは複数の移行点を定義するための手段であって、移行点が、前記性能カーブのうちの2つが交差する点である、手段
をさらに含む、請求項21に記載のコンピュータシステム。
【請求項２３】
前記より効率的な処理コンポーネントは、その現在の作業負荷において最も少ない電力量を消費する前記処理コンポーネントである、請求項21に記載のコンピュータシステム。
【請求項２４】
前記より効率的な処理コンポーネントは、前記コードブロックを含むことになる将来の作業負荷において最も少ない電力量を消費すると計算される前記処理コンポーネントである、請求項21に記載のコンピュータシステム。
【請求項２５】
前記複数の個々の処理コンポーネントのうちの1つによって処理されるべき第2のコードブロックを受信するための手段と、
前記第2のコードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するための手段と、
前記2つ以上の適格な処理コンポーネントの各々に関連付けられる前記温度測定値に基づいて、各々の性能カーブを照会するための手段であって、前記性能カーブが、所与の個々の処理コンポーネントの、所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、手段と、
適格な各処理コンポーネントの前記性能カーブを比較して、より効率的な処理コンポーネントを識別するための手段と、
前記識別された最も効率的な処理コンポーネントに対して前記第2のコードブロックをスケジューリングするための手段と
をさらに含む、請求項21に記載のコンピュータシステム。
【請求項２６】
前記コードブロックを含むことになる将来の作業負荷に起因する前記適格な処理コンポーネントの各々に関する前記温度測定値の上昇を予測するための手段
をさらに含み、
適格な各処理コンポーネントの前記照会された性能カーブは、温度測定値の前記予測される上昇に関連付けられる、請求項21に記載のコンピュータシステム。
【請求項２７】
適格な各処理コンポーネントの前記性能カーブを比較して、より効率的な処理コンポーネントを識別するための前記手段は、
適格な各処理コンポーネントの前記性能カーブを比較して、1つまたは複数の移行点を定義するための手段であって、移行点が、前記性能カーブのうちの2つが交差する点である、手段
をさらに含む、請求項26に記載のコンピュータシステム。
【請求項２８】
前記より効率的な処理コンポーネントは、その現在の作業負荷において最も少ない電力量を消費することになる前記処理コンポーネントである、請求項26に記載のコンピュータシステム。
【請求項２９】
前記より効率的な処理コンポーネントは、前記コードブロックを含むことになる将来の作業負荷において最も少ない電力量を消費することになる前記処理コンポーネントである、請求項26に記載のコンピュータシステム。
【請求項３０】
前記複数の個々の処理コンポーネントのうちの1つによって処理されるべき第2のコードブロックを受信するための手段と、
前記第2のコードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するための手段と、
前記2つ以上の適格な処理コンポーネントの各々に関連付けられる前記温度測定値に基づいて、各々の性能カーブを照会するための手段であって、前記性能カーブが、所与の個々の処理コンポーネントの、所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、手段と、
適格な各処理コンポーネントの前記性能カーブを比較して、より効率的な処理コンポーネントを識別するための手段と、
前記識別された最も効率的な処理コンポーネントに対して前記第2のコードブロックをスケジューリングするための手段と
をさらに含む、請求項26に記載のコンピュータシステム。
【請求項３１】
コンピュータ可読プログラムコードを含むコンピュータプログラムであって、前記コンピュータ可読プログラムコードが、ヘテロジニアスマルチプロセッサシステムオンチップ(「SoC」)を有するポータブルコンピューティングデバイスにおける作業負荷をスケジューリングするための方法を実施するために実行されるように適合され、前記方法が、
前記ヘテロジニアスマルチプロセッサSoC中の複数の個々の処理コンポーネントの各々に一意に関連付けられる温度測定値を監視するステップと、
前記複数の個々の処理コンポーネントのうちの1つによって処理されるべきコードブロックを受信するステップと、
前記コードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するステップと、
前記2つ以上の適格な処理コンポーネントの各々に関連付けられる前記温度測定値に基づいて、各々の性能カーブを照会するステップであって、前記性能カーブが、所与の個々の処理コンポーネントの、所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、ステップと、
適格な各処理コンポーネントの前記性能カーブを比較して、より効率的な処理コンポーネントを識別するステップと、
前記識別された最も効率的な処理コンポーネントに対して前記コードブロックをスケジューリングするステップと
を含む、コンピュータプログラム。
【請求項３２】
前記方法を実施する前記コンピュータ可読プログラムコードは、
適格な各処理コンポーネントの前記性能カーブを比較して、1つまたは複数の移行点を定義するステップであって、移行点が、前記性能カーブのうちの2つが交差する点である、ステップ
をさらに含む、請求項31に記載のコンピュータプログラム。
【請求項３３】
前記より効率的な処理コンポーネントは、その現在の作業負荷において最も少ない電力量を消費する前記処理コンポーネントである、請求項31に記載のコンピュータプログラム。
【請求項３４】
前記より効率的な処理コンポーネントは、前記コードブロックを含むことになる将来の作業負荷において最も少ない電力量を消費すると計算される前記処理コンポーネントである、請求項31に記載のコンピュータプログラム。
【請求項３５】
前記方法を実施する前記コンピュータ可読プログラムコードは、
前記複数の個々の処理コンポーネントのうちの1つによって処理されるべき第2のコードブロックを受信するステップと、
前記第2のコードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するステップと、
前記2つ以上の適格な処理コンポーネントの各々に関連付けられる前記温度測定値に基づいて、各々の性能カーブを照会するステップであって、前記性能カーブが、所与の個々の処理コンポーネントの、所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、ステップと、
適格な各処理コンポーネントの前記性能カーブを比較して、前記より効率的な処理コンポーネントを識別するステップと、
前記識別された最も効率的な処理コンポーネントに対して前記第2のコードブロックをスケジューリングするステップと
をさらに含む、請求項31に記載のコンピュータプログラム。
【請求項３６】
前記方法を実施する前記コンピュータ可読プログラムコードは、
前記コードブロックを含むことになる将来の作業負荷に起因する前記適格な処理コンポーネントの各々に関する前記温度測定値の上昇を予測するステップ
をさらに含み、
適格な各処理コンポーネントの前記照会された性能カーブは、温度測定値の前記予測される上昇に関連付けられる、請求項31に記載のコンピュータプログラム。
【請求項３７】
前記方法を実施する前記コンピュータ可読プログラムコードは、
適格な各処理コンポーネントの前記性能カーブを比較して、1つまたは複数の移行点を定義するステップであって、移行点が、前記性能カーブのうちの2つが交差する点である、ステップ
をさらに含む、請求項36に記載のコンピュータプログラム。
【請求項３８】
前記より効率的な処理コンポーネントは、その現在の作業負荷において最も少ない電力量を消費することになる前記処理コンポーネントである、請求項36に記載のコンピュータプログラム。
【請求項３９】
前記より効率的な処理コンポーネントは、前記コードブロックを含むことになる将来の作業負荷において最も少ない電力量を消費することになる前記処理コンポーネントである、請求項36に記載のコンピュータプログラム。
【請求項４０】
前記方法を実施する前記コンピュータ可読プログラムコードは、
前記複数の個々の処理コンポーネントのうちの1つによって処理されるべき第2のコードブロックを受信するステップと、
前記第2のコードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するステップと、
前記2つ以上の適格な処理コンポーネントの各々に関連付けられる前記温度測定値に基づいて、各々の性能カーブを照会するステップであって、前記性能カーブが、所与の個々の処理コンポーネントの、所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、ステップと、
適格な各処理コンポーネントの前記性能カーブを比較して、より効率的な処理コンポーネントを識別するステップと、
前記識別された最も効率的な処理コンポーネントに対して前記第2のコードブロックをスケジューリングするステップと
をさらに含む、請求項36に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
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  移行点、乗換点
【図１】
2014533859.tif 000003
【図２】
2014533859.tif 000004
【図３】
2014533859.tif 000005
【図４】
2014533859.tif 000006
【図５Ａ】
2014533859.tif 000007
【図５Ｂ】
2014533859.tif 000008
【図６】
2014533859.tif 000009
【図７】
2014533859.tif 000010
【図８】
2014533859.tif 000011
【図９】
2014533859.tif 000012
【手続補正書】
【提出日】平成26年1月11日(2014.1.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ヘテロジニアスマルチプロセッサシステムオンチップ(「SoC」)を有するポータブルコンピューティングデバイスにおける作業負荷をスケジューリングするための方法であって、
前記ヘテロジニアスマルチプロセッサSoC中の複数の個々の処理コンポーネントの各々に一意に関連付けられる温度測定値を監視するステップと、
前記複数の個々の処理コンポーネントのうちの1つによって処理されるべきコードブロックを受信するステップと、
前記コードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するステップと、
前記2つ以上の適格な処理コンポーネントの各々に一意に関連付けられる前記温度測定値に基づいて、各々の性能カーブを照会するステップであって、前記性能カーブが、所与の個々の処理コンポーネントの、前記温度測定値に関連する所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、ステップと、
適格な各処理コンポーネントの前記性能カーブを比較して、より効率的な処理コンポーネントを識別するステップであって、前記より効率的な処理コンポーネントの前記性能カーブは、前記より効率的な処理コンポーネントが、前記コードブロックを処理するために他の適格な処理コンポーネントよりも少ない電力を消費することになることを示す、ステップと、
前記識別されたより効率的な処理コンポーネントに対して前記コードブロックをスケジューリングするステップと
を含む方法。
【請求項２】
適格な各処理コンポーネントの前記性能カーブを比較して、前記より効率的な処理コンポーネントを識別するステップは、
適格な各処理コンポーネントの前記性能カーブを比較して、1つまたは複数の移行点を定義するステップであって、移行点が、前記性能カーブのうちの2つが交差する点である、ステップ
をさらに含む、請求項1に記載の方法。
【請求項３】
前記より効率的な処理コンポーネントは、その現在の作業負荷において最も少ない電力量を消費する前記処理コンポーネントである、請求項1に記載の方法。
【請求項４】
前記より効率的な処理コンポーネントは、前記コードブロックを含むことになる将来の作業負荷において最も少ない電力量を消費すると計算される前記処理コンポーネントである、請求項1に記載の方法。
【請求項５】
前記複数の個々の処理コンポーネントのうちの1つによって処理されるべき第2のコードブロックを受信するステップと、
前記第2のコードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するステップと、
前記2つ以上の適格な処理コンポーネントの各々に関連付けられる前記温度測定値に基づいて、各々の性能カーブを照会するステップであって、前記性能カーブが、所与の個々の処理コンポーネントの、所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、ステップと、
適格な各処理コンポーネントの前記性能カーブを比較して、より効率的な処理コンポーネントを識別するステップと、
前記識別された最も効率的な処理コンポーネントに対して前記第2のコードブロックをスケジューリングするステップと
をさらに含む、請求項1に記載の方法。
【請求項６】
前記コードブロックを含むことになる将来の作業負荷に起因する前記適格な処理コンポーネントの各々に関する前記温度測定値の上昇を予測するステップ
をさらに含み、
適格な各処理コンポーネントの前記照会された性能カーブは、前記温度測定値の前記予測される上昇に関連付けられる、請求項1に記載の方法。
【請求項７】
適格な各処理コンポーネントの前記性能カーブを比較して、前記より効率的な処理コンポーネントを識別するステップは、
適格な各処理コンポーネントの前記性能カーブを比較して、1つまたは複数の移行点を定義するステップであって、移行点が、前記性能カーブのうちの2つが交差する点である、ステップ
をさらに含む、請求項6に記載の方法。
【請求項８】
前記より効率的な処理コンポーネントは、その現在の作業負荷において最も少ない電力量を消費することになる前記処理コンポーネントである、請求項6に記載の方法。
【請求項９】
前記より効率的な処理コンポーネントは、前記コードブロックを含むことになる将来の作業負荷において最も少ない電力量を消費することになる前記処理コンポーネントである、請求項6に記載の方法。
【請求項１０】
前記複数の個々の処理コンポーネントのうちの1つによって処理されるべき第2のコードブロックを受信するステップと、
前記第2のコードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するステップと、
前記2つ以上の適格な処理コンポーネントの各々に関連付けられる前記温度測定値に基づいて、各々の性能カーブを照会するステップであって、前記性能カーブが、所与の個々の処理コンポーネントの、前記温度測定値に関連する所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、ステップと、
適格な各処理コンポーネントの前記性能カーブを比較して、より効率的な処理コンポーネントを識別するステップであって、前記より効率的な処理コンポーネントの前記性能カーブは、前記より効率的な処理コンポーネントが、前記第2のコードブロックを処理するために他の適格な処理コンポーネントよりも少ない電力を消費することになることを示す、ステップと、
前記識別されたより効率的な処理コンポーネントに対して前記第2のコードブロックをスケジューリングするステップと
をさらに含む、請求項6に記載の方法。
【請求項１１】
ヘテロジニアスマルチプロセッサシステムオンチップ(「SoC」)を有するポータブルコンピューティングデバイスにおける作業負荷をスケジューリングするためのコンピュータシステムであって、
前記ヘテロジニアスマルチプロセッサSoC中の複数の個々の処理コンポーネントの各々に一意に関連付けられる温度測定値を監視するステップ
を行うように構成された監視モジュールと、
前記複数の個々の処理コンポーネントのうちの1つによって処理されるべきコードブロックを受信するステップと、
前記コードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するステップと、
前記2つ以上の適格な処理コンポーネントの各々に関連付けられる前記温度測定値に基づいて、各々の性能カーブをコア性能ストアに照会するステップであって、前記性能カーブが、所与の個々の処理コンポーネントの、前記温度測定値に関連する所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、ステップと、
適格な各処理コンポーネントの前記性能カーブを比較して、より効率的な処理コンポーネントを識別するステップであって、前記より効率的な処理コンポーネントの前記性能カーブは、前記より効率的な処理コンポーネントが、前記コードブロックを処理するために他の適格な処理コンポーネントよりも少ない電力を消費することになることを示す、ステップと、
前記識別されたより効率的な処理コンポーネントに対して前記コードブロックをスケジューリングするステップと
を行うように構成された熱認識作業負荷スケジューリングモジュールと
を含むコンピュータシステム。
【請求項１２】
前記熱認識作業負荷スケジューリングモジュールは、
適格な各処理コンポーネントの前記性能カーブを比較して、1つまたは複数の移行点を定義するステップであって、移行点が、前記性能カーブのうちの2つが交差する点である、ステップ
を行うようにさらに構成される、請求項11に記載のコンピュータシステム。
【請求項１３】
前記より効率的な処理コンポーネントは、その現在の作業負荷において最も少ない電力量を消費する前記処理コンポーネントである、請求項11に記載のコンピュータシステム。
【請求項１４】
前記より効率的な処理コンポーネントは、前記コードブロックを含むことになる将来の作業負荷において最も少ない電力量を消費すると計算される前記処理コンポーネントである、請求項11に記載のコンピュータシステム。
【請求項１５】
前記熱認識作業負荷スケジューリングモジュールは、
前記複数の個々の処理コンポーネントのうちの1つによって処理されるべき第2のコードブロックを受信するステップと、
前記第2のコードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するステップと、
前記2つ以上の適格な処理コンポーネントの各々に関連付けられる前記温度測定値に基づいて、各々の性能カーブをコア性能ストアに照会するステップであって、前記性能カーブが、所与の個々の処理コンポーネントの、所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、ステップと、
適格な各処理コンポーネントの前記性能カーブを比較して、より効率的な処理コンポーネントを識別するステップと、
前記識別された最も効率的な処理コンポーネントに対して前記第2のコードブロックをスケジューリングするステップと
を行うようにさらに構成される、請求項11に記載のコンピュータシステム。
【請求項１６】
前記熱認識作業負荷スケジューリングモジュールは、
前記コードブロックを含むことになる将来の作業負荷に起因する前記適格な処理コンポーネントの各々に関する前記温度測定値の上昇を予測するステップ
を行うようにさらに構成され、
適格な各処理コンポーネントの前記照会された性能カーブは、温度測定値の前記予測される上昇に関連付けられる、請求項11に記載のコンピュータシステム。
【請求項１７】
前記熱認識作業負荷スケジューリングモジュールは、
適格な各処理コンポーネントの前記性能カーブを比較して、1つまたは複数の移行点を定義するステップであって、移行点が、前記性能カーブのうちの2つが交差する点である、ステップ
を行うようにさらに構成される、請求項16に記載のコンピュータシステム。
【請求項１８】
前記より効率的な処理コンポーネントは、その現在の作業負荷において最も少ない電力量を消費することになる前記処理コンポーネントである、請求項16に記載のコンピュータシステム。
【請求項１９】
前記より効率的な処理コンポーネントは、前記コードブロックを含むことになる将来の作業負荷において最も少ない電力量を消費することになる前記処理コンポーネントである、請求項16に記載のコンピュータシステム。
【請求項２０】
前記熱認識作業負荷スケジューリングモジュールは、
前記複数の個々の処理コンポーネントのうちの1つによって処理されるべき第2のコードブロックを受信するステップと、
前記第2のコードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するステップと、
前記2つ以上の適格な処理コンポーネントの各々に関連付けられる前記温度測定値に基づいて、各々の性能カーブをコア性能ストアに照会するステップであって、前記性能カーブが、所与の個々の処理コンポーネントの、前記温度測定値に関連する所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、ステップと、
適格な各処理コンポーネントの前記性能カーブを比較して、前記より効率的な処理コンポーネントを識別するステップであって、前記より効率的な処理コンポーネントの前記性能カーブは、前記より効率的な処理コンポーネントが、前記第2のコードブロックを処理するために他の適格な処理コンポーネントよりも少ない電力を消費することになることを示す、ステップと、
前記識別されたより効率的な処理コンポーネントに対して前記第2のコードブロックをスケジューリングするステップと
を行うようにさらに構成される、請求項16に記載のコンピュータシステム。
【請求項２１】
コンピュータ可読プログラムコードを含むコンピュータプログラムであって、前記コンピュータ可読プログラムコードが、ヘテロジニアスマルチプロセッサシステムオンチップ(「SoC」)を有するポータブルコンピューティングデバイスにおける作業負荷をスケジューリングするための方法を実施するために実行されるように適合され、前記方法が、
前記ヘテロジニアスマルチプロセッサSoC中の複数の個々の処理コンポーネントの各々に一意に関連付けられる温度測定値を監視するステップと、
前記複数の個々の処理コンポーネントのうちの1つによって処理されるべきコードブロックを受信するステップと、
前記コードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するステップと、
前記2つ以上の適格な処理コンポーネントの各々に関連付けられる前記温度測定値に基づいて、各々の性能カーブを照会するステップであって、前記性能カーブが、所与の個々の処理コンポーネントの、前記温度測定値に関連する所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、ステップと、
適格な各処理コンポーネントの前記性能カーブを比較して、より効率的な処理コンポーネントを識別するステップであって、前記より効率的な処理コンポーネントの前記性能カーブは、前記より効率的な処理コンポーネントが、前記コードブロックを処理するために他の適格な処理コンポーネントよりも少ない電力を消費することになることを示す、ステップと、
前記識別されたより効率的な処理コンポーネントに対して前記コードブロックをスケジューリングするステップと
を含む、コンピュータプログラム。
【請求項２２】
前記方法を実施する前記コンピュータ可読プログラムコードは、
適格な各処理コンポーネントの前記性能カーブを比較して、1つまたは複数の移行点を定義するステップであって、移行点が、前記性能カーブのうちの2つが交差する点である、ステップ
をさらに含む、請求項21に記載のコンピュータプログラム。
【請求項２３】
前記より効率的な処理コンポーネントは、その現在の作業負荷において最も少ない電力量を消費する前記処理コンポーネントである、請求項21に記載のコンピュータプログラム。
【請求項２４】
前記より効率的な処理コンポーネントは、前記コードブロックを含むことになる将来の作業負荷において最も少ない電力量を消費すると計算される前記処理コンポーネントである、請求項21に記載のコンピュータプログラム。
【請求項２５】
前記方法を実施する前記コンピュータ可読プログラムコードは、
前記複数の個々の処理コンポーネントのうちの1つによって処理されるべき第2のコードブロックを受信するステップと、
前記第2のコードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するステップと、
前記2つ以上の適格な処理コンポーネントの各々に関連付けられる前記温度測定値に基づいて、各々の性能カーブを照会するステップであって、前記性能カーブが、所与の個々の処理コンポーネントの、所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、ステップと、
適格な各処理コンポーネントの前記性能カーブを比較して、前記より効率的な処理コンポーネントを識別するステップと、
前記識別された最も効率的な処理コンポーネントに対して前記第2のコードブロックをスケジューリングするステップと
をさらに含む、請求項21に記載のコンピュータプログラム。
【請求項２６】
前記方法を実施する前記コンピュータ可読プログラムコードは、
前記コードブロックを含むことになる将来の作業負荷に起因する前記適格な処理コンポーネントの各々に関する前記温度測定値の上昇を予測するステップ
をさらに含み、
適格な各処理コンポーネントの前記照会された性能カーブは、温度測定値の前記予測される上昇に関連付けられる、請求項21に記載のコンピュータプログラム。
【請求項２７】
前記方法を実施する前記コンピュータ可読プログラムコードは、
適格な各処理コンポーネントの前記性能カーブを比較して、1つまたは複数の移行点を定義するステップであって、移行点が、前記性能カーブのうちの2つが交差する点である、ステップ
をさらに含む、請求項26に記載のコンピュータプログラム。
【請求項２８】
前記より効率的な処理コンポーネントは、その現在の作業負荷において最も少ない電力量を消費することになる前記処理コンポーネントである、請求項26に記載のコンピュータプログラム。
【請求項２９】
前記より効率的な処理コンポーネントは、前記コードブロックを含むことになる将来の作業負荷において最も少ない電力量を消費することになる前記処理コンポーネントである、請求項26に記載のコンピュータプログラム。
【請求項３０】
前記方法を実施する前記コンピュータ可読プログラムコードは、
前記複数の個々の処理コンポーネントのうちの1つによって処理されるべき第2のコードブロックを受信するステップと、
前記第2のコードブロックを処理するのに適格な前記複数の処理コンポーネントのうちの2つ以上を識別するステップと、
前記2つ以上の適格な処理コンポーネントの各々に関連付けられる前記温度測定値に基づいて、各々の性能カーブを照会するステップであって、前記性能カーブが、所与の個々の処理コンポーネントの、前記温度測定値に関連する所与の温度で動作しているときの電力消費と作業負荷処理能力との関係を表す、ステップと、
適格な各処理コンポーネントの前記性能カーブを比較して、より効率的な処理コンポーネントを識別するステップであって、前記より効率的な処理コンポーネントの前記性能カーブは、前記より効率的な処理コンポーネントが、前記第2のコードブロックを処理するために他の適格な処理コンポーネントよりも少ない電力を消費することになることを示す、ステップと、
前記識別されたより効率的な処理コンポーネントに対して前記第2のコードブロックをスケジューリングするステップと
をさらに含む、請求項26に記載のコンピュータプログラム。
【国際調査報告】
2014533859.tif 000013
2014533859.tif 000014
2014533859.tif 000015