JP4530182B2 - プロセッサ、メモリ装置、処理装置及び命令の処理方法 - Google Patents
プロセッサ、メモリ装置、処理装置及び命令の処理方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; 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
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)
- 仮想マシンモニタ(Virtual Machine Monitor)からの命令の処理方法であって、
ゲストからの命令を取得して次工程に移行する工程と、
前工程を受けて、前記取得した命令をトラップするか、予め読み込んであるトラップ条件に基づき判定し、命令をトラップしない条件のときに前記命令を実行し、命令をトラップする条件のときに次工程に進む工程と、
前工程を受けて、前記取得した命令をバッファリングするか、予め読み込んであるバッファリング条件に基づき判定し、命令をバッファリングする条件のときにメモリ装置に設けられるバッファに前記取得した命令を書き込むと共に、VM(Virtual Machine)環境を退出しないで、ゲストからの命令を取得する工程に戻り、命令をバッファリングしない条件のときに次工程に進む工程と、
前工程を受けて、VM環境を退出して、仮想マシンモニタ環境に移行すると共に、バッファした内容を取得して、次のゲスト移行時に、前記ゲストが継続して動作可能なように動作する工程と
を有し、
前記トラップ条件は、VM環境下で、前記命令を直接実行するかトラップするかを判定するための条件であり、
前記バッファリング条件は、VM環境下で、バッファリングを実施してVM環境を維持するか、VM環境の退出を実施するかを判定するための条件である
ことを特徴とするVM環境から仮想マシンモニタ環境に移行する回数を低減する命令の処理方法。 - 仮想マシンモニタ(Virtual Machine Monitor)からの命令の処理方法であって、
ゲストからの命令を取得して次工程に移行する工程と、
前工程を受けて、前記取得した命令をバッファリングするか、予め読み込んであるバッファリング条件に基づき判定し、命令をバッファリングする条件のときにメモリ装置に設けられるバッファに前記取得した命令を書き込むと共に、VM(Virtual Machine)環境を退出しないで、ゲストからの命令を取得する工程に戻り、命令をバッファリングしない条件のときに次工程に進む工程と、
前工程を受けて、前記取得した命令をトラップするか、予め読み込んであるトラップ条件に基づき判定し、命令をトラップしない条件のときに前記命令を実行し、命令をトラップする条件のときに次工程に進む工程と、
前工程を受けて、VM環境を退出して、仮想マシンモニタ環境に移行すると共に、バッファした内容を取得して、次のゲスト移行時に、前記ゲストが継続して動作可能なように動作する工程と
を有し、
前記トラップ条件は、VM環境下で、前記命令を直接実行するかトラップするかを判定するための条件であり、
前記バッファリング条件は、VM環境下で、バッファリングを実施してVM環境を維持するか、VM環境の退出を実施するかを判定するための条件である
ことを特徴とするVM環境から仮想マシンモニタ環境に移行する回数を低減する命令の処理方法。 - 請求項1又は2記載の命令の処理方法であって、
前記バッファリングするか判定する工程で、命令をバッファリングすると判定した場合に、バッファに前記命令を記録後、当該命令を実行するか否かを予め命令毎に記録されている条件に基づいて判定し、前記命令を実行しないときに、VM(Virtual Machine)環境を退出しないで、ゲストからの命令を取得する工程に戻り、命令を実行するときに次工程に進み、
仮想マシンモニタ環境に移行後、前記記録したバッファの命令が実行済みであるか否かを判別しながら処理を実行する
ことを特徴とする命令の処理方法。 - 請求項1ないし3の何れか一記載の命令の処理方法であって、
前記バッファリングする内容は、命令、オペランド、命令によってアクセスされるレジスタ及びアドレスの値、エラーの理由の何れか又は全てを含むことを特徴とする命令の処理方法。 - ゲストからの命令であるゲスト命令を取得し、VM環境下で、前記命令を直接実行するかトラップするかを判定するためのトラップ条件に基づくトラップの判定処理、及びVM環境の退出処理を行うVMトラップロジックと、
前記ゲスト命令を取得し、VM環境下で、バッファリングを実施してVM環境を維持するか、VM環境の退出を実施するかを判定するためのバッファリング条件に基づくバッファリングの判定処理、及び命令をバッファリングする条件のときにメモリ装置に設けられるバッファに前記取得した命令を保存する命令保存処理を行うバッファリングロジックと
を備え、
前記バッファリングロジックを用いて、前記ゲスト命令を判定し、バッフアリングした場合に、VM環境を退出しないで、ゲストからの命令を取得待ち状態に戻る処理を行い、
前記VMトラップロジックを用いて、VM環境を退出して仮想マシンモニタ環境に移行した場合に、前記バッファした内容を取得して、次のゲスト移行時に、前記ゲストが継続して動作可能なように動作する処理を行う
ことを特徴とするプロセッサ。 - 請求項5記載のプロセッサであって、
前記バッファリングロジックは、メモリ装置に設けられる構造体からバッファリングする条件を取得することを特徴とするプロセッサ。 - 請求項5又は6記載のプロセッサであって、
前記バッファリングロジックは、メモリ装置に設けられる構造体から命令をバッファリングするバッファのアドレスを取得することを特徴とするプロセッサ。 - 請求項5ないし7の何れか一記載のプロセッサであって、
前記バッファリングロジックを用いて、前記ゲスト命令を判定し、バッフアリングした場合に、前記ゲスト命令を実行するか判定することを特徴とするプロセッサ。 - 請求項5ないし8の何れか一記載のプロセッサであって、
前記命令保存処理は、命令、オペランド、命令によってアクセスされるレジスタ及びアドレスの値、エラーの理由の何れか又は全てを含む情報をバッファに記録することを特徴とするプロセッサ。 - ゲストからの命令であるゲスト命令を取得し、VM環境下で、前記命令を直接実行するかトラップするかを判定するためのトラップ条件に基づくトラップの判定処理及びVM環境の退出処理を行うVMトラップロジックと、前記ゲスト命令を取得し、VM環境下で、バッファリングを実施してVM環境を維持するか、VM環境の退出を実施するかを判定するためのバッファリング条件に基づくバッファリングの判定処理及び命令をバッファリングする条件のときにメモリ装置に設けられるバッファに前記取得した命令を保存する命令保存処理を行うバッファリングロジックとを備えるプロセッサと、
構造体に、前記プロセッサがVM環境から仮想マシンモニタ環境に移行する回数を低減する動作を行なうときに読み込まれる前記バッファリングロジックが用いる情報であり、プロセッサがVM環境下で、ゲスト命令のバッファリングを実施してVM環境を維持するか、次工程に進みVM環境の退出を実施するように動作するかを判定する条件であるバッファリング条件を記憶するメモリ装置と
を備え、
前記バッファリングロジックを用いて、前記ゲスト命令を判定し、バッフアリングした場合に、VM環境を退出しないで、ゲストからの命令を取得待ち状態に戻る処理を行い、
前記VMトラップロジックを用いて、VM環境を退出して仮想マシンモニタ環境に移行した場合に、前記バッファした内容を取得して、次のゲスト移行時に、前記ゲストが継続して動作可能なように動作する処理を行う
ることを特徴とする処理装置。 - 請求項10記載の処理装置であって、
前記バッファリングロジックは、メモリ装置に設けられる構造体から命令をバッファリングするバッファのアドレスを取得することを特徴とする処理装置。 - 請求項10又は11記載の処理装置であって、
前記命令保存処理は、命令、オペランド、命令によってアクセスされるレジスタ及びアドレスの値、エラーの理由の何れか又は全てを含む情報を前記バッファに記録することを特徴とする処理装置。 - 請求項10ないし12に記載の処理装置を搭載してVM環境を提供可能とするコンピュータシステム。
- ゲストからの命令であるゲスト命令を取得し、VM環境下で、前記命令を直接実行するかトラップするかを判定するためのトラップ条件に基づくトラップの判定処理及びVM環境の退出処理を行うVMトラップロジックと、前記ゲスト命令を取得し、VM環境下で、バッファリングを実施してVM環境を維持するか、VM環境の退出を実施するかを判定するためのバッファリング条件に基づくバッファリングの判定処理及び命令をバッファリングする条件のときにメモリ装置に設けられるバッファに前記取得した命令を保存する命令保存処理を行うバッファリングロジックとを備えるプロセッサと、構造体に前記プロセッサがVM環境から仮想マシンモニタ環境に移行する回数を低減する動作を行なうときに読み込まれる前記バッファリングロジックが用いる情報であり、プロセッサがVM環境下で、ゲスト命令のバッファリングを実施してVM環境を維持するか、次工程に進みVM環境の退出を実施するように動作するかを判定する条件であるバッファリング条件を記憶するメモリ装置と
を備え、
前記バッファリングロジックを用いて、前記ゲスト命令を判定し、バッフアリングした場合に、VM環境を退出しないで、ゲストからの命令を取得待ち状態に戻る処理を行い、
前記VMトラップロジックを用いて、VM環境を退出して仮想マシンモニタ環境に移行した場合に、前記バッファした内容を取得して、次のゲスト移行時に、前記ゲストが継続して動作可能なように動作する処理を行う
処理装置を用いて、
仮想マシン環境を提供し、ゲスト仮想マシンを実行している時に、ホスト仮想マシンモニタへ制御を移行させることなく一部の命令をバッファリングする
ことを特徴とするコンピュータシステム。
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)
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)
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 |
-
2008
- 2008-02-27 JP JP2008045585A patent/JP4530182B2/ja not_active Expired - Fee Related
-
2009
- 2009-02-24 US US12/391,601 patent/US8732721B2/en not_active Expired - Fee Related
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 |