KR100389030B1 - High speed direct memory access controller with multiple channels - Google Patents

High speed direct memory access controller with multiple channels Download PDF

Info

Publication number
KR100389030B1
KR100389030B1 KR10-2001-0035428A KR20010035428A KR100389030B1 KR 100389030 B1 KR100389030 B1 KR 100389030B1 KR 20010035428 A KR20010035428 A KR 20010035428A KR 100389030 B1 KR100389030 B1 KR 100389030B1
Authority
KR
South Korea
Prior art keywords
dma
channel
system bus
state
signal
Prior art date
Application number
KR10-2001-0035428A
Other languages
Korean (ko)
Other versions
KR20020097478A (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 KR10-2001-0035428A priority Critical patent/KR100389030B1/en
Publication of KR20020097478A publication Critical patent/KR20020097478A/en
Application granted granted Critical
Publication of KR100389030B1 publication Critical patent/KR100389030B1/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
    • G06F13/30Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • 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
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus

Abstract

여기에 개시된 다중 채널을 가진 고속 DMA 컨트롤러는, 다중 채널 DMA 전송 동작 중 채널간의 버스 교환 구간에는 시스템 버스의 점유를 포기하여, DMA 동작 중 DMA 컨트롤러 이외의 시스템 버스 마스터에 의한 시스템 버스 이용이 가능하도록 한다. 그리고, 본 발명에 의한 DMA 컨트롤러는, 그 내부에 구비된 프로그램 가능한 고정 우선순위 결정로직과, 라운드-로빈 우선순위 결정로직을 선택적으로 사용할 수 있어, DMA 동작의 효율을 높일 수 있다.The high-speed DMA controller having the multi-channel disclosed herein gives up the occupancy of the system bus in the bus exchange interval between channels during the multi-channel DMA transfer operation, so that the system bus can be used by the system bus master other than the DMA controller during the DMA operation. do. In addition, the DMA controller according to the present invention can selectively use a programmable fixed priority determining logic and a round-robin priority determining logic provided therein, thereby increasing the efficiency of the DMA operation.

Description

다중 채널을 가진 고속 직접 메모리 억세스 컨트롤러{HIGH SPEED DIRECT MEMORY ACCESS CONTROLLER WITH MULTIPLE CHANNELS}HIGH SPEED DIRECT MEMORY ACCESS CONTROLLER WITH MULTIPLE CHANNELS}

본 발명은 직접 메모리 억세스(Direct Memory Access : DMA, 이하 DMA라 함)전송을 위한 DMA 컨트롤러에 관한 것으로, 좀 더 구체적으로는 다중 채널(multiple channel)을 가진 DMA 컨트롤러에 관한 것이다.The present invention relates to a DMA controller for direct memory access (DMA) transmission, and more particularly, to a DMA controller having multiple channels.

DMA 전송방법은 중앙처리장치(central processing unit ; CPU)를 거치지 않고 메인 메모리(main memory)와 입/출력 장치(input/output device) 사이에서 직접 수행되는 데이터 전송 방법 중 하나 이다. 이 방법에서, 데이터는 중앙처리장치가 입출력 명령을 처리하는 동안, 입/출력 장치를 통해 연결되어 있는 장치로 직접 전송된다.The DMA transfer method is one of data transfer methods directly performed between the main memory and the input / output device without going through a central processing unit (CPU). In this method, data is transferred directly to the connected device via an input / output device while the central processing unit processes input / output commands.

DMA 전송방법을 사용하기 위해서는 시스템 버스 상에 DMA 컨트롤러(DMA controller)와 같은 DMA 모듈이 시스템 버스 상에 추가되어야 한다. DMA 컨트롤러는 중앙처리장치로부터 시스템의 제어를 넘겨받아 중앙처리장치의 기능 중 일부분을 대신 처리한다. 즉, 중앙처리장치는 I/O 동작을 DMA 컨트롤러에게 일임하고, DMA 컨트롤러는 중앙처리장치를 대신하여 I/O 동작을 처리한다. 이 때, DMA 컨트롤러는 중앙처리장치를 통하지 않고 한 번에 한 단어씩 모든 데이터 블록을 메모리로 직접 전송하고, 모든 데이터 전송이 완료되면 DMA 모듈은 중앙처리장치로 인터럽트(interrupt)를 발생한다.In order to use the DMA transfer method, a DMA module such as a DMA controller must be added on the system bus. The DMA controller takes over control of the system from the central processing unit and handles some of the central processor's functions instead. That is, the central processing unit delegates the I / O operation to the DMA controller, and the DMA controller handles the I / O operation on behalf of the central processing unit. At this time, the DMA controller directly transfers all data blocks to the memory one word at a time without passing through the central processing unit, and when all data transfers are completed, the DMA module generates an interrupt to the central processing unit.

이와 같은 DMA 전송방법은, 하루가 다르게 발전하는 SOC(systen-on-a-chip) 설계 분야에서 시스템 버스(system bus)의 성능 향상을 위해 더욱 중요시되고 있다. 특히 시스템 버스와, 다중 채널을 가진 DMA 컨트롤러 내에 구비된 채널들간의 효율적인 시스템 버스 점유 방식은, 시스템의 성능을 향상시키기 위한 핵심 요소로서 자리를 잡고 있다. 즉, 다중 채널을 가진 DMA 컨트롤러가 시스템 버스를 점유하고 있는 동안 얼마나 빨리 채널들간의 버스 우선순위(priority)를 결정할 수 있는지 여부가 시스템의 성능을 향상시키는데 있어 주요 관건이 되고 있다. 이와 같은 다중 채널을 가진 DMA 컨트롤러는 1997년 4월, Chen 등에 의해 취득된 U. S. Pat.No. 5,619, 727, "APPARATUS FOR MULTIPLE CHANNEL DIRECT MEMORY ACCESS UTILIZING A VIRTUAL ARRAY TECHNIQUE"와, 1998년 6월, Leger 등에 의해 취득된 U. S. Pat. No. 5,765, 023, "DMA CONTROLLER HAVING MULTIPLE CHANNELS AND BUFFER POOL HAVING PLURALITY OF BUFFERS ACCESSIBLE TO EACH CHANNEL FOR BUFFERING DATA TRANSFERRED TO AND FROM HOST COMPUTER" 등에 개시되어 있다.Such a DMA transfer method is becoming more important for improving the performance of a system bus in the field of system-on-a-chip (SOC) design that develops differently every day. In particular, the efficient system bus occupancy between the system bus and the channels provided in the multi-channel DMA controller has become a key element for improving the performance of the system. That is, how quickly the bus priority between channels can be determined while a multi-channel DMA controller occupies the system bus becomes a key factor in improving system performance. Such a multi-channel DMA controller was obtained in U. S. Pat. 5,619, 727, "APPARATUS FOR MULTIPLE CHANNEL DIRECT MEMORY ACCESS UTILIZING A VIRTUAL ARRAY TECHNIQUE", and U. S. Pat. No. 5,765, 023, "DMA CONTROLLER HAVING MULTIPLE CHANNELS AND BUFFER POOL HAVING PLURALITY OF BUFFERS ACCESSIBLE TO EACH CHANNEL FOR BUFFERING DATA TRANSFERRED TO AND FROM HOST COMPUTER."

그러나, 일반적인 다중 DMA 시스템에는, DMA 컨트롤러에 의해서 시스템 버스가 점유되고 나면 DMA 전송이 끝날때까지 중앙처리장치(central processing unit ; CPU), 마이크로프로세서(microprocessor), 기타 컨트롤러와 같은 마스터(master)들이 시스템 버스를 사용할 수 없는 한계가 있다. 따라서, DMA 컨트롤러가 시스템 버스를 점유하고 있더라도, CPU 등과 같은 마스터가 시스템 버스를 사용할 수 있는 DMA 장치가 요구된다.However, in a typical multi-DMA system, once the system bus is occupied by the DMA controller, masters such as central processing units (CPUs), microprocessors, and other controllers can be used until the DMA transfer is completed. There is a limitation that the system bus cannot be used. Therefore, even if a DMA controller occupies the system bus, a DMA device capable of using a system bus by a master such as a CPU is required.

