(57)【要約】  メモリ管理装置２４を備えたデータ処理装置１２が提供される。メモリ管理装置２４は、メモリ停止をトリガする。メモリ停止が発生すると、前記メモリ停止を特徴付けるデータがフォールトステータスレジスタ２８（メモリ停止レジスタ）に書き込まれる。前記メモリ停止を特徴付けるデータは、前記メモリ停止の発生源となったメモリアクセスと関連付けられたレジスタ番号を特定するデータを含む。このレジスタ特定データを用いて、前記メモリ停止に繋がるプログラム命令を読み出す必要無く、メモリアクセス命令のアクションをエミュレートする。これは、仮想データ処理装置２のための仮想化サポートを提供する際に、有用である。
2011523741.tif 000002
【特許請求の範囲】
【請求項１】
仮想データ処理装置の仮想化をホストデータ処理装置によってサポートする方法であって、
前記仮想データ処理装置による処理をエミュレートするためにプログラム命令のストリームを前記ホストデータ処理装置によって実行するステップと、
前記仮想データ処理装置のメモリマッピング済みデバイスに対応するメモリアドレスに対する、メモリアクセス動作を行おうとしているメモリアクセス命令の実行試行を検出回路により検出するステップと、
メモリ停止回路により、前記メモリアクセス動作を特徴付けるメモリ停止データをメモリ停止レジスタに書き込むステップであって、前記メモリ停止データは、前記メモリアクセス動作によってアクセスされた１つ以上のレジスタを示すデータを含む、ステップと、
前記ホストデータ処理装置によるメモリ停止取り扱いプログラム命令の実行により、メモリ停止例外をトリガするステップと
を含み、
前記トリガステップにより、
（ｉ）前記メモリ停止レジスタから前記メモリ停止データを読み出し、
（ｉｉ）前記メモリ停止データを用いて前記メモリアクセス動作をエミュレートし、前記メモリ停止データは、前記メモリアクセス動作によってアクセスされた１つ以上のレジスタを示す前記データを含み、
（ｉｉｉ）プログラム命令の前記ストリームの実行に戻る
ことを特徴とする方法。
【請求項２】
前記メモリ停止データは、
前記メモリアクセス動作によるデータワードのサイズを示すデータ、
前記メモリアクセス動作が読み出し動作であるかまたは書き込み動作であるかのデータ、
前記メモリアクセス動作のための１つ以上のソースレジスタを示すデータ、
前記メモリアクセス動作のための１つ以上の宛先レジスタを示す前記データ、
前記メモリアクセス動作によるデータワードを符号拡張すべきかを示すデータ、および
前記メモリアクセス命令の命令サイズを示すデータ
のうちの１つ以上を含む
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記メモリ停止データは、前記メモリ停止例外をトリガした前記メモリアクセス命令に対して前記メモリ停止データが有効であるか否かを示す有効性データを含み、前記メモリ停止を特徴付ける前記データが前記メモリ停止例外に対して有効ではないと前記メモリ停止取り扱いプログラム命令が前記有効性データから決定した場合、前記メモリ停止取り扱いプログラム命令は、前記メモリアクセス命令を命令メモリから読み出し、前記メモリアクセス命令から、前記メモリアクセス動作をエミュレートするための１つ以上のパラメータを決定する
ことを特徴とする請求項１または２に記載の方法。
【請求項４】
前記メモリアドレスを示すアドレス値と、前記メモリアクセス命令の前記実行と関連付けられた前記アドレス値に対して行われるべき更新とを記憶するベースレジスタを前記メモリアクセス命令が指定する場合、前記メモリ停止取り扱いプログラム命令は、前記メモリアクセス命令を命令メモリから読み出し、前記メモリアクセス命令から、前記ベースレジスタ内の前記アドレス値に対して前記更新を行うための１つ以上のパラメータを決定する
ことを特徴とする請求項１から３のうちのいずれか一項に記載の方法。
【請求項５】
前記有効性データは、前記メモリ停止を特徴付ける前記データが、前記ベースレジスタ内に記憶された前記アドレス値を更新するメモリアクセス命令に対して有効ではないことを示す
ことを特徴とする請求項３または４に記載の方法。
【請求項６】
前記メモリアドレスを示すアドレス値と、前記メモリアクセス命令の前記実行と関連付けられた前記アドレス値に対して行われるべき更新とを記憶するベースレジスタを前記メモリアクセス命令が指定する場合、前記方法は、前記メモリ停止回路により、前記アドレス値に対して行われるべき前記更新を特徴付ける更新データを更新レジスタに書き込むステップをさらに含む
ことを特徴とする請求項１から３のうちのいずれか一項に記載の方法。
【請求項７】
前記メモリ停止取り扱いプログラム命令は、前記更新レジスタから前記ベースレジスタ内の前記アドレス値に対して前記更新を行うための１つ以上のパラメータを前記更新データを読み出す
ことを特徴とする請求項６に記載の方法。
【請求項８】
プログラム命令の前記ストリームは、ゲストオペレーティングシステムの制御下で実行され、前記仮想データ処理装置による前記ゲストオペレーティングシステムの実行は、ハイパーバイザプログラムの制御下で前記ホストデータ処理装置によってエミュレートされる
ことを特徴とする請求項１から７のうちのいずれか一項に記載の方法。
【請求項９】
前記検出回路は、ページテーブルデータを用いて前記メモリ内のメモリアドレスへのアクセスを制御するメモリ管理装置である
ことを特徴とする請求項１から８のうちのいずれか一項に記載の方法。
【請求項１０】
前記ページテーブルデータは、前記メモリマッピング済みデバイスに対応する前記メモリアドレスに対し、前記メモリアクセス命令が前記メモリアクセス動作を行おうとしている場合に停止をトリガする値をマーク付けする
ことを特徴とする請求項９に記載の方法。
【請求項１１】
仮想データ処理装置の仮想化のサポートを提供するデータを処理する装置であって、
前記仮想データ処理装置のメモリマッピング済みデバイスに対応するメモリアドレスに対し、メモリアクセス動作を行おうとしているメモリアクセス命令の実行試行に応答してメモリ停止をトリガする検出回路と、
前記メモリ停止に応答して、前記メモリアクセス動作を特徴付けるメモリ停止データをメモリ停止レジスタに書き込むメモリ停止回路であって、前記メモリ停止データは、前記メモリアクセス動作によってアクセスされた１つ以上のレジスタを示すデータを含む、メモリ停止回路と
を含むことを特徴とする装置。
【請求項１２】
前記メモリ停止データは、
前記メモリアクセス動作によるデータワードのサイズを示すデータ、
前記メモリアクセス動作が読み出し動作であるかまたは書き込み動作であるかのデータ、
前記メモリアクセス動作のための１つ以上のソースレジスタを示すデータ、
前記メモリアクセス動作によってアクセスされた１つ以上のレジスタを示すデータ、
前記メモリアクセス動作によるデータワードを符号拡張すべきかを示すデータ、および
前記メモリアクセス命令の命令サイズを示すデータ
のうちの１つ以上を含む
ことを特徴とする請求項１１に記載の装置。
【請求項１３】
前記メモリ停止データは、前記メモリ停止例外をトリガした前記メモリアクセス命令に対して前記メモリ停止データが有効であるか否かを示す有効性データを含み、前記メモリ停止は、前記データ処理装置によって実行されるメモリ停止取り扱いプログラム命令によって取り扱われ、前記メモリ停止を特徴付ける前記データが前記メモリ停止例外に対して有効ではないと前記メモリ停止取り扱いプログラム命令が前記有効性データから決定した場合、前記メモリ停止取り扱いプログラム命令は、前記メモリアクセス命令を命令メモリから読み出し、前記メモリアクセス命令から、前記メモリアクセス動作をエミュレートするための１つ以上のパラメータを決定する
ことを特徴とする請求項１１または１２に記載の装置。
【請求項１４】
前記メモリアドレスを示すアドレス値と、前記メモリアクセス命令の前記実行と関連付けられた前記アドレス値に対する行われるべき更新とを記憶するベースレジスタを前記メモリアクセス命令が指定する場合、メモリ停止取り扱いプログラム命令は、前記メモリアクセス命令を命令メモリから読み出し、前記メモリアクセス命令から、前記ベースレジスタ内に前記アドレス値に対して前記更新を行うための１つ以上のパラメータを決定する
ことを特徴とする請求項１１から１３のうちのいずれか一項に記載の装置。
【請求項１５】
前記有効性データは、前記ベースレジスタ内に記憶された前記アドレス値を更新するメモリアクセス命令に対し、前記メモリ停止を特徴付ける前記データが有効ではないことを示す
ことを特徴とする請求項１３または１４に記載の装置。
【請求項１６】
前記メモリアドレスを示すアドレス値と、前記メモリアクセス命令の前記実行と関連付けられた前記アドレス値に対して行われるべき更新とを記憶するベースレジスタを前記メモリアクセス命令が指定する場合、前記メモリ停止回路は、前記メモリ停止に応答して、前記アドレス値に対して行われるべき前記更新を特徴付ける更新データを更新レジスタに書き込む
ことを特徴とする請求項１１から１３のうちのいずれか一項に記載の装置。
【請求項１７】
メモリ停止取り扱いプログラム命令は、前記更新レジスタから前記ベースレジスタ内の前記アドレス値に対する前記更新を行うための１つ以上のパラメータを前記更新データを読み出す
ことを特徴とする請求項１６に記載の装置。
【請求項１８】
プログラム命令のストリームは、ゲストオペレーティングシステムの制御下で実行され、前記仮想データ処理装置による前記ゲストオペレーティングシステムの実行は、ハイパーバイザプログラムの制御下で前記データ処理装置によりエミュレートされる
ことを特徴とする請求項１１から１７のうちのいずれか一項に記載の装置。
【請求項１９】
前記検出回路は、ページテーブルデータを用いて前記メモリ内のメモリアドレスへのアクセスを制御するメモリ管理装置である
ことを特徴とする請求項１１から１８のうちのいずれか一項に記載の装置。
【請求項２０】
前記ページテーブルデータは、前記メモリマッピング済みデバイスに対応する前記メモリアドレスに対し、前記メモリアクセス命令が前記メモリアクセス動作を行おうとしている場合に停止をトリガする値をマーク付けする
ことを特徴とする請求項１９に記載の装置。
【請求項２１】
仮想データ処理装置の仮想化のサポートを提供するデータ処理のための装置であって、
前記仮想データ処理装置のメモリマッピング済みデバイスに対応するメモリアドレスに対して、メモリアクセス動作を行おうとしているメモリアクセス命令の実行試行に応答して、メモリ停止をトリガする検出手段と、
前記メモリ停止に応答して、前記メモリアクセス動作を特徴付けるメモリ停止データをメモリ停止レジスタに書き込むメモリ停止手段であって、前記メモリ停止データは、前記メモリアクセス動作によってアクセスされた１つ以上のレジスタを示すデータを含む、メモリ停止手段と
を含むことを特徴とする装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システムに関する。より詳細には、本発明は、データ処理装置の仮想化をサポートするデータ処理システムに関する。
【背景技術】
【０００２】
データ処理システムの仮想化をサポートするホストデータ処理システムを提供することが、知られている。ホストデータ処理システムと仮想データ処理システムとの間の差のスケールは、大幅に変動し得る。いくつかの例において、仮想データ処理システムは、基本的なプロセッサアーキテクチャが、ホストデータ処理装置と同じであるデータ処理装置の若干異なるバージョンまたは実装であり得る。別の例において、仮想データ処理装置は、ホストデータ処理装置と完全に異なるもの（例えば、ＲＩＳＣまたはＣＩＳＣホストデータ処理装置によってエミュレートされた、スタックベースのＪａｖａ（登録商標）仮想マシン）であり得る。
【０００３】
このような仮想化分野において、実際のハードウェアデバイスの錯覚をゲストオペレーティングシステムまたはゲストプログラムに付与できるよう、仮想デバイスをサポートする必要が往々にしてある。これらの仮想デバイスは実際には、ハイパーバイザソフトウェアによって提供される。デバイス（実際のデバイスおよび仮想デバイスの両方）をサポートするための好都合な方法として、これら双方のデバイスに対してメモリマッピングを行い、これらのデバイスへのアクセスを、メモリマッピング済みアドレスへのロードまたは記憶の形態とする方法がある。仮想データ処理装置の仮想デバイスのサポートにおいて、これらのメモリマッピング済みアドレスにある仮想デバイスへのアクセスをハイパーバイザソフトウェアへと経路設定して取り扱うことが必要になる。公知の技術では、当該メモリマッピング済み仮想デバイスを含む対応メモリ領域を「無効」または「アクセス無し」に設定することによりこれらのメモリ位置へのアクセスをトラップし、その結果得られた例外をハイパーバイザプログラムに経路設定する。
【０００４】
このアプローチにおける問題として、当該仮想デバイスへのアクセスをエミュレートするためには、当該アクセスを求めていた命令を復号化する必要がある点がある。一般的に例外をトリガするメモリ管理装置（ＭＭＵ）も、通常は、当該アドレスと、例外扱いとされる当該アクセスと関連付けられた書き込み／読み出し情報とを提供する（かまたはその提供をトリガする）。実際の環境内においては、一般的には、メモリアクセスと関連付けられた例外の効率的処理が可能であれば十分であることが多い。
【０００５】
一態様から見れば、本発明は、仮想データ処理装置の仮想化をホストデータ処理装置によってサポートする方法を提供する。前記方法は、
プログラム命令のストリームを前記ホストデータ処理装置によって実行して、前記仮想データ処理装置による処理をエミュレートするステップと、
前記仮想データ処理装置のメモリマッピング済みデバイスに対応するメモリアドレスに対する、メモリアクセス動作を行おうとしているメモリアクセス命令の実行試行を検出回路により検出するステップと、
メモリ停止回路により、前記メモリアクセス動作を特徴付けるメモリ停止データをメモリ停止レジスタに書き込むステップであって、前記メモリ停止データは、前記メモリアクセス動作によってアクセスされた１つ以上のレジスタを示すデータを含む、ステップと、
前記ホストデータ処理装置によるメモリ停止取り扱いプログラム命令の実行により、メモリ停止例外をトリガするステップと
を含み、
前記トリガするステップにより、
（ｉ）前記メモリ停止レジスタから前記メモリ停止データを読み出し、
（ｉｉ）前記メモリ停止データを用いて前記メモリアクセス動作をエミュレートし、前記メモリ停止データは、前記メモリアクセス動作によってアクセスされた１つ以上のレジスタを示す前記データを含み、
（ｉｉｉ）前記プログラム命令のストリームの実行に戻る。
【０００６】
本技術が認識している点とは、仮想データ処理装置の仮想化をサポートする際、メモリアクセスのエミュレートを可能にするためには、停止の発生源となるメモリアクセスに関するさらなる情報が必要となり、また、このさらなる情報を入手するには不都合に時間がかかるということである。詳細には、公知のメカニズムを用いた場合、エミュレーションを進めるためには、メモリ停止の発生源となる命令を特定および復号化して、どのＣＰＵレジスタがロードされているかまたは保存されているかを特定する必要がある。この特定作業を行うには、時間のかかる工程が多数必要となることが多い。すなわち、第１に、命令そのものを見つける必要があり、停止発生時に提供される命令のアドレスはゲストオペレーティングシステムアドレス空間内の仮想アドレスであることが多いため、このアドレスを（通常は２つ〜３つの翻訳ステップを介して）ハイパーバイザアドレス空間内の仮想アドレスに翻訳して、このアドレスを読み出し可能な状態にする必要がある。前記停止命令のアドレスを決定した後、前記命令の読み出しが可能となる。そのため、データキャッシュおよび命令キャッシュが別々になっているシステム（ハーバード）の場合、データの行方不明が発生し、この行方不明データを解消するために多数のサイクルが必要となることが多い。その後、当該命令を復号化する必要がある。多くのデータ処理装置において、命令がメモリにアクセスする方法は多種多様な方法があり、エミュレーションを進めるための、ソース／宛先レジスタおよびメモリアクセスの他の特性の特定のために受信された命令の復号化と関連する複雑度にも多様なレベルがある。
【０００７】
本技術は、これらの困難点を、ハードウェア効率の良い様式で認識および解消する。多くの場合、仮想デバイスへのアクセスのエミュレーションに必要な情報とは、メモリアクセス動作によってアクセスされる１つ以上のレジスタを特定する情報である（これらのレジスタは、ソースレジスタであるかまたは宛先レジスタである）。本技術は、メモリ停止回路を拡張して、このデータをメモリ停止レジスタ内に書き込む。実際、このレジスタ特定データは、メモリアクセス命令の通常動作において必要であるため、通常は既に存在し、必要なさらなるメカニズムが、この情報をメモリ停止レジスタに向けて整理し、このメモリ停止レジスタにおいて、仮想データ処理装置のメモリマッピング済みデバイスへのアクセス発生時に、この情報が記憶される。その後、停止取り扱いプログラム命令がこのレジスタ特定情報をメモリ停止レジスタから直接読み出し、この情報を用いて、前記メモリアクセス動作を比較的高速でエミュレートし、その際、当該レジスタ（単数または複数）を特定するために、当該メモリアクセスの発生源となった命令を読み出す必要はない。よって、本技術は、仮想データ処理装置の仮想化のためのハードウェアサポートと、このハードウェアサポートを用いて仮想デバイスの仮想化をより効率的にする技術とを提供する。
【０００８】
前記メモリ停止データは、前記メモリアクセス動作によってアクセスされた１つ以上のレジスタを示すデータを越えるさらなる情報を含み得ることが、理解される。前記１つ以上のレジスタを示すデータにより、最も一般的な場合、仮想デバイスアクセスを容易にサポートすることができ、前記メモリ停止レジスタ内に記憶されたデータの拡張により、サポートされるアクセスの種類が拡張される。前記メモリ停止データは、当該メモリアクセス動作に用いられるデータワードのサイズ、当該動作が読み出し動作であるかまたは書き込み動作であるかを示すデータ、ソースレジスタまたは宛先レジスタを示すデータ、当該データワードに対し当該メモリアクセスの一部として符号拡張を行うか否かを示すデータ、および命令にアクセスしているメモリの命令サイズを示すデータを含むように、拡張することができる。
【０００９】
いくつかの実施形態において、前記メモリ停止データは、メモリ停止をトリガしたメモリアクセス命令に対してメモリ停止データが有効であるか否かを示す有効性データをさらに含み得る。前記メモリ停止データが有効ではない場合、前記メモリ停止取り扱いプログラム命令は、このことを前記有効性データから決定することができ、その後、前記メモリ停止の発生源となったメモリアクセス命令を前記メモリから読み出すステップと、前記読み出された命令から直接メモリアクセス命令パラメータを決定するステップとに戻る。このようにして、ハードウェア設計者は、シンドロームデータを得るための十分に簡単な命令と、ハードウェアにおけるサポートの付加のためのハードウェアオーバーヘッドとして適していないより複雑な命令とを選択することができる。
【００１０】
いくつかのメモリアクセス命令は、アクセスすべきメモリアドレスを示すアドレス値を記憶するベースレジスタを用い、前記命令は、更新を指定する。前記更新は、前記メモリアクセス命令の実行と関連付けられた値の発生時（例えば、インデキシング前またはインデキシング後）に行われる。前記有効性データをこのような命令と共に用いて、前記メモリアクセスを特徴付けるデータがベースレジスタ値を更新する命令に対して無効であることを示すことができ、これらの状況において、前記命令そのものをメモリから読み出しおよび復号化して、行うべき更新作業の性質を決定することができる。
【００１１】
前記メモリアクセスを特徴付けるデータが無効であることを示すために有効性データを使用することが可能な別のクラスの命令として、複数のロード／記憶命令（例えば、ＡＲＭプロセッサによって提供されるもの）がある。これらの種類の命令は、デバイスへのアクセスの際に用いられることは稀であるため、これらの命令のためのシンドロームレジスタを提供するために必要な大幅なハードウェアオーバーヘッドを用いても、正当化するのに十分な利点が得られないことが予想される。前記有効データを用いて、この種のメモリアクセスを特徴付けるデータが有効に提供されていないことを示すことができる。
【００１２】
別の実施形態において、更新レジスタを提供することができ、前記更新レジスタに更新データを書き込みことができる。この更新データは、ベースレジスタ内に記憶されたアドレス値の発生時に、メモリ停止の発生源となるメモリアクセス命令の実行と関連して行われるべき更新を特徴付ける。この更新レジスタは、メモリ停止取り扱いプログラム命令によって読み出し可能であり、仮想デバイスへのアクセスのエミュレーションの一部としてベースレジスタ内に記憶されているアドレス値の発生時に、この更新レジスタを用いて必要な更新を行うことができる。
【００１３】
仮想化のサポートは多様な様式で行うことができるが、本技術は、以下のような実施形態に適している。すなわち、ゲストオペレーティングシステムの制御下においてプログラム命令のストリームが実行され、これらのプログラム命令は、メモリ停止の発生源となるメモリアクセス命令を含み、前記ゲストオペレーティングシステムの実行は仮想データ処理装置によって行われ、前記仮想データ処理装置そのものは、ハイパーバイザプログラムの制御下においてホストデータ処理装置によってエミュレートされる。このような階層化形態の仮想化は当業者にはよく知られており、本技術が対処している仮想デバイスエミュレーションの遅さの問題に苦慮している。
【００１４】
仮想データ処理装置のメモリマッピング済みデバイスへのメモリアクセスを検出する機能を有する検出回路は、メモリ内のメモリアドレスへのアクセスの制御のためにページテーブルデータを用いるメモリ管理装置の形態をとり得る。このようなメモリ管理装置は典型的には他の理由のために設けられることが多く、このようなメモリ管理装置を再利用して、メモリマッピング済み仮想デバイスへのメモリアクセスのトラップを可能にすることができる。前記メモリマッピング済みデバイスによって用いられるページテーブルデータに対し、メモリアクセス命令がメモリマッピング済み仮想デバイスに対するメモリアクセス動作を行おうとしている場合に停止をトリガするための値を、プログラムすることができる。
【００１５】
別の態様から見れば、本発明は、仮想データ処理装置の仮想化のサポートを提供するデータを処理する装置を提供する。前記データ処理装置は、
前記仮想データ処理装置のメモリマッピング済みデバイスに対応するメモリアドレスに対する、メモリアクセス動作を行おうとしているメモリアクセス命令の実行試行に応答してメモリ停止をトリガする検出回路と、
前記メモリ停止に応答して、前記メモリアクセス動作を特徴付けるメモリ停止データをメモリ停止レジスタに書き込むメモリ停止回路であって、前記メモリ停止データは、前記メモリアクセス動作によってアクセスされた１つ以上のレジスタを示すデータを含む、メモリ停止回路と
を含む。
【００１６】
さらなる態様から見れば、本発明は、仮想データ処理装置の仮想化のサポートを提供するデータを処理する装置を提供する。前記データ処理装置は、
前記仮想データ処理装置のメモリマッピング済みデバイスに対応するメモリアドレスに対する、メモリアクセス動作を行おうとしているメモリアクセス命令の実行試行に応答して、メモリ停止をトリガする検出手段と、
前記メモリ停止に応答して、前記メモリアクセス動作を特徴付けるメモリ停止データをメモリ停止レジスタに書き込むメモリ停止手段であって、前記メモリ停止データは、前記メモリアクセス動作によってアクセスされた１つ以上のレジスタを示すデータを含む、メモリ停止手段と
を含む。
【００１７】
以下、本発明の実施形態について、ひとえに例示目的のために添付図面を参照して説明していく。
【図面の簡単な説明】
【００１８】
【図１】メモリマッピング済み仮想デバイスを含む仮想データ処理装置を模式的に示す。
【図２】仮想化をサポートするハードウェアメカニズムを含むホストデータ処理装置を模式的に示す。
【図３】メモリ停止レジスタおよび更新レジスタのコンテンツ例を模式的に示し、このようなコンテンツを用いて、メモリ停止の発生源となるメモリアクセス動作を特徴付けるデータを提供することができる。
【図４】メモリマッピング済み仮想デバイスに対するメモリアクセス動作のエミュレーションをサポートする技術を模式的に示すフロー図である。
【発明を実施するための形態】
【００１９】
図１は、仮想データ処理装置２を示す。仮想データ処理装置２は、メモリ６内に記憶されているプログラム命令のストリームを実行する仮想コア４を提供するものとみなすことができる。．メモリ６内のこれらの命令は、仮想データ処理装置２に対してネーティブである命令であり、ゲストオペレーティングシステム（ゲストオペレーティングシステムの実行もエミュレートされる）の制御下で実行する。仮想データ処理装置２は、メモリマッピング済み仮想デバイス８および１０を含む。メモリマッピング済み仮想デバイス８および１０は典型的には、仮想データ処理装置２に取り付けられたデバイスとのインターフェースを提供するために用いられる。これらのメモリマッピング済み仮想デバイスは、例えば、入力／出力ポートであってもよいし、ＤＭＡエンジンなどのデバイスであってもよい。
【００２０】
仮想化の分野において、関連付けられたメモリアドレスへのメモリアクセスをトラップした後にこれらのメモリアクセスをエミュレートすることにより、このようなメモリマッピング済みデバイス８および１０をサポートすることが知られている。このような動作を行うには、通常、データ処理装置２によって実行されていたプログラム命令にアクセスするメモリを読み出すことが、エミュレーションを正確に行うことを可能にする十分な情報を当該プログラム命令から特定するために、必要である。このようなプログラム命令の読み出しおよび復号化は時間がかかりかつ不十分なプロセスであり得るため、仮想化動作の速度を大幅に減速させ得る。
【００２１】
図２は、ハイパーバイザプログラム１４を実行するホストデータ処理装置１２を模式的に示す。ハイパーバイザプログラム１４自身は、ゲストオペレーティングシステムプログラム１６と、図１に関連して説明したメモリアクセスの発生源となるゲストプログラム命令との実行をエミュレートする（かまたは少なくともサポートする）。ホストデータ処理装置１２のアーキテクチャは、仮想データ処理装置２のアーキテクチャと同様であってよい（その場合、仮想化サポートは迅速かつ効率的になる）し、あるいは、仮想データ処理装置２のアーキテクチャを全く異なるものにしてもよい（その場合、仮想化サポートをより広範囲にする必要があるため、より低速かつ低効率になる）。
【００２２】
ホストデータ処理装置１２は、プログラム命令を実行するプロセッサコア１８を含む。キャッシュメモリ２０（これは、ユニファイドまたはハーバードであり得る）が、メインメモリ２２内からのデータおよび命令のローカルコピーを従来の様式で記憶するために、設けられる。メモリ管理装置２４は、ページテーブルデータ２６に応答して、プロセッサコア１８によって行われるメモリアクセス動作を監視して、これらのメモリアクセス動作のうち、メモリ停止の発生源となるかもしれないメモリアクセス動作をすべて特定する。ページテーブルデータ２６は、データ処理装置２のエミュレーションが行われている際に、当該仮想データ処理装置２のメモリアドレス空間内のメモリマッピング済み仮想デバイス８および１０に対応する「無効」または「アクセス無し」のメモリアドレス領域としてマーク付けされるようにプログラムされる。よって、メモリ管理装置２４は、当該仮想データ処理装置によって行われる処理をエミュレートするプロセッサコア１８によるプログラム命令のストリームの実行時に発生する当該仮想データ処理装置のメモリマッピング済みデバイスに対応するメモリアドレスに対するメモリアクセス動作を検出する機能を持つ検出回路として機能する。メモリ管理装置２４によって生成されたメモリ停止信号は、フォールトステータスレジスタ（メモリ停止レジスタ）２８へと供給される。フォールトステータスレジスタ２８は、この信号に応答して、プロセッサコア１８からフォールトステータスレジスタ２８へと供給された停止情報を記憶する。この停止情報は、前記メモリ停止の発生源となったメモリアクセス動作を特徴付ける多様な異なる情報を含む。前記メモリ停止はまた、割り込み処理ルーチンの処理もトリガする。この割り込み処理ルーチンは、フォールトステータスレジスタ２８を読み出すメモリ停止取り扱いプログラム命令として機能し、その後、メモリマッピング済み仮想デバイスによって行われているメモリアクセス動作をエミュレートするよう機能する。フォールトステータスレジスタ２８内に書き込まれたメモリ停止データは、当該停止の発生源となるメモリアクセスと関連付けられたコアレジスタ番号（単数または複数）（例えば、ＡＲＭアーキテクチャコアに関するＲ０〜Ｒ１５のうち１つ以上）を含む。前記メモリアクセスは読み出し動作または書き込み動作であり得、そのため、前記レジスタ番号は、宛先レジスタ番号またはソースレジスタ番号であり得る。
【００２３】
図３は、フォールトステータスレジスタ２８に書き込まれ得るメモリ停止データを模式的に示す。このメモリ停止データは、停止タイプを特定するデータと、当該メモリアクセスが読み出し動作であったかまたは書き込み動作であったかを示すフラグと、メモリ停止取り扱いプログラム命令が当該メモリ停止データを有効とみなすべきか否かを示すフラグと、当該メモリアクセスと関連付けられたレジスタのレジスタ番号を特定するデータと、当該メモリアクセスと関連付けられたデータアクセスサイズを特定するデータと、前記停止によるメモリアクセス命令の命令サイズを特定するデータと、前記データを符号拡張すべきか否かを特定するデータとを含む。異なる種類のメモリ停止データをさらにまたは代替的に提供し得ることが理解される。さらに図３中には、いくつかの実施形態において自由選択的に提供され得る更新レジスタ３０も示されている。
【００２４】
当業者であれば理解するように、いくつかのメモリアクセス命令は、当該メモリアクセスのメモリアドレスの導出元であるアドレス値を記憶するベースレジスタを用いる。前記ベースレジスタ内に記憶される値を、メモリアクセス動作の一部として更新してもよい。一例として、前記ＡＲＭアーキテクチャ内において、プレインデキシングメモリアクセス命令およびポストインデキシングメモリアクセス命令がサポートされ、当該メモリアクセスプログラム命令の実行前または実行後のいずれかに、メモリアドレス値にインクリメントが付与される。このようなメモリアクセス命令が停止し、このメモリアクセス命令をエミュレートしようとする場合、当該エミュレーションにより、前記ベースレジスタ値に対して副作用も再生される点が重要である。ベースレジスタ値を更新するこのような副作用は、メモリマッピング済み仮想デバイスへアクセスする命令内において一般的ではないものの、実際に発生することがあるため、サポートが必要である。１つのサポート方法として、フォールトステータスレジスタ２８内に有効フラグを供給することができ、当該メモリ停止データが有効であることを示すようにこのフラグが設定されていない場合、当該メモリ停止の発生源となったプログラム命令を読み出すことができ、当該プログラム命令の復号化から、ベースレジスタ値を更新する副作用を決定することができる。ベースレジスタ値への副作用が存在していた命令について停止がトリガされた場合、この命令については、フォールトステータスレジスタ２８内の有効フラグはプロセッサコア１８によって設定されない。有効フラグが設定されない命令の別の例として、複数ロード／記憶命令がある。メモリ停止データが有効である命令に対し、有効フラグが設定される。あるいは、更新レジスタ３０を設けてもよく、メモリ停止発生時に、この更新レジスタ３０内に、ベースレジスタ値に対して行う必要のあるあらゆる更新を特定するデータを書き込むことができる。この更新データは、ベースアドレス値を記憶しているベースレジスタの識別情報（例えば、レジスタ番号）および前記ベースレジスタ内に記憶されるべき新規値を示すデータまたは前記ベースレジスタに適用すべき変更を含み得る。更新レジスタ３０の提供は自由選択であり、有効フラグを用いることにより、仮想化サポート時に発生するメモリ停止の大部分をメモリ停止レジスタ内の有効データ（ＦＳＲ２８）を用いて取り扱うことが可能になり、無効となる場合は稀であることが理解される。
【００２５】
このように、各特定の実装がメモリ停止データを提供するための命令および単に有効フラグをゼロに設定するための命令を決定することを可能にするアプローチにより、各実装がその特定の実装にとって適切な１組の命令を選択することが可能になり、ソフトウェアも同様に自動調節される（すなわち、ハードウェアから当該データが提供されない場合、ソフトウェアは、前記命令のルックアップのみを行う）。これは、命令サブセットを指定する代替的な方法と比較して大いに有利である。なぜならば、この別の方法の場合、当該データをアーキテクチャ内に提供しなければならず、その場合、全ての実装が当該データを提供しなければならないからである。
【００２６】
図４は、上記技術を模式的に示すフロー図である。ステップ３２およびステップ３４において、プロセッサコア１８は、ゲストオペレーティングプログラム１６の制御下で仮想データ処理装置２上で実行するプログラムをエミュレートするためのプログラム命令のストリームを実行する。ゲストオペレーティングプログラム１６自身も、ハイパーバイザプログラム１４によってエミュレートされる（かまたはサポートされる）。メモリ停止が発生すると、処理はステップ３６へと進む。ステップ３６において、プロセッサコア１８は、メモリ停止データをフォールトステータスレジスタ２８に書き込む。ステップ３８において、割り込みサービスルーチンの実行を開始する。割り込みサービスルーチンは、メモリマッピング済み仮想デバイスへのメモリアクセスをエミュレートするメモリ停止取り扱いプログラム命令として機能する。ステップ４０において、フォールトステータスレジスタ２８内に保存されている前記メモリ停止データ内に有効フラグが設定されているか否かを決定する。有効フラグが設定されていない場合、処理はステップ４１へと進む。ステップ４１において、前記メモリ停止の発生源となった命令のアドレスを決定する。その後、処理はステップ４２へと進む。ステップ４２において、上述したような複数レベルのアドレス翻訳および起こり得る行方不明のキャッシュを介して、前記メモリ停止の発生源となった命令をメインメモリ２２から読み出す。その後、ステップ４３において、メモリから読み出された命令を復号化する。ステップ４４において、ステップ４２におけるプログラム命令の読み出しから導出されたデータを用いて、メモリマッピング済み仮想デバイスへのデバイスアクセスをエミュレートする。
【００２７】
前記有効フラグがフォールトステータスレジスタ２８内に保存されている前記メモリ停止データが有効であると示す場合、処理はステップ４０からステップ４６へと進む。ステップ４６において、前記メモリ停止データをフォールトステータスレジスタ２８から読み出し、前記メモリ停止データをステップ４４において用いて、メモリマッピング済み仮想デバイスへのメモリアクセスをエミュレートする。前記メモリ停止データは、図３中に示すデータ（例えば、ソース／宛先レジスタ番号、データアクセスサイズ、命令サイズ、符号拡張情報、書き込み／読み出し情報および停止タイプならびに自由選択的に更新されたアドレス情報）などのデータを含む。このようなデータは、更新レジスタ３０内に保存され得、メモリ停止取り扱いプログラム命令の実行の一部として別個に読み出され得る。メモリマッピング済み仮想デバイスへのメモリアクセスのエミュレーションは、通常、前記メモリ停止の発生元となったプログラムストリームの実行へ戻ったときに、完了する。
【符号の説明】
【００２８】
２  仮想データ処理装置
１２  ホストデータ処理装置
１４  ハイパーバイザプログラム
１６  ゲストオペレーティングシステムプログラム
１８  プロセッサコア
２０  キャッシュメモリ
２２  メインメモリ
２４  メモリ管理装置
２６  ページテーブルデータ
２８  フォールトステータスレジスタ（メモリ停止レジスタ）
３０  更新レジスタ
【図１】
2011523741.tif 000003
【図２】
2011523741.tif 000004
【図３】
2011523741.tif 000005
【図４】
2011523741.tif 000006
【手続補正書】
【提出日】平成22年2月23日(2010.2.23)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
仮想データ処理装置の仮想化をホストデータ処理装置によってサポートする方法であって、
前記仮想データ処理装置による処理をエミュレートするためにプログラム命令のストリームを前記ホストデータ処理装置によって実行するステップと、
前記仮想データ処理装置のメモリマッピング済みデバイスに対応するメモリアドレスに対する、メモリアクセス動作を行おうとしているメモリアクセス命令の実行試行を検出回路により検出するステップと、
メモリ停止回路により、前記メモリアクセス動作を特徴付けるメモリ停止データをメモリ停止レジスタに書き込むステップであって、前記メモリ停止データは、前記メモリアクセス動作によってアクセスされた１つ以上のレジスタを示すデータを含む、ステップと、
前記ホストデータ処理装置によるメモリ停止取り扱いプログラム命令の実行により、メモリ停止例外をトリガするステップと
を含み、
前記トリガステップにより、
（ｉ）前記メモリ停止レジスタから前記メモリ停止データを読み出し、
（ｉｉ）前記メモリ停止データを用いて前記メモリアクセス動作をエミュレートし、前記メモリ停止データは、前記メモリアクセス動作によってアクセスされた１つ以上のレジスタを示す前記データを含み、
（ｉｉｉ）プログラム命令の前記ストリームの実行に戻り、
前記メモリ停止データは、前記メモリ停止例外をトリガした前記メモリアクセス命令に対して前記メモリ停止データが有効であるか否かを示す有効性データを含み、前記メモリ停止を特徴付ける前記データが前記メモリ停止例外に対して有効ではないと前記メモリ停止取り扱いプログラム命令が前記有効性データから決定した場合、前記メモリ停止取り扱いプログラム命令は、前記メモリアクセス命令を命令メモリから読み出し、前記メモリアクセス命令から、前記メモリアクセス動作をエミュレートするための１つ以上のパラメータを決定する
ことを特徴とする方法。
【請求項２】
前記メモリ停止データは、
前記メモリアクセス動作によるデータワードのサイズを示すデータ、
前記メモリアクセス動作が読み出し動作であるかまたは書き込み動作であるかのデータ、
前記メモリアクセス動作のための１つ以上のソースレジスタを示すデータ、
前記メモリアクセス動作のための１つ以上の宛先レジスタを示す前記データ、
前記メモリアクセス動作によるデータワードを符号拡張すべきかを示すデータ、および
前記メモリアクセス命令の命令サイズを示すデータ
のうちの１つ以上を含む
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記メモリアドレスを示すアドレス値と、前記メモリアクセス命令の前記実行と関連付けられた前記アドレス値に対して行われるべき更新とを記憶するベースレジスタを前記メモリアクセス命令が指定する場合、前記メモリ停止取り扱いプログラム命令は、前記メモリアクセス命令を命令メモリから読み出し、前記メモリアクセス命令から、前記ベースレジスタ内の前記アドレス値に対して前記更新を行うための１つ以上のパラメータを決定する
ことを特徴とする請求項１または２に記載の方法。
【請求項４】
前記有効性データは、前記メモリ停止を特徴付ける前記データが、前記ベースレジスタ内に記憶された前記アドレス値を更新するメモリアクセス命令に対して有効ではないことを示す
ことを特徴とする請求項３に記載の方法。
【請求項５】
前記メモリアドレスを示すアドレス値と、前記メモリアクセス命令の前記実行と関連付けられた前記アドレス値に対して行われるべき更新とを記憶するベースレジスタを前記メモリアクセス命令が指定する場合、前記方法は、前記メモリ停止回路により、前記アドレス値に対して行われるべき前記更新を特徴付ける更新データを更新レジスタに書き込むステップをさらに含む
ことを特徴とする請求項１または２に記載の方法。
【請求項６】
前記メモリ停止取り扱いプログラム命令は、前記更新レジスタから前記ベースレジスタ内の前記アドレス値に対して前記更新を行うための１つ以上のパラメータを前記更新データを読み出す
ことを特徴とする請求項５に記載の方法。
【請求項７】
プログラム命令の前記ストリームは、ゲストオペレーティングシステムの制御下で実行され、前記仮想データ処理装置による前記ゲストオペレーティングシステムの実行は、ハイパーバイザプログラムの制御下で前記ホストデータ処理装置によってエミュレートされる
ことを特徴とする請求項１から６のうちのいずれか一項に記載の方法。
【請求項８】
前記検出回路は、ページテーブルデータを用いて前記メモリ内のメモリアドレスへのアクセスを制御するメモリ管理装置である
ことを特徴とする請求項１から７のうちのいずれか一項に記載の方法。
【請求項９】
前記ページテーブルデータは、前記メモリマッピング済みデバイスに対応する前記メモリアドレスに対し、前記メモリアクセス命令が前記メモリアクセス動作を行おうとしている場合に停止をトリガする値をマーク付けする
ことを特徴とする請求項８に記載の方法。
【請求項１０】
仮想データ処理装置の仮想化のサポートを提供するデータを処理する装置であって、
前記仮想データ処理装置のメモリマッピング済みデバイスに対応するメモリアドレスに対し、メモリアクセス動作を行おうとしているメモリアクセス命令の実行試行に応答してメモリ停止をトリガする検出回路と、
前記メモリ停止に応答して、前記メモリアクセス動作を特徴付けるメモリ停止データをメモリ停止レジスタに書き込むメモリ停止回路であって、前記メモリ停止データは、前記メモリアクセス動作によってアクセスされた１つ以上のレジスタを示すデータを含む、メモリ停止回路と
を含み、
前記メモリ停止データは、前記メモリ停止例外をトリガした前記メモリアクセス命令に対して前記メモリ停止データが有効であるか否かを示す有効性データを含み、前記メモリ停止は、前記データ処理装置によって実行されるメモリ停止取り扱いプログラム命令によって取り扱われ、前記メモリ停止を特徴付ける前記データが前記メモリ停止例外に対して有効ではないと前記メモリ停止取り扱いプログラム命令が前記有効性データから決定した場合、前記メモリ停止取り扱いプログラム命令は、前記メモリアクセス命令を命令メモリから読み出し、前記メモリアクセス命令から、前記メモリアクセス動作をエミュレートするための１つ以上のパラメータを決定する
ことを特徴とする装置。
【請求項１１】
前記メモリ停止データは、
前記メモリアクセス動作によるデータワードのサイズを示すデータ、
前記メモリアクセス動作が読み出し動作であるかまたは書き込み動作であるかのデータ、
前記メモリアクセス動作のための１つ以上のソースレジスタを示すデータ、
前記メモリアクセス動作によってアクセスされた１つ以上のレジスタを示すデータ、
前記メモリアクセス動作によるデータワードを符号拡張すべきかを示すデータ、および
前記メモリアクセス命令の命令サイズを示すデータ
のうちの１つ以上を含む
ことを特徴とする請求項１０に記載の装置。
【請求項１２】
前記メモリアドレスを示すアドレス値と、前記メモリアクセス命令の前記実行と関連付けられた前記アドレス値に対する行われるべき更新とを記憶するベースレジスタを前記メモリアクセス命令が指定する場合、メモリ停止取り扱いプログラム命令は、前記メモリアクセス命令を命令メモリから読み出し、前記メモリアクセス命令から、前記ベースレジスタ内に前記アドレス値に対して前記更新を行うための１つ以上のパラメータを決定する
ことを特徴とする請求項１０または１１に記載の装置。
【請求項１３】
前記有効性データは、前記ベースレジスタ内に記憶された前記アドレス値を更新するメモリアクセス命令に対し、前記メモリ停止を特徴付ける前記データが有効ではないことを示す
ことを特徴とする請求項１２に記載の装置。
【請求項１４】
前記メモリアドレスを示すアドレス値と、前記メモリアクセス命令の前記実行と関連付けられた前記アドレス値に対して行われるべき更新とを記憶するベースレジスタを前記メモリアクセス命令が指定する場合、前記メモリ停止回路は、前記メモリ停止に応答して、前記アドレス値に対して行われるべき前記更新を特徴付ける更新データを更新レジスタに書き込む
ことを特徴とする請求項１０または１１に記載の装置。
【請求項１５】
メモリ停止取り扱いプログラム命令は、前記更新レジスタから前記ベースレジスタ内の前記アドレス値に対する前記更新を行うための１つ以上のパラメータを前記更新データを読み出す
ことを特徴とする請求項１４に記載の装置。
【請求項１６】
プログラム命令のストリームは、ゲストオペレーティングシステムの制御下で実行され、前記仮想データ処理装置による前記ゲストオペレーティングシステムの実行は、ハイパーバイザプログラムの制御下で前記データ処理装置によりエミュレートされる
ことを特徴とする請求項１０から１５のうちのいずれか一項に記載の装置。
【請求項１７】
前記検出回路は、ページテーブルデータを用いて前記メモリ内のメモリアドレスへのアクセスを制御するメモリ管理装置である
ことを特徴とする請求項１０から１６のうちのいずれか一項に記載の装置。
【請求項１８】
前記ページテーブルデータは、前記メモリマッピング済みデバイスに対応する前記メモリアドレスに対し、前記メモリアクセス命令が前記メモリアクセス動作を行おうとしている場合に停止をトリガする値をマーク付けする
ことを特徴とする請求項１７に記載の装置。
【請求項１９】
仮想データ処理装置の仮想化のサポートを提供するデータ処理のための装置であって、
前記仮想データ処理装置のメモリマッピング済みデバイスに対応するメモリアドレスに対して、メモリアクセス動作を行おうとしているメモリアクセス命令の実行試行に応答して、メモリ停止をトリガする検出手段と、
前記メモリ停止に応答して、前記メモリアクセス動作を特徴付けるメモリ停止データをメモリ停止レジスタに書き込むメモリ停止手段であって、前記メモリ停止データは、前記メモリアクセス動作によってアクセスされた１つ以上のレジスタを示すデータを含む、メモリ停止手段と
を含み、
前記メモリ停止データは、前記メモリ停止例外をトリガした前記メモリアクセス命令に対して前記メモリ停止データが有効であるか否かを示す有効性データを含み、前記メモリ停止は、前記データ処理装置によって実行されるメモリ停止取り扱いプログラム命令によって取り扱われ、前記メモリ停止を特徴付ける前記データが前記メモリ停止例外に対して有効ではないと前記メモリ停止取り扱いプログラム命令が前記有効性データから決定した場合、前記メモリ停止取り扱いプログラム命令は、前記メモリアクセス命令を命令メモリから読み出し、前記メモリアクセス命令から、前記メモリアクセス動作をエミュレートするための１つ以上のパラメータを決定する
ことを特徴とする装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００５
【補正方法】変更
【補正の内容】
【０００５】
一態様から見れば、本発明は、仮想データ処理装置の仮想化をホストデータ処理装置によってサポートする方法を提供する。前記方法は、
プログラム命令のストリームを前記ホストデータ処理装置によって実行して、前記仮想データ処理装置による処理をエミュレートするステップと、
前記仮想データ処理装置のメモリマッピング済みデバイスに対応するメモリアドレスに対する、メモリアクセス動作を行おうとしているメモリアクセス命令の実行試行を検出回路により検出するステップと、
メモリ停止回路により、前記メモリアクセス動作を特徴付けるメモリ停止データをメモリ停止レジスタに書き込むステップであって、前記メモリ停止データは、前記メモリアクセス動作によってアクセスされた１つ以上のレジスタを示すデータを含む、ステップと、
前記ホストデータ処理装置によるメモリ停止取り扱いプログラム命令の実行により、メモリ停止例外をトリガするステップと、
を含み、
前記トリガするステップにより、
（ｉ）前記メモリ停止レジスタから前記メモリ停止データを読み出し、
（ｉｉ）前記メモリ停止データを用いて前記メモリアクセス動作をエミュレートし、前記メモリ停止データは、前記メモリアクセス動作によってアクセスされた１つ以上のレジスタを示す前記データを含み、
（ｉｉｉ）前記プログラム命令のストリームの実行に戻り、
前記メモリ停止データは、前記メモリ停止例外をトリガした前記メモリアクセス命令に対して前記メモリ停止データが有効であるか否かを示す有効性データを含み、前記メモリ停止を特徴付ける前記データが前記メモリ停止例外に対して有効ではないと前記メモリ停止取り扱いプログラム命令が前記有効性データから決定した場合、前記メモリ停止取り扱いプログラム命令は、前記メモリアクセス命令を命令メモリから読み出し、前記メモリアクセス命令から、前記メモリアクセス動作をエミュレートするための１つ以上のパラメータを決定する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
前記メモリ停止データは、メモリ停止をトリガしたメモリアクセス命令に対してメモリ停止データが有効であるか否かを示す有効性データをさらに含み得る。前記メモリ停止データが有効ではない場合、前記メモリ停止取り扱いプログラム命令は、このことを前記有効性データから決定することができ、その後、前記メモリ停止の発生源となったメモリアクセス命令を前記メモリから読み出すステップと、前記読み出された命令から直接メモリアクセス命令パラメータを決定するステップとに戻る。このようにして、ハードウェア設計者は、シンドロームデータを得るための十分に簡単な命令と、ハードウェアにおけるサポートの付加のためのハードウェアオーバーヘッドとして適していないより複雑な命令とを選択することができる。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
前記メモリ停止データは、前記メモリアクセス動作によってアクセスされた１つ以上のレジスタを示すデータを越えるさらなる情報を含み得ることが、理解される。前記１つ以上のレジスタを示すデータにより、最も一般的な場合、仮想デバイスアクセスを容易にサポートすることができ、前記メモリ停止レジスタ内に記憶されたデータの拡張により、サポートされるアクセスの種類が拡張される。前記メモリ停止データは、当該メモリアクセス動作に用いられるデータワードのサイズ、当該動作が読み出し動作であるかまたは書き込み動作であるかを示すデータ、ソースレジスタまたは宛先レジスタを示すデータ、当該データワードに対し当該メモリアクセスの一部として符号拡張を行うか否かを示すデータ、および命令にアクセスしているメモリの命令サイズを示すデータを含むように、拡張することができる。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
別の態様から見れば、本発明は、仮想データ処理装置の仮想化のサポートを提供するデータを処理する装置を提供する。前記データ処理装置は、
前記仮想データ処理装置のメモリマッピング済みデバイスに対応するメモリアドレスに対する、メモリアクセス動作を行おうとしているメモリアクセス命令の実行試行に応答してメモリ停止をトリガする検出回路と、
前記メモリ停止に応答して、前記メモリアクセス動作を特徴付けるメモリ停止データをメモリ停止レジスタに書き込むメモリ停止回路であって、前記メモリ停止データは、前記メモリアクセス動作によってアクセスされた１つ以上のレジスタを示すデータを含む、メモリ停止回路と
を含み、
前記メモリ停止データは、前記メモリ停止例外をトリガした前記メモリアクセス命令に対して前記メモリ停止データが有効であるか否かを示す有効性データを含み、前記メモリ停止は、前記データ処理装置によって実行されるメモリ停止取り扱いプログラム命令によって取り扱われ、前記メモリ停止を特徴付ける前記データが前記メモリ停止例外に対して有効ではないと前記メモリ停止取り扱いプログラム命令が前記有効性データから決定した場合、前記メモリ停止取り扱いプログラム命令は、前記メモリアクセス命令を命令メモリから読み出し、前記メモリアクセス命令から、前記メモリアクセス動作をエミュレートするための１つ以上のパラメータを決定する。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
さらなる態様から見れば、本発明は、仮想データ処理装置の仮想化のサポートを提供するデータを処理する装置を提供する。前記データ処理装置は、
前記仮想データ処理装置のメモリマッピング済みデバイスに対応するメモリアドレスに対する、メモリアクセス動作を行おうとしているメモリアクセス命令の実行試行に応答して、メモリ停止をトリガする検出手段と、
前記メモリ停止に応答して、前記メモリアクセス動作を特徴付けるメモリ停止データをメモリ停止レジスタに書き込むメモリ停止手段であって、前記メモリ停止データは、前記メモリアクセス動作によってアクセスされた１つ以上のレジスタを示すデータを含む、メモリ停止手段と
を含み、
前記メモリ停止データは、前記メモリ停止例外をトリガした前記メモリアクセス命令に対して前記メモリ停止データが有効であるか否かを示す有効性データを含み、前記メモリ停止は、前記データ処理装置によって実行されるメモリ停止取り扱いプログラム命令によって取り扱われ、前記メモリ停止を特徴付ける前記データが前記メモリ停止例外に対して有効ではないと前記メモリ停止取り扱いプログラム命令が前記有効性データから決定した場合、前記メモリ停止取り扱いプログラム命令は、前記メモリアクセス命令を命令メモリから読み出し、前記メモリアクセス命令から、前記メモリアクセス動作をエミュレートするための１つ以上のパラメータを決定する。
【国際調査報告】
2011523741.tif 000007
2011523741.tif 000008
2011523741.tif 000009