JP4981006B2 - 仮想計算機を制御する方法及びシステム - Google Patents

仮想計算機を制御する方法及びシステム Download PDF

Info

Publication number
JP4981006B2
JP4981006B2 JP2008242682A JP2008242682A JP4981006B2 JP 4981006 B2 JP4981006 B2 JP 4981006B2 JP 2008242682 A JP2008242682 A JP 2008242682A JP 2008242682 A JP2008242682 A JP 2008242682A JP 4981006 B2 JP4981006 B2 JP 4981006B2
Authority
JP
Japan
Prior art keywords
vmcs
component
processor
vmm
instruction
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.)
Expired - Fee Related
Application number
JP2008242682A
Other languages
English (en)
Other versions
JP2009054169A (ja
Inventor
ネイジャー,ギルバート
コタ−ロブレス,エリック
ジェヤシン,スターリンセルヴァライ
カギ,アラン
コジュフ,マイケル
アーリグ,リチャード
ボレイン,エリッチ
ロジャーズ,スコット
サード スミス,ローレンス,ザ
ベネット,スティーヴン
グルー,アンドリュー
Original Assignee
インテル コーポレイション
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 インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2009054169A publication Critical patent/JP2009054169A/ja
Application granted granted Critical
Publication of JP4981006B2 publication Critical patent/JP4981006B2/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
    • 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/45591Monitoring or debugging support

Description

本発明は、一般的に、コンピュータ・システムに関し、特に、コンピュータ・システム内部の仮想計算機の動作制御に関する。
仮想計算機アーキテクチャは、マシンの下にあるハードウェアが時間共有され、1つ又は複数の別個に動作する仮想計算機(マシン)(VM)としてみえるように物理マシンを論理的に分割する。仮想計算機モニタ(VMM)はコンピュータ上で実行し、1つ又は複数のVMを別のソフトウェアが抽象化することを容易にする。各VMは、その自らのオペレーティング・システム(OS)とアプリケーション・ソフトウェアとを実行する、自給式のプラットフォームとして機能し得る。VMにおいて実行するソフトウェアは併せて、本明細書及び特許請求の範囲では、ゲスト・ソフトウェアとして表す。
ゲスト・ソフトウェアは、VMにおいてではなく専用コンピュータ上で実行しているかのように動作することが想定されている。すなわち、ゲスト・ソフトウェアは、種々のイベントを制御し、コンピュータ(例えば、物理マシン)上のハードウェア資源へのアクセスを有することが想定されている。物理マシンのハードウェア資源は、1つ又は複数のプロセッサ、プロセッサ上に存在する資源(例えば、制御レジスタ、キャッシュ他)、メモリ(と、メモリに存在する構造、例えば、記述子テーブル)、及び物理マシンにおいて存在する別の資源(例えば、入出力装置)を含み得る。イベントは、割り込み、例外、プラットフォーム・イベント(例えば、初期化(INIT)又はシステム管理割り込み(SMI)など)を含み得る。
VMMは、必要に応じて、物理マシンの、装置、メモリ及びレジスタとの間でゲスト・ソフトウェア状態を出し入れし得る。VMMは、下にある物理マシンに対する直接アクセスを可能にすることによってVMの性能を向上させ得る。このことが特に適切である場合があり、それには、ゲスト・ソフトウェアにおける非特権モードにおいて動作が行われる場合が該当し、その場合は物理マシンに対するソフトウェア・アクセスを制限し、更に、VMMが制御を保持したい、物理マシンにおけるハードウェア資源を利用しないことになる場合も該当する。
VMMは、ゲスト処理がVMMの正常な実行又は非実行VMMの何れかに影響を及ぼし得る際にはいつでも制御を取り戻す。通常、VMMはそのような処理を検査し、下にある物理マシンに処理が進むことを可能にするか、ゲストのために処理をエミュレートする前に課題が存在するかを判定する。例えば、ゲストが、I/O装置をアクセスするか、マシン構成を(例えば、制御レジスタ値を変更することによって)変更しようするか、又はメモリの特定の領域をアクセスしようとする場合などに、VMMは制御を取り戻す必要がある場合がある。
VM処理をサポートする既存システムはVMの実行環境を仮想計算機制御構造(VMCS)として表す固定形式構造を用いて制御する。VMCSは、メモリ領域に記憶され、例えば、ゲストの状態、VMMの状態、及びゲスト実行中にVMMが制御を取り戻したい条件を示す制御情報を含む。物理マシンにおけるプロセッサは、VMCSから情報を読み取って、VMとVMMとの実行環境を判定し、VMMの制御の下でゲスト・ソフトウェアの特性を制約する。
従来のアーキテクチャは、物理マシンのメモリにおいてVMCSを位置特定し、通常のメモリ読み取り命令とメモリ書き込み命令とを用いてこれをVMMがアクセスすることを可能にする。この理由で、VMCSの形式は、プロセッサ命令群アーキテクチャにおいてアーキテクチャ的に定義された形式でなければならない(。更に、VMCSの形式は、別のシステム構造や命令コード化と同様な方法で仕様書やマニュアルに文書化されなければならない。)VMMは、これらの仕様書に直接コード化される。この構造化は、VMMをサポートするプロセッサの実施における柔軟性を制限する。VMCSの形式はアーキテクチャ的に定義されているので、特定のプロセッサの実施形態のマイクロアーキテクチャは、性能、拡張性、互換性、セキュリティなどの理由でVMCSデータの形式の要件、内容の要件、編成の要件、又は記憶の要件における変更を、VMMの実施形態のインストール・ベースに対する、相当する修正も必要とせずに行ってはいけない。
したがって、物理マシンの下にある実施形態に固定して結合されていない、仮想マシン・アーキテクチャの更に柔軟な実施形態に対する必要性が存在する。
新規性を有するVM制御アーキテクチャを説明する。実施例の以下の詳細の説明では、
添付図面を参照し、該添付図面は本明細書及び特許請求の範囲の一部分を構成し、該添付図面では、本発明の特定の実施例を実施し得るうえでの制約ではなく、本発明特定の実施例を例示的に表す。この実施例は、当業者が理解し、実施することを可能にするのに十分詳細に記載されており、別の実施例を利用し得ることとし、本願の開示の趣旨及び範囲から逸脱することなく、構造的な変更、論理的な変更、又は物理的な変更を行い得ることとする。下記の詳細の説明は、よって、限定する意味合いで解されるものでないこととし、本明細書及び特許請求の範囲開示の本発明の実施例の範囲は本特許請求の範囲によってのみ規定される。
VMMは、1つ又は複数のVMの抽象化を別のソフトウェア(「guest software」、「guests」、又は単に「guest」)に提示する。VMMは、種々のゲストに対して同様な抽象化又は異なる抽象化を備えることが可能である。各ゲストは、それが利用するうえで、VMにおいて提示されるハードウェア・プラットフォームのファシリティ全部が利用可能であることを想定している。例えば、ゲストは、VMにおいて提示されるプロセッサとプラットフォームとのアーキテクチャによって、レジスタ、キャッシュ、構造、I/O装置、メモリなどに対するアクセスを有することを想定している。更に、各ゲストは、例外、割り込み、及びプラットフォーム・イベント(例えば、初期化(INIT)及びシステム管理割り込み(SMI))などの種々のイベントを処理することを想定している。
これらの資源とイベントとの一部は、「特権化されている」が、それは、VMの動作が適切であるようにし、VMM及び別のVMを保護するよう、VMMによって管理されなければならないからである。特権化された資源及びイベントの場合、VMMは、ゲスト・ソフトウェアが所望する機能を、これらの資源とイベントとの最終的な制御を確保する一方で容易にする。ゲスト・ソフトウェアの機能を容易にする動作は、VMM側の広範囲にわたる種々の活動を含み得る。VMMの活動、更にその特性は、本発明の種々の実施例の範囲を限定するものでない。
ゲスト・ソフトウェアが特権化資源をアクセスするか、特権化イベントが生じる場合、制御をVMMに移し得る。ゲスト・ソフトウェアからVMMに制御を移すことは、VM出口処理と呼ばれる。資源アクセスの容易化又はイベントの処理を適切に行った後、VMMは制御をゲスト・ソフトウェアに移し得る。VMMからゲスト・ソフトウェアに制御を移すことはVM入口処理と呼ばれる。
仮想マシン制御構造(VMCS)は、例えば、ゲスト・ソフトウェアの状態、VMMの状態、ゲストが実行することをVMMが妨げようとする条件を示す制御情報、及び時点が最も近いVM出口処理に関する情報を含むアーキテクチャ的に定義される構造である。現行システムでは、アーキテクチャ的に定義される構造にまさに一致する、VMCSの表現はメモリにある。物理マシンにおけるプロセッサは、VMCSからの情報を読み取って、VMの実行環境を判定し、その特性を制約する。
ゲストの実行中に、プロセッサはVMCSにおける制御情報を照会して、どのゲスト動作(例えば、特定の命令の実行、特定の例外の生起など)とイベント(例えば、外部割込み)がVMの出口処理をもたらすことになるかを判定する。VM出口処理が行われる場合、ゲスト・ソフトウェアによって用いられるプロセッサ状態の構成部分はVMCSに保存され、VMMが必要とするプロセッサ状態の構成部分がVMCSからロードされる。VMの出口処理が行われる場合、制御は、当業者が既知の何れかの機構を用いてVMM120に転送される。
VM入口処理が行われる場合、VM出口処理で保存され(、かつVMMによって修正された場合がある)プロセッサ状態が復元され、制御はゲスト・ソフトウェアに戻される。ゲストへの第1のVM入口処理を容易にするよう、VMMは適切なゲスト状態をVMCSに書き込む。VM出口処理を行う間、VMMはVMCSにおけるゲスト状態を変更し得る。いくつかの実施例では、複数のVMをサポートする複数のVMCS構造は、単一の物理マシン上の単一のVMMによって管理される。VMCSは上記の情報全てを含む必要はなく、VMの制御を支援する追加情報を含み得る。一部の実施例では、VMCSは追加情報のかなりの量を含み得る。
図1は、本発明の一実施例による、VMアーキテクチャ110の図を示す。VMアーキテクチャ100は、ベース・ハードウェア・プラットフォーム110(例えば、物理マシン)を含む。ベース・ハードウェア・プラットフォーム110は、その各々が揮発性メモリ及び/又は非揮発性メモリ116へのアクセスを有するその1つ又は複数のプロセッサ112を含む。更に、図1に表していない、ベース・ハードウェア・プラットフォームにおける別の構成要素(例えば、入出力装置)があり得る。VMアーキテクチャ110は、1つ又は複数のVM(例えば、130、140、及び150)を管理するVMM120も含み、各VM(例えば、130、140、150)は1つ又は複数の、OS(例えば、150、160、170)及びアプリケーション(例えば、152、162、172)をサポートする。プロセッサ112は、マイクロプロセッサ、ディジタル信号プロセッサ、マイクロコントローラなどのソフトウェアを実行することができる何れかの種類のプロセッサであり得る。プロセッサ112は、本発明の方法実施例を実行するマイクロコード、プログラム可能ロジック又はハードコード・ロジックを含み得る。
メモリ116は、プロセッサ112によってマシン判読可能な、ハード・ディスク、フロッピー(登録商標)・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュ・メモリ、上記装置の何れかの組み合わせ、又は何れかの別の種類の媒体であり得る。メモリ116は、本発明の方法実施例の実行を行う命令又はデータを記憶し得る。メモリ116は、以下に更に詳細を説明する、VMCSの状態を維持するうえでプロセッサ112が用いるVMCS118領域を含む。
プロセッサ112は、マイクロプロセッサ、ディジタル信号プロセッサ、マイクロコントローラなどのソフトウェアを実行することができる何れかの種類のプロセッサであり得る。各プロセッサ112は、以下に更に詳細に説明するVMCSキャッシュ114を含み得る。プロセッサ112は、本発明の方法実施例の実行を行う、マイクロコード、プログラム可能ロジック、又はハードコード・ロジックを含み得る。
VMCSキャッシュ114は、存在する場合、VMCS状態の一部又は全部を、一時的に記憶させるか、その寿命にわたって記憶させるのに用い得る。VMCSキャッシュ114は、レジスタ、キャッシュ・メモリ、又は何れかの別の記憶機構を含み得る。図1では、VMCSキャッシュ114は、プロセッサ112の部分として表すが、ベース・プラットフォーム・ハードウェア110の何れかの構成部分内部のプロセッサ112の外に存在し得る。以下に続く記載では、VMCSキャッシュ114は「on-processor storage」又は「on-processor resources」としても表すが、この記憶機構はプロセッサ112以外のプラットフォーム構成部分において存在し得ることとする。VMCSキャッシュ114は、本発明の方法を実施するのに厳密には必要でない。
通常、VMMはメモリにおけるVMCSを通常の読み書き命令を用いてアクセスすることになる。しかし、図1のVMアーキテクチャ100では、VMM120は、プロセッサが備えるVMCSアクセス命令119の群によって間接的にVMCS領域118をアクセスする。VMCSアクセス命令119は、VMCS領域118と何れかの利用可能なVMCSキャッシュ114とを利用する。実施例では、VMCSアクセス命令119は、VMCSアクセス命令のオペランド(VMCS構成部分の識別子である)を含む。この識別子は本明細書及び特許請求の範囲では「component identifier(構成部分の識別子)」と呼ばれる。VMM120は、何れかの特定のVMCS構成部分がVMCS領域118又はVMCSキャッシュ114に記憶されていることを知っていなくてよい。VMアーキテクチャ100は更に、VMCS領域118をアクセスするよう通常の読み書き命令が用いられる場合、予測可能でない結果が生じ得る。VMCSアクセス命令119を用いることによって、利用可能な、プロセッサ上の記憶機構とメモリ・ベース(例えば、VMCS領域118)の記憶機構とのその利用における自由度を与え、種々の性能上の最適化も可能にする。
一部の実施例では、VMCSアクセス命令119は、VMCS領域118におけるメモリの読み書きによってプロセッサ・マイクロアーキテクチャによって実施される。別の実施例では、VMCSアクセス命令119はプロセッサ上の資源の読み書きを行い得る。VMM120は、下にある物理マシンのマイクロアーキテクチャがVMCSをサポートする方法を知っていなくてよい。このようにして、下にあるプロセッサの実施形態を改変して、VMM120を下にあるプロセッサ実施形態と互換でないようにすることなく、性能、セキュリティ、信頼度、又は別の考慮点に対処することが可能であり、カスタム化VMCS実施形態をプロセッサ実施形態毎に策定することが可能である。
以下の例はVMCSアクセス命令119を使用しないVMアーキテクチャの欠点を示す。プロセッサの実施形態がプロセッサ上の記憶機構にVMCSデータを一時的にキャッシュすることが可能である場合、特定のイベントが生じる際にメモリ中のVMCS領域118にデータが書き込まれるだけである。VMCSデータがキャッシュされる期間中に、VMCS領域118に対する通常の読み取りはステール値(正しくない値)を戻すことになる。VMCS領域118に対する通常の書き込みは、書き込みを記憶機構に適切にマッピングするようプロセッサ実施形態によって特別の配慮がなされない限り、プロセッサ上の記憶機構におけるデータを更新しないことになる。VMCSアクセス命令119を用いなければ、プロセッサ実施形態は、プロセッサ上の資源に記憶されている何れかの一時的な状態又はキャッシュ状態に整合したVMCS領域を保持しなければならない。このことは、以下に更に説明するように、特定の、性能の最適化、VMアーキテクチャの拡張などを排除し得る。通常のメモリ動作とは対照的に、VMCS読み取り命令は、適宜、プロセッサ上に記憶されている値を戻し、VMCS書き込み命令は、VMCS状態を、それがどこに配置されていても適切に更新する。これらの命令は以下に詳細に説明する。
VMCSアクセス命令119を容易にするよう、VMCSの各構成要素は、VMCSの構成部分を識別するアーキテクチャ的に定義される定数によって識別される。この定数は、「component identifiers(構成部分の識別子)」として本明細書及び特許請求の範囲において表す。実施例では、構成部分の識別子は16ビット値であるが、別の実施例ではこれよりも大きくても小さくてもよい。
以下の記載では、VMCSにおけるいくつかのフィールドは、本発明の種々の実施例の記載に用いられる。例えば、GUEST_EIPは、ゲスト・ソフトウェアの命令ポインタを含むフィールドである。VM_CONTROLSは、VM実行環境などを制御するビットを含むフィールドである。種々のフィールドの構文と意味論とを理解することは、本明細書及び特許請求の範囲記載の本発明を理解するうえで必要でない。更に、フィールドには、特定の、アーキテクチャ的に定義される構成部分識別子が与えられる。これらの例における、用いられる特定のフィールドと構成部分識別子の値は、本発明の適用性を何れの方法でも限定するものでないこととする。
VMCSアクセス情報119の利用の効果を以下に説明する。プロセッサの実施形態が、VMCS領域118に記憶されているデータの形式をプロセッサ実施形態毎に変更し得るということを検討する。例えば、第1プロセッサ実施形態は、VMCS領域のGUEST_EIPフィールドをVMCS領域の28番目のバイトから開始して記憶させ得る。第2プロセッサ実施形態は、同様なVMCSフィールドをVMCS領域における16番目のバイトで記憶させ得る。最初の実施形態用に書き込まれ、VMCSアクセス命令119を利用するVMM120は、VMCS領域118の形式が変更してもプロセッサ112の後の実施形態上でなお機能することになる。この互換性は、2つのプロセッサ実施形態におけるVMCSアクセス命令の実施形態が、用いられるVMCS領域118の形式を理解し、必要なデータを適切にアクセスするので、達成される。
一部の実施例では、VMCSアクセス命令119を容易にするよう、VMM120は、VMCSに対してプロセッサ112が必要とする記憶機構の全部又は一部を収容するメモリ領域(例えば、VMCS領域118)を確保することを必要とし得る。本発明のこれらの実施例では、プロセッサが備える命令は、VMCS領域118のポインタ又はアドレスをVMM120がプロセッサ120に備えることを可能にする。一実施例では、アドレスは物理アドレスである。別の実施例は、仮想アドレス又は線形アドレスを用い得る。この命令を用いてプロセッサ112に備えられるアドレスは、以降VMCSポインタと呼ぶ。この命令はプロセッサ112にVMCS領域224の位置を通知する。この新たな命令は、VMCSポインタが参照する、VMCS領域118における全部又は部分においてプロセッサ112が記憶し得るVMCSをアクティブ状態にする。
別の実施例は、VMCS領域118に確保されなければならないメモリ116の量をVMM120が見つけることを可能にする機構を備え得る。例えば、(本明細書及び特許請求の範囲においてIA-32 ISAとして表す)インテル(Intel)社ペンティアム(登録商標)IVのプロセッサ命令群アーキテクチャ(ISA)では、要求VMCS領域サイズを含むモデル特有レジスタ(MSR)を備え得る。別の実施例は、要求VMCS領域サイズを戻す命令を備える。利用可能な、何れかの別の機構を用いてこの情報をVMMに伝達し得る。このようにして、要求メモリ領域118のサイズは、VMM120の再設計又は再コンパイルを強いることなく、プロセッサ実施形態によって変わり得る。
例えば、メモリ116におけるVMCS領域118に64バイトを第1プロセッサ112が必要とするということを仮定する。この要件は、上記のように、VMM120に通知される。VMM120は、上記機構を用いてVMCS領域118にどれくらいの量のメモリ116を割り当てるかを判定するよう、このプロセッサ実施形態上で実行するよう書き込まれる。その場合、メモリ116におけるVMCS記憶機構に128バイトを必要とする第2プロセッサ実施形態が作成される。第1プロセッサ実施形態に書き込まれるVMM120は、VMCS領域118に正しい記憶量を割り当てることになるので、第2実施形態上で正常に機能する。
VMCSポインタがアクティブ状態にある間、プロセッサ112は、VMCSの全部又は一部を、VMCS領域118において記憶させることが可能であるか、該プロセッサ上に存在する資源において記憶させることが可能であるか、何れかの別の利用可能な(すなわち、VMCSキャッシュ114における)場所において記憶させることが可能である。更に、プロセッサ112は、非アーキテクチャ的な状態の情報を、VMCS領域118において記憶させることが可能であるか、該プロセッサ上の資源において記憶させることが可能である。例えば、プロセッサ112は、一時変数、VM(例えば、130、140、又は150)と関連したマイクロアーキテクチャ状態、VM(例えば、130,140、又は150)の状態の表示子などを記憶させることが可能である。ソフトウェアは、VMCSポインタがアクティブ状態にある間、VMCS領域118をアクセスするよう通常のメモリの読み書きを用いるものでない。この制約によって、VMM120と、VMCSに関連したVM(例えば、130、140、又は150)の動作を正常になるようにしている。
別の、プロセッサが備える命令は、プロセッサ上の資源にキャッシュされた何れかのVMCSデータをVMCS領域118に書き込み、プロセッサ上の記憶機構における適切なデータを無効化し、更にVMCSポインタを非活動化させる。実施例は、例えば、アーキテクチャ的に定義されるか非アーキテクチャ的に定義される状態表示子をVMCS領域に書き込むことによってVMCSを非アクティブ状態としてマーキングし得る。別の実施例は、単に、VMCSのプロセッサ上の記憶機構を消去し、VMCSのプロセッサ上状態を非活動化させる(無効化する)。この命令は、VMCS領域118の内容をVMM120が移動させる何れかの試みの前に実行される。VMM120は、VMCS領域118を移動させようとする場合、VMCS形式が維持され、プロセッサ実施形態にしか知られないので、単一のデータブロック移動によってそのことを行うことが可能である。更に、VMMが(本明細書及び特許請求の範囲記載の機構に基づいてメモリを割り当てて)VMCS領域のサイズがわかっているので、このブロック移動は可能である。VMCSの個々の構成要素をVMM120は識別しなくてよい。
一部の実施例では、特定の実施例に特有の機構は、特定のVMCSを確立したプロセッサ実施形態をVMM120が識別することを可能にすることができる。VMM120はこのプロセッサ識別を用いて、VMCSが別のプロセッサ実施形態と互換であるかを判定することが可能である。一実施例では、この識別子は、VMCS領域118の最初の4バイトにあり、例えば、MSR又は何れかの別の方法によってVMM120に通知される。VMCSの最初の利用の前に、VMM120は、この識別子をVMCSにおける適切な場所に書き込むことを必要とし得るものであり、よって、VMCS領域118のその部分の形式をアーキテクチャ的に定義することが可能である。一部の実施例では、全ての実施形態がVMCS領域118の、同一の、アーキテクチャ的に定義される部分を定義するということが望ましい。
先行する実施例が新たに定義される領域を定義されていない状態のままにし、新たに定義される部分が、それを明示的に利用しない、VMM120の動作を妨げないという前提で、別の実施例がVMCS118の新たな、アーキテクチャ的に定義される部分を定義することが可能である。このようにして、これらの実施例用に書き込まれる何れかのVMM120は、より新しい実施形態上で動作することになる。
一部の実施例では、プロセッサが備える命令119はいくつかの別個の命令を含む。
● VMCSロード・ポインタ命令はメモリ・アドレスをオペランドとして有する。このアドレスは、プロセッサ112がVMCS(例えば、VMCS領域118の始点)を記憶可能な場所である。このアドレスと関連したVMCSは命令によってアクティブ状態にされる。この命令は、VMCSに関連し、VMCSによって制御されるVM(例えば、130、140、又は150)の起動と、以下の種々の別の命令の利用とを可能にするものでもある。一実施例では、アドレスは物理アドレスである。別の実施例は、仮想アドレス又は線形アドレスを用い得る。
● VMCS記憶ポインタ命令は、アクティブ状態のVMCS領域118へのポインタを(例えば、プロセッサ112上の)レジスタ又は(例えば、メモリ116における)メモリ位置に記憶させる。そのような記憶場所の位置は、命令に対するオペランドとして備え得る。
● VMCS読み取り命令は、VMCSの構成部分を(例えば、プロセッサ112上の)レジスタ又は(例えば、メモリ116における)メモリ位置に読み込む。命令は、VMCSから読み取る対象のVMCS構成部分と、VMCSから読み取られるデータを記憶する対象の場所(例えば、レジスタ又はメモリ位置)とを示す構成部分識別子を含む、いくつかのパラメータを含み得る。
● VMCS書き込み命令は、VMCSの構成部分を、(例えば、プロセッサ112上の)レジスタ又は(例えば、メモリ116における)メモリ位置からロードする。VMCS読み取り命令のように、VMCS書き込み命令はVMCS構成部分識別子のオペランドを含み得る。更に、VMCS書き込み命令は、VMCSに書き込む対象のデータの場所(例えば、レジスタ又はメモリ位置)を記述するオペランドを含み得る。
● VMCSクリア命令は、VMCSに関連したプロセッサ上の記憶機構の全ての内容がVMCS領域118にもう一度記憶され、プロセッサ上の資源におけるデータを無効化し、更にVMCSポインタを非活動化するようにしている。この命令は、現在アクティブ状態にあるVMCSポインタを消去し、非活動化して、オペランドなしで動作することが可能であるか、別の実施例では、この命令はオペランドとして、消去と非活動化が必要なVMCSポインタをとり得る。実施例では、VMCSクリア命令は、アーキテクチャ的又は非アーキテクチャ的に定義される状態表示子をVMCS領域に書き込むことによってVMCSを非アクティブ状態としてマーキングし得る。
● 最後に、VMCS入力命令は、VMアーキテクチャ100の意味論とVMCSの内容によってプロセッサ状態をロードすることによって、アクティブ状態のVMCSによって定義されるVM(例えば、130、140、150)に制御(すなわち、VMエントリ)を移すことをもたらす。あるいは、命令は、入力される対象のVMCSポインタ(又は該ポインタの位置)を備えている引数を含み得る。
上記の、プロセッサが備える命令119は、1つの実施例のみを表すが、それは、種々の別々すなわち代替の命令119を備え得るからである。例えば、一部の実施例では、VMCSクリア命令は、VMCSポインタを非活動化することなく、プロセッサ上の記憶機構からのVMCSデータをVMCS領域118に複製し得る。オペランドは明示オペランド(すなわち、命令に値が明示されているオペランド)、又は非明示オペランド(すなわち、命令に値が明示されていないオペランド)であり得る。プロセッサ112などにおいてアクティブ状態にあるVMCSポインタ全てを処理する別の命令119(又は上記命令119の変形)を備え得る。
当業者が分かるように、通常のVMアーキテクチャは、メモリにおけるVMCSの、静的に、アーキテクチャ的に定義される形式を有する。このことは、VMCSのサイズ、編成、又は内容をおぎなうか変更するプロセッサ実施形態の能力を制限するが、それは、VMCSに対する変更が、VMMの実施形態に対する相当する変更を必要とすることになるからである。更に、通常のVMMは、通常のメモリ読み取り動作とメモリ書き込み動作とを用いて通常のVMCSをアクセスするので、プロセッサ実施形態は、VMCSデータの記憶機構をプロセッサ上の資源に割り当てるうえでの柔軟性が低い。例えば、プロセッサは、VMCSの特定の部分をプロセッサ上の資源においてVMMへのVM出口処理中にキャッシュすることができない場合があるが、それは、メモリにおける、VMCSの相当する領域のVMMが修正を行ったかを検知することが困難であり得るからである。プロセッサ上の資源とメモリ中のVMCS画像との間の整合性を確かめることができないというこのことは、VM入口処理に続いてゲスト・ソフトウェアを実行する前に要求される場合があるエラー検査と整合性検査とを複雑にする。
しかし、本発明の種々の実施例によって、VMM120は、通常の読み取り動作や書き込み動作を用いて直接VMCSメモリ画像をアクセスせず、メモリ116におけるVMCSの予め定義された形式を利用せず、実行時にメモリ116におけるVMCSに要求される記憶サイズを判定しない。
VMCS記憶メモリ要件の実行時のバインドと上記の、プロセッサが備える命令119の利用は図2に示す。図2は、VMMにおける種々の活動を通じたVMCSポインタの状態を示す。処理はブロック210から開始する。この時点では、アクティブ状態にあるVMCSポインタは何ら存在しない。ブロック210では、VMMは、プロセッサが、VMCSをサポートするのに必要なメモリ領域のサイズを判定する。上記のように。これは、例えば、指定MSRを読み取ることによって実現し得る。
ブロック220では、VMMは所要メモリを割り当てる。VMCSポインタはなお非アクティブ状態にある。最適にはこのメモリ領域は物理メモリ内部で連続しているが、本実施例ではそのような要件は何ら必要でないということが当業者に明らかである。VMMは、上記、(ブロック230に入る)VMCSロード・ポインタ命令を用いてプロセッサにVMCS領域のアドレスを備えることによってVMCSを起動する。この時点では、VMCSポインタは、ワーキングVMCSポインタと呼ばれる。VMCSポインタがアクティブ状態になった後、VMMは、(119として図1に表し、232及び234として図2に表す)適切なVMCSアクセス命令を用いてVMCSの構成部分の読み書きを行い得る。この読み書き命令の後も、VMCSポインタはアクティブ状態のままである。
ゲストが実行することをVMMが可能にしたい場合、VMMは(ブロック240に入る)VM入口命令を用いてゲストをマシンにロードする。VM入口処理の後、VMCSポインタはなおアクティブ状態にあるが、その場合、ゲストが実行する環境と特性とを判定するようプロセッサによって用いられる制御VMCSポインタとして機能する。
VM出口処理が行われると、制御はVMMに戻る(ブロック240からブロック230に戻る)。VMCSポインタは、もう一度ワーキングVMCSポインタとして、アクティブ状態のままである。VMMはVMCSフィールドの読み書き(矢印232及び234)を適宜行うことが可能であり、(ブロック240に戻る)VM入口処理命令を用いてもう一度ゲストを入力し得る。あるいは、VMMは、(状態220に戻る)VMクリア命令を用いてVMCSポインタを非活動化させる場合があり、その時点でVMCSポインタは非アクティブ状態になる。
なお、VMMが何れかの特定の瞬間に種々の動作(例えば、VM読み取り、VM書き込み、VM入口処理など)を行い得るので、方法200は何れかの特定の動作シーケンスに限定されるものでない。更に、方法200を利用する特定のプロセッサ内部の、何れかの特定の瞬間では、単一のVMCSポインタ又は種々のVMCSポインタがアクティブ状態又は非アクティブ状態であり得る。一部の実施例では、複数のVMCSが、何れかの特定の時点で何れかの特定のプロセッサ内部でアクティブ状態にあり得る。このようにして、VMMは、VMCSクリア命令を実行することなくVM間で切り替えることが可能であり、それによってVM処理効率を向上させる。
実施例では、プロセッサが備える別の命令は、何れかの特定の時点でアクティブ状態にあり得るいくつかの同時VMCS又は並列VMCSを照会して取得する機能をVMMに備え得る。別の実施例は、VMMが読み取り得るMSRを備えてこの情報を得ることが可能である。別の実施例では、同時にアクティブ状態にあることが可能であり、(よって、例えば、プロセッサ上の資源においてキャッシュすることが可能な)いくつかのVMCSポインタはVMMソフトウェアには直接視えない場合があり、プロセッサ実施形態は、プロセッサ上の資源にプロセッサが記憶可能なものよりも多いVMCSポインタをVMMが起動する場合にオーバフロー状態を自動的に処理する。この場合、プロセッサは、適切なVMCSデータをメモリにおける関連したVMCS領域に自動的にフラッシングし得る。特定の実施例では、図1の記載とともに上記説明した、プロセッサが備えるいくつかの命令内部に明示のVMCSポインタ引数が必要な場合がある。
本発明の実施例は、VMCSデータのプロセッサ上の記憶機構とメモリ中の記憶機構とを管理することに関連した詳細を管理するうえでのソフトウェアに対する要件を取り除く。よって、VMMは、その管理下にあるVMの各々を更に高い抽象化レベルで管理する。このストラテジは、既存のVMMソフトウェアを変更することなく、プロセッサが備える命令を追加するか修正することによってVM実行がより手軽にかつより最適に改変されるか拡張されるようにVMCS記憶機構の詳細を図1と図2において上記に記載する、プロセッサが備える命令が管理することを可能にする。
図3は、本発明の実施例における、VMCS読み取り/書き込み命令の利用を表す図である。アーキテクチャ的なVMCS形式305を表すが、これはVMMによって明示的に用いられるものでない。むしろ、VMMは、VMCS構成部分識別子、フィールドのサイズ、及びフィールドの意味論の知識によってプログラムされ、メモリにおけるVMCS記憶機構の形式のアーキテクチャ的な定義の知識によってプログラムされるものでない。VMMは、アーキテクチャ的なVMCS305におけるフィールドをアクセスしようとする場合、VMCS読み取り(又は、適宜、VMCS書き込み)を行う(。VMCS読み取りを図3に単に例示の目的で表す。)。VMCS読み取り命令310へのパラメータは、VMCSの構成部分を識別するアーキテクチャ的に定義される定数である構成部分識別子である。プロセッサは、マッピング関数320を用いてVMMのためにVMCSデータをアクセスするよう構成部分識別子を用いて、適宜、プロセッサ上の資源(例えば、VMCSキャッシュ322)又はメモリ中の資源(例えば、VMCS領域324)にマッピングする。VMCS領域又はVMCSキャッシュに記憶されるデータがアーキテクチャ的に定義される形式にない場合、データを、整合させるよう、再フォーマティング関数323を用いて適切に再フォーマティングされる。
2つのVMCSアクセス命令例を図3に表す。これらの例は何れもVMCS読み取り命令に対するものであるが、図5に関して以下に詳細を記載するように、VMCS書き込み命令に対して同様な活動群が存在する。
図3を参照すれば、VMCS読み取り命令310の第1例は、0x4032の、アーキテクチャ的に定義されるコード化を有するGUEST_EIP構成部分をアクセスする。プロセッサ実施形態は、マッピング関数320によって判定される、VMCS領域324におけるこの構成部分のデータを維持する。プロセッサはVMCS領域324からの適切な構成部分データをメモリ読み取り動作330を用いて読み取る。読み取り動作330はVMCS領域324における構成部分の位置が(この場合もまた、マッピング関数320によって判定されるように)分かる(。この例では、VMCS領域におけるオフセット12で位置特定される。)。プロセッサは更に、データ値を(矢印331として表す)VMMに戻す。
VMCS読み取り命令350の第2例は、0x1076の、アーキテクチャ的に定義されるコード化を有するVM_CONTROLS構成部分をアクセスする。このプロセッサ実施形態は、この構成部分を(マッピング関数320によって判定されるように)VMCSキャッシュ322に維持する。プロセッサはVMCSキャッシュ322をアクセスしてデータを取り出す。この場合、データは、プロセッサ上に、VM_VONTROLS構成部分のアーキテクチャ的な定義に一致しない形式で記憶される(例えば、データはプロセッサ上に再配列8バイト・オブジェクトとして記憶される一方、VM_CONTROLSフィールドのアーキテクチャ的な定義は4バイトのオブジェクトである。)。VMMにデータを戻す前に、プロセッサはVM_CONTROLSデータを、再フォーマティング関数323を用いて、再フォーマティングして、フィールドのアーキテクチャ的な定義と一致させる。この再フォーマティング値(すなわち、要求構成部分のアーキテクチャ的な定義に一致する値)がVMMに戻される(矢印326として表す)。
これらのVMCSアクセス命令を用いて、その各々が別個のVMCSによって識別されるその1つ又は複数のVMを管理するVMMは、VMCSに関連した記憶機構を管理する必要がないが、このことは、それがメモリから、プロセッサ上の資源にキャッシュされるからである。更に、VMMは、メモリ又はプロセッサ上の資源におけるデータのフォーマティングなどの、プロセッサ実施形態の詳細の変更を管理しなくてよい。よって、プロセッサ開発者はVMCSアクセス命令を改変するか修正して、既存のVMM又はVMの動作に悪影響を及ぼすことなく、VM性能を向上させ、VM能力を拡張させ得る。既存のVMM及びVMは、しかし、そのような改変から恩恵を受け得るが、それは、性能の向上、信頼度の向上、スケーラビリティの向上、又はその他の向上が、VMアーキテクチャの新たな実施形態にもたらされるからである。
図4は、本発明の一実施例による、VMCS読み取り命令を実行する方法400の流れ図である。410では、VMCS読み取り要求がVMMから受信される。420では、VMCS構成部分識別子がVMCS読み取り要求から取得される。構成部分識別子は、VMCSの所望の構成部分を識別する、アーキテクチャ的に定義される定数である。
プロセッサは430において構成部分識別子を検査して、構成部分識別子に関連したVMCS構成部分がメモリにあるかを判定する。VMCS構成部分がメモリに記憶されている場合、メモリ位置のアドレスが440で計算され、VMCS構成部分と関連したVMCSデータが450で取得される。しかし、VMCS構成部分がメモリに記憶されていない場合、プロセッサは、460で、プロセッサ上の記憶機構から、VMCS構成部分に関連したVMCSデータを取得する。このようにして、プロセッサは構成部分識別子を用いて、読み取り要求をVMCS構成部分記憶機構に、460で、それがメモリに存在しようがプロセッサ上に記憶機構に存在しようがマッピングする。
470では、VMCSデータをVMMに戻す前にVMCSデータの再フォーマティングが必要かを判定するよう検査がプロセッサによって行われる。VMCS構成部分のアーキテクチャ的に定義されるデータ形式とは異なる形式においてVMCSデータが(VMCS領域かプロセッサ上の資源に)記憶されている(すなわち、VMCS構成部分がアーキテクチャ的に定義される形式とは異なる実施形態特有のデータ形式で記憶されている)場合、480で、再フォーマティング関数がアクセスされて、実施形態特有のVMCSデータが、アーキテクチャ的に定義されるデータ形式に変換される。VMCSデータが(VMCS領域又はプロセッサ上の資源において)VMCS構成部分のアーキテクチャ的に定義されるデータ形式において記憶されている場合、VMCSデータに対する再フォーマティング関数も変換も行われなくてよい。最後に、490では、(その場合、アーキテクチャ的に定義されるデータ形式にある)VMCSデータはVMMに戻される。
図5は、本発明の一実施例による、VMCS書き込み命令を実行する方法500の流れ図である。505では、プロセッサは、VMCS書き込み要求をVMMから受信する。プロセッサは、510に表すように、書き込み要求のオペランドのうちの1つとして構成部分識別子を取得する。更に、515では、プロセッサは、別のオペランドとして、VMCSに書き込むことが望まれる書き込みデータを別のオペランドとして取得する。この書き込みデータは、書き込まれるVMCS構成部分のアーキテクチャ的に定義されるデータ形式にある。
520では、プロセッサによってアーキテクチャ的に定義されるデータ形式においてVMCS構成部分が(VMCS領域又はプロセッサ上の資源において)記憶されているかを判定する検査が行われる。よって、VMCS構成部分が、アーキテクチャ的に定義されるデータ形式において記憶されていない場合、525で、データの適切な再フォーマティングが行われて、データが、アクセスされるVMCS構成部分に関連した適切な実施形態特有のデータ形式にある。データが記憶されている形式はアーキテクチャ的に定義される形式と同一であっても、サイズ又は編成において異なっていてもよい。
次に、530では、VMCS構成部分がプロセッサによって記憶されている位置を判定するよう別の検査が行われる。構成部分識別子を用いて、プロセッサはVMCS構成部分の記憶機構がある場所を判定する。記憶場所がメモリにある場合、535で、メモリ・アドレスが計算され、540で、書き込みデータがメモリ位置に書き込まれる。しかし、記憶場所がメモリにない場合、545で、プロセッサ上の記憶機構における適切な位置が判定され、書き込みデータがプロセッサ上の記憶機構に書き込まれる。記憶機構に書き込まれるデータは対象のVMCS構成部分、プロセッサ実施形態によって、更には、一部の実施例では、対象構成部分がプロセッサ上の資源かVMCS領域に現在記憶されているかによって、アーキテクチャ的に定義される形式と同じ場合も異なる場合もある実施形態特有のデータ形式にある。
特定のVMCS構成部分の記憶場所を判定し、VMCS構成部分がプロセッサによってアーキテクチャ的に定義されるデータ形式において記憶されているかを判定するのに処理400及び500で用いられる機構は実施形態特有である。特定の実施例では、プロセッサは構成部分識別子によって索引付けされるルックアップ・テーブルを利用する。更に、複数のVMCSポインタが同時にアクティブ状態にあり得る場合、これらの判定はどのVMCSがアクセスされているかによって変わってくる場合がある。
当業者は、本願の開示を読んで理解することによって、本発明をコンピュータ・ベースのシステムにおいて実施して、本明細書及び特許請求の範囲記載の方法を行い得る方法が分かるものである。本発明は、(汎用コンピュータ・システム上若しくは専用マシン上で実行されるものなどの)ソフトウェア、ハードウェア(例えば、回路、専用ロジック、プログラム可能ロジック、マイクロコードなど)、又はハードウェアとソフトウェアとの組み合わせを用いて実施し得る。
なお、上記明細書は、制約ではなく説明例であることが意図されていることとする。多くの別の実施例が、上記明細書を検討することによって当業者に明らかとなる。本発明の実施例の範囲は、よって、本特許請求の範囲と、そのような本特許請求の範囲に権利が付与される、当該同等物の範囲全部とを参照しながら判定されることとする。
技術上の開示の特性と要旨とを本願の読者がすばやく確かめることを可能にする要約書が備えられているということを強調する。要約書は、本特許請求の範囲又は意義を解釈することにも制約することにも用いられないこととするという理解によって提示されている。
本実施例の上記明細書では、本願の開示を簡素化する目的で種々の特徴を単一の実施例に併せてグループ化している。本願の開示の方法は、本特許請求の範囲の各請求項に明示的に記載されている特徴よりも多くの特徴を本発明の請求実施例が必要とするという意図を反映しているものとして解されるものでない。むしろ、本特許請求の範囲が反映するように、本発明の要旨は、単一の開示実施例の全ての特徴よりも少ない内容である。よって、本特許請求の範囲は、本明細書の実施例の説明に組み入れられ、各請求項は別個の例示的な実施例として独立している。
本発明の一実施例による、VMアーキテクチャの図である。 本発明の一実施例による、VMを制御する方法の流れ図である。 本発明の一実施例による、VMCSアクセス命令の図である。 本発明の一実施例による、VMCSからデータを読み取る方法の流れ図である。 本発明の一実施例による、VMCSにデータを書き込む方法の流れ図である。
符号の説明
100 VMアーキテクチャ
110 ベース・プラットフォーム・ハードウェア
112 プロセッサ
114 VMCSキャッシュ
116 メモリ
118 VMCS領域
120 VMM
130 VM
140 VM
150 VM
150 OS
152 アプリケーション
160 OS
162 アプリケーション
170 OS
172 アプリケーション

Claims (13)

  1. 仮想計算機制御構造(VMCS)をアクセスする方法であって:
    仮想計算機モニタ(VMM)によって、VMCSアクセス命令を実行する工程;及び
    該VMCSアクセス命令に関連した、VMCS構成部分の識別子を用いて、VMCS構成部分をプロセッサによってアクセスする工程;
    を備え、
    該VMCS構成部分は、ストが実行することをVMMが妨げようとする条件を示す制御情報を含むことを特徴とする方法。
  2. 請求項1記載の方法であって、該VMCS構成部分をアクセスする工程において:
    該VMCS構成部分の識別子が、該VMCSアクセス命令に対する明示オペランドと、該VMCSアクセス命令に対する非明示オペランドとのうちの少なくとも1つであることを特徴とする方法。
  3. 請求項1記載の方法であって、該VMCSアクセス命令を実行する工程において:
    該VMCSアクセス命令が、該VMCS構成部分からの読み取り命令と、該VMCS構成部分に対する書き込み命令とのうちの少なくとも1つであることを特徴とする方法。
  4. 請求項3記載の方法であって、該VMCSアクセス命令を実行する工程において:
    該VMCSアクセス命令が該VMCS構成部分に対する書き込み命令であり;
    該VMCSアクセス命令が書き込みデータ値をオペランドとして含むことを特徴とする方法。
  5. 請求項4記載の方法であって、該VMCSアクセス命令を実行する工程において:
    該書き込みデータ値の形式がアーキテクチャ的に定義されたデータ形式であることを特徴とする方法。
  6. 請求項4記載の方法であって、更に:
    該書き込みデータ値を該VMCS構成部分に書き込む工程;
    を備えることを特徴とする方法。
  7. 請求項1記載の方法であって、更に:
    VMCS構成部分がメモリに存在するということを判定する工程;及び
    VMCS構成部分のメモリ位置を計算する工
    を備えることを特徴とする方法。
  8. 請求項1記載の方法であって、更に:
    VMCS構成部分がプロセッサ上の記憶機構に存在するということを判定する工
    を備えることを特徴とする方法。
  9. 請求項1記載の方法であって、該VMCSアクセス命令を実行する工程において:
    該VMCSアクセス命令が該VMCS構成部分からの読み取り命令であり;
    該VMCS構成部分をアクセスする工程が更に:
    該VMCS構成部分に関連したデータを読み取る工程;及び
    該VMCS構成部分に関連した該データを該VMMに戻す工程;
    を備えることを特徴とする方法。
  10. 請求項9記載の方法であって、該VMCS構成部分に関連した該データを該VMMに戻す工程が:
    該VMCS構成部分に関連した該データを、該VMCS構成部分のアーキテクチャ的に定義されたデータ形式に一致させるよう再フォーマティングする工程;
    戻りデータ値を生成する工程;及び
    該戻りデータ値を該VMMに戻す工程;
    を含むことを特徴とする方法。
  11. 請求項9記載の方法であって、該VMCS構成部分に関連した該データを該VMMに戻す工程において:
    該データの形式が、該VMCS構成部分のアーキテクチャ的に定義されたデータ形式と同じ形式と、該VMCS構成部分のアーキテクチャ的に定義されたデータ形式とは異なる形式とのうちの少なくとも1つである形式であることを特徴とする方法。
  12. 請求項11記載の方法であって、更に:
    該VMCS構成部分の実施形態特有データ形式に一致させるよう該書き込みデータを再フォーマティングする工程;
    を備え;
    該再フォーマティングの結果、再フォーマティング書き込みデータ値がもたらされ;
    更に、該再フォーマティング書き込みデータ値を該VMCS構成部分に書き込む工程;
    を備えることを特徴とする方法。
  13. 請求項12記載の方法であって、該書き込みデータを再フォーマティングする工程において:
    該VMCS構成部分の実施形態特有データ形式が、該VMCS構成部分のアーキテクチャ的に定義された形式と同じ形式と、該VMCS構成部分のアーキテクチャ的に定義されたデータ形式とは異なる形式とのうちの少なくとも1つであることを特徴とする方法。
JP2008242682A 2002-12-17 2008-09-22 仮想計算機を制御する方法及びシステム Expired - Fee Related JP4981006B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/322,003 2002-12-17
US10/322,003 US7318141B2 (en) 2002-12-17 2002-12-17 Methods and systems to control virtual machines

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2004564979A Division JP2006516769A (ja) 2002-12-17 2003-11-12 仮想計算機を制御する方法及びシステム

Publications (2)

Publication Number Publication Date
JP2009054169A JP2009054169A (ja) 2009-03-12
JP4981006B2 true JP4981006B2 (ja) 2012-07-18

Family

ID=32507184

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2004564979A Withdrawn JP2006516769A (ja) 2002-12-17 2003-11-12 仮想計算機を制御する方法及びシステム
JP2008242682A Expired - Fee Related JP4981006B2 (ja) 2002-12-17 2008-09-22 仮想計算機を制御する方法及びシステム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2004564979A Withdrawn JP2006516769A (ja) 2002-12-17 2003-11-12 仮想計算機を制御する方法及びシステム

Country Status (8)

Country Link
US (1) US7318141B2 (ja)
JP (2) JP2006516769A (ja)
KR (1) KR100847613B1 (ja)
CN (1) CN100504789C (ja)
AU (1) AU2003290857A1 (ja)
DE (1) DE10393920B4 (ja)
TW (1) TWI273493B (ja)
WO (1) WO2004061645A2 (ja)

Families Citing this family (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6976162B1 (en) 2000-06-28 2005-12-13 Intel Corporation Platform and method for establishing provable identities while maintaining privacy
US6907600B2 (en) * 2000-12-27 2005-06-14 Intel Corporation Virtual translation lookaside buffer
US7035963B2 (en) * 2000-12-27 2006-04-25 Intel Corporation Method for resolving address space conflicts between a virtual machine monitor and a guest operating system
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
US7024555B2 (en) 2001-11-01 2006-04-04 Intel Corporation Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment
US7631196B2 (en) 2002-02-25 2009-12-08 Intel Corporation Method and apparatus for loading a trustable operating system
US7069442B2 (en) * 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US7127548B2 (en) * 2002-04-16 2006-10-24 Intel Corporation Control register access virtualization performance improvement in the virtual-machine architecture
US20030229794A1 (en) * 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
US7142674B2 (en) * 2002-06-18 2006-11-28 Intel Corporation Method of confirming a secure key exchange
US7124327B2 (en) * 2002-06-29 2006-10-17 Intel Corporation Control over faults occurring during the operation of guest software in the virtual-machine architecture
US6996748B2 (en) * 2002-06-29 2006-02-07 Intel Corporation Handling faults associated with operation of guest software in the virtual-machine architecture
US20040117532A1 (en) * 2002-12-11 2004-06-17 Bennett Steven M. Mechanism for controlling external interrupts in a virtual machine system
US7073042B2 (en) * 2002-12-12 2006-07-04 Intel Corporation Reclaiming existing fields in address translation data structures to extend control over memory accesses
US7318141B2 (en) * 2002-12-17 2008-01-08 Intel Corporation Methods and systems to control virtual machines
US7900017B2 (en) 2002-12-27 2011-03-01 Intel Corporation Mechanism for remapping post virtual machine memory pages
US8079034B2 (en) 2003-09-15 2011-12-13 Intel Corporation Optimizing processor-managed resources based on the behavior of a virtual machine monitor
US7424709B2 (en) * 2003-09-15 2008-09-09 Intel Corporation Use of multiple virtual machine monitors to handle privileged events
US7739521B2 (en) * 2003-09-18 2010-06-15 Intel Corporation Method of obscuring cryptographic computations
US7610611B2 (en) * 2003-09-19 2009-10-27 Moran Douglas R Prioritized address decoder
US7237051B2 (en) * 2003-09-30 2007-06-26 Intel Corporation Mechanism to control hardware interrupt acknowledgement in a virtual machine system
US20050108534A1 (en) * 2003-11-19 2005-05-19 Bajikar Sundeep M. Providing services to an open platform implementing subscriber identity module (SIM) capabilities
US8156343B2 (en) * 2003-11-26 2012-04-10 Intel Corporation Accessing private data about the state of a data processing machine from storage that is publicly accessible
US8037314B2 (en) 2003-12-22 2011-10-11 Intel Corporation Replacing blinded authentication authority
US20050133582A1 (en) * 2003-12-22 2005-06-23 Bajikar Sundeep M. Method and apparatus for providing a trusted time stamp in an open platform
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
US20050216920A1 (en) * 2004-03-24 2005-09-29 Vijay Tewari Use of a virtual machine to emulate a hardware device
US7356735B2 (en) * 2004-03-30 2008-04-08 Intel Corporation Providing support for single stepping a virtual machine in a virtual machine environment
US7620949B2 (en) 2004-03-31 2009-11-17 Intel Corporation Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment
US20050288056A1 (en) * 2004-06-29 2005-12-29 Bajikar Sundeep M System including a wireless wide area network (WWAN) module with an external identity module reader and approach for certifying the WWAN module
US7607011B1 (en) * 2004-07-16 2009-10-20 Rockwell Collins, Inc. System and method for multi-level security on a network
US7840962B2 (en) * 2004-09-30 2010-11-23 Intel Corporation System and method for controlling switching between VMM and VM using enabling value of VMM timer indicator and VMM timer value having a specified time
US8146078B2 (en) 2004-10-29 2012-03-27 Intel Corporation Timer offsetting mechanism in a virtual machine environment
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
KR100638476B1 (ko) * 2004-12-22 2006-10-26 삼성전자주식회사 버추얼 플랫폼 기반의 시스템 온 칩 개발 환경 및 개발 방법
US8533777B2 (en) 2004-12-29 2013-09-10 Intel Corporation Mechanism to determine trust of out-of-band management agents
US7886126B2 (en) * 2005-01-14 2011-02-08 Intel Corporation Extended paging tables to map guest physical memory addresses from virtual memory page tables to host physical memory addresses in a virtual machine system
US7395405B2 (en) 2005-01-28 2008-07-01 Intel Corporation Method and apparatus for supporting address translation in a virtual machine environment
US20070006178A1 (en) * 2005-05-12 2007-01-04 Microsoft Corporation Function-level just-in-time translation engine with multiple pass optimization
US7496495B2 (en) * 2005-05-12 2009-02-24 Microsoft Corporation Virtual operating system device communication relying on memory access violations
US9785485B2 (en) 2005-07-27 2017-10-10 Intel Corporation Virtualization event processing in a layered virtualization architecture
US9176741B2 (en) 2005-08-29 2015-11-03 Invention Science Fund I, Llc Method and apparatus for segmented sequential storage
US7644258B2 (en) 2005-08-29 2010-01-05 Searete, Llc Hybrid branch predictor using component predictors each having confidence and override signals
US8275976B2 (en) 2005-08-29 2012-09-25 The Invention Science Fund I, Llc Hierarchical instruction scheduler facilitating instruction replay
US8296550B2 (en) 2005-08-29 2012-10-23 The Invention Science Fund I, Llc Hierarchical register file with operand capture ports
US20070083735A1 (en) 2005-08-29 2007-04-12 Glew Andrew F Hierarchical processor
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
CN101154130B (zh) * 2006-09-30 2012-07-04 联想(北京)有限公司 一种虚拟机系统及其电源管理方法
US8185893B2 (en) * 2006-10-27 2012-05-22 Hewlett-Packard Development Company, L.P. Starting up at least one virtual machine in a physical machine by a load balancer
US8296760B2 (en) * 2006-10-27 2012-10-23 Hewlett-Packard Development Company, L.P. Migrating a virtual machine from a first physical machine in response to receiving a command to lower a power mode of the first physical machine
US9092250B1 (en) * 2006-10-27 2015-07-28 Hewlett-Packard Development Company, L.P. Selecting one of plural layouts of virtual machines on physical machines
US8732699B1 (en) 2006-10-27 2014-05-20 Hewlett-Packard Development Company, L.P. Migrating virtual machines between physical machines in a define group
JP4780327B2 (ja) * 2006-12-01 2011-09-28 日本電気株式会社 パーティション・コンテキスト制御装置及び方法、並びにコンピュータ
CN101206582B (zh) * 2006-12-22 2010-10-06 联想(北京)有限公司 一种虚拟机系统及其处理方法
US20080235000A1 (en) * 2007-03-22 2008-09-25 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Implementing security control practice omission decisions from service emulation indications
US9558019B2 (en) 2007-03-22 2017-01-31 Invention Science Fund I, Llc Coordinating instances of a thread or other service in emulation
US7984483B2 (en) 2007-04-25 2011-07-19 Acxess, Inc. System and method for working in a virtualized computing environment through secure access
WO2009058042A1 (en) * 2007-10-29 2009-05-07 Intel Corporation A method of external performance monitoring for virtualized environments
US8341626B1 (en) 2007-11-30 2012-12-25 Hewlett-Packard Development Company, L. P. Migration of a virtual machine in response to regional environment effects
CN101470668B (zh) * 2007-12-24 2011-01-26 联想(北京)有限公司 一种计算机及计算机上配置高速缓存控制策略的方法
US8719936B2 (en) * 2008-02-01 2014-05-06 Northeastern University VMM-based intrusion detection system
US8904383B2 (en) * 2008-04-10 2014-12-02 Hewlett-Packard Development Company, L.P. Virtual machine migration according to environmental data
CN102077170A (zh) * 2008-06-27 2011-05-25 Nxp股份有限公司 元语言程序代码执行的中断方法
WO2010023052A2 (en) 2008-08-26 2010-03-04 International Business Machines Corporation A method, apparatus and computer program for provisioning a storage volume to a virtual server
US20100115509A1 (en) * 2008-10-31 2010-05-06 International Business Machines Corporation Power optimization via virtualization opportunity
US20100175108A1 (en) * 2009-01-02 2010-07-08 Andre Protas Method and system for securing virtual machines by restricting access in connection with a vulnerability audit
KR101571880B1 (ko) * 2009-02-02 2015-11-25 삼성전자 주식회사 전자장치와 가상머신 제공장치 및 이를 이용한 가상머신 서비스 이용 방법
JP4961459B2 (ja) * 2009-06-26 2012-06-27 株式会社日立製作所 仮想計算機システムおよび仮想計算機システムにおける制御方法
US8479196B2 (en) * 2009-09-22 2013-07-02 International Business Machines Corporation Nested virtualization performance in a computer system
CN101876954B (zh) * 2009-12-23 2012-08-15 中国科学院计算技术研究所 一种虚拟机控制系统及其工作方法
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
US9201677B2 (en) * 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
WO2013019185A1 (en) 2011-07-29 2013-02-07 Hewlett-Packard Development Company, L.P. Migrating virtual machines
CN104025074A (zh) * 2011-12-30 2014-09-03 英特尔公司 作为中间件的平台无关isa仿真器
US10359972B2 (en) 2012-08-31 2019-07-23 Sandisk Technologies Llc Systems, methods, and interfaces for adaptive persistence
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
CN103036975B (zh) * 2012-12-13 2016-03-09 深信服网络科技(深圳)有限公司 虚拟机控制方法及装置
US9189411B2 (en) 2012-12-28 2015-11-17 Intel Corporation Logging in secure enclaves
US9223602B2 (en) * 2012-12-28 2015-12-29 Intel Corporation Processors, methods, and systems to enforce blacklisted paging structure indication values
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US9772867B2 (en) * 2014-03-27 2017-09-26 International Business Machines Corporation Control area for managing multiple threads in a computer
US9389897B1 (en) 2014-12-18 2016-07-12 International Business Machines Corporation Exiting multiple threads of a simulation environment in a computer
US20210026950A1 (en) * 2016-03-07 2021-01-28 Crowdstrike, Inc. Hypervisor-based redirection of system calls and interrupt-based task offloading
CN106293873B (zh) * 2016-07-29 2019-11-05 北京北信源软件股份有限公司 一种准确获取虚拟机控制块(vmcs)中关键数据位置的方法
US10311057B2 (en) * 2016-08-08 2019-06-04 International Business Machines Corporation Attribute value information for a data extent
CN107341115B (zh) * 2017-06-30 2021-07-16 联想(北京)有限公司 虚拟机内存访问方法、系统和电子设备

Family Cites Families (109)

* 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 仮想計算機システム制御装置
US4674038A (en) * 1984-12-28 1987-06-16 International Business Machines Corporation Recovery of guest virtual machines after failure of a host real machine
JPH0833851B2 (ja) * 1986-03-15 1996-03-29 株式会社日立製作所 仮想計算機のモニタリング方式
US4916608A (en) * 1986-05-30 1990-04-10 International Business Machines Corporation Provision of virtual storage resources to an operating system control program
JPH01263836A (ja) * 1988-04-15 1989-10-20 Nec Corp 仮想計算機システムの情報移送方式
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
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
US5230069A (en) * 1990-10-02 1993-07-20 International Business Machines Corporation Apparatus and method for providing private and shared access to host address and data spaces by guest programs in a virtual machine computer system
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
JPH04348434A (ja) 1991-05-27 1992-12-03 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
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 マイクロコンピュータ
JPH07129419A (ja) * 1993-11-08 1995-05-19 Nec Corp 仮想計算機システム
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
US5621912A (en) * 1994-12-29 1997-04-15 International Business Machines Corporation Method and apparatus for enabling monitoring of guests and native operating systems
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エレクトロニクス株式会社 フラッシュメモリ内蔵マイクロコンピュータ及びそのテスト方法
US6205467B1 (en) * 1995-11-14 2001-03-20 Advanced Micro Devices, Inc. Microprocessor having a context save unit for saving context independent from interrupt requests
JP2000503154A (ja) 1996-01-11 2000-03-14 エムアールジェイ インコーポレイテッド デジタル所有権のアクセスと分配を制御するためのシステム
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
IL117085A (en) 1996-02-08 2005-07-25 Milsys Ltd Secure 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
US6178509B1 (en) 1996-06-13 2001-01-23 Intel Corporation Tamper resistant methods and apparatus
US6175925B1 (en) 1996-06-13 2001-01-16 Intel Corporation Tamper resistant player for scrambled contents
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
US6148401A (en) 1997-02-05 2000-11-14 At&T Corp. System and method for providing assurance to a host that a piece of software possesses a particular property
US5953502A (en) 1997-02-13 1999-09-14 Helbig, Sr.; Walter A Method and apparatus for enhancing computer system security
EP0970411B1 (en) 1997-03-27 2002-05-15 BRITISH TELECOMMUNICATIONS public limited company Copy protection of data
US6802062B1 (en) * 1997-04-01 2004-10-05 Hitachi, Ltd. System with virtual machine movable between virtual machine systems and control method
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)
US6188995B1 (en) 1997-07-28 2001-02-13 Apple Computer, Inc. Method and apparatus for enforcing software licenses
DE19735948C1 (de) 1997-08-19 1998-10-01 Siemens Nixdorf Inf Syst Verfahren zur Verbesserung der Steuerungsmöglichkeit in Datenverarbeitungsanlagen mit Adreßübersetzung
US6128641A (en) * 1997-09-12 2000-10-03 Siemens Aktiengesellschaft Data processing unit with hardware assisted context switching capability
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
US6134602A (en) * 1997-09-24 2000-10-17 Microsoft Corporation Application programming interface enabling application programs to group code and data to control allocation of physical memory in a virtual memory system
US6085296A (en) 1997-11-12 2000-07-04 Digital Equipment Corporation Sharing memory pages and page tables among computer processes
US6219787B1 (en) 1997-12-22 2001-04-17 Texas Instruments Incorporated Method and apparatus for extending security model to native code
US6192455B1 (en) 1998-03-30 2001-02-20 Intel Corporation Apparatus and method for preventing access to SMRAM space through AGP addressing
US6339826B2 (en) 1998-05-05 2002-01-15 International Business Machines Corp. Client-server system for maintaining a user desktop consistent with server application user access permissions
US6397242B1 (en) 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
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
JP2000076139A (ja) 1998-08-28 2000-03-14 Nippon Telegr & Teleph Corp <Ntt> 携帯型情報記憶媒体
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
US6732220B2 (en) * 1999-02-17 2004-05-04 Elbrus International Method for emulating hardware features of a foreign architecture in a host operating system environment
WO2000062232A1 (en) 1999-04-12 2000-10-19 Digital Media On Demand, Inc. (Dmod, Inc.) Secure electronic commerce system
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
GB9923804D0 (en) 1999-10-08 1999-12-08 Hewlett Packard Co Electronic commerce system
GB9923802D0 (en) 1999-10-08 1999-12-08 Hewlett Packard Co User authentication
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
AU2001243365A1 (en) 2000-03-02 2001-09-12 Alarity Corporation System and method for process protection
CA2341931C (en) 2000-03-24 2006-05-30 Contentguard Holdings, Inc. System and method for protection of digital works
US6795905B1 (en) 2000-03-31 2004-09-21 Intel Corporation Controlling accesses to isolated memory using a memory controller for isolated execution
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
US6760815B1 (en) * 2000-06-02 2004-07-06 Sun Microsystems, Inc. Caching mechanism for a virtual heap
JP2002041305A (ja) * 2000-07-26 2002-02-08 Hitachi Ltd 仮想計算機システムにおける計算機資源の割当て方法および仮想計算機システム
US20020062452A1 (en) 2000-08-18 2002-05-23 Warwick Ford Countering credentials copying
US7272831B2 (en) * 2001-03-30 2007-09-18 Intel Corporation Method and apparatus for constructing host processor soft devices independent of the host processor operating system
JP2004537095A (ja) 2001-04-24 2004-12-09 ヒューレット・パッカード・カンパニー 情報セキュリティシステム
US7318141B2 (en) * 2002-12-17 2008-01-08 Intel Corporation Methods and systems to control virtual machines

Also Published As

Publication number Publication date
WO2004061645A2 (en) 2004-07-22
US20040117539A1 (en) 2004-06-17
AU2003290857A8 (en) 2004-07-29
JP2009054169A (ja) 2009-03-12
US7318141B2 (en) 2008-01-08
KR100847613B1 (ko) 2008-07-21
DE10393920B4 (de) 2009-02-19
DE10393920T5 (de) 2005-12-29
WO2004061645A3 (en) 2006-03-30
AU2003290857A1 (en) 2004-07-29
CN1833225A (zh) 2006-09-13
JP2006516769A (ja) 2006-07-06
TW200416604A (en) 2004-09-01
CN100504789C (zh) 2009-06-24
KR20050085699A (ko) 2005-08-29
TWI273493B (en) 2007-02-11

Similar Documents

Publication Publication Date Title
JP4981006B2 (ja) 仮想計算機を制御する方法及びシステム
KR102592376B1 (ko) 명령 실행 동작을 제어하기 위한 장치 및 방법
JP5812245B2 (ja) ページング可能ゲストをサポートするコンピューティング環境のストレージの管理を容易にするためのコンピュータ可読プログラム・コード・ロジック、方法、およびシステム
CA1304166C (en) Software emulation of bank-switched memory using a virtual dos monitorand paged memory management
US8352670B2 (en) Execute-only memory and mechanism enabling execution from execute-only memory for minivisor
EP3884392A1 (en) Faster access of virtual machine memory backed by a host computing device&#39;s virtual memory
US7162626B2 (en) Use of common language infrastructure for sharing drivers and executable content across execution environments
US20020046305A1 (en) Method for effective binary translation between different instruction sets using emulated supervisor flag and multiple page tables
EP2997477A1 (en) Page table data management
US20150356023A1 (en) Paravirtualization-based interface for memory management in virtual machines
Tang et al. Exploring control flow guard in windows 10
US20060248282A1 (en) Operation region describing a virtual device
JP7445431B2 (ja) 命令の実行を制御する装置および方法
JP2020518910A (ja) 機能の使用を管理するための装置および方法
GB2537760A (en) Computer, and resource scheduling method using hypervisor
WO2002071211A2 (en) Data processor having multiple operating modes
US11755243B2 (en) Apparatus and method for triggering action
TW202340955A (zh) 使用能力約束記憶體存取之技術
Dibble et al. Programming embedded systems: interacting with the embedded platform
KR20240004738A (ko) 캐퍼빌리티를 사용하여 메모리에 대한 액세스를 제약하기 위한 기술
Wang et al. MTX in 32-bit Protected Mode
KR20230170976A (ko) 캐퍼빌리티들을 사용하여 메모리에 대한 액세스를 제약하기 위한 기술
Gareau Embedded x86 Programming: Protected Mode
JP2000194668A (ja) 計算機システム及び同システムに適用される中間コ―ド実行装置並びに中間コ―ド実行方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111101

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120127

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120214

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: 20120321

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120419

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150427

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4981006

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

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