JP2010503115A - 仮想マシン環境におけるゲスト間での情報の共有 - Google Patents

仮想マシン環境におけるゲスト間での情報の共有 Download PDF

Info

Publication number
JP2010503115A
JP2010503115A JP2009527468A JP2009527468A JP2010503115A JP 2010503115 A JP2010503115 A JP 2010503115A JP 2009527468 A JP2009527468 A JP 2009527468A JP 2009527468 A JP2009527468 A JP 2009527468A JP 2010503115 A JP2010503115 A JP 2010503115A
Authority
JP
Japan
Prior art keywords
guest
address
virtual
memory
memory address
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
JP2009527468A
Other languages
English (en)
Other versions
JP5214611B2 (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 JP2010503115A publication Critical patent/JP2010503115A/ja
Application granted granted Critical
Publication of JP5214611B2 publication Critical patent/JP5214611B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/656Address space sharing

Abstract

仮想マシン環境におけるゲスト間の情報を共有する装置、方法及びシステムの実施例を記載している。一実施例では、装置は、仮想マシン制御ロジック、実行装置及びメモリ管理装置を含む。仮想マシン制御ロジックは、ホスト及びそのゲスト間で装置の制御を移管する。実行装置は、一ゲストの仮想アドレス空間における仮想メモリ・アドレスから別のゲストの仮想アドレス空間における仮想メモリ・アドレスに情報を複製する旨の命令を実行する。メモリ管理装置は、仮想メモリ・アドレスを物理メモリ・アドレスに変換する。

Description

本出願は、情報処理の分野に関し、特に、仮想マシン環境におけるメモリ管理の分野に関する。
一般に、情報処理システムにおける仮想化の概念は、1つ又は複数のオペレーティング・システム(それぞれが、「OS」である)それぞれが、システム及びそのリソースに対する完全で直接的なコントロールを有するよう企図されていても、1つ又は複数のOSの複数のインスタンスが単一の情報処理システム上で実行することを可能にする。仮想化は通常、ソフトウェア(例えば、仮想マシン・モニタ、すなわち「VMM」)を使用して、VM(「仮想化環境」)間での物理リソースの共有及び/又は割当などの仮想化ポリシーを実現するためのシステム環境をVMMが維持する一方で、OSが完全かつ直接に制御することができる1つ又は複数の仮想プロセッサを含む仮想リソースを有する「仮想マシン」(「VM」)を各OSに提示することによって実現される。VM上で実行する各OS及び何れかの他のソフトウェアは、「ゲスト」又は「ゲスト・ソフトウェア」として表される一方、「ホスト」又は「ホスト・ソフトウェア」は、仮想化環境の外部で実行し、仮想化環境を知っていても知らなくてもよい、VMMなどのソフトウェアである。
情報処理システムにおける物理プロセッサは、例えば、仮想化環境に入って、VMにおける仮想プロセッサ(すなわち、VMMによって科される制約下の物理プロセッサ)上でゲストを実行させる旨の命令をサポートすることにより、仮想化をサポートすることができる。仮想化環境では、特権化されたレジスタ又はリソースにアクセスする旨の外部の割り込み又は試行などの特定のイベント、動作、及び状況を「傍受する」ことができる、すなわち、例えば、仮想化ポリシーを実現するようVMMが動作し得る仮想化環境をプロセッサに出させることができる。物理プロセッサは、仮想化環境を維持する旨の他の命令もサポートすることができ、物理プロセッサの仮想化機能を示すか、又は制御するメモリ又はレジスタ・ビットを含み得る。
仮想化環境をサポートする物理プロセッサは、仮想メモリ・アドレスを物理メモリ・アドレスに変換するメモリ管理装置を含み得る。VMMは、メモリ管理装置に対する最終的なコントロールを維持して一ゲストのメモリ空間を別のゲストのメモリ空間から保護することが必要であり得る。したがって、ゲスト間での情報の共有に対する従来の手法は、ゲストが情報を別のゲストに向けて複製しようとする都度、ゲストからVMMへのプロセッサの制御の移管及びVMMからゲストへの制御の別の再移管が行われるようにVMMが情報を一ゲストのメモリ空間から別のゲストのメモリ空間に複製することが可能であるように各ゲストのメモリ空間の部分をVMMのメモリ空間に付加することを含んでいる。通常、ゲストからVMMへの制御の前述の移管はそれぞれ、ゲスト状態の保存及びホスト状態のロードを含み、VMMからゲストへの制御の前述の移管はそれぞれ、ホスト状態の保存及びゲスト状態のロードを含む。
本発明は、例示であり、添付図面における例証でない。
仮想化アーキテクチャにおける本発明の実施例を示す図である。 仮想マシン環境におけるゲスト間の情報を共有する方法における本発明の実施例を示す図である。
仮想マシン環境におけるゲスト間の情報を共有する装置、方法及びシステムの実施例を以下に説明する。本明細書では、数多くの具体的な詳細(構成要素及びシステムの構成など)を記載して、本発明のより詳細な理解をもたらし得る。しかし、前述の具体的な詳細なしで本発明を実施することができるということを当業者は認識するであろう。更に、本発明を不必要に分かりにくくすることがないよう、周知の特定の構造、回路等は詳細に示していない。
仮想マシン環境の性能は、ゲストとホストとの間の制御の移管の数を削減することにより、向上させることができる。本発明の実施例を使用して、一ゲストから別のゲストに情報を複製するために必要な前述の移管の数を削減することができる。したがって、ゲストが情報を別のゲストに複製しようとする都度、ゲストからVMMへのプロセッサの制御の移管、及びVMMからゲストへの制御の別の再移管が行われる仮想マシン環境に対して性能が向上し得る。性能は、ゲスト・メモリの共有部分を含めるようVMMのメモリ管理データ構造を修正することを必要としないことにより、更に向上させることができる。
図1は、仮想化アーキテクチャ100における本発明の実施例を示す。図1は、仮想化アーキテクチャにおいて実施された本発明を示しているが、本発明は、他のアーキテクチャ、システム、プラットフォーム、又は環境においても実施することができる。例えば、本発明の実施例は、マイクロカーネル又は分解オペレーティング・システム環境におけるアプリケーション間の情報の共有をサポートすることができる。
図1では、ベア・プラットフォーム・ハードウェア110は、何れかのOS又はVMMソフトウェアを実行することができる何れかのデータ処理装置であり得る。例えば、ベア・プラットフォーム・ハードウェアは、パソコン、メインフレーム・コンピュータ、ポータブル・コンピュータ、ハンドヘルド装置、セットトップ・ボックス、サーバ、又は何れかの他のコンピューティング・システムのものであり得る。ベア・プラットフォーム・ハードウェア110は、プロセッサ120及びメモリ130を含む。
プロセッサ120は、汎用マイクロプロセッサ(インテル(登録商標)社ペンティアム(登録商標)プロセッサ・ファミリ、アイテニアム(登録商標)プロセッサ・ファミリ、あるいは、インテル(登録商標)社からの他のプロセッサ・ファミリにおけるプロセッサ、あるいは、別の会社からの別のプロセッサにおけるプロセッサなど)、又は、ディジタル信号プロセッサ若しくはマイクロコントローラを含む何れかのタイプのプロセッサであり得る。図1は、前述の一プロセッサ120のみを示すが、ベア・プラットフォーム・ハードウェア110は、何れかの数の実行コアをそれぞれが有する何れかの数のマルチコア・プロセッサ、及び何れかの数のスレッドをそれぞれが有する何れかの数のマルチスレッド・プロセッサを含む何れかの数のプロセッサを含み得る。
メモリ130は、静的若しくは動的ランダム・アクセス・メモリ、半導体ベースのリードオンリ・メモリ又はフラッシュ・メモリ、磁気若しくは光ディスク・メモリ、プロセッサ120によって読み出し可能な何れかの他のタイプの媒体、又は前述の媒体の何れかの組合せであり得る。プロセッサ120及びメモリ130、1つ若しくは複数のバス、ポイントツーポイント、又は他の有線若しくは無線の接続による直接手法又は間接手法などの何れかの既知の手法により、互いに結合又は通信することができる。ベア・プラットフォーム・ハードウェア110は、何れかの数の更なる装置又は接続も含み得る。
ベア・プラットフォーム・ハードウェア100に加えて、図1は、VMM140、VM150及び160、ゲスト・オペレーティング152及び162、並びに、ゲスト・アプリケーション154、155、164、及び165を示す。
VMM140は、VM(すなわち、ベア・プラットフォーム・ハードウェア110の抽象化)をゲストに向けて提示するか、又は、他の方法で、VMを生成し、管理し、仮想化ポリシーを実現するためにベア・プラットフォーム・ハードウェア110上にインストールされるか、上記ベア・プラットフォーム・ハードウェア110にアクセス可能な何れかのソフトウェア、ファームウェア、又はハードウェアであり得る。他の実施例では、ホストは、何れかのVMM、ハイパバイザ、OSや、ベア・プラットフォーム・ハードウェア110を制御することができる他のソフトウェア、ファームウェア又はハードウェアであり得る。ゲストは、何れかのOS、何れかのVMM(VMM140の別のインスタンスを含む)、何れかのハイパバイザ、又は何れかのアプリケーション若しくは他のソフトウェアであり得る。
各ゲストには、VMにおいて提示されたプラットフォーム及びプロセッサのアーキテクチャにより、ベア・プラットフォーム・ハードウェア110の物理リソース(プロセッサ及びプラットフォーム・レジスタ、メモリ、及び入出力装置など)へのアクセスが想定される。図1は、2つのVM150及び160を示し、ゲストOS152並びにゲスト・アプリケーション154及び155はVM150上にインストールされており、ゲストOS162、並びにゲスト・アプリケーション164及び165はVM160上にインストールされている。図1は、2つのVM、及びVM毎の2つのアプリケーションのみを示しているが、本発明の範囲内で、何れの数のVMも生成することができ、何れの数のアプリケーションも各VM上で実行させることができる。
ゲストによってアクセスすることが可能なリソースは、「特権的」又は「非特権的」リソースとして分類することができる。特権的リソースの場合、VMM140は、前述のリソースに対する最終的なコントロールを維持する一方で、ゲストによって望まれる機能を容易にする。非特権的リソースは、VMM140によって制御されなくてよく、ゲストによって直接アクセスすることができる。
更に、各ゲストOSは種々のイベント(例外(例えば、ページ・フォールト、一般的な保護障害)、割り込み(例えば、ハードウェア割り込み、ソフトウェア割り込み)、及びプラットフォーム・イベント(例えば、初期化及びシステム管理割り込み))を扱うことが想定される。前述の例外、割り込み、及びプラットフォーム・イベントは、本明細書及び特許請求の範囲では、併せて、かつ個々に「仮想化イベント」として表される。前述の仮想化イベントの一部は、VM150及び160の適切な動作、ゲストからのVMM140の保護、及び互いからのゲストの保護を確実にするためにVMM140によって処理しなければならないので、「特権的イベント」として表される。
何れかの特定の時点では、プロセッサ120は、VMM140又は何れかのゲストからの命令を実行することができ、VMM140又はゲストは、プロセッサ120上で実行するか、又はプロセッサ120を制御し得る。特権的イベントが生起したか、又はゲストが特権的リソースにアクセスしようとした場合、制御をゲストからVMM140に移管することができる。ゲストからVMM140への制御の移管は、本明細書及び特許請求の範囲では「VMイグジット」として表される。適切な、リソースへのアクセスの容易化後、又は、イベントの処理後、VMM140は制御をゲストに戻し得る。VMM140からゲストへの制御の移管は、本明細書及び特許請求の範囲では「VMエントリ」として表す。
プロセッサ120は、ホスト(VMM140など)、ゲスト(ゲスト・オペレーティング・システム152及び162、並びにゲスト・アプリケーション154、155、164及び165など)間でのプロセッサ120の制御の移管を含む、仮想化をサポートするための仮想マシン制御ロジック170を含む。仮想マシン制御ロジック170は、マイクロコード、プログラム可能なロジック、ハードコードされたロジック、又はプロセッサ120内の何れかの他の形態の制御ロジックであり得る。他の実施例では、仮想マシン制御ロジック170は、メモリ130などの、プロセッサによって読み出し可能な媒体内、若しくはアクセス可能な何れかの構成要素内、又はプロセッサ内の、プロセッサ抽象化層などの何れかの形態のハードウェア、ソフトウェア、又はファームウェアにおいて実現することができる。
仮想マシン制御ロジック170は、ホストからゲストにプロセッサ120の制御を移管するためのVMエントリ・ロジック(すなわち、VMエントリ)、及びゲストからホストにプロセッサ120の制御を移管するためのVMイグジット・ロジック172(すなわち、VMイグジット)を含む。特定の実施例では、制御は、ゲストからゲストに、又はホストからホストに移管することもできる。例えば、階層化された仮想化をサポートする実施例では、プロセッサ120上のVM上で実行するソフトウェアは、ゲスト及びホスト(例えば、VM上で実行するVMMは、そのVMを制御するVMMへのゲストであり、制御するVM上で実行するゲストに対するホストである)であり得る。MMU190は、システム内の物理メモリ(例えば、メモリ130)のアドレス空間よりも大きな、データ及びコードを記憶し、データ及びコードにアクセスするためのアドレス空間を有する、VMにおいて実行するゲスト・ソフトウェア、及びVM外で実行するホスト・ソフトウェアを含むソフトウェアを提供するための、仮想メモリの使用をサポートする。プロセッサ120の仮想メモリ空間は、プロセッサ上で実行するソフトウェアに利用可能なアドレス・ビットの数によってのみ制限され得る一方、プロセッサ120の物理メモリ空間は、メモリ130の容量に更に制限される。MMU190は、必要に応じてメモリ130との間で実行ソフトウェアのコード及びデータを交換するためのメモリ管理手法(この実施例では、ページング)をサポートする。この手法の一部として、ソフトウェアは、プロセッサの物理メモリ空間にアクセスするためにプロセッサが使用し得る第2のアドレスにプロセッサによって変換される仮想アドレスにより、プロセッサの仮想メモリ空間にアクセスすることができる。
よって、MMU190は、変換ロジック191、ページング・ベース・レジスタ192、及び変換ルックアサイド・バッファ(「TLB」)193を含む。変換ロジック191は、ページングなどの何れかの既知のメモリ管理手法により、アドレス変換(例えば、仮想アドレスから物理アドレスへの変換)を行う。本明細書及び特許請求の範囲使用の「仮想アドレス」の語は、論理アドレス又は線形アドレスとして表される何れかのアドレスを含む。前述のアドレス変換を行うために、変換ロジック191は、プロセッサ120、メモリ130に記憶された1つ又は複数のデータ構造、図1に示していない、ベア・プラットフォーム・ハードウェア110における何れかの他の記憶場所、及び/又は前述の構成部分及び場所の何れかの組合せを表す。データ構造は、本発明の実施例によって修正されたような、ペンティアム(登録商標)プロセッサ・ファミリのアーキテクチャによるページ・ディレクトリ及びページ・テーブル、並びに/又は、TLB193などのTLBなどに記憶されたテーブルを含み得る。
ページング・ベース・レジスタ192は、変換ロジック191によって使用されるデータ構造にポインタを記憶するために使用される何れかのレジスタ又は他の記憶場所であり得る。一実施例では、ページング・ベース・レジスタ192は、ペンティアム(登録商標)プロセッサ・ファミリのアーキテクチャにより、ページ・マップ・レベル4ベース・アドレスを記憶するために使用される、PML4ベースとして表されるCR3登録の一部であり得る。
一実施例では、変換ロジック191は、プロセッサ120によって実行される対象の命令によって供給される線形アドレスを受け取る。変換ロジック191は、ページ・テーブルを含む階層テーブルに対する索引として線形アドレスの一部分を使用してページ・ウォークを行う。ページ・テーブルは、メモリ130内のページのベース・アドレスのフィールドをそれぞれが含むエントリを含む(例えば、ペンティアム(登録商標)プロセッサ・ファミリの拡張メモリ64手法による、ページ・テーブル・エントリのビット39:12)。何れかのページ容量(例えば、4キロバイト)を本発明の範囲内で使用することができる。したがって、メモリ130にアクセスするためにプログラムによって使用される線形アドレスは、メモリ130にアクセスするためにプロセッサ120によって使用される物理アドレスに変換することができる。
線形アドレス及び対応する物理アドレスはTLB193に記憶することができるので、同じ線形アドレスを使用した将来のアクセスに適切な物理アドレスはTLB193において見つけることができ、別のページ・ウォークは必要でない。TLB193の内容は、通常、オペレーティング・システムにより、例えば、ソフトウェア・コンテキスト・スイッチ上で適宜、消去することができる。
仮想マシン環境では、VMM140は、一ゲストのメモリ空間を別のゲストから保護するためにMMU190のリソースに対する最終的なコントロールを有する必要があり得る。したがって、一実施例では、仮想マシン制御ロジック170は、ページング・ベース・レジスタ192又はTLB193の内容を変更するか、又は別の方法でMMU190の動作を修正することを意図した命令をゲストが出した場合にVMイグジットを生じさせるためのロジックを含み得る。VMMは、次いで、仮想マシンがOSに対してそのメモリ管理リソースの完全なコントロールを提供するようにみえる仮想マシン環境とともに、ベア・プラットフォーム・ハードウェア110の正しい動作をもたらすよう、MMU190を、複数の組のページングや他のデータ構造(例えば、VM毎に一組)を維持することが可能である。
別の実施例では、MMU190は、仮想化をサポートするためのハードウェアを含み得る。例えば、変換ロジック191は、前述の通り、ページング・ベース・レジスタ192の内容によって指し示されたデータ構造を使用して線形アドレスを物理アドレスに変換するよう構成することができる。この変換がゲストについて行われた場合、線形アドレスはゲスト線形アドレスとして表され、結果として生じる物理アドレスはゲスト物理アドレスとして表され、第2の変換は、第2のポインタによって指し示される第2のデータ構造を使用してゲスト物理アドレスをホスト物理アドレスに変換するよう行われる。この実施例では、ページング・ベース・レジスタ192及び第1の変換データを仮想マシン上で実行するOSによって維持することができる一方、第2のポインタ及び第2の変換データ構造はVMMによって維持される。第2の変換は、VMエントリによってイネーブルされ、VMイグジットによってディセーブルすることができる。
実行装置180に戻れば、この実施例では、実行装置180は、ホスト又はゲストによって出すことができる命令を実行するよう構成される。前述の命令は、他のゲストと共有する情報にゲストが使用する、TLB193(及び/又は、プロセッサ120又はベア・プラットフォーム・ハードウェア110における別の構造、メモリ130など)の一部を割り当てる旨の命令(「割り当て」命令)、他のゲストと情報を共有するためにゲスト・メモリの一部に登録する(「登録」命令)旨の命令、及び、VMイグジット(「複製」命令)をもたらすことなく、別のゲストとの間で一ゲストが情報を複製する旨の命令を含む。
割り当て命令は、オペランドとしてか、パラメータとしてか、又は、何れかの他の明示的な手法若しくは暗黙的な手法により、要求者識別子(ID)、及びそれに関連付けられたメモリ容量を有し得る。要求者IDは、分解OS環境におけるアプリケーション、又は、仮想マシン環境における仮想マシンに一意の値であり得る。要求者IDは、そのメモリ空間の一部分を共有可能にすることを意図したVM又はアプリケーションを識別し、メモリ容量は、共有可能なメモリ空間の容量(例えば、ページ数)を示す。
割り当て命令は、MMU190の最終的なコントロールを有するエンティティ(この実施例では、VMM140である)によってのみ出すことができる。例えば、割り当て命令が、特権が不十分なゲスト・アプリケーションによって出された場合、無視することができ、十分な特権を有するとの確信を有するゲストOSによって出された場合、VMイグジットをもたらし得る。VMM140による割り当て命令の発出は、そのメモリ空間の一部分を共有可能にする旨の、プログラム・コール又は他のメッセージング・プロトコルによる、ゲストの要求に対する応答であり得る。
実行装置180は、情報共有のために要求側VMに、TLB193内の1つ又は複数のエントリ場所を割り当てさせることにより、この実施例において割り当て命令を実行する。他の実施例では、プロセッサ120又はベア・プラットフォーム・ハードウェア110(例えば、メモリ130)における別個の専用TLB、又は何れかの他の記憶場所又はデータ構造をTLB193の代わりに使用することができる。
情報共有をサポートするために、TLB193は、共有タグを各TLBエントリと、又は、何れかの数のTLBエントリ群と関連付けることを可能にする共有タグ記憶場所194を含み得る。したがって、割り当て命令の実行は、割り当てられたTLBエントリ場所に関連付けられた共有タグを要求者IDの値に設定する工程を含み得る。共有のためにタギングされたTLBエントリは、ソフトウェア・コンテキスト・スイッチ上で消去されるものでない。
割り当て命令の実行は、割り当てられたTLBエントリ場所に関連付けされたセキュアな鍵を、プログラム・コール・リターン又は他のメッセージング・プロトコルにおいて要求者に向けて通信させることもできる。割り当てられたTLBエントリ場所は、プログラム・コール、他のメッセージング・プロトコル、又は何れかの他の手法によってリリースすることができる。
登録命令は、オペランドとしてか、パラメータとしてか、又は何れかの他の明示的手法若しくは暗黙的手法により、所有権情報、及びそれに関連付けられたアクセス情報を有し得る。所有権情報は、要求者IDの形式、又は何れかの他の形式の登録するエンティティの識別情報、及び、共有する対象のページの仮想アドレスの形式、又は何れかの他の形式の、共有する対象のメモリ空間の識別情報を含み得る。アクセス情報は、要求者IDと同様なID値の形式、又は何れかの他の形式の、メモリ空間を共有し得る1つ又は複数のエンティティの識別情報、及び、読出許可及び/又は書込許可などの何れかの所望のアクセス許可を含み得る。登録命令は、対応する割り当て命令によって戻されるセキュアな鍵をそれと関連付けていることもあり得る。
この実施例では、登録命令の実行は、先行して実行された割り当て命令によって、登録するエンティティに向けて、登録命令に関連付けられたセキュアな鍵が出されている旨を検証する工程、割り当てられたTLBエントリ場所及び関連付けられた物理アドレスを識別する工程、及び、割り当てられたTLBエントリ場所における、登録するエンティティによって供給される仮想アドレスを記憶する工程を含み得る。登録命令に関連付けられたアクセス情報は、例えば、要求者IDによって索引化された記憶場所において、後の複製命令が可能である旨を検証するために使用することを可能にする何れかの手法によって記憶することができる。登録するエンティティに要求されていないか、登録するエンティティに、TLBエントリ場所が割り当てられていない場合、登録命令は、セキュアな鍵の検証又はTLBエントリの使用なく、アクセス情報を記憶することによって実行することができる。
複製命令は、オペランドとしてか、パラメータとしてか、又は、何れかの他の明示的な手法若しくは暗黙的な手法によって、関連付けられたソース仮想アドレス、デスティネーション仮想アドレス、及びデスティネーション・エンティティIDを有し得る。デスティネーション・エンティティIDは、要求者IDの形式、又は何れかの他の形式の、アプリケーション及び/又は仮想マシンのIDを含み得る。複製命令のソース・エンティティIDは、複製命令を出すエンティティから示唆され得る。
この実施例では、実行装置180は、対応する登録命令からのアクセス情報の記憶に使用された手法によって複製命令が許可される旨を検証する工程、MMU190にデスティネーション仮想アドレス及びソース仮想アドレスを物理アドレスに変換させる工程、及び、ソース物理アドレスによって識別されるメモリ場所に記憶された情報を、デスティネーション物理アドレスによって識別されるメモリ場所に複製させる工程により、複製命令を実行する。
MMU190は、TLB193に照会して、デスティネーション仮想アドレスについてTLBエントリが登録されているかを判定することにより、デスティネーション仮想アドレスをデスティネーション物理アドレスに変換する。肯定の場合、デスティネーション物理アドレスは、TLB193において見つかる。否定の場合、MMU190は、ページング・ベース・レジスタ192よりもデスティネーションIDに関連付けられたポインタ、又はデスティネーションIDを使用することによって変換して、デスティネーション・エンティティに適切なデータ構造に索引付けし、TLB193が保持することが可能なエントリの数を超えるスケーラビリティを提供する。この実施例では、変換ロジック191は、単一のドメイン・アドレス変換とは違ったふうにこのアドレス変換を行わせ、上記に表す制御機能を行うためのマルチドメイン変換ロジック195を含む。しかし、ページ・ディレクトリ及び/又はページ・テーブル・エントリにおけるステータス、制御、アクセス、又は他のビット若しくはフィールドに基づいたページ・フォールトをもたらすことなどの、一般的にページを保護するためにMMU190によって使用される何れの手法も残り得る。
MMU190は、単一ドメイン・アドレス変換に関して前述したように、ソース仮想アドレスをソース物理アドレスに変換する。したがって、2つの仮想マシン間の複製は、VMイグジットなしで行い、単一のVMの実行コンテクストにおいて複製動作を終了させることを可能にすることができる。本発明の実施例は、複数のVMドメインへのアクセスにより、(複製の代わりに、又は複製に加えて)他の命令又は動作を提供することができる。
図2は、方法200(仮想マシン環境におけるゲスト間の情報を共有する方法)における本発明の実施例を示す。方法の実施例はこの点に限定されないが、図1の仮想化アーキテクチャ100の説明を参照して、図2の方法の実施例を説明する。
図2のボックス210では、プロセッサ120上で実行する第1のゲストは、第2のゲストとの情報の共有を起動させるためのプログラム・コールを行う。ボックス212では、VMイグジットは、第1のゲストからVMM140へプロセッサ120の制御を移管するよう行われる。
ボックス220では、VMM140は前述の通り、割り当て命令を出す。ボックス222では、プロセッサ120は、1つ又は複数のTLBエントリ場所を第1のゲストに割り当てる。ボックス224では、プロセッサ120は、要求者IDを、割り当てられたTLBエントリ場所の共有タグ記憶装置場所に記憶する。ボックス226では、VMMは、セキュアな鍵を第1のゲストに戻す。ボックス228では、VMエントリは、VMM140から第1のゲストにプロセッサ120の制御を移管するよう行われる。
ボックス230では、第1のゲストは、共有するためのページを登録する旨の登録命令を出す。ボックス232では、プロセッサ120は、セキュアな鍵を検証する。ボックス234では、プロセッサ120は、割り当てられたTLBエントリに、ページの仮想アドレスを記憶する。ボックス236では、プロセッサ120は、ページに関連付けられたアクセス情報を記憶する。ボックス238では、何れかの所望のメッセージ転送手法により、第1のゲストは、共有情報(例えば、仮想アドレス、及び共有を容易にするための何れかの他の情報)を第2のゲストに向けて通信する。
ボックス240では、第2のゲストは、共有情報を受信する。ボックス242では、第2のゲストは複製命令を出す。ボックス244では、プロセッサ120は、デスティネーション・アドレスに関連付けられたアクセス情報を検証する。ボックス246では、プロセッサ120は、デスティネーション仮想アドレスをデスティネーション物理アドレスに変換する。ボックス248では、プロセッサ120は、ソース仮想アドレスをソース物理アドレスに変換する。ボックス250では、プロセッサ120は、ソース物理アドレスによって識別されたメモリ場所の内容をデスティネーション物理アドレスによって識別されたメモリ場所に複製する。
本発明の範囲内で、方法200は、別の順序でか、例証されたボックスを省略してか、更なるボックスを加えてか、又は、再配列されたか、省略されたか、若しくは更なるボックスの組合せで行うことができる。例えば、プロセッサ120は、デスティネーション仮想アドレスの変換の前、又は上記変換と同時にソース仮想アドエスを変換することができる。すなわち、ボックス246及び248は再編成することができる。
プロセッサ120、又は本発明の実施例によって企図された何れか他の構成部分、又は構成部分の一部分は、作成、シミュレーションから製造まで種々の段階で設計することができる。設計を表すデータは、いくつかのやり方において設計を表すことができる。まず、シミュレーションにおいて有用であるように、ハードウェアは、ハードウェア記述言語又は別の機能的記述言語を使用して表すことができる。更に、又は、あるいは、論理及び/又はトランジスタ・ゲートを有する、回路レベルのモデルを設計処理の特定の段階で生成することができる。更に、特定の段階における大半の設計は、種々の装置の物理的な配置を表すデータでモデリングすることができるレベルに達している。通常の半導体製造手法が使用される場合、装置配置モデルを表すデータは、集積回路を生産するために使用するマスクの種々のマスク・レイヤ上の種々の特徴の有無を規定するデータであり得る。
設計の何れの表現においても、データは、マシン読み取り可能媒体の何れかの形態に記憶することが可能である。前述の情報を伝送するよう変調又は他の方法で生成される光波若しくは電波、メモリ、又は磁気記憶装置若しくは光記憶装置(ディスクなど)は、マシン読み取り可能媒体であり得る。前述の媒体は何れも、本発明の実施例において使用される設計又は他の情報を「担持」するか、又は「示し」得る。情報を示すか、又は担持する電気的搬送波が、電気信号の複製、バファリング又は再送信が行われる程度に送信される場合、新たな複製が行われる。よって、通信プロバイダ又はネットワーク・プロバイダの行為は、本発明の手法を実施する対象(例えば、搬送波)の複製の作成を構成し得る。
このように、仮想マシン環境におけるゲスト間で情報を共有する装置、方法及びシステムを開示した。特定の実施例を記載し、添付図面に示しているが、前述の実施例は、広い範囲の発明を例証しているに過ぎず、広い範囲の発明を制限するものでなく、本発明は、示し、記載した特定の構造及び構成に限定されるべきでない。本明細書及び特許請求の範囲を検討すると、当業者には、他の種々の修正が思い浮かび得るからである。例えば、本発明の別の実施例では、情報の共有を要求するエンティティは、デスティネーションよりもソースとしての役目を担うメモリ空間に登録し得る。
成長が速く、更なる進展が容易に予見されない前述のような手法の分野では、本願記載の実施例は、明細書及び特許請求の範囲の原理、又は特許請求の範囲記載の範囲から逸脱しない限り、技術の進展を可能にすることによって容易にされる構成及び詳細において容易に修正可能であり得る。

Claims (20)

  1. 装置であって、
    ホスト及び複数のゲストの間で前記装置の制御を移管するための仮想マシン制御ロジックと、
    前記複数のゲストのうちの第2のゲストの仮想アドレス空間における第2の仮想メモリ・アドレスから、前記複数のゲストのうちの第1のゲストの仮想アドレス空間における第1の仮想メモリ・アドレスに情報を複製するための第1の命令を実行するための実行装置と、
    前記第1の仮想メモリ・アドレスを第1の物理メモリ・アドレスに変換し、前記第2の仮想メモリ・アドレスを第2の物理メモリ・アドレスに変換するためのメモリ管理装置とを備える装置。
  2. 請求項1記載の装置であって、前記メモリ管理装置は、第1の仮想メモリ・アドレスの第1の部分、及び前記第1の物理メモリ・アドレスの対応する第1の部分を記憶するための第1の記憶場所を含む装置。
  3. 請求項2記載の装置であって、前記メモリ管理装置は、前記第1の記憶場所を含む変換ルックアサイド・バッファを含む装置。
  4. 請求項2記載の装置であって、前記第1の記憶場所は、前記第1のゲストの識別子を記憶するためのタグ記憶場所を含む装置。
  5. 請求項2記載の装置であって、第1の仮想メモリ・アドレスの第1の部分は第1の仮想ページ番号であり、前記第1の物理メモリ・アドレスの対応する第1の部分は第1の物理ページ番号である装置。
  6. 請求項2記載の装置であって、前記実行装置は更に、前記第1の仮想メモリ・アドレスの第1の部分を前記第1の記憶場所に記憶する旨の第2の命令を実行する装置。
  7. 請求項6記載の装置であって、前記実行装置は更に、前記第1のゲストが、前記第1の仮想メモリ・アドレスの第1の部分を前記第1の記憶場所に記憶するための前記第1の記憶場所を割り当てる旨の第3の命令を実行する装置。
  8. 請求項7記載の装置であって、前記仮想マシン制御ロジックは、前記複数のゲストのうちの一ゲストが前記第3の命令を出そうとしたことに応じて前記ホストに前記装置の制御を移管するためのイグジット・ロジックを含む装置。
  9. 請求項1記載の装置であって、前記メモリ管理装置は、前記第1のゲストの第1のアドレス変換データ構造を使用して前記第1の仮想メモリを変換し、前記第2のゲストの第2のアドレス変換データ構造を使用して前記第2の仮想メモリ・アドレスを変換する装置。
  10. 請求項9記載の装置であって、第1のポインタを前記第1のアドレス変換データ構造に記憶するための第1のベース・アドレス記憶場所を更に備える装置。
  11. 方法であって、
    第1のゲストが、共有メモリ空間に登録する旨の登録命令を出す工程と、
    第2のゲストが、前記第2のゲストのメモリ空間の一部分の内容を前記共有メモリ空間に複製する旨の複製命令を出す工程とを含む方法。
  12. 請求項11記載の方法であって、前記共有メモリ空間を前記第1のゲストに割り当てる旨の割り当てコマンドをホストが出す工程を更に含む方法。
  13. 請求項12記載の方法であって、前記共有メモリ空間に関連付けられたアドレス変換のために変換ルックアサイド・バッファにおけるエントリを割り当てる工程を更に含む方法。
  14. 請求項13記載の方法であって、前記エントリに関連付けられたタグ記憶場所における前記第1のゲストの識別子を前記変換ルックアサイド・バッファに記憶する工程を更に含む方法。
  15. 請求項12記載の方法であって、前記記憶されたメモリ空間に関連付けられたセキュアな鍵を前記第1のゲストに戻す工程を更に含む方法。
  16. 請求項11記載の方法であって、前記共有メモリ空間を識別する第1の仮想メモリ・アドレスを変換ルックアサイド・バッファに記憶する工程を更に含む方法。
  17. 請求項16記載の方法であって、前記共有メモリ空間を識別する第1の物理メモリ・アドレスに前記第1の仮想メモリ・アドレスを変換する工程を更に含む方法。
  18. 請求項17記載の方法であって、前記第2のゲストのメモリ空間の一部分を識別する第2の仮想メモリ・アドレスを変換して、前記第2のゲストのメモリ空間の一部分を識別する第2の物理メモリ・アドレスを生成する工程を更に含む方法。
  19. システムであって、
    第1のゲストと第2のゲストとの間で共有する対象の情報を記憶するためのメモリと、
    プロセッサであって、
    ホスト、前記第1のゲスト、前記第2のゲスト間で前記プロセッサの制御を移管するための仮想マシン制御ロジックと、
    前記第2のゲストの仮想アドレス空間における第2の仮想メモリ・アドレスから、前記第1のゲストの仮想アドレス空間における第1の仮想メモリ・アドレスに情報を複製するための第1の命令を実行するための実行装置と、
    前記第1の仮想メモリ・アドレスを第1の物理メモリ・アドレスに変換し、前記第2の仮想メモリ・アドレスを第2の物理メモリ・アドレスに変換するためのメモリ管理装置と
    を備えるプロセッサとを備えるシステム。
  20. 請求項19記載のシステムであって、前記メモリがダイナミック・ランダム・アクセス・メモリであるシステム。
JP2009527468A 2006-09-22 2007-09-21 仮想マシン環境におけるゲスト間での情報の共有 Expired - Fee Related JP5214611B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/525,980 2006-09-22
US11/525,980 US7490191B2 (en) 2006-09-22 2006-09-22 Sharing information between guests in a virtual machine environment
PCT/US2007/020455 WO2008036390A1 (en) 2006-09-22 2007-09-21 Sharing information between guests in a virtual machine environment

Publications (2)

Publication Number Publication Date
JP2010503115A true JP2010503115A (ja) 2010-01-28
JP5214611B2 JP5214611B2 (ja) 2013-06-19

Family

ID=39200816

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009527468A Expired - Fee Related JP5214611B2 (ja) 2006-09-22 2007-09-21 仮想マシン環境におけるゲスト間での情報の共有

Country Status (7)

Country Link
US (1) US7490191B2 (ja)
JP (1) JP5214611B2 (ja)
CN (2) CN101187902B (ja)
DE (1) DE112007001988T5 (ja)
HK (1) HK1149343A1 (ja)
TW (1) TWI354205B (ja)
WO (1) WO2008036390A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013012196A (ja) * 2011-06-28 2013-01-17 Boeing Co:The ハードウェア抽象化を用いたソフトウェアアプリケーション実行の方法と装置
JP2019114263A (ja) * 2017-12-22 2019-07-11 キーランド テクノロジー カンパニー リミテッド ソフトウェア定義plcの監視及び再構成方法及び装置

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7971104B2 (en) * 2006-10-24 2011-06-28 Shlomi Dolev Apparatus and methods for stabilization of processors, operating systems and other hardware and/or software configurations
US8156503B2 (en) * 2008-02-12 2012-04-10 International Business Machines Corporation System, method and computer program product for accessing a memory space allocated to a virtual machine
WO2009145764A1 (en) * 2008-05-28 2009-12-03 Hewlett-Packard Development Company, L.P. Providing object-level input/output requests between virtual machines to access a storage subsystem
CN101751345B (zh) * 2008-12-10 2012-04-11 国际商业机器公司 在主机中运行客户机的程序的模拟器和模拟方法
US8473644B2 (en) * 2009-03-04 2013-06-25 Freescale Semiconductor, Inc. Access management technique with operation translation capability
US20100228943A1 (en) * 2009-03-04 2010-09-09 Freescale Semiconductor, Inc. Access management technique for storage-efficient mapping between identifier domains
US8719547B2 (en) 2009-09-18 2014-05-06 Intel Corporation Providing hardware support for shared virtual memory between local and remote physical memory
US8806496B2 (en) 2009-09-30 2014-08-12 Intel Corporation Virtualizing a processor time counter during migration of virtual machine by determining a scaling factor at the destination platform
US8831993B2 (en) 2010-03-19 2014-09-09 Novell, Inc. Techniques for sharing virtual machine (VM) resources
US8392628B2 (en) 2010-07-16 2013-03-05 Hewlett-Packard Development Company, L.P. Sharing memory spaces for access by hardware and software in a virtual machine environment
US8997113B2 (en) 2010-09-24 2015-03-31 Intel Corporation Sharing virtual functions in a shared virtual memory between heterogeneous processors of a computing platform
US9804870B2 (en) * 2011-10-28 2017-10-31 Intel Corporation Instruction-set support for invocation of VMM-configured services without VMM intervention
US9317441B2 (en) 2011-12-22 2016-04-19 Intel Cororation Indexed page address translation to reduce memory footprint in virtualized environments
US20140007098A1 (en) * 2011-12-28 2014-01-02 Paul M. Stillwell, Jr. Processor accelerator interface virtualization
US9323533B2 (en) * 2011-12-29 2016-04-26 Intel Corporation Supervisor mode execution protection
US9286245B2 (en) * 2011-12-30 2016-03-15 Intel Corporation Hardware enforced memory access permissions
US8819648B2 (en) 2012-07-20 2014-08-26 International Business Machines Corporation Control flow management for execution of dynamically translated non-native code in a virtual hosting environment
US9736436B2 (en) 2012-07-25 2017-08-15 Echostar Technologies L.L.C. Systems and methods for transponder stacking
US9606818B2 (en) * 2013-03-14 2017-03-28 Qualcomm Incorporated Systems and methods of executing multiple hypervisors using multiple sets of processors
CN103618809A (zh) * 2013-11-12 2014-03-05 华为技术有限公司 一种虚拟化环境下通信的方法、装置和系统
CN106102444B (zh) * 2014-02-10 2020-02-11 克莱米特公司 用于生成共享协作图的方法和系统
US9792222B2 (en) 2014-06-27 2017-10-17 Intel Corporation Validating virtual address translation by virtual machine monitor utilizing address validation structure to validate tentative guest physical address and aborting based on flag in extended page table requiring an expected guest physical address in the address validation structure
US9760496B2 (en) 2014-07-21 2017-09-12 Via Alliance Semiconductor Co., Ltd. Simultaneous invalidation of all address translation cache entries associated with an X86 process context identifier
CN104216801B (zh) * 2014-09-04 2017-06-16 北京联创信安科技股份有限公司 一种面向虚拟化环境的数据复制方法及系统
CN105141694B (zh) * 2015-09-11 2018-10-12 广东微云科技股份有限公司 一种云桌面共享数据的方法及系统
US20170180325A1 (en) * 2015-12-22 2017-06-22 Intel Corporation Technologies for enforcing network access control of virtual machines
US10109099B2 (en) * 2016-09-29 2018-10-23 Intel Corporation Method and apparatus for efficient use of graphics processing resources in a virtualized execution enviornment
US11334379B2 (en) * 2017-02-24 2022-05-17 Kabushiki Kaisha Toshiba Control device
US11194735B2 (en) * 2017-09-29 2021-12-07 Intel Corporation Technologies for flexible virtual function queue assignment
CN110162377A (zh) * 2018-02-14 2019-08-23 华为技术有限公司 一种通信方法和逻辑处理器
CN110392084B (zh) * 2018-04-20 2022-02-15 伊姆西Ip控股有限责任公司 在分布式系统中管理地址的方法、设备和计算机程序产品
CN109240602B (zh) * 2018-08-06 2021-01-15 联想(北京)有限公司 数据存取方法
CN114595164B (zh) * 2022-05-09 2022-08-16 支付宝(杭州)信息技术有限公司 在虚拟化平台中管理tlb高速缓存的方法和装置
CN114791854B (zh) * 2022-05-11 2023-03-24 科东(广州)软件科技有限公司 用户态虚拟机任务的调度方法、装置、设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0512126A (ja) * 1991-07-05 1993-01-22 Hitachi Ltd 仮想計算機のアドレス変換装置及びアドレス変換方法
JPH0822418A (ja) * 1994-07-07 1996-01-23 Mitsubishi Electric Corp 仮想アドレス空間管理装置
JP2004537786A (ja) * 2001-06-08 2004-12-16 ヒューレット・パッカード・カンパニー オペレーティングシステムおよびカスタマイズされた制御プログラムとインタフェースする安全なマシンプラットフォーム
JP2005044363A (ja) * 2003-07-22 2005-02-17 Samsung Electronics Co Ltd 複数のスレッドを同時に処理する装置及び方法
JP2005529401A (ja) * 2002-06-07 2005-09-29 インテル コーポレイション システム管理命令を再命令すること及び仮想マシンコンテナを生成することによる信頼性のないシステム管理コードに対する保護のためのシステム及び方法
JP2006024207A (ja) * 2004-06-28 2006-01-26 Intel Corp ゲストソフトウェアの特権レベルに基づく1つの仮想マシンモニタへの移行の支援
JP2006252554A (ja) * 2005-03-08 2006-09-21 Microsoft Corp 仮想マシン環境内でのゲスト物理アドレスの仮想化の方法およびシステム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
DE69429777T2 (de) * 1993-09-30 2002-10-17 Apple Computer System zur dezentralen massenspeichersteuerung eines rechners mit virtuellem speicher
US5555385A (en) * 1993-10-27 1996-09-10 International Business Machines Corporation Allocation of address spaces within virtual machine compute system
US5621912A (en) * 1994-12-29 1997-04-15 International Business Machines Corporation Method and apparatus for enabling monitoring of guests and native operating systems
US6029237A (en) * 1997-10-08 2000-02-22 Dell Usa, L.P. Method for simulating the presence of a diskette drive in a NetPC computer that contains only a hard disk drive
US6453392B1 (en) * 1998-11-10 2002-09-17 International Business Machines Corporation Method of and apparatus for sharing dedicated devices between virtual machine guests
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
US6961806B1 (en) * 2001-12-10 2005-11-01 Vmware, Inc. System and method for detecting access to shared structures and for maintaining coherence of derived structures in virtualized multiprocessor systems
US7257811B2 (en) * 2004-05-11 2007-08-14 International Business Machines Corporation System, method and program to migrate a virtual machine
US20080104586A1 (en) * 2006-10-27 2008-05-01 Microsoft Corporation Allowing Virtual Machine to Discover Virtual Status Thereof

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0512126A (ja) * 1991-07-05 1993-01-22 Hitachi Ltd 仮想計算機のアドレス変換装置及びアドレス変換方法
JPH0822418A (ja) * 1994-07-07 1996-01-23 Mitsubishi Electric Corp 仮想アドレス空間管理装置
JP2004537786A (ja) * 2001-06-08 2004-12-16 ヒューレット・パッカード・カンパニー オペレーティングシステムおよびカスタマイズされた制御プログラムとインタフェースする安全なマシンプラットフォーム
JP2005529401A (ja) * 2002-06-07 2005-09-29 インテル コーポレイション システム管理命令を再命令すること及び仮想マシンコンテナを生成することによる信頼性のないシステム管理コードに対する保護のためのシステム及び方法
JP2005044363A (ja) * 2003-07-22 2005-02-17 Samsung Electronics Co Ltd 複数のスレッドを同時に処理する装置及び方法
JP2006024207A (ja) * 2004-06-28 2006-01-26 Intel Corp ゲストソフトウェアの特権レベルに基づく1つの仮想マシンモニタへの移行の支援
JP2006252554A (ja) * 2005-03-08 2006-09-21 Microsoft Corp 仮想マシン環境内でのゲスト物理アドレスの仮想化の方法およびシステム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013012196A (ja) * 2011-06-28 2013-01-17 Boeing Co:The ハードウェア抽象化を用いたソフトウェアアプリケーション実行の方法と装置
JP2019114263A (ja) * 2017-12-22 2019-07-11 キーランド テクノロジー カンパニー リミテッド ソフトウェア定義plcの監視及び再構成方法及び装置
US10877455B2 (en) 2017-12-22 2020-12-29 Kyland Technology Co., Ltd. Method and apparatus for monitoring and reconstructing a software-defined PLC

Also Published As

Publication number Publication date
DE112007001988T5 (de) 2009-06-18
JP5214611B2 (ja) 2013-06-19
WO2008036390A1 (en) 2008-03-27
TW200832135A (en) 2008-08-01
CN101187902A (zh) 2008-05-28
TWI354205B (en) 2011-12-11
CN101187902B (zh) 2010-06-16
CN101872328B (zh) 2013-06-19
HK1149343A1 (en) 2011-09-30
US7490191B2 (en) 2009-02-10
US20080077765A1 (en) 2008-03-27
CN101872328A (zh) 2010-10-27

Similar Documents

Publication Publication Date Title
JP5214611B2 (ja) 仮想マシン環境におけるゲスト間での情報の共有
JP5735070B2 (ja) パーティション分割されたシステムにおいて、デバイスがメモリにアクセスするための、ゲスト・アドレスからホスト・アドレスへの変換
US8661181B2 (en) Memory protection unit in a virtual processing environment
JP5038907B2 (ja) 仮想マシン環境のアドレス変換をサポートするための方法と装置
US10157146B2 (en) Local access DMA with shared memory pool
US9355262B2 (en) Modifying memory permissions in a secure processing environment
JP4668166B2 (ja) ゲストがメモリ変換されたデバイスにアクセスする方法及び装置
US7937534B2 (en) Performing direct cache access transactions based on a memory access data structure
US7383374B2 (en) Method and apparatus for managing virtual addresses
US8316211B2 (en) Generating multiple address space identifiers per virtual machine to switch between protected micro-contexts
US20140108701A1 (en) Memory protection unit in a virtual processing environment
US8560806B2 (en) Using a multiple stage memory address translation structure to manage protected micro-contexts
US20080040565A1 (en) Method and apparatus for supporting immutable memory
US9684605B2 (en) Translation lookaside buffer for guest physical addresses in a virtual machine
US20050132365A1 (en) Resource partitioning and direct access utilizing hardware support for virtualization
US8549254B2 (en) Using a translation lookaside buffer in a multiple stage memory address translation structure to manage protected microcontexts
US9875132B2 (en) Input output memory management unit based zero copy virtual machine to virtual machine communication
US10430221B2 (en) Post-copy virtual machine migration with assigned devices
US20070220231A1 (en) Virtual address translation by a processor for a peripheral device
US20210334220A1 (en) Memory access control

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121016

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130107

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130227

R150 Certificate of patent or registration of utility model

Ref document number: 5214611

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20160308

Year of fee payment: 3

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