JP2006018642A - Dma transfer controller - Google Patents
Dma transfer controller Download PDFInfo
- Publication number
- JP2006018642A JP2006018642A JP2004196617A JP2004196617A JP2006018642A JP 2006018642 A JP2006018642 A JP 2006018642A JP 2004196617 A JP2004196617 A JP 2004196617A JP 2004196617 A JP2004196617 A JP 2004196617A JP 2006018642 A JP2006018642 A JP 2006018642A
- Authority
- JP
- Japan
- Prior art keywords
- transfer
- size
- data
- page boundary
- buffer
- 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
Links
Images
Landscapes
- Bus Control (AREA)
- Memory System (AREA)
Abstract
Description
本発明は、転送元または転送先がDRAM系メモリである場合のバースト転送を正常且つ効率良く行うことができるDMA転送制御装置に関する。 The present invention relates to a DMA transfer control device that can perform burst transfer normally and efficiently when a transfer source or a transfer destination is a DRAM memory.
DMA(ダイレクトメモリアクセス)は、データ転送元からデータ転送先へのデータ転送を制御する為の1つの方式である。DMA転送では、データ転送元アドレス、データ転送先アドレス、データ転送サイズをレジスタ等に設定し、その後、CPU等が転送開始を制御することによりDMA転送制御装置は転送動作を開始する。転送時にはCPUによる転送制御の必要はない為、データの転送速度を向上させ、CPUの負担を減らすことができる。レジスタ等に設定されたデータサイズの転送が完了した場合、DMA転送制御装置はDMA転送終了割り込みをアサートする。CPUは、DMA転送終了割り込みのアサートが発生すると、実際に転送を終了したデータサイズ結果やDMA転送の停止や転送中等のステータスを報告する為のレジスタ等を読み込み、DMA転送の動作を監視する。尚、DMA転送の際は、1回のアドレス指定で複数個のバイトデータをまとめて連続的に転送するバースト転送を利用する場合が多い(特許文献1参照。)。
しかしながら、上記のDMA転送制御装置においては、転送元または転送先がDRAM系メモリのバースト転送では、大きい転送サイズを扱うと必ずページ境界を超える転送となり、ページ境界をまたいだ転送後においても、既にアクセスが終了したアドレスに対して同じアクセスを実行する。その為、正常なデータ転送を行うことが不可能となり、高速に大量のデータ転送を可能とするバースト転送の本来の目的を阻害する。 However, in the above-described DMA transfer control device, when the transfer source or transfer destination is a DRAM memory burst transfer, if a large transfer size is handled, the transfer always exceeds the page boundary, and even after the transfer across the page boundary, the transfer is already performed. The same access is executed for the address where the access has been completed. For this reason, it is impossible to perform normal data transfer, which hinders the original purpose of burst transfer that enables high-speed data transfer at high speed.
この不具合を回避する為には、CPU等が転送元アドレス、転送先アドレス及び転送サイズを管理してページ境界をまたいだバースト転送を行わない様に制御する必要があるが、それではCPUを介さずにデータ転送することでCPUの負担を減らすことができるというDMA転送の本来の目的を阻害する。 In order to avoid this problem, it is necessary for the CPU or the like to manage the transfer source address, the transfer destination address, and the transfer size so as not to perform burst transfer across the page boundary. Therefore, the original purpose of the DMA transfer, which can reduce the load on the CPU by transferring the data, is hindered.
本発明は、転送元または転送先がDRAM系メモリである場合のバースト転送の際に、ページ境界を超える様な大きい転送サイズの転送に対しても、ページ境界に影響されることなくバースト転送を正常且つ効率良く行うことができるDMA転送制御装置を提供することを目的とする。 In the present invention, burst transfer is performed without being affected by the page boundary even when the transfer source or the transfer destination is a DRAM memory, and even when the transfer size is large, such as exceeding the page boundary. An object of the present invention is to provide a DMA transfer control apparatus that can perform normal and efficient.
上記の問題点の鑑みて、本発明の特徴は、[イ]ページ毎に、外部制御手段の制御に基づき転送元に格納された連続データを転送先にDMA転送する為の構成を備えたDMA転送制御装置において、
転送元に格納された連続データの転送元開始アドレス及び転送先の転送先開始アドレス、並びに連続データのデータサイズを外部制御手段からそれぞれ取得して転送する為のパラメータを設定する転送パラメータ設定手段(201,202,203)と、[ロ]連続データを一時記憶するバッファ(208)と、[ハ]転送パラメータ設定手段とバッファのサイズとから、1回の読み込み処理で転送できる処理転送サイズを決定するバッファサイズ比較判定部(204)と、[ニ]転送元からバッファへ読み込みするデータサイズが転送元のページ境界を超えるか否かを判定し、転送元のページ境界を超えると判定された場合には、処理転送サイズを転送元のページ境界単位で区切り分割転送サイズを設定するページ境界判定部(205)と、[ホ]転送元のページ境界後の未送信データの有無を判定し、未送信データが有る場合、次回転送分の分割転送サイズを設定する未処理転送判定部(206)とを備えるDMA転送制御装置であることを要旨とする。
In view of the above problems, the present invention is characterized in that a DMA having a configuration for DMA-transferring continuous data stored in a transfer source to a transfer destination based on control of an external control unit for each [a] page. In the transfer control device,
Transfer parameter setting means for setting the transfer source start address of the continuous data stored in the transfer source, the transfer destination start address of the transfer destination, and the data size of the continuous data from the external control means and setting the parameters for
本発明のDMA転送制御装置よれば、転送元または転送先がDRAM系メモリである場合のバースト転送の際に、ページ境界を超える様な大きい転送サイズの転送に対しても分割転送制御を行うことにより、ページ境界に影響されることなくバースト転送を正常且つ効率良く行うことが可能となる。 According to the DMA transfer control device of the present invention, divided transfer control can be performed even for a transfer with a large transfer size exceeding a page boundary during burst transfer when the transfer source or transfer destination is a DRAM memory. As a result, burst transfer can be performed normally and efficiently without being affected by the page boundary.
また、本発明のDMA転送制御装置はページ境界を超えるか否かを判断し、その判断結果によりバースト転送を分割するか否かを制御する為、CPUは転送元アドレス、転送先アドレス及び転送サイズを管理してページ境界をまたいだバースト転送を行わない様に制御する必要が無い。その為、ページ境界をまたいだバースト転送の場合においてもCPUの負担が重くなることがなく、CPU側はページ境界を考慮せずに、バースト転送を指示することが可能となる。 Further, the DMA transfer control device of the present invention determines whether or not the page boundary is exceeded and controls whether or not to divide burst transfer according to the determination result. Therefore, the CPU controls the transfer source address, transfer destination address and transfer size. It is not necessary to control to prevent burst transfer across page boundaries. Therefore, even in the case of burst transfer across page boundaries, the burden on the CPU does not increase, and the CPU can instruct burst transfer without considering page boundaries.
以下、本発明の実施の形態に係るDMA転送制御装置について説明する。尚、本発明の実施の形態において使用される機器、手法等は一例であり、本発明はこれらに限定されるものではないことは勿論である。 The DMA transfer control device according to the embodiment of the present invention will be described below. In addition, the apparatus, method, etc. which are used in embodiment of this invention are examples, and of course, this invention is not limited to these.
(実施の形態)
(DMA転送制御装置)
本発明の実施の形態に係るDMA転送制御装置200は、図1に示すように、転送パラメータ設定手段である転送元アドレスレジスタ201,転送先アドレスレジスタ202及び転送サイズレジスタ203と、バッファサイズ比較判定部204と、ページ境界判定部205と、未処理転送判定部206と、バッファ208と、バスサイクル発生器209及びDMA転送制御器210等を備えている。
(Embodiment)
(DMA transfer controller)
As shown in FIG. 1, a DMA
転送元アドレスレジスタ201は、転送元アドレスを保持する。転送先アドレスレジスタ202は、転送先アドレスを保持する。転送サイズレジスタ203は、転送サイズを保持する。
The transfer
バッファサイズ比較判定部204は、転送サイズレジスタ203から得る全体のデータ転送量である「転送サイズ」とバッファ208の全体データ格納量である「バッファサイズ」を比較することで、転送の基本単位(以下「1クール」と記す)を読み込む処理で転送されるデータ量である「処理転送サイズ」を設定する。1クールの読み込み処理にて転送可能なデータ量はバッファサイズに依存する。つまり最大の処理転送サイズはバッファサイズとなる。
The buffer size comparison /
ページ境界判定部205は、転送元アドレスレジスタ201から得る転送元アドレス、バッファサイズ比較判定部204から得る処理転送サイズ及び転送元メモリ211から得るページ境界サイズより、この読み込み転送がページ境界を超えるか否かを判定する。ページ境界を超える場合には、処理転送サイズをページ境界で区切った「分割転送サイズ」を決定する。また、転送先アドレスレジスタ202から得る転送先アドレスと読み込み転送時にバッファ208に書き込みしたデータサイズ及び転送先メモリ212のページ境界サイズより、この書き込み転送がページ境界を超えるか否かを判定する。ページ境界を超える場合には、処理転送サイズをページ境界で区切った分割転送サイズを決定する。
The page
未処理転送判定部206は、ページ境界をまたいだ分割転送の場合、未送信の分割転送データが未だ有るか否かを判定して、未送信の分割転送データが未だ有る場合、次回転送分の分割転送サイズを決定する。
The unprocessed
バッファ208は、転送元メモリ211と転送先メモリ212間においてデータをやり取りするときに、処理速度や転送速度の差を補うためにデータを一時的に保存しておく為の記憶装置である。
The
バスサイクル発生器209は、転送元アドレスレジスタ201で指示される転送元メモリ211から転送先アドレスレジスタ202で指示される転送先メモリ212へ対して、転送サイズレジスタ203の転送サイズをバス幅(処理転送サイズの転送1クール内にて、1回のデータ転送で転送可能なデータ量)に従って転送する。
The
DMA転送制御器210は、転送要求に基づく転送要求信号の入力により、DMA転送制御装置200によるDMA転送の実行を指示する。
The
DMA転送制御装置200は外部バスを介して、CPU100、転送元メモリ211及び転送先メモリ212に接続される。レジスタ110、転送元メモリ211、転送先メモリ212、バッファ208は、それぞれ複数バイト幅のデータバスで接続されている。
The DMA
CPU100は、外部制御手段であり、転送元アドレスレジスタ201、転送先アドレスレジスタ202、転送サイズレジスタ203に所定の値を設定し、DMA転送の要求を受けるとDMA転送処理の開始を指示する。一度DMA転送が開始されると、CPU100はDMA転送に関しての直接の命令は行わない。
The
(DMA転送制御装置の動作)
以下、本発明の実施の形態に係るDMA転送制御装置200が、図1の転送元メモリ211からデータを読み込み、転送先メモリ212に書き込むデータ転送動作について図2のフローチャートを用いて説明する。
(Operation of DMA transfer control device)
Hereinafter, a data transfer operation in which the DMA
尚、以下において説明するデータ転送動作は、データバス幅16バイトのバースト転送の場合のものであり、CPU100の制御命令により、転送元アドレス、転送先アドレス及び転送バイトサイズが、それぞれ図1の転送元アドレスレジスタ201、転送先アドレスレジスタ202、転送サイズレジスタ203に既に設定されているものとする。
The data transfer operation described below is for burst transfer with a data bus width of 16 bytes, and the transfer source address, transfer destination address, and transfer byte size are set as shown in FIG. It is assumed that the
(a)先ず、ステップS101においては、DMA転送制御器210が、SCSIインタフェース等の外部インタフェースを介してDMA転送の要求を受信したか否かを判定する。尚、判定要求を受信していない場合には、DMA転送制御器210はこの判定を続ける。
(a) First, in step S101, the
(b)DMA転送の要求がある場合は、ステップS102において、CPU100がDMA転送制御装置200に対しDMA転送開始を指示し、DMA転送制御装置200は、転送元アドレスレジスタ201内の転送元アドレス及び転送サイズレジスタ203内の転送サイズを読み出す。
(B) If there is a request for DMA transfer, in step S102, the
(c)ステップS103において、バッファサイズ比較判定部204は、転送元アドレス及び転送サイズ、バッファ208のサイズ及び転送元メモリ211のページ境界サイズの比較により、転送サイズを決定する。ステップS104において転送サイズがバッファサイズより大きい場合、「処理転送サイズ=バッファサイズ」と設定される。ステップS105において転送サイズがバッファサイズと同量若しくはそれ以下である場合、「処理転送サイズ=転送サイズ」であると設定される。最大転送サイズはバッファ208のサイズであり、以下のような関係となる。
(C) In step S103, the buffer size comparison /
1)転送サイズ<バッファサイズの場合
転送サイズ=転送サイズ(転送回数1回)
2)転送サイズ=バッファサイズの場合
転送サイズ=バッファサイズ(転送回数1回)
3)転送サイズ>バッファサイズの場合
転送1回目:転送サイズ=バッファサイズ
転送2回目:転送サイズ=(転送サイズ―バッファサイズ)これ以降、転送サイズデータの残りのサイズが0となるまで、転送する度に処理転送サイズを決定する。
1) When transfer size <buffer size Transfer size = transfer size (1 transfer)
2) When transfer size = buffer size Transfer size = buffer size (1 transfer)
3) When transfer size> buffer size Transfer 1st: transfer size = buffer size Transfer 2nd: transfer size = (transfer size-buffer size) Thereafter, transfer is performed until the remaining size of transfer size data becomes 0 The processing transfer size is determined each time.
具体的には、バス幅=16バイト、バッファサイズ=256バイトである場合、例えば、転送サイズ=40バイトであると、処理転送サイズは40バイトとなり、40=16+16+8で、1クール3回の転送処理が必要となる。又、転送バイトサイズ=260バイトであると、1クール目の処理転送バイトサイズはバッファサイズの256バイトとなり、256=16×16で1クール16回の転送処理、2クール目の処理転送バイトサイズは260−256=4バイトとなり、4×1で2クール1回の転送処理が必要となる。 Specifically, when the bus width is 16 bytes and the buffer size is 256 bytes, for example, when the transfer size is 40 bytes, the processing transfer size is 40 bytes, and 40 = 16 + 16 + 8, and one transfer is performed three times. Processing is required. If the transfer byte size is 260 bytes, the process transfer byte size of the first cool is 256 bytes of the buffer size, and 256 = 16 × 16, one transfer process is performed 16 times, and the second transfer process transfer byte size is 260−256 = 4 bytes, and transfer processing is required once every 2 cools with 4 × 1.
(d)ステップS106では、ページ境界判定部205が、転送元アドレス、設定された処理転送サイズ及び転送元メモリ211のページ境界サイズとの比較を行い、転送サイズがページ境界を超えるか否かを判定する。
(D) In step S106, the page
ページ境界を超える場合には、ステップS107において読み込み転送を分割して行う為、図3(a)に示す、1クール内における1回分読み込みの分割転送サイズ(転送元アドレスから転送元メモリ211のページ境界までのサイズ)を決定する。 If the page boundary is exceeded, the read transfer is divided in step S107, and therefore, the divided transfer size of one read in one course shown in FIG. Determine the size up to the boundary).
ページ境界を超えない場合にはステップS108において、「分割転送サイズ=処理転送サイズ」、つまり、処理転送サイズの分割は不要と判断され、処理転送サイズがそのまま分割転送サイズとなる。尚、以下においては便宜上、分割転送サイズと処理転送サイズが同量であっても、分割転送サイズと呼ぶ。 If the page boundary is not exceeded, it is determined in step S108 that “divided transfer size = process transfer size”, that is, division of the process transfer size is unnecessary, and the process transfer size becomes the divided transfer size as it is. In the following, for the sake of convenience, even if the divided transfer size and the processing transfer size are the same amount, they are referred to as a divided transfer size.
(e)ステップS109においては、分割転送サイズが決定したので、転送元アドレスレジスタ201内の転送元アドレスからデータを読み込みする。ステップS110においては、バスサイクル発生器209が転送元メモリ211からバッファ208への処理転送サイズ分のデータ転送を1クールで行なう。転送先メモリ212はこの処理転送データを格納する。ステップS111においては、分割転送サイズが0であるかどうか、つまり分割転送データが全て転送されたかを判断し、0である場合はステップS112へ進み、0でない場合はステップS109に戻り再度データの読み込み処理を行う。
(E) In step S109, since the divided transfer size is determined, data is read from the transfer source address in the transfer
(f)次に、ステップS112においては、ステップS104又はS105で決定された処理転送サイズとステップS107で決定された分割転送サイズとの比較により、未処理転送判定部206は、未処理分割読み込み転送の有無を判定する。
(F) Next, in step S112, the unprocessed
図3(a)のように「処理転送サイズ>分割転送サイズ」となる場合、転送元メモリ211のページ境界を超える転送となる為、ページ境界後の未処理の分割転送データ(2回目)が存在する。従って、ステップS113において、転送元アドレス及び読み込みする転送サイズを更新して、ステップS109に戻り、以降同様に残りの読み込み転送を行う。
As shown in FIG. 3A, when “process transfer size> divided transfer size”, the transfer exceeds the page boundary of the
一方、「処理転送サイズ=分割転送サイズ」と判定されて未処理の分割読み込み転送が無い場合は、ステップS114からの書き込み転送動作へ進む。 On the other hand, if it is determined that “process transfer size = divided transfer size” and there is no unprocessed divided read transfer, the process proceeds to the write transfer operation from step S114.
(g)ステップS114においては、転送先アドレスレジスタ202より転送先アドレスが読み出される。ステップS115においては、ページ境界判定部205は、転送先アドレスと既に読み込み転送によってバッファ内に記憶されているデータサイズ及び転送先メモリ212のページ境界サイズとの比較により、ページ境界を超えるか否かを判定する。
(G) In step S114, the transfer destination address is read from the transfer
ページ境界を超える場合には、ステップS116において書き込み転送を分割して行う。まず、図4のように1回目の分割転送サイズ(転送先アドレスから転送先メモリ212のページ境界までのサイズ)を設定する。ページ境界を超えない場合には、ステップS117においてデータ分割せずに処理転送サイズを設定する。 If the page boundary is exceeded, the write transfer is divided and performed in step S116. First, as shown in FIG. 4, the first divided transfer size (size from the transfer destination address to the page boundary of the transfer destination memory 212) is set. If the page boundary is not exceeded, the processing transfer size is set without dividing the data in step S117.
(h)ステップS118においては、バスサイクル発生器209はバッファ208からデータを取得し、ステップS119にて転送先メモリ212へ転送する。転送先メモリ212はこれを格納する。この動作を分割転送サイズの全データの転送が終わるまで行なう(ステップS120)。
(H) In step S118, the
(i)ステップS121では、未処理転送判定部206が、バッファ208内に残っているデータサイズと、ステップS116又はS117で決定した分割転送サイズとの比較により、次の分割転送の要、不要を判定する。「処理転送サイズ>1回目の分割転送サイズ」の場合、転送先メモリ212のページ境界を超える転送となる為、ページ境界より後の未処理の書き込み転送が存在する。従って、ステップS122にて、転送先アドレス及び書き込み転送サイズを更新して、ステップS118〜S121に戻り、同様に残りの書き込み転送を行う。一方、「処理転送サイズ=1回目の分割転送サイズ」と判定されて、分割転送サイズデータがもう存在しない場合は、ステップS123へ進む。
(I) In step S121, the unprocessed
(j)ステップS123では、最初の書き込み転送が終了すると、ステップS120において、全体の転送サイズと、既に書き込み転送が完了した処理転送サイズとの比較を行う。「転送サイズ>処理転送サイズ」の場合には転送元メモリ211内に未転送データがある為、ステップS124において、転送元アドレス、転送先アドレス及び転送サイズを更新してステップS102に戻り、同様の読み込み及び書き込み処理を転送サイズが0になるまで繰り返す。
(J) In step S123, when the first write transfer is completed, in step S120, the entire transfer size is compared with the process transfer size for which write transfer has already been completed. If “transfer size> process transfer size”, since there is untransferred data in the
転送サイズが0となった場合、DMA転送制御装置200によるDMAのバースト転送を終了する。
When the transfer size becomes 0, DMA burst transfer by the DMA
(実施例:読み込み転送動作)
以下、読み込み転送動作の実施例について図3を用いて具体的に説明する。以下においては、転送元アドレス0x0140、転送バイトサイズ0x1C0、ページ境界位置0x200及びバッファサイズは0x100とする。
(Example: Read transfer operation)
Hereinafter, an embodiment of the read transfer operation will be specifically described with reference to FIG. In the following, it is assumed that the transfer source address is 0x0140, the transfer byte size is 0x1C0, the page boundary position is 0x200, and the buffer size is 0x100.
<処理1>転送元アドレス(0x0140)及び転送サイズ(0x1C0)を読み出す。 <Process 1> Read the transfer source address (0x0140) and the transfer size (0x1C0).
<処理2>転送サイズ(0x1C0)とバッファサイズ(0x100)を比較すると、転送サイズの方が大きい為、2回の読み込み転送が必要となる。1クール目の分割転送サイズは0x100となり、2クール目の分割転送サイズが0xC0となる。 <Process 2> When the transfer size (0x1C0) and the buffer size (0x100) are compared, since the transfer size is larger, two read transfers are required. The division transfer size of the first cool is 0x100, and the division transfer size of the second cool is 0xC0.
<処理3>転送元アドレス(0x0140)と1クール目の処理転送サイズ(0x100)及びページ境界(0x200)との比較によりページ境界を超えるか否かの判定結果、ページ境界を超えると判定される。すると読み込み転送を2分割して、転送元アドレスからページ境界までのサイズ(0xC0)を1回目の分割転送サイズとする。 <Process 3> As a result of determining whether or not the page boundary is exceeded by comparing the transfer source address (0x0140) with the process transfer size (0x100) and page boundary (0x200) of the first cool, it is determined that the page boundary is exceeded. . Then, the read transfer is divided into two, and the size (0xC0) from the transfer source address to the page boundary is set as the first divided transfer size.
<処理4>図3(b)に示すように、転送元アドレス(0x0140)から1回目の分割転送サイズのデータ(0xC0)をバッファ208へ書き込みする。
<Process 4> As shown in FIG. 3B, the first divided transfer size data (0xC0) is written to the
<処理5>読み込み転送未処理が有るか否かの判定で、「処理転送サイズ>1回目の分割転送サイズ」となり、未処理の分割転送サイズのデータがある為、分割転送サイズ2回目の転送に入る。 <Process 5> It is determined whether or not there is read transfer unprocessed, and “process transfer size> first divided transfer size”, and there is unprocessed divided transfer size data. to go into.
<処理6>2回目の転送を行なう為、図3(a)に示すように転送元アドレスをページ境界の0x0200、読み込み転送サイズを0x40に更新する。 <Process 6> To perform the second transfer, the transfer source address is updated to 0x0200 at the page boundary and the read transfer size is updated to 0x40 as shown in FIG.
<処理7>転送元アドレス(0x0200)から2回目の分割転送サイズのデータ(0x40)を、図3(b)のようにバッファ208へ書き込みする。
<Process 7> Data (0x40) of the second divided transfer size from the transfer source address (0x0200) is written to the
1クール目の読み込み転送動作が終了すると、後述する1クール目の書き込み転送動作が行なわれる。1クール目の書き込み転送動作が終了すると、図3(a)に示すように2クール目の転送処理サイズ(0xC0)の読み込み転送動作が行われ、図3(b)に示すように、バッファ208に1クール目のデータに続いて書き込みが行われる。
When the first-cool read transfer operation is completed, a first-cool write transfer operation described later is performed. When the write transfer operation of the first cool is completed, a read transfer operation of the second cool transfer processing size (0xC0) is performed as shown in FIG. 3A, and the
この様に、ページ境界を超える場合の読み込み転送においてもDMA転送制御装置200が転送元メモリ211のページ境界を超えるか否かを管理することで、転送元アドレスから任意の転送サイズデータを正常に読み込みしてバッファ208に記憶することが可能となる。
As described above, even in the read transfer when the page boundary is exceeded, the DMA
(実施例:書き込み転送動作)
次に、書き込み転送動作について具体的に説明する。図4に示す様に、前述した1回目の処理転送サイズのデータ転送によってバッファ208に記憶されたデータサイズ(0x100)のデータを転送先アドレス0x0580に書き込み転送する場合について述べる。尚、ページ境界の位置を0x600とする。
(Example: Write transfer operation)
Next, the write transfer operation will be specifically described. As shown in FIG. 4, a case will be described in which the data of the data size (0x100) stored in the
<処理1>転送先アドレスレジスタ202より転送先アドレス(0x0580)を読み出す。
<Process 1> Read the transfer destination address (0x0580) from the transfer
<処理2>既に読み込み転送によってバッファ208内に記憶されているデータサイズ(0x100)及びページ境界(0x600)との比較によりページ境界を超えるか否かを判定する。図4ではページ境界を超える為、書き込み転送を2分割して行なう。分割転送サイズ1回目のデータは、ページ境界までのサイズ(0x80)となる。
<Process 2> It is determined whether or not the page boundary is exceeded by comparing the data size (0x100) and the page boundary (0x600) already stored in the
<処理4>分割転送サイズ1回目のデータ(0x80)をバッファ208から転送先アドレス(0x0580)へ書き込みする。
<Process 4> The data (0x80) for the first divided transfer size is written from the
<処理5>未処理転送判定部206による未処理の分割転送が有るか否かの判定で、図4の場合、「バッファ208内に残っている処理転送サイズ>1回目の分割転送サイズ」となり、未処理の分割書き込み転送がある為、分割転送2回目に入る。
<Process 5> The determination as to whether or not there is an unprocessed divided transfer by the unprocessed
<処理6>2回目の分割転送サイズの転送先アドレスを0x0600、転送サイズを0x80に更新する。 <Process 6> The transfer destination address of the second divided transfer size is updated to 0x0600, and the transfer size is updated to 0x80.
<処理7>分割転送サイズ2回目のデータ(0x80)をバッファ208から転送先アドレス(0x0600)へ書き込みする。この結果、バッファ208内に記憶されたデータは全て転送先アドレスへ書き込み転送されたことになり、1クール目の書き込み転送が終了となる。
<Process 7> Write the second divided transfer size data (0x80) from the
次に、前述した2クール目の読み込み転送動作が行われる。2クール目の読み込み転送動作が終了すると、図4に示すように2クール目の処理転送サイズ(0xC0)の書き込み転送動作が行われ、全ての転送サイズデータの書き込みが完成する。 Next, the second cool read transfer operation described above is performed. When the second cool read transfer operation is completed, a write transfer operation of the second transfer processing transfer size (0xC0) is performed as shown in FIG. 4, and writing of all transfer size data is completed.
この様に、ページ境界を超える場合の書き込み転送においてもDMA転送制御装置200が転送先メモリ212のページ境界を超えるか否かを管理することで、転送先アドレスに正常に書き込みすることができる。
As described above, even in the write transfer when the page boundary is exceeded, the DMA
100…CPU
110…レジスタ
200…DMA転送制御装置
201…転送元アドレスレジスタ
202…転送先アドレスレジスタ
203…転送サイズレジスタ
204…バッファサイズ比較判定部
205…ページ境界判定部
206…未処理転送判定部
208…バッファ
209…バスサイクル発生器
210…DMA転送制御器
211…転送元メモリ
212…転送先メモリ
100 ... CPU
DESCRIPTION OF SYMBOLS 110 ...
Claims (1)
前記転送元に格納された連続データの転送元開始アドレス及び前記転送先の転送先開始アドレス、並びに前記連続データのデータサイズを前記外部制御手段からそれぞれ取得して転送する為のパラメータを設定する転送パラメータ設定手段と、
前記連続データを一時記憶するバッファと、
前記転送パラメータ設定手段と前記バッファのサイズとから、1回の読み込み処理で転送できる処理転送サイズを決定するバッファサイズ比較判定部と、
前記転送元から前記バッファへ読み込みする前記データサイズが前記転送元のページ境界を超えるか否かを判定し、前記転送元のページ境界を超えると判定された場合には、前記処理転送サイズを前記転送元のページ境界単位で区切り分割転送サイズを設定するページ境界判定部と、
前記転送元のページ境界後の未送信データの有無を判定し、前記未送信データが有る場合、次回転送分の前記分割転送サイズを設定する未処理転送判定部
とを備えることを特徴とするDMA転送制御装置。
For each page, in a DMA transfer control device having a configuration for DMA-transferring continuous data stored in a transfer source to a transfer destination based on control of an external control unit,
Transfer that sets transfer parameters by acquiring the transfer source start address and the transfer destination start address of the transfer destination stored in the transfer source, and the data size of the continuous data from the external control unit, respectively. Parameter setting means;
A buffer for temporarily storing the continuous data;
A buffer size comparison / determination unit for determining a processing transfer size that can be transferred in one reading process from the transfer parameter setting means and the size of the buffer;
It is determined whether or not the data size read from the transfer source to the buffer exceeds the page boundary of the transfer source, and if it is determined that the data size exceeds the page boundary of the transfer source, the processing transfer size is set to the A page boundary determination unit that sets a divisional divided transfer size in units of page boundaries of the transfer source;
A DMA comprising: an unprocessed transfer determination unit that determines whether or not there is untransmitted data after a page boundary of the transfer source, and sets the divided transfer size for the next transfer when the untransmitted data exists. Transfer control device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004196617A JP2006018642A (en) | 2004-07-02 | 2004-07-02 | Dma transfer controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004196617A JP2006018642A (en) | 2004-07-02 | 2004-07-02 | Dma transfer controller |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006018642A true JP2006018642A (en) | 2006-01-19 |
Family
ID=35792851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004196617A Pending JP2006018642A (en) | 2004-07-02 | 2004-07-02 | Dma transfer controller |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006018642A (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008269282A (en) * | 2007-04-20 | 2008-11-06 | Sony Corp | Information processing device, method and program |
JP2011048680A (en) * | 2009-08-27 | 2011-03-10 | Canon Inc | Data transfer system, data transfer apparatus, method of controlling data transfer apparatus, and program |
KR101109600B1 (en) | 2006-11-03 | 2012-01-31 | 삼성전자주식회사 | Method for transmitting data using direct memory access control and apparatus therefor |
JP2014032695A (en) * | 2013-10-15 | 2014-02-20 | Canon Inc | Information processing apparatus, method for controlling information processing apparatus, and program |
CN106919522A (en) * | 2015-12-28 | 2017-07-04 | 北京航天测控技术有限公司 | A kind of dma controller based on PXI e interface |
CN108475229A (en) * | 2016-11-26 | 2018-08-31 | 华为技术有限公司 | Method, host and the solid storage device of Data Migration |
-
2004
- 2004-07-02 JP JP2004196617A patent/JP2006018642A/en active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101109600B1 (en) | 2006-11-03 | 2012-01-31 | 삼성전자주식회사 | Method for transmitting data using direct memory access control and apparatus therefor |
JP2008269282A (en) * | 2007-04-20 | 2008-11-06 | Sony Corp | Information processing device, method and program |
US8171213B2 (en) | 2007-04-20 | 2012-05-01 | Sony Corporation | Information processing apparatus and method, and program |
JP2011048680A (en) * | 2009-08-27 | 2011-03-10 | Canon Inc | Data transfer system, data transfer apparatus, method of controlling data transfer apparatus, and program |
JP2014032695A (en) * | 2013-10-15 | 2014-02-20 | Canon Inc | Information processing apparatus, method for controlling information processing apparatus, and program |
CN106919522A (en) * | 2015-12-28 | 2017-07-04 | 北京航天测控技术有限公司 | A kind of dma controller based on PXI e interface |
CN108475229A (en) * | 2016-11-26 | 2018-08-31 | 华为技术有限公司 | Method, host and the solid storage device of Data Migration |
JP2020501249A (en) * | 2016-11-26 | 2020-01-16 | 華為技術有限公司Huawei Technologies Co.,Ltd. | Data migration methods, hosts, and solid state disks |
US10795599B2 (en) | 2016-11-26 | 2020-10-06 | Huawei Technologies Co., Ltd. | Data migration method, host and solid state disk |
US11644994B2 (en) | 2016-11-26 | 2023-05-09 | Huawei Technologies Co., Ltd. | Data migration method, host, and solid state disk |
US11960749B2 (en) | 2016-11-26 | 2024-04-16 | Huawei Technologies Co., Ltd. | Data migration method, host, and solid state disk |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4356765B2 (en) | Information processing apparatus and method, and program | |
JPH01277928A (en) | Printer | |
JP2006215873A (en) | Controller, information processor and transfer processing method | |
JP2006018642A (en) | Dma transfer controller | |
JP4196271B2 (en) | Print data processing apparatus and data processing apparatus | |
US7321438B2 (en) | Parallel processing for a first and second image data from one input image | |
US10852970B2 (en) | Storage control apparatus, control method thereof, storage medium, and information processing apparatus | |
JP2000123472A (en) | Method and device for processing data of tape drive | |
JP3703439B2 (en) | Data transfer control device and method | |
JP2019220787A (en) | Control device, image forming apparatus, control method, and control program | |
KR20010013137A (en) | Communication DMA Device | |
JP2004227501A (en) | Data transfer controller and method | |
JP2003140946A (en) | Storage device | |
JP2007264751A (en) | Data transfer controller | |
US20180181508A1 (en) | Semiconductor device | |
JP2006004340A (en) | Dma transfer controller | |
JP7243172B2 (en) | Image processing device | |
JP2008118211A (en) | Device and method for transferring data | |
JP2016154001A (en) | Image processor, data transfer control method for image processing, and data transfer control program for image processing | |
JP4867897B2 (en) | Command queuing control device, command queuing program, and storage system | |
JP2008310547A (en) | Image forming device | |
JP4862395B2 (en) | Information processing apparatus and information processing apparatus control method | |
JP2005174145A (en) | Data processing method, data processor, program, and storage medium | |
JP5575064B2 (en) | Controller and image processing device | |
JP2005128931A (en) | Dma transfer device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061227 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090819 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090825 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100105 |