JP2008217628A - Cpuの省電力システム及び省電力方法 - Google Patents

Cpuの省電力システム及び省電力方法 Download PDF

Info

Publication number
JP2008217628A
JP2008217628A JP2007056564A JP2007056564A JP2008217628A JP 2008217628 A JP2008217628 A JP 2008217628A JP 2007056564 A JP2007056564 A JP 2007056564A JP 2007056564 A JP2007056564 A JP 2007056564A JP 2008217628 A JP2008217628 A JP 2008217628A
Authority
JP
Japan
Prior art keywords
cpu
current
frequency
usage rate
power control
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.)
Pending
Application number
JP2007056564A
Other languages
English (en)
Inventor
Takashi Kadohiro
崇 角廣
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2007056564A priority Critical patent/JP2008217628A/ja
Publication of JP2008217628A publication Critical patent/JP2008217628A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Power Sources (AREA)

Abstract

【課題】従来のCPUの省電力方法では、周波数切替条件が1つの閾値であり、周波数切替が頻発する場合は周波数切替条件を変更するようにしているため、きめ細かな周波数切り替えができず、スループットを保証しながら最大限の節電をすることが困難である。
【解決手段】CPUパワー制御手段101は、CPU現使用率取得手段102により取得した自CPUの現在のCPU使用率と下限CPU使用率及び上限CPU使用率とをそれぞれ比較し、下限CPU使用率より低く、かつ、自CPUの現周波数が最低でないときは、自CPUの周波数を1段階下げる。逆に、自CPUの現在のCPU使用率が上限CPU使用率より高く、かつ、自CPUの現周波数が最高でないと判定したときは、自CPUの周波数を1段階上げる。これにより、CPU使用率の低いときにはCPU周波数を低くして節電し、高いときにはスループットを落とさないようにすることができる。
【選択図】図1

Description

