(57)【要約】【課題】パフォーマンスの低下を最小限にしながら、プロセッサの温度を正常動作保証範囲の温度に保つ。【解決手段】発熱量推定部１１０は、現在稼働しているサブプロセッサの数を取得し、現在の動作周波数を取得し、Δｔ期間後の発熱量を推定する。温度制御部１２０は、温度センサ４００から入力される現在の温度と、推定された発熱量とを基に、Δｔ期間後の温度を推定し、所定のしきい値温度と比較する。所定のしきい値温度に達した場合、タスク管理部１２１からΔｔ期間後のサブプロセッサの並列利用可能数を取得し、パフォーマンステーブル１２２を参照して遷移する動作ポイントを求める。サブプロセッサ制御部１３０および周波数制御部１４０は、それに応じたサブプロセッサの稼働数と動作周波数に切り替える。パフォーマンステーブル１２２には、遷移する動作ポイントがパフォーマンス順に記述されている。【選択図】  図２
2006011548.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサの内部に設けられた複数の処理ブロックの並列利用度を、温度に応じて切り替えることを特徴とするプロセッサの制御方法。
【請求項２】
請求項１に記載の方法において、前記並列利用度と動作周波数の組合せをプロセッサの温度に応じて切り替えることを特徴とするプロセッサの制御方法。
【請求項３】
請求項１に記載の方法において、タスクごとに定まる前記複数の処理ブロックの並列利用可能数を考慮して、前記タスクを割り振ることを特徴とするプロセッサの制御方法。
【請求項４】
請求項１または３に記載の方法において、前記複数の処理ブロックのうち、少なくとも最も低い温度の処理ブロックに、タスクを割り振ることを特徴とするプロセッサの制御方法。
【請求項５】
プロセッサの内部に設けられた複数の処理ブロックの並列利用度と動作周波数の組合せを所定のテーブルを参照して切り替えることを特徴とするプロセッサの制御方法。
【請求項６】
請求項５に記載の方法において、前記テーブルは前記組合せのそれぞれについて、処理のパフォーマンスを記述していることを特徴とするプロセッサの制御方法。
【請求項７】
請求項６に記載の方法において、プロセッサの温度が所定のしきい値を越えると予測されるとき、または超えたとき、前記組合せの中で現在選択されている組合せより発熱量が低い組合せを検出し、検出された組合せへの切替を行うことを特徴とするプロセッサの制御方法。
【請求項８】
請求項７に記載の方法において、検出された組合せが複数存在する場合、パフォーマンスが最大になる組合せへの切替を行うことを特徴とするプロセッサの制御方法。
【請求項９】
複数の処理ブロックと、
温度を測定するセンサと、
測定された温度に応じて、前記複数の処理ブロックの並列利用度を切り替える制御部と、
を備えることを特徴とするプロセッサ。
【請求項１０】
請求項９に記載のプロセッサにおいて、前記制御部は、前記温度に応じて、前記並列利用度と動作周波数の組合せを切り替えることを特徴とするプロセッサ。
【請求項１１】
請求項９に記載のプロセッサにおいて、前記制御部は、タスクごとに定まる前記複数の処理ブロックの並列利用可能数を考慮して、前記タスクを割り振ることを特徴とするプロセッサ。
【請求項１２】
請求項９または１１に記載のプロセッサにおいて、前記制御部は、前記複数の処理ブロックのうち、少なくとも最も低い温度の処理ブロックに、タスクを割り振ることを特徴とするプロセッサ。
【請求項１３】
複数の処理ブロックと、
前記複数の処理ブロックの並列利用度と動作周波数の組合せを記述するテーブルと、
前記テーブルを参照し、前記組合せを適宜切り替える制御部と、
を備えることを特徴とするプロセッサ。
【請求項１４】
請求項１３に記載のプロセッサにおいて、前記テーブルは前記組合せのそれぞれについて、処理のパフォーマンスを記述していることを特徴とするプロセッサ。
【請求項１５】
請求項１４に記載のプロセッサにおいて、当該プロセッサの温度が所定のしきい値を越えると予測されるとき、または超えたとき、前記制御部は、前記組合せの中で現在よりも発熱量が低い組合せを選択し、その組合せへの切替を行うことを特徴とするプロセッサ。
【請求項１６】
各種のタスクを実行するプロセッサを備える情報処理装置であって、
前記プロセッサは、
複数の処理ブロックと、
温度を測定するセンサと、
測定された温度に応じて、前記複数の処理ブロックの並列利用度を切り替える制御部と、
を備えることを特徴とする情報処理装置。
【請求項１７】
請求項１６に記載の装置において、前記制御部は、前記温度に応じて、前記並列利用度と動作周波数の組合せを切り替えることを特徴とする情報処理装置。
【請求項１８】
請求項１６に記載の装置において、前記制御部は、タスクごとに定まる前記複数の処理ブロックの並列利用可能数を考慮して、前記タスクを割り振ることを特徴とする情報処理装置。
【請求項１９】
請求項１６または１８に記載の装置において、前記制御部は、前記複数の処理ブロックのうち、少なくとも最も低い温度の処理ブロックに、タスクを割り振ることを特徴とする情報処理装置。
【請求項２０】
各種のタスクを実行するプロセッサを備える情報処理装置であって、
前記プロセッサは、
複数の処理ブロックと、
前記複数の処理ブロックの並列利用度と動作周波数の組合せを記述するテーブルと、
前記テーブルを参照し、前記組合せを適宜切り替える制御部と、
を含むことを特徴とする情報処理装置。
【請求項２１】
各種のタスクを実行するプロセッサを備える情報処理システムであって、
前記プロセッサは、
複数の処理ブロックと、
温度を測定するセンサと、
測定された温度に応じて、前記複数の処理ブロックの並列利用度を切り替える制御部と、
を備えることを特徴とする情報処理システム。
【請求項２２】
請求項２１に記載のシステムにおいて、前記制御部は、前記温度に応じて、前記並列利用度と動作周波数の組合せを切り替えることを特徴とする情報処理システム。
【請求項２３】
請求項２１に記載のシステムにおいて、前記制御部は、タスクごとに定まる前記複数の処理ブロックの並列利用可能数を考慮して、前記タスクを割り振ることを特徴とする情報処理システム。
【請求項２４】
請求項２１または２３に記載のシステムにおいて、前記制御部は、前記複数の処理ブロックのうち、少なくとも最も低い温度の処理ブロックに、タスクを割り振ることを特徴とする情報処理システム。
【請求項２５】
各種のタスクを実行するプロセッサを備える情報処理システムであって、
前記プロセッサは、
複数の処理ブロックと、
前記複数の処理ブロックの並列利用度と動作周波数の組合せを記述するテーブルと、
前記テーブルを参照し、前記組合せを適宜切り替える制御部と、
を含むことを特徴とする情報処理システム。
【請求項２６】
プロセッサの内部に設けられた複数の処理ブロックの並列利用度を、温度に応じて切り替えることを特徴とするプロセッサの制御プログラム。
【請求項２７】
請求項２６に記載のプログラムにおいて、前記並列利用度と動作周波数の組合せをプロセッサの温度に応じて切り替えることを特徴とするプロセッサの制御プログラム。
【請求項２８】
請求項２６に記載のプログラムにおいて、タスクごとに定まる前記複数の処理ブロックの並列利用可能数を考慮して、前記タスクを割り振ることを特徴とするプロセッサの制御プログラム。
【請求項２９】
請求項２６または２８に記載のプログラムにおいて、前記複数の処理ブロックのうち、少なくとも最も低い温度の処理ブロックに、タスクを割り振ることを特徴とするプロセッサの制御プログラム。
【請求項３０】
プロセッサの内部に設けられた複数の処理ブロックの並列利用度と動作周波数の組合せを所定のテーブルを参照して切り替えることを特徴とするプロセッサの制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はプロセッサ技術に関し、チップの温度に応じでパフォーマンスを制御するプロセッサ、およびプロセッサの制御方法に関する。
【背景技術】
【０００２】
ＬＳＩ設計において製造プロセスの微細化と素子の高集積化が一段と進み、チップの性能限界として発熱量を考慮することが設計上非常に重要になってきている。チップが高温になると、動作不良を起こしたり、長期信頼性が低下するため、様々な発熱対策がとられている。たとえば、チップの上部に放熱フィンを設けて、チップから発生する熱を逃がす方法がとられる。
【０００３】
また、チップの消費電力分布にもとづいて、プロセッサのタスクをスケジューリングすることも検討されている（たとえば、特許文献１参照）。
【特許文献１】米国特許出願公開第２００２／００６５０４９号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００４】
急峻な温度上昇が起きた場合等には、上述したような対策では対応しきれない場合もある。そのような場合、チップの動作周波数を下げる等の処理によりパフォーマンス自体を低下させて、対処する手法が考えられる。しかしながら、パフォーマンスを必要以上に低下させることは、無駄である。
【０００５】
本発明はこうした課題に鑑みてなされたものであり、その目的は、パフォーマンスの低下を抑えながら、正常動作が保証される範囲に温度を保つことができるプロセッサ、情報処理装置およびプロセッサの制御方法を提供することにある。
【課題を解決するための手段】
【０００６】
本発明のある態様はプロセッサの制御方法に関する。この方法は、プロセッサの内部に設けられた複数の処理ブロックの並列利用度を、温度に応じて切り替える。並列利用度と動作周波数の組合せをプロセッサの温度に応じて切り替えてもよい。タスクごとに定まる複数の処理ブロックの並列利用可能数を考慮して、タスクを割り振ってもよいし、複数の処理ブロックのうち、少なくとも最も低い温度の処理ブロックに、タスクを割り振ってもよい。
【０００７】
「処理ブロック」は、複数のサブプロセッサを搭載したプロセッサの場合、各サブプロセッサに対応させてもよい。「並列利用度」は、当該サブプロセッサの稼働数に対応させてもよい。
【０００８】
本発明の別の態様もプロセッサの制御方法に関する。この方法は、プロセッサの内部に設けられた複数の処理ブロックの並列利用度と動作周波数の組合せを所定のテーブルを参照して切り替える。
【０００９】
テーブルは前記組合せのそれぞれについて、処理のパフォーマンスを記述していてもよい。また、プロセッサの温度が所定のしきい値を越えると予測されるとき、または超えたとき、前記組合せの中で現在選択されている組合せより発熱量が低い組合せを検出し、検出された組合せへの切替を行ってもよい。さらに、検出された組合せが複数存在する場合、パフォーマンスが最大になる組合せへの切替を行ってもよい。
【００１０】
本発明のさらに別の態様はプロセッサに関する。このプロセッサは、複数の処理ブロックと、温度を測定するセンサと、測定された温度に応じて、複数の処理ブロックの並列利用度を切り替える制御部と、を備える。制御部は、温度に応じて、並列利用度と動作周波数の組合せを切り替えてもよい。制御部は、タスクごとに定まる前記複数の処理ブロックの並列利用可能数を考慮して、タスクを割り振ってもよいし、複数の処理ブロックのうち、少なくとも最も低い温度の処理ブロックに、タスクを割り振ってもよい。
【００１１】
本発明のさらに別の態様はプロセッサに関する。このプロセッサは、複数の処理ブロックと、本プロセッサの温度を測定するセンサと、測定された温度に応じ、複数の処理ブロックの並列利用度と動作周波数の組合せを切り替える制御部と、を備える。
【００１２】
テーブルは前記組合せのそれぞれについて、処理のパフォーマンスを記述していてもよい。また、プロセッサの温度が所定のしきい値を越えると予測されるとき、または超えたとき、制御部は、前記組合せの中で現在よりも発熱量が低い組合せを選択し、その組合せへの切替を行ってもよい。
【００１３】
本発明のさらに別の態様は情報処理装置に関する。この装置は、各種のタスクを実行するプロセッサを備える情報処理装置であって、プロセッサは、複数の処理ブロックと、温度を測定するセンサと、測定された温度に応じて、複数の処理ブロックの並列利用度を切り替える制御部と、を備える。
【００１４】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１５】
本発明によれば、パフォーマンスの低下を抑えながら、正常動作が保証される範囲にプロセッサの温度を保つことができる。
【発明を実施するための最良の形態】
【００１６】
（第１実施形態）
図１は、第１実施形態におけるプロセッサの構成を示す図である。プロセッサ１は、チップ内に、メインプロセッサ１００、４個の第１〜４サブプロセッサ２００ａ〜ｄ、記憶部３００、および温度センサ４００を含む。これらは、図示しないバスにより接続されている。また、サブプロセッサ２００の数は、４個に限るものではなく任意の数を設けることができる。たとえば、８個設けてもよい。また、これらの配置パターンも、図１に示したものに限るものではなく、任意に配置することができる。クロック生成部５００は、プロセッサ１に基本周波数を与える。
【００１７】
メインプロセッサ１００は、プロセッサ１全体を制御する。特に、第１〜４サブプロセッサ２００ａ〜ｄの管理を行い、これらに適宜タスクを振り分ける。また、温度管理、電力管理、およびパフォーマンス管理を行う。第１〜４サブプロセッサ２００ａ〜ｄは、メインプロセッサ１００から割り振られたタスクを実行する。温度センサ４００は、測定した温度をメインプロセッサ１００に出力する。温度センサ４００は、パッケージの外に設けてもよいが、急峻な温度変化を測定するために、パッケージ内のダイ（die）に設けるとよい。
【００１８】
図２は、第１実施形態における主にメインプロセッサ１００、記憶部３００および記憶部３００にロードされたソフトウエアの連携によって実現される機能ブロック図である。この機能ブロックがハードウエアとソフトウエアとの組み合せによっていろいろな形で実現できることは、当業者に理解されるところである。図２において、温度センサ４００は、現在のチップの温度を温度制御部１２０に出力する。温度制御部１２０は、温度センサ４００から入力される現在の温度と、発熱量推定部１１０から入力される推定発熱量とを基に、Δｔ期間後の温度を推定する。この関係式を下記（式１）に示す。
【００１９】
Ｔｔ＋Δｔ＝ｆ（Ｔｔ，Ｅ）…（式１）
Ｔｔ＋ΔｔはΔｔ期間後の温度、Ｔｔは現在の温度、Ｅは当該Δｔ期間に生じる推定発熱量を示す。このように、当該Δｔ期間後の温度Ｔｔ＋Δｔを、現在の温度Ｔｔと推定発熱量Ｅの関数として求める。
【００２０】
発熱量推定部１１０は、サブプロセッサ制御部１３０から現在稼働しているサブプロセッサ２００の数を取得し、周波数制御部１４０から現在の動作周波数を取得する。そして、それらを基に、推定発熱量Ｅを求める。この関係式を下記（式２）に示す。
【００２１】
Ｅ＝∫［α・Ｃ・Ｖｄｄ２・ｆ］ｄｔ…（式２）
αは所定の比例定数、Ｃは負荷を容量で等価的に示した変数、Ｖｄｄは電源電圧、ｆは動作周波数である。電源電圧Ｖｄｄは２乗して用いる。これらを掛け合わせたものを上記Δｔで積分した値が推定発熱量Ｅとなる。
【００２２】
本実施形態の負荷の容量Ｃは、下記（式３）で表される。
Ｃ＝Ｃｍ＋ＮＣｓ…（３）
Ｃｍはメインプロセッサの容量、Ｃｓはサブプロセッサ２００の容量、Ｎはサブプロセッサ２００の稼働数である。
【００２３】
発熱量推定部１１０は、以上の計算により求めた推定発熱量Ｅを温度制御部１２０に渡す。温度制御部１２０は、上記（式１）に示したように、温度センサ４００から取得した現在の温度Ｔｔと、上記推定発熱量Ｅとを基に、上記Δｔ期間後の温度Ｔｔ＋Δｔを推定する。そして下記（式４）に示すように、この推定温度Ｔｔ＋Δｔが所定のしきい値温度以上に達したか否かを判断する。所定のしきい値温度は、プロセッサ１全体の正常動作が保証されなくなる温度である。
Ｔｔ＋Δｔ≧Ｔｔｈ…（４）
【００２４】
図３は、動作周波数とサブプロセッサ２００の稼働数の組み合わせによる動作ポイントを示す図である。図３において、横軸に遷移可能な動作周波数として、４ＧＨｚ，２ＧＨｚ，１ＧＨｚを設定している。縦軸に遷移可能なサブプロセッサ２００の稼働数として、４個〜０個を設定している。０個の場合は、メインプロセッサ１００のみが稼働している状態である。したがって、図３は１５個の動作ポイントａ〜ｏを有する。一番右上の動作ポイントａのパフォーマンスが最も高く、一番左下の動作ポイントｏのパフォーマンスが最も低い。通常のフル稼働の場合、動作ポイントａで動作し、サブプロセッサ２００の稼働数が４で、動作周波数が４ＧＨｚとなる。
【００２５】
タスク管理部１２１は、上記Δｔ期間後のタスクの実行状況を把握し、その時点のサブプロセッサ２００の並列利用可能数を特定する。そして、当該並列利用可能数を温度制御部１２０に渡す。タスクの実行状況には、１つのタスクを実行している場合や複数のタスクを実行している場合がある。また、各タスクの性質により１つのサブプロセッサ２００でしか実行できないタスクや、複数のサブプロセッサ２００で実行可能なタスクがある。
【００２６】
図４は、パフォーマンステーブル１２２を示す図である。サブプロセッサ２００の並列利用数に対する動作ポイントの候補が登録されている。動作ポイントは、上からパフォーマンスが高い順に登録されている。たとえば、サブプロセッサ２００を２つ利用する場合の動作ポイントは、パフォーマンスが高い順にｄ→ｇ→ｈ→ｊ→ｋ→ｌ→ｍ→ｎ→ｏとなる。なお、パフォーマンステーブル１２２には、予め各動作ポイントの上記Δｔ期間に生じる発熱量を記述しておいてもよい。
【００２７】
温度制御部１２０は、推定温度Ｔｔ＋Δｔが所定のしきい値温度に達した場合、並列利用しているサブプロセッサ２００の稼働数を減らすか、プロセッサ１全体の動作周波数を下げて、発熱量を下げなければならない。その際、温度制御部１２０は、タスク管理部１２１から入力される上記Δｔ期間後のサブプロセッサ２００の並列利用可能数を取得し、それを基にパフォーマンステーブル１２２を参照して、遷移する動作ポイントの候補を特定する。サブプロセッサ制御部１３０は、温度制御部１２０の指示によりサブプロセッサ２００の稼働数を切り替える。周波数制御部１４０は、温度制御部１２０の指示により上記動作周波数を切り替える。
【００２８】
図５は、図２に示した機能ブロックの動作を説明するためのフローチャートである。まず、温度制御部１２０は、温度センサ４００からチップ内の現在の温度を取得する（Ｓ１０）。次に、発熱量推定部１１０は、サブプロセッサ制御部１３０から現在のサブプロセッサ２００の稼働数を取得し、周波数制御部１４０から現在のプロセッサ１全体の動作周波数を取得する。そして、それらを上記（式２），（式３）に代入して、上記Δｔ期間に生じる発熱量を推定し、温度制御部１２０に渡す（Ｓ１１）。温度制御部１２０は、温度センサ４００から取得した現在の温度と、発熱量推定部１１０により推定された発熱量とを基に、上記Δｔ期間後の温度を推定する（Ｓ１２）。
【００２９】
次に、温度制御部１２０は、当該推定温度と、所定のしきい値温度とを比較する（Ｓ１３）。当該推定温度が所定のしきい値温度に達していない場合（Ｓ１３のＮ）、上記Δｔ期間後の温度に対する正常な動作が保証されるため、現在のサブプロセッサ２００の稼働数および動作周波数を切り替える必要はない。
【００３０】
当該推定温度が所定のしきい値温度以上の場合（Ｓ１３のＹ）、タスク管理部１２１から、当該Δｔ期間後のサブプロセッサ２００の並列利用可能数を取得する（Ｓ１４）。そして、パフォーマンステーブル１２２を参照する（Ｓ１５）。より具体的には、パフォーマンステーブル１２２の中の、上記並列利用可能数の項目を参照し、現在の動作ポイントから遷移する次の動作ポイントの候補を特定する。パフォーマンステーブル１２２は、上記並列利用可能数の項目ごとに、遷移可能な動作ポイントを、パフォーマンスを損なわない順に登録されている。したがって、次の動作ポイントの候補は、現在の動作ポイントのパフォーマンスに対し、パフォーマンスの低下が最も小さい動作ポイントとなる。温度制御部１２０は、当該動作ポイントのサブプロセッサ２００の稼働数とプロセッサ１全体の動作周波数とを取得し、発熱量推定部１１０に渡す。
【００３１】
発熱量推定部１１０は、温度制御部１２０から渡されたサブプロセッサ２００の稼働数とプロセッサ１全体の動作周波数とを上記（式２），（式３）に代入して、上記Δｔ期間に生じる発熱量を再度推定し、温度制御部１２０に返す（Ｓ１６）。なお、パフォーマンステーブル１２２に予め各動作ポイントの上記Δｔ期間に生じる発熱量が記述されている場合は、それを用いればよい。温度制御部１２０は、温度センサ４００から取得した温度と、発熱量推定部１１０により推定された発熱量とを基に、上記Δｔ期間後の温度を再度推定する（Ｓ１７）。
【００３２】
次に、温度制御部１２０は、当該推定温度と、所定のしきい値温度とを再度比較する（Ｓ１８）。当該推定温度が所定のしきい値温度に達していない場合（Ｓ１８のＮ）、現在の動作ポイントの候補に遷移すれば、上記Δｔ期間後の温度に対する正常な動作が保証される。したがって、温度制御部１２０は、当該動作ポイントの候補に遷移するために、サブプロセッサ制御部１３０に指示してサブプロセッサ２００の稼働数を減らすか、周波数制御部１４０に指示してプロセッサ１全体の動作周波数を下げる。または、その両方を行う（Ｓ１９）。
【００３３】
Ｓ１８において、当該推定温度が所定のしきい値温度以上の場合（Ｓ１８のＹ）、Ｓ１５に遷移して、再度パフォーマンステーブル１２２を参照する（Ｓ１５）。そして、現在の動作ポイントの候補から次の動作ポイントの候補に変更する。以後、Ｓ１６，Ｓ１７と上述した処理が繰り返され、Ｓ１７において推定した温度が、所定のしきい値温度未満になるまで（Ｓ１８のＮ）、行う。
【００３４】
このように、本実施形態によれば、プロセッサ１の温度が所定のしきい値温度以上になると推定される場合に、サブプロセッサ２００の稼働数を減らすか、プロセッサ１全体の動作周波数を下げるかして、これを事前に回避することができる。またその際、パフォーマンステーブル１２２を参照することによって、最もパフォーマンスを損なわない動作ポイントに遷移することができる。
【００３５】
なお、上述した１ＧＨｚ，２ＧＨｚ，４ＧＨｚといった動作周波数は、チップに与えられる周波数であり、チップ内のメインプロセッサ１００およびサブプロセッサ２００がこの周波数で動作している訳ではない。動作に有効に活用されている周波数、即ち実効周波数は、上述した周波数より低いものである。この実効周波数は、タスクによって異なる。そこで、上記（式２）により発熱量を推定する際、ｆに実効周波数を代入してもよい。タスク管理部１２１は、現在から上記Δｔ期間後までに実行するタスクを特定し、そのタスクに応じた実効周波数を求める。発熱量推定部１１０は、その実効周波数を上記（式２）に代入して推定発熱量Ｅを算出する。これによれば、推定発熱量Ｅを算出する段階でも、タスクを考慮することができ、より精度の高い温度推定を行うことができる。
【００３６】
（第２実施形態）
第２実施形態は、第１実施形態のように推定発熱量Ｅを計算で求めるのではなく、予めテーブルに登録しておく例である。図６は、第２実施形態における主にメインプロセッサ１００、記憶部３００および記憶部３００にロードされたソフトウエアの連携によって実現される機能ブロック図である。タスクテーブル１１５は、各タスクごとにサブプロセッサ２００の並列利用可能数と発熱量を格納している。図７は、タスクテーブル１１５を示す図である。タスクの種別としては、たとえばキー入力待ち、ＭＰＥＧデータのデコード、音声認識等がある。サブプロセッサ２００の並列利用可能数は、タスクによって異なる。メインプロセッサ１００のみで実行しなければならないタスクは０となる。並列処理可能なタスクは１以上となる。発熱量は、各タスクごとに上記（式１）におけるΔｔ期間に生じる発熱量である。予め実験的に得た値を登録しておけばよい。
【００３７】
タスク管理部１２１は、上記Δｔ期間のタスクの実行状況を把握して、当該Δｔ期間に実行される１以上のタスクを特定し、発熱量推定部１１０に渡す。発熱量推定部１１０は、タスク管理部１２１により特定されたタスクの種別を基に、タスクテーブル１１５を参照し、プロセッサ１全体の推定発熱量Ｅを求める。複数のタスクが実行される場合は、各タスクの発熱量を足せばよい。温度センサ４００は、現在のチップの温度を温度制御部１２０に出力する。
【００３８】
温度制御部１２０は、上記（式１）に示したように、温度センサ４００から取得した現在の温度Ｔｔと、上記推定発熱量Ｅとを基に、上記Δｔ期間後の温度Ｔｔ＋Δｔを推定する。そして上記（式４）に示すように、この推定温度Ｔｔ＋Δｔが所定のしきい値温度以上に達したか否かを判断する。所定のしきい値温度以上に達した場合、動作ポイントの遷移を行う。動作ポイントの遷移は、第１実施形態において説明したように、図３および図４に示したパフォーマンステーブル１２２を参照して行う。
【００３９】
タスク管理部１２１は、上記Δｔ期間後のタスクの実行状況を把握し、その時点のサブプロセッサ２００の並列利用可能数を特定する。そして、当該並列利用可能数を温度制御部１２０に出力する。温度制御部１２０は、パフォーマンステーブル１２２を参照して動作ポイントの遷移を行う際、タスク管理部１２１から取得したサブプロセッサ２００の並列利用可能数も考慮する。動作ポイントの遷移に際し、サブプロセッサ制御部１３０は、温度制御部１２０の指示によりサブプロセッサ２００の稼働数を切り替える。周波数制御部１４０は、温度制御部１２０の指示により上記動作周波数を切り替える。
【００４０】
なお、図６に示した機能ブロックの動作は、第１実施形態において図５のフローチャートを用いた説明部分と基本的に同様である。Ｓ１１において、ある上記Δｔ期間に生じる発熱量を推定する際、発熱量推定部１１０がタスクテーブル１１５とタスク管理部１２１から得られるタスクの実行状況を基に発熱量を推定する点が相違する。
【００４１】
このように第２実施形態によれば、予めタスクごとの発熱量が記述されたタスクテーブルを参照して、チップ全体の発熱量の推定を行うことにより、タスクを考慮した精度の高い温度推定を簡易な処理で行うことができる。
【００４２】
（第３実施形態）
第３実施形態は、温度センサ４００をチップ内に複数設ける例である。図８は、第３実施形態におけるプロセッサの構成を示す図である。プロセッサ１は、チップ内に、メインプロセッサ１００、４個の第１〜４サブプロセッサ２００ａ〜ｄ、記憶部３００、および４個の第１〜４温度センサ４００ａ〜ｄを含む。第１温度センサ４００ａは、ブロックａの温度を測定し、第２温度センサ４００ｂは、ブロックｂの温度を測定する。第３温度センサ４００ｃおよび第４温度センサ４００ｄも同様である。温度センサ４００の数は、４個に限るものではなく任意の数を設けることができる。たとえば、２個設けてもよい。また、これらの配置パターンも、図１に示したものに限るものではなく、任意に配置することができる。その他は、図１の説明と同様である。
【００４３】
第３実施形態は、図２や図６に示した機能ブロック図と同様の構成で実現可能である。温度センサ４００が複数になる点が第１実施形態および第２実施形態と異なる。即ち、温度制御部１２０には、各ブロックの現在の温度が入力される。
【００４４】
図９は、第３実施形態を説明するためのフローチャートである。まず、温度制御部１２０は、複数の温度センサ４００から各ブロックの現在の温度を取得する（Ｓ２０）。温度制御部１２０は、それを基に最高温度のブロックを特定する（Ｓ２１）。次に、発熱量推定部１１０は、サブプロセッサ制御部１３０から現在のサブプロセッサ２００の稼働数を取得し、周波数制御部１４０から現在のプロセッサ１の動作周波数を取得する。そして、それらを上記（式２），（式３）に代入して、上記Δｔ期間に生じる発熱量を推定し、温度制御部１２０に渡す（Ｓ２２）。なお、発熱量推定部１１０は、タスク管理部１２１により特定されたタスクの種別を基に、タスクテーブル１１５を参照し、プロセッサ１全体の発熱量を推定してもよい。温度制御部１２０は、特定した最高温度と、発熱量推定部１１０により推定された発熱量とを基に、上記Δｔ期間後の温度を推定する（Ｓ２３）。
【００４５】
次に、温度制御部１２０は、当該推定温度と、所定のしきい値温度とを比較する（Ｓ２４）。当該推定温度が所定のしきい値温度に達していない場合（Ｓ２４のＮ）、上記Δｔ期間後の温度に対する正常な動作が保証されるため、現在のサブプロセッサ２００の稼働数および動作周波数を切り替える必要はない。
【００４６】
当該推定温度が所定のしきい値温度以上の場合（Ｓ２４のＹ）、タスク管理部１２１から、当該Δｔ期間後のサブプロセッサ２００の並列利用可能数を取得する（Ｓ２５）。そして、パフォーマンステーブル１２２を参照する（Ｓ２６）。温度制御部１２０は、パフォーマンステーブル１２２から遷移する動作ポイントの候補を特定し、当該動作ポイントのサブプロセッサ２００の稼働数とプロセッサ１の動作周波数とを取得し、発熱量推定部１１０に渡す。
【００４７】
発熱量推定部１１０は、温度制御部１２０から渡されたサブプロセッサ２００の稼働数とプロセッサ１の動作周波数とを上記（式２），（式３）に代入して、上記Δｔ期間に生じる発熱量を再度推定し、温度制御部１２０に返す（Ｓ２７）。温度制御部１２０は、上記最高温度と、発熱量推定部１１０により推定された発熱量とを基に、上記Δｔ期間後の温度を再度推定する（Ｓ２８）。
【００４８】
次に、温度制御部１２０は、当該推定温度と、所定のしきい値温度とを再度比較する（Ｓ２９）。当該推定温度が所定のしきい値温度以上の場合（Ｓ２９のＹ）、Ｓ２６に遷移して、再度パフォーマンステーブル１２２を参照する（Ｓ２６）。そして、現在の動作ポイントの候補から次の動作ポイントの候補に変更する。以後、Ｓ２７，Ｓ２８と上述した処理が繰り返され、ステップＳ２８において推定した温度が、所定のしきい値温度未満になるまで（Ｓ２９のＮ）、行う。
【００４９】
Ｓ２９において、上記推定温度が所定のしきい値温度に達していない場合（Ｓ２９のＮ）、現在の動作ポイントの候補に遷移すれば、上記Δｔ期間後の温度に対する正常な動作が保証される。したがって、温度制御部１２０は、当該動作ポイントに遷移するように、サブプロセッサ制御部１３０もしくは周波数制御部１４０、または両方に指示する。まず、当該動作ポイントに遷移するために、サブプロセッサ２００の稼働数を削減しなければならない場合（Ｓ３０のＹ）、サブプロセッサ制御部１３０は、温度制御部１２０から指示されたサブプロセッサ２００を停止する（Ｓ３１）。
【００５０】
ここで、温度制御部１２０は、最高温度のブロックに属しているサブプロセッサ２００の停止を指示する。当該ブロックのサブプロセッサ２００が停止している場合、当該ブロックに最も近い位置のサブプロセッサ２００の停止を指示する。たとえば、図８においてブロックａが最高温度のブロックの場合で、サブプロセッサ２００が４個稼働から２個稼働に遷移する場合、第１サブプロセッサ２００ａと第２サブプロセッサ２００ｂを停止させる。このように、最高温度のブロックに属しているサブプロセッサ２００、当該ブロックに近い位置のサブプロセッサ２００の順番で停止させていく。また、各ブロックが最高温度になった場合の、サブプロセッサ２００を停止させる順番は、予めテーブルに記述しておいてもよい。その場合、温度制御部１２０は、当該テーブルを参照してサブプロセッサ制御部１３０に指示する。
【００５１】
次に、上記動作ポイントに遷移するために、プロセッサ１全体の動作周波数を変更しなければならない場合（Ｓ３２のＹ）、周波数制御部１４０は、温度制御部１２０から指示された動作周波数に変更する（Ｓ３３）。
【００５２】
このように第３実施形態によれば、動作ポイントを遷移する際に、最高温度のブロックに属する、または近い位置のサブプロセッサから停止させることにより、チップ内の温度分布を平準化する方向で、チップ内の温度を制御することができる。
【００５３】
（第４実施形態）
第４実施形態は、各ブロックの温度に応じてタスクを割り振る例である。第４実施形態におけるプロセッサの構成は、図８の説明と同様である。図１０は、第４実施形態における主にメインプロセッサ１００、記憶部３００および記憶部３００にロードされたソフトウエアの連携によって実現される機能ブロック図である。複数の温度センサ４００は、各サブプロセッサ２００ａ〜ｄの現在の温度、またはチップ内の領域を分割して設定した各ブロックａ〜ｄの現在の温度を温度制御部１２０に出力する。複数の温度センサ４００の配置は、各サブプロセッサ２００ａ〜ｄの温度を直接測る位置にあってもよく、各ブロックａ〜ｄの温度を測る位置にあってもよい。
【００５４】
タスク管理部１２１は、現在のタスクの実行状況や待ち行列状況を把握し、次に実行すべきタスクの並列利用可能数を温度制御部１２０に渡す。並列利用可能数は、各タスクの性質により異なる。
【００５５】
温度制御部１２０は、複数の温度センサ４００から入力される温度を基に、各サブプロセッサ２００ａ〜ｄのテーブルを低温度順に作成する。図１１は、第４実施形態における低温度順にソートされたテーブルを示す図である。図１１では、温度の低い順に、第４サブプロセッサｄ→第２サブプロセッサｂ→第３サブプロセッサｃ→第１サブプロセッサａとソートされている。この順番は、複数の温度センサ４００から入力される温度により、適応的に変更される。なお、このテーブルは、各サブプロセッサ２００ａ〜ｄの温度順番のみならず、各サブプロセッサ２００ａ〜ｄの実際のまたは推定の温度を管理してもよい。
【００５６】
複数の温度センサ４００から各ブロックのａ〜ｄの温度が入力される場合、複数の温度センサ４００と、各サブプロセッサ２００ａ〜ｄとの距離関係を基に、計算で各サブプロセッサ２００ａ〜ｄの温度を推定してもよい。
【００５７】
温度制御部１２０は、上記テーブルを参照して、次に実行すべきタスクを低温度のサブプロセッサに割り振る。その際、次に実行すべきタスクの並列利用数を考慮し、割り振るサブプロセッサを決定する。即ち、並列利用度が２の場合、上記テーブルを参照して、低温度順に上から２つのサブプロセッサに当該タスクを割り振る。これによれば、パフォーマンスの低下を抑えながら、温度の平準化を行うことができる。勿論、１つのサブプロセッサにのみタスクを割り振ってもよい。なお、上記テーブルが各サブプロセッサ２００ａ〜ｄの温度も管理している場合、並列利用可能数により割り振り候補となるサブプロセッサであっても、そのサブプロセッサが所定の閾値温度を超える温度であるときは、割り振り候補から除外してもよい。その場合、並列利用可能数より少ないサブプロセッサでタスクを実行することになる。当該閾値温度は、実測やシミュレーションにより最適値を求めて設定するとよいが、割り振るタスクの実行後の温度上昇を加味して、若干低めに設定してもよい。これによれば、スポット的な発熱を抑えることができる。
【００５８】
温度制御部１２０は、タスクを割り振るサブプロセッサをサブプロセッサ制御部１３０に指示する。サブプロセッサ制御部１３０は、温度制御部１２０の指示により各サブプロセッサ２００ａ〜ｄの稼働／非稼働を制御する。
【００５９】
図１２は、第４実施形態を説明するためのフローチャートである。まず、温度制御部１２０は、複数の温度センサ４００から各サブプロセッサ２００ａ〜ｄの温度、または各ブロックａ〜ｄの現在の温度を取得する（Ｓ４０）。次に、すべてのサブプロセッサ２００ａ〜ｄを低温度順にソートする（Ｓ４１）。そして、次に実行すべきタスクを低温度順に１つ以上のサブプロセッサに割り振る（Ｓ４２）。その際、当該タスクにおけるサブプロセッサの並列利用可能数、各サブプロセッサ２００ａ〜ｄの温度が所定の閾値温度を超えないか等を考慮することができる。
【００６０】
このように第４実施形態によれば、低温度のサブプロセッサに優先的にタスクを割り振って、複数のサブプロセッサの温度を平準化するように制御することにより、チップ内の温度分布を平準化することができる。また、スポット的な発熱を事前に防止することもできる。なお、本実施形態において、各サブプロセッサの温度を基に、タスクを割り振るサブプロセッサを決定した。この点、各サブプロセッサを、チップ内の領域を分割して設定した各ブロックに読み替えてもよい。この場合、各ブロックの温度を低温度順にソートし、低温度のブロックに近接するサブプロセッサにタスクを割り振ることなる。
【００６１】
以上、本発明を実施形態をもとに説明した。これらの実施形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００６２】
各実施形態においては、上記Δｔ期間後の推定温度と所定のしきい値温度とを比較した。この点、温度センサ４００から取得する現在の温度と所定のしきい値温度とを比較してもよい。この場合、所定のしきい値温度は、各実施形態における温度より低めに設定するとよい。
【００６３】
上記（式１）において、上記Δｔ期間後の温度Ｔｔ＋Δｔは、現在の温度Ｔｔと推定発熱量Ｅとの関数であると説明した。この点、サブプロセッサ２００のコンビネーションを要素に追加してもよい。上記Δｔ期間後の温度Ｔｔ＋Δｔは、主としてタスクの実行状況に依存する。これに加えて、隣接するサブプロセッサ２００に同時にタスクが割り振られると、離れたサブプロセッサ２００にタスクが分散する場合よりも熱が発生しやすいなどの物理的な性質からの影響も受ける。温度制御部１２０は、タスクの実行によるサブプロセッサ２００のコンビネーションも考慮して、上記Δｔ期間後の温度Ｔｔ＋Δｔを推定することができる。
【００６４】
第３実施形態において説明したブロックは、スポット的に発熱のピークが現れる領域の大きさに合わせて区切られることが理想であるが、当該ブロックの大きさは、発熱制御の目標精度やプロセッサ１の要求仕様によって自由に決めてよい。また、当該ブロックは同一サイズで規則的に区切られてもよいが、各種プロセッサの境界に合わせて不規則に区切られてもよい。
【００６５】
サブプロセッサ２００の数、その配置位置、および温度センサ４００の数、その配置位置は、任意に設定可能である。また、パフォーマンステーブル１２２に記述される遷移可能な動作周波数、および遷移可能なサブプロセッサ２００の稼働数も、任意に設定可能である。さらに、所定のテーブルに記述されるサブプロセッサ２００を停止させる順番も任意に設定可能である。主に最高温度のブロックからの位置により、停止させる順番を定めるが、重要な回路素子からの位置関係も考慮して、順番を定めてもよい。
【００６６】
なお、本発明のプロセッサは、ＰＣ、ワークステーション、ゲーム機、ＰＤＡ、携帯電話機等の情報処理装置の制御部に適用可能なことはいうまでもない。また、ネットワーク上に分散された資源を共有してシステムを構築するような形態の情報処理システムにも適用可能である。
【図面の簡単な説明】
【００６７】
【図１】第１実施形態におけるプロセッサの構成を示す図である。
【図２】第１実施形態を説明するための機能ブロック図である。
【図３】動作周波数とサブプロセッサの稼働数の組み合わせによる動作ポイントを示す図である。
【図４】パフォーマンステーブルを示す図である。
【図５】図２の機能ブロックの動作を説明するためのフローチャートである。
【図６】第２実施形態を説明するための機能ブロック図である。
【図７】タスクテーブルを示す図である。
【図８】第３実施形態におけるプロセッサの構成を示す図である。
【図９】第３実施形態を説明するためのフローチャートである。
【図１０】第４実施形態を説明するための機能ブロック図である。
【図１１】第４実施形態における低温度順にソートされたテーブルを示す図である。
【図１２】図１０の機能ブロックを説明するためのフローチャートである。
【符号の説明】
【００６８】
１  プロセッサ、  １００  メインプロセッサ、  １１０  発熱量推定部、  １１５  タスクテーブル、  １２０  温度制御部、  １２１  タスク管理部、  １２２  パフォーマンステーブル、  １３０  サブプロセッサ制御部、  １４０  周波数制御部、  ２００  サブプロセッサ、  ３００  記憶部、  ４００  温度センサ、  ５００  クロック生成部。
【図１】
2006011548.tif 000003
【図２】
2006011548.tif 000004
【図３】
2006011548.tif 000005
【図４】
2006011548.tif 000006
【図５】
2006011548.tif 000007
【図６】
2006011548.tif 000008
【図７】
2006011548.tif 000009
【図８】
2006011548.tif 000010
【図９】
2006011548.tif 000011
【図１０】
2006011548.tif 000012
【図１１】
2006011548.tif 000013
【図１２】
2006011548.tif 000014
【手続補正書】
【提出日】平成17年9月1日(2005.9.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサの内部に設けられた複数の処理ブロックの並列利用度を、所定期間に生じる発熱量を推定し、この発熱量と現在の温度とを基に推定した所定期間後の温度に応じて切り替えることを特徴とするプロセッサの制御方法。
【請求項２】
プロセッサの内部に設けられた複数の処理ブロックの遷移可能な並列利用度と遷移可能な動作周波数の組合せによる複数の動作ポイントをプロセッサの温度に応じて切り替えることを特徴とするプロセッサの制御方法。
【請求項３】
請求項１に記載の方法において、前記並列利用度と動作周波数の組合せを推定した温度に応じて切り替えることを特徴とするプロセッサの制御方法。
【請求項４】
請求項１または２に記載の方法において、タスクごとに定まる前記複数の処理ブロックの並列利用可能数を考慮して、前記タスクを割り振ることを特徴とするプロセッサの制御方法。
【請求項５】
請求項１または２に記載の方法において、前記複数の処理ブロックのうち、少なくとも最も低い温度の処理ブロックに、タスクを割り振ることを特徴とするプロセッサの制御方法。
【請求項６】
プロセッサの内部に設けられた複数の処理ブロックの遷移可能な並列利用度と遷移可能な動作周波数の組合せによる複数の動作ポイントを、前記並列利用度に対する動作ポイントの候補が登録されているテーブルを参照して切り替えることを特徴とするプロセッサの制御方法。
【請求項７】
請求項６に記載の方法において、前記テーブルは前記並列利用度に対する動作ポイントの候補をパフォーマンス順に登録していることを特徴とするプロセッサの制御方法。
【請求項８】
請求項７に記載の方法において、プロセッサの温度が所定のしきい値を越えると予測されるとき、または超えたとき、前記組合せによる複数の動作ポイントの中で現在選択されている動作ポイントより発熱量が低い動作ポイントを検出し、検出された動作ポイントへの切替を行うことを特徴とするプロセッサの制御方法。
【請求項９】
請求項８に記載の方法において、検出された動作ポイントが複数存在する場合、前記テーブルを参照して、パフォーマンスが最大になる動作ポイントへの切替を行うことを特徴とするプロセッサの制御方法。
【請求項１０】
複数の処理ブロックと、
温度を測定するセンサと、
所定期間に生じる発熱量を推定する発熱量推定部と、
測定された温度と推定された発熱量に応じて、所定期間後の温度を推定し、前記複数の処理ブロックの並列利用度を切り替える制御部と、
を備えることを特徴とするプロセッサ。
【請求項１１】
複数の処理ブロックと、
温度を測定するセンサと、
測定された温度に応じて、前記複数の処理ブロックの並列利用度を切り替える制御部と、
を備え、
前記制御部は、前記温度に応じて、遷移可能な前記並列利用度と遷移可能な動作周波数の組合せによる複数の動作ポイントを切り替えることを特徴とするプロセッサ。
【請求項１２】
請求項１０に記載のプロセッサにおいて、前記制御部は、推定した温度に応じて、前記並列利用度と動作周波数の組合せを切り替えることを特徴とするプロセッサ。
【請求項１３】
請求項１０または１１に記載のプロセッサにおいて、前記制御部は、タスクごとに定まる前記複数の処理ブロックの並列利用可能数を考慮して、前記タスクを割り振ることを特徴とするプロセッサ。
【請求項１４】
請求項１０または１１に記載のプロセッサにおいて、前記制御部は、前記複数の処理ブロックのうち、少なくとも最も低い温度の処理ブロックに、タスクを割り振ることを特徴とするプロセッサ。
【請求項１５】
請求項１０または１１に記載のプロセッサにおいて、前記センサは所定の配置パターンに複数設けられ、前記制御部は、前記処理ブロックの稼働数を削減する場合、複数の温度をもとに最高温度の処理ブロックを特定して、その処理ブロックを停止させることを特徴とするプロセッサ。
【請求項１６】
複数の処理ブロックと、
前記複数の処理ブロックの遷移可能な並列利用度と遷移可能な動作周波数の組合せによる複数の動作ポイントを記述する第１テーブルと、
前記並列利用度に対する動作ポイントの候補を登録する第２テーブルと、
前記第２テーブルを参照し、前記動作ポイントを適宜切り替える制御部と、
を備えることを特徴とするプロセッサ。
【請求項１７】
請求項１６に記載のプロセッサにおいて、前記第２テーブルは前記並列利用度に対する動作ポイントの候補をパフォーマンス順に登録していることを特徴とするプロセッサ。
【請求項１８】
請求項１７に記載のプロセッサにおいて、当該プロセッサの温度が所定のしきい値を越えると予測されるとき、または超えたとき、前記制御部は、前記組合せによる複数の動作ポイントの中で現在よりも発熱量が低い動作ポイントを選択し、その動作ポイントへの切替を行うことを特徴とするプロセッサ。
【請求項１９】
各種のタスクを実行するプロセッサを備える情報処理装置であって、
前記プロセッサは、
複数の処理ブロックと、
温度を測定するセンサと、
所定期間に生じる発熱量を推定する発熱量推定部と、
測定された温度と推定された発熱量に応じて、所定期間後の温度を推定し、前記複数の処理ブロックの並列利用度を切り替える制御部と、
を備えることを特徴とする情報処理装置。
【請求項２０】
各種のタスクを実行するプロセッサを備える情報処理装置であって、
前記プロセッサは、
複数の処理ブロックと、
温度を測定するセンサと、
測定された温度に応じて、前記複数の処理ブロックの並列利用度を切り替える制御部と、
を備え、
前記制御部は、前記温度に応じて、前記並列利用度と動作周波数の組合せを切り替えることを特徴とする情報処理装置。
【請求項２１】
請求項１９に記載の装置において、前記制御部は、推定した温度に応じて、前記並列利用度と動作周波数の組合せを切り替えることを特徴とする情報処理装置。
【請求項２２】
請求項１９または２０に記載の装置において、前記制御部は、タスクごとに定まる前記複数の処理ブロックの並列利用可能数を考慮して、前記タスクを割り振ることを特徴とする情報処理装置。
【請求項２３】
請求項１９または２０に記載の装置において、前記制御部は、前記複数の処理ブロックのうち、少なくとも最も低い温度の処理ブロックに、タスクを割り振ることを特徴とする情報処理装置。
【請求項２４】
請求項１９または２０に記載の装置において、前記センサは所定の配置パターンに複数設けられ、前記制御部は、前記処理ブロックの稼働数を削減する場合、複数の温度をもとに最高温度の処理ブロックを特定して、その処理ブロックを停止させることを特徴とする情報処理装置。
【請求項２５】
各種のタスクを実行するプロセッサを備える情報処理装置であって、
前記プロセッサは、
複数の処理ブロックと、
前記複数の処理ブロックの遷移可能な並列利用度と遷移可能な動作周波数の組合せによる複数の動作ポイントを記述する第１テーブルと、
前記並列利用度に対する動作ポイントの候補を登録する第２テーブルと、
前記第２テーブルを参照し、前記動作ポイントを適宜切り替える制御部と、
を含むことを特徴とする情報処理装置。
【請求項２６】
各種のタスクを実行するプロセッサを備える情報処理システムであって、
前記プロセッサは、
複数の処理ブロックと、
温度を測定するセンサと、
所定期間に生じる発熱量を推定する発熱量推定部と、
測定された温度と推定された発熱量に応じて、所定期間後の温度を推定し、前記複数の処理ブロックの並列利用度を切り替える制御部と、
を備えることを特徴とする情報処理システム。
【請求項２７】
各種のタスクを実行するプロセッサを備える情報処理システムであって、
前記プロセッサは、
複数の処理ブロックと、
温度を測定するセンサと、
測定された温度に応じて、前記複数の処理ブロックの並列利用度を切り替える制御部と、
を備え、
前記制御部は、前記温度に応じて、前記並列利用度と動作周波数の組合せを切り替えることを特徴とする情報処理システム。
【請求項２８】
請求項２６に記載のシステムにおいて、前記制御部は、推定した温度に応じて、前記並列利用度と動作周波数の組合せを切り替えることを特徴とする情報処理システム。
【請求項２９】
請求項２６または２７に記載のシステムにおいて、前記制御部は、タスクごとに定まる前記複数の処理ブロックの並列利用可能数を考慮して、前記タスクを割り振ることを特徴とする情報処理システム。
【請求項３０】
請求項２６または２７に記載のシステムにおいて、前記制御部は、前記複数の処理ブロックのうち、少なくとも最も低い温度の処理ブロックに、タスクを割り振ることを特徴とする情報処理システム。
【請求項３１】
請求項２６または２７に記載のシステムにおいて、前記センサは所定の配置パターンに複数設けられ、前記制御部は、前記処理ブロックの稼働数を削減する場合、複数の温度をもとに最高温度の処理ブロックを特定して、その処理ブロックを停止させることを特徴とする情報処理システム。
【請求項３２】
各種のタスクを実行するプロセッサを備える情報処理システムであって、
前記プロセッサは、
複数の処理ブロックと、
前記複数の処理ブロックの遷移可能な並列利用度と遷移可能な動作周波数の組合せによる複数の動作ポイントを記述する第１テーブルと、
前記並列利用度に対する動作ポイントの候補を登録する第２テーブルと、
前記第２テーブルを参照し、前記動作ポイントを適宜切り替える制御部と、
を含むことを特徴とする情報処理システム。
【請求項３３】
プロセッサの内部に設けられた複数の処理ブロックの並列利用度を、所定期間に生じる発熱量を推定し、この発熱量と現在の温度とを基に推定した所定期間後の温度に応じて切り替えることを特徴とするプロセッサの制御プログラム。
【請求項３４】
プロセッサの内部に設けられた複数の処理ブロックの遷移可能な並列利用度と遷移可能な動作周波数の組合せによる複数の動作ポイントをプロセッサの温度に応じて切り替えることを特徴とするプロセッサの制御プログラム。
【請求項３５】
請求項３３に記載のプログラムにおいて、前記並列利用度と動作周波数の組合せを推定した温度に応じて切り替えることを特徴とするプロセッサの制御プログラム。
【請求項３６】
請求項３３または３４に記載のプログラムにおいて、タスクごとに定まる前記複数の処理ブロックの並列利用可能数を考慮して、前記タスクを割り振ることを特徴とするプロセッサの制御プログラム。
【請求項３７】
請求項３３または３４に記載のプログラムにおいて、前記複数の処理ブロックのうち、少なくとも最も低い温度の処理ブロックに、タスクを割り振ることを特徴とするプロセッサの制御プログラム。
【請求項３８】
プロセッサの内部に設けられた複数の処理ブロックの遷移可能な並列利用度と遷移可能な動作周波数の組合せによる複数の動作ポイントを、前記並列利用度に対する動作ポイントの候補が登録されているテーブルを参照して切り替えることを特徴とするプロセッサの制御プログラム。