JP2006018642A - Dma transfer controller - Google Patents

Dma transfer controller Download PDF

Info

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
Application number
JP2004196617A
Other languages
Japanese (ja)
Inventor
Hiroki Nakagami
広樹 中上
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.)
Victor Company of Japan Ltd
Original Assignee
Victor Company of Japan Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Victor Company of Japan Ltd filed Critical Victor Company of Japan Ltd
Priority to JP2004196617A priority Critical patent/JP2006018642A/en
Publication of JP2006018642A publication Critical patent/JP2006018642A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)
  • Memory System (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a DMA transfer controller for normally and efficiently performing burst transfer without being affected by a page boundary even for data transfer exceeding the page boundary. <P>SOLUTION: The DMA transfer controller 200 comprises: transfer parameter setting means (201, 202, 203) for setting a transfer destination, a transfer origin and a transfer size; a buffer (208); a buffer size comparison and decision part (204) for comparing the transfer size of data with the size of the buffer and deciding a processing transfer size which can be transferred by one read processing; a page boundary decision part (205) for deciding whether or not the transfer size exceeds the page boundary and setting a division transfer size by dividing the processing transfer size before the page boundary in the case of deciding that it exceeds the page boundary; and a non-processed transfer decision part (206) for deciding the presence of non-transmitted data after the page boundary and setting the division transfer size for the transfer of the next time in the case that the non-transmitted data are present, and the like. <P>COPYRIGHT: (C)2006,JPO&NCIPI

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参照。)。
特開2000−132497号公報
DMA (direct memory access) is one method for controlling data transfer from a data transfer source to a data transfer destination. In the DMA transfer, the data transfer source address, the data transfer destination address, and the data transfer size are set in a register or the like, and then the DMA transfer control device starts the transfer operation when the CPU or the like controls the transfer start. Since there is no need for transfer control by the CPU at the time of transfer, the data transfer speed can be improved and the burden on the CPU can be reduced. When the transfer of the data size set in the register or the like is completed, the DMA transfer control device asserts a DMA transfer end interrupt. When the DMA transfer end interrupt is asserted, the CPU reads the data size result of the actual transfer completion, the register for reporting the status such as DMA transfer stop or transfer, and the like, and monitors the DMA transfer operation. In the case of DMA transfer, burst transfer is often used in which a plurality of byte data is transferred continuously in a single address designation (see Patent Document 1).
JP 2000-132497 A

しかしながら、上記の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 transfer 201, 202, 203), [b] a buffer (208) for temporarily storing continuous data, [c] transfer parameter setting means, and the size of the buffer determine the processing transfer size that can be transferred in one reading process A buffer size comparison / determination unit (204) that determines whether or not the data size to be read from the transfer source to the buffer exceeds the page boundary of the transfer source, and is determined to exceed the page boundary of the transfer source Includes a page boundary determination unit (205) that sets a division transfer transfer size in units of transfer source page boundaries. [E] DMA transfer control including an unprocessed transfer determination unit (206) that determines whether there is untransmitted data after the page boundary of the transfer source and if there is untransmitted data, sets a divided transfer size for the next transfer The gist is that it is a device.

本発明の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 transfer control apparatus 200 according to an embodiment of the present invention includes a transfer source address register 201, a transfer destination address register 202, a transfer size register 203, which are transfer parameter setting means, and a buffer size comparison determination. Unit 204, page boundary determination unit 205, unprocessed transfer determination unit 206, buffer 208, bus cycle generator 209, DMA transfer controller 210, and the like.

転送元アドレスレジスタ201は、転送元アドレスを保持する。転送先アドレスレジスタ202は、転送先アドレスを保持する。転送サイズレジスタ203は、転送サイズを保持する。   The transfer source address register 201 holds a transfer source address. The transfer destination address register 202 holds a transfer destination address. The transfer size register 203 holds the transfer size.

バッファサイズ比較判定部204は、転送サイズレジスタ203から得る全体のデータ転送量である「転送サイズ」とバッファ208の全体データ格納量である「バッファサイズ」を比較することで、転送の基本単位(以下「1クール」と記す)を読み込む処理で転送されるデータ量である「処理転送サイズ」を設定する。1クールの読み込み処理にて転送可能なデータ量はバッファサイズに依存する。つまり最大の処理転送サイズはバッファサイズとなる。   The buffer size comparison / determination unit 204 compares the “transfer size”, which is the total data transfer amount obtained from the transfer size register 203, with the “buffer size”, which is the total data storage amount of the buffer 208, so that the basic unit of transfer ( (Hereinafter referred to as “1 cool”) is set to “process transfer size” which is the amount of data transferred in the process of reading. The amount of data that can be transferred in one cool reading process depends on the buffer size. That is, the maximum processing transfer size is the buffer size.

ページ境界判定部205は、転送元アドレスレジスタ201から得る転送元アドレス、バッファサイズ比較判定部204から得る処理転送サイズ及び転送元メモリ211から得るページ境界サイズより、この読み込み転送がページ境界を超えるか否かを判定する。ページ境界を超える場合には、処理転送サイズをページ境界で区切った「分割転送サイズ」を決定する。また、転送先アドレスレジスタ202から得る転送先アドレスと読み込み転送時にバッファ208に書き込みしたデータサイズ及び転送先メモリ212のページ境界サイズより、この書き込み転送がページ境界を超えるか否かを判定する。ページ境界を超える場合には、処理転送サイズをページ境界で区切った分割転送サイズを決定する。   The page boundary determination unit 205 determines whether the read transfer exceeds the page boundary based on the transfer source address obtained from the transfer source address register 201, the processing transfer size obtained from the buffer size comparison judgment unit 204, and the page boundary size obtained from the transfer source memory 211. Determine whether or not. If the page boundary is exceeded, a “division transfer size” is determined by dividing the process transfer size by the page boundary. Whether the write transfer exceeds the page boundary is determined from the transfer destination address obtained from the transfer destination address register 202, the data size written to the buffer 208 at the time of read transfer, and the page boundary size of the transfer destination memory 212. When the page boundary is exceeded, the divided transfer size is determined by dividing the processing transfer size by the page boundary.

未処理転送判定部206は、ページ境界をまたいだ分割転送の場合、未送信の分割転送データが未だ有るか否かを判定して、未送信の分割転送データが未だ有る場合、次回転送分の分割転送サイズを決定する。   The unprocessed transfer determination unit 206 determines whether there is still untransmitted divided transfer data in the case of divided transfer across page boundaries, and if there is still untransmitted divided transfer data, Determine the split transfer size.

バッファ208は、転送元メモリ211と転送先メモリ212間においてデータをやり取りするときに、処理速度や転送速度の差を補うためにデータを一時的に保存しておく為の記憶装置である。   The buffer 208 is a storage device for temporarily storing data in order to compensate for a difference in processing speed or transfer speed when data is exchanged between the transfer source memory 211 and the transfer destination memory 212.

バスサイクル発生器209は、転送元アドレスレジスタ201で指示される転送元メモリ211から転送先アドレスレジスタ202で指示される転送先メモリ212へ対して、転送サイズレジスタ203の転送サイズをバス幅(処理転送サイズの転送1クール内にて、1回のデータ転送で転送可能なデータ量)に従って転送する。   The bus cycle generator 209 converts the transfer size of the transfer size register 203 from the transfer source memory 211 specified by the transfer source address register 201 to the transfer destination memory 212 specified by the transfer destination address register 202 by the bus width (processing). Transfer is performed according to the amount of data that can be transferred in one data transfer within one course of transfer size transfer.

DMA転送制御器210は、転送要求に基づく転送要求信号の入力により、DMA転送制御装置200によるDMA転送の実行を指示する。   The DMA transfer controller 210 instructs the DMA transfer control device 200 to execute DMA transfer in response to the input of a transfer request signal based on the transfer request.

DMA転送制御装置200は外部バスを介して、CPU100、転送元メモリ211及び転送先メモリ212に接続される。レジスタ110、転送元メモリ211、転送先メモリ212、バッファ208は、それぞれ複数バイト幅のデータバスで接続されている。   The DMA transfer control device 200 is connected to the CPU 100, the transfer source memory 211, and the transfer destination memory 212 via an external bus. The register 110, the transfer source memory 211, the transfer destination memory 212, and the buffer 208 are each connected by a data bus having a plurality of bytes.

CPU100は、外部制御手段であり、転送元アドレスレジスタ201、転送先アドレスレジスタ202、転送サイズレジスタ203に所定の値を設定し、DMA転送の要求を受けるとDMA転送処理の開始を指示する。一度DMA転送が開始されると、CPU100はDMA転送に関しての直接の命令は行わない。   The CPU 100 is an external control means, and sets predetermined values in the transfer source address register 201, the transfer destination address register 202, and the transfer size register 203, and instructs the start of the DMA transfer process when receiving a DMA transfer request. Once the DMA transfer is started, the CPU 100 does not issue a direct command for the DMA transfer.

(DMA転送制御装置の動作)
以下、本発明の実施の形態に係るDMA転送制御装置200が、図1の転送元メモリ211からデータを読み込み、転送先メモリ212に書き込むデータ転送動作について図2のフローチャートを用いて説明する。
(Operation of DMA transfer control device)
Hereinafter, a data transfer operation in which the DMA transfer control apparatus 200 according to the embodiment of the present invention reads data from the transfer source memory 211 of FIG. 1 and writes it to the transfer destination memory 212 will be described with reference to the flowchart of FIG.

尚、以下において説明するデータ転送動作は、データバス幅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 original address register 201, the transfer destination address register 202, and the transfer size register 203 are already set.

(a)先ず、ステップS101においては、DMA転送制御器210が、SCSIインタフェース等の外部インタフェースを介してDMA転送の要求を受信したか否かを判定する。尚、判定要求を受信していない場合には、DMA転送制御器210はこの判定を続ける。 (a) First, in step S101, the DMA transfer controller 210 determines whether a DMA transfer request is received via an external interface such as a SCSI interface. If no determination request has been received, the DMA transfer controller 210 continues this determination.

(b)DMA転送の要求がある場合は、ステップS102において、CPU100がDMA転送制御装置200に対しDMA転送開始を指示し、DMA転送制御装置200は、転送元アドレスレジスタ201内の転送元アドレス及び転送サイズレジスタ203内の転送サイズを読み出す。 (B) If there is a request for DMA transfer, in step S102, the CPU 100 instructs the DMA transfer control device 200 to start DMA transfer, and the DMA transfer control device 200 sets the transfer source address in the transfer source address register 201 and The transfer size in the transfer size register 203 is read.

(c)ステップS103において、バッファサイズ比較判定部204は、転送元アドレス及び転送サイズ、バッファ208のサイズ及び転送元メモリ211のページ境界サイズの比較により、転送サイズを決定する。ステップS104において転送サイズがバッファサイズより大きい場合、「処理転送サイズ=バッファサイズ」と設定される。ステップS105において転送サイズがバッファサイズと同量若しくはそれ以下である場合、「処理転送サイズ=転送サイズ」であると設定される。最大転送サイズはバッファ208のサイズであり、以下のような関係となる。 (C) In step S103, the buffer size comparison / determination unit 204 determines the transfer size by comparing the transfer source address and transfer size, the size of the buffer 208, and the page boundary size of the transfer source memory 211. If the transfer size is larger than the buffer size in step S104, “process transfer size = buffer size” is set. If the transfer size is equal to or smaller than the buffer size in step S105, “process transfer size = transfer size” is set. The maximum transfer size is the size of the buffer 208 and has the following relationship.

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 boundary determination unit 205 compares the transfer source address, the set processing transfer size, and the page boundary size of the transfer source memory 211 to determine whether the transfer size exceeds the page boundary. judge.

ページ境界を超える場合には、ステップ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 source address register 201. In step S110, the bus cycle generator 209 performs the data transfer for the processing transfer size from the transfer source memory 211 to the buffer 208 in one cool. The transfer destination memory 212 stores this process transfer data. In step S111, it is determined whether or not the divided transfer size is 0, that is, whether all the divided transfer data has been transferred. If it is 0, the process proceeds to step S112. If not, the process returns to step S109 and data is read again. Process.

(f)次に、ステップS112においては、ステップS104又はS105で決定された処理転送サイズとステップS107で決定された分割転送サイズとの比較により、未処理転送判定部206は、未処理分割読み込み転送の有無を判定する。 (F) Next, in step S112, the unprocessed transfer determination unit 206 compares the process transfer size determined in step S104 or S105 with the split transfer size determined in step S107. The presence or absence of is determined.

図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 transfer source memory 211. Therefore, unprocessed divided transfer data after the page boundary (second time) is stored. Exists. Accordingly, in step S113, the transfer source address and the transfer size to be read are updated, the process returns to step S109, and the remaining read transfer is performed in the same manner.

一方、「処理転送サイズ=分割転送サイズ」と判定されて未処理の分割読み込み転送が無い場合は、ステップ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 destination address register 202. In step S115, the page boundary determination unit 205 determines whether or not the page boundary is exceeded by comparing the transfer destination address with the data size already stored in the buffer by read transfer and the page boundary size of the transfer destination memory 212. Determine.

ページ境界を超える場合には、ステップ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 bus cycle generator 209 acquires data from the buffer 208, and transfers it to the transfer destination memory 212 in step S119. The transfer destination memory 212 stores this. This operation is performed until the transfer of all the divided transfer size data is completed (step S120).

(i)ステップS121では、未処理転送判定部206が、バッファ208内に残っているデータサイズと、ステップS116又はS117で決定した分割転送サイズとの比較により、次の分割転送の要、不要を判定する。「処理転送サイズ>1回目の分割転送サイズ」の場合、転送先メモリ212のページ境界を超える転送となる為、ページ境界より後の未処理の書き込み転送が存在する。従って、ステップS122にて、転送先アドレス及び書き込み転送サイズを更新して、ステップS118〜S121に戻り、同様に残りの書き込み転送を行う。一方、「処理転送サイズ=1回目の分割転送サイズ」と判定されて、分割転送サイズデータがもう存在しない場合は、ステップS123へ進む。 (I) In step S121, the unprocessed transfer determination unit 206 determines whether the next divided transfer is necessary or unnecessary by comparing the data size remaining in the buffer 208 with the divided transfer size determined in step S116 or S117. judge. When “process transfer size> first divided transfer size”, the transfer exceeds the page boundary of the transfer destination memory 212, and therefore there is an unprocessed write transfer after the page boundary. Accordingly, in step S122, the transfer destination address and the write transfer size are updated, and the process returns to steps S118 to S121 to similarly perform the remaining write transfer. On the other hand, when it is determined that “process transfer size = first divided transfer size” and there is no more divided transfer size data, the process proceeds to step S123.

(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 transfer source memory 211, the transfer source address, transfer destination address, and transfer size are updated in step S124, and the process returns to step S102. Read and write processes are repeated until the transfer size becomes zero.

転送サイズが0となった場合、DMA転送制御装置200によるDMAのバースト転送を終了する。   When the transfer size becomes 0, DMA burst transfer by the DMA transfer control device 200 is terminated.

(実施例:読み込み転送動作)
以下、読み込み転送動作の実施例について図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 buffer 208 from the transfer source address (0x0140).

<処理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 buffer 208 as shown in FIG.

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 buffer 208 is read as shown in FIG. Next, the data is written following the first course of data.

この様に、ページ境界を超える場合の読み込み転送においてもDMA転送制御装置200が転送元メモリ211のページ境界を超えるか否かを管理することで、転送元アドレスから任意の転送サイズデータを正常に読み込みしてバッファ208に記憶することが可能となる。   As described above, even in the read transfer when the page boundary is exceeded, the DMA transfer control device 200 manages whether or not the page boundary of the transfer source memory 211 is exceeded, so that any transfer size data can be normally obtained from the transfer source address. It can be read and stored in the buffer 208.

(実施例:書き込み転送動作)
次に、書き込み転送動作について具体的に説明する。図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 buffer 208 is written and transferred to the transfer destination address 0x0580 by the data transfer of the first processing transfer size described above. The page boundary position is 0x600.

<処理1>転送先アドレスレジスタ202より転送先アドレス(0x0580)を読み出す。 <Process 1> Read the transfer destination address (0x0580) from the transfer destination address register 202.

<処理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 buffer 208 by the read transfer. In FIG. 4, since the page boundary is exceeded, the write transfer is divided into two. The first divided transfer size data is the size up to the page boundary (0x80).

<処理4>分割転送サイズ1回目のデータ(0x80)をバッファ208から転送先アドレス(0x0580)へ書き込みする。 <Process 4> The data (0x80) for the first divided transfer size is written from the buffer 208 to the transfer destination address (0x0580).

<処理5>未処理転送判定部206による未処理の分割転送が有るか否かの判定で、図4の場合、「バッファ208内に残っている処理転送サイズ>1回目の分割転送サイズ」となり、未処理の分割書き込み転送がある為、分割転送2回目に入る。 <Process 5> The determination as to whether or not there is an unprocessed divided transfer by the unprocessed transfer determination unit 206 is "Process transfer size remaining in buffer 208> First divided transfer size" in the case of FIG. Since there is an unprocessed divided write transfer, the second divided transfer is entered.

<処理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 buffer 208 to the transfer destination address (0x0600). As a result, all the data stored in the buffer 208 is written and transferred to the transfer destination address, and the first write transfer is completed.

次に、前述した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 transfer control device 200 manages whether or not the page boundary of the transfer destination memory 212 is exceeded, so that the transfer destination address can be normally written.

本発明の実施の形態に係るDMA転送制御装置の内部構成ブロック図である。It is a block diagram of an internal configuration of a DMA transfer control device according to an embodiment of the present invention. DMA転送制御の動作を示すフローチャートである。It is a flowchart which shows operation | movement of DMA transfer control. 本発明の読み込み転送時のデータ構成の説明図である。It is explanatory drawing of the data structure at the time of the read transfer of this invention. 本発明の書き込み転送時のデータ構成の説明図である。It is explanatory drawing of the data structure at the time of the write transfer of this invention.

符号の説明Explanation of symbols

100…CPU
110…レジスタ
200…DMA転送制御装置
201…転送元アドレスレジスタ
202…転送先アドレスレジスタ
203…転送サイズレジスタ
204…バッファサイズ比較判定部
205…ページ境界判定部
206…未処理転送判定部
208…バッファ
209…バスサイクル発生器
210…DMA転送制御器
211…転送元メモリ
212…転送先メモリ
100 ... CPU
DESCRIPTION OF SYMBOLS 110 ... Register 200 ... DMA transfer control device 201 ... Transfer source address register 202 ... Transfer destination address register 203 ... Transfer size register 204 ... Buffer size comparison determination unit 205 ... Page boundary determination unit 206 ... Unprocessed transfer determination unit 208 ... Buffer 209 ... bus cycle generator 210 ... DMA transfer controller 211 ... transfer source memory 212 ... transfer destination memory

Claims (1)

ページ毎に、外部制御手段の制御に基づき転送元に格納された連続データを転送先にDMA転送する為の構成を備えたDMA転送制御装置において、
前記転送元に格納された連続データの転送元開始アドレス及び前記転送先の転送先開始アドレス、並びに前記連続データのデータサイズを前記外部制御手段からそれぞれ取得して転送する為のパラメータを設定する転送パラメータ設定手段と、
前記連続データを一時記憶するバッファと、
前記転送パラメータ設定手段と前記バッファのサイズとから、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.

JP2004196617A 2004-07-02 2004-07-02 Dma transfer controller Pending JP2006018642A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (11)

* Cited by examiner, † Cited by third party
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