JP2007183952A - ゲストがメモリ変換されたデバイスにアクセスする方法及び装置 - Google Patents

ゲストがメモリ変換されたデバイスにアクセスする方法及び装置 Download PDF

Info

Publication number
JP2007183952A
JP2007183952A JP2006349813A JP2006349813A JP2007183952A JP 2007183952 A JP2007183952 A JP 2007183952A JP 2006349813 A JP2006349813 A JP 2006349813A JP 2006349813 A JP2006349813 A JP 2006349813A JP 2007183952 A JP2007183952 A JP 2007183952A
Authority
JP
Japan
Prior art keywords
access
shadow
guest
logic
memory
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
Application number
JP2006349813A
Other languages
English (en)
Other versions
JP4668166B2 (ja
Inventor
Gilbert Neiger
ネイガー ギルヴァート
Andrew V Anderson
ヴィ アンダーソン アンドリュー
Steven M Bennett
エム ベネット スティーヴン
Rajesh Sankaran Mudukkarumukumana
サンカラン マドゥッカルムクマナ ラジェシュ
Richard A Uhlig
エイ アーリグ リチャード
Rajesh S Parthasarathy
エス パルササラシー ラジェシュ
Sebastian Schoenburg
シェーンブルク セバスティアン
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of JP2007183952A publication Critical patent/JP2007183952A/ja
Application granted granted Critical
Publication of JP4668166B2 publication Critical patent/JP4668166B2/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • 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/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】 本発明の課題は、効果的な情報処理システムにおけるリソースの仮想化を実現する方法、装置及びシステムを提供することである。
【解決手段】
上記課題を解決するため、本発明は、デバイスに変換されたメモリアドレスを利用した前記デバイスにアクセスするゲストの試みに応答して、アクセスタイプに基づき、前記アクセスが許可されるか判断する評価ロジックと、前記アクセスは許可されないと前記評価ロジックが判断した場合、前記ゲストからホストに当該装置の制御を移行するイグジットロジックとから構成されることを特徴とする装置を提供する。
【選択図】 図1

Description

本開示は、情報処理の技術分野に関し、より詳細には、情報処理システムにおけるリソースの仮想化に関する。
一般に、情報処理システムにおけるリソースの仮想化(virtualization)のコンセプトは、1以上のオペレーティングシステム(OS)の複数のインスタンスが、各OSがシステムとそれのリソースに対して完全かつ直接的な制御を有するよう設計されていても、1つの情報処理システム上で実行することを可能にする。仮想化は、典型的には、ソフトウェア(バーチャルマシーンモニタ、すなわち、VMMなど)を利用して、OSが完全かつ直接的に制御可能な1以上の仮想プロセッサを含む仮想リソースを有する「バーチャルマシーン(VM)」を各OSに提供することにより実現されるが、VMMは、仮想化環境(VM)における物理リソースの共有化及び/又は割当てなど、仮想化ポリシーを実現するためシステム環境を維持する。VM上で実行される各OS及び他の何れかのソフトウェアは、「ゲスト」又は「ゲストソフトウェア」と呼ばれ、「ホスト」又は「ホストソフトウェア」は、仮想化環境の外部で実行され、仮想化環境を認識した又は認識していないVMMなどのソフトウェアである。
情報処理システムにおけるプロセッサは、例えば、VM上でゲストを実行するため、仮想化環境に入る命令をサポートすることによって、仮想化をサポートするかもしれない。仮想化環境では、優先されるレジスタ又はリソースにアクセスするための外部のインタラプト又は試みなど、特定のイベント、処理及び状況は、インターセプト(intercept)され、すなわち、VMMが例えば、仮想化ポリシーを実現するため動作可能となるように、プロセッサに仮想化環境から離脱させるかもしれない。物理プロセッサはまた、仮想化環境を維持するための他の命令をサポートするようにしてもよく、物理プロセッサの仮想化機能を表示又は制御するメモリ又はレジスタビットを有するかもしれない。
システムの優先的リソースは、入出力(I/O)デバイスがあるメモリアドレスに変換されたI/Oトランザクション及び/又はメモリトランザクションを介しアクセス可能なI/Oデバイス(メモリ変換デバイス(memory−mapped device))を有するかもしれない。I/Oトランザクションは、ゲストがI/Oデバイスに直接アクセスすることを回避するためインターセプトされるかもしれない。メモリ変換されたI/Oデバイスへのメモリトランザクションは、I/Oデバイスが変換されたページを非プレゼント(present)又は非ライタブル(writable)とマークすることによって、ページベースメモリ管理アーキテクチャによりインターセプトされるかもしれない。
本発明の課題は、上記問題点に鑑み、効果的な情報処理システムにおけるリソースの仮想化を実現する方法、装置及びシステムを提供することである。
上記課題を解決するため、本発明は、デバイスに変換されたメモリアドレスを利用した前記デバイスにアクセスするゲストの試みに応答して、アクセスタイプに基づき、前記アクセスが許可されるか判断する評価ロジックと、前記アクセスは許可されないと前記評価ロジックが判断した場合、前記ゲストからホストに当該装置の制御を移行するイグジットロジックとから構成されることを特徴とする装置を提供する。
本発明はまた、デバイスに変換されるメモリアドレスを利用して、前記デバイスにアクセスする試みを検出するステップと、アクセスタイプに基づき、前記アクセスが許可されているか判断するステップと、前記アクセスが許可されていない場合、前記ゲストからホストに制御を移行するステップとから構成されることを特徴とする方法を提供する。
本発明はまた、メモリと、デバイスに変換されたメモリアドレスを利用した前記デバイスにアクセスするゲストの試みに応答して、アクセスタイプに基づき、前記アクセスが許可されるか判断する評価ロジックと、前記アクセスは許可されないと前記評価ロジックが判断した場合、前記ゲストからホストに当該プロセッサの制御を移行するイグジットロジックとを有するプロセッサとから構成されることを特徴とするシステムを提供する。
本発明によると、効果的な情報処理システムにおけるリソースの仮想化を実現する方法、装置及びシステムを提供することが可能となる。
以下において、ゲストがメモリ変換デバイスにアクセスするための装置、方法及びシステムの実施例が説明される。本記載では、本発明のより完全なる理解を提供するため、コンポーネント、システムコンフィギュレーションなどの多数の具体的詳細が与えられる。しかしながら、本発明がこのような具体的詳細なしに実現可能であることは、当業者により理解されるであろう。さらに、いくつかの周知の構成、回路などは、本発明を不要に不明りょうにすることを回避するため、詳細には説明されない。
仮想化環境のパフォーマンスは、インターセプトされるイベントの頻度が最小化される場合、向上するかもしれない。本発明の実施例は、メモリ変換デバイスの仮想化をサポートするのに利用可能であり、仮想化環境におけるパフォーマンスを向上させるのに効果的であるかもしれない。一実施例では、それらは、Pentium(登録商標)系プロセッサにおけるAPIC(Advanced Programmable Interrupt Controller)のTPR(Task Priority Register)の仮想化をサポートするのに利用可能である。本実施例では、TPRへのすべてのゲストアクセスがVMMによりインターセプトされる仮想化環境において、TPRへの一部のゲストアクセスに対するVMMのインターセプトを不要にすることによりパフォーマンスを向上させるかもしれない。
図1は、本発明の実施例が動作可能な仮想化アーキテクチャ100を示す。図1において、ベアプラットフォーム(bare platform)ハードウェア110は、任意のOS又はVMMソフトウェアを実行可能な任意のデータ処理装置であってもよい。例えば、ベアプラットフォームハードウェアは、パーソナルコンピュータ、メインフレームコンピュータ、ポータブルコンピュータ携帯装置、セットトップボックス、サーバ又は他の何れかの計算システムのものであるかもしれない。ベアプラットフォームハードウェア110は、プロセッサ120、メモリ130、入出力(I/O)デバイス111及びチップセット112を有する。
プロセッサ120は、Pentium(登録商標)系プロセッサ、Itanium(登録商標)系プロセッサ、インテルコーポレイションからの他のプロセッサ、若しくは他の企業からのプロセッサなどの汎用マイクロプロセッサ、又はデジタル信号プロセッサ若しくはマイクロコントローラを含む任意のタイプのプロセッサであってもよい。図1は、1つのプロセッサ120しか示していないが、ベアプラットフォームハードウェア110は、各々が任意数の実行コアを備えた任意数のマルチコアプロセッサと、各々が任意数のスレッドを備えた任意数のマルチスレッドプロセッサとを含む任意数のプロセッサを含むかもしれない。
メモリ130は、SRAM(Static Random Access Memory)、DRAM(Dynamic RAM)、半導体ベースROM、フラッシュメモリ、磁気ディスクメモリ、光ディスクメモリ、プロセッサ120により可読な他の任意のタイプの媒体又はこのような媒体の何れかの組み合わせであってもよい。メモリ130は、何れかのアドレッシング技術によりアドレス指定可能であり、ベアプラットフォームハードウェア110に図示される、又は図示されない何れかのデバイスが、メモリ130のアドレス領域内のアドレスに変換されるかもしれない。
I/Oデバイス115は、モニタ、キーボード、マウス、プリンタ、ネットワークインタフェース、情報ストレージ装置などの任意数の周辺又はI/Oデバイスを表すかもしれない。チップセット111は、システムロジック、バスコントロール、バスインタフェース、バスブリッジ、メモリコントロール、周辺デバイスコントロール、周辺デバイス機能、システムコンフィギュレーションなど任意数のタスクを実行する任意数のコンポーネントを含むかもしれない。いくつかの実施例では、I/Oデバイス115は、通常のメモリアクセス命令を用いて1以上のアドレス領域を介し、すなわち、メモリ変換インタフェースを介しアクセスされるかもしれない。メモリ変換I/Oデバイスは、それを介しアクセス可能とされる少なくも1つのそのようなアドレス領域を有する。
プロセッサ120、メモリ130、I/Oデバイス115及びチップセット111は、例えば、1以上のバス、ポイント・ツー・ポイント又は他の有線又は無線接続を直接的又は間接的に介するなど、何れか既知のアプローチに従って互いに接続又は通信するようにしてもよい。ベアプラットフォームハードウェア110はまた、任意数のさらなるデバイス又は接続を有するようにしてもよい。
ベアプラットフォームハードウェア100に加えて、図1は、VMM140、VM150と160、ゲストOS及びアプリケーション152、154、155、162、164と165を示す。
VMM140は、VM、すなわち、ベアプラットフォームハードウェア110のアブストラクションをゲストに提供し、あるいは、VMを生成及び管理し、仮想化環境100の内部で仮想化ポリシーを実現するため、ベアプラットフォームハードウェア110にインストール又はアクセス可能な任意のソフトウェア、ファームウェア又はハードウェアホストであってもよい。他の実施例では、ホストは、ベアプラットフォームハードウェア110を制御可能な任意のVMM、ハイパーバイザ(hypervisor)、OS、他のソフトウェア、ファームウェア又はハードウェアであってもよい。ゲストは、任意のOS、VMM140のインスタンスを含む任意のVMM、ハイパーバイザ、アプリケーション又は他のソフトウェアであってもよい。
各ゲストは、VMに提供されるプラットフォーム及びプロセッサのアーキテクチャに従って、ベアプラットフォームハードウェア110のプロセッサ、プラットフォームレジスタ、メモリ及び入出力デバイスなどの物理リソースにアクセスすることを期待する。図1は、2つのVM150と160を示し、VM150にはゲストOS152及びゲストアプリケーション154と155がインストールされ、VM160にはゲストOS162及びゲストアプリケーション164と165がインストールされている。図1は、2つのVMと各VMに2つのアプリケーションしか示していないが、本発明の範囲内において、任意数のVMが生成可能であり、任意数のアプリケーションが各VM上で実行可能である。
ゲストによってアクセス可能なリソースは、「優先(privileged)」又は「非優先(non−privileged)」リソースとして分類されるかもしれない。優先リソースについて、VMM140は、リソースに対する最終的な制御を維持しながら、ゲストによって所望される機能を実現する。非優先リソースは、VMM140によって制御される必要はなく、ゲストによって直接的にアクセスされるかもしれない。
さらに、各ゲストOSは、例外処理(ページフォルト、一般的なプロテクションフォルトなど)、インタラプト(ハードウェアインタラプト、ソフトウェアインタラプトなど)、プラットフォームイベント(初期化、システム管理インタラプトなど)などの各種イベントを処理することを期待する。これら例外処理、インタラプト及びプラットフォームイベントは、ここではまとめて「イベント」と呼ばれる。これらのイベントの一部は「優先」される。なぜなら、VM150と160の適切な処理、ゲストからのVMM140のプロテクション及び互いからのゲストのプロテクションを保証するため、VMM140により処理される必要があるためである。
何れか所与の時点において、プロセッサ120は、VMM140又は何れかのゲストからの命令を実行しているかもしれず、これにより、VMM140又はゲストは、プロセッサ120上で実行又は制御されるかもしれない。優先イベントが実行されるとき、又はゲストが優先リソースにアクセスしようとするとき、コントロールは、ゲストからVMM140に移行するかもしれない。ゲストからVMM140へのコントロールの移行は、ここでは「VMイグジット(exit)」と呼ばれる。イベント処理後、又はリソースへのアクセスを適切に実現した後、VMM140は、ゲストにコントロールを返すかもしれない。VMM140からゲストへのコントロールの移行は、「VMエントリ(entry)」とここでは呼ばれる。
図1の実施例では、プロセッサ120は、バーチャルマシーンコントロール構成(VMCS)132に格納されているデータに従って、VM150と160の動作を制御する。VMCS132は、ゲストの状態、VMM140の状態、VMM140がゲストの動作をどのように制御するか示す実行制御情報、VMイグジット及びVMエントリに関する上記又は他の任意のそのような情報を含むかもしれない構成である。プロセッサ120は、VMの実行環境を決定し、それの動作を制限するための情報をVMCS132から読み出す。本実施例では、VMCS132は、メモリ130に格納されている。いくつかの実施例では、複数のVMCSが複数のVMをサポートするのに利用される。図1は、メモリ130に格納されているVMCS132を示すが、VMCSをメモリに格納することは、本発明によって要求されるものではない。
プロセッサ120は、インタラプトリクエストを受付、生成、優先順位付け、送信、保留、制御又は管理するためのインタラプトコントローラ122を有するかもしれない。例えば、インタラプトコントローラ122は、Pentium(登録商標)系プロセッサのアーキテクチャに従って、ローカルなAPIC(Advanced Programmable Interrupt Controller)であるかもしれない。チップセット111はまた、インタラプトコントローラ112に加えて、それと共に、又はその代わりに、インタラプトリクエストを受付、生成、優先順位付け、送信、保留、制御又は管理するためのインタラプトコントローラ112を有するかもしれない。例えば、インタラプトコントローラ112は、I/O APICであってもよい。プロセッサ120及び/又はチップセット111は、他の何れかのインタラプトコントローラを有するようにしてもよく、また、図1に図示されない他の何れかのプロセッサ、チップセット又はコンポーネントは、インタラプトコントローラを有するようにしてもよく、また、インタラプトリクエストは、他の何れかのアプローチに従って制御又は管理されるようにしてもよい。
プロセッサ120は、レジスタ又は他のコントロール、コンフィギュレーション状態、情報ストレージ構成又は位置123及び124を有するメモリ変換デバイス122を有するかもしれない。例えば、メモリ変換デバイス122はAPICであるかもしれず、ストレージ位置123はTPRであるかもしれず、ストレージ位置124は他の何れかのAPICレジスタ又はレジスタの一部であるかもしれない。チップセット111はまた、ストレージ位置113及び114を備えたメモリ変換デバイス112を有するかもしれず、I/Oデバイス115はまた、ストレージ位置116及び117を有するメモリ変換デバイスであってもよい。プロセッサ120及び/又はチップセット111は、さらなるメモリ変換デバイスを有するかもしれず、他の何れかのI/Oデバイスは、メモリ変換デバイスであるかもしれず、図1に図示されない他の何れかのプロセッサ、チップセット又はコンポーネントは、本発明の実施例によりゲストによりアクセスされるメモリ変換デバイスであるかもしれない。ストレージ位置123、124、116及び117は、上述されるように、I/O命令及び/又はメモリアクセスを介しアクセス可能であるかもしれない。従って、ストレージ位置へのアクセスを参照する際、以下の記載は、ストレージ位置に対応するI/Oポート又はメモリ領域へのアクセスを意味するものと解釈されるべきである。このようなストレージは、I/Oデバイスのメモリによりバックされるか、あるいはI/Oデバイスにより提供される機能とのインタフェースを提供するかもしれない。
プロセッサ120はまた、プロセッサ120がチップセット111などの他の何れかのコンポーネントを介し又は直接的に、何れかのタイプのバス、ポイント・ツー・ポイント又は他の接続を介しメモリ130と通信することを可能にするため、バスユニット又は他の何れかのユニット、ポート又はインタフェースであるかもしれないメモリ130とのインタフェース121を有する。
さらに、プロセッサ120は、デバイス122、112及び115などのメモリ変換デバイスへのアクセスの仮想化を含む仮想化をサポートするコントロールロジック125を含む。コントロールロジック125は、プロセッサ120内部のマイクロコード、プログラマブルロジック、ハードコードロジック又は他の何れかの形式のコントロールロジックであってもよい。他の実施例では、コントロールロジック125は、プロセッサ内部、又はメモリ130などのプロセッサにより可読又はアクセス可能な任意のコンポーネント内部のプロセッサアブストラクションレイヤなどの任意の形式によるハードウェア、ソフトウェア又はファームウェアにより実現可能である。
コントロールロジック125は、例えば、プロセッサ120にホストからゲストへの仮想化命令又は他の命令に応答して仮想化をサポートするため、プロセッサ120に1以上のマイクロオペレーションを実行させることによって、図2及び3に示される方法などの本発明の実施例による方法を実行させる。
コントロールロジック125は、シャドウロジック126、評価ロジック127及びイグジットロジック128を有する。シャドウロジック126は、後述されるように、メモリ変換デバイスのシャドーイングをサポートする。評価ロジック127は、ゲストがメモリ領域(メモリ変換デバイスのストレージなど)にアクセスする試みが可能であるか判断する。イグジットロジック128は、上記試みが可能でない場合、VMイグジットを準備及び発生させる。これらロジックユニットのそれぞれはまた、他のロジックユニットにより実行されるものとして記載されるものを含むさらなる機能を実行するようにしてもよく、上記ロジックユニットの何れか又はすべては、1つのロジックユニットに一体化されるようにしてもよい。
VMCS132は、デバイス122、112及び115などのメモリ変換デバイスの仮想化をサポートするため、フィールド、コントロールビット又は他のデータ構造を含むかもしれない。これらのデータ構造は、VM環境の管理方法を決定するため、コントロールロジック125によりチェック又は参照されるかもしれない。例えば、インターセプトコントロールビット134は、後述されるように、メモリ変換デバイスのストレージ位置のシャドウ又は仮想化コピーにアクセスしようとするゲストによる特定の試みをVMイグジットにするよう設定されるかもしれない。本実施例の説明では、これらコントロールビットは、所望の効果を可能又は発生させるよう設定される。ここでは、設定とは、論理「1」を当該ビットに書き込むことを意味するが、何れかの論理的用語が、本発明の範囲内で利用可能である。
またVMCS132において、シャドウアドレスフィールド135は、メモリ変換デバイスのストレージ位置のシャドウ又は仮想化コピーが格納可能なメモリ位置のアドレスを格納するのに利用可能である。例えば、ストレージ位置123がTPRである場合、シャドウアドレスフィールド135は、タスク優先の仮想コピーが仮想APICページのオフセット80HにおいてTPRフィールドのビット7:4に格納されるように、4キロバイトの仮想APICページのメモリの位置を決定する64ビットフィールドであるかもしれない。他の実施例では、VMCS132は、ストレージ位置123に格納されることが所望される値のシャドウコピーを、当該値に対するメモリ位置へのポインタの代わりに直接格納するためのフィールドを有するかもしれない。例えば、VMCS132は、TPRに格納されることが所望される値の仮想コピーを直接格納する4ビットフィールドを有するかもしれない。
図2及び3は、本発明の実施例による方法を示す。各実施例はこれに限定されるものではないが、図2及び3の実施例を説明するため、図1の仮想化環境100が参照される。本記載は、「メモリ変換デバイスへのアクセス」、「ストレージへのアクセス」などの用語を使用するが、このような用語は、これらのアクセスが通常のメモリアクセス命令を介し行われることを意味する。
図2は、ゲストがメモリ変換デバイスにアクセスするためVMMがサポートを初期化する方法の実施例を示す。
図2のボックス210では、図1のVMM140は、VMに対するVMCS(VMCS132など)を生成する。ボックス212〜216において、VMM140は、メモリ変換デバイス122などのメモリ変換デバイスの仮想化を実現するようVMCS132を構成する。
ボックス214において、ストレージ位置123のシャドウコピーを格納するためのメモリ位置のアドレスが、アドレスフィールド135に書き込まれる。上述したように、アドレスは、シャドウ位置として使用されるべきメモリ位置のアドレスを決定するため、オフセットが追加されるベースアドレスであってもよいし、あるいは、シャドウ位置のアドレスであってもよい。あるいは、シャドウ値は、当該シャドウ値へのポインタでなく、VMCSに直接格納されてもよい。一実施例では、VMM140は、シャドウ値を格納するメモリを割り当てるかもしれない。
ボックス216において、インターセプトコントロールビット134は、図3を参照して説明されるように、メモリ変換デバイス122のストレージ位置123のシャドウ又は仮想コピーにアクセスするゲストによる試みが、VMイグジットに発生させるよう設定される。本実施例では、図3を参照してさらに説明されるように、メモリ変換デバイス122がまたシャドーイングされないストレージ位置124を有するようにしてもよいということに留意されたい。
図3は、ゲストがメモリ変換デバイスにアクセスするための方法の実施例を示す。
図3のボックス310において、VMエントリが実行され、コントロールがゲストに移行される。ボックス320において、ゲストは、VM上での実行を開始又は継続する。ボックス330において、ゲストは、メモリ変換デバイス122に割り当てられたメモリの領域のアドレスへのメモリアクセスを試みる。このメモリアクセスは、リード、ライト、実行又はリード変更ライトの試行であるかもしれない。メモリアクセスは、バスロッキング表示などの特別な限定子を有するかもしれない。メモリアクセスは、明示的なものであってもよいし(例えば、データアクセス、スタックリード、命令フェッチなど)、あるいは非明示的なものであってもよい(例えば、TLBミスに続くページテーブルデータのフェッチ、ページテーブルへのアクセスされた又はダーティビットのライト、セグメント記述子のリードなど)であってもよい。評価ロジック127は、アドレス比較器を用いて、又は他の既知のアプローチを介して試行されたアクセスを検出するようにしてもよい。一実施例では、メモリアクセスの検出は、物理アドレスの解析により実行されてもよい。他の実施例では、リニア又は仮想アドレスが利用される。
メモリ変換デバイスは、ゲストが当該デバイスにおいて利用可能なすべてのストレージ位置のシャドウ又は仮想コピーにアクセス可能である場合、完全にシャドーイングされたとみなされるかもしれない(例えば、メモリ変換デバイスが何れもシャドーイングされたストレージ位置123及び124のみを有する場合など)。メモリ変換デバイスは、ゲストが当該デバイスにおいて利用可能なストレージ位置の少なくとも1つのシャドウ又は仮想コピーにアクセス可能である場合、部分的にシャドーイングされたとみなされるかもしれない(例えば、ストレージ位置123がシャドーイングされているが、ストレージ位置124ではない場合など)。いくつかの実施例では、メモリ変換デバイスの何れのストレージ位置にゲストがアクセスしようとしているかに応じて、複数のコントロールビット又は異なるコントロールビットがチェックされるかもしれない。
ボックス340において、メモリ変換デバイス122に対するインターセプト機構がイネーブルとされていない場合、ボックス390において、イグジットロジック128は、VMMがアクセスを処理するのを可能にするため、VMイグジットを発生させる。他方、ボックス340において、メモリ変換デバイスに対するインターセプト機構がイネーブルである場合、本方法300は、ボックス360に移行する。ボックス360において、評価ロジック127は、アクセスが許可されるべきか判断する。アクセスが許可されていない場合、ボックス390において、イグジットロジック128は、VMMがアクセスを処理するのを可能にするため、VMイグジットを発生させる。
しかしながら、ボックス350において、インターセプトコントロールビット134がイネーブルである場合、本方法300は、ボックス360に移行する。ボックス360において、評価ロジック127は、アクセスが許可されるべきか判断する。アクセスが許可されていない場合、ボックス390において、エグジットロジック128は、VMMがアクセスを処理するのを可能にするため、VMイグジットを発生させる。
アクセスが許可されるべきか否かの判定は、試行されるアクセスのタイプに基づくかもしれない。一実施例では、リードアクセスは許可されるかもしれないが、ライトアクセスは許可されないかもしれない。一実施例では、実行の試みは許可されないかもしれない。一実施例では、リード変更ライトの試みは、許可されないかもしれない。いくつかの実施例では、非明示的なアクセスは許可されないかもしれない。アクセスタイプに基づく他の制限もまた可能である。他の実施例では、アクセスが許可されるか否かは、アクセスがシャドーイングされた位置であるか、シャドーイングされていない若しくは部分的にシャドーイングされた位置に対するものであるかに依存するかもしれない。従って、アクセスタイプは、シャドーイングされた、シャドーイングされていない、又は部分的にシャドーイングされたとなるかもしれない。例えば、アクセスがデバイス122の位置123など、シャドーイングされた位置に対するものである場合、当該アクセスは許可されるが、アクセスが、シャドーイングされた位置123とシャドーイングされていない位置124の両方を含む位置などの部分的にシャドーイングされた位置や、デバイス122のデバイス124などのシャドーイングされていない位置に対するものである場合、当該アクセスは許可されないかもしれない。他のアクセスタイプもまた、本発明の範囲内で可能であるかもしれない。
メモリ変換デバイス122がAPICである実施例が、さらなる実施例として説明される。試行されるアクセスは、TPRにアクセスしようとする命令であるかもしれない(当該アクセスは、TPRがシャドーイングされているため、実際にはTPRの仮想コピー(V−TPR)に対するものとなるであろう)。このような命令は、仮想APIC(V−APIC)ページに対する1以上のアクセスを引き起こすかもしれない。当該命令がV−TPRからのリードを有し、V−APICへの他の何れのアクセスも有しない場合、当該リードが許可されるかもしれない。当該命令がV−APICページへの他のアクセスなしにV−TPRへのライトを含む場合、当該ライトは許可されるかもしれず、シャドウロジック126は、V−TPRフィールドのビット127:8が、当該ライトの後にクリアされることを保証する(すなわち、シャドウロジックは、後述されるような特別な処理を実行するであろう)。V−APICを利用した実施例における上記2つの命令は、TPRがシャドーイングされているため、アクセスタイプがシャドーイングされている、シャドーイングされていない、又は部分的にシャドーイングされている場合には、シャドウアクセスであるとみなされるかもしれない。一実施例では、シャドウロジック126は、シャドーイングされたストレージの一部又は他のストレージ位置若しくはマシーンレジスタに対する適切な更新を実行するかもしれない。例えば、一実施例では、シャドーイングされたストレージ位置の一部に対するライトは、無視されるかもしれない。他の実施例では、読み出し専用であるシャドーイングされたストレージ位置のリードは、シャドウメモリに格納されている値に関係なく、ゼロなどの対応するリザーブされている値を常に返すかもしれない。
V−APICを利用した実施例における他の命令は、部分的にシャドーイングされているとみなされるかもしれない。命令がV−TPRへのアクセスとV−APICの他の位置へのアクセス(すなわち、シャドーイングされていない)を含む場合、VMイグジットが実行される。
ボックス360において、アクセスが許可されるべきであると評価ロジック127が判断した場合、ボックス370において、評価ロジック127は、特別な処理が必要であるか判断する。特別な処理は、コントロールロジック125により実行可能な試みられたアクセスの処理を含むかもしれない。上記において、V−TPRへのライトを含む命令に関するものが与えられた。また他の実施例では、V−APICを利用することは、命令がV−TPRへの複数のアクセスを含む場合である。この場合、特別な処理は、命令の実行を可能にするためのものであるが、VMイグジットを発生させるためのものであるかもしれない。
ボックス370において、特別な処理を必要としないと評価ロジック127が判断した場合、ボックス352において、シャドウロジック126は、メモリ変換デバイス122の仮想バージョンを用いてゲストアクセスを実行させ、本方法300は、ゲストが実行を継続するためボックス320に戻る。他方、特別な処理が必要であると評価ロジック127が判断した場合、ボックス372において、コントロールロジック125が当該特別な処理を実行する。この特別な処理は、後述されるように、メモリ変換デバイス122の仮想バージョンを利用して、ゲストアクセスを全体的又は部分的に実行することを含むかもしれない。
ボックス380において、特別な処理がVMイグジットを含むかコントロールロジック125が判断する。VMイグジットを含む場合、ボックス390において、イグジットロジック128は、VMイグジットを発生させる。VMイグジットを含まない場合、本方法300は、ゲストが実行を継続するためボックス320に戻る。
一実施例では、特別な処理は、APICにおけるTPRの仮想化をサポートするため設けられるかもしれない。本実施例では、TPRへのライトは、常にシャドウに書き込むことを許可されるかもしれない。書き込まれた値がVMMにより指定される閾値(VMCSのフィールドに格納されるものなど)未満である場合、VMイグジットが実行される。上述したように、V−APICのTPRフィールド以外のアドレスを変更するライトなど、部分的にシャドーイングされたアクセスは、VMイグジットを発生させる。他の実施例では、メモリ変換デバイス122の仮想バージョンへの完了するようライトが許可され、当該命令の終了により、VMイグジットが行われる。
本発明の範囲内において、図2及び3に示される方法は、異なる順序、図示されたボックスの省略、さらなるボックスの追加又は再順序付け、省略又は追加的なボックスの組み合わせにより実行されてもよい。例えば、VMCSは、リード及び/又はライトアクセスが可能であるか判断するため、シャドウコントロール及び/又はインターセプトコントロールビットに関して利用可能なロードコントロール及びストアコントロールビットを含むかもしれない。
プロセッサ120又は本発明の実施例による他の何れかのコンポーネント又はコンポーネントの一部は、生成からシミュレーション、製造までの各段階において設計されるかもしれない。構成を表すデータは、いくつかの方法によりそれを表すかもしれない。まず、シミュレーションにおいて有用なように、ハードウェアは、ハードウェア記述言語又は他の機能記述言語を用いて表されるかもしれない。さらに、又はあるいは、ロジック及び/又はトランジスタゲートを備える回路レベルモデルが、設計処理のいくつかの段階で生成されるかもしれない。さらに、大部分の構成は、いくつかの段階において各種デバイスの物理的配置を表すデータによりモデリングされるレベルに到達する。従来の半導体製造技術が利用される場合、デバイス配置モデルを表すデータは、集積回路を生成するのに利用されるマスクに対する異なるマスクレイや上の各種特徴の有無を指定するデータであるかもしれない。
当該構成の何れかの表現において、データは、マシーン可読媒体の何れかの形式により格納されるかもしれない。このような情報を送信するのに変調又は生成される光学的又は電気的な波動、又はメモリ、ディスクなどの磁気若しくは光記憶媒体は、マシーン可読媒体であってもよい。これらの媒体の何れも、エラーリカバリルーチンにおける命令など、本発明の実施例において利用される構成又は他の情報を搬送又は表示するかもしれない。情報を表示又は搬送する電気的な搬送波が送信されるとき、電気信号の複製、バッファリング又は再送が実行される程度まで、新たな複製が行われる。従って、通信プロバイダ又はネットワークプロバイダのアクションは、本発明の技術を実現する搬送波などの物品の複製を生成することから構成されるかもしれない。
以上より、ゲストがメモリ変換デバイスにアクセスするための装置及び方法が開示された。特定の実施例が添付した図面により説明及び図示されたが、このような実施例が単なる例示であり、本発明を限定するものではないということは理解されるであろう。本発明は、他の様々な変更が本開示を研究することにより当業者に想起されると予想されるため、ここで説明及び図示された具体的構成に限定されるものではない。成長が速く、さらなる進歩が予見不可能な当該技術分野では、開示された実施例は、添付した請求項の範囲又は本開示の原理から逸脱することなく、技術的進歩を可能にすることによって実現されるよう構成及び詳細において容易に変更可能である。
図1は、本発明の実施例が動作可能な仮想化環境を示す。 図2は、ゲストがメモリ変換デバイスにアクセスするため、VMMがサポートを初期化する方法の実施例を示す。 図3は、ゲストがメモリ変換デバイスにアクセスするための方法の実施例を示す。
符号の説明
100 仮想化アーキテクチャ
110 ベアプラットフォームハードウェア
120 プロセッサ
130 メモリ
132 VMCS
150 VM(バーチャルマシーン)
160 VMM(バーチャルマシーンモニタ)

Claims (20)

  1. デバイスに変換されたメモリアドレスを利用した前記デバイスにアクセスするゲストの試みに応答して、アクセスタイプに基づき、前記アクセスが許可されるか判断する評価ロジックと、
    前記アクセスは許可されないと前記評価ロジックが判断した場合、前記ゲストからホストに当該装置の制御を移行するイグジットロジックと、
    から構成されることを特徴とする装置。
  2. 請求項1記載の装置であって、
    前記アクセスタイプは、リードアクセス、ライトアクセス、実行アクセス、リード変更ライトアクセス、非明示的アクセス及び明示的アクセスの少なくとも1つを含み、
    前記評価ロジックは、前記アクセスが所定のタイプを有する場合、前記アクセスが許可されると判断する、
    ことを特徴とする装置。
  3. 請求項2記載の装置であって、
    前記所定のタイプは、リードアクセスタイプであることを特徴とする装置。
  4. 請求項2記載の装置であって、さらに、
    前記試みからのデータをシャドウ位置に書き込ませるシャドウロジックを有することを特徴とする装置。
  5. 請求項4記載の装置であって、
    前記シャドウロジックは、前記ゲストからホストへの当該装置の制御の移行前に、前記試みからのデータをシャドウ位置に書き込ませることを特徴とする装置。
  6. 請求項1記載の装置であって、
    前記アクセスタイプは、シャドウアクセス、部分的シャドウアクセス及び非シャドウアクセスの少なくとも1つを含み、
    前記評価ロジックは、前記アクセスが前記シャドウアクセスタイプを有する場合、前記アクセスが許可されると判断する、
    ことを特徴とする装置。
  7. 請求項1記載の装置であって、さらに、
    前記評価ロジックの判断に関係なく、コンフィギュレーション標識に基づき、前記イグジットロジックに前記ゲストからホストに当該装置の制御を移行させるコンフィギュレーションロジックを有することを特徴とする装置。
  8. 請求項6記載の装置であって、
    当該装置は、インタラプトコントローラを有し、
    前記シャドウアクセスタイプは、タスク優先度を示す位置のみへのアクセスを有し、
    前記部分的シャドウアクセスタイプは、前記タスク優先度を示す位置と前記タスク優先度を示す位置以外の位置へのアクセスを有する、
    ことを特徴とする装置。
  9. 請求項2記載の装置であって、
    当該装置は、インタラプトコントローラを有し、
    前記所定のタイプは、ライトアクセスタイプであり、
    前記アクセスは、タスク優先度を示す位置に対するものであり、
    前記アクセスは、シャドウ位置に対して許可され、
    前記イグジットロジックはまた、前記アクセスが許可された後、前記ゲストからホストに当該装置の制御を移行する、
    ことを特徴とする装置。
  10. デバイスに変換されるメモリアドレスを利用して、前記デバイスにアクセスする試みを検出するステップと、
    アクセスタイプに基づき、前記アクセスが許可されているか判断するステップと、
    前記アクセスが許可されていない場合、前記ゲストからホストに制御を移行するステップと、
    から構成されることを特徴とする方法。
  11. 請求項10記載の方法であって、
    前記アクセスタイプは、リードアクセス、ライトアクセス、実行アクセス、リード変更ライトアクセス、非明示的アクセス及び明示的アクセスの少なくとも1つを含むことを特徴とする方法。
  12. 請求項11記載の方法であって、
    前記判断するステップは、前記アクセスが所定のタイプを有するか判断することから構成されることを特徴とする方法。
  13. 請求項11記載の方法であって、
    前記アクセスがリードタイプのものである場合、前記アクセスが許可されることを特徴とする方法。
  14. 請求項10記載の方法であって、さらに、
    前記試みからのデータをシャドウ位置に書き込むステップを有することを特徴とする方法。
  15. 請求項10記載の方法であって、
    前記アクセスタイプは、シャドウアクセス、部分的シャドウアクセス及び非シャドウアクセスの少なくとも1つを有することを特徴とする方法。
  16. 請求項15記載の方法であって、
    前記判断するステップは、前記アクセスがシャドウアクセスタイプのものである場合、前記アクセスが許可されると判断することから構成されることを特徴とする方法。
  17. メモリと、
    デバイスに変換されたメモリアドレスを利用した前記デバイスにアクセスするゲストの試みに応答して、アクセスタイプに基づき、前記アクセスが許可されるか判断する評価ロジックと、前記アクセスは許可されないと前記評価ロジックが判断した場合、前記ゲストからホストに当該プロセッサの制御を移行するイグジットロジックとを有するプロセッサと、
    から構成されることを特徴とするシステム。
  18. 請求項17記載のシステムであって、
    前記プロセッサはさらに、前記試みからのデータを前記メモリのシャドウ位置に書き込むシャドウロジックを有することを特徴とするシステム。
  19. 請求項17記載のシステムであって、
    前記メモリは、前記ゲストに対するバーチャルマシーンの制御構造を格納することを特徴とするシステム。
  20. 請求項19記載のシステムであって、
    前記制御構造は、前記イグジットロジックが、前記評価ロジックの判断に関係なく、前記ゲストからホストに前記プロセッサの制御を移行するか示す標識を有することを特徴とするシステム。
JP2006349813A 2005-12-30 2006-12-26 ゲストがメモリ変換されたデバイスにアクセスする方法及び装置 Expired - Fee Related JP4668166B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/322,757 US7506121B2 (en) 2005-12-30 2005-12-30 Method and apparatus for a guest to access a memory mapped device

Publications (2)

Publication Number Publication Date
JP2007183952A true JP2007183952A (ja) 2007-07-19
JP4668166B2 JP4668166B2 (ja) 2011-04-13

Family

ID=38214071

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006349813A Expired - Fee Related JP4668166B2 (ja) 2005-12-30 2006-12-26 ゲストがメモリ変換されたデバイスにアクセスする方法及び装置

Country Status (4)

Country Link
US (1) US7506121B2 (ja)
JP (1) JP4668166B2 (ja)
CN (1) CN1991808B (ja)
DE (1) DE102006061939B4 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8510827B1 (en) 2006-05-18 2013-08-13 Vmware, Inc. Taint tracking mechanism for computer security
US9354927B2 (en) * 2006-12-21 2016-05-31 Vmware, Inc. Securing virtual machine data
US9098347B2 (en) 2006-12-21 2015-08-04 Vmware Implementation of virtual machine operations using storage system functionality
US9189265B2 (en) 2006-12-21 2015-11-17 Vmware, Inc. Storage architecture for virtual machines
US8099574B2 (en) * 2006-12-27 2012-01-17 Intel Corporation Providing protected access to critical memory regions
US8386664B2 (en) * 2008-05-22 2013-02-26 International Business Machines Corporation Reducing runtime coherency checking with global data flow analysis
US8281295B2 (en) * 2008-05-23 2012-10-02 International Business Machines Corporation Computer analysis and runtime coherency checking
US8285670B2 (en) * 2008-07-22 2012-10-09 International Business Machines Corporation Dynamically maintaining coherency within live ranges of direct buffers
US8117346B2 (en) 2008-10-03 2012-02-14 Microsoft Corporation Configuration space virtualization
US20110225464A1 (en) * 2010-03-12 2011-09-15 Microsoft Corporation Resilient connectivity health management framework
US20120047313A1 (en) * 2010-08-19 2012-02-23 Microsoft Corporation Hierarchical memory management in virtualized systems for non-volatile memory models
US8762797B2 (en) * 2011-04-29 2014-06-24 Google Inc. Method and apparatus for detecting memory access faults
US9113164B1 (en) 2012-05-15 2015-08-18 Google Inc. Constant bit rate control using implicit quantization values
US9510019B2 (en) 2012-08-09 2016-11-29 Google Inc. Two-step quantization and coding method and apparatus
US9253483B2 (en) 2012-09-25 2016-02-02 Google Technology Holdings LLC Signaling of scaling list
US9407915B2 (en) 2012-10-08 2016-08-02 Google Inc. Lossless video coding with sub-frame level optimal quantization values
US9053065B2 (en) * 2012-12-10 2015-06-09 Vmware, Inc. Method for restoring virtual machine state from a checkpoint file
US9053064B2 (en) * 2012-12-10 2015-06-09 Vmware, Inc. Method for saving virtual machine state to a checkpoint file
US10102613B2 (en) 2014-09-25 2018-10-16 Google Llc Frequency-domain denoising
DE102015223335A1 (de) * 2015-11-25 2017-06-01 Robert Bosch Gmbh Verfahren zum Betreiben eines Mikrocontrollers
US11042495B2 (en) * 2019-09-20 2021-06-22 Advanced Micro Devices, Inc. Providing interrupts from an input-output memory management unit to guest operating systems
GB2591490B (en) * 2020-01-30 2022-03-02 Advanced Risc Mach Ltd An apparatus and method for controlling access to a set of memory mapped control registers

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030217250A1 (en) * 2002-04-16 2003-11-20 Steve Bennett Control register access virtualization performance improvement in the virtual-machine architecture

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5828900A (en) * 1996-01-03 1998-10-27 Intel Corporation International multiple-byte character generator support in application sharing which distinguishes guest keyboard input from host key board and bypassing execution of the generator module when guest keyboard input is determined
US7818808B1 (en) * 2000-12-27 2010-10-19 Intel Corporation Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor
US7277999B1 (en) * 2004-08-12 2007-10-02 Vmware, Inc. Restricting memory access to protect data when sharing a common address space

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030217250A1 (en) * 2002-04-16 2003-11-20 Steve Bennett Control register access virtualization performance improvement in the virtual-machine architecture

Also Published As

Publication number Publication date
JP4668166B2 (ja) 2011-04-13
DE102006061939A1 (de) 2007-09-13
US20070156986A1 (en) 2007-07-05
US7506121B2 (en) 2009-03-17
CN1991808A (zh) 2007-07-04
DE102006061939B4 (de) 2022-07-14
CN1991808B (zh) 2011-05-25

Similar Documents

Publication Publication Date Title
JP4668166B2 (ja) ゲストがメモリ変換されたデバイスにアクセスする方法及び装置
JP5735070B2 (ja) パーティション分割されたシステムにおいて、デバイスがメモリにアクセスするための、ゲスト・アドレスからホスト・アドレスへの変換
US8543790B2 (en) System and method for cooperative virtual machine memory scheduling
US7111145B1 (en) TLB miss fault handler and method for accessing multiple page tables
US7467381B2 (en) Resource partitioning and direct access utilizing hardware support for virtualization
US8706941B2 (en) Interrupt virtualization
JP5214611B2 (ja) 仮想マシン環境におけるゲスト間での情報の共有
US8127098B1 (en) Virtualization of real mode execution
JP5122597B2 (ja) 仮想プロセッサへの直接的なインタラプトの送信
EP3584708B1 (en) Protection key management and prefixing in virtual address space legacy emulation system
EP2955634B1 (en) Paravirtualization-based interface for memory management in virtual machines
US8370559B2 (en) Executing a protected device model in a virtual machine
US20130145051A1 (en) Direct Device Assignment
WO2011082165A1 (en) Systems and methods implementing shared or non-shared page tables for sharing memory resources managed by a main operating system with accelerator devices
Kegel et al. Virtualizing io through io memory management unit (iommu)

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100518

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100813

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100818

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100921

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110112

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

Free format text: PAYMENT UNTIL: 20140121

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4668166

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees