JPH1063607A - Dmaコントローラ - Google Patents

Dmaコントローラ

Info

Publication number
JPH1063607A
JPH1063607A JP23247696A JP23247696A JPH1063607A JP H1063607 A JPH1063607 A JP H1063607A JP 23247696 A JP23247696 A JP 23247696A JP 23247696 A JP23247696 A JP 23247696A JP H1063607 A JPH1063607 A JP H1063607A
Authority
JP
Japan
Prior art keywords
transfer
channel
data
buffer memory
area
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
Application number
JP23247696A
Other languages
English (en)
Inventor
Takashi Matsumoto
隆 松本
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP23247696A priority Critical patent/JPH1063607A/ja
Publication of JPH1063607A publication Critical patent/JPH1063607A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Bus Control (AREA)

Abstract

(57)【要約】 【課題】 転送元から転送先へ複数のチャネルを介して
データをDMA転送する際に、あるチャネルの転送速度
が速い場合に、転送元と転送先との間のバッファメモリ
の割当て領域を直ちに転送すべきデータで満たしてしま
い、その結果、転送制御のオーバヘッド時間により、実
質的な転送速度が著しく低下するという事態を回避す
る。 【解決手段】 DMA監視部4が、各チャネル毎に、転
送元からバッファメモリ3までの転送速度と、バッファ
メモリ3から転送先までの転送速度のうち、遅い方の転
送速度を選択し、その選択された転送速度に応じて、各
チャネルにバッファメモリ3を割り当てるようにする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータ・シ
ステムにおいて、中央処理部を介さずにデータを転送す
るダイレクト・メモリ・アクセス(Direct Memory Acce
ss)(以下、「DMA」という。)のコントローラに関
し、特に、データを転送する際に用いるバッファメモリ
における領域の割り当てに関する。
【0002】
【従来の技術】従来から、コンピュータ・システムにお
いては、中央処理部(Central Procesing Unit)に負荷
を掛けることなく、多量のデータを効率良く転送するべ
く、DMAが広く用いられている。そして、DMAを実
現する回路として、DMAコントローラが使われてい
る。図6は、従来のDMAコントローラのブロック図で
ある。このDMAコントローラは、DMA制御部1、D
MA制御部2、バッファメモリ3から構成されている。
DMA制御部1は、システムバス10に接続されてお
り、また、DMA制御部2は、I/Oバス20に接続さ
れている。このように構成されるDMAコントローラ
は、記憶部100に格納されているデータを、システム
バス10、バッファメモリ3、I/Oバス20を経由し
て入出力装置200へ転送したり、また反対に、入出力
装置200に格納されているデータを、I/Oバス2
0、バッファメモリ3、システムバス10を経由して、
記憶部100へ転送したりする。このような転送は、転
送元アドレス、データ量、転送先アドレス等の情報に基
づき、DMA制御部1、2によって実行される。
【0003】図7は、複数のチャネルを用いてDMAを
並行して実行する、従来のDMAコントローラのブロッ
ク図である。このDMAコントローラは、上記のDMA
コントローラの構成と概ね同じである。相違点は、DM
A制御部1、2が、それぞれ、複数のDMA制御部1−
1〜n(nは、任意の正の整数)、DMA制御部2−1
〜nから構成されており、また、バッファメモリ3に
は、各チャネル毎に、等しい大きさの、かつ、固定され
た領域が確保されていることである。このDMAコント
ローラは、チャネル1を使って、記憶部100の記憶箇
所100aに格納されているデータを入出力装置200
aへ転送したり、チャネル2を使って、入出力装置20
0bから入力されたデータを記憶部100の記憶箇所1
00bへ転送したりすることを擬似的に並列して実行す
る。なぜならば、ある時刻にシステムバス10を専有で
きるチャネルの数は1つであり、同様にして、ある時刻
にI/Oバス20を専有できるチャネルの数も1つであ
るために、各チャネルは、全く同時に動作することはで
きないためである。従って、バッファメモリ3は、同一
バス側において、同時に複数のチャネルによってアクセ
スされることはない。
【0004】
【発明が解決しようとする課題】しかしながら、複数の
チャネルを用いてDMAを実行する場合には、一般に、
各チャネルの転送速度(単位時間当たりに転送されるデ
ータ量)は異なるために、割り当てられた領域の使用効
率にバラツキが生じることになる。例えば、転送速度が
速いチャネルでは、割り当てられた領域が直ちに転送デ
ータで満たされてしまうために、頻繁に発生するチャネ
ルの切換え制御等に要するオーバヘッド時間による遅延
が大きな問題となっていた。
【0005】
【課題を解決するための手段】本発明は、以上の問題点
を解決するために、次の構成を採用する。 〈構成1〉転送されるべきデータを一時的に蓄積するバ
ッファメモリと、転送元からバッファメモリへデータを
転送する第一のダイレクトメモリアクセス制御部と、バ
ッファメモリから転送先へデータを転送する第二のダイ
レクトメモリアクセス制御部と、バッファメモリを分割
し、その分割された領域を各チャネルに割り当てるダイ
レクトメモリアクセス監視部とからなり、転送元からバ
ッファメモリを介して転送先までの間に、第一のダイレ
クトメモリアクセス制御部と第二のダイレクトメモリア
クセス制御部とから構成されるチャネルを複数形成し、
ダイレクトメモリアクセス監視部が、各チャネル毎に、
転送元からバッファメモリまでの第一のデータ転送速度
と、バッファメモリから転送先までの第二のデータ転送
速度とのうち、遅い方のデータ転送速度を選択し、その
選択されたデータ転送速度に応じて領域を割り当てるこ
とを特徴とするDMAコントローラ。
【0006】〈構成2〉構成1において、あるチャネル
が、そのチャネルに割り当てられた領域に相当する量の
データの転送を完了する毎に、ダイレクトメモリアクセ
ス監視部が、改めてバッファメモリを割り当てることを
特徴とするDMAコントローラ。
【0007】〈構成3〉構成2において、ダイレクトメ
モリアクセス監視部が、改めてバッファメモリを割り当
てる際に、前回のバッファメモリ割当て時に未使用であ
ったチャネルが、引き続き未使用状態である場合には、
その未使用状態のチャネルに割り当てる領域を少なくす
ることを特徴とするDMAコントローラ。
【0008】〈構成4〉構成2において、ダイレクトメ
モリアクセス監視部が、改めてバッファメモリを割り当
てる場合に、第一のチャネルに既に割り当てられている
領域の一部を第二のチャネルに割り当てるとき、第一の
チャネルがその領域を使用しているときには、次回に改
めてバッファメモリを割り当てる時までそのままの状態
を維持することを特徴とするDMAコントローラ。
【0009】〈構成5〉構成1において、各チャネルに
対し割り当てられたバッファメモリにおける領域が、複
数の領域部分から構成されており、複数の領域部分のう
ち一の領域部分から転送先へあるデータを転送すること
と、転送元から複数の領域部分のうち一の領域部分以外
の他の領域部分へ他のデータを転送することを特徴とす
るDMAコントローラ。
【0010】〈構成6〉転送元から転送先へ複数のチャ
ネルを介して転送されるべきデータを一時的に蓄積する
蓄積手段と、各チャネル毎に、転送元から転送先までの
間におけるデータの転送速度を検出する検出手段と、各
チャネルに対し、蓄積手段の使用を許可する制御手段と
からなり、制御手段が、検出されたデータの転送速度が
より速いチャネルに対し、蓄積手段をより多く使用する
ことを許可することを特徴とするDMAコントローラ。
【0011】〈構成7〉データを複数のチャネルを介し
て入出力する転送元と転送先との間でデータを一時的に
蓄積する蓄積手段と、各チャネル毎に、転送元から蓄積
手段へデータを転送する間におけるデータ転送速度と、
蓄積手段から転送先までデータを転送する間におけるデ
ータ転送速度とのうち遅い方のデータ転送速度を、その
チャネルのデータ転送速度として選択する選択手段と、
各チャネルに対し、そのチャネルのデータ転送速度に基
づき蓄積手段の使用量を決定する制御手段とからなり、
制御手段が、選択されたデータ転送速度がより速いチャ
ネルに対し、蓄積手段をより多く使用することを許可す
ることを特徴とするDMAコントローラ。
【0012】
【発明の実施の形態】本発明のDMAコントローラにつ
いて、実施の形態に沿って説明する。実施の形態として
は、具体例1と具体例2とを挙げる。具体例1の主な特
徴点は、DMA監視部がデータの転送速度を監視するこ
とであり、一方、具体例2の主な特徴点は、バッファメ
モリ内の各領域が複数の領域部分から構成されることで
ある。
【0013】〈具体例1の構成〉図1は、本発明のDM
Aコントローラの具体例のブロック図である。このDM
Aコントローラは、複数のDMA制御部1−1〜n、同
数のDMA制御部2−1〜n、バッファメモリ3、DM
A監視部4から構成されている。DMA制御部1−1〜
nは、システムバス10を介して他のモジュール、例え
ば、記憶部100、中央処理部110等に接続されてい
る。同様にして、DMA制御部2−1〜nは、I/Oバ
ス20を介して更に他のモジュール、例えば、入出力装
置200等に接続されている。
【0014】このように構成されるDMAコントローラ
において、DMA制御部1−1〜nは、システムバス1
0側のモジュールとバッファメモリ3との間でのDMA
転送を制御し、一方、DMA制御部2−1〜nは、I/
Oバス20側のモジュールとバッファメモリ3との間で
のDMA転送を制御する。各チャネルでのDMA転送
は、他のチャネルでのDMA転送に影響されることな
く、独自に実行される。DMA監視部4は、システムバ
ス10に接続されている中央処理部110等からのDM
A転送命令に従って、DMA制御部1−1〜n、DMA
制御部2−1〜nに対し、転送元アドレス、転送先アド
レス、転送すべきデータの量、バッファメモリ3におけ
る使用可能な領域等を指示する。
【0015】〈動作〉次に、DMAコントローラの動作
を説明する。図2は、DMAコントローラの動作フロー
チャートである。以下、この動作フローチャートに沿っ
て説明する。なお、システムバス10に接続されている
記憶部100に格納されているデータを、I/Oバス2
0に接続されている入出力装置200へ転送する場合を
想定する。
【0016】ステップS10: 中央処理部110は、
DMA監視部4に対し、DMA転送を命令する。このD
MA転送命令には、転送元の開始アドレス、転送先の開
始アドレス、転送すべきデータの量等の情報が含まれ
る。 ステップS20: DMA転送命令を受けると、DMA
監視部4は、DMA制御部1−1〜nのうちの一つであ
るDMA制御部1−M(1≦M≦n)に対し、上述した
情報のうち、転送先の開始アドレスと転送すべきデータ
の量とを通知する。また、バッファメモリ3での割り当
て領域q1〜nの開始アドレスとその大きさも通知す
る。この領域q1〜nの大きさは、次の式(1)によっ
て決定される。 q1/min(Vi1,Vo1)=q2/min(Vi2,Vo2)=…=qn/min(Vin,Von) 式(1) この式(1)において、関数min(a、b)は、a、
bのうち、小さい方の数を選択することを意味する。こ
こで、転送速度Vix(1≦x≦n)は、転送元からバ
ッファメモリ3までの間における、単位時間当たりに転
送するデータ量を表し、また、転送速度Voxは、バッ
ファメモリ3から転送先までの間における、単位時間当
たりに転送するデータ量を表す。従って、min(V
a、Vb)は、Va、Vbのうち、遅いデータ転送速度
を表すことになる。なお、各領域q1〜nを全て合算す
ると、バッファメモリ3の総容量と等しくなる。
【0017】各チャネル毎の領域q1〜nは、DMA転
送を開始する際に、式(1)に基づいて割り当てられ
る。但し、その割り当たられた領域は、決して固定され
ることなく、DMA転送中においても見直され変更され
る。従って、DMA転送を開始する際に割り当たられた
領域に比べて、DMA転送中に割り当てられた領域が拡
大する場合もあり、反対に、DMA転送の開始時に割り
当たられた領域に比べて、DMA転送中に割り当てられ
た領域が縮小する場合もある。このように、データの転
送を完了する毎に割り当て領域を見直すことにより、常
にその時々のデータ転送速度に適した割当てを即時的に
実現することが可能となる。なお、後者のように、領域
を縮小する場合には、その領域が使用中であるときに
は、いきなり領域を縮小せずに、使用されない状態にな
ったことを確認した後に、その領域を縮小する。このよ
うにして、その縮小された分だけ、他の領域が拡大する
ことになる。このように、割当てを変更するべき領域
が、使用中である場合に、その領域が未使用状態になる
まで割当ての変更を待つことにより、使用中の領域に格
納されているデータを確実に転送することを保証するこ
とができる。
【0018】また、DMA転送が実行されていないチャ
ネルについても、それらのチャネルをいつでも使用でき
るようにするべく、それらの転送速度を任意に設定し、
その転送速度に対応する大きさの領域を割り当てる。例
えば、全てのチャネルが使用されていない状態である場
合であっても、全てのチャネルが同一の転送速度でDM
A転送していると仮定して、同一の領域を割り当てる。
また、例えば、ある一つのチャネルが第一の転送速度で
DMA転送をしており、他のある一つのチャネルが第二
の転送速度でDMA転送をしている場合には、残りのチ
ャネルには、第一の転送速度と第二の転送速度のうち遅
い方の転送速度よりも遅い転送速度を仮定して、全ての
チャネルに対し、式(1)から算出される領域をそれぞ
れ割り当てるようにする。
【0019】ステップS30: DMA制御部1−M
は、その通知された情報に基づき、記憶部100上の所
定の箇所に記憶されているデータを、システムバス10
を介して、バッファメモリ3での割り当てられた領域q
MへDMA転送する。 ステップS40: DMA転送が終了すると、DMA監
視部4は、DMA制御部1−Mに対応するDMA制御部
2−Mに対し、DMA制御部1−Mの場合と同様にし
て、上述した情報を通知する。 ステップS50: DMA制御部2−Mは、バッファメ
モリ3での割り当てられた領域qMに格納されているデ
ータを、入出力装置200へDMA転送する。
【0020】〈動作の詳細1〉次に、DMAコントロー
ラの動作をより詳しく説明する。図3は、DMAコント
ローラの動作フローチャート(その2)である。以下、
この動作フローチャートに沿って説明する。なお、チャ
ネル数nを4、バッファメモリ3のサイズを64kB
(kilo byte)、バッファメモリ3の最小割当
てサイズを4Bとする。また、使用されていないチャネ
ルの転送速度を、使用されているチャネルの転送速度の
半分に設定することとする。
【0021】上記の条件の下で、当初、4つのチャネル
全てが、未使用状態であり、ある時刻に、128kBの
データをDMA転送する命令がなされたと仮定する。ま
た、チャネル1のVi1は、300kB/secであ
り、Vo1は、350kB/secであると仮定する。
【0022】ステップS100: 4つのチャネルが使
用されていない場合には、各チャネルには、バッファメ
モリ3において、それぞれ、16kB(=64kB/
4)の領域が割り当てられる。従って、例えば、チャネ
ル1に割り当てられる領域のアドレスは、0000hか
ら3FFFhまでとなる。 ステップS110: DMA転送命令を受けて、DMA
監視部4は、チャネル1を使ってDMA転送することを
決定する。 ステップS120: DMA制御部1−1は、転送すべ
き128kBのデータのうち、割り当てられた領域16
kBに相当するデータを転送する。
【0023】ステップS130: 16kBのデータを
転送し終わると、DMA監視部4は、バッファメモリ3
の割当てを見直す。ここで、チャネル1の転送速度は、
min(Vi1、Vo1)=300kB/secであ
り、他のチャネル2〜4の転送速度は、この300kB
/secの半分である150kB/secに設定され
る。これにより、チャネル1の転送速度、チャネル2の
転送速度、チャネル3の転送速度、チャネル4の転送速
度の比は、2:1:1:1となる。その結果、式(1)
に基づき、チャネル1の領域、チャネル2の領域、チャ
ネル3の領域、チャネル4の領域の比も、2:1:1:
1となる。従って、チャネル1に割り当てられる領域
は、25.6kBとなり、アドレスとしては、0000
hから6665hまでとなる。 ステップS140: DMA制御部1−1は、転送すべ
きデータのうち、割り当てられた領域25.6kBに相
当するデータを転送する。 ステップS150: 25.6kBのデータを転送し終
えると、DMA監視部4は、再び、バッファメモリ3の
割当てを見直す。以下、このような動作を繰り返す。
【0024】〈動作の詳細2〉図4は、DMAコントロ
ーラの動作フローチャート(その3)である。以下、こ
の動作フローチャートに沿って動作を引き続き説明す
る。なお、当初、4つのチャネル全てが、未使用状態で
あり、ある時刻に、システムバス10側からI/Oバス
20側へ128kBのデータをDMA転送する第一の命
令がなされ、ほぼ同時刻に、I/Oバス20側からシス
テムバス10側へ128kB/secのデータをDMA
転送する第二の命令がなされたと仮定する。なお、上述
した場合と同じように、チャネル1のVi1は、300
kB/secであり、Vo1は、350kB/secで
あると仮定する。
【0025】ステップS200: 4つのチャネルは未
使用状態であるので、各チャネルには、16kBの領域
が割り当てられる。従って、例えば、チャネル1に割り
当てられる領域のアドレスは、0000hから3FFF
hまでとなり、チャネル2に割り当てられるアドレス
は、4000hから7FFFhまでとなる。 ステップS210: 第一のDMA転送命令と第二のD
MA転送命令とを受けて、DMA監視部4は、チャネル
1を使って第一のDMA転送をすることを決定し、ま
た、チャネル2を使って第二のDMA転送をすることを
決定する。 ステップS220: 第一のDMA転送命令に基づき、
DMA制御部1−1は、転送すべき128kBのデータ
のうち、割り当てられた領域16kBに相当するデータ
を転送する。
【0026】ステップS230: 16kBのデータを
転送し終えると、DMA監視部4は、バッファメモリ3
の割当てを見直す。この時点においては、チャネル3、
4のみならず、チャネル2も未使用状態である。従っ
て、チャネル1の転送速度、チャネル2の転送速度、チ
ャネル3の転送速度、チャネル4の転送速度の比は、
2:1:1:1となる。従って、各チャネルに割り当て
られる領域の比も、そのような比となり、結局、チャネ
ル1には、25.6kBの領域(0000h〜6665
h)が割り当てられ、チャネル2には、12.8kBの
領域(6666h〜9999h)が割り当てられること
となる。なお、次にバッファメモリ3の割当てを見直す
際に、依然としてチャネル2、3、4が未使用のままで
ある場合には、チャネル1の領域に重み付けをすること
にことにより、今回の領域の比2:1:1:1を例え
ば、3:1:1:1や4:1:1:1等へ変更すること
になる。このようにすることにより、使用中のチャネル
に対し、より多くの領域を割り当てるようにする。これ
により、バッファメモリをより効率良く使用することが
可能となる。
【0027】ステップS240: 第二のDMA転送命
令に基づき、DMA制御部2−2は、転送すべき128
kBのデータのうち、割り当てられた領域12.8kB
に相当するデータを転送する。
【0028】ステップS250: 12.8kBのデー
タを転送し終えると、DMA監視部4は、バッファメモ
リ3の割当てを見直す。この時点では、min(Vi
1、Vo1)=300kB/secであり、また、mi
n(Vi2、Vo2)=300kB/secである。従
って、チャネル1の転送速度、チャネル2の転送速度、
チャネル3の転送速度、チャネル4の転送速度の比は、
2:2:1:1となる。その結果、チャネル1の領域、
チャネル2の領域、チャネル3の領域、チャネル4の領
域の比も2:2:1:1にすることが試算される。即
ち、チャネル1に対し、21.3kBの領域(0000
h〜5553h)を割り当てて、チャネル2に対して
も、21.3kBの領域(5553h〜AAA7h)を
割り当てることが試算される。しかし、チャネル1が、
新たにチャネル2に割り当てられるべき4.3kBの領
域(5554h〜6665h)を使用している最中であ
るため、その4.3kBの領域(5553h〜6665
h)をそのままの状態にしておき、その他の17.0k
Bの領域(6666h〜AAA7)をチャネル2に対し
割り当てることになる。
【0029】ステップS260: 次に、再びDMA制
御部1−1が、25.6kBに相当するデータをDMA
転送する。 ステップS270: 第一のDMA転送命令に基づく2
回めの転送が完了すると、DMA監視部4は、バッファ
メモリ3の割当てを見直す。この時点において、チャネ
ル1に対しては、21.3kBの領域(0000h〜5
553h)が改めて割り当てられることとなる。 ステップS280: さらに、再び、DMA制御部2−
2が、17.0kBに相当するデータをDMA転送す
る。 ステップS290: 第二のDMA転送命令に基づく2
回めの転送が終了すると、DMA監視部4は、バッファ
メモリ3の割当てを見直す。このとき、チャネル2に対
しては、21.3kBの領域(5554h〜AAA7
h)が改めて割り当てられることとなる。以下、同様の
動作を繰り返すことになる。
【0030】〈具体例1の効果〉このように、各チャネ
ルの転送速度を比較し、転送速度が速いチャネルに対し
ては、バッファメモリにおける領域を多く割当てて、転
送速度が遅いチャネルに対しては、領域を少なく割り当
てる。これにより、データを転送するのに要する時間に
対する、転送制御に伴うオーバヘッドの占める割合を低
減することが可能となる。
【0031】また、転送元からバッファメモリへの転送
速度と、バッファメモリから転送先への転送速度とを比
較し、遅い方の転送速度を元にして各チャネルに割り当
てられる領域同士の割合を決定する。それにより、各チ
ャネル毎に実質的な転送速度を把握することができる。
この結果、有限な大きさであるバッファメモリをより無
駄なく割り振ることが可能となる。
【0032】なお、転送速度が遅いチャネルでは、少量
の領域しか割り当てられないため、その領域に一時的に
蓄積されるデータ量が少なくなる。その結果として、デ
ータ転送に伴う遅延時間を抑えることができるので、全
体としての転送時間も短縮することが可能となる。
【0033】上述した具体例1の変形として、バッファ
メモリの代わりに、転送元から転送先へ転送されるべき
データを一時的に蓄積する蓄積手段を用い、また、ダイ
レクトメモリアクセス監視部の代わりに、転送元から転
送先までの間におけるデータの転送速度を検出する検出
手段と、その検出されたデータの転送速度が速ければ速
いほど、蓄積手段をより多く使用することを各チャネル
に対し許可する制御手段とを用いることにより、各チャ
ネルにおいて転送元から蓄積手段までのデータの転送速
度と蓄積手段から転送先までのデータの転送速度とが同
一である場合に、具体例1よりも簡易な方法で同様な効
果を得ることができる。さらには、ダイレクトメモリア
クセス監視部の代わりに、各チャネル毎に、転送元から
蓄積手段へデータを転送する際におけるデータ転送速度
と、蓄積手段から転送先までデータを転送する際におけ
るデータの転送速度とのうち遅い方のデータ転送速度
を、そのチャネルのデータ転送速度として選択する選択
手段を用いることにより、具体例1よりも簡易な構成で
同様な効果を得ることが可能となる。
【0034】〈具体例2の構成〉次に、具体例2のDM
Aコントローラについて説明する。具体例2のDMAコ
ントローラの構成は、具体例1のDMAコントローラの
構成と概ね同一であり、その動作も、具体例1の動作と
概ね同一である。主な相違点は、具体例1におけるバッ
ファメモリを単にチャネルの数で分割することにより、
各チャネルに対し領域を割り当てるだけでなく、さら
に、各チャネル毎に割り当てられる領域を2つの領域部
分へ分割することである。従って、各チャネルに割り当
てられる領域は、2つの領域部分A、Bとから構成され
ることになる。
【0035】図5は、具体例2の動作フローチャートで
ある。以下、この動作フローチャートに沿って説明す
る。なお、記憶部100に格納されているデータを入出
力装置200へ転送することを想定する。
【0036】ステップS400: 中央処理部110
は、DMA監視部4に対し、DMA転送を命令する。 ステップS410: DMA監視部4は、そのDMA転
送命令に従い、DMA制御部1−1、2−1に対し、D
MA転送に必要な情報を通知する。 ステップS420: その指示に基づき、DMA制御部
1−1は、記憶部100に格納されている第一のデータ
をチャネル1に割り当てられた領域q1の領域部分Aへ
転送する。
【0037】ステップS430: 領域部分Aへの転送
が終了すると、今度は、DMA制御部2−1が、その領
域部分Aに蓄積されている第一のデータを入出力装置2
00へ転送する。と同時に、DMA制御部1−1は、記
憶部100に格納されている後続の第二のデータを領域
部分Bへ転送する。 ステップS440: 領域部分Bへの転送が完了する
と、次には、DMA制御部2ー1が、その領域部分Bに
蓄積されている第二のデータを入出力装置200へ転送
する。と同時に、DMA制御部1−1は、記憶部100
に格納されている、さらに後続の第三のデータを領域部
分Aへ転送する。
【0038】以下、このような動作を繰り返す。但し、
一方の領域部分に蓄積されているデータを転送している
最中であるにも拘わらず、その同じ領域部分に異なるデ
ータを上書きしてしまうことを回避する必要がある。そ
こで、例えば、領域部分Aに蓄積されているデータの転
送を完了したこと、及び、領域部分Bへのデータの転送
を完了したことを確認した後に、領域部分Aへのデータ
の転送を開始すると共に、領域部分Bからのデータの転
送を開始する必要がある。なお、バッファメモリの割当
ては、各面の転送先への転送が終了する毎に見直され
る。
【0039】〈具体例2の効果〉このように、具体例2
のDMAコントローラでは、具体例1のDMAコントロ
ーラと同様な機能を有するだけでなく、各領域毎に2つ
の領域部分A、Bを有するために、それらの領域部分を
システムバス側とI/Oバス側とで交互に使用すること
ができる。これにより、一方のバスにおける転送が完全
に終了した後に、他方のバスにおける転送を開始すると
いうことを要さない。即ち、一方のバス側での転送と同
時に、他方のバス側での転送を実行することが可能とな
る。これにより、全体として転送時間を短縮することが
できる。
【0040】なお、上述した2つの具体例では、システ
ムバスとI/Oバスとの間でのDMAコントローラにつ
いて説明しているが、システムバスとシステムバスとの
間、あるいは、I/OバスとI/Oバスとの間において
も同様な機能を実現することが可能である。
【図面の簡単な説明】
【図1】具体例1のブロック図ある。
【図2】具体例1の動作フローチャート(その1)であ
る。
【図3】具体例1の動作フローチャート(その2)であ
る。
【図4】具体例1の動作フローチャート(その3)であ
る。
【図5】具体例2の動作フローチャートである。
【図6】従来のDMAコントローラのブロック図(その
1)である。
【図7】従来のDMAコントローラのブロック図(その
2)である。
【符号の説明】
1−1〜n 第一のDMA制御部 2−1〜n 第二のDMA制御部 3 バッファメモリ 4 DMA監視部

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 転送されるべきデータを一時的に蓄積す
    るバッファメモリと、 転送元からバッファメモリへデータを転送する第一のダ
    イレクトメモリアクセス制御部と、 バッファメモリから転送先へデータを転送する第二のダ
    イレクトメモリアクセス制御部と、 バッファメモリを分割し、その分割された領域を各チャ
    ネルに割り当てるダイレクトメモリアクセス監視部とか
    らなり、 転送元からバッファメモリを介して転送先までの間に、
    第一のダイレクトメモリアクセス制御部と第二のダイレ
    クトメモリアクセス制御部とから構成されるチャネルを
    複数形成し、 ダイレクトメモリアクセス監視部が、各チャネル毎に、
    転送元からバッファメモリまでの第一のデータ転送速度
    と、バッファメモリから転送先までの第二のデータ転送
    速度とのうち、遅い方のデータ転送速度を選択し、その
    選択されたデータ転送速度に応じて領域を割り当てるこ
    とを特徴とするDMAコントローラ。
  2. 【請求項2】 あるチャネルが、そのチャネルに割り当
    てられた領域に相当する量のデータの転送を完了する毎
    に、ダイレクトメモリアクセス監視部が、改めてバッフ
    ァメモリを割り当てることを特徴とする請求項1記載の
    DMAコントローラ。
  3. 【請求項3】 ダイレクトメモリアクセス監視部が、改
    めてバッファメモリを割り当てる際に、前回のバッファ
    メモリ割当て時に未使用であったチャネルが、引き続き
    未使用状態である場合には、その未使用状態のチャネル
    に割り当てる領域を少なくすることを特徴とする請求項
    2記載のDMAコントローラ。
  4. 【請求項4】 ダイレクトメモリアクセス監視部が、改
    めてバッファメモリを割り当てる場合に、第一のチャネ
    ルに既に割り当てられている領域の一部を第二のチャネ
    ルに割り当てるとき、第一のチャネルがその領域を使用
    しているときには、次回に改めてバッファメモリを割り
    当てる時までそのままの状態を維持することを特徴とす
    る請求項2記載のDMAコントローラ。
  5. 【請求項5】 各チャネルに対し割り当てられたバッフ
    ァメモリにおける領域が、複数の領域部分から構成され
    ており、 前記複数の領域部分のうち一の領域部分から転送先へあ
    るデータを転送することと、転送元から前記複数の領域
    部分のうち前記一の領域部分以外の他の領域部分へ他の
    データを転送することを特徴とする請求項1記載のDM
    Aコントローラ。
  6. 【請求項6】 転送元から転送先へ複数のチャネルを介
    して転送されるべきデータを一時的に蓄積する蓄積手段
    と、 各チャネル毎に、転送元から転送先までの間におけるデ
    ータの転送速度を検出する検出手段と、 各チャネルに対し、蓄積手段の使用を許可する制御手段
    とからなり、 制御手段が、検出されたデータの転送速度がより速いチ
    ャネルに対し、蓄積手段をより多く使用することを許可
    することを特徴とするDMAコントローラ。
  7. 【請求項7】 データを複数のチャネルを介して入出力
    する転送元と転送先との間で前記データを一時的に蓄積
    する蓄積手段と、 各チャネル毎に、転送元から前記蓄積手段へデータを転
    送する間におけるデータ転送速度と、前記蓄積手段から
    転送先までデータを転送する間におけるデータ転送速度
    とのうち遅い方のデータ転送速度を、そのチャネルのデ
    ータ転送速度として選択する選択手段と、 各チャネルに対し、そのチャネルのデータ転送速度に基
    づき前記蓄積手段の使用量を決定する制御手段とからな
    り、 前記制御手段が、選択されたデータ転送速度がより速い
    チャネルに対し、前記蓄積手段をより多く使用すること
    を許可することを特徴とするDMAコントローラ。
JP23247696A 1996-08-14 1996-08-14 Dmaコントローラ Pending JPH1063607A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP23247696A JPH1063607A (ja) 1996-08-14 1996-08-14 Dmaコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23247696A JPH1063607A (ja) 1996-08-14 1996-08-14 Dmaコントローラ

Publications (1)

Publication Number Publication Date
JPH1063607A true JPH1063607A (ja) 1998-03-06

Family

ID=16939906

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23247696A Pending JPH1063607A (ja) 1996-08-14 1996-08-14 Dmaコントローラ

Country Status (1)

Country Link
JP (1) JPH1063607A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002008919A1 (fr) * 2000-07-26 2002-01-31 Fujitsu Limited Dispositif mobile de communication
WO2004077304A1 (ja) * 2003-02-27 2004-09-10 Fujitsu Limited データ転送装置
KR100704218B1 (ko) * 2005-03-16 2007-04-09 후지쯔 가부시끼가이샤 데이터 전송 장치
JP2013515978A (ja) * 2010-06-07 2013-05-09 株式会社日立製作所 データ転送装置及びデータ転送方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002008919A1 (fr) * 2000-07-26 2002-01-31 Fujitsu Limited Dispositif mobile de communication
JP3863489B2 (ja) * 2000-07-26 2006-12-27 富士通株式会社 移動通信装置
WO2004077304A1 (ja) * 2003-02-27 2004-09-10 Fujitsu Limited データ転送装置
KR100704218B1 (ko) * 2005-03-16 2007-04-09 후지쯔 가부시끼가이샤 데이터 전송 장치
JP2013515978A (ja) * 2010-06-07 2013-05-09 株式会社日立製作所 データ転送装置及びデータ転送方法

Similar Documents

Publication Publication Date Title
US7484024B2 (en) Apparatus and method for interrupt source signal allocation
US6317427B1 (en) Method and apparatus for adaptive port buffering
JP2561760B2 (ja) 情報処理システムにおけるプロセス及び情報処理ネットワーク
US6021464A (en) Real time disk array which guarantees write deadlines by selecting an alternate disk
US4099233A (en) Electronic data-processing system with data transfer between independently operating miniprocessors
JPH02247768A (ja) 分散処理システム及び分散処理連携方法
JPH06236344A (ja) 複数データ転送要求間の仲裁方法と装置
US5958031A (en) Data transmitting/receiving device of a multiprocessor system and method therefor
US5640597A (en) Method and apparatus for servicing simultaneously a plurality of requests for data streams
JPH1063607A (ja) Dmaコントローラ
US7380027B2 (en) DMA controller and DMA transfer method
JP2003271545A (ja) データ処理システム
US6339807B1 (en) Multiprocessor system and the bus arbitrating method of the same
JPH04288638A (ja) コンピュータシステム
JPH01147618A (ja) A/d変換装置
JPH08194602A (ja) バッファ長可変式アクセス制御装置
JP2550868B2 (ja) 通信制御lsi
JPH0512125A (ja) アドレス変換方式
JPH04302036A (ja) 負荷分散方式
JP3698483B2 (ja) シリアルi/o
JP2881234B2 (ja) 疎結合マルチプロセッサシステム
JPH1049479A (ja) マスタデバイス
JPH05290004A (ja) 分散処理制御装置
JPH04284550A (ja) 共有メモリ制御方式
JP2021092904A (ja) Cpuリソース管理装置