JP3206568B2 - Dma制御方法及び装置 - Google Patents
Dma制御方法及び装置Info
- Publication number
- JP3206568B2 JP3206568B2 JP30656298A JP30656298A JP3206568B2 JP 3206568 B2 JP3206568 B2 JP 3206568B2 JP 30656298 A JP30656298 A JP 30656298A JP 30656298 A JP30656298 A JP 30656298A JP 3206568 B2 JP3206568 B2 JP 3206568B2
- Authority
- JP
- Japan
- Prior art keywords
- transfer
- byte
- aligned
- bytes
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling 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
【0001】
【発明の属する技術分野】本発明は、DMA転送を行う
DMA制御装置に関し、特に、転送サイズを自動的に変
更する機能を備えたDMA制御装置に関する。
DMA制御装置に関し、特に、転送サイズを自動的に変
更する機能を備えたDMA制御装置に関する。
【0002】
【従来の技術】従来、例えばメモリ同士のデータ転送を
両メモリ間で直接行うように、データ転送をCPUを経
由させず転送相手間で直接行うDMA(Direct
Memory Access)転送方法が知られてい
る。このようなDMA転送方法を用いることにより、C
PUを経由する場合に比べて高速にデータ転送を行うこ
とができる。
両メモリ間で直接行うように、データ転送を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
に対しメモリアクセスを発生させる。
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に
対し、転送バイト数分のデータが転送される。
に基づく転送リクエスト信号aが入力すると、転送元ア
ドレスレジスタ2で指定される転送元メモリ8から、転
送先アドレスレジスタ3で指定される転送先メモリ9に
対し、転送バイト数分のデータが転送される。
【0005】
【発明が解決しようとする課題】しかしながら、このデ
ータ転送は、複数バイトのバス幅を持つバスに対して何
バイト分のバス幅を使ってデータ転送するかを示す転送
サイズレジスタ5で定められた転送時バス幅サイズであ
る1回の転送バイト数で行われ、転送バイト数レジスタ
4に定められているバイト数を転送するには、(転送す
べき総バイト数/1回の転送バイト数)回のデータ転送
を必要とする。
ータ転送は、複数バイトのバス幅を持つバスに対して何
バイト分のバス幅を使ってデータ転送するかを示す転送
サイズレジスタ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バイトしかないためで
ある。
レジスタ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回のデータ転送が
必要となる。
送: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制御により行われるため、時間がか
かるのは避けられない。
て、例えば、特開平5−67035号公報に開示された
DMA転送におけるデータアライメント方式があるが、
この場合も、CPU制御により行われるため、時間がか
かるのは避けられない。
【0009】本発明の目的は、DMA転送により任意の
バイト数のデータを転送する際に、データ転送回数を少
なくして転送時間を短縮することができるDMA制御方
法及び装置を提供することである。
バイト数のデータを転送する際に、データ転送回数を少
なくして転送時間を短縮することができるDMA制御方
法及び装置を提供することである。
【0010】
【課題を解決するための手段】上記目的を達成するた
め、本発明に係るDMA制御方法は、複数バイトバス幅
を持つバス上で2バイト以上のバス幅を用いてデータを
転送する際、最下位アドレスを偶数アドレスから転送す
るバスシステムに接続されるDMA制御方法において、
データ転送毎に、入力される転送元アドレス及び転送先
アドレスに対し、入力されたアドレスが満たす最大アラ
イン境界を見つけコード化する第1の処理と、入力され
た転送バイト数を越えない最大の2のn乗のバイト数を
計算しコード化する第2の処理と、前記第1及び第2の
処理によりコード化された情報を論理和しアライン情報
を統合する第3の処理と、前記第3の処理により統合さ
れたアライン情報から最小アライン情報を取り出しバイ
ト数にエンコードする第4の処理とを経て、転送元及び
転送先のアドレス領域と転送バイト数に基づきバス上の
最適なデータ転送時バス幅である転送バイトサイズを求
めることを特徴としている。
め、本発明に係るDMA制御方法は、複数バイトバス幅
を持つバス上で2バイト以上のバス幅を用いてデータを
転送する際、最下位アドレスを偶数アドレスから転送す
るバスシステムに接続されるDMA制御方法において、
データ転送毎に、入力される転送元アドレス及び転送先
アドレスに対し、入力されたアドレスが満たす最大アラ
イン境界を見つけコード化する第1の処理と、入力され
た転送バイト数を越えない最大の2のn乗のバイト数を
計算しコード化する第2の処理と、前記第1及び第2の
処理によりコード化された情報を論理和しアライン情報
を統合する第3の処理と、前記第3の処理により統合さ
れたアライン情報から最小アライン情報を取り出しバイ
ト数にエンコードする第4の処理とを経て、転送元及び
転送先のアドレス領域と転送バイト数に基づきバス上の
最適なデータ転送時バス幅である転送バイトサイズを求
めることを特徴としている。
【0011】上記構成を有することにより、最下位アド
レスを偶数アドレスから転送するバスシステムに接続さ
れて、複数バイトバス幅を持つバス上で2バイト以上の
バス幅を用いてデータを転送する際、1回のデータ転送
毎に、入力される転送元アドレス及び転送先アドレスに
対し、入力されたアドレスが満たす最大アライン境界を
見つけコード化し、入力された転送バイト数を越えない
最大の2のn乗のバイト数を計算しコード化し、第1及
び第2の処理によりコード化された情報を論理和しアラ
イン情報を統合し、第3の処理により統合されたアライ
ン情報から最小アライン情報を取り出しバイト数にエン
コードして、転送元及び転送先のアドレス領域と転送バ
イト数に基づきバス上の最適なデータ転送時バス幅であ
る転送バイトサイズが求められる。これにより、DMA
転送により任意のバイト数のデータを転送する際に、デ
ータ転送回数を少なくして転送時間を短縮することがで
きる。
レスを偶数アドレスから転送するバスシステムに接続さ
れて、複数バイトバス幅を持つバス上で2バイト以上の
バス幅を用いてデータを転送する際、1回のデータ転送
毎に、入力される転送元アドレス及び転送先アドレスに
対し、入力されたアドレスが満たす最大アライン境界を
見つけコード化し、入力された転送バイト数を越えない
最大の2のn乗のバイト数を計算しコード化し、第1及
び第2の処理によりコード化された情報を論理和しアラ
イン情報を統合し、第3の処理により統合されたアライ
ン情報から最小アライン情報を取り出しバイト数にエン
コードして、転送元及び転送先のアドレス領域と転送バ
イト数に基づきバス上の最適なデータ転送時バス幅であ
る転送バイトサイズが求められる。これにより、DMA
転送により任意のバイト数のデータを転送する際に、デ
ータ転送回数を少なくして転送時間を短縮することがで
きる。
【0012】また、本発明に係るDMA制御装置によ
り、上述した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に接続され
る。
て図面を参照して説明する。 [第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転
送の実行を指示する。
置10によるDMA転送に際し、1回のデータ転送によ
り転送される転送バイトサイズを、1回転送する毎に計
算し評価決定する。バスサイクル発生器15は、転送元
アドレスレジスタ11で指示される転送元メモリ18及
び転送先アドレスレジスタ12で指示される転送先メモ
リ19に対して、メモリアクセスを発生させる。DMA
転送制御器16は、転送要求に基づく転送リクエスト信
号aの入力により、DMA制御装置10によるDMA転
送の実行を指示する。
【0015】転送サイズ決定手段14は、転送元アドレ
スアラインバイト判定器20、転送先アドレスアライン
バイト判定器21、アラインバイト数判定器22、アラ
インバイト数統合器23、及び最小アラインバイト生成
器24を有する。
スアラインバイト判定器20、転送先アドレスアライン
バイト判定器21、アラインバイト数判定器22、アラ
インバイト数統合器23、及び最小アラインバイト生成
器24を有する。
【0016】転送元アドレスレジスタ11は、転送元ア
ドレスアラインバイト判定器20に接続され、転送先ア
ドレスレジスタ12は、転送先アドレスアラインバイト
判定器21に接続される。転送バイト数レジスタ13
は、アラインバイト数判定器22に接続される。
ドレスアラインバイト判定器20に接続され、転送先ア
ドレスレジスタ12は、転送先アドレスアラインバイト
判定器21に接続される。転送バイト数レジスタ13
は、アラインバイト数判定器22に接続される。
【0017】図2は、図1の転送元/転送先アドレスア
ラインバイト判定器20,21を示し、(a)は前半パ
ートの回路図、(b)は後半パートの回路図である。図
2に示すように、転送元アドレスアラインバイト判定器
20及び転送先アドレスアラインバイト判定器21は、
同一の構成を有し、前半と後半の2つのパートに分かれ
ている。このアドレスアラインバイト判定器20,21
により、入力されたアドレスが満たす最大アライン境界
を見つけ出す。
ラインバイト判定器20,21を示し、(a)は前半パ
ートの回路図、(b)は後半パートの回路図である。図
2に示すように、転送元アドレスアラインバイト判定器
20及び転送先アドレスアラインバイト判定器21は、
同一の構成を有し、前半と後半の2つのパートに分かれ
ている。このアドレスアラインバイト判定器20,21
により、入力されたアドレスが満たす最大アライン境界
を見つけ出す。
【0018】前半パート((a)参照)は、入力された
アドレスが何バイト境界にアラインされているアドレス
かを、デコードする回路である。ここでは、LSB(l
east significant bit:ビット並
びの最下位)から最初に1が見つかる位置を判断するリ
ードワンディテクタ(lead−one−detect
or)を構成している。
アドレスが何バイト境界にアラインされているアドレス
かを、デコードする回路である。ここでは、LSB(l
east significant bit:ビット並
びの最下位)から最初に1が見つかる位置を判断するリ
ードワンディテクタ(lead−one−detect
or)を構成している。
【0019】後半パート((b)参照)は、アラインさ
れたnバイト境界を、重み付けしたビット位置で表した
コード、例えば図2(b)に示す10進数を2進数にし
た値に置き換える回路であり、転送元アドレスのアライ
ンメント情報であるアドレスアラインバイト数、TAd
rBND[7:0]或いはDAdrBND[7:0]を
出力する。
れた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バイト以上、それぞれ転送することができ
る。
送するバイト数(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乗のバイト数を計算する。
2を示し、(a)は前半パートの回路図、(b)は後半
パートの回路図である。図3に示すように、アラインバ
イト数判定器22は、前半と後半の2つのパートに分か
れており、入力されたバイト数を越えない、最大の2の
n乗のバイト数を計算する。
【0022】前半パート((a)参照)は、入力された
バイト数が、どのような2のn乗の値を含んでいるかを
判断する回路である。ここでは、MSB(most s
ignificant bit:ビット並びの最上位)
から最初に1が見つかる位置を判断するリードワンディ
テクタ(lead−one−detector)を構成
している。
バイト数が、どのような2のn乗の値を含んでいるかを
判断する回路である。ここでは、MSB(most s
ignificant bit:ビット並びの最上位)
から最初に1が見つかる位置を判断するリードワンディ
テクタ(lead−one−detector)を構成
している。
【0023】後半パート((b)参照)は、この2のn
乗の値を、重み付けしたビット位置で表したコードに置
き換える回路であり、転送バイト数を満たす最大アライ
ンバイト数、restBytE[7:0]を出力する。
乗の値を、重み付けしたビット位置で表したコードに置
き換える回路であり、転送バイト数を満たす最大アライ
ンバイト数、restBytE[7:0]を出力する。
【0024】図4は、図1のアラインバイト数統合器2
3の回路図である。図4に示すように、アラインバイト
数統合器23は、OR回路からなり、ここでは、両アド
レスアラインバイト判定器20,21及びアラインバイ
ト数判定器22から入力した各重み付けコードを論理和
(OR動作)して、アライン情報を一つにまとめる。
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によってコード化さ
れた情報である。
インバイト数であるTAdrBND[7]とDAdrB
ND[7]、及び転送バイト数を満たす最大アラインバ
イト数であるrestBytE[7]の入力により、統
合アライン情報であるAccsiz[7]が出力され
る。同様に、統合アライン情報、Accsiz[6],
…,Accsiz[0]が出力される。なお、各重み付
けコードは、両アドレスアラインバイト判定器20,2
1及びアラインバイト数判定器22によってコード化さ
れた情報である。
【0026】図5は、図1の最小アラインバイト生成器
の回路図である。図5に示すように、最小アラインバイ
ト生成器24は、前半と後半の2つのパートに分かれて
おり、アラインバイト数統合器23からのアラインバイ
ト数統合情報の入力により最小のアラインバイトを生成
する。この結果、転送バイトサイズが決定される。
の回路図である。図5に示すように、最小アラインバイ
ト生成器24は、前半と後半の2つのパートに分かれて
おり、アラインバイト数統合器23からのアラインバイ
ト数統合情報の入力により最小のアラインバイトを生成
する。この結果、転送バイトサイズが決定される。
【0027】前半パートは、入力したアライン情報のL
SBから最初に1が現れる場所を見つけ出すことによ
り、最小のアライン情報を取り出す回路である。後半パ
ートは、この最小のアライン情報を、重み付けしたビッ
ト位置で表したコードに置き換える回路であり、バイト
数にエンコードし転送サイズとして出力する。
SBから最初に1が現れる場所を見つけ出すことによ
り、最小のアライン情報を取り出す回路である。後半パ
ートは、この最小のアライン情報を、重み付けしたビッ
ト位置で表したコードに置き換える回路であり、バイト
数にエンコードし転送サイズとして出力する。
【0028】従って、転送サイズ決定手段14により、
入力される転送元アドレス及び転送先アドレスに対し、
入力されたアドレスが満たす最大アライン境界を見つけ
コード化する第1の処理、入力された転送バイト数を越
えない最大の2のn乗のバイト数を計算しコード化する
第2の処理、前記第1及び第2の処理によりコード化さ
れた情報を論理和しアライン情報を統合する第3の処
理、前記第3の処理により統合されたアライン情報から
最小アライン情報を取り出しバイト数にエンコードする
第4の処理を経て、最適な転送バイトサイズが求められ
る。
入力される転送元アドレス及び転送先アドレスに対し、
入力されたアドレスが満たす最大アライン境界を見つけ
コード化する第1の処理、入力された転送バイト数を越
えない最大の2のn乗のバイト数を計算しコード化する
第2の処理、前記第1及び第2の処理によりコード化さ
れた情報を論理和しアライン情報を統合する第3の処
理、前記第3の処理により統合されたアライン情報から
最小アライン情報を取り出しバイト数にエンコードする
第4の処理を経て、最適な転送バイトサイズが求められ
る。
【0029】この最小アラインバイト生成器24からの
出力がバスサイクル発生器15に入力することにより、
バスサイクル発生器15は、入力した転送バイトサイズ
に基づくバイト数に従い、転送元からのデータリード及
び転送先へのデータライトを行う。
出力がバスサイクル発生器15に入力することにより、
バスサイクル発生器15は、入力した転送バイトサイズ
に基づくバイト数に従い、転送元からのデータリード及
び転送先へのデータライトを行う。
【0030】図6は、図1のDMA制御装置における転
送先へのデータライトの手順を示すフローチャートであ
る。図6に示すように、先ず、DMA転送の要求がある
か否かを判定し(ステップS101)、要求が無い(N
o)場合は判定を続ける。この判定を行うに際し、CP
Uの制御命令により、転送元アドレス、転送先アドレス
及び転送バイト数が、それぞれDMA制御装置10の各
該当レジスタに既に設定されている。
送先へのデータライトの手順を示すフローチャートであ
る。図6に示すように、先ず、DMA転送の要求がある
か否かを判定し(ステップS101)、要求が無い(N
o)場合は判定を続ける。この判定を行うに際し、CP
Uの制御命令により、転送元アドレス、転送先アドレス
及び転送バイト数が、それぞれDMA制御装置10の各
該当レジスタに既に設定されている。
【0031】次に、DMA転送の要求がある(Yes)
場合は、CPUがDMA制御装置10に対しDMA転送
開始を指示し、DMA制御装置10において転送元アド
レスが取り出される(ステップS102)。この転送元
アドレスの取り出しに続いて、転送バイト数が取り出さ
れ(ステップS103)、更に転送先アドレスが取り出
され(ステップS104)、これら転送元アドレス、転
送バイト数及び転送先アドレスから、転送サイズが計算
される(ステップS105)。
場合は、CPUがDMA制御装置10に対しDMA転送
開始を指示し、DMA制御装置10において転送元アド
レスが取り出される(ステップS102)。この転送元
アドレスの取り出しに続いて、転送バイト数が取り出さ
れ(ステップS103)、更に転送先アドレスが取り出
され(ステップS104)、これら転送元アドレス、転
送バイト数及び転送先アドレスから、転送サイズが計算
される(ステップS105)。
【0032】次に、DMA制御装置10は、得られた転
送サイズに基づいて、転送元アドレスから転送サイズ分
だけデータを読み取り、読み取った転送サイズ分だけ転
送先アドレスへデータを書き込む(ステップS10
6)。
送サイズに基づいて、転送元アドレスから転送サイズ分
だけデータを読み取り、読み取った転送サイズ分だけ転
送先アドレスへデータを書き込む(ステップS10
6)。
【0033】この転送サイズ分のデータの読み取り・書
き込みが行われることにより、転送元アドレスの更新
(ステップS107)、転送先アドレスの更新(ステッ
プS108)、及び転送バイト数の更新(ステップS1
09)が行われる。
き込みが行われることにより、転送元アドレスの更新
(ステップS107)、転送先アドレスの更新(ステッ
プS108)、及び転送バイト数の更新(ステップS1
09)が行われる。
【0034】その後、転送バイト数が0か否かが判定さ
れ(ステップS110)、転送バイト数が0でない(N
o)場合、ステップS102に戻って転送元アドレスの
取り出しが行われ、以後のステップを転送バイト数が0
になるまで繰り返す。転送バイト数が0である(Ye
s)場合、DMA制御装置10によるDMA転送が終了
する。
れ(ステップS110)、転送バイト数が0でない(N
o)場合、ステップS102に戻って転送元アドレスの
取り出しが行われ、以後のステップを転送バイト数が0
になるまで繰り返す。転送バイト数が0である(Ye
s)場合、DMA制御装置10によるDMA転送が終了
する。
【0035】この結果、DMA制御装置10へ転送リク
エスト信号aが入力することにより、転送元アドレスレ
ジスタ11で指定される転送元メモリ18から、転送先
アドレスレジスタ12で指定される転送先メモリ19に
対して、転送バイト数分のデータが転送される。
エスト信号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バイト の内、両方とも満たす、下から数えて最初に該当する最
も大きいバイト数のアドレスを求める。つまり、論理和
を取る。
合、64バイト 転送元アドレスが32バイトアラインアドレスである場
合、32バイト 転送元アドレスが16バイトアラインアドレスである場
合、16バイト 転送元アドレスが8バイトアラインアドレスである場
合、8バイト 転送元アドレスが4バイトアラインアドレスである場
合、4バイト 転送元アドレスが2バイトアラインアドレスである場
合、2バイト 転送元アドレスが1バイトアラインアドレスである場
合、1バイト の内、両方とも満たす、下から数えて最初に該当する最
も大きいバイト数のアドレスを求める。つまり、論理和
を取る。
【0039】この結果、例えば、転送元アドレスAが0
000000Fであって、転送サイズSが257バイト
であった場合、複数回行われるデータ転送の各回毎の転
送バイト数は、次のようになる。
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バイトを転送することができ
たが、アドレスがバイトアラインの何処に位置している
かにより、一度に転送できるバイト数が決まる。
ト、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回の転送毎
に何バイト転送できるかを計算して求めた最大値による
最大転送バイト数とすることができる。
元及び転送先アドレス領域と転送バイト数に基づいてバ
ス上の最適なデータ転送時バス幅である転送バイトサイ
ズを導き出し、転送サイズを自動的に更新する。従っ
て、複数バイトバス幅を持つバス上で2バイト以上のバ
ス幅を用いてデータを転送する際、最下位アドレスを偶
数アドレスから転送するバスシステムに接続され、バイ
トアラインの何処にアドレスが位置するかによって、1
回に転送できるバイト数が決まるが、従来は固定されて
いた転送バイト数(例えば1バイト)を、1回の転送毎
に何バイト転送できるかを計算して求めた最大値による
最大転送バイト数とすることができる。
【0042】即ち、転送元アドレス及び転送先アドレス
に対する最大アドレスアライメントの各バイト数、及び
転送バイト数の内から最大アラインバイト数を計算し
て、最適な転送バイトサイズが求められる。
に対する最大アドレスアライメントの各バイト数、及び
転送バイト数の内から最大アラインバイト数を計算し
て、最適な転送バイトサイズが求められる。
【0043】この結果、決められた任意の転送バイト数
を転送する際に、転送元アドレスで示される転送元メモ
リ及び転送先アドレスで示される転送先メモリに対し、
転送のためのアクセスの回数を従来に比べ減らすことが
できるので、データ転送回数を少なくして転送時間を短
縮することができる。 [第2の実施の形態]図7は、本発明の第2の実施の形
態に係るDMA制御装置の概略構成を示すブロック図で
ある。図7に示すように、DMA制御装置30は、転送
サイズ決定手段14において1つずつ設けられていた、
アラインバイト数判定器22、アラインバイト数統合器
23及び最小アラインバイト生成器24を、それぞれ2
つずつ搭載した転送サイズ決定手段31、及びバッファ
32を設けた他は、DMA制御装置10と同様の構成を
有する。
を転送する際に、転送元アドレスで示される転送元メモ
リ及び転送先アドレスで示される転送先メモリに対し、
転送のためのアクセスの回数を従来に比べ減らすことが
できるので、データ転送回数を少なくして転送時間を短
縮することができる。 [第2の実施の形態]図7は、本発明の第2の実施の形
態に係るDMA制御装置の概略構成を示すブロック図で
ある。図7に示すように、DMA制御装置30は、転送
サイズ決定手段14において1つずつ設けられていた、
アラインバイト数判定器22、アラインバイト数統合器
23及び最小アラインバイト生成器24を、それぞれ2
つずつ搭載した転送サイズ決定手段31、及びバッファ
32を設けた他は、DMA制御装置10と同様の構成を
有する。
【0044】上述した第1の実施の形態では、転送元ア
ドレスと転送バイト数と転送先アドレスのアドレスアラ
インが一致している組み合わせのバイト数で、転送を行
った。しかしながら、第1の実施の形態においては、転
送元アドレスのアドレスアラインと転送先アドレスのア
ドレスアラインが全くずれている場合、1バイト毎の転
送しかできず、転送元アドレスと転送バイト数とのアド
レスアラインが一致している条件に比べ、より制約の厳
しい条件になる。
ドレスと転送バイト数と転送先アドレスのアドレスアラ
インが一致している組み合わせのバイト数で、転送を行
った。しかしながら、第1の実施の形態においては、転
送元アドレスのアドレスアラインと転送先アドレスのア
ドレスアラインが全くずれている場合、1バイト毎の転
送しかできず、転送元アドレスと転送バイト数とのアド
レスアラインが一致している条件に比べ、より制約の厳
しい条件になる。
【0045】そのため、この第2の実施の形態では、ア
ドレスアラインバイト判定器、アラインバイト数判定
器、アラインバイト数統合器、及び最小アラインバイト
生成器をそれぞれ2つずつ搭載することにより、上述し
た条件の制約を改善している。
ドレスアラインバイト判定器、アラインバイト数判定
器、アラインバイト数統合器、及び最小アラインバイト
生成器をそれぞれ2つずつ搭載することにより、上述し
た条件の制約を改善している。
【0046】転送サイズ決定手段31は、転送元アドレ
スアラインバイト判定器20、転送先アドレスアライン
バイト判定器21、2個のアラインバイト数判定器2
2,33、2個のアラインバイト数統合器23,34、
2個の最小アラインバイト生成器24,35、及びバッ
ファ転送バイト数レジスタ36を有する。
スアラインバイト判定器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に、それぞれ接続される。
ドレスアラインバイト判定器20に接続され、転送バイ
ト数レジスタ13は、アラインバイト数判定器22に接
続される。転送元アドレスアラインバイト判定器20と
アラインバイト数判定器22は、アラインバイト数統合
器23に接続され、アラインバイト数統器23は最小ア
ラインバイト生成器24に、最小アラインバイト生成器
24はバスサイクル発生器15とバッファ転送バイト数
レジスタ36に、それぞれ接続される。
【0048】バッファ転送バイト数レジスタ36はアラ
インバイト数判定器33に、アラインバイト数判定器3
3はアラインバイト数統合器34に、それぞれ接続さ
れ、アラインバイト数統合器34は最小アラインバイト
生成器35に、最小アラインバイト生成器35はバスサ
イクル発生器15に、それぞれ接続される。
インバイト数判定器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に入力される。
クル発生器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
に転送される。
レスは、転送先アドレスアラインバイト判定器21に入
力され、転送先アドレスアラインバイト判定器21の出
力とアラインバイト数判定器33の出力は、アラインバ
イト数統合器34によって統合される。アラインバイト
数統合器34の出力は、最小アラインバイト生成器35
に入力され、最小アラインバイト生成器35の出力であ
る転送バイト数が、バッファ32から転送先メモリ19
に転送される。
【0051】図8は、図7のDMA制御装置における転
送先へのデータライトの手順を示すフローチャートであ
る。図8に示すように、先ず、DMA転送の要求がある
か否かを判定し(ステップS201)、要求が無い(N
o)場合は判定を続ける。この判定を行うに際し、CP
Uの制御命令により、転送元アドレス、転送先アドレス
及び転送バイト数が、それぞれDMA制御装置30の各
該当レジスタに既に設定されている。
送先へのデータライトの手順を示すフローチャートであ
る。図8に示すように、先ず、DMA転送の要求がある
か否かを判定し(ステップS201)、要求が無い(N
o)場合は判定を続ける。この判定を行うに際し、CP
Uの制御命令により、転送元アドレス、転送先アドレス
及び転送バイト数が、それぞれDMA制御装置30の各
該当レジスタに既に設定されている。
【0052】次に、DMA転送の要求がある(Yes)
場合は、CPUがDMA制御装置10に対しDMA転送
開始を指示し、DMA制御装置10において転送元アド
レスが取り出される(ステップS202)。この転送元
アドレスの取り出しに続いて、転送バイト数の取り出し
(ステップS203)が行われ、転送元アドレスと転送
バイト数から、転送サイズが計算される(ステップS2
04)。
場合は、CPUがDMA制御装置10に対しDMA転送
開始を指示し、DMA制御装置10において転送元アド
レスが取り出される(ステップS202)。この転送元
アドレスの取り出しに続いて、転送バイト数の取り出し
(ステップS203)が行われ、転送元アドレスと転送
バイト数から、転送サイズが計算される(ステップS2
04)。
【0053】次に、DMA制御装置30は、得られた転
送サイズに基づいて、転送元アドレスからバッファ32
へのデータリードを行い(ステップS205)、このデ
ータリードを行った転送サイズ数(将来、バッファの内
部にリードされるバイト数)を、バッファ転送バイト数
として登録する(ステップS206)。このように、転
送元アドレスと転送バイト数から計算した転送サイズ数
を転送バイト数として、転送元アドレスと共に計算を進
めて行く。バッファ転送バイト数の登録後、転送元アド
レスを更新し(ステップS207)、更に転送バイト数
を更新する(ステップS208)。
送サイズに基づいて、転送元アドレスからバッファ32
へのデータリードを行い(ステップS205)、このデ
ータリードを行った転送サイズ数(将来、バッファの内
部にリードされるバイト数)を、バッファ転送バイト数
として登録する(ステップS206)。このように、転
送元アドレスと転送バイト数から計算した転送サイズ数
を転送バイト数として、転送元アドレスと共に計算を進
めて行く。バッファ転送バイト数の登録後、転送元アド
レスを更新し(ステップS207)、更に転送バイト数
を更新する(ステップS208)。
【0054】次に、登録されたバッファ転送バイト数
と、転送先アドレスレジスタ12から取り出した転送先
アドレスにより、第2転送サイズを計算する(ステップ
S209)。この第2転送サイズに基づいて、バッファ
23から転送先メモリ19へのデータライトを行う(ス
テップS210)。転送先メモリ19へのデータライト
後、転送先アドレスを更新し(ステップS211)、更
にバッファ転送バイト数を更新する(ステップS21
2)。
と、転送先アドレスレジスタ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転送が終了する。
が判定され(ステップS213)、転送バイト数が0で
ない(No)場合、ステップS209に戻って第2転送
サイズの計算が行われ、以後のステップを転送バイト数
が0になるまで繰り返す。転送バイト数が0である(Y
es)場合、転送バイト数が0か否かが判定され(ステ
ップS214)、転送バイト数が0でない(No)場
合、ステップS202に戻って転送元アドレスの取り出
しが行われ、以後のステップを転送バイト数が0になる
まで繰り返す。転送バイト数が0である(Yes)場
合、DMA制御装置30によるDMA転送が終了する。
【0056】このように、アラインバイト数の判定に伴
う処理を、転送元アドレスと転送バイト数、転送先アド
レスとバッファ転送バイト数、の2つに分割することに
よって、より大きなアラインバイト数での効率のよい転
送を実現することができる。
う処理を、転送元アドレスと転送バイト数、転送先アド
レスとバッファ転送バイト数、の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と同様の構成を有する。
送先アドレスアラインバイト数判定器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に、それぞれ接続される。
定手段31に2つの最大転送サイズ設定レジスタ42,
43を加えて形成され、一方の最大転送サイズ設定レジ
スタ42はアラインバイト数統合器23に、他方の最大
転送サイズ設定レジスタ43はアラインバイト数統合器
34に、それぞれ接続される。
【0059】DMA転送により取り扱われるバスシステ
ムにおいて、転送元メモリ18及び転送先メモリ19の
構成によっては、無限大の転送サイズが実現できる訳で
はなく、転送元メモリ18及び転送先メモリ19それぞ
れに、連続転送できる転送サイズの限界がある。
ムにおいて、転送元メモリ18及び転送先メモリ19の
構成によっては、無限大の転送サイズが実現できる訳で
はなく、転送元メモリ18及び転送先メモリ19それぞ
れに、連続転送できる転送サイズの限界がある。
【0060】この第3の実施の形態では、転送元読み取
り動作及び転送先書き込み動作のそれぞれに対し、最大
転送サイズの制約を設けることができる。それにより、
転送元メモリ18のアドレスアラインと転送バイト数か
ら計算した転送サイズが、最大転送サイズ設定レジスタ
42,43で指定されている転送サイズより大きい場
合、最大転送サイズ設定レジスタ42,43で指定され
ている値で、転送元読み取り動作及び転送先書き込み動
作を行うことができる。
り動作及び転送先書き込み動作のそれぞれに対し、最大
転送サイズの制約を設けることができる。それにより、
転送元メモリ18のアドレスアラインと転送バイト数か
ら計算した転送サイズが、最大転送サイズ設定レジスタ
42,43で指定されている転送サイズより大きい場
合、最大転送サイズ設定レジスタ42,43で指定され
ている値で、転送元読み取り動作及び転送先書き込み動
作を行うことができる。
【0061】このように、本発明に係るDMA制御装置
によれば、転送要求に伴う転送リクエスト信号aの入力
により、転送元アドレスレジスタ11で指定される転送
元メモリ18から、転送先アドレスレジスタ12で指定
される転送先メモリ19に対して、転送バイト数分のデ
ータを転送する。この転送は複数回に分けて行われる
が、この複数回数に分ける場合、転送サイズ決定手段1
4,31,41によって、1回の転送毎に転送サイズを
計算しその計算された転送サイズで、データ転送が行わ
れる。複数回数に分ける場合、各転送先メモリ、転送元
メモリそれぞれに対し、一括して読み出し/書き込みで
きるサイズの上限を越えない最大の転送サイズでの転送
を、常に行うことができる。
によれば、転送要求に伴う転送リクエスト信号aの入力
により、転送元アドレスレジスタ11で指定される転送
元メモリ18から、転送先アドレスレジスタ12で指定
される転送先メモリ19に対して、転送バイト数分のデ
ータを転送する。この転送は複数回に分けて行われる
が、この複数回数に分ける場合、転送サイズ決定手段1
4,31,41によって、1回の転送毎に転送サイズを
計算しその計算された転送サイズで、データ転送が行わ
れる。複数回数に分ける場合、各転送先メモリ、転送元
メモリそれぞれに対し、一括して読み出し/書き込みで
きるサイズの上限を越えない最大の転送サイズでの転送
を、常に行うことができる。
【0062】なお、近年、転送元アドレス及び転送先ア
ドレスは、DRAM等のバーストアクセスで高速なアク
セスができるメモリに保持されるのが標準的であるの
で、上述したDMA制御装置10,30,40による転
送方法により、転送バイト数の大きい転送をバーストア
クセスで行えば、転送回数が減らせるだけでなく1回の
転送にかかる転送時間の短縮もできる。
ドレスは、DRAM等のバーストアクセスで高速なアク
セスができるメモリに保持されるのが標準的であるの
で、上述したDMA制御装置10,30,40による転
送方法により、転送バイト数の大きい転送をバーストア
クセスで行えば、転送回数が減らせるだけでなく1回の
転送にかかる転送時間の短縮もできる。
【0063】
【発明の効果】以上説明したように、本発明によれば、
最下位アドレスを偶数アドレスから転送するバスシステ
ムに接続されて、複数バイトバス幅を持つバス上で2バ
イト以上のバス幅を用いてデータを転送する際、1回の
データ転送毎に、入力される転送元アドレス及び転送先
アドレスに対し、入力されたアドレスが満たす最大アラ
イン境界を見つけコード化し、入力された転送バイト数
を越えない最大の2のn乗のバイト数を計算しコード化
し、第1及び第2の処理によりコード化された情報を論
理和しアライン情報を統合し、第3の処理により統合さ
れたアライン情報から最小アライン情報を取り出しバイ
ト数にエンコードして、転送元及び転送先のアドレス領
域と転送バイト数に基づきバス上の最適なデータ転送時
バス幅である転送バイトサイズが求められるので、DM
A転送により任意のバイト数のデータを転送する際に、
データ転送回数を少なくして転送時間を短縮することが
できる。
最下位アドレスを偶数アドレスから転送するバスシステ
ムに接続されて、複数バイトバス幅を持つバス上で2バ
イト以上のバス幅を用いてデータを転送する際、1回の
データ転送毎に、入力される転送元アドレス及び転送先
アドレスに対し、入力されたアドレスが満たす最大アラ
イン境界を見つけコード化し、入力された転送バイト数
を越えない最大の2のn乗のバイト数を計算しコード化
し、第1及び第2の処理によりコード化された情報を論
理和しアライン情報を統合し、第3の処理により統合さ
れたアライン情報から最小アライン情報を取り出しバイ
ト数にエンコードして、転送元及び転送先のアドレス領
域と転送バイト数に基づきバス上の最適なデータ転送時
バス幅である転送バイトサイズが求められるので、DM
A転送により任意のバイト数のデータを転送する際に、
データ転送回数を少なくして転送時間を短縮することが
できる。
【0064】また、本発明に係るDMA制御装置によ
り、上述したDMA制御方法を実現することができる。
り、上述したDMA制御方法を実現することができる。
【図1】本発明の第1の実施の形態に係るDMA制御装
置の概略構成を示すブロック図である。
置の概略構成を示すブロック図である。
【図2】図1のアドレスアラインバイト判定器を示し、
(a)は前半パートの回路図、(b)は後半パートの回
路図である。
(a)は前半パートの回路図、(b)は後半パートの回
路図である。
【図3】図1のアラインバイト数判定器を示し、(a)
は前半パートの回路図、(b)は後半パートの回路図で
ある。
は前半パートの回路図、(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 (4)
- 【請求項1】複数バイトバス幅を持つバス上で2バイト
以上のバス幅を用いてデータを転送する際、最下位アド
レスを偶数アドレスから転送するバスシステムに接続さ
れるDMA制御方法において、 データ転送毎に、入力される転送元アドレス及び転送先アドレスに対し、
入力されたアドレスが満たす最大アライン境界を見つけ
コード化する第1の処理と、 入力された転送バイト数を越えない最大の2のn乗のバ
イト数を計算しコード化する第2の処理と、 前記第1及び第2の処理によりコード化された情報を論
理和しアライン情報を統合する第3の処理と、 前記第3の処理により統合されたアライン情報から最小
アライン情報を取り出しバイト数にエンコードする第4
の処理とを経て、 転送元及び転送先のアドレス領域と転送バイト数に基づ
きバス上の最適なデータ転送時バス幅である転送バイト
サイズを求めることを特徴とするDMA制御方法。 - 【請求項2】複数バイトバス幅を持つバス上で2バイト
以上のバス幅を用いてデータを転送する際、最下位アド
レスを偶数アドレスから転送するバスシステムに接続さ
れるDMA制御装置において、入力した転送元アドレスが満たす最大アライン境界を見
つけ出し、重み付けしたビット位置コードに置き換える
転送元アドレスアラインバイト判定手段と、 入力した転送先アドレスが満たす最大アライン境界を見
つけ出し、重み付けしたビット位置コードに置き換える
転送先アドレスアラインバイト判定手段と、 入力された転送バイト数を越えない最大の2のn乗のバ
イト数を計算し、重み付けしたビット位置コードに置き
換えるアラインバイト数判定手段と、 前記転送元アドレスアラインバイト判定手段、前記転送
先アドレスアラインバイト判定手段、及び前記アライン
バイト数判定手段からの各出力情報を論理和し 、アライ
ン情報を統合するアラインバイト数統合手段と、 前記アラインバイト数統合手段により統合されたアライ
ン情報から最小アライン情報を取り出し、バイト数にエ
ンコードする最小アラインバイト生成手段とを有し、 データ転送毎に、転送元及び転送先のアドレス領域と転
送バイト数に基づきバス上の最適なデータ転送時バス幅
である転送バイトサイズを求める、転送サイズ決定手段
を有することを特徴とするDMA制御装置。 - 【請求項3】前記アラインバイト数統合手段、前記アラ
インバイト数判定手段、及び前記最小アラインバイト生
成手段がそれぞれ2個ずつ搭載され、 転送バイト数が入力する第1アラインバイト数判定手
段、及び前記転送元アドレスアラインバイト判定手段か
らの各出力情報を論理和する第1アラインバイト数統合
手段と、 前記第1アラインバイト数統合手段により統合されたア
ライン情報から最小アライン情報を取り出す第1最小ア
ラインバイト生成手段と、 前記第1最小アラインバイト生成手段からの出力情報に
基づくバッファ転送バイト数の転送先アドレスが入力す
る第2アラインバイト数判定手段と、 前記第2アラインバイト数判定手段、及び前記転送先ア
ドレスアラインバイト判定手段からの各出力情報を論理
和する第2アラインバイト数統合手段と、 前記第2アラインバイト数統合手段により統合されたア
ライン情報から最小アライン情報を取り出す第2最小ア
ラインバイト生成手段とを有することを特徴とする請求
項2に記載のDMA制御装置。 - 【請求項4】前記第1アラインバイト数統合手段に最大
転送バイト数を設定する第1最大転送バイト数設定手段
と、 前記第2アラインバイト数統合手段に最大転送バイト数
を設定する第2最大転送バイト数設定手段とを有するこ
とを特徴とする請求項3に記載のDMA制御装置。
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 JP2000132497A (ja) | 2000-05-12 |
JP3206568B2 true 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 (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102448331B1 (ko) * | 2020-11-05 | 2022-09-27 | 김정민 | 애완동물용 그루밍 브러쉬 |
Families Citing this family (20)
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 | 财团法人工业技术研究院 | 动态调整传输数据宽度的直接存储器存取控制器与方法 |
JP4937355B2 (ja) | 2007-09-21 | 2012-05-23 | 三菱電機株式会社 | データ転送装置及びデータ転送方法 |
GB0724439D0 (en) * | 2007-12-14 | 2008-01-30 | Icera Inc | Data transfer |
JP2010027032A (ja) | 2008-06-17 | 2010-02-04 | Nec Electronics Corp | Fifo装置及びfifoバッファへのデータ格納方法 |
JP4956848B2 (ja) * | 2009-01-20 | 2012-06-20 | Necエンジニアリング株式会社 | Dma転送制御装置 |
JP5803000B2 (ja) * | 2011-03-17 | 2015-11-04 | 株式会社Pfu | Dma装置、情報処理装置、及びデータ転送方法 |
CN102541752B (zh) * | 2011-12-26 | 2015-04-15 | 苏州国芯科技有限公司 | 嵌入式系统可寻址空间的分区方法 |
JP2014167763A (ja) * | 2013-02-28 | 2014-09-11 | Canon Inc | 電子機器及びその制御方法 |
DE112015007042B4 (de) * | 2015-11-26 | 2022-09-15 | Mitsubishi Electric Corporation | Datenübertragungsvorrichtung, Datenübertragungsverfahren und Datenübertragungsprogramm |
CN111159075B (zh) * | 2019-12-31 | 2021-11-05 | 成都海光微电子技术有限公司 | 数据传输方法和数据传输装置 |
CN115237962A (zh) * | 2022-09-20 | 2022-10-25 | 南京芯驰半导体科技有限公司 | 一种数据查找的方法及装置 |
CN117807001B (zh) * | 2024-02-29 | 2024-05-24 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于dma/直接内存访问的任务处理方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU652371B2 (en) * | 1990-06-29 | 1994-08-25 | Fujitsu Limited | Data transfer system |
-
1998
- 1998-10-28 JP JP30656298A patent/JP3206568B2/ja not_active Expired - Fee Related
-
1999
- 1999-10-28 CN CN 99122084 patent/CN1252566A/zh active Pending
- 1999-10-28 EP EP99121507A patent/EP0997822A3/en not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102448331B1 (ko) * | 2020-11-05 | 2022-09-27 | 김정민 | 애완동물용 그루밍 브러쉬 |
Also Published As
Publication number | Publication date |
---|---|
EP0997822A2 (en) | 2000-05-03 |
JP2000132497A (ja) | 2000-05-12 |
EP0997822A3 (en) | 2001-10-24 |
CN1252566A (zh) | 2000-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3206568B2 (ja) | Dma制御方法及び装置 | |
JP3332619B2 (ja) | 復号装置およびその方法 | |
US5778255A (en) | Method and system in a data processing system for decompressing multiple compressed bytes in a single machine cycle | |
US5805086A (en) | Method and system for compressing data that facilitates high-speed data decompression | |
JP2004013504A (ja) | パターン認識システム、このシステムに用いられる連想メモリ装置及びパターン認識処理方法 | |
US11424761B2 (en) | Multiple symbol decoder | |
JP2001216194A (ja) | 演算処理装置 | |
US6871274B2 (en) | Instruction code conversion apparatus creating an instruction code including a second code converted from a first code | |
JP3604548B2 (ja) | アドレス一致検出装置、通信制御システム及びアドレス一致検出方法 | |
JPH06344601A (ja) | 出力装置および出力方法 | |
JPH0666050B2 (ja) | ソート処理方法 | |
JP2000307433A (ja) | 復号化装置および復号化方法、並びに、プログラム記録媒体 | |
JP2752220B2 (ja) | 文字列処理装置 | |
JP3182497B2 (ja) | 演算処理装置および命令変換装置 | |
JP2842045B2 (ja) | データ圧縮装置 | |
JP2952067B2 (ja) | データ圧縮方式 | |
JP2008005181A (ja) | ゼロ画素カウント回路 | |
JPH02287625A (ja) | シングルチップマイクロコンピュータ | |
JP2985093B2 (ja) | 演算制御装置 | |
JP2006011822A (ja) | プロセッサ | |
EP0471473A2 (en) | Image recognition apparatus | |
JPH1188193A (ja) | バイトランレングス伸張装置、及びその方法 | |
JPS59117375A (ja) | Mh符号化方式 | |
JPH05216658A (ja) | ワード比較命令の処理方法および装置および文字列比較命令の処理方法および装置 | |
JPS58220567A (ja) | 画像デ−タ圧縮方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |