KR100704218B1 - Data transfer unit - Google Patents

Data transfer unit Download PDF

Info

Publication number
KR100704218B1
KR100704218B1 KR1020057004468A KR20057004468A KR100704218B1 KR 100704218 B1 KR100704218 B1 KR 100704218B1 KR 1020057004468 A KR1020057004468 A KR 1020057004468A KR 20057004468 A KR20057004468 A KR 20057004468A KR 100704218 B1 KR100704218 B1 KR 100704218B1
Authority
KR
South Korea
Prior art keywords
buffer
transfer
data
channel unit
channel
Prior art date
Application number
KR1020057004468A
Other languages
Korean (ko)
Other versions
KR20050043968A (en
Inventor
야스히로 야마자키
Original Assignee
후지쯔 가부시끼가이샤
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 후지쯔 가부시끼가이샤 filed Critical 후지쯔 가부시끼가이샤
Priority to KR1020057004468A priority Critical patent/KR100704218B1/en
Publication of KR20050043968A publication Critical patent/KR20050043968A/en
Application granted granted Critical
Publication of KR100704218B1 publication Critical patent/KR100704218B1/en

Links

Images

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
    • 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
    • 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/38Information transfer, e.g. on bus

Abstract

본 발명은 통상은 싱글 버퍼로서 동작하고, 필요에 따라서 더블 버퍼 방식으로 동작하여 고속의 데이터 전송을 실현 가능한 데이터 전송 장치를 제공하는 것을 목적으로 한다. 이를 위하여, 본 발명의 데이터 전송 장치는 제1 동작 모드에서 제1 버퍼를 중계기로 하여 제1 데이터 전송을 실행하는 제1 채널 유닛과, 제1 동작 모드에서 제2 버퍼를 중계기로 하여 제1 데이터 전송과는 다른 제2 데이터 전송을 실행하는 제2 채널 유닛을 포함하며, 제2 동작모드에서 적어도 제1 버퍼와 제2 버퍼를 포함하는 복수의 버퍼를 순차 선택하고, 전송원으로부터 판독한 데이터를 순차 선택한 버퍼를 중계기로 하여 전송지에 전송함으로써, 전송원으로부터의 데이터 판독과 전송지에의 데이터 기록을 병행하여 실행하도록 구성된다. SUMMARY OF THE INVENTION An object of the present invention is to provide a data transfer apparatus that normally operates as a single buffer and can operate in a double buffer manner as needed to realize high-speed data transfer. To this end, the data transmission apparatus of the present invention includes a first channel unit for performing a first data transmission using a first buffer as a relay in a first operation mode, and first data using a second buffer as a relay in a first operation mode. And a second channel unit for performing a second data transfer different from the transfer, and sequentially selecting a plurality of buffers including at least a first buffer and a second buffer in a second operation mode, and reading the data read from the transfer source. By sequentially transferring the selected buffers to the transfer destination, the readout data from the transfer source and the data write to the transfer destination are executed in parallel.

Description

데이터 전송 장치{DATA TRANSFER UNIT}DATA TRANSFER UNIT {DATA TRANSFER UNIT}

본 발명은 일반적으로는 데이터 전송 장치에 관한 것으로, 구체적으로는 듀얼 버스 시스템에 있어서 데이터를 DMA 전송하는 데이터 전송 장치에 관한 것이다. BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention generally relates to data transfer apparatus, and more particularly, to a data transfer apparatus for performing DMA transfer of data in a dual bus system.

컴퓨터 시스템에서는, CPU를 통하지 않고 2개의 디바이스 사이의 데이터 전송을 직접 실행하는 DMA(Direct Memory Access) 전송이 높은 시스템 성능을 달성하기 위한 필요 불가결한 기술이다. In computer systems, direct memory access (DMA) transfer, which directly executes data transfer between two devices without going through the CPU, is an indispensable technique for achieving high system performance.

일반적으로 컴퓨터 시스템은 복수의 디바이스와 이들을 접속하는 버스로 구성된다. 버스에 접속된 디바이스는 Read나 Write의 요구를 출력하는 마스터라고 불리는 디바이스와, 마스터가 출력한 요구를 수취하는 슬레이브라고 불리는 디바이스로 나눌 수 있다. DMA(Direct Memory Access) 전송을 제어하는 DMAC(DMA Controller)나 CPU는 요구를 출력하는 측의 마스터 디바이스이다. A computer system generally consists of a plurality of devices and a bus connecting them. A device connected to the bus can be divided into a device called a master that outputs a read or write request and a device called a slave that receives a request output by the master. The DMAC (DMA Controller) and CPU that control the direct memory access (DMA) transfer are the master devices on the side that output the request.

DMAC는 CPU를 통하지 않고 슬레이브 디바이스 사이의 데이터 전송을 직접 행한다. 버스 시스템에서는, 어드레스를 이용함으로써 각 슬레이브 디바이스를 특정하는 동시에 각 슬레이브 디바이스내의 위치(예컨대 메모리 디바이스내의 각 어드레스)를 특정한다. 도 1은 어드레스 공간에서의 슬레이브 디바이스의 할당을 나타내는 어드레스 맵이다. DMAC performs data transfer directly between slave devices without going through the CPU. In the bus system, each slave device is specified by using an address, and a position (for example, each address in the memory device) in each slave device is specified. 1 is an address map illustrating the allocation of slave devices in an address space.

DMAC는 슬레이브 디바이스에 대하여 Read 요구를 출력하고, 어드레스에 의해 지정되는 슬레이브 디바이스내의 특정한 위치로부터 정보를 판독한다. 그 후 DMAC는 Write 요구를 출력하여, 판독한 정보를 별도의 슬레이브 디바이스에 전송한다. 이와 같이 하여, DMAC는 Read와 Write의 요구를 출력함으로써, 슬레이브 디바이스 사이의 데이터 전송을 실현한다. DMAC outputs a Read request to the slave device and reads information from a specific location within the slave device specified by the address. DMAC then issues a Write request and sends the read information to a separate slave device. In this way, the DMAC outputs read and write requests, thereby realizing data transfer between slave devices.

도 2는 듀얼 버스의 시스템에서의 더블 버퍼 방식의 데이터 전송 동작을 설명하기 위한 도면이다. 2 is a diagram illustrating a double buffer data transfer operation in a dual bus system.

도 2의 듀얼 버스 시스템은 DMAC(10), 버스(11), 버스(12), RAM(13), ROM(14), 비디오 디스플레이(15), UART(Universa1 Asynchronous Receiver Transmitter)(16)를 포함한다. DMAC(10)가 마스터 디바이스이며, RAM(13), ROM(14), 비디오 디스플레이(15) 및 UART(16)가 슬레이브 디바이스이다. RAM(13) 및 ROM(14)은 버스(11)를 통해 DMAC(10)에 접속되고, 비디오 디스플레이(15) 및 UART(16)은 버스(12)를 통해 DMAC(10)에 접속된다. The dual bus system of FIG. 2 includes a DMAC 10, a bus 11, a bus 12, a RAM 13, a ROM 14, a video display 15, and a Universal Asynchronous Receiver Transmitter (UART) 16. do. DMAC 10 is the master device, and RAM 13, ROM 14, video display 15 and UART 16 are slave devices. The RAM 13 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.

DMAC(10)는 2개의 버퍼(Buffer1)(21) 및 버퍼(Buffer2)(22)를 포함한다. 예를 들어, RAM(13)으로부터 비디오 디스플레이(15)에의 DMA 데이터 전송 동작에 관해서 이하에 설명한다. 도 3은 RAM(13)으로부터 비디오 디스플레이(15)에의 DMA 데이터 전송 동작을 나타내는 타이밍도이다.  The DMAC 10 includes two buffers (Buffer1) 21 and a buffer (Buffer2) 22. For example, the DMA data transfer operation from the RAM 13 to the video display 15 will be described below. 3 is a timing diagram showing an operation of transferring DMA data from the RAM 13 to the video display 15.

DMAC(10)는 우선 RAM(13)에 Read 요구를 송출하고, Read 요구의 결과로서 RAM(13)으로부터 수신된 데이터를 버퍼(21)에 저장한다. 이 Read 동작은 도 3에 있어서 RAM →buffer1로서 표시된다. 이 Read 동작이 완료되면, DMAC(10)는 버퍼 (21)에 저장된 정보를 비디오 디스플레이(15)에 기록한다. 이 Write 동작은 도 3에 있어서 buffer1 →video로서 표시된다. The DMAC 10 first sends a read request to the RAM 13, and stores the data received from the RAM 13 in the buffer 21 as a result of the read request. This Read operation is represented as RAM → buffer1 in FIG. 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 represented as buffer1? Video in FIG.

도 2의 구성은 더블 버퍼 방식이므로, 또 하나의 버퍼(buffer2)(22)를 버퍼(21)와 동시에 사용할 수 있다. 즉 버퍼(21)로부터 비디오 디스플레이(15)에의 기록과 병행하여, RAM(13)으로부터 다음 데이터를 판독하여 버퍼(22)에 저장한다(RAM →buffer2). 버퍼(22)에 저장된 데이터는, RAM(13)으로부터 데이터를 판독하여 버퍼(21)에 저장하는 것과 병행하여, 비디오 디스플레이(15)에 기록된다(buffer2 →video). Since the configuration of FIG. 2 is a double buffer system, another buffer 22 can be used simultaneously with the buffer 21. In other words, in parallel with the recording from the buffer 21 to the video display 15, the next data is read from the RAM 13 and stored in the buffer 22 (RAM → buffer2). The data stored in the buffer 22 is recorded in the video display 15 in parallel with reading data from the RAM 13 and storing it in the buffer 21 (buffer 2? Video).

이와 같이, 듀얼 버스 시스템에서의 더블 버퍼 방식의 데이터 전송에서는, 2개의 버스와 2개의 버퍼를 이용함으로써, 하나의 버퍼를 이용하는 싱글 버퍼의 경우와 비교하여, 슬레이브 디바이스 사이의 전송 속도를 2배로 할 수 있다. As described above, in the double buffer system data transfer in the dual bus system, by using two buses and two buffers, the transfer speed between slave devices can be doubled as compared to the case of the single buffer using one buffer. Can be.

전술한 더블 버퍼 방식에서는, 싱글 버퍼 방식과 비교하여 2배의 정보를 기억해 둘 필요가 있어, 많은 칩 면적을 소비하게 된다. 또한 일반적으로 시스템 내에 존재하는 슬레이브 디바이스 중, 더블 버퍼 방식에 의해 처음으로 실현 가능성이 높은 전송 성능을 필요로 하는 디바이스는 그다지 많지는 않다. 따라서 더블 버퍼 방식에는, 많은 칩 면적을 필요로 한다고 하는 단점이 존재하는 것에 비해서는, 데이터 전송의 고속성이라는 메리트를 향유할 수 있는 경우가 한정되어 있다. In the double buffer system described above, twice as much information is required to be stored as compared with the single buffer system, which consumes a large amount of chip area. Also, among the slave devices generally present in the system, there are not many devices requiring the transmission performance that is likely to be realized for the first time by the double buffer method. Accordingly, the double buffer system is limited in that it can enjoy the merit of high speed of data transfer, compared with the disadvantage of requiring a large chip area.

이상을 감안하여, 본 발명은 통상은 싱글 버퍼로서 동작하고, 필요에 따라서 더블 버퍼 방식으로서 동작하여 고속의 데이터 전송을 실현 가능한 데이터 전송 장치를 제공하는 것을 목적으로 한다. In view of the above, it is an object of the present invention to provide a data transfer apparatus that normally operates as a single buffer and operates as a double buffer scheme as necessary, thereby enabling high-speed data transfer.

특허 문헌 1: 일본 특허 공개 공보 평1-229353호Patent Document 1: Japanese Patent Application Laid-open No. Hei 1-229353

특허 문헌 2: 일본 특허 공개 공보 소64-78351호Patent Document 2: Japanese Patent Laid-Open No. 64-78351

본 발명에 의한 데이터 전송 장치는, 제1 동작 모드에서 제1 버퍼를 중계기로 하여 제1 데이터 전송을 실행하는 제1 채널 유닛과, 상기 제1 동작 모드에서 제2 버퍼를 중계기로 하여 상기 제1 데이터 전송과는 다른 제2 데이터 전송을 실행하는 제2 채널 유닛을 포함하고, 제2 동작 모드에서 적어도 상기 제1 버퍼와 상기 제2 버퍼를 포함하는 복수의 버퍼를 순차 선택하고, 전송원으로부터 판독한 데이터를 상기 순차 선택한 버퍼를 중계기로 하여 전송지에 전송함으로써, 상기 전송원으로부터의 데이터 판독과 상기 전송지에의 데이터 기록을 병행하여 실행하도록 구성되는 것을 특징으로 한다. A data transmission apparatus according to the present invention includes a first channel unit for performing a first data transfer using a first buffer as a relay in a first operation mode, and the first buffer using a second buffer as a relay in the first operation mode. A second channel unit for performing a second data transfer different from the data transfer, and sequentially selecting a plurality of buffers including at least the first buffer and the second buffer in a second mode of operation, and reading from the transfer source The data is transferred to a transfer destination using the sequentially selected buffer as a relay, so that data reading from the transfer source and data writing to the transfer destination are performed in parallel.

상기 데이터 전송 장치에서는, 고속의 데이터 전송이 필요하지 않는 경우에는, 제1 동작 모드에서 각 채널이 별개의 채널로서 동작하여 각각의 데이터 전송을 실현한다. 그리고 고속의 데이터 전송이 필요한 경우에는, 제2 동작 모드에서 데이터 판독 동작과 데이터 기록 동작을 병행하여 실행하여, 더블 버퍼 방식의 데이터 전송을 실현한다. 따라서, 고속의 데이터 전송이 필요하지 않는 경우에는, 싱글 버퍼 방식의 복수의 채널로서 효율적인 데이터 전송을 실현하고, 고속의 데이터 전송이 필요한 경우에는, 더블 버퍼 방식의 단일 채널을 실현하여 고속의 데이터 전송을 실행한다. 이로써, 더블 버퍼 방식의 단점을 줄이면서도, 더블 버퍼 방식의 데이터 전송의 고속성이라는 메리트를 향유할 수 있다. In the data transfer apparatus, when high speed data transfer is not required, each channel operates as a separate channel in the first operation mode to realize each data transfer. When high speed data transfer is necessary, the data read operation is executed in parallel with the data read operation and the data write operation in the second operation mode. Therefore, when high speed data transfer is not required, efficient data transfer is realized as a plurality of channels of a single buffer system, and when high speed data transfer is required, a single channel of a double buffer system is realized and high speed data transfer is achieved. Run As a result, while reducing the disadvantages of the double buffer method, it is possible to enjoy the merit of the high speed of data transfer of the double buffer method.

도 1은 어드레스 공간에서의 슬레이브 디바이스의 할당을 도시하는 어드레스 맵이다. 1 is an address map illustrating the allocation of slave devices in an address space.

도 2는 듀얼 버스 시스템에서의 더블 버퍼 방식의 데이터 전송 동작을 설명하기 위한 도면이다. 2 is a diagram illustrating a double buffer data transfer operation in a dual bus system.

도 3은 RAM으로부터 비디오 디스플레이에의 DMA 데이터 전송 동작을 나타내는 타이밍도이다. 3 is a timing diagram illustrating an operation of transferring DMA data from a RAM to a video display.

도 4는 본 발명에 의한 DMA 컨트롤러(데이터 전송 장치)를 설명하기 위한 도면이다. 4 is a diagram for explaining a DMA controller (data transfer apparatus) according to the present invention.

도 5는 RAM으로부터 비디오 디스플레이에의 더블 버퍼 방식의 데이터 전송 동작을 도시하는 타이밍도이다. Fig. 5 is a timing diagram showing a double buffer data transfer operation from RAM to video display.

도 6은 제1 채널이 RAM으로부터 UART에의 DMA 데이터 전송을 실행하고, 제2 채널이 RAM으로부터 비디오 디스플레이에의 DMA 데이터 전송을 실행하는 동작을 설명하기 위한 도면이다. FIG. 6 is a diagram for explaining an operation in which a first channel executes DMA data transfer from a RAM to a UART, and a second channel executes DMA data transfer from a RAM to a video display.

도 7은 도 6에 도시한 2개의 채널에 의한 데이터 전송 동작을 도시하는 타이밍도이다. FIG. 7 is a timing diagram showing a data transfer operation by the two channels shown in FIG.

도 8은 2개의 채널이 하나의 채널로서 동작하여 더블 버퍼 방식의 데이터 전송을 실현하는 구성의 실시예를 도시하는 도면이다. FIG. 8 is a diagram showing an embodiment of a configuration in which two channels operate as one channel to realize a double buffer data transfer.

도 9는 도 8의 데이터 전송 동작을 도시하는 타이밍도이다. 9 is a timing diagram illustrating a data transfer operation of FIG. 8.

도 10은 2개의 채널이 하나의 채널로서 동작하여 더블 버퍼 방식의 데이터 전송을 실현하는 구성의 다른 실시예를 나타내는 도면이다. 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.

도 11은 도 8의 데이터 전송 동작을 나타내는 타이밍도이다. 11 is a timing diagram illustrating a data transfer operation of FIG. 8.

도 12는 본 발명에 의한 고속의 데이터 전송의 다른 실시예에 관해서 설명하는 도면이다. 12 is a diagram for explaining another embodiment of the high speed data transfer according to the present invention.

도 13은 RAM으로부터 비디오 디스플레이에의 더블 버퍼 방식의 데이터 전송 동작을 도시하는 타이밍도이다. Fig. 13 is a timing diagram showing a double buffer data transfer operation from RAM to video display.

이하에, 본 발명의 실시예를 첨부 도면을 이용하여 상세히 설명한다. EMBODIMENT OF THE INVENTION Below, the Example of this invention is described in detail using an accompanying drawing.

도 4는 본 발명에 의한 DMA 컨트롤러(데이터 전송 장치)를 설명하기위한 도면이다. 4 is a diagram for explaining a DMA controller (data transfer apparatus) according to the present invention.

본 발명에 의한 DMA 컨트롤러(DMAC)(30)는 도 4에 도시된 바와 같이 듀얼 버스 시스템에서 사용된다. 도 4의 버스 시스템은, DMAC(30), 버스(11), 버스(12), RAM(13), ROM(14), 비디오 디스플레이(l5) 및 UART(16)를 포함한다. RAM(13) 및 ROM(14)은 버스(11)를 통해 DMAC(30)에 접속되고, 비디오 디스플레이(15) 및 UART(16)은 버스(12)를 통해 DMAC(30)에 접속된다. The DMA controller (DMAC) 30 according to the present invention is used in a dual bus system as shown in FIG. The bus system of FIG. 4 includes a DMAC 30, a bus 11, a bus 12, a RAM 13, a ROM 14, a video display l5, and a UART 16. The RAM 13 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.

DMAC(30)에는, 복수의 채널(채널 유닛)(31-1∼31-N)이 실장되고, 채널마다 버퍼가 하나씩 설치된다. 예컨대, 채널(31-1)에는 버퍼(32-1)가 설치되고, 채널(31-2)에는 버퍼(32-2)가 설치된다. DMAC의 각 채널에는, 어드레스를 설정하기 위한 2개의 레지스터 S 및 레지스터 D가 설치된다. 레지스터 S가 전송원인 슬레이브 디바이스내의 위치를 나타내는 어드레스를 저장하고, 레지스터 D가 전송지인 슬레 이브 디바이스내의 위치를 나타내는 어드레스를 저장한다.   In the DMAC 30, a plurality of channels (channel units) 31-1 to 31-N are mounted, and one buffer is provided for each channel. For example, a buffer 32-1 is provided in the channel 31-1, and a buffer 32-2 is provided in the channel 31-2. In each channel of the DMAC, two registers S and D are provided for setting an address. The address indicating the position in the slave device whose register S is the transfer source is stored, and the address indicating the position in the slave device whose register D is the transfer destination.

도 4의 예에서는, 채널(31-l) 및 채널(31-2)의 쌍방이 RAM(13)으로부터 비디오 디스플레이(15)에의 DMA 데이터 전송을 실행한다. 이에 따라 채널(31-1) 및 채널(31-2)이 가상적으로 하나의 채널로서 동작하고, 2개의 버퍼(32-1, 32-2)를 이용한 더블 버퍼 방식의 데이터 전송을 실행한다. In the example of FIG. 4, both of the channel 31-1 and the channel 31-2 perform DMA data transfer from the RAM 13 to the video display 15. As a result, the channels 31-1 and 31-2 virtually operate as one channel, and perform double buffer data transfer using the two buffers 32-1 and 32-2.

도 5는 RAM(13)으로부터 비디오 디스플레이(15)에의 더블 버퍼 방식의 데이터 전송 동작을 나타내는 타이밍도이다. FIG. 5 is a timing diagram showing a double buffer data transfer operation from the RAM 13 to the video display 15. As shown in FIG.

우선 DMAC(30)의 채널(31-1)이 RAM(13)에 Read 요구를 송출하고, Read 요구의 결과로서 RAM(13)으로부터 수신된 데이터를 버퍼(32-1)에 저장한다. 이 Read 동작은, 도 5에 있어서 RAM →buffer1로서 표시된다. Read 전송이 완료되었을 때, 채널(31-1)로부터 채널(31-2)에 기수 판독 완료 신호를 송출하고, 채널(31-2)에 데이터 전송을 시작하도록 지시한다(도 5의 화살표 1 및 화살표 3). 이와 동시에, 채널(31-1)은 버퍼(32-1)에 저장된 정보를 비디오 디스플레이(15)에 기록하는 동작을 시작한다(도 5의 화살표 2). 이 Write 동작은 도 5에서 buffer1 →video로서 표시된다. First, the channel 31-1 of the DMAC 30 sends a read request to the RAM 13, and stores the data received from the RAM 13 as a result of the read request in the buffer 32-1. This Read operation is represented as RAM → buffer1 in FIG. When the Read transfer is completed, an odd read completion signal is sent from the channel 31-1 to the channel 31-2, and the channel 31-2 is instructed to start data transfer (arrow 1 and in Fig. 5). Arrow 3). At the same time, channel 31-1 starts the operation of recording the information stored in buffer 32-1 to video display 15 (arrow 2 in FIG. 5). This Write operation is represented as buffer1? Video in FIG.

