JP5621613B2 - 情報処理装置、制御方法及びプログラム - Google Patents

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

Info

Publication number
JP5621613B2
JP5621613B2 JP2011009161A JP2011009161A JP5621613B2 JP 5621613 B2 JP5621613 B2 JP 5621613B2 JP 2011009161 A JP2011009161 A JP 2011009161A JP 2011009161 A JP2011009161 A JP 2011009161A JP 5621613 B2 JP5621613 B2 JP 5621613B2
Authority
JP
Japan
Prior art keywords
task
cpu
usage rate
processor
storage unit
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
JP2011009161A
Other languages
English (en)
Other versions
JP2012150668A (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 JP2011009161A priority Critical patent/JP5621613B2/ja
Publication of JP2012150668A publication Critical patent/JP2012150668A/ja
Application granted granted Critical
Publication of JP5621613B2 publication Critical patent/JP5621613B2/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/04Generating or distributing clock signals or signals derived directly therefrom
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)

Description

本発明は、プロセッサを有する情報処理装置、制御方法及びプログラムに関する。
情報処理装置においては、環境保全の観点から消費電力の低減化が求められている。情報処理装置のCPU(Central Processing Unit)の消費電力が機器全体の消費電力に占める割合が高いことから、CPUの動作周波数を制御し、消費電力の低減を図る技術が提案されている
特開2005−285093号公報 特開平10−143274号公報
しかしながら、従来の技術では、予めテーブルに記憶した特定のタスクに対応する要求性能を用いて制御を行うため、現実の使用状況に応じたCPUの制御が出来ないという問題があった。さらに、タスクは数多く存在するところ、従来技術では任意のシステムまたはタスクに対して十分対応できないという問題もあった。
1つの側面では、本発明は、使用状況に応じたプロセッサの制御が可能となる情報処理装置等を提供することにある。
本願に開示する情報処理装置は、プロセッサを有する情報処理装置において、所定のルールに従い前記プロセッサが複数のタスクを繰り返し実行する場合に、タスク毎に前記プロセッサでの動作履歴を記憶する記憶部と、該記憶部に記憶した動作履歴に基づき、各タスクに対する前記プロセッサの使用率を算出する算出部と、該算出部により算出した使用率に基づき各タスクに対する前記プロセッサの動作周波数を決定する決定部と、前記算出部による使用率の算出命令を受け付ける受け付け部と、該受け付け部による算出命令受け付け時から所定時間以内の動作履歴を前記記憶部から読み出す読み出し部とを備え、前記算出部は、前記読み出し部により読み出した動作履歴に基づき、各タスクに対する前記プロセッサの使用率を算出する
一態様によれば、複数のタスクの動作履歴に基づき、プロセッサの動作周波数を決定するので、使用状況に応じたプロセッサの制御が可能となる。また、一態様によれば、タスクが複数存在する場合でも、適切な動作周波数の決定が可能となる。
情報処理装置のハードウェア群を示すブロック図である。 第1履歴記憶部のレコードレイアウトを示す説明図である。 第2履歴記憶部のレコードレイアウトを示す説明図である。 動作周波数テーブルのレコードレイアウトを示す説明図である。 動作履歴記憶処理の手順を示すフローチャートである。 動作周波数の決定処理の手順を示すフローチャートである。 実施の形態2に係るサーバコンピュータのハードウェア群を示すブロック図である。 優先度記憶部のレコードレイアウトを示す説明図である。 実施の形態2に係る動作周波数テーブルのレコードレイアウトを示す説明図である。 実施の形態2に係る動作周波数の決定処理の手順を示すフローチャートである。 実施の形態3に係る動作周波数の決定処理の手順を示すフローチャートである。 実施の形態4に係る動作周波数の算出処理の手順を示すフローチャートである。 実施の形態4に係る動作周波数の算出処理の手順を示すフローチャートである。 実施の形態5に係るサーバコンピュータのハードウェア群を示すブロック図である。
実施の形態1
以下実施の形態を、図面を参照して説明する。図1は情報処理装置のハードウェア群を示すブロック図である。情報処理装置1は例えばサーバコンピュータ、パーソナルコンピュータまたはPDA(Personal Digital Assistance)等である。以下では情報処理装置1をサーバコンピュータ1であるものとして説明する。サーバコンピュータ1は、制御部としてのプロセッサ(以下、CPUという)11、RAM(Random Access Memory)12、入力部13、表示部14、記憶部15及び通信部16等を含む。CPU11は、バス17を介してハードウェア各部と接続されている。CPU11は各ハードウェアを制御すると共に、記憶部15に格納されたOS(Operating System)151及び制御プログラム153に従って、ソフトウェア機能を実行する。
通信部16はファイアウォールとしての機能を果たすゲートウェイ等であり、他の図示しないコンピュータ等との間でHTTP(HyperText Transfer Protocol)等により情報を送受信する。記憶部15は例えばハードディスクまたは大容量メモリ等である。記憶部15には上述したOS151が記憶されている。OS151はスケジューラ152及び制御プログラム153を有する。スケジューラ152は所定のルールに従い複数のタスクから一のタスクをCPU11に割り当てる。制御プログラム153には後述するように動作履歴の記憶、使用率の算出、動作周波数の決定及び動作周波数の制御等を行うプログラムが記述されている。なお、本実施形態においてはOS151内に制御プログラム153を設ける例を挙げて説明するがこれに限るものではない。OS151とは別の専用のプログラムとして記憶部15に記憶しても良い。
入力部13はマウス、キーボード及び電源スイッチ等の入力デバイスである。入力部13は、受け付けた操作情報をCPU11へ出力する。表示部14は液晶ディスプレイまたは有機EL(electroluminescence)ディスプレイ等であり、CPU11の指示に従い各種情報を表示する。クロック18は時間情報をCPU11へ出力する。RAM12は例えばSRAM(Static RAM)、DRAM(Dynamic RAM)、フラッシュメモリ等である。RAM12は、記憶部としても機能し、CPU11による各種プログラムの実行時に発生する種々のデータを一時的に記憶する。RAM12には、第1履歴記憶部121、第2履歴記憶部122及び動作周波数テーブル123が記憶される。
CPU11はタイムスタンプカウンタ(以下、TSC(Time Stamp Counter)という)111及びパフォーマンスカウンタ(以下、PMC(Performance Monitoring Counter)という)112を含む。TSC111はCPU11のクロックサイクル毎に増加するレジスタであり、1クロックに付き1ずつ値が加算される値を出力する。PMC112はCPU11のイベントを計測する。イベントは例えば、タスク実行期間中に、CPU11が停止していなかった(すなわちビジー状態であった)サイクル数、分岐命令数、実行命令数、バストトランザクション数、または、分岐予測失敗数等である。本実施形態では一例として、PMC112がタスク実行期間中にCPU11が停止していなかったサイクル数(以下、動作サイクル数という)を計測する例を挙げて説明するが、これに限るものではない。
図2は第1履歴記憶部121のレコードレイアウトを示す説明図である。第1履歴記憶部121は経過時間フィールド、実行タスクフィールド、TSCフィールド、及びPMCフィールドを含む。本実施形態においては、説明を容易にするために一例としてタスクA、タスクB及びタスクCの3つが存在し、スケジューラ152に従い、タスクA、タスクB及びタスクCが1msおきに繰り返し実行される例を挙げて説明する。なお、このスケジューラ152により設定される所定のルールは一例でありこれに限るものではない。さらに数多くのタスクを実行しても良く、また各タスクの実行時間は均等でなくても良い。またスケジューラ152の設定によりタスクA、タスクB、タスクCとしていたルールを、予め記憶した時間または予め定めた条件に合致した場合に、タスクA、タスクC、タスクBの順序で行うというルールへ変更して実行しても良い。CPU11はスケジューラ152に従い、最初にタスクAを1ms間実行する。CPU11は1ms経過後、タスクAからタスクBに切り替える。
経過時間フィールドには、最初のタスクを開始してからの経過時間が記憶される。CPU11はクロック18を参照し経過時間フィールドに経過時間を記憶する。実行タスクフィールドには実行済みのタスク名が経過時間に対応付けて記憶される。CPU11は、実行済みのタスクを実行タスクフィールドに記憶する。図2の例では、1ms経過後にタスクAの実行が完了したことから、経過時間1msに対応付けて実行タスクフィールドにタスクAが記憶される。またCPU11はタスクAからタスクBに切り替えた際に、TSC111から取得した値をTSCフィールドに記憶する。具体的には、CPU11はタスクAの実行開始時にTSC111を0にリセットし、タスクAの終了時にTSC111から出力される値(以下カウント数という)をTSCフィールドに記憶する。なお、CPU11はTSC111をリセットすることなく、タスクAの終了時におけるTSC111から出力される値から、タスクAの実行開始時にTSC111から出力された値を減じてカウント数としても良い。
CPU11はタスクAの実行開始時から実行終了時までの間に、PMC112からCPU11が停止していなかった動作サイクル数を取得する。図2は、CPU11及びTSC111の周波数を1GHzとし、タスクA、タスクB及びタスクCを1ms毎に切り替える例を示している。なお、Mは10の6乗である。経過時間1ms経過後はタスクAのカウント数として1M、動作サイクル数として0.1Mが対応付けて第1履歴記憶部121に記憶される。CPU11はタスクAの実行後、スケジューラ152に従い、タスクBを実行する。CPU11はTSC111及びPMC112を参照し、タスクBの実行開始時から終了時までのカウント数及び動作サイクル数を記憶する。図2の例では、2ms経過後にタスクBの動作履歴としてカウント数1M、動作サイクル数0.9Mと記憶される。動作サイクル数は0.9Mであるため、CPU11はタスクBの処理中、タスクAと比較して長時間動作していたことが理解できる。
CPU11はタスクBの実行後、スケジューラ152に従い、タスクCを実行する。同様にCPU11はTSC111及びPMC112を参照し、タスクCの実行開始時から終了時までのカウント数及び動作サイクル数を記憶する。図2の例では、3ms経過後にタスクCの動作履歴としてカウント数1M、動作サイクル数0.5Mと記憶される。CPU11はタスクCの実行後、スケジューラ152に従い、再びタスクAを実行する。CPU11はTSC111及びPMC112を参照し、タスクAの実行開始時から終了時までのカウント数及び動作サイクル数を記憶する。図2の例では、4ms経過後にタスクAの動作履歴としてカウント数1M、動作サイクル数0.1Mと記憶される。
CPU11はタスクAの実行後、スケジューラ152に従い、タスクBを実行する。CPU11はTSC111及びPMC112を参照し、タスクBの実行開始時から終了時までのカウント数及び動作サイクル数を記憶する。図2の例では、5ms経過後にタスクBの動作履歴としてカウント数1M、動作サイクル数0.7Mと記憶される。なお、本実施形態で述べる数値はあくまで一例でありこれに限るものではない。
図3は第2履歴記憶部122のレコードレイアウトを示す説明図である。第2履歴記憶部122は経過時間フィールド、タスクフィールド、累積カウント数フィールド、及び累積動作サイクル数フィールドを含む。図3では、説明のため図3A〜図3Fに第2履歴記憶部122の時間的変化を示している。図3Aは経過時間0ms、図3Bは経過時間1ms、図3Cは経過時間2ms、図3Dは経過時間3ms、図3Eは経過時間4ms、図3Fは経過時間5msの状態をそれぞれ示す。CPU11は第1履歴記憶部121のレコードが更新される度に、第2履歴記憶部122の記憶内容を更新する。
第2履歴記憶部122の経過時間フィールドには、スケジューラ152の実行及び制御プログラム153の実行に伴う第1番目のタスクの実行開始後からの経過時間が記憶される。タスクフィールドには各タスクを識別するための識別情報が記憶される。なお、本実施形態では説明のため、タスクの名称で記載しているが、プロセスIDを記憶しても良い。累積カウント数フィールドには、タスクの実行開始時からの累積カウント数をタスク毎に記憶している。例えば、図3Eの如く4ms経過後は、タスクAの累積カウント数は1M+1Mで2Mとなり、タスクBの累積カウント数及びタスクCの累積カウント数は依然として1Mである。
累積動作サイクル数フィールドには、タスクの実行開始時からの累積動作サイクル数をタスク毎に記憶している。例えば、図3Fの如く5ms経過後は、タスクAの累積動作サイクル数は0.1M+0.1Mで0.2Mとなる。また、タスクBの累積動作サイクル数は0.9M+0.7Mで1.6Mとなり、タスクCの累積動作サイクル数は依然として0.5Mである。
CPU11はあるタスクに係る使用率の算出命令を受け付けた場合に、第2履歴記憶部122を参照し、タスクを実行するのに必要なCPU11の使用率(以下、CPU使用率という)を算出する。例えば図3Eに示す経過時間4ms経過後に算出命令を受け付けた場合、CPU11は累積動作サイクル数フィールドに記憶した累積動作サイクル数を累積カウント数フィールドに記憶した累積カウント数で除し、100を乗じることでCPU使用率を算出する。図3EのタスクAのCPU使用率は0.2M÷2M×100で10%となる。またタスクBのCPU使用率は0.9M÷1Mで90%となる。タスクCのCPU使用率は0.5M÷1Mで50%となる。なお、タスクに係るCPU使用率の算出処理はこれに限るものではない。例えば、累積動作サイクル数または他のイベント数を、累積サイクル数または各タスクの実行時間で除すことにより算出しても良い。タスクCPU使用率の算出命令の出力タイミングは、制御プログラム153に記述されている。例えば、累積カウント数が閾値(例えば8M)を越えた場合、CPU11は算出命令を受け付ける。
その他、経過時間が予め記憶した時間(例えば10ms)を超えた場合、累積動作サイクル数が予め記憶した動作サイクル数(例えば3M)を超えた場合、または、各タスクの繰り返し実行回数が予め記憶した回数(例えば10回)を超えた場合に出力しても良い。さらに、CPU11はCPU使用率の算出命令を受け付けた後に、第2履歴記憶部122を参照し、継続してCPU使用率を算出しても良い。例えば、経過時間が5msを超えた場合、図3Fを参照し、タスクAのCPU使用率を10%、タスクBのCPU使用率を80%、タスクCのCPU使用率を50%と算出する。その他、CPU11はCPU使用率の算出命令を受け付けた時点で1度だけ、CPU使用率を算出しても良く、その他算出命令を受け付けた後に、定期的(例えば3ms毎)にCPU使用率を算出しても良い。本実施形態ではCPU11はCPU使用率の算出命令を受け付けた後、継続して各タスクのCPU使用率を算出する例を挙げて説明する。
図4は動作周波数テーブル123のレコードレイアウトを示す説明図である。動作周波数テーブル123はCPU使用率フィールド及び動作周波数フィールドを含む。動作周波数フィールドには、CPU使用率に対応付けてCPU11を動作させる動作周波数が記憶されている。CPU11は動作周波数テーブル123を参照し、算出したタスクに係るCPU使用率に基づき、対応する動作周波数を読み出す。CPU11は読み出した動作周波数をタスクに対応する動作周波数として決定する。例えば、図3Fに示す5ms経過後のタスクAのCPU使用率は10%であるので、タスクAに対するCPU11の動作周波数は0.3GHzとなる。一方、タスクBのCPU使用率は80%であるので、タスクBに対するCPU11の動作周波数は1GHzとなる。またタスクCのCPU使用率は50%であるので、タスクCに対するCPU11の動作周波数は0.5GHzとなる。
CPU11は決定したタスクに係る動作周波数に従い、タスクを実行する。なお、図4に示した数値例は一例でありこれに限るものではない。また、動作周波数テーブル123を設けるほかに、係数を乗じて各タスクに係る動作周波数を決定しても良い。例えばCPU11の最大動作周波数に、タスクに係るCPU使用率に基づく係数を乗じ、動作周波数を算出する。図3Fの例では、タスクBのCPU使用率は80%であることから100で除した値0.8を係数とする。係数0.8を最大動作周波数1GHzに乗じて、タスクBの動作周波数を0.8GHzとしても良い。
以上のハードウェア群においてソフトウェア処理を、フローチャートを用いて説明する。図5は動作履歴記憶処理の手順を示すフローチャートである。CPU11は制御プログラム153を起動する。CPU11はスケジューラ152により割り当てられたタスクの実行を開始する(ステップS51)。CPU11はタスクの実行を終了する(ステップS52)。CPU11はタスクを実行していた間のカウント数をTSC111から取得し、またPMC112から動作サイクル数を取得する(ステップS53)。CPU11は第1番目のタスクの実行を開始してからタスクの実行を終了するまでの経過時間、実行したタスク、カウント数、及び、動作サイクル数を対応付けて第1履歴記憶部121に記憶する(ステップS54)。CPU11は第1履歴記憶部121に記憶したカウント数及び動作サイクル数と第2履歴記憶部122に記憶した履歴とに基づき、累積カウント数及び累積動作サイクル数を第2履歴記憶部122に、経過時間及びタスクに対応付けて記憶する(ステップS55)。
CPU11は上述したステップS53〜S55の処理と並行して次に実行するタスクが存在するか否かを判断する(ステップS56)。CPU11はタスクが存在すると判断した場合(ステップS56でYES)、スケジューラ152により割り当てられたタスクを切り替える(ステップS57)。CPU11は処理をステップS51へ戻し、新たに割り当てられたタスクについて以上の処理を繰り返す。これにより第2番目、第3番目のタスクの累積カウント数及び累積動作サイクル数が第2履歴記憶部122に記憶される。一方、CPU11はスケジューラ152により割り当てられたタスクがなく、タスクが存在しないと判断した場合(ステップS56でNO)、処理を終了する。
図6は動作周波数の決定処理の手順を示すフローチャートである。CPU11は第2履歴記憶部122を参照し、タスクに係る累積カウント数が記憶部15に予め記憶した閾値を越えるか否かを判断する(ステップS61)。CPU11は閾値を越えないと判断した場合(ステップS61でNO)、以上の処理を繰り返す。CPU11は閾値を越えると判断した場合(ステップS61でYES)、タスクに係るCPU使用率の算出命令を制御プログラム153から受け付ける(ステップS62)。CPU11は第2履歴記憶部122を参照し、タスクのCPU使用率を算出する(ステップS63)。
CPU11は動作周波数テーブル123を参照し、タスクに対応する動作周波数を決定する(ステップS64)。CPU11は決定した動作周波数に従い、タスクを実行する(ステップS65)。最後にCPU11は第2履歴記憶部122を初期化(全レコードをクリア)する(ステップS66)。具体的には、CPU11は第2履歴記憶部122の全レコードをクリアする。これにより、時間局所性が保たれた状態での動作履歴に応じて適切な動作周波数にて各タスクを実行することができる。またこれにより、動作履歴に応じて適切な動作周波数にて各タスクを実行することができる。また数多くのタスクに対しても適切に動作周波数を決定することが可能となる。なお、ステップS66の処理はステップS63以降に行えば良い。またステップS66の処理は必ずしも実行する必要はない。
実施の形態2
実施の形態2はタスクの優先度に基づき動作周波数を決定する形態に関する。図7は実施の形態2に係るサーバコンピュータ1のハードウェア群を示すブロック図である。RAM12内に新たに優先度記憶部124が格納されている。図8は優先度記憶部124のレコードレイアウトを示す説明図である。優先度記憶部124にはタスクに対応付けて優先度が記憶されている。例えばタスクAは優先度が中、タスクBは優先度が高、タスクCは優先度が低と記憶されている。なお、優先度は数値を記憶しても良い。また本実施形態では優先度を3段階としたが、複数段階であればこれに限るものではない。なお、タスクの優先度は制御プログラム153に予め記述しておくほか、入力部13からオペレータが適宜の値を入力し、優先度記憶部124に記憶するようにしても良い。
図9は実施の形態2に係る動作周波数テーブル123のレコードレイアウトを示す説明図である。動作周波数テーブル123はCPU使用率フィールド、及び、優先度毎の動作周波数フィールドを含む。動作周波数フィールドには、CPU使用率に対応付けて、優先度毎の動作周波数が記憶されている。例えば優先度が高の場合、CPU使用率0%以上30%未満に対応付けて0.5GHz、CPU使用率30%以上70%未満に対応付けて0.7GHz、CPU使用率70%以上100%以下に対応付けて1GHzが記憶されている。優先度が中の場合、優先度が高の場合と比較して、低い動作周波数が記憶されている。例えば優先度が中の場合、CPU使用率0%以上30%未満に対応付けて0.3GHz、CPU使用率30%以上70%未満に対応付けて0.5GHz、CPU使用率70%以上100%以下に対応付けて0.8GHzが記憶されている。
さらに、優先度が低の場合、優先度が中の場合と比較して、低い動作周波数が記憶されている。例えば優先度が低の場合、CPU使用率0%以上30%未満に対応付けて0.2GHz、CPU使用率30%以上70%未満に対応付けて0.3GHz、CPU使用率70%以上100%以下に対応付けて0.6GHzが記憶されている。CPU11は、タスクの優先度を優先度記憶部124から読み出す。またCPU11は読み出した優先度及びタスクのCPU使用率に基づき、動作周波数テーブル123から対応する動作周波数を決定する。例えば、タスクBのCPU使用率が60%の場合、タスクBの優先度は高であるので、動作周波数は0.7GHzと決定される。なお、本実施形態においては優先度毎に複数の動作周波数の値を動作周波数テーブル123に記憶する例を挙げたがこれに限るものではない。例えば、実施の形態1で決定した動作周波数に、優先度に応じた係数を乗じることで、動作周波数を決定しても良い。例えば、優先度が高の場合、係数1を乗じ、優先度が中の場合、係数0.7を乗じ、優先度が低の場合、係数0.3を乗じ、動作周波数を補正すれば良い。
図10は実施の形態2に係る動作周波数の決定処理の手順を示すフローチャートである。実施の形態1で述べたとおり、CPU11は第2履歴記憶部122を参照し、タスクのCPU使用率を算出する(ステップS101)。CPU11はタスクの優先度を優先度記憶部124から読み出す(ステップS102)。CPU11は動作周波数テーブル123を参照し、優先度及びタスクのCPU使用率に基づき、タスクに対応する動作周波数を決定する(ステップS103)。CPU11は決定した動作周波数に従い、タスクを実行する(ステップS104)。これにより、優先すべきタスクについて速やかに処理を実行することが可能となる。なお、実施の形態1と同様に、適宜第2履歴記憶部122の内容を初期化しても良い。例えば、CPU11は定期的にタイマー割込みを受け(例えば1m毎のインターバル)、その度に第2履歴記憶部122を初期化(全レコードをクリア)する。これにより第2履歴記憶部122のレコードが常に現在の使用状況に保たれ、適切な動作周波数を決定することが可能となる。
本実施の形態2は以上の如きであり、その他は実施の形態1と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態3
実施の形態3は所定時間内の動作履歴を用いて動作周波数を決定する形態に関する。本実施形態においては経過時間が閾時間(例えば10ms)経過する度に算出命令を制御プログラム153から受け付ける例を挙げて説明する。またCPU11はタスクの算出命令を受け付けた時点から所定時間内(例えば8ms内)の動作履歴に基づき、CPU使用率を算出する例を挙げて説明する。
図11は実施の形態3に係る動作周波数の決定処理の手順を示すフローチャートである。CPU11は記憶部15から閾時間を読み出す。CPU11は第1履歴記憶部121に記憶した経過時間が閾時間を経過したか否かを判断する(ステップS111)。CPU11は閾時間を経過していないと判断した場合(ステップS111でNO)、以上の処理を繰り返す。CPU11は閾時間を経過したと判断した場合(ステップS111でYES)、制御プログラム153からタスクのCPU使用率の算出命令を受け付ける(ステップS112)。CPU11は記憶部15から所定時間を読み出す。CPU11は第1履歴記憶部121を参照し、ステップS112の算出命令受け付け時から所定時間遡った分のカウント数及び動作サイクル数をタスク毎に読み出す(ステップS113)。
CPU11は所定時間内の累積カウント数及び累積動作サイクル数をタスク毎に算出する(ステップS114)。CPU11は累積動作サイクル数を累積カウント数で除し、100を乗ずることで、各タスクのCPU使用率を算出する(ステップS115)。CPU11はタスクの優先度を優先度記憶部124から読み出す(ステップS116)。CPU11は動作周波数テーブル123を参照し、優先度及びタスクのCPU使用率に基づき、タスクに対応する動作周波数を決定する(ステップS117)。CPU11は決定した動作周波数に従い、タスクを実行する(ステップS118)。なお、実施の形態1の如く、優先度を考慮することなく動作周波数を決定しても良い。以上の処理はさらに閾時間を経過することで、ステップS112以降の処理が繰り返し実行される。これにより、現在の使用状況に応じた適切な動作周波数を決定することが可能となる。
本実施の形態3は以上の如きであり、その他は実施の形態1及び2と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態4
実施の形態4は実施の形態1の処理と実施の形態3の処理とを切り替えて実行する形態に関する。CPU11は、通常は第2履歴記憶部122に記憶した動作履歴に基づきCPU使用率を算出するが、所定時間内における動作履歴の変動に関する値が閾値を越える場合は、実施の形態3で述べたCPU使用率の算出処理を実行する。動作履歴の変動に関する値は、例えば、所定時間内の動作サイクル数の分散値、単位時間当たりの変化率、または平均値である。本実施形態では所定時間内の動作サイクル数の分散値を用いる例を挙げて説明する。
図12及び図13は実施の形態4に係る動作周波数の算出処理の手順を示すフローチャートである。CPU11は記憶部15から閾時間を読み出す。CPU11は第1履歴記憶部121に記憶した経過時間が閾時間を経過したか否かを判断する(ステップS121)。CPU11は閾時間を経過していないと判断した場合(ステップS121でNO)、以上の処理を繰り返す。CPU11は閾時間を経過したと判断した場合(ステップS121でYES)、制御プログラム153からタスクのCPU使用率の算出命令を受け付ける(ステップS122)。CPU11は記憶部15から所定時間を読み出す。CPU11は第1履歴記憶部121を参照し、ステップS122の算出命令受け付け時から所定時間遡った分のカウント数及び動作サイクル数をタスク毎に読み出す(ステップS123)。
CPU11は閾値を記憶部15から読み出す(ステップS124)。CPU11はステップS123で読み出した所定時間内の動作サイクル数の分散値を算出する(ステップS125)。CPU11は算出したタスクに係る分散値が読み出した閾値を越えるか否かを判断する(ステップS126)。CPU11は分散値が閾値を越えると判断した場合(ステップS126でYES)、当該タスクに係る所定時間内の累積カウント数及び累積動作サイクル数を算出する(ステップS127)。CPU11は累積動作サイクル数を累積カウント数で除し、100を乗ずることで、当該タスクのCPU使用率を算出する(ステップS128)。
CPU11はタスクに係る分散値が閾値を越えないと判断した場合(ステップS126でNO)、ステップS129へ移行する。CPU11はタスクの実行開始から算出命令を受け付けた時点までにステップS55の処理により第2履歴記憶部122に記憶された累積カウント数及び累積動作サイクル数に基づき、タスクのCPU使用率を算出する(ステップS129)。ステップS128及びS129の処理後、CPU11は処理をステップS1210へ移行させる。CPU11は全てのタスクについてCPU使用率を算出したか否かを判断する(ステップS1210)。
CPU11は全てのタスクについてCPU使用率を算出していないと判断した場合(ステップS1210でNO)、処理をステップS126へ戻す。これにより、各タスクのCPU使用率が算出される。CPU11は全てのタスクについてCPU使用率を算出したと判断した場合(ステップS1210でYES)、タスクの優先度を優先度記憶部124から読み出す(ステップS131)。CPU11は動作周波数テーブル123を参照し、優先度及びタスクのCPU使用率に基づき、タスクに対応する動作周波数を決定する(ステップS132)。CPU11は決定した動作周波数に従い、タスクを実行する(ステップS133)。なお、実施の形態1の如く、優先度を考慮することなく動作周波数を決定しても良い。以上の処理はさらに閾時間を経過することで、ステップS121以降の処理が繰り返し実行される。これにより、CPU使用率を算出する時点から所定時間前の動作履歴の変動が大きいタスクについてはその変動に応じた動作周波数を決定することが可能となる。また、変動が少ないタスクについては、長期間の履歴に基づく動作周波数を決定することが可能となる。
本実施の形態4は以上の如きであり、その他は実施の形態1乃至3と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態5
図14は実施の形態5に係るサーバコンピュータ1のハードウェア群を示すブロック図である。サーバコンピュータ1を動作させるためのプログラムは、ディスクドライブ等の読み取り部10AにCD-ROM、DVD(Digital Versatile Disc)ディスクまたはUSB(Universal Serial Bus)メモリ等の可搬型記録媒体1Aを読み取らせて記憶部15に記憶しても良い。また当該プログラムを記憶したフラッシュメモリ等の半導体メモリ1Bをサーバコンピュータ1内に実装しても良い。さらに、当該プログラムは、インターネット等の通信網Nを介して接続される他のサーバコンピュータ(図示せず)からダウンロードすることも可能である。以下に、その内容を説明する。
図14に示すサーバコンピュータ1は、上述した各種ソフトウェア処理を実行するプログラムを、可搬型記録媒体1Aまたは半導体メモリ1Bから読み取り、或いは、通信網Nを介して他のサーバコンピュータ(図示せず)からダウンロードする。当該プログラムは、制御プログラム153としてインストールされ、RAM12にロードして実行される。これにより、上述したサーバコンピュータ1として機能する。
本実施の形態5は以上の如きであり、その他は実施の形態1乃至4と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
以上の実施の形態1乃至5を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
プロセッサを有する情報処理装置において、
所定のルールに従い前記プロセッサが複数のタスクを繰り返し実行する場合に、タスク毎に前記プロセッサでの動作履歴を記憶する記憶部と、
該記憶部に記憶した動作履歴に基づき、各タスクに対する前記プロセッサの使用率を算出する算出部と、
該算出部により算出した使用率に基づき各タスクに対する前記プロセッサの動作周波数を決定する決定部と
を備える情報処理装置。
(付記2)
タスク毎に優先度を記憶した優先度記憶部を備え、
前記決定部は、
前記算出部により算出した使用率及び前記優先度記憶部に記憶した優先度に基づき各タスクに対する前記プロセッサの動作周波数を決定する
付記1に記載の情報処理装置。
(付記3)
前記算出部による使用率の算出命令を受け付ける受け付け部と、
該受け付け部による算出命令受け付け時から所定時間以内の動作履歴を前記記憶部から読み出す読み出し部とを備え、
前記算出部は、
前記読み出し部により読み出した動作履歴に基づき、各タスクに対する前記プロセッサの使用率を算出する
付記1または2に記載の情報処理装置。
(付記4)
タスク毎に優先度を記憶した優先度記憶部と、
使用率及び優先度に対応付けて動作周波数を記憶したテーブルとを備え、
前記決定部は、
前記テーブルを参照し、前記算出部により算出した使用率及び前記優先度記憶部に記憶した優先度に基づき、対応する各タスクの動作周波数を決定する
付記1に記載の情報処理装置。
(付記5)
前記算出部による使用率の算出命令を受け付ける受け付け部と、
該受け付け部による算出命令受け付け時から所定時間以内の動作履歴を前記記憶部から読み出す読み出し部と、
該読み出し部により読み出した動作履歴の変動に関する値が、閾値を越えるか否かを判断する判断部と、
前記算出部は、
前記判断部により閾値を越えると判断した場合に、前記読み出し部により読み出した動作履歴に基づき、各タスクに対する前記プロセッサの使用率を算出する
付記1または2に記載の情報処理装置。
(付記6)
情報処理装置のプロセッサに対する制御方法において、
所定のルールに従い前記プロセッサが複数のタスクを繰り返し実行する場合に、タスク毎に前記プロセッサでの動作履歴を記憶部に記憶し、
該記憶部に記憶した動作履歴に基づき、各タスクに対する前記プロセッサの使用率を算出し、
算出した使用率に基づき各タスクに対する前記プロセッサの動作周波数を決定する
制御方法。
(付記7)
プロセッサを有するコンピュータに用いられるプログラムにおいて、
コンピュータに、
所定のルールに従い前記プロセッサが複数のタスクを繰り返し実行する場合に、タスク毎に前記プロセッサでの動作履歴を記憶部に記憶し、
該記憶部に記憶した動作履歴に基づき、各タスクに対する前記プロセッサの使用率を算出し、
算出した使用率に基づき各タスクに対する前記プロセッサの動作周波数を決定する
処理を実行させるプログラム。
1 サーバコンピュータ
1A 可搬型記録媒体
1B 半導体メモリ
11 CPU
12 RAM
13 入力部
14 表示部
15 記憶部
153 制御プログラム
16 通信部
18 クロック
111 TSC
112 PMC
121 第1履歴記憶部
122 第2履歴記憶部
123 動作周波数テーブル
124 優先度記憶部
151 OS
152 スケジューラ
N 通信網

