KR100645454B1 - Contents delivery accelerator apparatus for increasing transmission efficiency between disks of server and network - Google Patents

Contents delivery accelerator apparatus for increasing transmission efficiency between disks of server and network Download PDF

Info

Publication number
KR100645454B1
KR100645454B1 KR1020040073584A KR20040073584A KR100645454B1 KR 100645454 B1 KR100645454 B1 KR 100645454B1 KR 1020040073584 A KR1020040073584 A KR 1020040073584A KR 20040073584 A KR20040073584 A KR 20040073584A KR 100645454 B1 KR100645454 B1 KR 100645454B1
Authority
KR
South Korea
Prior art keywords
unit
data
pci
server
disk
Prior art date
Application number
KR1020040073584A
Other languages
Korean (ko)
Other versions
KR20060024746A (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 KR1020040073584A priority Critical patent/KR100645454B1/en
Publication of KR20060024746A publication Critical patent/KR20060024746A/en
Application granted granted Critical
Publication of KR100645454B1 publication Critical patent/KR100645454B1/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/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/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 서버의 디스크와 네트워크 간에 데이터 전송 효율을 높이기 위한 서버 성능 가속기 장치에 관한 것으로서, 디스크 장치와 피.씨.아이(PCI) 버스를 통해 연결되며, 상기 피.씨.아이(PCI) 버스를 통해 상기 디스크 장치와 논리적 직접 연결경로를 형성하며, 그 논리적 직접 연결경로를 통해 상기 디스크 장치로부터 데이터를 수신하는 피.씨.아이(PCI) 부와, 상기 피.씨.아이(PCI) 부에서 수신한 데이터를 저장하는 메모리와, 메모리로부터 데이터를 패킷화하는 패킷 처리부와, 상기 패킷 처리부에서 패킷화된 데이터를 외부 네트워크로 전송하는 네트워크 인터페이스부와, 상기 피.씨.아이(PCI) 부, 메모리, 패킷 처리부 및 네트워크 인터페이스부의 동작을 제어하는 제어부를 포함한다. 따라서 본 발명은 디스크와 네트워크 인터페이스 카드 사이에 일어나는 중복 복사를 없앰으로서 주어진 하드웨어 자원을 효율적으로 이용할 수 있는 장점이 있다. 또한 본 전송 장치는 기존 응용 프로그램들을 재작성이나 재컴파일 없이, 있는 그대로 사용할 수 있는 구조를 제공하는 것을 특징으로 한다. BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a server performance accelerator device for improving data transfer efficiency between a disk of a server and a network, and is connected through a disk device and a PCI bus. A PCI unit and a PCI unit for receiving data from the disk unit through the logical direct connection path, and the PCI unit. A memory for storing the data received from the network; a packet processing unit for packetizing data from the memory; a network interface unit for transmitting the packetized data from the packet processing unit to an external network; and the PCI unit. And a control unit for controlling operations of the memory, the packet processing unit, and the network interface unit. Therefore, the present invention has the advantage of efficiently utilizing a given hardware resource by eliminating redundant copying between the disk and the network interface card. In addition, the transmission device is characterized by providing a structure that can be used as is, without rewriting or recompilation of existing applications.

서버, 가속기, zero-copy, 캐시, 데이터 전송Server, accelerator, zero-copy, cache, data transfer

Description

서버의 디스크와 네트워크 간에 데이터 전송 효율을 높이기 위한 서버 성능 가속기 장치{CONTENTS DELIVERY ACCELERATOR APPARATUS FOR INCREASING TRANSMISSION EFFICIENCY BETWEEN DISKS OF SERVER AND NETWORK} Server performance accelerator device to increase data transfer efficiency between the server's disk and the network.             

도 1은 본 발명의 일실시 예에 따른 서버 성능 가속기가 탑재된 서버의 구조를 예시한 도면,1 is a diagram illustrating a structure of a server equipped with a server performance accelerator according to an embodiment of the present invention;

도 2는 본 발명의 일실시 예에 따른 서버 성능 가속기 구조에 대한 예시도,2 is an exemplary diagram of a server performance accelerator structure according to an embodiment of the present invention;

도 3은 본 발명의 일실시 예에 따른 서버 성능 가속기를 장착한 서버의 구조를 도시한 도면,3 is a diagram showing the structure of a server equipped with a server performance accelerator according to an embodiment of the present invention,

도 4는 본 발명의 일실시 예에 다른 서버 성능 가속기를 사용한 경우와 종래의 방법을 사용한 경우 디스크의 데이터를 복사하는 데에 걸리는 시간을 비교한 도면.4 is a diagram comparing the time taken to copy data on a disk when another server performance accelerator is used in one embodiment of the present invention and when the conventional method is used.

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

100: 주 제어 장치(CPU) 120: 주 메모리 100: main control unit (CPU) 120: main memory

130: PCI 브리지 140: 디스크130: PCI bridge 140: disk

150: 내부 버스 160: PCI 버스 150: internal bus 160: PCI bus

200: 서버 성능 가속기(CDA: Contents Delivery Accelerator) 200: Contents Delivery Accelerator (CDA)

본 발명은 서버 디스크와 네트워크 간에 데이터 전송 효율을 높이기 위한 서버 성능 가속기(CDA: Contents Delivery Accelerator), 이하 'CDA'라 함) 장치에 관한 것으로, 특히 스트리밍 서버, VOD (Video On Demand) 서버 또는 멀티미디어 통신이 많은 일반 PC(Personal Computer)의 성능을 향상시키는 장치(일명, 서버 성능 가속기에 관한 것이다. 상기 CDA는 디스크와 네트워크 간에 데이터를 빠르게 전송함으로써 서버의 성능을 향상시킬 수 있는 구조를 제공하고, 또한 약간의 운영체제(OS) 변경(패치)을 통해 기존 응용 프로그램들을 재작성하거나 재컴파일하는 일 없이, 있는 그대로 그것들을 사용할 수 있는 구조를 제공하는 서버의 디스크와 네트워크 간에 데이터 전송 효율을 높이기 위한 서버 성능 가속기 장치에 관한 것이다. The present invention relates to a server performance accelerator (CDA) device for improving data transmission efficiency between a server disk and a network, and particularly, a streaming server, a video on demand (VOD) server, or a multimedia device. The present invention relates to an apparatus for improving performance of a general personal computer (PC) having a large amount of communication (aka, a server performance accelerator. The CDA provides a structure for improving performance of a server by rapidly transferring data between a disk and a network, In addition, a small operating system (OS) change (patch) is used to increase the efficiency of data transfer between the disk and the network of the server, which provides a structure for using them as-is without rewriting or recompiling existing applications. Relates to a performance accelerator device.

통신 기술이 발달로 인하여 많은 사람들이 인터넷을 이용하여 정보를 공유하게 되었다. 이를 위해 서버 시스템(server system)이 사용되고 있으며, 서버 시스템은 공유하고자 하는 정보들을 저장/관리하고 사용자들에게 그 정보를 전달하는 역할을 한다. 그런데, 인터넷을 통해 사용자들에게 전달되는 정보가 멀티미디어 중심으로 변해감에 따라 대용량의 멀티미디어 정보를 효과적으로 전송하는 서버 시스템에 대한 요구가 증대되고 있다. Advances in communication technology have led many people to share information using the Internet. For this purpose, a server system is used, and the server system stores and manages information to be shared and delivers the information to users. However, as information transmitted to users through the Internet is shifting toward multimedia, there is an increasing demand for a server system for effectively transmitting a large amount of multimedia information.

하지만 종래의 경우 상기와 같은 서버 시스템에 저장된 정보를 사용자들에게 전달하기 위해 여러 번의 중복 복사를 해야 했다. 즉, 일반적으로 사용되는 PC 구조와 운영체제를 사용하는 서버 시스템의 경우 디스크의 데이터를 외부 네트워크로 전송하기 위해 여러 번의 중복 복사를 해야 했다. 이러한 종래의 방법은 데이터 전송 효율면에서 비효율적이다.However, in the related art, multiple duplicate copies have to be made to deliver the information stored in the server system to the users. In other words, server systems using commonly used PC architectures and operating systems had to make multiple duplicate copies to transfer data from disks to external networks. This conventional method is inefficient in terms of data transmission efficiency.

따라서, 이러한 데이터 전송 효율을 높이기 위한 방법들이 다양하게 연구/개발되고 있다. 예를 들어, 한국 전자통신 연구원에서 발표한 논문'차세대 인터넷 서버를 위한 스트리밍 가속장치'(이하, '논문1'이라 칭함)과 Xiran(사)에서 발표한 보고서'Standard Streaming Media Kit'(이하, '보고서1'이라 칭함)등이 그 결과물이다.Therefore, various methods for improving such data transmission efficiency have been researched and developed. For example, a paper published by Korea Electronics and Telecommunications Research Institute, "Streaming Accelerator for Next-Generation Internet Servers" (hereinafter referred to as "Paper 1"), and a report published by Xiran, "Standard Streaming Media Kit," 'Report 1') is the result.

상기 '논문1'은 PCI(Peripheral Component Interconnect) 카드 형태를 가진 차세대 인터넷 서버 보조 하드웨어와 이를 동작시키기 위한 소프트웨어를 제안한다. 이 보조 하드웨어에는 디스크 컨트롤러와 네트워크 인터페이스가 있고 여기에 디스크와 네트워크가 바로 연결된다. 따라서 이 구조를 사용하게 되면 디스크에서 나온 데이터는 중복 복사 없이 바로 네트워크를 통해 전송될 수 있다. 하지만 이러한 장점을 사용하기 위해서는, 새로운 응용 프로그램을 작성해야 하는 단점이 있다.The paper [1] proposes next-generation Internet server auxiliary hardware in the form of a Peripheral Component Interconnect (PCI) card and software for operating the same. This secondary hardware has a disk controller and a network interface that connects directly to the disk and the network. Thus, using this structure, data from disk can be transferred directly over the network without duplicating copies. However, to take advantage of this, there is a drawback to writing a new application.

상기 '보고서1'은 상기 '논문 1'에서 제시된 것과 비슷한 구조를 가지고 서버가 고속으로 대용량의 데이터를 전송할 수 있도록 한다. 하지만 상기 '논문1'에서 제시된 구조와 마찬가지로 이 방법을 사용하기 위해서는 이 회사에서 제공하는 SDK(Software Development Kit)을 사용해서 새로운 응용 프로그램을 작성해야 하는 단점이 있다.The report 1 has a structure similar to that suggested in the paper 1 so that the server can transmit a large amount of data at high speed. However, in order to use this method as in the structure described in 'Paper 1', there is a disadvantage that a new application must be written using the SDK (Software Development Kit) provided by the company.

본 발명은 종래기술의 문제점을 해결하기 위해 제안된 것으로써, 본 발명의 목적은 스트리밍 서버, VOD (Video On Demand) 서버 또는 멀티미디어 통신이 많은 일반 PC(Personal Computer)의 성능을 향상시키는 서버 성능 가속기(CDA: Contents Delivery Accelerator) 장치를 제공하여 기 제작된 응용 프로그램과의 비호환성을 해결하면서 서버의 전송 효율을 높이는 장치를 제공하는 서버의 디스크와 네트워크 간에 데이터 전송 효율을 높이기 위한 서버 성능 가속기(CDA: Contents Delivery Accelerator) 장치를 제공하는 것이다. SUMMARY OF THE INVENTION The present invention has been proposed to solve the problems of the prior art, and an object of the present invention is a server performance accelerator that improves the performance of a streaming server, a video on demand (VOD) server, or a general personal computer (PC) having a lot of multimedia communications. Server Performance Accelerator (CDA) to improve data transfer efficiency between the server's disk and the network, providing a device that delivers a Contents Delivery Accelerator (CDA) device to address server incompatibilities with prebuilt applications. : Provides Contents Delivery Accelerator) device.

또한 본 발명은 디스크와 네트워크 인터페이스 카드 사이에 일어나는 중복 복사를 없앰으로서 주어진 하드웨어 자원을 효율적으로 이용할 수 있도록 하기 위한 장치를 제공하고자 한다. It is another object of the present invention to provide an apparatus for efficiently utilizing a given hardware resource by eliminating redundant copying between a disk and a network interface card.

또한 본 발명은 동일 하드웨어를 사용하는 서버가 더 많은 동시 접속자에게 데이터를 보낼 수 있도록 하기 위한 장치를 제공하고자 한다.
It is another object of the present invention to provide an apparatus for allowing a server using the same hardware to send data to more simultaneous users.

상기 목적을 달성하기 위해, 본 발명은 디스크 장치와 피.씨.아이(PCI) 버스를 통해 연결되며, 상기 피.씨.아이(PCI) 버스를 통해 형성되는 상기 디스크 장치와의 논리적 직접 연결경로를 통해 상기 디스크 장치로부터 데이터를 수신하는 피.씨.아이(PCI) 부와, 상기 피.씨.아이(PCI) 부에서 수신한 데이터를 저장하는 메모리와, 상기 메모리로부터의 데이터를 패킷화하는 패킷 처리부와, 상기 패킷 처리부에서 패킷화한 데이터를 외부 네트워크로 전송하는 네트워크 인터페이스부와, 상기 피.씨.아이(PCI) 부, 메모리, 패킷 처리부 및 네트워크 인터페이스부의 동작을 제어하는 제어부를 포함하며, 상기 제어부는 상기 디스크 장치로부터 수신한 소정 데이터를 전송한 후 그 데이터를 다시 전송해야 할 경우 상기 데이터를 상기 디스크 장치로부터 복사하지 않고 상기 메모리에 저장된 데이터를 이용함을 특징으로 하는 서버의 디스크와 네트워크 간에 데이터 전송 효율을 높이기 위한 서버 성능 가속기 장치를 제공한다.In order to achieve the above object, the present invention provides a logical direct connection path between a disk device and a PCI device (PCI) bus and the disk device formed through the PCI bus. A PCI unit for receiving data from the disk device via a memory, a memory storing data received from the PCI unit, and packetizing data from the memory. A packet processing unit, a network interface unit for transmitting data packetized by the packet processing unit to an external network, and a control unit controlling operations of the PCI unit, a memory, a packet processing unit, and a network interface unit; The control unit does not copy the data from the disk device when it is necessary to transmit the data after transmitting the predetermined data received from the disk device. It provides a server performance accelerator device for increasing the data transfer efficiency between a disk of the server and the network, characterized by utilizing the data stored in the memory group.

상기 목적을 달성하기 위해 본 발명에서 제공하는 서버 시스템은 디스크 장치에 저장된 소정 데이터들을 외부 네트워크로 전송하는 서버 시스템에 있어서, 피.씨.아이(PCI) 카드 형태로 서버에 장착되어 상기 디스크 장치와 논리적 직접연결경로를 형성하고 그 논리적 직접연결경로를 통해 상기 디스크 장치로부터 상기 소정 데이터들을 중복 복사 없이 수신한 후 그 소정 데이터를 외부 네트워크로 전송하는 서버 성능 가속기를 포함함을 특징으로 한다. 또한 응용 프로그램 (Application)이 데이터 송수신 요구할 때, 기존의 응용 프로그램과 운영체제 사이의 시스템 인터페이스를 그대로 사용함으로써, 기존 응용 프로그램을 변경함이 없이 그대로 사용할 수 있는 장점을 제공한다. In order to achieve the above object, the server system provided by the present invention is a server system for transmitting predetermined data stored in a disk device to an external network, wherein the server device is mounted on a server in the form of a PC card. And a server performance accelerator for forming a logical direct path and receiving the predetermined data from the disk device without duplicate copy through the logical direct path, and then transmitting the predetermined data to an external network. In addition, when an application requests data transmission and reception, the system interface between the existing application and the operating system is used as it is, thereby providing an advantage that the existing application can be used without changing.

이하 본 발명의 바람직한 실시 예들을 첨부한 도면을 참조하여 상세히 설명한다. 이 때, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In this case, detailed descriptions of well-known functions and configurations that may unnecessarily obscure the subject matter of the present invention will be omitted.

도 1은 본 발명의 일실시 예에 따른 서버의 디스크와 네트워크 간 데이타 전송속도를 향상시키는 서버 성능 가속기(CDA: Contents Delivery Accelerator)가 탑재된 서버의 구조를 예시한 도면이다. 도 1을 참조하면, 본 발명의 일실시 예에 따른 서버 성능 가속기가 탑재된 서버(100)는 서버(100)의 전반적인 동작을 제어하는 주 제어장치(CPU: Central Processing Unit)(110), 주 제어장치(110)와 내부 버스(local bus)(150)로 연결되며 서버(100)의 동작 제어를 위한 정보들을 저장하는 주 메모리(main memory)(120), PCI 버스(bus)(160)와 내부 버스(local bus)(150)를 연결하는 PCI 브릿지(bridge)(130), 인터넷을 통해 공유 및 전달될 정보들을 저장하는 디스크(disk)(140) 및 디스크(140)와 PCI 버스(160)로 연결되어 디스크(140)의 정보를 외부 망(external network)으로 전달하는 본 발명의 CDA(200)를 포함한다. FIG. 1 is a diagram illustrating a structure of a server equipped with a content delivery accelerator (CDA) for improving a data transmission speed between a disk and a network of a server according to an embodiment of the present invention. Referring to FIG. 1, a server 100 equipped with a server performance accelerator according to an embodiment of the present invention may include a central processing unit (CPU) 110 that controls an overall operation of the server 100. A main memory 120 and a PCI bus 160 connected to the controller 110 and a local bus 150 to store information for controlling the operation of the server 100. PCI bridge 130 that connects local bus 150, disk 140 and disk 140 and PCI bus 160 that store information to be shared and forwarded over the Internet It is connected to the CDA 200 of the present invention for transmitting the information of the disk 140 to an external network (external network).

이 때, CDA(200)를 제외한 나머지 구성들은 통상적인 PC에 포함된 장치들이다. 즉, CDA(200)는 통상적인 구조를 갖는 PC의 PCI 버스(160)에 연결되어 디스크(140)와의 논리적 직접연결경로(Logical Direct Link)(300)를 형성한다. 따라서 디스크(140)의 데이터는 논리적 직접연결경로(300)를 통해서 CDA(200)로 중복 복사 없이 바로 전달되고 여기서 바로 외부 네트워크(external network)로 전송된다. At this time, the other components except for the CDA (200) are devices included in a typical PC. That is, the CDA 200 is connected to the PCI bus 160 of the PC having a conventional structure to form a logical direct link 300 with the disk 140. Therefore, the data of the disk 140 is directly transmitted to the CDA 200 through the logical direct connection path 300 without duplicate copying, and is directly transmitted to the external network.

특히 디스크(140)와 CDA(200) 간의 데이터 복사는 장치간의 데이터 복사 속도를 높이고, 실제로 데이터가 흘러가는 통로인 PCI 버스(160)를 효율적으로 사용하기 위해 직접 메모리 접속(DMA: Direct Memory Access) 방법을 사용함이 바람직하다.In particular, data copying between the disk 140 and the CDA 200 increases the data copying speed between devices, and direct memory access (DMA) for efficient use of the PCI bus 160, which is a passage through which data actually flows. Preference is given to using the method.

한편 CDA(200)는 일종의 지능적인(intelligent) 네트워크 인터페이스 카드(NIC: Network Interface Card)로서 그 구성 예가 도 2에 도시되어 있다.Meanwhile, the CDA 200 is a kind of intelligent network interface card (NIC), and an example of its configuration is shown in FIG. 2.

도 2는 본 발명의 일실시 예에 따른 서버 성능 가속기(CDA)(200) 구조에 대한 예시도이다. 도 2를 참조하면 본 발명의 일실시 예에 따른 서버 성능 가속기(CDA)(200)는 제어부(control unit)(210), PCI 부(PCI unit)(220), CDA 메모리(memory)(230), 패킷 처리부(packet processing unit)(240) 및 네트워크 인터페이스 부(network interface unit)(250)를 포함한다. 2 is an exemplary diagram of a structure of a server performance accelerator (CDA) 200 according to an embodiment of the present invention. Referring to FIG. 2, a server performance accelerator (CDA) 200 according to an embodiment of the present invention may include a control unit 210, a PCI unit 220, and a CDA memory 230. , A packet processing unit 240 and a network interface unit 250.

상기 제어부(210)는 상기 서버 성능 가속기(CDA)(200) 전체의 동작을 제어한다. 이를 위해 상기 제어부(210)에는 서버 성능 가속을 위해 기 제작된 동작 프로그램이 저장됨이 바람직하다. The controller 210 controls the operation of the server performance accelerator (CDA) 200 as a whole. To this end, the control unit 210 is preferably stored in the pre-made operating program to accelerate the server performance.

상기 PCI 부(220)는 상기 제어부(210)의 제어에 의해 PCI 버스(160)를 통해 들어온 데이터를 수신한다.The PCI unit 220 receives data entered through the PCI bus 160 under the control of the controller 210.

상기 CDA 메모리(230)는 상기 제어부(210)의 제어에 의해 상기 PCI 부(220)에서 수신한 데이터를 저장한다. 상기 CDA 메모리(230)는 CDA(200) 자체의 캐시(cache, 1차 CDA 캐시) 기능을 한다. 즉 제어부(210)는 소정 데이터를 전송한 후 그 데이터를 다시 전송해야할 상황이 생겼을 때 상기 데이터를 디스크로부터 복사해오지 않고 CDA 메모리(230)에 저장된 데이터를 이용하여 재전송하도록 제어한다. The CDA memory 230 stores the data received from the PCI unit 220 under the control of the controller 210. The CDA memory 230 functions as a cache (primary CDA cache) of the CDA 200 itself. That is, the controller 210 controls to retransmit the data using the data stored in the CDA memory 230 without copying the data from the disk when a situation occurs in which the data needs to be transmitted again after transmitting the predetermined data.

또한, 상기 제어부(210)는 도 1의 예에서와 같이 디스크(140)와 CDA(200) 사이에 형성된 논리적 직접연결경로(300)를 통해 디스크(140)의 데이터를 중복 없이 한번에 복사(zero-copy)하도록 제어한다.In addition, the controller 210 copies the data of the disk 140 at once without duplicate through the logical direct connection path 300 formed between the disk 140 and the CDA 200 as in the example of FIG. 1. copy).

상기 패킷 처리부(240)는 CDA 메모리(230)로부터 읽혀진 데이터를 패킷화하고, 상기 네트워크 인터페이스부(250)는 상기 패킷 처리부(240)에서 패킷화된 데이터(즉, 패킷(packet))를 최종적으로 외부 네트워크로 전송한다.The packet processor 240 packetizes the data read from the CDA memory 230, and the network interface unit 250 finally processes the packetized data (ie, the packet) from the packet processor 240. Send to external network.

도 3은 본 발명의 일실시 예에 따른 서버 성능 가속기(CDA)(200)를 사용한 서버의 구조를 도시한 도면이다. 도 3을 참조하면 본 발명의 일실시 예에 따른 서버 성능 가속기(CDA)(200)를 탑재한 서버의 구조를 명시하면, 하부 하드웨어(HW: Hard Ware) 계층에 CDA 하드웨어(330) 및 기타 다른 하드웨어(another HW)가 위치하고, 운영체제(OS: Operating System) 계층에는 이 하드웨어를 사용하기 위한 디바이스 드라이버(310)와 고속의 파일 입출력을 위한 2차 CDA 캐시 및 DMA(Direct memory Access) 모듈(320)이 위치한다. 또한 OS 계층에는 파일 시스템(file system) 및 다른 OS 요소들(another OS components)도 포함한다. 주 메모리(120) 내에 위치하는 2차 CDA 캐시는 CDA(200) 내에 위치하는 1차 CDA 캐시에서 지워지는 데이터가 임시적으로 저장되는 캐시이다. CDA(200)는 데이터 전송시, 1, 2차 캐시에서 전송할 데이터가 있는지 우선 검색하고, 데이터가 메모리 캐시에 존재하지 않을 때, 상기한대로 디스크로부터 논리적 직접 연결 경로를 형성하고 데이터를 수신한다. 3 is a diagram illustrating a structure of a server using a server performance accelerator (CDA) 200 according to an embodiment of the present invention. Referring to FIG. 3, when the structure of a server equipped with a server performance accelerator (CDA) 200 according to an embodiment of the present invention is specified, the CDA hardware 330 and other elements in the lower hardware (HW) layer may be described. The hardware (another HW) is located, and the OS (Operating System) layer includes a device driver 310 for using the hardware and a secondary CDA cache and direct memory access (DMA) module 320 for high speed file input and output. This is located. The OS layer also includes a file system and other OS components. The secondary CDA cache located in the main memory 120 is a cache in which data erased from the primary CDA cache located in the CDA 200 is temporarily stored. When transmitting data, the CDA 200 first searches for data to be transmitted in the primary and secondary caches, and when no data exists in the memory cache, establishes a logical direct connection path from the disk and receives the data as described above.

최종적으로 사용자(user) 계층인 응용 프로그램(application)과 운영체제(OS) 사이에 인터페이스(interface)를 해주는 시스템-콜(system call)(340)을 포함한다. 시스템-콜(340)은 기 제작된 응용 프로그램과 호환성을 유지할 수 있도록 이전과 동일한 인터페이스를 가지는 것이 바람직하다. 서버 성능 가속기(CDA)(200)를 사용하는 서버는 논리적 직접 경로(300)를 사용하도록 약간 변경(패치)된 운영체제를 가지게 된다. 본 발명은 애플리케이션이 사용하는 데이터 전송에 관련된 시스템-콜(340) 인터페이스는 그대로 유지한 채, 시스템-콜(340) 내부를 여러 번의 데이터 중복 복사를 하는 동작으로부터 논리적 직접 경로(300)를 사용하는 동작으로 변경함으로써, 기존 응용 프로그램들을 변경하지 않으면서도 데이터 전송 속도를 높일 수 있는 구조를 제시한다. Finally, the system includes a system call 340 that provides an interface between an application, which is a user layer, and an operating system. System-call 340 preferably has the same interface as before to maintain compatibility with the pre-written application. Servers using server performance accelerator (CDA) 200 will have an operating system that has been slightly modified (patched) to use logical direct path 300. The present invention uses the logical direct path 300 from the operation of making multiple redundant copies of data inside the system-call 340 while maintaining the system-call 340 interface associated with the data transfer used by the application. By changing the operation, we propose a structure that can increase the data transfer rate without changing existing applications.

도 4는 본 발명의 일 실시 예에 다른 서버 성능 가속기를 사용한 경우와 종래의 방법을 사용한 경우 디스크의 데이터를 복사하는 데에 걸리는 시간을 비교한 도면이다. 즉, 도 4는 본 발명에서 제시하는 논리적 직접 경로를 사용할 때와 이전 시스템에서 사용하는 중복 경로를 사용할 때 각각에 대해 디스크에서 CDA의 메모리로 데이터를 전송할 때의 시간을 나타낸 결과이다. 결과에서 보듯이 본 발명은 평균적으로 30%가량의 전송 시간 감소 효과를 나타내고 있다. 따라서, 논리적 직접 경로가 잘 동작하고 있음을 알 수 있고, CDA 구조를 사용하면 성능도 이전 시스템에 비해 개선될 수 있음을 알 수 있다.FIG. 4 is a view comparing time taken to copy data on a disk when another server performance accelerator is used in the exemplary embodiment of the present invention and when the conventional method is used. That is, FIG. 4 shows the time for transferring data from the disk to the memory of the CDA for each of the logical direct paths of the present invention and the redundant paths used in the previous system. As can be seen from the results, the present invention exhibits a transmission time reduction effect of about 30% on average. Therefore, it can be seen that the logical direct path works well, and the use of the CDA structure can improve the performance compared to the previous system.

상술한 본 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시할 수 있다. 따라서 본 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위와 특허청구범위의 균등한 것에 의해 정해 져야 한다. In the above description of the present invention, specific embodiments have been described, but various modifications may be made without departing from the scope of the present invention. Therefore, the scope of the present invention should not be defined by the described embodiments, but should be determined by the equivalent of claims and claims.

상술한 바와 같이, 본 발명은 서버의 디스크와 네트워크 인터페이스 카드 사이에 일어나는 중복 복사를 없앰으로서 주어진 하드웨어 자원을 효율적으로 이용할 수 있는 장점이 있다. 또한 본 발명은 기 제작된 응용 프로그램과 본 발명의 디바이스 드라이버 사이에 시스템 콜을 추가하여 기 제작된 응용 프로그램과의 비호환성을 해결하면서 서버의 전송 효율을 높이는 효과가 있다. 따라서 본 발명은 동일 하드웨어를 사용하는 서버가 더 많은 동시 접속자에게 데이터를 보낼 수 있도록 하기 위한 장치를 제공하였다. As described above, the present invention has the advantage of efficiently utilizing a given hardware resource by eliminating redundant copying between the disk of the server and the network interface card. In addition, the present invention has the effect of increasing the transmission efficiency of the server while solving the incompatibility with the pre-built application by adding a system call between the pre-built application and the device driver of the present invention. Accordingly, the present invention provides an apparatus for allowing a server using the same hardware to send data to more simultaneous users.

Claims (11)

디스크 장치와 피.씨.아이(PCI) 버스를 통해 연결되며,It is connected through the disk unit and the PCI bus. 상기 피.씨.아이(PCI) 버스를 통해 형성되는 상기 디스크 장치와의 논리적 직접 연결경로를 통해 상기 디스크 장치로부터 데이터를 수신하는 피.씨.아이(PCI) 부와,A PCI (PCI) unit for receiving data from the disk device through a logical direct connection path with the disk device formed through the PCI bus, 상기 피.씨.아이(PCI) 부에서 수신한 데이터를 저장하는 메모리와,A memory for storing data received from the PCI unit; 상기 메모리로부터의 데이터를 패킷화하는 패킷 처리부와,A packet processing unit for packetizing data from the memory; 상기 패킷 처리부에서 패킷화한 데이터를 외부 네트워크로 전송하는 네트워크 인터페이스부와,A network interface unit for transmitting the packetized data from the packet processor to an external network; 상기 피.씨.아이(PCI) 부, 메모리, 패킷 처리부 및 네트워크 인터페이스부의 동작을 제어하는 제어부를 포함하며,A control unit for controlling operations of the PCI unit, a memory unit, a packet processing unit, and a network interface unit; 상기 제어부는 상기 디스크 장치로부터 수신한 소정 데이터를 전송한 후 그 데이터를 다시 전송해야 할 경우 상기 데이터를 상기 디스크 장치로부터 복사하지 않고 상기 메모리에 저장된 데이터를 이용함을 특징으로 하는 서버의 디스크와 네트워크 간에 데이터 전송 효율을 높이기 위한 서버 성능 가속기 장치.The control unit uses the data stored in the memory without copying the data from the disk device when the data needs to be transmitted again after transmitting the predetermined data received from the disk device. Server performance accelerator device to increase data transfer efficiency. 제1항에 있어서, 상기 제어부는The method of claim 1, wherein the control unit 상기 피.씨.아이(PCI) 부가 상기 디스크 장치에 저장된 데이터를 중복 복사 없이 바로 수신하도록 제어함을 특징으로 하는 서버의 디스크와 네트워크 간에 데이터 전송효율을 높이기 위한 서버 성능 가속기 장치.The PCI (PCI) unit is a server performance accelerator device for increasing the data transfer efficiency between the server and the disk, characterized in that the control to receive the data stored in the disk device immediately without duplicate copy. 제1항에 있어서, 상기 피.씨.아이(PCI) 부는The method of claim 1, wherein the PCI portion is 상기 피.씨.아이(PCI) 버스를 효율적으로 사용하기 위해 직접 메모리 접속(DMA: Direct Memory Access) 방법을 사용함을 특징으로 하는 서버의 디스크와 네트워크 간에 데이터 전송효율을 높이기 위한 서버 성능 가속기 장치.And a direct memory access (DMA) method for efficiently using the PCI bus, wherein the server performance accelerator device improves data transmission efficiency between a disk and a network of a server. 삭제delete 제1항 내지 제3항 중 어느 한 항에 있어서, The method according to any one of claims 1 to 3, 상기 장치가 기 제작된 응용 프로그램과 호환될 수 있도록 하는 시스템 콜을 더 포함함을 특징으로 하는 서버의 디스크와 네트워크 간에 데이터 전송 효율을 높이기 위한 서버 성능 가속기 장치.And a system call for enabling the device to be compatible with a pre-made application program. 디스크 장치에 저장된 소정 데이터들을 외부 네트워크로 전송하는 서버 시스템에 있어서,A server system for transmitting predetermined data stored in a disk device to an external network, 상기 디스크 장치와 논리적 직접연결경로를 형성하고 그 논리적 직접연결경로를 통해 상기 디스크 장치로부터 상기 소정 데이터들을 중복 복사 없이 수신한 후 그 소정 데이터를 외부 네트워크로 전송하는 서버 성능 가속기를 포함하며, 상기 서버 성능 가속기는 피.씨.아이(PCI) 버스를 통해 형성되는 상기 디스크 장치와의 논리적 직접 연결경로를 통해 상기 디스크 장치로부터 데이터를 수신하는 피.씨.아이(PCI) 부와, 상기 피.씨.아이(PCI) 부에서 수신한 데이터를 저장하는 메모리와, 상기 메모리로부터의 데이터를 패킷화하는 패킷 처리부와, 상기 패킷 처리부에서 패킷화된 데이터를 상기 외부 네트워크로 전송하는 네트워크 인터페이스부와, 상기 피.씨.아이(PCI) 부, 메모리, 패킷 처리부 및 네트워크 인터페이스부의 동작을 제어하며, 상기 피.씨.아이(PCI) 부가 상기 디스크 장치에 저장된 데이터를 중복 복사 없이 바로 수신하도록 제어하는 제어부를 포함함을 특징으로 하는 서버 시스템.A server performance accelerator for forming a logical direct connection path with the disk device and receiving the predetermined data from the disk device without redundant copy through the logical direct connection path, and then transmitting the predetermined data to an external network; The performance accelerator includes a PCI unit that receives data from the disk unit through a logical direct connection with the disk unit formed through a PCI bus, and the PC unit. A memory for storing data received by the PCI unit, a packet processing unit for packetizing data from the memory, a network interface unit for transmitting the packetized data from the packet processing unit to the external network, and Controls the operation of the PCI, the memory, the packet processing unit, and the network interface unit. (PCI) The server system comprising a control unit for controlling to receive the data stored in the disk device immediately without duplicate copy. 삭제delete 삭제delete 제6항에 있어서, 상기 피.씨.아이(PCI) 부는The method of claim 6, wherein the PCI portion is 상기 피.씨.아이(PCI) 버스를 효율적으로 사용하기 위해 직접 메모리 접속(DMA: Direct Memory Access) 방법을 사용함을 특징으로 하는 서버 시스템.And a direct memory access (DMA) method for efficiently using the PCI bus. 제6항에 있어서, 상기 제어부는The method of claim 6, wherein the control unit 상기 디스크 장치로부터 수신한 소정 데이터를 전송한 후 그 데이터를 다시 전송해야 할 경우 상기 데이터를 상기 디스크 장치로부터 복사하지 않고 상기 메모리에 저장된 데이터를 이용함을 특징으로 하는 서버 시스템.And when the data is to be transmitted again after transmitting the predetermined data received from the disk device, the data stored in the memory is used without copying the data from the disk device. 제6항, 제9항 또는 제10항 중 어느 한 항에 있어서, The method according to any one of claims 6, 9 or 10, 상기 장치가 기 제작된 응용 프로그램과 호환될 수 있도록 하는 시스템 콜을 더 포함함을 특징으로 하는 서버 시스템.And a system call to enable the device to be compatible with a pre-built application.
KR1020040073584A 2004-09-14 2004-09-14 Contents delivery accelerator apparatus for increasing transmission efficiency between disks of server and network KR100645454B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040073584A KR100645454B1 (en) 2004-09-14 2004-09-14 Contents delivery accelerator apparatus for increasing transmission efficiency between disks of server and network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040073584A KR100645454B1 (en) 2004-09-14 2004-09-14 Contents delivery accelerator apparatus for increasing transmission efficiency between disks of server and network

Publications (2)

Publication Number Publication Date
KR20060024746A KR20060024746A (en) 2006-03-17
KR100645454B1 true KR100645454B1 (en) 2006-11-15

Family

ID=37130514

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040073584A KR100645454B1 (en) 2004-09-14 2004-09-14 Contents delivery accelerator apparatus for increasing transmission efficiency between disks of server and network

Country Status (1)

Country Link
KR (1) KR100645454B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008069531A1 (en) * 2006-12-04 2008-06-12 Electronics And Telecommunications Research Institute Method of accelerating i/o between user memory and disk using pci memory

Also Published As

Publication number Publication date
KR20060024746A (en) 2006-03-17

Similar Documents

Publication Publication Date Title
US11159651B2 (en) Methods and apparatus for memory allocation and reallocation in networking stack infrastructures
US8713180B2 (en) Zero-copy network and file offload for web and application servers
US9176911B2 (en) Explicit flow control for implicit memory registration
KR101712080B1 (en) Key refresh between trusted units
US9411775B2 (en) iWARP send with immediate data operations
US9934065B1 (en) Servicing I/O requests in an I/O adapter device
US10846224B2 (en) Methods and apparatus for control of a jointly shared memory-mapped region
US9558146B2 (en) IWARP RDMA read extensions
US7287114B2 (en) Simulating multiple virtual channels in switched fabric networks
CN102077193B (en) Cluster shared volumes
US20220263913A1 (en) Data center cluster architecture
US7136355B2 (en) Transmission components for processing VLAN tag and priority packets supported by using single chip&#39;s buffer structure
JP5305549B2 (en) Message communication method, apparatus, and system
US20030145230A1 (en) System for exchanging data utilizing remote direct memory access
CN107111576A (en) The interruption framework of issue
US20070011358A1 (en) Mechanisms to implement memory management to enable protocol-aware asynchronous, zero-copy transmits
CN101150487A (en) A transmission method for zero copy network packet
US9390036B2 (en) Processing data packets from a receive queue in a remote direct memory access device
US20200099670A1 (en) Secure In-line Received Network Packet Processing
US11347567B2 (en) Methods and apparatus for multiplexing data flows via a single data structure
US7404040B2 (en) Packet data placement in a processor cache
US20040024833A1 (en) Key reuse for RDMA virtual address space
KR100449806B1 (en) A network-storage apparatus for high-speed streaming data transmission through network
KR100645454B1 (en) Contents delivery accelerator apparatus for increasing transmission efficiency between disks of server and network
US20200099669A1 (en) Secure In-line Network Packet Transmittal

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: 20101101

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee