(57)【特許請求の範囲】
【請求項１】
プログラムを実行するＣＰＵと、当該ＣＰＵの動作モードに基づいて前記ＣＰＵのアドレス空間に対する記憶保護を行う記憶保護部と、を有するデータプロセッサであって、
どのオペレーティングシステムによるプログラムの実行かを指定するためのドメインＩＤデータが設定されるドメインＩＤレジスタと、
前記ドメインＩＤレジスタで指定されたプログラムを実行するのか又は前記ドメインＩＤレジスタで指定されたプログラムを実行するための管理制御を行うのかを指定するモードデータが設定されるドメイン制御レジスタと、
属性変更データが設定される属性情報変更レジスタと、を有し、
前記ＣＰＵは、前記アドレス空間に対するアクセスに際して、前記ドメイン制御レジスタ及び前記ドメインＩＤレジスタの設定状態により、前記アクセスが前記ドメインＩＤレジスタで指定されたプログラムによって実行されたのか、前記管理制御によって実行されたのかを示す属性情報を生成し、
前記属性変更データは、第１データと第２データを含み、
前記第１データは、前記ドメイン制御レジスタによって前記管理制御が指定されているときに、前記ＣＰＵが前記アドレス空間に対しアクセスするに際し、前記属性情報を変更するか否かを指定するデータであり、
前記第２データは、前記第１データが前記属性情報を変更すると指定した場合に、前記アクセスにより実行されるプログラムが属するドメインを指定するデータであり、
前記ＣＰＵは、前記アドレス空間に対するアクセスに際して、前記ドメイン制御レジスタによって前記管理制御が指定されているときに、前記第１データが前記属性情報を変更すると指定した場合に、前記第２データの指定に従い、前記生成された属性情報の前記ドメインＩＤデータを変更し、
前記記憶保護部は、前記アドレス空間に含まれるアドレスに対応付けてそのアドレスへのアクセスが許可されるべき属性情報を予め保持し、前記変更された属性情報を前記ＣＰＵから受取って前記予め保持する属性情報と比較することにより、前記ＣＰＵによる前記アクセスを許可するか否かを判別する、データプロセッサ。
【請求項２】
前記第１データは、リードアクセスとライトアクセス毎に属性情報を変更するか否かを指定するデータである、請求項１記載のデータプロセッサ。
【請求項３】
前記ＣＰＵは、前記ドメインＩＤレジスタ、前記ドメイン制御レジスタ及び前記属性情報変更レジスタにデータをロードする特定のロード命令を命令セットに含み、
前記ＣＰＵは、前記ドメイン制御レジスタによって前記管理制御が指定されているときに、当該ロード命令を実行する、請求項１記載のデータプロセッサ。
【請求項４】
前記ＣＰＵは、前記ドメインＩＤレジスタ、前記ドメイン制御レジスタ及び前記属性情報変更レジスタからデータをストアする特定のストア命令を命令セットに含み、
前記ＣＰＵは、前記ドメイン制御レジスタによって前記管理制御が指定されているときに、当該ストア命令を実行する、請求項３記載のデータプロセッサ。
【請求項５】
前記ＣＰＵは、前記管理制御を指定するためのモードデータを前記ドメイン制御レジスタに設定してから例外処理を要求させるトラップ命令を命令セットに含み、
前記ＣＰＵは、前記ドメイン制御レジスタの設定状態に依存せずに当該トラップ命令を実行する、請求項４記載のデータプロセッサ。
【請求項６】
前記記憶保護部は、ＭＭＵであり、
前記ＭＭＵは、前記アドレス空間に含まれる仮想アドレスに対応付けて当該仮想アドレスへのアクセスが許可されるべきＣＰＵの動作モードについての属性情報を予め保持し、当該仮想アドレスと物理アドレスの変換対を用いて、前記ＣＰＵのアクセス対象である仮想アドレスを物理アドレスに変換すると共に、当該仮想アドレスをアクセスするＣＰＵの動作モードの属性情報が、前記予め保持される属性情報のうち当該仮想アドレスと対応する属性情報と一致するか否かに基づいて前記ＣＰＵによる前記アクセスを許可するか否かを判別する、請求項１記載のデータプロセッサ。
【請求項７】
前記ＭＭＵはアドレス変換テーブルを備え、
前記アドレス変換テーブルは、仮想アドレスと物理アドレスの変換対と共に当該仮想アドレスへのアクセスが許容されるＣＰＵの動作モードの属性情報を有するエントリ情報が書き換え可能に格納される、請求項６記載のデータプロセッサ。
【請求項８】
前記属性情報変更レジスタに設定された属性変更データに従って属性情報が変更され、且つ、前記ドメイン制御レジスタの設定に従ってＣＰＵが管理制御を行っている場合に、前記アクセスの対象である前記仮想アドレスが前記アドレス変換テーブル内の前記変換対を構成する仮想アドレスの中に合致する仮想アドレスがないために前記ＭＭＵがアドレス変換ミスを生ずることによってアドレス変換ミス例外を発生するとき、当該アドレス変換ミス例外に応答するＣＰＵは、前記属性情報変更レジスタに基づいて前記記憶保護部によって変更された属性情報によって前記アクセスを実行したプログラムのドメインとして示されるドメインＩＤデータを前記ドメインＩＤレジスタに設定し、且つ、前記ドメイン制御レジスタに前記ドメインＩＤレジスタで指定されたプログラムの実行を指示するモードデータを設定して、当該ドメインＩＤレジスタで指定されたプログラムによるアドレス変換ミス例外処理の実行に分岐する、請求項７記載のデータプロセッサ。
【請求項９】
前記ＣＰＵは、分岐先でアドレス変換ミス例外処理を実行してから、前記ドメイン制御レジスタに管理制御を指定するためのモードデータを設定する、請求項８記載のデータプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶保護機能を有するデータプロセッサに関し、例えば、異なるオペレーティングシステムの制御下でプログラムを実行するシステム（仮想マシン）の間での連携が可能なマイクロコンピュータに適用して有効な技術に関する。
【背景技術】
【０００２】
今日のデータプロセッサ、およびデータプロセッサで構成されるシステムにおいては、ＬＳＩ（半導体集積回路）の微細化に伴う高集積化に伴い、そのシステムで動作するアプリケーションプログラムに要求される機能がより高機能化、複雑化している。
【０００３】
高機能なアプリケーションプログラムを開発するに当たっては、既存のアプリケーションプログラムを活用し、それらを組み合わせて、より高機能なアプリケーションプログラムを開発することが、開発効率の観点から一般的である。
【０００４】
このとき、既存のアプリケーションプログラムは、従来のデータプロセッサで構成される従来システムで動作するものであり、その従来システムの構成と不可分のものである。システムの構成を変更することは、既存アプリケーションプログラムを再度開発するほどではないにせよ、多大な開発工数が必要となるものである。
【０００５】
したがって、既存アプリケーションのプログラムは、ほとんどの場合従来システムで動作させなければならず、既存アプリケーションプログラムを組み合わせて動作させるためには、従来システム自体も組み合わせて動作させる必要がある。
【０００６】
ここで、従来システムとは、単一のＣＰＵ（中央処理装置）と単一のＯＳ（オペレーティングシステム）で構成されるシステムが一般的であり、従来システムを組み合わせて動作させる、とは、特に多種多数のＯＳを組み合わせて、同時に動作させることを意味する。
【０００７】
このとき、各々の従来システムの信頼性やセキュリティを保ちつつ、それらのＯＳを複数組み合わせて動作させる技術が特許文献1で示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−０９７１７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献1に示された技術の目的は、各々の既存アプリケーションプログラムが動作する各々の従来システムを、複数動作させることであるが、高機能なアプリケーションプログラムを実現するにあたっては、複数の既存アプリケーションプログラムを連携させることが必要である。
【００１０】
特に、複数の既存アプリケーションプログラムの連携には、システムブロック（仮想マシン）間で、高速にデータを受け渡しできることが、性能面で重要であるが、システムの信頼性との両立のために、データの受け渡しは、複数のシステムブロックを束ねるソフトウェアによって行われる必要がある。システムブロックは特許文献1にも記載される前記仮想マシンを意味し、本明細書では仮想マシンをドメインと称する。また、複数のシステムブロックを束ねるソフトウェアは前記ドメインの制御を行うドメインマネージャであり、特許文献1では仮想マシンマネージャと呼称されている。ドメインマネージャはＯＳの上位ソフトウェアとして位置付けられる。
【００１１】
複数のドメイン間で受け渡しすべきデータは、データの転送元、転送先のドメインで動作するＯＳの管理下にあるものである。システムの信頼性のためには、データの受け渡し処理はドメインマネージャによって行われなければならないが、一方、受け渡しすべきデータは、ドメインマネージャからのアクセスが困難な場合があり、ひいては複数のドメイン間でのデータ転送が困難であるという問題がある。ドメイン毎に記憶保護が行われるからである。例えば、ドメインマネージャから受け渡しすべきデータがアクセス困難になる場合として、データの転送元、転送先ドメインで動作するＯＳが夫々別々に仮想記憶を行うからである。仮想記憶の機構は、ＣＰＵが発するアクセスの仮想アドレスを物理アドレスに変換すると共に変換に際してアクセス権限に基づき記憶保護を行うことで、メモリなどの実アドレスとの対応を柔軟にし、メモリ管理を効率化する機構であるが、アドレス変換やアクセス権限の設定はドメインで動作しているＯＳが行い、ドメインマネージャからの制御が難しい。
【００１２】
本発明の目的はドメインの記憶保護を維持しつつそれに阻まれることなくドメインマネージャがドメインと連携してアクセスを行うことができるデータプロセッサを提供することにある。
【００１３】
本発明の更に具体的な目的は、記憶保護の異なるドメインの間におけるデータ転送の高速化を、記憶保護機能を生かしながら実現することができるデータプロセッサを提供することにある。
【００１４】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１５】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１６】
すなわち、本発明では、ドメインを制御するドメインマネージャからのアクセスを、ドメインマネージャからのアクセスとして取り扱うアクセスモードの他に、ドメインのプログラムからなされたアクセスとして取り扱うアクセスモードをＣＰＵに拡張し、ドメインマネージャのプログラムがその拡張されたアクセスモードを利用してドメイン間でのデータ転送を行う。例えばドメインマネージャからのリードアクセスを第1のドメインからのリードアクセスと擬制し、ドメインマネージャからのライトアクセスを第２のドメインからのライトアクセスと擬制するアクセスモードの拡張を行うことにより、ドメインマネージャは、第1のドメインによる記憶保護が行われているメモリ領域からデータをリードし、リードしたデータを、第２のドメインによる記憶保護が行われているメモリ領域にライトすることができる。
【発明の効果】
【００１７】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１８】
すなわち、ドメインの記憶保護を維持しつつそれに阻まれることなくドメインマネージャがドメインと連携してアクセスを行うことができる。更に、記憶保護の異なるドメインの間におけるデータ転送の高速化を、記憶保護機能を生かしながら実現することも可能になる。
【図面の簡単な説明】
【００１９】
【図１】図１は本発明の一実施の形態に係るデータプロセッサの構成を例示するブロック図である。
【図２】図２はレジスタＳＲＸ．ＭＤＸ、ＳＲＸ．ＲＤＡＸ、及びＳＲＸ．ＷＤＡＸの構成を例示する説明図である。
【図３】図３はレジスタＳＲＸを操作する命令を例示する説明図である。
【図４】図４はレジスタＸＤＭＩＤ、ＸＲＤＭＩＤ、ＸＷＤＭＩＤの構成を例示する説明図である。
【図５】図５はレジスタＳＲＸ．ＭＤＸ、ＳＲＸ．ＲＤＡＸ、ＳＲＸ．ＷＤＡＸ、ＸＤＭＩＤ、ＸＲＤＭＩＤ、及びＸＷＤＭＩＤの設定状態と、それに応ずるＣＰＵモード及びアクセスモードとの関係を整理して示す説明図である。
【図６】図６はＭＭＵにおけるアドレス変換規則が設定される、アドレス変換テーブルの構成を例示する説明図である。
【図７】図７は本発明のデータプロセッサにおいてＣＰＵモードがＸＶＳ（ＭＤＸ＝１）のときにドメインマネージャの制御によってドメイン間のデータ転送動作を行うときの動作を例示するフローチャートである。
【図８】図８はレジスタＳＲＸ．ＲＤＡＸ，ＳＲＸ．ＷＤＡＸ，ＸＲＤＭＩＤ，ＸＷＤＭＩＤを採用せずＣＰＵモードとアクセスモードが必ず一致する場合におけるドメイン間のデータ転送動作の手順を比較例として示すフローチャートである。
【発明を実施するための形態】
【００２０】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００２１】
〔１〕本発明の代表的な実施の形態に係るデータプロセッサ（１）は、プログラムを実行するＣＰＵ（２）と、当該ＣＰＵの動作モードに基づいて前記ＣＰＵのアドレス空間に対する記憶保護を行う記憶保護部と、を有する。このデータプロセッサは、どのオペレーティングシステムによるプログラムの実行かを指定するためのドメインＩＤデータが設定されるドメインＩＤレジスタ（ＸＤＭＩＤ）と、前記ドメインＩＤレジスタで指定されたプログラムを実行するのか又は前記ドメインＩＤレジスタで指定されたプログラムを実行するための管理制御を行うのかを指定するモードデータが設定されるドメイン制御レジスタ（ＳＲＸ．ＭＤＸ）と、前記ドメイン制御レジスタによって前記管理制御が指定されているときに、前記ドメイン制御レジスタ及び前記ドメインＩＤレジスタの設定状態によって決まるＣＰＵの動作モードの属性情報（１３２，１３５）を変更する、ための属性変更データが設定される属性情報変更レジスタ（ＸＲＤＭＩＤ，ＸＷＤＭＩＤ，ＳＲＸ．ＲＤＡＸ，ＳＲＸ．ＷＤＡＸ）と、を有する。前記記憶保護部は、前記属性情報変更レジスタに設定された属性変更データが反映された属性情報（１３２，１３３，１３４，１３５，１３６，１３７）をＣＰＵから受取ってアクセスの正当性を判別する。
【００２２】
上記より、属性情報変更レジスタに設定される属性変更データに従って、管理制御を行うドメインマネージャからのアクセスが、ドメインのプログラムからなされたアクセスとして擬制されるから、ドメインの記憶保護を維持しつつそれに阻まれることなくドメインマネージャがドメインと連携してアクセスを行うことが可能になる。
【００２３】
〔２〕項１のデータプロセッサにおいて、例えば前記属性変更データは、属性情報を、前記管理制御から前記ドメインＩＤレジスタで指定されたプログラムの実行に切換える、ための第１データ（ＳＲＸ．ＲＤＡＸ＝０／１，ＳＲＸ．ＷＤＡＸ＝０／１）と、どのドメインＩＤに切換えるかを指定する第２データ（ＸＲＤＭＩＤ＝０／１，ＸＷＤＭＩＤ＝０／１）と、を含む。これにより、権限属性の切換え態様を任意に指定することが可能になる。
【００２４】
〔３〕項２のデータプロセッサにおいて、前記第１データ及び第２データの夫々は、例えばリードアクセスとライトアクセス毎に別々に属性情報の変更を指定するデータである。
【００２５】
これにより、例えばドメインマネージャからのリードアクセスを第1のドメインからのリードアクセスと擬制し、ドメインマネージャからのライトアクセスを第２のドメインからのライトアクセスと擬制するように属性情報を変更することにより、ドメインマネージャは、第1のドメインによる記憶保護が行われているメモリ領域からデータをリードし、リードしたデータを、第２のドメインによる記憶保護が行われているメモリ領域にライトすることができる。このことにより、記憶保護の異なるドメインの間におけるデータ転送の高速化を、記憶保護機能を生かしながら実現することができるひいては、記憶保護機構を利用した既存のアプリケーションプログラムを複数組み合わせて複数ドメインからなるシステの性能を高めることができる。
【００２６】
〔４〕項１乃至３の何れかのデータプロセッサにおいて、前記ＣＰＵは、例えば前記ドメインＩＤレジスタ、前記ドメイン制御レジスタ及び属性情報変更レジスタにデータをロードする特定のロード命令（ＬＤＣ  Ｒｍ、ＳＲＸ）を命令セットに含み、当該ロード命令の実行は前記ドメイン制御レジスタによって前記管理制御が指定されていることを条件とするこれにより、ドメインマネージャがＯＳの上記ソフトウェアとして前記ドメインＩＤレジスタ、前記ドメイン制御レジスタ及び属性情報変更レジスタの設定を行うことができる。
【００２７】
〔５〕項４のデータプロセッサにおいて、前記ＣＰＵは、例えば前記ドメインＩＤレジスタ、前記ドメイン制御レジスタ及び属性情報変更レジスタからデータをストアする特定のストア命令（ＳＴＣ  ＳＲＸ、Ｒｎ）を命令セットに含み、当該ストア命令の実行は前記ドメイン制御レジスタによって前記管理制御が指定されていることを条件とする。これにより、ドメインマネージャがＯＳの上記ソフトウェアとして前記ドメインＩＤレジスタ、前記ドメイン制御レジスタ及び属性情報変更レジスタの内容を退避することができる。
【００２８】
〔６〕項５のデータプロセッサにおいて、前記ＣＰＵは、例えば前記管理制御を指定するためのモードデータを前記ドメイン制御レジスタに設定してから例外処理を要求させるトラップ命令（ＴＲＡＰＸ  ＃ｉｍｍ４）を命令セットに含み、当該とラップ命令の実行は前記ドメイン制御レジスタの設定状態に依存しない。これにより、あるドメインが他のドメインからデータを必要とする場合に、容易にドメインマネージャによる管理制御に処理を分岐させることができる。
【００２９】
〔７〕項１乃至６の何れかのデータプロセッサにおいて、前記記憶保護部は、例えば仮想アドレス（ＶＰＮ［３１：２４］）のアクセスが許容されるＣＰＵの動作モードの属性情報（ＭＤＸ，ＤＭＩＤ）を持つと共に当該仮想アドレスと物理アドレス（ＶＰＮ［３１：２４］）の変換対を用いて、前記ＣＰＵの仮想アドレスを物理アドレスに変換すると共に、変換対の仮想アドレスのアクセスが許容されるＣＰＵの動作モードの属性情報が当該仮想アドレスをアクセスするＣＰＵの動作モードの属性情報に一致すか否かに基づいてアクセスの正当性を判別する、ＭＭＵである。仮想記憶を採用するシステムに本発明を適用可能である。
【００３０】
〔８〕項７のデータプロセッサにおいて、例えば前記ＭＭＵはアドレス変換テーブルを備える。前記アドレス変換テーブルは、仮想アドレスと物理アドレスの変換対と共に当該仮想アドレスのアクセスが許容されるＣＰＵの動作モードの属性情報を有するエントリ情報が書き換え可能に格納される。
【００３１】
〔９〕項８のデータプロセッサにおいて、前記属性情報変更レジスタに設定された属性変更データに従って属性情報が変更され、且つ、前記ドメイン制御レジスタの設定に従ってＣＰＵが管理制御を行っている場合に、前記ＭＭＵがアドレス変換ミスを生ずることによってアドレス変換ミス例外を発生するとき、当該アドレス変換ミス例外に応答するＣＰＵは、例えば前記属性情報変更レジスタによる属性情報の変更先のドメインＩＤを指定するドメインＩＤデータを前記ドメインＩＤレジスタに設定し、且つ、前記ドメイン制御レジスタに前記ドメインＩＤレジスタで指定されたプログラムの実行を指示するモードデータを設定して、当該ドメインＩＤレジスタで指定されたプログラムによるアドレス変換ミス例外処理の実行に分岐する。
【００３２】
これにより、ドメインマネージャの管理制御においてドメインによるアクセスと擬制されるアクセスでアドレス変換ミスを生じたとき、当該アドレス変換ミスに係るエントリを当該ドメインのアドレス変換テーブルに格納させるための例外処理を起動することが可能になる。
【００３３】
〔１０〕項９のデータプロセッサにおいて、前記ＣＰＵは、分岐先でアドレス変換ミス例外処理を実行してから、前記ドメイン制御レジスタに管理制御を指定するためのモードデータを設定する。これにより、アドレス変換ミス例外処理を完了した後、ドメインマネージャの管理制御に復帰して、中断した処理の継続が可能になる。
【００３４】
〔１１〕本発明の別の実施の形態に係るデータプロセッサは、プログラムを実行するＣＰＵと、前記ＣＰＵの動作モードに基づいて前記ＣＰＵのアドレス空間に対する記憶保護を行う記憶保護部と、を有し、更に、どのオペレーティングシステムによるプログラムの実行かを指定するためのドメインＩＤデータが設定されるドメインＩＤレジスタと、前記ドメインＩＤレジスタで指定されたプログラムを実行するのか又は前記ドメインＩＤレジスタで指定されたプログラムを実行するための管理制御を行うのかを指定するモードデータが設定されるドメイン制御レジスタと、前記ドメイン制御レジスタによって前記管理制御が指定されているとき前記記憶保護部にアクセスの正当性を判別のために与えられるＣＰＵの動作モードの属性情報を変更するためのデータが設定される属性情報変更レジスタと、を備える。上記同様に、ドメインの記憶保護を維持しつつそれに阻まれることなくドメインマネージャがドメインと連携してアクセスを行うことが可能になる。
【００３５】
〔１２〕本発明の更に別の実施の形態に係るデータプロセッサは、プログラムを実行するＣＰＵと、前記ＣＰＵの動作モードに基づいて前記ＣＰＵのアドレス空間に対する記憶保護を行う記憶保護部と、を有する。前記ＣＰＵは、ＣＰＵによるプログラムの実行が、どのオペレーティングシステムの管理下のドメインで行われているのか、又は夫々のドメインを制御するドメインマネージャによる管理制御であるのか、を示す動作モードに加えて、前記管理制御に基づくアクセスを所定のドメインによるアクセスと擬制する動作モードを有する。上記同様に、ドメインの記憶保護を維持しつつそれに阻まれることなくドメインマネージャがドメインと連携してアクセスを行うことが可能になる。
【００３６】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００３７】
《データプロセッサ》
図１には本発明の一実施の形態に係るデータプロセッサの構成が例示される。同図に示されるデータプロセッサ１は、特に制限されないが、相補型ＭＯＳ集積回路製造技術により単結晶シリコン等の１個の半導体基板に形成される。
【００３８】
データプロセッサ１は、特に制限されないが、プログラムを実行するＣＰＵ２と、ＣＰＵ２にバス１００で接続されたメモリマネージメントユニット（ＭＭＵ）３とを有する。データプロセッサ１の外部にはＭＭＵ３にバス１０１で接続された主記憶（ＭＥＭ）４が接続される。ＭＭＵ３は仮想アドレスを物理アドレスに変換する仮想記憶機能と共に、ＣＰＵ２のアドレス空間に対する記憶保護を行う記憶保護部としての機能を備える。
【００３９】
図１において、ＣＰＵ２がソフトウェアを実行して実現するシステムは、特に制限されないが、第１のＯＳとその制御の元で実行されるアプリケーションプログラムとのグループによって実現されるシステムブロック（仮想マシン）としての第１ドメインと、第２のＯＳとその制御の元で実行されるアプリケーションプログラムとのグループによって実現されるシステムブロック（仮想マシン）としての第２ドメインと、前記第１ドメインおよび第２ドメインの制御を行うドメインマネージャとされる。図１において、第１ドメインはＯＳ＆Ａｐｐ＿Ａとして表され、第２ドメインはＯＳ＆Ａｐｐ＿Ｂとして表され、ドメインマネージャはＤＭＮＭＮＧＲとして表される。
【００４０】
図１ではＣＰＵ２が備える汎用レジスタなどのレジスタセットや命令デコーダ等のハードウェア構成の明示的な図示は省略しており、発明の理解を溶解するために、第１ドメインＯＳ＆Ａｐｐ＿Ａ、第２ドメインＯＳ＆Ａｐｐ＿Ｂ、及びドメインマネージャＤＭＮＭＮＧＲの動作モードを設定するためのレジスタ構成、及びドメインマネージャＤＭＮＭＮＧＲによるアクセスを選択的に第１ドメインＯＳ＆Ａｐｐ＿Ａ又は第２ドメインＯＳ＆Ａｐｐ＿Ｂによるアクセスに擬制するためのレジスタ構成などを主体的に示してある。
【００４１】
ＣＰＵ２は、現在実行中のプログラムが動作しているモードを示すレジスタとして、ドメインＩＤレジスタＸＤＭＩＤレジスタとドメイン制御レジスタＳＲＸ．ＭＤＸとを有する。
【００４２】
ドメインＩＤレジスタＸＤＭＩＤは、どのオペレーティングシステムによるプログラムの実行かを指定するためのドメインＩＤデータＤＭＩＤが設定されるレジスタであり、ＤＭＩＤ＝０は第１ドメインＯＳ＆Ａｐｐ＿Ａを指定し、ＤＭＩＤ＝１は第２ドメインＯＳ＆Ａｐｐ＿Ｂを指定する。
【００４３】
ドメイン制御レジスタＳＲＸ．ＭＤＸは前記ドメインＩＤレジスタＸＤＭＩＤで指定されたドメインによる処理を実行するのか又はドメインマネージャＤＭＮＭＮＧＲがドメインＯＳ＆Ａｐｐ＿Ａ，ＯＳ＆Ａｐｐ＿Ｂの管理制御を行うのかを指定するモードデータＭＤが設定されるレジスタであり、ＭＤＸ＝０はドメインによる処理を指定し、ＭＤＸ＝１はドメインマネージャＤＭＮＭＮＧＲによる管理制御を指定する。ドメインによる処理はＯＳを実行する特権状態（Ｐｒｉｖ）又はＯＳで管理されるアプリケーションプログラムを実行するユーザ状態（Ｕｓｅｒ）に大別される。
【００４４】
したがって、レジスタＳＲＸ．ＭＤＸ＝１の場合は、ドメインマネージャＤＭＮＭＮＧＲが動作するモードとされ、ＳＲＸ．ＭＤＸ＝０の場合は、ドメインＯＳ＆Ａｐｐ＿Ａ又はＯＳ＆Ａｐｐ＿Ｂが動作するモードとされ、そのドメインが動作するかはレジスタＸＤＭＩＤの設定値によって決まる。図１において、ドメインＯＳ＆Ａｐｐ＿Ａは、レジスタＳＲＸ．ＭＤＸの値が０、且つレジスタＸＤＭＩＤの値が０で動作する。ドメインＯＳ＆Ａｐｐ＿Ｂは、レジスタＳＲＸ．ＭＤＸの値が０、且つレジスタＸＤＭＩＤの値が１で動作する。ドメインマネージャＤＭＮＭＮＧＲはＳＲＸ．ＭＤＸが１で動作する。
【００４５】
ＣＰＵ２によるプログラム処理は、ドメインＯＳ＆Ａｐｐ＿Ａが動作するモード、ドメインＯＳ＆Ａｐｐ＿Ｂが動作するモード、ドメインマネージャＤＭＮＭＮＧＲが動作するモードのいずれかのＣＰＵモードで行われ、プログラムの実行内容にしたがって、モードが切り替わりながら、時分割で逐次プログラムが実行される。すなわち、ドメインＯＳ＆Ａｐｐ＿Ａ、ドメインＯＳ＆Ａｐｐ＿Ｂ、ドメインマネージャＤＭＮＭＮＧＲは時分割で擬似並列的に実行される。
【００４６】
ドメインＯＳ＆Ａｐｐ＿Ａ、ドメインＯＳ＆Ａｐｐ＿Ｂ及びドメインマネージャＤＭＮＭＮＧＲの夫々が実行するプログラム及びデータはＭＥＭ４に格納されており、プログラムの実行に伴って順次、ＣＰＵ２からＭＥＭ４にアクセスが行われる。ＭＥＭ４におけるＯＳ＆Ａｐｐ＿Ａ＿Ｒｅｇｉｏｎ、ＯＳ＆Ａｐｐ＿Ｂ＿Ｒｅｇｉｏｎ、ＤＭＮＭＮＧＲ＿Ｒｅｇｉｏｎはそれぞれ、ドメインＯＳ＆Ａｐｐ＿Ａ、ドメインＯＳ＆Ａｐｐ＿Ｂ、ドメインマネージャＤＭＮＭＮＧＲのプログラム及びデータの格納に割り当てられた記憶領域である。
【００４７】
１１０、１１１は、ドメインＯＳ＆Ａｐｐ＿Ａのプログラム実行に伴って発行されるＭＥＭ４へのアクセスを示し、１１０はＭＥＭ４からＣＰＵ２への読み込み（リード）アクセス、１１１はＣＰＵ２からＭＥＭ４への書き込み（ライト）アクセスを示す。
【００４８】
１１２は、ＣＰＵ２とＭＥＭ４の間のアクセスに伴って、１１０と１１１のアクセスに付随してＭＭＵ３に与えられる、そのときのＣＰＵの動作モードの属性情報を示しており、ＭＭＵ３における記憶保護に利用される。この属性情報はＣＰＵ２の動作モードと一致し、ＤＭＩＤ＝０、ＭＤＸ＝０の情報を持ち、当該アクセスがドメインＯＳ＆Ａｐｐ＿Ａのプログラム実行によって生じたものであることを意味する。
【００４９】
ＭＭＵ３は、ＭＭＵ３の設定内容とアクセスに際して伝達された属性情報とに基づいて当該アクセスの正当性を判別し、必要なアドレス変換を行って、アクセスアアドレスをバス１０１からＭＥＭ４に供給する。このときのアクセス対象は記憶領域ＯＳ＆Ａｐｐ＿Ａ＿Ｒｅｇｉｏｎとされる。記憶保護の具体的な内容については詳細を後述する。
【００５０】
１２０、１２１はドメインＯＳ＆Ａｐｐ＿Ｂのプログラム実行に伴って発行されるＭＥＭ４へのリードアクセス、ライトアクセスを示す。１２２は、１２０と１２１のアクセスに付随してＭＭＵ３に与えられる、そのときのＣＰＵの動作モードの属性情報を示しており、ＭＭＵ３における記憶保護に利用される。この属性情報はＣＰＵの動作モードに一致され、ＤＭＩＤ＝１、ＭＤＸ＝０の情報を持ち、当該アクセスがドメインＯＳ＆Ａｐｐ＿Ｂのプログラム実行によって生じたものであることを意味する。ＭＭＵ３は、上述と同様にＭＭＵ３の設定内容とアクセスに際して伝達された属性情報とに基づいて当該アクセスの正当性を判別し、必要なアドレス変換を行って、アクセスアアドレスをバス１０１からＭＥＭ４に供給する。このときのアクセス対象は記憶領域ＯＳ＆Ａｐｐ＿Ｂ＿Ｒｅｇｉｏｎとされる。
【００５１】
１３０、１３１は、ドメインマネージャＤＭＮＭＮＧＲのプログラムの実行に伴って発行されるＭＥＭ４へのリードアクセス、ライトアクセスを示す。このとき、１３０のアクセスに付随してＭＭＵ３に与えられる属性情報は、１３２、１３３、１３４の何れかであり、１３１のアクセスに付随してＭＭＵ３に与えられる属性情報は、１３５、１３６、１３７の何れかである。
【００５２】
属性情報１３２，１３５は、ＣＰＵの動作モードがドメインマネージャＤＭＮＭＮＧＲのプログラムの実行モードであることに一致され、ＭＤＸ＝１（ＤＭＩＤは任意）の情報を持ち、当該アクセスがドメインマネージャＤＭＮＭＮＧＲのプログラムの実行によって生じたものであることを意味する。この属性情報を図１では“ＸＶＳ”と標記している。
【００５３】
属性情報１３３，１３６は、ＣＰＵの動作モードがドメインマネージャＤＭＮＭＮＧＲのプログラムの実行モードであることとは一致されず、ＤＭＩＤ＝１、ＭＤＸ＝０の情報を持ち、当該アクセスがドメインＯＳ＆Ａｐｐ＿Ｂのプログラム実行によって生じたものであることを擬制する。この属性情報を図１では“Ｕｓｅｒ／Ｐｒｉｖ  ＤＭＩＤ＝１”と標記している。
【００５４】
属性情報１３４，１３７は、ＣＰＵの動作モードがドメインマネージャＤＭＮＭＮＧＲのプログラムの実行モードであることとは一致されず、ＤＭＩＤ＝０、ＭＤＸ＝０の情報を持ち、当該アクセスがドメインＯＳ＆Ａｐｐ＿Ａのプログラム実行によって生じたものであることを擬制する。この属性情報を図１では“Ｕｓｅｒ／Ｐｒｉｖ  ＤＭＩＤ＝０”と標記している。
【００５５】
１３０，１３１のアクセスにどの属性情報が付随されるかはレジスタＸＲＤＭＩＤ，ＸＷＤＭＩＤ，ＳＲＸ．ＲＤＡＸ，ＳＲＸ．ＷＤＡＸの設定内容にしたがって決定される。それらレジスタＸＲＤＭＩＤ，ＸＷＤＭＩＤ，ＳＲＸ．ＲＤＡＸ，ＳＲＸ．ＷＤＡＸは、ドメイン制御レジスタＳＲＸ．ＭＤＸ及びドメインＩＤレジスタＸＤＭＩＤの設定状態によって決まるＣＰＵ２の動作モードの属性情報を、前記ドメイン制御レジスタＳＲＸ．ＭＤＸによって前記管理制御が指定されたときに変更するための属性変更データが設定される属性情報変更レジスタの一例とされる。図１において１４０は、ドメインＯＳ＆Ａｐｐ＿Ａ、ドメインＯＳ＆Ａｐｐ＿Ｂ、又はドメインマネージャＤＭＮＭＮＧＲによりＣＰＵモードに従って原始的に生成されたアクセスの属性情報を入力し、入力した原始的な属性情報（原始的属性情報）を、属性情報変更レジスタＸＲＤＭＩＤ，ＸＷＤＭＩＤ，ＳＲＸ．ＲＤＡＸ，ＳＲＸ．ＷＤＡＸの設定値に従って変更し、ＭＭＵ３によってドメインＯＳ＆Ａｐｐ＿Ａ又はドメインＯＳ＆Ａｐｐ＿Ｂによるアクセスと擬制され得る属性情報（擬制属性情報）に変更するロジックを明示的に図示したものである。このロジック１４０は、例えばＣＰＵ２の内部において命令のデコード結果や内部レジスタの値に従って制御信号を生成する制御ロジックの一部として実現されることになる。
【００５６】
ＭＭＵ３は、仮想アドレスと物理アドレスの変換対と共に当該仮想アドレスのアクセスが許容されるＣＰＵ２の動作モードの属性情報（原始的属性情報に対応する）を有するエントリ情報が書き換え可能に格納されるアドレス変換テーブルを有する。ＭＭＵ４はＣＰＵ２からのアクセス１１０，１１１，１２０，１２１，１３０，１３１に付随して入力される仮想アドレスを用いてエントリ情報を連想リードし、リードしたエントリ情報が保有する属性情報と、当該アクセスに付随して仮想アドレスと共に供給される属性情報とが一致する否かを判別し、一致するときは対応する物理アドレスをＭＥＭ４に出力し、不一致の場合には当該アクセスを中止して記憶保護違反の例外処理をＣＰＵ２に要求する。
【００５７】
ＭＭＵ３では、属性情報変更レジスタＸＲＤＭＩＤ，ＸＷＤＭＩＤ，ＳＲＸ．ＲＤＡＸ，ＳＲＸ．ＷＤＡＸの設定に従って、管理制御を行うドメインマネージャＤＭＮＭＮＧＲからのアクセスが、ドメインＯＳ＆Ａｐｐ＿Ａ又はドメインＯＳ＆Ａｐｐ＿Ｂによるアクセスとして擬制されるから、ドメインＯＳ＆Ａｐｐ＿Ａ又はドメインＯＳ＆Ａｐｐ＿Ｂによるアクセスの記憶保護を維持しつつそれに阻まれることなくドメインマネージャＤＭＮＭＮＧＲがドメインＯＳ＆Ａｐｐ＿Ａ又はドメインＯＳ＆Ａｐｐ＿Ｂと連携してアクセスを行うことが可能になる。以下その内容について更に詳述する。
【００５８】
《ＣＰＵモードとその属性情報の変更とに係るレジスタ構成》
図２にはレジスタＳＲＸ．ＭＤＸ、ＳＲＸ．ＲＤＡＸ、及びＳＲＸ．ＷＤＡＸの構成が例示される。前述の、レジスタＳＲＸ．ＭＤＸ、レジスタＳＲＸ．ＲＤＡＸ、レジスタＳＲＸ．ＷＤＡＸの夫々は、実際には、レジスタＳＲＸの特定のビットに割当てられる。
【００５９】
レジスタＳＲＸは、特に制限されないが、３２ビット長のレジスタであり、後述するレジスタＳＲＸに対するレジスタアクセス命令で読み書きできる。ビット３、ビット９、ビット８がそれぞれ、ＳＲＸ．ＭＤＸ、ＳＲＸ．ＲＤＡＸ、ＳＲＸ．ＷＤＡＸに対応する。それ以外のビットについては、常に０が読み出され、書き込みは無視される。
【００６０】
図３には前述のレジスタＳＲＸを操作する命令の説明が示される。命令コードＨ’４ｍ８９（ただしｍは１６進数で０からＦ、１０進数で０から１５）の命令“ＬＤＣ  Ｒｍ、ＳＲＸ”は、ＣＰＵ２の汎用レジスタｍ番（Ｒｍ）から、レジスタＳＲＸに値を転送する命令である。実行権限の“ＸＶＳ”とは、ドメインマネージャの動作モードで実行可能であることを示す。
【００６１】
命令コードＨ’４ｎ８８（ただしｎは１６進数で０からＦ、１０進数で０から１５）の命令“ＳＴＣ  ＳＲＸ、Ｒｎ”は、レジスタＳＲＸから、ＣＰＵ２の汎用レジスタｎ番（Ｒｎ）に値を転送する命令である。個の命令は上記と同じ実行権限を持つ。
【００６２】
また、命令コードＨ’０ｉＣＢ（ただしｉは１６進数で０からＦ、１０進数で０から１５）の命令“ＴＲＡＰＸ  ＃ｉｍｍ４”は、レジスタＳＲＸ．ＭＤＸに１をセットする命令である。実行権限の“Ｕｓｅｒ／Ｐｒｉｖ”とは、ドメインの動作モードで実行可能であることを示す。この命令はドメイン及びドメインマネージャの何れからも実行可能である。
【００６３】
ドメインマネージャのプログラムからは、命令“ＬＤＣ  Ｒｍ、ＳＲＸ”、および命令“ＳＴＣ  ＳＲＸ、Ｒｎ”命令を用いて、レジスタＳＲＸ．ＭＤＸ、ＳＲＸ．ＲＤＡＸ、ＳＲＸ．ＷＤＡＸの値を操作することが可能である。
【００６４】
また、各々のドメインのプログラムからは、命令“ＴＲＡＰＸ  ＃ｉｍｍ４”を用いてレジスタＳＲＸ．ＭＤＸを１とすることが可能である。これはすなわち、プログラムの実行をドメインのプログラムからドメインマネージャのプログラムに切り替えることを意味する。
【００６５】
図４にはレジスタＸＤＭＩＤ、ＸＲＤＭＩＤ、ＸＷＤＭＩＤの構成が例示される。これらレジスタは、３２ビット長のメモリマップされたレジスタであり、それぞれ、１６進数でＨ’ＦＦ０００Ｃ０４、Ｈ’ＦＦ０００Ｃ０８、Ｈ’ＦＦ０００Ｃ０Ｃのアドレスが割当てられており、ＣＰＵ２からＭＥＭ４へのリード、ライトを行う命令でアクセスすることができる。ただし、これらレジスタへのアクセスの場合には、ＣＰＵ２からＭＥＭ４への実際のアクセスが発行されるわけではない。
【００６６】
アドレスＨ’ＦＦ０００Ｃ０４のレジスタのビット０がＸＤＭＩＤに対応する。また、アドレスＨ’ＦＦ０００Ｃ０８、Ｈ’ＦＦ０００Ｃ０Ｃのレジスタのビット０がそれぞれ、ＸＲＤＭＩＤ、ＸＷＤＭＩＤに対応する。それ以外のビットについては、常に０が読み出され、書き込みは無視される。
【００６７】
《レジスタ設定に応ずるＣＰＵモードとアクセスモード》
図５には前述のレジスタＳＲＸ．ＭＤＸ、ＳＲＸ．ＲＤＡＸ、ＳＲＸ．ＷＤＡＸ、ＸＤＭＩＤ、ＸＲＤＭＩＤ、及びＸＷＤＭＩＤの設定状態と、それに応ずるＣＰＵモード及びアクセスモードとの関係が整理して示される。ＣＰＵモードとはＣＰＵの動作モードであり、アクセスモードはアクセス正当性を判別するときＭＭＵ３から見たＣＰＵの動作モードである。
【００６８】
５０１の行は、レジスタＳＲＸ．ＭＤＸが０の場合を示している。この場合は、各々のドメインＯＳ＆Ａｐｐ＿Ａ、ＯＳ＆Ａｐｐ＿Ｂの動作モードであり、ＣＰＵモード及びアクセスモード共に、レジスタＸＤＭＩＤに示されるドメインのモードとなる。
【００６９】
５０２の行は、レジスタＳＲＸ．ＭＤＸが１、レジスタＳＲＸ．ＲＤＡＸが１、レジスタＳＲＸ．ＷＤＡＸが１の場合を示している。この場合は、ドメインマネージャの動作モードであり、ＣＰＵモード及びアクセスモード共に、ドメインマネージャＤＭＮＭＮＧＲのモードとなる。このモードは、前述の図１の、ＤＭＮＭＮＧＲのプログラムの実行に伴って発行されるＭＥＭ４へのリードアクセス１３０、ライトアクセス１３１について、それぞれ属性情報が１３２、１３５であるアクセスモードに対応している。
【００７０】
５０３の行は、レジスタＳＲＸ．ＭＤＸが１、レジスタＳＲＸ．ＲＤＡＸが０、レジスタＳＲＸ．ＷＤＡＸが１の場合を示している。この場合は、ＣＰＵモードはドメインマネージャの動作モードであるが、アクセスモードは、リードアクセス時は、レジスタＸＲＤＭＩＤに示されるドメインからのアクセスと擬制される。ライトアクセス時は、ドメインマネージャＤＭＮＭＮＧＲからのアクセスとなる。
【００７１】
前述の図１との対応では、リードアクセス１３０については、レジスタＸＲＤＭＩＤの値にしたがって、属性情報が１３４（レジスタＸＲＤＭＩＤの値が０の場合）、あるいは１３３（レジスタＸＲＤＭＩＤの値が１の場合）であることに対応しており、ライトアクセス１３１については、属性情報が１３５であることに対応している。
【００７２】
５０４の行は、レジスタＳＲＸ．ＭＤＸが１、レジスタＳＲＸ．ＲＤＡＸが１、レジスタＳＲＸ．ＷＤＡＸが０の場合を示している。この場合は、ＣＰＵモードはドメインマネージャの動作モードであるが、アクセスモードは、ライトアクセス時は、レジスタＸＷＤＭＩＤに示されるドメインからのアクセスと擬制される。リードアクセス時は、ドメインマネージャＤＭＮＭＮＧＲからのアクセスとなる。
【００７３】
前述の図１との対応では、リードアクセス１３０については、属性情報が１３２であることに対応しており、ライトアクセス１３１については、レジスタＸＷＤＭＩＤの値にしたがって、属性情報が１３７（ＸＷＤＭＩＤレジスタの値が０の場合）、あるいは属性情報が１３６（ＸＷＤＭＩＤレジスタの値が１の場合）であることに対応している。
【００７４】
５０５の行は、レジスタＳＲＸ．ＭＤＸが１、レジスタＳＲＸ．ＲＤＡＸが０、レジスタＳＲＸ．ＷＤＡＸが０の場合を示している。この場合は、ＣＰＵモードはドメインマネージャの動作モードであるが、アクセスモードは、リードアクセス時は、レジスタＸＲＤＭＩＤに示されるドメインからのアクセスと擬制され、ライトアクセス時は、レジスタＸＷＤＭＩＤに示されるドメインからのアクセスと擬制される。
【００７５】
前述の図１との対応では、リードアクセス１３０については、レジスタＸＲＤＭＩＤの値にしたがって、属性情報が１３４（ＸＲＤＭＩＤレジスタの値が０の場合）、あるいは１３３（ＸＲＤＭＩＤレジスタの値が１の場合）であることに対応しており、ライトアクセス１３１については、レジスタＸＷＤＭＩＤの値にしたがって、属性情報が１３７（ＸＷＤＭＩＤレジスタの値が０の場合）、あるいは１３６（ＸＷＤＭＩＤレジスタの値が１の場合）であることに対応している。
【００７６】
ここで、特に図５の５０３から５０５の行に示した設定でのＣＰＵモード及びアクセスモードについて注目すると、これらの設定を用いることはすなわち、ドメインマネージャＤＭＮＭＮＧＲのプログラムから、ドメインで動作するプログラムが発したかのようにアクセスを発することが出来るということに他ならない。ドメインマネージャＤＭＮＭＮＧＲのプログラムは、ドメイン間でのデータの受け渡しの際に、適宜これらのＣＰＵモード、アクセスモード設定を利用する。
【００７７】
これにより、例えばドメインマネージャＤＭＮＭＮＧＲからのリードアクセスを第1のドメインＯＳ＆Ａｐｐ＿Ａからのリードアクセスと擬制し、ドメインマネージャＤＭＮＭＮＧＲからのライトアクセスを第２のドメインＯＳ＆Ａｐｐ＿Ｂからのライトアクセスと擬制するように属性情報を変更することにより、ドメインマネージャＤＭＮＭＮＧＲは、第1のドメインＯＳ＆Ａｐｐ＿Ａによる記憶保護が行われているメモリ領域ＯＳ＆Ａｐｐ＿Ａ＿Ｒｅｇｉｏｎからデータをリードし、リードしたデータを、第２のドメインＯＳ＆Ａｐｐ＿Ｂによる記憶保護が行われているメモリ領域ＯＳ＆Ａｐｐ＿Ｂ＿Ｒｅｇｉｏｎにライトすることができる。
【００７８】
《ＭＭＵのアドレス変換テーブル》
図６にはＭＭＵ３におけるアドレス変換規則が設定される、アドレス変換テーブルの構成が例示される。アドレス変換テーブルは、特に制限されないが、ＸＤＭＩＤレジスタと同様、メモリマップされたレジスタであり、通常のリード、ライトを行う命令でアクセスできる。アドレスＨ’Ｆ７９０００００、Ｈ’Ｆ６１０００００、Ｈ’Ｆ７１０００００のレジスタの組み合わせで一組のアドレス変換設定が可能であり、これら一組をエントリー（Ｅｎｔｒｙ）と呼ぶ。
【００７９】
アドレスＨ’Ｆ６１０００００のレジスタのビット３１からビット２４の部分、ＶＰＮ［３１：２４］は、ＣＰＵ２が発した仮想アドレス、すなわちバス１００のアドレスのビット３１からビット２４の部分に対応する。
【００８０】
アドレスＨ’Ｆ７９０００００のレジスタのビット１、０のＭＤＸ、ＤＭＩＤはＣＰＵ２が発したアクセスに付随する。そのときのＣＰＵの動作モード（ＣＰＵモード）に対応される。
【００８１】
アドレスＨ’Ｆ７１０００００のレジスタのビット３１からビット２４の部分、ＰＰＮ［３１：２４］は、ＭＭＵ３からＭＥＭ４へ与えられる物理アドレス、すなわちバス１０１のアドレスのビット３１からビット２４の部分に対応する。
【００８２】
アドレスＨ’Ｆ６１０００００、Ｈ’Ｆ７１０００００のレジスタのビット２３からビット０の部分、アドレスＨ’Ｆ７９０００００のビット３１からビット２の部分については、常に０が読み出され、書き込みは無視される。
【００８３】
アドレスＨ’Ｆ７９００１００、Ｈ’Ｆ６１００１００、Ｈ’Ｆ７１００１００の組み合わせによっても一組のＥｎｔｒｙが構成される。同様に、アドレスＨ’Ｆ７９００Ｆ００、Ｈ’Ｆ６１００Ｆ００、Ｈ’Ｆ７１００Ｆ００まで、合計で１６組のエントリＥｎｔｒｙ＿１〜Ｅｎｔｒｙ＿１６が構成される。
【００８４】
ＭＭＵ３によるアドレス変換は、バス１００によってＣＰＵ２から通知されたアドレスのビット３１からビット２４の仮想アドレスおよびアクセスモードとしての属性情報を、１６組全てのエントリのＶＰＮ［３１：２４］、ＭＤＸ、ＤＭＩＤと比較し、合致するエントリがある場合、バス１００で通知されたアドレスのビット３１からビット２４の部分を、合致するエントリのＰＰＮ［３１：２４］に置き換えて、バス１０１に出力する。仮想アドレスに合致するＶＰＮ［３１：２４］を持つエントリがなければＭＭＵ３はアドレス変換ミスの例外処理をＣＰＵ２に要求して、該当するエントリを追加させる。仮想アドレスに合致するＶＰＮ［３１：２４］を持つエントリがあっても、そのエントリのＭＤＸ、ＤＭＩＤがアクセスモードの属性情報に不一致の場合にはＭＭＵ３は記憶保護違反の例外処理をＣＰＵ２に要求してアクセスを中断する。
【００８５】
ＭＭＵ３のアドレス変換テーブルのエントリは、例えば、各々のドメインＯＳ＆Ａｐｐ＿Ａ、ＯＳ＆Ａｐｐ＿Ｂ、及びドメインマネージャＤＭＮＭＮＧＲが仮想記憶を利用するにあたって、それぞれのプログラムが利用するエントリを分けなければならない。エントリのＭＤＸ、ＤＭＩＤは、エントリを分配するために存在する。
【００８６】
ここで、例えばドメインＯＳ＆Ａｐｐ＿Ａが、エントリの１から４を利用して動作している場合を想定する。エントリの１から４のＶＰＮ［３１：２４］、および、ＰＰＮ［３１：２４］は、ドメインＯＳ＆Ａｐｐ＿Ａのプログラムから設定が書き込まれる。特に、ドメインＯＳ＆Ａｐｐ＿Ａの管理する仮想アドレス空間は、エントリの１から４の４組の変換設定だけではなく、合致しないアクセスが発せられた際に、適宜、設定の内容を入れ替えることによって動作するので、エントリの１から４の４組の変換設定は、ドメインＯＳ＆Ａｐｐ＿Ａのプログラムによって動的に変更されることになる。
【００８７】
このとき、ドメインマネージャＤＭＮＭＮＧＲがドメインＯＳ＆Ａｐｐ＿Ａのための主記憶領域ＯＳ＆Ａｐｐ＿Ａ＿Ｒｅｇｉｏｎをアクセスする場合を考える。エントリの１から４の設定はドメインＯＳ＆Ａｐｐ＿Ａのプログラムが随時設定を書き込んでおり、必ずしもドメインマネージャＤＭＮＭＮＧＲがアクセスしようとしている主記憶領域ＯＳ＆Ａｐｐ＿Ａ＿Ｒｅｇｉｏｎのへのアクセスが可能な状態になっているとは限らない。
【００８８】
したがって、ドメインマネージャＤＭＮＭＮＧＲがドメインＯＳ＆Ａｐｐ＿Ａの主記憶領域ＯＳ＆Ａｐｐ＿Ａ＿Ｒｅｇｉｏｎにアクセスを行う場合、ドメインＯＳ＆Ａｐｐ＿Ａのプログラムにあるエントリの１から４の変換設定ルーチンを利用するか、それを利用せず、ドメインＯＳ＆Ａｐｐ＿Ａの管理する仮想アドレス空間全体の管理データから、ドメインマネージャＤＭＮＭＮＧＲが独自に変換設定をエントリの１から４以外の部分を用いて行う必要がある。
【００８９】
後者の方法の場合、ドメインマネージャＤＭＮＭＮＧＲのプログラムが複雑になることと、ＭＭＵ３のアドレス変換テーブルに、より多くのエントリが必要になるため、前者の方法、すなわち、ドメインＯＳ＆Ａｐｐ＿Ａの変換設定ルーチンを利用するのが望ましい。
【００９０】
変換設定ルーチンの起動は、ＭＭＵ３においてアドレス変換テーブルに合致するエントリがないことであるから、ドメインＯＳ＆Ａｐｐ＿Ａの主記憶領域ＯＳ＆Ａｐｐ＿Ａ  ＲｅｇｉｏｎにドメインマネージャＤＭＮＭＮＧＲからアクセスを行う場合であっても、上述の如く、ドメインＯＳ＆Ａｐｐ＿Ａからアクセスを行ったかのようにアクセスモード（属性情報が）が擬制されるので、ドメインＯＳ＆Ａｐｐ＿ＡのＯＳを流用して前述のアドレス変換ミス例外処理をＣＰＵ２に実行させることができる。
【００９１】
《ドメイン間のデータ転送》
図７には本発明のデータプロセッサ１においてＣＰＵモードがＸＶＳ（ＭＤＸ＝１）のときにドメインマネージャの制御によってドメイン間のデータ転送動作を行うときの動作フローチャートが例示される。ここでは前記ドメインドメインＯＳ＆Ａｐｐ＿Ａ及びＯＳ＆Ａｐｐ＿Ｂの内の何れか一方をデータ転送元ドメインとし、他方を転送先のドメインとする。
【００９２】
図７には図示されていないが、図７の動作の前提としてＣＰＵモードはＸＶＳ（ＭＤＸ＝１）とされている。データ転送動作は、２０１から２０４の前処理のステップと、転送が終了するまで繰り返される２０５から２０７のステップによって行われる。２１０から２１５の処理ステップはステップ２０５の処理でアドレス変換ミスが発生したときに例外処理を行なう場合が示される。同様に、２２０から２２５の処理ステップはステップ２０６の処理でアドレス変換ミスが発生したときに例外処理を行なう場合が示される。
【００９３】
ドメインマネージャＤＭＮＭＮＧＲは、ステップ２０１で、データ転送元ドメインＩＤをレジスタＸＲＤＭＩＤに設定し、ステップ２０２でデータ転送先ドメインＩＤをレジスタＸＷＤＭＩＤに設定し、ステップ２０３でレジスタＳＲＸ．ＲＤＡＸに０を設定し、ステップ２０３でレジスタＳＲＸ．ＲＤＡＸに０を設定する。これによる図５の５０５で説明したように、ＣＰＵモードがＸＶＳにされているとき、ドメインマネージャＤＭＮＭＮＧＲからのリードアクセスをデータ転送元ドメインからのリードアクセスと擬制し、ドメインマネージャＤＭＮＭＮＧＲからのライトアクセスをデータ転送先ドメインからのライトアクセスと擬制するようにアクセスモードが設定される。
【００９４】
ステップ２０５で、データ転送元のドメインのデータをＣＰＵ２の汎用レジスタに読み込むが、ＳＲＸ．ＲＤＡＸ、ＸＲＤＭＩＤレジスタの機能により、動作モードを切り替えることなく、アクセスモードがデータ転送元ドメインとされることによって、ＭＭＵ３でのエントリの合致判定、即ち、記憶保護のための属性情報の一致判別の対象とされる属性情報が、データ転送元ドメインからのアクセスと擬制される。
【００９５】
また、ステップ２０６で、前のステップ２０５でＣＰＵ２の汎用レジスタに読み込んでいたデータを転送先ドメインに書き込むが、ＳＲＸ．ＷＤＡＸ、ＸＷＤＭＩＤレジスタの機能により、動作モードを切り替えることなく、アクセスモードがデータ転送先ドメインとされることによって、ＭＭＵ３でのエントリの合致判定、即ち、記憶保護のための属性情報の一致判別の対象とされる属性情報が、データ転送先ドメインからのアクセスと擬制される。
【００９６】
２０７のステップで、転送すべきデータが全て転送されたかを判定し、まだ転送すべきデータが残っている場合には、ステップ２０５に戻る。これを繰り返すことによって、データ転送が完了される。
【００９７】
ステップ２０５において前記ＭＭＵ３でのエントリの合致判定のためのエントリがない場合には２１０の処理経路に分岐し、データ転送元ドメインＩＤをＸＤＭＩＤに設定すると共に（ステップ２１１）、レジスタＳＲＸ．ＭＤＸを０に設定して（ステップ２１２）、ＣＰＵモードを転送元ドメインのモードに設定変更し、転送元ドメインのＯＳによる処理を可能とする。そして、アドレス変換ミス例外要求によってデータ転送元ドメインのＯＳのアドレス変換ミスハンドラの処理に分岐させ（ステップ２１３）。これによって、アドレス変換ミスに係るアクセス対象仮想アドレスに対応するアドレス変換エントリがＭＭＵ３にセットされる（ステップ２１４）。この後、再びレジスタＳＲＸ．ＭＤＸを１にして（ステップ２１５）ＣＰＵモードをＸＶＳ（ＭＤＸ＝１）に戻し、中断したステップ２０５の処理が継続可能にされる。
【００９８】
ステップ２０６において前記ＭＭＵ３でのエントリの合致判定のためのエントリがない場合には２２０の処理経路に分岐し、データ転送先ドメインＩＤをＸＤＭＩＤに設定すると共に（ステップ２２１）、レジスタＳＲＸ．ＭＤＸを０に設定して（ステップ２２２）、ＣＰＵモードを転送先ドメインのモードに設定変更し、転送先ドメインのＯＳによる処理を可能とする。そして、アドレス変換ミス例外要求によってデータ転送先ドメインのＯＳのアドレス変換ミスハンドラの処理に分岐させ（ステップ２２３）。これによって、アドレス変換ミスに係るアクセス対象仮想アドレスに対応するアドレス変換エントリがＭＭＵ３にセットされる（ステップ２２４）。この後、再びレジスタＳＲＸ．ＭＤＸを１にして（ステップ２２５）ＣＰＵモードをＸＶＳ（ＭＤＸ＝１）に戻し、中断したステップ２０６の処理が継続可能にされる。
【００９９】
これにより、ドメインマネージャＤＭＮＭＮＧＲは、転送元のドメイン(例えばＯＳ＆Ａｐｐ＿Ａ)による記憶保護が行われているメモリ領域（例えばＯＳ＆Ａｐｐ＿Ａ＿Ｒｅｇｉｏｎ）からデータをリードし、リードしたデータを、転送先のドメイン（例えばＯＳ＆Ａｐｐ＿Ｂ）による記憶保護が行われているメモリ領域（例えばＯＳ＆Ａｐｐ＿Ｂ＿Ｒｅｇｉｏｎ）にライトすることができる。
【０１００】
図８にはレジスタＳＲＸ．ＲＤＡＸ，ＳＲＸ．ＷＤＡＸ，ＸＲＤＭＩＤ，ＸＷＤＭＩＤを採用せずＣＰＵモードとアクセスモードが必ず一致する場合におけるドメイン間のデータ転送動作を比較例として示す。
【０１０１】
処理は、３０１から３０９の処理ステップを、転送が終了するまで繰り返すことによって行われる。３０１から３０３のステップは、動作モードをドメインマネージャからデータ転送元ドメインに切り替えて、ＣＰＵの汎用レジスタにデータを読み込む処理である。データ転送元ドメインに動作モードを切り替える必要があるのは、ＭＭＵ３でのエントリ合致判定が、データ転送元ドメインからのアクセスとして行われる必要があるからである。
【０１０２】
３０４のステップで、処理をドメインマネージャに戻す。この時、ＳＲＸ．ＭＤＸはデータ転送元ドメインのプログラムから直接書き換えできないため、前述のＴＲＡＰＸ  ＃ｉｍｍ４命令を利用して、動作モードの切り替えを行う必要がある。
【０１０３】
３０５から３０７のステップは、動作モードをドメインマネージャからデータ転送先ドメインに切り替えて、前のステップ３０３でＣＰＵの汎用レジスタに読み込んでいたデータを書き込む処理である。この場合も、ＭＭＵ３でのエントリ合致判定の都合上、データ転送先ドメインの動作モードでなければならない。また、３０８のステップで、処理をドメインマネージャに戻す。
【０１０４】
３０９のステップで、転送すべきデータが全て転送されたかを判定し、まだ転送すべきデータが残っている場合には、ステップ３０１に戻る。これを繰り返すことによって、データ転送元ドメインから、データ転送先ドメインへのデータ転送が行われる。
【０１０５】
ステップ３０３において前記ＭＭＵ３でのエントリの合致判定のためのエントリがない場合には３１０の処理経路に分岐し、アドレス変換ミス例外要求によってデータ転送元ドメインのＯＳのアドレス変換ミスハンドラの処理に分岐させ（ステップ３１１）。これによって、アドレス変換ミスに係るアクセス対象仮想アドレスに対応するアドレス変換エントリがＭＭＵ３にセットされる（ステップ３１２）。この後、中断したステップ３０３の処理が継続可能にされる。
【０１０６】
ステップ３０７において前記ＭＭＵ３でのエントリの合致判定のためのエントリがない場合には３２０の処理経路に分岐し、アドレス変換ミス例外要求によってデータ転送先ドメインのＯＳのアドレス変換ミスハンドラの処理に分岐させ（ステップ３２１）。これによって、アドレス変換ミスに係るアクセス対象仮想アドレスに対応するアドレス変換エントリがＭＭＵ３にセットされる（ステップ３２２）。この後、中断したステップ３０７の処理が継続可能にされる。
【０１０７】
本発明による図７と比較例に係る図８とを比べると、繰り返すステップ数が前者の場合は２０５から２０７の３ステップのみであり、また、繰り返しの処理中にモードの切り替えなどが無いため、図８の後者の場合に比べて、高速にデータ転送を行うことが可能である。アドレス変換ミスを生じたときのリカバリのための処理ステップ数は図７の前者の場合が５ステップであるのに対し図８の後者は２ステップで少ないが、経路２１０，２２０の処理及び経路３１０，３２０の処理はアドレス変換ミスを生じた場合にだけ発生されるものであり、転送元から転送先への転送に際して毎回生ずるものではないから、アドレス変換ミスによる処理を考慮しても、やはり、図７の方が図８に比べて高速にデータ転送を行うことができる。
【０１０８】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１０９】
例えば、本発明はマルチＣＰＵのデータプロセッサにも適用することができる。また、アドレス変換テーブルを連想記憶構造のＴＬＢ（Translation Look-aside Buffer）で構成することも可能である。データプロセッサは１チップに限定されずマルチチップであってもよい。マルチチップの場合には当該複数のチップを１個のパッケージに搭載したシステム・イン・パッケージ形態のモジュールデバイスとして実現することも可能である。
【符号の説明】
【０１１０】
２…ＣＰＵ
３…記憶保護部（ＭＭＵ）
４…主記憶（ＭＥＭ）
ＸＤＭＩＤ…ドメインＩＤレジスタ
ＳＲＸ．ＭＤＸ…ドメイン制御レジスタ
ＳＲＸ．ＲＤＡＸ、ＳＲＸ．ＷＤＡＸ、ＸＲＤＭＩＤ、ＸＷＤＭＩＤ…属性情報変更レジスタ
第１ドメイン…ＯＳ＆Ａｐｐ＿Ａ
第２ドメイン…ＯＳ＆Ａｐｐ＿Ｂ
ドメインマネージャ…ＤＭＮＭＮＧＲ
ＯＳ＆Ａｐｐ＿Ａ＿Ｒｅｇｉｏｎ…第１ドメイン用記憶領域
ＯＳ＆Ａｐｐ＿Ｂ＿Ｒｅｇｉｏｎ…第２ドメイン用記憶領域
ＤＭＮＭＮＧＲ＿Ｒｅｇｉｏｎ…ドメインマネージャ用主記憶領域
１１２…ＯＳ＆Ａｐｐ＿Ａによるアクセスの属性情報
１２２…ＯＳ＆Ａｐｐ＿Ｂによるアクセスの属性情報
１３２、１３５…ドメインマネージャによるアクセスの属性情報
１３３、１３６…ドメインマネージャによるＯＳ＆Ａｐｐ＿Ｂと擬制されるアクセスの属性情報
１３４、１３７…ドメインマネージャによるＯＳ＆Ａｐｐ＿Ａと擬制されるアクセスの属性情報
Ｅｎｔｒｙ＿１〜Ｅｎｔｒｙ＿１６  アドレス変換テーブルのエントリ
【図１】
0005491102.tif 000002
【図２】
0005491102.tif 000003
【図３】
0005491102.tif 000004
【図４】
0005491102.tif 000005
【図５】
0005491102.tif 000006
【図６】
0005491102.tif 000007
【図７】
0005491102.tif 000008
【図８】
0005491102.tif 000009