JP2010160565A - タスクスケジューリング装置、タスクスケジューリング制御方法、及びタスクスケジューリング制御プログラム - Google Patents
タスクスケジューリング装置、タスクスケジューリング制御方法、及びタスクスケジューリング制御プログラム Download PDFInfo
- Publication number
- JP2010160565A JP2010160565A JP2009000982A JP2009000982A JP2010160565A JP 2010160565 A JP2010160565 A JP 2010160565A JP 2009000982 A JP2009000982 A JP 2009000982A JP 2009000982 A JP2009000982 A JP 2009000982A JP 2010160565 A JP2010160565 A JP 2010160565A
- Authority
- JP
- Japan
- Prior art keywords
- task
- processor
- task scheduling
- scheduler
- power supply
- 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
Links
Images
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
【課題】マルチコアプロセッサシステムにおいて無駄な電力消費を削減する。
【解決手段】複数のプロセッサ110−1〜nで構成されたシステムで実行される複数のタスク220−1〜mのスケジューリングを行うタスクスケジューリング装置であって、複数のタスク220の各タスク220の仕事量をタスクの処理前に計測する計測部211を有し、計測部211によって計測された仕事量に基づいて複数のプロセッサ110の使用率を予測し、アイドル状態となるプロセッサ110が存在することを検知した場合に、該当するプロセッサ110への電源供給をオフさせるスケジューラ210を備えた。
【選択図】図1
【解決手段】複数のプロセッサ110−1〜nで構成されたシステムで実行される複数のタスク220−1〜mのスケジューリングを行うタスクスケジューリング装置であって、複数のタスク220の各タスク220の仕事量をタスクの処理前に計測する計測部211を有し、計測部211によって計測された仕事量に基づいて複数のプロセッサ110の使用率を予測し、アイドル状態となるプロセッサ110が存在することを検知した場合に、該当するプロセッサ110への電源供給をオフさせるスケジューラ210を備えた。
【選択図】図1
Description
本発明は複数のプロセッサを搭載したシステムにおける省電力制御に係り、特に、マルチコアプロセッサ方式を採用している情報処理装置で省電力制御を実行するためのタスクスケジューリング装置、そのための制御方法、及びタスクスケジューリング制御をコンピュータで実行するためのタスクスケジューリング制御プログラムに関する。
小型情報処理機器の分野においては複数個のCPUを搭載したマルチプロセッサシステムが普及しつつある。一般的に、これらのマルチプロセッサシステムにおいては、演算性能が高く消費電力の大きなCPUが複数個搭載されることから、システム全体の消費電力が大きくなってしまう。そこで、例えば、特許文献1には、マルチプロセッサ方式の情報処理装置に適用される省電力制御システムに関し、全体的な動作の整合性を損なわずに待機状態のシステムの消費電力が抑制されるように、各々のCPUの状態遷移制御及びその動作状態に応じた個別の省電力制御を行うようにした発明が提案されている。
この発明は、複数のCPUを備えるマルチプロセッサシステムにおいて、プロセッサバスを監視することによって個々のCPUの動作状態を検出するプロセッサバス監視部と、システムの負荷状態を監視するシステム状態監視部とを設け、また、システム状態監視部からの通知に基づいて個々のCPUによる消費電力を制御するシステム状態制御部を設ける。そして、キー入力待ちなどのために特定のCPUに対する負荷が少ない状態が続くと、そのことがプロセッサバス監視部などによってシステム状態制御部に通知され、システム状態制御部はクロック切り替え部に指令して当該CPUへ供給するクロックを低い周波数に切り替えるようになっている。
マルチプロセッサシステムでは、OS側でソフトウェア的に省電力制御を行うことも必要となる。例えば、複数のCPUを備えるマルチプロセッサシステムの状態遷移制御、ここでは、通常状態と待機状態との間の遷移制御を実行する場合には、複数のCPUのうちのいずれのCPUの状態を遷移させるのかを決定して、当該CPUの起動又は停止処理を行うとともに、接続されているハードウェア資源の論理的な管理を行う必要がある。これに対応できるように、前記従来技術では、CPUの電源を切るのではなく周波数を下げることによる省電力方法と、周波数を下げるためにクロックを変動したり、2種類のクロックを利用したりする方式を採用している。
このように前記従来技術では、CPUの電源を切らずに、周波数を下げる際、ハードウェアによりCPUの電源制御するようにした場合には、プラットフォームに大きく依存するため、ソフトウェアの移植性が損なわれる。
また、前記従来技術では、マルチプロセッサのシステムにおいて、アイドル状態のプロセッサも使用中のプロセッサも同等の電源が投入されており、アイドル状態のプロセッサは無駄に電力を消費してしまう。
そこで、本発明が解決しようとする課題は、マルチコアプロセッサシステムにおいて無駄な電力消費を削減すること、及びソフトウェアのスケジューラのみによるCPUその他ハードウェアの電源制御を実施することによってハードウェアへの依存性を抑えながら、ソフトウェアの移植性を向上させることにある。
前記課題を解決するため、第1の手段は、複数のプロセッサで構成されたシステムで実行される複数のタスクのスケジューリングを行うタスクスケジューリング装置であって、前記複数のタスクの各タスクの仕事量をタスクの処理前に計測する計測部を有し、前記計測部によって計測された仕事量に基づいて前記複数のプロセッサの使用率を予測し、アイドル状態となるプロセッサが存在することを検知した場合に、該当するプロセッサへの電源供給をオフさせるスケジューラを備えていることを特徴とする。
第2の手段は、第1の手段において、前記スケジューラが、実行される複数のタスクの処理順序を決定し割り当てるタスク割り当て部と、前記該当するプロセッサへの電源供給をオフさせる制御要求部と、を備えていることを特徴とする。
第3の手段は、第1又は第2の手段において、前記スケジューラは、前記電源供給をオフしたプロセッサに対して前記電源供給オフ後の所定期間に、前記プロセッサに対するタスク割り当て要求があった場合、前記プロセッサ以外の動作中のプロセッサに対してタスクの割り当てを行うことを特徴とする。
第4の手段は、第1又は第2の手段において、前記スケジューラは、電源が投入されていないプロセッサに対してタスクを割り当てる必要があるとき、該当するプロセッサの電源を立ち上げ、初期化するための新たなタスクを生成し、当該タスク実行待ち状態のタスクキューの先頭に配置することを特徴とする。
第5の手段は、第1又は第2の手段において、外部要求により電源がオフされているプロセッサの電源を復帰させるインターフェイスを備え、前記スケジューラは、前記複数のプロセッサ上で実行するタスクを投入する前に、前記インターフェイスを介して前記複数のプロセッサを利用可能な状態に復帰させることを特徴とする。
第6の手段は、第1又は第2の手段において、外部記憶装置を備え、前記スケジューラは、前記複数のタスクの処理に際し、前記外部記憶装置へのアクセスが発生しない場合に、前記外部記憶装置の駆動モータを停止させることを特徴とする。
第7の手段は、第1又は第2の手段において、前記複数のプロセッサを冷却するためのファンを備え、前記スケジューラは、処理量が低いプロセッサを検知した場合に、当該プロセッサを冷却するファンの回転数を所定回転数以下に下げることを特徴とする。
第8の手段は、第1ないし第5のいずれかの手段において、前記プロセッサへの電源供給を制御する電源制御部を備え、当該電源制御部は前記制御要求部からの要求に応じて前記プロセッサへの電源供給を制御することを特徴とする。
第9の手段は、第6の手段において、前記外部記憶装置への電源供給を制御する電源制御部を備え、当該電源制御部は前記制御要求部からの要求に応じて前記外部記憶の駆動モータの駆動を制御することを特徴とする。
第10の手段は、第7の手段において、前記ファンへの電源供給を制御する電源制御部を備え、当該電源制御部は前記制御要求部からの要求に応じて前記ファンの駆動を制御することを特徴とする。
第11の手段は、複数のプロセッサで構成されたシステムで実行される複数のタスクのスケジューリングを行うタスクスケジューリング制御方法であって、前記複数のタスクの各タスクの仕事量を計測部でタスクの処理前に計測し、前記計測部によって計測された仕事量に基づいて前記複数のプロセッサの使用率を予測し、アイドル状態となるプロセッサが存在することを検知した場合に、該当するプロセッサへの電源供給をオフさせることを特徴とする。
第11の手段は、複数のプロセッサで構成されたシステムで実行される複数のタスクのスケジューリングをコンピュータによって実行させるタスクスケジューリング制御プログラムであって、前記複数のタスクの各タスクの仕事量を計測部でタスクの処理前に計測する手順と、前記計測部によって計測された仕事量に基づいて前記複数のプロセッサの使用率を予測する手順と、アイドル状態となるプロセッサが存在することを検知した場合に、該当するプロセッサへの電源供給をオフさせる手順と、を備えていることを特徴とする。
なお、後述の実施形態では、複数のプロセッサはプロセッサ(CPU)110−1〜nに、複数のタスクはタスク220−1〜nに、計測部は計測部211に、スケジューラはスケジューラ210に、タスク割り当て部はタスク割り当て部212に、制御要求部は制御要求部213に、インターフェイスは制御要求部213に、外部記憶装置はハードディスクドライブ装置(HDD)160に、ファンはFAN140−1〜nに、電源制御部は電源制御部120に、それぞれ対応する。
本発明によれば、複数のタスクの各タスクの仕事量をタスクの処理前に計測し、計測された仕事量に基づいて前記複数のプロセッサの使用率を予測し、アイドル状態となるプロセッサが存在することを検知した場合に、該当するプロセッサへの電源供給をオフさせるので、マルチコアプロセッサシステムにおける無駄な電力消費を削減することができる。
また、ソフトウェアのスケジューラのみによるプロセッサの電源制御を実施するので、ハードウェアへの依存性を抑えながら、ソフトウェアの移植性を向上させることができる。
以下、図面を参照し、本発明の実施形態について説明する。
図1は本発明の実施形態に係るマルチプロセッサシステムの概略構成を示す図である。同図において、本実施形態に係るマルチプロセッサシステムは、ハードウェア部100とソフトウェア部200とからなる。
ハードウェア部100は、複数個のCPU(プロセッサ)110−1,110−2,・・・110−n(nは1以上の整数、以下同様)、電源制御部120、FANコントローラ130、FAN140−1,140−2,・・・140−n、メモリ150、HDD160、及びクロック発生部(図では、単にクロックと記す)170等のハードウェアモジュールを備えている。なお、プロセッサは図1ではCPUと表記しているが、以下の実施形態では、プロセッサとして説明する。
プロセッサ110−1,110−2,・・・110−nは、演算装置であり、当該プロセッサ110−1,110−2,・・・110−nに割り当てられた制御対象を制御する。電源制御部120は各ハードウェアモジュールの電源を管理する。FAN140−1,140−2,・・・140−nはそれぞれ対応するプロセッサ110−1,110−2,・・・110−nの温度上昇を抑え、FANコントローラ130はこれらの各FAN140−1,140−2,・・・140−nの回転数を制御する。メモリ150はオペレーションシステム(OS)を始め、システム上で動作するプログラムを実行するための記憶装置である。HDD160はメモリ150上に収まりきらないプログラムや、参照データ、実行される前のプログラムを格納する記憶装置である。クロック発生部170はハードウェアを動作させる際に同期を取るための周期的な信号を発生する。
ソフトウェア部200は、スケジューラ210、複数のタスク220−1,220−2,・・・220−m(mは1以上の整数、以下同様)、ディスパッチャ230−1,230−2,・・・230−n、及びデバイスドライバ240を備えている。
スケジューラ210は、タスク220−1,220−2,・・・220−mを各プロセッサ110−1,110−2,・・・110−nに割り当てる機能を有し、計測部211、タスク割り当て部212、及び制御要求部213を備えている。計測部211は、スケジューラ210に登録されたタスク220−1,220−2,・・・220−mから情報を収集し、割り当てられるコア、リソース消費時間を計測する。タスク割り当て部212は、どのディスパッチャ230−1,230−2,・・・230−nにタスク220−1,220−2,・・・220−mを渡すかを決定する。制御要求部213は電源管理デバイスに対して、指定したデバイスの電源制御を要求する。ディスパッチャ230−1,230−2,・・・230−nは、スケジューラの一部で、プロセッサ110−1,110−2,・・・110−nの個数n分存在し、実行可能なタスク220−1,220−2,・・・220−mを各プロセッサ110−1,110−2,・・・110−nに割り当てる。
タスク220−1,220−2,・・・220−mは実行要求される仕事の単位であり、デバイスドライバ240はハードウェア部100の各ハードウェアモジュールを制御するプログラムである。なお、前記クロック発生部170からはソフトウェア部100に対してクロック割り込み250が入る。クロック割り込み250は、クロック発生部170から出力されるクロック信号に基づいて周期的にプロセッサ110−1,110−2,・・・110−nに入る割り込みである。
なお、以下プロセッサ、FAN、タスク、ディスパッチャについて総括的に述べる場合には、n又はmの添え字は省略し、符号110,140,220,230のみを付して説明する。
このようなシステムでは、各プロセッサ(CPU)110が電源制御できる仕組みを持っていて、各プロセッサ110の上で実行されるタスク(処理の単位)220を管理するスケジューラ210は、タスク割り当て部212において各タスク220を任意のプロセッサ110に割り当てる。これは、負荷分散が目的で、複数あるプロセッサ110をできるだけ均等に利用することが望ましいからである。しかし、プロセッサ110で処理されているタスク220の状態は時々刻々変化し、図2の状態遷移図に示すように実行中310、実行可能状態320、及びブロック状態(休眠状態)330の3つの状態を遷移する。そして、システム全体の負荷が高くないとき、言い換えれば、処理されるべきタスク220の総量が多くないときは、いくつかのプロセッサ110は限りなくアイドル状態に近づく。なお、前記タスクの遷移は、図2に示したように実行中310、実行可能状態320、及びブロック状態330の3つの状態を遷移するもので、実行中310から実行可能状態320(矢印(1))及びブロック状態330(矢印(3))へ、実行可能状態320から実行中310へ(矢印(2))へ、ブロック状態330から実行可能状態320(矢印(4))へ、それぞれ処理の状態に応じて遷移する。すなわち、ブロック状態330からは必ず実行可能状態320に遷移し、実行可能状態320を経て、実行中の状態に遷移することができる。また、アプリケーションによっては並列性を求めないものもあり、それらは単一のプロセッサによって常に処理される方がよい。このような場合、アイドル状態のプロセッサの電源をオフする方が消費電力の削減の観点から効果がある。
そこで、本実施形態では、図1に示したように、複数のプロセッサ110−1〜nで構成されたシステムにおいて、実行される複数のタスク220−1〜mの処理順序を決定するスケジューラ210と、このスケジューラ210が、前記複数のタスク220−1〜mの各タスクの仕事量をタスクの処理前に計測する計測部211と、この計測部211によって計測したタスク220の仕事量に基づいて各プロセッサ110の使用率を予測して、アイドル状態となるプロセッサ110が存在することを検知した場合に、該当するプロセッサ110の電源を電源制御部130によってオフし、実行される複数のタスク220のスケジューリングを行うようにした。
図3は、このようなタスクスケジューリングにおけるスケジューラ210の処理手順を示すフローチャートである。この処理手順では、タスク要求待ち状態とタスクスケジューリング状態の2つの状態が設定され、タスク要求待ち状態では、実行待ちタスクが存在し、実行するタスクが割り当てられたプロセッサ(CPU)ではタスク実行中310であり、タスクが割り当てられていないプロセッサでは実行可能状態320もしくはブロック状態330で、タスク要求を待っているとき(ステップS1,S2,S3)に、外部からタスク実行要求S0が入力されると、直ちにタスクスケジューリング状態に移行する(ステップS10→S100)。
通常、タスク実行要求SOがスケジューラ210にわたったとき、タスク220は実行可能状態320となっている。要求されたタスク220は、スケジューラ210の持つタスク220のキューの最後に割り当てられ、スケジューラ210によって実行可能状態320から実行状態310になりプロセッサを割り当てられるのを待つ。このとき、スケジューラは新規に要求されたタスクの中の情報から、タスクがどの程度の処理量なのかを予測する。
すなわち、タスクスケジューリング状態では、タスク実行要求(ステップS101)に基づいてタスク情報を取得し(ステップS102)、タスク220のリソース消費量を解析する(ステップS103)。そして、この解析結果に基づいてプロセッサ110へのタスク220−a(aは1≦a≦mの整数で、割り当てられたタスクを示す。)を割り当てる(ステップS104)。割り当てられたプロセッサ110−b(bは1≦b≦nの整数で、割り当てられたプロセッサを示す。)が休眠中(ブロック状態330)でなければステップS110以降の処理を実行し(ステップS105−N)、休眠中であれば(ステップS105−Y)、タスクが割り当てられたプロセッサ110−bの電源オンの可否を判断する(ステップS106)。そして、タスク220−aが割り当てられたプロセッサ110−bの電源をオンしてもよい場合には(ステップS106−Y)、そのプロセッサ110−bの電源をオンし(ステップS109)、ステップS1に戻って割り当てられたタスク220−aを実行する。
一方、割り当てられたプロセッサ110−bが休眠中でない場合(ステップS105−N)には、使用されないプロセッサ110が存在するかどうかを確認し(ステップS110)、あるいは割り当てられたプロセッサ110−bの電源をオンにできない場合(ステップS106−N)には、タスク220−aを他のプロセッサ110−c(cはc≠b、1≦c≦nの整数で、割り当てられたプロセッサ110−bとは異なるプロセッサを示す。)に割り当てて(ステップS108)、使用されないプロセッサ110が存在するかどうかを確認する(ステップS110)。
使用されないプロセッサ110が存在すれば(ステップS110−Y)、使用されないプロセッサ110−d(cは1≦d≦nの整数で、使用されないプロセッサを示す。)の状態を確認し、そのプロセッサ110−dについては、追加のタスク220の割り当てを禁止し(ステップS112)、当該プロセッサ110−dがタスク220を実行中であるかどうかを確認する(ステップS113)。タスク実行中であればタスク完了を待ち(ステップS114)、実行中のタスク220がなくなった時点で(ステップS113−N)、当該プロセッサ110−dで使用したキャッシュデータを書き出し(ステップS115)、他のメモリに書き込んだ上で、当該プロセッサ110−dの電源をオフする(ステップS116)。次いで、プロセッサ110−dの管理情報を更新し(ステップS117)、このプロセッサ110−dへのタスク割り当て禁止を解除した(ステップS118)後、タスク要求待ち状態に戻る(ステップS119→S1)。
ステップS110で、使用されないプロセッサ110が存在せず、全てのプロセッサ110が使用可能であれば(ステップS110−N)、タスク要求待ち状態に戻る(ステップS120→S1)。
このように処理すると、複数のプロセッサ110を持つシステムにおいて、プロセッサ110が使用中でもアイドル中でも同様の電力を消費しているが、ステップS116で処理しているようにアイドル状態のプロセッサ110−dの電源を切ることにより、システムの消費電力を削減することができる。
なお、図3のステップS1、S100、S109、S119、S120では○で、S10では○の中にHが書かれているが、これのHが書かれた○は、タスク要求待ち状態のどのシーケンス上からでも、処理が横取りされてタスク220のスケジューリング状態に移行できることを意味している。具体例としては、タスク220が追加されたタイミングでソフトウェアの割り込みがかかり、タスク実行の処理を一旦停止させ、処理を横取りし、タスク220のスケジューリングを最優先に行うという処理に該当する。
通常のマルチコアプロセッサシステムでは、各プロセッサごとにキャッシュを持っていて、そのキャッシュを有効に利用するために、通常スケジューラは同様の処理を行うタスクは同じプロセッサで実行する。前記スケジューラ210においても同様のスケジューリングを取っており、要求されたタスクの検査を行う際には、そのタスクがどのコアに割り当てられる可能性があるかについても調査を行っている。しかしこの方式では、プロセッサ電源のオン、オフがタスクに依存しているために頻発する可能性があり、ハードウェアの障害を与える可能性がある。
すなわち、ステップS107では割り当てられたプロセッサ110−bの電源をオンし、ステップS116ではタスクを完了したプロセッサ110−dの電源をオフするようになっており、各プロセッサ110に対して頻繁に電源をオフ、オンする頻度が頻発すると、ハードウェア信頼性の低下と電力効率の低下を招く場合がある。そこで、これを回避するために、本実施形態では、プロセッサ110に対する電源のオン、オフ状態が変化した後の所定期間に、そのプロセッサ110に対するタスク割り当て要求があった場合(ステップS104)には、別の動作中のプロセッサ110に対してタスクの割り当てを行う(ステップS108)ようにした。これにより、スケジューラ210が電源を落とすことができるプロセッサ110をタスク要求時ごとに判断し、プロセッサ110に対する電源のオン、オフを抑制するが可能となる。その結果、ハードウェアにかかる負担を軽減することができる。
また、すでに電源がオフしているプロセッサ110について、そのプロセッサ110の電源がいつオフされたのか知りたい場合がある。例えば、電源オフから電源オンまでの期間が問題となり、前記オン、オフする頻度を下げたい場合などが挙げられる。その他、プロセッサ110の電源オンによって定常状態よりも多くの電流が流れるなどが原因となり、プロセッサ110の耐障害性へのリスクが高まり、あるいは、逆に消費電力に対する効率が落ちることがあることから、これを防止するためでもある。
そこで、本実施形態では、スケジューラ210は、これらの問題に対応してプロセッサ110の電源のオン、オフを判断するため、プロセッサの管理情報を有する。すなわち、プロセッサ110の状態管理は、プロセッサ管理情報として、メモリの一部に持たせ、スケジューラ210は常にこのプロセッサ管理情報を参照することができる。そのため、ステップS117では、ステップS116で電源オフしたプロセッサ110−dの管理情報を更新するようになっている。これにより、スケジューラ210は、前記プロセッサ110−dへのタスクの割り当て、使用状態、及び休眠状態などが分かる。
プロセッサ管理情報はスケジューラ210から参照可能なアドレスにあればどこにおいてあっても構わないが、固定されたアドレスでありスケジューラ210以外のソフトウェアモジュールによって変更できないように設計してあることが望ましい。
また、前記ステップS115でキャッシュの書き出しを行うのは次のような理由による。すなわち、前述のようにステップS108で、タスク220を別のコアに再割り当てするようになっているが、現在休眠中のプロセッサ110−bで処理されていたタスク220を別のプロセッサ110上で処理させるためには、以前のプロセッサ110−bの情報をコピーすることが必要となる場合がある。そのために、本実施形態では、ステップS116でプロセッサ110の電源をオフして休眠状態にする前に、そのプロセッサ110の持つキャッシュメモリの内容を全てのプロセッサ110が共有できるメモリへ書き出しておき、新しく割り当てられたプロセッサ110から参照可能な状態にしておく。これにより、同じタスク要求があったときにも、異なるプロセッサ110で前に処理したプロセッサ110と同様の処理速度で処理することができる。
また、ステップS104でタスク220を割り当てるときに、プロセッサ110の電源を再投入する(ステップS107)と、プロセッサ110の初期化にかかる時間でタイムラグが発生する。すなわち、プロセッサ110を休眠状態から活動状態にするとき、活動状態となったプロセッサ110で実行されるタスク220がそのプロセッサ上で処理される直前に活動状態にされた場合、ハードウェア、ソフトウェアともに活動状態となったプロセッサの初期化の時間が必要になり、タスクが即時に実行されない。
そこで、本実施形態では、電源が投入されていないプロセッサ110に対してタスクを割り当てる必要性が生じたとき(ステップS105,S106)、該当するプロセッサ110の電源を立ち上げ(ステップS107)、初期化するための新たなタスクを生成し、当該タスク実行待ち状態のタスクキューの先頭に配置する。そのために、本実施形態では、タスク220がスケジューラ210に対して要求され、タスク220の処理待ちキューに接続され、スケジューラ210によってタスク解析が行われた(ステップS103)時点で、プロセッサ110を活動状態にするかどうかを決定する(ステップS103→S106)。そして、プロセッサ110の電源をオンし、タスクが実行待ちの状態にプロセッサ110を復帰させる(ステップS107→S1→S2)ので、後に処理されるタスク220が該当するプロセッサ110で即時実行することが可能となる(ステップS2,S3)。なお、プロセッサの初期化処理は、アーキテクチャにより異なり、ここではその処理内容には特に触れない。
一方、アプリケーションによっては、1回の仕事、いわゆるジョブに対し、非常に多くのタスクを必要とする場合がある。この場合、一度に多くのプロセッサ110の電源を起動する必要があるため、スケジューラ211にタスク要求が入った時点で判断していては、プロセッサの初期化が間に合わないこともある。また、大量のタスクが一度にタスクの処理待ちキューにつなげられた場合に、スケジューラ211によるタスク解析に時間がかかり処理にオーバヘッドが生じることがある。
このために、本実施形態では、外部からプロセッサ110の電源管理を行うための制御要求部213をインターフェイスとしてスケジューラ211に設けた。実行タスクが非常に多いと分かっているジョブに関しては前記制御要求部213からデバイスドライバ240を介して電源制御部120にアクセスすることにより、所望の複数のプロセッサ110の電源をオンにする。その際、プロセッサ110が活動状態にした前後に大量に投入されるタスク220の解析が行われないように、タスク情報には解析の必要性の有無を判断できるフラグを用意する。あるいは、フラグの代替手段として、スケジューラ211にタスク実行要求を行う際に渡す引数を用意し、その引数が渡されたときに動作するタスク解析(ステップS102,S103)ではプロセッサ110の電源制御に関する解析は実施されないようにする。
これまでの電源制御は、プロセッサ110の電源に関するものであるが、この電源制御はプロセッサ110−1〜nを冷却するFAN140−1〜n、及びハードディスク装置(HDD)160に適用することができる。制御要求部213はデバイスドライバ240に対して、指定したデバイスの電源制御を要求する。ハードディスク装置160の場合は、タスク要求時に登録される情報にディスクアクセスが存在するかどうかの情報が提供されるようにタスク情報を作成しておき、スケジューラ210によって処理待ちキューに接続された全タスクがハードディスク装置160に対してアクセスしないかどうかを判断し、ハードディスク装置160への電源の制御を実施する。これにより、スケジューラ210によってタスク220がハードディスクドライブ装置160へのアクセスが発生しない場合に、ハードディスクドライブ装置160のモータを止めるようにすることができる。このようにスケジューラ210全体でハードディスクドライブ装置160を使用しない場合に、ハードディスクドライブ装置160のモータを停止すると、その分の消費電力を削減することができる。なお、ここでは、ハードディスクドライブ装置160を例に取っているが、ハードディスクドライブ装置160を含むCDドライブのようなモータ駆動の外部記憶装置全般にこの制御を適用することができる。
FAN140の場合はプロセッサ110の場合よりもさらに単純であり、プロセッサ110を休眠状態にするのと同時にFAN140の電源をオフにするようにしてもよいし、プロセッサ110の電源を落とさずにFAN140の回転数だけを下げ、電力消費を抑えるようにしてもよい。この制御も、スケジューラ210の制御要求部210からの要求に応じてデバイスドライバ240が電源制御部120にアクセスし、電源制御部120からFANコントローラ130に対してFANの電源のオン、オフの指示、あるいは回転数を下げる指示を行う。FANコントローラ130は、この指示に基づいて各FAN140−1〜nの駆動を制御する。FANコントローラ130はプロセッサ140−1〜nの温度によってその回転数を制御するのが一般的であるが、プロセッサ140−1〜nの温度が上昇していない場合は、各々のプロセッサ140−1〜nの使用状態にかかわらず一定の回転数でFANを回転し続けるという制御も可能である。これにより、温度上昇を招くことなく、効率よく消費電力を削減することができる。
なお、本発明は本実施形態に限定されるものではなく、特許請求の範囲に記載された技術思想に含まれる技術的事項の全てが対象となる。
本発明は、マルチコアプロセッサシステムにおける電力消費の削減を意図しているが、このようなマルチコアプロセッサを使用した省電力制御システム全般、例えばマルチコアプロセッサを使用した情報処理装置、画像形成装置、画像処理装置などのデジタルデータを取り扱う処理装置全般に適用することができる。
100 ハードウェア部
110、110−1〜n プロセッサ(CPU)
120 電源制御部
140、140−1〜n FAN
160 ハードディスクドライブ装置(HDD)
200 ソフトウェア部
210 スケジューラ
211 計測部
212 タスク割り当て部
213 制御要求部
220、220−1〜n タスク
110、110−1〜n プロセッサ(CPU)
120 電源制御部
140、140−1〜n FAN
160 ハードディスクドライブ装置(HDD)
200 ソフトウェア部
210 スケジューラ
211 計測部
212 タスク割り当て部
213 制御要求部
220、220−1〜n タスク
Claims (12)
- 複数のプロセッサで構成されたシステムで実行される複数のタスクのスケジューリングを行うタスクスケジューリング装置であって、
前記複数のタスクの各タスクの仕事量をタスクの処理前に計測する計測部を有し、前記計測部によって計測された仕事量に基づいて前記複数のプロセッサの使用率を予測し、アイドル状態となるプロセッサが存在することを検知した場合に、該当するプロセッサへの電源供給をオフさせるスケジューラを備えていること
を特徴とするタスクスケジューリング装置。 - 請求項1記載のタスクスケジューリング装置であって、
前記スケジューラは、
実行される複数のタスクの処理順序を決定し割り当てるタスク割り当て部と、
前記該当するプロセッサへの電源供給をオフさせる制御要求部と、
を備えていることを特徴とするタスクスケジューリング装置。 - 請求項1又は2記載のタスクスケジューリング装置であって、
前記スケジューラは、前記電源供給をオフしたプロセッサに対して前記電源供給オフ後の所定期間に、前記プロセッサに対するタスク割り当て要求があった場合、前記プロセッサ以外の動作中のプロセッサに対してタスクの割り当てを行うこと
を特徴とするタスクスケジューリング装置。 - 請求項1又は2記載のタスクスケジューリング装置であって、
前記スケジューラは、電源が投入されていないプロセッサに対してタスクを割り当てる必要があるとき、該当するプロセッサの電源を立ち上げ、初期化するための新たなタスクを生成し、当該タスク実行待ち状態のタスクキューの先頭に配置すること
を特徴とするタスクスケジューリング装置。 - 請求項1又は2記載のタスクスケジューリング装置であって、
外部要求により電源がオフされているプロセッサの電源を復帰させるインターフェイスを備え、
前記スケジューラは、前記複数のプロセッサ上で実行するタスクを投入する前に、前記インターフェイスを介して前記複数のプロセッサを利用可能な状態に復帰させること
を特徴とするスケジューリング装置。 - 請求項1又は2記載のタスクスケジューリング装置であって、
外部記憶装置を備え、
前記スケジューラは、前記複数のタスクの処理に際し、前記外部記憶装置へのアクセスが発生しない場合に、前記外部記憶装置の駆動モータを停止させること
を特徴とするタスクスケジューリング装置。 - 請求項1又は2記載のタスクスケジューリング装置であって、
前記複数のプロセッサを冷却するためのファンを備え、
前記スケジューラは、処理量が低いプロセッサを検知した場合に、当該プロセッサを冷却するファンの回転数を所定回転数以下に下げることを特徴とするタスクスケジューリング装置。 - 請求項1ないし5のいずれか1項に記載のタスクスケジューリング装置であって、
前記プロセッサへの電源供給を制御する電源制御部を備え、
当該電源制御部は前記制御要求部からの要求に応じて前記プロセッサへの電源供給を制御すること
を特徴とするタスクスケジューリング装置。 - 請求項6記載のタスクスケジューリング装置であって、
前記外部記憶装置への電源供給を制御する電源制御部を備え、
当該電源制御部は前記制御要求部からの要求に応じて前記外部記憶の駆動モータの駆動を制御すること
を特徴とするタスクスケジューリング装置。 - 請求項7記載のタスクスケジューリング装置であって、
前記ファンへの電源供給を制御する電源制御部を備え、
当該電源制御部は前記制御要求部からの要求に応じて前記ファンの駆動を制御すること
を特徴とするタスクスケジューリング装置。 - 複数のプロセッサで構成されたシステムで実行される複数のタスクのスケジューリングを行うタスクスケジューリング制御方法であって、
前記複数のタスクの各タスクの仕事量を計測部でタスクの処理前に計測し、
前記計測部によって計測された仕事量に基づいて前記複数のプロセッサの使用率を予測し、
アイドル状態となるプロセッサが存在することを検知した場合に、該当するプロセッサへの電源供給をオフさせること
を特徴とするタスクスケジューリング制御方法。 - 複数のプロセッサで構成されたシステムで実行される複数のタスクのスケジューリングをコンピュータによって実行させるタスクスケジューリング制御プログラムであって、
前記複数のタスクの各タスクの仕事量を計測部でタスクの処理前に計測する手順と、
前記計測部によって計測された仕事量に基づいて前記複数のプロセッサの使用率を予測する手順と、
アイドル状態となるプロセッサが存在することを検知した場合に、該当するプロセッサへの電源供給をオフさせる手順と、
を備えていることを特徴とするタスクスケジューリングプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009000982A JP2010160565A (ja) | 2009-01-06 | 2009-01-06 | タスクスケジューリング装置、タスクスケジューリング制御方法、及びタスクスケジューリング制御プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009000982A JP2010160565A (ja) | 2009-01-06 | 2009-01-06 | タスクスケジューリング装置、タスクスケジューリング制御方法、及びタスクスケジューリング制御プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010160565A true JP2010160565A (ja) | 2010-07-22 |
Family
ID=42577701
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009000982A Pending JP2010160565A (ja) | 2009-01-06 | 2009-01-06 | タスクスケジューリング装置、タスクスケジューリング制御方法、及びタスクスケジューリング制御プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010160565A (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102193826A (zh) * | 2011-05-24 | 2011-09-21 | 哈尔滨工程大学 | 一种异构多核处理器高效任务调度方法 |
JP2012198672A (ja) * | 2011-03-18 | 2012-10-18 | Fujitsu Ltd | 業務処理サーバ、業務処理方法及び業務処理プログラム |
JP2014030991A (ja) * | 2012-08-06 | 2014-02-20 | Canon Inc | 画像形成装置、画像形成装置の制御方法及びプログラム |
JP2015022556A (ja) * | 2013-07-19 | 2015-02-02 | スパンション エルエルシー | プロセッサシステムおよび半導体集積回路 |
WO2015051685A1 (zh) * | 2013-10-12 | 2015-04-16 | 华为技术有限公司 | 一种任务调度方法、装置及系统 |
KR101771928B1 (ko) | 2015-02-23 | 2017-08-29 | 한남대학교 산학협력단 | 태스크 스케줄링 장치 및 방법 |
US10635157B2 (en) | 2017-08-24 | 2020-04-28 | Fujitsu Limited | Information processing apparatus, method and non-transitory computer-readable storage medium |
CN113673857A (zh) * | 2021-08-13 | 2021-11-19 | 南京理工大学 | 一种面向数据中台的服务感知与资源调度系统及方法 |
-
2009
- 2009-01-06 JP JP2009000982A patent/JP2010160565A/ja active Pending
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012198672A (ja) * | 2011-03-18 | 2012-10-18 | Fujitsu Ltd | 業務処理サーバ、業務処理方法及び業務処理プログラム |
CN102193826A (zh) * | 2011-05-24 | 2011-09-21 | 哈尔滨工程大学 | 一种异构多核处理器高效任务调度方法 |
CN102193826B (zh) * | 2011-05-24 | 2012-12-19 | 哈尔滨工程大学 | 一种异构多核处理器高效任务调度方法 |
JP2014030991A (ja) * | 2012-08-06 | 2014-02-20 | Canon Inc | 画像形成装置、画像形成装置の制御方法及びプログラム |
US8941853B2 (en) | 2012-08-06 | 2015-01-27 | Canon Kabushiki Kaisha | Image forming apparatus, method for controlling the same, and storage medium |
JP2015022556A (ja) * | 2013-07-19 | 2015-02-02 | スパンション エルエルシー | プロセッサシステムおよび半導体集積回路 |
WO2015051685A1 (zh) * | 2013-10-12 | 2015-04-16 | 华为技术有限公司 | 一种任务调度方法、装置及系统 |
CN104572272A (zh) * | 2013-10-12 | 2015-04-29 | 杭州华为数字技术有限公司 | 一种任务调度方法、装置及系统 |
CN104572272B (zh) * | 2013-10-12 | 2018-02-09 | 杭州华为数字技术有限公司 | 一种任务调度方法、装置及系统 |
KR101771928B1 (ko) | 2015-02-23 | 2017-08-29 | 한남대학교 산학협력단 | 태스크 스케줄링 장치 및 방법 |
US10635157B2 (en) | 2017-08-24 | 2020-04-28 | Fujitsu Limited | Information processing apparatus, method and non-transitory computer-readable storage medium |
CN113673857A (zh) * | 2021-08-13 | 2021-11-19 | 南京理工大学 | 一种面向数据中台的服务感知与资源调度系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2430538B1 (en) | Allocating computing system power levels responsive to service level agreements | |
CN105183128B (zh) | 强制处理器进入低功率状态 | |
JP5433837B2 (ja) | 仮想計算機システム、仮想計算機の制御方法及びプログラム | |
JP2010160565A (ja) | タスクスケジューリング装置、タスクスケジューリング制御方法、及びタスクスケジューリング制御プログラム | |
US8806228B2 (en) | Systems and methods for asymmetrical performance multi-processors | |
US9904346B2 (en) | Methods and apparatus to improve turbo performance for events handling | |
US8381215B2 (en) | Method and system for power-management aware dispatcher | |
US9720730B2 (en) | Providing an asymmetric multicore processor system transparently to an operating system | |
JP5312478B2 (ja) | データ・プロセッサのパフォーマンス予測 | |
US7308591B2 (en) | Power management of multi-processor servers | |
JP6058541B2 (ja) | コア単位電圧及び周波数制御の提供 | |
JP5075274B2 (ja) | 電力認識スレッドスケジューリングおよびプロセッサーの動的使用 | |
US20050125701A1 (en) | Method and system for energy management via energy-aware process scheduling | |
US8448006B2 (en) | Performing virtual and/or physical resource management for power management | |
US7373269B2 (en) | Processor power consumption control | |
KR101597167B1 (ko) | 전력 소비를 감소시키기 위한 우선순위 기반 애플리케이션 이벤트 제어(paec) | |
EP2430541B1 (en) | Power management in a multi-processor computer system | |
TWI569202B (zh) | 用於基於網路負載來調整處理器電力使用之設備及方法 | |
Saxe | Power-efficient software | |
US20090089792A1 (en) | Method and system for managing thermal asymmetries in a multi-core processor | |
KR20190049927A (ko) | 전력 효율적 프로세서 아키텍처 | |
CN107743608B (zh) | 至硬件加速器的动态功率路由 | |
US8892819B2 (en) | Multi-core system and external input/output bus control method | |
JP2008198072A (ja) | リアルタイム計算機 | |
Srinivasan et al. | Energy-aware task and interrupt management in linux |