JP6051924B2 - 情報処理装置の制御方法、制御プログラム、情報処理装置 - Google Patents

情報処理装置の制御方法、制御プログラム、情報処理装置 Download PDF

Info

Publication number
JP6051924B2
JP6051924B2 JP2013032663A JP2013032663A JP6051924B2 JP 6051924 B2 JP6051924 B2 JP 6051924B2 JP 2013032663 A JP2013032663 A JP 2013032663A JP 2013032663 A JP2013032663 A JP 2013032663A JP 6051924 B2 JP6051924 B2 JP 6051924B2
Authority
JP
Japan
Prior art keywords
cpu
core
operating
power consumption
cores
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013032663A
Other languages
English (en)
Other versions
JP2014164361A (ja
Inventor
岳生 村上
岳生 村上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013032663A priority Critical patent/JP6051924B2/ja
Priority to US14/157,569 priority patent/US9529407B2/en
Publication of JP2014164361A publication Critical patent/JP2014164361A/ja
Application granted granted Critical
Publication of JP6051924B2 publication Critical patent/JP6051924B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Description

本技術は、マルチコアCPUを備える情報処理装置の制御方法、制御プログラム、及び情報処理装置に関する。
携帯情報端末の高性能化・多機能化に伴い、携帯情報端末の消費電力が増加する傾向にある。ところが、携帯情報端末に搭載されるバッテリから供給される電力には限界がある。このため、近年、携帯情報端末は、複数のコアを内蔵するマルチコアCPUを搭載するとともに、CPU負荷を観測しながら稼働コアの個数を動的に増減(最適化)することで、ユーザの操作性能を確保しつつ、CPU全体の消費電力を削減している。
国際公開2007−141849号公報 特開2006−146605号公報 特開2009−093383号公報
従来技術にかかる携帯情報端末では、システム全体のCPU負荷に基づき、マルチコアCPUの稼働コアの個数を制御して、携帯情報端末の消費電力を抑制している。
ところが、情報処理装置の益々の高性能化・多機能化が予想され、今後さらなる消費電力の削減が要求される。
開示の技術によれば、消費電力を削減できる情報処理装置の制御方法、制御プログラム情報処理装置を提供する。
開示の技術の一観点によれば、マルチコアCPUの負荷状況に基づき、稼働コアの個数を増減させる情報処理装置の制御方法に於いて、前記マルチコアCPUの稼働コアの個数がM個であるときの消費電力が、前記稼働コアの個数がM+N個であるときに前記マルチコアCPUを最低動作周波数で動作させたときの消費電力よりも小さい場合、前記稼働コアの個数M個からM+N個への増加を禁止し、前記マルチコアCPUの稼働コアの個数がM個であるときの消費電力が、前記稼働コアの個数がM+N個であるときの前記マルチコアCPUを最低動作周波数で動作させたときの消費電力よりも大きい場合、前記マルチコアCPUにより実行されるスレッド数に関する指標を算出し、前記スレッド数に関する指標に基づき、前記稼働コアの個数をM個からM+N個に増加するかどうかを判断する、情報処理装置の制御方法が提供される。
開示の技術の一観点によれば、情報処理装置の消費電力を削減することができる。
第1の実施形態にかかるCPUの処理量(仕事量)及び消費電力の関係のグラフである。 第1の実施形態にかかるCPUの稼働コアを増加させたときの消費電力の変化の模式図である。 第1の実施形態にかかる携帯情報端末のハードウェア構成の概略図である。 第1の実施形態にかかる携帯情報端末の機能ブロックの概略図である。 第1の実施形態にかかるアプリ/サービス動作情報の概略図である。 第1の実施形態にかかるCPUコア制御パラメータ情報の概略図である。 第1の実施形態にかかるCPU制御情報の概略図である。 第1の実施形態にかかるプロセス動作情報の概略図である。 第1の実施形態にかかるシステム状態情報の概略図である。 第1の実施形態にかかるCPUコア制御判定処理のフローチャートである。 第1の実施形態にかかるコア増加判定処理のフローチャートである。 第1の実施形態にかかるスレッド負荷計測処理のフローチャートである。 第1の実施形態にかかるコア減少判定処理のフローチャートである。 第2の実施形態にかかる携帯情報端末のハードウェア構成の概略図である。 第2の実施形態にかかる携帯情報端末の機能ブロックの概略図である。 第2の実施形態にかかるCPUコア制御パラメータ情報の概略図である。 第2の実施形態にかかるシステム状態情報の概略図である。
[マルチコアCPUの稼働コア数と消費電力]
図1、図2を参照して、マルチコアCPU(以下、CPUとする)の稼働コア数と消費電力との関係を説明する。ここでは、マルチコアCPUとして、2つのコアを有する、所謂デュアルコアCPUを使用することとする。
図1は、CPUの処理量(仕事量)及び消費電力の関係のグラフである。グラフでは、横軸を処理量とし、縦軸を消費電力としている。処理量は、動作周波数×稼働コア数[GHz]である。
曲線1は、CPUの稼働コア数が1つであるときの関係、曲線2は、CPUの稼働コア数が2つであるときの関係である。曲線1、2の各プロットは、CPUの動作周波数を与えたときの、処理量(=動作周波数×稼働コア数)と消費電力の交差点である。
曲線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]の位置となる。
図1に示すように、例えばCPUの動作周波数が高いときは(丸枠Aの範囲)、稼働コアを2個に増やすことで、同等の処理量を確保しつつ、CPUの消費電力を削減できることがわかる。ところが、例えばCPUの動作周波数が低いときは(丸枠Bの範囲)、CPUの稼働コアを2個に増加しても、CPUの消費電力を削減できない、ましてやCPUの稼働コアを2個に増やすことで、かえってCPUの消費電力が増加することがわかる。
図2は、第1の実施形態にかかるCPUの稼働コアを増加させたときの消費電力の変化の模式図である。(a)は、CPUの動作周波数が高いとき(図1の丸枠Aの範囲に相当)、(b)はCPUの動作周波数が低いとき(図1の丸枠Bの範囲に相当)、をそれぞれ示している。
図2(a)に示すように、CPUの動作周波数が高いときに、CPUの稼働コアを2個に増加すると、CPUの処理能力は2倍に増加するが、稼働コアの増加後、CPUの動作周波数は、CPUの処理能力がCPU負荷に見合うところまで引き下げられる。このため、CPUの動作周波数が高いときには、稼働コアを増加させることで、CPUの動作周波数を低下させることができるので、結果、CPUの消費電力を削減することができる。
具体的には、CPUの動作周波数が高いときに、稼働コアを増加させると、曲線1の動作点a1は、曲線2の動作点c1に遷移して、動作点c1への遷移後、CPUの動作周波数が引き下げられることで、さらに曲線2の動作点b1(動作点a1の消費電力よりも低い)に遷移する。
ところが、図2(b)に示すように、CPUの動作周波数が高いときに、CPUの稼働コアを増加させると、CPUの処理能力は2倍に増加するが、稼働コアの増加後、CPUの動作周波数は、CPUの動作周波数の最低値に阻まれ、十分に引き下げられない。このため、CPUの動作周波数が低いときには、稼働コアを増加させてもCPUの動作周波数を低下させることができず、結果、CPUの消費電力を十分に削減することができない。
具体的には、CPUの動作周波数が低いときに、CPUの稼働コアを増加させると、曲線1の動作点a2は、曲線2の動作点b2に遷移するが、動作点b2への遷移後、CPUの動作周波数が引き下げられない為、さらなる動作点の遷移が生じない。このため、稼働コアを増加させても、CPUの消費電力を削減することができない。しかも、稼働コアが増加したことで、かえってCPUの消費電力が増加している。
以上の事実を踏まえ、以下の実施形態では、CPUの動作周波数が低いときには、稼働コアの増加を禁止することで、CPUの消費電力の増加を抑制する。なお、「CPUの動作周波数が低いとき」とは、CPUの稼働コアの増加後の複数の動作点(曲線2のプロット)中に、CPUの稼働コアの増加前の動作点(曲線1のプロット)よりも消費電力が低い動作点が存在しないときに相当する。
例えば、図1に示すように、CPUの稼働コアの増加前の動作点を「p1」とすると、曲線2の複数の動作点中に、動作点「p1」よりも消費電力が低い動作点が存在することがわかる。さらに、CPUの稼働コアの増加前の動作点を「p2」とすると、曲線2の複数の動作点中に、動作点「p2」よりも消費電力が低い動作点「p4」が存在することがわかる。このため、稼働コアの増加前の動作点が「p1」や「p2」であれば、稼働コアを増加することで、CPUの消費電力が削減される。
一方、CPUの稼働コアの増加前の動作点を「p3」とすると、曲線2の複数のプロット中に、動作点「p3」よりも消費電力が低い動作点が存在しないことがわかる。このため、稼働コアの増加前の動作点が「p2」であれば、稼働コアを増加しても、CPUの消費電力が削減されない。従って、CPUの動作周波数が動作点「p2」の動作周波数よりも低いときには、CPUの稼働コアを増加させないこととなる。
[第1の実施形態]
以下、図3〜図13を参照して、第1の実施形態にかかる携帯情報端末100を説明する。本実施形態では、携帯情報端末100として、例えばスマートフォンやタブレットPC(Personal Computer)等を使用しても良い。又、携帯情報端末100に搭載されるOS(Operating System)として、Android(登録商標)を使用しても良い。Androidは、OSカーネルと、アプリケーションフレームワーク/ライブラリと、を含み、本実施形態にかかる制御プログラムは、アプリケーションフレームワーク/ライブラリに組み込まれる。但し、本発明の態様は、これに限定されるものではなく、Android以外のOSを採用しても良い。さらに、本実施形態にかかる制御プログラムを、アプリケーションフレームワーク/ライブラリ以外に組み込んでも良い。
(携帯情報端末100のハードウェア構成)
図3は、第1の実施形態にかかる携帯情報端末100のハードウェア構成の概略図である。
図3に示すように、本実施形態にかかる携帯情報端末100は、CPU(Central Processing Unit)101、メインメモリ102、補助メモリ103、クロック供給回路104、電圧供給回路105、ディスプレイ106、タッチスクリーン107、をハードウェアモジュールとして備える。これらのハードウェアモジュールは、例えばバス108により相互接続されている。
CPU101は、クロック供給回路104から供給されるクロック信号及び電圧供給回路105から供給される電圧により動作して、携帯情報端末100の各種ハードウェアモジュールを制御する。CPU101は、所謂デュアルコアCPUであって、「コア0」1011及び「コア1」1012を有する。さらに、CPU101は、補助メモリ103に格納された各種プログラムを読み出して、メインメモリ102にロードするとともに、該メインメモリ102にロードされた各種プログラムを実行することで、各種機能を実現する。各種機能の詳細は、後述することとする。本実施形態では、CPU101として、デュアルコアCPUを使用しているが、所謂マルチコアCPUであれば、例えばクアッドコアCPUなど、任意の数のコアを有していても良い。
メインメモリ102は、CPU101により実行される各種プログラムを格納する。さらに、メインメモリ102は、CPU101のワークエリアとして使用され、CPU101による処理に必要な各種データを記憶する。メインメモリ102としては、例えばRAM(Random Access Memory)などを使用しても良い。
補助メモリ103は、携帯情報端末100を動作させる各種プログラムを格納している。各種プログラムとしては、例えば、携帯情報端末100が実行するアプリケーションプログラムやOS(Operating System)などがある。アプリケーションプログラムとしては、例えば、ディスプレイ106にコンテンツ(実行結果)が表示され、ユーザが画面操作できる「アプリ」や、ディスプレイ106にコンテンツが表示されることがなく、アプリの動作の為にバックグラウンドで動作する「サービス」などが格納されている。但し、複数のアプリが起動している場合、アプリは、ディスプレイ106の前面にコンテンツが表示され、実際にユーザが画面操作できるアプリ(フォアグラウンドアプリ)と、ディスプレイ106の前面にコンテンツが表示されていなく、実際にはユーザが画面操作できないアプリ(バックグラウンドアプリ)の何れかとなる。本実施形態にかかる制御プログラムも補助メモリ103に格納されている。補助メモリ103としては、例えば、ハードディスクやフラッシュメモリ等の不揮発メモリを使用しても良い。
ディスプレイ106は、CPU101により制御され、ユーザに画像情報を表示する。タッチスクリーン107は、ディスプレイ106に貼り付けられ、ユーザの指先やペン先などで接触された位置情報を入力する。
(携帯情報端末100の機能ブロック)
図4は、第1の実施形態にかかる携帯情報端末100の機能ブロックの概略図である。
図4に示すように、本実施形態にかかる携帯情報端末100は、アプリ実行管理部201、CPUコア制御判定部202、システム負荷計測部203、スレッド負荷計測部204、CPU周波数制御部205、CPU周波数/状態設定部206、プロセス/システム管理部207、CPU状態制御部208、タイマ部209、アプリ/サービス動作情報301、CPUコア制御パラメータ情報302、CPU制御情報303、プロセス動作情報304、システム状態情報305、を備える。
アプリ実行管理部201、CPUコア制御判定部202、システム負荷計測部203、スレッド負荷計測部204、CPU周波数制御部205、CPU周波数/状態設定部206、プロセス/システム管理部207、CPU状態制御部208、タイマ部209、アプリ/サービス動作情報301、CPUコア制御パラメータ情報302、CPU制御情報303、プロセス動作情報304、システム状態情報305は、何れもCPU101が、AndroidのOSカーネルもしくはアプリケーションフレームワーク/ライブラリを実行することで実現される。
なお、アプリ/サービス動作情報301、CPUコア制御パラメータ情報302、CPU制御情報303、プロセス動作情報304、システム状態情報305は、何れも補助メモリ103に構築される。
アプリ実行管理部201は、アプリやサービスなどのプログラムの実行や停止を管理する。具体的には、アプリ実行管理部201は、アプリやサービスなどのアプリケーションプログラムの利用環境やプロセス状態に変化が生じた場合、後述するアプリ/サービス動作情報301の「種別」や「状態」を更新する。利用環境としては、フォアグラウンド及びバックグラウンドが定義される。例えば、アプリ実行管理部201は、フォアグラウンドでアプリケーションプログラムが動作を開始した場合、即ちフォアグラウンドでアプリケーションプログラムが起動もしくは再開された場合、アプリ/サービス動作情報301にアクセスして、「種別」を「フォアグラウンド」、「状態」を「実行中」、にそれぞれ更新する。
CPUコア制御判定部202は、定期的にシステムの動作状態を観測して、CPU101の稼働コアを増減するか否かを判断する。具体的には、CPUコア制御判定部202は、システム状態情報305、CPUコア制御パラメータ情報302、などを参照して、「run_queue_avg(スレッドの実行キュー長の平均値)」と、CPU101により実行されているスレッド数(並列度)、CPU101の稼働コア数、CPU101の動作周波数、各種制御パラメータとに基づき、CPU制御情報303の「cpu1/online」の設定内容を変更する。
スレッド負荷計測部204は、プロセス動作情報304を参照して、累積動作時間に基づき、CPU101により実行されているスレッドの並列度を算出する。
システム負荷計測部203は、システム全体の動作状況を観測して、システム状態情報305の「run_queue_avg」及び「CPU利用率」の記録内容を参照し、コア制御判定に利用する。
CPU周波数制御部205は、定期的にシステム状態情報305を参照して、システム状態情報305の「CPU利用率」に基づき、CPU周波数/状態設定部206に、CPU101の稼働コアの動作周波数の変更指示を通知する。
CPU周波数/状態設定部206は、CPU状態制御部208からのON/OFF指示に基づき、CPU101の「コア1」1012のON/OFFを制御する。さらに、CPU周波数/状態設定部206は、CPU周波数制御部205からの動作周波数の変更指示に基づき、CPU101の稼働コアの動作周波数を制御する。
プロセス/システム管理部207は、CPU101により実行されるプロセスの動作状況を観測して、プロセス動作情報304の「動作状態」、「累積動作時間」を更新する。さらに、プロセス/システム管理部207は、システム全体の動作状況を観測して、システム状態情報305の「Online」、「Offline」、「run_queue_avg」、「CPU利用率」、「動作周波数」を更新する。
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指示を通知する。
タイマ部209は、例えば時計回路(図示しない)から取得した現在時刻を、例えばアプリ実行管理部201、CPUコア制御判定部202、システム負荷計測部203、スレッド負荷計測部204、CPU周波数制御部205、CPU周波数/状態設定部206、プロセス/システム管理部207、CPU状態制御部208に通知する。
(アプリ/サービス動作情報301)
図5は、第1の実施形態にかかるアプリ/サービス動作情報301の概略図である。
図5に示すように、アプリ/サービス動作情報301は、アプリケーションプログラム毎に、「プロセスID」、「プログラム名」、「種別」、「状態」を記憶する。アプリ/サービス動作情報301は、CPU101により実行される全アプリケーションプログラムのプロセスを記憶する。従って、アプリ/サービス動作情報301は、例えばアプリ(フォアグラウンドアプリ、バックグラウンドアプリ)及びサービスのプロセスも記憶する。「種別」としては、「フォアグラウンド」及び「バックグラウンド」が定義される。「状態」としては、「実行中」、「待機中」、「実行可能」、「停止中」、「ゾンビ」が定義される。アプリ/サービス動作情報301の「種別」及び「状態」は、アプリ実行管理部201により更新される。
(CPUコア制御パラメータ情報302)
図6は、第1の実施形態にかかるCPUコア制御パラメータ情報302の概略図である。
図6に示すように、CPUコア制御パラメータ情報302は、稼働コア数毎に、制御パラメータとして、「コア増加周波数しきい値1」、「コア増加周波数しきい値2」、「コア増加実行キュー長しきい値1」、「コア増加実行キュー長しきい値2」、「継続時間しきい値」、「スレッド負荷計測下限値」、「コア減少実行キュー長しきい値」、「並列度しきい値」を記憶する。
「コア増加周波数しきい値1」、「コア増加周波数しきい値2」、「コア増加実行キュー長しきい値1」、「コア増加実行キュー長しきい値2」、「継続時間しきい値」、「スレッド負荷計測下限値」、「コア減少実行キュー長しきい値」、「並列度しきい値」は、何れもCPU101の稼働コア数を増加するか否かを判断する為に、即ちCPU101の「コア1」1012をONするか否かを判断する為に使用される。「継続時間しきい値」及び「コア減少実行キュー長しきい値」は、何れもCPU101の稼働コア数を減少するか否かを判断する為に、即ちCPU101の「コア1」1012をOFFするか否かを判断する為に使用される。
なお、本実施形態にかかる制御パラメータは、CPUコア制御パラメータ情報302に記録されたパラメータに限定されるものではなく、例えばCPU101の最低動作周波数などの構成毎に設定されるものである。最低動作周波数は、CPU101に設定される複数の動作周波数の最低値である。なお、最低値は、CPU101の構成毎もしくはOSにより設定される。
(CPU制御情報303)
図7は、第1の実施形態にかかるCPU制御情報303の概略図である。
図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に通知する。
(プロセス動作情報304)
図8は、第1の実施形態にかかるプロセス動作情報304の概略図である。
図8に示すように、プロセス動作情報304は、CPU101により生成されたスレッド毎に作成され、それぞれの「スレッドID(Sid)」、「動作状態(State)」、「親プロセスID(Ppid)」、「累積動作時間」を記憶する。なお、「親プロセスID(Pid)」は、スレッドの親プロセスのIDである。例えば、複数のスレッドが同一のアプリケーションプログラムから生成された場合、複数のスレッドに同一の「親プロセスID(Pid)」が記録される。
「累積動作時間」は、アプリやサービスなどのアプリケーションプログラムの動作時間(ms)の累積値を記憶する。「累積動作時間」は、何れもアプリケーションプログラムの起動時刻を始点としてカウントされる。プロセス動作情報304の「スレッドID」、「動作状態」、「親プロセスID」、「累積動作時間」は、何れもプロセス/システム管理部207により観測毎に更新される。
(システム状態情報305)
図9は、第1の実施形態にかかるシステム状態情報305の概略図である。
図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により観測毎に更新される。
(CPUコア制御判定処理)
図10は、第1の実施形態にかかるCPUコア制御判定処理のフローチャートである。
図10に示すように、CPUコア制御判定部202は、先ず、CPU101の稼働コア数を増加するか否かを判定する為の「コア増加判定処理」を実行する(ステップS001)。「コア増加判定処理」の詳細は、後述することとする。
次に、CPUコア制御判定部202は、CPU101の稼働コア数を減少させるか否かを判定する為の「コア減少判定処理」を実行する(ステップS001)。「コア減少判定処理」の詳細は、後述することとする。
次に、CPUコア制御判定部202は、定期監視の為のタイマを設定して、スリープ状態に遷移する(ステップS003)。タイマの設定時間は、特に限定されるものではないが、本実施形態では、数10msとする。タイマの設定時間の満了後、CPUコア制御判定部202は、CPUコア制御判定処理のスタートから処理を実行する。
(コア増加判定処理)
図11は、第1の実施形態にかかるコア増加判定処理のフローチャートである。
ここでは、CPU101の「コア0」1011だけが稼動していることを前提とし、「コア1」1012の稼働を開始するか否かの判断プロセスを説明する。
図11に示すように、CPUコア制御判定部202は、先ず、システム状態情報305を参照して、CPU101の稼働コアが1つであるか否かを判断する(ステップS011)。具体的には、CPUコア制御判定部202は、システム状態情報305の「Online」に「コア0」1011のコア番号「0」だけが登録されているか否かを判断する。さらに、CPUコア制御判定部202は、CPU101の稼働コアが1つであるか否かを判断した場合、タイマ部209からの時刻情報に基づき、条件継続時間の計測を開始する。
ここで、CPU101の稼働コアが1つであると判断されない場合(ステップS011のNo)、CPUコア制御判定部202は、本実施形態にかかるコア増加判定処理を終了させる。
一方、CPU101の稼働コアが1つであると判断された場合(ステップS011のYes)、CPUコア制御判定部202は、CPUコア制御パラメータ情報302を参照して、稼働コアが1つであるときの制御パラメータを取得する(ステップS012)。具体的には、CPUコア制御判定部202は、CPUコア制御パラメータ情報302の「コア増加周波数しきい値1」、「コア増加周波数しきい値2」、「コア増加実行キュー長しきい値1」、「コア増加実行キュー長しきい値2」、「継続時間しきい値」、「スレッド負荷計測下限値」、「並列度しきい値」を、制御パラメータとして取得する。
次に、CPUコア制御判定部202は、システム状態情報305を参照して、スレッド負荷計測フラグを設定する(ステップS013)。具体的には、CPUコア制御判定部202は、システム状態情報305に記録されたCPU101の動作周波数が「スレッド負荷計測下限値」よりも大きければ、スレッド負荷計測フラグに「1」を記録、CPU101の動作周波数が「スレッド負荷計測下限値」よりも大きくなければ、スレッド負荷計測フラグに「0」を記録する。なお、スレッド負荷計測フラグは、スレッド毎の並列度を算出するかどうかを判断する為のフラグである。即ち、スレッド負荷計測フラグに「1」が記録されている場合、スレッド負荷計測部204は、スレッド毎のCPU利用率を算出するが、スレッド負荷計測フラグに「0」が記録されている場合、スレッド負荷計測部204は、スレッド毎のCPU利用率を算出しない。
次に、CPUコア制御判定部202は、CPU101の動作周波数が「コア増加周波数しきい値1」よりも大きいか否かを判断する(ステップS014)。本実施形態では、「コア増加周波数しきい値1」を「700(MHz)」とする。
ここで、CPU101の動作周波数が「コア増加周波数しきい値1」よりも大きいと判断されない場合(ステップS014のNo)、即ちCPU101の動作周波数が700(MHz)以下であると判断された場合、CPUコア制御判定部202は、タイマ部209からの時刻情報に基づき、条件継続時間を初期化して(ステップS023)、即ち0(sec)に設定して、本実施形態にかかるコア増加判定処理を終了させる。
このように、本実施形態では、CPU101の動作周波数が「コア増加周波数しきい値1(700[MHz])」よりも大きいと判断されない場合、CPU101の稼働コアを増加しても、CPU101の消費電力が削減されないと判断して、CPUコア制御判定部202は、CPU101の稼働コアを増加することなく、コア増加判定処理を終了させる。
一方、CPU101の動作周波数が「コア増加周波数しきい値1」よりも大きいと判断された場合(ステップS014のYes)、即ちCPU101の動作周波数が700(MHz)よりも大きいと判断された場合、CPUコア制御判定部202は、CPU101の動作周波数が「コア増加周波数しきい値2」よりも大きいか否かを判断する(ステップS015)。本実施形態では、「コア増加周波数しきい値2」を「1000(MHz)」とする。
ここで、CPU101の動作周波数が「コア増加周波数しきい値2」よりも大きいと判断された場合(ステップS015のYes)、即ちCPU101の動作周波数が1000(MHz)よりも大きいと判断された場合、CPUコア制御判定部202は、システム状態情報305を参照して、スレッドの実行キュー長が「コア増加実行キュー長しきい値2」よりも大きく、かつ、スレッドの並列度が「並列度しきい値」よりも大きいかどうかを判断する(ステップS016)。本実施形態では、「コア増加実行キュー長しきい値2」を「1.5」とし、「並列度しきい値」を「2」とする。
ここで、スレッドの実行キュー長が「コア増加実行キュー長しきい値2」よりも大きく、かつ、スレッドの並列度が「並列度しきい値」よりも大きいと判断されない場合(ステップS016のNo)、即ちスレッドの実行キュー長が1.5よりも大きく、かつ、スレッドの並列度が2よりも大きいと判断されない場合、CPUコア制御判定部202は、タイマ部209からの時刻情報に基づき、条件継続時間を初期化して(ステップS023)、即ち「0(sec)」に設定して、本実施形態にかかるコア増加判定処理を終了させる。
一方、スレッドの実行キュー長が「コア増加実行キュー長しきい値2」よりも大きく、かつ、スレッドの並列度が「並列度しきい値」よりも大きいと判断された場合(ステップS016のYes)、即ちスレッドの実行キュー長が1.5よりも大きく、かつ、スレッドの並列度が2よりも大きい場合、CPUコア制御判定部202は、タイマ部209からの時刻情報に基づき、条件継続時間を更新する(ステップS017)。
次に、CPUコア制御判定部202は、条件継続時間が「継続時間しきい値」よりも大きいか否かを判断する(ステップS018)。本実施形態では、「継続時間しきい値」を「300(ms)」とする。
ここで、条件継続時間が「継続時間しきい値」よりも大きいと判断されない場合(ステップS018のNo)、即ち条件継続時間が300(ms)以下であると判断された場合、CPUコア制御判定部202は、本実施形態にかかるコア増加判定処理を終了させる。
一方、条件継続時間が「継続時間しきい値」よりも大きいと判断された場合(ステップ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の双方が動作することとなる。
一方、CPU101の動作周波数が「コア増加周波数しきい値2」よりも大きいと判断されない場合(ステップS015のNo)、即ちCPU101の動作周波数が700(MHz)よりも大きく、かつ、1000(MHz)以下であると判断された場合、CPUコア制御判定部202は、スレッドの実行キュー長が「コア増加実行キュー長しきい値1」よりも大きいか否かを判断する(ステップS020)。本実施形態では、「コア増加実行キュー長しきい値1」を「2.0」とする。
ここで、スレッドの実行キュー長が「コア増加実行キュー長しきい値1」よりも大きいと判断されない場合(ステップS020のNo)、即ちスレッドの実行キュー長が「2.0」以下である場合、CPUコア制御判定部202は、タイマ部209からの時刻情報に基づき、条件継続時間を初期化して(ステップS023)、即ち「0(sec)」に設定して、本実施形態にかかるコア増加判定処理を終了させる。
一方、スレッドの実行キュー長が「コア増加実行キュー長しきい値1」よりも大きいと判断された場合(ステップS020のYes)、即ちスレッドの実行キュー長が「2.0」よりも大きいと判断された場合、CPUコア制御判定部202は、タイマ部209からの時刻情報に基づき、条件継続時間を更新する(ステップS021)。
このように、本実施形態では、CPU101の動作周波数が「コア増加周波数しきい値1(700[MHz])」〜「コア増加周波数しきい値(1000[MHz])」である場合、CPUコア制御判定部202は、CPU101の稼働コアを増加しても、CPU101の消費電力が削減されない可能性が高いと判断して、CPU101の稼働コアを増加するか否かを判定に、「コア増加実行キュー長しきい値2」よりも大きい「コア増加実行キュー長しきい値1」を使用して、CPU101の稼働コアが増加しにくい環境を整える。
次に、CPUコア制御判定部202は、条件継続時間が「継続時間しきい値」よりも大きいか否かを判断する(ステップS022)。本実施形態では、「継続時間しきい値」を「300(ms)」とする。 ここで、条件継続時間が「継続時間しきい値」よりも大きいと判断されない場合(ステップS022のNo)、即ち条件継続時間が300(ms)以下である場合、CPUコア制御判定部202は、本実施形態にかかるコア増加判定処理を終了させる。
一方、条件継続時間が「継続時間しきい値」よりも大きいと判断された場合(ステップS022のYes)、条件継続時間が300(ms)よりも大きいと判断された場合、CPUコア制御判定部202は、CPU101の「コア1」1012を稼働、即ちCPU101の稼働コアを増加させ(ステップS019)、本実施形態にかかるコア増加判定処理を終了させる。具体的には、CPUコア制御判定部202は、CPU制御情報303の「cpu1/online」を「1」に更新する。
以上のように、本実施形態では、CPU101の動作周波数が「コア増加周波数しきい値1(700[MHz])」以下である場合、CPU101の稼働コアを増加しても、CPU101の消費電力が削減されないと判断して、CPU101の稼働コアの増加を取り止める。このため、稼働コアの増加に起因して、かえってCPU101の消費電力が増加するような、不本意な稼働コアの増加を減らすことができる。
しかも、本実施形態では、CPU101の動作周波数が「コア増加周波数しきい値1(700[MHz])」〜「コア増加周波数しきい値2(1000[MHz])」である場合、CPU101の稼働コアを増加しても、CPU101の消費電力を削減されない可能性が高いと判断して、CPU101の稼働コアを増加するか否か判定する為に、「コア増加実行キュー長しきい値2」よりも大きい「コア増加実行キュー長しきい値1」を使用して、CPU101の稼働コアが増加しにくい環境を整える。このため、稼働コアの増加に起因して、かえってCPU101の消費電力が増加するような、不本意な稼働コアの増加を、さらに減らすことができる。
(スレッド負荷計測処理)
図12は、第1の実施形態にかかるスレッド負荷計測処理のフローチャートである。
図12に示すように、スレッド負荷計測部204は、CPUコア制御パラメータ情報302を参照して、CPU101の稼働コアが1つであるときの「並列度しきい値」を取得する。本実施形態では、「並列度しきい値」を「2」とする。
次に、スレッド負荷計測部204は、スレッド負荷計測フラグがONであるか否か、即ちスレッド負荷計測フラグに「1」が記録されているか否かを判断する(ステップS032)。
ここで、スレッド負荷計測フラグがONであると判断されない場合(ステップS032のNo)、即ちスレッド負荷計測フラグに「1」が記録されていない場合、スレッド負荷計測部204は、再度、スレッド負荷計測フラグがONであるか否かを判断する(ステップS032)。
一方、スレッド負荷計測フラグがONであると判断された場合(ステップS032のYes)、即ちスレッド負荷計測フラグに「1」が記録されている場合、スレッド負荷計測部204は、アプリ/サービス動作情報301及びプロセス動作情報304を参照して、計測対象プロセスのスレッド毎のCPU利用率を算出する(ステップS033)。具体的には、スレッド負荷計測部204は、先ず、アプリ/サービス動作情報301を参照して、フォアグラウンドアプリのプロセスIDを取得する。続いて、スレッド負荷計測部204は、プロセス動作情報304を参照して、該プロセスIDに紐付けられたフォアグラウンドアプリを親プロセスとするスレッドを特定する。続いて、スレッド負荷計測部204は、該スレッドの累積動作時間に基づき、スレッド毎のCPU利用率を算出する。
次に、スレッド負荷計測部204は、スレッド毎のCPU利用率と、CPU利用率しきい値と、に基づき、CPU101により実行されているスレッドの並列度を算出する(ステップS034)。具体的には、スレッド負荷計測部204は、スレッド毎のCPU利用率がCPU利用率しきい値よりも大きいスレッド数を算出する。本実施形態では、CPU利用率しきい値を「40%」とする。
次に、スレッド負荷計測部204は、定期監視のためのタイマを設定して、スリープ状態に遷移する(ステップS035)。タイマの設定時間は、特に限定されるものではないが、本実施形態では、数十msとする。タイマの設定時間の満了後、スレッド負荷計測部204は、スレッド負荷計測処理のスタートから処理を実行する。
以上のように、本実施形態では、CPU101の動作周波数が、「コア増加周波数しきい値1」よりも小さい「スレッド負荷計測下限値」以下である場合、CPU101の稼働コアを増加しても、CPU101の消費電力が削減されないと判断して、スレッドの並列度の算出を開始しない。このため、スレッドの並列度を算出する為の消費電力を削減することができる。
(コア減少判定処理)
図13は、第1の実施形態にかかるコア減少判定処理のフローチャートである。
ここでは、CPU101の「コア0」1011及び「コア1」1012の双方が稼動していることを前提とし、「コア1」1012の稼働を停止させるか否かの判断プロセスを説明する。
図13に示すように、CPUコア制御判定部202は、CPUコア制御パラメータ情報302を参照して、CPU101の稼働コアが2つであるときの制御パラメータを取得する(ステップS041)。具体的には、CPUコア制御判定部202は、CPUコア制御パラメータ情報302の「継続時間しきい値」、「コア減少実行キュー長しきい値」を、制御パラメータとして取得する。
次に、CPUコア制御判定部202は、システム状態情報305を参照して、スレッドの実行キュー長が「コア減少実行キュー長しきい値」よりも小さいか否かを判断する(ステップS042)。本実施形態では、「コア減少実行キュー長しきい値」を「1.2」とする。
ここで、スレッドの実行キュー長が「コア減少実行キュー長しきい値」よりも小さいと判断されない場合(ステップS042のNo)、即ちスレッドの実行キュー長が1.2以上であると判断された場合、CPUコア制御判定部202は、タイマ部209からの時刻情報に基づき、条件継続時間を初期化して(ステップS046)、即ち0(sec)に設定して、本実施形態にかかるコア減少判定処理を終了させる。
一方、スレッドの実行キュー長が「コア減少実行キュー長しきい値」よりも小さいと判断された場合(ステップS042のYes)、即ちスレッドの実行キュー長が1.2よりも小さいと判断された場合、CPUコア制御判定部202は、タイマ部209からの時刻情報に基づき、条件継続時間を更新する(ステップS043)。
次に、CPUコア制御判定部202は、条件継続時間が「継続時間しきい値」よりも大きいか否かを判断する(ステップS044)。本実施形態では、「継続時間しきい値」を「300(ms)」とする。
ここで、条件継続時間が「継続時間しきい値」よりも大きいと判断されない場合(ステップS044のNo)、即ち条件継続時間が300(ms)以下であると判断された場合、CPUコア制御判定部202は、本実施形態にかかるコア減少判定処理を終了させる。
一方、条件継続時間が「継続時間しきい値」よりも大きいと判断された場合(ステップ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の稼働が停止することとなる。
[第2の実施形態]
以下、図14〜図17を参照して、第2の実施形態にかかる携帯情報端末100Aを説明する。
(携帯情報端末100Aのハードウェア構成)
図14は、第2の実施形態にかかる携帯情報端末100Aのハードウェア構成の概略図である。
第1の実施形態にかかる携帯情報端末100のCPU101は、「コア0」1011及び「コア1」1012を有するが、図14に示すように、第2の実施形態にかかる携帯情報端末100AのCPU101Aは、さらに、「コア2」1013及び「コア3」1014を有する。
(携帯情報端末100Aの機能ブロック)
図15は、第2の実施形態にかかる携帯情報端末100Aの機能ブロックの概略図である。
本実施形態では、4コアを有するCPU101AのCPUコア制御判定処理を実現する為に、CPUコア制御判定部202A、CPUコア制御パラメータ情報302A、システム状態情報305A、を備える。
CPUコア制御判定部202A、CPUコア制御パラメータ情報302A、システム状態情報305Aは、何れもCPU101Aが、AndroidのOSカーネルもしくはアプリケーションフレームワーク/ライブラリを実行することで実現される。なお、CPUコア制御パラメータ情報302A及びシステム状態情報305Aは、何れも補助メモリ103に構築される。
(CPUコア制御パラメータ情報302A)
図16は、第2の実施形態にかかるCPUコア制御パラメータ情報302Aの概略図である。
図16に示すように、本実施形態にかかるCPUコア制御パラメータ情報302Aは、第1の実施形態にかかるCPUコア制御パラメータ情報302の制御パラメータに加えて、さらに、稼働コア数が「3」及び「4」のときの制御パラメータを記憶する。
(システム状態情報305A)
図17は、第2の実施形態にかかるシステム状態情報305Aの概略図である。
図17に示すように、本実施形態にかかるシステム状態情報305Aは、第1の実施形態にかかるシステム状態情報305の「Online(オンラインCPUコア番号)」、「Offline(オフラインCPUコア番号)」の何れかに、「コア0」1011のコア番号「0」及び「コア1」1012のコア番号「1」だけでなく、「コア2」1013のコア番号「2」及び「コア3」1014のコア番号「3」を記憶する。
(コア増加判定処理)
第1の実施形態にかかるCPUコア制御判定部202は、CPU101の稼働コアが1つであるか否かを判断する(ステップS011)。ここで、CPU101の稼働コアが1つであると判断された場合(ステップS011のYes)、CPUコア制御判定部202は、稼働コアが1つであるときの制御パラメータを取得する(ステップS012)。
これに対し、本実施形態にかかるCPUコア制御判定部202Aは、CPU101の稼働コアが1つであるか否かを判断するのではなく、システム状態情報305Aを参照して、CPU101の稼働コアの個数を取得する。続いて、本実施形態にかかるCPUコア制御判定部202Aは、稼働コアが1つであるときの制御パラメータを取得するのではなく、CPUコア制御パラメータ情報302Aを参照して、稼働コアの個数に紐付けられた制御パラメータを取得する。
以降、稼働コアの個数に紐付けられた制御パラメータを使用して、第1の実施形態と同様、コア増加判定処理及びコア減少判定処理を実行する。
以上のように、本発明は、デュアルコアCPUにのみ適用されるものではなく、クアッドコアCPUをはじめとするマルチコアCPUに適用されるものである。
なお、第1、第2の実施形態では、携帯情報端末100として、例えばスマートフォンやタブレットPC等を想定しているが、本発明は、これに限定されるものではない。例えばマルチコアCPUを搭載していれば、例えばデスクトップPCやサーバ装置にも本発明を適用することができる。
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

Claims (6)

  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コア制御判定部を備える、情報処理装置。
JP2013032663A 2013-02-21 2013-02-21 情報処理装置の制御方法、制御プログラム、情報処理装置 Active JP6051924B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013032663A JP6051924B2 (ja) 2013-02-21 2013-02-21 情報処理装置の制御方法、制御プログラム、情報処理装置
US14/157,569 US9529407B2 (en) 2013-02-21 2014-01-17 Method for controlling information processing apparatus and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013032663A JP6051924B2 (ja) 2013-02-21 2013-02-21 情報処理装置の制御方法、制御プログラム、情報処理装置

Publications (2)

Publication Number Publication Date
JP2014164361A JP2014164361A (ja) 2014-09-08
JP6051924B2 true JP6051924B2 (ja) 2016-12-27

Family

ID=51352183

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013032663A Active JP6051924B2 (ja) 2013-02-21 2013-02-21 情報処理装置の制御方法、制御プログラム、情報処理装置

Country Status (2)

Country Link
US (1) US9529407B2 (ja)
JP (1) JP6051924B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11734067B2 (en) 2019-08-06 2023-08-22 Samsung Electronics Co., Ltd. Multi-core system and controlling operation of the same

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI496087B (zh) * 2012-09-21 2015-08-11 Htc Corp 具多重中央處理單元之電子裝置及其效能管理方法
KR102169692B1 (ko) * 2014-07-08 2020-10-26 삼성전자주식회사 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 동적 전력 관리 방법
US10169104B2 (en) * 2014-11-19 2019-01-01 International Business Machines Corporation Virtual computing power management
US9740266B2 (en) * 2015-09-04 2017-08-22 Mediatek Inc. Apparatus and method for controlling multi-core of electronic device
US10372493B2 (en) * 2015-12-22 2019-08-06 Intel Corporation Thread and/or virtual machine scheduling for cores with diverse capabilities
US10073718B2 (en) 2016-01-15 2018-09-11 Intel Corporation Systems, methods and devices for determining work placement on processor cores
US11054883B2 (en) * 2017-06-19 2021-07-06 Advanced Micro Devices, Inc. Power efficiency optimization in throughput-based workloads

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005085164A (ja) * 2003-09-10 2005-03-31 Sharp Corp マルチプロセッサシステムの制御方法およびマルチプロセッサシステム
JP4553307B2 (ja) * 2004-11-19 2010-09-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、制御方法、及びプログラム
EP2031510A4 (en) 2006-06-07 2011-07-06 Hitachi Ltd INTEGRATED SEMICONDUCTOR SWITCHING
JP5182792B2 (ja) 2007-10-07 2013-04-17 アルパイン株式会社 マルチコアプロセッサ制御方法及び装置
US8397088B1 (en) * 2009-07-21 2013-03-12 The Research Foundation Of State University Of New York Apparatus and method for efficient estimation of the energy dissipation of processor based systems
KR101648978B1 (ko) * 2009-11-05 2016-08-18 삼성전자주식회사 저전력 멀티코어 시스템에서의 전력 제어 방법 및 장치
US9292662B2 (en) * 2009-12-17 2016-03-22 International Business Machines Corporation Method of exploiting spare processors to reduce energy consumption
JP5531679B2 (ja) * 2010-03-04 2014-06-25 日本電気株式会社 Smt対応cpuを有する情報処理装置の消費電力低減方法、消費電力低減装置及び消費電力低減プログラム
US8607083B2 (en) * 2010-04-01 2013-12-10 Intel Corporation Method and apparatus for interrupt power management
US8381006B2 (en) * 2010-04-08 2013-02-19 International Business Machines Corporation Reducing power requirements of a multiple core processor
US8627128B2 (en) * 2010-11-09 2014-01-07 International Business Machines Corporation Power management for processing capacity upgrade on demand
WO2012069881A1 (en) * 2010-11-25 2012-05-31 Freescale Semiconductor, Inc. Method and apparatus for managing power in a multi-core processor
JP5545376B2 (ja) * 2010-12-22 2014-07-09 富士通株式会社 マルチコアプロセッサシステム、および電力制御方法
CN103348324A (zh) * 2011-02-10 2013-10-09 富士通株式会社 调度方法、设计辅助方法以及系统
KR20130040485A (ko) * 2011-10-14 2013-04-24 삼성전자주식회사 휴대 단말기에서 중앙처리장치를 제어하는 장치 및 방법
WO2013075012A2 (en) * 2011-11-18 2013-05-23 The Regents Of The University Of Michigan Computational sprinting using multiple cores
US9569278B2 (en) * 2011-12-22 2017-02-14 Intel Corporation Asymmetric performance multicore architecture with same instruction set architecture
US9137848B2 (en) * 2012-01-31 2015-09-15 Lg Electronics Inc. Mobile terminal, controlling method thereof and recording medium thereof
JP2014026681A (ja) * 2012-07-24 2014-02-06 Ps4 Luxco S A R L 半導体装置及びこれを備えた情報処理システム
US20150277988A1 (en) * 2012-10-18 2015-10-01 Toyota Jidosha Kabushiki Kaisha Parallel computing device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11734067B2 (en) 2019-08-06 2023-08-22 Samsung Electronics Co., Ltd. Multi-core system and controlling operation of the same

Also Published As

Publication number Publication date
JP2014164361A (ja) 2014-09-08
US9529407B2 (en) 2016-12-27
US20140237274A1 (en) 2014-08-21

Similar Documents

Publication Publication Date Title
JP6051924B2 (ja) 情報処理装置の制御方法、制御プログラム、情報処理装置
US8695008B2 (en) Method and system for dynamically controlling power to multiple cores in a multicore processor of a portable computing device
US9618997B2 (en) Controlling a turbo mode frequency of a processor
US9626295B2 (en) Systems and methods for scheduling tasks in a heterogeneous processor cluster architecture using cache demand monitoring
US9134787B2 (en) Power-gating in a multi-core system without operating system intervention
JP5915406B2 (ja) 携帯端末装置の制御方法、制御プログラム及び携帯端末装置
TW200941209A (en) Power-aware thread schedulingard and dynamic use of processors
CN103268247B (zh) 任务执行及调整线程池中保留线程的数量的方法和装置
KR20170054485A (ko) 운영체제에서의 휴리스틱 프로세서 전력 관리
US20170160778A1 (en) Method and device for monitoring power-consuming applications, user terminal, computer program and storage medium
CN101777009B (zh) 应用程序的负载控管方法
US10275007B2 (en) Performance management for a multiple-CPU platform
CN112463367A (zh) 一种存储系统性能优化方法、系统及电子设备和存储介质
JP2013149221A (ja) プロセッサの制御装置およびその方法
JP6175980B2 (ja) Cpuの制御方法、制御プログラム、情報処理装置
JP6142709B2 (ja) 計測方法、計測プログラム、携帯情報端末、及びその制御方法
CN112817992A (zh) 执行更改任务的方法、装置、电子设备以及可读存储介质
JP6070321B2 (ja) 携帯情報端末、制御方法、制御プログラム
EP3340040B1 (en) Data processing system and data processing method
JP6217008B2 (ja) 電子機器、制御方法、及び、プログラム
CN115756866A (zh) 负载均衡方法、装置及存储介质
CN107636636B (zh) 调节处理器核操作
KR101353065B1 (ko) 실시간 운영체제의 테스크 스케줄링 테이블을 이용한 테스크 관리장치 및 관리방법
JPWO2013129061A1 (ja) 同時接続数制御システム、同時接続数制御サーバ、同時接続数制御方法および同時接続数制御プログラム
CN114003367B (zh) 风险监控方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151007

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20160401

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160823

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161017

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161101

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161114

R150 Certificate of patent or registration of utility model

Ref document number: 6051924

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150