(57)【要約】      （修正有）【課題】仮想マシン・モニタ（ＶＭＭ）と、高度構成及び電力インタフェース（ＡＣＰＩ）準拠ゲスト・オペレーティング・システムとの間の双方向通信を可能にする。【解決手段】ホスト２００上の複数の仮想マシン（ＶＭ）の１つをホスト・プラットフォームのオーナ（ポリシーＶＭ）２０５として指定することができ、ポリシーＶＭ２０５は、プラットフォーム上の構成及び電力管理の決定全てを制御するよう拡張ＶＭＭ２３０と通信することができる。【選択図】図２Ａ
2011238272.tif 000002
【特許請求の範囲】
【請求項１】
ポリシー仮想マシン（ＶＭ）ホスト上の仮想マシン・マネージャ（ＶＭＭ）上の高度構成及び電力インタフェース（ＡＣＰＩ）サブシステムと、ポリシー仮想マシン（ＶＭ）との間の双方向通信のための、マシンによって実現される方法であって、
前記ＶＭホスト上の複数のＶＭのうちの１つを前記ポリシーＶＭとして指定する工程であって、前記ポリシーＶＭは、前記ＶＭホストのポリシーを制御するよう構成され、前記ＶＭホストのハードウェア、並びに前記ＶＭホストの装置構成及び電力管理サブシステム・テーブルに対するアクセスを有する工程と、
メモリ領域を前記ポリシーＶＭに割り当てる工程と、  
前記ポリシーＶＭ及び前記ＶＭＭによってアクセス可能なメールボックスとして前記メモリ領域の一部分を指定する工程と、
前記ポリシーＶＭが情報を前記メールボックスに入れることを可能にする工程であって、前記情報は、前記ＶＭＭによって検出可能なイベントを生成するよう、前記ポリシーＶＭのＡＣＰＩサブシステムによって実行される第１の方法の実行から受け取られる工程と、
前記ＶＭＭが、前記ＶＭホスト上に仮想ＡＣＰＩ汎用イベント（ＧＰＥ）レジスタ・ブロックを生成することができるよう構成されることを可能にする工程と、
前記ポリシーＶＭのＡＣＰＩサブシステムにより、第２の方法を実行させるために方法情報を前記メールボックスに挿入することにより、前記ＶＭＭが前記ポリシーＶＭと通信することを可能にする工程と、
前記ＶＭＭが割り込みを前記ポリシーＶＭに更に挿入することを可能にする工程であって、前記ＶＭＭはシステム制御割り込み（ＳＣＩ）を前記ポリシーＶＭにおけるゲスト・オペレーティング・システム（ＯＳ）に投入し、前記ゲストＯＳは、ＧＰＥレジスタ・ブロックを検査することにより、前記ＧＰＥの原因を求めるために前記ＳＣＩを前記ＡＣＰＩサブシステムに転送し、前記ＶＭＭは、アクティブ・ステータスを有するステータス・レジスタを備えた仮想ＡＣＰＩ  ＧＰＥレジスタ・ブロックを生成し、前記ＡＣＰＩサブシステムは、前記アクティブ・ステータスを有する前記ステータス・レジスタを備えた前記仮想ＧＰＥレジスタ・ブロックを検査し、前記ＡＣＰＩサブシステムは、前記アクティブ・ステータスを有する前記ステータス・レジスタを備えた前記ＧＰＥレジスタ・ブロックに基づいて前記ＳＣＩを扱うためのＡＣＰＩ制御方法を起動する方法。
【請求項２】
ポリシー仮想マシン（ＶＭ）ホスト上の仮想マシン・マネージャ（ＶＭＭ）上の高度構成及び電力インタフェース（ＡＣＰＩ）サブシステムと、ポリシー仮想マシン（ＶＭ）との間の双方向通信を、マシンによって実行されると可能にする命令を記憶させたマシン読み取り可能な記憶媒体であって、前記命令は、
前記ＶＭホスト上の複数のＶＭのうちの１つをポリシーＶＭとして指定する機能であって、前記ポリシーＶＭは、前記ＶＭホストのポリシーを制御するよう構成され、前記ＶＭホストのハードウェア、並びに前記ＶＭホストの装置構成及び電力管理サブシステム・テーブルに対するアクセスを有する機能と、
仮想マシン・マネージャ（ＶＭＭ）が高度構成及び電力インタフェース（ＡＣＰＩ）汎用イベント（ＧＰＥ）を認識することを可能にする機能と、
メモリ領域を前記ポリシーＶＭに割り当てる機能と、
前記ポリシーＶＭ及び前記ＶＭＭによってアクセス可能なメールボックスとして前記メモリ領域の一部分を指定する機能と、
前記ポリシーＶＭが前記メールボックスに情報を入れることを可能にする機能であって、前記情報は、前記ＶＭＭによって検出可能なイベントを生成するよう、前記ポリシーＶＭのＡＣＰＩサブシステムによって実行される第１の方法の実行から受け取られる機能と、
前記ポリシーＶＭのＡＣＰＩサブシステムにより、第２の方法を実行させるための方法情報を前記メールボックスに挿入することにより、前記ＶＭＭが前記ポリシーＶＭと通信するよう構成されることを可能にする機能と、
前記ＶＭＭが割り込みを前記ポリシーＶＭに更に挿入することを可能にする機能であって、前記ＶＭＭはシステム制御割り込み（ＳＣＩ）を前記ポリシーＶＭにおけるゲスト・オペレーティング・システム（ＯＳ）に投入し、前記ゲストＯＳは、ＧＰＥレジスタ・ブロックを検査することにより、前記ＧＰＥの原因を求めるために前記ＳＣＩを前記ＡＣＰＩサブシステムに転送し、前記ＶＭＭは、アクティブ・ステータスを有するステータス・レジスタを備えた仮想ＧＰＥレジスタ・ブロックを生成し、前記ＡＣＰＩサブシステムは、前記アクティブ・ステータスを有する前記ステータス・レジスタを備えた仮想ＧＰＥレジスタ・ブロックを検査し、前記ＡＣＰＩサブシステムは、前記アクティブ・ステータスを有する前記ステータス・レジスタを備えた前記ＧＰＥレジスタ・ブロックに基づいて前記ＳＣＩを扱うためのＡＣＰＩ制御方法を起動する記憶媒体。
【請求項３】
仮想マシンＶＭホストの動作を実行するためのメモリ及びプロセッサを備えたプラットフォームであって、前記プラットフォームは更に、
高度構成及び電力インタフェース（ＡＣＰＩ）汎用イベント（ＧＰＥ）レジスタ・ブロックを仮想化することができる拡張仮想マシン・マネージャ（ＶＭＭ）と、
前記ＶＭＭに結合されたメモリと、
前記ＶＭホストのポリシーを制御するポリシーＶＭであって、前記ポリシーＶＭは前記ＶＭＭ及び前記メモリに結合され、前記メモリの一部分は前記ポリシーＶＭに割り当てられるポリシーＶＭと、
前記ＶＭＭ、前記メモリ、及び前記ポリシーＶＭに結合されたサブシステムであって、前記ＡＣＰＩサブシステムは、情報を生成するための第１の方法を実行することができるサブシステムと、
前記ポリシーＶＭに割り当てられた前記メモリの前記部分内で指定されたメールボックスであって、前記ポリシーＶＭは、前記ＶＭＭによって検出可能なイベントを生成するために前記メールボックスに前記第１の方法によって生成された前記情報を入れることができ、前記ＶＭＭは更に、第２の方法が前記ポリシーＶＭのＡＣＰＩサブシステムによって実行されるための方法情報を前記メールボックスに挿入することにより、前記ポリシーＶＭと通信することができるメ―ルボックスと、
前記ポリシーＶＭにおけるゲスト・オペレーティング・システム（ＯＳ）であって、前記ＶＭＭはシステム制御割り込み（ＳＣＩ）を前記ゲストＯＳに投入することができ、前記ゲストＯＳは、ＧＰＥレジスタ・ブロックを検査することにより、前記ＧＰＥの原因を求めるために前記ＳＣＩを前記ＡＣＰＩサブシステムに転送し、前記ＶＭＭは、アクティブ・ステータスを有するステータス・レジスタを備えた仮想ＡＣＰＩ  ＧＰＥレジスタ・ブロックを生成し、前記ＡＣＰＩサブシステムは、前記アクティブ・ステータスを有する前記ステータス・レジスタを備えた前記仮想ＧＰＥレジスタ・ブロックを検査し、前記ＡＣＰＩサブシステムは、前記アクティブ・ステータスを有する前記ステータス・レジスタを備えた前記ＧＰＥレジスタ・ブロックに基づいて前記ＳＣＩを扱うためのＡＣＰＩ制御方法を起動するゲスト・オペレーティング・システム（ＯＳ）と
を備えるプラットフォーム。
【請求項４】
請求項３記載のＶＭホストであって、前記ＶＭＭは更に、前記情報を処理し、前記情報を前記ＶＭホスト上の他のＶＭに伝播することができるＶＭホスト。
【発明の詳細な説明】
【技術分野】
【０００１】
高度構成及び電力インタフェース（「ＡＣＰＩ」、例えば、Ｒｅｖｉｓｉｏｎ  ２．０ｂ，  Ｏｃｔｏｂｅｒ  １１，  ２００２）は、プラットフォーム構成及び電力管理手法の開放型業界標準仕様である。
【背景技術】
【０００２】
ＡＣＰＩ準拠オペレーティング・システム（「ＯＳ」）は通常、プラットフォーム・ハードウェアと２つのやり方で相互作用する。まず、ハードウェアにおける基本入力／出力システム（「ＢＩＯＳ」）は、ＯＳ及びそのＡＣＰＩドライバによって解析されるメモリ常駐テーブル組を生成することができる。前述のテーブルは、さもなければ表されないプラットフォーム・ハードウェア全てのソフトウェア列挙のルートを提供する。特に、ＡＣＰＩは、親バス標準（例えば、ＰＣ相互接続、「ＰＣＩ」）に準拠するプラットフォーム・ハードウェアを表さない。このタイプのハードウェアは、上記標準を用いて列挙し、電力管理することができるからである。よって、ＡＣＰＩテーブルに通常、宣言されるハードウェアは、バス標準を用いて列挙及び／又は管理することが可能でないプラットフォーム・ハードウェアである。すなわち、ＡＣＰＩテーブルは、プラットフォームにおけるプラットフォーム特有の（すなわち、バス標準でない）ハードウェア全ての列挙及び電力管理の抽象化を含む。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
プラットフォーム・ハードウェアは相互に依存している。よって、存在する、これを管理する「ポリシー・オーナ」は１つのみであり得る。通常の計算環境では、ＯＳがプラットフォーム資源を管理する。しかし、仮想化環境では、複数のオペレーティング・システムが、プラットフォーム上の資源に対するアクセスを有し得る。仮想化手法は、仮想マシン・モニタ（「ＶＭＭ」）を実行する単一のホスト・コンピュータが、ホストの下にあるハードウェアが、独立して動作している仮想マシン（「ＶＭ」）にみえるようにホストの複数の抽象化及び／又は表示を提示することを可能にする。各ＶＭは、それ自身のＯＳ及び／又はソフトウェア・アプリケーションを実行して、自己完結的なプラットフォームとして機能することができる。ＶＭＭは通常、ホスト上の資源の配分を管理し、ラウンドロビンやその他の所定の手法によって種々のＶＭ間で巡回するよう必要に応じてコンテキスト・スイッチングを行う。ＶＭＭはしたがって、ＡＣＰＩと相互作用し、資源競合を回避する役割を果たす。
【課題を解決するための手段】
【０００４】
本発明の実施例は、ＶＭＭと、ＡＣＰＩ準拠ゲスト・オペレーティング・システム（ＯＳ）との間の双方向通信のための方法、装置及びシステムを提供する。本明細書において本発明の「ｏｎｅ  ｅｍｂｏｄｉｍｅｎｔ」又は「ａｎ  ｅｍｂｏｄｉｍｅｎｔ」に言及していることは、その実施例に関して説明する特定の特徴、構造又は特性が本発明の少なくとも１つの実施例に含まれていることを意味している。よって、本明細書を通した種々の箇所に存在している句「ｉｎ  ｏｎｅ  ｅｍｂｏｄｉｍｅｎｔ」、「ａｃｃｏｒｄｉｎｇ  ｔｏ  ｏｎｅ  ｅｍｂｏｄｉｍｅｎｔ」等は必ずしもその全てが同じ実施例を表している訳でない。
【０００５】
本発明は、限定としてではなく例として、添付図面の図に示し、同様な参照符号は同様な構成要素を示す。
【図面の簡単な説明】
【０００６】
【図１】通常の仮想マシン・ホストの例を示す図である。
【図２Ａ】本発明の種々の実施例を更に詳細に示す図である。
【図２Ｂ】本発明の種々の実施例を更に詳細に示す図である。
【図３】本発明の実施例を示すフロー図である。
【図４】本発明の実施例を示すフロー図である。
【発明を実施するための形態】
【０００７】
ホスト上の種々のＶＭからの種々のＡＣＰＩイベント（例えば、種々のＡＰＣＩイネーブル／ディセーブル動作、Ｓ状態遷移、Ｃ状態遷移、Ｐ状態遷移、Ｔ状態遷移、及び割り込みルーティング変更）を上記最終のシナリオ（すなわち、ホストＯＳ（ハイパバイザなど）を含まないシステム）において解決することができる現行の手法は存在しない。よって、例えば、第１のＡＣＰＩイベントが第１のＶＭによって生成され、別のＡＣＰＩイベントが、同じホスト上の第２のＶＭによって生成される場合に、前述のイベント間で競合が生じた場合（例えば、それぞれが、ホスト上の別の動作を必要とする場合）、前述のイベントを解決することができる現行の方法論は存在しない。
【実施例】
【０００８】
本発明の実施例は、ＶＭＭと、ＡＣＰＩ準拠ゲストＯＳとの間の双方向通信のための方法、装置及びシステムを含む。ＡＣＰＩとは別の手法が実現された場合、ゲストＯＳはよって、別の手法に準拠することになる。したがって、本明細書の目的で、本明細書及び特許請求の範囲記載の「ＯＳ」に対する言及は、プラットフォーム上で実現される電力構成及び管理手法に準拠したオペレーティング・システムを意味している。同様に、本明細書及び特許請求の範囲記載のＡＣＰＩ及び／又はＡＣＰＩサブシステムは、限定されないが、ＡＣＰＩを含む何れかの電力構成及び管理手法を備える。
【０００９】
本発明の実施例の理解を容易にするために、図１は、通常の仮想マシン・ホスト・プラットフォーム（「ホスト１００」）を示す。前述の通り、仮想マシン・モニタ（「ＶＭＭ１３０」）は通常、ホスト・プラットフォーム上で実行し、（「仮想マシン」又は「ＶＭ」としても表す）プラットフォームの抽象化及び／又は表示を他のソフトウェアに提示する。２つのＶＭ区画のみ（「ＶＭ１１０」及び「ＶＭ１２０」（以降、併せて「ＶＭ」として表す））を示しているが、前述のＶＭは、例証に過ぎず、更なる仮想マシンをホストに加えることができる。ＶＭ１３０は、ソフトウェア（例えば、スタンドアロン・プログラム及び／又は構成部分（ホスト・オペレーティング・システムの））、ハードウェア、ファームウェア及び／又はそれらの何れかの組み合わせで実現することができる。
【００１０】
ＶＭ１１０及びＶＭ１２０は、それら自身の「ゲスト・オペレーティング・システム」（すなわち、「ゲストＯＳ１１１」及び「ゲストＯＳ１２１」（以下併せて「ゲストＯＳ」として表す）として示す、ＶＭＭ１３０によってホスティングされるオペレーティング・システム）を実行して、それぞれ、自己完結的なプラットフォームとして機能することができる。各ゲストＯＳ及び／又はゲスト・ソフトウェアは、仮想マシンではなく専用コンピュータ上で実行しているかのように動作する。すなわち、各ゲストＯＳ及び／又はゲスト・ソフトウェアは、種々のイベントを制御することを期待し得るものであり、ホスト１００上のハードウェア資源へのアクセスを有し得る。しかし、前述の通り、現実には、ＶＭＭ１３０は、イベント及びハードウェア資源に対する最終的なコントロールを有し、それ自身のポリシーによってＶＭに資源を割り当てる。
【００１１】
図１における各ＶＭは通常、プラットフォーム管理を行うためにゲスト・ソフトウェア内に仮想ＡＣＰＩドライバ（「ＡＣＰＩ  ＯＳドライバ１１３」及び「ＡＣＰＩ  ＯＳドライバ１２３」）も含む。ＡＣＰＩドライバは当該技術分野において周知であり、その更なる説明は本明細書及び特許請求の範囲では割愛する。前述のＡＣＰＩドライバは、仮想ＢＩＯＳ１１６及び１２６それぞれにおいて仮想ＡＣＰＩテーブル１１７及び１２７（通常、ＶＭＭ１３０によって生成される）と相互作用して、ＶＭ毎の構成及び電力管理を行うことができる。しかし、前述の通り、ホスト上の種々のＶＭからの種々のＡＣＰＩイベントが、ホスト・オペレーティング・システムがない状態で解決することができる手法は現在、存在していない。以下の説明はＡＣＰＩプロトコルの使用を前提としているが、他の構成プロトコルも、本発明の実施例の趣旨から逸脱しない限り、利用することができる。種々のメモリ資源もホスト１００に利用可能であり得る（図１に併せて、（ハードウェア１５０内に含まれる）メモリ資源１４０として示している）。メモリ資源１４０の一部分は、ホスト１００上の各ＶＭに割り当てることができる（ＶＭ１１０及びＶＭ１２０それぞれ内にメモリ１１４及びメモリ１２４として示す）。種々のＶＭに対するメモリ資源のこの割り当ては、通常、ＶＭＭ１３０によって管理される。
【００１２】
前述の通り、仮想化ホストにおけるＶＭＭは通常、ホスト上の資源の割り当てを管理する役割を果たす。ＶＭＭはしたがって、ホスト・プラットフォーム及びホストＡＣＰＩテーブルを、仮想化ホスト上の各ＯＳがみることが可能であった場合に生じることになる、資源の何れかの競合を回避する役割を果たす。ＶＭＭが、「ホスティングされた」ＶＭＭ（すなわち、ホスト・オペレーティング・システムによって起動され、ホスト・オペレーティング・システムの制御下のＶＭＭ）の場合、プラットフォーム・ハードウェア及びポリシー・オーナシップは通常、ホストＯＳによって維持される。ＶＭＭは次いで、ホストＯＳ上に位置し、種々のソフトウェア手法を用いてＶＭを作成し、仮想化ＯＳを実行させることが可能な完全に仮想のプラットフォームを作成する。これは、ＶＭＭが、仮想プラットフォーム・ハードウェア及び仮想ＡＣＰＩテーブル（実際のプラットフォームとの何らかの関係があり得るか、又はないことがあり得る）全てを作成することを意味する。
【００１３】
ＶＭＭは、ホスティングされていない場合（例えば、「ハイパバイザ」）、２つのやり方のうちの１つで資源競合を処理することができる。まず、ＶＭＭ自体は、プラットフォーム・ポリシー及びＡＣＰＩのオーナシップを有し、ゲスト全てに対するほぼ完全に仮想のプラットフォームを提供することができる。この手法は、ホスティングされたモデルと非常に類似しているが、ホストＯＳなしである。その代わりに、ハイパバイザは、ＡＣＰＩ及び電力管理のニュアンスを処理するというかなりの負担を負う。
【００１４】
あるいは、本発明の実施例によれば、ＶＭＭは、ホスト１００上のＶＭの１つをプラットフォームの「ポリシー・オーナ」（以降、「ポリシーＶＭ」として表す）と表すことができる。ポリシーＶＭは、ホスト１００のプラットフォーム電力ポリシーを支配し、プラットフォーム・ハードウェア及び「実際の」ＡＣＰＩテーブルの大半を「みる」ことができる。その後のゲストは、プラットフォーム制御に対する必要性なしの特定用途のゲストであり得るものであり、かつ／又は、ハイパバイザによって提示される単純化された仮想プラットフォーム・ハードウェアを有し得る。前述のゲストは「従属ゲスト」と認めることができる。更に、ＶＭＭは、前述のゲストにおけるゲスト・ソフトウェアがＡＣＰＩアウェアである場合に、前述の従属ゲストの仮想化ＡＣＰＩテーブルを生成することができる。
【００１５】
本発明の実施例は、ＶＭＭとＡＣＰＩテーブルとの間の双方向通信を可能にする。特に、本発明の実施例は、システム・ファームウェアの一部として提供されるＡＣＰＩテーブル及びＡＣＰＩ手法を強化することによってポリシーＶＭにおけるＡＣＰＩサブシステムがＶＭＭと通信することを可能にする。強化された前述のＡＣＰＩ手法は、指定されたメモリ動作領域及び仮想化ハードウェア装置と相互作用して、ＡＣＰＩ関連情報及びイベントをＶＭＭに通知する。指定されたメモリ動作領域は「メールボックス」として用いられ、仮想ハードウェア装置を用いて、メモリ動作領域のメールボックスが、新たな情報を含んでいる旨をＶＭＭに通知する。一実施例では、仮想ハードウェア装置は、未使用の単一の８ビット入力／出力（Ｉ／Ｏ）ポ―トである。種々の実施例では、仮想化ハードウェア装置に用いられるＩ／Ｏポートは、チップセットによってデコードされないＩ／Ｏポートであり得るものであり、装置には一切割り当てられないことがあり得るものであり、プラットフォーム上の副作用を有しないことが保証される。これは、同じＡＣＰＩテーブル及び手法を、ＶＭＭがある状態及びＶＭＭがない状態で用いることを可能にする。本発明の実施例の趣旨から逸脱しない限り、別の仮想ハードウェア装置も利用することができる。
【００１６】
逆に、ポリシーＶＭに通知し、かつ／又は、ポリシーＶＭと通信して、プラットフォーム管理決定に影響を及ぼすために「メールボックス」をＶＭＭによって用いることもできる。この手法を容易にするために、ポリシーＶＭにおけるＡＣＰＩドライバは、システム制御割り込み（「ＳＣＩ」）及び汎用イベント（「ＧＰＥ」）を用いることによって「エンライトンされ（ｅｎｌｉｇｈｔｅｎｅｄ））」得る。ＧＰＥは、当該技術分野における当業者に周知であり、本発明の実施例を不必要にわかりにくくすることのないように本明細書及び特許請求の範囲において更に詳細に説明しないこととする。ＧＰＥを用いてＳＣＩの原因を判定することができる。ＳＣＩは、ポリシーＶＭのＯＳにおけるＡＣＰＩサブシステムと通信するためにＡＣＰＩハードウェア（例えば、ホスト１００のチップセット上のＡＣＰＩハードウェア）によって生成されるＡＣＰＩ定義割り込みである。
【００１７】
よって、本発明の実施例によれば、ＶＭＭは、ＡＣＰＩ手法情報をメールボックスに追加し、ＳＣＩをポリシーＶＭに投入することができる。ＳＣＩを受け取ると、ポリシーＶＭのＯＳにおけるＡＣＰＩドライバは、割り込みサービス・ルーチン（「ＩＳＲ」）及び／又はデファード手続コール（「ＤＰＣ」）をポリシーＶＭのＡＣＰＩサブシステムにおいて実行させることができる。ポリシーＶＭは次いで、ＧＰＥステータス・レジスタにクエリすることができ、クエリはＶＭＭによって傍受することができる。ＶＭＭはＧＰＥレジスタ・ブロックを仮想化して仮想ＧＰＥステータス・レジスタを生成し、その後、ポリシーＶＭのＯＳにおけるＡＣＰＩドライバから前述のＩＳＲ及び／又はＤＰＣクエリをトラップすることができる。ＶＭＭは次いで、クエリの結果を編集し、仮想ＧＰＥステータスを「アクティブ」として戻すことができる。その後、ポリシーＶＭのＡＣＰＩドライバは、アクティブであったＧＰＥに基づいてＳＣＩを処理するためのドライバをディスパッチすることができる。
【００１８】
図２Ａ乃至２Ｂは、本発明の種々の実施例を更に詳細に示す図である。本発明の実施例を不必要にわかりにくくすることのないように、特定の構成要素（例えば、仮想ＢＩＯＳ及び仮想ＡＣＰＩテーブル）は本明細書及び特許請求の範囲に示していない。しかし、本発明の実施例の趣旨から逸脱しない限り、種々の他の構成部分がホスト２００上に存在し、かつ／又はホスト２００に結合され得ることを当業者は容易に認識するであろう。更に、３つのＶＭを含んでいるとしてホスト２００を示しているが、本発明の実施例の趣旨から逸脱しない限り、より多く又はより少ないＶＭを実現することができることを当業者は認識するであろう。ＶＭの１つはポリシーＶＭ（「ポリシーＶＭ２０５」として示し、他のＶＭは「ＶＭ２１０」及び「ＶＭ２２０」として表す）として表すことができる。
【００１９】
図２Ａは、本発明の実施例を示す。ここで、ポリシーＶＭ２０５は、ＶＭ２１０及び／又はＶＭ２２０からの入力なしで、プラットフォーム電力ポリシー（ホスト２００）を支配する。この実施例によれば、ホスト上のファームウェア（ＢＩＯＳ２２５として示す）は、ポリシーＶＭ２０５に割り当てられるメモリ資源２４０（「メモリ２０８」として示す）の一部分内のメモリ動作領域（「メールボックス２５０」）を表し得る。一実施例では、メールボックス２５０は、４ＫＢ境界上にあり、長さが４ＫＢの倍数であり得る。別の実施例では、本発明の実施例の趣旨から逸脱しない限り、他の境界を利用することができる。
【００２０】
ポリシーＶＭ２０５のゲストＯＳにおけるＡＰＣＩサブシステム（「ゲストＯＳ２０６」及び「ゲスト・ソフトウェア２０７」のうちの「ＡＣＰＩ  ＯＳドライバ２１５」として示している）が方法を実行すると、その方法は情報をメールボックス２５０に投入し、拡張ＶＭＭ２３０が仮想ＡＣＰＩハードウェア装置（「ＩＯポート２７５」として示す）にアクセスすることを可能にする。本明細書及び特許請求の範囲使用の「ＡＣＰＩ  ＯＳ  ドライバ」の語が、何れかのタイプのＡＣＰＩ（又は同等の）サブシステムを包含し得ることを当業者は容易に分かるであろう。よって、例えば、個々のドライバの概念が存在しないことがあり得るオペレーティング・システムでは、ＡＣＰＩ（又は同等の）サブシステムは、別個の構成部分になることなく、オペレーティング・システムの一部を備え得るに過ぎない。よって、本明細書及び特許請求の範囲における「ＡＣＰＩ  ＯＳドライバ」への参照は何れも、前述のＡＣＰＩ（又は同等の）サブシステムを全て含むものとする。拡張ＶＭＭ２３０が、既存ＶＭＭ、及び／又は既存ＶＭＭとともに機能し得るその他の構成要素に対して行われる拡張を備え得ることも当業者に明らかである。拡張ＶＭ２３０は、よって、ソフトウェア（例えば、スタンドアロン・プログラム及び／又は構成部分（ホスト・オペレーティング・システムの））、ハードウェア、ファームウェア及び／又はそれらの何れかの組み合わせで実現することができる。
【００２１】
ＩＯポート２７５をアクセスすると、拡張ＶＭＭ２３０は、メールボックス２５０における情報を解析することができる。本発明の実施例はよって、ポリシーＶＭ２００がＡＣＰＩ準拠ゲストＯＳ（例えば、ゲストＯＳ２０６）を含む場合、ポリシーＶＭ２０５と拡張ＶＭＭ２３０が情報を交換することを可能にする。拡張ＶＭＭ２３０は、その後、この情報をホスト１００上の他のＶＭに伝播して、適切な措置を（必要な場合、ポリシーＶＭ２０５によって実現されるポリシー決定に基づいて）その他のＶＭが講じることを可能にすることができる。このようにして、本発明の一実施例によれば、ポリシーＶＭ２０５は、ホスト１００上のプラットフォーム構成及び電力管理の詳細を支配し、よって、種々のＶＭからの競合イベントを回避することができる。
【００２２】
他の実施例では、図２Ｂに示すように、拡張ＶＭＭ２３０は、ホスト１００上のその他のＶＭの必要性をポリシーＶＭ２０５に通信することができる。ポリシーＶＭ２０５はよって、プラットフォームのポリシー決定を行う前に、ホスト１００上の他のＶＭの必要性を考慮に入れることができる。すなわち、ポリシーＶＭ２０５がプラットフォームの決定を一方的に行う代わりに、この実施例では、ホスト２００上の他のＶＭは、（拡張ＶＭＭ２３０を介して）決定に影響を及ぼす機会を有し得る。ポリシーＶＭ２０５は、ホスト１００上のその他のＶＭの要件を評価し、プラットフォームの決定を行う際に前述の要件を考慮に入れることができる。よって、ポリシーＶＭ２０５は、プラットフォームの意思決定のコントロールを持ち続けるが、ホスト２００上のＶＭ全てによりうまく合い得る、より多くの情報を知ったうえでのポリシー作成を行うことを可能にする。
【００２３】
この実施例によれば、ＢＩＯＳ２２５は、メモリ資源２４０内のメモリ・メールボックス２５０をなお指定することができる。ＡＣＰＩ  ＯＳドライバ２１５が方法を実行すると、その方法はメールボックス２５０に情報を投入し、拡張ＶＭＭ２３０がＩＯポート２７５にアクセスすることを可能にする。しかし、この実施例では、ＡＣＰＩ  ＯＳ  ドライバ２１５は更に、拡張ＶＭＭ２３０がＳＣＩ及びＧＰＥを利用してホスト２００上の電力管理及び構成を連係することができるように「エンライトン」され得る。前述の通り、拡張ＶＭＭ２３０は、ＳＣＩをゲストＯＳ２０６に投入することができる（図２Ｂに「パスＡ」として示す）。ポリシーＶＭ２００は、ＳＣＩを受け取り、ＩＳＲ及び／又はＤＰＣをＶＭ１１０のＡＣＰＩサブシステム（すなわち、ＡＣＰＩ  ＯＳドライバ２１５）において実行させることができる。ＩＳＲ及び／又はＤＰＣはＧＰＥステータス・レジスタにクエリすることができ、クエリは拡張ＶＭＭ２３０によって傍受することができる。拡張ＶＭＭ２３０は、仮想ＧＰＥステータス・レジスタを生成し、その後、ＡＣＰＩ  ＯＳドライバ２１５から前述のＩＳＲ及び／又はＤＰＣクエリをトラップすることができる。拡張ＶＭＭ２３０は次いで、クエリの結果を編集し、仮想ＧＰＥステータスを「アクティブ」として戻すことができる（図２Ｂに「パスＢ」として示す）。その後、ＡＣＰＩ  ＯＳドライバ２１５は、アクティブであったＧＰＥに基づいてＳＣＩを処理するためのエンライトンされたドライバをディスパッチすることができる。一実施例では、ＡＣＰＩ  ＯＳドライバ２１５は仮想ＧＰＥをフックすることができるので、デバイス・ドライバはＳＣＩが投入されると実行することができる。
【００２４】
一実施例では、拡張ＶＭＭ２３０は、ホスト２００上のハードウェア装置の大半がポリシーＶＭ２０５上のゲストＯＳ２１１に直接マッピングされることを可能にし得る。この実施例では、拡張ＶＭＭ２３０は、ＡＣＰＩプラットフォーム構成及び電力管理動作全てをゲストＯＳ２１１が行うことを可能にすることによって単純にすることができる。しかし、拡張ＶＭＭ２３０は、適切なプラットフォーム管理を行うためにいくつかのタイプのＡＣＰＩイベントについて通知されなければならない。前述には、Ｓ状態、Ｃ状態、Ｐ状態及びＴ状態の遷移が含まれる。この情報の一部はスタティックＡＣＰＩテーブルによって入手可能であるが、他の情報は、ゲストＯＳ２１１におけるＡＭＬインタプリタによってＡＣＰＩ手法の実行によってのみ利用可能であり得る。このシナリオでは、ゲストＯＳ２１１は、構成及び電力管理のためにプラットフォーム・ポリシーを保有し得る。拡張ＶＭＭ２３０並びにゲストＯＳ２１１及びゲストＯＳ２２１は、前述のポリシー決定を順守する必要があり得る。
【００２５】
一実施例では、拡張ＶＭＭ２３０は、仮想ファームウェア及び仮想化プラットフォーム構成部分を生成するよう企図することもできる。この実施例では、ゲストＯＳ２０６がＡＣＰＩ準拠であるとすれば、拡張ＶＭＭ２３０は、仮想化されたＡＣＰＩテーブル及び手法も生成することができる。拡張ＶＭＭ２３０は、前述の種々の実施例による前述のＡＣＰＩテーブル及び手法を強化することができる。この実施例によれば、拡張ＶＭＭ２３０は、プラットフォーム構成及び電力管理イベントへの可視性を有し得るものであり、上記情報を用いて、各ゲストＶＭに供給されるハードウェア資源及びＣＰＵサイクルを最適化することができる。よって、例えば、拡張ＶＭＭ２３０が、ＶＭ２１０からのＳ３、Ｓ４又はＳ５遷移を検出した場合、拡張ＶＭＭ２３０のスケジューリング機構は、ＶＭ２１０へのＣＰＵサイクルの割り当てを停止することができ、代わりに、ホスト２００上の他のＶＭ（例えば、ポリシーＶＭ２０５及びＶＭ２２０）にＣＰＵメモリやその他のハードウェア資源を割り当てることができる。拡張ＶＭＭ２３０は、各ＶＭにおけるＣｘ、Ｐｘ及びＴｘ状態遷移の知識を用いて、ＶＭに割り当てられるＣＰＵ及びＣＰＵサイクルの数を調節することもできる。このようにして、拡張ＶＭＭ２３０は、ホスト２００上のＶＭ内のゲストＯＳ全ての状態に対する大局的な表示を維持し、それによって、最適なプラットフォーム構成及び電力管理の決定を拡張ＶＭＭ２３０が行うことを可能にすることができる。
【００２６】
図３は、本発明の実施例を示すフロー図である。以下の動作は、順次プロセスとして表すことができるが、動作の多くは実際には、並列及び／又は同時に行うことができる。更に、動作の順序は、本発明の実施例の趣旨から逸脱しない限り、再配列することができる。３０１では、ホスト２００が起動すると、ＢＩＯＳ２２５が、ポリシーＶＭ２０５のメモリ内のメモリ動作領域（「メールボックス２５０」）を指定することができる。その後、３０２で、拡張ＶＭＭ２３０は、ポリシーＶＭ２０５を含む、ホスト２００上の種々のＶＭをインスタンス化することができる。ポリシーＶＭ２０５は、ゲストＯＳ２０６内のＡＣＰＩ  ＯＳドライバ２１５を含み得る。３０３では、ＡＣＰＩ  ＯＳドライバ２１５は手法を実行することができ、３０４では、この手法からの情報をメールボックス２５０に入れることができる。３０５では、イベントを（ＩＯポートや前述のその他の機構を介して）生成することができる。その後、３０６では、拡張ＶＭＭ２３０は、メールボックス２５０から情報を取り出し、３０７で適切な措置を講じることができる。
【００２７】
図４は、本発明の実施例を示すフロー図である。やはり、以下の動作は、順次プロセスとして表すことができるが、動作の多くは実際に並列及び／又は同時に行うことができる。更に、本発明の趣旨から逸脱しない限り、動作の順序を再配列することができる。前述の通り、４０１では、ホスト２００が起動すると、ＢＩＯＳ２２５は、ポリシーＶＭ２０５のメモリ内のメモリ動作領域（「メールボックス２５０」）を指定することができる。その後、４０２で、拡張ＶＭＭ２３０は、ホスト２００上の種々のＶＭ（ポリシーＶＭ２０５を含む）をインスタンス化することができる。ポリシーＶＭ２０５は、ゲストＯＳ２０６内にＡＣＰＩ  ＯＳドライバ２１５を含み得る。４０３では、拡張ＶＭＭ２３０は、メールボックス２５０をデータで埋めることができ、４０４では、拡張ＶＭＭ２３０はＳＣＩをゲストＯＳ２０６に投入することができる。４０５では、ゲストＯＳ２０６はＳＣＩをＡＣＰＩ  ＯＳドライバ２１５に転送することができ、４０６では、ＡＣＰＩ  ＯＳドライバ２１５は、ＡＣＰＩハードウェアにおけるＧＰＥにクエリしてＳＣＩの原因を判定することができる。拡張ＶＭＭ２３０は、４０７で、仮想ＧＰＥの仮想ＧＰＥステータス・レジスタを生成し、仮想ＧＰＥステータスを「アクティブ」として戻すことによって前述のクエリに応答することができる。４０８では、ＡＣＰＩ  ＯＳドライバ２１５は、アクティブであったＧＰＥに基づいてＳＣＩを処理するためのドライバをディスパッチすることができる。
【００２８】
本発明の実施例によるホストは、種々の計算装置上で実現することができる。本発明の実施例によれば、計算装置は、本発明の実施例を実現する旨の命令を実行することができる種々の構成部分を含み得る。例えば、計算装置は、マシンアクセス可能な少なくとも１つの媒体を含み得るものであり、かつ／又は、マシンアクセス可能な少なくとも１つの媒体に結合し得る。本明細書及び特許請求の範囲記載の「マシン」は、限定しないが、１つ又は複数のプロセッサを備えた何れかの計算装置を含む。  本明細書及び特許請求の範囲記載の、マシンアクセス可能な媒体は、計算装置によってアクセス可能な何れかの形態における情報を記憶し、かつ／又は伝送する何れかの機構を含み、マシンアクセス可能な媒体は、限定しないが、記録可能な／記録可能でない媒体（リードオンリー・メモリ（ＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、磁気ディスク記憶媒体、光記憶媒体や、フラッシュ・メモリ装置など）、並びに、伝搬信号（搬送波、赤外信号やディジタル信号など）の電気的、光学的、音響的、又はその他の形式を含む。
【００２９】
一実施例によれば、計算装置は、１つ又は複数のプロセッサなどの種々の他の周知の構成部分を含み得る。プロセッサ及びマシンアクセス可能な媒体は、通信するようブリッジ／メモリ・コントローラを用いて結合することができ、プロセッサは、マシンアクセス可能な媒体に記憶された命令を実行することができ得る。ブリッジ／メモリ・コントローラはグラフィクス・コントローラに結合することができ、グラフィックス・コントローラは、表示装置上の表示データの出力を制御することができる。ブリッジ／メモリ・コントローラは１つ又は複数のバスに結合することができる。前述の構成要素の１つ又は複数は、単一のパッケージ上に、又は複数のパッケージ若しくはダイを用いて、プロセッサとともに一体化することができる。ユニバーサル・シリアル・バス（「ＵＳＢ」）ホスト・コントローラなどのホスト・バス・コントローラはバスに結合することができ、複数の装置をＵＳＢに結合することができる。例えば、キーボードやマウスなどのユーザ入力装置を、入力データを供給するために計算装置に含めることができる。別の実施例では、ホスト・バス・コントローラは、種々の他の相互接続標準（ＰＣＩ、ＰＣＩエクスプレス、ファイヤワイヤやその他のそうした既存及び将来の基準を含む）と互換であり得る。
【００３０】
上記明細書では、その特定の例示的な実施例を参照して本発明を説明している。しかし、特許請求の範囲記載の本発明のより広範囲にわたる趣旨及び範囲から逸脱しない限り、種々の修正及び変更を行うことができることが認識されよう。本明細書及び添付図面はよって、限定的な意味合いでなく例証的な意味合いで解するものとする。
【００３１】
図２Ａ乃至２Ｂは、本発明の種々の実施例を更に詳細に示す図である。本発明の実施例を不必要にわかりにくくすることのないように、特定の構成要素（例えば、仮想ＢＩＯＳ及び仮想ＡＣＰＩテーブル）は本明細書及び特許請求の範囲に示していない。しかし、本発明の実施例の趣旨から逸脱しない限り、種々の他の構成部分がホスト２００上に存在し、かつ／又はホスト２００に結合され得ることを当業者は容易に認識するであろう。更に、３つのＶＭを含んでいるとしてホスト２００を示しているが、本発明の実施例の趣旨から逸脱しない限り、より多く又はより少ないＶＭを実現することができることを当業者は認識するであろう。ＶＭの１つはポリシーＶＭ（「ポリシーＶＭ２０５」として示し、他のＶＭは「ＶＭ２１０」及び「ＶＭ２２０」として表す）として表すことができる。
【００３２】
図２Ａは、本発明の実施例を示す。ここで、ポリシーＶＭ２０５は、ＶＭ２１０及び／又はＶＭ２２０からの入力なしで、プラットフォーム電力ポリシー（ホスト２００）を支配する。この実施例によれば、ホスト上のファームウェア（ＢＩＯＳ２２５として示す）は、ポリシーＶＭ２０５に割り当てられるメモリ資源２４０（「メモリ２０８」として示す）の一部分内のメモリ動作領域（「メールボックス２５０」）を表し得る。一実施例では、メールボックス２５０は、４ＫＢ境界上にあり、長さが４ＫＢの倍数であり得る。別の実施例では、本発明の実施例の趣旨から逸脱しない限り、他の境界を利用することができる。
【符号の説明】
【００３３】
２００  ホスト
２０５  ポリシーＶＭ
２１０  ＶＭ
２２０  ＶＭ
【図１】
2011238272.tif 000003
【図２Ａ】
2011238272.tif 000004
【図２Ｂ】
2011238272.tif 000005
【図３】
2011238272.tif 000006
【図４】
2011238272.tif 000007