IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

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

<>
  • 特許-半導体装置、温度制御装置、及び方法 図1
  • 特許-半導体装置、温度制御装置、及び方法 図2
  • 特許-半導体装置、温度制御装置、及び方法 図3
  • 特許-半導体装置、温度制御装置、及び方法 図4
  • 特許-半導体装置、温度制御装置、及び方法 図5
  • 特許-半導体装置、温度制御装置、及び方法 図6
  • 特許-半導体装置、温度制御装置、及び方法 図7
  • 特許-半導体装置、温度制御装置、及び方法 図8
  • 特許-半導体装置、温度制御装置、及び方法 図9
  • 特許-半導体装置、温度制御装置、及び方法 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-26
(45)【発行日】2022-10-04
(54)【発明の名称】半導体装置、温度制御装置、及び方法
(51)【国際特許分類】
   G06F 1/324 20190101AFI20220927BHJP
   G06F 1/20 20060101ALI20220927BHJP
   G06F 1/26 20060101ALI20220927BHJP
   G06F 1/3206 20190101ALI20220927BHJP
   G06F 15/16 20060101ALI20220927BHJP
【FI】
G06F1/324
G06F1/20 D
G06F1/26
G06F1/3206
G06F15/16
【請求項の数】 12
(21)【出願番号】P 2018242604
(22)【出願日】2018-12-26
(65)【公開番号】P2020106918
(43)【公開日】2020-07-09
【審査請求日】2021-06-11
(73)【特許権者】
【識別番号】302062931
【氏名又は名称】ルネサスエレクトロニクス株式会社
(74)【代理人】
【識別番号】100103894
【弁理士】
【氏名又は名称】家入 健
(72)【発明者】
【氏名】五味 賢彦
(72)【発明者】
【氏名】稲見 岳
(72)【発明者】
【氏名】長澤 龍
【審査官】豊田 真弓
(56)【参考文献】
【文献】特開2008-097280(JP,A)
【文献】特開2018-106591(JP,A)
【文献】特開2011-100277(JP,A)
【文献】特開2001-067149(JP,A)
【文献】特開2008-026948(JP,A)
【文献】米国特許出願公開第2004/0128100(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 1/324
G06F 1/20
G06F 1/26
G06F 1/3206
(57)【特許請求の範囲】
【請求項1】
アプリケーションの実行が可能な複数のCPU(Central Processing Unit)コアを含むCPUと、
温度情報を取得し、取得した温度情報が示す温度が予め設定されたしきい値以上であるか否かを判定する温度判定部と、
前記温度情報が示す温度が前記しきい値以上であると判定された場合、前記CPUに対して発熱制御を行い、前記CPUにおける発熱量を制御する発熱制御部と、
前記CPUにおいて第1優先度のアプリケーションの実行が割り当てられる第1グループのCPUコアを指定する第1グループ情報と、前記CPUにおいて前記第1優先度より優先度が低い第2優先度のアプリケーションの実行が割り当てられる第2グループのCPUコアを指定する第2グループ情報とを含むグループデータに基づいて、前記第2グループのCPUコアの中から、前記発熱制御の対象のCPUコアを決定する制御対象決定部と
前記温度情報が示す温度に応じて、前記グループデータと、前記CPUで実行されている前記第1優先度のアプリケーションの数とに基づいて、前記第2グループのCPUコアの数を制御するグループ範囲制御部とを備える半導体装置。
【請求項2】
前記しきい値は、第1のしきい値と、該第1のしきい値よりも値が大きい第2のしきい値とを含み、
前記発熱制御部は、前記温度情報が示す温度が前記第1のしきい値以上でかつ前記第2のしきい値よりも低い場合、第1の発熱制御を行う請求項1に記載の半導体装置。
【請求項3】
前記発熱制御部は、前記温度情報が示す温度が前記第2のしきい値以上の場合、前記第1の発熱制御よりも発熱量の削減量が大きい第2の発熱制御を行う請求項2に記載の半導体装置。
【請求項4】
前記発熱制御部は、前記複数のCPUコアのそれぞれに供給されるクロック信号の周波数を制御するクロック制御部、及び前記複数のCPUコアのそれぞれへの電源供給を制御する電源制御部の少なくとも一方を含む請求項1に記載の半導体装置。
【請求項5】
前記発熱制御部は、前記複数のCPUコアのそれぞれに供給されるクロック信号の周波数を制御するクロック制御部、及び前記複数のCPUコアのそれぞれへの電源供給を制御する電源制御部を含み、前記第1の発熱制御では、前記クロック制御部が前記第2グループのCPUコアの少なくとも1つの供給されるクロック信号の周波数を、前記発熱制御が実施される前に比べて低下させ、前記第2の発熱制御では、前記電源制御部が前記第2グループのCPUコアの少なくとも1つに供給される電源を遮断する請求項3に記載の半導体装置。
【請求項6】
前記グループデータに基づいて、前記第1優先度のアプリケーションの実行を第1グループのCPUコアの何れかに割り当て、前記第2優先度のアプリケーションの実行を第2グループのCPUコアの何れかに割り当てるアプリケーション割り付け部を更に有する請求項1に記載の半導体装置。
【請求項7】
前記グループ範囲制御部は、前記第1グループのCPUコアの数と、前記CPUで実行されている第1優先度のアプリケーションの数とを比較し、該比較の結果に基づいて、前記第2グループのCPUコアの数を制御する請求項に記載の半導体装置。
【請求項8】
前記グループ範囲制御部は、前記第1グループのCPUコアの数が、前記CPUで実行されている第1優先度のアプリケーションの数より多い場合、前記第2グループのCPUコアの数を、前記第1グループのCPUコアの数が前記CPUで実行されている第1優先度のアプリケーションの数以下の場合に比べて増加させる請求項に記載の半導体装置。
【請求項9】
前記グループ範囲制御部は、前記第1グループ情報で指定される第1グループのCPUコアの少なくとも一部を、前記第2グループ情報で指定される第2グループのCPUコアの一部と重複させることで、前記第2グループのCPUコアの数を増加させる請求項に記載の半導体装置。
【請求項10】
前記温度情報が示す温度が予め設定された温度より低い場合、前記第1グループ情報で指定される第1グループのCPUコアと、前記第2グループ情報で指定される第2グループのCPUコアとの少なくとも一部は重複しており、前記グループ範囲制御部は、前記温度情報が示す温度が所定の温度以上の場合に、前記第2グループのCPUコアの数を制御する請求項に記載の半導体装置。
【請求項11】
アプリケーションの実行が可能な複数のCPU(Central Processing Unit)コアを含むCPUを含む制御対象装置の温度情報を取得し、取得した温度情報が示す温度が予め設定されたしきい値以上であるか否かを判定する温度判定部と、
前記温度情報が示す温度が前記しきい値以上であると判定された場合、前記CPUに対して発熱制御を行い、前記CPUにおける発熱量を制御する発熱制御部と、
前記CPUにおいて第1優先度のアプリケーションの実行が割り当てられる第1グループのCPUコアを指定する第1グループ情報と、前記CPUにおいて前記第1優先度より優先度が低い第2優先度のアプリケーションの実行が割り当てられる第2グループのCPUコアを指定する第2グループ情報とを含むグループデータに基づいて、前記第2グループのCPUコアの中から、前記発熱制御の対象のCPUコアを決定する制御対象決定部と
前記温度情報が示す温度に応じて、前記グループデータと、前記CPUで実行されている前記第1優先度のアプリケーションの数とに基づいて、前記第2グループのCPUコアの数を制御するグループ範囲制御部とを備える温度制御装置。
【請求項12】
アプリケーションの実行が可能な複数のCPU(Central Processing Unit)コアを含むCPUを含む制御対象装置の温度情報を取得し、
前記取得した温度情報が示す温度が予め設定されたしきい値以上であるか否かを判定し、
前記温度情報が示す温度が前記しきい値以上であると判定された場合、前記CPUにおいて第1優先度のアプリケーションの実行が割り当てられる第1グループのCPUコアを指定する第1グループ情報と、前記CPUにおいて前記第1優先度より優先度が低い第2優先度のアプリケーションの実行が割り当てられる第2グループのCPUコアを指定する第2グループ情報とを含むグループデータに基づいて、前記第2グループのCPUコアの中から、発熱制御の対象とするCPUコアを決定し、
前記温度情報が示す温度に応じて、前記グループデータと、前記CPUで実行されている前記第1優先度のアプリケーションの数とに基づいて、前記第2グループのCPUコアの数を制御し、
前記温度情報が示す温度が前記しきい値以上であると判定された場合、前記CPUに対して発熱制御を行うことで、前記CPUにおける発熱量を制御する温度制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は半導体装置、温度制御装置、及び方法に関し、例えばアプリケーションを実行するプロセッサを含む半導体装置、並びにそのような半導体装置における温度制御装置及び方法に関する。
【背景技術】
【0002】
関連技術として、非特許文献1は、制御対象の発熱制御に用いられるIPA(Intelligent Power Allocation)を開示する。IPAは、ARM社が開発した発熱制御フレームワークである。IPAは、任意に設定した温度センサから温度情報を取得し、IPAの制御対象である複数のモジュールに対して利用可能な消費電力を求め、クロックを調整して発熱制御を行う。
【0003】
より詳細には、IPAは、温度センサから取得した温度情報に基づいて、温度があらかじめ設定されたターゲット温度で飽和するように、PID(Proportional-Integral-Differential)制御で利用可能な消費電力を算出し、制御対象のモジュールに対して利用可能な消費電力を任意の固定係数に基づいて分配する(非特許文献1の2.2.4章を参照)。IPAは、分配された消費電力を、利用可能な周波数があらかじめ登録された対応表と比較することで周波数を決定する。IPAでは、周波数を下げることでダイナミック電力を削減することができ、発熱制御を行うことができる。
【0004】
別の関連技術として、特許文献1は、コンピュータシステムの発熱を効率良く制御する発熱制御装置を開示する。特許文献1に記載の発熱制御装置は、コンピュータシステムのハードウェアにおける、発熱状態の制御対象となる対象部位の発熱状態を取得する。発熱制御装置は、取得した発熱状態に応じて、その発熱状態を変化させるように、動作中のアプリケーションの動作内容を変更する。ここで、「アプリケーションの動作内容を変更する」とは、アプリケーションを直接操作して、アプリケーションが必要とするハードウェアの処理能力が変化するようにその動作内容を変更することを意味する。
【0005】
発熱制御装置は、例えば通常モードで動作中のアプリケーションの動作モードを、通常モードが必要とする処理速度より低い処理速度を要求する低速にモードに変更する。または、発熱制御装置は、アプリケーションの主となる機能部分を通常モードのままにし、他の機能の処理モードを低速モードに変更する。特許文献1には、アプリケーションが実現する機能ごとに優先度を付与し、動作中のアプリケーションに対して、優先度が低い機能ほど、その機能を実現する部分の動作を抑制することも記載されている。さらに、特許文献1には、アプリケーションの動作内容の変更と、プロセッサの動作周波数の調整などのハードウェアの動作調整とを併用して、対象部位の発熱状態を制御することも記載されている。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2007-109085号公報
【非特許文献】
【0007】
【文献】Xin Wang, "Intelligent Power Allocation Maximize performance in the thermal envelope", March 2017, http://infocenter.arm.com/help/topic/com.arm.doc.dto0052a/DTO0052A_intelligent_power_allocation_white_paper.pdf
【発明の概要】
【発明が解決しようとする課題】
【0008】
非特許文献1に記載のIPAでは、発熱状況に応じて、あらかじめ設定された固定係数に従って、対象モジュールの発熱制御(性能低下)が実施される。この方法は、発熱は抑制できる一方で、対象モジュール上で実行されている機能の全てで性能が低下する。例えば、対象モジュール上で実行されている機能が、対象モジュールが搭載される車両の運転者の安全に関する機能や、ユーザーエクスペリエンスに関する機能であっても、性能が低下する。これら機能の性能が低下すると、運転者の安全やユーザーエクスペリエンスが損なわれる。
【0009】
具体例として、車載システムにおいてDMS(Driver Monitoring System)機能とメータークラスター機能とが同時に動作していた場合を考える。ここで、メータークラスター機能とは、運転に必要な各種メータを集合させたユニットであるメータクラスを動作させる機能を指す。非特許文献1に記載のIPAでは、運転中に発熱制御が実施されると、重要度が低いDMSのみならず、メータークラスター機能まで性能が低下することとなり、運転に支障をきたす可能性がある。
【0010】
一方、特許文献1に記載の発熱制御装置では、優先度に応じて、低優先の機能の動作を抑制することができる。しかしながら、特許文献1では、例えばメインプロセッサの温度がしきい値を超えた場合、メインプロセッサ上で動作するアプリケーションの動作内容の変更と、メインプロセッサの動作周波数の調整とが行われる。この場合、仮に、メインプロセッサ上で動作するアプリケーションの動作内容の変更において、高優先の機能の動作内容が変更されなかったとしても、メインプロセッサの動作周波数が低下した場合には、高優先の機能の性能低下は避けられない。
【0011】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0012】
一実施の形態によれば、半導体装置は、複数のCPU(Central Processing Unit)コアを含むCPUに対して発熱制御を行う発熱制御部と、発熱制御の対象を決定する制御対象決定部とを有する。制御対象決定部は、低優先のアプリケーションの実行が割り当てられるCPUコアの中から、発熱制御の対象を決定する。
【発明の効果】
【0013】
前記一実施の形態によれば、発熱制御装置は、特定のアプリケーションの実行性能を保ちつつ、CPUの発熱量を低下させることができる。
【図面の簡単な説明】
【0014】
図1】実施形態1に係る半導体装置のハードウェア構成を示すブロック図。
図2】半導体装置の発熱制御に関わる部分を示す機能ブロック図。
図3】(a)は、高優先グループ情報の一例を示し、(b)は低優先グループ情報の一例を示す図。
図4】(a)及び(b)は、それぞれ各優先度のアプリケーションと実行が割り当てられるCPUコアとの関係を示す模式図。
図5】発熱制御の動作手順を示すフローチャート。
図6】動作例を示す模式図。
図7】実施形態2に係る半導体装置を示すブロック図。
図8】グループ範囲の制御に関わる動作手順を示すフローチャート。
図9】(a)及び(b)はそれぞれ高優先グループ情報及び低優先グループ情報を示す図、(c)は、各グループにおけるアプリケーションと実行が割り当てられるCPUコアとの関係を示す模式図。
図10】(a)~(c)は、それぞれ、アプリケーションとその実行が割り当てられるCPUコアとの関係を示す模式図。
【発明を実施するための形態】
【0015】
以下、図面を参照しつつ、上記課題を解決するための手段を適用した実施形態を詳細に説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、CPU、メモリ、又はその他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、又はそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、何れかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【0016】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスク)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)CD-R、CD-R/W、及び半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0017】
以下の実施の形態においては便宜上その必要があるときは、複数のセクション又は実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部又は全部の変形例、応用例、詳細説明、又は補足説明等の関係にある。また、以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
【0018】
さらに、以下の実施の形態において、その構成要素(動作ステップ等も含む)は、特に明示した場合及び原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。同様に、以下の実施の形態において、構成要素等の形状、又は位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数等(個数、数値、量、範囲等を含む)についても同様である。
【0019】
[実施形態1]
図1は、実施形態1に係る半導体装置のハードウェア構成を示す。半導体装置(半導体集積回路装置)10は、CPU11、ROM12、RAM13、周辺回路14、及びバス16を有する。半導体装置10は、例えばマルチコアプロセッサを含むマイクロコンピュータユニット(MCU:Micro Computer Unit)として構成されている。半導体装置10は、例えば、自動車などの車両に搭載される。半導体装置10は、車両において、例えばDSM(Driver Status Monitor)、メータークラスターなどに用いられる。半導体装置10は、発熱制御を実施するシステムとして構成されていればよく、半導体装置10の用途は、特定の用途には限定されない。
【0020】
CPU11は、半導体装置10において処理実行部を構成し、タスクの一例として各種アプリケーションプログラムを実行する。CPU11は、複数のCPUコアを含む。CPU11は、動作条件が可変に構成されている。CPU11は、例えば、動作するCPUコアの数が可変に構成される。また、CPU11は、各CPUコアの動作周波数が可変に構成される。CPU11において、動作するCPUコアの数、及び各CPUコアの動作周波数の少なくとも一方を制御することで、CPU11における発熱を制御できる。
【0021】
ROM12は、例えばフラッシュメモリなどの不揮発性メモリである。ROM12は、CPU11によって実行されるプログラムなどを格納する。CPU11は、ROM12から読み出したアプリケーションプログラム(以下、アプリケーションとも呼ぶ。また、アプリケーションをタスクと言い換えることもできる。)を実行して各種処理を実行する。ROMに格納されるプログラムは、CPU11の発熱制御を実施するためのプログラムを含む。RAM13は、各種データを格納する揮発性のメモリである。
【0022】
周辺回路14は、半導体装置10に内蔵される各種周辺回路を含む。周辺回路14は、例えば温度を測定するための温度センサ(THS:thermal sensor)15を含む。温度センサ15は、例えば温度に依存して出力電圧を変化させる抵抗素子を含む。あるいは、温度センサ15は、温度に依存した周期で発振するリングオシレータなどの発振器を含む。温度センサ15には、種々のタイプの温度センサを用いることができ、温度センサ15のタイプは特に限定されない。半導体装置10において、RAM13及び周辺回路14などは、バス16を介してCPU11に接続される。
【0023】
半導体装置10は、外部に配置された外部周辺回路及び他デバイスとの間で信号の入出力を行う図示しない入出力ポートを有していてもよい。上記では、温度センサ15が、半導体装置10の内部の周辺回路14に含まれる例を示したが、温度センサ15は、半導体装置10に内蔵されるものには限定されない。温度センサ15を外部周辺回路に配置し、温度センサ15が出力する信号を、入出力ポートを通じて半導体装置10に入力することとしてもよい。
【0024】
ここで、近年、半導体装置において、大容量化、高性能化、低コスト化、及びユーザーエクスペリエンスの充実などの市場ニーズに応えるため、半導体プロセスは急速に加速している。また、半導体装置は、高性能かつ大電力のハードウェアモジュールを複数備えた大規模SoC(System-on-a-chip)化しており、発熱対策への重要性は増している。しかしながら、発熱制御が必要になったとしても、例えば車載分野において、発熱制御を行うことで、運転者の安全に関わる機能が制限され、或いは、ユーザーエクスペリエンスが大幅に損なわれることは好ましくない。本実施形態は、そのような機能の性能は維持しつつ、細やかな発熱制御を行うことを可能とする仕組みを提供する。
【0025】
図2は、半導体装置10の発熱制御に関わる部分の機能ブロックを示す。半導体装置10は、温度判定部21、制御対象決定部22、発熱制御部23、及びアプリケーション割り付け部(App割り付け部)26の機能を有する。また、半導体装置10は、ハードウェア構成として、図1に示される構成要素に加えて、クロックパルス生成器(CPG:clock pulse generator)17と、システムコントローラ(SYSC:system controller)18とを有する。以下では、主に、CPU11が、CPUコア11a~11d(CPU0~3)の4つのCPUコアを有する例について説明する。
【0026】
半導体装置10において、温度判定部21、制御対象決定部22、発熱制御部23、及びApp割り付け部26の各機能は、例えばソフトウェアで実現される。別の言い方をすれば、温度判定部21、制御対象決定部22、発熱制御部23、及びApp割り付け部26の各機能は、例えばCPU11がROM12(図1を参照)から読み出したプログラムに従って動作することで実現される。例えば、制御対象決定部22の機能は、OS(operating system)上で動作可能なドライバなどに組み込むことで実現され得る。半導体装置10において、温度判定部21、制御対象決定部22、及び発熱制御部23の部分は、制御対象であるCPU11の温度を制御する温度制御装置を構成する。
【0027】
温度判定部21は、温度センサ15に接続されており、温度センサ15を用いて測定された温度を監視する。温度判定部21は、温度センサ15を用いて測定された温度に基づいて、CPU11に対する発熱制御を実施する状態か否かを判定する。温度判定部21は、例えば温度センサ15を用いて測定された温度を予め設定されたしきい値と比較し、温度がしきい値以上の場合、発熱制御を実施する状態であると判定する。
【0028】
発熱制御部23は、温度判定部21において温度がしきい値以上であると判定された場合、CPU11に対して発熱制御を行い、CPU11における発熱量を制御する。発熱制御部23は、発熱制御では、CPU11の動作条件を変更することで、CPU11における発熱量を制御する。
【0029】
発熱制御部23は、電源制御部24とクロック制御部25とを含む。電源制御部24は、システムコントローラ18を通じて、CPU11に含まれる複数のCPUコア11a~11dそれぞれに供給される電源を制御する。電源制御部24は、4つのCPUコア11a~11dのうち、動作させるCPUコアに対して電源供給を行い、動作させないCPUコアの電源は遮断させる。
【0030】
クロック制御部25は、クロックパルス生成器17を通じて、CPUコア11a~11dのそれぞれに供給されるクロック信号の周波数を制御することで、CPUコア11a~11dの動作周波数を制御する。クロック制御部25は、4つのCPUコア11a~11dのうち、電源制御部24が電源を供給するCPUコアに対して、決定された動作周波数のクロック信号を供給する。電源制御部24が電源供給を行うCPUコアの数、及びクロック制御部25がCPUコアに対して供給するクロック信号の周波数を制御することで、CPU11における発熱状態が制御される。
【0031】
温度判定部21において発熱制御を実施する状態か否かを判定するためのしきい値は、複数段階のしきい値を含んでいてもよい。例えば、しきい値は、第1段階のしきい値と、それよりも温度が高い第2段階のしきい値とを含む。温度判定部21は、測定された温度が、第1段階のしきい値よりも低い場合は、発熱制御が必要ない低温状態と判定する。温度判定部21は、測定された温度が第1段階のしきい値以上で、かつ第2段階のしきい値よりも低い場合は、第1段階の発熱制御を実施する状態である中温状態と判定する。温度判定部21は、測定された温度が第2段階のしきい値以上の場合は、第2段階の発熱制御を実施する状態である高温状態と判定する。なお、しきい値の段数は特に2段には限定されず、しきい値は、3以上の段階のしきい値を含んでいてもよい。
【0032】
発熱制御部23は、温度判定部21が低温状態と判定した場合、CPU11の発熱制御を実施しない。発熱制御部23は、温度判定部21が中温状態と判定した場合、第1段階の発熱制御を実施する。発熱制御部23は、第1段階の発熱制御では、例えばクロック制御部25を用い、特定のCPUコアの動作周波数を低下させることで、CPU11の発熱量を低減させる。発熱制御部23は、温度判定部が高温状態と判定した場合、第2段階の発熱制御を実施する。第2段階の発熱制御は、第1段階の発熱制御にくらべて発熱量の削減量が大きい。発熱制御部23は、第2段階の発熱制御では、例えば、第1段階の発熱制御に加えて、電源制御部24を更に用いて、特定のCPUコアへの電源供給を遮断することで、CPU11の発熱量を更に低減させる。なお、発熱制御部23が行う発熱制御は、クロック制御及び電源制御には特に限定されない。発熱制御部23は、例えばCPUコアに供給される電圧の大きさを制御することでCPUコアにおける消費電力を制御し、CPU11における発熱量を制御してもよい。
【0033】
ここで、CPU11において実行されるアプリケーションは、機能の重要度などに応じて優先度が設定される。優先度は、例えばユースケースに応じて設定される。例えば、DSMなど、車両の運転において一時的に機能が停止したとしても大きな問題が生じないアプリケーションの優先度は低優先に設定される。一方、メータークラスター機能など、機能が停止すると車両の運転に支障がある機能のアプリケーションの優先度は高優先に設定される。
【0034】
グループデータは、各優先度のアプリケーションと、その実行が割り当てられるCPUコアとの対応関係を保持する。本実施形態において、グループデータ28は、高優先グループ情報と低優先グループ情報とを含む。高優先グループ情報は、CPU11において高優先のアプリケーションの実行が割り当てられる高優先グループのCPUコアを指定する情報を含む。低優先グループ情報は、CPU11において低優先のアプリケーションの実行が割り当てられる低優先グループのCPUコアを指定する情報を含む。
【0035】
制御対象決定部22は、温度判定部21が中温状態又は高温状態と判定した場合、グループデータ28を用いて、発熱制御部23が制御対象とするCPUコアを決定する。制御対象決定部22は、グループデータ28において低優先グループのCPUコアとして指定されているCPUコアの少なくとも1つを、発熱制御の対象のCPUコアとして決定する。発熱制御部23は、制御対象として決定されたCPUコアの動作周波数、又はCPUコアへの電源供給の少なくとも一方を制御することで、CPU11における発熱量を低減させる。
【0036】
App割り付け部26は、アプリケーションの実行時に、グループデータ28に基づいて、アプリケーションの実行を割り当てるCPUコアを決定する。App割り付け部26は、高優先のアプリケーションの実行を高優先グループのCPUコアの何れかに割り当てる。一方、App割り付け部26は、低優先のアプリケーションの実行を、低優先グループのCPUコアの何れかに割り当てる。このようにすることで、CPU11において、高優先及び低優先のアプリケーションを、それぞれのグループに対応するCPUコアで実行させることができる。App割り付け部26の機能は、例えば半導体装置10上で動作するLinux(登録商標)などのOSに搭載されている。
【0037】
[グループデータ]
図3(a)は、グループデータ28に含まれる高優先グループ情報の一例を示し、(b)は、グループデータ28に含まれる低優先グループ情報の一例を示す。図3(a)の例では、グループ種別「高優先」に対して、アプリケーションA、B、及びCの3つのアプリケーションが対応付けて記憶されている。また、グループ種別「高優先」に対して、アプリケーションの実行が割り当てられるCPUコアとして、CPUコア11a(CPU0)、及びCPUコア11b(CPU1)が記憶されている。
【0038】
一方、図3(b)の例では、グループ種別「低優先」に対して、アプリケーションD、E、及びFの3つのアプリケーションが対応付けて記憶されている。また、グループ種別「低優先」に対して、アプリケーションの実行が割り当てられるCPUコアとして、CPUコア11c(CPU2)、及びCPUコア11d(CPU3)が記憶されている。
【0039】
図4(a)は、高優先のアプリケーションとその実行が割り当てられるCPUコアとの関係を示し、(b)は、低優先のアプリケーションとその実行が割り当てられるCPUコアとの関係を示す。グループデータ28が、図3(a)に示される情報を高優先グループ情報として保持する場合、App割り付け部26は、アプリケーションA、B、又はCが実行されるとき、その実行を、CPUコア11a又は11bに割り当てる(図4(a)を参照)。App割り付け部26は、CPUコア11c又は11dには、アプリケーションA、B、又はCの実行を割り当てない。
【0040】
また、グループデータ28が、図3(b)に示される情報を低優先グループ情報として保持する場合、App割り付け部26は、アプリケーションD、E、又はFが実行されるとき、その実行を、CPUコア11c又は11dに割り当てる(図4(b)を参照)。App割り付け部26は、CPUコア11a又は11bには、アプリケーションD、E、又はFの実行を割り当てない。このように、グループデータ28が、図3(a)に示される情報と図3(b)に示される情報とを含む場合、高優先のアプリケーションと、低優先のアプリケーションとを、異なるCPUコア群で実行させることができる。
【0041】
[動作手順]
図5は、動作手順を示す。ユーザは、事前に、CPUコアとアプリケーションとを関連付けた高優先グループ情報及び低優先グループ情報をグループデータ28として作成する。ユーザは、例えば半導体装置10が搭載される車両の運転者の安全に関係する機能や、ユーザーエクスペリエンスに関する機能などの機能の重要度に基づいて、半導体装置10上で実行されるアプリケーションを、高優先アプリケーションと低優先アプリケーションとに分割する。ユーザは、Secure IP(Intellectual Property)やFunction Safetyに関するIPなど、IPコアの重要性に基づいて、アプリケーションを、高優先アプリケーションと低優先アプリケーションとに分割してもよい。高優先アプリケーションと低優先アプリケーションとを判断する手法は、特に上記したものには限定されない。ユーザは、グループデータ28において、それぞれ高優先アプリケーション及び低優先アプリケーションの実行が割り当てられるCPUコアを指定する。
【0042】
温度判定部21は、温度センサ15から温度情報を取得し、半導体装置10の温度を監視する(ステップA1)。温度判定部21は、温度が第1段階のしきい値(しきい値1)以上であるか否かを判定する(ステップA2)。しきい値1は例えばTj=90℃に設定されており、温度判定部21は、ステップA2では、温度センサ15から取得した温度情報が90℃以上であるか否かを判定する。
【0043】
温度判定部21は、温度がしきい値1以上の場合、温度が第2段階のしきい値(しきい値2)以上であるか否かを判定する(ステップA3)。しきい値2は例えばTj=110℃に設定されており、温度判定部21は、ステップA3では、温度センサ15から取得した温度情報が110℃以上であるか否かを判定する。温度判定部21は、ステップA3で、温度がしきい値2よりも低いと判断した場合、半導体装置10の温度は「中温」であると判定する。一方、温度判定部21は、ステップA3で温度がしきい値2以上であると判定した場合、半導体装置10の温度が「高温」であると判定する。
【0044】
制御対象決定部22は、温度判定部21が「中温」又は「高温」と判定すると、グループデータ28を参照し、低優先グループのCPUコア、つまりグループ種別「低優先」(図3(b)を参照)に対応付けられたCPUコアの全部又は一部を、発熱制御の対象として決定する。発熱制御部23は、温度判定部21が「中温」と判断した場合、低優先グループのCPUコアに対して第1段階の発熱制御(発熱制御1)を実施する(ステップA4)。例えば、低優先グループのCPUコアがCPUコア11c及び11dである場合、発熱制御部23は、CPUコア11c及び11dに対して発熱制御1を実施する。発熱制御部23は、例えば、発熱制御1では、クロック制御部25を用い、低優先グループのCPUコアに供給されるクロック周波数を低下させる。発熱制御1の実施後、処理はステップA1に戻り、温度監視が継続される。
【0045】
発熱制御部23は、ステップA3で温度判定部21が「高温」と判定した場合、低優先グループのCPUコアに対して第2段階の発熱制御(発熱制御2)を実施する(ステップA5)。発熱制御部23は、例えば、発熱制御2では、電源制御部24を用い、低優先グループのCPUコアに供給される電源を制御する。発熱制御2の実施後、処理はステップA1に戻り、温度監視が継続される。
【0046】
温度判定部21は、ステップA2で温度がしきい値1より低いと判定した、半導体装置10の温度が「低温(適温)」であると判定する。温度判定部21が「低温」と判断した場合、発熱制御部23は、発熱制御を実施しているか否かを判断する(ステップA6)。発熱制御部23は、ステップA4の発熱制御1又はステップA5の発熱制御2を実施している場合、発熱制御を解除する(ステップA7)。発熱制御の解除後、処理はステップA1に戻り、温度監視が継続される。ステップA6で発熱制御が実施中ではないと判断された場合も、処理はステップA1に戻り、温度監視が継続される。
【0047】
[動作例]
以下、動作例を説明する。図6は、動作例を示す。以下では、4つのCPUコア11a~11dは、それぞれ、500MHz、750MHz、1.0GHz、1.5GHz、1.6GHz、及び1.7GHzから選択された動作周波数で動作可能であるとする。また、各CPUコアの動作周波数は、デフォルトでは1.5GHzであるとする。さらに、グループデータ28では、グループ種別「高優先」であるグループAのグループ情報において、アプリケーションA、B、及びCと、CPUコア11a及び11bとが対応付けて記憶されているものとする。また、グループ種別「低優先」であるグループBのグループ情報において、アプリケーションD、E、及びFと、CPUコア11c及び11dとが対応付けて記憶されているものとする。
【0048】
温度判定部21は、ステップA2(図5を参照)において温度がしきい値1よりも低いと判定した場合、半導体装置10は「低温」であると判定する。「低温」の状態では、発熱制御は実施されず、グループAのアプリケーションの実行が割り当てられるCPUコア11a及び11bは、1.5GHzで動作する。グループBのアプリケーションの実行が割り当てられるCPUコア11c及び11dも、同様に1.5GHzで動作する。この場合、アプリケーションA~Fのそれぞれは、CPU11において通常の処理能力で実行される。
【0049】
温度判定部21は、ステップA2で温度がしきい値1以上であると判定し、かつステップA3で温度がしきい値2より低いと判定した場合、半導体装置10は「中温」であると判定する。発熱制御部23は、ステップA4において発熱制御1を実施し、低優先のグループBのCPUコア11c及び11dの動作周波数を、1.5GHzから750MHzに低下させる。この場合、アプリケーションD~Fは、低速に制御されたCPUコア11c及び11dで実行される。しかしながら、アプリケーションD~Fは、例えば運転者の安全やユーザーエクスペリエンスに関係しない低優先のアプリケーションであるため、動作速度が遅くなっても、大きな問題は発生しない。一方、グループAのCPUコア11a及び11bは動作周波数1.5GHzで動作し、高優先のアプリケーションA~Cは、通常の処理能力で実行される。4つのCPUコア11a~11dのうち、グループBのCPUコア11c及び11dが低速で動作することで、CPU11の発熱量を低減でき、温度が低下することが期待できる。
【0050】
温度判定部21は、ステップA3で温度がしきい値2以上であると判定した場合、半導体装置10は「高温」である判定する。この場合、発熱制御部23は、ステップA5において発熱制御2を実施し、低優先グループのCPUコア11c及び11dのうち、CPUコア11dの電源を遮断する。このとき、CPUコア11cは、低下した動作周波数750MHzで動作する。この場合、アプリケーションD~Fは、CPUコア11cのみで実行される。グループBのCPUコア11c及び11dのうちの1つをシャットダウンすることで、高温状態で実施される発熱制御2において、中温状態で実施される発熱制御1に比べて、CPU11における発熱量をより低減することができる。高温状態においても、グループAのCPUコア11a及び11bは動作周波数1.5GHzで動作し、高優先のアプリケーションA~Cは、通常の処理能力で実行される。
【0051】
温度判定部21が「低温」と判断した場合で、かつ発熱制御1又は発熱制御2が実施中の場合、発熱制御部23は、ステップA7で、発熱制御を解除する。例えば、「中温」かた「低温」に変化した場合、発熱制御部23は、ステップA7において、低優先のCPUコア11c及び11dの動作周波数を750MHzから1.5GHzに変更する。「高温」から「低温」に変換した場合、発熱制御部23は、ステップA7において、CPUコア11dへの電源供給を再開すると共に、CPUコア11c及び11dの動作周波数を750MHzから1.5GHzに変更する。このようにすることで、アプリケーションA~Fのそれぞれは、CPU11において通常の処理能力で実行される。
【0052】
[まとめ]
本実施形態では、グループデータ28は、高優先のアプリケーションの実行が割り当てられるCPUコアを指定する情報を含む高優先グループ情報と、低優先のアプリケーションの実行が割り当てられるCPUコアを指定する情報を含む低優先グループ情報とを含む。制御対象決定部22は、グループデータ28を参照し、低優先グループのCPUコアを発熱制御の対象として決定する。発熱制御部23は、温度判定部21において温度がしきい値以上であると判定された場合、低優先グループのCPUコアに対して発熱制御を行う。低優先グループのCPUコアに対して発熱制御が実施されると、低優先グループのCPUコアに実行が割り当てられる低優先のアプリケーションは機能が低下し、或いは機能が停止する。一方で、高優先グループのCPUコアに対しては発熱制御が実施されないため、高優先グループのCPUコアに実行が割り当てられる高優先のアプリケーションは、発熱制御の影響を受けない。従って、本実施形態では、高優先のアプリケーションの実行性能を保ちつつ、CPUの発熱量を低下させることができる。
【0053】
例えば、グループデータ28において、メータークラスター機能などの運転者の安全やユーザーエクスペリエンスに関係する機能のアプリケーションは高優先に設定される。また、グループデータ28において、DSM機能などの運転者の安全やユーザーエクスペリエンスに直接関係しない機能のアプリケーションの優先度は低優先に設定される。半導体装置10の温度が上昇した場合、低優先のアプリケーションの実行が割り当てられるCPUコアに対して発熱制御が実施されることで、DSM機能の性能は低下し、或いは停止する。しかしながら、DSM機能が停止したとしても、車両の運転には支障がないため、大きな問題は生じない。一方、本実施形態では、高優先のアプリケーションの実行が割り当てられるCPUコアに対しては発熱制御が実施されないため、メータークラスター機能の性能は低下しない。このように、本実施形態では、メータークラスター機能などの重要な機能の性能低下を防ぎつつ、CPU11における発熱量を低下できる。
【0054】
また、本実施形態では、温度判定部21において複数段階のしきい値を設け、発熱制御部23において複数段階の発熱制御を行う。温度が高くなるにつれて、発熱量の低下幅が大きい発熱制御を実施することで、半導体装置10の温度を効果的に低下させることができる。
【0055】
[実施形態2]
次いで、実施形態2を説明する。図7は、実施形態2に係る半導体装置を示す。本実施形態に係る半導体装置10aは、図2に示される実施形態1に係る半導体装置10の構成要素に加えて、グループ範囲制御部29を有する。グループ範囲制御部29は、グループデータ28と、CPU11で実行されている高優先のアプリケーションの数とに基づいて低優先グループのCPUコアの数を制御する。別の言い方をすると、グループ範囲制御部29は、グループデータ28と、CPU11で実行されている高優先のアプリケーションの数とに基づいて、CPU11において発熱制御の対象となるCPUコアを拡大し、又は縮小する。他の点は、実施形態1と同様でよい。
【0056】
ここで、実施形態1では、例えば高優先のアプリケーションの実行がCPUコア11a及び11b(図2を参照)に割り当てられ、低優先のアプリケーションの実行がCPUコア11c及び11dに割り当てられた場合、低優先のアプリケーションの実行がCPUコア11a及び11bに割り当てられることはなかった。従って、例えば、CPUコア11a及び11bで実行している高優先アプリケーションの数が1つで、CPUコアが1つアイドル状態であったとしても、そのアイドル状態のCPUコアを低優先のアプリケーションの実行に使用することはできなかった。本実施形態は、そのような状況を改善するための手段を提供する。
【0057】
CPU使用情報30は、各CPUコアに実行が割り当てられているアプリケーションの数を示す情報を保持する。各CPUコアに実行が割り当てられているアプリケーションの数とは、一般的なOSの機能で検出できる。グループ範囲制御部29は、CPU使用情報30を参照して、CPU11で実行されている高優先のアプリケーションの数を取得する。グループ範囲制御部29は、高優先グループのCPUコアの数と、CPU11において実行されている高優先のアプリケーションの数とを比較し、比較の結果に基づいて、低優先グループのCPUコアの数を制御する。
【0058】
本実施形態において、例えば、デフォルト状態では、グループデータ28において、高優先グループ情報で指定される高優先グループのCPUコアと、低優先グループ情報で指定される低優先グループのCPUコアとの少なくとも一部は重複している。グループ範囲制御部29は、温度センサ15から温度情報を取得する。グループ範囲制御部29は、取得した温度情報が所定の温度以上の場合、低優先グループのCPUコアの数の制御を行う。「所定の温度」は、温度判定部21が判定に用いるしきい値1、又はしきい値2と等しくてもよい。その場合、発熱制御1又は発熱制御2の実施時に、低優先グループのCPUコアの数が制御される。
【0059】
グループ範囲制御部29は、例えば、温度が所定の温度より低い状態から所定温度以上の状態に変化すると、CPU11に含まれるCPUコアを、例えば所定の比率で高優先グループのCPUコアと、低優先グループのCPUコアとに排他的に分割する。グループ範囲制御部29は、高優先グループのCPUコアの数が、CPU11において実行されている高優先アプリケーションの数よりも多い場合、低優先グループのCPUコアの数を増加させる。このとき、グループ範囲制御部29は、グループデータ28において、高優先グループ情報で指定される高優先グループのCPUコアの少なくとも一部を、低優先グループ情報で指定される低優先グループのCPUコアの一部と重複させることで、低優先グループのCPUコアの数を増加させる。グループ範囲制御部29は、低優先グループのCPUコアを増加した後、高優先グループのCPUコアの数が、実行されている高優先アプリケーションの数以下になると、低優先グループのCPUコアの数を減少させる。
【0060】
[動作手順]
以下、動作手順を説明する。なお、本実施形態における発熱制御に関わる動作手順は、図5に示される手順と同様でよい。図8は、グループ範囲の制御に関わる動作手順を示す。グループ範囲制御部29は、温度センサ15から温度情報を取得し、半導体装置10の温度を監視する(ステップB1)。グループ範囲制御部29は、温度が所定の温度以上であるか否かを判断する(ステップB2)。グループ範囲制御部29は、ステップB2では、例えば温度がTj=90℃以上であるか否かを判断する。あるいは、グループ範囲制御部29は、温度がTj=110℃以上であるか否かを判断する。ステップB2の所定の温度が、ステップA2又はA3(図5を参照)の温度しきい値と同じ場合、グループ範囲制御部29は、温度判定部21から、温度判定の結果を受け取ってもよい。
【0061】
グループ範囲制御部29は、ステップB3で温度が所定の温度以上であると判断すると、CPU使用情報30を参照して、CPU使用情報を取得する(ステップB3)。グループ範囲制御部29は、ステップB3では、例えばCPU使用情報30を参照して、CPU11において実行されている高優先アプリケーションの数を特定する。グループ範囲制御部29は、CPU11において実行されている高優先アプリケーションの数と、高優先グループのCPUコアの数とを比較し、高優先グループのCPUコアの数が、高優先アプリケーションの数以下であるか否かを判断する(ステップB4)。高優先グループのCPUコアの数が高優先アプリケーションの数以下の場合、高優先グループの各CPUコアには、少なくとも1つのアプリケーションの実行が割り当てられている。この場合、高優先グループのCPUコアには、アプリケーションの実行が割り当てられていないCPUコアは存在しない。一方、高優先グループのCPUコアの数が高優先アプリケーションの数より多い場合、高優先グループのCPUコアは、アプリケーションの実行が割り当てられていないCPUコアが少なくとも1つ含む。
【0062】
グループ範囲制御部29は、ステップB4で高優先グループのCPUコアの数が高優先アプリケーションの数以下ではないと判断した場合、グループデータ28を修正し、低優先グループの範囲を拡大する(ステップB5)。グループ範囲制御部29は、ステップB5では、高優先グループのCPUコアの数と実行されている高優先アプリケーションの数との差に応じて、低優先グループの範囲を拡大してもよい。グループ範囲制御部29は、ステップB5では、例えば、高優先グループのCPUコアのうち、アプリケーションの実行が割り当てていないCPUコアを、低優先グループ情報で指定するCPUコアに追加することで、低優先グループの範囲を拡大する。このようにすることで、高優先グループに含まれる、高優先アプリケーションの実行が割り当てられていないCPUコアに、低優先アプリケーションの実行を割り当てることができる。
【0063】
グループ範囲制御部29は、ステップB4で高優先グループのCPUコアの数が高優先アプリケーションの数以下であると判断した場合、グループデータ28を修正し、低優先グループの範囲を縮小する(ステップB6)。グループ範囲制御部29は、ステップB6では、高優先グループのCPUコアの数と実行されている高優先アプリケーションの数との差に応じて、低優先グループの範囲を拡大してもよい。グループ範囲制御部29は、ステップB6では、例えば、ステップB5で低優先グループ情報に追加されたCPUコアを低優先グループ情報から削除することで、低優先グループの範囲を縮小する。このようにすることで、高優先グループにおいて、高優先アプリケーションの実行が割り当てられるCPUコアを確保することができる。
【0064】
なお、ステップB5又はB6で、グループデータ28が修正された場合、App割り付け部26は、修正後のグループデータ28に従って、アプリケーション割り付けの変更を行う。例えば、ステップB5で低優先グループの範囲が拡大された場合、App割り付け部26は、低優先グループにおいて、1つのCPUコアで2つのアプリケーションが実行されていた場合、2つのアプリケーションのうちの一方を、拡大されたCPUコアで実行させる。反対に、ステップB6で低優先グループが縮小された場合、App割り付け部26は、縮小されるCPUコアで実行されていたアプリケーションを、低優先グループにおいて利用可能なCPUコアがある場合には、そのCPUコアで実行させる。このような機能は、Linuxなどの一般的なOSが有する機能である。
【0065】
[動作例]
以下、動作例を説明する。図9(a)は、グループデータ28に含まれる高優先グループ情報を示し、(b)はグループデータ28に含まれる低優先グループ情報を示し、(c)は、各グループにおけるアプリケーションとその実行が割り当てられるCPUコアとの関係を示す。図9(a)の例では、グループ種別「高優先」に対して、アプリケーションA、B、及びCの3つのアプリケーションが対応付けて記憶されており、それらアプリケーションの実行が割り当てられるCPUコアとして、CPUコア11a~11d(CPU0~CPU3)が記憶されている。
【0066】
また、図9(b)の例では、グループ種別「低優先」に対して、アプリケーションD、E、及びFの3つのアプリケーションが対応付けて記憶されており、それらアプリケーションの実行が割り当てられるCPUコアとして、CPUコア11a~11d(CPU0~CPU3)が記憶されている。グループデータ28は、例えばデフォルト状態において、つまり図8のステップB1で温度が所定温度に到達したと判断される前の状態において、図9(a)及び(b)に示される高優先グループ情報及び低優先グループ情報を保持する。
【0067】
上記の場合、図9(c)に示されるように、グループA(高優先グループ)に属するアプリケーションA、B、及びCの実行は、4つのCPUコア11a~11d(CPU0~CPU3)の何れかに割り当てられる。また、グループB(低優先グループ)に属するアプリケーションD、E、及びFとの実行も、4つのCPUコア11a~11d(CPU0~CPU3)の何れかに割り当てられる。このように、デフォルト状態では、CPU11において、アプリケーションの実行が割り当てられるCPUコアは高優先グループと低優先グループとで重複しており、各アプリケーションは、任意のCPUコアで実行され得る。
【0068】
図10(a)~(c)は、それぞれ、各グループにおけるアプリケーションとその実行が割り当てられるCPUコアとの関係を示す。例えば、ステップB2(図8を参照)において、半導体装置10の温度が所定の温度よりも低い温度から所定の温度以上になったと判断されたとき、図10(a)に示されるように、CPU11において、アプリケーションA、及びD~Fが実施されていたとする。グループ範囲制御部29は、温度が所定の温度より低い温度から所定の温度以上に変化した場合、暫定的に、4つのCPUコア11a~11dを2つのグループに分割し、ステップB4において、高優先グループのCPUコアの数と実行されている高優先のアプリケーションの数とを比較してもよい。例えば、CPUコア11a及び11bが高優先のアプリケーションの実行に割り当てられ、CPUコア11c及び11dが低優先のアプリケーションの実行に割り当てられたとする。その場合、高優先グループであるグループAでは、割当て可能なCPUコアの数は2で、実行中のアプリケーションの数は1となる。一方、低優先グループであるグループBでは、割当て可能なCPUコアの数は2で、実行中のアプリケーションの数は3となる。
【0069】
上記の場合、ステップB4において、高優先グループのCPUコアの数は実行中の高優先のアプリケーションの数以下ではないと判断され、グループ範囲制御部29は、ステップB5において、低優先グループの範囲を拡大する。グループ範囲制御部29は、例えば、図3(b)に示される低優先グループ情報の「割当てCPU」に、高優先グループにおいてアプリケーションの実行が割り当てられていなかったCPUコア11b(CPU1)を追加する。この場合、図10(b)に示されるように、低優先グループのCPUコアの数は3に拡大される。App割り付け部26は、低優先グループ情報が変更されると、例えば、CPUコア11c又は11dに割り当てられていたアプリケーションDの実行を、CPUコア11bに割り当てる。このようにすることで、高優先グループにおいてアイドル状態であったCPUコア11bに、低優先のアプリケーションの実行を割り当てることができ、CPUコアを有効利用できる。
【0070】
また、本実施形態において、発熱制御は低優先グループのCPUコアに対して実施されるため、図10(a)に示される状態では、高優先グループの2つのCPUコアのうちの一方が使用されていなくても、そのCPUコアを発熱制御の対象にすることができない。これに対し、図10(b)に示されるように低優先グループの範囲を拡大すると、高優先グループに属するものの、アプリケーションの実行が割り当てられていないCPUコア11bを発熱制御の対象とすることができる。例えば、発熱制御部23の電源制御部24が、CPUコア11bの電源を遮断することで、CPU11における発熱量を低下させることができる。
【0071】
仮に、図10(a)において、高優先のアプリケーションが1つも実行されていなかった場合、高優先グループであるグループAでは、割当て可能なCPUコアの数は2で、実行中のアプリケーションの数は0となる。一方、低優先グループであるグループBでは、割当て可能なCPUコアの数は2で、実行中のアプリケーションの数は3となる。その場合、グループ範囲制御部29は、ステップB5において、低優先グループのCPUコアを2つ拡大してもよい。グループ範囲制御部29は、例えば、図3(b)に示される低優先グループ情報の「割当てCPU」に、CPUコア11a及び11b(CPU0及び1)を追加する。この場合、図10(c)に示されるように、低優先グループのCPUコアの数は4つに増加し、App割り付け部26は、4つのCPUコア11a~11dに、任意に低優先のアプリケーションの実行を割り当てることができる。
【0072】
なお、本実施形態において、発熱制御部23は、低優先グループのCPUコアに対して発熱制御を実施するため、高優先グループと低優先グループとで重複するCPUコアが発熱制御の対象となった場合に、そのCPUコアにおいて高優先のアプリケーションが実行されている可能性がある。そのような場合、App割り付け部26は、発熱制御の対象となったCPUコアで実行されていた高優先のアプリケーションを、高優先グループの他のCPUコアコアで実行させればよい。発熱制御部23は、高優先グループと低優先グループとで重複するCPUコアがある場合には、低優先グループのCPUコアのうち、高優先のアプリケーションが実行されていないCPUコアに対して優先的に発熱制御を実施してもよい。
【0073】
[まとめ]
本実施形態では、グループ範囲制御部29は、高優先グループのCPUコアの数が、実行されている高優先のアプリケーションの数より多い場合、低優先グループで利用可能なCPUコアを拡大する。このようにすることで、高優先グループにおいてアプリケーションの実行が割り当てられていないCPUコアを、低優先のアプリケーションの実行に利用することができる。また、本実施形態では、高優先グループにおいて使用されていないCPUコアが低優先グループにも属することで、そのCPUコアを、発熱制御の対象にすることができる。高優先グループにおけるアイドル状態のCPUコアに対して発熱制御を実施することで、発熱量の削減幅を増やすことができる。他の効果は、実施形態1と同様である。
【0074】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【0075】
10:半導体装置
11a~11d:CPUコア
12:ROM
13:RAM
14:周辺回路
15:温度センサ
16:バス
17:クロックパルス生成器
18:システムコントローラ
21:温度判定部
22:制御対象決定部
23:発熱制御部
24:電源制御部
25:クロック制御部
26:アプリケーション割り付け部
28:グループデータ
29:グループ範囲制御部
30:CPU使用情報
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10