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

Dmaコントローラ

Info

Publication number
JPH11110339A
JPH11110339A JP9269913A JP26991397A JPH11110339A JP H11110339 A JPH11110339 A JP H11110339A JP 9269913 A JP9269913 A JP 9269913A JP 26991397 A JP26991397 A JP 26991397A JP H11110339 A JPH11110339 A JP H11110339A
Authority
JP
Japan
Prior art keywords
address
data
transferred
register
continuous area
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
JP9269913A
Other languages
English (en)
Inventor
Masashi Takahashi
橋 真 史 高
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP9269913A priority Critical patent/JPH11110339A/ja
Priority to US09/164,614 priority patent/US6292853B1/en
Publication of JPH11110339A publication Critical patent/JPH11110339A/ja
Pending 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)

Abstract

(57)【要約】 【課題】 より複雑なデータ領域のデータ転送を一度の
転送動作で転送可能とする高機能で汎用的な構成のDM
Aコントローラを提供する。 【解決手段】 本発明に係るDMAコントローラは、デ
ータ転送しようとするデータのアドレスが連続した領域
(アドレス連続領域)のうちデータ転送中のアドレス連
続領域におけるデータ転送終了時を決定し、アドレス連
続領域転送終了信号を出力するアドレス連続領域転送終
了決定部と、データ転送しようとするアドレス連続領域
に含まれているアドレスを先頭アドレスから順次更新し
て出力し、アドレス連続領域転送終了信号に応じて、複
数のアドレス連続領域について順次同様のアドレスの更
新及び出力を行うアドレス生成部と、データ転送しよう
とするデータのアドレス領域に含まれている総てのアド
レス連続領域のうち最後のアドレス連続領域におけるデ
ータ転送終了時を決定し、データ転送終了信号を出力す
るデータ転送終了決定部とを備えたものである。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はDMA(Direct Mem
ory Access)コントローラに関し、特に、メモリ間にお
けるデータのブロック転送を高速に処理するものであ
る。
【0002】
【従来の技術】データ転送をDMA方式で行う場合、中
央処理装置(CPU)とは独立した転送回路(チャネ
ル)を形成して、データの授受を一方のメモリと他方の
メモリとの間で直接行えるように制御するDMAコント
ローラが用いられる。
【0003】図5は、DMAコントローラと複数のメモ
リとの接続関係を示したブロック図である。
【0004】DMAコントローラ70は、通常、複数の
メモリモジュールM0,M1,M2,...,Mnに接
続され、データ転送を行うメモリモジュールとの間で、
アドレス信号、チップイネーブル(CE)信号、読出し
/書込み(R/W)信号、読出しデータ(Data R
ead)信号、書込みデータ(Data Write)
信号を送受信することにより、メモリモジュール間のデ
ータ転送を行う。
【0005】図6は、DMAコントローラの構成を示す
ブロック図である。
【0006】DMAコントローラは、ソースアドレス生
成回路82,ターゲットアドレス生成回路83,チップ
イネーブル(CE)信号生成回路84,読出し/書込み
(R/W)信号生成回路85,アドレス出力回路86,
読出しデータ選択回路87,転送データを一時的に保持
するためのデータ保持用レジスタ88,及びこれらの回
路を制御する状態遷移回路81から構成されている。
【0007】状態遷移回路81は、ソースアドレス生成
回路82,ターゲットアドレス生成回路83,チップイ
ネーブル(CE)信号生成回路84,読出し/書込み
(R/W)信号生成回路85,読出しデータ選択回路8
7にそれぞれ接続されている。ソースアドレス生成回路
82は、状態遷移回路81、チップイネーブル(CE)
信号生成回路84,アドレス出力回路86,読出しデー
タ選択回路87にそれぞれ接続されている。ターゲット
アドレス生成回路83は、チップイネーブル(CE)信
号生成回路84,読出し/書込み(R/W)信号生成回
路85,アドレス出力回路86にそれぞれ接続されてい
る。読出しデータ選択回路87は、データ保持用レジス
タ88に接続されている。データ保持用レジスタ88
は、総てのメモリの書込みデータポートに接続されてい
る。
【0008】アドレス出力回路86は、予め定められた
アドレスマップに基づいてソースアドレスとターゲット
アドレスとをデコードし、ソースとなるメモリにはソー
スアドレスを、ターゲットとなるメモリにはターゲット
アドレスをそれぞれ出力するスイッチとして機能する。
ソースにもターゲットにもなっていないメモリへのアド
レスとしては、例えば「0」が出力される。
【0009】読出し/書込み(R/W)信号生成回路8
5は、アドレスマップに基づいてターゲットアドレスを
デコードし、ターゲットとなるメモリへの読出し/書込
み(R/W)信号を書込み状態にする。このとき、その
他のメモリへの読出し/書込み(R/W)信号は読出し
状態となっている。DMAコントローラが動作中か否か
は、状態遷移回路81からの状態変数からデコードす
る。
【0010】チップイネーブル(CE)信号生成回路8
4は、アドレスマップに基づいてソースアドレス及びタ
ーゲットアドレスをデコードし、ソースメモリからの読
出し状態時には、ソースメモリへのチップイネーブル
(CE)信号をアクティブにし、ターゲットメモリへの
書込み状態時にはターゲットメモリへのチップイネーブ
ル(CE)信号をアクティブにする。このとき、その他
のメモリへのチップイネーブル(CE)信号はインアク
ティブとなる。ソースメモリからの読出し状態であるこ
と、ターゲットメモリへの書込み状態であることは、状
態遷移回路81からの状態変数からデコードする。
【0011】状態遷移回路81は、後述する図8の状態
遷移図に基づいて、各回路ブロックを制御する回路であ
る。状態遷移回路81への入力信号は、外部からのスタ
ート信号、ソースアドレス生成回路82からの終了信号
である。また、状態遷移回路81からは、外部及びソー
スアドレス生成回路82,ターゲットアドレス生成回路
83,チップイネーブル(CE)信号生成回路84に対
して状態変数が出力される。
【0012】図7は、データ転送の際のタイミングチャ
ート、図8は、データ転送の際の状態遷移図である。図
7及び図8を参照しながら、データ転送の際におけるD
MAコントローラの動作について説明する。
【0013】最初の状態0では、DMAコントローラ
は、アイドル状態である。ソースアドレス生成回路8
2,ターゲットアドレス生成回路83では、データ転送
のスタートアドレス、周期等のパラメータが設定され
る。外部からのDMAスタート信号がアクティブになる
までは状態0で待機し、DMAスタート信号がアクティ
ブになると次の状態1に進む(S1)。
【0014】状態1では、ソースメモリに1ワード目の
読出しデータのアドレスが出力される。ここでは、まだ
データは読み出されない(S2)。
【0015】状態3では、ソースメモリに2ワード目の
読出しデータのアドレスが出力される。また、1ワード
目の読出しデータがソースメモリから出力され、これが
データ保持用レジスタ88に格納される(S3)。
【0016】状態7では、ソースメモリに順次読出しデ
ータのアドレスが出力される。一方、ターゲットメモリ
には書込みアドレスとデータ保持用レジスタ88に格納
されているデータとが入力される。また、ソースメモリ
から読み出されたデータはデータ保持用レジスタ88に
格納される。ソースアドレス生成回路82から状態遷移
回路81への読出し終了信号がアクティブになるまでは
状態7が繰り返され、当該読出し終了信号がアクティブ
になったら状態6へ進む(S4)。
【0017】状態6では、ソースメモリにアドレスは入
力されないが、最終データがソースメモリから読み出さ
れる。ターゲットメモリにはアドレスが入力され、デー
タ保持用レジスタ88に格納されている最終(n番目)
より1番前(n−1番目)のデータがターゲットメモリ
に入力される。また、ソースメモリから読み出された最
終データがデータ保持用レジスタ88に格納される(S
5)。
【0018】状態4では、データ保持用レジスタ88に
格納されている最終データをターゲットメモリに書き込
む(S6)。その後、状態0に戻る。
【0019】以上のように状態変数を割り振ることによ
って、状態変数を2進数で表したとき、以下のように、
デコードを簡単にすることができる。即ち、状態変数の
bit0が1のとき(状態1,3,7のとき)、ソース
メモリに対してアドレス入力及びチップイネーブル(C
E)入力を行い、bit2が1のとき(状態4,6,7
のとき)、ターゲットアドレスに対してアドレス入力及
びチップイネーブル(CE)入力、読出し/書込み(R
/W)入力を行えばよいことになる。
【0020】図9は、従来のDMAコントローラのソー
スアドレス生成回路の構成を示したブロック図である。
【0021】図9に示した従来のDMAコントローラの
ソースアドレス生成回路は、以下のように構成されてい
る。ソースアドレス生成回路の実効アドレス生成部は、
データ転送のソース側メモリにおけるデータ転送を行う
データのアドレス領域における最初のアドレスであるベ
ースアドレス又は前回の実効アドレスに対する増分が入
力されるレジスタ601と、レジスタ601からの増分
とベースアドレス又は前回の実効アドレスとが入力され
る加算器606と、ベースアドレス及び加算器606の
演算結果が入力され、それらのいずれかを出力するマル
チプレクサ603とから構成されている。また、ソース
アドレス生成回路のデータ数カウント部は、転送するデ
ータ数が設定されるレジスタ604と、データを1単位
転送するごとに既に転送されたデータ数と加算する加算
器605と、加算器605の演算結果が入力され、転送
済みデータ数(未転送の場合は0)をレジスタ602に
対して出力するマルチプレクサ608と、レジスタ60
2及び604から出力されたデータ数を比較する比較器
607とから構成されている。
【0022】図9のソースアドレス生成回路の動作は、
以下の通りである。即ち、ベースアドレスをマルチプレ
クサ609を介してレジスタ603に入力し、データ転
送を行うデータのアドレスのベースアドレス又は前回の
実効アドレスに対する増分をレジスタ601に入力す
る。そして、レジスタ601及び603から加算器60
6へベースアドレス若しくは前回の実効アドレス及び増
分を同期させて入力し、その加算値をマルチプレクサ6
09及びレジスタ603を介して実効アドレスとして出
力する。さらにその実効アドレスと上記増分とを加算器
606に入力することにより後続の実効アドレスを順次
出力する。この実効アドレスを順次用いてソース側メモ
リにアクセスを行う。
【0023】また、データ転送を行うデータ数をレジス
タ604に入力しておき、データを1単位転送するごと
に加算器605により既に転送されたデータ数に加算
し、マルチプレクサ608に入力する。マルチプレクサ
608は、転送済みデータ数(未転送の場合は0)をレ
ジスタ602に対して出力する。レジスタ604に設定
された転送データ数と、レジスタ602に入力された転
送済みデータ数とは、同期して比較器607に入力され
る。比較器607で比較した結果、設定された転送デー
タ数に達していなければさらにデータ転送を行い、設定
された転送データ数に達していればデータ転送を終了す
る。
【0024】以上のように、従来のDMAコントローラ
は、ベースアドレスに増分値を加算して順次生成した実
効アドレスを用いて順次メモリアクセスを行い、所定の
データ数だけデータを転送するとデータ転送を終了す
る。
【0025】
【発明が解決しようとする課題】しかしながら、上述の
ような従来のDMAコントローラでは、ベースアドレス
に順次増分を加算して生成した実効アドレスを用いてメ
モリへのアクセス及びデータ転送を行うので、一度の転
送動作で転送可能なデータは、1次元空間にマッピング
された連続したデータ又はある増分ごとのデータに限ら
れていた。即ち、より複雑なデータ転送、例えば、2次
元空間にマッピングされたデータの任意の矩形領域を切
り出して行う転送等は、複数回の転送に分割して行わざ
るを得ないという問題点があった。
【0026】本発明は上記問題点に鑑みてなされたもの
で、その目的は、より複雑なデータ領域のデータ転送を
一度の転送動作で転送可能とする高機能で汎用的な構成
のDMAコントローラを提供することである。
【0027】
【課題を解決するための手段】本発明に係るDMAコン
トローラによれば、データ転送しようとするデータのア
ドレスが連続した領域(以下、「アドレス連続領域」と
いう。)のうちデータ転送中のアドレス連続領域におけ
るデータ転送終了時を決定し、アドレス連続領域転送終
了信号を出力するアドレス連続領域転送終了決定部と、
データ転送しようとするアドレス連続領域に含まれてい
るアドレスを先頭アドレスから順次更新して出力し、ア
ドレス連続領域転送終了信号に応じて、複数のアドレス
連続領域について順次同様のアドレスの更新及び出力を
行うアドレス生成部と、データ転送しようとするデータ
のアドレス領域に含まれている総てのアドレス連続領域
のうち最後のアドレス連続領域におけるデータ転送終了
時を決定し、データ転送終了信号を出力するデータ転送
終了決定部と、を備えたことを特徴とし、この構成によ
り、より複雑なデータ領域のデータ転送を一度の転送動
作で行うことができる。
【0028】より具体的には、データ転送しようとする
データのアドレスが連続した領域(以下、「アドレス連
続領域」という。)あたりのデータ数を保持するアドレ
ス連続領域データ数保持手段と、データを転送するごと
に、データ転送中のアドレス連続領域における転送済み
データ数を更新するデータ数計数手段と、アドレス連続
領域データ数保持手段に保持されたデータ数と、データ
数計数手段により更新されたデータ数とを比較し、一致
したときにアドレス連続領域転送終了信号を出力するデ
ータ数比較手段と、一のアドレス連続領域の先頭アドレ
スから次のアドレス連続領域の先頭アドレスまでのデー
タ数であるアドレス周期を保持するアドレス周期保持手
段と、データ転送しようとするデータのアドレス領域に
おける最初のアドレスであるベースアドレスを保持する
ベースアドレス保持手段と、ベースアドレス、又は、ア
ドレス連続領域転送終了信号に応じてベースアドレスに
アドレス周期を順次加算した先頭アドレスを保持する先
頭アドレス保持手段と、データを転送するごとに、先頭
アドレス保持手段に保持されたベースアドレス又は先頭
アドレスを順次インクリメントするアドレス更新手段
と、データ転送しようとするアドレス連続領域数を保持
するアドレス連続領域数保持手段と、アドレス連続領域
転送終了信号に応じて、転送済みアドレス連続領域数を
更新するアドレス連続領域数計数手段と、アドレス連続
領域数保持手段に保持されたアドレス連続領域数と、ア
ドレス連続領域数計数手段により更新されたアドレス連
続領域数とを比較し、一致したときにデータ転送終了信
号を出力するアドレス連続領域数比較手段と、を備えた
ことを特徴とし、この構成により、予め設定するパラメ
ータを適当なものに設定することによって、1次元にマ
ッピングされたアドレス空間の連続領域やある増分ごと
のデータ群のブロック転送のみならず、2次元にマッピ
ングされたアドレス空間の任意のデータ群についてのデ
ータ転送を一度の転送動作で行うことができる。
【0029】
【発明の実施の形態】本発明に係るDMAコントローラ
は、予め設定するパラメータ、即ち、行数、周期、ベー
スアドレス、行データ数等を適当なものに設定すること
によって、1次元にマッピングされたアドレス空間の連
続領域やある増分ごとのデータ群のブロック転送のみな
らず、2次元にマッピングされたアドレス空間の任意の
矩形領域、行、列、ななめ、桂馬とび等の位置関係にあ
る様々なデータ群についてのデータ転送のプログラミン
グを可能とするものである。
【0030】以下、本発明に係るDMAコントローラの
実施の形態について、図面を参照しながら説明する。本
発明に係るDMAコントローラは、ソースアドレス生成
回路及びターゲットアドレス生成回路の構成に特徴があ
り、全体としての構成は、図5乃至図8に示して前述し
たものと同様であるので、共通する部分についての説明
は省略し、ソースアドレス生成回路及びターゲットアド
レス生成回路の構成について説明する。
【0031】図1は、本発明の第1の実施の形態に係る
DMAコントローラのソースアドレス生成回路のブロッ
ク図である。図1のソースアドレス生成回路は、3つの
ブロックから構成されている。尚、ターゲットアドレス
生成回路は、ソースアドレス生成回路と同様の構成であ
るので、その構成についての説明は省略する。
【0032】ここでは、2次元にマッピングされたアド
レス空間の任意の矩形領域のデータを転送する場合を想
定する。矩形領域は、アドレスが連続したデータの集合
(ここでは、「行」という。)を転送するごとに、メモ
リへのアクセスに用いる実効アドレスに所定の増分値を
加算することにより実現できる。ある行のデータを転送
する間は、アドレスを順次インクリメントし、当該行の
データ転送が終了すると、当該行の最後のデータのアド
レスに所定の増分値を加算することによりその次の行の
データ転送へ移行する。
【0033】図1のソースアドレス生成回路の右側ブロ
ックは、連続した転送データ数(行のデータ数)をカウ
ントする転送データ数カウント部である。この転送デー
タ数カウント部は、データを1単位転送するごとに既に
転送したデータ数をインクリメントする加算器210
と、加算器の演算結果に応じて、データ転送する行の転
送済みデータ数(未転送の場合は0)を出力するマルチ
プレクサ216と、カウントされた転送済みデータ数が
格納されるレジスタ205と、1行内の転送すべきデー
タ数がデータ転送前の初期化時に格納されるレジスタ2
07と、レジスタ205に格納された転送済みデータ数
とレジスタ207に格納された転送すべきデータ数とを
比較する比較器213とから構成されている。
【0034】レジスタ205に格納される転送済みデー
タ数は、データ転送が開始される時点で0に初期化され
た後、データを1単位転送する1サイクルごとに1ずつ
インリメントされる。比較器213は、レジスタ205
に格納された転送済みデータ数とレジスタ207に格納
された転送すべきデータ数とを比較し、両データ数が一
致すると、行転送終了信号を出力する。
【0035】図1のソースアドレス生成回路の中央ブロ
ックは、アドレスを生成するアドレス生成部である。こ
のアドレス生成部は、データ転送アドレスの周期、即
ち、ある行の先頭アドレスから次の行の先頭アドレスま
でのデータ数が初期化時に格納されるレジスタ203
と、現在転送が行われている行の先頭アドレス(未転送
の場合は、データ転送のソース側メモリにおけるデータ
転送を行うデータのアドレス領域における最初のアドレ
スであるベースアドレス)が入力されるマルチプレクサ
215と、マルチプレクサ215から入力される現在転
送中の行の先頭アドレスにレジスタ203から入力され
るデータ転送アドレスの周期を加算する加算器209
と、初期化時にベースアドレスがセットされ、比較器2
13からの行転送終了信号が入力されるごとにベースア
ドレスにデータ転送アドレスの周期を順次加算したもの
が格納されるレジスタ204と、入力されるアドレスを
インクリメントする加算器211と、初期化時にはベー
スアドレスが、行転送終了時にはレジスタ204からの
次の行の先頭アドレスが、それ以外のデータ転送中にお
いては順次加算器211でインクリメントされたアドレ
スが入力されるマルチプレクサ217と、転送されるデ
ータのアドレスがマルチプレクサ217から入力され格
納されるレジスタ206とから構成されている。
【0036】データ転送を行う場合、レジスタ204に
は常に現在転送が行われている行の先頭アドレスが格納
され、レジスタ206には常に転送しようとするデータ
のアドレスが格納されることになる。データ転送開始後
は、転送しようとするデータのアドレスが1クロックご
とにレジスタ206に格納され出力される。
【0037】図1のソースアドレス生成回路の左側ブロ
ックは、転送されたデータの行数をカウントする転送行
数カウント部である。この転送行数カウント部は、転送
すべきデータ行数が格納されるレジスタ201と、転送
されたデータ行数をインクリメントする加算器208
と、転送済みデータ行数(未転送の場合は0)を出力す
るマルチプレクサ214と、転送済みデータ行数が格納
されるレジスタ202と、レジスタ201に格納された
転送すべきデータ行数とレジスタ202に格納された転
送済みデータ行数とを比較する比較器212とから構成
されている。
【0038】比較器212は、転送すべきデータ行数と
転送済みデータ行数とが一致すると転送終了信号を出力
する。データ転送の終了判定は、ソース側又はターゲッ
ト側のいずれかで行えばよい。従って、例えば、ソース
側に終了判定機能、即ち、転送行数カウント部(レジス
タ201及び202,加算器208,比較器212の各
構成要素)が備えられていれば、ターゲット側にはこれ
らは不要である。
【0039】図2は、本発明に係るDMAコントローラ
を用いて、2次元にマッピングされたアドレス空間の矩
形領域から連続領域(図2(a))又は矩形領域(図2
(b))へデータ転送を行う様子を模式的に示した説明
図であり、図3は、本発明に係るDMAコントローラを
プロセッサから制御することにより、図2に示したよう
なデータ転送を行う場合におけるプロセッサから見たレ
ジスタマップである。
【0040】図2及び図3からも分かるように、上述し
た本発明に係るDMAコントローラによれば、予め設定
するパラメータ、即ち、行数、周期、ベースアドレス、
行データ数等を適当なものに設定することによって、1
次元にマッピングされたアドレス空間の連続領域やある
増分ごとのデータ群のブロック転送のみならず、2次元
にマッピングされたアドレス空間の任意の矩形領域、
行、列、ななめ、桂馬とび等の位置関係にある様々なデ
ータ群についてのデータ転送のプログラミングが可能と
なる。
【0041】図4は、本発明の第2の実施の形態に係る
DMAコントローラのソースアドレス生成回路のブロッ
ク図である。第1の実施の形態の場合と同様に、図4の
ソースアドレス生成回路は、3つのブロックから構成さ
れている。また、ターゲットアドレス生成回路は、ソー
スアドレス生成回路と同様の構成であるので、その構成
についての説明は省略する。
【0042】図4のソースアドレス生成回路の右側ブロ
ックは、連続した転送データ数(行のデータ数)をカウ
ントする転送データ数カウント部である。この転送デー
タ数カウント部は、データを1単位転送するごとに既に
転送したデータ数に対して1だけインクリメントを行う
加算器210と、加算器の演算結果に応じて、データ転
送する行の転送済みデータ数に対して1だけインクリメ
ントしたデータ数(未転送の場合は1)を出力するマル
チプレクサ216と、データ転送する行の転送済みデー
タ数に対して1だけインクリメントしたデータ数(当該
サイクル終了時における転送済みデータ数)が格納され
るレジスタ205と、1行内の転送すべきデータ数がデ
ータ転送前の初期化時に格納されるレジスタ207と、
レジスタ205から出力された当該サイクル終了時にお
ける転送済みデータ数とレジスタ207に格納された転
送すべきデータ数とを比較する比較器213とから構成
されている。
【0043】レジスタ205に格納される当該サイクル
終了時における転送済みデータ数は、データ転送が開始
される時点で1に初期化された後、データを1単位転送
する1サイクルごとに1ずつインリメントされる。比較
器213は、レジスタ205に格納された当該サイクル
終了時における転送済みデータ数とレジスタ207に格
納された転送すべきデータ数とを比較し、両データ数が
一致すると、行転送終了信号を出力する。
【0044】図4のソースアドレス生成回路の中央ブロ
ックは、アドレスを生成するアドレス生成部である。こ
のアドレス生成部は、データ転送アドレスの周期、即
ち、ある行の先頭アドレスから次の行の先頭アドレスま
でのデータ数が初期化時に格納されるレジスタ203
と、現在転送中の行の先頭アドレスにレジスタ203か
ら入力されるデータ転送アドレスの周期を加算する加算
器209と、現在転送が行われている行の先頭アドレス
(未転送の場合は、データ転送のソース側メモリにおけ
るデータ転送を行うデータのアドレス領域における最初
のアドレスであるベースアドレス)が加算器209から
入力されるマルチプレクサ215と、初期化時にベース
アドレスがセットされ、比較器213からの行転送終了
信号が入力されるごとにベースアドレスにデータ転送ア
ドレスの周期を順次加算したものが格納されるレジスタ
204と、レジスタ204からのアドレスにレジスタ2
05からの当該サイクル終了時における転送済みデータ
数を加算する加算器211と、初期化時及び行転送終了
時における次の行の先頭アドレス並びに加算器211か
らのアドレス、即ち、転送しようとするデータのアドレ
スが入力されるマルチプレクサ217と、マルチプレク
サ217からの転送しようとするデータのアドレスが転
送開始後1クロックごとに格納され出力されるレジスタ
206とから構成されている。
【0045】データ転送を行う場合、レジスタ204に
は常に現在転送が行われている行の先頭アドレスが格納
され、レジスタ206には常に転送しようとするデータ
のアドレスが格納されることになる。データ転送開始後
は、転送しようとするデータのアドレスが1クロックご
とにレジスタ206に格納され出力される。
【0046】図4のソースアドレス生成回路の左側ブロ
ックは、転送されたデータの行数をカウントする転送行
数カウント部である。この転送行数カウント部は、第1
の実施の形態と同様の構成を有している。即ち、転送す
べきデータ行数が格納されるレジスタ201と、転送さ
れたデータ行数をインクリメントする加算器208と、
転送済みデータ行数(未転送の場合は0)を出力するマ
ルチプレクサ214と、転送済みデータ行数が格納され
るレジスタ202と、レジスタ201に格納された転送
すべきデータ行数とレジスタ202に格納された転送済
みデータ行数とを比較する比較器212とから構成され
ている。
【0047】比較器212は、転送すべきデータ行数と
転送済みデータ行数とが一致すると転送終了信号を出力
する。データ転送の終了判定は、ソース側又はターゲッ
ト側のいずれかで行えばよい。従って、例えば、ソース
側に終了判定機能、即ち、転送行数カウント部(レジス
タ201及び202,加算器208,比較器212の各
構成要素)が備えられていれば、ターゲット側にはこれ
らは不要である。
【0048】
【発明の効果】本発明に係るDMAコントローラによれ
ば、データ転送しようとするデータのアドレスが連続し
た領域(以下、「アドレス連続領域」という。)のうち
データ転送中のアドレス連続領域におけるデータ転送終
了時を決定し、アドレス連続領域転送終了信号を出力す
るアドレス連続領域転送終了決定部と、データ転送しよ
うとするアドレス連続領域に含まれているアドレスを先
頭アドレスから順次更新して出力し、アドレス連続領域
転送終了信号に応じて、複数のアドレス連続領域につい
て順次同様のアドレスの更新及び出力を行うアドレス生
成部と、データ転送しようとするデータのアドレス領域
に含まれている総てのアドレス連続領域のうち最後のア
ドレス連続領域におけるデータ転送終了時を決定し、デ
ータ転送終了信号を出力するデータ転送終了決定部とを
備えたものとしたので、予め設定するパラメータを適当
なものに設定することによって、1次元にマッピングさ
れたアドレス空間の連続領域やある増分ごとのデータ群
のブロック転送のみならず、2次元にマッピングされた
アドレス空間の任意のデータ群についてのデータ転送を
一度の転送動作で行うことができる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係るDMAコント
ローラのソースアドレス生成回路のブロック図。
【図2】本発明に係るDMAコントローラを用いて、2
次元にマッピングされたアドレス空間の矩形領域から連
続領域(図2(a))又は矩形領域(図2(b))へデ
ータ転送を行う様子を模式的に示した説明図。
【図3】図2に示したようなデータ転送を行う場合にお
けるプロセッサから見たレジスタマップ。
【図4】本発明の第2の実施の形態に係るDMAコント
ローラのソースアドレス生成回路のブロック図。
【図5】DMAコントローラと複数のメモリとの接続関
係を示したブロック図。
【図6】DMAコントローラの構成を示すブロック図。
【図7】データ転送の際のタイミングチャート。
【図8】データ転送の際の状態遷移図。
【図9】従来のDMAコントローラのソースアドレス生
成回路の構成を示したブロック図。
【符号の説明】
70 DMAコントローラ M0〜Mn メモリモジュール 81 状態遷移回路 82 ソースアドレス生成回路 83 ターゲットアドレス生成回路 84 チップイネーブル(CE)信号生成回路 85 読出し/書込み(R/W)信号生成回路 86 アドレス出力回路 87 読出しデータ選択回路 88 データ保持用レジスタ 201〜207,601〜604 レジスタ 208〜211,605,606 加算器 212,213,607 比較器 214〜217,608,609 マルチプレクサ

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】データ転送しようとするデータのアドレス
    が連続した領域(以下、「アドレス連続領域」とい
    う。)のうちデータ転送中のアドレス連続領域における
    データ転送終了時を決定し、アドレス連続領域転送終了
    信号を出力するアドレス連続領域転送終了決定部と、 データ転送しようとするアドレス連続領域に含まれてい
    るアドレスを先頭アドレスから順次更新して出力し、前
    記アドレス連続領域転送終了信号に応じて、複数のアド
    レス連続領域について順次同様のアドレスの更新及び出
    力を行うアドレス生成部と、 データ転送しようとするデータのアドレス領域に含まれ
    ている総てのアドレス連続領域のうち最後のアドレス連
    続領域におけるデータ転送終了時を決定し、データ転送
    終了信号を出力するデータ転送終了決定部と、を備えた
    ことを特徴とするDMAコントローラ。
  2. 【請求項2】データ転送しようとするデータのアドレス
    が連続した領域(以下、「アドレス連続領域」とい
    う。)あたりのデータ数を保持するアドレス連続領域デ
    ータ数保持手段と、 データを転送するごとに、データ転送中のアドレス連続
    領域における転送済みデータ数を更新するデータ数計数
    手段と、 前記アドレス連続領域データ数保持手段に保持されたデ
    ータ数と、前記データ数計数手段により更新されたデー
    タ数とを比較し、一致したときにアドレス連続領域転送
    終了信号を出力するデータ数比較手段と、 一のアドレス連続領域の先頭アドレスから次のアドレス
    連続領域の先頭アドレスまでのデータ数であるアドレス
    周期を保持するアドレス周期保持手段と、 データ転送しようとするデータのアドレス領域における
    最初のアドレスであるベースアドレスを保持するベース
    アドレス保持手段と、 前記ベースアドレス、又は、前記アドレス連続領域転送
    終了信号に応じて前記ベースアドレスに前記アドレス周
    期を順次加算した先頭アドレスを保持する先頭アドレス
    保持手段と、 データを転送するごとに、前記先頭アドレス保持手段に
    保持された前記ベースアドレス又は先頭アドレスを順次
    インクリメントするアドレス更新手段と、 データ転送しようとするアドレス連続領域数を保持する
    アドレス連続領域数保持手段と、 前記アドレス連続領域転送終了信号に応じて、転送済み
    アドレス連続領域数を更新するアドレス連続領域数計数
    手段と、 前記アドレス連続領域数保持手段に保持されたアドレス
    連続領域数と、前記アドレス連続領域数計数手段により
    更新されたアドレス連続領域数とを比較し、一致したと
    きにデータ転送終了信号を出力するアドレス連続領域数
    比較手段と、を備えたことを特徴とするDMAコントロ
    ーラ。
  3. 【請求項3】データ転送しようとするデータのアドレス
    が連続した領域(以下、「アドレス連続領域」とい
    う。)あたりのデータ数を保持する第1のレジスタと、 データを転送するごとに、データ転送中のアドレス連続
    領域における転送済みデータ数を順次インクリメントす
    る第1の加算器と、 前記転送済みデータ数、又は、一のアドレス連続領域の
    データが未転送の場合には0のいずれかを選択的に出力
    する第1のマルチプレクサと、 前記第1のマルチプレクサから出力されたデータ数を保
    持し、所定のタイミングで出力する第2のレジスタと、 前記第1のレジスタに保持されたデータ数と、前記第2
    のレジスタから出力されたデータ数とを比較し、一致し
    たときにアドレス連続領域転送終了信号を出力する第1
    の比較器と、 一のアドレス連続領域の先頭アドレスから次のアドレス
    連続領域の先頭アドレスまでのデータ数であるアドレス
    周期を保持する第3のレジスタと、 データが未転送の場合にはデータ転送しようとするデー
    タのアドレス領域における最初のアドレスであるベース
    アドレス、又は、前記ベースアドレスに前記アドレス周
    期が順次加算された先頭アドレスのいずれかを選択的に
    出力する第2のマルチプレクサと、 前記第2のマルチプレクサから出力された前記ベースア
    ドレス又は先頭アドレスに前記アドレス周期を加算して
    先頭アドレスを順次更新する第2の加算器と、 前記第2の加算器により更新された先頭アドレスを保持
    し、前記アドレス連続領域転送終了信号に応じて出力す
    る第4のレジスタと、 データを転送するごとに、前記ベースアドレス又は前記
    第2の加算器により更新された先頭アドレスを順次イン
    クリメントする第3の加算器と、 前記前記ベースアドレス、又は、前記第2の加算器によ
    り更新された先頭アドレス、又は、前記第3の加算器に
    より順次インクリメントされたアドレスのいずれかを選
    択的に出力する第3のマルチプレクサと、 前記第3のマルチプレクサから出力されたアドレスを保
    持し、所定のタイミングで出力する第5のレジスタと、 データ転送しようとするアドレス連続領域数を保持する
    第6のレジスタと、 前記アドレス連続領域転送終了信号に応じて、転送済み
    アドレス連続領域数を順次インクリメントする第4の加
    算器と、 前記第4の加算器により順次インクリメントされた転送
    済みアドレス連続領域数、又は、データが未転送の場合
    には0のいずれかを選択的に出力する第4のマルチプレ
    クサと、 前記第4のマルチプレクサから出力されたアドレス連続
    領域数を保持し、前記アドレス連続領域転送終了信号に
    応じて出力する第7のレジスタと、 前記第6のレジスタに保持されたアドレス連続領域数
    と、前記第7のレジスタから出力されたアドレス連続領
    域数とを比較し、一致したときにデータ転送終了信号を
    出力する第2の比較器と、を備えたことを特徴とするD
    MAコントローラ。
  4. 【請求項4】データ転送しようとするデータのアドレス
    が連続した領域(以下、「アドレス連続領域」とい
    う。)あたりのデータ数を保持する第1のレジスタと、 データを転送するごとに、データ転送中のアドレス連続
    領域における転送済みデータ数を順次インクリメントす
    る第1の加算器と、 前記転送済みデータ数、又は、一のアドレス連続領域の
    データの転送開始時には1のいずれかを選択的に出力す
    る第1のマルチプレクサと、 前記第1のマルチプレクサから出力されたデータ数を保
    持し、所定のタイミングで出力する第2のレジスタと、 前記第1のレジスタに保持されたデータ数と、前記第2
    のレジスタから出力されたデータ数とを比較し、一致し
    たときにアドレス連続領域転送終了信号を出力する第1
    の比較器と、 一のアドレス連続領域の先頭アドレスから次のアドレス
    連続領域の先頭アドレスまでのデータ数であるアドレス
    周期を保持する第3のレジスタと、 先頭アドレスに前記アドレス周期を加算して先頭アドレ
    スを順次更新する第2の加算器と、 データが未転送の場合にはデータ転送しようとするデー
    タのアドレス領域における最初のアドレスであるベース
    アドレス、又は、前記第2の加算器により更新された先
    頭アドレスのいずれかを選択的に出力する第2のマルチ
    プレクサと、 前記第2のマルチプレクサから出力された前記ベースア
    ドレス又は先頭アドレスを保持し、前記アドレス連続領
    域転送終了信号に応じて出力する第4のレジスタと、 データを転送するごとに、前記第4のレジスタから出力
    された前記ベースアドレス又は先頭アドレスに、前記第
    2のレジスタから出力されたデータ数を加算してアドレ
    スを更新する第3の加算器と、 前記前記ベースアドレス、又は、前記第2の加算器によ
    り更新された先頭アドレス、又は、前記第3の加算器に
    より更新されたアドレスのいずれかを選択的に出力する
    第3のマルチプレクサと、 前記第3のマルチプレクサから出力されたアドレスを保
    持し、所定のタイミングで出力する第5のレジスタと、 データ転送しようとするアドレス連続領域数を保持する
    第6のレジスタと、 前記アドレス連続領域転送終了信号に応じて、転送済み
    アドレス連続領域数を順次インクリメントする第4の加
    算器と、 前記第4の加算器により順次インクリメントされた転送
    済みアドレス連続領域数、又は、データが未転送の場合
    には0のいずれかを選択的に出力する第4のマルチプレ
    クサと、 前記第4のマルチプレクサから出力されたアドレス連続
    領域数を保持し、前記アドレス連続領域転送終了信号に
    応じて出力する第7のレジスタと、 前記第6のレジスタに保持されたアドレス連続領域数
    と、前記第7のレジスタから出力されたアドレス連続領
    域数とを比較し、一致したときにデータ転送終了信号を
    出力する第2の比較器と、を備えたことを特徴とするD
    MAコントローラ。
JP9269913A 1997-10-02 1997-10-02 Dmaコントローラ Pending JPH11110339A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP9269913A JPH11110339A (ja) 1997-10-02 1997-10-02 Dmaコントローラ
US09/164,614 US6292853B1 (en) 1997-10-02 1998-10-01 DMA controller adapted for transferring data in two-dimensional mapped address space

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9269913A JPH11110339A (ja) 1997-10-02 1997-10-02 Dmaコントローラ

Publications (1)

Publication Number Publication Date
JPH11110339A true JPH11110339A (ja) 1999-04-23

Family

ID=17478972

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9269913A Pending JPH11110339A (ja) 1997-10-02 1997-10-02 Dmaコントローラ

Country Status (2)

Country Link
US (1) US6292853B1 (ja)
JP (1) JPH11110339A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6629160B1 (en) 1999-06-16 2003-09-30 Nec Electronics Corporation Direct memory access controller
JP2003316721A (ja) * 2002-04-24 2003-11-07 Oki Electric Ind Co Ltd データ転送制御装置、データ転送装置及びデータ転送制御方法
JP2011103129A (ja) * 2010-11-29 2011-05-26 Mega Chips Corp データ転送制御装置およびデータ転送方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6449664B1 (en) * 1998-11-16 2002-09-10 Viewahead Technology, Inc. Two dimensional direct memory access in image processing systems
CN100498748C (zh) * 2007-11-16 2009-06-10 威盛电子股份有限公司 计算机***及直接内存访问传输方法
US8073990B1 (en) 2008-09-23 2011-12-06 Teradici Corporation System and method for transferring updates from virtual frame buffers
US8224885B1 (en) 2009-01-26 2012-07-17 Teradici Corporation Method and system for remote computing session management
CN108804356A (zh) * 2017-04-26 2018-11-13 上海寒武纪信息科技有限公司 数据传输装置及方法
GB201903513D0 (en) * 2019-03-14 2019-05-01 Blueshift Memory Ltd Moving data in a memory and command for memory control

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0296835B1 (en) * 1987-06-24 1993-12-01 Canon Kabushiki Kaisha Colour printer apparatus
JP3055917B2 (ja) * 1990-05-22 2000-06-26 日本電気株式会社 データ転送制御装置
US5553307A (en) * 1992-04-17 1996-09-03 Hitachi, Ltd. Method and device for transferring noncontiguous blocks in one transfer start by creating bit-map indicating which block is to be transferred
JP3564732B2 (ja) * 1994-06-30 2004-09-15 ソニー株式会社 ディスク制御方法および装置
US5963713A (en) * 1994-11-07 1999-10-05 Canon Aptex Inc. Printer using direct memory access and refreshing
US5596376A (en) 1995-02-16 1997-01-21 C-Cube Microsystems, Inc. Structure and method for a multistandard video encoder including an addressing scheme supporting two banks of memory
US5758182A (en) * 1995-05-15 1998-05-26 Nvidia Corporation DMA controller translates virtual I/O device address received directly from application program command to physical i/o device address of I/O device on device bus
US5802546A (en) * 1995-12-13 1998-09-01 International Business Machines Corp. Status handling for transfer of data blocks between a local side and a host side
US5668938A (en) * 1996-01-11 1997-09-16 Xerox Corporation Control system for programming first print out time in a printing system
US6108722A (en) * 1996-09-13 2000-08-22 Silicon Grpahics, Inc. Direct memory access apparatus for transferring a block of data having discontinous addresses using an address calculating circuit

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6629160B1 (en) 1999-06-16 2003-09-30 Nec Electronics Corporation Direct memory access controller
JP2003316721A (ja) * 2002-04-24 2003-11-07 Oki Electric Ind Co Ltd データ転送制御装置、データ転送装置及びデータ転送制御方法
JP2011103129A (ja) * 2010-11-29 2011-05-26 Mega Chips Corp データ転送制御装置およびデータ転送方法

Also Published As

Publication number Publication date
US6292853B1 (en) 2001-09-18

Similar Documents

Publication Publication Date Title
US7707328B2 (en) Memory access control circuit
US20040236898A1 (en) Synchronous semiconductor storage device module and its control method, information device
JPH0255878B2 (ja)
JP2019121370A (ja) メモリ装置
JPH11110339A (ja) Dmaコントローラ
US5923612A (en) Synchronous semiconductor memory device having macro command storage and execution method therefor
US5603046A (en) Method for complex data movement in a multi-processor data processing system
JPH09198862A (ja) 半導体メモリ
JPS6041769B2 (ja) アドレス指定方式
KR100394136B1 (ko) 메모리 시스템의 리던던트 방식 어드레스 디코더
JPH11250660A (ja) メモリデバイスおよび該メモリデバイスのアドレッシング方法
JPH06103225A (ja) チェーン式dma方式及びそのためのdmaコントローラ
US6483753B1 (en) Endianess independent memory interface
JP2000099452A (ja) Dma制御装置
JP3222647B2 (ja) メモリバンク自動切替システム
JP3370222B2 (ja) シーケンサ
JPH1040165A (ja) データ読み出し方法およびリードバッファ
JPS61198351A (ja) ダイレクト・メモリ・アクセス制御回路
JPH0660632A (ja) 半導体記憶回路
JP3557895B2 (ja) メモリクリア装置
JP2003015862A (ja) 演算装置および受信装置
JPH04245556A (ja) 命令メモリ
JP2622553B2 (ja) マイクロコンピュータ
JPH04209046A (ja) メモリアクセス回路
JPH01265358A (ja) ビットリバース回路