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

データ転送制御装置

Info

Publication number
JP2978539B2
JP2978539B2 JP2195631A JP19563190A JP2978539B2 JP 2978539 B2 JP2978539 B2 JP 2978539B2 JP 2195631 A JP2195631 A JP 2195631A JP 19563190 A JP19563190 A JP 19563190A JP 2978539 B2 JP2978539 B2 JP 2978539B2
Authority
JP
Japan
Prior art keywords
data
dma transfer
dma
memory
cpu
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
JP2195631A
Other languages
English (en)
Other versions
JPH03129448A (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
Nippon Electric 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Publication of JPH03129448A publication Critical patent/JPH03129448A/ja
Application granted granted Critical
Publication of JP2978539B2 publication Critical patent/JP2978539B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、メモリと周辺装置との間のデータ転送をダ
イレクト・メモリ・アクセス(以下DMAと記す)方式で
行うデータ転送制御装置に関する。
〔従来の技術〕
マイクロコンピュータを利用した情報処理システムに
おいては、周辺装置とメモリ間で大量のデータ転送を行
ない、これらのデータを中央処理装置で処理,加工して
さらに別の周辺装置、記憶装置へ転送するといった使用
例が多い。この場合、周辺装置から中央処理装置(以下
CPUと記す)へ割り込み発生し、割り込みルーチンでそ
のようなデータ転送を行なうと、CPUのオーバヘッド
(割り込み処理のための時間)が増大し、システムのデ
ータ処理効率が低下するため、データ転送を専門に制御
するデータ転送制御装置としてダイレクト・メモリ・ア
クセス(以下DMAと記す)・コントローラが提供されて
いる。
従来よりDMA転送を行なう場合、CPUにおいて予めDMA
コントローラに各種制御情報を設定しておき、周辺回路
よりDMA要求が指示されると周辺回路に所定の転送用バ
ッファとメモリとの間でDMAによりデータ転送を行って
いる。
DMA転送では周辺回路(例えば通信制御回路、印字制
御回路、表示制御回路など)からDMA要求をDMAコントロ
ーラ(以下DMACと記す)が検知すると、DMACはCPUへバ
ス制御権の空け渡しを要求する。
この要求をCPUが検知すると、CPUは現在実行中のプロ
グラム処理を中断し、アドレスバス,データバスのバス
制御権を、CPUがDMACに渡す。するとDMACは空いたバス
を利用して、アドレス情報、リード/ライト制御信号を
発生し、DMA要求を発生した周辺回路の所定の転送バッ
ファ(I/O)とメモリ間でデータ転送をCPUを介すること
なしに行なう。
このようなDMA転送動作を繰り返して所定数のデータ
転送が完了すると、DMAコンローラはCPUに対してDMA完
了を検知する。CPUはDMA完了を検出すると、周辺回路か
らメモリへのDMA転送の場合はメモリをアクセスして転
送されたデータに対する処理を実行し、メモリから周辺
回路へのDMA転送の場合は次に転送すべきデータをメモ
リに書き込む。
〔発明が解決しようとする課題〕
ところで、近年の情報処理システムではデータ処理の
効率、スピードをさらに高める目的で、DMACからのDMA
完了通知をまたないで任意のタイミングでメモリからDM
A転送によるデータを読み出して処理したり、次に転送
すべきデータをメモリに書き込んだりすることが要求さ
れている。
そのためには、DMA転送があったのかどうか、あった
場合メモリのどのアドレスまでデータが周辺回路から転
送されたのか、あるいはどのアドレスまで周辺装置に転
送されたのかを検出しなければならない。すなわち、DM
ACの実行状態をCPUがプログラムでモニタする必要があ
り、そのためのオーバーヘッドが問題となる。このこと
は、DMACを応用した情報処理システムの設計を行う際
に、本来必要なCPUによる周辺回路のデータ処理時間の
他に、上記プログラム処理の所用時間をマージンとして
見込んだ設計を行う必要があり、情報処理システムの処
理能力を制約するといった問題があった。
したがって、本発明の目的は、改良されたデータ転送
制御装置を提供することにある。
本発明の他の目的は、メモリからDMA転送によるデー
タの読み出しおよび/又はDMA転送すべきデータのメモ
リの書き込みを任意のタイミングで容易に実行可能とす
べて構成を備えたデータ転送制御装置を提供することに
ある。
本発明のさらに他の目的は、DMA転送に用いられるメ
モリの所定領域をリング構造のバッファとして使用する
ことを可能としたデータ転送制御装置を提供することに
ある。
〔課題を解決するための手段〕
本発明によるデータ転送制御装置は、メモリのDMA転
送領域として割合てられた領域のうち所定のアドレスに
関連するアドレスを格納する第1のレジスタと、転送す
べきデータ数を格納する第2のレジスタと、これら第1
および第2のレジスタを使ってDMA方式によりメモリと
周辺回路との間のデータ転送を実行するDMA制御手段
と、メモリのアクセスに使用されるアドレス情報を格納
する第3のレジスタと、この第3のレジスタの格納アド
レス情報を用いたメモリアクセスであって上記DMAによ
るメモリアクセスとは逆のメモリアクセスが実行される
毎に第3のレジスタの格納アドレス情報を更新する手段
と、DMA方式によるデータ転送が実行される毎にその値
が増加(又は減少)され、第3のレジスタの内容を用い
たメモリアクセスが実行される毎にその値が減少(又は
増加)される計数手段とを備えることを特徴としてい
る。
このように、第3のレジスタは次に読み出すべき転送
データ又は次に書き込むべき転送データのメモリのアド
レス情報を格納していることになり、計数手段の内容は
CPUが未処理の転送データ数又は未転送のデータ数を示
している。したがって、CPUは計数手段の内容をみるだ
けでDMA転送完了をまたないデータ処理を起動が可能か
どうかを知ることができ、かつ処理すべきデータ数も判
別できる。しかも、データ処理のためのメモリアクセス
に必要なアドレス情報は第3のレジスタに格納されてお
り、同アドレス情報を生成するためのプログラム処理を
必要としない。
かくして、任意のタイミングでメモリから転送データ
を読み出すことができ、メモリに転送すべきデータを書
き込むことができる。
〔実施例〕
以下、図面を用いて本発明の実施例を詳述する。
第1図は本発明の一実施例によるデータ転送制御装置
としてのDMAC10を内蔵するマイクロコンピュータ1を用
いた情報処理システムの構成を示すブロック図であり、
第2図はDMAC10の要部構成を示すブロック図である。マ
イクロコンピュータ1は中央処理装置11(以下、CPUと
記す)と、データのリード/ライト用バッファ(I/O)
を備えた周辺装置12(特に本実施例ではシリアルデータ
通信制御回路)およびメモリ2間とのデータ転送処理を
CPU11の処理動作とは排他的に実行制御するダイレクト
・メモリ・アクセス・コントローラ10(以下DMACと記
す)を有している。
マイクロコンピュータ1は周辺装置12で受信した外部
装置(図示せず)からのデータをDMAC10を用いてDMA転
送によりメモリ2に転送し、DMA転送したデータをプロ
グラム処理して周辺装置3(本実施例では表示制御回
路)に送るといった情報処理システム全体の制御を行な
う。
周辺装置3はマイクロコンピュータ1より送られたデ
ータを元に画像処理を行って表示部4(例えばCRT)に
出力する。
マイクロコンピュータ1のCPU11は、内部にプログラ
ムカウンタ,プログラムステータスワード,各種制御レ
ジスタ等を含み、各種命令の実行制御を行ない、さらに
DMAC10との間でバス5についての制御権の授受を含む動
作制御を行う。バス5はアドレス、データおよびコント
ロールバスを有する。
メモリ部2は、CPU11のプログラムメモリのデーダメ
モリとを含み、CPU11とDMAC10の制御により情報処理装
置の各種データを記憶する。メモリ部2のデータメモリ
はDMA転送領域に割り合てられた領域を有する。
マイクロコンピュータ1のDMAC10は、第2図に示すよ
うに、DMA転送を行う際の、転送先メモリ領域の先頭ア
ドレス情報(初期値)を格納するメモリ・アドレス・モ
ジューロ・レジスタ(MARM)102と、DMA転送実行時のカ
レント・メモリ・アドレスを記憶するメモリ・アドレス
・レジスタ(MAR)101と、DMA転送の実行回数(初期
値)を設定するターミナル・カウンタ・モジュロ・レジ
スタ(TCM)112と、DMA転送の実行回数を記憶するター
ミナル・カウンタ(TC)111と、CPU11が次に読みだすべ
きメモリ領域の先頭アドレスを指定するリード・ポイン
タ(RP)103と、1回のDMA転送を実行する毎にカウント
アップされ、CPU11が(RP)103の内容を読み出す毎にダ
ウンカウントするアップ・ダウン・カウンタ(U/Dカウ
ンタ)120と、U/Dカウンタ120の値と内部に設定された
データの比較を行い、両者が等しくなると一致信号25を
出力するコンペア・レジスタ(COMP)121と、MAR101の
内容またはRP103の内容をインクリメントまたはデクリ
メントするINC/DEC回路100と、RP103の値と内部に設定
されたデータとの比較を行ない両者が一致すると信号41
を発生する第2のコンペアレジスタ(COMP)105と、RP1
03に両設定すべきアドレスデータを格納するレジスタ
(MARE)106と、TC111の内容をデクリメントするデクリ
メンタ回路(DEC)110とを有する。さらに、システムバ
ス5とのリード/ライトバッファデータの転送方向とア
クセスタイミング等の制御情報を記憶するコントロール
レジスタ、およびDMA動作の禁止許可フラグ(共に図示
せず)を有し、CPUとのバス5の制御権の授受およびDMA
転送のタイミング制御ならびに内部の各制御レジスタの
更新制御を実行してDMAC全体の制御を行う実行制御回路
150を備えている。なお、図面の複雑化を避けるため
に、制御回路150と各レジスタとのデータのリード/ラ
イト線は省略する。
次に本実施例の動作を説明する。本実施例では、DMAC
10は周辺装置12からの要求にもとづきメモリ2の第3図
(a)に示すDMA転送領域に周辺装置12からのデータをD
MA転送する。
まず、CPU11はDMA転送処理に先だって第4図(A)に
示すようにDMAC10の初期設定処理をプログラムにもとづ
き実行する。すなわち、MARM102,MAR101,RP103にDMA転
送先メモリ領域(エリアa)の先頭アドレスを設定する
(401)。TC111およびTCM112にはエリアaのデータ数
(例えばバイトデータの転送を行うときにはエリアaの
先頭アドレスから最終アドレスまでのデータバイト数)
−1が設定される(402)。COMP121は上記データ数−α
(αは0乃至数バイト)が設定される(403)。U/Dカウ
ンタ120は“0"に初期化しておく(404)。COMP105にはD
MA転送領域の終端アドレス−1が設定される(405)。
そして、制御部105内の許可フラグがセットされDMAスタ
ートが許可される(406)。
CPU11はその後プログラムにもとづき別の処理を続行
するが、DMAC10からのHLDRQ22の発生を専用のハードウ
ェア手段により常にチェックしている。
一方、周辺装置12は、DMA転送要因(例えばデータの
受信動作完了)が発生すると、DMAC10へDMA要求20を伝
える。これによってDMAC10は第5図(A)に示す流に従
って動作する。すなわち、周辺装置12よりDMAC10へDMA
要求20が伝えられると(501)、実行制御回路150はバス
ホールド要求信号(HLDRQ)22をアクティブにしてCPU11
にバス制御権を要求する(502)。
CPU11はHLDRQ22がアクティブになると実行中のプログ
ラム処理を中断して、PC,PSW,各種レジスタ類の内容を
プログラム中断状態のまま保持しつつバス出力信号をハ
イインピーダンスとしつつ、ホールド・アクノリッジ信
号(HLDAK)23をアクティブにしてDMAC10にバス制御権
を与えたことを伝える。なお、CPU11及びDMAC10ともバ
ス制御権を放棄した側のバス5への出力はハイ・インピ
ーダンスとなり、他方のバス制御権を得た側の出力によ
りバス5は制御信号のアクティブ,インアクティブが制
御される。
DMA実行制御部150はHLDAK23のアクティブを検出する
と(503)、周辺装置12に対してアクティブレベルアク
ノリッジ信号(DMAAK)21を出力して周辺装置12に転送
データをバス5上に読み出させる(504)。同時にMAR10
1の内容を用いてバス5を介してデータライトアクセス
を実行し(505)、周辺装置12から読み出された被転送
データをバス5を介してメモリ部2に伝え書き込みを行
う。
一回のDMA転送の実行終了ごとにMAR101の内容は信号
線35を介してINC/DEC回路100に読みだされ“1"インクリ
メントされた後、信号線307を介して書き戻される(50
6)。またU/Dカウンタ120の内容が信号線U(38)によ
り“1"カウントアップされる(507)。TC111の内容は信
号線31を介してDEC回路110に読み出され“1"デクリメン
トされた後信号線30を介して書き戻される(508)。こ
のとき、TC111に設定された所定回数のDMA転送が実行さ
れ、DEC回路110でTC111のデクリメントの結果ボローが
発生すると(509)、ボロー信号33が発生し、MARM102及
びTCM112の内容は各々MAR101とTC111にロードされる(5
10)。従って、この後に周辺装置12からDMA要求20が発
生しDMA転送実行されるときには、再びメモリ2のエリ
アaの先頭アドレスからDMA転送が実行され、つまりエ
リアaの領域をリング構造として同領域で繰り返しDMA
転送を行うことができる。
続いてDMAC10は周辺装置12からのDMA要求20がアクテ
ィブかどうか判定し(511)、アクティブでなければHLD
RQ22信号をイン・アクティブにして(512)、CPU11にバ
ス制御権の放棄を伝えステップ501に戻りDMA転送動作を
終了する。周辺装置12からのDMA要求20がアクティブで
ある時には、ステップ504に戻り、再び上記のDMA転送動
作を繰り返す。
CPU11はバス制御権を取り戻すと、PC,PSW,及び各種レ
ジスタ類がすべて前の値を保持しているため、中断した
プログラム処理を即時に再開することができる。
本実施例では、DEC110からボロー信号33が出力される
前にCPU11がメモリ2のエリアaからDMA転送データを読
みだすことを容易に実現しており、そのためのプログラ
ム動作が第4図(B)に示されている。すなわち、まず
CPU11はU/Dカウンタ120の内容を読み出し(410)、メモ
リ2にDMA転送されたデータ数を得る(411)。U/Dカウ
ンタ120の内容が“0"でなければ少なくとも一回以上のD
MA転送が実行されたことを示しており、この時は続いて
RP103の内容を読み出し、DMA転送データを記憶している
メモリ2の先頭アドレスを得る。RWP103の読み出しがDM
AC10の初期設定後、初めてであれば、RP103にはエリア
の先頭アドレスが記憶されている。CPU11はRP103内容を
読みだし、読み出したデータをアドレスとしてメモリ2
の間接アドレッシングを行うことで、DMA転送されたデ
ータを読み出す(412)。そして、読み出したDMA転送デ
ータに対して所定の処理を実行し表示バス5を介して表
示制御回路3へ転送する(413)。
一方、DMAC10側では、RP103の内容がCPU11に内容が読
み出される毎に、第5図(B)の処理が実行される。す
なわち、実行制御部150はRP103の内容をデータ線36に出
力し、INC/DEC回路100によりインクリメントしてその結
果をデータ線37を介してRP103に書き戻す(520)。この
とき、RP103の更新はDMA転送実行時のMAR101の更新内容
に等しく行われる。例えば1回のDMA転送毎にMAR101の
内容が“1"インクリメントされるのであれば、RP103はC
PU11に1回読み出される毎に内容が“1"インクリメント
される。INC/DEC100はさらに信号(D)39を発生しU/D
カウンタ120を“1"ダウンカウントさせる。RP103の内容
はデータ線40を介してCOMP105によって監視されてお
り、その内容がエリアaの(終端アドレス−1)を指し
ている際には、COMP105は信号41を発生し(521)、MARE
106の内容がRP103に書き込まる(522)。
U/Dカウンタ120はCPU11がRP103の内容を読み出す毎に
“1"カウントダウンされ、DMA転送が実行される毎に
“1"カウントアップされる。したがって、U/Dカウンタ1
20の内容は、まだ読み出されていないDMA転送されたデ
ータ数を示し、RWP103の内容は次に読み出すべきDMA転
送されたデータの先頭アドレスを示している。
第4図(B)に戻って、CPU11はプログラム処理でU/D
カウンタ120の内容が“0"になるまで(414)、繰り返し
エリアaに書き込まれたDMA転送データの読みだして所
定の処理を実行する。
DMAC10のU/Dカウンタ120の内容はCOMP121でモニタさ
れており、COMP121にはプログラムによりメモリ2の“D
MA転送領域(エリアa)のデータ数−α(α:0〜数ワー
ド程度)”が設定されている。DMA転送が実行され、U/D
カウンタ120の内容がCOMP121に一致すると一致信号25を
実行制御部150に伝える。実行制御部150は一致信号25が
伝えられたことにより、CPU11にDMA転送データの引き取
り要求するDMA割り込み(DMAINT)24を発生する。DMAIN
T24は、CPU11に引き取られていないDMA転送データでエ
リアaが一杯になっている事を示しており、そのまま放
置すれば、次に発生するDMA転送でエリアaの内容がオ
ーバライトされてしまう。従って割り込み処理プログラ
ムにより直ちにCPU11はデータの読みだしを実行する。
なおCOMP121にはCPU11におけるDMA割り込み24の受付遅
延を考慮して、エリアaの実際のデータ数よりも数ワー
ド分少ない値を設定した方が好ましい。
以上説明したように、本実施例のDMACを内蔵したマイ
クロコンピュータ1においては、CPUがDMACを一回初期
化するだけで、DMA転送を行ったメモリの同一転送領域
に繰り返しDMA転送を実行する。またDMA転送領域の専用
読み出しポインタと、DMA転送が実行されると自動的に
カウントアップされ、CPUが専用読み出しポインタによ
りDMA転送領域からデータの読み出しを行うと自動的に
カウンタダウンされるU/Dカウンタとを利用することに
より、DMA転送バッファとして使用するメモリ領域をCPU
は第3図(b)に示すように論理的にリング構造してい
るバッファとして扱うことが可能である。このためCPU
は任意のタイミングでDMA転送バッファの内容を読み出
して、必要なデータ処理を行うことができる。
第2の実施例を第4図を用いて説明する。
本実施例が第1の実施例の異なるのはDMAC10内の実行
制御部150で、実行制御部150内のDMA転送許可フラグ451
がCOMP121の一致信号25の発生により自動的にリセット
する機能を付加して構成されたものである。
実行制御部150の他の動作及びマイクロコンピュータ
1とDMAC10の他の構成要素の動作は第1の実施例と同一
であるから説明を省略する。
本実施例ではCPU11はその初期設定処理でDMA転送許可
フラグ451をセットしてDMAスタートを許可する。DMAC10
が周辺装置12からのDMA要求20によりDMA転送を実行し、
U/Dカウンタ120がカウントアップし続けた結果、COMP12
1から一致信号25が発生するとDMA転送許可フラグ451が
自動的にリセットされ、DMA転送禁止状態になる。この
ためCPU11に引き取られていないDMA転送データでDMA転
送バッファが一杯になっている状態で、次にDMA転送が
発生して転送バッファの内容がオーバライトされてしま
うことはない。
かかる構成では、例えば情報処理システムに何等化の
異常が発生したため以前の受信データが未処理のまま残
っている場合、この後に送られてくる通信データはそれ
を破棄し、後に再度通信を要求する、といったハンドシ
ェイクを行う情報処理システムに有効である。前述のと
おり、一致信号25によってDMAINT24が発生され、CPU1が
メモリ内のデータ処理を終了した後、許可フラグ451は
再度セットされる。
なお、上記実施例において、メモリ・アドレス・レジ
スタMAR101はインクリメントするものとして説明した
が、デクリメントする場合においても効果は変わらな
い。
上記各実施例では、周辺装置からメモリへのDMA転送
について示したが、メモリから周辺装置へのDMA転送も
あり、以下、かかる転送について説明する。
第7図は本発明の第3の実施例によるデータ転送制御
装置としてのDMAC212を内蔵するマイクロコンピュータ2
00を用いた情報処理システムの構成を示すブロック図
で、第8図はDMAC212の要部構成を示すブロック図であ
る。マイクロコンピュータ200は中央処理装置CPU210
と、周辺装置210(例えばデータ受信制御回路)と、周
辺装置240およびメモリ231間のデータ転送処理を実行制
御するデータ処理回路としてのダイレクト・メモリ・ア
クセス・コントローラ(DMAC)212とを有している。
マイクロコンピュータ200は、周辺装置210で受信した
外部装置からのデータおよび/又はメモリ231内のスト
アデータに対しプログラム処理してメモリ231内のDMA転
送元領域230に書き込み、DMAC212を用いて周辺装置240
(例えばプリンタ制御装置)に転送するといった情報処
理システム全体の制御を行なう。
周辺装置240は、データのリード/ライト用バッファ
を備えており、DMAC212により上記バッファに送られた
データを基に、印字処理,表示処理等の周辺装置固有の
処理を行う。
メモリ231は、CPU211のプログラム領域とデータ領
域、およびDMA転送元領域230を含み、CPU211とDMAC212
のいずれかの制御によりバス250を介して情報処理シス
テムの各種データを一時記憶する。
マイクロコンピュータ200のCPU211は、内部にプログ
ラムカウンタ,プログラムステータスワード、各種制御
レジスタ等を含み、各種命令の実行制御と、DMAC212と
の間でのアドレス・バス、データ・バス、リード信号、
ライト信号を含むバス5の使用権の授受制御とを含む動
作制御を行う。
マイクロコンピュータ200のDMAC212は、第8図に示す
ように、DMA転送元領域231の(最終アドレス+1)の値
を記憶するメモリ・アドレス・レジスタ(MAR)306と、
実行すべきDMA転送回数(初期値)を設定するターミナ
ル・カウンタ・モジェロ・レジスタ(TCM)303と、実際
に実行されたDMA転送回数を記憶するターミナル・カウ
ンタ(TC)302と、MAR306からTC302を減算、あるいはMA
R306からTCM303を減算してアドレスを生成するアドレス
生成回路(ADM)304と、CPU211が次に書き込むべきメモ
リ領域の先頭アドレスを指定するライト・ポインタ(W
P)308と、1回のDMA転送を実行する毎にカウントアッ
プし、CPU211がWP308の内容を読み出す毎にカウンタダ
ウンすることにより、DMA転送領域内の空き領域のデー
タ数を示すアップ・ダウン・カウンタ(U/Dカウンタ)3
09と、U/Dカウンタ309の値との比較値を格納し、比較の
結果等しくなると一致信号311を出力するコンペア・レ
ジスタ(COMP)310と、WP308の内容が読み出される毎に
その内容を更新するポインタ更新部307と、TC302の内容
をデクリメントするデクリメント301とを有する。さら
に、CPUとの間のバス5の使用権の授受制御と、データ
の転送方向とアクセスタイミング等の制御情報を記憶す
るコントロールレジスタおよびDMA転送許可フラグを基
に、DMA転送動作時の転送タイミング制御ならびに内部
各制御レジスタの更新制御を含むDMAC全体の制御とを行
う実行制御部100を備えている。
本実施例のDMAC212はメモリ231から周辺装置240へDMA
転送でデータを転送しており、以下その動作について具
体的に説明する。
まず、CPU11側のソフトウェア処理について説明す
る。CPU11はDMA転送処理に先だって第10図(A)のフロ
ーに示すように初期設定処理を行う。まず、WP308にDMA
転送元領域230の先頭アドレスを設定し(ステップ100
1)、MAR306に“DNA転送元領域230の最終アドレス+1"
を設定する(ステップ1002)。次に、TC302,TCM303、U/
Dカウンタ309にDMA転送元領域230のデータ数(例えばバ
イトデータの転送を行うときには領域230の先頭アドレ
スから最終アドレスまでのデータバイト数)を設定する
(ステップ1003)。また、COMP310に“データ転送元領
域230のデータ数−α”(α:0〜数バイト程度)を書き
込む(ステップ1004)。その後、WP307を利用した転送
すべきデータの書き込みをU/Dカウンタ309の値がCOMP31
0の値より小さくなるまで実行し(ステップ1006,100
7)、DMA許可フラグをセットしてDMA転送をスタートす
る(ステップ1008)。前述のとおり、転送すべきデータ
をメモリの領域310に書き込むごとにWP307の内容を更新
されU/Dカウンタ309の内容はダウンカウントされる。
CPU11は上記のDMA初期設定処理を終了後は、プログラ
ムに従って他の処理を続行する。この処理において、周
辺装置10から受信したデータおよび/又はメモリ231の
他の領域のデータを基に転送すべきデータを生成する
と、その時点でその生成したデータをDMA転送元領域30
に書き込むことができる。すなわち、このCPU11による
書き込み処理を第4図(B)に示すように、まず、U/D
カウンタ309の内容を読み出す(ステップ1010)。U/Dカ
ウンタ309の値が0であるとき、すなわちDMA転送が実行
されずにDMA転送元領域230に空き領域がないとき、デー
タの書き込み処理は行わない(ステップ1011)。U/Dカ
ウンタ309の値が0以外のとき、WP307が指し示すDMA転
送元領域230のアドレスにデータを書き込み(1012)、
この処理をU/Dカウンタ309の値が示す回数分実行する
(1013)。なお、転送すべきデータがU/Dカウンタ309が
示す数分揃っていないときは用意されているデータ書き
込む終了する。このように、CPU11はプログラム処理
で、DMA転送元領域230に空き領域がある限り任意のタイ
ミングでDMA転送データの書き込みを繰り返し行うこと
ができる。
一方、第10図(A)のCPU211のステップ1008によりDM
Aスタートを許可されたDMAC212は第11図にフローに従っ
て動作している。
すなわち、周辺装置2がDMA転送要因の発生により、D
MA実行制御部300に対しDMA転送要求信号220を活性化す
る。実行制御部300はDMA転送要求信号220が活性化する
と(1111)、HLDRQ222をアクティブにしてCPU11にバス
使用権を要求する(1112)。
CPU211はDMAC212からのHLDRQ222の発生を常にモニタ
しながら、所定のプログラム処理を実行している。HLDR
Q222が活性化状態となったことを検知すると、実行中の
プログラム処理を中断して、PC、PSW、各種レジスタ類
の内容をプログラム実行時の値のまま保持し、バス出力
信号をハイインピーダンスとして、ホールド・アクノリ
ッジ信号HLDAK223を活性化してDMAC212にバス使用権を
与えたことを伝える。
DMAC212は、HLDAK223のアクティブレベルを検出する
と(1113)、ADM304にMAR306からTC302の値を減算させ
てアドレス情報得(1114)、そのアドレス情報をバス25
0に出力してメモリリードサイクルを起動する(111
5)。その結果、DMA転送元領域230からの転送データが
バス250上に読み出される。又、周辺装置240に対してア
クノリッジ信号221を出力する(1116)。これにより、
周辺装置240は転送データを取り込む。一回のDMA転送の
実行終了ごとにTC302の内容はデクリメンタ301に読み出
され“1"デクリメントされた後書き戻される(1117)。
これにより、MAR306からTC302の値を減算して生成され
るDMA転送対象アドレスは“1"ずつインクリメント更新
されていくことになる。また一回のDMA転送の実行終了
ごとにU/Dカウンタ309の内容は“1"カウントアップされ
る(1117)。
周辺装置240からDMA転送要求信号220が続けて発生し
ている時(1120)には、再び上記のDMA転送動作を繰り
返す。周辺装置240から連続するDMA転送要求信号220が
発生していなければDMAC212はHLDRQ222信号をイン・ア
クティブにして(1121)、CPU211にバス使用権の放棄を
伝えDMA転送動作を終了する。
以上のDMA転送を繰り返し実行し、デクリメンタ301で
TC302をデクリメントした結果TC=0となり(1118)、T
C302に設定された所定回数のDMA転送の実行を終了する
と、実行制御部300はTCM303の内容をTC302にロードする
(1119)。その後、周辺装置240からDMA転送要求信号22
0が発生しDMA転送が実行されときには、再びメモリ231
のDMA転送元領域230の先頭アドレスからDMA転送が実行
される。このようにして、DMA転送元領域230を用いて繰
り返しDMA転送を行うことができる。
一方、HLDRQ222のインアクティブによりCPU211はバス
使用権を取り戻すと、PC,PSW,及び各種レジスタ類がす
べてプログラム処理中断前の値を保持しているため、中
断したプログラム処理を即時に再開する。プログラム実
行の再開により、DMA転送元領域320にデータを書き込む
必要が生じると、第10図(B)に従ってその処理が実行
される。データ書き込み処理が実行される毎に、U/Dカ
ウンタ309の内容は“1"カウントダウンし、WP308の内容
は“1"インクリメントする。MAR306は自身の値とWP308
の更新結果の値とを比較している。比較の結果一致を検
出し、WP308がDMA転送元領域230の終端アドレスを越え
た場合、MAR306は一致信号305をADM304に対して活性化
する。ADM304はこの一致信号305の活性化を検出するとM
AR306からTCM303の値を減算してWP308に書き込む。これ
により、WP308はDMA転送元領域230の先頭アドレスに更
新される。かくしてDMAC212の各レジスタとメモリ領域2
30とは第9図の関係と又、U/Dカウンタ309の値はCOMP31
0によってモニタされている。DMA転送に先立ちCOMP310
にはプログラムにより“DMA転送元領域のデータ数−
α”が設定されている。DMA転送が実行され、U/Dカウン
タ309がカウント・アップしてCOMP310に一致すると一致
信号311が実行制御部300に伝えられる。この一致信号31
1は、DMA転送元領域にDMA転送すべきデータが残ってい
ないことを示している。実行制御部300は一致信号311が
活性化状態になったことを検知するとCPU211に対してDM
A割り込み要求信号224を発生する。
CPU11は、DMA割り込み要求信号24の発生により起動さ
れる割り込み処理で、DMA転送を禁止状態にするか、又
はU/Dカウンタ309の値がCOMP310の値より小さくなるま
でDMA転送元領域230に直ちにデータを書き込む。なお、
αを“0〜数バイト程度”としたのは、COMP310が一致
を検出してからDMA転送を禁止するか、あるいはデータ
をCPUが書き込むまでの遅延期間にも行われるDMA転送に
よってCPUの未処理データが転送されてしまうことを防
止するためのものである。
以上説明したように、本実施例のDMACを内蔵したマイ
クロコンピュータ200によれば、メモリの同一転送領域
に対し繰り返しDMA転送が実行される。また、DMA転送元
領域の専用書き込みポインタと、CPUが専用書き込みポ
インタによりDMA転送元領域にデータを書き込むと自動
的にカウントダウンし、DMA転送が実行されると自動的
にカウントアップするU/Dカウンタを利用することによ
り、CPUは書き込みアドレスを管理することなくDMA転送
元領域として使用するメモリ領域をCPUは論理的にリン
グ構造をしているバッファとして扱うことができる。
第4の実施例について第12図を用いて説明する。
本実施例が第3の実施例と異なるのは、DMAC212内の
実行制御部300で、DMA転送許可フラグ330がCOMP310の一
致信号311の発生により自動的にリセットする機能が付
加されている。実行制御部300の他の動作及びDMAC212の
他の構成、動作は第3の実施例と同一であるのでここで
は説明を省略する。
本実施例ではCPU211が実行するプログラムの初期設定
処理によりセットされたDMA転送許可フラグ330は、一致
信号311が発生すると、リセット状態となる。したがっ
て、CPU211がDMA転送データをDMA転送元領域230に書き
込む前に、DMAC212がDMA転送元領域230からDMA転送デー
タを読み出すことが防止される。このフラグ330はCPU21
1の割り込み処理で再セットされる。
第13図に第5の実施例を示す。本実施例が第3の実施
例と異なるのは、CPU211がDMA転送データを書き込むべ
きメモリ領域の先頭アドレスをMAR306からオフセット・
アドレスOFFAD350をADM304で減算して生成するものとし
た点である。DMAC212の他の構成、動作は第3の実施例
と同一であるのでここでは説明を省略する。
本実施例において、CPU211がデータをメモリ領域に書
き込むときの動作について説明する。CPU211は初期設定
処理でMAR306に“DMA転送元領域230の最終アドレス+1"
を、OFFAD350にDMA転送元領域230のデータ数をそれぞれ
あらかじめ設定しておく。したがって、CPU211からの転
送元領域230のデータ書込み要求に対し、DMAC212はMAR3
06からOFFAD350の値を減算した値を書込みアドレスとし
て出力する。書き込みの度に、ポインタ更新部307によ
りOFFAD350の値は“1"デクリメントされる。したがっ
て、データを書き込むアドレスは順次自動的に更新され
る。OFFAD350のデクリメントの結果、OFFAD=0となり
データ書き込みアドレスがDMA転送元領域230の最終アド
レスを越えたとき、実行制御部300はTCM303の内容をOFF
AD350にロードする。なお、第1,第2の実施例に示したD
MACの構成は第3−第5の実施例としても使用でき、そ
の逆もできる。
〔発明の効果〕
以上説明したように、本発明のデータ転送制御装置
(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図は第1図
のDMACの要部構成を示すブロック図、第3図(A),
(B)は夫々本発明の第一の実施例におけるメモリのマ
ップ、第4図(A),(B)は第1図のCPUの動作を示
すフローチャート、第5図(A),(B)は第2図のDM
ACの動作を示すフローチャート、第6図は本発明の第二
の実施例におけるDMACの要部構成を示すブロック図、第
7図は本発明の第3の実施例におけるDMACを用いた情報
処理システム構成を示すブロック図、第8図は第7図に
おけるDMACの要部構成を示すブロック図、第9図は第7
図のメモリのマップ、第10図(A),(B)は第7図に
示したCPUの処理フローチャート、第11図は第8図に示
したDMACの動作フローチャート、第12図は本発明の第4
の実施例におけるDMACの要部構成を示すブロック図、第
13図は本発明の第5の実施例におけるDMACの要部構成を
示すブロック図である。 1……マイクロコンピュータ、2……周辺装置、3……
メモリ、5……バス、10……周辺装置。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 三平 裕子 東京都港区芝5丁目7番1号 日本電気 株式会社内 (56)参考文献 特開 平1−93846(JP,A)

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】メモリのダイレクトメモリアクセス(DM
    A)転送領域として割り当てられた領域のうちの所定ア
    ドレスに関連するアドレスを格納するメモリアドレスレ
    ジスタと、転送すべきデータ数を格納するターミナルカ
    ウンタと、これらメモリアドレスレジスタおよびターミ
    ナルカウンタを使って、前記メモリと周辺装置との間の
    データ転送を実行するDMA実行制御部と、前記メモリの
    前記領域のアクセスに使用されるデータを格納するリー
    ドポインタと、前記リードポインタの内容を用いたメモ
    リアクセスが実行される毎に前記リードポインタの内容
    を更新する手段と、前記データ転送が実行される毎にそ
    の値を第1の方向に更新し前記リードポインタの内容を
    用いたメモリアクセスが実行される毎にその値を前記第
    1の方向とは反対の第2の方向に更新されるアップダウ
    ンカウンタとを備えることを特徴とするデータ転送制御
    装置。
JP2195631A 1989-07-24 1990-07-24 データ転送制御装置 Expired - Fee Related JP2978539B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP19174789 1989-07-24
JP1-191747 1989-07-24

Publications (2)

Publication Number Publication Date
JPH03129448A JPH03129448A (ja) 1991-06-03
JP2978539B2 true JP2978539B2 (ja) 1999-11-15

Family

ID=16279833

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2195631A Expired - Fee Related JP2978539B2 (ja) 1989-07-24 1990-07-24 データ転送制御装置

Country Status (2)

Country Link
US (1) US5287471A (ja)
JP (1) JP2978539B2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3055917B2 (ja) * 1990-05-22 2000-06-26 日本電気株式会社 データ転送制御装置
US5452432A (en) * 1990-08-14 1995-09-19 Chips And Technologies, Inc. Partially resettable, segmented DMA counter
JPH0546407A (ja) * 1991-08-12 1993-02-26 Toshiba Corp スタツク管理システム
JPH05250305A (ja) * 1992-03-06 1993-09-28 Mitsubishi Electric Corp データ転送制御方式
JP3471384B2 (ja) * 1993-03-19 2003-12-02 富士通株式会社 データ転送装置及びデータ転送処理方法
US5655151A (en) * 1994-01-28 1997-08-05 Apple Computer, Inc. DMA controller having a plurality of DMA channels each having multiple register sets storing different information controlling respective data transfer
US5828856A (en) * 1994-01-28 1998-10-27 Apple Computer, Inc. Dual bus concurrent multi-channel direct memory access controller and method
US5805927A (en) * 1994-01-28 1998-09-08 Apple Computer, Inc. Direct memory access channel architecture and method for reception of network information
US5835742A (en) * 1994-06-14 1998-11-10 Apple Computer, Inc. System and method for executing indivisible memory operations in multiple processor computer systems with multiple busses
US5628026A (en) * 1994-12-05 1997-05-06 Motorola, Inc. Multi-dimensional data transfer in a data processing system and method therefor
US5495614A (en) * 1994-12-14 1996-02-27 International Business Machines Corporation Interface control process between using programs and shared hardware facilities
KR0135813B1 (ko) * 1994-12-19 1998-06-15 김광호 엠피이지으로 압축된 데이타 전송방법 및 그 방법을 수행하기 위한 장치
US5613162A (en) * 1995-01-04 1997-03-18 Ast Research, Inc. Method and apparatus for performing efficient direct memory access data transfers
US5603050A (en) * 1995-03-03 1997-02-11 Compaq Computer Corporation Direct memory access controller having programmable timing
US6247040B1 (en) 1996-09-30 2001-06-12 Lsi Logic Corporation Method and structure for automated switching between multiple contexts in a storage subsystem target device
US6148326A (en) * 1996-09-30 2000-11-14 Lsi Logic Corporation Method and structure for independent disk and host transfer in a storage subsystem target device
US6081849A (en) * 1996-10-01 2000-06-27 Lsi Logic Corporation Method and structure for switching multiple contexts in storage subsystem target device
US6449665B1 (en) 1999-10-14 2002-09-10 Lexmark International, Inc. Means for reducing direct memory access
US20050210166A1 (en) * 2004-03-17 2005-09-22 Raymond Chow Dual function busy pin

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3381420D1 (de) * 1982-11-16 1990-05-10 Unisys Corp Blockzaehlersystem zur ueberwachung von datentransfer.
JPS6057457A (ja) * 1983-09-07 1985-04-03 Ricoh Co Ltd Dma装置
JPS60235269A (ja) * 1984-05-08 1985-11-21 Toshiba Corp デ−タ転送制御装置
JPH0760423B2 (ja) * 1984-12-24 1995-06-28 株式会社日立製作所 データ転送方式
JPS6275860A (ja) * 1985-09-30 1987-04-07 Toshiba Corp デ−タ転送制御装置
US4797853A (en) * 1985-11-15 1989-01-10 Unisys Corporation Direct memory access controller for improved system security, memory to memory transfers, and interrupt processing
JP2559394B2 (ja) * 1987-02-16 1996-12-04 株式会社日立製作所 通信制御装置
DE3782335T2 (de) * 1987-04-22 1993-05-06 Ibm Speichersteuersystem.
JPH0193846A (ja) * 1987-10-05 1989-04-12 Fuji Xerox Co Ltd デュアル・ポート・メモリー制御装置
US5003465A (en) * 1988-06-27 1991-03-26 International Business Machines Corp. Method and apparatus for increasing system throughput via an input/output bus and enhancing address capability of a computer system during DMA read/write operations between a common memory and an input/output device
US5056010A (en) * 1989-10-30 1991-10-08 Industrial Technology Research Institute Pointer based DMA controller

Also Published As

Publication number Publication date
JPH03129448A (ja) 1991-06-03
US5287471A (en) 1994-02-15

Similar Documents

Publication Publication Date Title
JP2978539B2 (ja) データ転送制御装置
US5497501A (en) DMA controller using a predetermined number of transfers per request
KR960007839B1 (ko) 데이타 전송 제어 장치
JP3055917B2 (ja) データ転送制御装置
JPH06309230A (ja) バススヌ−プ方法
US5481756A (en) DMA controller mailing auto-initialize halting unit
JP2819705B2 (ja) データ転送制御装置
JP3265582B2 (ja) マイクロコンピュータ
JP2765267B2 (ja) ダイレクトメモリアクセス転送制御装置
JP2679440B2 (ja) 情報処理装置
JPS63118949A (ja) 情報処理装置
JP2837698B2 (ja) ダイレクト・メモリ・アクセス制御装置
JP2560968B2 (ja) コンピュータシステム
JPS5839343B2 (ja) マルチプロセツサシステム ノ ユウセンセイギヨホウシキ
JP2825589B2 (ja) バス制御方式
JPH0322071A (ja) データ転送処理回路
JPH01316851A (ja) チャネル制御方式
JP2001117862A (ja) マイクロコンピュータ
JPH02299048A (ja) 転送制御方式
JPS6215644A (ja) キヤツシユメモリ制御回路
JPH0782447B2 (ja) Dmaデータ転送制御装置
JPS5856057A (ja) 割込信号発生装置
JPS62152056A (ja) 情報処理装置
JPH0962611A (ja) データ転送制御装置
JPH05113947A (ja) Dma制御方式

Legal Events

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

Free format text: PAYMENT UNTIL: 20080910

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees