JP2013214325A - バーチャルマシン動作においてマシン状態を管理する方法及びシステム - Google Patents

バーチャルマシン動作においてマシン状態を管理する方法及びシステム Download PDF

Info

Publication number
JP2013214325A
JP2013214325A JP2013146594A JP2013146594A JP2013214325A JP 2013214325 A JP2013214325 A JP 2013214325A JP 2013146594 A JP2013146594 A JP 2013146594A JP 2013146594 A JP2013146594 A JP 2013146594A JP 2013214325 A JP2013214325 A JP 2013214325A
Authority
JP
Japan
Prior art keywords
state
values
machine
vmcs
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013146594A
Other languages
English (en)
Other versions
JP5746275B2 (ja
Inventor
Steven Bennett
ベネット,スティーヴン
Gilbert Neiger
ネイジャー,ギルバート
Erik Cota-Robles
コタ−ロブレス,エリック
Stalinselvaraj Jeyasingh
ジェヤシン,スターリンセルヴァライ
Aran Kagi
カギ,アラン
Kozuch Michael
コジュフ,マイケル
Uhlig Richard
アーリグ,リチャード
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2013214325A publication Critical patent/JP2013214325A/ja
Application granted granted Critical
Publication of JP5746275B2 publication Critical patent/JP5746275B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】バーチャルマシン動作においてマシン状態を管理することを目的とする。
【解決手段】バーチャルマシン(VM)とバーチャルマシンモニタ(VMM)との間の移行を制御する方法及びシステムが提供される。プロセッサは、移行を終了する前に、マシン状態の関連の要素をロード及び/又は格納するために、状態アクションインジケータを使用する。状態アクションインジケータはバーチャルマシン制御構造(VMCS)に格納されてもよく、予め定められてもよく、及び/又は動的に計算されてもよい。ある実施例では、ロードされる値はVMCSから直接得られてもよく、予め定められてもよく、及び/又は動的に計算されてもよい。ある実施例では、格納される値はマシン状態から直接得られてもよく、予め定められてもよく、及び/又は動的に計算されてもよい。
【選択図】図1

Description

本発明の実施例は、概してコンピュータシステムに関するものであり、特に、コンピュータシステム内のバーチャルマシン動作の動作管理及び/又は制御に関するものである。
バーチャルマシンシステムは、物理マシンが分割されることを可能にし、それによりマシンの基礎のハードウェアが1つ以上の独立に動作するバーチャルマシン(VM:Virtual Machine)として現れる。バーチャルマシンモニタ(VMM:Virtual Machine Monitor)はコンピュータで動作し、1つ以上のVMの抽象化を他のソフトウェアに提示する。各VMはそのオペレーティングシステム(OS)及び/又はアプリケーションソフトウェアを動作する自己完結型プラットフォームとして機能することがある。VM内で実行するソフトウェアは併せてゲストソフトウェアと呼ばれる。
ゲストソフトウェアは、VMではなく専用のコンピュータで動作しているように動作することになっている。すなわち、ゲストソフトウェアは多様なイベントを制御し、コンピュータ(例えば物理マシン)のハードウェアリソースにアクセスすることになっている。物理マシンのハードウェアリソースは、1つ以上のプロセッサと、プロセッサに存在するリソース(例えば、制御レジスタ、キャッシュ等)と、メモリ(及びメモリに存在する構造、例えば記述子テーブル)と、物理マシンに存在する他のリソース(例えば入出力デバイス)とを有してもよい。イベントは、割込み、例外、プラットフォームイベント(例えば、初期化(INIT:initialization)又はシステム管理割込み(SMI:system management interrupt))等を有してもよい。
VMMは、物理マシンのプロセッサ、デバイス、メモリ及びレジスタのゲストソフトウェア状態を必要に応じてスワップイン及びスワップアウトする。プロセッサは、VMとVMMとの間の移行中にいくつかの状態をスワップイン及びスワップアウトしてもよい。VMMは、ある状態のときに基礎の物理マシンへの直接のアクセスを許可することにより、VMの性能を向上させる。ゲストソフトウェアにおいて物理マシンへのアクセスを制限する非特権モードで動作が実行されているとき、又はVMMが制御を保持しようとする物理マシンのハードウェアリソースを動作が使用しないときに、このことは特に適している。VMMはVMのホストと考えられる。
ゲスト動作がVMMの正確な実行又は実行していないVMの何らかに影響を及ぼす場合に常に、VMMは制御を取り戻す。通常は、VMMは基礎の物理マシンに動作を進めることを許可する前に、又はゲストの代わりに動作をエミュレートする前に、問題が存在するか否かを決定することで、そのような動作を検査する。例えば、ゲストがI/Oデバイスにアクセスするとき、(例えば制御レジスタ値を変更することにより)マシン構成を変更しようとするとき、メモリの特定の領域にアクセスしようとするとき等に、VMMは制御を取り戻す必要があることがある。
VM動作をサポートする既存の物理マシンは、ここでバーチャルマシン制御構造(VMCS:Virtual Machine Control Structure)と呼ばれる構造を使用して、VMの実行環境を制御する。VMCSはメモリの領域に格納され、例えば、ゲストの状態や、VMMの状態や、VMMがゲストの実行中に制御を取り戻そうとする状態を示す制御情報を有する。物理マシンの1つ以上のプロセッサはVMCSから情報を読み取り、VM及びVMMの実行環境を決定し、ゲストソフトウェアの動きを適切に律則する。
VMへの移行(例えばエントリー(entry))又はVMからの移行(例えばエグジット(exit))が生じたときに、物理マシンのプロセッサは、マシン状態をロードして格納する。従来のアーキテクチャは、他のシステム構造と命令符号化とマシン動作と同様に、プロセッサ仕様に定められる通り、所定のセットの状態のロード及び格納を実行する。VMMはこれらの仕様に直接コード化されている。この構造は、VMMの実装の柔軟性を制限する。
従って、VMのエントリー及びエグジットの技術の改善した実装の必要性が存在する。これらの実装及び技術は、VM動作のより良い管理及び制御を可能にする。
本発明の一実施例に従ったVMアーキテクチャの図 本発明の一実施例に従ってVM移行動作を管理する方法のフローチャート 本発明の一実施例に従ってVM移行動作中にマシン状態をロードする方法のフローチャート 本発明の一実施例に従ってVM移行動作中にマシン状態を格納する方法のフローチャート 本発明の一実施例に従ってVM移行中にロード動作を実行する方法のフローチャート 本発明の一実施例に従ってVM移行中に格納動作を実行する方法のフローチャート 本発明の一実施例に従ってVM移行動作中に状態アクションインジケータの値を決定する方法のフローチャート
VM動作中の移行を管理する新規な方法、装置及びシステムについて説明する。実施例の以下の詳細な説明において、添付図面に対して参照が行われ、添付図面はこの一部を形成し、添付図面には限定ではなく例示で実行され得る本発明の特定の実施例が図示されている。これらの実施例は、当業者が理解及び実装できるように十分に詳細に説明されており、他の実施例も利用可能であり、この開示の要旨及び範囲を逸脱することなく、構造的、論理的及び電気的な変更が行われ得ることがわかる。従って、以下の詳細な説明は限定の意味で解釈されるべきではなく、ここに開示された本発明の実施例の範囲は特許請求の範囲によってのみ定められる。
図1は、本発明が動作し得るバーチャルマシン環境100の実施例を示している。この実施例では、物理マシン110は、例えば標準的なオペレーティングシステム(OS)又はVMM125のようなバーチャルマシンモニタ(VMM:virtual-machine monitor)を実行可能なコンピュータプラットフォームを有する。VMM125は一般的にはソフトウェアで実装されるが、上位レベルのソフトウェアに対してマシンインタフェースをエミュレート及びエクスポートしてもよい。このような上位レベルのソフトウェアは、標準的又はリアルタイムのOSを有してもよく、限られたOS機能を備えてかなり除去された動作環境でもよく、従来のOS機能を有してなくてもよい。代替として、例えばVMM125は他のVMM内で動作してもよく、他のVMMの上位で動作してもよい。VMM125は、例えばハードウェア、ソフトウェア、ファームウェア又は多様な技術の組み合わせで実装されてもよい。VMMとその一般的な特徴及び機能は当業者に周知である。
物理マシン110は、パーソナルコンピュータ(PC)、メインフレーム、ハンドヘルド装置、ポータブルコンピュータ、セットトップボックス、インテリジェント装置、又はその他のコンピュータシステム若しくはデバイスでもよい。物理マシン110は、プロセッサ112とメモリ120とを有する。更に、物理マシン110は、多様な他の入出力デバイス(図示なし)を有してもよい。
プロセッサ112は、マイクロプロセッサ、デジタルシグナルプロセッサ、マイクロコントローラ等のように、ソフトウェアを実行可能な如何なる種類のプロセッサでもよい。プロセッサ112は、本発明の方法の実施例の実行を行うマイクロコード、マクロコード、ソフトウェア、プログラム可能ロジック又はハードコードロジックを有してもよい。唯一のこのようなプロセッサ112が図1に図示されているが、1つ以上のプロセッサがシステムに存在してもよいことがわかる。
メモリ120は、ハードディスク、フロッピー(登録商標)ディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュメモリ、その他の種類のプロセッサ112により読取可能な機械媒体、又はそのデバイスの何らかの組み合わせでもよい。メモリ120は、本発明の方法の実施例の実行を行う命令及び/又はデータを格納してもよい。
VMM125は、他のソフトウェア(すなわち、“ゲスト”ソフトウェア)に1つ以上のバーチャルマシン(VM)の抽象化を提示し、その1つ以上のバーチャルマシンは、多様なゲストに同一の又は異なる抽象化を提供してもよい。図1は3つのVM132、142、152を示している。各VMで動作するゲストソフトウェアは、ゲストOS134、144又は154のようなゲストOSと、多様なゲストソフトウェアアプリケーション136、146、156を有してもよい。ゲストOS134、144、154のそれぞれは、ゲストOS134、144又は154が動作するVM132、142、152内の物理リソース(例えば、プロセッサ112のレジスタ、メモリ120及びI/Oデバイス)にアクセスし、VM132、142、152の動作中にシステムデバイスにより生成された割込みを含む多様なイベントを処理することになっている。
プロセッサ112は、VMCS122に格納されたデータに従ってVM132、142、152の動作を制御する。(図1に示す通り)VMCS122はプロセッサ112内のメモリ120に格納されてもよく、他の場所又は記憶位置の如何なる組み合わせに格納されてもよい。VMCS122は、VMM125及びゲストソフトウェアのマシン状態の記憶装置を提供する。更に、VMの動作を制限又は制御し、VMとVMM125との間の移行を制御するインジケータを有してもよい。VMCS122はVMM125によりアクセス可能である。VMCSはメモリ又は記憶装置の連続的な領域である必要はない。従って、ある実施例では、VMCSは論理的に集められ、複数のメモリ又は記憶装置の位置からアクセスされてもよい。
VMM125からゲストソフトウェアへの移行は“VMエントリー(VM entry)”と呼ばれる。ゲストソフトウェアからVMM120への移行は“VMエグジット(VM exit)”と呼ばれる。VMエントリーとVMエグジットとを併せて“VM移行”と呼ばれる。一実施例では、VMM125は、VMエントリーをもたらす特定の命令を実行することにより、VMエントリーを開始してもよい。一実施例では、(例えばVMエグジットを生成する特別の命令を実行することにより)VMエグジットはVMにより明示的に要求されてもよい。ある実施例では、VMは直接的に移行を要求せずに、VMCS122の制御又はバーチャルマシンシステムのアーキテクチャにより決められた通り、何らかのイベント(例えばプロテクションの障害、割込み等)又はVM実行の命令がVMエグジットを要求する(例えば、特定の制御ビットがVMCSに設定されている場合に、INVLPG命令の実行がVMエグジットをもたらす;マスク不可能な割込みの全ての発生がVMエグジットをもたらす)。
VM移行中に、プロセッサ112はマシン状態の多様な要素で動作してもよい。当業者にわかるように、マシン状態は、例えば、プロセッサ、I/Oデバイス、チップセット等の多様なアーキテクチャ上の構成要素に関連してもよい。従って、本発明の多様な実施例の説明は、従来ではアーキテクチャ上としてみなされないいくつかの構成要素により補われた従来の意味で、“マシン状態”という語句を使用する。従って、マシン状態は、汎用レジスタ及び浮動小数点レジスタ(例えば、IA-32ISA、EAX、EDX、ST3等と呼ばれるIntelのPentium(登録商標)IVの命令セットアーキテクチャ(ISA:Instruction Set Architecture))、(例えば、IA-32ISA、CR0、CR3等の)制御レジスタ、(例えば、IA-32ISA、EFLAGS等の)処理フラグ、(例えば、IA-32ISA、DEBUGCTL、MTRR、TSC等の)モデル特有のレジスタ(MSR:model-specific register)、(例えば、セレクタとベースとリミットとARバイトフィールドとを含むIA-32ISA、CS、SS、TR等の)セグメントレジスタ、更なる内部(アーキテクチャ上又は非アーキテクチャ上)マシン状態(例えば、スリープ状態、割込み可能情報、状態機械の状態)、メモリ管理に関する状態(例えば、PDPTR、変換索引バッファ(TLB:translation look aside buffer)の内容)、チップセットのレジスタ、I/Oデバイス状態等を有してもよい。同様に、前述の情報の例示的なリストは包括的を目的としたものではなく、他の情報で補われてもよい。更に、当業者はここに提示された頭文字を容易に認識する。
VMシステム100は、ゲストVM(例えば、132、142、152)とホストVMM125との間での移行(例えば、エントリー及びエグジット)中にマシン状態のロード及び/又は格納を管理する際に使用される機構を実装する柔軟なアーキテクチャを提供する。
図2Aは、本発明の一実施例に従ってVM移行動作を管理する方法200のフローチャートを示している。その処理は、ハードウェア(例えば、回路、専用ロジック、プログラム可能ロジック、マイクロコード等)、ソフトウェア(例えば、汎用コンピュータシステム又は専用マシンで実行する)、又はその双方を有してもよい処理ロジックにより実行されてもよい。
210において、VM移行が行われようとしていることをプロセッサが検出する。VM移行はVMエグジットでもよく、VMエントリーでもよい。それに応じて220において、VM移行がVMエグジット動作であるか否かを決定するために検査が行われる。
プロセッサがVMエントリーを処理している場合、プロセッサは、VMMからVMへの制御の移転に備えて、複数の動作を実行することができる。例えば、プロセッサは230でVMMマシン状態を格納し、240でVMマシン状態をロードし、最後に250でVMに制御を移転することができる。
プロセッサがVMエグジットを処理している場合、プロセッサは、VMMからVMへの制御の移転に備えて、複数の動作を実行することができる。例えば、プロセッサは260でVMマシン状態を格納し、270でVMMマシン状態をロードし、最後に280でVMMに制御を移転することができる。
VM移行中にマシンをロード(例えば図2からの240及び/又は270)及び格納(例えば図2からの230及び/又は260)する方法の実施例は、それぞれ図2Bと図2Cに示されている。
図2A、2B及び2Cに示されていない他のアクションがVMエントリー又はVMエグジット中に生じていていもよいことがわかる。例えば、VMエントリー又はVMエグジットでロードされている状態の有効性及び一貫性が確保される必要があることがある。
図2Bは、VM移行中に状態をロードする方法202を示している。その方法は、ハードウェア(例えば、回路、専用ロジック、プログラム可能ロジック、マイクロコード等)、ソフトウェア(例えば、汎用コンピュータシステム又は専用マシンで実行する)、又はその双方を有してもよい処理ロジックにより実行されてもよい。
まず222において、処理の必要のあるマシン状態の何らかの要素が残っているか否かが決定される。処理されるマシン状態の要素が残っていない場合、その方法は終了する。その他の場合、232において制御ビット値が決定される。制御ビットとその決定については以下に詳細に説明する。242においてビットが設定されていない(ビットが0の値を有する)と決定された場合、制御は222に戻る。その他の場合(ビットが1の値を有するように設定されている場合)、252において、マシン状態の対応する要素の値が決定される。値の決定については以下に説明する。262において、この値はマシン状態に設定される。マシン状態の要素がまだ残っているか否かを決定するために、制御は222に戻る。
図2Cは、VM移行中にマシン状態を格納する方法204を示している。その方法は、ハードウェア(例えば、回路、専用ロジック、プログラム可能ロジック、マイクロコード等)、ソフトウェア(例えば、汎用コンピュータシステム又は専用マシンで実行する)、又はその双方を有してもよい処理ロジックにより実行されてもよい。
まず224において、処理の必要のあるマシン状態の何らかの要素が残っているか否かが決定される。処理されるマシン状態の要素が残っていない場合、その方法は終了する。その他の場合、234において制御ビット値が決定される。制御ビットとその決定については以下に詳細に説明する。244においてビットが設定されていない(ビットが0の値を有する)と決定された場合、制御は224に戻る。その他の場合(ビットが1の値を有するように設定されている場合)、254において、マシン状態の要素に対応する値が決定される。値の決定については以下に説明する。264において、この値が格納される。マシン状態の要素がまだ残っているか否かを決定するために、制御は224に戻る。
一実施例において、VMCSは、VMMの制御のもとにある2つのセットの制御ビットを有する。これらの制御ビットは、VMエントリー制御及びVMエグジット制御と呼ばれる。VMエントリー制御は、どのVMMマシン状態が格納されるべきか、どのVMマシン状態がVMエントリー中にロードされるべきかをプロセッサに通知する。VMエグジット制御は、どのVMマシン状態が格納されるべきか、どのVMMマシン状態がVMエグジット中にロードされるべきかをプロセッサに通知する。
ほんの一例として、VMエントリー制御は、ビットストリング内の各ビット位置がマシン状態の特定の要素のアクション又は非アクションを特定又は表示する6の長さを有するビットストリングとして表されてもよい。例えば、ストリング内のビット位置及びマシン状態の関連の要素は、以下のように表すことができる。
Figure 2013214325
同様に、VMエグジット制御は、4の長さを有するVMCS内のビットストリングとして表されてもよい。同様に、ストリング内のビット位置及びマシン状態の要素の関連のアクションは、以下のように表すことができる。
Figure 2013214325
VMエントリーにおいて、VMMがVMエントリー制御(ビット数0)に“store-VMM-DR7”ビットを設定した場合、プロセッサは、DR7レジスタの現在の値を格納する。一実施例では、DR7レジスタの値はVMCSに格納される。逆に、VMエントリー制御の“store-VMM-DR7”ビットがクリアされると、プロセッサはDR7レジスタ値を格納しない。“store-VMM-CR3”及び“store-VMM-CR4”のVMエントリー制御ビット(例えば、それぞれビット数1及び2)も同様に動作する。
同様に、VMMが“load-guest-DR7”のVMエントリー制御ビット(例えばビット数4)を設定した場合、プロセッサはDR7レジスタをロードする。一実施例では、ロードされる値は、VMCSのゲストVMのDR7フィールドに含まれる。“load-guest-DR7”のVMエントリー制御ビットがクリアされると、プロセッサはDR7レジスタをロードしない。この場合も同様に、“load-guest-CR3”及び“load-guest-CR4”の制御ビット(例えば、それぞれビット数4及び5)も同様に動作する。VMエグジット制御ビットは、VMエグジットでゲストVMマシン状態の格納とホストVMMマシン状態のロードとを制御するように同様に動作する。
この例では、VMエントリー制御はDR7を表すビットを有するが、VMエグジット制御は有さないため、VMエントリー制御及びVMエグジット制御はマシン状態の同じ要素を制御しない。しかし、当業者に容易にわかるように、VMエントリー制御及びVMエグジット制御はマシン状態の同じ要素を制御することができ、その内容も本発明の多様な実施例の範囲内にあることを意図する。更に、この例で表されたマシン状態の特定の選択は限定としてみなされるべきではない。
前述の例は本発明の一実施例を理解する説明を提供するが、本発明はそれに限定されることを目的としない。例えば、(前述の実施例のように)全てのシナリオにおいて、ロードされる値はVMCSの値である必要はなく、格納される値はマシン状態からの直接の値である必要はない。
前述の実施例では、プロセッサは、VMCSに又はVMCSからマシン状態の要素について値をロード又は格納することができる。代替として、マシン状態の要素について固定値をロード又は格納してもよい。更に、プロセッサは、動的に計算された値をロード又は格納してもよい。最後に、プロセッサは、マシン状態の要素に関して何もアクションをしなくてもよい(値がロード又は格納されない)。ロード又は格納される値を決定するこのような代替の機構について、以下に説明する。
プロセッサは、マシン状態の要素について固定値(例えば一定値又は所定の値)をロード又は格納してもよい。例えば、プロセッサ、VMエグジットでEFLAGSレジスタに固定値をロードしてもよい。すなわち、VMCSに表されるVMM EFLAGSが存在しない。その代わりに、プロセッサはVMMに制御を移行する前に、プロセッサのEFLAGSレジスタが固定値又は所定の値(例えば0x2又は他の値)を有するようにさせる。このように、プロセッサは、マシン状態の要素の値を“強制”する。同様に、プロセッサは、VMエントリーでVMCSに格納される値を強制してもよく、VMエントリーでマシン状態にロードされる値を強制してもよく、及び/又はVMエグジットでVMCSに格納される値を強制してもよい。
このように、マシン状態の全ての要素が明示的にVMCSに表される必要はない。この技術は、大きい又は規則のないVMCSを生成することなく、マシン状態の更なる要素をカバーする柔軟な機構を提供する。更に、マシン状態のこの強制又は格納された値は、VMCSに必要なアクセス数を減少させることにより、及びVMエントリー及び/又はVMエグジットで必要な一貫性及びエラーチェックを減少させることにより、VMエグジット及びVMエントリーの実装の性能を改善し得る。
更に、プロセッサは、マシン状態にロードされる値又はVMCSに格納される値を計算することができる。この計算値は、マシン状態の1つ以上の要素の値、VMCS内に含まれる値等に基づいて動的に決定される。例えば、VMエグジットでEIPレジスタにロードされる値は、VMCSからVMM EIPフィールド値をロードし、計算値がVMエグジットの要因に依存するような何らかの計算値により補われて、このEIP値をEIPレジスタにロードすることにより計算され得る。
マシン状態の要素の動的な計算により、VMMの更に効率的な実装が可能になることがある。例えば、前述の例では、VMエグジットでのEIPの動的な計算により、VMMが個々のVMエグジットのソースのハンドラを構成し、VMMソフトウェアのエグジット動機をデコードする必要性を除去する。
最終的に、プロセッサはVM移行中にマシン状態の要素に関してアクションを行わなくてもよい。例えば、VMからVMMに移行するときに、プロセッサは(例えばIA-32ISA、EAX、EDX等の)汎用レジスタの値を変更しないままにしてもよい。
プロセッサは、“状態アクションインジケータ”を評価することにより、VM移行中のマシン状態の要素に関して行うべき適切なアクションを決定する。状態アクションインジケータは、どのアクションが行われるべきかを決定する。状態アクションインジケータの値(“状態アクションインジケータ値”)は、VMCSから状態情報をロードし、又はVMCSに状態情報を格納するようにプロセッサに命令することができる。状態アクションインジケータ値もまた、固定値又は所定の値がロード又は格納され、検討中のマシン状態の特定の要素に関して何もアクションを行わず、又は計算値をロード若しくは格納することをプロセッサに強制することができる。
前述のVMエントリー制御及びVMエグジット制御は、状態アクションインジケータの例である。この例では、プロセッサは状態アクションインジケータとしてVMCSのフィールドを使用する。VMエントリー制御又はVMエグジット制御の各ビットは、マシン状態の単一の要素に対応する。ビットが設定されている場合、マシン状態がVMCSからロードされる/VMCSに格納されることをプロセッサに指示する。それがクリアされている場合、マシン状態の要素は無視される。代替実施例では、マシン状態の要素がロードされるか固定値に強制されるかを単一ビットが決定することができる。更なる実施例では、状態アクションインジケータは単一ビットより大きくてもよく、更に複雑な動作を符号化してもよい。例えば、状態アクションインジケータは4つの値を許容する2ビットでもよく、前述のロード、強制、計算及び無視の機構を区別してもよい。
状態アクションインジケータは、(前述のVMエントリー制御及びVMエグジット制御の実施例のような)マシン状態の特定の要素で、及び/又はマシン状態の複数の要素(例えば、VMエグジットでプロセッサの全ての汎用レジスタのロードを制御する単一の状態アクションインジケータ)で、特定のVM移行(例えば全てのVMエグジット)に関連してもよい。
状態アクションインジケータ値は、(前述の例のように)VMCSから得られた値から決定されてもよく、固定値(すなわち所定の値)でもよく、また、動的に計算された値でもよい。その可能性のそれぞれについて以下に説明する。
状態アクションインジケータはVMMの制御のもとでVMCSに格納されてもよい。VMCSに格納された状態アクションインジケータの例については前記に詳細に説明した。
状態アクションインジケータは予め定められてもよい。状態アクションインジケータが固定値又は所定の値である場合、VMMは、VM移行でマシン状態の対応する要素でプロセッサが行うアクションに対して、直接の制御を有さない。例えば、プロセッサはVMエントリー処理中にEIPレジスタの値を常に格納しなくてもよく、VMエントリー処理中にVMCSからEIPレジスタのゲスト値を常にロードしてもよく、及び/又はVMエグジット処理中にEIPレジスタを常にロードしてもよい。
状態アクションインジケータは動的に計算されてもよい。状態アクションインジケータが動的に計算された値である場合、状態アクションインジケータは、マシン状態の1つ以上の要素、VMCSの1つ以上のフィールド等に関連する1つ以上の値に依存してもよい。
例えばIA-32ISAでは、プロセッサがVMエントリー又はVMエグジットに続いて物理アドレス拡張を使用している場合(PAEモードである場合)、プロセッサはVMCSからページ・ディレクトリ・ポインタ・テーブル(PDPTR:page directory pointer table)のエントリーをロードする。プロセッサがPAEモードでない場合、プロセッサのPDTRは0に強制される。プロセッサがPAEモードであるか否かを決定するために、プロセッサはCR4レジスタのPAEビットを検査する。このように、プロセッサは、状態アクションインジケータ値の動的な決定又は計算を行うと考えられ得る。PAEビットが設定されている場合、状態アクションインジケータは、“VMCSからロード”するようにプロセッサに命令する。PAEビットがクリアされている場合、状態アクションインジケータは“値を強制”する(例えば0の値を強制する)ようにプロセッサに命令する。プロセッサがPAEモードであるか否かを決定するためのここで説明した処理は、本発明の多様な実施例を明白に説明するために簡略化されている点に留意すべきである。この決定を行うために更なる処理が必要なことがあり、それは当業者に容易に認識され理解される。
その他の例では、セグメントのセレクタの値がゼロでない場合、又はプロセッサがV86モードである場合に、プロセッサはセグメントレジスタのベース及びリミットフィールドをロードすることができる。この決定を行うために、プロセッサは2つのマシン状態情報(検討中のセグメントのセレクタの値、及びEFLAGSレジスタのVMビットの値)を検査する。セレクタがゼロでない場合、又はEFLAGSのVMビットが設定されている場合、プロセッサは“VMCSからロード”するように命令される。そうでない場合、プロセッサはアクションを行わない。ベース及びリミットフィールドをロードする必要があるか否かを決定するためのここで説明した処理は、本発明の多様な実施例を明白に説明するために簡略化されている点に留意すべきである。この決定を行うために更なる処理が必要なことがあり、それは当業者に容易に認識され理解される。
当業者に明らかなように、ここで説明した方法は、VMMとVMとの間の移行中にマシン状態のロード及び格納を動的に制御するために使用可能である。一例として前述した柔軟な命令ロジックを有するプロセッサとVMCSとを使用することにより、移行がVMMに対して生じる。更に、マシン状態の各要素及びプロセッサにより行われるアクションは、肯定的に宣言される必要はなく、また、VMCS内に単に表される必要はない。
図3は、本発明の一実施例に従ってVM移行中にマシン状態の要素のロードを実行する方法300のフローチャートを示している。図3は、マシンのプロセッサの設計に実装され得る。その方法は、ハードウェア(例えば、回路、専用ロジック、プログラム可能ロジック、マイクロコード等)、ソフトウェア(例えば、汎用コンピュータシステム又は専用マシンで実行する)、又はその双方を有してもよい処理ロジックにより実行されてもよい。
310において、プロセッサは検討中のマシン状態の要素について状態アクションインジケータを決定する。320において、プロセッサは状態アクションインジケータを検査する。検討中のマシン状態の要素がVMCSからロードされるべきであることを状態アクションインジケータ値が示すと、330において、マシン状態の要素の値がロードされ、335において、検討中のマシン状態の対応する要素に設定される。しかし、検討中のマシン状態の要素が強制されるべきであることをステップ340において決定されて状態アクションインジケータ値が示すと、350において、プロセッサはマシン状態の対応する要素に所定の値又は強制値を設定する。更に、360において、状態アクションインジケータ値は、検討中のマシン状態の要素に関してプロセッサにより行われるべきアクションがないことを示してもよい。その場合、プロセッサはアクションを行わない(プロセッサは検討中のマシン状態の要素を変更しない)。
360での状態アクションインジケータの評価が否定的である場合(検討中のマシン状態の要素に関してアクションが必要ないことを示さない場合)、動的な計算が必要なことが推測され得る。当然のことながら、ある実施例では、その推測を全く行うことなく計算が必要であるかを決定するために、状態アクションインジケータの肯定的なチェックが行われてもよい。従って、検討中のマシン状態の要素の値は370で計算され、380でマシン状態の要素内に設定される。プロセッサは、マシン状態の1つ以上の要素を検査することにより、VMCSの値を検査することにより、及び/又は制御インジケータ値を検査すること等により、マシン状態の要素の値を動的に計算してもよい。更に、検査が行われると、プロセッサは検討中のマシン状態の要素の値を作るために、1つ以上の変換(例えば計算)を実行してもよい。このように、プロセッサは多様なデータを使用することができ、マシン状態の要素の値を生成するために多様なアクションを実行する。
図3に示されていないが、方法300はマシン状態の要素毎に繰り返される。更に、前述のように、各状態アクションインジケータはマシン状態の1つ以上の要素に関連してもよい。
図4は、本発明の一実施例に従ってVM移行中にマシン状態の要素の格納を実行する方法400のフローチャートを示している。方法400は、プロセッサアーキテクチャに実装され得る。その方法は、ハードウェア(例えば、回路、専用ロジック、プログラム可能ロジック、マイクロコード等)、ソフトウェア(例えば、汎用コンピュータシステム又は専用マシンで実行する)、又はその双方を有してもよい処理ロジックにより実行されてもよい。
410において、プロセッサは検討中のマシン状態の要素について状態アクションインジケータを決定する。420において、プロセッサは状態アクションインジケータを検査する。状態アクションインジケータが検討中のマシン状態の要素のVMCSへの格納を必要とする場合に、430において、検討中のマシン状態の要素がVMCSの1つ以上のフィールドに格納される。そうでない場合、440において、固定値がVMCSに格納されるか否かを決定するために、状態アクションインジケータ値が検査され、そうである場合、450において、固定値がVMCSの1つ以上のフィールドに格納される。ある場合には、状態アクションインジケータ値は、460に示すように、アクションを実行しないようにプロセッサに命令してもよい。
470において、マシン状態の要素に対応する値が動的に決定される。480において、計算された値がVMCSの1つ以上のフィールドに格納される。プロセッサは、マシン状態の1つ以上の要素を検査することにより、VMCSの値を検査することにより、及び/又は制御インジケータ値を検査すること等により、値を動的に計算してもよい。更に、検査が行われると、プロセッサはVMCSの1つ以上のフィールドに格納される計算値を作るために、1つ以上の変換(例えば計算)を実行してもよい。このように、プロセッサは多様なデータを使用することができ、計算値を生成するために多様なアクションを実行する。
図4に示されていないが、方法400はマシン状態の要素毎に繰り返されてもよい。更に、前述のように、各状態アクションインジケータはマシン状態の1つ以上の要素に関連してもよい。
図5は、本発明の一実施例に従ってVM移行動作中(例えば、図3のブロック310及び図4のブロック410)に状態アクションインジケータの値を決定する方法500のフローチャートを示している。その方法は、ハードウェア(例えば、回路、専用ロジック、プログラム可能ロジック、マイクロコード等)、ソフトウェア(例えば、汎用コンピュータシステム又は専用マシンで実行する)、又はその双方を有してもよい処理ロジックにより実行されてもよい。
505において、プロセッサは、検討中のマシン状態の要素と、処理中のVM移行の形式と、状態のロード又は格納が処理中であるか否かとを決定する。決定した情報に基づいて、507において、マシン状態のこの要素に関連する状態アクションインジケータが固定であるか、VMCSからロードされるものであるか、計算されるものであるかをアーキテクチャが指示するか否かをプロセッサが決定する。
510において、状態アクションインジケータが固定である場合、520において、固定の状態アクションインジケータ値が決定される。
530において、状態アクションインジケータがVMCSから得られる場合、540において、状態アクションインジケータ値がVMCSからロードされる。
550において、状態アクションインジケータが動的に決定されるもの又は計算されるものである場合、550において、状態アクションインジケータを決定するために計算が実行される。動的な決定又は計算は、例えばVMCS内の多様なフィールド(制御ベクトルフィールド値を含む)をロードすること、マシン状態の多様な要素を検査すること、VM及び/又はVMM状態の多様な要素を検査すること、1つ以上の制御インジケータ値を検査すること、及び/又は検査した情報で変換すること(例えば計算を実行すること)を有してもよい。
ある実施例では、状態アクションインジケータ値の決定及び評価は明白ではない。プロセッサは、特定の状態が特定のアクションを要求すると認識するように設計されてもよい。例えば、プロセッサのロジックは、状態アクションインジケータ値を明示的に評価せずに、マシン状態の要素を特定の値に無条件に強制してもよい。従って、図5に関して説明した明示的なチェックは限定としてみなされるべきではない。
本発明の実施例は、VM移行の改善した処理を提供する。これは、VMCSを使用するが、VM移行を実行するためにVMCS内に備えられた情報に完全に依存する必要のないプロセッサ内の処理を柔軟に具現することにより実現される。
本発明の多様な実施例に従ったプロセッサの実装は、VM移行中のマシン状態のロード及び格納を管理及び制御することができることを、当業者は認識するであろう。特に、これらの実施例は、アーキテクチャにより可能になるように、VM移行中のマシン状態のロード及び格納の動作を指示するように、VMMに柔軟性を提供する。このことは、マシン状態の要素の全てのインスタンスを把握する柔軟性のないMVCSで必ずしも実現されない。また、VM移行でマシン状態の全ての格納及びロードがVMCSの制御を通じてVMMにより明示的に指示される必要はない。
前述の説明は例示的であり、限定的でないことを意図することがわかる。前述の説明を検討することにより、多数の他の実施例が当業者に明らかになる。従って、本発明の実施例の範囲は、特許請求の範囲を参照して、特許請求の範囲が享有する同等物の全範囲と共に決定されるべきである。
要約は、読者が技術的な開示の本質及び要点を即座に確認することが可能になるように、37C.F.R.§1.72(b)に従うように提供されていることを強調する。それは特許請求の範囲又は意味を解釈又は制限するために使用されないという理解で提示されている。
実施例の前述の説明において、開示を効率化するために多様な機能が単一の実施例にまとめられている。この開示の方法は、本発明の特許請求の範囲の実施例が各請求項に明白に記載された機能以上のものを必要とするという意図を反映するものとして解釈されるべきではない。むしろ、特許請求の範囲に示すように、本発明の対象は、単一の開示の実施例の全ての機能より少ないものにある。このように、特許請求の範囲はこれによって実施例の説明に組み込まれ、各請求項が別の例示的な実施例として独立する。
以上の実施例に関し、更に、以下の項目を開示する。
(1)バーチャルマシン(VM)動作を管理する方法であって、
処理されるVM移行動作を特定し、
1つ以上の状態アクションインジケータを特定し、
前記1つ以上の状態アクションインジケータの1つ以上の値を使用して、必要に応じてマシン状態の1つ以上の関連の要素について少なくとも1つのアクションを決定することを有する方法。
(2)(1)に記載の方法であって、
特定するときに、前記1つ以上の状態アクションインジケータは、前記VM移行動作と、前記マシン状態の前記1つ以上の関連の要素と、前記マシン状態の第2の要素とのうち少なくとも1つに関連する方法。
(3)(1)に記載の方法であって、
使用するときに、前記少なくとも1つのアクションは、前記マシン状態の前記1つ以上の関連の要素のロードと、前記マシン状態の前記1つ以上の関連の要素の格納と、アクションを行わないこととのうち少なくとも1つを有する方法。
(4)(1)に記載の方法であって、
特定するときに、前記1つ以上の状態アクションインジケータは、
バーチャルマシン制御構造(VMCS)の1つ以上の読み取り値と、
1つ以上の固定値と、
前記マシン状態の前記1つ以上の関連の要素と、
前記マシン状態の第2の要素と、
前記VMの状態に関連する要素と、
バーチャルマシンモニタ(VMM)の状態に関連する要素と、
制御インジケータ値と、
VMCSのフィールド値と
のうち少なくとも1つに基づいた計算値と
のうち少なくとも1つである方法。
(5)(1)に記載の方法であって、
特定するときに、前記1つ以上の状態アクションインジケータは、前記マシン状態の前記少なくとも1つの関連の要素を記述するデータ構造と、制御ベクトルの1つ以上のビットとのうち少なくとも1つである方法。
(6)(1)に記載の方法であって、
使用するときに、少なくとも1つのアクションのそれぞれは、
バーチャルマシン制御構造(VMCS)の1つ以上のフィールドに前記マシン状態の前記1つ以上の関連の要素を格納することと、
前記VMCSの1つ以上のフィールドに1つ以上の固定値を格納することと、
前記VMCSの1つ以上のフィールドに1つ以上の計算値を格納することと
のうち少なくとも1つを実行する方法。
(7)(6)に記載の方法であって、
前記1つ以上の計算値を格納するときに、前記1つ以上の計算値は、
前記マシン状態の要素と、
バーチャルマシン制御構造(VMCS)の値と、
制御インジケータと
のうち少なくとも1つの値を検査し、
前記検査した値を変換して、前記1つ以上の計算値を作ることにより決定される方法。
(8)(1)に記載の方法であって、
使用するときに、少なくとも1つのアクションのそれぞれは、
バーチャルマシン制御構造の1つ以上のフィールドから前記マシン状態の前記1つ以上の関連の要素をロードすることと、
前記マシン状態の前記1つ以上の関連の要素に、1つ以上の計算されたマシン状態の値をロードすることと、
前記マシン状態の前記1つ以上の関連の要素に、1つ以上の固定値をロードすることと
のうち少なくとも1つを実行する方法。
(9)(8)に記載の方法であって、
前記1つ以上の計算されたマシン状態の値をロードするときに、前記1つ以上の計算されたマシン状態の値は、
前記マシン状態の要素と、
前記バーチャルマシン制御構造(VMCS)の値と、
制御インジケータと
のうち少なくとも1つの値を検査し、
前記検査した値を変換して、前記1つ以上の計算されたマシン状態の値を作ることにより決定される方法。
(10)(1)に記載の方法であって、
前記VM移行動作を特定するときに、前記VM移行動作は、VMエントリーとVMエグジットとのうち少なくとも1つである方法。
(11)バーチャルマシン(VM)を管理するシステムであって、
VMと、
バーチャルマシンモニタ(VMM)と、
コンピュータ装置と
を有し、
VM移行のときに、コンピュータ装置は1つ以上の状態アクションインジケータを決定し、前記1つ以上の状態インジケータは前記コンピュータ装置により使用され、前記VM移行が終了する前に、必要に応じて、前記コンピュータ装置の状態の1つ以上の関連の要素を格納及び/又はロードするように前記コンピュータ装置にさせる少なくとも1つのアクションを決定するシステム。
(12)(11)に記載のシステムであって、
前記コンピュータ装置は、
バーチャルマシン制御構造(VMCS)から1つ以上のフィールド値を取得することと、
1つ以上の固定値を決定することと、
1つ以上の計算値を計算することと
のうち少なくとも1つにより、前記1つ以上の状態アクションインジケータの1つ以上の値を決定するシステム。
(13)(11)に記載のシステムであって、
前記コンピュータ装置は、2つのセットの制御ビットを有するバーチャルマシン制御構造(VMCS)にアクセスし、
第1のセットの制御ビットは、前記VMへのエントリーのときに、格納するコンピュータ装置の状態の要素と、ロードするコンピュータ装置の状態の要素とを特定するために、前記コンピュータ装置により使用され、
第2のセットの制御ビットは、前記VMからのエグジットのときに、格納するコンピュータ装置の状態の要素と、ロードするコンピュータ装置の状態の要素とを特定するために、前記コンピュータ装置により使用されるシステム。
(14)(11)に記載のシステムであって、
格納するときに、前記コンピュータ装置の状態の前記1つ以上の関連の要素は、
バーチャルマシン制御構造(VMCS)の1つ以上のフィールドに、前記コンピュータ装置の状態の前記1つ以上の関連の要素を格納し、
前記VMCSの前記1つ以上のフィールドに1つ以上の固定値を格納し、
前記VMCSの前記1つ以上のフィールドに1つ以上の計算値を格納することを更に有するシステム。
(15)(14)に記載のシステムであって、
前記1つ以上の計算値を格納するときに、前記1つ以上の計算値は、
前記計算装置の状態の要素と、
前記VMCSの値と、
制御インジケータと
のうち少なくとも1つの値を検査し、
前記検査した値を変換して、前記1つ以上の計算値を作ることにより決定されるシステム。
(16)(11)に記載のシステムであって、
ロードするときに、前記コンピュータ装置の状態の前記1つ以上の関連の要素は、
前記コンピュータ装置の状態の前記1つ以上の関連の要素で、バーチャルマシン制御構造の1つ以上のフィールドから前記コンピュータ装置の状態の前記1つ以上の関連の要素にロードし、
前記コンピュータ装置の状態の前記1つ以上の関連の要素に1つ以上の計算値をロードし、
前記コンピュータ装置の状態の前記1つ以上の関連の要素に1つ以上の固定値をロードすることを更に有するシステム。
(17)(16)に記載のシステムであって、
前記1つ以上の計算値をロードするときに、前記1つ以上の計算値は、
前記コンピュータ装置の状態の要素と、
前記VMCSの値と、
制御インジケータ値と
のうち少なくとも1つの値を検査し、
前記検査した値を変換し、前記少なくとも1つの計算値を作ることにより決定されるシステム。
(18)関連の命令を有する機械アクセス可能な媒体を有するものであって、
前記命令が実行されると、
バーチャルマシン(VM)移行の必要性を検知し、
1つ以上の状態アクションインジケータと、1つ以上の状態アクションインジケータ値とを決定し、
前記1つ以上の決定された状態アクションインジケータ値に基づいて、マシン状態の前記1つ以上の関連の要素で少なくとも1つのアクションを実行することを実行する少なくとも1つの構成要素を有する機械を生じるもの。
(19)(18)に記載のものであって、
検知するときに、VM移行は、バーチャルマシンモニタ(VMM)からのVMエグジットと、VMへのVMエントリーとのうち少なくとも1つであるもの。
(20)(18)に記載のものであって、
前記1つ以上の状態アクションインジケータを決定するときに、前記少なくとも1つの状態アクションインジケータは、
バーチャルマシン制御構造(VMCS)から少なくとも1つのインジケータ値を読み取ることと、
1つ以上の固定値を決定することと、
1つ以上の計算値を計算することと
のうち少なくとも1つを実行することにより決定されるもの。
(21)(20)に記載のものであって、
計算するときに、前記1つ以上の計算値は、
前記マシン状態の前記1つ以上の関連の要素を使用することと、
前記マシン状態の第2の要素を使用することと、
前記VMの状態に関連する要素を使用することと、
前記VMMの状態に関連する要素を使用することと、
制御インジケータ値を使用することと、
前記VMCSのフィールド値を使用することと
のうち少なくとも1つを実行することにより決定されるもの。
(22)(18)に記載のものであって、
実行するときに、前記少なくとも1つのアクションは、
マシン状態の前記1つ以上の関連の要素を格納することと、
1つ以上の固定格納値を格納することと、
1つ以上の計算格納値を格納することと、
バーチャルマシン制御構造(VMCS)の1つ以上のフィールドからマシン状態の前記1つ以上の関連の要素に1つ以上の値をロードすることと、
マシン状態の前記1つ以上の関連の要素に1つ以上の固定値をロードすることと、
マシン状態の前記1つ以上の関連の要素に1つ以上の計算値をロードすることと
のうち少なくとも1つを実行することにより実行されるもの。
(23)(18)に記載のものであって、
前記少なくとも1つのアクションが実行された後に、前記VM移行を終了することを更に有するもの。

Claims (23)

  1. バーチャルマシン(VM)動作を管理する方法であって、
    処理されるVM移行動作を特定し、
    1つ以上の状態アクションインジケータを特定し、
    前記1つ以上の状態アクションインジケータの1つ以上の値を使用して、必要に応じてマシン状態の1つ以上の関連の要素について少なくとも1つのアクションを決定することを有する方法。
  2. 請求項1に記載の方法であって、
    特定するときに、前記1つ以上の状態アクションインジケータは、前記VM移行動作と、前記マシン状態の前記1つ以上の関連の要素と、前記マシン状態の第2の要素とのうち少なくとも1つに関連する方法。
  3. 請求項1に記載の方法であって、
    使用するときに、前記少なくとも1つのアクションは、前記マシン状態の前記1つ以上の関連の要素のロードと、前記マシン状態の前記1つ以上の関連の要素の格納と、アクションを行わないこととのうち少なくとも1つを有する方法。
  4. 請求項1に記載の方法であって、
    特定するときに、前記1つ以上の状態アクションインジケータは、
    バーチャルマシン制御構造(VMCS)の1つ以上の読み取り値と、
    1つ以上の固定値と、
    前記マシン状態の前記1つ以上の関連の要素と、
    前記マシン状態の第2の要素と、
    前記VMの状態に関連する要素と、
    バーチャルマシンモニタ(VMM)の状態に関連する要素と、
    制御インジケータ値と、
    VMCSのフィールド値と
    のうち少なくとも1つに基づいた計算値と
    のうち少なくとも1つである方法。
  5. 請求項1に記載の方法であって、
    特定するときに、前記1つ以上の状態アクションインジケータは、前記マシン状態の前記少なくとも1つの関連の要素を記述するデータ構造と、制御ベクトルの1つ以上のビットとのうち少なくとも1つである方法。
  6. 請求項1に記載の方法であって、
    使用するときに、少なくとも1つのアクションのそれぞれは、
    バーチャルマシン制御構造(VMCS)の1つ以上のフィールドに前記マシン状態の前記1つ以上の関連の要素を格納することと、
    前記VMCSの1つ以上のフィールドに1つ以上の固定値を格納することと、
    前記VMCSの1つ以上のフィールドに1つ以上の計算値を格納することと
    のうち少なくとも1つを実行する方法。
  7. 請求項6に記載の方法であって、
    前記1つ以上の計算値を格納するときに、前記1つ以上の計算値は、
    前記マシン状態の要素と、
    バーチャルマシン制御構造(VMCS)の値と、
    制御インジケータと
    のうち少なくとも1つの値を検査し、
    前記検査した値を変換して、前記1つ以上の計算値を作ることにより決定される方法。
  8. 請求項1に記載の方法であって、
    使用するときに、少なくとも1つのアクションのそれぞれは、
    バーチャルマシン制御構造の1つ以上のフィールドから前記マシン状態の前記1つ以上の関連の要素をロードすることと、
    前記マシン状態の前記1つ以上の関連の要素に、1つ以上の計算されたマシン状態の値をロードすることと、
    前記マシン状態の前記1つ以上の関連の要素に、1つ以上の固定値をロードすることと
    のうち少なくとも1つを実行する方法。
  9. 請求項8に記載の方法であって、
    前記1つ以上の計算されたマシン状態の値をロードするときに、前記1つ以上の計算されたマシン状態の値は、
    前記マシン状態の要素と、
    前記バーチャルマシン制御構造(VMCS)の値と、
    制御インジケータと
    のうち少なくとも1つの値を検査し、
    前記検査した値を変換して、前記1つ以上の計算されたマシン状態の値を作ることにより決定される方法。
  10. 請求項1に記載の方法であって、
    前記VM移行動作を特定するときに、前記VM移行動作は、VMエントリーとVMエグジットとのうち少なくとも1つである方法。
  11. バーチャルマシン(VM)を管理するシステムであって、
    VMと、
    バーチャルマシンモニタ(VMM)と、
    コンピュータ装置と
    を有し、
    VM移行のときに、コンピュータ装置は1つ以上の状態アクションインジケータを決定し、前記1つ以上の状態インジケータは前記コンピュータ装置により使用され、前記VM移行が終了する前に、必要に応じて、前記コンピュータ装置の状態の1つ以上の関連の要素を格納及び/又はロードするように前記コンピュータ装置にさせる少なくとも1つのアクションを決定するシステム。
  12. 請求項11に記載のシステムであって、
    前記コンピュータ装置は、
    バーチャルマシン制御構造(VMCS)から1つ以上のフィールド値を取得することと、
    1つ以上の固定値を決定することと、
    1つ以上の計算値を計算することと
    のうち少なくとも1つにより、前記1つ以上の状態アクションインジケータの1つ以上の値を決定するシステム。
  13. 請求項11に記載のシステムであって、
    前記コンピュータ装置は、2つのセットの制御ビットを有するバーチャルマシン制御構造(VMCS)にアクセスし、
    第1のセットの制御ビットは、前記VMへのエントリーのときに、格納するコンピュータ装置の状態の要素と、ロードするコンピュータ装置の状態の要素とを特定するために、前記コンピュータ装置により使用され、
    第2のセットの制御ビットは、前記VMからのエグジットのときに、格納するコンピュータ装置の状態の要素と、ロードするコンピュータ装置の状態の要素とを特定するために、前記コンピュータ装置により使用されるシステム。
  14. 請求項11に記載のシステムであって、
    格納するときに、前記コンピュータ装置の状態の前記1つ以上の関連の要素は、
    バーチャルマシン制御構造(VMCS)の1つ以上のフィールドに、前記コンピュータ装置の状態の前記1つ以上の関連の要素を格納し、
    前記VMCSの前記1つ以上のフィールドに1つ以上の固定値を格納し、
    前記VMCSの前記1つ以上のフィールドに1つ以上の計算値を格納することを更に有するシステム。
  15. 請求項14に記載のシステムであって、
    前記1つ以上の計算値を格納するときに、前記1つ以上の計算値は、
    前記計算装置の状態の要素と、
    前記VMCSの値と、
    制御インジケータと
    のうち少なくとも1つの値を検査し、
    前記検査した値を変換して、前記1つ以上の計算値を作ることにより決定されるシステム。
  16. 請求項11に記載のシステムであって、
    ロードするときに、前記コンピュータ装置の状態の前記1つ以上の関連の要素は、
    前記コンピュータ装置の状態の前記1つ以上の関連の要素で、バーチャルマシン制御構造の1つ以上のフィールドから前記コンピュータ装置の状態の前記1つ以上の関連の要素にロードし、
    前記コンピュータ装置の状態の前記1つ以上の関連の要素に1つ以上の計算値をロードし、
    前記コンピュータ装置の状態の前記1つ以上の関連の要素に1つ以上の固定値をロードすることを更に有するシステム。
  17. 請求項16に記載のシステムであって、
    前記1つ以上の計算値をロードするときに、前記1つ以上の計算値は、
    前記コンピュータ装置の状態の要素と、
    前記VMCSの値と、
    制御インジケータ値と
    のうち少なくとも1つの値を検査し、
    前記検査した値を変換し、前記少なくとも1つの計算値を作ることにより決定されるシステム。
  18. 関連の命令を有する機械アクセス可能な媒体を有するものであって、
    前記命令が実行されると、
    バーチャルマシン(VM)移行の必要性を検知し、
    1つ以上の状態アクションインジケータと、1つ以上の状態アクションインジケータ値とを決定し、
    前記1つ以上の決定された状態アクションインジケータ値に基づいて、マシン状態の前記1つ以上の関連の要素で少なくとも1つのアクションを実行することを実行する少なくとも1つの構成要素を有する機械を生じるもの。
  19. 請求項18に記載のものであって、
    検知するときに、VM移行は、バーチャルマシンモニタ(VMM)からのVMエグジットと、VMへのVMエントリーとのうち少なくとも1つであるもの。
  20. 請求項18に記載のものであって、
    前記1つ以上の状態アクションインジケータを決定するときに、前記少なくとも1つの状態アクションインジケータは、
    バーチャルマシン制御構造(VMCS)から少なくとも1つのインジケータ値を読み取ることと、
    1つ以上の固定値を決定することと、
    1つ以上の計算値を計算することと
    のうち少なくとも1つを実行することにより決定されるもの。
  21. 請求項20に記載のものであって、
    計算するときに、前記1つ以上の計算値は、
    前記マシン状態の前記1つ以上の関連の要素を使用することと、
    前記マシン状態の第2の要素を使用することと、
    前記VMの状態に関連する要素を使用することと、
    前記VMMの状態に関連する要素を使用することと、
    制御インジケータ値を使用することと、
    前記VMCSのフィールド値を使用することと
    のうち少なくとも1つを実行することにより決定されるもの。
  22. 請求項18に記載のものであって、
    実行するときに、前記少なくとも1つのアクションは、
    マシン状態の前記1つ以上の関連の要素を格納することと、
    1つ以上の固定格納値を格納することと、
    1つ以上の計算格納値を格納することと、
    バーチャルマシン制御構造(VMCS)の1つ以上のフィールドからマシン状態の前記1つ以上の関連の要素に1つ以上の値をロードすることと、
    マシン状態の前記1つ以上の関連の要素に1つ以上の固定値をロードすることと、
    マシン状態の前記1つ以上の関連の要素に1つ以上の計算値をロードすることと
    のうち少なくとも1つを実行することにより実行されるもの。
  23. 請求項18に記載のものであって、
    前記少なくとも1つのアクションが実行された後に、前記VM移行を終了することを更に有するもの。
JP2013146594A 2002-12-19 2013-07-12 バーチャルマシン動作においてマシン状態を管理する方法及びシステム Expired - Fee Related JP5746275B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/324,591 US7793286B2 (en) 2002-12-19 2002-12-19 Methods and systems to manage machine state in virtual machine operations
US10/324,591 2002-12-19

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2011266500A Division JP5384605B2 (ja) 2002-12-19 2011-12-06 バーチャルマシン動作においてマシン状態を管理する方法及びシステム

Publications (2)

Publication Number Publication Date
JP2013214325A true JP2013214325A (ja) 2013-10-17
JP5746275B2 JP5746275B2 (ja) 2015-07-08

Family

ID=32593494

Family Applications (4)

Application Number Title Priority Date Filing Date
JP2004565223A Expired - Fee Related JP4937514B2 (ja) 2002-12-19 2003-12-04 バーチャルマシン動作においてマシン状態を管理する方法及びシステム
JP2009028629A Expired - Fee Related JP5068778B2 (ja) 2002-12-19 2009-02-10 バーチャルマシン動作においてマシン状態を管理する方法及びシステム
JP2011266500A Expired - Fee Related JP5384605B2 (ja) 2002-12-19 2011-12-06 バーチャルマシン動作においてマシン状態を管理する方法及びシステム
JP2013146594A Expired - Fee Related JP5746275B2 (ja) 2002-12-19 2013-07-12 バーチャルマシン動作においてマシン状態を管理する方法及びシステム

Family Applications Before (3)

Application Number Title Priority Date Filing Date
JP2004565223A Expired - Fee Related JP4937514B2 (ja) 2002-12-19 2003-12-04 バーチャルマシン動作においてマシン状態を管理する方法及びシステム
JP2009028629A Expired - Fee Related JP5068778B2 (ja) 2002-12-19 2009-02-10 バーチャルマシン動作においてマシン状態を管理する方法及びシステム
JP2011266500A Expired - Fee Related JP5384605B2 (ja) 2002-12-19 2011-12-06 バーチャルマシン動作においてマシン状態を管理する方法及びシステム

Country Status (8)

Country Link
US (1) US7793286B2 (ja)
JP (4) JP4937514B2 (ja)
KR (1) KR100737666B1 (ja)
CN (2) CN101488097B (ja)
AU (1) AU2003298951A1 (ja)
DE (1) DE10393679B9 (ja)
TW (1) TWI253585B (ja)
WO (1) WO2004061659A2 (ja)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8631066B2 (en) * 1998-09-10 2014-01-14 Vmware, Inc. Mechanism for providing virtual machines for use by multiple users
US7516453B1 (en) 1998-10-26 2009-04-07 Vmware, Inc. Binary translator with precise exception synchronization mechanism
US7130949B2 (en) * 2003-05-12 2006-10-31 International Business Machines Corporation Managing input/output interruptions in non-dedicated interruption hardware environments
US20050044408A1 (en) * 2003-08-18 2005-02-24 Bajikar Sundeep M. Low pin count docking architecture for a trusted platform
US8079034B2 (en) 2003-09-15 2011-12-13 Intel Corporation Optimizing processor-managed resources based on the behavior of a virtual machine monitor
US20050132122A1 (en) * 2003-12-16 2005-06-16 Rozas Carlos V. Method, apparatus and system for monitoring system integrity in a trusted computing environment
US7802085B2 (en) 2004-02-18 2010-09-21 Intel Corporation Apparatus and method for distributing private keys to an entity with minimal secret, unique information
US7356735B2 (en) * 2004-03-30 2008-04-08 Intel Corporation Providing support for single stepping a virtual machine in a virtual machine environment
US8127098B1 (en) * 2004-05-11 2012-02-28 Globalfoundries Inc. Virtualization of real mode execution
US7490070B2 (en) * 2004-06-10 2009-02-10 Intel Corporation Apparatus and method for proving the denial of a direct proof signature
WO2006011994A2 (en) * 2004-06-26 2006-02-02 Transvirtual Systems, Llc System for emulating wang vs programs
US20060004667A1 (en) * 2004-06-30 2006-01-05 Microsoft Corporation Systems and methods for collecting operating system license revenue using an emulated computing environment
US7562179B2 (en) 2004-07-30 2009-07-14 Intel Corporation Maintaining processor resources during architectural events
US20060064699A1 (en) * 2004-09-21 2006-03-23 Bonk Ted J Method and system for processing resource allocations
US8924728B2 (en) 2004-11-30 2014-12-30 Intel Corporation Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information
CN101091161B (zh) * 2004-12-31 2010-06-16 英特尔公司 用于协作访客固件的设备和方法
US7904903B2 (en) 2005-06-30 2011-03-08 Intel Corporation Selective register save and restore upon context switch using trap
CN100420202C (zh) * 2005-10-20 2008-09-17 联想(北京)有限公司 计算机管理系统以及计算机管理方法
US7877485B2 (en) * 2005-12-02 2011-01-25 International Business Machines Corporation Maintaining session states within virtual machine environments
US20090106754A1 (en) * 2005-12-10 2009-04-23 Benjamin Liu Handling a device related operation in a virtualization enviroment
US7900204B2 (en) * 2005-12-30 2011-03-01 Bennett Steven M Interrupt processing in a layered virtualization architecture
US8014530B2 (en) 2006-03-22 2011-09-06 Intel Corporation Method and apparatus for authenticated, recoverable key distribution with no database secrets
US8099730B2 (en) * 2006-03-30 2012-01-17 Intel Corporation Heterogeneous virtualization of host and guest OS having different register sizes using translation layer to extract device port numbers for host OS system memory addresses
US8607228B2 (en) 2006-08-08 2013-12-10 Intel Corporation Virtualizing performance counters
CN101154130B (zh) * 2006-09-30 2012-07-04 联想(北京)有限公司 一种虚拟机系统及其电源管理方法
CN101206582B (zh) * 2006-12-22 2010-10-06 联想(北京)有限公司 一种虚拟机系统及其处理方法
US8291410B2 (en) * 2006-12-29 2012-10-16 Intel Corporation Controlling virtual machines based on activity state
US8380987B2 (en) * 2007-01-25 2013-02-19 Microsoft Corporation Protection agents and privilege modes
US7765374B2 (en) 2007-01-25 2010-07-27 Microsoft Corporation Protecting operating-system resources
US8296775B2 (en) * 2007-01-31 2012-10-23 Microsoft Corporation Efficient context switching of virtual processors by managing physical register states in a virtualized environment
CN101267334B (zh) * 2007-03-13 2011-01-26 联想(北京)有限公司 一种动态分配设备的方法及装置
US8099274B2 (en) * 2007-03-30 2012-01-17 International Business Machines Corporation Facilitating input/output processing of one or more guest processing systems
US7975267B2 (en) * 2007-03-30 2011-07-05 Bennett Steven M Virtual interrupt processing in a layered virtualization architecture
US8046540B2 (en) * 2007-04-26 2011-10-25 Sap Ag Shared closures on demand
US20090007100A1 (en) * 2007-06-28 2009-01-01 Microsoft Corporation Suspending a Running Operating System to Enable Security Scanning
CN101334751B (zh) * 2007-06-29 2010-04-14 联想(北京)有限公司 虚拟机监视器识别客户操作系统中进程的方法及装置
US8151264B2 (en) * 2007-06-29 2012-04-03 Intel Corporation Injecting virtualization events in a layered virtualization architecture
DE102007053474A1 (de) * 2007-11-09 2009-05-14 Giesecke & Devrient Gmbh Datenträger und Verfahren zum Betreiben eines Mikroprozessors eines Datenträgers
US8261028B2 (en) * 2007-12-31 2012-09-04 Intel Corporation Cached dirty bits for context switch consistency checks
US8839237B2 (en) * 2007-12-31 2014-09-16 Intel Corporation Method and apparatus for tamper resistant communication in a virtualization enabled platform
US20100115509A1 (en) * 2008-10-31 2010-05-06 International Business Machines Corporation Power optimization via virtualization opportunity
JP4961459B2 (ja) * 2009-06-26 2012-06-27 株式会社日立製作所 仮想計算機システムおよび仮想計算機システムにおける制御方法
US20110153909A1 (en) * 2009-12-22 2011-06-23 Yao Zu Dong Efficient Nested Virtualization
CN101916207B (zh) * 2010-08-28 2013-10-09 华为技术有限公司 桌面虚拟化环境下的节能方法、装置及系统
US9223611B2 (en) * 2010-12-28 2015-12-29 Microsoft Technology Licensing, Llc Storing and resuming application runtime state
CN102609314A (zh) * 2012-01-18 2012-07-25 浪潮(北京)电子信息产业有限公司 一种虚拟机量化管理方法和系统
US9146762B2 (en) * 2012-08-23 2015-09-29 Citrix Systems, Inc. Specialized virtual machine to virtualize hardware resource for guest virtual machines
JP5608797B2 (ja) * 2013-07-31 2014-10-15 株式会社日立製作所 仮想化プログラム、仮想計算機システム及び計算機システム制御方法
CN107924321B (zh) * 2015-09-25 2022-01-18 英特尔公司 针对虚拟机退出的嵌套虚拟化
US20210026950A1 (en) * 2016-03-07 2021-01-28 Crowdstrike, Inc. Hypervisor-based redirection of system calls and interrupt-based task offloading
US10243746B2 (en) 2017-02-27 2019-03-26 Red Hat, Inc. Systems and methods for providing I/O state protections in a virtualized environment
US11575504B2 (en) 2019-06-29 2023-02-07 Intel Corporation Cryptographic computing engine for memory load and store units of a microarchitecture pipeline
US11580234B2 (en) 2019-06-29 2023-02-14 Intel Corporation Implicit integrity for cryptographic computing
US11403234B2 (en) 2019-06-29 2022-08-02 Intel Corporation Cryptographic computing using encrypted base addresses and used in multi-tenant environments
CN111273969B (zh) * 2020-01-20 2021-08-10 腾讯科技(深圳)有限公司 状态切换方法、装置、设备和存储介质
US11669625B2 (en) 2020-12-26 2023-06-06 Intel Corporation Data type based cryptographic computing
US11580035B2 (en) 2020-12-26 2023-02-14 Intel Corporation Fine-grained stack protection using cryptographic computing

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61184644A (ja) * 1985-02-12 1986-08-18 Hitachi Ltd 仮想計算機システム制御方式
JPS62221736A (ja) * 1986-03-24 1987-09-29 Hitachi Ltd 仮想計算機システムの制御方法
JPS6474632A (en) * 1987-09-16 1989-03-20 Fujitsu Ltd Control transfer system for virtual computer
JPH0484335A (ja) * 1990-07-27 1992-03-17 Fujitsu Ltd 仮想計算機制御方式
JPH0793221A (ja) * 1993-09-28 1995-04-07 Hitachi Ltd 仮想計算機システム及びその制御方法
US6496847B1 (en) * 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems

Family Cites Families (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4037214A (en) * 1976-04-30 1977-07-19 International Business Machines Corporation Key register controlled accessing system
US4247905A (en) * 1977-08-26 1981-01-27 Sharp Kabushiki Kaisha Memory clear system
US4278837A (en) * 1977-10-31 1981-07-14 Best Robert M Crypto microprocessor for executing enciphered programs
JPS5576447A (en) 1978-12-01 1980-06-09 Fujitsu Ltd Address control system for software simulation
US4366537A (en) * 1980-05-23 1982-12-28 International Business Machines Corp. Authorization mechanism for transfer of program control or data between different address spaces having different storage protect keys
US4521852A (en) * 1982-06-30 1985-06-04 Texas Instruments Incorporated Data processing device formed on a single semiconductor substrate having secure memory
JPS59111561A (ja) 1982-12-17 1984-06-27 Hitachi Ltd 複合プロセツサ・システムのアクセス制御方式
JPS6057438A (ja) * 1983-09-08 1985-04-03 Hitachi Ltd 仮想計算機システム制御装置
US4740893A (en) * 1985-08-07 1988-04-26 International Business Machines Corp. Method for reducing the time for switching between programs
JPH0814795B2 (ja) * 1986-01-14 1996-02-14 株式会社日立製作所 マルチプロセッサ仮想計算機システム
JP2523653B2 (ja) * 1987-07-08 1996-08-14 株式会社日立製作所 仮想計算機システム
US5079737A (en) * 1988-10-25 1992-01-07 United Technologies Corporation Memory management unit for the MIL-STD 1750 bus
US5781753A (en) * 1989-02-24 1998-07-14 Advanced Micro Devices, Inc. Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions
US5016161A (en) * 1989-04-12 1991-05-14 Sun Microsystems, Inc. Method and apparatus for the flow control of devices
US5022077A (en) * 1989-08-25 1991-06-04 International Business Machines Corp. Apparatus and method for preventing unauthorized access to BIOS in a personal computer system
CA2027799A1 (en) 1989-11-03 1991-05-04 David A. Miller Method and apparatus for independently resetting processors and cache controllers in multiple processor systems
US5075842A (en) * 1989-12-22 1991-12-24 Intel Corporation Disabling tag bit recognition and allowing privileged operations to occur in an object-oriented memory protection mechanism
US5437033A (en) * 1990-11-16 1995-07-25 Hitachi, Ltd. System for recovery from a virtual machine monitor failure with a continuous guest dispatched to a nonguest mode
US5255379A (en) 1990-12-28 1993-10-19 Sun Microsystems, Inc. Method for automatically transitioning from V86 mode to protected mode in a computer system using an Intel 80386 or 80486 processor
JPH04308940A (ja) * 1991-04-05 1992-10-30 Hitachi Ltd 仮想計算機システムにおける資源の自動割当て管理方式
US5319760A (en) 1991-06-28 1994-06-07 Digital Equipment Corporation Translation buffer for virtual machines with address space match
US5522075A (en) 1991-06-28 1996-05-28 Digital Equipment Corporation Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces
US5455909A (en) * 1991-07-05 1995-10-03 Chips And Technologies Inc. Microprocessor with operation capture facility
JPH06236284A (ja) 1991-10-21 1994-08-23 Intel Corp コンピュータシステム処理状態を保存及び復元する方法及びコンピュータシステム
US5627987A (en) 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
US5421006A (en) * 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
JPH0695898A (ja) * 1992-09-16 1994-04-08 Hitachi Ltd 仮想計算機の制御方法および仮想計算機システム
US5293424A (en) * 1992-10-14 1994-03-08 Bull Hn Information Systems Inc. Secure memory card
JP2765411B2 (ja) * 1992-11-30 1998-06-18 株式会社日立製作所 仮想計算機方式
EP0600112A1 (de) 1992-11-30 1994-06-08 Siemens Nixdorf Informationssysteme Aktiengesellschaft Datenverarbeitungsanlage mit virtueller Speicheradressierung und schlüsselgesteuertem Speicherzugriff
FR2703800B1 (fr) * 1993-04-06 1995-05-24 Bull Cp8 Procédé de signature d'un fichier informatique, et dispositif pour la mise en Óoeuvre.
JPH06348867A (ja) * 1993-06-04 1994-12-22 Hitachi Ltd マイクロコンピュータ
US5459869A (en) * 1994-02-17 1995-10-17 Spilo; Michael L. Method for providing protected mode services for device drivers and other resident software
US5684881A (en) * 1994-05-23 1997-11-04 Matsushita Electric Industrial Co., Ltd. Sound field and sound image control apparatus and method
US5473692A (en) * 1994-09-07 1995-12-05 Intel Corporation Roving software license for a hardware agent
US5539828A (en) * 1994-05-31 1996-07-23 Intel Corporation Apparatus and method for providing secured communications
US5978481A (en) * 1994-08-16 1999-11-02 Intel Corporation Modem compatible method and apparatus for encrypting data that is transparent to software applications
US6058478A (en) * 1994-09-30 2000-05-02 Intel Corporation Apparatus and method for a vetted field upgrade
US5615263A (en) * 1995-01-06 1997-03-25 Vlsi Technology, Inc. Dual purpose security architecture with protected internal operating system
US5764969A (en) * 1995-02-10 1998-06-09 International Business Machines Corporation Method and system for enhanced management operation utilizing intermixed user level and supervisory level instructions with partial concept synchronization
US5717903A (en) 1995-05-15 1998-02-10 Compaq Computer Corporation Method and appartus for emulating a peripheral device to allow device driver development before availability of the peripheral device
JP3451595B2 (ja) 1995-06-07 2003-09-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 二つの別個の命令セット・アーキテクチャへの拡張をサポートすることができるアーキテクチャ・モード制御を備えたマイクロプロセッサ
US5737760A (en) * 1995-10-06 1998-04-07 Motorola Inc. Microcontroller with security logic circuit which prevents reading of internal memory by external program
JP3693721B2 (ja) * 1995-11-10 2005-09-07 Necエレクトロニクス株式会社 フラッシュメモリ内蔵マイクロコンピュータ及びそのテスト方法
EP0880840A4 (en) * 1996-01-11 2002-10-23 Mrj Inc DEVICE FOR CONTROLLING ACCESS AND DISTRIBUTION OF DIGITAL PROPERTY
US5657445A (en) * 1996-01-26 1997-08-12 Dell Usa, L.P. Apparatus and method for limiting access to mass storage devices in a computer system
US5835594A (en) * 1996-02-09 1998-11-10 Intel Corporation Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage
US5978892A (en) 1996-05-03 1999-11-02 Digital Equipment Corporation Virtual memory allocation in a virtual address space having an inaccessible gap
US6175925B1 (en) * 1996-06-13 2001-01-16 Intel Corporation Tamper resistant player for scrambled contents
US6178509B1 (en) * 1996-06-13 2001-01-23 Intel Corporation Tamper resistant methods and apparatus
US6205550B1 (en) * 1996-06-13 2001-03-20 Intel Corporation Tamper resistant methods and apparatus
US5729760A (en) 1996-06-21 1998-03-17 Intel Corporation System for providing first type access to register if processor in first mode and second type access to register if processor not in first mode
US6055637A (en) * 1996-09-27 2000-04-25 Electronic Data Systems Corporation System and method for accessing enterprise-wide resources by presenting to the resource a temporary credential
US5937063A (en) * 1996-09-30 1999-08-10 Intel Corporation Secure boot
US5844986A (en) * 1996-09-30 1998-12-01 Intel Corporation Secure BIOS
JPH10134008A (ja) * 1996-11-05 1998-05-22 Mitsubishi Electric Corp 半導体装置およびコンピュータシステム
US5852717A (en) * 1996-11-20 1998-12-22 Shiva Corporation Performance optimizations for computer networks utilizing HTTP
US5757919A (en) * 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
US5953502A (en) * 1997-02-13 1999-09-14 Helbig, Sr.; Walter A Method and apparatus for enhancing computer system security
US6272637B1 (en) * 1997-04-14 2001-08-07 Dallas Semiconductor Corporation Systems and methods for protecting access to encrypted information
US6075938A (en) * 1997-06-10 2000-06-13 The Board Of Trustees Of The Leland Stanford Junior University Virtual machine monitors for scalable multiprocessors
US5987557A (en) * 1997-06-19 1999-11-16 Sun Microsystems, Inc. Method and apparatus for implementing hardware protection domains in a system with no memory management unit (MMU)
US6014745A (en) * 1997-07-17 2000-01-11 Silicon Systems Design Ltd. Protection for customer programs (EPROM)
DE19735948C1 (de) * 1997-08-19 1998-10-01 Siemens Nixdorf Inf Syst Verfahren zur Verbesserung der Steuerungsmöglichkeit in Datenverarbeitungsanlagen mit Adreßübersetzung
US6282657B1 (en) * 1997-09-16 2001-08-28 Safenet, Inc. Kernel mode protection
US6148379A (en) * 1997-09-19 2000-11-14 Silicon Graphics, Inc. System, method and computer program product for page sharing between fault-isolated cells in a distributed shared memory system
US6182089B1 (en) * 1997-09-23 2001-01-30 Silicon Graphics, Inc. Method, system and computer program product for dynamically allocating large memory pages of different sizes
US6085296A (en) * 1997-11-12 2000-07-04 Digital Equipment Corporation Sharing memory pages and page tables among computer processes
US6192455B1 (en) * 1998-03-30 2001-02-20 Intel Corporation Apparatus and method for preventing access to SMRAM space through AGP addressing
US6397242B1 (en) * 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
US6795966B1 (en) * 1998-05-15 2004-09-21 Vmware, Inc. Mechanism for restoring, porting, replicating and checkpointing computer systems using state extraction
US6339815B1 (en) * 1998-08-14 2002-01-15 Silicon Storage Technology, Inc. Microcontroller system having allocation circuitry to selectively allocate and/or hide portions of a program memory address space
US6505279B1 (en) * 1998-08-14 2003-01-07 Silicon Storage Technology, Inc. Microcontroller system having security circuitry to selectively lock portions of a program memory address space
US6230248B1 (en) * 1998-10-12 2001-05-08 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for pre-validating regions in a virtual addressing scheme
EP1030237A1 (en) 1999-02-15 2000-08-23 Hewlett-Packard Company Trusted hardware device in a computer
US6272533B1 (en) * 1999-02-16 2001-08-07 Hendrik A. Browne Secure computer system and method of providing secure access to a computer system including a stand alone switch operable to inhibit data corruption on a storage device
US6321314B1 (en) * 1999-06-09 2001-11-20 Ati International S.R.L. Method and apparatus for restricting memory access
US6158546A (en) * 1999-06-25 2000-12-12 Tenneco Automotive Inc. Straight through muffler with conically-ended output passage
US6301646B1 (en) * 1999-07-30 2001-10-09 Curl Corporation Pointer verification system and method
US6374317B1 (en) * 1999-10-07 2002-04-16 Intel Corporation Method and apparatus for initializing a computer interface
US6292874B1 (en) * 1999-10-19 2001-09-18 Advanced Technology Materials, Inc. Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges
EP1269425A2 (en) * 2000-02-25 2003-01-02 Identix Incorporated Secure transaction system
US20010037450A1 (en) * 2000-03-02 2001-11-01 Metlitski Evgueny A. System and method for process protection
US6990579B1 (en) 2000-03-31 2006-01-24 Intel Corporation Platform and method for remote attestation of a platform
US6507904B1 (en) 2000-03-31 2003-01-14 Intel Corporation Executing isolated mode instructions in a secure system running in privilege rings
US6795905B1 (en) 2000-03-31 2004-09-21 Intel Corporation Controlling accesses to isolated memory using a memory controller for isolated execution
GB0022949D0 (en) * 2000-09-19 2000-11-01 Sgs Thomson Microelectronics Processing instruction words
US7818808B1 (en) * 2000-12-27 2010-10-19 Intel Corporation Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61184644A (ja) * 1985-02-12 1986-08-18 Hitachi Ltd 仮想計算機システム制御方式
JPS62221736A (ja) * 1986-03-24 1987-09-29 Hitachi Ltd 仮想計算機システムの制御方法
JPS6474632A (en) * 1987-09-16 1989-03-20 Fujitsu Ltd Control transfer system for virtual computer
JPH0484335A (ja) * 1990-07-27 1992-03-17 Fujitsu Ltd 仮想計算機制御方式
JPH0793221A (ja) * 1993-09-28 1995-04-07 Hitachi Ltd 仮想計算機システム及びその制御方法
US6496847B1 (en) * 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems

Also Published As

Publication number Publication date
AU2003298951A1 (en) 2004-07-29
KR100737666B1 (ko) 2007-07-09
JP2012074074A (ja) 2012-04-12
DE10393679T5 (de) 2005-10-20
CN101488097B (zh) 2013-12-25
JP4937514B2 (ja) 2012-05-23
DE10393679B4 (de) 2008-05-29
CN100472454C (zh) 2009-03-25
DE10393679B9 (de) 2015-12-10
JP5384605B2 (ja) 2014-01-08
CN1726470A (zh) 2006-01-25
JP5746275B2 (ja) 2015-07-08
AU2003298951A8 (en) 2004-07-29
US20040123288A1 (en) 2004-06-24
WO2004061659A2 (en) 2004-07-22
TWI253585B (en) 2006-04-21
JP2006510120A (ja) 2006-03-23
US7793286B2 (en) 2010-09-07
JP2009163751A (ja) 2009-07-23
CN101488097A (zh) 2009-07-22
WO2004061659A3 (en) 2005-07-28
JP5068778B2 (ja) 2012-11-07
TW200411537A (en) 2004-07-01
KR20050085766A (ko) 2005-08-29

Similar Documents

Publication Publication Date Title
JP5746275B2 (ja) バーチャルマシン動作においてマシン状態を管理する方法及びシステム
US7434003B2 (en) Efficient operating system operation on a hypervisor
US8166276B2 (en) Translate and verify instruction for a processor
US10318407B2 (en) Allocating a debug instruction set based on the current operating state in a multi-instruction-set data processing apparatus
KR100667146B1 (ko) 가상 머신 아키텍처 내에서의 제어 레지스터 액세스가상화 성능 개선
US8032897B2 (en) Placing virtual machine monitor (VMM) code in guest context to speed memory mapped input/output virtualization
US8127098B1 (en) Virtualization of real mode execution
JP6138142B2 (ja) 被管理ランタイムのためのハードウェア・ベース・ランタイム計装機構
US20080189529A1 (en) Controlling instruction execution in a processing environment
US20110197190A1 (en) Virtualization method and virtual machine
EP2955634B1 (en) Paravirtualization-based interface for memory management in virtual machines
US8832684B2 (en) Methods for improving atomicity of runtime inspections
US8887139B2 (en) Virtual system and method of analyzing operation of virtual system
JP5778296B2 (ja) 仮想計算機システム、仮想化機構、及びデータ管理方法
Thober et al. Improving coherency of runtime integrity measurement
US10248451B2 (en) Using hypervisor trapping for protection against interrupts in virtual machine functions
KR101109984B1 (ko) 에뮬레이팅된 처리 환경에서 실행을 용이하게 하는 방법, 시스템 및 컴퓨터 판독가능 매체

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130712

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140709

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140715

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141014

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150407

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150507

R150 Certificate of patent or registration of utility model

Ref document number: 5746275

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees