JP2819705B2 - データ転送制御装置 - Google Patents

データ転送制御装置

Info

Publication number
JP2819705B2
JP2819705B2 JP32881389A JP32881389A JP2819705B2 JP 2819705 B2 JP2819705 B2 JP 2819705B2 JP 32881389 A JP32881389 A JP 32881389A JP 32881389 A JP32881389 A JP 32881389A JP 2819705 B2 JP2819705 B2 JP 2819705B2
Authority
JP
Japan
Prior art keywords
dma transfer
data
address
transfer
dma
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
JP32881389A
Other languages
English (en)
Other versions
JPH03188547A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP32881389A priority Critical patent/JP2819705B2/ja
Publication of JPH03188547A publication Critical patent/JPH03188547A/ja
Application granted granted Critical
Publication of JP2819705B2 publication Critical patent/JP2819705B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Bus Control (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、メモリと周辺装置とのデータ転送をダイレ
クト・メモリ・アクセス(以下DMAと記す)方式で行う
データ転送制御装置に関する。
〔従来の技術〕 マイクロコンピュータを利用した情報処理システムに
おいて、周辺装置とメモリ間で大量のデータ転送を行な
い、これらのデータを中心処理装置で処理、加工してさ
らに別の周辺装置、記憶装置へ転送するといった例は多
くある。周辺装置から中央処理装置(以下CPUと記す)
へ割り込みを発生し、割り込みルーチンで上述のデータ
転送を行なうと、CPUのオーバヘッド(割り込み処理の
ための時間)が増大し、システムのデータ処理効率が低
下するための、データ転送を専門に制御するデータ転送
制御装置としてダイレクト・メモリ・アクセス・コント
ローラ(以下、DMACという)がある。
DMACによるデータ転送(以下、DMA転送という)を行
う場合、まず、データ転送を行うべきメモリ・アドレ
ス、DMA転送回数等の各種制御情報をCPUの命令によりDM
AC内にあらかじめ設定する。次に、DMA転送では周辺回
路(例えば印字制御回路、表示制御回路)からのDMA転
送要求をDMACが検知すると、DMACはCPUへバス使用権の
空け渡しを要求する。この要求をCPUが検知すると、CPU
は現在実行中のプログラム処理を中断し、アドレスバ
ス、データバスを含むバスの使用権をDMAC側に受け渡
す。DMACは空いたバスを利用して、アドレス情報、リー
ド/ライト制御信号を発生し、メモリに格納されている
データをDMA転送要求を発生した周辺回路(以下、I/Oと
いう)へ転送する処理を転送する処理を行なう。
このようなDMA転送動作を繰り返し行うことにより、
転送回数分のデータ転送を完了すると、CPUに対してDMA
転送完了を通知する。CPUはDMA完了を検出すると、割り
込み処理および割り込み処理プログラム・ムーチンを実
行する。この割り込み処理プログラム・ルーチンの中
で、CPUは次のDMA転送実行に備えてDMACの各種制御情報
を再設定し、再びDMA転送を開始する。
従来のDMACにおけるメモリから周辺回路(I/O)へのD
MA転送動作について、図を用いて説明する。
第7図は従来の情報処理システム500の主要部を示す
ブロック図である。
情報処理システム500は、CPU511とDMAC512とを含むマ
イクロコンピュータ501、メモリ503、周辺装置502とか
ら構成されている。
CPU511は、内部にプログラムカウンタ(以下PCと記
す)と,プログラムステータスワード(以下PSWと記
す)と、各種レジスタ等をもち、各種命令の実行制御
と、DMAC512とのアドレス・バス、データ・バス、リー
ド信号、ライト信号からなるバス505の使用権に対する
制御を含む情報処理システム500全体の動作制御を行
う。
DMAC512は、DMA転送元アドレス情報を記憶するメモリ
・アドレス・レジスタMAR513と、転送データ数を記憶す
るターミナル・カウンタTC514とを少なくとも1組備え
ており、MAR513とTC514にはDMA転送の処理開始にそれぞ
れ転送元アドレス情報、転送データ数がCPU511の命令に
よりあらかじめ設定されている。DMAC512は、周辺装置5
02からのDMA転送要求信号520の発生を検知すると、バス
使用権の空け渡し要求信号であるパス・ホールド要求信
号(以下、HLDRQという)522とその許可信号であるホー
ルド・アクノリッジ信号(以下、HLDAKという)523とに
よりCPU511からバス使用権を得て、メモリ503と周辺装
置502との間でDMA転送を実行する。
メモリ503はCPU511のプログラム領域と、データ領域
と、DMA転送元領域とを含み、CPU511とDMAC512のいずれ
かの制御によりアドレス・バス、データ・バス、リード
信号、ライト信号を含むバス505を介し情報処理システ
ム500の各種データを記憶する。CPU511は書き込みアド
レスを更新しながらこのメモリ503の領域内にDMA転送デ
ータを書き込む。このときCPU511は、更新した書き込み
アドレスDMA転送元領域を越えたときに領域の先頭位置
に戻す制御も同時に行なう。書き込まれたデータはDMAC
により周辺装置502へ転送される。
CPU511及びDMAC512ともバス使用権を放棄した側のバ
ス505への出力はハイ・インピーダンスとなり、他方の
バス使用権を得た側によりバス505にアドレスとデータ
が適時出力される。
次に、メモリ503と周辺装置502との間のDMA転送の動
作について説明する。
周辺装置502においてDMA転送要求が発生すると、周辺
装置502はDMA転送要求信号520を活性化し、DMAC512に供
給する。DMA転送要求信号520が活性化されたことによ
り、DMAC512はHLDRQ信号522を活性化し、CPU511に対し
てバス505の使用権を要求する。
CPU511は、データ生成処理、および生成されたデータ
をメモリ503に格納する処理を含む所定のプログラム処
理を実行しているが、同時に、DMAC512からのHLDRQ信号
522の発生を常時モニタしている。上記信号522が発生し
たことを検知すると、実行中のプログラム処理を中断
し、PC、PSW、各種レジスタ類の内容をプログラム実行
時の値のまま保持しHLDAK信号523を活性化してDMAC512
にバス使用権を与えたことを伝える。
バス使用権を得たDMAC512は、アドレス・バスにメモ
リ503内のDMA転送元アドレス情報を出力し、同時にメモ
リ・リード信号を活性化して転送データをバス505上に
出力する。続いてDMAC512は、周辺装置502に対しライト
信号(DMAアクノリッジ信号)521を活性化し、DMA転送
データを書き込む。
こうした1回のDMA転送が実行される毎に、メモリ・
アドレス・レジスタMAR513の内容が更新され、DMAC内の
転送データ数を記憶したターミナル・カウンタTC514の
内容が“1"デクリメントされる。
ここで、1回のDMA転送実行後、周辺装置502からのDM
A転送要求信号520が引続き活性化されていることをDMAC
512が検知した場合には、上記のDMA転送を繰り返し実行
する。また、DMA転送要求信号520が活性化されていない
場合は、DMAC512はHLDRQ信号522をイン・アクティブに
して、CPU511に、バス使用権の放棄を伝える。CPU511は
バス使用権を取り戻すと、PC、PSW、及び各種レジスタ
類がすべてプログラム処理中断前の値を保持しているた
め、中断したプログラム処理を即時に再開する。
こうして連続的に、あるいは断続的にDMA転送が実行
された結果、転送回数分のデータ転送を終了する(TC51
4が0となる)と、DMAC521はDMA割り込み要求信号524を
活性化することにより、CPU504にDMA転送完了を伝え
る。
この割り込み要求信号524が発生すると、CPU504はPC,
PSWをスタックに退避し、割り込み処理プログラム・ル
ーチンを起動する。このプログラム・ルーチンの中でCP
U504は次のDMA転送に備えるためにMAR513,TC514の値を
再初期設定する処理を行い、その後、PC、PSWをスタッ
クから復帰させる。
この処理により、同一のDMA転送領域に対しDMA転送を
繰り返し実行することができる。
上記のDMA転送において、CPU504によるDMA転送データ
書き込み速度よりDMA転送速度が速いと、同一のDMA転送
領域に対しDMA転送を繰り返し実行しているうちにDMA転
送対象アドレスがCPU504の書き込みアドレスに追いつい
てしまい、CPU504がデータをメモリに書き込む前にDMA
転送を行ってしまうことがあった。
これに対してさらに効率よくデータ転送を行なう方法
として、第8図に示すように、DMA転送領域を領域Aと
領域Bの2つ以上に分割し、2つの領域に対して交互に
DMA転送を行う手法がある。まずCPUはDMA転送処理に先
だって領域AのDMA転送回数、転送アドレスを初期設定
する処理を行なう。その後CPUは、領域Aに対しデータ
書き込みを行い、領域Aのすべてのデータの書き込みを
終了したとき、領域AのDMA転送を許可し、同時に領域
Bに対するデータ書き込みを開始する。領域Aに対する
指定回数分のDMA転送が終了すると、DMA転送は停止し、
DMACはDMA終了割り込みをCPUに対して発生する。CPUは
この割り込み処理で領域BのDMA転送回数、転送アドレ
スを設定する処理を行なう。続いて、領域Bのデータ書
き込みを開始しすべてのデータの書き込みを終了したと
き、領域BのDMA転送を許可する。領域Bに対する指定
回数分のDMA転送終了時にも、DMACはCPUに対しDMA終了
割り込みを発生し、CPUはこの割り込み処理で領域AのD
MA転送回数、転送アドレスを設定する処理を行なう。以
下、上記処理を繰り返し実行する。
このように、CPUによるデータ書き込みが終了した領
域に対しDMA転送を許可することによって、DMA転送速度
がCPUによる書き込み速度より速い場合にも、CPUによる
書き込みが行われていない領域に対してDMA転送を実行
することがないようにしている。
ここでは、DMA転送領域を2種類に分割したが、最初
にCPUが領域Aにデータを書き込み始めてから領域Aに
対するDMA転送が始まるまでの時間を短縮する必要のあ
る場合には、DMA転送領域をさらに小さく分割し、DMA転
送を開始する前にCPUが書き込むデータ数を少なくする
ことによって対処している。
〔発明が解決しようとする課題〕
上述した従来のDMA転送制御装置を応用した情報処理
システムにおいては、転送回数分のDMA転送が完了する
と、CPUはPC,PSWをスタックに退避、復帰する割り込み
処理と、次のDMA転送のための制御情報の設定を行なう
割り込みプログラム処理を実行する。この割り込み処理
および割り込みプログラム処理を実行している間、DMAC
は周辺装置から発生するDMA転送要求を保留しなければ
ならない。このため、DMA転送要求が発生してから、実
際にDMA転送が実行されるまでのDMA応答保留時間が長く
なるという問題があった。
また、DMA転送領域をサイズの小さい2領域に分割
し、交互にDMA転送を実行するようにした場合、上述のD
MA完了時の割り込みがより多く発生するため、DMAの応
答保留時間がさらに長くなっていた。
さらに、CPUがDMA転送データをメモリに書き込む毎
に、CPUの書き込みアドレスとDMA転送領域の最終アドレ
スとを比較し、書き込みアドレスが最終アドレスを越え
たとき、書き込みアドレスを転送領域の先頭アドレスに
戻す処理を行わなければならず、CPUの処理が繁雑とな
り負担となっていた。
このように、CPUがDMA転送に関する処理に携わる時間
が多くかかり、CPU本来の処理が高速にできなくなると
いった問題点があった。
〔課題を解決するための手段〕
本発明のデータ転送制御装置は、ダイレクトメモリア
クセス(DMA)方式でメモリと周辺装置とのデータ転送
を行うデータ転送制御装置において、DMA転送回数を記
憶するための転送回数記憶手段と、DMA転送の実行毎に
前記転送回数記憶手段の値を更新するための転送回数更
新手段と、DMA転送の対象であるDMA転送領域の限界アド
レスを記憶するための限界アドレス記憶手段と、DMA転
送の実行毎に前記転送回数記憶手段の値と前記限界アド
レス記憶手段の値からDMA転送アドレスを生成するため
のDMA転送アドレス生成手段と、外部の装置のライトア
クセスにより出力されるアドレスが所定のアドレスであ
ることを検出するためのライト検出手段と、該アドレス
と同時に出力されるデータを格納するためのデータ格納
手段と、前記ライト検出手段により前記DMA転送領域に
対し前記データ格納手段に格納されたデータを書き込む
際のアドレスを格納するための書き込みアドレス格納手
段と、該データを書き込む毎に前記書き込みアドレス格
納手段の値を更新するための書き込みアドレス更新手段
と、前記転送回数更新手段における更新作動時に増加
し、前記アドレス更新手段における更新動作時に減少す
る計数手段と、前記計数手段の値が所定の値となったこ
とを検出するための計数値検出手段、とを有することに
より、DMA転送領域を理論的にリング構造しているバッ
ファとして扱うことができるようにしたデータ転送制御
装置である。
〔実施例〕
本発明のデータ転送制御装置の実施例について図を用
いて説明する。
第1図は本発明のデータ転送制御装置であるDMAC12を
内蔵するマイクロコンピュータ1を用いた情報処理シス
テムの構成を示すブロック図で、第2図はDMAC12の要部
構成を示すブロック図である。マイクロコンピュータ1
は中央処理装置CPU11と、周辺装置10(例えばデータ受
信制御回路)と、周辺装置2とメモリ3との間のデータ
転送処理を実行制御するデータ処理回路としてのダイレ
クト・メモリ・アクセス・コントローラDMAC12とを有し
ている。
マイクロコンピュータ1は、周辺装置10で受信した外
部装置からのデータをプログラム処理してメモリ3内の
DMA転送元領域30に書き込み、DMAC12を用いて周辺装置
2(例えばプリンタ制御装置)に転送するといった情報
処理システム全体の制御を行なう。
周辺装置2は、データのリード/ライト用バッファを
備えており、DMAC12により上記バッファに送られたデー
タ基に、印字処理,表示処理等の周辺装置固有の処理を
行う。
メモリ3は、CPU11のプログラム領域とデータ領域、
およびDMA転送元領域30を含み、CPU11とDMAC12のいずれ
かの制御によりバス5を介して情報処理システムの各種
データを一時記憶する。
マイクロコンピュータ1のCPU11は、内部にプログラ
ムカウンタ,プログラムステータスワード、各種制御レ
ジスタ等を含み、各種命令の実行制御と、DMAC12との間
でのアドレス・バス、データ・バス、リード信号、ライ
ト信号を含むバス5の使用権の授受制御とを含む動作制
御を行う。
マイクロコンピュータ1のDMAC12は、第2図に示すよ
うに、 DMA転送元領域の最終アドレス+1の値を記憶するメモ
リ・アドレス・レジスタMAR131と、DMA転送の実行回数
(初期値)を設定するターミナル・カウンタ・モジュロ
・レジスタTCM122と、 DMA転送のカレントの実行回数を記憶するターミナル・
カウンタTC121と、 MAR131からTC121を減算、あるいはMAR131からTCM122を
減算してアドレスを生成するアドレス生成回路ADM132
と、CPU11が次に書き込むべきメモリ領域の先頭アドレ
スを指定するリード・ライト・ポインタRWP133と、 1回のDMA転送を実行する毎にカウントアップし、CPU11
がDMA転送領域にデータを書き込む毎にカウントダウン
することにより、DMA転送領域内の空き領域のデータ数
を示すアップ・ダウン・アウンタ(以下、U/Dカウンタ
という)134と、 U/Dカウンタ134の値との比較値を格納し、比較の結果等
しくなると一致信号25を出力するコンペア・レジスタCO
MP135と、 RWP133の内容を更新するポインタ更新部130と、 TC121の内容をデクリメントするデクリメンタ120と、 CPUとの間のバス5の使用権の授受制御、データの転送
方向とアクセスタイミング等の制御情報を記憶するコン
トロールレジスタを基に、DMA転送動作時の転送タイミ
ング制御と内部各制御レジスタの更新制御を含むDMAC全
体の制御を行う実行制御部100と、 システムバス5に出力されたデータをラッチしておくデ
ータ・ラッチ110とから構成される。
次に、第1図のメモリ3から周辺装置2へデータを転
送する際の動作について具体的に説明する。
まず、CPU11側のソフトウェア処理について説明す
る。CPU11はDMA転送処理に先だって第4図(a)のフロ
ーに示すように初期設定処理を行う。まず、RWP133にDM
A転送元領域30の先頭アドレスを設定し(ステップ
)、MAR131に“DMA転送元領域30の最終アドレス+1"
を設定する(ステップ)。次に、TC121,TCM122、U/D
カウンタ134にDMA転送元領域30のデータ数(例えばバイ
トデータの転送を行うときには領域30の先頭アドレスか
ら最終アドレスまでのデータバイト数)を設定する(ス
テップ)。また、COMP135に“DMA転送元領域のデータ
数−α”(α:0〜数バイト程度)を書き込む(ステップ
)。その後、U/Dカウンタ134の値がCOMP135の値より
小さくなるまではDMA転送元領域30に転送データをあら
かじめ書き込み(ステップ,)、DMA転送をスター
トする(ステップ)。
CPU11は上記のDMA初期設定処理を終了後は、周辺装置
10から受信したデータを基にデータ生成し、DMAC12のRW
P133とU/Dカウンタ134を利用して、生成したデータをDM
A転送元領域30に書き込む処理を行う。このCPU11による
書き込み処理を第4図(b)に示す。まず、U/Dカウン
タ134の内容を読み出し(ステップ)、U/Dカンンタ13
4の値が0であるとき、すなわちDMA転送元領域30に空き
領域がないとき、データの書き込み処理は行わない(ス
テップ)。上記以外のとき、RWP133が指し示すDMA転
送元領域30のアドレスにデータを書き込む命令(以下、
I/O操作命令という)をU/Dカウンタ134の値が示す回数
分実行する(ステップ,ステップ)。I/O操作命令
が実行されたとき、DMA転送領域30にデータを書き込む
処理はDMAC12が実行する。書き込まれたデータはDMA転
送によって所定の周辺装置2へ転送される。
以上のようにCPU11はプログラム処理で、DMA転送元領
域30に空き領域がある限りDMA転送データの書き込みを
繰り返し行う。
次に、CPU11がI/O操作命令を実行したことによりDMAC
12がメモリ3にデータを書き込むときの動作について説
明す。CPU11はI/O操作命令を実行するとバス5上にRWP1
33のアドレス値、およびメモリに書き込むデータを出力
する。実行制御部100は専用のアドレス・デコーダによ
り常にバス5に含まれるアドレス・バス上の値をデコー
ドしているが、RWP133のアドレス値を検知すると、バス
上に出力されているデータをデータ・ラッチ110にラッ
チする。同時に実行制御部100は、バスホールド要求信
号HLDRQ22を活性化してCPU11にバス使用権を要求する。
CPU11はDMAC12からのHLDRQ22の発生を常にモニタしな
がら、所定のプログラム処理を実行している。HLDRQ22
が活性化状態となったことを検知すると、実行中のプロ
グラム処理を中断して、PC、PSW、各種レジスタ類の内
容をプログラム実行時の値のまま保持し、バス出力信号
をハイインピーダンスとして、ホールド・アクノリッジ
信号HLDAK23を活性化してDMAC12にバス使用権を与えた
ことを伝える。
バス使用権を得た実行制御部100はRWP133の値、およ
びデータ・ラッチ110の値をバス5上に出力し、同時に
ライト信号を活性化してメモリ3にデータを書き込む。
その後、DMAC12はHLDRQ22信号をイン・アクティブに
して、CPU11にバス使用権の放棄を伝えDMA転送動作を終
了する。
CPU11はバス使用権を取り戻すと、PC,PSW,及び各種レ
ジスタ類がすべてプログラム処理中断前の値を保持して
いるため、中断したプログラム処理を即時に再開する。
ここで,I/O操作命令の実行によりDMAC12がメモリ3に
データを書き込んだときの各ポインタ、カウンタの動作
について説明する。処理実行部100がデータ書き込む毎
に、U/Dカウンタ120の内容は“1"カウントダウンし、RW
P133の内容は“1"インクリメントする。MAR131はMAR131
自身の値とRWP133の更新結果の値とを比較している。比
較の結果一致を検出し、RWP133がDMA転送元領域30の終
端アドレスを越えた場合、MAR131は一致信号27をADM132
に対して活性化する。ADM132はこの一致信号27の活性化
を検出するとMAR131からTCM122の値を減算してRWP133に
書き込む。これにより、RWP133はDMA転送元領域30の先
頭アドレスに更新される。
次に、DMAC12によりDMA転送元領域30から周辺装置2
へのDMA転送動作について具体的に説明する。
周辺装置2のDMA転送要因が発生すると、周辺装置2
はDMA実行制御部100に対しDMA転送要求信号20を活性化
する。実行制御部100はDMA転送要求信号20が活性化され
ると、HLDRQ22、HLDAK23によりCPU11からバス使用権を
得る。
データをメモリ3から周辺装置2にデータ転送するDM
A転送でき、DMAC12は、ADM132でMAR131からTC121の値を
減算し生成したアドレス情報をバス5に出力してDMA転
送元領域30からの転送データをバス5上に読み出し、周
辺装置2に対してアクノリッジ信号21を出力する。これ
により、周辺装置2は転送データの読み出しを行なう。
一回のDMA転送の実行終了ごとにTC121の内容はデクリ
メンタ120に読み出され“1"デクリメントされた後書き
戻される。これにより、MAR131からTC121の値を減算し
て生成されるDMA転送対象アドレスは“1"ずつインクリ
メント更新されていくことになる。また一回のDMA転送
の実行終了ごとにU/Dカウンタ120の内容は“1"カウント
アップされる。
周辺装置2からDMA転送要求信号20が続けて発生して
いる時には、再び上記のDMA転送動作を繰り返す。周辺
装置2から連続するDMA転送要求信号20が発生していな
ければDMAC12はHLDRQ22信号イン・アクティブにして、C
PU11にバス使用権の放棄を伝えDMA転送動作を終了す
る。
以上のDMA転送を繰り返し実行し、デクリメンタ120で
TC121をデクリメントした結果TC=0となり、TC121に設
定された所定回数のDMA転送の実行を終了すると、実行
制御部100はTCM122の内容をTC121にロードする。その
後、周辺装置2からDMA転送要求信号20が発生しDMA転送
が実行されるときには、再びメモリ3のDMA転送元領域3
0の先頭アドレスからDMA転送が実行される。
このようにして、DMA転送元領域30を用いて繰り返しD
MA転送を行うことができる。
次にDMAC12のCOMP135の動作について説明する。
DMA転送に先立ちCOMP135にはプログラムにより"DMA転
送元領域のデータ数−α”が設定されている。DMA転送
が実行され、U/Dカウンタ134がカウント・アップしてCO
MP135に一致すると一致信号25が活性化し実行制御部100
に伝えられる。この一致信号25は、DMA転送元領域にDMA
転送すべきデータが残っていないことを示している。実
行制御部100は一致信号25が活性化状態になったことを
検知すると、CPU11に対してDMA割り込み要求信号24を発
生する。
CPU11は、DAM割り込み要求信号24の発生により起動さ
れる割り込み処理で、DMA転送を禁止する状態にする
か、U/Dカウンタ134の値がCOMP135の値より小さくなる
までDMA転送元領域30に直ちにより高速にデータを書き
込む(第4図)。
なお、αを"0〜数バイト程度”としたのは、COMP135
が一致を検出してからDAM転送を禁止するか、あるいは
データをCPUが書き込むまでの遅延期間にも行われるDMA
転送によってCPUの未処理データが転送されてしまうこ
とを防止するためのものである。
以上説明したように、本実施例のDMACを内蔵したマイ
クロコンピュータ1によれば、メモリの同一転送領域に
対し繰り返しDMA転送が実行される。また、DMA転送元領
域の専用書き込みポインタと、CPUが専用書き込みポイ
ンタによりDMA転送元領域にデータを書き込むと自動的
にカウントダウンし、DMA転送が実行されると自動的に
カウントアップするU/Dカウンタを利用することによ
り、CPUは書き込みアドレスを管理することなくDMA転送
元領域として使用するメモリ領域をCPUは論理的にリン
グ構造をしているバッファとして扱うことができる。
第2の実施例について第5図を用いて説明する。
本実施例が第1の実施例と異なるのは、DMAC13内の実
行制御部102で、実行制御部102内のDMA転送禁止フラグ1
01がCOMP135の一致信号26の発生により自動的にセット
する機能を付加して構成された点である。
実行制御部102の他の動作及びDMAC13の他の構成、動
作は第1の実施例と同一であるのでここでは説明を省略
する。
本実施例ではCPU11が実行するプログラムの初期設定
処理であらかじめDMA転送禁止フラグ101をリセットして
おく、DMAC13は周辺装置からのDMA転送要求信号20の発
生によりDMA転送を実行している。DMA転送毎にU/Dカウ
ンタ134をカウントアップした結果COMP135と一致し、一
致信号26が発生すると、実行制御部102はCPU11に知らせ
ると同時に、DMA転送禁止フラグ101をセットし、DMA転
送禁止状態にする。つまりDMA転送元領域からDMA転送デ
ータがなくなると自動的にDMA転送を禁止状態にして、C
PU11がDMA転送データをDMA転送元領域に書き込む前に、
DMACがDMA転送元領域からDMA転送データを読み出すこと
を防止するようにしている。
第3の実施例について第6図を用いて説明する。
本実施例が第1の実施例と異なるのは、CPU11がDMA転
送データを書き込むべきメモリ領域の先頭アドレスをMA
R131からオフセット・アドレスOFFAD136をADM132で減算
して生成するものとした点である。
DMAC14の他の構成、動作は第1の実施例と同一である
のでここでは説明を省略する。
本実施例において、CPU11がデータをメモリ領域に書
き込むときの動作について説明する。
CPU11は初期設定処理でMAR131に“DMA転送元領域30の
最終アドレス+1"を、OFFAD136にDMA転送元領域30のデ
ータ数をそれぞれあらかじめ設定しておく。CPU11がI/O
操作命令を実行したとき、DMAC14の実行制御部104は、O
FFAD136のアドレス値がバス5上に出力されていること
を専用のアドレス・デコーダで検知することにより、I/
O操作命令が実行されたことを検出する。このとき、バ
ス5上に出力されているデータをデータ・ラッチ110に
ラッチする。実行制御部104は、HLDRQ22,HLDAK23により
CPU11からバス使用権を得、MAR131からOFFAD136の値をA
DM132で減算して生成したアドレス値、およびデータ・
ラッチ110の値をバス5上に出力し、同時にライト信号
を活性化してデータの書き込みを行なう。この書き込み
の度に、ポインタ更新部130によりOFFAD136の値は“1"
デクリメントされる。このため、CPU11はデータを書き
込むアドレスを順次自動的に更新しながらデータの書き
込みを行なう。OFFAD136のデクリメントの結果、OFFAD
=0となりデータ書き込みアドレスがDMA転送元領域30
の最終アドレスを越えたとき、実行制御部104はTCM122
の内容をOFFAD136にロードする。その後、CPU11は、再
びDMA転送元領域30の先頭アドレスからデータ書き込み
を開始する。
〔発明の効果〕
以上説明したように、本発明のデータ転送制御装置
(DMAC)を内蔵したマイクロコンピュータでは、転送回
数分のDMA転送が完了したときに自動的に次のDMA転送の
ための制御情報を設定するため、CPUにより上記情報の
設定処理が不要となり、その結果DMA転送要求を保留す
る必要がなくなり、高速に周辺装置のDMA転送要求に応
答することができる。
また、CPUがDMA転送元領域にデータを書き込む度に自
動的に更新され、しかもDMA転送元領域を越えるときに
領域の先頭アドレス情報が自動的に設定される専用書き
込みポインタと、CPUがデータの書き込みを行うと自動
的にカウントダウンし、DMA転送が実行されると自動的
にカウントアップするU/Dカウンタとを利用することに
より、CPUはDMA転送領域を論理的にリング構造をしてい
るバッファとして扱うことができる。このため、CPUと
しては書き込みアドレスの管理を一切行わずにI/O操作
命令を実行するだけでデータの書き込みができるため、
CPUの操作性が非常によく、システム全体としての処理
能力を大幅に向上することができるといった効果があ
る。
さらに、DMA転送元領域からDMA転送データがなくなる
と割り込みを発生してCPUに知らせたり、自動的にDMA転
送を禁止したりする。従って、CPUの未処理データのDMA
転送を防止すると共に単一領域に対して繰り返しDMA転
送を実行することが可能である。
【図面の簡単な説明】
第1図は本発明の第一の実施例におけるDMACを用いた情
報処理システム構成を示すブロック図、第2図は本発明
の第一の実施例におけるDMACの要部構成を示すブロック
図、第3図は本発明の第一の実施例におけるメモリのマ
ップ、第4図は本発明の第一の実施例におけるCPU処理
フロー、第5図は本発明の第二の実施例におけるDMACの
要部構成を示すブロック図、第6図は本発明の第三の実
施例におけるDMACの要部構成を示すブロック図、第7図
は従来のDMACを用いた情報処理システムのブロック図で
ある。第8図は従来のDMA転送領域のメモリのマップで
ある。 1……マイクロコンピュータ、2……周辺装置、3……
メモリ、5……バス、10……周辺装置、11……CPU、12
……DMAC、13……DMAC、14……DMAC、20……DMA転送要
求信号、21……アクノリッジ信号、22……HLDRQ、23…
…HLDAK、24……DMA割り込み要求信号、25……一致信
号、26……一致信号、27……一致信号、30……DMA転送
元領域、100……DMA実行制御部、101……DMA転送禁止フ
ラグ、102……DMA実行制御部、104……DMA実行制御部、
110……データ・ラッチ、120……デクリメンタ、121…
…TC、122……TCM、130……ポインタ更新部、131……MA
R、132……ADM、133……RWP、134……U/Dカウンタ、135
……COMP、136……OFFAD、500……情報処理システム、5
01……マイクロコンピュータ、502……周辺装置、503…
…メモリ、505……バス、511……CPU、512……DMAC、51
3……MAR、514……TC、520……DMA転送要求信号、521…
…アクノリッジ信号、522……HLDRQ、523……HLDAK、52
4……DMA割り込み要求信号。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】ダイレクトメモリアクセス(DMA)方式で
    メモリと周辺装置とのデータ転送を行うデータ転送制御
    装置において、DMA転送回数を記憶するための転送回数
    記憶手段と、DMA転送の実行毎に前記転送回数記憶手段
    の値を更新するための転送回数更新手段と、DMA転送の
    対象であるDMA転送領域の限界アドレスを記憶するため
    の限界アドレス記憶手段と、DMA転送の実行毎に前記転
    送回数記憶手段の値と前記限界アドレス記憶手段の値と
    からDMA転送アドレスを生成するためのDMA転送アドレス
    生成手段と、外部の装置のライトアクセスにより出力さ
    れるアドレスが所定のアドレスであることを検出するた
    めのライト検出手段と、該アドレスと同時に出力される
    データを格納するためのデータ格納手段と、前記ライト
    検出手段により前記DMA転送領域に対し前記データ格納
    手段に格納されたデータを書き込む際のアドレスを格納
    するための書き込みアドレス格納手段と、該データを書
    き込む毎に前記書き込みアドレス格納手段の値を更新す
    るための書き込みアドレス更新手段と、前記転送回数更
    新手段における更新動作時に増加し、前記アドレス更新
    手段における更新動作時に減少する計数手段と、前記計
    数手段の値が所定の値となったことを検出するための計
    数値検出手段、とを有することを特徴とするデータ転送
    制御装置。
JP32881389A 1989-12-18 1989-12-18 データ転送制御装置 Expired - Fee Related JP2819705B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP32881389A JP2819705B2 (ja) 1989-12-18 1989-12-18 データ転送制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32881389A JP2819705B2 (ja) 1989-12-18 1989-12-18 データ転送制御装置

Publications (2)

Publication Number Publication Date
JPH03188547A JPH03188547A (ja) 1991-08-16
JP2819705B2 true JP2819705B2 (ja) 1998-11-05

Family

ID=18214387

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32881389A Expired - Fee Related JP2819705B2 (ja) 1989-12-18 1989-12-18 データ転送制御装置

Country Status (1)

Country Link
JP (1) JP2819705B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07219894A (ja) * 1994-01-31 1995-08-18 Sony Corp データ転送方法及びデータ転送装置

Also Published As

Publication number Publication date
JPH03188547A (ja) 1991-08-16

Similar Documents

Publication Publication Date Title
EP0524530B1 (en) DMA controller
JP3055917B2 (ja) データ転送制御装置
EP0464615B1 (en) Microcomputer equipped with DMA controller
JP2978539B2 (ja) データ転送制御装置
EP0458304B1 (en) Direct memory access transfer controller and use
JPS60235269A (ja) デ−タ転送制御装置
JPH0354375B2 (ja)
JP2822782B2 (ja) シングルチップマイクロコンピュータ
US5481756A (en) DMA controller mailing auto-initialize halting unit
JP2819705B2 (ja) データ転送制御装置
JP2007310735A (ja) ダイレクトメモリアクセスコントローラ
JP3265582B2 (ja) マイクロコンピュータ
JP2765267B2 (ja) ダイレクトメモリアクセス転送制御装置
JP2560968B2 (ja) コンピュータシステム
JP2972557B2 (ja) データ転送制御装置および制御方法
JP2001117862A (ja) マイクロコンピュータ
JPH03149621A (ja) マイクロプロセッサ
JP2513037B2 (ja) マイクロコンピュ―タ
JPH0322071A (ja) データ転送処理回路
JPH02224048A (ja) 情報処理装置
JPH04306754A (ja) Dmaコントローラ
JPH034349A (ja) Dma転送方式
JPS629451A (ja) パラレルデ−タ入力装置
JPS6215644A (ja) キヤツシユメモリ制御回路
JPS62232066A (ja) マルチプロセツサ・システムの機能切替え方式

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 9

Free format text: PAYMENT UNTIL: 20070828

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

Free format text: PAYMENT UNTIL: 20080828

Year of fee payment: 10

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

Year of fee payment: 10

Free format text: PAYMENT UNTIL: 20080828

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

Year of fee payment: 11

Free format text: PAYMENT UNTIL: 20090828

LAPS Cancellation because of no payment of annual fees