(57)【要約】全体省電力制御部ＡＡ０６は、ある仮想計算機ＡＡ０１から省電力状態への遷移要求を受け取った場合、仮想計算機情報テーブルＢＢ０１を参照し、２以上の所定個数の仮想計算機ＡＡ０１が省電力状態にあるか否かを判定する。デバイス制御変更部ＡＡ０７は、全体省電力制御部ＡＡ０６により全ての仮想計算機ＡＡ０１が省電力状態にあると判定された場合、省電力状態の仮想計算機ＡＡ０１に対応する全てのデバイスＡＡ０８の中から、稼働させる１つのデバイスを稼働デバイス、残りのデバイスを縮退デバイスとして決定し、稼働デバイスに縮退デバイスの制御を縮退させる。
2012104940.tif 000002
【特許請求の範囲】
【請求項１】
複数の仮想計算機と、各仮想計算機に対応して複数設けられ、対応する仮想計算機により占有される複数のデバイスと、前記仮想計算機を制御するハイパバイザとを備える仮想計算機システムであって、
前記仮想計算機は、
対応するデバイスを制御するデバイス制御部と、
対応する仮想計算機の省電力制御を行う省電力制御部とを備え、
前記ハイパバイザは、
各仮想計算機の状態を管理する全体省電力制御部と、
前記仮想計算機の状態と前記デバイスの制御に関する情報とを含む仮想計算機情報を記憶する仮想計算機情報記憶部と、
前記デバイスの制御を変更するデバイス制御変更部とを備え、
前記全体省電力制御部は、前記省電力制御部から、対応する仮想計算機を通常状態から省電力状態に遷移させる遷移要求を受け取った場合、前記仮想計算機情報を参照し、前記遷移要求を出力した仮想計算機を含む２以上の所定個数の仮想計算機が省電力状態にあるか否かを判定し、
前記デバイス制御変更部は、前記全体省電力制御部により所定個数の仮想計算機が省電力状態にあると判定された場合、省電力状態にある仮想計算機に対応するデバイスのうち、稼働させる１つのデバイスを稼働デバイス、残りのデバイスを縮退デバイスとして決定し、前記稼働デバイスに前記縮退デバイスの制御を縮退させる仮想計算機システム。
【請求項２】
前記デバイス制御変更部は、省電力状態にある仮想計算機のうち、いずれか１つの仮想計算機が通常状態に復帰する際に、前記縮退デバイスの制御を元に戻す請求項１記載の仮想計算機システム。
【請求項３】
前記デバイスは、タイマである請求項１又は２記載の仮想計算機システム。
【請求項４】
前記タイマは、対応する仮想計算機が通常状態に復帰するまでの時間をカウントし、
前記デバイス制御変更部は、省電力状態にある仮想計算機に対応するタイマのうち、通常状態に復帰する時間が最も早い仮想計算機に対応するタイマを前記稼働デバイスとして決定する請求項３記載の仮想計算機システム。
【請求項５】
前記タイマは、所定の第１精度で計時動作を行う第１動作モードと前記第１精度よりも低精度で計時動作を行う第２動作モードとが切り替え可能であり、
前記デバイス制御部は、対応するタイマを予め第１動作モードに設定し、対応する仮想計算機が省電力状態になっても前記タイマの動作モードを切り替えず、
前記デバイス制御変更部は、前記稼働デバイスに前記縮退デバイスの制御を縮退させる際、前記稼働デバイスを前記第２動作モードに切り替え、前記縮退デバイスの制御を元に戻す際、前記稼働デバイスを前記第１動作モードに切り替える請求項３又は４記載の仮想計算機システム。
【請求項６】
前記デバイスは、通信装置である請求項１又は２記載の仮想計算機システム。
【請求項７】
前記デバイス制御変更部は、省電力状態にある仮想計算機に対応するデバイスのうち、稼働率が最も高い仮想計算機に対応するデバイスを前記稼働デバイスとして決定する請求項６記載の仮想計算機システム。
【請求項８】
前記デバイス制御変更部は、省電力状態にある仮想計算機に対応するデバイスのうち、通信帯域が最も広いデバイスを前記稼働デバイスとして決定する請求項６記載の仮想計算機システム。
【請求項９】
前記デバイス制御変更部は、前記デバイスの種類に基づき、前記デバイスが縮退可能なデバイスであるか否かを判定し、前記デバイスが縮退可能なデバイスであると判定した場合に、前記稼働デバイスに前記縮退デバイスの制御を縮退させる請求項１〜８のいずれかに記載の仮想計算機システム。
【請求項１０】
前記仮想計算機の状態は、前記仮想計算機が省電力状態にあるか否かを示す仮想計算機状態情報であり、
前記デバイスの制御に関する情報は、前記デバイスの制御内容を示すデバイス制御情報及び前記デバイスの制御を変更したか否かを示すデバイス制御変更情報を含む請求項１〜９のいずれかに記載の仮想計算機システム。
【請求項１１】
前記全体省電力制御部は、前記省電力制御部から省電力状態への遷移要求を受け取った際に、前記遷移要求を出力した仮想計算機の仮想計算機状態情報を通常状態から省電力状態に更新し、
前記デバイス制御変更部は、前記稼働デバイスに前記縮退デバイスの制御を縮退させる際に、前記稼働デバイス又は前記縮退デバイスの前記デバイス制御更新情報を更新する請求項１０記載の仮想計算機システム。
【請求項１２】
前記デバイス制御変更部は、前記全体省電力制御部により全ての仮想計算機が省電力状態にあると判定された場合、前記稼働デバイスに前記縮退デバイスの制御を縮退させる請求項１〜１１のいずれかに記載の仮想計算機システム。
【請求項１３】
複数の仮想計算機と、各仮想計算機に対応して複数設けられ、対応する仮想計算機により占有される複数のデバイスと、前記仮想計算機を制御するハイパバイザとを備える仮想計算機システムによるデバイス共有制御方法であって、
前記仮想計算機が、対応するデバイスを制御するデバイス制御ステップと、
前記仮想計算機が、対応する仮想計算機の省電力制御を行う省電力制御ステップと、
前記ハイパバイザが、各仮想計算機の状態を管理する全体省電力制御ステップと、
前記ハイパバイザが、前記デバイスの制御を変更するデバイス制御変更ステップとを備え、
前記全体省電力制御ステップは、前記省電力制御ステップにより、対応する仮想計算機を通常状態から省電力状態に遷移させる遷移要求を受け取った場合、前記仮想計算機の状態と前記デバイスの制御に関する情報とを含む仮想計算機情報を参照し、前記遷移要求を出力した仮想計算機を含む２以上の所定個数の仮想計算機が省電力状態にあるか否かを判定し、
前記デバイス制御変更ステップは、前記全体省電力制御ステップにより所定個数の仮想計算機が省電力状態にあると判定された場合、省電力状態にある仮想計算機に対応するデバイスのうち、稼働させる１つのデバイスを稼働デバイス、残りのデバイスを縮退デバイスとして決定し、前記稼働デバイスに前記縮退デバイスの制御を縮退させるデバイス共有制御方法。
【請求項１４】
複数の仮想計算機と、各仮想計算機に対応して複数設けられ、対応する仮想計算機により占有される複数のデバイスと、前記仮想計算機を制御するハイパバイザとを備える仮想計算機システムとしてコンピュータを機能させるプログラムであって、
前記仮想計算機を、
対応するデバイスを制御するデバイス制御部と、
対応する仮想計算機の省電力制御を行う省電力制御部として機能させ、
前記ハイパバイザを、
各仮想計算機の状態を管理する全体省電力制御部と、
前記仮想計算機の状態と前記デバイスの制御に関する情報とを含む仮想計算機情報を記憶する仮想計算機情報記憶部と、
前記デバイスの制御を変更するデバイス制御変更部として機能させ、
前記全体省電力制御部は、前記省電力制御部から、対応する仮想計算機を通常状態から省電力状態に遷移させる遷移要求を受け取った場合、前記仮想計算機情報を参照し、前記遷移要求を出力した仮想計算機を含む２以上の所定個数の仮想計算機が省電力状態にあるか否かを判定し、
前記デバイス制御変更部は、前記全体省電力制御部により所定個数の仮想計算機が省電力状態にあると判定された場合、省電力状態にある仮想計算機に対応するデバイスのうち、稼働させる１つのデバイスを稼働デバイス、残りのデバイスを縮退デバイスとして決定し、前記稼働デバイスに前記縮退デバイスの制御を縮退させるプログラム。
【請求項１５】
複数の仮想計算機と、各仮想計算機に対応して複数設けられ、対応する仮想計算機により占有される複数のデバイスと、前記仮想計算機を制御するハイパバイザとを備える仮想計算機システムの集積回路であって、
前記仮想計算機は、
対応するデバイスを制御するデバイス制御部と、
対応する仮想計算機の省電力制御を行う省電力制御部とを備え、
前記ハイパバイザは、
各仮想計算機の状態を管理する全体省電力制御部と、
前記仮想計算機の状態と前記デバイスの制御に関する情報とを含む仮想計算機情報を記憶する仮想計算機情報記憶部と、
前記デバイスの制御を変更するデバイス制御変更部とを備え、
前記全体省電力制御部は、前記省電力制御部から、対応する仮想計算機を通常状態から省電力状態に遷移させる遷移要求を受け取った場合、前記仮想計算機情報を参照し、前記遷移要求を出力した仮想計算機を含む２以上の所定個数の仮想計算機が省電力状態にあるか否かを判定し、
前記デバイス制御変更部は、前記全体省電力制御部により所定個数の仮想計算機が省電力状態にあると判定された場合、省電力状態にある仮想計算機に対応するデバイスのうち、稼働させる１つのデバイスを稼働デバイス、残りのデバイスを縮退デバイスとして決定し、前記稼働デバイスに前記縮退デバイスの制御を縮退させる集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想計算機と、各仮想計算機により占有されるデバイスと、ハイパバイザとを備える仮想計算機システムにおいて、各仮想計算機を省電力状態に遷移させる際に、ハイパバイザにデバイスを制御させる技術に関するものである。
【背景技術】
【０００２】
近年、一つの計算機を論理的に分割し、仮想的に複数の独立した仮想計算機として動作させることを可能とする仮想化技術が普及している。仮想計算機の制御技術は、これまで汎用大型計算機において主に活用されてきたが、近年では、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）のアーキテクチャをベースにした安価な計算機を用いるデータセンターなどを中心に、物理的な計算機の台数削減、消費電力の低減、及び管理の簡略化といった運用コストの削減を目的としても活用されている。【０００３】
仮想化技術を活用した仮想計算機システムにおけるデバイスの制御には、大きく二つの方式がある。【０００４】
第一の方式は、仮想計算機がデバイスを専有して使用する方式である。以降、この第一の方式を専有方式と呼ぶ。専有方式では、仮想計算機がデバイスを専有して使用する。そのため、デバイスの制御時において、プロセッサは複数の仮想計算機によるデバイスの共有を考慮する必要が無く、一般的に仮想化に伴う性能の低下が小さい。一方、占有方式は、物理デバイスの数に応じて電力の消費量が増大するため、消費電力が後述する第二の方式よりも大きい。【０００５】
第二の方式は、複数の仮想計算機がデバイスを共有して使用する方式である。以降、この第二の方式を共有方式と呼ぶ。共有方式では、仮想計算機がデバイスを共有して使用する。そのため、デバイスの制御時において、プロセッサは複数の仮想計算機によるデバイスの共有を考慮する必要があり、一般的に仮想化に伴う性能の低下が大きい。一方で、稼働する物理デバイスの数が減少するため、消費電力は第一の方式よりも小さい。【０００６】
このように、二つの方式は性能と消費電力とがトレードオフの関係にある。そのため、性能と消費電力とを両立したデバイスの制御技術が求められている。【０００７】
ここで、デバイス制御に関連した既存技術として、特許文献１〜３を挙げ、これらの技術に関して概略を説明する。【０００８】
特許文献１には、仮想デバイスの使用状況の変化に応じて、デバイスの制御方式を専有方式から共有方式へ、あるいは共有方式から専有方式へと切り替えることで、性能の低下を回避しつつ、デバイスを共有する方法が記載されている。【０００９】
特許文献２では、仮想計算機に割り当てられた物理資源を管理する管理オペレーティングシステムによって、仮想計算機の物理資源の使用状況を管理することで、複数の仮想計算機に共用される未稼働の物理資源の省電力制御を可能とし、消費電力を削減する方法が記載されている。【００１０】
特許文献３では、複数のＯＳのそれぞれに対応するハードウェア資源を制御する情報処理装置において、ＯＳがデバイスに対して電源オンの状態制御命令を発行すると、デバイスを直接Ｉ／Ｏ方式で入出力制御を行い、ＯＳがデバイスに対して電源オフの状態制御命令を発行すると、デバイスをエミュレーション方式で入出力制御を行うことが記載されている。【００１１】
しかしながら、特許文献１、３に記載の方法では、デバイスを省電力制御する手段が無いため、デバイスの消費電力を削減することができないという課題がある。また、特許文献２に記載の方法では、未稼働のデバイスを省電力化する手段はあるが、デバイスの制御方式を切り替える手段が無いため、複数の仮想計算機でデバイスを共有制御した場合、性能が低下するという課題がある。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００８−１４６５６６号公報
【特許文献２】特開２００６−１１３７６７号公報
【特許文献３】特開２００９−２２３７９３号公報
【発明の概要】
【００１３】
本発明の目的は、デバイスの共有による性能の低下を回避すると同時に、電力消費量を削減する仮想計算機システム等を提供することを目的とする。
【００１４】
本発明の一局面による仮想計算機システムは、複数の仮想計算機と、各仮想計算機に対応して複数設けられ、対応する仮想計算機により占有される複数のデバイスと、前記仮想計算機を制御するハイパバイザとを備える仮想計算機システムであって、前記仮想計算機は、対応するデバイスを制御するデバイス制御部と、対応する仮想計算機の省電力制御を行う省電力制御部とを備え、前記ハイパバイザは、各仮想計算機の状態を管理する全体省電力制御部と、前記仮想計算機の状態と前記デバイスの制御に関する情報とを含む仮想計算機情報を記憶する仮想計算機情報記憶部と、前記デバイスの制御を変更するデバイス制御変更部とを備え、前記全体省電力制御部は、前記省電力制御部から、対応する仮想計算機を通常状態から省電力状態に遷移させる遷移要求を受け取った場合、前記仮想計算機情報を参照し、前記遷移要求を出力した仮想計算機を含む２以上の所定個数の仮想計算機が省電力状態にあるか否かを判定し、前記デバイス制御変更部は、前記全体省電力制御部により所定個数の仮想計算機が省電力状態にあると判定された場合、省電力状態にある仮想計算機に対応するデバイスのうち、稼働させる１つのデバイスを稼働デバイス、残りのデバイスを縮退デバイスとして決定し、前記稼働デバイスに前記縮退デバイスの制御を縮退させる。
【００１５】
また、本発明の別の一局面によるデバイス共有制御方法、プログラム、及び集積回路は、上記の仮想計算機システムの特徴を備えている。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態１における仮想計算機システムの構成を示すブロック図である。
【図２】本発明の実施の形態１における仮想計算機情報記憶部が備える仮想計算機情報テーブルの一例を示す図である。
【図３】本発明の実施の形態１における仮想計算機システムが通常状態から省電力状態へ遷移する際の動作を説明するためのフローチャートである。
【図４】本発明の実施の形態１における仮想計算機システムが省電力状態から通常状態へ復帰する際の動作を説明するためのフローチャートである。
【図５】本発明の実施の形態３における仮想計算機テーブルの一例を示した図である。
【図６】（Ａ）、（Ｂ）は、実施の形態２における仮想計算機システムの動作の一例の説明図であり、（Ａ）は従来の構成を踏襲した場合を示し、（Ｂ）は実施の形態２の場合を示している。
【図７】実施の形態３による仮想計算機システムの動作の一例を示す説明図である。
【発明を実施するための形態】
【００１７】
以下本発明の実施の形態について、図面を参照しながら説明する。
【００１８】
（実施の形態１）
図１は、本発明の実施の形態１における仮想計算機システムの構成を示すブロック図である。本発明の実施の形態１における仮想計算機システムは、図１に示すように、複数（Ｎ個）の仮想計算機ＡＡ０１−１〜ＡＡ０１−Ｎ（Ｎは２以上の整数）と、Ｎ個の仮想計算機ＡＡ０１−１〜ＡＡ０１−Ｎに対応して設けられたデバイスＡＡ０８−１〜ＡＡ０８−Ｎと、仮想計算機ＡＡ０１−１〜ＡＡ０１−Ｎを制御するハイパバイザＡＡ０４とを備えている。
【００１９】
ここで、仮想計算機ＡＡ０１−１〜ＡＡ０１−Ｎ及びデバイスＡＡ０８−１〜ＡＡ０８−Ｎを区別しない場合、仮想計算機に対して“ＡＡ０１”、デバイスに対して“ＡＡ０８”の符号を付す。
【００２０】
なお、仮想計算機ＡＡ０１は、省電力状態以外の状態、すなわち、通常状態にある場合、対応するデバイスＡＡ０８を専有して制御する。
【００２１】
仮想計算機ＡＡ０１−１〜ＡＡ０１−Ｎは、それぞれ、仮想計算機ＡＡ０１−１〜ＡＡ０１−Ｎの省電力制御を行う省電力制御部ＡＡ０２−１〜ＡＡ０２−Ｎと、デバイスＡＡ０８−１〜ＡＡ０８−Ｎを制御するデバイス制御部ＡＡ０３−１〜ＡＡ０３−Ｎとを備えている。以下、省電力制御部ＡＡ０２−１〜ＡＡ０２−Ｎ及びデバイス制御部ＡＡ０３−１〜ＡＡ０３−Ｎを区別しない場合、省電力制御部に対して“ＡＡ０２”の符号を付し、デバイス制御部に対して“ＡＡ０３”の符号を付す。
【００２２】
ここで、省電力制御とは、デバイスＡＡ０８の省電力状態への遷移と、デバイスＡＡ０８の省電力状態からの復帰とを制御することをいう。
【００２３】
省電力制御部ＡＡ０２は、仮想計算機ＡＡ０１が省電力状態に遷移する時、全体省電力制御部ＡＡ０６に対し、仮想計算機ＡＡ０１が通常状態から省電力状態に遷移することを示す遷移要求を出力する。また、省電力制御部ＡＡ０２は、仮想計算機ＡＡ０１が省電力状態から通常状態に復帰する時、全体省電力制御部ＡＡ０６から仮想計算機ＡＡ０１が省電力状態から通常状態に復帰することを示す復帰要求を受け取る。
【００２４】
なお、省電力制御部ＡＡ０２は、仮想計算機ＡＡ０１を通常状態から省電力状態に遷移させる場合、仮想計算機ＡＡ０１上で実行中の処理を停止させる、仮想計算機ＡＡ０１上で周期的に実行される処理を停止させる、又は専有するデバイスＡＡ０８を通常状態から省電力状態に遷移させるといった省電力処理を行う。なお、省電力制御部ＡＡ０２は、デバイスＡＡ０８を通常状態から省電力状態に遷移させる際、デバイス制御部ＡＡ０３に遷移要求を出力し、デバイス制御部ＡＡ０３にデバイスＡＡ０８を通常状態から省電力状態に変更させる。
【００２５】
デバイス制御部ＡＡ０３は、デバイスＡＡ０８が通常状態から省電力状態に遷移する場合、デバイスＡＡ０８へのクロックの供給を停止する、デバイスＡＡ０８への電源供給を遮断するといった省電力処理を行う。これらの省電力処理は、それぞれで任意のものを単独、もしくは組み合わせて使用して良い。また、これらの省電力処理は、仮想計算機ＡＡ０１及びデバイスＡＡ０８それぞれを省電力状態へ遷移させる際の処理の一例にすぎず、本発明はこれらの処理に限定されるものではない。
【００２６】
一方、省電力制御部ＡＡ０２は、仮想計算機ＡＡ０１を省電力状態から通常状態に復帰させる場合、仮想計算機ＡＡ０１上で停止中の処理や周期的に実行される停止中の処理を再開する、仮想計算機ＡＡ０１が専有するデバイスＡＡ０８を省電力状態から通常状態に復帰させるといった復帰処理を行う。なお、省電力制御部ＡＡ０２は、デバイスＡＡ０８を省電力状態から通常状態に復帰させる場合、デバイス制御部ＡＡ０３に復帰要求を出力し、デバイス制御部ＡＡ０３にデバイスＡＡ０８を省電力状態から通常状態に復帰させればよい。
【００２７】
デバイス制御部ＡＡ０３は、デバイスＡＡ０８を省電力状態から通常状態に復帰させる場合、例えばデバイスＡＡ０８へのクロックの供給を再開する、デバイスＡＡ０８への電源供給を再開する、といった復帰処理を行う。つまり、省電力制御部ＡＡ０２は、上記の省電力処理に対応する復帰処理を行えば良い。
【００２８】
ハイパバイザＡＡ０４は、仮想計算機ＡＡ０１の状態及びデバイスＡＡ０８の制御に関する情報を含む仮想計算機情報テーブル（仮想計算機情報の一例）を記憶する仮想計算機情報記憶部ＡＡ０５と、仮想計算機システム全体の省電力制御を行う全体省電力制御部ＡＡ０６と、デバイスＡＡ０８の制御を変更するデバイス制御変更部ＡＡ０７とを備える。
【００２９】
デバイスＡＡ０８の制御の変更は、デバイスＡＡ０８の種類に依存するが、例えばデバイスＡＡ０８がタイマの場合、タイマの動作を停止させる、タイマの動作を再開させる、といった制御の変更が適用される。
【００３０】
図２は、本発明の実施の形態１における仮想計算機情報記憶部ＡＡ０５が記憶する仮想計算機情報テーブルＢＢ０１の一例を示す図である。
【００３１】
図２に示すように、仮想計算機情報テーブルＢＢ０１は、仮想計算機ＡＡ０１が省電力状態にあるか否かを示す仮想計算機状態情報と、デバイスＡＡ０８の制御内容を示すデバイス制御情報と、デバイスＡＡ０８の制御を変更したか否かを示すデバイス制御変更情報とを備える。ここで、仮想計算機状態情報が上記の仮想計算機ＡＡ０１の状態を示し、デバイス制御情報とデバイス制御変更情報とが上記のデバイスＡＡ０８の制御に関する情報を示す。
【００３２】
図２は、デバイスＡＡ０８としてタイマを採用した場合の仮想計算機情報テーブルＢＢ０１である。図２において仮想計算機ＡＡ０１−１の列を参照すると、“仮想計算機状態情報”が“省電力状態”、“デバイス制御情報”が“３秒後にタイムアウト”、“デバイス制御変更情報”が“制御変更あり”となっている。そのため、仮想計算機ＡＡ０１−１は省電力状態にあること、デバイスＡＡ０８−１が３秒後にタイムアウトして仮想計算機ＡＡ０１−１を通常状態に復帰させるように制御されていたこと、及びデバイスＡＡ０８−１の３秒後にタイムアウトする制御が変更されたことが表されている。
【００３３】
一方、仮想計算機ＡＡ０１−２の列を参照すると、“仮想計算機状態情報”が“省電力状態”、“デバイス制御情報”が“２秒後にタイムアウト”、“デバイス制御変更情報”が“制御変更なし”となっている。そのため、仮想計算機ＡＡ０１−２は省電力状態にあること、デバイスＡＡ０８−２が２秒後にタイムアウトして仮想計算機ＡＡ０１−２を通常状態に復帰させること、及びデバイスＡＡ０８−２の２秒後にタイムアウトする制御が変更されていないことが表されている。
【００３４】
図１に戻り、全体省電力制御部ＡＡ０６は、省電力制御部ＡＡ０２から、対応する仮想計算機ＡＡ０１を通常状態から省電力状態に遷移させる遷移要求を受け取った場合、仮想計算機情報テーブルＢＢ０１を参照し、全ての仮想計算機ＡＡ０１が省電力状態にあるか否かを判定する。
【００３５】
デバイス制御変更部ＡＡ０７は、全体省電力制御部ＡＡ０６により全ての仮想計算機ＡＡ０１が省電力状態にあると判定された場合、全てのデバイスＡＡ０８の中から、稼働させる１つのデバイスを稼働デバイス、残りのデバイスを縮退デバイスとして決定し、稼働デバイスに縮退デバイスの制御を縮退させる。
【００３６】
デバイスＡＡ０８は、例えばタイマにより構成され、対応する仮想計算機ＡＡ０１が省電力状態になった場合、対応する仮想計算機ＡＡ０１が通常状態に復帰するまでのタイムアウト時間を計時する。なお、デバイスＡＡ０８は、レジスタを備え、計時動作を開始するとレジスタに随時計時時間を書き込む。
【００３７】
図３は、本発明の実施の形態１における仮想計算機システムが通常状態から省電力状態へ遷移する際の動作を説明するためのフローチャートである。以下、デバイスＡＡ０８として、デバイスＡＡ０８−１，ＡＡ０８−２，ＡＡ０８−Ｎが存在するものとして説明する。
【００３８】
まず、全体省電力制御部ＡＡ０６は、ある仮想計算機ＡＡ０１の省電力制御部ＡＡ０２から、対応する仮想計算機ＡＡ０１を通常状態から省電力状態に遷移させる遷移要求を受け取る（ステップＣＣ０１）。ここで、対応する仮想計算機ＡＡ０１とは、例えば省電力制御部ＡＡ０２−１であれば、省電力制御部ＡＡ０２−１は仮想計算機ＡＡ０１−１に属しているため仮想計算機ＡＡ０１−１が対応する仮想計算機ＡＡ０１となる。
【００３９】
次に、全体省電力制御部ＡＡ０６は、ステップＣＣ０１で受け取った省電力状態への遷移要求に基づき、仮想計算機情報テーブルＢＢ０１の“仮想計算機状態情報”を更新する（ステップＣＣ０２）。
【００４０】
例えば、全体省電力制御部ＡＡ０６が、省電力制御部ＡＡ０２−１から省電力状態への遷移要求を受け取った場合、仮想計算機情報テーブルＢＢ０１の仮想計算機ＡＡ０１−１の“仮想計算機状態情報”を“通常状態”から“省電力状態”に更新する。
【００４１】
次に、全体省電力制御部ＡＡ０６は、仮想計算機情報テーブルＢＢ０１の仮想計算機状態情報を参照し、仮想計算機ＡＡ０１の全てが省電力状態にあるか否かを判定する（ステップＣＣ０３）。
【００４２】
ここで、仮想計算機ＡＡ０１が全て省電力状態にある、すなわち仮想計算機ＡＡ０１−１，ＡＡ０１−２，ＡＡ０１−Ｎの全てが省電力状態にあると判定された場合（ステップＣＣ０３でＹＥＳ）、処理をステップＣＣ０４に進め、仮想計算機ＡＡ０１の全てが省電力状態ではない場合、すなわち、仮想計算機ＡＡ０１−１，ＡＡ０１−２，ＡＡ０１−Ｎの少なくともいずれか１つが通常状態にあると判定された場合（ステップＣＣ０３でＮＯ）、処理が終了される。
【００４３】
次に、デバイス制御変更部ＡＡ０７は、全てのデバイスＡＡ０８の制御情報を取得する（ステップＣＣ０４）。ここで、制御情報はデバイスＡＡ０８のレジスタに書き込まれているため、デバイス制御変更部ＡＡ０７は、このレジスタから制御情報を読み出す。
【００４４】
デバイスＡＡ０８がタイマの場合、デバイスＡＡ０８は、レジスタに現在の計時時間を制御情報として書き込んでいる。よって、デバイス制御変更部ＡＡ０７は、各デバイスＡＡ０８のレジスタから制御情報を読み出すことで、各仮想計算機ＡＡ０１が通常状態に復帰するまでのタイムアウト時間を認識することができる。
【００４５】
なお、レジスタから制御情報を読み出す方法はあくまで一例であり、本発明はこの方法に限定されるものではない。例えば、仮想計算機ＡＡ０１とハイパバイザＡＡ０４とにより共有される共有メモリを仮想計算機システムに更に設ける。そして、各デバイスＡＡ０８はこの共有メモリに制御情報を書き込む。そして、デバイス制御変更部ＡＡ０７は、この共有メモリに書き込まれた各デバイスＡＡ０８の制御情報を読み出すという方法を採用してもよい。
【００４６】
次に、デバイス制御変更部ＡＡ０７は、ステップＣＣ０４で取得したデバイスＡＡ０８の制御情報で、仮想計算機情報テーブルＢＢ０１のデバイス制御情報を更新する（ステップＣＣ０５）。本実施の形態では、デバイスＡＡ０８はタイマであるため、デバイス制御変更部ＡＡ０７は、対応する仮想計算機ＡＡ０１が通常状態に復帰するまでのタイムアウト時間を仮想計算機情報テーブルＢＢ０１に書き込む。
【００４７】
図２の例では、ステップＣＣ０４の処理により、デバイス制御変更部ＡＡ０７は、デバイスＡＡ０８−１，ＡＡ０８−２，ＡＡ０８−Ｎから、それぞれ、“３秒”、“２秒”、“８秒”という制御情報を取得した。そのため、図２の仮想計算機情報テーブルＢＢ０１では、仮想計算機ＡＡ０１−１，ＡＡ−０１−２，ＡＡ０１−Ｎの“デバイス制御情報”の欄に“３秒後にタイムアウト”、“２秒後にタイムアウト”、“８秒後にタイムアウト”が書き込まれている。
【００４８】
次に、デバイス制御変更部ＡＡ０７は、仮想計算機情報テーブルＢＢ０１を参照して、稼働中のデバイスＡＡ０８の制御が縮退可能か否かを判定する（ステップＣＣ０６）。
【００４９】
ここで、デバイス制御変更部ＡＡ０７は、例えばデバイスＡＡ０８の種類から、縮退可能なデバイスであるか否かを判定すればよい。具体的には、デバイス制御変更部ＡＡ０７は、各デバイスＡＡ０８に種類取得依頼を出力してデバイスＡＡ０８から種類を示す情報を取得する。そして、デバイス制御変更部ＡＡ０７は、全てのデバイスＡＡ０８の種類が同一であり、かつ、デバイスＡＡ０８の種類が予め定められた縮退可能なデバイスに該当する場合、縮退可能と判断すればよい。
【００５０】
この場合、デバイスＡＡ０８は、デバイス制御変更部ＡＡ０７から種類取得依頼を受け取ると、自身の種類を示す情報をデバイス制御変更部ＡＡ０７に出力する仕様に設計すればよい。種類を示す情報としては、例えば、“タイマ”や“ネットワークカード”等が該当する。そして、この例では、デバイスＡＡ０８としてタイマが採用されており、タイマは縮退可能であると予め定められている。したがって、デバイス制御変更部ＡＡ０７は、全てのデバイスＡＡ０８から種類を示す情報として“タイマ”が送信され、ステップＣＣ０６でＹＥＳと判定する。
【００５１】
なお、デバイス制御変更部ＡＡ０７にデバイスＡＡ０８の種類を示す情報を予め持たせておけば、ステップＣＣ０６の処理を設ける必要はない。例えば、全てのデバイスＡＡ０８がタイマであることをデバイス制御変更部ＡＡ０７に予め認識させておけば、タイマは縮退可能なデバイスであるため、ステップＣＣ０６は常にＹＥＳとなる。
【００５２】
しかしながら、仮想計算機システムを購入したユーザが、任意にデバイスを取り付けることも考えられる。この場合、デバイス制御変更部ＡＡ０７に予めデバイスの種類を認識させることができない。
【００５３】
そこで、ステップＣＣ０６の処理を設け、デバイス制御変更部ＡＡ０７にデバイスＡＡ０８の種類を認識させることで、仮想計算機システムに汎用性を持たせることができる。
【００５４】
デバイス制御変更部ＡＡ０７は、縮退可能と判断した場合（ステップＣＣ０６でＹＥＳ）、処理をステップＣＣ０７に進め、縮退可能でないと判断した場合（ステップＣＣ０６でＮＯ）、処理をステップＣＣ１１に進める。
【００５５】
次に、デバイス制御変更部ＡＡ０７は、全てのデバイスＡＡ０８の中から１つの稼働デバイスを決定し、残りのデバイスＡＡ０８を縮退デバイスとして決定する（ＣＣ０７）。
【００５６】
この例では、デバイスＡＡ０８がタイマであり、各仮想計算機ＡＡ０１に対応する各タイマのタイムアウト時間が仮想計算機情報テーブルＢＢ０１に記憶されている。
【００５７】
したがって、デバイス制御変更部ＡＡ０７は、仮想計算機情報テーブルＢＢ０１を参照し、タイムアウト時間が最小のデバイスＡＡ０８を稼働デバイスとして決定し、残りのデバイスＡＡ０８を縮退デバイスとして決定する。
【００５８】
デバイスＡＡ０８がタイマである場合、タイムアウト時間が最小のタイマ以外のタイマを停止させたとしても、タイムアウト時間が最小のタイマのタイムアウト時間と残りのタイマのタイムアウト時間とから、縮退の解除時に、残りのタイマのタイムアウト時間を特定することができる。そして、タイムアウト時間が最小のタイマがタイムアウトした時に、残りのタイマの計時動作を再開させ、再開させたタイマを、特定したタイムアウト時間まで計時させれば残りのタイマに対応する仮想計算機ＡＡ０１を当初のタイムアウト時間で通常状態に復帰させることができる。
【００５９】
そこで、本実施の形態では、デバイス制御変更部ＡＡ０７は、タイムアウト時間が最小のタイマを稼働デバイス、残りのタイマを縮退デバイスとして決定している。
【００６０】
以下、図２を用いてステップＣＣ０７の処理を具体的に説明する。仮想計算機情報テーブルＢＢ０１において、タイムアウト時間が最小のタイマは、仮想計算機ＡＡ０１−２のタイマ、すなわち、デバイスＡＡ０８−２である。したがって、デバイス制御変更部ＡＡ０７は、デバイスＡＡ０８−２を稼働デバイス、デバイスＡＡ０８−２以外のデバイスＡＡ０８−１，ＡＡ０８−Ｎを縮退デバイスとして決定する。
【００６１】
そして、デバイス制御変更部ＡＡ０７は、縮退デバイスを停止させて省電力状態に遷移させ、稼働デバイスに縮退デバイスの制御を縮退させる。つまり、デバイス制御変更部ＡＡ０７は、デバイスＡＡ０８−２のみに計時動作を行わせ、デバイスＡＡ０８−１，ＡＡ０８−Ｎの計時動作を停止させる。
【００６２】
これにより、全てのデバイスＡＡ０８に計時動作を行わせる構成に比べて、デバイスＡＡ０８−１，ＡＡ０３−Ｎの稼働時間が短くなり、省電力化を図ることができる。
【００６３】
なお、ここでは、デバイスＡＡ０８としてタイマを採用したが、本発明はタイマに限定されるものではない。すなわち、稼働デバイスに縮退デバイスの制御を縮退させたとしても制御の整合性を保つことが可能なデバイスであれば、どのようなデバイスであっても良い。例えば周期的に駆動するデバイスや、実施の形態３で示すネットワークインターフェースカード（ＮＩＣ）を採用することも可能である。
【００６４】
次に、デバイス制御変更部ＡＡ０７は、仮想計算機情報テーブルＢＢ０１の“デバイス制御変更情報”を更新する（ステップＣＣ０８）。図２に示す仮想計算機情報テーブルＢＢ０１の例では、デバイスＡＡ０８−２のタイムアウト時間が最小であるため、デバイスＡＡ０８−２が稼働デバイスとして決定され、残りのデバイスＡＡ０８−１，ＡＡ０８−Ｎが縮退デバイスとして決定されている。そのため、デバイス制御変更部ＡＡ０７は、仮想計算機ＡＡ０１−２の“デバイス制御変更情報”を“制御変更なし”と設定し、仮想計算機ＡＡ０１−１，ＡＡ０１−Ｎの“デバイス制御変更情報”を“制御変更あり”と設定する。
【００６５】
次に、デバイス制御変更部ＡＡ０７は、仮想計算機情報テーブルＢＢ０１の“デバイス制御変更情報”を参照し、“制御変更あり”と設定されている仮想計算機ＡＡ０１のデバイスＡＡ０８の制御を変更する（ステップＣＣ０９）。図２の例では、仮想計算機ＡＡ０１−１，ＡＡ０１−Ｎの“デバイス制御変更情報”が“制御変更あり”と設定されている。したがって、デバイス制御変更部ＡＡ０７は、デバイスＡＡ０８−１，ＡＡ０８−Ｎの制御を停止させ、デバイスＡＡ０８−２のみ稼働させる。
【００６６】
次に、全体省電力制御部ＡＡ０６は、縮退デバイスの状態を省電力状態に設定する（ステップＣＣ１０）。図２の例では、“デバイス制御変更情報”が“制御変更あり”となっている仮想計算機ＡＡ０１−１，ＡＡ０１−ＮのデバイスＡＡ０８−１，ＡＡ０８−Ｎの状態が省電力状態に設定され、“デバイス制御変更情報”が“制御変更なし”となっている仮想計算機ＡＡ０１−２のデバイスＡＡ０８−２の状態が通常状態に設定される。
【００６７】
次に、全体省電力制御部ＡＡ０６は、全ての仮想計算機ＡＡ０１が省電力状態になったため、仮想計算機システム全体を省電力状態に遷移させるための処理を行い、仮想計算機システム全体の状態を省電力状態に設定する（ステップＣＣ１１）。
【００６８】
図４は、本発明の実施の形態１における仮想計算機システムが省電力状態から通常状態へ復帰する際の動作を説明するためのフローチャートである。
【００６９】
まず、全体省電力制御部ＡＡ０６は、割り込み等のイベントが発生すると、仮想計算機システム全体を通常状態に復帰させるための処理を行い、仮想計算機システム全体の状態を省電力状態から通常状態に設定する（ステップＤＤ０１）。ここで、割り込みとしては、例えば、稼働デバイスがタイムアウトしたときに発生するタイムアウト割り込みが挙げられる。
【００７０】
次に、全体省電力制御部ＡＡ０６は、仮想計算機情報テーブルＢＢ０１を参照し、縮退デバイスがあるか否かを判定する（ステップＤＤ０２）。図２に示す仮想計算機情報テーブルＢＢ０１の例では、仮想計算機ＡＡ０１−１，ＡＡ０１−Ｎの“デバイス制御変更情報”が“制御変更あり”となっているため、全体省電力制御部ＡＡ０６は、縮退デバイスがあると判定する。ここで、全体省電力制御部ＡＡ０６は、縮退デバイスがあると判定した場合（ステップＤＤ０２でＹＥＳ）、処理をステップＤＤ０３に進め、縮退デバイスが無いと判定した場合（ステップＤＤ０２でＮＯ）、処理をステップＤＤ０７に進める。
【００７１】
次に、全体省電力制御部ＡＡ０６は、縮退デバイスの状態を通常状態に設定する（ステップＤＤ０３）。
【００７２】
図２の例では、仮想計算機ＡＡ０１−１，ＡＡ０１−ＮのデバイスＡＡ０８−１，ＡＡ０８−Ｎの“デバイス制御変更情報”が“制御変更あり”となっているため、全体省電力制御部ＡＡ０６は、これらのデバイスＡＡ０８の状態を省電力状態から通常状態に設定する。
【００７３】
次に、デバイス制御変更部ＡＡ０７は、仮想計算機情報テーブルＢＢ０１の情報に基づき、縮退デバイスの制御を変更前に戻す（ステップＤＤ０４）。例えば、デバイスＡＡ０８−２のタイムアウトを契機にタイムアウト割り込みが発生し、図４のフローチャートが開始されたとする。
【００７４】
この場合、仮想計算機情報テーブルＢＢ０１において、仮想計算機ＡＡ０１−２の“デバイス制御情報”からデバイスＡＡ０８−２のタイムアウト時間が２秒であることが分かる。したがって、デバイスＡＡ０８−１，ＡＡ０８−Ｎの動作を停止させてから、２秒が経過したことが分かる。また、仮想計算機情報テーブルＢＢ０１の“デバイス制御情報”から、デバイスＡＡ０８−１は、タイムアウト時間が動作停止時から３秒後、デバイスＡＡ０８−Ｎはタイムアウト時間が動作停止時から８秒後であることが分かる。
【００７５】
そのため、デバイスＡＡ０８−１を現時点から１秒後、デバイスＡＡ０８−Ｎを現時点から６秒後にタイムアウトさせれば、仮想計算機ＡＡ０１−１，ＡＡ０１−Ｎを当初のタイムアウト時間通りに復帰させることができる。
【００７６】
そこで、デバイス制御変更部ＡＡ０７は、デバイスＡＡ０８−１，ＡＡ０８−Ｎのタイムアウト時間からデバイスＡＡ０８−２のタイムアウト時間を差し引いた値である１秒後、６秒後にデバイスＡＡ０８−１，ＡＡ０８−ＮがタイムアウトするようにデバイスＡＡ０８−１，ＡＡ０８−Ｎの動作を再開させる。
【００７７】
これにより、デバイスＡＡ０８−１，ＡＡ０８−Ｎは現時点から１秒後、６秒後にタイムアウトし、仮想計算機ＡＡ０１−１，ＡＡ０１−Ｎを当初のタイムアウト時間通りに復帰させることができる。
【００７８】
なお、何らかの割り込みが発生して、デバイスＡＡ０８−２がタイムアウトする前に図４のフローチャートが実行されることもある。例えば、デバイスＡＡ０８−２のタイムアウト時間が経過する前に仮想計算機ＡＡ０１−２を復帰させる割り込みが発生し、図４のフローチャートが実行されることもある。
【００７９】
この場合、デバイス制御変更部ＡＡ０７は、稼働デバイスであるデバイスＡＡ０８−２のレジスタから制御情報を読み出す。例えば、この経過時間が１秒であったとする。
【００８０】
すると、デバイス制御変更部ＡＡ０７は、デバイスＡＡ０８−１，ＡＡ０８−Ｎのタイムアウト時間である３秒、８秒から取得した経過時間である１秒を差し引いた値である２秒後、７秒後にデバイスＡＡ０８−１，ＡＡ０８−ＮがタイムアウトするようにデバイスＡＡ０８−１，ＡＡ０８−Ｎの動作を再開させる。これにより、仮想計算機ＡＡ０１−１，ＡＡ０１−Ｎを当初のタイムアウト時間通りに復帰させることができる。
【００８１】
次に、デバイス制御変更部ＡＡ０７は、ステップＤＤ０４の処理に基づき、仮想計算機情報テーブルＢＢ０１の“デバイス制御変更情報”を更新する（ステップＤＤ０５）。デバイスＡＡ０８−２によるタイムアウト割り込みが発生して図４のフローチャートが開始された場合、デバイス制御変更部ＡＡ０７は、デバイスＡＡ０８−１，ＡＡ０８−Ｎの新たなタイムアウト時間を１秒、６秒と算出する。したがって、デバイス制御変更部ＡＡ０７は、デバイスＡＡ０８−１，ＡＡ０８−Ｎの“デバイス制御情報”を“１秒後にタイムアウト”、“６秒後にタイムアウト”と設定する。
【００８２】
次に、デバイス制御変更部ＡＡ０７は、仮想計算機情報テーブルＢＢ０１の“デバイス制御変更情報”を更新する（ステップＤＤ０６）。ここで、デバイス制御変更部ＡＡ０７は、縮退デバイスに対応する仮想計算機ＡＡ０１の“デバイス制御変更情報”を“制御変更あり”から“制御変更なし”に戻す。
【００８３】
次に、デバイス制御変更部ＡＡ０７は、仮想計算機システムが省電力状態から復帰した要因に基づき、省電力状態から復帰させる仮想計算機ＡＡ０１を特定し、仮想計算機情報テーブルＢＢ０１の“仮想計算機状態情報”を更新する（ステップＤＤ０７）。
【００８４】
デバイスＡＡ０８−２のタイムアウトに起因してタイムアウト割り込みが発生する場合、デバイスＡＡ０８−２は、割り込み制御用のレジスタに自身の識別番号や割り込み要因を書き込む。したがって、デバイス制御変更部ＡＡ０７は、この割り込み制御用のレジスタを参照することで、デバイスＡＡ０８−２からタイムアウト割り込みが発生したことを認識することができる。これにより、デバイス制御変更部ＡＡ０７は、省電力状態から通常状態に復帰させる仮想計算機ＡＡ０１−２を認識することができる。そして、デバイス制御変更部ＡＡ０７は、仮想計算機ＡＡ０１−２の“仮想計算機状態情報”を“省電力状態”から“通常状態”に更新する。
【００８５】
次に、全体省電力制御部ＡＡ０６は、ステップＤＤ０７で“仮想計算機状態情報”が“省電力状態”から“通常状態”に変更された仮想計算機ＡＡ０１−２の省電力制御部ＡＡ０２に対して、省電力状態からの通常状態に復帰させるための復帰要求を出力する（ステップＤＤ０８）。
【００８６】
このように、実施の形態１の仮想計算機システムによれば、通常状態にある仮想計算機ＡＡ０１は、対応するデバイスＡＡ０８を占有するため、性能の低下を抑制することができる。一方、全ての仮想計算機が省電力状態に遷移すると、稼動デバイスに縮退デバイスの制御が縮退されるため、消費電力を削減することができる。
【００８７】
なお、上記説明では、デバイス制御変更部ＡＡ０７は、全ての仮想計算機ＡＡ０１が省電力状態になったときに、デバイスＡＡ０８を縮退させていたが、本発明はこれに限定されない。
【００８８】
すなわち、全体省電力制御部ＡＡ０６は、ある仮想計算機ＡＡ０１から遷移要求を受け取った場合、遷移要求を出力した仮想計算機ＡＡ０１を含む２以上の所定個数の仮想計算機ＡＡ０１が省電力状態にあるか否かを判定する。そして、デバイス制御変更部ＡＡ０７は、全体省電力制御部ＡＡ０６により所定個数の仮想計算機ＡＡ０１が省電力状態にあると判定された場合、省電力状態にある仮想計算機ＡＡ０１に対応するデバイスのうち、１つのデバイスを稼働デバイス、残りのデバイスを縮退デバイスとして決定し、稼働デバイスに縮退デバイスの制御を縮退させてもよい。なお、所定個数としては、２以上であればどのような数を採用してもよく、例えば、目標とする省電力量に応じた値を適宜採用すればよい。
【００８９】
この場合、図３のステップＣＣ０３において、所定個数の仮想計算機ＡＡ０１が省電力状態の場合、ＹＥＳと判定され、全ての仮想計算機ＡＡ０１が通常状態の場合、ＮＯと判定される。
【００９０】
そして、ステップＣＣ０７において、省電力状態にある仮想計算機ＡＡ０１に対応するデバイスＡＡ０８のうち、タイムアウト時間が最小のデバイスＡＡ０８が稼働デバイスとして決定され、残りのデバイスが縮退デバイスとして決定される。
【００９１】
仮想計算機システムの使用態様によっては、殆ど省電力状態にならない仮想計算機ＡＡ０１と頻繁に省電力状態になる仮想計算機ＡＡ０１とが混在する場合がある。
【００９２】
この場合、全ての仮想計算機ＡＡ０１が省電力状態になることはほとんど無くなってしまい、デバイスＡＡ０８を縮退させる構成を採用した意味が事実上無くなってしまう。
【００９３】
そこで、殆ど省電力状態にならない仮想計算機ＡＡ０１と頻繁に省電力状態になる仮想計算機ＡＡ０１とが混在するような場合、全ての仮想計算機ＡＡ０１が省電力状態にならなくても所定個数の仮想計算機が省電力状態になれば、デバイスＡＡ０８を縮退させる構成を採用することが好ましい。
【００９４】
一方、全ての仮想計算機ＡＡ０１が頻繁に省電力状態になるような場合、所定個数の仮想計算機ＡＡ０１が省電力状態になったときに、デバイスＡＡ０８を縮退させる構成を採用すると、縮退デバイスや稼働デバイスの管理が煩雑化する虞がある。よって、全ての仮想計算機ＡＡ０１が頻繁に省電力状態になるような場合は、全ての仮想計算機ＡＡ０１が省電力状態である場合にデバイスＡＡ０８を縮退させる構成を採用することが好ましい。
【００９５】
また、デバイスＡＡ０８−１〜ＡＡ０８−Ｎを任意の個数でグループ分けし、グループ単位で縮退する処理を実行するか否かの処理を実行してもよい。例えば、デバイスＡＡ０８−１〜ＡＡ０８−ＮをデバイスＡＡ０８−１〜ＡＡ０８−３のグループＧ１と、デバイスＡＡ０８−４〜ＡＡ０８−ＮのグループＧ２とに分ける。この場合、グループＧ１の仮想計算機ＡＡ０１−１〜ＡＡ０１−３が全て省電力状態になったことを条件に縮退する処理を行えばよい。また、グループＧ２の仮想計算機ＡＡ０１−４〜ＡＡ０８−Ｎの全てが省電力状態になったことを条件に縮退する処理を行えばよい。
【００９６】
また、グループＧ１の仮想計算機ＡＡ０１−１〜ＡＡ０１−３のいずれか１つが通常状態に復帰した場合、グループＧ１につき縮退を解除し、グループＧ２の仮想計算機ＡＡ０１−４〜ＡＡ０１−Ｎのいずれか１つが通常状態に復帰した場合、グループＧ２につき縮退を解除してもよい。
【００９７】
（実施の形態２）
実施の形態２による仮想計算機システムは、実施の形態１の仮想計算機システムにおいて、縮退デバイスの制御を稼働デバイスに縮退させる際、稼働デバイスの計時動作を低精度で行わせることを特徴としている。なお、本実施の形態において、実施の形態１と同じものは説明を省略し、図面も実施の形態１の図面を適宜用いる。
【００９８】
実施の形態２において、デバイスＡＡ０８としてタイマを採用する。但し、本実施の形態のタイマは、所定の第１精度で計時動作を行う第１動作モードと、第１精度よりも低精度で計時動作を行う第２動作モードとが切り替え可能なタイマである。
【００９９】
低精度とは、例えば計時の分解能が高精度の場合に比べて低いことを示す。そのため、タイマを第２動作モードに設定した場合、第１動作モードに設定した場合に比べて、タイマの消費電力は低くなる。
【０１００】
例えば、タッチパネルにおいてユーザからの操作を受け付ける際の待ち時間を計時するような場合、高精度な計時が要求されるため、タイマを第１動作モードに設定することが好ましい。
【０１０１】
実施の形態２による仮想計算機システムと実施の形態１による仮想計算機システムとの動作の違いは下記のようになる。まず、デバイス制御部ＡＡ０３は、対応するデバイスＡＡ０８を予め第１動作モードに設定し、対応する仮想計算機ＡＡ０１が省電力状態になっても対応するデバイスＡＡ０８の動作モードを第動作１モードから第２動作モードに切り替えないようにする。
【０１０２】
そして、図３のステップＣＣ０９において、実施の形態１では、デバイス制御変更部ＡＡ０７は、縮退デバイスであるデバイスＡＡ０８−１，ＡＡ０８−Ｎの動作を停止させ、稼働デバイスであるデバイスＡＡ０８−２のみ稼働させていた。実施の形態２では、ステップＣＣ０９において、デバイス制御変更部ＡＡ０７は、縮退デバイスについては実施の形態１と同様に動作を停止させるが、稼働デバイスであるデバイスＡＡ０８−２については動作モードを第１動作モードから第２動作モードに切り替えて計時動作を行わせる。
【０１０３】
また、図４に示すステップＤＤ０４において、実施の形態２では、デバイス制御変更部ＡＡ０７は、稼働デバイスであるデバイスＡＡ０８−０２のみ、動作モードを第２動作モードから第１動作モードに切り替え、かつ、縮退デバイスであるデバイスＡＡ０８−１，ＡＡ０８−Ｎについては第１動作モードを維持した状態で計時動作を再開させる。
【０１０４】
一般に、省電力状態では、精度の高い計時動作は必要ないため、仮想計算機ＡＡ０１が省電力状態になると、対応するタイマの動作モードが低精度の第２動作モードに切り替えられる。これにより、消費電力の削減が可能である。
【０１０５】
しかしながら、仮想計算機ＡＡ０１が省電力状態へ遷移する都度、仮想計算機ＡＡ０１に対応するタイマの動作モードを切り替えた場合、仮想計算機ＡＡ０１の数だけ動作モードの切り替えが発生してしまう。
【０１０６】
そこで、実施の形態２では、各仮想計算機ＡＡ０１が省電力状態へ遷移する際には、タイマの動作モードを切り替えず、縮退が開始される際に、稼働デバイスのみ動作モードを第１動作モードから第２動作モードに切り替え、縮退が終了される際には稼動デバイスのみの動作モードを第２動作モードから第１動作モードに切り替える。これにより、デバイスＡＡ０８の動作モードを切り替える回数が削減され、動作モードの切り替えによって生じるオーバーヘッドを軽減することができる。
【０１０７】
図６（Ａ）、（Ｂ）は、実施の形態２における仮想計算機システムの動作の一例の説明図であり、（Ａ）は従来の構成を踏襲した場合を示し、（Ｂ）は実施の形態２の場合を示している。なお、図６では、デバイスＡＡ０８として、デバイスＡＡ０８−１，ＡＡ０８−２，ＡＡ０８−Ｎの３個のデバイスが存在するものとする。
【０１０８】
図６（Ａ）では、従来の構成が踏襲されているため、仮想計算機ＡＡ０１が通常状態から省電力状態になると対応するデバイスＡＡ０８が第１動作モードから第２動作モードに切り替えられ、仮想計算機ＡＡ０１が省電力状態から通常状態になると対応するデバイスＡＡ０８が第２動作モードから第１モードに切り替えられる。
【０１０９】
具体的には、時刻Ｔ１，Ｔ２にて、仮想計算機ＡＡ０１−１，ＡＡ０１−Ｎが省電力状態になったため、デバイスＡＡ０８−１，ＡＡ０８−Ｎが第１動作モードＭ１から第２動作モードＭ２に切り替えられる。
【０１１０】
時刻Ｔ３にて、仮想計算機ＡＡ０１−２が省電力状態になったため、デバイスＡＡ０８−２が第１動作モードＭ１から第２動作モードＭ２に切り替えられる。
【０１１１】
また、時刻Ｔ３にて、全ての仮想計算機ＡＡ０１が省電力状態になったため、タイムアウト時間が最小のデバイスＡＡ０８−２が稼働デバイス、デバイスＡＡ０８−１，ＡＡ０８−Ｎが縮退デバイスとして決定され、稼働デバイスに縮退デバイスの制御が縮退される。これにより、縮退期間が開始される。縮退期間では稼働デバイスであるデバイスＡＡ０８−２のみが第２動作モードＭ２で計時動作を行う。
【０１１２】
時刻Ｔ４にて、デバイスＡＡ０８−２からタイムアウト割り込みが発生して仮想計算機ＡＡ０１−２が省電力状態から通常状態に復帰したため、デバイスＡＡ０８−２が第２動作モードＭ２から第１動作モードＭ１に切り替えられ、縮退期間が終了される。同時に、デバイスＡＡ０８−１，ＡＡ０８−Ｎの計時動作が再開されるが、仮想計算機ＡＡ０１−１，ＡＡ０１−Ｎは省電力状態であるため、第２動作モードＭ２で計時動作が再開される。
【０１１３】
時刻Ｔ５，Ｔ６にて、仮想計算機ＡＡ０１−１，ＡＡ０１−Ｎが省電力状態から通常状態に復帰したため、デバイスＡＡ０８−０１，ＡＡ０８−Ｎは第２動作モードＭ２から第１動作モードＭ１に切り替えられる。
【０１１４】
このように図６（Ａ）の例では、デバイスＡＡ０８−１，ＡＡ０８−２，ＡＡ０８−Ｎのそれぞれにおいて、第１動作モードＭ１から第２動作モードＭ２への切り替えが発生し、時刻Ｔ１，Ｔ２，Ｔ３，Ｔ４，Ｔ５，Ｔ６にて６回の動作モードの切り替えが発生していることが分かる。
【０１１５】
一方、図６（Ｂ）では、仮想計算機ＡＡ０１が省電力状態になっても対応するデバイスＡＡ０８を第１動作モードＭ１から第２動作モードＭ２に切り替えず、縮退期間が開始される際、稼働デバイスのみ第１動作モードＭ１から第２動作モードＭ２に動作モードを切り替えている。
【０１１６】
具体的には、時刻Ｔ１，Ｔ２にて、仮想計算機ＡＡ０１−１，ＡＡ０８−Ｎは通常状態から省電力状態になっているが、デバイスＡＡ０８−１，ＡＡ０８−Ｎは動作モードが第１動作モードＭ１から第２動作モードＭ２に切り替えられていない。
【０１１７】
時刻Ｔ３にて、仮想計算機ＡＡ０１−２が省電力状態になったため、デバイスＡＡ０８−２が稼働デバイス、デバイスＡＡ０８−１，ＡＡ０８−Ｎが縮退デバイスとして決定され、縮退期間が開始される。縮退期間では稼働デバイスであるデバイスＡＡ０８−２のみが第２動作モードＭ２で計時動作を行う。
【０１１８】
時刻Ｔ４にて、デバイスＡＡ０８−２からタイムアウト割り込みが発生して仮想計算機ＡＡ０１−２が省電力状態から通常状態に復帰したため、デバイスＡＡ０８−２が第２動作モードＭ２から第１動作モードＭ１に切り替えられ、縮退期間が終了する。同時に、デバイスＡＡ０８−１，ＡＡ０８−Ｎにより計時動作が再開されるが、このとき、デバイスＡＡ０８−１，ＡＡ０８−Ｎは、動作モードを切り替えず、第１動作モードＭ１で計時動作を再開する。
【０１１９】
時刻Ｔ５，Ｔ６にて、仮想計算機ＡＡ０１−１，ＡＡ０１−Ｎが省電力状態から通常状態に復帰するが、デバイスＡＡ０８−０１，ＡＡ０８−Ｎは、第２動作モードＭ２に切り替えられず、第１動作モードＭ１が維持される。したがって、図６（Ｂ）の例では、動作モードの切り替えが時刻Ｔ３，Ｔ４の２回しか発生していない。
【０１２０】
このように実施の形態２の構成を採用すれば、デバイスＡＡ０８の精度の切り替え回数を大幅に減少させることができる。一方、縮退期間では、稼働デバイスのみ計時動作を行い、稼働デバイスは第２動作モードで計時動作を行っているため、電力消費量の低下を図ることができる。
【０１２１】
なお、実施の形態２では、全ての仮想計算機ＡＡ０１が省電力状態になったときに、デバイスＡＡ０８を縮退させていたが、実施の形態１で述べたように、所定個数の仮想計算機ＡＡ０１が省電力状態になったとき、デバイスＡＡ０８を縮退させてもよい。
【０１２２】
（実施の形態３）
実施の形態３による仮想計算機システムは、デバイスＡＡ０８としてＮＩＣ（Ｎｅｔｗｏｒｋ  ｉｎｔｅｒｆａｃｅ  ｃａｒｄ：通信装置の一例）を採用したことを特徴とする。なお、本実施の形態において、実施の形態１，２と同じものは説明を省略する。
【０１２３】
ＮＩＣを備える計算機は、省電力状態に遷移する際、外部からの通信に応答するため、ＮＩＣを稼動したままの状態にすることがある。また、ＮＩＣは、ＩＰエイリアスと呼ばれる機能によって、単体のＮＩＣに複数のＩＰアドレスを割り当てることで、複数のＮＩＣの機能を単体のＮＩＣに割り当てることが可能である。
【０１２４】
実施の形態３の計算機システムでは、通常状態においては、各仮想計算機ＡＡ０１は対応するＮＩＣをそれぞれ専有する。そして、仮想計算機ＡＡ０１が個別に省電力状態へ遷移する際は、ＮＩＣを稼動させたままの状態とする。そして、全ての仮想計算機ＡＡ０１が省電力状態になると、稼働デバイスとなる１つのＮＩＣに、残りのＮＩＣのＩＰアドレスを割り当て、残りのＮＩＣを停止させる。これにより、１つのＮＩＣに残りのＮＩＣの制御が縮退される。
【０１２５】
そして、ある１つの仮想計算機ＡＡ０１に対して外部からパケットが送信され、当該仮想計算機ＡＡ０１が通常状態に復帰すると、１つのＮＩＣに割り当てられていたＩＰアドレスを他のＮＩＣに戻して全てのＮＩＣを稼働させる。これにより、電力消費量を抑制することができる。
【０１２６】
図５は、本発明の実施の形態３における仮想計算機テーブルＥＥ０１の一例を示した図である。本実施の形態では、デバイスＡＡ０８がＮＩＣであるため、“デバイス制御情報”が図３と相違している。また、本実施の形態では、“制御変更あり”が稼働デバイスであることを示し、“制御変更なし”が縮退デバイスであることを示している。
【０１２７】
図５の例では、全ての仮想計算機ＡＡ０１が省電力状態にあるが、仮想計算機ＡＡ０１−１の“デバイス制御変更情報”が“制御変更あり”、残りの仮想計算機ＡＡ０１−２，ＡＡ０１−Ｎの“デバイス制御変更情報”が“制御変更なし”となっており、仮想計算機ＡＡ０１−１のデバイスＡＡ０８−１が稼働デバイス、仮想計算機ＡＡ０１−２，ＡＡ０１−ＮのデバイスＡＡ０８−２〜ＡＡ０８−Ｎが縮退デバイスとして決定されている。
【０１２８】
そのため、仮想計算機ＡＡ０１−１の“デバイス制御情報”は“パケット待ち（仮想計算機ＡＡ０１−１〜仮想計算機ＡＡ０１−Ｎ）”となっているが、残りの仮想計算機ＡＡ０１−２〜ＡＡ０１−Ｎの“デバイス制御情報”は“パケット待ち”になっている。
【０１２９】
これにより、デバイスＡＡ０８−１にデバイスＡＡ０８−２〜ＡＡ０８−ＮのＩＰアドレスが割り当てられていることが示されている。
【０１３０】
図７は、実施の形態３による仮想計算機システムの動作の一例を示す説明図である。時刻Ｔ１，Ｔ２にて、仮想計算機ＡＡ０１−１，ＡＡ０８−Ｎが省電力状態に遷移したため、デバイスＡＡ０８−１，ＡＡ０８−Ｎはパケット待ち状態になる。
【０１３１】
時刻Ｔ３にて、仮想計算機ＡＡ０１−２が省電力状態に遷移し、全ての仮想計算機ＡＡ０１が省電力状態になったため、デバイス制御変更部ＡＡ０７は、稼働デバイスを決定する。図７の例では、デバイスＡＡ０８−２が稼働デバイス、デバイスＡＡ０８−１，ＡＡ０８−Ｎが縮退デバイスとして決定されたとする。したがって、デバイス制御変更部ＡＡ０７は、デバイスＡＡ０８−２のみ稼働させ、デバイスＡＡ０８−１，ＡＡ０８−Ｎを停止させる。
【０１３２】
稼働デバイスを決定するにあたり、デバイス制御変更部ＡＡ０７は、例えば、各仮想計算機ＡＡ０１の稼働率を求め、稼働率が最も高いデバイスＡＡ０８を稼働デバイスとして決定すればよい。
【０１３３】
ここで、稼働率を求めるにあたり、デバイス制御変更部ＡＡ０７は、例えば過去一定期間における各仮想計算機ＡＡ０１の稼働時間を計測し、計測した稼働時間を過去一定期間で割ることで、各仮想計算機ＡＡ０１の稼働率を求めればよい。ここで、デバイス制御変更部ＡＡ０７は、例えば、各仮想計算機ＡＡ０１が省電力状態に遷移した時刻及び通常状態に復帰した時刻を稼働履歴ログとして管理し、この稼働履歴ログにしたがって、各仮想計算機ＡＡ０１が通常状態にある時間を稼働時間として求めればよい。
【０１３４】
こうすることで、縮退期間において、デバイスＡＡ０８−２が仮想計算機ＡＡ０１−１，ＡＡ０８−Ｎに向けて送信されたパケットを受信する可能性を低くすることができる。その結果、デバイスＡＡ０８−２が受信したパケットを対応している仮想計算機ＡＡ０１−２とは別の仮想計算機ＡＡ０１−１，ＡＡ０１−Ｎに渡す可能性が低下し、デバイスＡＡ０８−２の処理負担を軽減することができる。
【０１３５】
あるいは、デバイス制御変更部ＡＡ０７は、通信帯域が最も広いデバイスＡＡ０８を稼働デバイスとして決定してもよい。仮想計算機システムの使用態様によっては、各デバイスＡＡ０８が通信帯域の異なるＮＩＣで構成されることもある。この場合、通信帯域の狭いＮＩＣを稼働デバイスとして決定すると、このＮＩＣの処理負担が増大するために好ましくない。そこで、デバイス制御変更部ＡＡ０７は、通信帯域が最も広いデバイスＡＡ０８を稼働デバイスとして決定する。なお、この構成を採用する場合、デバイス制御変更部ＡＡ０７に対して各デバイスＡＡ０８の通信帯域を認識させておけばよい。
【０１３６】
図７に戻り、時刻Ｔ４にて、デバイスＡＡ０８−２は、例えば仮想計算機ＡＡ０１−１に向けて送信されたパケットを受信し、仮想計算機ＡＡ０１−１に受信したパケットを渡し、仮想計算機ＡＡ０１−１を通常状態に復帰させる。このとき、デバイス制御変更部ＡＡ０７は、デバイスＡＡ０８−２に割り当てたＩＰアドレスをデバイスＡＡ０８−１，ＡＡ０８−Ｎに戻し、デバイスＡＡ０８−１，ＡＡ０８−３の動作を再開させ、縮退期間を終了させる。
【０１３７】
なお、実施の形態３では、全ての仮想計算機ＡＡ０１が省電力状態になったときに、デバイスＡＡ０８を縮退させていたが、実施の形態１で述べたように、少なくとも２つの仮想計算機ＡＡ０１が省電力状態になったとき、デバイスＡＡ０８を縮退させてもよい。
【０１３８】
図１に示す仮想計算機システムの各機能ブロックは、典型的にはプロセッサと外部メモリとの協同で処理されるプログラムとして実現されるが、集積回路であるＬＳＩで実現してもよい。これらの各機能ブロックは個別に１チップ化されても良いし、一部又は全てを含むように１チップ化されても良い。ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ又はウルトラＬＳＩと呼称されることもある。
【０１３９】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【０１４０】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。
【０１４１】
また、本発明は、プロセッサとタイマとを備えた計算機処理装置であれば、あらゆる計算機、電子機器、情報機器、ＡＶ機器、通信機器及び家電機器にも適用可能であり、例えば、ＰＣ（パーソナルコンピュータ）、携帯情報端末（携帯電話、スマートフォン及びＰＤＡなど）、テレビ、ハーディスクレコーダー、ＤＶＤ及びブルーレイディスクなどを用いた各種ディスクレコーダー、ＤＶＤ及びブルーレイディスクなどを用いた各種ディスクプレイヤー、並びにカーナビゲーションシステムなどにも応用できる。
【０１４２】
また、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定するものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。
【０１４３】
上述した仮想計算機システムの技術的特徴は下記のようにまとめられる。
【０１４４】
（１）上述した仮想計算機システムは、複数の仮想計算機と、各仮想計算機に対応して複数設けられ、対応する仮想計算機により占有される複数のデバイスと、前記仮想計算機を制御するハイパバイザとを備える仮想計算機システムであって、前記仮想計算機は、対応するデバイスを制御するデバイス制御部と、対応する仮想計算機の省電力制御を行う省電力制御部とを備え、前記ハイパバイザは、各仮想計算機の状態を管理する全体省電力制御部と、前記仮想計算機の状態と前記デバイスの制御に関する情報とを含む仮想計算機情報を記憶する仮想計算機情報記憶部と、前記デバイスの制御を変更するデバイス制御変更部とを備え、前記全体省電力制御部は、前記省電力制御部から、対応する仮想計算機を通常状態から省電力状態に遷移させる遷移要求を受け取った場合、前記仮想計算機情報を参照し、前記遷移要求を出力した仮想計算機を含む２以上の所定個数の仮想計算機が省電力状態にあるか否かを判定し、前記デバイス制御変更部は、前記全体省電力制御部により所定個数の仮想計算機が省電力状態にあると判定された場合、省電力状態にある仮想計算機に対応するデバイスのうち、稼働させる１つのデバイスを稼働デバイス、残りのデバイスを縮退デバイスとして決定し、前記稼働デバイスに前記縮退デバイスの制御を縮退させる。
【０１４５】
この構成によれば、仮想計算機システムが通常状態にある場合は、各仮想計算機は対応するデバイスを占有して使用することができる。そのため、共有方式のように複数の仮想計算機が１つのデバイスを共有する構成を採用した場合に比べて、仮想計算機システムの性能の低下を抑制することができる。
【０１４６】
一方、ある仮想計算機から省電力状態への遷移要求が出力されると、省電力状態にある仮想計算機が２以上の所定個数に到達しているか否かが判定される。そして、省電力状態にある仮想計算機のデバイスの中から１つのデバイスが稼働デバイス、残りのデバイスが縮退デバイスとして決定され、縮退デバイスの制御が稼働デバイスに縮退される。ここで、縮退とは、縮退デバイスの制御を稼働デバイスに委ね、縮退デバイスの動作を停止または省電力状態で稼働させ、稼働デバイスのみを通常状態で動作させることを指す。
【０１４７】
したがって、所定個数の仮想計算機が省電力状態になった場合、省電力状態にある仮想計算機に対応するデバイスのうち、１つのデバイスのみが稼働することになり、残りのデバイスは動作を停止することになる。その結果、占有方式のように全てのデバイスが常に動作する構成に比べて省電力化を図ることができる。
【０１４８】
（２）前記デバイス制御変更部は、省電力状態にある仮想計算機のうち、いずれか１つの仮想計算機が通常状態に復帰する際に、前記縮退デバイスの動作を再開させることが好ましい。
【０１４９】
この構成によれば、省電力状態にある仮想計算機のうちいずれか１つの仮想計算機が通常状態に復帰したことをトリガーに縮退が解除されるため、処理の簡便化を図ることができる。
【０１５０】
（３）前記デバイスは、タイマであることが好ましい。
【０１５１】
この構成によれば、デバイスがタイマにより構成されているため、稼働デバイスに縮退デバイスの制御を縮退させることができる。
【０１５２】
（４）前記タイマは、対応する仮想計算機が通常状態に復帰するまでの時間をカウントし、前記デバイス制御変更部は、省電力状態にある仮想計算機に対応するタイマのうち、通常状態に復帰する時間が最も早い仮想計算機に対応するタイマを前記稼働デバイスとして決定することが好ましい。
【０１５３】
この構成によれば、通常状態に最も早く復帰する仮想計算機に対応するタイマが稼働デバイスとして決定される。そのため、稼働デバイスのタイマがタイムアウトした際に、このタイマのタイムアウト時間や計時時間を用いて縮退デバイスのタイマのタイムアウト時間を求めることができる。そのため、省電力状態にある残りの仮想計算機を当初のタイムアウト時間で復帰させることができる。
【０１５４】
（５）前記タイマは、所定の第１精度で計時動作を行う第１動作モードと前記第１精度よりも低精度で計時動作を行う第２動作モードとが切り替え可能であり、前記デバイス制御部は、対応するタイマを予め第１動作モードに設定し、対応する仮想計算機が省電力状態になっても前記タイマの動作モードを切り替えず、前記デバイス制御変更部は、前記稼働デバイスに前記縮退デバイスの制御を縮退させる際、前記稼働デバイスを前記第２動作モードに切り替え、前記縮退デバイスの制御を元に戻す際、前記稼働デバイスを前記第１動作モードに切り替えることが好ましい。
【０１５５】
この構成によれば、稼働デバイスのみが縮退時及び縮退の解除時において動作モードが第１動作モードから第２動作モードに切り替えられ、縮退デバイスは動作モードが第１モードに維持される。したがって、動作モードの切り替え回数が削減され、動作モードの切り替えによって生じるオーバーヘッドを軽減することができる。
【０１５６】
（６）前記デバイスは、通信装置であることが好ましい。
【０１５７】
この構成によれば、デバイスを通信装置で構成したため、例えば稼働デバイスの通信装置に縮退デバイスの通信装置の通信アドレスを割り当てることで、デバイスの縮退を実現することができる。
【０１５８】
（７）前記デバイス制御変更部は、省電力状態にある仮想計算機に対応するデバイスのうち、稼働率が最も高い仮想計算機に対応するデバイスを前記稼働デバイスとして決定することが好ましい。
【０１５９】
この構成によれば、稼働デバイスの通信装置が、対応する仮想計算機とは別の仮想計算機に向けて送信されたパケットを受信する可能性を低くすることができる。その結果、稼働デバイスの通信装置が、受信したパケットを対応する仮想計算機とは別の仮想計算機に渡す処理が発生する可能性が低下し、この通信装置の処理負担を軽減することができる。
【０１６０】
（８）前記デバイス制御変更部は、省電力状態にある仮想計算機に対応するデバイスのうち、通信帯域が最も広いデバイスを前記稼働デバイスとして決定することが好ましい。
【０１６１】
この構成によれば、通信帯域が狭い通信装置が稼働デバイスとして決定されなくなるため、この通信装置の処理負担が増大することを防止することができる。
【０１６２】
（９）前記デバイス制御変更部は、前記デバイスの種類に基づき、前記デバイスが縮退可能なデバイスであるか否かを判定し、前記デバイスが縮退可能なデバイスであると判定した場合に、前記稼働デバイスに前記縮退デバイスの制御を縮退させることが好ましい。
【０１６３】
この構成によれば、仮想計算機システムを購入したユーザが任意にデバイスを取り付ける構成を採用した場合であっても、デバイスの種類から縮退可能なデバイスか否かが判定されるため、仮想計算機システムに汎用性を持たせることができる。
【０１６４】
（１０）前記仮想計算機の状態は、前記仮想計算機が省電力状態にあるか否かを示す仮想計算機状態情報であり、前記デバイスの制御に関する情報は、前記デバイスの制御内容を示すデバイス制御情報及び前記デバイスの制御を変更したか否かを示すデバイス制御変更情報を含むことが好ましい。
【０１６５】
この構成によれば、仮想計算機状態情報を参照することで、各仮想計算機が現在、省電力状態にあるか否か、各デバイスの現在の制御内容、及び各デバイスの制御の変更の有無を認識することができる。
【０１６６】
（１１）前記全体省電力制御部は、前記省電力制御部から省電力状態への遷移要求を受け取った際に、前記遷移要求を出力した仮想計算機の仮想計算機状態情報を通常状態から省電力状態に更新し、前記デバイス制御変更部は、前記稼働デバイスに前記縮退デバイスの制御を縮退させる際に、前記稼働デバイス又は前記縮退デバイスの前記デバイス制御変更情報を更新することが好ましい。
【０１６７】
この構成によれば、仮想計算機状態情報及びデバイス制御変更情報を精度良く更新することができる。
【０１６８】
（１２）前記デバイス制御変更部は、前記全体省電力制御部により全ての仮想計算機が省電力状態にあると判定された場合、前記稼働デバイスに前記縮退デバイスの制御を縮退させることが好ましい。
【０１６９】
この構成によれば、全ての仮想計算機が省電力状態になったことをトリガーにデバイスが縮退されるため、処理の簡便化を図ることができる。
【産業上の利用可能性】
【０１７０】
本発明によれば、仮想計算機システムの性能の低下を抑制すると同時に電力消費量の低下を図ることができ、複数の仮想計算機が稼働する計算機、家電機器、携帯端末等において有用である。
【図１】
2012104940.tif 000003
【図２】
2012104940.tif 000004
【図３】
2012104940.tif 000005
【図４】
2012104940.tif 000006
【図５】
2012104940.tif 000007
【図６】
2012104940.tif 000008
【図７】
2012104940.tif 000009
【国際調査報告】
2012104940.tif 000010
2012104940.tif 000011
2012104940.tif 000012