뿐만 아니라, 고속화되고 있는 기술 경향에 비추어 볼 때, USB(Universal Serial Bus), PPIC(PCI and Peripheral Interrupt Controller Unit), 비동기형 직렬 입/출력 장치(asynchronous serial I/O) 등과 같은 저속 주변 모듈이 시스템 버스에 연결되었을 때에도, 고속으로 다중 채널 DMA 전송이 가능한 새로운 DMA 장치가 요구된다.In addition, low-speed peripheral modules such as Universal Serial Bus (USB), PCI and Peripheral Interrupt Controller Unit (PPIC), asynchronous serial I / O, etc. Even when connected to the system bus, there is a need for new DMA devices capable of high speed multi-channel DMA transfers.

따라서, 본 발명의 목적은 상술한 제반 문제점을 해결하기 위해 제안된 것으로, DMA 컨트롤러에 의한 시스템 버스 점유 중에도, CPU 등과 같은 같은 마스터에 의한 시스템 버스 이용이 가능한 DMA 장치를 제공하는데 있다.Accordingly, an object of the present invention has been proposed to solve the above-mentioned problems, and to provide a DMA device capable of using a system bus by a master, such as a CPU, even while occupying the system bus by a DMA controller.

그리고, 본 발명의 다른 목적은 DMA 동작의 효율을 높임으로써, 고속 주변 모듈은 물론 저속 주변 모듈이 시스템 버스에 연결되었을 때에도 고속의 다중 채널 DMA 전송이 가능한 DMA 장치를 제공하는데 있다.Another object of the present invention is to provide a DMA device capable of high-speed multi-channel DMA transmission even when a high speed peripheral module as well as a low speed peripheral module are connected to a system bus by increasing the efficiency of the DMA operation.

도 1은 본 발명에 의한 DMA 컨트롤러 및 그것을 구비한 DMA 시스템의 구성을 개략적으로 보여주기 위한 블록도;1 is a block diagram schematically showing the configuration of a DMA controller and a DMA system having the same according to the present invention;

도 2는 도 1에 도시된 채널 우선순위 중재부의 상세한 구성을 보여주기 위한 블록도;FIG. 2 is a block diagram showing the detailed configuration of the channel priority arbitrator shown in FIG. 1; FIG.

도 3은 도 2에 도시된 제 1 우선순위 결정로직에 의해 결정되는 DMA 우선순위를 보여주기 위한 도면;FIG. 3 is a diagram for showing DMA priority determined by the first priority decision logic shown in FIG. 2; FIG.

도 4는 도 2에 도시된 스테이트 머신의 동작 상태를 보여주기 위한 상태도;4 is a state diagram for showing an operating state of the state machine shown in FIG.

도 5는 고속 입출력 장치가 연결되었을 경우, 종래 기술에 의한 DMA 컨트롤러의 동작 타이밍을 보여주기 위한 타이밍도;5 is a timing diagram for showing an operation timing of a DMA controller according to the prior art when the high speed input / output device is connected;

도 6은 저속 입출력 장치가 연결되었을 경우, 종래 기술에 의한 DMA 컨트롤러의 동작 타이밍을 보여주기 위한 타이밍도;6 is a timing diagram for showing an operation timing of a DMA controller according to the prior art when a low speed input / output device is connected;

도 7은 고속 입출력 장치가 연결되었을 경우, 본 발명에 의한 DMA 컨트롤러의 동작 타이밍을 보여주기 위한 타이밍도; 그리고7 is a timing diagram for showing an operation timing of a DMA controller according to the present invention when a high speed input / output device is connected; And

도 8은 저속 입출력 장치가 연결되었을 경우, 본 발명에 의한 DMA 컨트롤러의 동작 타이밍을 보여주기 위한 타이밍도.8 is a timing diagram for showing an operation timing of a DMA controller according to the present invention when a low speed input / output device is connected.

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

22 : CPU 24 : 메모리 컨트롤러22: CPU 24: memory controller

26 : 주변 모듈 30 : 시스템 버스 중재기26: peripheral module 30: system bus arbiter

40a : 제 1 시스템 버스 40b : 제 2 시스템 버스40a: first system bus 40b: second system bus

50 : DMA 컨트롤러 60 : 버스 인터페이스50: DMA controller 60: bus interface

70 : DMA 제어부 72 : 채널 레지스터 제어부70: DMA control unit 72: channel register control unit

74 : 채널 버스 제어부 76 : 제 1 신호 발생부74: channel bus controller 76: first signal generator

78 : 채널 제어부 80 : 채널 우선순위 중재부78: channel control unit 80: channel priority arbitration unit

81 : 신호 검출부 82 : 스테이트 머신81: signal detector 82: state machine

83 : 제 2 신호 발생부 84 : 중재 레지스터 화일83: second signal generator 84: the arbitration register file

85 : 우선순위 결정로직 86 : 제 1 우선순위 결정로직85: priority decision logic 86: first priority decision logic

87 : 제 2 우선순위 결정로직 91-95 : 레지스터87: second priority decision logic 91-95: register

96 : FIFO96: FIFO

상술한 바와 같은 본 발명의 목적을 달성하기 위한 본 발명의 특징에 의하면, 다수 개의 채널을 구비한 DMA 컨트롤러는, 시스템 버스 인터페이스와, 제 1 내지 제 4 레지스터와, 제어회로, 그리고 채널 우선순위 중재회로를 포함한다. 여기서, 상기 시스템 버스 인터페이스는 중앙처리장치로부터 입/출력 장치의 주소, 데이터가 기입/독출될 주소, 상기 기입/독출될 데이터의 길이 값, 그리고 DMA 전송에 사용되는 제어 신호에 대한 인터페이스를 수행한다. 상기 제 1 레지스터는 상기 입/출력 장치의 주소를 저장하고, 상기 제 2 레지스터는 상기 데이터가 기입/독출될 부분의 시작 주소를 저장하고, 상기 제 3 레지스터는 상기 데이터의 길이 값을 저장하고, 그리고 상기 제 4 레지스터는 상기 제어 신호를 저장한다. 상기 제어회로는 상기 시스템 버스 인터페이스를 통해 받아들인 상기 주소, 상기 데이터의 길이 값 및 상기 제어신호를 상기 제 1 내지 제 4 레지스터의 적정 위치에 실어주고, 채널 및 채널 버스를 제어한다. 상기 채널 우선순위 중재회로는, 상기 다수 개의 채널들의 우선순위를 결정하되, 적어도 둘 이상의 우선순위 결정로직을 구비하여 시스템 버스에 연결되는 주변 모듈에 따라 상기 우선순위 결정로직을 선택적으로 인에이블 시키고, 그리고 DMA 전송 동작 동안 상기 DMA 컨트롤러 이외의 시스템 버스 마스터에 의해 상기 시스템 버스가 사용될 수 있도록 채널간의 버스교환시 버스점유를 포기한다.According to a feature of the present invention for achieving the object of the present invention as described above, a DMA controller having a plurality of channels, the system bus interface, the first to fourth registers, the control circuit, and channel priority arbitration It includes a circuit. Here, the system bus interface performs an interface to the address of the input / output device from the central processing unit, the address at which data is to be written / read, the length value of the data to be written / read, and the control signal used for DMA transmission. . The first register stores an address of the input / output device, the second register stores a start address of a portion where the data is to be written / read, the third register stores a length value of the data, And the fourth register stores the control signal. The control circuit loads the address, the length value of the data, and the control signal received through the system bus interface to appropriate positions of the first to fourth registers, and controls a channel and a channel bus. The channel priority arbitration circuit is configured to determine the priority of the plurality of channels, and selectively enable the priority determining logic according to a peripheral module connected to a system bus having at least two priority determining logics, The bus occupies the bus exchange between channels so that the system bus can be used by a system bus master other than the DMA controller during the DMA transfer operation.

(실시예)(Example)

이하 본 발명에 따른 실시예를 첨부된 도면 도 1 내지 도 8을 참조하여 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to FIGS. 1 to 8.

본 발명의 신규한 다중 채널을 가진 DMA 컨트롤러는, 다중 채널 DMA 전송 동작 중 채널간의 버스 교환 구간에는 시스템 버스의 점유를 포기한다. 따라서, CPU와 같은 시스템 버스 마스터는, DMA 컨트롤러에 의한 시스템 버스 점유 중에도 시스템 버스 이용이 가능하다. 그리고, 본 발명에 의한 DMA 컨트롤러에는, 프로그램 가능한 고정 우선순위 결정로직(programmable fixed channel priority arbitration logic)과 라운드-로빈 우선순위 결정로직(round-robin channel priority arbitration logic)을 모두 구비하고 있어, DMA 동작의 효율을 높일 수 있다. 그 결과, 고속 주변 모듈이 시스템 버스에 연결되었을 때는 물론 저속 주변 모듈이 시스템 버스에 연결되었을 때에도 다중 채널 DMA 전송이 고속으로 수행될 수 있다.The novel multi-channel DMA controller of the present invention gives up the occupancy of the system bus in the bus exchange interval between channels during the multi-channel DMA transfer operation. Therefore, the system bus master such as the CPU can use the system bus even while the system bus is occupied by the DMA controller. In addition, the DMA controller according to the present invention includes both programmable fixed channel priority arbitration logic and round-robin channel priority arbitration logic. Can increase the efficiency. As a result, multi-channel DMA transfers can be performed at high speed when the high speed peripheral module is connected to the system bus as well as when the low speed peripheral module is connected to the system bus.

도 1은 본 발명에 의한 DMA 컨트롤러(50) 및 그것을 구비한 DMA 시스템의 구성을 개략적으로 보여주기 위한 블록도이다. 도 1을 참조하면, DMA 시스템은, 제 1 시스템 버스(system bus (APB))(40a)와, 제 2 시스템 버스(system bus (AHB))(40b)를 포함한다. 제 1 시스템 버스(40a)는 고속의 시스템 버스로서, USB(Universal Serial Bus), PPIC(PCI and Peripheral Interrupt Controller Unit), 비동기형 직렬 입/출력 장치(asynchronous serial I/O) 등과 같은 저속 주변 모듈이 접속된다. 제 2 시스템 버스(40b)는 고속의 시스템 버스로서, 중앙처리장치(central processing unit ; CPU)(22), 메모리 컨트롤러(memory controller ; 24), 시스템 버스 중재기(system bus arbitor ; 30), 그리고 DMA 컨트롤러(direct memory access controller ; 50)가 연결된다.1 is a block diagram schematically showing the configuration of a DMA controller 50 and a DMA system having the same according to the present invention. Referring to FIG. 1, a DMA system includes a first system bus (APB) 40a and a second system bus (AHB) 40b. The first system bus 40a is a high-speed system bus and includes a low speed peripheral module such as a universal serial bus (USB), a PCI and Peripheral Interrupt Controller Unit (PPIC), an asynchronous serial I / O, or the like. Is connected. The second system bus 40b is a high speed system bus, which includes a central processing unit (CPU) 22, a memory controller 24, a system bus arbiter 30, and A DMA controller (direct memory access controller) 50 is connected.

DMA 컨트롤러(50)는 버스 인터페이스(60), DMA 제어부(70), 채널 우선순위 중재부(80), 제 1 내지 제 5 레지스터들(91-95), 그리고 FIFO(First-In First-Out ; 96)를 포함한다.The DMA controller 50 includes a bus interface 60, a DMA controller 70, a channel priority arbitrator 80, first through fifth registers 91-95, and a first-in first-out (FIFO); 96).

버스 인터페이스(60)는 시스템 버스(system bus ; 40b)를 통해 중앙처리장치(22)와 인터페이스를 수행하여, I/O 장치의 주소, 데이터가 기입/독출될 주소, 그리고 기입/독출될 데이터의 길이에 관한 정보 등을 받아들인다.The bus interface 60 interfaces with the central processing unit 22 via a system bus 40b to determine the address of the I / O device, the address to which data is to be written / read, and the data to be written / read. Accept information about length.

DMA 제어부(70)는 버스 인터페이스(60)를 통해 받아들인 상기 정보를 레지스터(91-95)의 적정 위치에 싣고, 다수 개의 DMA 채널들의 DMA 동작을 제어하는 역할을 수행한다. 이를 위해 DMA 제어부(70)는 채널 레지스터 제어부(72)와 채널 버스 제어부(74)를 포한하며, 도면에는 도시되지 않았지만, 다중 채널 DMA 전송을 위한 다양한 제어 블록들을 더 포함한다.The DMA controller 70 loads the information received through the bus interface 60 at an appropriate location of the registers 91-95 and controls the DMA operation of the plurality of DMA channels. To this end, the DMA controller 70 includes a channel register controller 72 and a channel bus controller 74, and although not shown in the figure, further includes various control blocks for multi-channel DMA transmission.

여기서, DMA 제어부(70)의 제어를 받는 제 1 레지스터(91)는 I/O 장치 또는 주변 모듈의 주소를 저장하는 채널 소오스 어드레스 레지스터(channel source address register ; SARn)로 사용되고, 제 2 레지스터(92)는 메모리(미 도시됨)에 데이터가 기입/독출될 부분의 시작 주소를 저장하는 목적 어드레스 레지스터(channel destination address register ; DARn)로 사용된다. 제 3 레지스터(93)는 전송될 데이터의 길이 값(즉, 기입/독출될 단어들의 개수에 관한 정보)을저장하는 전송 카운터 레지스터(channel transfer counter register ; TCRn)로 사용되고, 제 4 레지스터(94)는 다중 채널 DMA 전송에 사용되는 제어 신호를 저장하는 채널 제어 레지스터(channel control register ; CCRn)로 사용된다. 그리고 제 5 레지스터는 FIFO(96)의 상태를 제어하기 위한 채널 제어 상태 블록(channel control state block)으로 사용된다.Here, the first register 91 under the control of the DMA controller 70 is used as a channel source address register (SARn) that stores the address of an I / O device or a peripheral module, and the second register 92. ) Is used as a channel destination address register (DARn) for storing a start address of a portion where data is to be written / read in a memory (not shown). The third register 93 is used as a channel transfer counter register (TCRn) for storing a length value of data to be transmitted (ie, information on the number of words to be written / read), and the fourth register 94. Is used as a channel control register (CCRn) for storing control signals used for multichannel DMA transmissions. The fifth register is used as a channel control state block for controlling the state of the FIFO 96.

채널 우선순위 중재부(80)는, 아래에서 상세히 설명하겠지만, 다중 DMA 채널들의 우선순위를 결정하기 위한 회로로서, 그 내부에 구비된 프로그램 가능한 고정 우선순위 결정로직(programmable fixed channel priority arbitration logic)과 라운드-로빈 우선순위 결정로직(round-robin channel priority arbitration logic)을 선택적으로 사용할 수 있어, DMA 동작의 효율을 높일 수 있다.The channel priority arbitration unit 80, as will be described in detail below, is a circuit for determining the priority of multiple DMA channels, and includes a programmable fixed channel priority arbitration logic provided therein. Round-robin channel priority arbitration logic can be selectively used to increase the efficiency of the DMA operation.

이 외에도, 상기 채널 우선순위 중재부(80)는, DMA 컨트롤러(50)에 의한 시스템 버스 점유 중에도 DMA 컨트롤러(50) 이외의 시스템 버스 마스터(예를 들면, CPU, 마이크로프로세서(microprocessor), 또는 기타 컨트롤러들)에 의한 시스템 버스 이용이 가능하도록, 다중 채널 DMA 전송 동작 중 채널간의 버스 교환 구간에는 시스템 버스의 점유를 포기한다. 이와 같은 채널 우선순위 중재부(80)의 상세한 구성 및 동작은 다음과 같다.In addition, the channel priority arbitration unit 80 may be a system bus master other than the DMA controller 50 (for example, a CPU, a microprocessor, or the like) even when the system bus is occupied by the DMA controller 50. In order to be able to use the system bus by the controllers, the system bus is given up in the bus exchange interval between channels during the multi-channel DMA transfer operation. The detailed configuration and operation of such a channel priority arbitration unit 80 is as follows.

도 2는 도 1에 도시된 채널 우선순위 중재부(80) 및 채널 우선순위 중재부(80)의 상세한 구성을 보여주기 위한 블록도이다. 도 2에는 채널 우선순위 중재부(80)와, 채널 우선순위 중재부(80)의 동작에 관여하는 DMA 제어부(70)의 구성이 도시되어 있다.FIG. 2 is a block diagram showing a detailed configuration of the channel priority arbitrator 80 and the channel priority arbitrator 80 shown in FIG. 2 shows the configuration of the channel priority arbitrator 80 and the DMA controller 70 involved in the operation of the channel priority arbitrator 80.

도 2를 참조하면, DMA 제어부(70)에는 제 1 신호 발생부(76)와, 채널 버스 제어부(channel bus control block ; 74), 그리고 채널 제어부(channel control block ; 78)가 포함된다. 제 1 신호 발생부(76)는 시스템 버스 요청 신호(system bus request signal ; SBREQ)를 발생하고, 시스템 버스 허용 신호(system bus grant signal ; SBGNT)을 받아들인다.Referring to FIG. 2, the DMA controller 70 includes a first signal generator 76, a channel bus control block 74, and a channel control block 78. The first signal generator 76 generates a system bus request signal (SBREQ) and receives a system bus grant signal (SBGNT).

채널 우선순위 중재부(80)는, 신호 검출부(81)와, 스테이트 머신(finite state machine ; FSM)(82), 제 2 신호 발생부(83), 중재 레지스터 화일(arbitration register file ; 84), 그리고 우선순위 결정로직(85)을 포함한다. 우선순위 결정로직(85)에는, 프로그램 가능한 고정 우선순위 결정로직(programmable fixed channel priority arbitration logic)인 제 1 우선순위 결정로직(86)과, 라운드-로빈 우선순위 결정로직(round-robin channel priority arbitration logic)인 제 2 우선순위 결정로직(87)이 포함된다. 다중 채널 DMA 동작 동안, 채널 선택 알고리즘으로 제 1 및 제 2 우선순위 결정로직(86, 87) 중 어느 로직이 선택되는지는 채널 제어 레지스터(CCRn)인 제 4 레지스터(94)의 특정 비트에 의해서 선택된다. 구체적으로, 제 4 레지스터(94)의 특정 비트가 중재 레지스터 화일(84)에 저장되면, 중재 레지스터 화일(84)에 저장된 비트 값(b0-b4)에 의해 제 1 우선순위 결정로직(86) 또는 제 2 우선순위 결정로직(87)이 선택되어 인에이블 된다. 예를 들어, 중재 레지스터 화일(84)에 저장된 비트 값(b0-b4) 중 최하위 비트(b0) 값이 0이면, 제 2 우선순위 결정로직(87)이 선택되어 채널 선택 알고리즘으로서 라운드-로빈 알고리즘이 사용된다. 라운드-로빈 알고리즘은, 다중 채널이동시에 DMA 동작을 요구할 경우 각 채널들이 한번만 DMA 동작을 수행하도록 함으로써, DMA 동작 효율을 향상시킨다.The channel priority arbitration unit 80 includes a signal detection unit 81, a state machine (FSM) 82, a second signal generation unit 83, an arbitration register file 84, And priority determining logic 85. Priority decision logic 85 includes a first priority decision logic 86, which is programmable fixed channel priority arbitration logic, and a round-robin channel priority arbitration. second priority determining logic 87 is included. During a multi-channel DMA operation, which logic of the first and second prioritization logic 86, 87 is selected by the channel selection algorithm is selected by a specific bit in the fourth register 94, which is the channel control register (CCRn). do. Specifically, when a particular bit of the fourth register 94 is stored in the arbitration register file 84, the first priority decision logic 86 or by the bit values b0-b4 stored in the arbitration register file 84; The second prioritization logic 87 is selected and enabled. For example, if the least significant bit b0 value of the bit values b0-b4 stored in the arbitration register file 84 is 0, the second priority decision logic 87 is selected so that the round-robin algorithm as the channel selection algorithm. This is used. The round-robin algorithm improves the DMA operation efficiency by allowing each channel to perform the DMA operation only once when the DMA operation is required for the multi-channel movement.

반대로, 중재 레지스터 화일(84)에 저장된 비트 값(b0-b4) 중 최하위 비트(b0) 값이 1이면, 제 1 우선순위 결정로직(86)이 선택되어 채널 선택 알고리즘으로서 고정 우선순위 알고리즘이 사용된다. 이 경우, DMA 채널의 선택은 중재 레지스터 화일(84)에 저장된 나머지 비트 값들(b1-b4)에 의해 이루어진다.Conversely, if the least significant bit (b0) value of the bit values b0-b4 stored in the arbitration register file 84 is 1, the first priority decision logic 86 is selected to be used by the fixed priority algorithm as the channel selection algorithm. do. In this case, the selection of the DMA channel is made by the remaining bit values b1-b4 stored in the arbitration register file 84.

도 3은 도 2에 도시된 제 1 우선순위 결정로직(86)에 의해 결정되는 DMA 우선순위를 보여주기 위한 도면이다. 도 3에 도시된 DMA 우선순위는 6 채널용 DMA 컨트롤러의 우선순위(priority)를 나타낸 것이다. 예를 들어, 6 채널 DMA 컨트롤러에서 결정 가능한 우선순위의 조합은 26으로서, 64가지의 조합이 가능하다. 여기서는, 우선순위 결정용 레지스터인 중재 레지스터 화일(84)에 저장된 4 비트 값들(b1-b4)을 이용하였으며, 이들의 조합에 의한 12가지 형태의 채널 우선순위 순서를 나타낸다. 일반적으로, 이와 같은 고정 우선순위 결정로직은, 선택된 채널이 DMA 동작을 종료할때까지 버스를 점유한다. 따라서, 본 발명에 의한 DMA 컨트롤러(50)의 제 1 우선순위 결정로직(86)은, 선택된 채널이 DMA 동작 중 시스템 버스를 점유하지 않도록 채널 우선순위를 프로그램적으로 변경하여, 시스템의 성능을 향상시킨다.FIG. 3 is a diagram for showing the DMA priority determined by the first priority decision logic 86 shown in FIG. The DMA priority shown in FIG. 3 shows the priority of the 6-channel DMA controller. For example, the combination of priorities that can be determined in the six-channel DMA controller is 2 6 , and 64 combinations are possible. Here, four bit values b1 to b4 stored in the arbitration register file 84, which is a priority determining register, are used, and the channel priority order of twelve types by combination thereof is shown. In general, such fixed prioritization logic occupies the bus until the selected channel terminates the DMA operation. Accordingly, the first prioritization logic 86 of the DMA controller 50 according to the present invention programmatically changes the channel priority so that the selected channel does not occupy the system bus during DMA operation, thereby improving system performance. Let's do it.

도 4는 도 2에 도시된 스테이트 머신(82)의 동작 상태를 보여주기 위한 상태도이다. 도 4를 참조하면, 스테이트 머신(82)의 동작 상태는 크게 초기화 상태(idle state ; 210), 채널 DMA 동작 체크 상태(chek priority state ; 220),채널 DMA 동작 상태(active state ; 230), 그리고 전달 상태(handover state ; 240)로 구성된다. 초기화 상태(210)는 파워 리셋 신호(power reset signal)에 의해서 초기화되는 상태이다. 채널 DMA 동작 체크 상태(220)는 채널간의 DMA 동작 요구 상태를 체크하면서 시스템 버스 사용 및 채널 DMA 동작 여부를 결정하는 상태이다. 채널 DMA 동작 상태(230)는 채널 DMA 동작 상태로서, 시스템 버스 사용 허락을 시스템 버스 중재기(30)에 요청하는 상태이다. 전달 상태(240)는 채널 DMA 동작을 수행한 후 채널 DMA 동작 체크 상태(220)로 되돌아가는 상태이다. 여기서, Condition A는 파워 온 리셋(power on reset)을 의미하고, Condition B는 채널 DMA 동작의 초기 상태를 의미한다. Condition C는 채널 DMA 동작 체크 상태(220)를 유지하는 것을 의미한다. Condition D는 슬레이브 장치(slave device) 또는 주변장치(peripheral device), 그리고 선택된 우선순위 로직(86 또는 87)으로부터 요청된 DMA 동작을 의미한다. Condition E는 채널 DMA 동작 상태(230)를 유지하는 것을 의미하고, Condition F는 DMA 동작 이후 시스템 버스가 허용되지 않은 것을 의미한다. 그리고, Condition G는 전달 상태(240)를 유지하는 것을 의미하고, Condition H는 슬레이브 장치로부터 요청된 DMA 동작을 의미한다.4 is a state diagram for showing an operating state of the state machine 82 shown in FIG. Referring to FIG. 4, the operating state of the state machine 82 may be divided into an initial state 210, a channel DMA operation check state 220, a channel DMA active state 230, and Handover state 240. The initialization state 210 is a state initialized by a power reset signal. The channel DMA operation check state 220 is a state for determining whether to use the system bus and whether to operate the channel DMA while checking the DMA operation request state between channels. The channel DMA operational state 230 is a channel DMA operational state, which is a state in which the system bus arbiter 30 is requested to use the system bus. The transfer state 240 is a state in which the channel DMA operation returns to the channel DMA operation check state 220 after performing the channel DMA operation. Here, Condition A means power on reset, and Condition B means the initial state of the channel DMA operation. Condition C means maintaining the channel DMA operation check state 220. Condition D means a DMA operation requested from a slave device or peripheral device, and the selected priority logic 86 or 87. Condition E means to maintain the channel DMA operating state 230, Condition F means that the system bus is not allowed after the DMA operation. In addition, Condition G means maintaining the delivery state 240, Condition H means the DMA operation requested from the slave device.

이와 같은 동작 상태를 가진 스테이트 머신(82)은, 초기화 상태(210) 및 전달 상태(240) 구간 동안(즉, 시스템 버스와 채널 전달 구간 동안) DMA 컨트롤러(50)로 하여금 시스템 버스 사용권을 포기하도록 제어한다. 그 결과, DMA 동작 중 DMA 컨트롤러를 제외한 시스템 버스 마스터에 의한 시스템 버스 이용이 가능하게 된다.State machine 82 with such an operating state may cause DMA controller 50 to give up the system bus license during the initialization state 210 and propagation state 240 periods (ie, during the system bus and channel delivery periods). To control. As a result, the system bus can be used by the system bus master except the DMA controller during the DMA operation.

다시 도 2 및 도 4를 참조하여 본 발명에 의한 DMA 컨트롤러(50)에 구비된 채널 우선순위 중재부(80)의 동작을 살펴보면 다음과 같다. 먼저, DMA 요청 신호(DMA request signal ; DMAREQ)가 신호검출부(81)로 입력되면, 스테이트 머신(82)의 동작 상태는 Condition B로 표시된 것처럼 초기화 상태(210)에서 채널 DMA 동작 체크 상태(220)로 천이된다. 스테이트 머신(82)의 동작 상태가 채널 DMA 동작의 초기 상태를 의미하는 Condition B 상태가 되면, 제 1 신호발생부(76)는 시스템 버스 요청 신호(system bus request signal ; SBREQ)를 발생하고, 시스템 버스 허용 신호(system bus grant signal ; SBGNT)를 받아들이게 된다. 시스템 버스 허용 신호(SBGNT)가 입력되면, 제 2 신호 발생부(83)는 제 1 신호발생부(76)와, 채널 버스 제어부(74), 그리고 채널 제어부(78)로부터 발생되는 제어 신호들에 응답해서 중재 제어 신호(arbitration control signal)를 스테이트 머신(82)으로 발생한다. 제 2 신호 발생부(83)로부터 발생된 제어신호에 의해 스테이트 머신(82)의 동작 상태는 Condition C, 즉 채널 DMA 동작 체크 상태(220)가 된다. 스테이트 머신(82)의 동작 상태가 채널 DMA 동작 체크 상태(220)가 되면 신호검출부(81)는 DMA 인식 신호(DMA acknowledge signal; DMAACK)를 발생한다. DMA 인식 신호(DMAACK)가 발생되면, 제 4 레지스터(94)의 특정 비트가 중재 레지스터 화일(84)에 저장된다. 이어서, 중재 레지스터 화일(84)에 저장된 비트 값(b0-b4)에 의해 제 1 우선순위 결정로직(86) 또는 제 2 우선순위 결정로직(87)이 선택되고 선택된 우선순위 결정로직에 의해 DMA 채널의 우선순위가 결정된다. 우선순위 결정로직(86 또는 87)에 의해 DMA 채널의 우선순위가 결정되면, 스테이트 머신(82)의 동작 상태는 DMA 동작상태(230)가 되어, 시스템 버스 사용 허락을 시스템 버스 중재기(30)로 요청하여 채널 DMA 동작을 수행한다(도 4의 Condition D 및 Condition E 참조). 이어서, Condition F와 같이 DMA 동작 이후 시스템 버스가 허용되지 않으면 스테이트 머신(82)의 동작 상태는 Condition G와 같이 전달 상태(240)가 되고, 전달 상태(240) 동안 시스템 버스를 점유하지 않고, 다른 시스템 버스 마스터가 시스템 버스를 사용할 수 있도록 스테이트 머신(82)의 동작 상태는 Condition H와 같이 채널 DMA 동작 체크 상태(220)로 되돌아 간다.Referring to FIGS. 2 and 4 again, the operation of the channel priority arbitration unit 80 included in the DMA controller 50 according to the present invention will be described below. First, when a DMA request signal (DMAAREQ) is input to the signal detector 81, the operation state of the state machine 82 is the channel DMA operation check state 220 in the initialization state 210 as indicated by Condition B. As it transitions. When the state of operation of the state machine 82 becomes a condition B state, which indicates an initial state of the channel DMA operation, the first signal generator 76 generates a system bus request signal (SBREQ), and the system It accepts a system bus grant signal (SBGNT). When the system bus permission signal SBGNT is input, the second signal generator 83 is connected to the control signals generated from the first signal generator 76, the channel bus controller 74, and the channel controller 78. In response, an arbitration control signal is generated to the state machine 82. The operation state of the state machine 82 is set to Condition C, that is, the channel DMA operation check state 220 by the control signal generated from the second signal generator 83. When the state of operation of the state machine 82 becomes the channel DMA operation check state 220, the signal detection unit 81 generates a DMA acknowledge signal (DMAACK). When the DMA acknowledgment signal DMAACK is generated, a specific bit of the fourth register 94 is stored in the arbitration register file 84. Subsequently, either the first priority decision logic 86 or the second priority decision logic 87 is selected by the bit values b0-b4 stored in the arbitration register file 84 and the DMA channel is selected by the selected priority decision logic. Is prioritized. Once the prioritization logic 86 or 87 determines the priority of the DMA channel, the operational state of the state machine 82 becomes the DMA operational state 230, allowing the system bus arbiter 30 to grant system bus usage. To perform the channel DMA operation (see Condition D and Condition E of FIG. 4). Subsequently, if the system bus is not allowed after the DMA operation, such as Condition F, then the operating state of the state machine 82 is in the delivery state 240, as in Condition G, and does not occupy the system bus during the delivery state 240; The state of operation of state machine 82 returns to channel DMA operation check state 220 as Condition H so that the system bus master can use the system bus.

앞에서 설명한 바와 같이, 본 발명에 의한 DMA 컨트롤러(50)는 DMA 컨트롤러 내의 채널 우선순위 결정용 회로인 채널 우선순위 중재부(80)를 이용하여 다중 DMA 전송 동작을 수행한다. 상기 DMA 컨트롤러(50)는, 다중 DMA 동작 중 채널간의 버스교환 구간(즉, 전달 상태(240)) 동안 버스 점유를 포기함으로서, 다른 시스템 버스 마스터가 시스템 버스를 사용할 수 있도록 한다. 그리고, 상기 DMA 컨트롤러(50)의 각 채널들은 시스템 버스 마스터가 동작되는 동안에도 DMA 동작 상태를 저장함으로써, DMA 컨트롤러가 시스템 버스를 다시 점유하더라도 연속적인 다중 DMA 전송 동작을 수행할 수 있다.As described above, the DMA controller 50 according to the present invention performs a multi-DMA transfer operation by using the channel priority arbitration unit 80, which is a circuit for determining channel priority in the DMA controller. The DMA controller 50 gives up bus occupancy during the inter-channel bus exchange period (ie, transfer state 240) during multiple DMA operations, allowing other system bus masters to use the system bus. Each channel of the DMA controller 50 stores a DMA operation state even while the system bus master is operating, so that the DMA controller can perform a continuous multiple DMA transfer operation even if the DMA controller occupies the system bus again.

도 5는 고속 입출력 장치가 연결되었을 경우, 종래 기술에 의한 DMA 컨트롤러의 동작 타이밍을 보여주기 위한 타이밍도이다. 그리고, 도 6은 저속 입출력 장치가 Channel 0과 Channel 2에 연결되었을 경우, 종래 기술에 의한 DMA 컨트롤러의 동작 타이밍을 보여주기 위한 타이밍도이다. 도 5 및 도 6에 도시된 DMA 컨트롤러의 동작 타이밍은, 우선순위 결정로직으로 고정 우선순위 결정로직이 사용된 경우로서, 각 채널의 우선 순위가 Channel 0 > Channel 1 > Channel 2 > Channel 3인 경우에 대한 것이다. 이 경우, Channel 0의 TCR 값(즉, 전송될 데이터의 길이 값)은 11이고, Channel 1의 TCR 값은 16이고, Channel 2의 TCR 값은 14이고, 그리고 Channel 3의 TCR 값은 8이다.5 is a timing diagram illustrating an operation timing of a DMA controller according to the related art when a high speed input / output device is connected. FIG. 6 is a timing diagram illustrating an operation timing of a DMA controller according to the related art when the low speed I / O device is connected to Channel 0 and Channel 2. FIG. The operation timing of the DMA controller shown in FIGS. 5 and 6 is a case where a fixed priority decision logic is used as the priority decision logic, and the priority of each channel is Channel 0> Channel 1> Channel 2> Channel 3. It is about. In this case, the TCR value of channel 0 (that is, the length value of data to be transmitted) is 11, the TCR value of Channel 1 is 16, the TCR value of Channel 2 is 14, and the TCR value of Channel 3 is 8.

도 5 및 도 6을 참조하면, 종래 기술에 의한 DMA 컨트롤러는, 고속 입출력 장치가 연결되었을 경우와, 저속 입출력 장치가 연결되었을 경우 모두에 있어서, DMA 전송 동작 중 CPU가 동작되는 구간 동안(DMA Operation 파형의 CPU Op. 참조)에 대한 시스템 버스 동작 파형(System BUS Operation)을 보면, DMA 전송 동작 중 CPU가 동작되는 구간 동안 시스템 버스는 아무런 동작도 수행하지 않는 것(NOP)을 알 수 있다. 즉, DMA 컨트롤러에 의해 시스템 버스가 일단 점유되고 나면 CPU와 같은 시스템 버스 마스터는 DMA 전송이 모두 종료될 때까지 시스템 버스를 사용하지 못한다는 것을 의미한다. 이와 달리, DMA 컨트롤러에 의한 시스템 버스 점유 중에도 CPU와 같은 마스터에 의한 시스템 버스 이용이 가능한 본 발명에 의한 DMA 컨트롤러의 동작 타이밍은 다음과 같다.Referring to FIGS. 5 and 6, the DMA controller according to the related art is used during a period in which a CPU is operated during a DMA transfer operation in both a high speed input / output device and a low speed input / output device. The system bus operation waveform (see CPU Op. Of the waveform) shows that the system bus does not perform any operation (NOP) during the period in which the CPU is operated during the DMA transfer operation. This means that once the system bus is occupied by the DMA controller, the system bus master, such as the CPU, cannot use the system bus until all of the DMA transfers have been completed. On the other hand, the operation timing of the DMA controller according to the present invention in which the system bus can be used by the master such as the CPU even while occupying the system bus by the DMA controller is as follows.

도 7은 고속 입출력 장치가 연결되었을 경우, 본 발명에 의한 DMA 컨트롤러의 동작 타이밍을 보여주기 위한 타이밍도이다. 그리고, 도 8은 저속 입출력 장치가 연결되었을 경우, 본 발명에 의한 DMA 컨트롤러의 동작 타이밍을 보여주기 위한 타이밍도이다. 도 7 및 도 8에 도시된 DMA 컨트롤러의 동작 타이밍은, 도 5 및 도 6에 도시된 DMA 컨트롤러와 동일한 조건에서 동작할 수 있도록, 고정 우선순위 결정로직(즉, 제 1 우선순위 결정 로직(86))이 사용된 경우에 대한 것으로서, 각 채널의 우선 순위가 Channel 0 > Channel 1 > Channel 2 > Channel 3인 경우를 나타낸다. 이 경우, 각 채널의 TCR 값(즉, 전송될 데이터의 길이 값)은 도 5 및 도 6의 경우와 동일하다. 도 7에 있어서, System BUS Operation I은 전달 상태(bus handover) 동안 다른 시스템 버스 마스터가 시스템 버스를 사용한 경우의 파형이고, System BUS Operation II은 전달 상태(bus handover) 동안 다른 채널 DMA 컨트롤러가가 시스템 버스를 사용한 경우의 파형을 각각 나타낸다.7 is a timing diagram illustrating an operation timing of a DMA controller according to the present invention when a high speed input / output device is connected. 8 is a timing diagram showing an operation timing of the DMA controller according to the present invention when the low speed input / output device is connected. The operation timing of the DMA controllers shown in FIGS. 7 and 8 is fixed priority determination logic (ie, first priority determination logic 86) to operate under the same conditions as the DMA controllers shown in FIGS. 5 and 6. )) Is used when the priority of each channel is Channel 0> Channel 1> Channel 2> Channel 3. In this case, the TCR value (that is, the length value of data to be transmitted) of each channel is the same as that of FIGS. 5 and 6. In FIG. 7, System BUS Operation I is a waveform when another system bus master uses a system bus during a bus handover, and System BUS Operation II is a system that is operated by another channel DMA controller during a bus handover. The waveforms in the case of using a bus are shown respectively.

도 7 및 도 8을 참조하면, 본 발명에 의한 DMA 컨트롤러는, 고속 입출력 장치가 연결되었을 경우와, 저속 입출력 장치가 연결되었을 경우 모두에 있어서, 시스템 버스 전달 상태(System BUS Handover) 구간 동안 시스템 버스를 독점하지 않고, CPU 또는 다른 시스템 버스마스터가 시스템 버스를 사용할 수 있도록 시스템 버스 사용권을 포기하는 것을 알 수 있다. 그 결과, 시스템 버스 전달 상태(System BUS Handover) 구간 동안에는 CPU 또는 다른 시스템 버스마스터가 시스템 버스를 사용할 수 있어, 시스템 버스의 사용 효율을 극대화 시킬 수 있다.Referring to FIGS. 7 and 8, the DMA controller according to the present invention includes a system bus during a system bus handover period in both a high speed input / output device and a low speed input / output device. It can be seen that the system bus license is waived so that the CPU or other system busmasters can use the system bus. As a result, the system bus can be used by the CPU or other system busmaster during the system bus handover period, thereby maximizing the efficiency of using the system bus.

이상에서, 본 발명에 따른 회로의 구성 및 동작을 상기한 설명 및 도면에 따라 도시하였지만 이는 예를 들어 설명한 것에 불과하며 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 다양한 변화 및 변경이 가능함은 물론이다.In the above, the configuration and operation of the circuit according to the present invention are shown in accordance with the above description and drawings, but this is merely described, for example, and various changes and modifications are possible without departing from the spirit of the present invention. .

이상과 같은 본 발명에 의하면, DMA 컨트롤러에 의한 시스템 버스 점유 중에도 CPU와 같은 마스터에 의한 시스템 버스 이용이 가능하게 되어, 시스템 버스의 사용 효율이 극대화 된다.According to the present invention as described above, it is possible to use the system bus by the master such as the CPU even while occupying the system bus by the DMA controller, thereby maximizing the use efficiency of the system bus.

그리고, 시스템 버스에 연결된 주변 모듈에 따라 적절한 우선순위 결정로직이 선택되어 사용되므로, DMA 동작의 효율이 높아지고, 고속의 다중 채널 DMA 전송이 가능하게 된다.In addition, since the appropriate prioritization logic is selected and used according to peripheral modules connected to the system bus, the efficiency of the DMA operation is increased, and high-speed multi-channel DMA transmission is possible.

Claims (6)

다수 개의 채널을 구비한 DMA 컨트롤러에 있어서:In a DMA controller with multiple channels: 중앙처리장치로부터 입/출력 장치의 주소, 데이터가 기입/독출될 주소, 상기 기입/독출될 데이터의 길이 값, 그리고 DMA 전송에 사용되는 제어 신호에 대한 인터페이스를 수행하기 위한 시스템 버스 인터페이스와;A system bus interface for performing an interface from the central processing unit to an address of an input / output device, an address to which data is to be written / read, a length value of the data to be written / read, and a control signal used for DMA transmission; 상기 입/출력 장치의 주소를 저장하기 위한 제 1 레지스터와;A first register for storing an address of the input / output device; 상기 데이터가 기입/독출될 부분의 시작 주소를 저장하기 위한 제 2 레지스터와;A second register for storing a start address of a portion where the data is to be written / read; 상기 데이터의 길이 값을 저장하기 위한 제 3 레지스터와;A third register for storing a length value of the data; 상기 제어 신호를 저장하기 위한 제 4 레지스터와;A fourth register for storing said control signal; 상기 시스템 버스 인터페이스를 통해 받아들인 상기 주소, 상기 데이터의 길이 값 및 상기 제어신호를 상기 제 1 내지 제 4 레지스터의 적정 위치에 실어주고, 채널 및 채널 버스를 제어하기 위한 제어회로; 그리고A control circuit for carrying the address, the length value of the data, and the control signal received through the system bus interface to an appropriate position of the first to fourth registers, and controlling a channel and a channel bus; And 상기 다수 개의 채널들의 우선순위를 결정하기 위한 채널 우선순위 중재회로를 포함하되,A channel priority arbitration circuit for determining priorities of the plurality of channels, 상기 채널 우선순위 중재회로는, 적어도 둘 이상의 우선순위 결정로직을 구비하여 시스템 버스에 연결되는 주변 모듈에 따라 상기 우선순위 결정로직을 선택적으로 인에이블 시키고, 그리고 DMA 전송 동작 동안 상기 DMA 컨트롤러 이외의 시스템 버스 마스터에 의해 상기 시스템 버스가 사용될 수 있도록 채널간의 버스교환시 버스 점유를 포기하는 것을 특징으로 하는 다중 채널을 가진 고속 직접 메모리 억세스 컨트롤러.The channel priority arbitration circuit has at least two prioritization logics to selectively enable the prioritization logic in accordance with a peripheral module connected to the system bus, and a system other than the DMA controller during a DMA transfer operation. A high speed direct memory access controller having multiple channels, wherein the bus master gives up bus occupancy when exchanging buses between channels for use by the system bus. 제 1 항에 있어서,The method of claim 1, 상기 채널 우선순위 중재회로는,The channel priority arbitration circuit, 외부로부터 입력되는 DMA 요청 신호(DMAREQ)를 검출하기 위한 신호 검출부와;A signal detector for detecting a DMA request signal (DMAREQ) input from the outside; 상기 신호 검출부의 신호 검출 결과에 응답해서 채널 DMA 동작 상태를 변환시키는 스테이트 머신과;A state machine for converting a channel DMA operation state in response to a signal detection result of the signal detection unit; 상기 스테이트 머신의 동작 상태에 응답해서 제어신호를 발생하기 위한 제 1 신호 발생부와;A first signal generator for generating a control signal in response to an operating state of the state machine; 상기 제 1 신호 발생부로부터 발생된 제어신호에 응답해서 시스템 버스 요청 신호(SBREQ)를 발생하고, 외부로부터 입력되는 시스템 버스 허용 신호(SBGNT) 받아들이기 위한 제 2 신호 발생부와;A second signal generator for generating a system bus request signal SBREQ in response to the control signal generated from the first signal generator and receiving a system bus permission signal SBGNT input from the outside; 제 1 및 제 2 우선순위 결정로직을 구비한 우선순위 결정로직 회로; 그리고A prioritization logic circuit with first and second prioritization logic; And 상기 제 4 레지스터의 특정 비트 값에 응답해서, 상기 우선순위 결정로직 회로의 제 1 및 제 2 우선순위 결정로직들 중 어느 하나를 선택하기 위한 중재 레지스터 화일을 포함하되,In response to a specific bit value of the fourth register, comprising an arbitration register file for selecting any one of the first and second prioritization logics of the prioritization logic circuit, 상기 제 1 신호 발생부는, 상기 시스템 버스 허용 신호(SBGNT)에 응답해서 중재 제어 신호를 발생하고, 상기 스테이트 머신은 상기 중재 제어 신호에 응답해서 상기 채널 DMA 동작 상태를 변환시키고, 그리고 상기 신호 검출부는 상기 변환된 채널 DMA 동작 상태에 응답해서 DMA 인식 신호(DMAACK)를 발생하여 상기 제 4 레지스터의 특정 비트 값들을 받아들이는 것을 특징으로 하는 다중 채널을 가진 고속 직접 메모리 억세스 컨트롤러.The first signal generator generates an arbitration control signal in response to the system bus permission signal SBGNT, the state machine converts the channel DMA operating state in response to the arbitration control signal, and the signal detector And generate a DMA acknowledgment signal (DMAACK) in response to the converted channel DMA operating state to receive specific bit values of the fourth register. 제 2 항에 있어서,The method of claim 2, 상기 제 1 우선순위 결정로직은 프로그램 가능한 고정 우선순위 결정로직이고, 상기 제 2 우선순위 결정로직은 라운드-로빈 우선순위 결정로직인 것을 특징으로 하는 다중 채널을 가진 고속 직접 메모리 억세스 컨트롤러.And said first prioritization logic is a programmable fixed prioritization logic and said second prioritization logic is a round-robin prioritization logic. 제 2 항에 있어서,The method of claim 2, 상기 제 2 우선순위 결정로직은, 다수 개의 채널들이 동시에 DMA 동작을 요구할 경우 사용되는 것을 특징으로 하는 다중 채널을 가진 고속 직접 메모리 억세스 컨트롤러.And said second prioritization logic is used when multiple channels simultaneously require DMA operation. 제 2 항에 있어서,The method of claim 2, 상기 스테이트 머신의 상기 동작 상태는,The operating state of the state machine, 파워 리셋 신호에 의해서 초기화되는 초기화 상태와;An initialization state initialized by a power reset signal; 상기 채널들간의 DMA 동작 요구 상태를 체크하면서 상기 시스템 버스 사용 및 채널 DMA 동작 여부를 결정하는 채널 DMA 동작 체크 상태와;A channel DMA operation check state for determining whether to use the system bus and channel DMA while checking a DMA operation request state between the channels; 상기 시스템 버스에 대한 사용 허락을 시스템 버스 중재기에 요청하는 채널 DMA 동작 상태; 그리고A channel DMA operating state requesting a system bus arbiter for permission to use the system bus; And 상기 채널 DMA 동작을 수행한 후, 상기 채널 DMA 동작 체크 상태로 되돌아가는 전달 상태를 포함하는 것을 특징으로 하는 다중 채널을 가진 고속 직접 메모리 억세스 컨트롤러.And a transfer state for returning to the channel DMA check state after performing the channel DMA operation. 제 5 항에 있어서,The method of claim 5, 상기 DMA 컨트롤러는, 상기 전달 상태에서 상기 시스템 버스의 점유를 포기함으로써 상기 DMA 동작 중 상기 DMA 컨트롤러 이외의 상기 시스템 버스 마스터에 의한 시스템 버스 이용이 가능하도록 하는 것을 특징으로 하는 다중 채널을 가진 고속 직접 메모리 억세스 컨트롤러.The DMA controller provides for the use of a system bus by the system bus master other than the DMA controller during the DMA operation by giving up the system bus in the transfer state. Access controller.
KR10-2001-0035428A 2001-06-21 2001-06-21 High speed direct memory access controller with multiple channels KR100389030B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2001-0035428A KR100389030B1 (en) 2001-06-21 2001-06-21 High speed direct memory access controller with multiple channels

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0035428A KR100389030B1 (en) 2001-06-21 2001-06-21 High speed direct memory access controller with multiple channels

Publications (2)

Publication Number Publication Date
KR20020097478A KR20020097478A (en) 2002-12-31
KR100389030B1 true KR100389030B1 (en) 2003-06-25

Family

ID=27710365

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0035428A KR100389030B1 (en) 2001-06-21 2001-06-21 High speed direct memory access controller with multiple channels

Country Status (1)

Country Link
KR (1) KR100389030B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100618823B1 (en) * 2004-04-14 2006-08-31 삼성전자주식회사 Memory arbiter and memory arbitrating method for optical device
KR100957224B1 (en) * 2008-06-12 2010-05-11 (주)명정보기술 Method and system for controling flash memory using multiple data channel in SSD
KR100959136B1 (en) 2008-07-16 2010-05-25 한국전자통신연구원 Direct memory access controller and data transmitting method of direct memory access channel

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5699531A (en) * 1980-01-11 1981-08-10 Hitachi Ltd Control method for bus usufructuary right of direct memory access channel
JPS6086650A (en) * 1983-10-18 1985-05-16 Fujitsu Ltd Direct memory access control system
JPS6388666A (en) * 1986-10-01 1988-04-19 Matsushita Electric Ind Co Ltd Bus arbitration controller
JPH08171528A (en) * 1994-12-19 1996-07-02 Ricoh Co Ltd Data processor
KR970049652A (en) * 1995-12-26 1997-07-29 정장호 Bused Arbitration Circuit in Direct Memory Access
KR19980029433A (en) * 1996-10-25 1998-07-25 정장호 DMA controller in BISDN matching device
JP2000267993A (en) * 1999-03-18 2000-09-29 Minolta Co Ltd Dma controller
KR20010057244A (en) * 1999-12-20 2001-07-04 윤종용 DMA(Direct Memory Access) bus control method

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5699531A (en) * 1980-01-11 1981-08-10 Hitachi Ltd Control method for bus usufructuary right of direct memory access channel
JPS6086650A (en) * 1983-10-18 1985-05-16 Fujitsu Ltd Direct memory access control system
JPS6388666A (en) * 1986-10-01 1988-04-19 Matsushita Electric Ind Co Ltd Bus arbitration controller
JPH08171528A (en) * 1994-12-19 1996-07-02 Ricoh Co Ltd Data processor
KR970049652A (en) * 1995-12-26 1997-07-29 정장호 Bused Arbitration Circuit in Direct Memory Access
KR19980029433A (en) * 1996-10-25 1998-07-25 정장호 DMA controller in BISDN matching device
JP2000267993A (en) * 1999-03-18 2000-09-29 Minolta Co Ltd Dma controller
KR20010057244A (en) * 1999-12-20 2001-07-04 윤종용 DMA(Direct Memory Access) bus control method

Also Published As

Publication number Publication date
KR20020097478A (en) 2002-12-31

Similar Documents

Publication Publication Date Title
KR970000842B1 (en) System direct memory access(dma)support logic for pci based computer system
KR100420707B1 (en) Method and system for bus arbitration in multiprocessor systems with simultaneous access of variable-width buses
US5819096A (en) PCI to ISA interrupt protocol converter and selection mechanism
EP0629955B1 (en) Arbitration logic for multiple bus computer system
JP5237351B2 (en) Switch matrix system with multiple bus arbitrations per cycle via higher frequency arbiters
US7165133B2 (en) Multiprocessor system having shared buses, prioritized arbitration, and clock synchronization circuitry
WO2002069158A1 (en) A multi-service system-on-chip
KR100296718B1 (en) Method and system for simultaneously accessing variable-width buses in multiprocessor systems
KR19990029295A (en) Method and system for I / O control in multiprocessor system using simultaneous access of variable width bus
JPH08297632A (en) Method and apparatus for arbitration to bus enabling split transaction bus protocol
US6425037B1 (en) Information processing system, bus arbiter, and bus controlling method
KR100633773B1 (en) Bus system and method of bus arbitration
JP3208332B2 (en) Interrupt device
EP1222551B1 (en) Asynchronous centralized multi-channel dma controller
KR100389030B1 (en) High speed direct memory access controller with multiple channels
US6889283B2 (en) Method and system to promote arbitration priority in a buffer queue
JP2002149591A (en) Method and device for optimizing bus in processor local bus system
JPH09153009A (en) Arbitration method for hierarchical constitution bus
US7031337B2 (en) Data processing apparatus and slave interface mechanism for controlling access to a slave logic unit by a plurality of master logic units
US20160224486A1 (en) Interrupt-driven i/o arbiter for a microcomputer system
US6418491B1 (en) Apparatus and method for controlling timing of transfer requests within a data processing apparatus
JP3094944B2 (en) Arbitration method and device
JPS63175964A (en) Shared memory
JP4437386B2 (en) Signal processing system
CN115794712A (en) General multi-master parallel on-chip bus supporting X86 architecture

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20070514

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee