以下、具体的な実施の形態について、図面を参照しながら詳細に説明する。ただし、以下の実施の形態に限定される訳ではない。また、説明を明確にするため、以下の記載及び図面は、適宜簡略化されている。
<事前検討事項>
<リーク電力の原因>
まず、発明者らによる事前検討事項について説明する。
上述の通り、半導体装置の微細化により、消費電力におけるリーク電力の増加が問題となっている。ここで、図1を参照してリーク電力の原因となるリーク電流について説明する。図1は、リーク電流を説明するためのMOSFET(Metal-Oxide-Semiconductor Field-Effect Transistor)の断面図である。
図1に示されたMOSFETは、シリコン基板90、ゲート91、ソース92、ドレイン93、ゲート絶縁膜94を備えている。さらに、このMOSFETは、ゲート91の側面に形成されたサイドウォール95、ゲート91上に形成されたゲートコンタクト96、ソース92上に形成されたソースコンタクト97、ドレイン93上に形成されたドレインコンタクト98を備えている。
図1に示すように、主なリーク電流には、サブスレッショルド・リーク電流ISUB、ゲートリーク電流(ゲートトンネル電流)IGATE、及びGIDL(Gate-Induced Drain Leakage)電流IGIDLの3つがある。
サブスレッショルド・リーク電流ISUBは、MOSFETがオフであるときにドレイン93とソース92の間を流れる電流である。サブスレッショルド・リーク電流ISUBは、近年のMOSFETにおける閾値電圧の低下とともに増加する傾向にある。サブスレッショルド・リーク電流ISUBは温度依存性が大きく、MOSFETのジャンクション温度(チャネル温度)の上昇とともに急激に増加する。
ゲートリーク電流(ゲートトンネル電流)IGATEは、電子が薄いゲート絶縁膜94をトンネル効果によって通過するためにゲート91とシリコン基板90の間(又はゲート91とソース92の間、若しくはゲート91とドレイン93の間)を流れる電流である。
GIDL(Gate-Induced Drain Leakage)電流IGIDLは、ゲート91とドレイン92の間の電界がトンネル現象を引き起こすために、ドレイン93とシリコン基板90を流れる電流である。
ゲートリーク電流IGATE及びGIDL電流IGIDLは、MOSFETの微細化に伴うゲート絶縁膜94の薄膜化により増加する。一方、ゲートリーク電流IGATE及びGIDL電流IGIDLの温度依存性はともに小さい。
<消費電力の構成並びにそれらの動作周波数依存性及び温度依存性>
次に、図2A、図2Bを参照して消費電力の動作周波数依存性及び温度依存性について説明する。図2Aは、ある一定の処理負荷における消費電力の動作周波数依存性を示すグラフである。図2Bは、ある一定の処理負荷における消費電力の温度依存性を示すグラフである。
図2A、図2Bに示すように、消費電力は、アクティブ電力PA、アイドル電力PI、リーク電力PLから構成されている。アクティブ電力PAとは、半導体装置が実際に処理を実行することにより消費される電力である。そのため、処理負荷が一定であればアクティブ電力PAも一定となる。アイドル電力とは、半導体装置のステータス(動作状態)がアイドル状態において消費される電力であって、電源及びクロックが供給されていれば常に消費されるものである。リーク電力とは、リーク電流により消費される電力であって、電源が供給されていれば常に消費されるものである。
ここで、半導体装置のステータスについて説明する。半導体装置のステータスには、アクティブ状態、アイドル状態、シャットダウン状態の3つがある。
アクティブ状態とは、電源及びクロックが供給され、かつ、実際に処理を行っている状態である。例えば、半導体装置が無線通信端末向けアプリケーションプロセッサの場合、無線データ通信、音楽再生、動画再生などの処理を実際に行っている状態である。アクティブ状態では、アクティブ電力PA、アイドル電力PI、リーク電力PLの全てが発生する。
アイドル状態(ストール状態とも呼ばれる)とは、電源及びクロックは供給されているが、実際には処理を実行していない状態(すなわち、ターゲットからの応答を待っている状態)である。アイドル状態では、アイドル電力PI及びリーク電力PLが発生し、アクティブ電力PAは発生しない。
シャットダウン状態とは、電源及びクロックが供給されていない状態である。シャットダウン状態では、アクティブ電力PA、アイドル電力PI、リーク電力PLのいずれも発生しない。
図2Aに示すように、アクティブ電力PA及びリーク電力PLは、動作周波数(動作クロックの周波数)依存性を示さない。ここで、動作周波数が上昇すれば、単位時間当たりのアクティブ電力も上昇するが、処理負荷が一定であるため、処理時間が短くなる。そのため、処理に要するアクティブ電力PA(=単位時間当たりのアクティブ電力×処理時間)は動作周波数によらず一定となる。一方、アイドル電力PIは、動作周波数に比例して上昇する。従って、消費電力全体も動作周波数の上昇とともに上昇する。
図2Bに示すように、アクティブ電力PA及びアイドル電力PIは、温度依存性を示さない。一方、リーク電力PLは、温度の上昇とともに急激に上昇する。従って、消費電力全体も温度の上昇とともに急激に上昇する。
図3は、リーク電力PL、アイドル電力PI、アクティブ電力PAのそれぞれについて、動作周波数及び温度に対する依存性をまとめた一覧表である。図3に示すように、リーク電力PLは、動作周波数には依存しないが、温度には依存する。具体的には、図2Bに示したように、温度の上昇とともに上昇する。アイドル電力PIは、動作周波数には依存するが、温度には依存しない。具体的には、図2Aに示したように、動作周波数の上昇とともに上昇する。アクティブ電力PAは、動作周波数及び温度のいずれにも依存しない。
<比較例及びその問題点>
図4A、図4Bは本発明者らが検討した比較例である。ここでは、低温時に動作周波数を高く、高温時には動作周波数を低く設定した半導体装置の消費電力を検討している。図4Aは、比較例に係る半導体装置の低温時における消費電力の構成を模式的に示すグラフである。図4Bは、比較例に係る半導体装置の高温時における消費電力の構成を模式的に示すグラフである。図4A、図4Bは、いずれもある一定の処理負荷における消費電力の構成を示している。
図4A、図4Bのグラフにおいて横軸は時間[s]、縦軸は単位時間当たりの消費電力[W/s]である。横軸の時間に合わせ、動作クロック(CLOCK)及びステータス(STATUS)が示されている。図4Aに示すように、単位時間当たりのリーク電力PL及びアイドル電力PIは、アイドル状態であるかアクティブ状態であるかによらず、一定である。アクティブ電力PAは、アクティブ状態のみにおいて発生する。また、シャットダウン状態では消費電力は発生しない。図4Bにおいても同様である。図4A及び図4Bに示した単位時間当たりの消費電力の時間積分値(つまり図4A及び図4Bに示したグラフの面積すなわちマスの数)が消費電力となる。
図4Bでは図4Aに比べ、動作周波数が1/2になっているため、単位時間当たりのアイドル電力PIも1/2になっている。他方、図4Bでは図4Aに比べ、温度の上昇により、単位時間当たりのリーク電力PLは8倍になっている。ここで、図4A及び図4Bにおける処理負荷は一定であるため、処理に要するアクティブ電力PAの合計は、図4A及び図4Bにおいて同じである。しかし、図4Bでは図4Aに比べ、動作周波数が1/2になっているため、処理に要する時間が2倍となっている。結果として、比較例では、高温時にシャットダウン状態の時間が短くなり、リーク電力PLが増加してしまう問題があった。
発明者らは、半導体装置の消費電力低減について検討を行った。以下にその詳細について説明する。
(実施の形態1)
<無線通信端末の概要>
まず、図5A、図5Bを参照して、本実施の形態に係る半導体装置が適用される電子装置として好適な無線通信端末の概要について説明する。図5A及び図5Bは、無線通信端末500の構成例を示す外観図である。
なお、図5A、図5Bでは、無線通信端末500がスマートフォンである場合について示している。しかしながら、無線通信端末500は、フィーチャーフォン(例えば、折り畳み式の携帯電話端末)、携帯ゲーム端末、タブレットPC(Personal Computer)、ノートPC等のその他の無線通信端末であってもよい。また、当然のことながら、本実施の形態に係る半導体装置は、無線通信端末以外に適用することも可能である。
図5Aは、無線通信端末500を形成する筐体501の一方の主面(前面)を示している。筐体501の前面には、ディスプレイデバイス502と、タッチパネル503と、幾つかの操作ボタン504と、カメラデバイス505とが配置されている。一方、図5Bは、筐体501の他方の主面(背面)を示している。筐体501の背面には、カメラデバイス506が配置されている。
ディスプレイデバイス502は、液晶ディスプレイ(LCD:Liquid Crystal Display)や有機ELディスプレイ(OLED:Organic Light-Emitting Diode)等の表示装置である。ディスプレイデバイス502は、表示面が筐体501の前面に位置するように配置されている。
タッチパネル503は、ディスプレイデバイス502の表示面を覆うように配置されるか、或いはディスプレイデバイス502の裏面側に配置され、ユーザーによる表示面への接触位置を検知する。つまり、ユーザーは、指や専用のペン(一般に、スタイラスと呼称される)等でディスプレイデバイス502の表示面に触れることで、無線通信端末500を直感的に操作することができる。
操作ボタン504は、無線通信端末500に対する補助的な操作に用いられる。なお、無線通信端末によっては、このような操作ボタンが設けられないこともある。
カメラデバイス505は、そのレンズユニットが筐体501の前面に位置するように配置されたサブカメラである。なお、無線通信端末によっては、このようなサブカメラが設けられないこともある。
カメラデバイス506は、そのレンズユニットが筐体501の背面に位置するように配置されたメインカメラである。
<無線通信装置の構成>
図6を参照して、本実施の形態に係る半導体装置が搭載される無線通信装置600の構成について説明する。図6は、実施の形態1に係る無線通信装置600の構成例を示すブロック図である。無線通信装置600は、例えば、図5A、図5Bに示した無線通信端末500の内部構成である。
図6に示すように、無線通信装置600は、アプリケーションプロセッサ(ホストIC)601、ベースバンドプロセッサ602、RFIC(Radio Frequency Integrated Circuit)603、メインメモリ604、バッテリ605、パワーマネジメントIC(PMIC:Power Management Integrated Circuit)606、表示部607、カメラ部608、操作入力部609、オーディオIC610、マイク611、スピーカ612を含む。
アプリケーションプロセッサ(ホストIC)601は、メインメモリ604に格納されたプログラムを読み出して、無線通信装置600の各種機能を実現するための処理を行う半導体集積回路である。例えば、アプリケーションプロセッサ601は、メインメモリ604からOS(Operating System)プログラムを読み出して実行すると共に、このOSプログラムを動作基盤とするアプリケーションプログラムを実行する。
ベースバンドプロセッサ602は、携帯通信端末が送受信するデータに対して符号化(例えば、畳み込み符号やターボ符号等の誤り訂正符号化)処理又は復号化処理等を含むベースバンド処理を行う。例えば音声データの場合、ベースバンドプロセッサ602は、送信音声データをオーディオIC610から受け取り、受け取った送信音声データに対して符号化処理を施して、RFIC603に送信する。他方、ベースバンドプロセッサ602は、RFIC603から受信音声データを受け取り、受け取った受信音声データに対して復号化処理を施してオーディオIC610に送信する。
RFIC603は、アナログRF信号処理を行う。アナログRF信号処理は、周波数アップコンバージョン、周波数ダウンコンバージョン、増幅などを含む。例えば音声データの場合、RFIC603は、ベースバンドプロセッサ602によって変調された送信音声データから送信RF信号を生成し、アンテナを介してこの送信RF信号を無線送信する。他方、RFIC603は、アンテナを介して受信RF信号を無線受信し、受信RF信号から受信音声データを生成し、この受信音声データをベースバンドプロセッサ602に送信する。
メインメモリ(外部メモリ)604は、アプリケーションプロセッサ601により利用されるプログラム及びデータを格納している。メインメモリ604としては、電源遮断時に記憶データが消去される揮発性メモリであるDRAM(Dynamic Random Access Memory)を用いる場合が多い。もちろん、メインメモリ604として、電源遮断時に記憶データが保持される不揮発性メモリを用いてもよい。
バッテリ605は、電池であり、無線通信装置600が外部電源によらずに動作する場合に利用される。なお、無線通信装置600は、外部電源が接続されている場合においてもバッテリ605の電源を利用してもよい。また、バッテリ605としては、二次電池を利用することが好ましい。
パワーマネジメントIC606は、バッテリ605又は外部電源から内部電源を生成する。この内部電源は、無線通信装置600の各ブロックに与えられる。このとき、パワーマネジメントIC606は、内部電源の供給を受けるブロック毎に内部電源の電圧を制御する。パワーマネジメントIC606は、アプリケーションプロセッサ601からの指示に基づき内部電源の電圧制御を行う。さらに、パワーマネジメントIC606は、ブロック毎に内部電源の供給と遮断とを制御することもできる。また、パワーマネジメントIC606は、外部電源の供給がある場合、バッテリ605への充電制御も行う。
表示部607は、図5A、図5Bにおけるディスプレイデバイス502に相当するものであって、液晶ディスプレイ(LCD:Liquid Crystal Display)や有機ELディスプレイ(OLED:Organic Light-Emitting Diode)等の表示装置である。表示部607は、アプリケーションプロセッサ601における処理に従い様々な画像を表示する。表示部607において表示される画像には、ユーザーが無線通信装置600に動作指示を与えるユーザーインタフェース画像、カメラ画像、動画等が含まれる。
カメラ部608は、アプリケーションプロセッサ601からの指示に従い、画像を取得する。カメラ部608は、図5A、図5Bにおけるカメラデバイス505、506に相当するものである。
操作入力部609は、ユーザーが操作して無線通信装置600に操作指示を与えるユーザーインタフェースである。操作入力部609は、図5A、図5Bにおけるタッチパネル503、操作ボタン504に相当するものである。
オーディオIC610は、ベースバンドプロセッサ602から受け取ったデジタル信号である受信音声データをアナログ信号に変換し、スピーカ612を駆動する。これにより、スピーカ612から音声が出力される。他方、オーディオIC610は、マイク611で検出したアナログ信号である音声をアナログ/デジタル(A/D)変換して、ベースバンドプロセッサ602に出力する。
<実施の形態1に係る半導体装置の構成>
図7を参照して、実施の形態1に係る半導体装置であるアプリケーションプロセッサ601の構成について説明する。図7は、実施の形態1に係るアプリケーションプロセッサ601の構成例を示すブロック図である。図7に示すように、実施の形態1に係るアプリケーションプロセッサ601は、CPU(演算部)、温度センサTS、電力削減モード制御部(制御部)100、クロック生成部CPG、電源制御部PSCを備えている。ここで、電力削減モード制御部100は、温度監視部TM、基準温度算出部RC、サイクル測定部CM、記憶部REG、比較部CMP、モード判定部MDを備えている。図7において、太い矢印はデータを示し、細い矢印は各種制御信号やクロックを示している。
実施の形態1に係るアプリケーションプロセッサ601は、1つの半導体チップ上に設けられている。アプリケーションプロセッサ601では、温度センサTSにより測定されたチップ温度(半導体チップの温度)に応じて、電力削減モード制御部100が電力削減モードを制御する。具体的には、チップ温度が所定の基準温度を超えれば、電力削減モード制御部100はリーク電力削減モード(第1のモード)を選択し、クロック生成部CPGにより生成されるCPUの動作クロックの周波数を高く設定する。
一方、アプリケーションプロセッサ601のチップ温度が所定の基準温度を下回れば、電力削減モード制御部100はアイドル電力削減モード(第2のモード)を選択し、クロック生成部CPGにより生成されるCPUの動作クロックの周波数を低く設定する。すなわち、電力削減モード制御部100は、クロック生成部CPGにより生成される動作クロックの周波数を制御している。
CPUは、クロック生成部CPGが出力する動作クロックck1に応じて動作する。つまり、CPUの動作周波数は、動作クロックck1の周波数である。CPUは、システム起動時に記憶部REGに対して初期化信号rstを出力し、記憶部REGに格納された各種データを初期化する。その後、CPUは、基準温度算出部RCに対し、基準温度Trefを算出するためのサブルーチン1の開始を要求する開始要求req1を出力する。サブルーチン1の詳細については後述する。さらに、CPUは、温度監視部TMに対し、測定温度Taを取得するためのサブルーチン2の開始を要求する開始要求req2を出力する。サブルーチン2の詳細については後述する。
温度センサTSは、いわゆるオンチップ温度センサであり、アプリケーションプロセッサ601のチップ温度(ジャンクション温度又はチャネル温度と言うこともできる)を計測する。
温度監視部TMは、CPUから出力されたサブルーチン2の開始要求req2に応じて、温度センサTSにより測定された測定温度Taの監視を開始する。温度監視部TMは、内部にタイマを備えている。タイマは、例えばカウンタである。タイマは、例えば0から最大値までのカウントアップを繰り返す。温度監視部TMは、例えばタイマが最大値になったタイミングで、温度センサTSに対し測定要求req5を出力し、温度センサTSから測定温度Taを取得する。すなわち、温度監視部TMは、温度センサTSから繰り返し測定温度Taを取得する。そして、温度監視部TMは、温度センサTSから取得した測定温度Taをモード判定部MDへ出力する。タイマの最大値(リミット値)は、例えば記憶部REGに格納されている。もちろん、タイマの構成は上記に限定されるものではない。
基準温度算出部RCは、CPUから出力されたサブルーチン1の開始要求req1に応じて、基準温度Trefの算出を開始する。基準温度算出部RCは、内部にタイマを備えている。このタイマは、温度監視部TMのタイマと同様の構成を有している。温度監視部TMは、例えばタイマが最大値になったタイミングで、サイクル測定部CMに対し、アクティブサイクルac1などの測定要求req3を出力する。すなわち、基準温度算出部RCは、サイクル測定部CMに対し繰り返し測定要求req3を出力する。タイマの最大値(リミット値)は、例えば記憶部REGに格納されている。ここで、アクティブサイクルac1[Hz]とは、ステータスがアクティブ状態である単位時間当たりの動作クロックのサイクル数の総和である。
また、基準温度算出部RCは、比較部CMPが出力する基準変更要求req4を受け取ると、記憶部REGから計算用基礎データd1を取得するとともに、サイクル測定部CMから計算用測定データd2を取得する。そして、基準温度算出部RCは、取得した計算用基礎データd1及び計算用測定データd2を使用して、基準温度Trefを算出し、モード判定部MDへ出力する。
計算用基礎データd1は、基準温度計算式及び要素アイドル電力を含む。基準温度計算式とは、基準温度Trefを算出するための計算式である。要素アイドル電力[W/Hz]とは、動作周波数当たりのアイドル電力PI(図2Aにおけるアイドル電力PIの傾き)である。
計算用測定データd2は、アイドルサイクルCI、シャットダウン比率rを含む。アイドルサイクルCI[Hz]とは、ステータスがアイドル状態である単位時間当たりの動作クロックのサイクル数の総和である。シャットダウン比率rとは、ステータスがシャットダウン状態となる単位時間当たりの比率である。シャットダウン比率rは0〜1までの数値であって、例えばシャットダウン比率r=0.2であれば、シャットダウン比率が20%ということである。
サイクル測定部CMは、基準温度算出部RCから出力された測定要求req3に応じて、アクティブサイクルac1、アイドルサイクルCI、シャットダウン比率rを測定する。そして、サイクル測定部CMは、取得したアクティブサイクルac1を比較部CMPへ出力する。さらに、サイクル測定部CMは、比較部CMPから出力された基準変更要求req4に応じて、取得したアクティブサイクルac1を新たな基準アクティブサイクルac2として記憶部REGに格納する。他方、サイクル測定部CMは、測定したアイドルサイクルCI及びシャットダウン比率rを計算用測定データd2として基準温度算出部RCへ出力する。
記憶部REGは、各種データを保持するレジスタである。本実施の形態に係る記憶部REGは、温度監視部TM及び基準温度算出部RCが備えるタイマのリミット値、計算用基礎データd1、基準アクティブサイクルac2を保持している。記憶部REGの保持する各種データは、システム起動時には、CPUから出力される初期化信号rstに応じて初期化される。
比較部CMPは、サイクル測定部CMから取得したアクティブサイクルac1と記憶部REGに保持された基準アクティブサイクルac2とを比較する。比較部CMPは、アクティブサイクルac1の基準アクティブサイクルac2に対する変化が大きければ、基準温度Trefを変更するための基準変更要求req4を基準温度算出部RCに対し出力する。他方、比較部CMPは、アクティブサイクルac1の基準アクティブサイクルac2に対する変化が小さければ、基準変更要求req4を基準温度算出部RCに対し出力しない。
具体的には、例えばac2×0.9<ac1<ac2×1.1を満たせば、基準変更要求req4を出力せず、ac2×0.9<ac1<ac2×1.1を満たさなければ、基準変更要求req4を出力する。なお、上述の通り、比較部CMPから出力された基準変更要求req4は、サイクル測定部CMにも入力される。そして、サイクル測定部CMが、取得したアクティブサイクルac1を新たな基準アクティブサイクルac2として記憶部REGに格納する。しかしながら、比較部CMPが基準変更要求req4を出力した際、比較部CMPが比較したアクティブサイクルac1を新たな基準アクティブサイクルac2として記憶部REGに格納するような構成としてもよい。
モード判定部MDは、基準温度算出部RCから取得した基準温度Trefと温度監視部TMから取得した測定温度Taとを比較して、電力削減のモードを判定する。具体的には、例えばTa<Trefを満たせば、アイドル電力削減モードを選択し、Ta<Trefを満たさなければ、リーク電力削減モードを選択する。モード判定部MDは、判定結果に応じたモード信号(制御信号)modをクロック生成部CPGに対して出力する。
クロック生成部CPGは、モード判定部MDから出力されたモード信号modに応じて、CPUの動作クロックck1を生成する。具体的には、アイドル電力削減モードの場合、クロック生成部CPGは、出力する動作クロックck1の周波数(動作周波数)を低く設定し、リーク電力削減モードの場合、出力する動作クロックck1の周波数を高く設定する。
電源制御部PSCは、CPUに接続された電源供給スイッチSW1のオンオフを制御する電源イネーブル信号psen1を出力する。ここで、電源供給スイッチSW1のオンオフは、CPUのステートに応じて制御される。具体的には、CPUのステートがアクティブ状態又はアイドル状態の場合、電源供給スイッチSW1はオンとなり、CPUへ電源電圧が供給される。一方、CPUのステートがシャットダウン状態の場合、電源供給スイッチSW1はオフとなり、CPUへの電源電圧の供給が停止される。電源供給スイッチSW1は、例えばMOSFETから構成され、そのゲート端子(制御端子)に電源イネーブル信号psen1が入力される。
<電力削減モード制御方法(メインルーチン)>
次に、図8を参照して、実施の形態1に係る半導体装置における電力削減モード制御方法(メインルーチン)について説明する。図8は、実施の形態1に係る電力削減モード制御方法(メインルーチン)を説明するためのフローチャートである。
システムが起動すると、CPUがメインルーチンを開始する。図8に示すように、まず、CPUが記憶部REGに対し初期化信号rstを出力し、記憶部REGに格納された各種データ(温度監視部TM及び基準温度算出部RCが備えるタイマのリミット値、計算用基礎データd1、基準アクティブサイクルac2)を初期化する(ステップS1)。
次に、CPUは、基準温度算出部RCに対し、基準温度Trefを算出するためのサブルーチン1の開始要求req1を出力する。開始要求req1に応じ、基準温度算出部RCは、サブルーチン1を開始する(ステップS2)。サブルーチン1の詳細については後述する。
次に、CPUは、温度監視部TMに対し、測定温度Taを取得するためのサブルーチン2の開始要求req2を出力する。開始要求req2に応じ、温度監視部TMは、サブルーチン2を開始する(ステップS3)。サブルーチン2の詳細については後述する。なお、ステップS2とステップS3の順序は逆でもよい。
次に、基準温度算出部RCは、サブルーチン1によって取得した基準温度Trefをモード判定部MDに設定する(ステップS4)。さらに、温度監視部TMは、サブルーチン2によって取得した測定温度Taをモード判定部MDに設定する(ステップS5)。なお、ステップS4とステップS5の順序は逆でもよい。
次に、モード判定部MDは、測定温度Taと基準温度Trefとを比較し、Ta<Trefを満たすか否かを判定する(ステップS6)。Ta<Trefを満たす場合(ステップS6YES)、モード判定部MDはアイドル電力削減モードを選択し、クロック生成部CPGはCPUの動作クロックck1の周波数を低く設定する(ステップS7)。例えば、処理に支障をきたさずにCPUが動作可能な最低の周波数に設定する。その後、ステップS4に戻り、モード判定を繰り返す。
一方、Ta<Trefを満たさない場合(ステップS6NO)、モード判定部MDはリーク電力削減モードを選択し、クロック生成部CPGはCPUの動作クロックck1の周波数を高く設定する(ステップS8)。例えば、CPUが動作可能な最高周波数に設定する。その後、ステップS4に戻り、モード判定を繰り返す。
<基準温度算出方法(サブルーチン1)>
次に、図9を参照して、実施の形態1に係る半導体装置における基準温度Trefの算出方法(サブルーチン1)について説明する。図9は、実施の形態1に係る基準温度算出方法(サブルーチン1)を説明するためのフローチャートである。
CPUからのサブルーチン1の開始要求req1に応じ、基準温度算出部RCは、サブルーチン1を開始する。
まず、基準温度算出部RCは、内部に備えたタイマの値をリセットする(ステップS11)。
次に、タイマがリミット値に到達したら(すなわちタイマ満了時)、基準温度算出部RCは、サイクル測定部CMへアクティブサイクルac1の測定要求req3を出力する(ステップS12)。
次に、基準温度算出部RCからの測定要求req3に応じ、サイクル測定部CMはアクティブサイクルac1を測定し、比較部CMPへ出力する(ステップS13)。ここで、サイクル測定部CMは、アイドルサイクルCI[Hz]、シャットダウン比率rも併せて測定する。
次に、比較部CMPは、サイクル測定部CMから取得したアクティブサイクルac1と記憶部REGに格納されている基準アクティブサイクルac2とを比較する。具体的には、例えばac2×0.9<ac1<ac2×1.1を満足しているか否か判定する(ステップS14)。すなわち、アクティブサイクルac1の基準アクティブサイクルac2に対する変化が10%未満か否かを判定する。ここで、10%という数値はあくまでも一例であって、目的、用途等に応じて適宜設定することができる。
ac2×0.9<ac1<ac2×1.1を満たせば(ステップS14YES)、比較部CMPは、基準温度算出部RCへ基準変更要求req4を出力せずに、ステップS11に戻る。すなわち、アクティブサイクルac1の基準アクティブサイクルac2に対する変化が小さい場合、比較部CMPは基準変更要求req4を基準温度算出部RCに対し出力しない。
一方、ac2×0.9<ac1<ac2×1.1を満たさなければ(ステップS14NO)、基準温度算出部RCへ基準変更要求req4を出力する(ステップS15)。すなわち、アクティブサイクルac1の基準アクティブサイクルac2に対する変化が大きい場合、比較部CMPは基準変更要求req4を基準温度算出部RCに対し出力する。なお、基準変更要求req4は、サイクル測定部CMへも入力される。
次に、サイクル測定部CMは、基準変更要求req4に応じて、アクティブサイクルac1を新たな基準アクティブサイクルac2として記憶部REGに格納する(ステップS16)。すなわち、基準温度Trefが更新される場合、基準アクティブサイクルac2も更新される。
次に、基準温度算出部RCは、基準変更要求req4に応じて、記憶部REGに格納された要素アイドル電力EI[W/Hz]及びサイクル測定部CMから取得したアイドルサイクルCI[Hz]を用いて、アイドル電力PI[W]を算出する(ステップS17)。具体的には、PI[W]=EI[W/Hz]×CI[Hz]の式からアイドル電力PI[W]が算出される。
続けて、基準温度算出部RCは、記憶部REGに格納された基準温度計算式及びシャットダウン比率を用いて、基準温度Trefを算出する(ステップS18)。その後、ステップS11へ戻り、ステップS11〜S18のフローを繰り返す。
以下に、基準温度Trefを算出するために用いる基準温度計算式の一例を示す。
まず、トランジスタ1個当たりのリーク電流iL[A]は、係数α[A/nm]、ゲート幅W[nm]、閾値電圧VT[V]、サブスレッショルド係数n、温度電圧Ut[V]を用いて、次式1で表すことができる。ここで、係数α及びサブスレッショルド係数nは実験などから求めることができる。
iL=α×W×exp{−VT/(n×Ut)}・・・(式1)
ここで、温度電圧Ut[V]は、ボルツマン定数k=1.38×10−23[J/K]、絶対温度T[K]、電気素量q=1.6×10−19[C]を用いて、次式2で表すことができる。
Ut=kT/q・・・(式2)
ここで、半導体装置のリーク電流IL[A]は、半導体装置を構成するトランジスタ数N[個]及びシャットダウン比率rを用いて、式1、式2から次式3により表すことができる。
IL=α×W×exp{−VT×q/(n×kT)}×N×(1−r)
・・・(式3)
式3から絶対温度T[K]は次式4により表すことができる。
T=(−VT×q)/(n×k)/ln[IL/{α×W×N×(1−r)}]
・・・(式4)
そして、式4の絶対温度T[K]は、次式5により摂氏温度TC[℃](=T-T0)として表すことができる。ここで、0℃の絶対温度T0=273.15[K]である。
TC=(−VT×q)/(n×k)/ln[IL/{α×W×N×(1−r)}]−T0
・・・(式5)
アイドル電力PI[W](=アイドル電流II[A]×動作電圧V[V])とリーク電力PL[W](=リーク電流IL[A]×動作電圧V[V])の比が1:mすなわちIL=m×II=m×PI/Vのときの温度を基準温度Tref[℃]とする。この基準温度Tref[℃]は、式5から次式6により表すことができる。mの値は適宜決定すればよいが、例えば10程度とする。
Tref
=(−VT×q)/(n×k)/ln[(m×PI/V)/{α×W×N×(1−r)}]−T0
・・・(式6)
この式6が基準温度計算式となる。この式6に、ステップS17において算出されたアイドル電力PI[W]及びサイクル測定部CMから取得されたシャットダウン比率rを代入することにより、基準温度Tref[℃]が得られる。
<測定温度取得方法(サブルーチン2)>
次に、図10を参照して、実施の形態1に係る半導体装置における測定温度Taの取得方法(サブルーチン2)について説明する。図10は、実施の形態1に係る測定温度取得方法(サブルーチン2)を説明するためのフローチャートである。
CPUからのサブルーチン2の開始要求req2に応じ、温度監視部TMは、サブルーチン2を開始する。
まず、温度監視部TMは、内部に備えたタイマの値をリセットする(ステップS21)。
次に、タイマがリミット値に到達したら(すなわちタイマ満了時)、温度監視部TMは、温度センサTSへ温度の測定要求req5を出力する(ステップS22)。
次に、温度監視部TMは、測定要求req5に応じて温度センサTSから出力された測定温度Taを取得する(ステップS23)。その後、ステップS21へ戻り、ステップS21〜S23のフローを繰り返す。
<消費電力削減効果の説明>
次に、図11A、図11Bを参照して、本実施の形態に係る半導体装置の消費電力削減効果について説明する。図11Aは、実施の形態1の実施例に係る半導体装置の低温時(測定温度Ta<基準温度Tref)すなわちアイドル電力削減モードにおける消費電力の構成を模式的に示すグラフである。図11Bは、実施の形態1の実施例に係る半導体装置の高温時(基準温度Tref<測定温度Ta)すなわちリーク電力削減モードにおける消費電力の構成を模式的に示すグラフである。ここで、図11A、図11Bは、比較例に係る図4A、図4Bと同種のグラフである。
図11A、図11Bのグラフにおいて横軸は時間[s]、縦軸は単位時間当たりの消費電力[W/s]である。横軸の時間に合わせ、動作クロック(CLOCK)及びステータス(STATUS)が示されている。図11Aに示すように、単位時間当たりのリーク電力PL及びアイドル電力PIは、アイドル状態及びアクティブ状態によらず、一定である。アクティブ電力PAは、アクティブ状態のみにおいて発生する。また、シャットダウン状態では消費電力は発生しない。図11Bにおいても同様である。図11A及び図11Bに示した単位時間当たりの消費電力の時間積分値(つまり図11A及び図11Bに示したグラフの面積すなわちマスの数)が消費電力となる。
図11Bでは図11Aに比べ、動作周波数が2倍になっているため、単位時間当たりのアイドル電力PIも2倍になっている。他方、図11Bでは図11Aに比べ、温度の上昇により、単位時間当たりのリーク電力PLは8倍になっている。ここで、処理に要するアクティブ電力PAの合計は、図11A及び図11Bにおいて同じである。そのため、図11Bでは図11Aに比べ、アクティブ状態が短時間化(シャットダウン状態が長時間化)している。
実施例に係る図11Aを比較例に係る図4Aと比較することにより、アイドル電力削減モードにおける消費電力削減効果について説明する。図11Aでは図4Aに比べ、動作周波数が1/2になっているため、単位時間当たりのアイドル電力PIは1/2になる。一方、処理に要するアクティブ電力PAの合計は同じであるため、処理に要する時間(アクティブ状態の時間)は2倍となる。なお、温度は同じであるため、単位時間当たりのリーク電力PLは同じである。
図11Aでは図4Aに比べ、アクティブ状態の時間は2倍になり、リーク電力PLは増える。しかしながら、低温で単位時間当たりのリーク電力PLが小さいため、単位時間当たりのアイドル電力PIが1/2となるアイドル電力削減効果の方が大きい。そのため、全体として消費電力を削減することができる。より具体的には、図11Aでは図4Aに比べ、リーク電力PLが2マス分増えているが、アイドル電力PIが4マス分減っており、全体として2マス分の消費電力を削減することができる。
次に、実施例に係る図11Bを比較例に係る図4Bと比較することにより、リーク電力削減モードにおける消費電力削減効果について説明する。図11Bでは図4Bに比べ、動作周波数が2倍になっているため、単位時間当たりのアイドル電力PIは2倍になる。一方、処理に要するアクティブ電力PAの合計は同じであるため、処理に要する時間(アクティブ状態の時間)は1/2となる。なお、温度は同じであるため、単位時間当たりのリーク電力PLは同じである。
図11Bでは図4Bに比べ、単位時間当たりのアイドル電力PIは2倍になる。しかしながら、高温で単位時間当たりのリーク電力PLが大きいため、アクティブ状態の短時間化(シャットダウン状態の長時間化)によるリーク電力削減効果の方が大きい。そのため、全体として消費電力を削減することができる。より具体的には、図11Bでは図4Bに比べ、アイドル電力PIが4マス分増えているが、リーク電力PLが16マス分減っており、全体として12マス分の消費電力を削減することができる。
図12は、図11A、図11Bに示した実施の形態1の実施例に係る半導体装置の消費電力の温度依存性を示すグラフである。横軸が温度[℃]、縦軸が消費電力[mW]であり、実施例の消費電力が実線で示されている。また、図12には、図4A、図4Bに示した比較例に係る半導体装置の消費電力も破線で示されている。
実施例では、基準温度Trefよりも温度が低い場合、動作周波数を下げ、基準温度Trefよりも温度が高い場合、動作周波数を上げるように制御している。反対に、比較例では、基準温度Trefよりも温度が低い場合、動作周波数を上げ、基準温度Trefよりも温度が高い場合、動作周波数を下げるように制御している。
図12に示すように、全温度域において、比較例よりも実施例の方が消費電力は小さい。ここで、温度が基準温度Tref近傍であれば、実施例と比較例との消費電力の差は小さい。しかしながら、温度が基準温度Trefよりも高くあるいは低くなる程、その差は大きくなる。特に、高温域でのリーク電力削減効果が大きい。
以上説明したように、本実施の形態に係る半導体装置では、動作周波数に比例して増加するアイドル電力PIと温度上昇とともに急激に増加するリーク電力PLとのうち、いずれを削減するのが全体としての消費電力削減に寄与するのかを基準温度Trefと測定温度Taとを比較することにより判断している。そして、この比較結果に基づいて、動作周波数を適切に制御することにより、消費電力を削減している。
具体的には、測定温度Taが基準温度Trefよりも小さく、リーク電力PLが小さい場合、電力削減モード制御部(制御部)100は、動作周波数を低くするように制御する。これにより、アイドル電力PIが削減され、全体として消費電力を削減することができる。他方、測定温度Taが基準温度Trefより大きく、リーク電力PLが大きい場合、電力削減モード制御部(制御部)100は、動作周波数を高くするように制御する。すなわち、アクティブ状態を短時間化(シャットダウン状態を長時間化)することにより、リーク電力PLが削減され、全体として消費電力を削減することができる。
さらに、消費電力の削減に伴い、半導体装置から発生する熱も抑制することができる。そのため、チップ温度の上昇による半導体装置の熱暴走を抑制することができる。すなわち、半導体装置の信頼性も向上する。
(実施の形態2)
<実施の形態2に係る半導体装置の構成>
図13を参照して、実施の形態2に係る半導体装置であるアプリケーションプロセッサ601の構成について説明する。図13は、実施の形態2に係るアプリケーションプロセッサ601の構成例を示すブロック図である。図13に示すように、実施の形態2に係るアプリケーションプロセッサ601は、図7に示した実施の形態1に係るアプリケーションプロセッサ601の構成に加え、画像処理部IPU及び音声処理部VPUを備えている。図13において、太い矢印はデータを示し、細い矢印は各種制御信号やクロックを示している。
画像処理部IPUは、画像処理専用のプロセッサであって、例えばDSP(Digital Signal Processor)から構成される。画像処理部IPUには、クロック生成部CPGから出力される動作クロックck2が入力される。本実施の形態に係る半導体装置では、画像処理部IPUは、例えば、動画再生などの画像処理を必要とするユースケースの場合に処理を実行し、画像処理を必要としないユースケースではステータスが常時シャットダウン状態となる。
音声処理部VPUは、音声処理専用のプロセッサであって、例えばDSP(Digital Signal Processor)から構成される。音声処理部VPUには、クロック生成部CPGから出力される動作クロックck3が入力される。本実施の形態に係る半導体装置では、音声処理部VPUは、例えば、音楽再生などの音声処理を必要とするユースケースの場合に処理を実行し、音声処理を必要としないユースケースではステータスが常時シャットダウン状態となる。
電源制御部PSCは、CPUに接続された電源供給スイッチSW1のオンオフを制御する電源イネーブル信号psen1を出力する。また、電源制御部PSCは、画像処理部IPUに接続された電源供給スイッチSW2のオンオフを制御する電源イネーブル信号psen2を出力する。さらに、電源制御部PSCは、音声処理部VPUに接続された電源供給スイッチSW3のオンオフを制御する電源イネーブル信号psen3を出力する。電源供給スイッチSW1〜SW3は、例えばMOSFETから構成され、それらのゲート端子(制御端子)に電源イネーブル信号psen1〜psen3がそれぞれ入力される。
ここで、電源供給スイッチSW1のオンオフは、CPUのステートに応じて制御される。具体的には、CPUのステートがアクティブ状態又はアイドル状態の場合、電源供給スイッチSW1はオンとなる。一方、CPUのステートがシャットダウン状態の場合、電源供給スイッチSW1はオフとなる。
同様に、電源供給スイッチSW2のオンオフは、画像処理部IPUのステートに応じて制御される。具体的には、画像処理部IPUのステートがアクティブ状態又はアイドル状態の場合、電源供給スイッチSW2はオンとなる。一方、画像処理部IPUのステートがシャットダウン状態の場合、電源供給スイッチSW2はオフとなる。
同様に、電源供給スイッチSW3のオンオフは、音声処理部VPUのステートに応じて制御される。具体的には、音声処理部VPUのステートがアクティブ状態又はアイドル状態の場合、電源供給スイッチSW3はオンとなる。一方、音声処理部VPUのステートがシャットダウン状態の場合、電源供給スイッチSW3はオフとなる。
その他の構成は、実施の形態1に係る半導体装置と同様であるため、詳細な説明は省略する。
<実施の形態2に係る半導体装置の動作の詳細>
次に、図14A〜図14Eを用いて、実施の形態2に係る半導体装置の動作の詳細について説明する。図14A〜図14Eは、実際のユースケース(音楽再生及び動画再生)に則した電力削減モード制御方法の詳細を説明するためのシーケンス図である。図14A〜図14Eの左端に<1>〜<11>までの番号を示している。この番号に沿って、順に説明する。
<1>システム起動時の動作
システムが起動すると、CPUがメインルーチンを開始する。まず、図14Aに示すように、CPUが記憶部REGに対し初期化信号rstを出力し、記憶部REGに格納された各種データ(温度監視部TM及び基準温度算出部RCが備えるタイマのリミット値、計算用基礎データd1、基準アクティブサイクルac2)を初期化する。なお、起動時のチップ温度は20℃であって、起動後のユースケースは音楽再生である。
次に、CPUは、基準温度算出部RCに対し、基準温度Trefを算出するためのサブルーチン1の開始を要求する開始要求req1を出力する。また、CPUは、温度監視部TMに対し、測定温度Taを取得するためのサブルーチン2の開始を要求する開始要求req2を出力する。
<2>基準温度算出(サブルーチン1)及び測定温度取得(サブルーチン2)
サブルーチン1の開始要求req1に応じ、基準温度算出部RCは内部のタイマをリセットし、タイマ満了時にサイクル測定部CMに対し、各種測定データの測定要求req3を出力する。この測定要求req3に応じ、サイクル測定部CMは、アクティブサイクルac1及び計算用測定データd2(アイドルサイクルCI及びシャットダウン比率r)を測定する。続けて、サイクル測定部CMは、比較部取得したアクティブサイクルac1を比較部CMPへ送付する。
比較部CMPは、サイクル測定部CMから送付されたアクティブサイクルac1と記憶部REGに格納されている基準アクティブサイクルac2とを比較する。具体的には、例えばac2×0.9<ac1<ac2×1.1を満足しているか否か判定する。すなわち、アクティブサイクルac1の基準アクティブサイクルac2に対する変化が10%未満か否かを判定する。上述の通り、10%という数値はあくまでも一例である。
ここで、システム起動後最初の判定であるため、ac2×0.9<ac1<ac2×1.1を満足しない。そのため、比較部CMPは、基準温度算出部RCに対し、基準温度Trefを変更するための基準変更要求req4を出力する。この基準変更要求req4は例えばイネーブル信号であって、基準変更要求req4を出力するとは、当該イネーブル信号の値が1であることを意味する。
基準変更要求req4は、サイクル測定部CMにも入力される。基準変更要求req4に応じて、サイクル測定部CMはアクティブサイクルac1を新たな基準アクティブサイクルac2として記憶部REGへ送付する(図14Aには示されていないが、図9のステップS16に相当する)。
基準変更要求req4に応じ、基準温度算出部RCは、サイクル測定部CMに対し計算用測定データd2(アイドルサイクルCI及びシャットダウン比率r)の送付を要求する。この要求に応じて、サイクル測定部CMは、基準温度算出部RCへ計算用測定データd2を送付する。
また、基準温度算出部RCは、記憶部REGに対し計算用基礎データd1(基準温度計算式及び要素アイドル電力)の送付を要求する。この要求に応じて、記憶部REGは基準温度算出部RCへ計算用基礎データd1を送付する。
基準温度算出部RCは、記憶部REGから取得した要素アイドル電力EI[W/Hz]及びサイクル測定部CMから取得したアイドルサイクルCI[Hz]を用いて、アイドル電力PI[W]を算出する。具体的には、PI[W]=EI[W/Hz]×CI[Hz]の式からアイドル電力PI[W]を算出する。
続けて、基準温度算出部RCは、自身が算出したアイドル電力PI、サイクル測定部CMから取得したシャットダウン比率r、及び記憶部REGから取得した基準温度計算式を用いて、基準温度Trefを算出する。ここでは、Tref=63.3℃とする。基準温度算出部RCは、この算出された基準温度Trefをモード判定部MDへ送付する。
一方、サブルーチン2の開始要求req2に応じ、温度監視部TMは、内部のタイマをリセットし、タイマ満了時に温度センサTSへ温度の測定要求req5を出力する。測定要求req5に応じ、温度センサTSは測定温度Taを取得し、温度監視部TMへ送付する。ここでは、Ta=22℃である。温度監視部TMは、温度センサTSから取得した測定温度Taをモード判定部MDへ送付する。
<3>モード判定
モード判定部MDは、測定温度Taと基準温度Trefとを比較し、Ta<Trefを満たすか否かを判定する。ここで、測定温度Ta=22℃、基準温度Tref=63.3℃であるため、Ta<Trefを満たす。従って、モード判定部MDは、アイドル電力削減モードを選択する。そのため、クロック生成部CPGは、出力する動作クロックck1の周波数(CPUの動作周波数)を最大周波数fmax[Hz]からアイドル電力削減モード周波数f1[Hz]へ変更する。
<4>基準温度算出(サブルーチン1)及び測定温度取得(サブルーチン2)
次に、図14Bを参照して説明する。
基準温度算出部RCは、基準温度Trefをモード判定部MDへ送付した後、内部のタイマをリセットする。そして、基準温度算出部RCは、タイマ満了時にサイクル測定部CMに対し、各種測定データの測定要求req3を出力する。この測定要求req3に応じ、サイクル測定部CMは、アクティブサイクルac1及び計算用測定データd2(アイドルサイクルCI及びシャットダウン比率r)を測定する。続けて、サイクル測定部CMは、比較部取得したアクティブサイクルac1を比較部CMPへ送付する。
比較部CMPは、サイクル測定部CMから送付されたアクティブサイクルac1と記憶部REGに格納されている基準アクティブサイクルac2とを比較する。具体的には、例えばac2×0.9<ac1<ac2×1.1を満足しているか否か判定する。ここで、ユースケースは音楽再生のままであるため、ac2×0.9<ac1<ac2×1.1を満足する。そのため、比較部CMPは、基準温度算出部RCに対し、基準温度Trefを変更するための基準変更要求req4を出力しない。この基準変更要求req4が上記イネーブル信号であれば、基準変更要求req4を出力しないとは、当該イネーブル信号の値が0であることを意味する。
一方、温度監視部TMは、測定温度Taをモード判定部MDへ送付した後、内部のタイマをリセットし、タイマ満了時に温度センサTSへ温度の測定要求req5を出力する。測定要求req5に応じ、温度センサTSは測定温度Taを取得し、温度監視部TMへ送付する。ここでは、Ta=23℃である。温度監視部TMは、温度センサTSから取得した測定温度Taをモード判定部MDへ送付する。
<5>モード判定
モード判定部MDは、測定温度Taと基準温度Trefとを比較し、Ta<Trefを満たすか否かを判定する。ここで、測定温度Ta=23℃、基準温度Tref=63.3℃であるため、Ta<Trefを満たす。従って、モード判定部MDは、アイドル電力削減モードを選択する。ここで、CPUの動作周波数は既にアイドル電力削減モード周波数f1[Hz]である。そのため、クロック生成部CPGは出力する動作クロックck1の周波数を切り換えない。
<6>基準温度算出(サブルーチン1)及び測定温度取得(サブルーチン2)
次に、図14Cを参照して説明する。
基準温度算出部RCは、比較部CMPからの基準変更要求req4がない場合、内部のタイマをリセットする。そして、基準温度算出部RCは、タイマ満了時にサイクル測定部CMに対し、各種測定データの測定要求req3を出力する。この測定要求req3に応じ、サイクル測定部CMは、アクティブサイクルac1及び計算用測定データd2(アイドルサイクルCI及びシャットダウン比率r)を測定する。続けて、サイクル測定部CMは、比較部取得したアクティブサイクルac1を比較部CMPへ送付する。
比較部CMPは、サイクル測定部CMから送付されたアクティブサイクルac1と記憶部REGに格納されている基準アクティブサイクルac2とを比較する。具体的には、例えばac2×0.9<ac1<ac2×1.1を満足しているか否か判定する。ここで、ユースケースが音楽再生から動画再生へ変更されているため、ac2×0.9<ac1<ac2×1.1を満足しない。そのため、比較部CMPは、基準温度算出部RCに対し、基準温度Trefを変更するための基準変更要求req4を出力する。
この基準変更要求req4は、サイクル測定部CMにも入力され、この基準変更要求req4に応じて、サイクル測定部CMはアクティブサイクルac1を新たな基準アクティブサイクルac2として記憶部REGへ送付する(図14Cには示されていないが、図9のステップS16に相当する)。
基準変更要求req4に応じ、基準温度算出部RCは、サイクル測定部CMに対し計算用測定データd2(アイドルサイクルCI及びシャットダウン比率r)の送付を要求する。この要求に応じて、サイクル測定部CMは、基準温度算出部RCへ計算用測定データd2を送付する。
また、基準温度算出部RCは、記憶部REGに対し計算用基礎データd1(基準温度計算式及び要素アイドル電力)の送付を要求する。この要求に応じて、記憶部REGは基準温度算出部RCへ計算用基礎データd1を送付する。
基準温度算出部RCは、記憶部REGから取得した要素アイドル電力EI[W/Hz]及びサイクル測定部CMから取得したアイドルサイクルCI[Hz]を用いて、アイドル電力PI[W]を算出する。続けて、基準温度算出部RCは、自身が算出したアイドル電力PI、サイクル測定部CMから取得したシャットダウン比率r、及び記憶部REGから取得した基準温度計算式を用いて、基準温度Trefを算出する。ここでは、Tref=64.4℃とする。基準温度算出部RCは、この算出された基準温度Trefをモード判定部MDへ送付する。
一方、温度監視部TMは、測定温度Taをモード判定部MDへ送付した後、内部のタイマをリセットし、タイマ満了時に温度センサTSへ温度の測定要求req5を出力する。測定要求req5に応じ、温度センサTSは測定温度Taを取得し、温度監視部TMへ送付する。ここでは、Ta=44℃である。温度監視部TMは、温度センサTSから取得した測定温度Taをモード判定部MDへ送付する。
<7>モード判定
モード判定部MDは、測定温度Taと基準温度Trefとを比較し、Ta<Trefを満たすか否かを判定する。ここで、測定温度Ta=44℃、基準温度Tref=64.4℃であるため、Ta<Trefを満たす。従って、モード判定部MDは、アイドル電力削減モードを選択する。この時点において、CPUの動作周波数は、音楽再生でのアイドル電力削減モード周波数f1[Hz]である。そのため、クロック生成部CPGは、出力する動作クロックck1の周波数を動画再生でのアイドル電力削減モード周波数f2[Hz]へ切り換える。ここで、動画再生では音楽再生よりも高速動作が要求されるため、通常f1<f2である。
<8>基準温度算出(サブルーチン1)及び測定温度取得(サブルーチン2)
次に、図14Dを参照して説明する。
基準温度算出部RCは、基準温度Trefをモード判定部MDへ送付した後、内部のタイマをリセットする。そして、基準温度算出部RCは、タイマ満了時にサイクル測定部CMに対し、各種測定データの測定要求req3を出力する。この測定要求req3に応じ、サイクル測定部CMは、アクティブサイクルac1及び計算用測定データd2(アイドルサイクルCI及びシャットダウン比率r)を測定する。続けて、サイクル測定部CMは、比較部取得したアクティブサイクルac1を比較部CMPへ送付する。
比較部CMPは、サイクル測定部CMから送付されたアクティブサイクルac1と記憶部REGに格納されている基準アクティブサイクルac2とを比較する。具体的には、例えばac2×0.9<ac1<ac2×1.1を満足しているか否か判定する。ここで、ユースケースは動画再生のままであるため、ac2×0.9<ac1<ac2×1.1を満足する。そのため、比較部CMPは、基準温度算出部RCに対し、基準温度Trefを変更するための基準変更要求req4を出力しない。
一方、温度監視部TMは、測定温度Taをモード判定部MDへ送付した後、内部のタイマをリセットし、タイマ満了時に温度センサTSへ温度の測定要求req5を出力する。測定要求req5に応じ、温度センサTSは測定温度Taを取得し、温度監視部TMへ送付する。ここでは、Ta=70℃である。温度監視部TMは、温度センサTSから取得した測定温度Taをモード判定部MDへ送付する。
<9>モード判定
モード判定部MDは、測定温度Taと基準温度Trefとを比較し、Ta<Trefを満たすか否かを判定する。ここで、測定温度Ta=70℃、基準温度Tref=64.4℃であるため、Ta<Trefを満たさない。従って、モード判定部MDは、リーク電力削減モードを選択する。そのため、クロック生成部CPGは、出力する動作クロックck1の周波数をアイドル電力削減モード周波数f2[Hz]から最大周波数fmaxへ切り換える。
<10>基準温度算出(サブルーチン1)及び測定温度取得(サブルーチン2)
次に、図14Eを参照して説明する。
基準温度算出部RCは、比較部CMPからの基準変更要求req4がない場合、内部のタイマをリセットする。そして、基準温度算出部RCは、タイマ満了時にサイクル測定部CMに対し、各種測定データの測定要求req3を出力する。この測定要求req3に応じ、サイクル測定部CMは、アクティブサイクルac1及び計算用測定データd2(アイドルサイクルCI及びシャットダウン比率r)を測定する。続けて、サイクル測定部CMは、比較部取得したアクティブサイクルac1を比較部CMPへ送付する。
比較部CMPは、サイクル測定部CMから送付されたアクティブサイクルac1と記憶部REGに格納されている基準アクティブサイクルac2とを比較する。具体的には、例えばac2×0.9<ac1<ac2×1.1を満足しているか否か判定する。ここで、ユースケースは動画再生のままであるため、ac2×0.9<ac1<ac2×1.1を満足する。そのため、比較部CMPは、基準温度算出部RCに対し、基準温度Trefを変更するための基準変更要求req4を出力しない。
一方、温度監視部TMは、測定温度Taをモード判定部MDへ送付した後、内部のタイマをリセットし、タイマ満了時に温度センサTSへ温度の測定要求req5を出力する。測定要求req5に応じ、温度センサTSは測定温度Taを取得し、温度監視部TMへ送付する。ここでは、Ta=60℃である。温度監視部TMは、温度センサTSから取得した測定温度Taをモード判定部MDへ送付する。
<11>モード判定
モード判定部MDは、測定温度Taと基準温度Trefとを比較し、Ta<Trefを満たすか否かを判定する。ここで、測定温度Ta=60℃、基準温度Tref=64.4℃であるため、Ta<Trefを満たす。従って、モード判定部MDは、アイドル電力削減モードを選択する。そのため、クロック生成部CPGは、出力する動作クロックck1の周波数を最大周波数fmaxからアイドル電力削減モード周波数f2[Hz]へ切り換える。
以上説明したように、本実施の形態に係る半導体装置では、動作周波数に比例して増加するアイドル電力PIと温度上昇とともに急激に増加するリーク電力PLとのうち、いずれを削減するのが全体としての消費電力削減に寄与するのかを基準温度Trefと測定温度Taとを比較することにより判断している。そして、この比較結果に基づいて、動作周波数を適切に制御することにより、消費電力を削減している。
具体的には、測定温度Taが基準温度Trefよりも小さく、リーク電力PLが小さい場合、動作周波数を下げることによりアイドル電力PIを削減し、全体として消費電力を削減する。他方、測定温度Taが基準温度Tref以上で、リーク電力PLが大きい場合、動作周波数を上げ、アクティブ状態を短時間化する(シャットダウン状態を長時間化する)ことにより、リーク電力PLを削減し、全体として消費電力を削減する。
さらに、消費電力の削減に伴い、半導体装置から発生する熱も抑制することができる。そのため、チップ温度の上昇による半導体装置の熱暴走を抑制することができる。すなわち、半導体装置の信頼性も向上する。
(実施の形態3)
<電力削減モード制御方法(メインルーチン)>
次に、図15を参照して、実施の形態3に係る半導体装置における電力削減モード制御方法(メインルーチン)について説明する。図15は、実施の形態3に係る電力削減モード制御方法(メインルーチン)を説明するためのフローチャートである。実施の形態3に係る半導体装置の構成は、図7に示した実施の形態1に係る半導体装置と同様であるが、モード判定部MDにおける判定方法が異なる。
図15におけるステップS1〜S5は、図8におけるステップS1〜S5と同じであるため、説明を省略する。
ステップS5の後、モード判定部MDは、測定温度Taと下限基準温度(第1の基準温度)=Tref×0.8とを比較し、Ta<Tref×0.8を満たすか否かを判定する(ステップS61)。Ta<Tref×0.8を満たす場合(ステップS61YES)、モード判定部MDはアイドル電力削減モードを選択し、クロック生成部CPGはCPUの動作クロックck1の周波数を低く設定する(ステップS7)。例えば、処理に支障をきたさずにCPUが動作可能な最低の周波数に設定する。その後、ステップS4に戻り、モード判定を繰り返す。
一方、Ta<Tref×0.8を満たさない場合(ステップS61NO)、モード判定部MDは、測定温度Taと上限基準温度(第2の基準温度)=Tref×1.2とを比較し、Ta>Tref×1.2を満たすか否かを判定する(ステップS62)。Ta>Tref×1.2を満たす場合(ステップS62YES)、モード判定部MDはリーク電力削減モードを選択し、クロック生成部CPGはCPUの動作クロックck1の周波数を高く設定する(ステップS8)。例えば、CPUが動作可能な最高周波数に設定する。その後、ステップS4に戻り、モード判定を繰り返す。
一方、Ta>Tref×1.2を満たさない場合(ステップS62NO)、モード判定部MDはいずれのモードも選択せず、クロック生成部CPGはCPUの動作クロックck1の周波数を変更しない。つまり、そのままステップS4に戻り、モード判定を繰り返す。
すなわち、モード判定部MDは、測定温度Taが上限基準温度(図15ではTref×1.2)を超えた場合に、リーク電力削減モードを選択し、測定温度Taが下限基準温度(図15ではTref×0.8)を下回った場合に、アイドル電力削減モードを選択する。他方、測定温度Taが下限基準温度以上、上限基準温度以下(図15ではTref×0.8≦Ta≦Tref×1.2)であれば、いずれのモードも選択しない。すなわち、クロック生成部CPGは動作周波数を変更しない。
なお、図15の例では、上限基準温度=Tref×1.2、下限基準温度=Tref×0.8であるが、上限基準温度及び下限基準温度は適宜決定することができる。また、図15の例では、上限基準温度及び下限基準温度を基準温度Trefから決定しているが、別々に決定してもよい。また、当然のことながら、ステップS61、S62については、いずれを先に実行してもかまわない。
図16Aは、実施の形態3の実施例に係る半導体装置の温度上昇時における消費電力の温度依存性を説明するためのグラフである。横軸が温度[℃]、縦軸が消費電力[mW]であり、実施例の消費電力が実線で示されている。また、図16Aには、比較例に係る半導体装置の消費電力も破線で示されている(図12の比較例に同じ)。
図16Aでは、実施例において、下限基準温度Tref×0.8よりも温度が低い場合、動作周波数を下げ、上限基準温度Tref×1.2よりも温度が高い場合、動作周波数を上げるように制御している。図16Aに示すように、温度上昇時には、上限基準温度以下の温度域では低い動作周波数であって、上限基準温度を超えると高い動作周波数へ切り換わる。そのため、基準温度Trefから上限基準温度Tref×1.2までの間では比較例と同程度の消費電力となる。但し、この温度域では比較例の消費電力もさほど高くなく、全体として実施の形態1とほぼ同様に比較例よりも消費電力が小さくなる。
図16Bは、実施の形態3の実施例に係る半導体装置の温度降下時における消費電力の温度依存性を説明するためのグラフである。横軸が温度[℃]、縦軸が消費電力[mW]であり、実施例の消費電力が実線で示されている。また、図16Bにも、比較例に係る半導体装置の消費電力も破線で示されている(図12の比較例に同じ)。
図16Bでも、実施例において、下限基準温度Tref×0.8よりも温度が低い場合、動作周波数を下げ、上限基準温度Tref×1.2よりも温度が高い場合、動作周波数を上げるように制御している。図16Bに示すように、温度降下時には、下限基準温度以上の温度域では高い動作周波数であって、下限基準温度を下回ると低い動作周波数へ切り換わる。そのため、基準温度Trefから下限基準温度Tref×0.8までの間では比較例と同程度の消費電力となる。但し、この温度域では比較例の消費電力もさほど高くなく、全体として実施の形態1とほぼ同様に比較例よりも消費電力が小さくなる。
このように、実施の形態3に係る半導体装置では、実施の形態1に係る半導体装置に比べ、動作周波数の切換回数を減らすことにより、半導体装置の動作を安定させつつ、効果的に消費電力を低減することができる。
<変更例等>
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
例えば、基準温度Trefと測定温度Taとの比較結果に基づいて、動作周波数を変更することに加え、動作電圧も変更するようにしてもよい。