JP4530182B2 - プロセッサ、メモリ装置、処理装置及び命令の処理方法 - Google Patents

プロセッサ、メモリ装置、処理装置及び命令の処理方法 Download PDF

Info

Publication number
JP4530182B2
JP4530182B2 JP2008045585A JP2008045585A JP4530182B2 JP 4530182 B2 JP4530182 B2 JP 4530182B2 JP 2008045585 A JP2008045585 A JP 2008045585A JP 2008045585 A JP2008045585 A JP 2008045585A JP 4530182 B2 JP4530182 B2 JP 4530182B2
Authority
JP
Japan
Prior art keywords
instruction
environment
buffering
guest
condition
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
JP2008045585A
Other languages
English (en)
Other versions
JP2009205324A (ja
Inventor
洋介 岩松
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2008045585A priority Critical patent/JP4530182B2/ja
Priority to US12/391,601 priority patent/US8732721B2/en
Publication of JP2009205324A publication Critical patent/JP2009205324A/ja
Application granted granted Critical
Publication of JP4530182B2 publication Critical patent/JP4530182B2/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
    • 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

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)
  • Executing Machine-Instructions (AREA)

Description

本発明は、コンピュータのリソースを用いて実現する仮想マシンに関する。詳しくは、仮想マシンモニタを提供する処理装置の処理及び構造に関する。
仮想マシンモニタ(VMM:Virtual Machine Monitor)は、プラットフォームハードウェア上で動作し、一つまたは複数の仮想マシン(VM:Virtual Machine)を同時に実行することができる。仮想マシンは、ソフトウェアによる論理的なプラットフォームであり、ゲストオペレーティングシステムやゲストアプリケーション(以下まとめてゲストと記載する)を動作させることが可能である。
仮想マシン技術において、プロセッサを仮想化する方法には、エミュレーションと直接実行がある。エミュレーションは、ゲストの命令を逐次変換または予めバイナリ変換して実行する。直接実行は、ゲストの命令をプロセッサ上で直接実行する。直接実行は、ゲストVMの命令をホストVMMより低い特権モードで実行したり、システム・リソースの状態や動作モード等を参照または変更するセンシティブ命令については、ホストVMMが命令をトラップして状態変化をエミュレートしたりする。一般に、直接実行を行なう方が、エミュレーションより高速に動作する。
関連する技術としては、特許文献1ないし特許文献2に記載された技術が挙げられる。
特許文献1には、直接実行を行なう仮想マシン技術において、ゲストが発する特権命令(特権モードを要する命令)をVMMで取得し(トラップ)、逐次、合成命令を生成して特権違反の発生を抑制しつつ、合成命令によって特権モードへの切り替えを行い、仮想化への悪影響を抑える技術が開示されている。
特許文献2に記載されているプロセッサ装置では、VMの実行環境用に仮想マシン制御構造(VMCS)を定義し、VMCSの情報に応じてゲスト環境とホスト環境を切り替える技術が開示されている。
特開2005−122711号公報 特開2007−35045号公報
しかしながら、ゲストの命令をプロセッサで直接実行する場合、命令のトラップと特権モードの切り替えが頻繁に生じると、切り替えに伴うオーバーヘッドの増加によって、プロセッサの性能が低下するという問題がある。
これは、通常の命令に比べ、トラップしてモードの切り替えを行う命令は、オーバーヘッドが大きいためである。例えば、Intel社(登録商標)の提唱するIntel Virtualization TecnologyをサポートするPentium(登録商標)4プロセッサの場合、ホストVMMからゲストVMに制御を移行するVMEntryやゲストVMからホストVMMに制御を移行するVMExitには、しばしば約2000サイクルを要する。
このモードに切り替えによる性能低下の問題に対する1つの解決策として、ゲストオペレーティングシステムのセンシティブ命令を、トラップを生じさせない命令に書き換える方法がある。書き換えには、静的に書き換える方法と実行時に動的に書き換える方法がある。静的に書き換える方法の場合、予めソースコードまたはバイナリに対する修正の必要が生じるという問題がある。また、ホストVMMが動的に書き換える場合、書き換えの実行に伴う新たな処理が発生し、性能が低下するという問題がある。
モードの切り替えによる性能劣化の問題に対するもう1つの解決策として、ゲストがセンシティブ命令を実行しようとした場合、VM環境の退出を行うかどうかを、VM制御構造体の条件フラグ等で設定する方法がある。
特許文献2に記載されているプロセッサ装置では、条件に合うと判定した場合は必ずVM環境の退出を行わなければならず、モードの切り替えによる性能低下の効果は十分ではない。
即ち、特許文献1ないし特許文献2のプロセッサは、ゲスト仮想マシンを実行している時に、システム・リソースの状態や動作モードに依存するセンシティブ命令が実行された場合、ゲスト仮想マシンの実行を停止しホスト仮想マシンモニタへ制御を移行させていたため、ゲストからホストへの制御の移行が頻繁に発生し、処理速度が低下するという問題があった。
本発明は、上記課題及び問題に鑑み成されたものであり、ゲストVMからホストVMへの制御の移行の回数を低減し性能を改善するプロセッサを提供することを目的とする。
本発明のプロセッサは、ゲストからの命令であるゲスト命令を取得し、トラップの判定処理及びVM環境の退出処理を行うVMトラップロジックと、前記ゲスト命令を取得し、バッファリングの判定処理と命令保存処理を行うバッファリングロジックとを備えることを特徴とする。
本発明のメモリ装置は、処理装置に設けられるメモリ装置であって、メモリ上の構造体に、ゲストからの命令のバッファリングを判定する条件であるバッファリング条件を記憶することを特徴とする。
本発明によれば、ゲストVMからホストVMMへの制御の移行の回数を低減し性能を改善する処理装置を提供できる。
本発明の実施形態を図1ないし図3に基づいて説明する。
図1は、実施形態の仮想化アーキテクチャーを示すブロック図である。
本実施形態の仮想化アーキテクチャーは、プラットフォームハードウェア110、仮想マシンモニタ(VMM)140、及び、VMM上で動作する仮想マシン(VM)150で構成される。以降VMM及びVMを使用する。
プラットフォームハードウェア110は、プロセッサ120とメモリ130を含む。プロセッサ120は、命令を実行する命令実行ロジック121、VMトラップロジック122及びバッファリングロジック123を備えている。また、メモリ130には、VM構造体131とバッファ構造体132が配置される。
VMM140は、プラットフォームハードウェア110であるプロセッサ120及びメモリ130等のハードウェア資源を用い、VM150を実行可能とする。
VM150は、仮想的なOS(Operating System)実行環境を提供し、ゲストOS151やゲストAPP152が動作する。
図2は、プラットフォームハードウェアを示すブロック図である。
VMトラップロジック122は、ゲストからの命令であるゲスト命令を受けて、トラップの判定及びVM環境の退出を行うロジックである。VMトラップロジック122には、判定部211、条件記憶部212、VM退出処理部213が含まれる。
判定部211は、ゲスト命令を受けて、トラップを行うかどうかの判定を実行する。条件記憶部212は、トラップの条件であるメモリ130上のVM構造体131の内容を読み取り、記憶するロジックである。VM退出処理部213は、判定部211でトラップを行うと判定した場合に、VM環境の退出処理を行う。
バッファリングロジック123は、VMトラップロジック122でトラップの判定を受けたゲスト命令について、バッファリングを行うかどうかの判定と命令の保存を行うロジックである。バッファリングロジック123には、判定部221、条件記憶部222、命令保存処理部223が含まれる。尚、ロジックは、マイクロコードやプログラムを用いるプログラマブルロジック、ハードコードロジックの何れで実現しても良い。
判定部221は、トラップされたゲスト命令を受けて、バッファリングを行うかどうかの判定を実行する。条件記憶部222は、バッファリングの条件であるメモリ130のバッファリング構造体132の内容を読み取り、記憶するロジックである。命令保存処理部223は、バッファリングを行うと判定された場合に、命令の保存処理を実施する。
VM構造体131は、VMコンテキスト241、VMトラップ条件242、バッファ構造体アドレス243等を含むメモリ上の構造である。VM構造体131は、VMM140上で動作するVM150の数、あるいは仮想CPUの数に応じて複数存在する。
VMコンテキスト241は、VM150の状態を示すデータ構造であり、レジスタの値やその他のCPU状態を格納する。VMトラップ条件242は、VM環境でゲスト命令を実行している時に、命令を直接実行するかトラップするかを判定するための条件を示すデータ構造である。条件には、命令の種類、命令によってアクセスされるレジスタやアドレス範囲等が複数設定される。バッファ構造体アドレス243は、VM構造体131に関連するバッファのメモリアドレスや範囲が記録されるデータ構造である。
バッファ構造体132(バッファリング構造体)は、バッファリング条件251とバッファアドレス252の組を持つ構造である。条件とアドレスの組は、一つのバッファ構造体中に複数存在しても良い。
バッファリング条件251は、VM環境でゲスト命令を実行してトラップを行なう場合に、バッファリングを実施してVM環境を維持するか、VM環境の退出を実施するかを判定するための条件を示すデータ構造である。条件は、VMトラップ条件と同様に条件を設定される。バッファアドレス252は、命令を格納するバッファ260のメモリアドレスや範囲が記録されるデータ構造である。
バッファ260は、バッファリング条件に合う命令を保存するためのメモリ領域である。メモリ領域に保存するレコードには、命令、オペランド、命令によってアクセスされるレジスタやアドレスの値、エラーの理由等が含まれる。
このような構成において、ゲストVMからホストVMへの制御の移行の回数を低減し性能を改善する。
次に、実施形態のシステムの動作を示し、本発明を説明する。
図3は、実施形態のシステムの動作を示すフローチャートである。図3では、VMM140からVM150へ制御を移行する場合のプロセッサ120の動作を示す。
プロセッサ120は、VMM140からVM150へ制御を移行する命令を受け取る(ステップS301)。
次にプロセッサ120は、メモリ130上のVM構造体131を検査し、VMトラップ条件242を条件記憶部212に読み込む(ステップS302)。
プロセッサ120は、メモリ130上のバッファリング構造体132を検査し、バッファリング条件251とバッファアドレス252を条件記憶部222に読み込む(ステップS303)。
条件の読み込み終了後、プロセッサ120はモードを切り替え、VM150へと制御を移行する(ステップS304)。
VM環境へ移行後の、プロセッサ120の命令実行の動作を以下に述べる。
まず、プロセッサ120は、ゲストの1命令をメモリ130から取得する(読み込む)(ステップS305)。
プロセッサ120は、VMトラップロジック122の判定部211を用い、ゲストの1命令と条件記憶部212に保持されたVMトラップ条件242とを比較し、トラップを発生するかどうかの判定を行う(Sステップ306)。
プロセッサ120は、命令がVMトラップ条件242に合致しなかった場合、命令実行ロジック121を用いて、ゲストの1命令を実行する(ステップS307)。
プロセッサ120は、命令がVMトラップ条件242に合致した場合、バッファリングロジック123の判定部221を用いて、ゲストの1命令と条件記憶部222に保持されたバッファリング条件とを比較し、バッファリングを行うかどうかの判定を行う(ステップS308)。
プロセッサ120は、命令がバッファリング条件に合致しなかった場合、VM退出処理部213を用いて、VM状態の保存等の処理を行い、モードを切り替えてVM環境を退出し、VMMへ制御を移行する(ステップS209)。
プロセッサ120は、命令がバッファリング条件に合致した場合、命令保存処理部223を用いて、指定されたバッファ260の領域へ、命令、オペランド、命令によってアクセスされるレジスタやアドレスの値、エラーの理由等を書き込む(ステップS310)。
ゲストの1命令の実行(ステップS307)、あるいはバッファへの命令の書き込み(ステップS310)を行った後は、プロセッサ120は、再びゲストの1命令の読み込み(ステップ305)の処理を行う。以下、VM環境の退出(ステップS309)が起こるまで同様の処理を繰り返す。
VM環境を退出した後、プロセッサ120は、VMM140に制御を移行する。VMM140は、バッファに保存された命令の内容を読み取り、次にゲストVM150に制御を移行する時に継続して動作できるよう、エミュレーションやログ保存等の適切な処理を行う。
このように動作することによって、ゲスト仮想マシン(VM)を実行している時に、ホスト仮想マシンモニタ(VMM)へ制御を移行させることなく一部の命令をバッファリング可能とできる。
このバッファリングの動作を可能とすることで、プロセッサが命令をトラップしてVM環境の退出を起こす前に、退出を実行するかバッファリングを行うかを判定可能とし、必要に応じてバッファリングを行うことで、ゲストからホストへの制御の移行の回数が低減される。この為、ゲストからホストへの不必要な制御の移行の回数が低減れ、システムの処理性能が向上する。
即ち、ゲストVMからホストVMMへの制御の移行の回数を低減し性能を改善できる。
本発明の別の実施形態を図4及び図5に基づいて説明する。別の実施形態の説明では、図1ないし図3に基づいて説明した実施形態と同一の部分は同一の符号で示し、説明も省略する。
図4は、別の実施形態のプラットフォームハードウェアを示すブロック図である。図4に示す別の実施形態は、上述した実施形態と異なり、プロセッサ120に変えてプロセッサ320が設けられている。また、プロセッサ320には、VMトラップロジック122に変えてVMトラップロジック322、バッファリングロジック123に変えてバッファリングロジック323が設けられている。また、バッファリングロジック323には、ゲストからのゲスト命令をバッファリングしるか判定する判定部421が設けられている。VMトラップロジック322には、バッファリングされたゲスト命令をトラップするか判定する判定部411が設けられている。
このような構成において、プロセッサ320は、ゲスト命令を先にバッファリングロジック323の判定部421に入力し、その後VMトラップロジック322の判定部411に処理が移行する。
次に、別の実施形態のシステムの動作を示し、本発明を説明する。
図5は、別の実施形態のシステムの動作を示すフローチャートである。図5では、VMM140からVM150へ制御を移行する場合のプロセッサ320の動作を示す。
図5のステップS501〜S504で示されるプロセッサ320の動作は、図3のステップS301〜S304で示されるプロセッサ120の動作と同一のため、詳細な説明を省略する。
プロセッサ320は、VMM140からVM150へ制御を移行する命令を受け、メモリ130上のVM構造体131を検査し、VMトラップ条件242を条件記憶部212に読み込むと共に、メモリ130上のバッファリング構造体132を検査し、バッファリング条件251とバッファアドレス252を条件記憶部222に読み込む。条件の読み込み終了後、プロセッサ320はモードを切り替え、VM150へと制御を移行する(ステップS501〜ステップS504)。
VM環境へ移行後の、プロセッサ320の命令実行の動作を以下に述べる。
まず、プロセッサ320は、ゲストの1命令をメモリ130から読み込む(ステップS505)。
プロセッサ320は、バッファリングロジック323の判定部421を用い、ゲストの1命令と条件記憶部222に保持されたバッファリング条件251とを比較し、バッファリングを行うかどうかの判定を行う(ステップS506)。
プロセッサ320は、命令がバッファリング条件に合致しなかった場合、VMトラップロジック122の判定部211を用いて、ゲストの1命令と条件記憶部212に保持されたVMトラップ条件242とを比較し、トラップを発生する否かの判定を行う(ステップS507)。
プロセッサ320は、命令がVMトラップ条件に合致した場合、VM退出処理部213を用いて、VM状態の保存等の処理を行い、モードを切り替えてVM環境を退出し、VMMへ制御を移行する(ステップS508)。
プロセッサ320は、命令がVMトラップ条件に合致しなかった場合、命令実行ロジック121を用いて、ゲストの1命令を実行する(ステップS509)。
ステップS506において命令がバッファリング条件に合致した場合、プロセッサ320は、命令保存処理部223を用いて、指定されたバッファ260へ、命令、オペランド、命令によってアクセスされるレジスタやアドレスの値、エラーの理由等を書き込む(ステップS510)。
プロセッサ320は、バッファリングロジック123の判定部221を用いて、命令を実行するかどうかの判定を行う(ステップS511)。尚、命令を実行するかどうかの条件は、バッファリング構造体132のバッファリング条件251に予め記述する。
プロセッサ320は、命令を実行する場合、VMトラップロジック122を用いてトラップ条件に合致しない命令でないか確認し(ステップ507)、ゲストの一命令を実行する(ステップ509)。
プロセッサ320は、命令を実行しない場合、ゲストの1命令の読み込みの処理(ステップ505)を行う。以下、VM環境の退出(ステップ508)が起こるまで同様の処理を繰り返す。
VM環境を退出した後、プロセッサ320は、VMM140に制御を移行する。VMM140は、バッファに保存された命令の内容を読み取り、次にゲストVM150に制御を移行する時に継続して動作できるよう、エミュレーションやログ保存等の適切な処理を行う。この時、VMM140は、バッファに保存された命令が実行済みのものかそうでないかを判断しながら処理を実行する。
このように動作することによって、ゲスト仮想マシン(VM)を実行している時に、ホスト仮想マシンモニタ(VMM)へ制御を移行させることなく一部の命令をバッファリング可能とできる。
更に、VMトラップを起こさない通常の命令についてもバッファリングを行うことができる。
加えて、通常の命令について、バッファリングを行った後、実行するかしないかを制御できる。
以上説明したように、仮想マシン環境においてゲスト仮想マシンを実行している時に、ホスト仮想マシンモニタへ制御を移行させることなく一部の命令をバッファリング可能する処理装置を提供する。これにより、ゲストからホストへの制御の移行の回数を低減し、性能を改善できる。
即ち、ゲストVMからホストVMMへの制御の移行の回数を低減し性能を改善できるプロセッサ、メモリ装置、処理装置及び命令の処理方法を提供できる。同じく、ゲストVMからホストVMMへの制御の移行の回数を低減し性能を改善できるコンピュータシステム(パーソナルコンピュータやワークステーション)を提供できる。
また、本発明の具体的な構成は前述の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
本発明は、上記説明した処理を行う処理装置(CPU)に適応できる。また、処理装置を搭載してVM環境を提供するコンピュータシステムに適応できる。
実施形態の仮想化アーキテクチャーを示すブロック図である。 プラットフォームハードウェアを示すブロック図である。 実施形態のシステムの動作を示すフローチャートである。 別の実施形態のプラットフォームハードウェアを示すブロック図である。 別の実施形態のシステムの動作を示すフローチャートである。
符号の説明
110 プラットフォームハードウェア
120 プロセッサ
121 命令実行ロジック
122 VMトラップロジック
123 バッファリングロジック
130 メモリ(メモリ装置)
131 VM構造体
132 バッファ構造体(バッファリング構造体)
140 仮想マシンモニタ(VMM)
150 仮想マシン(VM)
151 ゲストOS
152 ゲストAPP
211 判定部
212 条件記憶部
213 VM退出処理部
221 判定部
222 条件記憶部
223 命令保存処理部
241 VMコンテキスト
242 VMトラップ条件
243 バッファ構造体アドレス
251 バッファリング条件
252 バッファアドレス
260 バッファ
320 プロセッサ
322 VMトラップロジック
323 バッファリングロジック
411 判定部
421 判定部

