(57)【特許請求の範囲】
【請求項１】
並列に動作する複数のＣＰＵと、
前記複数のＣＰＵのうちの一のＣＰＵから一又は複数の論理ＣＰＵを生成する論理ＣＰＵ生成部と、
前記複数のＣＰＵの夫々の動作周波数を、当該夫々の動作周波数の平均値に一致するように変更する動作周波数平均化部と、
前記動作周波数平均化部によるＣＰＵの動作周波数の変更によって生じる、当該ＣＰＵに属する論理ＣＰＵが割り当てられた区画に係る情報処理の負荷に対する当該論理ＣＰＵの処理能力の過不足を解消するように前記論理ＣＰＵ生成部に論理ＣＰＵを生成させて、生成された論理ＣＰＵを当該処理能力の過不足に係る区画に割り当てる論理ＣＰＵ割り当て部と、を有することを特徴とする情報処理装置。
【請求項２】
前記論理ＣＰＵ割り当て部は、前記動作周波数平均化部によって動作周波数が下げられて処理能力が低下するＣＰＵに属する論理ＣＰＵが割り当てられた区画に係る情報処理の負荷に対し不足となる処理能力に対し、前記動作周波数平均化部によって動作周波数が上げられて処理能力が上昇するＣＰＵに属する論理ＣＰＵが割り当てられた区画に係る情報処理の負荷に対し余剰となる処理能力を充当するように、前記論理ＣＰＵ生成部に当該余剰となる処理能力に係るＣＰＵを分割して論理ＣＰＵを生成させ、当該分割に係る論理ＣＰＵを、前記処理能力が不足となる区画に割り当てることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置は、前記複数の区画が有する情報処理の負荷の変動に対し、情報処理の負荷が変動した区画に属する論理ＣＰＵの動作周波数を変更して適応させる動作周波数適応部を有することを特徴とする、請求項１又は２に記載の情報処理装置。
【請求項４】
前記論理ＣＰＵ生成部は、前記複数のＣＰＵのうちの一のＣＰＵの処理能力を時分割することによって複数の論理ＣＰＵを生成することを特徴とする、請求項１乃至３のうちの何れか一項に記載の情報処理装置。
【請求項５】
論理ＣＰＵ生成部が、並列に動作する複数のＣＰＵのうちの一のＣＰＵから一又は複数の論理ＣＰＵを生成するステップと、
動作周波数平均化部が、前記複数のＣＰＵの夫々の動作周波数を、当該夫々の動作周波数の平均値に一致するように変更するステップと、
論理ＣＰＵ割り当て部が、前記動作周波数平均化部によるＣＰＵの動作周波数の変更によって生じる、当該ＣＰＵに属する論理ＣＰＵが割り当てられた区画に係る情報処理の負荷に対する当該論理ＣＰＵの処理能力の過不足を解消するように前記論理ＣＰＵ生成部に論理ＣＰＵを生成させて、生成された論理ＣＰＵを当該処理能力の過不足に係る区画に割り当てるステップと、を有することを特徴とする情報処理装置の制御方法。
【請求項６】
前記論理ＣＰＵ割り当て部は、前記動作周波数平均化部によって動作周波数が下げられて処理能力が低下するＣＰＵに属する論理ＣＰＵが割り当てられた区画が有する情報処理の負荷に対し不足となる処理能力に対し、前記動作周波数平均化部によって動作周波数が上げられて処理能力が上昇するＣＰＵに属する論理ＣＰＵが割り当てられた区画が有する情報処理の負荷に対し余剰となる処理能力を充当するように、前記論理ＣＰＵ生成部に当該余剰となる処理能力に係るＣＰＵを分割して論理ＣＰＵを生成させ、当該分割に係る論理ＣＰＵを、前記処理能力が不足となる区画に割り当てることを特徴とする請求項５に記載の情報処理装置の制御方法。
【請求項７】
動作周波数適応部が、前記複数の区画が有する情報処理の負荷の変動に対し、情報処理の負荷が変動した区画に割り当てられた論理ＣＰＵの動作周波数を変更して適応させるステップを更に有することを特徴とする、請求項５又は６に記載の情報処理装置の制御方法。
【請求項８】
並列に動作する複数のＣＰＵのうちの一のＣＰＵから一又は複数の論理ＣＰＵを生成するステップと、
前記複数のＣＰＵの夫々の動作周波数を、当該夫々の動作周波数の平均値に一致するように変更するステップと、
前記ＣＰＵの動作周波数の変更によって生じる、当該ＣＰＵに属する論理ＣＰＵが割り当てられた区画に係る情報処理の負荷に対する当該論理ＣＰＵの処理能力の過不足を解消するように論理ＣＰＵを生成して、当該論理ＣＰＵを当該処理能力の過不足に係る区画に割り当てるステップと、をコンピュータに実行させるプログラム。
【請求項９】
前記複数のＣＰＵの夫々の動作周波数を変更するステップによって動作周波数が下げられて処理能力が低下するＣＰＵに属する論理ＣＰＵが割り当てられた区画が有する情報処理の負荷に対し不足となる処理能力に対し、動作周波数が上げられて処理能力が上昇するＣＰＵに属する論理ＣＰＵが割り当てられた区画が有する情報処理の負荷に対し余剰となる処理能力を充当するように、当該余剰となる処理能力に係るＣＰＵを分割して論理ＣＰＵを生成させ、当該分割に係る複数の論理ＣＰＵを、前記処理能力が不足となる区画に割り当てるステップをコンピュータに実行させる請求項８に記載のプログラム。
【請求項１０】
前記複数の区画が有する情報処理の負荷の変動に対し、情報処理の負荷が変動した区画に割り当てられた論理ＣＰＵの動作周波数を変更して適応させるステップを、更にコンピュータに実行させる請求項８又は９に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、情報処理装置の制御方法及びプログラムに関する。
【背景技術】
【０００２】
以下に述べる構成の並列計算機が知られている。すなわち、データ量と、動作周波数及び電圧をパラメータとしてプロセッサによる処理を実行したときの消費電力とを対応付けた情報を記憶する。そして当該情報に基づいて、複数のプロセッサによる消費電力量の合計が最小となるように、複数のプロセッサに対するデータ処理の割付と、動作周波数及び電圧の設定を行う。【０００３】
又、論理的に区分された区画を有する処理システムにおいて、任意の区画に割り当てられたプロセッサへの供給電力又はクロック周波数をスケーリングすることにより消費電力を低減する構成が知られている。【０００４】
又、以下に述べるプロセッサの制御方法が知られている。すなわち、時間制約があり負荷変動のあるタスクの処理の進行度を計測し、進行度の時間平均を単位時間ごとに演算し、得られた時間平均を閾値と比較する。そして比較の結果に基づき、プロセッサの動作周波数の変更或いは処理の優先度を変化させる。【０００５】
又、仮想ＣＰＵが割り当てられていない物理ＣＰＵを計算機システム全体で最適化することで消費電力の低減を図る仮想計算機システムが知られている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−３４４１６２号公報
【特許文献２】特開２００４−１９２６１２号公報
【特許文献３】特開２００３−３３７７１３号公報
【特許文献４】特開２００９−１４０１５７号公報
【非特許文献】
【０００７】
【非特許文献１】SOLARISTM OPERATING SYSTEM, HARDWARE VIRTUALIZATION PRODUCT ARCHITECTURE, Chien-Hua Yen, ISV Engineering, chien.yen@sun.com, Sun BlueprintsTM On-Line - November 2007 (http://www.sun.com/blueprints/1107/820-3703.pdf)
【非特許文献２】SPARC Enterprise, M4000/M5000/M8000/M9000サーバ、Dynamic Reconfiguration(DR)ユーザーズガイド(http://www.fujitsu.com/downloads/SPARCE/manuals/sparc-commonj/mx-drusers-ja-06.pdf)
【発明の概要】
【発明が解決しようとする課題】
【０００８】
並列に動作する複数のＣＰＵを有する情報処理装置において、複数のＣＰＵの消費電力を効果的に低減し得る構成を提供することが課題である。
【課題を解決するための手段】
【０００９】
情報処理装置では、情報処理を行う複数の区画に対し複数のＣＰＵを割り当て、複数のＣＰＵの夫々の動作周波数を、当該夫々の動作周波数の平均値に一致させるように変更する。当該ＣＰＵの動作周波数の変更によって、当該ＣＰＵが割り当てられた区画に係る情報処理の負荷に対する当該ＣＰＵの処理能力の過不足が生じた場合、当該過不足を解消させる。この目的のために、ＣＰＵから論理ＣＰＵを生成し、当該処理能力の過不足に係る区画に割り当てる。
【発明の効果】
【００１０】
並列に動作する複数のＣＰＵを有する情報処理装置において、複数のＣＰＵの消費電力を効果的に低減することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施例の概要を説明するためのサーバ装置（情報処理装置の一例）のブロック図である。
【図２】本発明の実施例によるサーバ装置のブロック図である。
【図３】本発明の実施例によるサーバ装置のハードウェアブロック図である。
【図４】本発明の実施例によるサーバ装置における処理の手順を説明するためのブロック図（その１）である。
【図５】本発明の実施例によるサーバ装置における処理の手順を説明するためのブロック図（その２）である。
【図６】本発明の実施例によるサーバ装置における処理の手順を説明するためのブロック図（その３）である。
【図７】本発明の実施例によるサーバ装置におけるＣＰＵの動作周波数の平準化処理の前後の状態の相違について説明するための図である。
【図８】本発明の実施例によるサーバ装置における処理の手順の流れを説明するためのフローチャート（その１）である。
【図９】本発明の実施例によるサーバ装置における処理の手順を説明するためのブロック図（その４）である。
【図１０】本発明の実施例によるサーバ装置における処理の手順を説明するためのブロック図（その５）である。
【図１１】本発明の実施例によるサーバ装置における処理の手順を説明するためのブロック図（その６）である。
【図１２】本発明の実施例によるサーバ装置における処理の手順の流れを説明するためのフローチャート（その１）である。
【図１３】本発明の実施例によるサーバ装置における処理の手順を説明するためのブロック図（その７）である。
【図１４】本発明の実施例によるサーバ装置における処理の手順を説明するためのブロック図（その８）である。
【発明を実施するための形態】
【００１２】
以下に本発明の実施例の説明を行う。
【実施例１】
【００１３】
本発明の実施例１によれば、マルチプロセッサ(multi-processor)のシステムにおいて、複数のＣＰＵの動作周波数を揃えた後、低負荷のＣＰＵを時分割して複数の仮想的なＣＰＵに分割する。そして、当該分割された仮想的なＣＰＵを高負荷の論理ドメイン(logical domain)に割り当てる。このようにしてシステム内のＣＰＵの負荷を平準化することにより、システムの性能を維持しつつ、システム全体の消費電力を削減する。【００１４】
尚、以下、説明の便宜上、上記の如くＣＰＵを時分割して分割することによって得られる仮想的なＣＰＵを「論理ＣＰＵ」と称し、論理ＣＰＵと区別する意味で、ハードウェアとしてのＣＰＵを「物理ＣＰＵ」と称する。又、「論理ドメイン」は、メモリ、物理ＣＰＵ、入出力装置等のシステムのリソースを夫々の論理的なグループ（論理ドメイン）に割り当てることを可能にするために形成される。論理ドメインの詳細については、例えば非特許文献１のChapter 7に記載されている。又、物理ＣＰＵの負荷を平準化することは、物理ＣＰＵの動作周波数を平準化することを意味する。物理ＣＰＵの動作周波数を平準化することによってシステム全体の消費電力を削減することができる理由は、図７とともに後述するように、物理ＣＰＵの消費電力が動作周波数の３乗に比例すると考え得ることによる。【００１５】
マルチプロセッサのシステムの消費電力削減の方法として、例えば使用していない物理ＣＰＵの電源を切断する方法が有る。又、物理ＣＰＵを時分割して多くの処理を分担させ、当該物理ＣＰＵに処理を集めることによって不使用のＣＰＵを生み出し、不使用のＣＰＵの電源を切断する方法がある。しかしながらこれらの方法は、システム全体が低負荷の場合には有効と考えられるが、中負荷或いは高負荷の場合には、使用中のＣＰＵが高負荷となり、当該ＣＰＵの消費電力が極端に増加するため、システム全体の消費電力削減の効果は限定的と考えられる。【００１６】
本発明の実施例１によれば、複数のＣＰＵの動作周波数を均一化し、その結果低負荷となる物理ＣＰＵを分割して論理ＣＰＵを生成して高負荷の論理ドメインに割り当てることによって、低負荷の物理ＣＰＵを効率的に使用し、システム全体の消費電力を低減させる。【００１７】
図１とともに本発明の実施例１のサーバ装置における処理の概要を説明する。図１のサーバ装置１００は、２つの物理ＣＰＵ  Ｃ０，Ｃ１と、ハイパーバイザＨ１と、サービスプロセッサＳＰ１とを有する。図１のサーバ装置１００は又、管理ドメインＭ１及び２つの論理ドメインＧ０，Ｇ１を有する。又、論理ドメインＧ０には２つの論理ＣＰＵ  Ｌ０−０、Ｌ０−１が割り当てられ、論理ドメインＧ１には１つの論理ＣＰＵ  Ｌ１−０が割り当てられている。【００１８】
物理ＣＰＵ  Ｃ０，Ｃ１は、ハイパーバイザＨ１からの指示に従って、動作周波数（クロック周波数）と電源電圧とを変更する機能を有する。尚、後述の如く、物理ＣＰＵ  Ｃ０，Ｃ１は、動作周波数に比例して電源電圧が増減する。実施例１においては、物理ＣＰＵ  Ｃ０，Ｃ１の各々の最高動作周波数は３ＧＨｚであり、１ＧＨｚ単位で変更することができるものとする。【００１９】
論理ＣＰＵ  Ｌ０−０，Ｌ０−１，Ｌ１−０は、物理ＣＰＵ  Ｃ０，Ｃ１上に生成される仮想的なＣＰＵであり、上記の如く、時分割によって、一つの物理ＣＰＵから複数の論理ＣＰＵを生成することができる。物理ＣＰＵの時分割スケジューリングは管理ドメインＭ１が行う。又、物理ＣＰＵのレジスタ情報等の退避は、ハイパーバイザＨ１が行う。【００２０】
又、図１では図示が省略されているが、図２とともに後述するように、各論理ドメインＧ０，Ｇ１にはＯＳ(Operating System)Ｓ０，Ｓ１が夫々割り当てられる。ＯＳ  Ｓ０，Ｓ１は、自己が割り当てられている論理ドメイン内の情報処理の負荷に応じ、当該論理ドメインに属する論理ＣＰＵの動作周波数を変更する要求をハイパーバイザＨ１に出す。すなわち、各論理ドメインが実行する情報処理の負荷が上昇した際には、当該論理ドメインのＯＳは、当該論理ドメインに属する論理ＣＰＵの動作周波数を上げる要求を出す。他方、論理ドメインがアイドル状態の場合等、情報処理の負荷が低下した際には、論理ＣＰＵの動作周波数を上げる要求を出す。【００２１】
論理ＣＰＵ  Ｌ０−０はハイパーバイザＨ１により物理ＣＰＵ  Ｃ０から生成され、論理ＣＰＵ  Ｌ０−１，Ｌ１−０はハイパーバイザＨ１により物理ＣＰＵ  Ｃ１から生成される。【００２２】
ハイパーバイザＨ１は、物理ＣＰＵを論理ＣＰＵに変換して論理ＣＰＵを生成し、各論理ドメイン（「区画」の一例）に割り当てる機能を有するソフトウェアである。又ハイパーバイザＨ１は、ＯＳや管理ドメインＭ１からの指示に応じ、物理ＣＰＵの動作周波数を変更する命令を物理ＣＰＵに対し発行する。【００２３】
管理ドメインＭ１もソフトウェアであり、論理ドメインの構成を管理し、論理ドメインの構成を動的に変更したり、物理ＣＰＵを時分割して生成した論理ＣＰＵの論理ドメインに対する割り当てのスケジューリングを制御する。管理ドメインＭ１は又、ロードアベレージを取得する機能を有し、取得したロードアベレージに基づいて各論理ドメインが情報処理のために必要とする論理ＣＰＵの処理能力を算出する機能を有する。尚、ロードアベレージとは、論理ＣＰＵの現在の動作周波数による処理能力に見合った情報処理の負荷量に対する、当該論理ＣＰＵが実際に実行している情報処理の負荷量の割合を意味する。すなわち、当該論理ＣＰＵの現在の動作周波数による処理能力に見合った情報処理の負荷量を実行している場合、ロードアベレージは１００％であり、上記見合った情報処理の負荷量の半分の情報処理の負荷量を実行している場合、ロードアベレージは５０％である。【００２４】
管理ドメインＭ１は又、論理ＣＰＵを動的に論理ドメインに割り当てたり、外したりする機能を有する。論理ＣＰＵを動的に論理ドメインに割り当てたり外したりする機能として、例えばダイナミックリコンフィギュレーション(DR: Dynamic Reconfiguration)機能を使用することができる。ダイナミックリコンフィギュレーションの詳細については例えば非特許文献２に記載されている。【００２５】
サービスプロセッサＳＰ１はサーバ装置１００の内部に設けられる独立したコンピュータであり、物理ＣＰＵ  Ｃ０，Ｃ１を監視する機能を有し、より具体的には、物理ＣＰＵの動作周波数を監視する機能を有する。又サービスプロセッサＳＰ１は、管理ドメインＭ１と通信する機能を有し、各物理ＣＰＵ  Ｃ０，Ｃ１の動作周波数の変更、論理ＣＰＵの割り当て変更等の依頼を行う機能を有する。【００２６】
このように、図１のサーバ装置１００は、ソフトウェアであるハイパーバイザＨ１から動作周波数を変更可能な複数の物理ＣＰＵ  Ｃ０，Ｃ１を有し、論理ＣＰＵを生成して論理ドメインに割り当て、論理ドメイン毎に情報処理を実行するシステムである。当該システムは、以下に述べる方法によって、システムの性能を維持しつつ、システム全体の消費電力を削減する。【００２７】
図１のサーバ装置１００では、物理ＣＰＵの動作周波数を平準化（平均化）することにより、システム全体の消費電力を削減する。物理ＣＰＵの動作周波数の平準化によってシステム全体の消費電力を削減することができる理由は、上記の如く、物理ＣＰＵの消費電力が動作周波数の３乗に比例すると考え得ることによる。ここで、物理ＣＰＵの動作周波数を平準化すると、当該物理ＣＰＵが割り当てられた論理ドメインの情報処理の負荷に対する、当該物理ＣＰＵの処理能力の過不足が生ずる場合が想定される。そのような場合、情報処理の負荷が低い論理ドメインに割り当てられた物理ＣＰＵを時分割して複数の論理ＣＰＵを生成し、当該物理ＣＰＵの処理能力の一部を、論理ＣＰＵとして、高負荷の論理ドメインに割り当てる。【００２８】
尚、物理ＣＰＵ或いは論理ＣＰＵの処理能力は、物理ＣＰＵ或いは論理ＣＰＵの動作周波数に比例するものとする。又、物理ＣＰＵの動作周波数が一定の場合、物理ＣＰＵの時分割によって生成される複数の論理ＣＰＵの夫々に割り当てられる処理能力は、時分割によって夫々の論理ＣＰＵに割り当てられる処理時間に比例するものとする。【００２９】
ハイパーバイザＨ１及び管理ドメインＭ１は、一つの物理ＣＰＵから複数の論理ＣＰＵを生成する機能を有し、各論理ドメインが情報処理を実行するのに必要とされる処理能力を提供するように、当該生成した論理ＣＰＵを論理ドメインに割り振る制御を行う。【００３０】
又、各論理ドメインのＯＳは、自己の情報処理の負荷に応じて、ハイパーバイザＨ１に対し、自己に属する論理ＣＰＵの動作周波数の変更を要求する。【００３１】
サービスプロセッサＳＰ１は、物理ＣＰＵの動作周波数を定期的に監視し、物理ＣＰＵの動作周波数にバラツキがあることを検出すると、物理ＣＰＵの動作周波数を平準化するように、管理ドメインＭ１に指示を出す。【００３２】
図１の例では、物理ＣＰＵ  Ｃ０から一つの論理ＣＰＵ  Ｌ０−０が生成され、物理ＣＰＵ  Ｃ１からは２つの論理ＣＰＵ  Ｌ０−１，Ｌ１−０が生成されている。そして、比較的情報処理の負荷が高い論理ドメインＧ０に対し、物理ＣＰＵ  Ｃ０の全ての処理能力が論理ＣＰＵ  Ｌ０−０として割り当てられている。更に、物理ＣＰＵ  Ｃ１の処理能力の一部が論理ＣＰＵ  Ｌ０−１として論理ドメインＧ０に割り当てられている。他方、比較的情報処理の負荷が低い論理ドメインＧ１に対し、物理ＣＰＵ  Ｃ１の処理能力の他の一部が、論理ＣＰＵ  Ｌ１−０として割り当てられている。このように、情報処理の負荷の高い論理ドメインＧ０及び低い論理ドメインＧ１に対し、必要な論理ＣＰＵの処理能力を割り当てられている。又、各物理ＣＰＵ  Ｃ０，Ｃ１の動作周波数は、２ＧＨｚとして等しく揃えられている。【００３３】
このように本発明の実施例１によれば、物理ＣＰＵ  Ｃ１を時分割して２つの論理ＣＰＵ  Ｌ０−１，Ｌ１−０を生成し、２つの論理ドメインＧ０，Ｇ１に生成した論理ＣＰＵを夫々割り振る。その結果、２つの物理ＣＰＵ  Ｃ０，Ｃ１の動作周波数を等しく揃えた状態で、各論理ドメインＧ０，Ｇ１が必要とする処理能力を夫々提供することができる。その結果システム全体で性能を維持しつつ、消費電力を削減することができる。更に、物理ＣＰＵの動作周波数を平準化して均等に使用することにより、最高動作周波数で動作する物理ＣＰＵを減らすことができ、物理ＣＰＵの温度も平準化でき、もって物理ＣＰＵの寿命を伸ばすことができる。【００３４】
以下、図とともに、本発明の実施例１によるサーバ装置１００につき、詳細に説明する。図２は、本発明の実施例１によるサーバ装置１００の全体構成を示す。本発明の実施例１によるサーバ装置１００は上記の如く、サービスプロセッサＳＰ１、２つの物理ＣＰＵ  Ｃ０，Ｃ１，ハイパーバイザＨ１，管理ドメインＭ１、２つの論理ドメインＧ０，Ｇ１を有する。論理ドメインＧ０，Ｇ１には、夫々ＯＳ  Ｓ０，Ｓ１が割り当てられている。又、図２は、物理ＣＰＵ  Ｃ０から一つの論理ＣＰＵ  Ｌ０−０が生成されて論理ドメインＧ０に割り当てられ、物理ＣＰＵ  Ｃ１から一つの論理ＣＰＵ  Ｌ１−０が生成されて論理ドメインＧ１に割り当てられている状態を示す。【００３５】
図３は、本発明の実施例１によるサーバ装置１００のハードウェア構成を示す。サーバ装置１００は、システムボード１１０と、サービスプロセッサボード１２０とを有する。システムボード１１０は、上記２つの物理ＣＰＵ  Ｃ０，Ｃ１と、これら物理ＣＰＵ  Ｃ０，Ｃ１に夫々割り当てられた２つの主記憶１１１，１１２とを有する。又、サービスプロセッサボード１２０はサービスプロセッサＳＰ１を有する。上記論理ドメインＧ０，Ｇ１、ハイパーバイザＨ１及び管理ドメインＭ１は、システムボード１１０上の、物理ＣＰＵ  Ｃ０，Ｃ１及び主記憶１１１，１１２上で動作する。すなわち、論理ドメインＧ０，Ｇ１、ハイパーバイザＨ１及び管理ドメインＭ１は、物理ＣＰＵ  Ｃ０，Ｃ１が夫々主記憶１１１，１１２から命令を読み出して実行することによって実現する。【００３６】
又、サービスプロセッサボード１２０とシステムボード１１０とは相互に物理的に接続されている。その結果、サービスプロセッサボード１２０上のサービスプロセッサＳＰ１からシステムボード１１０上の物理ＣＰＵ  Ｃ０，Ｃ１の動作周波数を監視したり、サービスプロセッサＳＰ１が物理ＣＰＵ上で動作するソフトウェアと通信したりすることができる。【００３７】
次に、図４〜図８とともに、本発明の実施例１によるサーバ装置１００が実行する処理について例を挙げて詳細に説明する。尚、ここでは、各論理ＣＰＵのロードアベレージを１００％としている。【００３８】
図４はサーバ１００の初期状態を示す。初期状態では、図４に図示の如く、論理ドメインＧ０，Ｇ１の夫々に対し、論理ＣＰＵ  Ｌ０−０，Ｌ１−０が割り当てられている。又、論理ＣＰＵ  Ｌ０−０は物理ＣＰＵ  Ｃ０自体であり、同様に、又、論理ＣＰＵ  Ｌ１−０は物理ＣＰＵ  Ｃ１自体である。すなわち、物理ＣＰＵ  Ｃ０，Ｃ１の各々は、時分割せず、そのまま、夫々論理ＣＰＵ  Ｌ０−０，Ｌ１−０を１つずつ生成している。【００３９】
又、図４の状態では論理ドメインＧ０は情報処理の負荷が高い状態であり、論理ドメインＧ０に論理ＣＰＵ  Ｌ０−０を提供している物理ＣＰＵ  Ｃ０は最高動作周波数３ＧＨｚで動作している。他方、論理ドメインＧ１は情報処理の負荷が低い状態であり、論理ドメインＧ１に論理ＣＰＵ  Ｌ１−０を提供している物理ＣＰＵ  Ｃ１は動作周波数１ＧＨｚで動作している。【００４０】
又、論理ドメインＧ０は３つの情報処理のタスクＴ１，Ｔ２，Ｔ３を実行しており、当該３つのタスクＴ１，Ｔ２，Ｔ３の各々には、論理ＣＰＵ  Ｌ０−０の処理能力が時分割され、論理ＣＰＵ  Ｌ０−０の処理能力の１／３ずつが割り当てられている。すなわち論理ＣＰＵ  Ｌ０−０が提供する処理時間が３分割され、各タスクには、論理ＣＰＵ  Ｌ０−０が提供する処理時間の１／３ずつが割り当てられている。その結果、論理ＣＰＵ  Ｌ０−０が属する物理ＣＰＵ  Ｃ０の３ＧＨｚ分の処理能力が３等分され、３つのタスクＴ１，Ｔ２，Ｔ３の各々には、１ＧＨｚ分ずつの処理能力が割り当てられている。【００４１】
サービスプロセッサＳＰ１は各物理ＣＰＵ  Ｃ０，Ｃ１の動作周波数を監視し、物理ＣＰＵ  Ｃ０，Ｃ１の動作周波数のバラツキの有無を判定する。サービスプロセッサＳＰ１は物理ＣＰＵ  Ｃ０，Ｃ１の動作周波数にバラツキがあると判定すると、物理ＣＰＵ  Ｃ０，Ｃ１の動作周波数を最適化するよう、管理ドメインＭ１に指示を出す。【００４２】
管理ドメインＭ１は当該指示を受けると、まず、物理ＣＰＵ  Ｃ０，Ｃ１の動作周波数の平準化後に、現状の性能を維持できるような論理ＣＰＵの割り当てが得られるか否かを判定する。ここで現状の性能とは、以下に示す如くに論理ＣＰＵ  Ｌ０−０，Ｌ０−１が割り当てられている状態を言う。すなわち、上記の如く、動作周波数が３ＧＨｚの物理ＣＰＵ  Ｃ０が論理ＣＰＵ  Ｌ０−０として論理ドメインＧ０に割り当てられ、更に、論理ＣＰＵ  Ｌ０−０が３分割されて各タスクＴ１，Ｔ２，Ｔ３に割り当てられている。更に、動作周波数が１ＧＨｚの物理ＣＰＵ  Ｃ１が論理ＣＰＵ  Ｌ０−１として、論理ドメインＧ１に割り当てられている。【００４３】
ここで説明の便宜上、例えば、図４の例とは異なり、ある１つのタスクが、高い処理能力（例えば３ＧＨｚ分の処理能力）を必要としており、当該１つのタスクに対し、３ＧＨｚの１つの物理ＣＰＵに属する３ＧＨｚの論理ＣＰＵが割り当てられている場合を想定する。そのような場合には、物理ＣＰＵの動作周波数を平準化して夫々の動作周波数の平均値２ＧＨｚに変更すると、上記３ＧＨｚの処理能力を必要とするタスクに対し、３ＧＨｚの処理能力を割り当てられなくなる。これは、１つのタスクを、２つの物理ＣＰＵに夫々属する２つの物理ＣＰＵが共同して実行し得ないことによる。したがってこのような場合、物理ＣＰＵの動作周波数の平準化後に、現状の性能を維持できる論理ＣＰＵの割り当てを得ることができない。【００４４】
他方、図４の例における論理ドメインＧ０のようにタスクが複数存在し、１つの論理ＣＰＵが時分割されて夫々のタスクに割り当てられているような場合、物理ＣＰＵの動作周波数の平準化後に、現状の性能を維持できる論理ＣＰＵの割り当てを得ることができる。この点につき、図４〜図６とともに後述する。【００４５】
管理ドメインＭ１は、上記の如く、サービスプロセッサＳＰ１から物理ＣＰＵの動作周波数の最適化の指示を受けた場合、物理ＣＰＵの動作周波数の平準化後に、現状の性能を維持できる論理ＣＰＵの割り当てが得ることができるか否かを判定する。より具体的には、管理ドメインＭ１は、現在各論理ドメインが有するタスクの数及び当該タスクに対して論理ＣＰＵがどのような態様で割り当てられているか等の情報を使用する。そして管理ドメインＭ１は、当該情報に基づき、物理ＣＰＵの動作周波数の平準化後に、現状の性能を維持できる論理ＣＰＵの割り当てが得ることができるか否かを判定する。【００４６】
図４の例の場合、上記の如く、論理ドメインＧ０が処理するタスクは、３つのタスクＴ１，Ｔ２，Ｔ３であり、論理ドメインＧ０が処理する負荷が当該３つのタスクＴ１，Ｔ２，Ｔ３に１／３ずつ等分に分散されている。このような場合、管理ドメインＭ１は、まず、現在の物理ＣＰＵ  Ｃ０，Ｃ１の動作周波数３ＧＨｚ、１ＧＨｚを、夫々、平均値２ＧＨｚに変更するものと仮定する。この場合、現状３ＧＨｚが割り当てられている論理ドメインＧ０には、２ＧＨｚに変更された物理ＣＰＵ  Ｃ０に属する２ＧＨｚの論理ＣＰＵ  Ｌ０−０の処理能力が割り当てられる。そうすると、論理ドメインＧ０では、元の３ＧＨｚ分の処理能力と、当該変更後の２ＧＨｚ分の処理能力との間の差分、１ＧＨｚが、処理能力の不足として生ずる。【００４７】
他方、上記物理ＣＰＵの動作周波数の変更の結果、現状１ＧＨｚが割り当てられている論理ドメインＧ１には、２ＧＨｚに変更された物理ＣＰＵ  Ｃ１に属する２ＧＨｚの論理ＣＰＵ  Ｌ１−０の処理能力が割り当てられる。そうすると、論理ドメインＧ１では、元の１ＧＨｚと、当該変更後の２ＧＨｚとの間の差分、１ＧＨｚが、処理能力の余剰として生ずる。【００４８】
そこで管理ドメインＭ１は、余剰のＣＰＵの処理能力を上記不足のＣＰＵの処理能力に充当するべく、図５に示す如く、元々処理能力が余剰となる論理ドメインＧ１に属していた物理ＣＰＵ  Ｃ１を２等分に時分割し、２つの論理ＣＰＵ  Ｌ０−１，Ｌ１−０を生成するものと仮定する。２等分に時分割した結果、２つの論理ＣＰＵ  Ｌ０−１，Ｌ１−０の各々には、物理ＣＰＵ  Ｃ１が提供する処理時間の１／２（５０％）ずつの処理時間が割り当てられる。すなわち、２つの論理ＣＰＵ  Ｌ０−１，Ｌ１−０の各々は、動作周波数変更後の物理ＣＰＵ  Ｃ１の動作周波数２ＧＨｚ分の処理能力が２等分され、１／２（５０％）の１ＧＨｚ分ずつの処理能力を有する。【００４９】
そして管理ドメインＭ１は、図６に示す如く、２つの論理ＣＰＵ  Ｌ０−１，Ｌ１−０のうち、一の論理ＣＰＵ  Ｌ０−１を処理能力が不足となる論理ドメインＧ０に割り当て、他の論理ＣＰＵ  Ｌ１−０を元の論理ドメインＧ１に割り当てるものと仮定する。その結果、論理ドメインＧ０には、論理ＣＰＵ  Ｌ０−０（２ＧＨｚ）と、他の論理ＣＰＵ  Ｌ０−１とが割り当てられ、合計３ＧＨｚ分の処理能力が割り当てられる。又、上記の如く、高負荷の論理ドメインＧ０が有するタスクは、各々が１ＧＨｚ分ずつの処理負荷を必要とする３つのタスクＴ１，Ｔ２，Ｔ３である。このため、上記論理ＣＰＵ  Ｌ０−０の２ＧＨｚ分の処理能力をタスクＴ１，Ｔ２に割り当て、上記論理ＣＰＵ  Ｌ０−１の１ＧＨｚ分の処理能力をタスクＴ３に割り当てることができる。したがって、論理ドメインＧ０に関し、図４の初期状態の性能を維持できる。他方、論理ドメインＧ１に関しては、物理ＣＰＵ  Ｃ１から生成された、１ＧＨｚ分の処理能力を有する論理ＣＰＵ  Ｌ１−０が割り当てられる。このため、図４の初期状態の性能を維持できる。このようにして得られた、図６に示す、物理ＣＰＵの動作周波数の平準化後の論理ＣＰＵの処理能力の割り当ては、以下のように数式で示すことができる。尚、以下の数式（１）、（２）において、処理能力をＣＰＵの動作周波数［ＧＨｚ］で示している。
論理ドメインＧ０：２［ＧＨｚ］（Ｌ０−０（Ｃ０））＋（２［ＧＨｚ］（Ｃ１）×１／２）［ＧＨｚ］（Ｌ０−１）＝３［ＧＨｚ］  ...（１）
論理ドメインＧ１：（２［ＧＨｚ］（Ｃ１）×１／２）［ＧＨｚ］（Ｌ１−０）＝１［ＧＨｚ］  
...（２）
管理ドメインＭ１は、このようにして物理ＣＰＵの動作周波数の平準化後の論理ＣＰＵの割り当てとして、論理ドメインＧ０，Ｇ１の両方において図４の初期状態の性能を維持できる論理ＣＰＵの割り当てを得ることができると判定すると、以下の動作を実行する。すなわち、管理ドメインＭ１は、このようにして得られた物理ＣＰＵの動作周波数の平準化後の論理ＣＰＵの割り当てを実現するための処理を行う。尚、上記物理ＣＰＵの動作周波数の平準化後の論理ＣＰＵの割り当てを実現するための処理とは、物理ＣＰＵの動作周波数を平準化し、動作周波数の平準化により生ずる処理能力の過不足を解消するために論理ＣＰＵの割り当てを変更する処理である。このような処理のことを、以下、「動作周波数平準化及び処理能力割り当て処理」と称する。【００５０】
動作周波数平準化及び処理能力割り当て処理では、管理ドメインＭ１はハイパーバイザＨ１に対し、物理ＣＰＵ  Ｃ１の動作周波数を元の１ＧＨｚから２ＧＨｚに変更するように指示を出す。その後管理ドメインＭ１は、動作周波数変更後の物理ＣＰＵ  Ｃ１の処理能力を時分割で２等分して２つの論理ＣＰＵ  Ｌ０−１，Ｌ１−０を生成する。そして管理ドメインＭ１は、生成した２つの論理ＣＰＵのうち、論理ＣＰＵ  Ｌ０−１を論理ドメインＧ０に割り当て、論理ＣＰＵ  Ｌ１−０を論理ドメインＧ１に割り当てる。そして、管理ドメインＭ１は、ハイパーバイザＨ１に対し、物理ＣＰＵ  Ｃ０の動作周波数を元の３ＧＨｚから２ＧＨｚに変更するように指示を出す。その結果、サーバ装置１００では、上述した、図６及び上記数式（１）、（２）に示す論理ＣＰＵの割り当て状態が実現される。【００５１】
尚、上記の如く、物理ＣＰＵ  Ｃ１の動作周波数を上げる手順を、物理ＣＰＵ  Ｃ０の動作周波数下げる手順に先立って行うことが望ましい。これは、物理ＣＰＵ  Ｃ０の動作周波数を下げる手順を、物理ＣＰＵ  Ｃ１の動作周波数を上げる手順に先だって行ってしまうと、以下に述べるような状況が生じるおそれがあるからである。すなわち、物理ＣＰＵの動作周波数が下げられることによって、論理ドメインが必要とする情報処理の負荷に対する処理能力が不足してしまう状況が想定される。【００５２】
他方、物理ＣＰＵの動作周波数の平準化後に、論理ドメインＧ０，Ｇ１の両方において図４の初期状態の性能を維持できる論理ＣＰＵの割り当てを得ることができない場合、管理ドメインＭ１は、動作周波数平準化及び処理能力割り当て処理を行わない。例えば上記の例の如く、論理ドメインＧ０が有する１つのタスクの負荷が高く、当該１つのタスクに対し実質的に３ＧＨｚの１つの物理ＣＰＵがそのまま割り当てられているような場合を想定する。このような場合、物理ＣＰＵの動作周波数の平準化後に、図４の初期状態の性能を維持できる論理ＣＰＵの割り当てを得ることができない。すなわちこのような場合、論理ドメインＧ１に割り当てられている論理ＣＰＵ  Ｌ１−０が属する物理ＣＰＵ  Ｃ１の動作周波数を２ＧＨｚに上げて２分割し、動作周波数２分割後の１ＧＨｚの論理ＣＰＵを高負荷の論理ドメインＧ０へ割り当てるものとする。しかしながら上記の如く、高負荷の１つのタスクを、２つの物理ＣＰＵに夫々属する２つの論理ＣＰＵが共同して実行することができない。したがって、物理ＣＰＵの動作周波数の平準化後に、図４の初期状態の性能を維持できる論理ＣＰＵの割り当てを得ることができない。【００５３】
図７は、図４〜図６とともに上述した、動作周波数平準化及び処理能力割り当て処理（図中、「構成変更」）の前後のサーバ装置１００の消費電力を比較する図である。まず、各論理ドメインＧ０，Ｇ１に割り当てられる論理ＣＰＵの処理能力（図中「ドメインあたりの性能」）の比は、動作周波数平準化及び処理能力割り当て処理の前後で１：１であり、相互に等しい。尚、図７中、論理ドメインＧ０をDOMAIN 0と、論理ドメインＧ１をDOMAIN 1として示している。論理ドメインＧ０では、物理ＣＰＵの動作周波数を平準化する処理の前は、動作周波数が３［ＧＨｚ］×１＝３［ＧＨｚ］、動作周波数平準化及び処理能力割り当て処理の後は、動作周波数が２［ＧＨｚ］×１＋２［ＧＨｚ］×１／２＝３［ＧＨｚ］であり、相互の比が１：１で等しい。論理ドメインＧ１では、動作周波数平準化及び処理能力割り当て処理の前は、動作周波数は１［ＧＨｚ］×１＝１［ＧＨｚ］であり、動作周波数平準化及び処理能力割り当て処理の後は、動作周波数が２［ＧＨｚ］×１／２＝１［ＧＨｚ］であり、相互の比が１：１で等しい。【００５４】
次に、図７に示される、全物理ＣＰＵの消費電力（図中「全ＣＰＵの消費電力」）につき、説明する。説明の便宜上、各物理ＣＰＵの消費電力を示す値として、動作周波数（ｆ）に電源電圧（ｖ）の二乗を乗じた値（ｆ［ＧＨｚ］×（ｖ［Ｖ］）２）を使用し、動作周波数（ｆ）が１ＧＨｚの場合、電源電圧（ｖ）は１［Ｖ］であるものとする。又、各物理ＣＰＵにおいて、電源電圧（ｖ）は動作周波数（ｆ）に比例し、すなわち、消費電力は動作周波数（ｆ）の３乗に比例するものとする（例えば特許文献１の段落［０００４］、［０００５］参照）。【００５５】
動作周波数平準化及び処理能力割り当て処理の前の物理ＣＰＵ  Ｃ０の消費電力の大きさを示す値は、３[ＧＨｚ]×（３［Ｖ］）２＝２７と求まる。又、動作周波数平準化及び処理能力割り当て処理の前の物理ＣＰＵ  Ｃ１の消費電力の大きさを示す値は、１［ＧＨｚ］×（１［Ｖ］）２＝１と求まる。したがって動作周波数平準化及び処理能力割り当て処理の前の全物理ＣＰＵの消費電力を示す値は、２７＋１＝２８と求まる。【００５６】
他方、動作周波数平準化及び処理能力割り当て処理の後の物理ＣＰＵ  Ｃ０の消費電力の大きさを示す値は、２［ＧＨｚ］×（２［Ｖ］）２＝８と求まる。又、動作周波数平準化及び処理能力割り当て処理の後の物理ＣＰＵ  Ｃ１の消費電力の大きさを示す値は、２［ＧＨｚ］×（２［Ｖ］）２＝８と求まる。したがって動作周波数平準化及び処理能力割り当て処理の後の全物理ＣＰＵの消費電力を示す値は、８＋８＝１６と求まる。したがって動作周波数平準化及び処理能力割り当て処理の前後の全物理ＣＰＵの消費電力の比は、２７：１６となり、動作周波数平準化及び処理能力割り当て処理の結果、全物理ＣＰＵの消費電力は０．５７倍となり、減少することが分かる。すなわち、動作周波数平準化及び処理能力割り当て処理の前後で、各論理ドメインに割り当てられる論理ＣＰＵの処理能力については変動がないのに対し、全物理ＣＰＵの消費電力は４３％削減されている。【００５７】
このように、本発明の実施例１によれば、システム全体のＣＰＵの処理能力は動作周波数の１乗の総和に比例するが、消費電力は動作周波数の３乗の総和に比例することに着目し、ＣＰＵの動作周波数のバラツキを極力抑えることにより、効果的な消費電力の削減を図る。【００５８】
尚、管理ドメインＭ１は、論理ドメインに割り当てる論理ＣＰＵの処理能力を、当該論理ドメインに割り当てられている全論理ＣＰＵの夫々の使用量の総和に対するものとして求める。ここで論理ＣＰＵの使用量は、当該論理ＣＰＵの動作周波数に当該論理ＣＰＵのロードアベレージを乗じた数に比例するものとする。又、各論理ＣＰＵの動作周波数とは、当該論理ＣＰＵが属する物理ＣＰＵの動作周波数に、時分割による割り当て率を乗じた数である。時分割による割り当て率とは、物理ＣＰＵから論理ＣＰＵが生成される場合において、当該物理ＣＰＵが提供する処理時間のうち、当該論理ＣＰＵに対して割り当てられる処理時間の割合を示す。例えば物理ＣＰＵが３等分されて３つの論理ＣＰＵが生成される場合の各論理ＣＰＵにおける時分割による割り当て率は１／３である。【００５９】
次に図８とともに、図４〜図７とともに上述した如くの、本発明の実施例１による処理の流れについて説明する。【００６０】
ステップＳ１で、サービスプロセッサＳＰ１は、定期的に各物理ＣＰＵの動作周波数を監視し、ステップＳ２で、サービスプロセッサＳＰ１は、各物理ＣＰＵの動作周波数のバラツキの有無を判定する。判定の結果動作周波数にバラツキがある場合（Ｓ３  ＹＥＳ）、サービスプロセッサＳＰ１はステップＳ４に移行し、動作周波数にバラツキがない場合（Ｓ３  ＮＯ）、ステップＳ１に戻る。ステップＳ４で、サービスプロセッサＳＰ１は、管理ドメインＭ１に対し、各物理ＣＰＵの動作周波数のバラツキがある点を通知する。【００６１】
次にステップＳ５で、管理ドメインＭ１はサービスプロセッサＳＰ１からの通知を受け、全物理ＣＰＵの動作周波数の平均値を求める。次にステップＳ６で管理ドメインＭ１は、各物理ＣＰＵの動作周波数をＳ５で求めた平均値に変更した（平準化）場合に、各論理ドメインに割り当てられる論理ＣＰＵの処理能力が維持される論理ＣＰＵの割り当て（論理ＣＰＵ構成）を求める。
次にステップＳ７で管理ドメインＭ１は、Ｓ６で求めた論理ＣＰＵ構成で、各論理ドメインに割り当てられる論理ＣＰＵの処理能力が維持可能か否かを判定する。ステップＳ７の判定の結果、各論理ドメインに割り当てられる論理ＣＰＵの処理能力を維持できない場合（Ｓ７  ＮＯ）、ステップＳ１が実行される。他方、各論理ドメインに割り当てられる論理ＣＰＵの処理能力を維持できる場合（Ｓ７  ＹＥＳ）、管理ドメインＭ１はステップＳ８に移行する。【００６２】
ステップＳ８で管理ドメインＭ１は、現在の各物理ＣＰＵの動作周波数とＳ５で算出した動作周波数の平均値とを比較する。次にステップＳ９で管理ドメインＭ１は、動作周波数が平均値より低い物理ＣＰＵを動作周波数を上げる物理ＣＰＵとして認識し、動作周波数が平均値より高い物理ＣＰＵを動作周波数を下げる物理ＣＰＵとして認識する。次にステップＳ１０で、管理ドメインＭ１は、ハイパーバイザＨ１に対し、動作周波数を上げる対象として認識した物理ＣＰＵの動作周波数を上げる指示を出す。当該指示を受けると、ステップＳ１１でハイパーバイザＨ１は、該当する物理ＣＰＵの動作周波数を上げる。【００６３】
次にステップＳ１２で管理ドメインＭ１は、必要に応じ、動作周波数を上げた物理ＣＰＵを時分割して、１つの物理ＣＰＵから複数の論理ＣＰＵを生成する。例えば、物理ＣＰＵの動作周波数を上げたことにより物理ＣＰＵの処理能力が増加した結果、当該物理ＣＰＵに属する論理ＣＰＵを有する論理ドメインの情報処理の負荷に対して処理能力が余剰となった場合、当該物理ＣＰＵを時分割する。そしてステップＳ１３で管理ドメインＭ１は、時分割して得られた複数の論理ＣＰＵのうちの一部を、現有の論理ＣＰＵの処理能力では情報処理の負荷に対し処理能力が不足となる他の論理ドメインに対し、割り当てる。論理ドメインに対する論理ＣＰＵの割り当ては、ダイナミックリコンフィギュレーション（ＤＲ）機能によって行うことができる。【００６４】
次にステップＳ１４で管理ドメインＭ１は、ハイパーバイザＨ１に対し、動作周波数を下げる対象として認識した物理ＣＰＵの動作周波数を下げる指示を出す。次にステップＳ１５でハイパーバイザＨ１は、該当する物理ＣＰＵの動作周波数を下げる。【００６５】
次にステップＳ１６で各論理ドメインのＯＳは、当該論理ドメインに属する論理ＣＰＵのロードアベレージに応じ、当該論理ＣＰＵの動作周波数の変更をハイパーバイザＨ１に要求する。例えば論理ドメインのＯＳは、論理ＣＰＵのロードアベレージが低い場合には、当該論理ＣＰＵの動作周波数を下げるようにハイパーバイザＨ１に指示を出す。又、論理ドメインのＯＳは、論理ＣＰＵのロードアベレージが高い場合には、当該論理ＣＰＵの動作周波数を上げるようにハイパーバイザＨ１に指示を出す。【００６６】
次にステップＳ１７でハイパーバイザＨ１は、論理ドメインのＯＳからのＳ１６の指示に応じ、対応する物理ＣＰＵの動作周波数を変更する。次に、再びステップＳ１が実行される。尚、ステップＳ１７において物理ＣＰＵの動作周波数が変更された結果、物理ＣＰＵの動作周波数にバラツキが生じると（ステップＳ２、ステップＳ３のＹＥＳ），ステップＳ４以降の処理が再度実行される。【００６７】
尚、ステップＳ６で管理ドメインＭ１は、各論理ドメインに属する論理ＣＰＵのロードアベレージを取得し、取得したロードアベレージに基づき、当該論理ドメインに対して割り当てる論理ＣＰＵの処理能力を求める。その結果、例えばロードアベレージが低い場合には、ロードアベレージに応じ、論理ドメインに割り当てる論理ＣＰＵの処理能力を下げる。【００６８】
又、ステップＳ６で管理ドメインＭ１は、負荷の高い論理ドメインが処理するタスクの状態を調べ、物理ＣＰＵの動作周波数を平準化した場合に当該タスクの実行が可能か否かを判定する。例えば特定の１つのタスクの情報処理の負荷が高く、物理ＣＰＵの動作周波数を平準化すると、動作周波数平準化後の物理ＣＰＵに属する１つの論理ＣＰＵでは当該タスクを実行できないような場合、物理ＣＰＵの動作周波数の平準化を行わないものとする。【００６９】
又、ステップＳ９で管理ドメインＭ１は、動作周波数を上げる物理ＣＰＵに係る論理ドメイン及び動作周波数を下げる物理ＣＰＵに係る論理ドメインを抽出する。そしてステップＳ１２で管理ドメインＭ１は、ステップＳ１１，Ｓ１２で動作周波数が上げられた物理ＣＰＵに係る論理ドメインに属する論理ＣＰＵのロードアベレージに応じ、当該物理ＣＰＵを時分割する。例えば論理ＣＰＵのロードアベレージが１／２であれば、当該論理ＣＰＵが属する物理ＣＰＵを２等分に時分割する。又、論理ＣＰＵのロードアベレージが１／３であれば、当該論理ＣＰＵが属する物理ＣＰＵを３等分に時分割する。そしてステップＳ１３で管理ドメインＭ１は、時分割によって生成された論理ＣＰＵを、ステップＳ１４，Ｓ１５で動作周波数が下げられる物理ＣＰＵが割り当てられている論理ドメインに割り当てる。【００７０】
このように、管理ドメインＭ１は、物理ＣＰＵの動作周波数の平準化によって動作周波数が上げられた物理ＣＰＵを時分割し、時分割によって生成された論理ＣＰＵを、動作周波数が下げられた物理ＣＰＵに係る論理ドメインに割り当てる。このようにして管理ドメインＭ１は、各論理ドメインに対し、物理ＣＰＵの動作周波数の平準化前と同等の処理能力が割り当てられるように、論理ＣＰＵの割り当てを決定する。【００７１】
尚、物理ＣＰＵの動作周波数を上げるステップＳ１０，Ｓ１１は、物理ＣＰＵを時分割して論理ＣＰＵを割り当てるステップＳ１２，Ｓ１３の前に実行し、物理ＣＰＵの動作周波数を下げるステップＳ１４，Ｓ１５は、ステップＳ１２，Ｓ１３の後に実行する。これは、各論理ドメインが必要とする処理能力に一時的な不足が生ずることを防止するためである。【００７２】
次に図９乃至図１４とともに、図８のステップＳ１６の動作の詳細について説明する。ステップＳ１０〜Ｓ１５の動作において物理ＣＰＵの動作周波数の平準化が実行されると、サーバ装置１００が有する全物理ＣＰＵの動作周波数が等しくなる。その後、各論理ドメインのＯＳは、当該論理ドメインに属する論理ＣＰＵのロードアベレージに応じ、論理ＣＰＵの動作周波数の変更をハイパーバイザＨ１を介して行う。その結果、物理ＣＰＵの動作周波数にバラツキが生ずる（図８中、ステップＳ３のＹＥＳ）。【００７３】
例えば、ある論理ドメインにおいて、ＯＳ上でほとんどジョブが動作しておらず、すなわち情報処理の負荷が非常に低く、いわゆるアイドル（すなわちロードアベレージが非常に低い）状態であった場合を想定する。このような場合、ＯＳは、消費電力の削減のため、ハイパーバイザＨ１を介し、当該論理ドメインに属する論理ＣＰＵの動作周波数を下げる。逆に当該論理ドメインにおいて、更なる論理ＣＰＵの処理能力が必要と判断すると、ＯＳはハイパーバイザＨ１を介し、当該論理ドメインに属する論理ＣＰＵの動作周波数を上げる。【００７４】
次に図９〜図１１とともに、物理ＣＰＵの動作周波数が変更された結果、物理ＣＰＵの動作周波数にバラツキが生ずる状況の具体例について説明する。【００７５】
図９はサーバ装置１００の初期状態を示す。図９に示す如く、初期状態では、物理ＣＰＵ  Ｃ０，Ｃ１とも動作周波数は２ＧＨｚである。ここで論理ドメインＧ０の情報処理の負荷が上がった場合を想定する。このような場合、ＯＳ  Ｓ０は、論理ＣＰＵの更なる処理能力が必要になったと判断し、ハイパーバイザＨ１に対し、論理ＣＰＵ  Ｌ０−１の動作周波数を上げる指示を出したとする。より具体的には、図１０に示す如く、ＯＳ  Ｓ０がハイパーバイザＨ１に対し、論理ＣＰＵ  Ｌ０−１の動作周波数を１ＧＨｚ上げる指示を出したとする。【００７６】
尚、図９の初期状態では、論理ＣＰＵ  Ｌ０−１は、物理ＣＰＵ  Ｃ１を２等分（すなわち１：１の割合）に時分割して生成された２つの論理ＣＰＵ  Ｌ０−１，Ｌ１−０のうちの１つである。すなわち、論理ＣＰＵ  Ｌ０−１、Ｌ１−０の各々には、物理ＣＰＵ  Ｃ１の動作周波数２ＧＨｚ分の処理能力の１／２の１ＧＨｚ分の処理能力が割り当てられている。【００７７】
ハイパーバイザＨ１は、ＯＳ  Ｓ０からの指示を受けると、当該指示に係る論理ＣＰＵ  Ｌ０−１が物理ＣＰＵ  Ｃ１を時分割して生成された論理ＣＰＵであることを認識し、管理ドメインＭ１にＯＳ  Ｓ０からの指示を通知する。管理ドメインＭ１はハイパーバイザＨ１からの通知を受け、通知された指示に係る要求を満たすような論理ＣＰＵの割り当てを求める。尚、仮にＯＳからの指示に係る論理ＣＰＵが物理ＣＰＵそのものであった場合、すなわち物理ＣＰＵを時分割せずにそのまま論理ＣＰＵを提供していた場合、ハイパーバイザＨ１は、管理ドメインＭ１に通知をせずに、物理ＣＰＵの動作周波数を上げることもできる。【００７８】
管理ドメインＭ１は、ハイパーバイザＨ１経由で受けたＯＳ  Ｓ０からの指示に係る論理ＣＰＵ  Ｌ０−１が属する物理ＣＰＵ  Ｃ１の動作周波数を、当該要求に応じて１ＧＨｚ上げることが可能な場合には、物理ＣＰＵ  Ｃ１の動作周波数を上げる。例えば物理ＣＰＵ  Ｃ１の現在の動作周波数が既に最高動作周波数３ＧＨｚに至っていた場合には、物理ＣＰＵ  Ｃ１の動作周波数を１ＧＨｚ上げることは不可能である。物理ＣＰＵ  Ｃ１の動作周波数を上げることが不可能な場合には、管理ドメインＭ１は、論理ドメインＧ０に属する他の論理ＣＰＵの動作周波数を上げることが可能か否かを判断する。【００７９】
図１０の例の場合、現在の物理ＣＰＵ  Ｃ１の動作周波数は２ＧＨｚであり、要求に応じて動作周波数を１ＧＨｚ上げることが可能である。したがって管理ドメインＭ１はハイパーバイザＨ１に対し、物理ＣＰＵ  Ｃ１の動作周波数を１ＧＨｚ上げるように指示を出す。ハイパーバイザＨ１は管理ドメインＭ１からの指示に応じ、図１１に示す如く、物理ＣＰＵ  Ｃ１の動作周波数を１ＧＨｚ上げて３ＧＨｚに変更する。又、管理ドメインＭ１は、物理ＣＰＵ  Ｃ１を２：１に時分割して論理ＣＰＵ  Ｌ０−１，Ｌ１−０を生成する。その結果、論理ＣＰＵ  Ｌ０−１には、動作周波数の変更後の物理ＣＰＵ  Ｃ１の動作周波数３ＧＨｚ分の処理能力の２／３の２ＧＨｚ分の処理能力が割り当てられる。又、論理ＣＰＵ  Ｌ１−０には、動作周波数の変更後の物理ＣＰＵ  Ｃ１の動作周波数３ＧＨｚ分の処理能力の１／３の１ＧＨｚ分の処理能力が割り当てられる。【００８０】
その結果、論理ドメインＧ０に対しては、ＯＳ  Ｓ０からの指示通り、論理ＣＰＵ  Ｌ０−１の動作周波数を１ＧＨｚ上げたことになる。又、論理ドメインＧ１に対しては、図９の初期状態と同様に、動作周波数１ＧＨｚの論理ＣＰＵ  Ｌ１−０が割り当てられ、初期状態の処理能力が維持されている。【００８１】
図９〜図１１とともに上述した動作により、図９に示す初期状態、すなわち物理ＣＰＵ  Ｃ０，Ｃ１の夫々の動作周波数が、ともに２ＧＨｚであったものが、図１１に示す如く、物理ＣＰＵ  Ｃ０，Ｃ１の夫々の動作周波数は、２ＧＨｚ、３ＧＨｚとなっている。すなわち、物理ＣＰＵの動作周波数にバラツキが生じている。【００８２】
次に図１２とともに、図９〜図１１とともに上述した、サーバ装置１００において、物理ＣＰＵの動作周波数にバラツキが生ずる際の動作の流れを説明する。【００８３】
図１２のステップＳ３１で、各論理ドメインのＯＳは定期的に論理ドメインに属する物理ＣＰＵのロードアベレージを監視する。すなわち、論理ドメイン内の情報処理の負荷状態を監視する。そして各論理ドメインのＯＳは、ステップＳ３２にて、負荷状態に変動が生じたことを検出すると（ＹＥＳ）、ステップＳ３３に進む。他方、負荷状態の変動を検出しなかった場合（ステップＳ３２のＮＯ），ステップＳ３１に戻る。【００８４】
ステップＳ３３で各論理ドメインのＯＳは、ハイパーバイザＨ１に対し、負荷状態の変動に適応するように、論理ドメインに属する論理ＣＰＵの動作周波数の変更を要求する。すなわち、各論理ドメインのＯＳは、負荷が上昇した場合には論理ＣＰＵの動作周波数を上げる要求を出し、負荷が減少した場合には論理ＣＰＵの動作周波数を下げる要求を出す。【００８５】
ステップＳ３４でハイパーバイザＨ１は論理ドメインのＯＳからの要求に応じ、管理ドメインＭ１に対し、当該要求を通知する。ステップＳ３５で管理ドメインＭ１は、当該要求の通知を受け、ハイパーバイザＨ１に対し、要求を発した論理ＣＰＵが属する物理ＣＰＵの動作周波数を変更する要求を出す。又、管理ドメインＭ１は、ステップＳ３６で、要求を発した論理ＣＰＵが、物理ＣＰＵを時分割して生成されたものか否かを判定する。論理ＣＰＵが物理ＣＰＵを時分割して生成されたものでなかった場合（ステップＳ３６のＮＯ），ステップＳ３１が実行される。論理ＣＰＵが、物理ＣＰＵを時分割して生成されたものであった場合（ステップＳ３６のＹＥＳ），管理ドメインＭ１はステップＳ３７に進む。【００８６】
ステップＳ３７で管理ドメインＭ１は、必要に応じ、物理ＣＰＵの時分割の割合を変更する。すなわち、ステップＳ３６で動作周波数が変更された物理ＣＰＵに属する論理ＣＰＵの動作周波数が、論理ＣＰＵが属する論理ドメインの負荷状態に応じた処理能力を提供するように、必要に応じ時分割の割合を変更する。例えば図１１の例の場合、上記の如く、図９の初期状態では論理ＣＰＵ  Ｌ０−１，Ｌ１−０の時分割の割合は１：１であった。その後、論理ドメインＧ０，Ｇ１の夫々の情報処理の負荷の変動に応じるため、図１１とともに上述の如く、物理ＣＰＵ  Ｃ１の動作周波数を３ＧＨｚへ変更した後、論理ＣＰＵ  Ｌ０−１，Ｌ１−０の時分割の割合が２：１に変更している。【００８７】
次に図１３〜図１４とともに、サーバ装置１００において、図９〜図１１とともに上述した如くの、物理ＣＰＵの動作周波数のバラツキが生ずる状況の、他の具体例について説明する。【００８８】
この場合も初期状態は図９の状態とする。その後、論理ドメインＧ０の情報処理の負荷が減少したとする。これに応じ、論理ドメインＧ０のＯＳ  Ｓ０がハイパーバイザＨ１に対し、以下の指示を出したとする。すなわち、動作周波数が２ＧＨｚの論理ＣＰＵ  Ｌ０−０の動作周波数を１ＧＨｚ下げて１ＧＨｚに変更し、動作周波数が１ＧＨｚの論理ＣＰＵ  Ｌ０−１を停止するように指示を出したとする。論理ドメインＧ０のＯＳ  Ｓ０からの指示を受けたハイパーバイザＨ１は、当該指示を管理ドメインＭ１に通知する。【００８９】
管理ドメインＭ１は当該指示に応じ、図１４に示す如く、論理ドメインＧ０への論理ＣＰＵ  Ｌ０−１の割り当てを外す。管理ドメインＭ１は更に、ハイパーバイザＨ１に対し、論理ＣＰＵ  Ｌ０−０が属する物理ＣＰＵ  Ｃ０の動作周波数を２ＧＨｚから１ＧＨｚ下げて１ＧＨｚに変更する指示を出す。その結果ハイパーバイザＨ１は物理ＣＰＵ  Ｃ０の動作周波数を１ＧＨｚに変更する。【００９０】
又、管理ドメインＭ１は、動作周波数１ＧＨｚの論理ＣＰＵ  Ｌ０−１が論理ドメインＧ０への割り当てから外れて不要になったため、論理ＣＰＵ  Ｌ０−１が属する物理ＣＰＵ  Ｃ１の時分割を行わないようにする。すなわち管理ドメインＭ１は、物理ＣＰＵ  Ｃ１から、時分割せずに、１つの論理ＣＰＵ  Ｌ１−０が生成されるようにする。更に管理ドメインＭ１は、ハイパーバイザＨ１に対し、物理ＣＰＵ  Ｃ１の動作周波数を２ＧＨｚから１ＧＨｚ下げて１ＧＨｚに変更する指示を出す。その結果ハイパーバイザＨ１は物理ＣＰＵ  Ｃ１の動作周波数を１ＧＨｚに変更する。その結果、動作周波数が１ＧＨｚとなった論理ＣＰＵ  Ｃ１に属する唯一の論理ＣＰＵとなった論理ＣＰＵ  Ｌ１−１は、動作周波数１ＧＨｚ分の処理能力を有する。【００９１】
このようにして、論理ドメインＧ０では、ＯＳ  Ｓ０からの要求通り、論理ＣＰＵ  Ｌ０−０の動作周波数が２ＧＨｚから１ＧＨｚ下げられて１ＧＨｚに変更され、論理ＣＰＵ  Ｌ０−１が消滅している。又、論理ドメインＧ１では、図９の初期状態と同様に、論理ＣＰＵ  Ｌ０−０により、動作周波数１ＧＨｚの分の処理能力が割り当てられ、処理能力が維持されている。【００９２】
尚、管理ドメインＭ１は、上記の如く、図３に示す主記憶１１１又は１１２に格納されたプログラムがＣＰＵ  Ｃ０又はＣ１によって実行されることによって実現される。その結果、ＣＰＵ  Ｃ０或いはＣ１により、図１〜図１４とともに上述した本発明の実施例１のサーバ装置１００における管理ドメインＭ１の処理が実行される。ここで上記プログラムは、例えば可搬のコンピュータ読取可能な情報記録媒体としての、ＣＤ−ＲＯＭ（Compact Disk - Read Only Memory）等を使用して外部から供給され、ＣＤ−ＲＯＭ等からサーバ装置１００の主記憶１１１又は１１２にロードすることが可能である。或いは上記プログラムは、インターネット、ＬＡＮ(Local Area Network)等の通信網を介し、外部のサーバからサーバ装置１００の主記憶１１１又は１１２にダウンロードすることも可能である。
【符号の説明】
【００９３】
１００  サーバ装置
１１０  システムボード
１２０  サービスプロセッサボード
Ｍ１  管理ドメイン（論理ＣＰＵ生成部、動作周波数平均化部、論理ＣＰＵ割り当て部、動作周波数適応部）
Ｇ０，Ｇ１  論理ドメイン
Ｌ０−０，Ｌ０−１，Ｌ１−０  論理ＣＰＵ
Ｃ０，Ｃ１  物理ＣＰＵ
Ｈ１  ハイパーバイザ
ＳＰ１  サービスプロセッサ
【図１】
0005435133.tif 000002
【図２】
0005435133.tif 000003
【図３】
0005435133.tif 000004
【図４】
0005435133.tif 000005
【図５】
0005435133.tif 000006
【図６】
0005435133.tif 000007
【図７】
0005435133.tif 000008
【図８】
0005435133.tif 000009
【図９】
0005435133.tif 000010
【図１０】
0005435133.tif 000011
【図１１】
0005435133.tif 000012
【図１２】
0005435133.tif 000013
【図１３】
0005435133.tif 000014
【図１４】
0005435133.tif 000015