KR20010084392A - apparatus for controlling direct memory access - Google Patents

apparatus for controlling direct memory access Download PDF

Info

Publication number
KR20010084392A
KR20010084392A KR1020000009406A KR20000009406A KR20010084392A KR 20010084392 A KR20010084392 A KR 20010084392A KR 1020000009406 A KR1020000009406 A KR 1020000009406A KR 20000009406 A KR20000009406 A KR 20000009406A KR 20010084392 A KR20010084392 A KR 20010084392A
Authority
KR
South Korea
Prior art keywords
dma
memory
priority
request
signal
Prior art date
Application number
KR1020000009406A
Other languages
Korean (ko)
Other versions
KR100451722B1 (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-2000-0009406A priority Critical patent/KR100451722B1/en
Publication of KR20010084392A publication Critical patent/KR20010084392A/en
Application granted granted Critical
Publication of KR100451722B1 publication Critical patent/KR100451722B1/en

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B31MAKING ARTICLES OF PAPER, CARDBOARD OR MATERIAL WORKED IN A MANNER ANALOGOUS TO PAPER; WORKING PAPER, CARDBOARD OR MATERIAL WORKED IN A MANNER ANALOGOUS TO PAPER
    • B31FMECHANICAL WORKING OR DEFORMATION OF PAPER, CARDBOARD OR MATERIAL WORKED IN A MANNER ANALOGOUS TO PAPER
    • B31F1/00Mechanical deformation without removing material, e.g. in combination with laminating
    • B31F1/08Creasing
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47GHOUSEHOLD OR TABLE EQUIPMENT
    • A47G19/00Table service
    • A47G19/02Plates, dishes or the like
    • A47G19/03Plates, dishes or the like for using only once, e.g. made of paper
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B31MAKING ARTICLES OF PAPER, CARDBOARD OR MATERIAL WORKED IN A MANNER ANALOGOUS TO PAPER; WORKING PAPER, CARDBOARD OR MATERIAL WORKED IN A MANNER ANALOGOUS TO PAPER
    • B31BMAKING CONTAINERS OF PAPER, CARDBOARD OR MATERIAL WORKED IN A MANNER ANALOGOUS TO PAPER
    • B31B50/00Making rigid or semi-rigid containers, e.g. boxes or cartons
    • B31B50/14Cutting, e.g. perforating, punching, slitting or trimming
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B31MAKING ARTICLES OF PAPER, CARDBOARD OR MATERIAL WORKED IN A MANNER ANALOGOUS TO PAPER; WORKING PAPER, CARDBOARD OR MATERIAL WORKED IN A MANNER ANALOGOUS TO PAPER
    • B31BMAKING CONTAINERS OF PAPER, CARDBOARD OR MATERIAL WORKED IN A MANNER ANALOGOUS TO PAPER
    • B31B50/00Making rigid or semi-rigid containers, e.g. boxes or cartons
    • B31B50/60Uniting opposed surfaces or edges; Taping
    • B31B50/64Uniting opposed surfaces or edges; Taping by applying heat or pressure, e.g. by welding

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Food Science & Technology (AREA)
  • Bus Control (AREA)

Abstract

PURPOSE: A direct memory access controller is provided to enable a user to efficiently use a memory of a specific DMA request block by actively ordering the priority to several DMA request blocks in using the memory. CONSTITUTION: A DMA(Direct Memory Access) processing unit(200) includes a priority processing unit(210) which determines a priority of a memory(300) used to several DMA request blocks(400-420) and a DMA main processing unit(220) which processes a data transmission between the DMA request blocks(400-420) determined by the priority processing unit(210) and the memory(300). In addition, the DMA processing unit includes a priority preprocessing unit(240) which determines a priority and a host bus processing unit(230) which transmits a request for using the memory(300) to the priority processing unit(210).

Description

직접 메모리 액세스 제어 장치{apparatus for controlling direct memory access}Device for controlling direct memory access

본 발명은 컴퓨터 시스템에 관한 것으로, 특히 메모리를 포함하는 컴퓨터 시스템에서 전송속도 개선을 위해 사용되는 DMA 제어 장치에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to computer systems, and more particularly, to a DMA control apparatus used for improving transmission speed in a computer system including a memory.

일반적으로 DMA는 컴퓨터 시스템에서 데이터를 직접 메모리로 전송하는 기법으로, 중앙처리장치(Central Process Unit ; 이하, CPU 라 약칭함)는 DMA 전송을시작시킬 뿐 DMA 전송 동안 메모리 버스(memory bus)를 제어하지 못하고 다른 일을 수행하거나 휴지상태(Idle)에 있게 된다.In general, DMA is a technique for transferring data directly to memory in a computer system. A central processing unit (hereinafter referred to as a CPU) initiates a DMA transfer and controls a memory bus during the DMA transfer. You may not be able to do something else or be idle.

특히 DMA 전송동안에는 데이터 경로에서 CPU가 제거되고, DMA 제어기(DMA controller)라는 주변장치가 직접 메모리 버스를 관리한다.In particular, during the DMA transfer, the CPU is removed from the data path, and a peripheral called a DMA controller directly manages the memory bus.

이하 DMA 제어를 위한 장치에 대해 설명한다.An apparatus for DMA control will be described below.

도 1 은 종래 기술에 따른 DMA 제어를 위한 시스템의 일부 구성을 나타낸 블록도이다.1 is a block diagram showing a part of a configuration of a system for DMA control according to the prior art.

도 1을 참조하면, DMA 제어를 위한 시스템은 CPU(10)와 시스템 버스(system bus)를 통해 인터페이스되는 DMA 처리부(20), 메모리 버스를 통해 DMA 처리부(20)와 인터페이스되는 메모리(30), 그리고 DMA 버스를 통해 DMA 처리부(20)와 인터페이스되는 여러 DMA 요청 블록들(40∼42)로 구성된다.Referring to FIG. 1, a system for DMA control includes a DMA processor 20 interfaced with a CPU 10 and a system bus, a memory 30 interfaced with a DMA processor 20 through a memory bus, And a plurality of DMA request blocks 40 to 42 interfaced with the DMA processing unit 20 through the DMA bus.

특히 DMA 처리부(20)는 CPU(10) 및 여러 DMA 요청 블록들(40∼42)에 대해 메모리(30) 사용의 우선순위를 정해주는 우선순위 처리부(21)와, 우선순위 처리부(21)에 의해 우선순위가 정해진 DMA 요청 블록들(40∼42)과 메모리(30)간의 데이터 전송을 처리하는 DMA 주 처리부(22)를 포함한다. 또한 DMA 주 처리부(22)는 여러 레지스터(register)를 내부에 포함한다.In particular, the DMA processing unit 20 includes a priority processing unit 21 that prioritizes the use of the memory 30 with respect to the CPU 10 and the various DMA request blocks 40 to 42, and the priority processing unit 21. And a DMA main processor 22 which processes the data transfer between the DMA request blocks 40 to 42 and the memory 30, which are prioritized by the memory. The DMA main processor 22 also includes several registers therein.

상기한 구성에 따른 동작을 이하 설명한다.The operation according to the above configuration will be described below.

일단 우선순위 처리부(21)는 여러 DMA 요청 블록들(40∼42)들로부터 DMA 요청 신호(DMA_Request_x, x는 1∼n)를 전달받는다. 이 때 우선순위 처리부(21)는 이 신호들을 취합하여 우선순위가 가장 높은 DMA 요청 블록(40 또는 41 또는 42)에게메모리(30) 사용권을 부여한다. 그런데 이 때 시스템 버스를 통해 CPU(10)가 메모리(30) 사용을 요청할 경우에는, 이 CPU(10)의 사용 요청에 더 높은 우선순위를 부여하여 CPU(10)가 더 우선적으로 메모리(30)를 사용할 수 있도록 한다.First, the priority processor 21 receives a DMA request signal (DMA_Request_x, where x is 1 to n) from several DMA request blocks 40 to 42. At this time, the priority processing section 21 collects these signals and gives the right to use the memory 30 to the DMA request block 40 or 41 or 42 having the highest priority. At this time, when the CPU 10 requests the use of the memory 30 through the system bus, the CPU 10 gives priority to the use request of the CPU 10 so that the CPU 30 gives priority to the memory 30. To use.

상기와 같이 우선순위 처리부(21)에 의해 메모리(30) 사용의 우선순위가 확정되면, 우선순위 처리부(21)는 이 확정된 정보를 DMA 주 처리부(22)에 전달한다. 이 때 DMA 주 처리부(22)로 전달되는 확정 정보는, 현재 확정된 우선순위에 따른 메모리(30) 사용 권한이 하나의 DMA 요청 블록(40 또는 41 또는 42)에 부여됐는지 아니면 CPU(10)에 부여됐는지를 지정해 주는 정보이다. 우선순위 처리부(21)는 이 확정 정보에 따른 메모리(30) 사용 권한을 지정해 주기 위한 관련 신호들(CPU_s, DMA_Request)을 DMA 주 처리부(22)에 전달한다.When the priority of the use of the memory 30 is determined by the priority processor 21 as described above, the priority processor 21 transfers the determined information to the DMA main processor 22. At this time, the confirmation information transmitted to the DMA main processor 22 is provided to the CPU 10 or whether the right to use the memory 30 according to the currently determined priority is granted to one DMA request block 40 or 41 or 42. Information that specifies if granted. The priority processor 21 transmits the related signals (CPU_s, DMA_Request) for specifying the right to use the memory 30 according to this confirmation information to the DMA main processor 22.

여기서, 만약 "CPU_s" 신호에 의해 현재 확정된 메모리(30) 사용 권한의 우선순위가 CPU(10)에 부여된 경우라면, CPU(10)는 메모리(30)의 해당 주소(address)와 데이터 값을 시스템 버스를 통해 얻게 된다.Here, if the priority of the memory 30 usage right currently determined by the "CPU_s" signal has been given to the CPU 10, the CPU 10 has a corresponding address and data value of the memory 30. Is obtained via the system bus.

반면에, "DMA_Request" 신호에 의해 현재 확정된 메모리(30) 사용 권한의 우선순위가 특정 DMA 요청 블록(40 또는 41 또는 42)에 부여된 경우라면, 메모리(30)의 해당 주소는 DMA 주 처리부(22) 내부의 여러 레지스터 중 DMA 시작주소 레지스터(DMA_start_address register)와 DMA 데이터 전송카운트 레지스터(DMA_sent_data_count register)의 값으로부터 만들어진 주소가 사용된다. 이후 데이터는 DMA 버스를 통해 그 특정 DMA 요청 블록(40 또는 41 또는 42)과 메모리(30) 사이에 전송된다.On the other hand, if the priority of the memory 30 usage right currently determined by the "DMA_Request" signal is given to a specific DMA request block 40 or 41 or 42, the corresponding address of the memory 30 is the DMA main processing unit. (22) Of the internal registers, an address created from the values of the DMA start address register and the DMA data transfer count register is used. Data is then transferred between the particular DMA request block 40 or 41 or 42 and the memory 30 via the DMA bus.

이 때 메모리(30)와 데이터를 전송하는 DMA 요청 블록(40 또는 41 또는 42)은 DMA 승인 신호(DMA_ack_x, x는 1∼n)에 의해 선택된다.At this time, the DMA request block 40 or 41 or 42 for transferring data with the memory 30 is selected by the DMA acknowledgment signal (DMA_ack_x, where x is 1 to n).

이와 같은 종래 기술에서는 여러 DMA 요청 블록들에게 메모리 사용에 대한 우선순위를 미리 정해 놓으므로, 급히 DMA를 사용하려는 특정 DMA 요청 블록의 메모리 사용이 제한된다. 다시 말자하면 특정 DMA 요청 블록이 급히 DMA를 사용하고자 할 경우에, 자신보다 우선순위가 높은 DMA 요청 블록들의 메모리 사용이 끝날 때까지 기다려야 한다는 것이다.In the prior art, priorities for memory usage are predetermined for several DMA request blocks, thereby limiting the memory usage of a specific DMA request block that is in a hurry to use DMA. In other words, if a particular DMA request block urgently wants to use DMA, it must wait until the memory usage of the DMA request blocks higher than itself is finished.

이에 따라 DMA 요청 블록들의 메모리 사용을 위한 대기시간이 길어지므로, 시스템은 충분한 버퍼 용량을 가져야 한다.This increases the latency for memory usage of DMA request blocks, so the system must have sufficient buffer capacity.

본 발명의 목적은 상기한 점들을 감안하여 안출한 것으로, DMA 요청에 대해 메모리 사용 권한의 우선순위를 능동적으로 부여하여 메모리의 사용을 보다 효율적으로 제어해 주는 DMA 제어 장치를 제공하는데 있다.Disclosure of Invention An object of the present invention is to provide a DMA control apparatus which more efficiently controls the use of memory by actively giving priority to memory usage rights to DMA requests.

상기한 목적을 달성하기 위한 본 발명에 따른 DMA 제어 장치의 특징은, 메모리와, 상기 메모리로의 액세스를 요청하는 CPU 및 다수의 DMA 요청 블록을 포함하는 컴퓨터 시스템에서, 상기 DMA 요청 블록들로부터 각각 전달받은 상기 메모리 사용에 대한 긴급 정도와 상기 메모리 사용 요청을 참조하여, 상기 DMA 요청 블록들에 대한 상기 메모리 사용의 우선순위를 결정하는 우선순위 전처리부와, 상기 CPU로부터 전달받은 상기 메모리 사용 요청의 긴급도를 결정하여, 그에 해당되는 긴급 정도 신호와 상기 메모리 사용 요청 신호를 생성하는 호스트 버스 처리부와, 상기우선순위 전처리부의 우선순위 결정에 따른 긴급 정도 신호 및 메모리 사용 요청 신호와, 상기 호스트 버스 처리부에서 생성된 긴급 정도 신호 및 메모리 사용 요청 신호를 전달받은 후 이 전달된 신호들을 참조하여 상기 메모리 사용의 우선순위를 결정해 주는 우선순위 처리부와, 상기 우선순위 처리부에 의해 결정된 우선순위에 따라 상기 메모리와의 데이터 전송을 처리하는 DMA 주 처리부로 구성된다.A feature of the DMA control apparatus according to the present invention for achieving the above object is, in a computer system comprising a memory, a CPU requesting access to the memory and a plurality of DMA request blocks, each from the DMA request blocks. A priority preprocessor configured to determine the priority of the memory use for the DMA request blocks with reference to the emergency degree for the memory use and the memory use request, and the memory use request received from the CPU. A host bus processor for determining an emergency level and generating a corresponding emergency signal and the memory use request signal, an emergency signal and a memory use request signal according to prioritization of the priority preprocessor, and the host bus processor This is received after receiving the emergency signal and memory usage request signal generated by And a priority processing unit that with reference to the signal to determine the priority of the memory consumption, according to the first priority ranking determined by the processing unit consists of a DMA state processor for processing the data transmission to and from the memory.

바람직하게는 상기 우선순위 전처리부가 상기 DMA 요청 블록들로부터 각각 전달받은 긴급 정도 신호들 중에서 그 신호값이 보다 작은 요청 블록에게 최고 우선순위를 부여한다. 여기서 상기 DMA 요청 블록들로부터 상기 우선순위 전처리부에 전달되는 긴급 정도 신호들의 신호값은 상기 각 DMA 요청 블록들이 사용 가능한 버퍼(FIFO)의 데이터 크기를 정규화 한 값이고, 상기 DMA 요청 블록들의 상기 메모리 사용에 대한 우선순위는 상기 버퍼의 상태에 따라 능동적으로 변한다.Preferably, the priority preprocessor assigns the highest priority to request blocks having a smaller signal value among the emergency signals received from the DMA request blocks, respectively. The signal value of the emergency signals transmitted from the DMA request blocks to the priority preprocessor is a value obtained by normalizing a data size of a buffer (FIFO) available for each of the DMA request blocks, and the memory of the DMA request blocks. The priority for use changes actively depending on the state of the buffer.

또한 상기 호스트 버스 처리부는 상기 메모리 사용 요청에 대한 긴급도를 결정하기 위한 함수로써 상기 메모리의 주소 영역을 이용한다.The host bus processor uses the address area of the memory as a function for determining the urgency of the memory use request.

도 1 은 종래 기술에 따른 DMA 제어를 위한 시스템의 일부 구성을 나타낸 블록도.1 is a block diagram showing a partial configuration of a system for DMA control according to the prior art;

도 2 는 본 발명에 따른 DMA 제어를 위한 장치 구성을 나타낸 블록도.2 is a block diagram showing a device configuration for DMA control according to the present invention;

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

100 : CPU 200 : DMA 처리부100: CPU 200: DMA processing unit

210 : 우선순위 처리부 220 : DMA 주 처리부210: priority processing unit 220: DMA main processing unit

230 : 호스트 버스 처리부 240 : 우선순위 전처리부230: host bus processor 240: priority preprocessor

300 : 메모리 400∼420 : DMA 요청 블록300: memory 400 to 420: DMA request block

이하, 본 발명에 따른 DMA 제어 장치에 대한 바람직한 일 실시 예를 첨부된 도면을 참조하여 설명한다.Hereinafter, a preferred embodiment of a DMA control apparatus according to the present invention will be described with reference to the accompanying drawings.

도 2 는 본 발명에 따른 DMA 제어를 위한 장치 구성을 나타낸 블록도이다.2 is a block diagram showing an apparatus configuration for DMA control according to the present invention.

도 2를 참조하면, 본 발명에 따른 DMA 제어를 위한 전체 장치 구성은 크게 CPU(100)와 시스템 버스(system bus)를 통해 인터페이스되는 DMA 처리부(200), 메모리 버스를 통해 DMA 처리부(200)와 인터페이스되는 메모리(300), 그리고 DMA 버스를 통해 DMA 처리부(200)와 인터페이스되는 여러 DMA 요청 블록들(400∼420)로 이루어진다.Referring to FIG. 2, the overall device configuration for DMA control according to the present invention includes a DMA processor 200 interfaced with a CPU 100 and a system bus, and a DMA processor 200 through a memory bus. It is composed of a memory 300 to be interfaced, and several DMA request blocks 400 to 420 to be interfaced with the DMA processing unit 200 through the DMA bus.

특히 본 발명에 따른 DMA 처리부(200)는 기존과 동일하게 여러 DMA 요청 블록들(400∼420)에 대해 메모리(300) 사용의 우선순위를 정해주는 우선순위 처리부(210)와, 우선순위 처리부(210)에 의해 우선순위가 정해진 DMA 요청 블록들(400∼420)과 메모리(300)간의 데이터 전송을 처리하는 DMA 주 처리부(220)를 포함하며, 추가로 DMA 요청 블록들(400∼420)에 대해 능동적 우선순위를 결정하기 위한 우선순위 전처리부(240)와, CPU(100)의 메모리(300) 사용 요청을 우선순위 처리부(210)에 전달하기 위한 호스트 버스 처리부(230)를 더 포함한다. 또한 DMA 주 처리부(220)는 여러 레지스터(register)를 내부에 포함한다.In particular, the DMA processing unit 200 according to the present invention includes a priority processing unit 210 that prioritizes the use of the memory 300 with respect to several DMA request blocks 400 to 420 as in the past, and a priority processing unit ( And a DMA main processing unit 220 for processing data transfer between the DMA request blocks 400 to 420, which are prioritized by 210, and the memory 300, and further comprising the DMA request blocks 400 to 420. It further includes a priority preprocessor 240 for determining an active priority for the host, and a host bus processor 230 for transmitting a request to use the memory 300 of the CPU 100 to the priority processor 210. In addition, the DMA main processor 220 includes several registers therein.

상기 본 발명의 구성에 따른 동작을 이하 설명한다.The operation according to the configuration of the present invention is described below.

본 발명의 DMA 처리부(200)는 메모리(300) 사용 요청에 대해 능동적인 우선순위를 부여하기 위하여 여러 DMA 요청 블록들(400∼420)로부터 새로운 정보를 받는다. 그 새로운 정보는 DMA 요청 블록들(400∼420)의 데이터 전송에 대한 긴급 정도를 지정된 수로 표현한 것으로, 우선순위 전처리부(240)는 각 DMA 요청 블록들(400∼420)로부터 이 새로운 정보를 전달받아 가장 급하게 데이터 전송을 필요로 하는 하나의 DMA 요청 블록(400 또는 410 또는 420)을 선택한다. 이러한 우선순위 전처리부(240)의 동작은 여러 DMA 요청 블록들(400∼420)들로부터 DMA 요청 신호(DMA_Request_x, x는 1∼n)와 긴급 정도 신호(Urgency_level_x, x는 1∼n)를 전달받음으로써 수행된다.The DMA processing unit 200 of the present invention receives new information from various DMA request blocks 400 to 420 in order to give an active priority to the memory 300 use request. The new information represents the degree of urgency for data transmission of the DMA request blocks 400 to 420 in a specified number, and the priority preprocessor 240 transfers this new information from each of the DMA request blocks 400 to 420. And select one DMA request block 400 or 410 or 420 that most urgently needs data transfer. The operation of the priority preprocessor 240 transmits a DMA request signal (DMA_Request_x, x is 1 to n) and an emergency signal (Urgency_level_x, x is 1 to n) from several DMA request blocks 400 to 420. By receiving.

이 후 우선순위 전처리부(240)에 의해 p(1 ≤p ≤n)번째 DMA 요청 블록이 선택되었다면, 우선순위 전처리부(240)는 p번째 DMA 요청 블록으로부터 전달받은 DMA 요청 신호(DMA_Request_p)와 긴급 정도 신호(Urgency_level_p)를 우선순위 처리부(210)에 전달한다. 그런데 이와 동시에 CPU(100)로부터 메모리(300) 사용을 요청하는 요청 신호(Memory_Request)가 시스템 버스를 통해 전달될 경우에는, 호스트 버스 처리부(230)가 이 전달된 요청 신호(Memory_Request)를 DMA 요청 신호(DMA_Request_c)와 긴급 정도 신호(Urgency_level_c)로 변환하여 우선순위 처리부(210)에 전달한다.Thereafter, if the p (1? P? N) th DMA request block is selected by the priority preprocessor 240, the priority preprocessor 240 is connected to the DMA request signal (DMA_Request_p) received from the p th DMA request block. The emergency level signal Urgency_level_p is transmitted to the priority processor 210. At the same time, when a request signal (Memory_Request) requesting the use of the memory 300 from the CPU 100 is transmitted through the system bus, the host bus processor 230 transmits the transferred request signal (Memory_Request) to the DMA request signal. The signal is converted into the DMA_Request_c and the emergency level signal Urgency_level_c and transmitted to the priority processor 210.

이후 우선순위 처리부(210)는 우선순위 전처리부(240)와 호스트 버스 처리부(230)로부터 전달받은 각각의 DMA 요청 신호들(DMA_Request_p, DMA_Request_c)과 긴급 정도 신호들(Urgency_level_p, Urgency_level_c)을 참조하여 메모리(300) 사용의 우선순위를 결정한다. 그 다음 우선순위 처리부(210)는 결정된 우선순위에 대한 관련 신호들(DMA_Request 또는 CPU_s)을 DMA 주 처리부(220)에 전달한다.Thereafter, the priority processor 210 refers to each of the DMA request signals DMA_Request_p and DMA_Request_c and the emergency signals Urgency_level_p and Urgency_level_c received from the priority preprocessor 240 and the host bus processor 230. (300) Determine priorities of use. The priority processor 210 then delivers the relevant signals (DMA_Request or CPU_s) for the determined priority to the DMA main processor 220.

다음 DMA 주 처리부(220)는 전달받은 신호를 참조하여, p번째 DMA 요청 블록과 메모리(300)가 DMA 버스를 통해 데이터를 전송하도록 처리하거나, CPU(100)와 메모리(300)가 시스템 버스를 통해 데이터를 전송하도록 처리한다. 이 때 메모리(300)와 데이터를 전송하는 p번째 DMA 요청 블록은 DMA 승인 신호(DMA_ack_p)에 의해 선택된다.Next, the DMA main processor 220 processes the p-th DMA request block and the memory 300 to transmit data through the DMA bus with reference to the received signal, or the CPU 100 and the memory 300 process the system bus. Process the data transfer. At this time, the p-th DMA request block transferring data with the memory 300 is selected by the DMA acknowledgment signal DMA_ack_p.

다음은 상기 본 발명의 구성에 따른 동작을 보다 상세히 설명한다.The following describes the operation according to the configuration of the present invention in more detail.

이를 위해 먼저 사용되는 신호들에 대해 먼저 간단히 설명하면, "Urgency_level_x" 신호는 여러 DMA 요청 블록(400∼420)에서 생성하는 신호로써, 메모리(300)의 사용을 요청하는 여러 블록들(400∼420)의 데이터 전송에 대한 긴급 정도를 지정된 수로 표시한 신호이다. 이 긴급 정도 신호(Urgency_level_x)의 그 신호 값이 '0'일 때가 가장 긴급한 경우이다.To this end, the signals used first are briefly described. The "Urgency_level_x" signal is a signal generated by the various DMA request blocks 400 to 420, and the various blocks 400 to 420 requesting the use of the memory 300. ) Is a signal indicating the degree of urgency for data transmission in a specified number. The most urgent case is when the signal value of the emergency level signal Urgency_level_x is '0'.

다음 "DMA_Request_x" 신호는 DMA 요청 블록들(400∼420)이 메모리(300)와의 데이터 전송을 요청할 때 사용하는 요청 신호이고, "DMA_ack_x" 신호는 DMA 주 처리부(220)에서 현재 메모리(300)의 사용 권한을 갖는 블록(400 또는 410 또는 420)을 지정하기 위한 승인 신호이고, "Select_Block" 신호는 우선순위 전처리부(240)에서 생성하는 선택 신호로써 가장 긴급한 DMA 요청 블록(400 또는 410 또는 420)을 지정된 값으로 나타내는 신호이다.The next " DMA_Request_x " signal is a request signal used by the DMA request blocks 400 to 420 to request data transfer with the memory 300. The " DMA_ack_x " signal is used by the DMA main processor 220 in the current memory 300. A grant signal for designating a block 400 or 410 or 420 having permission to use, and the "Select_Block" signal is a select signal generated by the priority preprocessor 240 and is the most urgent DMA request block 400 or 410 or 420 Is a signal representing the specified value.

우선 본 발명에서는 DMA 요청 블록들(400∼420)이 새로운 정보를 DMA 처리부(200)에 알려준다. 이 새로운 정보는 긴급 정도 신호(Urgency_level_x)로 변환되어 DMA 처리부(200)에 전달된다.First, in the present invention, the DMA request blocks 400 to 420 inform the DMA processing unit 200 of new information. This new information is converted into an emergency signal (Urgency_level_x) and transmitted to the DMA processing unit 200.

이 긴급 정도 신호(Urgency_level_x)는 보통 DMA 요청 블록들(400∼420)이 사용 가능한 피포(First-in First-out ; 이하, FIFO 라 약칭함)(미도시)의 데이터 크기를 정규화 한 값을 그 신호값으로 한다. 예로써 메모리(300)에서 특정 DMA 요청 블록(400 또는 410 또는 420)으로 데이터를 전송하기 위한 FIFO인 쓰기 FIFO의 상태(status)가 풀(full)이면, 그 DMA 요청 블록(400 또는 410 또는 420)에서 사용 가능한 데이터 크기가 해당 쓰기 FIFO의 데이터 크기와 같다. 이를 비율로 계산하면 100%가 되며, 이를 4비트 정보로 정규화하여 나타내면 가장 큰 값인 '1111(2)'의 값이 된다.This emergency signal (Urgency_level_x) is a value obtained by normalizing the data size of a first-in first-out (hereinafter, referred to as FIFO) (not shown) that is normally available to the DMA request blocks 400 to 420. Set the signal value. For example, if the status of a write FIFO, which is a FIFO for transferring data from the memory 300 to a particular DMA request block 400 or 410 or 420, is full, then the DMA request block 400 or 410 or 420 ), The data size available is the same as the data size of the corresponding write FIFO. When this is calculated as a ratio, it is 100%, and when normalized to 4 bits of information, it is the largest value of '1111 (2) '.

반면에 쓰기 FIFO의 상태가 엠프티(empty)이면, 그 DMA 요청 블록(400 또는 410 또는 420)에서 사용 가능한 데이터가 없음을 나타낸다. 이를 정규화하여 나타내면 '0000(2)'의 값이 된다. 이 때가 가장 높은 DMA 우선순위를 나타내는 값이 된다.On the other hand, if the state of the write FIFO is empty, it indicates that no data is available in the DMA request block 400 or 410 or 420. If this is normalized, the value is '0000 (2) '. This is the value indicating the highest DMA priority.

이와 같은 본 발명의 동작에 따르면, DMA 요청 블록들(400∼420)이 동작하는 동안에 그들의 동작 우선순위는 사용 가능한 FIFO의 상태에 따라 계속 변하게 된다. 이러한 기법은 DMA에서 고정된 우선순위를 사용하는 기존과 다르며, DMA 처리부(200)는 메모리(300) 사용 요청에 대해 능동적인 우선순위를 부여한다.According to the operation of the present invention, while the DMA request blocks 400 to 420 are in operation, their operation priorities continue to change depending on the status of available FIFOs. This technique is different from the conventional method using fixed priorities in the DMA, and the DMA processing unit 200 gives an active priority to the memory 300 use request.

이에 대해 우선순위 전처리부(240)는 DMA 요청 블록들(400∼420)에서 전달된 DMA 요청 신호(DMA_Request_x)와 긴급 정도 신호(Urgency_level_x)를 참조하여 가장 긴급하게 데이터 전송을 필요로 하는 블록(400 또는 410 또는 420)에게 메모리(300) 사용 권한을 부여한다. 이 때는 전달된 긴급 정도 신호(Urgency_level_x)의 신호값 중 가장 작은 값을 갖는 신호가 선택되어, 이 선택된 신호에 해당되는 블록(400 또는 410 또는 420)에게 메모리(300) 사용 권한을 부여한다.In response to this, the priority preprocessor 240 refers to the DMA request signal (DMA_Request_x) and the emergency level signal (Urgency_level_x) transmitted from the DMA request blocks 400 to 420, and the block 400 most urgently needs data transmission. Or 410 or 420, the right to use the memory 300. In this case, a signal having the smallest value among the signal values of the transmitted emergency level signal Urgency_level_x is selected, and the right to use the memory 300 is given to the block 400 or 410 or 420 corresponding to the selected signal.

