(57)【特許請求の範囲】
【請求項１】
幾つかのモジュールを含む処理回路に於ける多重タスクの実行を制御する方法に於て、
前記処理回路の種々の区域に於ける温度関連情報を決定し、
前記いくつかの処理モジュールのうちの第１の処理モジュールに関連した領域における過剰温度を示す温度関連情報に応答して、１又は２以上の近接処理モジュールのタスクを実行するパラメータを変更してその近接処理モジュールから発生される熱を減少して前記第１の処理モジュールの過剰温度に対応させる、
工程を含む方法。
【請求項２】
請求項１記載の方法に於て、前記決定する工程が、前記モジュールによって実行される動作を監視する工程を含む方法。
【請求項３】
請求項１記載の方法に於て、前記決定する工程が、
前記処理回路内の一つの区域に於けるハードウェアの電力散逸事象を計数する工程と、
前記ハードウェアの電力散逸事象の計数を、前記処理回路の熱的時定数に相当する時間ごとに周期的に観視する工程と
を含む方法。
【請求項４】
請求項１記載の方法に於て、前記決定する工程が、前記処理回路内の種々の場所に於ける現在の温度を計算する工程を含む方法。
【請求項５】
多重タスクを実行する複数個の処理モジュールを含む処理回路に於て、
前記処理回路の種々の区域に於ける温度に関連する情報を決定する回路と、
前記いくつかの処理モジュールのうちの第１の処理モジュールに関連した領域における過剰温度を示す温度関連情報に応答して、１又は２以上の近接処理モジュールのタスクを実行するパラメータを変更してその近接処理モジュールから発生される熱を減少して前記第１の処理モジュールの過剰温度に対応させる回路と、
を含む処理回路。
【請求項６】
請求項５記載の処理回路に於て、前記決定する回路が、前記処理モジュールによって実行される動作を監視する回路を含む処理回路。
【請求項７】
請求項５記載の処理回路に於て、前記決定する回路が、
前記処理回路内の種々の区域に於けるそれぞれの電力散逸事象を計数するカウンターと、前記カウンターを、前記処理回路の熱的時定数に相当する時間ごとに周期的に監視し、かつ前記種々の処理回路の温度関連情報を計算する回路と、
を含む処理回路。
【請求項８】
請求項５記載の処理回路に於て、前記決定する回路が、前記処理回路内の種々の区域に於ける現在の温度を計算する回路を含む処理回路。
【発明の詳細な説明】
【０００１】
この出願は２０００年１０月２４日に出願されたヨーロッパ出願通し番号００４０２９４８．４（ＴＩ−３１３６２ＥＵ）の優先権を主張する。
【０００２】
【発明の属する技術分野】
この発明は全般的に集積回路、更に具体的に言えば、プロセッサのエネルギ管理に関する。
【０００３】
【従来の技術及び課題】
長年の間、マイクロプロセッサ・ユニット（ＭＰＵ）、コプロセッサ及びディジタル信号プロセッサ（ＤＳＰ）の設計を含むプロセッサの設計の焦点は、プロセッサの速度及び機能性を高めることであった。現在、エネルギ消費が重大な問題になっている。速度及び機能性に重大な障害とならずに、エネルギ消費を小さく保つことが、多くの設計で前面に押し出されていることが重要である。スマート・ホン、携帯電話、ＰＤＡ（パーソナル・ディジタル・アシスタンツ）及びハンドヘルド・コンピュータのような多くのシステムは、比較的小さい電池で動作するので、多くの用途ではエネルギ消費が重要になっている。短い期間で電池を再充電するのは不便であるので、こういうシステムでは電池の寿命を最大にすることが望ましい。
現在、エネルギ消費を最小限に抑える方式は、スタティック・エネルギ管理、即ち使うエネルギが少ない回路を設計することである。場合によっては、休止期間の間、クロック速度を下げたり、回路を不作動にするようなダイナミックな措置も取られている。
こういう変更も重要であるが、特にデバイスを使う便宜の点で、寸法、従って電池の寸法が重要であるようなシステムでは、エネルギ管理を常に改善することが必要である。
全体的なエネルギ節約の他に、複雑な処理の場合には、集積回路から熱を散逸する能力が１つの因子になっている。集積回路はある量の熱を散逸するように設計されている。タスク（アプリケーション・プロセス）が集積回路の幾つかのシステムを必要として、高いレベルの電流を流す場合、回路が過熱し、システム故障又は誤った挙動の原因になることがある。
【０００４】
将来、集積回路によって実行されるアプリケーションは更に複雑になるであろうし、１つの集積回路内にあるＭＰＵ、ＤＳＰ、コプロセッサ及びＤＭＡチャンネルを含む幾つかのプロセッサ（以下「マルチプロセッサ・システム」）によるマルチ処理を必要とする可能性がある。ＤＳＰは、幾つかの併行するアプリケーションを支援するように発展しようとし、このアプリケーションのあるものは特定のＤＳＰプラットフォームに専用ではなく、インターネットのようなグローバル・ネットワークからロードされることになろう。これは、厳しいコストの制約から、小形でピン数の少ない、低コストのパッケージ技術を使うことを必要とする無線マルチメディア機器の分野では特にそうである。従って、過熱を起こさずにマルチプロセッサ・システムが扱うことが出来るであろうタスクは予測できなくなる。
従って、性能に重大な影響を与えずに、回路内のエネルギ管理をする方法と装置に対する必要が生じている。
【０００５】
【課題を解決する為の手段及び作用】
この発明は、幾つかのモジュールを含む処理回路に於ける多重タスクの実行を制御する方法と装置を提供する。処理回路の種々の区域に於ける温度に関連する情報を決定する。１つ又は更に多くの区域が温度閾値を超えることに伴う問題を防止する為に、温度に関連する情報に応答して、処理回路の複数個の処理モジュールでタスクが実行される。
この発明は従来に比べて、装置の種々の区域の温度又は推定温度に基づいて、完全にダイナミックなエネルギ管理を提供することにより、かなりの利点を提供する。装置内で実行されるタスクが変わるとき、エネルギ管理は新しいシナリオを組立てて、装置のどの区域でも温度閾値を超えることがないように保証することが出来る。
この発明並びにその利点が更に完全に理解されるように、次に図面について説明する。
【０００６】
【実施例】
この発明は図面の図１−１３についてみれば一番よく理解される。図面全体に互り、同じ要素には同じ参照数字を使っている。
図１は、ＭＰＵ  １２、１つ又は更に多くのＤＳＰ  １４及び１つ又は更に多くのＤＭＡチャンネル又はコプロセッサ（これを包括的にＤＭＡ／コプロセッサ１６として示してある）を含む一般的なマイクロプロセッサ・システム１０の全体的なブロック図を示す。この実施例では、ＭＰＵ  １２はコア１８及びキャッシュ２０を含む。ＤＳＰ  １４は処理コア２２及びローカルメモリ２４（実際には別々の命令及びデータ命令を使うことが出来るし、或いは一体にしたデータ及びメモリを使ってもよい）を含む。メモリ・インターフェース２６が共有メモリ２８をＭＰＵ  １２、ＤＳＰ  １４又はＤＭＡ／コプロセッサ１６の内の１つ又は更に多くに結合する。各々のプロセッサ（ＭＰＵ  １２、ＤＳＰ  １４）は現実のマルチプロセッサ・システムでは、それ自身のオペレーティング・システム（ＯＳ）又は実時間オペレーティング・システム（ＲＴＯＳ）の下に完全に自律的に動作することが出来るし、或いはＭＰＵ  １２が共有の資源及びメモリの環境を監視するグローバルＯＳを運用することが出来る。
図２はマルチプロセッサ・システム１０に対するソフトウエア・レーヤ線図を示す。図１に示すように、ＭＰＵ  １２がＯＳを実行し、ＤＳＰ  １４がＲＴＯＳを実行する。ＯＳ及びＲＴＯＳはソフトウエアのＯＳレーヤ３０を構成している。分布アプリケーション・レーヤ３２がＪＡＶＡ、Ｃ＋＋及びその他のアプリケーション３４と、プロファイリング・データ３６を使う電力管理タスク３８とグローバル・タスク・スケジューラ４０とを含む。ミドルウエア・ソフトウエア・レーヤ４２が、ＯＳレーヤ３０と分布アプリケーション・レーヤ３２内のアプリケーションとの間を連絡する。
【０００７】
図１及び２について、マルチプロセッサ・システム１０の動作を説明する。マルチプロセッサ・システム１０は種々のタスクを実行することが出来る。マルチプロセッサ・システム１０の典型的なアプリケーションはスマートホン・アプリケーションで、この場合、マルチプロセッサ・システム１０は、無線通信、ビデオ及びオーディオ圧縮解除及びユーザ・インターフェース（即ちＬＣＤの更新、キーボードの復号）を取扱う。このアプリケーションでは、マルチプロセッサ・システム１０に組込まれた異なるシステムが、優先度の異なる幾つかのタスクを実行する。典型的には、ＯＳは、組込まれた種々のシステムに対する異なるタスクのタスク・スケジュール作りを行う。
この発明は、タスクのスケジュールを作るときの判断基準として、エネルギ消費を積算する。好ましい実施例では、分布アプリケーション・レーヤ３２の電力管理アプリケーション３８及びプロファイル３６を使って、タスクのリストを実行する為に、確率論的な値に基づくシステム・シナリオを組立てる。シナリオが予定の判断基準に合わない場合、例えば、電力消費が大きすぎる場合、新しいシナリオを作成する。受容れることが出来るシナリオが確立された後、ＯＳレーヤがハードウエアの活動を監視して、シナリオで予測した活動が正確であったことを検証する。
受容れることの出来るタスク・スケジュール作りのシナリオに対する判断基準は、装置の性質に応じて変わることがある。移動装置に対する１つの重要な判断基準は、エネルギ消費量が最小であることである。前に述べたように、電子通信装置が更に小形化されると、一層小さい電池を割当てることが、エネルギ消費にプレミアムを付けることになる。多くの場合、装置の動作中、電力を減らす為に、特に電池が低レベルに達したとき、タスクに対する動作モードが縮小することを許すことが出来る。例えば、ＬＣＤの更新速度を下げることは、画質は犠牲にするけれども、電力を減らす。別の選択は、性能が遅くなるという犠牲は払うが、電力を減らす為に、マルチプロセッサ・システム１０のＭＩＰ（毎秒の百万単位の命令）を減らすことである。電力管理ソフトウエア３８は、縮小した性能の異なる組合せを使う異なるシナリオを解析して、受容れることが出来る装置の動作に達する。
【０００８】
電力を管理するときのもう１つの目標は、所定の電力限界の設定に対し、最高のＭＩＰ又は最も少ないエネルギを見付けることであることがある。
図３ａ及び３ｂは、マルチプロセッサ・システム１０が平均電力散逸（power dissipation）限界を超えるのを防ぐ為に電力管理アプリケーション３８を使った一例を示す。図３ａでは、ＤＳＰ  １４、ＤＭＡ  １６及びＭＰＵ  １２が同時に多数のタスクを運用している。時刻ｔ１に、組込まれた３つのシステムの平均電力散逸が、マルチプロセッサ・システム１０に課せられた平均限界を超える。図３ｂは、同じタスクが実行される場合のシナリオを示しているが、受容れることが出来る平均電力散逸プロファイルを維持する為に、ＤＭＡ及びＤＳＰのタスクが完了する後まで、ＭＰＵのタスクを遅らせる。
【０００９】
図４ａは第１の実施例の電力管理タスク３８の動作を示すフローチャートである。ブロック５０で、電力管理タスクをグローバル・スケジューラ４０によって発動し、これはＭＰＵ  １２又はＤＳＰ  １４の内の１つによって実行することが出来る。スケジューラが、近づくアプリケーションを評価し、関連する優先及び除外の規則に従って、それをタスクに分割する。タスク・リスト５２は、例えば、オーディオ／ビデオ復号、表示装置制御、キーボード制御、記号認識等を含んでいてよい。工程５４で、タスク・リスト５２が、タスク・モデル・ファイル５６及び縮小許容ファイル５８に照らして評価される。タスク・モデル・ファイル５６は分布アプリケーション・レーヤ３２のプロファイル３６の一部分である。タスク・モデル・ファイル５６は、タスク・リストにある各々のタスクに異なるモデルを割当てる前もって作成されたファイルである。各々のモデルが、待ち時間の制約、優先度、データの流れ、基準プロセッサ速度に於ける初期エネルギ推定値、縮小の影響、及びＭＩＰ及び時間の関数としての所定のプロセッサの実行プロファイルのような関連するタスクの特性を定めるデータの集まりであり、これは実験的に、又は計算機支援ソフトウエア設計技術によって導き出すことが出来る。縮小リスト５８は、シナリオを作成するときに使うことが出来る縮小の種類を示している。
【００１０】
タスク・リストが修正される（即ち、新しいタスクが作られるか或いはタスクが削除される）度に、又は実時間事象が起こったときに、工程５４のタスク・リスト５２及びタスク・モデル５６に基づいて、シナリオが組立てられる。このシナリオは、モジュールに対して種々のタスクを割当て、それらのタスクを実行する優先順位を設定する優先度情報を与える。基準速度に於けるシナリオ・エネルギ推定値５９をタスクのエネルギ推定値から計算することが出来る。必要な場合又は望ましい場合、タスクを縮小させることが出来る。即ち、一層少ない資源を使うタスクのモードを、完全版のタスクの代りに使うことが出来る。このシナリオから、ブロック６０で活動の推定値が発生される。活動の推定値は、タスク活動プロファイル６２（これは分布アプリケーション・レーヤ３２のプロファイリング・データ３６から）及びハードウエア・アーキテクチュア・モデル６４（これも分布アプリケーション・レーヤ３２のプロファイリング・データ３６から）を使って、このシナリオによって生ずるハードウエアの活動に対する確率論的な値を発生する。確率論的な値は、各々のモジュールの待ち／運用時間の割合（実効ＭＨｚ）、キャッシュ及びメモリに対するアクセス、Ｉ／Ｏトグル速度及びＤＭＡの流れの要請及びデータの分量を含む。熱時定数に相当する期間Ｔを使って、基準プロセッサ速度に於けるエネルギ推定値５９と工程６０で得られた平均活動（特に、実行プロセッサ速度）から、平均電力散逸を計算することが可能であり、これを熱パッケージ・モデルと比較する。電力の値が、熱パッケージ・モデル７２に定められた何れかの閾値を超えた場合、判定ブロック７４で、シナリオを拒絶する。この場合、ブロック５４で新しいシナリオが組立てられ、工程６０、６６及び７０が繰返される。そうでない場合、シナリオを使って、タスク・リストを実行する。
【００１１】
シナリオによって定められたタスクの動作中、ＯＳ及びＲＴＯＳが、ハードウエアに設けられたカウンタ７８を使って、ブロック７６で夫々のモジュールの活動を追跡する。マルチプロセッサ・システム１０のモジュールに於ける実際の活動は、ブロック６０で推定した活動とは違っていることがある。ハードウエア・カウンタからのデータを期間Ｔ毎に監視して、活動測定値を発生する。活動測定値をブロック６６で用いてこの期間に対するエネルギの値、従って前述のようにブロック６６に於ける平均電力の値を計算し、ブロック７２の熱パッケージ・モデルと比較する。測定値が閾値を超える場合、ブロック５４で新しいシナリオを組立てる。活動測定値を連続的に監視することにより、シナリオをダイナミックに修正して、予め定めた限界内に留まるようにするか、或いは変化する環境条件に合わせて調節することが出来る。
【００１２】
チップに対するＴの間の合計エネルギ消費量は次のように計算される。
Ｅ＝∫TΣmodules［α・Ｃｐｄ・ｆ・Ｖdd2］・ｄｔ
≡Σmodules［ΣT（α）］・Ｃｐｄ・ｆ・Ｖdd2
ここでｆは周波数、Ｖddは電源電圧、αは確率論的な（又は測定された、この図のブロック７６に関する説明を参照されたい）活動である。言い換えると、ΣT（α）＊Ｃｐｄ＊ｆ＊Ｖdd2は等価散逸静電容量Ｃｐｄによって特長付けられる特定のハードウエア・モジュールに対応するエネルギであり、カウンタの値は、ΣT（α）を示し、ＥはＴ内に散逸されるマルチプロセッサ・システム１０内の全てのモジュールに対する全部のエネルギの和である。平均システム電力散逸Ｗ＝Ｅ／Ｔである。好ましい実施例では、測定された並びに確率論的なエネルギ消費量を計算し、平均電力散逸を期間Ｔに互るエネルギ消費量から導き出す。大抵の場合、エネルギ消費量の情報の方が一層容易に入手出来る。しかし、測定された及び確率論的な電力消費量から電力散逸を計算することも可能である。
【００１３】
図４ｂは、第２の実施例の電力管理タスク３８の動作を示すフローチャートである。図４ｂの流れは図４ａと同じであるが、工程５０でシナリオ組立てアルゴリズムが発動されたとき（新しいタスク、タスクの削除、実時間事象があるとき）、１つの新しいシナリオを選ぶ代りに、性能の制約に見合うｎ個の異なるシナリオを予め工程５４及び５９で計算しておいて記憶し、ダイナミック・ループ内での動作の数を減らすと共に、追跡ループで計算された電力がブロック７４での現在のシナリオの拒絶になった場合、一層素早く適応出来るようにする。図４ｂでシナリオが拒絶された場合、ブロック６５で、予め計算されている別のシナリオが選択される。その他の点で、動作は図４ａに示すものと同じである。
【００１４】
図５−８は、図３の種々のブロックの動作を更に詳しく示している。組立てシステム・ブロック５４が図５に示されている。このブロックでは、タスク・リスト５２、タスク・モデル５６及び考えられるタスク縮小リスト５８を使って、シナリオを作成する。タスク・リストは、マルチプロセッサ・システム１０でどのタスクを実行すべきであるかに応じて変わる。図５の例では、３つのタスクが示されている。ＭＰＥＧ４が復号し、無線モデムがデータを受信し、キーボード事象を監視する。実例では、タスクは任意の数の源から来るものであってよい。タスク・モデルは、待ち時間及び優先度の制約、データの流れ、初期のエネルギ推定値及び縮小の影響のような、シナリオを定めるときに考慮すべき条件を示すものである。この他の条件もこのブロックで使うことが出来る。組立てシステム・シナリオ・ブロックの出力がシナリオ８０であり、これは種々のタスクをモジュールと関係付け、各々のタスクに優先順位を割振る。例えば、図５に示す例では、ＭＰＥＧ４復号タスクは１６の優先度を持ち、無線モデム・タスクは４の優先度を持っている。
ブロック５４で組立てられるシナリオは、多数の異なる観点に基づくことが出来る。例えば、熱パッケージの制約の範囲内で最大の性能を与えることに基づいて、シナリオを組立てることが出来る。この代りに、考えられる最小のエネルギを使うことに基づいてシナリオを組立てることが出来る。最適のシナリオは、装置の動作の間に変化することがある。例えば、電池を一杯に充電したとき、装置は最高の性能レベルで動作することが出来る。電池の電力がプリセット・レベルより少なくなったとき、装置は、動作を維持する為の考えられる最低電力レベルで動作することが出来る。
ブロック５４からのシナリオ８０を図６に示す活動推定ブロック６０で使うことが出来る。このブロックは、マルチプロセッサ・システム１０に於ける電力使用量に影響を与える種々のパラメータに対する確率計算をする。タスク活動プロファイル６２及びハードウエア・アーキテクチュア・モデル６４と関連して、確率論的な確率推定値が発生される。タスク活動プロファイルは、データ・アクセスの種類（ロード／記憶）、異なるメモリに対する発生事象、タスクに使われるブランチ及びループのようなコード・プロファイル及びタスク内の命令に対する命令当たりのサイクル数に対する情報を含む。ハードウエア・アーキテクチュア・モデル６４は、（プロセッサ運用／待ち時間の割合のような）推定されたハードウエア活動の計算が出来るようにする、システムの待ち時間に対するタスク活動プロファイル６２の影響を何らかの形で記述する。このモデルは、タスクが実施されるハードウエアの特性、例えばキャッシュの寸法、種々のバスの幅、Ｉ／Ｏピンの数、キャッシュが書込みか書戻しか、使われるメモリの種類（ダイナミック、スタティック、フラッシュ等）及びモジュールで使われるクロック速度を考慮に入れる。典型的には、モデルは、データにキャッシュが使えるか／使えないか、読取／書込みアクセスの割合、命令当たりのサイクル数等のような異なるパラメータに対するＭＰＵ及びＤＳＰの実効周波数の変動を表す曲線群で構成することが出来る。図６に示す実施例では、各々のモジュールの実効周波数、メモリ・アクセスの回数、Ｉ／Ｏトグル速度及びＤＭＡの流れに対する値が計算される。電力に影響するその他の因子も計算することが出来る。
【００１５】
電力計算ブロック６６が図７に示されている。このブロックでは、ブロック６０からの確率論的な活動又はブロック７６からの測定された活動を使って、種々のエネルギの値を計算し、こうして期間Ｔに互る電力の値を計算する。電力の値が、マルチプロセッサ・システム１０のハードウエアの設計に特定のハードウエア電力プロファイルに関連して計算される。ハードウエア・プロファイルは、各々のモジュールに対するＣｐｄ、論理設計形式（Ｄ型フリップフロップ、ラッチ、ゲート・クロック等）、電源電圧及び出力に対する容量性負荷を含むことがある。電力の計算は、集積モジュールに対し、並びに外部メモリ又はその他の外部装置に対して行うことが出来る。
活動測定及び監視ブロック７６が図８に示されている。マルチプロセッサ・システム１０の全体に互ってカウンタを設けて、キャッシュ・ミス、ＴＬＢ（変換ルックアサイド・バッファ）ミス、キャッシュが使えないメモリ・アクセス、待ち時間、異なる資源に対する読取／書込み要請、メモリ・オーバヘッド及び温度のような種々のモジュールの活動を測定する。活動測定及び監視ブロック７６が、各モジュールの実効周波数に対する値、メモリ・アクセスの回数、Ｉ／Ｏトグル速度及びＤＭＡの流れを出力する。特定の構成では、この他の値も測定することが出来る。このブロックの出力が電力計算ブロック６６に送られる。
【００１６】
図９は、電力／エネルギ管理ソフトウエアを用いるマルチプロセッサ・システム１０の一例を示す。この例では、マルチプロセッサ・システム１０が、ＯＳを実行するＭＰＵ  １２、及び夫々のＲＴＯＳを実行する２つのＤＳＰ  １４（個別にＤＳＰ１  １４ａ及びＤＳＰ２  １４ｂと示す）を含んでいる。各々のモジュールが、マルチプロセッサ・システム１０に互って種々の活動カウンタ７８の値を監視する監視タスク８２を実行する。電力計算タスクがＤＳＰ  １４ａで実行される。種々の監視タスクが、関連する活動カウンタ７８からのデータを検索し、その情報をＤＳＰ  １４ａに送って、測定された活動に基づいて電力の値を計算する。電力計算タスク８４及び監視タスク８２のような電力管理タスクは、他のアプリケーション・タスクと共に実行することが出来る。
好ましい実施例では、電力監視タスク３８及びプロファイル３６が、ＪＡＶＡ実時間の環境でＪＡＶＡクラス・パッケージとして構成されている。
図１０は、図９に示す種類の処理装置１００の分解図で、種々の部品の配置が半導体ダイ１０２の上に示されている。例えば、ＭＰＵ  １２、ＤＳＰ１  １４ａ及びＤＳＰ２  １４ｂという部品の境界が図１０ではダイ１０２の上に示されている。ダイ１０２は、パッケージ１１０の中に設けられている。ダイ１０２の上方に、処理装置１００の動作中に起こり得る電力散逸プロファイル１１２の一例が示されている。電力散逸プロファイル１１２は、夫々の部品の動作に関連するピーク１１４、１１６及び１１８を示している。この図から判るように、電力散逸ピーク１１４は予定の安全範囲を超えている。
【００１７】
電力散逸プロファイル１１２は、図９に示すような部品に関連した種々のカウンタ７８によって検出された事象から計算することが出来る。ダイに対する温度フィールドは散逸電力プロファイルから計算することが出来る。ピーク１１４に示したような臨界的な電力サージが検出されたとき、電力計算タスク８４によって、タスクのスケジュールのやり直しを計算することが出来る。この場合、ピーク１１４を受容可能なレベルに下げる為に、幾つかの解決策を利用することが出来る。第１に、ＭＰＵ  １２で運用するタスクが優先度の高いタスクであった場合、優先度の低いタスクをＤＳＰ１  １４ａ又はＤＳＰ２  １４ｂにスケジュールし直すことが可能であるかもしれない。ＤＳＰ１  １４ａ及びＤＳＰ２  １４ｂで表した区域に於ける電力散逸が、ＭＰＵ  １２で表した区域に於ける電力散逸に寄与するから、ＤＳＰ１  １４ａ又はＤＳＰ２  １４ｂを使うタスクの１つ又は更に多くのスケジュールのやり直しが、ピークを下げることがある。この代りに、ＭＰＵ  １２、ＤＳＰ１  １４ａ及びＤＳＰ２  １４ｂの周波数を下げることにより、ピーク１１４で示した電力散逸を下げることが可能であることがある。
カウンタ７８は、ダイ１０２の多くの区域に於ける活動を測定することが出来る。例えば、ＭＰＵ  １２では、第１のカウンタが命令キャッシュの活動を測定し、第２のカウンタがデータ・キャッシュの活動を測定し、第３のカウンタがＭＡＣ（マルチプライヤ・アキュムレータ）の活動を測定することが出来る。カウンタ７８は、その活動を測定する回路の区域内に物理的に配置する必要はない。１個のカウンタが、ダイ１０２の多数の区域に影響する活動を測定することも可能である。
活動の影響は、ダイ１０２の１つ又は更に多くの区域に於ける電力散逸の推定値に直接的に変換することが出来るから、活動の継続的な測定が、装置の性能に影響を与える危険のある電力サージを確認することが出来る。閾値は、危険な状況を識別するように設定することが出来る。
【００１８】
図１１は、ダイの特定の区域に於ける臨界的な温度の影響を避ける為に事象をスケジュールする動作を示すフローチャートである。工程１２０で、電力管理ソフトウエアが活動情報を受取る。この情報を使って、工程１２２で、半導体ダイ１０２の上に於ける電力散逸の分布を計算する。電力散逸の分布が工程１２４で解析される。半導体ダイ１０２の何れかの区域で閾値を超えた場合、工程１２６で、タスクを調節して、その区域に於ける電力散逸を減らす。
活動の測定値を用いて電力散逸の分布が推定されるが、半導体上の種々の点に於ける温度を直接的に測定し、実際の温度測定値に基づいてタスクをスケジュールすることが可能である。例えば、ＰＮ接合のＩ−Ｖ特性の測定された変化により、温度を推定することが出来る。
装置１００の動作中、種々の部品に於ける活動を監視する他に、カウンタ７８を使って、タスクを実行する間のダイ１０２の任意の区域に於ける臨界的な温度を避けるスケジュールを作る為に、区域の特定の温度に対してタスクのプロファイルを決めるのに必要な情報を取出すことが出来る。これは図４ａ及び４ｂに示すように実施することが出来、装置１００の種々の区域に閾値を適用する。
この発明のこの一面は、従来に比べて重要な利点である。第１に、これによって、装置の種々の区域の温度又は推定温度に基づく完全にダイナミックな電力管理が出来る。装置１００で実行されるタスクが変化するとき、電力管理が新しいシナリオを組立てて、装置のどの区域でも温度閾値を超えないように保証することが出来る。
電力管理ソフトウエアは、それが管理する種々のタスクに対してトランスペアレントである。即ち、特定のタスクが電力管理が出来ないものであっても、電力管理ソフトウエアは、装置１００の電力容量に見合う形で、タスクを実行する責任を負う。
図１１は、特定のタスクの動作に関するエネルギ情報を正確に測定するこの発明の実施例を示す。タスクに関連するエネルギ情報の精度を高めることにより、提案されたグローバル・シナリオに対する成功の確率も同様に高くなる。
【００１９】
図１２は、ＭＰＵ  １２の更に詳しいブロック図である。ＭＰＵコア１３０がタスクＩＤレジスタ１３２及び比較回路１３４を含む。コア１３０が命令キャッシュ２０ａ及びデータ・キャッシュ２０ｂに結合される。カウンタ７８がコア内の活動を監視する。カウンタ７８は、比較回路１３４の出力に結合された付能ポート（Ｅｎ）を持っている。独立にタスクを実行するかもしれない各々のプロセッサ（即ち、ＭＰＵ又はＤＳＰのような「自律的な」プロセッサであるが、一般的にはコプロセッサ又はＤＭＡの物理的なチャンネルはそうではない）は、タスクＩＤレジスタ１３２及び比較回路１３４を持つことが出来る。この為、図９に示す装置は、ＭＰＵ  １２、ＤＳＰ１  １４ａ及びＤＳＰ２  １４ｂに対応する３つのタスクＩＤレジスタ１３２を持つことが出来る。
動作について説明すると、マルチプロセッサ・システム１０によって実行される各々のタスクは独特の確認タグ、即ち、タスクＩＤを持っている。タスクが実行されるとき、そのタスクＩＤがタスクＩＤレジスタ１３２に記憶される。システムのエネルギ消費量の正確な測定値が特定のタスクに対して測定されているとき、特定のタスクのタスクＩＤが比較器１３４にロードされる（監視されるタスクのタスクＩＤは比較器１３４又はレジスタ又は他のメモリに記憶することが出来る）。比較器１３４は、タスクＩＤレジスタにある識別子が比較器１３４にロードされたタスクＩＤと合うとき、第１の論理信号（例えば論理１）を出力する。同様に、タスクＩＤレジスタの識別子が比較器１３４にロードされたタスクＩＤと異なるとき、第２の論理信号（例えば論理０）を出力する。
比較器１３４の出力が装置１０にある種々のカウンタの付能ポートに結合される。比較器１３４で符合があるとき、カウンタはタスクに関連する活動を測定することが出来る。符合しないとき、カウンタは不作動にされ、他のタスクに関連する活動は測定されないようになっている。幾つかのプロセッサの間で、あるハードウエア・システムが共有になっている。この為、個別のタスクに帰因するこういう共有システムの活動を正確に測定する為に、幾つかのカウンタを夫々の比較回路１３４に結合することが出来る。この代りに、共有のハードウエア・システムのカウンタにタスクＩＤレジスタ及び比較器を設けて、あるタスクが作用しているときだけ、計数を許すことが出来る。
【００２０】
この実施例は、タスク・プロファイルに対するエネルギ情報を発生する為に使うことが出来る。エネルギ情報は、装置１０をエネルギ情報を収集する為に動作させている場合は、「オフライン」モードで収集することが出来るし、装置１０の実際の動作中にこの情報が収集される場合は、「オンライン」モードで収集することが出来る。タスク・プロファイル３６は、タスクを作り且つ終了するとき、スケジュールを改善する為の装置の動作中、ダイナミックに更新する。
エネルギ・プロファイルを作る他に、上に述べたタスクに特定の事象監視能力を他の目的の為に使うことが出来る。このような１つの目的は、性能をよくしたデバッグ技術を提供することであろう。例えば、所定のタスクに対し、活動カウンタがある値に達したとき、ブレークポイントをセットすることが出来る。
装置１０の動作中、各々の自律的なプロセッサに対し、現在のタスクのタスクＩＤをタスクＩＤレジスタ１３２に記憶する。多重タスク・システムでは、プロセッサが各々の現在のタスクの間で切換わり、全ての現在のタスクが同時に実行されているような観を生ずる。各々のタスクがプロセッサによってロードされるとき（「活動する」タスク）、種々の状態情報がプロセッサに復元される。図１２に示す実施例では、活動するタスクに関連するタスクＩＤが、このタスクに対する状態情報が復元されるとき、タスクＩＤレジスタ１３２に記憶される。自律的なプロセッサに対するタスクＩＤレジスタ１３２の内容が、監視されるタスクのタスクＩＤと符合する時間の間、カウンタ７８が付能されて、活動情報を蓄積する。プロセッサが異なるタスクに切換わるとカウンタは活動を無視する。この為、多重タスク動作中のあるタスクに関連する活動に関する正確な情報を求めることが出来る。
【００２１】
図１２に示す実施例は、図１０及び図１１に示す実施例と共に使って、希望により、区域に特定の温度データを求めることが出来る。
この発明のこの一面は、更に正確なプロファイル・データが得られ、これはタスクをスケジュールする為に使うことが出来る。一層よいエネルギ情報を提供することにより、図４ａ及び４ｂに関連して説明したグローバル・シナリオを計算する成功率が高くなる。
【００２２】
図１３は、マイク１５２、スピーカ１５４、キーパッド１５６、表示装置１５８、及びアンテナ１４０を持つ移動無線装置１５０の構成を示す。内部処理回路１６２が、ここで述べたエネルギ節約の特長を持つ１つ又は更に多くの処理装置を含む。勿論、他の色々な形式の通信装置及びコンピュータ・システムも、特に電池の電力に頼るものは、この発明から利益を生むことが出来ると考えられている。このような他のコンピュータ・システムの例としては、パーソナル・ディジタル・アシスタンツ（ＰＤＡ）、ポータブル・コンピュータ、スマートホン、ウエブホン等がある。デスクトップ及び線路から給電されるコンピュータ・システム及びマイクロコントローラの用途でも、特に信頼性の観点から、電力散逸は関心があるから、この発明はこのような線路から給電されるシステムにとっても利点をもたらすと考えられる。
電気通信装置１５０が、オーディオ入力を受取るマイク１５２、及びオーディオ出力を出力するスピーカ１５４を普通のように具えている。マイク１５２及びスピーカ１５４が、オーディオ及びデータ信号を受信及び送信する処理回路１６２に接続されている。
この発明の詳しい説明はある実施例を対象としているが、これらの実施例の種々の変更並びにこの他の実施例も、当業者に容易に考えられよう。この発明は、特許請求の範囲内に属するあらゆる変更又は代りの実施例をも含むものである。
【００２３】
以上の説明に関し、更に以下の項目を開示する。
（１）  幾つかのモジュールを含む処理回路に於ける多重タスクの実行を制御する方法に於て、
前記処理回路の種々の区域に於ける温度に関連する情報を決定し、
１つ又は更に多くの区域が温度閾値を超える問題を防止する為に、前記温度に関連する情報に応答して、前記複数個の処理モジュールでタスクを実行する
工程を含む方法。
（２）  第１項に記載の方法に於て、前記決定する工程が、前記モジュールによって実行される動作を監視する工程を含む方法。
（３）  第１項に記載の方法に於て、前記決定する工程が、前記処理回路内の種々の区域に於ける電力散逸情報を計算する工程を含む方法。
（４）  第１項に記載の方法に於て、前記決定する工程が、前記処理回路内の種々の区域に於ける現在の温度を計算する工程を含む方法。
（５）  第１項に記載の方法に於て、前記決定する工程が、タスク割当てシナリオを作成し、前記処理回路内の種々の区域に対する温度に関連する情報を推定し、この活動に伴う温度を計算する工程を含む方法。
（６）  第５項に記載の方法に於て、タスク割当てシナリオを作成する前記工程が、実行すべきタスクを記述するタスク・リスト及びタスクを記述するタスク・モデルを受取る工程を含む方法。
（７）  第６項に記載の方法に於て、前記タスク・モデルが各々のタスクに対する初期の領域特定電力散逸推定値を含む方法。
【００２４】
（８）  多重タスクを実行する複数個の処理モジュールを含む処理回路に於て、
前記処理回路の種々の区域に於ける温度に関連する情報を決定する回路と、
１つ又は更に多くの区域が温度閾値を超えることに伴う問題を防止する為に、前記温度に関連する情報に応答して、前記複数個の処理モジュールでタスクを実行する回路
とを含む処理回路。
（９）  第８項に記載の処理回路に於て、前記決定する回路が、前記処理モジュールによって実行される動作を監視する回路を含む処理回路。
（１０）  第８項に記載の処理回路に於て、前記決定する回路が、前記処理回路内の種々の区域に於ける電力散逸情報を計算する回路を含む処理回路。
（１１）  第８項に記載の処理回路に於て、前記決定する回路が、前記処理回路内の種々の区域に於ける現在の温度を計算する回路を含む処理回路。
（１２）  第８項に記載の処理回路に於て、前記決定する回路が、タスク割当てシナリオを作成し、前記処理回路内の種々の区域に対する温度に関連する情報を推定し、この活動に伴う温度を計算する回路を含む処理回路。
（１３）  第１２項に記載の処理回路に於て、前記タスク割当てシナリオを作成する回路が、実行すべきタスクを記述するタスク・リスト及びタスクを記述するタスク・モデルを受取る回路を含む処理回路。
（１４）  第１３項に記載の処理回路に於て、前記タスク・モデルが各々のタスクに対する初期の領域特定電力散逸推定値を含む処理回路。
（１５）  信号を受信及び送信するアンテナと、
前記アンテナに結合されていて、オーディオ及びデータ信号を送信及び受信する受信／送信回路
とを含み、前記受信／送信回路は、処理回路を含んでおり、前記処理回路は、
前記処理回路の種々の区域に於ける温度に関連する情報を決定する回路、及び
１つ又は更に多くの領域が温度閾値を超えることに伴う問題を防止する為に、前記温度に関連する情報に応答して、前記複数個の処理モジュールでタスクを実行する回路を含む
移動通信装置。
【００２５】
（１６）  マルチプロセッサ・システム（１０）が、ＭＰＵ（１２）、ＤＳＰ（１４）及びコプロセッサ／ＤＭＡチャンネル（１６）のような複数個の処理モジュールを含む。種々の処理モジュール及び実行すべきタスクに対するプロファイル（３６）と共に電力管理ソフトウエア（３８）を使って、熱パッケージの制約の範囲内で最高の動作を与えるとか最小限のエネルギを使うとかというような予定の電力目標を満たすシナリオを組立てる。タスクに関連する実際の活動を動作中に監視して、この目標と両立することを確かめる。環境状態の変化及びタスク・リストの変更に対処して、タスクの割当てをダイナミックに変えることが出来る。種々のサブシステムに関連する活動情報を監視することにより、マルチプロセッサ・システム内の種々の点に於ける温度を計算することが出来る。活動測定値を使って、ダイ上の現在の電力散逸分布を計算することが出来る。必要であれば、シナリオの中のタスクを調節して、電力散逸を減らすことが出来る。更に、更に正確なプロファイル情報を得る為に、特定のタスクに対して活動カウンタを選択的に付能することが出来る。
【図面の簡単な説明】
【図１】マルチプロセッサ・システムのブロック図。
【図２】マルチプロセッサ・システムのソフトウエア・レーヤ線図。
【図３】マルチプロセッサ・システムに対するエネルギ管理の利点を示す一例のグラフ。
【図４ａ】図２のエネルギ管理ソフトウエアの好ましい実施例の動作を示すフローチャート。
【図４ｂ】図２のエネルギ管理ソフトウエアの好ましい実施例の動作を示すフローチャート。
【図５】図４のシステム・シナリオの組立てブロックの図。
【図６】図４の活動推定ブロックの図。
【図７】図４の電力計算ブロックの図。
【図８】図４の活動測定及び監視ブロックの図。
【図９】活動カウンタを持つマルチプロセッサ・システムのブロック図。
【図１０】図９のブロック図に示した種類の処理装置の分解図並びに動作中の散逸電力（ｍＷ／ｍｍ2）のグラフ。
【図１１】タスクをスケジュールする為の区域に特定の温度データを使うことを示すフローチャート。
【図１２】タスクに関連する活動の正確な測定値を出す実施例のブロック図。
【図１３】この発明を用いた移動通信装置の図。
【符号の説明】
１２  ＭＰＵ
１４  ＤＳＰ
１６  コプロセッサ／ＤＭＡチャンネル
３０  ＯＳレーヤ
３２  分布アプリケーション・レーヤ
３４  アプリケーション
３６  プロファイル
３８  電力管理
４０  グローバル・タスク・マネージャ
４２  ミドルウェア
【図１】
0004039843.tif 000002
【図２】
0004039843.tif 000003
【図３】
0004039843.tif 000004
【図４ａ】
0004039843.tif 000005
【図４ｂ】
0004039843.tif 000006
【図５】
0004039843.tif 000007
【図６】
0004039843.tif 000008
【図７】
0004039843.tif 000009
【図８】
0004039843.tif 000010
【図９】
0004039843.tif 000011
【図１０】
0004039843.tif 000012
【図１１】
0004039843.tif 000013
【図１２】
0004039843.tif 000014
【図１３】
0004039843.tif 000015