特許第6872440号(P6872440)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ルネサスエレクトロニクス株式会社の特許一覧

<>
  • 特許6872440-半導体装置および半導体装置の制御方法 図000002
  • 特許6872440-半導体装置および半導体装置の制御方法 図000003
  • 特許6872440-半導体装置および半導体装置の制御方法 図000004
  • 特許6872440-半導体装置および半導体装置の制御方法 図000005
  • 特許6872440-半導体装置および半導体装置の制御方法 図000006
  • 特許6872440-半導体装置および半導体装置の制御方法 図000007
  • 特許6872440-半導体装置および半導体装置の制御方法 図000008
  • 特許6872440-半導体装置および半導体装置の制御方法 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6872440
(24)【登録日】2021年4月21日
(45)【発行日】2021年5月19日
(54)【発明の名称】半導体装置および半導体装置の制御方法
(51)【国際特許分類】
   G06F 15/78 20060101AFI20210510BHJP
【FI】
   G06F15/78 517
   G06F15/78 530
【請求項の数】5
【全頁数】14
(21)【出願番号】特願2017-128159(P2017-128159)
(22)【出願日】2017年6月30日
(65)【公開番号】特開2019-12377(P2019-12377A)
(43)【公開日】2019年1月24日
【審査請求日】2019年11月8日
(73)【特許権者】
【識別番号】302062931
【氏名又は名称】ルネサスエレクトロニクス株式会社
(74)【代理人】
【識別番号】110000350
【氏名又は名称】ポレール特許業務法人
(72)【発明者】
【氏名】五味 賢彦
(72)【発明者】
【氏名】長澤 龍
【審査官】 三坂 敏夫
(56)【参考文献】
【文献】 米国特許出願公開第2013/0079946(US,A1)
【文献】 特開2015−130035(JP,A)
【文献】 米国特許出願公開第2013/0159755(US,A1)
【文献】 特開2003−295986(JP,A)
【文献】 米国特許出願公開第2017/0075397(US,A1)
【文献】 特開2007−066073(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 15/78
(57)【特許請求の範囲】
【請求項1】
複数のコアと、
前記複数のコアの温度を各々検出する複数のセンサと、
前記検出した複数の温度同士を比較した結果と、前記複数のコアの一つにつき求めた消費電力とに応じて制御対象のコアを選択する制御回路と、
を有し、
前記制御回路は、選択されたコアの動作周波数と電源電圧のうち、少なくとも一つを制御する半導体装置。
【請求項2】
前記制御回路は、前記複数のセンサが検出した少なくとも一つの温度と予め設定された温度の閾値とを比較した結果に応じて前記複数のコアの一つの消費電力を求める請求項1に記載の半導体装置。
【請求項3】
前記制御回路は、求めたコアの消費電力と前記求めたコアに予め設定された消費電力の基準値とを比較した結果に応じて制御対象のコアを選択する請求項1に記載の半導体装置。
【請求項4】
前記制御回路は、求めたコアの消費電力と前記求めたコアに予め設定された消費電力の基準値とを比較した結果に応じて制御対象のコアを選択する請求項に記載の半導体装置。
【請求項5】
前記制御回路は、前記検出した複数の温度のうち、温度が低い側の前記センサが検出する前記コアの消費電力を求める請求項に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は半導体装置に関し、例えば発熱制御機能を有する半導体装置に適用可能である。
【背景技術】
【0002】
半導体集積回路装置において、近年、大容量化、高性能化、低コスト化などの市場ニーズに応えるため、半導体プロセスは急速に加速している。一方で、半導体プロセスの向上に伴い、消費電力は増加傾向にあり、発熱制御の重要度は増している。
【0003】
複数のコアのそれぞれに温度センサを配置し、温度センサからの温度情報に基づいてコアの発熱制御が行われる(例えば、特開2005−71364号公報、特開2013−546070号公報)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2005−71364号公報
【特許文献2】特開2013−546070号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
発熱制御のトリガとなる温度センサからの温度情報は、各々温度センサを含む複数のコアが隣接配置されるためコア間でお互いの温度干渉が起こり、発熱源となるコア(モジュール)を特定することができない。温度干渉により上昇した際の発熱制御は、不要に機能制限を行い適切な発熱制御を行うことが難しい。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0006】
本開示のうち代表的なものの概要を簡単に説明すれば下記の通りである。
すなわち、半導体装置は、センサが検出した温度に応じて、複数のコアのそれぞれの消費電力を求め、求めた消費電力に応じて制御対象のコアを選択する。
【発明の効果】
【0007】
上記半導体装置によれば、適切な発熱制御を行うことができる。
【図面の簡単な説明】
【0008】
図1】発熱制御を行う半導体装置を説明する図
図2図1の半導体装置の構成例を説明する図
図3図2の半導体装置の発熱制御選択機能の動作を説明する図
図4図2の半導体装置の発熱制御の開始温度と発熱制御を説明する図
図5】温度センサの位置による所定温度到達までに必要な消費電力の違いを説明する図
図6】温度センサの位置による所定温度到達までに必要な消費電力の違いを説明する図
図7図1の半導体装置の構成の変形例を説明する図
図8図7の半導体装置の発熱制御選択機能の動作を説明する図
【発明を実施するための形態】
【0009】
本願発明者が本願開示に先立って検討した複数の温度センサを用いた温度制御を行う技術(比較例)について説明する。図1は発熱制御を行う半導体装置のブロック図である。
【0010】
半導体装置1は、第一モジュール10と、第一温度センサ(THS1)61と、第二モジュール20と、第二温度センサ(THS2)62と、メモリ30と、AD変換器(ADC)40と、バス50と、を一つの半導体チップに備える。第一モジュール10は中央処理装置(CPU)であり、第二モジュール20はグラフィック処理装置(GPU)である。第一温度センサ(THS1)61は第一モジュール10に近接して配置され、第二温度センサ(THS2)62は第二モジュール20に近接して配置される。AD変換器(ADC)40は例えば第一温度センサ(THS1)61および第二温度センサ(THS2)61の温度情報をデジタル情報に変換する。
【0011】
第一温度センサ(THS1)61の温度情報に基づいて第一モジュール10の発熱制御を行い、第二温度センサ(THS2)62の温度情報に基づいて第二モジュール20の発熱制御を行う。発熱制御はクロック周波数や電源電圧を低下させて発熱を抑える。
【0012】
グラフィックアプリ動作時など、GPU20は高負荷(例えば、稼働率90〜95%)になり、一方でCPU10は低負荷(例えば、稼働率15%以下)なケースがある。GPU20の発熱HAにより、GPU20の付近の第二温度センサ(THS2)62だけでなく、CPU10の付近の第一温度センサ(THS1)61も温度が上昇し、温度干渉が起こる。第一温度センサ(THS1)61の温度情報に基づいてCPU10の発熱制御を行うが、第一温度センサ(THS1)61の近辺に存在するCPU10が発熱源でない場合でも、CPU10付近の第一温度センサ(THS1)61の温度が上がることでCPU10へ発熱制御が適用される。これにより、CPU10の性能を不要に下げるため、CPU10の割込み制御などにも影響を与える。本願発明者はこのような外部要因による熱の伝播をトリガとした非効率的な発熱制御が存在するという課題を見出した。
【0013】
そこで、実施形態では、実際に発熱制御を行うにあたり、検出した温度異常が、制御対象としているモジュール自身の発熱であるかどうかの判定を行う。発熱制御すべきモジュールを特定するために、発熱制御対象モジュールの消費電力を算出し、予め用意した基準電力との関係から適切に発熱制御すべきモジュールを選択する。複数の発熱制御対象のモジュールに対し、適切に発熱制御すべきモジュールを選択することで適切に発熱制御することができる。
【0014】
以下、実施例および変形例について、図面を用いて説明する。ただし、以下の説明において、同一構成要素には同一符号を付し繰り返しの説明を省略することがある。
【実施例】
【0015】
まず、実施例に係る半導体装置について図1、2を用いて説明する。図2図1の半導体装置の構成例を示すブロック図である。
【0016】
図1に示すように、半導体装置1は、第一モジュール10と、第一温度センサ(THS1)61と、第二モジュール20と、第二温度センサ(THS2)62と、メモリ30と、AD変換器(ADC)40と、バス50と、制御回路11と、を一つの半導体チップに備える。第一モジュール10は中央処理装置(CPU)であり、第二モジュール20はグラフィック処理装置(GPU)である。図1に示すように、第一温度センサ(THS1)61は第一モジュール10に近接して配置され、第二温度センサ(THS2)62は第二モジュール20に近接して配置される。AD変換器(ADC)40は例えば第一温度センサ(THS1)61および第二温度センサ(THS2)62の温度情報をデジタル情報に変換する。
【0017】
図2に示すように、制御回路11は、温度検出部12と、制御対象選択部13と、発熱制御部14と、を備える。制御対象選択部13は、温度制御が必要か判断するための温度判定部131と、発熱制御対象を選択するための基礎データ15に基づいて消費電力を算出する電力計算部132と、それらのデータを基に発熱制御対象を選択する比較部133と、を有する。
【0018】
温度検出部12は、第一温度センサ(THS1)61からの温度データを取得する。第一温度センサ(THS1)61および第二温度センサ(THS2)62のセンサとして、例えば、ダイオードを用いる。一定の電流が流されるダイオードの端子間電圧は、温度に伴って変化する。ダイオードに一定の電流を流し、ダイオードの両端の電圧を測定することで、温度の変化に伴って変化する電圧から、温度を測定する。アナログの電圧値は、ADC62でAD変換することでデジタル化する。温度検出部12は、デジタル化した電圧値から、温度と電圧の関係を表す対応表や計算式を用いて、対応する温度を求める。
【0019】
温度判定部131は、取得した温度データと、予め設定してある温度閾値を比較し、温度制御の開始判定を行う。電力計算部132は、後述するダイナミック要素電力やリーク電力等の基礎データ15と、リアルタイムで取得した負荷情報(稼働率)等と、に基づいて発熱制御対象のモジュールの消費電力を算出する。比較部133は、電力計算部132で算出した消費電力と、予め設定した基準電力との関係から発熱制御対象モジュールの中から発熱制御すべきモジュールを選択する。
【0020】
発熱制御部14は、制御対象選択部13で選択された発熱制御対象モジュールに対し、機能制限を適用し発熱制御を行う。発熱制御部14は、電源制御部142とクロック制御部141とを有する。電源制御部142は、発熱制御すべきモジュールの電源制御(電源電圧の昇降)を行う。クロック制御部141は、発熱制御すべきモジュールのクロック制御(動作周波数の昇降)を行う。
【0021】
制御回路11は、CPU(Central Processing Unit)とプログラムが格納されるメモリ、および/またはその他の回路で構成することができ、したがって、制御回路11は、ハードウェアのみ、ソフトウェアのみ、又はそれらの組合せによっていろいろな形で実現できる。制御回路11は、例えば、CPU10とメモリ30によって構成することができる。
【0022】
図2の半導体装置の発熱制御について図3〜6を用いて説明する。図3図2の半導体装置の発熱制御選択機能の動作を示すフローチャートである。図4図2の半導体装置の発熱制御の開始温度と制御イメージを示す図である。図5はCPUの基準電力を説明する図である。図6はGPUの基準電力を説明する図である。
【0023】
(温度監視〜温度閾値)
ステップS1、S2:温度検出部12はADC40を介して第一温度センサ(THS1)61より温度情報を取得し、温度判定部131は取得した温度情報が発熱制御の開始温度を超えていないかポーリング処理により確認する。なお、ここで発熱制御は例えば第一温度センサ(THS1)61が閾値である90℃以上で開始することとし、ターゲット温度(例えば100℃)で温度飽和するために機能(処理量)を制限し発熱制御を実施する。発熱制御としては、例えば、図4に示すように、CPU10の動作周波数を制御し発熱を抑制する。例えば、動作周波数を1.7GHzから0.5GHzに下げてダイナミッ電力を削減する。なお、例えばCPU10は4つのコアで構成されるが、この例では動作するコア数を少なくすることはしていない。動作するコア数を少なくしたり、電源電圧を下げたりしてダイナミック電力を削減するようにしてもよい。また、温度検出には、第一温度センサ(THS1)に代えて第二温度センサ(THS2)を用いてもよいし、第一温度センサ(THS1と第二温度センサ(THS2)の両方を用いてもよい。
【0024】
(制御対象の消費電力計算)
ステップS3:電力計算部132は発熱制御対象モジュール(CPU10、GPU20)の消費電力を計算する。
【0025】
消費電力は、下記の式(1)に示すように、ダイナミック電力とリーク電力の和で表される。
消費電力[mW]=ダイナミック電力[mW]+リーク電力[mW]・・(1)
ダイナミック電力は、下記の式(2)に示すように、ダイナミック要素電力と実効周波数の積で表される。また、実効周波数は、下記の式(3)に示すように、動作周波数と稼働率の積で表される。
ダイナミック電力[mW]
=ダイナミック要素電力[mW/MHz]×実効周波数[MHz] ・・・(2)
実効周波数[MHz]=動作周波数[MHz]×稼働率[MHz]・・・(3)
ダイナミック要素電力は負荷容量と電源電圧の二乗の積で表される。ダイナミック要素電力をW、負荷容量をC、電源電圧をVとすると、ダイナミック要素電力は、下記の式(4)で表される。負荷容量は半導体装置の設計値から予め基礎データとして取得しておく。
【0026】
=C×V ・・・(4)
また、稼働率はオペレーティングシステムでリアルタイムに取得される。
【0027】
リーク電力は、リーク電流と電圧との積で表される。リーク電流は、トランジスタ1個あたりのリーク電流をi、トランジスタの総数をN、シャットダウン率をrとして、下記式(5)で与えられる。
=i×N×(1−r) ・・・(5)
トランジスタ1個あたりのリーク電流をiは、係数α[A/nm]、ゲート幅W[nm]、しきい値電圧VT[V]、サブスレッショルド係数n、ボルツマン定数k=1.38×10−23[J/K]、絶対温度T[K]、電気素量q=1.6×10−19[C]を用いて、下記の式(6)で表すことができる。ここで、係数α及びサブスレッショルド係数nは実験などから求めることができる。
【0028】
=α×W×exp{−V×q/(n×kT)} ・・・(6)
なお、図2に示される基礎データ15には、上記したダイナミック電力及びリーク電力を計算するために必要なパラメータが含まれている。基礎データ15は、例えばメモリ30(図2を参照)に記憶されている。
【0029】
(電力比較)
ステップS4、S5:比較部133はステップS3で計算した発熱制御対象モジュールの消費電力と基準電力を比較する。ステップS4では、第一モジュールであるCPU10の消費電力(W1)が基準電力(W1S)以上であるかどうかを判断し、YESの場合はステップS6に移り、NOの場合はステップS1に戻る。ステップS5では、第二モジュールであるGPU20の消費電力(W2)が基準電力(W2S)以上であるかどうかを判断し、YESの場合はステップS7に移り、NOの場合はステップS1に戻る。なお、基準電力は予め定義しておく必要がある。ここでは基準電力の定義として、発熱制御の開始温度(例:90℃)に到達するために必要な消費電力とする。
【0030】
また、発熱制御対象モジュールと温度センサの位置関係により、ある温度に到達するために必要な消費電力は異なる。
【0031】
図1に示すように、GPU20とCPU10の付近に第二温度センサ(THS2)62と第一温度センサ(THS1)61がそれぞれ存在しており、第一温度センサ(THS1)61の温度を監視している。このとき、図5に示すように、CPU10は第一温度センサ(THS1)と近接しているため、90℃到達に必要な消費電力は500mWである。一方、図6に示すように、GPU20は第一温度センサ(THS1)とは距離があるため、第一温度センサ(THS1)の温度は上がりにくい。よって、第一温度センサ(THS1)を90℃まで到達するためには500mWよりも大きな700mWの消費電力が必要となる。なお、基準電力は予め算出しておく必要があるが、ある温度センサの任意の温度到達に必要な消費電力はボードの放熱性能や各モジュールの消費電力から計算することが可能である。
【0032】
ステップS6:発熱制御部14は第一モジュールのCPU10の発熱制御を行う。発熱制御部14はCPU10の動作周波数および電源電圧の少なくとも一つを制御する。
【0033】
ステップS7:発熱制御部14は第二モジュールのGPU20の発熱制御を行う。発熱制御部14はGPU20の動作周波数および電源電圧の少なくとも一つを制御する。
【0034】
(計算例)
式(1)(2)(3)を用いた発熱制御対象モジュールの消費電力および電力比較の計算例の3つのパターンについて説明する。ここで、
第一モジュール(CPU):
・動作周波数:500MHz〜1700MHz
・ダイナミック要素電力:0.46mW/MHz
・リーク電力:150mW(@Tj=90℃)
第二モジュール(GPU):
・動作周波数:200MHz〜600MHz
・ダイナミック要素電力:0.50mW/MHz
・リーク電力:600mW(@Tj=90℃)
とする。
【0035】
(パターン1)
第一基準電力(W1S):500mW、第二基準電力(W2S):700mW、CPU10の動作周波数:1700MHz、CPU10の稼働率:90%、GPU20の動作周波数:600MHz、GPU20の稼働率:90%、とする。
【0036】
Tj=90℃におけるCPU10の消費電力は以下のように求められる。
・実効周波数=1700MHz×90%=1530MHz
・ダイナミック電力=0.46mW/MHz×1530MHz=703.8mW
・消費電力=703.8mW+150mW=853.8mW
よって、第一モジュールの消費電力(W1)=853.8mWとなる。
【0037】
同様に、Tj=90℃におけるGPU20の消費電力は以下のように求められる。
・実効周波数=600MHz×90%=540MHz
・ダイナミック電力=0.50mW/MHz×540MHz=270mW
・消費電力=270mW+600mW=870mW
よって、第二モジュールの消費電力(W2)=870mWとなる。
【0038】
CPU10では、W1=853.8mW>W1S=500mWとなり、ステップS4のW1≧W1Sが成り立ち、発熱制御が必要となる。GPU20では、W2=870mW>W2S=700mWとなり、ステップS5のW2≧W2Sが成り立ち、発熱制御が必要となる。よって、CPU10およびGPU20は共に発熱源であるので、ステップS6、S7で発熱制御を実施する。
【0039】
(パターン2)
第一基準電力(W1S):500mW、第二基準電力(W2S):700mW、CPU10の動作周波数:1700MHz、CPU10の稼働率:20%、GPU20の動作周波数:600MHz、GPU20の稼働率:90%、とする。
【0040】
Tj=90℃におけるCPU10の消費電力は以下のように求められる。
・実効周波数=1700MHz×20%=340MHz
・ダイナミック電力=0.46mW/MHz×340MHz=156.4mW
・消費電力=156.4mW+150mW=306.4mW
よって、第一モジュールの消費電力(W1)=306.4mWとなる。
【0041】
同様に、Tj=90℃におけるGPU20の消費電力は以下のように求められる。
・実効周波数=600MHz×90%=540MHz
・ダイナミック電力=0.50mW/MHz×540MHz=270mW
・消費電力=270mW+600mW=870mW
よって、第二モジュールの消費電力(W2)=870mWとなる。
【0042】
CPU10では、W1=306.4mW<W1S=500mWとなり、ステップS4のW1≧W1Sが成り立たず、発熱制御が不要となる。GPU20では、W2=870mW>W2S=700mWとなり、ステップS5のW2≧W2Sが成り立ち、発熱制御が必要となる。よって、GPU20のみが発熱源であるので、ステップS7で発熱制御を実施する。
【0043】
(パターン3)
第一基準電力(W1S):500mW、第二基準電力(W2S):700mW、CPU10の動作周波数:1700MHz、CPU10の稼働率:90%、GPU20の動作周波数:600MHz、GPU20の稼働率:90%、とする。
【0044】
Tj=90℃におけるCPU10の消費電力は以下のように求められる。
・実効周波数=1700MHz×90%=1530MHz
・ダイナミック電力=0.46mW/MHz×1530MHz=703.8mW
・消費電力=703.8mW+150mW=853.8mW
よって、第一モジュールの消費電力(W1)=853.8mWとなる。
【0045】
同様に、Tj=90℃におけるGPU20の消費電力は以下のように求められる。
・実効周波数=600MHz×20%=120MHz
・ダイナミック電力=0.50mW/MHz×120MHz=60mW
・消費電力=60mW+600mW=660mW
よって、第二モジュールの消費電力(W2)=660mWとなる。
【0046】
CPU10では、W1=853.8mW>W1S=500mWとなり、ステップS4のW1≧W1Sが成り立ち、発熱制御が必要となる。GPU20では、W2=660mW<W2S=700mWとなり、ステップS5のW2≧W2Sが成り立たず、発熱制御が不要となる。よって、CPU10のみが発熱源であるので、ステップS6で発熱制御を実施する。
【0047】
本実施例は、制御対象選択部を有することにより、発熱制御対象の複数モジュールのそれぞれの消費電力に基づいて適切に発熱制御すべきモジュールを選択することができる。なお、本実施例では温度監視には第一温度センサ(THS1)61を用いたが第二温度センサ(THS2)62を用いてもよいし、第一温度センサ(THS1)61と第二温度センサ(THS2)62の両方を用いてもよい。よって、温度監視には温度センサは少なくとも一つあればよい。
【0048】
<変形例>
以下、代表的な変形例について例示する。以下の変形例の説明において、上述の実施例にて説明されているものと同様の構成および機能を有する部分に対しては、上述の実施例と同様の符号が用いられ得るものとする。そして、かかる部分の説明については、技術的に矛盾しない範囲内において、上述の実施例における説明が適宜援用され得るものとする。また、上述の実施例の一部、および、変形例の全部または一部が、技術的に矛盾しない範囲内において、適宜、複合的に適用され得る。
【0049】
実施例では、少なくとも一つの温度センサによって発熱制御が必要かどうか判断し、すべての発熱制御対象モジュールの消費電力を計算して、実際に発熱制御すべきモジュールを選択している。変形例では、少なくとも一つの温度センサによって発熱制御が必要かどうか判断し、一つの発熱制御対象モジュールの消費電力を計算し、すべての発熱制御対象モジュールのそれぞれの温度センサの温度と一つの発熱制御対象モジュールの消費電力とに基づいて、実際に発熱制御すべきモジュールを選択する。
【0050】
変形例に係る半導体装置について図7を用いて説明する。図7は実施例に係る半導体装置の構成を説明するブック図である。変形例に係る半導体装置1Aは制御回路11Aを除いて、実施例に係る半導体装置1と同様である。
【0051】
半導体装置1Aは、第一モジュール10と、第一温度センサ(THS1)61と、第二モジュール20と、第二温度センサ(THS2)62と、メモリ30と、AD変換器(ADC)40と、バス50と、制御回路11Aと、を一つの半導体チップに備える。第一モジュール10は中央処理装置(CPU)であり、第二モジュール20はグラフィック処理装置(GPU)である。図1に示すように、第一温度センサ(THS1)61は第一モジュール10に近接して配置され、第二温度センサ(THS2)62は第二モジュール20に近接して配置される。AD変換器(ADC)40は例えば第一温度センサ(THS1)61および第二温度センサ(THS2)62の温度情報をデジタル情報に変換する。
【0052】
制御回路11Aは、温度検出部12Aと、制御対象選択部13Aと、発熱制御部14と、を備える。制御対象選択部13は、温度制御が必要か判断するための温度判定部131と、発熱制御対象を選択するための基礎データ15に基づいて消費電力を算出する電力計算部132と、それらのデータを基に発熱制御対象を選択する比較部133Aと、を有する。
【0053】
温度検出部12Aは、第一温度センサ(THS1)61および第二温度センサ(THS2)62からの温度データを取得する。
【0054】
温度判定部131Aは、例えば第一温度センサ(THS1)61で取得した温度データと、予め設定してある温度閾値を比較し、温度制御の開始判定を行う。電力計算部132Aは、ダイナミック要素電力やリーク電力等の基礎データ15と、リアルタイムで取得した負荷情報(稼働率)等と、に基づいて発熱制御対象のモジュール(例えば、第一モジュールのCPU10)の消費電力を算出する。比較部133Aは、第一温度センサ(THS1)61で取得した温度データと第二温度センサ(THS2)62で取得した温度データとの関係、および電力計算部132Aで算出した消費電力と予め設定した基準電力との関係から発熱制御対象モジュールを選択する。
【0055】
図7の半導体装置の発熱制御について図8を用いて説明する。図8は発熱制御選択機能の動作を説明するフローチャートである。
【0056】
(温度監視〜温度閾値)
ステップS11、S12:実施例と同様、少なくとも一つの温度センサで温度情報に基づいて発熱制御が必要かどうかを判断する。ただし、すべての温度センサの温度情報を取得する。
【0057】
(消費電力計算)
ステップS13:実施例と同様に消費電力を計算する。ただし、消費電力を計算する発熱制御対象モジュールは一つである。図8ではCPU10の消費電力を計算している。
【0058】
(温度比較〜電力比較)
ステップS14:比較部133Aは第二温度センサ(THS2)62から取得した温度(T2)が第一温度センサ(THS1)61から取得した温度(T1)よりも高いかどうかを判断する。YESの場合はステップS15に移り、NOの場合はステップS16に移る。
【0059】
ステップS15:比較部133AはステップS13で計算したCPU10の消費電力(W1)が基準電力(W1S)以上であるかどうかを判断し、YESの場合はステップS17に移り、NOの場合はステップS18に移る。
【0060】
ステップS16:比較部133AはステップS15と同様に、CPU10の消費電力(W1)が基準電力(W1S)以上であるかどうかを判断し、YESの場合はステップS19に移り、NOの場合はステップS11に戻る。
【0061】
ステップS17:発熱制御部14はCPU10およびGPU20の発熱制御を行う。発熱制御部14はCPU10の動作周波数および電源電圧の少なくとも一つをおよびGPU20の動作周波数および電源電圧の少なくとも一つ制御する。
【0062】
ステップS18:発熱制御部14はGPU20の発熱制御を行う。発熱制御部14はGPU20の動作周波数および電源電圧の少なくとも一つを制御する。
【0063】
ステップS19:発熱制御部14はCPU10の発熱制御を行う。発熱制御部14はCPU10の動作周波数および電源電圧の少なくとも一つを制御する。
【0064】
(計算例)
第一温度センサ(THS1)61の温度(T1)および第に温度センサ(THS2)62の温度(T2)の例、式(1)(2)(5)を用いた発熱制御対象モジュールの消費電力および電力比較の計算例の3つのパターンについて説明する。ここで、
第一モジュール(CPU):
・動作周波数:500MHz〜1700MHz
・ダイナミック要素電力:0.46mW/MHz
・リーク電力:150mW(@Tj=90℃)
とする。
【0065】
(パターン1)
第一基準電力(W1S):500mW、CPU10の動作周波数:1700MHz、CPU10の稼働率:90%、T1=90℃、T2=110℃、とする。
【0066】
T1=90℃におけるCPU10の消費電力は以下のように求められる。
・実効周波数=1700MHz×90%=1530MHz
・ダイナミック電力=0.46mW/MHz×1530MHz=703.8mW
・消費電力=703.8mW+150mW=853.8mW
よって、CPU10の消費電力(W1)=853.8mWとなる。
【0067】
T2=110℃>T1=90℃であり、W1=853.8mW≧W1S=500mWであるので、ステップS14のT2>T1およびステップS15のW1≧W1Sが成り立ち、CPU10とGPU20の両方が発熱源となる。よって、発熱制御すべきモジュールはCPU10とGPU20となる。
【0068】
(パターン2)
第一基準電力(W1S):500mW、CPU10の動作周波数:1700MHz、CPU10の稼働率:20%、T1=90℃、T2=110℃、とする。
【0069】
T1=90℃におけるCPU10の消費電力は以下のように求められる。
・実効周波数=1700MHz×20%=340MHz
・ダイナミック電力=0.46mW/MHz×340MHz=156.4mW
・消費電力=156.4mW+150mW=306.4mW
よって、CPU10の消費電力(W1)=306.4mWとなる。
【0070】
T2=110℃>T1=90℃であり、W1=306.4mW<W1S=500mWであるので、ステップS14のT2>T1が成り立ち、ステップS15のW1≧W1Sが成り立たないので、GPU20が発熱源となる。よって、発熱制御すべきモジュールはGPU20となる。
【0071】
(パターン3)
第一基準電力(W1S):500mW、CPU10の動作周波数:1700MHz、CPU10の稼働率:90%、T1=90℃、T2=50℃、とする。
【0072】
T1=90℃におけるCPU10の消費電力は以下のように求められる。
・実効周波数=1700MHz×90%=1530MHz
・ダイナミック電力=0.46mW/MHz×1530MHz=703.8mW
・消費電力=703.8mW+150mW=853.8mW
よって、CPU10の消費電力(W1)=853.8mWとなる。
【0073】
T2=50℃<T1=90℃であり、W1=853.8mW≧W1S=500mWであるので、ステップS14のT2>T1が成り立たず、ステップS16のW1≧W1Sが成り立ち、CPU10が発熱源となる。よって、発熱制御すべきモジュールはCPU10となる。
【0074】
変形例では、発熱制御対象の複数モジュールに対し、一つの発熱制御対象モジュールの消費電力と複数の温度センサの関係に基づいて適切に発熱制御すべきモジュールを選択することができる。また、実施例と比較し、任意の発熱制御対象モジュールの消費電力と複数の温度センサの関係から選択可能なため、すべての発熱制御対象モジュールの消費電力を算出する必要がない。
【0075】
以上、本発明者によってなされた発明を実施形態、実施例および変形例に基づき具体的に説明したが、本発明は、上記実施形態、実施例および変形例に限定されるものではなく、種々変更可能であることはいうまでもない。
【0076】
例えば、実施例および変形例では発熱制御対象モジュールは二つの場合について説明したが、二つに限定されるものではなく、三つ以上であってもよい。
【符号の説明】
【0077】
1・・・半導体装置
10・・・第一モジュール(CPU)
11・・・制御回路
12・・・温度検出部
13・・・制御対象選択部
14・・・発熱制御部
15・・・基礎データ
20・・・第二モジュール(GPU)
30・・・メモリ
40・・・AD変換器(ADC)
50・・・バス
61・・・第一温度センサ(THS1)
62・・・第二温度センサ(THS2)
図1
図2
図3
図4
図5
図6
図7
図8