JP2003196225A - Dma制御装置 - Google Patents
Dma制御装置Info
- Publication number
- JP2003196225A JP2003196225A JP2001394095A JP2001394095A JP2003196225A JP 2003196225 A JP2003196225 A JP 2003196225A JP 2001394095 A JP2001394095 A JP 2001394095A JP 2001394095 A JP2001394095 A JP 2001394095A JP 2003196225 A JP2003196225 A JP 2003196225A
- Authority
- JP
- Japan
- Prior art keywords
- destination
- address
- area
- source
- data
- 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
再設定に時間的制約があるようなシステムにおいても転
送データの欠落を防ぐ。 【解決手段】ソース領域の読み出しアドレスとディステ
ィネーション領域の書き込みアドレスの少なくとも一方
をリングバッファ方式で制御するために、ソース領域の
開始アドレスおよび終了アドレスの指定手段、読み出し
アドレスポインタ、ディスティネーション領域の開始ア
ドレスおよび終了アドレスの指定手段、書き込みアドレ
スポインタをDMA制御装置に備え、ソース領域の読み
出しアドレスポインタがソース領域の終了アドレスに一
致すると自動的にソース領域の開始アドレスに変更し、
ディスティネーション領域の書き込みアドレスポインタ
がディスティネーション領域の終了アドレスに一致する
と自動的にディスティネーション領域の開始アドレスに
変更する。
Description
転送制御に用いるDMA制御装置に関する。
転送は、マイクロコンピュータシステム等において、周
辺装置と記憶装置間のデータ転送をプログラムを介さず
に行う方式で、システムバスを使用してデータ転送を高
速に行うことができる。従来、DMAデータ転送を効率
よく処理するための専用ハードウェアとしてDMA制御
装置が使用されている。
ブロック図である。図7を用いて従来のDMAデータ転
送の概要を説明する。DMA制御装置700は、データ
転送制御装置710、ソース側制御装置720、ディス
ティネーション側制御装置730、バス要求装置74
0、割り込み信号生成装置750で構成される。
御装置720、ディスティネーション側制御装置73
0、バス要求装置740を管理してデータ転送を行う。
そのために、データ転送制御装置710は、転送バイト
数管理711を備え、外部信号715を受け取り、ソー
ス側/ディスティネーション側のバス幅、転送データ
数、転送モード(1語転送、バースト転送など)、DM
A起動要因の制御を行う。
ートアドレス721とソース側読み出しポインタ722
を用いて、読み出し先であるソース領域のアドレスを管
理する。ディスティネーション側制御装置730は、デ
ィスティネーション側スタートアドレス731とディス
ティネーション側書き込みポインタ732を用いて、書
き込み先であるディスティネーション領域のアドレスを
管理する。バス要求装置740は、DMAデータ転送に
際して、バス要求信号741によりCPUなどに通知
し、アドレスバスとデータバスを取得する。
いてデバイスAからデバイスBにデータ転送を行う場合
について説明する。まず、データ転送制御装置710
に、ソース側/ディスティネーション側のバス幅、転送
データ数、転送モード、DMA起動要因の設定を行う。
ポインタの制御方法(スタートアドレスから固定、イン
クリメント、デクリメント)を設定し、ディスティネー
ション側制御装置730に書き込みポインタの制御方法
(スタートアドレスから固定、インクリメント、デクリ
メント)を設定する。
にデバイスAのソース領域の先頭アドレスを設定し、デ
ィスティネーション側スタートアドレス731にデバイ
スBのディスティネーション領域の先頭アドレスを設定
する。データ転送制御装置710の転送バイト数管理7
11には転送バイト数を設定する。
側制御装置720はソース側スタートアドレス721を
ソース側読み出しポインタ722にロードし、ディステ
ィネーション側制御装置730はディスティネーション
側スタートアドレス731をディスティネーション側書
き込みポインタ732にロードする。
に応じて、バス要求装置740を制御し、ソース側読み
出しポインタ722が示すソース領域のデータをディス
ティネーション側書き込みポインタ732が示すディス
ティネーション領域に転送する。データが転送される度
に、ソース側制御装置720は、データ転送制御装置7
10の指示に従って、自動的にソース側読み出しポイン
タ722を更新する。同様に、ディスティネーション側
制御装置730も、データ転送制御装置710の指示に
従って、自動的にディスティネーション側書き込みポイ
ンタ732を更新する。
数分のデータ転送がすべて終了すると、データ転送制御
装置710は、割り込み信号生成装置750が管理する
割り込み要求信号751により、CPUなどにデータ転
送の終了を通知する。この通知を受けた後で再度DMA
データ転送を行う場合は、DMA制御装置700に対し
制御情報の再設定を行う。
A制御装置を使用することにより、装置間のデータ転送
を高速に、かつ効率よく処理することができる。しかし
ながら、リアルタイムデータ等の転送のように、DMA
データ転送の制御情報の再設定に時間的制約があるよう
なシステムにおいては、ソフトウェアでDMAデータ転
送の制御情報の再設定を行うことは大変困難である。
タをDMAデータ転送によりマイクロコンピュータを経
由してCODECに送出する場合、あるいは逆に、CO
DECから音声データを受け取り、DMAデータ転送に
より外部メモリに格納する場合、指定バイト数のデータ
転送が終了する度にDMAデータ転送の制御情報の再設
定を行わなければならないが、その処理が制約時間を越
えてしまうと音声データが途中で欠落することになり、
音声の再生時に音とびが発生する。
で、DMA方式のデータ転送において、制御情報の再設
定に時間的制約があるようなシステムにおいても、転送
データに欠落が発生することを防ぐことができ、リアル
タイムデータ等のデータ転送に使用することができるD
MA制御装置を提供することを目的とする。
に、本発明の請求項1に係るDMA制御装置は、ソース
側のソース領域の読み出しアドレスとディスティネーシ
ョン側のディスティネーション領域の書き込みアドレス
の少なくとも一方をリングバッファ方式で制御する手段
を具備する。
ソース領域あるいはディスティネーション領域あるいは
その双方をリングバッファ方式で制御することにより、
制御情報の再設定を行わずDMAデータ転送を連続して
行うことができるため、制御情報の再設定に時間的制約
があるようなシステムにおいても、転送データに欠落が
発生することを防ぐことができる。
は、請求項1記載のDMA制御装置において、前記リン
グバッファ方式で制御する手段が、ソース側の読み出し
アドレスを制御する場合は、ソース領域の開始アドレス
およびソース領域の終了アドレスを指定する手段と、ソ
ース領域の読み出しアドレスポインタとを具備し、前記
ソース領域の読み出しアドレスポインタが前記ソース領
域の終了アドレスに一致すると自動的に前記ソース領域
の読み出しアドレスポインタを前記ソース領域の開始ア
ドレスに変更し、ディスティネーション側の書き込みア
ドレスを制御する場合は、ディスティネーション領域の
開始アドレスおよびディスティネーション領域の終了ア
ドレスを指定する手段と、ディスティネーション領域の
書き込みアドレスポインタとを具備し、前記ディスティ
ネーション領域の書き込みアドレスポインタが前記ディ
スティネーション領域の終了アドレスに一致すると自動
的に前記ディスティネーション領域の書き込みアドレス
ポインタを前記ディスティネーション領域の開始アドレ
スに変更するものである。
ソース領域あるいはディスティネーション領域あるいは
その双方をリングバッファ方式で制御するために必要な
ハードウェアを備え、ソース領域の読み出しアドレスポ
インタあるいはディスティネーション領域の書き込みア
ドレスポインタが自動的に更新されることにより、制御
情報の再設定を行わずDMAデータ転送を連続して行う
ことができるため、制御情報の再設定に時間的制約があ
るようなシステムにおいても、転送データに欠落が発生
することを防ぐことができる。
は、請求項1または2記載のDMA制御装置において、
ソース側の読み出しアドレスを制御する場合は、ソース
領域のデータ量の下限値を指定する手段を具備し、ソー
ス領域にバッファされたデータ量が前記ソース領域のデ
ータ量の下限値を下回ったあるいは一致した場合は外部
に対してデータ量の不足を通知し、ディスティネーショ
ン側の書き込みアドレスを制御する場合はディスティネ
ーション領域のデータ量の上限値を指定する手段を具備
し、ディスティネーション領域にバッファされたデータ
量が前記ディスティネーション領域のデータ量の上限値
を上回ったあるいは一致した場合は外部に対してデータ
量の過剰を通知するものである。
されるデータを保証するために、バッファの内容が確定
した時点で、その度にDMAデータ転送を起動してい
る。請求項1または2記載のDMA制御装置のような手
法を採用すると、バッファの状態を監視せずにDMAデ
ータ転送を連続して行うことができるため、使用される
システムの状況によっては、バスのトラフィックが限界
を越えたりソース側やディスティネーション側で転送デ
ータの処理に遅れを生じたりした場合に転送データの欠
落が発生することが危惧される。
ソース領域のデータ量の下限値あるいはディスティネー
ション領域のデータ量の上限値を指定し、ソース領域に
バッファされたデータ量が前記下限値を下回ったあるい
は一致した場合はデータ量の不足を通知し、ディスティ
ネーション領域にバッファされたデータ量が前記上限値
を上回った場合はデータ量の過剰を通知することによ
り、制御情報の再設定を行わず、バッファの状態を監視
せずにDMAデータ転送を連続して行う際にも、バッフ
ァされたデータ量の過不足状態が発生した場合には状況
に応じた処理を実施することができるため、リアルタイ
ムデータ等のデータ転送において、バスのトラフィック
状況や転送データの処理状況の問題が発生した場合にも
転送データの欠落を防ぐことができる。
は、請求項1から3のうちいずれか1項記載のDMA制
御装置において、ソース側の読み出しアドレスを制御す
る場合はソース領域の書き込みアドレスポインタを具備
し、ディスティネーション側の書き込みアドレスを制御
する場合はディスティネーション領域の読み出しアドレ
スポインタを具備するものである。
は、請求項4記載のDMA制御装置において、前記リン
グバッファ方式で制御する手段は、ソース側の読み出し
アドレスおよびディスティネーション側の書き込みアド
レスの双方を制御し、ソース側の書き込みデータレジス
タおよびディスティネーション側の読み出しデータレジ
スタを具備し、前記ソース側の書き込みデータレジスタ
に書き込まれたデータは前記ソース領域の書き込みアド
レスポインタが指すアドレスに書き込み、前記ディステ
ィネーション側の読み出しデータレジスタからの読み出
すデータは前記ディスティネーション領域の読み出しア
ドレスポインタが指すアドレスから読み出すものであ
る。
ソース側の書き込みデータレジスタに書き込まれたデー
タはソース領域にポインタに従って書き込まれ、ディス
ティネーション側の読み出しデータレジスタからの読み
出すデータはディスティネーション領域からポインタに
従って読み出されるため、ソース側の書き込みデータレ
ジスタとディスティネーション側の読み出しデータレジ
スタとを、その間のソース領域とディスティネーション
領域の間のDMAデータ転送を意識せずに、FIFOメ
モリのように使用することができる。例えば、外部メモ
リをディスティネーション領域に指定することにより、
大容量のFIFOメモリのように使用することができ
る。
は、請求項5記載のDMA制御装置において、リセット
信号入力により、前記ソース領域の読み出しアドレスポ
インタおよび前記ソース領域の書き込みアドレスポイン
タは前記ソース領域の開始アドレスにリセットされ、前
記ディスティネーション領域の書き込みアドレスポイン
タおよび前記ディスティネーション領域の読み出しアド
レスポインタは前記ディスティネーション領域の開始ア
ドレスにリセットされるものである。
リセット信号入力により容易に請求項5記載のDMA制
御装置を初期化することができる。
は、請求項1から6のうちいずれか1項記載のDMA制
御装置において、ソース領域およびディスティネーショ
ン領域は、それぞれ単一のリングバッファを使用する代
わりに、それぞれ複数のバッファをリング構造に構成し
て使用し、前記複数のバッファにそれぞれの開始アドレ
スおよび終了アドレスを備える場合は、前記ソース領域
の読み出しアドレスポインタが読み出し中のバッファの
終了アドレスに一致すると自動的に前記ソース領域の読
み出しアドレスポインタを次にリンクされたバッファの
開始アドレスに変更し、前記ディスティネーション領域
の書き込みアドレスポインタが書き込み中のバッファの
終了アドレスに一致すると自動的に前記ディスティネー
ション領域の書き込みアドレスポインタを次にリンクさ
れたバッファの開始アドレスに変更するものである。ま
た、リセット信号入力により前記ソース領域の読み出し
アドレスポインタおよび前記ソース領域の書き込みアド
レスポインタをリセットする場合は、前記ソース領域の
いずれかあるいは特定のバッファの開始アドレスにリセ
ットされ、リセット信号入力により前記ディスティネー
ション領域の書き込みアドレスポインタおよび前記ディ
スティネーション領域の読み出しアドレスポインタをリ
セットする場合は、前記ディスティネーション領域のい
ずれかあるいは特定のバッファの開始アドレスにリセッ
トされるものである。
それぞれリング構造に構成された複数のバッファをソー
ス領域およびディスティネーション領域とすることによ
り、個々のバッファのサイズやメモリ上の配置における
自由度が増し、不連続な領域でも連続したソース領域あ
るいはディスティネーション領域として使用することが
できるため、メモリ領域を有効活用することができる。
は、請求項7記載のDMA制御装置において、前記リン
グ構造に構成された複数のバッファにおけるバッファの
切り替え時に、外部に対してバッファの切り替えの発生
を通知するものである。
バッファの切り替え時に外部通知信号によりプロセッサ
割り込みなどを起すことができ、必要に応じてソフトウ
ェアがバッファの管理における追加的な制御を行うこと
ができる。
は、請求項1から8のうちいずれか1項記載のDMA制
御装置を搭載する半導体集積回路であり、これをDMA
方式のデータ転送制御に用いることにより、制御情報の
再設定に時間的制約があるようなシステムにおいても、
転送データに欠落が発生することを防ぐことができ、効
率のよいリアルタイムデータ等のデータ転送システムを
構成することができる。
て図面を参照して説明する。 (実施の形態1)図1は本発明の実施の形態1に係るD
MA制御装置の構成を示すブロック図である。図1にお
いて、DMA制御装置100は、データ転送制御装置1
10、ソース側制御装置120、ディスティネーション
側制御装置130、バス要求装置140、割り込み信号
生成装置150で構成される。
御装置120、ディスティネーション側制御装置13
0、バス要求装置140を制御してデータ転送を行う。
そのために、データ転送制御装置110は、転送バイト
数管理111を備え、外部信号115を受け取り、ソー
ス側/ディスティネーション側のバス幅、転送データ
数、転送モード(1語転送、バースト転送など)、DM
A起動要因の制御を行う。
ートアドレス121とソース側読み出しポインタ122
およびソース側エンドアドレス123を用いて、読み出
し先であるソース領域をリングバッファ方式で管理す
る。ディスティネーション側制御装置130は、ディス
ティネーション側スタートアドレス131とディスティ
ネーション側書き込みポインタ132およびディスティ
ネーション側エンドアドレス133を用いて、書き込み
先であるディスティネーション領域をリングバッファ方
式で管理する。バス要求装置140は、DMAデータ転
送に際して、バス要求信号141によりCPUなどに通
知し、アドレスバスとデータバスを取得する。
作により、リングバッファ方式の制御方法を説明するフ
ローチャートである。図2を用いて、ソース側制御装置
120におけるリングバッファ方式の制御動作を説明す
る。
ス側/ディスティネーション側のバス幅、転送データ
数、転送モード、DMA起動要因の設定が行われ、DM
Aデータ転送が起動される。ソース側制御装置120が
データ転送制御装置110からDMAデータ転送の起動
を要求されると、図2において、ソース側制御装置12
0はステップS200に移行し、ソース側スタートアド
レス121をソース側読み出しポインタ122にロード
する。次に、ステップS210に遷移し、データ転送が
行われるのを待つ。
0に移行し、データ転送制御装置110の指示に従っ
て、ソース側読み出しポインタ122を更新する。更新
後、ステップS230に移行し、ソース側読み出しポイ
ンタ122をソース側エンドアドレス123と比較し、
アドレスが一致しない場合は再びステップS220に移
行し、データ転送が行われるのを待つ。
0に移行し、ソース側スタートアドレス121をソース
側読み出しポインタ122にロードする。その後、ステ
ップS220に遷移し、再びデータ転送が行われるのを
待つ。
おいても、ソース側制御装置120と同様の制御が行わ
れる。このようにして、転送バイト数管理111で管理
するバイト数分のデータ転送がすべて終了すると、デー
タ転送制御装置110は、割り込み信号生成装置150
が管理する割り込み要求信号151により、CPUなど
にデータ転送の終了を通知する。
て、転送バイト数管理111に依存しない設定にするこ
とで、永遠にデータ転送を行うことが可能である。
領域およびディスティネーション領域をリングバッファ
方式で管理することができ、制御情報の再設定を行わず
DMAデータ転送を連続して行うことができるため、制
御情報の再設定に時間的制約があるようなシステムにお
いても、転送データに欠落が発生することを防ぐことが
できる。
態2に係るDMA制御装置の構成を示すブロック図であ
る。図3において、DMA制御装置300は、データ転
送制御装置310、ソース側制御装置320、ディステ
ィネーション側制御装置330、バス要求装置340、
割り込み信号生成装置350で構成される。
御装置320、ディスティネーション側制御装置33
0、バス要求装置340を制御してデータ転送を行う。
そのために、データ転送制御装置310は、転送バイト
数管理311、ソース側オールモストエンプティトリガ
312、ディスティネーション側オールモストフルトリ
ガ313を備え、外部信号315を受け取り、ソース側
/ディスティネーション側のバス幅、転送データ数、転
送モード(1語転送、バースト転送など)、DMA起動
要因の制御を行う。
ートアドレス321とソース側読み出しポインタ322
およびソース側エンドアドレス323を用いて、読み出
し先であるソース領域をリングバッファ方式で管理す
る。さらに、ソース側書き込みポインタ324、ソース
側データ量325を備え、ソース側のデータ量不足状態
を監視する。
は、ディスティネーション側スタートアドレス331と
ディスティネーション側書き込みポインタ332および
ディスティネーション側エンドアドレス333を用い
て、書き込み先であるディスティネーション領域をリン
グバッファ方式で管理する。さらに、ディスティネーシ
ョン側読み出しポインタ334、ディスティネーション
側データ量335を備え、ディスティネーション側のデ
ータ量過剰状態を監視する。
けるバス要求装置140と同じで、DMAデータ転送に
際して、バス要求信号341によりCPUなどに通知
し、アドレスバスとデータバスを取得する。
行われる。まず、データ転送制御装置310に、ソース
側/ディスティネーション側のバス幅、転送データ数、
転送モード、DMA起動要因の設定が行われ、DMAデ
ータ転送が起動される。
側制御装置320およびディスティネーション側制御装
置330は、それぞれソース領域およびディスティネー
ション領域をリングバッファ方式で管理し、ソース領域
からディスティネーション領域へのDMAデータ転送が
行われる。
領域に対するデータの書き込みアドレスを管理するため
に使用され、ソース領域へのデータの書き込みが行われ
ると次のデータ書き込みアドレスに更新される。
ース側書き込みポインタ324のいずれかが更新される
と、そのタイミングで、ソース側スタートアドレス32
1、ソース側エンドアドレス323、ソース側読み出し
ポインタ322、ソース側書き込みポインタ324を用
いて、ソース領域にバッファされている転送可能なデー
タ量を算出し、これをソース側データ量325に反映さ
せる。
12には、ソース領域のデータ量の下限値をあらかじめ
設定しておく。データ転送制御装置310は、ソース側
データ量325を常時監視し、この値がソース側オール
モストエンプティトリガ312に設定された下限値以下
になった場合は、割り込み信号生成装置350が管理す
る割り込み要求信号151により、ソース領域のデータ
量不足状態をCPUなどに通知する。
334は、ディスティネーション領域からのデータの読
み出しアドレスを管理するために使用され、ディスティ
ネーション領域からのデータの読み出しが行われると次
のデータ読み出しアドレスに更新される。
332またはディスティネーション側読み出しポインタ
334のいずれかが更新されると、そのタイミングで、
ディスティネーション側スタートアドレス331、ディ
スティネーション側エンドアドレス333、ディスティ
ネーション側書き込みポインタ332、ディスティネー
ション側読み出しポインタ334を用いて、ディスティ
ネーション領域にバッファされている読み出し可能なデ
ータ量を算出し、これをディスティネーション側データ
量325に反映させる。
トリガ313には、ディスティネーション領域のデータ
量の上限値をあらかじめ設定しておく。データ転送制御
装置310は、ディスティネーション側データ量335
を常時監視し、この値がディスティネーション側オール
モストフルトリガ313に設定された上限値以上になっ
た場合は、割り込み信号生成装置350が管理する割り
込み要求信号151により、ディスティネーション領域
のデータ量過剰状態をCPUなどに通知する。
報の再設定を行わず、バッファの状態を監視せずにDM
Aデータ転送を連続して行う際にも、バッファされたデ
ータ量の過不足状態が発生した場合には、その発生を割
り込みによりソフトウェアに通知することができるた
め、状況に応じた処理を実施することができ、バスのト
ラフィック状況や転送データの処理状況の問題が発生し
た場合にも転送データの欠落を防ぐことができる。
ティネーション領域として、それぞれ単一のリングバッ
ファを使用する代わりに、それぞれ複数のバッファをリ
ング構造に構成して使用することもできる。図4は、複
数のバッファをリング構造に構成してソース領域あるい
はディスティネーション領域として使用する例として、
2面のバッファを使用したデータ領域構成を示す図であ
る。このようなバッファ構成を採用する場合を実施の形
態3として説明する。
制御装置の構成を示すブロック図である。図5におい
て、DMA制御装置500は、データ転送制御装置51
0、ソース側制御装置520、ディスティネーション側
制御装置530、バス要求装置540、割り込み信号生
成装置550で構成される。
御装置520、ディスティネーション側制御装置53
0、バス要求装置540を制御してデータ転送を行う。
そのために、データ転送制御装置510は、転送バイト
数管理511を備え、外部信号515を受け取り、ソー
ス側/ディスティネーション側のバス幅、転送データ
数、転送モード(1語転送、バースト転送など)、DM
A起動要因の制御を行う。
ートアドレス1(521)、ソース側エンドアドレス1
(522)、ソース側スタートアドレス2(523)、
ソース側エンドアドレス2(524)、ソース側読み出
しポインタ525を用いて、図4に示すような互いにリ
ンクされた2面のバッファで構成されるソース領域を管
理する。
は、ディスティネーション側スタートアドレス1(53
1)、ディスティネーション側エンドアドレス1(53
2)、ディスティネーション側スタートアドレス2(5
33)、ディスティネーション側エンドアドレス2(5
34)、ディスティネーション側書き込みポインタ53
5を用いて、図4に示すような互いにリンクされた2面
のバッファで構成されるディスティネーション領域を管
理する。
けるバス要求装置140と同じで、DMAデータ転送に
際して、バス要求信号541によりCPUなどに通知
し、アドレスバスとデータバスを取得する。
行われる。まず、データ転送制御装置510に、ソース
側/ディスティネーション側のバス幅、転送データ数、
転送モード、DMA起動要因の設定が行われ、DMAデ
ータ転送が起動される。
側制御装置520およびディスティネーション側制御装
置530は、それぞれソース領域およびディスティネー
ション領域を互いにリンクされた2面のバッファで管理
し、ソース領域からディスティネーション領域へのDM
Aデータ転送が行われる。
み出しポインタ525がソース側エンドアドレス1(5
22)に一致すると、ソース側スタートアドレス2(5
23)をロードしてソース側読み出しポインタ525を
変更する。また、ソース側読み出しポインタ525がソ
ース側エンドアドレス2(524)に一致すると、ソー
ス側スタートアドレス1(521)をロードしてソース
側読み出しポインタ525を変更する。これにより、ソ
ース領域の2面のバッファが互いにリンクされて切り替
えられる。
ポインタ535がディスティネーション側エンドアドレ
ス1(532)に一致すると、ディスティネーション側
スタートアドレス2(533)をロードしてディスティ
ネーション側書き込みポインタ525を変更する。ま
た、ディスティネーション側書き込みポインタ535が
ディスティネーション側エンドアドレス2(534)に
一致すると、ディスティネーション側スタートアドレス
1(531)をロードしてディスティネーション側書き
込みポインタ525を変更する。これにより、ディステ
ィネーション領域の2面のバッファが互いにリンクされ
て切り替えられる。
ン領域のバッファ切り替え時に、割り込み信号生成装置
550が管理する割り込み要求信号551により、CP
Uなどにバッファの切り替えを通知することもでき、必
要に応じてソフトウェアがバッファの管理における追加
的な制御を行うことができる。
ディスティネーション領域として、互いにリンクされた
2面のバッファを用いる例を示したが、これを拡張し
て、3面以上の複数のバッファをリング構造に構成した
ものにすることもできる。その管理方法としては、例え
ば、順序付けられた複数のスタートアドレスとエンドア
ドレスの組を用いることができる。
のバッファをソース領域およびディスティネーション領
域とすることにより、個々のバッファのサイズやメモリ
上の配置における自由度が増し、不連続な領域でも連続
したソース領域あるいはディスティネーション領域とし
て使用することができるため、メモリ領域を有効活用す
ることができる。
態4に係るDMA制御装置の構成を示すブロック図であ
る。図6において、DMA制御装置600は、データ転
送制御装置610、ソース側制御装置620、ディステ
ィネーション側制御装置630、バス要求装置640、
割り込み信号生成装置650、リセット装置660で構
成される。
御装置620、ディスティネーション側制御装置63
0、バス要求装置640を制御してデータ転送を行う。
そのために、データ転送制御装置610は、転送バイト
数管理611を備え、外部信号615を受け取り、ソー
ス側/ディスティネーション側のバス幅、転送データ
数、転送モード(1語転送、バースト転送など)、DM
A起動要因の制御を行う。
ース領域とディスティネーション領域を連結してFIF
Oメモリのように使用することができる機能を実現する
ために、ソース側の書き込みデータレジスタ612およ
びディスティネーション側の読み出しデータレジスタ6
13を備える。
ートアドレス621とソース側読み出しポインタ622
およびソース側エンドアドレス623を用いて、読み出
し先であるソース領域をリングバッファ方式で管理す
る。さらに、ソース領域に対するデータの書き込みアド
レスを管理するソース側書き込みポインタ624を備え
る。
は、ディスティネーション側スタートアドレス631と
ディスティネーション側書き込みポインタ632および
ディスティネーション側エンドアドレス633を用い
て、書き込み先であるディスティネーション領域をリン
グバッファ方式で管理する。さらに、ディスティネーシ
ョン領域からのデータの読み出しアドレスを管理するデ
ィスティネーション側読み出しポインタ634を備え
る。
けるバス要求装置140と同じで、DMAデータ転送に
際して、バス要求信号641によりCPUなどに通知
し、アドレスバスとデータバスを取得する。
セットを要求されると、リセット信号661により、ソ
ース側読み出しポインタ622およびソース側書き込み
ポインタ624をソース側スタートアドレスに初期化
し、ディスティネーション側書き込みポインタ632お
よびディスティネーション側読み出しポインタ634を
ディスティネーション側スタートアドレスに初期化す
る。
行われる。まず、データ転送制御装置610に、ソース
側/ディスティネーション側のバス幅、転送データ数、
転送モード、DMA起動要因の設定が行われ、DMAデ
ータ転送が起動される。
側制御装置620およびディスティネーション側制御装
置630は、それぞれソース領域およびディスティネー
ション領域をリングバッファ方式で管理し、ソース領域
からディスティネーション領域へのDMAデータ転送が
行われる。
して、ソース側の書き込みデータレジスタ612、ディ
スティネーション側の読み出しデータレジスタ613、
ソース側書き込みポインタ624、ディスティネーショ
ン側読み出しポインタ634を使用して、ソース領域と
ディスティネーション領域を連結してFIFOメモリの
ように使用することができる機能を実現する。
612にデータを書き込まれると、データ転送制御装置
610は、DMAデータ転送により、書き込みレジスタ
612に書き込まれたデータをソース側書き込みポイン
タ624が指すソース領域のアドレスに書き込む。ソー
ス領域への書き込みによりソース側書き込みポインタ6
24は更新される。
データレジスタ613からデータが読み出されると、デ
ータ転送制御装置610は、DMAデータ転送により、
ディスティネーション側読み出しポインタ634が指す
ディスティネーション領域のアドレスからデータを読み
出し、ディスティネーション側の読み出しデータレジス
タ613格納する。ディスティネーション領域からの読
み出しによりディスティネーション側読み出しポインタ
634は更新される。
みデータレジスタとディスティネーション側の読み出し
データレジスタとを、その間のソース領域とディスティ
ネーション領域の間のDMAデータ転送を意識せずに、
FIFOメモリのように使用することができる。例え
ば、外部メモリをディスティネーション領域に指定する
ことにより、大容量のFIFOメモリのように使用する
ことができる。
DMA方式のデータ転送制御に用いるDMA制御装置に
おいて、ソース領域あるいはディスティネーション領域
あるいはその双方をリングバッファ方式で制御すること
により、制御情報の再設定を行わずDMAデータ転送を
連続して行うことができるため、制御情報の再設定に時
間的制約があるようなシステムにおいても、転送データ
に欠落が発生することを防ぐことができる
ータ量の過不足状態を監視する機能をDMA制御装置に
備えることにより、制御情報の再設定を行わず、ソフト
ウェアからバッファの状態を監視せずにDMAデータ転
送を連続して行う際にも、バッファされたデータ量の過
不足状態が発生した場合には状況に応じた処理を実施す
ることができるため、バスのトラフィック状況や転送デ
ータの処理状況の問題が発生した場合にも転送データ欠
落を防ぐことができる。
された複数のバッファをソース領域およびディスティネ
ーション領域とすることにより、個々のバッファのサイ
ズやメモリ上の配置における自由度が増し、不連続な領
域でも連続したソース領域あるいはディスティネーショ
ン領域として使用することができるため、メモリ領域を
有効活用することができる。
構成を示すブロック図である。
ーチャートである。
構成を示すブロック図である。
す図である。
構成を示すブロック図である。
構成を示すブロック図である。
である。
装置 110、310、510、610、710 データ転送
制御装置 111、311、511、611、711 転送バイト
数管理 115、315、515、615、715 外部信号 120、320、520、620、720 ソース側制
御装置 121、321、621、721 ソース側スタートア
ドレス 122、322、525、622、722 ソース側読
み出しポインタ 123、323、623 ソース側エンドアドレス 130、330、530、630、730 ディスティ
ネーション側制御装置 131、331、631、731 ディスティネーショ
ン側スタートアドレス 132、332、535、632、732 ディスティ
ネーション側書き込みポインタ 133、333、633 ディスティネーション側エン
ドアドレス 140、340、540、640、740 バス要求装
置 141、341、541、641、741 バス要求信
号 150、350、550、650、750 割り込み信
号生成装置 151、351、551、651、751 割り込み要
求信号 312 ソース側オールモストエンプティトリガ 313 ディスティネーション側オールモストフルトリ
ガ 324、624 ソース側書き込みポインタ 325 ソース側データ量 334、634 ディスティネーション側読み出しポイ
ンタ 335 ディスティネーション側データ量 521 ソース側スタートアドレス1 522 ソース側エンドアドレス1 523 ソース側スタートアドレス2 524 ソース側エンドアドレス2 531 ディスティネーション側スタートアドレス1 532 ディスティネーション側エンドアドレス1 533 ディスティネーション側スタートアドレス2 534 ディスティネーション側エンドアドレス2 612 ソース側の書き込みデータレジスタ 613 ディスティネーション側の読み出しデータレジ
スタ 660 リセット装置 661 リセット信号
Claims (9)
- 【請求項1】 DMA方式のデータ転送制御に用いるD
MA制御装置において、 ソース側のソース領域の読み出しアドレスとディスティ
ネーション側のディスティネーション領域の書き込みア
ドレスの少なくとも一方をリングバッファ方式で制御す
る手段を具備することを特徴とするDMA制御装置。 - 【請求項2】 前記リングバッファ方式で制御する手段
が、 ソース側の読み出しアドレスを制御する場合は、ソース
領域の開始アドレスおよびソース領域の終了アドレスを
指定する手段と、ソース領域の読み出しアドレスポイン
タとを具備し、前記ソース領域の読み出しアドレスポイ
ンタが前記ソース領域の終了アドレスに一致すると自動
的に前記ソース領域の読み出しアドレスポインタを前記
ソース領域の開始アドレスに変更し、 ディスティネーション側の書き込みアドレスを制御する
場合は、ディスティネーション領域の開始アドレスおよ
びディスティネーション領域の終了アドレスを指定する
手段と、ディスティネーション領域の書き込みアドレス
ポインタとを具備し、前記ディスティネーション領域の
書き込みアドレスポインタが前記ディスティネーション
領域の終了アドレスに一致すると自動的に前記ディステ
ィネーション領域の書き込みアドレスポインタを前記デ
ィスティネーション領域の開始アドレスに変更する、こ
とを特徴とする請求項1記載のDMA制御装置。 - 【請求項3】 前記リングバッファ方式で制御する手段
において、 ソース側の読み出しアドレスを制御する場合は、ソース
領域のデータ量の下限値を指定する手段を具備し、ソー
ス領域にバッファされたデータ量が前記ソース領域のデ
ータ量の下限値を下回ったあるいは一致した場合は外部
に対してデータ量の不足を通知し、 ディスティネーション側の書き込みアドレスを制御する
場合は、ディスティネーション領域のデータ量の上限値
を指定する手段を具備し、ディスティネーション領域に
バッファされたデータ量が前記ディスティネーション領
域のデータ量の上限値を上回ったあるいは一致した場合
は外部に対してデータ量の過剰を通知する、ことを特徴
とする請求項1または2記載のDMA制御装置。 - 【請求項4】 前記リングバッファ方式で制御する手段
において、 ソース側の読み出しアドレスを制御する場合は、ソース
領域の書き込みアドレスポインタを具備し、 ディスティネーション側の書き込みアドレスを制御する
場合は、ディスティネーション領域の読み出しアドレス
ポインタを具備する、ことを特徴とする請求項1から3
のうちいずれか1項記載のDMA制御装置。 - 【請求項5】 前記リングバッファ方式で制御する手段
は、ソース側の読み出しアドレスおよびディスティネー
ション側の書き込みアドレスの双方を制御し、ソース側
の書き込みデータレジスタおよびディスティネーション
側の読み出しデータレジスタを具備し、前記ソース側の
書き込みデータレジスタに書き込まれたデータは前記ソ
ース領域の書き込みアドレスポインタが指すアドレスに
書き込み、前記ディスティネーション側の読み出しデー
タレジスタからの読み出すデータは前記ディスティネー
ション領域の読み出しアドレスポインタが指すアドレス
から読み出すことを特徴とする請求項4記載のDMA制
御装置。 - 【請求項6】 リセット信号入力により、前記ソース領
域の読み出しアドレスポインタおよび前記ソース領域の
書き込みアドレスポインタは前記ソース領域の開始アド
レスにリセットされ、前記ディスティネーション領域の
書き込みアドレスポインタおよび前記ディスティネーシ
ョン領域の読み出しアドレスポインタは前記ディスティ
ネーション領域の開始アドレスにリセットされることを
特徴とする請求項5記載のDMA制御装置。 - 【請求項7】 前記ソース領域および前記ディスティネ
ーション領域はそれぞれ単一のリングバッファに代えて
それぞれリング構造にリンクされた複数のバッファで構
成され、前記複数のバッファにそれぞれの開始アドレス
および終了アドレスを備える場合は、前記ソース領域の
読み出しアドレスポインタが読み出し中のバッファの終
了アドレスに一致すると自動的に前記ソース領域の読み
出しアドレスポインタを次にリンクされたバッファの開
始アドレスに変更し、前記ディスティネーション領域の
書き込みアドレスポインタが書き込み中のバッファの終
了アドレスに一致すると自動的に前記ディスティネーシ
ョン領域の書き込みアドレスポインタを次にリンクされ
たバッファの開始アドレスに変更し、リセット信号入力
により前記ソース領域の読み出しアドレスポインタおよ
び前記ソース領域の書き込みアドレスポインタをリセッ
トする場合は、前記ソース領域のいずれかあるいは特定
のバッファの開始アドレスにリセットされ、リセット信
号入力により前記ディスティネーション領域の書き込み
アドレスポインタおよび前記ディスティネーション領域
の読み出しアドレスポインタをリセットする場合は、前
記ディスティネーション領域のいずれかあるいは特定の
バッファの開始アドレスにリセットされることを特徴と
する請求項1から6のうちいずれか1項記載のDMA制
御装置。 - 【請求項8】 前記リング構造に構成された複数のバッ
ファにおけるバッファの切り替え時に、外部に対してバ
ッファの切り替えの発生を通知することを特徴とする請
求項7記載のDMA制御装置。 - 【請求項9】 請求項1から8のうちいずれか1項記載
のDMA制御装置を搭載する半導体集積回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001394095A JP2003196225A (ja) | 2001-12-26 | 2001-12-26 | Dma制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001394095A JP2003196225A (ja) | 2001-12-26 | 2001-12-26 | Dma制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2003196225A true JP2003196225A (ja) | 2003-07-11 |
Family
ID=27600923
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001394095A Pending JP2003196225A (ja) | 2001-12-26 | 2001-12-26 | Dma制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2003196225A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007310735A (ja) * | 2006-05-19 | 2007-11-29 | Nec Electronics Corp | ダイレクトメモリアクセスコントローラ |
-
2001
- 2001-12-26 JP JP2001394095A patent/JP2003196225A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007310735A (ja) * | 2006-05-19 | 2007-11-29 | Nec Electronics Corp | ダイレクトメモリアクセスコントローラ |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5822618A (en) | System for automatically switching to DMA data transfer mode to load and unload data frames when there are excessive data frames in memory buffer | |
JP3598321B2 (ja) | 異なる周波数で動作するバス間でやりとりされるバッファリングデータ | |
US6526462B1 (en) | Programmable multi-tasking memory management system | |
JPH0827707B2 (ja) | Fifoバッファの制御装置及び制御方法並びにデータ転送を制御する装置 | |
CN102646446A (zh) | 硬件动态高速缓存电源管理 | |
JP2001216194A (ja) | 演算処理装置 | |
JPH10143466A (ja) | バス通信システム | |
KR100348545B1 (ko) | 통신 dma 장치 | |
JP2003196225A (ja) | Dma制御装置 | |
JPH08227343A (ja) | 2次記憶装置の制御装置および制御システム | |
JP2000227897A (ja) | Dma転送装置及びdma転送システム | |
JP2002176464A (ja) | ネットワークインタフェース装置 | |
JP2000295295A (ja) | ブロック・データ転送用バッファメモリ及びシリアルデータ送受信システム | |
JP3458037B2 (ja) | スプリットバス制御方式 | |
JPH07306946A (ja) | トランザクション合成による並行読み取り処理 | |
JP2000259523A (ja) | データ転送装置、lan通信システム及びデータ転送方法 | |
JP2007241936A (ja) | データ転送回路 | |
JPH05173923A (ja) | 入出力データ転送処理装置 | |
JPH10320351A (ja) | バッファ方式 | |
JP2000224549A (ja) | データ転送制御方法及びその装置 | |
JP2001067306A (ja) | バスインターフェース装置およびデータ転送装置 | |
JP3259095B2 (ja) | データ転送方法 | |
JP2000132498A (ja) | Dma転送制御装置 | |
JP2752834B2 (ja) | データ転送装置 | |
JPH06149703A (ja) | メッセージ転送制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Effective date: 20040914 Free format text: JAPANESE INTERMEDIATE CODE: A621 |
|
RD04 | Notification of resignation of power of attorney |
Effective date: 20060324 Free format text: JAPANESE INTERMEDIATE CODE: A7424 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070327 |
|
A131 | Notification of reasons for refusal |
Effective date: 20070530 Free format text: JAPANESE INTERMEDIATE CODE: A131 |
|
A02 | Decision of refusal |
Effective date: 20071003 Free format text: JAPANESE INTERMEDIATE CODE: A02 |