(57)【要約】  一実施の形態では、方法は、制御を仮想マシンモニタ（ＶＭＭ）から仮想マシン（ＶＭ）に移行させること、ＶＭＭタイマインジケータがイネーブル値に設定されていると判断すること、及び、ＶＭＭにより構成されるＶＭＭタイマ値を特定することを含む。本方法は、タイミングソースの現在値をＶＭＭタイマ値と周期的に比較すること、タイミングソースの現在値がＶＭＭタイマ値に達している場合、内部イベントを生成すること、並びに、内部イベントに応答して、ＶＭＭ及びＶＭのいずれにおいてもイベント処理手続きを発生させることなく制御をＶＭＭに移行させることをさらに含む。【選択図】なし
2008513909.tif 000002
【特許請求の範囲】
【請求項１】
制御を仮想マシンモニタ（ＶＭＭ）から仮想マシン（ＶＭ）に移行させること、
ＶＭＭタイマインジケータがイネーブル値に設定されていると判断すること、
前記ＶＭＭにより構成されるＶＭＭタイマ値を特定すること、
タイミングソースの現在値を前記ＶＭＭタイマ値と周期的に比較すること、
該タイミングソースの該現在値が該ＶＭＭタイマ値に達している場合、内部イベントを生成すること、並びに
該内部イベントに応答して、前記ＶＭＭ及び前記ＶＭのいずれにおいてもイベント処理手続きを発生させることなく制御を前記ＶＭＭに移行させること
を含む方法。
【請求項２】
制御を前記ＶＭＭに移行させること、及び
制御が前記ＶＭＭタイマ値により前記ＶＭＭに戻ることを該ＶＭＭに通知すること
をさらに含む、請求項１に記載の方法。
【請求項３】
前記ＶＭＭにより構成される前記ＶＭＭタイマ値を特定することは、仮想マシン制御構造（ＶＭＣＳ）から該ＶＭＭタイマ値を検索することを含む、請求項１に記載の方法。
【請求項４】
前記タイミングソースの前記現在値を周期的に比較することは、
前記ＶＭにより実行される各サイクル後に該タイミングソースの該現在値を前記ＶＭＭタイマ値と比較すること
を含む、請求項４に記載の方法。
【請求項５】
制御を仮想マシンモニタ（ＶＭＭ）から仮想マシン（ＶＭ）に移行させること、
ＶＭＭタイマインジケータがイネーブル値に設定されていると判断すること、
前記ＶＭを実行している間、タイミングソースの予め規定された刻み数毎にＶＭＭタイマ値を減分させること、
該ＶＭＭタイマ値がゼロに達していると判断される場合、内部イベントを生成すること、並びに
該内部イベントに応答して、前記ＶＭＭ及び前記ＶＭのいずれにおいてもイベント処理手続きを発生させることなく制御を前記ＶＭＭに移行させること
を含む方法。
【請求項６】
前記ＶＭＭへの制御の移行に関連するフォルトを検出すること、
前記減分されたＶＭＭタイマ値を仮想マシン制御構造（ＶＭＣＳ）に記憶すること、及び
制御を前記ＶＭＭに移行させること
をさらに含む、請求項５に記載の方法。
【請求項７】
前記ＶＭＭタイマ値をレジスタに記憶すること
をさらに含む、請求項５に記載の方法。
【請求項８】
仮想マシンモニタ（ＶＭＭ）と、
該ＶＭＭによって制御され、該ＶＭＭによって構成されるＶＭＭタイマインジケータ及びＶＭＭタイマ値を記憶するデータ構造と、
制御を前記ＶＭＭから仮想マシン（ＶＭ）に移行させ、前記ＶＭＭタイマインジケータがイネーブル値に設定されていると判断し、タイミングソースの現在値を前記ＶＭＭタイマ値と周期的に比較し、該タイミングソースの該現在値が該ＶＭＭタイマ値に達している場合、内部イベントを生成し、該内部イベントに応答して、前記ＶＭＭ及び前記ＶＭのいずれにおいてもイベント処理手続きを発生させることなく制御を前記ＶＭＭに移行させるＶＭＭタイマサポートロジックと
を備える装置。
【請求項９】
前記ＶＭＭタイマサポートロジックはさらに、制御を前記ＶＭＭに移行させ、制御が前記ＶＭＭタイマ値により前記ＶＭＭに戻ることを該ＶＭＭに通知する、請求項８に記載の装置。
【請求項１０】
前記ＶＭＭタイマロジックは、前記ＶＭにより実行される各サイクル後に、前記タイミングソースの前記現在値を前記ＶＭＭタイマ値と比較することにより該タイミングソースの該現在値を周期的に比較する、請求項８に記載の装置。
【請求項１１】
仮想マシンモニタ（ＶＭＭ）と、
該ＶＭＭによって制御され、ＶＭＭタイマインジケータを記憶するデータ構造と、
制御を前記ＶＭＭから仮想マシン（ＶＭ）に移行させ、前記ＶＭＭタイマインジケータがイネーブル値に設定されていると判断し、前記ＶＭを実行している間、タイミングソースの予め規定された刻み数毎にＶＭＭタイマ値を減分させ、該ＶＭＭタイマ値がゼロに達していると判断される場合、内部イベントを生成し、該内部イベントに応答して、前記ＶＭＭ及び前記ＶＭのいずれにおいてもイベント処理手続きを発生させることなく制御を前記ＶＭＭに移行させるＶＭＭタイマサポートロジックと
を備える装置。
【請求項１２】
前記ＶＭＭタイマサポートロジックはさらに、前記ＶＭＭタイマがゼロに達していると判断する前に前記ＶＭＭへの制御の移行に関連するフォルトを検出し、前記減分されたＶＭＭタイマ値を前記ＶＭＭにより制御される前記データ構造に記憶し、制御を前記ＶＭＭに移行させる、請求項１１に記載の装置。
【請求項１３】
前記ＶＭＭタイマ値を記憶するレジスタ
をさらに備える、請求項１１に記載の装置。
【請求項１４】
タイマインジケータ及びタイマ値を記憶するメモリと、
該メモリに結合され、前記タイマインジケータを使用して、仮想マシン（ＶＭ）の動作中に、仮想マシンモニタ（ＶＭＭ）タイマがイネーブルされていると判断し、タイミングソースの現在値を前記タイマ値と周期的に比較し、該タイミングソースの該現在値が該タイマ値に達している場合、内部イベントを生成し、該内部イベントに応答して、前記ＶＭＭ及び前記ＶＭのいずれにおいてもイベント処理手続きを発生させることなく制御を前記ＶＭＭに移行させるプロセッサと
を備えるシステム。
【請求項１５】
前記プロセッサはさらに、制御を前記ＶＭＭに移行させ、制御が前記ＶＭＭタイマ値により前記ＶＭＭに戻ることを該ＶＭＭに通知する、請求項１４に記載のシステム。
【請求項１６】
前記プロセッサは、前記ＶＭにより実行される各サイクル後に、前記タイミングソースの前記現在値を前記ＶＭＭタイマ値と比較することにより該タイミングソースの該現在値を周期的に比較する、請求項１４に記載のシステム。
【請求項１７】
タイマインジケータを記憶するメモリと、
該メモリに結合され、前記タイマインジケータを使用して、仮想マシン（ＶＭ）の動作中に、仮想マシンモニタ（ＶＭＭ）タイマがイネーブルされていると判断し、前記ＶＭを実行している間、タイミングソースの予め規定された刻み数毎にＶＭＭタイマ値を減分させ、該ＶＭＭタイマ値がゼロに達していると判断される場合、内部イベントを生成し、該内部イベントに応答して、前記ＶＭＭ及び前記ＶＭのいずれにおいてもイベント処理手続きを発生させることなく制御を前記ＶＭＭに移行させるプロセッサと
を備えるシステム。
【請求項１８】
前記プロセッサはさらに、前記ＶＭＭタイマがゼロに達していると判断する前に、前記ＶＭＭへの制御の移行に関連するフォルトを検出し、前記減分されたＶＭＭタイマ値を前記ＶＭＭにより制御される前記データ構造に記憶し、制御を前記ＶＭＭに移行させる、請求項１７に記載のシステム。
【請求項１９】
前記ＶＭＭタイマ値を記憶するレジスタ
をさらに備える、請求項１７に記載のシステム。
【請求項２０】
処理システムにより実行されると、該処理システムに方法を実行させる命令を含むマシン可読媒体であって、該方法は、
制御を仮想マシンモニタ（ＶＭＭ）から仮想マシン（ＶＭ）に移行させること、
ＶＭＭタイマインジケータがイネーブル値に設定されていると判断すること、
前記ＶＭＭにより構成されるＶＭＭタイマ値を特定すること、
タイミングソースの現在値を前記ＶＭＭタイマ値と周期的に比較すること、
該タイミングソースの該現在値が該ＶＭＭタイマ値に達している場合、内部イベントを生成すること、並びに
該内部イベントに応答して、前記ＶＭＭ及び前記ＶＭのいずれにおいてもイベント処理手続きを発生させることなく制御を前記ＶＭＭに移行させること
を含む、マシン可読媒体。
【請求項２１】
前記方法は、
制御を前記ＶＭＭに移行させること、及び
制御が前記ＶＭＭタイマ値により前記ＶＭＭに戻ることを該ＶＭＭに通知すること
をさらに含む、請求項２０に記載のマシン可読媒体。
【請求項２２】
前記ＶＭＭにより構成される前記ＶＭＭタイマ値を特定することは、仮想マシン制御構造（ＶＭＣＳ）から前記ＶＭＭタイマ値を検索することを含む、請求項２０に記載のマシン可読媒体。
【請求項２３】
処理システムにより実行されると、該処理システムに方法を実行させる命令を含むマシン可読媒体であって、該方法は、
制御を仮想マシンモニタ（ＶＭＭ）から仮想マシン（ＶＭ）に移行させること、
ＶＭＭタイマインジケータがイネーブル値に設定されていると判断すること、
前記ＶＭを実行している間、タイミングソースの予め規定された刻み数毎にＶＭＭタイマ値を減分させること、
該ＶＭＭタイマ値がゼロに達していると判断される場合、内部イベントを生成すること、並びに
該内部イベントに応答して、前記ＶＭＭ及び前記ＶＭのいずれにおいてもイベント処理手続きを発生させることなく制御を前記ＶＭＭに移行させること
を含む、マシン可読媒体。
【請求項２４】
前記方法は、
前記ＶＭＭへの制御の移行に関連するフォルトを検出すること、
前記減分されたＶＭＭタイマ値を仮想マシン制御構造（ＶＭＣＳ）に記憶すること、及び
制御を前記ＶＭＭに移行させること
をさらに含む、請求項２３に記載のマシン可読媒体。
【請求項２５】
前記方法は、
前記ＶＭＭタイマ値をレジスタに記憶すること
をさらに含む、請求項２３に記載のマシン可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、包括的には仮想マシンに関し、特に仮想マシンモニタに関連するタイマにサポートを提供することに関する。
【背景技術】
【０００２】
オペレーティングシステム及びアプリケーションソフトウェアは通常、タイマ及び時間参照源を使用してアクティビティをスケジュールし最適化する。たとえば、オペレーティングシステムカーネルはタイマを使用して複数のユーザレベルアプリケーションがシステムの資源（たとえば、中央処理装置（ＣＰＵ））を時分割できるようにすることができる。パーソナルコンピュータ（ＰＣ）プラットフォームにおいて使用されるタイマの一例は、８２５４プログラマブルインターバルタイマである。このタイマは、指定の間隔後に、又は周期的に割り込みを発行するように構成することができる。
【０００３】
時間参照源の一例は、Ｉｎｔｅｌ（登録商標）Ｐｅｎｔｉｕｍ（登録商標）４の命令セットアーキテクチャ（ＩＳＡ）（本明細書ではＩＡ−３２ＩＳＡと呼ぶ）において使用されるタイムスタンプカウンタ（ＴＳＣ）である。ＴＳＣは、プロセッサのハードウェアリセット後に０に設定され、次いで、プロセッサがＨＬＴ命令によって停止しているときであってもプロセッサクロックサイクル毎に増分される６４ビットカウンタである。ＴＳＣは、割り込みの生成に使用することができない。時間間隔の測定に有用なのは時間参照のみである。ＩＡ−３２ＩＳＡは、ＴＳＣの値の読み取りに命令（ＲＤＴＳＣ）を提供し、ＴＳＣへの書き込みに命令（ＷＲＭＳＲ）を提供する。ＷＲＭＳＲがタイムスタンプカウンタの書き込みに使用される場合、３２下位ビットのみに書き込むことができ、３２上位ビットはクリアされて０になる。
【０００４】
仮想マシンシステムでは、仮想マシンモニタ（ＶＭＭ）は、従来のオペレーティングシステムと同様にしてプラットフォームベースのタイマを利用する必要があり得る。たとえば、ＶＭＭはタイマを使用して、資源のスケジュール、セキュリティの確保、サービス品質の提供等を行うことができる。
【０００５】
本発明を限定ではなく例として、同様の参照符号が同様の要素を指す添付図面の図に示す。
【発明を実施するための最良の形態】
【０００６】
仮想マシンモニタに関連するタイマにサポートを提供する方法及び装置を説明する。以下の説明では説明を目的として、本発明の完全な理解を提供するために多くの特定の詳細が記載される。しかし、本発明がこういった特定の詳細なしで実施可能なことが当業者には明白であろう。
【０００７】
以下の詳細な説明のいくつかの部分は、コンピュータシステムのレジスタ又はメモリ内のデータビットに対しての演算のアルゴリズム及びシンボル表現に関して提示される。これらのアルゴリズムの説明及び表現は、データ処理分野の熟練者（当業者）が他の当業者に各自の作業の本質を最も有効に伝えるために使用する手段である。アルゴリズムは本明細書において、また一般に、所望の結果に繋がる自己無撞着の命令シーケンスであると考えられる。演算とは、物理量の物理的な操作を必要とするものである。必ずしもではないが通常、これらの量は、記憶、転送、結合、比較、また他の様式での操作が可能な電気的又は磁気的な信号の形態をとる。主に一般的に使用されているという理由により、これらの信号をビット、値、要素、記号、文字、用語、数等と呼ぶことが都合のよいことが折にふれて証明されている。
【０００８】
しかし、これらの用語及び同様の用語にはすべて、適当な物理量が関連付けられており、これらの用語及び同様の用語はすべてこれらの量に与えられる都合のよい単なるラベルにすぎないことを念頭に置かれたい。以下の考察から明らかなように特に別記されない限り、本発明全体を通して、「処理」、「計算」、「算出」、又は「求める」等の用語を利用した考察は、コンピュータシステムのレジスタ又はメモリ内の物理（電子）量として表されるデータを操作し、コンピュータシステムメモリ若しくはレジスタ又は他のこのような情報記憶装置、情報伝送装置、若しくは情報表示装置内で物理量として同様に表される他のデータに変換するコンピュータシステム又は同様の電子計算装置のアクション及びプロセスを指し得ることが理解される。
【０００９】
以下の実施形態の詳細な説明では、本発明を実施することができる特定の実施形態を例示として示す添付図面を参照する。図面中、同様の番号は何枚かの図全体を通して実質的に同様の構成要素を説明する。これらの実施形態について、当業者が本発明を実施できるように十分詳細に説明する。他の実施形態を利用することもでき、構造的、論理的、及び電気的な変更を本発明の範囲から逸脱することなく行うことができる。さらに、本発明の各種実施形態は、異なるが、必ずしも相互に排他的である必要はないことを理解されたい。たとえば、一実施形態において説明される特定の特徴、構造、又は特性を他の実施形態内に含めてもよい。したがって、以下の詳細な説明は限定の意味で解釈されるべきではなく、本発明の範囲は添付の特許請求の範囲、及びこのような特許請求の範囲が権利付与する全範囲の等価物によってのみ規定される。
【００１０】
以下の例は実行ユニット及び論理回路の文脈の中で仮想マシンモニタ（ＶＭＭ）に関連するタイマにサポートを提供することについて説明することができるが、本発明の他の実施形態はソフトウェアにより実現することができる。たとえば、いくつかの実施形態では、本発明は、本発明によるプロセスを実行するようにコンピュータ（又は他の電子装置）をプログラムするために使用することができる命令を記憶しているマシン可読媒体又はコンピュータ可読媒体を備えることができるコンピュータプログラム製品又はソフトウェアとして提供することができる。他の実施形態では、本発明のプロセスは、プロセスを実行するハードワイヤードロジックを含む特定のハードウェア構成要素により、又はプログラム済みコンピュータ構成要素及びカスタムハードウェア構成要素の任意の組み合わせにより実行することができる。
【００１１】
したがって、マシン可読媒体は、情報をマシン（たとえばコンピュータ）可読形態で記憶又は伝送する任意のメカニズムを含むことができるが、フロッピーディスク、光ディスク、コンパクトディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、光磁気ディスク、読み取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、消去可能プログラム可能読み取り専用メモリ（ＥＰＲＯＭ）、電気的消去可能プログラム可能読み取り専用メモリ（ＥＥＰＲＯＭ）、磁気カード又は光カード、フラッシュメモリ、インターネットを介しての伝送、電気的、光学的、音響的又は他の形態で伝搬される信号（たとえば、搬送波、赤外線信号、デジタル信号等）等に限定されない。
【００１２】
さらに、設計は作成から製造シミュレーションまで様々な段階を経験し得る。設計を表すデータは設計を多くの様式で表し得る。第１に、シミュレーションにおいて有用なように、ハードウェアは、ハードウェア記述言語又は別の機能記述言語を使用して表すことができる。さらに、ロジックゲート及び／又はトランジスタゲートを有する回路レベルモデルを設計プロセスのいくつかの段階で生成することができる。さらに、大半の設計はいくつかの段階で、ハードウェアモデルの各種装置の物理的な配置を表すデータレベルに達する。従来の半導体製造技法が使用される場合、ハードウェアモデルを表すデータは、集積回路の生成に使用されるマスクの異なるマスク層上の各種特徴の有無を指定するデータであり得る。設計のいずれの表現においても、データは任意の形態のマシン可読媒体に記憶することができる。このような情報を伝送するように変調された、若しくは他の様式で生成された光波若しくは電波、メモリ、又はディスク等の磁気記憶装置又は光学記憶装置がマシン可読媒体であることができる。これらの媒体はいずれも設計情報又はソフトウェア情報を「伝達」又は「示す」ことができる。コード又は設計を示すか、又は伝達する電気搬送波が伝送される場合、電気信号のコピー、バッファリング、又は再伝送が実施される範囲において、新しいコピーが作成される。したがって、通信プロバイダ又はネットワークプロバイダは、本発明の技法を具現する製品（搬送波）のコピーを作ることができる。
【００１３】
図１は、本発明を実施することができる仮想マシン環境１００の一実施形態を示す。この実施形態では、ベア（bare）プラットフォームハードウェア１１６は、たとえば、標準オペレーティングシステム（ＯＳ）又はＶＭＭ１１２等の仮想マシンモニタ（ＶＭＭ）を実行可能であり得る計算プラットフォームを備える。
【００１４】
ＶＭＭ１１２は、通常はソフトウェアに実装されるが、上位ソフトウェアへのベアマシンインタフェースをエミュレートしエクスポートすることができる。このような上位ソフトウェアは、標準ＯＳ又はリアルタイムＯＳを含むことができ、オペレーティングシステム機能が限られた、高度に簡素化されたオペレーティング環境であってもよく、従来のＯＳ機構等を含まなくてもよい。別法として、たとえば、ＶＭＭ１１２は別のＶＭＭ内又は別のＶＭＭ上で作動することができる。ＶＭＭは、たとえば、ハードウェア、ソフトウェア、ファームウェア、又は各種技法の組み合わせで実装することができる。
【００１５】
プラットフォームハードウェア１１６は、パーソナルコンピュータ（ＰＣ）、メインフレーム、ハンドヘルド装置、ポータブルコンピュータ、セットトップボックス、又は他の任意の計算システムであってもよい。プラットフォームハードウェア１１６はプロセッサ１１８及びメモリ１２０を備える。
【００１６】
プロセッサ１１８は、マイクロプロセッサ、デジタル信号プロセッサ、マイクロコントローラ等のソフトウェアを実行可能な任意の種類のプロセッサであってもよい。プロセッサ１１８は、本発明の方法実施形態の実行を行うためのマイクロコード、プログラマブルロジック、又はハードコードロジックを含むことができる。図１はこのような１つのみのプロセッサ１１８を示すが、１つ又は複数のプロセッサがシステムにあってもよい。
【００１７】
メモリ１２０は、ハードディスク、フロッピーディスク、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、フラッシュメモリ、上記装置の任意の組み合わせ、又はプロセッサ１１８が可読の他の任意の種類のマシン媒体であってもよい。メモリ１２０は、本発明の方法実施形態の実行を行うための命令及び／又はデータを記憶することができる。
【００１８】
ＶＭＭ１１２は、他のソフトウェア（すなわち、「ゲスト」ソフトウェア）に１つ又は複数の仮想マシン（ＶＭ）を抽象化したもの（abstraction）を提示し、同じ又は異なる抽象化したものを各種ゲストに提供することができる。図１は２つのＶＭ１０２及び１１４を示す。各ＶＭで作動しているゲストソフトウェアは、ゲストＯＳ１０４又は１０６等のゲストＯＳ及び各種ゲストソフトウェアアプリケーション１０８及び１１０を含むことができる。各ゲストＯＳ１０４及び１０６は、ゲストＯＳ１０４又は１０６が作動しているＶＭ１０２及び１１４内の物理資源（たとえば、プロセッサレジスタ、メモリ、及びＩ／Ｏ装置）にアクセスし、他の機能を実行するものと予期される。たとえば、ゲストＯＳ１０４又は１０６は、ＶＭ１０２及び１１４に提示されるプロセッサ及びプラットフォームのアーキテクチャに従ってすべてのレジスタ、キャッシュ、構造、Ｉ／Ｏ装置、メモリ等にアクセス可能なものと予期される。ゲストソフトウェアがアクセス可能な資源は、「特権付き」又は「非特権付き」に分類することができる。特権付き資源の場合、ＶＭＭ１１２は、これらの特権付き資源に対する最終的な制御を保持しながら、ゲストソフトウェアが望む機能を推進する。非特権付き資源は、ＶＭＭ１１２により制御される必要はなく、ゲストソフトウェアがアクセスすることができる。
【００１９】
さらに、各ゲストＯＳは、例外（たとえば、ページフォルト、一般保護違反等）、割り込み（たとえば、ハードウェア割り込み、ソフトウェア割り込み）、及びプラットフォームイベント（たとえば、初期化（ＩＮＩＴ）及びシステム管理割り込み（ＳＭＩ））等の各種フォルトイベントを処理するものと予期される。これらのフォルトによっては、ＶＭ１０２及び１１４の適切な動作を確保するとともに、ゲストソフトウェアからの、またゲストソフトウェア間での保護のために、ＶＭＭ１１２により処理されなければならないため「特権付き」のものがある。
【００２０】
特権付きフォルトイベントが発生する場合、又はゲストソフトウェアが特権付き資源にアクセスを試みる場合、制御をＶＭＭ１１２に移行することができる。ゲストソフトウェアからＶＭＭ１１２への制御の移行を、本明細書ではＶＭイグジットと呼ぶ。資源アクセスを推進した後、又はイベントを適宜処理した後、ＶＭＭ１１２は制御をゲストソフトウェアに戻すことができる。ＶＭＭ１１２からゲストソフトウェアへの制御の移行をＶＭエントリと呼ぶ。
【００２１】
一実施形態では、プロセッサ１１８は、仮想マシン制御構造（ＶＭＣＳ）１２４に記憶されているデータに従ってＶＭ１０２及び１１４の動作を制御する。ＶＭＣＳ１２４は、ゲストソフトウェアの状態、ＶＭＭ１１２の状態、ＶＭＭ１１２がゲストソフトウェアの動作をどのように制御したいかを示す実行制御情報、ＶＭＭ１１２とＶＭとの間の移行を制御する情報等を含むことができる構造である。プロセッサ１１８は、ＶＭＣＳ１２４から情報を読み取り、ＶＭの実行環境を判断し、その挙動を制限する。一実施形態では、ＶＭＣＳはメモリ１２０に記憶される。いくつかの実施形態では、複数のＶＭＣＳ構造が使用されて複数のＶＭがサポートされる。
【００２２】
一実施形態では、ＶＭイグジットが発生したとき、ゲストソフトウェアが使用したプロセッサ状態の構成要素が保存され、ＶＭＭ１１２が必要とするプロセッサ状態の構成要素がロードされ、ＶＭＭ１１２において実行が再開される。一実施形態では、ゲストソフトウェアが使用するプロセッサ状態の構成要素はＶＭＣＳ１２４のゲスト状態エリアに記憶され、ＶＭＭ１１２が必要とするプロセッサ状態の構成要素はＶＭＣＳ１２４のモニタ状態エリアに記憶される。一実施形態では、ＶＭＭ１１２からゲストソフトウェアへの移行が発生すると、ＶＭイグジット時に保存された（ＶＭイグジットの処理中にＶＭＭ１１２によって変更されている可能性のある）プロセッサ状態が復元され、制御がＶＭ１０２又は１１４に戻される。
【００２３】
ＶＭイグジットを発生させるイベントは、「イベント処理」手続きの実行を必要としてもよいし、必要としなくてもよい。イベント処理手続きとは、プロセッサ上でのコード実行の制御の流れを変えることを要求する分岐がコードに存在しないにもかかわらず、このような変更を行うイベント報告を指す。イベント報告は通常、イベントが例外又は割り込みであり、（たとえば、スタック上で）作動しているコードの状態の保存、リダイレクション構造（たとえばＩｎｔｅｌ（登録商標）Ｐｅｎｔｉｕｍ（登録商標）４の命令セットアーキテクチャ（ＩＳＡ）（本明細書ではＩＡ−３２ＩＳＡと呼ぶ）での割り込み記述子テーブル（ＩＤＴ））の巡回による割り込みベクトルの位置特定、イベントハンドラの状態のロード、及び新しいコードでの実行開始を必要とし得る場合に行われる。例外又は割り込みが、ＶＭ１０２又は１０４の動作中に発生し、且つこの例外又は割り込みがＶＭＭ１１２によって処理されなければならない場合（たとえば、作動しているＶＭ１０２又は１１４によって開始されなかった、又はその代わりに開始されなかったＩ／Ｏ動作のＩ／Ｏ完了割り込み）、イベント処理手続きは、作動しているＶＭ１０２又は１１４をイグジットした（すなわち、制御がＶＭＭ１１２に移行した）後に実行される。
【００２４】
いくつかのイベントは、上記参照したイベント処理手続きをＶＭＭ１１２又はＶＭ１０２若しくは１１４のいずれにおいても実行する必要がない。このようなイベントを本明細書では内部イベントと呼ぶ。たとえば、ＶＭ１０２又は１１４は、ＶＭＭ１１２がページアウトしたが、ＶＭ１０２又は１１４が存在するものと予期するページ上でページフォルトを発生させ得る。このようなページフォルトは、仮想化違反を回避するために、イベント処理手続きを呼び出すことができない。それに代えて、このページフォルトはＶＭイグジットを使用して処理され、これはＶＭ状態をＶＭＣＳ１２４に保存させ、実行をＶＭＭ１１２において再開させ、ページフォルトを処理して制御を再びＶＭ１０２又は１１４に移行させる。
【００２５】
ＶＭＭ１１２は、資源のスケジュール、サービス品質の提供、セキュリティの確保、及び他の機能の実行を行うために、ＶＭ１０２又は１１４の動作中に制御を獲得する必要があり得る。したがって、ＶＭＭ１１２は、ＶＭＭ１１２が制御を獲得する所望の時間を示せるようにするタイマメカニズムを有する必要がある。一実施形態では、ＶＭＭ１１２は、ＶＭ１０２又は１１４の制御の移行を要求する前に、ＶＭＭタイマに関連するフィールドの値を提供するタイマ構成モジュール１２６を備える。これらのフィールドはたとえば、ＶＭＭタイマをイネーブルすべきか否かを指定するＶＭＭタイマインジケータ及び制御再獲得の所望時間を示すＶＭＭタイマ値フィールドを含むことができる。
【００２６】
一実施形態では、ＶＭＭタイマインジケータ及びＶＭＭタイマ値はＶＭＣＳ１２４に記憶される。別法として、ＶＭＭタイマインジケータ及びＶＭＭタイマ値は、プロセッサ１１８、メモリ１２０とプロセッサ１１８との組み合わせ、又は他の任意の記憶場所（複数可）に存在してもよい。一実施形態では、ＶＭＭタイマインジケータ及びＶＭＭタイマ値の別個の対がＶＭ１０２及び１１４のそれぞれに保持される。別法として、同じＶＭＭタイマインジケータ及びＶＭＭタイマ値がＶＭ１０２及び１４４の両方に保持され、各ＶＭエントリ前にＶＭＭ１１２によって更新される。
【００２７】
システム１００が複数のプロセッサ又はマルチスレッドプロセッサを備える一実施形態では、各論理プロセッサに別個のＶＭＭタイマインジケータ及びＶＭＭタイマ値の別個の対が関連付けられ、ＶＭＭ１１２は、ＶＭＭタイマインジケータ及びＶＭＭタイマ値を論理プロセッサ毎に構成する。
【００２８】
一実施形態では、プロセッサ１１８は、ＶＭＭタイマがイネーブルされているか否かをＶＭＭタイマインジケータに基づいて判断することを担当するＶＭＭタイマサポートロジック１２２を備える。ＶＭＭタイマがイネーブルされている場合、ＶＭＭタイマサポートロジック１２２は、ＶＭＭ１１２により指定されるＶＭＭタイマ値を使用して制御をいつＶＭＭ１１２に移行すべきかを判断する。
【００２９】
一実施形態では、ＶＭＭタイマ値は制御をＶＭＭ１１２に戻すべき時間を指定する。ＶＭ１０２又は１１４の動作中、ＶＭＭタイマサポートロジック１２２は周期的に（たとえば、現在動作しているＶＭ１０２又は１１４により実行される各サイクル後に）、タイミングソースの現在値をＶＭＭ１１２によって指定されるＶＭＭタイマ値と比較する。タイミングソースは、システム１００が時間間隔を測定するために使用する任意のクロックであってもよい。たとえば、ＩＡ−３２ＩＳＡでは、時間間隔を測定するために使用されるタイミングソースはタイムスタンプカウンタ（ＴＳＣ）であり得る。
【００３０】
タイミングソースによって提供される現在時刻がＶＭＭ１１２によって指定されるＶＭＭタイマ値に「達する」と、ＶＭＭタイマサポートロジック１２２は制御をＶＭＭ１１２に移行させ、移行の原因がＶＭＭタイマであることを示す。現在時刻は、現在時刻がＶＭＭタイマ値に一致する場合、又はタイマ値を超える場合（現在時刻とＶＭＭタイマ値との厳密な一致が可能ではない場合）にＶＭＭタイマ値に「達する」。
【００３１】
別の実施形態では、ＶＭＭタイマ値は、経過したときにＶＭＭ１１２が制御を獲得すべきである時間間隔を指定する。ＶＭ１０２又は１１４の動作中、ＶＭＭタイマサポートロジック１２２はこの時間間隔をカウントダウン値として使用し、周期的に減分する（たとえば、クロックのＮ個の刻み毎に）。カウントダウン値がゼロに達すると、ＶＭＭタイマサポートロジック１２２は制御をＶＭＭ１１２に移行させる。一実施形態では、ＶＭイグジットが、（たとえば、ＶＭの動作中にフォルトが検出されたことにより）カウントダウン値が経過する前に発生する場合、ＶＭＭタイマサポートロジック１２２は現在のカウントダウン値をＶＭＣＳ１２４に記憶する。記憶されたカウントダウン値は、ＶＭＭ１１２によって前に指定されたＶＭＭタイマ値を置き換えてもよく、又は指定されたカウントダウン値フィールドに保持してもよい。
【００３２】
図２は、ＶＭＭに関連するタイマにサポートを提供するプロセス２００の一実施形態の流れ図である。プロセスは、ハードウェア（たとえば、回路、専用ロジック、プログラマブルロジック、マイクロコード等）、ソフトウェア（汎用コンピュータシステム又は専用マシンで作動するもの等）、又は両方の組み合わせを含むことができる処理ロジックによって行うことができる。一実施形態では、プロセス２００は図１のＶＭＭタイマサポートロジック１２２によって行われる。
【００３３】
図２を参照すると、プロセス２００は、処理ロジックが制御をＶＭＭからＶＭに移行させる要求（すなわち、ＶＭエントリ要求）を受け取ることで開始される（処理ブロック２０２）。一実施形態では、ＶＭエントリ要求は、ＶＭＭによって実行されるＶＭエントリ命令を介して受け取られる。
【００３４】
次に、処理ロジックは、ＶＭＭタイマインジケータがイネーブル値に設定されているか否かを判断する（処理ボックス２０４）。ＶＭＭタイマインジケータはＶＭＭにより構成され、イネーブル値に設定されてＶＭＭタイマメカニズムがイネーブルされていることを示すことができる。上述したように、ＶＭＭタイマメカニズム（本明細書ではＶＭＭタイマとも呼ぶ）は、ＶＭＭが、ＶＭの動作中の特定の時点で制御を獲得できるようにする。
【００３５】
処理ボックス２０４において行われる判断が否定である（ＶＭＭタイマインジケータがディセーブル値に設定されている）場合、処理ロジックは処理ボックス２１０に進む。
【００３６】
処理ボックス２０４において行われる判断が肯定である場合、処理ロジックは、ＶＭＭによって構成されるＶＭＭタイマ値を特定する（処理ブロック２０６）。一実施形態では、処理ロジックは、ＶＭＭタイマ値をＶＭＣＳから検索することによってＶＭＭタイマ値を特定する。ＶＭＭは、ＶＭエントリ要求を発行する前にＶＭＭタイマ値をＶＭＣＳに記憶する。処理ブロック２０８において、処理ロジックはＶＭＭタイマ値を使用してＶＭＭタイマを構成してイネーブルする。
【００３７】
一実施形態ではＶＭＭタイマ値は、制御をＶＭＭに戻すべき時間を指定する。ＶＭＭは、オフセット値（すなわち、ＶＭが実行を許可される時間長を指定する時間間隔）を、算出時にＶＭＭにより読み取られたタイミングソースの値に加算することにより、このタイマ値を算出することができる。別の実施形態では、ＶＭＭタイマ値は、ＶＭが実行を許可されている時間長を指定するオフセット時間間隔である。
【００３８】
次に、処理ロジックは制御をＶＭに移行させ（処理ブロック２１０）、ＶＭイグジットに関連するイベントが発生するまでＶＭに実行を許可する（処理ブロック２１２）。一実施形態では、イベントに関連する実行制御インジケータが、このイベントにＶＭイグジットを発生させるＶＭイグジット値に設定されている場合に、このイベントがＶＭイグジットに関連する。
【００３９】
処理ブロック２１４において、ＶＭＭタイマがディセーブルされる。ＶＭＭタイマが処理ボックス２０８においてイネーブルされなかった場合、この処理ステップは必要ないことに留意されたい。次に、イベントがＶＭイグジットに関連する非ＶＭＭタイマイベント（たとえば、フォルト）である場合（処理ブロック２１６）、処理ロジックは制御をＶＭＭに戻し、ＶＭイグジットの原因を示す（処理ブロック２１８）。
【００４０】
別法として、イベントがＶＭＭタイマに起因する場合（処理ブロック２１６）、処理ロジックは制御をＶＭＭに移行させ、ＶＭイグジットがＶＭＭタイマに起因していたことを示す（処理ブロック２２０）。
【００４１】
ＶＭＭタイマは、ＶＭＭにより指定されるＶＭＭタイマ値に基づいてＶＭイグジットをトリガするイベントを生成する。ＶＭＭタイマ値が、ＶＭＭが制御を獲得したい時間を指定する一実施形態では、処理ロジックは、クロック（たとえば、ＴＳＣ又は他の或る時間参照）の現在時刻をＶＭＭタイマ値と、クロックがＶＭＭタイマ値に達したことを検出するまで周期的に比較することにより上記判断を行う。ＶＭＭタイマ値が、ＶＭが実行を許可される時間長を指定するオフセット時間値である別の実施形態では、処理ロジックは、オフセット時間値が０に達したことを検出するまでオフセット時間値を周期的に減分することによって上記判断を行う。
【００４２】
図２は、非ＶＭＭタイマイベントに起因するＶＭイグジットが、ＶＭＭタイマに起因するＶＭイグジットよりも高い優先度を有することができる一実施形態を示すことに留意されたい。しかし、この優先度付与は、使用される優先度付与方式に応じて異なってもよく、したがって、非ＶＭＭタイマイベントに起因するＶＭイグジットに関連する判断を、ＶＭＭタイマに起因するＶＭイグジットに関連する判断（処理ブロック２１４）後に行ってもよい。さらに、非ＶＭＭタイマイベントによっては、ＶＭＭタイマイベントよりも高い優先度を有するものもあれば、低い優先度を有するものもある。
【００４３】
図３及び図４は、ＶＭＭタイマを利用して制御をＶＭＭに戻すか否かを判断するプロセスの２つの実施形態の流れ図である。このプロセスは、ハードウェア（たとえば、回路、専用ロジック、プログラマブルロジック、マイクロコード等）、ソフトウェア（汎用コンピュータシステム又は専用マシンで実行されているもの等）、又は両方の組み合わせを含むことができる処理ロジックによって行うことができる。一実施形態では、このプロセスは図１のＶＭＭタイマサポートロジック１２２により行うことができる。
【００４４】
図３を参照すると、プロセス３００は、制御をＶＭＭに戻すべき時間を指定するＶＭＭタイマ値を使用する。上述したように、ＶＭＭは、オフセット値（すなわち、ＶＭが実行を許可される時間長を指定する時間間隔）を、算出時にＶＭＭによって読み取られたタイミングソースの値に加算することによってこのタイマ値を算出することができる。
【００４５】
プロセス３００は、図２に示すように、ＶＭＭタイマがイネーブルされていると判断し、ＶＭＭにより構成されるＶＭＭタイマ値を特定し、制御をＶＭに移行させた後に開始される。
【００４６】
まず、処理ロジックは、ＶＭの動作中に、タイミングソースにより提供される現在時刻がＶＭＭタイマ値に達しているか否かを判断する（処理ボックス３０２）。上述したように、タイミングソースは、システム１００が時間間隔を測定するために使用する任意のクロックであってもよい。たとえば、ＩＡ−３２ＩＳＡをサポートするプロセッサはＴＳＣを使用して時間間隔を測定することができる。
【００４７】
一実施形態では、タイミングソースのすべてのビットがＶＭＭタイマ値と比較されるわけではない。代わりに、上位ビットのみが比較され得る。比較されるビット数をＶＭＭタイマコンパレータ長と呼ぶ。一実施形態では、ＶＭＭは、ＲＤＭＳＲ命令を使用してケイパビリティ（capability）モデル固有レジスタ（ＭＳＲ）を読み取ることによってＶＭＭタイマコンパレータ長を求めることができる。ＴＳＣがタイミングソースとして使用される一実施形態では、処理ブロック３０２の判断は、ＴＳＣの上位ビットをＶＭＭタイマ値の同じ上位ビットと比較することによって行われ、ＴＳＣ値がＶＭＭタイマ値以上である場合、処理ブロック３０２における比較は満足される。
【００４８】
タイミングソースの現在時刻がＶＭＭタイマ値に達する場合、処理ロジックは内部イベントを発生させ、ＶＭイグジットを生成し、ＶＭイグジットの原因がＶＭＭタイマによることを示す（処理ブロック３０４）。上述したように、ＶＭイグジットは内部イベントにより発生するため、実行は、ＶＭをイグジットした後の割り込み又は例外のために通常行われるイベント処理手続きを行うことなくＶＭＭにおいて再開される。
【００４９】
タイミングソースの現在時刻がＶＭＭタイマ値にまだ達していない場合、処理ロジックは、ＶＭイグジットに関連する非ＶＭＭタイマイベントを調べる（処理ボックス３０６）。このようなイベントが発生する場合、処理ロジックはＶＭイグジットを生成し、ＶＭイグジットの原因を示す（処理ブロック３０８）。このようなイベントが発生しない場合、処理ロジックは処理ブロック３０２に戻る。非ＶＭＭタイマイベントの性質（たとえば、非ＶＭＭタイマイベントが外部割り込みであるか、内部イベントであるか）に応じて、ＶＭのイグジット後に、イベント処理手続きが続く場合もあれば、続かない場合もある。
【００５０】
一実施形態では、現在時刻とＶＭＭタイマ値との比較（処理ボックス３０２に示す）は、現在時刻がＶＭＭタイマ値になるか、又はＶＭＭタイマ値を超えるまで、ＶＭにより実行される各サイクル後に行われる。
【００５１】
一実施形態では、比較は、現在時刻がＶＭＭタイマ値に一致する場合に信号を生成するように構成されるハードウェア構成要素で行われる。この信号は、ＶＭＭタイマによりＶＭイグジットを生成すべきであることを示す。一実施形態では、信号は、現在実行中の命令の終わりに認識される（たとえば、マイクロコード又は別のハードウェア構成要素により）。認識された信号は、ＶＭＭタイマによるＶＭイグジットが必要であり得ることを示す。次いで、この要件に他のＶＭイグジットソースに対する優先度が付与され（たとえば、マイクロコード又は別のハードウェア構成要素により）、ＶＭＭへの適当なＶＭイグジットが生成される。すなわち、ＶＭＭタイマソースが他のＶＭイグジットソースよりも優先度の高いものである場合、ＶＭＭタイマによるＶＭイグジットが生成される。ＶＭＭタイマではないＶＭイグジットソースがＶＭＭタイマよりも優先度の高いものである場合、その他のソースによるＶＭイグジットが生成される。
【００５２】
図４を参照すると、プロセス４００は、ＶＭが実行を許可される時間長を示すオフセット値を指定するＶＭＭタイマ値を使用する。プロセス４００は、図２に示すように、ＶＭＭタイマがイネーブルされていると判断し、ＶＭＭにより構成されるＶＭＭタイマ値を特定した後に開始される。
【００５３】
まず、処理ロジックはＶＭＭにより構成される（たとえば、ＶＭＣＳのプリエンプションタイマフィールドに記憶されている）オフセット値をカウントダウン値としてレジスタに記憶する（処理ブロック４０２）。次に、処理ロジックは制御をＶＭに移行させる（処理ブロック４０３）。制御をＶＭに移行させた後、処理ロジックは、クロックの増分に比例するレートで（たとえば、クロックのＮ個の刻み毎に）カウントダウン値の減分を開始する（処理ブロック４０４）。各減分後、処理ロジックはカウントダウン値が０に達したか否かを調べる（処理ボックス４０６）。カウントダウン値の減分により値が負になり得ることに留意されたい。この場合、一実施形態では、この値は０よりも小さくなることが許されない（すなわち、減分は０で終わる）。別法として、この値は０よりも小さくなることが許され、この場合、処理ブロック４０６における判断は０に達しつつあるか又は０を過ぎつつある値によって判断される。カウントダウン値が０に達している（０に一致したか、又は０を過ぎた）場合、処理ロジックは内部イベントを発行し、ＶＭイグジットを生成し、ＶＭイグジットソースがＶＭＭタイマであることを示す（処理ブロック４１２）。一実施形態では、処理ブロック４０６での判断が肯定であると信号が生成され、これが現在実行中の命令の終わりに認識される（たとえば、マイクロコード又はハードウェア構成要素により）。この信号の認識は、ＶＭＭタイマによるＶＭイグジットが必要であり得ることを示す。次いで、この要件に他のＶＭイグジットソースに対する優先度が付与され（たとえば、マイクロコードにより）、上述したようにＶＭＭへの適当なＶＭイグジットが生成される。
【００５４】
カウントダウン値がまだ０に達していない場合、処理ロジックはＶＭイグジットに関連する非ＶＭＭタイマイベントについて調べる（処理ボックス４０８）。このようなイベントが発生する場合、処理ロジックは現在のカウントダウン値をＶＭＣＳに記憶し（処理ブロック４１０）、ＶＭイグジットを生成し、このＶＭイグジットのソースを示す（処理ブロック４１４）。このようなイベントが発生しない場合、処理ロジックは処理ブロック４０４に戻る。
【００５５】
一実施形態では、処理ブロック４１０でのカウントダウンタイマ値の記憶は、ＶＭＣＳに記憶されるストアＶＭＭタイマ制御値によって制御することができる。ストアＶＭＭタイマ制御がイネーブル値に設定されている場合、カウントダウンタイマの値はＶＭイグジット処理の一環として記憶される（たとえば、ＶＭＣＳに）。一実施形態では、ストアＶＭＭタイマ制御がイネーブル値に設定されていない場合、値０がＶＭＭにより構成されるオフセット値に記憶される（たとえば、ＶＭＣＳのフィールドに）。別の実施形態では、ストアＶＭＭタイマ制御がイネーブル値に設定されていない場合、ＶＭＭにより構成されるオフセット値は変更されない。
【００５６】
図５は、ＶＭＭに関連するタイマを構成するプロセス５００の一実施形態の流れ図である。このプロセスは、ハードウェア（たとえば、回路、専用ロジック、プログラマブルロジック、マイクロコード等）、ソフトウェア（汎用コンピュータシステム又は専用マシンで作動するもの等）、又は両方の組み合わせを含むことができる処理ロジックによって行うことができる。一実施形態では、プロセス５００は図１のタイマ構成モジュール１２６によって行われる。
【００５７】
図５を参照すると、プロセス５００は、処理ロジックがＶＭＭタイマ値を求め（処理ブロック５０２）、ＶＭＭタイマ値をＶＭＣＳに記憶する（処理ブロック５０４）ことで開始される。一実施形態では、ＶＭＭタイマ値は制御をＶＭＭに戻すべき時間を指定する。ＶＭＭタイマ値算出の例を以下に提供する。
【００５８】
次に、処理ロジックはＶＭＭタイマインジケータをイネーブル値に設定し（処理ブロック５０６）、制御をＶＭに移行させる要求（ＶＭエントリ要求）を発行する（処理ロジック５０８）。
【００５９】
その後、ＶＭからのＶＭイグジットが生成されると、処理ロジックは制御を受け取り（処理ブロック５１０）、制御がＶＭＭタイマにより戻されたか否かを判断する（処理ブロック５１２）。ＶＭＭタイマにより戻された場合、処理ロジックは所望の演算を行い、次いで同じＶＭ又は異なるＶＭに対するＶＭエントリを生成することができる。
【００６０】
ＶＭエントリを生成する前に、処理ロジックはＶＭタイマインジケータ及び／又はＶＭＭタイマ値を更新する必要があり得る（処理ブロック５１４）。一実施形態では、ＶＭイグジット前に残時間がＶＭＣＳに保存された（図４に関連して上述したように）。別の実施形態では、残時間は、ＶＭから制御を受け取るときに処理ロジックによって算出される。
【００６１】
一実施形態では、ＶＭＭタイマを使用してＶＭのスケジューリング量を求める。ＶＭが実行にスケジュールされているとき、ＶＭＭにより量値が割り当てられる。この値はまず、ＶＭＭタイマ値に使用される。ＶＭに移行されると、処理ロジックは図４に関連して説明するようにカウントダウンＶＭＭタイマ値を利用する。制御がＶＭＭに移行する前に、処理ロジックは、ＶＭに割り当てられた時間量の残量を求める。一実施形態では、処理ロジックは、制御をＶＭに移行させる前、且つ制御をＶＭから受け取るときに、タイミングソースの時間値を読み取ることによって残時間を算出する。これらの２つの値の差が、ＶＭが実行された時間を示す。次いで、この値をＶＭに割り当てられた時間から減算する。残時間値が０に達する場合、ＶＭスケジューリング量は消費され、ＶＭＭは次いで異なるＶＭの実行をスケジュールする。
【００６２】
実施形態では、ＶＭＭタイマ値を使用して、ＶＭで消費できる最大時間を制限する。オフセット値（すなわち、ＶＭが実行を許可される時間長を指定する時間間隔）が、算出時にＶＭＭによって読み取られたタイミングソースの値に加算される。この値をＶＭＭタイマ値として使用する。ＶＭに移行されると、処理ロジックはこの値を図３に関連して上述するように利用する。時間制御がＶＭに移行する度に、この同じ値が使用される。この実施形態では、ＶＭＭタイマはウォッチドッグタイマとして働き、他のＶＭイグジットソースがない場合にＶＭでの最長実行時間を制限する。一実施形態では、カウントダウンタイマ（図４に関連して説明するように）は、ウォッチドッグタイマメカニズムを実現するためにも利用可能なことに留意されたい。
【００６３】
このように、ＶＭＭに関連するタイマにサポートを提供する方法及び装置について記載した。上記説明は限定ではなく例示を意図することを理解されたい。他の多くの実施形態が、上記説明を読み理解した上で当業者に明白であろう。したがって、本発明の範囲は、添付の特許請求の範囲及びこのような特許請求の範囲が権利付与する全範囲の等価物を参照して確定されるべきである。
【図面の簡単な説明】
【００６４】
【図１】本発明を実施することができる仮想マシン環境の一実施形態を示す図である。
【図２】ＶＭＭに関連するタイマにサポートを提供するプロセスの一実施形態の流れ図である。
【図３】ＶＭＭを利用して制御をＶＭＭに戻すか否かを判断するプロセスの一実施形態の流れ図である。
【図４】ＶＭＭを利用して制御をＶＭＭに戻すか否かを判断するプロセスの一実施形態の流れ図である。
【図５】ＶＭＭに関連するタイマを構成するプロセスの一実施形態の流れ図である。
【図１】
2008513909.tif 000003
【図２】
2008513909.tif 000004
【図３】
2008513909.tif 000005
【図４】
2008513909.tif 000006
【図５】
2008513909.tif 000007
【国際調査報告】
2008513909.tif 000008
2008513909.tif 000009
2008513909.tif 000010