Claims (14)

  1. 仮想マシンモニタ(Virtual Machine Monitor)からの命令の処理方法であって、
    ゲストからの命令を取得して次工程に移行する工程と、
    前工程を受けて、前記取得した命令をトラップするか、予め読み込んであるトラップ条件に基づき判定し、命令をトラップしない条件のときに前記命令を実行し、命令をトラップする条件のときに次工程に進む工程と、
    前工程を受けて、前記取得した命令をバッファリングするか、予め読み込んであるバッファリング条件に基づき判定し、命令をバッファリングする条件のときにメモリ装置に設けられるバッファに前記取得した命令を書き込むと共に、VM(Virtual Machine)環境を退出しないで、ゲストからの命令を取得する工程に戻り、命令をバッファリングしない条件のときに次工程に進む工程と、
    前工程を受けて、VM環境を退出して、仮想マシンモニタ環境に移行すると共に、バッファした内容を取得して、次のゲスト移行時に、前記ゲストが継続して動作可能なように動作する工程と
    を有し、
    前記トラップ条件は、VM環境下で、前記命令を直接実行するかトラップするかを判定するための条件であり、
    前記バッファリング条件は、VM環境下で、バッファリングを実施してVM環境を維持するか、VM環境の退出を実施するかを判定するための条件である
    ことを特徴とするVM環境から仮想マシンモニタ環境に移行する回数を低減する命令の処理方法。
  2. 仮想マシンモニタ(Virtual Machine Monitor)からの命令の処理方法であって、
    ゲストからの命令を取得して次工程に移行する工程と、
    前工程を受けて、前記取得した命令をバッファリングするか、予め読み込んであるバッファリング条件に基づき判定し、命令をバッファリングする条件のときにメモリ装置に設けられるバッファに前記取得した命令を書き込むと共に、VM(Virtual Machine)環境を退出しないで、ゲストからの命令を取得する工程に戻り、命令をバッファリングしない条件のときに次工程に進む工程と、
    前工程を受けて、前記取得した命令をトラップするか、予め読み込んであるトラップ条件に基づき判定し、命令をトラップしない条件のときに前記命令を実行し、命令をトラップする条件のときに次工程に進む工程と、
    前工程を受けて、VM環境を退出して、仮想マシンモニタ環境に移行すると共に、バッファした内容を取得して、次のゲスト移行時に、前記ゲストが継続して動作可能なように動作する工程と
    を有し、
    前記トラップ条件は、VM環境下で、前記命令を直接実行するかトラップするかを判定するための条件であり、
    前記バッファリング条件は、VM環境下で、バッファリングを実施してVM環境を維持するか、VM環境の退出を実施するかを判定するための条件である
    ことを特徴とするVM環境から仮想マシンモニタ環境に移行する回数を低減する命令の処理方法。
  3. 請求項1又は2記載の命令の処理方法であって、
    前記バッファリングするか判定する工程で、命令をバッファリングすると判定した場合に、バッファに前記命令を記録後、当該命令を実行するか否かを予め命令毎に記録されている条件に基づいて判定し、前記命令を実行しないときに、VM(Virtual Machine)環境を退出しないで、ゲストからの命令を取得する工程に戻り、命令を実行するときに次工程に進み、
    仮想マシンモニタ環境に移行後、前記記録したバッファの命令が実行済みであるか否かを判別しながら処理を実行する
    ことを特徴とする命令の処理方法。
  4. 請求項1ないしの何れか一記載の命令の処理方法であって、
    前記バッファリングする内容は、命令、オペランド、命令によってアクセスされるレジスタ及びアドレスの値、エラーの理由の何れか又は全てを含むことを特徴とする命令の処理方法。
  5. ゲストからの命令であるゲスト命令を取得し、VM環境下で、前記命令を直接実行するかトラップするかを判定するためのトラップ条件に基づくトラップの判定処理、及びVM環境の退出処理を行うVMトラップロジックと、
    前記ゲスト命令を取得し、VM環境下で、バッファリングを実施してVM環境を維持するか、VM環境の退出を実施するかを判定するためのバッファリング条件に基づくバッファリングの判定処理、及び命令をバッファリングする条件のときにメモリ装置に設けられるバッファに前記取得した命令を保存する命令保存処理を行うバッファリングロジックと
    を備え
    前記バッファリングロジックを用いて、前記ゲスト命令を判定し、バッフアリングした場合に、VM環境を退出しないで、ゲストからの命令を取得待ち状態に戻る処理を行い、
    前記VMトラップロジックを用いて、VM環境を退出して仮想マシンモニタ環境に移行した場合に、前記バッファした内容を取得して、次のゲスト移行時に、前記ゲストが継続して動作可能なように動作する処理を行う
    ことを特徴とするプロセッサ。
  6. 請求項記載のプロセッサであって、
    前記バッファリングロジックは、メモリ装置に設けられる構造体からバッファリングする条件を取得することを特徴とするプロセッサ。
  7. 請求項又は記載のプロセッサであって、
    前記バッファリングロジックは、メモリ装置に設けられる構造体から命令をバッファリングするバッファのアドレスを取得することを特徴とするプロセッサ。
  8. 請求項ないしの何れか一記載のプロセッサであって、
    前記バッファリングロジックを用いて、前記ゲスト命令を判定し、バッフアリングした場合に、前記ゲスト命令を実行するか判定することを特徴とするプロセッサ。
  9. 請求項ないしの何れか一記載のプロセッサであって、
    前記命令保存処理は、命令、オペランド、命令によってアクセスされるレジスタ及びアドレスの値、エラーの理由の何れか又は全てを含む情報をバッファに記録することを特徴とするプロセッサ。
  10. ゲストからの命令であるゲスト命令を取得し、VM環境下で、前記命令を直接実行するかトラップするかを判定するためのトラップ条件に基づくトラップの判定処理及びVM環境の退出処理を行うVMトラップロジックと、前記ゲスト命令を取得し、VM環境下で、バッファリングを実施してVM環境を維持するか、VM環境の退出を実施するかを判定するためのバッファリング条件に基づくバッファリングの判定処理及び命令をバッファリングする条件のときにメモリ装置に設けられるバッファに前記取得した命令を保存する命令保存処理を行うバッファリングロジックとを備えるプロセッサと、
    構造体に、前記プロセッサがVM環境から仮想マシンモニタ環境に移行する回数を低減する動作を行なうときに読み込まれる前記バッファリングロジックが用いる情報であり、プロセッサがVM環境下で、ゲスト命令のバッファリングを実施してVM環境を維持するか、次工程に進みVM環境の退出を実施するように動作するかを判定する条件であるバッファリング条件を記憶するメモリ装置と
    を備え
    前記バッファリングロジックを用いて、前記ゲスト命令を判定し、バッフアリングした場合に、VM環境を退出しないで、ゲストからの命令を取得待ち状態に戻る処理を行い、
    前記VMトラップロジックを用いて、VM環境を退出して仮想マシンモニタ環境に移行した場合に、前記バッファした内容を取得して、次のゲスト移行時に、前記ゲストが継続して動作可能なように動作する処理を行う
    ることを特徴とする処理装置。
  11. 請求項10記載の処理装置であって、
    前記バッファリングロジックは、メモリ装置に設けられる構造体から命令をバッファリングするバッファのアドレスを取得することを特徴とする処理装置。
  12. 請求項10又は11記載の処理装置であって、
    前記命令保存処理は、命令、オペランド、命令によってアクセスされるレジスタ及びアドレスの値、エラーの理由の何れか又は全てを含む情報を前記バッファに記録することを特徴とする処理装置。
  13. 請求項10ないし12に記載の処理装置を搭載してVM環境を提供可能とするコンピュータシステム。
  14. ゲストからの命令であるゲスト命令を取得し、VM環境下で、前記命令を直接実行するかトラップするかを判定するためのトラップ条件に基づくトラップの判定処理及びVM環境の退出処理を行うVMトラップロジックと、前記ゲスト命令を取得し、VM環境下で、バッファリングを実施してVM環境を維持するか、VM環境の退出を実施するかを判定するためのバッファリング条件に基づくバッファリングの判定処理及び命令をバッファリングする条件のときにメモリ装置に設けられるバッファに前記取得した命令を保存する命令保存処理を行うバッファリングロジックとを備えるプロセッサと、構造体に前記プロセッサがVM環境から仮想マシンモニタ環境に移行する回数を低減する動作を行なうときに読み込まれる前記バッファリングロジックが用いる情報であり、プロセッサがVM環境下で、ゲスト命令のバッファリングを実施してVM環境を維持するか、次工程に進みVM環境の退出を実施するように動作するかを判定する条件であるバッファリング条件を記憶するメモリ装置と
    を備え
    前記バッファリングロジックを用いて、前記ゲスト命令を判定し、バッフアリングした場合に、VM環境を退出しないで、ゲストからの命令を取得待ち状態に戻る処理を行い、
    前記VMトラップロジックを用いて、VM環境を退出して仮想マシンモニタ環境に移行した場合に、前記バッファした内容を取得して、次のゲスト移行時に、前記ゲストが継続して動作可能なように動作する処理を行う
    処理装置を用いて、
    仮想マシン環境を提供し、ゲスト仮想マシンを実行している時に、ホスト仮想マシンモニタへ制御を移行させることなく一部の命令をバッファリングする
    ことを特徴とするコンピュータシステム。
