JP5246014B2 - 仮想化プログラム、仮想化処理方法及び装置 - Google Patents
仮想化プログラム、仮想化処理方法及び装置 Download PDFInfo
- Publication number
- JP5246014B2 JP5246014B2 JP2009104022A JP2009104022A JP5246014B2 JP 5246014 B2 JP5246014 B2 JP 5246014B2 JP 2009104022 A JP2009104022 A JP 2009104022A JP 2009104022 A JP2009104022 A JP 2009104022A JP 5246014 B2 JP5246014 B2 JP 5246014B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- guest
- page
- virtual page
- guest virtual
- 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.)
- Active
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
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 JP2010257049A (ja) | 2010-11-11 |
| JP5246014B2 true 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) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP5941868B2 (ja) * | 2013-04-18 | 2016-06-29 | 株式会社日立製作所 | 仮想計算機システムおよび仮想計算機におけるi/o実施方法 |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5858752B2 (ja) * | 1977-08-24 | 1983-12-27 | 株式会社日立製作所 | アドレス変換装置 |
| JPS61206057A (ja) * | 1985-03-11 | 1986-09-12 | Hitachi Ltd | アドレス変換装置 |
| JPH05225064A (ja) * | 1992-02-10 | 1993-09-03 | Hitachi Ltd | アドレス変換装置及びバッファ記憶制御装置 |
| US6363336B1 (en) * | 1999-10-13 | 2002-03-26 | Transmeta Corporation | Fine grain translation discrimination |
| US7953588B2 (en) * | 2002-09-17 | 2011-05-31 | International Business Machines Corporation | Method and system for efficient emulation of multiprocessor address translation on a multiprocessor host |
| US7334076B2 (en) * | 2005-03-08 | 2008-02-19 | Microsoft Corporation | Method and system for a guest physical address virtualization in a virtual machine environment |
-
2009
- 2009-04-22 JP JP2009104022A patent/JP5246014B2/ja active Active
Also Published As
| Publication number | Publication date |
|---|---|
| JP2010257049A (ja) | 2010-11-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8171255B1 (en) | Optimization of paging cache protection in virtual environment | |
| US8095771B2 (en) | Method and system for caching address translations from multiple address spaces in virtual machines | |
| US9104594B2 (en) | Operational efficiency of virtual TLBs | |
| JP5091655B2 (ja) | 計算機仮想化装置、そのプログラム、及びその方法 | |
| JP5214670B2 (ja) | マルチプロセッサ仮想マシン環境においてアドレス変換をサポートする方法及び装置 | |
| US10318322B2 (en) | Binary translator with precise exception synchronization mechanism | |
| US6820255B2 (en) | Method for fast execution of translated binary code utilizing database cache for low-level code correspondence | |
| CN1993683B (zh) | 体系结构事件期间维持处理器资源 | |
| US10474369B2 (en) | Mapping guest pages to disk blocks to improve virtual machine management processes | |
| CN109074316B (zh) | 页面错误解决方案 | |
| US7856542B1 (en) | Paging cache optimization for virtual machine | |
| CN100458687C (zh) | 用于程序代码转换的共享代码缓存方法及设备 | |
| JP2007531075A (ja) | プログラム・コードを変換するための共用コード・キャッシングの方法および装置 | |
| WO2006081582A2 (en) | A method and apparatus for supporting address translation in a virtual machine environment | |
| CN1125338A (zh) | 用于动态控制地址空间分配的方法和设备 | |
| US8589143B2 (en) | Virtualization apparatus and processing method thereof | |
| CN119621608B (zh) | 硬件辅助页表管理系统、方法、介质、程序产品及终端 | |
| US12086084B2 (en) | IOMMU-based direct memory access (DMA) tracking for enabling live migration of virtual machines (VMS) using passthrough physical devices | |
| US7506096B1 (en) | Memory segment emulation model for virtual machine | |
| CN120353469B (zh) | 二进制翻译方法、翻译器、电子设备及可读存储介质 | |
| JP5246014B2 (ja) | 仮想化プログラム、仮想化処理方法及び装置 | |
| CN120295933A (zh) | 一种兼容多处理器架构的操作系统内存管理方法 | |
| JPS588073B2 (ja) | アドレス変換装置 |
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 |