KR101033928B1 - Apparatus and method for processing data using hybrid dma - Google Patents

Apparatus and method for processing data using hybrid dma Download PDF

Info

Publication number
KR101033928B1
KR101033928B1 KR1020080063350A KR20080063350A KR101033928B1 KR 101033928 B1 KR101033928 B1 KR 101033928B1 KR 1020080063350 A KR1020080063350 A KR 1020080063350A KR 20080063350 A KR20080063350 A KR 20080063350A KR 101033928 B1 KR101033928 B1 KR 101033928B1
Authority
KR
South Korea
Prior art keywords
data
threshold value
transmission data
memory access
size
Prior art date
Application number
KR1020080063350A
Other languages
Korean (ko)
Other versions
KR20100003450A (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 KR1020080063350A priority Critical patent/KR101033928B1/en
Priority to EP09161157.4A priority patent/EP2141606B1/en
Priority to US12/477,575 priority patent/US8060667B2/en
Priority to CN200910139626.XA priority patent/CN101620582B/en
Publication of KR20100003450A publication Critical patent/KR20100003450A/en
Application granted granted Critical
Publication of KR101033928B1 publication Critical patent/KR101033928B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • 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/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/22Handling requests for interconnection or transfer for access to input/output bus using successive scanning, e.g. polling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Bus Control (AREA)

Abstract

본 발명은 하이브리드 DMA(Direct Memory Access)를 이용한 고속의 데이터 처리 장치 및 방법에 관한 것으로서, 메모리의 입출력(Input/output : I/O) 데이터 전송 방법은, 전송 데이터의 크기를 판단하는 과정과, 상기 판단 결과와 제 1 임계값을 비교하여 상기 전송 데이터의 메모리 접속 방식을 결정하는 과정과, 상기 판단 결과와 제 2 임계값을 비교하여 상기 전송 데이터의 I/O 버스 접속 방식을 결정하는 과정을 포함하며, 여기서, 상기 제 1 임계값은 상기 제 2 임계값보다 큰 값을 가지는 것을 특징으로 한다. The present invention relates to a high-speed data processing apparatus and method using a hybrid direct memory access (DMA), the input / output (I / O) data transfer method of the memory, the process of determining the size of the transfer data, Comparing the determination result with a first threshold value to determine a memory access method of the transmission data; and comparing the determination result with a second threshold value to determine an I / O bus connection method of the transmission data. Wherein the first threshold value is greater than the second threshold value.

DMA, 폴링, 인터럽트, 호스트 프로세서, 주변 I/O 장치 DMA, polling, interrupts, host processor, peripheral I / O devices

Description

하이브리드 디엠에이를 이용한 고속의 데이터 처리 장치 및 방법{APPARATUS AND METHOD FOR PROCESSING DATA USING HYBRID DMA}High speed data processing device and method using hybrid DM {APPARATUS AND METHOD FOR PROCESSING DATA USING HYBRID DMA}

본 발명은 하이브리드 DMA를 이용한 고속의 데이터 처리 장치 및 방법에 관한 것으로, 특히, 고속의 데이터 처리를 위한 호스트 프로세서와 주변 I/O 장치 간의 인터페이스에 관한 것이다. The present invention relates to a high speed data processing apparatus and method using hybrid DMA, and more particularly, to an interface between a host processor and a peripheral I / O device for high speed data processing.

DMA(Direct Memory Access)란, 주변 I/O(Input/Output) 장치가 호스트 프로세서(Host Processor)를 거치지 않고 DMA 제어기(Controller)를 통하여 직접 메모리(Memory)에 접속할 수 있는 기술로, 상기 호스트 프로세서가 다른 프로세스의 작업을 하는 상태에서도 주변 I/O 장치가 동작할 수 있어 성능(Throughput) 및 CPU(Central Processing Unit) 사용 성능을 높일 수 있는 기술이다. Direct Memory Access (DMA) is a technology that allows peripheral input / output (I / O) devices to directly access memory through a DMA controller without going through a host processor. Technology can improve performance and CPU (Central Processing Unit) usage performance by allowing peripheral I / O devices to operate even when other processes are working.

종래 기술에서는 I/O 버스를 접속하기 위한 방법으로, DMA 방식 혹은 넌(Non)-DMA 방식, Non-DMA 방식의 경우 폴링 또는 인터럽트 방식 한가지로만 고정되어서 사용되었다. CPU가 주변 I/O 장치를 서비스하는 경우를 예로 들어 상기 두 방식을 설명하면, 상기 인터럽트 구동 방식은 주변 I/O 장치가 서비스를 요청할 때만 CPU가 서비스를 제공하는 방식이다. 따라서, 상기 인터럽트 구동 방식의 경우, I/O 버스를 통해서 한번에 전달해야하는 데이터의 양이 많을 경우에 유리하다. 반면, 상기 폴링 구동 방식은 CPU가 일정한 시간 간격으로 주변 I/O 장치가 서비스를 필요로 하는지 또는 서비스 받을 준비가 되어 있는지를 알아보는 방식으로, I/O 버스를 통해 한번에 전달해야하는 데이터의 양이 적을 경우에 유리하다. 즉, 상기 폴링 구동 방식은 상기 인터럽트 구동 방식에 비해 데이터 처리 측면에서 좋은 성능(Throughput)을 낼 수 있으나, 버스 점유율 측면에서는 성능이 떨어지는 트레이드 오프(Tradeoff)를 가지고 있다. In the prior art, as a method for connecting an I / O bus, only one of the polling or interrupting schemes has been used in the DMA scheme, the non-DMA scheme, and the non-DMA scheme. In the case where the CPU services the peripheral I / O device as an example, the above two methods are described. In the interrupt driving method, the CPU provides the service only when the peripheral I / O device requests the service. Therefore, the interrupt driving method is advantageous when there is a large amount of data to be transmitted at one time through the I / O bus. On the other hand, in the polling driving method, the CPU checks whether the peripheral I / O device needs service or is ready to be serviced at regular intervals, and the amount of data to be transmitted at one time through the I / O bus is increased. It is advantageous when it is small. That is, the polling driving method may provide better throughput in terms of data processing than the interrupt driving method, but has a poor tradeoff in terms of bus occupancy.

상기 I/O 버스를 접속하는 방법의 선택에 따라 성능이 좌우될 수 있으며, 상기 방식들 중 어느 한쪽에서는 성능 저하를 가져올 수 있는 단점을 가지고 있다. 예를 들어, 상기 인터럽트 구동 방식으로만 구현할 경우, 작은 크기의 데이터를 보내기 위해서도 인터럽트 구동 방식을 사용하게 되므로, 작은 데이터임에도 불구하고 인터럽트 처리를 위한 추가의 오버헤드(Overhead)로 성능저하를 낼 수 있는 요소가 있다. 반면, 상기 폴링 구동 방식으로만 구현할 경우, 일정 크기보다 큰 데이터에 대한 I/O에서 비지 웨이트(Busy Wait)로 인해 다른 프로세스들이 자원을 공유하지 못하여 성능저하 현상을 초래할 수 있다. 보통 이러한 문제점은, 무선랜과 같이, 작은 크기의 시그널링(Signaling) 데이터 전송이 빈번하게 일어나면서 또한 고속의 데이터 전송 및 우수한 CPU 사용 성능을 요구하는 응용에서는 단점으로 작용할 수 있다.The performance may depend on the selection of the method of connecting the I / O bus, and any one of the above methods has a disadvantage in that the performance may be degraded. For example, if only the interrupt driving method is implemented, the interrupt driving method is used to send a small amount of data, and thus the performance may be reduced due to the additional overhead for interrupt processing despite the small data. There is an element. On the other hand, when implemented only in the polling driving method, other processes may not share resources due to busy wait in I / O for data larger than a certain size, which may cause performance degradation. Usually, such a problem may be a disadvantage in applications where small size signaling data transmission occurs frequently, such as WLAN, and also requires high data transmission speed and excellent CPU usage performance.

본 발명의 목적은 하이브리드 DMA를 이용한 고속의 데이터 처리 장치 및 방법을 제공함에 있다.An object of the present invention is to provide a high speed data processing apparatus and method using a hybrid DMA.

상기 목적을 달성하기 위해 본 발명의 실시 예에 따르면, 메모리의 입출력(Input/output : I/O) 데이터 전송 방법은, 전송 데이터의 크기를 판단하는 과정과, 상기 판단 결과와 제 1 임계값을 비교하여 상기 전송 데이터의 메모리 접속 방식을 결정하는 과정과, 상기 판단 결과와 제 2 임계값을 비교하여 상기 전송 데이터의 I/O 버스 접속 방식을 결정하는 과정을 포함하며, 여기서, 상기 제 1 임계값은 상기 제 2 임계값보다 큰 값을 가지는 것을 특징으로 한다. According to an embodiment of the present invention to achieve the above object, an input / output (I / O) data transmission method of a memory, the process of determining the size of the transmission data, the determination result and the first threshold value Comparing the determination result with a second threshold to determine an I / O bus connection method of the transmission data, wherein the first threshold is determined; The value is characterized by having a value greater than the second threshold.

상기 목적을 달성하기 위해 본 발명의 실시 예에 따르면, 메모리의 입출력(Input/output : I/O) 데이터 전송 장치는, 전송 데이터의 크기를 판단하는 전송 데이터 크기 판단부와, 상기 판단 결과와 제 1 임계값을 비교하여 상기 전송 데이터의 메모리 접속 방식을 결정하는 메모리 접속 방식 결정부와, 상기 판단 결과와 제 2 임계값을 비교하여 상기 전송 데이터의 I/O 버스 접속 방식을 결정하는 I/O 버스 접속 방식 결정부를 포함하며, 여기서, 상기 제 1 임계값은 상기 제 2 임계값보다 큰 값을 가지는 것을 특징으로 한다. According to an embodiment of the present invention, an input / output (I / O) data transmission apparatus of a memory may include a transmission data size determination unit determining a size of transmission data, A memory access method determination unit that determines a memory access method of the transmission data by comparing a threshold value, and an I / O that determines an I / O bus connection method of the transmission data by comparing the determination result with a second threshold value. And a bus connection method determination unit, wherein the first threshold value has a larger value than the second threshold value.

본 발명은 하이브리드 DMA를 이용한 고속의 데이터 처리 장치 및 방법을 제 공함으로써, 종래 기술에 비해 데이터 처리 성능(Throughput) 및 CPU(Central Processing Unit) 사용 성능을 향상시킬 수 있는 이점이 있다. 또한, 이는 동시(Simultaneous)의 어플리케이션(Application) 구동환경 및 고속의 데이터 전송을 가능하게 하여 사용자의 만족을 가져올 수 있는 이점이 있다. The present invention provides a high speed data processing apparatus and method using a hybrid DMA, and has an advantage of improving data throughput and CPU (central processing unit) performance compared to the prior art. In addition, this allows the simultaneous application driving environment and high-speed data transmission, thereby bringing user satisfaction.

이하 본 발명의 바람직한 실시 예를 첨부된 도면의 참조와 함께 상세히 설명한다. 그리고, 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우, 그 상세한 설명은 생략한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description of the present invention, when it is determined that a detailed description of a related known function or configuration may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted.

이하, 본 발명은 하이브리드 DMA를 이용한 고속의 데이터 처리 장치 및 방법에 대해 설명하기로 한다. Hereinafter, a high speed data processing apparatus and method using hybrid DMA will be described.

도 1은 본 발명에 따른 하이브리드 DMA를 이용한 고속의 데이터 처리 장치를 도시한 도면이다. 1 is a diagram illustrating a high speed data processing apparatus using a hybrid DMA according to the present invention.

도시된 바와 같이, 고속의 데이터 처리 장치는 주변 I/O 장치(100), 호스트 프로세서(110), DMA 제어부(120), 메모리(130)를 포함하여 구성된다. As shown, the high speed data processing device includes a peripheral I / O device 100, a host processor 110, a DMA controller 120, and a memory 130.

상기 도 1을 참조하면, 상기 주변 I/O 장치(100)는 하이브리드 버스 드라이버(101)를 포함하여 구성되며, 상기 하이브리드 버스 드라이버(101)를 통해, 전송 데이터의 크기에 따라 메모리 접속 방식 및 I/O 버스 접속 방식을 달리 결정하여 데이터를 전송한다. 이를 위해 본 발명에 따른 실시 예에서는 데이터 전송을 위한 2 개의 임계값을 정의하며, 상기 임계값들은 상기 하이브리드 버스 드라이버(101)에서 메모리 접속 방식 및 I/O 버스 접속 방식을 선택하기 위한 기준값으로 사용된다. Referring to FIG. 1, the peripheral I / O device 100 includes a hybrid bus driver 101, and through the hybrid bus driver 101, a memory access method and an I according to the size of transmission data. / O bus is determined differently to transmit data. To this end, an embodiment according to the present invention defines two threshold values for data transmission, and the threshold values are used as reference values for selecting a memory access method and an I / O bus access method in the hybrid bus driver 101. do.

상기 호스트 프로세서(110)는 상기 메모리 접속 방식으로 Non-DMA 방식이 결정되어, 상기 주변 I/O 장치(100)로부터 데이터가 수신될 시, 상기 수신된 데이터에 대해 직접 메모리 I/O를 수행한다. The host processor 110 determines a non-DMA scheme as the memory access scheme, and when the data is received from the peripheral I / O device 100, performs direct memory I / O on the received data. .

상기 DMA 제어부(120)는 상기 메모리 접속 방식으로 DMA 방식이 결정되어, 상기 주변 I/O 장치(100)로부터 데이터가 수신될 시, 상기 수신된 데이터에 대해 메모리 I/O를 수행한다. The DMA controller 120 performs a memory I / O on the received data when the DMA method is determined as the memory access method and the data is received from the peripheral I / O device 100.

상기 메모리(130)는 데이터를 저장 및 관리한다. The memory 130 stores and manages data.

도 2는 본 발명에 따른 주변 I/O 장치에 포함되어 있는 하이브리드 버스 드라이버의 상세 장치 구성을 도시한 도면이다. 2 is a diagram illustrating a detailed device configuration of a hybrid bus driver included in a peripheral I / O device according to the present invention.

도시된 바와 같이, 하이브리드 버스 드라이버는 전송 데이터 크기 판단부(200), 메모리 접속 방식 결정부(210), I/O 버스 접속 방식 결정부(220), 데이터 전송부(230)를 포함하여 구성된다. As illustrated, the hybrid bus driver includes a transmission data size determination unit 200, a memory connection method determination unit 210, an I / O bus connection method determination unit 220, and a data transmission unit 230. .

상기 도 2를 참조하면, 상기 전송 데이터 크기 판단부(200)는 전송 데이터의 크기를 판단하여 출력한다. Referring to FIG. 2, the transmission data size determination unit 200 determines the size of the transmission data and outputs the size.

상기 메모리 접속 방식 결정부(210)는 상기 전송 데이터 크기 판단부(200)로부터의 판단 결과와 제 1 임계값을 비교하여 상기 전송 데이터의 메모리 접속 방식을 결정하여 출력한다. 즉, 상기 전송 데이터 크기가 제 1 임계값보다 클 시, 상기 전송 데이터의 메모리 접속 방식으로 DMA 방식을 결정하고, 상기 전송 데이터 크기가 제 1 임계값보다 작거나 같을 시, 상기 전송 데이터의 메모리 접속 방식으로 Non-DMA 방식을 결정하여 출력한다. 여기서, 상기 제 1 임계값은 전송 데이터의 크기가 DMA 방식을 기반으로 한 전송에 적합한지 Non-DMA 방식을 기반으로 한 전송에 적합한지를 판별하는 기준값으로, 통상 DMA 방식을 사용하기 위한 추가의 오버헤드에 사용되는 시간과 Non-DMA의 인터럽트 방식의 오버헤드 시간을 측정하여 결정한다. 그러므로 통상 상기 제1 임계값은 DMA(인터럽트방식)의 오버헤드 처리시간에 따른 데이터 크기가 되지만, 메모리 접속 시간(Memory Access Time), 버스 클럭(Bus Clock) 등의 환경에 따라 다양하게 변할 수 있다. The memory access method determination unit 210 compares the determination result from the transmission data size determination unit 200 with a first threshold value to determine and output a memory access method of the transmission data. That is, when the transmission data size is larger than the first threshold value, the DMA method is determined as the memory access method of the transmission data, and when the transmission data size is less than or equal to the first threshold value, the memory connection of the transmission data is performed. Determine and output Non-DMA method. Here, the first threshold is a reference value for determining whether the size of the transmission data is suitable for transmission based on the DMA scheme or the non-DMA scheme. This is determined by measuring the time used for the head and the overhead time of the non-DMA interrupt method. Therefore, the first threshold value is usually the data size according to the overhead processing time of the DMA (interrupt method), but may vary according to the environment such as a memory access time and a bus clock. .

상기 I/O 버스 접속 방식 결정부(220)는 상기 전송 데이터 크기 판단부(200)로부터의 판단 결과와 제 2 임계값을 비교하여 상기 전송 데이터의 I/O 버스 접속 방식을 결정하여 출력한다. 즉, 상기 전송 데이터 크기가 제 2 임계값보다 클 시, 상기 전송 데이터의 I/O 버스 접속 방식으로 인터럽트 구동 방식을 결정하고, 상기 전송 데이터 크기가 제 2 임계값보다 작거나 같을 시, 상기 전송 데이터의 I/O 버스 접속 방식으로 폴링 구동 방식을 결정하여 출력한다. 여기서, 상기 제 2 임계값은 전송 데이터의 크기가 인터럽트 구동 방식을 기반으로 한 전송에 적합한지 폴링 구동 방식을 기반으로 한 전송에 적합한지를 판별하는 기준값으로, 통상 인터럽트 구동 방식을 사용하기 위한 추가의 오버헤드에 사용되는 시간과 인터럽트를 사용하지 않는 폴링 구동방식의 데이터 전송에 소요되는 시간을 측정하여 결정한다. 그러므로 상기 제 2 임계값은 인터럽트 방식에 따른 오버헤드 처리시간에 따른 데이터 크기가 되지만, 메모리 접속 시간(Memory Access Time), 버스 클럭(Bus Clock) 등의 환경에 따라 다양하게 변할 수 있다. The I / O bus connection method determination unit 220 compares the determination result from the transmission data size determination unit 200 with a second threshold value to determine and output the I / O bus connection method of the transmission data. That is, when the transmission data size is larger than a second threshold value, an interrupt driving method is determined by an I / O bus connection method of the transmission data, and when the transmission data size is smaller than or equal to a second threshold value, the transmission is performed. The polling driving method is determined and output based on the I / O bus connection method of data. Here, the second threshold value is a reference value for determining whether the size of the transmission data is suitable for the transmission based on the interrupt driving method or the transmission based on the polling driving method. It is determined by measuring the time used for overhead and the time required for data transmission of the polling driving method without using an interrupt. Therefore, the second threshold value becomes a data size according to the overhead processing time according to the interrupt scheme, but may vary according to an environment such as a memory access time and a bus clock.

상기 데이터 전송부(230)는 상기 메모리 접속 방식 결정부(210)에 의해 결정된 메모리 접속 방식과, 상기 I/O 버스 접속 방식 결정부(220)에 의해 결정된 I/O 버스 접속 방식으로 상기 전송 데이터를 전송한다. The data transmitter 230 transmits the data in a memory access method determined by the memory access method determiner 210 and an I / O bus access method determined by the I / O bus access method determiner 220. Send it.

여기서, 상기 제 1 임계값은 상기 제 2 임계값보다 큰 값을 가지며, 큰 크기의 데이터 전송에 폴링 구동 방식을 사용할 경우 긴 시간 동안 비지 웨이팅(Busy Waiting)이 걸려 CPU 공유 성능 저하를 가져 올 수 있으므로, DMA 방식에서는 인터럽트 구동 방식으로만 데이터를 전송한다. Here, the first threshold value is larger than the second threshold value, and when the polling driving method is used for large data transmission, busy waiting may occur for a long time, which may result in a decrease in CPU sharing performance. Therefore, in the DMA method, data is transmitted only by the interrupt driving method.

도 3은 본 발명의 실시 예에 따른 주변 I/O 장치에 포함되어 있는 하이브리드 버스 드라이버의 고속 데이터 처리 방법을 도시한 흐름도이다. 3 is a flowchart illustrating a high-speed data processing method of a hybrid bus driver included in a peripheral I / O device according to an exemplary embodiment of the present invention.

상기 도 3을 참조하면, 상기 하이브리드 버스 드라이버는 301단계에서 전송 데이터가 존재하는지 여부를 검사한다. 상기 전송 데이터가 존재하지 않을 시, 상기 하이브리드 버스 드라이버는 상기 301단계로 돌아가 이하 단계를 반복 수행한다. 반면, 상기 전송 데이터가 존재할 시, 상기 하이브리드 버스 드라이버는 303단계에서 상기 전송 데이터의 크기가 제 1 임계값보다 큰지 여부를 검사한다. Referring to FIG. 3, the hybrid bus driver determines whether transmission data exists in step 301. If the transmission data does not exist, the hybrid bus driver returns to step 301 and repeats the following steps. In contrast, when the transmission data exists, the hybrid bus driver determines whether the size of the transmission data is greater than a first threshold in step 303.

상기 303단계에서 상기 전송 데이터의 크기가 제 1 임계값보다 클 시, 상기 하이브리드 버스 드라이버는 305단계로 진행하여 상기 전송 데이터의 메모리 접속 방식으로 DMA 방식을 결정하고, 상기 전송 데이터의 I/O 버스 접속 방식으로 인터럽트 구동 방식을 결정한다. 이후, 상기 하이브리드 버스 드라이버는 315단계에서 상기 결정된 DMA 방식과 인터럽트 구동 방식으로 상기 데이터를 전송한다. When the size of the transmission data is greater than the first threshold in step 303, the hybrid bus driver proceeds to step 305 to determine a DMA scheme using a memory access method of the transmission data, and the I / O bus of the transmission data. The interrupt drive method is determined by the connection method. In operation 315, the hybrid bus driver transmits the data using the determined DMA and interrupt driving methods.

반면, 상기 303단계에서 상기 전송 데이터의 크기가 제 1 임계값보다 작거나 같을 시, 상기 하이브리드 버스 드라이버는 307단계로 진행하여 상기 메모리 접속 방식으로 넌(Non)-DMA 방식을 결정하고, 309단계에서 상기 전송 데이터의 크기가 제 2 임계값보다 큰지 여부를 검사한다. 상기 309단계에서 상기 전송 데이터의 크기가 제 2 임계값보다 클 시, 상기 하이브리드 버스 드라이버는 311단계에서 상기 I/O 버스 접속 방식으로 인터럽트 구동 방식을 결정한 후, 상기 315단계에서 상기 결정된 Non-DMA 방식과 인터럽트 구동 방식으로 상기 데이터를 전송한다. 반면, 상기 전송 데이터의 크기가 제 2 임계값보다 작거나 같을 시, 상기 하이브리드 버스 드라이버는 313단계에서 상기 I/O 버스 접속 방식으로 폴링 구동 방식을 결정한 후, 상기 315단계에서 상기 결정된 Non-DMA 방식과 폴링 구동 방식으로 상기 데이터를 전송한다. On the other hand, when the size of the transmission data is less than or equal to the first threshold in step 303, the hybrid bus driver proceeds to step 307 to determine a non-DMA method as the memory access method, and step 309 Checks whether the size of the transmission data is greater than a second threshold. When the size of the transmission data is greater than the second threshold in step 309, the hybrid bus driver determines an interrupt driving method using the I / O bus connection method in step 311, and then, in step 315, the non-DMA is determined. The data is transmitted by the method and the interrupt driving method. On the other hand, when the size of the transmission data is less than or equal to the second threshold value, the hybrid bus driver determines the polling driving method using the I / O bus connection method in step 313 and then determines the non-DMA determined in step 315. The data is transmitted in a polling manner and a polling manner.

이후, 상기 하이브리드 버스 드라이버는 본 발명에 따른 알고리즘을 종료한다. The hybrid bus driver then terminates the algorithm according to the invention.

한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.Meanwhile, in the detailed description of the present invention, specific embodiments have been described, but various modifications are possible without departing from the scope of the present invention. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined not only by the scope of the following claims, but also by the equivalents of the claims.

도 1은 본 발명에 따른 하이브리드 DMA를 이용한 고속의 데이터 처리 장치를 도시한 도면,1 is a diagram illustrating a high speed data processing apparatus using a hybrid DMA according to the present invention;

도 2는 본 발명에 따른 주변 I/O 장치에 포함되어 있는 하이브리드 버스 드라이버의 상세 장치 구성을 도시한 도면, 및2 is a diagram illustrating a detailed device configuration of a hybrid bus driver included in a peripheral I / O device according to the present invention; and

도 3은 본 발명의 실시 예에 따른 주변 I/O 장치에 포함되어 있는 하이브리드 버스 드라이버의 고속 데이터 처리 방법을 도시한 흐름도.3 is a flowchart illustrating a high speed data processing method of a hybrid bus driver included in a peripheral I / O device according to an exemplary embodiment of the present invention.

Claims (9)

메모리의 입출력(Input/output : I/O) 데이터 전송 방법에 있어서, In the input / output (I / O) data transfer method of the memory, 전송 데이터의 크기를 판단하는 과정과, Determining the size of the transmitted data; 상기 판단 결과와 제 1 임계값을 비교하여 상기 전송 데이터의 메모리 접속 방식을 결정하는 과정과, Determining a memory access method of the transmission data by comparing the determination result with a first threshold value; 상기 판단 결과와 제 2 임계값을 비교하여 상기 전송 데이터의 I/O 버스 접속 방식을 결정하는 과정을 포함하며, Comparing the determination result with a second threshold value to determine an I / O bus connection method of the transmission data, 여기서, 상기 제 1 임계값은 상기 제 2 임계값보다 큰 값을 가지는 것을 특징으로 하는 방법.Wherein the first threshold value is greater than the second threshold value. 삭제delete 제 1 항에 있어서, 상기 메모리 접속 방식 결정 과정은, The method of claim 1, wherein the determining of the memory access method comprises: 상기 전송 데이터 크기가 제 1 임계값보다 클 시, 상기 전송 데이터의 메모리 접속 방식으로 DMA(Direct Memory Access) 방식을 결정하는 과정과, Determining a direct memory access (DMA) method as a memory access method of the transmission data when the transmission data size is larger than a first threshold value; 상기 전송 데이터 크기가 제 1 임계값보다 작거나 같을 시, 상기 전송 데이터의 메모리 접속 방식으로 넌(Non)-DMA 방식을 결정하는 과정을 포함하는 것을 특 징으로 하는 방법. And determining a non-DMA scheme as a memory access scheme of the transmitted data when the size of the transmitted data is less than or equal to a first threshold value. 제 1 항에 있어서, 상기 I/O 버스 접속 방식 결정 과정은, The method of claim 1, wherein the I / O bus connection method determination process, 상기 전송 데이터 크기가 제 2 임계값보다 클 시, 상기 전송 데이터의 I/O 버스 접속 방식으로 인터럽트 구동 방식을 결정하는 과정과, Determining an interrupt driving method based on an I / O bus connection method of the transmission data when the transmission data size is larger than a second threshold value; 상기 전송 데이터 크기가 제 2 임계값보다 작거나 같을 시, 상기 전송 데이터의 I/O 버스 접속 방식으로 폴링 구동 방식을 결정하는 과정을 포함하는 것을 특징으로 하는 방법.And determining a polling driving method based on an I / O bus connection method of the transmission data when the transmission data size is less than or equal to a second threshold value. 메모리의 입출력(Input/output : I/O) 데이터 전송 장치에 있어서, In the input / output (I / O) data transmission device of the memory, 전송 데이터의 크기를 판단하는 전송 데이터 크기 판단부와, A transmission data size determination unit determining the size of the transmission data; 상기 판단 결과와 제 1 임계값을 비교하여 상기 전송 데이터의 메모리 접속 방식을 결정하는 메모리 접속 방식 결정부와,A memory access method determination unit which determines a memory access method of the transmission data by comparing the determination result with a first threshold value; 상기 판단 결과와 제 2 임계값을 비교하여 상기 전송 데이터의 I/O 버스 접속 방식을 결정하는 I/O 버스 접속 방식 결정부를 포함하며, An I / O bus connection method determination unit for comparing an I / O bus connection method of the transmission data by comparing the determination result with a second threshold value, 여기서, 상기 제 1 임계값은 상기 제 2 임계값보다 큰 값을 가지는 것을 특징으로 하는 장치.Wherein the first threshold value is greater than the second threshold value. 삭제delete 제 5 항에 있어서, 상기 메모리 접속 방식 결정부는,The method of claim 5, wherein the memory connection method determination unit, 상기 전송 데이터 크기가 제 1 임계값보다 클 시, 상기 전송 데이터의 메모리 접속 방식으로 DMA(Direct Memory Access) 방식을 결정하는 수단과, Means for determining a direct memory access (DMA) scheme as a memory access scheme of the transfer data when the transfer data size is larger than a first threshold value; 상기 전송 데이터 크기가 제 1 임계값보다 작거나 같을 시, 상기 전송 데이터의 메모리 접속 방식으로 넌(Non)-DMA 방식을 결정하는 수단을 포함하는 것을 특징으로 하는 장치.Means for determining a non-DMA scheme as a memory access scheme of the transmitted data when the size of the transmitted data is less than or equal to a first threshold. 제 5 항에 있어서, 상기 I/O 버스 접속 방식 결정부는, The method of claim 5, wherein the I / O bus connection method determination unit, 상기 전송 데이터 크기가 제 2 임계값보다 클 시, 상기 전송 데이터의 I/O 버스 접속 방식으로 인터럽트 구동 방식을 결정하는 수단과, Means for determining an interrupt drive scheme with an I / O bus connection scheme of said transmit data when said transmit data size is greater than a second threshold value; 상기 전송 데이터 크기가 제 2 임계값보다 작거나 같을 시, 상기 전송 데이터의 I/O 버스 접속 방식으로 폴링 구동 방식을 결정하는 수단을 포함하는 것을 특징으로 하는 장치.Means for determining a polling drive scheme with an I / O bus connection scheme of said transmit data when said transmit data size is less than or equal to a second threshold. 제 5 항에 있어서, The method of claim 5, 상기 결정된 메모리 접속 방식과 I/O 버스 접속 방식으로 상기 전송 데이터를 전송하는 데이터 전송부를 더 포함하는 것을 특징으로 하는 장치.And a data transmitter configured to transmit the transmission data through the determined memory access method and the I / O bus access method.
KR1020080063350A 2008-07-01 2008-07-01 Apparatus and method for processing data using hybrid dma KR101033928B1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020080063350A KR101033928B1 (en) 2008-07-01 2008-07-01 Apparatus and method for processing data using hybrid dma
EP09161157.4A EP2141606B1 (en) 2008-07-01 2009-05-26 Apparatus and method for processing high speed data using hybrid DMA
US12/477,575 US8060667B2 (en) 2008-07-01 2009-06-03 Apparatus and method for processing high speed data using hybrid DMA
CN200910139626.XA CN101620582B (en) 2008-07-01 2009-06-30 Apparatus and method for processing high speed data using hybrid DMA

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080063350A KR101033928B1 (en) 2008-07-01 2008-07-01 Apparatus and method for processing data using hybrid dma

Publications (2)

Publication Number Publication Date
KR20100003450A KR20100003450A (en) 2010-01-11
KR101033928B1 true KR101033928B1 (en) 2011-05-11

Family

ID=41110740

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080063350A KR101033928B1 (en) 2008-07-01 2008-07-01 Apparatus and method for processing data using hybrid dma

Country Status (4)

Country Link
US (1) US8060667B2 (en)
EP (1) EP2141606B1 (en)
KR (1) KR101033928B1 (en)
CN (1) CN101620582B (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110153875A1 (en) * 2009-12-18 2011-06-23 Plx Technology, Inc. Opportunistic dma header insertion
JP6899852B2 (en) * 2019-01-15 2021-07-07 株式会社日立製作所 Storage device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050057101A (en) * 2002-09-05 2005-06-16 인텔 코오퍼레이션 Method and apparatus for handling data transfers

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56166529A (en) * 1980-05-26 1981-12-21 Fujitsu Ltd Control system for input and output device
US5647057A (en) * 1992-08-24 1997-07-08 Texas Instruments Incorporated Multiple block transfer mechanism
US6351780B1 (en) * 1994-11-21 2002-02-26 Cirrus Logic, Inc. Network controller using held data frame monitor and decision logic for automatically engaging DMA data transfer when buffer overflow is anticipated
EP0903670A1 (en) * 1997-09-19 1999-03-24 Hewlett-Packard Company Improved peripheral device control in data processing systems
DE60030091D1 (en) * 1999-03-01 2006-09-28 Sun Microsystems Inc METHOD AND DEVICE FOR INTERRUPTING MODULATION IN A NETWORK INTERFACE DEVICE
DE10056198A1 (en) * 2000-11-13 2002-02-14 Infineon Technologies Ag Communications system for exchanging data with external systems by using an additional processor has serial interfaces connecting to a common bus line as well as a first processor connecting to the common bus line.
US7483998B2 (en) * 2003-11-14 2009-01-27 Alcatel Lucent Software configurable cluster-based router using heterogeneous nodes as cluster nodes

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050057101A (en) * 2002-09-05 2005-06-16 인텔 코오퍼레이션 Method and apparatus for handling data transfers

Also Published As

Publication number Publication date
US20100005200A1 (en) 2010-01-07
CN101620582B (en) 2014-10-08
US8060667B2 (en) 2011-11-15
EP2141606A1 (en) 2010-01-06
CN101620582A (en) 2010-01-06
KR20100003450A (en) 2010-01-11
EP2141606B1 (en) 2015-10-07

Similar Documents

Publication Publication Date Title
KR101197749B1 (en) Flow control for universal serial bususb
US6898751B2 (en) Method and system for optimizing polling in systems using negative acknowledgement protocols
KR20030051834A (en) System and method for implementing a multi-level interrupt scheme in a computer system
KR100480605B1 (en) Method of controlling transmitting buffer and receiving buffer of network controller, and the network controller
KR101033928B1 (en) Apparatus and method for processing data using hybrid dma
US9619411B2 (en) Polling determination
US6789142B2 (en) Method, system, and program for handling interrupt requests
KR20050010906A (en) Bus system, station for use in a bus system, and bus interface
WO2015188495A1 (en) Data transmission method and device
US8806082B2 (en) Direct memory access device for multi-core system and operating method of the same
US9910812B2 (en) Initiating multiple data transactions on a system bus
JP4853951B2 (en) Data processing device
CN111857546A (en) Method, network adapter and computer program product for processing data
CN110874334A (en) USB transmission system, USB device and host supporting USB transmission
US9841995B2 (en) Apparatus and method for adaptive context switching scheduling scheme for fast block input and output
US20140289393A1 (en) Network apparatus and connection detecting method thereof
US20240045827A1 (en) Management system, processing chip, apparatus, device, and method
KR20120066999A (en) Direct memory access controller and operating method thereof
WO2017006464A1 (en) Communication apparatus, communication method, and communication program
CN114900390A (en) Data transmission method and device, electronic equipment and storage medium
KR100902506B1 (en) Method of direct memory access based on remaining data transfer amount and direct access memory control apparatus using thereof
KR20140131832A (en) Apparatus and methdo for processing
KR20050045201A (en) Ending method and apparatus for transmitting direct memory access
JP2007164511A (en) Communication apparatus and received data notification method
JP2017068549A (en) Electronic apparatus

Legal Events

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

Payment date: 20140429

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150429

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160428

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170427

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180427

Year of fee payment: 8