채널(31-2)은 기수 판독 완료 신호의 어서트를 검지하고, RAM(13)에 Read 요구를 송출한다. 이에 따라, RAM(13)으로부터 다음 데이터를 판독하여 버퍼(32-2)에 저장한다(RAM →buffer2). 이 동작은, 채널(31-1)이 버퍼(32-1)에 저장된 정보를 비디오 디스플레이(15)에 기록하는 동작(bufferl →video)과 병행하여 실행된다. RAM(13)으로부터 버퍼(32-2)에의 전송이 완료되면, 채널(31-2)은 우수 판독 완료 신호를 송출하고, 채널(31-1)에 데이터 전송을 시작하도록 지시한다(도 5의 화살표 4 및 7). 채널(31-1)은 기록의 완료(화살표 6)와 우수 판독 완료 신호의 어서트(화살표 7)를 계기로 하여, RAM(13)에 대하여 다음 Read 요구를 출력하여 판독 동작을 시작한다. The channel 31-2 detects the assertion of the odd read completion signal, and sends a read request to the RAM 13. As a result, the next data is read from the RAM 13 and stored in the buffer 32-2 (RAM → buffer2). This operation is performed in parallel with the operation (buffer? Video) in which the channel 31-1 writes the information stored in the buffer 32-1 to the video display 15. When the transfer from the RAM 13 to the buffer 32-2 is completed, the channel 31-2 issues a good read completion signal and instructs the channel 31-1 to start data transfer (Fig. 5). Arrows 4 and 7). The channel 31-1 starts the read operation by outputting the next Read request to the RAM 13 at the completion of the write (arrow 6) and the assertion of the even read completion signal (arrow 7).

채널(31-1)이 RAM(13)으로부터 데이터를 판독하여 버퍼(32-1)에 저장하는(RAM →Buffer1) 것과 병행하여, 채널(31-2)은 버퍼(32-2)에 저장된 데이터를 비디오 디스플레이(15)에 기록한다(buffer2 →video). In parallel with the channel 31-1 reading data from the RAM 13 and storing it in the buffer 32-1 (RAM → Buffer1), the channel 31-2 is the data stored in the buffer 32-2. Are recorded on the video display 15 (buffer 2? Video).

이와 같이 하여 2개의 채널은, 교대로 자기의 버퍼를 사용함으로써, 가상적으로 하나의 채널로서 동작하여 더블 버퍼 방식의 데이터 전송을 실행한다. 이로써 필요에 따라 높은 전송 성능을 실현할 수 있다. In this way, the two channels alternately use their own buffers, virtually acting as one channel to perform double buffer data transfer. As a result, high transmission performance can be realized if necessary.

또한 어느 채널에 의한 전송을 버스에 송출할 것인가를 결정하는 우선 순위 제어에, 라운드 로빈이나 회전 우선 순위를 사용하고 있는 경우, 2개의 채널을 1 채널로서 이용하는 상기 데이터 전송은, 다른 채널에 의한 데이터 전송보다도 2배 많은 우선권을 얻을 수 있다. 따라서, 높은 전송 레이트를 확보해야 하는 슬레이브 디바이스에 관해서 데이터 전송하는 경우에, 확실하게 2배의 전송 레이트를 실현할 수 있다고 하는 이점이 있다. In addition, when a round robin or rotation priority is used for priority control for determining which channel to transmit to the bus, the data transmission using two channels as one channel is performed by another channel. You can get twice as much priority as transmission. Therefore, there is an advantage that the data transfer can be reliably doubled in the case of data transfer with respect to the slave device which must secure a high transfer rate.

도 4에 도시하는 DMAC(30)에서는, 필요에 따라서 2개의 채널이 가상적으로 하나의 채널로서 동작하여 더블 버퍼 방식의 데이터 전송을 실행한다. 고속의 데이터 전송이 필요하지 않는 경우에는, 각 채널은 각각이 별개의 채널로서 각각의 데이터 전송 동작을 실행한다. In the DMAC 30 shown in Fig. 4, two channels are virtually operated as one channel as necessary to execute a double buffer type data transfer. When high speed data transfer is not required, each channel executes each data transfer operation as a separate channel.

도 6은 채널(31-1)이 RAM(13)으로부터 UART(l6)에의 DMA 데이터 전송을 실행하고, 채널(31-2)이 RAM(13)으로부터 비디오 디스플레이(15)에의 DMA 데이터 전송을 실행하는 동작을 설명하기 위한 도면이다. 6 shows that channel 31-1 executes DMA data transfer from RAM 13 to UART l6, and channel 31-2 executes DMA data transfer from RAM 13 to video display 15. FIG. It is a figure for demonstrating the operation | movement.

도 7은 도 6에 도시한 2개의 채널에 의한 데이터 전송 동작을 나타내는 타이밍도이다. FIG. 7 is a timing diagram illustrating a data transmission operation by two channels shown in FIG. 6.

우선 DMAC(30)의 채널(31-1)은, RAM(13)에 Read 요구를 출력한다. Read 요구의 결과, 얻어진 정보를 채널(31-1)의 버퍼(32-1)에 저장한다(RAM →CHl). 그 후 채널(31-1)은 UART(16)에 Write 요구를 출력하고, 버퍼(32-1)의 내용을 UART(16)에 기록한다(CH1 →UART). First, the channel 31-1 of the DMAC 30 outputs a read request to the RAM 13. As a result of the Read request, the obtained information is stored in the buffer 32-1 of the channel 31-1 (RAM → CHl). Thereafter, the channel 31-1 outputs a write request to the UART 16, and writes the contents of the buffer 32-1 to the UART 16 (CH1 to UART).

채널(31-1)이 UART(16)에 기록 동작을 행하는 것과 병행하여, 채널(31-2)이 RAM(13)에 Read 요구를 출력하고, 판독한 정보를 버퍼(32-2)에 저장한다(RAM →CH2). 그 후, 채널(31-2)은 비디오 디스플레이(15)에 버퍼(32-2)의 내용을 기록한다(CH2 →video). In parallel with the channel 31-1 performing a write operation to the UART 16, the channel 31-2 outputs a Read request to the RAM 13, and stores the read information in the buffer 32-2. (RAM → CH2). The channel 31-2 then writes the contents of the buffer 32-2 to the video display 15 (CH2? Video).

이와 같이, 고속의 데이터 전송이 필요하지 않는 경우에는, 각 채널이 별개의 채널로서 동작하여 각각의 데이터 전송을 실현한다. 그리고 고속의 데이터 전송이 필요한 경우에는, 전술한 바와 같이, 2개의 채널이 가상적으로 하나의 채널로서 동작하여, 더블 버퍼 방식의 데이터 전송을 실행한다. 따라서, 고속의 데이터 전송이 필요하지 않는 경우에는, 싱글 버퍼 방식의 복수의 채널로서 효율적인 데이터 전송을 실현하고, 고속의 데이터 전송이 필요한 경우에는, 더블 버퍼 방식의 단일 채널을 실현하여 고속의 데이터 전송을 실행한다. 이와 같이 하여, 더블 버퍼 방식의 단점을 줄이면서도, 더블 버퍼 방식의 데이터 전송의 고속성이라는 메리트를 향유할 수 있다. In this way, when high-speed data transfer is not necessary, each channel operates as a separate channel to realize each data transfer. If high-speed data transfer is required, as described above, the two channels operate virtually as one channel, thereby performing double buffer data transfer. Therefore, when high speed data transfer is not required, efficient data transfer is realized as a plurality of channels of a single buffer system, and when high speed data transfer is required, a single channel of a double buffer system is realized and high speed data transfer is achieved. Run In this way, while reducing the disadvantages of the double buffer method, it is possible to enjoy the merit of the high speed of data transfer of the double buffer method.

도 8은 2개의 채널이 하나의 채널로서 동작하여 더블 버퍼 방식의 데이터 전송을 실현하는 구성의 실시예를 나타내는 도면이다. 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.

도 8에서 DMAC(30)에는, 복수의 채널(31-1∼31-N)이 실장되고, 채널마다 버퍼가 하나씩 설치된다. 또한 각 채널에는, 전송원 레지스터(41), 전송지 레지스터(42), 어드레스 인크리멘트 모듈(43) 및 어드레스 인크리멘트 모듈(44)이 설치된다. 전송원 레지스터(41)는 해당 채널이 실행하는 데이터 전송의 전송원의 어드레스를 저장하고, 전송지 레지스터(42)는 해당 채널이 실행하는 데이터 전송의 전송지의 어드레스를 저장한다. 어드레스 인크리멘트 모듈(43)은 전송원 레지스터(41)의 내용을 +2하여 갱신한다. 또한 어드레스 인크리멘트 모듈(44)은 전송지 레지스터(42)의 내용을 +2하여 갱신한다. In FIG. 8, a plurality of channels 31-1 to 31-N are mounted in the DMAC 30, and one buffer is provided for each channel. In each channel, a transfer source register 41, a transfer destination register 42, an address increment module 43, and an address increment module 44 are provided. The transfer source register 41 stores the address of the transfer source of the data transfer executed by the channel, and the transfer destination 42 stores the address of the transfer destination of the data transfer executed by the channel. The address increment module 43 updates the contents of the transfer source register 41 by +2. The address increment module 44 also updates the content of the transfer destination 42 by +2.

DMAC에서는 전송원 어드레스 및 전송지 레지스터를 인크리멘트하면서 데이터의 전송을 행한다. 통상은 1회의 버퍼 전송 동작으로 판독 또는 기록되는 전송 데이터 사이즈의 분 만큼, 어드레스를 인크리멘트(+1)한다. 이에 대하여 도 8의 실시예에서는, 2개의 채널이 각각 전송 사이즈의 2배씩 어드레스를 인크리멘트(+2)한다. The DMAC transfers data while incrementing the transfer source address and transfer destination register. Normally, the address is incremented (+1) by the number of transfer data sizes read or written in one buffer transfer operation. In contrast, in the embodiment of Fig. 8, two channels each increment an address (+2) by twice the transfer size.

이 실시예의 구성에서는, 버퍼를 제어하는 컨트롤러의 구성을 거의 바꾸는 일 없이, 어드레스 인크리멘트 모듈을 조금 개조하는 것만으로, 더블 버퍼 동작을 실현할 수 있다. 또 어드레스 인크리멘트 모듈은 싱글 버퍼 방식의 데이터 전송에 도 대응하기 위해서 +1의 어드레스 인크리멘트도 실행 가능하고, +1의 인크리멘트와 +2의 인크리멘트를 전환할 수 있도록 구성된다. In the configuration of this embodiment, the double buffer operation can be realized by only slightly modifying the address increment module without substantially changing the configuration of the controller controlling the buffer. In addition, the address increment module is also capable of executing +1 address increments and switching between +1 increments and +2 increments in order to support single buffer data transfer. .

도 9는 도 8의 데이터 전송 동작을 도시하는 타이밍도이다. 9 is a timing diagram illustrating a data transfer operation of FIG. 8.

또한 채널(31-1)의 전송원 레지스터(41)의 내용은 Src1로서 나타내고, 채널(31-1)의 전송지 레지스터(42)의 내용은 Dest1로서 나타낸다. 채널(31-2)의 전송원 레지스터(41)의 내용은 Src2로서 나타내고, 채널(31-2)의 전송지 레지스터(42)의 내용은 Dest2로서 나타낸다. The contents of the transfer source register 41 of the channel 31-1 are represented as Src1, and the contents of the transfer destination register 42 of the channel 31-1 are represented as Dest1. The contents of the transfer source register 41 of the channel 31-2 are represented as Src2, and the contents of the transfer destination register 42 of the channel 31-2 are represented as Dest2.

도 9에서, 판독 및 기록 동작에 관해서의 데이터의 흐름은 도 5와 동일하다. 이하에서는 판독 및 기록 동작과 어드레스 생성을 관련지어 설명한다. 우선 채널(31-1)이 Src1의 어드레스(0)에 대하여 Read 동작을 실행한다(RAM →Buffer1). 이 Read 동작의 완료에 응답하여(화살표 1), Src1의 값에 2를 가산하여 가산 결과(2)로 Src1을 갱신한다. 마찬가지로, 채널(31-2)이 Src2의 어드레스(1)에 대하여 Read 동작을 행하고(RAM →Buffer2), 그 완료에 응답하여(화살표 2), Src2의 값에 2를 가산하여 가산결과(3)로 Src2를 갱신한다. In FIG. 9, the flow of data with respect to the read and write operations is the same as in FIG. The following describes the read and write operations in association with address generation. First, the channel 31-1 performs a read operation on the address 0 of Src1 (RAM → Buffer1). In response to the completion of this Read operation (arrow 1), Src1 is updated with the addition result 2 by adding 2 to the value of Src1. Similarly, the channel 31-2 performs a read operation on the address 1 of Src2 (RAM → Buffer2), and in response to its completion (arrow 2), adds 2 to the value of Src2 and adds the result (3). Update Src2 with

채널(31-2)의 Read 동작과 병행하여, 채널(31-1)은 Dest1의 어드레스(1000)에 대하여 Write 동작을 행한다(Buffer →Video). 채널(31-1)의 Write 동작의 완료에 응답하여(화살표 3), Dest1의 값에 2를 가산하여 가산 결과(1002)로 Dest1을 갱신한다. 마찬가지로, 채널(31-2)의 Write 동작(Buffer2 →Video)의 완료에 응답하여(화살표 4), Dest2의 값에 2를 가산하여 가산 결과(1003)로 Dest2를 갱신한다. In parallel with the read operation of the channel 31-2, the channel 31-1 performs a write operation on the address 1000 of Dest1 (Buffer → Video). In response to the completion of the Write operation of the channel 31-1 (arrow 3), Dest1 is updated with the addition result 1002 by adding 2 to the value of Dest1. Similarly, in response to the completion of the write operation (Buffer2? Video) of the channel 31-2 (arrow 4), 2 is added to the value of Dest2 to update Dest2 with the addition result 1003.

도 10은 2개의 채널이 하나의 채널로서 동작하여 더블 버퍼 방식의 데이터 전송을 실현하는 구성의 별도의 실시예를 도시하는 도면이다. 도 10에서, 도 8과 동일한 구성 요소는 동일한 번호로 참조하고, 그 설명은 생략한다. FIG. 10 is a diagram showing another embodiment of the configuration in which two channels operate as one channel to realize double buffer data transfer. In Fig. 10, the same components as in Fig. 8 are referred to by the same numerals, and the description thereof is omitted.

도 10의 실시예에서는, 채널(31-1)만이 어드레스를 출력하도록 구성된다. 따라서, 어드레스 인크리멘트 모듈(43)은 전송원 레지스터(41)의 내용을 +1하여 갱신하고, 어드레스 인크리멘트 모듈(44)은 전송지 레지스터(42)의 내용을 +1하여 갱신한다. 즉, 1회의 버퍼 전송 동작으로 판독 또는 기록되는 전송 데이터 사이즈의 분 만큼, 어드레스를 인크리멘트(+1)한다. In the embodiment of Fig. 10, only the channel 31-1 is configured to output an address. Therefore, the address increment module 43 +1 updates the contents of the transfer source register 41, and the address increment module 44 updates the contents of the transfer destination 42 by +1. That is, the address is incremented (+1) by the number of transfer data sizes read or written in one buffer transfer operation.

이와 같이 하여 채널(31-1)의 전송원 레지스터(41) 및 전송지 레지스터(42)만을 이용하여 어드레스 지정하면서, 채널(31-1) 및 채널(31-2)이 버퍼(32-1)와 버퍼(32-2)를 이용하여 더블 버퍼 방식의 데이터 전송을 실현한다. 이 실시예에서는, 채널(31-1)이 쌍방의 버퍼를 제어 가능하도록 DMAC(30)를 구성할 필요가 있으나, 어드레스 인크리멘트 모듈에는 +2의 인크리멘트의 구성을 설치할 필요가 없다. In this way, the channel 31-1 and the channel 31-2 are buffered 32-1 while addressing using only the transfer source register 41 and the transfer destination register 42 of the channel 31-1. And buffer 32-2 are used to realize double buffer data transfer. In this embodiment, it is necessary to configure the DMAC 30 so that the channel 31-1 can control both buffers, but it is not necessary to provide a +2 increment configuration in the address increment module.

도 11은 도 8의 데이터 전송 동작을 도시하는 타이밍도이다. 11 is a timing diagram illustrating a data transfer operation of FIG. 8.

우선 채널(31-1)이 Src1의 어드레스(0)에 대하여 Read 동작을 실행한다(RAM →Buffer1). 이 Read 동작의 완료에 응답하여(화살표 1), Src1의 값에 1을 가산하여 가산 결과(1)로 Src1을 갱신한다. 다음에 채널(31-2)이 Src1의 어드레스(1)에 대하여 Read 동작을 실행한다(RAM →Buffer2). 그 완료에 응답하여(화살표 2), 채널(31-1)이 Src1의 값에 1을 가산하여 가산 결과(2)로 Src1을 갱신한다. 이 갱신은 채널(31-2)로부터 채널(31-1)에의 우수 판독 완료 신호에 응답하여 실행하도록 하면 좋다. First, the channel 31-1 performs a read operation on the address 0 of Src1 (RAM → Buffer1). In response to the completion of this Read operation (arrow 1), Src1 is updated with the addition result 1 by adding 1 to the value of Src1. Next, the channel 31-2 performs a read operation on the address 1 of Src1 (RAM → Buffer2). In response to the completion (arrow 2), the channel 31-1 adds 1 to the value of Src1 and updates Src1 with the addition result (2). This update may be performed in response to the even read completion signal from the channel 31-2 to the channel 31-1.

채널(31-2)의 Read 동작과 병행하여, 채널(31-1)은 Dest1의 어드레스(1000)에 대하여 Write 동작을 행한다(Buffer →Video). 채널(31-1)의 Write 동작의 완료에 응답하여(화살표 3), Dest1의 값에 1을 가산하여 가산 결과(1001)로 Dest1을 갱신한다. 다음에 채널(31-2)의 Write 동작(Buffer2 →Video)이 완료되면, 이에 응답하여, 채널(31-2)로부터 채널(31-1)에 우수 기록 완료 신호를 공급한다. 이 우수 기록 완료 신호의 어서트에 응답하여(화살표 4), 채널(31-1)이 Dest1의 값에 1을 가산하여 가산 결과(1002)로 Dest1을 갱신한다. In parallel with the read operation of the channel 31-2, the channel 31-1 performs a write operation on the address 1000 of Dest1 (Buffer → Video). In response to the completion of the Write operation of the channel 31-1 (arrow 3), 1 is added to the value of Dest1 to update Dest1 with the addition result 1001. Next, when the write operation (Buffer2? Video) of the channel 31-2 is completed, in response to this, the even-write completion signal is supplied from the channel 31-2 to the channel 31-1. In response to the assertion of this even-recording completion signal (arrow 4), the channel 31-1 adds 1 to the value of Dest1 and updates Dest1 with the addition result 1002.

도 12는 본 발명에 의한 고속의 데이터 전송의 다른 실시예에 관해서 설명하는 도면이다. 12 is a diagram for explaining another embodiment of the high speed data transfer according to the present invention.

본 발명에 의한 DMA 컨트롤러 DMAC(50)는 도 12에 도시된 바와 같이 듀얼 버스 시스템에서 사용된다. 도 12의 버스 시스템은 DMAC(50), 버스(11), 버스(12), RAM(13), 비디오 디스플레이(15), UART(16) 및 CPU(60)를 포함한다. RAM(13)은 버스(11)를 통해 DMAC(50)에 접속되고, 비디오 디스플레이(15) 및 UART(16)는 버스(12)를 통해 DMAC(50)에 접속된다. The DMA controller DMAC 50 according to the present invention is used in a dual bus system as shown in FIG. The bus system of FIG. 12 includes a DMAC 50, a bus 11, a bus 12, a RAM 13, a video display 15, a UART 16, and a CPU 60. The RAM 13 is connected to the DMAC 50 via the bus 11, and the video display 15 and the UART 16 are connected to the DMAC 50 via the bus 12.

DMAC(50)에는, 복수의 채널(51-1∼51-N)이 실장되고, 채널마다 버퍼 번호 큐가 하나씩 설치된다. 예컨대, 채널(51-1)에는 버퍼 번호 큐(52-1)가 설치되고, 채널(51-2)에는 버퍼 번호 큐(52-2)가 설치된다. 또한 각 채널과는 별도로, 버퍼(53-1∼53-N)가 설치된다. 또한 유효 플래그(54-1∼ 54-N)가 설치되어, 대응하는 버퍼(53-1∼53-N)의 이용 가능 여부를 나타낸다. In the DMAC 50, a plurality of channels 51-1 to 51-N are mounted, and one buffer number queue is provided for each channel. For example, a buffer number queue 52-1 is provided in the channel 51-1, and a buffer number queue 52-2 is provided in the channel 51-2. Besides the channels, buffers 53-1 to 53-N are provided. Further, valid flags 54-1 to 54-N are provided to indicate whether or not the corresponding buffers 53-1 to 53-N are available.

도 13은 RAM(13)으로부터 비디오 디스플레이(15)에의 고속의 데이터 전송 동 작을 도시하는 타이밍도이다. FIG. 13 is a timing diagram showing a high speed data transfer operation from the RAM 13 to the video display 15. FIG.

우선 채널(51-1)이 유효 플래그(54-1∼54-N)를 체크하여 비어 있는 버퍼를 발견하고, 그 버퍼의 번호(Buffer1)를 버퍼 번호 큐(52-1)에 저장한다. 또한, RAM(13)으로부터 판독한 데이터를 해당 버퍼(큐의 가장 후미의 번호의 버퍼)에 저장한다(RAM →Buffer1). 계속해서 마찬가지로, 채널(51-1)이 유효 플래그(54-1∼54-N)를 체크하여 비어 있는 버퍼를 발견하고, 그 버퍼의 번호(Buffer2)를 버퍼 번호 큐(52-1)에 저장한다. 또한, RAM(13)으로부터 판독한 다음 데이터를 해당 버퍼(큐의 가장 후미의 번호의 버퍼)에 저장한다(RAM →Buffer2). First, the channel 51-1 checks the valid flags 54-1 to 54-N, finds an empty buffer, and stores the buffer number Buffer1 in the buffer number queue 52-1. The data read from the RAM 13 is also stored in the buffer (the buffer of the last number in the queue) (RAM → Buffer1). Subsequently, similarly, the channel 51-1 checks the valid flags 54-1 to 54-N, finds an empty buffer, and stores the buffer number Buffer2 in the buffer number queue 52-1. do. In addition, after reading from the RAM 13, the data is stored in the corresponding buffer (the buffer at the end of the queue) (RAM → Buffer2).

비디오 디스플레이(15)로부터 기록 요구가 도착하면, 채널(51-1)은 비디오 디스플레이(15)에 대한 기록을 행한다. 이때, 버퍼 번호 큐(52-l)로부터 출력되는 번호(큐의 선두 번호)가 지시하는 버퍼로부터, 비디오 디스플레이(15)에 데이터를 송출한다(Buffer1 →Video). 또 도 13에 도시된 바와 같이, 채널(51-1)은 RAM(13)으로부터의 데이터 판독과, 비디오 디스플레이(15)에의 데이터 기록을 병행하여 실행할 수 있다. When a recording request arrives from the video display 15, the channel 51-1 writes to the video display 15. At this time, data is sent from the buffer indicated by the number (the head number of the queue) output from the buffer number queue 52-1 to the video display 15 (Buffer1 to Video). As shown in Fig. 13, the channel 51-1 can execute data reading from the RAM 13 and data writing to the video display 15 in parallel.

도 13의 예에서, 채널(51-1)은 버퍼로서 Buffer1, Buffer2, Buffer3을 순서대로 사용한 후, Buffer1을 재차 사용하고, 그 후 Buffer2를 사용하고 나서 다시 Buffer1을 재사용하고 있다. 본 실시예에서의 데이터 전송에서는 유효 플래그를 체크하여 수시로 이용 가능한 버퍼를 특정하기 때문에, 상황에 따라서 사용하는 버퍼가 변화하게 된다. In the example of FIG. 13, the channel 51-1 uses Buffer1, Buffer2, and Buffer3 in order as a buffer, uses Buffer1 again, and then reuses Buffer1 after using Buffer2. In the data transmission in the present embodiment, since a valid flag is checked and a buffer that can be used at any time is specified, the buffer to be used varies depending on the situation.

또한 각 채널은 독자적으로 버퍼를 획득하여, 각각의 데이터 전송 동작을 실 행하여도 좋다. In addition, each channel may independently acquire a buffer and perform respective data transfer operations.

상기 실시예에서는, 복수의 버퍼를 포괄적으로 관리하고, 필요에 따라서 각 채널이 버퍼를 획득하여 사용한다. 이 방법에서는, 버퍼 제어가 도 8이나 도 10의 방식과 비교하여 복잡하게 되지만, 2개의 버퍼가 이용 가능한 상황이라면, 더블 버퍼 방식의 데이터 전송과 동일한 효과를 얻을 수 있다. In the above embodiment, a plurality of buffers are comprehensively managed, and each channel obtains and uses the buffers as necessary. In this method, the buffer control is complicated compared with the method of Fig. 8 or 10, but if two buffers are available, the same effect as that of the double buffer type data transfer can be obtained.

또한 이용 가능하다면 2개 이상의 버퍼를 사용하는 것이 가능하다. 따라서, 데이터 전송 도중에 다른 마스터의 액세스 등에 의해 방해받아 전송원으로부터 DMAC(50)에의 전송이 중단되더라도, 복수의 버퍼에 저장되는 데이터를 전송지에 계속 송출하는 것이 가능하다. 즉, 도 13에 도시된 바와 같이, 예컨대 CPU(60)에 의한 RAM(13)에의 액세스(RAM →CPU)가 복수회 실행되어, RAM(13)로부터 DMAC(50)에의 전송이 여러 번 지연된 경우에도, 비디오 디스플레이(15)에의 데이터 전송이 지연될 가능성을 줄일 수 있다. It is also possible to use two or more buffers if available. Therefore, even if transmission from the transmission source to the DMAC 50 is interrupted by the access of another master or the like during data transmission, data stored in the plurality of buffers can be continuously sent to the transmission destination. That is, as shown in FIG. 13, for example, when the CPU 60 accesses the RAM 13 (RAM → CPU) is executed a plurality of times, and the transfer from the RAM 13 to the DMAC 50 is delayed several times. In addition, the possibility of delaying data transmission to the video display 15 can be reduced.

이 실시예의 구성은, 어떤 채널이 모든 버퍼를 확보해 버리면, 별도의 채널의 Read 전송을 행할 수 없다고 하는 문제가 있다. 일반적으로, 전송 요구로부터 데이터 수취까지의 동작은 소정 시간 내에 실행해야 한다는 제약이 있는 경우가 많고, 상기 문제를 해결하기 위해서는 결국 각 채널마다 하나의 버퍼가 대응하도록 제어하는 것이 간단한 해결책이다. 이 경우에는, 상기 도 4 및 도 6의 동작과 본질적으로 동일하게 된다. The configuration of this embodiment has a problem in that read transmission of a separate channel cannot be performed if a channel secures all buffers. In general, the operation from the transmission request to the data reception is often limited within a predetermined time, and in order to solve the problem, it is a simple solution to control one buffer for each channel. In this case, the operation is essentially the same as that of FIGS. 4 and 6.

이상, 본 발명을 실시예에 기초하여 설명했지만, 본 발명은 상기 실시예에 한정되는 것이 아니라, 특허 청구의 범위에 기재된 범위 내에서 여러가지 변형이 가능하다. As mentioned above, although this invention was demonstrated based on the Example, this invention is not limited to the said Example, A various deformation | transformation is possible within the range of a claim.

Claims (10)

제1 동작 모드에서 제1 버퍼를 중계기로 하여 제1 데이터 전송을 실행하는 제1 채널 유닛과, A first channel unit executing a first data transfer using the first buffer as a repeater in a first operation mode, 상기 제1 동작 모드에서 제2 버퍼를 중계기로 하여 상기 제1 데이터 전송과는 다른 제2 데이터 전송을 실행하는 제2 채널 유닛을 포함하며, A second channel unit configured to execute a second data transmission different from the first data transmission by using a second buffer as a relay in the first operation mode, 제2 동작 모드에서 적어도 상기 제1 버퍼와 상기 제2 버퍼를 포함하는 복수의 버퍼를 순차 선택하고, 하나의 전송원으로부터 판독한 데이터를 상기 순차 선택한 버퍼를 중계기로 하여 하나의 전송지에 전송함으로써, 상기 하나의 전송원으로부터의 데이터 판독과 상기 하나의 전송지에의 데이터 기록을 병행하여 실행하도록 구성되고,By sequentially selecting a plurality of buffers including at least the first buffer and the second buffer in a second mode of operation, and transferring data read from one source to one destination using the sequentially selected buffer as a relay, Configured to execute reading of data from the one transfer source and writing of data to the one transfer destination in parallel, 상기 제1 채널 유닛과 상기 제2 채널 유닛이 각각 별개의 채널로서 각각 데이터 전송 동작을 실행하는 상기 제1 동작 모드와, 적어도 상기 제1 채널 유닛과 상기 제2 채널 유닛이 통합되어 가상적으로 하나의 채널로서 동작하여 하나의 데이터 전송을 실행하는 상기 제2 동작 모드가 전환가능한 것을 특징으로 하는 데이터 전송 장치. The first operation mode in which the first channel unit and the second channel unit respectively perform data transmission operations as separate channels, and at least the first channel unit and the second channel unit are integrated to virtually one And said second mode of operation for operating as a channel to execute one data transfer is switchable. 제1항에 있어서, 상기 제2 동작 모드에서 상기 제1 버퍼와 상기 제2 버퍼를 교대로 선택하고, 상기 전송원으로부터 판독한 데이터를 상기 교대로 선택한 버퍼를 중계기로 하여 상기 전송지에 전송함으로써, 상기 제1 버퍼에의 상기 전송원으로부터의 데이터 판독 동작과 상기 제2 버퍼로부터의 상기 전송지에의 데이터 기록 동작을 병행하여 실행하는 동시에, 상기 제2 버퍼에의 상기 전송원으로부터의 데이터 판독 동작과 상기 제1 버퍼로부터의 상기 전송지에의 데이터 기록 동작을 병행하여 실행하도록 구성되는 것을 특징으로 하는 데이터 전송 장치. The method of claim 1, wherein in the second operation mode, the first buffer and the second buffer are alternately selected, and data read from the transfer source is transferred to the transfer destination using the alternately selected buffer as a relay. Simultaneously performing a data read operation from the transfer source to the first buffer and a data write operation from the second buffer to the transfer destination, and at the same time, read data from the transfer source to the second buffer; And a data write operation from the first buffer to the transfer destination in parallel. 제2항에 있어서, 상기 제2 동작 모드에서 상기 제1 채널과 상기 제2 채널이 공동 동작함으로써 단일 채널로서 데이터 전송하는 것을 특징으로 하는 데이터 전송 장치. The data transmission apparatus of claim 2, wherein the first channel and the second channel are jointly operated in the second operation mode to transmit data as a single channel. 제3항에 있어서, 상기 제2 동작 모드에서 상기 제1 채널과 상기 제2 채널은 상기 전송원으로부터의 데이터 판독 동작이 완료되면 상대측에 판독 동작 완료를 통지하는 것을 특징으로 하는 데이터 전송 장치. The data transmission apparatus according to claim 3, wherein in the second operation mode, the first channel and the second channel notify the counterpart of completion of the read operation when the data read operation from the transfer source is completed. 제4항에 있어서, 상기 제1 채널 유닛과 상기 제2 채널 유닛의 각각은,The method of claim 4, wherein each of the first channel unit and the second channel unit, 상기 전송원의 액세스 위치를 나타내는 어드레스를 저장하는 전송원 레지스터와, A transfer source register for storing an address indicating an access position of the transfer source; 상기 전송지의 액세스 위치를 나타내는 어드레스를 저장하는 전송지 레지스터와, A transfer destination register for storing an address indicating an access position of the transfer destination; 상기 전송원 레지스터에 저장되는 어드레스를 인크리멘트하는 제1 어드레스 인크리멘트 모듈과, A first address increment module for incrementing an address stored in said transfer source register; 상기 전송지 레지스터에 저장되는 어드레스를 인크리멘트하는 제2 어드레스 인크리멘트 모듈을 포함하며, A second address increment module for incrementing an address stored in the transfer register; 상기 제2 동작 모드에서, 상기 제1 어드레스 인크리멘트 모듈은 상기 전송원의 액세스 위치를 하나 걸러서 액세스하도록 어드레스를 인크리멘트하고, 상기 제2 어드레스 인크리멘트 모듈은 상기 전송지의 액세스 위치를 하나 걸러서 액세스하도 록 어드레스를 인크리멘트하며, 상기 제1 채널 유닛의 상기 전송원 레지스터 및 상기 전송지 레지스터와 상기 제2 채널 유닛의 상기 전송원 레지스터 및 상기 전송지 레지스터가 번갈아서 액세스 위치를 지정하는 것을 특징으로 하는 데이터 전송 장치. In the second mode of operation, the first address increment module increments the address to access every other access location of the transmission source, and the second address increment module determines an access location of the destination. Incrementing the address to access every other, and alternately designating an access location between the source and destination registers of the first channel unit and the source and destination registers of the second channel unit. Characterized in that the data transmission device. 제4항에 있어서, 상기 제1 채널 유닛과 상기 제2 채널 유닛의 각각은,The method of claim 4, wherein each of the first channel unit and the second channel unit, 상기 전송원의 액세스 위치를 나타내는 어드레스를 저장하는 전송원 레지스터와, A transfer source register for storing an address indicating an access position of the transfer source; 상기 전송지의 액세스 위치를 나타내는 어드레스를 저장하는 전송지 레지스터와, A transfer destination register for storing an address indicating an access position of the transfer destination; 상기 전송원 레지스터에 저장되는 어드레스를 인크리멘트하는 제1 어드레스 인크리멘트 모듈과, A first address increment module for incrementing an address stored in said transfer source register; 상기 전송지 레지스터에 저장되는 어드레스를 인크리멘트하는 제2 어드레스 인크리멘트 모듈을 포함하며, A second address increment module for incrementing an address stored in the transfer register; 상기 제2 동작 모드에서, 상기 제1 채널의 상기 제1 어드레스 인크리멘트 모듈은 상기 전송원의 액세스 위치를 순서대로 하나씩 액세스하도록 어드레스를 인크리멘트하고, 상기 제1 채널의 상기 제2 어드레스 인크리멘트 모듈은 상기 전송지의 액세스 위치를 순서대로 하나씩 액세스하도록 어드레스를 인크리멘트하며, 상기 제1 채널 유닛의 상기 전송원 레지스터 및 상기 전송지 레지스터에 의해 액세스 위치를 지정하여 데이터 전송하는 것을 특징으로 하는 데이터 전송 장치. In the second mode of operation, the first address increment module of the first channel increments an address to sequentially access the access positions of the transmission source one by one, and the second address increment of the first channel The retention module increments the address so as to access the access positions of the transfer destination one by one, and transmits data by designating an access position by the transfer source register and the transfer destination register of the first channel unit. Data transmission device. 제6항에 있어서, 상기 제2 채널 유닛은 상기 전송지에의 데이터 기록 동작이 완료되면 상기 제1 채널 유닛에 기록 동작 완료를 통지하는 것을 특징으로 하는 데이터 전송 장치. 7. The data transmission apparatus as claimed in claim 6, wherein the second channel unit notifies the first channel unit of the completion of the recording operation when the data recording operation to the transfer destination is completed. 제1항에 있어서, 상기 제1 채널 유닛은 버퍼를 특정하는 정보를 순서대로 저장하는 제1 큐를 포함하고, 상기 제2 채널 유닛은 버퍼를 특정하는 정보를 순서대로 저장하는 제2 큐를 포함하며, 상기 제2 동작 모드에서, 상기 제1 채널 유닛은 상기 복수의 버퍼 중에서 이용 가능한 버퍼를 순차 선택하여, 상기 선택된 버퍼를 특정하는 정보를 상기 제1 큐에 순서대로 저장하고, 상기 제1 큐의 가장 후미의 정보가 지정하는 버퍼에의 상기 전송원으로부터의 데이터 판독과 상기 큐의 선두의 정보가 지정하는 버퍼로부터의 상기 전송지에의 데이터 기록을 병행하여 실행하는 것을 특징으로 하는 데이터 전송 장치. The method of claim 1, wherein the first channel unit includes a first queue for sequentially storing information for specifying a buffer, and the second channel unit includes a second queue for sequentially storing information for specifying a buffer. In the second operation mode, the first channel unit sequentially selects available buffers from the plurality of buffers, sequentially stores information specifying the selected buffers in the first queue, and sequentially stores the first queue. And reading data from the transfer source into the buffer designated by the last information of the data and writing the data from the buffer designated by the information at the head of the queue to the transfer destination in parallel. 제1 채널 유닛과, A first channel unit, 제2 채널 유닛을 포함하며, A second channel unit, 상기 제1 채널 유닛은, The first channel unit, 제1 버퍼와, The first buffer, 전송원의 액세스 위치를 나타내는 제1 전송원 레지스터와, A first transfer source register indicating an access position of the transfer source, 전송지의 액세스 위치를 나타내는 제1 전송지 레지스터를 포함하고, 상기 제1 버퍼를 중계기로 하여, 상기 제1 전송원 레지스터가 나타내는 전송원으로부터 상기 제1 전송지 레지스터가 나타내는 전송지에 데이터 전송하도록 구성되며, A first transfer destination register indicating an access location of a transfer destination, and configured to transfer data from a transfer source represented by said first transfer register to a transfer destination represented by said first transfer register, using said first buffer as a relay; , 상기 제2 채널 유닛은, The second channel unit, 제2 버퍼와, The second buffer, 전송원의 액세스 위치를 나타내는 제2 전송원 레지스터와, A second transfer source register indicating a transfer location of the transfer source, 전송지의 액세스 위치를 나타내는 제2 전송지 레지스터를 포함하고, 상기 제2 버퍼를 중계기로 하여 상기 제2 전송원 레지스터가 나타내는 전송원으로부터 상기 제2 전송지 레지스터가 나타내는 전송지에 데이터 전송하도록 구성되며, A second transfer destination register indicating an access location of a transfer destination, configured to transfer data from a transfer source represented by said second transfer register to a transfer destination represented by said second transfer register, using said second buffer as a relay, 상기 제1 채널 유닛과 상기 제2 채널 유닛이 협조 동작함으로써 상기 제1 버퍼에의 하나의 전송원으로부터의 데이터 판독 동작과 상기 제2 버퍼로부터의 하나의 전송지에의 데이터 기록 동작을 병행하여 실행하는 동시에, 상기 제2 버퍼에의 상기 하나의 전송원으로부터의 데이터 판독 동작과 상기 제1 버퍼로부터의 상기 하나의 전송지에의 데이터 기록 동작을 병행하여 실행하도록 구성되고,By performing the cooperative operation of the first channel unit and the second channel unit, data read operation from one transfer source to the first buffer and data write operation to one transfer destination from the second buffer are performed in parallel. At the same time, the data read operation from the one transfer source to the second buffer and the data write operation from the first buffer to the one transfer destination are performed in parallel, 상기 제1 채널 유닛과 상기 제2 채널 유닛이 각각 별개의 채널로서 각각 데이터 전송 동작을 실행하는 제1 동작 모드와, 적어도 상기 제1 채널 유닛과 상기 제2 채널 유닛이 통합되어 가상적으로 하나의 채널로서 동작하여 하나의 데이터 전송을 실행하는 상기 제2 동작 모드가 전환가능한 것을 특징으로 하는 데이터 전송 장치. A first operation mode in which the first channel unit and the second channel unit respectively perform data transmission operations as separate channels, and at least the first channel unit and the second channel unit are integrated to virtually one channel And said second mode of operation for operating as one data transfer is switchable. 복수의 버퍼와, Multiple buffers, 버퍼를 특정하는 정보를 순서대로 저장하는 제1 큐를 포함하는 제1 채널 유닛과, A first channel unit including a first queue for sequentially storing information specifying a buffer; 버퍼를 특정하는 정보를 순서대로 저장하는 제2 큐를 포함하는 제2 채널 유닛을 포함하며, A second channel unit including a second queue for sequentially storing information specifying a buffer, 상기 제1 채널 유닛은 상기 복수의 버퍼 중에서 이용 가능한 버퍼를 순차 선택하여, 상기 선택된 버퍼를 특정하는 정보를 상기 제1 큐에 순서대로 저장하고, 상기 큐의 가장 후미의 정보가 지정하는 버퍼에의 전송원으로부터의 데이터 판독과 상기 큐의 선두의 정보가 지정하는 버퍼로부터 전송지에의 데이터 기록을 병행하여 실행하고, 상기 제1 채널 유닛과 상기 제2 채널 유닛이 각각 별개의 채널로서 각각 데이터 전송 동작을 실행하는 제1 동작 모드와, 적어도 상기 제1 채널 유닛과 상기 제2 채널 유닛이 통합되어 가상적으로 하나의 채널로서 동작하여 하나의 데이터 전송을 실행하는 상기 제2 동작 모드가 전환가능한 것을 특징으로 하는 데이터 전송 장치. The first channel unit sequentially selects an available buffer from among the plurality of buffers, sequentially stores information specifying the selected buffer in the first queue, and stores the information specifying the selected buffer in a buffer designated by the last information of the queue. Reading out data from the transfer source and writing data from the buffer designated by the head information of the queue to the transfer destination in parallel, wherein the first channel unit and the second channel unit respectively transmit data as separate channels. And a first operation mode for executing the operation and at least the first channel unit and the second channel unit are integrated to operate as a single channel to perform one data transmission. Data transmission device.
KR1020057004468A 2005-03-16 2003-02-27 Data transfer unit KR100704218B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020057004468A KR100704218B1 (en) 2005-03-16 2003-02-27 Data transfer unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020057004468A KR100704218B1 (en) 2005-03-16 2003-02-27 Data transfer unit

Publications (2)

Publication Number Publication Date
KR20050043968A KR20050043968A (en) 2005-05-11
KR100704218B1 true KR100704218B1 (en) 2007-04-09

Family

ID=37244407

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057004468A KR100704218B1 (en) 2005-03-16 2003-02-27 Data transfer unit

Country Status (1)

Country Link
KR (1) KR100704218B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100737722B1 (en) * 2005-08-19 2007-07-10 (주)씨앤에스 테크놀로지 The digital audio broadcasting modem interface system for receiving multi-channel and its working method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05250306A (en) * 1992-03-05 1993-09-28 Fujitsu Ltd Dma controller
JPH1063607A (en) * 1996-08-14 1998-03-06 Oki Electric Ind Co Ltd Dma controller
JPH10307787A (en) * 1997-05-09 1998-11-17 Nec Corp Buffer memory device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05250306A (en) * 1992-03-05 1993-09-28 Fujitsu Ltd Dma controller
JPH1063607A (en) * 1996-08-14 1998-03-06 Oki Electric Ind Co Ltd Dma controller
JPH10307787A (en) * 1997-05-09 1998-11-17 Nec Corp Buffer memory device

Also Published As

Publication number Publication date
KR20050043968A (en) 2005-05-11

Similar Documents

Publication Publication Date Title
US8730248B2 (en) Multi-graphics processor system, graphics processor and data transfer method
US20060090017A1 (en) Microprocessor system with memory device including a DMAC, and a bus for DMA transfer of data between memory devices
ES2313297T3 (en) BUS STRUCTURE OF TWO CHANNELS OF MULTIPLE ADDRESSES.
US20040107265A1 (en) Shared memory data transfer apparatus
US20020184453A1 (en) Data bus system including posted reads and writes
US10282343B2 (en) Semiconductor device
US6920510B2 (en) Time sharing a single port memory among a plurality of ports
US6006287A (en) DMA transfer of an interleaved stream
US20050144338A1 (en) Data transfer apparatus
US11482264B2 (en) Memory module adapted to implementing computing functions
EP0479702A2 (en) System for transferring data between buses, using direct memory access devices
US20060259648A1 (en) Concurrent read response acknowledge enhanced direct memory access unit
KR100704218B1 (en) Data transfer unit
US20060218313A1 (en) DMA circuit and computer system
US7581072B2 (en) Method and device for data buffering
US20080320178A1 (en) DMA transfer apparatus
US20070028029A1 (en) Method and apparatus for data transfer
KR20070060854A (en) Multi-channel direct memory access controller
US20120089771A1 (en) Data Processing Apparatus
US20100030978A1 (en) Memory controller, memory control method, and image processing device
JP4517741B2 (en) Storage device
US8296481B2 (en) Device and method for improving transfer efficiency of odd number of data blocks
KR20070081981A (en) Interface method and apparatus in cpuless system
TWI819428B (en) Processor apparatus
JP2005235216A (en) Direct memory access control

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee