説明

情報処理装置およびデータ転送制御方法

【課題】メモリ保護を実現でき、かつDMA転送を効率よく利用することが可能な情報処理装置を実現する。
【解決手段】I/Oデバイス135が接続されたI/Oコントローラ130は、DMAコントローラ(DMAC)133と、アクセスコントロールユニット(ACU)132とを備えている。DMAC133は、ユーザプロセスによってコントロール/ステータスレジスタ134に設定されるデータ転送制御情報にしたがって、DMA転送を実行する。ACU132は、特権プロセスによってコントロール/ステータスレジスタ131に設定されるアクセス制御情報に基づいてDMAC133によるDMA転送の実行を制限し、ユーザプロセスがアクセス可能なメモリ領域以外の他のメモリ領域がDMAC133によってアクセスされることを禁止する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、直接メモリアクセス(DMA:Direct Memory Access)によってI/Oデバイスとメモリとの間のデータ転送を実行する情報処理装置および同装置で用いられるデータ転送制御方法に関する。
【背景技術】
【0002】
一般に、複数のプロセスを並列に実行可能なマルチプロセス機能を有するコンピュータシステムにおいては、各プロセスを他のプロセスから保護する機構が用いられている。この機構を実現するために、通常、プロセッサは、特権モードとユーザモードの2つの実行モードを有している。オペレーティングシステムのカーネル等は特権モード上で動作し、各ユーザプロセスはユーザモード上で動作する。ユーザモードは一般モードと称されることもある。特権モードにおいては、プロセッサ内のメモリ管理ユニット(MMU:Memory Management Unit)の制御等のための特殊命令を含む全ての命令を実行することができ、またアクセス可能なメモリ空間も制限されない。カーネルのような特権プロセスは、メモリ保護を実現するために、MMUを用いて各ユーザプロセスがアクセス可能なメモリ空間を管理する。
【0003】
また、最近では、I/Oデバイス(Input/Output Device)とメモリとの間のデータ転送処理からCPUを解放するために、直接メモリアクセス(DMA)を利用したシステムアーキテクチャが利用されている(非特許文献1参照。)。この非特許文献1のシステムにおいては、DMA機能を有するI/Oコントローラが設けられている。I/Oコントローラは、プロセッサが他のタスクを実行している間に、I/Oデバイスとメモリとの間のデータ転送をDMAによって実行することができる。
【非特許文献1】David A. Patterson and John L. Hennessy,「Computer Architecture A Quantitative Approach Second Edition」,Morgan Kaufmann Publishers Inc.,1996年6月1日,p.501−504,FIGURE 6.15
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかし、DMA機能を有するI/Oコントローラを備えたシステムにおいては、メモリ保護を実現することが困難となる。MMUはプロセッサからメモリに対するアクセスを制限することはできるが、DMAによるメモリアクセスを制限することはできないからである。
【0005】
このため、DMA機能を有するI/Oコントローラを備えたシステムにおいては、DMA転送の制御は、カーネルのような特権モード上で動作する特権プロセスによって行われることが多い。この場合、ユーザプロセスは、I/OコントローラのDMA機能を直接制御することができないので、常に特権プロセス経由でDMA機能を制御しなければならない。このことは、オーバヘッドの増大を招き、システム性能を低下させる大きな要因となる。
【0006】
本発明は上述の事情を考慮してなされたものであり、メモリ保護を実現でき、かつDMA転送を効率よく実行することが可能な情報処理装置およびデータ転送制御方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
上述の課題を解決するため、本発明は、複数のプロセスを並列に実行可能な情報処理において、特権モードとユーザモードとを有するプロセッサと、メモリと、前記ユーザモード上で動作するユーザプロセスがアクセス可能なアドレス空間にマッピングされた第1レジスタおよび前記特権モード上で動作する特権プロセスがアクセス可能なアドレス空間にマッピングされた第2レジスタを有し、I/Oデバイスを制御するI/Oコントローラと、前記I/Oコントローラに設けられ、前記ユーザプロセスによって前記第1のレジスタに設定されるデータ転送制御情報に基づいて、前記I/Oデバイスと前記メモリとの間のデータ転送を実行する直接メモリアクセスコントローラと、前記I/Oコントローラに設けられ、前記特権プロセスによって前記第2のレジスタに設定されるアクセス制御情報に基づいて前記直接メモリアクセスコントローラのデータ転送動作を制限し、前記ユーザプロセスがアクセス可能な前記メモリ上の所定領域以外の他の領域が前記直接メモリアクセスコントローラによってアクセスされることを禁止するアクセス制御部とを具備することを特徴とする。
【発明の効果】
【0008】
本発明によれば、メモリ保護を実現でき、かつDMA転送を効率よく実行することが可能となる。
【発明を実施するための最良の形態】
【0009】
以下、図面を参照して本発明の実施形態を説明する。
【0010】
図1には、本発明の一実施形態の係わる情報処理装置の構成例が示されている。この情報処理装置はマイクロプロセッサを利用したコンピュータであり、例えば、パーソナルコンピュータ、サーバコンピュータ、あるいは各種電子機器のための組み込みシステム等として実現されている。
【0011】
この情報処理装置は、複数のプロセスを並列に実行可能なマルチプロセス機能をサポートしており、CPU111、メモリバス113、メモリ114、ブリッジ115、I/Oバス116、I/Oメモリ118、I/Oコントローラ120、130、140およびI/Oデバイス125、135、145から構成されている。
【0012】
メモリバス113には、CPU111およびメモリ114が接続されている。I/Oバス116には、I/Oメモリ118、およびI/Oコントローラ120、130、140が接続されている。メモリバス113とI/Oバス116との間にはブリッジ115が設けられている。ブリッジ115はメモリバス113とI/Oバス116とを相互接続するためのインターフェース装置である。
【0013】
I/Oデバイス125、135、145は互いに独立して動作可能に構成されている。これらI/Oデバイス125、135、145それぞれに対応して、I/Oコントローラ120、130、140が存在する。各I/Oコントローラ120、130、140は、対応するI/Oデバイス125、135、145を制御する。各I/Oコントローラ120、130、140は、DMA機能を有している。
【0014】
CPU111は、本情報処理装置に設けられた各コンポーネントを制御するプロセッサである。CPU111は、仮想アドレスおよびメモリ保護を実現するためのメモリ管理ユニット(MMU)112を備えている。このCPU111は、特権モードとユーザモードの二つの実行モードを持つ。特権モードにおいては、MMU112の制御等のための特殊命令を含む全ての命令を実行することができ、またアクセス可能なメモリ空間も制限されない。一方、ユーザモードにおいては、実行可能な命令の種類が制限されるとともに、アクセス可能なメモリ空間もMMU112によって制限される。カーネルのような特権プロセスは特権モード上で動作し、また各ユーザプロセスはユーザモード上で動作する。
【0015】
図1においては、特権プロセス、第1のユーザプロセスおよび第2のユーザプロセスの計三つのプロセスが実行される場合を想定している。特権プロセス、第1のユーザプロセスおよび第2のユーザプロセスには、メモリ114上の互いに異なる領域がそれぞれ割り当てられる。例えば、第1のユーザプロセスはI/Oデバイス135を制御するプロセスであり、また第2のユーザプロセスはI/Oデバイス145を制御するプロセスである。
【0016】
メモリ114上に割り当てられた領域とその領域を使用するプロセスとの関係は次の通りである。
【0017】
・Kp領域114A:特権プロセス
・Up(1)領域114B:第1のユーザプロセス
・Up(2)領域114C:第2のユーザプロセス
また、特権プロセス、第1のユーザプロセスおよび第2のユーザプロセスには、I/Oメモリ118上の互いに異なる領域もそれぞれ割り当てられている。I/Oメモリ118上に割り当てられた領域とその領域を使用するプロセスとの関係は次の通りである。
【0018】
・Kp領域118A:特権プロセス
・Up領域(1)118B:第1のユーザプロセス
・Up領域(2)118C:第2のユーザプロセス
Kp領域114AおよびKp領域118Aは、特権プロセスのみが使用可能である。Up領域(1)114Bおよび118Bは、第1のユーザプロセスがアクセス可能な領域である。Up領域(2)114Cおよび118Cは、第2のユーザプロセスがアクセス可能な領域である。
【0019】
I/Oコントローラ120は、コントロール/ステータスレジスタ(以下:C/S)121、アクセス制御部(ACU:Access Control Unit)122、DMAコントローラ(以下、DMAC)123およびC/S124等から構成されている。
【0020】
C/S121は、DMAC123によるメモリアクセスを制限するためのアクセス制御情報を記憶するレジスタである。アクセス制御情報は、DMAC123がアクセス可能なメモリ114およびI/Oメモリ118上の各領域のアドレス範囲を指定するアドレス情報である。C/S121は、特権プロセスがアクセス可能なアドレス空間にマッピングされている。このため、C/S121の操作は特権プロセスのみに許され、各ユーザプロセスはC/S121を操作することはできない。
【0021】
ACU122は、特権プロセスによってC/S121に設定されたアクセス制御情報に基づいてDMAC123のデータ転送動作を制限する。つまり、ACU122は、DMAC123から出力されるアドレスを監視し、そのアドレスがC/S121に記憶されているアクセス制御情報によって指定されるアドレス範囲に属するか否かを判別する処理を実行する。この判別処理の結果に従って、ACU122は、DMAC123によるメモリアクセスの可否を決定する。
【0022】
C/S124は、DMAC123によるI/Oデバイス125とメモリ114およびI/Oメモリ118の各々との間のデータ転送動作を制御するデータ転送制御情報(DMAパラメタ)を記憶するレジスタ(DMAレジスタ)である。C/S124の操作は、I/Oデバイス125を制御するプロセスに対して許可されている。本実施形態においては、I/Oデバイスとプロセスとの対応関係は以下の通りである。
【0023】
I/Oデバイス125とメモリ114,118との間のDMA転送:特権プロセス
I/Oデバイス135とメモリ114,118との間のDMA転送:第1のユーザプロセス
I/Oデバイス145とメモリ114,118との間のDMA転送:第2のユーザプロセス
この場合、C/S124の操作は特権プロセスのみに許可される。つまり、C/S124は特権プロセスがアクセス可能なアドレス空間にマッピングされる。
【0024】
DMAC123は、特権プロセスによってC/S124に設定されたデータ転送制御情報にしたがって、I/Oデバイス125とメモリ114,118との間のDMA転送を実行する。
【0025】
I/Oコントローラ130は、I/Oコントローラ120と同様に、C/S131、ACU132、DMAC133およびC/S134等から構成されている。C/S131は、DMAC133によるメモリアクセスを制限するためのアクセス制御情報を記憶するレジスタである。アクセス制御情報は、DMAC133がアクセス可能なメモリ114およびI/Oメモリ118上の各領域のアドレス範囲を指定するアドレス情報である。C/S131は、特権プロセスがアクセス可能なアドレス空間にマッピングされている。このため、C/S131の操作は特権プロセスのみに許され、各ユーザプロセスはC/S131を操作することはできない。
【0026】
ACU132は、特権プロセスによってC/S131に設定されたアクセス制御情報に基づいてDMAC133のデータ転送動作を制限する。つまり、ACU132は、DMAC133から出力されるアドレスを監視し、そのアドレスがC/S131に記憶されているアクセス制御情報によって指定されるアドレス範囲に属するか否かを判別する処理を実行する。この判別処理の結果に従って、ACU132は、DMAC133によるメモリアクセスの可否を決定する。
【0027】
C/S134は、DMAC133によるI/Oデバイス135とメモリ114およびI/Oメモリ118の各々との間のデータ転送動作を制御するデータ転送制御情報(DMAパラメタ)を記憶するレジスタ(DMAレジスタ)である。C/S134の操作は、I/Oデバイス135を制御するプロセスに対して許可されている。本実施形態においては、第1のユーザプロセスがDMAC133を直接操作できるようにするために、C/S134は第1のユーザプロセスがアクセス可能なメモリ空間にマッピングされている。
【0028】
I/Oコントローラ140も、I/Oコントローラ120と同様に、C/S141、ACU142、DMAC143およびC/S144等から構成されている。
【0029】
C/S141は、DMAC143によるメモリアクセスを制限するためのアクセス制御情報を記憶するレジスタである。アクセス制御情報は、DMAC143がアクセス可能なメモリ114およびI/Oメモリ118上の各領域のアドレス範囲を指定するアドレス情報である。C/S141は、特権プロセスがアクセス可能なアドレス空間にマッピングされている。このため、C/S141の操作は特権プロセスのみに許され、各ユーザプロセスはC/S141を操作することはできない。
【0030】
ACU142は、特権プロセスによってC/S141に設定されたアクセス制御情報に基づいてDMAC143のデータ転送動作を制限する。つまり、ACU142は、DMAC143から出力されるアドレスを監視し、そのアドレスがC/S141に記憶されているアクセス制御情報によって指定されるアドレス範囲に属するか否かを判別する処理を実行する。この判別処理の結果に従って、ACU142は、DMAC143によるメモリアクセスの可否を決定する。
【0031】
C/S144は、DMAC143によるI/Oデバイス145とメモリ114およびI/Oメモリ118の各々との間のデータ転送動作を制御するデータ転送制御情報(DMAパラメタ)を記憶するレジスタ(DMAレジスタ)である。C/S144の操作は、I/Oデバイス145を制御するプロセスに対して許可されている。本実施形態においては、第2のユーザプロセスがDMAC143を直接操作できるようにするために、C/S144は第2のユーザプロセスがアクセス可能なメモリ空間にマッピングされている。
【0032】
本実施形態においては、第1のユーザプロセスはI/Oバス116を介してC/S134にデータ転送制御情報をセットすることにより、特権プロセスの介在なしで、DMAC133を直接制御することができる。同様に、第2のユーザプロセスはI/Oバス116を介してC/S144にデータ転送制御情報をセットすることにより、特権プロセスの介在なしで、DMAC143を直接制御することができる。
【0033】
また、特権プロセスは、MMU112、C/S131,141を操作することにより、第1のユーザプロセスおよび第2のユーザプロセスによるメモリ114、I/Oメモリ118へのアクセスに対して以下のようなアクセス制御を実現することができる。
【0034】
第1のユーザプロセスに対するアクセス制御: CPU111からのアクセスは、MMU112によって、Up(1)領域114B,118Bのみに制限される。DMAC133からのアクセスは、ACU132によって、Up(1)領域114B,118Bのみに制限される。また、CPU111は、C/S134に対するアクセスが許可されている。
【0035】
第2のユーザプロセスに対するアクセス制御: CPU111からのアクセスは、MMU112によって、Up(2)領域114C,118Cのみに制限される。DMAC143からのアクセスは、ACU142によって、Up(2)領域114C,118Cのみに制限される。また、CPU111は、C/S144に対するアクセスが許可されている。
【0036】
次に図2および図3を参照して、DMA転送処理の一連の動作を、I/Oコントローラ130を例にとって説明する。
【0037】
図2は、I/Oコントローラ130の内部で実行される処理の流れを示したブロック図である。
【0038】
I/Oコントローラ130は、その内部に設けられたバスI/F(Bus Interface)150を介してI/Oバス116に接続されている。
【0039】
ACU132は、DMAC133とバスI/F150との間に設けられている。DMAC133はメモリサイクルを実行する。DMAC133からのアドレス、コマンド(リード/ライト)は、ACU132およびバスI/F150を介してI/Oバス116上に出力される。メモリ114またはI/Oメモリ118からの応答は、バスI/F150、ACU132を介してDMAC133に送られる。
【0040】
ACU132は、DMAC133から出力されるアドレスを監視し、そのアドレスがC/S131にセットされたアクセス制御情報によって指定される、Up(1)領域のアドレス範囲に属するか否かを判別する。この判別結果に従って、ACU132は、DMAC133によるアクセスを許可または禁止する。DMAC133から出力されるアドレスがUp(1)領域114Bまたは118Bのアドレス範囲に属さない場合、ACU132は、DMAC133からのアドレス、コマンドをI/F150を介してI/Oバス116上に出力せず、メモリサイクルを強制終了するための応答をDMAC133に送信すると共に、DMAC133からのアドレスをエラーアドレス情報としてC/S131に保存する。C/S131に保存されたエラーアドレス情報は、たとえば、I/Oコントローラ130からCPU111に送信される割り込み信号によって、特権プロセスに通知される。
【0041】
図3のフローチャートは、特権プロセスおよびユーザプロセスそれぞれによって実行される処理の手順を示している。
【0042】
特権プロセス(Kp)は、DMAC133がメモリ114上のUp(1)領域114BおよびI/Oメモリ118上のUp(1)領域118BをアクセスできるようにするためにACU132をセットアップする(ステップS101)。このステップS101においては、特権プロセス(Kp)は、Up(1)領域114B,118Bのアドレス範囲を指定するアクセス制限情報をI/Oバス116を介してC/S131に設定する。特権プロセス(Kp)は、第1のユーザプロセス(Up(1))がDMAC133を直接操作できるようにするためにMMU112を操作し、これによってC/S134をアクセスするためのアドレス空間を第1のユーザプロセス(Up(1))に割り当てる(ステップS102)。
【0043】
第1のユーザプロセス(Up(1))は、データ転送制御情報をI/Oバス116を介してC/S134に設定することにより、DMAC133にDMA転送の実行を指示する(ステップS103)。
【0044】
次に図4のフローチャートを参照して、I/Oコントローラ130内に設けられたACU132によって実行される一連の動作を説明する。
【0045】
まず、ACU132は、DMAC133から出力されるメモリアドレスを検出する(ステップS201)。次に、ACU132は、検出されたDMAC133からのメモリアドレスと、C/S131にセットされたアクセス制御情報とを比較してメモリアドレスが、第1のユーザプロセスがアクセス可能なメモリアドレスの範囲内に属するか否かを判定する(ステップS202,S203)。DMAC133からのメモリアドレスが、第1のユーザプロセスがアクセス可能なメモリアドレス範囲内に属する場合(ステップS203のYES)、ACU132は、DMA転送許可する(ステップS207)。ステップS207においては、ACU132は、DMAC133からのメモリアドレスをI/F150に送信する。
【0046】
一方、DMAC133からのメモリアドレスが、第1のユーザプロセスがアクセス可能なメモリアドレス範囲内に属さない場合(ステップS203のNO)、ACU132は、DMAC133によって開始されたメモリサイクルを強制終了してDMA転送の実行を禁止する(ステップS205)。この後、ACU132は、DMAC133からのメモリアドレスをC/S134に記憶する(ステップS205)。そして、ACU132は、記憶したDMAC133からのメモリアドレスをCPU111に通知する(ステップS206)。
【0047】
以上説明したように、本実施形態においては、各ユーザプロセスは対応するDMACを直接操作することができるので、I/Oデバイスとメモリとの間のデータ転送を効率よく実行することができる。また、DMAC毎にACUが設けられているので、各DMACによって実行されるメモリアクセスを特権プロセスによって制限することができる。
【0048】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【0049】
【図1】本発明の一実施形態に係わる情報処理装置の構成の一例を示すブロック図。
【図2】図1の情報処理装置で用いられるI/Oコントローラの構成を説明するためのブロック図。
【図3】図1の情報処理装置で実行されるユーザプロセスおよび特権プロセスそれぞれによって実行される処理の手順を示すフローチャート。
【図4】図1の情報処理装置に設けられたアクセス制御ユニットの動作を説明するためのフローチャート。
【符号の説明】
【0050】
CPU…111、MMU…112、メモリバス…113、メモリ…114、I/Oメモリ…118、Kp領域…114A,118A、Up(1)領域…114B,118B、Up(1)領域…114C,118C、ブリッジ115、I/Oバス…116、I/Oコントローラ…120,130,140、C/S(第2のレジスタ)…121,131,141、ACU…122,132,142,DMAC…123,133,143、C/S(第1のレジスタ)…124,134,144、I/Oデバイス…125,135,145。

