JP5862408B2 - エミュレーション装置、及びエミュレーションプログラム - Google Patents

エミュレーション装置、及びエミュレーションプログラム Download PDF

Info

Publication number
JP5862408B2
JP5862408B2 JP2012072236A JP2012072236A JP5862408B2 JP 5862408 B2 JP5862408 B2 JP 5862408B2 JP 2012072236 A JP2012072236 A JP 2012072236A JP 2012072236 A JP2012072236 A JP 2012072236A JP 5862408 B2 JP5862408 B2 JP 5862408B2
Authority
JP
Japan
Prior art keywords
environment
guest
attribute
address
host
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
JP2012072236A
Other languages
English (en)
Other versions
JP2013205972A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012072236A priority Critical patent/JP5862408B2/ja
Priority to US13/733,993 priority patent/US9626201B2/en
Publication of JP2013205972A publication Critical patent/JP2013205972A/ja
Application granted granted Critical
Publication of JP5862408B2 publication Critical patent/JP5862408B2/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
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、エミュレーション装置、及びエミュレーションプログラムに関し、特に、プロセッサのエミュレーションを行うエミュレーション装置、及びエミュレーションプログラムに関する。
従来、特定の環境向けに開発されたソフトウェアを、異なる環境上で動作させるために、エミュレータと称されるソフトウェアを実行させ、その上で特定の環境向けに開発されたソフトウェアを動作させる技術が知られている。係る技術は、エミュレーションと称されている。
一般的なプロセッサはMMU(Memory Management Unit)を内蔵しており、MMUは変換表を用いてホストOSが認識する仮想アドレスを物理アドレスに変換する。そして、エミュレータのうちプロセッサのMMUのエミュレーションを行うものは、ゲストOSが認識する物理アドレスを、ホストOSが認識する仮想アドレスに変換する。これによって、ゲストOS上で動作するゲストプログラムが、ゲストOS、エミュレータ、MMUを介してメモリにアクセスすることができる。
これに関連し、マルチモードアーキテクチャコンピュータシステムにおいて第1のモードと第2のモードの間で一時的プロセッサモードコンテキスト切り替えを実行するための方法が知られている。この方法は、コンピュータシステムのMMUを無効し、モード制御レジスタを変更してコンテキストビットを第1のモードから第2のモードに設定し、第2のモードに関する新たなページテーブルを読み込み、MMUを再アクチベートするものである。
特開2006−018819号公報
一般的なプロセッサにおいて実行されるエミュレーションは、複数回の変換を行うことによって、処理時間が遅延する場合がある。
また、上記従来の方法は、x86−64アーキテクチャに関するロングモード、そのレガシーモード、或いは32ビットv86モードコードといった同一又は類似したアーキテクチャに基づくモードを切り替えて実行することを前提としている。このため、異なる環境向けに開発されたソフトウェアを高速に動作させることができない場合がある。
一つの側面では、本発明は、異なる環境向けに開発されたソフトウェアを高速に動作させることを目的とする。
本発明の一態様は、
ホストOSによって制御されるホスト環境とは仮想アドレスと物理アドレスの対応付けが異なるゲスト環境における仮想アドレスを、前記ホスト環境における物理アドレスに変換するアドレス変換部と、
前記ゲスト環境における仮想アドレスを前記ゲスト環境における物理アドレスに変換する際に得られるページの属性が、前記ホスト環境には存在しないゲスト環境固有の属性である場合に、該ゲスト環境固有の属性を反映させた例外処理を行う例外処理部と、
を備えるエミュレーション装置である。
一実施態様によれば、異なる環境向けに開発されたソフトウェアを高速に動作させることができる。
本発明の第1実施例に係るエミュレーション装置1のハードウェア構成例である。 本発明の第1実施例に係るエミュレーション装置1のソフトウェア構成図である。 ゲストOS60が有する変換表62の構造を概念的に示す図である。 MMU32が参照する変換表42の構造を概念的に示す図である。 エミュレータ50が有する変換表52の一例である。 MMUエミュレータ部44により実行されるPTE追加処理の流れを示すフローチャートの一例である。 変換表の位置対応表の一例である。 MMUエミュレータ部44により実行される処理の流れを示すフローチャートの一例である。 ゲスト環境であるARMアーキテクチャと、ホスト環境であるIntelアーキテクチャで共通するページ属性の一覧である。 本発明の第2実施例に係るエミュレーション装置2のソフトウェア構成図である。 本発明の第3実施例に係るエミュレーション装置3のソフトウェア構成図である。
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
<第1実施例>
以下、図面を参照し、本発明の第1実施例に係るエミュレーション装置、及びエミュレーションプログラムについて説明する。
[ハードウェア構成]
図1は、本発明の第1実施例に係るエミュレーション装置1のハードウェア構成例である。エミュレーション装置1は、例えば、CPU(Central Processing Unit)10と、ドライブ装置12と、補助記憶装置16と、メモリ装置18と、インターフェース装置20と、入力装置22と、表示装置24と、を備える。これらの構成要素は、バスやシリアル回線等を介して接続されている。
CPU10は、例えば、プログラムカウンタや命令デコーダ、各種演算器、LSU(Load Store Unit)、汎用レジスタ等を有する演算処理装置としてのプロセッサである。
ドライブ装置12は、記憶媒体14からプログラムやデータを読み込み可能な装置である。プログラムを記録した記憶媒体14がドライブ装置12に装着されると、プログラムが記憶媒体14からドライブ装置12を介して補助記憶装置16にインストールされる。記憶媒体14は、例えば、CD(Compact Disc)、DVD(Digital Versatile Disc)、USB(Universal Serial Bus)メモリ等の可搬型の記憶媒体である。また、補助記憶装置16は、例えば、HDD(Hard Disk Drive)やフラッシュメモリである。
プログラムのインストールは、上記のように記憶媒体14を用いる他、インターフェース装置20がネットワークを介して他のコンピュータよりダウンロードし、補助記憶装置16にインストールすることによって行うこともできる。ネットワークは、インターネット、LAN(Local Area Network)、無線ネットワーク等である。また、プログラムは、エミュレーション装置1の出荷時に、予め補助記憶装置16やROM(Read Only Memory)等に格納されていてもよい。
このようにしてインストール又は予め格納されたプログラムをCPU10が実行することにより、図1に示す態様の情報処理装置が、本実施例のエミュレーション装置1として機能することができる。
メモリ装置18は、例えば、RAM(Random Access Memory)やEEPROM(Electrically Erasable and Programmable Read Only Memory)である。インターフェース装置20は、上記ネットワークとの接続等を制御する。
入力装置22は、例えば、キーボード、マウス、ボタン、タッチパッド、タッチパネル、マイク等である。また、表示装置24は、例えば、LCD(Liquid Crystal Display)やCRT(Cathode Ray Tube)等の表示装置である。エミュレーション装置1は、表示装置24の他、プリンタ、スピーカ等の他の種類の出力装置を備えてもよい。
[ソフトウェア構成]
図2は、本発明の第1実施例に係るエミュレーション装置1のソフトウェア構成図である。図示するように、エミュレーション装置1は、プロセッサ部30と、MMU(Memory Management Unit)32と、ホストOS(オペレーティングシステム)40と、エミュレータ50と、ゲストOS60と、ゲストプログラム70と、を備える。プロセッサ部30は、図1に示すハードウェアの一部又は全部である。
ホストOS40は、MMUエミュレータ部44と、例外ハンドラ46とを有する。また、エミュレータ50は、デバイスエミュレータ部54と、命令エミュレータ部56とを有する。なお、これらの機能ブロックが明確に分離したプログラムによって実現される必要はなく、サブルーチンや関数として他のプログラムによって呼び出されるものであってもよい。
ホストOS40は、例えばIntel(登録商標)社のx86プロセッサに対応するオペレーティングシステムである。
一方、ゲストOS60は、ARM(登録商標)アーキテクチャに基づくオペレーティングシステムであり、ゲストプログラム70は、ゲストOS60上で動作可能なプログラムである。すなわち、ゲストプログラム70は、ゲストOS60が制御するゲスト環境で動作可能なプログラムである。
エミュレータ50は、ゲストOS60が有する変換表62と、MMU32が参照する変換表42との間を仲介し、ゲストOS60が認識する物理アドレスを、ホストOS40が認識する仮想アドレスに変換する機能を有する。これによって、ホストOS40によって制御されるホスト環境とは、仮想アドレスと物理アドレスの対応付けが異なるゲスト環境で動作するゲストプログラム70が、プロセッサ30のハードウェア資源を利用することができる。
図3は、ゲストOS60が有する変換表62の構造を概念的に示す図である。変換表62は、レジスタ62Aと、1段目のアドレス格納部62Bと、2段目のアドレス格納部62Cと、を備える。各アドレス格納部は、例えばメモリ装置18の専用領域である。レジスタ62Aには、1段目のアドレス格納部62Bが格納された領域の先頭アドレスが格納されている。レジスタ62Aの内容は、ゲストOS60によって書き換えられる。ゲストOS60は、ゲストプログラム70が切り替わるとレジスタ62Aの内容を書き換えることにより、ゲストプログラム70毎の変換表62を用意する。
仮想アドレスは、例えば、インデックス1、インデックス2、及びオフセットを含む。ゲストOS60は、仮想アドレスが与えられると、1段目のアドレス格納部62Bのうち、レジスタ62Aが先頭アドレスを示す領域においてインデックス1が示すアドレスに格納されたデータを読み出す。そして、ゲストOS60は、2段目のアドレス格納部62Cのうち、読み出した値が先頭アドレスを示す領域においてインデックス2が示すアドレスに格納されたデータを読み出す。2段目のアドレス格納部62Cから読み出されるデータは、物理アドレスの先頭と、ページ属性を含むPTE(Page Table Entry)である。ゲストOS60は、読み出されたPTEのうち物理アドレスの先頭と、仮想アドレスに含まれるオフセットを結合し、物理アドレスとして出力する。
変換表62、52、42には、対応するTLB(Translate Lookaside Buffer)が設定されている。TLBは、変換表に対して、メモリに対するキャッシュメモリのような機能を有する。すなわち、一度変換を行った仮想アドレスと物理アドレスの組を保持し、TLBに格納された仮想アドレスについては変換表を用いることなく変換を行わせることにより、高速変換を実現する。
図4は、MMU32が参照する変換表42の構造を概念的に示す図である。変換表42は、レジスタ42Aと、1段目のアドレス格納部42Bと、2段目のアドレス格納部42Cと、3段目のアドレス格納部42Dを備える。各アドレス格納部は、例えばメモリ装置18の専用領域である。レジスタ42Aには、1段目のアドレス格納部42Bが格納された領域の先頭アドレスが格納されている。
仮想アドレスは、例えば、インデックス1、インデックス2、インデックス3、及びオフセットを含む。MMU32は、仮想アドレスが与えられると、1段目のアドレス格納部42Bのうち、レジスタ42Aが先頭アドレスを示す領域においてインデックス1が示すアドレスに格納されたデータを読み出す。そして、MMU32は、2段目のアドレス格納部42Cのうち、読み出した値が先頭アドレスを示す領域においてインデックス2が示すアドレスに格納されたデータを読み出す。同様に、MMU32は、3段目のアドレス格納部42Dのうち、読み出した値が先頭アドレスを示す領域においてインデックス3が示すアドレスに格納されたデータを読み出す。3段目のアドレス格納部42Dから読み出されるデータは、物理アドレスの先頭と、ページ属性を含むPTEである。MMU32は、読み出されたPTEのうち物理アドレスの先頭と、仮想アドレスに含まれるオフセットを結合し、物理アドレスとして出力する。
図5は、エミュレータ50が有する変換表52の一例である。エミュレータ50は、このような変換表を用いて、ゲストOS60が認識する物理アドレスを、ホストOS40が認識する仮想アドレスに変換する。また、エミュレータ50は、アクセスされたアドレス空間がメモリ空間、デバイス空間、或いは図示しない命令空間であるかによって、デバイスエミュレータ部54、命令エミュレータ部56を動作させる。
MMUエミュレータ部44は、変換表62、52、42を用いて、ゲストOS60が認識する仮想アドレスと、ホストOS40が認識する物理アドレスの対応付けを変換表42の新規部分に登録する。これによって、ゲストOS60が認識する仮想アドレスからホストOS40が認識する物理アドレスへの変換が迅速に行われる。以下、対応付けを変換表42に登録する処理について説明する。
図6は、MMUエミュレータ部44により実行されるPTE追加処理の流れを示すフローチャートの一例である。本フローチャートは、例えば、ゲストプログラム70が補助記憶装置16からメモリ装置18にロードされたとき、変換表62に新たなPTEが追加されたとき等に実行される。
まず、MMUエミュレータ部44は、MMUエミュレータ部44は、当該ゲストプログラム70に対応する変換表62に格納されたPTEを解析し、仮想アドレス、物理アドレス、ページ属性に分類する(S100)。
次に、MMUエミュレータ部44は、分類した物理アドレスに基づき、データアクセスがデバイスへのアクセスであるか否かを判定する(S102)。データアクセスがデバイスへのアクセスである場合、MMUエミュレータ部44は、S100に戻り、次のPTEを解析する。
データアクセスがデバイスへのアクセスでない場合、MMUエミュレータ部44は、PTEに含まれるページ属性が、ゲスト環境に固有の属性であるか否かを判定する(104)。ページ属性が、ゲスト環境に固有の属性である場合、MMUエミュレータ部44は、MMUエミュレータ部44が保持する固有の属性リストに、ページ属性を登録する(S106)。属性については、後述する。
ページ属性が、ゲスト環境に固有の属性でない場合、MMUエミュレータ部44は、変換表62、42、52を利用して、ゲストOS60が認識する仮想アドレスをホストOS40が認識する物理アドレスに変換する(S108)。
そして、MMUエミュレータ部44は、S108において変換したゲストOS60が認識する仮想アドレスとホストOS40が認識する物理アドレスとの対応付けを変換表42に登録する(S110)。
S104〜S110の処理が終了すると、MMUエミュレータ部44は、解析を終了するか否かを判定する(S112)。解析を終了しない場合、MMUエミュレータ部44は、S100に戻り、処理を実行する。
なお、図6のフローチャートとは逆に、ゲストプログラム70が終了した場合等には、MMUエミュレータ部44は、PTEを変換表42から削除する処理を行う。この場合、MMUエミュレータ部44は、削除するPTEを変換表42のPTEに変換し、変換表42から対応するPTEを削除し、更に、変換表42に対応するTLBから当該PTEを削除する。
また、MMUエミュレータ部44は、ゲストプログラム70が切り替わった際には、ゲストプログラム70に対応する新しい変換表42を用意する。この場合、MMUエミュレータ部44は、古い変換表42に対応するPTEを削除し、新しい変換表62のアドレスを検索キーにして、変換表の位置対応表を検索する。図7は、変換表の位置対応表の一例である。MMUエミュレータ部44は、変換表の位置対応表に新しい変換表62のアドレスが存在する場合、該当する変換表42の先頭アドレスから記述された変換表42を採用して変換を行う。MMUエミュレータ部44は、変換表の位置対応表に新しい変換表62のアドレスが存在しない場合、新しい変換表42の先頭アドレスを設定する。そして、MMUエミュレータ部44は、設定した先頭アドレスから、図6に示す処理によって変換表42を作成する。
次に、MMUエミュレータ部44による、ゲストプログラム70によるデータアクセスがあった際の処理について説明する。図8は、MMUエミュレータ部44により実行される処理の流れを示すフローチャートの一例である。
まず、MMUエミュレータ部44は、ゲストプログラム70によるデータアクセスが発生するまで待機する(S200)。
ゲストプログラム70によるデータアクセスが発生すると、MMUエミュレータ部44は、変換表42を用いて、ゲストOS60が認識する仮想アドレスをホストOS40が認識する物理アドレスに変換する(S202)。
次に、MMUエミュレータ部44は、変換に失敗したか否か、及びアクセス権限が無いかどうかを判定する(S204、S206)。
S204において変換に失敗したと判定された場合、及びS206においてアクセス権限が無いと判定された場合は、例外ハンドラ46が起動する(S208)。なお、MMUエミュレータ部44は、変換しようとするページがゲスト環境に固有の属性を有している場合、例えば擬似的な変換失敗信号を出力することによって、例外ハンドラ46を起動させる。
例外ハンドラ46は、当該データアクセスがメモリアクセスであるか否かを判定し、データアクセスがメモリアクセスでない場合、デバイスエミュレータ部54又は命令エミュレータ部56にエミュレーションを行わせる。また、例外ハンドラ46は、データアクセスに係るPTEに含まれるページ属性が、ゲスト環境に固有の属性である場合には、当該固有の属性に従ってデータの処理を行う。
以下、ゲスト環境とホスト環境のそれぞれに固有の属性、及び共通する属性について説明する。
図9は、ゲスト環境であるARMアーキテクチャと、ホスト環境であるIntelアーキテクチャで共通するページ属性の一覧である。
ARMアーキテクチャにおける「XN」は「execute-never bit」を示し、実行するかどうかを制御するビットであることを示している。これに対し、Intelアーキテクチャにおける「XD」は「execute-disable」を示し、実行許可を示している。
また、ARMアーキテクチャにおける「AP」は「Access Permission bits」すなわちアクセスを許可するかどうか制御するビットを示している。これに対し、Intelアーキテクチャにおける「R/W」は「Read/Write」すなわち書き込み許可を示し、「U/S」は「User/Supervisor」すなわちユーザーモードの書き込み許可を示している。
また、ARMアーキテクチャにおける「AP[0]」は「access flag」すなわちアクセスしたかどうか記録するビットを示している。これに対し、Intelアーキテクチャにおける「A」は「Accessed」すなわちアクセスしたかどうかの記録を示し、「D」は「Dirty」すなわち変更があったかどうかの記録を示している。
また、ARMアーキテクチャにおける「TEX,C,B」は「Memory region attribute bits」を示し、キャッシュを制御するビットであることを示している。これに対し、Intelアーキテクチャにおける「PWT」は「Page-level Write-Through」すなわちライトスルーにするかどうかを示し、「PCD」は「Page-level Cache Disable」すなわちキャッシュの有効・無効を示す。また、Intelアーキテクチャにおける「PAT」は「Page-Attribute Table」すなわちキャッシュを制御するビットを集めた表の有効/無効を示している。
また、ARMアーキテクチャにおける「S」は「Shareable」すなわち複数のプロセッサで共有するかどうか制御するビットを示している。これに対し、Intelアーキテクチャにおける「G」は「Global」すなわち複数のプロセッサで共有するかどうかを示している。
以上は、ゲスト環境であるARMアーキテクチャと、ホスト環境であるIntelアーキテクチャで共通するページ属性の一覧であるが、ゲスト環境であるARMアーキテクチャに固有の属性も存在する。例えば、ページ属性「nG」は「not Global」を示す。ARMアーキテクチャでは、プログラム毎に用意される仮想アドレス空間にASID(Address Space Identifier)を割り当て、TLBに登録するときに、PTEとASIDの組を登録している。このとき、TLBに登録されたnG=1のPTEのうち、指定したASIDを有するPTEだけが、消去可能なPTEとして扱われる。
例外ハンドラ46は、ゲスト環境のページ属性「nG」に対応するために、以下のような処理を行う。例外ハンドラ46は、ASID毎に変換表42を用意する。従って、ASIDが変更されたとき、例外ハンドラ46は、変換表42を切り替える。
そして、例外ハンドラ46は、変換表42の変更時には、PTEのnG属性を調べ、nG=0である場合、すべての変換表42に変更を反映させ、nG=1の場合、対応するASIDの変換表42に変更を反映させる。なお、係る処理は、MMUエミュレータ部44が行ってもよい。
また、例外ハンドラ46は、この他にも、ゲスト環境に固有の属性である場合、変換に失敗した場合、アクセス権限が無い場合に対して種々の例外処理を行う。例外ハンドラ46は、例えばx86のページフォルト例外処理にエミュレーション機能を追加した機能部である。
例外ハンドラ46は、発生アドレスの属するページが固有の属性を持っている場合、上記のように属性に対応したエミュレーション処理を呼び出し、結果をゲスト環境に反映させる。
また、例外ハンドラ46は、属性に応じたアクセス権限をチェックし、アクセス可能であれば、ホストのページ属性をアクセス可能にして、ゲストに反映させる。一方、例外ハンドラ46は、アクセス不可であれば、アクセス不可のエラーコードをゲスト環境に反映させる。
以上説明した本実施例のエミュレーション装置、及びエミュレーションプログラムによれば、ゲスト環境に固有の属性を有するデータを例外処理するため、異なる環境向けに開発されたソフトウェアを高速に動作させることができる。
なお、特許請求の範囲における「アドレス変換部」は、例えばMMUエミュレータ部44に対応し、「例外処理部」は、例えば例外ハンドラ46に対応する。
以下、第1実施例のエミュレーション装置1からソフトウェア配置を変更した他の実施例について説明する。
<第2実施例>
図10は、本発明の第2実施例に係るエミュレーション装置2のソフトウェア構成図である。第2実施例に係るエミュレーション装置2は、第1実施例と比較すると、ゲストOS60を省略している。このため、第2実施例に係るエミュレーション装置2は、プロセッサのエミュレーションのみ行うものであり、例えばオープンソースのプロセッサエミュレータであるQEMUの、ユーザーモードエミュレーションに適用することができる。ユーザーモードエミュレーションでは、あるプロセッサを対象として設計されたプロセスを、他のプロセッサで実行させることができる。
<第3実施例>
図11は、本発明の第3実施例に係るエミュレーション装置3のソフトウェア構成図である。第3実施例に係るエミュレーション装置3は、第1実施例と比較すると、エミュレータ50がMMUエミュレータ部、例外ハンドラ、デバイスエミュレータ部、命令エミュレータ部を備え、ハイパーバイザーとして機能する。
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
以上の説明に関し、さらに以下の項を開示する。
(付記1)
ホストOSによって制御されるホスト環境とは仮想アドレスと物理アドレスの対応付けが異なるゲスト環境における仮想アドレスを、前記ホスト環境における物理アドレスに変換するアドレス変換部と、
前記ゲスト環境における仮想アドレスを前記ゲスト環境における物理アドレスに変換する際に得られるページの属性が、前記ホスト環境には存在しないゲスト環境固有の属性である場合に、該ゲスト環境固有の属性を反映させた例外処理を行う例外処理部と、
を備えるエミュレーション装置。
(付記2)
前記例外処理部は、前記データの属性が、前記ゲスト環境固有の属性のうち特定の属性である場合に、前記ゲスト環境で動作するプログラム毎に用意される仮想アドレス空間の識別子毎に、前記ゲスト環境における仮想アドレスを前記ホスト環境における物理アドレスに変換する変換表を保持し、前記仮想アドレス空間の識別子が変更されたときに前記変換表を切り替えることを特徴とする、
付記1記載のエミュレーション装置。
(付記3)
コンピュータに、
ホストOSによって制御されるホスト環境とは仮想アドレスと物理アドレスの対応付けが異なるゲスト環境における仮想アドレスを、前記ホスト環境における物理アドレスに変換させ、
前記ゲスト環境で動作するプログラムが扱うページの属性が、前記ホスト環境には存在しないゲスト環境固有の属性である場合に、該ゲスト環境固有の属性を反映させた例外処理を行わせることを特徴とする、
エミュレーションプログラム。
(付記4)
前記例外処理は、前記データの属性が、前記ゲスト環境固有の属性のうち特定の属性である場合に、前記ゲスト環境で動作するプログラム毎に用意される仮想アドレス空間の識別子毎に、前記ゲスト環境における仮想アドレスを前記ホスト環境における物理アドレスに変換する変換表を保持し、前記仮想アドレス空間の識別子が変更されたときに前記変換表を切り替える処理であることを特徴とする、
付記3記載のエミュレーションプログラム。
1、2、3 エミュレーション装置
10 CPU
12 ドライブ装置
14 記憶媒体
16 補助記憶装置
18 メモリ装置
20 インターフェース装置
22 入力装置
24 表示装置
30 プロセッサ部
32 MMU
42、52、62 変換表
40 ホストOS
44 MMUエミュレータ部
46 例外ハンドラ
50 エミュレータ
54 デバイスエミュレータ部
56 命令エミュレータ部
60 ゲストOS
70 ゲストプログラム

Claims (4)

  1. ホストOSによって制御されるホスト環境とは仮想アドレスと物理アドレスの対応付けが異なるゲスト環境における仮想アドレスを、前記ホスト環境における物理アドレスに変換するアドレス変換部と、
    前記ゲスト環境における仮想アドレスを前記ゲスト環境における物理アドレスに変換する際に得られるページの属性が、前記ホスト環境には存在しないゲスト環境固有の属性である場合に、該ゲスト環境固有の属性を反映させた例外処理を行う例外処理部と、
    を備えるエミュレーション装置。
  2. 前記例外処理部は、前記ページの属性が、前記ゲスト環境固有の属性のうち特定の属性である場合に、前記ゲスト環境で動作するプログラム毎に用意される仮想アドレス空間の識別子毎に、前記ゲスト環境における仮想アドレスを前記ホスト環境における物理アドレスに変換する変換表を保持し、前記仮想アドレス空間の識別子が変更されたときに前記変換表を切り替えることを特徴とする、
    請求項1記載のエミュレーション装置。
  3. コンピュータに、
    ホストOSによって制御されるホスト環境とは仮想アドレスと物理アドレスの対応付けが異なるゲスト環境における仮想アドレスを、前記ホスト環境における物理アドレスに変換させ、
    前記ゲスト環境で動作するプログラムが扱うページの属性が、前記ホスト環境には存在しないゲスト環境固有の属性である場合に、該ゲスト環境固有の属性を反映させた例外処理を行わせることを特徴とする、
    エミュレーションプログラム。
  4. 前記例外処理は、前記ページの属性が、前記ゲスト環境固有の属性のうち特定の属性である場合に、前記ゲスト環境で動作するプログラム毎に用意される仮想アドレス空間の識別子毎に、前記ゲスト環境における仮想アドレスを前記ホスト環境における物理アドレスに変換する変換表を保持し、前記仮想アドレス空間の識別子が変更されたときに前記変換表を切り替える処理であることを特徴とする、
    請求項3記載のエミュレーションプログラム。
JP2012072236A 2012-03-27 2012-03-27 エミュレーション装置、及びエミュレーションプログラム Expired - Fee Related JP5862408B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012072236A JP5862408B2 (ja) 2012-03-27 2012-03-27 エミュレーション装置、及びエミュレーションプログラム
US13/733,993 US9626201B2 (en) 2012-03-27 2013-01-04 Processor emulation device and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012072236A JP5862408B2 (ja) 2012-03-27 2012-03-27 エミュレーション装置、及びエミュレーションプログラム

Publications (2)

Publication Number Publication Date
JP2013205972A JP2013205972A (ja) 2013-10-07
JP5862408B2 true JP5862408B2 (ja) 2016-02-16

Family

ID=49236192

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012072236A Expired - Fee Related JP5862408B2 (ja) 2012-03-27 2012-03-27 エミュレーション装置、及びエミュレーションプログラム

Country Status (2)

Country Link
US (1) US9626201B2 (ja)
JP (1) JP5862408B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI540511B (zh) * 2015-04-30 2016-07-01 捷鼎國際股份有限公司 用以存取虛擬機器之電腦系統及方法
EP3605327B1 (en) 2018-03-20 2021-12-15 Cloudminds (Shenzhen) Robotics Systems Co., Ltd. Method and apparatus for capturing screenshots of guest operating system in computer device
JP6708860B2 (ja) * 2019-04-18 2020-06-10 エルゼットラブズ ゲーエムベーハー 仮想アドレス空間レガシーエミュレーションシステムにおける保護キー管理およびプレフィックス変換

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6671791B1 (en) * 2001-06-15 2003-12-30 Advanced Micro Devices, Inc. Processor including a translation unit for selectively translating virtual addresses of different sizes using a plurality of paging tables and mapping mechanisms
US7058768B2 (en) * 2002-04-17 2006-06-06 Microsoft Corporation Memory isolation through address translation data edit control
US7383587B2 (en) * 2002-11-18 2008-06-03 Arm Limited Exception handling control in a secure processing system
US7062631B1 (en) * 2003-07-17 2006-06-13 Transmeta Corporation Method and system for enforcing consistent per-physical page cacheability attributes
JP2005078419A (ja) * 2003-09-01 2005-03-24 Ricoh Co Ltd 情報処理装置及びファイル管理方法
US8024730B2 (en) * 2004-03-31 2011-09-20 Intel Corporation Switching between protected mode environments utilizing virtual machine functionality
US7260702B2 (en) 2004-06-30 2007-08-21 Microsoft Corporation Systems and methods for running a legacy 32-bit x86 virtual machine on a 64-bit x86 processor
US7334107B2 (en) * 2004-09-30 2008-02-19 Intel Corporation Caching support for direct memory access address translation
US7340582B2 (en) * 2004-09-30 2008-03-04 Intel Corporation Fault processing for direct memory access address translation
US7444493B2 (en) * 2004-09-30 2008-10-28 Intel Corporation Address translation for input/output devices using hierarchical translation tables
US8843727B2 (en) * 2004-09-30 2014-09-23 Intel Corporation Performance enhancement of address translation using translation tables covering large address spaces
EP1669864B1 (en) * 2004-12-03 2010-06-02 STMicroelectronics Srl A process for managing virtual machines in a physical processing machine, corresponding processor system and computer program product therefor
US7886126B2 (en) * 2005-01-14 2011-02-08 Intel Corporation Extended paging tables to map guest physical memory addresses from virtual memory page tables to host physical memory addresses in a virtual machine system
US20070038435A1 (en) * 2005-08-10 2007-02-15 Takayoshi Koizumi Emulation method, emulator, computer-attachable device, and emulator program
US7499057B2 (en) * 2005-09-09 2009-03-03 Microsoft Corporation Address translation in an integrated graphics environment
US9274974B1 (en) * 2005-10-21 2016-03-01 Vmware, Inc. Isolating data within a computer system using private shadow mappings
US8045828B2 (en) * 2007-07-09 2011-10-25 Kabushiki Kaisha Toshiba Apparatus for processing images, and method and computer program product for detecting image updates
US8146107B2 (en) * 2007-07-10 2012-03-27 Mitel Networks Corporation Virtual machine environment for interfacing a real time operating system environment with a native host operating system
US8146106B2 (en) * 2007-12-31 2012-03-27 Intel Corporation On-demand emulation via user-level exception handling
JP4810548B2 (ja) * 2008-02-07 2011-11-09 株式会社東芝 サーバ装置、更新画像検出方法およびプログラム
JP5115332B2 (ja) * 2008-05-22 2013-01-09 富士通株式会社 エミュレーションプログラム、エミュレーション装置およびエミュレーション方法
US8127107B2 (en) * 2008-05-30 2012-02-28 Vmware, Inc. Virtualization with merged guest page table and shadow page directory
WO2011007599A1 (ja) * 2009-07-17 2011-01-20 株式会社 東芝 メモリ管理装置
US8341627B2 (en) * 2009-08-21 2012-12-25 Mcafee, Inc. Method and system for providing user space address protection from writable memory area in a virtual environment
US8327059B2 (en) * 2009-09-30 2012-12-04 Vmware, Inc. System and method to enhance memory protection for programs in a virtual machine environment
US9081501B2 (en) * 2010-01-08 2015-07-14 International Business Machines Corporation Multi-petascale highly efficient parallel supercomputer
US9529729B2 (en) * 2010-11-16 2016-12-27 International Business Machines Corporation Location of memory management translations in an emulated processor
US8832351B2 (en) * 2010-12-13 2014-09-09 Vmware, Inc. Virtualizing processor memory protection with “L1 iterate and L2 drop/repopulate”

Also Published As

Publication number Publication date
US20130262075A1 (en) 2013-10-03
JP2013205972A (ja) 2013-10-07
US9626201B2 (en) 2017-04-18

Similar Documents

Publication Publication Date Title
US20220050791A1 (en) Linear to physical address translation with support for page attributes
JP6202543B2 (ja) 動的アドレス変換テーブルを管理する方法、システムおよびコンピュータ・プログラム
Gandhi et al. Agile paging: Exceeding the best of nested and shadow paging
JP6284130B2 (ja) ローカル・クリア制御
US9335943B2 (en) Method and apparatus for fine grain memory protection
JP5717847B2 (ja) コンピューティング環境のイベントを管理する方法、これを実行するためのコンピュータ・プログラム、およびコンピュータ・システム
US9626298B2 (en) Translation of input/output addresses to memory addresses
US9218302B2 (en) Page table management
JP5736044B2 (ja) アダプタに関する操作パラメータの選択的設定の制御
JPH0658650B2 (ja) 仮想計算機システム
JP2013534666A (ja) アダプタのアドレス・スペースへのゲスト・アクセスのための方法、システム、およびコンピュータ・プログラム
EP3789881A1 (en) Method and device for monitoring memory access behavior of sample process
JP5862408B2 (ja) エミュレーション装置、及びエミュレーションプログラム
JP5318197B2 (ja) ホストデータ処理装置内におけるデバイスエミュレーションのサポート
CN114840299B (zh) 一种申威架构下的改进嵌套页表内存虚拟化方法与系统
JPH0248750A (ja) 仮想計算機システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150811

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150929

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151109

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151214

R150 Certificate of patent or registration of utility model

Ref document number: 5862408

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees