説明

電力制御装置及び電力制御方法

【課題】仮想化されたプロセッサにおいて最適な電力制御を行うことができる電力制御装置を提供する。
【解決手段】複数の論理プロセッサは、複数の論理プロセッサグループにグループ分けされており、電力制御装置は、物理プロセッサ101に割り当てられる論理プロセッサが変更されるにあたり、変更後の論理プロセッサが属する論理プロセッサグループである対象論理プロセッサグループに属する論理プロセッサが割り当てられる物理プロセッサ101の消費電力を示す電力状態情報に基づいて、変更後の論理プロセッサの物理プロセッサ101への割り当て時の電力状態情報を決定する電力状態情報決定部116と、電力状態情報決定部116が決定した電力状態情報に基づいて、物理プロセッサ101へ供給する電力を変更する電力状態変更部107とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マルチプロセッサにおける、物理プロセッサの電力状態を示す電力状態情報を決定する電力制御装置及び電力制御方法に関する。
【背景技術】
【0002】
近年、デジタルテレビ、ビデオレコーダ又は携帯電話等のデジタル機器において、音声処理、オーディオ処理、動画像処理又は符号化処理などのデジタル処理、GUI(Graphical User Interface)操作、又はインターネット上でのWebブラウザ閲覧対応等の様々な需要が増加している。これら処理の実現の為には、マイクロプロセッサなどの情報処理装置が一般に利用されているが、アプリケーション需要の増大に応じて処理能力を向上するために、プロセッサの動作周波数の向上、マルチスレッド化及びマルチコア化が行われている。
【0003】
これら処理の実現の為には、マイクロプロセッサなどの情報処理装置が一般に利用されているが、アプリケーション需要の増大に応じて、回路規模、動作周波数又は搭載プロセッサ数が増加し、消費電力は増加の一途をたどっている。
【0004】
消費電力の増加は、エネルギー消費に関する環境問題及びバッテリの動作時間に伴う機器の稼働時間の低下を招く上、熱の発生による誤動作、冷却機器の高コスト化及び長期間使用における信頼性低下などの重大な問題を生じる。
【0005】
これに対し従来、消費電力削減のため様々な取り組みが行われており、近年はプロセッサの実行状態の長周期の平均負荷状況に応じて、周波数又は電圧状態を変更する電力制御が行われている(例えば、特許文献1参照)。
【0006】
一方、高い処理性能とソフトウェア生産性を低コストで提供する新たな試みとして、マルチプロセッサにおいて複数のOS(Operating System)を稼働させる仮想化マルチプロセッサが実用的になってきている(例えば、特許文献2及び3参照)。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】国際公開第2006/117950号
【特許文献2】特許第3927533号公報
【特許文献3】特許第4181554号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
仮想化マルチプロセッサにおいては、各物理プロセッサ上で複数のOSが実行される。このため、各物理プロセッサに複数の論理プロセッサが時分割で割り当てられるが、論理プロセッサ間で処理負荷が異なる場合が想定される。
【0009】
しかしながら、従来の電力制御は、物理プロセッサ単位で行われている。このため、同一の物理プロセッサに処理負荷の異なる論理プロセッサが時分割で割り当てられると、論理プロセッサの切り替えに伴う処理負荷の変化に追随することができず、最適な電力制御を行うことができないという課題がある。
【0010】
本発明は、上述の課題を解決するためになされたものであり、仮想化されたプロセッサにおいて最適な電力制御を行うことができる電力制御装置を提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明のある局面に係る電力制御装置は、複数の論理プロセッサの各々が、処理量に応じて消費電力が動的に変化する物理プロセッサに時分割で割り当てられることにより、前記複数の論理プロセッサ上で複数のプロセスを実行する仮想化されたプロセッサにおいて、前記物理プロセッサの消費電力を制御する電力制御装置であって、前記複数の論理プロセッサは、複数の論理プロセッサグループにグループ分けされており、前記電力制御装置は、前記物理プロセッサに割り当てられる論理プロセッサが変更されるにあたり、変更後の論理プロセッサが属する論理プロセッサグループである対象論理プロセッサグループに属する論理プロセッサが割り当てられる物理プロセッサの消費電力を示す電力状態情報に基づいて、前記変更後の論理プロセッサの前記物理プロセッサへの割り当て時の電力状態情報を決定する電力状態情報決定部と、前記電力状態情報決定部が決定した前記電力状態情報に基づいて、前記物理プロセッサへ供給する電力を変更する電力状態変更部とを備える。
【0012】
この構成では、同程度の負荷の処理を実行するなどのように互いに相関のある論理プロセッサ同士をグループ化し、対象論理プロセッサグループに属する論理プロセッサの電力状態情報に基づいて、変更後の論理プロセッサの電力状態情報(変更後の論理プロセッサが割り当てられる物理プロセッサの電力状態情報)を決定している。これにより、各物理プロセッサに時分割で割り当てられる複数の論理プロセッサの間で処理負荷が異なる場合であっても、論理プロセッサの切り替えに伴う処理負荷の変化に追随することができ、最適な電力制御を行うことができる。
【0013】
好ましくは、前記電力状態情報決定部は、前記対象論理プロセッサグループに属する論理プロセッサのうち、前記変更後の論理プロセッサとは異なる論理プロセッサの電力状態情報に基づいて、前記変更後の論理プロセッサの電力状態情報を決定する。
【0014】
この構成により、複数の論理プロセッサに相関性がある場合に、電力状態情報の相関性を利用した電力状態情報の予測を行うことができる。
【0015】
さらに好ましくは、上述の電力制御装置は、さらに、論理プロセッサグループごとに、当該論理プロセッサグループに属する論理プロセッサの電力状態情報を決定するに当たり、当該論理プロセッサグループに属する論理プロセッサのうち、前記物理プロセッサへの割り当て対象とされる論理プロセッサ以外の論理プロセッサの電力状態情報を用いることを許可するか否かを示す論理プロセッサグループ内予測可否情報を記憶している電力状態制御情報記憶部を備え、前記電力状態情報決定部は、前記電力状態制御情報記憶部に記憶されている前記論理プロセッサグループ内予測可否情報を参照し、前記論理プロセッサグループ内予測可否情報が許可している場合にのみ、前記対象論理プロセッサグループに属する論理プロセッサのうち、前記変更後の論理プロセッサとは異なる論理プロセッサの電力状態情報に基づいて、前記変更後の論理プロセッサの電力状態情報を決定する。
【0016】
また、前記電力状態情報決定部は、前記異なる論理プロセッサの電力状態情報が示す値の平均を、前記変更後の論理プロセッサの電力状態情報が示す値として決定しても良い。
【0017】
また、上述の電力制御装置は、さらに、論理プロセッサグループごとに、当該論理プロセッサグループに属する論理プロセッサの電力状態情報を決定するに当たって参照する当該論理プロセッサグループとは異なる論理プロセッサグループを示す論理プロセッサグループ間予測対象論理プロセッサグループ情報を記憶している電力状態制御情報記憶部を備え、前記電力状態情報決定部は、前記論理プロセッサグループ間予測対象論理プロセッサグループ情報が示す論理プロセッサグループに属する論理プロセッサの電力状態情報と、前記対象論理プロセッサグループに属する論理プロセッサのうち前記変更後の論理プロセッサとは異なる論理プロセッサの電力状態情報とに基づいて、前記変更後の論理プロセッサの電力状態情報を決定しても良い。
【0018】
この構成により、対象論理プロセッサグループに含まれる論理プロセッサと相関性を有する他の論理プロセッサグループに含まれる論理プロセッサの電力状態情報を用いて、変更後の論理プロセッサの電力状態情報を決定することができる。例えば、2つの論理プロセッサグループが同種のOS上で動作する論理プロセッサを含んでいる場合に、このような処理は有効である。
【0019】
また、前記電力状態情報決定部は、前記変更後の論理プロセッサの過去の電力状態情報に基づいて、前記変更後の論理プロセッサの電力状態情報を決定しても良い。
【0020】
対象論理プロセッサグループに属する変更後の論理プロセッサのみが物理プロセッサに割り当てられており、対象論理プロセッサグループに属する変更後の論理プロセッサ以外の論理プロセッサが物理プロセッサに割り当てられていない場合に、少なくとも、変更後の論理プロセッサの過去の電力状態情報を用いて、変更後の論理プロセッサの現在の電力状態情報を決定することにより、予測の誤りを最小限に抑えることができる。
【0021】
また、前記電力状態情報決定部は、前記物理プロセッサに割り当てられた前記対象論理プロセッサグループに属する論理プロセッサの過去の電力状態情報が示す値が時間の経過とともに単調に増加又は減少する場合に、前記対象論理プロセッサグループに属する前記論理プロセッサの過去の電力状態情報が示す値を外挿することにより、前記変更後の論理プロセッサの電力状態情報を決定しても良い。
【0022】
この構成によると、論理プロセッサグループ内で処理負荷が徐々に増大又は減少している場合に、適切な電力状態情報を決定することができる。
【0023】
また、上述の電力制御装置は、さらに、論理プロセッサグループごとに、当該論理プロセッサグループに属する論理プロセッサが前記物理プロセッサに割り当てられた際に決定された前記物理プロセッサの電力状態情報が当たっているか否かを示す電力予測履歴情報を記憶している電力状態制御情報記憶部を備え、前記電力状態情報決定部は、前記電力状態制御情報記憶部に記憶されている前記電力予測履歴情報を参照し、前記対象論理プロセッサグループに対応する前記物理プロセッサの電力状態情報が当たっている場合にのみ、前記変更後の論理プロセッサの電力状態情報を決定しても良い。
【0024】
決定した電力状態情報が外れている場合に、電力状態情報の予測を禁止することができる。これにより、不必要に電力状態情報の予測が外れるのを減らしながら、電力状態情報を決定することができる。
【0025】
また、上述の電力制御装置は、さらに、論理プロセッサグループごとに、当該論理プロセッサグループに属する論理プロセッサが実行する処理の応答性を示す条件情報を記憶している電力状態制御情報記憶部を備え、前記電力状態情報決定部は、前記対象論理プロセッサグループに属する論理プロセッサのうち、前記変更後の論理プロセッサとは異なる論理プロセッサの電力状態情報と、前記電力状態制御情報記憶部に記憶されている前記対象論理プロセッサグループに対応する前記条件情報とに基づいて、前記条件情報が示す応答性が高いほど電力が大きくなるように前記変更後の論理プロセッサの電力状態情報を決定しても良い。
【0026】
高い応答性が求められる論理プロセッサグループの論理プロセッサが物理プロセッサに割り当てられる場合には、電力を大きくするように電力状態情報を決定することにより、条件情報で指定される応答性を反映させた電力状態情報を決定することができる。
【0027】
また、上述の電力制御装置は、さらに、論理プロセッサグループごとに、当該論理プロセッサグループに属する論理プロセッサが実行する処理の応答性が最大の応答性を要するか否かを示す緊急プロセッサ該非情報を記憶している電力状態制御情報記憶部を備え、前記電力状態情報決定部は、前記電力状態制御情報記憶部に記憶されている前記対象論理プロセッサグループに対応する前記緊急プロセッサ該非情報が最大の応答性を要する場合に、電力状態情報が取り得る最大値を前記変更後の論理プロセッサの電力状態情報が示す値として決定しても良い。
【0028】
この構成によると、最大の応答性が要求される緊急プロセッサに該当する論理プロセッサについては、最大の電力で起動させることができる。
【0029】
なお、本発明は、このような特徴的な処理部を備える電力制御装置として実現することができるだけでなく、電力制御装置に含まれる特徴的な処理部が実行する処理をステップとする電力制御方法として実現することができる。また、電力制御装置に含まれる特徴的な処理部としてコンピュータを機能させるためのプログラム又は電力制御方法に含まれる特徴的なステップをコンピュータに実行させるプログラムとして実現することもできる。そして、そのようなプログラムを、CD−ROM(Compact Disc−Read Only Memory)等のコンピュータ読取可能な非一時的な記録媒体やインターネット等の通信ネットワークを介して流通させることができるのは、言うまでもない。
【発明の効果】
【0030】
本発明によると、仮想化されたプロセッサにおいて最適な電力制御を行うことができる。
【図面の簡単な説明】
【0031】
【図1】単一の物理プロセッサにおける一般的なソフトウェア構造を示す図である。
【図2】単一の物理プロセッサにおける電力制御の時間遷移例を示すブロック図である。
【図3】複数の物理プロセッサを備えるマルチプロセッサにおける一般的なソフトウェア構造を示す図である。
【図4】マルチプロセッサにおける電力制御の時間遷移例を示す図である。
【図5】仮想化マルチプロセッサにおける一般的なソフトウェア構造を示す図である。
【図6】仮想化マルチプロセッサにおける論理プロセッサの割当の時間遷移例を示す図である。
【図7】デジタル民生機器用のシステムLSIの構成を示すブロック図である。
【図8】システムLSIの各プロセッサにおける処理負荷状況例を示すである。
【図9A】図5に示した仮想化マルチプロセッサにおけるドメインAの論理プロセッサの電力状態情報の時間遷移例を示す図である。
【図9B】図5に示した仮想化マルチプロセッサにおけるドメインBの論理プロセッサの電力状態情報の時間遷移例を示す図である。
【図9C】図5に示した仮想化マルチプロセッサにおける物理プロセッサの電力状態情報の時間遷移例を示す図である。
【図10】全処理量が単調増加している場合の論理プロセッサ群における電力制御の時間遷移例を示す図である。
【図11】本発明の実施の形態に係る仮想化されたマルチプロセッサを含むマルチプロセッサシステムのハードウェア構成を示すブロック図である。
【図12】論理プロセッサグループマッピング情報の構成例を示す図である。
【図13】物理プロセッサ電力状態表の構成例を示す図である。
【図14】物理プロセッサ電力状態表の一例を示す図である。
【図15】論理プロセッサ電力状態表の構成例を示す図である。
【図16】論理プロセッサ電力状態表の一例を示す図である。
【図17】電力状態変更装置を構成する電圧制御装置の構成例を示す図である。
【図18】電力状態変更装置を構成するクロック制御装置の構成例を示す図である。
【図19】図11に示したマルチプロセッサシステムによる電力制御方法に関するソフトウェア構造を示す階層図である。
【図20】論理プロセッサグループ対応表の構成例を示す図である。
【図21】論理プロセッサグループ電力状態制御表の構成例を示す図である。
【図22】論理プロセッサグループ電力状態制御表の電力状態制御情報の構成例を示す図である。
【図23】電力状態履歴情報の一例を示す図である。
【図24】本発明の実施の形態に係るマルチプロセッサシステムにおける電力制御方法のフローチャートである。
【図25】本発明の実施の形態に係るマルチプロセッサシステムにおける電力制御方法の他のフローチャートである。
【図26】電力状態予測処理(図25の手順ZA2106)の詳細なフローチャートである。
【図27】本発明の実施の形態に係るマルチプロセッサシステムの論理的な制御構造を示すブロック図である。
【図28】同一の論理プロセッサグループに含まれる論理プロセッサの電力状態情報を示す図である。
【図29】論理プロセッサの電力制御の時間遷移例を示す図である。
【発明を実施するための形態】
【0032】
本実施の形態に係るマルチプロセッサについて説明する前に、本発明を行うに至った背景について説明する。
【0033】
図1は、単一の物理プロセッサ(Physical Processor)における一般的なソフトウェア構造を示す図である。図2は、単一の物理プロセッサにおける電力制御の時間遷移例を示す図である。
【0034】
図1に示すように、物理プロセッサ101上ではOS(Operating System)102が実行され、OS102が資源管理を行い、物理プロセッサ101の資源をソフトウェア実行体であるプロセス103に提供する。つまり、OS102は、複数のプロセス103(プロセスP0〜Pn)のうちのいずれか1つを物理プロセッサ101に時分割で割り当てる。これにより、プロセス103が物理プロセッサ101上で、時分割で実行される。
【0035】
物理プロセッサ101上で実行されるプロセス103の処理状況に応じて、物理プロセッサ101で必要とされる周波数やメモリなどの物理資源が変化する。例えば、プロセス103の処理量が大きい場合や高速な応答が求められる場合には、物理プロセッサ101の動作周波数を大きくしたり物理プロセッサ101が利用するメモリの容量を大きくしたりする必要がある。
【0036】
この際、物理プロセッサ101上の処理負荷に応じて、物理プロセッサ101の周波数や物理プロセッサ101の電源電圧などの電力条件を変化させることで、物理プロセッサ101の消費電力の削減を図ることが一般的に行われる。
【0037】
例えば、図2に示すように、物理プロセッサ101自身の現在の処理負荷状況や過去の処理負荷状況から、次の電力状態情報を予測的に変化させる。このような方法により、より積極的で効果的な電力制御を実現することが可能となっている。なお、本実施の形態において電力状態情報は、物理プロセッサの動作電圧及び動作周波数のそれぞれと一対一に対応付けられる値(以下、「電力状態」という。)を含むものとし、電力状態が高くなるにつれ(電力状態が大きくなるにつれ)、物理プロセッサの動作電圧及び動作周波数が大きくなるものとする。
【0038】
なお、動的に周波数や電圧を可変にする電力制御は、リアルタイム性の実現に課題を与える。このため、デジタルテレビや携帯電話などのようにリアルタイム性が要求される機器においては、これが阻害されないような電力制御の実現が不可欠となる。
【0039】
また近年はプロセッサの処理能力を増大させるために、プロセッサにおいてマルチプロセッサ構成を採ることが多くなってきている。図3は、複数の物理プロセッサを備えるマルチプロセッサにおける一般的なソフトウェア構造を示す図である。図4は、マルチプロセッサにおける電力制御の時間遷移例を示す図である。
【0040】
図3に示すように、複数の物理プロセッサ101(物理プロセッサPP#0〜PP#3)を共通に管理するマルチプロセッサ用のOS102上で複数のプロセス103(プロセスP0〜Pn)が実行される。各々の物理プロセッサ101上では、OS102が割当てたプロセス103が実行される。
【0041】
このようなマルチプロセッサにおいては、図2に示したような単一プロセッサを前提とした電力制御方法に加えて、図4に示すようなより積極的な電力制御が可能となる。つまり、各物理プロセッサ101の電力制御において、他の物理プロセッサ101の電力状態を反映させることで、より最新の時刻情報を活かしながら、効果的な電力制御が可能となる。
【0042】
具体的には、例えば図4のように、3つの物理プロセッサPP#0〜PP#2が、処理負荷が高いために高い電力状態で稼働しているものとする。そこへ4つ目の物理プロセッサPP#3を、マルチプロセッサ全体の処理量を低減させる目的で起床させる場合について説明する。
【0043】
この場合、物理プロセッサPP#3の現在と過去の電力状態から、次の物理プロセッサPP#3の電力状態を予測しても、物理プロセッサPP#3はこれまで停止していた。このため、物理プロセッサPP#3を一度に高負荷の処理が可能な電力状態に遷移させる予測はできない。そこで、同時刻帯に稼働している他の物理プロセッサPP#0〜PP#2の電力状態を参照することにより、物理プロセッサPP#3の電力状態を予測すれば、より素早く適切な電力状態に遷移させる事が可能となる。例えば、他の物理プロセッサPP#0〜PP#2の電力状態の平均値を物理プロセッサPP#3の電力状態として予測することにより、物理プロセッサPP#3を高負荷の処理が可能な電力状態で起動させることができる。
【0044】
このように、マルチプロセッサにおいては、電力状態の予測対象となっている物理プロセッサ101と相関のある他の物理プロセッサ101の電力状態を用いて、予測対象となっている物理プロセッサ101の電力状態を予測することができる。なお、互いに相関する物理プロセッサ101とは、処理負荷、処理に対して要求される応答性、又は処理内容などの処理の特性が類似する物理プロセッサ101同士のことを言う。
【0045】
次に、仮想化マルチプロセッサについて説明する。
【0046】
図5は、仮想化マルチプロセッサにおける一般的なソフトウェア構造を示す図である。ここでは2つのOSドメインが存在する場合を例示している。
【0047】
各々のOS102は、論理プロセッサ(Logical Processor)104又は仮想プロセッサ(Virtual Processor)104と呼ばれる仮想的なプロセッサ上で稼働し、各々の論理プロセッサ104はあたかも自分が物理プロセッサ101を占有して以下のように動作する。
【0048】
論理プロセッサ104は、ハイパーバイザ(Hypervisor)105又はバーチャルマシンモニタ(Virtual Machine Monitor)105と呼ばれる、仮想化レイヤのソフトウェア又はハードウェア又は両者の協調動作によって、物理プロセッサ101に時分割的に割り当てられる。
【0049】
例えば、図5に示されるように、4つの論理プロセッサ104(論理プロセッサLP#A0〜LP#A3)上でドメインAのOS102が稼働し、4つの論理プロセッサ104(論理プロセッサLP#B4〜LP#B7)上でドメインBのOS102が稼働する。
【0050】
ドメインAのOS102は、プロセスPa0〜Panを論理プロセッサLP#A0〜#A3に割り当て、ドメインBのOS102は、プロセスPb0〜Pbnを論理プロセッサLP#B4〜#B7に割り当てる。
【0051】
ハイパーバイザ105は、4つの物理プロセッサ101に、8つの論理プロセッサ104を時分割で切り替えながら割り当てる。これにより、2つのOS102上で実行されるプロセス103を時分割で実行する。
【0052】
図6には、各々の論理プロセッサ104が、時分割で物理プロセッサ101に割当てられる様子を示す。例えば、物理プロセッサPP#0には、ハイパーバイザ105により論理プロセッサLP#A0が割り当てられており、その後、ハイパーバイザ105により論理プロセッサLP#B5が割り当てられることが示されている。
【0053】
また、近年のLSI(Large Scale Integration)は高度に集積化され、システムの大きな部分をLSIに集積できるに至っている。
【0054】
図7に、デジタル民生機器用のシステムLSIの例を示す。本例に示すように、近年のシステムLSIには、構造や用途が異なる多数のプロセッサが集積されている。各プロセッサは各々の処理に最適に設計されており、その分野において最大の能力を提供する。
【0055】
例えば、図7に示すシステムLSI106には、ユーザインタフェースCPU、デバイスコントローラプロセッサ、ビデオDSP、オーディオDSPなどの多数の物理プロセッサ101が集積されている。
【0056】
しかしながら、各物理プロセッサ101は常に最大の処理能力で稼働する訳ではない。図8に一例を示すように、インターネットのWebブラウザ閲覧時や、デジタルTVなどのAV(Audio/Visual)視聴時や、ネットワークの待機状態では、それぞれのプロセッサ群の稼働割合は異なる。つまり、図8(a)に示すようにインターネットのWebブラウザ閲覧時には、ユーザインタフェースCPUの処理負荷が大きくなるが、その他のCPUの処理負荷は小さい。また、図8(b)に示すようにAV視聴時にはビデオDSP及びオーディオDSPの処理負荷が大きくなるが、その他のCPUの処理負荷は小さい。さらに、図8(c)に示すようにネットワークの待機状態では、すべてのCPUの処理負荷が小さい。
【0057】
システムでは各プロセッサ群が個別に最大処理を必要とする能力を供給すべく実装されており、一般的にはコストが大きくなるという課題を誘発する。
【0058】
このコスト課題と性能供給を解決する策として、先に述べた仮想化システムが適用されつつある。すなわち、図5のような仮想化マルチプロセッサを用いて、低コストながら高性能なシステムを構築する事ができる。
【0059】
しかしながら、仮想化マルチプロセッサにおいては、異なる処理負荷や処理特性をもつ複数のOSドメイン上の処理が混在して物理プロセッサ101群上で実行される。このため、効率の良い電力制御による消費電力削減を行うことができない。
【0060】
例えば、先に図4で示したような他の物理プロセッサ101の現在の稼働状況を利用して電力状態を予測することによる積極的な電力削減を行うことができない。以下、この理由について説明する。
【0061】
例えば、図5のように2つのOSドメインが存在する仮想化マルチプロセッサを考える。2つのOSドメインのうち、ドメインAのOS102で実行されるプロセス103の処理は軽く、ドメインBのOS102で実行されるプロセス103の処理は重い状態を考える。図9Aは、ドメインAの論理プロセッサの電力状態の時間遷移例を示す図である。図9Bは、ドメインBの論理プロセッサの電力状態の時間遷移例を示す図である。図9A及び図9Bともに、横軸は時間を示し、縦軸は電力状態を示す。図9Aに示すように論理プロセッサLP#A0〜LP#A3で実行されるプロセス103の処理は軽く、図9Bに示すように論理プロセッサLP#B4〜LP#B7で実行されるプロセス103の処理は重いものとする。
【0062】
図9Cは、物理プロセッサ101の電力状態の時間遷移例を示す図である。横軸及び縦軸は、図9A及び図9Bに示したものと同じである。
【0063】
ここでは、物理プロセッサPP#0に、高負荷なドメインBの論理プロセッサLP#B5が割り当てられており、物理プロセッサPP#1〜PP#3に、低負荷なOSドメインAの論理プロセッサLP#A0〜#A2がそれぞれ割り当てられている時間帯を考える。
【0064】
このとき、物理プロセッサPP#1に割り当てられる論理プロセッサが、低負荷なOSドメインAの論理プロセッサLP#A0から高負荷なOAドメインBの論理プロセッサLP#B4に変化するものとする。この場合に、図4で示したような物理プロセッサ101間の相関を使用した電力状態予測を適用すると、本来は適切ではない電力制御が行われることになる。つまり、物理プロセッサPP#1には高負荷なOAドメインBの論理プロセッサLP#B4が割り当てられるため、本来、高い電力状態901で動作を開始するのが望ましい。しかし、物理プロセッサ101間の相関を利用して電力状態予測を行うと、物理プロセッサPP#1〜PP#3の低い電力状態の影響を強く受け、低い電力状態902を予測してしまう。例えば、物理プロセッサPP#0の高い電力状態と、物理プロセッサPP#1〜PP#3の低い電力状態との平均により、物理プロセッサPP#1の電力状態を予測すると、低い電力状態902を予測してしまう。
【0065】
このような予測を行ってしまうと、不要な周波数低減及び電圧低減が発生する。これは必要な処理能力を物理プロセッサ101に供給することを妨げるため、処理の応答性及びリアルタイム性の悪化を招いてしまう。
【0066】
他の電力状態の制御方法としては、論理プロセッサ104毎に自身の論理プロセッサ104に関する電力状態を保持し、例えば前回実行時の最後の電力状態を用いて、今回の物理プロセッサ101への割当て時の電力状態の予測値とする方法が考えられる。
【0067】
これは単一の論理プロセッサ104の予測方式として適切であるが、複数の論理プロセッサ104間で電力状態が相関をもつ場合には、その相関を利用する事ができない。
【0068】
例えば、図10に示すように、3つの論理プロセッサLP#A0〜LP#A2が同一OSドメインで稼働し、物理プロセッサPP#0上で動作しているものとする。これは、SMP(対称マルチプロセッサ)上において汎用OSが稼働している場合に相当する。
【0069】
図10(a)に示すように、時間の進行とともにあるOS全体で処理しなければならないプロセス数が増大するなどの理由により負荷が増大する場合、前回起動時の終了時の自身の論理プロセッサ104の電力状態は、OS全体としての最新の状態は反映していない。つまり、図10(c)に示すように、物理プロセッサPP#0に、論理プロセッサLP#A0、論理プロセッサLP#A1、論理プロセッサLP#A2の順に論理プロセッサ104が割り当てられ、再度、論理プロセッサLP#A0が割り当てられるものとする。この場合、図10(b)に示すように、前回起動時の終了時の論理プロセッサLP#A0の電力状態1002を、今回起動時の論理プロセッサLP#A0の電力状態1001とすると、電力状態の予測に失敗してしまう。
【0070】
つまり、論理プロセッサLP#A0が再び物理プロセッサPP#0に割当てられる時に、OS全体としてより的確な負荷状態を反映した電力状態は、論理プロセッサLP#A2の電力状態1003である。しかしながら、前回の論理プロセッサLP#A0の電力状態1002を使用すると、OS全体としては、適切な電力で早く処理全体を終わらせる方が有利であるにも関わらず、この最新のOSの状態を反映させる事ができない。
【0071】
このように、電力制御が論理プロセッサ104単位、又は物理プロセッサ101単位で行われる限り、システム全体を考慮した消費電力の削減は充分に行うことができない。
【0072】
以下、本発明の実施の形態を、図面を参照して詳しく説明する。なお、図面において同一又は相当する部分には同一の参照符号を付してその説明は繰り返さない。
【0073】
図11は、本発明の実施の形態に係る仮想化されたマルチプロセッサを含むマルチプロセッサシステムのハードウェア構成を示すブロック図である。本実施の形態におけるマルチプロセッサは、マイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ及びディジタル・シグナル・プロセッサを含むものとする。
【0074】
マルチプロセッサシステムは、複数の物理プロセッサ101(物理プロセッサPP#0〜PP#3)と、複数のレベル1キャッシュ121と、レベル2キャッシュ及び共有バス122と、電力状態変更部107と、入出力装置123と、記憶装置124と、外部装置125とを備える。このうち、複数の物理プロセッサ101と、複数のレベル1キャッシュ121と、レベル2キャッシュ及び共有バス122とがマルチプロセッサを構成する。ただし、その他の構成部がマルチプロセッサに加えられていても良い。
【0075】
複数の物理プロセッサ101は、レベル2キャッシュ及び共有バス122を経由して互いに接続されている。各物理プロセッサ101には、レベル1キャッシュ121が接続されている。また、物理プロセッサ101は、レベル2キャッシュ及び共有バス122を経由して、電力状態変更部107、入出力装置123、記憶装置124、及びその他の外部装置125と接続されている。
【0076】
各物理プロセッサ101は、当該物理プロセッサ101に割り当てられる論理プロセッサ104が属している論理プロセッサグループを識別するための論理プロセッサグループ識別情報108を保持している。これにより、各物理プロセッサ101は、当該物理プロセッサ101にいずれの論理プロセッサグループの論理プロセッサ104が割当てられているかを確認することができる。論理プロセッサグループは、予め定められており、同じプロセッサグループに属する論理プロセッサ104が実行する処理は、処理負荷、処理に対して要求される応答性、又は処理内容などの処理の特性が類似するように決定される。
【0077】
また、各物理プロセッサ101は、電力状態情報109が示す電力状態に対応付けられた動作電圧及び動作周波数に従い、動作しているものとする。
【0078】
なお、物理プロセッサ101と論理プロセッサグループとの対応関係を示すデータを、記憶装置124に記憶するようにしても良い。図12は、物理プロセッサ101と論理プロセッサグループとの対応関係を示すデータである論理プロセッサグループマッピング情報の一例を示す図である。
【0079】
論理プロセッサグループマッピング情報110は、物理プロセッサ101ごとに、その物理プロセッサ101に割り当てられている論理プロセッサ104の属する論理プロセッサグループの番号を記憶している情報である。図12に示す論理プロセッサグループマッピング情報110によると、物理プロセッサPP#0、PP#2及びPP#3には、番号が1番の論理プロセッサグループに属する論理プロセッサ104が割り当てられており、物理プロセッサPP#1には、番号が0番の論理プロセッサグループに属する論理プロセッサ104が割り当てられていることが示されている。
【0080】
論理プロセッサグループマッピング情報110と同様に、図13に示すような物理プロセッサ101ごとに電力状態情報109を示した物理プロセッサ電力状態表111を記憶装置124に記憶するようにしても良い。
【0081】
図14は、物理プロセッサ電力状態表111の一例を示す図である。各物理プロセッサ101の電力状態情報109は、論理プロセッサ104の割り当て開始時の電力状態と、論理プロセッサ104の割り当て終了時の電力状態と、論理プロセッサ104が割り当てられていた時間における平均の電力状態とを含む。
【0082】
また、記憶装置124には、図15に示すような論理プロセッサ104ごとの電力状態情報を示した論理プロセッサ電力状態表126が記憶されているものとする。論理プロセッサ104の電力状態とは、論理プロセッサ104に現在割り当てられている物理プロセッサ101又は最も時間的に近くに割り当てられた物理プロセッサ101の電力状態のことである。
【0083】
図16は、論理プロセッサ電力状態表126の一例を示す図である。各論理プロセッサ104の電力状態情報は、論理プロセッサ104の割り当て開始時の電力状態と、論理プロセッサ104の割り当て終了時の電力状態と、論理プロセッサ104が割り当てられていた時間における平均の電力状態とを含む。
【0084】
電力状態変更部107は、外部からの電力状態の変更要求に従って、各物理プロセッサ101の電力状態を変更する。
【0085】
図17と図18には、電力状態変更部107の一例を示す。図17は、与えられた電源電圧条件や閾値電圧条件に対し、DC−DCコンバータを用いて供給電圧を変更する回路例である。図18は、クロック周波数情報としての逓倍率条件と分周率条件により、供給クロックを変更する回路例である。
【0086】
つまり、各回路は、受け取った電力状態変更要求情報をもとに、各物理プロセッサ101に対する電圧値の変更又はクロック周波数の変更を行う。電力状態変更部107は、物理プロセッサ101群と同一のLSI上に実装されても良いし、LSI外部に実装されても良い。
【0087】
また、電力状態変更部107に対する電力状態の変更要求は、ハードウェアにより行われても良いし、ソフトウェアにより行われても良い。
【0088】
図19は、図11に示したマルチプロセッサシステムによる電力制御方法に関するソフトウェア構造を示す階層図である。
【0089】
この階層図は、図5に示した仮想化マルチプロセッサにおけるソフトウェア構造を示す図と同じである。
【0090】
なお、ハイパーバイザ105は、論理プロセッサグループ対応表112と、論理プロセッサグループ電力状態制御表113と、電力状態履歴情報117と、論理プロセッサ電力状態表126と、論理プロセッサグループマッピング情報110と、物理プロセッサ電力状態表111とを有する。これらの情報は、記憶装置124に記憶されている。
【0091】
論理プロセッサグループ対応表112は、図20に示すように、論理プロセッサ104と論理プロセッサグループとを対応付けるデータであある。図20の例によると、論理プロセッサLP#A0〜LP#A3がグループ番号0番の論理プロセッサグループ(論理プロセッサグループ0)に属し、論理プロセッサLP#B4〜LP#B7がグループ番号1番の論理プロセッサグループ(論理プロセッサグループ1)に属している。
【0092】
一般的には、あるOSドメインに属する論理プロセッサ104が共通の論理プロセッサグループに属するように論理プロセッサグループを設定する。
【0093】
但し、システムの処理特性によっては、OSドメイン内の論理プロセッサ104が複数の論理プロセッサグループに属するように論理プロセッサグループを設定したり、複数のOS内の論理プロセッサ104を共通の論理プロセッサグループに属するように論理プロセッサグループを設定したりすることも可能である。
【0094】
例えば、ソフトウェア保守性やセキュリティの観点から、8つの論理プロセッサ104を4つの論理プロセッサ104からなる2つの汎用OSドメインに分割するが、電力制御は共通に適用したいケースも存在する。このような場合には、1つの論理プロセッサグループに8つの論理プロセッサ104が属するように論理プロセッサグループを設定すれば良い。
【0095】
逆に、あるOSドメイン内において、特定の論理プロセッサ104のみ、電力制御特性を区別したいケースも存在する。このような場合には、特定の論理プロセッサ104のみが属する論理プロセッサグループを設定すれば良い。
【0096】
このように、システムの特性によって、論理プロセッサ104と論理プロセッサグループとの関係を任意に設定可能とする。
【0097】
図21には、論理プロセッサグループ電力状態制御表113の例を示す。論理プロセッサグループ電力状態制御表113は、論理プロセッサグループごとに、電力状態制御情報114を記憶しているデータである。電力状態制御情報114は、論理プロセッサグループの電力状態及び電力制御仕様を示すデータである。
【0098】
図22は、電力状態制御情報114の一例を示す図である。
【0099】
電力状態制御情報114は、電圧状態情報と、クロック状態情報と、LPグループ内予測可否情報と、LPグループ間予測対象LPグループ情報と、電力予測履歴情報と、電力制御禁止情報と、電力制御変化幅情報と、応答性条件情報と、電力上限条件情報と、緊急プロセッサ該非情報と、最小プロセッサ条件情報とを含む。
【0100】
電圧状態情報は、着目している論理プロセッサグループに含まれる論理プロセッサの電力状態を示す情報である。例えば、電圧状態情報は、電源電圧や閾値電圧を含む。
【0101】
クロック状態情報は、着目している論理プロセッサグループに含まれる論理プロセッサのクロック状態を示す情報である。クロック状態情報は、例えば、クロック周波数や現在のクロックが停止しているか否かに関する情報を含む。
【0102】
LPグループ内予測可否情報は、着目している論理プロセッサグループに含まれる論理プロセッサ104の電力状態に基づいて、電力状態の予測を行うか否かを示す情報である。
【0103】
LPグループ間予測対象LPグループ情報は、電力状態の予測を行う際に着目している論理プロセッサグループと同一の論理プロセッサグループとみなす他の論理プロセッサグループの識別情報である。例えば、マルチプロセッサ上で3つのOSが動作している場合に、そのうちの2つが同一の種類のOSで他の1つがそれとは異なる種類のOSの場合であって、OSごとに論理プロセッサグループが設定されている場合には、同一の種類のOSに対応する2つの論理プロセッサグループを同一の論理プロセッサグループとみなす。
【0104】
電力予測履歴情報は、着目している論理プロセッサグループに属する論理プロセッサに対する電力状態の予測が当たっていたか否かを示す情報である。なお、予測した電力状態で論理プロセッサが割り付けられた物理プロセッサを動作させた際に、その後の一定時間の間、予測した電力状態が保たれていれば予測が当たっていると判断され、上記一定時間の間に電力状態が変更されると予測が外れたと判断される。
【0105】
電力制御禁止情報は、電力状態の予測を禁止するか否かを示すフラグ情報である。
【0106】
電力制御変化幅情報は、電力を変化させるときの変化幅を示す情報である。この変化幅を小さく設定すれば、電力変化の応答性が悪くなるが、決め細やかな制御が可能となる。一方、変化幅を大きく設定すれば、決め細やかな制御がし難くなるが、電力変化の応答性が良くなる。
【0107】
応答性条件情報は、電力制御の際の応答性のレベルを示す情報である。高い応答性が望まれるレベルの場合には、電圧及び周波数を下げる際にはゆっくりと下げ、上げる際には急激に上げる制御が行われる。これにより、電圧及び周波数をできるだけ上げようとするため、着目している論理プロセッサグループに属する論理プロセッサ104が割り当てられる物理プロセッサ101の応答性を高くすることができる。なお、高い応答性が望まれるレベルの場合に、電力を変化されるときの変化幅を大きくするようにしても良い。
【0108】
電力上限条件情報は、電力制御の際の電力の上限値を示す情報である。電力の上限値を小さく設定することにより、上記物理プロセッサ101を低電力で動作させることができる。
【0109】
緊急プロセッサ該非情報は、着目している論理プロセッサグループに属する論理プロセッサ104が緊急プロセッサに該当するか否かを示す情報である。緊急プロセッサとは、最大の応答性が必要とされるプロセッサのことであり、緊急プロセッサに該当する論理プロセッサ104が物理プロセッサ101に割り当てられる際には、その物理プロセッサ101の電圧及び周波数を最大にするような電力状態の制御が行われる。
【0110】
最小プロセッサ条件情報は、複数の物理プロセッサ101に同時に割り当てる論理プロセッサ104の最大個数を示す情報である。着目している論理プロセッサグループに属する論理プロセッサ104が実行するプロセス103の処理負荷が低く、高い応答性を要求しない場合には、最大個数を小さく設定する。これにより、無駄に物理プロセッサ101が稼働することを防ぐことができ、物理プロセッサ101が稼働していない間、電力を停止させることができる。
【0111】
ハイパーバイザ105は、以上説明した電力状態制御情報114に含まれる各情報に基づいて、物理プロセッサ101に対する電力制御を行う。
【0112】
なお、ハイパーバイザ105は、ソフトウェア又はハードウェアにより構成されていても良いし、両者の協調動作によって処理を実行するようにソフトウェア及びハードウェアにより構成されていても良い。
【0113】
図23は、電力状態履歴情報117の一例を示す図である。
【0114】
電力状態履歴情報117は、論理プロセッサグループごとに、FIFO形式で電力状態情報を記憶している。図23に示す例では、4つの電力状態情報(電力状態情報N−1〜N−4)が履歴として記憶されている。各電力状態情報は、論理プロセッサ104の割り当て開始時の電力状態と、論理プロセッサ104の割り当て終了時の電力状態と、論理プロセッサ104が割り当てられていた時間における平均の電力状態と、論理プロセッサ104が割り当てられていた時間とを示す情報を含む。
【0115】
図24は、本実施の形態に係るマルチプロセッサシステムにおける電力制御方法のフローチャートである。
【0116】
手順ZA2001において、ハイパーバイザ105は、次に物理プロセッサ101に割当てるべき論理プロセッサ104を決定する。論理プロセッサ104の決定は、スケジューリング処理により行なわれ、本願の主眼ではないため、その詳細な説明は省略する。
【0117】
手順ZA2002では、ハイパーバイザ105は、次に物理プロセッサ101に割当てるべき論理プロセッサ104の電力状態情報を、論理プロセッサ電力状態表126から取得する。
【0118】
手順ZA2003で、ハイパーバイザ105は、論理プロセッサグループマッピング情報110を参照し、次に物理プロセッサ101に割当てるべき論理プロセッサ104が属する論理プロセッサグループの論理プロセッサグループ番号と一致する論理プロセッサグループ番号を有する物理プロセッサ101を抽出する。
【0119】
続く手順ZA2004にて、ハイパーバイザ105は、物理プロセッサ電力状態表111から、抽出した物理プロセッサ101についての、電力状態情報109を取得する。
【0120】
手順ZA2005では、ハイパーバイザ105は、次に物理プロセッサ101に割当てるべき論理プロセッサ104と論理プロセッサグループが一致する物理プロセッサ101が存在するかを判定する。つまり、ハイパーバイザ105は、手順ZA2003で物理プロセッサ101が抽出できた場合には存在すると判定し、抽出できなかった場合には存在しないと判定する。
【0121】
次に物理プロセッサ101に割当てるべき論理プロセッサ104と論理プロセッサグループが一致する物理プロセッサ101が存在しない場合には(手順ZA2005でNO)、手順ZA2006において、ハイパーバイザ105は、割り当て対象の論理プロセッサ104の過去の電力状態情報に基づいて、論理プロセッサ104を物理プロセッサ101に割当てる際の電力状態を予測する。例えば、ハイパーバイザ105は、論理プロセッサ電力状態表126から取得した電力状態情報を参照し、割り当て対象の論理プロセッサ104が物理プロセッサ101に最近割り当てられた際の物理プロセッサ101の電力状態を、割り当て対象の論理プロセッサ104を物理プロセッサ101に割り当てる際の電力状態として予測する。
【0122】
次に物理プロセッサ101に割当てるべき論理プロセッサ104と論理プロセッサグループが一致する物理プロセッサ101が存在する場合には(手順ZA2005でYES)、手順ZA2007において、ハイパーバイザ105は、手順ZA2004で取得された物理プロセッサ101の電力状態情報109から、割り当て対象の論理プロセッサ104を物理プロセッサ101に割り当てる際の電力状態を予測する。例えば、ハイパーバイザ105は、物理プロセッサの電力状態の平均値を、割り当て対象の論理プロセッサ104を物理プロセッサ101に割り当てる際の電力状態として予測する。
【0123】
例えば、図9Cにおいて、論理プロセッサLP#B4が物理プロセッサPP#1に割り当てられる場合を考えると、論理プロセッサLP#B4と論理プロセッサグループが一致する物理プロセッサ101は物理プロセッサPP#0のみである。このため、物理プロセッサPP#0電力状態が、論理プロセッサLP#B4を物理プロセッサPP#1に割り当てられる際の電力状態として予測される。
【0124】
なお、電力状態の予測の際に、物理プロセッサの電力状態のみならず、割り当て対象の論理プロセッサ104の電力状態を用いて予測を行っても良い。
【0125】
手順ZA2008では、ハイパーバイザ105が電力状態変更部107に対して予測した電力状態への変更要求を行い、電力状態変更部107が、予測した電力状態に基づいて、論理プロセッサ104が割り当てられる物理プロセッサ101の電力状態を変更する。
【0126】
図25は、本実施の形態に係るマルチプロセッサシステムにおける電力制御方法の他のフローチャートである。図24に示す電力制御方法及び図25に示す電力制御方法は、択一的に実施される。どちらの電力制御方法を実施するかは、マルチプロセッサシステムの設計による。
【0127】
手順ZA2100において、ハイパーバイザ105は、次に物理プロセッサ101に割当てるべき論理プロセッサ104を決定する。論理プロセッサ104の決定は、スケジューリング処理により行なわれ、本願の主眼ではないため、その詳細な説明は省略する。
【0128】
手順ZA2101において、ハイパーバイザ105は、論理プロセッサグループ電力状態制御表113から、割り当て対象の論理プロセッサ104が属する論理プロセッサグループの電力状態制御情報114を取得する。ハイパーバイザ105は、取得した電力状態制御情報114のうちLPグループ内予測可否情報を参照し、論理プロセッサグループ内の論理プロセッサ104間の電力状態予測が禁止されているか否かを判別する。
【0129】
論理プロセッサ104間の電力状態予測が禁止されている場合には(手順ZA2101でYES)、ハイパーバイザ105は、電力状態変更部107に対して電力状態の変更要求を行わず、現在の物理プロセッサ101の電力状態を維持する。
【0130】
論理プロセッサ104間の電力状態予測が禁止されていない場合には(手順ZA2101でNO)、手順ZA2102において、ハイパーバイザ105は、手順ZA2101で取得した電力状態制御情報114のうち、電力予測履歴情報を参照し、上記論理プロセッサグループに属する論理プロセッサ104の電力状態の予測が外れているか否かを判断する。
【0131】
電力状態の予測が外れていることにより電力状態予測による電力制御が禁止されている期間である場合には(手順ZA2101でYES)、ハイパーバイザ105は、電力状態変更部107に対して電力状態の変更要求を行わず、現在の物理プロセッサ101の電力状態を維持する。
【0132】
電力状態の予測が当たっている場合には(手順ZA2101でNO)、手順ZA2103において、ハイパーバイザ105は、論理プロセッサグループマッピング情報110を参照し、次に物理プロセッサ101に割当てるべき論理プロセッサ104が属する論理プロセッサグループの論理プロセッサグループ番号と一致する論理プロセッサグループ番号を有する物理プロセッサ101を抽出する。
【0133】
続く手順ZA2104で、ハイパーバイザ105は、電力状態履歴情報117から、割り当て対象の論理プロセッサ104が属する論理プロセッサグループの電力状態情報を取得する。
【0134】
手順ZA2105では、ハイパーバイザ105は、次に物理プロセッサ101に割当てるべき論理プロセッサ104の電力状態情報を、論理プロセッサ電力状態表126から取得する。
【0135】
手順ZA2106で、ハイパーバイザ105は、取得した電力状態情報群を用いて、次に論理プロセッサ104が割り当てられる物理プロセッサ101の電力状態を予測する。手順ZA2106の詳細については後述する。
【0136】
手順ZA2107で、ハイパーバイザ105は、電力状態変更部107に対して予測した電力状態への変更要求を行い、電力状態変更部107は、予測した電力状態に基づき、論理プロセッサ104が割り当てられる物理プロセッサ101の電力状態を変更する。
【0137】
図26は、電力状態予測処理(図25の手順ZA2106)の詳細なフローチャートである。
【0138】
手順ZA2201において、ハイパーバイザ105は、論理プロセッサグループマッピング情報110を参照し、実行中の物理プロセッサ101のうち、割り当てられている論理プロセッサ104の論理プロセッサグループに属する物理プロセッサ101が2つ以上存在するか否かを判定する。
【0139】
同一の論理プロセッサグループに属する物理プロセッサ101が2つ以上存在する場合は(手順ZA2201でYES)、手順ZA2206にて、ハイパーバイザ105は、同一の論理プロセッサグループに属する物理プロセッサ101の電力状態の平均値を、割り当て対象の論理プロセッサ104を物理プロセッサ101に割り当てる際の電力状態として予測する。なお、物理プロセッサ101の電力状態は、物理プロセッサ電力状態表111から取得する。具体例は、手順ZA2007の説明において図9Cを参照して説明したものと同様である。
【0140】
ここでは瞬時的な電力状態の誤差の影響を取り除くために論理プロセッサグループが同一の物理プロセッサ101が2つ以上存在するか否かを判定基準にしたが、これは一例である。また、平均値による電力状態の予測例を示したが、重みづけ演算を行うなど、電力状態の予測には、システムに適した任意の方法を選択することが可能である。
【0141】
同一の論理プロセッサグループに属する物理プロセッサ101が1つしか存在しない場合又は全く存在しない場合は(手順ZA2201でNO)、手順ZA2202で、ハイパーバイザ105は、電力状態履歴情報117に示されている割り当て対象の論理プロセッサ104が属する論理プロセッサグループの電力状態情報から、電力状態の変化傾向を算出する。
【0142】
例えば、電力状態履歴情報117に過去の4回分の履歴が記録されており、時間の経過につれて、そのいずれもが電力状態が増加する、すなわち電圧又は周波数が大きくなる傾向を示している場合は、手順ZA2203にて電力状態が単方向増加中であると判定する。また、そのいずれもが電力状態が減少する、すなわち電圧又は周波数が小さくなる傾向を示している場合は、手順ZA2203にて電力状態が単方向減少中であると判定する。
【0143】
電力状態の変化傾向が単方向増加中又は単方向減少中であると判定される場合には(手順ZA2203でYES)、次の手順ZA2205において、ハイパーバイザ105は、割り当て対象の論理プロセッサ104を物理プロセッサ101に割り当てた際においても、その電力状態の変化方向が維持されるように物理プロセッサ101の電力状態を設定する。例えば、4回分の電力状態の値から次の物理プロセッサ101の電力状態を外挿することにより予測する。具体的には、4回分の電力状態の値に最小二乗法を適用することにより、次の物理プロセッサ101の電力状態を予測するようにしても良い。例えば、図10に示した例の場合に、過去の論理プロセッサLP#A0、LP#A1、LP#A2のそれぞれの電力状態から次の物理プロセッサPP#0の電力状態を外挿することにより、物理プロセッサPP#0の電力状態1003が予測される。
【0144】
つまり、論理プロセッサグループ内で処理負荷が徐々に増大又は減少している場合に、適切な電力状態の予測を行うことができる。
【0145】
電力状態の変化傾向が単方向増加中でもなく単方向減少中でもない場合、すなわち電力状態がランダムに変化している場合には(手順ZA2203でNO)、手順ZA2204において、ハイパーバイザ105は、割り当て対象の論理プロセッサ104の過去の電力状態情報に基づいて、論理プロセッサ104を物理プロセッサ101に割当てる際の電力状態を予測する。例えば、ハイパーバイザ105は、論理プロセッサ電力状態表126から取得した電力状態情報を参照し、割り当て対象の論理プロセッサ104が物理プロセッサ101に最近割り当てられた際の物理プロセッサ101の電力状態を、割り当て対象の論理プロセッサ104を物理プロセッサ101に割り当てる際の電力状態として予測する。この場合、同一論理プロセッサグループの他の論理プロセッサ104の電力状態や、実行中の物理プロセッサ101の電力状態を使用した電力状態予測は行うことができないが、少なくとも、自身の最終電力状態から処理を開始することで、予測誤差の拡大を防ぐことができる。
【0146】
このように、同一の論理プロセッサグループの物理プロセッサ101の最新の電力状態と、過去最近の同一の論理プロセッサグループの電力状態履歴と、自身の論理プロセッサ104の電力状態とを適切に組み合わせて次の電力状態を予測することで、より適切な電力状態予測制御を適用する事ができる。
【0147】
図27は、本実施の形態に係るマルチプロセッサシステムの論理的な動作関係を示す図である。
【0148】
ハイパーバイザ105は、ハイパーバイザ105をソフトウェアとして実現し、そのソフトウェアを実行した際に、機能的に、論理プロセッサスケジューラ115と、電力状態情報決定部116と、論理プロセッサグループ対応表112と、論理プロセッサグループ電力状態制御表113と、電力状態履歴情報117とを含む。
【0149】
ハイパーバイザ105及び電力状態変更部107は、電力制御装置としての役割を果たす。電力制御装置は、複数の論理プロセッサ104の各々が、処理量に応じて消費電力が動的に変化する物理プロセッサ101に時分割で割り当てられることにより、複数の論理プロセッサ104上で複数のプロセスを実行する仮想化されたプロセッサにおいて、物理プロセッサ101の消費電力を制御する。複数の論理プロセッサ104は、複数の論理プロセッサグループにグループ分けされている。
【0150】
電力状態情報決定部116は、物理プロセッサ101に割り当てられる論理プロセッサ104が変更されるにあたり、変更後の論理プロセッサ104が属する論理プロセッサグループである対象論理プロセッサグループに属する論理プロセッサ104が割り当てられる物理プロセッサ101の消費電力を示す電力状態情報に基づいて、変更後の論理プロセッサ104の物理プロセッサ101への割り当て時の電力状態情報を決定する。
【0151】
電力状態変更部107は、電力状態情報決定部116で決定された電力状態情報に基づいて、物理プロセッサ101へ供給する電力を変更する。
【0152】
以下、電力状態の予測時の動作の一例を示す。
【0153】
各物理プロセッサ101は、当該物理プロセッサ101の電源電圧や動作周波数などの電力状態の変更に応じて、電力状態情報109を更新する。
【0154】
論理プロセッサスケジューラ115は、論理プロセッサ104を物理プロセッサ101に割り当てるスケジューリング処理を実行する。
【0155】
論理プロセッサスケジューラ115による論理プロセッサ104のスケジューリングが新たに行われ、物理プロセッサ101上で論理プロセッサ104の入れ替えが発生する際に、当該物理プロセッサ101の電力状態情報109が、電力状態履歴情報117に書き込まれる。
【0156】
電力状態履歴情報117には任意個数の電力状態情報109を蓄えることができ、新たな書き込みが発生した場合には、最も古い電力状態情報109は押し出され削除される。
【0157】
一方、論理プロセッサ104のスケジューリングが行われ、物理プロセッサ101に割当てるべき新たな論理プロセッサ104が確定すると、電力状態情報決定部116は、論理プロセッサグループ対応表112からその論理プロセッサ104が所属する論理プロセッサグループを特定する。
【0158】
さらに、電力状態情報決定部116は、論理プロセッサグループマッピング情報110をもとに、現在実行中の物理プロセッサ101のうち、論理プロセッサグループが同一の物理プロセッサ101を特定する。
【0159】
電力状態情報決定部116は、同一の論理プロセッサグループをもつ物理プロセッサ101から電力状態情報109を取得する。
【0160】
電力状態情報決定部116は、この情報と新たに割り当てられる論理プロセッサ104用の論理プロセッサ104毎の電力状態履歴情報117をもとに、次の電力状態を予測する。
【0161】
電力状態情報決定部116は、予測した電力状態をもとに、電力状態変更部107に電力状態変更要求を発生させ、電力状態変更部107が対応する物理プロセッサ101の電力を変更する。
【0162】
図28を用いて、図22に示した電力状態制御情報114のLPグループ内予測可否情報に基づいた同一の論理プロセッサグループ内の論理プロセッサ104の電力状態に基づいた電力状態予測の禁止の意図について説明する。
【0163】
図28は、ある時刻における、同一の論理プロセッサグループの4つの論理プロセッサ104(論理プロセッサLP#A0〜LP#A3)の電力状態を示している。
【0164】
これは、例えばあるOS102上で、唯一つのプロセスのみが高負荷で稼働しており、他のプロセスは起動されていない場合である。例えば、バックグラウンドで行われる負荷の高いデータ処理ソフトウェアのプロセスが唯一つ実行されている場合である。
【0165】
この場合に、同一論理プロセッサグループに含まれる論理プロセッサ104の電力状態を用いて電力状態の予測を行うと、処理を負担していない論理プロセッサ104の電力状態に引きずられて、処理が重い論理プロセッサ104の電力状態が誤って低く予測されてしまう。あるいは、処理が重い論理プロセッサ104の電力状態に引きずられて、処理が軽い論理プロセッサ104の電力状態が誤って高く予測されてしまう。これはマルチプロセッサシステムの電力状態として得策でない。
【0166】
このため、各OSレベルで(論理プロセッサグループごとに)、論理プロセッサ104の負荷状況から明らかな負荷のアンバランスが発生している事を検知し、ハイパーバイザ105経由で論理プロセッサグループ電力状態制御表113のLPグループ内予測可否情報を禁止設定にすることで、この状況を防ぐことができる。
【0167】
一般にOSは、プロセスの個数及び各プロセッサのアイドル状態を管理可能であるため、この負荷状況の反映は既存のOSの機能を流用することで、ハイパーバイザ105との連携動作により実現可能である。
【0168】
また、システムによっては、OS内の各プロセスの負荷状況がアンバランスになることがあらかじめ既知であるケースが存在する。例えば、散発的に発生するバースト的なデバイス制御の場合である。この場合にも、システムソフトウェア設計者が、あらかじめ論理プロセッサグループ内の論理プロセッサ104の電力状態に基づいた電力状態予測を禁止設定することで、本来望まない電力状態予測の影響を抑制する事ができる。
【0169】
次に、図29を用いて、図22に示した電力状態制御情報114の電力予測履歴情報に基づいた電力状態予測について説明する。
【0170】
図29は、ある同一の論理プロセッサグループに含まれる4つの論理プロセッサ104の物理プロセッサ101上における電力状態の時間遷移を示している。
【0171】
時刻ZA2501にて、最も電力状態の大きい論理プロセッサ104が物理プロセッサ101から追い出される。その後、時刻ZA2502において、退避された論理プロセッサ104が再び物理プロセッサ101に割当てられる際の電力状態予測について説明する。
【0172】
この場合、時刻ZA2502では、同一の論理プロセッサグループに含まれる3つの論理プロセッサ104がプロセス103を実行しており、そのいずれもが低負荷状態に遷移しつつある。4つ目の論理プロセッサ104を物理プロセッサ101に割当てる際に、ハイパーバイザ105は、プロセス103を実行中の論理プロセッサ104の電力状態に基づいて、4つの目の論理プロセッサ104の電力状態を予測する。このような予測により、4つ目の論理プロセッサ104の電力状態は、以前自身が稼働していた電力状態より低めに設定される。
【0173】
しかしながら、たまたま4つ目の論理プロセッサ104では、前述の図28の例のように、唯一つだけ負荷が高いプロセス103が稼働しており、予測設定された電力状態よりさらに高い電力状態が必要である場合は、電力状態予測が外れたことになる。
【0174】
このような状態を繰り返すと、電力的な損失に加えて、処理に必要な周波数が適切な時間帯に得られないことによる処理時間の損失も発生する。リアルタイム性の高い応用ではこの処理時間の損失が許されない場合がある。
【0175】
そこで、論理プロセッサ104を物理プロセッサ101に割り当ててから一定時間内に、予測した電力状態とその後必要とした電力状態とが異なる予測外れを物理プロセッサ101が発生させた場合、その物理プロセッサ101に割り当てられた論理プロセッサ104が属する論理プロセッサグループにおいて電力状態予測を禁止させる。この動的な電力状態予測の禁止の可否は、あらかじめ規定した所定回数の予測外れにより禁止状態に遷移させる事ができる。その後、所定時間が経過するかソフトウェアによる設定により再び予測を許可させる。
【0176】
これにより、ソフトウェアの介在を極力減らしながら、より積極的な電力状態予測を可能にできる。
【0177】
以上説明したように、本実施の形態に係るマルチプロセッサシステムによると、同程度の負荷の処理を実行するなどのように互いに相関のある論理プロセッサ104同士をグループ化し、物理プロセッサ101への割り当て対象となっている論理プロセッサ104が属する論理プロセッサグループと同一の論理プロセッサグループに属する論理プロセッサ104の電力状態情報に基づいて、論理プロセッサ104が割り当てられる物理プロセッサ101の電力状態情報を決定している。これにより、各物理プロセッサ101に時分割で割り当てられる複数の論理プロセッサ104の間で処理負荷が異なる場合であっても、論理プロセッサ104の切り替えに伴う処理負荷の変化に追随することができ、最適な電力制御を行うことができる。
【0178】
以上、本発明の実施の形態に係るマルチプロセッサシステムについて説明したが、本発明は、この実施の形態に限定されるものではない。
【0179】
例えば、物理プロセッサ101の個数は1つであっても構わない。
【0180】
また、上述の実施の形態では、論理プロセッサ104の電力状態を用いて、物理プロセッサ101の電力状態を予測する際に、計算により電力状態を予測していたが、必ずしもこの方法に限られるものではない。例えば、予測に用いる論理プロセッサ104の電力状態をレベル分けし、レベルごとに起動時の物理プロセッサ101の電力状態を示したテーブルデータを参照することにより、物理プロセッサ101の電力状態を決定するようにしても良い。
【0181】
また、電力状態情報決定部116は、図22の電力状態制御情報114に含まれるLPグループ間予測対象LPグループ情報が示す論理プロセッサグループに属する論理プロセッサの電力状態情報と、変更後の論理プロセッサが属する論理プロセッサグループである対象論理プロセッサグループに属する論理プロセッサのうち変更後の論理プロセッサとは異なる論理プロセッサの電力状態情報とに基づいて、変更後の論理プロセッサの電力状態情報を決定しても良い。
【0182】
また、電力状態情報決定部116は、対象論理プロセッサグループに属する論理プロセッサのうち、変更後の論理プロセッサとは異なる論理プロセッサの電力状態情報と、図22の電力状態制御情報114に含まれる対象論理プロセッサグループに対応する応答性条件情報とに基づいて、応答性条件情報が示す応答性が高いほど電力が大きくなるように変更後の論理プロセッサの電力状態情報を決定しても良い。
【0183】
また、電力状態情報決定部116は、図22の電力状態制御情報114に含まれる対象論理プロセッサグループに対応する緊急プロセッサ該非情報が最大の応答性を要する場合に、電力状態情報が取り得る最大値を変更後の論理プロセッサの電力状態情報が示す値として決定しても良い。
【0184】
また、本発明は、上記に示す方法であるとしても良い。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしても良いし、前記コンピュータプログラムからなるデジタル信号であるとしても良い。
【0185】
さらに、本発明は、上記コンピュータプログラム又は上記デジタル信号をコンピュータ読み取り可能な非一時的な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc(登録商標))、半導体メモリなどに記録したものとしても良い。また、これらの非一時的な記録媒体に記録されている上記デジタル信号であるとしても良い。
【0186】
また、本発明は、上記コンピュータプログラム又は上記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしても良い。
【0187】
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、上記メモリは、上記コンピュータプログラムを記憶しており、上記マイクロプロセッサは、上記コンピュータプログラムに従って動作するとしても良い。
【0188】
また、上記プログラム又は上記デジタル信号を上記非一時的な記録媒体に記録して移送することにより、又は上記プログラム又は上記デジタル信号を上記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしても良い。
【0189】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【産業上の利用可能性】
【0190】
本発明は、マルチプロセッサ(マイクロプロセッサやマイクロコンピュータやマイクロコントローラやディジタル・シグナル・プロセッサを含む)を含む情報処理システムに適用可能である。
【符号の説明】
【0191】
101 物理プロセッサ
102 OS
103 プロセス
104 論理プロセッサ
105 ハイパーバイザ
106 システムLSI
107 電力状態変更部
108 論理プロセッサグループ識別情報
109 電力状態情報
110 論理プロセッサグループマッピング情報
111 物理プロセッサ電力状態表
112 論理プロセッサグループ対応表
113 論理プロセッサグループ電力状態制御表
114 電力状態制御情報
115 論理プロセッサスケジューラ
116 電力状態情報決定部
117 電力状態履歴情報
121 レベル1キャッシュ
122 レベル2キャッシュ及び共有バス
123 入出力装置
124 記憶装置
125 外部装置
126 論理プロセッサ電力状態表

【特許請求の範囲】
【請求項1】
複数の論理プロセッサの各々が、処理量に応じて消費電力が動的に変化する物理プロセッサに時分割で割り当てられることにより、前記複数の論理プロセッサ上で複数のプロセスを実行する仮想化されたプロセッサにおいて、前記物理プロセッサの消費電力を制御する電力制御装置であって、
前記複数の論理プロセッサは、複数の論理プロセッサグループにグループ分けされており、
前記電力制御装置は、
前記物理プロセッサに割り当てられる論理プロセッサが変更されるにあたり、変更後の論理プロセッサが属する論理プロセッサグループである対象論理プロセッサグループに属する論理プロセッサが割り当てられる物理プロセッサの消費電力を示す電力状態情報に基づいて、前記変更後の論理プロセッサの前記物理プロセッサへの割り当て時の電力状態情報を決定する電力状態情報決定部と、
前記電力状態情報決定部が決定した前記電力状態情報に基づいて、前記物理プロセッサへ供給する電力を変更する電力状態変更部と
を備える電力制御装置。
【請求項2】
前記電力状態情報決定部は、前記対象論理プロセッサグループに属する論理プロセッサのうち、前記変更後の論理プロセッサとは異なる論理プロセッサの電力状態情報に基づいて、前記変更後の論理プロセッサの電力状態情報を決定する
請求項1記載の電力制御装置。
【請求項3】
さらに、
論理プロセッサグループごとに、当該論理プロセッサグループに属する論理プロセッサの電力状態情報を決定するに当たり、当該論理プロセッサグループに属する論理プロセッサのうち、前記物理プロセッサへの割り当て対象とされる論理プロセッサ以外の論理プロセッサの電力状態情報を用いることを許可するか否かを示す論理プロセッサグループ内予測可否情報を記憶している電力状態制御情報記憶部を備え、
前記電力状態情報決定部は、前記電力状態制御情報記憶部に記憶されている前記論理プロセッサグループ内予測可否情報を参照し、前記論理プロセッサグループ内予測可否情報が許可している場合にのみ、前記対象論理プロセッサグループに属する論理プロセッサのうち、前記変更後の論理プロセッサとは異なる論理プロセッサの電力状態情報に基づいて、前記変更後の論理プロセッサの電力状態情報を決定する
請求項2記載の電力制御装置。
【請求項4】
前記電力状態情報決定部は、前記異なる論理プロセッサの電力状態情報が示す値の平均を、前記変更後の論理プロセッサの電力状態情報が示す値として決定する
請求項2又は3記載の電力制御装置。
【請求項5】
さらに、
論理プロセッサグループごとに、当該論理プロセッサグループに属する論理プロセッサの電力状態情報を決定するに当たって参照する当該論理プロセッサグループとは異なる論理プロセッサグループを示す論理プロセッサグループ間予測対象論理プロセッサグループ情報を記憶している電力状態制御情報記憶部を備え、
前記電力状態情報決定部は、前記論理プロセッサグループ間予測対象論理プロセッサグループ情報が示す論理プロセッサグループに属する論理プロセッサの電力状態情報と、前記対象論理プロセッサグループに属する論理プロセッサのうち前記変更後の論理プロセッサとは異なる論理プロセッサの電力状態情報とに基づいて、前記変更後の論理プロセッサの電力状態情報を決定する
請求項2記載の電力制御装置。
【請求項6】
前記電力状態情報決定部は、前記変更後の論理プロセッサの過去の電力状態情報に基づいて、前記変更後の論理プロセッサの電力状態情報を決定する
請求項1記載の電力制御装置。
【請求項7】
前記電力状態情報決定部は、前記物理プロセッサに割り当てられた前記対象論理プロセッサグループに属する論理プロセッサの過去の電力状態情報が示す値が時間の経過とともに単調に増加又は減少する場合に、前記対象論理プロセッサグループに属する前記論理プロセッサの過去の電力状態情報が示す値を外挿することにより、前記変更後の論理プロセッサの電力状態情報を決定する
請求項1記載の電力制御装置。
【請求項8】
さらに、
論理プロセッサグループごとに、当該論理プロセッサグループに属する論理プロセッサが前記物理プロセッサに割り当てられた際に決定された前記物理プロセッサの電力状態情報が当たっているか否かを示す電力予測履歴情報を記憶している電力状態制御情報記憶部を備え、
前記電力状態情報決定部は、前記電力状態制御情報記憶部に記憶されている前記電力予測履歴情報を参照し、前記対象論理プロセッサグループに対応する前記物理プロセッサの電力状態情報が当たっている場合にのみ、前記変更後の論理プロセッサの電力状態情報を決定する
請求項1記載の電力制御装置。
【請求項9】
さらに、
論理プロセッサグループごとに、当該論理プロセッサグループに属する論理プロセッサが実行する処理の応答性を示す条件情報を記憶している電力状態制御情報記憶部を備え、
前記電力状態情報決定部は、前記対象論理プロセッサグループに属する論理プロセッサのうち、前記変更後の論理プロセッサとは異なる論理プロセッサの電力状態情報と、前記電力状態制御情報記憶部に記憶されている前記対象論理プロセッサグループに対応する前記条件情報とに基づいて、前記条件情報が示す応答性が高いほど電力が大きくなるように前記変更後の論理プロセッサの電力状態情報を決定する
請求項1記載の電力制御装置。
【請求項10】
さらに、
論理プロセッサグループごとに、当該論理プロセッサグループに属する論理プロセッサが実行する処理の応答性が最大の応答性を要するか否かを示す緊急プロセッサ該非情報を記憶している電力状態制御情報記憶部を備え、
前記電力状態情報決定部は、前記電力状態制御情報記憶部に記憶されている前記対象論理プロセッサグループに対応する前記緊急プロセッサ該非情報が最大の応答性を要する場合に、電力状態情報が取り得る最大値を前記変更後の論理プロセッサの電力状態情報が示す値として決定する
請求項1記載の電力制御装置。
【請求項11】
複数の論理プロセッサの各々が、処理量に応じて消費電力が動的に変化する物理プロセッサに時分割で割り当てられることにより、前記複数の論理プロセッサ上で複数のプロセスを実行する仮想化されたプロセッサにおいて、前記物理プロセッサの消費電力を制御する電力制御方法であって、
前記複数の論理プロセッサは、複数の論理プロセッサグループにグループ分けされており、
前記電力制御方法は、
前記物理プロセッサに割り当てられる論理プロセッサが変更されるにあたり、変更後の論理プロセッサが属する論理プロセッサグループである対象論理プロセッサグループに属する論理プロセッサが割り当てられる物理プロセッサの消費電力を示す電力状態情報に基づいて、前記変更後の論理プロセッサの前記物理プロセッサへの割り当て時の電力状態情報を決定するステップと、
決定された前記電力状態情報に基づいて、前記物理プロセッサへ供給する電力を変更するステップと
を含む電力制御方法。
【請求項12】
複数の論理プロセッサの各々が、処理量に応じて消費電力が動的に変化する物理プロセッサに時分割で割り当てられることにより、前記複数の論理プロセッサ上で複数のプロセスを実行する仮想化されたプロセッサにおいて、前記物理プロセッサの消費電力を制御するための前記物理プロセッサで実行可能なプログラムであって、
前記複数の論理プロセッサは、複数の論理プロセッサグループにグループ分けされており、
前記物理プロセッサに割り当てられる論理プロセッサが変更されるにあたり、変更後の論理プロセッサが属する論理プロセッサグループである対象論理プロセッサグループに属する論理プロセッサが割り当てられる物理プロセッサの消費電力を示す電力状態情報に基づいて、前記変更後の論理プロセッサの前記物理プロセッサへの割り当て時の電力状態情報を決定するステップと、
決定された前記電力状態情報に基づいて、前記物理プロセッサへ供給する電力を変更するステップと
を前記物理プロセッサに実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9A】
image rotate

【図9B】
image rotate

【図9C】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate


【公開番号】特開2012−181627(P2012−181627A)
【公開日】平成24年9月20日(2012.9.20)
【国際特許分類】
【出願番号】特願2011−43196(P2011−43196)
【出願日】平成23年2月28日(2011.2.28)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】