(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-26
(45)【発行日】2024-05-09
(54)【発明の名称】情報処理装置
(51)【国際特許分類】
G06F 1/20 20060101AFI20240430BHJP
G06F 1/04 20060101ALI20240430BHJP
G06F 15/78 20060101ALI20240430BHJP
【FI】
G06F1/20 D
G06F1/04 570
G06F15/78 517
(21)【出願番号】P 2020082766
(22)【出願日】2020-05-08
【審査請求日】2023-02-24
(73)【特許権者】
【識別番号】524066085
【氏名又は名称】FCNT合同会社
(74)【代理人】
【識別番号】110002860
【氏名又は名称】弁理士法人秀和特許事務所
(72)【発明者】
【氏名】影沢 正
【審査官】征矢 崇
(56)【参考文献】
【文献】特開2007-299346(JP,A)
【文献】特開2017-220027(JP,A)
【文献】特開2016-106327(JP,A)
【文献】特開2020-060921(JP,A)
【文献】米国特許出願公開第2015/0082076(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F1/20;1/32-1/3296
G06F1/04
G06F15/78
(57)【特許請求の範囲】
【請求項1】
プロセッサと、
クロック信号を前記プロセッサに供給する供給部と、
前記プロセッサの温度が制限温度に達すると、前記プロセッサの処理能力を第1の処理能力に低下させる制限部と、を備え、
前記制限部は、
前記プロセッサの負荷変動パターンを測定し、
記憶部に予め記憶した前記制限温度に達するまでの前記プロセッサの負荷変動パターンを示す参照パターンと、前記測定した負荷変動パターンとの差が閾値以下となると、
前記プロセッサの処理能力を前記第1の処理能力に低下させる前に、前記第1の処理能力よりも処理能力の高い第2の処理能力に
前記プロセッサの処理能力を低下させる、
情報処理装置。
【請求項2】
前記供給部は、所定周波数範囲から選択した周波数のクロック信号を前記プロセッサに供給し、
前記第1の処理能力に低下させることは、
前記プロセッサに供給するクロック信号の周波数を、前記所定周波数範囲の上限
の周波数より低く設定された第1の周波数以下に制限することを含み、
前記第2の処理能力に低下させることは、前記所定周波数範囲の周波数のうち、
前記上限の周波数のクロック信号が供給される割合を低下させることを含む、
請求項1に記載の情報処理装置。
【請求項3】
前記記憶部には、プロセスを特定する情報と対応付けて、前記参照パターンが記憶されており、
前記制限部は、
前記プロセッサによって実行されているプロセスを特定し、
前記特定したプロセスに対応する参照パターンと、前記測定した負荷変動パターンとの差が閾値以下となると、
前記プロセッサの処理能力を前記第1の処理能力に低下させる前に前
記第2の処理能力に低下させる、
請求項1または2に記載の情報処理装置。
【請求項4】
前記制限部は、
前記記憶部に負荷変動パターンが記憶されていない場合には、前記プロセッサの温度が前記制限温度に達するまでの負荷変動パターンを測定し、
前記測定した前記制限温度に達するまでの負荷変動パターンを前記参照パターンとして前記記憶部に記憶させる、
請求項1から3のいずれか一項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置に関する。
【背景技術】
【0002】
情報処理装置では、装置が高温になることを抑制したり装置を保護したりするため、高温になったプロセッサを冷却する処理が行われる。プロセッサを冷却する処理としては、冷却ファンの使用やプロセッサに供給するクロック信号の周波数を低下させる処理等を挙げることができる。
【0003】
特許文献1では、例えば、温度モニタが測定した温度を基に、許容温度を超えないように電子回路の処理負荷を制御する情報処理装置が記載されている。特許文献2では、例えば、端末機の温度が第1設定温度に該当する場合、第1駆動周波数で制御部を駆動させる端末機温度制御方法が記載されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2012-243274号公報
【文献】特開2013-33469号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
プロセッサを冷却する冷却ファンを備えていない情報処理装置の場合、高温になったプロセッサの冷却は、クロック信号の周波数を低下させることで行われる。このような冷却方法では、既に高温になったプロセッサを冷却するには、クロック信号の周波数を大幅に下げることになる。クロック信号の周波数が大幅に下げられると、単位時間あたりにプロセッサが処理できる処理量が大幅に低下する。そのため、実行されているアプリケーションプログラムが要求する処理能力に対し、プロセッサが提供できる処理能力が不足する虞がある。処理能力が不足すると、操作に対する反応が鈍い、表示された画像等の動きが滑らかではない等の操作性が低下する事象が生じ得る。
【0006】
開示の技術の1つの側面は、処理能力を低下させることでプロセッサの発熱を抑制しても操作性の低下を抑制できる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
開示の技術の1つの側面は、次のような情報処理装置によって例示される。本情報処理装置は、プロセッサと、クロック信号を前記プロセッサに供給する供給部と、前記プロセッサの温度が制限温度に達すると、前記プロセッサの処理能力を第1の処理能力に低下させる制限部と、を備え、前記制限部は、前記プロセッサの負荷変動パターンを測定し、記憶部に予め記憶した前記制限温度に達するまでの前記プロセッサの負荷変動パターンを示す参照パターンと、前記測定した負荷変動パターンとの差が閾値以下となると、前記第1の処理能力よりも処理能力の高い第2の処理能力に低下させる。
【発明の効果】
【0008】
開示の技術は、処理能力を低下させることでプロセッサの発熱を抑制しても操作性の低下を抑制することができる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施形態に係るスマートフォンのハードウェア構成の一例を示す図である。
【
図2】
図2は、実施形態において、パフォーマンス制限を実行する低減区間を例示する図である。
【
図3】
図3は、実施形態における辞書データの一例を示す図である。
【
図4】
図4は、実施形態において、CPUに供給されるクロック信号の周波数と、CPUに流れる電流の関係を例示する図である。
【
図5】
図5は、実施形態において、予測区間中の小区間における予測発熱量の概算に用いる予測発熱量テーブルの一例である。
【
図6】
図6は、実施形態におけるガバナーパラメータを例示する第1の図である。
【
図7】
図7は、実施形態におけるガバナーパラメータを例示する第2の図である。
【
図8】
図8は、実施形態におけるガバナーパラメータを例示する第3の図である。
【
図9】
図9は、実施形態における、CPUの温度が制限温度に達するか否かの判定を模式的に示す図である。
【
図10】
図10は、実施形態に係るスマートフォンの処理フローの一例を示す図である。
【
図11】
図11は、実施形態における辞書データの生成処理の処理フローの一例を示す図である。
【
図12】
図12は、実施形態におけるパフォーマンス制限の処理フローの一例を示す図である。
【
図13】
図13は、パフォーマンス制限の実施の有無によるCPUの温度の変化を例示する図である。
【発明を実施するための形態】
【0010】
<実施形態>
以下に示す実施形態の構成は例示であり、開示の技術は実施形態の構成に限定されない。実施形態に係る情報処理装置は、例えば、以下の構成を備える。
本実施形態に係る情報処理装置は、
プロセッサと、
クロック信号を前記プロセッサに供給する供給部と、
前記プロセッサの温度が制限温度に達すると、前記プロセッサの処理能力を第1の処理能力に低下させる制限部と、を備え、
前記制限部は、
前記プロセッサの負荷変動パターンを測定し、
記憶部に予め記憶した前記制限温度に達するまでの前記プロセッサの負荷変動パターンを示す参照パターンと、前記測定した負荷変動パターンとの差が閾値以下となると、前記第1の処理能力よりも処理能力の高い第2の処理能力に低下させる。
【0011】
情報処理装置は、例えば、プロセッサを冷却する冷却ファンを備えない情報処理装置である。このような情報処理装置としては、例えば、スマートフォン、フィーチャーフォン、タブレット型パーソナルコンピュータ、ノートブック型パーソナルコンピュータ等を挙げることができる。また、情報処理装置は、冷却ファンを備えないことで静音を実現したデスクトップ型パーソナルコンピュータであってもよい。また、情報処理装置は、Internet of Things(IoT)で利用される小型機器であってもよい。
【0012】
本情報処理装置は、プロセッサの温度が制限温度に達すると、プロセッサの処理能力を第1の処理能力に低下させることで、プロセッサを冷却する。ここで、既に制限温度に達したプロセッサを冷却するには、プロセッサの処理能力を大幅に低下させることになる。プロセッサの処理能力を大幅に低下させると、情報処理装置の操作性が低下する虞がある。
【0013】
そこで、本情報処理装置は、プロセッサの負荷変動パターンを基に、プロセッサの温度が制限温度に達するか否かを判定する。そして、本情報処理装置は、制限温度に達すると判定した場合、第1の処理能力よりも高い第2の処理能力にプロセッサの処理能力を低下させる。プロセッサの温度は未だ制限温度に達していないため、プロセッサの処理能力を第1の処理能力まで低下させなくとも、第2の処理能力に低下させることでプロセッサを冷却することができる。また、第2の処理能力は第1の処理能力よりも高いため、第1の処理能力に低下させる場合よりも操作性の低下は抑制される。ここで、第2の処理能力に低下させることは、たとえば、プロセッサがマルチコア構成である場合において、駆動するコアの数を減少させることを含んでもよい。
【0014】
本情報処理装置は、次の特徴を備えてもよい。前記供給部は、所定周波数範囲から選択した周波数のクロック信号を前記プロセッサに供給し、前記第1の処理能力に低下させることは、前記所定周波数範囲の上限を低下させることを含み、前記第2の処理能力に低下させることは、前記所定周波数範囲の周波数のうち、上限の周波数のクロック信号が供給される割合を低下させることを含む。第2の処理能力に低下さても、所定周波数範囲の上限は変更されない。すなわち、プロセッサの処理能力が第2の処理能力に低下されても、プロセッサには処理負荷に応じて所定周波数範囲の上限の周波数のクロック信号が供給され得る。そのため、本情報処理装置は、高負荷の処理が要求されても、操作性の低下が抑制される。
【0015】
本情報処理装置は、次の特徴を備えてもよい。前記記憶部には、プロセスを特定する情報と対応付けて、前記参照パターンが記憶されており、前記制限部は、前記プロセッサによって実行されているプロセスを特定し、前記特定したプロセスに対応する参照パターンと、前記測定した負荷変動パターンとの差が閾値以下となると、前記第1の処理能力よりも処理能力の高い第2の処理能力に低下させる。ここで、プロセスは、アプリケーションプログラム単位であってもよいし、アプリケーションプログラム内のウィンドウ単位であってもよい。例えば、動画を再生するアプリケーションプログラムにおいて、動画を再生するウィンドウとアプリケーションプログラムの設定を行うウィンドウとでは、プロセッサへの負荷が異なると考えられる。そのため、アプリケーションプログラムではなくウィンドウに対応付けて参照パターンが記憶されることも有用である。このような特徴を備えることで、本情報処理装置は、プロセスの負荷変動の特性に応じて第2の処理能力への低下を行うことができる。
【0016】
本情報処理装置は、次の特徴を備えてもよい。前記制限部は、前記記憶部に負荷変動パターンが記憶されていない場合には、前記プロセッサの温度が前記制限温度に達するまでの負荷変動パターンを測定し、前記測定した前記制限温度に達するまでの負荷変動パターンを前記参照パターンとして前記記憶部に記憶させる。このような特徴を備えることで、ユーザの操作の癖や情報処理装置毎の特性(バックグラウンドで実行されるプロセス等)を反映した負荷変動パターンを記憶部に記憶させることができる。
【0017】
以下、図面を参照して上記情報処理装置をスマートフォンに適用した実施形態についてさらに説明する。
図1は、実施形態に係るスマートフォンのハードウェア構成の一例を示す図である。
図1に例示されるスマートフォン100は、Central Processing Unit(CPU)101、記憶部102、サーミスタ103、ガバナー制御部104、温度制御部105、周波数制御部106及びガバナー温度制御部107を備える。スマートフォン100は、筐体内のスペースの関係上、CPU101を冷却する冷却ファンを備えていない。
【0018】
CPU101は、マイクロプロセッサユニット(MPU)、プロセッサとも呼ばれる。
CPU101は、単一のプロセッサに限定される訳ではなく、マルチプロセッサ構成であってもよい。また、単一のソケットで接続される単一のCPU101がマルチコア構成を有していてもよい。CPU101が実行する処理のうち少なくとも一部は、CPU101以外のプロセッサ、例えば、Digital Signal Processor(DSP)、Graphics Processing Unit(GPU)、数値演算プロセッサ、ベクトルプロセッサ、画像処理プロセッサ等の専用プロセッサで行われてもよい。また、CPU101が実行する処理のうち少なくとも一部は、集積回路(IC)、その他のデジタル回路によって実行されてもよい。また、CPU101の少なくとも一部にアナログ回路が含まれてもよい。集積回路は、Large Scale Integrated circuit(LSI)、Application Specific Integrated Circuit(ASIC)、プログラマブルロジックデバイス(PLD)を含む。PLDは、例えば、Field-Programmable Gate Array(FPGA)を含む。CPU101は、プロセッサと集積回路との組み合わせであってもよい。組み合わせは、例えば、マイクロコントローラユニット(MCU)、System-on-a-chip(SoC)、システムLSI、チップセットなどと呼ばれる。スマートフォン100では、記憶部102に記憶されたアプリケーションプログラムをCPU101が実行することで、周辺装置の制御が行われる。これにより、スマートフォン100は、所定の目的に合致した処理を実行することができる。
【0019】
CPU101は、供給されるクロック信号の周波数に応じて、発熱量が変動する。そのため、高い周波数のクロック信号が供給される時間が長くなると、CPU101は高温になる。CPU101は、「プロセッサ」の一例である。
【0020】
記憶部102は、主記憶部や補助記憶部を含む。主記憶部は、CPU101から直接アクセスされる記憶部として例示される。主記憶部は、Random Access Memory(RAM)およびRead Only Memory(ROM)を含む。
【0021】
補助記憶部は、各種のプログラムおよび各種のデータを読み書き自在に記録媒体に格納する。補助記憶部には、オペレーティングシステム(Operating System、OS)、各種プログラム、各種テーブル等が格納される。また、補助記憶部には、スマートフォン100にインストールされたアプリケーションプログラム(図中では、「アプリ」と記載)も記憶される。
【0022】
補助記憶部としては、例えば、Erasable Programmable ROM(EPROM)、ソリッドステートドライブ(Solid State Drive、SSD)、ハードディスクドライブ(Hard Disk Drive、HDD)等を挙げることができる。記憶部102は、「記憶部」の一例である。
【0023】
サーミスタ103は、CPU101の温度を測定する。温度制御部105は、サーミスタ103が測定したCPU101の温度を取得する。温度制御部105は、取得した温度が予め設定された制限温度以上である場合に、CPU101に供給するクロック信号の周波数の上限をCPU101が動作可能な最大周波数より低い第1周波数に低下させる温度制限をガバナー制御部104に対して行う。
【0024】
ガバナー制御部104は、周波数制御部106がCPU101に供給するクロック信号の周波数を制御する。ガバナー制御部104は、例えば、ガバナーパラメータを周波数制御部106に適用することで、周波数制御部106が供給するクロック信号の周波数を制御する。ガバナーパラメータは、例えば、CPU101の負荷率と、供給するクロック信号の周波数と、当該周波数のクロック信号の供給を維持する維持時間とを対応付けたパラメータである。ガバナーパラメータについての詳細は後述する。ガバナー制御部104は
、温度制限が行われている場合には、第1周波数を上限とした範囲で、CPU101に供給するクロック信号の周波数を決定する。ガバナー制御部104は、「制限部」の一例である。
【0025】
周波数制御部106は、ガバナー制御部104から適用されたガバナーパラメータにしたがってクロック信号の周波数を決定し、決定した周波数のクロック信号をCPU101に供給する。CPU101は、周波数制御部106から供給されたクロック信号を基に動作する。周波数制御部106は、「供給部」の一例である。
【0026】
ここで、ガバナー制御部104による温度制限では、CPU101に供給するクロック信号の周波数の上限が第1周波数に低下させられるため、スマートフォン100のパフォーマンスが著しく低下する虞がある。そこで、本実施形態では、ガバナー温度制御部107が、CPU101の温度が制限温度に達するか否かを判定する。ガバナー温度制御部107は、制限温度に達すると判定すると、温度制限よりも緩やかなパフォーマンス制限をCPU101に対して実行する。パフォーマンス制限は、温度制限よりも緩やかな制限であることから、CPU101のパフォーマンスが著しく低下することが抑制される。また、ガバナー温度制御部107によってパフォーマンス制限が実行されることで、CPU101の発熱量が抑制される。このようなパフォーマンス制限が行われることで、CPU101の温度が制限温度に達することが回避されたり、CPU101の温度が制限温度に達するタイミングを遅らせることができる。
【0027】
図2は、実施形態において、パフォーマンス制限を実行する低減区間を例示する図である。
図2において、縦軸はCPU101の温度を例示し、横軸は時間を例示する。ガバナー温度制御部107は、予測区間において、CPU101の温度が制限温度に達するか否かを判定する。ガバナー温度制御部107は、制限温度に達すると判定すると、CPU101に対するパフォーマンス制限を低減区間において実行する。パフォーマンス制限が行われてもCPU101の温度が制限温度に達した場合、ガバナー制御部104によって温度制限が実行される。
【0028】
ガバナー温度制御部107は、CPU101が実行しているアプリケーションプログラムと、CPU101の負荷変動パターンを監視する。予測区間における判定では、ガバナー温度制御部107は、監視した負荷変動パターンを基に、後述する辞書データを参照して、CPU101の温度が制限温度に達するか否かを判定すればよい。
【0029】
パフォーマンス制限としては、最大周波数のクロック信号がCPU101に供給されることを許容する一方で、最大周波数のクロック信号が供給される供給時間を短縮することが挙げられる。このような供給時間を短縮することとしては、例えば、負荷に応じてクロック信号の周波数が最大周波数に遷移しても、CPU101の負荷の低下に応じて速やかにクロック信号の周波数を低下させることを挙げることができる。このような制御は、例えば、CPU101の負荷とクロック信号の周波数とを対応付けたガバナーテーブルを用いて行われる。
【0030】
ガバナー温度制御部107は、CPU101によって実行されているアプリケーションプログラムに対応する辞書データが未だ存在しない場合、当該アプリケーションプログラムに対応する辞書データの生成を行う。ガバナー温度制御部107は、温度制御部105から温度制限を実行したことの通知を受けると、予測区間における、CPU101の負荷変動パターン及び低減ガバナーパラメータを対応付けて辞書データとして記憶する。
【0031】
ここで、予測区間はアプリケーション毎に異なってもよい。例えば、CPU101に対する負荷が頻繁に変動するアプリケーションプログラムについては予測区間を長めに設定
し、CPU101に対する負荷の変動が少ないアプリケーションプログラムについては予測区間を短めに設定してもよい。低減ガバナーパラメータは、温度制限よりも緩やかなパフォーマンス制限をCPU101に対して実行する際に用いるパラメータである。ガバナー温度制御部107は、例えば、温度制限を実行したことの通知を所定回数以上受けたアプリケーションについて、辞書データを記憶するようにしてもよい。ガバナー温度制御部107は、「制限部」の一例である。
【0032】
図3は、実施形態における辞書データの一例を示す図である。
図3に例示される辞書データ1071は、「アプリケーション名」、「予測区間の長さ」、「特徴データ」、「ガバナーパラメータ」の各項目を含む。「アプリケーション名」には、アプリケーションプログラムの名称が格納される。「予測区間の長さ」には、アプリケーションプログラムに対応する予測区間の長さが格納される。予測区間の長さは、例えば、アプリケーションプログラム毎に温度制限に達するまでの時間から低減区間を除いた長さである。「特徴データ」には、例えば、CPU101の負荷変動パターンを示すデータが格納される。
【0033】
CPU101の負荷変動パターンを示すデータとしては、例えば、CPU101の予測発熱量と、サーミスタ103によって測定されたCPU101の温度の組の時系列の変化を挙げることができる。時系列の変化としては、例えば、予測区間を複数の小区間に区切り、小区間夫々におけるCPU101の予測発熱量と、サーミスタ103によって測定されたCPU101の温度の組を列挙したものを挙げることができる。辞書データ1071は、例えば、ガバナー温度制御部107内の記憶部に記憶される。また、辞書データ1071は、例えば、記憶部102に記憶されてもよい。辞書データ1071は、「参照パターン」の一例である。
【0034】
予測発熱量は、例えば、CPU101に供給されるクロック信号の周波数から推定することができる。
図4は、実施形態において、CPUに供給されるクロック信号の周波数と、CPUに流れる電流の関係を例示する図である。CPU101に多くの電流が流れるとCPU101の消費電力が高くなることから、
図4は、CPUに供給されるクロック信号の周波数と、CPU101の消費電力の関係を例示しているということもできる。
図4を参照すると、CPU101に供給するクロック信号の周波数が高くなる程、CPU101の消費電力が高くなることが理解できる。そして、CPU101は、消費電力が高くなることに応じて、発熱量が増加する。そのため、予測発熱量は、周波数分布を基に概算で算出することができる。
【0035】
図5は、実施形態において、予測区間中の小区間における予測発熱量の概算に用いる予測発熱量テーブルの一例である。予測発熱量テーブル1072は、「周波数」、「重み」、「周波数分布」及び「予測発熱量」の各項目を含む。「周波数」には、小区間においてCPU101に供給されたクロック信号の周波数が列挙される。周波数の単位は、例えば、「MHz」である。
図5では、小区間において、周波数100MHz、200Mhz、300Mhzのクロック信号が供給されたことが例示される。「重み」には、周波数夫々について、発熱量の概算に用いる重みを示す情報が格納される。重みを示す情報は、例えば、高い周波数ほど重みが大きくなる。「周波数分布」は、各周波数のクロック信号が供給された時間を小区間全体を1とした比率で示した情報が格納される。「予測発熱量」には、「重み」と「周波数分布」を基に算出された予測発熱量の概算値が格納される。
図5の例では、周波数200MHzについて「重み」が「2」、「周波数分布」が「0.3」であることから、これらの乗算の結果、予測発熱量として「0.6」が算出される。予測区間における発熱量は、各周波数での予測発熱量の合計となるため、
図5の例では、小区間における予測発熱量として「2.3」が算出される。
【0036】
図3に戻り、「ガバナーパラメータ」には、パフォーマンス制限を行う際に適用する低
減ガバナーパラメータを示す情報が格納される。
図6から
図8は、実施形態におけるガバナーパラメータを例示する図である。
図6は、温度制限及びパフォーマンス制限のいずれもが行われていない状態に適用されるガバナーパラメータを例示する。
図7及び
図8は、パフォーマンス制限に用いられる低減ガバナーパラメータを例示する。
図6から
図8に例示されるガバナーパラメータ及び低減ガバナーパラメータは、「周波数」、「目標負荷率」及び「維持時間」の各項目を対応付けるテーブルとして例示される。「周波数」には、周波数制御部106がCPU101に供給するクロック信号の周波数(MHz)が格納される。「目標負荷率」には、CPU101の負荷率(%)に近くなるように周波数が決められる値が格納される。「維持時間」には、変更された周波数のクロック信号が継続して供給される最低時間(ms)が格納される。
【0037】
例えば、
図6に例示するガバナーパラメータ1073では、CPU101に供給されているクロック信号の周波数が100MHzであるときにCPU101の負荷率が40%を超えると、CPU101に供給されるクロック信号の周波数は200MHzに変更される。ガバナーパラメータ1073の例では、例えば、クロック信号の周波数が「300MHz」に変更されると、200ms継続して周波数300MHzのクロック信号がCPU101に供給される。200msを経過すると、CPU101に供給されるクロック信号の周波数は、ガバナーパラメータ1073において1段階低い周波数である「200MHz」に変更される。
【0038】
図7に例示される低減ガバナーパラメータ1074は、ガバナーパラメータ1073と比較して、周波数200MHz以上における目標負荷率が高く設定されているとともに、周波数300MHz以上における維持時間が短く設定される。そのため、低減ガバナーパラメータ1074は、高い周波数に遷移しにくくなるとともに、低い周波数に遷移しやすいガバナーパラメータとなっている。
【0039】
図8に例示される低減ガバナーパラメータ1075は、低減ガバナーパラメータ1074よりも更に、高い周波数に遷移しにくくなるとともに、低い周波数に遷移しやすいガバナーパラメータとなっている。ここで、いずれの低減ガバナーパラメータも、周波数制御部106が供給する周波数の上限を低下させるものではないため、周波数制御部106は、CPU101の負荷に応じて、CPU101の動作可能な最大周波数のクロック信号をCPU101に供給することができる。低減ガバナーパラメータ1074、1075は、CPU101に供給するクロック信号の周波数変動頻度パターンが異なるガバナーパラメータということができる。
【0040】
ガバナーパラメータ及び低減ガバナーパラメータにおける高い周波数への遷移の容易さは、目標負荷率によって制御可能である。目標負荷率を高くすることで、高い周波数へ遷移しにくくなる。一方で、目標負荷率を低くすることで、高い周波数遷移しやすくなる。また、低減ガバナーパラメータにおける低い周波数への遷移の容易さは、維持時間によって制御可能である。維持時間を長くすることで、低い周波数へ遷移しにくくなる。また、維持時間を短くすることで、低い周波数へ遷移しやすくなる。
【0041】
図9は、実施形態における、CPUの温度が制限温度に達するか否かの判定を模式的に示す図である。
図9において、縦軸は特徴データを例示し、横軸は時間を例示する。ここでは、特徴データとして、予測発熱量を採用する。ガバナー温度制御部107は、予測区間を区切った小区間ごとに、CPU101に供給されたクロック信号の周波数を基に算出した予測発熱量と、辞書データ1071の予測発熱量との差の絶対値を算出する。ガバナー温度制御部107は、小区間夫々で算出した差の絶対値を合算した非類似度を算出する。非類似度は、値が大きいほど、実測データと辞書データ1071との乖離が大きいことを示す。すなわち、ガバナー温度制御部107は、非類似度が大きいほど、CPU101
の温度が制限温度に達する可能性は低いと判定する。換言すれば、非類似度の大きさは、CPU101が温度制限に達する確率の低さを示すということもできる。本実施形態では、辞書データ1071には特徴データとして予測発熱量とともにサーミスタ103によって測定された温度が格納される。そこで、ガバナー温度制御部107は、CPU101の温度についても、予測発熱量と同様に、サーミスタ103が実測したCPU101の温度と、辞書データ1071に格納された温度の非類似度を算出する。ガバナー温度制御部107は、予測発熱量及び温度の少なくとも一方の非類似度が閾値以下である場合に、CPU101の温度が制限温度に達すると判定してもよい。また、ガバナー温度制御部107は、予測発熱量の非類似度及び温度の非類似度のいずれもが閾値以下である場合に、CPU101の温度が制限温度に達すると判定してもよい。
【0042】
<スマートフォン100の処理フロー>
図10は、実施形態に係るスマートフォンの処理フローの一例を示す図である。
図10に例示される処理は、スマートフォン100が起動している間、繰り返し実行される。以下、
図10を参照して、スマートフォン100の処理フローの一例について説明する。
【0043】
J1では、ガバナー温度制御部107は、CPU101で実行されているアプリケーションプログラムの名称を取得する。J2では、ガバナー温度制御部107は、J1で取得したアプリケーションプログラムの名称に対応した辞書データ1071が生成されているか否かを判定する。辞書データ1071が生成されている場合(J2でYES)、処理はJ3に進められる。辞書データ1071が生成されていない場合(J2でNO)、処理はJ5に進められる。
【0044】
J3では、ガバナー温度制御部107は、CPU101の実測のデータと、辞書データ1071とを基に、CPU101の温度が制限温度に達するか否かを判定する。制限温度に達すると判定した場合(J3でYES)、処理はJ4に進められる。制限温度に達しないと判定した場合(J3でNO)、処理は終了する。
【0045】
J4では、ガバナー温度制御部107は、CPU101に対するパフォーマンス制限を行う。パフォーマンス制限の詳細は、
図12を参照して説明する。
【0046】
J5では、ガバナー温度制御部107は、辞書データ1071を生成する。辞書データ1071を生成する処理の詳細は、
図11を参照して説明する。
【0047】
<辞書データ1071の生成処理>
図11は、実施形態における辞書データの生成処理の処理フローの一例を示す図である。
図11に例示する処理は、例えば、
図10のJ5において実行される。以下、
図11を参照して、辞書データ1071の生成処理の処理フローの一例について説明する。
【0048】
J51では、ガバナー温度制御部107は、CPU101の負荷変動パターンを監視する。J52では、ガバナー温度制御部107は、ガバナー制御部104によって温度制限が実行されたか否かを判定する。実行された場合(J52でYES)、処理はJ53に進められる。実行されていない場合(J52でNO)、処理はJ51に進められる。
【0049】
J53では、ガバナー温度制御部107は、温度制限が実行されるまでの予測区間に相当する期間における負荷変動パターンを保存する。負荷変動パターンの保存では、予測区間に相当する期間を小区間に分割し、分割した小区間夫々における負荷変動パターンを示す特徴データを保存すればよい。負荷変動パターンを保存する領域は、ガバナー温度制御部107内の記憶部であってもよいし、記憶部102であってもよい。
【0050】
J54では、ガバナー温度制御部107は、J53における負荷変動パターンの保存を閾値回数以上行ったか否かを判定する。換言すれば、ガバナー温度制御部107は、閾値個数以上の負荷変動パターンが保存されているか否かを判定する。保存された回数が閾値回数以上である場合(J54でYES)、処理はJ55に進められる。保存された回数が閾値未満である場合(J54でNO)、処理はJ51に進められる。
【0051】
J55では、ガバナー温度制御部107は、辞書データ1071に格納する特徴データを決定する。ガバナー温度制御部107は、小区間夫々について、閾値回数保存された特徴データの平均値を算出する。ガバナー温度制御部107は、算出した平均値を当該小区間における特徴データとして決定する。
【0052】
J56では、ガバナー温度制御部107は、予測区間における負荷変動パターンの特徴に基づいて、適用する低減ガバナーパラメータを決定する。ガバナー温度制御部107は、例えば、予測区間においてCPU101の負荷率の上下が長い周期で繰り返される場合、高い周波数に遷移しにくく、かつ、高い周波数から低い周波数に遷移しやすい低減ガバナーパラメータを採用すればよい。ガバナー温度制御部107は、例えば、予測区間においてCPU101の負荷率の上下が短い周期で繰り返される場合、高い周波数に遷移しやすく、かつ、高い周波数から低い周波数に遷移しやすい低減ガバナーパラメータを採用すればよい。ここで、周期の長短は、適宜決定した閾値を基に判定されればよい。
【0053】
J57では、ガバナー温度制御部107は、J55で決定した特徴データと、J56で決定した低減ガバナーパラメータとを、
図10のJ1で取得したアプリケーションプログラムの名称と対応付けて、辞書データ1071を生成する。
【0054】
<パフォーマンス制限の処理フロー>
図12は、実施形態におけるパフォーマンス制限の処理フローの一例を示す図である。
図12に例示する処理は、例えば、
図10のJ3及びJ4において実行される。以下、
図12を参照して、パフォーマンス制限の処理フローの一例について説明する。
【0055】
J31では、ガバナー温度制御部107は、実測したCPU101の負荷変動パターンと、辞書データ1071に格納された特徴データとの非類似度を算出する。J32では、ガバナー温度制御部107は、J31で算出した非類似度が閾値以下であるか否かを判定する。閾値以下である場合(J32でYES)、処理はJ41に進められる。閾値より大きい場合(J32でNO)、処理は終了される。J31及びJ32の処理は、
図10のJ3において実行される処理の一例である。
【0056】
J41では、ガバナー温度制御部107は、辞書データ1071において、
図10のJ1で取得したアプリケーションプログラムの名称に対応付けられた低減ガバナーパラメータの適用をガバナー制御部104に指示する。ガバナー制御部104は、指示された低減ガバナーパラメータを周波数制御部106に適用する。低減ガバナーパラメータを周波数制御部106に適用することは、「第2の処理能力に低下させる」ことの一例である。
【0057】
<実施形態の作用効果>
実施形態では、周波数制御部106からCPU101に供給するクロック信号の周波数の上限を第1周波数に低下させる温度制限を行う前に、予測区間において温度制限が発生するか否かを判定する。そして、温度制限が発生すると判定した場合に、温度制限よりも緩やかな制限であるパフォーマンス制限が行われる。パフォーマンス制限では、周波数制御部106からCPU101に供給するクロック信号の周波数の上限の低下は行われない。そのため、パフォーマンス制限が行われた状態であっても、高負荷の処理が実行される際には、CPU101には最大周波数のクロック信号が供給され得る。そのため、本実施
形態によれば、スマートフォン100の操作性の低下が抑制される。
【0058】
本実施形態では、スマートフォン100は、低減区間においてパフォーマンス制限を実行することで、CPU101の発熱量を抑制する。
図13は、パフォーマンス制限の実施の有無によるCPUの温度の変化を例示する図である。
図13では、縦軸がCPU101の温度を例示し、横軸が時間を例示する。実線のグラフが、低減区間においてパフォーマンス制限を実行した場合におけるCPU101の温度の推移を例示する。点線のグラフが、パフォーマンス制限を実行しない場合におけるCPU101の温度の推移を例示する。
図13を参照すると理解できるように、パフォーマンス制限を実行することで低減区間におけるCPU101の温度の上昇が抑制される。その結果、スマートフォン100は、温度制限が発生する頻度を低下させることができる。すなわち、スマートフォン100は、温度制限によって操作性が低下する頻度を抑えることができる。
【0059】
実施形態では、スマートフォン100は、CPU101が温度制限に達する確率を非類似度として数値化する。スマートフォン100は、この数値から周波数制御部106に適用するガバナーパラメータを変更すると判定した場合、辞書データ1071にしたがって低減ガバナーパラメータを選択する。ここで、辞書データ1071には、クロック信号の周波数変動頻度パターンやクロック信号の周波数変動幅を基に好適なガバナーパラメータが選択される。そして、選択された低減ガバナーパラメータが、アプリケーションプログラムの名称と対応付けて登録される。換言すれば、辞書データ1071においては、クロック信号の周波数変動頻度パターンとクロック信号の周波数変動幅の組み合わせがアプリケーションプログラムの名称によって示されるということができる。そのため、スマートフォン100は、辞書データ1071にしたがうことで、クロック信号の周波数変動頻度パターンとクロック信号の周波数変動幅とを基に、好適な低減ガバナーパラメータを選択することができる。また、スマートフォン100は、このように低減ガバナーパラメータを選択することで、低減ガバナーパラメータの選択にかかる計算量を削減することができる。ひいては、スマートフォン100は、CPU101の温度変化に対する低減ガバナーパラメータの適用の追従性を高めることができる。
【0060】
なお、実施形態における辞書データ1071では、アプリケーションプログラムと対応付けて低減ガバナーパラメータが記憶されたが、辞書データ1071はこのような構成に限定されない。辞書データ1071は、例えば、クロック信号の周波数変動頻度パターンとクロック信号の周波数変動幅との組み合わせに対して、低減ガバナーパラメータを対応付けるものであってもよい。また、実施形態において、辞書データ1071における「予測区間の長さ」はアプリケーションプログラム毎に設定されたが、「予測区間の長さ」は、予め決定した一定値であってもよい。
【0061】
実施形態では、アプリケーションプログラムの負荷変動パターンを辞書データ1071として保存し、辞書データ1071を参照して温度制限が発生するか否かが判定される。そのため、本実施形態によれば、スマートフォン100は、インストールされた複数のアプリケーションプログラム夫々の特性に応じて、温度制限が発生するか否かの判定を行うことができる。
【0062】
<変形例>
以上説明した実施形態では、辞書データ1071に格納する特徴データとして、予測発熱量と温度とが採用された。しかしながら、特徴データは他のデータであってもよい。例えば、CPU101の発熱量は、上記の通り、供給するクロック信号の周波数に応じて変動する。そこで、特徴データとして、CPU101に供給するクロック信号の周波数が採用されてもよい。
【0063】
以上説明した実施形態では、CPU101に供給するクロック信号の周波数を制御することで、CPU101の冷却が行われる。しかしながら、CPU101の冷却はこのような方法に限定されず、例えば、CPU101がマルチコア構成である場合において、駆動するコアの数を減少させてもよい。
【0064】
以上で開示した実施形態や変形例はそれぞれ組み合わせることができる。
【符号の説明】
【0065】
100:スマートフォン
101:CPU
102:記憶部
103:サーミスタ
104:ガバナー制御部
105:温度制御部
106:周波数制御部
107:ガバナー温度制御部
1071:辞書データ
1072:予測発熱量テーブル
1073:ガバナーパラメータ
1074、1075:低減ガバナーパラメータ