WO2004077304A1 - データ転送装置 - Google Patents

データ転送装置 Download PDF

Info

Publication number
WO2004077304A1
WO2004077304A1 PCT/JP2003/002270 JP0302270W WO2004077304A1 WO 2004077304 A1 WO2004077304 A1 WO 2004077304A1 JP 0302270 W JP0302270 W JP 0302270W WO 2004077304 A1 WO2004077304 A1 WO 2004077304A1
Authority
WO
WIPO (PCT)
Prior art keywords
transfer
buffer
data
channel
address
Prior art date
Application number
PCT/JP2003/002270
Other languages
English (en)
French (fr)
Inventor
Yasuhiro Yamazaki
Original Assignee
Fujitsu Limited
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 Fujitsu Limited filed Critical Fujitsu Limited
Priority to CN03822125.XA priority Critical patent/CN1682202A/zh
Priority to JP2004568756A priority patent/JPWO2004077304A1/ja
Priority to PCT/JP2003/002270 priority patent/WO2004077304A1/ja
Publication of WO2004077304A1 publication Critical patent/WO2004077304A1/ja
Priority to US11/064,097 priority patent/US20050144338A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Definitions

  • the present invention generally relates to a data transfer device, and more particularly, to a data transfer device for performing DMA transfer of data in a dual path system.
  • Direct memory access (DMA) transfer which performs direct data transfer, is an indispensable technology for achieving high system performance.
  • DMA C DMAControlUer
  • CPU DirectMemoryAccess
  • DMA C directly transfers data between slave devices without going through the CPU.
  • the address is used to specify each slave device and the position in each slave device (for example, each address in a memory device).
  • Figure 1 shows the allocation of slave devices in the address space.
  • DMA C issues a Read request to the slave device, and reads information from a specific position in the slave device specified by the address. After that, the DMAC issues a Write request and transfers the read information to another slave device. In this way, the DMA C realizes data transfer between slave devices by issuing a request for Read and Wright.
  • Figure 2 shows the data transfer operation of the double buffer system in a dual-pass system. It is a figure for explaining a work.
  • the dual bus system of FIG. 2 includes a DMAC 10, a path 11, a bus 12, a RAM 13, a ROM 14, a video display 15, and a UART (Universal Asynchronous Receiver Transmitter) 16.
  • DMA CIO is a master device
  • RAMI 3, ROM 14, video display 15, and UART 16 are slave devices.
  • the RAMI 3 and the ROM 14 are connected to the DMAC 10 via the bus 11, and the video display 15 and the UART 16 are connected to the DMAC 10 via the bus 12.
  • the DMA C 10 includes two buffers (Bufferl) 21 and a buffer (Buffer2) 22.
  • Bufferl buffer
  • Buffer2 buffer
  • FIG. 3 is a timing chart showing a DMA data transfer operation from the RAMI 3 to the video display 15.
  • DMAC 10 first sends a Read request to RAMI 3, and stores data sent from RAMI 3 as a result of the Read request in buffer 21. This Read operation is shown in FIG. 3 as RAM-> buffei. When this Read operation is completed, the DMAC 10 writes the information stored in the buffer 21 to the video display 15. This Write operation is shown as bufferl-> video in FIG.
  • another buffer (buffei'2) 22 can be used simultaneously with the buffer 21. That is, in parallel with writing from the buffer 21 to the video display 15, the next data is read from the RAMI 3 and stored in the buffer 22 (RAM-> buffer2). The data stored in the buffer 22 is written to the video display 15 in parallel with reading the data from the RAMI 3 and storing the data in the buffer 21 (bufifer2-> video).
  • the double buffer system described above has twice as much information as the single buffer system. Must be stored, which consumes a lot of chip area. In general, there are not many slave devices in the system that require high-level transfer performance that can be realized for the first time by the double buffer method. Therefore, although the double buffer method has the disadvantage of requiring a large amount of chip area, there are limited cases where the merit of high-speed data transfer can be enjoyed.
  • an object of the present invention is to provide a data transfer device that normally operates as a single buffer, operates as a double buffer system as needed, and can realize high-speed data transfer.
  • Patent Document 1
  • Patent Document 2
  • a data transfer device comprises: a first channel unit for maintaining a first buffer in a first operation mode and executing a first data transfer; and a second buffer unit in the first operation mode. And a second channel unit for performing a second data transfer different from the first data transfer by relaying the first data transfer.
  • the second operation mode at least the first buffer and the second buffer are connected to each other.
  • the data read from the transfer source and the data write to the transfer destination are sequentially selected by transferring the data to be read from the transfer source to the transfer destination via the sequentially selected buffers. It is characterized by being configured to be executed in parallel.
  • each channel when high-speed data transfer is not required, each channel operates as a separate channel in the first operation mode to realize separate data transfer. Then, when high-speed data transfer becomes necessary, the data read operation and the data write operation are executed in parallel in the second operation mode, thereby realizing double buffer data transfer. Therefore, when there is no need for high-speed data transfer, efficient data transfer is performed using multiple single-buffer channels.
  • a single channel of the double-buffer method is implemented to execute high-speed data transfer. In this way, it is possible to enjoy the advantage of the high-speed data transfer of the double buffer system while reducing the disadvantages of the double buffer system.
  • FIG. 1 is an address map showing assignment of slave devices in an address space.
  • FIG. 2 is a diagram for explaining the data transfer operation of the double buffer system in the dual bus system.
  • FIG. 3 is a timing chart showing the DMA data transfer operation from the RAM to the video display.
  • FIG. 4 is a diagram for explaining a DMA controller (data transfer device) according to the present invention.
  • FIG. 5 is a timing chart showing a double-buffer data transfer operation from the RAM to the video display.
  • FIG. 6 is a diagram for explaining an operation in which the first channel executes DMA data transfer from the RAM to the UART and the second channel executes DMA data transfer from the RAM to the video display.
  • FIG. 7 is a timing chart showing a data transfer operation using the two channels shown in FIG.
  • FIG. 8 is a diagram showing an embodiment of a configuration in which two channels operate as one channel to realize double-buffer data transfer.
  • FIG. 9 is a timing chart showing the data transfer operation of FIG.
  • FIG. 10 is a diagram showing another embodiment of a configuration in which two channels operate as one channel to realize double buffer data transfer.
  • FIG. 11 is a timing chart showing the data transfer operation of FIG.
  • FIG. 12 is a diagram for explaining another embodiment of the high-speed data transfer according to the present invention.
  • FIG. 13 is a timing chart showing a double-buffer data transfer operation from the RAM to the video display.
  • FIG. 4 is a diagram for explaining the DMA controller (data transfer device) according to this effort.
  • the DMA controller (DMAC) 30 is used in a Duanore bus system as shown in FIG. 4 includes a DMAC 30, a bus 11, a bus 12, a RAMI 3, a ROM 14, a video display 15, and a UART 16.
  • the RAMI 3 and the ROM 14 are connected to the DMAC 30 via the bus 11, and the video display 15 and the UART 16 are connected to the DMAC 30 via the bus 12.
  • a plurality of channels (channel units) 31-1 to 31-N are mounted on the DMAC 30, and one buffer is provided for each channel.
  • channel 31-1 has a buffer 32-1 and channel 31-2 has a buffer 32-2.
  • Each channel of the DMAC is provided with two registers S and D for setting addresses.
  • Register S stores the address that indicates the position in the slave device that is the transfer source
  • register D stores the address that indicates the position in the slave device that is the transfer destination.
  • both the channel 31-1 and the channel 31-2 execute the DMA data transfer from the RAMI 3 to the video display 15.
  • the channel 31-1 and the channel 31-2 virtually operate as one channel, and execute the double buffer data transfer using the two buffers 32-1 and 32-2.
  • FIG. 5 is a timing chart showing a double-buffer data transfer operation from the RAM 13 to the video display 15.
  • a read request is sent to RAMI 3 on channel 31 of the DMAC 30, and data sent from RAMI 3 as a result of the read request is buffered.
  • the R ea d operation Ru shown as RAM-> bufferl 5.
  • the channel 31-1 sends an odd read completion signal to channel 31-2, and instructs channel 31-2 to start data transfer (arrow 1 in Fig. 5). And arrow 3).
  • channel 31-1 starts the operation of writing the information stored in buffer 32-1 to video display 15 (arrow 2 in FIG. 5). This W rite operation is shown as bufferl-> video in FIG.
  • Channels 31-2 detect the assertion of the odd read completion signal and send a Read request to RAM I3.
  • the next data is read from RAM I 3 and stored in buffer 32-2 (RAM-> buffer2). This operation is performed in parallel with the operation (buflferl-> video) in which the channel 31_1 writes the information stored in the buffer 32-1 to the video display 15.
  • channel 31-2 sends an even read complete signal, instructing channel 31-1 to start data transfer (arrow in Figure 5). 4 and 7).
  • Channel 3 1-1 issues the next Read request to RAM I3 and starts the read operation upon completion of the write (arrow 6) and assertion of the even-number read completion signal (arrow 7). I do.
  • channel 31-2 is stored in buffer 32-2.
  • the written data is written to the video display 15 (buffer2-> video).
  • the two channels use their own buffers alternately to operate virtually as one channel and perform double-buffered data transfer. Thereby, high transfer performance can be realized as needed.
  • channels 3 1-1 perform DMA data transfer from RAM I 3 to UART 16 and channels 3 1-2 perform DMA data transfer from RAM I 3 to video display 15
  • FIG. 7 is a diagram for explaining an operation performed by the user.
  • FIG. 7 is a timing chart C showing the data transfer operation using the two channels shown in FIG.
  • the channel 31_1 of the DMAC 30 issues a Read request to the RAM I3.
  • the information obtained as a result of the Read request is stored in the buffer 32-1 of channel 31-1 (RAM-> CH1). After that, channel 31-1 issues a W rite request to UART 16 and writes the contents of buffer 32-1 to UART 16 (CH1-> UART). At the same time that channel 31-1 performs a write operation to UART16, channel 31-2 issues a Read request to RAM I3 and stores the read information in buffer 32-2. (RAM-> CH2). After that, the channel 31-2 writes the contents of the buffer 32-2 to the video display 15 (CH2-> Video).
  • each channel when high-speed data transfer is not required, each channel operates as a separate channel to achieve separate data transfer. Then, when high-speed data transfer becomes necessary, as described above, the two channels virtually operate as one channel to execute double-buffer data transfer. Therefore, when high-speed data transfer is not required, efficient data transfer is realized as a single-buffer multiple channel. When high-speed data transfer is required, a single double-buffer channel is used. To perform high-speed data transfer. In this way, while reducing the disadvantages of the double-buffer method, the advantages of the high-speed data transfer of the double-buffer method can be enjoyed.
  • FIG. 8 is a diagram showing an embodiment of a configuration in which two channels operate as one channel to realize double-buffer data transfer.
  • DMA C30 has multiple channels 31-1 through 31-N One buffer is provided for each channel.
  • Each channel is provided with a source register 41, a destination register 42, an address increment module 43, and an address increment module 44.
  • the transfer source register 41 stores the address of the transfer source of the data transfer performed by the channel
  • the transfer destination register 42 stores the address of the transfer destination of the data transfer performed by the channel.
  • the dress increment module 43 updates the contents of the original register 41 by +2.
  • the address increment module 44 updates the contents of the transfer destination register 42 by +2.
  • DMA C data is transferred while incrementing the transfer source address and the transfer destination address. Normally, the end address is incremented (+1) by the transfer data size read or written in one buffer transfer operation. In contrast, in the embodiment of FIG. 8, each of the two channels increments (+2) the address by twice the transfer size.
  • a double buffer operation can be realized with little modification of the address increment module without changing the configuration of the controller that controls the buffer.
  • the address increment module can also execute +1 address increment in order to support single-buffer data transfer, and is configured to be able to switch between +1 increment and +2 increment. You.
  • FIG. 9 is a timing chart showing the data transfer operation of FIG.
  • the contents of the transfer source register 41 of channel 31-1 are shown as Srcl, and the contents of the transfer destination register 42 of channel 31-1 are shown as Destl.
  • the contents of the source registers 41 on channels 31-2 are shown as Src2, and the contents of the destination registers 42 on channels 31-2 are shown as Dest2.
  • channel 3 1-1 executes the Read operation for the address (0) of Srcl (RAM-> Bufferl).
  • 2 is added to the value of Srcl, and Srcl is updated with the addition result (2).
  • Channels 3 1-2 perform a Read operation on address (1) of Src2 (RAM-> Buffer2), and respond to the completion (arrow 2), add 2 to the value of Src2, and add the result Update Src2 in (3).
  • channel 31-1 performs a write operation on the address (1000) of Destl (Bufferl-> Video).
  • Add 2 to the value of Destl and update Destl with the addition result (1002).
  • 2 is added to the value of Dest2, and Dest2 is updated with the addition result (1003).
  • FIG. 10 is a diagram showing another embodiment of a configuration in which two channels operate as one channel to realize a dubnole buffer type data transfer. At i 0,
  • the address increment module 43 updates the contents of the transfer source register 41 by +1 and updates the contents of the transfer destination register 42 by +1. That is, the address is incremented (+1) by the size of the transfer data read or written in one buffer transfer operation.
  • the channels 31-1 and 31-2 are connected to the buffer 32-1 and the buffer 32-2.
  • a double-buffer data transfer is realized by using.
  • FIG. 11 is a timing chart showing the data transfer operation of FIG.
  • channel 31-1 executes Read operation for Srcl address (0) (RAM-> Buferl). In response to the completion of this Read operation (arrow 1), 1 is added to the value of Srcl, and Srcl is updated with the addition result (1).
  • channel 31-2 executes a Read operation for address (1) of Srcl (RAM-> Buffer2).
  • channel 31-1 adds 1 to the value of Srcl and updates Srcl with the result of addition (2). This update may be performed in response to an even read completion signal from channel 31-2 to channel 31-1.
  • channel 31-1 performs a write operation on the address (1000) of Destl (Bufferl-> Video).
  • FIG. 12 is a diagram for explaining another embodiment of the high-speed data transfer according to the present invention.
  • a DMA controller (DMAC) 50 is used in a dual bus system as shown in FIG.
  • the bus system of FIG. 12 includes a DMA C 50, a bus 11, a bus 12, a RAMI 3, a video display 15, a UART 16, and a CPU 60.
  • RAMI 3 is connected to DMAC 50 via bus 11, and video display 15 and UART 16 are connected to DMAC 50 via path 12.
  • the DMAC 50 is provided with a plurality of channels 51_1 to 511-1N, and one buffer number queue is provided for each channel.
  • channel 51-1 is provided with a buffer number queue 52-1
  • channel 51-2 is provided with a buffer number queue 52-2.
  • buffers 53-1 to 53-1N are provided.
  • valid flags 54-1 to 54-N are provided, and the corresponding knockers 53-1 to 53-N indicate whether or not the available power is available.
  • FIG. 13 is a timing chart showing a high-speed data transfer operation from the RAM 13 to the video display 15.
  • channel 51-1 checks the valid flags 54-1 to 54-N to find an empty buffer, and stores the buffer number (Bufferl) in the buffer number queue.
  • 1 5 2 Store in 1.
  • the data read from the RAM I 3 is stored in the buffer (the buffer with the last number in the queue) (RAM-> Bufferl).
  • check the channel 5 1—1 force valid flags 5 4 _ 1 to 5 4—N to find an empty buffer, and store the buffer number (Buffer 2) in the buffer number queue 52 1 I do.
  • the next data read from RAM I3 is stored in the buffer (the buffer with the last number in the queue) (RAM-> Buffer2).
  • the channel 5 1-1 When a write request comes from the video display 15, the channel 5 1-1 performs writing to the video display 15. At this time, data is sent to the video display 15 from the buffer indicated by the number (head number of the queue) output from the buffer number queue 5 2-1 (Bufferl-> Video). As shown in FIG. 13, the channel 51-1 can execute the data reading from the RAM I3 and the data writing to the video display 15 in parallel. In the example of FIG. 13, the channel 51-1 uses Buffer1, Buffer2, and Buffers in that order, then uses Buffer1 again, then uses Buffer2, and then uses Buffer1 again. In the data transfer according to the present embodiment, a valid flag is checked and a buffer that can be used at any time is specified, so that the buffer to be used changes according to the situation.
  • Each channel may acquire its own buffer and execute various data transfer operations.
  • a plurality of buffers are comprehensively managed, and each channel acquires and uses the buffers as needed.
  • buffer control is more complicated than the methods in Figs. 8 and 10, but if two buffers are available, the same effect as double buffer data transfer can be obtained. it can.
  • the configuration of this embodiment has a problem that if a certain channel secures all the buffers, the Read transfer of another channel cannot be performed. In general, there are many restrictions that the operation from the transfer request to the data reception must be performed within a predetermined time.To solve the above problem, control is performed so that one buffer corresponds to each channel after all. Is an easy solution. In this case, the operation is essentially the same as the operation in FIG. 4 and FIG.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

本発明は、通常はシングルバッファとして動作し、必要に応じてダブルバッファ方式として動作し高速データ転送を実現可能なデータ転送装置を提供することを目的とする。データ転送装置は、第1の動作モードにおいて第1のバッファを中継して第1のデータ転送を実行する第1のチャネルユニットと、第1の動作モードにおいて第2のバッファを中継して第1のデータ転送とは異なる第2のデータ転送を実行する第2のチャネルユニットを含み、第2の動作モードにおいて少なくとも第1のバッファと第2のバッファを含む複数のバッファを順次選択し、転送元から読み出すデータを順次選択したバッファを中継して転送先に転送することで、転送元からのデータ読み出しと転送先へのデータ書き込みを並行して実行するよう構成される。

Description

データ転送装置 技術分野
本発明は、 一般にデータ転送装置に関し、 詳しくはデュアルパスシステムにお いてデータを DMA転送するデータ転送装置に関する。 明
背景技術
コンピュータシステムにおいては、 C P Uを介さずに 2つのデパイス間のデー 書
タ転送を直接に実行する DMA (Direct Memory Access) 転送が、高いシステム 性能を達成するために必要不可欠な技術である。
一般にコンピュータシステムは、 複数のデバイスとそれらを接続するバスから 構成される。 バスに接続されたデパイスは、 R e a dや W r i t eの要求を出力 するマスターと呼ばれるデバイスと、 マスターが出した要求を受け取るスレーブ と呼ばれるデバイスとに分けることができる。 DMA (DirectMemoryAccess) 転送を制御する DMA C (DMAControUer) や C P Uは、 要求を出す側のマス ターデバイスである。
DMA Cは、 C P Uを介することなくスレープデバイス間のデータ転送を直接 に行なう。 パスシステムにおいては、 アドレスを用いることで、 各スレーブデバ イスを特定すると共に各スレーブデバイス内の位置 (例えばメモリデバイス内の 各アドレス) を特定する。 図 1は、 アドレス空間におけるスレーブデバイスの割
Figure imgf000003_0001
DMA Cは、 スレーブデバイスに対して R e a d要求を出し、 Ύドレスにより 指定されるスレーブデバイス内の特定の位置から情報を読み出す。 その後 DM A Cは、 W r i t e要求を出し、 読み出した情報を別のスレーブデバイスへ転送す る。 このようにして、 DMA Cは R e a dと W r i t eの要求を出すことによつ て、 スレーブデバイス間のデータ転送を実現する。
図 2は、 デュアルパスのシステムにおけるダブルパッファ方式のデータ転送動 作を説明するための図である。
図 2のデュアルバスシステムは、 DMAC10、 パス 11、 バス 12、 RAM 13、 ROM14、ビデオディスプレイ 15、 UART (Universal Asynchronous Receiver Transmitter) 16を含む。 DMA CI Oがマスターデバイスであり、 RAMI 3, ROM14、 ビデオディスプレイ 15、 及び UART 16がスレー ブデバイスである。 RAMI 3及び ROM 14はバス 11を介して DMA C 10 に接続され、 ビデオディスプレイ 15及び U ART 16はバス 12を介して DM AC 10に接続される。
DMA C 10は、 2つのバッファ (Bufferl) 21及ぴパッファ (Buffer2) 2 2を含む。 例として、 RAMI 3からビデオディスプレイ 15への DMAデータ 転送動作について以下に説明する。 図 3は、 RAMI 3からビデオディスプレイ 15への DM Aデータ転送動作を示すタイミング図である。
DMAC10は、 まず RAMI 3へ R e a d要求を送出し、 Re a d要求の結 果として RAMI 3から送られてきたデータをバッファ 21へ格納する。 この R e a d動作は、 図 3において RAM->buffei として示される。 この R e a d動作 が完了すると、 DMAC 10はバッファ 21に格納された情報をビデオディスプ レイ 15へ書き込む。 この Wr i t e動作は、 図 3において bufferl->videoとし て示さ;τる。
図 2の構成はダブルバッファ方式であるので、 もう 1つのバッファ (buffei'2) 22をバッファ 21と同時に使用することができる。 即ちバッファ 21からビデ ォディスプレイ 15への書き込みと平行して、 RAMI 3から次のデータを読み 出してバッファ 22に格納する (RAM->buffer2) 。 バッファ 22に格納された データは、 RAMI 3からデータを読み出してバッファ 21に格納するのと並行 して、 ビデオディスプレイ 15に書き込まれる (bufifer2->video) 。
このように、 デュアルバスシステムにおけるダブノレパッファ方式のデータ転送 においては、 2つのバスと 2つのバッファを利用することにより、 1つのバッフ ァを利用するシングルパッファの場合と比較して、 スレープデバイス間の転送速 度を 2倍にすることができる。
上述のダブルパッファ方式では、 シングルバッファ方式と比較して 2倍の情報 を記憶しておく必要があり、 多くのチップ面積を消費することになる。 また一般 にシステム内に存在するスレーブデバイスのうち、 ダブルバッファ方式により初 めて実現可能な程の高レヽ転送性能を必要とするデパイスはそれほど多くはな 、。 従ってダブルバッファ方式には、 多くのチップ面積を必要とするというデメリッ トが存在する割には、 データ転送の高速性というメリットを享受することができ る場合が限られている。
以上を鑑みて、 本発明は、 通常はシングルバッファとして動作し、 必要に応じ てダブレバッファ方式として動作し高速データ転送を実現可能なデータ転送装置 を提供することを目的とする。
特許文献 1
特開平 1 _ 2 2 9 3 5 3
特許文献 2
特開昭 6 4 - 7 8 3 5 発明の開示
本発明によるデータ転送装置は、 第 1の動作モードにおいて第 1のバッファを 中維して第 1のデータ転送を実行する第 1のチャネルュニットと、 該第 1の動作 モードにおいて第 2のバッファを中継して該第 1のデータ転送とは異なる第 2の データ転送を実行する第 2のチャネルュニットを含み、 第 2の動作モードにおい て少なくとも該第 1のバッファと該第 2のバッファを含む複数のバッファを順次 選択し、 転送元から読み出すデータを該順次選択したバッファを中継して転送先 に転送することで、 該転送元からのデータ読み出しと該転送先へのデータ書き込 みを並行して実行するよう構成されることを特徴とする。
上記データ転送装置では、 高速データ転送が必要とされない場合には、 第 1の 動作モードにおいて各チャネルが別個のチャネルとして動作して別々のデータ転 送を実現する。 そして高速データ転送が必要となった場合には、 第 2の動作モー ドにおいてデータ読み出し動作とデータ書き込み動作とを並行して実行し、 ダブ ルバッファ方式データ転送を実現する。 従って、 高速データ転送の必要がない場 合には、 シングルバッファ方式の複数のチャネルとして効率的なデータ転送を実 現し、 高速データ転送が必要な場合には、 ダブルバッファ方式の単一のチャネル を実現して高速なデータ転送を実行する。 このようにして、 ダブルバッファ方式 のデメリットを低減しながらも、 ダブルバッファ方式のデータ転送の高速性とい うメリットを享受することができる。 図面の簡単な説明
図 1は、 ァドレス空間におけるスレーブデバイスの割り当てを示すァドレスマ ップである。
図 2は、 デュアルバスシステムにおけるダブルバッファ方式のデータ転送動作 を説明するための図である。
図 3は、 RAMからビデオディスプレイへの DMAデータ転送動作を示すタイ ミング図である。
図 4は、 本発明による DMAコントローラ (データ転送装置) を説明するため の図である。
図 5は、 RAMからビデオディスプレイへのダブルバッファ方式データ転送動 作を示すタイミング図である。
図 6は、第 1のチャネルが RAMから UAR Tへの DMAデータ転送を実行し、 第 2のチャネルが RAMからビデオディスプレイへの DMAデータ転送を実行す る動作を説明するための図である。
図 7は、 図 6に示す 2つのチャネルによるデータ転送動作を示すタイミング図 である。
図 8は、 2つのチャネルが 1つのチャネルとして動作してダブルバッファ方式 データ転送を実現する構成の実施例を示す図である。
図 9は、 図 8のデータ転送動作を示すタイミング図である。
図 1 0は、 2つのチャネルが 1つのチャネルとして動作してダブルバッファ方 式データ転送を実現する構成の別の実施例を示す図である。
図 1 1は、 図 8のデータ転送動作を示すタイミング図である。
図 1 2は、 本発明による高速データ転送の別の実施例について説明する図であ る。 図 13は、 RAMからビデオディスプレイへのダブルバッファ方式データ転送 動作を示すタイミング図である。 発明を実施するための最良の形態
以下に、 本発明の実施例を添付の図面を用いて詳細に説明する。
図 4は、 本努明による DMAコントローラ (データ転送装置) を説明するため の図である。
本発明による DMAコントローラ (DMAC) 30は、 図 4に示されるように デュアノレバスシステムにおいて使用される。 図 4のバスシステムは、 DM AC 3 0、 バス 11、 バス 12、 RAMI 3、 ROM14、 ビデオディスプレイ 15、 及ぴ UART16を含む。 RAMI 3及び ROM 14はバス 11を介して DMA C 30に接続され、 ビデオディスプレイ 15及ぴ U ART 16はバス 12を介し て DM AC 30に接続される。
DMAC 30には、 複数のチャネル (チャネルユニット) 31-1乃至 31— Nが実装され、 チャネル毎にバッファが 1つ設けられる。 例えば、 チャネル 31 - 1にはバッファ 32— 1が設けられ、 チャネル 31—2にはバッファ 32-2 が設けられる。 DMACの各チャネルには、 ァドレスを設定するための 2つのレ ジスタ S及びレジスタ Dが設けられる。 レジスタ Sが転送元であるスレーブデバ ィス内の位置を示すァドレスを格納し、 レジスタ Dが転送先のスレーブデバイス 内の位置を示すァドレスを格納する。
図 4の例では、 チャネル 31— 1及ぴチャネル 31—2の双方が、 RAMI 3 からビデオディスプレイ 15への DMAデータ転送を実行する。 これによりチヤ ネル 31-1及ぴチャネル 31-2が仮想的に 1つのチャネルとして動作し、 2 つのバッファ 32-1及び 32-2を利用したダブルバッファ方式データ転送を 実行する。
図 5は、 R AM 13からビデオデイスプレイ 15へのダブルバッファ方式デー タ転送動作を示すタイミング図である。
まず DMAC 30のチャネル 31—1力 RAMI 3へ Re a d要求を送出し、 Re a d要求の結果として RAMI 3から送られてきたデータをバッファ 32— 1へ格納する。 この R e a d動作は、 図 5において RAM->bufferlとして示され る。 R e a d転送が完了したところで、 チヤネノレ 3 1— 1カ らチャネル 3 1—2 に奇数読み出し完了信号を送出し、 チャネル 3 1 - 2にデータ転送を開始するよ う指示する (図 5の矢印 1及び矢印 3 ) 。 これと同時に、 チャネル 3 1— 1はパ ッファ 3 2— 1に格納された情報をビデオディスプレイ 1 5へ書き込む動作を開 始する (図 5の矢印 2 ) 。 この W r i t e動作は、 図 5において bufferl->video として示される。
チャネル 3 1—2は、 奇数読み出し完了信号のアサートを検知し、 RAM I 3 へ R e a d要求を送出する。 これにより、 RAM I 3から次のデータを読み出し てバッファ 3 2— 2に格納する (RAM->buffer2) 。 この動作は、 チャネル 3 1 _ 1がバッファ 3 2 - 1に格納された情報をビデオディスプレイ 1 5へ書き込む 動作 (buflferl->video) と並行して実行される。 R AM I 3からバッファ 3 2— 2への転送が完了すると、 チャネル 3 1 - 2は偶数読み出し完了信号を送出し、 チャネル 3 1—1にデータ転送を開始するよう指示する (図 5の矢印 4及ぴ 7 )。 チャネル 3 1—1は、 書き込みの完了 (矢印 6 ) と偶数読み出し完了信号のアサ ート (矢印 7 ) とを契機として、 RAM I 3に対して次の R e a d要求を出して 読み出し動作を開始する。
チャネル 3 1—1が RAM I 3からデータを読み出してバッファ 3 2— 1に格 納する (RAM->Bufferl) のと並行して、 チャネル 3 1— 2は、 バッファ 3 2— 2に格納されたデータをビデオディスプレイ 1 5に書き込む (buffer2->video)。 このようにして 2つのチャネルは、 交互に自らのバッファを使用することで、 仮想的に 1つのチャネルとして動作してダブルバッファ方式データ転送を実行す る。 これにより必要に応じて高い転送性能を実現することができる。
また何れのチャネルによる転送をバスへ送出するかを決める優先順位制御に、 ラウンドロビンや回転優先順位を使用している場合、 2つのチャネルを 1チヤネ ルとして利用する上記データ転送は、 他のチャネルによるデータ転送よりも 2倍 多くの優先権を得ることができる。 従って、 高い転送レートを確保しなければな らないスレーブデバイスについてデータ転送する場合に、 確実に 2倍の転送レー トを実現することができるという利点がある。 図 4に示す DMA C 3 0においては、 必要に応じて 2つのチャネルが仮想的に 1つのチャネルとして動作してダブルバッファ方式データ転送を実行する。 高速 データ転送が必要とされない場合には、 各チャネルは、 それぞれが別個のチヤネ ルとして別々のデータ転送動作を実行する。
図 6は、 チャネル 3 1— 1が RAM I 3から UAR T 1 6への DMAデータ転 送を実行し、 チャネル 3 1一 2が RAM I 3からビデオディスプレイ 1 5への D MAデータ転送を実行する動作を説明するための図である。
図 7は、 図 6に示す 2つのチャネルによるデータ転送動作を示すタイミング図 C、あ o。
まず DMAC 3 0のチャネル 3 1 _ 1は、 RAM I 3へ R e a d要求を出す。
R e a d要求の結果、 得られた情報をチャネル 3 1— 1のバッファ 3 2— 1へ格 納する (RAM->CH1)。 その後チャネル 3 1— 1は、 UAR T 1 6へ W r i t e 要求を出し、バッファ 3 2—1の内容を UA R T 1 6に書き込む (CH1->UART)。 チャネル 3 1—1が UAR T 1 6へ書き込み動作を行なうのと並行して、 チヤ ネル 3 1— 2が RAM I 3へ R e a d要求を出し、 読み出した情報をバッファ 3 2— 2へ格納する (RAM->CH2) 。 その後、 チャネル 3 1— 2は、 ビデオデイス プレイ 1 5へバッファ 3 2— 2の内容を書き込む (CH2->Video) 。
このように、 高速データ転送が必要とされない場合には、 各チャネルが別個の チャネルとして動作して別々のデータ転送を実現する。 そして高速データ転送が 必要となった場合には、 前述のように、 2つのチャネルが仮想的に 1つのチヤネ ルとして動作して、 ダブルバッファ方式データ転送を実行する。 従って、 高速デ ータ転送の必要がない場合には、 シングルバッファ方式の複数のチャネルとして 効率的なデータ転送を実現し、 高速データ転送が必要な場合には、 ダブルバッフ ァ ^の単一のチャネルを実現して高速なデータ転送を実行する。 このようにし て、 ダブルバッファ方式のデメリットを低減しながらも、 ダブルバッファ方式の データ転送の高速性というメリットを享受することができる。
図 8は、 2つのチャネルが 1つのチャネルとして動作してダブルバッファ方式 データ転送を実現する構成の実施例を示す図である。
図 8において DMA C 3 0には、 複数のチャネル 3 1— 1乃至 3 1—Nが実装 され、 チャネル毎にバッファが 1つ設けられる。 また各チャネルには、 転送元レ ジスタ 4 1、 転送先レジスタ 4 2、 アドレスインクリメントモジュール 4 3、 及 びアドレスインクリメントモジュール 4 4が設けられる。 転送元レジスタ 4 1は 当該チャネルが実行するデータ転送の転送元のァドレスを格納し、 転送先レジス タ 4 2は当該チャネルが実行するデータ転送の転送先のァドレスを格納する。 了 ドレスインクリメントモジュール 4 3は、 元レジスタ 4 1の内容を + 2して 更新する。 またアドレスインクリメントモジュール 4 4は、 転送先レジスタ 4 2 の内容を + 2して更新する。
DMA Cにおいては、 転送元ァドレス及ぴ転送先ァドレスをインクリメントし ながらデータの転送を行なう。 通常は、 1回のバッファ転送動作で読み出し又は 書き込みされる転送データサイズの分だけ、 了ドレスをインクリメント (+ 1 ) する。 それに対して図 8の実施例では、 2つのチャネルがそれぞれ転送サイズの 2倍づっアドレスをインクリメント (+ 2 ) する。
この実施例の構成では、 バッファを制御するコントローラの構成を殆ど変える ことなく、 ァドレスィンクリメントモジュールを少し改造するだけで、 ダブルバ ッファ動作を実現することができる。なおァドレスィンクリメントモジュールは、 シングルバッファ方式のデータ転送にも対応するために + 1のァドレスィンクリ メントも実行可能であり、 + 1のインクリメントと + 2のインクリメントとを切 り換えられるように構成される。
図 9は、 図 8のデータ転送動作を示すタイミング図である。
なおチャネル 3 1 - 1の転送元レジスタ 4 1の内容は Srcl として示し、 チヤ ネル 3 1—1の転送先レジスタ 4 2の内容は Destlとして示す。チャネル 3 1一 2の転送元レジスタ 4 1の内容は Src2 として示し、 チャネル 3 1—2の転送先 レジスタ 4 2の内容は Dest2として示す。
図 9において、 読み出し及ぴ書き込み動作についてのデータの流れは図 5と同 一である。 以下においては、 読み出し及び書き込み動作とアドレス生成とを関連 付けて説明する。 まずチャネル 3 1— 1が Srcl のアドレス (0 ) に対して R e a d動作を実行する (RAM->Bufferl)。 この R e a d動作の完了に応答して(矢 印 1 ) 、 Srclの値に 2を加算して加算結果 ( 2 ) で Srclを更新する。 同様に、 チャネル 3 1— 2が Src2 のア ドレス (1) に対して R e a d動作を行い (RAM->Buffer2) 、 その完了に応答して (矢印 2) 、 Src2の値に 2を加算して 加算結果 (3) で Src2を更新する。
チャネル 31—2の Re a d動作と並行して、チャネル 31— 1は Destlのァ ドレス (1000) に対して Wr i t e動作を行う (Bufferl->Video) 。 チヤネ ル 31—1の Wr i t e動作の完了に応答して (矢印 3) 、 Destlの値に 2を加 算して加算結果 (1002) で Destlを更新する。 同様に、 チャネル 31— 2の Wr i t e動作 (Buffer2->Video) の完了に応答して (矢印 4) 、 Dest2の値に 2を加算し加算結果 (1003) で Dest2を更新する。
図 10は、 2つのチャネルが 1つのチャネルとして動作してダブノレバッファ方 式データ転送を実現する構成の別の実施例を示す図である。 i 0において、 図
8と同一の構成要素は同一の番号で参照し、 その説明は省略する。
図 10の実施例では、 チャネル 31-1のみがァドレスを出力するよう構成さ れる。 従って、 アドレスインクリメントモジュール 43は転送元レジスタ 41の 内容を + 1して更新し、 了ドレスィンクリメントモジュール 44は転送先レジス タ 42の内容を +1して更新する。 即ち、 1回のバッファ転送動作で読み出し又 は書き込みされる転送データサイズの分だけ、アドレスをインクリメント(+ 1) する。
このようにしてチャネル 31-1の転送元レジスタ 41及び転送先レジスタ 4 2のみを用いてアドレス指定しながら、 チャネル 31一 1及ぴチャネル 31-2 が、 バッファ 32-1とバッファ 32— 2とを用いてダブルバッファ方式のデー タ転送を実現する。 この実施例では、 チャネル 31— 1が双方のバッファを制御 可能なように DMAC 30を構成する必要があるが、 ァドレスィンクリメントモ ジユーノレには +2のインクリメントの構成を設ける必要がない。
図 11は、 図 8のデータ転送動作を示すタイミング図である。
まずチャネル 31—1が Srcl のアドレス (0) に対して Re a d動作を実行 する (RAM->Buferl) 。 この R e a d動作の完了に応答して (矢印 1 ) 、 Srcl の値に 1を加算して加算結果 (1) で Srcl を更新する。 次にチャネル 31-2 が Srclのアドレス (1) に対して Re a d動作を実行する (RAM->Buffer2) 。 その完了に応答して (矢印 2) 、 チャネル 31— 1が Srclの値に 1を加算して 加算結果 (2) で Srclを更新する。 この更新は、 チャネル 31—2からチヤネ ル 31— 1への偶数読み出し完了信号に応答して実行するようにすればよレ、。 チャネル 31—2の Re a d動作と並行して、チャネル 31— 1は Destlのァ ドレス (1000) に対して Wr i t e動作を行う (Bufferl-> Video) 。 チヤネ ル 31— 1の Wr i t e動作の完了に応答して (矢印 3) 、 Destlの値に 1を加 算して加算結果 (1001) で Destlを更新する。 次にチャネル 31 _ 2の Wr i t e動作 (Buffer2->Video) が完了すると、 これに応答して、 チャネル 31— 2からチャネル 31 - 1へ偶数書き込み完了信号を供給する。 この偶数書き込み 完了信号のアサ一トに応答して (矢印 4) 、 チャネル 31—1が Destlの値に 1 を加算し加算結果 (1002) で Destlを更新する。
図 12は、 本発明による高速データ転送の別の実施例について説明する図であ る。
本発明による DMAコントローラ (DMAC) 50は、 図 12に示されるよう にデュアルバスシステムにおいて使用される。 図 12のバスシステムは、 DMA C 50、 バス 11、 バス 12、 RAMI 3、 ビデオディスプレイ 15、 UART 16、 及び CPU60を含む。 RAMI 3はバス 11を介して DMAC50に接 続され、 ビデオディスプレイ 15及び U ART 16はパス 12を介して DMAC 50に接続さ; ^る。
DMAC 50には、 複数のチャネル 51 _ 1乃至 51一 Nが実装され、 チヤネ ル毎にバッファ番号キューが 1つ設けられる。 例えば、 チャネル 51— 1にはバ ッファ番号キュー 52—1が設けられ、 チャネル 51— 2にはバッファ番号キュ 一 52— 2が設けられる。 また各チャネルとは別に、 バッファ 53— 1乃至 53 一 Nが設けられる。 また有効フラグ 54—1乃至 54— Nが設けられ、 対応する ノ ッファ 53— 1乃至 53— Nが利用可能力否かを示す。
図 13は、 RAM 13からビデオディスプレイ 15への高速データ転送動作を 示すタイミング図である。
まずチャネル 51— 1が、 有効フラグ 54— 1乃至 54— Nをチェックして空 いているバッファを見つけ、そのバッファの番号(Bufferl) をバッファ番号キュ 一 5 2— 1へ格納する。 更に、 RAM I 3から読み出したデータを当該バッファ (キュー最後尾の番号のバッファ) へ格納する (RAM->Bufferl) 。 続いて同様 に、 チャネル 5 1— 1力 有効フラグ 5 4 _ 1乃至 5 4— Nをチェックして空い ているバッファを見つけ、そのバッファの番号 (Buffer2) をバッファ番号キュー 5 2—1へ格納する。 更に、 RAM I 3から読み出した次のデータを当該パッフ ァ (キュー最後尾の番号のバッファ) へ格納する (RAM->Buffer2) 。
ビデオディスプレイ 1 5から書き込み要求が到来すると、チャネル 5 1— 1は、 ビデオディスプレイ 1 5に対する書き込みを行う。 この時、 バッファ番号キュー 5 2— 1から出力される番号 (キューの先頭の番号) が指し示すバッファから、 ビデオディスプレイ 1 5にデータを送出する (Bufferl->Video) 。 なお図 1 3に 示されるように、 チャネル 5 1—1は、 RAM I 3からのデータ読み出しと、 ビ デォディスプレイ 1 5へのデータ書き込みとを並行して実行することができる。 図 1 3の例において、チャネル 5 1— 1は、バッファとして Bufferl、 Buffer2、 Buffersを順に使用した後、 Bufferlを再度使用し、その後 Buffer2を使用してか ら更に Bufferlを再度使用している。 本実施例におけるデータ転送においては、 有効フラグをチェックして随時利用可能なバッファを特定するので、 状況に応じ て使用するバッファが変化していくことになる。
また各チャネルは、 独自にパッファを獲得して、别々のデータ転送動作を実行 してよい。
上記の実施例では、 複数のバッファを包括的に管理し、 必要に応じて各チヤネ ルがバッファを獲得して使用する。 この方法では、 バッファ制御が図 8や図 1 0 の方式に比較して複雑になるが、 2つのバッファが利用可能な状況であれば、 ダ ブルパッファ方式のデータ転送と同様の効果を得ることができる。
また利用可能であれば 2つ以上のバッファを使用することが可能である。 従つ て、 データ転送途中で他のマスターのアクセス等により邪魔されて転送元から D MAC 5 0への転送が中断されても、 複数のバッファに格納されるデータを転送 先に送出し続けることが可能である。 即ち、 図 1 3に示されるように、 例えば。
P U 6 0による R AM I 3へのアクセス (RAM->CPU) が複数回実行され、 R AM I 3から DMA C 5 0への転送が度々滞った場合でも、 ビデオディスプレイ 1 5へのデータ転送が滞る可能性を低減することができる。
この実施例の構成は、 あるチャネルが全てのバッファを確保してしまうと、 別 のチャネルの R e a d転送が行なえないという問題がある。 一般に、 転送要求か らデータ受け取りまでの動作は所定時間内に実行すべきという制約がある場合が 多く、 上記問題を解決するためには結局各チャネル毎に 1つのバッファが対応す るように制御することが簡単な解決策である。 この場合には、 上記図 4及び図 6 の動作と本質的に同様となる。
以上、 本発明を実施例に基づいて説明した力 本発明は上記実施例に限定され るものではなく、 特許請求の範囲に記載の範囲内で様々な変形が可能である。

Claims

請 求 の 範 囲
1 . 第 1の動作モードにおいて第 1のバッファを中継して第 1のデータ転送を実 行する第 1のチャネルュニットと、
該第 1の動作モードにおいて第 2のバッファを中継して該第 1のデータ転送と は異なる第 2のデータ転送を実行する第 2のチャネルュニット
を含み、 第 2の動作モードにおレ、て少なくとも該第 1のバッファと該第 2のパッ ファを含む複数のパッファを順次選択し、 転送元から読み出すデータを該順次選 択したバッファを中継して転送先に転送することで、 該転送元からのデータ読み 出しと該転送先へのデータ書き込みを並行して実行するよう構成されることを特 徴とするデータ転送装置。
2. 該第 2の動作モードにぉレヽて該第 1のパッファと該第 2のバッファを交互に 選択し、 該転送元から読み出すデータを該交互に選択したバッファを中継して該 転送先に転送することで、 該第 1のバッファへの該転送元からのデータ読み出し 動作と該第 2のパッファからの該転送先へのデータ書き込み動作とを並行して実 行すると共に、 該第 2のバッファへの該転送元からのデータ読み出し動作と該第 1のバッファからの該転送先へのデータ書き込み動作とを並行して実行するよう 構成されることを特徴とする請求項 1記載のデータ転送装置。
3 · 該第 2の動作モードにおいて該第 1のチャネルと該第 2のチャネルとが共同 動作することにより単一のチャネルとしてデータ転送することを特徴とする請求 項 2記載のデータ転送装置。
4. 該第 2の動作モードにおいて該第 1のチャネルと該第 2のチャネルは、 該転 送元からのデータ読み出し動作が完了すると相手側に読み出し動作完了を通知す ることを特徴とする請求項 3記載のデータ転送装置。
5 . 該第 1のチャネルュニットと該第 2のチャネルュニットの各々は、 該転送元のアクセス位置を示すァドレスを格納する転送元レジスタと、 該転送先のアクセス位置を示すァドレスを格納する転送先レジスタと、 該転送元レジスタに格納されるァドレスをィンクリメントする第 1のァドレス インクリメントモジュールと、
該転送先レジスタに格納されるアドレスをインクリメントする第 2のァドレス インクリメントモジユーノレ
を含み、
該第 2の動作モードにおいて、 該第 1のァドレスィンクリメントモジュールは該 転送元のアクセス位置を 1つおきにアクセスするようにァドレスをインクリメン トし、 該第 2のアドレスインクリメントモジュールは該転送先のアクセス位置を 1つおきにァクセスするようにアドレスをインクリメントし、 該第 1のチャネル ュニットの該転送元レジスタ及び該転送先レジスタと該第 2のチャネルュニット の該転送元レジスタ及ぴ該転送先レジスタとが互 、違いにァクセス位置を指定す ることを特徴とする請求項 4記載のデータ転送装置。
6 . 該第 1のチャネルュニットと該第 2のチャネルュニットの各々は、
該転送元のアクセス位置を示すァドレスを格納する転送元レジスタと、 該転送先のアクセス位置を示すァドレスを格納する転送先レジスタと、 該転送元レジスタに格納されるアドレスをインクリメントする第 1のァドレス インクリメントモジュールと、
該転送先レジスタに格納されるアドレスをインクリメントする第 2のアドレス インクリメントモジュール
を含み、
該第 2の動作モードにおいて、 該第 1のチャネルの該第 1のァドレスィンクリメ ントモジュールは該転送元のアクセス位置を順番に 1つずつアクセスするように アドレスをインクリメントし、 該第 1のチャネルの該第 2のァドレスィンクリメ ントモジュールは該転送先のアクセス位置を順番に 1つずつアクセスするように アドレスをインクリメントし、 該第 1のチャネルュニットの該転送元レジスタ及 び該転送先レジスタによりアクセス位置を指定してデータ転送することを特徴と する請求項 4記載のデータ転送装置。
7. 該第 2のチャネルュニットは、 該転送先へのデータ書き込み動作が完了する と該第 1のチャネルュニットに書き込み動作完了を通知することを特徴とする請 求項 6記載のデータ転送装置。
8 . 該第 1のチャネルュニットはバッファを特定する情報を順番に格納する第 1 のキューを含み、 該第 2のチャネルュニットはバッファを特定する情報を順番に 格納する第 2のキューを含み、 該第 2の動作モードにおいて、 該第 1のチャネル ュ-ットは、 該複数のバッファのうちで利用可能なパッファを順次選択し、 該選 択されたバッファを特定する情報を該第 1のキューに順番に格納し、 該第 1のキ ュ一の最後尾の情報が指定するバッファへの該転送元からのデータ読み出しと該 キューの先頭の情報が指定するバッファから該転送先へのデータ書き込みとを並 行して実行することを特徴とする請求項 1記載のデータ転送装置。
9 . 第 1のチャネルユニットと、
第 2のチャネルュニット
を含み、 該第 1のチャネルュニットは、
第 1のバッファと、
転送元のアクセス位置を示す第 1の転送元レジスタと、
転送先のアクセス位置を示す第 1の転送先レジスタ
を含み該第 1のバッファを中継して該第 1の転送元レジスタの示す転送元から該 第 1の転送先レジスタの示す転送先にデータ転送するよう構成され、 該第 2のチ ャネルュニットは、
第 2のバッファと、
転送元のアクセス位置を示す第 2の転送元レジスタと、
転送先のァクセス位置を示す第 2の転送先レジスタ
を含み該第 2のバッファを中継して該第 2の転送元レジスタの示す転送元から該 第 2の転送先レジスタの示す転送先にデータ転送するよう構成され、 該第 1のチ ャネルュニットと該第 2のチャネルュニットとが協調動作することで該第 1のバ ッファへの一の転送元からのデータ読み出し動作と該第 2のパッファからの一の 転送先へのデータ書き込み動作とを並行して実行すると共に、 該第 2のバッファ への該一の転送元からのデータ読み出し動作と該第 1のバッファ力らの該一の転 送先へのデータ書き込み動作とを並行して実行するよう構成されることを特徴と するデータ転送装置。
1 0. 複数のバッファと、
バッファを特定する情報を順番に格納する第 1のキューを含む第 1のチャネル ユニットと、
バッファを特定する情報を順番に格納する第 2のキューを含む第 2のチャネル ュニットと、
を含み、 該第 1のチャネルユエットは、 該複数のパッファのうちで利用可能なバ ッファを順次選択し、 該選択されたバッファを特定する情報を該第 1のキューに 順番に格納し、 該キューの最後尾の情報が指定するバッファへの転送元からのデ ータ読み出しと該キューの先頭の情報が指定するバッファから転送先へのデータ 書き込みとを並行して実行することを特徴とするデータ転送装置。
PCT/JP2003/002270 2003-02-27 2003-02-27 データ転送装置 WO2004077304A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN03822125.XA CN1682202A (zh) 2003-02-27 2003-02-27 数据传送装置
JP2004568756A JPWO2004077304A1 (ja) 2003-02-27 2003-02-27 データ転送装置
PCT/JP2003/002270 WO2004077304A1 (ja) 2003-02-27 2003-02-27 データ転送装置
US11/064,097 US20050144338A1 (en) 2003-02-27 2005-02-24 Data transfer apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2003/002270 WO2004077304A1 (ja) 2003-02-27 2003-02-27 データ転送装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US11/064,097 Continuation US20050144338A1 (en) 2003-02-27 2005-02-24 Data transfer apparatus

Publications (1)

Publication Number Publication Date
WO2004077304A1 true WO2004077304A1 (ja) 2004-09-10

Family

ID=32923110

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2003/002270 WO2004077304A1 (ja) 2003-02-27 2003-02-27 データ転送装置

Country Status (4)

Country Link
US (1) US20050144338A1 (ja)
JP (1) JPWO2004077304A1 (ja)
CN (1) CN1682202A (ja)
WO (1) WO2004077304A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100449519C (zh) * 2005-03-23 2009-01-07 精工爱普生株式会社 数据传输控制装置及电子设备
JP2010039140A (ja) * 2008-08-04 2010-02-18 Toshiba Corp 携帯端末
US11556104B2 (en) * 2011-09-21 2023-01-17 Hitachi Astemo, Ltd. Electronic control unit for vehicle and method of executing program

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102006004191B4 (de) * 2006-01-27 2007-12-20 Airbus Deutschland Gmbh Deterministisches Kommunikations-System
US8843675B2 (en) * 2007-03-15 2014-09-23 Broadcom Corporation Pipelined buffer interconnect
CN101441610B (zh) * 2007-11-21 2010-09-01 中兴通讯股份有限公司 一种实现数据并串转换无缝输出的***及方法
CN103593148B (zh) * 2013-11-08 2017-10-27 大唐移动通信设备有限公司 一种cdf侧离线话单数据快速存取的方法及装置
WO2021124917A1 (ja) * 2019-12-18 2021-06-24 ソニーグループ株式会社 情報処理システム、情報処理方法、及び、情報処理装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05250306A (ja) * 1992-03-05 1993-09-28 Fujitsu Ltd Dmaコントローラ
JPH1063607A (ja) * 1996-08-14 1998-03-06 Oki Electric Ind Co Ltd Dmaコントローラ
JPH10307787A (ja) * 1997-05-09 1998-11-17 Nec Corp バッファメモリ装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6067300A (en) * 1998-06-11 2000-05-23 Cabletron Systems, Inc. Method and apparatus for optimizing the transfer of data packets between local area networks
JP3415567B2 (ja) * 2000-06-21 2003-06-09 エヌイーシーマイクロシステム株式会社 Usb転送制御方法およびusbコントローラ
US6985977B2 (en) * 2002-08-30 2006-01-10 National Instruments Corporation System and method for transferring data over a communication medium using double-buffering

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05250306A (ja) * 1992-03-05 1993-09-28 Fujitsu Ltd Dmaコントローラ
JPH1063607A (ja) * 1996-08-14 1998-03-06 Oki Electric Ind Co Ltd Dmaコントローラ
JPH10307787A (ja) * 1997-05-09 1998-11-17 Nec Corp バッファメモリ装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100449519C (zh) * 2005-03-23 2009-01-07 精工爱普生株式会社 数据传输控制装置及电子设备
JP2010039140A (ja) * 2008-08-04 2010-02-18 Toshiba Corp 携帯端末
US11556104B2 (en) * 2011-09-21 2023-01-17 Hitachi Astemo, Ltd. Electronic control unit for vehicle and method of executing program

Also Published As

Publication number Publication date
JPWO2004077304A1 (ja) 2006-06-08
CN1682202A (zh) 2005-10-12
US20050144338A1 (en) 2005-06-30

Similar Documents

Publication Publication Date Title
US6874039B2 (en) Method and apparatus for distributed direct memory access for systems on chip
US6247084B1 (en) Integrated circuit with unified memory system and dual bus architecture
US8719476B2 (en) Communication system, master device and slave device, and communication method, configured to handle plural concurrent requests
US20040107265A1 (en) Shared memory data transfer apparatus
US7016984B2 (en) System controller using plural CPU's
JPH0792654B2 (ja) ビデオ・データ・フレーム伝送方法および装置
US6675251B1 (en) Bridge device for connecting multiple devices to one slot
KR20100106262A (ko) 저장 컨트롤러 및 저장 시스템
KR20060122934A (ko) 복수의 어드레스 2 채널 버스 구조
US20050144338A1 (en) Data transfer apparatus
CN114785748B (zh) 用于图像传输的dma控制***与方法
US10127172B2 (en) Single SDIO interface with multiple SDIO units
JPH06266615A (ja) 順次データ転送型メモリ及び順次データ転送型メモリを用いたコンピュータシステム
US9830280B2 (en) Multiple access single SDIO interface with multiple SDIO units
US6748505B1 (en) Efficient system bus architecture for memory and register transfers
JP2001134752A (ja) グラフィックプロセッサおよびグラフィックプロセッサにおけるデータ処理方法
US9811485B2 (en) Single relay SDIO interface with multiple SDIO units
US8996772B1 (en) Host communication device and method with data transfer scheduler
US8151015B2 (en) Systems and methods for effecting DMA data transfers
US8296481B2 (en) Device and method for improving transfer efficiency of odd number of data blocks
KR100704218B1 (ko) 데이터 전송 장치
US20040162924A1 (en) Apparatus and method for transmitting data by means of direct memory access medium
JP4229242B2 (ja) ダイレクトメモリアクセスコントローラ
JP2005235216A (ja) ダイレクト・メモリ・アクセス制御
CN118034638A (zh) 重排序缓冲器、***、组件、设备及传输方法

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CN JP KR US

WWE Wipo information: entry into national phase

Ref document number: 2004568756

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 11064097

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 1020057004468

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 2003822125X

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 1020057004468

Country of ref document: KR