JP2000132497A - Dma制御方法及び装置 - Google Patents

Dma制御方法及び装置

Info

Publication number
JP2000132497A
JP2000132497A JP10306562A JP30656298A JP2000132497A JP 2000132497 A JP2000132497 A JP 2000132497A JP 10306562 A JP10306562 A JP 10306562A JP 30656298 A JP30656298 A JP 30656298A JP 2000132497 A JP2000132497 A JP 2000132497A
Authority
JP
Japan
Prior art keywords
transfer
byte
bytes
aligned
address
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.)
Granted
Application number
JP10306562A
Other languages
English (en)
Other versions
JP3206568B2 (ja
Inventor
Masayuki Daito
正行 大東
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 JP30656298A priority Critical patent/JP3206568B2/ja
Priority to EP99121507A priority patent/EP0997822A3/en
Priority to CN 99122084 priority patent/CN1252566A/zh
Publication of JP2000132497A publication Critical patent/JP2000132497A/ja
Application granted granted Critical
Publication of JP3206568B2 publication Critical patent/JP3206568B2/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)

Abstract

(57)【要約】 【課題】 DMA転送により任意のバイト数のデータを
転送する際に、データ転送回数を少なくして転送時間を
短縮することができるDMA制御装置を提供する。 【解決手段】 複数バイトバス幅を持つバス上で2バイ
ト以上のバス幅を用いてデータを転送する際、最下位ア
ドレスを偶数アドレスから転送するバスシステムに接続
されるDMA制御装置において、データ転送毎に、転送
元及び転送先のアドレス領域と転送バイト数に基づきバ
ス上の最適なデータ転送時バス幅である転送バイトサイ
ズを求める転送サイズ決定手段14を有する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、DMA転送を行う
DMA制御装置に関し、特に、転送サイズを自動的に変
更する機能を備えたDMA制御装置に関する。
【0002】
【従来の技術】従来、例えばメモリ同士のデータ転送を
両メモリ間で直接行うように、データ転送をCPUを経
由させず転送相手間で直接行うDMA(Direct
Memory Access)転送方法が知られてい
る。このようなDMA転送方法を用いることにより、C
PUを経由する場合に比べて高速にデータ転送を行うこ
とができる。
【0003】図10は、従来のDMA転送を行うための
DMA制御装置の概略構成を示すブロック図である。図
10示すように、DMA制御装置1は、転送元アドレス
を保持する転送元アドレスレジスタ2、転送先アドレス
を保持する転送先アドレスレジスタ3、全体の転送バイ
ト数を保持する転送バイト数レジスタ4、1回の転送サ
イズを示す転送サイズレジスタ5、及びバスサイクル発
生器(BCU)6を有している。バスサイクル発生器6
は、バス7を介して転送元メモリ8及び転送先メモリ9
に接続されており、転送元メモリ8及び転送先メモリ9
に対しメモリアクセスを発生させる。
【0004】このDMA制御装置1において、転送要求
に基づく転送リクエスト信号aが入力すると、転送元ア
ドレスレジスタ2で指定される転送元メモリ8から、転
送先アドレスレジスタ3で指定される転送先メモリ9に
対し、転送バイト数分のデータが転送される。
【0005】
【発明が解決しようとする課題】しかしながら、このデ
ータ転送は、複数バイトのバス幅を持つバスに対して何
バイト分のバス幅を使ってデータ転送するかを示す転送
サイズレジスタ5で定められた転送時バス幅サイズであ
る1回の転送バイト数で行われ、転送バイト数レジスタ
4に定められているバイト数を転送するには、(転送す
べき総バイト数/1回の転送バイト数)回のデータ転送
を必要とする。
【0006】つまり、データ転送回数は、転送バイト数
レジスタ4で示される値を転送サイズレジスタ5で割っ
た数の分だけ、必ず発生する。これは、1回の転送サイ
ズが、転送サイズレジスタ5で指定されているためであ
り、例えば、転送元アドレスAが0000001Fであ
って転送サイズSが257バイトであった場合に、DR
AM(Dynamic Randam Access
Memory)を読み出すアライメントを考えると、バ
ス幅が複数バイトあっても転送サイズSは1バイトしか
設定できないことになる。何故なら、最下位アドレスを
偶数アドレスから転送するバスシステムにおいて、転送
サイズ数は2のn乗でなくてはならないのは、当業者に
は公知であり、転送バイト数である257バイトを転送
できる最大の転送サイズ数は、1バイトしかないためで
ある。
【0007】その結果、以下の手順で転送が行われ、 A:0000000F、S:257バイト、1回目の転
送:1バイト A:00000010、S:256バイト、2回目の転
送:1バイト A:00000011、S:255バイト、3回目の転
送:1バイト ・ ・ A:0000010F、S:1バイト、257回目の転
送:1バイト A:00000110、転送完了 となり、転送サイズS数分の計257回のデータ転送が
必要となる。
【0008】このようなDMA転送方法を示すものとし
て、例えば、特開平5−67035号公報に開示された
DMA転送におけるデータアライメント方式があるが、
この場合も、CPU制御により行われるため、時間がか
かるのは避けられない。
【0009】本発明の目的は、DMA転送により任意の
バイト数のデータを転送する際に、データ転送回数を少
なくして転送時間を短縮することができるDMA制御方
法及び装置を提供することである。
【0010】
【課題を解決するための手段】上記目的を達成するた
め、本発明に係るDMA制御方法は、複数バイトバス幅
を持つバス上で2バイト以上のバス幅を用いてデータを
転送する際、最下位アドレスを偶数アドレスから転送す
るバスシステムに接続されるDMA制御方法において、
データ転送毎に、転送元及び転送先のアドレス領域と転
送バイト数に基づきバス上の最適なデータ転送時バス幅
である転送バイトサイズを求めることを特徴としてい
る。
【0011】上記構成を有することにより、最下位アド
レスを偶数アドレスから転送するバスシステムに接続さ
れて、複数バイトバス幅を持つバス上で2バイト以上の
バス幅を用いてデータを転送する際、1回のデータ転送
毎に、転送元及び転送先のアドレス領域と転送バイト数
に基づきバス上の最適なデータ転送時バス幅である転送
バイトサイズが求められる。これにより、DMA転送に
より任意のバイト数のデータを転送する際に、データ転
送回数を少なくして転送時間を短縮することができる。
【0012】また、本発明に係るDMA制御装置によ
り、上述したDMA制御方法を実現することができる。
【0013】
【発明の実施の形態】以下、本発明の実施の形態につい
て図面を参照して説明する。 [第1の実施の形態]図1は、本発明の第1の実施の形
態に係るDMA制御装置の概略構成を示すブロック図で
ある。図1に示すように、DMA制御装置10は、転送
元アドレスを保持する転送元アドレスレジスタ11、転
送先アドレスを保持する転送先アドレスレジスタ12、
全体の転送バイト数を保持する転送バイト数レジスタ1
3、転送サイズ決定手段14、バスサイクル発生器(B
CU)15、及びDMA転送制御器16を有する。バス
サイクル発生器15は、64バイト幅のバス17を介し
て、転送元メモリ18及び転送先メモリ19に接続され
る。
【0014】転送サイズ決定手段14は、DMA制御装
置10によるDMA転送に際し、1回のデータ転送によ
り転送される転送バイトサイズを、1回転送する毎に計
算し評価決定する。バスサイクル発生器15は、転送元
アドレスレジスタ11で指示される転送元メモリ18及
び転送先アドレスレジスタ12で指示される転送先メモ
リ19に対して、メモリアクセスを発生させる。DMA
転送制御器16は、転送要求に基づく転送リクエスト信
号aの入力により、DMA制御装置10によるDMA転
送の実行を指示する。
【0015】転送サイズ決定手段14は、転送元アドレ
スアラインバイト判定器20、転送先アドレスアライン
バイト判定器21、アラインバイト数判定器22、アラ
インバイト数統合器23、及び最小アラインバイト生成
器24を有する。
【0016】転送元アドレスレジスタ11は、転送元ア
ドレスアラインバイト判定器20に接続され、転送先ア
ドレスレジスタ12は、転送先アドレスアラインバイト
判定器21に接続される。転送バイト数レジスタ13
は、アラインバイト数判定器22に接続される。
【0017】図2は、図1の転送元/転送先アドレスア
ラインバイト判定器20,21を示し、(a)は前半パ
ートの回路図、(b)は後半パートの回路図である。図
2に示すように、転送元アドレスアラインバイト判定器
20及び転送先アドレスアラインバイト判定器21は、
同一の構成を有し、前半と後半の2つのパートに分かれ
ている。このアドレスアラインバイト判定器20,21
により、入力されたアドレスが満たす最大アライン境界
を見つけ出す。
【0018】前半パート((a)参照)は、入力された
アドレスが何バイト境界にアラインされているアドレス
かを、デコードする回路である。ここでは、LSB(l
east significant bit:ビット並
びの最下位)から最初に1が見つかる位置を判断するリ
ードワンディテクタ(lead−one−detect
or)を構成している。
【0019】後半パート((b)参照)は、アラインさ
れたnバイト境界を、重み付けしたビット位置で表した
コード、例えば図2(b)に示す10進数を2進数にし
た値に置き換える回路であり、転送元アドレスのアライ
ンメント情報であるアドレスアラインバイト数、TAd
rBND[7:0]或いはDAdrBND[7:0]を
出力する。
【0020】つまり、転送バイト数レジスタ13は、転
送するバイト数(257ビット)が記憶されたレジスタ
であり、前半パートのデコーダを通して、この転送バイ
ト数の最大転送可能数を調べる。そして、Aであれば最
大1バイト以上、Bであれば最大2バイト以上、Cであ
れば最大4バイト以上、Dであれば最大8バイト以上、
Eであれば最大16バイト以上、Fであれば最大32バ
イト以上、Gであれば最大64バイト以上、Hであれば
最大128バイト以上、それぞれ転送することができ
る。
【0021】図3は、図1のアラインバイト数判定器2
2を示し、(a)は前半パートの回路図、(b)は後半
パートの回路図である。図3に示すように、アラインバ
イト数判定器22は、前半と後半の2つのパートに分か
れており、入力されたバイト数を越えない、最大の2の
n乗のバイト数を計算する。
【0022】前半パート((a)参照)は、入力された
バイト数が、どのような2のn乗の値を含んでいるかを
判断する回路である。ここでは、MSB(most s
ignificant bit:ビット並びの最上位)
から最初に1が見つかる位置を判断するリードワンディ
テクタ(lead−one−detector)を構成
している。
【0023】後半パート((b)参照)は、この2のn
乗の値を、重み付けしたビット位置で表したコードに置
き換える回路であり、転送バイト数を満たす最大アライ
ンバイト数、restBytE[7:0]を出力する。
【0024】図4は、図1のアラインバイト数統合器2
3の回路図である。図4に示すように、アラインバイト
数統合器23は、OR回路からなり、ここでは、両アド
レスアラインバイト判定器20,21及びアラインバイ
ト数判定器22から入力した各重み付けコードを論理和
(OR動作)して、アライン情報を一つにまとめる。
【0025】その結果、転送元アドレスのアドレスアラ
インバイト数であるTAdrBND[7]とDAdrB
ND[7]、及び転送バイト数を満たす最大アラインバ
イト数であるrestBytE[7]の入力により、統
合アライン情報であるAccsiz[7]が出力され
る。同様に、統合アライン情報、Accsiz[6],
…,Accsiz[0]が出力される。なお、各重み付
けコードは、両アドレスアラインバイト判定器20,2
1及びアラインバイト数判定器22によってコード化さ
れた情報である。
【0026】図5は、図1の最小アラインバイト生成器
の回路図である。図5に示すように、最小アラインバイ
ト生成器24は、前半と後半の2つのパートに分かれて
おり、アラインバイト数統合器23からのアラインバイ
ト数統合情報の入力により最小のアラインバイトを生成
する。この結果、転送バイトサイズが決定される。
【0027】前半パートは、入力したアライン情報のL
SBから最初に1が現れる場所を見つけ出すことによ
り、最小のアライン情報を取り出す回路である。後半パ
ートは、この最小のアライン情報を、重み付けしたビッ
ト位置で表したコードに置き換える回路であり、バイト
数にエンコードし転送サイズとして出力する。
【0028】従って、転送サイズ決定手段14により、
入力される転送元アドレス及び転送先アドレスに対し、
入力されたアドレスが満たす最大アライン境界を見つけ
コード化する第1の処理、入力された転送バイト数を越
えない最大の2のn乗のバイト数を計算しコード化する
第2の処理、前記第1及び第2の処理によりコード化さ
れた情報を論理和しアライン情報を統合する第3の処
理、前記第3の処理により統合されたアライン情報から
最小アライン情報を取り出しバイト数にエンコードする
第4の処理を経て、最適な転送バイトサイズが求められ
る。
【0029】この最小アラインバイト生成器24からの
出力がバスサイクル発生器15に入力することにより、
バスサイクル発生器15は、入力した転送バイトサイズ
に基づくバイト数に従い、転送元からのデータリード及
び転送先へのデータライトを行う。
【0030】図6は、図1のDMA制御装置における転
送先へのデータライトの手順を示すフローチャートであ
る。図6に示すように、先ず、DMA転送の要求がある
か否かを判定し(ステップS101)、要求が無い(N
o)場合は判定を続ける。この判定を行うに際し、CP
Uの制御命令により、転送元アドレス、転送先アドレス
及び転送バイト数が、それぞれDMA制御装置10の各
該当レジスタに既に設定されている。
【0031】次に、DMA転送の要求がある(Yes)
場合は、CPUがDMA制御装置10に対しDMA転送
開始を指示し、DMA制御装置10において転送元アド
レスが取り出される(ステップS102)。この転送元
アドレスの取り出しに続いて、転送バイト数が取り出さ
れ(ステップS103)、更に転送先アドレスが取り出
され(ステップS104)、これら転送元アドレス、転
送バイト数及び転送先アドレスから、転送サイズが計算
される(ステップS105)。
【0032】次に、DMA制御装置10は、得られた転
送サイズに基づいて、転送元アドレスから転送サイズ分
だけデータを読み取り、読み取った転送サイズ分だけ転
送先アドレスへデータを書き込む(ステップS10
6)。
【0033】この転送サイズ分のデータの読み取り・書
き込みが行われることにより、転送元アドレスの更新
(ステップS107)、転送先アドレスの更新(ステッ
プS108)、及び転送バイト数の更新(ステップS1
09)が行われる。
【0034】その後、転送バイト数が0か否かが判定さ
れ(ステップS110)、転送バイト数が0でない(N
o)場合、ステップS102に戻って転送元アドレスの
取り出しが行われ、以後のステップを転送バイト数が0
になるまで繰り返す。転送バイト数が0である(Ye
s)場合、DMA制御装置10によるDMA転送が終了
する。
【0035】この結果、DMA制御装置10へ転送リク
エスト信号aが入力することにより、転送元アドレスレ
ジスタ11で指定される転送元メモリ18から、転送先
アドレスレジスタ12で指定される転送先メモリ19に
対して、転送バイト数分のデータが転送される。
【0036】上述したように、DMA制御装置10は、
得られた転送サイズに基づいて、転送元アドレスから転
送サイズ分だけデータを読み取り、読み取った転送サイ
ズ分だけ転送先アドレスへデータを書き込むが、この具
体例を以下に説明する。
【0037】データ転送に際し、1度のデータ転送にお
ける転送回数を、下記のアルゴリズムによって転送毎に
計算する。
【0038】 転送バイト数が64バイト以上である場合、64バイト 転送バイト数が32バイト以上である場合、32バイト 転送バイト数が16バイト以上である場合、16バイト 転送バイト数が8バイト以上である場合、8バイト 転送バイト数が4バイト以上である場合、4バイト 転送バイト数が2バイト以上である場合、2バイト 転送バイト数が1バイト以上である場合、1バイト 且つ、 転送元アドレスが64バイトアラインアドレスである場
合、64バイト 転送元アドレスが32バイトアラインアドレスである場
合、32バイト 転送元アドレスが16バイトアラインアドレスである場
合、16バイト 転送元アドレスが8バイトアラインアドレスである場
合、8バイト 転送元アドレスが4バイトアラインアドレスである場
合、4バイト 転送元アドレスが2バイトアラインアドレスである場
合、2バイト 転送元アドレスが1バイトアラインアドレスである場
合、1バイト の内、両方とも満たす、下から数えて最初に該当する最
も大きいバイト数のアドレスを求める。つまり、論理和
を取る。
【0039】この結果、例えば、転送元アドレスAが0
000000Fであって、転送サイズSが257バイト
であった場合、複数回行われるデータ転送の各回毎の転
送バイト数は、次のようになる。
【0040】A:0000000F、S:257バイ
ト、1回目の転送: 1バイト A:00000010、S:256バイト、2回目の転
送:16バイト A:00000020、S:240バイト、3回目の転
送:32バイト A:00000040、S:208バイト、4回目の転
送:64バイト A:00000080、S:144バイト、5回目の転
送:64バイト A:000000C0、S: 80バイト、6回目の転
送:64バイト A:00000100、S: 16バイト、7回目の転
送:16バイト A:00000110、転送完了 よって、計7回の転送で終了する。上記例では、4回目
で最大バイト数である64バイトを転送することができ
たが、アドレスがバイトアラインの何処に位置している
かにより、一度に転送できるバイト数が決まる。
【0041】このように、DMA制御装置10は、転送
元及び転送先アドレス領域と転送バイト数に基づいてバ
ス上の最適なデータ転送時バス幅である転送バイトサイ
ズを導き出し、転送サイズを自動的に更新する。従っ
て、複数バイトバス幅を持つバス上で2バイト以上のバ
ス幅を用いてデータを転送する際、最下位アドレスを偶
数アドレスから転送するバスシステムに接続され、バイ
トアラインの何処にアドレスが位置するかによって、1
回に転送できるバイト数が決まるが、従来は固定されて
いた転送バイト数(例えば1バイト)を、1回の転送毎
に何バイト転送できるかを計算して求めた最大値による
最大転送バイト数とすることができる。
【0042】即ち、転送元アドレス及び転送先アドレス
に対する最大アドレスアライメントの各バイト数、及び
転送バイト数の内から最大アラインバイト数を計算し
て、最適な転送バイトサイズが求められる。
【0043】この結果、決められた任意の転送バイト数
を転送する際に、転送元アドレスで示される転送元メモ
リ及び転送先アドレスで示される転送先メモリに対し、
転送のためのアクセスの回数を従来に比べ減らすことが
できるので、データ転送回数を少なくして転送時間を短
縮することができる。 [第2の実施の形態]図7は、本発明の第2の実施の形
態に係るDMA制御装置の概略構成を示すブロック図で
ある。図7に示すように、DMA制御装置30は、転送
サイズ決定手段14において1つずつ設けられていた、
アラインバイト数判定器22、アラインバイト数統合器
23及び最小アラインバイト生成器24を、それぞれ2
つずつ搭載した転送サイズ決定手段31、及びバッファ
32を設けた他は、DMA制御装置10と同様の構成を
有する。
【0044】上述した第1の実施の形態では、転送元ア
ドレスと転送バイト数と転送先アドレスのアドレスアラ
インが一致している組み合わせのバイト数で、転送を行
った。しかしながら、第1の実施の形態においては、転
送元アドレスのアドレスアラインと転送先アドレスのア
ドレスアラインが全くずれている場合、1バイト毎の転
送しかできず、転送元アドレスと転送バイト数とのアド
レスアラインが一致している条件に比べ、より制約の厳
しい条件になる。
【0045】そのため、この第2の実施の形態では、ア
ドレスアラインバイト判定器、アラインバイト数判定
器、アラインバイト数統合器、及び最小アラインバイト
生成器をそれぞれ2つずつ搭載することにより、上述し
た条件の制約を改善している。
【0046】転送サイズ決定手段31は、転送元アドレ
スアラインバイト判定器20、転送先アドレスアライン
バイト判定器21、2個のアラインバイト数判定器2
2,33、2個のアラインバイト数統合器23,34、
2個の最小アラインバイト生成器24,35、及びバッ
ファ転送バイト数レジスタ36を有する。
【0047】転送元アドレスレジスタ11は、転送元ア
ドレスアラインバイト判定器20に接続され、転送バイ
ト数レジスタ13は、アラインバイト数判定器22に接
続される。転送元アドレスアラインバイト判定器20と
アラインバイト数判定器22は、アラインバイト数統合
器23に接続され、アラインバイト数統器23は最小ア
ラインバイト生成器24に、最小アラインバイト生成器
24はバスサイクル発生器15とバッファ転送バイト数
レジスタ36に、それぞれ接続される。
【0048】バッファ転送バイト数レジスタ36はアラ
インバイト数判定器33に、アラインバイト数判定器3
3はアラインバイト数統合器34に、それぞれ接続さ
れ、アラインバイト数統合器34は最小アラインバイト
生成器35に、最小アラインバイト生成器35はバスサ
イクル発生器15に、それぞれ接続される。
【0049】転送元アドレスレジスタ11からバスサイ
クル発生器15までの動作は、アラインバイト数統合器
23の入力数が変わるだけで、第1の実施の形態と同じ
であり、バスサイクル発生器15は、最小アラインバイ
ト生成器24で示されるバイト数だけ転送元メモリ18
からの転送を行う。この第2の実施の形態において、転
送元メモリ18からの転送は、DMA制御装置30内部
のバッファ32に対して行われる。バッファ32への転
送数は、バッファ転送バイト数レジスタ36に格納さ
れ、バッファ転送バイト数レジスタ36の出力は、アラ
インバイト数判定器33に入力される。
【0050】転送先アドレスレジスタ12の転送先アド
レスは、転送先アドレスアラインバイト判定器21に入
力され、転送先アドレスアラインバイト判定器21の出
力とアラインバイト数判定器33の出力は、アラインバ
イト数統合器34によって統合される。アラインバイト
数統合器34の出力は、最小アラインバイト生成器35
に入力され、最小アラインバイト生成器35の出力であ
る転送バイト数が、バッファ32から転送先メモリ19
に転送される。
【0051】図8は、図7のDMA制御装置における転
送先へのデータライトの手順を示すフローチャートであ
る。図8に示すように、先ず、DMA転送の要求がある
か否かを判定し(ステップS201)、要求が無い(N
o)場合は判定を続ける。この判定を行うに際し、CP
Uの制御命令により、転送元アドレス、転送先アドレス
及び転送バイト数が、それぞれDMA制御装置30の各
該当レジスタに既に設定されている。
【0052】次に、DMA転送の要求がある(Yes)
場合は、CPUがDMA制御装置10に対しDMA転送
開始を指示し、DMA制御装置10において転送元アド
レスが取り出される(ステップS202)。この転送元
アドレスの取り出しに続いて、転送バイト数の取り出し
(ステップS203)が行われ、転送元アドレスと転送
バイト数から、転送サイズが計算される(ステップS2
04)。
【0053】次に、DMA制御装置30は、得られた転
送サイズに基づいて、転送元アドレスからバッファ32
へのデータリードを行い(ステップS205)、このデ
ータリードを行った転送サイズ数(将来、バッファの内
部にリードされるバイト数)を、バッファ転送バイト数
として登録する(ステップS206)。このように、転
送元アドレスと転送バイト数から計算した転送サイズ数
を転送バイト数として、転送元アドレスと共に計算を進
めて行く。バッファ転送バイト数の登録後、転送元アド
レスを更新し(ステップS207)、更に転送バイト数
を更新する(ステップS208)。
【0054】次に、登録されたバッファ転送バイト数
と、転送先アドレスレジスタ12から取り出した転送先
アドレスにより、第2転送サイズを計算する(ステップ
S209)。この第2転送サイズに基づいて、バッファ
23から転送先メモリ19へのデータライトを行う(ス
テップS210)。転送先メモリ19へのデータライト
後、転送先アドレスを更新し(ステップS211)、更
にバッファ転送バイト数を更新する(ステップS21
2)。
【0055】その後、バッファ転送バイト数が0か否か
が判定され(ステップS213)、転送バイト数が0で
ない(No)場合、ステップS209に戻って第2転送
サイズの計算が行われ、以後のステップを転送バイト数
が0になるまで繰り返す。転送バイト数が0である(Y
es)場合、転送バイト数が0か否かが判定され(ステ
ップS214)、転送バイト数が0でない(No)場
合、ステップS202に戻って転送元アドレスの取り出
しが行われ、以後のステップを転送バイト数が0になる
まで繰り返す。転送バイト数が0である(Yes)場
合、DMA制御装置30によるDMA転送が終了する。
【0056】このように、アラインバイト数の判定に伴
う処理を、転送元アドレスと転送バイト数、転送先アド
レスとバッファ転送バイト数、の2つに分割することに
よって、より大きなアラインバイト数での効率のよい転
送を実現することができる。
【0057】勿論、転送元アドレスレジスタ11を、転
送先アドレスアラインバイト数判定器21に接続し、転
送先アドレスレジスタ12を、転送元アドレスアライン
バイト数判定器20に接続した構成によっても、同様の
目的を達成することが可能である。この場合、最小アラ
インバイト生成器35の出力結果である転送バイト数で
の読み込みを複数回行い、最終的に、最小アラインバイ
ト生成器24により生成される転送バイト数のデータを
転送元メモリ18からバッファ32に格納し、その後、
最小アラインバイト生成器24で示された転送バイト数
のデータを、バッファ32から転送先メモリ19に対し
まとめて転送することも可能になる。このことにより、
より効率のよい転送を実現することができる。 [第3の実施の形態]図9は、本発明の第3の実施の形
態に係るDMA制御装置の概略構成を示すブロック図で
ある。図9に示すように、DMA制御装置40は、第2
の実施の形態に示した転送サイズ決定手段31に代えて
転送サイズ決定手段41を設けた他は、DMA制御装置
30と同様の構成を有する。
【0058】転送サイズ決定手段41は、転送サイズ決
定手段31に2つの最大転送サイズ設定レジスタ42,
43を加えて形成され、一方の最大転送サイズ設定レジ
スタ42はアラインバイト数統合器23に、他方の最大
転送サイズ設定レジスタ43はアラインバイト数統合器
34に、それぞれ接続される。
【0059】DMA転送により取り扱われるバスシステ
ムにおいて、転送元メモリ18及び転送先メモリ19の
構成によっては、無限大の転送サイズが実現できる訳で
はなく、転送元メモリ18及び転送先メモリ19それぞ
れに、連続転送できる転送サイズの限界がある。
【0060】この第3の実施の形態では、転送元読み取
り動作及び転送先書き込み動作のそれぞれに対し、最大
転送サイズの制約を設けることができる。それにより、
転送元メモリ18のアドレスアラインと転送バイト数か
ら計算した転送サイズが、最大転送サイズ設定レジスタ
42,43で指定されている転送サイズより大きい場
合、最大転送サイズ設定レジスタ42,43で指定され
ている値で、転送元読み取り動作及び転送先書き込み動
作を行うことができる。
【0061】このように、本発明に係るDMA制御装置
によれば、転送要求に伴う転送リクエスト信号aの入力
により、転送元アドレスレジスタ11で指定される転送
元メモリ18から、転送先アドレスレジスタ12で指定
される転送先メモリ19に対して、転送バイト数分のデ
ータを転送する。この転送は複数回に分けて行われる
が、この複数回数に分ける場合、転送サイズ決定手段1
4,31,41によって、1回の転送毎に転送サイズを
計算しその計算された転送サイズで、データ転送が行わ
れる。複数回数に分ける場合、各転送先メモリ、転送元
メモリそれぞれに対し、一括して読み出し/書き込みで
きるサイズの上限を越えない最大の転送サイズでの転送
を、常に行うことができる。
【0062】なお、近年、転送元アドレス及び転送先ア
ドレスは、DRAM等のバーストアクセスで高速なアク
セスができるメモリに保持されるのが標準的であるの
で、上述したDMA制御装置10,30,40による転
送方法により、転送バイト数の大きい転送をバーストア
クセスで行えば、転送回数が減らせるだけでなく1回の
転送にかかる転送時間の短縮もできる。
【0063】
【発明の効果】以上説明したように、本発明によれば、
最下位アドレスを偶数アドレスから転送するバスシステ
ムに接続されて、複数バイトバス幅を持つバス上で2バ
イト以上のバス幅を用いてデータを転送する際、1回の
データ転送毎に、転送元及び転送先のアドレス領域と転
送バイト数に基づきバス上の最適なデータ転送時バス幅
である転送バイトサイズが求められるので、DMA転送
により任意のバイト数のデータを転送する際に、データ
転送回数を少なくして転送時間を短縮することができ
る。
【0064】また、本発明に係るDMA制御装置によ
り、上述したDMA制御方法を実現することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係るDMA制御装
置の概略構成を示すブロック図である。
【図2】図1のアドレスアラインバイト判定器を示し、
(a)は前半パートの回路図、(b)は後半パートの回
路図である。
【図3】図1のアラインバイト数判定器を示し、(a)
は前半パートの回路図、(b)は後半パートの回路図で
ある。
【図4】図1のアラインバイト数統合器の回路図であ
る。
【図5】図1の最小アラインバイト生成器の回路図であ
る。
【図6】図1のDMA制御装置における転送先へのデー
タライトの手順を示すフローチャートである。
【図7】本発明の第2の実施の形態に係るDMA制御装
置の概略構成を示すブロック図である。
【図8】図7のDMA制御装置における転送先へのデー
タライトの手順を示すフローチャートである。
【図9】本発明の第3の実施の形態に係るDMA制御装
置の概略構成を示すブロック図である。
【図10】従来のDMA転送を行うためのDMA制御装
置の概略構成を示すブロック図である。
【符号の説明】
10,30,40 DMA制御装置 11 転送元アドレスレジスタ 12 転送先アドレスレジスタ 13 転送バイト数レジスタ 14,31,41 転送サイズ決定手段 15 バスサイクル発生器(BCU) 16 DMA転送制御器 17 バス 18 転送元メモリ 19 転送先メモリ 20 転送元アドレスアラインバイト判定器 21 転送先アドレスアラインバイト判定器 22,33 アラインバイト数判定器 23,34 アラインバイト数統合器 24,35 最小アラインバイト生成器 32 バッファ 36 バッファ転送バイト数レジスタ 42,43 最大転送サイズ設定レジスタ

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】複数バイトバス幅を持つバス上で2バイト
    以上のバス幅を用いてデータを転送する際、最下位アド
    レスを偶数アドレスから転送するバスシステムに接続さ
    れるDMA制御方法において、 データ転送毎に、転送元及び転送先のアドレス領域と転
    送バイト数に基づきバス上の最適なデータ転送時バス幅
    である転送バイトサイズを求めることを特徴とするDM
    A制御方法。
  2. 【請求項2】前記最適な転送バイトサイズは、転送元ア
    ドレス及び転送先アドレスに対する最大アドレスアライ
    メントの各バイト数、及び転送バイト数の内から最大ア
    ラインバイト数を計算して求められることを特徴とする
    請求項1に記載のDMA制御方法。
  3. 【請求項3】前記最適な転送バイトサイズは、 入力される転送元アドレス及び転送先アドレスに対し、
    入力されたアドレスが満たす最大アライン境界を見つけ
    コード化する第1の処理と、 入力された転送バイト数を越えない最大の2のn乗のバ
    イト数を計算しコード化する第2の処理と、 前記第1及び第2の処理によりコード化された情報を論
    理和しアライン情報を統合する第3の処理と、 前記第3の処理により統合されたアライン情報から最小
    アライン情報を取り出しバイト数にエンコードする第4
    の処理とを経て求められることを特徴とする請求項1に
    記載のDMA制御方法。
  4. 【請求項4】複数バイトバス幅を持つバス上で2バイト
    以上のバス幅を用いてデータを転送する際、最下位アド
    レスを偶数アドレスから転送するバスシステムに接続さ
    れるDMA制御装置において、 データ転送毎に、転送元及び転送先のアドレス領域と転
    送バイト数に基づきバス上の最適なデータ転送時バス幅
    である転送バイトサイズを求める転送サイズ決定手段を
    有することを特徴とするDMA制御装置。
  5. 【請求項5】前記転送サイズ決定手段に対し転送元アド
    レス情報を出力する転送元アドレスレジスタと、 前記転送サイズ決定手段に対し転送先アドレス情報を出
    力する転送先アドレスレジスタと、 前記転送サイズ決定手段に対し転送バイト数情報を出力
    する転送バイト数レジスタと、 前記転送サイズ決定手段からの出力情報に基づきメモリ
    アクセスを発生させるバスサイクル発生手段と、 転送要求に基づく転送リクエスト信号の入力によりDM
    A転送の実行を指示するDMA転送制御手段とを有する
    ことを特徴とする請求項4に記載のDMA制御装置。
  6. 【請求項6】前記転送サイズ決定手段は、転送元アドレ
    ス及び転送先アドレスに対する最大アドレスアライメン
    トの各バイト数、及び転送バイト数の内から最大アライ
    ンバイト数を計算して、前記最適な転送バイトサイズを
    求めることを特徴とする請求項4または5に記載のDM
    A制御装置。
  7. 【請求項7】前記転送サイズ決定手段は、転送先アドレ
    スで指示されるメモリに対するバッファからの転送バイ
    ト数を、転送先アドレスとバッファへの転送済みバイト
    数から計算し求めることを特徴とする請求項4〜6のい
    ずれかに記載のDMA制御装置。
  8. 【請求項8】前記転送サイズ決定手段は、 入力した転送元アドレスが満たす最大アライン境界を見
    つけ出し、重み付けしたビット位置コードに置き換える
    転送元アドレスアラインバイト判定手段と、 入力した転送先アドレスが満たす最大アライン境界を見
    つけ出し、重み付けしたビット位置コードに置き換える
    転送先アドレスアラインバイト判定手段と、 入力された転送バイト数を越えない最大の2のn乗のバ
    イト数を計算し、重み付けしたビット位置コードに置き
    換えるアラインバイト数判定手段と、 前記転送元アドレスアラインバイト判定手段、前記転送
    先アドレスアラインバイト判定手段、及び前記アライン
    バイト数判定手段からの各出力情報を論理和し、アライ
    ン情報を統合するアラインバイト数統合手段と、 前記アラインバイト数統合手段により統合されたアライ
    ン情報から最小アライン情報を取り出し、バイト数にエ
    ンコードする最小アラインバイト生成手段とを有するこ
    とを特徴とする請求項4または5に記載のDMA制御装
    置。
  9. 【請求項9】前記アラインバイト数統合手段、前記アラ
    インバイト数判定手段、及び前記最小アラインバイト生
    成手段がそれぞれ2個ずつ搭載され、 転送バイト数が入力する第1アラインバイト数判定手
    段、及び前記転送元アドレスアラインバイト判定手段か
    らの各出力情報を論理和する第1アラインバイト数統合
    手段と、 前記第1アラインバイト数統合手段により統合されたア
    ライン情報から最小アライン情報を取り出す第1最小ア
    ラインバイト生成手段と、 前記第1最小アラインバイト生成手段からの出力情報に
    基づくバッファ転送バイト数の転送先アドレスが入力す
    る第2アラインバイト数判定手段と、 前記第2アラインバイト数判定手段、及び前記転送先ア
    ドレスアラインバイト判定手段からの各出力情報を論理
    和する第2アラインバイト数統合手段と、 前記第2アラインバイト数統合手段により統合されたア
    ライン情報から最小アライン情報を取り出す第2最小ア
    ラインバイト生成手段とを有することを特徴とする請求
    項8に記載のDMA制御装置。
  10. 【請求項10】前記第1アラインバイト数統合手段に最
    大転送バイト数を設定する第1最大転送バイト数設定手
    段と、 前記第2アラインバイト数統合手段に最大転送バイト数
    を設定する第2最大転送バイト数設定手段とを有するこ
    とを特徴とする請求項9に記載のDMA制御装置。
JP30656298A 1998-10-28 1998-10-28 Dma制御方法及び装置 Expired - Fee Related JP3206568B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP30656298A JP3206568B2 (ja) 1998-10-28 1998-10-28 Dma制御方法及び装置
EP99121507A EP0997822A3 (en) 1998-10-28 1999-10-28 DMA control method and apparatus
CN 99122084 CN1252566A (zh) 1998-10-28 1999-10-28 直接存储器存取控制方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30656298A JP3206568B2 (ja) 1998-10-28 1998-10-28 Dma制御方法及び装置

Publications (2)

Publication Number Publication Date
JP2000132497A true JP2000132497A (ja) 2000-05-12
JP3206568B2 JP3206568B2 (ja) 2001-09-10

Family

ID=17958557

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30656298A Expired - Fee Related JP3206568B2 (ja) 1998-10-28 1998-10-28 Dma制御方法及び装置

Country Status (3)

Country Link
EP (1) EP0997822A3 (ja)
JP (1) JP3206568B2 (ja)
CN (1) CN1252566A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009037798A1 (ja) * 2007-09-21 2009-03-26 Mitsubishi Electric Corporation データ転送装置及びデータ転送方法
JP2010170164A (ja) * 2009-01-20 2010-08-05 Nec Engineering Ltd Dma転送制御装置
US7925804B2 (en) 2008-06-17 2011-04-12 Renesas Electronics Corporation FIFO device and method of storing data in FIFO buffer
JP2012194828A (ja) * 2011-03-17 2012-10-11 Pfu Ltd Dma装置、情報処理装置、及びデータ転送方法
JP5955489B1 (ja) * 2015-11-26 2016-07-20 三菱電機株式会社 データ転送装置、データ転送方法及びデータ転送プログラム

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4204759B2 (ja) * 2001-03-09 2009-01-07 インターナショナル・ビジネス・マシーンズ・コーポレーション Dma転送制御方法及び制御装置
JP2003281074A (ja) 2002-03-19 2003-10-03 Fujitsu Ltd ダイレクトメモリアクセス装置
DE10213839B4 (de) * 2002-03-27 2016-11-03 Advanced Micro Devices, Inc. DMA-Mechanismus für einen Hochgeschwindigkeitspaketbus
US7120708B2 (en) * 2003-06-30 2006-10-10 Intel Corporation Readdressable virtual DMA control and status registers
JP4563829B2 (ja) * 2005-01-27 2010-10-13 富士通株式会社 ダイレクトメモリアクセス制御方法、ダイレクトメモリアクセス制御装置、情報処理システム、プログラム
CN100395742C (zh) * 2005-04-14 2008-06-18 光宝科技股份有限公司 可快速地于不同储存装置间传输数据的计算机***
CN100470525C (zh) * 2007-03-07 2009-03-18 威盛电子股份有限公司 直接存储器访问控制装置及控制其传输的方法
TWI346873B (en) * 2007-03-27 2011-08-11 Ind Tech Res Inst A direct memory access controller with dynamic data width adjustment, method thereof, and computer accessible storage media to store program thereof
CN101276315B (zh) * 2007-03-30 2011-06-22 财团法人工业技术研究院 动态调整传输数据宽度的直接存储器存取控制器与方法
GB0724439D0 (en) * 2007-12-14 2008-01-30 Icera Inc Data transfer
CN102541752B (zh) * 2011-12-26 2015-04-15 苏州国芯科技有限公司 嵌入式***可寻址空间的分区方法
JP2014167763A (ja) * 2013-02-28 2014-09-11 Canon Inc 電子機器及びその制御方法
CN111159075B (zh) * 2019-12-31 2021-11-05 成都海光微电子技术有限公司 数据传输方法和数据传输装置
KR102448331B1 (ko) * 2020-11-05 2022-09-27 김정민 애완동물용 그루밍 브러쉬
CN115237962A (zh) * 2022-09-20 2022-10-25 南京芯驰半导体科技有限公司 一种数据查找的方法及装置
CN117807001B (zh) * 2024-02-29 2024-05-24 山东云海国创云计算装备产业创新中心有限公司 一种基于dma/直接内存访问的任务处理方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU652371B2 (en) * 1990-06-29 1994-08-25 Fujitsu Limited Data transfer system

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009037798A1 (ja) * 2007-09-21 2009-03-26 Mitsubishi Electric Corporation データ転送装置及びデータ転送方法
US8073992B2 (en) 2007-09-21 2011-12-06 Mitsubishi Electric Corporation Data transfer device and data transfer method
US7925804B2 (en) 2008-06-17 2011-04-12 Renesas Electronics Corporation FIFO device and method of storing data in FIFO buffer
JP2010170164A (ja) * 2009-01-20 2010-08-05 Nec Engineering Ltd Dma転送制御装置
JP2012194828A (ja) * 2011-03-17 2012-10-11 Pfu Ltd Dma装置、情報処理装置、及びデータ転送方法
JP5955489B1 (ja) * 2015-11-26 2016-07-20 三菱電機株式会社 データ転送装置、データ転送方法及びデータ転送プログラム
WO2017090138A1 (ja) * 2015-11-26 2017-06-01 三菱電機株式会社 データ転送装置、データ転送方法及びデータ転送プログラム

Also Published As

Publication number Publication date
CN1252566A (zh) 2000-05-10
JP3206568B2 (ja) 2001-09-10
EP0997822A3 (en) 2001-10-24
EP0997822A2 (en) 2000-05-03

Similar Documents

Publication Publication Date Title
JP3206568B2 (ja) Dma制御方法及び装置
JPH08162970A (ja) 復号装置およびその方法
EP0470798B1 (en) Dictionary searching system
WO2021129445A1 (zh) 数据压缩方法及计算设备
WO2016109570A1 (en) Systems and devices for accessing a state machine
CN109727187B (zh) 用于调整多个感兴趣区域数据的存储位置的方法和装置
US6871274B2 (en) Instruction code conversion apparatus creating an instruction code including a second code converted from a first code
US11424761B2 (en) Multiple symbol decoder
US7668381B2 (en) Decoding apparatus and encoding apparatus with specific bit sequence deletion and insertion
JP3604548B2 (ja) アドレス一致検出装置、通信制御システム及びアドレス一致検出方法
JP2009070226A (ja) マッチング装置
EP0513829B1 (en) Fuzzy reasoning processor and method, and rule setting apparatus and method
JP3533339B2 (ja) 復号化装置および復号化方法、並びに、プログラム記録媒体
JP2842045B2 (ja) データ圧縮装置
JP3182497B2 (ja) 演算処理装置および命令変換装置
JP2002171525A (ja) ビットプレーン演算命令を備えたsimd型演算装置
JP2752220B2 (ja) 文字列処理装置
JP2671325B2 (ja) データ処理装置
JP3613466B2 (ja) データ演算処理装置及びデータ演算処理プログラム
US6820191B2 (en) Apparatus and method for executing an instruction with a register bit mask for transferring data between a plurality of registers and memory inside a processor
JP2007110602A (ja) 動きベクトル検出装置
JPH1040165A (ja) データ読み出し方法およびリードバッファ
JP2772124B2 (ja) 辞書検索方式
JP2985093B2 (ja) 演算制御装置
JPH0248927B2 (ja)

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees