KR20010059875A - apparatus for Direct Memory Access transfer using single address mode - Google Patents

apparatus for Direct Memory Access transfer using single address mode Download PDF

Info

Publication number
KR20010059875A
KR20010059875A KR1019990067412A KR19990067412A KR20010059875A KR 20010059875 A KR20010059875 A KR 20010059875A KR 1019990067412 A KR1019990067412 A KR 1019990067412A KR 19990067412 A KR19990067412 A KR 19990067412A KR 20010059875 A KR20010059875 A KR 20010059875A
Authority
KR
South Korea
Prior art keywords
memory
peripheral device
dma
data
transfer
Prior art date
Application number
KR1019990067412A
Other languages
Korean (ko)
Other versions
KR100662275B1 (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 KR1019990067412A priority Critical patent/KR100662275B1/en
Publication of KR20010059875A publication Critical patent/KR20010059875A/en
Application granted granted Critical
Publication of KR100662275B1 publication Critical patent/KR100662275B1/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
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/28DMA
    • G06F2213/2806Space or buffer allocation for DMA transfers

Abstract

PURPOSE: A DMA transmitter using a single address mode is provided to rapidly transmit data by preventing waste of a memory in a DMA transmission between a memory device having different buses and peripheral devices. CONSTITUTION: A memory(10) reads or writes data in order. A peripheral device(20) corresponds to a reading/writing of the data in the memory(10). A multiplex buffer unit(32) is located between the memory(10) and the peripheral device(20). In addition, the multiplex buffer unit(32) interfaces the reading/writing between the memory(10) separated into a plurality of areas and the peripheral device(20). A buffer control unit(31) generates a signal for controlling the multiplex buffer unit(32). A control unit(40) controls a transmission between the memory(10) and the peripheral device(20).

Description

단일 번지 모드를 사용한 DMA 전송 장치{apparatus for Direct Memory Access transfer using single address mode}DMA transmission device using single address mode {apparatus for Direct Memory Access transfer using single address mode}

본 발명은 DMA(Direct Memory Access) 전송에 관한 것으로, 특히 32 비트의 데이터 버스선을 갖는 메모리와 상이한 크기의 데이터 버스선을 갖는 주변기기사이에서의 단일 번지(single-address) 모드 DMA 전송에 관한 것이다.FIELD OF THE INVENTION The present invention relates to direct memory access (DMA) transfers, and more particularly to single-address mode DMA transfers between memory having 32-bit data bus lines and peripherals having different size data bus lines. .

최근의 IC 집적 기술의 발달과 함께 중소형 전자 제품에서는 CPU 코어(core) 및 DMA 제어부, DRAM 메모리 제어부 등이 하나의 칩에 집적된 매립형(embedded) 제어기의 사용이 증가하고 있다.With the recent development of IC integrated technology, the use of embedded controllers in which a CPU core, a DMA controller, a DRAM memory controller, and the like are integrated in a single chip is increasing.

또한 대부분의 이러한 제품들은 최근의 다중 미디어(multi-media)환경에 대응하기 위하여 메모리와 주변기기간의 데이터 전송의 고속화가 필요하게 되었고, 이를 위하여 매립형 제어기에 내장된 DMA 제어부를 사용하고 있다.In addition, most of these products require high speed data transfer between memory and peripheral devices in order to cope with the recent multi-media environment, and for this purpose, the DMA controller embedded in the embedded controller is used.

통상 DMA 전송방식에는 두 가지의 전송방식이 있는데, 첫 번째로 메모리와 메모리간에 데이터를 전송하거나, 또는 서로 다른 데이터 버스선을 갖는 메모리와 주변기기간의 데이터 전송에 사용되는 이중 번지(dual-address) 모드 DMA 전송과,There are two types of DMA transfer methods. First, the dual-address mode is used to transfer data between memory and memory, or to transfer data between memory and peripheral devices having different data bus lines. DMA transfers,

두 번째로 동일한 데이터 버스선을 갖는 메모리와 주변기기간에 좀더 고속으로 데이터를 전송할 수 있는 단일 번지 모드 DMA(Direct Memory Access) 전송이 있다.Second, there is a memory with the same data bus line and a single address mode direct memory access (DMA) transfer that can transfer data at higher speeds in the peripheral period.

먼저 상기 첫 번째인 이중 주소 모드 DMA 전송은 전송될 데이터의 소스로부터 DMA용 버퍼에 데이터를 읽어오는 리드사이클(read cycle)과 이 버퍼링된 데이터를 수신지(destination)에 라이트(write)하는 라이트사이클(write cycle)등 두 번의 액세스 사이클(access cycle)이 한번의 데이터 전송과정에서 일어난다.First, the dual address mode DMA transfer is a read cycle for reading data from a source of data to be transmitted to a DMA buffer and a write cycle for writing the buffered data to a destination. Two access cycles (write cycles) occur during one data transfer.

이 이중 주소 모드 DMA 전송은 소스 장치와 수신지 장치간에 DMA 버퍼를 둠으로써, DMA 버퍼에서 데이터 버스선에 맞도록 패킹/언패킹(packing/unpacking)을 할 수가 있기 때문에 두 개의 장치가 서로 다른 사이즈의 데이터 버스선을 갖는 경우에도 DMA 전송이 가능하다.This dual-address mode DMA transfer allows two devices to be of different size because a DMA buffer can be placed between the source and destination devices, allowing the DMA buffer to be packed / unpacked to fit the data bus line. DMA transfer is possible even with a data bus line.

그리고 두 번째인 상기 단일 번지 모드 DMA 전송은 데이터의 버퍼링이 없이 메모리와 주변기기간 전송의 경우 한 번의 리드사이클 또는 라이트사이클로써 데이터 전송이 이루어진다.In the second single address mode DMA transfer, data transfer is performed in one read cycle or write cycle in the case of memory and peripheral period transfer without buffering the data.

그러므로 단일 번지 모드 DMA 전송은 이중 번지 모드 DMA 전송에 비해 빠른 속도로 데이터를 전송할 수 있는 장점이 있지만, 이중 번지 모드 DMA 전송과 같이 데이터의 패킹/언패킹을 할 수 있는 수단이 없기 때문에, 두 개의 장치가 서로 다른 데이터 버스선을 갖는 경우에는 사용할 수 없다는 단점이 있다.Therefore, single address mode DMA transfers have the advantage of faster data transfer than double address mode DMA transfers, but because there is no means to pack / unpack data like dual address mode DMA transfers, The disadvantage is that the devices cannot be used if they have different data bus lines.

최근에는 많은 수의 매립형 제어기들이 32 비트 이상의 CPU 코어를 가지고 있으며, 대부분의 사용자들은 제품의 성능을 위하여 DRAM 메모리 액세스에 32 비트의 데이터 버스선을 이용한 전송을 사용하고 있는 추세이다.In recent years, many embedded controllers have more than 32-bit CPU cores, and most users are using the transfer of 32-bit data bus lines for DRAM memory access for product performance.

그러나 이 제품들에 사용되는 주변기기들은 아직 16 비트, 또는 8 비트의 데이터 버스선이 사용되는 경우가 많다.However, the peripherals used in these products often use 16-bit or 8-bit data bus lines.

그러므로 32 비트의 데이터 버스선을 가지는 메모리와 16 비트 또는 8 비트의 데이터 버스선을 가지는 주변기기간의 데이터 전송은 이중 번지 모드DMA(Direct Memory Access) 전송을 사용하고, 또 전송 속도를 높이기 위한 방식으로 메모리의 일부 영역을 비워두는 방법을 이용하는 단일 번지 모드 DMA 전송을 사용하고 있다.Therefore, data transfer between a memory having a 32-bit data bus line and a peripheral device having a 16-bit or 8-bit data bus line uses dual address mode direct memory access (DMA) transfers and the memory in a manner to speed up the transfer. A single address mode DMA transfer is used, which uses a method that leaves some of the area blank.

그러면 도면을 참조하여 서로 상이한 사이즈의 데이터 버스선을 갖는 상기 메모리와 주변기기간의 데이터 전송을 설명해 보기로 하자.Next, the data transfer between the memory and the peripheral device having data bus lines of different sizes will be described with reference to the drawings.

먼저, 도 1에 나타낸 이중 번지 모드 DMA 전송을 보면 다음과 같다.First, the dual address mode DMA transfer shown in FIG. 1 is as follows.

설명의 간소화를 위해 주변기기의 데이터 버스선의 사이즈를 16 비트로 가정한다.For simplicity, the data bus line size of the peripheral device is assumed to be 16 bits.

먼저, 32 비트 사이즈의 데이터 버스선을 갖는 메모리(1)(이후 메모리라 약칭함)에서 16 비트 사이즈의 데이터 버스선을 갖는 주변기기(2)(이후 주변기기로 약칭함)로의 데이터 전송은 상기 주변기기(2)에서 DMA제어부(이하 DMAC라 약칭함) 버퍼(3)로 DMA를 요청하고 상기 DMAC 버퍼(3)는 상기 요청한 데이터가 저장된 메모리의 번지를 상기 메모리(1)에 전송한다.First, data transfer from a memory 1 having a 32-bit data bus line (hereinafter abbreviated as memory) to a peripheral device 2 having a 16-bit size data bus line (hereinafter abbreviated as a peripheral device) is performed by the peripheral device ( In 2), a DMA is requested to a DMA controller (hereinafter referred to as DMAC) buffer 3, and the DMAC buffer 3 transmits the address of the memory in which the requested data is stored to the memory 1.

이어 상기 메모리(1)는 수신된 번지에 해당되는 데이터를 상기 메모리(1)에서 상기 DMAC 버퍼(3)로 리드 사이클 동안에 전송한다.The memory 1 then transfers data corresponding to the received address from the memory 1 to the DMAC buffer 3 during a read cycle.

그리고 상기 DMAC 버퍼(3)는 상기 주변기기(2)로 확인응답 신호를 전송하고, 동시에 상기 DMAC 버퍼(3)에 저장된 32 비트 데이터를 16 비트 데이터 2 개로 분리하여 상기 주변기기(2)에 두 번의 라이트 사이클 동안에 상기 데이터를 각각 전송한다.The DMAC buffer 3 transmits an acknowledgment signal to the peripheral device 2, and simultaneously separates 32-bit data stored in the DMAC buffer 3 into two 16-bit data and writes to the peripheral device 2 twice. Each of these data is transmitted during the cycle.

그리고 주변기기(2)에서 메모리(1)로의 데이터 전송은 상기 주변기기(2)에서DMAC 버퍼(3)로 DMA(Direct Memory Access)에 버스의 제어권을 요청하면 상기 DMAC 버퍼(3)는 상기 버스의 제어권 요청에 따른 확인응답신호를 상기 주변기기(2)에 전송한다.The data transfer from the peripheral device 2 to the memory 1 requests the control right of the bus to the direct memory access (DMA) from the peripheral device 2 to the DMAC buffer 3, and the DMAC buffer 3 controls the control right of the bus. An acknowledgment signal is transmitted to the peripheral device 2 according to the request.

이어 상기 주변기기(2)는 전송하고자하는 16 비트 데이터를 DMAC 버퍼(3)에 두 번의 리드 사이클 동안에 32 비트의 데이터를 나누어서 전송한다.Then, the peripheral device 2 transmits the 16-bit data to be transmitted to the DMAC buffer 3 by dividing the 32-bit data in two read cycles.

그리고 상기 DMAC 버퍼(3)는 저장된 2 개의 16 비트 데이터를 한 번의 라이트 사이클을 실행하여 상기 메모리(1)에 저장될 번지와 함께 전송한다.The DMAC buffer 3 then transmits the two stored 16-bit data together with the address to be stored in the memory 1 by executing one write cycle.

이와 같이 메모리(1)에서 주변기기(2), 또는 주변기기(2)에서 메모리(1)로의 DMA 전송은 세 번의 액세스 사이클 동안에 한번의 데이터 전송이 이루어진다.As such, the DMA transfer from the memory 1 to the peripheral device 2 or from the peripheral device 2 to the memory 1 takes one data transfer for three access cycles.

다음으로 도 2와 도 3에 나타낸 단일 번지 모드 DMA 전송을 보면 다음과 같다.Next, the single address mode DMA transfer shown in FIGS. 2 and 3 is as follows.

먼저, 상기 주변기기(2)에서 DMA제어부(이하 DMAC로 약칭함)(4)로 DMA에 버스 제어권을 요청하면 상기 DMAC(4)는 메모리(1)로 요청된 데이터의 번지를 전송한 후, 주변기기(2)에 상기 요청에 따른 확인 응답신호를 전송한다.First, when the peripheral device 2 requests a bus control right to the DMA from the DMA controller (hereinafter abbreviated as DMAC) 4, the DMAC 4 transmits the address of the requested data to the memory 1, and then the peripheral device. The acknowledgment signal according to the request is transmitted to (2).

이때 상기 메모리(1)는 각각 16 비트의 메모리 영역을 갖도록 제 1, 2 메모리(1a)(1b)로 분리하고, 상기 제 1 메모리(1a)(또는 제 2 메모리(1b))를 공백으로 놓고 다른 제 2 메모리(1b)(또는 제 1 메모리(1a))에 데이터를 저장시켜 둔다.In this case, the memory 1 is divided into first and second memories 1a and 1b so as to have a memory area of 16 bits, and the first memory 1a (or the second memory 1b) is left blank. Data is stored in another second memory 1b (or first memory 1a).

따라서 메모리(1)에서 주변기기(2)로의 데이터 전송시에 상기 데이터가 저장된 제 2 메모리(1b)(또는 제 1 메모리(1a))를 DMA(Direct Memory Access) 제어에 의해 리드 사이클 동안에 주변기기(2)로 전송한다.Therefore, when transferring data from the memory 1 to the peripheral device 2, the second memory 1b (or the first memory 1a) in which the data is stored is transferred during the read cycle by the direct memory access (DMA) control. To send).

그리고 다음 리드 사이클 동안에 다음 데이터를 다른 메모리 영역인 제 4 메모리(1d)(또는 제 3 메모리(1c))에서 주변기기(2)로 전송한다.During the next read cycle, the next data is transferred from the fourth memory 1d (or the third memory 1c), which is another memory area, to the peripheral device 2.

이어 상기 주변기기(2)에서 메모리(1)로의 DMA 전송을 보면 상기 주변기기(2)에서 DMAC(4)로 DMA에 버스 제어권을 요청하면 상기 DMAC(4)는 메모리(1)로 해당 데이터의 번지를 전송한 후, 주변기기(2)에 상기 버스 제어권 요청에 따른 확인 응답신호를 전송한다.Subsequently, when the DMA transfer from the peripheral device 2 to the memory 1 is requested, when the peripheral device 2 requests a bus control right from the peripheral device 2 to the DMAC 4, the DMAC 4 transmits the address of the data to the memory 1. After the transmission, the acknowledgment signal according to the bus control right request is transmitted to the peripheral device 2.

그러면 주변기기(2)에서 16 비트의 데이터를 상기 메모리(1)에 두 번의 라이트 사이클 동안에 제 2 메모리(1b)(또는 제 1 메모리(1a))와 제 4 메모리(1d)(또는 제 3 메모리(1c))에 각각 전송한다.The peripheral device 2 then transmits 16 bits of data into the memory 1 during the second write cycle of the second memory 1b (or the first memory 1a) and the fourth memory 1d (or the third memory ( 1c)) respectively.

이때 제 1 메모리(1a)(또는 제 2 메모리(1b)) 또는 제 3 메모리(1c)(제 4 메모리(1d))는 공백으로 남게 된다.At this time, the first memory 1a (or the second memory 1b) or the third memory 1c (the fourth memory 1d) is left blank.

따라서 두 번의 리드(read) 또는 라이트(write) 사이클동안에 32 비트 데이터의 전송이 이루어지게 된다.Therefore, 32-bit data is transferred in two read or write cycles.

그러나 이상에서 설명한 종래 기술에 따른 DMA(Direct Memory Access) 전송은 다음과 같은 문제점이 있다.However, the conventional direct memory access (DMA) transfer described above has the following problems.

첫째, 이중 번지 모드 DMA 전송의 경우에는 한 번의 리드 사이클과 두 번의 라이트 사이클로써 전송이 일어나므로 전송시간이 늦어지는 문제가 있다.First, in the case of the dual address mode DMA transfer, the transfer time is delayed because the transfer occurs in one read cycle and two write cycles.

둘째, 단일 번지 모드 DMA 전송의 경우에는 메모리의 낭비와 메모리상에서의 데이터 패킹/언패킹을 위한 코드실행에 의한 지연이 발생한다는 단점이 있다.Second, in case of single address mode DMA transfer, there is a disadvantage that a waste of memory and a delay due to code execution for data packing / unpacking occur in the memory.

셋째, 대부분의 매립형 제어기들은 DRAM 메모리 제어기가 칩 내부에 매립되어 있기 때문에 DRAM 라이트 액세스시에는 전송 사이즈(32 비트, 16 비트 혹은 8 비트) 및 유효한 데이터 바이트의 위치를 파악할 수 있는 정보가 칩의 외부로 제공되지 않는다는 문제가 있다.Third, since most embedded controllers have a DRAM memory controller embedded in the chip, information on the transfer size (32 bits, 16 bits, or 8 bits) and valid data bytes can be located at the time of DRAM write access. There is a problem that is not provided.

따라서 본 발명은 상기와 같은 문제점을 해결하기 위해 안출한 것으로서, 상이한 데이터 버스를 가지는 메모리 장치와 주변기기 장치들 간에 DMA 전송에서 메모리의 낭비를 줄이면서 빠른 전송이 이루어지는 단일 번지 모드를 사용한 DMA 전송 장치를 제공하는데 그 목적이 있다.Accordingly, the present invention has been made to solve the above problems, and provides a DMA transfer apparatus using a single address mode in which fast transfer is performed while reducing memory waste in DMA transfers between memory devices and peripheral devices having different data buses. The purpose is to provide.

도 1은 종래 기술에 따른 이중 번지 모드 DMA 전송을 나타낸 블록도1 is a block diagram illustrating a dual address mode DMA transfer according to the prior art.

도 2 는 종래 기술에 따른 단일 번지 모드 DMA 전송을 나타낸 블록도2 is a block diagram illustrating a single address mode DMA transfer according to the prior art.

도 3 은 종래 기술에 따른 단일 번지 모드 DMA 전송시 상이한 버스선이 사용된 메모리와 주변기기간의 전송을 나타낸 블록도3 is a block diagram showing a transfer between a memory and a peripheral device using different bus lines in a single address mode DMA transfer according to the prior art;

도 4 는 본 발명에 따른 단일 번지 모드를 사용한 DMA 전송을 나타낸 블록도4 is a block diagram showing a DMA transfer using a single address mode according to the present invention.

도 5 는 본 발명에 따른 버퍼 제어부의 회로도5 is a circuit diagram of a buffer controller according to the present invention.

도 6 은 본 발명에 따른 32 비트의 데이터 버스선을 갖는 메모리와 16 비트의 데이터 버스선을 갖는 주변기기간의 DMA 전송을 나타낸 블록도6 is a block diagram showing a DMA transfer between a memory having a 32-bit data bus line and a peripheral having a 16-bit data bus line in accordance with the present invention.

도 7 은 본 발명에 따른 DMA 데이터 전송시에 사용되는 신호들의 타이밍도7 is a timing diagram of signals used in DMA data transmission according to the present invention.

도 8 은 본 발명에 따른 32 비트의 데이터 버스선을 갖는 메모리와 8 비트의 데이터 버스선을 갖는 주변기기간의 DMA 전송을 나타낸 블록도8 is a block diagram showing a DMA transfer between a memory having a 32-bit data bus line and a peripheral having an 8-bit data bus line in accordance with the present invention.

*도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings

10, 10a : 메모리 20 : 주변기기10, 10a: memory 20: peripheral device

31 : 버퍼 제어부 32, 32a : 멀티플렉스 버퍼부31: buffer control section 32, 32a: multiplex buffer section

40 : 매립형 제어부40: buried control unit

상기와 같은 목적을 달성하기 위한 본 발명에 따른 단일 번지 모드를 사용한 DMA 전송 장치의 특징은 다수 개의 영역으로 분리된 메모리와 상기 메모리와 상이한 버스선으로 연결된 주변기기간에 데이터를 순차적으로 리드(read) 또는 라이트(write)하는 DMA 전송에 있어서, 상기 메모리와 주변기기사이에 위치하여 상기 다수 개의 영역으로 분리된 메모리와 주변기기간의 리드 또는 라이트를 인터페이스하는 멀티플렉스 버퍼부와, 상기 멀티플렉스 버퍼부를 제어하는 버퍼 제어부를 포함하여 구성되는데 있다.A feature of the DMA transfer apparatus using the single address mode according to the present invention for achieving the above object is to sequentially read or read data in a memory divided into a plurality of areas and peripheral periods connected by different bus lines with the memory. In a write DMA transfer, a multiplex buffer unit for interfacing reads or writes between a memory and a peripheral device located between the memory and the peripheral device and divided into the plurality of areas, and a buffer control unit controlling the multiplex buffer unit. It is configured to include.

본 발명에 따른 다른 특징은 상기 버퍼 제어부에서 액세스되는 메모리의 번지 정보의 일부를 기존의 번지 핀 A1, A0을 통하여 칩 외부에 알려주는데 있다.Another feature of the present invention is to inform a part of the address information of the memory accessed by the buffer controller to the outside of the chip through the existing address pins A1 and A0.

본 발명의 특징에 따른 작용은 메모리와 주변기기사이에 멀티플렉스 버퍼부를 구성하여 상이한 데이터 버스선을 가지는 메모리와 주변기기간에 단일 모드 DMA전송이 가능하여 빠른 전송과 메모리의 낭비를 줄일 수 있다.According to an aspect of the present invention, a multiplex buffer unit is formed between a memory and a peripheral device, so that a single mode DMA transfer can be performed between a memory having a different data bus line and a peripheral period, thereby reducing the speed of the transfer and the waste of the memory.

본 발명의 다른 목적, 특성 및 잇점들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.Other objects, features and advantages of the present invention will become apparent from the following detailed description of embodiments taken in conjunction with the accompanying drawings.

본 발명에 따른 단일 번지 모드를 사용한 DMA 전송 장치의 바람직한 실시예에 대하여 첨부한 도면을 참조하여 설명하면 다음과 같다.A preferred embodiment of a DMA transfer apparatus using a single address mode according to the present invention will be described with reference to the accompanying drawings.

DMA 제어에 사용되는 제어신호는 각 칩 메이커마다 다양한 이름으로 사용되고 있다.Control signals used for DMA control are used under various names for each chip maker.

따라서 이하 내용은 모토롤라의 DMA 제어신호 및 버스 신호를 사용하여 동작설명을 하기로 하며, 32 비트의 데이터 버스를 갖는 DRAM 메모리와 16 비트의 데이터 버스선을 갖는 주변기기간의 DMA 전송의 경우를 예로 들어 설명하기로 한다.Therefore, the following description will explain the operation using Motorola's DMA control signal and bus signal, DMA transfer between a DRAM memory having a 32-bit data bus and a peripheral device having a 16-bit data bus line as an example. Let's do it.

본 발명에 따른 단일 번지 모드를 사용한 DMA 전송 장치의 구성은 도 4의 블록도와 같다.The configuration of the DMA transfer apparatus using the single address mode according to the present invention is shown in the block diagram of FIG.

도 4를 보면 다수 개의 영역으로 분리하고 상기 각 영역에 데이터를 순차적으로 리드(read) 또는 라이트(write)하는 메모리와(10), 상기 메모리(10)내 데이터의 리드와 라이트에 대응하는 주변기기(20)와, 상기 메모리(10)와 주변기기(20)사이에 위치하여 상기 다수 개의 영역으로 분리된 메모리(10)와 주변기기(20)간의 리드 또는 라이트를 인터페이스하는 멀티플렉스 버퍼부(32), 상기 멀티플렉스 버퍼부(32)를 제어하기 위한 신호를 생성하는 버퍼 제어부(31)와, 상기 메모리(10)와 주변기기(20)간의 전송을 제어하는 매립형 제어부(40)로 구성된다.Referring to FIG. 4, the memory 10 is divided into a plurality of areas and sequentially reads or writes data in each area, and a peripheral device corresponding to the read and write of data in the memory 10. 20 and a multiplex buffer unit 32 positioned between the memory 10 and the peripheral device 20 to interface reads or writes between the memory 10 and the peripheral device 20 divided into the plurality of areas. A buffer control unit 31 for generating a signal for controlling the multiplex buffer unit 32, and a buried control unit 40 for controlling the transfer between the memory 10 and the peripheral device 20.

상기 멀티플렉스 버퍼부(32)는 두 개의 16 비트선의 245 버퍼인 FCT 16245로구성된다.The multiplex buffer section 32 is composed of FCT 16245, which is a 245 buffer of two 16-bit lines.

이와 같이 구성된 단일 번지 모드를 사용한 DMA 전송 장치의 동작을 보면, 상기 각 버퍼(32)의 출력 인에이블(enable) 핀으로 OE1 및 OE2에 '1'의 값이 각각 입력되면 16 비트의 입력단 신호가 16 비트의 출력단으로 전달된다.Referring to the operation of the DMA transmission apparatus using the single address mode configured as described above, when the value of '1' is input to OE1 and OE2 through the output enable pin of each buffer 32, the 16-bit input terminal signal It is delivered to the output of 16 bits.

이때 입/출력의 방향은 디렉션(direction) 핀인 DIR에 인가되는 신호의 값에 의하여 결정된다.At this time, the direction of input / output is determined by the value of the signal applied to the direction pin (DIR).

그리고 상기 DIR 값이 '1'일 때 메모리(10)로부터 주변기기(20)로 데이터가 전달되고, 상기 DIR 값이 '0' 일 때 주변기기(20)로부터 메모리(10)로 데이터가 전달된다.When the DIR value is '1', data is transferred from the memory 10 to the peripheral device 20. When the DIR value is '0', data is transferred from the peripheral device 20 to the memory 10.

상기 버퍼 제어부(31)는 매립형 제어부(40)로부터 출력되는 사이클에 관련된 신호정보를 이용하여 멀티플렉스 버퍼부(32)를 제어할 신호를 만들어 낸다.The buffer controller 31 generates a signal for controlling the multiplex buffer unit 32 using signal information related to a cycle output from the embedded controller 40.

이때 사용되는 매립형 제어부(40)로부터의 신호는 해당 주변기기(20)에 대한 칩 선택 신호, 또는 라이트 사이클인가를 나타내는 신호 R/nW 과, 그리고 현재 액세스되는 16 비트 데이터의 데이터 버스 상에서의 위치를 알 수 있는 정보인 번지 라인 신호 A1이다.The signal from the embedded control unit 40 used here knows the chip select signal for the peripheral device 20, or the signal R / nW indicating whether it is a write cycle, and the position on the data bus of the currently accessed 16-bit data. Address line signal A1, which is information that can be used.

버퍼 제어부의 회로는 도 5와 같이 구성되며, 논리식(equation)으로 표시하면 아래와 같다.The circuit of the buffer controller is configured as shown in FIG. 5, and is represented by the following equation.

[논리식 1][Logic 1]

OE1=(!FC3 & !nCS)#(FC3 & !A1);OE1 = (! FC3 &! NCS) # (FC3 &! A1);

OE2=FC3 & A1;OE2 = FC3 &A1;

DIR=(!FC3 & !R/nW)#(FC3 & R/nW);DIR = (! FC3 &! R / nW) # (FC3 & R / nW);

상기 버퍼 제어부(31)의 제어신호 OE1, OE2, 그리고 DIR은 도 6과 같이 멀티플렉스 버퍼부(32)의 각각의 16245 버퍼에 연결된다.The control signals OE1, OE2, and DIR of the buffer controller 31 are connected to the respective 16245 buffers of the multiplex buffer unit 32 as shown in FIG. 6.

