(57)【要約】【課題】システム仕様の変更に伴う再設計を軽減し、リソース競合による誤動作防止とセキュリティ向上に寄与する。【解決手段】異なるオペレーティングシステムの制御下でユーザプログラムを実行する複数の仮想マシン（１０１）及び前記仮想マシンの制御を行う仮想マシンマネジャ（１９０）がモードレジスタ（１４０，１５０，１５１）に設定された情報にしたがって選択的に構成される中央演算処理装置（ＣＰＵ）と、前記仮想マシンが利用可能なハードウェアリソースに対するアクセスを管理するリソースアクセス管理モジュール（１１０）と、を有する。リソースアクセス管理モジュールは、設定されたモードレジスタから得られる情報と中央演算処理装置によるハードウェアリソースへのアクセス制御情報を入力し、当該入力情報と制御レジスタに設定された情報とを比較してアクセス制御情報に応ずる前記ハードウェアリソースへのアクセスの可否を制御する。【選択図】図１
2008097173.tif 000002
【特許請求の範囲】
【請求項１】
異なるオペレーティングシステムの制御下でアプリケーションプログラムを実行する複数の仮想マシン及び前記仮想マシンの制御を行う仮想マシンマネジャがモードレジスタに設定された情報にしたがって選択的に構成される中央演算処理装置と、前記仮想マシンが利用可能なハードウェアリソースに対するアクセスを管理するリソースアクセス管理モジュールと、を有するデータプロセッサであって、
前記リソースアクセス管理モジュールは、前記設定されたモードレジスタから得られる情報と前記中央演算処理装置による前記ハードウェアリソースへのアクセス制御情報を入力し、当該入力情報と制御レジスタに設定された情報とを比較して前記アクセス制御情報に応ずる前記ハードウェアリソースへのアクセスの可否を制御する、データプロセッサ。
【請求項２】
前記制御レジスタは、前記仮想マシンマネジャによってその設定情報が変更可能にされる、請求項１記載のデータプロセッサ。
【請求項３】
前記中央演算処理装置は割り込み信号を入力すると前記仮想マシンマネジャを構成して割り込み要因を判定し、第１の割り込み要因であることを判別すると前記割り込みに応答するために前記オペレーティングシステムによる命令を実行し、第２の割り込み要因であることを判別すると前記仮想マシンマネジャが前記割り込みに応答する処理を行なう、請求項２記載のデータプロセッサ。
【請求項４】
前記モードレジスタは、複数の仮想マシンの内の一つの仮想マシンを特定する仮想マシンＩＤレジスタ、仮想マシンにおいてアプリケーションプログラムを実行可能であるのかオペレーティングシステムを実行可能であるのかを示すＣＰＵ動作モードレジスタ、及び仮想マシンマネジャを構成するのか仮想マシンを構成するのかを示す拡張ＣＰＵ動作モードレジスタから成る、請求項１記載のデータプロセッサ。
【請求項５】
前記中央演算処理装置を複数個有し、前記中央演算処理装置が出力する前記ハードウェアリソースへのアクセス制御情報には当該中央演算処理装置の識別コード情報を含む、請求項４記載のデータプロセッサ。
【請求項６】
前記制御レジスタは、前記ハードウェアリソースとしてのメモリ領域へのアクセスが許可される仮想マシンを構成する中央演算処理装置の識別コード情報を格納するためのレジスタ領域を有する、請求項５記載のデータプロセッサ。
【請求項７】
前記制御レジスタは、前記ハードウェアリソースとしてのメモリ領域の先頭アドレスに対する、前記仮想マシン固有のメモリ領域までのアドレスオフセット情報を格納するためのレジスタ領域を有する、請求項６記載のデータプロセッサ。
【請求項８】
前記中央演算処理装置と前記リソースアクセス管理モジュールを接続する内部バスと、前記リソースアクセス管理モジュールに接続されたハードウェアリソースとしてのメモリ及び入出力回路とを更に有し、１個の半導体チップに形成された請求項１記載のデータプロセッサ。
【請求項９】
設定された動作モードにしたがって異なるオペレーティングシステムの制御下でプログラムを実行可能な複数の中央演算処理装置と、前記複数の中央演算処理装置が利用可能なハードウェアリソースに対するアクセスを管理するリソースアクセス管理モジュールと、を有するデータプロセッサであって、
前記リソースアクセス管理モジュールは、前記設定された動作モードに応ずる情報と前記中央演算処理装置による前記ハードウェアリソースへのアクセス制御情報を入力し、当該入力情報と制御レジスタに設定された情報とを比較して前記アクセス制御情報に応ずる前記ハードウェアリソースへのアクセスの可否を制御する、データプロセッサ。
【請求項１０】
前記動作モードとして第１動作モード、第２動作モード及び第３動作モードを有し、第１動作モードは前記中央演算処理装置がアプリケーションプログラムにしたがって命令を実行する動作モードであり、第２動作モードは前記中央演算処理装置がオペレーティングシステムにしたがって命令を実行する動作モードであり、第３動作モードは前記第１動作モードにおける命令の実行と前記第２動作モードにおける命令の実行とを制御する動作モードである、請求項９記載のデータプロセッサ。
【請求項１１】
前記制御レジスタは、前記第３モードにおいて変更可能にされる、請求項１０記載のデータプロセッサ。
【請求項１２】
前記中央演算処理装置は割り込み信号を入力すると前記第３モードに遷移して割り込み要因を判定し、第１の割り込み要因であることを判別すると前記第２モードに遷移して前記オペレーティングシステムによる命令を実行して前記割り込みに応答し、第２の割り込み要因であることを判別すると前記管理プログラムによる命令を実行して前記割り込みに応答する処理を行なう、請求項１１記載のデータプロセッサ。
【請求項１３】
前記中央演算処理装置と前記リソースアクセス管理モジュールを接続する内部バスと、前記リソースアクセス管理モジュールに接続されたハードウェアリソースとしてのメモリ及び入出力回路とを更に有し、１個の半導体チップに形成された請求項９記載のデータプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数個の中央演算処理装置を備え、或いは異なるオペレーティングシステムの管理下でプログラムの実行が可能なデータプロセッサに関し、例えば１個の半導体チップに形成されたマルチＣＰＵ（中央演算処理装置）を持つ半導体集積回路化されたマイクロプロセッサに適用して有効な具術に関する。
【背景技術】
【０００２】
近年、マイクロプロセッサにおける集積化が進み、単一の中央演算処理装置を搭載したマイクロプロセッサを複数搭載したシステムが集積化され、複数の中央演算処理装置を搭載したマイクロプロセッサが開発されている。複数の中央演算処理装置を搭載したマイクロプロセッサにおいては、主にＬＳＩの面積に対する端子数の制約によって、各中央演算処理装置が利用するメモリや入出力装置については、マイクロプロセッサ内で共用化されることが一般的であり、主にマイクロプロセッサ内のバスやコントローラの設計によって実現されている。メモリを共用した場合に、例えば、制御ソフトウェアのバグなどにより不正アクセスが発生し、メモリ領域の衝突が起こると画像データが正しく処理されないといった問題が発生するので、メモリ領域衝突を回避することが重要になる。回路量のオーバーヘッドが少ない不正アドレスへのアクセスの検知、遮断回路を提供する技術が、特許文献１で示されている。
【０００３】
一方、複数の中央演算処理装置を搭載したマイクロプロセッサ上でプログラムを動作させる場合、それに対応したオペレーティングシステムが必要となるが、これらオペレーティングシステムの設計は、上記のメモリや入出力装置の共有化方式と深い関わりがある。複数の中央演算処理装置を搭載したマイクロプロセッサに対応するオペレーティングシステムの方式としては、従来から、以下に挙げる二種類の方式が存在する。
【０００４】
第一の方式は、単一のオペレーティングシステムが複数の中央演算処理装置と単一のメモリ、入出力装置を全て管理する、対称型マルチプロセッサ方式である。第二の方式は、複数の中央演算処理装置にそれぞれオペレーティングシステムを搭載する、非対称型マルチプロセッサ方式である。特に、組み込み機器向けのマイクロプロセッサにおいては、従来ソフトウェア資産の移行が容易なことから、非対称型マルチプロセッサ方式が用いられる。
【０００５】
【特許文献１】特開２００４‐３３４４１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
前述の非対称型マルチプロセッサ方式、特にマイクロプロセッサのハードウェアによってメモリや入出力装置の共有化が成されているシステムにおいては、以下の２点の問題がある。
【０００７】
第一点として、オペレーティングシステムの方式とハードウェアによるメモリ、入出力装置の共有化方式に強い依存関係があるため、小規模の仕様変更などの際にも、オペレーティングシステムやハードウェアの再設計が必要になる点が挙げられる。第二点として、元来、単一の中央演算処理装置を複数搭載したシステムでは別々であったメモリや入出力装置が、集積化によって共有化されたことによって、システムの信頼性やセキュリティが低下するという点が挙げられる。これは、ある中央演算処理装置で動作しているオペレーティングシステムやプログラムの意図しない動作による影響が、メモリや入出力装置が共有化されていなければ、別のある中央演算処理装置で動作しているオペレーティングシステムやプログラムに波及しないのに対して、共有化されている場合、波及してしまうということである。
【０００８】
本発明の目的は、異なるオペレーティングシステムの管理下で共有リソースを用いたプログラムの実行が可能なデータプロセッサにおいて、システム仕様の変更に伴う再設計を軽減することにある。
【０００９】
本発明の別の目的は、異なるオペレーティングシステムの管理下で共有リソースを用いたプログラムの実行が可能なデータプロセッサにおいて、リソース競合による誤動作の防止等に関しシステムの信頼性向上に寄与することにある。
【００１０】
本発明の更に別の目的は、異なるオペレーティングシステムの管理下で共有リソースを用いたプログラムの実行が可能なデータプロセッサにおいて、セキュリティの向上に寄与することにある。
【００１１】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１２】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。すなわち、データプロセッサに搭載する中央演算処理装置に対するハードウェア拡張と、その拡張部分を制御するソフトウェアを組み合わせることにより、上記の課題を解決する。中央演算処理装置に対するハードウェア拡張は、主に、（ａ）拡張部分を制御するソフトウェアを動作させるための動作モード拡張と、（ｂ）オペレーティングシステムやその管理下で実行されるプログラム（アプリケーションプログラム）の特定の動作を検知して、拡張部分を制御するソフトウェア（バーチャルマシンマネジャを実現するプログラム）に処理を移行するための拡張が行われて構成される。
【００１３】
〔１〕更に詳述する。本発明に係るデータプロセッサ（１）は、異なるオペレーティングシステムの制御下でアプリケーションプログラムを実行する複数の仮想マシン（１０１）及び前記仮想マシンの制御を行う仮想マシンマネジャ（１９０）がモードレジスタ（１４０，１５０，１５１）に設定された情報にしたがって選択的に構成される中央演算処理装置（ＣＰＵ）と、前記仮想マシンが利用可能なハードウェアリソースに対するアクセスを管理するリソースアクセス管理モジュール（１１０）と、を有する。前記リソースアクセス管理モジュールは、前記設定されたモードレジスタから得られる情報と前記中央演算処理装置による前記ハードウェアリソースへのアクセス制御情報を入力し、当該入力情報と制御レジスタ（１１１）に設定された情報とを比較して前記アクセス制御情報に応ずる前記ハードウェアリソースへのアクセスの可否を制御する。したがって、仮想マシンにより、異なるオペレーティングシステムの管理下で共有ハードウェアリソースを用いたプログラムが実行されるとき、制御レジスタの設定にしたがってハードウェアリソースに対する不所望なアクセスの競合若しくはワークデータの消失等を抑制することができる。一部の仮想マシンの変更は他の仮想マシンに全く影響を与えず、複数の仮想マシンに対する制御を行う仮想マシンマネジャによる制御動作の設計変更で一部の仮想マシンの変更に対処可能になる。
【００１４】
本発明の一つの具体的な形態として、前記制御レジスタは、前記仮想マシンマネジャによってその設定情報が変更可能にされる。これにより、特定のアプリケーションプログラムやオペレーティングシステムに対する不正アタックが成功したとしても、ある中央演算処理装置で構成されて動作している仮想マシンの意図しない動作による影響が、共有ハードウェアリソースを介して他の仮想マシンの動作に波及し難くでき、セキュリティの強化に資することができる。
【００１５】
本発明の一つの具体的な形態として、前記中央演算処理装置は割り込み信号を入力すると前記仮想マシンマネジャを構成して割り込み要因を判定し、第１の割り込み要因であることを判別すると前記割り込みに応答するために前記オペレーティングシステムによる命令を実行し、第２の割り込み要因であることを判別すると前記仮想マシンマネジャが前記割り込みに応答する処理を行なう。オペレーティングシステムによる割り込み応答と仮想マシンマネジャによる割り込み応答との切り分けが可能になるので、割り込み応答に関しても仮想マシンマネジャとは切り離して仮想マシンを設計することを保証できる。
【００１６】
本発明の一つの具体的な形態として、前記モードレジスタは、複数の仮想マシンの内の一つの仮想マシンを特定する仮想マシンＩＤレジスタ（１４０）、仮想マシンにおいてアプリケーションプログラムを実行可能であるのかオペレーティングシステムを実行可能であるのかを示すＣＰＵ動作モードレジスタ（１５１）、及び仮想マシンマネジャを構成するのか仮想マシンを構成するのかを示す拡張ＣＰＵ動作モードレジスタ（１５０）から成る。
【００１７】
本発明の一つの具体的な形態として、前記中央演算処理装置を複数個有するとき、前記中央演算処理装置が出力する前記ハードウェアリソースへのアクセス制御情報には当該中央演算処理装置の識別コード情報（ｓｒｃ）を含む。ＣＰＵ間で仮想マシンＩＤが重複している場合に容易に対処できる。このとき、前記制御レジスタは、前記ハードウェアリソースとしてのメモリ領域へのアクセスが許可される仮想マシンを構成する中央演算処理装置の識別コード情報を格納するためのレジスタ領域（ＳＲＣ）を有する。
【００１８】
本発明の更に具体的な形態として、前記制御レジスタは、前記ハードウェアリソースとしてのメモリ領域の先頭アドレスに対する、前記仮想マシン固有のメモリ領域までのアドレスオフセット情報を格納するためのレジスタ領域（ＯＦＦＳＥＴ）を有する。各々の仮想マシンは０番地から始まるアドレス空間に対してアドレス管理を行えばよい。
【００１９】
本発明の一つの具体的な形態として、前記中央演算処理装置と前記リソースアクセス管理モジュールを接続する内部バス（ＢＵＳ）と、前記リソースアクセス管理モジュールに接続されたハードウェアリソースとしてのメモリ（１２０）及び入出力回路（１３０，１３１）とを更に有し、１個の半導体チップに形成される。例えば１チップの場合は面積効率の観点より、マルチチップに比べて複数の仮想マシンによりハードウェアリソースを共有する必然性は高くなる。
【００２０】
〔２〕別の観点による本発明に係るデータプロセッサは、設定された動作モードにしたがって異なるオペレーティングシステムの制御下でプログラムを実行可能な複数の中央演算処理装置と、前記複数の中央演算処理装置が利用可能なハードウェアリソースに対するアクセスを管理するリソースアクセス管理モジュールと、を有する。前記リソースアクセス管理モジュールは、前記設定された動作モードに応ずる情報と前記中央演算処理装置による前記ハードウェアリソースへのアクセス制御情報を入力し、当該入力情報と制御レジスタに設定された情報とを比較して前記アクセス制御情報に応ずる前記ハードウェアリソースへのアクセスの可否を制御する。これにより、異なるオペレーティングシステムの管理下で共有ハードウェアリソースを用いたプログラムが実行されるとき、制御レジスタの設定にしたがってハードウェアリソースに対する不所望なアクセスの競合若しくはワークデータの消失等を抑制することができる。一部のオペレーティングシステムやその制御下で実行されるプログラムの変更は他のオペレーティングシステムやその制御下で実行されるプログラムに全く影響を与えず、リソースアクセス管理モジュールに対する制御動作の設計変更で対処可能になる。
【００２１】
本発明の一つの具体的な形態として、前記動作モードとして第１動作モード（ユーザモード）、第２動作モード（特権モード）及び第３動作モード（仮想マシンマネジャモード）を有し、第１動作モードは前記中央演算処理装置がアプリケーションプログラムにしたがって命令を実行する動作モードであり、第２動作モードは前記中央演算処理装置がオペレーティングシステムにしたがって命令を実行する動作モードであり、第３動作モードは前記第１動作モードにおける命令の実行と前記第２動作モードにおける命令の実行とを制御する動作モードである。
【００２２】
更に具体的な形態として、前記制御レジスタは、前記第３モードにおいて変更可能にされる。これにより、特定のアプリケーションプログラムやオペレーティングシステムに対する不正アタックが成功したとしても、ある中央演算処理装置で構成されて動作している仮想マシンの意図しない動作による影響が、共有ハードウェアリソースを介して他の仮想マシンの動作に波及し難くでき、セキュリティの強化に資することができる。
【発明の効果】
【００２３】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００２４】
すなわち、異なるオペレーティングシステムの管理下で共有リソースを用いたプログラムの実行が可能なデータプロセッサにおいて、システム仕様の変更に伴う再設計を軽減することができる。リソース競合による誤動作の防止等に関しシステムの信頼性向上に寄与することができる。セキュリティの向上に寄与することができる。
【発明を実施するための最良の形態】
【００２５】
図１から図１５にはハードウェア的な観点より本発明の構成が示される。図１には本発明に係るマイクロプロセッサのハードウェア構成が例示される。
【００２６】
マイクロプロセッサ１は例えばＣＭＯＳ集積回路製造技術によって単結晶シリコンのような１個の半導体チップに形成されている。マイクロプロセッサ１は代表的に示された３個の中央演算処理装置（ＣＰＵ０、ＣＰＵ１，ＣＰＵ２）１００、１０２、１０３と物理アドレス管理モジュール（ＰＡＭ）１１０を有し、それらは内部バスＢＵＳに共通接続される。物理アドレス管理モジュール（ＰＡＭ）１１０には中央演算処理装置１００、１０２、１０３の共有ハードウェアリソースとしてメモリ（ＭＥＭ）１２０と入出力回路（Ｉ／Ｏ）１３０，１３１に接続される。物理アドレス管理モジュール（ＰＡＭ）１１０とメモリ（ＭＥＭ）１２０の間にはメモリコントローラ（ＭＣ）１８３１が配置される。メモリコントローラ１８３１はメモリの種類に応じてバス幅等のメモリインタフェースを制御する。中央演算処理装置（ＣＰＵ０、ＣＰＵ１，ＣＰＵ２）１００、１０２、１０３の何れか一つ又はそれらを総称するときは単に中央演算処理装置（ＣＰＵ）とも記す。共有ハードウェアリソースとしてのメモリ（ＭＥＭ）１２０と入出力回路（Ｉ／Ｏ）１３０，１３１はマイクロプロセッサ１とは別チップで構成されてもよい。
【００２７】
中央演算処理装置１００，１０２，１０３は主記憶であるメモリ（ＭＥＭ）１２０上に格納されたプログラムとデータをもとにデータ処理を行い、また、入出力装置（Ｉ／Ｏ）１３０，１３１を通じてそれに接続する図示を省略する各種デバイス（周辺デバイス）の操作を行う。また、中央演算処理装置（ＣＰＵ）１００，１０２，１０３の内部には、演算処理を行う実行部(ＥＸＥＣ)１０４、仮想アドレス管理を行うメモリマネージメントユニット（ＭＭＵ））１０５、主記憶であるメモリ（ＭＥＭ）１２０に対するアクセスを高速化するためのキャッシュメモリ（Ｃａｃｈｅ）１０６、各種デバイスからの割り込み要求を調停する割り込みコントローラ（ＩＮＴＣ）１０７が設けられている。
【００２８】
特に図１において実行部１０４の内部には中央演算処理装置（ＣＰＵ）の動作モードとアーキテクチャリソースが示され、また、中央演算処理装置（ＣＰＵ）に連携して動作する物理アドレス管理モジュール(ＰＡＭ)１１０の内部にはパラメータエントリ（ＰＡＭＥＮＴＲＹ）を格納するパラメータエントリレジスタ１１１とチェックゲート回路（ＣＨＣＧＴ）１１３，１１４，１１５が示される。ここで中央演算処理装置１００、１０２、１０３には非対象型マルチＣＰＵアーキテクチャが採用され、夫々の中央演算処理装置１００，１０２，１０３は夫々別々にオペレーティングシステム（ＯＳ）を利用するようになっている。図１の例に従えば、中央演算処理装置１００は異なるＯＳ（ＯＳ０〜ＯＳ２５５）の制御下でアプリケーションプログラムとしてのユーザプログラム（Ｕｓｅｒ  Ｐｒｏｇ）を実行する複数の仮想マシン１０１をモードレジスタの設定にしたがって選択的に構成する。仮想マシン１０１とはアプリケーシィンプログラム、オペレーティングシステム及び中央演算処理装置（ＣＰＵ）より成る機能実現手段を意味する。ここでは仮想マシン１０１を仮想マシンＩＤ（ＶＭＩＤ）によって区別しており、ＶＭＩＤ＝０〜ＶＭＩＤ＝２５５の仮想マシンを選択可能にされる。更に中央演算処理装置（ＣＰＵ）は前記モードレジスタの設定にしたがって前記仮想マシンの制御を行う仮想マシンマネジャ（Virtual Machine Manager）１９０を選択的に構成可能になっている。仮想マシンマネジャ１９０とは仮想マシンマネジャプログラム及び中央演算処理装置（ＣＰＵ）より成る機能実現手段を意味する。仮想マシンマネジャ１９０は特定の一つの中央演算処理装置に構成する方法と、全ての中央演算処理装置全体で単一機能を構成する方法がある。後者の場合は、モードレジスタによって仮想マシンマネジャ１９０を構成することが選択された中央処理装置が仮想マシンマネジャプログラムの必要なプログラムモジュールを実行してデータ処理を行うことになる。
【００２９】
尚、図1には中央演算処理装置（ＣＰＵ）以外のバスマスタモジュールは図示されていないが、実際にはダイレクトメモリアクセスコントローラ（ＤＭＡＣ）やアドレシング機能を備えたコントローラ等のＣＰＵ以外のバスマスタデバイスがあってもよい。前記ＣＰＵ以外のバスマスタデバイスはユーザプログラムを実行する特定の仮想マシンによって制御され、その仮想マシンによるアクセスと同じアクセス制御情報をバスＢＵＳに出力するものとする。要するに、中央演算処理装置（ＣＰＵ）以外のバスマスタモジュールはその中央処理装置で構成される仮想マシンによるアクセスと等価のアクセス形態を有するから、物理アドレス管理モジュール１１０は中央演算処理装置（ＣＰＵ）以外のバスマスタモジュールからのバスアクセスと中央演算処理装置（ＣＰＵ）からのバスアクセスとに対して同様に機能すればよい。
【００３０】
前記モードレジスタとしてＸＶＳＶＭＩＤ．ＶＭＩＤレジスタ１４０、ＸＶＳＣＲ．ＭＤレジスタ１５０、ＳＲ．ＭＤレジスタ１５１が用意されている。その他のアーキテクチャリソースレジスタとして、ＸＶＳＣＲ．ＰＩＤＳＥＬレジスタ１６０、ＸＶＲ．ＸＶＲレジスタ１７０、ＸＶＳＥＴ．ＣＯＤＥレジスタ１８０が設けられる。
【００３１】
ＳＲ．ＭＤレジスタ１５１は１ビットのレジスタであり、この値によって、中央演算処理装置（ＣＰＵ）の動作モードがユーザモード（第1動作モード：Ｕｓｅｒ  Ｍｏｄｅ）か、特権モード（第２動作モード：Ｐｒｉｖ  Ｍｏｄｅ）かを決定する。ユーザモードとは、通常のアプリケーションプログラム（ユーザプログラム）が稼動するモードである。ユーザモードでは、特定の中央演算処理装置（ＣＰＵ）命令の実行や、特定の中央演算処理装置（ＣＰＵ）レジスタリソースのアクセスが制限される。特権モードとは、中央演算処理装置（ＣＰＵ）の稼動状態に影響を与える特定の中央演算処理装置（ＣＰＵ）命令が実行可能なモードである。オペレーティングシステム（ＯＳ０〜ＯＳ２５５）が動作する際には特権モードで走行し、ユーザプログラム（Ｕｓｅｒ  Prog）はユーザモードで走行するように設計され、ユーザモードプログラムの動作がオペレーティングシステムの動作に影響を与えないように設計される。
【００３２】
ＸＶＳＣＲ．ＭＤレジスタ１５０は１ビットのレジスタであり、この値によって動作モードが仮想マシンマネジャモード（第３動作モード：ＸＶＳ  Ｍｏｄｅ）であるか否かを決定する。ここで、仮想マシンマネジャモードとは、複数のオペレーティングシステム若しく仮想マシンに対してメモリ１２０及び入出力回路１３０に代表される共有ハードウェアリソースを割り当てる制御や、オペレーティングシステム又はプログラム（若しくは仮想マシン）の不適切な動作によって別のオペレーティングシステム又はプログラム（若しくは仮想マシン）に影響が波及するのを遮断する制御等を行うモードである。要するに、仮想マシンマネジャモードは、ユーザモードにおける命令の実行と特権モードにおける命令の実行とを制御する動作モードである。
【００３３】
ＸＶＳＶＭＩＤ．ＶＭＩＤレジスタ１４０は８ビットのレジスタであり、この値によって、ユーザモードと特権モードは、ＶＭＩＤ＝０からＶＭＩＤ＝２５５までの２５６モードにそれぞれ分割される。具体的には、（１）ＸＶＳＣＲ．ＭＤレジスタ１５０が１の場合は、仮想マシンマネジャモード（ＸＶＳ MODE）となる。（２）ＸＶＳＣＲ．ＭＤレジスタ１５０が０かつＳＲ．ＭＤ１５１レジスタが１の場合は、ＸＶＳＶＭＩＤ．ＶＭＩＤレジスタ１４０の値によって、特権モードのＶＭＩＤ＝０からＶＭＩＤ＝２５５モードとなる。（３）ＸＶＳＣＲ．ＭＤレジスタ１５０が０かつＳＲ．ＭＤレジスタが０の場合は、ＸＶＳＶＭＩＤ．ＶＭＩＤレジスタ１４０の値によって、ユーザモードのＶＭＩＤ＝０からＶＭＩＤ＝２５５モードとなる。
【００３４】
物理アドレス管理モジュール（ＰＡＭ）１１０は複数の中央演算処理装置１００，１０２，１０３が利用可能なハードウェアリソース１２０，１３０，１３１に対するアクセスを管理するリソースアクセス管理モジュールとして位置付けられる。物理アドレス管理モジュール１１０は、設定されたモードレジスタから得られる情報と前記中央演算処理装置（ＣＰＵ）による前記ハードウェアリソース１２０，１３０，１３１へのアクセス制御情報を入力し、当該入力情報とパラメータエントリレジスタ１１１に設定された情報とをチェックゲート回路（ＣＨＣＧＴ）１１３，１１４，１１５で比較して前記アクセス制御情報に応ずる前記ハードウェアリソース１２０，１３０，１３１へのアクセスの可否を制御する。
【００３５】
中央演算処理装置（ＣＰＵ）内のアーキテクチャリソースや、物理アドレス管理モジュール１１０の制御を行うソフトウェア（仮想マシンマネジャプログラム）を仮想マシンマネジャモード（ＸＶＳ MODE）にて実行することにより、複数のオペレーティングシステムに対するメモリ１２０及び入出力回路１３０，１３１に代表される資源の割り当てを制御し、ＶＭＩＤ＝０からＶＭＩＤ＝２５５のモードにより中央演算処理装置をそれぞれ独立した動作ドメイン（仮想マシン）として動作させ、さらにオペレーティングシステム及びユーザプログラムの不適切若しくは不正な動作の影響を遮断する制御を行う。以降、仮想マシンマネジャモード（ＸＶＳ MODE）にて実行することにより、複数のオペレーティングシステムに対するメモリ、Ｉ／Ｏ資源の割り当てや、オペレーティングシステム、プログラムの不適切な動作の影響を遮断する制御を行うソフトウェアを仮想マシンマネジャプログラムと称し、中央演算処理装置が当該プログラムを実行して実現される機能を仮想マシンマネジャと称する。
【００３６】
図２には中央演算処理装置（ＣＰＵ）における動作制御用の主なレジスタが例示される。例えば、仮想マシンマネジャモード（ＸＶＳ ＭＯＤＥ）でのみアクセス可能な中央演算処理装置（ＣＰＵ）のレジスタリソースのうち、ＣＰＵのハードウェア動作制御に直結するレジスタについて示される。ＸＶＳＣＲレジスタは、３２ビットのレジスタであり、ビット１７から１６の２ビット部分にＰＩＤＳＥＬと名づけるフィールド、ビット０部分にＭＤと名づけるフィールドを有する。それ以外のビット部分は未使用である。ＸＶＳＶＭＩＤレジスタは、ビット７から０の８ビット部分にＶＭＩＤフィールドを有する。それ以外のビット部分は未使用である。ＸＶＲレジスタは、ビット３１から０の３２ビット全体でＸＶＲフィールドとなる。ＸＶＳＥＶＴレジスタは、ビット１１から０の１２ビット部分にＣＯＤＥフィールドを有する。それ以外のビット部分は未使用である。ＳＲレジスタはビット０のＭＤフィールドを有する。
【００３７】
本明細書中では、あるビット幅を有するレジスタの一部ビットフィールド部分を、（レジスタ名）．（ビットフィールド名）と記し、それ自体をレジスタと呼称する場合がある。前述のＸＶＳＣＲ．ＭＤレジスタは、本呼称方法に則ったものであり、実際にはＸＶＳＣＲレジスタのＭＤフィールドに対応する。
【００３８】
図３にはＭＭＵ１０５を構成するトランスレーションルックアサイドバッファ（ＴＬＢ）の構成が示される。トランスレーションルックアサイドバッファ（ＴＬＢ）は、実行部（ＥＸＥＣ）から発行されるアクセスのアドレスである仮想アドレスを物理アドレスに変換するためのアドレス変換設定を保持する。トランスレーションルックアサイドバッファ（ＴＬＢ）では、アドレス変換対やそのアドレス範囲のアクセス権限などの情報を保持するフィールドによってエントリ（Ｅｎｔｒｙ）が構成される。この例では０から６３の６４組のエントリを備える場合について説明する。例えば、エントリは３部分に分けられており、アドレスアレイ（Ａｄｄｒｅｓｓ  Ａｒｒａｙ）、データアレイ（Ｄａｔａ  Ａｒｒａｙ）、およびＶＭＩＤアレイ（ＶＭＩＤ  Ａｒｒａｙ）と呼称する。トランスレーションルックアサイドバッファ（ＴＬＢ）では、ＶＭＩＤアレイに含まれる８ビットのＶＭＩＤフィールドを備えることが特徴である。ＶＭＩＤフィールドにはアドレス変換対に対応するＶＭＩＤ（仮想マシン識別子）が格納される。ＡＳＩＤフィールドにはＭＭＵが管理するアドレススペースＩＤが格納される。ＶＰＮフィールドには対応する仮想ページ番号が格納される。ＰＰＮフィールドには対応する物理ページ番号が格納される。ＳＺフィールドにはページサイズ情報が格納される。Ｖフィールドにはエントリの有効性を示すバリッドビットが格納される。ＳＨは共有フラグ、Ｃはキャッシャブルフラグ、ＰＲはプロテクトフラグ、Ｄはダーティフラグ、ＷＴはライトスルーフラグである。
【００３９】
ＭＭＵ１０５におけるアドレス変換は、実行した命令が発する仮想アドレスと、前述のＸＶＳＶＭＩＤ．ＶＭＩＤレジスタ値と、ＭＭＵ１０５に設定されるアドレス空間識別子（ＡＳＩＤ）の値に対して、トランスレーションルックアサイドバッファ（ＴＬＢ）のアドレスアレイ内のＶＰＮフィールド、ＶＭＩＤフィールド、ＡＳＩＤフィールド、Ｖフィールド、およびデータアレイ内のＳＺフィールドを用いたヒット判定を各エントリで行う。何れかのエントリでヒットした場合には、そのヒットしたエントリのデータアレイ内のＰＰＮフィールドの値でアドレス値を置き換えて物理アドレスへの変換を行う。具体的には、以下に述べる条件を全て満たす場合にエントリヒットと判定される。第一の条件は、実行した命令が発する仮想アドレスが、ＶＰＮフィールドの値とＳＺフィールドの値とによって決定されるアドレス範囲に含まれることである。第二の条件は、ＸＶＳＶＭＩＤ．ＶＭＩＤレジスタ値が、ＶＭＩＤフィールドの値と一致することである。第三の条件は、ＭＭＵ１０５に設定されるＡＳＩＤレジスタの値と、トランスレーションルックアサイドバッファ（ＴＬＢ）のＡＳＩＤフィールドの値が一致することである。第四の条件は、Ｖフィールドの値が１であることである。
【００４０】
図４にはＭＭＵ１０５が実施するアクセス権限判定のアルゴリズムを示す。特に、ＭＭＵ１０５が実施するアクセス権限判定では、アクセスが発行される元となった命令を実行した時点でのＸＶＳＣＲ．ＭＤレジスタ値、ＳＲ．ＭＤレジスタ値、および、トランスレーションルックアサイドバッファ（ＴＬＢ）のＰＲフィールド及びＤフィールドの値が判定に影響する。ＰＲフィールド値は２ビットの値であり、００は特権モードでの読み出しのみの許可を、０１は特権モードでの読み出しと書き込みの許可を、１０は特権、およびユーザモードでの読み出しのみの許可を、１１は特権、およびユーザモードでの読み出しと書き込みの許可を意味する。またＤフィールドは当該エントリのアドレス範囲に対して書き込みが行われたかどうかを意味する。判定の結果として、アクセスは許可、あるいは拒絶され、拒絶の際には拒絶の理由に応じた例外処理要求が発生する。
【００４１】
拒絶された場合に発生する例外処理要求の種類には、保護違反例外（Ｐｒｏｔｅｃｔｉｏｎ  Ｅｒｒｏｒ  Ｅｘｃｅｐｔｉｏｎ）、初期ページ書き込み例外（Ｉｎｉｔｉａｌ  Ｗｒｉｔｅ  Ｅｘｃｅｐｔｉｏｎ）がある。保護違反例外とはアクセスした仮想アドレスに一致するアドレス変換情報が存在するにもかかわらず、指定されるアクセス権で実際のアクセスが許されていない場合に発生する例外である。また、初期ページ書き込み例外とは、データアクセス（書き込み）した仮想アドレスに一致するアドレス変換情報が存在し、アクセス権も許されているにもかかわらず発生する例外である。
【００４２】
ＭＭＵ１０５におけるアクセス権限判定アルゴリズムでは、まず４０１においてＸＶＳＣＲ．ＭＤレジスタ値とＳＲ．ＭＤレジスタ値によって判定を行う。ユーザモードである場合には４０２に分岐し、特権モードか仮想マシンマネジャモード（ＸＶＳ MODE）の場合に４０３に分岐する。ユーザモードである場合には、４０２への分岐の後に４１１においてＰＲフィールドの値によって判定を行う。ＰＲフィールドの値が００か０１、すなわち特権モードでのアクセスのみが許可されているアドレス領域では、４１２に分岐して保護違反例外と判定される。ＰＲフィールドの値が１０、すなわちユーザモードでの読み出しのみ許可されているアドレス領域では、４１３に分岐する。ＰＲフィールドの値が１１、すなわちユーザモードでの読み出しと書き込みが許可されているアドレス領域では、４１４に分岐する。前述４１３の分岐を経て、４２１ではアクセスが読み出しであるか否かによって判定が行われる。読み出しである場合には、４２２に分岐してアクセス許可と判定される。読み出しでない、すなわち書き込みの場合には、４２３に分岐して保護違反例外と判定される。前述４１４の分岐を経て、４３１においてもアクセスが読み出しであるか否かによって判定が行われる。読み出しである場合には、４３２に分岐してアクセス許可と判定される。書き込みである場合には、４３３に分岐する。４３３の分岐を経て、４４１ではＤフィールドの値によって判定が行われる。Ｄフィールドの値が０である場合には、４４２に分岐して初期ページ書き込み例外と判定される。Ｄフィールドの値が１である場合には、４４３に分岐してアクセス許可と判定される。前述４０３の分岐を経て、４５１においては４１１と同様にＰＲフィールドの値によって判定を行う。ＰＲフィールドの値が００か１０、すなわち特権モードにおいて読み出しのみが許可されているアドレス領域では、４５２へ分岐する。ＰＲフィールドの値が０１か１１、すなわち特権モードにおいて読み出しと書き込みが許可されているアドレス領域では、４５３へ分岐する。４５２、４５３への分岐の後に４６１、４７１のそれぞれにおいてはアクセスが読み出しであるか否かによって判定が行われ、読み出しである場合には４６２、４７２のそれぞれに、書き込みである場合には４６３、４７３のそれぞれに分岐する。４６２、４７２への分岐の場合はアクセス許可として判定される。４６３への分岐の場合は保護違反例外と判定される。４７３への分岐の後に４８１においてＤフィールドの値による判定が行われる。Ｄフィールドの値が０である場合には４８２に分岐して初期ページ書き込み例外と判定される。１の場合には４８３に分岐してアクセス許可と判定される。
【００４３】
図３、図４に基づいて説明したＭＭＵの特徴は、前述のＶＭＩＤ＝０〜２５５のユーザモードと特権モードから構成される複数のオペレーティングシステム環境に対して、それぞれに対応するトランスレーションルックアサイドバッファ（ＴＬＢ）を設ける必要が無いことであり、ハードウェア規模の増大を抑えつつ本発明の方式を実現できることである。
【００４４】
図５にはキャッシュメモリ（Ｃａｃｈｅ）１０６の構成が示される。キャッシュメモリ（Ｃａｃｈｅ）１０６は、キャッシュしているデータそれ自体と当該データに対応する物理アドレスの値とのペアによって構成される。ここではセットアソシアティブと呼ばれるキャッシュメモリの構成を一例とする。データと対応物理アドレスのペアが複数組含まれてウェイが構成され、ウェイが複数組含まれてエントリが構成される。例えば０から２５５までのキャッシュエントリを備え、各エントリはウェイ０からウェイ３を含む。各エントリは、アドレスアレイ（Ａｄｄｒｅｓｓ  Ａｒｒａｙ）、データアレイ（Ｄａｔａ  Ａｒｒａｙ）、およびＶＭＩＤアレイ（ＶＭＩＤ  Ａｒｒａｙ）に大別される。アドレスアレイにはＴａｇフィールド、Ｕフィールド、Ｖフィールドが含まれ、データアレイは図１のメモリ（ＭＥＭ）１２０の対応するアドレスのデータを保存し、また、そのデータがどのような状態にあるかを記憶する。Ｔａｇフィールドはアドレスの上位側の複数ビットを記憶する。ＵフィールドはデータアレイのＬＷ０〜ＬＷ７フィールドのデータが図１のメモリ（ＭＥＭ）１２０と同一であるか、あるいは同一でなく、データアレイのＬＷ０〜７フィールドのデータが最新であるかを記憶する。Ｖフィールドは当該エントリが有効なデータであるかどうかを記憶する。データアレイにはＬＷ０〜ＬＷ７フィールドが含まれ、ＬＷ０〜ＬＷ７フィールドは図１のメモリ（ＭＥＭ）のデータの内容を記憶する。ＶＭＩＤフィールドは図１のメモリ（ＭＥＭ）１２０からデータアレイＬＷ０〜ＬＷ７フィールドへのデータコピーが行われた時点のＸＶＳＶＭＩＤ．ＶＭＩＤレジスタ値を記憶する。
【００４５】
図６は、キャッシュメモリ１０６のヒット判定でヒットしなかった場合の、キャッシュメモリ１０６と内部バスＢＵＳへのデータの流れを示した図である。キャッシュヒットしなかった場合、物理アドレス（Ａｄｄｒｅｓｓ（Ｐ））に対応する内容を、内部バスＢＵＳを通じて読み込み、その時の物理アドレスを対応するウェイのＴａｇフィールドへ、読み出されたデータをＬＷ０〜ＬＷ７フィールドへ格納するが、中央演算処理装置（ＣＰＵ）では、同時にＸＶＳＶＭＩＤ．ＶＭＩＤレジスタ値をＶＭＩＤフィールドに格納する。
【００４６】
図７は、中央演算処理装置（ＣＰＵ）におけるキャッシュメモリ１０６のヒット判定動作を示した図である。キャッシュメモリ１０６のヒット判定は、命令実行により実行部１０４から論理アドレスが出力されたとき、メモリマネージメントユニット１０５によって変換された物理アドレスと、ＸＶＳＶＭＩＤ．ＶＭＩＤレジスタ値を、キャッシュメモリ１０６のアドレスアレイ内のＴａｇフィールド、Ｖフィールド、およびＶＭＩＤアレイのＶＭＩＤフィールドに格納されている内容と比較することによって行われる。特に、セットアソシアティブ方式では、比較対象は、実行した命令が発した仮想アドレスの下位ビット部分によってインデックスされるエントリに含まれる全ウェイとされる。ヒットするウェイが存在する場合、対応するウェイのデータアレイＬＷ０〜ＬＷ７に格納されたデータが読み出される。
【００４７】
上記キャッシュメモリ１０６によれば、ＶＭＩＤ＝０〜２５５のそれぞれに対応するキャッシュメモリを設ける必要は無く、ハードウェア規模の増大を抑えることである。
【００４８】
図８は、中央演算処理装置（ＣＰＵ）におけるｐｉｄ信号（ｐｉｄ）の生成方法を示した図である。ｐｉｄ信号は８ビットの信号であり、バスアクセスが中央演算処理装置（ＣＰＵ）内のどのオペレーティングシステムから発せられたものであるかを示す信号である。ｐｉｄ信号は、前述のＸＶＳＣＲ．ＰＩＤＳＥＬレジスタの値によって出力モードが、ＶＭＩＤ８、ＶＭＩＤ４＋ＡＳＩＤ４、ＡＳＩＤ８のいずれかに決定される。
（１）ＶＭＩＤ８モードの場合、ｐｉｄ信号には、バスアクセスを発生させた命令を実行した時点でのＸＶＳＶＭＩＤ．ＶＭＩＤレジスタの値が出力される。
（２）ＶＭＩＤ４＋ＡＳＩＤ４モードの場合、ｐｉｄ信号の上位４ビットには、命令を実行した時点でのＸＶＳＶＭＩＤ．ＶＭＩＤレジスタの下位４ビットの値が、ｐｉｄ信号の下位４ビットには、ヒットしたＴＬＢエントリのＡＳＩＤレジスタの上位４ビットの値が、それぞれ出力される。この場合は、中央演算処理装置（ＣＰＵ）がＶＭＩＤ＝０〜１６の範囲でデータ処理を行なうことが前提となる。
（３）ＡＳＩＤ８モードの場合、ｐｉｄ信号には、ヒットしたＴＬＢエントリのＡＳＩＤレジスタの値が出力される。この場合は、中央演算処理装置（ＣＰＵ）がＶＭＩＤ＝０だけでデータ処理を行なうことが前提となる。
【００４９】
ｐｉｄ信号は内部バスＢＵＳを通じて、後述する物理アドレス管理モジュール(ＰＡＭ)１１０に入力される。ＰＡＭモジュール１１０は、内部バスＢＵＳと、メモリ１２０や入出力回路（Ｉ／Ｏデバイス）１３０，１３１の間に位置し、ｐｉｄ信号などの信号の値をパラメータエントリレジスタ１１１が保有するパラメータエントリ（ＰＡＭＥＮＴＲＹ）とをチェックゲート回路（ＣＨＣＧＴ）１１３，１１４，１１５を用いて比較等を行い、内部バスＢＵＳを通じた中央演算処理装置（ＣＰＵ）からのアクセスの権限チェックや、アドレスへのオフセット加算等を行う。物理アドレス管理モジュール(ＰＡＭ)１１０が、内部バスＢＵＳとメモリ１２０やＩ／Ｏデバイス１３０，１３１の間に位置している理由は、複数個の中央演算処理装置（ＣＰＵ）やＣＰＵ以外のバスマスタデバイスからのアクセスを一箇所でチェックできるようにするためである。
【００５０】
図９は、物理アドレス管理モジュール(ＰＡＭ)１１０が有するパラメータエントリレジスタ（設定レジスタテーブル）１１１の１エントリ分の構成である。１エントリは１６バイトで構成され、複数のフィールドを有する。設定レジスタテーブル１１１への書き込み以外のバスアクセス、すなわち、接続されるバススレーブデバイスへのアクセスは、このテーブル１１１の値にしたがって、許可又は拒絶され、更にアドレスへオフセットの加算が行われる。
【００５１】
ＡＤＤＲフィールド、ＡＭＳＫフィールドは、バスから入力されたアドレス信号（ａｄｄｒ）のヒット判定に用いられる値である。ＡＤＤＲフィールドにはアクセス対象とするアドレス領域を特定するためのアドレス情報が設定される。ＳＲＣフィールド、ＳＭＳＫフィールドは、バスから入力されたソースＩＤ信号（ｓｒｃ）のヒット判定に用いられる値である。ＳＲＣフィールドにはアクセス主体となる中央演算処理装置（ＣＰＵ）等のバスマスタデバイスを識別する識別コードが格納される。ソースＩＤ信号は、バスアクセスがどのバスマスタデバイスから発せられたものかを示す信号である。ＰＩＤフィールド、ＰＭＳＫフィールドは、バスから入力されたｐｉｄ信号のヒット判定に用いられる値である。ｐｉｄ信号は、前述の通り中央演算処理装置（ＣＰＵ）から出力されるものである。ＰＩＤフィールドにはｐｉｄ信号と比較されるＰＩＤ情報が格納される。ＰＩＤ情報は図８のｐｉｄ信号の定義に準拠するデータである。ＯＦＦＳＥＴフィールドは、バスアクセスが許可された際に、アドレス信号の値に加算すべきオフセットの値である。前記オフセットは、例えば、メモリ１２０の先頭アドレスに対する、ＶＭＩＤで特定される仮想マシン固有のメモリ領域までのアドレスオフセット情報である。ＰＲフィールドにはリードバスアクセスを許可するか否かを示すリードプロテクト情報が格納される。ＰＷフィールドにはライトバスアクセスを許可するか否かを示すライトプロテクト情報が格納される。設定レジスタテーブル１１１のエントリは例えば個々のバスマスタのＶＭＩＤ毎に設ければよい。
【００５２】
図１０は、バススレーブデバイス１２０，１３０，１３１へのアクセスの権限チェックアルゴリズムを示したものである。物理アドレス管理モジュール(ＰＡＭ)１１０のパラメータエントリレジスタ（設定レジスタテーブル）１１１に対するテーブル設定は仮想マシンマネジャ１９０が行う。物理アドレス管理モジュール(ＰＡＭ)１１０は例えばそのハードウェアロジックにしたがって図１０の処理を行なう。
【００５３】
第一の判定として、１０００でバスのアドレス信号（ａｄｄｒ）を判定する。アドレス信号（ａｄｄｒ）の値と、ＡＭＳＫフィールドの論理積を行い、その値とＡＤＤＲフィールドの値が一致しなければアクセスは拒否される（１００６）。第二の判定として、１００１でバスのソースＩＤ信号（ｓｒｃ）を判定する。ソースＩＤ信号（ｓｒｃ）の値と、ＳＭＳＫフィールドの値をソースＩＤ信号のビット幅に拡張したものの論理積を行い、その値とＳＲＣフィールドの値が一致しなければ、アクセスは拒否される（１００６）。第三の判定として、１００２でバスのｐｉｄ信号（ｐｉｄ）を判定する。ｐｉｄ信号（ｐｉｄ）の値と、ＰＭＳＫフィールドの値をｐｉｄ信号のビット幅に拡張したものの論理積を行い、その値とＰＩＤフィールドの値が一致しなければ、アクセスは拒否される（１００６）。最後の判定として、バスアクセス種類による判定を行う。１００３でリードアクセスの場合は１００４でＰＲフィールドが１でなければアクセスは拒否される（１００６）。１００３でライトアクセスの場合は１００５でＰＷフィールドが１でなければアクセスは拒否される（１００６）。なお、物理アドレス管理モジュール(ＰＡＭ)１１０の設定レジスタテーブル１１１は、実際には複数のエントリが含まれ、本図の判定は各々のエントリに対して行われる。アクセス許可と判定されるエントリが１エントリあれば、アクセス許可と判定される（１００７）。
【００５４】
図１１には物理アドレス管理モジュール１１０の全体的な構成が例示される。図１２には物理アドレス管理モジュール１１０に含まれる比較回路ＣＯＭＰの一例が示される。図１３には物理アドレス管理モジュール１１０に含まれるオフセット加算回路ＯＦＦＳＥＴの一例が示される。
【００５５】
物理アドレス管理モジュール１１０と内部バスＢＵＳとの間の信号には、内部バスＢＵＳから物理アドレス管理モジュール１１０に入力する信号として、アクセス権限信号（ａｕｔｈ）、アクセス種類信号（ｏｐｃ）、ソースＩＤ信号（ｓｒｃ）、ｐｉｄ信号（ｐｉｄ）、アドレス信号（ａｄｄｒ）、ライトデータ信号（ｗｄ）がある。特にアクセス権限信号（ａｕｔｈ）は、中央演算処理装置（ＣＰＵ）においてバスアクセスを発生させる原因となった命令が実行された時点でのＸＶＳＣＲ．ＭＤレジスタ値とＳＲ．ＭＤレジスタ値が出力されているものである。また、物理アドレス管理モジュール(ＰＡＭ)からＬＳＩ内部バスに出力する信号として、リードデータ信号（ｒｄ）、アクセス権限違反通知信号（ｅｒｒ）がある。また、物理アドレス管理モジュール１１０と割り込みコントローラ（ＩＮＴＣ）１０７との間の信号には、アクセス権限違反割り込み通知信号ＥＲＲＩＮＴがある。また、物理アドレス管理モジュール１１０と、メモリ１２０やＩ／Ｏデバイス１３０，１３１などのバススレーブデバイスとの間の信号には、物理アドレス管理モジュール１１０が出力する信号として、アクセス種類信号（ｏｐｃ’）、ソースＩＤ信号（ｓｒｃ’）、アドレス信号（ａｄｄｒ’）、ライトデータ信号（ｗｄ’）があり、バススレーブデバイスが出力する信号として、リードデータ信号（ｒｄ’）がある。物理アドレス管理モジュール１１０内には、前述の図９に示した設定エントリテーブル１１１が例えば１６エントリ分のパラメータエントリ＿１〜１６を有する。内部バスＢＵＳから入力された信号は、物理アドレス管理モジュール１１０内の比較回路ＡＵＴＨＣＯＭＰに入力される。
【００５６】
比較回路ＡＵＴＨＣＯＭＰでは、アドレス信号とアクセス権限信号によって、アクセス先が物理アドレス管理モジュール１１０の設定エントリテーブルの場合には、アクセスをＰＡＭＥＮＴＲＹ＿１〜１６へ、それ以外の通常のアクセスの場合は後段の比較回路ＣＯＭＰに振り分ける。また、アクセス権限信号を検査し、ＰＡＭＥＮＴＲＹ＿１〜１６へのアクセスが仮想マシンマネジャモード（ＸＶＳ MODE）で動作しているプログラムからのものであるかどうかをブロック回路ＢＬＯＣＫＡＤＥに出力する。比較回路ＣＯＭＰでは、ＰＡＭＥＮＴＲＹ＿１〜１６へのアクセスでない、通常のバスアクセスの権限判定を行う。比較回路ＡＵＴＨＣＯＭＰから入力したアドレス信号、アドレス種類信号、ソースＩＤ信号、ｐｉｄ信号の内容を、物理アドレス管理モジュール１１０設定エントリテーブルの内容にしたがってマスク、一致比較し、その結果をｄｅｎｙ信号として、ブロック回路ＢＬＯＣＫＡＤＥに出力する。また、比較回路ＡＵＴＨＣＯＭＰから入力した各信号もブロック回路ＢＬＯＣＫＡＤＥに出力する。ブロック回路ＢＬＯＣＫＡＤＥでは、比較回路ＡＵＴＨＣＯＭＰ、ＣＯＭＰで生成された比較結果の値を用いて、ＰＡＭＥＮＴＲＹ＿１〜１６行きアクセス、通常のバスアクセスの遮断を行う。ＰＡＭＥＮＴＲＹ＿１〜１６行きアクセスでは、仮想マシンマネジャモード（ＸＶＳ MODE）で動作しているプログラムからのアクセス以外は遮断し、通常のバスアクセスでは、前述の通り、アクセス許可となるエントリが存在しない場合は遮断を行う。ブロック回路ＢＬＯＣＫＡＤＥでバスアクセスが遮断された場合、内部バスＢＵＳ、割り込みコントローラ１０７のそれぞれに、ｅｒｒ信号、ＥＲＲＩＮＴ信号を通じて、バスアクセス遮断が発生したことを通知する。ｅｒｒ信号、ＥＲＲＩＮＴ信号の供給先はそのときに入力されている信号ｐｉｄに従って制御される。オフセット加算回路ＯＦＦＳＥＴは、ブロック回路ＢＬＯＣＡＤＥで遮断されなかった通常のバスアクセスについて、そのアドレス信号の値に、オフセット加算を行う。アクセス許可と判定されたエントリをｈｉｔｅｎｔｒｙ信号として受け取り、そのエントリのＯＦＦＳＥＴフィールドの値を加算し、バスターゲットデバイスに出力する。図１のチェックゲート１１４、１１５は比較回路ＣＯＭＰ及びオフセット加算回路ＯＦＦＳＥＴから構成される。チェックゲート１１３は比較回路ＡＵＴＨＣＯＭＰ及びブロック回路ＢＬＯＣＫＡＤＥから構成される。なお、図１０で説明した処理は比較回路ＣＯＭＰが行なう処理である。
【００５７】
上記、および図８〜図１１に示した方式によって、メモリ１２０やＩ／Ｏデバイス１３０，１３１に対するアクセス権限チェックやアドレスオフセットが行われる。ＰＡＭＥＮＴＲＹ＿１〜１６は仮想マシンマネジャ１９０によってのみ設定できるようになっており、また、バスアクセスに対するアクセス許可判定パラメータの追加、ＯＦＦＳＥＴ回路の導入がなされている。これにより、仮想マシンマネジャ１９０による物理アドレス管理モジュール１１０に対するハードウェアの適切な制御によって、前述のＶＭＩＤ＝０〜２５５のユーザモード、特権モードから構成される複数のオペレーティングシステム環境に対する、メモリ１２０やＩ／Ｏデバイス１３０，１３１の分配、分離が可能となる。
【００５８】
図１４には中央演算処理装置（ＣＰＵ）における、割り込み及び例外の種類と、それらの発生時の遷移先アドレスが例示される。本明細書において実施の形態の欄における説明では割り込みと例外を区別するが、それ以外において割り込みの概念には例外も含むものとする。１４００で示す”Ｅｘｃｅｐｔｉｏｎ”の列がこの中央演算処理装置（ＣＰＵ）で発生しうる例外の種類を示しており、１４１０で示す”Ｖｅｃｔｏｒ  Ａｄｄｒｅｓｓ（ｗ／ＸＶＳ  ｓｕｐｐｏｒｔ）”が中央演算処理装置（ＣＰＵ）での遷移先アドレスを示している。従来では、例外や割り込みが発生したときには、リセットベクタ、あるいはＶＢＲと呼ばれるレジスタに格納されたアドレスへの遷移が発生するが、中央演算処理装置（ＣＰＵ）では、前述のＸＶＲレジスタに格納されたアドレスに遷移する。割り込みや例外の処理は一般に、ハードウェアによって遷移が行われた後、その遷移先に存在するオペレーティングシステムプログラムによって行われるが、中央演算処理装置（ＣＰＵ）では、オペレーティングシステムが使用するＶＢＲレジスタとは別に用意されたＸＶＲレジスタの値に遷移させることが可能であり、仮想マシンマネジャ１９０による適切な処理が可能になる。
【００５９】
図１５には割り込みコントローラ（ＩＮＴＣ）１０７の一例が示される。割り込みコントローラ１０７はマイクロプロセッサ１の外部端子から入力されるノンマスカブル割り込み（ＮＭＩ）や外部割り込み要求（Ｅｘｔｅｒｎａｌ  ＩＲＱ）、また、マイクロプロセッサ内部から入力される内部割り込み要求（Ｉｎｔｅｒｎａｌ  ＩＲＱ）について、優先制御部ＰＲＩＯＲＩＴＹでその優先順位を判定し、最も優先順位の高い要求の要求レベル（ＩＲＱ  Ｐｒｉｏｒｉｔｙ  Ｌｅｖｅｌ）を実行部（ＥＸＥＣ）１０４に通知する。割り込みコントローラ１０７は、内部にレジスタＲＳＴＴＯＩＲＱを有し、内部リセット信号又は外部リセット信号（Ｉｎｔｅｒｎａｌ／Ｅｘｔｅｒｎａｌ  ＲＥＳＥＴ）が入力されたとき、レジスタＲＳＴＴＯＩＲＱの値に従って対応する実行部１０４へのリセット信号の活性／非活性を制御する。レジスタＲＳＴＴＯＩＲＱの値が”０”の場合には、内部リセット信号及び外部リセット信号は、そのまま全ての実行部１０４に対するリセット信号ＲＥＳＥＴとして出力される。要するにマイクロプロセッサ1全体がリセットされる。レジスタＲＳＴＴＯＩＲＱの値が”１”の場合には、内部リセット信号及び外部リセット信号は割り込み信号の一つとして処理され、対応する実行部１０４に対してだけリセット処理と同じ処理を行なうことができる。
【００６０】
これにより、内部リセット信号と外部リセット信号からのリセット要求を仮想マシンマネジャ１９０で制御し、特定のオペレーティングシステム環境に対するリセットとして扱うことが可能となる。
【００６１】
次に、図１８から図３２を参照しながらソフトウェアの観点よりマイクロプロセッサ１の構成について説明する。ソフトウェアとはハードウェアを制御することによって、その機能を実現するものであり、特に既に仮想マシンマネジャプログラムに重点を置いて説明する。
【００６２】
図１８には仮想マシンマネジャ１９０による、複数オペレーティングシステムに対する中央演算処理装置（ＣＰＵ）、メモリ１２０、Ｉ／Ｏデバイス１３０，１３１のハードウェア資源の割り当ての一例が示される。物理的ハードウェア資源とは、ＬＳＩに実際に具備されているハードウェア１８３０を指する。ここでは、中央演算処理装置（ＣＰＵ）は、ＣＰＵ０〜２として計３個接続される。また、アドレスが連続したメモリ（ＭＥＭ）１２０は物理アドレス管理モジュール(ＰＡＭ)１１０を介して、１個のメモリコントローラ（ＭＣ）１８３１に接続される。Ｉ／Ｏ資源として例えば複数チャネル（Ｃｈ０〜Ｃｈ２）を有するデバイスＩ／Ｏ  Ｄｅｖ０と、単一チャネルを有するデバイスＩ／Ｏ  Ｄｅｖ１〜４を具備しているものとし、物理アドレス管理モジュール(ＰＡＭ)１１０を介して接続される。仮想マシンマネジャ１９０は、上記の物理的ハードウェア資源を、仮想的ハードウェア資源として複数のオペレーティングシステムに割り当て、割り当てたハードウェア資源を各々のオペレーティングシステムが排他的に利用できるようにする。ここでは、３個のオペレーティングシステムＯＳ０〜ＯＳ２に対して、仮想マシンマネジャ１９０がそれぞれ仮想マシンＶＭ０〜ＶＭ２として割り当てている。ＶＭ０はＶＭＩＤ＝０の仮想マシンであり、ＶＭ１はＶＭＩＤ＝１の仮想マシンであり、ＶＭ２はＶＭＩＤ＝２の仮想マシンである。図１の１つのＶＭＩＤのユーザプログラム（Ｕｓｅｒ  Ｐｒｏｇ．）とオペレーティングシステムのペアに対応するものが、１つの仮想マシン（ＶＭ）である。
【００６３】
図１９は仮想マシンマネジャによるハードウェア資源の割り当てを設定するためのＶＭ定義ファイルが例示される。中央演算処理装置（ＣＰＵ）の割り当ては、図１９のＶＭ定義ファイルにおける、“ＣＰＵ：”フィールドによって決定される。マイクロプロセッサがパワーオンリセットのたびにＶＭ定義ファイルを読み込み、これに従ってその都度ハードウェア資源の割り当てを行ってもよいが、ここでは、マイクロプロセッサ１の設計段階でＶＭ定義ファイルにしたがってハードウェア資源の割り当てが行われるものとする。したがって、製造されたマイクロプロセッサ1における中央演算処理単位でのハードウェア資源の割り当ては固定化される。図１９の例では、ＶＭ０には、ＣＰＵ０を、ＶＭ１には、ＣＰＵ１を、ＶＭ２にはＣＰＵ１と２と割り当てている。この割り当て指定は、ＯＳ０とＯＳ１が単一の中央演算処理装置（ＣＰＵ）上で動作するオペレーティングシステムであり、ＯＳ２が対称型マルチプロセッサ方式に対応して、複数の中央演算処理装置（ＣＰＵ）上で動作するオペレーティングシステムであること想定してのものである。ここで、中央演算処理装置（ＣＰＵ）の割り当てについては、上記の設定においては、２種類の割り当て方式が暗黙的に指示されていることに注意されたい。それは、１対１分配方式と、１対ｎ分配方式である。１対１分配方式とは、例えばＶＭ０に対するＣＰＵ０の割り当てがそれに対応する。ＣＰＵ０は、他の仮想マシン（ＶＭ）に割り当てられておらず、ＶＭ０はＣＰＵ０を他の仮想マシン（ＶＭ）と共有せずに使用できるため、仮想マシンマネジャ１９０はマイクロプロセッサ１の起動時にＣＰＵ０上でＯＳ０を起動させることのみ行えばよい。一方、１対ｎ分配方式とは、ＶＭ１、ＶＭ２に対するＣＰＵ１の割り当てがそれに対応する。このとき仮想マシンマネジャは、マイクロプロセッサ１の動作中にＣＰＵ１上でＯＳ１とＯＳ２を、時分割制御などの方法で切り替えながら動作させる。この制御は、ハードウェアによる独立動作ドメイン管理機構を利用して行うことが望ましい。
【００６４】
メモリ１２０の割り当ては、図１９のＶＭ定義ファイルにおける、“ＰＭｅｍ＿Ｓｔａｒｔ：”フィールド、“ＰＭｅｍ＿Ｓｉｚｅ：”フィールド、および“ＶＭｅｍ＿Ｓｔａｒｔ：”フィールドによって決定される。“ＰＭｅｍ＿Ｓｔａｒｔ：”および“ＰＭｅｍ＿Ｓｉｚｅ：”フィールドは、物理的ハードウェア資源として存在するメモリのどのアドレス領域を仮想マシン（ＶＭ）に対して割り当てるかを規定する。“ＶＭｅｍ＿Ｓｔａｒｔ：”フィールドは、割り当てられるメモリが仮想マシン（ＶＭ）上でどのアドレス領域に配置されるかを規定する。本実施例では、ＶＭ０に対しては、物理メモリのアドレス０ｘ００００００００からサイズ０ｘ０４００００００の６４ＭＢｙｔｅｓ、すなわち、アドレス０ｘ００００００００〜０ｘ０３ＦＦＦＦＦＦが割り当てられる。また、ＶＭ０上からはこのメモリ領域は、アドレス０ｘ００００００００〜０ｘ０３ＦＦＦＦＦＦとしてアクセスができる。ＶＭ１に対しては、０ｘ０４００００００〜０ｘ０７ＦＦＦＦＦＦの６４ＭＢｙｔｅｓが割り当てられているが、仮想マシンマネジャ１９０の制御により、ＶＭ１上からは、このメモリ領域はアドレス０ｘ００００００００〜０ｘ０３ＦＦＦＦＦＦとしてアクセスが可能である。ＶＭ２に対しては、０ｘ０８００００００〜０ｘ０ＦＦＦＦＦＦＦの１２８ＭＢｙｔｅｓが割り当てられており、ＶＭ２上からはこのメモリ領域はアドレス０ｘ００００００００〜０ｘ０７ＦＦＦＦＦＦＦとしてアクセスが可能である。ここで、メモリの割り当て方式については、物理的ハードウェア資源としてのメモリのアドレス領域を割り当てるのみならず、それらが仮想マシン（ＶＭ）のどのアドレス領域に割り当てられるかを設定可能な点に注目されたい。オペレーティングシステムは、使用するメモリアドレス領域の開始アドレスが固定として設計されており、それを変更するためにはオペレーティングシステム自体の改変が必要になる場合があり、仮想マシン（ＶＭ）上でのアドレス領域を可変にできなければ、結果としてオペレーティングシステムの改変無くして、オペレーティングシステムの複数動作が実現できないことになるからである。上記に述べたメモリの割り当ての制御については、上記した物理アドレス管理モジュール(ＰＡＭ)１１０を利用して行うことが望ましい。入出力装置（Ｉ／Ｏ）の割り当ては、図１９のＶＭ定義ファイルにおける、“Ｅｘｃｌｕｓｉｖｅ  Ｉ／Ｏ：”フィールド、“Ｐａｒｔｉｔｉｏｎｅｄ  Ｉ／Ｏ：”フィールド、および“Ｓｈａｒｅｄ  Ｉ／Ｏ：”フィールドによって決定される。“Ｅｘｃｌｕｓｉｖｅ  Ｉ／Ｏ：”フィールドに指定されたＩ／Ｏデバイスについては、対応する仮想マシン（ＶＭ）に排他的に割り当てられる。“Ｐａｒｔｉｔｉｏｎｅｄ  Ｉ／Ｏ：”フィールドに指定されたＩ／Ｏデバイスについては、Ｉ／Ｏデバイスにて規定されるチャネル単位で、対応する仮想マシン（ＶＭ）に排他的に割り当てられる。“Ｓｈａｒｅｄ  Ｉ／Ｏ：”フィールドに指定されたＩ／Ｏデバイスについては、複数の仮想マシン（ＶＭ）において共有する形で分配される。複数ＶＭでのＩ／Ｏデバイスの共有については、オペレーティングシステムから仮想マシン（ＶＭ）に対して発行される���クセスを仮想マシンマネジャ１９０がトラップし、調停を行う動作が必要となる。トラップについては、上記した物理アドレス管理モジュール(ＰＡＭ)１１０を利用して行うことが望ましい。また、仮想マシンマネジャ１９０による調停の方法については後述する。
【００６５】
以上において、仮想マシンマネジャ１９０による物理的ハードウェアリソースの割り当てについて説明したが、仮想マシンマネジャ１９０においては、割り当てを行うだけではなく、ある仮想マシン（ＶＭ）上で動作するオペレーティングシステム、プログラムから、他のＶＭの物理的ハードウェアリソースに対するアクセスを遮断するドメイン分離を行う。この制御は、上述した物理アドレス管理モジュール(ＰＡＭ)１１０を利用して行うことが望ましい。
【００６６】
また、以上に仮想マシンマネジャ１９０による物理的ハードウェアリソースの割り当てとドメイン分離の方法について述べたが、以下に、仮想マシンマネジャソフトウェア自身と複数オペレーティングシステムの同居の方式を述べる。上述の構成では、中央演算処理装置（ＣＰＵ）に新たに追加された仮想マシンマネジャモード（ＸＶＳ MODE）において、仮想マシンマネジャプログラムが動作することが望ましい。
【００６７】
本発明の仮想マシンマネジャの動作概要とモジュール構成について図２０及び図２１に基づいて説明する。図２０にはマイクロプロセッサ１の起動時の動作フローとして、仮想マシンマネジャプログラム内の初期化プログラムが初期化処理を行う手順が示される。起動はハードウェアへのパワーオンリセット信号（２０００）の入力で行われ、マイクロプロセッサ１全体にリセットがかかり、通常のリセット処理が行われる。その後に、仮想マシンマネジャＩＰＬ（ＩＰＬ：Ｉｎｉｔｉａｌ  Ｐｒｏｇｒａｍ  Ｌｏａｄｅｒ）の実行が開始され（２００１）、図２０のフローにしたがってシステムの初期化と仮想マシンマネジャプログラムの起動、それぞれのオペレーティングシステムの起動が行われる。以下図２０のフローについて順を追って説明する。
【００６８】
パワーオンリセットされると特定のＣＰＵ０の仮想マシンマネジャのＩＰＬに制御が移る。ＩＰＬはＲＯＭ（図１の１２１）より自身の実行イメージをメモリにロードし、そのエントリに制御を移す。このエントリには仮想マシンマネジャ初期化ルーチンがあり、初期化を行う。これら一連の処理はすべてＣＰＵ０で実行される（ステップ２００１）。仮想マシンマネジャ初期化ルーチンでは以下の処理を実行する。物理アドレス管理モジュール(ＰＡＭ)１１０の初期化（ステップ２００２）、ＣＰＵ０に対するドメインの物理アドレス管理モジュール(ＰＡＭ)１１０のテーブルエントリＰＡＭＥＮＴＲＹの登録（ステップ２００３）、ドメイン間共有メモリの初期化（ステップ２００４、２００５）、及び全ドメイン用の物理アドレス管理モジュール(ＰＡＭ)１１０のテーブルエントリ登録（ステップ２００６）が行われ、この時点で、物理アドレス管理モジュール(ＰＡＭ)１１０のアドレス変換機構により、メモリ１２０はそれぞれの中央演算処理装置（ＣＰＵ）が論理的に独立した空間として占有できるように設定される。更に、ＣＰＵ０以外の中央演算処理装置（ＣＰＵ）のリセットベクタが設定され（ステップ２００７）、ＣＰＵ０以外の中央演算処理装置（ＣＰＵ）のクロックストップが解除され（ステップ２００８）される。この時点で、ＣＰＵ０以外の中央演算処理装置（ＣＰＵ）はリセットされたことになり（ステップ２００９）、それぞれが占有すると見なせるメモリ領域からＩＰＬをロードできるようになる。次いで、ＣＰＵ０はドメイン生成を行い、当該中央演算処理装置（ＣＰＵ）のオペレーティングシステム用ＩＰＬを当該半物理アドレス空間にロード（ステップ２０１０、２０１２）し、仮想マシンマネジャにおいてそれぞれのオペレーティングシステム用ＩＰＬのエントリへ分岐される。ステップ２０１０，２０１２と独立して、ＣＰＵ０以外の中央演算処理装置（ＣＰＵ）では以下の処理が行なわれる。各ドメインが生成され、それぞれのオペレーティングシステム用ＩＰＬを当該半物理アドレス空間にロードし（ステップ２０１１）、それぞれの仮想マシンマネジャにおいて、それぞれのオペレーティングシステム用ＩＰＬのエントリへ分岐する（ステップ２０１３）。以上のフローにより、仮想マシンマネジャと、各ドメイン上のオペレーティングシステムが動作を開始する。図２０の例は中央演算処理装置ＣＰＵ０が最初に初期化処理を行なうが、それに限定されるものではない。
【００６９】
図２１にはマイクロプロセッサ１において、図２０に示した起動シーケンスが終了し、動作中となった仮想マシンマネジャ１９０におけるモジュール構成と、仮想マシンマネジャとオペレーティングシステム間での実行フロー遷移を示したものである。初期化が終了し、仮想マシンマネジャ１９０上でオペレーティングシステムが起動すると、制御は仮想マシンマネジャ１９０から離れてユーザプログラムやオペレーティングシステム（２１１０）に移り、その後仮想マシンマネジャ１９０は、割込みや例外で制御が移行したとき動作されるだけとなる。仮想マシンマネジャ１９０は割込みや例外によって必要なサービスに移行する例外・割込み処理部（２１０１）とそれから呼出される仮想マシンマネジャサービス部分（２１０２）、割込みや例外の要因によってオペレーティングシステムや別の仮想マシンマネジャに転送する転送処理部分（２１０３、２１０４）とからなる。アプリケーションやオペレーティングシステムから割込み、例外が発生する（２１０５）と、仮想マシンマネジャ１９０に制御が移行する。これは通常のマシンでの例外・割込み処理と同じ機構で、従来のマシンとオペレーティングシステムの組合せではオペレーティングシステムカーネルにある例外・割込みハンドラで処理するものを、本発明のシステムでは仮想マシンマネジャ１９０内に制御移行するものである。
【００７０】
このとき、中央演算処理装置（ＣＰＵ）はオペレーティングシステムが稼動する特権モード以上の権限をもつ仮想マシンマネジャモード（仮想マシンマネジャモード（ＸＶＳ MODE））に移行する。仮想マシンマネジャは例外・割込み処理部分でその要因により、以下の必要な処理を行う。すなわち、第一に、ＴＬＢミスや一般例外など通常の割込みや例外の場合、仮想マシンマネジャでの処理はなく、そのまま発生元のオペレーティングシステムに分岐して事象を転送する（２１０３、２１０４）。第二に、物理アドレス管理モジュール(ＰＡＭ)による保護違反を検出した場合、それは割込みとして通知される。これをＰＡＭ保護違反処理によって処理する（２１０６）。第三に、マルチコアでの他の中央演算処理装置（ＣＰＵ）からの割込みの場合、ＣＰＵ間割込みハンドラ（２１０７）がこれを処理し、仮想マシンマネジャが内部的に作る仮想割込み（２１０８）とする。仮想マシンマネジャ１９０が割込みを受けるべき中央演算処理装置（ＣＰＵ）の割込みレジスタにその要因を設定し、オペレーティングシステムに制御を移すことでその割込みが処理される。
【００７１】
図２２は仮想マシンマネジャ１９０による物理メモリの仮想マシン（ＶＭ）に対する割り当て処理を示すものである。図１の１つのＶＭＤＩＤとオペレーティングシステムの組である仮想マシン１０１に対応するものが、図２２のＶＭ０やＶＭ１などの１つの仮想マシン（ＶＭ）である。本発明では、仮想マシンマネジャ１９０による仮想マシン（ＶＭ）への物理メモリ割り当ては、仮想マシンマネジャ１９０が物理アドレス管理モジュール(ＰＡＭ)１１０のエントリテーブル１１１を設定することによって実現される。エントリテーブル１１１には、各仮想マシン（ＶＭ）のＶＭＩＤに対応する物理メモリ領域の情報を設定してあり、ＶＭからのメモリアクセスは、物理アドレス管理モジュール(ＰＡＭ)１１０によってアドレスの変換が行われるため、仮想マシンマネジャ１９０によるオーバーヘッドを少なくできる。図２３は、仮想マシンマネジャ１９０による共有メモリを用いたドメイン間通信の処理概要を示す図である。図１の１つのＶＭＩＤとオペレーティングシステムの組である仮想マシン１０１に対応するものが、図２３のＶＭ０やＶＭ１などの１つの仮想マシン（ＶＭ）である。
【００７２】
マイクロプロセッサ１において異なる仮想マシン（ＶＭ）間で通信を行う場合、共有メモリを用いて情報の授受を行う。共有メモリ領域の設定は、ＶＭ用メモリの設定と同様に、ドメイン構造体で定義され、物理アドレス管理モジュール(ＰＡＭ)１１０にて設定される。仮想マシンマネジャ１９０による共有メモリを用いた通信では、仮想マシンマネジャ１９０がドメイン構造体で定義されるＶＭ単位のアクセス権限を監査する機構を有するため、ドメイン構造体で許可されていない不正なアクセスを遮断し、セキュアに通信を実行することが可能である。ある仮想マシン（ＶＭ）で動作するアプリケーション、または、オペレーティングシステムが他の仮想マシン（ＶＭ）で動作しているアプリケーション、または、オペレーティングシステムと通信を行いたい場合、共有メモリアクセスサービスを用いて、仮想マシンマネジャ１９０に共有メモリへのアクセスを依頼する。仮想マシンマネジャ１９０のメモリ管理モジュールは、オペレーティングシステムの共有メモリアクセスサービスの要求により、要求元仮想マシン（ＶＭ）のアクセス権限を判定し、アクセス権限を有していれば、ＶＭが所望するアクセスを許可する。アクセス権限がない場合には、ＶＭに対してエラーを返す。共有メモリによるＶＭ間通信における物理アドレス管理モジュール(ＰＡＭ)のエントリ設定とアクセス権限判定、制御フローについては、図２７から図３１を用いて後述する。
【００７３】
図２４は、複数仮想マシン（ＶＭ）からの共有ハードウェア資源へのアクセスの調停処理を示したものである。図１に示す入出力装置（Ｉ／Ｏ）１３０などの共有ハードウェア資源と１つの中央演算処理装置（ＣＰＵ）で稼動するＶＭ（１０１）とのアクセスでの処理を時系列に示すものである。共有ハードウェア資源とは、本実施例では、例えば図３に示したトランスレーションルックアサイドバッファ（ＴＬＢ）のＡｄｄｒｅｓｓ  Ａｒｒａｙへのアクセスや、マイクロプロセッサ１内に存在するタイマデバイスへのアクセスなどがそれに相当する。アプリケーションから２４１０で示される地点で資源への要求が発生するとシステムコールが発行され、オペレーティングシステムカーネルに制御が移行して２４３０で示される当該システムコール処理が実行される。その処理過程で必要な特権命令が２４４０において実行されると、中央演算処理装置（ＣＰＵ）は例外を発生して仮想マシンマネジャモード（ＸＶＳ MODE）に移行し、仮想マシンマネジャ１９０によるサービスが行われる。システムコールがタイマのような各仮想マシンで共有される資源へのアクセスである場合、タイマの物理的な実体を要求元のオペレーティングシステムからアクセスすることはできず、タイマのオペレーティングシステムごとのインスタンスをアクセスすることになる。これを代理実行と呼ぶ。２４６０により、代理実行がなされる。仮想マシンマネジャ１９０は、システムコールの種類やアクセスするデバイスのアドレスにより、代理実行すべき対象を知ることができ、例えばタイマであれば、そのオペレーティングシステムごとのインスタンスとして確保されている領域にアクセスし、そこを書き込んだり読み出したりすることで代理実行する。アクセスが終了すると、必要な結果値をもって例外発行元へ戻る。この戻りの処理は一般のプロセッサに用意されている例外からの復帰命令を用いることなどで可能である。仮想マシンマネジャでの代理実行から復帰してきたオペレーティングシステムカーネルでは、２４５０によって得られた結果値を実行したシステムコールの結果値であるとして、２４２０へと最終的にシステムコール発行元のアプリケーションに戻る。この復帰の手段は通常のオペレーティングシステムでシステムコールから復帰する手順と同一である。以上の手順によって、アプリケーションやオペレーティングシステムではプログラムの変更がなく、通常通りにシステムコールを処理して資源にアクセスしている処理のままで、複数のオペレーティングシステムから共有資源へのアクセスが実現できる。
【００７４】
図２５は、複数仮想マシン（ＶＭ）からの共有入出力装置（Ｉ／Ｏ）へのアクセス調停処理を示したものである。図２４の場合と同様、図１に示す入出力装置（Ｉ／Ｏ）１３０などを共有し、それらを複数の中央演算処理装置（ＣＰＵ）で稼動する仮想マシン（ＶＭ）１０１とのアクセスでの処理を時系列に示すものである。ここに示す処理は、図１８に示したＩ／Ｏ  Ｄｅｖ４に対するアクセスなどに相当する。特にここでは、共有入出力装置（Ｉ／Ｏ）が割り込みインターフェースを有している場合を示す。また、複数仮想マシン（ＶＭ）から共有されない、排他使用の入出力装置（Ｉ／Ｏ）へのアクセスの処理の流れも併せて説明する。
【００７５】
Ｉ／Ｏ処理のシーケンスは、前半部分は図２４に示した流れと同様である。アプリケーションからＩ／Ｏ要求のシステムコールが発行されると、オペレーティングシステムカーネルがこれを受取り、処理を行う。その過程でＩ／Ｏレジスタへのアクセスが発生する。本発明の中央演算処理装置（ＣＰＵ）においては、図１の物理アドレス管理モジュール(ＰＡＭ)１１０によってＩ／Ｏレジスタの領域をアクセスすると例外が発生して仮想マシンマネジャモード（ＸＶＳ MODE）に移行し、仮想マシンマネジャによるサービスが行われる。
【００７６】
ここで、仮想マシンマネジャによるサービスは、Ｉ／Ｏデバイスの型によって以下に場合分けされる。第一の形態は、Ｉ／Ｏデバイスが１つのオペレーティングシステムに占有されている場合である。このとき、仮想マシンマネジャ１９０は当該デバイスを占有しているオペレーティングシステムを認識しているので、占有しているオペレーティングシステムからのＩ／Ｏ要求であれば、そのままオペレーティングシステムカーネルに復帰する。オペレーティングシステムカーネルでは通常のＩ／Ｏ操作を行い、システムコール発行元に戻る。第二の形態は、Ｉ／Ｏデバイスが複数のオペレーティングシステムで共有されている場合である。このとき、デバイス使用のオペレーティングシステム間での排他制御を行うため、仮想マシンマネジャが共有する領域に、共有デバイスごとに排他制御機構としてフラグを設ける。
【００７７】
前術の通り、仮想マシンマネジャによる代理実行が行われ、Ｉ／Ｏレジスタへのアクセスは、オペレーティングシステムごとのインスタンスへのアクセスに置き換えられる。また、上記排他制御機構において、このデバイスに対して自身の仮想マシンマネジャが使用中であるとのフラグを設定する。ここで、既にこのフラグがオン（ＯＮ）である場合は、当該デバイスが使用中であるのでオペレーティングシステムカーネルへエラーを返す。オペレーティングシステムカーネルへの復帰とオペレーティングシステムカーネルからアプリケーションへの復帰は前述の通りである。
【００７８】
Ｉ／Ｏ処理においては上記の処理に加えて、要求を受けたＩ／Ｏデバイスから、その処理の終了割込みが入る。割込み処理の例にあるとおり、割込みは割り込みコントローラ（ＩＮＴＣ）１０７によって制御されている。第一の形態として、Ｉ／Ｏデバイスが１つのオペレーティングシステムに占有されている場合には、割り込みコントローラ（ＩＮＴＣ）１０７の分配により当該デバイスを占有しているオペレーティングシステムの仮想マシンマネジャ１９０が割込みを受取る。仮想マシンマネジャ１９０は、仮想割込み機構を用いて、自身が管理するオペレーティングシステムへＩ／Ｏ終了割込みを連絡する。割込みを受けたオペレーティングシステムカーネルでは通常のＩ／Ｏ終了操作を行い、Ｉ／Ｏ終了待ちをしているシステムコール発行元に戻る。第二の形態として、Ｉ／Ｏデバイスが複数のオペレーティングシステムで共有されている場合には、割り込みコントローラ（ＩＮＴＣ）１０７の分配により、すべての中央演算処理装置（ＣＰＵ）に割込みが送られ、最初に応答した中央演算処理装置（ＣＰＵ）が処理する自動分配モードとなっている。当該割込みを受取った中央演算処理装置（ＣＰＵ）の仮想マシンマネジャ１９０は、排他制御機構を参照し、どの仮想マシンマネジャ１９０が当該デバイスを使用しているかを検出する。検出した仮想マシンマネジャ１９０が管理するオペレーティングシステムへ、上記と同様に仮想割込み機構を用いてＩ／Ｏ終了割込みを連絡する。
【００７９】
割込みを受けたオペレーティングシステムカーネルでは通常のＩ／Ｏ終了操作を行い、Ｉ／Ｏ終了待ちをしているシステムコール発行元に戻る。Ｉ／Ｏデバイスが複数のオペレーティングシステムで共有されている場合、上記説明では自動分配モードで受取った終了割込みを正しいオペレーティングシステムに渡す処理があるが、割込みコントローラ（ＩＮＴＣ）１０７がデバイスからの割込みを対応する中央演算処理装置（ＣＰＵ）に直接送れるようにし、上記のＩ／Ｏデバイスが複数のオペレーティングシステムで共有されている場合の処理を、Ｉ／Ｏデバイスが１つのオペレーティングシステムに占有されている場合と同じ処理とすることも可能である。具体的には、内蔵周辺デバイスからの割込みに対して自動分配モードではなく、固定分配モードとし、仮想マシンマネジャが当該デバイスを使用する際に、分配先の中央演算処理装置（ＣＰＵ）を設定できるようにする。共有デバイスの実行においては、排他制御を行う処理が存在する。共有デバイスを使用中にする処理の中で、当該割込み信号に対する分配先を、そのデバイス使用を要求している仮想マシンマネジャ１９０の中央演算処理装置（ＣＰＵ）と設定する。デバイスの使用が終了すれば、排他制御を解除する処理の中で、割り込みコントローラ（ＩＮＴＣ）１０７を自動分配モードに再設定する。
【００８０】
次に、仮想マシンマネジャにより設定された仮想マシン（ＶＭ）間での通信制御の例について説明する。まず、図２６及び図２７にて、ＶＭ間通信用の共有メモリのアクセス権限の設定方法について述べる。
【００８１】
図２６には仮想マシンマネジャを用いたＶＭ間通信時の構成が例示される。図２６の処理は図１の仮想マシンマネジャ１９０が物理アドレス管理モジュール(ＰＡＭ)１１０を操作して実行するものである。以下ＶＭ０、ＶＭ１，ＶＭ２は図１の１０１に対応するＶＭＩＤで示される仮想マシンである。仮想マシンマネジャ１９０は、ＶＭ（ＶＭ０、ＶＭ１，ＶＭ２）が通信に使用する共有メモリ領域２４５０を設定する。このとき、物理アドレス管理モジュール(ＰＡＭ)１１０内の設定エントリテーブル１１１を使用し、図９で説明したようなエントリテーブルデータを用いて各仮想マシンＶＭ０，ＶＭ１，ＶＭ２に割り当てる共有メモリ領域２４６０，２４６２，２４６４に対して他の仮想マシンＶＭからのアクセス権限を設定する。要するに、共有メモリ領域２４６０は仮想マシンＶＭ０による利用が保証されるが、仮想マシンＶＭ１、ＶＭ２による利用は設定エントリテーブル１１１の設定内容によって可変とされる。これにより、共有メモリ領域を論理的に分割し（２４６０、２４６２、２４６４）、設定されたアクセス権限に違反するアクセス、すなわち、仮想マシンマネジャにより許可されていない通信の遮断を実現する。ＶＭ間通信時には、すべての通信に対して物理アドレス管理モジュール(ＰＡＭ)１１０による強制アクセス制御を実施される構成となるため、物理アドレス管理モジュール(ＰＡＭ)１１０をリファレンスモニタとするアクセス制御を実現する。
【００８２】
物理アドレス管理モジュール(ＰＡＭ)１１０の設定エントリテーブル１１１は、仮想マシンマネジャ１９０のみで設定可能である。仮想マシンマネジャ１９０が仮想マシンマネジャモード（ＸＶＳ MODE）で動作している場合、特権モードで動作するオペレーティングシステムやユーザモードで動作するユーザプログラム（アプリケーションプログラム）などの仮想マシン（ＶＭ）上で動作しているソフトウェアによる物理アドレス管理モジュール(ＰＡＭ)１１０の設定エントリテーブル１１１内のアドレス範囲やアクセス権限の不正な書換えが防止される。
【００８３】
また、仮想マシンマネジャモード（ＸＶＳ MODE）を持たないハードウェアでは、仮想マシンマネジャは特権モードで動作するが、この場合にもユーザモードで動作するアプリケーションプログラムからの不正な書換えは防止されるとともに、オペレーティングシステムが正常に動作している範囲においては、物理アドレス管理モジュール(ＰＡＭ)１１０の設定エントリテーブルの不正な書換えは防止される。ＶＭ間通信用共有メモリとして使用可能なメモリは、物理アドレス管理モジュール(ＰＡＭ)１１０によるアクセス制御が可能な位置にある、マイクロプロセッサ１内部のメモリやＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  メモリ（ＭＥＭ）１２０などの主記憶装置として使用されるメモリ等である。図１ではメモリ１２０はマイクロプロセッサ１にオンチップされているが、別チップであってもよい。
【００８４】
図２７は物理アドレス管理モジュール(ＰＡＭ)１１０の設定エントリテーブル１１１内のＳＲＣフィールド／ＳＭＳＫフィールド／ＰＩＤフィールド／ＰＭＳＫフィールド／ＰＲフィールド／ＰＷフィールドの設定例である。ＡＤＤＲフィールド、および、ＡＭＳＫフィールドには、ＶＭ間通信用の共有メモリとして割り当てるアドレス範囲を指定する。ＡＤＤＲ＝Ｈ’ＡＦＦ０、ＡＭＳＫ＝Ｈ’ＦＦＦ０と設定（Ｈ’は１６進数の意味）した場合、Ｈ’ＡＦＦ０＿００００からＨ’ＡＦＦＦ＿ＦＦＦＦまでの１メガバイトの領域を宣言したことになり、物理アドレス管理モジュール(ＰＡＭ)１１０に対してこの設定値以外のａｄｄｒ信号が入力された場合、図１０のアクセス許可判定アルゴリズムに従い、この領域へのアクセスは不許可となる。ＳＲＣフィールド（２５００）、および、ＳＭＳＫフィールド（２５０２）にはＶＭ間通信を許可するバスマスタデバイスを設定する。ＳＲＣ＝Ｈ’０３、ＳＭＳＫ＝Ｂ’１（Ｂ’は２進数の意味）の場合、図１０のアクセス許可判定アルゴリズムに従い、物理アドレス管理モジュール(ＰＡＭ)１１０に入力されたｓｒｃ信号がＨ’０３の場合のみアクセスを許可する。ＳＲＣ＝Ｈ’００、ＳＭＳＫ＝Ｂ’０の場合、図１０のアクセス許可判定アルゴリズムに従い、任意のｓｒｃ信号値でアクセス許可となる。ＰＩＤフィールド（２５０４）、および、ＰＭＳＫフィールド（２５０６）にはＶＭ間通信を許可するＶＭ識別番号（ＶＭＩＤ）を設定する。ＰＩＤ＝Ｈ’０２、ＰＭＳＫ＝Ｂ’１の場合、図１０のアクセス許可判定アルゴリズムに従い、ｐｉｄ信号がＨ’０２の場合のみアクセスを許可する。ＰＩＤ＝Ｈ’００、ＰＭＳＫ＝Ｂ’０の場合、図１０のアクセス許可判定アルゴリズムに従い、任意のｐｉｄ信号値でアクセス許可となる。
【００８５】
ＰＲフィールド（２５０８）にはリード権限を、ＰＷフィールド（２５１０）にはライト権限を設定する。ＰＲ＝Ｂ’１、ＰＷ＝Ｂ’１の場合、リード許可／ライト許可、ＰＲ＝Ｂ’１、ＰＷ＝Ｂ’０の場合、リードのみ許可、ＰＲ＝Ｂ’０、ＰＷ＝Ｂ’０の場合、アクセス不可となる。
【００８６】
前述の組合せにより、物理アドレス管理モジュール(ＰＡＭ)１１０の設定エントリテーブル１１１に対するアクセス権限の柔軟な設定を実現する。図２７（１）のようにエントリを設定した場合、アクセス制限はない状態になり、どの仮想マシン（ＶＭ）からもリード・ライト可能となる。図２７（２）と（３）に示すエントリ設定でＡＤＤＲ／ＡＭＳＫを同じ設定値にした場合、ｓｒｃ＝Ｈ’０３上の仮想マシン（ＶＭ）、および、ｐｉｄ＝Ｈ’０２の仮想マシン（ＶＭ）からリード・ライト可能な領域となる。図２７（２）と（５）に示すエントリ設定でＡＤＤＲ／ＡＭＳＫを同じ設定値にした場合、ｓｒｃ＝Ｈ’０３上の仮想マシン（ＶＭ）よりリード・ライト可能で、ｓｒｃ＝Ｈ’１Ｂ、かつ、ｐｉｄ＝Ｈ’７７の仮想マシン（ＶＭ）よりリード可能な領域となる。あるＡＤＤＲ／ＡＭＳＫ設定に対して図２７（４）に示すエントリのみを設定した場合、その領域はｓｒｃ＝Ｈ’０５、かつ、ｐｉｄ＝Ｈ’０Ａの仮想マシン（ＶＭ）専用の領域となる。
【００８７】
このように、共有メモリに対してアクセス権限を設定し、その共有メモリ上にしたり間メッセージ送信用のキューを作成したり、共有メモリを用いてデータコピーを行うことで、物理アドレス管理モジュール(ＰＡＭ)１１０による強制アクセス制御が可能な通信を実現することができる。これにより、通信路の信頼性、および、セキュリティを向上させることで、仮想マシン（ＶＭ）上で動作しているオペレーティングシステムの信頼性、および、セキュリティの向上を実現する。
【００８８】
続いて、図２８から図３０を参照して、ＶＭ間通信用共有メモリへのアクセス時の制御フローについて説明する。図２８はＶＭ間通信用共有メモリへのライト時の制御フローである。図２８の処理は図１の仮想マシンマネジャ１９０が物理アドレス管理モジュール(ＰＡＭ)１１０を操作して実行するものである。以下仮想マシン（ＶＭ）は図１の１０１に対応するＶＭＩＤで示される１つの仮想マシンである。任意の仮想マシン（ＶＭ）がＶＭ間通信のため、共有メモリへのライトを実行したい場合（ステップ２６０２）、仮想マシンマネジャに対して排他的アクセス権要求（ロック要求）を発行する（ステップ２６０４）。仮想マシンマネジャ１９０は仮想マシン（ＶＭ）からのロック要求を受信すると、他の仮想マシン（ＶＭ）によりロックが掛けられているか否かを判定する（ステップ２６０６）。他の仮想マシン（ＶＭ）がロック中の場合、ロックが解除されるまで待つ。他の仮想マシン（ＶＭ）がロックしていない場合、要求元仮想マシン（ＶＭ）にロックを許可する（ステップ２６０８）。ロックを許可された要求元仮想マシン（ＶＭ）はライトコマンドを発行する（ステップ２６１０）。物理アドレス管理モジュール(ＰＡＭ)１１０はバスＢＵＳよりａｕｔｈ信号、ｏｐｃ信号、ｓｒｃ信号、ｐｉｄ信号、ａｄｄｒ信号を入力し、図１０のアクセス許可判定フローに従い、仮想マシン（ＶＭ）の要求がエントリテーブルの各フィールド設定値との一致、不一致により、ライト権限があるか否かを判定する（ステップ２６１２）。判定の結果ライト権限がある場合、共有メモリへのライトを実行する（ステップ２６１４）。要求元仮想マシン（ＶＭ）はライトを終了するとロックを解除し処理を終了する。判定の結果アクセス権限がない場合、アクセスを拒否し、エラーを返して（ステップ２６４０）、ロックを解除して処理を終了する（ステップ２６１６、２６１８）。
【００８９】
仮想マシンマネジャは、図２８に示す機能を実現するため、仮想マシン（ＶＭ）に対し排他的アクセス権を付与する機能（ロック許可）、および、解除する機能（ロック解除）と、仮想マシン（ＶＭ）に排他的アクセス権を付与しているか否かを記憶・判定する機能、を具備し、共有メモリへのアクセスの衝突を回避する。
【００９０】
また、ある仮想マシン（ＶＭ）により長時間共有メモリへのアクセス権を占有されると、他のＶＭによる通信が実行されず、ＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）を保障できなくなり、システム全体の信頼性低下につながる可能性がある。これを回避するために、仮想マシンマネジャは仮想マシン（ＶＭ）に付与したロック権を強制的に解除する機能を具備する。仮想マシンマネジャによる強制ロック解除は、ステップ２６１６において、一定時間の経過（タイムアウト）場合などに実施される。エラー発行（ステップ２６４０）後のロック解除（ステップ２６１６）は、要求元仮想マシン（ＶＭ）によるロック解除、または、仮想マシンマネジャによる強制ロック解除のどちらでもよい。
【００９１】
ステップ２６０２で、他仮想マシン（ＶＭ）が任意のＶＭにライトを要求することが考えられる。この機能を実現するため、仮想マシンマネジャは、他ＶＭに対してＶＭ間通信用共有メモリへのライト要求を通知する割り込みを具備する。仮想マシンマネジャがその要求先ＶＭに対してライト要求割り込みを発行することでライト要求を通知する。ライト要求割り込みを受信した仮想マシン（ＶＭ）は、仮想マシンマネジャに対しロック要求を発行してステップ２６０４以降の処理を行う。
【００９２】
図２９はＶＭ間通信用共有メモリのリード時の制御フローである。図２９の処理は図１の仮想マシンマネジャ１９０が物理アドレス管理モジュール(ＰＡＭ)１１０を操作して実行するものである。以下ＶＭは図１の１０１に対応するＶＭＩＤで示される１つの仮想マシンである。任意の仮想マシン（ＶＭ）がＶＭ間通信のため、共有メモリのリードを実行したい場合（ステップ２７０２）、仮想マシンマネジャに対して排他的アクセス権要求（ロック要求）を発行する（ステップ２７０４）。仮想マシンマネジャは仮想マシン（ＶＭ）からのロック要求を受信すると、他のＶＭによりロックが掛けられているか否かを判定する（ステップ２７０６）。他の仮想マシン（ＶＭ）がロック中の場合、ロックが解除されるまで待つ。他の仮想マシン（ＶＭ）がロックしていない場合、要求元ＶＭにロックを許可する（ステップ２７０８）。ロックを許可された要求元ＶＭはリードコマンドを発行する（ステップ２７１０）。物理アドレス管理モジュール(ＰＡＭ)１１０はバスよりａｕｔｈ信号、ｏｐｃ信号、ｓｒｃ信号、ｐｉｄ信号、ａｄｄｒ信号を入力し、図１０のアクセス許可判定フローに従い、仮想マシン（ＶＭ）の要求がエントリテーブルの各フィールド設定値との一致、不一致により、リード権限があるか否かを判定する（ステップ２７１２）。判定の結果リード権限がある場合、共有メモリのリードを実行する（ステップ２７１４）。要求元ＶＭはリードを終了するとロックを解除し処理を終了する。判定の結果アクセス権限がない場合、アクセスを拒否し、エラーを返して（ステップ２７４０）、ロックを解除して処理を終了する（ステップ２７１６、２７１８）。
【００９３】
ステップ２７０２において、ある仮想マシン（ＶＭ）が共有メモリへのライトを終了後、通信先ＶＭに対してリード可能な状態になったことを通知したい場合など、他ＶＭが任意のＶＭに対しリードを要求する場合がある。この機能を実現するため、仮想マシンマネジャは他ＶＭに対してＶＭ間通信用共有メモリへのリード要求を通知する割り込みを具備する。仮想マシンマネジャがその要求先ＶＭに対してリード要求割り込みを発行することでリード要求を通知する。リード要求割り込みを受信した仮想マシン（ＶＭ）は、仮想マシンマネジャに対しロック要求を発行してステップ２７０４以降の処理を行う。
【００９４】
ロック制御は、図２８の説明部分で前述した仮想マシンマネジャのロック機能を使用する。エラー発行（ステップ２７４０）後のロック解除（ステップ２７１６）は、要求元ＶＭによるロック解除、または、仮想マシンマネジャによる強制ロック解除のどちらでもよい。
【００９５】
図３０は、仮想マシンマネジャがある仮想マシン（ＶＭ）の通信用共有メモリから他のＶＭの通信用共有メモリへのデータコピーを代行する場合の制御フローである。図３０の処理は図１の仮想マシンマネジャ１９０が物理アドレス管理モジュール(ＰＡＭ)１１０を操作して実行するものである。以下仮想マシン（ＶＭ）は図１の１０１に対応するＶＭＩＤで示される１つの仮想マシンである。この制御は、物理アドレス管理モジュール(ＰＡＭ)内の設定エントリテーブルにて、ある共有メモリ領域範囲（ＡＤＤＲ／ＡＭＳＫ設定）に対して、例えば図２７（４）に示すエントリのみが設定される、すなわち、共有メモリ領域が特定ＶＭ専用領域として設定されている場合に使用する。この特定ＶＭ専用領域は、他ＶＭ上で動作するオペレーティングシステム、アプリケーションプログラム等のソフトウェアを信頼しないような、他ＶＭからの干渉が許されない高い信頼性、セキュリティが必要な仮想マシン（ＶＭ）に対して設定する。仮想マシンマネジャ１９０は、仮想マシンマネジャモード（ＸＶＳ MODE）で動作するため、オペレーティングシステムやアプリケーションプログラムなどのバグやコンピュータウィルス、マルウェアに感染した場合の影響などを受けることがなく、ＶＭ上で動作中のソフトウェアより高信頼、高セキュリティである。よって、仮想マシンマネジャ１９０によるデータコピーは、仮想マシン（ＶＭ）上のソフトウェアによるデータコピーよりも、高い信頼性、セキュリティを得られるためである。ある仮想マシン（ＶＭ）から他のＶＭに対するデータコピー要求が発行されると（ステップ２８０２）、仮想マシンマネジャは、ロック要求を発行する（ステップ２８０４）。仮想マシンマネジャは他の仮想マシン（ＶＭ）によりロックがかけられているか否かを判定する（ステップ２８０６）他のＶＭがロックしている場合、ロックが解除されるまで待つ。他の仮想マシン（ＶＭ）がロックしていない場合、要求元ＶＭにより指定されたデータを受信先ＶＭの共有メモリへコピーする処理を実行する（ステップ２８０８）。物理アドレス管理モジュール(ＰＡＭ)１１０はバスよりａｕｔｈ信号、ｏｐｃ信号、ｓｒｃ信号、ｐｉｄ信号、ａｄｄｒ信号を入力し、図１０のアクセス許可判定フローに従い、要求元ＶＭの要求がエントリテーブルの各フィールド設定値に一致し、受信先共有メモリのライト権限があるか否かを判定する（ステップ２８１０）。判定の結果ライト権限がない場合、エラー処理を実行し（ステップ２８４０）、ロックを解除して（ステップ２８２８、２８３０）処理を終了する。判定の結果、ライト権限がある場合には、受信先ＶＭの共有メモリに対してデータコピーが実行される（ステップ２８１２）。データコピーの完了後、仮想マシンマネジャは、物理アドレス管理モジュール(ＰＡＭ)１１０内の受信先ＶＭの共有メモリ用エントリの設定を受信先ＶＭ専用、かつ、ライト不可（ＰＷ＝Ｂ’０）と設定する（ステップ２８１４）。これにより、機密データ等の重要な情報を無関係なＶＭから参照されたり、書き換えられたりする危険性を低減する。この設定の書き換えは、データをコピーした領域のみ、もしくは、受信先ＶＭの全共有メモリ領域のいずれかに適用すればよい。
【００９６】
物理アドレス管理モジュール(ＰＡＭ)１１０内の受信先ＶＭの共有メモリ用エントリ設定が終了すると、仮想マシンマネジャはロック許可を受信先ＶＭへ付与し（ステップ２８１６）、受信先ＶＭに対してリード要求割り込みを発行する（ステップ２８１８）。受信先ＶＭはリードコマンドを発行する（ステップ２８２０）。物理アドレス管理モジュール(ＰＡＭ)１１０による判定の結果（ステップ２８２２）、データがコピーされた領域へのライトなど、許可されていないアクセスの場合にはエラー処理を実行する（ステップ２８４０）。許可されているリードであれば、受信先ＶＭからのロック解除要求、または、タイムアウトを待ち（ステップ２８２４）、ステップ２８１４で書き換えを行ったエントリに対して、書き換える前の設定に書き換える処理を実行する（ステップ２８２６）。その後、要求元ＶＭに対してデータコピーの終了を通知し（ステップ２８２７）、ロックを解除して（ステップ２８２８）処理を終了する。ロック制御は、図２８の説明部分で前述した仮想マシンマネジャのロック機能を使用する。
【００９７】
図３１、３２では、仮想マシンマネジャによる例外、割り込み要求の分配方式について説明する。３１１０が図１の１０１に対応する１つのオペレーティングシステムである。仮想マシンマネジャ１９０を実装したマルチコアシステムにおいて、割り込みおよび例外は図３１にしたがって処理される。割り込みや例外は外部から中央演算処理装置（ＣＰＵ）に通知されるものと中央演算処理装置（ＣＰＵ）内部から通知されるものとがある。外部からの通知は、どのような要因であっても割り込みコントローラ（ＩＮＴＣ）１０７を経由し、ＩＮＴＣ１０７から中央演算処理装置（ＣＰＵ）に通知される。
【００９８】
図１５は割り込み分配制御機構である。仮想マシンマネジャ１９０では図１５のＰＲＩＯＲＩＴＹ内のマスクレジスタをセットする。入力された割り込み信号が、マスクで行き先を指定された１つまたは複数の中央演算処理装置（ＣＰＵ）に送られることになる。このマスクをセットする動作は、計算機の起動時に仮想マシンマネジャが起動されて初期化を行う時点であり、そうした場合、計算機システムの構成に応じてあらかじめ定まった割り込みの転送経路を指定できる。また、アプリケーションプログラムの動作中に仮想マシンマネジャに制御が移った時点でもこの設定は可能であり、割り込みの転送先を実行状態や割り込み要因に応じて動的に変更することも可能である。仮想マシンマネジャ１９０では、図３２の割り込み要因種別と分配モードの対応表にしたがって、上記マスクレジスタの設定を行う。３２００が割込み種別と分配モードを対応付ける対応表である。この対応表は仮想マシンマネジャ１９０による計算機システムの初期化時に設定される。これにより、例えば動画処理を行うハードウェアデバイスからの割り込みは「内蔵周辺の占有デバイスからの割り込み」として処理され、固定分配モードとなる。図３２で動画処理デバイスから割り込みが発生し、割り込みコントローラ（ＩＮＴＣ）１０７に入ると、割り込みマスクレジスタ３２３１のマスクによって、その要因に応じてあらかじめ設定されている中央演算処理装置（ＣＰＵ）（そのＣＰＵが当該動画処理ハードウェアを直接制御する）１００に割り込み信号３２５０が送られる。一方、複数の中央演算処理装置（ＣＰＵ）に共有されている、例えばハードディスク装置のような共有デバイスからの割り込みでは自動分配モードとなり、マスクはかけられず、すべての中央演算処理装置（ＣＰＵ）に割り込み信号が送られて最初に受付けた中央演算処理装置（ＣＰＵ）が割り込み受理信号３２６０を返してその割り込みを処理することになる。割り込みおよび例外が中央演算処理装置（ＣＰＵ）に通知されると、図３１の例外ベクタテーブルを参照して要因に応じて処理が行われる。ここまでは、一般の中央演算処理装置（ＣＰＵ）とその制御システムにおける処理と同様である。
【００９９】
それ以降、仮想マシンマネジャ１９０を持つ本発明のマルチコアシステムでは、図３１の構成により以下のように処理される。要因がＴＬＢミスやプロセッサの一般例外であるものは中央演算処理装置（ＣＰＵ）内部から通知され、これは仮想マシンマネジャによってそのままオペレーティングシステムなど発生元のプログラムに分岐することによって転送される。以後、オペレーティングシステムや制御プログラムが元々備えている割り込み／例外処理機構によって処理される。要因が外部からの割り込みであった場合、以下の分類で処理される。第１は、マルチコアでの他の中央演算処理装置（ＣＰＵ）からのＣＰＵ間割り込みの場合、図１５および図３２の割り込み分配機構としての割り込みコントローラ（ＩＮＴＣ）１０７によって、適切な中央演算処理装置（ＣＰＵ）と仮想マシンマネジャがこの割り込みを受け取っている。図３１の「ＣＰＵ間割り込みハンドラ」によって処理され、例外コードと割り込みレジスタを設定し、受け取った中央演算処理装置（ＣＰＵ）の内蔵モジュールからの割り込みのように振舞う「仮想割り込み」を生成する。この仮想割り込みを受け取った仮想マシンマネジャ１９０が管理するオペレーティングシステムに転送することにより上記代と同じ処理を行う。第２は、占有デバイスからの割り込みの場合、上と同様に割り込みコントローラによって、この割り込みはそれを処理すべき中央演算処理装置（ＣＰＵ）と仮想マシンマネジャが受け取っているので、この割り込みを受け取った仮想マシンマネジャが管理するオペレーティングシステムに転送することにより、要因がＴＬＢミスやプロセッサの一般例外である場合と同じ処理を行う。第３は、ダイレクトメモリアクセス機構などのようにチャネルごとの占有デバイスからの割り込みの場合、第２の場合と同様に割り込みコントローラ１０７によって、この割り込みはそれを処理すべき中央演算処理装置（ＣＰＵ）と仮想マシンマネジャが受け取っている。この割り込みを受け取った仮想マシンマネジャが管理するオペレーティングシステムに転送することにより、要因がＴＬＢミスやプロセッサの一般例外である場合と同じ処理を行う。第４は、物理アドレス管理モジュール(ＰＡＭ)１１０による保護違反の割り込みの場合、上と同様に割り込みコントローラ１０７によって、この割り込みはそれを処理すべき中央演算処理装置（ＣＰＵ）と仮想マシンマネジャ１９０が受け取っている。この割り込みの場合、仮想マシンマネジャ１９０において共有メモリアクセスの制御を行うため、操作対象の中央演算処理装置（ＣＰＵ）に通知するためのＣＰＵ間割り込みを生成する。生成されたＣＰＵ間割り込みは、割り込みコントローラ（ＩＮＴＣ）１０７に送られ、対象中央演算処理装置（ＣＰＵ）と仮想マシンマネジャにおいて、上記第２の場合として処理される。
【０１００】
図３３は、本発明のマイクロプロセッサ１に対して、外部、あるいは内部要求によってリセット信号が入力された場合の動作を示したものである。３３００のファームウェアが図１の仮想マシンマネジャ１９０内の制御プログラムであり、３３１０が１０１の１つのＶＭＩＤで特定されるオペレーティングシステムが稼動する環境である。このマイクロプロセッサ１にリセット信号３３４０が入力されたとする。リセット信号がパワーオンリセットである場合、このマイクロプロセッサのチップ全体にリセット信号３３３１によりリセットがかかり、通常のリセット処理が行われる。リセット信号がマニュアルリセットである場合、その信号は図１５のＲＳＴＴＯＩＲＱで選択され、このレジスタが“１”で割り込み要因として扱われ、リセット割り込み信号３３３２として出され、図１５のＰＲＩＯＲＩＴＹでの割り込み分配の対象となる。リセット割り込み信号３３３２は図３２に示す割り込みコントローラ（ＩＮＴＣ）１０７での分配モード選択にしたがって自動分配モードとなり、３３３３としてすべての中央演算処理装置（ＣＰＵ）に送られ最初に受付けた中央演算処理装置（ＣＰＵ）がそこにある仮想マシンマネジャ１９０によって処理することになる。その処理は、３３００に示すリセット割り込み処理フローで行われ、物理中央演算処理装置（ＣＰＵ）に対するリセットであれば（ステップ３３０１）、対応する物理中央演算処理装置（ＣＰＵ）へのリセット信号を出力する（ステップ３３０２）。これは、対象となる中央演算処理装置（ＣＰＵ）に対応してＲＳＴＴＯＩＲＱを“０”に設定し、仮想マシンマネジャから再度マニュアルリセットを発行することによって行う。仮想マシンに対するリセットである場合、仮想マシンマネジャ内部で仮想的なリセット割り込みが発生したとみなして処理する。割り込みを受付けた仮想マシンマネジャが管理する（自ドメインにある）仮想マシンに対するリセットである（ステップ３３０３）場合、その仮想マシンマネジャの管理下にある１つまたは複数の仮想マシンを初期状態にソフトウェア処理として強制移行させる（ステップ３３０４）。割り込みを受付けた仮想マシンマネジャが管理しない（他ドメインにある）仮想マシンの場合（ステップ３３０５）、この仮想的なリセット割り込みを「仮想割り込み」として、それを処理すべき仮想マシンを管理する中央演算処理装置（ＣＰＵ）へ通知する。割り込み処理手順により、割り込みコントローラ（ＩＮＴＣ）１０７での分配モード選択にしたがって固定分配モードで、対象の中央演算処理装置（ＣＰＵ）にリセット仮想割り込みが送られ、その中央演算処理装置（ＣＰＵ）を管理する仮想マシンマネジャによって１つまたは複数の仮想マシンを初期状態にソフトウェア処理として強制移行させる。
【０１０１】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１０２】
例えば、図１の例に対して、従来の中央演算処理装置と物理アドレス管理モジュール(ＰＡＭ)１１０を組み合わせてマイクロプロセッサを構成することも可能である（第１変形例）。このとき、前述の仮想マシンマネジャ１９０とオペレーティングシステムは、ともに特権モードにて走行する。ただし、この場合には複数の動作ドメイン間での相互影響の軽減という効果が低減する。また、図１の例に対し、図１６、図１７の方式を有する中央演算処理装置（ＣＰＵ）と物理アドレス管理モジュール(ＰＡＭ)１１０を組み合わせることも可能である（第２変形例）。この場合も、複数の動作ドメイン間での相互影響の軽減という効果が低減する。図１６は、図３に示した例に対応するものであり、図１７は図５に対応するものである。図１６においてＳＴＩＤと呼ばれるレジスタ部分が、図３におけるＶＭＩＤレジスタに相当するが、ＶＭＩＤレジスタが８ビットであるのに対し、ＳＴＩＤは１ビットのレジスタである。また、図１７においてＮＳと呼ばれるレジスタ部分が、図５におけるＶＭＩＤメモリに相当するが、ＶＭＩＤメモリが８ビットであるのに対し、ＮＳは１ビットである。上記の図１６、図１７に示されるハードウェアを有する第２変形例のマイクロプロセッサにおいても、仮想マシンマネジャがその制御を行うことにより、本発明で実施する方式を限定的に実現することができる。
【０１０３】
前記第１変形例では図９のテーブルエントリから、ＰＩＤフィールド、ＰＭＳＫフィールドを削除したものが設定レジスタテーブルとなる。第１変形例では図１０においてステップ１００２のｐｉｄ信号の判定を削除したアルゴリズムを採用すればよい。第１変形例では図１１において比較回路ＡＵＴＨＣＯＭＰでのアクセス権限信号の検査が異なる。具体的には、図１１では、ＰＡＭＥＮＴＲＹ＿１〜１６へのアクセスは仮想マシンマネジャモード（ＸＶＳ MODE）で動作しているプログラムからのものでなければならないが、第１変形例では、特権モードで動作しているプログラムからのものでなければならない。第１の変形例において、中央演算処理装置（ＣＰＵ）での、割り込み、例外の種類と、それらの発生時の遷移先アドレスの方式については、従来の中央演算処理装置（ＣＰＵ）のそれと同様である。また、第１変形例において仮想マシンマネジャソフトウェアは、特権モードにおいてオペレーティングシステムと協調動作することが望ましい。
【図面の簡単な説明】
【０１０４】
【図１】本発明の一例に係るマイクロプロセッサを全体的に示すブロック図である。
【図２】ＸＶＳ設定用システムレジスタ（ＸＶＳＣＲ、ＸＶＳＶＭＩＤ、ＸＶＲ、ＸＶＳＥＶＴ）の説明図である。
【図３】ＶＭＩＤフィールド及びＣＰＵ権限フィールドを追加したＴＬＢエントリの説明図である。
【図４】ＴＬＢエントリＶＭＩＤフィールド及びＣＰＵ権限フィールドによるアクセス権限判定アルゴリズムを例示するフローチャートである。
【図５】ＶＭＩＤフィールドを追加したキャッシュエントリの説明図である。
【図６】キャッシュエントリＶＭＩＤフィールドの更新アルゴリズムを例示するフローチャートである。
【図７】キャッシュエントリＶＭＩＤフィールドによるヒット判定アルゴリズムを示すフローチャートである。
【図８】アクセス属性情報出力モード(ＶＭＩＤ８、ＶＭＩＤ４＋ＡＳＩＤ４、ＡＳＩＤ８)の説明図である。
【図９】ＰＡＭエントリの構成説明図である。
【図１０】ＰＡＭによるアクセス許可判定アルゴリズム(通常アクセス通過、不通過、オフセット加算)を例示するフローチャートである。
【図１１】ＰＡＭのブロック図である。
【図１２】ＰＡＭに含まれる比較回路ＣＯＭＰの論理回路図である。
【図１３】ＰＡＭに含まれるオフセット加算回路ＯＦＦＳＥＴの論理回路図である。
【図１４】仮想マシンマネジャモード（ＸＶＳ MODE）へ遷移するための例外要因を例示する説明図である。
【図１５】割り込み分配及びリセット信号割り込み化に対応する割り込みコントローラのブロック図である。
【図１６】ＳＴＩＤフィールドを追加したＴＬＢエントリの説明図である。
【図１７】ＮＳフィールドを追加したキャッシュエントリの説明図である
【図１８】仮想マシンマネジャの機能（メモリ、Ｉ／Ｏ分割、ＣＰＵ共有）を主体として把握したマイクロプロセッサの機能説明図である。
【図１９】各ＶＭに割り当てるハードウェア（メモリ、Ｉ／Ｏ、ＣＰＵ）資源の指定と管理の形態を示すＶＭ定義ファイルの説明図である。
【図２０】仮想マシンマネジャの起動時における機能分担と呼出し関係を明示したフローチャートである。
【図２１】仮想マシンマネジャのモジュール構成図と通常動作時時における機能分担と呼出し関係を明示したブロック図である。
【図２２】複数のＶＭからのメモリアクセスに関しオフセット加算、権限チェックをＰＡＭと仮想マシンマネジャモード（ＸＶＳ MODE）でどのように実現するかを示した説明図である。
【図２３】複数のＶＭ間でメモリを介した通信をＰＡＭと仮想マシンマネジャモード（ＸＶＳ MODE）でどのように実現するかを示した説明図である。
【図２４】複数のＶＭが共有するＣＰＵハード資源のアクセスに関して仮想マシンマネジャがトラップし、代理実行(エミュレーション)する際の処理の流れを示す説明図である。
【図２５】複数のＶＭに分割したＩ／Ｏに関して、処理の起動から完了までのシーケンスに着目したシーケンス図である。
【図２６】ＶＭ間通信時の構成を示すブロック図である。
【図２７】ＰＡＭモジュール内のエントリテーブルの設定例を示す説明図である。
【図２８】ＶＭ間通信用共有メモリへのライト時の制御フローチャートである。
【図２９】ＶＭ間通信用共有メモリのリード時の制御フローチャートである。
【図３０】ＶＭ間通信時の仮想マシンマネジャによるデータコピーの制御フローチャートである。
【図３１】仮想マシンマネジャによる処理フローと例外事象に従った例外処理選択のテーブルを示す説明図である。
【図３２】割り込み分配モードの設定ルールを例示する説明図である。
【図３３】リセット選択機構の構成と処理フローを例示する説明図である。
【符号の説明】
【０１０５】
１：  マイクロプロセッサ
１０１：  仮想マシン（ＶＭ０、ＶＭ１、ＶＭ２）
１００，１０２，１０３：  中央演算処理装置（ＣＰＵ、ＣＰＵ０、ＣＰＵ１、ＣＰＵ２）
１０７：  割り込みコントローラ（ＩＮＴＣ）
１１０  ：物理アドレス管理モジュール（ＰＡＭ）
１１１：  物理アドレス管理モジュールエントリテーブル（ＰＡＭＥＮＴＲＹ）
１２０：  メモリ（ＭＥＭ）
１３０，１３１：  入出力回路（Ｉ／Ｏ）
１４０：  仮想マシン識別子レジスタ（ＸＶＳＶＭＩＤ．ＶＭＩＤ）
１５０：  拡張ＣＰＵ動作モードレジスタ（ＸＶＳＣＲ．ＭＤ）
１５１：  ＣＰＵ動作モードレジスタ（ＳＲ．ＭＤ）
１６０：  仮想マシン識別子出力モードレジスタ（ＸＶＳＣＲ．ＰＩＤＳＥＬ）
１７０：  拡張例外遷移先アドレスレジスタ（ＸＶＲ．ＸＶＲ）
１８０：  拡張例外コードレジスタ（ＸＶＳＥＶＴ．ＣＯＤＥ）
１９０：  仮想マシンマネジャ
ＶＭＩＤ：  仮想マシン識別子
ＡＳＩＤ：  アドレス空間識別子
ＶＰＮ：  仮想ページ番号
ＰＰＮ：  物理ページ番号
ＳＺ：  ページサイズ
ＳＨ：  共有フラグ
Ｃ：  キャッシャブルフラグ
ＰＲ：  保護フラグ
ＶＭＩＤ：  仮想マシン識別子
ＬＷ０〜７：  キャッシュデータ
Ａｄｄｒｅｓｓ（Ｖ）：  仮想アドレス
Ａｄｄｒｅｓｓ（Ｐ）：  物理アドレス
ａｄｄｒ：  ＬＳＩ内部バスアクセスアドレス
ｄａｔａ：  ＬＳＩ内部バスアクセスデータ
ｐｉｄ：  ＬＳＩ内部バスｐｉｄ信号
ＡＤＤＲ：  物理アドレス管理モジュールエントリテーブルアドレスフィールド
ＡＭＳＫ：  物理アドレス管理モジュールエントリテーブルアドレスマスクフィールド
ＳＲＣ：  物理アドレス管理モジュールエントリテーブルソース識別子フィールド
ＳＭＳＫ：  物理アドレス管理モジュールエントリテーブルソース識別子マスクフィールド
ＰＩＤ：  物理アドレス管理モジュールエントリテーブルｐｉｄ信号値フィールド
ＰＭＳＫ：  物理アドレス管理モジュールエントリテーブルｐｉｄ信号値マスクフィールド
ＯＦＦＳＥＴ：  物理アドレス管理モジュールエントリテーブルオフセットアドレスフィールド
ＰＲ：  物理アドレス管理モジュールエントリテーブルリード許可ビットフィールド
ＰＷ：  物理アドレス管理モジュールエントリテーブルライト許可ビットフィールド
ＥＲＲＩＮＴ：  バスアクセス権限違反通知割り込み信号
ＡＵＴＨＣＯＭＰ：  アドレス・アクセス権限信号デコード・バスアクセス振り分け回路部
ＣＯＭＰ：  通常バスアクセス権限判定回路部
ＢＬＯＣＫＡＤＥ：  バスアクセス遮断回路部
ＯＦＦＳＥＴ：  バスアクセスアドレスオフセット加算回路部
ＰＡＭＥＮＴＲＹ＿１〜１６：  物理アドレス管理モジュールエントリテーブル
ｐａｍｅｎｔｒｙ＿ｄｅｎｙ：  物理アドレス管理モジュールエントリテーブルアクセス時バスアクセス権限違反通知内部信号
ｄｅｎｙ：  通常バスアクセス時バスアクセス権限違反通知内部信号
ｈｉｔｅｎｔｒｙ：  アクセス許可判定エントリ通知内部信号
ＲＳＴＴＯＩＲＱ：  ＬＳＩ内部リセット通知方法設定レジスタ
ＰＲＩＯＲＩＴＹ：  割り込み優先順位判定回路部
ＮＭＩ：  ノンマスカブル割り込み信号
Ｅｘｔｅｒｎａｌ  ＩＲＱ：  外部割込み信号
Ｉｎｔｅｒｎａｌ  ＩＲＱ：  内部割込み信号
Ｉｎｔｅｒｎａｌ／Ｅｘｔｅｒｎａｌ ＲＥＳＥＴ：  内部／外部リセット通知信号
ＲＥＳＥＴ：  リセット信号
ＳＴＩＤ：  セキュリティモード識別子
ＡＳＩＤ：  アドレス空間識別子
ＶＡ：  仮想アドレス
Ｖ：  有効ビット
ＰＡ：  物理アドレス
ＡＴＴＲ：  属性フィールド
ＮＳ：  セキュリティモード識別子
Ｔａｇ：  タグアドレス
Ｕ：  ダーティービット
Ｖ：  有効ビット
Ｄａｔａ：  キャッシュデータ
ＵｓｅｒＰｒｏｇ．：  ユーザプログラム（アプリケーションプログラム）
ＯＳ０、ＯＳ１、ＯＳ２：  オペレーティングシステムプログラム
Ｏｆｆｓｅｔ：  オフセットアドレス
【図１】
2008097173.tif 000003
【図２】
2008097173.tif 000004
【図３】
2008097173.tif 000005
【図４】
2008097173.tif 000006
【図５】
2008097173.tif 000007
【図６】
2008097173.tif 000008
【図７】
2008097173.tif 000009
【図８】
2008097173.tif 000010
【図９】
2008097173.tif 000011
【図１０】
2008097173.tif 000012
【図１１】
2008097173.tif 000013
【図１２】
2008097173.tif 000014
【図１３】
2008097173.tif 000015
【図１４】
2008097173.tif 000016
【図１５】
2008097173.tif 000017
【図１６】
2008097173.tif 000018
【図１７】
2008097173.tif 000019
【図１８】
2008097173.tif 000020
【図１９】
2008097173.tif 000021
【図２０】
2008097173.tif 000022
【図２１】
2008097173.tif 000023
【図２２】
2008097173.tif 000024
【図２３】
2008097173.tif 000025
【図２４】
2008097173.tif 000026
【図２５】
2008097173.tif 000027
【図２６】
2008097173.tif 000028
【図２７】
2008097173.tif 000029
【図２８】
2008097173.tif 000030
【図２９】
2008097173.tif 000031
【図３０】
2008097173.tif 000032
【図３１】
2008097173.tif 000033
【図３２】
2008097173.tif 000034
【図３３】
2008097173.tif 000035