JP2765267B2 - ダイレクトメモリアクセス転送制御装置 - Google Patents

ダイレクトメモリアクセス転送制御装置

Info

Publication number
JP2765267B2
JP2765267B2 JP3113627A JP11362791A JP2765267B2 JP 2765267 B2 JP2765267 B2 JP 2765267B2 JP 3113627 A JP3113627 A JP 3113627A JP 11362791 A JP11362791 A JP 11362791A JP 2765267 B2 JP2765267 B2 JP 2765267B2
Authority
JP
Japan
Prior art keywords
transfer
dma
register
data
signal
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
JP3113627A
Other languages
English (en)
Other versions
JPH04227558A (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
Priority to JP3113627A priority Critical patent/JP2765267B2/ja
Publication of JPH04227558A publication Critical patent/JPH04227558A/ja
Application granted granted Critical
Publication of JP2765267B2 publication Critical patent/JP2765267B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Bus Control (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、メモリと周辺装置との
間のデータ転送をダイレクト・メモリ・アクセス(以
下、DMAという)方式で行なうデータ転送制御装置に
関する。
【0002】
【従来の技術】マイクロコンピュータを利用した情報処
理システムにおいて、周辺装置とメモリ間で大量のデー
タ転送を行ない、これらのデータを中央処理装置(以下
CPUという)で処理、加工してさらに別の周辺装置、
記憶装置(メモリ)へ転送する動作が頻繁に行なわれて
いる。この場合、周辺装置からCPUに対して割り込み
を発生させ、割り込みルーチンによってデータ転送を行
なうと、CPUの割り込み処理のための時間、いわゆる
オーバヘッドが増大してしまい、システムのデータ処理
効率が低下してしまう。そこで、近年、周辺回路とメモ
リ間でCPUを介することなしにデータ転送を行なうた
めのデータ転送制御装置としてDMAコントローラが提
供されている。
【0003】このDMAコントローラを用いてDAM転
送を行なう場合、予めCPUがDMAコントローラに各
種制御情報を設定する。周辺回路(例えば通信制御回
路、表示制御回路、プリンタ装置など)からDMA要求
がDMAコントローラに対して行なわれると、DMAコ
ントローラはCPUに対してバス制御権の空け渡しを要
求する。この要求をCPUが検知すると、CPUはこの
DMA要求より優先度の高い割込み要求がない場合に現
在実行中のプロクラム処理を中断し、アドレスバス、デ
ータバスのバス制御権をDMAコントローラに渡す。そ
して、DMAコントローラは空いたバスを利用して予め
設定された各種情報に応じて、周辺回路とメモリ間のデ
ータ転送をCPUを介することなしに行なう。
【0004】データ転送の形態として、1回のDMA要
求により予め指定された領域のデータを連続して転送す
るのが一般的である。この指定領域のデータの転送がす
べて終了すると、DMAコントローラは周辺回路および
CPUに対してDMA完了を通知する。この通知により
周辺回路はDMA転送を禁止状態にするなどの処理を行
ない、CPUはメモリ内のデータ処理を行なった後、再
びDMA転送のための各種制御情報をDMAコントロー
ラに再設定する。
【0005】
【発明が解決しようとする課題】近年の情報処理システ
ムでは、周辺装置の1つであるプリンタ装置の印字ヘッ
ド部に対してメモリ内の指定領域に格納された印字デー
タを転送する場合のように、1回のDMA要求により転
送するデータの量が少なく(例えば数バイト)、しかも
その転送が頻繁に行なわれる場合がある。このような場
合、転送終了状態が頻繁に発生し、その都度CPUはD
MA開始アドレス、転送データ数の再設定の処理などを
行なわなければならず、CPUの処理負担が大きくなっ
てしまう。また、CPUの処理が終了するまで次のDM
A要求を受け付けられないことによるDMA転送効率の
悪化を招いてしまう問題点があった。
【0006】したがって本発明の目的は、CPUの処理
負担を低減し、DMA転送の効率を向上することができ
るDMA転送制御装置を提供することにある。
【0007】
【課題を解決するための手段】本発明のダイレクトメモ
リアクセス転送制御装置は、周辺装置からダイレクトメ
モリアクセス転送要求が伝えられたことを検知しCPU
に対してバス制御権の空け渡し要求を伝える手段と、C
PUからバス制御許可信号を受けるとDMA実行許可信
号を発生する手段と、CPUからのメモリのダイレクト
メモリアクセス転送領域として割合てられた領域のうち
の所定アドレスに関連するアドレスを格納する第1のレ
ジスタと、転送すべきデータ数に関連する情報を格納す
る第2のレジスタと、1回の転送要求に対して何回デー
タ転送を行なうかの情報を格納する第3のレジスタと、
DMA実行許可信号を受けて第1および第2のレジスタ
を使ってメモリと周辺装置との間のデータ転送を実行す
る実行手段と、第3のレジスタに格納された情報に基づ
いた回数だけ実行手段がデータ転送したことを検知しC
PUに対するバス制御権の空け渡し要求を取り下げる手
段とを有する。
【0008】
【実施例】以下、図面を参照して本発明の実施例を説明
する。図1は本発明の一実施例によるDMA転送制御装
置(以下DMACという)10を内蔵する情報処理シス
テムの構成を示すブロック図である。この情報処理シス
テムはCPU11と、周辺装置の1つとしてプリンタ1
2と、他の周辺装置14と、メモリ装置13と、メモリ
装置13と周辺装置13および14との間のデータ転送
処理をCPU11の処理動作とは排他的に実行制御する
DMAC10と、これらの装置10から14がそれぞれ
接続されたデータバス15およびアドレスバス16とを
有している。
【0009】このような構成の情報処理システムは、周
辺回路14で受信した外部装置(図示せず)からのデー
タをDMAC10を用いてDMA転送によりメモリ装置
13に転送し、このデータをプログラム処理した後、更
にDMA転送により周辺装置12(本実施例の場合、プ
リンタ)にデータを送るといった制御動作を行なう。
【0010】周辺装置12は送られてきたデータ(ここ
では印字データ)を基に、印字ヘッド部によりプリント
処理を行なう。
【0011】CPU11は、内部にプログラムカウン
タ、プログラムステータスワード、各種制御レジスタ等
を含み、各種命令の実行制御を行ない、さらにDMAC
10との間でデータ入出力バス15、アドレスバス16
についての制御権の授受を含む動作制御を行なう。
【0012】メモリ装置13は、CPU11用のプログ
ラムメモリとプログラムメモリに格納されたプログラム
の実効の際につかわれるデータメモリを含み、CPU1
1とDMAC10の制御により情報処理システムの各種
データを記憶する。メモリ装置13のデータメモリはD
MA転送のために割り合てられた領域を有している。
【0013】DMAC10は周辺装置12からDMA要
求信号100を受けると、CPU11に対してバス制御
要求信号130を伝え、CPU11からバス制御許可信
号140を受けると、周辺装置12に対してDMA応答
信号110を伝え、DMA転送の制御を行なう。
【0014】次に本実施例の動作について説明する。C
PU11はDMA転送処理に先だってDMAC10に対
する初期設定(DMA転送の先頭アドレス、1回のDM
A要求に対する転送回数、転送データ数などの設定)を
プログラムにもとずき実行する。CPU11はその後プ
ログラムにもとづき別の処理を続行する。周辺装置12
からDMA要求信号100を受けると、DMAC10は
CPU11に対してバス制御要求信号130を伝える。
CPU11は他の周辺回路などからの割込み要求を調停
し、DMACのバス制御要求より優先順位の高い割込み
要求がない場合に、DMAC10に対してバス制御許可
信号140を伝える。
【0015】DMAC10はバス制御許可信号140を
受けると、予じめ設定されたDMA転送の先頭アドレス
に基づきメモリ装置13のメモリ領域の先頭アドレスに
格納されている1ワードのデータを周辺装置12に転送
する。この時にDMAアドレスがインクリメント(又は
デクリメント)される。DMAC10は更新されたDM
Aアドレスにもとずきメモリ13の次アドレスに格納さ
れている次の1ワードのデータを周辺装置12に転送す
る。このようにして同じ動作のDMA転送を予じめ設定
された転送回数だけ繰り返す。
【0016】設定された転送回数だけDMA転送が行な
われると、DMAC10はバス制御要求信号130を取
下げ、CPU11に対してデータ入出力バス15、アド
レスバス16についての制御権を渡し、CPU11はD
MA転送を行なう前の処理を再開する。尚、この時に更
新されたDMAアドレスはそのままDMAC10に保持
されている。
【0017】再び周辺回路12からDMA要求信号10
0を受けると、DMAC10はバス制御要求信号130
の発送とバス制御許可信号140の受信を行ない、自身
に保持されているDMAアドレスに基づいて、設定され
た転送回数だけDMA転送を繰り返し、転送が終了する
とバス制御要求信号130を取下げる。この動作を繰り
返し、転送されたデータが予め設定されている転送デー
タ数に達すると、DMAC10はDMA終了信号120
を発生し、CPU11、周辺装置12に対して一連のデ
ータ転送が終了したことを知らせる。
【0018】CPU11はDMA終了信号120を受け
ると、DMAC10に対する初期設定処理をプログラム
にもとずき実行し、その後別の処理を続行する。
【0019】このような構成とすることにより、プリン
タに対するDMA転送のように、1度のDMA要求で印
字データを所定回数だけ(所定ワード数、例えば4ワー
ド)メモリ装置からDMA転送した後、バスの制御権を
CPUに渡し、プリンタから次のDMA要求がくると、
前のDMA転送を行なったデータが存在したメモリ領域
とアドレスが連続したデータを同じく所定回数だけDM
A転送する場合に、CPUの処理負担を低減することが
可能となる。即ち、1回のDMA要求に対する所定回数
のDMA転送が終了した後に、CPU11はDMAC1
0に対して初期設定処理を実行をすることはなく、次に
DMA要求がくると再び所定回数だけDMA転送をする
ことができる。このDMA転送はデータ転送元のメモリ
装置のメモリ領域のアドレスが連続している限り、CP
Uは初期設定処理を行なわずに周辺回路からのDMA要
求に応じてデータ転送を行なうことが可能となり、CP
Uの処理負担が大幅に低減できる。
【0020】次に図2から図4を参照して図1に示すD
MAC10を更に詳細に説明する。DMAC10は図2
に示すように、周辺装置12(図1)からDMA要求要
求信号100が入力されると要求フラグ信号201を発
生し、後に述べる一致検出信号204を受けると要求信
号フラグ信号201を取り下げるDMA要求制御回路2
00と、要求フラグ信号201を受けるとCPU11
(図1)に対してバス制御要求信号130を発生し、C
PU11からバス制御許可信号140を受けるとDMA
実行許可信号202を発生するDMAアクセス裁定回路
210と、DMA転送を行なう際のメモリ装置13(図
1)の転送元メモリ領域の先頭アドレス情報を格納する
アドレスレジスタ231とレジスタ231に格納されて
いるアドレスをインクリメントまたはデクリメントする
アドレス加減算回路232とを含むDMAアドレス生成
回路230と、メモリ装置13内の連続したアドレス領
域に格納されたデータであって、一連のDMA転送で周
辺回路12に転送される総データ数(転送データ数)の
情報が格納され、1回のDMA転送に応じてその格納さ
れているデータを減算し、全てのデータを転送するとD
MA終了検出信号203を発生するターミナルカウント
制御回路240と、1回のDMA要求信号100の発生
に対応して何回のDMA転送を行なうかを示すDMA転
送回数を格納し、DMA転送回数がその値に達すると一
致検出信号204を発生するDMAカウント制御回路2
50と、DMA転送に先立って、CPU11によりDM
A転送時にDMAカウント制御回路250を活性化する
か又は不活性化して通常のDMA転送とするかの情報を
格納しDMAカウント制御回路250に対して活性制御
信号205を発生するDMA制御レジスタ260と、D
MA転送時にDMA実行許可信号202を受けると周辺
回路に対してDMA転送の実行サイクルであることを示
すDMA応答信号110を発生し、DMA終了検出信号
203を受けるとDMA終了信号120を発生するDM
A応答制御回路220とを有する。
【0021】これらDMAアクセス裁定回路210、D
MAアドレス生成回路230、ターミナルカウント制御
回路240、DMAカウント制御回路250はCPU1
1から供給されるバスサイクル基準信号150に同期し
て動作している。
【0022】次に図3、図4を参照して図2に示すター
ミナルカウント制御回路240およびDMAカウント制
御回路250の一具体例を示す。図3に示すように、タ
ーミナルカウント制御回路240は、転送データ数を格
納するターミナルカウントレジスタ310と、1回のD
MA転送ごとにターミナルカウントレジスタ310の内
容を読み出し、それを減算してレジスタ310に書戻す
とともに、後に述べるゼロ検出回路330に加える減算
回路320と、減算回路320で減算した結果が0にな
ったことを検出しゼロ検出信号301を発生するゼロ検
出回路330と、バスサイクル基準信号150とDMA
実行許可信号202を入力とし、減算指示信号302を
減算回路320に出力するANDゲート回路30と、ゼ
ロ検出信号301とDMAアクセス裁定回路210から
供給されるDMA実行許可信号202とを入力とし、D
MA終了検出信号203を出力するANDゲート回路3
1とを有する。
【0023】図4に示すように、DMAカウント制御回
路250は、1回のDMA転送要求により実行するDM
Aの転送回数を格納する転送回数レジスタ410と、1
回のDMA転送が行なわれるごとにインクリメントされ
るカウンタ430と、転送回数レジスタ410の内容と
カウンタ430の内容を比較し一致した場合に一致信号
401を発生する比較回路420と、バスサイクル基準
信号150とDMA許可信号202を入力とし、カウン
ト信号402をカウンタ430に出力するANDゲート
回路41と、DMA許可信号202とDMA制御レジス
タ260(図2)から供給される活性制御信号205と
一致信号401を入力とし、一致検出信号204を出力
するANDゲート回路42とを有する。
【0024】次に図5、図6をも参照して本実施例の動
作について更に詳細に説明する。本実施例では、周辺装
置12(プリンタ装置)からの1回のDMA要求にもと
ずき、メモリ装置13に図6に示すDMA転送領域A1
に格納されている4ワードの印字データを所定回数(こ
の場合4回)のDMA転送により周辺装置12に転送す
る動作を繰り返し、アドレスが連続しているメモリ装置
13のDMA転送領域B1の全印字データを1回の初期
設定でDMA転送する。
【0025】まず、CPU11(図1)はDMA転送処
理に先だってDMAC10の初期設定処理をプログラム
にもとずき実行する。DMA制御レジスタ260に対し
てはDMA転送の動作形態情報、すなわち1回のDMA
転送で何ビットのデータ転送を行なうのか、DMA転送
動作においてDMAカウント制御回路250を活性化さ
せるのかどうかの情報を設定する。本実施例の場合、転
送ビット数は16ビットすなわち1ワードとし、DMA
カウント制御回路250を活性化させて動作させる情報
が設定され、活性制御信号205が活性状態(ハイレベ
ル)となる。
【0026】アドレスレジスタ231(図2)に対して
は転送元となるメモリ装置13の先頭アドレスTA(図
6)を設定する。
【0027】ターミナルカウント制御回路240に対し
ては、ターミナルカウントレジスタ310(図3)にメ
モリ装置13内のDMA転送領域B1(図6)に格納さ
れたデータ、すなわち一連のDMA転送で周辺回路12
に転送される総データ数(転送データ数)の情報がCP
U11によって設定される。本実施例の場合、DMA転
送領域B1を全て転送するのに必要なDMA転送回数が
設定される。
【0028】DMAカウント制御回路250に対して
は、CPU11は転送回数レジスタ410(図4)に1
回のDMA要求に対して何回DMA転送を行なうかの情
報(転送回数)を設定する。本実施例の場合は1回のD
MA要求に対して4回のDMA転送を行なうため、転送
回数レジスタ410には“3”を設定する。カウンタ4
30は“0”に初期化しておく。
【0029】CPU11はこれら初期設定処理を終了す
ると、プログラムにもとずき別の処理を続行するが、D
MAC10からのバス制御要求信号130の発生を専用
のハードウェア手段により常にチェックしている。
【0030】一方、周辺装置12は、DMA転送要因
(例えばプリント動作開始など)が発生すると、DMA
C10へDMA要求信号100を伝える。これによって
DMAC10は以下に説明するDMA転送動作を開始す
る。
【0031】周辺装置12からDMAC10にDMA要
求信号100が伝えられると、DMA要求制御回路20
0は要求フラグ201をアクティブにする(図5バスサ
イクル(A)参照)。これを受けてDMAアクセス裁定
回路210はCPU11に対してバス制御要求信号13
0を伝える。
【0032】CPU11はバス制御要求信号130を受
けると実行中のプログラム処理を中断して、PC(プロ
グラムカウンタ)、PSW(プログラムステータスワー
ド)、各種レジスタ類の内容をプログラム中断状態のま
ま保持しつつ、バス出力信号をハイインピーダンスとし
て、バス制御許可信号140をアクティブレベルとす
る。
【0033】DMAアクセス裁定回路210はバス制御
許可信号140を受けると、DMA実行許可信号202
をアクティブレベルとし(図5バスサイクル(B)参
照)、DMA実行サイクルを起動する。
【0034】DMA実行サイクルでは、バスサイクル基
準信号150に応じてアドレスレジスタ231(図2)
の内容を読出し(始めは先頭アドレスTA)、このアド
レスに対応したメモリ装置13のデータをデータ入出力
バス15を介して周辺装置12に転送する。
【0035】1回のDMA転送ごと、すなわち1回のバ
スサイクルごとにアドレスレジスタ231の内容が読み
出され、アドレス加減算回路232で演算を行ない、そ
の結果を再びアドレスレジスタ231に書き戻すことに
よりDMAアドレスの更新が行なわれる。
【0036】ターミナルカウント制御回路240におい
ては、DMA実行許可信号202がアクティブレベル
(ハイレベル)であるため、1回のバスサイクルごとに
減算指示信号302が立上る(図3参照)。この減算指
示信号302の立上りに応じてターミナルカウントレジ
スタ310の内容が読み出され、減算回路320で減算
を行ない、その結果を再びターミナルカウントレジスタ
310に書き戻す。
【0037】DMAカウント制御回路250において
も、DMA実行許可信号202がアクティブレベル(ハ
イレベル)であるため、1回のバスサイクルごとにカウ
ント信号402が立上る(図4参照)。このカウント信
号402の立上りに応じてカウンタ430はこれを転送
回数としてカウントする(例えば図5バスサイクル
(C)参照)。カウンタ430のカウント値はカウント
情報信号206としてデータ転送先の周辺装置に送られ
るため、周辺装置は今何番目のデータ転送が行なわれて
いるのかを知ることができる。
【0038】このようなDMA転送が所定回数(本実施
例の場合4回)行なわれると、DMAカウント制御回路
250内のカウンタ430の内容が“3”となり(図5
バスサイクル(E)参照)、比較回路420が一致信号
401をアクティブレベル(ハイレベル)とする。この
時、DMA実行許可信号202および活性制御信号20
5は共にハイレベルであるため、一致検出信号204が
ハイレベルとなる(図4および図5(E)参照)。
【0039】この一致検出信号204を受けてDMA要
求制御回路200は要求フラグ信号201を取り下げる
ため、DMAアクセス裁定回路210はCPU11に対
するバス制御要求信号130を取り下げDMA転送を停
止する(図2参照)。尚、この一致検出信号204を転
送先の周辺装置に送ることにより、その周辺装置に対す
るDMA転送停止処理制御として用いることも可能であ
る。DMAアクセス裁定回路210はDMA実行許可信
号202を立下げる(図5(E)参照)。
【0040】以上の動作によりメモリ装置13内のA1
のデータ領域に格納されたデータが周辺装置12に転送
されたことになる(図6参照)。この時にアドレスレジ
スタ231の内容は初期設定されるのではなく、アドレ
ス加減算回路232により更新されたアドレスTA+4
が格納され、同様にターミナルカウントレジスタ310
の内容も減算回路320により減算された結果をそのま
ま保持している。一方、カウンタ430の内容は自動的
に“0”に初期化される(図5バスサイクル(F)参
照)。
【0041】CPU11はバス制御権を取り戻すと、保
持されていたPC、PSW、及び各種レジスタ類の内容
に応じて中断したプログラム処理を再開する。
【0042】次に再び周辺装置12からDMA要求信号
100が伝えられると、アドレスレジスタ231、ター
ミナルカウントレジスタ310に保持されている情報に
基づいて上述した動作と同様に4回のDMA転送を行な
う。
【0043】DMA要求信号100が伝えられる毎に4
回のDMA転送を行ない、メモリ装置13内のDMA転
送領域B1のデータをすべて転送すると、ターミナルカ
ウント制御回路240内のターミナルカウントレジスタ
の内容が“0”となり、これを検出したゼロ検出回路3
30がゼロ検出信号301をハイレベルとする。この
時、DMA実行許可信号202もハイレベルであるの
で、DMA終了検出信号203がアクティブレベルとな
る(図3参照)。
【0044】DMA終了検出信号203を受けてDMA
応答制御回路220(図2)は、DMA終了信号120
を周辺回路12およびCPU11に伝える。CPU11
はDMA終了信号120を受けると、DMAC10に対
する初期設定処理をプログラムにもとずき実行し、その
後別の処理を続行する。
【0045】以上で、CPU11が1回の初期設定によ
り行なわれるメモリ装置13内でアドレスが連続した領
域B1に格納されたデータの周辺装置に対するDMA転
送が終了する。
【0046】以上の動作はDMA制御レシスタ260
(図2)に対してDMAカウント制御回路250を活性
化させる情報を初期設定し、活性制御信号205がハイ
レベルの場合を説明した。しかし、初期設定の際にDM
Aカウント制御回路250を不活性状態とする情報をD
MA制御レジスタ260に格納すれば活性制御信号20
5はロウレベルを維持したままとなり、DMAカウント
制御回路250は一致検出信号204がアクティブレベ
ルとなることはなく(図4参照)、このDMAC10は
DMAアドレス生成回路230とターミナルカウント制
御回路240により動作が制御された公知のDMA転送
処理を行なうことができる。
【0047】又、DMA制御レジスタ260にDMAカ
ウント制御回路250を活性化させる情報を初期設定す
るのではなく、例えば、DMAカウント制御回路250
内の転送回数レジスタ410(図4)に初期設定の際、
カウンタが示さない値を格納すれば比較回路420は一
致信号401を発生することがないため、上述した場合
と同様に、DMAカウント制御回路250を不活性化す
ることができる。
【0048】本実施例によれば、1回のDMA要求に対
する所定回数のDMA転送が終了した後に、CPU11
はDMAC10に対して初期設定処理を実行をすること
はなく、次にDMA要求がくると再び所定回数だけDM
A転送をすることができる。従って、DMA転送をデー
タ転送元のメモリ装置のメモリ領域のアドレスが連続し
ている限り、CPUが初期設定処理を行なわずに周辺回
路からのDMA要求に応じてデータ転送を行なうことが
可能となり、CPUの処理負担が大幅に低減できる。
【0049】次に図7を参照して本発明の第2の実施例
について説明する。図7は図1に示すDMAC10の構
成の他の例を示す。本実施例と第1の実施例との違い
は、ターミナルカウント制御回路240に対する制御信
号としてDMAカウント制御回路250から発生する一
致検出信号204を用いている点である。他の構成はす
べて図1から図4に示す構成と同じである。
【0050】ターミナルカウント制御回路240は、一
致検出信号204が発生するたびにその内部のターミナ
ルカウントレジスタ310の内容をデクリメントするよ
うに、図3に示したANDゲート回路30の一方の入力
をバスサイクル基準信号150の替りに一致検出信号2
04としている。ここで、1回のDMA要求信号100
の発生により行なわれる所定回数のDMA転送を1つの
単位と考え、メモリ装置13内のDMA転送領域B1
(図6)に格納された転送データをすべて転送するのに
何回のDMA要求信号100の発生によるDMA転送が
行なわれるか、いいかえれば何回一致検出信号204が
発生するかというデータをCPUが初期設定の時にター
ミナルカウントレジスタ310に格納する。他の動作は
第1の実施例と同じである。
【0051】このような構成とすれば、ターミナルカウ
ントレジスタ310に格納されるデータ量は第1の実施
例に比して少なくてすむため、ターミナルカウントレジ
スタの容量および減算回路320の回路構成の規模を小
さくすることができる。
【0052】又、一致検出信号204はバスサイクル基
準信号150に比べ発生サイクルが長いため、例えばそ
の間にターミナルカウントレジスタ310の内容を書換
える等の処理をCPU11が行なうことができ、メモリ
装置13内の転送領域の変更にも柔軟に対応することが
可能となる。
【0053】次に図8から図10を参照して本発明の第
3の実施例について説明する。図8は図2に示すDMA
C10の構成の更に他の例を示す。本実施例と第1の実
施例との違いは、周辺装置12(又は他の周辺装置)か
ら伝えられるDMA要求信号が100aと100bの2
種類となり、それぞれの要求信号に応じてDMA転送の
回数を選択することができる構成とした点である。
【0054】即ち、DMA要求制御回路200aは2つ
のDMA要求信号100a、100bの入力端を有し、
いずれかの信号がアクティブレベルとなると、それに応
じて要求フラグ信号201をDMAアクセス裁定回路2
10に伝えると同時に、チャネル選択信号800aまた
は800bのどちらかをアクティブレベルとする。
【0055】バスサイクル基準信号150、DMA実行
許可信号202、活性制御信号205の他にチャレル選
択信号800a、800bを入力とするDMAカウント
制御回路850は図9に示すように、1回のDMA転送
要求により実行するDMAの転送回数を格納する転送回
数レジスタ410aと、これとは異なる転送回数を格納
する転送回数レジスタ410bと、チャネル選択信号8
00a、800bのレベルに応じて転送回数レジスタ4
10aまたは410bに格納されているデータのいずれ
かを減算回路920に送る選択回路910と、バスサイ
クル基準信号150とDMA許可信号202を入力とし
カウント信号901を出力するANDゲート回路91
と、選択回路910から送られたデータを格納し、カウ
ント信号901に応じてその値を減産し、0となった時
にゼロ検出信号902をアクティブレベルとする減算回
路920と、ゼロ検出信号902とDMA許可信号20
2を入力とし、一致検出信号204を出力するANDゲ
ート回路92とを有する。
【0056】次に、図10をも参照してこの回路の動作
について説明する。まず、CPU11(図1)はDMA
転送処理に先だってDMAC10の初期設定処理をプロ
グラムにもとずき実行する。DMA制御レジスタ26
0、アドレスレジスタ231、ターミナルカウント制御
回路240に対しての初期設定は第1の実施例と同じで
あるため説明を省略する。
【0057】DMAカウント制御回路850に対して
は、転送回数レジスタ410a、410b(図9)にそ
れぞれ1回のDMA要求に対して何回DMA転送を行な
うかの情報(転送回数)を設定する。本実施例の場合は
転送回数レジスタ410aには“3”、410bには
“4”を設定する。
【0058】CPU11はこれら初期設定処理を終了す
ると、プログラムにもとずき別の処理を続行するが、D
MAC10からのバス制御要求信号130の発生を専用
のハードウェア手段により常にチェックしている。
【0059】一方、周辺装置120がDMA転送要因
(例えばプリント動作開始など)を発生し、1回のDM
A要求で4回のDMA転送分のデータ(4ワード分)が
必要となった場合、DMAC10へDMA要求信号10
0aを伝える。これによってDMAC10は以下に説明
するDMA転送動作を開始する。
【0060】周辺装置12からDMAC10にDMA要
求信号100aが伝えられると、DMA要求制御回路2
00aは要求フラグ201をアクティブにするとともに
チャネル選択信号800aをアクティブレベルとする。
これにより選択回路910は転送回数レジスタ410a
に格納されているデータ、すなわち“3”を減算回路9
20に送る(図10バスサイクル(A)参照)。又、D
MAアクセス裁定回路210はCPU11に対してバス
制御要求信号130を伝える。
【0061】CPU11はバス制御要求信号130を受
けると実行中のプログラム処理を中断して、PC(プロ
グラムカウンタ)、PSW(プログラムステータスワー
ド)、各種レジスタ類の内容をプログラム中断状態のま
ま保持しつつ、バス出力信号をハイインピーダンスとし
て、バス制御許可信号140をアクティブレベルとす
る。
【0062】DMAアクセス裁定回路210はバス制御
許可信号140を受けると、DMA実行許可信号202
をアクティブレベルとし(図10バスサイクル(B)参
照)、DMA実行サイクルを起動する。
【0063】DMA実行サイクルでは、バスサイクル基
準信号150に応じてアドレスレジスタ231(図2)
の内容を読出し(始めは先頭アドレスTA)、このアド
レスに対応したメモリ装置13のデータをデータ入出力
バス15を介して周辺装置12に転送する。
【0064】DMAカウント制御回路850において、
DMA実行許可信号202がアクティブレベル(ハイレ
ベル)であるため、1回のバスサイクルごとにカウント
信号901が立上る(図9参照)。このカウント信号9
01に応じて減算回路920は格納されたデータの値を
減算する(図10バスサイクル(C)、(D)参照)。
【0065】このようなDMA転送が4回行なわれる
と、減算回路920の内容が“0”となり(図10バス
サイクル(E)参照)、ゼロ検出信号902をアクティ
ブレベル(ハイレベル)とする。この時、DMA実行許
可信号202はハイレベルであるため、一致検出信号2
04がハイレベルとなる(図9参照)。
【0066】この一致検出信号204を受けてDMA要
求制御回路200aは要求フラグ信号201を取り下げ
るため、DMAアクセス裁定回路210はCPU11に
対するバス制御要求信号130を取り下げDMA転送を
停止する(図8参照)。
【0067】CPU11はバス制御権を取り戻すと、保
持されていたPC、PSW、及び各種レジスタ類の内容
に応じて中断したプログラム処理を再開する。
【0068】次に再び周辺装置12からDMA要求信号
100aが伝えられると、アドレスレジスタ231、タ
ーミナルカウントレジスタ310に保持されている情報
に基づいて上述した動作と同様に4回のDMA転送を行
なう。
【0069】DMA要求信号100が伝えられる毎に4
回のDMA転送を行ない、メモリ装置13内のデータを
すべて転送すると、ターミナルカウント制御回路240
がDMA終了検出信号203をアクティブレベルとする
(図8参照)。
【0070】DMA終了検出信号203を受けてDMA
応答制御回路220(図8)は、DMA終了信号120
を周辺回路12およびCPU11に伝える。CPU11
はDMA終了に応じてDMAC10に対する初期設定処
理をプログラムにもとずき実行し、その後別の処理を続
行する。
【0071】一方、例えば周辺装置120とは異なる周
辺装置がDMA転送要因を発生し、この周辺装置は1回
のDMA要求で5回のDMA転送分のデータ(5ワード
分)が必要である場合は、DMAC10へこの周辺回路
がDMA要求信号100bを伝え、チャネル選択信号8
00bによって転送回数レジスタ410bを選択し、1
回のDMA要求により5回のDMA転送を上述した動作
と同様に行なうことができる。
【0072】以上説明したように本実施例によれば、1
回の初期設定により2種類のDMA転送回数を設定する
ことができため、異なる周辺装置からの異なる転送デー
タ量のDMA転送要求に対しても初期設定を再度行う必
要がなくなり、よりCPUの処理負担を減少させること
ができる。
【0073】尚、図9に示したDMAカウント制御回路
850の構成は、減算回路920により一致検出信号2
04を発生させるのではなく、図4に示したDMAカウ
ント制御回路250の構成と同様に、選択回路910に
より選択された転送回数レジスタ410a、410bの
いずれかの値と、転送回数に応じてカウントされるカウ
ンタの値を比較回路で比較し、比較回路からの一致信号
を一致検出信号204とすることも可能である。
【0074】逆に、図4に示したDMAカウント制御回
路250の構成を図9のDMAカウント制御回路850
の構成と同様に、転送回数レジスタ410の値を減算回
路により減算し、ゼロ検出信号を一致検出信号204と
することも可能である。
【0075】
【発明の効果】以上説明したように、本発明のダイレク
トメモリアクセス転送制御装置は、1回のDMA要求に
対する所定回数のDMA転送が終了した後に、CPUは
DMACに対して初期設定処理を実行をすることはな
く、次にDMA要求がくると再び所定回数だけDMA転
送をすることができる。従って、DMA転送をデータ転
送元のメモリ装置のメモリ領域のアドレスが連続してい
る限り、CPUが初期設定処理を行なわずに周辺回路か
らのDMA要求に応じてデータ転送を行なうことが可能
となり、CPUの処理負担が大幅に低減できる。
【図面の簡単な説明】
【図1】本発明の第1の実施例におけるDMA制御装置
を用いた情報処理システム構成を示すブロック図であ
る。
【図2】図1に示すDMA制御装置の要部構成を示すブ
ロック図である。
【図3】図2に示すターミナルカウント制御回路の一具
体例を示すブロック図である。
【図4】図2に示すDMAカウント制御回路の一具体例
を示すブロック図である。
【図5】本発明の第1の実施例の動作を説明するための
波形図である。
【図6】本発明の第1の実施例の動作を説明するための
メモリマップである。
【図7】本発明の第2の実施例によるDMA制御装置の
要部構成を示すブロック図である。
【図8】本発明の第3の実施例によるDMA制御装置の
要部構成を示すブロック図である。
【図9】図8に示すターミナルカウント制御回路の一具
体例を示すブロック図である。
【図10】本発明の第3の実施例の動作を説明するため
の波形図である。
【符号の説明】
10 DMA転送制御装置(DMAC) 11 CPU 12 プリンタ 13 メモリ装置 14 周辺装置 15 データバス 16 アドレスバス 100 DMA要求信号 110 DMA応答信号 120 DMA終了信号 130 バス制御要求信号 140 バス制御許可信号

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 メモリ内の所定のダイレクトメモリアク
    セス転送領域の全データの転送を、複数回のデータ転送
    を1つの転送シリーズとし当該1つの転送シリーズを複
    数回行なって完了するダイレクトメモリアクセス転送制
    御装置において、前記1つの転送シリーズにより転送さ
    れる前記ダイレクトメモリアクセス転送領域の先頭アド
    レスを格納する第1のレジスタと、前記1の転送シリ
    ーズ内で行われる前記データ転送回数を示す情報を格
    納する第2のレジスタと、前記全データの転送に必要な
    前記1つの転送シリーズの回数を示す情報を格納する第
    3のレジスタと、前記1つの転送シリーズを前記第1の
    レジスタに格納された情報に基づいて開始し前記第2の
    レジスタに格納された情報に基づいて停止する第1の手
    段と、前記第3のレジスタに格納された情報に基づいて
    前記1つの転送シリーズを複数回行なう第2の手段とを
    有することを特徴とするダイレクトメモリアクセス転送
    制御装置。
  2. 【請求項2】 前記第1の手段は前記第2のレジスタに
    格納された情報に基づいた回数だけデータ転送したこと
    を検知しCPUに対するバス制御権の空け渡し要求を取
    り下げる手段を有することを特徴とする請求項1記載の
    ダイレクトメモリアクセス転送制御装置。
  3. 【請求項3】 前記第1の手段は実行された前記データ
    転送の回数をカウントする手段と、前記カウント手段が
    示す値と前記第2のレジスタに格納された値とを比較
    し、一致した場合に一致検出信号を発生してCPUに対
    するバス制御権の空け渡し要求を取り下げる手段とを含
    むことを特徴とする請求項1記載のダイレクトメモリア
    クセス転送制御装置。
  4. 【請求項4】 前記第2の手段は前記第3のレジスタに
    格納された値を前記一致検出信号に応じて減算する手段
    と、前記減算した結果が所定値に達した時に前記全デー
    タの転送の終了を示す信号を発生する手段とを含むこと
    を特徴とする請求項3記載のダイレクトメモリアクセス
    転送制御装置。
  5. 【請求項5】 前記第2の手段は前記第3のレジスタに
    格納された情報に基づくシリーズ数だけ前記第1の手段
    が前記1つの転送シリーズを行ったことを検知しCPU
    に対し次の初期設定をするよう要求する手段を更に含む
    ことを特徴とする請求項1記載のダイレクトメモリアク
    セス転送制御装置。
  6. 【請求項6】 メモリと周辺装置との間のダイレクトメ
    モリアクセスを行うダイレクトメモリアクセス転送制御
    装置において、前記周辺装置からダイレクトメモリアク
    セス転送要求が伝えられたことを検知しCPUに対して
    バス制御権の空け渡し要求を伝える手段と、前記CPU
    からバス制御許可信号を受けるとDMA実行許可信号を
    発生する手段と、前記CPUからの前記メモリのダイレ
    クトメモリアクセス転送領域として割当てられた領域の
    うちの所定アドレスに関連するアドレスを格納する第1
    のレジスタと、1回の転送要求に対して何回データ転送
    を行うかの情報を格納する第2のレジスタと、前記1回
    の転送要求を何回行うかの情報を格納する第3のレジス
    タと、前記DMA実行許可信号を受けて前記第1のレジ
    スタの情報に基づき前記メモリと周辺装置との間のデー
    タ転送を実行する実行手段と、前記第2のレジスタの情
    報に基づいた回数だけ前記実行手段がデータ転送したこ
    とを検知して検出信号を発生し、前記CPUに対するバ
    ス制御権の空け渡し要求を取り下げる手段と、前記検出
    信号の発生に応答して前記第3のレジスタの情報を減算
    し、当該減算結果が所定値に達したときに前記CPUに
    対し前記ダイレクトアクセス転送制御装置の初期設定を
    するよう要求する手段とを有することを特徴とするダイ
    レクトメモリアクセス転送制御装置。
JP3113627A 1990-05-22 1991-05-20 ダイレクトメモリアクセス転送制御装置 Expired - Fee Related JP2765267B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3113627A JP2765267B2 (ja) 1990-05-22 1991-05-20 ダイレクトメモリアクセス転送制御装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2-131818 1990-05-22
JP13181890 1990-05-22
JP3113627A JP2765267B2 (ja) 1990-05-22 1991-05-20 ダイレクトメモリアクセス転送制御装置

Publications (2)

Publication Number Publication Date
JPH04227558A JPH04227558A (ja) 1992-08-17
JP2765267B2 true JP2765267B2 (ja) 1998-06-11

Family

ID=26452572

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3113627A Expired - Fee Related JP2765267B2 (ja) 1990-05-22 1991-05-20 ダイレクトメモリアクセス転送制御装置

Country Status (1)

Country Link
JP (1) JP2765267B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE602004008064T2 (de) * 2003-05-15 2008-04-24 Nxp B.V. Usb host controller mit dma fähigkeit

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6329867A (ja) * 1986-07-23 1988-02-08 Nec Corp Dmaコントロ−ラ

Also Published As

Publication number Publication date
JPH04227558A (ja) 1992-08-17

Similar Documents

Publication Publication Date Title
EP0458304B1 (en) Direct memory access transfer controller and use
KR960007839B1 (ko) 데이타 전송 제어 장치
JP3055917B2 (ja) データ転送制御装置
EP0464615B1 (en) Microcomputer equipped with DMA controller
JP2978539B2 (ja) データ転送制御装置
JP3284311B2 (ja) データ処理システムにおける通信バス制御装置およびバス制御方法
CA2051177C (en) Bus master with antilockup and no idle bus cycles
US6115767A (en) Apparatus and method of partially transferring data through bus and bus master control device
US5481756A (en) DMA controller mailing auto-initialize halting unit
JP2765267B2 (ja) ダイレクトメモリアクセス転送制御装置
JP2819705B2 (ja) データ転送制御装置
JP2972557B2 (ja) データ転送制御装置および制御方法
JP2837698B2 (ja) ダイレクト・メモリ・アクセス制御装置
JP3265582B2 (ja) マイクロコンピュータ
JP2560968B2 (ja) コンピュータシステム
JPS5839343B2 (ja) マルチプロセツサシステム ノ ユウセンセイギヨホウシキ
JPH0322071A (ja) データ転送処理回路
JPH05282243A (ja) バスマスター装置及び該装置を用いた電子機器
JPH0736820A (ja) I/o制御装置
JPH07319799A (ja) マイクロ・プロセッサー装置
JPH0869382A (ja) 半導体装置
JPH03122744A (ja) コンピュータシステム
JPH04330549A (ja) 制御装置
JPH04274545A (ja) チャネル制御装置
JPS62196755A (ja) デ−タ処理方法

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19980303

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

Free format text: PAYMENT UNTIL: 20080403

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20090403

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20100403

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees