(57)【特許請求の範囲】
【請求項１】
複数の物理メモリバンクを有する物理メモリと、
処理部と、
を有する情報処理装置であって、
前記物理メモリは、
複数の仮想メモリバンクを有し、仮想マシンに割り当てられた仮想メモリ
を含み、
前記処理部は、
前記複数の仮想メモリバンクのうちの第１の仮想メモリバンクの電源オフを要求する仮想メモリバンク管理部と、
前記複数の仮想メモリバンクの各々が前記物理メモリの複数の物理メモリバンクのいずれに属するかを示す情報、前記複数の仮想メモリバンクの各々の電源状態を示す情報、および前記複数の仮想メモリバンクの各々の有効なデータの有無を示す情報を格納する仮想メモリバンクプール管理部と、
前記複数の仮想メモリバンクの各々が前記物理メモリの複数の物理メモリバンクのいずれに属するかを示す情報、前記複数の仮想メモリバンクの各々の電源状態を示す情報、および前記複数の仮想メモリバンクの各々の有効なデータの有無を示す情報に基づいて、前記第１の仮想メモリバンクを有する物理メモリバンクが電源オフ可能か判定し、可能であれば電源オフ対象として前記第１の仮想メモリバンクを有する物理メモリバンクを指定する判断部と、
前記指定された物理メモリバンクの電源をオフとするメモリ電源制御部と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記判断部は、前記第１の仮想メモリバンクを有する物理メモリバンクが他の仮想メモリバンクを有するか否かを判定することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記判断部は、前記他の仮想メモリバンクに有効なデータがあるか否か判定することを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記判断部は、前記他の仮想メモリバンクの電源がオフであるか否かを判定することを特徴とする請求項２記載の情報処理装置。
【請求項５】
前記判断部が前記第１の仮想メモリバンクを有する物理メモリバンクが他の仮想メモリバンクを有していると判定したとき、
前記仮想メモリバンクプール管理部は、前記他の仮想メモリバンクを有する仮想メモリを備える仮想マシンに、前記他の仮想メモリバンクの電源オフを依頼することを特徴とする請求項２記載の情報処理装置。
【請求項６】
複数の物理メモリバンクを有する物理メモリと、
処理部と、
を備え、
前記物理メモリが、複数の仮想メモリバンクを有し、仮想マシンに割り当てられた仮想メモリを含む
コンピュータに、
前記複数の仮想メモリバンクのうちの第１の仮想メモリバンクの電源オフを要求し、
前記複数の仮想メモリバンクの各々が前記物理メモリの複数の物理メモリバンクのいずれに属するかを示す情報、前記複数の仮想メモリバンクの各々の電源状態を示す情報、および前記複数の仮想メモリバンクの各々の有効なデータの有無を示す情報に基づいて、前記第１の仮想メモリバンクを有するメモリバンクが電源オフ可能か判定し、可能であれば電源オフ対象として前記第１の仮想メモリバンクを有する物理メモリバンクを指定し、
前記指定された物理メモリバンクの電源をオフとする、
処理を実行させるメモリ電源制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリの電源制御を行う情報処理装置およびメモリ電源制御プログラムに関する。
【背景技術】
【０００２】
近年、組込み機器/携帯端末のハードウェア資源(例えばCPU性能やメモリ容量)が向上し、1台の端末に仮想的に複数のオペレーティングシステム（OS）を動かす仮想化技術が提案されている。そうして仮想化された端末を仮想端末又は仮想マシン(VM)と言う。また、その仮想マシン上で動作するOSをゲストOSという。
【０００３】
また、組込み機器/携帯端末には、仮想マシン毎に各種のキー/ボタン(例えば、ダイヤルキー、カーソル操作キー、通話キー、電源キー等々)やディスプレイ等のデバイスが接続されている。例えば１つの携帯端末上で４つの仮想マシンが動作する場合、先のデバイスは４つの仮想マシンに共用した形態で接続されている。
【０００４】
携帯端末ユーザは、ディスプレイに表示中の仮想マシンを操作することが可能となる。このように仮想化技術では、複数の仮想マシンを１つの携帯端末に集約することで、複数のゲストOSを同時に利用することができる。
【０００５】
さらに、仮想化技術では、デバイスを複数の仮想マシンで共有した形態で接続されるが、そのデバイスを各仮想マシンで利用する為のドライバが各仮想マシン向けに必要となる。
【０００６】
近年、そのドライバについて、各仮想マシン向けの開発軽減や仮想マシンの間で共通利用が可能になるように、各種のデバイスドライバのみが機能する仮想マシンを設けて、アプリケーション利用のゲストOSとは完全分離した仮想マシンの構成(VM構成)が提案されており、仮想マシンの構成方法の主流になりつつある。通常、そのようなデバイスドライバ仮想マシンを、携帯端末ユーザが利用するゲストOSとは利用形態が異なり、一般の携帯端末ユーザに見えるようにすることはない。
【０００７】
一方、例えば、ＤＲＡＭ等のメモリは、データを保持するために、常に電源を供給し、リフレッシュを行う必要がある。
組込み機器/携帯端末には、メモリに対しても低消費電力対策が施されるようになっている。組込み機器/携帯端末は、メモリを複数のバンクに分割し、データ保持が必要な一部のバンクにだけセルフリフレッシュにより、データを保持できるようにするパーシャルアレイ・セルフリフレッシュ(PASR)機能を備えている。このような端末に搭載されているOSには、メモリアロケータによる、メインメモリ上に断片化されたアロケート済みのページを、特定のメモリバンクに集約させ、連続空き領域を増やし、先のPASR機能を制御して、部分的なメモリバンクの電源を落とし、消費電力の削減を図るメモリデフラグ化省電力機能が導入されている。
【０００８】
しかしながら、PASR機能を有する組込み機器/携帯端末において、PASR機能をサポートするOSに仮想化技術を適用すると、適用したゲストOSからは、仮想物理アドレスだけ見ることができるが、物理メモリアドレスが見えない。ゲストOSにおいて、PASR機能により特定の仮想メモリバンクの電源を落とそうとしても、実際にメモリの電源のオンオフを行うことができる単位は、物理メモリバンク単位であるため、省電力化は出来ない。すなわち、仮想化技術を適用した装置では、PASR機能による、メモリの消費電力の削減を行うことが出来ないという問題があった。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００８−４０６０６号公報
【特許文献２】特開２００８−２６２４５１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明の課題は、仮想マシンを有する装置において、メモリの消費電力を削減可能とすることである。
【課題を解決するための手段】
【００１１】
実施の形態の情報処理装置は、複数の物理バンクを有する物理メモリと、処理部と、を有する。
前記物理メモリは、複数の仮想メモリバンクを有し、仮想マシンに割り当てられた仮想メモリを含む。
【００１２】
前記処理部は、前記複数の仮想メモリバンクのうちの第１の仮想メモリバンクの電源オフを要求する仮想メモリバンク管理部と、前記複数の仮想メモリバンクの各々が前記物理メモリの複数の物理メモリバンクのいずれに属するかを示す情報、前記複数の仮想メモリバンクの各々の電源状態を示す情報、および前記複数の仮想メモリバンクの各々の有効なデータの有無を示す情報を格納する仮想メモリバンクプール管理部、前記仮想メモリバンクプール管理部に格納された情報に基づいて、前記第１の仮想メモリバンクを有する物理メモリバンクが電源オフ可能か判定し、可能であれば電源オフ対象として前記第１の仮想メモリバンクを有する物理メモリバンクを指定する判断部と、前記指定された物理メモリバンクの電源をオフとするメモリ電源制御部と、を備える
【発明の効果】
【００１３】
実施の形態の装置によれば、仮想マシンを有する装置において、メモリの消費電力を削減可能となる。
【図面の簡単な説明】
【００１４】
【図１】第１の実施の形態に係る情報処理装置の構成図である。
【図２】ＶＭメモリ利用特性管理表を示す図である。
【図３】仮想メモリバンクプール情報を示す図である。
【図４Ａ】仮想メモリバンク情報を示す図である。
【図４Ｂ】仮想メモリバンク情報を示す図である。
【図４Ｃ】仮想メモリバンク情報を示す図である。
【図４Ｄ】仮想メモリバンク情報を示す図である。
【図５】第１の実施の形態に係る仮想メモリバンク情報の配置処理を示すフローチャートである。
【図６】第１の実施の形態に係るデータ移動と電源制御の仕組みを示す図である。
【図７】調整依頼情報リストを示す図である。
【図８Ａ】一時的に作成された調整依頼前の更新通知情報リストを示す図である。
【図８Ｂ】調整依頼の結果により完成した更新通知情報リストを示す図である。
【図９】第１の実施の形態に係る仮想メモリバンクプール管理部の処理のフローチャートである。
【図１０Ａ】第１の実施の形態に係るＰＡＳＲ判断部の処理のフローチャートである。
【図１０Ｂ】第１の実施の形態に係るＰＡＳＲ判断部の処理のフローチャートである。
【図１１】第１の実施の形態に係るリフレッシュ非対象要求処理（その１）のシーケンス図である。
【図１２】第１の実施の形態に係るリフレッシュ非対象要求処理（その２）のシーケンス図である。
【図１３】第２の実施の形態に係る情報処理装置の構成図である。
【図１４】第２の実施の形態に係る仮想メモリバンク情報の配置処理を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、図面を参照しながら実施の形態を説明する。
図１は、第１の実施の形態に係る情報処理装置の構成図である。
情報処理装置１０１は、ハードウェア１０２を備える。
【００１６】
情報処理装置１０１は、例えば、組み込み機器や携帯端末等である。
ハードウェア１０２は、Central Processing Unit（ＣＰＵ）１１１、メモリ１１２、ＮＡＮＤ１１３、および液晶ディスプレイ（ＬＣＤ）１１４を備える。
【００１７】
ＣＰＵ１１１は、各種処理を実行する処理装置である。ＣＰＵ１１１は、ＮＡＮＤ１１３に格納されたプログラムを読み出して、実行する。
メモリ１１２は、各種データを一時的に格納可能な記憶手段である。メモリ１１２は、例えば、Dynamic Random Access Memory（DRAM）である。メモリ１１２は、独立して電力を供給可能な複数のメモリバンクを有する。また、メモリ１１２は、PASR機能を有し、データ保持が必要なデータを格納するメモリバンクは定期的にリフレッシュされ、データ保持が必要ないデータを格納するメモリバンクまたはデータを格納していないメモリバンクは、リフレッシュされないまたは電源オフされる。尚、メモリを仮想メモリと区別するために物理メモリと呼び、メモリ１１２のメモリバンクを仮想メモリバンクと区別するために物理メモリバンクと呼ぶ場合がある。
【００１８】
ＮＡＮＤ１１３は、NAND型フラッシュメモリであり、プログラムや各種データを格納する記憶部である。記憶部として、NAND型フラッシュメモリだけでなく、例えば、半導体記憶装置、磁気記憶装置、フレキシブルディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、磁気テープ、メモリーカード等の記録媒体を用いることが出来る。
【００１９】
ＬＣＤ１１４は、各種情報を表示する表示装置である。表示装置として、ＬＣＤ１１４だけでなく、例えば、有機ＥＬディスプレイ等を用いてもよい。
ハイパーバイザ１２１は、仮想メモリバンクプール管理部１２２、VMメモリ利用特性管理部１２３、PASR制御部１２４、およびPASR判断部１２５を備える。
【００２０】
ハイパーバイザ１２１は、仮想マシン（ＶＭ）１３１−ｉ（ｉ＝１〜４）を管理、すなわち計算資源やメモリ資源、ディスク資源等の割り当て等を行う。
仮想メモリバンクプール管理部１２２は、仮想メモリバンクプール情報を保持し、仮想メモリバンクと物理メモリバンクの状態の対応および空きメモリを管理する。
【００２１】
VMメモリ利用特性管理部１２３は、仮想マシン１３１の仮想メモリに関する情報が記述されたＶＭメモリ利用特性管理表を保持し、ＶＭメモリ利用特性管理表を管理する。ＶＭメモリ利用特性管理表については後述する。
【００２２】
PASR制御部１２４は、メモリ１１２のリフレッシュ対象の物理メモリバンクのリフレッシュを行う。また、PASR制御部１２３は、メモリ１１２のリフレッシュ非対象の物理メモリバンクのリフレッシュを行わない、すなわち電源をオフにする。
【００２３】
PASR判断部１２５は、判定対象のメモリバンクがリフレッシュ対象かリフレッシュ非対象であるか判定する。
ハイパーバイザ１２１、仮想メモリバンクプール管理部１２２、VMメモリ利用特性管理部１２３、PASR制御部１２４、およびPASR判断部１２５は、ＣＰＵ１１１により実現される。
【００２４】
ＶＭ１３１は、情報処理装置１０１上に構築された仮想マシンである。ＶＭ１３１は、ハイパーバイザ１２１により管理されている。
第１の実施の形態において、情報処理装置１０１には、４つの仮想マシンが存在している。
【００２５】
ＶＭ１３１−１〜１３１−４には、それぞれ識別子（ＩＤ）として、ＶＭ−１、ＶＭ−２、ＶＭ−ｌｃｄ、ＶＭ−ｎａｎｄが割り当てられている。尚、以下の説明においてＶＭ１３１−１〜１３１−４を上記識別子で表す場合がある。
【００２６】
ＶＭ１３１−１、１３１−２は、アプリケーションが動作する通常の仮想マシン（ゲストＶＭ）である。
ＶＭ１３１−１、１３１−２は、それぞれ仮想メモリ１３２−１、１３２−２、仮想メモリバンク管理部１３３−１、１３３−２、およびメモリデフラグ省電力機能部１３４−１、１３４−２を備える。
【００２７】
仮想メモリ１３２−１、１３２−２は、それぞれＶＭ１３１−１、１３１−２に割り当てられた仮想メモリである。また、仮想メモリ１３２−１、１３２−２は、複数の仮想メモリバンクを有する。また、仮想メモリ１３２−１、１３２−２は、メモリ１１２の一部である。
【００２８】
仮想メモリバンク管理部１３３−１、１３３−２は、仮想メモリの情報が記述された仮想メモリバンク情報を保持し、該仮想メモリバンク情報を管理する。仮想メモリバンク情報については後述する。
【００２９】
メモリデフラグ省電力機能部１３４−１、１３４−２は、仮想メモリのデフラグを行う。すなわち、仮想メモリバンク間でデータを移動させ、仮想メモリバンクにデータを集約することで、なるべく少ない仮想メモリバンクでデータを格納する。また、メモリデフラグ省電力機能部１３４−１、１３４−２は、有効なデータの無い仮想メモリバンクをリフレッシュ非対象とする。また、メモリデフラグ省電力機能部１３４−１、１３４−２は、デフラグの完了と仮想メモリバンクの状態（例えば、リフレッシュ対象か非対象か、有効ページの有無など）を仮想メモリバンク管理部に通知する。    
【００３０】
仮想メモリバンク管理部１３３−１、１３３−２およびメモリデフラグ省電力機能部１３４−１、１３４−２は、ＣＰＵ１１１により実現される。
ＶＭ１３１−３、１３１−４は、各仮想マシン向けの開発軽減や仮想マシンの間で共通利用が可能になるように、各種のデバイスドライバのみが機能する仮想マシン（ドライバＶＭ）であり、一般ユーザからは見ることができない。
【００３１】
ＶＭ１３１−３は、ＬＣＤ１１４を動作させるデバイスドライバが動作する仮想マシンである。
ＶＭ１３１−３は、ＮＡＮＤ１１３を動作させるデバイスドライバが動作する仮想マシンである。
【００３２】
ＶＭ１３１−３、１３１−４は、それぞれ仮想メモリ１３２−３、１３２−４および仮想メモリバンク管理部１３３−３、１３３−４を備える。
仮想メモリ１３２−３、１３２−４は、それぞれＶＭ１３１−３、１３１−４に割り当てられた仮想メモリである。また、仮想メモリ１３２−３、１３２−４は、複数の仮想メモリバンクを有する。また、仮想メモリ１３２−３、１３２−４は、メモリ１１２の一部である。
【００３３】
仮想メモリバンク管理部１３３−３、１３３−４は、仮想メモリの情報が記述された仮想メモリバンク情報を保持し、該仮想メモリバンク情報を管理する。仮想メモリバンク情報については後述する。仮想メモリバンク管理部１３３−３、１３３−４は、ＣＰＵ１１１により実現される。
【００３４】
図２は、ＶＭメモリ利用特性管理表を示す図である。
上述のように、ＶＭメモリ利用特性管理表１２６は、ＶＭメモリ利用特性管理部１２３により管理されている。
【００３５】
ＶＭメモリ利用特性管理表１２６は、項目として、VM-ID、VM-Type、使用頻度、仮想メモリサイズ、仮想メモリのバンク数、調整依頼の拒否権を有する。
VM-IDは、VM１３１の識別子を示す。
【００３６】
VM-Typeは、VMの型(ゲストVM/ドライバVM/制御VM等)を示す。
使用頻度は、VM稼働中のハードウェア資源(CPUやLCD/NAND等)の使用頻度を示す。
仮想メモリサイズは、VM１３１が物理メモリとして認識するメモリサイズ、すなわち仮想メモリのサイズである。
【００３７】
仮想メモリのバンク数は、VM１３１がメモリバンクとして認識するバンク数、すなわち仮想メモリのバンク数を示す。
調整依頼の拒否権は、各VM１３１が省電力ポリシを行使する手段の情報である。
【００３８】
図３は、仮想メモリバンクプール情報を示す図である。
仮想メモリバンクプール情報１２７は、仮想メモリバンクプール管理部１２２で保持、管理される。
【００３９】
仮想メモリバンクプール情報１２７は、項目として、VM-ID、有効ページの有無、仮想メモリバンクの状態、仮想メモリバンク番号、仮想メモリバンクの開始アドレス、仮想メモリバンクのサイズ、物理メモリのアドレス、メモリバンク番号、およびメモリバンクの状態を有する。仮想メモリバンクプール情報１２７には、これらの情報が対応付けられて格納されている。
【００４０】
VM-IDは、VM１３１の識別子を示す。
有効ページの有無は、仮想メモリバンクが有効なデータを有するか否かを示す。すなわち、保持する必要があるデータの有無を示す。
【００４１】
仮想メモリバンクの状態は、仮想メモリバンクの電源状態、すなわち仮想メモリバンクがリフレッシュ対象（電源オン）かリフレッシュ非対象（電源オフ）であるかを示す。
仮想メモリバンク番号は、仮想メモリの仮想メモリバンクの番号である。
【００４２】
仮想メモリバンクの開始アドレスは、仮想メモリバンクの開始の仮想物理アドレスである。
仮想メモリバンクのサイズは、仮想メモリバンクのサイズを示す。
【００４３】
物理メモリのアドレスは、ハイパーバイザ１２１が認識しているメモリ１１２の物理アドレスである。
メモリバンク番号は、対応する仮想メモリバンクが属するメモリ１１２のメモリバンクの番号である。
【００４４】
メモリバンクの状態は、メモリ１１２のメモリバンクの電源状態、すなわちメモリバンクがリフレッシュ対象（電源オン）かリフレッシュ非対象（電源オフ）であるかを示す。
図４Ａ〜４Ｄは、仮想メモリバンク情報を示す図である。
【００４５】
図４Ａ〜４Ｄの仮想メモリバンク情報１３５−ｉ（ｉ＝１〜４）は、それぞれ仮想メモリバンク管理部１３３−ｉで保持および管理される。
仮想メモリバンク情報１３５−ｉには、ＶＭ１３１−ｉが有する仮想メモリ１３２−ｉの情報が記述されている。
【００４６】
仮想メモリバンク情報１３５は、項目として、VM-ID、有効ページの有無、仮想メモリバンクの状態、仮想メモリバンク番号、仮想メモリバンクの開始アドレス、および仮想メモリバンクのサイズを有する。仮想メモリバンク情報１３５には、これら情報が対応付けられた格納されている。
【００４７】
VM-IDは、VM１３１の識別子を示す。
有効ページの有無は、仮想メモリバンクに有効なデータ（すなわち、保持すべきデータ）があるか否かの状態を示す。
【００４８】
仮想メモリバンクの状態は、仮想メモリバンクの電源状態、すなわち仮想メモリバンクがリフレッシュ対象（電源オン）かリフレッシュ非対象（電源オフ）であるかを示す。
仮想メモリバンク番号は、仮想メモリのバンクの番号である。
【００４９】
仮想メモリバンクの開始アドレスは、仮想メモリバンクの開始の仮想物理アドレスである。
仮想メモリバンクのサイズは、仮想メモリバンクのサイズを示す。
【００５０】
次に、情報処理装置１０１の起動時における仮想メモリバンク情報の配置に関して説明する。
図５は、第１の実施の形態に係る仮想メモリバンク情報の配置処理を示すフローチャートである。
【００５１】
ステップＳ５０１において、ハイパーバイザ１２１は、VMメモリ利用特性管理表１２６を参照し、仮想メモリバンク情報１３５を生成する。仮想メモリバンクプール管理部１２２は、生成した仮想メモリバンク情報１３５をプールする。
【００５２】
ステップＳ５０２において、ハイパーバイザ１２１は、ＶＭ１３１を起動する。
ステップＳ５０３において、仮想メモリバンクプール管理部１２２は、起動しているＶＭ１３１の仮想メモリバンク管理部１３３に対し、プールしている仮想メモリバンク情報１３５を割り当てる。
【００５３】
ステップＳ５０４において、ハイパーバイザ１２１によるＶＭ１３１の起動が完了する。
次に、第１の実施の形態の処理の概要について説明する。
【００５４】
図６は、第１の実施の形態に係るデータ移動と電源制御の仕組みを示す図である。
ここでは、ＶＭ１３１−１の仮想メモリ１３２−１の仮想バンク３のデータを移動させたときの例を説明する。
【００５５】
仮想メモリ１３２−１は、４つの仮想メモリバンク（仮想メモリバンク０〜仮想メモリバンク３）からなる。また、メモリ１１２は、４つの物理メモリバンク（バンク０〜バンク３）からなる。
【００５６】
また、仮想メモリバンクと物理メモリバンクとの対応は、図３の仮想メモリバンクプール情報１２７で示したとおりである。
メモリデフラグ省電力機能部１３４−１は、仮想バンク３の斜線で示したデータを仮想バンク２に移動する。それにより、仮想バンク３には、有効なデータが無くなる。メモリデフラグ省電力機能部１３４−１は、仮想バンク３をリフレッシュ非対象とする。また、メモリデフラグ省電力機能部１３４−１は、仮想バンク３の有効ページは無し、また仮想バンク３はリフレッシュ非対象とすることを仮想メモリバンク管理部１３３−１に通知する。
【００５７】
仮想メモリバンク管理部１３３−１は、仮想バンク３の有効ページは無し、また仮想バンク３をリフレッシュ非対象とする旨を仮想メモリバンク情報１３５−１に記述して、ハイパーコール（リフレッシュ非対象要求や仮想メモリバンク情報などを含む）を仮想メモリバンクプール管理部１２２に通知する。
【００５８】
仮想メモリバンクプール管理部１２２は、仮想バンク３が属する物理メモリバンク３の利用状況を確認し、利用状況に基づいて、物理メモリバンク３をリフレッシュ非対象（電源オフ）とする。それにより、メモリ１１２の消費電力が削減される。
【００５９】
次に仮想メモリバンクプール管理部１２２およびＶＭメモリ利用特性管理部１２３の処理について説明するが、その前に当該処理において用いられるデータについて説明する。
図７は、調整依頼情報リストを示す図である。
【００６０】
調整依頼情報リスト１４１は、項目として、依頼先VM-ID、対象仮想メモリバンク番号、変更前仮想メモリバンクの状態、および変更後仮想メモリバンクの状態とを有する。
依頼先VM-IDは、調整を依頼するＶＭの識別子である。
【００６１】
対象仮想メモリバンク番号は、対象の仮想メモリバンクの番号である。
調整前仮想メモリバンクの状態は、調整前の仮想メモリバンクの状態である。
調整後仮想メモリバンクの状態は、調整後の仮想メモリバンクの状態である。
【００６２】
図８Ａは、一時的に作成された調整依頼前の更新通知情報リストを示す図である。
図８は、調整依頼の結果により完成した更新通知情報リストを示す図である。
更新通知情報リスト１４２−１、１４２−２は、項目として、VM-ID、有効ページの有無、仮想メモリバンクの状態、仮想メモリバンク番号、仮想メモリバンクの開始アドレス、仮想メモリバンクのサイズ、および通知の属性を有する。
【００６３】
VM-IDは、VM１３１の識別子を示す。
有効ページの有無は、仮想メモリバンクに有効なページを割当てているか否かの状態を示す。
【００６４】
仮想メモリバンクの状態は、仮想メモリバンクの電源状態、すなわち仮想メモリバンクがリフレッシュ対象（電源オン）かリフレッシュ非対象（電源オフ）であるかを示す。
仮想メモリバンク番号は、仮想メモリのバンクの番号である。
【００６５】
仮想メモリバンクの開始アドレスは、仮想メモリバンクの開始の仮想物理アドレスである。
仮想メモリバンクのサイズは、仮想メモリバンクのサイズを示す。
【００６６】
通知の属性は、通知の属性を示し、属性が未確定の状態（−）、更新の通知が参考確認であるか、若しくは更新の通知が仮想メモリバンク状態を強制的に更新必須であるかを意味する。
【００６７】
図９は、第１の実施の形態に係る仮想メモリバンクプール管理部の処理のフローチャートである。
以下の例では、図６に示すようにＶＭ−１の仮想メモリバンク３のデータが移動した場合について述べる。
【００６８】
ステップＳ５１１において、仮想メモリバンクプール管理部１２２は、ＶＭ１３１からハイパーコールを受信する。ここでは、ＶＭ１３１−１（すなわちＶＭ−１）からリフレッシュ非対象要求のハイパーコールを受信したとする。
【００６９】
ステップＳ５１２において、仮想メモリバンクプール管理部１２２は、受信したハイパーコールを解析し、ハイパーコールに含まれる情報（例えば、VM-ID、ＰＡＳＲ非対象要求、仮想メモリバンク情報など）を取得する。
【００７０】
ステップＳ５１３において、仮想メモリバンクプール管理部１２２は、受信した仮想メモリバンク情報と、受信した仮想メモリバンク情報に対応する仮想メモリバンクプール情報の一部分の情報(仮想メモリバンク情報をVM-1から受信した場合は、仮想メモリバンクプール情報１２７のうち、VM-IDがVM-1であるエントリ)と比較する。情報の違いを検出すると、ＰＡＳＲ判断部１２５に処理を受け渡し、制御はステップＳ５１４へ進み、違いを検出しないと、VM-1の仮想メモリバンク管理部１３３−１からのリフレッシュ非対象要求を受ける前に、リフレッシュ非対象の省電力が果たされていることになるので、処理を終了する。
【００７１】
ステップＳ５１４において、ＰＡＳＲ判断部１２５は、各種処理を行う。当該処理については後述する。
ステップＳ５１５において、仮想メモリバンクプール管理部１２２は、ＰＡＲＳ判断部１２５から調整依頼情報リスト１４１を受信する。
【００７２】
ステップＳ５１６において、仮想メモリバンクプール管理部１２２は、調整依頼情報リスト１４１に記述された依頼先ＶＭ−ＩＤに対応するＶＭに調整の依頼を行う。そして、依頼したＶＭから調整依頼に対する回答を受信し、該回答をＰＡＳＲ判断部１２５へ送信する。該回答は、リフレッシュ非対象要求相当のハイパーコール、もしくは特定のハイパーコールである。例えば、図７の調整依頼情報リスト１４１では、ＶＭ−２に仮想メモリバンク番号が１の仮想メモリバンクをリフレッシュ対象からリフレッシュ非対象とするように依頼する。
【００７３】
ステップＳ５１７において、仮想メモリバンクプール管理部１２２は、ＰＡＲＳ判断部１２５から更新通知情報リストを受信する。
ステップＳ５１８において、仮想メモリバンクプール管理部１２２は、更新通知情報リスト１４２−２に記述されたＶＭ（VM-1、調整を依頼したＶＭ（ＶＭ−２）、もしくは物理メモリバンクを共有するＶＭ（ＶＭ−ｌｃｄ））に更新情報を通知する。ここでは、更新通知情報リスト１４２−２に記載のように通知属性を「更新必須」として通知する。
【００７４】
図１０Ａおよび１０Ｂは、第１の実施の形態に係るＰＡＳＲ判断部の処理のフローチャートである。
以下、ステップＳ５１３で仮想メモリバンクプール管理部１２２から処理が引き渡されたときの処理を説明する。
【００７５】
ステップＳ５２１において、ＰＡＳＲ判断部１２５は、入力情報として、仮想メモリバンクプール情報を設定する。
ステップＳ５２２において、ＰＡＳＲ判断部１２５は、入力情報に基づいて、検索キーを作成する。ここでは、検索キーをステップＳ５１３で違いが検出されたエントリのメモリバンク番号とする。
【００７６】
ステップＳ５２３において、ＰＡＳＲ判断部１２５は、仮想メモリバンクプール情報１２７を検索キーを用いて検索する。
ステップＳ５２４において、ＰＡＳＲ判断部１２５は、仮想メモリバンクプール情報１２７のエントリを参照し、メモリバンク番号が検索キーと一致するか否か判定する。一致した場合、制御はステップＳ５２５へ進み、一致しない場合、制御はＳ５３０へ進む。
【００７７】
ステップＳ５２５において、ＰＡＳＲ判断部１２５は、メモリバンク番号が一致したエントリの仮想メモリバンクに有効ページが存在するか否か判定する。有効ページが存在する場合、制御はステップＳ５２７へ進み、有効ページが存在しない場合、制御はステップＳ５２５へ進む。
【００７８】
ステップＳ５２６において、ＰＡＳＲ判断部１２５は、一致した物理バンク番号のバンクに割り当てられた仮想メモリバンクの状態はリフレッシュ対象であるか否か判定する。リフレッシュ対象である場合、制御はステップＳ５２９へ進み、リフレッシュ対象でない（リフレッシュ非対象）である場合、制御はステップＳ５３０へ進む。
【００７９】
ステップＳ５２７において、ＰＡＳＲ判断部１２５は、ＶＭメモリ利用特性管理表１２６を参照し、各ＶＭ１３１の調整依頼の拒否権の有無を確認する。
ステップＳ５２８において、ＰＡＳＲ判断部１２５は、調整依頼情報リスト１４１を作成する。
【００８０】
ステップＳ５２９において、ＰＡＳＲ判断部１２５は、更新通知情報リスト１４２を作成する。詳細には、ステップＳ５２８から制御が来た場合、すなわち有効ページが有りの場合は、更新通知情報リスト１４２−１の２行目のエントリが作成され、ステップＳ５２６から制御が来た場合、すなわち有効ページが無しの場合は、更新通知情報リスト１４２−１の３行目のエントリが作成される。
【００８１】
ステップＳ５３０において、ＰＡＳＲ判断部１２５は、未検索のエントリがあるか否か判定し、未検索のエントリがある場合、制御はステップＳ５２３へ戻り、未検索のエントリがない場合、制御はステップＳ５３１へ進む。
【００８２】
ステップＳ５３１において、ＰＡＳＲ判断部１２５は、調整依頼情報リスト１４１にエントリがあるか否か判定する。エントリがある場合、制御はステップＳ５３２へ進み、エントリが無い場合、制御はＳ５３６へ進む。
【００８３】
ステップＳ５３２において、ＰＡＳＲ判断部１２５は、判断結果通知として調整依頼情報リスト１４１を仮想メモリバンクプール管理部１２２へ送信する。
ステップＳ５３３において、ＰＡＳＲ判断部１２５は、仮想メモリバンクプール管理部１２２から調整依頼の回答を受信する。
【００８４】
ステップＳ５３４において、ＰＡＳＲ判断部１２５は、調整依頼の回答に調整拒否のＶＭがあるか否か判定し、調整拒否のＶＭがある場合、制御はステップＳ５３５へ進み、調整拒否のＶＭが無い場合、制御はステップＳ５３６へ進む。
【００８５】
ステップＳ５３５において、ＰＡＳＲ判断部１２５は、ＰＡＳＲ制御部１２４に対して、リフレッシュ非対象の指定を実施しない。
ステップＳ５３６において、ＰＡＳＲ制御部１２４に対して、リフレッシュ非対象の指定を行う。
【００８６】
ステップＳ５３７において、ＰＡＳＲ判断部１２５は、更新通知情報リスト１４２を更新、詳細には更新通知情報リスト１４２−１から更新通知情報リスト１４２−２に更新する。
【００８７】
ステップＳ５３８において、ＰＡＳＲ判断部１２５は、更新通知情報リスト１４２にエントリがあれば、仮想メモリバンクプール部１２２に更新通知情報リスト１４２を送信する。
【００８８】
図１１は、第１の実施の形態に係るリフレッシュ非対象要求処理（その１）のシーケンス図である。
図１１では、リフレッシュ非対象要求を送信したＶＭ以外のＶＭの調整が不要な場合について説明する。
【００８９】
まず、メモリデフラグ省電力機能部１３４−１によって、仮想メモリバンク間のぺージ移動によるメモリ低消費電力制御が機能した場合、VM-1の仮想メモリバンク管理部１３３−１に通知される（ステップＳ５４１）。
【００９０】
仮想メモリバンク管理部１３３−１は、応答をメモリデフラグ省電力機能部１３４−１に返す（Ｓ５４２）。
仮想メモリバンク管理部１３３−１は、ハイパーバイザの仮想メモリバンクプール管理部にリフレッシュ非対象要求を仮想メモリバンク情報に載せて通知する（ステップＳ５４３）。
【００９１】
仮想メモリバンクプール管理部１２２は、当該仮想メモリバンク情報をプールし、仮想メモリバンク情報プールの不整合を検出したら（ステップＳ５４４）、PASR判断部に当該リフレッシュ非対象要求が可能かの判断を依頼する（ステップＳ５４５）。
【００９２】
当該依頼を受けたPASR判断部１２５は、VMメモリ利用特性管理部１２３が有するVMメモリ利用特性管理表１２６を参照し（ステップＳ５４６）、当該リフレッシュ非対象要求の可能性の結果情報(調整依頼情報リスト、かつ/又は、更新通知情報リスト)を作成する。
【００９３】
PASR判断部１２５は、調整依頼情報リストにエントリが無い場合、PASR制御部１２４にリフレッシュ非対象を指定する物理メモリバンクを指定して、リフレッシュ非対象(電力供給のオフ)を指示する（ステップＳ５４７）。
【００９４】
PASR制御部１２４は、指定された物理メモリバンクに対してリフレッシュ非対象の設定を実施し（ステップＳ５４８）、PASR判断部１２５へ応答する（Ｓ５４９）。
この実施結果により、PASR判断部１２５は、更新通知情報リストを更新し、そのリストを仮想メモリバンクプール部に回送する（ステップＳ５５０）。
【００９５】
仮想メモリバンクプール管理部１２２は、仮想メモリバンク管理部１３３−１に仮想メモリバンク情報の更新を通知する（ステップＳ５１１）
仮想メモリバンクプール管理部１２２は、更新通知情報リストから、当該物理メモリバンクに関係するVM-ｎの仮想メモリバンク管理部に対して、仮想メモリバンク情報を更新する必要があることを通知することができる（ステップＳ５２２）。
【００９６】
このように、物理メモリバンクへの電力供給分の電力が削減される。
図１２は、第１の実施の形態に係るリフレッシュ非対象要求処理（その２）のシーケンス図である。
【００９７】
図１２では、リフレッシュ非対象要求を送信したＶＭ以外のＶＭの調整が必要な場合について説明する。
VM-1の仮想メモリバンク管理部１３３−１は、ハイパーバイザの仮想メモリバンクプール管理部１２２にリフレッシュ非対象要求を仮想メモリバンク情報に載せて通知する（ステップＳ５６１）。
【００９８】
仮想メモリバンクプール管理部１２２は、当該仮想メモリバンク情報をプールし、仮想メモリバンクプール情報との整合をチェックして（ステップＳ５６２）、PASR判断部１２５に当該リフレッシュ非対象要求が可能かの判断を依頼する（ステップＳ５６３）。
【００９９】
当該依頼を受けたPASR判断部１２５は、VMメモリ利用特性管理部１２３が有するVMメモリ利用特性管理表１２６を参照し（ステップＳ５６４）、当該リフレッシュ非対象要求の可能性の結果情報(調整依頼情報リスト、かつ/又は、更新通知情報リスト)を仮想メモリバンクプール管理部１２２に通知する（Ｓ５６５）。仮想メモリバンクプール管理部１２２は、当該結果情報を受けて(ここでは、調整依頼情報リストに依頼先ＶＭ−ＩＤがＶＭ−２のエントリがある)、VM-2に対して仮想メモリバンクをリフレッシュ非対象とすることが出来るかを調整依頼情報リストで依頼する（ステップＳ５６６）。
【０１００】
当該依頼を受けたVM-2のメモリデフラグ省電力機能部１３４−１および仮想メモリバンク管理部１３３−２は、ページの無効化やデフラグも含めたページ移動を実施し、この結果を仮想メモリバンクプール管理部１２２に回答する（ステップＳ５６７）。
【０１０１】
仮想メモリバンクプール管理部は、調整依頼をしたVMからの回答を全て得ると、PASR判断部１２５に当該リフレッシュ非対象要求が可能かの判断を依頼する（ステップＳ５６８）。
【０１０２】
当該依頼を受けたPASR判断部１２５は、当該リフレッシュ非対象要求の可能性の結果情報(調整依頼情報リスト、かつ/又は、更新通知情報リスト)を更新する。
PASR判断部１２５は、調整依頼リストにエントリが無いので、PASR制御部１２５にリフレッシュ非対象を指定する物理メモリバンクを指定して、リフレッシュ非対象(電力供給のオフ)を指示する（ステップＳ５６９）。
【０１０３】
PASR制御部１２４は、指定された物理メモリバンクに対してリフレッシュ非対象の設定を実施し（ステップＳ５７０）、PASR判断部１２５に応答する（ステップＳ５７１）。
PASR判断部１２５は、更新通知情報リストを更新し、そのリストを仮想メモリバンクプール部に回送する（ステップＳ５７２）。
【０１０４】
仮想メモリバンクプール管理部１２２は、仮想メモリバンク管理部１３３−１、１３３−２に対して、仮想メモリバンク情報を更新する必要があることを通知する（ステップＳ５７３、Ｓ５７５）。
【０１０５】
仮想メモリバンクプール管理部１２２は、更新通知情報リストから、当該物理メモリバンクに関係するVM-ｎの仮想メモリバンク管理部に対して、仮想メモリバンク情報を更新する必要があることを通知することができる（ステップＳ５７４）。
【０１０６】
このように物理メモリバンクへの電力供給分の電力が削減される。
第１の実施の形態の情報処理装置によれば、仮想マシンを有する情報処理装において、ＰＡＳＲによるメモリの電力の削減を行うことが出来る。
【０１０７】
図１３は、第２の実施の形態に係る情報処理装置の構成図である。
情報処理装置２０１は、ハードウェア２０２を備える。
情報処理装置２０１は、例えば、組み込み機器や携帯端末等である。
【０１０８】
ハードウェア２０２は、ＣＰＵ２１１、メモリ２１２、ＮＡＮＤ２１３、およびＬＣＤ２１４を備える。
ＣＰＵ２１１、メモリ２１２、ＮＡＮＤ２１３、およびＬＣＤ２１４は、それぞれ第１の実施の形態のＣＰＵ１１１、メモリ１１２、ＮＡＮＤ１１３、およびＬＣＤ１１４と同様であるため、詳細な説明は省略する。
【０１０９】
ハイパーバイザ２２１は、ＰＡＳＲ制御部２２４を備える。
ＰＡＳＲ制御部２２４は、第１の実施の形態のＰＡＳＲ制御部１２４と同様であるため、詳細な説明は省略する。
【０１１０】
ＶＭ２３１−１〜２３１−４は、それぞれ第１の実施の形態のＶＭ１３１−１〜１３１−４と同様であるため、詳細な説明は省略する。
ＶＭ２３１−５は、仮想メモリバンクプール管理部２２２、VMメモリ利用特性管理部２２３、およびPASR判断部２２５を備える。
【０１１１】
ＶＭ２３１−５は、ＶＭ２３１−１〜２３１−４を管理する仮想マシンである。尚、ＶＭ２３１−５は、管理ＶＭとも呼ぶ。
仮想メモリバンクプール管理部２２２、VMメモリ利用特性管理部２２３、およびPASR判断部２２５は、第１の実施の形態の仮想メモリバンクプール管理部１２２、VMメモリ利用特性管理部１２３、およびPASR判断部１２５と同様であるため、詳細な説明は省略する。
【０１１２】
第１の実施の形態と比較すると、第２の実施の形態の情報処理装置２０１では、仮想メモリバンクプール管理部２２２、VMメモリ利用特性管理部２２３、およびPASR判断部２２５が、仮想マシンであるＶＭ２３１−５に備えられている。
【０１１３】
第２の実施の形態の情報処理装置２０１では、上記の各処理部の設置位置が異なるだけで、各部が行う処理については、第１の実施の形態と同様である。
ここで、第２の実施の形態の情報処理装置２０１の起動時における仮想メモリバンク情報の配置に関して説明する。
【０１１４】
図１４は、第２の実施の形態に係る仮想メモリバンク情報の配置処理を示すフローチャートである。
ステップＳ６０１において、ＶＭ２３１−５は、VMメモリ利用特性管理表を参照し、仮想メモリバンク情報を生成する。仮想メモリバンクプール管理部２２２は、生成した仮想メモリバンク情報２３５をプールする。
【０１１５】
ステップＳ６０２において、ＶＭ２３１−５は、ＶＭ２３１−１〜２３１−４を起動する。
ステップＳ６０３において、仮想メモリバンクプール管理部２２２は、起動しているＶＭ２３１−１〜２３１−４の仮想メモリバンク管理部２３３に対し、プールしている仮想メモリバンク情報を割り当てる。
【０１１６】
ステップＳ６０４において、ＶＭ２３１−５によるＶＭ２３１−１〜２３１−４の起動が完了する。
第２の実施の形態の情報処理装置２０１では、仮想メモリバンクプール管理部２２２、VMメモリ利用特性管理部２２３、およびPASR判断部２２５の設置位置が第１の実施の形態と異なるだけで、各部が行う処理については、第１の実施の形態と同様である。
【０１１７】
したがって、第２の実施の形態の情報処理装置においても、同様にメモリの消費電力の削減を行うことが出来る。
【符号の説明】
【０１１８】
１０１    情報処理装置
１０２    ハードウェア
１１１    ＣＰＵ
１１２    メモリ
１１３    ＮＡＮＤ
１１４    ＬＣＤ
１２１    ハイパーバイザ
１２２    仮想メモリバンクプール管理部
１２３    VMメモリ利用特性管理部
１２４    PASR制御部
１２５    PASR判断部
１２６    ＶＭメモリ利用特性管理表
１２７    仮想メモリバンクプール情報
１３１    ＶＭ
１３２    仮想メモリ
１３３    仮想メモリバンク管理部
１３４    メモリデフラグ省電力機能部
１３５    仮想メモリバンク情報
１４１    調整依頼情報リスト
１４２    更新通知情報リスト
２０１    情報処理装置
２０２    ハードウェア
２１１    ＣＰＵ
２１２    メモリ
２１３    ＮＡＮＤ
２１４    ＬＣＤ
２２１    ハイパーバイザ
２２２    仮想メモリバンクプール管理部
２２３    VMメモリ利用特性管理部
２２４    PASR制御部
２２５    PASR判断部
２３１    ＶＭ
２３４    メモリデフラグ省電力機能部
２３５    仮想メモリバンク情報
【図１】
0005655663.tif 000002
【図２】
0005655663.tif 000003
【図３】
0005655663.tif 000004
【図４Ａ】
0005655663.tif 000005
【図４Ｂ】
0005655663.tif 000006
【図４Ｃ】
0005655663.tif 000007
【図４Ｄ】
0005655663.tif 000008
【図５】
0005655663.tif 000009
【図８Ａ】
0005655663.tif 000010
【図８Ｂ】
0005655663.tif 000011
【図６】
0005655663.tif 000012
【図７】
0005655663.tif 000013
【図９】
0005655663.tif 000014
【図１０Ａ】
0005655663.tif 000015
【図１０Ｂ】
0005655663.tif 000016
【図１１】
0005655663.tif 000017
【図１２】
0005655663.tif 000018
【図１３】
0005655663.tif 000019
【図１４】
0005655663.tif 000020