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

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

Info

Publication number
JP4533713B2
JP4533713B2 JP2004288217A JP2004288217A JP4533713B2 JP 4533713 B2 JP4533713 B2 JP 4533713B2 JP 2004288217 A JP2004288217 A JP 2004288217A JP 2004288217 A JP2004288217 A JP 2004288217A JP 4533713 B2 JP4533713 B2 JP 4533713B2
Authority
JP
Japan
Prior art keywords
address
direct memory
memory access
access controller
controller
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.)
Expired - Fee Related
Application number
JP2004288217A
Other languages
English (en)
Other versions
JP2006099702A (ja
Inventor
哲夫 畠山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2004288217A priority Critical patent/JP4533713B2/ja
Priority to US11/237,972 priority patent/US7523229B2/en
Publication of JP2006099702A publication Critical patent/JP2006099702A/ja
Application granted granted Critical
Publication of JP4533713B2 publication Critical patent/JP4533713B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Bus Control (AREA)

Description

本発明は、直接メモリアクセス(DMA:Direct Memory Access)によってI/Oデバイスとメモリとの間のデータ転送を実行する情報処理装置および同装置で用いられるデータ転送制御方法に関する。
一般に、複数のプロセスを並列に実行可能なマルチプロセス機能を有するコンピュータシステムにおいては、各プロセスを他のプロセスから保護する機構が用いられている。この機構を実現するために、通常、プロセッサは、特権モードとユーザモードの2つの実行モードを有している。オペレーティングシステムのカーネル等は特権モード上で動作し、各ユーザプロセスはユーザモード上で動作する。ユーザモードは一般モードと称されることもある。特権モードにおいては、プロセッサ内のメモリ管理ユニット(MMU:Memory Management Unit)の制御等のための特殊命令を含む全ての命令を実行することができ、またアクセス可能なメモリ空間も制限されない。カーネルのような特権プロセスは、メモリ保護を実現するために、MMUを用いて各ユーザプロセスがアクセス可能なメモリ空間を管理する。
また、最近では、I/Oデバイス(Input/Output Device)とメモリとの間のデータ転送処理からCPUを解放するために、直接メモリアクセス(DMA)を利用したシステムアーキテクチャが利用されている(非特許文献1参照。)。この非特許文献1のシステムにおいては、DMA機能を有するI/Oコントローラが設けられている。I/Oコントローラは、プロセッサが他のタスクを実行している間に、I/Oデバイスとメモリとの間のデータ転送をDMAによって実行することができる。
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
しかし、DMA機能を有するI/Oコントローラを備えたシステムにおいては、メモリ保護を実現することが困難となる。MMUはプロセッサからメモリに対するアクセスを制限することはできるが、DMAによるメモリアクセスを制限することはできないからである。
このため、DMA機能を有するI/Oコントローラを備えたシステムにおいては、DMA転送の制御は、カーネルのような特権モード上で動作する特権プロセスによって行われることが多い。この場合、ユーザプロセスは、I/OコントローラのDMA機能を直接制御することができないので、常に特権プロセス経由でDMA機能を制御しなければならない。このことは、オーバヘッドの増大を招き、システム性能を低下させる大きな要因となる。
本発明は上述の事情を考慮してなされたものであり、メモリ保護を実現でき、かつDMA転送を効率よく実行することが可能な情報処理装置およびデータ転送制御方法を提供することを目的とする。
上述の課題を解決するため、本発明は、複数のプロセスを並列に実行可能な情報処理において、特権モードとユーザモードとを有するプロセッサと、メモリと、前記ユーザモード上で動作するユーザプロセスがアクセス可能なアドレス空間にマッピングされた第1レジスタおよび前記特権モード上で動作する特権プロセスがアクセス可能なアドレス空間にマッピングされた第2レジスタを有し、I/Oデバイスを制御するとともに、I/Oバスを介して前記メモリに接続されるI/Oコントローラと、前記I/Oコントローラに設けられ、前記ユーザプロセスによって前記第1レジスタに設定されるデータ転送制御情報に基づいて、前記I/Oデバイスと前記メモリとの間のデータ転送を前記ユーザプロセスが実行する直接メモリアクセスコントローラと、前記I/Oコントローラに設けられ、前記直接メモリアクセスコントローラと前記I/Oバスとの間に位置し、前記直接メモリアクセスコントローラから出力されるアドレスと前記特権プロセスによって前記第2レジスタに設定されるアクセス制御情報に基づいて前記直接メモリアクセスコントローラのデータ転送動作を制限し、前記ユーザプロセスがアクセス可能な前記メモリ上の所定領域以外の他の領域が前記直接メモリアクセスコントローラによってアクセスされることを禁止するアクセス制御部とを具備することを特徴とする。
本発明によれば、メモリ保護を実現でき、かつDMA転送を効率よく実行することが可能となる。
以下、図面を参照して本発明の実施形態を説明する。
図1には、本発明の一実施形態の係わる情報処理装置の構成例が示されている。この情報処理装置はマイクロプロセッサを利用したコンピュータであり、例えば、パーソナルコンピュータ、サーバコンピュータ、あるいは各種電子機器のための組み込みシステム等として実現されている。
この情報処理装置は、複数のプロセスを並列に実行可能なマルチプロセス機能をサポートしており、CPU111、メモリバス113、メモリ114、ブリッジ115、I/Oバス116、I/Oメモリ118、I/Oコントローラ120、130、140およびI/Oデバイス125、135、145から構成されている。
メモリバス113には、CPU111およびメモリ114が接続されている。I/Oバス116には、I/Oメモリ118、およびI/Oコントローラ120、130、140が接続されている。メモリバス113とI/Oバス116との間にはブリッジ115が設けられている。ブリッジ115はメモリバス113とI/Oバス116とを相互接続するためのインターフェース装置である。
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機能を有している。
CPU111は、本情報処理装置に設けられた各コンポーネントを制御するプロセッサである。CPU111は、仮想アドレスおよびメモリ保護を実現するためのメモリ管理ユニット(MMU)112を備えている。このCPU111は、特権モードとユーザモードの二つの実行モードを持つ。特権モードにおいては、MMU112の制御等のための特殊命令を含む全ての命令を実行することができ、またアクセス可能なメモリ空間も制限されない。一方、ユーザモードにおいては、実行可能な命令の種類が制限されるとともに、アクセス可能なメモリ空間もMMU112によって制限される。カーネルのような特権プロセスは特権モード上で動作し、また各ユーザプロセスはユーザモード上で動作する。
図1においては、特権プロセス、第1のユーザプロセスおよび第2のユーザプロセスの計三つのプロセスが実行される場合を想定している。特権プロセス、第1のユーザプロセスおよび第2のユーザプロセスには、メモリ114上の互いに異なる領域がそれぞれ割り当てられる。例えば、第1のユーザプロセスはI/Oデバイス135を制御するプロセスであり、また第2のユーザプロセスはI/Oデバイス145を制御するプロセスである。
メモリ114上に割り当てられた領域とその領域を使用するプロセスとの関係は次の通りである。
・Kp領域114A:特権プロセス
・Up(1)領域114B:第1のユーザプロセス
・Up(2)領域114C:第2のユーザプロセス
また、特権プロセス、第1のユーザプロセスおよび第2のユーザプロセスには、I/Oメモリ118上の互いに異なる領域もそれぞれ割り当てられている。I/Oメモリ118上に割り当てられた領域とその領域を使用するプロセスとの関係は次の通りである。
・Kp領域118A:特権プロセス
・Up領域(1)118B:第1のユーザプロセス
・Up領域(2)118C:第2のユーザプロセス
Kp領域114AおよびKp領域118Aは、特権プロセスのみが使用可能である。Up領域(1)114Bおよび118Bは、第1のユーザプロセスがアクセス可能な領域である。Up領域(2)114Cおよび118Cは、第2のユーザプロセスがアクセス可能な領域である。
I/Oコントローラ120は、コントロール/ステータスレジスタ(以下:C/S)121、アクセス制御部(ACU:Access Control Unit)122、DMAコントローラ(以下、DMAC)123およびC/S124等から構成されている。
C/S121は、DMAC123によるメモリアクセスを制限するためのアクセス制御情報を記憶するレジスタである。アクセス制御情報は、DMAC123がアクセス可能なメモリ114およびI/Oメモリ118上の各領域のアドレス範囲を指定するアドレス情報である。C/S121は、特権プロセスがアクセス可能なアドレス空間にマッピングされている。このため、C/S121の操作は特権プロセスのみに許され、各ユーザプロセスはC/S121を操作することはできない。
ACU122は、特権プロセスによってC/S121に設定されたアクセス制御情報に基づいてDMAC123のデータ転送動作を制限する。つまり、ACU122は、DMAC123から出力されるアドレスを監視し、そのアドレスがC/S121に記憶されているアクセス制御情報によって指定されるアドレス範囲に属するか否かを判別する処理を実行する。この判別処理の結果に従って、ACU122は、DMAC123によるメモリアクセスの可否を決定する。
C/S124は、DMAC123によるI/Oデバイス125とメモリ114およびI/Oメモリ118の各々との間のデータ転送動作を制御するデータ転送制御情報(DMAパラメタ)を記憶するレジスタ(DMAレジスタ)である。C/S124の操作は、I/Oデバイス125を制御するプロセスに対して許可されている。本実施形態においては、I/Oデバイスとプロセスとの対応関係は以下の通りである。
I/Oデバイス125とメモリ114,118との間のDMA転送:特権プロセス
I/Oデバイス135とメモリ114,118との間のDMA転送:第1のユーザプロセス
I/Oデバイス145とメモリ114,118との間のDMA転送:第2のユーザプロセス
この場合、C/S124の操作は特権プロセスのみに許可される。つまり、C/S124は特権プロセスがアクセス可能なアドレス空間にマッピングされる。
DMAC123は、特権プロセスによってC/S124に設定されたデータ転送制御情報にしたがって、I/Oデバイス125とメモリ114,118との間のDMA転送を実行する。
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を操作することはできない。
ACU132は、特権プロセスによってC/S131に設定されたアクセス制御情報に基づいてDMAC133のデータ転送動作を制限する。つまり、ACU132は、DMAC133から出力されるアドレスを監視し、そのアドレスがC/S131に記憶されているアクセス制御情報によって指定されるアドレス範囲に属するか否かを判別する処理を実行する。この判別処理の結果に従って、ACU132は、DMAC133によるメモリアクセスの可否を決定する。
C/S134は、DMAC133によるI/Oデバイス135とメモリ114およびI/Oメモリ118の各々との間のデータ転送動作を制御するデータ転送制御情報(DMAパラメタ)を記憶するレジスタ(DMAレジスタ)である。C/S134の操作は、I/Oデバイス135を制御するプロセスに対して許可されている。本実施形態においては、第1のユーザプロセスがDMAC133を直接操作できるようにするために、C/S134は第1のユーザプロセスがアクセス可能なメモリ空間にマッピングされている。
I/Oコントローラ140も、I/Oコントローラ120と同様に、C/S141、ACU142、DMAC143およびC/S144等から構成されている。
C/S141は、DMAC143によるメモリアクセスを制限するためのアクセス制御情報を記憶するレジスタである。アクセス制御情報は、DMAC143がアクセス可能なメモリ114およびI/Oメモリ118上の各領域のアドレス範囲を指定するアドレス情報である。C/S141は、特権プロセスがアクセス可能なアドレス空間にマッピングされている。このため、C/S141の操作は特権プロセスのみに許され、各ユーザプロセスはC/S141を操作することはできない。
ACU142は、特権プロセスによってC/S141に設定されたアクセス制御情報に基づいてDMAC143のデータ転送動作を制限する。つまり、ACU142は、DMAC143から出力されるアドレスを監視し、そのアドレスがC/S141に記憶されているアクセス制御情報によって指定されるアドレス範囲に属するか否かを判別する処理を実行する。この判別処理の結果に従って、ACU142は、DMAC143によるメモリアクセスの可否を決定する。
C/S144は、DMAC143によるI/Oデバイス145とメモリ114およびI/Oメモリ118の各々との間のデータ転送動作を制御するデータ転送制御情報(DMAパラメタ)を記憶するレジスタ(DMAレジスタ)である。C/S144の操作は、I/Oデバイス145を制御するプロセスに対して許可されている。本実施形態においては、第2のユーザプロセスがDMAC143を直接操作できるようにするために、C/S144は第2のユーザプロセスがアクセス可能なメモリ空間にマッピングされている。
本実施形態においては、第1のユーザプロセスはI/Oバス116を介してC/S134にデータ転送制御情報をセットすることにより、特権プロセスの介在なしで、DMAC133を直接制御することができる。同様に、第2のユーザプロセスはI/Oバス116を介してC/S144にデータ転送制御情報をセットすることにより、特権プロセスの介在なしで、DMAC143を直接制御することができる。
また、特権プロセスは、MMU112、C/S131,141を操作することにより、第1のユーザプロセスおよび第2のユーザプロセスによるメモリ114、I/Oメモリ118へのアクセスに対して以下のようなアクセス制御を実現することができる。
第1のユーザプロセスに対するアクセス制御: CPU111からのアクセスは、MMU112によって、Up(1)領域114B,118Bのみに制限される。DMAC133からのアクセスは、ACU132によって、Up(1)領域114B,118Bのみに制限される。また、CPU111は、C/S134に対するアクセスが許可されている。
第2のユーザプロセスに対するアクセス制御: CPU111からのアクセスは、MMU112によって、Up(2)領域114C,118Cのみに制限される。DMAC143からのアクセスは、ACU142によって、Up(2)領域114C,118Cのみに制限される。また、CPU111は、C/S144に対するアクセスが許可されている。
次に図2および図3を参照して、DMA転送処理の一連の動作を、I/Oコントローラ130を例にとって説明する。
図2は、I/Oコントローラ130の内部で実行される処理の流れを示したブロック図である。
I/Oコントローラ130は、その内部に設けられたバスI/F(Bus Interface)150を介してI/Oバス116に接続されている。
ACU132は、DMAC133とバスI/F150との間に設けられている。DMAC133はメモリサイクルを実行する。DMAC133からのアドレス、コマンド(リード/ライト)は、ACU132およびバスI/F150を介してI/Oバス116上に出力される。メモリ114またはI/Oメモリ118からの応答は、バスI/F150、ACU132を介してDMAC133に送られる。
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に送信される割り込み信号によって、特権プロセスに通知される。
図3のフローチャートは、特権プロセスおよびユーザプロセスそれぞれによって実行される処理の手順を示している。
特権プロセス(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)。
第1のユーザプロセス(Up(1))は、データ転送制御情報をI/Oバス116を介してC/S134に設定することにより、DMAC133にDMA転送の実行を指示する(ステップS103)。
次に図4のフローチャートを参照して、I/Oコントローラ130内に設けられたACU132によって実行される一連の動作を説明する。
まず、ACU132は、DMAC133から出力されるメモリアドレスを検出する(ステップS201)。次に、ACU132は、検出されたDMAC133からのメモリアドレスと、C/S131にセットされたアクセス制御情報とを比較してメモリアドレスが、第1のユーザプロセスがアクセス可能なメモリアドレスの範囲内に属するか否かを判定する(ステップS202,S203)。DMAC133からのメモリアドレスが、第1のユーザプロセスがアクセス可能なメモリアドレス範囲内に属する場合(ステップS203のYES)、ACU132は、DMA転送許可する(ステップS207)。ステップS207においては、ACU132は、DMAC133からのメモリアドレスをI/F150に送信する。
一方、DMAC133からのメモリアドレスが、第1のユーザプロセスがアクセス可能なメモリアドレス範囲内に属さない場合(ステップS203のNO)、ACU132は、DMAC133によって開始されたメモリサイクルを強制終了してDMA転送の実行を禁止する(ステップS205)。この後、ACU132は、DMAC133からのメモリアドレスをC/S134に記憶する(ステップS205)。そして、ACU132は、記憶したDMAC133からのメモリアドレスをCPU111に通知する(ステップS206)。
以上説明したように、本実施形態においては、各ユーザプロセスは対応するDMACを直接操作することができるので、I/Oデバイスとメモリとの間のデータ転送を効率よく実行することができる。また、DMAC毎にACUが設けられているので、各DMACによって実行されるメモリアクセスを特権プロセスによって制限することができる。
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
本発明の一実施形態に係わる情報処理装置の構成の一例を示すブロック図。 図1の情報処理装置で用いられるI/Oコントローラの構成を説明するためのブロック図。 図1の情報処理装置で実行されるユーザプロセスおよび特権プロセスそれぞれによって実行される処理の手順を示すフローチャート。 図1の情報処理装置に設けられたアクセス制御ユニットの動作を説明するためのフローチャート。
符号の説明
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。

Claims (9)

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

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004288217A JP4533713B2 (ja) 2004-09-30 2004-09-30 情報処理装置およびデータ転送制御方法
US11/237,972 US7523229B2 (en) 2004-09-30 2005-09-29 Memory protection during direct memory access

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004288217A JP4533713B2 (ja) 2004-09-30 2004-09-30 情報処理装置およびデータ転送制御方法

Publications (2)

Publication Number Publication Date
JP2006099702A JP2006099702A (ja) 2006-04-13
JP4533713B2 true JP4533713B2 (ja) 2010-09-01

Family

ID=36126990

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004288217A Expired - Fee Related JP4533713B2 (ja) 2004-09-30 2004-09-30 情報処理装置およびデータ転送制御方法

Country Status (2)

Country Link
US (1) US7523229B2 (ja)
JP (1) JP4533713B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4698285B2 (ja) * 2005-05-19 2011-06-08 富士通株式会社 情報処理装置、情報処理方法及びコンピュータプログラム
JP2007012021A (ja) * 2005-06-01 2007-01-18 Sony Corp 情報処理装置および情報処理方法、並びにプログラム
JP4766498B2 (ja) 2008-12-24 2011-09-07 株式会社ソニー・コンピュータエンタテインメント ユーザレベルdmaとメモリアクセス管理を提供する方法と装置
US8615614B2 (en) 2011-11-30 2013-12-24 Freescale Semiconductor, Inc. Message passing using direct memory access unit in a data processing system
US9311458B2 (en) * 2011-12-21 2016-04-12 Intel Corporation Secure direct memory access
US9092647B2 (en) 2013-03-07 2015-07-28 Freescale Semiconductor, Inc. Programmable direct memory access channels
FR3019339B1 (fr) 2014-03-25 2016-04-01 Commissariat Energie Atomique Procede de transfert de donnees entre taches temps reel utilisant un controleur memoire dma
CN104182264B (zh) * 2014-09-03 2017-07-11 福州瑞芯微电子股份有限公司 一种eMMC的开机优化方法及其装置
US10599208B2 (en) * 2015-09-08 2020-03-24 Toshiba Memory Corporation Memory system and controller
JP6274623B2 (ja) * 2016-03-24 2018-02-07 インテル・コーポレーション 安全なダイレクトメモリアクセス
CN111752604A (zh) * 2019-03-27 2020-10-09 阿里巴巴集团控股有限公司 一种具有多个运行模式的处理器

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62191950A (ja) * 1986-02-18 1987-08-22 Fujitsu Ltd Cpuシステム
JP2628079B2 (ja) * 1988-11-25 1997-07-09 三菱電機株式会社 マルチプロセサシステムにおけるダイレクト・メモリ・アクセス制御装置
US5347634A (en) * 1990-03-15 1994-09-13 Hewlett-Packard Company System and method for directly executing user DMA instruction from user controlled process by employing processor privileged work buffer pointers
JPH06274450A (ja) * 1993-03-23 1994-09-30 Fuji Xerox Co Ltd データ転送システム
JP3790323B2 (ja) * 1997-04-16 2006-06-28 株式会社ルネサステクノロジ データ転送制御装置、マイクロコンピュータ及びデータ処理システム
JP2001297054A (ja) * 2000-04-11 2001-10-26 Sharp Corp Dmaの転送逸脱防止方法及びdmaコントローラ
US7073173B1 (en) * 2000-12-04 2006-07-04 Microsoft Corporation Code and thread differential addressing via multiplex page maps
JP2003281076A (ja) * 2002-03-27 2003-10-03 Nec Microsystems Ltd Dmaコントローラの不正アクセス検出装置、不正アクセス検出方法およびそのプログラム

Also Published As

Publication number Publication date
JP2006099702A (ja) 2006-04-13
US20060075158A1 (en) 2006-04-06
US7523229B2 (en) 2009-04-21

Similar Documents

Publication Publication Date Title
JP5318964B2 (ja) セキュアな埋め込みコンテナの実行のためのプロセッサの拡張
CN109726549B (zh) 用于采用处理器沙箱支持的不可信代码执行的技术
TWI603223B (zh) 記憶體保護電路、處理裝置、及記憶體保護方法
US8898666B2 (en) Virtual machine system and virtual machine system control method for controlling program execution on a plurality of processors that have a plurality of privileged modes
JP5242747B2 (ja) システム管理割り込みを再命令し、仮想マシンコンテナを生成することによる、信頼性のないシステム管理コードに対する保護方法
JP5571201B2 (ja) ハードウェアモードおよびセキュリティフラグに基づく、読み出される命令用のメモリエリアの制限
JP4345630B2 (ja) 情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラム
JP2007220086A (ja) 入出力制御装置、入出力制御システム及び入出力制御方法
JP4533713B2 (ja) 情報処理装置およびデータ転送制御方法
JP2002099436A (ja) コンピュータシステムおよびそのレジューム処理方法
CN112749397A (zh) 一种系统和方法
JP7569307B2 (ja) 例外原因イベントをハンドリングするための装置及び方法
JP2009157542A (ja) 情報処理装置及びそのスタックポインタ更新方法
JP6921800B2 (ja) セキュアモード状態のデータ・アクセス・トラッキング
JP2013161299A (ja) 情報処理装置、インタフェースアクセス方法
JP2974577B2 (ja) コンピュータシステム
CN103778099A (zh) 信息处理设备
CN102428471A (zh) 从系统管理模式确定信任级别的系统和方法
JP6198858B2 (ja) 計算機、及び、ハイパバイザによる資源スケジューリング方法
JP2009134565A (ja) 仮想計算機システム及び仮想計算機システムの制御方法
CN117272412B (zh) 中断控制寄存器保护方法、装置、计算机设备及存储介质
JP2007334432A (ja) 情報処理装置及びそのアクセス制御方法
JP2017208058A (ja) 情報処理装置
JP2003242026A (ja) 情報処理システムおよびプログラム実行モード制御方法
JP2006338426A (ja) 計算機システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070410

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100329

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100518

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100614

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130618

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees