JPH04306754A - Dmaコントローラ - Google Patents

Dmaコントローラ

Info

Publication number
JPH04306754A
JPH04306754A JP9814191A JP9814191A JPH04306754A JP H04306754 A JPH04306754 A JP H04306754A JP 9814191 A JP9814191 A JP 9814191A JP 9814191 A JP9814191 A JP 9814191A JP H04306754 A JPH04306754 A JP H04306754A
Authority
JP
Japan
Prior art keywords
dma
cpu
processing
execution
interruption
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
Application number
JP9814191A
Other languages
English (en)
Inventor
Hisato Kokubo
小久保 寿人
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 Home Electronics Ltd
NEC Corp
Original Assignee
NEC Home Electronics Ltd
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 NEC Home Electronics Ltd, Nippon Electric Co Ltd filed Critical NEC Home Electronics Ltd
Priority to JP9814191A priority Critical patent/JPH04306754A/ja
Publication of JPH04306754A publication Critical patent/JPH04306754A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、CPUを介さずにデー
タを転送するDMAコントローラに係り、特にCPUと
バスを共用するDMAコントローラに関する。
【0002】
【従来の技術】DMA(ダイレクト・メモリ・アクセス
)は、CPUを介さずにメモリとメモリとの間、あるい
はメモリと入出力装置との間でデータのやりとりを行う
データ転送方式である。DMAのデータ転送には、ハン
ドシェークモード(非同期確認方式)とバーストモード
(同期非確認方式)とがある。ハンドシェークモードは
1回ずつレディ信号等によって相互に確認しながらデー
タ転送を行う方式で、転送速度が遅い欠点がある。これ
に対し、バーストモードは、連続するメモリアドレスに
わたって一連のデータ転送を実行する方式で、高速転送
が可能である。ハンドシェークモードでもバーストモー
ドでも、DMAによるデータ転送の制御はDMAコント
ローラという制御装置によって行われる。DMAコント
ローラは、DMAを実行している間はCPUの実行を中
断させ、自らバスを制御する。
【0003】
【発明が解決しようとする課題】上述のようなわけで、
高速データ転送を行う場合にはバーストモードが使われ
ている。しかし、従来のDMAコントローラは、バース
トモードでいったんDMAを開始したならば、それが終
了までバスを独占し続け、たとえDMAの実行中に割り
込みが発生してもCPUにバスを返すことはしなかった
。これがために、DMAの実行中に割り込みが発生する
と、その割り込みは直ぐには受け付けてもらえず、DM
Aの実行が終了するまでペンディング(待機)状態に置
かれることになった。
【0004】図5にその様子を示す。この図は、CPU
と従来のDMAコントローラとを共通のバスに接続した
場合のバス上の処理を示すフローチャートである。CP
Uによる処理1の後に、DMAコントローラがパースト
モードでDMAの実行を開始すると、このDMA処理を
最後まで続け、その途中で割り込みが発生したときはD
MA処理が終了するまでその割り込みを待たせる。そし
て、DMAが終了してDMAコントローラからCPUに
バスが返されると、ようやくCPUはその割り込みの処
理にかかり、その割込処理の後に処理2を実行する。こ
のように、DMAの実行中に発生した割り込みは、その
DMAが終了するまで待たされる。
【0005】しかし、割り込みの中には、待たされる時
間について厳しい制約を受けるものもある。たとえば、
画像処理において、CRTコントローラ側から垂直帰線
期間または水平帰線期間毎に発生される垂直同期または
水平同期割り込みは、割込発生時から一定期間内での割
込処理を要求するもので、DMA処理のために待たせら
れるわけにはいかない。したがって、このような割り込
みに対しては、プログラミングの段階でDMAの実行と
割り込みが競合しないように、DMAの処理時間を調整
していた。すなわち、割り込みが発生する前にDMA処
理が終了するように、DMAの開始時間およびデータ転
送量を設定していた。しかし、このような対処法による
と、プログラミングのほうが非常に難しくなり、プログ
ラマには大きな負担であった。
【0006】そこで、図6に示すように、CPU200
とDMAコントローラ202にそれぞれ別個のバス20
4、206を割り当て、CPU200およびDMAコン
トローラ202が互いに独立的にそれぞれのバス204
,206を随時使用できるようにしたシステムも考えら
れてはいるが、この方式はコストがかかり過ぎる欠点が
あり、実用的ではなかった。
【0007】本発明は、かかる問題点に鑑みてなされた
もので、割り込みとの競合問題を起こすことなくDMA
の自由なプログラミングを可能とするDMAコントロー
ラを提供することを目的とする。
【0008】
【課題を解決するための手段】上記の目的を達成するた
め、本発明のDMAコントローラは、連続するアドレス
にわたって一連のDMAを実行するDMAコントローラ
において、DMAが開始してから終了するまでの期間中
所定の状態をとるフラグ手段と、DMAの実行中に発生
した割り込みに応動してDMAの実行を途中で中断する
手段と、途中で中断したDMAを後に再開するのに必要
な所定のデータを保持する手段と、所定のDMA実行指
令信号に応動し、フラグ手段の状態にしたがってDMA
の実行を開始もしくは再開する手段とを具備する構成と
した。
【0009】
【作用】本発明では、DMAの実行を開始する時、フラ
グ手段を所定の状態にセット(またはリセット)する。 そして、DMAの実行中に割り込みが発生したときは、
いったんDMA処理を中断し、CPUにバス制御をわた
す。これにより、CPUは直ちに割込処理にとりかかる
。この割込処理の間、本発明のDMAコントローラにお
いては、フラグ手段は所定状態のままであり、ソースア
ドレス発生部、ディステイネーションアドレス発生部等
におけるソースアドレス、ディステイネーションアドレ
ス等の各種パラメータはDMA中断直前のデータのまま
保持されている。割込処理が終了して、CPUよりDM
A実行指令信号が与えられると、先ずフラグ手段の状態
が参照され、そのフラグ状態がDMA開始時に設定され
た該所定の状態であることが判別されると、該保持され
ていた各種パラメータを基にDMA中断時の状態からD
MAが再開される。
【0010】
【実施例】以下、図1〜図4を参照して本発明の一実施
例を説明する。図3は、この実施例によるコンピュータ
システムのシステム構成を示す。本実施例では、システ
ムバス10にCPU12、DMAC(DMAコントロー
ラ)20、メモリ14,16およびI/O(入出力装置
)18が接続され、CPU12とDMAC20に割込信
号INTが与えられる。このように、CPU12とDM
AC20がシステムバス10を共用するため、ハードウ
ェア上のシステムコストが低廉に抑えられている。
【0011】図1は、本実施例によるDMAC20の要
部の構成を示すブロック図である。このDMAC20は
、制御部22、DMA実行フラグ24、レングスカウン
タ26、ソースアドレス発生部28、ソースアドレス用
のタイミング発生部30、ディスティネーションアドレ
ス用のタイミング発生部32、ディスティネーションア
ドレス発生部34を有する。
【0012】制御部22は、DMAC20内の各部の動
作を制御するもので、外部との関係では、CPU12と
の間で制御信号をやりとりしたり、割込信号INTを受
け取る。DMA実行フラグ24は、制御部22により、
バーストモードのDMAが開始されるとセットされ、そ
のDMAが終了するとリセットされるようになっている
。レングスカウンタ26は、バーストモードによる各D
MAの開始に先立ってCPU12より転送すべきデータ
長(データレングス)の初期値を受け取り、1回のデー
タ転送を行う度毎にカウント値(データレングス値)を
ディクリメントまたはインクリメントするカウンタであ
る。
【0013】ソースアドレス発生部28は、データ転送
元からデータを読み出すためのソースアドレス(データ
読出アドレス)を発生する。タイミング発生部30は、
ソースアドレス発生部28と同期して動作し、データ転
送元におけるデータ読出用のタイミング信号を発生する
。ディスティネーションアドレス発生部28は、データ
転送先にデータを書き込むためのディスティネーション
アドレス(データ書込アドレス)を発生する。タイミン
グ発生部32は、ディスティネーションアドレス発生部
34と同期して動作し、データ転送先におけるデータ書
込用のタイミング信号を発生する。ソースアドレス発生
部28におけるソースアドレスの初期値およびディステ
ィネーションアドレス発生部34におけるディスティネ
ーションアドレスの初期値は、各DMAの実行に先立っ
てCPU12よりそれぞれ与えられる。
【0014】この実施例では、メモリ14がデータ転送
元で、メモリ16がデータ転送先である。しかして、デ
ータ読出アドレスおよびデータ読出用タイミング信号は
バス10を介してメモリ14に与えられ、データ書込ア
ドレスおよびデータ書込用タイミング信号はバス10を
介してメモリ16に与えられる。なお、メモリ14から
読み出されたデータは、DMAC20内のレジスタ(図
示せず)または外部のレジスタ等(図示せず)にいった
んラッチされてからメモリ16に与えられる。
【0015】図2は、バーストモードにおけるDMAC
20の処理を示すフローチャートである。このDMA処
理は、CPU12から制御部22へDMA実行指令信号
が与えられることによって開始する。
【0016】先ず、制御部22は、DMA実行フラグ2
4の状態を見にいき(100)、それがリセット状態に
なっていれば、新たなDMAを開始すべきものと判定し
、DMA実行フラグ24をセットしたうえで(102)
、レングスカウンタ26には転送すべきデータ長(デー
タレングス)を、ソースアドレス発生部28にはソース
アドレスの初期値を、ディスティネーションアドレス発
生部34にはディスティネーションアドレスの初期値を
それぞれセットせしめる(104)。上述したように、
これらデータレングス、ソースアドレス、ディスティネ
ーションアドレスの各初期値はCPU12より与えられ
る。
【0017】このようにして初期化が行われると、デー
タ転送が開始され、先ずソースアドレス発生部28より
ソースアドレス(初期値)が、ディスティネーションア
ドレス発生部28よりディスティネーションアドレス(
初期値)がそれぞれ所定のタイミングで発生される(1
08)。1回のデータ転送が終了すると、DMAの全処
理が終了しないかぎり(110)、レングスカウンタ2
6においてはデータレングスが、ソースアドレス発生部
28においてはソースアドレスが、ディスティネーショ
ンアドレス発生部34においてはディスティネーション
アドレスがそれぞれインクリメントまたはディクリメン
トされ(112)、それぞれ新たなデータレングス、ソ
ースアドレス、ディスティネーションアドレスがセット
される(114)。そして、割込信号INTが入ってい
るか否かを検査し(116)、入っていなければデータ
転送を繰り返す(118,108〜116)。
【0018】このようにしてバーストモードのDMAを
実行している間、バス10はDMAC20の制御の下に
あり、CPU12の実行は休止している。そして、この
DMAの実行の最中に割込信号INTが発生した場合、
DMAC20の制御部22はステップ116でその割込
信号INTを確認するや否やDMA処理を中断し、CP
U122に所定の信号を送ってバス10を開放する(1
22)。
【0019】これにより、CPU12は、直ちに割込処
理にとりかかる。この割込処理の期間中、DMAC20
においては、DMA実行フラグ24はセット状態のまま
であり、レングスカウンタ26、ソースアドレス発生部
28、ディスティネーションアドレス発生部34はそれ
ぞれDMA中断直前のデータ(パラメータ)を保持し続
ける。
【0020】CPU12の割込処理が終了すると、CP
U12から制御部22にDMA実行指令信号が与えられ
る。そうすると、制御部22は、DMA実行フラグ24
の状態を見にいく(100)。この場合、DMA実行フ
ラグ24はセット状態のままになっているので、制御部
22は初期化処理(102,104)をスキップして(
106)、データ転送を再開する(108〜116、1
18)。レングスカウンタ26、ソースアドレス発生部
28、ディスティネーションアドレス発生部34にはそ
れぞれDMA中断直前のデータがセットされているので
、DMA中断時の状態からデータ転送が再開されること
になる。こうして全てのDMA処理が終了すると(11
0)、制御部22はDMA実行フラグをリセットしてか
ら(120)、バスを開放し(112)、CPU12に
制御を戻す。
【0021】図4は、本実施例によるバス10上の処理
を示すフローチャートである。DMA処理の途中で割込
要求が入ると、このDMA処理が直ちに中断されて、C
PU12による割込処理が実行され、この割込処理が終
了した後に該中断していたDMA処理が再開される。そ
して、このDMA処理が終了すると、通常のCPU処理
2が実行される。
【0022】このように、本実施例では、バーストモー
ドによるDMAの実行中に割り込みが発生したならば、
直ちにDMAの実行を中断してその割り込みの処理を優
先させ、その割込処理の終了後に該中断したDMAを再
開するようにしたので、割り込み要求先に対しては待機
させることがなく、CPUの処理効率を高めることがで
き、またプログラマにとっては割り込みとの競合を問題
にすることなく任意の時点で任意のアドレス範囲ないし
データレングスにわたるDMAをプログラミングするこ
とが可能であるため、負担が著しく軽減される。
【0023】なお、上述した実施例では、DMA処理が
終了していないかどうかを示す特別のDMA実行フラグ
24を設けたが、このフラグ24に替えてレングスカウ
ンタ26を利用することも可能である。つまり、レング
スカウンタ26には、各DMAの全処理が終了しない間
は有位のカウント値(たとえば零でない値)がセットさ
れているので、このカウント値を参照することでDMA
処理がまだ終了していないかどうかを判別することがで
きる。
【0024】また、上述した実施例では、CPUからの
DMA実行指令信号に応動してDMAC20の制御部2
2がDMAフラグを参照したが、この動作をCPU12
に行わせてもよい。
【0025】また、本発明において優先処理を受ける割
り込みは任意に設定可能であり、CRTコントローラ等
の外部装置からの割り込みに限るものではない。たとえ
ば、CPUがDRAMのリフレッシュ制御を行う場合に
、DMA処理時間が長すぎると、リフレッシュができな
くなるおそれがある。その場合には、リフレッシュ周期
に対応した所定のタイミングでリフレッシュ回路または
CPU12からDMAC20の制御部22に上記の割込
信号INTに相当する信号を与えるようにすればよい。
【0026】
【発明の効果】本発明は、上述したような構成を有する
ことにより、以下のような効果を奏する。
【0027】DMAが開始してから終了するまでの間と
DMAが終了してから新たに開始するまでの間とで所定
のフラグ手段の状態を異にしておき、DMAの実行中に
割り込みが発生したときはDMA処理を中断してその中
断直前のDMAパラメータを保持しておき、DMA実行
指令に対してはフラグ手段を参照することでDMAの実
行を再開すべきか新たに実行すべきかを判別し、再開す
るときは中断直前のDMAパラメータに基づいて中断時
の状態からDMAを再開するようにしたので、割り込み
処理の優先性を保証しCPUの処理効率を高められるこ
とはもちろんのこと、割り込みとの競合を問題にするこ
となく自由にDMAをプログラミングすることが可能で
あり、プログラマの負担を大幅に軽減することができる
【図面の簡単な説明】
【図1】本発明の一実施例によるDMAコントローラの
内部の主要な構成を示すブロック図である。
【図2】実施例によるDMAコントローラの処理動作を
示すフローチャートである。
【図3】実施例によるコンピュータシステムの主要部の
構成を示すブロック図である。
【図4】実施例によるシステムバス上の処理を示すフロ
ーチャートである。
【図5】従来のDMAコントローラを使用した場合のシ
ステムバス上の処理を示すフローチャートである。
【図6】従来方式によるシステム構成の一例を示すブロ
ック図である。
【符号の説明】
10    システムバス 12    CPU 14    メモリ 16    メモリ 20    DMAC(DMAコントローラ)22  
  制御部 24    DMA実行フラグ 26    レングスカウンタ 28    ソースアドレス発生部 30    タイミング発生部 32    タイミング発生部

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】  連続するアドレスにわたって一連のD
    MAを実行するDMAコントローラにおいて、DMAが
    開始してから終了するまでの期間中所定の状態をとるフ
    ラグ手段と、前記DMAの実行中に発生した割り込みに
    応動して前記DMAの実行を途中で中断する手段と、前
    記途中で中断したDMAを後に再開するのに必要な所定
    のパラメータを保持する手段と、所定のDMA実行指令
    信号に応動し、前記フラグ手段の状態にしたがって前記
    DMAの実行を開始もしくは再開する手段と、を具備し
    たことを特徴とするDMAコントローラ。
JP9814191A 1991-04-03 1991-04-03 Dmaコントローラ Pending JPH04306754A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9814191A JPH04306754A (ja) 1991-04-03 1991-04-03 Dmaコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9814191A JPH04306754A (ja) 1991-04-03 1991-04-03 Dmaコントローラ

Publications (1)

Publication Number Publication Date
JPH04306754A true JPH04306754A (ja) 1992-10-29

Family

ID=14211943

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9814191A Pending JPH04306754A (ja) 1991-04-03 1991-04-03 Dmaコントローラ

Country Status (1)

Country Link
JP (1) JPH04306754A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008059155A (ja) * 2006-08-30 2008-03-13 Toshiba Corp 情報処理装置及び情報処理方法
CN102112971A (zh) * 2008-08-06 2011-06-29 阿斯奔收购公司 可暂停且可重新开始的dma引擎

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008059155A (ja) * 2006-08-30 2008-03-13 Toshiba Corp 情報処理装置及び情報処理方法
CN102112971A (zh) * 2008-08-06 2011-06-29 阿斯奔收购公司 可暂停且可重新开始的dma引擎
JP2011530744A (ja) * 2008-08-06 2011-12-22 アスペン・アクイジション・コーポレーション 停止可能および再始動可能dmaエンジン
US8732382B2 (en) 2008-08-06 2014-05-20 Qualcomm Incorporated Haltable and restartable DMA engine

Similar Documents

Publication Publication Date Title
JP2978539B2 (ja) データ転送制御装置
JP2000047974A (ja) バス制御コントローラのバス調停方法、バス制御コントローラ及び電子機器のシステム
JPH103447A (ja) バスブリッジ装置
JP2001282704A (ja) データ処理装置及びデータ処理方法とデータ処理システム
JPH05108548A (ja) Dmaコントローラ
JP2000020451A (ja) 情報処理装置および方法、並びに提供媒体
JPH04306754A (ja) Dmaコントローラ
JPH03122745A (ja) Dma制御方式
JP2624388B2 (ja) Dma装置
JP2679440B2 (ja) 情報処理装置
JP2522412B2 (ja) プログラマブルコントロ―ラと入出力装置の間の通信方法
JP3266610B2 (ja) Dma転送方式
JPH10116245A (ja) Dma制御装置
JPS60136853A (ja) デ−タ転送方式
JP2001117862A (ja) マイクロコンピュータ
JPH0628052B2 (ja) 共有メモリ制御方式
JPH07182272A (ja) Dmaコントローラ回路
JPS6341973A (ja) マルチプロセツサシステム
JPH03262063A (ja) Dma転送のバス制御回路
JPH05173936A (ja) データ転送処理装置
JPH11134288A (ja) バスコントローラ
JPH0438552A (ja) ダイレクトメモリアクセス転送方式
JPS61131154A (ja) デ−タ転送制御方式
JPH0594407A (ja) バス制御方式
JPS61156454A (ja) デ−タ転送制御装置