JP2010257049A - 仮想化プログラム、仮想化処理方法及び装置 - Google Patents
仮想化プログラム、仮想化処理方法及び装置 Download PDFInfo
- Publication number
- JP2010257049A JP2010257049A JP2009104022A JP2009104022A JP2010257049A JP 2010257049 A JP2010257049 A JP 2010257049A JP 2009104022 A JP2009104022 A JP 2009104022A JP 2009104022 A JP2009104022 A JP 2009104022A JP 2010257049 A JP2010257049 A JP 2010257049A
- Authority
- JP
- Japan
- Prior art keywords
- guest
- address
- page
- virtual page
- pointer
- 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
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【解決手段】特定のゲスト仮想ページへのアクセスの際に、特定のゲスト仮想ページのアドレスに対応するゲスト物理ページアドレスを特定し、ゲスト物理ページの数分エントリを有しており且つ各ゲスト物理ページアドレスにゲスト仮想ページアドレスと対応するホスト物理ページへのポインタと当該ホスト物理ページに格納されているコードをホストマシン向けに変換したコードである変換コードへのポインタとを格納するための変換テーブルから、特定されたゲスト物理ページアドレスについてのエントリを読み出し、変換コードへのポインタが含まれているか判断する。変換コードへのポインタが含まれている場合には、読み出されたエントリに含まれるゲスト仮想ページアドレスと特定のゲスト仮想ページのアドレスとを比較し、一致すれば、ポインタにより変換コードを読み出して実行する。
【選択図】図3
Description
(1)最初に、シャドウ・ページ・テーブルは空である。
(2)仮想マシンがゲストマシンのTLB(Translation Lookaside Buffer)フォルトを検出すると、DATをエミュレートする。その結果をシャドウ・ページ・テーブルに登録する。
(3)ゲストマシンのDATテーブルが更新された場合やTLBの削除操作(例えば、IBM社のSystem/370のINVALIDATE PAGE TABLE ENTRY(IPTE)命令やPURGE TLB(PTLB)命令などがあげられる。)が行われた場合には、シャドウ・ページ・テーブルの該当部分を削除する。
ホストマシンのCPU(Central Processing Unit)が以下で述べるCPUエミュレータを実行することで、ゲストマシンのCPUを仮想的にエミュレートする。このCPUエミュレータが動作するホストマシンにおける仮想及び物理メモリ空間の配置と、CPUエミュレータが仮想的に実行するゲストマシンにおける仮想メモリ空間と物理メモリ空間との対応関係を図2に示す。
図6に、本実施の形態のαテーブルに関わるシステム構成を示す。ホストマシン1のホストCPUがCPUエミュレータ100を実行することで、ゲストマシンのCPUを仮想的にエミュレートする。CPUエミュレータ100は、命令インタプリタ101と、変換コード検索部103と、動的バイナリ変換部105とを有する。また、ホストマシン1のホスト主記憶200には、ゲスト主記憶領域201と、αテーブル203と、変換コード管理領域205とが設けられている。ゲスト主記憶領域201には、ゲストマシンのプログラムであるゲストプログラム2011が格納されており、αテーブル203には、ゲスト仮想ページ数分のエントリ2031が含まれており、変換コード管理領域205にはゲストプログラム2011のコード変換の結果である変換コード2051が格納されている。上で述べたように、エントリ2031は、変換コード2051を指し示している場合がある。
ホストマシンに、仮想的なコンピュータであるゲストマシンを実行させるための仮想化プログラムであって、
特定のゲスト仮想ページへのアクセスの際に、前記特定のゲスト仮想ページのアドレスに対応するゲスト物理ページアドレスを特定するステップと、
ゲスト物理ページの数分エントリを有しており且つ各ゲスト物理ページアドレスにゲスト仮想ページアドレスと対応するホスト物理ページへのポインタと当該ホスト物理ページに格納されているコードを前記ホストマシン向けに変換したコードである変換コードへのポインタとを格納するための変換テーブルから、特定された前記ゲスト物理ページアドレスについてのエントリを読み出し、前記変換コードへのポインタが含まれているか判断するステップと、
前記変換コードへのポインタが含まれている場合には、読み出された前記エントリに含まれるゲスト仮想ページアドレスと前記特定のゲスト仮想ページのアドレスとを比較する比較ステップと、
読み出された前記エントリに含まれるゲスト仮想ページアドレスと前記特定のゲスト仮想ページのアドレスとが一致する場合には、読み出された前記エントリに含まれる前記変換コードへのポインタにより当該変換コードを読み出して実行するステップと、
を実行させるための仮想化プログラム。
読み出された前記エントリに含まれるゲスト仮想ページアドレスと前記特定のゲスト仮想ページのアドレスとが不一致である場合には、読み出された前記エントリに含まれる前記変換コードへのポインタを削除すると共に、当該ポインタで指定されたページに格納されている当該変換コードを削除するステップ
をさらに含む付記1記載の仮想化プログラム。
読み出された前記エントリに含まれるゲスト仮想ページアドレスと前記特定のゲスト仮想ページのアドレスが不一致である場合又は読み出された前記エントリに前記変換コードへのポインタが含まれていない場合、読み出された前記エントリに含まれる前記ホスト物理ページへのポインタにより当該ホスト物理ページに格納されているコードを読み出して、コード変換処理を実施するステップと、
特定された前記ゲスト物理ページアドレスについてのエントリに、前記特定のゲスト仮想ページのアドレスと前記コード変換処理によって生成された変換コードが格納されているホスト物理ページのアドレスを格納するステップと、
前記コード変換処理によって生成された変換コードを実行するステップと、
をさらに実行させるための付記1又は2記載の仮想化プログラム。
前記変換テーブルにおける前記有効なゲスト仮想ページアドレスが、ページ共有判定ビットと空間識別子とページアドレスとを含み、
前記比較ステップにおいて、
前記ページ共有判定ビットがセットされている場合には、読み出された前記エントリに含まれる前記ゲスト仮想ページアドレスのうち前記ページアドレスと、前記特定のゲスト仮想ページのアドレスのうち前記空間識別子以外の部分とを比較し、
前記ページ共有判定ビットがセットされていない場合には、読み出された前記エントリに含まれる前記ゲスト仮想ページアドレスのうち前記空間識別子及び前記ページアドレスと前記特定のゲスト仮想ページのアドレスとを比較する
付記1乃至3のいずれか1つ記載の仮想化プログラム。
ホストマシンに、仮想的なコンピュータであるゲストマシンを実行させる仮想化処理方法であって、
特定のゲスト仮想ページへのアクセスの際に、前記特定のゲスト仮想ページのアドレスに対応するゲスト物理ページアドレスを特定するステップと、
ゲスト物理ページの数分エントリを有しており且つ各ゲスト物理ページアドレスにゲスト仮想ページアドレスと対応するホスト物理ページへのポインタと当該ホスト物理ページに格納されているコードを前記ホストマシン向けに変換したコードである変換コードへのポインタとを格納するための変換テーブルから、特定された前記ゲスト物理ページアドレスについてのエントリを読み出し、前記変換コードへのポインタが含まれているか判断するステップと、
前記変換コードへのポインタが含まれている場合には、読み出された前記エントリに含まれるゲスト仮想ページアドレスと前記特定のゲスト仮想ページのアドレスとを比較する比較ステップと、
読み出された前記エントリに含まれるゲスト仮想ページアドレスと前記特定のゲスト仮想ページのアドレスとが一致する場合には、読み出された前記エントリに含まれる前記変換コードへのポインタにより当該変換コードを読み出して実行するステップと、
を含む仮想化処理方法。
仮想的なコンピュータであるゲストマシンを実行させるホストマシンであって、
特定のゲスト仮想ページへのアクセスの際に、前記特定のゲスト仮想ページのアドレスに対応するゲスト物理ページアドレスを特定する手段と、
ゲスト物理ページの数分エントリを有しており且つ各ゲスト物理ページアドレスにゲスト仮想ページアドレスと対応するホスト物理ページへのポインタと当該ホスト物理ページに格納されているコードを前記ホストマシン向けに変換したコードである変換コードへのポインタとを格納するための変換テーブルを格納するメモリと、
前記変換テーブルから、特定された前記ゲスト物理ページアドレスについてのエントリを読み出し、前記変換コードへのポインタが含まれているか判断し、前記変換コードへのポインタが含まれている場合には、読み出された前記エントリに含まれるゲスト仮想ページアドレスと前記特定のゲスト仮想ページのアドレスとを比較し、読み出された前記エントリに含まれるゲスト仮想ページアドレスと前記特定のゲスト仮想ページのアドレスとが一致する場合には、読み出された前記エントリに含まれる前記変換コードへのポインタにより当該変換コードを読み出して実行する手段と、
を有するホストマシン。
200 ホスト主記憶
101 命令インタプリタ 103 変換コード検索部
105 動的バイナリ変換部
201 ゲスト主記憶領域 203 αテーブル
205 変換コード管理領域
2011 ゲストプログラム
2051 変換コード
Claims (6)
- ホストマシンに、仮想的なコンピュータであるゲストマシンを実行させるための仮想化プログラムであって、
特定のゲスト仮想ページへのアクセスの際に、前記特定のゲスト仮想ページのアドレスに対応するゲスト物理ページアドレスを特定するステップと、
ゲスト物理ページの数分エントリを有しており且つ各ゲスト物理ページアドレスにゲスト仮想ページアドレスと対応するホスト物理ページへのポインタと当該ホスト物理ページに格納されているコードを前記ホストマシン向けに変換したコードである変換コードへのポインタとを格納するための変換テーブルから、特定された前記ゲスト物理ページアドレスについてのエントリを読み出し、前記変換コードへのポインタが含まれているか判断するステップと、
前記変換コードへのポインタが含まれている場合には、読み出された前記エントリに含まれるゲスト仮想ページアドレスと前記特定のゲスト仮想ページのアドレスとを比較する比較ステップと、
読み出された前記エントリに含まれるゲスト仮想ページアドレスと前記特定のゲスト仮想ページのアドレスとが一致する場合には、読み出された前記エントリに含まれる前記変換コードへのポインタにより当該変換コードを読み出して実行するステップと、
を実行させるための仮想化プログラム。 - 読み出された前記エントリに含まれるゲスト仮想ページアドレスと前記特定のゲスト仮想ページのアドレスとが不一致である場合には、読み出された前記エントリに含まれる前記変換コードへのポインタを削除すると共に、当該ポインタで指定されたページに格納されている当該変換コードを削除するステップ
をさらに含む請求項1記載の仮想化プログラム。 - 読み出された前記エントリに含まれるゲスト仮想ページアドレスと前記特定のゲスト仮想ページのアドレスが不一致である場合又は読み出された前記エントリに前記変換コードへのポインタが含まれていない場合、読み出された前記エントリに含まれる前記ホスト物理ページへのポインタにより当該ホスト物理ページに格納されているコードを読み出して、コード変換処理を実施するステップと、
特定された前記ゲスト物理ページアドレスについてのエントリに、前記特定のゲスト仮想ページのアドレスと前記コード変換処理によって生成された変換コードが格納されているホスト物理ページのアドレスを格納するステップと、
前記コード変換処理によって生成された変換コードを実行するステップと、
をさらに実行させるための請求項1又は2記載の仮想化プログラム。 - 前記変換テーブルにおける前記有効なゲスト仮想ページアドレスが、ページ共有判定ビットと空間識別子とページアドレスとを含み、
前記比較ステップにおいて、
前記ページ共有判定ビットがセットされている場合には、読み出された前記エントリに含まれる前記ゲスト仮想ページアドレスのうち前記ページアドレスと、前記特定のゲスト仮想ページのアドレスのうち前記空間識別子以外の部分とを比較し、
前記ページ共有判定ビットがセットされていない場合には、読み出された前記エントリに含まれる前記ゲスト仮想ページアドレスのうち前記空間識別子及び前記ページアドレスと前記特定のゲスト仮想ページのアドレスとを比較する
請求項1乃至3のいずれか1つ記載の仮想化プログラム。 - ホストマシンに、仮想的なコンピュータであるゲストマシンを実行させる仮想化処理方法であって、
特定のゲスト仮想ページへのアクセスの際に、前記特定のゲスト仮想ページのアドレスに対応するゲスト物理ページアドレスを特定するステップと、
ゲスト物理ページの数分エントリを有しており且つ各ゲスト物理ページアドレスにゲスト仮想ページアドレスと対応するホスト物理ページへのポインタと当該ホスト物理ページに格納されているコードを前記ホストマシン向けに変換したコードである変換コードへのポインタとを格納するための変換テーブルから、特定された前記ゲスト物理ページアドレスについてのエントリを読み出し、前記変換コードへのポインタが含まれているか判断するステップと、
前記変換コードへのポインタが含まれている場合には、読み出された前記エントリに含まれるゲスト仮想ページアドレスと前記特定のゲスト仮想ページのアドレスとを比較する比較ステップと、
読み出された前記エントリに含まれるゲスト仮想ページアドレスと前記特定のゲスト仮想ページのアドレスとが一致する場合には、読み出された前記エントリに含まれる前記変換コードへのポインタにより当該変換コードを読み出して実行するステップと、
を含む仮想化処理方法。 - 仮想的なコンピュータであるゲストマシンを実行させるホストマシンであって、
特定のゲスト仮想ページへのアクセスの際に、前記特定のゲスト仮想ページのアドレスに対応するゲスト物理ページアドレスを特定する手段と、
ゲスト物理ページの数分エントリを有しており且つ各ゲスト物理ページアドレスにゲスト仮想ページアドレスと対応するホスト物理ページへのポインタと当該ホスト物理ページに格納されているコードを前記ホストマシン向けに変換したコードである変換コードへのポインタとを格納するための変換テーブルを格納するメモリと、
前記変換テーブルから、特定された前記ゲスト物理ページアドレスについてのエントリを読み出し、前記変換コードへのポインタが含まれているか判断し、前記変換コードへのポインタが含まれている場合には、読み出された前記エントリに含まれるゲスト仮想ページアドレスと前記特定のゲスト仮想ページのアドレスとを比較し、読み出された前記エントリに含まれるゲスト仮想ページアドレスと前記特定のゲスト仮想ページのアドレスとが一致する場合には、読み出された前記エントリに含まれる前記変換コードへのポインタにより当該変換コードを読み出して実行する手段と、
を有するホストマシン。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009104022A JP5246014B2 (ja) | 2009-04-22 | 2009-04-22 | 仮想化プログラム、仮想化処理方法及び装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009104022A JP5246014B2 (ja) | 2009-04-22 | 2009-04-22 | 仮想化プログラム、仮想化処理方法及び装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010257049A true JP2010257049A (ja) | 2010-11-11 |
JP5246014B2 JP5246014B2 (ja) | 2013-07-24 |
Family
ID=43317918
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009104022A Active JP5246014B2 (ja) | 2009-04-22 | 2009-04-22 | 仮想化プログラム、仮想化処理方法及び装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5246014B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014211727A (ja) * | 2013-04-18 | 2014-11-13 | 株式会社日立製作所 | 仮想計算機システムおよび仮想計算機におけるi/o実施方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5434722A (en) * | 1977-08-24 | 1979-03-14 | Hitachi Ltd | Address converting device |
JPS61206057A (ja) * | 1985-03-11 | 1986-09-12 | Hitachi Ltd | アドレス変換装置 |
JPH05225064A (ja) * | 1992-02-10 | 1993-09-03 | Hitachi Ltd | アドレス変換装置及びバッファ記憶制御装置 |
JP2003511788A (ja) * | 1999-10-13 | 2003-03-25 | トランスメータ・コーポレーション | 微細粒度変換判別 |
JP2004110812A (ja) * | 2002-09-17 | 2004-04-08 | Internatl Business Mach Corp <Ibm> | マルチプロセッサ・ホスト上でのマルチプロセッサ・アドレス変換の効率のよいエミュレーションのための方法およびシステム |
JP2006252554A (ja) * | 2005-03-08 | 2006-09-21 | Microsoft Corp | 仮想マシン環境内でのゲスト物理アドレスの仮想化の方法およびシステム |
-
2009
- 2009-04-22 JP JP2009104022A patent/JP5246014B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5434722A (en) * | 1977-08-24 | 1979-03-14 | Hitachi Ltd | Address converting device |
JPS61206057A (ja) * | 1985-03-11 | 1986-09-12 | Hitachi Ltd | アドレス変換装置 |
JPH05225064A (ja) * | 1992-02-10 | 1993-09-03 | Hitachi Ltd | アドレス変換装置及びバッファ記憶制御装置 |
JP2003511788A (ja) * | 1999-10-13 | 2003-03-25 | トランスメータ・コーポレーション | 微細粒度変換判別 |
JP2004110812A (ja) * | 2002-09-17 | 2004-04-08 | Internatl Business Mach Corp <Ibm> | マルチプロセッサ・ホスト上でのマルチプロセッサ・アドレス変換の効率のよいエミュレーションのための方法およびシステム |
JP2006252554A (ja) * | 2005-03-08 | 2006-09-21 | Microsoft Corp | 仮想マシン環境内でのゲスト物理アドレスの仮想化の方法およびシステム |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014211727A (ja) * | 2013-04-18 | 2014-11-13 | 株式会社日立製作所 | 仮想計算機システムおよび仮想計算機におけるi/o実施方法 |
Also Published As
Publication number | Publication date |
---|---|
JP5246014B2 (ja) | 2013-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8095771B2 (en) | Method and system for caching address translations from multiple address spaces in virtual machines | |
US8171255B1 (en) | Optimization of paging cache protection in virtual environment | |
US9104594B2 (en) | Operational efficiency of virtual TLBs | |
US10318322B2 (en) | Binary translator with precise exception synchronization mechanism | |
JP5214670B2 (ja) | マルチプロセッサ仮想マシン環境においてアドレス変換をサポートする方法及び装置 | |
JP5091655B2 (ja) | 計算機仮想化装置、そのプログラム、及びその方法 | |
US6820255B2 (en) | Method for fast execution of translated binary code utilizing database cache for low-level code correspondence | |
US10474369B2 (en) | Mapping guest pages to disk blocks to improve virtual machine management processes | |
CN109074316B (zh) | 页面错误解决方案 | |
US9405567B2 (en) | Method and apparatus for supporting address translation in a multiprocessor virtual machine environment using tracking data to eliminate interprocessor interrupts | |
US9286101B2 (en) | Free page hinting | |
US7856542B1 (en) | Paging cache optimization for virtual machine | |
US20090119089A1 (en) | Method, apparatus and full-system simulator for speeding mmu simulation | |
WO2006081582A2 (en) | A method and apparatus for supporting address translation in a virtual machine environment | |
US7506096B1 (en) | Memory segment emulation model for virtual machine | |
US8589143B2 (en) | Virtualization apparatus and processing method thereof | |
JP5246014B2 (ja) | 仮想化プログラム、仮想化処理方法及び装置 | |
US20230229609A1 (en) | Iommu-based direct memory access (dma) tracking for enabling live migration of virtual machines (vms) using passthrough physical devices | |
US20230195533A1 (en) | Prepopulating page tables for memory of workloads during live migrations | |
JP2010198398A (ja) | 計算機装置および制御方法 | |
AU2014328735B2 (en) | Consistent and efficient mirroring of nonvolatile memory state in virtualized environments | |
Zhen-hua et al. | A Dual-TLB Method for MIPS Heterogeneous Virtualization | |
JPS588073B2 (ja) | アドレス変換装置 | |
Zhang | A Simplified TDP with Large Tables |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111205 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130215 |
|
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: 20130312 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130325 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5246014 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: 20160419 Year of fee payment: 3 |