JP2823038B2 - 論理ダイレクトメモリアクセス方式 - Google Patents
論理ダイレクトメモリアクセス方式Info
- Publication number
- JP2823038B2 JP2823038B2 JP7091947A JP9194795A JP2823038B2 JP 2823038 B2 JP2823038 B2 JP 2823038B2 JP 7091947 A JP7091947 A JP 7091947A JP 9194795 A JP9194795 A JP 9194795A JP 2823038 B2 JP2823038 B2 JP 2823038B2
- Authority
- JP
- Japan
- Prior art keywords
- memory access
- direct memory
- microprocessor
- page
- logical
- 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 - Lifetime
Links
Landscapes
- Bus Control (AREA)
Description
【0001】
【産業上の利用分野】本発明は、電子計算機システムに
おける論理ダイレクトメモリアクセス方式に関し、特に
複数のマイクロプロセッサと複数のダイレクトメモリア
クセスコントローラとでページングを行う論理ダイレク
トメモリアクセス方式に関するものである。
おける論理ダイレクトメモリアクセス方式に関し、特に
複数のマイクロプロセッサと複数のダイレクトメモリア
クセスコントローラとでページングを行う論理ダイレク
トメモリアクセス方式に関するものである。
【0002】
【従来の技術】図7に、ページングを行う従来の電子計
算機システムの構成例を示す。このシステムは、2つの
マイクロプロセッサMPU1,MPU2とメモリMEM
と2つのダイレクトメモリアクセスコントローラDMA
C1,DMAC2とからなり、これらがシステムバスB
USによって接続されている。マイクロプロセッサMP
U1,MPU2は、論理アドレスを物理アドレスにペー
ジ単位で変換するメモリ管理機構MMU1,MMU2を
それぞれ有する。メモリMEMは、メモリ管理機構MM
U1,MMU2が論理アドレスを物理アドレスにページ
単位で変換するために用いるページテーブルエントリ
(PTE)の列であるユーザプロセスページマップUP
PM、及びダイレクトメモリアクセスコントローラDM
AC1,DMAC2が論理アドレスを物理アドレスにペ
ージ単位で変換するために用いるページテーブルPTを
有する。ページテーブルエントリ(PTE)は、指定の
論理アドレスからそれに対応する物理アドレスに変換す
るための情報を納めたテーブルである。また、システム
バスBUS上のアドレスは物理アドレスである。
算機システムの構成例を示す。このシステムは、2つの
マイクロプロセッサMPU1,MPU2とメモリMEM
と2つのダイレクトメモリアクセスコントローラDMA
C1,DMAC2とからなり、これらがシステムバスB
USによって接続されている。マイクロプロセッサMP
U1,MPU2は、論理アドレスを物理アドレスにペー
ジ単位で変換するメモリ管理機構MMU1,MMU2を
それぞれ有する。メモリMEMは、メモリ管理機構MM
U1,MMU2が論理アドレスを物理アドレスにページ
単位で変換するために用いるページテーブルエントリ
(PTE)の列であるユーザプロセスページマップUP
PM、及びダイレクトメモリアクセスコントローラDM
AC1,DMAC2が論理アドレスを物理アドレスにペ
ージ単位で変換するために用いるページテーブルPTを
有する。ページテーブルエントリ(PTE)は、指定の
論理アドレスからそれに対応する物理アドレスに変換す
るための情報を納めたテーブルである。また、システム
バスBUS上のアドレスは物理アドレスである。
【0003】このシステムにおいて、マイクロプロセッ
サMPU1,MPU2が処理する論理アドレスは、メモ
リ管理機構MMU1,MMU2によって物理アドレスに
変換されシステムバスBUSに出力される。この場合、
オペレーティングシステム(OS)は、メモリ管理機構
MMU1,MMU2が参照するメモリMEM内にある該
当ページテーブルエントリ(PTE)を事前に設定して
いる。また、ダイレクトメモリアクセスコントローラD
MAC1,DMAC2がメモリMEMにアクセスする場
合には、図8に示すように、ダイレクトメモリアクセス
コントローラDMAC1,DMAC2がページ毎にペー
ジテーブルPTを参照し、指定された論理アドレスに対
応する物理アドレスを得ることによって、論理アドレス
を物理アドレスに変換する。このページテーブルPT
は、マイクロプロセッサMPU1,MPU2により管理
されるもので、メモリMEM内の物理アドレス上にあ
り、マイクロプロセッサMPU1,MPU2はその空間
をアクセスすることによりエントリの設定/解除ができ
る。
サMPU1,MPU2が処理する論理アドレスは、メモ
リ管理機構MMU1,MMU2によって物理アドレスに
変換されシステムバスBUSに出力される。この場合、
オペレーティングシステム(OS)は、メモリ管理機構
MMU1,MMU2が参照するメモリMEM内にある該
当ページテーブルエントリ(PTE)を事前に設定して
いる。また、ダイレクトメモリアクセスコントローラD
MAC1,DMAC2がメモリMEMにアクセスする場
合には、図8に示すように、ダイレクトメモリアクセス
コントローラDMAC1,DMAC2がページ毎にペー
ジテーブルPTを参照し、指定された論理アドレスに対
応する物理アドレスを得ることによって、論理アドレス
を物理アドレスに変換する。このページテーブルPT
は、マイクロプロセッサMPU1,MPU2により管理
されるもので、メモリMEM内の物理アドレス上にあ
り、マイクロプロセッサMPU1,MPU2はその空間
をアクセスすることによりエントリの設定/解除ができ
る。
【0004】
【発明が解決しようとする課題】しかしながら、従来の
論理ダイレクトメモリアクセス方式では、メモリMEM
内にダイレクトメモリアクセスコントローラDMAC
1,DMAC2用のページテーブルPTを用意しなけれ
ばならないので、そのために広大なメモリ空間を消費し
てしまい、ユーザが使えるメモリ空間がその分狭くなる
という問題があった。それを避けるために、使用できる
論理空間を制限する方法もあるが、これではダイレクト
メモリアクセス(DMA)できる空間が制限される問題
がある。更に、ダイレクトメモリアクセス(DMA)を
起動する度に、ダイレクトメモリアクセスコントローラ
DMAC1,DMAC2のためのページテーブルPTを
オペレーティングシステム(OS)が管理しなくてはな
らず、そのためにオーバーヘッドが大きくなってしまう
問題があった。これらの問題は、ダイレクトメモリアク
セスコントローラの数が増えるとそれだけ大きくなる。
論理ダイレクトメモリアクセス方式では、メモリMEM
内にダイレクトメモリアクセスコントローラDMAC
1,DMAC2用のページテーブルPTを用意しなけれ
ばならないので、そのために広大なメモリ空間を消費し
てしまい、ユーザが使えるメモリ空間がその分狭くなる
という問題があった。それを避けるために、使用できる
論理空間を制限する方法もあるが、これではダイレクト
メモリアクセス(DMA)できる空間が制限される問題
がある。更に、ダイレクトメモリアクセス(DMA)を
起動する度に、ダイレクトメモリアクセスコントローラ
DMAC1,DMAC2のためのページテーブルPTを
オペレーティングシステム(OS)が管理しなくてはな
らず、そのためにオーバーヘッドが大きくなってしまう
問題があった。これらの問題は、ダイレクトメモリアク
セスコントローラの数が増えるとそれだけ大きくなる。
【0005】また、論理アドレスを物理アドレスに変換
する度に、メモリMEM上のページテーブルPTをサー
チしてマッピングを行う方式の場合、そのためのオーバ
ーヘッドが大きくなりダイレクトメモリアクセス(DM
A)のリアルタイム性が損なわれる問題があった。その
上、マイクロプロセッサが複数あると、どのマイクロプ
ロセッサにダイレクトメモリアクセス完了や異常終了の
割り込みを与えるべきかが問題になる。そのときの割り
込みレベルも重要である。
する度に、メモリMEM上のページテーブルPTをサー
チしてマッピングを行う方式の場合、そのためのオーバ
ーヘッドが大きくなりダイレクトメモリアクセス(DM
A)のリアルタイム性が損なわれる問題があった。その
上、マイクロプロセッサが複数あると、どのマイクロプ
ロセッサにダイレクトメモリアクセス完了や異常終了の
割り込みを与えるべきかが問題になる。そのときの割り
込みレベルも重要である。
【0006】本発明の目的は、上述したような問題点に
鑑み、ダイレクトメモリアクセスコントローラのための
ページテーブルが不要で、そのためのメモリ空間を消費
することがなく、ページテーブルのための管理も省略で
き、全ての論理アドレス空間、すなわち全ての物理アド
レス空間に対してリアルタイムにダイレクトメモリアク
セスができ、かつマルチプロセッサシステムのための簡
潔な割り込み処理が行える論理ダイレクトメモリアクセ
ス方式を提供することにある。
鑑み、ダイレクトメモリアクセスコントローラのための
ページテーブルが不要で、そのためのメモリ空間を消費
することがなく、ページテーブルのための管理も省略で
き、全ての論理アドレス空間、すなわち全ての物理アド
レス空間に対してリアルタイムにダイレクトメモリアク
セスができ、かつマルチプロセッサシステムのための簡
潔な割り込み処理が行える論理ダイレクトメモリアクセ
ス方式を提供することにある。
【0007】
【課題を解決するための手段】本発明による論理ダイレ
クトメモリアクセス方式では、ダイレクトメモリアクセ
スコントローラのためのページテーブル及びそれへのサ
ーチを不要とするために、ダイレクトメモリアクセスコ
ントローラに、マイクロプロセッサのプロセッサ内メモ
リ管理機構と互換性がある、すなわち論理アドレス空間
及び物理アドレス空間が等しいコントローラ内メモリ管
理機構を備える。このコントローラ内メモリ管理機構
は、マイクロプロセッサのトランスレーション・ルック
アサイド・バッファ・エントリと同じマップを共有でき
るように、該エントリに対応するトランスレーション・
ルックアサイド・バッファ・エントリを有する。
クトメモリアクセス方式では、ダイレクトメモリアクセ
スコントローラのためのページテーブル及びそれへのサ
ーチを不要とするために、ダイレクトメモリアクセスコ
ントローラに、マイクロプロセッサのプロセッサ内メモ
リ管理機構と互換性がある、すなわち論理アドレス空間
及び物理アドレス空間が等しいコントローラ内メモリ管
理機構を備える。このコントローラ内メモリ管理機構
は、マイクロプロセッサのトランスレーション・ルック
アサイド・バッファ・エントリと同じマップを共有でき
るように、該エントリに対応するトランスレーション・
ルックアサイド・バッファ・エントリを有する。
【0008】マイクロプロセッサが複数ある場合、ダイ
レクトメモリアクセス完了の割り込みを与えるマイクロ
プロセッサを特定できるように、ダイレクトメモリアク
セスコントローラのトランスレーション・ルックアサイ
ド・バッファ・エントリ内に、ダイレクトメモリアクセ
スを起動したマイクロプロセッサの番号を示す部分を有
し、ダイレクトメモリアクセス終了時にそのマイクロプ
ロセッサに対してダイレクトメモリアクセスコントロー
ラから割り込みを与える。好ましくは、その場合の割り
込みレベルも設定できるように、プロセッサ内メモリ管
理機構のトランスレーション・ルックアサイド・バッフ
ァ・エントリ内に、ダイレクトメモリアクセス終了割り
込みのレベルが高レベルか低レベルかを示す部分を有
し、ダイレクトメモリアクセス終了時にその割り込みレ
ベルでマイクロプロセッサに割り込みを与える。
レクトメモリアクセス完了の割り込みを与えるマイクロ
プロセッサを特定できるように、ダイレクトメモリアク
セスコントローラのトランスレーション・ルックアサイ
ド・バッファ・エントリ内に、ダイレクトメモリアクセ
スを起動したマイクロプロセッサの番号を示す部分を有
し、ダイレクトメモリアクセス終了時にそのマイクロプ
ロセッサに対してダイレクトメモリアクセスコントロー
ラから割り込みを与える。好ましくは、その場合の割り
込みレベルも設定できるように、プロセッサ内メモリ管
理機構のトランスレーション・ルックアサイド・バッフ
ァ・エントリ内に、ダイレクトメモリアクセス終了割り
込みのレベルが高レベルか低レベルかを示す部分を有
し、ダイレクトメモリアクセス終了時にその割り込みレ
ベルでマイクロプロセッサに割り込みを与える。
【0009】ダイレクトメモリアクセス中のページを保
護するため、マイクロプロセッサのトランスレーション
・ルックアサイド・バッファ・エントリ内に、ダイレク
トメモリアクセスに使用されているページか否かを示す
部分を有し、使用されているページである場合には該当
ページへのアクセスを禁止する。
護するため、マイクロプロセッサのトランスレーション
・ルックアサイド・バッファ・エントリ内に、ダイレク
トメモリアクセスに使用されているページか否かを示す
部分を有し、使用されているページである場合には該当
ページへのアクセスを禁止する。
【0010】これに加え、各マイクロプロセッサとダイ
レクトメモリアクセスコントローラ間でメモリの排他使
用ができるように、複数のマイクロプロセッサ間でトラ
ンスレーション・ルックアサイド・バッファ・エントリ
の状態のコヒーレンシを維持する手段を有し、この手段
により、ダイレクトメモリアクセスを起動したマイクロ
プロセッサ以外のマイクロプロセッサに対してダイレク
トメモリアクセスエリアへのアクセスを禁止するととも
に、ダイレクトメモリアクセス完了時にその禁止状態を
解除する。
レクトメモリアクセスコントローラ間でメモリの排他使
用ができるように、複数のマイクロプロセッサ間でトラ
ンスレーション・ルックアサイド・バッファ・エントリ
の状態のコヒーレンシを維持する手段を有し、この手段
により、ダイレクトメモリアクセスを起動したマイクロ
プロセッサ以外のマイクロプロセッサに対してダイレク
トメモリアクセスエリアへのアクセスを禁止するととも
に、ダイレクトメモリアクセス完了時にその禁止状態を
解除する。
【0011】
【作用】本発明によれば、マイクロプロセッサの全アド
レスに対してアクセスでき、またページテーブル及びそ
れへのサーチが不要となる。ダイレクトメモリアクセス
を起動したマイクロプロセッサに、ダイレクトメモリア
クセス完了時に設定レベルによる割り込みを与えること
ができる。ダイレクトメモリアクセスの起動から完了ま
では、他のマイクロプロセッサからのダイレクトメモリ
アクセスエリアへのアクセスを禁止し、ダイレクトメモ
リアクセスエリアを保護することができる。
レスに対してアクセスでき、またページテーブル及びそ
れへのサーチが不要となる。ダイレクトメモリアクセス
を起動したマイクロプロセッサに、ダイレクトメモリア
クセス完了時に設定レベルによる割り込みを与えること
ができる。ダイレクトメモリアクセスの起動から完了ま
では、他のマイクロプロセッサからのダイレクトメモリ
アクセスエリアへのアクセスを禁止し、ダイレクトメモ
リアクセスエリアを保護することができる。
【0012】
【実施例】本発明の一実施例について図面を参照して説
明する。
明する。
【0013】図1は本発明を適用した電子計算機システ
ムのブロック図である。このシステムは、2つのマイク
ロプロセッサMPU1,MPU2とメモリMEMと2つ
のダイレクトメモリアクセスコントローラDMAC1,
DMAC2とからなり、これらがシステムバスBUSに
よって接続されている。マイクロプロセッサMPU1,
MPU2は、論理アドレスを物理アドレスにページ単位
で変換するプロセッサ内メモリ管理機構MMU1,MM
U2をそれぞれ有する。メモリMEMは、プロセッサ内
メモリ管理機構MMU1,MMU2が論理アドレスを物
理アドレスにページ単位で変換するために用いるページ
テーブルエントリ(PTE)の列であるユーザプロセス
ページマップUPPMを有するが、図7に示した従来例
のようなページテーブルPTは保有しない。ダイレクト
メモリアクセスコントローラDMAC1,DMAC2
は、ページ単位でダイレクトメモリアクセス(DMA)
できるようにプロセッサ内メモリ管理機構MMU1,M
MU2と論理アドレス空間及び物理アドレス空間が等し
いコントローラ内メモリ管理機構DMMU1,DMMU
2をそれぞれ備えている。ページテーブルエントリ(P
TE)は、指定の論理アドレスからそれに対応する物理
アドレスに変換するための情報を納めたテーブルであ
る。また、システムバスBUS上のアドレスは物理アド
レスである。
ムのブロック図である。このシステムは、2つのマイク
ロプロセッサMPU1,MPU2とメモリMEMと2つ
のダイレクトメモリアクセスコントローラDMAC1,
DMAC2とからなり、これらがシステムバスBUSに
よって接続されている。マイクロプロセッサMPU1,
MPU2は、論理アドレスを物理アドレスにページ単位
で変換するプロセッサ内メモリ管理機構MMU1,MM
U2をそれぞれ有する。メモリMEMは、プロセッサ内
メモリ管理機構MMU1,MMU2が論理アドレスを物
理アドレスにページ単位で変換するために用いるページ
テーブルエントリ(PTE)の列であるユーザプロセス
ページマップUPPMを有するが、図7に示した従来例
のようなページテーブルPTは保有しない。ダイレクト
メモリアクセスコントローラDMAC1,DMAC2
は、ページ単位でダイレクトメモリアクセス(DMA)
できるようにプロセッサ内メモリ管理機構MMU1,M
MU2と論理アドレス空間及び物理アドレス空間が等し
いコントローラ内メモリ管理機構DMMU1,DMMU
2をそれぞれ備えている。ページテーブルエントリ(P
TE)は、指定の論理アドレスからそれに対応する物理
アドレスに変換するための情報を納めたテーブルであ
る。また、システムバスBUS上のアドレスは物理アド
レスである。
【0014】図2は、プロセッサ内メモリ管理機構MM
U1,MMU2のトランスレーション・ルックアサイド
・バッファ・エントリ(TLBE)の構成例、図3は、
コントローラ内メモリ管理機構DMMU1,DMMU2
のトランスレーション・ルックアサイド・バッファ・エ
ントリ(DTLBE)の構成例を示す。また、図4はマ
ッピングされたページテーブルエントリ(PTE)の構
成例を示す。これらの図において、「MASK」は論理
ページサイズを決定するためのページマスク、「VPN
2」は論理アドレスの上位ビット、「S」はスリープビ
ット、「PFN」は物理アドレスの上位ビット、「C」
はキャッシュのアルゴリズム、「D」は書き込み保護の
ためのダーティビット、「V」は有効(バリッド)ビッ
ト、「IL」は割り込みレベル(例えば1で高レベル、
0で低レベル)、「MPU」はマイクロプロセッサの番
号、「SV」はソフトウェア用の有効ビットである。
U1,MMU2のトランスレーション・ルックアサイド
・バッファ・エントリ(TLBE)の構成例、図3は、
コントローラ内メモリ管理機構DMMU1,DMMU2
のトランスレーション・ルックアサイド・バッファ・エ
ントリ(DTLBE)の構成例を示す。また、図4はマ
ッピングされたページテーブルエントリ(PTE)の構
成例を示す。これらの図において、「MASK」は論理
ページサイズを決定するためのページマスク、「VPN
2」は論理アドレスの上位ビット、「S」はスリープビ
ット、「PFN」は物理アドレスの上位ビット、「C」
はキャッシュのアルゴリズム、「D」は書き込み保護の
ためのダーティビット、「V」は有効(バリッド)ビッ
ト、「IL」は割り込みレベル(例えば1で高レベル、
0で低レベル)、「MPU」はマイクロプロセッサの番
号、「SV」はソフトウェア用の有効ビットである。
【0015】次に、これらの図を参照しながら図5及び
図6のフローチャートに従って動作の流れを説明する。
図6のフローチャートに従って動作の流れを説明する。
【0016】図1の中の一つのマイクロプロセッサMP
U1上で実行されているユーザプロセスが、メモリME
MのエリアにダイレクトメモリアクセスコントローラD
MAC1配下のディスクからデータをロードしようとす
る場合を例にする。なお、このシステムの論理アドレス
は64Kbit、物理アドレスは36Kbit、ページ
サイズは4Kbytesとする。
U1上で実行されているユーザプロセスが、メモリME
MのエリアにダイレクトメモリアクセスコントローラD
MAC1配下のディスクからデータをロードしようとす
る場合を例にする。なお、このシステムの論理アドレス
は64Kbit、物理アドレスは36Kbit、ページ
サイズは4Kbytesとする。
【0017】先ず、ユーザプロセスがオペレーティング
システム(OS)に対して論理空間を確保する(図5の
ステップS1)。このときオペレーティングシステム
(OS)は、ユーザプロセスに空いている論理空間を割
当て、その論理空間に空いている物理空間を対応させ、
ユーザプロセスページマップUPPM内に図4に示すよ
うなページテーブルエントリ(PTE)をセット(マッ
ピング)する。この後、マイクロプロセッサMPU1の
プロセッサ内メモリ管理機構MMU1に対して、図2に
示すようなトランスレーション・ルックアサイド・バッ
ファ・エントリ(TLBE)をセットする(ステップS
2)。
システム(OS)に対して論理空間を確保する(図5の
ステップS1)。このときオペレーティングシステム
(OS)は、ユーザプロセスに空いている論理空間を割
当て、その論理空間に空いている物理空間を対応させ、
ユーザプロセスページマップUPPM内に図4に示すよ
うなページテーブルエントリ(PTE)をセット(マッ
ピング)する。この後、マイクロプロセッサMPU1の
プロセッサ内メモリ管理機構MMU1に対して、図2に
示すようなトランスレーション・ルックアサイド・バッ
ファ・エントリ(TLBE)をセットする(ステップS
2)。
【0018】次に、ユーザプロセスが、確保したメモリ
空間にディスク上のデータを読み込むことをオペレーテ
ィングシステム(OS)に要求すると(ステップS
3)、オペレーティングシステム(OS)はダイレクト
メモリアクセス(DMA)を起動する。このとき、オペ
レーティングシステム(OS)は、ダイレクトメモリア
クセスコントローラDMAC1に対してダイレクトメモ
リアクセスアドレスを論理アドレスで与え、同時に転送
長をバイト単位で与え、更にダイレクトメモリアクセス
コントローラDMAC1のコントローラ内メモリ管理機
構DMMU1に対し、図3に示すようなトランスレーシ
ョン・ルックアサイド・バッファ・エントリ(DTLB
E)をセットする(ステップS4)。このとき、そのエ
ントリ(DTLBE)内のマイクロプロセッサ番号欄
(MPU)に、ダイレクトメモリアクセス起動に係るマ
イクロプロセッサの番号(本例の場合、MPU1の番
号)を、また割り込みレベル欄に割り込みレベルの高低
をそれぞれ設定する。
空間にディスク上のデータを読み込むことをオペレーテ
ィングシステム(OS)に要求すると(ステップS
3)、オペレーティングシステム(OS)はダイレクト
メモリアクセス(DMA)を起動する。このとき、オペ
レーティングシステム(OS)は、ダイレクトメモリア
クセスコントローラDMAC1に対してダイレクトメモ
リアクセスアドレスを論理アドレスで与え、同時に転送
長をバイト単位で与え、更にダイレクトメモリアクセス
コントローラDMAC1のコントローラ内メモリ管理機
構DMMU1に対し、図3に示すようなトランスレーシ
ョン・ルックアサイド・バッファ・エントリ(DTLB
E)をセットする(ステップS4)。このとき、そのエ
ントリ(DTLBE)内のマイクロプロセッサ番号欄
(MPU)に、ダイレクトメモリアクセス起動に係るマ
イクロプロセッサの番号(本例の場合、MPU1の番
号)を、また割り込みレベル欄に割り込みレベルの高低
をそれぞれ設定する。
【0019】次いで、ユーザプロセスは、オペレーティ
ングシステム(OS)によってディスク待ち(disk
wait)状態にされる。その後、マイクロプロセッ
サMPU1の該当トランスレーション・ルックアサイド
・バッファ・エントリ(TLBE)、及び該当ページテ
ーブルエントリ(PTE)にスリープビット(S)をセ
ットする一方、ダーティビット(D)をリセットする
(ステップS5)。
ングシステム(OS)によってディスク待ち(disk
wait)状態にされる。その後、マイクロプロセッ
サMPU1の該当トランスレーション・ルックアサイド
・バッファ・エントリ(TLBE)、及び該当ページテ
ーブルエントリ(PTE)にスリープビット(S)をセ
ットする一方、ダーティビット(D)をリセットする
(ステップS5)。
【0020】このように、一つのマイクロプロセッサM
PU1のトランスレーション・ルックアサイド・バッフ
ァ・エントリ(TLBE)の状態が遷移したら、このマ
イクロプロセッサMPU1と他のマイクロプロセッサM
PU2との間で、対応するトランスレーション・ルック
アサイド・バッファ・エントリ(TLBE)の状態のコ
ヒーレンシを維持するため、他のマイクロプロセッサM
PU2のトランスレーション・ルックアサイド・バッフ
ァ・エントリ(TLBE)の状態も同様に遷移させる
(ステップS6)。すなわち、マイクロプロセッサMP
U1のトランスレーション・ルックアサイド・バッファ
・エントリ(TLBE)にスリープビット(S)がセッ
トされたら、他のマイクロプロセッサMPU2の該当ト
ランスレーション・ルックアサイド・バッファ・エント
リ(TLBE)にもスリープビット(S)をセットする
ように、マイクロプロセッサMPU1がシステムバスB
US上にリクエストを送る。他のマイクロプロセッサM
PU2が、このリクエストを受信すると、もし自己に該
当トランスレーション・ルックアサイド・バッファ・エ
ントリ(TLBE)があれば、その中にスリープビット
(S)をセットする一方、ダーティビット(D)をリセ
ットする。これにより、ダイレクトメモリアクセス(D
MA)を起動したユーザプロセス以外のプロセスが、メ
モリMEM上のダイレクトメモリアクセスエリアにアク
セスするのを禁止する。
PU1のトランスレーション・ルックアサイド・バッフ
ァ・エントリ(TLBE)の状態が遷移したら、このマ
イクロプロセッサMPU1と他のマイクロプロセッサM
PU2との間で、対応するトランスレーション・ルック
アサイド・バッファ・エントリ(TLBE)の状態のコ
ヒーレンシを維持するため、他のマイクロプロセッサM
PU2のトランスレーション・ルックアサイド・バッフ
ァ・エントリ(TLBE)の状態も同様に遷移させる
(ステップS6)。すなわち、マイクロプロセッサMP
U1のトランスレーション・ルックアサイド・バッファ
・エントリ(TLBE)にスリープビット(S)がセッ
トされたら、他のマイクロプロセッサMPU2の該当ト
ランスレーション・ルックアサイド・バッファ・エント
リ(TLBE)にもスリープビット(S)をセットする
ように、マイクロプロセッサMPU1がシステムバスB
US上にリクエストを送る。他のマイクロプロセッサM
PU2が、このリクエストを受信すると、もし自己に該
当トランスレーション・ルックアサイド・バッファ・エ
ントリ(TLBE)があれば、その中にスリープビット
(S)をセットする一方、ダーティビット(D)をリセ
ットする。これにより、ダイレクトメモリアクセス(D
MA)を起動したユーザプロセス以外のプロセスが、メ
モリMEM上のダイレクトメモリアクセスエリアにアク
セスするのを禁止する。
【0021】この後、オペレーティングシステム(O
S)が、ダイレクトメモリアクセスコントローラDMA
C1に対してダイレクトメモリアクセス(DMA)の開
始を指示する(ステップS7)。
S)が、ダイレクトメモリアクセスコントローラDMA
C1に対してダイレクトメモリアクセス(DMA)の開
始を指示する(ステップS7)。
【0022】ダイレクトメモリアクセスコントローラD
MAC1は、1ページ分のダイレクトメモリアクセス
(DMA)を終了する度に、そのトランスレーション・
ルックアサイド・バッファ・エントリ(DTLBE)の
有効ビット(V)をリセットし、該エントリ(DTLB
E)を無効にする(ステップS8)。また、ダイレクト
メモリアクセスコントローラDMAC1は、次のトラン
スレーション・ルックアサイド・バッファ・エントリ
(TLBE)のスリープビットリセットのリクエストを
システムバスBUS上に送る(ステップS9)。これを
マイクロプロセッサMPU1,MPU2が受信すると、
これらマイクロプロセッサMPU1,MPU2は、該当
トランスレーション・ルックアサイド・バッファ・エン
トリ(TLBE)のスリープビット(S)をリセットす
る一方、ダーティビット(D)をセットする(ステップ
S10)。これにより、そのトランスレーション・ルッ
クアサイド・バッファ・エントリ(TLBE)は書き込
み可能となる。また、ダイレクトメモリアクセス(DM
A)を起動したマイクロプロセッサMPU1は、その該
当ページテーブルエントリ(PTE)のスリープビット
(S)をリセットする一方、ダーティビット(D)をセ
ットする。
MAC1は、1ページ分のダイレクトメモリアクセス
(DMA)を終了する度に、そのトランスレーション・
ルックアサイド・バッファ・エントリ(DTLBE)の
有効ビット(V)をリセットし、該エントリ(DTLB
E)を無効にする(ステップS8)。また、ダイレクト
メモリアクセスコントローラDMAC1は、次のトラン
スレーション・ルックアサイド・バッファ・エントリ
(TLBE)のスリープビットリセットのリクエストを
システムバスBUS上に送る(ステップS9)。これを
マイクロプロセッサMPU1,MPU2が受信すると、
これらマイクロプロセッサMPU1,MPU2は、該当
トランスレーション・ルックアサイド・バッファ・エン
トリ(TLBE)のスリープビット(S)をリセットす
る一方、ダーティビット(D)をセットする(ステップ
S10)。これにより、そのトランスレーション・ルッ
クアサイド・バッファ・エントリ(TLBE)は書き込
み可能となる。また、ダイレクトメモリアクセス(DM
A)を起動したマイクロプロセッサMPU1は、その該
当ページテーブルエントリ(PTE)のスリープビット
(S)をリセットする一方、ダーティビット(D)をセ
ットする。
【0023】ダイレクトメモリアクセスコントローラD
MAC1が全てのダイレクトメモリアクセス(DMA)
を完了すると、そのトランスレーション・ルックアサイ
ド・バッファ・エントリ(DTLBE)に設定されてい
るマイクロプロセッサ番号(MPU)に基づいて、ダイ
レクトメモリアクセス(DMA)を起動したマイクロプ
ロセッサMPU1にダイレクトメモリアクセス(DM
A)完了の割り込みを与える(ステップS11)。その
割り込みは、トランスレーション・ルックアサイド・バ
ッファ・エントリ(DTLBE)に設定されている割り
込みレベルに基づいて行う。
MAC1が全てのダイレクトメモリアクセス(DMA)
を完了すると、そのトランスレーション・ルックアサイ
ド・バッファ・エントリ(DTLBE)に設定されてい
るマイクロプロセッサ番号(MPU)に基づいて、ダイ
レクトメモリアクセス(DMA)を起動したマイクロプ
ロセッサMPU1にダイレクトメモリアクセス(DM
A)完了の割り込みを与える(ステップS11)。その
割り込みは、トランスレーション・ルックアサイド・バ
ッファ・エントリ(DTLBE)に設定されている割り
込みレベルに基づいて行う。
【0024】この後、全てのマイクロプロセッサMPU
1,MPU2に対して、そのトランスレーション・ルッ
クアサイド・バッファ・エントリ(TLBE)及びペー
ジテーブルエントリ(PTE)を再び使用可能とし、全
てのマイクロプロセッサMPU1,MPU2から、その
トランスレーション・ルックアサイド・バッファ・エン
トリ(TLBE)が管理するメモリ空間、すなわちダイ
レクトメモリアクセスエリアへのアクセスができるよう
にする(ステップS12)。オペレーティングシステム
(OS)は、ダイレクトメモリアクセス(DMA)を要
求したユーザプロセスを実行(run又はready)
状態に移行させる。また、このとき後述のようなスリー
プ(休止)状態にされていたプロセスがあれば、これも
実行状態に移行させる。
1,MPU2に対して、そのトランスレーション・ルッ
クアサイド・バッファ・エントリ(TLBE)及びペー
ジテーブルエントリ(PTE)を再び使用可能とし、全
てのマイクロプロセッサMPU1,MPU2から、その
トランスレーション・ルックアサイド・バッファ・エン
トリ(TLBE)が管理するメモリ空間、すなわちダイ
レクトメモリアクセスエリアへのアクセスができるよう
にする(ステップS12)。オペレーティングシステム
(OS)は、ダイレクトメモリアクセス(DMA)を要
求したユーザプロセスを実行(run又はready)
状態に移行させる。また、このとき後述のようなスリー
プ(休止)状態にされていたプロセスがあれば、これも
実行状態に移行させる。
【0025】ところで、あるユーザプロセスがダイレク
トメモリアクセス(DMA)を行っているとき、それ以
外のプロセスがダイレクトメモリアクセスエリアにアク
セスしようとした場合は(図6のステップS13)、上
記のようにダーティビット(D)がリセットされている
ので、当然ダイレクトメモリアクセスエリアへの書き込
みはできない。この場合には、それ以前に上記のように
スリープビットがセットされているので、トランスレー
ション・ルックアサイド・バッファ・エントリの例外で
あるとし(ステップS14)、オペレーティングシステ
ム(OS)がそのプロセスをスリープ(休止)状態にす
る(ステップS15)。
トメモリアクセス(DMA)を行っているとき、それ以
外のプロセスがダイレクトメモリアクセスエリアにアク
セスしようとした場合は(図6のステップS13)、上
記のようにダーティビット(D)がリセットされている
ので、当然ダイレクトメモリアクセスエリアへの書き込
みはできない。この場合には、それ以前に上記のように
スリープビットがセットされているので、トランスレー
ション・ルックアサイド・バッファ・エントリの例外で
あるとし(ステップS14)、オペレーティングシステ
ム(OS)がそのプロセスをスリープ(休止)状態にす
る(ステップS15)。
【0026】以上により、ユーザプロセスは、ディスク
からメモリMEM内にロードしたデータをプログラムど
おり操作することができる。この間、他のプロセスは当
該ダイレクトメモリアクセスエリアを破壊することはな
く、また動作を阻害することもない。
からメモリMEM内にロードしたデータをプログラムど
おり操作することができる。この間、他のプロセスは当
該ダイレクトメモリアクセスエリアを破壊することはな
く、また動作を阻害することもない。
【0027】
【発明の効果】以上説明したように本発明によれば次の
ような効果がある。 マイクロプロセッサの扱える全ての論理空間に対し
てダイレクトメモリアクセスを行うことができる。 ダイレクトメモリアクセスコントローラが使用する
ページテーブルのためのメモリ空間が不要になる。 ダイレクトメモリアクセスコントローラが使用する
ページテーブルのためのメモリエリアが不要になるの
で、メモリの使用効率が上がる。 ダイレクトメモリアクセスコントローラのコントロ
ーラ内メモリ管理機構が論理アドレスを物理アドレスに
変換する度にメモリにアクセスすることがなく、高速に
ダイレクトメモリアクセスすることができる。 ダイレクトメモリアクセス中のページ以外のメモリ
空間を他のプロセスがアクセスすることができると同時
に、ダイレクトメモリアクセス中のページは保護でき
る。しかも、そのオーバーヘッドは極めて小さい。 的確な割り込み処理によって、マルチプロセッサシ
ステムにおいても、各プロセッサの性能を低下させるこ
とがない。
ような効果がある。 マイクロプロセッサの扱える全ての論理空間に対し
てダイレクトメモリアクセスを行うことができる。 ダイレクトメモリアクセスコントローラが使用する
ページテーブルのためのメモリ空間が不要になる。 ダイレクトメモリアクセスコントローラが使用する
ページテーブルのためのメモリエリアが不要になるの
で、メモリの使用効率が上がる。 ダイレクトメモリアクセスコントローラのコントロ
ーラ内メモリ管理機構が論理アドレスを物理アドレスに
変換する度にメモリにアクセスすることがなく、高速に
ダイレクトメモリアクセスすることができる。 ダイレクトメモリアクセス中のページ以外のメモリ
空間を他のプロセスがアクセスすることができると同時
に、ダイレクトメモリアクセス中のページは保護でき
る。しかも、そのオーバーヘッドは極めて小さい。 的確な割り込み処理によって、マルチプロセッサシ
ステムにおいても、各プロセッサの性能を低下させるこ
とがない。
【図1】本発明を適用した電子計算機システムの構成例
を示すブロック図である。
を示すブロック図である。
【図2】図1中のプロセッサ内メモリ管理機構のトラン
スレーション・ルックアサイド・バッファ・エントリ
(TLBE)の構成例を示す図である。
スレーション・ルックアサイド・バッファ・エントリ
(TLBE)の構成例を示す図である。
【図3】コントローラ内メモリ管理機構のトランスレー
ション・ルックアサイド・バッファ・エントリ(DTL
BE)の構成例を示す図である。
ション・ルックアサイド・バッファ・エントリ(DTL
BE)の構成例を示す図である。
【図4】マッピングされたページテーブルエントリ(P
TE)の構成例を示す図である。
TE)の構成例を示す図である。
【図5】本発明の論理ダイレクトメモリアクセス方式の
動作例を示すフローチャートである。
動作例を示すフローチャートである。
【図6】図5より分岐するフローチャートである。
【図7】従来例のブロック図である。
【図8】図7の従来例における論理アドレスから物理ア
ドレスへの変換の仕組みを説明する説明図である。
ドレスへの変換の仕組みを説明する説明図である。
MPU1,MPU2 マイクロプロセッサ MEM メモリ DMAC1,DMAC1 ダイレクトメモリアクセス
コントローラ MMU1,MMU2 プロセッサ内メモリ管理機構 DMMU1,DMMU2 コントローラ内メモリ管理
機構 UPPM ユーザプロセスページマップ BUS システムバス
コントローラ MMU1,MMU2 プロセッサ内メモリ管理機構 DMMU1,DMMU2 コントローラ内メモリ管理
機構 UPPM ユーザプロセスページマップ BUS システムバス
Claims (4)
- 【請求項1】 論理アドレスを物理アドレスに変換する
ためのページテーブルエントリの配列であるユーザプロ
セスページマップを有するメモリと、論理アドレスと物
理アドレスのマップを示したトランスレーション・ルッ
クアサイド・バッファ・エントリ、及び前記ユーザプロ
セスページマップを参照して論理アドレスを物理アドレ
スにページ単位で変換するプロセッサ内メモリ管理機構
を含む少なくとも1つのマイクロプロセッサと、少なく
とも1つのダイレクトメモリアクセスコントローラとを
有する電子計算機システムにおいて、前記ダイレクトメ
モリアクセスコントローラが、ページ単位でダイレクト
メモリアクセスできるように前記プロセッサ内メモリ管
理機構と論理アドレス空間及び物理アドレス空間が等し
いコントローラ内メモリ管理機構を備え、このコントロ
ーラ内メモリ管理機構は、前記マイクロプロセッサのト
ランスレーション・ルックアサイド・バッファ・エント
リと同じマップを共有できるように、該エントリに対応
するトランスレーション・ルックアサイド・バッファ・
エントリを有するとともに、ダイレクトメモリアクセス
を起動したマイクロプロセッサの番号を示す部分を有
し、ダイレクトメモリアクセス終了時にそのマイクロプ
ロセッサに対してダイレクトメモリアクセスコントロー
ラから割り込みを与えることを特徴とする論理ダイレク
トメモリアクセス方式。 - 【請求項2】 プロセッサ内メモリ管理機構のトランス
レーション・ルックアサイド・バッファ・エントリ内
に、ダイレクトメモリアクセス終了割り込みのレベルが
高レベルか低レベルかを示す部分を有し、ダイレクトメ
モリアクセス終了時にその割り込みレベルでマイクロプ
ロセッサに割り込みを与えることを特徴とする請求項2
に記載の論理ダイレクトメモリアクセス方式。 - 【請求項3】 マイクロプロセッサのトランスレーショ
ン・ルックアサイド・バッファ・エントリ内に、ダイレ
クトメモリアクセスに使用されているページか否かを示
す部分を有し、使用されているページである場合には該
当ページへのアクセスを禁止することを特徴とする請求
項1又は2に記載の論理ダイレクトメモリアクセス方
式。 - 【請求項4】 複数のマイクロプロセッサ間でトランス
レーション・ルックアサイド・バッファ・エントリの状
態のコヒーレンシを維持する手段を有し、この手段によ
り、ダイレクトメモリアクセスを起動したマイクロプロ
セッサ以外のマイクロプロセッサに対してダイレクトメ
モリアクセスエリアへのアクセスを禁止するとともに、
ダイレクトメモリアクセス完了時にその禁止状態を解除
することを特徴とする請求項3に記載の論理ダイレクト
メモリアクセス方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7091947A JP2823038B2 (ja) | 1995-03-27 | 1995-03-27 | 論理ダイレクトメモリアクセス方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7091947A JP2823038B2 (ja) | 1995-03-27 | 1995-03-27 | 論理ダイレクトメモリアクセス方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08263426A JPH08263426A (ja) | 1996-10-11 |
JP2823038B2 true JP2823038B2 (ja) | 1998-11-11 |
Family
ID=14040788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7091947A Expired - Lifetime JP2823038B2 (ja) | 1995-03-27 | 1995-03-27 | 論理ダイレクトメモリアクセス方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2823038B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7590817B2 (en) * | 2006-10-17 | 2009-09-15 | International Business Machines Corporation | Communicating with an I/O device using a queue data structure and pre-translated addresses |
US8769168B2 (en) | 2006-10-17 | 2014-07-01 | International Business Machines Corporation | Method for communicating with a network adapter using a queue data structure and cached address translations |
US7506084B2 (en) * | 2006-10-17 | 2009-03-17 | International Business Machines Corporation | Method for communicating with an I/O adapter using cached address translations |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04308953A (ja) * | 1991-04-05 | 1992-10-30 | Kyocera Corp | 仮想アドレス計算機装置 |
-
1995
- 1995-03-27 JP JP7091947A patent/JP2823038B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH08263426A (ja) | 1996-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8451281B2 (en) | Shared virtual memory between a host and discrete graphics device in a computing system | |
US5729714A (en) | Shared memory access method and apparatus with address translation | |
JPH0654479B2 (ja) | 仮想記憶方式 | |
US20040117587A1 (en) | Hardware managed virtual-to-physical address translation mechanism | |
JPH04353947A (ja) | メモリページ特性タグ付けシステム | |
US20040117588A1 (en) | Access request for a data processing system having no system memory | |
JPS61141055A (ja) | 情報処理装置のアドレス変換方式 | |
US5502828A (en) | Reducing memory access in a multi-cache multiprocessing environment with each cache mapped into different areas of main memory to avoid contention | |
US5161219A (en) | Computer system with input/output cache | |
US20040117591A1 (en) | Data processing system having no system memory | |
US20080065855A1 (en) | DMAC Address Translation Miss Handling Mechanism | |
US20040117590A1 (en) | Aliasing support for a data processing system having no system memory | |
JP2823038B2 (ja) | 論理ダイレクトメモリアクセス方式 | |
US5727179A (en) | Memory access method using intermediate addresses | |
JP2001051958A (ja) | 多重プロセッサ多成分アーキテクチャのための統一メモリ管理システム | |
JPS6184755A (ja) | デ−タ処理システム | |
JP2001134486A (ja) | マイクロプロセッサおよび記憶装置 | |
JP3004278B2 (ja) | マルチプロセッサシステム | |
US20040064655A1 (en) | Memory access statistics tool | |
JPS6237752A (ja) | 別々の命令及びデ−タインタ−フエ−ス及びキヤツシユを持つたマイクロプロセサを有するマルチプルバスシステム | |
Pose | Capability based, tightly coupled multiprocessor hardware to support a persistent global virtual memory | |
JP3875358B2 (ja) | 記憶装置、記憶方法および記録媒体 | |
US20040117583A1 (en) | Apparatus for influencing process scheduling in a data processing system capable of utilizing a virtual memory processing scheme | |
JPS6237754A (ja) | 仮想拡張記憶方式 | |
JPH035625B2 (ja) |