Claims (4)

  1. プロセッサを有する情報処理装置において、
    所定のルールに従い前記プロセッサが複数のタスクを繰り返し実行する場合に、タスク毎に前記プロセッサでの動作履歴を記憶する記憶部と、
    該記憶部に記憶した動作履歴に基づき、各タスクに対する前記プロセッサの使用率を算出する算出部と、
    該算出部により算出した使用率に基づき各タスクに対する前記プロセッサの動作周波数を決定する決定部と
    前記算出部による使用率の算出命令を受け付ける受け付け部と、
    該受け付け部による算出命令受け付け時から所定時間以内の動作履歴を前記記憶部から読み出す読み出し部とを備え、
    前記算出部は、
    前記読み出し部により読み出した動作履歴に基づき、各タスクに対する前記プロセッサの使用率を算出する
    報処理装置。
  2. タスク毎に優先度を記憶した優先度記憶部を備え、
    前記決定部は、
    前記算出部により算出した使用率及び前記優先度記憶部に記憶した優先度に基づき各タスクに対する前記プロセッサの動作周波数を決定する
    請求項1に記載の情報処理装置。
  3. 情報処理装置のプロセッサに対する制御方法において、
    所定のルールに従い前記プロセッサが複数のタスクを繰り返し実行する場合に、タスク毎に前記プロセッサでの動作履歴を記憶部に記憶し、
    該記憶部に記憶した動作履歴に基づき、各タスクに対する前記プロセッサの使用率を算出し、
    算出した使用率に基づき各タスクに対する前記プロセッサの動作周波数を決定し、
    使用率の算出命令を受け付け、
    該算出命令の受け付け時から所定時間以内の動作履歴を前記記憶部から読み出し、
    読み出した動作履歴に基づき、各タスクに対する前記プロセッサの使用率を算出する
    制御方法。
  4. プロセッサを有するコンピュータに用いられるプログラムにおいて、
    コンピュータに、
    所定のルールに従い前記プロセッサが複数のタスクを繰り返し実行する場合に、タスク毎に前記プロセッサでの動作履歴を記憶部に記憶し、
    該記憶部に記憶した動作履歴に基づき、各タスクに対する前記プロセッサの使用率を算出し、
    算出した使用率に基づき各タスクに対する前記プロセッサの動作周波数を決定し、
    使用率の算出命令を受け付け、
    該算出命令の受け付け時から所定時間以内の動作履歴を前記記憶部から読み出し、
    読み出した動作履歴に基づき、各タスクに対する前記プロセッサの使用率を算出する
    処理を実行させるプログラム。
JP2011009161A 2011-01-19 2011-01-19 情報処理装置、制御方法及びプログラム Active JP5621613B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011009161A JP5621613B2 (ja) 2011-01-19 2011-01-19 情報処理装置、制御方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011009161A JP5621613B2 (ja) 2011-01-19 2011-01-19 情報処理装置、制御方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2012150668A JP2012150668A (ja) 2012-08-09
JP5621613B2 true JP5621613B2 (ja) 2014-11-12

Family

ID=46792853

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011009161A Active JP5621613B2 (ja) 2011-01-19 2011-01-19 情報処理装置、制御方法及びプログラム

Country Status (1)

Country Link
JP (1) JP5621613B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2725450A4 (en) * 2012-08-30 2015-07-08 Huawei Device Co Ltd METHOD AND DEVICE FOR CONTROLLING A CENTRAL UNIT
JP6248608B2 (ja) * 2013-12-18 2017-12-20 富士通株式会社 情報処理装置、情報処理装置の性能測定方法および情報処理装置の性能測定プログラム
JP6750299B2 (ja) * 2015-10-13 2020-09-02 富士電機株式会社 情報処理システム
JP7145718B2 (ja) * 2018-10-09 2022-10-03 Fcnt株式会社 情報処理装置
KR102118799B1 (ko) * 2018-10-15 2020-06-03 중앙대학교 산학협력단 모바일 단말 장치 내의 프로세서의 전력을 관리하는 장치 및 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4490298B2 (ja) * 2004-03-02 2010-06-23 三菱電機株式会社 プロセッサ電力制御装置及びプロセッサ電力制御方法
JP2008077563A (ja) * 2006-09-25 2008-04-03 Nec Corp 電子機器およびcpu動作環境制御プログラム
JP2009175850A (ja) * 2008-01-22 2009-08-06 Nec Corp マルチ演算処理システム、マルチ演算処理方法、およびマルチ演算処理プログラム
JP5445914B2 (ja) * 2009-06-11 2014-03-19 日本電気株式会社 リソース配分システム、リソース配分方法及びリソース配分プログラム

Also Published As

Publication number Publication date
JP2012150668A (ja) 2012-08-09

Similar Documents

Publication Publication Date Title
US10277524B1 (en) Monitoring data streams and scaling computing resources based on the data streams
JP5621613B2 (ja) 情報処理装置、制御方法及びプログラム
US20150332195A1 (en) Facilitating performance monitoring for periodically scheduled workflows
JP6447217B2 (ja) 実行情報通知プログラム、情報処理装置および情報処理システム
US20180232036A1 (en) Adaptive power consumption management in smart devices
EP3016226B1 (en) Preventing device power on after unrecoverable error
JP2011186783A (ja) スナップショット管理方法、スナップショット管理装置、及びプログラム
US20160077571A1 (en) Heuristic Processor Power Management in Operating Systems
US10108449B2 (en) Work item management among worker threads of a computing device
JP6060756B2 (ja) 周波数制御装置、周波数制御方法および周波数制御プログラム
US20100235557A1 (en) Computer and control method for interrupting machine operation
JP2007207117A (ja) 性能監視装置、性能監視方法及びプログラム
JP2016224883A (ja) 異常検出方法、情報処理装置および異常検出プログラム
KR101212496B1 (ko) 모니터링 자원의 사용량 표현 방법, 컴퓨팅 장치 및 그 방법을 실행시키기 위한 프로그램을 기록한 기록 매체
US9690626B2 (en) Processing workloads in single-threaded environments
JP6626039B2 (ja) ブラックリスト設定装置、ブラックリスト設定方法およびブラックリスト設定プログラム
JP6148129B2 (ja) 情報処理装置、ファームウェア更新方法およびファームウェア更新プログラム
WO2015075803A1 (ja) 情報処理装置、方法、プログラム及び記録媒体
JP4812867B2 (ja) 時系列データ解析支援プログラム及び装置
US9058207B2 (en) Simulation apparatus, method, and computer-readable recording medium
US8793526B2 (en) Firmware management in a computing system
JP2018524658A (ja) プロセッサコア動作の調整
CN113886746A (zh) 页面加载方法、装置、设备和介质
US9304829B2 (en) Determining and ranking distributions of operations across execution environments
JP5949370B2 (ja) 制御装置、処理システム、制御プログラム、及び制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140624

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140625

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140731

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: 20140826

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140908

R150 Certificate of patent or registration of utility model

Ref document number: 5621613

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150