이와 같이 각 신호가 연결되어 있으면, CPU로부터의 주변기기(20)에 대한 보통의 액세스 시에는 nCS가 '0'이 되고, 데이터 라인은 메모리의 상부 영역인 D[31:16]에 연결된 16245 버퍼만이 인에이블(enable) 되며, 데이터의 전송 방향은 R/nW 신호에 의해서 데이터 리드(read)시와 데이터 라이트(write)시에 각각 결정된다.When each signal is connected in this way, nCS becomes '0' during normal access to the peripheral device 20 from the CPU, and the data line is only 16245 buffers connected to D [31:16], which is the upper area of the memory. This is enabled, and the data transfer direction is determined at the time of data read and at the time of data write by the R / nW signal.

이때 데이터 라인의 하부 부분인 D[15:0]에 연결된 16245 버퍼는 항상 쓰기 금지(disable)된다.At this time, the 16245 buffer connected to the lower portion of the data line D [15: 0] is always write disabled.

그리고 DMA(Direct Memory Access) 전송시의 동작은 다음과 같다.The operation during DMA (Direct Memory Access) transfer is as follows.

먼저, DMA 전송 시에는 DMA 제어부의 제어 레지스터를 구성한다.First, at the time of DMA transfer, a control register of the DMA control unit is configured.

이때 DMA 전송 사이즈는 16 비트로 DMA 전송 모드는 단일 번지 모드로 한다.In this case, the DMA transfer size is 16 bits and the DMA transfer mode is a single address mode.

메모리(10)에서 주변기기(20)로의 전송인 경우 소스 번지 레지스터, 또는 주변기기(20)에서 메모리(10)로의 전송인 경우 수신지(destination) 번지 레지스터에 메모리의 번지를 입력하고 전송카운터 레지스터 등을 셋팅한 후, DAM 전송을 시작한다.In the case of the transfer from the memory 10 to the peripheral device 20, or in the case of the transfer from the peripheral device 20 to the memory 10, the address of the memory is input to the destination address register and the transfer counter register is inputted. After setting, start DAM transmission.

이때 매립형 제어부(40)는 외부로부터의 DMA 전송 요청신호인 DREQ가 액티브되기를 기다리게 된다.At this time, the embedded controller 40 waits for the DREQ, which is a DMA transfer request signal from the outside, to be activated.

그리고 주변기기(20)는 DMA 전송 모드로 셋팅되고, 이어 주변기기(20)는 상기 DREQ 신호를 액티브시킨다.The peripheral device 20 is set to the DMA transfer mode, and the peripheral device 20 then activates the DREQ signal.

이 DREQ 신호를 받은 매립형 제어부(40)는 버스의 제어권을 얻은 후 DMA 확인응답(acknowledge)신호인 DACK를 주변기기(20)로 전송하고 매립형 제어부(40)내의 메모리 제어부에 DRAM의 번지 및 전송 사이즈가 16 비트라는 신호를 인가한다.The embedded control unit 40 receiving the DREQ signal transmits a DACK, which is a DMA acknowledgment signal, to the peripheral device 20 after obtaining the control right of the bus, and the address and transfer size of the DRAM are stored in the memory control unit in the embedded control unit 40. Apply a signal of 16 bits.

동시에 DMA 스페이스 펑션(space function) 코드 FC3, 리드/라이트(read/write) 신호 R/nW, 그리고 번지 라인 신호 A1 등이 칩 외부로 릴리스(release)된다.At the same time, the DMA space function code FC3, the read / write signal R / nW, and the address line signal A1 are released off the chip.

이때 상기 메모리 제어부는 DRAM 메모리(10)의 데이터 버스선이 32 비트로 셋팅되어 있기 때문에 메모리(10)에 대한 DMA 리드 사이클 시(메모리에서 주변기기로 전송)에는 번지 라인 A1/A0의 값을 무시하고 모든 열 번지 스트로브(column address strobe) 신호인 CAS들을 액티브 시킴으로써 메모리(10)에 대한 32 비트 액세스를 하게 된다.At this time, since the data bus line of the DRAM memory 10 is set to 32 bits, the memory controller ignores the values of the address lines A1 / A0 during the DMA read cycle (transfer from the memory to the peripheral device) for the memory 10. 32-bit access to memory 10 is achieved by activating CASs, which are column address strobe signals.

동시에 버퍼 제어부(31)는 입력되는 FC3(=='1'), A1, R/nW(=='1') 신호로부터 A1의 값에 따라 A1=='0'일 경우에는 OE1='1', OE2='0'을 출력하고, A1=='1'일 경우에는 OE1='0', OE2='1'을 출력한다.At the same time, the buffer control section 31, from the input FC3 (== '1'), A1, R / nW (== '1') signals, according to the value of A1, OE1 = '1. ', OE2 =' 0 'is outputted, and when A1 ==' 1 ', OE1 =' 0 'and OE2 =' 1 'are outputted.

그리고 DIR을 '0'으로 출력함으로써 멀티플렉스 버퍼부(32)를 제어하여 유효한 데이터 버스(D[31:16] 또는 D[15:0])를 통하여 16 비트 데이터를 전송하게 된다.By outputting DIR as '0', the multiplex buffer unit 32 is controlled to transmit 16-bit data through a valid data bus D [31:16] or D [15: 0].

이어 매립형 제어부(40)는 다음 DMA 사이클을 수행하고, 이때 액세스될 메모리 번지를 2 증가시키고 위와 같은 순서로 이루어진다.Subsequently, the embedded control unit 40 performs the next DMA cycle, and at this time, increases the memory address to be accessed by 2 and is made in the above order.

이와 같은 DAM 동작이 DMA 카운터 레지스터의 카운터 값이 '0'이 될 때까지 계속 반복된다.This DAM operation is repeated until the counter value of the DMA counter register becomes '0'.

즉, 실시예를 통해서 간단하게 설명하면 메모리(10)에서 주변기기(20)로의 전송은 상기 메모리(10)를 데이터 버스선이 16 비트를 갖는 제 1 메모리와 제 2 메모리로 각각 분리한다.That is, the description will be briefly made through the embodiment. The transfer from the memory 10 to the peripheral device 20 separates the memory 10 into a first memory and a second memory having 16 bits of data bus lines.

이때 제 1 메모리 또는 제 2 메모리 중 어느 하나는 데이터를 저장시키고 다른 하나는 공백으로 두는 종래의 방법은 메모리의 낭비를 초래하였으므로, 이를 해결하기 위해 본 발명에서는 제 1 메모리와 제 2 메모리에 각각 데이터를 저장한다.In this case, since the conventional method of storing either data in the first memory or the second memory and leaving the other blank is a waste of memory, in order to solve the problem, in the present invention, the data is stored in the first memory and the second memory, respectively. Save it.

즉, 16 비트 단위로 전송될 데이터가 '1','2','3', ... '8','9','10'이라고 가정할 경우 제 1 메모리에 '1','3','5','7','9'를 저장하고 제 2 메모리에는 '2','4','6','8','10'을 각각 저장하여 상기 버퍼 제어부(31)에서 발생된 OE1==1 신호에 의해 멀티플렉스 버퍼부(32)에서 제 1 메모리의 데이터 '1','3','5','7','9'를 주변기기(20)로 전송한다.That is, assuming that data to be transmitted in units of 16 bits is' 1 ',' 2 ',' 3 ', ...' 8 ',' 9 ',' 10 ', the' 1 ',' 3 in the first memory. ',' 5 ',' 7 ',' 9 'are stored in the second memory, and' 2 ',' 4 ',' 6 ',' 8 ',' 10 'are respectively stored in the second memory. The multiplex buffer unit 32 transmits data '1', '3', '5', '7', and '9' of the first memory to the peripheral device 20 by the generated OE1 == 1 signal.

그리고 OE2==1 신호에 의해 멀티플렉스 버퍼부(32)에서 제 2 메모리의 데이터 '2','4','6','8','10'을 주변기기(20)로 전송한다.The multiplex buffer unit 32 transmits data '2', '4', '6', '8', and '10' of the second memory to the peripheral device 20 by the signal OE2 == 1.

이때 주변기기(20)로의 32비트 전송은 두 번의 리드 사이클 동안에 데이터 전송이 이루어진다.At this time, the 32-bit transmission to the peripheral device 20 is a data transmission during two read cycles.

그리고 주변기기(20)에서 메모리(10)로의 전송은 메모리(10)에서 주변기기(20)로의 전송과 반대 과정을 거쳐 메모리(10)에 저장되며 이때도 32비트 데이터의 두 번의 라이트 사이클 동안에 이루어진다.The transfer from the peripheral device 20 to the memory 10 is stored in the memory 10 through the reverse process of the transfer from the memory 10 to the peripheral device 20, and is also performed during two write cycles of 32-bit data.

따라서 메모리(10)에는 공백 영역이 없어지고 빠른 시간동안에 주변기기(20)와의 데이터 리드(read) 또는 라이트(write)가 이루어진다.Therefore, the memory 10 has no blank area, and data reads or writes with the peripheral device 20 are performed in a short time.

도 7 은 본 발명에 따른 DMA 데이터 전송시에 만들어지는 신호들의 타이밍도로, 편의상 두 번의 메모리(10)에서 주변기기(20)로의 DMA 전송 사이클과, 두 번의 주변기기(20)에서 메모리(10) DMA 전송 사이클을 하나의 버스트(burst)로 가정하여 나타낸 것이다.7 is a timing diagram of signals generated during DMA data transfer according to the present invention. For convenience, two DMA transfer cycles from the memory 10 to the peripheral device 20 and two DMA transfers of the memory 10 from the peripheral device 20 are shown. The cycle is assumed to be a burst.

따라서, 4 바이트(==32 비트)의 연속된 데이터를 전송하는 것을 가정하면, 이중 번지 모드 DMA 전송을 사용한 경우는 한번의 메모리 액세스와 두 번의 주변기기 액세스 등 모두 세 번의 DMA 사이클이 필요한 반면에, 본 발명에서 고안된 회로를 이용한 단일 번지 모드 DMA 전송은 두 번의 DMA 사이클이면 전송이 완료되기 때문에 이중 번지 모드 DMA 전송에 비해 빠른 전송효과를 얻을 수 있다.Thus, assuming four bytes (== 32 bits) of contiguous data transfer, a dual address mode DMA transfer would require three DMA cycles, one memory access and two peripheral accesses. In the single address mode DMA transmission using the circuit devised in the present invention, since the transmission is completed in two DMA cycles, it is possible to obtain a faster transmission effect than the double address mode DMA transmission.

도 8은 32 비트의 데이터 버스선을 갖는 메모리(10a)와 8 비트의 데이터 버스선을 갖는 주변기기(20)간의 DMA 전송을 위한 신호의 연결도이며, 이때의 OE1 내지 OE4 및 DIR 신호의 논리식은 다음과 같다.FIG. 8 is a connection diagram of signals for DMA transfer between a memory 10a having a 32-bit data bus line and a peripheral device 20 having an 8-bit data bus line. In this case, the logical expressions of OE1 to OE4 and DIR signals are shown in FIG. As follows.

[논리식 2][Logical 2]

OE1 = (!FC3 & !nCS)#(FC3 & !A1 & !A0);OE1 = (! FC3 &! NCS) # (FC3 &! A1 &! A0);

OE2 = FC3 & !A1 & A0;OE2 = FC3 &! A1 &A0;

OE3 = FC3 & A1 & !A0;OE3 = FC3 & A1 &! A0;

OE4 = FC3 & !A1 & !A0;OE4 = FC3 &! A1 &! A0;

DIR = (!FC3 & !R/nW)#(FC3 & R/nW);DIR = (! FC3 &! R / nW) # (FC3 & R / nW);

그리고 동작 설명은 상기 32 비트의 데이터 버스선을 갖는 메모리(10)와 16 비트의 데이터 버스선을 갖는 주변기기(20)간의 DMA 전송 설명과 동일하므로 생략한다.Since the operation description is the same as the description of the DMA transfer between the memory 10 having the 32-bit data bus line and the peripheral device 20 having the 16-bit data bus line, the description thereof is omitted.

이상에서 설명한 바와 같은 본 발명에 따른 단일 번지 모드를 사용한 DMA 전송 장치는 다음과 같은 효과가 있다.As described above, the DMA transfer apparatus using the single address mode according to the present invention has the following effects.

첫째, 32 비트의 데이터 버스선을 갖는 메모리와 16 비트의 데이터 버스선을 갖는 주변기기간의 단일 번지 모드 DMA 전송을 구현할 수 있으며, 상대적으로 기존에 사용하던 이중 번지 모드 DMA 전송보다 빠르게 데이터를 전송할 수 있으므로 DMA 전송률을 개선하는 효과가 있다.First, single address mode DMA transfers can be implemented between memory with 32-bit data bus lines and peripherals with 16-bit data bus lines, and data can be transferred faster than conventional double address mode DMA transfers. There is an effect of improving the DMA transfer rate.

둘째, 16 비트의 호스트 인터페이스를 갖는 DTV 준비 칩(ready chip)에 적용하면 시스템의 성능을 높일 수 있는 효과를 볼 수 있다.Second, when applied to a DTV ready chip having a 16-bit host interface, the performance of the system can be improved.

이상 설명한 내용을 통해 당업자라면 본 발명의 기술 사상을 이탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다.Those skilled in the art will appreciate that various changes and modifications can be made without departing from the spirit of the present invention.

따라서, 본 발명의 기술적 범위는 실시예에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의하여 정해져야 한다.Therefore, the technical scope of the present invention should not be limited to the contents described in the embodiments, but should be defined by the claims.

Claims (1)

다수 개의 영역으로 분리하고 상기 각 영역에 데이터를 순차적으로 리드(read) 또는 라이트(write)하는 메모리와,A memory that divides into a plurality of areas and sequentially reads or writes data in each of the areas; 상기 메모리내 데이터의 리드와 라이트에 대응하는 주변기기와,A peripheral device corresponding to reading and writing of data in the memory; 상기 메모리와 주변기기사이에 위치하여 상기 다수 개의 영역으로 분리된 메모리와 주변기기간의 리드 또는 라이트를 인터페이스하는 멀티플렉스 버퍼부를 포함하여 구성되는 것을 특징으로 하는 단일 번지 모드를 사용한 DMA 전송 장치.And a multiplex buffer unit positioned between the memory and the peripheral device and interfacing read or write between the memory and the peripheral device separated into the plurality of areas.
KR1019990067412A 1999-12-30 1999-12-30 apparatus for Direct Memory Access transfer using single address mode KR100662275B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990067412A KR100662275B1 (en) 1999-12-30 1999-12-30 apparatus for Direct Memory Access transfer using single address mode

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990067412A KR100662275B1 (en) 1999-12-30 1999-12-30 apparatus for Direct Memory Access transfer using single address mode

Publications (2)

Publication Number Publication Date
KR20010059875A true KR20010059875A (en) 2001-07-06
KR100662275B1 KR100662275B1 (en) 2007-01-02

Family

ID=19634521

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990067412A KR100662275B1 (en) 1999-12-30 1999-12-30 apparatus for Direct Memory Access transfer using single address mode

Country Status (1)

Country Link
KR (1) KR100662275B1 (en)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5982672A (en) * 1996-10-18 1999-11-09 Samsung Electronics Co., Ltd. Simultaneous data transfer through read and write buffers of a DMA controller

Also Published As

Publication number Publication date
KR100662275B1 (en) 2007-01-02

Similar Documents

Publication Publication Date Title
EP0392657B1 (en) System providing cache coherent direct memory access between dissimilar bus systems
US5379384A (en) Configuration data loopback in a bus bridge circuit
US5647057A (en) Multiple block transfer mechanism
US5890012A (en) System for programming peripheral with address and direction information and sending the information through data bus or control line when DMA controller asserts data knowledge line
US20040107265A1 (en) Shared memory data transfer apparatus
KR19990022324A (en) Burst Transmission Systems and Methods on Peripheral Interconnect Buses
JPH03129548A (en) Dual-port-memory and communication method thereof
US5088028A (en) Lock converting bus-to-bus interface system
US7062588B2 (en) Data processing device accessing a memory in response to a request made by an external bus master
US6898659B2 (en) Interface device having variable data transfer mode and operation method thereof
US20010016922A1 (en) Emulator and method of emulation for testing a system
US20070043910A1 (en) Memory control apparatus executing prefetch instruction
US6681279B1 (en) Method of performing bus arbitration between control chips in a chipset with preemptive capability
US6996655B1 (en) Efficient peer-to-peer DMA
KR100662275B1 (en) apparatus for Direct Memory Access transfer using single address mode
EP0391537B1 (en) Lock converting bus-to-bus interface system
US6163818A (en) Streaming memory controller for a PCI bus
US6442643B1 (en) System and method for resolving data transfer incompatibilities between PCI and Non-PCI buses
US20010002481A1 (en) Data access unit and method therefor
US20020188771A1 (en) Direct memory access controller for carrying out data transfer by determining whether or not burst access can be utilized in an external bus and access control method thereof
KR100441996B1 (en) Direct Memory Access(DMA) Controller and control method
KR100606698B1 (en) Interfacing apparatus
KR100690597B1 (en) Single mode direct memory access application method using cpu applying dual mode direct memory access
JP2574821B2 (en) Direct memory access controller
KR0170742B1 (en) Data transfer method using mbus

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20090929

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee