説明

ゲストソフトウェアの特権レベルに基づく1つの仮想マシンモニタへの移行の支援

【課題】ゲストソフトウェアの現在の特権レベルが1つの特権レベル終了基準に合うと、1つのシステムの制御を1つの仮想マシンモニタに負担させる1つのシステム及び方法を提供する。
【解決手段】プロセッサは、現在の特権レベルが基準に合うことを検出し、次に、制御をゲストソフトウェアから仮想マシンモニタへ移す。仮想マシンモニタは、複数のある特権レベル変化または値に対する制御の負担を拒否できる。仮想マシンモニタへの移行はVMにおいて幾つかの命令を実行する前または、後に生じうる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の複数の実施形態は、複数の仮想マシンに関する。特に、本発明の複数の実施形態は、1つの仮想マシン(VM)で実行されているゲストソフトウェアの特権レベルが1つの特権レベル終了基準に合うと、1つのプロセッサの制御を1つの仮想マシンモニタ(VMM)に回復させることに関する。
【背景技術】
【0002】
1つの従来のVMMは1つのコンピュータ上で実行でき、1つ以上の仮想マシンの要約をその他のソフトウェアへ与える。各VMは、1つの「ゲストオペレーティングシステム」のようなVM自体のオペレーティングシステム(OS)と、「ゲストソフトウェア」として一括して知られている複数のアプリケーションとを実行する1つの内蔵プラットフォームとして機能できる。このゲストソフトウェアは、1つのVM内で、またはその上で実行するものと言われている。ゲストソフトウェアは、1つのVM上よりはむしろ1つの専用のコンピュータ上であたかも実行しているかのように動作するようになっている。すなわち、ゲストソフトウェアは、様々なコンピュータ動作を制御し、それらの動作中、複数のハードウェアリソースへアクセスするようになっている。複数のハードウェアリソースは、複数の制御レジスタのような複数のプロセッサ常駐リソースと、複数の記述子テーブルのようにメモリ内に存在する複数のリソースとを含むことができる。しかし、1つの仮想マシン環境では、VMMは、複数のVMの適切な動作を行うと共に、複数のVMから保護を、かつ複数のVM間で保護を行うためにこれらリソースを根本的に制御できなければならない。このことを達成するため、VMMは、ゲストソフトウェアにより行われた複数のハードウェアリソースへのすべてのアクセスを典型的に傍受し、仲裁する。
【0003】
ほとんどの命令セットアーキテクチャ(ISA)は、あまり特権を持たない複数のアプリケーションを、より多くの特権を持つオペレーティングシステム機能から分離するように複数の特権レベルを規定する。例えば、1つの従来技術の32ビットアーキテクチャは、リング0〜リング3と称する4つの特権レベルを有し、リング0は最も多くの特権を持ち、リング3は最も少ない特権を持つ。プロセッサは、複数の異なる特権レベル間で切り換える複数の制御手段を具える。複数の切り換えを、1つの特定の命令を呼び出すことにより明示でき、あるいは、1つの例外またはフォールトを増やすことにより、または、1つの割り込みのような1つの外部事象により暗に示すことができる。例えば、1つの特権レベル変化は、1つのコール(CALL)、1つのソフトウェア割り込み(INT)または1つの割り込み復帰(IRET)のような1つの命令の実行中に生じうる。1つの特権レベル変化は、例えば、複数の例外、複数の外部割り込み、複数のフォールト、複数のタスク切り換え、複数のトラップ並びにその他の複数の類似事象のようなその他の複数の同期的または非同期的な事象の結果としても生じうる。
【発明の開示】
【発明が解決しようとする課題】
【0004】
複数の多重プロセッサまたは複数のマルチスレッドシステム用の複数のオペレーティングシステムは、相互排除を確実にするソフトウェア実装された複数のロックを用いて、2つ以上のスレッドまたはプロセッサから同時にアクセスされる可能性があるデータを保護する。複数のロックが通常、短期間保持される場合には、いわゆる複数のスピンロックを用いる場合がある。1つのプロセッサまたはスレッド上で動作しているソフトウェアが、別のプロセッサまたはスレッド上で動作しているソフトウェアにより既に獲得されている1つのロックを獲得しようと試みる場合、ソフトウェアは、1つのきついコードループ内のロックを再獲得しようと試みる。このきついループ内で実行している間、ソフトウェアは、いかなる有益な作業も行えず、ハードウェアプロセッサスレッドは、何の利益も得られない。複数のマルチスレッドプロセッサまたは複数の多重プロセッサシステム上では、1つのスレッドまたはプロセッサの実行は、消費帯域幅、複数の実行ユニットまたは電力のようなその他の複数のスレッドまたはプロセッサの複数のリソースを減らすおそれがある。従って、スピン期間は、可能な限り短くなければならない。
【0005】
複数の多重プロセッサまたはマルチスレッドシステムを仮想化する複数のVMMは、ゲストソフトウェアの各インスタンス上で実行しているソフトウェアを1つの別個のVMまたは仮想プロセッサ(VP)内で実行できる。1つの非VMシステム上では、ゲストソフトウェアのこれらインスタンスは、1つの異なったプロセッサまたはスレッド上で実行する。複数のVP及び、ゲストソフトウェアのすべてのインスタンスを1つの仮想システムと総称する。このような1つのVMMは、このゲストロック動作を考慮しない場合、著しい劣化を経験するおそれがある。このため、VMMが仮想システムのすべてのVPを割り込ませなければ、1つのVPが1つのロックを保持する間、VMMはこのVPを割り込ませるべきでない。複数のロックプリミティブをハードウェアにより直接に検出できないので、複数のロックがソフトウェアにより実施されている場合、複数の経験則または複数の間接的観測技術を用いる場合がある。
【0006】
1つのこのような経験則は、共通のOS動作に基づいている。1つのOSが特権モードで実行していない間、または、このOSが1つの低電力状態にある間、OSは、いかなるロックも保持しない可能性がある。1つのVMMは、1つの非特権モードで実行しているか、または、1つの低電力状態にある1つの仮想プロセッサのみを割り込ませることにより前述の知識を活用できる。特権モードで実行しているゲストソフトウェアの複数の割り込みは、ゲストソフトウェアが非特権モードへ切り換わるまで保留される。
【課題を解決するための手段】
【0007】
1つの仮想マシン(VM)で実行しているゲストソフトウェアの特権レベルが、ある特権レベル終了基準に合うと、1つのシステムの制御を1つの仮想マシンモニタ(VMM)に負担させる1つのシステム及び方法を提供する。プロセッサは、ゲストソフトウェアの特権レベルが基準に合う事を検出し、その後、制御をVMMへ移行する。特権レベル終了基準は、1つの特権レベル増大、1つの特権レベル減少、任意の特権レベル変化、1つの所定レベルと整合する1つの特権レベル、1つの所定レベルよりも大きい1つの特権レベル、1つの所定レベルよりも小さい1つの特権レベル、または、1つの特定の特権レベル移行を含むことができる。VMMは、複数のある特権レベル値の制御を、または、複数の値変化の制御を負担するのを拒否することができる。VMMへの移行は、VMにおいて幾つかの命令を実行する前または、実行した後に生じうる。
【0008】
本発明の複数の実施形態は、複数の動作を実行する複数の装置にも関する。この装置を、複数の必要な目的のために特別に構築でき、あるいは、この装置は1つの汎用コンピュータを具えることができ、この汎用コンピュータは、その中に記憶された1つのコンピュータプログラムにより再構成されるか、あるいは選択的に作動される。以下のものに限定はしないが、例えば、複数のフロッピーディスク、複数の光ディスク、複数のCD‐ROM及び複数の光磁気ディスクを含むいかなる種類のディスク、複数の読み取り専用メモリ(ROM)、複数のランダムアクセスメモリ(RAM)、複数の消去可能プログラマブル読み取り専用メモリ(EPROM)、複数の電気的に消去可能なプログラマブル読み取り専用メモリ(EEPROM)、複数の磁気または光カードのような1つのコンピュータ可読記憶媒体、あるいは、複数の電子命令を記憶するのに適し、各々が1つのコンピュータシステムバスに結合されたいかなる種類の媒体内には、前述の1つのコンピュータプログラムを記憶できる。1つ以上の処理装置(例えば、複数の中央処理ユニットなど)を用いて複数の命令を実行できる。その他の複数の実施形態では、本発明の複数の工程を実行する再構成可能またはハードワイヤードロジックを含む複数の特定のハードウェア部品により、あるいは、複数のプログラムコンピュータ部品及び複数のカスタムハードウェア部品の任意の組み合わせにより本発明の複数の工程を実行できる。
【0009】
更に、1つの設計は、作成から製作シミュレーションまで様々な段階を経ることができる。1つの設計を表すデータは、この設計を多くの方法で表すことができる。まず、複数のシミュレーションで有益であるように、1つのハードウェア記述言語または別の機能記述言語を用いてハードウェアを表すことができる。その上、複数のロジック及び/またはトランジスタゲートを持つ1つの回路レベルモデルを設計処理の幾つかの工程で生成できる。更に、ほとんどの設計は、幾つかの工程において、ハードウェアモデル内の様々な装置の物理的な配置を表すデータの1つのレベルに達する。従来の複数の半導体製造技術を用いる場合では、1つのハードウェアモデルを表すデータを、集積回路を製造するのに用いる複数のマスクの複数の異なるマスク層上に様々な機能の存在または不在を指定するデータとすることができる。設計の幾つかの表現では、データを1つの機械可読媒体のいかなる形態でも記憶できる。このような情報を伝送するために変調または別の方法で発生された1つの光波または電波、1つのメモリ、あるいは、1つのディスクのような1つの磁気または光ストレージを機械可読媒体とすることができる。これら媒体の幾つかは、設計またはソフトウェア情報を「伝達する」または「指示する」ことができる。コードまたは設計を指示するか、伝達する1つの電気搬送波が伝送されると、電気信号のコピー、バッファリングまたは再送信が実行される範囲で、1つの新たなコピーが形成される。従って、1つの通信プロバイダまたは1つのネットワークプロバイダは、本発明の複数の技術を具現する1つの物品(1つの搬送波)の複数のコピーを形成できる。
【発明を実施するための最良の形態】
【0010】
図1には、本発明を動作できる1つの仮想マシン環境100の一実施形態を示す。図1のVM環境により、並びに、ハードウェア、ソフトウェア、またはこれら双方の1つの組み合わせを有することができる処理ロジックにより、本発明の異なる複数の実施形態を実行できる。この実施形態では、むき出しのプラットフォームハードウェア116が、例えば、1つの標準のオペレーティングシステム(OS)または1つのVMM112を実行できる1つの演算プラットフォームを有する。
【0011】
1つのVMM112は、典型的にソフトウェア内に実装されているが、1つのベアマシンインターフェースを高レベルソフトウェアへエクスポートできる。このような高レベルソフトウェアは、1つの標準または実時間OSを有することができるが、この点で、本発明の範囲は限定されない。加えて、例えば、1つVMMを、別のVMM内で、またはその上部で実行できる。複数のVMM及びそれらの複数の典型的な特徴及び機能は当業者により周知であり、これらを、例えば、ソフトウェアやファームウェア内に、または、様々な技術の1つの組み合わせにより実現できる。
【0012】
プラットフォームハードウェア116を1つのパーソナルコンピュータ(PC)、メインフレーム、手持ち式装置、携帯用コンピュータ、セットトップボックス、または、その他のいかなる演算システムとすることができる。プラットフォームハードウェア116は、1つのプロセッサ118、メモリ120及び特権レベル監視ロジック124を含む。プロセッサ118を、1つのマイクロプロセッサ、デジタル信号プロセッサ、マイクロコントローラなどのようなソフトウェアを実行できるいかなる種類のプロセッサとすることができる。プロセッサ118は、本発明の方法の複数の実施形態を実行するため、マイクロコード、再構成可能ロジック、プログラマブルロジックまたはハードコードロジックを含むことができる。図1には、単に1つのこのようなプロセッサ118を示すが、システム内には、1つ以上のプロセッサを存在させることができる。
【0013】
メモリ120を、1つのハードディスク、1つのフロッピーディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュメモリ、上述の複数の装置の任意の組み合わせ、または、プロセッサ118により読み取り可能なその他のいかなる種類の機械媒体とすることができる。メモリ120は、本発明の方法の複数の実施形態の実行を行う複数の命令及び/またはデータを記憶できる。
【0014】
VMM112は、同じ、または異なる複数の要約を様々なゲストへ供給できる1つ以上の仮想マシン(VM)の要約をその他のソフトウェア(例えば、「ゲスト」ソフトウェア)へ与える。1つ以上のVMが、システム内に存在できる。例えば、図1には、2つのVM102,114を示す。各VM上で実行しているゲストソフトウェアは、1つのゲストOS104または106のような1つのゲストOSと、様々なゲストソフトウェアアプリケーション108,110とを含むことができる。複数のVM102,114内で実行しているゲストソフトウェアは、ゲストソフトウェアが実行している複数のVM102,114内の複数の物理的リソース(例えば、複数のプロセッサレジスタ、メモリ及び複数のI/O装置)へアクセスするようになっており、また、複数のシステム装置により発生された複数の割り込みや、複数の例外などを含む様々な事象を処理するようになっている。1つの仮想マシン環境では、VMM112は、複数のVM102,114の適切な動作を行うと共に、複数のVM102,114から保護を、かつ複数のVM102,114間で保護を行うために複数の物理的リソースを根本的に制御できなければならない。VMM112は、コンピュータの複数の物理的リソースへのゲストソフトウェアの複数のアクセスを必要に応じて傍受することによりこの目標を達成する。
【0015】
ゲストソフトウェアがアクセスできる複数のリソースを、「特権を持つ」または「特権を持たない」と分類できる。特権を持つ複数のリソースに対して、VMM112は、特権を持つこれら複数のリソースの根本的な制御を維持する間、ゲストソフトウェアにより所望された機能を容易にする。特権を持たない複数のリソースは、VMM112により制御される必要がなく、これらリソースには、ゲストソフトウェアがアクセスできる。
【0016】
更に、各ゲストOS104,106は、複数の例外(例えば、複数のページフォールト、複数の一般保護違反、複数のトラップ、複数の異常終了など)、複数の割り込み(例えば、複数のハードウェア割り込み、複数のソフトウェア割り込み)及び複数のプラットフォームイベント(例えば、初期化(INIT)及び複数のシステム管理割り込み(SMI))のような様々なフォールトイベントを処理するようになっている。これら複数のフォールトイベントの幾つかは、「特権を持つ」。その理由は、これらフォールトイベントが、複数のVM102,114の適切な動作と、複数のVM102,114からの保護並びに、複数のVM102,114間の保護とを確実にするためにVMM112により処理されなければならないからである。特権を持つ1つのフォールトイベントが生じると、あるいは、ゲストソフトウェアが、特権を持つ1つのリソースにアクセスしようと試みる場合、制御をVMM112へ移動できる。ゲストソフトウェアからVMM112への制御の移動を、ここでは、1つのVM終了と称する。VM終了に続いて制御を受信した後、VMM112は様々な処理を実行でき、その後、制御をゲストソフトウェアへ戻すことができる。VMMからゲストソフトウェアへの制御の移動を、ここでは、1つのVMエントリーと称する。
【0017】
特権を持つOS機能を呼び出すため、複数のアプリケーションが、INTまたはSYSTENTERのような特定の複数の命令を用いる。システムコール識別子及び複数のパラメータは、動作を呼び出す前に、通常、プロセッサの複数のレジスタ内にロードされている。複数のシステムコールを傍受することにより、複数の利用シナリオを可能にする。例えば、複数のシステムコールを追跡することにより、1つの侵入検知システムは、1つのセキュリティ違反の原因を引き出すことができる。別の利用シナリオは、複数のシステムコール呼び出しの時間的パターンに基づいて複数の実行期間を検出することにより複数のスケジューリングパターンを複数の周期的なリアルタイムタスク期間に引き出すようになっている。一実施形態では、プロセッサ118は、1つのVM制御構造体(VMCS)122内に記憶されたデータに従って複数のVM102,114の動作を制御する。一実施形態では、VMCS122は、メモリ120内に記憶されている。別の実施形態では、VMCS122は、プロセッサ118内に記憶されている。幾つかの実施形態では、複数のVMCS構造体が、複数のVMを支援するのに用いられる。
【0018】
VMCS122は、ゲストソフトウェアの状態と、VMM112の状態と、VMM112がいかにしてゲストソフトウェアの動作を制限したいか、あるいは別の方法で制御したいかを示す実行制御情報と、その他の情報とを含むことができる1つの構造体である。ゲストソフトウェアへの、及び、ゲストソフトウェアからの複数の移行と、VM内のゲストソフトウェアの動作とは、VMCS内に記憶された一群のVM制御を用いて制御される。複数の実行制御は複数の環境を指定し、これら環境下で、制御をゲストソフトウェアからVMMへ移動しなければならない。複数の終了制御は、1つのゲスト状態の保存と、VM終了でのVMM状態のロードとを制御する。最近のVM終了を表す情報は、一群のVM終了情報データフィールド内に構成されている。1つのVM終了が生じると、ゲストソフトウェアにより用いられるプロセッサ状態の複数の成分がVMCS122へ保存され、VMM112により必要とされるプロセッサ状態の複数の成分はVMCS122からロードされる。複数のエントリー制御は、VMM状態の保存と、VMエントリーでのゲスト状態のロードとを制御する。1つのVMエントリーが生じると、ゲスト状態が、VMCS122内に記憶されたデータを用いて回復され、制御がゲストソフトウェアへ戻される。
【0019】
一実施形態では、プロセッサ118は、VMM112により指定された特権レベル終了基準に基づいて1つのVM終了を生じさせるべきかを決定するためにゲストの現在の特権レベルを評価しなければならない特権レベル監視ロジック(PLML)124を含む。一実施形態では、この特権レベル終了基準は、VMCS122内に記憶されている。前記特権レベル終了基準の複数の具体的な実施形態を以下に説明する。現在のゲスト特権レベルが特権レベル終了基準に合うことをPLML124が決定すれば、処理ロジックは、ゲストソフトウェアからVMM112への1つのVM終了を容易にする。様々なISAでは、複数の特権レベルを1つの数値に割り当てることができ、1つの高数値は、増大した特権を示し、一方、1つの低数値は、減少した特権を示す。その他の複数の実施形態では、1つの高数値は、複数の減少した特権を示すことができる。ここでの複数の説明において、複数の特権レベルを、「増大する」と称する場合、このことは、関連する複数の数値にかかわらず、ゲストソフトウェアが、より多くの特権を持つようになることを意味し、「減少する」とは、より少ない特権を持つようになることを意味する。同様に、別の特権レベル「よりも少ない」1つの特権レベルは、関連する複数の数値にかかわらず、複数の減少した特権レベルを有するものである。
【0020】
特権レベル終了基準を表すために複数の制御を複数のVM制御へ加えることができる。一実施形態では、1つの特権レベル増大終了制御は、1つの使用可能値に設定された場合、ゲストソフトウェアの動作中に1つの特権レベル増大が生じたら、複数のVM終了を生じさせるべきであることを指示する。この制御は、特権レベルを増大させる1つの事象の配信または1つの命令の実行が1つのVM終了を生じさせるべきかを決定する。一実施形態では、特権レベル変化を生じさせる命令の実行の完了に続いて(すなわち、廃棄後)、このような1つの特権レベル増大によるVM終了が生じる。一実施形態では、VM終了情報の一部としてVMMに報告できるゲスト命令ポインタ値は、新たな特権レベルで実行されるべき最初の命令を指すことができる。一実施形態では、特権レベル変化を生じさせた命令のアドレスを報告するいかなる明示的な規定も行わない。別の実施形態では、1つの特権レベル減少終了制御は、1つの使用可能値に設定された場合、ゲストソフトウェアの動作中に1つの特権レベル減少が生じたら、複数のVM終了を生じさせるべきであることを指示する。この制御は、特権レベルを減少させる複数の事象または複数の命令が1つのVM終了を生じさせるべきかを決定する。一実施形態では、特権レベル変化を生じさせる命令の実行の完了に続いて(すなわち、廃棄後)、このような1つの特権レベル減少によるVM終了が生じる。VM終了情報の一部としてVMMに報告できるゲスト命令ポインタ値は、新たな特権レベルで実行されるべき最初の命令を指すことができる。一実施形態では、特権レベル変化を生じさせた命令のアドレスを報告するいかなる明示的な規定も行わない。
【0021】
複数の特権レベル増大及び特権レベル減少制御を支援する1つの方法の一実施形態を図2のフローチャートに示す。図2は、ゲスト特権レベルの1つの変化に基づく複数の特権レベル増大及び特権レベル減少終了制御の検査を表す。図2では、1つの特権レベル変化により生じる複数のVM終了を上述のその他の複数のVM終了源よりも優先させる。このことを、図を単純化して行う。すなわち、実際には、幾つかのその他のVM終了源の優先順位を高くでき、幾つかを低くできる。図2に示す実施形態では、特権レベル増大制御及び特権レベル減少制御の双方を示すが、これら複数の制御を、本明細書中の複数の異なる実施形態で述べるその他の複数の特権レベル終了制御に独立して、または、これら特権レベル終了制御と組み合わせて支援できる。
【0022】
図2では、1つのVMエントリ要求をVMM112から受信するときに(ブロック210)、処理を開始する(ブロック205)。例えば、システムなどの状態をロードするといった、複数のVMエントリ検査を実行する(ブロック215)。1つのゲスト命令を実行する(ブロック220)。この命令の実行が1つのVM終了を生じさせると(ブロック225)、VM終了は、制御をVMM112へ移行させ、VM終了の理由をVMM112に報告し(ブロック230)、処理を終了する(ブロック235)。命令の実行中、VM終了が生じなければ(ブロック225)、ゲスト命令を廃棄する(ブロック240)。ゲストソフトウェアの現在の特権レベルを評価した後、ゲストソフトウェアの特権レベルが増大したことを決定しており(ブロック245)、1つの特権レベル増大(PLI)制御が利用可能であれば(ブロック250)、VM終了は制御をVMM112へ移行させ、VM終了がPLIによりもたらされたということをVMM112へ報告する(ブロック230)。ゲストソフトウェアの特権レベルが増大したことを決定しており(ブロック245)、1つの特権レベル増大(PLI)制御が利用可能でなければ(ブロック250)、処理ロジックが次のゲスト命令を実行する(ブロック220)。
【0023】
ゲストソフトウェアの特権レベルが増大したことを決定しなければ(ブロック245)、処理ロジックが1つの特権レベル減少(PLD)について検査する。ゲストソフトウェアの現在の特権レベルを評価した後、ゲストソフトウェアの特権レベルが減少したことを決定しており(ブロック245)、1つのPLD制御が利用可能であれば(ブロック250)、VM終了は制御をVMM112へ移行させ、VM終了がPLDによりもたらされたということをVMM112へ報告する(ブロック230)。ゲストソフトウェアの特権レベルが減少したことを決定せず(ブロック255)、あるいは、1つのPLD制御が利用可能でなければ(ブロック260)、次のゲスト命令を実行する(ブロック220)。
【0024】
選択終了を可能にするように特権レベル終了基準を利用可能にでき、また利用不可能にできる。この選択終了は、多重プロセッサスケジューリングに特に有益である。その理由は、複数の特権レベル変化による複数のVM終了が通常、ごくまれに必要とされるからである。加えて、例えば、VMMは、VM内でOSカーネルからユーザーレベルコードへの複数の移行にのみ反応できる。
【0025】
1つの他の実施形態では、上述した複数の特権レベル増大及び特権レベル減少の実行制御により得た機能を1つの単一特権レベル変化終了制御に組み合わせることができ、この単一特権レベル変化終了制御は、図3に示すように、任意の特権レベル変化が1つのVM終了を生じさせることを特定する。図3では、1つのVMエントリ要求をVMM112から受信するときに(ブロック310)、処理を開始する(ブロック305)。例えば、システムなどの状態をロードするといった、複数のVMエントリ検査を実行する(ブロック315)。1つのゲスト命令を実行する(ブロック320)。この命令の実行が1つのVM終了を生じさせると(ブロック325)、VM終了は、制御をVMM112へ移行させ、VM終了の理由をVMM112に報告し(ブロック330)、処理を終了する(ブロック335)。命令の実行中、いかなるVM終了も生じなければ(ブロック325)、ゲスト命令を廃棄する(ブロック340)。ゲストソフトウェアの現在の特権レベルを評価した後、ゲストソフトウェアの特権レベルが変化したことを決定しており(ブロック345)、1つの特権レベル変化(PLC)終了制御が利用可能であれば(ブロック350)、VM終了は制御をVMM112へ移行させ、VM終了がPLCによりもたらされたということをVMM112へ報告する(ブロック330)。1つのPLC条件を満足しなければ(ブロック345)、または、PLC終了制御が利用可能でなければ(ブロック350)、次のゲスト命令を実行する(ブロック320)。
【0026】
図4は、本発明の一実施形態に従って複数の特権レベル変化を決定する一方法を1つのフローチャートに示す。この図では、前の特権レベル(OPL)を表す1つの変数を現在の特権レベル(CPL)に設定することにより変数を初期化すること(ブロック410)から処理を開始する(ブロック405)。1つの単一命令を、または、1つの割り込みのような1つの単一非同期的な事象を処理または実行する(ブロック415)。命令の実行、または、事象の処理(ブロック415)後、特権レベルが、命令または事象処理前のものと異なると(ブロック420)、特権レベルが変化し、図2及び図3に示すように1つの行動を取る(ブロック425)。異ならなければ、次の命令または処理事象を実行する(ブロック415)。
【0027】
ここで留意すべきは、図2及び図3では、命令の実行後であって、命令の廃棄前に、1つのVM終了を生じさせるべきかを決定するための1つの評価が生じるということである。実際には、この評価は、1つの命令の試みられる実行の一部として生じうる。例えば、1つの制御レジスタ(例えば、CR0)へのアクセスは、フォールト発生セマンティクスを持つ1つのVM終了を生じさせることができる。言い換えれば、任意のアーキテクチャの状態が命令により変更される前にVM終了が生じる。その他の複数のVM終了は、あるアーキテクチャの状態の変更に続いて生じるが、複数のタスクを切り換えさせ、その後、複数のVM終了を生じさせる複数の命令のような命令の廃棄の前に生じることができる。幾つかのVM終了は、1つの命令の廃棄に続いて生じることができる。特権レベルの評価を、廃棄後に評価されるような1つの条件とすることができる。その他の複数のVM終了は、その他の複数の理由により、また、その他の複数の環境の下で生じることができる。
【0028】
図5は、1つの特権レベル変化命令のような複数の同期的な事象と、ゲストソフトウェアの実行中の1つの割り込みの到着のような複数の非同期的な事象との双方を認識する1つの方法を1つのフローチャートに示す。図5では、1つのVMエントリ要求をVMM112から受信するときに(ブロック510)、処理を開始する(ブロック505)。例えば、システムなどの状態をロードするといった、複数のVMエントリ検査を実行する(ブロック515)。1つの非同期的な事象が保留中でなければ(ブロック520)、1つのゲスト命令を実行する(ブロック525)。命令の実行(ブロック525)が1つのVM終了を生じさせると(ブロック530)、VM終了は制御をVMM112へ移行させ、VM終了の原因をVMM112に報告し(ブロック535)、処理を終了する(ブロック540)。命令の実行が1つのVM終了を生じさせなければ(ブロック530)、ゲスト命令を廃棄する(ブロック545)。1つの特権レベル増大(PLI)条件を満足し(ブロック550)、1つのPLI制御が利用可能であれば(ブロック555)、VM終了は制御をVMM112へ移行させ、VM終了がPLIにより生じたことをVMM112に報告する(ブロック535)。1つのPLI条件を満足しなければ(ブロック550)、または、1つのPLI制御が利用可能でなければ(ブロック555)、処理ロジックが1つの特権レベル減少(PLD)について検査する。1つのPLD条件を満足し(ブロック560)、1つのPLD制御が利用可能であれば(ブロック565)、VM終了は制御をVMM112へ移行させ、VM終了がPLDにより生じたことをVMM112に報告する(ブロック535)。1つのPLD条件を満足しなければ(ブロック560)、または、1つのPLD制御が利用可能でなければ(ブロック565)、この時点で1つの非同期的な事象が保留中であるかどうかを確かめるために処理ロジックが検査する(ブロック520)。1つの非同期的な事象が保留中であり(ブロック520)、この事象が1つのVM終了を生じさせると(ブロック570)、VM終了は制御をVMM112へ移行させ、VM終了が事象により生じたことをVMM112に報告する(ブロック535)。1つの非同期的な事象が保留中であり(ブロック520)、この事象が1つのVM終了を生じさせなければ(ブロック570)、この事象をゲストソフトウェアへ導入し(ブロック575)、上述した複数の特権レベル検査を行う。
【0029】
別の実施形態では、1つの実行制御は1つの特権レベル目標値を示す。この特権レベル目標値を、VMMの制御下でVMCS内に記憶できる。VMMは、特権レベル目標値を任意の有効特権レベルに設定できる。別の実施形態では、特権レベル目標値は1つの一定値を持つことができる。幾つかの実施形態は、2つ以上のこのような特権レベル目標値を用いることができる。例えば、一実施形態は、2つの異なる特権レベル目標値を持つことができ、各々は、1つの特定値に固定されている。一実施形態では、特権レベル目標値は、利用可能になるまで、いかなる効果も持たない。VMCS内の1つの整合特権レベル目標利用可能制御を1のような1つの利用可能値に設定することにより1つの特権レベル目標値制御を利用可能にできる。この制御は、ゲストソフトウェアの実行中にゲストソフトウェアの特権レベルがこの特権レベル目標値に整合すれば、1つのVM終了を生じさせるべきであるということを指示する。実行制御は、複数の特権レベル目標値と、各々が複数の特権レベル目標値制御の1つに対応する複数の整合目標特権利用可能制御とを有することができる。
【0030】
一実施形態では、整合する特権レベルで実行されるべき最初の命令の実行前に、特権レベル目標値と現在の特権レベルとのこのような1つの整合によるVM終了を生じさせることができる。一実施形態では、VM終了情報の一部としてVMMに報告できるゲスト命令ポインタ値は、整合する特権レベルで実行されるべき最初の命令を指す。一実施形態では、整合する値へ特権レベルを変化させた命令のアドレスを報告するいかなる明示的な規定も行わない。
【0031】
図6は、1つの仮想マシン環境内でゲストソフトウェアの特権レベルに基づいてゲストソフトウェアから1つのVMMへ移行する1つの処理の一実施形態を示す1つの流れ図である。図示の実施形態では、1つのVM終了が、ゲストソフトウェアの特権レベルと1つの特権レベル目標値制御(PLTVC)の値とに基づいて生じる。図6では、1つのVMエントリ要求をVMM112から受信するときに(ブロック620)、処理を開始する(ブロック610)。例えば、システムなどの状態をロードするといった、複数のVMエントリ検査を実行する(ブロック630)。1つのPLTVCが利用可能でなければ(ブロック640)、1つのゲスト命令を実行する(ブロック650)。ゲストソフトウェアの現在の特権レベル(CPL)を評価した後、PLTVCが利用可能であり(ブロック640)、CPLが特権レベル目標値(PLTV)に等しければ(ブロック660)、VM終了が制御をVMM112へ移行させ(ブロック670)、処理を終了する(ブロック680)。CPLがPLTVに等しくなければ(ブロック660)、1つのゲスト命令を実行する(ブロック650)。
【0032】
別の実施形態では、特権レベル目標値制御を1つの特権レベル上限値制御で強化する。この制御が1つの利用可能値に(例えば、1に)設定されている場合、ゲストソフトウェアの実行中にゲストソフトウェアの特権レベルが特権レベル目標値よりも大きければ、1つのVM終了を生じさせるべきであることを示す。一実施形態では、実行制御は、複数の特権レベル目標値及び対応の複数の特権レベル上限値制御を有することができる。その他の一実施形態では、特権レベル目標値が、最も高い特権レベルに設定されている場合、より多くの特権を持つ1つの状態への移行を生じさせないことができ、これにより、1つの権限付与制御を用いることなく、制御を効果的に利用不可能にする。
【0033】
更なる別の実施形態では、特権レベル目標実行制御を1つの特権レベル下限値制御で強化し、この制御は、ゲストソフトウェアの実行中にゲストソフトウェアの特権レベルが特権レベル目標値よりも小さければ、1つのVM終了を生じさせるべきであることを指示する。一実施形態では、実行制御は、複数の特権レベル目標値及び対応の複数の特権レベル下限値制御を有することができる。その他の一実施形態では、特権レベル目標値が、最も低い特権レベルに設定されていれば、より少ない特権を持つ1つの状態への移行を生じさせないことができ、これにより、1つの権限付与制御を用いることなく、制御を効果的に利用不可能にする。
【0034】
図7は、1つの仮想マシン環境内でゲストソフトウェアの特権レベルに基づいてゲストソフトウェアから1つのVMMへ移行する1つの処理の一実施形態を示す1つの流れ図である。図示の実施形態では、現在の特権レベルがPLTVよりも大きければ、1つのVM終了が、ゲストソフトウェアの特権レベルと1つの特権レベル上限値制御(PLCVC)の値とに基づいて生じる。図7では、1つのVMエントリ要求をVMM112から受信するときに(ブロック720)、処理を開始する(ブロック710)。例えば、システムなどの状態をロードするといった、複数のVMエントリ検査を実行する(ブロック730)。1つのPLCVCが利用可能でなければ(ブロック740)、1つのゲスト命令を実行する(ブロック750)。ゲストソフトウェアのCPLを評価した後、PLCVCが利用可能であり(ブロック740)、CPLがPLTVを超えていれば(ブロック760)、VM終了が制御をVMM112へ移行させ(ブロック770)、処理を終了する(ブロック780)。CPLがPLTVを超えていなければ(ブロック760)、1つのゲスト命令を実行する(ブロック750)。
【0035】
実際には、1つのウォッチドッグタイマの使用を必要とする場合がある。その理由は、時々、複数のオペレーティングシステムが、複数のドライバスレッドを実行する複数の長期間、カーネルモードで居続けるためである。図8は、1つの仮想マシン環境内で割り込みスケジューリングを実行する1つの処理の一実施形態を示す1つの流れ図である。図8では、現在のVM(CVM)を割り込ませる必要があるかを処理ロジックが決定するときに(ブロック810)、処理を開始する(ブロック805)。処理ロジックは、CVMが1つの仮想システムの一部であるかを決定する(ブロック815)。CVMが1つの特権モード(PM)でなければ(ブロック820)、CVMを割り込ませ(ブロック825)、処理を終了する(ブロック830)。CVMが1つのPMであれば(ブロック820)、1つのウォッチドッグタイマ(WDT)をセットアップする(ブロック835)。次に、CVMが特権モードでないときに複数のVM終了を生じさせるように特権レベル終了制御(PLEC)を適切に設定する(ブロック840)。次に、処理ロジックは制御をCVMへ移行する(ブロック845)。1つのVM終了に続いてVMM112が制御をCVMから受信する。(ブロック850)
【0036】
VM終了が1つのWDTによるものであったら(ブロック855)、CVMを割り込ませ(ブロック825)、処理を終了する(ブロック830)。VM終了が1つのWDTによるものでなかったら(ブロック855)、VM終了を処理し(ブロック860)、CVMが1つのPMでないかを処理ロジックが決定する(ブロック865)。CVMが1つのPMでなければ(ブロック865)、CVMを割り込ませ(ブロック825)、処理を終了する(ブロック830)。CVMが1つのPMであれば(ブロック865)、PLECを設定し(ブロック840)、制御をCVMへ移行し(ブロック845)し、WDT及びPLECが引き続き有効である。
【0037】
その他の一実施形態では、1つの第1レベルから1つの第4レベルへ、また、1つの第3レベルから1つの第2レベルへのような複数の特権レベル間における複数の特定の移行の際に複数のVM終了を生じさせるために複数の制御が用いられる。例えば、4つの特権レベルを有する1つのISAでは、複数のVM終了を生じさせるため、複数のソース及びデスティネーション特権レベルの12個の実現可能な組み合わせのいずれかをVMMに選択させるのに12個の制御を用いることができる。一実施形態では、複数の特権レベルの組み合わせの外積全部に満たない制御を用いることができる。複数の制御を、ここでは、複数の特権レベルソースデスティネーション終了制御(PLSDEC)と称する。
【0038】
一実施形態では、特権レベルの複数の移行を生じさせることができるすべての事象及び命令に対して複数の実行制御を用いて、特権レベルのこのようなすべての変化の制御を1つのVMM112に回復させる。この代案は、1つの特定の命令実行が実際に1つの特権レベル変化を生じさせたかを決定する追加の支援をVMM112で必要とする場合がある。例えば、1つのISAでは、1つの割り込み復帰命令(IRET)は1つの特権レベル変化を生じさせることができるが、あらゆる場合ではない。1つのIRET命令の実行が特権レベルを変化させたかどうかに関係なく、この命令の実行が1つのVM終了を無条件に生じさせる場合、命令が1つの特権レベル変化を生じさせたかを決定するためにVMMが命令をエミュレートし、または別の方法でシングルステップする必要がある場合がある。IRETをエミュレートするといった追加の複数の命令をVMMソフトウェア上に配置して、フォールトを起こす命令が待望の特権レベル変化を生じさせたかを決定できる。
【0039】
複数の特権レベル変化を生じさせる幾つかの動作または事象は、その他の複数の理由により複数のVM終了を生じさせる場合がある。これらのその他の複数のVM終了理由の優先順位を高くでき、あるいは、このような1つの命令の実行に続いて特権レベル終了基準を評価する前にVM終了理由を評価できる。この場合、VMMは、VM終了を生じさせる事象または命令が1つの特権レベル変化をも生じさせるかということを決定できる。例えば、1つの仮想化アーキテクチャは、複数のソフトウェア(SW)割り込み命令の実行で複数のVM終了を生じさせるように1つの実行制御を1つのVMMに設定させることができる。ユーザーレベルコードにおいて1つのSW割り込み命令の実行は、1つの特権レベル変化を生じさせることができる。複数のVM終了を生じさせるように複数の特権レベル変化を設定すると同時に複数のSW割り込み命令を実行する場合、複数のVM終了を生じさせるように複数の実行制御を構成できる。このことが生じると、SW割り込みにより生じたVM終了を、SW割り込み命令の実行中、最初に評価でき、これにより、特権レベルの変化前に1つのVM終了を生じさせることができる。この場合、SW割り込み終了条件は、事実上フォールトを起こし、命令の実行の完了前に評価され、一方、特権レベル変化は、事実上トラップし、命令の完了に続いて評価される。一実施形態では、事実上、複数のVM終了源をトラップでき、事実上、複数のVM終了源にフォールトを起こすことができる。特権レベル終了基準の評価の優先順位を、その他のいずれかの、またはその他のすべてのVM終了源よりも高く、あるいは低くすることができる。
【0040】
上記の明細書中、説明のため、多数の具体的な詳細を、本発明の充分な理解を得るように示した。しかし、当業者にとって、これらの具体的な詳細を用いず、本発明を実施できること明らかである。
【図面の簡単な説明】
【0041】
【図1】本発明の一実施形態を実現できる1つの処理システムの一実施形態を1つのブロック図に示す。
【図2】本発明の一実施形態に従って特権レベルの増大及び減少に別々の制御を用いる特権レベル終了制御に対する1つの処理を1つのフローチャートに示す。
【図3】本発明の一実施形態に従って特権レベルの増大及び減少に複数の組み合わせ制御を用いる特権レベル終了制御に対する1つの処理を1つのフローチャートに示す。
【図4】本発明の一実施形態に従って特権レベル変化を検出する1つの処理を1つのフローチャートに示す。
【図5】本発明の一実施形態に従って非同期的な事象を処理する1つの方法を1つのフローチャートに示す。
【図6】1つの仮想マシン環境内でゲストソフトウェアの特権レベルに基づいてゲストソフトウェアから1つの仮想マシンモニタへ移行する1つの処理の一実施形態を1つのフローチャートに示す。
【図7】1つの仮想マシン環境内でゲストソフトウェアの特権レベルに基づいてゲストソフトウェアから1つの仮想マシンモニタへ移行する1つの処理の一実施形態を1つのフローチャートに示す。
【図8】1つの仮想マシン環境内で割り込みスケジューリングを実行する1つの処理の一実施形態を1つのフローチャートに示す。
【符号の説明】
【0042】
100 仮想マシン環境
116 プラットフォームハードウェア
112 VMM
118 プロセッサ
120 メモリ
124 特権レベル監視ロジック

【特許請求の範囲】
【請求項1】
1つの仮想マシン内で実行している1つのゲストソフトウェアの1つの現在の特権レベルを評価する工程と、
前記現在の特権レベルが1つの特権レベル終了基準に合えば、制御を1つの仮想マシンモニタへ移行する工程と
を具える方法。
【請求項2】
請求項1の前記方法であって、前記特権レベル終了基準を1つの仮想マシン制御構造体内に記憶する工程を更に具える方法。
【請求項3】
請求項1の前記方法であって、
1つの初期特権レベルを決定する工程と、
1つの特権レベル変化終了制御が利用可能であり、前記現在の特権レベルが前記初期特権レベルと異なっていれば、制御を前記仮想マシンモニタへ移行する工程と
を更に具える方法。
【請求項4】
請求項1の前記方法であって、
1つの初期特権レベルを決定する工程と、
1つの特権レベル増大終了制御が利用可能であり、前記現在の特権レベルが前記初期特権レベルよりも多くの特権を持つならば、制御を前記仮想マシンモニタへ移行する工程と
を更に具える方法。
【請求項5】
請求項1の前記方法であって、
1つの初期特権レベルを決定する工程と、
1つの特権レベル減少終了制御が利用可能であり、前記現在の特権レベルが前記初期特権レベルよりも少ない特権を持つならば、制御を前記仮想マシンモニタへ移行する工程と
を更に具える方法。
【請求項6】
請求項1の前記方法であって、
1つの初期特権レベルを決定する工程と、
前記初期特権レベルから前記現在の特権レベルへの1つの移行と関連付けられた1つの特権レベルソースデスティネーション終了制御が利用可能であれば、制御を前記仮想マシンモニタへ移行する工程と
を更に具える方法。
【請求項7】
請求項1の前記方法であって、1つの目標特権レベルを記憶する工程を更に具える方法。
【請求項8】
請求項7の前記方法であって、
1つの特権レベル整合終了制御が利用可能であり、前記現在の特権レベルが前記目標特権レベルと同じであれば、制御を前記仮想マシンモニタへ移行する工程を更に具える方法。
【請求項9】
請求項7の前記方法であって、
1つの特権レベル上限終了制御が利用可能であり、前記現在の特権レベルが前記目標特権レベルよりも多くの特権を持つならば、制御を前記仮想マシンモニタへ移行する工程を更に具える方法。
【請求項10】
請求項7の前記方法であって、
1つの特権レベル下限終了制御が利用可能であり、前記現在の特権レベルが前記目標特権レベルよりも少ない特権を持つならば、制御を前記仮想マシンモニタへ移行する工程を更に具える方法。
【請求項11】
請求項7の前記方法において、前記目標特権レベルが可変である方法。
【請求項12】
請求項7の前記方法において、前記目標特権レベルが一定である方法。
【請求項13】
請求項1の前記方法であって、前記ゲストソフトウェアにおける1つの命令の実行前に制御を前記仮想マシンモニタへ移行する工程を更に具える方法。
【請求項14】
請求項1の前記方法であって、前記ゲストソフトウェアにおける1つの命令の実行後に制御を前記仮想マシンモニタへ移行する工程を更に具える方法。
【請求項15】
1つの記憶媒体内に存在する1つの命令セットであって、データを処理する1つの方法を実施するために1つのプロセッサにより実行できる前記命令セットにおいて、前記方法が、
1つの仮想マシン内で実行している1つのゲストソフトウェアの1つの現在の特権レベルを評価する工程と、
前記現在の特権レベルが1つの特権レベル終了基準に合えば、制御を1つの仮想マシンモニタへ移行する工程と
を具える命令セット。
【請求項16】
請求項15の前記命令セットであって、前記特権レベル終了基準を1つの仮想マシン制御構造体内に記憶する工程を更に具える命令セット。
【請求項17】
請求項15の前記命令セットであって、
1つの初期特権レベルを決定する工程と、
1つの特権レベル変化終了制御が利用可能であり、前記現在の特権レベルが前記初期特権レベルと異なっていれば、制御を前記仮想マシンモニタへ移行する工程と
を更に具える命令セット。
【請求項18】
請求項15の前記命令セットであって、
1つの初期特権レベルを決定する工程と、
1つの特権レベル増大終了制御が利用可能であり、前記現在の特権レベルが前記初期特権レベルよりも多くの特権を持つならば、制御を前記仮想マシンモニタへ移行する工程と
を更に具える命令セット。
【請求項19】
請求項15の前記命令セットであって、
1つの初期特権レベルを決定する工程と、
1つの特権レベル減少終了制御が利用可能であり、前記現在の特権レベルが前記初期特権レベルよりも少ない特権を持つならば、制御を前記仮想マシンモニタへ移行する工程と
を更に具える命令セット。
【請求項20】
請求項15の前記命令セットであって、
1つの初期特権レベルを決定する工程と、
前記初期特権レベルから前記現在の特権レベルへの1つの移行と関連付けられた1つの特権レベルソースデスティネーション終了制御が利用可能であれば、制御を前記仮想マシンモニタへ移行する工程と
を更に具える命令セット。
【請求項21】
請求項15の前記命令セットであって、1つの目標特権レベルを記憶する工程を更に具える命令セット。
【請求項22】
請求項21の前記命令セットであって、
1つの特権レベル整合終了制御が利用可能であり、前記現在の特権レベルが前記目標特権レベルと同じであれば、制御を前記仮想マシンモニタへ移行する工程を更に具える命令セット。
【請求項23】
請求項21の前記命令セットであって、
1つの特権レベル上限終了制御が利用可能であり、前記現在の特権レベルが前記目標特権レベルよりも多くの特権を持つならば、制御を前記仮想マシンモニタへ移行する工程を更に具える命令セット。
【請求項24】
請求項21の前記命令セットであって、
1つの特権レベル下限終了制御が利用可能であり、前記現在の特権レベルが前記目標特権レベルよりも少ない特権を持つならば、制御を前記仮想マシンモニタへ移行する工程を更に具える命令セット。
【請求項25】
請求項21の前記命令セットにおいて、前記目標特権レベルが可変である命令セット。
【請求項26】
請求項21の前記命令セットにおいて、前記目標特権レベルが一定である命令セット。
【請求項27】
請求項15の前記命令セットであって、前記ゲストソフトウェアにおける1つの命令の実行前に制御を前記仮想マシンモニタへ移行する工程を更に具える命令セット。
【請求項28】
請求項15の前記命令セットであって、前記ゲストソフトウェアにおける1つの命令の実行後に制御を前記仮想マシンモニタへ移行する工程を更に具える命令セット。
【請求項29】
1つの仮想マシン内で実行している1つのゲストソフトウェアの1つの現在の特権レベルを評価するための1つの第1ロジックであって、前記現在の特権レベルが1つの特権レベル終了基準に合えば、制御を1つの仮想マシンモニタへ移行するための前記第1ロジックを具える1つのプロセッサ。
【請求項30】
請求項29の前記プロセッサにおいて、前記第1ロジックが1つの初期特権レベルを決定し、1つの特権レベル変化終了制御が利用可能であり、前記現在の特権レベルが前記初期特権レベルと異なっていれば、前記第1ロジックが制御を前記仮想マシンモニタへ移行するようになっているプロセッサ。
【請求項31】
請求項29の前記プロセッサにおいて、前記第1ロジックが1つの初期特権レベルを決定し、1つの特権レベル増大終了制御が利用可能であり、前記現在の特権レベルが前記初期特権レベルよりも多くの特権を持つならば、前記第1ロジックが制御を前記仮想マシンモニタへ移行するようになっているプロセッサ。
【請求項32】
請求項29の前記プロセッサにおいて、前記第1ロジックが1つの初期特権レベルを決定し、1つの特権レベル減少終了制御が利用可能であり、前記現在の特権レベルが前記初期特権レベルよりも少ない特権を持つならば、前記第1ロジックが制御を前記仮想マシンモニタへ移行するようになっているプロセッサ。
【請求項33】
請求項29の前記プロセッサにおいて、前記第1ロジックが1つの初期特権レベルを決定し、前記初期特権レベルから前記現在の特権レベルへの1つの移行と関連付けられた1つの特権レベルソースデスティネーション終了制御が利用可能であれば、前記第1ロジックが制御を前記仮想マシンモニタへ移行するようになっているプロセッサ。
【請求項34】
請求項29の前記プロセッサにおいて、前記第1ロジックが1つの目標特権レベルを記憶し、1つの特権レベル整合終了制御が利用可能であり、前記現在の特権レベルが前記目標特権レベルと同じであれば、前記第1ロジックが制御を前記仮想マシンモニタへ移行するようになっているプロセッサ。
【請求項35】
請求項29の前記プロセッサにおいて、前記第1ロジックが1つの目標特権レベルを記憶し、1つの特権レベル上限終了制御が利用可能であり、前記現在の特権レベルが前記目標特権レベルよりも多くの特権を持つならば、前記第1ロジックが制御を前記仮想マシンモニタへ移行するようになっているプロセッサ。
【請求項36】
請求項29の前記プロセッサにおいて、前記第1ロジックが1つの目標特権レベルを記憶し、1つの特権レベル下限終了制御が利用可能であり、前記現在の特権レベルが前記目標特権レベルよりも少ない特権を持つならば、前記第1ロジックが制御を前記仮想マシンモニタへ移行するようになっているプロセッサ。
【請求項37】
1つのゲストソフトウェアを実行するために1つの仮想マシンを実施する1つのプロセッサと、
前記ゲストソフトウェアの1つの第1命令を記憶するために前記プロセッサに結合された1つのメモリとを具える1つのシステムであって、
前記プロセッサが、1つの仮想マシン内で実行している1つのゲストソフトウェアの1つの現在の特権レベルを評価し、前記現在の特権レベルが1つの特権レベル終了基準に合えば、前記プロセッサが制御を1つの仮想マシンモニタへ移行するようになっているシステム。
【請求項38】
請求項37の前記システムにおいて、前記メモリが前記特権レベル終了基準を1つの仮想マシン制御構造体内に記憶するようになっているシステム。
【請求項39】
請求項37の前記システムにおいて、前記プロセッサが1つの初期特権レベルを決定し、1つの特権レベル変化終了制御が利用可能であり、前記現在の特権レベルが前記初期特権レベルと異なっていれば、前記プロセッサが制御を前記仮想マシンモニタへ移行するようになっているシステム。
【請求項40】
請求項37の前記システムにおいて、前記プロセッサが1つの初期特権レベルを決定し、1つの特権レベル増大終了制御が利用可能であり、前記現在の特権レベルが前記初期特権レベルよりも多くの特権を持つならば、前記プロセッサが制御を前記仮想マシンモニタへ移行することになっているシステム。
【請求項41】
請求項37の前記システムにおいて、前記プロセッサが1つの初期特権レベルを決定し、1つの特権レベル減少終了制御が利用可能であり、前記現在の特権レベルが前記初期特権レベルよりも少ない特権を持つならば、前記プロセッサが制御を前記仮想マシンモニタへ移行することになっているシステム。
【請求項42】
請求項37の前記システムにおいて、前記プロセッサが1つの初期特権レベルを決定し、前記初期特権レベルから前記現在の特権レベルへの1つの移行と関連付けられた1つの特権レベルソースデスティネーション終了制御が利用可能であれば、前記プロセッサが制御を前記仮想マシンモニタへ移行することになっているシステム。
【請求項43】
請求項37の前記システムにおいて、前記メモリが1つの目標特権レベルを記憶するようになっているシステム。
【請求項44】
請求項43の前記システムにおいて、1つの特権レベル整合終了制御が利用可能であり、前記現在の特権レベルが前記目標特権レベルと同じであれば、前記プロセッサが制御を前記仮想マシンモニタへ移行するようになっているシステム。
【請求項45】
請求項43の前記システムにおいて、1つの特権レベル上限終了制御が利用可能であり、前記現在の特権レベルが前記目標特権レベルよりも多くの特権を持つならば、前記プロセッサが制御を前記仮想マシンモニタへ移行するようになっているシステム。
【請求項46】
請求項43の前記システムにおいて、1つの特権レベル下限終了制御が利用可能であり、前記現在の特権レベルが前記目標特権レベルよりも少ない特権を持つならば、前記プロセッサが制御を前記仮想マシンモニタへ移行するようになっているシステム。
【請求項47】
請求項43の前記システムにおいて、前記目標特権レベルが可変であるシステム。
【請求項48】
請求項43の前記システムにおいて、前記目標特権レベルが一定であるシステム。
【請求項49】
請求項37の前記システムにおいて、前記ゲストソフトウェアにおける1つの命令の実行前に制御が前記仮想マシンモニタへ移行するようになっているシステム。
【請求項50】
請求項37の前記システムにおいて、前記ゲストソフトウェアにおける1つの命令の実行後に制御が前記仮想マシンモニタへ移行するようになっているシステム。
【請求項51】
1つの仮想マシン内で実行している1つのゲストソフトウェアの1つの現在の特権レベルを評価する1つの第1手段と、
前記現在の特権レベルが1つの特権レベル終了基準に合えば、制御を1つの仮想マシンモニタへ移行する1つの第2手段と
を具える1つの装置。
【請求項52】
請求項51の前記装置であって、
1つの初期特権レベルを決定する1つの第3手段と、
1つの特権レベル変化終了制御が利用可能であり、前記現在の特権レベルが前記初期特権レベルと異なっていれば、制御を前記仮想マシンモニタへ移行する1つの第4手段と
を更に具える装置。
【請求項53】
請求項51の前記装置であって、
1つの初期特権レベルを決定する1つの第3手段と、
1つの特権レベル増大終了制御が利用可能であり、前記現在の特権レベルが前記初期特権レベルよりも多くの特権を持つならば、制御を前記仮想マシンモニタへ移行する1つの第4手段と
を更に具える装置。
【請求項54】
請求項51の前記装置であって、
1つの初期特権レベルを決定する1つの第3手段と、
1つの特権レベル減少終了制御が利用可能であり、前記現在の特権レベルが前記初期特権レベルよりも少ない特権を持つならば、制御を前記仮想マシンモニタへ移行する1つの第4手段と
を更に具える装置。
【請求項55】
請求項51の前記装置であって、
1つの初期特権レベルを決定する1つの第3手段と、
前記初期特権レベルから前記現在の特権レベルへの1つの移行と関連付けられた1つの特権レベルソースデスティネーション終了制御が利用可能であれば、制御を前記仮想マシンモニタへ移行する1つの第4手段と
を更に具える装置。
【請求項56】
請求項51の前記装置であって、
1つの目標特権レベルを記憶する1つの第3手段と、
1つの特権レベル整合終了制御が利用可能であり、前記現在の特権レベルが前記目標特権レベルと同じであれば、制御を前記仮想マシンモニタへ移行する1つの第4手段と
を更に具える装置。
【請求項57】
請求項51の前記装置であって、
1つの目標特権レベルを記憶する1つの第3手段と、
1つの特権レベル上限終了制御が利用可能であり、前記現在の特権レベルが前記目標特権レベルよりも多くの特権を持つならば、制御を前記仮想マシンモニタへ移行する1つの第4手段と
を更に具える装置。
【請求項58】
請求項51の前記装置であって、
1つの目標特権レベルを記憶する1つの第3手段と、
1つの特権レベル下限終了制御が利用可能であり、前記現在の特権レベルが前記目標特権レベルよりも少ない特権を持つならば、制御を前記仮想マシンモニタへ移行する1つの第4手段と
を更に具える装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2006−24207(P2006−24207A)
【公開日】平成18年1月26日(2006.1.26)
【国際特許分類】
【外国語出願】
【出願番号】特願2005−181228(P2005−181228)
【出願日】平成17年6月21日(2005.6.21)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.フロッピー
【出願人】(591003943)インテル・コーポレーション (1,101)