【特許請求の範囲】
【請求項1】
複数のプロセスを並列に実行可能な情報処理において、
特権モードとユーザモードとを有するプロセッサと、
メモリと、
前記ユーザモード上で動作するユーザプロセスがアクセス可能なアドレス空間にマッピングされた第1レジスタおよび前記特権モード上で動作する特権プロセスがアクセス可能なアドレス空間にマッピングされた第2レジスタを有し、I/Oデバイスを制御するI/Oコントローラと、
前記I/Oコントローラに設けられ、前記ユーザプロセスによって前記第1のレジスタに設定されるデータ転送制御情報に基づいて、前記I/Oデバイスと前記メモリとの間のデータ転送を実行する直接メモリアクセスコントローラと、
前記I/Oコントローラに設けられ、前記特権プロセスによって前記第2のレジスタに設定されるアクセス制御情報に基づいて前記直接メモリアクセスコントローラのデータ転送動作を制限し、前記ユーザプロセスがアクセス可能な前記メモリ上の所定領域以外の他の領域が前記直接メモリアクセスコントローラによってアクセスされることを禁止するアクセス制御部とを具備することを特徴とする情報処理装置。
【請求項2】
前記アクセス制御部は、前記直接メモリアクセスコントローラのデータ転送動作を制限するために前記直接メモリアクセスコントローラから出力されるアドレスを監視する手段を含むことを特徴とする請求項1記載の情報処理装置。
【請求項3】
前記アクセス制御情報は、前記所定領域に対応するアドレス範囲を指定するアドレス情報を含み、
前記アクセス制御部は、前記直接メモリアクセスコントローラから出力されるアドレスを監視し、前記アドレスが前記所定領域に対応するアドレス範囲内に属するか否かを判別する手段と、前記直接メモリアクセスコントローラから出力されるアドレスが前記所定領域に対応するアドレス範囲内に属さない場合、前記直接メモリアクセスコントローラによるデータ転送動作の実行を禁止する手段とを含むことを特徴とする請求項1記載の情報処理装置。
【請求項4】
前記アクセス制御情報は、前記所定領域に対応するアドレス範囲を指定するアドレス情報を含み、
前記アクセス制御部は、前記直接メモリアクセスコントローラから出力されるアドレスを監視し、前記アドレスが前記所定領域に対応するアドレス範囲内に属するか否かを判別する手段と、前記直接メモリアクセスコントローラから出力されるアドレスが前記所定領域に対応するアドレス範囲内に属さない場合、前記直接メモリアクセスコントローラによるデータ転送動作の実行を禁止する手段と、前記データ転送動作の実行が禁止された場合、前記直接メモリアクセスコントローラから出力されるアドレスを前記特権プロセスに通知するために、前記アドレスを前記第2のレジスタに保存する手段とを含むことを特徴とする情報処理装置。
【請求項5】
複数のプロセスを並列に実行可能な情報処理において、
特権モードとユーザモードとを有するプロセッサと、
メモリと、
前記ユーザモード上で動作する第1のユーザプロセスがアクセス可能なアドレス空間にマッピングされた第1レジスタおよび前記特権モード上で動作する特権プロセスがアクセス可能なアドレス空間にマッピングされた第2レジスタを有し、第1のI/Oデバイスを制御する第1のI/Oコントローラと、
前記ユーザモード上で動作する第2のユーザプロセスからアクセス可能なアドレス空間にマッピングされた第3レジスタおよび前記特権プロセスからアクセス可能なアドレス空間にマッピングされた第4レジスタを有し、第2のI/Oデバイスを制御する第2のI/Oコントローラと、
前記第1のI/Oコントローラに設けられ、前記第1のユーザプロセスによって前記第1のレジスタに設定されるデータ転送制御情報に基づいて、前記第1のI/Oデバイスと前記メモリとの間のデータ転送を実行する第1の直接メモリアクセスコントローラと、
前記第1のI/Oコントローラに設けられ、前記特権プロセスによって前記第2レジスタに設定される第1のアクセス制御情報に基づいて前記第1の直接メモリアクセスコントローラのデータ転送動作を制限し、前記第1のユーザプロセスがアクセス可能な前記メモリ上の第1領域以外の他の領域が前記第1の直接メモリアクセスコントローラによってアクセスされることを禁止する第1のアクセス制御部と、
前記第2のI/Oコントローラに設けられ、前記第2のユーザプロセスによって前記第3レジスタに設定されるデータ転送制御情報に基づいて、前記第2のI/Oデバイスと前記メモリとの間のデータ転送を実行する第2の直接メモリアクセスコントローラと、
前記第2のI/Oコントローラに設けられ、前記特権プロセスによって前記第4レジスタに設定される第2のアクセス制御情報に基づいて前記第2の直接メモリアクセスコントローラのデータ転送動作を制限し、前記第2のユーザプロセスがアクセス可能な前記メモリ上の第2領域以外の他の領域が前記第2の直接メモリアクセスコントローラによってアクセスされることを禁止する第2のアクセス制御部とを具備することを特徴とする情報処理装置。
【請求項6】
前記第1のユーザプロセスは前記第1のI/Oデバイスを制御するための処理を実行し、前記第2のユーザプロセスは前記第2のI/Oデバイスを制御するための処理を実行することを特徴とする請求項5記載の情報処理装置。
【請求項7】
前記第1のアクセス制御情報は、前記第1領域に対応するアドレス範囲を指定するアドレス情報を含み、
前記第1のアクセス制御部は、前記第1の直接メモリアクセスコントローラから出力されるアドレスを監視し、前記アドレスが前記第1領域に対応するアドレス範囲内に属するか否かを判別する手段と、前記第1の直接メモリアクセスコントローラから出力されるアドレスが前記第1領域に対応するアドレス範囲内に属さない場合、前記第1の直接メモリアクセスコントローラによるデータ転送動作の実行を禁止する手段とを含むことを特徴とする請求項5記載の情報処理装置。
【請求項8】
前記第2のアクセス制御情報は、前記第2領域に対応するアドレス範囲を指定するアドレス情報を含み、
前記第2のアクセス制御部は、前記第2の直接メモリアクセスコントローラから出力されるアドレスを監視し、前記アドレスが前記第2領域に対応するアドレス範囲内に属するか否かを判別する手段と、前記第2の直接メモリアクセスコントローラから出力されるアドレスが前記第2領域に対応するアドレス範囲内に属さない場合、前記第2の直接メモリアクセスコントローラによるデータ転送動作の実行を禁止する手段とを含むことを特徴とする請求項5記載の情報処理装置。
【請求項9】
I/Oコントローラによって実行されるI/Oデバイスとメモリとの間のデータ転送を制御するデータ転送制御方法であって、前記I/Oコントローラは、前記データ転送を実行する直接メモリアクセスコントローラと、ユーザプロセスがアクセス可能なアドレス空間にマッピングされた第1レジスタと、特権プロセスがアクセス可能なアドレス空間にマッピングされた第2レジスタとを含み、
前記第2レジスタにアクセス制御情報を設定する処理を前記特権プロセスによって実行するステップと、
前記直接メモリアクセスコントローラの動作を制御するデータ転送制御情報を前記第1レジスタに設定する処理を前記ユーザプロセスによって実行するステップと、
前記直接メモリアクセスコントローラから出力されるアドレスを監視し、前記アドレスが前記ユーザプロセスがアクセス可能な前記メモリ上の所定領域に対応するアドレス範囲内に属するか否かを前記アクセス制御情報に基づいて判別するステップと、
前記直接メモリアクセスコントローラから出力されるアドレスが前記所定領域に対応するアドレス範囲内に属さない場合、前記直接メモリアクセスコントローラによるデータ転送動作の実行を禁止するステップとを具備することを特徴とするデータ転送制御方法。
【請求項10】
前記データ転送動作の実行が禁止された場合、前記直接メモリアクセスコントローラから出力されるアドレスを前記特権プロセスに通知するために、前記アドレスを前記第2のレジスタに保存するステップをさらに具備することを特徴とする請求項9記載のデータ転送制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate