KR20000060513A - Interfacing apparatus - Google Patents
Interfacing apparatus Download PDFInfo
- Publication number
- KR20000060513A KR20000060513A KR1019990008853A KR19990008853A KR20000060513A KR 20000060513 A KR20000060513 A KR 20000060513A KR 1019990008853 A KR1019990008853 A KR 1019990008853A KR 19990008853 A KR19990008853 A KR 19990008853A KR 20000060513 A KR20000060513 A KR 20000060513A
- Authority
- KR
- South Korea
- Prior art keywords
- external
- data
- host
- memory
- host system
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/28—DMA
- G06F2213/2806—Space or buffer allocation for DMA transfers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
Description
본 발명은 버스의 크기가 다른 호스트 시스템 메모리와 외부 입/출력 디바이스와의 인터페이스가 가능하도록 하는 인터페이스 장치에 관한 것이다.The present invention relates to an interface device that enables an interface between a host system memory having a different bus size and an external input / output device.
일반적으로, 호스트 마이크로 프로세서를 기본으로 하는 대부분의 시스템에서 메모리 간의 블록 전송이나, 메모리와 외부 입/출력(Input/Output ; I/O) 디바이스간의 데이터 전송을 프로그램에 의한 방법을 사용하면 데이터 전송률이 낮아지며, 마이크로 프로세서는 거의 모든 시간을 메모리와 외부 I/O 디바이스간의 데이터 전송에 관여하게 된다.In general, in most systems based on host microprocessors, data transfer rates can be achieved by using programmatic methods of block transfer between memory or data transfer between memory and external input / output (I / O) devices. As a result, the microprocessor spends most of its time involved in transferring data between memory and external I / O devices.
또한, 보통의 외부 I/O 디바이스의 응답 속도가 느리므로 이때, 외부 I/O 디바이스가 데이터 전송을 할려면 마이크로 프로세서가 폴링(polling)으로 기다려야 되고, 데이터를 전송할 때 프로그램이 데이터를 마이크로 프로세서 내에 있는 레지스터에 넣었다가 다시 메모리에 저장해야 하므로 시간적 낭비가 많다.Also, since the external I / O device responds slowly, the microprocessor must wait for polling before the external I / O device can transmit data. This is a waste of time because it must be put in a register and stored back in memory.
따라서, 데이터 전송률을 높이면서 시스템의 효율을 높이기 위해서 데이터 전송을 전담하는 제 2의 중앙처리장치(Central Process Unit ; CPU)인 직접 메모리 억세스 제어기(Direct Memory Access Controller ; DMAC)를 마이크로 프로세서 내에 두어서 직접적으로 메모리와 메모리 또는 외부 I/O 디바이스와 메모리간의 데이터 전송을 처리할 수 있도록 하고 있다. 여기서, 상기 DMAC는 데이터 전송을 DMA 방식으로 수행할 때 마이크로 프로세서와는 독립된 전송 회로(채널)을 형성시켜 데이터의 주고 받기를 메모리와 외부 I/O 디바이스 사이에 직접 수행할 수 있도록 제어한다. 상기 DMA는 마이크로 프로세서와 같은 연산 처리 장치를 경유하지 않고 직접 외부 I/O 디바이스와 메모리 사이에서 데이터의 주고받기를 수행하는 것을 말한다. 일 예로, 메모리와 플로피 디스크 장치, 또는 자기 드럼 장치 등의 사이에 데이터의 블록 전송을 실행하는 경우에 흔히 사용된다.Therefore, in order to improve the efficiency of the system while increasing the data transfer rate, a direct memory access controller (DMAC), a second central processing unit (CPU) dedicated to data transfer, is placed in the microprocessor. It allows direct data processing between memory and memory or between external I / O devices and memory. In this case, the DMAC forms a transmission circuit (channel) independent from the microprocessor when performing data transmission in a DMA manner so that data can be directly transmitted and received between the memory and the external I / O device. The DMA refers to performing data exchange between an external I / O device and a memory directly without passing through an operation processing device such as a microprocessor. For example, it is commonly used when a block transfer of data is performed between a memory and a floppy disk device or a magnetic drum device.
이때, 호스트 마이크로 프로세서의 데이터 버스 크기가 32비트이고 외부 I/O 디바이스의 데이터 버스 크기가 16비트라면 전체 메모리의 낭비없이 DMAC를 이용하여 메모리와 외부 I/O 디바이스 간의 32비트 데이터 전송을 하는 것은 불가능하다.At this time, if the data bus size of the host microprocessor is 32 bits and the data bus size of the external I / O device is 16 bits, transferring 32-bit data between the memory and the external I / O device using DMAC without wasting the whole memory is necessary. impossible.
도 1은 상기와 같이 호스트 마이크로 프로세서(100)가 32비트 데이터 메모리 버스 크기를 갖고, 외부 I/O 디바이스(101)는 16비트 데이터 버스 크기를 갖는 종래 시스템의 구성 블록도로서, 물리적인 데이터 버스가 외부 I/O 디바이스(101)에 하위 16비트(D[0:15])만 인터페이스할 수 있다.1 is a block diagram illustrating a conventional system in which the host microprocessor 100 has a 32-bit data memory bus size and the external I / O device 101 has a 16-bit data bus size. Can interface only the lower 16 bits (D [0:15]) to the external I / O device 101.
즉, 호스트 시스템 메모리(102,103) 데이터 버스의 D[0:15]만 외부 I/O 디바이스(101)의 IO_D[0:15]와 연결할 수 있다. 상위 16비트(D[15:31])는 외부 I/O 디바이스(101)와 직접 연결할 수가 없다.That is, only D [0:15] of the host system memory 102, 103 data buses may be connected to IO_D [0:15] of the external I / O device 101. The upper 16 bits (D [15:31]) cannot be directly connected to the external I / O device 101.
이로 인해, 호스트 시스템 메모리(102,103)에서 DMA 동작으로 메모리 데이터를 외부 I/O 디바이스(101)에 전송할 때 상위 16비트(D[16:31])의 데이터는 전송할 수가 없다. 그래서, 전송할 데이터를 메모리(102,103)에 저장할 때, 메모리 번지는 4씩 증가시키고 데이터는 16비트만 써야 하위 16비트만 전송할 수가 있게된다.For this reason, when the memory data is transferred to the external I / O device 101 by the DMA operation in the host system memories 102 and 103, the data of the upper 16 bits (D [16:31]) cannot be transferred. Therefore, when storing the data to be transmitted in the memory 102 and 103, the memory address is increased by 4 and the data must be written using only 16 bits so that only the lower 16 bits can be transmitted.
따라서, 종래의 시스템에서는 전체 호스트 시스템 메모리(102,103)의 1/2을 DMA 동작시에는 쓸 수가 없을뿐더러 저장한 데이터와 주소의 증가치가 다름으로써, 시스템 소프트웨어에 여러 문제가 발생한다.Therefore, in the conventional system, not only half of the entire host system memories 102 and 103 can be written during the DMA operation, but also the stored data and the increase in address are different, which causes various problems in the system software.
본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 호스트 마이크로 프로세서와 외부 I/O 디바이스의 데이터 메모리 버스 크기가 다를 경우, 메모리의 낭비없이 데이터 버스를 통한 두 디바이스 간의 DMA 동작이 가능하도록 하는 인터페이스 장치를 제공함에 있다.The present invention is to solve the above problems, an object of the present invention is that if the data memory bus size of the host microprocessor and the external I / O device is different, the DMA operation between the two devices over the data bus without waste of memory It is to provide an interface device to enable.
도 1은 32비트 호스트 시스템 메모리와 16비트 외부 I/O 디바이스를 포함하는 호스트 시스템의 일반적인 구성 블록도1 is a general block diagram of a host system including 32-bit host system memory and 16-bit external I / O devices.
도 2는 본 발명에 따른 인터페이스 장치와 32비트 호스트 시스템 메모리 그리고, 16비트 외부 I/O 디바이스를 포함하는 호스트 시스템의 구성 블록도2 is a block diagram of a host system including an interface device, a 32-bit host system memory, and a 16-bit external I / O device according to the present invention.
도 3의 (a) 내지 (f)는 도 2에서 호스트 인터페이스 동작시의 각 부의 동작 타이밍도3 (a) to 3 (f) are operation timing diagrams of respective units in the host interface operation of FIG.
도 4의 (a) 내지 (f)는 도 2에서 DMA 동작시의 각 부의 동작 타이밍도4 (a) to 4 (f) are operation timing diagrams of respective units in the DMA operation in FIG.
도면의 주요부분에 대한 부호의 설명Explanation of symbols for main parts of the drawings
100 : 호스트 마이크로 프로세서100: host microprocessor
101 : 외부 I/O 디바이스 102,103 : 시스템 메모리101: external I / O device 102,103: system memory
201 : 제어신호 발생부 202,203 : 양방향 버퍼201: control signal generator 202,203: bidirectional buffer
상기와 같은 목적을 달성하기 위한 본 발명에 따른 인터페이스 장치는, 호스트 마이크로 프로세서와 외부 I/O 디바이스의 데이터 메모리 버스 크기가 다를 경우, 즉 호스트 마이크로 프로세서의 데이터 버스 크기가 32비트이고 외부 I/O 디바이스의 데이터 버스 크기가 16비트인 경우 전체 메모리의 낭비없이 DMA 동작으로 메모리와 외부 I/O 디바이스 간의 32비트 데이터 전송을 가능하게 하기 위해서 상위 16비트 데이터 버스의 데이터를 하위 16비트 데이터 버스에 먹싱(muxing)하는 양방향 버퍼와 상기 양방향 버퍼의 인에이블 및 방향을 제어하는 신호를 발생하는 제어 신호 발생부를 포함하는 것을 특징으로 한다.The interface device according to the present invention for achieving the above object is, when the data memory bus size of the host microprocessor and the external I / O device is different, that is, the data bus size of the host microprocessor is 32 bits, the external I / O If the device's data bus size is 16 bits, the data from the upper 16-bit data bus is muxed to the lower 16-bit data bus to enable 32-bit data transfer between memory and external I / O devices with DMA operation without wasting the total memory. and a control signal generator for generating a signal for controlling the bidirectional buffer and the enable and direction of the bidirectional buffer.
본 발명의 다른 목적, 특징 및 잇점들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.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.
도 2는 본 발명에 따른 인터페이스 장치의 구성 블록도로서, 16비트 크기의 두 개의 양방향 버퍼(202,203)를 호스트 시스템 메모리(102,103)와 외부 I/O 디바이스(101) 사이에 설계하는데, 하나의 양방향 버퍼(이하, 제 1 버퍼라 칭함.)(202)의 한쪽은 호스트 시스템 메모리(102)의 하위 16비트 데이터 버스(D[0:15])에 연결하고, 다른 하나의 양방향 버퍼(이하, 제 2 버퍼라 칭함.)(203)의 한쪽은 호스트 시스템 메모리(103)의 상위 16비트 데이터 버스(D[16:31])에 연결한다. 이때, 상기 제 1, 제 2 버퍼(202,203)의 다른 한쪽은 공통으로 외부 I/O 디바이스(101)의 16비트 데이터 버스(IO_D[0:15])에 연결한다.2 is a block diagram of an interface device according to the present invention, in which two 16-bit two-way buffers 202 and 203 are designed between the host system memory 102 and 103 and the external I / O device 101. One side of the buffer (hereinafter referred to as the first buffer) 202 is connected to the lower 16-bit data bus D [0:15] of the host system memory 102, and the other bidirectional buffer (hereinafter referred to as first buffer). One side of the 203 is connected to the upper 16-bit data bus (D [16:31]) of the host system memory 103. In this case, the other of the first and second buffers 202 and 203 is commonly connected to the 16-bit data bus IO_D [0:15] of the external I / O device 101.
또한, 상기 시스템에는 시스템 메모리(102,103)에서 DMA 동작으로 메모리 데이터를 외부 I/O 디바이스(101)에 전송할 수 있도록 상기 제 1, 제 2 버퍼(202,203)를 제어하는 제어 신호 발생부(201)가 설계된다. 이때, 상기 제어 신호 발생부(201)는 일 예로, EPLD(Electrically Programmable Logic Device)를 이용하여 설계할 수 있다.In addition, the system includes a control signal generator 201 for controlling the first and second buffers 202 and 203 to transmit memory data to the external I / O device 101 in a DMA operation in the system memories 102 and 103. Is designed. In this case, the control signal generator 201 may be designed using, for example, an electrically programmable logic device (EPLD).
이와 같이 구성된 본 발명은 호스트 인터페이스 동작과 DMA 동작으로 나눌 수 있다. 즉, 호스트 인터페이스 동작은 호스트 시스템 메모리(102,103)와 외부 I/O 디바이스(101)간의 데이터 전송이 호스트 마이크로 프로세서(100)를 통해 이루어지는 것이고, DMA 동작은 시스템 메모리(102,103)와 외부 I/O 디바이스(101)간의 데이터 전송이 호스트 마이크로 프로세서(100)를 통하지 않고 이루어지는 것이다.The present invention configured as described above can be divided into a host interface operation and a DMA operation. That is, the host interface operation is a data transfer between the host system memory 102 and 103 and the external I / O device 101 through the host microprocessor 100, and the DMA operation is the system memory 102 and 103 and the external I / O device. The data transfer between the 101 is done without passing through the host microprocessor 100.
먼저, 호스트 인터페이스 동작을 설명하면, 하위 16비트 메모리 데이터 전송일 경우에는 제 1 버퍼(202)를 인에이블시켜서 시스템 메모리(102)의 하위 16비트 데이타를 외부 I/O 디바이스(101)에 전송할 수가 있다. 이때, 제 2 버퍼(203)는 디제이블(disable)시킨다.First, the host interface operation will be described. In the case of lower 16-bit memory data transfer, the lower 16-bit data of the system memory 102 can be transmitted to the external I / O device 101 by enabling the first buffer 202. have. At this time, the second buffer 203 is disabled.
또한, 상위 16비트 메모리 데이터 전송일 경우에는 제 2 버퍼(203)를 인에이블시키고, 제 1 버퍼(202)는 디제이블시킨다. 이때, 시스템 메모리(103)의 상위 16비트 데이터가 호스트 마이크로 프로세서(100)을 거쳐 외부 I/O 디바이스(101)로 전송된다.In the case of upper 16-bit memory data transfer, the second buffer 203 is enabled, and the first buffer 202 is disabled. At this time, the upper 16-bit data of the system memory 103 is transmitted to the external I / O device 101 via the host microprocessor 100.
보통 데이터의 전송이 없는 경우에는 상기 제 1, 제 2 버퍼(202,203)를 디제이블시킨다. 즉, 하위 16비트 데이터(D[0:15])일 때는 제 1 버퍼(202)를 인에이블시키고, 상위 16비트 데이터(D[16:31])일 때는 제 2 버퍼(203)를 인에이블시킨다. 그리고, 보통의 상태는 둘 다 디제이블시킨다.In the absence of normal data transfer, the first and second buffers 202 and 203 are disabled. That is, the first buffer 202 is enabled for the lower 16-bit data D [0:15], and the second buffer 203 is enabled for the upper 16-bit data D [16:31]. Let's do it. And the normal state disables both.
한편, DMA 동작시는 제 1, 제 2 버퍼(202,203)가 번갈아가면서 인에이블된다. 호스트 시스템 메모리(102,103)에 데이터를 쓰거나 읽기에 따라 방향도 적절히 조정한다.On the other hand, during the DMA operation, the first and second buffers 202 and 203 are alternately enabled. The direction is also appropriately adjusted as data is written to or read from the host system memories 102 and 103.
그러나, 호스트 인터페이스는 16비트 데이터만을 사용하므로 항상 제 1 버퍼(202)만 인에이블시켜도 된다. 이때에도, 호스트 마이크로 프로세서(100)가 외부 I/O 디바이스(101)를 읽거나 쓰기 동작일 때 적절히 방향을 조절해야 한다.However, since the host interface uses only 16 bit data, only the first buffer 202 may always be enabled. In this case, the host microprocessor 100 must properly adjust the direction when the external I / O device 101 is read or written.
이를 위해 제어 신호 발생부(201)에서는 호스트 마이크로 프로세서(100)로부터 인터페이스 제어에 필요한 신호(CS,DACK.B_WRITE)를 받아 호스트 마이크로 프로세서(100)가 외부 I/O 디바이스(101)를 억세스할 때 제 1, 제 2 버퍼(202,203) 제어에 필요한 신호(DIR,OE1,OE2,DACK,IO_WRITE)를 생성한다. 여기서, CS는 칩 선택 신호이고, DACK는 DMA 승인 신호이며, B_WRITE는 호스트 마이크로 프로세서(100)에서의 데이터 읽기/쓰기 신호이다.To this end, the control signal generator 201 receives a signal (CS, DACK.B_WRITE) necessary for interface control from the host microprocessor 100 and the host microprocessor 100 accesses the external I / O device 101. Signals DIR, OE1, OE2, DACK, and IO_WRITE required for controlling the first and second buffers 202 and 203 are generated. Here, CS is a chip select signal, DACK is a DMA acknowledgment signal, and B_WRITE is a data read / write signal from the host microprocessor 100.
즉, 호스트 마이크로 프로세서(100)가 호스트 인터페이스로 외부 I/O 디바이스(101)에서 데이터를 읽거나 외부 I/O 디바이스(101)에 데이터를 쓸 때 또는, DMA 동작으로 시스템 메모리(102,103)의 데이터를 외부 I/O 디바이스(101)로 읽어가거나 외부 I/O 디바이스(101)의 데이터를 시스템 메모리(102,103)에 쓸 경우에 따라서 제 1, 제 2 버퍼(202,203)의 방향(DIR)과 인에이블 신호(/OE1,/OE2)를 생성한다.That is, when the host microprocessor 100 reads data from the external I / O device 101 or writes data to the external I / O device 101 through the host interface, or in the DMA operation, the data of the system memory 102, 103. To the external I / O device 101 or to write the data of the external I / O device 101 to the system memory 102 and 103 according to the direction (DIR) and enable of the first and second buffers 202 and 203. Generate signals (/ OE1, / OE2).
각각의 경우에 해당하는 제어 신호의 타이밍도는 도 3과 도 4에 도시되어 있다.The timing diagrams of the control signals corresponding to each case are shown in FIGS. 3 and 4.
도 3은 호스트 마이크로 프로세서(100)가 외부 I/O 디바이스(101)에 데이터를 쓰거나 외부 I/O 디바이스(101)로부터 데이터를 읽어오는 호스트 인터페이스시의 타이밍도로서, 점선을 기준으로 앞부분은 호스트 마이크로 프로세서(100)가 외부 I/O 디바이스(101) 내의 레지스터의 값을 읽을 때의 타이밍도이고, 뒷부분은 호스트 마이크로 프로세서(100) 내의 레지스터의 값을 외부 I/O 디바이스(101)의 레지스터에 쓸 때의 타이밍도이다.FIG. 3 is a timing diagram of a host interface in which the host microprocessor 100 writes data to or reads data from the external I / O device 101. The first part of the host microprocessor 100 is based on a dotted line. A timing diagram when the microprocessor 100 reads the value of the register in the external I / O device 101, and the second part of the diagram shows the value of the register in the host microprocessor 100 in the register of the external I / O device 101. This is a timing chart when writing.
즉, 도 3의 앞부분을 보면, 호스트 마이크로 프로세서(100)는 외부 I/O 디바이스(101)에 저장된 16비트를 억세스하므로 제 1 버퍼(202)만을 제어하면 된다. 데이터의 이동 방향(DIR)은 도 3의 (c)와 같이 외부 I/O 디바이스(101)에서 호스트 시스템 데이터 버스로 이동하게 된다. 그리고, 제 1 버퍼(202)의 인에이블 신호(/OE1)는 도 3의 (d)와 같이 호스트 마이크로 프로세서(100) 쪽의 /CS 신호가 도 3의 (a)와 같이 유효한 구간에서 유효하게 하고 방향도 또한 이와 비슷하게 타이밍을 맞추어 '0'으로 하면 된다. 이때, 제 2 버퍼(203)는 디제이블시키며, IO_WRITE 신호는 '0'으로 한다.That is, in the first part of FIG. 3, since the host microprocessor 100 accesses 16 bits stored in the external I / O device 101, only the first buffer 202 needs to be controlled. The movement direction DIR of the data moves from the external I / O device 101 to the host system data bus as shown in FIG. The enable signal / OE1 of the first buffer 202 can be effectively used in a section in which the / CS signal of the host microprocessor 100 is valid as shown in FIG. 3A as shown in FIG. You can also set the direction to '0' with similar timing. At this time, the second buffer 203 is disabled, and the IO_WRITE signal is set to '0'.
또한, 도 3의 뒷부분을 보면, 이때도 데이터는 16비트만 전송되고 데이터의 방향(DIR)은 호스트 시스템 데이터 버스에서 외부 I/O 디바이스(101) 데이터 버스로이다. 그래서, 제 1 버퍼(202)의 인에이블 신호(/OE1)는 /CS가 인에이블되는 순간에 인에이블되고 데이터의 방향은 호스트 마이크로 프로세서(100)의 B_WRITE 신호를 보고 '1'이면 이 신호로 외부 I/O 디바이스(101)의 IO_WRITE 신호를 도 3의 (f)와 같이 만들고 방향(DIR)도 '1'로 한다.3, only 16 bits of data are transmitted and the direction DIR of the data is from the host system data bus to the external I / O device 101 data bus. Thus, the enable signal / OE1 of the first buffer 202 is enabled at the moment / CS is enabled and the direction of data is this signal if the signal is '1' when the B_WRITE signal of the host microprocessor 100 is '1'. The IO_WRITE signal of the external I / O device 101 is made as shown in FIG. 3 (f), and the direction DIR is also set to '1'.
이와 같이 호스트 인터페이스일 때는 16비트 전송을 하므로 제 2 버퍼(203)는 인에이블시킬 필요가 없다.As described above, since the 16-bit transmission is performed in the host interface, the second buffer 203 does not need to be enabled.
한편, 도 4는 호스트 마이크로 프로세서(100)가 외부 I/O 디바이스(101)와 DMA 동작시의 타이밍도로서, 이때는 호스트 마이크로 프로세서(100)와는 무관하게 DMA 제어기와 메모리 사이에 데이터가 전송된다. 그러므로, 연속하여 상,하위 16비트 데이터가 전송되므로 제 1, 제 2 버퍼(202,203)를 번갈아가며 인에이블시켜야 한다. 이때, 점선을 기준으로 도 4의 앞부분은 32비트 호스트 시스템 메모리(102,103)에서 16비트씩 외부 I/O 디바이스(101)로 데이터를 전송할 때의 타이밍도이고, 뒷부분은 DMA를 이용하여 외부 I/O 디바이스(101)의 16비트 데이터를 호스트 시스템 메모리(102,103)로 전송할 때의 타이밍도이다.4 is a timing diagram in which the host microprocessor 100 performs DMA operation with the external I / O device 101. In this case, data is transferred between the DMA controller and the memory regardless of the host microprocessor 100. Therefore, since the upper and lower 16-bit data are continuously transmitted, the first and second buffers 202 and 203 should be alternately enabled. 4 is a timing diagram when data is transmitted from the 32-bit host system memories 102 and 103 to the external I / O device 101 by 16 bits, and the rear part is an external I / O using DMA. A timing diagram when the 16-bit data of the O device 101 is transferred to the host system memories 102 and 103.
먼저, 도 4의 앞부분을 보면, 이때 시스템 메모리(102,103)는 읽기 동작이고 연속하여 16비트씩 데이터를 전송하게 된다. 또한, 호스트 시스템은 도 4의 (a)와 같은 DMA 승인(/DACK) 신호의 라이징(riging)동안에 시스템 메모리(102,103)에 저장된 데이터를 16비트씩 데이타 버스에 싣는다. 이때, 외부 I/O 디바이스(101)는 보통 /DACK의 라이징에서 데이터를 읽어가게 된다. 그리고, 데이터 이동의 방향은 호스트 시스템 메모리(102,103)에서 외부 I/O 디바이스(101)로이므로 제 1, 제 2 버퍼(202,203)의 방향(DIR)은 도 4의 (c)와 같이 '1'이 되며 인에이블 신호는 첫 번째 /DACK에서 제 1 버퍼(202)의 데이터 인에이블 신호(/OE1)를 도 4의 (d)와 같이 '0'으로 만들고, 두 번째 /DACK에서 제 2 버퍼(203)의 데이터 인에이블 신호(/OE2)를 도 4의 (e)와 같이 '0'으로 만든다. 이렇게 DMA 전송 기간 동안에 제 1, 제 2 버퍼(202,203)를 번갈아서 인에이블시킨다.First, referring to the first part of FIG. 4, the system memories 102 and 103 are read operations and sequentially transmit data by 16 bits. In addition, the host system loads data stored in the system memories 102 and 103 on the data bus by 16 bits during the rising of the DMA acknowledgment (/ DACK) signal as shown in FIG. At this time, the external I / O device 101 usually reads data at the rising of / DACK. Since the direction of data movement is from the host system memories 102 and 103 to the external I / O device 101, the direction DIR of the first and second buffers 202 and 203 is set to '1' as shown in FIG. In this case, the enable signal causes the data enable signal / OE1 of the first buffer 202 to be '0' in FIG. 4 (d) in the first / DACK, and the second buffer (in the second / DACK). The data enable signal / OE2 of 203 is set to '0' as shown in FIG. Thus, the first and second buffers 202 and 203 are alternately enabled during the DMA transfer period.
반대로 도 4의 뒷부분을 보면, 이때 데이터 흐름은 외부 I/O 디바이스(101) 데이터 버스에서 호스트 시스템 메모리(102,103)의 데이터 버스가 되며, 호스트 시스템 메모리(102,103)는 쓰기 동작이므로 B_WRITE 신호는 도 4의 (b)와 같이 '1'이 된다. 그래서, 제 1, 제 2 버퍼(202,203)의 방향인 DIR은 도 4의 (c)와 같이 '0'이 되어야 하며, 인에이블 신호(/OE1,/OE2)도 마찬가지로 도 4의 (d),(e)와 같이 제 1, 제 2 버퍼(202,203)를 번갈아 가면서 인에이블시킨다.On the contrary, in the latter part of FIG. 4, the data flow becomes the data bus of the host system memories 102 and 103 from the external I / O device 101 data bus, and the B_WRITE signal is shown in FIG. 4 because the host system memories 102 and 103 are write operations. It becomes '1' as in (b). Thus, DIR, which is the direction of the first and second buffers 202 and 203, should be '0' as shown in FIG. 4 (c), and the enable signals / OE1 and / OE2 are similarly shown in FIG. As shown in (e), the first and second buffers 202 and 203 are alternately enabled.
이렇게 함으로써, 외부 I/O 디바이스(101)의 16비트 데이터를 32비트 호스트 시스템 메모리(102,103)에 낭비없이 저장하게 된다.By doing so, 16-bit data of the external I / O device 101 is stored in the 32-bit host system memories 102 and 103 without waste.
이상에서와 같이 본 발명에 따른 인터페이스 장치에 의하면, 32비트 호스트 시스템 메모리와 16비트 외부 I/O 디바이스 간의 DMA 동작을 위한 16비트 크기의 양방향 버퍼와 상기 버퍼의 인에이블 및 방향을 제어하는 신호를 생성하는 제어 신호 발생부를 이용함으로써, 호스트 마이크로 프로세서와 외부 I/O 디바이스의 데이터 메모리 버스 크기가 다른 경우, 즉 호스트 마이크로 프로세서의 데이터 버스 크기가 32비트이고 외부 I/O 디바이스의 데이터 버스 크기가 16비트인 경우에도 메모리의 낭비없이 데이터 버스를 통한 두 디바이스 간의 DMA 동작을 가능하게 한다.As described above, according to the interface device according to the present invention, a 16-bit bidirectional buffer for DMA operation between a 32-bit host system memory and a 16-bit external I / O device and a signal for controlling the enable and direction of the buffer are provided. By using the control signal generator to generate, the data memory bus size of the host microprocessor and the external I / O device are different, that is, the data bus size of the host microprocessor is 32 bits and the data bus size of the external I / O device is 16 Even the bits allow DMA operation between two devices over the data bus without wasting memory.
또한, 외부 I/O 디바이스의 데이터 전송 요구시 호스트 마이크로 프로세서에 무리를 주지 않으면서 동시에 데이터 전송 작업을 할 수가 있으므로 전체 시스템의 성능을 향상시키는 효과가 있다.In addition, when data transfer requests from external I / O devices can be performed simultaneously without burdening the host microprocessor, the performance of the entire system can be improved.
그리고, 인테페이스 회로로 양방향 버퍼를 사용하고 상기 양방향 버퍼의 방향 조절 신호와 인에이블 신호만을 EPLD로 설계된 제어 신호 발생부에서 생성함으로써, 로직의 크기를 최소화하며 필요한 로직의 게이트 수를 줄이는 효과가 있다.In addition, by using the bidirectional buffer as an interface circuit and generating only the direction control signal and the enable signal of the bidirectional buffer in the control signal generator designed by EPLD, there is an effect of minimizing the size of logic and reducing the number of gates of the required logic.
Claims (3)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019990008853A KR100606698B1 (en) | 1999-03-16 | 1999-03-16 | Interfacing apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019990008853A KR100606698B1 (en) | 1999-03-16 | 1999-03-16 | Interfacing apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20000060513A true KR20000060513A (en) | 2000-10-16 |
KR100606698B1 KR100606698B1 (en) | 2006-07-31 |
Family
ID=19576742
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019990008853A KR100606698B1 (en) | 1999-03-16 | 1999-03-16 | Interfacing apparatus |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100606698B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100476895B1 (en) * | 2002-05-21 | 2005-03-18 | 삼성전자주식회사 | Interface device having variable data transfer mode and operating method thereof |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR890002141Y1 (en) * | 1986-03-06 | 1989-04-12 | 주식회사 금성사 | 32-bit data signal transmission device |
KR950000125B1 (en) * | 1990-08-30 | 1995-01-10 | 삼성전자 주식회사 | Interface circuit with dual-port ram between at-bus and input/output controller processor |
US5255374A (en) * | 1992-01-02 | 1993-10-19 | International Business Machines Corporation | Bus interface logic for computer system having dual bus architecture |
KR0176087B1 (en) * | 1995-11-21 | 1999-05-15 | 양승택 | Processor Data Processing Circuit of System Controller |
-
1999
- 1999-03-16 KR KR1019990008853A patent/KR100606698B1/en not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100476895B1 (en) * | 2002-05-21 | 2005-03-18 | 삼성전자주식회사 | Interface device having variable data transfer mode and operating method thereof |
Also Published As
Publication number | Publication date |
---|---|
KR100606698B1 (en) | 2006-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR960012660B1 (en) | Arbitration control logic for computer system having dual bus architecture | |
KR960012356B1 (en) | Computer system and data transfer method | |
US6636927B1 (en) | Bridge device for transferring data using master-specific prefetch sizes | |
US5659696A (en) | Method and apparatus for determining address location and taking one of two actions depending on the type of read/write data transfer required | |
US5255376A (en) | Method and apparatus for supporting a dual bit length protocol for data transfers | |
US5678064A (en) | Local bus-ISA bridge for supporting PIO and third party DMA data transfers to IDE drives | |
JPS6035696B2 (en) | Bus control device in data processing equipment | |
US20030217218A1 (en) | Interface for devices having different data bus widths and data transfer method using the interface | |
US6662258B1 (en) | Fly-by support module for a peripheral bus | |
US5799161A (en) | Method and apparatus for concurrent data routing | |
KR100606698B1 (en) | Interfacing apparatus | |
JPS581451B2 (en) | Data transfer method | |
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 | |
US5732226A (en) | Apparatus for granting either a CPU data bus or a memory data bus or a memory data bus access to a PCI bus | |
US5671372A (en) | Data processing system with microprocessor/cache chip set directly coupled to memory bus of narrower data width | |
KR100259585B1 (en) | Dma controller | |
EP0439594B1 (en) | Device for interfacing a main processor bus connected to a main processor to a peripheral bus having a number of peripheral devices connected thereto | |
KR970002410B1 (en) | Apparatus for interfacing between controller and peripheral in the computer system | |
JP2574821B2 (en) | Direct memory access controller | |
KR0145932B1 (en) | Dma controller in high speed computer system | |
KR940008478B1 (en) | Memory adaptor for micro-processor | |
KR100662275B1 (en) | apparatus for Direct Memory Access transfer using single address mode | |
JP2671743B2 (en) | Microcomputer | |
JPH05120210A (en) | Microcomputer | |
JPH05334234A (en) | High speed dma transferring device |
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 | ||
LAPS | Lapse due to unpaid annual fee |