그런데 만약 가장 작은 신호값을 전달한 블록(400 또는 410 또는 420)이 여러 개일 경우에는, 그 블록들(400∼420) 중 가장 작은 순차 번호(블록 번호로써, 1∼n)의 DMA 요청 블록에게 메모리(300) 사용 권한을 부여한다. 예로써, 제1 DMA 요청 블록(400)과 제n DMA 요청 블록(420)이 가장 작으면서 동일한 신호값의 긴급 정도 신호(Urgency_level_x)를 DMA 처리부(200)에 전달했다면, 이 경우에는 제1 DMA 요청 블록(400)에게 메모리(300) 사용 권한을 부여한다.However, if there are several blocks 400 or 410 or 420 delivering the smallest signal value, the memory is stored in the DMA request block of the smallest sequence number (block number, 1 to n) among the blocks 400 to 420. (300) Grant permissions. For example, if the first DMA request block 400 and the n-th DMA request block 420 transmit the urgent degree signal Urgency_level_x having the same signal value to the DMA processing unit 200 in this case, the first DMA The request block 400 is granted the right to use the memory 300.

다음 시스템 버스를 통한 메모리(300) 사용 요청은 DMA 버스를 통한 메모리(300) 사용 요청과 동일한 방법으로 사용 권한을 부여한다.The request to use memory 300 over the next system bus grants usage rights in the same way as the request to use memory 300 over the DMA bus.

이에 대해, 우선 CPU(100)로부터 전달된 메모리(300) 사용 요청 신호(Memory_Request)는 호스트 버스 처리부(230)에 입력된다.In response to this, the memory 300 use request signal Memory_Request transferred from the CPU 100 is input to the host bus processor 230.

호스트 버스 처리부(230)는 CPU(100)의 메모리(300) 사용 요청의 긴급도를 결정하여, 그에 해당되는 긴급 정도 신호(Urgency_level_c)를 생성한다.The host bus processor 230 determines the urgency of the memory 300 usage request of the CPU 100, and generates an urgency signal Urgency_level_c corresponding thereto.

만약 메모리(300)를 시스템 메모리 즉 인터럽트 서비스 실행 영역으로써 사용하고자 하는 요청이라면, 호스트 버스 처리부(230)가 '0000(2)' 신호값을 갖는 긴급 정도 신호(Urgency_level_c)를 생성한다. 또한 메모리(300)를 보통 프로그램 실행 영역으로써 사용하고자 하는 요청이라면, 호스트 버스 처리부(230)가 '0001(2)' 신호값을 갖는 긴급 정도 신호(Urgency_level_c)를 생성한다.If the request is to use the memory 300 as the system memory, that is, the interrupt service execution region, the host bus processor 230 generates an emergency degree signal Urgency_level_c having a signal value of '0000 (2) '. In addition, if the request is to use the memory 300 as a normal program execution region, the host bus processor 230 generates an emergency degree signal Urgency_level_c having a signal value of '0001 (2) '.

일반적으로 CPU(100)의 인터럽트 서비스 라우팅(Interrupt Service Routing)은 메모리(300)의 최상위 주소나 최하위 주소에 위치하고 있으므로, 이 경우에 본 발명에서는 긴급 정도를 결정하는 함수로써 주소 영역을 이용한다.In general, the interrupt service routing of the CPU 100 is located at the highest address or the lowest address of the memory 300. In this case, the present invention uses the address area as a function for determining the degree of urgency.

상기에서 우선순위 전처리부(240)와 호스트 버스 처리부(230)로부터메모리(300) 사용에 대한 요청 신호와 긴급 정도 신호를 전달받은 우선순위 처리부(210)는 두 개의 요청 신호를 취합하여 우선순위가 가장 높은 요청에게 메모리(300) 사용의 우선권을 부여한다. 그런데 시스템 버스를 통한 요청과 DMA 버스를 통한 요청의 긴급 정도가 동일한 경우에는 시스템 버스를 통한 요청에 더 높은 우선순위를 부여한다.The priority processor 210 receiving the request signal and the emergency signal for the use of the memory 300 from the priority preprocessor 240 and the host bus processor 230 collects two request signals to obtain a priority. Priority of memory 300 usage is given to the highest request. However, if the urgency of the request through the system bus and the request through the DMA bus are the same, the request through the system bus is given higher priority.

우선순위 처리부(210)에 의해 메모리(300) 사용의 우선순위가 확정되면, 우선순위 처리부(210)는 이 확정된 정보를 DMA 주 처리부(220)에 전달한다. 이 때 DMA 주 처리부(220)로 전달되는 확정 정보는, 현재 확정된 우선순위에 따른 메모리(300) 사용 권한이 하나의 DMA 요청 블록(400 또는 410 또는 420)에 부여됐는지 아니면 CPU(100)에 부여됐는지를 지정해 주는 정보이다. 우선순위 처리부(210)는 이 확정 정보에 따른 메모리(300) 사용 권한을 지정해 주기 위한 관련 신호들(CPU_s, DMA_Request)을 DMA 주 처리부(220)에 전달한다.When the priority of the use of the memory 300 is determined by the priority processor 210, the priority processor 210 transmits the determined information to the DMA main processor 220. At this time, the confirmation information delivered to the DMA main processing unit 220 is provided to the CPU 100 or the right to use the memory 300 according to the currently determined priority is given to one DMA request block 400 or 410 or 420. Information that specifies if granted. The priority processor 210 transmits the related signals (CPU_s, DMA_Request) to the DMA main processor 220 to designate the right to use the memory 300 according to the confirmation information.

여기서, 만약 "CPU_s" 신호에 의해 현재 확정된 메모리(300) 사용 권한의 우선순위가 CPU(100)에 부여된 경우라면, CPU(100)는 메모리(300)의 해당 주소(address)와 데이터 값을 시스템 버스를 통해 얻게 된다.Here, if the priority of the memory 300 usage right currently determined by the "CPU_s" signal is given to the CPU 100, the CPU 100 may transmit a corresponding address and data value of the memory 300. Is obtained via the system bus.

반면에, "DMA_Request" 신호에 의해 현재 확정된 메모리(300) 사용 권한의 우선순위가 특정 DMA 요청 블록(400 또는 410 또는 420)에 부여된 경우라면, 메모리(300)의 해당 주소는 DMA 주 처리부(220) 내부의 여러 레지스터 중 DMA 시작주소 레지스터(DMA_start_address register)와 DMA 데이터 전송카운트 레지스터(DMA_sent_data_count register)의 값으로부터 만들어진 주소가 사용된다.이후 데이터는 DMA 버스를 통해 그 특정 DMA 요청 블록(400 또는 410 또는 420)과 메모리(300) 사이에 전송된다.On the other hand, if the priority of the memory 300 usage right currently determined by the "DMA_Request" signal is given to a specific DMA request block 400 or 410 or 420, the corresponding address of the memory 300 is the DMA main processor. Among the various registers inside, an address created from the values of the DMA_start_address register and the DMA data transfer count register is used. Thereafter, data is transmitted to the specific DMA request block 400 or through the DMA bus. 410 or 420 and between the memory 300.

이 때 메모리(300)와 데이터를 전송하는 DMA 요청 블록(400 또는 410 또는 420)은 DMA 승인 신호(DMA_ack_x, x는 1∼n)에 의해 선택된다.At this time, the DMA request block 400 or 410 or 420 transferring data with the memory 300 is selected by the DMA acknowledgment signal (DMA_ack_x, where x is 1 to n).

이상에서 설명한 바와 같이 본 발명의 DMA 제어 장치에 따르면, 여러 DMA 요청 블록들에게 메모리 사용에 대한 우선순위를 능동적으로 부여하기 때문에, 급히 DMA를 사용하려는 특정 DMA 요청 블록의 메모리 사용이 보다 효율적이다.As described above, according to the DMA control apparatus of the present invention, since the priorities of the memory usage are actively given to the various DMA request blocks, the memory use of the specific DMA request block which intends to use the DMA is more efficient.

또한 시스템 버스를 통한 메모리 사용 요청 시에는, 긴급 정도를 결정하는 함수로써 주소 영역을 이용하기 때문에 CPU의 인터럽트 서비스 루틴(Interrupt Service Routine)과 같은 시스템 프로그램을 실행시킴에 있어 가장 높은 우선순위로 메모리를 사용할 수 있다.In addition, when using memory requests through the system bus, the address range is used as a function of determining the degree of urgency. Therefore, memory is executed at the highest priority in executing a system program such as an interrupt service routine of the CPU. Can be used.

마지막으로, 긴급 정도 신호를 더 이용하기 때문에 여러 DMA 요청 블록에서 필요로 하는 FIFO의 크기를 줄일 수 있다. 따라서 시스템이 충분한 버퍼 용량을 가져야 한다는 부담을 줄일 수 있다.Finally, the use of more urgency signals can reduce the size of the FIFO required by multiple DMA request blocks. This reduces the burden on the system to have sufficient buffer capacity.

Claims (5)

메모리와, 상기 메모리로의 액세스를 요청하는 CPU 및 다수의 DMA 요청 블록을 포함하는 컴퓨터 시스템에서,In a computer system comprising a memory, a CPU requesting access to the memory and a plurality of DMA request blocks, 상기 DMA 요청 블록들로부터 각각 전달받은 상기 메모리 사용에 대한 긴급 정도와 상기 메모리 사용 요청을 참조하여, 상기 DMA 요청 블록들에 대한 상기 메모리 사용의 우선순위를 결정하는 우선순위 전처리부와;A priority preprocessor configured to determine a priority of the memory use for the DMA request blocks by referring to an emergency degree for the memory use and the memory use request received from the DMA request blocks, respectively; 상기 CPU로부터 전달받은 상기 메모리 사용 요청의 긴급도를 결정하여, 그에 해당되는 긴급 정도 신호와 상기 메모리 사용 요청 신호를 생성하는 호스트 버스 처리부와;A host bus processor configured to determine an urgency of the memory use request received from the CPU, and generate a corresponding emergency degree signal and the memory use request signal; 상기 우선순위 전처리부의 우선순위 결정에 따른 긴급 정도 신호 및 메모리 사용 요청 신호와, 상기 호스트 버스 처리부에서 생성된 긴급 정도 신호 및 메모리 사용 요청 신호를 전달받은 후 이 전달된 신호들을 참조하여 상기 메모리 사용의 우선순위를 결정해 주는 우선순위 처리부와;After receiving the emergency signal and the memory use request signal according to the priority determination of the priority preprocessor, and the emergency signal and the memory use request signal generated by the host bus processor, the received signals are used to refer to the transferred signals. A priority processor for determining a priority; 상기 우선순위 처리부에 의해 결정된 우선순위에 따라 상기 메모리와의 데이터 전송을 처리하는 DMA 주 처리부로 구성되는 것을 특징으로 하는 직접 메모리 액세스 제어 장치.And a DMA main processor for processing data transfer with the memory according to the priority determined by the priority processor. 제 1 항에 있어서, 상기 우선순위 전처리부는, 상기 DMA 요청 블록들로부터 각각 전달받은 긴급 정도 신호들 중에서 그 신호값이 보다 작은 요청 블록에게 최고 우선순위를 부여하는 것을 특징으로 하는 직접 메모리 액세스 제어 장치.The direct memory access control apparatus of claim 1, wherein the priority preprocessor assigns a highest priority to request blocks having a smaller signal value among emergency signals received from the DMA request blocks. . 제 2 항에 있어서, 상기 DMA 요청 블록들로부터 상기 우선순위 전처리부에 전달되는 긴급 정도 신호들의 신호값은 상기 각 DMA 요청 블록들이 사용 가능한 버퍼(FIFO)의 데이터 크기를 정규화 한 값임을 특징으로 하는 직접 메모리 액세스 제어 장치.The method of claim 2, wherein the signal value of the emergency signals transmitted from the DMA request blocks to the priority preprocessor is a value obtained by normalizing a data size of a buffer (FIFO) available for each of the DMA request blocks. Direct memory access control device. 제 3 항에 있어서, 상기 DMA 요청 블록들의 상기 메모리 사용에 대한 우선순위는 상기 버퍼의 상태에 따라 능동적으로 변하는 것을 특징으로 하는 직접 메모리 액세스 제어 장치.4. The apparatus of claim 3, wherein the priority of the memory usage of the DMA request blocks is actively changed in accordance with the state of the buffer. 제 1 항에 있어서, 상기 호스트 버스 처리부는 상기 메모리 사용 요청에 대한 긴급도를 결정하기 위한 함수로써 상기 메모리의 주소 영역을 이용하는 것을 특징으로 하는 직접 메모리 액세스 제어 장치.The apparatus of claim 1, wherein the host bus processor uses an address area of the memory as a function for determining the urgency of the memory use request.
KR10-2000-0009406A 2000-02-25 2000-02-25 apparatus for controlling direct memory access KR100451722B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2000-0009406A KR100451722B1 (en) 2000-02-25 2000-02-25 apparatus for controlling direct memory access

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2000-0009406A KR100451722B1 (en) 2000-02-25 2000-02-25 apparatus for controlling direct memory access

Publications (2)

Publication Number Publication Date
KR20010084392A true KR20010084392A (en) 2001-09-06
KR100451722B1 KR100451722B1 (en) 2004-10-08

Family

ID=19650065

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0009406A KR100451722B1 (en) 2000-02-25 2000-02-25 apparatus for controlling direct memory access

Country Status (1)

Country Link
KR (1) KR100451722B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100843136B1 (en) * 2006-11-14 2008-07-02 삼성전자주식회사 Apparatus and method for controlling operation processing in non volatile memory
KR100951126B1 (en) * 2008-02-18 2010-04-07 인하대학교 산학협력단 Method and Apparatus for Arbitrating a Bus
US8065447B2 (en) 2007-01-31 2011-11-22 Samsung Electronics Co., Ltd. Method and apparatus for determining priorities in direct memory access device having multiple direct memory access request blocks

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04276845A (en) * 1991-03-04 1992-10-01 Nec Corp Bus arbitration circuit
US5257383A (en) * 1991-08-12 1993-10-26 Stratus Computer, Inc. Programmable interrupt priority encoder method and apparatus
KR0159008B1 (en) * 1995-12-26 1999-02-18 정장호 Bus arbitrating circuit in dma
KR100195953B1 (en) * 1996-08-28 1999-06-15 구자홍 High performance dma operating method of i/o processor
KR100210490B1 (en) * 1996-12-21 1999-07-15 구자홍 Apparatus and method for broadcasting service of simplicity exchanger
KR100267345B1 (en) * 1998-07-10 2000-10-16 윤종용 Logic circuit for arbitrating memory access

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100843136B1 (en) * 2006-11-14 2008-07-02 삼성전자주식회사 Apparatus and method for controlling operation processing in non volatile memory
US8065447B2 (en) 2007-01-31 2011-11-22 Samsung Electronics Co., Ltd. Method and apparatus for determining priorities in direct memory access device having multiple direct memory access request blocks
KR100951126B1 (en) * 2008-02-18 2010-04-07 인하대학교 산학협력단 Method and Apparatus for Arbitrating a Bus

Also Published As

Publication number Publication date
KR100451722B1 (en) 2004-10-08

Similar Documents

Publication Publication Date Title
US5701495A (en) Scalable system interrupt structure for a multi-processing system
US7689732B2 (en) Method for improving flexibility of arbitration of direct memory access (DMA) engines requesting access to shared DMA channels
US7350004B2 (en) Resource management device
JP4034969B2 (en) Memory management system for common memory
US6775727B2 (en) System and method for controlling bus arbitration during cache memory burst cycles
US20050193155A1 (en) Data transfer apparatus and transfer control program
US8364874B1 (en) Prioritized polling for virtual network interfaces
EP0459714A2 (en) Interrupt processing allocation in a multiprocessor system
US5072365A (en) Direct memory access controller using prioritized interrupts for varying bus mastership
EP0644489A2 (en) Method and apparatus for signalling interrupt information in a data processing system
CN101027656A (en) Data processing system with bus access retraction
KR100708096B1 (en) Bus system and execution scheduling method for access commands thereof
KR100480605B1 (en) Method of controlling transmitting buffer and receiving buffer of network controller, and the network controller
JP2004199698A (en) Interruption controller and interruption control method for determining priority of interruption request generated from multiple interruption generation sources
US7080174B1 (en) System and method for managing input/output requests using a fairness throttle
JP2007094649A (en) Access arbitration circuit
KR100451722B1 (en) apparatus for controlling direct memory access
US6889283B2 (en) Method and system to promote arbitration priority in a buffer queue
US20060155893A1 (en) Methods and apparatus for sharing memory bandwidth
KR100973419B1 (en) Method and apparatus for arbitrating a bus
US8135878B1 (en) Method and apparatus for improving throughput on a common bus
JP3261715B2 (en) I / O data transfer processor
EP3238085B1 (en) Virtual legacy wire
JP3082297B2 (en) Task control method
JPH01305461A (en) Right of using bus control system

Legal Events

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

Payment date: 20080618

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee