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

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

▶ 富士通株式会社の特許一覧

特許6051924情報処理装置の制御方法、制御プログラム、情報処理装置
<>
  • 特許6051924-情報処理装置の制御方法、制御プログラム、情報処理装置 図000002
  • 特許6051924-情報処理装置の制御方法、制御プログラム、情報処理装置 図000003
  • 特許6051924-情報処理装置の制御方法、制御プログラム、情報処理装置 図000004
  • 特許6051924-情報処理装置の制御方法、制御プログラム、情報処理装置 図000005
  • 特許6051924-情報処理装置の制御方法、制御プログラム、情報処理装置 図000006
  • 特許6051924-情報処理装置の制御方法、制御プログラム、情報処理装置 図000007
  • 特許6051924-情報処理装置の制御方法、制御プログラム、情報処理装置 図000008
  • 特許6051924-情報処理装置の制御方法、制御プログラム、情報処理装置 図000009
  • 特許6051924-情報処理装置の制御方法、制御プログラム、情報処理装置 図000010
  • 特許6051924-情報処理装置の制御方法、制御プログラム、情報処理装置 図000011
  • 特許6051924-情報処理装置の制御方法、制御プログラム、情報処理装置 図000012
  • 特許6051924-情報処理装置の制御方法、制御プログラム、情報処理装置 図000013
  • 特許6051924-情報処理装置の制御方法、制御プログラム、情報処理装置 図000014
  • 特許6051924-情報処理装置の制御方法、制御プログラム、情報処理装置 図000015
  • 特許6051924-情報処理装置の制御方法、制御プログラム、情報処理装置 図000016
  • 特許6051924-情報処理装置の制御方法、制御プログラム、情報処理装置 図000017
  • 特許6051924-情報処理装置の制御方法、制御プログラム、情報処理装置 図000018
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6051924
(24)【登録日】2016年12月9日
(45)【発行日】2016年12月27日
(54)【発明の名称】情報処理装置の制御方法、制御プログラム、情報処理装置
(51)【国際特許分類】
   G06F 1/32 20060101AFI20161219BHJP
   G06F 1/26 20060101ALI20161219BHJP
   G06F 9/50 20060101ALI20161219BHJP
   G06F 1/04 20060101ALI20161219BHJP
【FI】
   G06F1/32 Z
   G06F1/26 C
   G06F9/46 465D
   G06F1/04 575
【請求項の数】6
【全頁数】21
(21)【出願番号】特願2013-32663(P2013-32663)
(22)【出願日】2013年2月21日
(65)【公開番号】特開2014-164361(P2014-164361A)
(43)【公開日】2014年9月8日
【審査請求日】2015年10月7日
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100105142
【弁理士】
【氏名又は名称】下田 憲次
(72)【発明者】
【氏名】村上 岳生
【審査官】 征矢 崇
(56)【参考文献】
【文献】 特開2005−085164(JP,A)
【文献】 国際公開第2012/108058(WO,A1)
【文献】 国際公開第2012/086040(WO,A1)
【文献】 米国特許出願公開第2012/0117403(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F1/26−1/32
G06F1/04
G06F9/50
(57)【特許請求の範囲】
【請求項1】
マルチコアCPUの負荷状況に基づき、稼働コアの個数を増減させる情報処理装置の制御方法に於いて、
前記マルチコアCPUの稼働コアの個数がM個であるときの消費電力が、前記稼働コアの個数がM+N個であるときに前記マルチコアCPUを最低動作周波数で動作させたときの消費電力よりも小さい場合、前記稼働コアの個数のM個からM+N個への増加を禁止し、
前記マルチコアCPUの稼働コアの個数がM個であるときの消費電力が、前記稼働コアの個数がM+N個であるときの前記マルチコアCPUを最低動作周波数で動作させたときの消費電力よりも大きい場合、前記マルチコアCPUにより実行されるスレッド数に関する指標を算出し、前記スレッド数に関する指標に基づき、前記稼働コアの個数をM個からM+N個に増加するかどうかを判断する、情報処理装置の制御方法。
【請求項2】
請求項1に記載の情報処理装置の制御方法に於いて、
前記マルチコアCPUの動作周波数に基づき、前記マルチコアCPUの稼働コアの個数がM個であるときの消費電力が、前記稼働コアの個数がM+N個であるときに前記マルチコアCPUを最低動作周波数で動作させたときの消費電力よりも小さいかどうかを判断する、情報処理装置の制御方法。
【請求項3】
請求項1又は2に記載の情報処理装置の制御方法に於いて、
前記マルチコアCPUにより実行されるスレッド毎のCPU負荷を取得し、
前記CPU負荷がしきい値以上であるスレッド数を前記スレッド数に関する指標とする、情報処理装置の制御方法。
【請求項4】
請求項3に記載の情報処理装置の制御方法に於いて、
前記CPU負荷がしきい値以上であるスレッド数がM個以下である場合、前記稼働コアの個数のM個からM+N個への増加を禁止する、情報処理装置の制御方法。
【請求項5】
マルチコアCPUの負荷状況に基づき、稼働コアの個数を増減させる情報処理装置の制御プログラムに於いて、
前記制御プログラムは、前記情報処理装置に、
前記マルチコアCPUの稼働コアの個数がM個であるときの消費電力が、前記稼働コアの個数がM+N個であるときに前記マルチコアCPUを最低動作周波数で動作させたときの消費電力よりも小さい場合、前記稼働コアの個数をM個からM+N個に増加させず、
前記マルチコアCPUの稼働コアの個数がM個であるときの消費電力が、前記稼働コアの個数がM+N個であるときの前記マルチコアCPUを最低動作周波数で動作させたときの消費電力よりも大きい場合、前記マルチコアCPUにより実行されるスレッド数に関する指標を算出し、前記スレッド数に関する指標に基づき、前記稼働コアの個数をM個からM+N個に増加するかどうかを判断する、情報処理装置の制御プログラム。
【請求項6】
マルチコアCPUの負荷状況に基づき、稼働コアの個数を増減させる情報処理装置に於いて、
前記マルチコアCPUの稼働コアの個数がM個であるときの消費電力が、前記稼働コアの個数がM+N個であるときに前記マルチコアCPUを最低動作周波数で動作させたときの消費電力よりも小さい場合、前記稼働コアの個数をM個からM+N個に増加させず、前記マルチコアCPUの稼働コアの個数がM個であるときの消費電力が、前記稼働コアの個数がM+N個であるときの前記マルチコアCPUを最低動作周波数で動作させたときの消費電力よりも大きい場合、前記マルチコアCPUにより実行されるスレッド数に関する指標を算出し、前記スレッド数に関する指標に基づき、前記稼働コアの個数をM個からM+N個に増加するかどうかを判断するCPUコア制御判定部を備える、情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、マルチコアCPUを備える情報処理装置の制御方法、制御プログラム、及び情報処理装置に関する。
【背景技術】
【0002】
携帯情報端末の高性能化・多機能化に伴い、携帯情報端末の消費電力が増加する傾向にある。ところが、携帯情報端末に搭載されるバッテリから供給される電力には限界がある。このため、近年、携帯情報端末は、複数のコアを内蔵するマルチコアCPUを搭載するとともに、CPU負荷を観測しながら稼働コアの個数を動的に増減(最適化)することで、ユーザの操作性能を確保しつつ、CPU全体の消費電力を削減している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】国際公開2007−141849号公報
【特許文献2】特開2006−146605号公報
【特許文献3】特開2009−093383号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来技術にかかる携帯情報端末では、システム全体のCPU負荷に基づき、マルチコアCPUの稼働コアの個数を制御して、携帯情報端末の消費電力を抑制している。
【0005】
ところが、情報処理装置の益々の高性能化・多機能化が予想され、今後さらなる消費電力の削減が要求される。
【0006】
開示の技術によれば、消費電力を削減できる情報処理装置の制御方法、制御プログラム情報処理装置を提供する。
【課題を解決するための手段】
【0007】
開示の技術の一観点によれば、マルチコアCPUの負荷状況に基づき、稼働コアの個数を増減させる情報処理装置の制御方法に於いて、前記マルチコアCPUの稼働コアの個数がM個であるときの消費電力が、前記稼働コアの個数がM+N個であるときに前記マルチコアCPUを最低動作周波数で動作させたときの消費電力よりも小さい場合、前記稼働コアの個数M個からM+N個への増加を禁止し、前記マルチコアCPUの稼働コアの個数がM個であるときの消費電力が、前記稼働コアの個数がM+N個であるときの前記マルチコアCPUを最低動作周波数で動作させたときの消費電力よりも大きい場合、前記マルチコアCPUにより実行されるスレッド数に関する指標を算出し、前記スレッド数に関する指標に基づき、前記稼働コアの個数をM個からM+N個に増加するかどうかを判断する、情報処理装置の制御方法が提供される。
【発明の効果】
【0008】
開示の技術の一観点によれば、情報処理装置の消費電力を削減することができる。
【図面の簡単な説明】
【0009】
図1】第1の実施形態にかかるCPUの処理量(仕事量)及び消費電力の関係のグラフである。
図2】第1の実施形態にかかるCPUの稼働コアを増加させたときの消費電力の変化の模式図である。
図3】第1の実施形態にかかる携帯情報端末のハードウェア構成の概略図である。
図4】第1の実施形態にかかる携帯情報端末の機能ブロックの概略図である。
図5】第1の実施形態にかかるアプリ/サービス動作情報の概略図である。
図6】第1の実施形態にかかるCPUコア制御パラメータ情報の概略図である。
図7】第1の実施形態にかかるCPU制御情報の概略図である。
図8】第1の実施形態にかかるプロセス動作情報の概略図である。
図9】第1の実施形態にかかるシステム状態情報の概略図である。
図10】第1の実施形態にかかるCPUコア制御判定処理のフローチャートである。
図11】第1の実施形態にかかるコア増加判定処理のフローチャートである。
図12】第1の実施形態にかかるスレッド負荷計測処理のフローチャートである。
図13】第1の実施形態にかかるコア減少判定処理のフローチャートである。
図14】第2の実施形態にかかる携帯情報端末のハードウェア構成の概略図である。
図15】第2の実施形態にかかる携帯情報端末の機能ブロックの概略図である。
図16】第2の実施形態にかかるCPUコア制御パラメータ情報の概略図である。
図17】第2の実施形態にかかるシステム状態情報の概略図である。
【発明を実施するための形態】
【0010】
[マルチコアCPUの稼働コア数と消費電力]
図1図2を参照して、マルチコアCPU(以下、CPUとする)の稼働コア数と消費電力との関係を説明する。ここでは、マルチコアCPUとして、2つのコアを有する、所謂デュアルコアCPUを使用することとする。
【0011】
図1は、CPUの処理量(仕事量)及び消費電力の関係のグラフである。グラフでは、横軸を処理量とし、縦軸を消費電力としている。処理量は、動作周波数×稼働コア数[GHz]である。
【0012】
曲線1は、CPUの稼働コア数が1つであるときの関係、曲線2は、CPUの稼働コア数が2つであるときの関係である。曲線1、2の各プロットは、CPUの動作周波数を与えたときの、処理量(=動作周波数×稼働コア数)と消費電力の交差点である。
【0013】
曲線1の左側からn個目のプロットの動作周波数は、曲線2の左側からn個目のプロットの動作周波数に相当する。例えば、曲線1の左側から1個目のプロットの動作周波数が0.3[GHz]であれば、曲線2の左側から1番目のプロットの動作周波数も0.3[GHz]である。但し、横軸を処理量(=動作周波数×稼働コア数)としている為、曲線2の左側から1個目のプロットは、横軸上の2倍の位置、即ち0.3[GHz]×2[個/GHz]=0.6[GHz]の位置となる。
【0014】
図1に示すように、例えばCPUの動作周波数が高いときは(丸枠Aの範囲)、稼働コアを2個に増やすことで、同等の処理量を確保しつつ、CPUの消費電力を削減できることがわかる。ところが、例えばCPUの動作周波数が低いときは(丸枠Bの範囲)、CPUの稼働コアを2個に増加しても、CPUの消費電力を削減できない、ましてやCPUの稼働コアを2個に増やすことで、かえってCPUの消費電力が増加することがわかる。
【0015】
図2は、第1の実施形態にかかるCPUの稼働コアを増加させたときの消費電力の変化の模式図である。(a)は、CPUの動作周波数が高いとき(図1の丸枠Aの範囲に相当)、(b)はCPUの動作周波数が低いとき(図1の丸枠Bの範囲に相当)、をそれぞれ示している。
【0016】
図2(a)に示すように、CPUの動作周波数が高いときに、CPUの稼働コアを2個に増加すると、CPUの処理能力は2倍に増加するが、稼働コアの増加後、CPUの動作周波数は、CPUの処理能力がCPU負荷に見合うところまで引き下げられる。このため、CPUの動作周波数が高いときには、稼働コアを増加させることで、CPUの動作周波数を低下させることができるので、結果、CPUの消費電力を削減することができる。
【0017】
具体的には、CPUの動作周波数が高いときに、稼働コアを増加させると、曲線1の動作点a1は、曲線2の動作点c1に遷移して、動作点c1への遷移後、CPUの動作周波数が引き下げられることで、さらに曲線2の動作点b1(動作点a1の消費電力よりも低い)に遷移する。
【0018】
ところが、図2(b)に示すように、CPUの動作周波数が高いときに、CPUの稼働コアを増加させると、CPUの処理能力は2倍に増加するが、稼働コアの増加後、CPUの動作周波数は、CPUの動作周波数の最低値に阻まれ、十分に引き下げられない。このため、CPUの動作周波数が低いときには、稼働コアを増加させてもCPUの動作周波数を低下させることができず、結果、CPUの消費電力を十分に削減することができない。
【0019】
具体的には、CPUの動作周波数が低いときに、CPUの稼働コアを増加させると、曲線1の動作点a2は、曲線2の動作点b2に遷移するが、動作点b2への遷移後、CPUの動作周波数が引き下げられない為、さらなる動作点の遷移が生じない。このため、稼働コアを増加させても、CPUの消費電力を削減することができない。しかも、稼働コアが増加したことで、かえってCPUの消費電力が増加している。
【0020】
以上の事実を踏まえ、以下の実施形態では、CPUの動作周波数が低いときには、稼働コアの増加を禁止することで、CPUの消費電力の増加を抑制する。なお、「CPUの動作周波数が低いとき」とは、CPUの稼働コアの増加後の複数の動作点(曲線2のプロット)中に、CPUの稼働コアの増加前の動作点(曲線1のプロット)よりも消費電力が低い動作点が存在しないときに相当する。
【0021】
例えば、図1に示すように、CPUの稼働コアの増加前の動作点を「p1」とすると、曲線2の複数の動作点中に、動作点「p1」よりも消費電力が低い動作点が存在することがわかる。さらに、CPUの稼働コアの増加前の動作点を「p2」とすると、曲線2の複数の動作点中に、動作点「p2」よりも消費電力が低い動作点「p4」が存在することがわかる。このため、稼働コアの増加前の動作点が「p1」や「p2」であれば、稼働コアを増加することで、CPUの消費電力が削減される。
【0022】
一方、CPUの稼働コアの増加前の動作点を「p3」とすると、曲線2の複数のプロット中に、動作点「p3」よりも消費電力が低い動作点が存在しないことがわかる。このため、稼働コアの増加前の動作点が「p2」であれば、稼働コアを増加しても、CPUの消費電力が削減されない。従って、CPUの動作周波数が動作点「p2」の動作周波数よりも低いときには、CPUの稼働コアを増加させないこととなる。
【0023】
[第1の実施形態]
以下、図3図13を参照して、第1の実施形態にかかる携帯情報端末100を説明する。本実施形態では、携帯情報端末100として、例えばスマートフォンやタブレットPC(Personal Computer)等を使用しても良い。又、携帯情報端末100に搭載されるOS(Operating System)として、Android(登録商標)を使用しても良い。Androidは、OSカーネルと、アプリケーションフレームワーク/ライブラリと、を含み、本実施形態にかかる制御プログラムは、アプリケーションフレームワーク/ライブラリに組み込まれる。但し、本発明の態様は、これに限定されるものではなく、Android以外のOSを採用しても良い。さらに、本実施形態にかかる制御プログラムを、アプリケーションフレームワーク/ライブラリ以外に組み込んでも良い。
【0024】
(携帯情報端末100のハードウェア構成)
図3は、第1の実施形態にかかる携帯情報端末100のハードウェア構成の概略図である。
【0025】
図3に示すように、本実施形態にかかる携帯情報端末100は、CPU(Central Processing Unit)101、メインメモリ102、補助メモリ103、クロック供給回路104、電圧供給回路105、ディスプレイ106、タッチスクリーン107、をハードウェアモジュールとして備える。これらのハードウェアモジュールは、例えばバス108により相互接続されている。
【0026】
CPU101は、クロック供給回路104から供給されるクロック信号及び電圧供給回路105から供給される電圧により動作して、携帯情報端末100の各種ハードウェアモジュールを制御する。CPU101は、所謂デュアルコアCPUであって、「コア0」1011及び「コア1」1012を有する。さらに、CPU101は、補助メモリ103に格納された各種プログラムを読み出して、メインメモリ102にロードするとともに、該メインメモリ102にロードされた各種プログラムを実行することで、各種機能を実現する。各種機能の詳細は、後述することとする。本実施形態では、CPU101として、デュアルコアCPUを使用しているが、所謂マルチコアCPUであれば、例えばクアッドコアCPUなど、任意の数のコアを有していても良い。
【0027】
メインメモリ102は、CPU101により実行される各種プログラムを格納する。さらに、メインメモリ102は、CPU101のワークエリアとして使用され、CPU101による処理に必要な各種データを記憶する。メインメモリ102としては、例えばRAM(Random Access Memory)などを使用しても良い。
【0028】
補助メモリ103は、携帯情報端末100を動作させる各種プログラムを格納している。各種プログラムとしては、例えば、携帯情報端末100が実行するアプリケーションプログラムやOS(Operating System)などがある。アプリケーションプログラムとしては、例えば、ディスプレイ106にコンテンツ(実行結果)が表示され、ユーザが画面操作できる「アプリ」や、ディスプレイ106にコンテンツが表示されることがなく、アプリの動作の為にバックグラウンドで動作する「サービス」などが格納されている。但し、複数のアプリが起動している場合、アプリは、ディスプレイ106の前面にコンテンツが表示され、実際にユーザが画面操作できるアプリ(フォアグラウンドアプリ)と、ディスプレイ106の前面にコンテンツが表示されていなく、実際にはユーザが画面操作できないアプリ(バックグラウンドアプリ)の何れかとなる。本実施形態にかかる制御プログラムも補助メモリ103に格納されている。補助メモリ103としては、例えば、ハードディスクやフラッシュメモリ等の不揮発メモリを使用しても良い。
【0029】
ディスプレイ106は、CPU101により制御され、ユーザに画像情報を表示する。タッチスクリーン107は、ディスプレイ106に貼り付けられ、ユーザの指先やペン先などで接触された位置情報を入力する。
【0030】
(携帯情報端末100の機能ブロック)
図4は、第1の実施形態にかかる携帯情報端末100の機能ブロックの概略図である。
【0031】
図4に示すように、本実施形態にかかる携帯情報端末100は、アプリ実行管理部201、CPUコア制御判定部202、システム負荷計測部203、スレッド負荷計測部204、CPU周波数制御部205、CPU周波数/状態設定部206、プロセス/システム管理部207、CPU状態制御部208、タイマ部209、アプリ/サービス動作情報301、CPUコア制御パラメータ情報302、CPU制御情報303、プロセス動作情報304、システム状態情報305、を備える。
【0032】
アプリ実行管理部201、CPUコア制御判定部202、システム負荷計測部203、スレッド負荷計測部204、CPU周波数制御部205、CPU周波数/状態設定部206、プロセス/システム管理部207、CPU状態制御部208、タイマ部209、アプリ/サービス動作情報301、CPUコア制御パラメータ情報302、CPU制御情報303、プロセス動作情報304、システム状態情報305は、何れもCPU101が、AndroidのOSカーネルもしくはアプリケーションフレームワーク/ライブラリを実行することで実現される。
【0033】
なお、アプリ/サービス動作情報301、CPUコア制御パラメータ情報302、CPU制御情報303、プロセス動作情報304、システム状態情報305は、何れも補助メモリ103に構築される。
【0034】
アプリ実行管理部201は、アプリやサービスなどのプログラムの実行や停止を管理する。具体的には、アプリ実行管理部201は、アプリやサービスなどのアプリケーションプログラムの利用環境やプロセス状態に変化が生じた場合、後述するアプリ/サービス動作情報301の「種別」や「状態」を更新する。利用環境としては、フォアグラウンド及びバックグラウンドが定義される。例えば、アプリ実行管理部201は、フォアグラウンドでアプリケーションプログラムが動作を開始した場合、即ちフォアグラウンドでアプリケーションプログラムが起動もしくは再開された場合、アプリ/サービス動作情報301にアクセスして、「種別」を「フォアグラウンド」、「状態」を「実行中」、にそれぞれ更新する。
【0035】
CPUコア制御判定部202は、定期的にシステムの動作状態を観測して、CPU101の稼働コアを増減するか否かを判断する。具体的には、CPUコア制御判定部202は、システム状態情報305、CPUコア制御パラメータ情報302、などを参照して、「run_queue_avg(スレッドの実行キュー長の平均値)」と、CPU101により実行されているスレッド数(並列度)、CPU101の稼働コア数、CPU101の動作周波数、各種制御パラメータとに基づき、CPU制御情報303の「cpu1/online」の設定内容を変更する。
【0036】
スレッド負荷計測部204は、プロセス動作情報304を参照して、累積動作時間に基づき、CPU101により実行されているスレッドの並列度を算出する。
【0037】
システム負荷計測部203は、システム全体の動作状況を観測して、システム状態情報305の「run_queue_avg」及び「CPU利用率」の記録内容を参照し、コア制御判定に利用する。
【0038】
CPU周波数制御部205は、定期的にシステム状態情報305を参照して、システム状態情報305の「CPU利用率」に基づき、CPU周波数/状態設定部206に、CPU101の稼働コアの動作周波数の変更指示を通知する。
【0039】
CPU周波数/状態設定部206は、CPU状態制御部208からのON/OFF指示に基づき、CPU101の「コア1」1012のON/OFFを制御する。さらに、CPU周波数/状態設定部206は、CPU周波数制御部205からの動作周波数の変更指示に基づき、CPU101の稼働コアの動作周波数を制御する。
【0040】
プロセス/システム管理部207は、CPU101により実行されるプロセスの動作状況を観測して、プロセス動作情報304の「動作状態」、「累積動作時間」を更新する。さらに、プロセス/システム管理部207は、システム全体の動作状況を観測して、システム状態情報305の「Online」、「Offline」、「run_queue_avg」、「CPU利用率」、「動作周波数」を更新する。
【0041】
CPU状態制御部208は、定期的にCPU制御情報303を観測して、CPU制御情報303の「cpu1/online」に基づき、CPU周波数/状態設定部206に、「コア1」1012のON/OFF指示を通知する。例えば、「コア1」1012がONであるときに、「cpu1/online」が「1」から「0」に変更された場合、CPU状態制御部208は、CPU周波数/状態設定部206に「コア1」1012のOFF指示を通知する。逆に、「コア1」1012がOFFであるときに、「cpu1/online」が「0」から「1」に変更された場合、CPU状態制御部208は、CPU周波数/状態設定部206に「コア1」1012のON指示を通知する。
【0042】
タイマ部209は、例えば時計回路(図示しない)から取得した現在時刻を、例えばアプリ実行管理部201、CPUコア制御判定部202、システム負荷計測部203、スレッド負荷計測部204、CPU周波数制御部205、CPU周波数/状態設定部206、プロセス/システム管理部207、CPU状態制御部208に通知する。
【0043】
(アプリ/サービス動作情報301)
図5は、第1の実施形態にかかるアプリ/サービス動作情報301の概略図である。
【0044】
図5に示すように、アプリ/サービス動作情報301は、アプリケーションプログラム毎に、「プロセスID」、「プログラム名」、「種別」、「状態」を記憶する。アプリ/サービス動作情報301は、CPU101により実行される全アプリケーションプログラムのプロセスを記憶する。従って、アプリ/サービス動作情報301は、例えばアプリ(フォアグラウンドアプリ、バックグラウンドアプリ)及びサービスのプロセスも記憶する。「種別」としては、「フォアグラウンド」及び「バックグラウンド」が定義される。「状態」としては、「実行中」、「待機中」、「実行可能」、「停止中」、「ゾンビ」が定義される。アプリ/サービス動作情報301の「種別」及び「状態」は、アプリ実行管理部201により更新される。
【0045】
(CPUコア制御パラメータ情報302)
図6は、第1の実施形態にかかるCPUコア制御パラメータ情報302の概略図である。
【0046】
図6に示すように、CPUコア制御パラメータ情報302は、稼働コア数毎に、制御パラメータとして、「コア増加周波数しきい値1」、「コア増加周波数しきい値2」、「コア増加実行キュー長しきい値1」、「コア増加実行キュー長しきい値2」、「継続時間しきい値」、「スレッド負荷計測下限値」、「コア減少実行キュー長しきい値」、「並列度しきい値」を記憶する。
【0047】
「コア増加周波数しきい値1」、「コア増加周波数しきい値2」、「コア増加実行キュー長しきい値1」、「コア増加実行キュー長しきい値2」、「継続時間しきい値」、「スレッド負荷計測下限値」、「コア減少実行キュー長しきい値」、「並列度しきい値」は、何れもCPU101の稼働コア数を増加するか否かを判断する為に、即ちCPU101の「コア1」1012をONするか否かを判断する為に使用される。「継続時間しきい値」及び「コア減少実行キュー長しきい値」は、何れもCPU101の稼働コア数を減少するか否かを判断する為に、即ちCPU101の「コア1」1012をOFFするか否かを判断する為に使用される。
【0048】
なお、本実施形態にかかる制御パラメータは、CPUコア制御パラメータ情報302に記録されたパラメータに限定されるものではなく、例えばCPU101の最低動作周波数などの構成毎に設定されるものである。最低動作周波数は、CPU101に設定される複数の動作周波数の最低値である。なお、最低値は、CPU101の構成毎もしくはOSにより設定される。
【0049】
(CPU制御情報303)
図7は、第1の実施形態にかかるCPU制御情報303の概略図である。
【0050】
図7に示すように、CPU制御情報303は、CPU101の「コア1」1012のON/OFFを決定する為の「cpu1/online」として、「0」もしくは「1」を記憶する。本実施形態では、「コア1」1012の「OFF指示」に「0」を割り当て、「コア1」1012の「ON指示」に「1」を割り当てる。このため、CPU制御情報303の「cpu1/online」に「0」が登録された場合、CPU状態制御部208は、「コア1」1012の「OFF指示」をCPU周波数/状態設定部206に通知する。CPU制御情報303の「cpu1/online」に「1」が登録された場合、CPU状態制御部208は、「コア1」1012の「ON指示」をCPU周波数/状態設定部206に通知する。
【0051】
(プロセス動作情報304)
図8は、第1の実施形態にかかるプロセス動作情報304の概略図である。
【0052】
図8に示すように、プロセス動作情報304は、CPU101により生成されたスレッド毎に作成され、それぞれの「スレッドID(Sid)」、「動作状態(State)」、「親プロセスID(Ppid)」、「累積動作時間」を記憶する。なお、「親プロセスID(Pid)」は、スレッドの親プロセスのIDである。例えば、複数のスレッドが同一のアプリケーションプログラムから生成された場合、複数のスレッドに同一の「親プロセスID(Pid)」が記録される。
【0053】
「累積動作時間」は、アプリやサービスなどのアプリケーションプログラムの動作時間(ms)の累積値を記憶する。「累積動作時間」は、何れもアプリケーションプログラムの起動時刻を始点としてカウントされる。プロセス動作情報304の「スレッドID」、「動作状態」、「親プロセスID」、「累積動作時間」は、何れもプロセス/システム管理部207により観測毎に更新される。
【0054】
(システム状態情報305)
図9は、第1の実施形態にかかるシステム状態情報305の概略図である。
【0055】
図9に示すように、システム状態情報305は、「Online(オンラインCPUコア番号)」、「Offline(オフラインCPUコア番号)」、「run_queue_avg」、「CPU利用率(%)」、「動作周波数(MHz)」を記憶する。「Online」は、稼働中のCPUコア番号を記憶する。「Offline」は、非稼働のCPUコア番号を記憶する。従って、「コア0」1011及び「コア1」1012の双方が稼働している場合、「Online」に「0」及び「1」が記録され、「Offline」には何も記録されない。「コア0」1011だけが稼働している場合、「Online」に「0」が記録され、「Offline」に「1」が記録される。「run_queue_avg」は、CPU101による実行待ちのスレッドの個数の直近の平均値である。「CPU利用率」は、システム全体のCPU利用率、即ち単位時間あたりの全スレッドの実行時間の合計である。「動作周波数」は、CPU101の動作周波数である。システム状態情報305の「Online」、「Offline」、「run_queue_avg」、「CPU利用率」、「動作周波数」は、プロセス/システム管理部207により観測毎に更新される。
【0056】
(CPUコア制御判定処理)
図10は、第1の実施形態にかかるCPUコア制御判定処理のフローチャートである。
【0057】
図10に示すように、CPUコア制御判定部202は、先ず、CPU101の稼働コア数を増加するか否かを判定する為の「コア増加判定処理」を実行する(ステップS001)。「コア増加判定処理」の詳細は、後述することとする。
【0058】
次に、CPUコア制御判定部202は、CPU101の稼働コア数を減少させるか否かを判定する為の「コア減少判定処理」を実行する(ステップS001)。「コア減少判定処理」の詳細は、後述することとする。
【0059】
次に、CPUコア制御判定部202は、定期監視の為のタイマを設定して、スリープ状態に遷移する(ステップS003)。タイマの設定時間は、特に限定されるものではないが、本実施形態では、数10msとする。タイマの設定時間の満了後、CPUコア制御判定部202は、CPUコア制御判定処理のスタートから処理を実行する。
【0060】
(コア増加判定処理)
図11は、第1の実施形態にかかるコア増加判定処理のフローチャートである。
【0061】
ここでは、CPU101の「コア0」1011だけが稼動していることを前提とし、「コア1」1012の稼働を開始するか否かの判断プロセスを説明する。
【0062】
図11に示すように、CPUコア制御判定部202は、先ず、システム状態情報305を参照して、CPU101の稼働コアが1つであるか否かを判断する(ステップS011)。具体的には、CPUコア制御判定部202は、システム状態情報305の「Online」に「コア0」1011のコア番号「0」だけが登録されているか否かを判断する。さらに、CPUコア制御判定部202は、CPU101の稼働コアが1つであるか否かを判断した場合、タイマ部209からの時刻情報に基づき、条件継続時間の計測を開始する。
【0063】
ここで、CPU101の稼働コアが1つであると判断されない場合(ステップS011のNo)、CPUコア制御判定部202は、本実施形態にかかるコア増加判定処理を終了させる。
【0064】
一方、CPU101の稼働コアが1つであると判断された場合(ステップS011のYes)、CPUコア制御判定部202は、CPUコア制御パラメータ情報302を参照して、稼働コアが1つであるときの制御パラメータを取得する(ステップS012)。具体的には、CPUコア制御判定部202は、CPUコア制御パラメータ情報302の「コア増加周波数しきい値1」、「コア増加周波数しきい値2」、「コア増加実行キュー長しきい値1」、「コア増加実行キュー長しきい値2」、「継続時間しきい値」、「スレッド負荷計測下限値」、「並列度しきい値」を、制御パラメータとして取得する。
【0065】
次に、CPUコア制御判定部202は、システム状態情報305を参照して、スレッド負荷計測フラグを設定する(ステップS013)。具体的には、CPUコア制御判定部202は、システム状態情報305に記録されたCPU101の動作周波数が「スレッド負荷計測下限値」よりも大きければ、スレッド負荷計測フラグに「1」を記録、CPU101の動作周波数が「スレッド負荷計測下限値」よりも大きくなければ、スレッド負荷計測フラグに「0」を記録する。なお、スレッド負荷計測フラグは、スレッド毎の並列度を算出するかどうかを判断する為のフラグである。即ち、スレッド負荷計測フラグに「1」が記録されている場合、スレッド負荷計測部204は、スレッド毎のCPU利用率を算出するが、スレッド負荷計測フラグに「0」が記録されている場合、スレッド負荷計測部204は、スレッド毎のCPU利用率を算出しない。
【0066】
次に、CPUコア制御判定部202は、CPU101の動作周波数が「コア増加周波数しきい値1」よりも大きいか否かを判断する(ステップS014)。本実施形態では、「コア増加周波数しきい値1」を「700(MHz)」とする。
【0067】
ここで、CPU101の動作周波数が「コア増加周波数しきい値1」よりも大きいと判断されない場合(ステップS014のNo)、即ちCPU101の動作周波数が700(MHz)以下であると判断された場合、CPUコア制御判定部202は、タイマ部209からの時刻情報に基づき、条件継続時間を初期化して(ステップS023)、即ち0(sec)に設定して、本実施形態にかかるコア増加判定処理を終了させる。
【0068】
このように、本実施形態では、CPU101の動作周波数が「コア増加周波数しきい値1(700[MHz])」よりも大きいと判断されない場合、CPU101の稼働コアを増加しても、CPU101の消費電力が削減されないと判断して、CPUコア制御判定部202は、CPU101の稼働コアを増加することなく、コア増加判定処理を終了させる。
【0069】
一方、CPU101の動作周波数が「コア増加周波数しきい値1」よりも大きいと判断された場合(ステップS014のYes)、即ちCPU101の動作周波数が700(MHz)よりも大きいと判断された場合、CPUコア制御判定部202は、CPU101の動作周波数が「コア増加周波数しきい値2」よりも大きいか否かを判断する(ステップS015)。本実施形態では、「コア増加周波数しきい値2」を「1000(MHz)」とする。
【0070】
ここで、CPU101の動作周波数が「コア増加周波数しきい値2」よりも大きいと判断された場合(ステップS015のYes)、即ちCPU101の動作周波数が1000(MHz)よりも大きいと判断された場合、CPUコア制御判定部202は、システム状態情報305を参照して、スレッドの実行キュー長が「コア増加実行キュー長しきい値2」よりも大きく、かつ、スレッドの並列度が「並列度しきい値」よりも大きいかどうかを判断する(ステップS016)。本実施形態では、「コア増加実行キュー長しきい値2」を「1.5」とし、「並列度しきい値」を「2」とする。
【0071】
ここで、スレッドの実行キュー長が「コア増加実行キュー長しきい値2」よりも大きく、かつ、スレッドの並列度が「並列度しきい値」よりも大きいと判断されない場合(ステップS016のNo)、即ちスレッドの実行キュー長が1.5よりも大きく、かつ、スレッドの並列度が2よりも大きいと判断されない場合、CPUコア制御判定部202は、タイマ部209からの時刻情報に基づき、条件継続時間を初期化して(ステップS023)、即ち「0(sec)」に設定して、本実施形態にかかるコア増加判定処理を終了させる。
【0072】
一方、スレッドの実行キュー長が「コア増加実行キュー長しきい値2」よりも大きく、かつ、スレッドの並列度が「並列度しきい値」よりも大きいと判断された場合(ステップS016のYes)、即ちスレッドの実行キュー長が1.5よりも大きく、かつ、スレッドの並列度が2よりも大きい場合、CPUコア制御判定部202は、タイマ部209からの時刻情報に基づき、条件継続時間を更新する(ステップS017)。
【0073】
次に、CPUコア制御判定部202は、条件継続時間が「継続時間しきい値」よりも大きいか否かを判断する(ステップS018)。本実施形態では、「継続時間しきい値」を「300(ms)」とする。
【0074】
ここで、条件継続時間が「継続時間しきい値」よりも大きいと判断されない場合(ステップS018のNo)、即ち条件継続時間が300(ms)以下であると判断された場合、CPUコア制御判定部202は、本実施形態にかかるコア増加判定処理を終了させる。
【0075】
一方、条件継続時間が「継続時間しきい値」よりも大きいと判断された場合(ステップS018のYes)、即ち条件継続時間が300(ms)より大きいと判断された場合、CPUコア制御判定部202は、CPU101の「コア1」1012を稼働、即ちCPU101の稼働コアを増加させ(ステップS019)、本実施形態にかかるコア増加判定処理を終了させる。具体的には、CPUコア制御判定部202は、CPU制御情報303の「cpu1/online」を「1」に更新する。「cpu1/online」を「1」に更新すると、CPU状態制御部208からCPU周波数/状態設定部206に「コア1」1012のON指示が通知され、「コア0」1011及び「コア1」1012の双方が動作することとなる。
【0076】
一方、CPU101の動作周波数が「コア増加周波数しきい値2」よりも大きいと判断されない場合(ステップS015のNo)、即ちCPU101の動作周波数が700(MHz)よりも大きく、かつ、1000(MHz)以下であると判断された場合、CPUコア制御判定部202は、スレッドの実行キュー長が「コア増加実行キュー長しきい値1」よりも大きいか否かを判断する(ステップS020)。本実施形態では、「コア増加実行キュー長しきい値1」を「2.0」とする。
【0077】
ここで、スレッドの実行キュー長が「コア増加実行キュー長しきい値1」よりも大きいと判断されない場合(ステップS020のNo)、即ちスレッドの実行キュー長が「2.0」以下である場合、CPUコア制御判定部202は、タイマ部209からの時刻情報に基づき、条件継続時間を初期化して(ステップS023)、即ち「0(sec)」に設定して、本実施形態にかかるコア増加判定処理を終了させる。
【0078】
一方、スレッドの実行キュー長が「コア増加実行キュー長しきい値1」よりも大きいと判断された場合(ステップS020のYes)、即ちスレッドの実行キュー長が「2.0」よりも大きいと判断された場合、CPUコア制御判定部202は、タイマ部209からの時刻情報に基づき、条件継続時間を更新する(ステップS021)。
【0079】
このように、本実施形態では、CPU101の動作周波数が「コア増加周波数しきい値1(700[MHz])」〜「コア増加周波数しきい値(1000[MHz])」である場合、CPUコア制御判定部202は、CPU101の稼働コアを増加しても、CPU101の消費電力が削減されない可能性が高いと判断して、CPU101の稼働コアを増加するか否かを判定に、「コア増加実行キュー長しきい値2」よりも大きい「コア増加実行キュー長しきい値1」を使用して、CPU101の稼働コアが増加しにくい環境を整える。
【0080】
次に、CPUコア制御判定部202は、条件継続時間が「継続時間しきい値」よりも大きいか否かを判断する(ステップS022)。本実施形態では、「継続時間しきい値」を「300(ms)」とする。 ここで、条件継続時間が「継続時間しきい値」よりも大きいと判断されない場合(ステップS022のNo)、即ち条件継続時間が300(ms)以下である場合、CPUコア制御判定部202は、本実施形態にかかるコア増加判定処理を終了させる。
【0081】
一方、条件継続時間が「継続時間しきい値」よりも大きいと判断された場合(ステップS022のYes)、条件継続時間が300(ms)よりも大きいと判断された場合、CPUコア制御判定部202は、CPU101の「コア1」1012を稼働、即ちCPU101の稼働コアを増加させ(ステップS019)、本実施形態にかかるコア増加判定処理を終了させる。具体的には、CPUコア制御判定部202は、CPU制御情報303の「cpu1/online」を「1」に更新する。
【0082】
以上のように、本実施形態では、CPU101の動作周波数が「コア増加周波数しきい値1(700[MHz])」以下である場合、CPU101の稼働コアを増加しても、CPU101の消費電力が削減されないと判断して、CPU101の稼働コアの増加を取り止める。このため、稼働コアの増加に起因して、かえってCPU101の消費電力が増加するような、不本意な稼働コアの増加を減らすことができる。
【0083】
しかも、本実施形態では、CPU101の動作周波数が「コア増加周波数しきい値1(700[MHz])」〜「コア増加周波数しきい値2(1000[MHz])」である場合、CPU101の稼働コアを増加しても、CPU101の消費電力を削減されない可能性が高いと判断して、CPU101の稼働コアを増加するか否か判定する為に、「コア増加実行キュー長しきい値2」よりも大きい「コア増加実行キュー長しきい値1」を使用して、CPU101の稼働コアが増加しにくい環境を整える。このため、稼働コアの増加に起因して、かえってCPU101の消費電力が増加するような、不本意な稼働コアの増加を、さらに減らすことができる。
【0084】
(スレッド負荷計測処理)
図12は、第1の実施形態にかかるスレッド負荷計測処理のフローチャートである。
【0085】
図12に示すように、スレッド負荷計測部204は、CPUコア制御パラメータ情報302を参照して、CPU101の稼働コアが1つであるときの「並列度しきい値」を取得する。本実施形態では、「並列度しきい値」を「2」とする。
【0086】
次に、スレッド負荷計測部204は、スレッド負荷計測フラグがONであるか否か、即ちスレッド負荷計測フラグに「1」が記録されているか否かを判断する(ステップS032)。
【0087】
ここで、スレッド負荷計測フラグがONであると判断されない場合(ステップS032のNo)、即ちスレッド負荷計測フラグに「1」が記録されていない場合、スレッド負荷計測部204は、再度、スレッド負荷計測フラグがONであるか否かを判断する(ステップS032)。
【0088】
一方、スレッド負荷計測フラグがONであると判断された場合(ステップS032のYes)、即ちスレッド負荷計測フラグに「1」が記録されている場合、スレッド負荷計測部204は、アプリ/サービス動作情報301及びプロセス動作情報304を参照して、計測対象プロセスのスレッド毎のCPU利用率を算出する(ステップS033)。具体的には、スレッド負荷計測部204は、先ず、アプリ/サービス動作情報301を参照して、フォアグラウンドアプリのプロセスIDを取得する。続いて、スレッド負荷計測部204は、プロセス動作情報304を参照して、該プロセスIDに紐付けられたフォアグラウンドアプリを親プロセスとするスレッドを特定する。続いて、スレッド負荷計測部204は、該スレッドの累積動作時間に基づき、スレッド毎のCPU利用率を算出する。
【0089】
次に、スレッド負荷計測部204は、スレッド毎のCPU利用率と、CPU利用率しきい値と、に基づき、CPU101により実行されているスレッドの並列度を算出する(ステップS034)。具体的には、スレッド負荷計測部204は、スレッド毎のCPU利用率がCPU利用率しきい値よりも大きいスレッド数を算出する。本実施形態では、CPU利用率しきい値を「40%」とする。
【0090】
次に、スレッド負荷計測部204は、定期監視のためのタイマを設定して、スリープ状態に遷移する(ステップS035)。タイマの設定時間は、特に限定されるものではないが、本実施形態では、数十msとする。タイマの設定時間の満了後、スレッド負荷計測部204は、スレッド負荷計測処理のスタートから処理を実行する。
【0091】
以上のように、本実施形態では、CPU101の動作周波数が、「コア増加周波数しきい値1」よりも小さい「スレッド負荷計測下限値」以下である場合、CPU101の稼働コアを増加しても、CPU101の消費電力が削減されないと判断して、スレッドの並列度の算出を開始しない。このため、スレッドの並列度を算出する為の消費電力を削減することができる。
【0092】
(コア減少判定処理)
図13は、第1の実施形態にかかるコア減少判定処理のフローチャートである。
【0093】
ここでは、CPU101の「コア0」1011及び「コア1」1012の双方が稼動していることを前提とし、「コア1」1012の稼働を停止させるか否かの判断プロセスを説明する。
【0094】
図13に示すように、CPUコア制御判定部202は、CPUコア制御パラメータ情報302を参照して、CPU101の稼働コアが2つであるときの制御パラメータを取得する(ステップS041)。具体的には、CPUコア制御判定部202は、CPUコア制御パラメータ情報302の「継続時間しきい値」、「コア減少実行キュー長しきい値」を、制御パラメータとして取得する。
【0095】
次に、CPUコア制御判定部202は、システム状態情報305を参照して、スレッドの実行キュー長が「コア減少実行キュー長しきい値」よりも小さいか否かを判断する(ステップS042)。本実施形態では、「コア減少実行キュー長しきい値」を「1.2」とする。
【0096】
ここで、スレッドの実行キュー長が「コア減少実行キュー長しきい値」よりも小さいと判断されない場合(ステップS042のNo)、即ちスレッドの実行キュー長が1.2以上であると判断された場合、CPUコア制御判定部202は、タイマ部209からの時刻情報に基づき、条件継続時間を初期化して(ステップS046)、即ち0(sec)に設定して、本実施形態にかかるコア減少判定処理を終了させる。
【0097】
一方、スレッドの実行キュー長が「コア減少実行キュー長しきい値」よりも小さいと判断された場合(ステップS042のYes)、即ちスレッドの実行キュー長が1.2よりも小さいと判断された場合、CPUコア制御判定部202は、タイマ部209からの時刻情報に基づき、条件継続時間を更新する(ステップS043)。
【0098】
次に、CPUコア制御判定部202は、条件継続時間が「継続時間しきい値」よりも大きいか否かを判断する(ステップS044)。本実施形態では、「継続時間しきい値」を「300(ms)」とする。
【0099】
ここで、条件継続時間が「継続時間しきい値」よりも大きいと判断されない場合(ステップS044のNo)、即ち条件継続時間が300(ms)以下であると判断された場合、CPUコア制御判定部202は、本実施形態にかかるコア減少判定処理を終了させる。
【0100】
一方、条件継続時間が「継続時間しきい値」よりも大きいと判断された場合(ステップS044のYes)、即ち条件継続時間が300(ms)よりも大きいと判断された場合、CPUコア制御判定部202は、CPU101の「コア1」1012の稼働を停止、即ちCPU101の稼働コアを減少させる(ステップS045)。具体的には、CPUコア制御判定部202は、CPU制御情報303の「cpu1/online」を「0」に更新する。「cpu1/online」を「0」に更新すると、CPU状態制御部208からCPU周波数/状態設定部206に「コア1」1012のOFF指示が通知され、「コア1」1012の稼働が停止することとなる。
【0101】
[第2の実施形態]
以下、図14図17を参照して、第2の実施形態にかかる携帯情報端末100Aを説明する。
【0102】
(携帯情報端末100Aのハードウェア構成)
図14は、第2の実施形態にかかる携帯情報端末100Aのハードウェア構成の概略図である。
【0103】
第1の実施形態にかかる携帯情報端末100のCPU101は、「コア0」1011及び「コア1」1012を有するが、図14に示すように、第2の実施形態にかかる携帯情報端末100AのCPU101Aは、さらに、「コア2」1013及び「コア3」1014を有する。
【0104】
(携帯情報端末100Aの機能ブロック)
図15は、第2の実施形態にかかる携帯情報端末100Aの機能ブロックの概略図である。
【0105】
本実施形態では、4コアを有するCPU101AのCPUコア制御判定処理を実現する為に、CPUコア制御判定部202A、CPUコア制御パラメータ情報302A、システム状態情報305A、を備える。
【0106】
CPUコア制御判定部202A、CPUコア制御パラメータ情報302A、システム状態情報305Aは、何れもCPU101Aが、AndroidのOSカーネルもしくはアプリケーションフレームワーク/ライブラリを実行することで実現される。なお、CPUコア制御パラメータ情報302A及びシステム状態情報305Aは、何れも補助メモリ103に構築される。
【0107】
(CPUコア制御パラメータ情報302A)
図16は、第2の実施形態にかかるCPUコア制御パラメータ情報302Aの概略図である。
【0108】
図16に示すように、本実施形態にかかるCPUコア制御パラメータ情報302Aは、第1の実施形態にかかるCPUコア制御パラメータ情報302の制御パラメータに加えて、さらに、稼働コア数が「3」及び「4」のときの制御パラメータを記憶する。
【0109】
(システム状態情報305A)
図17は、第2の実施形態にかかるシステム状態情報305Aの概略図である。
【0110】
図17に示すように、本実施形態にかかるシステム状態情報305Aは、第1の実施形態にかかるシステム状態情報305の「Online(オンラインCPUコア番号)」、「Offline(オフラインCPUコア番号)」の何れかに、「コア0」1011のコア番号「0」及び「コア1」1012のコア番号「1」だけでなく、「コア2」1013のコア番号「2」及び「コア3」1014のコア番号「3」を記憶する。
【0111】
(コア増加判定処理)
第1の実施形態にかかるCPUコア制御判定部202は、CPU101の稼働コアが1つであるか否かを判断する(ステップS011)。ここで、CPU101の稼働コアが1つであると判断された場合(ステップS011のYes)、CPUコア制御判定部202は、稼働コアが1つであるときの制御パラメータを取得する(ステップS012)。
【0112】
これに対し、本実施形態にかかるCPUコア制御判定部202Aは、CPU101の稼働コアが1つであるか否かを判断するのではなく、システム状態情報305Aを参照して、CPU101の稼働コアの個数を取得する。続いて、本実施形態にかかるCPUコア制御判定部202Aは、稼働コアが1つであるときの制御パラメータを取得するのではなく、CPUコア制御パラメータ情報302Aを参照して、稼働コアの個数に紐付けられた制御パラメータを取得する。
【0113】
以降、稼働コアの個数に紐付けられた制御パラメータを使用して、第1の実施形態と同様、コア増加判定処理及びコア減少判定処理を実行する。
【0114】
以上のように、本発明は、デュアルコアCPUにのみ適用されるものではなく、クアッドコアCPUをはじめとするマルチコアCPUに適用されるものである。
【0115】
なお、第1、第2の実施形態では、携帯情報端末100として、例えばスマートフォンやタブレットPC等を想定しているが、本発明は、これに限定されるものではない。例えばマルチコアCPUを搭載していれば、例えばデスクトップPCやサーバ装置にも本発明を適用することができる。
【符号の説明】
【0116】
100:携帯情報端末
100A:携帯情報端末
101:CPU
101A:CPU
102:メインメモリ
103:補助メモリ
104:クロック供給回路
105:電圧供給回路
106:ディスプレイ
107:タッチスクリーン
108:バス
201:アプリ実行管理部
202:CPUコア制御判定部
202A:CPUコア制御判定部
203:システム負荷計測部
204:スレッド負荷計測部
205:CPU周波数制御部
206:CPU周波数/状態設定部
207:プロセス/システム管理部
208:CPU状態制御部
209:タイマ部
301:アプリ/サービス動作情報
302:CPUコア制御パラメータ情報
302A:CPUコア制御パラメータ情報
303:CPU制御情報
304:プロセス動作情報
305:システム状態情報
305A:システム状態情報
1011:コア0
1012:コア1
1013:コア2
1014:コア3
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17