JPWO2010097925A1 - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- JPWO2010097925A1 JPWO2010097925A1 JP2011501407A JP2011501407A JPWO2010097925A1 JP WO2010097925 A1 JPWO2010097925 A1 JP WO2010097925A1 JP 2011501407 A JP2011501407 A JP 2011501407A JP 2011501407 A JP2011501407 A JP 2011501407A JP WO2010097925 A1 JPWO2010097925 A1 JP WO2010097925A1
- Authority
- JP
- Japan
- Prior art keywords
- domain
- area
- access
- memory
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 16
- 230000015654 memory Effects 0.000 claims abstract description 230
- 238000004891 communication Methods 0.000 claims abstract description 139
- 238000012545 processing Methods 0.000 claims abstract description 34
- 238000006243 chemical reaction Methods 0.000 claims 2
- 238000000926 separation method Methods 0.000 description 47
- 101100339482 Colletotrichum orbiculare (strain 104-T / ATCC 96160 / CBS 514.97 / LARS 414 / MAFF 240422) HOG1 gene Proteins 0.000 description 29
- 102000052594 Anaphase-Promoting Complex-Cyclosome Apc2 Subunit Human genes 0.000 description 25
- 108091006464 SLC25A23 Proteins 0.000 description 25
- FYLGZBNNVGZPIW-UHFFFAOYSA-N 1-[4-(1,4-dioxa-8-azaspiro[4.5]decan-8-yl)phenyl]ethanone Chemical compound C1=CC(C(=O)C)=CC=C1N1CCC2(OCCO2)CC1 FYLGZBNNVGZPIW-UHFFFAOYSA-N 0.000 description 17
- 238000012546 transfer Methods 0.000 description 12
- 230000002159 abnormal effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000000034 method Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
複数OSを搭載した場合、他のOSに影響を与えないように、効率よくメモリ資源を用いることが望まれる。また、OSが異なるといっても、一つのシステム上に搭載されているため、OS間での通信が必要となる。この場合、他のOSに影響を与えないようにデータ通信を行うことが必要となる。そこで、情報処理装置を、第1中央処理装置、第1オペレーティングシステム、及び、メモリの領域のうち一部の第1領域を第1ドメインとして割り当て、第2中央処理装置、第2オペレーティングシステム及びメモリの領域のうち一部の第2領域を第2ドメインとして割り当て、一方のドメインが他のドメインに割当てられた領域にアクセスしないように制御するファームウェアと、第1ドメイン及び第2ドメイン間でデータの通信が必要な場合に、当該通信を制御するミドルウェアとを有する構成とする。
Description
本発明は、複数個の中央演算装置と内蔵メモリを備え、或いは異なるオペレーティングシステムの管理下でプログラムの実行が可能なデータプロセッサに関し、例えば一個の半導体チップに形成されたマルチCPU(中央演算処理装置)を持つ半導体集積回路化されたマイクロプロセッサに適用して有効な技術に関する。
近年、マイクロプロセッサにおける集積化が進み、単一の中央演算処理装置を搭載したマイクロプロセッサを複数搭載したシステムが集積化され、複数の中央演算処理装置を搭載したマイクロプロセッサが開発されている。複数の中央演算処理装置を搭載したマイクロプロセッサにおいては、主にLSIの面積に対する端子数の制約によって、各中央演算処理装置が利用するメモリや入出力装置については、マイクロプロセッサ内で共用化されることが一般的であり、主にマイクロプロセッサ内のバスやコントローラの設計によって実現されている。特に、メモリを共用した場合に例えば、制御ソフトウェアのバグなどにより不正アクセスが発生し、メモリ領域のアクセスの衝突が起こると画像データが正しく処理されないといった問題が発生するので、メモリ領域のアクセスの衝突を回避することが重要になる。回路量のオーバヘッドが少ない不正アドレスへのアクセスの見地、遮断回路を提供する技術が、特許文献1で示されている。
一方、複数の中央演算処理装置を搭載したマイクロプロセッサ上でプログラムを動作させる場合、基本システムであるオペレーティングシステム(OS)も複数になり、それらのOS間でのデータのやりとりや、別のOS上にある機能を複数のCPUやOSの存在を意識させないで実行する方式が必要になってくる。このような状況において、上記のようなマルチプロセッサシステム上でOSとアプリケーションの実行を制御するシステムとしては、例えば、特許文献2に開示されるように、マルチプロセッサ上でシングルプロセッサ向けOSと既存のアプリケーションを動作させ並列処理を実現できるようにする従来技術がある。このように物理的なCPUなどシステム構成資源とOSやアプリケーションとの結びつきを自由にする機構は仮想化と呼ばれ、サーバなどの分野で広く用いられるようになってきている。
特開2004−334410号公報
特開2003−345614号公報
単一チップ上に多数のCPUやIPが集積されたマルチコアシステムでは、複雑化した機能が互いに関連し、同時に動作するため、一つの物理的なデバイスを複数のコアおよびそれらコア上で動作するOSで共有する状況が起こる。この共有において、共有の主体となるOSは、時分割で動作していて一時期には一つのOSだけがアクティブ状態であるということではなく、それぞれが常にアクティブで並列に動作してI/Oデバイスを使用するという状況である。そのような場合、実デバイスを制御するための制御レジスタ群は一つであるので、何らかの形でそれらに対するアクセスを調停し、1セットの制御レジスタ群を仮想的に複数に見せて、複数のOSからのアクセスを処理する必要がある。上記のように、マルチコア環境においては、複数のCPUが同時に稼動し、そのそれぞれが別のOS下にあるということが一般的である。一方、I/O装置やアクセラレータIPなどのデバイスは個数が限られており、それら複数のCPUやOSで共有を行いたいという要求がある。そのような共有の状況としては、例えばハードディスクを装備したカーナビゲーションシステムにおいて、一つのハードディスク装置を地図データの格納と音楽データの格納に用い、それらを別々のプロセッサで動作する経路探索と音楽再生で同時にアクセスしたい場合などがある。
特に、複数OSを搭載した場合、一つのOSが管理するハードウェア資源は、そのOS以外からアクセスされないことを前提として作られており、そのOSに割り当てられた内蔵メモリの一部領域もしくは外部メモリの一部領域に対する、そのOS以外からアクセス、特にデータが書き換えられる様な想定外の事象は、そのOS並びにその上で実行するソフトウェアモジュールに対して異常動作を引き起こす要因となる。従って、内蔵メモリまたは外部メモリにおいては、複数のOSで共有しないように分離して管理するのが望ましい。しかしながら、内蔵メモリや外部メモリは、コスト等の観点から無限に搭載することはできない。従って、他のOSに影響を与えないように、効率よくメモリ資源を用いることが望まれる。また、OSが異なるといっても、一つのシステム上に搭載されているため、OS間での通信が必要となる。この場合、他のOSに影響を与えないようにデータ通信を行うことが必要となる。
上記の課題に対して本発明においては、第1中央処理装置と、第2中央処理装置と、第1中央処理装置にて実行される第1オペレーティングシステムと、第2中央処理装置にて実行される第2オペレーティングシステムと、第1中央処理装置及び第2中央処理装置にアクセスされるメモリとを有する情報処理装置であって、情報処理装置を、第1中央処理装置、第1オペレーティングシステム、及び、メモリの領域のうち一部の第1領域を第1ドメインとして割り当て、第2中央処理装置、第2オペレーティングシステム及びメモリの領域のうち一部の第2領域を第2ドメインとして割り当て、一方のドメインが他のドメインに割当てられた領域にアクセスしないように制御するファームウェアと、第1ドメイン及び第2ドメイン間でデータの通信が必要な場合に、当該通信を制御するミドルウェアとを有する。
更に望ましくは、ファームウェアからの設定に基づいて、一方のドメインが他方のドメインに割当てられた領域にアクセスする際に、そのアクセスを遮断するアクセス制御モジュールを更に具備する。
また、第1オペレーティングシステムのコードと第2オペレーティングシステムのコードが共有できる場合において、メモリは、メモリの領域の一部の第3領域に、共有できるコードを保持し、ファームウェアは、第3領域に対し、第1ドメイン及び第2ドメインからリードアクセスを許可し、ライトアクセスを許可しないように制御する。
また、メモリは、第1ドメイン及び第2ドメイン間でデータの通信を行う場合に、通信用データを格納する第4領域を含み、ファームウェアは、第1及び第2ドメインから通信の要求がない場合には、第4領域を第1ドメイン及び第2ドメインからアクセスできないように制御し、ミドルウェアは、第1ドメインが第2ドメインにデータの通信を行う旨の要求を受けた場合に、第1ドメインに第4領域へのアクセスを許可し、第2ドメインに第4領域へのアクセスを許可しないようにファームウェアを制御した状態で、第1ドメインに第4領域へのアクセスを許可する。
また、メモリは、第1ドメインが第2ドメインにデータの通信を行う場合に、通信用のデータを書き込む第5領域と、第2ドメインが第1ドメインにデータの通信を行う場合に、通信用のデータを書き込む第6領域とを有し、ファームウェアは、第5領域に対して第1ドメインがアクセス可能で、第2ドメインはアクセス不可能になるように制御し、第6領域に対して第2ドメインがアクセス可能で、第1ドメインがアクセス不可能となるように制御し、ミドルウェアは、第1ドメインが第2ドメインにデータの通信を行う旨の要求を受けた場合に、第1ドメインが第5領域に通信用のデータを書き込んだ後、第5領域及び第6領域が第1及び第2ドメインからアクセス不可能となるようにファームウェアに指示し、その後、第5領域から第6領域へのデータを転送する。
本願において開示される発明によれば、マルチコア環境において、ソフトウェア開発に要する期間が短縮でき、また入出力処理の効率化が可能になる。
100:マルチコアプロセッサ、101〜108:CPU、110:プロセッサ内バス、120及び121:アクセス制御ハードウェア、130:外部メモリ、140:ドメイン分離ファームウェア、141〜4:OS、150:ドメイン連携ミドルウェア、151〜4:ソフトウェアモジュール、160:内蔵メモリ、171及び172:MMU(メモリ管理ユニット)、181及び182:仮想メモリ空間、200〜208:外部メモリの領域、210〜218及び220〜229:各OSの仮想メモリ空間の領域、250:内蔵メモリ管理テーブル、260〜269:内蔵メモリの領域、300〜309及び310〜319:アクセス制御ハードウェアの設定領域。
図1は、本発明における情報処理装置のハードウェアとソフトウェアの構成の一例である。
本実施例における情報処理装置のハードウェアの構成要素であるマルチコアプロセッサ(100)は、n個の中央演算処理装置(以下、「CPU」と呼ぶ。)(CPU0(101)〜CPUn(108))と外部メモリ(130)と内蔵メモリ(160)、並びにアクセス制御ハードウェア(120)とがプロセッサ内バス(110)で接続された構成を備え、各CPUからは、プロセッサ内バス(110)を介して、外部メモリ(130)ならびに内蔵メモリ(160)の全ての領域に対するアクセスを可能とする。また、図示していないが、外部メモリを制御するメモリ制御装置やシリアルIO等の入出力制御装置がプロセッサ内バスに接続される。なお、入出力制御装置は、外部メモリ(130)や内蔵メモリ(160)と同様に一つのメモリ空間の中に含まれ、その制御は同じになるため、外部メモリや内蔵メモリに代表されるものとし、以下、入出力制御装置に関する説明は省略する。
アクセス制御ハードウェア(120)は、n個のCPU(CPU0(101)〜CPUn(108))のそれぞれがプロセッサ内バス(110)を介して外部メモリ(130)、内蔵メモリ(160)をアクセスする際に、プロセッサ内バス(110)上に生成するトランザクションを監視し、個々のトランザクションに対して、あらかじめ指定されたアクセスの可否を定めたルールに基づきアクセスの可否を判断する。ここで、前記アクセスの可否を定めたルールにもとづき許可されたアクセスに関するトランザクションに関しては通常通り処理されるが、前記ルールにもとづき許可されていないアクセスに関するトランザクションに関しては、アクセス違反として無効化(遮断)されるとともに、アクセス違反の発生に対する例外処理を起動するために、当該トランザクションを生成したCPUに対して割込み信号を送ることを特徴とする。また、アクセス制御ハードウェア(120)は、個々のCPUから内蔵メモリと外部メモリの領域に対するアクセスの可否をその先頭アドレスと領域のサイズにより指定される。また、アクセスの可否は、各OS毎にリードアクセス/ライトアクセスの夫々について指定される。なお、各領域に対する設定は、リードアクセス/ライトアクセスが許可されるOSを指定するのみとし、設定されていないOSについては、アクセスを許可しないようにする。これにより、アクセス制御ハードウェア(120)を小さくすることが可能となる。
本実施例の情報処理装置におけるソフトウェア構成は、ドメイン分離ファームウェア(140)が、前記マルチコアプロセッサ(100)上でm個のOS(OS0(141)、OS1(142)、OS2(143)〜OSm(144))を実行するために必要となる環境を提供するためにハードウェア資源の管理を実施することを特徴とする。
具体的には、本実施例では、前記ドメイン分離ファームウェア(140)及び各OS0〜m(141〜144)は、ハードウェア資源の管理のため、以下のことを行う。
(1)ドメイン分離ファームウェア(140)は、OS0(141)に対し、CPU0(101)とCPU1(102)の2つのCPU、並びに内蔵メモリ(160)の一部領域と外部メモリ(130)の一部領域をハードウェア資源として割り当て、さらにOS0(141)は、割り当てられたハードウェア資源を管理し、ソフトウェアモジュール0(151)に対してプログラムを実行するための環境を提供する。
(2)ドメイン分離ファームウェア(140)は、OS1(142)に対し、CPU2(103)とCPU3(104)の2つのCPU、並びに内蔵メモリ(160)の一部領域と外部メモリ(130)の一部領域をハードウェア資源として割り当て、さらにOS1(142)は、割り当てられたハードウェア資源を管理し、ソフトウェアモジュール1(152)に対してプログラムを実行するための環境を提供する。
(3)ドメイン分離ファームウェア(140)は、OS2(143)に対し、CPU4(105)とCPU5(106)の2つのCPU、並びに内蔵メモリ(160)の一部領域と外部メモリ(130)の一部領域をハードウェア資源として割り当て、さらにOS2(143)は、割り当てられたハードウェア資源を管理し、ソフトウェアモジュール2(153)に対してプログラムを実行するための環境を提供する。
(4)以下同様に、ドメイン分離ファームウェア(140)は、OSm(144)に対し、CPUn−1(107)とCPUn(108)の2つのCPU、並びに内蔵メモリ(160)の一部領域と外部メモリ(130)の一部領域をハードウェア資源として割り当て、さらにOSm(144)は、割り当てられたハードウェア資源を管理し、ソフトウェアモジュールm(154)に対してプログラムを実行するための環境を提供する。
(1)ドメイン分離ファームウェア(140)は、OS0(141)に対し、CPU0(101)とCPU1(102)の2つのCPU、並びに内蔵メモリ(160)の一部領域と外部メモリ(130)の一部領域をハードウェア資源として割り当て、さらにOS0(141)は、割り当てられたハードウェア資源を管理し、ソフトウェアモジュール0(151)に対してプログラムを実行するための環境を提供する。
(2)ドメイン分離ファームウェア(140)は、OS1(142)に対し、CPU2(103)とCPU3(104)の2つのCPU、並びに内蔵メモリ(160)の一部領域と外部メモリ(130)の一部領域をハードウェア資源として割り当て、さらにOS1(142)は、割り当てられたハードウェア資源を管理し、ソフトウェアモジュール1(152)に対してプログラムを実行するための環境を提供する。
(3)ドメイン分離ファームウェア(140)は、OS2(143)に対し、CPU4(105)とCPU5(106)の2つのCPU、並びに内蔵メモリ(160)の一部領域と外部メモリ(130)の一部領域をハードウェア資源として割り当て、さらにOS2(143)は、割り当てられたハードウェア資源を管理し、ソフトウェアモジュール2(153)に対してプログラムを実行するための環境を提供する。
(4)以下同様に、ドメイン分離ファームウェア(140)は、OSm(144)に対し、CPUn−1(107)とCPUn(108)の2つのCPU、並びに内蔵メモリ(160)の一部領域と外部メモリ(130)の一部領域をハードウェア資源として割り当て、さらにOSm(144)は、割り当てられたハードウェア資源を管理し、ソフトウェアモジュールm(154)に対してプログラムを実行するための環境を提供する。
また、前記ドメイン分離ファームウェア(140)は、前記アクセス制御ハードウェア(120)に対しアクセスの可否を判断するルールの設定を実施する。
ここで、通常のOSは、そのOSが管理するハードウェア資源は、そのOS以外からアクセスされないことを前提として作られており、そのOSに割り当てられた内蔵メモリ(160)の一部領域もしくは外部メモリ(130)の一部領域に対する、そのOS以外からアクセス、特にデータが書き換えられる様な想定外の事象は、そのOS並びにその上で実行するソフトウェアモジュールに対して異常動作を引き起こす要因となる。
この要因を防ぐために本実施例では、ドメイン分離ファームウェア(140)は、アクセス制御ハードウェア(120)に対し、アクセスの可否を判断するルールを以下のように設定する。
(1)OS0(141)に割り当てられた内蔵メモリ(160)の一部領域もしくは外部メモリ(130)の一部領域に対して、OS1(142)並びにソフトウェアモジュール1(152)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU2(103)とCPU3(104)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。また、OS2(143)並びにソフトウェアモジュール2(153)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU4(105)とCPU5(106)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。以下同様にして、OSm(144)並びにソフトウェアモジュールm(154)からアクセス、さらにはデータの書き換えが不可能とするよう、CPUn−1(107)とCPUn(108)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。
(2)OS1(142)に割り当てられた内蔵メモリ(160)の一部領域もしくは外部メモリ(130)の一部領域に対して、OS0(141)並びにソフトウェアモジュール0(151)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU0(101)とCPU1(102)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。また、OS2(143)並びにソフトウェアモジュール2(153)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU4(105)とCPU5(106)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。以下同様にして、OSm(144)並びにソフトウェアモジュールm(154)からアクセス、さらにはデータの書き換えが不可能とするよう、CPUn−1(107)とCPUn(108)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。
(3)OS2(143)に割り当てられた内蔵メモリ(160)の一部領域もしくは外部メモリ(130)の一部領域に対して、OS0(141)並びにソフトウェアモジュール0(151)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU0(101)とCPU1(102)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。また、OS1(142)並びにソフトウェアモジュール1(152)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU2(103)とCPU3(104)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。以下同様にして、OSm(144)並びにソフトウェアモジュールm(154)からアクセス、さらにはデータの書き換えが不可能とするよう、CPUn−1(107)とCPUn(108)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。
(4)以下同様にしてOSm(144)に割り当てられた内蔵メモリ(160)の一部領域もしくは外部メモリ(130)の一部領域に対して、OS0(141)並びにソフトウェアモジュール0(151)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU0(101)とCPU1(102)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。また、OS1(142)並びにソフトウェアモジュール1(152)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU2(103)とCPU3(104)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。以下同様にして、OS2(143)並びにソフトウェアモジュール2(153)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU4(105)とCPU5(106)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。
(1)OS0(141)に割り当てられた内蔵メモリ(160)の一部領域もしくは外部メモリ(130)の一部領域に対して、OS1(142)並びにソフトウェアモジュール1(152)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU2(103)とCPU3(104)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。また、OS2(143)並びにソフトウェアモジュール2(153)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU4(105)とCPU5(106)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。以下同様にして、OSm(144)並びにソフトウェアモジュールm(154)からアクセス、さらにはデータの書き換えが不可能とするよう、CPUn−1(107)とCPUn(108)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。
(2)OS1(142)に割り当てられた内蔵メモリ(160)の一部領域もしくは外部メモリ(130)の一部領域に対して、OS0(141)並びにソフトウェアモジュール0(151)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU0(101)とCPU1(102)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。また、OS2(143)並びにソフトウェアモジュール2(153)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU4(105)とCPU5(106)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。以下同様にして、OSm(144)並びにソフトウェアモジュールm(154)からアクセス、さらにはデータの書き換えが不可能とするよう、CPUn−1(107)とCPUn(108)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。
(3)OS2(143)に割り当てられた内蔵メモリ(160)の一部領域もしくは外部メモリ(130)の一部領域に対して、OS0(141)並びにソフトウェアモジュール0(151)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU0(101)とCPU1(102)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。また、OS1(142)並びにソフトウェアモジュール1(152)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU2(103)とCPU3(104)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。以下同様にして、OSm(144)並びにソフトウェアモジュールm(154)からアクセス、さらにはデータの書き換えが不可能とするよう、CPUn−1(107)とCPUn(108)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。
(4)以下同様にしてOSm(144)に割り当てられた内蔵メモリ(160)の一部領域もしくは外部メモリ(130)の一部領域に対して、OS0(141)並びにソフトウェアモジュール0(151)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU0(101)とCPU1(102)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。また、OS1(142)並びにソフトウェアモジュール1(152)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU2(103)とCPU3(104)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。以下同様にして、OS2(143)並びにソフトウェアモジュール2(153)からアクセス、さらにはデータの書き換えが不可能とするよう、CPU4(105)とCPU5(106)から当該内部メモリ(160)の一部領域並びに当該外部メモリ(130)の一部領域に対してアクセス、特にデータの書き換えを不可能とする。
このように設定することにより、各OSに割当てられた資源は、基本的に他のOSからアクセスされないため、他のOSの不正なアクセスによる異常動作を防止することが可能となる。
また、本実施例では、OS間の通信を行うためにドメイン連携ミドルウェア(150)を実装する。ドメイン連携ミドルウェア(150)は、本実施例のアクセス制御ハードウェア(120)とドメイン分離ファームウェア(140)を活用し、OS0(141)とソフトウェアモジュール0(151)とが実行するためのハードウェア資源、OS1(142)とソフトウェアモジュール1(152)とが実行するためのハードウェア資源、OS2(143)とソフトウェアモジュール2(153)とが実行するためのハードウェア資源、並びに以下同様にOSm(144)とソフトウェアモジュールm(154)とが実行するためのハードウェア資源が分離されているシステム構成において、ソフトウェアモジュール(ソフトウェアモジュール0(151)、ソフトウェアモジュール1(152)、ソフトウェアモジュール2(153)〜ソフトウェアモジュールm(154))のそれぞれの間で処理の連携を実施するための通信機能を提供する。
このように新たにドメイン連携ミドルウェア(150)を設ける理由は、実装を容易化するためである。即ち、ドメイン分離ファームウェアは、基本的に各OS間を確実に分離することにある。一方、OS間での連携は、分離した各OS間をつなぐことになる。このように全く機能が異なるものをドメイン分離ファームウェアに取り込むと、OS間通信が不要な場合であっても分離した各OSの間に穴をあけられることになり、好ましくない。一方、OSにOS間通信を行うための機能を実装しようとすると、他のOSの状況等を考慮するように変更しなければならず、その改変に時間がかかる。それに対し、本願のようにドメイン連携ミドルウェアを新たに設け、OSからOS間通信を行いたい旨の要求を出すようにし、全体を把握しているドメイン連携ミドルウェアでその可否を判断し、通信に必要な設定をドメイン分離ファームウェアにする構成とすることにより、OS間通信が必要な場合のみ、当該ドメイン連携ファームウェアを実装すればよいことになる。
なお、ドメイン分離ファームウェア(140)及びドメイン連携ミドルウェア(150)は、OSが必要な場合に読み出す構成となっており、その読み出したOSが所属するドメイン内のCPUにより実行されてもよいし、異なるCPUで実行しても良い。
<実施例1>
図2は、図1に示した実施例の中で、個々のソフトウェアモジュール(ソフトウェアモジュール0(151)〜ソフトウェアモジュールm(154))に対して実行するためのハードウェア資源としてCPU(CPU0(101)〜CPUn(108))と外部メモリ(130)に限定し、ドメイン分離ファームウェア(140)は各OS(OS0(141)〜OSm(144))に対し、CPU(CPU0(101)〜CPUn(108))と外部メモリ(130)を分割したものを割り当てた、一実施例において、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)とに注目し示したものである。
図2は、図1に示した実施例の中で、個々のソフトウェアモジュール(ソフトウェアモジュール0(151)〜ソフトウェアモジュールm(154))に対して実行するためのハードウェア資源としてCPU(CPU0(101)〜CPUn(108))と外部メモリ(130)に限定し、ドメイン分離ファームウェア(140)は各OS(OS0(141)〜OSm(144))に対し、CPU(CPU0(101)〜CPUn(108))と外部メモリ(130)を分割したものを割り当てた、一実施例において、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)とに注目し示したものである。
仮想メモリ空間(181)は、OS0(141)とソフトウェアモジュール0(151)が実行するためのメモリ領域を構成したものであり、仮想メモリ空間(182)は、OSm(144)とソフトウェアモジュールm(154)が実行するためのメモリ領域を構成したものであり、それぞれの実態は外部メモリ(130)に存在する。
OS0(141)とソフトウェアモジュール0(151)が実行するためのメモリ領域として外部メモリ(130)に割り当てられたものの実態は、外部メモリ(130)上のOS code 1(OSC1,200)、OS code 2(OSC2,201)、OS個別data a(OSDa,202)、AP code 1(APC1,204)、AP code 2(APC2,205)、AP個別data a(APDa,206)、OS間通信data a(OSMa,208)で、これらは、MMU0(171)により仮想メモリ空間(181)上のOS code 1(OSC1,210)、OS code 2(OSC2,211)、OS個別data a(OSDa,212)、AP code 1(APC1,214)、AP code 2(APC2,215)、AP個別data a(APDa,216)、OS間通信data a(OSMa,218)にアドレス変換されて、OS0(141)とソフトウェアモジュール0(151)からアクセスされる。
同様にOSm(144)とソフトウェアモジュールm(154)が実行するためのメモリ領域として割り当てられたものの実態は、外部メモリ(130)上のOS code 1(OSC1,200)、OS code 2(OSC2,201)、OS個別data b(OSDb,203)、AP code 1(APC1,204)、AP code 2(APC2,205)、AP個別data b(APDb,207)、OS間通信data a(OSMa,208)で、これらは、MMU1(172)により仮想メモリ空間(182)上のOS code 1(OSC1,220)、OS code 2(OSC2,221)、OS個別data b(OSDb,223)、AP code 1(APC1,224)、AP code 2(APC2,225)、AP個別data b(APDb,227)、OS間通信data a(OSMa,228)にアドレス変換されて、OSm(144)とソフトウェアモジュールm(154)からアクセスされる。
この様なハードウェア資源のソフトウェアに対する割り当てに対して、本実施例におけるアクセス制御ハードウェア(120)は、MMU0(171)およびMMU1(172)により変換されたアドレスとCPUとの組み合わせにより、アクセスの可否を判断する。具体的には、アクセス制御ハードウェア(120)がアクセスの可否を判断するルールは、以下の通りとなり、それぞれドメイン分離ファームウェア(140)が設定する。
(1)OS code 1(OSC1,200)とOS code 2(OSC2,201)に対するアクセス可否ルールエントリ(300)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(2)OS個別data a(OSDa,202)に対するアクセス可否ルールエントリ(302)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(3)OS個別data b(OSDb,203)に対するアクセス可否ルールエントリ(303)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(4)AP code 1(APC1,204)とAP code 2(205)に対するアクセス可否ルールエントリ(304)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(5)AP個別data a(APDa,206)に対するアクセス可否ルールエントリ(306)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(6)AP個別data b(APDb,207)に対するアクセス可否ルールエントリ(307)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(7)それ以外の外部メモリの領域に対するアクセス可否ルールエントリ(アクセス可否ルールエントリ(310)、アクセス可否ルールエントリ(311)、アクセス可否ルールエントリ(312)、アクセス可否ルールエントリ(313))には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可。
(1)OS code 1(OSC1,200)とOS code 2(OSC2,201)に対するアクセス可否ルールエントリ(300)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(2)OS個別data a(OSDa,202)に対するアクセス可否ルールエントリ(302)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(3)OS個別data b(OSDb,203)に対するアクセス可否ルールエントリ(303)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(4)AP code 1(APC1,204)とAP code 2(205)に対するアクセス可否ルールエントリ(304)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(5)AP個別data a(APDa,206)に対するアクセス可否ルールエントリ(306)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(6)AP個別data b(APDb,207)に対するアクセス可否ルールエントリ(307)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(7)それ以外の外部メモリの領域に対するアクセス可否ルールエントリ(アクセス可否ルールエントリ(310)、アクセス可否ルールエントリ(311)、アクセス可否ルールエントリ(312)、アクセス可否ルールエントリ(313))には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可。
また、OS間通信data a(OSMa,208)に対するアクセス可否ルールエントリ(308)には、初期状態として、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可、とドメイン分離ファームウェア(140)が設定する。
なお、アクセス制御モジュール(120)に記載された記号の意味は、”R”がリードアクセス許可、”W”がライトアクセス許可、”0”がOS0に管理されるCPUからのアクセスが対象、”m”がOSmに管理されているCPUからのアクセスが対象である。従って、例えば、”R0m”となっているものは、OS0及びOSmが管理しているCPUからリードアクセスが可能(ライトアクセスは不可能)という意味となる。
ここで、特徴的なものは、OS code 1及び2、AP code 1及び2の領域(310,313)に対し、OS0とOSmの両方が管理しているCPUからリードアクセスできるようにアクセス制御ハードウェア(120)が設定されていることである。上述したとおり、各OSは、夫々が単独で動作し、他のOSからアクセスされないことが前提となっている。従って、夫々が管理する領域が完全に分離していることが望ましい。しかしながら、他のOSからのアクセスが異常動作の原因となるのは、データが書き換わってしまうことに起因する。ここで、CPUの動作を考えると、OS用のコードやアプリケーション用のコードは、各CPUからはリードアクセスのみで充分である。そこで、本発明では、OS用のコードとアプリケーション用のコードを共有できるものは、複数のOS間で共有し、かつ、アクセス制御ハードウェア(120)にて、リードアクセスのみ可と設定することにより、異常動作の要因となるライトアクセスを遮断し、安全に、かつ、効率よくメモリ領域を使用することを可能としている。なお、この点については、他の実施例も同様である。
続いて、OS間の通信について詳しく言及する。OS0(141)とソフトウェアモジュール0(151)、もしくはOSm(144)とソフトウェアモジュールm(154)の何れかがOS間通信のためにOS間通信Data a(OSMa,208)に対し、データの読み書きを実施する際は、それに先立ちドメイン連携ミドルウェア(150)に対して当該領域に対する読み書きアクセス要求を出す。当該領域に対する読み書き要求を受け取ったドメイン連携ミドルウェア(150)は、現在OS間通信を行ってよいかを判断し、ドメイン分離ファームウェア(140)を介して、OS間通信Data a(OSMa,208)に対するアクセス可否ルールエントリ(308)に、当該要求を出したOSとソフトウェアモジュールを実行しているCPUからの読み書きアクセス可と設定し、その際、同時にOS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)の実行する双方のCPUからの読み書きアクセス可とすることのないよう制御する。その後、書き込み要求を出したOSとソフトウェアモジュールに対し、読み書きアクセス要求の受理を返す。
OS間通信Data a(OSMa,208)に対する読み書きアクセス要求の受理を受け取ったOSとソフトウェアモジュールは、OS間通信Data a(OSMa,208)に対しデータの読み書きを実施した後、ドメイン連携ミドルウェア(150)に対し、当該領域に対する読み書き完了を出す。
当該領域に対する読み書き完了を受け取ったドメイン連携ミドルウェア(150)は、ドメイン分離ファームウェア(140)を介して、OS間通信Data a(OSMa,208)に対するアクセス可否ルールエントリ(308)に、初期状態と同様に、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可、を設定する。
以上の通り、本実施例では、OS間通信で用いる領域(208)を全てのOS(CPU)に対しデフォルトでリードアクセス/ライトアクセスを不可とし、必要に応じてドメイン連携ミドルウェア及びドメイン分離ファームウェアを用いて、要求を出したOS(CPU)のみにアクセス許可を与える。これにより、通信用に用いるデータを他のOS(CPU)がアクセスし、情報を読み出す、又は、情報を破壊するということから守ることが可能となる。
<実施例2>
図3は、図2と同様に、図1に示した実施例の中で、個々のソフトウェアモジュール(ソフトウェアモジュール0(151)〜ソフトウェアモジュールm(154))に対して実行するためのハードウェア資源としてCPU(CPU0(101)〜CPUn(108))と外部メモリ(130)に限定し、ドメイン分離ファームウェア(140)は各OS(OS0(141)〜OSm(144))に対し、CPU(CPU0(101)〜CPUn(108))と外部メモリ(130)を分割したものを割り当てた、一実施例において、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)とに注目し示したものである。実施例1では、OS間通信を行うメモリ領域(208)をOS0とOSmで共有していたが、本実施例では、夫々個別の領域(208、209)を有している。以下、本実施例について説明する。
図3は、図2と同様に、図1に示した実施例の中で、個々のソフトウェアモジュール(ソフトウェアモジュール0(151)〜ソフトウェアモジュールm(154))に対して実行するためのハードウェア資源としてCPU(CPU0(101)〜CPUn(108))と外部メモリ(130)に限定し、ドメイン分離ファームウェア(140)は各OS(OS0(141)〜OSm(144))に対し、CPU(CPU0(101)〜CPUn(108))と外部メモリ(130)を分割したものを割り当てた、一実施例において、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)とに注目し示したものである。実施例1では、OS間通信を行うメモリ領域(208)をOS0とOSmで共有していたが、本実施例では、夫々個別の領域(208、209)を有している。以下、本実施例について説明する。
仮想メモリ空間(181)は、OS0(141)とソフトウェアモジュール0(151)が実行するためのメモリ領域を構成したものであり、仮想メモリ空間(182)は、OSm(144)とソフトウェアモジュールm(154)が実行するためのメモリ領域を構成したものであり、それぞれの実態は外部メモリ(130)に存在する。
OS0(141)とソフトウェアモジュール0(151)が実行するためのメモリ領域として外部メモリ(130)に割り当てられたものの実態は、外部メモリ(130)上のOS code 1(OSC1,200)、OS code 2(OSC2,201)、OS個別data a(OSDa,202)、AP code 1(APC1,204)、AP code 2(APC2,205)、AP個別data a(APDa,206)、OS間通信data a(OSMa,208)で、これらは、MMU0(171)により仮想メモリ空間(181)上のOS code 1(OSC1,210)、OS code 2(OSC2,211)、OS個別data a(OSDa,212)、AP code 1(APC1,214)、AP code 2(APC2,215)、AP個別data a(APDa,216)、OS間通信data a(OSMa,218)にアドレス変換されて、OS0(141)とソフトウェアモジュール0(151)からアクセスされる。
同様に、OSm(144)とソフトウェアモジュールm(154)が実行するためのメモリ領域として割り当てられたものの実態は、外部メモリ(130)上のOS code 1(OSC1,200)、OS code 2(OSC2,201)、OS個別data b(OSDb,203)、AP code 1(APC1,204)、AP code 2(APC2,205)、AP個別data b(APDb,207)、OS間通信data b(OSMb,209)で、これらは、MMU1(172)により仮想メモリ空間(182)上のOS code 1(OSC1,220)、OS code 2(OSC2,221)、OS個別data b(OSDb,223)、AP code 1(APC1,224)、AP code 2(APC2,225)、AP個別data b(APDb,227)、OS間通信data b(OSMb,229)にアドレス変換されて、OSm(144)とソフトウェアモジュールm(154)からアクセスされる。
この様なハードウェア資源のソフトウェアに対する割り当てに対して、本実施例におけるアクセス制御ハードウェア(120)は、MMU0(171)およびMMU1(172)により変換されたアドレスとCPUとの組み合わせにより、アクセスの可否を判断する。従って、アクセス制御ハードウェア(120)がアクセスの可否を判断するルールは、以下の通りとなり、それぞれドメイン分離ファームウェア(140)が設定する。
(1)OS code 1(OSC1,200)とOS code 2(OSC2,201)に対するアクセス可否ルールエントリ(300)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(2)OS個別data a(OSDa,202)に対するアクセス可否ルールエントリ(302)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(3)OS個別data b(OSDb,203)に対するアクセス可否ルールエントリ(303)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(4)AP code 1(APC1,204)とAP code 2(APC2,205)に対するアクセス可否ルールエントリ(304)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(5)AP個別data a(APDa,206)に対するアクセス可否ルールエントリ(306)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(6)AP個別data b(APDb,207)に対するアクセス可否ルールエントリ(307)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(7)それ以外の外部メモリの領域に対するアクセス可否ルールエントリ(アクセス可否ルールエントリ(310)、アクセス可否ルールエントリ(311)、アクセス可否ルールエントリ(312)、アクセス可否ルールエントリ(313))には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可。
(8)OS間通信Data a(OSMa,208)に対するアクセス可否ルールエントリ(308)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(9)OS間通信data b(OSMb,209)に対するアクセス可否ルールエントリ(309)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(1)OS code 1(OSC1,200)とOS code 2(OSC2,201)に対するアクセス可否ルールエントリ(300)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(2)OS個別data a(OSDa,202)に対するアクセス可否ルールエントリ(302)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(3)OS個別data b(OSDb,203)に対するアクセス可否ルールエントリ(303)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(4)AP code 1(APC1,204)とAP code 2(APC2,205)に対するアクセス可否ルールエントリ(304)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(5)AP個別data a(APDa,206)に対するアクセス可否ルールエントリ(306)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(6)AP個別data b(APDb,207)に対するアクセス可否ルールエントリ(307)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(7)それ以外の外部メモリの領域に対するアクセス可否ルールエントリ(アクセス可否ルールエントリ(310)、アクセス可否ルールエントリ(311)、アクセス可否ルールエントリ(312)、アクセス可否ルールエントリ(313))には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可。
(8)OS間通信Data a(OSMa,208)に対するアクセス可否ルールエントリ(308)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(9)OS間通信data b(OSMb,209)に対するアクセス可否ルールエントリ(309)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
本実施例では、ソフトウェアモジュール0(151)からソフトウェアモジュールm(154)へOS間通信を実施する際は、ソフトウェアモジュール0(151)が外部メモリ(130)上のOS間通信Data a(OSMa,208)にデータの書き込みが完了した時点で、ドメイン連携ミドルウェア(150)に転送要求を出す。
転送要求を受け取ったドメイン連携ミドルウェア(150)は、ドメイン分離ファームウェア(140)を用いてOS間通信Data a(OSMa,208)に対するアクセス可否ルールエントリ(308)とOS間通信Data b(OSMb,209)に対するアクセス可否ルールエントリ(309)とに対しOS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可、と設定する。その後、ドメイン連携ミドルウェア(150)は、ドメイン分離ファームウェア(140)を用いてOS間通信Data a(OSMa,208)に対するアクセス可否ルールエントリ(308)とOS間通信Data b(OSMb,209)に対するアクセス可否ルールエントリ(309)に、ドメイン連携ミドルウェア(150)自身を実行しているCPUからの読み書きアクセス可と設定し、OS間通信Data a(OSMa,208)に書き込まれたデータをOS間通信Data b(OSMb,209)の指定された場所に書き出す。その後、再びドメイン分離ファームウェア(140)を用いてOS間通信Data a(OSMa,208)に対するアクセス可否ルールエントリ(308)とOS間通信Data b(OSMb,209)に対するアクセス可否ルールエントリ(309)に、ドメイン連携ミドルウェア(150)を実行しているCPUからの全てのアクセス不可と設定し、完了した後、ドメイン分離ファームウェア(140)を用いてOS間通信Data a(OSMa,208)に対するアクセス可否ルールエントリ(308)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可、OS間通信data b(OSMb,209)に対するアクセス可否ルールエントリ(309)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可、と、設定し、ソフトウェアモジュール0(151)に対し、転送完了を出す。
ソフトウェアモジュールm(154)からソフトウェアモジュール0(151)へOS間通信を実施する際は、ソフトウェアモジュールm(154)が外部メモリ(130)上のOS間通信Data b(OSMb,209)にデータの書き込みが完了した時点で、ドメイン連携ミドルウェア(150)に転送要求を出す。
転送要求を受け取ったドメイン連携ミドルウェア(150)は、ドメイン分離ファームウェア(140)を用いて、OS間通信Data a(OSMa,208)に対するアクセス可否ルールエントリ(308)とOS間通信Data b(OSMb,209)に対するアクセス可否ルールエントリ(309)とに対しOS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可、と設定する。その後、ドメイン連携ミドルウェア(150)は、ドメイン分離ファームウェア(140)を用いてOS間通信Data a(OSMa,208)に対するアクセス可否ルールエントリ(308)とOS間通信Data b(OSMb,209)に対するアクセス可否ルールエントリ(309)に、ドメイン連携ミドルウェア(150)自身を実行しているCPUからの読み書きアクセス可と設定し、OS間通信Data b(OSMb,209)に書き込まれたデータをOS間通信Data a(OSMa,208)の指定された場所に書き出す。その後、再びドメイン分離ファームウェア(140)を用いてOS間通信Data a(OSMa,208)に対するアクセス可否ルールエントリ(308)とOS間通信Data b(OSMb,209)に対するアクセス可否ルールエントリ(309)に、ドメイン連携ミドルウェア(150)を実行しているCPUからの全てのアクセス不可と設定し、完了した後、ドメイン分離ファームウェア(140)を用いてOS間通信Data a(OSMa,208)に対するアクセス可否ルールエントリ(308)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可、OS間通信data b(OSMb,209)に対するアクセス可否ルールエントリ(309)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可、と、設定し、ソフトウェアモジュールm(154)に対し、転送完了を出す。
以上の通り、本実施例においても、OS間通信用のデータを転送している間は、すべてのOS(CPU)からのアクセスを不可とするため、通信用データが破壊されることがない。また、実施例1に対し、各OSは、通信の許可を受ける前に、通信用のデータを自分の領域に書き込むことができるため、次の処理に移ることが可能となり、高速に動作することが可能となる。
<実施例3>
図4は、図1に示した実施例の中で、個々のソフトウェアモジュール(ソフトウェアモジュール0(151)〜ソフトウェアモジュールm(154))に対して実行するためのハードウェア資源としてCPU(CPU0(101)〜CPUn(108))と外部メモリ(130)と内蔵メモリ(160)を持ち、ドメイン分離ファームウェア(140)は各OS(OS0(141)〜OSm(144))に対し、CPU(CPU0(101)〜CPUn(108))、外部メモリ(130)を分割したもの、内蔵メモリ(160)を分割したものを割り当てた、一実施例において、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)とに注目し示したものである。即ち、本実施例では、実施例1に対し、外部メモリ(130)から内蔵メモリ(160)に必要なデータをコピーし、その内蔵メモリ(160)に対して、CPUがアクセスすることにより処理速度を向上させ、加えて内蔵メモリを用いてOS間通信を行う点が異なる。なお、紙面の都合上、OSとソフトウェアモジュールについては記載を省略しているが、この部分は、図2又は図3と同様である。
図4は、図1に示した実施例の中で、個々のソフトウェアモジュール(ソフトウェアモジュール0(151)〜ソフトウェアモジュールm(154))に対して実行するためのハードウェア資源としてCPU(CPU0(101)〜CPUn(108))と外部メモリ(130)と内蔵メモリ(160)を持ち、ドメイン分離ファームウェア(140)は各OS(OS0(141)〜OSm(144))に対し、CPU(CPU0(101)〜CPUn(108))、外部メモリ(130)を分割したもの、内蔵メモリ(160)を分割したものを割り当てた、一実施例において、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)とに注目し示したものである。即ち、本実施例では、実施例1に対し、外部メモリ(130)から内蔵メモリ(160)に必要なデータをコピーし、その内蔵メモリ(160)に対して、CPUがアクセスすることにより処理速度を向上させ、加えて内蔵メモリを用いてOS間通信を行う点が異なる。なお、紙面の都合上、OSとソフトウェアモジュールについては記載を省略しているが、この部分は、図2又は図3と同様である。
OS0(141)とソフトウェアモジュール0(151)が実行するためのメモリ領域として外部メモリ(130)に割り当てられたものの実態は、外部メモリ(130)上のOS code 1(OSC1,200)、OS code 2(OSC2,201)、OS個別data a(OSDa,202)、AP code 1(APC1,204)、AP code 2(APC2,205)、AP個別data a(APDa,206)、OS間通信data a(OSMa,208)で、これらは、内蔵メモリ(160)上のOS code 1(OSC1,260)、OS code 2(OSC2,261)、OS個別data a(OSDa,262)、AP code 1(APC1,264)、AP code 2(APC2,265)、AP個別data a(APDa,266)、OS間通信data a(OSMa,268)に実態のコピーが移され、MMU0(171)により仮想メモリ空間(181)上のOS code 1(OSC1,230)、OS code 2(OSC2,231)、OS個別data a(OSDa,232)、AP code 1(APC1,234)、AP code 2(APC2,235)、AP個別data a(APDa,236)、OS間通信data a(OSMa,238)にアドレス変換されて、OS0(141)とソフトウェアモジュール0(151)からアクセスされる。
同様に、OSm(144)とソフトウェアモジュールm(154)が実行するためのメモリ領域として割り当てられたものの実態は、外部メモリ(130)上のOS code 1(OSC1,200)、OS code 2(OSC2,201)、OS個別data b(OSDb,203)、AP code 1(APC1,204)、AP code 2(APC2,205)、AP個別data b(APDb,207)、OS間通信data a(OSMa,208)で、これらは、内蔵メモリ(160)上のOS code 1(OSC1,260)、OS code 2(OSC2,261)、OS個別data b(OSDb,263)、AP code 1(APC1,264)、AP code 2(APC2,265)、AP個別data b(APDb,267)、OS間通信data a(OSMa,268)に実態のコピーが移され、MMU1(172)により仮想メモリ空間(182)上のOS code 1(OSC1,240)、OS code 2(OSC2,241)、OS個別data b(OSDb,243)、AP code 1(APC1,244)、AP code 2(APC2,245)、AP個別data b(APDb,247)、OS間通信data a(OSMa,248)にアドレス変換されて、OSm(144)とソフトウェアモジュールm(154)からアクセスされる。
内蔵メモリ管理テーブル(250)は、内蔵メモリ(160)上の空き領域、外部メモリ(130)上のメモリ領域の実態(OS code 1(OSC1,200)、OS code 2(OSC2,201)、OS個別data a(OSDa,202)、OS個別data b(OSDb,203)、AP code 1(APC1,204)、AP code 2(APC2,205)、AP個別data a(APDa,206)、AP個別data b(APDb,207)、OS間通信data a(OSMa,208)等)のコピーが、内部メモリ(160)上のどこ(OS code 1(OSC1,260)、OS code 2(OSC2,261)、OS個別data a(OSDa,262)、OS個別data b(OSDb,263)、AP code 1(APC1,264)、AP code 2(APC2,265)、AP個別data a(APDa,266)、AP個別data b(APDb,267)、OS間通信data a(OSMa,268)等)に移されたか、を管理する。
ここで、通常内蔵メモリ(160)の容量は、外部メモリの容量に比べて小さく、外部メモリ(130)上にメモリ領域として割り当てられたものの実態のコピーを、全てを内蔵メモリ(160)に保持することは可能ではない。従って、ソフトウェアモジュールとOSのアクセスに応じて、内蔵メモリ(160)上に領域を確保し、そのアクセスの対象である外部メモリ(130)上にメモリ領域の実態のコピーを、当該領域に割り付ける。ここで、内蔵メモリ管理テーブル(TBL,250)により内蔵メモリ(160)に空きがないことが明らかな場合は、既に内蔵メモリ(160)に割り付けられているメモリ領域の実態のコピー群の中から一つを選択し、当該メモリ領域の実態のコピーを外部メモリ(130)の該当する領域に退避し、領域を確保する。
この様なハードウェア資源のソフトウェアに対する割り当てに対して、本実施例におけるアクセス制御ハードウェア(120)は、MMU0(171)およびMMU1(172)により変換されたアドレスとCPUとの組み合わせにより、アクセスの可否を判断する。従って、アクセス制御ハードウェア(120)がアクセスの可否を判断するルールは、以下の通り、それぞれドメイン分離ファームウェア(140)が設定する。
(1)OS code 1(OSC1,200)とOS code 2(OSC2,201)に対するアクセス可否ルールエントリ(300)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(2)OS個別data a(OSDa,202)に対するアクセス可否ルールエントリ(302)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(3)OS個別data b(OSDb,203)に対するアクセス可否ルールエントリ(303)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(4)AP code 1(APC1,204)とAP code 2(APC2,205)に対するアクセス可否ルールエントリ(304)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(5)AP個別data a(APDa,206)に対するアクセス可否ルールエントリ(306)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(6)AP個別data b(APDb,207)に対するアクセス可否ルールエントリ(307)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(7)それ以外の外部メモリの領域に対するアクセス可否ルールエントリには、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可。
(1)OS code 1(OSC1,200)とOS code 2(OSC2,201)に対するアクセス可否ルールエントリ(300)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(2)OS個別data a(OSDa,202)に対するアクセス可否ルールエントリ(302)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(3)OS個別data b(OSDb,203)に対するアクセス可否ルールエントリ(303)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(4)AP code 1(APC1,204)とAP code 2(APC2,205)に対するアクセス可否ルールエントリ(304)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(5)AP個別data a(APDa,206)に対するアクセス可否ルールエントリ(306)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(6)AP個別data b(APDb,207)に対するアクセス可否ルールエントリ(307)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(7)それ以外の外部メモリの領域に対するアクセス可否ルールエントリには、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可。
更に、内蔵メモリ(160)を対象とするアクセス制御ハードウェア(121)がアクセスの可否を判断するルールは以下の通り、それぞれドメイン分離ファームウェア(140)が設定する。
(1)OS code 1(OSC1,260)とOS code 2(OSC2,261)に対するアクセス可否ルールエントリ(310)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(2)OS個別data a(OSDa,262)に対するアクセス可否ルールエントリ(311)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(3)OS個別data b(OSDb,263)に対するアクセス可否ルールエントリ(312)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(4)AP code 1(APC1,264)とAP code 2(APC2,265)に対するアクセス可否ルールエントリ(313)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(5)AP個別data a(APDa,266)に対するアクセス可否ルールエントリ(314)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(6)AP個別data b(APDb,267)に対するアクセス可否ルールエントリ(315)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(1)OS code 1(OSC1,260)とOS code 2(OSC2,261)に対するアクセス可否ルールエントリ(310)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(2)OS個別data a(OSDa,262)に対するアクセス可否ルールエントリ(311)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(3)OS個別data b(OSDb,263)に対するアクセス可否ルールエントリ(312)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(4)AP code 1(APC1,264)とAP code 2(APC2,265)に対するアクセス可否ルールエントリ(313)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(5)AP個別data a(APDa,266)に対するアクセス可否ルールエントリ(314)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(6)AP個別data b(APDb,267)に対するアクセス可否ルールエントリ(315)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
なお、本実施例では、全ての内蔵メモリの領域を用いているため、図面上、存在していないが、もし、使用しない内蔵メモリの領域があるのであれば、それ以外の内蔵メモリの領域に対するアクセス可否ルールエントリには、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可、と設定する。
ここで、OS間通信data a(OSMa,268)に対するアクセス可否ルールエントリ(316)には、初期状態として、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可、とドメイン分離ファームウェア(140)が設定する。
OS0(141)とソフトウェアモジュール0(151)、もしくはOSm(144)とソフトウェアモジュールm(154)の何れかがOS間通信のためにOS間通信Data a(OSMa,268)に対し、データの読み書きを実施する際は、それに先立ちドメイン連携ミドルウェア(150)に対して当該領域に対する読み書きアクセス要求を出す。
当該領域に対する読み書き要求を受け取ったドメイン連携ミドルウェア(150)は、ドメイン分離ファームウェア(140)を用いてOS間通信Data a(OSMa,268)に対するアクセス可否ルールエントリ(316)に、当該要求を出したOSとソフトウェアモジュールを実行しているCPUからの読み書きアクセス可と設定し、その際、同時にOS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)の実行する双方のCPUからの読み書きアクセス可とすることのないよう制御する。その後、書き込み要求を出したOSとソフトウェアモジュールに対し、読み書きアクセス要求の受理を返す。
OS間通信Data a(OSMa,268)に対する読み書きアクセス要求の受理を受け取ったOSとソフトウェアモジュールは、OS間通信Data a(OSMa,268)に対しデータの読み書きを実施した後、ドメイン連携ミドルウェア(150)に対し、当該領域に対する読み書き完了を出す。
当該領域に対する読み書き完了を受け取ったドメイン連携ミドルウェア(150)は、ドメイン分離ファームウェア(140)を用いてOS間通信Data a(OSMa,268)に対するアクセス可否ルールエントリ(316)に、初期状態と同様に、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可、を設定する。
以上の通り、本実施例では、内蔵メモリ(160)に必要なデータをコピーし、その内蔵メモリ(160)に対して、CPUがアクセスすることにより処理速度を向上させることが可能となる。この場合、アクセス制御ハードウェア及びドメイン分離ファームウェアでの管理を内蔵メモリ及び外部メモリの両方に設けることにより、各CPUは、内蔵メモリのみならず外部メモリへも直接アクセスすることが可能となり、内蔵メモリを介さない処理を行うことが可能となる。また、安全なOS間通信を行う際には、ドメイン分離ファームウェアによりアクセスを許可するOS(CPU)を変更する必要がある。そのため、OS間通信に関する外部メモリの領域は、全てのOS(CPU)からの直接アクセスは遮断し、内蔵メモリの領域のみで行う構成とする。これにより、ドメイン連携ミドルウェアにおけるOS間通信の管理が簡単になる。
<実施例4>
図5は、図1に示した実施例の中で、個々のソフトウェアモジュール(ソフトウェアモジュール0(151)〜ソフトウェアモジュールm(154))に対して実行するためのハードウェア資源としてCPU(CPU0(101)〜CPUn(108))と外部メモリ(130)と内蔵メモリ(160)を持ち、ドメイン分離ファームウェア(140)は各OS(OS0(141)〜OSm(144))に対し、CPU(CPU0(101)〜CPUn(108))、外部メモリ(130)を分割したもの、内蔵メモリ(160)を分割したものを割り当てた、一実施例において、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)とに注目し示したものである。本実施例では、実施例2に対し、外部メモリ(130)から内蔵メモリ(160)に必要なデータをコピーし、その内蔵メモリ(160)に対して、CPUがアクセスすることにより処理速度を向上させ、加えて内蔵メモリを用いてOS間通信を行うことが相違する。なお、本図では、紙面の都合上、OSとソフトウェアモジュールの記載は省略しているが、図2及び図3と同様である。
図5は、図1に示した実施例の中で、個々のソフトウェアモジュール(ソフトウェアモジュール0(151)〜ソフトウェアモジュールm(154))に対して実行するためのハードウェア資源としてCPU(CPU0(101)〜CPUn(108))と外部メモリ(130)と内蔵メモリ(160)を持ち、ドメイン分離ファームウェア(140)は各OS(OS0(141)〜OSm(144))に対し、CPU(CPU0(101)〜CPUn(108))、外部メモリ(130)を分割したもの、内蔵メモリ(160)を分割したものを割り当てた、一実施例において、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)とに注目し示したものである。本実施例では、実施例2に対し、外部メモリ(130)から内蔵メモリ(160)に必要なデータをコピーし、その内蔵メモリ(160)に対して、CPUがアクセスすることにより処理速度を向上させ、加えて内蔵メモリを用いてOS間通信を行うことが相違する。なお、本図では、紙面の都合上、OSとソフトウェアモジュールの記載は省略しているが、図2及び図3と同様である。
OS0(141)とソフトウェアモジュール0(151)が実行するためのメモリ領域として割り当てられたものの実態は、外部メモリ(130)上のOS code 1(OSC1,200)、OS code 2(OSC2,201)、OS個別data a(OSDa,202)、AP code 1(APC1,204)、AP code 2(APC2,205)、AP個別data a(APDa,206)、OS間通信data a(OSMa,208)で、これらは、内蔵メモリ(160)上のOS code 1(OSC1,260)、OS code 2(OSC2,261)、OS個別data a(OSDa,262)、AP code 1(APC1,264)、AP code 2(APC2,265)、AP個別data a(APDa,266)、OS間通信data a(OSMa,268)に実態のコピーが移され、MMU0(171)により仮想メモリ空間(181)上のOS code 1(OSC1,230)、OS code 2(OSC2,231)、OS個別data a(OSDa,232)、AP code 1(APC1,234)、AP code 2(APC2,235)、AP個別data a(APDa,236)、OS間通信data a(OSMa,238)にアドレス変換されて、OS0(141)とソフトウェアモジュール0(151)からアクセスされる。
同様に、OSm(144)とソフトウェアモジュールm(154)が実行するためのメモリ領域として割り当てられたものの実態は、外部メモリ(130)上のOS code 1(OSC1,200)、OS code 2(OSC2,201)、OS個別data b(OSDb,203)、AP code 1(APC1,204)、AP code 2(APC2,205)、AP個別data b(APDb,207)、OS間通信data b(OSMb,209)で、これらは、内蔵メモリ(160)上のOS code 1(OSC1,260)、OS code 2(OSC2,261)、OS個別data b(OSDb,263)、AP code 1(APC1,264)、AP code 2(APC2,265)、AP個別data b(APDb,267)、OS間通信data b(OSMb,269)に実態のコピーが移され、MMU1(172)により仮想メモリ空間(182)上のOS code 1(OSC1,240)、OS code 2(OSC2,241)、OS個別data b(OSDb,243)、AP code 1(APC1,244)、AP code 2(APC2,245)、AP個別data b(APDb,247)、OS間通信data b(OSMb,249)にアドレス変換されて、OSm(144)とソフトウェアモジュールm(154)からアクセスされる。
内蔵メモリ管理テーブル(250)は、内蔵メモリ(160)上の空き領域、外部メモリ(130)上のメモリ領域の実態(OS code 1(OSC1,200)、OS code 2(OSC2,201)、OS個別data a(OSDa,202)、OS個別data b(OSDb,203)、AP code 1(APC1,204)、AP code 2(APC2,205)、AP個別data a(APDa,206)、AP個別data b(APDb,207)、OS間通信data a(OSMa,208)、OS間通信data b(OSMb,209)等)のコピーが、内部メモリ(160)上のどこ(OS code 1(OSC1,260)、OS code 2(OSC2,261)、OS個別data a(OSDa,262)、OS個別data b(OSDb,263)、AP code 1(APC1,264)、AP code 2(APC2,265)、AP個別data a(APDa,266)、AP個別data b(APDb,267)、OS間通信data a(OSMa,268)、OS間通信data b(OSMb,269)等)に移されたか、を管理する。
ここで、通常内蔵メモリ(160)の容量は、外部メモリの容量に比べて小さく、外部メモリ(130)上にメモリ領域として割り当てられたものの実態のコピーを、全てを内蔵メモリ(160)に保持することは可能ではない。従って、ソフトウェアモジュールとOSのアクセスに応じて、内蔵メモリ(160)上に領域を確保し、そのアクセスの対象である外部メモリ(130)上にメモリ領域の実態のコピーを、当該領域に割り付ける。ここで、内蔵メモリ管理テーブル(250)により内蔵メモリ(160)に空きがないことが明らかな場合は、既に内蔵メモリ(160)に割り付けられているメモリ領域の実態のコピー群の中から一つを選択し、当該メモリ領域の実態のコピーを外部メモリ(130)の該当する領域に退避し、領域を確保する。
この様なハードウェア資源のソフトウェアに対する割り当てに対して、本実施例におけるアクセス制御ハードウェア(120)は、MMU0(171)およびMMU1(172)により変換されたアドレスとCPUとの組み合わせにより、アクセスの可否を判断する。従って、アクセス制御ハードウェア(120)がアクセスの可否を判断するルールは、以下の通り、それぞれドメイン分離ファームウェア(140)が設定する。
(1)OS code 1(OSC1,200)とOS code 2(OSC2,201)に対するアクセス可否ルールエントリ(300)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(2)OS個別data a(OSDa,202)に対するアクセス可否ルールエントリ(302)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(3)OS個別data b(OSDb,203)に対するアクセス可否ルールエントリ(303)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(4)AP code 1(APC1,204)とAP code 2(APC2,205)に対するアクセス可否ルールエントリ(304)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(5)AP個別data a(APDa,206)に対するアクセス可否ルールエントリ(306)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(6)AP個別data b(APDb,207)に対するアクセス可否ルールエントリ(307)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(7)OS間通信Data a(OSMa,208)に対するアクセス可否ルールエントリ(308)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(8)OS間通信data b(OSMb,209)に対するアクセス可否ルールエントリ(309)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(9)それ以外の外部メモリの領域に対するアクセス可否ルールエントリには、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可。
(1)OS code 1(OSC1,200)とOS code 2(OSC2,201)に対するアクセス可否ルールエントリ(300)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(2)OS個別data a(OSDa,202)に対するアクセス可否ルールエントリ(302)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(3)OS個別data b(OSDb,203)に対するアクセス可否ルールエントリ(303)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(4)AP code 1(APC1,204)とAP code 2(APC2,205)に対するアクセス可否ルールエントリ(304)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(5)AP個別data a(APDa,206)に対するアクセス可否ルールエントリ(306)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(6)AP個別data b(APDb,207)に対するアクセス可否ルールエントリ(307)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(7)OS間通信Data a(OSMa,208)に対するアクセス可否ルールエントリ(308)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(8)OS間通信data b(OSMb,209)に対するアクセス可否ルールエントリ(309)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(9)それ以外の外部メモリの領域に対するアクセス可否ルールエントリには、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可。
更に、内蔵メモリ(160)を対象とするアクセス制御ハードウェア(121)がアクセスの可否を判断するルールは、以下の通り、それぞれドメイン分離ファームウェア(140)が設定する。
(1)OS code 1(OSC1,260)とOS code 2(OSC2,261)に対するアクセス可否ルールエントリ(310)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(2)OS個別data a(OSDa,262)に対するアクセス可否ルールエントリ(311)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(3)OS個別data b(OSDb,263)に対するアクセス可否ルールエントリ(312)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(4)AP code 1(APC1,264)とAP code 2(APC2,265)に対するアクセス可否ルールエントリ(313)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(5)AP個別data a(APDa,266)に対するアクセス可否ルールエントリ(314)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(6)AP個別data b(APDb,267)に対するアクセス可否ルールエントリ(315)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(7)OS間通信Data a(OSMa,268)に対するアクセス可否ルールエントリ(316)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(8)OS間通信data b(OSMb,269)に対するアクセス可否ルールエントリ(317)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(1)OS code 1(OSC1,260)とOS code 2(OSC2,261)に対するアクセス可否ルールエントリ(310)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(2)OS個別data a(OSDa,262)に対するアクセス可否ルールエントリ(311)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(3)OS個別data b(OSDb,263)に対するアクセス可否ルールエントリ(312)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(4)AP code 1(APC1,264)とAP code 2(APC2,265)に対するアクセス可否ルールエントリ(313)には、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの読みアクセス可。
(5)AP個別data a(APDa,266)に対するアクセス可否ルールエントリ(314)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(6)AP個別data b(APDb,267)に対するアクセス可否ルールエントリ(315)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
(7)OS間通信Data a(OSMa,268)に対するアクセス可否ルールエントリ(316)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可。
(8)OS間通信data b(OSMb,269)に対するアクセス可否ルールエントリ(317)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可。
なお、本実施例では、全ての内蔵メモリの領域を用いているため、図面上、存在していないが、もし、使用しない内蔵メモリの領域があるのであれば、それ以外の内蔵メモリの領域に対するアクセス可否ルールエントリには、OS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可と、設定する。
ソフトウェアモジュール0(151)からソフトウェアモジュールm(154)へOS間通信を実施する際は、ソフトウェアモジュール0(151)が内蔵メモリ(160)上のOS間通信Data a(OSMa,268)にデータの書き込みが完了した時点で、ドメイン連携ミドルウェア(150)に転送要求を出す。
転送要求を受け取ったドメイン連携ミドルウェア(150)は、ドメイン分離ファームウェア(140)を用いて、OS間通信Data a(OSMa,268)に対するアクセス可否ルールエントリ(316)とOS間通信Data b(OSMb,269)に対するアクセス可否ルールエントリ(317)とに対しOS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可、と設定する。その後、ドメイン連携ミドルウェア(150)は、ドメイン分離ファームウェア(140)を用いてOS間通信Data a(OSMa,268)に対するアクセス可否ルールエントリ(316)とOS間通信Data b(OSMb,269)に対するアクセス可否ルールエントリ(317)とに対し、ドメイン連携ミドルウェア(150)を実行しているCPUからの読み書きアクセス可と設定し、OS間通信Data a(OSMa,268)に書き込まれたデータをOS間通信Data b(OSMb,269)の指定された場所に書き出す。その後、再びドメイン分離ファームウェア(140)を用いてOS間通信Data a(OSMa,268)に対するアクセス可否ルールエントリ(316)とOS間通信Data b(OSMb,269)に対するアクセス可否ルールエントリ(317)とに対し、ドメイン連携ミドルウェア(150)を実行しているCPUからの全てのアクセス不可と設定し、完了した後、ドメイン分離ファームウェア(140)を用いてOS間通信Data a(OSMa,268)に対するアクセス可否ルールエントリ(316)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可、OS間通信data b(OSMb,269)に対するアクセス可否ルールエントリ(317)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可、と設定し、ソフトウェアモジュール0(151)に対し転送完了を出す。
ソフトウェアモジュールm(154)からソフトウェアモジュール0(151)へOS間通信を実施する際は、ソフトウェアモジュールm(154)が外部メモリ(130)上のOS間通信Data b(OSMa,269)にデータの書き込みが完了した時点で、ドメイン連携ミドルウェア(150)に転送要求を出す。
転送要求を受け取ったドメイン連携ミドルウェア(150)は、ドメイン分離ファームウェア(140)を用いてOS間通信Data a(OSMa,268)に対するアクセス可否ルールエントリ(316)とOS間通信Data b(OSMb,269)に対するアクセス可否ルールエントリ(317)とに対しOS0(141)とソフトウェアモジュール0(151)、並びにOSm(144)とソフトウェアモジュールm(154)、を実行しているCPUからの全てのアクセス不可、と設定する。その後、ドメイン連携ミドルウェア(150)は、OS間通信Data b(OSMb,269)に書き込まれたデータをOS間通信Data a(OSMa,268)の指定された場所に書き出し、完了した後、ドメイン分離ファームウェア(140)を用いてOS間通信Data a(OSMa,268)に対するアクセス可否ルールエントリ(316)には、OS0(141)とソフトウェアモジュール0(151)を実行しているCPUからの読み書きアクセス可、OS間通信data b(OSMb,269)に対するアクセス可否ルールエントリ(317)には、OSm(144)とソフトウェアモジュールm(154)を実行しているCPUからの読み書きアクセス可、と設定し、ソフトウェアモジュールm(154)に対し転送完了を出す。
以上の通り、本実施例では、実施例2と比較して内蔵メモリを用いてデータ処理を行うため高速に動作することが可能となる。
本発明は、マルチプロセッサシステムに適用して特に有効である。
Claims (7)
- 第1中央処理装置と、第2中央処理装置と、前記第1中央処理装置にて実行される第1オペレーティングシステムと、前記第2中央処理装置にて実行される第2オペレーティングシステムと、前記第1中央処理装置及び前記第2中央処理装置にアクセスされるメモリとを有する情報処理装置であって、
前記情報処理装置を、前記第1中央処理装置、前記第1オペレーティングシステム、及び、前記メモリの領域のうち一部の第1領域を第1ドメインとして割り当て、前記第2中央処理装置、前記第2オペレーティングシステム及び前記メモリの領域のうち一部の第2領域を第2ドメインとして割り当て、一方のドメインが他のドメインに割当てられた領域にアクセスしないように制御するファームウェアと、
前記第1ドメイン及び前記第2ドメイン間でデータの通信が必要な場合に、当該通信を制御するミドルウェアとを有することを特徴とする情報処理装置。 - 請求項1において、
前記情報処理装置は、前記ファームウェアからの設定に基づいて、一方のドメインが他方のドメインに割当てられた領域にアクセスする際に、そのアクセスを遮断するアクセス制御モジュールを更に具備することを特徴とする情報処理装置。 - 請求項2において、
前記ファームウェアは、前記第1領域の先頭アドレス、前記第1領域のサイズ、及び、前記第1領域の割り当てが前記第1ドメインであることを対にして前記アクセス制御モジュールに設定し、前記第2領域の先頭アドレス、前記第2領域のサイズ、及び、前記第2領域の割り当てが前記第2ドメインであることを対にして前記アクセス制御モジュールに設定することを特徴とする情報処理装置。 - 請求項1において、
前記第1オペレーティングシステムのコードと前記第2オペレーティングシステムのコードが共有できる場合において、前記メモリは、前記メモリの領域の一部の第3領域に、前記共有できるコードを保持し、前記ファームウェアは、前記第3領域に対し、前記第1ドメイン及び前記第2ドメインからリードアクセスを許可し、ライトアクセスを許可しないように制御することを特徴とする情報処理装置。 - 請求項1において、
前記メモリは、前記第1ドメイン及び前記第2ドメイン間でデータの通信を行う場合に、通信用データを格納する第4領域を含み、
前記ファームウェアは、前記第1及び第2ドメインから通信の要求がない場合には、前記第4領域を前記第1ドメイン及び前記第2ドメインからアクセスできないように制御し、
前記ミドルウェアは、前記第1ドメインが前記第2ドメインにデータの通信を行う旨の要求を受けた場合に、前記第1ドメインに前記第4領域へのアクセスを許可し、前記第2ドメインに前記第4領域へのアクセスを許可しないように前記ファームウェアを制御した状態で、前記第1ドメインに前記第4領域へのアクセスを許可することを特徴とする情報処理装置。 - 請求項1において、
前記メモリは、前記第1ドメインが前記第2ドメインにデータの通信を行う場合に、通信用のデータを書き込む第5領域と、前記第2ドメインが前記第1ドメインにデータの通信を行う場合に、通信用のデータを書き込む第6領域とを有し、
前記ファームウェアは、前記第5領域に対して前記第1ドメインがアクセス可能で、前記第2ドメインはアクセス不可能になるように制御し、前記第6領域に対して前記第2ドメインがアクセス可能で、前記第1ドメインがアクセス不可能となるように制御し、
前記ミドルウェアは、前記第1ドメインが前記第2ドメインにデータの通信を行う旨の要求を受けた場合に、前記第1ドメインが前記第5領域に通信用のデータを書き込んだ後、前記第5領域及び前記第6領域が前記第1及び前記第2ドメインからアクセス不可能となるように前記ファームウェアに指示し、その後、前記第5領域から前記第6領域へのデータを転送することを特徴とする情報処理装置。 - 請求項1において、
前記第1ドメインは、仮想メモリ空間から前記メモリの領域を含む物理メモリ空間へのアドレス変換を行う第1メモリマネージメントユニットを有し、
前記第2ドメインは、仮想メモリ空間から前記メモリの領域を含む物理メモリ空間へのアドレス変換を行う第2メモリマネージメントユニットを有し、
前記ファームウェアは、前記物理メモリ空間に対して、アクセス制御を行うことを特徴とする情報処理装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2009/053546 WO2010097925A1 (ja) | 2009-02-26 | 2009-02-26 | 情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2010097925A1 true JPWO2010097925A1 (ja) | 2012-08-30 |
Family
ID=42665152
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011501407A Pending JPWO2010097925A1 (ja) | 2009-02-26 | 2009-02-26 | 情報処理装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20110161644A1 (ja) |
JP (1) | JPWO2010097925A1 (ja) |
WO (1) | WO2010097925A1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5417303B2 (ja) * | 2010-11-11 | 2014-02-12 | 株式会社日立製作所 | 仮想計算機システム及びそのインストール方法 |
US8832389B2 (en) * | 2011-01-14 | 2014-09-09 | International Business Machines Corporation | Domain based access control of physical memory space |
US8631123B2 (en) | 2011-01-14 | 2014-01-14 | International Business Machines Corporation | Domain based isolation of network ports |
US8595821B2 (en) | 2011-01-14 | 2013-11-26 | International Business Machines Corporation | Domains based security for clusters |
US10289467B2 (en) * | 2013-03-28 | 2019-05-14 | Hewlett Packard Enterprise Development Lp | Error coordination message for a blade device having a logical processor in another system firmware domain |
CN103608792B (zh) * | 2013-05-28 | 2016-03-09 | 华为技术有限公司 | 支持多核架构下资源隔离的方法及系统 |
TW201537458A (zh) * | 2014-03-31 | 2015-10-01 | Quanta Comp Inc | 操作多重作業系統之方法及其電子裝置 |
JP6579916B2 (ja) * | 2015-10-28 | 2019-09-25 | 株式会社日立製作所 | 仮想計算機間の通信経路制御方法および計算機システム |
WO2020176110A1 (en) * | 2019-02-28 | 2020-09-03 | Hewlett-Packard Development Company, L.P. | Access to firmware settings with asymmetric cryptography |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001331333A (ja) * | 2000-05-18 | 2001-11-30 | Hitachi Ltd | 計算機システム及び計算機システムの制御方法 |
JP2002157133A (ja) * | 2000-11-21 | 2002-05-31 | Hitachi Ltd | 計算機システム |
JP2004258698A (ja) * | 2003-02-24 | 2004-09-16 | Hitachi Ltd | マルチos計算機システムの制御方法 |
JP2005513644A (ja) * | 2001-12-20 | 2005-05-12 | ノキア コーポレイション | オペレーティングシステム機能を実行する方法及びシステム並びに電子装置 |
JP2008186173A (ja) * | 2007-01-29 | 2008-08-14 | Toyota Motor Corp | 障害監視システム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7418703B2 (en) * | 2002-03-20 | 2008-08-26 | Nec Corporation | Parallel processing system by OS for single processor |
JP2004334410A (ja) * | 2003-05-06 | 2004-11-25 | Hitachi Ltd | 情報処理装置及びプロセッサ |
JP4756603B2 (ja) * | 2006-10-10 | 2011-08-24 | ルネサスエレクトロニクス株式会社 | データプロセッサ |
-
2009
- 2009-02-26 WO PCT/JP2009/053546 patent/WO2010097925A1/ja active Application Filing
- 2009-02-26 US US12/676,600 patent/US20110161644A1/en not_active Abandoned
- 2009-02-26 JP JP2011501407A patent/JPWO2010097925A1/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001331333A (ja) * | 2000-05-18 | 2001-11-30 | Hitachi Ltd | 計算機システム及び計算機システムの制御方法 |
JP2002157133A (ja) * | 2000-11-21 | 2002-05-31 | Hitachi Ltd | 計算機システム |
JP2005513644A (ja) * | 2001-12-20 | 2005-05-12 | ノキア コーポレイション | オペレーティングシステム機能を実行する方法及びシステム並びに電子装置 |
JP2004258698A (ja) * | 2003-02-24 | 2004-09-16 | Hitachi Ltd | マルチos計算機システムの制御方法 |
JP2008186173A (ja) * | 2007-01-29 | 2008-08-14 | Toyota Motor Corp | 障害監視システム |
Also Published As
Publication number | Publication date |
---|---|
US20110161644A1 (en) | 2011-06-30 |
WO2010097925A1 (ja) | 2010-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2010097925A1 (ja) | 情報処理装置 | |
TWI470552B (zh) | Data processor | |
US6449699B2 (en) | Apparatus and method for partitioned memory protection in cache coherent symmetric multiprocessor systems | |
RU2602793C2 (ru) | Способ модификации разрешений на доступ к памяти в защищенной процессорной среде | |
US8176220B2 (en) | Processor-bus-connected flash storage nodes with caching to support concurrent DMA accesses from multiple processors | |
US10430221B2 (en) | Post-copy virtual machine migration with assigned devices | |
JP2011170477A (ja) | ハイパーバイザ及びサーバ装置 | |
US20220114098A1 (en) | System, apparatus and methods for performing shared memory operations | |
US20090182893A1 (en) | Cache coherence in a virtual machine managed system | |
JP5338435B2 (ja) | 情報処理プログラム、情報処理装置および情報処理方法 | |
CN115203095A (zh) | PCIe装置及其操作方法 | |
CN115203101A (zh) | PCIe装置及其操作方法 | |
JP5612681B2 (ja) | 仮想計算機システム、領域管理方法、及びプログラム | |
JP2008021252A (ja) | 計算機システム及びアドレス割当方法 | |
KR101695845B1 (ko) | 캐시 일관성 유지 장치 및 방법, 이를 이용하는 멀티프로세서 장치 | |
EP4272081A1 (en) | Migrating pages of memory accessible by input-output devices | |
JP2009296195A (ja) | 複数のcpuコアを備えたfpgaを用いた暗号装置 | |
US7831963B2 (en) | Method for tracing a program executed on a system comprising a plurality of processing units, and a system comprising a plurality of processing units | |
US10481951B2 (en) | Multi-queue device assignment for application groups | |
CN114490449A (zh) | 一种内存访问方法、装置及处理器 | |
CN113849262A (zh) | 用于无需复制而在虚拟机之间移动数据的技术 | |
JPH09319653A (ja) | 情報処理装置、情報処理システム及びその制御方法 | |
JP2008123333A (ja) | 半導体集積回路装置 | |
US20110213936A1 (en) | Processor, multiprocessor system, and method of detecting illegal memory access | |
JP2004199579A (ja) | マルチプロセッサシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121113 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130409 |