(57)【要約】【課題】  プロセッサには複数のホットスポットが発生するため、プロセッサの温度測定は困難である。【解決手段】  温度センサ１２０は、プロセッサ内部の特定箇所の温度を測定する。全体熱量測定部１３０は、プロセッサの全体熱量を測定する。温度推定部１４０は、温度センサ１２０による特定箇所の検出温度をもとに、プロセッサに発生する複数のホットスポットの温度を推定し、プロセッサの最高温度を求める。温度推定部１４０は、プロセッサの全体熱量の大小によって、記憶部１６０に格納された最大負荷時温度推定係数１６２と個別負荷時温度推定係数１６４を切り替えて参照し、センサ温度をホットスポットの温度に変換する温度推定関数をあてはめる。動作周波数制御部１５０は、温度推定部１４０が推定したプロセッサの最高温度が限界温度を超えた場合に、プロセッサの動作周波数を下げる制御を行う。【選択図】        図２
2005346590.tif 000002
【特許請求の範囲】
【請求項１】
当該プロセッサの特定ブロックの温度を測定するセンサと、
前記センサにより検出される前記特定ブロックの温度をもとに、前記プロセッサの複数の発熱ブロックの温度を推定する温度推定部とを含むことを特徴とするプロセッサ。
【請求項２】
当該プロセッサに負荷をかけた場合における、前記複数の発熱ブロックと前記特定ブロックの温度差に関する情報を記憶する記憶部をさらに含み、
前記温度推定部は、前記記憶部に記憶された前記温度差に関する情報を参照して、前記複数の発熱ブロックの温度を推定することを特徴とする請求項１に記載のプロセッサ。
【請求項３】
前記記憶部は、当該プロセッサ全体に最大負荷をかけた場合における、前記特定ブロックの検出温度と前記複数の発熱ブロックの温度の対応関係に関する情報を記憶し、
前記温度推定部は、前記最大負荷をかけた場合における前記対応関係に関する情報を参照して、前記複数の発熱ブロックの温度を推定することを特徴とする請求項２に記載のプロセッサ。
【請求項４】
前記記憶部は、さらに前記複数の発熱ブロックの各々に個別に負荷をかけた場合における、前記センサによる前記特定ブロックの検出温度と前記複数の発熱ブロックの温度の対応関係に関する情報を記憶し、
前記温度推定部は、前記個別に負荷をかけた場合における前記対応関係に関する情報を参照して、各発熱ブロックの温度を個別に推定することを特徴とする請求項３に記載のプロセッサ。
【請求項５】
当該プロセッサの全体熱量を測定する熱量測定部をさらに含み、
前記温度推定部は、前記熱量測定部によって測定された全体熱量に応じて前記最大負荷をかけた場合における前記対応関係と、前記個別に負荷をかけた場合における前記対応関係のいずれかに切り替えて、前記複数の発熱ブロックの温度を推定することを特徴とする請求項４に記載のプロセッサ。
【請求項６】
前記複数の発熱ブロックのそれぞれの動作負荷を測定する負荷測定部をさらに含み、
前記温度推定部は、前記負荷測定部により測定された動作負荷に応じて、前記複数の発熱ブロックの温度の推定値を補正することを特徴とする請求項１から５のいずれかに記載のプロセッサ。
【請求項７】
前記センサは、前記センサによる前記特定ブロックの検出温度をもとにして推定される前記複数の発熱ブロックの温度の推定誤差が相対的に小さくなる位置に配置されることを特徴とする請求項１から６のいずれかに記載のプロセッサ。
【請求項８】
前記温度推定部による温度推定をもとに当該プロセッサの演算ブロック間で負荷を振り分ける負荷分散部をさらに含むことを特徴とする請求項１から７のいずれかに記載のプロセッサ。
【請求項９】
前記温度推定部による推定温度が所定の閾値を超えた場合に、当該プロセッサの動作周波数を下げる制御を行う動作周波数制御部をさらに含むことを特徴とする請求項１から８のいずれかに記載のプロセッサ。
【請求項１０】
プロセッサに負荷をかけた状態における、センサによる前記プロセッサの特定ブロックの検出温度と前記プロセッサの複数の発熱ブロックの温度の対応関係に関する情報をあらかじめ取得し、前記対応関係に関する情報を参照して、前記センサによる前記特定ブロックの検出温度から前記複数の発熱ブロックの温度を推定することを特徴とする温度推定方法。
【請求項１１】
推定された温度をもとに前記プロセッサの演算ブロック間で負荷を振り分けることを特徴とする請求項１０に記載の温度推定方法。
【請求項１２】
推定された温度が所定の閾値を超えた場合に、前記プロセッサの動作周波数を下げる制御を行うことを特徴とする請求項１０または１１に記載の温度推定方法。
【請求項１３】
プロセッサ全体の発熱量が相対的に大きい場合、前記プロセッサに最大負荷をかけた状態における、センサによるプロセッサの特定ブロックの検出温度と前記プロセッサの発熱ブロックの温度の差にもとづいて、前記検出温度から前記プロセッサの最高温度を推定し、前記発熱量が相対的に小さい場合、前記発熱ブロックに選択的に負荷をかけた状態における、前記センサによる前記特定ブロックの検出温度と前記発熱ブロックの温度の差にもとづいて、前記検出温度から前記プロセッサの最高温度を推定することを特徴とする温度推定方法。
【請求項１４】
前記発熱ブロックの動作負荷に応じて前記プロセッサの最高温度の推定値を補正することを特徴とする請求項１３に記載の温度推定方法。
【請求項１５】
推定された温度をもとに前記プロセッサの演算ブロック間で負荷を振り分けることを特徴とする請求項１３または１４に記載の温度推定方法。
【請求項１６】
推定された温度が所定の閾値を超えた場合に、前記プロセッサの動作周波数を下げる制御を行うことを特徴とする請求項１３から１５のいずれかに記載の温度推定方法。
【請求項１７】
プロセッサにランダムな負荷を与え、センサによる前記プロセッサの特定ブロックの検出温度と前記プロセッサの複数の発熱ブロックの温度の差を測定し、前記検出温度から前記複数の発熱ブロックの温度を推定する際の推定誤差を求め、前記推定誤差が相対的に小さくなるように前記センサにより温度が検出される特定ブロックの位置を調整することを特徴とする温度推定方法。
【請求項１８】
プロセッサの特定ブロックの温度を測定するセンサと、
前記センサにより検出される前記特定ブロックの温度をもとに、前記プロセッサの複数の発熱ブロックの温度を推定する温度推定部とを含むことを特徴とするプロセッサシステム。
【請求項１９】
前記温度推定部による温度推定をもとに前記プロセッサの演算ブロック間で負荷を振り分ける負荷分散部をさらに含むことを特徴とする請求項１８に記載のプロセッサシステム。
【請求項２０】
当該プロセッサシステムは、複数のプロセッサを含むマルチプロセッサシステムであり、
前記負荷分散部は、前記温度推定部による温度推定をもとに前記複数のプロセッサ間で負荷を振り分けることを特徴とする請求項１９に記載のプロセッサシステム。
【請求項２１】
前記温度推定部による推定温度が所定の閾値を超えた場合に、前記プロセッサの動作周波数を下げる制御を行う動作周波数制御部をさらに含むことを特徴とする請求項１８から２０のいずれかに記載のプロセッサシステム。
【請求項２２】
当該プロセッサシステムは、複数のプロセッサを含むマルチプロセッサシステムであり、
前記動作周波数制御部は、前記複数のプロセッサの内、少なくとも前記温度推定部による推定温度が所定の閾値を超えたプロセッサに対して動作周波数を下げる制御を行うことを特徴とする請求項２１に記載のプロセッサシステム。
【請求項２３】
プロセッサの特定ブロックの温度を測定するセンサと、
前記センサにより検出される前記特定ブロックの温度をもとに、前記プロセッサの複数の発熱ブロックの温度を推定する温度推定部とを含むことを特徴とする温度推定装置。
【請求項２４】
プロセッサの特定ブロックの温度を測定するセンサと、
前記センサにより検出される前記特定ブロックの温度をもとに、前記プロセッサの複数の発熱ブロックの温度を推定する温度推定部とを含むことを特徴とする情報処理装置。
【請求項２５】
プロセッサの特定ブロックの温度を測定するステップと、
前記センサにより検出される前記特定ブロックの温度をもとに、前記プロセッサの複数の発熱ブロックの温度を推定するステップとをコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はプロセッサ技術に関し、特にプロセッサ内部の温度を推定することのできるプロセッサ、プロセッサシステム、温度推定装置、情報処理装置、および温度推定方法に関する。
【背景技術】
【０００２】
ＬＳＩ設計において製造プロセスの微細化と素子の高集積化が一段と進み、チップの性能限界として発熱量を考慮することが設計上非常に重要になってきている。チップが高温になると、動作不良を起こしたり、長期信頼性が低下するため、様々な発熱対策がとられている。たとえば、チップの上部に放熱フィンを設けて、チップから発生する熱を逃がす方法がとられる。
【０００３】
また、チップ上の消費電力分布は一様ではないため、チップの一部が異常に高温になるいわゆる「ホット・スポット」の問題を避けることができない。そこで、チップの消費電力分布にもとづいて、プロセッサのタスクをスケジューリングすることも検討されている（たとえば、特許文献１参照）。
【特許文献１】米国特許出願公開第２００２／００６５０４９号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００４】
チップの一部が発熱すると、時間経過とともに熱伝導により発熱箇所の周囲に高温領域が広がり、やがてはチップ全体の温度が上昇する。従来の発熱対策は、プロセッサなどのデバイス内部の温度を計測するために温度センサをひとつだけデバイスに埋め込み、チップ全体の温度分布を巨視的に観測し、数秒〜１分程度の時間をかけて放熱するものであり、時間応答性はよくない。最近の高集積化したＬＳＩの中には、１チップでも数十ワット程度の電力を消費するものも設計されており、数十マイクロ秒のオーダーで放熱処理をしなければ、急峻な温度上昇によって動作不良が起こりうる。
【０００５】
そこで、ヒートシンクなどによる強力な冷却機構を設け、消費電力が増大している状況で急激に温度を下げようとするため、相対的にヒートシンクに流れる熱流束が大きくなり、チップ面に広がる熱流束が小さくなる現象が起こる。チップ上面に設けられたヒートシンクに対する熱抵抗が小さいため、等価的には、チップの熱伝導率が相対的に下がったように見なすことができ、局所的なホットスポットが生じやすい状態になる。このように、高集積化したプロセッサでは、ホットスポットが分散して複数箇所に発生するため、ひとつの温度センサではホットスポットの温度を正確に把握することは困難になっている。
【０００６】
本発明はこうした課題に鑑みてなされたものであり、その目的は、発熱箇所の温度を正確に把握することのできるプロセッサ、プロセッサシステム、情報処理装置、および温度推定方法を提供することにある。
【課題を解決するための手段】
【０００７】
本発明のある態様はプロセッサに関する。このプロセッサは、当該プロセッサの特定ブロックの温度を測定するセンサと、前記センサにより検出される前記特定ブロックの温度をもとに、前記プロセッサの複数の発熱ブロックの温度を推定する温度推定部とを含む。
【０００８】
ここで、「ブロック」は、プロセッサの領域を区分けした最小単位であり、スポット的に熱のピークが発生する領域の大きさに合わせて区分けされる。たとえば、ブロックは、プロセッサを構成するトランジスタなどの素子単体であってもよく、ある程度の数の素子の集合であってもよい。複数のプロセッサを含むマルチプロセッサシステムの場合、ブロックは、個々のプロセッサ内で区分けされたブロックであってもよく、個々のプロセッサ全体を１つのブロックとしてもよい。
【０００９】
「発熱ブロック」は、プロセッサに負荷がかかった場合に、スポット的に熱のピークが発生するブロックであり、ホットスポットとも呼ばれるものに相当する。
【００１０】
当該プロセッサに負荷をかけた場合における、前記複数の発熱ブロックと前記特定ブロックの温度差に関する情報を記憶する記憶部をさらに含み、前記温度推定部は、前記記憶部に記憶された前記温度差に関する情報を参照して、前記複数の発熱ブロックの温度を推定してもよい。前記複数の発熱ブロックと前記特定ブロックの温度差に関する情報の一例として、前記センサによる前記特定ブロックの検出温度と前記複数の発熱ブロックの温度の対応関係に関する式やその対応関係を表したテーブルなどがある。
【００１１】
前記記憶部は、当該プロセッサ全体に最大負荷をかけた場合における、前記特定ブロックの検出温度と前記複数の発熱ブロックの温度の対応関係に関する情報を記憶してもよい。前記記憶部は、さらに前記複数の発熱ブロックの各々に個別に負荷をかけた場合における、前記センサによる前記特定ブロックの検出温度と前記複数の発熱ブロックの温度の対応関係に関する情報を記憶してもよい。
【００１２】
ここで、「プロセッサ全体に最大負荷をかけた場合」とは、プロセッサができるだけフル動作するように、できるだけ大きな負荷をかけた状態を含み、必ずしも厳密な意味で最大の負荷をかけた状態だけを意味しない。
【００１３】
「複数の発熱ブロックの各々に個別に負荷をかけた場合」とは、複数の発熱ブロックの少なくとも１つのブロックに選択的に負荷をかけ、それ以外の発熱ブロックには負荷をかけないか、より少ない負荷をかけた状態などを含む。
【００１４】
それぞれが当該プロセッサの異なる特定箇所の温度を測定する複数のセンサを含み、各センサが前記プロセッサの異なる複数の発熱ブロックの温度を推定してもよい。センサの数は、発熱ブロックの数より少なくてもよい。
【００１５】
本発明の別の態様は温度推定方法に関する。この方法は、プロセッサに負荷をかけた状態における、センサによる前記プロセッサの特定ブロックの検出温度と前記プロセッサの複数の発熱ブロックの温度の対応関係に関する情報をあらかじめ取得し、前記対応関係に関する情報を参照して、前記センサによる前記特定ブロックの検出温度から前記複数の発熱ブロックの温度を推定する。
【００１６】
本発明のさらに別の態様も温度推定方法に関する。この方法は、プロセッサ全体の発熱量が相対的に大きい場合、前記プロセッサに最大負荷をかけた状態における、センサによるプロセッサの特定ブロックの検出温度と前記プロセッサの発熱ブロックの温度の差にもとづいて、前記検出温度から前記プロセッサの最高温度を推定し、前記発熱量が相対的に小さい場合、前記発熱ブロックに選択的に負荷をかけた状態における、前記センサによる前記特定ブロックの検出温度と前記発熱ブロックの温度の差にもとづいて、前記検出温度から前記プロセッサの最高温度を推定する。
【００１７】
本発明のさらに別の態様も温度推定方法に関する。この方法は、プロセッサにランダムな負荷を与え、センサによる前記プロセッサの特定ブロックの検出温度と前記プロセッサの複数の発熱ブロックの温度の差を測定し、前記検出温度から前記複数の発熱ブロックの温度を推定する際の推定誤差を求め、前記推定誤差が相対的に小さくなるように前記センサにより温度が検出される特定ブロックの位置を調整する。
【００１８】
本発明のさらに別の態様はプロセッサシステムに関する。このプロセッサシステムは、プロセッサの特定ブロックの温度を測定するセンサと、前記センサにより検出される前記特定ブロックの温度をもとに、前記プロセッサの複数の発熱ブロックの温度を推定する温度推定部とを含む。プロセッサシステムは、プロセッサとメモリを含み、前記温度推定部は前記プロセッサに設けられ、メモリには、前記プロセッサに負荷をかけた場合における、前記複数の発熱ブロックと前記特定ブロックの温度差に関する情報が記憶されてもよい。
【００１９】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００２０】
本発明によれば、負荷によるプロセッサの発熱状態を正確に把握することができる。
【発明を実施するための最良の形態】
【００２１】
図１は、実施の形態に係るプロセッサシステム１０の構成図である。プロセッサシステム１０は、プロセッサ１００とメモリ１１０を含み、これらはバスで接続されている。プロセッサ１００には、デバイス内部の温度を測定するための温度センサ１２０が設けられる。温度センサ１２０は、プロセッサ１００のパッケージ上のダイ（die）に直接設けられ、プロセッサ１００内部の特定箇所の温度を測定する。
【００２２】
全体熱量測定部１３０は、プロセッサ１００の外部に設けられ、プロセッサ１００の全体の熱量を測定する。全体熱量測定部１３０は、プロセッサ１００のヒートシンクなどによる温度センサである。ヒートシンクのような非常に大きな熱容量をもつものをチップ上に設置すると、プロセッサ１００の平均的な熱量を測定することができる。より正確にプロセッサ１００の熱量を測定するために、プロセッサ１００の消費電力を測定してもよい。
【００２３】
図２は、実施の形態に係る温度推定装置２０の構成図である。温度推定装置２０の機能ブロックは、図１のプロセッサ１００、メモリ１１０、およびメモリ１１０にロードされたソフトウエアの連携によって実現される。これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組み合わせによっていろいろな形で実現できることは、当業者には理解されるところである。
【００２４】
温度推定部１４０は、温度センサ１２０が測定するプロセッサ１００内部の特定箇所の温度に関するデータと、全体熱量測定部１３０が測定するプロセッサ１００の全体熱量に関するデータを受け取り、これらのデータにもとづいて、プロセッサ１００に発生する複数のホットスポットの温度を推定し、複数のホットスポットの温度からプロセッサ１００の最高温度を推定する。温度推定部１４０は、プロセッサ１００の全体熱量の大小によって、記憶部１６０に格納された最大負荷時温度推定係数１６２と個別負荷時温度推定係数１６４を切り替えて参照し、温度センサ１２０による特定箇所の検出温度をホットスポットの温度に変換する温度推定関数をあてはめて、ホットスポットの温度を求める。
【００２５】
記憶部１６０は、図１のプロセッサシステム１０のメモリ１１０内に実現されてもよく、プロセッサ１００内のキャッシュメモリ内に実現されてもよい。
【００２６】
動作周波数制御部１５０は、温度推定部１４０が推定したプロセッサ１００の最高温度が所定の限界温度を超えた場合に、プロセッサ１００の動作周波数を下げる制御を行う。
【００２７】
図３（ａ）、（ｂ）は、プロセッサ１００のホットスポットと温度センサ１２０の位置関係を説明する図である。プロセッサ１００のチップの領域全体は、図３（ａ）に示すように小さな領域に区分けされる。この小領域を演算ブロックとよぶ。
【００２８】
演算ブロックは、チップを構成するトランジスタ単体もしくはある程度の数のトランジスタの集合である。演算ブロックは、スポット的に発熱のピークが現れる領域の大きさに合わせて区切られるが、演算ブロックの大きさは、温度推定の目標精度などの要件によって自由に決めてよい。また、演算ブロックは同一サイズで規則的に区切られてもよいが、各種演算ユニットの境界に合わせて不規則に区切られてもよい。
【００２９】
プロセッサ１００のホットスポットとなりうる箇所を特定するために、プロセッサ１００に最大負荷をかけてプロセッサ１００の温度分布を検出する。図３（ａ）は、プロセッサ１００の温度分布を示すものであり、各演算ブロック内の数字はその演算ブロックの温度を示している。同図で斜線を付した３つの演算ブロックが最高温度の８５度になっており、これらの演算ブロックがホットスポットとして特定される。温度を表す数字を丸で囲んだ演算ブロックの位置には、温度センサ１２０が設けられている。したがって、温度センサ１２０はこの演算ブロックの温度である６０度を検知することになる。
【００３０】
図３（ｂ）は、図３（ａ）に対応して３つのホットスポットである演算ブロックＡ、Ｂ、Ｃと、温度センサ１２０の設けられた演算ブロックＳの位置を示す図である。演算ブロックＳに設けられた温度センサ１２０が検出する温度（以下、単にセンサ温度という）をＴＳと表記し、ホットスポットＡ、Ｂ、Ｃの温度をＴＡ、ＴＢ、ＴＣと表記する。温度センサ１２０は、最大負荷時においてホットスポットＡ、Ｂ、Ｃの温度を測定するのに最も適した位置に設置されることが好ましい。たとえば、３つのホットスポットＡ、Ｂ、Ｃから等距離にある位置や、プロセッサ１００全体の温度分布や回路構成を考慮して、各ホットスポットＡ、Ｂ、Ｃの温度を均等な精度で測定できる位置に温度センサ１２０を設置する。
【００３１】
温度推定部１４０は、検出されたセンサ温度ＴＳから各ホットスポットＡ、Ｂ、Ｃの温度ＴＡ、ＴＢ、ＴＣを間接的に推定する。温度推定を正確に行うために、シミュレーションによってプロセッサ１００全体に最大負荷をかけたり、ホットスポットとなる演算ブロックを中心に選択的に負荷をかけて、事前に温度推定関数を求めておく。
【００３２】
図４は、最大負荷時におけるセンサ温度ＴＳとプロセッサ１００の最高温度の関係を示す図である。プロセッサ１００全体に最大負荷がかかるタスクをシミュレーションにより実行した場合に、センサ温度ＴＳが５０度になったとき、ホットスポットＡ、Ｂ、Ｃの温度ＴＡ、ＴＢ、ＴＣとセンサ温度ＴＳの差（以下、単に温度差分という）ΔＴＡ、ΔＴＢ、ΔＴＣはそれぞれ、２３度、２５度、２４度であり、このときのプロセッサ１００の最高温度は、ホットスポットＢの温度である７５度である。
【００３３】
また、センサ温度ＴＳが５５度になったとき、ホットスポットＡ、Ｂ、Ｃの温度差分ΔＴＡ、ΔＴＢ、ΔＴＣはそれぞれ、２５度、２４度、２２度であり、このときのプロセッサ１００の最高温度は、ホットスポットＡの温度である８０度である。さらに、センサ温度ＴＳが６０度まで上がったとき、ホットスポットＡ、Ｂ、Ｃの温度差分ΔＴＡ、ΔＴＢ、ΔＴＣはいずれも２５度であり、このときのプロセッサシステム１０の最高温度は、ホットスポットＡ、Ｂ、Ｃの温度である８５度である。
【００３４】
温度推定部１４０は、図４の測定結果をもとに、最大負荷時において、センサ温度ＴＳからホットスポットの温度ＴＡ、ＴＢ、ＴＣを推定する温度推定関数を求める。最大負荷時のホットスポットの温度は、基本的にはセンサ温度に温度差分を重ね合わせることで得られるが、より一般的には、ホットスポットの温度はセンサ温度に関する関数と考えることができる。温度推定関数の一例は、次の一次関数である。
Ｔｉ＝ａＭＴＳ＋ｂＭ
ここで、ｉはホットスポットＡ、Ｂ、Ｃのいずれかを指す。最大負荷時の温度推定関数の係数ａＭ、ｂＭは、図４の測定結果にもとづいて、ａＭ＝１、ｂＭ＝２５と近似することができる。
【００３５】
記憶部１６０には、こうして得られた係数ａＭ、ｂＭが最大負荷時温度推定係数１６２として記憶される。温度推定部１４０は、記憶部１６０に格納された最大負荷時温度推定係数１６２を用いて、センサ温度ＴＳに温度推定関数をあてはめ、最大負荷時の各ホットスポットＡ、Ｂ、Ｃの温度ＴＡ、ＴＢ、ＴＣを求める。
【００３６】
図５（ａ）〜（ｃ）は、個別負荷時におけるセンサ温度ＴＳとホットスポットＡ、Ｂ、Ｃの温度ＴＡ、ＴＢ、ＴＣの関係を示す図である。図５（ａ）は、ホットスポットＡの演算ブロックに集中的な負荷がかかるタスクをシミュレーションにより実行した場合において、センサ温度ＴＳとホットスポットＡの温度ＴＡの関係を示したものである。このとき、他のホットスポットＢ、Ｃには負荷がかかっていないか、負荷がかかっていてもその負荷は相対的に小さいものとする。
【００３７】
ホットスポットＡに個別負荷をかけた場合、センサ温度ＴＳが５０度になったとき、ホットスポットＡの温度ＴＡは６５度である。また、センサ温度ＴＳが６０度になったとき、ホットスポットＡの温度ＴＡは７５度である。さらに、センサ温度ＴＳが７０度になったとき、ホットスポットＡの温度ＴＡは８５度である。この関係より、個別負荷時のホットスポットＡの温度ＴＡとセンサ温度ＴＳの温度差分ΔＴＡは１５度である。
【００３８】
温度推定部１４０は、図５（ａ）の測定結果をもとに、個別負荷時において、センサ温度ＴＳからホットスポットＡの温度ＴＡを推定する温度推定関数を次の一次関数で近似する。
ＴＡ＝ａｍＴＳ＋ｂｍ
ここで、個別負荷時の温度推定関数の係数ａｍ、ｂｍは、図５（ａ）の測定結果にもとづいて、ａｍ＝１、ｂｍ＝１５と求めることができる。記憶部１６０には、こうして得られた係数ａｍ、ｂｍが個別負荷時温度推定係数１６４として記憶される。
【００３９】
同様に、図５（ｂ）は、ホットスポットＢの演算ブロックに集中的に負荷をかけた場合に、センサ温度ＴＳとホットスポットＢの温度ＴＢの関係を示したものである。この関係より、個別負荷時において、センサ温度ＴＳからホットスポットＢの温度ＴＢを推定する温度推定関数を１次関数などで近似して求め、得られた係数を個別負荷時温度推定係数１６４として記憶部１６０に記憶する。同様に、図５（ｃ）は、ホットスポットＣの演算ブロックに集中的に負荷をかけた場合に、センサ温度ＴＳとホットスポットＣの温度ＴＣの関係を示したものであり、この関係より、個別負荷時において、センサ温度ＴＳからホットスポットＣの温度ＴＣを推定する温度推定関数を求め、得られた係数を個別負荷時温度推定係数１６４として記憶部１６０に記憶する。
【００４０】
このようにして、記憶部１６０には、ホットスポット毎に個別負荷時温度推定係数１６４が記憶されることになる。温度推定部１４０は、記憶部１６０に格納された個別負荷時温度推定係数１６４を用いて、センサ温度ＴＳに温度推定関数をあてはめ、個別負荷時の各ホットスポットＡ、Ｂ、Ｃの温度ＴＡ、ＴＢ、ＴＣを求める。
【００４１】
温度推定関数を求める代わりに、図５（ａ）〜（ｃ）のようなセンサ温度ＴＳの値に対する各ホットスポットＡ、Ｂ、Ｃの温度ＴＡ、ＴＢ、ＴＣの値を格納したテーブルを記憶部１６０に格納してもよい。この場合、温度推定部１４０は、テーブルを参照することにより、センサ温度ＴＳの値に対応する各ホットスポットＡ、Ｂ、Ｃの温度ＴＡ、ＴＢ、ＴＣの値を取得することができる。
【００４２】
図６は、温度推定部１４０による温度推定係数の取得手順を説明するフローチャートである。
【００４３】
まず、シミュレーションツールなどによって、プロセッサ１００に最大負荷をかけ、最大負荷パターンのもとでプロセッサ１００の温度分布を測定する（Ｓ１０）。プロセッサ１００の温度分布は、プロセッサ１００の各演算ブロックの温度を検出することによって得られる。各演算ブロックの温度は実測によって求めてもよく、プロセッサ１００の回路設計時のシミュレータなどにより発熱量を計算することで各演算ブロックの温度を求めてもよい。
【００４４】
得られた温度分布から、プロセッサ１００のホットスポットを特定する（Ｓ１２）。ホットスポットは、図３（ａ）で説明したように、最高温度をもつ演算ブロックである。最高温度をもつ演算ブロックが複数あれば、複数のホットスポットが特定される。ここで、最高温度をもつ演算ブロックだけでなく、たとえば、２番目、３番目に高い温度をもつ演算ブロックをホットスポットとして選んでもよい。
【００４５】
温度推定部１４０は、ホットスポットの温度とセンサ温度の関係から最大負荷時の温度推定式を求め（Ｓ１４）、最大負荷時の温度推定式の係数を最大負荷時温度推定係数１６２として記憶部１６０に記録する（Ｓ１６）。温度推定式は、センサ温度をホットスポットの温度に変換する一次関数または高次関数である。
【００４６】
次に、シミュレーションツールなどによって、ステップＳ１２で特定されたホットスポットの各々に集中的な負荷をかけ、各ホットスポットを中心とした個別負荷パターンのもとでプロセッサ１００の温度分布を測定する（Ｓ１８）。個別負荷時の温度分布測定の際、プロセッサ１００のすべての演算ブロックの温度を測定しなくてもよく、少なくとも負荷が集中的にかかっているホットスポットの演算ブロックについて温度が測定されていればよい。
【００４７】
温度推定部１４０は、各ホットスポットの温度とセンサ温度の関係から、各ホットスポットについて個別負荷時の温度推定式を求め（Ｓ２０）、各ホットスポットについて、個別負荷時の温度推定式の係数を個別負荷時温度推定係数１６４として記憶部１６０に記録する（Ｓ２２）。
【００４８】
図７は、温度推定部１４０による温度推定手順を説明するフローチャートである。
【００４９】
全体熱量測定部１３０は、プロセッサ１００の全体の熱量を測定し、全体熱量の大小を判定する（Ｓ３０）。全体熱量が所定の閾値よりも大きい場合（Ｓ３０のＹ）、温度推定部１４０は、記憶部１６０に格納された最大負荷時温度推定係数１６２を参照し、最大負荷時の温度推定関数によってプロセッサ１００の最高温度を推定する（Ｓ３２）。
【００５０】
全体熱量が大きい場合は、負荷が大きい演算ブロックが多数あり、演算ブロックによって温度の高低があるが、全体的には温度が高いレベルにある。したがって、演算ブロック毎の差はあるものの、発熱がピークになる箇所とセンサ位置の温度差は、最大負荷時におけるホットスポットとセンサ位置の温度差で近似することができる。そこで、全体熱量が大きいときは、最大負荷時の温度推定関数をあてはめて、センサ温度をホットスポットの温度に変換し、そのホットスポットの温度をプロセッサ１００の最高温度と推定する。温度推定部１４０は、最大負荷時の温度推定関数を用いて推定された最高温度を動作周波数制御部１５０に与える。
【００５１】
動作周波数制御部１５０は、温度推定部１４０が推定した最高温度が所定の閾値よりも大きい場合（Ｓ３６のＹ）、プロセッサ１００の動作周波数を下げる制御を行う（Ｓ３８）。たとえば、プロセッサ１００の限界温度が８５度であるとすると、所定の閾値は８５度に設定され、図４の例では、センサ温度が６０度に達した場合に、温度推定部１４０により最高温度が８５度と推定され、動作周波数制御部１５０により動作周波数を下げる制御が行われる。
【００５２】
温度推定部１４０が推定した最高温度が所定の閾値以下である場合（Ｓ３６のＮ）動作周波数制御部１５０は、動作周波数を制御せず、処理はステップＳ３０に戻る。
【００５３】
ステップＳ３０において、プロセッサ１００の全体熱量が所定の閾値以下である場合（Ｓ３０のＮ）、温度推定部１４０は、記憶部１６０に格納された個別負荷時温度推定係数１６４を参照し、個別負荷時の温度推定関数によってプロセッサ１００の最高温度を推定する（Ｓ３４）。
【００５４】
全体熱量が小さい場合は、プロセッサ１００全体には大きな負荷はかかっていないが、特定の箇所に集中的に負荷がかかり、局所的に高温になっている可能性がある。すなわち、演算ブロック毎に温度の違いが大きく、センサ温度との温度差はさまざまな値となりうる。このような場合、発熱がピークになる箇所とセンサ位置の温度差は、ホットスポットに集中的に負荷をかけたときのホットスポットとセンサ位置の温度差で近似するのが好ましい。そこで、全体熱量が小さいときは、個別負荷時の温度推定関数をあてはめて、センサ温度をホットスポットの温度に変換し、そのホットスポットの温度をプロセッサ１００の最高温度と推定する。
【００５５】
複数のホットスポットがある場合は、それぞれのホットスポットについて、個別に集中的な負荷がかかっていると想定した場合に、それぞれの個別負荷時の温度推定関数をあてはめて、センサ温度から各ホットスポットの温度を求め、各ホットスポットの温度のうち、最も高い温度をプロセッサ１００の最高温度とする。すなわち、いずれのホットスポットに負荷がかかっているかはわからないため、最悪の場合を想定してプロセッサ１００の最高温度を見積もる。
【００５６】
たとえば、図５（ａ）〜（ｃ）の例において、現在のセンサ温度が６０度で、プロセッサ１００の限界温度が８５度であるとする。仮にホットスポットＡに負荷が集中していたとすると、図５（ａ）より、センサ温度６０度に対応するホットスポットＡの温度ＴＡは７５度であり、限界温度以下である。また、仮にホットスポットＢに負荷が集中していたとすると、図５（ｂ）より、ホットスポットＢの温度ＴＢは７２度であり、やはり限界温度以下である。
【００５７】
しかし、仮にホットスポットＣに負荷が集中していたとすると、図５（ｃ）より、ホットスポットＣの温度ＴＣは８５度であり、限界温度に達する。いずれのホットスポットに負荷が集中しているかはわからないが、最悪の場合を想定すると、ホットスポットＣに負荷が集中して、ホットスポットＣが限界温度に達している可能性がある。温度推定部１４０は、プロセッサ１００の全体熱量が小さい場合には、ホットスポット毎に個別負荷がかかった場合を想定し、各ホットスポットの温度を求め、最も温度が高いホットスポットを選び、そのホットスポットの温度をプロセッサ１００の最高温度とする。
【００５８】
温度推定部１４０は、このようにして個別負荷時の温度推定関数を用いて推定された最高温度を動作周波数制御部１５０に与え、動作周波数制御部１５０は、最大負荷時と同様に、ステップＳ３６、Ｓ３８の処理を行う。
【００５９】
本実施の形態の温度推定装置２０によれば、シミュレーションや実験などによりあらかじめプロセッサ１００のホットスポットを特定しておき、温度センサ１２０による検出温度とホットスポットの温度の差に関する情報を記憶しておくことで、温度センサ１２０による検出温度からプロセッサ１００の最高温度を簡単な構成で推定することができる。
【００６０】
ヒートシンクなどの強力な冷却機構によって、チップ全体の熱流束すなわち単位面積あたりの発熱量が大きくなれば、どんなチップであっても局所的なホットスポットが発生しやすくなり、複数のホットスポットが分散して生じることになる。本実施の形態の温度推定装置２０によれば、複数のホットスポットに対応した温度推定関数によって、センサ温度からプロセッサ１００の最高温度を推定することができるため、温度センサ１２０の設置個数を抑えて、プロセッサ１００の製造コストを削減することができる。
【００６１】
また、本実施の形態の温度推定装置２０によるプロセッサ１００の温度推定方法では、プロセッサ１００の全体熱量の大小によって、最大負荷時の温度推定係数と個別負荷時の温度推定係数を切り替え、センサ温度からホットスポットの温度を求め、プロセッサ１００の最高温度を推定する。全体の熱量が小さいときに、最大負荷時の温度推定係数を使うと、最高温度を過大評価してしまい、誤差が生じることがあるが、本実施の形態の温度推定方法では、全体の熱量が小さいときには、個別負荷時の温度推定係数を用いるため、誤差を小さく抑えることができる。
【００６２】
上記の説明では、最大負荷時および個別負荷時の温度推定関数の係数は、シミュレーションで求めた値に固定されていたが、この係数をプロセッサ１００の負荷に応じて動的に変更してもよい。
【００６３】
図８は、温度推定係数を動的に調整する場合における温度推定装置２０の構成図である。温度推定装置２０は、図２の構成以外に負荷測定部１７０を有する。
【００６４】
負荷測定部１７０は、プロセッサ１００において実行される命令やタスクをハードウエアもしくはソフトウエアによってモニタリングすることにより、プロセッサ１００の各ホットスポットに相当する演算ブロックの動作時の負荷をリアルタイム測定し、各ホットスポットの負荷情報を温度推定部１４０に与える。
【００６５】
温度推定部１４０は、負荷測定部１７０によって与えられた各ホットスポットの負荷情報にもとづいて、最大負荷時および個別負荷時の温度推定関数の係数を調整する。具体的には、温度推定関数が一次関数Ｔｉ＝ａＴＳ＋ｂである場合、温度推定係数ａ、ｂを負荷αの関数として扱い、温度推定係数ａ、ｂを負荷αによって調整する。たとえば、負荷αが小さい場合には、温度推定係数ａ、ｂの値が小さくなるように補正することにより、温度推定の際の過大評価を避ける。また、負荷αが大きい場合には、温度推定係数ａ、ｂの値が大きくなるように補正することにより、プロセッサ１００の最高温度を実際よりも低く推定してしまう危険性を回避する。
【００６６】
温度推定部１４０は、負荷測定部１７０から得られるホットスポットの負荷情報以外に、動作周波数や電源電圧などを用いて、ホットスポットの発熱量を推定し、推定された発熱量にもとづいて、温度推定係数を調整してもよい。
【００６７】
温度推定係数の動的調整は、最大負荷時の温度推定関数、個別負荷時の温度推定関数のいずれか、もしくは両方に用いることができる。温度推定係数の動的調整により、温度推定関数が定常関数から非定常関数に変わり、負荷状況によってセンサ出力が補正される。プロセッサ１００の全体熱量をもとにセンサ温度から推定される基準温度に個別の負荷状況を反映させ、プロセッサ１００の最高温度をより高い精度で推定することができる。
【００６８】
上記の説明では、温度センサ１２０は、最大負荷をかけた場合に、ホットスポットの温度を偏りなく測定できる位置に設置された。一般に、ホットスポットが複数存在する場合、温度センサ１２０は、複数のホットスポットのそれぞれの温度を均等な精度で検出できることが望ましい。温度センサ１２０を特定のホットスポットに近づけ、他のホットスポットから遠ざけて設置すると、近くにあるホットスポットについては高い精度で温度を検出できるが、遠くにあるホットスポットの温度の測定精度は落ちてしまうからである。
【００６９】
温度センサ１２０とホットスポットの位置関係は、最大負荷パターンのときだけでなく、他の負荷パターンのときにも対応できるように最適化することがより好ましい。そこで、負荷条件をランダムに振り、プロセッサ１００にいろいろな負荷パターンを与え、センサ温度が最も安定して各ホットスポットの温度と連動する位置、言い換えれば、ホットスポットの温度のばらつきによる影響が最も少ない位置を求め、その位置に温度センサ１２０を配置する。
【００７０】
図９は、温度センサ１２０の設置位置を調整する様子を示す。プロセッサ１００にランダムな負荷をかけて、温度センサ１２０の位置を学習により逐次的に調整する。たとえば、第ｉ回目の温度センサ１２０の位置が同図のＳｉの位置にあったとする。このとき、ある負荷パターンのもと、センサ温度ＴＳと各ホットスポットＡ、Ｂ、Ｃの温度ＴＡ、ＴＢ、ＴＣの差ΔＴＡ、ΔＴＢ、ΔＴＣを求めたとき、ΔＴＡ、ΔＴＢ、ΔＴＣの値にばらつきがあったとする。たとえば、センサ温度ＴＳが６０度であるとき、ΔＴＡ＝１０、ΔＴＢ＝５、ΔＴＣ＝２０である場合、センサ位置をホットスポットＣに近づけることで、ホットスポットＣの温度の測定感度を上げることが望ましい。そこで、温度センサ１２０の位置をＳｉからホットスポットＣに近いＳｉ＋１の位置に変更する。
【００７１】
図１０は、温度センサ１２０の設置位置の学習手順を説明するフローチャートである。ランダムな負荷をプロセッサ１００にかけて、その負荷パターンのもとでプロセッサ１００の温度分布を測定する（Ｓ５０）。温度分布の測定により、複数のホットスポットの温度と、現在の設置位置における温度センサ１２０のセンサ温度とが得られる。
【００７２】
各ホットスポットの温度とセンサ温度の差を測定する（Ｓ５２）。各ホットスポットとセンサの温度差のばらつきが少なくなるように、温度センサ１２０の位置を調整する（Ｓ５４）。このセンサ位置調整は、各ホットスポットとセンサの温度差がホットスポット間で均等になる方向に、センサ位置を調整することで行われる。
【００７３】
センサ位置の学習を停止する場合（Ｓ５６のＹ）、現在の温度センサ１２０の位置を最適位置とし、終了するが、センサ位置の学習を停止しない場合（Ｓ５６のＮ）、ステップＳ５０に戻り、さらにランダムな負荷パターンを与えて、センサ位置を調整する処理を繰り返す。
【００７４】
このようにランダムな負荷を繰り返し与えて、センサ位置を最適化することにより、未知の負荷パターンに対して、いずれかのホットスポットが限界温度に達した場合に、温度センサ１２０による検出温度からプロセッサ１００が限界温度に達していることを確実に推定できるようになる。これによって、負荷変動やチップ上の温度分布のばらつきなどによるプロセッサ１００の最高温度の推定誤差を一層低減し、温度推定精度を向上することができる。
【００７５】
上記の説明では、温度センサ１２０をプロセッサ１００に１つ設けた場合を説明したが、プロセッサ１００には複数の温度センサ１２０を設けてもよい。図１１は、プロセッサ１００のホットスポットと複数の温度センサ１２０の位置関係を説明する図である。同図に示すように、プロセッサ１００は４つの大きなエリアに分けられ、各エリア内で、ホットスポットとなる演算ブロックが特定され、各エリア毎にホットスポットの温度を推定するための温度センサ１２０が設けられる。
【００７６】
ホットスポットＡ〜Ｃの温度を推定するのは、センサ位置Ｓ１に設けられた温度センサである。センサ位置Ｓ１は既に述べた学習手順により最適化されたものであってもよい。同様に、ホットスポットＤ〜Ｆの温度を推定するのは、センサ位置Ｓ２に設けられた温度センサであり、ホットスポットＧ〜Ｉの温度を推定するのは、センサ位置Ｓ３に設けられた温度センサであり、ホットスポットＪ〜Ｌの温度を推定するのは、センサ位置Ｓ４に設けられた温度センサである。
【００７７】
プロセッサ１００のホットスポットの個数やホットスポットの分布によって、温度センサ１２０を設置する個数、設置箇所には設計の自由度があり、実験やシミュレーションによって決めることができる。ホットスポットが多数存在する場合でも、ホットスポットをグループ分けして、グループ内のホットスポットの温度検出を担当する温度センサ１２０を割り当て、少ない数の温度センサ１２０によって、プロセッサ１００の最高温度を推定することができ、製造コスト削減につながる。
【００７８】
以上、本発明を実施の形態をもとに説明した。これらの実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。そのような変形例を説明する。
【００７９】
実施の形態では、１つのプロセッサ１００を含むプロセッサシステム１０において、プロセッサ１００のホットスポットの温度を推定したが、メインプロセッサ、サブプロセッサなどの複数のプロセッサモジュールを含むマルチプロセッサシステムにおいて、マルチプロセッサシステム全体の発熱制御を目標として、メインプロセッサ、サブプロセッサなどの各モジュールのホットスポットの温度を推定してもよい。
【００８０】
実施の形態では、プロセッサ１００の最高温度が所定の閾値を超えた場合に、プロセッサ１００の動作周波数を下げる制御を行ったが、発熱対策としては、これ以外の方法を採用してもよい。たとえば、プロセッサ１００の全体熱量が小さく、特定の箇所に負荷が集中しているために、特定の演算ブロックだけが高温となっている場合には、タスクを他の演算ブロックに振り分ける負荷分散を行ってもよい。この場合、図２および図８に示すように、温度推定装置２０に負荷分散部１８０をさらに設け、負荷分散部１８０が、演算ブロックの発熱状況に応じて、負荷を複数の演算ブロック間で振り分けることにより、プロセッサの発熱を平準化する。負荷の振り分けはタスク単位で行われてもよく、粒度の細かい命令単位で行われてもよい。なお、負荷分散部１８０は、動作周波数制御部１５０の代わりに設けられてもよく、動作周波数制御部１５０と併設されてもよい。動作周波数制御部１５０と負荷分散部１８０が併設される場合は、状況に応じて、動作周波数制御と負荷分散を切り替えて実行したり、動作周波数制御と負荷分散を組み合わせて実行することもできる。
【００８１】
この発熱対策としての負荷分散は、複数のプロセッサをもつマルチプロセッサシステムにおいて特に有効である。負荷分散部１８０が複数のプロセッサ間で負荷を振り分けることによって、特定のプロセッサに負荷が集中して発熱により限界温度を超えるのを防ぐことができる。ここで、マルチプロセッサシステムは、複数の同種のプロセッサエレメントを含む均質（homogeneous）型と、複数の同種のプロセッサエレメント以外に制御用プロセッサを含む異種混合（heterogeneous）型とがある。図１２は、異種混合型のマルチプロセッサシステム２００の構成と温度センサの設置位置を説明する図である。制御用プロセッサ２１０は図２または図８の温度推定装置２０の機能構成を備え、８個のプロセッサエレメント２２０ａ〜ｈの温度推定を行う。同図のように、３個の温度センサが８個のプロセッサエレメント２２０ａ〜ｈの境界付近のセンサ位置Ｓ１、Ｓ２、Ｓ３に設置され、温度推定装置２０の温度推定部１４０は、各温度センサから温度の測定データを取得する。温度推定装置２０の負荷分散部１８０は、温度推定部１４０による温度推定結果にもとづいて８個のプロセッサエレメント２２０ａ〜ｈ間で負荷の振り分けを行う。なお、温度センサの数と設置位置は一例を示したものであり、温度センサの数を増やしたり、設置位置を異ならせてもよい。
【００８２】
均質型のマルチプロセッサシステムの場合は、複数の同種のプロセッサエレメントのうち、いずれか１つのプロセッサエレメントが温度推定装置２０の機能構成をもち、自プロセッサエレメントと残りの他のプロセッサエレメントに対して温度推定と負荷分散を行ってもよい。また、均質型のマルチプロセッサシステムにおいて、すべての同種のプロセッサエレメントが温度推定装置２０の機能構成をもち、それぞれのプロセッサエレメント内で独立に温度推定と負荷分散を行ってもよい。また、温度推定装置２０の機能構成をソフトウエアで実現する場合についても同様に、１つのプロセッサエレメントが、自プロセッサエレメントと残りの他のプロセッサエレメントに対して温度推定と負荷分散の機能をソフトウエア処理として実行してもよく、もしくはすべてのプロセッサエレメントがそれぞれ温度推定と負荷分散の機能をソフトウエア処理として独立に実行してもよい。
【００８３】
マルチプロセッサシステムの場合でも、発熱対策として、負荷分散に代えて、あるいは負荷分散とともに、動作周波数制御を行うことができる。その場合、温度推定装置２０の動作周波数制御部１５０は、すべてのプロセッサエレメントに対して一斉に動作周波数を下げる制御を行ってもよいが、個々のプロセッサエレメントに対して独立に動作周波数を制御できる構成の場合、複数のプロセッサエレメントの内、少なくともホットスポットが検出されたプロセッサエレメントに対して動作周波数を下げる制御を行ってもよい。
【００８４】
さらに別の発熱対策として、ホットスポットとなった演算ブロックを局所的に冷却ノズルを用いて冷却する方法をとってもよい。このようなピンポイントの放熱制御は、プロセッサ１００の全体熱量が小さく、特定の箇所だけが局所的に発熱している場合に効果的である。また、プロセッサシステム１０の電源電圧を下げるなどの緊急処置をとるように構成してもよい。
【００８５】
実施の形態では、プロセッサ１００のホットスポットの温度を推定する処理をプロセッサ１００自身が行ったが、プロセッサ１００の外部で温度センサ１２０からの出力にもとづいて温度を推定する処理を行ってもよく、図２の温度推定装置２０の構成は、プロセッサ１００の外部に設けられてもよい。また、温度センサ１２０に演算機能をもたせ、温度センサ１２０自身が温度を推定する処理を行ってもよい。
【００８６】
実施の形態のプロセッサシステムを搭載した情報処理装置を構成してもよい。そのような情報処理装置としてパーソナルコンピュータ、各種携帯機器などがある。
【図面の簡単な説明】
【００８７】
【図１】実施の形態に係るプロセッサシステムの構成図である。
【図２】実施の形態に係る温度推定装置の構成図である。
【図３】図１のプロセッサのホットスポットと温度センサの位置関係を説明する図である。
【図４】最大負荷時におけるセンサ温度とプロセッサの最高温度の関係を示す図である。
【図５】個別負荷時におけるセンサ温度とホットスポットの温度の関係を示す図である。
【図６】図２の温度推定部による温度推定係数の取得手順を説明するフローチャートである。
【図７】図２の温度推定部による温度推定手順を説明するフローチャートである。
【図８】温度推定係数を動的に調整する場合における温度推定装置の構成図である。
【図９】温度センサの設置位置を調整する様子を示す図である。
【図１０】温度センサの設置位置の学習手順を説明するフローチャートである。
【図１１】図１のプロセッサのホットスポットと複数の温度センサの位置関係を説明する図である。
【図１２】異種混合型のマルチプロセッサシステムの構成と温度センサの設置位置を説明する図である。
【符号の説明】
【００８８】
１０  プロセッサシステム、  ２０  温度推定装置、  １００  プロセッサ、  １１０  メモリ、  １２０  温度センサ、  １３０  全体熱量測定部、  １４０  温度推定部、  １５０  動作周波数制御部、  １６０  記憶部、  １６２  最大負荷時温度推定係数、  １６４  個別負荷時温度推定係数、  １７０  負荷測定部、  １８０  負荷分散部。
【図１】
2005346590.tif 000003
【図２】
2005346590.tif 000004
【図３】
2005346590.tif 000005
【図４】
2005346590.tif 000006
【図５】
2005346590.tif 000007
【図６】
2005346590.tif 000008
【図７】
2005346590.tif 000009
【図８】
2005346590.tif 000010
【図９】
2005346590.tif 000011
【図１０】
2005346590.tif 000012
【図１１】
2005346590.tif 000013
【図１２】
2005346590.tif 000014
【手続補正書】
【提出日】平成17年9月8日(2005.9.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
当該プロセッサの特定ブロックの温度を測定するセンサと、
前記センサにより検出される前記特定ブロックの温度をもとに、前記プロセッサの複数の発熱ブロックの温度を推定する温度推定部と、
当該プロセッサ全体に最大負荷をかけた場合における、前記特定ブロックの検出温度と前記複数の発熱ブロックの温度の対応関係に関する情報と、前記複数の発熱ブロックの各々に個別に負荷をかけた場合における、前記センサによる前記特定ブロックの検出温度と前記複数の発熱ブロックの温度の対応関係に関する情報とを記憶する記憶部と、
当該プロセッサの全体熱量を測定する熱量測定部とを含み、
前記温度推定部は、前記熱量測定部によって測定された全体熱量に応じて前記最大負荷をかけた場合における前記対応関係と、前記個別に負荷をかけた場合における前記対応関係のいずれかに切り替えて参照して、前記複数の発熱ブロックの温度を推定することを特徴とするプロセッサ。
【請求項２】
当該プロセッサの特定ブロックの温度を測定するセンサと、
前記センサにより検出される前記特定ブロックの温度をもとに、前記プロセッサの複数の発熱ブロックの温度を推定する温度推定部と、
前記複数の発熱ブロックのそれぞれの動作負荷を測定する負荷測定部とを含み、
前記温度推定部は、前記負荷測定部により測定された動作負荷に応じて、前記複数の発熱ブロックの温度の推定値を補正することを特徴とするプロセッサ。
【請求項３】
当該プロセッサの特定ブロックの温度を測定するセンサと、
前記センサにより検出される前記特定ブロックの温度をもとに、前記プロセッサの複数の発熱ブロックの温度を推定する温度推定部と、
前記複数の発熱ブロックの各々に個別に負荷をかけた場合における、前記センサによる前記特定ブロックの検出温度と前記複数の発熱ブロックの温度の対応関係に関する情報を記憶する記憶部とを含み、
前記温度推定部は、それぞれの発熱ブロックに個別に負荷がかかった場合を想定し、それぞれの発熱ブロックに個別に負荷をかけた場合における前記対応関係に関する情報を参照して、各発熱ブロックの温度を推定し、各発熱ブロックの推定温度のうち、最も高い推定温度を当該プロセッサの最高温度として求めることを特徴とするプロセッサ。
【請求項４】
前記センサは、前記センサによる前記特定ブロックの検出温度をもとにして推定される前記複数の発熱ブロックの温度の推定誤差が相対的に小さくなる位置に配置されることを特徴とする請求項１から３のいずれかに記載のプロセッサ。
【請求項５】
前記温度推定部による温度推定をもとに当該プロセッサの演算ブロック間で負荷を振り分ける負荷分散部をさらに含むことを特徴とする請求項１から４のいずれかに記載のプロセッサ。
【請求項６】
前記温度推定部による推定温度が所定の閾値を超えた場合に、当該プロセッサの動作周波数を下げる制御を行う動作周波数制御部をさらに含むことを特徴とする請求項１から５のいずれかに記載のプロセッサ。
【請求項７】
プロセッサ全体の発熱量が相対的に大きい場合、前記プロセッサに最大負荷をかけた状態における、センサによるプロセッサの特定ブロックの検出温度と前記プロセッサの発熱ブロックの温度の差にもとづいて、前記検出温度から前記プロセッサの最高温度を推定し、前記発熱量が相対的に小さい場合、前記発熱ブロックに選択的に負荷をかけた状態における、前記センサによる前記特定ブロックの検出温度と前記発熱ブロックの温度の差にもとづいて、前記検出温度から前記プロセッサの最高温度を推定することを特徴とする温度推定方法。
【請求項８】
前記発熱ブロックの動作負荷に応じて前記プロセッサの最高温度の推定値を補正することを特徴とする請求項７に記載の温度推定方法。
【請求項９】
推定された温度をもとに前記プロセッサの演算ブロック間で負荷を振り分けることを特徴とする請求項７または８に記載の温度推定方法。
【請求項１０】
推定された温度が所定の閾値を超えた場合に、前記プロセッサの動作周波数を下げる制御を行うことを特徴とする請求項７から９のいずれかに記載の温度推定方法。
【請求項１１】
プロセッサの特定ブロックの温度を測定するセンサと、
前記センサにより検出される前記特定ブロックの温度をもとに、前記プロセッサの複数の発熱ブロックの温度を推定する温度推定部と、
当該プロセッサ全体に最大負荷をかけた場合における、前記特定ブロックの検出温度と前記複数の発熱ブロックの温度の対応関係に関する情報と、前記複数の発熱ブロックの各々に個別に負荷をかけた場合における、前記センサによる前記特定ブロックの検出温度と前記複数の発熱ブロックの温度の対応関係に関する情報とを記憶する記憶部と、
当該プロセッサの全体熱量を測定する熱量測定部とを含み、
前記温度推定部は、前記熱量測定部によって測定された全体熱量に応じて前記最大負荷をかけた場合における前記対応関係と、前記個別に負荷をかけた場合における前記対応関係のいずれかに切り替えて参照して、前記複数の発熱ブロックの温度を推定することを特徴とするプロセッサシステム。
【請求項１２】
プロセッサの特定ブロックの温度を測定するセンサと、
前記センサにより検出される前記特定ブロックの温度をもとに、前記プロセッサの複数の発熱ブロックの温度を推定する温度推定部と、
前記複数の発熱ブロックのそれぞれの動作負荷を測定する負荷測定部とを含み、
前記温度推定部は、前記負荷測定部により測定された動作負荷に応じて、前記複数の発熱ブロックの温度の推定値を補正することを特徴とするプロセッサシステム。
【請求項１３】
プロセッサの特定ブロックの温度を測定するセンサと、
前記センサにより検出される前記特定ブロックの温度をもとに、前記プロセッサの複数の発熱ブロックの温度を推定する温度推定部と、
前記複数の発熱ブロックの各々に個別に負荷をかけた場合における、前記センサによる前記特定ブロックの検出温度と前記複数の発熱ブロックの温度の対応関係に関する情報を記憶する記憶部とを含み、
前記温度推定部は、それぞれの発熱ブロックに個別に負荷がかかった場合を想定し、それぞれの発熱ブロックに個別に負荷をかけた場合における前記対応関係に関する情報を参照して、各発熱ブロックの温度を推定し、各発熱ブロックの推定温度のうち、最も高い推定温度を当該プロセッサの最高温度として求めることを特徴とするプロセッサシステム。
【請求項１４】
前記温度推定部による温度推定をもとに前記プロセッサの演算ブロック間で負荷を振り分ける負荷分散部をさらに含むことを特徴とする請求項１１から１３のいずれかに記載のプロセッサシステム。
【請求項１５】
当該プロセッサシステムは、複数のプロセッサを含むマルチプロセッサシステムであり、
前記負荷分散部は、前記温度推定部による温度推定をもとに前記複数のプロセッサ間で負荷を振り分けることを特徴とする請求項１４に記載のプロセッサシステム。
【請求項１６】
前記温度推定部による推定温度が所定の閾値を超えた場合に、前記プロセッサの動作周波数を下げる制御を行う動作周波数制御部をさらに含むことを特徴とする請求項１１から１５のいずれかに記載のプロセッサシステム。
【請求項１７】
当該プロセッサシステムは、複数のプロセッサを含むマルチプロセッサシステムであり、
前記動作周波数制御部は、前記複数のプロセッサの内、少なくとも前記温度推定部による推定温度が所定の閾値を超えたプロセッサに対して動作周波数を下げる制御を行うことを特徴とする請求項１６に記載のプロセッサシステム。
【請求項１８】
プロセッサの特定ブロックの温度を測定するセンサと、
前記センサにより検出される前記特定ブロックの温度をもとに、前記プロセッサの複数の発熱ブロックの温度を推定する温度推定部と、
当該プロセッサ全体に最大負荷をかけた場合における、前記特定ブロックの検出温度と前記複数の発熱ブロックの温度の対応関係に関する情報と、前記複数の発熱ブロックの各々に個別に負荷をかけた場合における、前記センサによる前記特定ブロックの検出温度と前記複数の発熱ブロックの温度の対応関係に関する情報とを記憶する記憶部と、
当該プロセッサの全体熱量を測定する熱量測定部とを含み、
前記温度推定部は、前記熱量測定部によって測定された全体熱量に応じて前記最大負荷をかけた場合における前記対応関係と、前記個別に負荷をかけた場合における前記対応関係のいずれかに切り替えて参照して、前記複数の発熱ブロックの温度を推定することを特徴とする温度推定装置。
【請求項１９】
プロセッサの特定ブロックの温度を測定するセンサと、
前記センサにより検出される前記特定ブロックの温度をもとに、前記プロセッサの複数の発熱ブロックの温度を推定する温度推定部と、
前記複数の発熱ブロックのそれぞれの動作負荷を測定する負荷測定部とを含み、
前記温度推定部は、前記負荷測定部により測定された動作負荷に応じて、前記複数の発熱ブロックの温度の推定値を補正することを特徴とする温度推定装置。
【請求項２０】
プロセッサの特定ブロックの温度を測定するセンサと、
前記センサにより検出される前記特定ブロックの温度をもとに、前記プロセッサの複数の発熱ブロックの温度を推定する温度推定部と、
前記複数の発熱ブロックの各々に個別に負荷をかけた場合における、前記センサによる前記特定ブロックの検出温度と前記複数の発熱ブロックの温度の対応関係に関する情報を記憶する記憶部とを含み、
前記温度推定部は、それぞれの発熱ブロックに個別に負荷がかかった場合を想定し、それぞれの発熱ブロックに個別に負荷をかけた場合における前記対応関係に関する情報を参照して、各発熱ブロックの温度を推定し、各発熱ブロックの推定温度のうち、最も高い推定温度を当該プロセッサの最高温度として求めることを特徴とする温度推定装置。
【請求項２１】
プロセッサの特定ブロックの温度を測定するセンサと、
前記センサにより検出される前記特定ブロックの温度をもとに、前記プロセッサの複数の発熱ブロックの温度を推定する温度推定部と、
当該プロセッサ全体に最大負荷をかけた場合における、前記特定ブロックの検出温度と前記複数の発熱ブロックの温度の対応関係に関する情報と、前記複数の発熱ブロックの各々に個別に負荷をかけた場合における、前記センサによる前記特定ブロックの検出温度と前記複数の発熱ブロックの温度の対応関係に関する情報とを記憶する記憶部と、
当該プロセッサの全体熱量を測定する熱量測定部とを含み、
前記温度推定部は、前記熱量測定部によって測定された全体熱量に応じて前記最大負荷をかけた場合における前記対応関係と、前記個別に負荷をかけた場合における前記対応関係のいずれかに切り替えて参照して、前記複数の発熱ブロックの温度を推定することを特徴とする情報処理装置。
【請求項２２】
プロセッサの特定ブロックの温度を測定するセンサと、
前記センサにより検出される前記特定ブロックの温度をもとに、前記プロセッサの複数の発熱ブロックの温度を推定する温度推定部と、
前記複数の発熱ブロックのそれぞれの動作負荷を測定する負荷測定部とを含み、
前記温度推定部は、前記負荷測定部により測定された動作負荷に応じて、前記複数の発熱ブロックの温度の推定値を補正することを特徴とする情報処理装置。
【請求項２３】
プロセッサの特定ブロックの温度を測定するセンサと、
前記センサにより検出される前記特定ブロックの温度をもとに、前記プロセッサの複数の発熱ブロックの温度を推定する温度推定部と、
前記複数の発熱ブロックの各々に個別に負荷をかけた場合における、前記センサによる前記特定ブロックの検出温度と前記複数の発熱ブロックの温度の対応関係に関する情報を記憶する記憶部とを含み、
前記温度推定部は、それぞれの発熱ブロックに個別に負荷がかかった場合を想定し、それぞれの発熱ブロックに個別に負荷をかけた場合における前記対応関係に関する情報を参照して、各発熱ブロックの温度を推定し、各発熱ブロックの推定温度のうち、最も高い推定温度を当該プロセッサの最高温度として求めることを特徴とする情報処理装置。
【請求項２４】
プロセッサの特定ブロックの温度を測定するステップと、
前記センサにより検出される前記特定ブロックの温度をもとに、前記プロセッサの複数の発熱ブロックの温度を推定するステップと、
当該プロセッサ全体に最大負荷をかけた場合における、前記特定ブロックの検出温度と前記複数の発熱ブロックの温度の対応関係に関する情報と、前記複数の発熱ブロックの各々に個別に負荷をかけた場合における、前記センサによる前記特定ブロックの検出温度と前記複数の発熱ブロックの温度の対応関係に関する情報とを記憶するステップと、
当該プロセッサの全体熱量を測定するステップとをコンピュータに実行させ、
前記温度を推定するステップは、測定された前記全体熱量に応じて前記最大負荷をかけた場合における前記対応関係と、前記個別に負荷をかけた場合における前記対応関係のいずれかに切り替えて参照して、前記複数の発熱ブロックの温度を推定することを特徴とするプログラム。
【請求項２５】
プロセッサの特定ブロックの温度を測定するステップと、
前記センサにより検出される前記特定ブロックの温度をもとに、前記プロセッサの複数の発熱ブロックの温度を推定するステップと、
前記複数の発熱ブロックのそれぞれの動作負荷を測定するステップとをコンピュータに実行させ、
前記温度を推定するステップは、測定された前記動作負荷に応じて、前記複数の発熱ブロックの温度の推定値を補正することを特徴とするプログラム。
【請求項２６】
プロセッサの特定ブロックの温度を測定するステップと、
前記センサにより検出される前記特定ブロックの温度をもとに、前記プロセッサの複数の発熱ブロックの温度を推定するステップと、
前記複数の発熱ブロックの各々に個別に負荷をかけた場合における、前記センサによる前記特定ブロックの検出温度と前記複数の発熱ブロックの温度の対応関係に関する情報を記憶するステップとを含み、
前記温度を推定するステップは、それぞれの発熱ブロックに個別に負荷がかかった場合を想定し、それぞれの発熱ブロックに個別に負荷をかけた場合における前記対応関係に関する情報を参照して、各発熱ブロックの温度を推定し、各発熱ブロックの推定温度のうち、最も高い推定温度を当該プロセッサの最高温度として求めることを特徴とするプログラム。