本発明はCPUの省電力システム及び省電力方法に係り、特にオペレーティングシステム(OS)におけるCPU(中央処理装置)の省電力システム及び省電力方法に関する。
従来の中央処理装置(CPU)の動作周波数の切り替えによる省電力方法には、CPUの周波数切替の条件として、データの入出力又は1つのCPUの稼働率を用いて省電力化を実現する方法が知られている(例えば、特許文献1参照)。この省電力方法では、CPUの稼働率を監視し、CPUの稼働率がCPUの周波数を切り替えるための周波数切替条件を満たしたときにCPUの周波数を切り替え、また、その周波数切替の頻度が周波数の切替条件を満たしたとき周波数切替条件を変更する周波数切替条件変更手段を備えた構成である。
この特許文献1記載のCPUの省電力方法によれば、CPUの稼働率に基づいてCPUの周波数切替を行い、その周波数切替の切替頻度が高い場合は、周波数切替条件の稼働率を切り替えることで、システム性能を著しく低下させることなく、省電力を図るようにしている。
また、クロック周波数を動的に変更できたり、HALT(休止)モードを設けたりしたパワーセーブ機能付きのCPUが現在利用可能であるが、このCPUでは、(1)OSがアイドル状態のときにHALT(休止)モードにする、(2)電源種別(AC電源駆動かバッテリ駆動か)や電池残量や発熱状態に応じてクロック周波数を落とす方法のいずれかで省電力方法が採られている。
特開平7−104883号公報
しかるに、特許文献1記載の従来のCPUの省電力方法は、周波数の切り替えが高いか低いかの2段階しかできず、また、周波数切替条件が1つの閾値(下げる場合と上げる場合で同一の値)であり、これにより周波数切替が頻発する場合は周波数切替条件を変更するようにしているため、きめ細かな周波数切り替えができず、パフォーマンス(スループット)を保証しながら最大限の節電をすることが困難である。
一方、パワーセーブ機能付きのCPUでは、オペレーティングシステム(OS)がパワーセーブ機能を利用してシステムがアイドル状態のときにHALTモードにする、電源種別(AC電源駆動かバッテリ駆動か)や電池残量や発熱状態に応じてクロック周波数を落とすなどの省電力方法を採用しているが、例えばAC電源駆動であっても省電力は重要な課題となっており、クロック周波数を電源毎に一律とするのではなくパフォーマンスと両立できる省電力方法が課題であり、パフォーマンス(スループット)を保証しながら最大限の節電をすることができない。
本発明は以上の点に鑑みなされたもので、CPU使用率を一定に保つようCPUのパワー制御を行うことで、システムのスループットと省電力のバランスを最適化し得るCPUの省電力システム及び省電力方法を提供することを目的とする。
上記の目的を達成するため、第1の発明は、コンピュータのCPUのパワー制御によりCPUの省電力化を行うCPUの省電力システムにおいて、コンピュータのオペレーティングシステムのレディタスクにCPUをスケジューリングするスケジューラと、スケジューラにより起動されてCPUの現在の使用率を取得して定期的に更新するCPU現使用率取得手段と、スケジューラにより起動されてCPU現使用率取得手段により取得されたCPUの現在の使用率を入力として受け、その現在の使用率と使用率の複数の閾値とを比較し、その比較結果に基づいて、CPUの現在のCPU周波数を制御することでCPUパワー制御を行うCPUパワー制御手段とを有することを特徴とする。
この発明では、CPUの現在の使用率と使用率の複数の閾値とを比較し、その比較結果に基づいて、CPUの現在のCPU周波数を制御することでCPUパワー制御を行うようにしたため、CPU使用率に応じてCPU周波数を制御して、CPU使用率の低いときにはCPU周波数を低くして節電し、高いときにはスループットを落とさないようにすることができると共に、CPU使用率が複数の閾値のいずれの閾値より高いか、低いか又はそれらの間にあるかによって、CPU周波数をきめ細かく制御することができる。
ここで、第2の発明は、第1の発明におけるCPUパワー制御手段が、複数の閾値として上限CPU使用率と下限CPU使用率とを用意し、CPUの現在の使用率が上限CPU使用率よりも高く、かつ、CPUの現在のCPU周波数が予め定めた最高周波数未満であるときは、現在のCPU周波数を1段階上げ、CPUの現在の使用率が下限CPU使用率よりも低く、かつ、CPUの現在のCPU周波数が予め定めた最低周波数よりも高いときは、現在のCPU周波数を1段階下げるパワー制御を行うと共に、変更後のCPU周波数を現在の周波数に更新することを特徴とする。
また、第3の発明は、第2の発明のCPUパワー制御手段が、スケジューラにより起動されたときの時刻を現時刻として取得し、その現時刻と前回のCPUのパワー制御実行時の前回評価時刻とが、予め定めた評価周期を経過しているときにのみパワー制御を行うと共に、そのパワー制御したときの時刻又はCPUの現在の使用率が上限CPU使用率と下限CPU使用率との間の値であると判定したときに、前回評価時刻を現時刻に更新することを特徴とする。
また、上記の目的を達成するため、第4の発明は、コンピュータを構成する複数のCPUのパワーを個別に制御することによりCPUの省電力化を行うCPUの省電力システムにおいて、コンピュータのオペレーティングシステムのレディタスクに複数のCPUをスケジューリングするスケジューラと、スケジューラにより起動されて複数のCPUの現在の使用率を取得して定期的に更新するCPU現使用率取得手段と、複数のCPUのうち常時動作するように設定した第1のCPUと残りの他の第2のCPUの各々について周波数0の休止を含むCPU周波数を順位付けたCPU周波数順位表を予め有しており、スケジューラにより起動されてCPU現使用率取得手段により取得されたCPUの現在の使用率を入力として受け、各CPU毎に入力された現在の使用率と使用率の複数の閾値とを比較し、その比較結果に基づいて各CPUのCPU周波数順位表での現在の周波数順位を設定してCPU周波数を制御することでCPUパワー制御を行うCPUパワー制御手段とを有することを特徴とする。
この発明では、複数のCPUのうち常時動作するように設定した第1のCPUと残りの他の第2のCPUの各々について周波数0の休止を含むCPU周波数を順位付けたCPU周波数順位表での現在の周波数順位を、CPU現使用率取得手段により取得されたCPUの現在の使用率と使用率の複数の閾値との比較結果に基づいて設定して、その周波数順位表に示すCPU周波数に制御することでCPUパワー制御を行うようにしたため、マルチプロセッサ(TCMP)のように、全体の消費電力とスループットの関係が、それぞれのCPUの消費電力とスループットの和にならないような場合に有効なパワー制御ができる。
また、上記の目的を達成するため、第5の発明は、コンピュータのCPUのパワー制御によりCPUの省電力化を行うCPUの省電力方法において、コンピュータのオペレーティングシステムのレディタスクにCPUをスケジューリングするスケジューラにより起動されてCPUの現在の使用率を取得する第1のステップと、スケジューラにより起動されて第1のステップにより取得されたCPUの現在の使用率と予め設定した使用率の複数の閾値とを比較する第2のステップと、第2のステップによる比較結果に基づいて、CPUの現在のCPU周波数を制御する第3のステップとを含むことを特徴とする。この発明では、第1の発明と同様に、CPUの現在の使用率と使用率の複数の閾値とを比較し、その比較結果に基づいて、CPUの現在のCPU周波数を制御することでCPUパワー制御を行うようにしたため、CPU使用率が複数の閾値のいずれの閾値より高いか、低いか又はそれらの間にあるかによって、CPU周波数をきめ細かく制御することができる。
また、上記の目的を達成するため、第6の発明は、コンピュータを構成する複数のCPUのパワーを個別に制御することによりCPUの省電力化を行うCPUの省電力方法において、コンピュータのオペレーティングシステムのレディタスクに複数のCPUをスケジューリングするスケジューラにより起動されて複数のCPUの現在の使用率を取得する第1のステップと、複数のCPUのうち常時動作するように設定した第1のCPUと残りの他の第2のCPUの各々について周波数0の休止を含むCPU周波数を順位付けたCPU周波数順位表を予め有しており、スケジューラにより起動されて第1のステップにより取得されたCPUの現在の使用率を入力として受け、各CPU毎に入力された現在の使用率と使用率の複数の閾値とを比較する第2のステップと、第2のステップの比較結果に基づいて各CPUのCPU周波数順位表での現在の周波数順位を設定してCPU周波数を制御することでCPUパワー制御を行う第3のステップとを含むことを特徴とする。
この発明では、第4の発明と同様に、複数のCPUのうち常時動作するように設定した第1のCPUと残りの他の第2のCPUの各々について周波数0の休止を含むCPU周波数を順位付けたCPU周波数順位表での現在の周波数順位を、CPUの現在の使用率と使用率の複数の閾値との比較結果に基づいて設定して、その周波数順位表に示すCPU周波数に制御することでCPUパワー制御を行うようにしたため、マルチプロセッサ(TCMP)のように、全体の消費電力とスループットの関係が、それぞれのCPUの消費電力とスループットの和にならないような場合に有効なパワー制御ができる。
本発明によれば、CPU使用率に応じてCPU使用率が複数の閾値のいずれの閾値より高いか、低いか又はそれらの間にあるかによって、CPU周波数をきめ細かく制御するようにしたため、CPU使用率の低いときにはCPU周波数を低くして節電し、高いときにはスループットを落とさないようにすることが最適にでき、スループットをあまり落とさずに省電力化を実現することができる。
また、本発明によれば、複数のCPUのうち常時動作するように設定した第1のCPUと残りの他の第2のCPUの各々についてCPU周波数順位表での現在の周波数順位を、CPUの現在の使用率と使用率の複数の閾値との比較結果に基づいて設定して、その周波数順位表に示すCPU周波数に制御することでCPUパワー制御を行うことにより全体の効率を考慮した省電力制御を実現することができるため、1つのCPUが高周波数で処理し、他のCPUは休止させた方が全体の消費電力が小さいマルチプロセッサシステムに対して、様々な特性に柔軟に対処して最適な省電力化を実現することができる。
次に、発明を実施するための最良の形態について図面と共に説明する。図1は本発明になるCPUの省電力システムの一実施の形態の構成図を示す。同図に示すように、本実施の形態のCPUの省電力システムは、CPU使用率をリアルタイムに取得するためのCPU現使用率取得手段102と、そのCPU使用率によりリアルタイムにCPUのパワー制御を行うためのCPUパワー制御手段101と、スケジューラ103とを備えており、コンピュータのOSにおいて、CPU使用率を一定に保つようCPUのパワー制御を行うことで、システムのスループットと省電力のバランスを最適化することを特徴としている。
図1において、CPUパワー制御手段101は、OSのスケジューラ103により起動され、CPU現使用率取得手段102を用いて現在のCPU使用率を取得し、その情報を基準値と比較してCPUパワーを制御する。
ここで、本発明の一実施例として、図2に示すCPU番号#0、#1、#2の3つのCPUを密結合(MEMで示すメインメモリを共有)した構成のマルチプロセッサ(TCMP)として有するコンピュータを考え、各CPUは3段階(高・中・低)の周波数切り替えと休止状態(HALTモード)への遷移が可能であるものとする。動作周波数は高いほど処理速度が速いが消費電力も大きく、逆に低いほど処理速度は遅いが消費電力も小さいものとする。
再び図1に戻って説明する。図1に示す構成は、図2に示す3つのCPUに個別に設けられて動作する。図1において、スケジューラ103はOSのレディ(Ready)タスク(プロセス/スレッド)にCPUをディスパッチする(スケジューリングする)ものであり、スケジューラ103が毎ディスパッチ前にCPU現使用率取得手段102及びCPUパワー制御手段101を呼び出すことで、コンピュータのCPUの処理速度と消費電力を制御する。スケジューラ103から呼び出されたCPU現使用率取得手段102は、各CPUの使用率を定期的に更新し、CPUパワー制御手段101は、CPU現使用率取得手段102にて現在の使用率を参照してこの値によりCPUの処理速度を制御する。
また、CPUパワー制御手段101を実現するためのテーブルを図3に、CPU現使用率取得手段102実現のためのテーブルを図4に示す。図3のテーブルは「CPU状態表」1と、「システム設定値」2とからなる。「CPU状態表」1は、CPU番号#0、#1、#2の各CPU毎にCPUを特定するCPU番号と現在の動作周波数(処理速度)である「現周波数」、最後に動作周波数の変更を行うかの評価を行った「前回評価時刻」からなる。また、「システム設定値」2は、システムの設定値として、これを下回った場合には周波数を下げるCPU使用率としての「下限CPU使用率」、逆にこれを上回った場合には周波数を上げるCPU使用率としての「上限CPU使用率」(下限CPU使用率<上限CPU使用率)、CPU使用率によって周波数を変更するかを評価する間隔としての「評価周期」が格納されている。
図4に示すテーブルは、CPU番号#0、#1、#2の各CPU毎にCPU使用率を計算するための「CPU使用状況表」11と「システム設定値」12とからなる。「CPU使用状況表」11はCPU番号と、最後にCPU使用率の測定を開始した時刻である「前回積算時刻」と、前回積算時刻以降のCPUのアイドル時間を積算した値である「アイドル積算時間」とからなり、「システム設定値」12は、システムの設定値として、各CPU使用率の更新周期である「CPU使用率更新間隔」が格納されている。システム設定値はいずれもシステム固定で参照のみである。
次に、本実施の形態の動作について説明する。図1において、スケジューラ103が次のReadyタスクへのディスパッチのたびに、その直前にCPU現使用率取得手段102を呼び出し、続いてCPUパワー制御手段101を呼び出す。
まず、図1のCPUパワー制御手段101の動作を、図5に示すアクティビティ図(フローチャート)を参照して詳細に説明する。CPUパワー制御手段101は、スケジューラ103が次のReadyタスクを実行させる前に呼び出し、最初に現時刻を取得する(ステップS1)。これは「時分秒」形式である必要はなく、むしろ十分な精度として10ms単位以下の実時間タイマなどを利用する。
次に、Readyタスクがあるかどうか判定し(ステップS2)、ない場合、自CPUをHALTモードにする(ステップS3)。これはスケジューラ103のアイドルループに当たる。HALTモードは外部からの割り込みにより解け、対応する割り込み処理(ステップS4)を行ってスケジューラ103に戻るのは従来のOSと同様であるが、ここではCPU現使用率取得手段102を実現するために、ステップS4の割り込み処理では、最終的な割り込み処理(ステップS403)の前に再度現時刻を取得し(ステップS401)、HALTモードの前後の時刻の差を「CPU使用状況表」の自CPUの「アイドル積算時間」に加算する(ステップS402)。「アイドル積算時間」の初期値は”0”とする。
一方、ステップS2でReadyタスクがあると判定した場合は、現時刻が図3のCPU状態表1の「前回評価時刻」からシステム設定値2の「評価周期」以上経過しているかどうか判定し(ステップS5)、経過している場合のみ、以下の評価を行う。
CPU現使用率取得手段102により取得された自CPUの現在のCPU使用率を得た(ステップS6)のち、この自CPUの現在のCPU使用率とシステム設定値2の「下限CPU使用率」及び「上限CPU使用率」とをそれぞれ比較し(ステップS7)、システム設定値2の「下限CPU使用率」より低い場合は、自CPUの「現周波数」が最低であるかを判定し(ステップS8)、「現周波数」が最低でない(まだ周波数を下げることが可能)であるなら、自CPUの周波数を1段階下げ、その値を「現周波数」として更新する(ステップS9)。例えば、「現周波数」が「中」であれば周波数を1段階下げて「現周波数」を「下」に更新する。
逆に、ステップS7で自CPUの現在のCPU使用率がシステム設定値2の「上限CPU使用率」より高いと判定した場合は、自CPUの「現周波数」が最高であるかどうか判定し(ステップS10)、最高でない(まだ周波数を上げることが可能)と判定したときは、自CPUの周波数を1段階上げ、その値を「現周波数」として更新する(ステップS11)。例えば、「現周波数」が「中」であれば周波数を1段階上げて「現周波数」を「上」に更新する。
また、ステップS7で自CPUの現在のCPU使用率がシステム設定値2の「上限CPU使用率」と「下限CPU使用率」との間の使用率であると判定した場合、又はステップS8で自CPUの「現周波数」が最低であると判定した場合、又はステップS10で自CPUの「現周波数」が最高であると判定した場合、又はステップS9、S11のいずれかの更新処理が終了した場合は、自CPUの「前回評価時刻」に現時刻を設定してスケジューラ103に戻る(ステップS12)。
次に、図1のCPU現使用率取得手段102の動作を図6及び図7に示すアクティビティ図(フローチャート)を参照して詳細に説明する。図6はスケジューラ103が次のReadyタスクを実行させる前に呼び出した場合の動作、図7はCPUパワー制御手段101が図5にて現CPU使用率を取得するのに呼び出した場合の動作である(ステップS4)。
CPU現使用率取得手段102は、スケジューラ103が次のReadyタスクを実行させる前に呼び出されると、最初に現時刻を取得し(図6のステップS21)、続いて取得した現時刻がCPU使用状況表11の自CPU番号対応の「前回積算時刻」からシステム設定値12の「CPU使用率更新間隔」以上経過しているかどうか判定し(図6のステップS22)、経過している場合は、「前回積算時刻」から現時刻までの時間と「アイドル積算時間」から以下の計算でCPU使用率を求めて図4の自CPUの「CPU使用率」を更新する(図6のステップS23)。
CPU使用率=1−(「アイドル積算時間」/(現時刻−「前回積算時刻」))
ステップS23での更新処理に続いて、CPU現使用率取得手段102は、自CPUの「前回積算時刻」に現時刻を更新すると共に、「アイドル積算時間」は0クリアして(図6のステップS24)、スケジューラ103の処理に戻る。
また、CPU現使用率取得手段102は、CPUパワー制御手段101が図5にて現CPU使用率を取得するのに呼び出した場合、図4のテーブル中のCPU使用状況表11の自CPU番号対応の「CPU使用率」をCPUパワー制御手段101に返却する(図7のステップS31)。
このように、本実施の形態によれば、CPU使用率と上限CPU使用率及び下限CPU使用率の2つの閾値とを比較して、それらの比較結果に応じてCPU周波数を多段階に制御して、CPU使用率の低いときにはCPU周波数を低くして節電し、CPU使用率の高いときにはスループットを落とさないようにするので、スループットをあまり落とさずに省電力できる。
次に、本発明の他の実施の形態について図面と共に説明する。上記の実施の形態では、マルチプロセッサの各CPUが独立してそれぞれのCPU使用率によりそれぞれの動作周波数(低、中、高)を制御するものであった。これに対し、発明の他の実施の形態は、全CPUを統合的に制御するものである。これは、マルチプロセッサ(TCMP)の全体の消費電力とスループットの関係が、それぞれのCPUの消費電力とスループットの和にならないような場合に有効である。
本実施の形態では、このような場合として複数のCPUを低速で同時に動作させるより、1つのCPUを高速で動作させ、他を休止(HALT)させる方が消費電力に対するスループットが良い場合を考える。その基本的構成は上記図1と同様であるが、制御のためのCPU使用率は各CPUのものではなく、ここではCPU#0のものを代表して使用し、動作周波数の順位は図8に示すように全体として考えるところが異なる。
図8において、CPU周波数順位表31は、CPU#0〜#2の周波数の組み合わせを処理速度が昇順で消費電力が降順になるよう選択して周波数順位をつけたものである。「休止」はCPUをHALTモードで休止させることを表している。また、CPU#0はアイドル状態以外いずれの順位でも休止せず、ホストの役割を負う。図1のCPUパワー制御手段101は、この図8のCPU周波数順位表31に従ってCPUの周波数を推移させる。
本実施の形態では、図3のCPU状態表1は、図9のCPU状態表41およびCPU状態表42のように変更する。CPU状態表41には現在図8のCPU周波数順位のいずれの状態にあるかを表す「現周波数順位」と、最後に周波数順位の変更を行うかの評価を行った「前回評価時刻」からなる。
次に、この実施の形態のCPUパワー制御手段101の動作について、図10のアクティビティ図(フローチャート)と共に説明する。CPUパワー制御手段101は、まず、スケジューラ103が次のReadyタスクを実行させる前に呼び出し、Readyタスクがあるかどうか判定し(ステップS41)、Readyタスクがない場合は、図5のステップS1、S3と同じで、現時刻を取得した後自CPUをHALTモードにする(ステップS42、S43)。HALTモードはスケジューラ103のアイドルループに当たる。HALTモードは外部からの割り込みにより解け、図5のステップS4の割り込み処理と同様に割り込み処理(ステップS44)を行ってスケジューラ103に戻る。
一方、ステップS41でReadyタスクがあると判定した場合は、自CPUのCPU番号が#0か否かで動作が異なる。自CPUのCPU番号が#0であるかどうかを判定し(ステップS45)、#0である場合、最初に現時刻を取得し(ステップS46)、続いて図9のCPU状態表41の「前回評価時刻」からシステム設定値43の「評価周期」以上経過しているかどうか判定し(ステップS47)、経過していない場合はスケジューラ103に戻り(ステップS48)、経過している場合のみ、以下のようにCPU状態表41の「現周波数順位」の更新を行う。
まず、CPU現使用率取得手段102により現在のCPU番号#0のCPUの使用率を得る(ステップS49)。続いて、このCPU使用率とシステム設定値43の「下限CPU使用率」及び「上限CPU使用率」とをそれぞれ比較し(ステップS50)、CPU使用率がシステム設定値43の「下限CPU使用率」より低い場合は、#0のCPUの「現周波数順位」が最低であるかを判定し(ステップS51)、「現周波数順位」が最低でない(まだ周波数順位を下げることが可能)であるなら、CPU状態表41の現周波数順位を1段階下げる。
逆に、ステップS50で#0のCPUの現在のCPU使用率がシステム設定値43の「上限CPU使用率」より高いと判定した場合は、その#0のCPUの「現周波数順位」が最高であるかどうか判定し(ステップS54)、最高でない(まだ周波数順位を上げることが可能)と判定したときは、#0のCPUの現周波数順位を1段階上げる(ステップS55)。
また、ステップS50で#0のCPUの現CPU使用率がシステム設定値43の「上限CPU使用率」と「下限CPU使用率」との間の使用率であると判定した場合、又はステップS51で#0のCPUの「現周波数順位」が最低であると判定した場合、又はステップS54で#0のCPUの「現周波数順位」が最高であると判定した場合、又はステップS52、S55のいずれかの現周波数順位の変更処理が終了した場合は、#0のCPUのCPU状態表41の「前回評価時刻」に現時刻を設定する(ステップS53)。
次に、ステップS45で自CPUのCPU番号が#0でないと判定した場合、又はステップS53の自CPUのCPU番号が#0で、そのCPUの現時刻設定処理が終了した場合は、前述の一連の「現周波数順位」の更新処理の後、以下のように「現周波数順位」に従った周波数設定を行う。まず、図9のCPU状態表42の自CPUの「現周波数」(現在のCPUの周波数)が、図8のCPU周波数順位表31における、CPU状態表41の「現周波数順位」に対応するエントリの自CPUの周波数と異なるかどうか判定する(ステップS56)。
異なる場合、CPU状態表42の自CPUの「現周波数」にCPU周波数順位表31のCPU状態表41の「現周波数順位」に対応するエントリの自CPUの周波数を設定し(ステップS57)、その設定した自CPUの現周波数が”休止”であるかどうかCPU周波数順位表31に基づいて判定する(ステップS58)。”休止”でない場合は、CPUの周波数をその設定した周波数に切り替える(ステップS59)。ステップS57で設定した自CPUの現周波数が”休止”の場合は、ステップS42に進んでHALTモードに設定する処理を行う。
一方、CPUパワー制御手段101は、ステップS56でCPU状態表42の自CPUの「現周波数」(現在のCPUの周波数)が、CPU周波数順位表31における、CPU状態表41の「現周波数順位」に対応するエントリの自CPUの周波数と等しいと判定した場合、又はステップS59の周波数切替処理が終了した場合は、スケジューラ103に処理を渡す。以上のようにしてCPU#0のCPUをポストとして、CPUのパワー制御を行う。
これにより、本実施の形態によれば、全体の効率を考慮した省電力制御を実現することができる。例えば、マルチプロセッサが互いに処理上の偏りがない場合は、前記の特許文献1記載の発明でも全CPUがほぼ同じ周波数で推移する。しかし、同じ処理効率であっても、CPUの消費電力特性によっては、1つのCPUが高周波数で処理し、他のCPUは休止させた方が全体の消費電力が小さいシステムもあり得る。本実施の形態では、図8の管理を行うことで、様々な特性に柔軟に対処して最適な消費電力の低減をすることができる。
コンピュータシステムにおいて、CPUの処理速度が可変で処理速度と消費電力がトレードオフの関係にある場合に、本発明を適用でき、スループットを落とさず省電力を実現するものである。
本発明のCPUの省電力システムの一実施の形態のブロック図である。 本発明のCPU番号#0〜#2の3つのCPUを密結合(メインメモリ共有)のマルチプロセッサ(TCMP)として有するコンピュータを示す図である。 本発明の一実施の形態におけるCPUパワー制御手段を実現するためのテーブルの一例を示す図である。 本発明の一実施の形態におけるCPU現使用率取得手段を実現するためのテーブルの一例を示す図である。 本発明の一実施の形態におけるCPUパワー制御手段の動作説明用アクティビティ図である。 本発明の一実施の形態におけるCPU現使用率取得手段の動作説明用アクティビティ図(その1)である。 本発明の一実施の形態におけるCPU現使用率取得手段の動作説明用アクティビティ図(その2)である。 本発明のCPUの省電力システムの他の実施の形態におけるCPU周波数順位表である。 本発明のCPUの省電力システムの他の実施の形態におけるCPU状態表である。 本発明の他の実施の形態におけるCPUパワー制御手段の動作説明用アクティビティ図である。
符号の説明
101 CPUパワー制御手段
102 CPU現使用率取得手段
103 スケジューラ

Claims (11)

  1. コンピュータのCPUのパワー制御によりCPUの省電力化を行うCPUの省電力システムにおいて、
    前記コンピュータのオペレーティングシステムのレディタスクに前記CPUをスケジューリングするスケジューラと、
    前記スケジューラにより起動されて前記CPUの現在の使用率を取得して定期的に更新するCPU現使用率取得手段と、
    前記スケジューラにより起動されて前記CPU現使用率取得手段により取得された前記CPUの現在の使用率を入力として受け、その現在の使用率と使用率の複数の閾値とを比較し、その比較結果に基づいて、前記CPUの現在のCPU周波数を制御することでCPUパワー制御を行うCPUパワー制御手段と
    を有することを特徴とするCPUの省電力システム。
  2. 前記CPUパワー制御手段は、前記複数の閾値として上限CPU使用率と下限CPU使用率とを用意し、前記CPUの現在の使用率が前記上限CPU使用率よりも高く、かつ、前記CPUの現在のCPU周波数が予め定めた最高周波数未満であるときは、前記現在のCPU周波数を1段階上げ、前記CPUの現在の使用率が前記下限CPU使用率よりも低く、かつ、前記CPUの現在のCPU周波数が予め定めた最低周波数よりも高いときは、前記現在のCPU周波数を1段階下げるパワー制御を行うと共に、変更後のCPU周波数を前記現在の周波数に更新することを特徴とする請求項1記載のCPUの省電力システム。
  3. 前記CPUパワー制御手段は、前記スケジューラにより起動されたときの時刻を現時刻として取得し、その現時刻と前回のCPUのパワー制御実行時の前回評価時刻とが、予め定めた評価周期を経過しているときにのみ前記パワー制御を行うと共に、そのパワー制御したときの時刻又は前記CPUの現在の使用率が前記上限CPU使用率と前記下限CPU使用率との間の値であると判定したときに、前記前回評価時刻を前記現時刻に更新することを特徴とする請求項2記載のCPUの省電力システム。
  4. 前記コンピュータは、複数のCPUがメインメモリを共有するマルチプロセッサであり、前記CPU現使用率取得手段及び前記CPUパワー制御手段は前記複数のCPUに対して共通に設けられており、前記複数のCPUのそれぞれのCPU現使用率の取得とCPUパワー制御とを個別に行うことを特徴とする請求項1乃至3のうちいずれか一項記載のCPUの省電力システム。
  5. コンピュータを構成する複数のCPUのパワーを個別に制御することによりCPUの省電力化を行うCPUの省電力システムにおいて、
    前記コンピュータのオペレーティングシステムのレディタスクに前記複数のCPUをスケジューリングするスケジューラと、
    前記スケジューラにより起動されて前記複数のCPUの現在の使用率を取得して定期的に更新するCPU現使用率取得手段と、
    前記複数のCPUのうち常時動作するように設定した第1のCPUと残りの他の第2のCPUの各々について周波数0の休止を含むCPU周波数を順位付けたCPU周波数順位表を予め有しており、前記スケジューラにより起動されて前記CPU現使用率取得手段により取得された前記CPUの現在の使用率を入力として受け、各CPU毎に入力された現在の使用率と使用率の複数の閾値とを比較し、その比較結果に基づいて各CPUの前記CPU周波数順位表での現在の周波数順位を設定してCPU周波数を制御することでCPUパワー制御を行うCPUパワー制御手段と
    を有することを特徴とするCPUの省電力システム。
  6. 前記CPUパワー制御手段は、前記複数の閾値として上限CPU使用率と下限CPU使用率とを用意し、前記第1のCPUの現在の使用率が前記上限CPU使用率よりも高く、かつ、前記第1のCPUの現在のCPU周波数が現在の前記CPU周波数順位表での予め定めた最高周波数未満であるときは、前記現在のCPU周波数順位表での順位を1段階上げ、前記第1のCPUの現在の使用率が前記下限CPU使用率よりも低く、かつ、前記第1のCPUの現在のCPU周波数が現在の前記CPU順位表での予め定めた最低周波数よりも高いときは、前記現在のCPU周波数順位表での順位を1段階下げる順位制御を行うと共に、前記第1及び第2のCPUの各CPU周波数が、前記順位制御の結果前記CPU周波数順位表で示す自CPUの周波数と現在のCPU周波数とが異なるとき、前記CPU周波数順位表で示す自CPUの周波数を前記現在のCPU周波数に設定するパワー制御を行うことを特徴とする請求項5記載のCPUの省電力システム。
  7. 前記CPUパワー制御手段は、前記スケジューラにより起動されたときの時刻を現時刻として取得し、その現時刻と前回のCPUのパワー制御実行時の前回評価時刻とが、予め定めた評価周期を経過しているときにのみ前記パワー制御を行うと共に、そのパワー制御したときの時刻又は前記第1のCPUの現在の使用率が前記上限CPU使用率と前記下限CPU使用率との間の値であると判定したときに、前記前回評価時刻を前記現時刻に更新することを特徴とする請求項5又は6記載のCPUの省電力システム。
  8. コンピュータのCPUのパワー制御によりCPUの省電力化を行うCPUの省電力方法において、
    前記コンピュータのオペレーティングシステムのレディタスクに前記CPUをスケジューリングするスケジューラにより起動されて前記CPUの現在の使用率を取得する第1のステップと、
    前記スケジューラにより起動されて前記第1のステップにより取得された前記CPUの現在の使用率と予め設定した使用率の複数の閾値とを比較する第2のステップと、
    前記第2のステップによる比較結果に基づいて、前記CPUの現在のCPU周波数を制御する第3のステップと
    を含むことを特徴とするCPUの省電力方法。
  9. 前記第2のステップは、前記複数の閾値として上限CPU使用率と下限CPU使用率とを用意し、前記第3のステップは、前記CPUの現在の使用率が前記上限CPU使用率よりも高く、かつ、前記CPUの現在のCPU周波数が予め定めた最高周波数未満である比較結果が得られたときは、前記現在のCPU周波数を1段階上げ、前記CPUの現在の使用率が前記下限CPU使用率よりも低く、かつ、前記CPUの現在のCPU周波数が予め定めた最低周波数よりも高い比較結果が得られたときは、前記現在のCPU周波数を1段階下げるパワー制御を行うと共に、変更後のCPU周波数を前記現在の周波数に更新することを特徴とする請求項8記載のCPUの省電力方法。
  10. コンピュータを構成する複数のCPUのパワーを個別に制御することによりCPUの省電力化を行うCPUの省電力方法において、
    前記コンピュータのオペレーティングシステムのレディタスクに前記複数のCPUをスケジューリングするスケジューラにより起動されて前記複数のCPUの現在の使用率を取得する第1のステップと、
    前記複数のCPUのうち常時動作するように設定した第1のCPUと残りの他の第2のCPUの各々について周波数0の休止を含むCPU周波数を順位付けたCPU周波数順位表を予め有しており、前記スケジューラにより起動されて前記第1のステップにより取得された前記CPUの現在の使用率を入力として受け、各CPU毎に入力された現在の使用率と使用率の複数の閾値とを比較する第2のステップと、
    前記第2のステップの比較結果に基づいて各CPUの前記CPU周波数順位表での現在の周波数順位を設定してCPU周波数を制御することでCPUパワー制御を行う第3のステップと
    を含むことを特徴とするCPUの省電力方法。
  11. 前記第2のステップは、前記複数の閾値として上限CPU使用率と下限CPU使用率とを用意しており、前記第3のステップは、前記第2のステップにより前記第1のCPUの現在の使用率が前記上限CPU使用率よりも高く、かつ、前記第1のCPUの現在のCPU周波数が現在の前記CPU周波数順位表での予め定めた最高周波数未満である比較結果が得られたときは、前記現在のCPU周波数順位表での順位を1段階上げ、前記第2のステップにより前記第1のCPUの現在の使用率が前記下限CPU使用率よりも低く、かつ、前記第1のCPUの現在のCPU周波数が現在の前記CPU順位表での予め定めた最低周波数よりも高い比較結果が得られたときは、前記現在のCPU周波数順位表での順位を1段階下げる順位制御を行うと共に、前記第1及び第2のCPUの各CPU周波数が、前記順位制御の結果前記CPU周波数順位表で示す自CPUの周波数と現在のCPU周波数とが異なるとき、前記CPU周波数順位表で示す自CPUの周波数を前記現在のCPU周波数に設定するパワー制御を行うことを特徴とする請求項10記載のCPUの省電力方法。
JP2007056564A 2007-03-07 2007-03-07 Cpuの省電力システム及び省電力方法 Pending JP2008217628A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007056564A JP2008217628A (ja) 2007-03-07 2007-03-07 Cpuの省電力システム及び省電力方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007056564A JP2008217628A (ja) 2007-03-07 2007-03-07 Cpuの省電力システム及び省電力方法

Publications (1)

Publication Number Publication Date
JP2008217628A true JP2008217628A (ja) 2008-09-18

Family

ID=39837566

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007056564A Pending JP2008217628A (ja) 2007-03-07 2007-03-07 Cpuの省電力システム及び省電力方法

Country Status (1)

Country Link
JP (1) JP2008217628A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102878102A (zh) * 2012-10-19 2013-01-16 华为技术有限公司 风扇调速处理方法及装置
US20140089603A1 (en) * 2012-09-26 2014-03-27 Sheshaprasad G. Krishnapura Techniques for Managing Power and Performance of Multi-Socket Processors
JP2014529146A (ja) * 2012-08-30 2014-10-30 ▲華▼▲為▼▲終▼端有限公司 中央演算装置を制御するための方法および装置
US9514084B2 (en) 2012-07-19 2016-12-06 International Business Machines Corporation Power saving based on clock management claim of priority
KR101927872B1 (ko) * 2018-06-18 2018-12-12 현대멀티캡 주식회사 사용량 모니터링 및 코어 파킹을 이용한 전력 절감형 컴퓨터

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9514084B2 (en) 2012-07-19 2016-12-06 International Business Machines Corporation Power saving based on clock management claim of priority
JP2014529146A (ja) * 2012-08-30 2014-10-30 ▲華▼▲為▼▲終▼端有限公司 中央演算装置を制御するための方法および装置
US9405353B2 (en) 2012-08-30 2016-08-02 Huawei Device Co., Ltd. Method and apparatus for controlling central processing unit
US20140089603A1 (en) * 2012-09-26 2014-03-27 Sheshaprasad G. Krishnapura Techniques for Managing Power and Performance of Multi-Socket Processors
US8862824B2 (en) * 2012-09-26 2014-10-14 Intel Corporation Techniques for managing power and performance of multi-socket processors
CN102878102A (zh) * 2012-10-19 2013-01-16 华为技术有限公司 风扇调速处理方法及装置
KR101927872B1 (ko) * 2018-06-18 2018-12-12 현대멀티캡 주식회사 사용량 모니터링 및 코어 파킹을 이용한 전력 절감형 컴퓨터

Similar Documents

Publication Publication Date Title
KR100661851B1 (ko) 플랫폼의 소비 전력 관리 방법 및 그 플랫폼
US10146288B2 (en) Adaptive power consumption management in smart devices
KR100487543B1 (ko) 시피유 스케쥴링 방법
US6986068B2 (en) Arithmetic processing system and arithmetic processing control method, task management system and task management method
JPWO2005106623A1 (ja) Cpuクロック制御装置、cpuクロック制御方法、cpuクロック制御プログラム、記録媒体、及び伝送媒体
WO2007072458A2 (en) Performance analysis based system level power management
JP5982588B2 (ja) 保証された過渡期限とともに中央処理装置の電力を制御するためのシステムおよび方法
TW201403299A (zh) 中央處理器控制方法
JP2002099433A (ja) 演算処理システム及び演算処理制御方法、タスク管理システム及びタスク管理方法、並びに記憶媒体
CN105955809B (zh) 线程调度方法和系统
KR101770736B1 (ko) 응용프로그램의 질의 스케쥴링을 이용한 시스템의 소모전력 절감 방법 및 그 방법을 이용하여 소모전력을 절감하는 휴대단말기
JP2008217628A (ja) Cpuの省電力システム及び省電力方法
US20120254822A1 (en) Processing optimization load adjustment
CN111580949B (zh) 一种网络收包模式自动调节方法
JP2010113641A (ja) プロセッサシステムの動作方法およびプロセッサシステム
Yao et al. Ts-bat: Leveraging temporal-spatial batching for data center energy optimization
JP5930504B2 (ja) 保証された過渡期限とともに中央処理装置の電力を制御するためのシステムおよび方法
Yao et al. A dual delay timer strategy for optimizing server farm energy
CN106843890B (zh) 基于智能决策的传感器网络、节点及其运行方法
CN116028193B (zh) 一种混部集群的大数据任务动态高能效调度方法和系统
US11086690B2 (en) Semiconductor device and processor control method
CN105706022B (zh) 一种预测处理器利用率的方法、处理装置和终端设备
CN115391021A (zh) 核心控制方法及装置、处理核心、系统、电子设备、介质
JP2019109600A (ja) 情報処理装置、計算機制御方法、および計算機制御プログラム
JP2007004334A (ja) プログラマブルコントローラ