KR100758272B1 - File movement method supporting data zero-copy technique - Google Patents

File movement method supporting data zero-copy technique Download PDF

Info

Publication number
KR100758272B1
KR100758272B1 KR1020060037836A KR20060037836A KR100758272B1 KR 100758272 B1 KR100758272 B1 KR 100758272B1 KR 1020060037836 A KR1020060037836 A KR 1020060037836A KR 20060037836 A KR20060037836 A KR 20060037836A KR 100758272 B1 KR100758272 B1 KR 100758272B1
Authority
KR
South Korea
Prior art keywords
data
page
buffer
file
buffer page
Prior art date
Application number
KR1020060037836A
Other languages
Korean (ko)
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 KR1020060037836A priority Critical patent/KR100758272B1/en
Priority to CNB2006101309821A priority patent/CN100520749C/en
Application granted granted Critical
Publication of KR100758272B1 publication Critical patent/KR100758272B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general

Landscapes

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

Abstract

A method for moving a file without copying data is provided to enhance whole performance with reduction of CPU load and costs for copying the data to a user area by moving the file between a source and target device with a buffer page shared in a kernel area. A file moving request is received from an application providing of the user area. The buffer page for the source device is allocated in the kernel area(401). The data of the moved file stored in the source device is copied to the buffer page in a DMA(Direct Memory Access) mode(402). The buffer page is removed from a cache and page management information is changed to allocate the buffer page to the target device(405). The data of the buffer page is copied to the target device in the DMA mode(406).

Description

데이터 무 복사 파일 이동 방법{File movement method supporting data zero-copy technique}File movement method supporting data zero-copy technique}

도 1 은 종래 기술에 따른 사용자 영역과 커널 영역 간의 데이터 복사를 이용한 파일 이동 방식에 대한 일실시예 설명도,1 is a diagram illustrating a file moving method using data copying between a user area and a kernel area according to the prior art;

도 2 는 본 발명에 따른 데이터 무 복사 파일 이동 방식에 대한 일실시예 설명도,2 is a diagram illustrating an embodiment of a data copyless file moving method according to the present invention;

도 3 은 본 발명에 따른 데이터 무 복사 파일 이동 방식이 지원하는 가용한 이동 경로를 나타낸 일실시예 설명도,3 is an exemplary explanatory diagram showing an available moving path supported by a data copyless file moving method according to the present invention;

도 4 는 본 발명에 따른 데이터 무 복사 파일 이동 방법에 대한 일실시예 흐름도이다.4 is a flowchart illustrating an embodiment of a method for moving a data copyless file according to the present invention.

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

101, 201 : 소스 디바이스 100, 200 : 목적 디바이스101, 201: source device 100, 200: destination device

102, 202 : 커널 영역 103, 203 : 응용 프로그램102, 202: Kernel Area 103, 203: Application

104 : 사용자 버퍼 105, 106 : 페이지104: user buffer 105, 106: page

107, 108, 205, 206 : 소켓 버퍼 204 : 버퍼 페이지107, 108, 205, 206: socket buffer 204: buffer page

본 발명은 데이터 무 복사 파일 이동 방법에 관한 것으로, 더욱 상세하게는 중앙처리장치(CPU)에 의해 수행되는 사용자 영역과 커널 영역 간의 데이터 복사를 방지하기 위하여 커널 영역 내에 존재하는 버퍼 페이지를 공유하여 소스/목적 디바이스(예 : 디스크, 네트워크 카드) 간의 파일 이동을 수행함으로써, 사용자 영역 내로 데이터를 복사함에 따른 중앙처리장치의 부하 및 그로 인한 비용을 줄여 전체 성능을 향상시키기 위한, 데이터 무 복사 파일 이동 방법에 관한 것이다.The present invention relates to a method of moving a dataless copy file, and more particularly, to share a buffer page existing in a kernel area in order to prevent data copying between a user area and a kernel area performed by a CPU. Dataless copy file movement method to improve overall performance by performing file movement between target devices (e.g. disks, network cards), thereby reducing the load on the central processing unit and its associated costs of copying data into the user area. It is about.

멀티미디어 스트리밍(streaming) 서버와 같이 대용량의 파일 이동을 요청받는 시스템에서는 파일의 크기가 커짐에 따라 증가하는 데이터 처리 비용이 문제가 되고 있으며, 그로 인한 중앙처리장치(CPU)의 가용성이 중요 이슈로 등장하고 있다.In systems that are requested to move large files, such as multimedia streaming servers, data processing costs increase as the file size increases, and the availability of a central processing unit (CPU) is a major issue. Doing.

즉, 파일 이동으로 인한 데이터 처리량이 많아짐에 따라 사용자 영역과 커널 영역 간의 데이터 복사 및 시스템 콜 호출에 소요되는 비용이 증가하여 단위 연산 당 중앙처리장치의 사용률이 감소하는 문제가 발생하는데, 이를 해결하기 위한 여러 방안이 현재 제시되어 있는 상황이다.In other words, as data throughput increases due to file movement, the cost of copying data between system and user area and calling a system call increases, resulting in a decrease in utilization of the central processing unit per unit operation. There are a number of ways for this.

보다 구체적으로 살펴보면, 일반적으로 파일을 이동하기 위해서는 반복적으로 시스템 콜을 호출하여야 하는데 매 호출시마다 2차례의 중앙처리장치에 의한 사용자/커널 영역 간 데이터 복사와 프로세스의 콘테스트 스위칭(context switching) 이 발생한다. 이는 중앙처리장치 자원의 비용을 증가시키는 연산이면서 다수의 대용량 데이터의 이동 요청을 처리하는 시스템 입장에서는 부하를 가중시키는 상황이다.More specifically, in order to move a file, a system call must be repeatedly called. In each call, two CPUs copy data between user / kernel areas and process switching of a process. . This is an operation that increases the cost of the central processing unit resources and adds a load to the system that handles a large number of large data movement requests.