JP2008045585A 2008-02-27 2008-02-27 プロセッサ、メモリ装置、処理装置及び命令の処理方法 Expired - Fee Related JP4530182B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008045585A JP4530182B2 (ja) 2008-02-27 2008-02-27 プロセッサ、メモリ装置、処理装置及び命令の処理方法
US12/391,601 US8732721B2 (en) 2008-02-27 2009-02-24 Method for reducing trap overhead when executing a guest in a virtual machine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008045585A JP4530182B2 (ja) 2008-02-27 2008-02-27 プロセッサ、メモリ装置、処理装置及び命令の処理方法

Publications (2)

Publication Number Publication Date
JP2009205324A JP2009205324A (ja) 2009-09-10
JP4530182B2 true JP4530182B2 (ja) 2010-08-25

Family

ID=40999486

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008045585A Expired - Fee Related JP4530182B2 (ja) 2008-02-27 2008-02-27 プロセッサ、メモリ装置、処理装置及び命令の処理方法

Country Status (2)

Country Link
US (1) US8732721B2 (ja)
JP (1) JP4530182B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9804870B2 (en) * 2011-10-28 2017-10-31 Intel Corporation Instruction-set support for invocation of VMM-configured services without VMM intervention
US20130326519A1 (en) * 2011-12-30 2013-12-05 Andrew V. Anderson Virtual machine control structure shadowing

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993009494A1 (en) * 1991-10-28 1993-05-13 Digital Equipment Corporation Fault-tolerant computer processing using a shadow virtual processor
US7191440B2 (en) * 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
US7552426B2 (en) 2003-10-14 2009-06-23 Microsoft Corporation Systems and methods for using synthetic instructions in a virtual machine
US7725895B2 (en) * 2004-03-31 2010-05-25 Intel Corporation Processor control register virtualization to minimize virtual machine exits
US7904903B2 (en) * 2005-06-30 2011-03-08 Intel Corporation Selective register save and restore upon context switch using trap
US9785485B2 (en) 2005-07-27 2017-10-10 Intel Corporation Virtualization event processing in a layered virtualization architecture

Also Published As

Publication number Publication date
US20090217014A1 (en) 2009-08-27
US8732721B2 (en) 2014-05-20
JP2009205324A (ja) 2009-09-10

Similar Documents

Publication Publication Date Title
US10191761B2 (en) Adaptive dynamic selection and application of multiple virtualization techniques
JP5607474B2 (ja) コンピュータ・システムにおける入れ子式仮想化の性能改善
US10255090B2 (en) Hypervisor context switching using a redirection exception vector in processors having more than two hierarchical privilege levels
US10877793B2 (en) Extending the base address register by modifying the number of read-only bits associated with a device to be presented to a guest operating system
US8296775B2 (en) Efficient context switching of virtual processors by managing physical register states in a virtualized environment
TWI620124B (zh) 虛擬機器控制結構陰影化技術
US9053065B2 (en) Method for restoring virtual machine state from a checkpoint file
US11487523B2 (en) Updating machine emulator
US9053064B2 (en) Method for saving virtual machine state to a checkpoint file
WO2008144553A1 (en) Adaptive dynamic selection and application of multiple virtualization techniques
US10019275B2 (en) Hypervisor context switching using a trampoline scheme in processors having more than two hierarchical privilege levels
JP5962853B2 (ja) 情報処理装置、方法、及びプログラム
KR101901587B1 (ko) 연성 실시간 운영체제의 실시간성을 확보하는 방법 및 장치
US9740519B2 (en) Cross hypervisor migration of virtual machines with VM functions
JP5318197B2 (ja) ホストデータ処理装置内におけるデバイスエミュレーションのサポート
US20090144733A1 (en) Virtual machine system and control method of virtual machine system
JP4530182B2 (ja) プロセッサ、メモリ装置、処理装置及び命令の処理方法
JP2007094986A (ja) シミュレーション装置およびシミュレーション方法
US20160062902A1 (en) Memory access processing method and information processing device
US20090271785A1 (en) Information processing apparatus and control method
JP5100030B2 (ja) データプロセッサ、データ処理方法
US20230418509A1 (en) Switching memory consistency models in accordance with execution privilege level
US20200218459A1 (en) Memory-mapped storage i/o
JPH0567973B2 (ja)
JP2000194668A (ja) 計算機システム及び同システムに適用される中間コ―ド実行装置並びに中間コ―ド実行方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100224

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100422

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100601

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

Free format text: PAYMENT UNTIL: 20130618

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees