JP2000215154A - Dmaコントロ―ラ - Google Patents
Dmaコントロ―ラInfo
- Publication number
- JP2000215154A JP2000215154A JP11015647A JP1564799A JP2000215154A JP 2000215154 A JP2000215154 A JP 2000215154A JP 11015647 A JP11015647 A JP 11015647A JP 1564799 A JP1564799 A JP 1564799A JP 2000215154 A JP2000215154 A JP 2000215154A
- Authority
- JP
- Japan
- Prior art keywords
- dma
- buffer
- channel
- transfer
- transfer request
- 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
Landscapes
- Bus Control (AREA)
Abstract
(57)【要約】
【課題】DMA 転送時におけるチャネル遷移待ちによるペ
ナルティの削減を、チャネル毎にバッファを設けること
なしに実現するDMA コントローラを提供する。 【解決手段】DMA 転送要求生成部2は、DMA 転送要求信
号30によってチャネル毎にDMA 転送要求を行い、DMA
転送要求制御部3がDMA バッファ5をデータ退避用に利
用してDMA 転送を行なうチャネルの決定を行なう。DMA
バッファ5があるチャネルで利用されていても、それよ
り優先度の高いチャネルからの要求があり、かつDMA バ
ッファ5にデータ格納可能な容量がある場合には、優先
度の高いチャネルに遷移して、DMA バッファ5の残量を
利用してDMA 転送を行なう。チャネル遷移待ちにより必
要な処理時間が満たせないことを防ぎ、転送効率を向上
させる。
ナルティの削減を、チャネル毎にバッファを設けること
なしに実現するDMA コントローラを提供する。 【解決手段】DMA 転送要求生成部2は、DMA 転送要求信
号30によってチャネル毎にDMA 転送要求を行い、DMA
転送要求制御部3がDMA バッファ5をデータ退避用に利
用してDMA 転送を行なうチャネルの決定を行なう。DMA
バッファ5があるチャネルで利用されていても、それよ
り優先度の高いチャネルからの要求があり、かつDMA バ
ッファ5にデータ格納可能な容量がある場合には、優先
度の高いチャネルに遷移して、DMA バッファ5の残量を
利用してDMA 転送を行なう。チャネル遷移待ちにより必
要な処理時間が満たせないことを防ぎ、転送効率を向上
させる。
Description
【0001】
【発明の属する技術分野】本発明は、デバイス(メモ
リ、I/O)の間のDMA (ダイレクト・メモリ・アクセス)
転送制御を行なうDMA コントローラに関するものであ
る。DMA 転送データを一時的に退避させるDMA バッファ
をチャネル毎に複数備えることなく、DMA バッファを利
用しているチャネルから、異なるチャネルへの遷移を行
なうことによって、チャネル遷移待ちによるペナルティ
を軽減し、転送効率を高めることを図ったDMA コントロ
ーラである。
リ、I/O)の間のDMA (ダイレクト・メモリ・アクセス)
転送制御を行なうDMA コントローラに関するものであ
る。DMA 転送データを一時的に退避させるDMA バッファ
をチャネル毎に複数備えることなく、DMA バッファを利
用しているチャネルから、異なるチャネルへの遷移を行
なうことによって、チャネル遷移待ちによるペナルティ
を軽減し、転送効率を高めることを図ったDMA コントロ
ーラである。
【0002】
【従来の技術】従来の技術を図8に示す情報システムを
用いて説明する。
用いて説明する。
【0003】このシステムは、DMA コントローラ100
1、CPU 1002、バスコントローラ1003、メモリ
1004、I/Oデバイス1005、システムバス100
6で構成される。
1、CPU 1002、バスコントローラ1003、メモリ
1004、I/Oデバイス1005、システムバス100
6で構成される。
【0004】DMA コントローラ1001は、CPU100
2からの要求、具体的にはCPU 1002からバスコント
ローラ1003の制御を介してDMA コントローラ100
1の制御レジスタ1010にセットされたチャネル、ソ
ースアドレス、デスティネーションアドレス、転送バイ
トサイズの情報に基づいて、バスコントローラ1003
に対してDMA 転送要求を行なう。
2からの要求、具体的にはCPU 1002からバスコント
ローラ1003の制御を介してDMA コントローラ100
1の制御レジスタ1010にセットされたチャネル、ソ
ースアドレス、デスティネーションアドレス、転送バイ
トサイズの情報に基づいて、バスコントローラ1003
に対してDMA 転送要求を行なう。
【0005】DMA コントローラ1001は、バスコント
ローラ1003に対してDMA 転送要求信号1020をア
サートして転送要求を行ない、ソースへのアクセスでは
DMA転送要求信号1020をアサートするサイクルでソ
ースアクセス要求信号1021をアサートし、デスティ
ネーションへのアクセスではソースアクセス要求信号を
ネゲートする。その他、要求時にはアドレス1022、
転送データサイズ1023を出力する。
ローラ1003に対してDMA 転送要求信号1020をア
サートして転送要求を行ない、ソースへのアクセスでは
DMA転送要求信号1020をアサートするサイクルでソ
ースアクセス要求信号1021をアサートし、デスティ
ネーションへのアクセスではソースアクセス要求信号を
ネゲートする。その他、要求時にはアドレス1022、
転送データサイズ1023を出力する。
【0006】DMA 転送動作のデータの流れとしてはソー
スへのアクセス時には、例えばメモリ1004からシス
テムバス1006を経由してDMA コントローラ1001
のDMA バッファ1011に退避され、デスティネーショ
ンへのアクセス時にはDMA バッファ1011からシステ
ムバス1006を経由して、例えばI/Oデバイス100
5に書き込まれる。これらの転送制御についてはDMA コ
ントローラ1001の要求に基づいてバスコントローラ
1003が行なう。
スへのアクセス時には、例えばメモリ1004からシス
テムバス1006を経由してDMA コントローラ1001
のDMA バッファ1011に退避され、デスティネーショ
ンへのアクセス時にはDMA バッファ1011からシステ
ムバス1006を経由して、例えばI/Oデバイス100
5に書き込まれる。これらの転送制御についてはDMA コ
ントローラ1001の要求に基づいてバスコントローラ
1003が行なう。
【0007】DMA コントローラ1001で、DMA のチャ
ネルをそれまでDMA バッファ1011を利用してDMA 転
送していたチャネルから、他のチャネルに遷移する場合
には、異なるチャネルのデータを転送してしまうことを
避けるため、DMA バッファ1011にデータがなくなっ
てから行なわれる。
ネルをそれまでDMA バッファ1011を利用してDMA 転
送していたチャネルから、他のチャネルに遷移する場合
には、異なるチャネルのデータを転送してしまうことを
避けるため、DMA バッファ1011にデータがなくなっ
てから行なわれる。
【0008】
【発明が解決しようとする課題】しかしながら、上記従
来技術においては以下に述べるような問題がある。メモ
リ1004が例えばSDRAM など複数ワードのデータを連
続して読み出し、もしくは書き込みできるバースト転送
機能を持ったメモリであるとすると、メモリ1004に
対するアクセスはバースト転送可能なメモリアドレスの
境界まで一度に行なってしまうのが効率的である。この
境界が例えば16バイト毎に存在する場合に、図9に示
すようにソースアドレス(0x0002)とデスティネーション
アドレス(0x0000)で16バイト境界でのアラインが異な
る場合に、転送すべきデータが16バイト境界をまたが
る長い転送を考えると、1回目の転送はソースからのア
ドレス1022が0x0002、転送データサイズ1023が
0x8(8バイト)の転送となる。1回目のデータをDMA バ
ッファ1011に退避した段階では、デスティネーショ
ンのイニシャルアドレス0x0000から次の16バイト境界
0x0004まで転送すべき16バイトのデータはDMA バッファ
1011にはないので、2回目もソースからのアドレス
1022が0x0004、転送データサイズ1023が0x10(
16バイト) の転送となる。3回目にはDMA バッファ1
011にデスティネーションへ転送するのに充分なデー
タがたまったことから、デスティネーションへのアドレ
ス1022が0x0000、転送データサイズ1023が0x10
の転送となる。以下4回目はソースからのアドレス10
22が0x0008、転送データサイズ1023が0x10の転
送、5回目はデスティネーションへのアドレス1022
が0x0004、転送データサイズ1023が0x10の転送、最
後の6回目は転送すべき残りデータは8バイトになるの
で、デスティネーションへのアドレス1022が0x000
8、転送データサイズ1023が0x08の転送になる。1
024はDMA 転送許可信号、1025はリードデータア
クノリッジ、1026はライトデータアクノリッジであ
る。
来技術においては以下に述べるような問題がある。メモ
リ1004が例えばSDRAM など複数ワードのデータを連
続して読み出し、もしくは書き込みできるバースト転送
機能を持ったメモリであるとすると、メモリ1004に
対するアクセスはバースト転送可能なメモリアドレスの
境界まで一度に行なってしまうのが効率的である。この
境界が例えば16バイト毎に存在する場合に、図9に示
すようにソースアドレス(0x0002)とデスティネーション
アドレス(0x0000)で16バイト境界でのアラインが異な
る場合に、転送すべきデータが16バイト境界をまたが
る長い転送を考えると、1回目の転送はソースからのア
ドレス1022が0x0002、転送データサイズ1023が
0x8(8バイト)の転送となる。1回目のデータをDMA バ
ッファ1011に退避した段階では、デスティネーショ
ンのイニシャルアドレス0x0000から次の16バイト境界
0x0004まで転送すべき16バイトのデータはDMA バッファ
1011にはないので、2回目もソースからのアドレス
1022が0x0004、転送データサイズ1023が0x10(
16バイト) の転送となる。3回目にはDMA バッファ1
011にデスティネーションへ転送するのに充分なデー
タがたまったことから、デスティネーションへのアドレ
ス1022が0x0000、転送データサイズ1023が0x10
の転送となる。以下4回目はソースからのアドレス10
22が0x0008、転送データサイズ1023が0x10の転
送、5回目はデスティネーションへのアドレス1022
が0x0004、転送データサイズ1023が0x10の転送、最
後の6回目は転送すべき残りデータは8バイトになるの
で、デスティネーションへのアドレス1022が0x000
8、転送データサイズ1023が0x08の転送になる。1
024はDMA 転送許可信号、1025はリードデータア
クノリッジ、1026はライトデータアクノリッジであ
る。
【0009】図9を例に説明したようにソースアドレス
とデスティネーションアドレスで16バイト境界でのア
ラインが異なる転送では、デスティネーションに転送す
るのに充分なデータを格納すると、このデータは16バ
イトを上回った状態になっているため、デスティネーシ
ョンへの転送後にも、完全に一連の転送が完了するまで
は、DMA バッファ1011にデータが存在し続けること
になる(例えば3回目の転送後には8バイトのデータが
残る)。
とデスティネーションアドレスで16バイト境界でのア
ラインが異なる転送では、デスティネーションに転送す
るのに充分なデータを格納すると、このデータは16バ
イトを上回った状態になっているため、デスティネーシ
ョンへの転送後にも、完全に一連の転送が完了するまで
は、DMA バッファ1011にデータが存在し続けること
になる(例えば3回目の転送後には8バイトのデータが
残る)。
【0010】そのため、あるチャネルでソースとデステ
ィネーションでアラインのずれたアドレス間でのDMA 転
送を、大量のデータについて行っていたり、極端にアク
セス速度の遅いデバイスに対して行なっていたりする
と、他のチャネルはDMA バッファが空になって利用可能
になるまでの待ち時間によって、要求される処理時間内
での転送を完了できなくなるという問題がある。
ィネーションでアラインのずれたアドレス間でのDMA 転
送を、大量のデータについて行っていたり、極端にアク
セス速度の遅いデバイスに対して行なっていたりする
と、他のチャネルはDMA バッファが空になって利用可能
になるまでの待ち時間によって、要求される処理時間内
での転送を完了できなくなるという問題がある。
【0011】本発明は、上記の問題点に鑑み、あるチャ
ネルで利用しているDMA バッファについても、格納可能
な容量が残されている場合には、緊急度の高い他のチャ
ネルを優先してDMA バッファを割り当て、その際には、
DMA バッファの残量に応じたDMA 転送制御を行なうこと
で、各チャネル毎にDMA バッファを備えることによる回
路規模の増加を避けつつ、チャネル遷移待ち時間のペナ
ルティを軽減し、転送効率を向上させることができるDM
A コントローラを提供することを目的とする。
ネルで利用しているDMA バッファについても、格納可能
な容量が残されている場合には、緊急度の高い他のチャ
ネルを優先してDMA バッファを割り当て、その際には、
DMA バッファの残量に応じたDMA 転送制御を行なうこと
で、各チャネル毎にDMA バッファを備えることによる回
路規模の増加を避けつつ、チャネル遷移待ち時間のペナ
ルティを軽減し、転送効率を向上させることができるDM
A コントローラを提供することを目的とする。
【0012】
【課題を解決するための手段】請求項1記載のDMA コン
トローラは、デバイス間でDMA 転送されるデータを、複
数バイトのデータサイズのDMA バッファに一時的に退避
させることによってDMA 転送を行なうDMA コントローラ
であって、DMA バッファと、複数のチャネルからのDMA
転送要求信号に基づいて、DMA バッファを利用するチャ
ネルを複数のチャネルから決定するDMA 転送要求制御部
と、DMA バッファへのデータアクセス制御を行なうDMA
バッファ制御部とを備え、DMA バッファを利用している
チャネルより、優先度の高いチャネルからの転送要求が
あった場合には、DMA 転送要求制御部が、DMA バッファ
にデータ格納可能な容量があれば、優先度の高いチャネ
ルに対しDMA バッファを利用してDMA 転送することを許
可することを特徴とするものである。
トローラは、デバイス間でDMA 転送されるデータを、複
数バイトのデータサイズのDMA バッファに一時的に退避
させることによってDMA 転送を行なうDMA コントローラ
であって、DMA バッファと、複数のチャネルからのDMA
転送要求信号に基づいて、DMA バッファを利用するチャ
ネルを複数のチャネルから決定するDMA 転送要求制御部
と、DMA バッファへのデータアクセス制御を行なうDMA
バッファ制御部とを備え、DMA バッファを利用している
チャネルより、優先度の高いチャネルからの転送要求が
あった場合には、DMA 転送要求制御部が、DMA バッファ
にデータ格納可能な容量があれば、優先度の高いチャネ
ルに対しDMA バッファを利用してDMA 転送することを許
可することを特徴とするものである。
【0013】請求項1記載のDMA コントローラによれ
ば、DMA 転送要求制御部が、DMA バッファを利用するチ
ャネルの決定を行ない、あるチャネルがDMA バッファを
利用している場合にも、より優先度の高いチャネルの転
送要求があった場合には、DMAバッファにデータ格納可
能な容量があれば、優先度の高いチャネルに遷移して、
その転送制御を優先的に行なう。
ば、DMA 転送要求制御部が、DMA バッファを利用するチ
ャネルの決定を行ない、あるチャネルがDMA バッファを
利用している場合にも、より優先度の高いチャネルの転
送要求があった場合には、DMAバッファにデータ格納可
能な容量があれば、優先度の高いチャネルに遷移して、
その転送制御を優先的に行なう。
【0014】このように、あるチャネルが利用している
DMA バッファの残量を、より優先度の高いチャネルのDM
A 転送用に用いることによって、チャネル毎にバッファ
を設けることなくしかも回路規模の増加をさけるととも
に、従来のようにあるチャネルが極端に長い時間DMA バ
ッファを利用し続けることによって、別のチャネルがチ
ャネルの遷移待ち時間のペナルティで要求される処理時
間をみたせなくなることを防ぎ、転送効率を向上させる
効果がある。
DMA バッファの残量を、より優先度の高いチャネルのDM
A 転送用に用いることによって、チャネル毎にバッファ
を設けることなくしかも回路規模の増加をさけるととも
に、従来のようにあるチャネルが極端に長い時間DMA バ
ッファを利用し続けることによって、別のチャネルがチ
ャネルの遷移待ち時間のペナルティで要求される処理時
間をみたせなくなることを防ぎ、転送効率を向上させる
効果がある。
【0015】請求項2記載のDMA コントローラは、請求
項1において、優先度の高いチャネルの要求する転送デ
ータサイズが、DMA バッファにデータ格納可能な容量を
上回る場合に、優先度の高いチャネルの要求に対応した
要求を、DMA バッファにデータ格納可能な転送データサ
イズのDMA 転送制御を複数回に分けてDMA 転送要求制御
部に対し行なうDMA 転送要求生成部を有するものであ
る。
項1において、優先度の高いチャネルの要求する転送デ
ータサイズが、DMA バッファにデータ格納可能な容量を
上回る場合に、優先度の高いチャネルの要求に対応した
要求を、DMA バッファにデータ格納可能な転送データサ
イズのDMA 転送制御を複数回に分けてDMA 転送要求制御
部に対し行なうDMA 転送要求生成部を有するものであ
る。
【0016】請求項2記載のDMA コントローラによれ
ば、請求項1と同様な効果のほか、DMA 転送要求を行な
うDMA 転送要求生成部が、DMA バッファにデータ格納可
能な容量を、もともと要求すべき転送データサイズが上
回った場合は、DMA バッファに格納可能な転送データサ
イズに分けて、複数回DMA 転送要求を行なう。
ば、請求項1と同様な効果のほか、DMA 転送要求を行な
うDMA 転送要求生成部が、DMA バッファにデータ格納可
能な容量を、もともと要求すべき転送データサイズが上
回った場合は、DMA バッファに格納可能な転送データサ
イズに分けて、複数回DMA 転送要求を行なう。
【0017】このように、チャネルが利用してるDMA バ
ッファの残量があるチャネル行なおうとする転送データ
サイズより少ない場合に、DMA バッファの残量でDMA 転
送可能な複数回の転送に分割して行なうことで、DMA バ
ッファの残量が少ないために、DMA 転送が行なえず、チ
ャネルの遷移待ち時間のペナルティが発生することを防
ぐ効果がある。
ッファの残量があるチャネル行なおうとする転送データ
サイズより少ない場合に、DMA バッファの残量でDMA 転
送可能な複数回の転送に分割して行なうことで、DMA バ
ッファの残量が少ないために、DMA 転送が行なえず、チ
ャネルの遷移待ち時間のペナルティが発生することを防
ぐ効果がある。
【0018】
【発明の実施の形態】本発明の一実施の形態について図
1から図7を用いて説明する。
1から図7を用いて説明する。
【0019】図2は本発明の一実施の形態によるDMA コ
ントローラを用いた情報システムの構成例であり、図8
のDMA コントローラ1001がDMA コントローラ1にな
る他は図8に示した従来のシステムと同等のものであ
る。
ントローラを用いた情報システムの構成例であり、図8
のDMA コントローラ1001がDMA コントローラ1にな
る他は図8に示した従来のシステムと同等のものであ
る。
【0020】図1は本発明のDMA コントローラ1の構成
を示したものである。DMA コントローラ1はDMA 転送要
求生成部2とDMA 転送要求制御部3、DMA バッファ制御
部4、DMA バッファ5、制御レジスタ6および、DMA デ
ータバス10、制御データバス11から構成される。
を示したものである。DMA コントローラ1はDMA 転送要
求生成部2とDMA 転送要求制御部3、DMA バッファ制御
部4、DMA バッファ5、制御レジスタ6および、DMA デ
ータバス10、制御データバス11から構成される。
【0021】また、DMA コントローラ1は制御のために
DMA バッファライトポインタ15、DMA バッファリード
ポインタ16、DMA バッファフルフラグ17、DMA バッ
ファフラグ18、DMA バッファロックフラグ19を有し
ている。
DMA バッファライトポインタ15、DMA バッファリード
ポインタ16、DMA バッファフルフラグ17、DMA バッ
ファフラグ18、DMA バッファロックフラグ19を有し
ている。
【0022】DMA 転送要求生成部2の主な制御内容は、
CPU 1002からセットされた制御レジスタ6の情報に
対応するDMA 転送要求を生成することである。
CPU 1002からセットされた制御レジスタ6の情報に
対応するDMA 転送要求を生成することである。
【0023】DMA 転送要求制御部3の主な制御内容は、
DMA 転送要求生成部2からの要求のチャネル間での調停
を行ないバスコントローラ1003に対してDMA 転送要
求を行なうことである。
DMA 転送要求生成部2からの要求のチャネル間での調停
を行ないバスコントローラ1003に対してDMA 転送要
求を行なうことである。
【0024】DMA バッファ制御部4の主な制御内容は、
バスコントローラ1003からのアクノリッジ信号のタ
イミングに基づいて、DMA バッファ5へのデータの読み
書きの制御を行なうことである。
バスコントローラ1003からのアクノリッジ信号のタ
イミングに基づいて、DMA バッファ5へのデータの読み
書きの制御を行なうことである。
【0025】DMA バッファ5はソースデバイスから読み
出したDMA 転送データをデスティネーションに転送する
までの間、格納するバッファである。
出したDMA 転送データをデスティネーションに転送する
までの間、格納するバッファである。
【0026】制御レジスタ6はDMA コントローラ1の制
御のための設定値を格納するレジスタであり、DMA コン
トローラ1の起動はCPU1002によってこの制御レジ
スタ6がセットされることで行なわれる。
御のための設定値を格納するレジスタであり、DMA コン
トローラ1の起動はCPU1002によってこの制御レジ
スタ6がセットされることで行なわれる。
【0027】DMA バッファライトポインタ15は、DMA
バッファ5の次にデータを書き込むべき番地を指すポイ
ンタである。
バッファ5の次にデータを書き込むべき番地を指すポイ
ンタである。
【0028】DMA バッファリードポインタ16は、DMA
バッファ5の次にデータを読み出すべき番地を指すポイ
ンタである。DMA バッファライトポインタ15とDMA バ
ッファリードポインタ16はDMA バッファ制御部4によ
ってインクリメントされ、そのポインタは上限値を超え
てインクリメントする場合は、0に戻って続きをインク
リメントすることになる。
バッファ5の次にデータを読み出すべき番地を指すポイ
ンタである。DMA バッファライトポインタ15とDMA バ
ッファリードポインタ16はDMA バッファ制御部4によ
ってインクリメントされ、そのポインタは上限値を超え
てインクリメントする場合は、0に戻って続きをインク
リメントすることになる。
【0029】DMA バッファフルフラグ17は、DMA バッ
ファ5にデータを書き込む容量のないことを示すフラグ
であり、DMA バッファ制御部4によってセット/クリア
される。
ファ5にデータを書き込む容量のないことを示すフラグ
であり、DMA バッファ制御部4によってセット/クリア
される。
【0030】DMA バッファフラグ18は、DMA バッファ
5を使用しているチャネルを示すフラグであり、DMA 転
送要求生成部2によってセット/クリアされる。
5を使用しているチャネルを示すフラグであり、DMA 転
送要求生成部2によってセット/クリアされる。
【0031】DMA バッファロックフラグ19は、DMA バ
ッファ5をロックして排他的に使用しているチャネルを
示すフラグであり、DMA 転送要求制御部3によってセッ
トされ、DMA 転送要求生成部2によってクリアされる。
ッファ5をロックして排他的に使用しているチャネルを
示すフラグであり、DMA 転送要求制御部3によってセッ
トされ、DMA 転送要求生成部2によってクリアされる。
【0032】図3にDMA 転送要求生成部2の各チャネル
毎の制御フローチャートを示す。
毎の制御フローチャートを示す。
【0033】ステップ101ではDMA チャネルを起動す
るかを判断する。制御レジスタ6は各チャネル毎に独立
して、ソースアドレス、デスティネーションアドレス、
転送データサイズおよびDMA 転送要求フラグのフィール
ドを有しており、DMA 転送要求生成部2は制御レジスタ
6が新たにセットされ、DMA 転送要求フラグのフィール
ドのセットされたチャネルを起動する。DMA 転送要求フ
ラグのフィールドのセットされていないチャネルではス
テップ101で待機し、セットされたチャネルではステ
ップ102に遷移する。
るかを判断する。制御レジスタ6は各チャネル毎に独立
して、ソースアドレス、デスティネーションアドレス、
転送データサイズおよびDMA 転送要求フラグのフィール
ドを有しており、DMA 転送要求生成部2は制御レジスタ
6が新たにセットされ、DMA 転送要求フラグのフィール
ドのセットされたチャネルを起動する。DMA 転送要求フ
ラグのフィールドのセットされていないチャネルではス
テップ101で待機し、セットされたチャネルではステ
ップ102に遷移する。
【0034】ステップ102ではDMA 転送でソースから
の転送要求を行なうか、デスティネーションへの転送要
求を行なうかを判断する。DMA 転送要求生成部2は、既
に転送されたデータのサイズをカウントするソースデー
タカウンタ20、デスティネーションデータカウンタ2
1を有し、それぞれはDMA チャネルが起動された直後に
は0の値を示している。ステップ102では、ソースデ
ータカウンタ20とデスティネーションデータカウンタ
21の値の差が、DMA 転送するデバイスへ1度に転送で
きるデータサイズもしくはDMA バッファ5の残量のいず
れか値の小さい方を上回る場合、もしくはソースデータ
カウンタ20が全てのデータを転送済みであることを示
す場合に、デスティネーションに転送するのに充分なデ
ータがDMA バッファ5に格納されていると判断し、デス
ティネーションへの転送要求を、そうでない場合にはソ
ースからの転送要求を行なう。DMA バッファ5の残量は
(DMAバッファリードポインタ16の値) >(DMAバッファ
ライトポインタ15の値)の場合は、(DMAバッファリー
ドポインタ16の値) - (DMAバッファライトポインタ1
5の値)であり、(DMAバッファリードポインタ16の値)
<(DMAバッファライトポインタ15の値) の場合は、
(DMAバッファ5の総容量) + (DMAバッファリードポイン
タ16の値) - (DMAバッファライトポインタ15の値)
で与えられる。
の転送要求を行なうか、デスティネーションへの転送要
求を行なうかを判断する。DMA 転送要求生成部2は、既
に転送されたデータのサイズをカウントするソースデー
タカウンタ20、デスティネーションデータカウンタ2
1を有し、それぞれはDMA チャネルが起動された直後に
は0の値を示している。ステップ102では、ソースデ
ータカウンタ20とデスティネーションデータカウンタ
21の値の差が、DMA 転送するデバイスへ1度に転送で
きるデータサイズもしくはDMA バッファ5の残量のいず
れか値の小さい方を上回る場合、もしくはソースデータ
カウンタ20が全てのデータを転送済みであることを示
す場合に、デスティネーションに転送するのに充分なデ
ータがDMA バッファ5に格納されていると判断し、デス
ティネーションへの転送要求を、そうでない場合にはソ
ースからの転送要求を行なう。DMA バッファ5の残量は
(DMAバッファリードポインタ16の値) >(DMAバッファ
ライトポインタ15の値)の場合は、(DMAバッファリー
ドポインタ16の値) - (DMAバッファライトポインタ1
5の値)であり、(DMAバッファリードポインタ16の値)
<(DMAバッファライトポインタ15の値) の場合は、
(DMAバッファ5の総容量) + (DMAバッファリードポイン
タ16の値) - (DMAバッファライトポインタ15の値)
で与えられる。
【0035】ステップ103ではDMA 転送要求制御部3
へのDMA 転送要求を行なう。DMA 転送要求制御部3への
DMA 転送要求はDMA 転送要求信号30をアサートして行
ない、ソースへのアクセス要求ではソースアクセス要求
信号31をアサートし、デスティネーションへのアクセ
ス要求ではソースアクセス要求信号31をネゲートす
る。転送データサイズは、DMA 転送するデバイスへ1度
に転送できるデータサイズ、未転送のデータサイズの2
者、もしくはDMA バッファフラグ18が他のいずれかの
チャネルでセットされている場合はDMA バッファ5の残
量も含めた3者のうち最も値の小さいものを転送データ
サイズ信号33として出力する。アドレスはステップ1
02で判断されたソース/デスティネーションへのアク
セスのいずれかの結果に基づいて、ソースの場合は、制
御レジスタ6のソースアドレスのフィールドの値(イニ
シャルアドレス)にソースデータカウンタ20の値を加
えたものを、デスティネーションの場合は、制御レジス
タ6のデスティネーションアドレスのフィールドの値
(イニシャルアドレス)にデスティネーションデータカウ
ンタ21の値を加えたものをアドレス32として出力す
る。
へのDMA 転送要求を行なう。DMA 転送要求制御部3への
DMA 転送要求はDMA 転送要求信号30をアサートして行
ない、ソースへのアクセス要求ではソースアクセス要求
信号31をアサートし、デスティネーションへのアクセ
ス要求ではソースアクセス要求信号31をネゲートす
る。転送データサイズは、DMA 転送するデバイスへ1度
に転送できるデータサイズ、未転送のデータサイズの2
者、もしくはDMA バッファフラグ18が他のいずれかの
チャネルでセットされている場合はDMA バッファ5の残
量も含めた3者のうち最も値の小さいものを転送データ
サイズ信号33として出力する。アドレスはステップ1
02で判断されたソース/デスティネーションへのアク
セスのいずれかの結果に基づいて、ソースの場合は、制
御レジスタ6のソースアドレスのフィールドの値(イニ
シャルアドレス)にソースデータカウンタ20の値を加
えたものを、デスティネーションの場合は、制御レジス
タ6のデスティネーションアドレスのフィールドの値
(イニシャルアドレス)にデスティネーションデータカウ
ンタ21の値を加えたものをアドレス32として出力す
る。
【0036】ステップ104では、DMA 転送要求がDMA
転送要求制御部3に許可されたかを判断する。DMA 転送
要求制御部3からのDMA 転送許可信号35が要求を行な
っているチャネルに対してアサートされた場合、DMA 転
送の許可がチャネルに与えられたと判断し、DMA バッフ
ァフラグ18の該当するチャネルのフィールドをセット
して、DMA 転送要求生成部2はステップ105へ遷移
し、ネゲートされている場合は、ステップ102へ遷移
する。
転送要求制御部3に許可されたかを判断する。DMA 転送
要求制御部3からのDMA 転送許可信号35が要求を行な
っているチャネルに対してアサートされた場合、DMA 転
送の許可がチャネルに与えられたと判断し、DMA バッフ
ァフラグ18の該当するチャネルのフィールドをセット
して、DMA 転送要求生成部2はステップ105へ遷移
し、ネゲートされている場合は、ステップ102へ遷移
する。
【0037】ステップ105では、DMA チャネル起動か
らの一連のDMA 転送が終了したかを判断する。デスティ
ネーションデータカウンタ21の値が、制御レジスタ6
の転送データサイズの値に達している場合は、一連のDM
A 転送が終了したと判断し、DMA バッファフラグ18と
DMA バッファロックフラグ19の該当するチャネルのフ
ィールドをクリアしてステップ107へ遷移し、そうで
ない場合にはステップ106へ遷移する。
らの一連のDMA 転送が終了したかを判断する。デスティ
ネーションデータカウンタ21の値が、制御レジスタ6
の転送データサイズの値に達している場合は、一連のDM
A 転送が終了したと判断し、DMA バッファフラグ18と
DMA バッファロックフラグ19の該当するチャネルのフ
ィールドをクリアしてステップ107へ遷移し、そうで
ない場合にはステップ106へ遷移する。
【0038】ステップ106では、ソースへのアクセス
要求を行なっていた場合にはソースデータカウンタ20
を、デスティネーションの場合にはデスティネーション
データカウンタ21の値を、転送データサイズ信号33
として出力していた値だけインクリメントする。
要求を行なっていた場合にはソースデータカウンタ20
を、デスティネーションの場合にはデスティネーション
データカウンタ21の値を、転送データサイズ信号33
として出力していた値だけインクリメントする。
【0039】ステップ107では、制御レジスタ6のDM
A 転送要求フラグのフィールドをクリアする。
A 転送要求フラグのフィールドをクリアする。
【0040】図4にはDMA 転送要求制御部3の制御のフ
ローチャートを示す。
ローチャートを示す。
【0041】ステップ201では、DMA 転送要求生成部
2からのDMA 転送要求の有無を調べる。DMA 転送要求信
号30がいずれかのチャネルについてアサートされてい
る場合は、ステップ202へ遷移する。
2からのDMA 転送要求の有無を調べる。DMA 転送要求信
号30がいずれかのチャネルについてアサートされてい
る場合は、ステップ202へ遷移する。
【0042】ステップ202では、DMA バッファ5がDM
A 転送要求を行なってきたチャネルによってロックされ
ているかを判断する。DMA 転送要求生成部2はDMA バッ
ファがあるチャネルによって専有されていることを示す
ロックフラグ19の示すチャネル以外からのDMA 転送要
求を受け付けない。DMA バッファロックフラグ19のセ
ットされていて、かつDMA バッファ5をロックしている
チャネルからの要求がない場合はステップ202で待機
し、そうでない場合はステップ203に遷移する。
A 転送要求を行なってきたチャネルによってロックされ
ているかを判断する。DMA 転送要求生成部2はDMA バッ
ファがあるチャネルによって専有されていることを示す
ロックフラグ19の示すチャネル以外からのDMA 転送要
求を受け付けない。DMA バッファロックフラグ19のセ
ットされていて、かつDMA バッファ5をロックしている
チャネルからの要求がない場合はステップ202で待機
し、そうでない場合はステップ203に遷移する。
【0043】ステップ203では、DMA 転送要求を行な
ってきたチャネルのうち、優先順位に基づいてどのチャ
ネルにアクセス権を与えるかを決定するアービトレーシ
ョンを行なう。DMA バッファロックフラグ19の示すチ
ャネルからの要求は必ずアービトレーションに勝つ。
ってきたチャネルのうち、優先順位に基づいてどのチャ
ネルにアクセス権を与えるかを決定するアービトレーシ
ョンを行なう。DMA バッファロックフラグ19の示すチ
ャネルからの要求は必ずアービトレーションに勝つ。
【0044】ステップ204では、アービトレーション
に勝ってアクセス権の与えられるチャネル以外のチャネ
ルが、DMA バッファ5を利用しているかを判断する。DM
A 転送要求生成部2はDMA バッファフラグ18がセット
されていれば、これが示すチャネルがDMA バッファ5を
利用していると判断する。アービトレーションに勝って
アクセス権の与えられるチャネル以外のチャネルが、DM
A バッファ5を利用している場合にはステップ205
に、そうでない場合にはステップ206に遷移する。
に勝ってアクセス権の与えられるチャネル以外のチャネ
ルが、DMA バッファ5を利用しているかを判断する。DM
A 転送要求生成部2はDMA バッファフラグ18がセット
されていれば、これが示すチャネルがDMA バッファ5を
利用していると判断する。アービトレーションに勝って
アクセス権の与えられるチャネル以外のチャネルが、DM
A バッファ5を利用している場合にはステップ205
に、そうでない場合にはステップ206に遷移する。
【0045】ステップ205では、DMA バッファ5にデ
ータ格納可能な容量があるかを判断する。DMA 転送要求
生成部2はDMA バッファフルフラグ17がセットされて
いれば、DMA バッファに書き込む容量がないと判断しス
テップ202に、 セットされていない場合には、ステ
ップ206に遷移する。
ータ格納可能な容量があるかを判断する。DMA 転送要求
生成部2はDMA バッファフルフラグ17がセットされて
いれば、DMA バッファに書き込む容量がないと判断しス
テップ202に、 セットされていない場合には、ステ
ップ206に遷移する。
【0046】ステップ206では、実際にバスアクセス
の制御を行なっているバスコントローラ1003に対す
るアクセス要求を行なう。DMA 転送要求生成部2はDMA
転送要求信号1020をアサートして要求をおこない、
DMA バッファロックフラグ19の示すDMA バッファ5を
ロックしているチャネル、もしくはステップ203のア
ービトレーションで決定したチャネルのソースアクセス
要求信号31、アドレス32、転送データサイズ信号3
3を、それぞれソースアクセス要求信号1021、アド
レス1022、転送データサイズ信号1023として出
力する。
の制御を行なっているバスコントローラ1003に対す
るアクセス要求を行なう。DMA 転送要求生成部2はDMA
転送要求信号1020をアサートして要求をおこない、
DMA バッファロックフラグ19の示すDMA バッファ5を
ロックしているチャネル、もしくはステップ203のア
ービトレーションで決定したチャネルのソースアクセス
要求信号31、アドレス32、転送データサイズ信号3
3を、それぞれソースアクセス要求信号1021、アド
レス1022、転送データサイズ信号1023として出
力する。
【0047】ステップ207では、バスコントローラ1
003がDMA 転送要求に対する許可をDMA 転送許可信号
1024をアサートしてきた場合、DMA 転送要求生成部
2に対してDMA 転送が受理されたことをDMA 転送許可信
号35をアサートして通知する。ここで、DMA バッファ
フラグ18のいずれかのチャネルでセットされている場
合は、DMA バッファロックフラグ19のDMA 転送許可す
るチャネルのフィールドをセットする。
003がDMA 転送要求に対する許可をDMA 転送許可信号
1024をアサートしてきた場合、DMA 転送要求生成部
2に対してDMA 転送が受理されたことをDMA 転送許可信
号35をアサートして通知する。ここで、DMA バッファ
フラグ18のいずれかのチャネルでセットされている場
合は、DMA バッファロックフラグ19のDMA 転送許可す
るチャネルのフィールドをセットする。
【0048】図5には、DMA バッファ制御部4の制御の
フローチャートを示す。
フローチャートを示す。
【0049】ステップ301では、バスコントローラ1
003からのリードデータアクノリッジ信号1025が
アサートされた場合、DMA バッファへのデータ書き込み
制御のため、ステップ302に遷移し、アサートされて
いない場合には、ステップ304に遷移する。
003からのリードデータアクノリッジ信号1025が
アサートされた場合、DMA バッファへのデータ書き込み
制御のため、ステップ302に遷移し、アサートされて
いない場合には、ステップ304に遷移する。
【0050】ステップ302では、DMA バッファライト
ポインタ15の指すDMA バッファ5の領域にDMA データ
バス10のデータを、リードデータアクノリッジ信号1
025に基づくタイミングで書き込む。
ポインタ15の指すDMA バッファ5の領域にDMA データ
バス10のデータを、リードデータアクノリッジ信号1
025に基づくタイミングで書き込む。
【0051】ステップ303では、書き込んだデータサ
イズの分、DMA バッファライトポインタ15をインクリ
メントする。この際、DMA バッファライトポインタ15
が上限値に達した場合には、ラップアラウンドして0に
戻り、そこから再びインクリメントする。インクリメン
トしてDMA バッファリードポインタ16の1つ手前の値
になった場合にはDMA バッファフルフラグ17をセット
する。
イズの分、DMA バッファライトポインタ15をインクリ
メントする。この際、DMA バッファライトポインタ15
が上限値に達した場合には、ラップアラウンドして0に
戻り、そこから再びインクリメントする。インクリメン
トしてDMA バッファリードポインタ16の1つ手前の値
になった場合にはDMA バッファフルフラグ17をセット
する。
【0052】ステップ304では、バスコントローラ1
003からのライトデータアクノリッジ信号1026が
アサートされた場合、DMA バッファからののデータ読み
だし制御のため、ステップ305に遷移し、アサートさ
れていない場合には、ステップ301に遷移する。
003からのライトデータアクノリッジ信号1026が
アサートされた場合、DMA バッファからののデータ読み
だし制御のため、ステップ305に遷移し、アサートさ
れていない場合には、ステップ301に遷移する。
【0053】ステップ305では、DMA バッファリード
ポインタ16の指すDMA バッファ5の領域のデータを、
ライトデータアクノリッジ信号1026に基づくタイミ
ングで読み出す。
ポインタ16の指すDMA バッファ5の領域のデータを、
ライトデータアクノリッジ信号1026に基づくタイミ
ングで読み出す。
【0054】ステップ306では、読み出したデータサ
イズの分、DMA バッファリードポインタ16をインクリ
メントする。この際、DMA バッファフルフラグ17をク
リアする。DMA バッファリードポインタ16が上限値に
達した場合には、ラップアラウンドして0に戻り、そこ
から再びインクリメントする。
イズの分、DMA バッファリードポインタ16をインクリ
メントする。この際、DMA バッファフルフラグ17をク
リアする。DMA バッファリードポインタ16が上限値に
達した場合には、ラップアラウンドして0に戻り、そこ
から再びインクリメントする。
【0055】図6にはDMA バッファ5の構造について示
したものである。DMA バッファ5のサイズとしては、転
送効率の向上という点から、バス上のデバイスに一度に
転送可能なデータサイズの2倍であることが望ましく、
本発明の目的から、FIFOのようなものではなく、データ
がバッファの複数の番地から読み出せる必要がある。図
6の例ではDMA バッファ5はライトデータセレクタ5
1、リードデータセレクタ52、データバッファ53で
構成され、ライトデータセレクタ51はDMA バッファラ
イトポインタ15の、リードデータセレクタ52はDMA
バッファリードポインタ16の指す番地をセレクトす
る。
したものである。DMA バッファ5のサイズとしては、転
送効率の向上という点から、バス上のデバイスに一度に
転送可能なデータサイズの2倍であることが望ましく、
本発明の目的から、FIFOのようなものではなく、データ
がバッファの複数の番地から読み出せる必要がある。図
6の例ではDMA バッファ5はライトデータセレクタ5
1、リードデータセレクタ52、データバッファ53で
構成され、ライトデータセレクタ51はDMA バッファラ
イトポインタ15の、リードデータセレクタ52はDMA
バッファリードポインタ16の指す番地をセレクトす
る。
【0056】以上のように構成されたDMA コントローラ
1の動作について図7のタイミングチャートを用いて説
明する。
1の動作について図7のタイミングチャートを用いて説
明する。
【0057】図7はチャネル1でソースアドレス0x000
2、デスティネーションアドレス0x0010、転送データサ
イズ24バイトのDMA 転送、チャネル2でソースアドレス
0x1000、デスティネーションアドレス0x1010、転送デー
タサイズ16バイトのDMA 転送を行なう場合の例である。
この例ではチャネル2の優先順位がチャネル1より高
く、DMA バッファ5の容量が32バイト、1回のアクセス
で転送可能なデータサイズは4バイト×4の16バイトとす
る。
2、デスティネーションアドレス0x0010、転送データサ
イズ24バイトのDMA 転送、チャネル2でソースアドレス
0x1000、デスティネーションアドレス0x1010、転送デー
タサイズ16バイトのDMA 転送を行なう場合の例である。
この例ではチャネル2の優先順位がチャネル1より高
く、DMA バッファ5の容量が32バイト、1回のアクセス
で転送可能なデータサイズは4バイト×4の16バイトとす
る。
【0058】まずチャネル1のDMA が先に起動され、DM
A 転送要求生成部2はチャネル1のDMA 転送要求信号3
0、ソースアクセス信号31をアサートし、アドレスに
0x0002、転送データサイズ信号に0x08を出力する。この
要求はDMA 転送要求制御部3によってサンプリングタイ
ミングS1で許可され、4バイト×2回のソースからのDMA
転送が行なわれる。
A 転送要求生成部2はチャネル1のDMA 転送要求信号3
0、ソースアクセス信号31をアサートし、アドレスに
0x0002、転送データサイズ信号に0x08を出力する。この
要求はDMA 転送要求制御部3によってサンプリングタイ
ミングS1で許可され、4バイト×2回のソースからのDMA
転送が行なわれる。
【0059】さらに残りのデータをソースから転送する
ため、DMA 転送要求生成部2はチャネル1のDMA 転送要
求信号30、ソースアクセス要求信号31をアサート
し、アドレスに0x0004、転送データサイズ信号に0x10を
出力する。この要求はサンプリングタイミングS2で許可
され、4バイト×4回のソースからのDMA 転送が行なわれ
る。
ため、DMA 転送要求生成部2はチャネル1のDMA 転送要
求信号30、ソースアクセス要求信号31をアサート
し、アドレスに0x0004、転送データサイズ信号に0x10を
出力する。この要求はサンプリングタイミングS2で許可
され、4バイト×4回のソースからのDMA 転送が行なわれ
る。
【0060】次にチャネル2のDMA が起動され、DMA 転
送要求生成部2はチャネル1のデスティネーションへの
転送要求と、チャネル2のソースからの転送要求を行な
う。ここでチャネル2は16バイトの転送をしたいところ
であるが、DMA バッファ5の残量が8 バイトなので8 バ
イトの転送要求を行なう。具体的には、チャネル1のDM
A 転送要求信号30、ソースアクセス信号31をネゲー
トし、アドレスに0x0010、転送データサイズ信号に0x10
を出力し、チャネル2ではDMA 転送要求信号30、ソー
スアクセス信号31をアサートし、アドレスに0x1000、
転送データサイズ信号に0x08を出力する。サンプリング
タイミングS3でDMA 転送要求制御部3は、優先度の高い
チャネル2の転送を許可し、以後サンプリングタイミン
グS6でチャネル2のデスティネーションへのアクセスを
許可するまで、チャネル2の転送を行なう。
送要求生成部2はチャネル1のデスティネーションへの
転送要求と、チャネル2のソースからの転送要求を行な
う。ここでチャネル2は16バイトの転送をしたいところ
であるが、DMA バッファ5の残量が8 バイトなので8 バ
イトの転送要求を行なう。具体的には、チャネル1のDM
A 転送要求信号30、ソースアクセス信号31をネゲー
トし、アドレスに0x0010、転送データサイズ信号に0x10
を出力し、チャネル2ではDMA 転送要求信号30、ソー
スアクセス信号31をアサートし、アドレスに0x1000、
転送データサイズ信号に0x08を出力する。サンプリング
タイミングS3でDMA 転送要求制御部3は、優先度の高い
チャネル2の転送を許可し、以後サンプリングタイミン
グS6でチャネル2のデスティネーションへのアクセスを
許可するまで、チャネル2の転送を行なう。
【0061】チャネル2の転送完了によってサンプリン
グタイミングS7以降、DMA バッファ5に格納されていた
チャネル1のデータのデスティネーションへの転送が行
なわれ、サンプリングタイミングS8で許可した転送で、
チャネル1についても一連の転送が完了する。
グタイミングS7以降、DMA バッファ5に格納されていた
チャネル1のデータのデスティネーションへの転送が行
なわれ、サンプリングタイミングS8で許可した転送で、
チャネル1についても一連の転送が完了する。
【0062】
【発明の効果】請求項1記載のDMA コントローラによれ
ば、あるチャネルが利用しているDMAバッファの残量
を、より優先度の高いチャネルのDMA 転送用に用いるこ
とによって、チャネル毎にバッファを設けることなくし
かも回路規模の増加をさけるとともに、従来のようにあ
るチャネルが極端に長い時間DMA バッファを利用し続け
ることによって、別のチャネルがチャネルの遷移待ち時
間のペナルティで要求される処理時間をみたせなくなる
ことを防ぎ、転送効率を向上させる効果がある。
ば、あるチャネルが利用しているDMAバッファの残量
を、より優先度の高いチャネルのDMA 転送用に用いるこ
とによって、チャネル毎にバッファを設けることなくし
かも回路規模の増加をさけるとともに、従来のようにあ
るチャネルが極端に長い時間DMA バッファを利用し続け
ることによって、別のチャネルがチャネルの遷移待ち時
間のペナルティで要求される処理時間をみたせなくなる
ことを防ぎ、転送効率を向上させる効果がある。
【0063】請求項2記載のDMA コントローラによれ
ば、請求項1と同様な効果のほか、チャネルが利用して
るDMA バッファの残量があるチャネル行なおうとする転
送データサイズより少ない場合に、DMA バッファの残量
でDMA 転送可能な複数回の転送に分割して行なうこと
で、DMA バッファの残量が少ないために、DMA 転送が行
なえず、チャネルの遷移待ち時間のペナルティが発生す
ることを防ぐ効果がある。
ば、請求項1と同様な効果のほか、チャネルが利用して
るDMA バッファの残量があるチャネル行なおうとする転
送データサイズより少ない場合に、DMA バッファの残量
でDMA 転送可能な複数回の転送に分割して行なうこと
で、DMA バッファの残量が少ないために、DMA 転送が行
なえず、チャネルの遷移待ち時間のペナルティが発生す
ることを防ぐ効果がある。
【図1】本発明のDMA コントローラ1の構成図である。
【図2】本発明のDMA コントローラ1を用いた情報シス
テムの構成図である。
テムの構成図である。
【図3】DMA 転送要求生成部2の制御フローチャートで
ある。
ある。
【図4】DMA 転送要求制御部3の制御フローチャートで
ある。
ある。
【図5】DMA バッファ制御部4の制御フローチャートで
ある。
ある。
【図6】DMA バッファ5の構成図である。
【図7】DMA コントローラ1のDMA 転送動作を示すタイ
ミングチャートである。
ミングチャートである。
【図8】従来のDMA コントローラ情報システムの構成図
である。
である。
【図9】DMA バッファを利用し続けるDMA 転送の例を示
したアドレス図である。
したアドレス図である。
1 DMA コントローラ 2 DMA 転送要求生成部 3 DMA 転送要求制御部 4 DMA バッファ制御部 5 DMA バッファ 6 制御レジスタ 10 DMA データバス 11 制御バス 15 DMA バッファライトポインタ 16 DMA バッファリードポインタ 17 DMA バッファフルフラグ 18 DMA バッファフラグ 30 DMA 転送要求信号 31 ソースアクセス要求信号 32 アドレス 33 転送データサイズ信号 35 DMA 転送許可信号 1020 DMA 転送要求信号 1021 ソースアクセス要求信号 1022 アドレス 1023 転送データサイズ信号 1024 DMA 転送許可信号 1025 リードデータアクノリッジ 1026 ライトデータアクノリッジ
Claims (2)
- 【請求項1】 デバイス間でDMA 転送されるデータを、
複数バイトのデータサイズのDMA バッファに一時的に退
避させることによってDMA 転送を行なうDMAコントロー
ラであって、前記DMA バッファと、複数のチャネルから
のDMA 転送要求信号に基づいて、前記DMA バッファを利
用するチャネルを前記複数のチャネルから決定するDMA
転送要求制御部と、前記DMA バッファへのデータアクセ
ス制御を行なうDMA バッファ制御部とを備え、前記DMA
バッファを利用している前記チャネルより、優先度の高
いチャネルからの転送要求があった場合には、前記DMA
転送要求制御部が、前記DMA バッファにデータ格納可能
な容量があれば、前記優先度の高いチャネルに対し前記
DMA バッファを利用してDMA 転送することを許可するこ
とを特徴とするDMA コントローラ。 - 【請求項2】 優先度の高いチャネルの要求する転送デ
ータサイズが、DMAバッファにデータ格納可能な容量を
上回る場合に、前記優先度の高いチャネルの要求に対応
した要求を、前記DMA バッファにデータ格納可能な転送
データサイズのDMA 転送制御を複数回に分けて前記DMA
転送要求制御部に対し行なうDMA 転送要求生成部を有す
る請求項1記載のDMA コントローラ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11015647A JP2000215154A (ja) | 1999-01-25 | 1999-01-25 | Dmaコントロ―ラ |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11015647A JP2000215154A (ja) | 1999-01-25 | 1999-01-25 | Dmaコントロ―ラ |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2000215154A true JP2000215154A (ja) | 2000-08-04 |
Family
ID=11894522
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP11015647A Pending JP2000215154A (ja) | 1999-01-25 | 1999-01-25 | Dmaコントロ―ラ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2000215154A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007199815A (ja) * | 2006-01-24 | 2007-08-09 | Megachips Lsi Solutions Inc | メモリ制御装置およびメモリ制御方法 |
| JP2009211682A (ja) * | 2008-02-07 | 2009-09-17 | Yokogawa Electric Corp | データ転送装置及び半導体試験装置 |
| CN103106164A (zh) * | 2011-11-09 | 2013-05-15 | 深圳市德赛微电子技术有限公司 | 一种高效dma控制器 |
| CN114116553A (zh) * | 2021-11-30 | 2022-03-01 | 海光信息技术股份有限公司 | 数据处理装置、方法以及系统 |
-
1999
- 1999-01-25 JP JP11015647A patent/JP2000215154A/ja active Pending
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007199815A (ja) * | 2006-01-24 | 2007-08-09 | Megachips Lsi Solutions Inc | メモリ制御装置およびメモリ制御方法 |
| JP2009211682A (ja) * | 2008-02-07 | 2009-09-17 | Yokogawa Electric Corp | データ転送装置及び半導体試験装置 |
| CN103106164A (zh) * | 2011-11-09 | 2013-05-15 | 深圳市德赛微电子技术有限公司 | 一种高效dma控制器 |
| CN114116553A (zh) * | 2021-11-30 | 2022-03-01 | 海光信息技术股份有限公司 | 数据处理装置、方法以及系统 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3598321B2 (ja) | 異なる周波数で動作するバス間でやりとりされるバッファリングデータ | |
| US8683093B2 (en) | Memory system having high data transfer efficiency and host controller | |
| US7171526B2 (en) | Memory controller useable in a data processing system | |
| US20040107265A1 (en) | Shared memory data transfer apparatus | |
| JPH04306748A (ja) | 情報処理装置 | |
| US6633926B1 (en) | DMA transfer device capable of high-speed consecutive access to pages in a memory | |
| US6782433B2 (en) | Data transfer apparatus | |
| JPH11194995A (ja) | Dram内蔵マイクロプロセッサ及びdram内蔵マイクロプロセッサのデータ転送方法 | |
| US7774513B2 (en) | DMA circuit and computer system | |
| US7185122B2 (en) | Device and method for controlling data transfer | |
| US20080016296A1 (en) | Data processing system | |
| JP2000215154A (ja) | Dmaコントロ―ラ | |
| US5889948A (en) | Apparatus and method for inserting an address in a data stream through a FIFO buffer | |
| JPH0696007A (ja) | Dma転送方式 | |
| US7228367B2 (en) | Direct memory access controller for carrying out data transfer by determining whether or not burst access can be utilized in an external bus and access control method thereof | |
| JP3599692B2 (ja) | データ伝送装置 | |
| JPH01125644A (ja) | データ転送装置 | |
| JPH06250970A (ja) | メモリ制御装置 | |
| EP1067555B1 (en) | Memory controller and an information processing apparatus having such a memory controller | |
| JP3270149B2 (ja) | データ転送装置 | |
| JP2004220486A (ja) | メモリ制御装置 | |
| JP2550493B2 (ja) | 入出力制御装置 | |
| JP2966038B2 (ja) | ディジタルデータ処理ユニット調停装置及び方法 | |
| JP2001188749A (ja) | バスコントローラ | |
| JP2001229074A (ja) | メモリ制御装置と情報処理装置及びメモリ制御チップ |