(57)【要約】【課題】処理能力と消費電力との双方の観点から動作条件を制御する。【解決手段】ＣＰＵ１１は、例えば複数のＣＰＵコア１１ａ〜１１ｄを含んでおり、動作条件が可変に構成される。性能テーブル２６は、ＣＰＵ１１の動作条件とＣＰＵ１１の処理能力との関係を表すテーブルである。消費電力は、ＣＰＵ１１の動作条件と消費電力との関係とを表すテーブルである。動作制御部２２は、性能テーブル２６と消費電力テーブル２７とを参照し、ＣＰＵ１１の動作条件を制御する。【選択図】図２
2018106591.tif 000002
【特許請求の範囲】
【請求項１】
動作条件が可変に構成された処理実行部と、
前記動作条件と前記処理実行部の処理能力との関係を表す性能テーブル、及び前記動作条件と消費電力との関係とを表す消費電力テーブルを参照し、前記処理実行部の動作条件を制御する動作制御部とを備える半導体装置。
【請求項２】
前記処理実行部が、動作周波数が可変に構成される複数のプロセッサを含み、前記動作条件が、前記処理実行部において動作させるプロセッサの数と、前記プロセッサの動作周波数との組み合わせを含む請求項１に記載の半導体装置。
【請求項３】
前記動作制御部は、前記性能テーブルと前記消費電力テーブルを参照して、前記処理実行部において動作させるプロセッサの数と、前記プロセッサの動作周波数とを決定する請求項２に記載の半導体装置。
【請求項４】
前記動作制御部は、前記動作させるプロセッサに対して電源供給を行う電源制御部と、前記プロセッサに前記決定した動作周波数のクロック信号を供給するクロック制御部とを含む請求項３に記載の半導体装置。
【請求項５】
性能テーブルを参照して、基準処理能力と所定の関係にある処理能力に対応する動作条件を抽出し、該抽出された動作条件が複数ある場合は、前記消費電力テーブルを参照して、前記抽出された動作条件のうち消費電力が最小の動作条件を特定し、前記処理実行部の動作条件を前記特定した動作条件に制御する請求項１に記載の半導体装置。
【請求項６】
温度を測定するための温度センサを更に有し、
前記動作制御部は、前記温度センサを用いて測定された温度に基づいて前記処理実行部の動作条件の制御を実施する請求項１に記載の半導体装置。
【請求項７】
前記動作制御部は、前記測定された温度が上限温度しきい値以上場合、前記動作条件を制御することで消費電力を低下させる請求項６に記載の半導体装置。
【請求項８】
前記動作制御部は、前記測定された温度が上限温度しきい値以上場合、前記性能テーブルを検索して、基準処理能力よりも低い処理能力のうち処理能力が最も高い処理能力に関連付けられる動作条件を抽出し、該抽出された動作条件が１つの場合は前記処理実行部の動作条件を当該動作条件に制御し、前記抽出された動作条件が複数ある場合は、前記消費電力テーブルを参照して前記抽出された複数の動作条件のうち最も消費電力が低い動作条件を特定し、前記処理実行部の動作条件を前記特定した動作条件に制御する請求項６に記載の半導体装置。
【請求項９】
前記動作制御部は、前記測定された温度が第１の上限温度しきい値以上で、かつ該第１の上限温度しきい値よりも高い第２の上限温度しきい値よりも低い場合、前記性能テーブルを検索して、基準処理能力よりも低い処理能力のうち処理能力が最も高い処理能力に関連付けられる動作条件を抽出し、前記測定された温度が前記第２の上限温度しきい値以上の場合、前記性能テーブルにおける検索範囲を、前記消費電力テーブルにおいて消費電力が基準となる消費電力に対して所定の関係を満たす動作条件に限定して、基準処理能力よりも低い処理能力のうち処理能力が最も高い処理能力に関連付けられる動作条件を抽出し、該抽出された動作条件が１つの場合は前記処理実行部の動作条件を当該動作条件に制御し、前記抽出された動作条件が複数ある場合は、前記消費電力テーブルを参照して前記抽出された複数の動作条件のうち最も消費電力が低い動作条件を特定し、前記処理実行部の動作条件を前記特定した動作条件に制御する請求項６に記載の半導体装置。
【請求項１０】
前記基準処理能力は、前記動作条件の制御の実施前の前記処理実行部の処理能力である請求項８に記載の半導体装置。
【請求項１１】
前記動作制御部は、前記測定された温度が下限温度しきい値以下場合、前記動作条件を制御することで消費電力を増加させる請求項６に記載の半導体装置。
【請求項１２】
前記動作制御部は、前記測定された温度が前記下限温度しきい値以上場合、前記性能テーブルを検索して、基準処理能力よりも高い処理能力のうち処理能力が最も低い処理能力に関連付けられる動作条件を抽出し、該抽出された動作条件が１つの場合は前記処理実行部の動作条件を当該動作条件に制御し、前記抽出された動作条件が複数ある場合は、前記消費電力テーブルを参照して前記抽出された複数の動作条件のうち最も消費電力が低い動作条件を特定し、前記処理実行部の動作条件を前記特定した動作条件に制御する請求項１１に記載の半導体装置。
【請求項１３】
前記動作制御部は、前記処理実行部におけるプロセッサの使用率に基づいて前記処理実行部の動作条件の制御を実施する請求項２に記載の半導体装置。
【請求項１４】
前記動作制御部は、前記使用率に基づいて基準処理能力を計算し、該計算した基準処理能力に基づいて前記処理実行部の動作条件の制御を実施する請求項１３に記載の半導体装置。
【請求項１５】
前記動作制御部は、前記性能テーブルを検索して、基準処理能力よりも高い処理能力のうち処理能力が最も低い処理能力に関連付けられる動作条件を抽出し、該抽出された動作条件が１つの場合は前記処理実行部の動作条件を当該動作条件に制御し、前記抽出された動作条件が複数ある場合は、前記消費電力テーブルを参照して前記抽出された複数の動作条件のうち最も消費電力が低い動作条件を特定し、前記処理実行部の動作条件を前記特定した動作条件に制御する請求項１３に記載の半導体装置。
【請求項１６】
前記温度センサを用いて測定された温度と、消費電力の計算に用いられるデータとに基づいて、前記動作条件のそれぞれに対して前記測定された温度環境下における消費電力を計算し、該計算した消費電力を前記動作条件のそれぞれと対応付けて前記消費電力テーブルに記憶するテーブル作成部を更に備える請求項６に記載の半導体装置。
【請求項１７】
動作条件が可変に構成された処理実行部の動作条件と前記処理実行部の処理能力との関係を表す性能テーブルを参照して、基準処理能力と所定の関係にある処理能力に対応する動作条件を抽出し、
該抽出された動作条件が１つの場合は、前記処理実行部の動作条件を当該動作条件に制御し、
前記抽出された動作条件が複数ある場合は、前記動作条件と消費電力との関係とを表す消費電力テーブルを参照して、前記抽出された動作条件のうち消費電力が最小の動作条件を特定し、前記処理実行部の動作条件を前記特定した動作条件に制御する動作条件制御方法。
【請求項１８】
コンピュータに、
動作条件が可変に構成された処理実行部の動作条件と前記処理実行部の処理能力との関係を表す性能テーブルを参照して、基準処理能力と所定の関係にある処理能力に対応する動作条件を抽出し、
該抽出された動作条件が１つの場合は、前記処理実行部の動作条件を当該動作条件に制御し、
前記抽出された動作条件が複数ある場合は、前記動作条件と消費電力との関係とを表す消費電力テーブルを参照して、前記抽出された動作条件のうち消費電力が最小の動作条件を特定し、前記処理実行部の動作条件を前記特定した動作条件に制御する処理を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置、動作制御方法、及びプログラムに関し、例えば動作条件が可変に構成された処理実行部を有する半導体装置、並びにそのような半導体装置における動作制御方法及びプログラムに関する。
【背景技術】
【０００２】
特許文献１は、演算処理の中断を抑制しつつ温度上昇を防止することができる半導体装置を開示する。特許文献１に記載の半導体装置は、２つのＣＰＵ（Central Processing Unit）コアを有する。２つのＣＰＵコアは発熱量が異なっており、一方のＣＰＵコアの発熱量は、他方のＣＰＵコアの発熱量よりも高い。特許文献１に記載の半導体装置では、温度センサが測定した温度がしきい値を超えると、一方のＣＰＵコアにおけるプログラムの実行が中断され、プログラムの実行の再開に必要なデータが一方のＣＰＵコアから他方のＣＰＵコアに移行され、他方のＣＰＵコアにおいてプログラムの実行が再開される。プログラムの実行の再開後、一方のＣＰＵコアへの電源供給が遮断され、ＣＰＵの温度上昇が抑制される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−３５０７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
半導体集積回路装置において、近年、大容量化、高性能化、及び低コスト化などの市場ニーズに応えるため、半導体プロセスは急速に加速している。一方で、半導体プロセスの向上に伴い、消費電力は増加傾向にあり、温度制御の重要度は増している。特許文献１では、温度がしきい値を超えると、発熱が大きい一方のＣＰＵコアの電源が遮断され、温度上昇が抑制可能である。しかし、一方のＣＰＵコアへの電源供給が遮断されると、他方のＣＰＵコアのみが動作することとなり、急激な性能劣化をもたらす可能性がある。特許文献１では、温度上昇を抑制するという観点で制御が実施されるだけであり、一方のＣＰＵコアの電源遮断に伴う性能の劣化は考慮されていないという問題があった。
【０００５】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００６】
一実施の形態によれば、半導体装置は、処理実行部の動作条件と処理能力との関係を表す性能テーブル、及び動作条件と消費電力との関係とを表す消費電力テーブルを用いて、処理実行部の動作条件を制御する動作制御部を備えるものである。
【発明の効果】
【０００７】
前記一実施の形態によれば、ある処理能力の動作を、低い消費電力で実現できる。
【図面の簡単な説明】
【０００８】
【図１】実施形態１に係る半導体装置のハードウェア構成を示すブロック図。
【図２】半導体装置における動作条件の制御に関わる部分の機能を示すブロック図。
【図３】半導体装置の消費電力の動作周波数依存性を示すグラフ。
【図４】半導体装置の消費電力の温度依存性を示すグラフ。
【図５】ＣＰＵコアにおける消費電力を示す図。
【図６】動作条件の制御の動作手順を示すフローチャート。
【図７】消費電力テーブル作成の動作手順を示すフローチャート。
【図８】実施形態２における動作条件の制御の動作手順を示すフローチャート。
【図９】半導体装置の温度変化と動作条件の制御とを示す図。
【図１０】実施形態３における動作条件の制御の動作手順を示すフローチャート。
【発明を実施するための形態】
【０００９】
以下、図面を参照しつつ、上記課題を解決するための手段を適用した実施形態を詳細に説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、ＣＰＵ（Central Processing Unit）、メモリ、又はその他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、又はそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、何れかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１０】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスク）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、及び半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００１１】
以下の実施の形態においては便宜上その必要があるときは、複数のセクション又は実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部又は全部の変形例、応用例、詳細説明、又は補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
【００１２】
さらに、以下の実施の形態において、その構成要素（動作ステップ等も含む）は、特に明示した場合及び原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。同様に、以下の実施の形態において、構成要素等の形状、又は位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数等（個数、数値、量、範囲等を含む）についても同様である。
【００１３】
［実施形態１］
図１は、実施形態１に係る半導体装置のハードウェア構成を示す。半導体装置（半導体集積回路）１０は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、周辺回路１４、及びバス１６を有する。半導体装置１０は、例えばマイクロコンピュータユニット（ＭＣＵ：Micro Computer Unit）として構成されている。半導体装置１０は、例えばスマートフォンなどの携帯型の無線通信端末に搭載される。あるいは、半導体装置１０は、携帯ゲーム端末、タブレットＰＣ（Personal Computer）、又はノートＰＣなどに搭載されていてもよい。さらに、半導体装置１０が、自動車などの車両に搭載され、車両において例えばＡＤＡＳ（Advanced Driver Assistance System：先進運転支援システム）に用いられることとしてもよい。半導体装置１０は、パワーマネージメントシステムを有するシステムとして構成されていればよく、半導体装置１０が搭載される機器は特に上記したものには限定されない。
【００１４】
ＣＰＵ１１は、半導体装置１０において処理実行部を構成し、各種処理を実行する。ＣＰＵ１１は、動作条件が可変に構成されている。ＣＰＵ１１は、例えば複数のＣＰＵコア（プロセッサ）を含み、ＣＰＵ１１において動作するＣＰＵコアの数が可変に構成される。加えて、ＣＰＵ１１は、各ＣＰＵコアの動作周波数が可変に構成される。ＣＰＵ１１は、動作させるＣＰＵコアの数とＣＰＵコアの動作周波数との組み合わせを含む動作条件に依存して変化する処理能力及び消費電力で動作する。
【００１５】
ＲＯＭ１２は、例えばフラッシュメモリなどの不揮発性メモリである。ＲＯＭ１２は、ＣＰＵ１１によって実行されるプログラムなどを格納する。ＣＰＵ１１は、ＲＯＭ１２から読み出したプログラムを実行して各種処理を実行する。ＲＯＭに格納されるプログラムは、ＣＰＵ１１の動作条件を制御するためのプログラムを含む。ＲＡＭ１３は、各種データを格納する揮発性のメモリである。
【００１６】
周辺回路１４は、半導体装置１０に内蔵される各種周辺回路を含む。周辺回路１４は、例えば温度を測定するための温度センサ１５を含む。温度センサ１５は、例えば温度に依存して出力電圧を変化させる抵抗素子を含む。あるいは、温度センサ１５は、温度に依存した周期で発振するリングオシレータなどの発振器を含む。温度センサ１５には、種々のタイプの温度センサを用いることができ、温度センサ１５のタイプは特に限定されない。半導体装置１０において、ＲＡＭ１３及び周辺回路１４などは、バス１６を介してＣＰＵ１１に接続される。
【００１７】
半導体装置１０は、外部に配置された外部周辺回路及び他デバイスとの間で信号の入出力を行う図示しない入出力ポートを有していてもよい。上記では、温度センサ１５が、半導体装置１０の内部の周辺回路１４に含まれる例を示したが、温度センサ１５は、半導体装置１０に内蔵されるものには限定されない。温度センサ１５を外部周辺回路に配置し、温度センサ１５が出力する信号を、入出力ポートを通じて半導体装置１０に入力することとしてもよい。
【００１８】
図２は、半導体装置１０における動作条件の制御に関わる部分の機能ブロックを示す。半導体装置１０は、温度判定部２１、動作制御部２２、及びテーブル作成部２５の機能を有する。以下では、主に、ＣＰＵ１１が、ＣＰＵコア１１ａ〜１１ｄの４つのＣＰＵコアを有する例について説明する。半導体装置１０において、温度判定部２１、動作制御部２２、及びテーブル作成部２５の各機能は、例えばＣＰＵ１１がＲＯＭ１２（図１を参照）から読み出したプログラムに従って動作することで実現される。
【００１９】
温度判定部２１は、温度センサ１５に接続されており、温度センサ１５を用いて測定された温度を監視する。性能テーブル２６は、ＣＰＵ１１の動作条件とＣＰＵ１１における処理能力との関係を示すテーブルである。消費電力テーブル２７は、ＣＰＵ１１の動作条件と消費電力との関係を示すテーブルである。消費電力は、動作条件が同一でも、温度に依存して変化し得る。テーブル作成部２５は、温度センサ１５を用いて測定された温度と、データ２８とに基づいて、ＣＰＵ１１の動作条件のそれぞれについて、測定された温度環境下における消費電力を計算する。テーブル作成部２５は、計算した消費電力を各動作条件と対応付けて消費電力テーブル２７に記憶する。データ２８は、半導体装置１０の消費電力の計算に必要なパラメータを含む。テーブル作成部２５は、例えば温度判定部２１において温度変化が大きいと判定された場合に、消費電力テーブル２７の作成を行う。
【００２０】
動作制御部２２は、性能テーブル２６と消費電力テーブル２７とを参照して、ＣＰＵ１１の動作条件を制御する。動作制御部２２は、動作条件の制御において、性能テーブル２６と消費電力テーブル２７とを参照して、ＣＰＵ１１において動作させるＣＰＵコアの数と、ＣＰＵコアの動作周波数とを決定する。
【００２１】
本実施形態において、動作制御部２２は、電源制御部２３とクロック制御部２４と有する。電源制御部２３は、ＣＰＵ１１に含まれる４つのＣＰＵコア１１ａ〜１１ｄのうち、動作させるＣＰＵコアに対して電源供給を行い、動作させないＣＰＵコアの電源は遮断する。クロック制御部２４は、ＣＰＵコア１１ａ〜１１ｄに供給されるクロック信号の周波数を制御することで、ＣＰＵコア１１ａ〜１１ｄの動作周波数を制御する。クロック制御部２４は、４つのＣＰＵコア１１ａ〜１１ｄのうちで動作させるＣＰＵコアに対して、決定された動作周波数のクロック信号を供給する。電源制御部２３が電源供給を行うＣＰＵコアの数、及びクロック制御部２４がＣＰＵコアに対して供給するクロック信号の周波数を制御することで、ＣＰＵ１１における動作条件が制御される。
【００２２】
温度判定部２１は、温度センサ１５を用いて測定された温度に基づいて、ＣＰＵ１１の動作条件の制御（温度制御）を実施するか否かを判定する。温度判定部２１は、例えば温度センサ１５を用いて測定された温度が、所定の温度範囲に収まっていれば、温度制御を実施しないと判定する。温度判定部２１は、測定された温度が、所定の温度範囲の上限（上限温度しきい値）以上の場合、温度制御を実施すると判定する。また、温度判定部２１は、測定された温度が所定の温度範囲の下限（下限温度しきい値）以下の場合、温度制御を実施すると判定する。
【００２３】
動作制御部２２は、温度判定部２１において温度制御を実施すると判定されると、ＣＰＵ１１の動作条件の制御を実施する。動作制御部２２は、測定された温度が上限温度しきい値以上の場合は、ＣＰＵ１１の動作条件の制御を実施し、ＣＰＵ１１の処理能力を制御前に比べて低くすることで消費電力を低下させる。消費電力を低下させることで、温度の上昇が抑制される。また、動作制御部２２は、測定された温度が下限しきい値以下の場合は、ＣＰＵ１１の動作条件の制御を実施し、処理能力を制御前に比べて増加させることで消費電力を増加させる。
【００２４】
［消費電力と処理能力の関係］
半導体装置１０における消費電力と処理能力との関係について説明する。一般的に、ＣＰＵ１１において動作させるＣＰＵコアの数が増えるほど、また動作周波数が高いほど、高い処理能力が得られる。反面、半導体装置１０において、動作させるＣＰＵコアの数が一定の場合、動作周波数が高いほど消費電力は増加する。また、半導体装置１０において、動作周波数が一定の場合、動作させるＣＰＵコアの数が増えるほど、消費電力は増加する。
【００２５】
半導体装置１０の消費電力は、大きく分けて、ダイナミック電力とリーク電力との２つの電力に分類される。ダイナミック電力は、任意の処理を行うために必要な消費電力である。一方、リーク電力は、電源を投入することで発生する消費電力である。リーク電力は、半導体装置１０において、ＣＰＵ１１に含まれる４つのＣＰＵコア１１ａ〜１１ｄに対して電源供給を行っている場合に最大となる。ＣＰＵコア１１ａ〜１１ｄのうち、使用しないＣＰＵコアに対する電源供給を停止することで、リーク電力の削減が可能である。
【００２６】
図３は、半導体装置１０の消費電力の動作周波数依存性を示す。図３に示すグラフにおいて、縦軸は消費電力を表し、横軸はＣＰＵ１１の動作周波数を表す。図３において、消費電力は、ダイナミック電力ＰＤとリーク電力ＰＬとの和で表されている。図３に示されるように、ダイナミック電力ＰＤは、動作周波数（処理量）に依存し、動作周波数が増加するに従って増加する。一方、リーク電力ＰＬは、動作周波数には依存せず、温度に変化がなければ一定である。
【００２７】
図４は、半導体装置１０の消費電力の温度依存性を示す。図４に示すグラフにおいて、縦軸は消費電力を表し、横軸は半導体装置１０の温度を表す。図４に示されるように、リーク電力ＰＬは、温度に依存し、温度が増加するに従って指数関数的に増加する。一方、ダイナミック電力ＰＤは、処理量が一定であれば、温度には依存せず一定である。
【００２８】
上記したように、ダイナミック電力は、動作周波数（処理量）に依存し、温度には依存しない。一方、リーク電力は、温度に依存し、動作周波数には依存しない。これら２つの電力の特性を、下記表１に記す。
【表１】
2018106591.tif 000003
【００２９】
図５は、ＣＰＵコアにおける消費電力を示す。図５において、縦軸は消費電力を表し、横軸は時間を表す。ＣＰＵ１１の全体の消費電力は、各ＣＰＵコアの消費電力の和となる。時刻ｔ０において、ＣＰＵコアは高周波数で動作しているとする。時刻ｔ１で、ＣＰＵコアの動作周波数が低周波数に切り替えられると、ＣＰＵコアの消費電力は、動作周波数が低下したことに伴ってダイナミック電力ＰＤが減少した分だけ減少する。このとき、リーク電力ＰＬは、温度に変化がなければ変化しない。時刻ｔ２でＣＰＵコアが動作を停止し、電源供給が停止されると、ダイナミック電力ＰＤ及びリーク電力ＰＬは０になる。
【００３０】
半導体装置１０の温度制御では、温度が高いとき、処理能力を低下させ、消費電力を削減して温度を低下させることが一般的である。半導体装置１０において、ＣＰＵ１１の動作周波数を低下させれば、ダイナミック電力が削減され、消費電力を削減することが可能である。また、ＣＰＵ１１において動作するＣＰＵコアの数を減少させ、動作していないＣＰＵコアに対する電源供給を停止することでリーク電力が削減され、消費電力を削減することが可能である。
【００３１】
例えば、ある処理能力を確保しつつ、消費電力を削減する場合に、動作させるＣＰＵコアの数を変化させずにＣＰＵ１１の動作周波数を下げて消費電力の削減を図る場合と、動作周波数は変化させずに動作させるＣＰＵコアの数を減少させて消費電力を削減する場合とが考えられる。前述のようにリーク電力は温度に対して指数関数的に変化するため、ある温度環境下では、動作周波数を下げてダイナミック電力を削減するよりも、動作させるＣＰＵコアの数を減らしてリーク電力を削減する方が、全体の消費電力を削減できる場合がある。また、別の温度環境下では、動作させるＣＰＵコアの数を減らしてリーク電力を削減するよりも、動作周波数を下げてダイナミック電力を削減する方が、全体の消費電力を削減できる場合がある。
【００３２】
本実施形態では、ＣＰＵ１１の動作条件の制御に、性能テーブル２６と消費電力テーブル２７とが用いられる。動作制御部２２は、性能テーブル２６を参照して、基準処理能力と所定の関係にある処理能力に対応する動作条件を抽出する。動作制御部２２は、抽出された動作条件が複数ある場合は、消費電力テーブル２７を参照して、抽出された動作条件のうち消費電力が最小の動作条件を特定し、ＣＰＵ１１の動作条件を特定した動作条件に制御する。動作制御部２２は、抽出された動作条件が１つの場合は、ＣＰＵ１１の動作条件をその動作条件に制御する。
【００３３】
動作制御部２２は、例えば動作条件の制御の実施前の動作条件における処理能力を基準処理能力とし、性能テーブル２６を検索して、その基準処理能力と所定の関係にある処理能力と対応付けられた動作条件を抽出する。動作制御部２２は、例えば、温度判定部２１において測定された温度が温度上限しきい値以上であると判定された場合、性能テーブル２６を検索して、基準処理能力よりも低い処理能力のうちで処理能力が最も高い処理能力、つまり基準処理能力よりも１段階低い処理能力に対応付けられる動作条件を抽出する。動作制御部２２は、例えば、温度判定部２１において測定された温度が温度下限しきい値以下であると判定された場合、性能テーブル２６を検索して、基準処理能力よりも高い処理能力のうちで処理能力が最も低い処理能力、つまり基準処理能力よりも１段階高い処理能力に対応付けられる動作条件を抽出する。動作制御部２２は、抽出された動作条件が複数ある場合は、消費電力テーブル２７を参照し、抽出された複数の動作条件のうち最も消費電力が低い動作条件を特定し、ＣＰＵ１１の動作条件を特定した動作条件に制御する。このような制御を行うことで、ＣＰＵ１１をある処理能力で動作させる場合に、消費電力が最小の動作条件でＣＰＵ１１を動作させることができる。
【００３４】
［動作手順］
図６は、動作条件の制御の動作手順を示す。温度判定部２１は、温度センサ１５が出力する信号を取得し、半導体装置１０の温度を監視する（ステップＡ１）。温度判定部２１は、温度センサ１５を用いて測定された温度が上限温度しきい値以上であるか否かを判断する（ステップＡ２）。温度判定部２１は、温度が上限温度しきい値以上であると判断した場合、動作制御部２２にその旨を通知する。動作制御部２２は、温度が上限温度しきい値以上である旨の通知を受け取ると、性能テーブル２６を検索し、現在の動作条件に対応する処理能力よりも１段階低い処理能力に対応付けられる動作条件を、制御後の動作条件の候補として抽出する（ステップＡ３）。
【００３５】
温度判定部２１は、ステップＡ２で測定された温度が上限温度しきい値よりも低いと判断した場合、測定された温度が下限温度しきい値以下であるか否かを判断する（ステップＡ４）。温度判定部２１は、温度が下限温度しきい値よりも高いと判断した場合は、ステップＡ１に戻り、温度の監視を継続する。温度判定部２１は、温度が下限温度しきい値以下であると判断した場合、動作制御部２２にその旨を通知する。動作制御部２２は、温度が下限温度しきい値以下である旨の通知を受け取ると、性能テーブル２６を検索し、現在の動作条件に対応する処理能力よりも１段階高い処理能力に対応付けられる動作条件を、制御後の動作条件の候補として抽出する（ステップＡ５）。
【００３６】
動作制御部２２は、ステップＡ３又はステップＡ５で抽出した動作条件（動作条件の候補）が複数あるか否かを判断する（ステップＡ６）。動作制御部２２は、抽出した動作条件が複数あると判断した場合、消費電力テーブル２７を参照して、抽出された複数の動作条件のそれぞれに対応付けられた消費電力を取得する。動作制御部２２は、取得した、複数の動作条件のそれぞれに対応付けられた消費電力を相互に比較し、消費電力が最小の動作条件を選択する（ステップＡ７）。
【００３７】
動作制御部２２は、ステップＡ３若しくはＡ５で抽出された動作条件、又はステップＡ７で選択された動作条件が示すＣＰＵコアの数と動作周波数との組み合わせでＣＰＵ１１が動作するように、ＣＰＵ１１の動作条件を制御する（ステップＡ８）。ステップＡ８では、電源制御部２３は、４つのＣＰＵコア１１ａ〜１１ｄのうち、例えばステップＡ７で選択された動作条件が示す数のＣＰＵコアに対して電源供給を行い、動作させないＣＰＵコアに対する電源供給を停止する。また、クロック制御部２４は、動作させるＣＰＵコアに対して、例えばステップＡ７で選択された動作条件が示す動作周波数のクロック信号を供給する。その後、処理は、ステップＡ１に戻り、温度監視が継続される。
【００３８】
図７は、消費電力テーブル作成の動作手順を示す。消費電力テーブル２７の作成は、例えば図６に示される動作条件の制御と並行して実施される。温度判定部２１は、温度センサ１５が出力する信号を取得し、半導体装置１０の温度を監視する（ステップＢ１）。温度判定部２１は、前回の測定温度に対する温度変化がしきい値以上であるか否かを判断する（ステップＢ２）。温度判定部２１は、ステップＢ２では、例えば前回の測定温度と今回の測定温度との差が所定温度差以上、例えば５℃以上である場合、温度変化がしきい値以上であると判断する。温度判定部２１は、温度変化がしきい値よりも小さいと判断した場合は、ステップＢ１に戻り、温度監視を継続する。
【００３９】
温度判定部２１は、ステップＢ２で温度変化がしきい値以上であると判断した場合、テーブル作成部２５にその旨を通知する。テーブル作成部２５は、温度変化がしきい値以上である旨の通知を受け取ると、データ２８を用いて消費電力テーブル２７を作成（更新）する（ステップＢ３）。テーブル作成部２５は、ステップＢ３では、各動作条件に対して、現在の温度環境下におけるリーク電力を計算し、計算したリーク電力と別途計算したダイナミック電力の和を、各動作条件に対する消費電力として計算する。その後、処理はステップＢ１に戻り、温度監視が継続される。このように温度変化が検出されたときに消費電力テーブルを更新することで、温度が変化し、同じ処理能力を実現する動作条件の中で消費電力が最小となる動作条件が変わった場合にも対処できる。
【００４０】
［数値例］
以下、具体的な数値例を用いて説明する。制御対象のＣＰＵ１１として、図２に示される４つのＣＰＵコア１１ａ〜１１ｄを考える。各ＣＰＵコアは、５００ＭＨｚ、１０００ＭＨｚ、１５００ＭＨｚ、及び２０００ＭＨｚから選択された周波数で動作が可能であるとする。各ＣＰＵコアの性能スペックは６ＤＭＩＰＳ（Dhrystone MIPS(million instructions per second)）／ＭＨｚであるとする。ダイナミック要素電力は、０．４６ｍＷ／ＭＨｚであり、リーク電力は半導体装置のジャンクション温度Ｔｊが９０℃のとき１５０ｍＷであるとする。また、ＳｏＣ（Silicon On Chip）耐熱規格はＴｊ≦１２５℃であるとする。上限温度しきい値は、ＳｏＣ耐熱規格よりも少し低い温度、例えば９０℃に設定される。
【００４１】
各ＣＰＵコアの動作性能［ＤＭＩＰＳ］は、ＣＰＵ性能スペック［ＤＭＩＰＳ／ＭＨｚ］と動作周波数［ＭＨｚ］の積で表される。ＣＰＵ１１の全体の処理能力は、各ＣＰＵコアの動作性能と動作させるＣＰＵコアの数の積で表される。各ＣＰＵコアの消費電力［ｍＷ］は、ダイナミック電力［ｍＷ］とリーク電力［ｍＷ］の和で表される。ＣＰＵ１１の全体の消費電力は、各ＣＰＵコアの消費電力の和で表される。
【００４２】
ダイナミック電力は、ダイナミック要素電力［ｍＷ／ＭＨｚ］と最大動作周波数［ＭＨｚ］の積で表される。リーク電力は、リーク電流と電圧との積で表される。リーク電流は、トランジスタ１個あたりのリーク電流をｉＬ、トランジスタの総数をＮ、シャットダウン率をｒとして、下記式で与えられる。
ＩＬ＝ｉＬ×Ｎ×（１−ｒ）
トランジスタ１個あたりのリーク電流をｉＬは、係数α［Ａ／ｎｍ］、ゲート幅Ｗ［ｎｍ］、しきい値電圧ＶT［Ｖ］、サブスレッショルド係数ｎ、ボルツマン定数ｋ＝１．３８×１０−２３［Ｊ／Ｋ］、絶対温度Ｔ［Ｋ］、電気素量ｑ＝１．６×１０−１９［Ｃ］を用いて、下記式で表すことができる。ここで、係数α及びサブスレッショルド係数ｎは実験などから求めることができる。
ｉＬ＝α×Ｗ×ｅｘｐ｛−ＶＴ×ｑ／（ｎ×ｋＴ）｝
【００４３】
なお、図２に示されるデータ２８には、上記したダイナミック電力及びリーク電力を計算するために必要なパラメータが含まれている。データ２８は、例えばＲＯＭ１２（図１を参照）に記憶されている。テーブル作成部２５は、データ２８に含まれるパラメータを用いて、特に温度に依存して変化するリーク電力を計算する。ダイナミック電力については、温度に依存して変化しないため、あらかじめ計算された電力がデータ２８の一部として記憶されていてもよい。テーブル作成部２５が作成した消費電力テーブル２７は、例えばＲＡＭ１３に記憶される。性能テーブル２６は、例えばＲＯＭ１２又はＲＡＭ１３に記憶される。
【００４４】
下記表２に、性能テーブルの一例を示す。
【表２】
2018106591.tif 000004
【００４５】
下記表３に、ある温度環境下における消費電力テーブルの一例を示す。
【表３】
2018106591.tif 000005
【００４６】
例えば、ある時刻において、ＣＰＵ１１の４つのＣＰＵコア１１ａ〜１１ｄの全てが動作周波数２０００ＭＨｚで動作していたとする。この場合に、図６のステップＡ２で温度が上限温度しきい値以上であると判断されると、動作制御部２２は、表２に示される性能テーブルを参照して、現在の処理能力よりも１段階下の処理能力を検索する。表２を参照すると、動作ＣＰＵコア数が４で、かつ動作周波数が２０００ＭＨｚの場合の処理能力は４８０００ＤＭＩＰＳである。動作制御部２２は、処理能力４８０００ＤＭＩＰＳより１段階低い処理能力を検索する。表２を参照すると、１段階低い処理能力は３６０００ＤＭＩＰＳである。
【００４７】
動作制御部２２は、性能テーブル２６から、上記検索した１段階低い処理能力３６０００ＤＭＩＰＳに対応する動作条件を抽出する。表２を参照すると、処理能力３６０００ＤＭＩＰＳに対応する動作条件は、動作ＣＰＵコア数４と動作周波数１５００ＭＨｚの組み合わせから成る動作条件と、動作ＣＰＵコア数３と動作周波数２０００ＭＨｚの組み合わせから成る動作条件との２つがある。動作制御部２２は、ステップＡ３において、これら動作条件を、制御後の動作条件の候補として抽出する。
【００４８】
上記の場合、動作制御部２２は、ステップＡ６において、動作条件の候補が複数あると判断する。その場合、動作制御部２２は、ステップＡ７において、消費電力テーブル２７を参照し、抽出された複数の動作条件のそれぞれに対応付けられた消費電力を取得する。表３を参照すると、動作ＣＰＵコア数４と動作周波数１５００ＭＨｚの組み合わせから成る動作条件に対応する消費電力は３３６０ｍＷであり、動作ＣＰＵコア数３と動作周波数２０００ＭＨｚの組み合わせから成る動作条件に対応する消費電力は３２１０ｍＷである。両者を比較すると、処理能力は同じであるものの、動作ＣＰＵコア数３と動作周波数２０００ＭＨｚの組み合わせから成る動作条件の消費電力は、動作ＣＰＵコア数４と動作周波数１５００ＭＨｚの組み合わせから成る動作条件の消費電力よりも低い。その場合、動作制御部２２は、ステップＡ７において、抽出された２つの動作条件のうち、動作ＣＰＵコア数３と動作周波数２０００ＭＨｚの組み合わせから成る動作条件を選択する。
【００４９】
動作制御部２２は、ステップＡ８において、ＣＰＵ１１において３つのＣＰＵコアが動作周波数２０００ＭＨｚで動作するように、ＣＰＵ１１の動作条件を制御する。電源制御部２３は、例えば３つのＣＰＵコア１１ａ〜１１ｃに対して電源供給を行い、残りのＣＰＵコア１１ｄに対する電源供給を停止することで、ＣＰＵ１１において３つのＣＰＵコアを動作させる。また、クロック制御部２４は、動作させるＰＵコア１１ａ〜１１ｃに対して周波数が２０００ＭＨｚのクロック信号を供給することで、それらＣＰＵコアを２０００ＭＨｚの動作周波数で動作させる。
【００５０】
上記の場合において、単純に動作させるＣＰＵコアの数を変えずに各ＣＰＵコアの動作周波数を１５００ＭＨｚに低下させば、発熱を抑えることができる。しかしながら、その場合、動作ＣＰＵコア数３と動作周波数２０００ＭＨｚの組み合わせから成る動作条件に制御した場合に比べて、処理能力は同等であるのに、無駄に電力が消費されることになる。本実施形態では、性能テーブル２６と消費電力テーブル２７とを用い、性能と消費電力との双方の観点から、動作条件を選択する。このようにすることで、ある処理能力を、最小の消費電力で実現できる。本実施形態に係る半導体装置１０を用いることで、例えばバッテリで動作する機器において、バッテリを長持ちさせることが可能である。また、低い消費電力で同等の処理能力を実現できる分だけ、発熱を抑えることも可能である。
【００５１】
別の時刻において、ＣＰＵ１１において３つのＣＰＵコア１１ａ〜１１ｃが動作周波数２０００ＭＨｚで動作していたときに、図６のステップＡ２で温度が上限温度しきい値以上であると判断されたとする。その場合、動作制御部２２は、表２に示される性能テーブルを参照して、現在の処理能力３６０００ＤＭＩＰＳよりも１段階下の処理能力を検索する。動作制御部２２は、処理能力２７０００ＤＭＩＰＳを、処理能力３６０００ＤＭＩＰＳより１段階低い処理能力として検索する。
【００５２】
動作制御部２２は、ステップＡ３において、性能テーブル２６から、上記検索した１段階低い処理能力２７０００ＤＭＩＰＳに対応する動作条件を抽出する。表２を参照すると、処理能力２７０００ＤＭＩＰＳに対応する動作条件は、動作ＣＰＵコア数３と動作周波数１５００ＭＨｚの組み合わせから成る動作条件のみである。動作制御部２２は、ステップＡ３において、この動作条件を、制御後の動作条件の候補として抽出する。
【００５３】
上記の場合、動作制御部２２は、ステップＡ６において、動作条件の候補が複数ないと判断し、ステップＡ８に進んで、ＣＰＵ１１において３つのＣＰＵコアが動作周波数１５００ＭＨｚで動作するように、ＣＰＵ１１の動作条件を制御する。電源制御部２３は、例えば３つのＣＰＵコア１１ａ〜１１ｃに対して電源供給を行い、残りのＣＰＵコア１１ｄに対する電源供給を停止する。また、クロック制御部２４は、動作させるＰＵコア１１ａ〜１１ｃに対して周波数が１５００ＭＨｚのクロック信号を供給することで、それらＣＰＵコアを１５００ＭＨｚの動作周波数で動作させる。
【００５４】
さらに別の時刻において、ＣＰＵ１１において３つのＣＰＵコア１１ａ〜１１ｃが動作周波数１５００ＭＨｚで動作していたときに、図６のステップＡ４で温度が下限温度しきい値以下であると判断されたとする。その場合、動作制御部２２は、表２に示される性能テーブルを参照して、現在の処理能力２７０００ＤＭＩＰＳよりも１段階上の処理能力を検索する。動作制御部２２は、処理能力３６０００ＤＭＩＰＳを、処理能力３６０００ＤＭＩＰＳより１段階高い処理能力として検索する。
【００５５】
動作制御部２２は、ステップＡ５において、性能テーブル２６から、上記検索した１段階高い処理能力３６０００ＤＭＩＰＳに対応する動作条件を抽出する。表２を参照すると、処理能力３６０００ＤＭＩＰＳに対応する動作条件には、動作ＣＰＵコア数３と動作周波数２０００ＭＨｚの組み合わせから成る動作条件と、動作ＣＰＵコア数４と動作周波数１５００ＭＨｚの組み合わせから成る動作条件とがある。動作制御部２２は、ステップＡ５において、これら動作条件を、制御後の動作条件の候補として抽出する。
【００５６】
動作制御部２２は、ステップＡ６において、抽出された動作条件の候補が複数あると判断する。動作制御部２２は、ステップＡ７において、消費電力テーブル２７を参照し、抽出された複数の動作条件のそれぞれに対応付けられた消費電力を取得する。表３を参照すると、動作ＣＰＵコア数４と動作周波数１５００ＭＨｚの組み合わせから成る動作条件に対応する消費電力は３３６０ｍＷであり、動作ＣＰＵコア数３と動作周波数２０００ＭＨｚの組み合わせから成る動作条件に対応する消費電力は３２１０ｍＷである。この場合、動作制御部２２は、ステップＡ７において、抽出された２つの動作条件のうち、動作ＣＰＵコア数３と動作周波数２０００ＭＨｚの組み合わせから成る動作条件を選択する。消費電力テーブル２７が更新されていた場合は、更新された消費電力テーブルを参照して、消費電力が低い動作条件が選択される。
【００５７】
動作制御部２２は、ステップＡ８において、ＣＰＵ１１において３つのＣＰＵコアが動作周波数２０００ＭＨｚで動作するように、ＣＰＵ１１の動作条件を制御する。電源制御部２３は、例えば３つのＣＰＵコア１１ａ〜１１ｃに対して電源供給を行い、残りのＣＰＵコア１１ｄに対する電源供給を停止することで、ＣＰＵ１１において３つのＣＰＵコアを動作させる。また、クロック制御部２４は、動作させるＰＵコア１１ａ〜１１ｃに対して周波数が２０００ＭＨｚのクロック信号を供給することで、それらＣＰＵコアを２０００ＭＨｚの動作周波数で動作させる。ステップＡ５において抽出された動作条件が１つのみであった場合は、ステップＡ６からステップＡ８へ進み、ＣＰＵ１１の動作条件が、ステップＡ５において抽出された動作条件に制御される。
【００５８】
［まとめ］
本実施形態では、動作制御部２２は、性能テーブル２６を参照して所期の処理能力を満たす動作条件を抽出し、抽出した動作条件が２以上ある場合は、消費電力テーブル２７を参照して、抽出された複数の動作条件のうち、消費電力が低いものを選択する。このようにして選択された動作条件でＣＰＵ１１を動作させることで、同水準の性能でＣＰＵ１１を動作させる場合に、消費電力が低いＣＰＵコア数と動作周波数との組み合わせを選択することができる。そのため、例えば性能と消費電力との双方の観点から、消費電力が制限された環境下でも、所期の性能を発揮しつつ、温度制御を実施することができる。
【００５９】
［実施形態２］
次いで、実施形態２を説明する。実施形態２に係る半導体装置のハードウェア構成は、図１に示される実施形態１に係る半導体装置１０の構成と同様である。また、本実施形態に係る半導体装置１０における動作条件の制御に関わる部分の機能ブロックは、図２に示される実施形態１に係るものと同様である。
【００６０】
本実施形態では、温度しきい値が複数段階設けられる。以下では、主に上限温度しきい値として、２つの上限温度しきい値が設けられる場合を説明する。１段目の上限温度しきい値Ａは、２段目の上限温度しきい値Ｂよりも低い温度であるとする。本実施形態において２つの下限温度しきい値が設けられてもよく、以下に説明される２つの上限温度しきい値に関連する記述は、２つの下限温度しきい値についても同様に適用できる。設けられる温度しきい値の段数は２つには限定されない。
【００６１】
本実施形態では、動作制御部２２は、温度センサ１５を用いて測定された温度が上限温度しきい値Ａ以上で、かつ上限温度しきい値Ｂよりも低い場合、実施形態１における動作と同様に、性能テーブル２６において、基準処理能力と所定の関係にある処理能力を検索する。動作制御部２２は、測定された温度が上限温度しきい値Ｂ以上である場合は、性能テーブル２６における検索範囲を、消費電力テーブル２７において消費電力が動作条件の制御の実施前の消費電力に対して所定の関係を満たす動作条件に限定する。例えば、性能テーブル２６における検索範囲は、基準となる消費電力に対して所定の割合以下、例えば５０％以下となる動作条件に限定される。基準となる消費電力は、例えば温度制御開始時における動作条件の消費電力である。動作制御部２２は、限定された検索範囲内で、基準処理能力と所定の関係にある処理能力を検索する。動作制御部２２は、検索された処理能力に対応する動作条件が複数ある場合には、消費電力テーブル２７を参照して、消費電力が低い動作条件を選択する。
【００６２】
［動作手順］
図８は、本実施形態における動作条件の制御の動作手順を示す。温度判定部２１は、温度センサ１５が出力する信号を取得し、半導体装置１０の温度を監視する（ステップＣ１）。温度判定部２１は、温度センサ１５を用いて測定された温度が上限温度しきい値Ａ以上であるか否かを判断する（ステップＣ２）。温度判定部２１は、温度が上限温度しきい値Ａ以上であると判断した場合、温度が上限温度しきい値Ｂ以上であるか否かを判断する（ステップＣ３）。
【００６３】
温度判定部２１は、ステップＣ２で温度が上限温度しきい値Ａ以上であると判断し、かつステップＣ３で温度が上限温度しきい値Ｂよりも低いと判断した場合は、動作制御部２２にその旨を通知する。動作制御部２２は、その通知を受け取ると、性能テーブル２６を検索し、現在の動作条件に対応する処理能力よりも１段階低い処理能力に対応付けられる動作条件を、制御後の動作条件の候補として抽出する（ステップＣ４）。
【００６４】
温度判定部２１は、ステップＣ３で温度が上限温度しきい値Ｂ以上であると判断した場合は、動作制御部２２にその旨を通知する。動作制御部２２は、その通知を受け取ると、消費電力テーブル２７を参照し、基準となる消費電力を取得する。動作制御部２２は、例えば消費電力テーブル２７から基準となる消費電力の５０％以下の消費電力に対応する動作条件を抽出し、性能テーブル２６において、抽出された動作条件に対応する部分の値を有効とし、それ以外の動作条件に対応する部分の値を無効とすることで、検索範囲が限定された性能テーブルを作成する。動作制御部２２は、検索範囲が限定された性能テーブルにおいて、現在の動作条件に対応する処理能力よりも１段階低い処理能力に対応付けられる動作条件を、制御後の動作条件の候補として抽出する（ステップＣ５）。
【００６５】
温度判定部２１は、ステップＣ２で測定された温度が上限温度しきい値Ａよりも低いと判断した場合、測定された温度が下限温度しきい値以下であるか否かを判断する（ステップＣ６）。温度判定部２１は、温度が下限温度しきい値よりも高い場合は、ステップＣ１に戻り、温度の監視を継続する。温度判定部２１は、温度が下限温度しきい値以下であると判断した場合、動作制御部２２にその旨を通知する。動作制御部２２は、温度が下限温度しきい値以下である旨の通知を受け取ると、性能テーブル２６を検索し、現在の動作条件に対応する処理能力よりも１段階高い処理能力に対応付けられる動作条件を、制御後の動作条件の候補として抽出する（ステップＣ７）。
【００６６】
動作制御部２２は、ステップＣ４、ステップＣ５、又はステップＣ７で抽出した動作条件（動作条件の候補）が複数あるか否かを判断する（ステップＣ８）。動作制御部２２は、抽出した動作条件が複数あると判断した場合、消費電力テーブル２７を参照して、抽出された複数の動作条件のそれぞれに対応付けられた消費電力を取得する。動作制御部２２は、取得した、複数の動作条件のそれぞれに対応付けられた消費電力を相互に比較し、消費電力が最小の動作条件を選択する（ステップＣ９）。
【００６７】
動作制御部２２は、ステップＣ４、ステップＣ５、若しくはステップＣ７で抽出された動作条件、又はステップＣ９で選択された動作条件が示すＣＰＵコアの数と動作周波数との組み合わせでＣＰＵ１１が動作するように、ＣＰＵ１１の動作条件を制御する（ステップＣ１０）。ステップＣ１０では、電源制御部２３は、４つのＣＰＵコア１１ａ〜１１ｄのうち、例えばステップＣ９で選択された動作条件が示す数のＣＰＵコアに対して電源供給を行い、動作させないＣＰＵコアに対する電源供給を停止する。また、クロック制御部２４は、動作させるＣＰＵコアに対して、例えばステップＣ９で選択された動作条件が示す動作周波数のクロック信号を供給する。その後、処理は、ステップＣ１に戻り、温度監視が継続される。
【００６８】
［数値例］
以下、具体的な数値例を用いて説明する。ＳｏＣ（Silicon On Chip）耐熱規格はＴｊ≦１２５℃であるとする。また、上限温度しきい値Ａは９０℃であるとし、上限温度しきい値Ｂは１１０℃であるとする。ここでは、測定された温度が９０℃以上で１１０℃未満の場合は、図８のステップＣ４において、表２に示される性能テーブル２６を用いて、基準処理能力よりも１段階低い処理能力が検索されるものとする。
【００６９】
例えば、測定された温度が１１０℃以上である場合は、消費電力の削減幅を大きくするために、ステップＣ５において、基準となる消費電力の５０％以下の消費電力に対応する動作条件が、制御後の動作条件として抽出されるようにする場合を考える。そのような動作条件の抽出を実現するためには、ステップＣ５で動作条件抽出を行う際に、性能テーブル２６における検索範囲から、消費電力が基準となる消費電力の５０％を超える動作条件が除外されていればよい。
【００７０】
例えば、ある時刻において、ＣＰＵ１１の４つのＣＰＵコア１１ａ〜１１ｄの全てが動作周波数２０００ＭＨｚで動作していたとする。表３に示される消費電力テーブル２７を参照すると、この動作条件の消費電力は４２８０ｍＷである。表３に示される消費電力テーブル２７を参照すると、動作ＣＰＵコア数３つと、動作周波数１５００ＭＨｚ及び２０００ＭＨｚとの組み合わせ、並びに動作ＣＰＵコア数４つと、動作周波数１０００ＭＨｚ、１５００ＭＨｚ、及び２０００ＭＨｚとの組み合わせから成る動作条件は、消費電力が４２８０ｍＷの５０％（２１４０ｍＷ）を超えている。表３に示される消費電力テーブル２７において、消費電力４２８０ｍＷに対して５０％を超えるものを削除すると、下記に示す表４が得られる。
【表４】
2018106591.tif 000006
【００７１】
上記の場合、ステップＣ５における性能テーブル２６の検索では、消費電力が５０％を超える動作条件は、その検索の範囲から除外される。その場合に、ステップＣ５の検索において参照される性能テーブル２６を、下記表５に示す。動作制御部２２は、ステップＣ５では、表５に示される性能テーブルを参照して、現在の処理能力４８０００ＤＭＩＰＳよりも１段階低い処理能力を検索する。
【表５】
2018106591.tif 000007
【００７２】
図９は、半導体装置１０の温度変化と、動作条件の制御とを示す。図９に示されるグラフにおいて、縦軸は温度を表し、横軸は時間を表す。はじめ、半導体装置１０において、ＣＰＵ１１の４つのＣＰＵコア１１ａ〜１１ｄの全てが動作周波数２０００ＭＨｚで動作していたとする。
【００７３】
時刻ｔ１１において、温度センサ１５を用いて測定された温度が９０℃以上になったとする。動作制御部２２は、時刻ｔ１１では、ステップＣ２で温度が上限温度しきい値Ａ（９０℃）以上であると判断し、ステップＣ３で温度が上限温度しきい値Ｂ（１１０℃）以上ではないと判断する。動作制御部２２は、ステップＣ４において、表２に示される性能テーブル２６を検索して、現在の処理能力４８０００ＤＭＩＰＳよりも１段階低い処理能力３６０００ＤＭＩＰＳに対応する動作条件を抽出する。
【００７４】
表２を参照すると、処理能力３６０００ＤＭＩＰＳに対応する動作条件は、動作ＣＰＵコア数４と動作周波数１５００ＭＨｚの組み合わせから成る動作条件と、動作ＣＰＵコア数３と動作周波数２０００ＭＨｚの組み合わせから成る動作条件との２つがある。動作制御部２２は、ステップＣ８において動作条件の候補が複数あると判断し、ステップＣ９において、表３に示される消費電力テーブル２７を参照して、２つの動作条件のうち、消費電力が低いものを選択する。
【００７５】
表３を参照すると、動作ＣＰＵコア数４と動作周波数１５００ＭＨｚの組み合わせから成る動作条件に対応する消費電力は３３６０ｍＷであり、動作ＣＰＵコア数３と動作周波数２０００ＭＨｚの組み合わせから成る動作条件に対応する消費電力は３２１０ｍＷである。このため、ステップＣ９では、動作ＣＰＵコア数３と動作周波数２０００ＭＨｚの組み合わせから成る動作条件が選択される。動作制御部２２は、ステップＣ１０において、ＣＰＵ１１において３つのＣＰＵコアが動作周波数２０００ＭＨｚで動作するように、ＣＰＵ１１の動作条件を制御する。
【００７６】
その後、更に温度が上昇し、時刻ｔ１２において１１０℃以上になったとする。動作制御部２２は、時刻ｔ１２では、ステップＣ２で温度が上限温度しきい値Ａ（９０℃）以上であると判断し、かつステップＣ３で温度が上限温度しきい値Ｂ（１１０℃）以上であると判断する。動作制御部２２は、ステップＣ５において、表５に示される検索範囲が限定された性能テーブル２６を検索して、現在の処理能力３６０００ＤＭＩＰＳよりも１段階低い処理能力２４０００ＤＭＩＰＳに対応する動作条件を抽出する。
【００７７】
表５を参照すると、処理能力２４０００ＤＭＩＰＳに対応する動作条件は、動作ＣＰＵコア数２と動作周波数２５００ＭＨｚの組み合わせから成る動作条件のみである。動作制御部２２は、ステップＣ８において動作条件の候補が複数ないと判断し、ステップＣ１０において、ＣＰＵ１１において２つのＣＰＵコアが動作周波数２０００ＭＨｚで動作するように、ＣＰＵ１１の動作条件を制御する。
【００７８】
仮に、ステップＣ５において、表２に示される性能テーブル２６を参照して動作条件を抽出したとすると、処理能力２７０００ＤＭＩＰＳに対応する動作条件が抽出される。表３に示される消費電力テーブル２７を参照すると、その動作条件で動作させた場合の消費電力は２５２０ｍＷである。一方、表５に示される性能テーブルを参照して抽出された動作条件で動作させた場合の消費電力は２１４０ｍＷである。このように、性能テーブル２６の検索範囲を限定することで、温度が２段目の上限温度しきい値１１０℃まで上昇した場合に、より低い消費電力で動作させることができる。その結果として、半導体装置１０の温度がＳｏＣ耐熱規格である１２５℃まで上昇することを回避できる。
【００７９】
［まとめ］
本実施形態では、上限温度しきい値が２段階設けられ、２段目の上限温度しきい値以上となった場合は、性能テーブル２６の検索範囲を、消費電力テーブル２７において消費電力が所定の条件を満たす動作条件に限定する。例えば、性能テーブル２６の検索範囲を、基準となる消費電力の５０％以下の消費電力に対応する動作条件に限定することで、限定しない場合に比べて、より低い消費電力の動作条件で、ＣＰＵ１１を動作させることができる。その結果、半導体装置１０の温度上昇をより効果的に抑制することが可能である。
【００８０】
［実施形態３］
続いて、実施形態３を説明する。実施形態３に係る半導体装置のハードウェア構成は、図１に示される実施形態１に係る半導体装置１０と同様である。本実施形態に係る半導体装置１０における動作条件の制御に関わる部分の機能ブロックも、図２に示される実施形態１に係るものと同様である。
【００８１】
本実施形態では、動作制御部２２は、ＣＰＵ１１の使用状況を取得する。動作制御部２２は、例えばＣＰＵ１１におけるＣＰＵ使用率を取得する。本実施形態において、動作制御部２２は、温度制御に加えて、又はこれに代えて、ＣＰＵ使用率に基づいて、ＣＰＵ１１の動作条件の制御を実施する。より詳細には、動作制御部２２は、ＣＰＵ使用率に基づいて基準処理能力（必要処理能力）を計算し、その必要処理能力に基づいてＣＰＵ１１の動作条件の制御を実施する。
【００８２】
動作制御部２２は、性能テーブル２６を検索し、必要処理能力よりも高い処理能力のうち処理能力が最も低い処理能力に対応する動作条件、つまり必要処理能力よりも１段階高い処理能力に対応する動作条件を抽出する。動作制御部２２は、抽出した動作条件が１つの場合は、ＣＰＵ１１の動作条件をその動作条件に制御する。動作制御部２２は、抽出した動作条件が２以上の場合は、消費電力テーブル２７を参照して複数の動作条件のうち最も消費電力が低い動作条件を特定し、ＣＰＵ１１の動作条件をその特定した動作条件に制御する。
【００８３】
［動作手順］
図１０は、動作条件の制御の動作手順を示す。動作制御部２２は、ＣＰＵ１１のＣＰＵ使用率を取得し、ＣＰＵ１１の使用状況を監視する（ステップＤ１）。動作制御部２２は、取得したＣＰＵ使用率に基づいて、必要処理能力を計算する（ステップＤ２）。例えば、ＣＰＵ１１において４つのＣＰＵコア１１ａ〜１１ｄが動作し、動作周波数が２０００ＭＨｚである場合を考える。各ＣＰＵコアの性能スペックは６ＤＭＩＰＳ／ＭＨｚであったとする。その場合、取得したＣＰＵ使用率が４５％であれば、所定の係数を例えば１．２として、下記式を用いて必要処理能力を計算する。
必要処理能力＝6[DMIPS/MHz]×2000[MHz]×4[個]×45[%]×1.2(係数)＝25920[DMIPS]
ここで、上記式において、係数は、一般的にスケジューラなどで使用されている２０％をマージンとして１．２に設定される。
【００８４】
動作制御部２２は、性能テーブル２６を検索し、必要処理能力よりも１段階高い処理能力に対応付けられる動作条件を、制御後の動作条件の候補として抽出する（ステップＤ３）。動作制御部２２は、ステップＤ３では、例えば、必要処理能力が２５９２０ＤＭＩＰＳであった場合、表２に示される性能テーブル２６において、２５９２０ＤＭＩＰＳ以上の処理能力のうちで最も処理能力が低い２７０００ＤＭＩＰＳに対応する動作条件を抽出する。すなわち、動作制御部２２は、ステップＤ３において、動作ＣＰＵコア数が３で、動作周波数が１５００ＭＨｚである動作条件を抽出する。
【００８５】
動作制御部２２は、抽出した動作条件（動作条件の候補）が複数あるか否かを判断する（ステップＤ４）。動作制御部２２は、抽出した動作条件が複数あると判断した場合、消費電力テーブル２７を参照して、抽出された複数の動作条件のそれぞれに対応付けられた消費電力を取得する。動作制御部２２は、取得した、複数の動作条件のそれぞれに対応付けられた消費電力を相互に比較し、消費電力が最も低い動作条件を選択する（ステップＤ５）。
【００８６】
動作制御部２２は、ステップＤ３で抽出された動作条件、又はステップＤ５で選択された動作条件が示すＣＰＵコアの数と動作周波数との組み合わせでＣＰＵ１１が動作するように、ＣＰＵ１１の動作条件を制御する（ステップＤ６）。上記の例では、動作制御部２２は、ＣＰＵ１１において３つのＣＰＵコアを動作させ、各ＣＰＵコアに１５００ＭＨｚのクロック信号を供給する。その後、処理は、ステップＤ１に戻り、ＣＰＵの使用状況の監視が継続される。
【００８７】
［まとめ］
本実施形態では、動作制御部２２は、ＣＰＵ使用率に基づいて必要処理能力を計算し、その必要処理能力を満たす動作条件にＣＰＵ１１を制御する。このようにすることで、必要処理能力に応じた動作条件でＣＰＵ１１を動作させることができる。本実施形態においても、同じ処理能力を実現する動作条件が複数ある場合には、消費電力が最も低い動作条件が選択される。このようにすることで、通常時から、性能を維持しつつ、低消費電力でＣＰＵ１１を動作させることが可能である。
【００８８】
［変形例］
なお、実施形態２において、基準となる消費電力を、温度制御開始時の動作条件の消費電力とする例を説明したが、これには限定されない。例えば、図９の時刻ｔ１２において、温度が１１０℃以上となったときの動作条件の消費電力３１２０ｍＷを基準の消費電力とし、その５０％以下の消費電力に対応する動作条件が抽出されるように、性能テーブル２６の検索範囲が限定されることとしてもよい。
【００８９】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【００９０】
例えば、上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
【００９１】
［付記１］
動作条件が可変に構成された処理実行部と、
前記動作条件と前記処理実行部の処理能力との関係を表す性能テーブル、及び前記動作条件と消費電力との関係とを表す消費電力テーブルを参照し、前記処理実行部の動作条件を制御する動作制御部とを備える半導体装置。
【００９２】
［付記２］
前記処理実行部が、動作周波数が可変に構成される複数のプロセッサを含み、前記動作条件が、前記処理実行部において動作させるプロセッサの数と、前記プロセッサの動作周波数との組み合わせを含む付記１に記載の半導体装置。
【００９３】
［付記３］
前記動作制御部は、前記性能テーブルと前記消費電力テーブルを参照して、前記処理実行部において動作させるプロセッサの数と、前記プロセッサの動作周波数とを決定する付記２に記載の半導体装置。
【００９４】
［付記４］
前記動作制御部は、前記動作させるプロセッサに対して電源供給を行う電源制御部と、前記プロセッサに前記決定した動作周波数のクロック信号を供給するクロック制御部とを含む付記３に記載の半導体装置。
【００９５】
［付記５］
性能テーブルを参照して、基準処理能力と所定の関係にある処理能力に対応する動作条件を抽出し、該抽出された動作条件が複数ある場合は、前記消費電力テーブルを参照して、前記抽出された動作条件のうち消費電力が最小の動作条件を特定し、前記処理実行部の動作条件を前記特定した動作条件に制御する付記１に記載の半導体装置。
【００９６】
［付記６］
温度を測定するための温度センサを更に有し、
前記動作制御部は、前記温度センサを用いて測定された温度に基づいて前記処理実行部の動作条件の制御を実施する付記１に記載の半導体装置。
【００９７】
［付記７］
前記動作制御部は、前記測定された温度が上限温度しきい値以上場合、前記動作条件を制御することで消費電力を低下させる付記６に記載の半導体装置。
【００９８】
［付記８］
前記動作制御部は、前記測定された温度が上限温度しきい値以上場合、前記性能テーブルを検索して、基準処理能力よりも低い処理能力のうち処理能力が最も高い処理能力に関連付けられる動作条件を抽出し、該抽出された動作条件が１つの場合は前記処理実行部の動作条件を当該動作条件に制御し、前記抽出された動作条件が複数ある場合は、前記消費電力テーブルを参照して前記抽出された複数の動作条件のうち最も消費電力が低い動作条件を特定し、前記処理実行部の動作条件を前記特定した動作条件に制御する付記６に記載の半導体装置。
【００９９】
［付記９］
前記動作制御部は、前記測定された温度が第１の上限温度しきい値以上で、かつ該第１の上限温度しきい値よりも高い第２の上限温度しきい値よりも低い場合、前記性能テーブルを検索して、基準処理能力よりも低い処理能力のうち処理能力が最も高い処理能力に関連付けられる動作条件を抽出し、前記測定された温度が前記第２の上限温度しきい値以上の場合、前記性能テーブルにおける検索範囲を、前記消費電力テーブルにおいて消費電力が基準となる消費電力に対して所定の関係を満たす動作条件に限定して、基準処理能力よりも低い処理能力のうち処理能力が最も高い処理能力に関連付けられる動作条件を抽出し、該抽出された動作条件が１つの場合は前記処理実行部の動作条件を当該動作条件に制御し、前記抽出された動作条件が複数ある場合は、前記消費電力テーブルを参照して前記抽出された複数の動作条件のうち最も消費電力が低い動作条件を特定し、前記処理実行部の動作条件を前記特定した動作条件に制御する付記６に記載の半導体装置。
【０１００】
［付記１０］
前記基準処理能力は、前記動作条件の制御の実施前の前記処理実行部の処理能力である付記８に記載の半導体装置。
【０１０１】
［付記１１］
前記動作制御部は、前記測定された温度が下限温度しきい値以下場合、前記動作条件を制御することで消費電力を増加させる付記６に記載の半導体装置。
【０１０２】
［付記１２］
前記動作制御部は、前記測定された温度が前記下限温度しきい値以上場合、前記性能テーブルを検索して、基準処理能力よりも高い処理能力のうち処理能力が最も低い処理能力に関連付けられる動作条件を抽出し、該抽出された動作条件が１つの場合は前記処理実行部の動作条件を当該動作条件に制御し、前記抽出された動作条件が複数ある場合は、前記消費電力テーブルを参照して前記抽出された複数の動作条件のうち最も消費電力が低い動作条件を特定し、前記処理実行部の動作条件を前記特定した動作条件に制御する付記１１に記載の半導体装置。
【０１０３】
［付記１３］
前記動作制御部は、前記処理実行部におけるプロセッサの使用率に基づいて前記処理実行部の動作条件の制御を実施する付記２に記載の半導体装置。
【０１０４】
［付記１４］
前記動作制御部は、前記使用率に基づいて基準処理能力を計算し、該計算した基準処理能力に基づいて前記処理実行部の動作条件の制御を実施する付記１３に記載の半導体装置。
【０１０５】
［付記１５］
前記動作制御部は、前記性能テーブルを検索して、基準処理能力よりも高い処理能力のうち処理能力が最も低い処理能力に関連付けられる動作条件を抽出し、該抽出された動作条件が１つの場合は前記処理実行部の動作条件を当該動作条件に制御し、前記抽出された動作条件が複数ある場合は、前記消費電力テーブルを参照して前記抽出された複数の動作条件のうち最も消費電力が低い動作条件を特定し、前記処理実行部の動作条件を前記特定した動作条件に制御する付記１４に記載の半導体装置。
【０１０６】
［付記１６］
前記温度センサを用いて測定された温度と、消費電力の計算に用いられるデータとに基づいて、前記動作条件のそれぞれに対して前記測定された温度環境下における消費電力を計算し、該計算した消費電力を前記動作条件のそれぞれと対応付けて前記消費電力テーブルに記憶するテーブル作成部を更に備える付記６に記載の半導体装置。
【０１０７】
［付記１７］
動作周波数が可変に構成される複数のプロセッサを含み、動作するプロセッサの数と前記プロセッサの動作周波数との組み合わせを含む動作条件が可変に構成される処理実行部と、
前記動作条件と前記処理実行部の処理能力との関係を表す性能テーブル、及び前記動作条件と消費電力との関係とを表す消費電力テーブルを参照し、前記処理実行部において動作させるプロセッサの数及び前記プロセッサの動作周波数を制御する動作制御部とを備えるマイクロコンピュータユニット。
【０１０８】
［付記１８］
動作条件が可変に構成された複数のプロセッサと、
メモリとを備え、
前記プロセッサは、前記メモリから読み出したプログラムに従って動作することで、
前記プロセッサの動作条件と前記処理実行部の処理能力との関係を表す性能テーブルを参照して、基準処理能力と所定の関係にある処理能力に対応する動作条件を抽出し、
該抽出された動作条件が１つの場合は、前記処理実行部の動作条件を当該動作条件に制御し、
前記抽出された動作条件が複数ある場合は、前記動作条件と消費電力との関係とを表す消費電力テーブルを参照して、前記抽出された動作条件のうち消費電力が最小の動作条件を特定し、前記処理実行部の動作条件を前記特定した動作条件に制御するマイクロコンピュータユニット。
【０１０９】
［付記１９］
動作条件が可変に構成された処理実行部の動作条件と前記処理実行部の処理能力との関係を表す性能テーブルを参照して、基準処理能力と所定の関係にある処理能力に対応する動作条件を抽出し、
該抽出された動作条件が１つの場合は、前記処理実行部の動作条件を当該動作条件に制御し、
前記抽出された動作条件が複数ある場合は、前記動作条件と消費電力との関係とを表す消費電力テーブルを参照して、前記抽出された動作条件のうち消費電力が最小の動作条件を特定し、前記処理実行部の動作条件を前記特定した動作条件に制御する動作条件制御方法。
【０１１０】
［付記２０］
コンピュータに、
動作条件が可変に構成された処理実行部の動作条件と前記処理実行部の処理能力との関係を表す性能テーブルを参照して、基準処理能力と所定の関係にある処理能力に対応する動作条件を抽出し、
該抽出された動作条件が１つの場合は、前記処理実行部の動作条件を当該動作条件に制御し、
前記抽出された動作条件が複数ある場合は、前記動作条件と消費電力との関係とを表す消費電力テーブルを参照して、前記抽出された動作条件のうち消費電力が最小の動作条件を特定し、前記処理実行部の動作条件を前記特定した動作条件に制御する処理を実行させるためのプログラム。
【符号の説明】
【０１１１】
１０：半導体装置
１１：ＣＰＵ
１２：ＲＯＭ
１３：ＲＡＭ
１４：周辺回路
１５：温度センサ
１６：バス
２１：温度判定部
２２：動作制御部
２３：電源制御部
２４：クロック制御部
２５：テーブル作成部
２６：性能テーブル
２７：消費電力テーブル
２８：データ
【図１】
2018106591.tif 000008
【図２】
2018106591.tif 000009
【図３】
2018106591.tif 000010
【図４】
2018106591.tif 000011
【図５】
2018106591.tif 000012
【図６】
2018106591.tif 000013
【図７】
2018106591.tif 000014
【図８】
2018106591.tif 000015
【図９】
2018106591.tif 000016
【図１０】
2018106591.tif 000017