(57)【要約】  複数ＯＳを搭載した場合、他のＯＳに影響を与えないように、効率よくメモリ資源を用いることが望まれる。また、ＯＳが異なるといっても、一つのシステム上に搭載されているため、ＯＳ間での通信が必要となる。この場合、他のＯＳに影響を与えないようにデータ通信を行うことが必要となる。そこで、情報処理装置を、第１中央処理装置、第１オペレーティングシステム、及び、メモリの領域のうち一部の第１領域を第１ドメインとして割り当て、第２中央処理装置、第２オペレーティングシステム及びメモリの領域のうち一部の第２領域を第２ドメインとして割り当て、一方のドメインが他のドメインに割当てられた領域にアクセスしないように制御するファームウェアと、第１ドメイン及び第２ドメイン間でデータの通信が必要な場合に、当該通信を制御するミドルウェアとを有する構成とする。
2010097925.tif 000002
【特許請求の範囲】
【請求項１】
第１中央処理装置と、第２中央処理装置と、前記第１中央処理装置にて実行される第１オペレーティングシステムと、前記第２中央処理装置にて実行される第２オペレーティングシステムと、前記第１中央処理装置及び前記第２中央処理装置にアクセスされるメモリとを有する情報処理装置であって、
前記情報処理装置を、前記第１中央処理装置、前記第１オペレーティングシステム、及び、前記メモリの領域のうち一部の第１領域を第１ドメインとして割り当て、前記第２中央処理装置、前記第２オペレーティングシステム及び前記メモリの領域のうち一部の第２領域を第２ドメインとして割り当て、一方のドメインが他のドメインに割当てられた領域にアクセスしないように制御するファームウェアと、
前記第１ドメイン及び前記第２ドメイン間でデータの通信が必要な場合に、当該通信を制御するミドルウェアとを有することを特徴とする情報処理装置。
【請求項２】
請求項１において、
前記情報処理装置は、前記ファームウェアからの設定に基づいて、一方のドメインが他方のドメインに割当てられた領域にアクセスする際に、そのアクセスを遮断するアクセス制御モジュールを更に具備することを特徴とする情報処理装置。
【請求項３】
請求項２において、
前記ファームウェアは、前記第１領域の先頭アドレス、前記第１領域のサイズ、及び、前記第１領域の割り当てが前記第１ドメインであることを対にして前記アクセス制御モジュールに設定し、前記第２領域の先頭アドレス、前記第２領域のサイズ、及び、前記第２領域の割り当てが前記第２ドメインであることを対にして前記アクセス制御モジュールに設定することを特徴とする情報処理装置。
【請求項４】
請求項１において、
前記第１オペレーティングシステムのコードと前記第２オペレーティングシステムのコードが共有できる場合において、前記メモリは、前記メモリの領域の一部の第３領域に、前記共有できるコードを保持し、前記ファームウェアは、前記第３領域に対し、前記第１ドメイン及び前記第２ドメインからリードアクセスを許可し、ライトアクセスを許可しないように制御することを特徴とする情報処理装置。
【請求項５】
請求項１において、
前記メモリは、前記第１ドメイン及び前記第２ドメイン間でデータの通信を行う場合に、通信用データを格納する第４領域を含み、
前記ファームウェアは、前記第１及び第２ドメインから通信の要求がない場合には、前記第４領域を前記第１ドメイン及び前記第２ドメインからアクセスできないように制御し、
前記ミドルウェアは、前記第１ドメインが前記第２ドメインにデータの通信を行う旨の要求を受けた場合に、前記第１ドメインに前記第４領域へのアクセスを許可し、前記第２ドメインに前記第４領域へのアクセスを許可しないように前記ファームウェアを制御した状態で、前記第１ドメインに前記第４領域へのアクセスを許可することを特徴とする情報処理装置。
【請求項６】
請求項１において、
前記メモリは、前記第１ドメインが前記第２ドメインにデータの通信を行う場合に、通信用のデータを書き込む第５領域と、前記第２ドメインが前記第１ドメインにデータの通信を行う場合に、通信用のデータを書き込む第６領域とを有し、
前記ファームウェアは、前記第５領域に対して前記第１ドメインがアクセス可能で、前記第２ドメインはアクセス不可能になるように制御し、前記第６領域に対して前記第２ドメインがアクセス可能で、前記第１ドメインがアクセス不可能となるように制御し、
前記ミドルウェアは、前記第１ドメインが前記第２ドメインにデータの通信を行う旨の要求を受けた場合に、前記第１ドメインが前記第５領域に通信用のデータを書き込んだ後、前記第５領域及び前記第６領域が前記第１及び前記第２ドメインからアクセス不可能となるように前記ファームウェアに指示し、その後、前記第５領域から前記第６領域へのデータを転送することを特徴とする情報処理装置。
【請求項７】
請求項１において、
前記第１ドメインは、仮想メモリ空間から前記メモリの領域を含む物理メモリ空間へのアドレス変換を行う第１メモリマネージメントユニットを有し、
前記第２ドメインは、仮想メモリ空間から前記メモリの領域を含む物理メモリ空間へのアドレス変換を行う第２メモリマネージメントユニットを有し、
前記ファームウェアは、前記物理メモリ空間に対して、アクセス制御を行うことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数個の中央演算装置と内蔵メモリを備え、或いは異なるオペレーティングシステムの管理下でプログラムの実行が可能なデータプロセッサに関し、例えば一個の半導体チップに形成されたマルチＣＰＵ（中央演算処理装置）を持つ半導体集積回路化されたマイクロプロセッサに適用して有効な技術に関する。
【背景技術】
【０００２】
近年、マイクロプロセッサにおける集積化が進み、単一の中央演算処理装置を搭載したマイクロプロセッサを複数搭載したシステムが集積化され、複数の中央演算処理装置を搭載したマイクロプロセッサが開発されている。複数の中央演算処理装置を搭載したマイクロプロセッサにおいては、主にＬＳＩの面積に対する端子数の制約によって、各中央演算処理装置が利用するメモリや入出力装置については、マイクロプロセッサ内で共用化されることが一般的であり、主にマイクロプロセッサ内のバスやコントローラの設計によって実現されている。特に、メモリを共用した場合に例えば、制御ソフトウェアのバグなどにより不正アクセスが発生し、メモリ領域のアクセスの衝突が起こると画像データが正しく処理されないといった問題が発生するので、メモリ領域のアクセスの衝突を回避することが重要になる。回路量のオーバヘッドが少ない不正アドレスへのアクセスの見地、遮断回路を提供する技術が、特許文献１で示されている。【０００３】
一方、複数の中央演算処理装置を搭載したマイクロプロセッサ上でプログラムを動作させる場合、基本システムであるオペレーティングシステム（ＯＳ）も複数になり、それらのＯＳ間でのデータのやりとりや、別のＯＳ上にある機能を複数のＣＰＵやＯＳの存在を意識させないで実行する方式が必要になってくる。このような状況において、上記のようなマルチプロセッサシステム上でＯＳとアプリケーションの実行を制御するシステムとしては、例えば、特許文献２に開示されるように、マルチプロセッサ上でシングルプロセッサ向けＯＳと既存のアプリケーションを動作させ並列処理を実現できるようにする従来技術がある。このように物理的なＣＰＵなどシステム構成資源とＯＳやアプリケーションとの結びつきを自由にする機構は仮想化と呼ばれ、サーバなどの分野で広く用いられるようになってきている。
【特許文献１】特開２００４−３３４４１０号公報
【特許文献２】特開２００３−３４５６１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
単一チップ上に多数のＣＰＵやＩＰが集積されたマルチコアシステムでは、複雑化した機能が互いに関連し、同時に動作するため、一つの物理的なデバイスを複数のコアおよびそれらコア上で動作するＯＳで共有する状況が起こる。この共有において、共有の主体となるＯＳは、時分割で動作していて一時期には一つのＯＳだけがアクティブ状態であるということではなく、それぞれが常にアクティブで並列に動作してＩ／Ｏデバイスを使用するという状況である。そのような場合、実デバイスを制御するための制御レジスタ群は一つであるので、何らかの形でそれらに対するアクセスを調停し、１セットの制御レジスタ群を仮想的に複数に見せて、複数のＯＳからのアクセスを処理する必要がある。上記のように、マルチコア環境においては、複数のＣＰＵが同時に稼動し、そのそれぞれが別のＯＳ下にあるということが一般的である。一方、Ｉ／Ｏ装置やアクセラレータＩＰなどのデバイスは個数が限られており、それら複数のＣＰＵやＯＳで共有を行いたいという要求がある。そのような共有の状況としては、例えばハードディスクを装備したカーナビゲーションシステムにおいて、一つのハードディスク装置を地図データの格納と音楽データの格納に用い、それらを別々のプロセッサで動作する経路探索と音楽再生で同時にアクセスしたい場合などがある。【０００５】
特に、複数ＯＳを搭載した場合、一つのＯＳが管理するハードウェア資源は、そのＯＳ以外からアクセスされないことを前提として作られており、そのＯＳに割り当てられた内蔵メモリの一部領域もしくは外部メモリの一部領域に対する、そのＯＳ以外からアクセス、特にデータが書き換えられる様な想定外の事象は、そのＯＳ並びにその上で実行するソフトウェアモジュールに対して異常動作を引き起こす要因となる。従って、内蔵メモリまたは外部メモリにおいては、複数のＯＳで共有しないように分離して管理するのが望ましい。しかしながら、内蔵メモリや外部メモリは、コスト等の観点から無限に搭載することはできない。従って、他のＯＳに影響を与えないように、効率よくメモリ資源を用いることが望まれる。また、ＯＳが異なるといっても、一つのシステム上に搭載されているため、ＯＳ間での通信が必要となる。この場合、他のＯＳに影響を与えないようにデータ通信を行うことが必要となる。
【課題を解決するための手段】
【０００６】
上記の課題に対して本発明においては、第１中央処理装置と、第２中央処理装置と、第１中央処理装置にて実行される第１オペレーティングシステムと、第２中央処理装置にて実行される第２オペレーティングシステムと、第１中央処理装置及び第２中央処理装置にアクセスされるメモリとを有する情報処理装置であって、情報処理装置を、第１中央処理装置、第１オペレーティングシステム、及び、メモリの領域のうち一部の第１領域を第１ドメインとして割り当て、第２中央処理装置、第２オペレーティングシステム及びメモリの領域のうち一部の第２領域を第２ドメインとして割り当て、一方のドメインが他のドメインに割当てられた領域にアクセスしないように制御するファームウェアと、第１ドメイン及び第２ドメイン間でデータの通信が必要な場合に、当該通信を制御するミドルウェアとを有する。【０００７】
更に望ましくは、ファームウェアからの設定に基づいて、一方のドメインが他方のドメインに割当てられた領域にアクセスする際に、そのアクセスを遮断するアクセス制御モジュールを更に具備する。【０００８】
また、第１オペレーティングシステムのコードと第２オペレーティングシステムのコードが共有できる場合において、メモリは、メモリの領域の一部の第３領域に、共有できるコードを保持し、ファームウェアは、第３領域に対し、第１ドメイン及び第２ドメインからリードアクセスを許可し、ライトアクセスを許可しないように制御する。【０００９】
また、メモリは、第１ドメイン及び第２ドメイン間でデータの通信を行う場合に、通信用データを格納する第４領域を含み、ファームウェアは、第１及び第２ドメインから通信の要求がない場合には、第４領域を第１ドメイン及び第２ドメインからアクセスできないように制御し、ミドルウェアは、第１ドメインが第２ドメインにデータの通信を行う旨の要求を受けた場合に、第１ドメインに第４領域へのアクセスを許可し、第２ドメインに第４領域へのアクセスを許可しないようにファームウェアを制御した状態で、第１ドメインに第４領域へのアクセスを許可する。【００１０】
また、メモリは、第１ドメインが第２ドメインにデータの通信を行う場合に、通信用のデータを書き込む第５領域と、第２ドメインが第１ドメインにデータの通信を行う場合に、通信用のデータを書き込む第６領域とを有し、ファームウェアは、第５領域に対して第１ドメインがアクセス可能で、第２ドメインはアクセス不可能になるように制御し、第６領域に対して第２ドメインがアクセス可能で、第１ドメインがアクセス不可能となるように制御し、ミドルウェアは、第１ドメインが第２ドメインにデータの通信を行う旨の要求を受けた場合に、第１ドメインが第５領域に通信用のデータを書き込んだ後、第５領域及び第６領域が第１及び第２ドメインからアクセス不可能となるようにファームウェアに指示し、その後、第５領域から第６領域へのデータを転送する。
【発明の効果】
【００１１】
本願において開示される発明によれば、マルチコア環境において、ソフトウェア開発に要する期間が短縮でき、また入出力処理の効率化が可能になる。
【図面の簡単な説明】
【００１２】
【図１】ソフトウェアシステムの構成を示した図である。
【図２】ＯＳ間のドメイン間通信及び各メモリ領域について説明した図である。
【図３】他のＯＳ間のドメイン間通信及び各メモリ領域について説明した図である。
【図４】他のＯＳ間のドメイン間通信及び各メモリ領域について説明した図である。
【図５】他のＯＳ間のドメイン間通信及び各メモリ領域について説明した図である。
【符号の説明】
【００１３】
１００：マルチコアプロセッサ、１０１〜１０８：ＣＰＵ、１１０：プロセッサ内バス、１２０及び１２１：アクセス制御ハードウェア、１３０：外部メモリ、１４０：ドメイン分離ファームウェア、１４１〜４：ＯＳ、１５０：ドメイン連携ミドルウェア、１５１〜４：ソフトウェアモジュール、１６０：内蔵メモリ、１７１及び１７２：ＭＭＵ（メモリ管理ユニット）、１８１及び１８２：仮想メモリ空間、２００〜２０８：外部メモリの領域、２１０〜２１８及び２２０〜２２９：各ＯＳの仮想メモリ空間の領域、２５０：内蔵メモリ管理テーブル、２６０〜２６９：内蔵メモリの領域、３００〜３０９及び３１０〜３１９：アクセス制御ハードウェアの設定領域。
【発明を実施するための最良の形態】
【００１４】
図１は、本発明における情報処理装置のハードウェアとソフトウェアの構成の一例である。【００１５】
本実施例における情報処理装置のハードウェアの構成要素であるマルチコアプロセッサ（１００）は、ｎ個の中央演算処理装置（以下、「ＣＰＵ」と呼ぶ。）（ＣＰＵ０（１０１）〜ＣＰＵｎ（１０８））と外部メモリ（１３０）と内蔵メモリ（１６０）、並びにアクセス制御ハードウェア（１２０）とがプロセッサ内バス（１１０）で接続された構成を備え、各ＣＰＵからは、プロセッサ内バス（１１０）を介して、外部メモリ（１３０）ならびに内蔵メモリ（１６０）の全ての領域に対するアクセスを可能とする。また、図示していないが、外部メモリを制御するメモリ制御装置やシリアルＩＯ等の入出力制御装置がプロセッサ内バスに接続される。なお、入出力制御装置は、外部メモリ（１３０）や内蔵メモリ（１６０）と同様に一つのメモリ空間の中に含まれ、その制御は同じになるため、外部メモリや内蔵メモリに代表されるものとし、以下、入出力制御装置に関する説明は省略する。【００１６】
アクセス制御ハードウェア（１２０）は、ｎ個のＣＰＵ（ＣＰＵ０（１０１）〜ＣＰＵｎ（１０８））のそれぞれがプロセッサ内バス（１１０）を介して外部メモリ（１３０）、内蔵メモリ（１６０）をアクセスする際に、プロセッサ内バス（１１０）上に生成するトランザクションを監視し、個々のトランザクションに対して、あらかじめ指定されたアクセスの可否を定めたルールに基づきアクセスの可否を判断する。ここで、前記アクセスの可否を定めたルールにもとづき許可されたアクセスに関するトランザクションに関しては通常通り処理されるが、前記ルールにもとづき許可されていないアクセスに関するトランザクションに関しては、アクセス違反として無効化（遮断）されるとともに、アクセス違反の発生に対する例外処理を起動するために、当該トランザクションを生成したＣＰＵに対して割込み信号を送ることを特徴とする。また、アクセス制御ハードウェア（１２０）は、個々のＣＰＵから内蔵メモリと外部メモリの領域に対するアクセスの可否をその先頭アドレスと領域のサイズにより指定される。また、アクセスの可否は、各ＯＳ毎にリードアクセス／ライトアクセスの夫々について指定される。なお、各領域に対する設定は、リードアクセス／ライトアクセスが許可されるＯＳを指定するのみとし、設定されていないＯＳについては、アクセスを許可しないようにする。これにより、アクセス制御ハードウェア（１２０）を小さくすることが可能となる。【００１７】
本実施例の情報処理装置におけるソフトウェア構成は、ドメイン分離ファームウェア（１４０）が、前記マルチコアプロセッサ（１００）上でｍ個のＯＳ（ＯＳ０（１４１）、ＯＳ１（１４２）、ＯＳ２（１４３）〜ＯＳｍ（１４４））を実行するために必要となる環境を提供するためにハードウェア資源の管理を実施することを特徴とする。【００１８】
具体的には、本実施例では、前記ドメイン分離ファームウェア（１４０）及び各ＯＳ０〜ｍ（１４１〜１４４）は、ハードウェア資源の管理のため、以下のことを行う。
（１）ドメイン分離ファームウェア（１４０）は、ＯＳ０（１４１）に対し、ＣＰＵ０（１０１）とＣＰＵ１（１０２）の２つのＣＰＵ、並びに内蔵メモリ（１６０）の一部領域と外部メモリ（１３０）の一部領域をハードウェア資源として割り当て、さらにＯＳ０（１４１）は、割り当てられたハードウェア資源を管理し、ソフトウェアモジュール０（１５１）に対してプログラムを実行するための環境を提供する。
（２）ドメイン分離ファームウェア（１４０）は、ＯＳ１（１４２）に対し、ＣＰＵ２（１０３）とＣＰＵ３（１０４）の２つのＣＰＵ、並びに内蔵メモリ（１６０）の一部領域と外部メモリ（１３０）の一部領域をハードウェア資源として割り当て、さらにＯＳ１（１４２）は、割り当てられたハードウェア資源を管理し、ソフトウェアモジュール１（１５２）に対してプログラムを実行するための環境を提供する。
（３）ドメイン分離ファームウェア（１４０）は、ＯＳ２（１４３）に対し、ＣＰＵ４（１０５）とＣＰＵ５（１０６）の２つのＣＰＵ、並びに内蔵メモリ（１６０）の一部領域と外部メモリ（１３０）の一部領域をハードウェア資源として割り当て、さらにＯＳ２（１４３）は、割り当てられたハードウェア資源を管理し、ソフトウェアモジュール２（１５３）に対してプログラムを実行するための環境を提供する。
（４）以下同様に、ドメイン分離ファームウェア（１４０）は、ＯＳｍ（１４４）に対し、ＣＰＵｎ−１（１０７）とＣＰＵｎ（１０８）の２つのＣＰＵ、並びに内蔵メモリ（１６０）の一部領域と外部メモリ（１３０）の一部領域をハードウェア資源として割り当て、さらにＯＳｍ（１４４）は、割り当てられたハードウェア資源を管理し、ソフトウェアモジュールｍ（１５４）に対してプログラムを実行するための環境を提供する。【００１９】
また、前記ドメイン分離ファームウェア（１４０）は、前記アクセス制御ハードウェア（１２０）に対しアクセスの可否を判断するルールの設定を実施する。【００２０】
ここで、通常のＯＳは、そのＯＳが管理するハードウェア資源は、そのＯＳ以外からアクセスされないことを前提として作られており、そのＯＳに割り当てられた内蔵メモリ（１６０）の一部領域もしくは外部メモリ（１３０）の一部領域に対する、そのＯＳ以外からアクセス、特にデータが書き換えられる様な想定外の事象は、そのＯＳ並びにその上で実行するソフトウェアモジュールに対して異常動作を引き起こす要因となる。【００２１】
この要因を防ぐために本実施例では、ドメイン分離ファームウェア（１４０）は、アクセス制御ハードウェア（１２０）に対し、アクセスの可否を判断するルールを以下のように設定する。
（１）ＯＳ０（１４１）に割り当てられた内蔵メモリ（１６０）の一部領域もしくは外部メモリ（１３０）の一部領域に対して、ＯＳ１（１４２）並びにソフトウェアモジュール１（１５２）からアクセス、さらにはデータの書き換えが不可能とするよう、ＣＰＵ２（１０３）とＣＰＵ３（１０４）から当該内部メモリ（１６０）の一部領域並びに当該外部メモリ（１３０）の一部領域に対してアクセス、特にデータの書き換えを不可能とする。また、ＯＳ２（１４３）並びにソフトウェアモジュール２（１５３）からアクセス、さらにはデータの書き換えが不可能とするよう、ＣＰＵ４（１０５）とＣＰＵ５（１０６）から当該内部メモリ（１６０）の一部領域並びに当該外部メモリ（１３０）の一部領域に対してアクセス、特にデータの書き換えを不可能とする。以下同様にして、ＯＳｍ（１４４）並びにソフトウェアモジュールｍ（１５４）からアクセス、さらにはデータの書き換えが不可能とするよう、ＣＰＵｎ−１（１０７）とＣＰＵｎ（１０８）から当該内部メモリ（１６０）の一部領域並びに当該外部メモリ（１３０）の一部領域に対してアクセス、特にデータの書き換えを不可能とする。
（２）ＯＳ１（１４２）に割り当てられた内蔵メモリ（１６０）の一部領域もしくは外部メモリ（１３０）の一部領域に対して、ＯＳ０（１４１）並びにソフトウェアモジュール０（１５１）からアクセス、さらにはデータの書き換えが不可能とするよう、ＣＰＵ０（１０１）とＣＰＵ１（１０２）から当該内部メモリ（１６０）の一部領域並びに当該外部メモリ（１３０）の一部領域に対してアクセス、特にデータの書き換えを不可能とする。また、ＯＳ２（１４３）並びにソフトウェアモジュール２（１５３）からアクセス、さらにはデータの書き換えが不可能とするよう、ＣＰＵ４（１０５）とＣＰＵ５（１０６）から当該内部メモリ（１６０）の一部領域並びに当該外部メモリ（１３０）の一部領域に対してアクセス、特にデータの書き換えを不可能とする。以下同様にして、ＯＳｍ（１４４）並びにソフトウェアモジュールｍ（１５４）からアクセス、さらにはデータの書き換えが不可能とするよう、ＣＰＵｎ−１（１０７）とＣＰＵｎ（１０８）から当該内部メモリ（１６０）の一部領域並びに当該外部メモリ（１３０）の一部領域に対してアクセス、特にデータの書き換えを不可能とする。
（３）ＯＳ２（１４３）に割り当てられた内蔵メモリ（１６０）の一部領域もしくは外部メモリ（１３０）の一部領域に対して、ＯＳ０（１４１）並びにソフトウェアモジュール０（１５１）からアクセス、さらにはデータの書き換えが不可能とするよう、ＣＰＵ０（１０１）とＣＰＵ１（１０２）から当該内部メモリ（１６０）の一部領域並びに当該外部メモリ（１３０）の一部領域に対してアクセス、特にデータの書き換えを不可能とする。また、ＯＳ１（１４２）並びにソフトウェアモジュール１（１５２）からアクセス、さらにはデータの書き換えが不可能とするよう、ＣＰＵ２（１０３）とＣＰＵ３（１０４）から当該内部メモリ（１６０）の一部領域並びに当該外部メモリ（１３０）の一部領域に対してアクセス、特にデータの書き換えを不可能とする。以下同様にして、ＯＳｍ（１４４）並びにソフトウェアモジュールｍ（１５４）からアクセス、さらにはデータの書き換えが不可能とするよう、ＣＰＵｎ−１（１０７）とＣＰＵｎ（１０８）から当該内部メモリ（１６０）の一部領域並びに当該外部メモリ（１３０）の一部領域に対してアクセス、特にデータの書き換えを不可能とする。
（４）以下同様にしてＯＳｍ（１４４）に割り当てられた内蔵メモリ（１６０）の一部領域もしくは外部メモリ（１３０）の一部領域に対して、ＯＳ０（１４１）並びにソフトウェアモジュール０（１５１）からアクセス、さらにはデータの書き換えが不可能とするよう、ＣＰＵ０（１０１）とＣＰＵ１（１０２）から当該内部メモリ（１６０）の一部領域並びに当該外部メモリ（１３０）の一部領域に対してアクセス、特にデータの書き換えを不可能とする。また、ＯＳ１（１４２）並びにソフトウェアモジュール１（１５２）からアクセス、さらにはデータの書き換えが不可能とするよう、ＣＰＵ２（１０３）とＣＰＵ３（１０４）から当該内部メモリ（１６０）の一部領域並びに当該外部メモリ（１３０）の一部領域に対してアクセス、特にデータの書き換えを不可能とする。以下同様にして、ＯＳ２（１４３）並びにソフトウェアモジュール２（１５３）からアクセス、さらにはデータの書き換えが不可能とするよう、ＣＰＵ４（１０５）とＣＰＵ５（１０６）から当該内部メモリ（１６０）の一部領域並びに当該外部メモリ（１３０）の一部領域に対してアクセス、特にデータの書き換えを不可能とする。【００２２】
このように設定することにより、各ＯＳに割当てられた資源は、基本的に他のＯＳからアクセスされないため、他のＯＳの不正なアクセスによる異常動作を防止することが可能となる。【００２３】
また、本実施例では、ＯＳ間の通信を行うためにドメイン連携ミドルウェア（１５０）を実装する。ドメイン連携ミドルウェア（１５０）は、本実施例のアクセス制御ハードウェア（１２０）とドメイン分離ファームウェア（１４０）を活用し、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）とが実行するためのハードウェア資源、ＯＳ１（１４２）とソフトウェアモジュール１（１５２）とが実行するためのハードウェア資源、ＯＳ２（１４３）とソフトウェアモジュール２（１５３）とが実行するためのハードウェア資源、並びに以下同様にＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）とが実行するためのハードウェア資源が分離されているシステム構成において、ソフトウェアモジュール（ソフトウェアモジュール０（１５１）、ソフトウェアモジュール１（１５２）、ソフトウェアモジュール２（１５３）〜ソフトウェアモジュールｍ（１５４））のそれぞれの間で処理の連携を実施するための通信機能を提供する。【００２４】
このように新たにドメイン連携ミドルウェア（１５０）を設ける理由は、実装を容易化するためである。即ち、ドメイン分離ファームウェアは、基本的に各ＯＳ間を確実に分離することにある。一方、ＯＳ間での連携は、分離した各ＯＳ間をつなぐことになる。このように全く機能が異なるものをドメイン分離ファームウェアに取り込むと、ＯＳ間通信が不要な場合であっても分離した各ＯＳの間に穴をあけられることになり、好ましくない。一方、ＯＳにＯＳ間通信を行うための機能を実装しようとすると、他のＯＳの状況等を考慮するように変更しなければならず、その改変に時間がかかる。それに対し、本願のようにドメイン連携ミドルウェアを新たに設け、ＯＳからＯＳ間通信を行いたい旨の要求を出すようにし、全体を把握しているドメイン連携ミドルウェアでその可否を判断し、通信に必要な設定をドメイン分離ファームウェアにする構成とすることにより、ＯＳ間通信が必要な場合のみ、当該ドメイン連携ファームウェアを実装すればよいことになる。【００２５】
なお、ドメイン分離ファームウェア（１４０）及びドメイン連携ミドルウェア（１５０）は、ＯＳが必要な場合に読み出す構成となっており、その読み出したＯＳが所属するドメイン内のＣＰＵにより実行されてもよいし、異なるＣＰＵで実行しても良い。【００２６】
＜実施例１＞
図２は、図１に示した実施例の中で、個々のソフトウェアモジュール（ソフトウェアモジュール０（１５１）〜ソフトウェアモジュールｍ（１５４））に対して実行するためのハードウェア資源としてＣＰＵ（ＣＰＵ０（１０１）〜ＣＰＵｎ（１０８））と外部メモリ（１３０）に限定し、ドメイン分離ファームウェア（１４０）は各ＯＳ（ＯＳ０（１４１）〜ＯＳｍ（１４４））に対し、ＣＰＵ（ＣＰＵ０（１０１）〜ＣＰＵｎ（１０８））と外部メモリ（１３０）を分割したものを割り当てた、一実施例において、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）、並びにＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）とに注目し示したものである。【００２７】
仮想メモリ空間（１８１）は、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）が実行するためのメモリ領域を構成したものであり、仮想メモリ空間（１８２）は、ＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）が実行するためのメモリ領域を構成したものであり、それぞれの実態は外部メモリ（１３０）に存在する。【００２８】
ＯＳ０（１４１）とソフトウェアモジュール０（１５１）が実行するためのメモリ領域として外部メモリ（１３０）に割り当てられたものの実態は、外部メモリ（１３０）上のＯＳ  ｃｏｄｅ  １（ＯＳＣ１，２００）、ＯＳ  ｃｏｄｅ  ２（ＯＳＣ２，２０１）、ＯＳ個別ｄａｔａ  ａ（ＯＳＤａ，２０２）、ＡＰ  ｃｏｄｅ  １（ＡＰＣ１，２０４）、ＡＰ  ｃｏｄｅ  ２（ＡＰＣ２，２０５）、ＡＰ個別ｄａｔａ  ａ（ＡＰＤａ，２０６）、ＯＳ間通信ｄａｔａ  ａ（ＯＳＭａ，２０８）で、これらは、ＭＭＵ０（１７１）により仮想メモリ空間（１８１）上のＯＳ  ｃｏｄｅ  １（ＯＳＣ１，２１０）、ＯＳ  ｃｏｄｅ  ２（ＯＳＣ２，２１１）、ＯＳ個別ｄａｔａ  ａ（ＯＳＤａ，２１２）、ＡＰ  ｃｏｄｅ  １（ＡＰＣ１，２１４）、ＡＰ  ｃｏｄｅ  ２（ＡＰＣ２，２１５）、ＡＰ個別ｄａｔａ  ａ（ＡＰＤａ，２１６）、ＯＳ間通信ｄａｔａ  ａ（ＯＳＭａ，２１８）にアドレス変換されて、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）からアクセスされる。【００２９】
同様にＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）が実行するためのメモリ領域として割り当てられたものの実態は、外部メモリ（１３０）上のＯＳ  ｃｏｄｅ  １（ＯＳＣ１，２００）、ＯＳ  ｃｏｄｅ  ２（ＯＳＣ２，２０１）、ＯＳ個別ｄａｔａ  ｂ（ＯＳＤｂ，２０３）、ＡＰ  ｃｏｄｅ  １（ＡＰＣ１，２０４）、ＡＰ  ｃｏｄｅ  ２（ＡＰＣ２，２０５）、ＡＰ個別ｄａｔａ  ｂ（ＡＰＤｂ，２０７）、ＯＳ間通信ｄａｔａ  ａ（ＯＳＭａ，２０８）で、これらは、ＭＭＵ１（１７２）により仮想メモリ空間（１８２）上のＯＳ  ｃｏｄｅ  １（ＯＳＣ１，２２０）、ＯＳ  ｃｏｄｅ  ２（ＯＳＣ２，２２１）、ＯＳ個別ｄａｔａ  ｂ（ＯＳＤｂ，２２３）、ＡＰ  ｃｏｄｅ  １（ＡＰＣ１，２２４）、ＡＰ  ｃｏｄｅ  ２（ＡＰＣ２，２２５）、ＡＰ個別ｄａｔａ  ｂ（ＡＰＤｂ，２２７）、ＯＳ間通信ｄａｔａ  ａ（ＯＳＭａ，２２８）にアドレス変換されて、ＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）からアクセスされる。【００３０】
この様なハードウェア資源のソフトウェアに対する割り当てに対して、本実施例におけるアクセス制御ハードウェア（１２０）は、ＭＭＵ０（１７１）およびＭＭＵ１（１７２）により変換されたアドレスとＣＰＵとの組み合わせにより、アクセスの可否を判断する。具体的には、アクセス制御ハードウェア（１２０）がアクセスの可否を判断するルールは、以下の通りとなり、それぞれドメイン分離ファームウェア（１４０）が設定する。
（１）ＯＳ  ｃｏｄｅ  １（ＯＳＣ１，２００）とＯＳ  ｃｏｄｅ  ２（ＯＳＣ２，２０１）に対するアクセス可否ルールエントリ（３００）には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）、並びにＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）、を実行しているＣＰＵからの読みアクセス可。
（２）ＯＳ個別ｄａｔａ  ａ（ＯＳＤａ，２０２）に対するアクセス可否ルールエントリ（３０２）には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）を実行しているＣＰＵからの読み書きアクセス可。
（３）ＯＳ個別ｄａｔａ  ｂ（ＯＳＤｂ，２０３）に対するアクセス可否ルールエントリ（３０３）には、ＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）を実行しているＣＰＵからの読み書きアクセス可。
（４）ＡＰ  ｃｏｄｅ  １（ＡＰＣ１，２０４）とＡＰ  ｃｏｄｅ  ２（２０５）に対するアクセス可否ルールエントリ（３０４）には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）、並びにＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）、を実行しているＣＰＵからの読みアクセス可。
（５）ＡＰ個別ｄａｔａ  ａ（ＡＰＤａ，２０６）に対するアクセス可否ルールエントリ（３０６）には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）を実行しているＣＰＵからの読み書きアクセス可。
（６）ＡＰ個別ｄａｔａ  ｂ（ＡＰＤｂ，２０７）に対するアクセス可否ルールエントリ（３０７）には、ＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）を実行しているＣＰＵからの読み書きアクセス可。
（７）それ以外の外部メモリの領域に対するアクセス可否ルールエントリ（アクセス可否ルールエントリ（３１０）、アクセス可否ルールエントリ（３１１）、アクセス可否ルールエントリ（３１２）、アクセス可否ルールエントリ（３１３））には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）、並びにＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）、を実行しているＣＰＵからの全てのアクセス不可。【００３１】
また、ＯＳ間通信ｄａｔａ  ａ（ＯＳＭａ，２０８）に対するアクセス可否ルールエントリ（３０８）には、初期状態として、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）、並びにＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）、を実行しているＣＰＵからの全てのアクセス不可、とドメイン分離ファームウェア（１４０）が設定する。【００３２】
なお、アクセス制御モジュール（１２０）に記載された記号の意味は、”Ｒ”がリードアクセス許可、”Ｗ”がライトアクセス許可、”０”がＯＳ０に管理されるＣＰＵからのアクセスが対象、”ｍ”がＯＳｍに管理されているＣＰＵからのアクセスが対象である。従って、例えば、”Ｒ０ｍ”となっているものは、ＯＳ０及びＯＳｍが管理しているＣＰＵからリードアクセスが可能（ライトアクセスは不可能）という意味となる。【００３３】
ここで、特徴的なものは、ＯＳ  ｃｏｄｅ  １及び２、ＡＰ  ｃｏｄｅ  １及び２の領域（３１０，３１３）に対し、ＯＳ０とＯＳｍの両方が管理しているＣＰＵからリードアクセスできるようにアクセス制御ハードウェア（１２０）が設定されていることである。上述したとおり、各ＯＳは、夫々が単独で動作し、他のＯＳからアクセスされないことが前提となっている。従って、夫々が管理する領域が完全に分離していることが望ましい。しかしながら、他のＯＳからのアクセスが異常動作の原因となるのは、データが書き換わってしまうことに起因する。ここで、ＣＰＵの動作を考えると、ＯＳ用のコードやアプリケーション用のコードは、各ＣＰＵからはリードアクセスのみで充分である。そこで、本発明では、ＯＳ用のコードとアプリケーション用のコードを共有できるものは、複数のＯＳ間で共有し、かつ、アクセス制御ハードウェア（１２０）にて、リードアクセスのみ可と設定することにより、異常動作の要因となるライトアクセスを遮断し、安全に、かつ、効率よくメモリ領域を使用することを可能としている。なお、この点については、他の実施例も同様である。【００３４】
続いて、ＯＳ間の通信について詳しく言及する。ＯＳ０（１４１）とソフトウェアモジュール０（１５１）、もしくはＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）の何れかがＯＳ間通信のためにＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２０８）に対し、データの読み書きを実施する際は、それに先立ちドメイン連携ミドルウェア（１５０）に対して当該領域に対する読み書きアクセス要求を出す。当該領域に対する読み書き要求を受け取ったドメイン連携ミドルウェア（１５０）は、現在ＯＳ間通信を行ってよいかを判断し、ドメイン分離ファームウェア（１４０）を介して、ＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２０８）に対するアクセス可否ルールエントリ（３０８）に、当該要求を出したＯＳとソフトウェアモジュールを実行しているＣＰＵからの読み書きアクセス可と設定し、その際、同時にＯＳ０（１４１）とソフトウェアモジュール０（１５１）、並びにＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）の実行する双方のＣＰＵからの読み書きアクセス可とすることのないよう制御する。その後、書き込み要求を出したＯＳとソフトウェアモジュールに対し、読み書きアクセス要求の受理を返す。【００３５】
ＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２０８）に対する読み書きアクセス要求の受理を受け取ったＯＳとソフトウェアモジュールは、ＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２０８）に対しデータの読み書きを実施した後、ドメイン連携ミドルウェア（１５０）に対し、当該領域に対する読み書き完了を出す。【００３６】
当該領域に対する読み書き完了を受け取ったドメイン連携ミドルウェア（１５０）は、ドメイン分離ファームウェア（１４０）を介して、ＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２０８）に対するアクセス可否ルールエントリ（３０８）に、初期状態と同様に、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）、並びにＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）、を実行しているＣＰＵからの全てのアクセス不可、を設定する。【００３７】
以上の通り、本実施例では、ＯＳ間通信で用いる領域（２０８）を全てのＯＳ（ＣＰＵ）に対しデフォルトでリードアクセス／ライトアクセスを不可とし、必要に応じてドメイン連携ミドルウェア及びドメイン分離ファームウェアを用いて、要求を出したＯＳ（ＣＰＵ）のみにアクセス許可を与える。これにより、通信用に用いるデータを他のＯＳ（ＣＰＵ）がアクセスし、情報を読み出す、又は、情報を破壊するということから守ることが可能となる。【００３８】
＜実施例２＞
図３は、図２と同様に、図１に示した実施例の中で、個々のソフトウェアモジュール（ソフトウェアモジュール０（１５１）〜ソフトウェアモジュールｍ（１５４））に対して実行するためのハードウェア資源としてＣＰＵ（ＣＰＵ０（１０１）〜ＣＰＵｎ（１０８））と外部メモリ（１３０）に限定し、ドメイン分離ファームウェア（１４０）は各ＯＳ（ＯＳ０（１４１）〜ＯＳｍ（１４４））に対し、ＣＰＵ（ＣＰＵ０（１０１）〜ＣＰＵｎ（１０８））と外部メモリ（１３０）を分割したものを割り当てた、一実施例において、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）、並びにＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）とに注目し示したものである。実施例１では、ＯＳ間通信を行うメモリ領域（２０８）をＯＳ０とＯＳｍで共有していたが、本実施例では、夫々個別の領域（２０８、２０９）を有している。以下、本実施例について説明する。【００３９】
仮想メモリ空間（１８１）は、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）が実行するためのメモリ領域を構成したものであり、仮想メモリ空間（１８２）は、ＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）が実行するためのメモリ領域を構成したものであり、それぞれの実態は外部メモリ（１３０）に存在する。【００４０】
ＯＳ０（１４１）とソフトウェアモジュール０（１５１）が実行するためのメモリ領域として外部メモリ（１３０）に割り当てられたものの実態は、外部メモリ（１３０）上のＯＳ  ｃｏｄｅ  １（ＯＳＣ１，２００）、ＯＳ  ｃｏｄｅ  ２（ＯＳＣ２，２０１）、ＯＳ個別ｄａｔａ  ａ（ＯＳＤａ，２０２）、ＡＰ  ｃｏｄｅ  １（ＡＰＣ１，２０４）、ＡＰ  ｃｏｄｅ  ２（ＡＰＣ２，２０５）、ＡＰ個別ｄａｔａ  ａ（ＡＰＤａ，２０６）、ＯＳ間通信ｄａｔａ  ａ（ＯＳＭａ，２０８）で、これらは、ＭＭＵ０（１７１）により仮想メモリ空間（１８１）上のＯＳ  ｃｏｄｅ  １（ＯＳＣ１，２１０）、ＯＳ  ｃｏｄｅ  ２（ＯＳＣ２，２１１）、ＯＳ個別ｄａｔａ  ａ（ＯＳＤａ，２１２）、ＡＰ  ｃｏｄｅ  １（ＡＰＣ１，２１４）、ＡＰ  ｃｏｄｅ  ２（ＡＰＣ２，２１５）、ＡＰ個別ｄａｔａ  ａ（ＡＰＤａ，２１６）、ＯＳ間通信ｄａｔａ  ａ（ＯＳＭａ，２１８）にアドレス変換されて、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）からアクセスされる。【００４１】
同様に、ＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）が実行するためのメモリ領域として割り当てられたものの実態は、外部メモリ（１３０）上のＯＳ  ｃｏｄｅ  １（ＯＳＣ１，２００）、ＯＳ  ｃｏｄｅ  ２（ＯＳＣ２，２０１）、ＯＳ個別ｄａｔａ  ｂ（ＯＳＤｂ，２０３）、ＡＰ  ｃｏｄｅ  １（ＡＰＣ１，２０４）、ＡＰ  ｃｏｄｅ  ２（ＡＰＣ２，２０５）、ＡＰ個別ｄａｔａ  ｂ（ＡＰＤｂ，２０７）、ＯＳ間通信ｄａｔａ  ｂ（ＯＳＭｂ，２０９）で、これらは、ＭＭＵ１（１７２）により仮想メモリ空間（１８２）上のＯＳ  ｃｏｄｅ  １（ＯＳＣ１，２２０）、ＯＳ  ｃｏｄｅ  ２（ＯＳＣ２，２２１）、ＯＳ個別ｄａｔａ  ｂ（ＯＳＤｂ，２２３）、ＡＰ  ｃｏｄｅ  １（ＡＰＣ１，２２４）、ＡＰ  ｃｏｄｅ  ２（ＡＰＣ２，２２５）、ＡＰ個別ｄａｔａ  ｂ（ＡＰＤｂ，２２７）、ＯＳ間通信ｄａｔａ  ｂ（ＯＳＭｂ，２２９）にアドレス変換されて、ＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）からアクセスされる。【００４２】
この様なハードウェア資源のソフトウェアに対する割り当てに対して、本実施例におけるアクセス制御ハードウェア（１２０）は、ＭＭＵ０（１７１）およびＭＭＵ１（１７２）により変換されたアドレスとＣＰＵとの組み合わせにより、アクセスの可否を判断する。従って、アクセス制御ハードウェア（１２０）がアクセスの可否を判断するルールは、以下の通りとなり、それぞれドメイン分離ファームウェア（１４０）が設定する。
（１）ＯＳ  ｃｏｄｅ  １（ＯＳＣ１，２００）とＯＳ  ｃｏｄｅ  ２（ＯＳＣ２，２０１）に対するアクセス可否ルールエントリ（３００）には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）、並びにＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）、を実行しているＣＰＵからの読みアクセス可。
（２）ＯＳ個別ｄａｔａ  ａ（ＯＳＤａ，２０２）に対するアクセス可否ルールエントリ（３０２）には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）を実行しているＣＰＵからの読み書きアクセス可。
（３）ＯＳ個別ｄａｔａ  ｂ（ＯＳＤｂ，２０３）に対するアクセス可否ルールエントリ（３０３）には、ＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）を実行しているＣＰＵからの読み書きアクセス可。
（４）ＡＰ  ｃｏｄｅ  １（ＡＰＣ１，２０４）とＡＰ  ｃｏｄｅ  ２（ＡＰＣ２，２０５）に対するアクセス可否ルールエントリ（３０４）には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）、並びにＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）、を実行しているＣＰＵからの読みアクセス可。
（５）ＡＰ個別ｄａｔａ  ａ（ＡＰＤａ，２０６）に対するアクセス可否ルールエントリ（３０６）には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）を実行しているＣＰＵからの読み書きアクセス可。
（６）ＡＰ個別ｄａｔａ  ｂ（ＡＰＤｂ，２０７）に対するアクセス可否ルールエントリ（３０７）には、ＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）を実行しているＣＰＵからの読み書きアクセス可。
（７）それ以外の外部メモリの領域に対するアクセス可否ルールエントリ（アクセス可否ルールエントリ（３１０）、アクセス可否ルールエントリ（３１１）、アクセス可否ルールエントリ（３１２）、アクセス可否ルールエントリ（３１３））には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）、並びにＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）、を実行しているＣＰＵからの全てのアクセス不可。
（８）ＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２０８）に対するアクセス可否ルールエントリ（３０８）には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）を実行しているＣＰＵからの読み書きアクセス可。
（９）ＯＳ間通信ｄａｔａ  ｂ（ＯＳＭｂ，２０９）に対するアクセス可否ルールエントリ（３０９）には、ＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）を実行しているＣＰＵからの読み書きアクセス可。【００４３】
本実施例では、ソフトウェアモジュール０（１５１）からソフトウェアモジュールｍ（１５４）へＯＳ間通信を実施する際は、ソフトウェアモジュール０（１５１）が外部メモリ（１３０）上のＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２０８）にデータの書き込みが完了した時点で、ドメイン連携ミドルウェア（１５０）に転送要求を出す。【００４４】
転送要求を受け取ったドメイン連携ミドルウェア（１５０）は、ドメイン分離ファームウェア（１４０）を用いてＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２０８）に対するアクセス可否ルールエントリ（３０８）とＯＳ間通信Ｄａｔａ  ｂ（ＯＳＭｂ，２０９）に対するアクセス可否ルールエントリ（３０９）とに対しＯＳ０（１４１）とソフトウェアモジュール０（１５１）、並びにＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）、を実行しているＣＰＵからの全てのアクセス不可、と設定する。その後、ドメイン連携ミドルウェア（１５０）は、ドメイン分離ファームウェア（１４０）を用いてＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２０８）に対するアクセス可否ルールエントリ（３０８）とＯＳ間通信Ｄａｔａ  ｂ（ＯＳＭｂ，２０９）に対するアクセス可否ルールエントリ（３０９）に、ドメイン連携ミドルウェア（１５０）自身を実行しているＣＰＵからの読み書きアクセス可と設定し、ＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２０８）に書き込まれたデータをＯＳ間通信Ｄａｔａ  ｂ（ＯＳＭｂ，２０９）の指定された場所に書き出す。その後、再びドメイン分離ファームウェア（１４０）を用いてＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２０８）に対するアクセス可否ルールエントリ（３０８）とＯＳ間通信Ｄａｔａ  ｂ（ＯＳＭｂ，２０９）に対するアクセス可否ルールエントリ（３０９）に、ドメイン連携ミドルウェア（１５０）を実行しているＣＰＵからの全てのアクセス不可と設定し、完了した後、ドメイン分離ファームウェア（１４０）を用いてＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２０８）に対するアクセス可否ルールエントリ（３０８）には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）を実行しているＣＰＵからの読み書きアクセス可、ＯＳ間通信ｄａｔａ  ｂ（ＯＳＭｂ，２０９）に対するアクセス可否ルールエントリ（３０９）には、ＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）を実行しているＣＰＵからの読み書きアクセス可、と、設定し、ソフトウェアモジュール０（１５１）に対し、転送完了を出す。【００４５】
ソフトウェアモジュールｍ（１５４）からソフトウェアモジュール０（１５１）へＯＳ間通信を実施する際は、ソフトウェアモジュールｍ（１５４）が外部メモリ（１３０）上のＯＳ間通信Ｄａｔａ  ｂ（ＯＳＭｂ，２０９）にデータの書き込みが完了した時点で、ドメイン連携ミドルウェア（１５０）に転送要求を出す。【００４６】
転送要求を受け取ったドメイン連携ミドルウェア（１５０）は、ドメイン分離ファームウェア（１４０）を用いて、ＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２０８）に対するアクセス可否ルールエントリ（３０８）とＯＳ間通信Ｄａｔａ  ｂ（ＯＳＭｂ，２０９）に対するアクセス可否ルールエントリ（３０９）とに対しＯＳ０（１４１）とソフトウェアモジュール０（１５１）、並びにＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）、を実行しているＣＰＵからの全てのアクセス不可、と設定する。その後、ドメイン連携ミドルウェア（１５０）は、ドメイン分離ファームウェア（１４０）を用いてＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２０８）に対するアクセス可否ルールエントリ（３０８）とＯＳ間通信Ｄａｔａ  ｂ（ＯＳＭｂ，２０９）に対するアクセス可否ルールエントリ（３０９）に、ドメイン連携ミドルウェア（１５０）自身を実行しているＣＰＵからの読み書きアクセス可と設定し、ＯＳ間通信Ｄａｔａ  ｂ（ＯＳＭｂ，２０９）に書き込まれたデータをＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２０８）の指定された場所に書き出す。その後、再びドメイン分離ファームウェア（１４０）を用いてＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２０８）に対するアクセス可否ルールエントリ（３０８）とＯＳ間通信Ｄａｔａ  ｂ（ＯＳＭｂ，２０９）に対するアクセス可否ルールエントリ（３０９）に、ドメイン連携ミドルウェア（１５０）を実行しているＣＰＵからの全てのアクセス不可と設定し、完了した後、ドメイン分離ファームウェア（１４０）を用いてＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２０８）に対するアクセス可否ルールエントリ（３０８）には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）を実行しているＣＰＵからの読み書きアクセス可、ＯＳ間通信ｄａｔａ  ｂ（ＯＳＭｂ，２０９）に対するアクセス可否ルールエントリ（３０９）には、ＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）を実行しているＣＰＵからの読み書きアクセス可、と、設定し、ソフトウェアモジュールｍ（１５４）に対し、転送完了を出す。【００４７】
以上の通り、本実施例においても、ＯＳ間通信用のデータを転送している間は、すべてのＯＳ（ＣＰＵ）からのアクセスを不可とするため、通信用データが破壊されることがない。また、実施例１に対し、各ＯＳは、通信の許可を受ける前に、通信用のデータを自分の領域に書き込むことができるため、次の処理に移ることが可能となり、高速に動作することが可能となる。【００４８】
＜実施例３＞
図４は、図１に示した実施例の中で、個々のソフトウェアモジュール（ソフトウェアモジュール０（１５１）〜ソフトウェアモジュールｍ（１５４））に対して実行するためのハードウェア資源としてＣＰＵ（ＣＰＵ０（１０１）〜ＣＰＵｎ（１０８））と外部メモリ（１３０）と内蔵メモリ（１６０）を持ち、ドメイン分離ファームウェア（１４０）は各ＯＳ（ＯＳ０（１４１）〜ＯＳｍ（１４４））に対し、ＣＰＵ（ＣＰＵ０（１０１）〜ＣＰＵｎ（１０８））、外部メモリ（１３０）を分割したもの、内蔵メモリ（１６０）を分割したものを割り当てた、一実施例において、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）、並びにＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）とに注目し示したものである。即ち、本実施例では、実施例１に対し、外部メモリ（１３０）から内蔵メモリ（１６０）に必要なデータをコピーし、その内蔵メモリ（１６０）に対して、ＣＰＵがアクセスすることにより処理速度を向上させ、加えて内蔵メモリを用いてＯＳ間通信を行う点が異なる。なお、紙面の都合上、ＯＳとソフトウェアモジュールについては記載を省略しているが、この部分は、図２又は図３と同様である。【００４９】
ＯＳ０（１４１）とソフトウェアモジュール０（１５１）が実行するためのメモリ領域として外部メモリ（１３０）に割り当てられたものの実態は、外部メモリ（１３０）上のＯＳ  ｃｏｄｅ  １（ＯＳＣ１，２００）、ＯＳ  ｃｏｄｅ  ２（ＯＳＣ２，２０１）、ＯＳ個別ｄａｔａ  ａ（ＯＳＤａ，２０２）、ＡＰ  ｃｏｄｅ  １（ＡＰＣ１，２０４）、ＡＰ  ｃｏｄｅ  ２（ＡＰＣ２，２０５）、ＡＰ個別ｄａｔａ  ａ（ＡＰＤａ，２０６）、ＯＳ間通信ｄａｔａ  ａ（ＯＳＭａ，２０８）で、これらは、内蔵メモリ（１６０）上のＯＳ  ｃｏｄｅ  １（ＯＳＣ１，２６０）、ＯＳ  ｃｏｄｅ  ２（ＯＳＣ２，２６１）、ＯＳ個別ｄａｔａ  ａ（ＯＳＤａ，２６２）、ＡＰ  ｃｏｄｅ  １（ＡＰＣ１，２６４）、ＡＰ  ｃｏｄｅ  ２（ＡＰＣ２，２６５）、ＡＰ個別ｄａｔａ  ａ（ＡＰＤａ，２６６）、ＯＳ間通信ｄａｔａ  ａ（ＯＳＭａ，２６８）に実態のコピーが移され、ＭＭＵ０（１７１）により仮想メモリ空間（１８１）上のＯＳ  ｃｏｄｅ  １（ＯＳＣ１，２３０）、ＯＳ  ｃｏｄｅ  ２（ＯＳＣ２，２３１）、ＯＳ個別ｄａｔａ  ａ（ＯＳＤａ，２３２）、ＡＰ  ｃｏｄｅ  １（ＡＰＣ１，２３４）、ＡＰ  ｃｏｄｅ  ２（ＡＰＣ２，２３５）、ＡＰ個別ｄａｔａ  ａ（ＡＰＤａ，２３６）、ＯＳ間通信ｄａｔａ  ａ（ＯＳＭａ，２３８）にアドレス変換されて、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）からアクセスされる。【００５０】
同様に、ＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）が実行するためのメモリ領域として割り当てられたものの実態は、外部メモリ（１３０）上のＯＳ  ｃｏｄｅ  １（ＯＳＣ１，２００）、ＯＳ  ｃｏｄｅ  ２（ＯＳＣ２，２０１）、ＯＳ個別ｄａｔａ  ｂ（ＯＳＤｂ，２０３）、ＡＰ  ｃｏｄｅ  １（ＡＰＣ１，２０４）、ＡＰ  ｃｏｄｅ  ２（ＡＰＣ２，２０５）、ＡＰ個別ｄａｔａ  ｂ（ＡＰＤｂ，２０７）、ＯＳ間通信ｄａｔａ  ａ（ＯＳＭａ，２０８）で、これらは、内蔵メモリ（１６０）上のＯＳ  ｃｏｄｅ  １（ＯＳＣ１，２６０）、ＯＳ  ｃｏｄｅ  ２（ＯＳＣ２，２６１）、ＯＳ個別ｄａｔａ  ｂ（ＯＳＤｂ，２６３）、ＡＰ  ｃｏｄｅ  １（ＡＰＣ１，２６４）、ＡＰ  ｃｏｄｅ  ２（ＡＰＣ２，２６５）、ＡＰ個別ｄａｔａ  ｂ（ＡＰＤｂ，２６７）、ＯＳ間通信ｄａｔａ  ａ（ＯＳＭａ，２６８）に実態のコピーが移され、ＭＭＵ１（１７２）により仮想メモリ空間（１８２）上のＯＳ  ｃｏｄｅ  １（ＯＳＣ１，２４０）、ＯＳ  ｃｏｄｅ  ２（ＯＳＣ２，２４１）、ＯＳ個別ｄａｔａ  ｂ（ＯＳＤｂ，２４３）、ＡＰ  ｃｏｄｅ  １（ＡＰＣ１，２４４）、ＡＰ  ｃｏｄｅ  ２（ＡＰＣ２，２４５）、ＡＰ個別ｄａｔａ  ｂ（ＡＰＤｂ，２４７）、ＯＳ間通信ｄａｔａ  ａ（ＯＳＭａ，２４８）にアドレス変換されて、ＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）からアクセスされる。【００５１】
内蔵メモリ管理テーブル（２５０）は、内蔵メモリ（１６０）上の空き領域、外部メモリ（１３０）上のメモリ領域の実態（ＯＳ  ｃｏｄｅ  １（ＯＳＣ１，２００）、ＯＳ  ｃｏｄｅ  ２（ＯＳＣ２，２０１）、ＯＳ個別ｄａｔａ  ａ（ＯＳＤａ，２０２）、ＯＳ個別ｄａｔａ  ｂ（ＯＳＤｂ，２０３）、ＡＰ  ｃｏｄｅ  １（ＡＰＣ１，２０４）、ＡＰ  ｃｏｄｅ  ２（ＡＰＣ２，２０５）、ＡＰ個別ｄａｔａ  ａ（ＡＰＤａ，２０６）、ＡＰ個別ｄａｔａ  ｂ（ＡＰＤｂ，２０７）、ＯＳ間通信ｄａｔａ  ａ（ＯＳＭａ，２０８）等）のコピーが、内部メモリ（１６０）上のどこ（ＯＳ  ｃｏｄｅ  １（ＯＳＣ１，２６０）、ＯＳ  ｃｏｄｅ  ２（ＯＳＣ２，２６１）、ＯＳ個別ｄａｔａ  ａ（ＯＳＤａ，２６２）、ＯＳ個別ｄａｔａ  ｂ（ＯＳＤｂ，２６３）、ＡＰ  ｃｏｄｅ  １（ＡＰＣ１，２６４）、ＡＰ  ｃｏｄｅ  ２（ＡＰＣ２，２６５）、ＡＰ個別ｄａｔａ  ａ（ＡＰＤａ，２６６）、ＡＰ個別ｄａｔａ  ｂ（ＡＰＤｂ，２６７）、ＯＳ間通信ｄａｔａ  ａ（ＯＳＭａ，２６８）等）に移されたか、を管理する。【００５２】
ここで、通常内蔵メモリ（１６０）の容量は、外部メモリの容量に比べて小さく、外部メモリ（１３０）上にメモリ領域として割り当てられたものの実態のコピーを、全てを内蔵メモリ（１６０）に保持することは可能ではない。従って、ソフトウェアモジュールとＯＳのアクセスに応じて、内蔵メモリ（１６０）上に領域を確保し、そのアクセスの対象である外部メモリ（１３０）上にメモリ領域の実態のコピーを、当該領域に割り付ける。ここで、内蔵メモリ管理テーブル（ＴＢＬ，２５０）により内蔵メモリ（１６０）に空きがないことが明らかな場合は、既に内蔵メモリ（１６０）に割り付けられているメモリ領域の実態のコピー群の中から一つを選択し、当該メモリ領域の実態のコピーを外部メモリ（１３０）の該当する領域に退避し、領域を確保する。【００５３】
この様なハードウェア資源のソフトウェアに対する割り当てに対して、本実施例におけるアクセス制御ハードウェア（１２０）は、ＭＭＵ０（１７１）およびＭＭＵ１（１７２）により変換されたアドレスとＣＰＵとの組み合わせにより、アクセスの可否を判断する。従って、アクセス制御ハードウェア（１２０）がアクセスの可否を判断するルールは、以下の通り、それぞれドメイン分離ファームウェア（１４０）が設定する。
（１）ＯＳ  ｃｏｄｅ  １（ＯＳＣ１，２００）とＯＳ  ｃｏｄｅ  ２（ＯＳＣ２，２０１）に対するアクセス可否ルールエントリ（３００）には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）、並びにＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）、を実行しているＣＰＵからの読みアクセス可。
（２）ＯＳ個別ｄａｔａ  ａ（ＯＳＤａ，２０２）に対するアクセス可否ルールエントリ（３０２）には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）を実行しているＣＰＵからの読み書きアクセス可。
（３）ＯＳ個別ｄａｔａ  ｂ（ＯＳＤｂ，２０３）に対するアクセス可否ルールエントリ（３０３）には、ＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）を実行しているＣＰＵからの読み書きアクセス可。
（４）ＡＰ  ｃｏｄｅ  １（ＡＰＣ１，２０４）とＡＰ  ｃｏｄｅ  ２（ＡＰＣ２，２０５）に対するアクセス可否ルールエントリ（３０４）には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）、並びにＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）、を実行しているＣＰＵからの読みアクセス可。
（５）ＡＰ個別ｄａｔａ  ａ（ＡＰＤａ，２０６）に対するアクセス可否ルールエントリ（３０６）には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）を実行しているＣＰＵからの読み書きアクセス可。
（６）ＡＰ個別ｄａｔａ  ｂ（ＡＰＤｂ，２０７）に対するアクセス可否ルールエントリ（３０７）には、ＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）を実行しているＣＰＵからの読み書きアクセス可。
（７）それ以外の外部メモリの領域に対するアクセス可否ルールエントリには、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）、並びにＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）、を実行しているＣＰＵからの全てのアクセス不可。【００５４】
更に、内蔵メモリ（１６０）を対象とするアクセス制御ハードウェア（１２１）がアクセスの可否を判断するルールは以下の通り、それぞれドメイン分離ファームウェア（１４０）が設定する。
（１）ＯＳ  ｃｏｄｅ  １（ＯＳＣ１，２６０）とＯＳ  ｃｏｄｅ  ２（ＯＳＣ２，２６１）に対するアクセス可否ルールエントリ（３１０）には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）、並びにＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）、を実行しているＣＰＵからの読みアクセス可。
（２）ＯＳ個別ｄａｔａ  ａ（ＯＳＤａ，２６２）に対するアクセス可否ルールエントリ（３１１）には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）を実行しているＣＰＵからの読み書きアクセス可。
（３）ＯＳ個別ｄａｔａ  ｂ（ＯＳＤｂ，２６３）に対するアクセス可否ルールエントリ（３１２）には、ＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）を実行しているＣＰＵからの読み書きアクセス可。
（４）ＡＰ  ｃｏｄｅ  １（ＡＰＣ１，２６４）とＡＰ  ｃｏｄｅ  ２（ＡＰＣ２，２６５）に対するアクセス可否ルールエントリ（３１３）には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）、並びにＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）、を実行しているＣＰＵからの読みアクセス可。
（５）ＡＰ個別ｄａｔａ  ａ（ＡＰＤａ，２６６）に対するアクセス可否ルールエントリ（３１４）には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）を実行しているＣＰＵからの読み書きアクセス可。
（６）ＡＰ個別ｄａｔａ  ｂ（ＡＰＤｂ，２６７）に対するアクセス可否ルールエントリ（３１５）には、ＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）を実行しているＣＰＵからの読み書きアクセス可。【００５５】
なお、本実施例では、全ての内蔵メモリの領域を用いているため、図面上、存在していないが、もし、使用しない内蔵メモリの領域があるのであれば、それ以外の内蔵メモリの領域に対するアクセス可否ルールエントリには、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）、並びにＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）、を実行しているＣＰＵからの全てのアクセス不可、と設定する。【００５６】
ここで、ＯＳ間通信ｄａｔａ  ａ（ＯＳＭａ，２６８）に対するアクセス可否ルールエントリ（３１６）には、初期状態として、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）、並びにＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）、を実行しているＣＰＵからの全てのアクセス不可、とドメイン分離ファームウェア（１４０）が設定する。【００５７】
ＯＳ０（１４１）とソフトウェアモジュール０（１５１）、もしくはＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）の何れかがＯＳ間通信のためにＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２６８）に対し、データの読み書きを実施する際は、それに先立ちドメイン連携ミドルウェア（１５０）に対して当該領域に対する読み書きアクセス要求を出す。【００５８】
当該領域に対する読み書き要求を受け取ったドメイン連携ミドルウェア（１５０）は、ドメイン分離ファームウェア（１４０）を用いてＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２６８）に対するアクセス可否ルールエントリ（３１６）に、当該要求を出したＯＳとソフトウェアモジュールを実行しているＣＰＵからの読み書きアクセス可と設定し、その際、同時にＯＳ０（１４１）とソフトウェアモジュール０（１５１）、並びにＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）の実行する双方のＣＰＵからの読み書きアクセス可とすることのないよう制御する。その後、書き込み要求を出したＯＳとソフトウェアモジュールに対し、読み書きアクセス要求の受理を返す。【００５９】
ＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２６８）に対する読み書きアクセス要求の受理を受け取ったＯＳとソフトウェアモジュールは、ＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２６８）に対しデータの読み書きを実施した後、ドメイン連携ミドルウェア（１５０）に対し、当該領域に対する読み書き完了を出す。【００６０】
当該領域に対する読み書き完了を受け取ったドメイン連携ミドルウェア（１５０）は、ドメイン分離ファームウェア（１４０）を用いてＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２６８）に対するアクセス可否ルールエントリ（３１６）に、初期状態と同様に、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）、並びにＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）、を実行しているＣＰＵからの全てのアクセス不可、を設定する。【００６１】
以上の通り、本実施例では、内蔵メモリ（１６０）に必要なデータをコピーし、その内蔵メモリ（１６０）に対して、ＣＰＵがアクセスすることにより処理速度を向上させることが可能となる。この場合、アクセス制御ハードウェア及びドメイン分離ファームウェアでの管理を内蔵メモリ及び外部メモリの両方に設けることにより、各ＣＰＵは、内蔵メモリのみならず外部メモリへも直接アクセスすることが可能となり、内蔵メモリを介さない処理を行うことが可能となる。また、安全なＯＳ間通信を行う際には、ドメイン分離ファームウェアによりアクセスを許可するＯＳ（ＣＰＵ）を変更する必要がある。そのため、ＯＳ間通信に関する外部メモリの領域は、全てのＯＳ（ＣＰＵ）からの直接アクセスは遮断し、内蔵メモリの領域のみで行う構成とする。これにより、ドメイン連携ミドルウェアにおけるＯＳ間通信の管理が簡単になる。【００６２】
＜実施例４＞
図５は、図１に示した実施例の中で、個々のソフトウェアモジュール（ソフトウェアモジュール０（１５１）〜ソフトウェアモジュールｍ（１５４））に対して実行するためのハードウェア資源としてＣＰＵ（ＣＰＵ０（１０１）〜ＣＰＵｎ（１０８））と外部メモリ（１３０）と内蔵メモリ（１６０）を持ち、ドメイン分離ファームウェア（１４０）は各ＯＳ（ＯＳ０（１４１）〜ＯＳｍ（１４４））に対し、ＣＰＵ（ＣＰＵ０（１０１）〜ＣＰＵｎ（１０８））、外部メモリ（１３０）を分割したもの、内蔵メモリ（１６０）を分割したものを割り当てた、一実施例において、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）、並びにＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）とに注目し示したものである。本実施例では、実施例２に対し、外部メモリ（１３０）から内蔵メモリ（１６０）に必要なデータをコピーし、その内蔵メモリ（１６０）に対して、ＣＰＵがアクセスすることにより処理速度を向上させ、加えて内蔵メモリを用いてＯＳ間通信を行うことが相違する。なお、本図では、紙面の都合上、ＯＳとソフトウェアモジュールの記載は省略しているが、図２及び図３と同様である。【００６３】
ＯＳ０（１４１）とソフトウェアモジュール０（１５１）が実行するためのメモリ領域として割り当てられたものの実態は、外部メモリ（１３０）上のＯＳ  ｃｏｄｅ  １（ＯＳＣ１，２００）、ＯＳ  ｃｏｄｅ  ２（ＯＳＣ２，２０１）、ＯＳ個別ｄａｔａ  ａ（ＯＳＤａ，２０２）、ＡＰ  ｃｏｄｅ  １（ＡＰＣ１，２０４）、ＡＰ  ｃｏｄｅ  ２（ＡＰＣ２，２０５）、ＡＰ個別ｄａｔａ  ａ（ＡＰＤａ，２０６）、ＯＳ間通信ｄａｔａ  ａ（ＯＳＭａ，２０８）で、これらは、内蔵メモリ（１６０）上のＯＳ  ｃｏｄｅ  １（ＯＳＣ１，２６０）、ＯＳ  ｃｏｄｅ  ２（ＯＳＣ２，２６１）、ＯＳ個別ｄａｔａ  ａ（ＯＳＤａ，２６２）、ＡＰ  ｃｏｄｅ  １（ＡＰＣ１，２６４）、ＡＰ  ｃｏｄｅ  ２（ＡＰＣ２，２６５）、ＡＰ個別ｄａｔａ  ａ（ＡＰＤａ，２６６）、ＯＳ間通信ｄａｔａ  ａ（ＯＳＭａ，２６８）に実態のコピーが移され、ＭＭＵ０（１７１）により仮想メモリ空間（１８１）上のＯＳ  ｃｏｄｅ  １（ＯＳＣ１，２３０）、ＯＳ  ｃｏｄｅ  ２（ＯＳＣ２，２３１）、ＯＳ個別ｄａｔａ  ａ（ＯＳＤａ，２３２）、ＡＰ  ｃｏｄｅ  １（ＡＰＣ１，２３４）、ＡＰ  ｃｏｄｅ  ２（ＡＰＣ２，２３５）、ＡＰ個別ｄａｔａ  ａ（ＡＰＤａ，２３６）、ＯＳ間通信ｄａｔａ  ａ（ＯＳＭａ，２３８）にアドレス変換されて、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）からアクセスされる。【００６４】
同様に、ＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）が実行するためのメモリ領域として割り当てられたものの実態は、外部メモリ（１３０）上のＯＳ  ｃｏｄｅ  １（ＯＳＣ１，２００）、ＯＳ  ｃｏｄｅ  ２（ＯＳＣ２，２０１）、ＯＳ個別ｄａｔａ  ｂ（ＯＳＤｂ，２０３）、ＡＰ  ｃｏｄｅ  １（ＡＰＣ１，２０４）、ＡＰ  ｃｏｄｅ  ２（ＡＰＣ２，２０５）、ＡＰ個別ｄａｔａ  ｂ（ＡＰＤｂ，２０７）、ＯＳ間通信ｄａｔａ  ｂ（ＯＳＭｂ，２０９）で、これらは、内蔵メモリ（１６０）上のＯＳ  ｃｏｄｅ  １（ＯＳＣ１，２６０）、ＯＳ  ｃｏｄｅ  ２（ＯＳＣ２，２６１）、ＯＳ個別ｄａｔａ  ｂ（ＯＳＤｂ，２６３）、ＡＰ  ｃｏｄｅ  １（ＡＰＣ１，２６４）、ＡＰ  ｃｏｄｅ  ２（ＡＰＣ２，２６５）、ＡＰ個別ｄａｔａ  ｂ（ＡＰＤｂ，２６７）、ＯＳ間通信ｄａｔａ  ｂ（ＯＳＭｂ，２６９）に実態のコピーが移され、ＭＭＵ１（１７２）により仮想メモリ空間（１８２）上のＯＳ  ｃｏｄｅ  １（ＯＳＣ１，２４０）、ＯＳ  ｃｏｄｅ  ２（ＯＳＣ２，２４１）、ＯＳ個別ｄａｔａ  ｂ（ＯＳＤｂ，２４３）、ＡＰ  ｃｏｄｅ  １（ＡＰＣ１，２４４）、ＡＰ  ｃｏｄｅ  ２（ＡＰＣ２，２４５）、ＡＰ個別ｄａｔａ  ｂ（ＡＰＤｂ，２４７）、ＯＳ間通信ｄａｔａ  ｂ（ＯＳＭｂ，２４９）にアドレス変換されて、ＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）からアクセスされる。【００６５】
内蔵メモリ管理テーブル（２５０）は、内蔵メモリ（１６０）上の空き領域、外部メモリ（１３０）上のメモリ領域の実態（ＯＳ  ｃｏｄｅ  １（ＯＳＣ１，２００）、ＯＳ  ｃｏｄｅ  ２（ＯＳＣ２，２０１）、ＯＳ個別ｄａｔａ  ａ（ＯＳＤａ，２０２）、ＯＳ個別ｄａｔａ  ｂ（ＯＳＤｂ，２０３）、ＡＰ  ｃｏｄｅ  １（ＡＰＣ１，２０４）、ＡＰ  ｃｏｄｅ  ２（ＡＰＣ２，２０５）、ＡＰ個別ｄａｔａ  ａ（ＡＰＤａ，２０６）、ＡＰ個別ｄａｔａ  ｂ（ＡＰＤｂ，２０７）、ＯＳ間通信ｄａｔａ  ａ（ＯＳＭａ，２０８）、ＯＳ間通信ｄａｔａ  ｂ（ＯＳＭｂ，２０９）等）のコピーが、内部メモリ（１６０）上のどこ（ＯＳ  ｃｏｄｅ  １（ＯＳＣ１，２６０）、ＯＳ  ｃｏｄｅ  ２（ＯＳＣ２，２６１）、ＯＳ個別ｄａｔａ  ａ（ＯＳＤａ，２６２）、ＯＳ個別ｄａｔａ  ｂ（ＯＳＤｂ，２６３）、ＡＰ  ｃｏｄｅ  １（ＡＰＣ１，２６４）、ＡＰ  ｃｏｄｅ  ２（ＡＰＣ２，２６５）、ＡＰ個別ｄａｔａ  ａ（ＡＰＤａ，２６６）、ＡＰ個別ｄａｔａ  ｂ（ＡＰＤｂ，２６７）、ＯＳ間通信ｄａｔａ  ａ（ＯＳＭａ，２６８）、ＯＳ間通信ｄａｔａ  ｂ（ＯＳＭｂ，２６９）等）に移されたか、を管理する。【００６６】
ここで、通常内蔵メモリ（１６０）の容量は、外部メモリの容量に比べて小さく、外部メモリ（１３０）上にメモリ領域として割り当てられたものの実態のコピーを、全てを内蔵メモリ（１６０）に保持することは可能ではない。従って、ソフトウェアモジュールとＯＳのアクセスに応じて、内蔵メモリ（１６０）上に領域を確保し、そのアクセスの対象である外部メモリ（１３０）上にメモリ領域の実態のコピーを、当該領域に割り付ける。ここで、内蔵メモリ管理テーブル（２５０）により内蔵メモリ（１６０）に空きがないことが明らかな場合は、既に内蔵メモリ（１６０）に割り付けられているメモリ領域の実態のコピー群の中から一つを選択し、当該メモリ領域の実態のコピーを外部メモリ（１３０）の該当する領域に退避し、領域を確保する。【００６７】
この様なハードウェア資源のソフトウェアに対する割り当てに対して、本実施例におけるアクセス制御ハードウェア（１２０）は、ＭＭＵ０（１７１）およびＭＭＵ１（１７２）により変換されたアドレスとＣＰＵとの組み合わせにより、アクセスの可否を判断する。従って、アクセス制御ハードウェア（１２０）がアクセスの可否を判断するルールは、以下の通り、それぞれドメイン分離ファームウェア（１４０）が設定する。
（１）ＯＳ  ｃｏｄｅ  １（ＯＳＣ１，２００）とＯＳ  ｃｏｄｅ  ２（ＯＳＣ２，２０１）に対するアクセス可否ルールエントリ（３００）には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）、並びにＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）、を実行しているＣＰＵからの読みアクセス可。
（２）ＯＳ個別ｄａｔａ  ａ（ＯＳＤａ，２０２）に対するアクセス可否ルールエントリ（３０２）には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）を実行しているＣＰＵからの読み書きアクセス可。
（３）ＯＳ個別ｄａｔａ  ｂ（ＯＳＤｂ，２０３）に対するアクセス可否ルールエントリ（３０３）には、ＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）を実行しているＣＰＵからの読み書きアクセス可。
（４）ＡＰ  ｃｏｄｅ  １（ＡＰＣ１，２０４）とＡＰ  ｃｏｄｅ  ２（ＡＰＣ２，２０５）に対するアクセス可否ルールエントリ（３０４）には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）、並びにＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）、を実行しているＣＰＵからの読みアクセス可。
（５）ＡＰ個別ｄａｔａ  ａ（ＡＰＤａ，２０６）に対するアクセス可否ルールエントリ（３０６）には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）を実行しているＣＰＵからの読み書きアクセス可。
（６）ＡＰ個別ｄａｔａ  ｂ（ＡＰＤｂ，２０７）に対するアクセス可否ルールエントリ（３０７）には、ＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）を実行しているＣＰＵからの読み書きアクセス可。
（７）ＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２０８）に対するアクセス可否ルールエントリ（３０８）には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）を実行しているＣＰＵからの読み書きアクセス可。
（８）ＯＳ間通信ｄａｔａ  ｂ（ＯＳＭｂ，２０９）に対するアクセス可否ルールエントリ（３０９）には、ＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）を実行しているＣＰＵからの読み書きアクセス可。
（９）それ以外の外部メモリの領域に対するアクセス可否ルールエントリには、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）、並びにＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）、を実行しているＣＰＵからの全てのアクセス不可。【００６８】
更に、内蔵メモリ（１６０）を対象とするアクセス制御ハードウェア（１２１）がアクセスの可否を判断するルールは、以下の通り、それぞれドメイン分離ファームウェア（１４０）が設定する。
（１）ＯＳ  ｃｏｄｅ  １（ＯＳＣ１，２６０）とＯＳ  ｃｏｄｅ  ２（ＯＳＣ２，２６１）に対するアクセス可否ルールエントリ（３１０）には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）、並びにＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）、を実行しているＣＰＵからの読みアクセス可。
（２）ＯＳ個別ｄａｔａ  ａ（ＯＳＤａ，２６２）に対するアクセス可否ルールエントリ（３１１）には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）を実行しているＣＰＵからの読み書きアクセス可。
（３）ＯＳ個別ｄａｔａ  ｂ（ＯＳＤｂ，２６３）に対するアクセス可否ルールエントリ（３１２）には、ＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）を実行しているＣＰＵからの読み書きアクセス可。
（４）ＡＰ  ｃｏｄｅ  １（ＡＰＣ１，２６４）とＡＰ  ｃｏｄｅ  ２（ＡＰＣ２，２６５）に対するアクセス可否ルールエントリ（３１３）には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）、並びにＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）、を実行しているＣＰＵからの読みアクセス可。
（５）ＡＰ個別ｄａｔａ  ａ（ＡＰＤａ，２６６）に対するアクセス可否ルールエントリ（３１４）には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）を実行しているＣＰＵからの読み書きアクセス可。
（６）ＡＰ個別ｄａｔａ  ｂ（ＡＰＤｂ，２６７）に対するアクセス可否ルールエントリ（３１５）には、ＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）を実行しているＣＰＵからの読み書きアクセス可。
（７）ＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２６８）に対するアクセス可否ルールエントリ（３１６）には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）を実行しているＣＰＵからの読み書きアクセス可。
（８）ＯＳ間通信ｄａｔａ  ｂ（ＯＳＭｂ，２６９）に対するアクセス可否ルールエントリ（３１７）には、ＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）を実行しているＣＰＵからの読み書きアクセス可。【００６９】
なお、本実施例では、全ての内蔵メモリの領域を用いているため、図面上、存在していないが、もし、使用しない内蔵メモリの領域があるのであれば、それ以外の内蔵メモリの領域に対するアクセス可否ルールエントリには、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）、並びにＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）、を実行しているＣＰＵからの全てのアクセス不可と、設定する。【００７０】
ソフトウェアモジュール０（１５１）からソフトウェアモジュールｍ（１５４）へＯＳ間通信を実施する際は、ソフトウェアモジュール０（１５１）が内蔵メモリ（１６０）上のＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２６８）にデータの書き込みが完了した時点で、ドメイン連携ミドルウェア（１５０）に転送要求を出す。【００７１】
転送要求を受け取ったドメイン連携ミドルウェア（１５０）は、ドメイン分離ファームウェア（１４０）を用いて、ＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２６８）に対するアクセス可否ルールエントリ（３１６）とＯＳ間通信Ｄａｔａ  ｂ（ＯＳＭｂ，２６９）に対するアクセス可否ルールエントリ（３１７）とに対しＯＳ０（１４１）とソフトウェアモジュール０（１５１）、並びにＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）、を実行しているＣＰＵからの全てのアクセス不可、と設定する。その後、ドメイン連携ミドルウェア（１５０）は、ドメイン分離ファームウェア（１４０）を用いてＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２６８）に対するアクセス可否ルールエントリ（３１６）とＯＳ間通信Ｄａｔａ  ｂ（ＯＳＭｂ，２６９）に対するアクセス可否ルールエントリ（３１７）とに対し、ドメイン連携ミドルウェア（１５０）を実行しているＣＰＵからの読み書きアクセス可と設定し、ＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２６８）に書き込まれたデータをＯＳ間通信Ｄａｔａ  ｂ（ＯＳＭｂ，２６９）の指定された場所に書き出す。その後、再びドメイン分離ファームウェア（１４０）を用いてＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２６８）に対するアクセス可否ルールエントリ（３１６）とＯＳ間通信Ｄａｔａ  ｂ（ＯＳＭｂ，２６９）に対するアクセス可否ルールエントリ（３１７）とに対し、ドメイン連携ミドルウェア（１５０）を実行しているＣＰＵからの全てのアクセス不可と設定し、完了した後、ドメイン分離ファームウェア（１４０）を用いてＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２６８）に対するアクセス可否ルールエントリ（３１６）には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）を実行しているＣＰＵからの読み書きアクセス可、ＯＳ間通信ｄａｔａ  ｂ（ＯＳＭｂ，２６９）に対するアクセス可否ルールエントリ（３１７）には、ＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）を実行しているＣＰＵからの読み書きアクセス可、と設定し、ソフトウェアモジュール０（１５１）に対し転送完了を出す。【００７２】
ソフトウェアモジュールｍ（１５４）からソフトウェアモジュール０（１５１）へＯＳ間通信を実施する際は、ソフトウェアモジュールｍ（１５４）が外部メモリ（１３０）上のＯＳ間通信Ｄａｔａ  ｂ（ＯＳＭａ，２６９）にデータの書き込みが完了した時点で、ドメイン連携ミドルウェア（１５０）に転送要求を出す。【００７３】
転送要求を受け取ったドメイン連携ミドルウェア（１５０）は、ドメイン分離ファームウェア（１４０）を用いてＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２６８）に対するアクセス可否ルールエントリ（３１６）とＯＳ間通信Ｄａｔａ  ｂ（ＯＳＭｂ，２６９）に対するアクセス可否ルールエントリ（３１７）とに対しＯＳ０（１４１）とソフトウェアモジュール０（１５１）、並びにＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）、を実行しているＣＰＵからの全てのアクセス不可、と設定する。その後、ドメイン連携ミドルウェア（１５０）は、ＯＳ間通信Ｄａｔａ  ｂ（ＯＳＭｂ，２６９）に書き込まれたデータをＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２６８）の指定された場所に書き出し、完了した後、ドメイン分離ファームウェア（１４０）を用いてＯＳ間通信Ｄａｔａ  ａ（ＯＳＭａ，２６８）に対するアクセス可否ルールエントリ（３１６）には、ＯＳ０（１４１）とソフトウェアモジュール０（１５１）を実行しているＣＰＵからの読み書きアクセス可、ＯＳ間通信ｄａｔａ  ｂ（ＯＳＭｂ，２６９）に対するアクセス可否ルールエントリ（３１７）には、ＯＳｍ（１４４）とソフトウェアモジュールｍ（１５４）を実行しているＣＰＵからの読み書きアクセス可、と設定し、ソフトウェアモジュールｍ（１５４）に対し転送完了を出す。【００７４】
以上の通り、本実施例では、実施例２と比較して内蔵メモリを用いてデータ処理を行うため高速に動作することが可能となる。
【産業上の利用可能性】
【００７５】
本発明は、マルチプロセッサシステムに適用して特に有効である。
【図１】
2010097925.tif 000003
【図２】
2010097925.tif 000004
【図３】
2010097925.tif 000005
【図４】
2010097925.tif 000006
【図５】
2010097925.tif 000007
【国際調査報告】
2010097925.tif 000008
2010097925.tif 000009
2010097925.tif 000010
2010097925.tif 000011
2010097925.tif 000012
2010097925.tif 000013