이를 해결하기 위해, 데이터 무 복사 방식에 의한 파일 이동 기술이 하드웨어적인 방식과 소프트웨어적인 방식으로 나뉘어 개발되어 왔다. 하드웨어적인 방식은 주로 네트워크 카드 분야에서 많은 연구가 이루어졌는데, 네트워크 카드에 존재하는 메모리를 사용자 영역에 존재하는 일정 영역의 주소 공간과 연결함으로써, 네트워크로 전송되는 데이터가 커널 영역 내에 복사되지 않고 사용자 영역으로부터 네트워크 디바이스로 바로 복사되어 전송되도록 하는 방식이다. 이때, 상기 데이터 복사는 중앙처리장치가 아닌, 직접 메모리 접근(DMA) 방식으로 복사된다.In order to solve this problem, a file moving technique using a dataless copy method has been developed in a hardware manner and a software manner. The hardware method is mainly researched in the network card field. By connecting the memory in the network card with the address space in a certain area in the user area, the data transferred to the network is not copied into the kernel area. It is a method of copying data directly from a network device to a network device. In this case, the data copy is copied using a direct memory access (DMA) method, not a central processing unit.

또한, 소프트웨어적인 방식은 주로 사용자 영역의 일정 주소 공간과 커널 영역에 할당된 일정 메모리 영역을 서로 연결함으로써, 지정된 메모리 영역 내의 데이터를 사용자 영역 또는 커널 영역에서 복사하지 않고 바로 접근 가능하도록 하는 방식이다. In addition, the software method mainly connects a certain address space of the user area and a predetermined memory area allocated to the kernel area so that data in the designated memory area can be directly accessed without copying from the user area or the kernel area.

상기의 방식들은 모두 지정된 메모리 영역 사이의 재 매핑(re-mapping)을 통해 수행되는 방식들로서, 이러한 방식들을 사용하기 위해서는 지정된 메모리 영역에 대한 생성 과정, 요청을 처리하기 위한 메모리 할당 및 해제와 같은 메모리 영역에서의 추가적인 관리가 요구되는 문제점이 있었다.All of the above methods are performed through re-mapping between designated memory areas. In order to use these methods, memory such as a creation process for a designated memory area, memory allocation and deallocation for processing a request, and the like are performed. There was a problem that additional management in the area was required.

한편, 종래 기술에 따른 사용자 영역과 커널 영역 간의 파일 이동을 위한 수행 방법에 대하여 살펴보면 다음과 같다.Meanwhile, a method for moving a file between a user area and a kernel area according to the prior art will be described below.

도 1 은 종래 기술에 따른 사용자 영역과 커널 영역 간의 데이터 복사를 이용한 파일 이동 방식에 대한 일실시예 설명도이다.1 is a diagram illustrating a file moving method using data copying between a user area and a kernel area according to the prior art.

커널이 일반적인 파일 이동 연산을 수행하는 경우, 사용자 영역에 위치한 응용 프로그램(103)이 파일 읽기를 요청하고 소스 디바이스(101)에 저장된 데이터를 읽기 위한 페이지(105)를 커널로부터 할당받는다. 이때, 소스 디바이스(101)가 네트워크 카드인 경우에는 소켓 버퍼(107)가 할당된다. 그리고 직접 메모리 접근(DMA) 방식에 의해 소스 디바이스(101)로부터 상기 할당된 페이지(105) 혹은 소켓 버퍼(107)로 데이터가 1차 복사된 후, 중앙처리장치(CPU)에 의해 상기 페이지(105) 혹은 소켓 버퍼(107) 내의 데이터가 사용자 버퍼(104)로 2차 복사된다(110, 114). When the kernel performs a general file move operation, the application program 103 located in the user area requests reading a file and receives a page 105 from the kernel for reading data stored in the source device 101. At this time, when the source device 101 is a network card, the socket buffer 107 is allocated. After the data is first copied from the source device 101 to the allocated page 105 or the socket buffer 107 by a direct memory access (DMA) method, the page 105 is executed by the central processing unit (CPU). Or data in socket buffer 107 is secondary copied to user buffer 104 (110, 114).

이후, 사용자 영역에서 상기 사용자 버퍼(104)에 저장된 데이터에 대하여 목적 디바이스(100)로의 이동을 요청하고, 이를 위한 페이지(106) 혹은 소켓 버퍼(108)를 커널로부터 할당받는다. 그리고 중앙처리장치에 의해 사용자 버퍼(104)에 저장된 데이터가 상기 할당받은 페이지(106) 혹은 소켓 버퍼(108)로 1차 복사된 후, 직접 메모리 접근 방식에 의해 목적 디바이스(100)로 2차 복사된다(112, 116).Subsequently, a request for movement to the target device 100 is requested for data stored in the user buffer 104 in the user area, and a page 106 or socket buffer 108 for this is allocated from the kernel. Data stored in the user buffer 104 by the central processing unit is first copied to the allocated page 106 or the socket buffer 108, and then secondly copied to the target device 100 by a direct memory approach. (112, 116).

상기 복사 과정에서 이동 대상 파일에 포함된 모든 데이터는 사용자 영역에서 할당된 메모리 영역 크기로 반복 이동되는데, 커널 영역으로부터 사용자 영역으로 혹은 그 반대의 경우로 파일이 이동될 때마다 해당 프로세스의 콘테스트 스위칭(context switching)이 발생한다. 그리고 상기 사용자 영역에서의 요청이란 시스템 콜 호출을 의미하는 것으로, 일정 단위의 파일 내 데이터가 디바이스(디스크, 네트워크 카드 등) 간에 이동되기 위해서는 두 번의 중앙처리장치에 의한 복사와, 두 번의 시스템 콜 호출이 요구된다.In the copying process, all data included in the moving target file is repeatedly moved in the user area to the allocated memory area size. Whenever the file is moved from the kernel area to the user area or vice versa, the contest switching of the corresponding process ( context switching occurs. In addition, the request in the user area means a system call call. In order to move data in a certain unit of file between devices (disk, network card, etc.), two central processing units copy and two system call calls. Is required.

이번에는, 파일 이동과 관련한 선행 기술들에 대하여 구체적인 예를 들어 설명하기로 한다.This time, the prior art related to file movement will be described with specific examples.

제1 선행기술로서 대한민국 특허 "오퍼레이팅 시스템에서 커널과 사용자 사이의 제로-카피 방법(공개번호 10-2000-0065846, 2000.11.15 공개)"에 대하여 살펴보면, 특히 솔라리스 운영 체제에서 커널 영역과 사용자 영역 간의 데이터 블록 전송시 사용자 영역에 있는 버퍼를 복사하는 것이 아니라 커널에서 가상의 메모리를 이용하므로, 데이터 블록 전송시 시간적인 면에서의 오버헤드와 메모리의 낭비를 줄일 수 있도록 하는 기술을 개시하고 있다. 즉, 상기 제1 선행기술은 사용자 영역과 커널 영역에 공유 기억 영역을 초기화하고 메모리 매핑에 의한 공유를 수행하여(이때, 영역 할당 및 해제 등의 관리를 추가 수행해야 함) 데이터 블록 전송시의 시간, 메모리 자원을 절약할 수 있도록 하는 효과가 있다.As a first prior art, a Korean patent "zero-copy method between a kernel and a user in an operating system (published no. 10-2000-0065846, published on November 15, 2000)", in particular, between a kernel region and a user region in a Solaris operating system Since the kernel uses virtual memory instead of copying a buffer in the user area when transferring a data block, a technique is disclosed to reduce time overhead and memory waste in transferring a data block. That is, the first prior art initializes the shared storage area in the user area and the kernel area and performs sharing by memory mapping (in this case, additional management such as area allocation and release must be performed). This has the effect of saving memory resources.

그런데, 상기 제1 선행기술은 일반적인 데이터 블록 전송시의 비용 감소 및 성능 향상의 효과를 제공하나, 파일 이동에 특화된 기술은 아니다.By the way, the first prior art provides the effect of cost reduction and performance improvement in general data block transmission, but is not a technology specialized for file movement.

또한, 제2 선행기술로서 대한민국 특허 "제로-카피 전송 기능을 구현한 네트워크 카드와 서버 및 그 전송 방법(공개번호 10-2005-0065133, 2005.06.29 공개)"에 대하여 살펴보면, 메모리 간 복사 없이 PCI(Peripheral Component Interconnect) 메모리 및 기존의 범용 BSD(Berkeley Software Distribution) 소켓 API(Application Programmable Interface)를 이용하여 제로-카피 전송을 지원하는 기술로서 먼저 디스크에 저장된 데이터를 네트워크로 전송하기 위하여 사용자 프로그램이 PCI 메모리의 일정 영역을 사용자 메모리 영역으로 매핑하여 해당 PCI 메모리 영역에 대한 가상 주소를 얻는다. 이후, 사용자 프로그램이 PCI 메모리 영역으로 디스크의 블록 읽기를 요청하면, 디스크 컨트롤러가 해당 디스크 블록을 읽어 직접 메모리 접근 방식으로 해당 PCI 메모리 영역에 데이터를 저장한다. 사용자 프로그램은 읽기가 완료되면 해당 PCI 메모리 영역에 대해 네트워크로 전송을 요청하고, 네트워크 처리 담당 커널 내 전송제어프로토콜/인터넷프로토콜(TCP/IP) 스택에서는 사용자 프로그램이 전달한 주소가 PCI 메모리 영역임을 확인함에 따라 헤더만 작성하고 해당 PCI 메모리 영역에 대한 주소를 TOE(TCP/IP Offload Engine) 네트워크 컨트롤러로 전달한다. 상기 TOE 네트워크 컨트롤러는 헤더를 로컬 메모리 영역으로부터, 페이로드(payload)를 해당 PCI 메모리 영역으로부터 각각 직접 메모리 접근 방식으로 읽어와 체크섬(checksum)을 수행한 후 네트워크로 전송한다.In addition, referring to the Republic of Korea patent "Network card and server implementing the zero-copy transmission function and its transmission method (published No. 10-2005-0065133, published on June 29, 2005) as a second prior art, PCI without copying between memories (Peripheral Component Interconnect) A technology that supports zero-copy transfer using memory and the existing general-purpose Berkeley Software Distribution (BSD) socket application programmable interface (API). Map a region of memory to a user memory region to get a virtual address for that PCI memory region. Thereafter, when a user program requests reading a block of a disk into the PCI memory area, the disk controller reads the disk block and stores data in the PCI memory area using a direct memory approach. When the user program completes reading, it sends a request to the network for the PCI memory area, and the transmission control protocol / Internet protocol (TCP / IP) stack in the kernel responsible for network processing confirms that the address passed by the user program is the PCI memory area. Therefore, only the header is written and the address of the PCI memory area is transferred to the TOE (TCP / IP Offload Engine) network controller. The TOE network controller reads a header from a local memory area and a payload from a corresponding PCI memory area by a direct memory access method, performs a checksum, and then transmits it to the network.

그런데, 상기 제2 선행기술은 데이터를 중간 복사 과정 없이 제로-카피로 네트워크로 전송함으로써 호스트 시스템의 성능 저하를 방지하면서 데이터 전송 속도를 향상시킬 수 있는 효과가 있는 반면에, 네트워크가 아닌 일반적인 시스템 내 디스크 간의 적용에는 용이하지 않은 문제점이 있었다.However, the second prior art has the effect of improving the data transmission speed while preventing the performance degradation of the host system by transmitting data to the zero-copy network without an intermediate copying process, while in a general system other than the network. There was a problem that the application between the disks is not easy.

또한, 제3 선행기술로서 대한민국 특허 "제로-카피 메시지 패싱 방법(공개번호 10-2000-0038076, 2000.07.05 공개)"에 대하여 살펴보면, 호스트 간의 메시지 패싱시 발생하는 메모리 복사 오버헤드를 제거하기 위해 메시지 패싱을 위한 프로세스, 데몬 및 네트워크 카드가 메시지 패싱을 위해 이용되는 메모리를 모두 공유 하여 네트워크를 통해 연결된 병렬 컴퓨팅 환경에서 메모리 복사로 인한 성능 저하를 최소화하는 방법을 개시하고 있다.In addition, referring to the Republic of Korea patent "zero-copy message passing method (published No. 10-2000-0038076, 2000.07.05)" as the third prior art, to eliminate the memory copy overhead incurred when message passing between hosts The process for message passing, daemons, and network cards all share the memory used for message passing, thereby minimizing the performance degradation due to memory copying in a networked parallel computing environment.

그런데, 상기 제3 선행기술은 리모트 프로세스와 메시지 교환시 발생하는 메모리 복사 오버헤드를 제거하여 기존 메시지 패싱 시스템의 성능을 향상시킬 수 있도록 하나, 시스템 내의 사용자 영역과 커널 영역 간의 데이터 복사 과정을 제거할 수는 없는 문제점이 있었다.However, the third prior art can improve the performance of the existing message passing system by eliminating the memory copy overhead incurred when exchanging messages with the remote process, but eliminate the data copying process between the user area and the kernel area in the system. There was no number of problems.

본 발명은 상기와 같은 문제점을 해결하기 위하여 제안된 것으로, 중앙처리장치(CPU)에 의해 수행되는 사용자 영역과 커널 영역 간의 데이터 복사를 방지하기 위하여 커널 영역 내에 존재하는 버퍼 페이지를 공유하여 소스/목적 디바이스(예 : 디스크, 네트워크 카드) 간의 파일 이동을 수행함으로써, 사용자 영역 내로 데이터를 복사함에 따른 중앙처리장치의 부하 및 그로 인한 비용을 줄여 전체 성능을 향상시키기 위한, 데이터 무 복사 파일 이동 방법을 제공하는데 그 목적이 있다.The present invention has been proposed in order to solve the above problems, in order to prevent data copying between the user area and the kernel area executed by the CPU, the buffer page existing in the kernel area is shared to provide a source / purpose. By moving files between devices (e.g. disks, network cards), we provide a data-free file transfer method to improve overall performance by reducing the load on the central processing unit and its associated costs of copying data into the user area. Its purpose is to.

본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.Other objects and advantages of the present invention can be understood by the following description, and will be more clearly understood by the embodiments of the present invention. Also, it will be readily appreciated that the objects and advantages of the present invention may be realized by the means and combinations thereof indicated in the claims.

상기 목적을 달성하기 위한 본 발명의 방법은, 데이터 무 복사 파일 이동 방법에 있어서, 사용자 영역의 응용 프로그램으로부터 파일 이동을 요청받는 요청 접수 단계; 소스 디바이스를 위한 버퍼 페이지를 커널 영역에 할당하는 할당 단계; 상기 소스 디바이스에 저장되어 있는 이동 대상 파일의 데이터를 직접 메모리 접근 방식에 따라 상기 버퍼 페이지로 복사하는 1차 복사 단계; 상기 버퍼 페이지가 목적 디바이스를 위해 할당되도록 하기 위하여, 상기 버퍼 페이지를 페이지 캐쉬로부터 제거하고 페이지 관리 정보에 대한 변경 과정을 수행하는 설정 변경 단계; 및 직접 메모리 접근 방식에 따라 상기 버퍼 페이지의 데이터를 상기 목적 디바이스로 복사하는 2차 복사 단계를 포함한다.According to an aspect of the present invention, there is provided a data copyless file moving method comprising: a request receiving step of requesting a file moving from an application program in a user area; An allocation step of allocating a buffer page for a source device to a kernel region; Copying data of a movement target file stored in the source device to the buffer page according to a direct memory access method; A setting change step of removing the buffer page from the page cache and performing a change process on page management information so that the buffer page is allocated for the target device; And a second copying step of copying data of the buffer page to the destination device according to a direct memory approach.

상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명하기로 한다.The above objects, features and advantages will become more apparent from the following detailed description taken in conjunction with the accompanying drawings, whereby those skilled in the art may easily implement the technical idea of the present invention. There will be. In addition, in describing the present invention, when it is determined that the detailed description of the known technology related to the present invention may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

본 발명은, 사용자 영역과 커널 영역 간의 중앙처리장치에 의한 데이터 복사 과정을 제거하고 시스템 콜 호출 횟수를 줄임으로써, 중앙처리장치의 가용성을 높이고 전체 성능을 향상시킬 수 있도록 한다. 이때, 직접 메모리 접근(DMA) 방식에 의한 복사 과정은 제거 대상에서 제외된다. The present invention eliminates the data copying process by the central processing unit between the user area and the kernel area and reduces the number of system call calls, thereby increasing the availability of the central processing unit and improving the overall performance. At this time, the copy process by the direct memory access (DMA) method is excluded from the object of removal.

그리고 본 발명에 따른 데이터 무 복사 파일 이동 방법은 커널 내의 구성요소로서 구현되어 사용자 영역에 대해서는 인터페이스를 제공할 수 있다.In addition, the data copyless file moving method according to the present invention may be implemented as a component in a kernel to provide an interface to a user area.

도 2 는 본 발명에 따른 데이터 무 복사 파일 이동 방식에 대한 일실시예 설명도이다.2 is a diagram illustrating an embodiment of a data copyless file moving method according to the present invention.

도 2에 도시된 바와 같이, 사용자 영역에 위치한 응용 프로그램이 디바이스(디스크, 네트워크 카드 등) 간의 파일 이동을 요청한다. 그에 따라, 소스 디바이스(201)인 디스크 혹은 네트워크 카드로부터 데이터를 읽어오기 위하여 커널이 소스 디바이스용의 버퍼 페이지(204)를 커널 영역 내에 할당한다. 이때, 상기 할당된 버퍼 페이지(204)는 커널의 페이지 캐쉬에 추가된다. 그리고 소스 디바이스(201)로부터 페이지 크기의 데이터가 직접 메모리 접근 방식에 의해 상기 할당된 버퍼 페이지(204)로 복사된다. 여기서, 소스 디바이스(201)가 네트워크 카드인 경우에는 소켓 버퍼(205)로 직접 메모리 접근 방식에 의한 복사 과정이 먼저 수행된 후(207), 소켓 버퍼(205)로부터 상기 할당된 버퍼 페이지(204)로 중앙처리장치에 의한 복사 과정이 한 번 수행된다.As shown in FIG. 2, an application program located in a user area requests file movement between devices (disk, network card, etc.). Accordingly, the kernel allocates a buffer page 204 for the source device in the kernel area to read data from a disk or network card that is the source device 201. At this time, the allocated buffer page 204 is added to the page cache of the kernel. The page size data is then copied from the source device 201 to the allocated buffer page 204 by a direct memory approach. Here, when the source device 201 is a network card, a copy process by a direct memory access method is first performed to the socket buffer 205 (207), and then the allocated buffer page 204 from the socket buffer 205 is performed. The copying process by the central processing unit is performed once.

상기 할당된 버퍼 페이지(204)는 목적 디바이스(200)로 데이터를 보내기 위한 용도로 사용되기 위하여(즉, 상기 소스 디바이스를 위하여 할당된 페이지를 목적 디바이스를 위한 데이터 이동 용도로 재사용하기 위하여), 상기 페이지 캐쉬로부터 제거되고 그에 따른 페이지 관리 정보에 대한 변경 과정이 수행된 후 목적 디바이스용 버퍼 페이지(204)로서 페이지 캐쉬에 추가된다. 상기 설정 변경 과정은 커널이 수행한다. 그리고 상기 버퍼 페이지(204)의 데이터가 직접 메모리 접근 방 식에 의해 목적 디바이스(200)로 복사된다. 이때, 목적 디바이스(200)가 네트워크 카드인 경우에는 상기 버퍼 페이지(204)로부터 소켓 버퍼(206)로 중앙처리장치에 의한 복사 과정이 한 번 수행된 후, 소켓 버퍼(206)로부터 목적 디바이스(200)로 직접 메모리 접근 방식에 의한 복사 과정이 수행된다.The allocated buffer page 204 is used for the purpose of sending data to the destination device 200 (ie, to reuse the page allocated for the source device for data movement for the destination device). After removing from the page cache and changing the page management information accordingly, it is added to the page cache as the buffer page 204 for the target device. The configuration change process is performed by the kernel. The data of the buffer page 204 is copied to the target device 200 by a direct memory access method. In this case, when the target device 200 is a network card, a copy process by the central processing unit from the buffer page 204 to the socket buffer 206 is performed once, and then the target device 200 from the socket buffer 206. The copy process is performed by the direct memory approach.

상기의 과정은 이동 대상 파일 내의 모든 데이터가 이동될 때까지 반복 수행된다. 여기서, 상기 소스 디바이스용 버퍼 페이지와 목적 디바이스용 버퍼 페이지는 동일한 버퍼 페이지로서, 소스/목적 디바이스에 의해 데이터 입/출력시 공유된다.The above process is repeated until all data in the movement target file is moved. Here, the buffer page for the source device and the buffer page for the destination device are the same buffer page, and are shared by the source / target device during data input / output.

상기와 같은 구성요소 내에서의 동작 흐름에 관해서는 도 4를 참조하여 후술하기로 한다.The operation flow in the above components will be described later with reference to FIG. 4.

도 3 은 본 발명에 따른 데이터 무 복사 파일 이동 방식이 지원하는 가용한 이동 경로를 나타낸 일실시예 설명도이다.3 is an exemplary diagram illustrating an available moving path supported by the data copyless file moving method according to the present invention.

여기서는, 본 발명에 따른 데이터 무 복사(zero-copy) 파일 이동 방법이 적용될 수 있는 파일 이동의 경로(310, 311, 312, 313)를 살펴보기로 한다.Here, the paths 310, 311, 312, and 313 of file movement to which the data zero-copy file movement method according to the present invention are applied will be described.

데이터 무 복사 파일 이동이 적용될 수 있는 경우는 이동 대상 파일이 로컬 시스템의 디스크(303)에 저장되어 있는 경우와 네트워크상의 다른 시스템(304)에 위치한 경우를 포함한다. 이동 대상 파일이 로컬 시스템의 디스크(303)에 저장되어 있는 경우, 동일한 디스크 혹은 다른 디스크로 이동(310)시키거나 혹은 네트워크상의 다른 시스템으로 전송(311)하기 위하여 네트워크 카드로 이동시킬 수 있다. The case where the data copyless file movement can be applied includes the case where the movement target file is stored on the disk 303 of the local system and the case where the movement target file is located on another system 304 on the network. When the moving target file is stored in the disk 303 of the local system, the moving target file may be moved to the same disk or another disk 310 or transferred to a network card for transmission 311 to another system on the network.

또한, 이동 대상 파일이 네트워크상의 다른 시스템(304)에 위치한 경우 네트 워크 카드를 통해 수신되는 파일을 시스템 내의 디스크로 이동(312)시키거나 네트워크상의 다른 시스템으로 재송신(313)하는 경로가 가능하다.In addition, when the file to be moved is located on another system 304 on the network, a path for moving the file received through the network card to the disk 312 in the system or resending 313 to another system on the network is possible.

즉, 본 발명은 시스템 내에 존재하는 디스크와 네트워크 카드 간의 자유로운 파일 이동을 제공할 수 있다. 여기서, 소스 디바이스(303, 304)와 목적 디바이스(301, 302)가 서로 동일할 수도 있다.That is, the present invention can provide free file movement between a disk and a network card existing in the system. Here, the source devices 303 and 304 and the destination devices 301 and 302 may be identical to each other.

상기와 같이 데이터가 사용자 영역으로 복사되지 않고도 네트워크와 디스크 간의 자유로운 파일 이동이 가능하도록 하기 위해서는, 디스크로부터 데이터를 읽어오기 위한 읽기 모듈(306)과 디스크로 데이터를 쓰기 위한 쓰기 모듈(308) 그리고 네트워크로부터 데이터를 수신하기 위한 수신 모듈(307)과 네트워크로 데이터를 송신하기 위한 송신 모듈(309) 각각의 데이터 처리 과정이 수반되어야 한다. In order to enable free file movement between the network and the disk without data being copied to the user area as described above, a read module 306 for reading data from the disk, a write module 308 for writing data to the disk, and a network The data processing of each of the receiving module 307 for receiving data from and the transmitting module 309 for transmitting data to the network should be accompanied.

이때, 상기 네 가지 구성요소(306 내지 309) 간의 기능 연결을 위해서, 상호 간에 디바이스를 식별할 수 있도록 하는 기술자(descriptor)를 이용하고 소스 디바이스로부터 목적 디바이스로 데이터를 가져오기 위해 할당된 버퍼 페이지를 공유한다.At this time, for the functional connection between the four components (306 to 309), using a descriptor that can identify the device with each other and assign the buffer page allocated for bringing data from the source device to the destination device. Share.

즉, 소스 디바이스용으로 할당된 버퍼 페이지는 소스 디바이스로부터 파일의 일부 데이터를 전달받은 후, 중앙처리장치에 의한 복사 과정 없이(커널 영역으로부터 사용자 영역으로의 복사 과정 없이) 원하는 목적 디바이스로 상기 전달받은 데이터를 넘겨주기 위해 해당 출력 처리 모듈로 전달한다. 이때, 사용자 영역과 커널 영역 간의 중앙처리장치에 의한 데이터 복사 과정이 존재하지 않으므로, 사용자 영역에서의 시스템 콜 호출 과정 역시 불필요하다.That is, the buffer page allocated for the source device receives some data of the file from the source device, and then transfers the data to the desired destination device without copying by the central processing unit (without copying from the kernel area to the user area). Pass it to the corresponding output processing module to pass the data. In this case, since there is no data copying process by the central processing unit between the user area and the kernel area, the system call call process in the user area is also unnecessary.

여기서, 버퍼 페이지(204)를 공유하기 위한 설정 변경 과정(커널에 의해 수행됨)을 상세히 살펴보면 다음과 같다.Here, the configuration change process (performed by the kernel) for sharing the buffer page 204 will be described in detail.

버퍼 페이지(204)의 공유를 위한 설정 변경 과정은 커널 영역의 페이지 캐쉬(page cache)에 해당 페이지를 추가하고 삭제하는 과정과, 페이지가 가지는 각 이동 대상 파일에 대한 정보를 변경하는 과정을 포함한다. The configuration change process for sharing the buffer page 204 includes adding and deleting a corresponding page to a page cache of a kernel region, and changing information about each moving target file of the page. .

디스크/네트워크로부터 데이터를 읽어오기 위한 읽기 모듈(306)과 수신 모듈(307)은 페이지 할당시, 기존 페이지와 동일한 방식으로 페이지 캐쉬에 새로운 페이지를 할당(추가)한다. 이때, 수신 모듈(307)의 경우에는 네트워크로 데이터를 전송하기 위한 송신 모듈(309)을 호출하여 공유된 버퍼 페이지(204)의 데이터를 전송한 후에 상기 페이지 캐쉬에 추가된 페이지를 해제하는 과정을 함께 수행한다. 이는, 네트워크를 통한 데이터 송/수신 과정에서는 페이지 캐싱이 불필요하기 때문이다.The read module 306 and the receive module 307 for reading data from the disk / network allocate (add) new pages to the page cache in the same manner as the existing pages when allocating pages. In this case, the reception module 307 calls the transmission module 309 for transmitting data to the network to transmit the data of the shared buffer page 204 and then releases the page added to the page cache. Do it together. This is because page caching is unnecessary in a data transmission / reception process through a network.

한편, 디스크로 데이터를 쓰기 위한 쓰기 모듈(308)은 읽기 모듈(306) 또는 수신 모듈(307)로부터 넘겨받은 페이지를 사용하기 이전에 기존 페이지 캐쉬에 추가된 해당 페이지(버퍼 페이지임)를 해제한다. 이는, 동일한 페이지가 서로 다른 디바이스에 의해 페이지 캐쉬로서 사용됨에 따라 발생할 수 있는 시스템상의 문제를 방지하기 위함이다. 그러므로 페이지 캐쉬에 추가된 기존의 페이지를 해제한 후, 목적 디바이스를 위한 파일 정보로 해당 페이지의 데이터를 변경하는 과정을 포함한다. 따라서 소스 디바이스와 목적 디바이스가 모두 디스크인 경우에는 목적 디바이스를 위한 페이지만이 페이지 캐쉬에 존재하게 된다.Meanwhile, the write module 308 for writing data to the disk releases the corresponding page (which is a buffer page) added to the existing page cache before using the page transferred from the read module 306 or the receiving module 307. . This is to prevent system problems that can occur as the same page is used as a page cache by different devices. Therefore, after releasing the existing page added to the page cache, the process includes changing the data of the page with the file information for the target device. Therefore, when both the source device and the target device are disks, only pages for the target device exist in the page cache.

도 4 는 본 발명에 따른 데이터 무 복사 파일 이동 방법에 대한 일실시예 흐름도이다.4 is a flowchart illustrating an embodiment of a method for moving a data copyless file according to the present invention.

먼저, 응용 프로그램으로부터 디바이스 간의 파일 이동을 요청받음에 따라 커널이 커널 영역 내에 소스 디바이스용의 버퍼 페이지를 할당한다(401). 이때, 상기 할당된 버퍼 페이지(204)는 커널 영역의 페이지 캐쉬에 추가된다. First, in response to a request for file movement between devices from an application program, the kernel allocates a buffer page for a source device in the kernel region (401). At this time, the allocated buffer page 204 is added to the page cache of the kernel region.

그리고 커널이 상기 할당된 버퍼 페이지에 소스 디바이스에 저장된 데이터를 직접 메모리 접근 방식에 따라 복사한다(402). 이때, 상기 소스 디바이스가 네트워크 카드인 경우에는 이동 대상 파일의 데이터가 소켓 버퍼로 직접 메모리 접근 방식에 의해 1차 복사된 후에, 중앙처리장치에 의해 상기 소켓 버퍼로부터 상기 버퍼 페이지로 2차 복사된다.The kernel copies the data stored in the source device to the allocated buffer page according to a direct memory access method (402). In this case, when the source device is a network card, the data of the moving object file is first copied to the socket buffer by a direct memory access method, and then secondly copied from the socket buffer to the buffer page by the central processing unit.

이후, 커널이 상기 버퍼 페이지에 사용 가능한 공간이 없거나 혹은 이동 대상 파일의 모든 데이터가 상기 버퍼 페이지로 복사되었는지의 여부를 판단한다(403). 상기 판단 결과(403), 상기 버퍼 페이지에 사용 가능한 공간이 없거나 혹은 모든 데이터가 복사되었을 경우 다음 과정으로 진행한다. 반면에, 상기 판단 결과(403), 상기 버퍼 페이지에 사용 가능한 공간이 남았거나 데이터 복사가 완료되지 않았을 경우 상기 버퍼 페이지의 오프셋을 조절한 후(404), 상기 소스 디바이스로부터 데이터를 복사하는 과정(402)으로 진행한다.Thereafter, the kernel determines whether there is no space available in the buffer page or whether all data of the moving target file has been copied to the buffer page (403). As a result of the determination 403, when there is no space available in the buffer page or when all data is copied, the process proceeds to the next step. On the other hand, if the available space remains in the buffer page or the data copy is not completed, the determination result 403, after adjusting the offset of the buffer page (404), copying data from the source device ( Proceed to 402).

이후, 커널이 상기 버퍼 페이지를 상기 커널 영역의 페이지 캐쉬로부터 제거하고, 페이지 관리 정보에 대한 변경 과정을 수행한다(405). 이는, 상기 버퍼 페이지를 공유함에 따른 시스템상의 문제 발생을 방지하기 위한 것이다. 상기 설정 변 경 과정 수행 결과로 상기 버퍼 페이지는 변경된 정보를 유지하면서 목적 디바이스용 버퍼 페이지로서 상기 페이지 캐쉬에 추가된다.Thereafter, the kernel removes the buffer page from the page cache of the kernel region and performs a change process on page management information (405). This is to prevent a system problem caused by sharing the buffer page. As a result of performing the configuration change process, the buffer page is added to the page cache as a buffer page for the target device while maintaining the changed information.

이후, 커널이 상기 버퍼 페이지의 데이터를 목적 디바이스로 직접 메모리 접근 방식에 따라 복사한다(406). 이때, 목적 디바이스가 네트워크 카드인 경우에는 상기 데이터가 중앙처리장치에 의해 소켓 버퍼로 1차 복사된 후, 직접 메모리 접근 방식에 의해 상기 소켓 버퍼로부터 목적 디바이스로 2차 복사된다.Thereafter, the kernel copies the data of the buffer page to the target device according to a direct memory approach (406). In this case, when the target device is a network card, the data is first copied to the socket buffer by the central processing unit, and then secondly copied from the socket buffer to the target device by a direct memory approach.

이후, 커널이 이동 대상 파일의 모든 데이터가 소스 디바이스로부터 목적 디바이스로 복사되었는지의 여부를 판단하여(407) 복사가 완료된 경우에는 종료하고(사용자 영역으로 결과 회신), 복사가 완료되지 못하였을 경우에는 총 처리대상 데이터의 사이즈를 변경한 후(408) 소스 디바이스용 버퍼 페이지를 할당하는 과정(401)으로 진행한다.Thereafter, the kernel determines whether all data in the movement target file has been copied from the source device to the destination device (407), and if the copy is completed (results return to the user area), if the copy is not completed After changing the size of the total data to be processed (408), the process proceeds to step 401 of allocating a buffer page for the source device.

상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.As described above, the method of the present invention may be implemented as a program and stored in a recording medium (CD-ROM, RAM, ROM, floppy disk, hard disk, magneto-optical disk, etc.) in a computer-readable form. Since this process can be easily implemented by those skilled in the art will not be described in more detail.

이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.The present invention described above is capable of various substitutions, modifications, and changes without departing from the technical spirit of the present invention for those skilled in the art to which the present invention pertains. It is not limited by the drawings.

상기와 같은 본 발명은, 사용자 영역과 커널 영역 사이의 데이터 복사 과정을 제거하고 시스템 콜 호출 및 그로 인한 프로세스의 콘테스트 스위칭의 횟수를 감소시킴으로써, 중앙처리장치(CPU)의 가용성을 높이고 전체 성능을 향상시킬 수 있는 효과가 있다.As described above, the present invention eliminates the process of copying data between user space and kernel space, and reduces the number of system call calls and consequent switching of a process, thereby increasing the availability of a central processing unit (CPU) and improving overall performance. It can be effected.

또한, 본 발명은 별도의 지정된 공유 메모리 영역을 생성, 관리, 사용하는 것이 아니라, 커널 영역 내에 공유 버퍼 페이지를 할당하여 사용함으로써, 추가적인 비용 부담이 적은 효과가 있다.In addition, the present invention does not create, manage, or use a separate designated shared memory area, but allocates and uses a shared buffer page in the kernel area, thereby reducing the additional cost burden.

Claims (5)

데이터 무 복사 파일 이동 방법에 있어서,In the method of moving a dataless copy file, 사용자 영역의 응용 프로그램으로부터 파일 이동을 요청받는 요청 접수 단계;A request receiving step of requesting a file move from an application program in a user area; 소스 디바이스를 위한 버퍼 페이지를 커널 영역에 할당하는 할당 단계;An allocation step of allocating a buffer page for a source device to a kernel region; 상기 소스 디바이스에 저장되어 있는 이동 대상 파일의 데이터를 직접 메모리 접근 방식에 따라 상기 버퍼 페이지로 복사하는 1차 복사 단계;Copying data of a movement target file stored in the source device to the buffer page according to a direct memory access method; 상기 버퍼 페이지가 목적 디바이스를 위해 할당되도록 하기 위하여, 상기 버퍼 페이지를 페이지 캐쉬로부터 제거하고 페이지 관리 정보에 대한 변경 과정을 수행하는 설정 변경 단계; 및A setting change step of removing the buffer page from the page cache and performing a change process on page management information so that the buffer page is allocated for the target device; And 직접 메모리 접근 방식에 따라 상기 버퍼 페이지의 데이터를 상기 목적 디바이스로 복사하는 2차 복사 단계A second copy step of copying data of the buffer page to the destination device according to a direct memory approach 를 포함하는 데이터 무 복사 파일 이동 방법.How to move a data copy-free file that includes. 제 1 항에 있어서,The method of claim 1, 상기 설정 변경 단계는,The setting change step, 커널의 상기 페이지 캐쉬로부터 상기 버퍼 페이지를 삭제한 후 새로운 버퍼 페이지를 추가하고, 상기 목적 디바이스를 위한 파일정보로 상기 추가한 버퍼 페이 지의 데이터를 변경하는 것을 특징으로 하는 데이터 무 복사 파일 이동 방법.Deleting a buffer page from the page cache of a kernel, adding a new buffer page, and changing data of the added buffer page with file information for the target device. 제 1 항 또는 제 2 항에 있어서,The method according to claim 1 or 2, 상기 소스 디바이스 및 상기 목적 디바이스는,The source device and the target device, 로컬 시스템의 디스크 또는 네트워크 카드 중 어느 하나인 것을 특징으로 하는 데이터 무 복사 파일 이동 방법.A method of moving a dataless copy file, characterized in that it is either a disk or a network card of a local system. 제 3 항에 있어서,The method of claim 3, wherein 상기 1차 복사 단계는,The first copy step, 상기 소스 디바이스가 상기 네트워크 카드임에 따라, 직접 메모리 접근 방식에 의해 상기 네트워크 카드에 저장되어 있는 이동 대상 파일의 데이터를 소켓 버퍼로 복사한 후, 중앙처리장치에 의해 상기 소켓 버퍼에 저장되어 있는 데이터를 상기 버퍼 페이지로 복사하는 것을 특징으로 하는 데이터 무 복사 파일 이동 방법.As the source device is the network card, data of the moving object file stored on the network card by the direct memory access method is copied to the socket buffer, and then the data stored in the socket buffer by the central processing unit. Copying the data to the buffer page. 제 3 항에 있어서,The method of claim 3, wherein 상기 2차 복사 단계는,The second copy step, 상기 목적 디바이스가 상기 네트워크 카드임에 따라, 중앙처리장치에 의해 상기 버퍼 페이지에 저장되어 있는 이동 대상 파일의 데이터를 소켓 버퍼로 복사한 후, 직접 메모리 접근 방식에 의해 상기 소켓 버퍼에 저장되어 있는 데이터를 상기 네트워크 카드로 복사하는 것을 특징으로 하는 데이터 무 복사 파일 이동 방법.As the target device is the network card, data stored in the buffer page by the central processing unit is copied to the socket buffer, and then data stored in the socket buffer by a direct memory approach. And copying the data to the network card.
KR1020060037836A 2006-04-26 2006-04-26 File movement method supporting data zero-copy technique KR100758272B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020060037836A KR100758272B1 (en) 2006-04-26 2006-04-26 File movement method supporting data zero-copy technique
CNB2006101309821A CN100520749C (en) 2006-04-26 2006-12-28 File movement method supporting data zero-copy technique

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060037836A KR100758272B1 (en) 2006-04-26 2006-04-26 File movement method supporting data zero-copy technique

Publications (1)

Publication Number Publication Date
KR100758272B1 true KR100758272B1 (en) 2007-09-12

Family

ID=38737631

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060037836A KR100758272B1 (en) 2006-04-26 2006-04-26 File movement method supporting data zero-copy technique

Country Status (2)

Country Link
KR (1) KR100758272B1 (en)
CN (1) CN100520749C (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112749112A (en) * 2020-12-31 2021-05-04 无锡众星微系统技术有限公司 Hardware flow structure

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101150488B (en) * 2007-11-15 2012-01-25 曙光信息产业(北京)有限公司 A receiving method for zero copy network packet
CN101304373B (en) * 2008-06-25 2011-03-02 中兴通讯股份有限公司 Method and system for implementing high-efficiency transmission chunk data in LAN
EP2312807B1 (en) * 2008-08-04 2018-11-14 ZTE Corporation Method and system for enabling zero-copy transmission of streaming media data
CN103136115B (en) * 2011-11-23 2015-08-19 英业达集团(天津)电子技术有限公司 The method and system of request access zero-copy high-speed cache
CN103257936B (en) * 2012-02-17 2016-03-02 联想(北京)有限公司 EMS memory mappings method and memory-mapped module
CN103412950B (en) * 2013-08-28 2016-06-22 浙江大学 The method of accelerating space large data files read or write speed
CN106598752B (en) * 2016-11-15 2020-05-12 北京大学深圳研究生院 Remote zero-copy method
CN112114748B (en) * 2020-09-02 2022-10-25 厦门安胜网络科技有限公司 Separation method and system for cold and hot data
CN113746897B (en) * 2021-07-28 2024-08-13 浪潮电子信息产业股份有限公司 File transmission method, device, equipment and storage medium
CN114610660A (en) * 2022-03-01 2022-06-10 Oppo广东移动通信有限公司 Method, device and system for controlling interface data
CN115934323B (en) * 2022-12-02 2024-01-19 北京首都在线科技股份有限公司 Cloud computing resource calling method and device, electronic equipment and storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000038076A (en) 1998-12-03 2000-07-05 정선종 Method for zero-copy message passing
KR20000065846A (en) 1999-04-09 2000-11-15 구자홍 Method for zero-copy between kernel and user in operating system
KR20050065133A (en) 2003-12-24 2005-06-29 한국전자통신연구원 Network card having zero-copy transmission function, server and method thereof
KR20070031529A (en) 2005-09-15 2007-03-20 삼성전자주식회사 Method for large capacity data transmission using kernel level function

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000038076A (en) 1998-12-03 2000-07-05 정선종 Method for zero-copy message passing
KR20000065846A (en) 1999-04-09 2000-11-15 구자홍 Method for zero-copy between kernel and user in operating system
KR20050065133A (en) 2003-12-24 2005-06-29 한국전자통신연구원 Network card having zero-copy transmission function, server and method thereof
KR20070031529A (en) 2005-09-15 2007-03-20 삼성전자주식회사 Method for large capacity data transmission using kernel level function

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112749112A (en) * 2020-12-31 2021-05-04 无锡众星微系统技术有限公司 Hardware flow structure
CN112749112B (en) * 2020-12-31 2021-12-24 无锡众星微系统技术有限公司 Hardware flow structure

Also Published As

Publication number Publication date
CN101063963A (en) 2007-10-31
CN100520749C (en) 2009-07-29

Similar Documents

Publication Publication Date Title
KR100758272B1 (en) File movement method supporting data zero-copy technique
CN111221758B (en) Method and computer device for processing remote direct memory access request
US10120586B1 (en) Memory transaction with reduced latency
US7707337B2 (en) Object-based storage device with low process load and control method thereof
EP0889623B1 (en) System and method for efficient remote disk I/O
US7275123B2 (en) Method and apparatus for providing peer-to-peer data transfer within a computing environment
CN112422615A (en) Communication method and device
US8788726B2 (en) Data transmission system, storage medium and data transmission program
EP1528478A1 (en) Generalized addressing scheme for remote direct memory access enabled devices
CN109478171B (en) Improving throughput in openfabics environment
US8250260B2 (en) Method, arrangement, data processing program and computer program product for exchanging message data in a distributed computer system
US20050273649A1 (en) Apparatus for high-speed streaming data transmission using PMEM controller and method thereof
CN102291298A (en) Efficient computer network communication method oriented to long message
KR100936918B1 (en) TCP Offload Engine Apparatus and Method for System Call Processing for Static File Transmission
CN113296691A (en) Data processing system, method, device and electronic equipment
KR100653178B1 (en) Apparatus and method for creation and management of tcp transmission information based on toe
KR100449806B1 (en) A network-storage apparatus for high-speed streaming data transmission through network
KR100576721B1 (en) Network card having zero-copy transmission function, server and method thereof
US10289550B1 (en) Method and system for dynamic write-back cache sizing in solid state memory storage
KR20150048028A (en) Managing Data Transfer
CN117591037B (en) Virtualized data access system, method, device and server
KR20000065846A (en) Method for zero-copy between kernel and user in operating system
JP2003316589A (en) Real memory using method
WO2024169157A1 (en) Live migration method for container, and processor, host, chip and interface card
US20240103897A1 (en) Diversified virtual memory

Legal Events

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

Payment date: 20120831

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130829

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140827

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150827

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160826

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee