(57)【要約】【課題】回路規模の増大を抑制しつつ、仮想マシンモニタにより設定されるメモリ保護機能と仮想マシンにより設定されるメモリ保護機能とを実現する。【解決手段】データ処理装置１は、メモリ保護の設定対象である複数のアドレス区間を記憶可能であるメモリ保護設定記憶部２と、メモリ保護設定記憶部２に記憶されたアドレス区間それぞれに対して設けられ、アクセス要求により指定されたアクセス先のアドレス領域がメモリ保護設定記憶部２から取得した前記アドレス区間に該当するか否かに基づいて前記アクセス要求に対するアクセスの可否を仮判定する複数の第１の判定部３と、分別情報と、第１の判定部３による各仮判定結果とに基づいて、アクセスの可否を最終判定する第２の判定部４とを有する。【選択図】図４
2019219787.tif 000002
【特許請求の範囲】
【請求項１】
メモリ保護の設定対象である複数のアドレス区間を記憶可能であるメモリ保護設定記憶部と、
前記メモリ保護設定記憶部に記憶されたアドレス区間それぞれに対して設けられ、アクセス要求により指定されたアクセス先のアドレス領域が前記メモリ保護設定記憶部から取得した前記アドレス区間に該当するか否かに基づいて前記アクセス要求に対するアクセスの可否を仮判定する複数の第１の判定部と、
前記メモリ保護設定記憶部が記憶する各アドレス区間が仮想マシンモニタにより設定されるメモリ保護のためのものであるか仮想マシンにより設定されるメモリ保護のためのものであるかを分別する分別情報と、前記第１の判定部による各仮判定結果とに基づいて、アクセスの可否を最終判定する第２の判定部と
を有するデータ処理装置。
【請求項２】
前記第２の判定部は、前記分別情報により仮想マシンモニタにより設定されるメモリ保護のためのものであると分別された前記アドレス区間についての前記第１の判定部の仮判定結果から算出される第１の判定結果と、前記分別情報により仮想マシンにより設定されるメモリ保護のためのものであると分別された前記アドレス区間についての前記第１の判定部の仮判定結果から算出される第２の判定結果とを入力とする予め定められた論理演算を行うことにより、アクセスの可否を最終判定する
請求項１に記載のデータ処理装置。
【請求項３】
前記メモリ保護設定記憶部は、さらに、アクセスの属性についての情報である属性情報を前記アドレス区間と対応付けて記憶し、
前記第１の判定部は、前記アクセス要求により指定されたアクセス先のアドレス領域が前記アドレス区間に該当するか否か、及び、前記アクセス要求で要求されたアクセスの属性が前記属性情報に一致するか否かに基づいて前記アクセス要求に対するアクセスの可否を仮判定する
請求項１に記載のデータ処理装置。
【請求項４】
前記第２の判定部は、前記分別情報と、前記第１の判定部による各仮判定結果と、前記アクセス要求で要求されたアクセスが仮想マシンモニタによるアクセスであるか否かを示すアクセス元情報と、に基づいて、アクセスの可否を最終判定する
請求項１に記載のデータ処理装置。
【請求項５】
前記メモリ保護設定記憶部の記憶領域における書き込み対象を指定するアドレスと、前記分別情報と、仮想マシンモニタによる書き込みであるか否かを示す書き込み主体情報とに基づいて、前記メモリ保護設定記憶部の記憶領域における書き込みを制御するメモリ保護設定書き込み制御部
をさらに有する請求項１に記載のデータ処理装置。
【請求項６】
前記分別情報を記憶する分別情報記憶部と、
前記分別情報記憶部の記憶領域における書き込み対象を指定するアドレスと、仮想マシンモニタによる書き込みであるか否かを示す書き込み主体情報とに基づいて、前記分別情報記憶部の記憶領域における書き込みを制御する分別情報書き込み制御部
をさらに有する請求項１に記載のデータ処理装置。
【請求項７】
前記第２の判定部は、前記第１の判定結果、前記第２の判定結果、又は最終判定の結果を、プロセッサに通知する
請求項２に記載のデータ処理装置。
【請求項８】
前記メモリ保護設定記憶部に記憶された情報のメモリへの退避、及び前記メモリに退避された情報の前記メモリ保護設定記憶部への復帰を行うシーケンサさらに有する
請求項１に記載のデータ処理装置。
【請求項９】
前記アドレス区間は、アクセスの許可が可能なアドレス区間を示す
請求項１に記載のデータ処理装置。
【請求項１０】
前記アドレス区間は、アクセスが禁止されるアドレス区間を示す
請求項１に記載のデータ処理装置。
【請求項１１】
メモリ保護設定記憶部にメモリ保護の設定対象であるアドレス区間を記憶し、
アクセス要求により指定されたアクセス先のアドレス領域が前記アドレス区間に該当するか否かに基づいて前記アクセス要求に対するアクセスの可否を前記アドレス区間毎に仮判定し、
前記アドレス区間が仮想マシンモニタにより設定されるメモリ保護のためのものであるか仮想マシンにより設定されるメモリ保護のためのものであるかを分別する分別情報と、各仮判定結果とに基づいて、アクセスの可否を最終判定する
メモリ保護方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理装置及びメモリ保護方法に関し、例えば仮想マシンが動作するデータ処理装置に好適に利用できるものである。
【背景技術】
【０００２】
物理マシン上に仮想マシン（ＶＭ：  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）を構築する技術である仮想化技術が知られている。この仮想化技術では、仮想マシンモニタ（ＶＭＭ： Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｍｏｎｉｔｏｒ）と呼ばれる管理ソフトウェア上で仮想マシンが動作する。仮想化技術を搭載したデータ処理装置においては、２種類のメモリ保護が存在しうる。１つは、仮想マシンモニタにより設定されるメモリ保護である。もう１つは、仮想マシン、より詳細には仮想マシン上で実行されるプログラム（例えば、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）など）により設定されるメモリ保護である。
【０００３】
これに関し、特許文献１は、第１のＭＰＵ（メモリ保護ユニット：Ｍｅｍｏｒｙ  Ｐｒｏｔｅｃｔｉｏｎ  Ｕｎｉｔ）と第２のＭＰＵとを有するマイクロプロセッサ・コアについて開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２０１６−５０９３０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載されたマイクロプロセッサ・コアにおいて、上述の２種類のメモリ保護を実現する場合、仮想マシンが第１のＭＰＵを使用し、仮想マシンモニタが第２のＭＰＵを使用することとなる。
ここで、第１のＭＰＵにおいて利用されるエントリ数と第２のＭＰＵにおいて利用されるエントリ数は、いずれも、動作させる仮想マシンに依存する。つまり、例えば、１つの物理マシン上に様々な仮想マシンが時分割で順に動作する場合、いずれの仮想マシンが動作しているかによって、第１のＭＰＵにおいて利用されるエントリ数及び第２のＭＰＵにおいて利用されるエントリ数は異なる。
このため、当該物理マシン上での動作が想定される各仮想マシンにより第１のＭＰＵにおいて利用されるエントリ数のうちの最大数を、第１のＭＰＵのエントリ数として当該物理マシンの製造時に静的に設定する必要がある。同様に、当該物理マシン上での動作が想定される各仮想マシンを考慮して、第２のＭＰＵのエントリ数が当該物理マシンの製造時に静的に設定される必要がある。つまり、第１のＭＰＵ及び第２のＭＰＵのエントリ数は、いずれも、想定される最大利用数としなければならない。このことは、回路規模の増大を招く。
【０００６】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
一実施の形態によれば、データ処理装置は、複数のアドレス区間を記憶可能なメモリ保護設定記憶部と、アクセス要求に対するアクセスの可否を仮判定する複数の第１の判定部と、前記メモリ保護設定記憶部が記憶する各アドレス区間が仮想マシンモニタにより設定されるメモリ保護のためのものであるか仮想マシンにより設定されるメモリ保護のためのものであるかを分別する分別情報と、前記第１の判定部による各仮判定結果とに基づいて、アクセスの可否を最終判定する第２の判定部とを有する。
【発明の効果】
【０００８】
前記一実施の形態によれば、回路規模の増大を抑制しつつ、仮想マシンモニタにより設定されるメモリ保護機能と仮想マシンにより設定されるメモリ保護機能とを実現することができる。
【図面の簡単な説明】
【０００９】
【図１】仮想化技術を搭載したデータ処理装置における２種類のメモリ保護について示す模式図である。
【図２】２つのＭＰＵを用いて２種類のメモリ保護を実現する場合の各ＭＰＵのエントリ数を示す模式図である。
【図３】１つのＭＰＵを用いて２種類のメモリ保護を実現する場合のエントリ数を示す模式図である。
【図４】実施の形態の概要にかかるデータ処理装置の構成の一例を示すブロック図である。
【図５】実施の形態１にかかるデータ処理装置の構成の一例を示すブロック図である。
【図６】ＭＰＵエントリ部の各エントリに格納される情報の一例を示す模式図である。
【図７】メモリ保護権限判定部の構成の一例を示すブロック図である。
【図８】実施の形態１にかかる最終アクセス判定部の構成の一例を示すブロック図である。
【図９】エントリレジスタアクセス権限判定部の構成の一例を示すブロック図である。
【図１０】設定レジスタアクセス権限判定部の構成の一例を示すブロック図である。
【図１１】実施の形態２にかかるデータ処理装置の構成の一例を示すブロック図である。
【図１２】実施の形態２にかかる最終アクセス判定部の構成の一例を示すブロック図である。
【図１３】処理回路が受信したホスト違反情報及びゲスト違反情報と、処理回路が保持する違反情報との対応関係の一例を示す表である
【図１４】処理回路が受信したホスト違反情報及びゲスト違反情報と、例外を発生させるマシンとの対応関係の一例を示す表である。
【図１５】実施の形態３にかかるデータ処理装置の構成の一例を示すブロック図である。
【図１６】仮想マシンモニタの指示により行われる設定情報の切り替えを示す模式図である。
【図１７】仮想マシンの適切な指示により行われる設定情報の切り替えを示す模式図である。
【図１８】仮想マシンの不適切な指示により行われる設定情報の切り替えを示す模式図である。
【図１９】実施の形態４にかかる最終アクセス判定部の構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１０】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１１】
＜事前の検討＞
実施の形態の説明の前に、まず、実施の形態に至るまでに発明者により検討された事項を説明する。
図１は、仮想化技術を搭載したデータ処理装置における２種類のメモリ保護について示す模式図である。仮想化技術においては、図１に示すように、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）９０といった物理マシン上で、ハイパーバイザ―（Ｈｙｐｅｒｖｉｓｏｒ）とも称される仮想マシンモニタ９１が動作する。そして、この仮想マシンモニタ９１上で、例えば仮想マシン９２＿１、９２＿２が実現される。各仮想マシンにおいては、ＯＳやアプリケーションソフトウェアが実装される。なお、ＯＳが実装されず、アプリケーションソフトウェアだけが実装される場合もある。図１に示して例では、仮想マシン９２＿１においてＯＳ９２０＿１及びアプリケーションソフトウェア９２１＿１が実行され、仮想マシン９２＿２においてＯＳ９２０＿２及びアプリケーションソフトウェア９２１＿２、９２１＿３が実行されている。
【００１２】
このような仮想化技術を搭載したデータ処理装置においては、仮想マシン（仮想マシン９２＿１又は仮想マシン９２＿２）により設定されるメモリ保護と仮想マシンモニタ９１により設定されるメモリ保護が存在しうる。図１において、メモリ保護９５＿１及びメモリ保護９５＿２が仮想マシンにより設定されるメモリ保護である。メモリ保護９５＿１は、仮想マシン内のアプリケーションソフトウェア間の干渉を防ぐためのメモリ保護であり、メモリ保護９５＿２は、アプリケーションソフトウェアからＯＳへの干渉を防ぐためのメモリ保護である。また、図１において、メモリ保護９５＿３及びメモリ保護９５＿４が仮想マシンモニタにより設定されるメモリ保護である。メモリ保護９５＿３は、仮想マシン間の干渉を防ぐためのメモリ保護であり、メモリ保護９５＿４は、仮想マシンから仮想マシンモニタへの干渉を防ぐためのメモリ保護である。
【００１３】
図２は、２つのＭＰＵを用いて上述した２種類のメモリ保護を実現する場合の各ＭＰＵのエントリ数を示す模式図である。図２では、第１のＭＰＵ（図２においてＭＰＵ１）が仮想マシンによるメモリ保護機能のために利用されるＭＰＵであり、第２のＭＰＵ（図２においてＭＰＵ２）が仮想マシンモニタによるメモリ保護機能のために利用されるＭＰＵである。また、図２に示した例では、４種類の仮想マシン（図２において、ＶＭ０、ＶＭ１、ＶＭ２、ＶＭ３）が順に動作する。
【００１４】
ここで、特に、ＶＭ１の動作時には、仮想マシンによるメモリ保護のみで十分なメモリ保護が実現されるため、仮想マシンモニタによるメモリ保護が必要とされていない。このため、ＶＭ１の動作時には、ＭＰＵ１において多くのエントリが必要とされるが、ＭＰＵ２においては必要とされるエントリ数は０である。なお、例えば、仮想マシンモニタにとって信頼性が非常に高いと言えるメモリ保護機能を提供するＯＳが、ＶＭ１上において実行される場合にこのようなエントリ数となる。
また、ＶＭ２の動作時には、仮想マシンによるメモリ保護が皆無であるため、仮想マシンモニタのみがメモリ保護を行わなければならない。このため、ＶＭ２の動作時には、ＭＰＵ１において必要とされるエントリ数は０であるが、ＭＰＵ２において多くのエントリが必要とされる。なお、例えば、メモリ保護機能を持たない制御ソフトウェアなどがＶＭ２上において実行される場合にこのようなエントリ数となる。
【００１５】
図２に示すように、ＭＰＵ１が必要とするエントリ数、及びＭＰＵ２が必要とするエントリ数は一定ではない。ここで、ＶＭ１が動作する際に、ＭＰＵ１において必要とされるエントリ数をＮ１とし、ＶＭ２が動作する際に、ＭＰＵ２において必要とされるエントリ数をＮ２とする。図２に示すように、ＭＰＵ１のエントリ数をＮ１として設計した場合、ＶＭ１以外の仮想マシンが動作する際は、余剰なエントリが存在する。同様に、ＭＰＵ２のエントリ数をＮ２として設計した場合、ＶＭ２以外の仮想マシンが動作する際は、余剰なエントリが存在する。
【００１６】
これに対し、図３は、１つのＭＰＵを用いて２種類のメモリ保護を実現する場合のエントリ数を示す模式図である。図３に示すように、ある時点において仮想マシンによるメモリ保護機能又は仮想マシンモニタによるメモリ保護機能のうちのいずれか一方に利用されるエントリを、他の時点において他方のメモリ保護機能に利用することで、効率的な構成を実現できる。この場合、例えば、ＭＰＵに設けるべきエントリ数は、Ｎ１及びＮ２の合計よりも小さなＮ３とすることが可能である。以下で述べる実施の形態では、このような動的なエントリの設定を実現する技術について示す。
【００１７】
＜実施の形態の概要＞
実施の形態の詳細な説明に先立って、実施の形態の概要について説明する。図４は、実施の形態の概要にかかるデータ処理装置１の構成の一例を示すブロック図である。図４に示すように、データ処理装置１は、メモリ保護設定記憶部２と、第１の判定部３と、第２の判定部４とを有する。
【００１８】
メモリ保護設定記憶部２は、メモリ保護の設定対象である複数のアドレス区間を記憶可能な記憶部である。ここで、メモリ保護設定記憶部２において記憶されるアドレス区間は、アクセスの許可が可能なアドレス区間であってもよいし、アクセスが禁止されるアドレス区間であってもよい。例えば、メモリへのアクセスがデフォルトで禁止されている場合、即ち原則的にアクセス禁止である場合、アクセスの許可が可能なアドレス区間が設定されることにより、メモリ保護が実現される。このような場合、メモリ保護設定記憶部２において記憶されるアドレス区間は、アクセスの許可が可能なアドレス区間である。同様に、メモリへのアクセスがデフォルトで許可されている場合、即ち原則的にアクセスが許可される場合、アクセスが禁止されるアドレス区間が設定されることにより、メモリ保護が実現される。このような場合、メモリ保護設定記憶部２において記憶されるアドレス区間は、アクセスが禁止されるアドレス区間である。
【００１９】
メモリ保護設定記憶部２は、例えば、複数の記憶領域（例えば、複数のレジスタ）を備えており、各記憶領域にアドレス区間を記憶する。この各記憶領域が上述のエントリに相当する。メモリ保護設定記憶部２において、各エントリは、仮想マシンモニタによるメモリ保護のために利用されてもよいし、仮想マシンによるメモリ保護のために利用されてもよい。すなわち、各エントリは、仮想マシンモニタによりアドレス区間が設定されてもよいし、仮想マシンによりアドレス区間が設定されてもよい。各エントリがいずれのメモリ保護のために利用されるかは、後述する分別情報により定義される。なお、メモリ保護設定記憶部２は、分別情報を有する必要はない。
【００２０】
第１の判定部３は、複数設けられている。具体的には、第１の判定部３は、メモリ保護設定記憶部２に記憶されたアドレス区間それぞれに対して設けられている。第１の判定部３は、アクセス要求により指定されたアクセス先のアドレス領域が、メモリ保護設定記憶部２から取得したアドレス区間に該当するか否かに基づいて当該アクセス要求に対するアクセスの可否を仮判定する。それぞれの第１の判定部３は仮判定結果を第２の判定部に出力する。
【００２１】
第２の判定部４は、分別情報と、第１の判定部３による各仮判定結果とに基づいて、アクセスの可否を最終判定する。ここで、分別情報は、メモリ保護設定記憶部２が記憶する各アドレス区間が仮想マシンモニタにより設定されるメモリ保護のためのものであるか仮想マシンにより設定されるメモリ保護のためのものであるかを分別する情報である。
【００２２】
このようにデータ処理装置１では、分別情報により、メモリ保護設定記憶部２に記憶されたアドレス区間が、上述の２種類のメモリ保護のうちいずれのメモリ保護のためのものであるかを特定することが可能である。このため、第２の判定部４は、第１の判定部３による仮判定結果を、仮想マシンモニタによるメモリ保護のための仮判定結果として認識すべきか仮想マシンによるメモリ保護のための仮判定結果として認識すべきかを特定することができる。このため、メモリ保護設定記憶部２において、仮想マシンモニタ用のエントリと仮想マシン用のエントリとが混在していても、２種類のメモリ保護をそれぞれ適切に実現することができる。また、メモリ保護設定記憶部２における仮想マシンモニタ用のエントリ数と仮想マシン用のエントリ数は、分別情報により動的に変更することができる。つまり、データ処理装置１によれば、メモリ保護設定記憶部２における仮想マシンモニタ用のエントリと仮想マシン用のエントリの割合を柔軟に変更することができる。このため、データ処理装置１によれば、回路規模の増大を抑制しつつ、仮想マシンモニタにより設定されるメモリ保護機能と仮想マシンにより設定されるメモリ保護機能とを実現することができる。
【００２３】
なお、上述の通り、メモリ保護設定記憶部２は、分別情報を記憶する必要がない。すなわち、仮想マシン及び仮想マシンモニタが設定すべきエントリの設定内容は、上述の構成によるメモリ保護を行うか否かに依存しない。したがって、上述の構成を採用するにあたり、既存の技術に与える影響を抑制することができる。
【００２４】
また、メモリ保護設定記憶部２は、さらに、アクセスの属性についての情報である属性情報をアドレス区間と対応付けて記憶してもよい。ここで、属性情報は、例えば、いずれのアクセス種別（例えば、リードアクセス、ライトアクセス、実行アクセスなど）に対する保護設定であるかを示す情報であってもよい。また、属性情報は、例えば、いずれの権限によるアクセス（例えば、ユーザモードでのアクセス、特権モードでのアクセスなど）に対する保護設定であるかを示す情報であってもよい。また、属性情報は、いずれのアクセス主体によるアクセスに対する保護設定であるかを示す情報であってもよい。
この場合、第１の判定部３は、アクセス要求により指定されたアクセス先のアドレス領域がメモリ保護設定記憶部２から取得したアドレス区間に該当するか否か、及び、アクセス要求で要求されたアクセスの属性がメモリ保護設定記憶部２から取得した属性情報に一致するか否かに基づいてアクセス要求に対するアクセスの可否を仮判定する。このような構成にすることで、より詳細なメモリ保護を実現することができる。
【００２５】
＜実施の形態１＞
次に、実施の形態の詳細について説明する。図５は、実施の形態１にかかるデータ処理装置１０の構成の一例を示すブロック図である。図５に示すように、データ処理装置１０は、処理回路１１と、メモリ１２と、グローバル設定情報記憶部１３と、ＭＰＵエントリ部１４と、仮アクセス判定部１５と、最終アクセス判定部１６と、エントリレジスタアクセス権限判定部１７と、設定レジスタアクセス権限判定部１８とを有する。
【００２６】
処理回路１１は、プログラムを実行することにより種々の処理を実行する回路であり、具体的にはＣＰＵなどのプロセッサである。メモリ１２は、例えば、揮発性メモリ又は不揮発性メモリであり、処理回路１１により実行されるプログラム、処理回路１１の処理に利用されるデータなどを記憶する。なお、処理回路１１により実行されるプログラムには、例えば、仮想マシンモニタ及び仮想マシンなどの種々のプログラムが含まれる。本実施の形態では、ＭＰＵエントリ部１４に設定された情報及びグローバル設定情報記憶部１３から得られるエントリ境界情報に基づく、仮想マシンモニタによるメモリ保護設定又は仮想マシンによるメモリ保護設定にしたがったメモリ保護が、メモリ１２に対して実現される。
【００２７】
グローバル設定情報記憶部１３は、エントリ境界情報を記憶するレジスタである。なお、グローバル設定情報記憶部１３は、上述の分別情報に相当する情報であるエントリ境界情報を記憶するため、分別情報記憶部とも称される。エントリ境界情報の詳細については後述する。なお、グローバル設定情報記憶部１３は、エントリ境界情報に加え、メモリ保護のための包括的な他の設定情報を記憶してもよい。
【００２８】
ＭＰＵエントリ部１４は、図４のメモリ保護設定記憶部２に相当し、エントリ１４０＿０からエントリ１４０＿ｎまでの合計ｎ＋１個のエントリを備える。すなわち、ＭＰＵエントリ部１４は、例えばｎ＋１個のレジスタにより構成されている。各エントリ（各レジスタ）には、メモリ保護機能の設定情報が格納される。このため、ＭＰＵエントリ部１４は、ｎ＋１種類のメモリ保護機能の設定情報を格納することができる。なお、この設定情報は仮想マシンモニタ又は仮想マシンにより、ＭＰＵエントリ部１４に設定される。
【００２９】
仮想マシンモニタにより設定されたメモリ保護機能の設定情報は、仮想マシンモニタによるメモリ保護のために利用され、仮想マシンにより設定されたメモリ保護機能の設定情報は、仮想マシンによるメモリ保護のために利用されることが求められる。このため、ＭＰＵエントリ部１４が記憶する設定情報のうち、いずれが仮想マシンモニタにより設定された設定情報であり、いずれが仮想マシンにより設定された設定情報であるかを特定する必要がある。
本実施の形態では、その特定のために、エントリ境界情報が用いられる。エントリ境界情報は、上述の分別情報に相当する。エントリ境界情報は、エントリ１４０＿０からエントリ１４０＿ｎまでのうち、いずれのエントリまでが仮想マシン用のエントリであり、いずれのエントリからが仮想マシンモニタ用のエントリであるかを規定する情報である。以下の説明では、仮想マシン用のエントリをゲスト管理エントリと称し、仮想マシンモニタ用のエントリをホスト管理エントリと称すこととする。また、エントリ１４０＿０、エントリ１４０＿１、・・・、エントリ１４０＿ｎについて、これらを特に区別せずに言及する場合にはエントリ１４０と称すこととする。
【００３０】
なお、図５では、理解を容易にするために、ＭＰＵエントリ部１４は、ゲスト管理エントリとホスト管理エントリとが異なる模様でハッチングされて区別されている。しかしながら、各エントリ１４０がゲスト管理エントリであるかホスト管理エントリであるかをＭＰＵエントリ部１４において区別可能である必要はない。すなわち、各エントリ１４０がゲスト管理エントリであるかホスト管理エントリであるかをＭＰＵエントリ部１４に設定する必要はない。なぜならば、エントリ境界情報により区別可能であるからである。
【００３１】
図６は、ＭＰＵエントリ部１４の各エントリ１４０に格納される情報の一例を示す模式図である。図６に示すように、本実施の形態では、各エントリ１４０には、アドレス区間を規定する下限アドレス及び上限アドレスが格納される。また、各エントリ１４０には、アクセスの属性についての情報である属性情報が下限アドレス及び上限アドレスと対応づけて格納される。なお、本実施の形態では、メモリ１２へのアクセスがデフォルトで禁止されているものとする。このため、各エントリ１４０には、アクセスの許可が可能なアドレス区間を規定する下限アドレス及び上限アドレスが格納される。また、本実施の形態では、属性情報として、いずれのアクセス主体によるアクセスに対する保護設定であるかを示す情報が各エントリ１４０には格納されている。具体的には、いずれのプログラム（仮想マシン）の実行によるアクセスに対する保護設定であるかを識別する識別子情報が、各エントリ１４０には格納されている。以下の説明では、この識別子情報をＭＰＩＤと称すこととする。なお、格納される属性情報は、アクセス種別、モード種別（例えば、ユーザモード、特権モードなど）といった他の情報であってもよい。また、複数の属性情報が格納されてもよい。
【００３２】
各エントリ１４０の設定情報は、仮アクセス判定部１５により参照される。仮アクセス判定部１５は、メモリ保護権限判定部１５０＿０、メモリ保護権限判定部１５０＿１、・・・、メモリ保護権限判定部１５０＿ｎにより構成されている。なお、以下の説明では、メモリ保護権限判定部１５０＿０、メモリ保護権限判定部１５０＿１、・・・、メモリ保護権限判定部１５０＿ｎについて、これらを特に区別せずに言及する場合にはメモリ保護権限判定部１５０と称すこととする。
【００３３】
メモリ保護権限判定部１５０は、図４の第１の判定部３に相当し、ＭＰＵエントリ部１４に格納されている設定情報に基づいて、アクセス可否についての仮判定を行う回路である。メモリ保護権限判定部１５０は、ＭＰＵエントリ部１４の各エントリ１４０に対応して設けられている。
【００３４】
処理回路１１からのアクセス要求があると、各メモリ保護権限判定部１５０は、ＭＰＵエントリ部１４から取得した設定情報に基づいて仮判定を行い、仮判定結果を最終アクセス判定部１６に出力する。すなわち、処理回路１１からのアクセス要求があると、メモリ保護権限判定部１５０＿０は、エントリ１４０＿０から取得した設定情報に基づいて仮判定を行う。同様に、メモリ保護権限判定部１５０＿ｉは、エントリ１４０＿ｉから取得した設定情報に基づいて仮判定を行う。ただし、ｉは、０以上ｎ以下の整数である。このため、処理回路１１からのアクセス要求があると、各メモリ保護権限判定部１５０から出力されたｎ＋１個の仮判定結果が最終アクセス判定部１６に出力される。なお、メモリ保護権限判定部１５０＿０による仮判定結果をＲｌｔ０と表す。同様に、メモリ保護権限判定部１５０＿ｉによる仮判定結果をＲｌｔ ｉと表す。ただし、ｉは、０以上ｎ以下の整数である。
【００３５】
処理回路１１は、メモリ１２へのアクセスを行う際、アクセスアドレスとＶＭフラグと属性情報を出力する。なお、上述の通り、本実施の形態では、属性情報はＭＰＩＤである。ＶＭフラグは、アクセスが仮想マシンモニタによるものであるか、仮想マシンによるものであるかを示す情報であり、例えば値が０である場合、仮想マシンモニタによるアクセスであることを示し、値が１である場合、仮想マシンによるアクセスであることを示す。つまり、ＶＭフラグは、アクセス要求で要求されたアクセスが仮想マシンモニタによるアクセスであるか否かを示すアクセス元情報とも言うことができる。なお、ＶＭフラグは、アクセス元が仮想マシンモニタか否かによってアクセス判定を制御するために後述する最終アクセス判定部１６により用いられる。本実施の形態では、最終アクセス判定部１６においてＶＭフラグを用いた制御を行うが、最終アクセス判定部１６においてＶＭフラグを用いずに制御を行う場合には、処理回路１１によるＶＭフラグの出力若しくは最終アクセス判定部１６へのＶＭフラグの入力は省略されてもよい。なお、処理回路１１のアクセス要求により処理回路１１から出力されるアクセス情報としては、アクセス種別、アクセスサイズなどの他の情報が含まれてもよい。
【００３６】
処理回路１１によるアクセス要求があると、各メモリ保護権限判定部１５０には、アクセスアドレスと属性情報（ＭＰＩＤ）が入力される。各メモリ保護権限判定部１５０は、ＭＰＵエントリ部１４から取得した情報（下限アドレス、上限アドレス、及び属性情報）と、処理回路１１から入力された情報（アクセスアドレス及び属性情報）とを比較することにより、アクセスの可否についての仮判定を行う。
【００３７】
図７は、メモリ保護権限判定部１５０の構成の一例を示すブロック図である。図７に示すように各メモリ保護権限判定部１５０は、アドレス判定部１５１と属性判定部１５２と論理積回路（ＡＮＤ回路）１５３とを有する。
【００３８】
アドレス判定部１５１には、ＭＰＵエントリ部１４からの下限アドレス及び上限アドレスと、処理回路１１からのアクセスアドレスが入力される。なお、アクセスアドレスは、例えば、アドレスとアクセスサイズにより定まるアドレス領域である。アドレス判定部１５１は、アクセスアドレスが、下限アドレスと上限アドレスに基づいて定義される条件（例えば、下限アドレス≦アクセスアドレス≦上限アドレス）に合致しているかどうかを判定する回路である。アドレス判定部１５１は、判定結果信号ａｈｉｔを出力する。アドレス判定部１５１は、入力されたアクセスアドレスが条件を満たす場合、判定結果信号ａｈｉｔとして１を出力し、条件を満たさない場合、判定結果信号ａｈｉｔとして０を出力する。判定結果信号ａｈｉｔは、論理積回路１５３に入力される。
【００３９】
属性判定部１５２には、ＭＰＵエントリ部１４からの属性情報と、処理回路１１からの属性情報が入力される。属性判定部１５２は、処理回路１１から入力された属性情報が、ＭＰＵエントリ部１４から入力された属性情報に基づいて定義される条件（例えば、”処理回路１１から入力された属性情報”＝”ＭＰＵエントリ部１４から入力された属性情報”）に合致しているかどうかを判定する回路である。なお、本実施の形態では、一例として、属性判定部１５２は、処理回路１１から入力されたＭＰＩＤが、ＭＰＵエントリ部１４から入力されたＭＰＩＤに基づく条件を満たすか否かを判定するが、判定対象はＭＰＩＤに限られない。すなわち、アクセス種別などの他の属性情報の判定が行われてもよい。属性判定部１５２は、判定結果信号ｍｈｉｔを出力する。属性判定部１５２は、処理回路１１から入力された属性情報が条件を満たす場合、判定結果信号ｍｈｉｔとして１を出力し、条件を満たさない場合、判定結果信号ｍｈｉｔとして０を出力する。判定結果信号ｍｈｉｔは、論理積回路１５３に入力される。なお、ＭＰＩＤの判定では、ＭＰＵエントリ部１４に記憶された複数のＭＰＩＤのいずれかに、処理回路１１からのＭＰＩＤが合致するかが判定されてもよい。
【００４０】
論理積回路１５３には、判定結果信号ａｈｉｔ及び判定結果信号ｍｈｉｔが入力される。論理積回路１５３は、これらの入力信号の論理積を演算し、判定結果信号ｅｈｉｔを出力する。判定結果信号ｅｈｉｔは、処理回路１１によるアクセス要求がＭＰＵエントリ部１４における設定情報により定義される条件を満たすか否かを示す信号である。処理回路１１によるアクセス要求がＭＰＵエントリ部１４における設定情報により定義される条件を満たす場合、すなわち、アドレス判定部１５１における条件を満たし、かつ、属性判定部１５２における条件を満たす場合、判定結果信号ｅｈｉｔは１となる。それ以外の場合、判定結果信号ｅｈｉｔは０となる。判定結果信号ｅｈｉｔは、仮判定結果Ｒｌｔ ｉとして最終アクセス判定部１６に出力される。
【００４１】
なお、本実施の形態では、メモリ保護権限判定部１５０において、アドレスの判定と属性情報の判定が行われるが、アドレスの判定のみが行われてもよい。この場合、ＭＰＵエントリ部１４には、属性情報が格納されなくてもよい。
【００４２】
次に、最終アクセス判定部１６について説明する。各メモリ保護権限判定部１５０から出力されたｎ＋１個の仮判定結果は、最終アクセス判定部１６に入力される。また、最終アクセス判定部１６には、処理回路１１からＶＭフラグが入力される。また、最終アクセス判定部１６には、グローバル設定情報記憶部１３からエントリ境界情報が入力される。
【００４３】
本実施の形態において、エントリ境界情報は、ＭＰＵエントリ部１４のエントリ１４０のうち何番目のエントリ１４０までがゲスト管理エントリであるかを示す。すなわち、エントリ境界情報は、ＭＰＵエントリ部１４の一連のエントリ１４０のうち、ホスト管理エントリへと切り替わるエントリ番号（つまり、ホスト管理エントリのエントリ番号の最小値）を示す。例えばエントリ境界情報の値が０の場合は、ＭＰＵエントリ部１４の全てのエントリ１４０はホスト管理エントリであることを意味する。また、エントリ境界情報がｎ＋１の場合はＭＰＵエントリ部１４の全てのエントリ１４０はゲスト管理エントリであることを意味する。
【００４４】
図８は、最終アクセス判定部１６の構成の一例を示すブロック図である。図８に示すように最終アクセス判定部１６は、仕分部１６０と、論理和回路（ＯＲ回路）１６４Ａ、１６４Ｂ、１６５、と、論理積回路（ＡＮＤ回路）１６６とを有する。
【００４５】
仕分部１６０は、各メモリ保護権限判定部１５０から出力されたｎ＋１個の仮判定結果を、ゲスト管理エントリに対応する仮判定結果と、ホスト管理エントリに対応する仮判定結果とに仕分ける回路である。換言すると、仕分部１６０は、各メモリ保護権限判定部１５０から出力された仮判定結果を、仮想マシンにより設定されたメモリ保護条件に従って判定された仮判定結果と、仮想マシンモニタにより設定されたメモリ保護条件に従って判定された仮判定結果とに仕分ける。
【００４６】
仕分部１６０は、具体的には、デコーダ１６１と、ｎ＋１個の分離回路１６２＿０、・・・、１６２＿ｎとを有する。
【００４７】
デコーダ１６１は、グローバル設定情報記憶部１３から入力されたエントリ境界情報を、ｎ＋１個のラベル情報ＶｍＥｎｔｒｙ０からＶｍＥｎｔｒｙ ｎに変換する回路である。ここで、ＶｍＥｎｔｒｙ ｉは、メモリ保護権限判定部１５０＿ｉによる仮判定結果Ｒｌｔ ｉに対応するラベル情報である。ただし、ｉは、０以上ｎ以下の整数である。このラベル情報は、各メモリ保護権限判定部１５０から出力された仮判定結果のそれぞれが、ゲスト管理エントリに対応する仮判定結果であるか、ホスト管理エントリに対応する仮判定結果であるかを規定する情報である。デコーダ１６１は、エントリ境界情報に基づいて、次のような２値のラベル情報を生成する。デコーダ１６１は、エントリ境界情報の値をｉとすると、ＶｍＥｎｔｒｙ０からＶｍＥｎｔｒｙ（ｉ−１）の値を１とし、ＶｍＥｎｔｒｙ ｉからＶｍＥｎｔｒｙ ｎの値を０とする。したがって、エントリ境界情報の値が０の場合は、ＶｍＥｎｔｒｙ０からＶｍＥｎｔｒｙ ｎの値は全て０となり、エントリ境界情報の値がｎ＋１の場合はＶｍＥｎｔｒｙ０からＶｍＥｎｔｒｙ ｎの値は全て１となる。
【００４８】
分離回路１６２＿ｉは、メモリ保護権限判定部１５０＿ｉと接続されており、仮判定結果Ｒｌｔ ｉが入力される。分離回路１６２＿ｉは、２つの論理積回路（ＡＮＤ回路）１６３Ａ＿ｉ、１６３Ｂ＿ｉを備えている。メモリ保護権限判定部１５０＿ｉから出力された仮判定結果Ｒｌｔ ｉは、論理積回路１６３Ａ＿ｉ、１６３Ｂ＿ｉに入力される。また、論理積回路１６３Ａ＿ｉ、１６３Ｂ＿ｉには、デコーダ１６１から出力されたラベル情報ＶｍＥｎｔｒｙ ｉも入力される。ただし、論理積回路１６３Ｂ＿ｉには、デコーダ１６１から出力されたラベル情報ＶｍＥｎｔｒｙ ｉを反転させた信号が入力される。論理積回路１６３Ａ＿ｉは、仮判定結果Ｒｌｔ ｉと、ラベル情報ＶｍＥｎｔｒｙ ｉの論理積を演算し、演算結果を出力する。論理積回路１６３Ｂ＿ｉは、仮判定結果Ｒｌｔ ｉと、ラベル情報ＶｍＥｎｔｒｙ ｉの反転信号との論理積を演算し、演算結果を出力する。論理積回路１６３Ａ＿ｉの出力は、論理和回路１６４Ａに入力される。また、論理積回路１６３Ｂ＿ｉの出力は、論理和回路１６４Ｂに入力される。したがって、ゲスト管理エントリに対応する仮判定結果であって、値が１である仮判定結果は、全て論理和回路１６４Ａに集約される。同様に、ホスト管理エントリに対応する仮判定結果であって、値が１である仮判定結果は、全て論理和回路１６４Ｂに集約される。
【００４９】
論理和回路１６４Ａは、処理回路１１によるアクセス要求が、いずれかのゲスト管理エントリの設定情報により定義される条件を満たすか否かを判定する。論理和回路１６４Ａは、判定結果信号ｇｈｉｔを出力する。論理和回路１６４Ａは、処理回路１１によるアクセス要求が、いずれかのゲスト管理エントリの設定情報により定義される条件を満たす場合、判定結果信号ｇｈｉｔとして１を出力し、ゲスト管理エントリの設定情報により定義される条件をいずれも満たさない場合、判定結果信号ｇｈｉｔとして０を出力する。判定結果信号ｇｈｉｔは、論理和回路１６５に入力される。
【００５０】
論理和回路１６４Ｂは、処理回路１１によるアクセス要求が、いずれかのホスト管理エントリの設定情報により定義される条件を満たすか否かを判定する。論理和回路１６４Ｂは、判定結果信号ｈｈｉｔを出力する。論理和回路１６４Ｂは、処理回路１１によるアクセス要求が、いずれかのホスト管理エントリの設定情報により定義される条件を満たす場合、判定結果信号ｈｈｉｔとして１を出力し、ホスト管理エントリの設定情報により定義される条件をいずれも満たさない場合、判定結果信号ｈｈｉｔとして０を出力する。判定結果信号ｈｈｉｔは、論理積回路１６６に入力される。
【００５１】
論理和回路１６５は、ゲスト管理エントリに対応する仮判定結果を採用するか否かを判定する。論理和回路１６５は、信号ｇｒｌｔを出力する。仮想マシンは、仮想マシンモニタの管理下で動作する。このため、アクセス元が仮想マシンモニタである場合、仮想マシンにより設定されたメモリ保護機能に従ったアクセス制限を受けないことが好ましい。このため、本実施の形態では、アクセス元が仮想マシンモニタである場合、ゲスト管理エントリに対応する仮判定結果は強制的に１に変換される。論理和回路１６５には、ＶＭフラグの反転信号と、判定結果信号ｇｈｉｔとが入力される。これにより、アクセス元が仮想マシンモニタである場合、すなわちＶＭフラグの値が０である場合、論理和回路１６５は、判定結果信号ｇｈｉｔの値にかかわらず、１を信号ｇｒｌｔとして出力する。
【００５２】
論理積回路１６６は、メモリ１２へのアクセスの可否を最終的に判定する。論理積回路１６６には、論理和回路１６５から出力された信号ｇｒｌｔが入力される。また、論理積回路１６６には、論理和回路１６４Ｂから出力された判定結果信号ｈｈｉｔが、信号ｈｒｌｔとして入力される。上述の説明から明らかなように、信号ｇｒｌｔは、ゲスト管理エントリの設定情報に基づくアクセス可否の判定結果を示す信号であり、信号値１によりアクセス許可を表し、信号値０によりアクセス禁止を表す。同様に、信号ｈｒｌｔは、ホスト管理エントリの設定情報に基づくアクセス可否の判定結果を示す信号であり、信号値１によりアクセス許可を表し、信号値０によりアクセス禁止を表す。
【００５３】
論理積回路１６６は、入力された信号ｇｒｌｔと信号ｈｒｌｔの論理積を演算し、演算結果を、メモリ１２へのアクセスの可否の最終判定結果として出力する。演算結果が１である場合、メモリ１２へのアクセスは許可される。また、演算結果が０である場合、メモリ１２へのアクセスは禁止される。
【００５４】
このように、最終アクセス判定部１６では、ＶＭフラグの値が０であれば、ゲスト管理エントリの設定情報に基づく仮判定結果は使用されず、ホスト管理エントリの設定情報に基づく判定でアクセスが許可されれば（すなわち、信号ｈｒｌｔ＝１が得られれば）、最終的にアクセス許可と判定される。また、ＶＭフラグの値が1であれば、ゲスト管理エントリの設定情報に基づく判定でアクセスが許可され（すなわち、信号ｇｒｌｔ＝１が得られ）、かつ、ホスト管理エントリの設定情報に基づく判定でアクセスが許可されれば（すなわち、信号ｈｒｌｔ＝１が得られれば）、最終的にアクセス許可と判定される。なお、リードアクセスが行われる際には、投機的にメモリ１２へアクセス要求を出しておき、メモリ保護判定後、リードアクセスの結果を使用しないといった構成も考えられる。
【００５５】
次に、エントリレジスタアクセス権限判定部１７及び設定レジスタアクセス権限判定部１８について説明する。ＭＰＵエントリ部１４のホスト管理エントリの設定情報がゲストモードで書き換えられないように、ＭＰＵエントリ部１４への書き込みを制御することが好ましい。また、エントリ境界情報などといった、メモリ保護のための包括的な情報がゲストモードで書き換えられないように、グローバル設定情報記憶部１３への書き込みを制御することが好ましい。つまり、ＭＰＵエントリ部１４及びグローバル設定情報記憶部１３に対する、仮想マシンによる自由な書き込みを制限することが求められる。エントリレジスタアクセス権限判定部１７及び設定レジスタアクセス権限判定部１８は、書き込みの権限を判定し、権限のない自由な書き込みを制限する。なお、ゲストモードとは、仮想マシンを動作させる際のデータ処理装置１０の動作モードである。これに対し、仮想マシンモニタを動作させる際のデータ処理装置１０の動作モードは、ホストモードという。データ処理装置１０は、ホストモードとゲストモードを時分割で切替えて、仮想マシンモニタ及び仮想マシンの動作を実現する。
【００５６】
エントリレジスタアクセス権限判定部１７は、書き込み権限を判定し、ＭＰＵエントリ部１４への自由な書き込みを制限する回路である。エントリレジスタアクセス権限判定部１７は、メモリ保護設定書き込み制御部とも称され、メモリ保護設定記憶部（ＭＰＵエントリ部１４）の記憶領域における書き込み対象を指定するアドレスと、分別情報（エントリ境界情報）と、仮想マシンモニタによる書き込みであるか否かを示す書き込み主体情報（ＶＭフラグ）とに基づいて、メモリ保護設定記憶部の記憶領域における書き込みを制御する。このような構成によれば、メモリ保護設定記憶部（ＭＰＵエントリ部１４）に対するセキュアな書き込みを実現することができる。以下、エントリレジスタアクセス権限判定部１７の具体的な構成について説明する。
【００５７】
図９は、エントリレジスタアクセス権限判定部１７の構成の一例を示すブロック図である。エントリレジスタアクセス権限判定部１７は、処理回路１１から書き込み先のアドレス及びＶＭフラグを受け取る。なお、このＶＭフラグは、書き込みが仮想マシンモニタによるものであるか、仮想マシンによるものであるかを示す情報であり、値が１である場合、仮想マシンによる書き込みアクセスであることを示し、値が０である場合、仮想マシンモニタによる書き込みアクセスであることを示す。また、エントリレジスタアクセス権限判定部１７は、グローバル設定情報記憶部１３からエントリ境界情報を受け取る。
【００５８】
図９に示すように、エントリレジスタアクセス権限判定部１７は、デコーダ１７０と、アドレスデコーダ１７１と、ｎ＋１個の判定回路１７２＿０、・・・、１７２＿ｎとを有する。なお、以下の説明では、判定回路１７２＿０、・・・、１７２＿ｎについて、これらを特に区別せずに言及する場合には判定回路１７２と称すこととする。
【００５９】
デコーダ１７０は、最終アクセス判定部１６におけるデコーダ１６１と同様の回路であり、グローバル設定情報記憶部１３から入力されたエントリ境界情報を、ｎ＋１個のラベル情報ＶｍＥｎｔｒｙ０からＶｍＥｎｔｒｙ ｎに変換する。ｎ＋１個のラベル情報は、ｎ＋１個の判定回路１７２の入力と１対１で対応している。
【００６０】
アドレスデコーダ１７１は、処理回路１１から入力された書き込み先のアドレスから、どのエントリ１４０へのアクセスかを判定する回路である。例えば、アドレスデコーダ１７１は、ＭＰＵエントリ部１４の各エントリ１４０のアドレスと、処理回路１１から入力されたアドレスとを比較することにより、書き込み要求により要求されたアクセスがどのエントリ１４０へのアクセスかを判定する。アドレスデコーダ１７１は、各エントリに対応するｎ＋１本の出力信号線において、書き込み先であるエントリ１４０に対応する出力信号線については１を出力し、書き込み先ではないエントリ１４０に対応する出力信号線については０を出力する。アドレスデコーダ１７１のｎ＋１本の出力信号線は、ｎ＋１個の判定回路１７２の入力と１対１で対応している。なお、ｉ番目のエントリ１４０に対する出力信号線から判定回路１７２＿ｉに入力される信号をＷｒＥｎｔｒｙ  ｉとする。ただし、ｉは、０以上ｎ以下の整数である。
【００６１】
判定回路１７２は、ＭＰＵエントリ部１４のｎ＋１個のエントリ１４０に対応して、ｎ＋１個設けられている。判定回路１７２＿ｉは、ＭＰＵエントリ部１４のｉ番目のエントリ１４０に対応しており、論理和回路（ＯＲ回路）１７３＿ｉと、論理積回路（ＡＮＤ回路）１７４＿ｉとを有する。
【００６２】
論理和回路１７３＿ｉには、ＶＭフラグとラベル情報ＶｍＥｎｔｒｙ ｉが入力される。ただし、ＶＭフラグは、その反転信号が論理和回路１７３＿ｉに入力される。論理和回路１７３＿ｉは、ＶＭフラグの反転信号とラベル情報ＶｍＥｎｔｒｙ ｉとの論理和を演算して出力する。
【００６３】
論理積回路１７４＿ｉは、ｉ番目のエントリ１４０に対する書き込みの可否を判定する。論理積回路１７４＿ｉには、論理和回路１７３＿ｉの出力と、アドレスデコーダ１７１から出力された信号ＷｒＥｎｔｒｙ  ｉが入力される。論理積回路１７４＿ｉは、入力された２つの信号の論理積を演算し、演算結果を、ｉ番目のエントリ１４０に対する書き込みの可否の判定結果として出力する。演算結果が１である場合、ｉ番目のエントリ１４０に対する書き込みは許可される。また、演算結果が０である場合、ｉ番目のエントリ１４０に対する書き込みは禁止される。
【００６４】
このようなエントリレジスタアクセス権限判定部１７によれば、ｉ番目のエントリ１４０に対するライトアクセスがあった場合、ＶＭフラグの値が０であれば（すなわち、アクセス主体が仮想マシンモニタであれば）、このエントリ１４０への書き込みアクセスが許可となる。また、ｉ番目のエントリ１４０に対するライトアクセスがあった場合、ＶＭフラグの値が１であり、かつ、ラベル情報ＶｍＥｎｔｒｙ ｉによりこのエントリ１４０がゲスト管理エントリであることが示されれば、このエントリ１４０への書き込みアクセスが許可となる。これに対し、ｉ番目のエントリ１４０に対するライトアクセスがあった場合、ＶＭフラグの値が１であり、かつ、ラベル情報ＶｍＥｎｔｒｙ ｉによりこのエントリ１４０がホスト管理エントリであることが示されれば、このエントリ１４０への書き込みアクセスは不許可となる。すなわち、書き込みが禁止される。つまり、アクセス主体が仮想マシンであるときには、ＭＰＵエントリ部１４のエントリ１４０のうちゲスト管理エントリのみの書き込みが許可され、ホスト管理エントリの書き込みは禁止される。
【００６５】
設定レジスタアクセス権限判定部１８は、書き込み権限を判定し、グローバル設定情報記憶部１３への自由な書き込みを制限する回路である。設定レジスタアクセス権限判定部１８は、分別情報書き込み制御部とも称され、分別情報記憶部（グローバル設定情報記憶部１３）の記憶領域における書き込み対象を指定するアドレスと、仮想マシンモニタによる書き込みであるか否かを示す書き込み主体情報（ＶＭフラグ）とに基づいて、分別情報記憶部の記憶領域における書き込みを制御する。このような構成によれば、分別情報記憶部（グローバル設定情報記憶部１３）に対するセキュアな書き込みを実現することができる。以下、設定レジスタアクセス権限判定部１８の具体的な構成について説明する。
【００６６】
図１０は、設定レジスタアクセス権限判定部１８の構成の一例を示すブロック図である。設定レジスタアクセス権限判定部１８は、処理回路１１から書き込み先のアドレス及びＶＭフラグを受け取る。なお、このＶＭフラグも、書き込みが仮想マシンモニタによるものであるか、仮想マシンによるものであるかを示す情報であり、値が１である場合、仮想マシンによる書き込みアクセスであることを示し、値が０である場合、仮想マシンモニタによる書き込みアクセスであることを示す。
【００６７】
図１０に示すように、設定レジスタアクセス権限判定部１８は、アドレスデコーダ１８０と、論理積回路１８１とを有する。
【００６８】
アドレスデコーダ１８０は、処理回路１１から入力された書き込み先のアドレスが、グローバル設定情報記憶部１３へのアクセスであるか否かを判定する回路である。例えば、アドレスデコーダ１８０は、グローバル設定情報記憶部１３の各アドレスと、処理回路１１から入力されたアドレスとを比較することにより、書き込み要求により要求されたアクセスがグローバル設定情報記憶部１３へのアクセスであるか否かを判定する。アドレスデコーダ１８０は、処理回路１１から入力された書き込み先のアドレスがグローバル設定情報記憶部１３へのアクセスである場合、１を出力し、そうでない場合、０を出力する。
【００６９】
論理積回路１８１は、グローバル設定情報記憶部１３に対する書き込みの可否を判定する。論理積回路１８１には、アドレスデコーダ１８０の出力と、ＶＭフラグが入力される。論理積回路１８１は、入力された２つの信号の論理積を演算し、演算結果を、グローバル設定情報記憶部１３に対する書き込みの可否の判定結果として出力する。演算結果が１である場合、グローバル設定情報記憶部１３に対する書き込みは許可される。また、演算結果が０である場合、グローバル設定情報記憶部１３に対する書き込みは禁止される。
【００７０】
このような設定レジスタアクセス権限判定部１８によれば、グローバル設定情報記憶部１３に対するライトアクセスがあった場合、ＶＭフラグの値が０であれば（すなわち、アクセス主体が仮想マシンモニタであれば）、グローバル設定情報記憶部１３への書き込みアクセスが許可となる。また、グローバル設定情報記憶部１３に対するライトアクセスがあった場合、ＶＭフラグの値が１であれば（すなわち、アクセス主体が仮想マシンであれば）、グローバル設定情報記憶部１３への書き込みアクセスは不許可となる。すなわち、書き込みが禁止される。
【００７１】
以上、実施の形態１について説明した。上述の通り、実施の形態１にかかるデータ処理装置１０では、エントリ境界情報により、ＭＰＵエントリ部１４の各エントリ１４０がホスト管理エントリであるかゲスト管理エントリであるかを特定することが可能である。このため、最終アクセス判定部１６は、仮アクセス判定部１５（メモリ保護権限判定部１５０）によるそれぞれの仮判定結果が、ホスト管理エントリの設定情報に基づくものであるか、ゲスト管理エントリの設定情報に基づくものであるかを特定することができる。このため、ＭＰＵエントリ部１４において、ゲスト管理エントリとホスト管理エントリとが混在していても、２種類のメモリ保護をそれぞれ適切に実現することができる。
【００７２】
つまり、実施の形態１にかかるデータ処理装置１０によれば、ＭＰＵエントリ部１４に設けられるエントリ数を、ホスト管理エントリとして必要な最大数及びゲスト管理エントリとして必要な最大数の合計のエントリ数とする必要がない。データ処理装置１０によれば、エントリ境界情報により、ホスト管理エントリとゲスト管理エントリの割合を柔軟に変更することができるためである。データ処理装置１０では、ホストモードで仮想マシンのコンテキストを切り替える際に、各エントリ１４０の設定情報を切替えるとともに、エントリ境界情報を変更することにより、仮想マシン毎に最適なメモリ保護状態を構築することができる。例えば、図３に示したように、４種類の仮想マシン（図３において、ＶＭ０、ＶＭ１、ＶＭ２、ＶＭ３）を順に動作させるようなシステムを、過剰なハードウェアリソースを必要とせずに実現することが可能となる。このように、データ処理装置１０によれば、仮想マシンモニタにより設定されるメモリ保護機能と仮想マシンにより設定されるメモリ保護機能とを回路規模の増大を抑制しつつ実現することができる。
【００７３】
また、ＭＰＵエントリ部１４はエントリ境界情報を記憶する必要がない。すなわち、エントリ１４０の設定内容は、本実施の形態の構成によるメモリ保護を行うか否かに依存しない。したがって、本実施の形態の構成を採用するにあたり、既存の技術に与える影響を抑制することができる。
【００７４】
なお、ＭＰＵエントリ部１４の各エントリ１４０に、アドレス区間を規定する下限アドレス及び上限アドレスが設定されることを鑑みると、本実施の形態における最終アクセス判定部１６は、次のようにして、アクセスの可否を最終判定しているとも言うことができる。すなわち、最終アクセス判定部１６は、第１の判定結果と第２の判定結果とを入力とする予め定められた論理演算を行うことにより、アクセスの可否を最終判定する。ここで、第１の判定結果とは、分別情報（エントリ境界情報）により仮想マシンモニタにより設定されるメモリ保護のためのものであると分別されたアドレス区間についての仮アクセス判定部１５（メモリ保護権限判定部１５０）の仮判定結果から算出される判定結果（判定結果信号ｈｈｉｔ）である。また、第２の判定結果とは、分別情報（エントリ境界情報）により仮想マシンにより設定されるメモリ保護のためのものであると分別されたアドレス区間についての仮アクセス判定部１５（メモリ保護権限判定部１５０）の仮判定結果から算出される判定結果（判定結果信号ｇｈｉｔ）である。
【００７５】
また、本実施の形態では、ＭＰＵエントリ部１４は、アドレス区間を規定する下限アドレス及び上限アドレスのみならず、さらに、アクセスの属性についての情報である属性情報をこのアドレス区間と対応付けて記憶している。そして、仮アクセス判定部１５（メモリ保護権限判定部１５０）は、アクセス要求により指定されたアクセス先のアドレス領域がエントリ１４０に設定されたアドレス区間に該当するか否か、及び、アクセス要求で要求されたアクセスの属性がエントリ１４０に設定された属性情報に一致するか否かに基づいてアクセス要求に対するアクセスの可否を仮判定している。このため、アドレス区間の設定のみによりメモリ保護を実現する場合に比べて、より詳細なメモリ保護を実現することができる。
【００７６】
また、本実施の形態では、最終アクセス判定部１６は、分別情報（エントリ境界情報）と、仮アクセス判定部１５（メモリ保護権限判定部１５０）による各仮判定結果と、アクセス要求で要求されたアクセスが仮想マシンモニタによるアクセスであるか否かを示すアクセス元情報（ＶＭフラグ）と、に基づいて、アクセスの可否を最終判定する。このため、アクセス主体が仮想マシンモニタであるか否かによって、ゲスト管理エントリに対応する仮判定結果を採用するか否かを制御することができる。よって、アクセス元が仮想マシンモニタである場合、仮想マシンにより設定されたメモリ保護機能に従ったアクセス制限を受けないようにすることができる。
【００７７】
＜実施の形態２＞
次に、実施の形態２について説明する。図１１は、実施の形態２にかかるデータ処理装置２０の構成の一例を示すブロック図である。図１１に示されるように、実施の形態２にかかるデータ処理装置２０は、最終アクセス判定部２１から判定に関する情報が出力される点で、実施の形態１にかかるデータ処理装置１０と異なっている。判定に関する情報を出力するため、実施の形態２では、最終アクセス判定部１６が最終アクセス判定部２１に置き換えられている。なお、データ処理装置２０は、最終アクセス判定部１６が最終アクセス判定部２１に置き換えられている点を除き、データ処理装置１０と同様の構成を備えている。以下の説明では、重複する説明は省略し、実施の形態１と異なる点について、具体的に説明する。
【００７８】
データ処理装置２０において、最終アクセス判定部２１は、処理回路１１に、例外判定情報、ホスト違反情報、及びゲスト違反情報を出力する。ここで、例外判定情報は、処理回路１１によるメモリ１２へのアクセス要求が、最終アクセス判定部２１において最終的に許可されなかったことを示す情報である。ホスト違反情報は、処理回路１１によるメモリ１２へのアクセス要求が、ホスト管理エントリの設定情報により定義される条件をいずれも満たさなかったことを示す情報である。ゲスト違反情報は、処理回路１１によるメモリ１２へのアクセス要求が、ゲスト管理エントリの設定情報により定義される条件をいずれも満たさなかったことを示す情報である。
【００７９】
図１２は、実施の形態２にかかる最終アクセス判定部２１の構成の一例を示すブロック図である。図１２に示すように、最終アクセス判定部２１は、例外判定情報を出力するための信号線２１０、ホスト違反情報を出力するための信号線２１１、及びゲスト違反情報を出力するための信号線２１２が追加されている点で、実施の形態１の最終アクセス判定部１６と異なっている。
【００８０】
信号線２１０は、論理積回路１６６の出力に接続されている。論理積回路１６６の出力信号は、信号線２１０に接続している反転回路（ＮＯＴ回路）２１３により反転され、例外判定情報として処理回路１１に出力される。例外判定情報は、値が１の場合、アクセス要求が、最終アクセス判定部２１において最終的に許可されなかったことを示す。
【００８１】
また、信号線２１１は、論理和回路１６４Ｂの出力に接続されている。論理和回路１６４Ｂの出力信号は、信号線２１１に接続している反転回路（ＮＯＴ回路）２１４により反転され、ホスト違反情報として処理回路１１に出力される。ホスト違反情報は、値が１の場合、アクセス要求が、ホスト管理エントリの設定情報により定義される条件をいずれも満たさなかったことを示す。
【００８２】
また、信号線２１２は、論理和回路１６４Ａの出力に接続されている。論理和回路１６４Ａの出力信号は、信号線２１２に接続している反転回路（ＮＯＴ回路）２１５により反転され、ゲスト違反情報として処理回路１１に出力される。ゲスト違反情報は、値が１の場合、アクセス要求が、ゲスト管理エントリの設定情報により定義される条件をいずれも満たさなかったことを示す。
【００８３】
処理回路１１は、アクセス要求が許可されなかったことを示す例外判定情報を受信すると、例えば、例外の発生、違反情報の保持、あるいはセーフティー機構への違反通知を行う。図１３は、処理回路１１が受信したホスト違反情報及びゲスト違反情報と、処理回路１１が保持する違反情報との対応関係の一例を示す表である。処理回路１１は、図１３に示すように、例えば、ホスト違反情報の値が０でゲスト違反情報の値が１の場合、アクセス要求がゲスト管理エントリの設定情報により定義される条件をいずれも満たさなかったこと記録する。すなわち、この場合、ゲスト違反情報を記録する。また、処理回路１１は、ホスト違反情報の値が１でゲスト違反情報の値が０の場合、アクセス要求がホスト管理エントリの設定情報により定義される条件をいずれも満たさなかったこと記録する。すなわち、この場合、ホスト違反情報を記録する。また、処理回路１１は、ホスト違反情報及びゲスト違反情報の値がいずれも１の場合、アクセス要求がゲスト管理エントリの設定情報により定義される条件をいずれも満たさなかったことを優先的に記録する。すなわち、この場合、ゲスト違反情報を優先的に記録する。なお、ホスト違反情報及びゲスト違反情報の値がいずれも０である場合、処理回路１１は、違反情報を保持しない。図１３に示した例では、ゲスト違反情報を優先して記録する例を示したが、ゲスト違反情報及びホスト違反情報の両方について、例外情報を記録してもよいし、ホスト違反情報を優先して記録してもよい。なお、データ処理装置２０は、ホスト違反情報及びゲスト違反情報と、処理回路１１が保持する違反情報との対応関係を設定又は変更する制御機構を備えてもよい。
【００８４】
図１４は、処理回路１１が受信したホスト違反情報及びゲスト違反情報と、例外を発生させるマシンとの対応関係の一例を示す表である。処理回路１１は、図１４に示すように、例えば、ホスト違反情報の値が０でゲスト違反情報の値が１の場合、仮想マシンにおいて例外を発生させる。また、処理回路１１は、ホスト違反情報の値が１でゲスト違反情報の値が０の場合、仮想マシンモニタにおいて例外を発生させる。また、処理回路１１は、ホスト違反情報及びゲスト違反情報の値がいずれも１の場合、仮想マシンにおいて優先的に例外を発生させる。なお、ホスト違反情報及びゲスト違反情報の値がいずれも０である場合、処理回路１１は、例外を発生させない。図１４に示した例では、優先的に仮想マシンにおいて例外を発生させる例を示したが、仮想マシン及び仮想マシンモニタの両方において例外を発生させてもよい。また、優先的に仮想マシンモニタにおいて例外を発生させてもよい。すなわち、いずれの管理エントリの条件を満たさなかったかに関わらず、仮想マシンモニタにおいて例外を発生させてもよい。なお、データ処理装置２０は、処理回路１１が受信したホスト違反情報及びゲスト違反情報と、例外を発生させるマシンとの対応関係を設定又は変更する制御機構を備えてもよい。
【００８５】
以上説明した通り、実施の形態２にかかるデータ処理装置２０では、最終アクセス判定部２１から処理回路１１へと、判定に関する情報が通知される。このため、アクセスが許可されない場合に、処理回路１１は、例外の発生、例外の記録といった種々の制御を行うことができる。このため、アクセスが許可されない場合に、システムを適切に制御することができる。
【００８６】
また、処理回路１１は、最終アクセス判定部２１から通知された情報に基づいて、例外を処理するマシンや、例外処理の優先順位を制御できる。例えば、上述のように、ホスト違反情報とゲスト違反情報の値がいずれも１である場合に、ゲスト管理エントリの設定にしたがったアクセスエラーであることを記録するとともに、例外発生マシンを仮想マシンとすることができる。この場合、仮想マシンの低信頼タスク（例えば仮想マシン上で動作するアプリケーションソフトウェア）で起きた例外をまずは仮想マシンの高信頼タスク（例えば仮想マシン上で動作するＯＳ）が処理するようなシステムを構成することができる。
【００８７】
なお、例外発生マシンを仮想マシンモニタに固定するようなスイッチを用意して、例外処理は仮想マシンモニタのみで行うような構成としてもよい。
また、上記説明では、最終アクセス判定部２１は、例外判定情報、ホスト違反情報、及びゲスト違反情報の３つの情報を出力したが、これらのいずれか１つ又は２つの情報を出力してもよい。つまり、最終アクセス判定部２１は、上述の第１の判定結果（論理和回路１６４Ａの出力）、上述の第２の判定結果（論理和回路１６４Ｂの出力）、又は最終判定の結果を、処理回路１１に通知してもよい。
【００８８】
＜実施の形態３＞
次に、実施の形態３について説明する。動作させる仮想マシンを仮想マシンモニタが切り替える際や、実行するアプリケーションソフトウェアを仮想マシンが切替える際などに、ＭＰＵエントリ部１４の各エントリ１４０の設定情報の切り替えが必要となる。各エントリ１４０の設定情報の切り替えは、メモリ１２への設定情報の退避及びメモリ１２からの設定情報の復帰により行われる。本実施の形態では、設定情報の退避及び復帰を行うシーケンサが処理回路に設けられている点で、上述の実施の形態と異なる。
【００８９】
図１５は、実施の形態３にかかるデータ処理装置３０の構成の一例を示すブロック図である。図１５に示されるように、実施の形態３にかかるデータ処理装置３０は、処理回路１１が、退避／復帰シーケンサ１９０を備えた処理回路１９に置き換えられた点で、実施の形態１にかかるデータ処理装置１０と異なっている。以下の説明では、重複する説明は省略し、実施の形態１と異なる点について、具体的に説明する。
【００９０】
退避／復帰シーケンサ１９０は、ＭＰＵエントリ部１４の各エントリ１４０に格納された設定情報の全て又は一部をメモリ１２に退避し、メモリ１２から全て又は一部の設定情報を各エントリ１４０に復帰する制御回路である。退避／復帰シーケンサ１９０は、仮想マシンモニタ又は仮想マシンから指定されたアドレス範囲に記憶されている設定情報を、ＭＰＵエントリ部１４とメモリ１２との間で移動する。
【００９１】
仮想マシンモニタの指示により行われる設定情報の切り替えでは、例えば、図１６に示すように、ホスト管理エントリ及びゲスト管理エントリを含むエントリ１４０の設定情報がメモリ１２に退避されるとともに、メモリ１２から新たな設定情報がホスト管理エントリ及びゲスト管理エントリを含むエントリ１４０に復帰される。このため、仮想マシンモニタの指示により行われる設定情報の切り替えでは、メモリ１２からＭＰＵエントリ部１４への設定情報の復帰は、全てのエントリ１４０に対して許容される。
【００９２】
これに対し、仮想マシンの指示により行われる設定情報の切り替えでは、ゲスト管理エントリのみの切り替えを許容し、ホスト管理エントリの切り替えについては制限する必要がある。すなわち、図１７に示すようなゲスト管理エントリのみに対する復帰は許容されるが、図１８に示すようなホスト管理エントリに及ぶ復帰は禁止する必要がある。このため、退避／復帰シーケンサ１９０は、上述したエントリレジスタアクセス権限判定部１７と同様の制御機構を備えており、ＭＰＵエントリ部１４の記憶領域における書き込み対象を指定するアドレスと、エントリ境界情報と、ＶＭフラグとに基づいて、メモリ１２からエントリ１４０への設定情報の復帰を制御する。具体的には、退避／復帰シーケンサ１９０は、エントリ境界情報及び書き込み対象のアドレスから特定される復帰先（書き込み先）のエントリ１４０がホスト管理エントリを含み、かつ、ＶＭフラグの値が１である場合、エントリ１４０への設定情報の復帰を禁止する。
【００９３】
以上説明したように、データ処理装置３０は、ＭＰＵエントリ部１４に記憶された情報のメモリ１２への退避、及びメモリ１２に退避された情報のＭＰＵエントリ部１４への復帰を行う退避／復帰シーケンサ１９０を有する。このように、本実施の形態では、ＭＰＵエントリ部１４の切り替えを行うための専用のハードウェアを有するため、ソフトウェア処理により切替えを実行する場合に比べて高速に切替え処理を完了することが期待できる。
また、エントリ１４０の内容の切替えの際、エントリレジスタアクセス権限判定部１７と同様の制御が行われるため、仮想マシンによるホスト管理エントリへの不正な書き込みを禁止することができる。
【００９４】
＜実施の形態４＞
実施の形態１では、メモリ１２へのアクセスがデフォルトで禁止されているものとした。このため、実施の形態１では、各エントリ１４０には、アクセスの許可が可能なアドレス区間を規定する下限アドレス及び上限アドレスが格納されていた。実施の形態４では、メモリ１２へのアクセスがデフォルトで許可されている実施の形態について示す。すなわち、各エントリ１４０に、設定情報として、アクセスが禁止されるアドレス区間を規定する下限アドレス及び上限アドレスが格納される場合の構成例について説明する。
【００９５】
実施の形態４にかかるデータ処理装置は、最終アクセス判定部１６が最終アクセス判定部３１に置き換えられた点を除き、実施の形態１にかかるデータ処理装置１０と同じである。以下の説明では、重複する説明は省略し、実施の形態１と異なる点について、具体的に説明する。
【００９６】
図１９は、実施の形態４にかかる最終アクセス判定部３１の構成の一例を示すブロック図である。図１９に示すように、最終アクセス判定部３１は、反転回路（ＮＯＴ回路）３１０、３１１を有する点で、最終アクセス判定部１６と異なっている。
【００９７】
反転回路３１０は、論理和回路１６４Ａと論理和回路１６５との間に設けられており、論理和回路１６４Ａから出力された判定結果信号ｇｈｉｔを反転して論理和回路１６５に入力する回路である。また、反転回路３１１は、論理和回路１６４Ｂと論理積回路１６６との間に設けられており、論理和回路１６４Ｂから出力された判定結果信号ｈｈｉｔを反転して論理積回路１６６に入力する回路である。
【００９８】
判定結果信号ｇｈｉｔは、処理回路１１によるアクセス要求がいずれかのゲスト管理エントリの設定情報により定義される条件を満たす場合に値が１となる信号である。また、判定結果信号ｈｈｉｔは、処理回路１１によるアクセス要求がいずれかのホスト管理エントリの設定情報により定義される条件を満たす場合に値が１となる信号である。本実施の形態では、ゲスト管理エントリ及びホスト管理エントリには、設定情報として、アクセスが禁止されるアドレス区間を規定する下限アドレス及び上限アドレスが格納されている。このため、判定結果信号ｇｈｉｔの値が１であることは、アクセスを禁止するための条件が満たされることを意味する。したがって、本実施の形態では、上述のように、反転回路３１０で判定結果信号ｇｈｉｔを反転させることにより、論理和回路１６５に入力される信号が、実施の形態１にかかる最終アクセス判定部１６における論理和回路１６５に入力される信号と同等の信号になるようにしている。同様に、反転回路３１１で判定結果信号ｈｈｉｔを反転させることにより、論理積回路１６６に入力される信号が、実施の形態１にかかる最終アクセス判定部１６における論理積回路１６６に入力される信号と同等の信号になるようにしている。
【００９９】
このように、本実施の形態においても、論理和回路１６５に入力される信号及び論理積回路１６６に入力される信号は、実施の形態１と同様である。このため、論理和回路１６５及び論理積回路１６６により、実施の形態１と同様のアクセス制御を実現することができる。
【０１００】
以上説明した通り、ＭＰＵエントリ部１４に格納される設定情報により表されるアドレス区間は、アクセスの許可が可能なアドレス区間を示してもよいし、アクセスが禁止されるアドレス区間を示してもよい。実施の形態１のように、アクセスの許可が可能なアドレス区間が設定される場合、メモリ１２へのアクセスがデフォルトで禁止されているシステムにおいて、回路規模の増大を抑制しつつ、仮想マシンモニタにより設定されるメモリ保護機能と仮想マシンにより設定されるメモリ保護機能とを実現することができる。また、実施の形態４のように、アクセスが禁止されるアドレス区間が設定される場合、メモリ１２へのアクセスがデフォルトで許可されているシステムにおいて、回路規模の増大を抑制しつつ、仮想マシンモニタにより設定されるメモリ保護機能と仮想マシンにより設定されるメモリ保護機能とを実現することができる。
【０１０１】
＜その他の実施の形態＞
上述した全ての実施形態において、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、ＣＰＵ、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【０１０２】
また、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【０１０３】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。例えば、実施の形態２と実施の形態３と組み合わせてもよい。また、実施の形態４に対し、実施の形態２の特徴及び実施の形態３の特徴のいずれか一方又は両方を適用してもよい。
【符号の説明】
【０１０４】
１    データ処理装置
２    メモリ保護設定記憶部
３    第１の判定部
４    第２の判定部
１０、２０、３０    データ処理装置
１１、１９    処理回路
１２    メモリ
１３    グローバル設定情報記憶部
１４    ＭＰＵエントリ部
１５    仮アクセス判定部
１６、２１、３１    最終アクセス判定部
１７    エントリレジスタアクセス権限判定部
１８    設定レジスタアクセス権限判定部
９１    仮想マシンモニタ
９２    仮想マシン
９５    メモリ保護
１４０    エントリ
１５０    メモリ保護権限判定部
１５１    アドレス判定部
１５２    属性判定部
１５３、１６３Ａ、１６３Ｂ、１６６、１７４、１８１    論理積回路
１６０    仕分部
１６１、１７０    デコーダ
１６２    分離回路
１６４Ａ、１６４Ｂ、１６５、１７３    論理和回路
１７１、１８０    アドレスデコーダ
１７２    判定回路
１９０    退避／復帰シーケンサ
２１０、２１１、２１２    信号線
２１３、２１４、２１５、３１０、３１１    反転回路
９２１    アプリケーションソフトウェア
【図１】
2019219787.tif 000003
【図２】
2019219787.tif 000004
【図３】
2019219787.tif 000005
【図４】
2019219787.tif 000006
【図５】
2019219787.tif 000007
【図６】
2019219787.tif 000008
【図７】
2019219787.tif 000009
【図８】
2019219787.tif 000010
【図９】
2019219787.tif 000011
【図１０】
2019219787.tif 000012
【図１１】
2019219787.tif 000013
【図１２】
2019219787.tif 000014
【図１３】
2019219787.tif 000015
【図１４】
2019219787.tif 000016
【図１５】
2019219787.tif 000017
【図１６】
2019219787.tif 000018
【図１７】
2019219787.tif 000019
【図１８】
2019219787.tif 000020
【図１９】
2019219787.tif 000021