KR20080051021A - Method for accelerating i/o between user memory and disk using pci memory - Google Patents

Method for accelerating i/o between user memory and disk using pci memory Download PDF

Info

Publication number
KR20080051021A
KR20080051021A KR1020070098180A KR20070098180A KR20080051021A KR 20080051021 A KR20080051021 A KR 20080051021A KR 1020070098180 A KR1020070098180 A KR 1020070098180A KR 20070098180 A KR20070098180 A KR 20070098180A KR 20080051021 A KR20080051021 A KR 20080051021A
Authority
KR
South Korea
Prior art keywords
memory
data
disk
pci
user
Prior art date
Application number
KR1020070098180A
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 PCT/KR2007/006219 priority Critical patent/WO2008069531A1/en
Publication of KR20080051021A publication Critical patent/KR20080051021A/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
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Abstract

A method for accelerating speed of IO between a user memory and a disk by using a PCI memory is provided to access data at a high speed while a user program manipulates or refers to data by inputting or outputting directly data to or from the user memory. A method for accelerating speed of IO between a user memory and a disk comprises the following several steps. If a user program requests IO with respect to an arbitrary disk(S101), an internet server computing system determines a network storage card to which the disk is connected(S102) and assigns a PCI memory not used in the NS card(S103). The internet server computing system determines whether the IO request of the user program is read or write(S104). In case of the read IO request, the system reads data on a block of the disk, which requests the data IO, to the assigned PCI memory(S105). Then, the system transmits the data of the PCI memory to the user memory by using DMA(Direct Memory Access) of an IO process of the NS card(S106). In case of the write IO request, the system transmits data of the user memory to the assigned PCI memory by using the DMA(S107) and stores the data of the PCI memory at a block of the disk which requests the data IO(S108).

Description

PCI 메모리를 이용한 사용자 메모리와 디스크 간 입출력 가속 방법{Method for Accelerating I/O between User memory and Disk using PCI Memory}Method for Accelerating I / O between User memory and Disk using PCI Memory}

본 발명은 PCI 메모리를 이용한 사용자 메모리와 디스크 간 입출력 가속 방법에 관한 것으로, 특히 인터넷 서버 컴퓨팅 시스템에서 PCI 메모리를 이용하여 사용자 메모리와 디스크 간에 DMA를 사용하여 데이터를 입출력하는 PCI 메모리를 이용한 사용자 메모리와 디스크 간 입출력 가속 방법에 관한 것이다. The present invention relates to a method for accelerating input / output between a user memory and a disk using a PCI memory, and in particular, a user memory using a PCI memory for inputting and outputting data using a DMA between the user memory and a disk using the PCI memory in an Internet server computing system. I / O acceleration method between disks.

본 발명은 정보통신부 및 정보통신연구진흥원의 IT신성장동력핵심기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2005-S-405-02, 과제명: 차세대 인터넷 서비 기술 개발].The present invention is derived from the research conducted as part of the IT new growth engine core technology development project of the Ministry of Information and Communication and the Ministry of Information and Communication Research and Development. [Task Management Number: 2005-S-405-02, Title: Development of Next Generation Internet Service Technology] .

현재, 네트워크의 고속화와 다양한 멀티미디어 단말의 등장에 따라 멀티미디어 스트리밍 서비스에 대한 요구가 증가하고 있으며, 이로 인해 멀티미디어 데이터를 저장하고 스트리밍하는 멀티미디어 스트리밍 전용 서버에 요구되는 성능도 높아지고 있다.At present, as the network speeds up and the appearance of various multimedia terminals, the demand for multimedia streaming services is increasing, and as a result, the performance required for a dedicated multimedia streaming server for storing and streaming multimedia data is increasing.

이에, 멀티미디어 스트리밍의 성능을 향상시키기 위하여 하드웨어 및 소프트 웨어 측면에서 여러 가지 연구가 진행되고 있는데, 하드웨어 부문에서는 멀티미디어 데이터를 저장하는 디스크 저장 장치의 입출력 속도를 향상시키기 위하여 다양한 방법의 디스크 어레이 및 캐시 장치, 그리고 입출력 장치가 연구되고 있다.In order to improve the performance of multimedia streaming, various researches are being conducted in terms of hardware and software. In the hardware sector, various methods of disk arrays and cache devices are provided to improve input / output speed of a disk storage device storing multimedia data. And input and output devices are being studied.

이 분야의 종래 기술로는 "네트워크를 통해 스트리밍 데이터를 고속으로 송수신하기 위한 네트워크-스토리지 연결 장치"에 관한 기술이 대한민국 특허 공개번호 제2004-0056309호에 개시되어 있다.As a related art in this field, a technology related to "a network-storage connection device for transmitting and receiving streaming data at high speed through a network" is disclosed in Korean Patent Publication No. 2004-0056309.

상기 선행특허의 네트워크 스토리지 카드(Network Storage Card: 이하 'NS 카드'로 칭함)는 디스크 입출력 속도 및 네트워크 전송 속도를 향상시키기 위한 노력의 하나로써, 하나의 PCI(Peripheral Component Interconnect) 카드에 디스크 입출력 장치, 네트워크 컨트롤러 및 메모리를 집적하여, 디스크의 데이터를 네트워크로 전송하는 경우에 무복사 전송이 수행되도록 고안되었다. The network storage card (hereinafter referred to as an 'NS card') of the prior patent is one of efforts to improve the disk input / output speed and network transmission speed, and the disk input / output device in one peripheral component interconnect (PCI) card. By integrating a network controller and a memory, a copyless transmission is designed to be performed when data on a disk is transferred to a network.

또한, 선행특허에서는 NS 카드 상의 메모리인 PCI 메모리가 사용자 프로그램에서 사용될 때, 사용자 프로그램이 PCI 메모리 블록을 할당받는 방법을 개시하고 있다. 좀 더 상세하게는, NS 카드의 PCI 메모리는 물리적인 PCI 주소를 가져 PCI 버스를 통해 접근 가능한 메모리로써 사용자 프로그램으로부터 할당이 요청되면, 사용자 메모리 영역에 매핑하여 사용자 프로그램으로부터 접근되도록 한다. In addition, the prior patent discloses a method in which a user program is allocated a PCI memory block when a PCI memory which is a memory on an NS card is used in a user program. More specifically, the NS card's PCI memory is a memory that has a physical PCI address and is accessible through the PCI bus. When an allocation request is requested from a user program, it is mapped to a user memory area to be accessed from the user program.

따라서, 사용자 프로그램에서는 할당된 PCI 메모리 블록을 사용하여 디스크 입출력을 요청하게 되는 경우, 디바이스 드라이버에서 PCI 메모리를 인식하여 무복사 입출력을 수행하도록 한다.Therefore, when a user program requests a disk I / O using the allocated PCI memory block, the device driver recognizes the PCI memory and performs copyless input / output.

이에 따라, 사용자 프로그램에서 PCI 메모리를 참조하거나 수정할 때 메모리 접근 구조에 대해 살펴보면, 사용자 프로그램이 PCI 메모리의 데이터를 조작하거나 참조함에 있어서, PCI 버스를 통하여 입출력이 발생하게 된다. Accordingly, when a memory access structure is looked at when the user program references or modifies the PCI memory, input / output occurs through the PCI bus when the user program manipulates or references data in the PCI memory.

따라서, 사용자 프로그램이 PCI 버스를 통하지 않고 직접 연결된 로컬 메모리의 데이터 조작 및 참조에 비해 PCI 버스를 통해서 데이터 조작 및 참조를 할 때 성능 저하가 발생한다. Thus, performance degradation occurs when a user program manipulates and references data through the PCI bus as compared to the data manipulation and reference of local memory directly connected rather than through the PCI bus.

즉, 기존의 선행 기술은 디스크의 데이터를 조작 없이 네트워크에 스트리밍 하는 경우에는 고속의 스트리밍 성능을 제공할 수 있으나, 사용자 프로그램에 의한 데이터 조작 및 참조가 필요할 경우에는 성능의 저하를 발생시키는 문제점을 가지게 된다.That is, the conventional prior art can provide a high speed streaming performance when streaming the data of the disk to the network without manipulation, but has a problem that causes performance degradation when data manipulation and reference by the user program is required. do.

한편, 멀티미디어 스트리밍에 사용되는 네트워크 전송 및 제어 방법에는 디스크에 저장된 멀티미디어 데이터를 그대로 사용할 수 있는 프로토콜도 있지만, 최근에는 사용자에게 더 편리한 사용 환경을 제공하기 위하여 데이터의 일부 필드를 참조하고 변경하여 전송하는 프로토콜의 사용이 확대되고 있다. 예를 들면 VOD(주문형 비디오)서비스에서 빨리 감기(FF, Fast Forward)나 되감기(FR, Fast Rewind) 서비스를 제공하기 위한 스트리밍 데이터의 Time Stamp 필드에 대한 조작이 그것이다.On the other hand, the network transmission and control method used for multimedia streaming also has a protocol that can use the multimedia data stored on the disk as it is, but recently to refer to some fields of the data to change and transmit in order to provide a more convenient user experience The use of protocols is expanding. For example, manipulation of the Time Stamp field of streaming data to provide Fast Forward (FF) or Fast Rewind (FR) service in VOD service.

따라서, 기존의 선행 기술은 이러한 데이터 조작 후 스트리밍 하는 응용에서 심각한 성능 저하를 야기하는 문제점이 있다.Therefore, the existing prior art has a problem that causes serious performance degradation in applications that stream after such data manipulation.

상기와 같은 문제점을 해결하기 위한 본 발명의 목적은 사용자 프로그램에서 데이터 조작 및 참조를 고속으로 수행하도록 하기 위해서 스트리밍될 데이터를 사 용자메모리에 적재하여 사용할 수 있도록 PCI 메모리를 사용한 사용자 메모리와 디스크 간 고속 디스크 입출력 가속 방법을 제공하는데 있다.An object of the present invention for solving the above problems is a high speed between the user memory and the disk using a PCI memory to load the data to be streamed into the user memory in order to perform data manipulation and reference at high speed in the user program It is to provide a disk I / O acceleration method.

상기와 같은 본 발명의 목적을 달성하기 위한 본 발명의 일 실시예에 따른 인터넷 서버 컴퓨팅 시스템의 PCI 메모리를 이용한 사용자 메모리와 디스크 간 입출력 가속 방법은, 사용자 프로그램이 디스크 입출력을 요청하는 경우, 상기 디스크와 연결된 PCI 메모리를 할당하는 단계; 상기 입출력 요청이 읽기 또는 쓰기인지 판단하는 단계; 상기 입출력 요청이 읽기인 경우, 상기 디스크의 블록 데이터를 상기 할당된 PCI 메모리로 읽어 들이고, DMA(Direct Memory Access)를 이용하여 상기 PCI 메모리로 읽어 들인 데이터를 사용자 메모리로 전송하는 단계; 상기 입출력 요청이 쓰기인 경우, 상기 DMA를 이용하여 상기 사용자 메모리의 데이터를 상기 PCI 메모리로 전송하고, 상기 PCI 메모리의 데이터를 상기 디스크의 블록에 저장하는 단계를 포함한다.According to an embodiment of the present invention, a method for accelerating input / output between a user memory and a disk using a PCI memory of the Internet server computing system according to an embodiment of the present invention may include: Allocating a PCI memory connected to the memory; Determining whether the input / output request is a read or a write; If the input / output request is a read, reading block data of the disk into the allocated PCI memory and transmitting data read into the PCI memory to a user memory using direct memory access (DMA); If the input / output request is a write, transmitting the data of the user memory to the PCI memory using the DMA, and storing the data of the PCI memory in a block of the disk.

사용자 프로그램이 디스크 입출력을 요청하는 경우, 상기 디스크와 연결된 PCI 메모리를 할당하는 단계는, 상기 디스크와 연결된 NS 카드를 검색하는 단계; 상기 검색된 NS 카드에서 사용되지 않는 PCI 메모리를 할당하는 단계를 포함하는 것을 특징으로 한다.When a user program requests disk input / output, allocating a PCI memory connected to the disk may include searching for an NS card connected to the disk; And allocating PCI memory not used in the searched NS card.

상기 입출력 요청이 읽기인 경우, 상기 DMA를 이용하여 상기 PCI 메모리로 읽어 들인 데이터를 상기 사용자 메모리로 전송하는 단계는, 상기 PCI 메모리에 데 이터가 적재되었는지 여부를 판단한 후, 상기 PCI 메모리에 데이터가 적재되었으면 상기 적재된 데이터를 사용자 메모리로 전송하는 것을 특징으로 한다.When the input / output request is a read, the step of transmitting the data read into the PCI memory using the DMA to the user memory, after determining whether data is loaded in the PCI memory, the data is stored in the PCI memory If the data is loaded, the loaded data is transferred to the user memory.

상기 입출력 요청이 읽기인 경우, 상기 DMA를 이용하여 상기 PCI 메모리로 읽어 들인 데이터를 상기 사용자 메모리로 전송하는 단계는, 네트워크 스토리지 카드(Network Storage Card)의 I/O 프로세서에 포함된 DMA 컨트롤러를 사용하여 상기 PCI 메모리로 읽어 들인 데이터를 상기 사용자 메모리로 전송하는 것을 특징으로 한다.When the input / output request is a read, transmitting the data read into the PCI memory using the DMA to the user memory uses a DMA controller included in an I / O processor of a network storage card. And transfer the data read into the PCI memory to the user memory.

상기 입출력 요청이 쓰기인 경우, 상기 사용자 메모리의 데이터를 상기 PCI 메모리로 전송하는 단계는, 네트워크 스토리지 카드의 I/O 프로세서에 포함된 DMA 컨트롤러를 사용하여 상기 사용자 메모리의 데이터를 상기 PCI 메모리에 전송하는 것을 특징으로 한다.When the input / output request is a write, transmitting data of the user memory to the PCI memory may include transmitting data of the user memory to the PCI memory using a DMA controller included in an I / O processor of a network storage card. Characterized in that.

상기 입출력 요청이 쓰기인 경우, 상기 PCI 메모리의 데이터를 상기 디스크의 블록에 저장하는 단계는, 상기 PCI 메모리에 데이터가 적재되었는지 여부를 판단한 후, 상기 PCI 메모리에 데이터가 적재되었으면 상기 적재된 데이터를 상기 디스크의 블록에 저장하는 것을 특징으로 한다.When the input / output request is a write, storing the data of the PCI memory in the block of the disk may include determining whether the data is loaded in the PCI memory, and if the data is loaded in the PCI memory, loading the loaded data. And store in a block of the disk.

상기한 바와 같은 본 발명에 따른 PCI 메모리를 이용한 사용자 메모리와 디스크 간 입출력 가속 방법은, PCI 메모리를 버퍼로 사용하여 사용자 메모리에 대해 디스크 데이터를 입출력하여, 기존 NS 카드의 무복사 디스크 입출력에 비해 사용자 메모리와 PCI 메모리간 DMA 단계 추가에 따른 성능의 손실은 발생하지만, 사용자 메모리에 직접 데이터를 입출력할 수 있게 됨으로 사용자 프로그램이 데이터를 조작하거나 참조하는 과정에서 고속으로 데이터를 접근할 수 있는 효과를 가진다.In the above-described method for accelerating input / output between a user memory and a disk using a PCI memory according to the present invention, the disk data is inputted and outputted to the user memory using the PCI memory as a buffer, and the user is compared to the non-copy disk input and output of the conventional NS card. The loss of performance is caused by the addition of the DMA step between the memory and the PCI memory, but the data can be input and output directly to the user memory, and thus the user program can access the data at high speed in the process of manipulating or referencing the data. .

또한, 상기한 바와 같은 본 발명에 따른 PCI 메모리를 이용한 사용자 메모리와 디스크 간 입출력 가속 방법은, 일반적인 디스크 입출력 과정에 비해 CPU의 개입을 최소화함으로, CPU의 부하를 줄이면서 NS 카드의 고속 무복사 입출력 과정을 응용하여 고속의 디스크 입출력을 수행할 수 있는 효과를 가진다.In addition, the method of accelerating the input and output between the user memory and the disk using the PCI memory according to the present invention as described above, by minimizing the CPU intervention compared to the general disk input and output process, while reducing the CPU load, high-speed non-copy input and output By applying the process, the disk I / O can be performed at high speed.

이하 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있는 바람직한 실시 예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시 예에 대한 동작 원리를 상세하게 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. DETAILED DESCRIPTION Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. However, in describing in detail the operating principle of the preferred embodiment of the present invention, if it is determined that the detailed description of the related known function or configuration may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted.

또한, 도면 전체에 걸쳐 유사한 기능 및 작용을 하는 부분에 대해서는 동일한 도면 부호를 사용한다.In addition, the same reference numerals are used for parts having similar functions and functions throughout the drawings.

도 1은 본 발명의 바람직한 일 실시예에 따른 인터넷 서버 컴퓨팅 시스템을 나타낸 개략적인 구성도이다.1 is a schematic diagram illustrating an internet server computing system according to an exemplary embodiment of the present invention.

도 1을 참조하면, 인터넷 서버 컴퓨팅 시스템은 일반적인 사용자 프로그램(100)들이 MCH(Machine Check Handler)(200)를 통해 사용자 메모리(300) 및 주변 장치 버스(대표적으로 PCI(Peripheral Component Interconnect) 버스)(400)와 연결되고, 연결되는 PCI 버스(400)를 통해 다시 네트워크 스토리지 카드(Network Storage Card: 이하 'NS 카드'로 칭함)(500)에 접근되도록 한다.Referring to FIG. 1, an Internet server computing system may be configured such that general user programs 100 may use user machine 300 and peripheral buses (typically Peripheral Component Interconnect (PCI) buses) through a machine check handler (MCH) 200. 400 is connected to the network storage card 500 through the PCI bus 400 connected thereto.

여기서, 인터넷 서버 컴퓨팅 시스템의 NS 카드(500)는 위로는 PCI 버스(400)의 인터페이스에 맞게 동작되며, 아래로는 디스크(600) 및 이더넷과 같은 네트워크 장치에 연결된다. Here, the NS card 500 of the Internet server computing system is operated upward to fit the interface of the PCI bus 400, and is connected to a network device such as a disk 600 and Ethernet below.

즉, NS 카드(500)는 구성하는 디스크 제어부(520), PCI 메모리(530) 및 TOE(540)가 PCI 브릿지(510)를 통해 PCI 버스(400)에 접근되도록 한다.That is, the NS card 500 allows the disk controller 520, the PCI memory 530, and the TOE 540 constituting the NS card 500 to access the PCI bus 400 through the PCI bridge 510.

한편, 본 발명은 공지된 기술로부터 유추할 수 있는 인터넷 서버 컴퓨팅 시스템의 각 구성에 대한 세부적 설명은 생략하도록 한다.In the meantime, the detailed description of each component of the Internet server computing system that can be inferred from the known technology will be omitted.

다음으로, 이와 같은 구성을 갖는 인터넷 서버 컴퓨팅 시스템에서 PCI 메모리(530)를 이용한 사용자 메모리(300)와 디스크(600)간 입출력 가속 방법에 대해 도면을 참조하여 자세히 살펴보도록 한다.Next, an input / output acceleration method between the user memory 300 and the disk 600 using the PCI memory 530 in the Internet server computing system having such a configuration will be described in detail with reference to the accompanying drawings.

도 2는 본 발명의 바람직한 일 실시예에 따른 인터넷 서버 컴퓨팅 시스템에서 PCI 메모리를 이용한 사용자 메모리와 디스크 간 입출력 가속 방법을 나타낸 순서 흐름도이다.2 is a flowchart illustrating an input / output acceleration method between a user memory and a disk using a PCI memory in the Internet server computing system according to an exemplary embodiment of the present invention.

도 2를 참조하면, 인터넷 서버 컴퓨팅 시스템은 사용자 프로그램(100)이 임의의 디스크(600)에 대한 입출력을 요청하는 경우(S101), 해당 디스크(600)가 연결된 NS 카드(500)를 판별하여(S102), 해당 NS 카드(500)에서 사용되지 않는 PCI 메 모리(530)를 할당한다(S103).Referring to FIG. 2, when the user program 100 requests input / output for an arbitrary disk 600 (S101), the Internet server computing system determines an NS card 500 to which the corresponding disk 600 is connected ( S102), allocates the PCI memory 530 not used in the NS card 500 (S103).

그리고, 인터넷 서버 컴퓨팅 시스템은 사용자 프로그램(100)의 입출력 요청이 읽기 또는 쓰기인지 판단하여(S104), 읽기인 경우 입출력 요청되는 해당 디스크(600)의 블록에 대한 데이터를 상기 할당된 PCI 메모리(530)로 읽어 들인다(S105). 이어, 인터넷 서버 컴퓨팅 시스템은 NS 카드의 I/O 프로세서의 DMA(Direct Memory Access)를 이용하여 상기 PCI 메모리(530)의 데이터를 사용자 메모리(300)로 전송한다(S106).In addition, the Internet server computing system determines whether an input / output request of the user program 100 is read or write (S104), and if the read is performed, the data of the block of the corresponding disk 600 that is requested for input / output is allocated to the PCI memory 530. (S105). Subsequently, the Internet server computing system transmits data of the PCI memory 530 to the user memory 300 by using direct memory access (DMA) of the I / O processor of the NS card (S106).

하지만, 인터넷 서버 컴퓨팅 시스템은 사용자 프로그램(100)의 입출력 요청이 쓰기인 경우, NS 카드의 I/O 프로세서의 DMA를 이용하여 사용자 메모리(300)의 데이터를 상기 할당된 PCI 메모리(530)로 전송하고(S107), PCI 메모리(530)의 데이터를 입출력 요청되는 해당 디스크(600)의 블록에 저장한다(S108).However, when the input / output request of the user program 100 is a write, the Internet server computing system transmits data of the user memory 300 to the allocated PCI memory 530 by using the DMA of the I / O processor of the NS card. In operation S107, the data of the PCI memory 530 is stored in a block of the corresponding disk 600 that is requested for input / output (S108).

도 3은 본 발명의 바람직한 일 실시예에 따라 PCI 메모리를 이용하여 디스크의 데이터를 사용자 메모리로 읽어 들이는 방법을 나타낸 순서 흐름도이다.3 is a flowchart illustrating a method of reading data on a disk into a user memory using a PCI memory according to an exemplary embodiment of the present invention.

도 3에 도시된 바와 같이, 인터넷 서버 컴퓨팅 시스템에서 PCI 메모리(530)를 이용하여 사용자 메모리(300)의 데이터를 읽고자 하는 사용자 프로그램(100)은, 먼저 임의의 사용자 메모리(300)를 할당하고(S201), 할당된 사용자 메모리(300)를 이용하여 임의 디스크(600) 블록에 대한 데이터 읽기를 요청한다(S202).As shown in FIG. 3, the user program 100 that wants to read data of the user memory 300 using the PCI memory 530 in the Internet server computing system first allocates an arbitrary user memory 300. In operation S202, a data read request for a random disk 600 block is requested using the allocated user memory 300 (S202).

이에, 인터넷 서버 컴퓨팅 시스템은 사용자 프로그램(100)로부터 데이터 읽기가 요청되면, 상기 데이터 읽기가 요청된 디스크(600)와 연결된 NS 카드(500)를 확인하고(S203), 확인된 NS 카드(500)에서 사용되지 않는 PCI 메모리(530)를 할당한다(S204).Accordingly, when the Internet server computing system is requested to read data from the user program 100, the Internet server computing system checks the NS card 500 connected to the disk 600 requested to read the data (S203) and the confirmed NS card 500. PCI memory 530 that is not used in the allocation is allocated (S204).

그리고, 인터넷 서버 컴퓨팅 시스템은 사용자 프로그램(100)로부터 읽기 요청된 디스크(600) 블록의 데이터가 상기 할당된 PCI 메모리(530)로 읽어 들여지도록 한다(S205).In addition, the Internet server computing system causes the data of the block of the disk 600 requested to be read from the user program 100 to be read into the allocated PCI memory 530 (S205).

다음으로, 인터넷 서버 컴퓨팅 시스템은 PCI 메모리(530)에 데이터가 적재되면(S206), NS 카드(500)의 I/O 프로세서에 포함된 DMA 컨트롤러를 사용하여 상기 PCI 메모리(530)에 적재된 데이터를 상기 할당된 사용자 메모리(300)로 전송한다(S207).Next, when data is loaded into the PCI memory 530 (S206), the Internet server computing system uses the DMA controller included in the I / O processor of the NS card 500 to load the data into the PCI memory 530. Is transmitted to the allocated user memory 300 (S207).

여기서, 인터넷 서버 컴퓨팅 시스템은, NS 카드(500)의 DMA 컨트롤러를 사용하여 상기 PCI 메모리(530)에 적재된 데이터를 상기 사용자 메모리(300)로 전송함에 있어서, DMA로 상기 전송이 수행되도록 한다.Here, the Internet server computing system transmits the data loaded in the PCI memory 530 to the user memory 300 by using the DMA controller of the NS card 500 so that the transfer is performed by DMA.

도 4는 본 발명의 바람직한 일 실시예에 따라 PCI 메모리를 이용하여 사용자 메모리의 데이터를 디스크에 쓰는 방법을 나타낸 순서 흐름도이다.4 is a flowchart illustrating a method of writing data in a user memory to a disk by using a PCI memory according to an exemplary embodiment of the present invention.

도 4에 도시된 바와 같이, 인터넷 서버 컴퓨팅 시스템에서 PCI 메모리(530)를 이용하여 사용자 메모리(300)의 데이터를 쓰고자 하는 사용자 프로그램(100)은, 먼저 임의의 사용자 메모리(300)를 할당하고(S301), 할당된 사용자 메모리(300)를 이용하여 임의 디스크(600) 블록에 대한 데이터 쓰기를 요청한다(S302).As shown in FIG. 4, the user program 100 that wants to write data in the user memory 300 using the PCI memory 530 in the Internet server computing system first allocates an arbitrary user memory 300. In operation S301, data write is requested for an arbitrary disk 600 block using the allocated user memory 300 (S302).

이에, 인터넷 서버 컴퓨팅 시스템은 사용자 프로그램(100)으로부터 데이터 쓰기가 요청되면, 상기 데이터 쓰기가 요청된 디스크(600)와 연결된 NS 카드(500)를 확인하고(S303), 확인된 NS 카드(500)에서 사용되지 않는 PCI 메모리(530)를 할당한다(S304).Therefore, when the data writing request is requested from the user program 100, the Internet server computing system checks the NS card 500 connected to the disk 600 on which the data writing is requested (S303), and the confirmed NS card 500. PCI memory 530 that is not used in the allocation is allocated (S304).

그리고, 인터넷 서버 컴퓨팅 시스템은 NS 카드(500)의 I/O 프로세서에 포함된 DMA 컨트롤러를 통해 DMA을 이용하여 사용자 메모리(300)의 데이터가 상기 할당된 PCI 메모리(530)로 전송되도록 한다(S305).In addition, the Internet server computing system transmits the data of the user memory 300 to the allocated PCI memory 530 using DMA through the DMA controller included in the I / O processor of the NS card 500 (S305). ).

다음으로, 인터넷 서버 컴퓨팅 시스템은 PCI 메모리(530)에 데이터가 적재되면(S306), 상기 PCI 메모리(530)에 적재된 데이터를 상기 데이터 쓰기 요청된 디스크 블록에 저장 한다(S307).Next, when data is loaded in the PCI memory 530 (S306), the Internet server computing system stores the data loaded in the PCI memory 530 in the disk block for which data is written (S307).

이상에서 설명한 본 발명은 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경할 수 있다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 당업자에게 있어 명백할 것이다. The present invention described above is not limited to the above-described embodiments and the accompanying drawings, and it is common in the art that various substitutions, modifications, and changes can be made without departing from the technical spirit of the present invention. It will be apparent to those skilled in the art.

도 1은 본 발명의 바람직한 일 실시예에 따른 인터넷 서버 컴퓨팅 시스템을 나타낸 개략적인 구성도,1 is a schematic structural diagram showing an Internet server computing system according to an embodiment of the present invention;

도 2는 본 발명의 바람직한 일 실시예에 따른 인터넷 서버 컴퓨팅 시스템에서 PCI 메모리를 이용한 사용자 메모리와 디스크 간 입출력 가속 방법을 나타낸 순서 흐름도,2 is a flowchart illustrating an input / output acceleration method between a user memory and a disk using a PCI memory in the Internet server computing system according to an embodiment of the present invention;

도 3은 본 발명의 바람직한 일 실시예에 따라 PCI 메모리를 이용하여 디스크의 데이터를 사용자 메모리로 읽어 들이는 방법을 나타낸 순서 흐름도, 그리고3 is a flowchart illustrating a method of reading data from a disk into a user memory using a PCI memory according to an exemplary embodiment of the present invention.

도 4는 본 발명의 바람직한 일 실시예에 따라 PCI 메모리를 이용하여 사용자 메모리의 데이터를 디스크에 쓰는 방법을 나타낸 순서 흐름도이다.4 is a flowchart illustrating a method of writing data in a user memory to a disk by using a PCI memory according to an exemplary embodiment of the present invention.

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

100 : 중앙처리장치 200 : MCH100: central processing unit 200: MCH

300 : 로컬 메모리 400 : PCI 버스300: local memory 400: PCI bus

500 : 네트워크 스토리지 카드 510 : PCI 브릿지500: network storage card 510: PCI bridge

520 : 디스크 제어부 530 : PCI 메모리520: disk control unit 530: PCI memory

540 : TOE 600 : 디스크540: TOE 600: disk

Claims (6)

사용자 프로그램이 디스크 입출력을 요청하는 경우, 상기 디스크와 연결된 PCI 메모리를 할당하는 단계;Allocating a PCI memory connected to the disk when a user program requests disk input / output; 상기 입출력 요청이 읽기 또는 쓰기인지 판단하는 단계;Determining whether the input / output request is a read or a write; 상기 입출력 요청이 읽기인 경우, 상기 디스크의 블록 데이터를 상기 할당된 PCI 메모리로 읽어 들이고, DMA(Direct Memory Access)를 이용하여 상기 PCI 메모리로 읽어 들인 데이터를 사용자 메모리로 전송하는 단계; 및If the input / output request is a read, reading block data of the disk into the allocated PCI memory and transmitting data read into the PCI memory to a user memory using direct memory access (DMA); And 상기 입출력 요청이 쓰기인 경우, 상기 DMA를 이용하여 상기 사용자 메모리의 데이터를 상기 PCI 메모리로 전송하고, 상기 PCI 메모리의 데이터를 상기 디스크의 블록에 저장하는 단계를 포함하는 인터넷 서버 컴퓨팅 시스템의 PCI 메모리를 이용한 사용자 메모리와 디스크 간 입출력 가속 방법.If the input / output request is a write, transferring the data of the user memory to the PCI memory using the DMA, and storing the data of the PCI memory in a block of the disk; I / O acceleration method between user memory and disk using 제1항에 있어서,The method of claim 1, 사용자 프로그램이 디스크 입출력을 요청하는 경우, 상기 디스크와 연결된 PCI 메모리를 할당하는 단계는,When a user program requests disk I / O, allocating PCI memory connected to the disk may include: 상기 디스크와 연결된 NS 카드를 검색하는 단계; 및Searching for an NS card connected to the disk; And 상기 검색된 NS 카드에서 사용되지 않는 PCI 메모리를 할당하는 단계를 포함하는 것을 특징으로 하는 PCI 메모리를 이용한 사용자 메모리와 디스크 간 입출력 가속 방법.And allocating a PCI memory not used in the searched NS card. 제1항에 있어서,The method of claim 1, 상기 입출력 요청이 읽기인 경우, 상기 DMA를 이용하여 상기 PCI 메모리로 읽어 들인 데이터를 상기 사용자 메모리로 전송하는 단계는,When the input / output request is a read, transmitting the data read into the PCI memory using the DMA to the user memory, 상기 PCI 메모리에 데이터가 적재되었는지 여부를 판단한 후, 상기 PCI 메모리에 데이터가 적재되었으면 상기 적재된 데이터를 사용자 메모리로 전송하는 것을 특징으로 하는 PCI 메모리를 이용한 사용자 메모리와 디스크 간 입출력 가속 방법. Determining whether data is loaded in the PCI memory, and if the data is loaded in the PCI memory, transferring the loaded data to a user memory. 제1항에 있어서,The method of claim 1, 상기 입출력 요청이 읽기인 경우, 상기 DMA를 이용하여 상기 PCI 메모리로 읽어 들인 데이터를 상기 사용자 메모리로 전송하는 단계는,When the input / output request is a read, transmitting the data read into the PCI memory using the DMA to the user memory, 네트워크 스토리지 카드(Network Storage Card)의 I/O 프로세서에 포함된 DMA 컨트롤러를 사용하여 상기 PCI 메모리로 읽어 들인 데이터를 상기 사용자 메모리로 전송하는 것을 특징으로 하는 PCI 메모리를 이용한 사용자 메모리와 디스크 간 입출력 가속 방법.I / O acceleration between the user memory and the disk using the PCI memory, characterized in that for transferring the data read into the PCI memory to the user memory using a DMA controller included in the I / O processor of the network storage card (Network Storage Card) Way. 제1항에 있어서,The method of claim 1, 상기 입출력 요청이 쓰기인 경우, 상기 DMA를 이용하여 사용자 메모리의 데이터를 상기 PCI 메모리로 전송하는 단계는,When the input / output request is a write, transmitting the data of the user memory to the PCI memory using the DMA, 네트워크 스토리지 카드(Network Storage Card)의 I/O 프로세서에 포함된 DMA 컨트롤러를 사용하여 상기 사용자 메모리의 데이터를 상기 PCI 메모리에 전송하는 것을 특징으로 하는 PCI 메모리를 이용한 사용자 메모리와 디스크 간 입출력 가속 방법.A method of accelerating input / output between a user memory and a disk using a PCI memory, characterized in that the data of the user memory is transferred to the PCI memory using a DMA controller included in an I / O processor of a network storage card. 제1항에 있어서,The method of claim 1, 상기 입출력 요청이 쓰기인 경우, 상기 전송된 PCI 메모리의 데이터를 상기 디스크의 블록에 저장하는 단계는,When the input / output request is a write, storing the data of the transmitted PCI memory in a block of the disk, 상기 사용자 메모리의 데이터가 상기 PCI 메모리에 전송 완료되면, 상기 PCI 메모리의 데이터를 상기 디스크의 블록에 저장하는 것을 특징으로 하는 PCI 메모리를 이용한 사용자 메모리와 디스크 간 입출력 가속 방법.And when the data of the user memory is transferred to the PCI memory, storing the data of the PCI memory in a block of the disk.
KR1020070098180A 2006-12-04 2007-09-28 Method for accelerating i/o between user memory and disk using pci memory KR20080051021A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2007/006219 WO2008069531A1 (en) 2006-12-04 2007-12-04 Method of accelerating i/o between user memory and disk using pci memory

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020060121623 2006-12-04
KR20060121623 2006-12-04

Publications (1)

Publication Number Publication Date
KR20080051021A true KR20080051021A (en) 2008-06-10

Family

ID=39806165

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070098180A KR20080051021A (en) 2006-12-04 2007-09-28 Method for accelerating i/o between user memory and disk using pci memory

Country Status (1)

Country Link
KR (1) KR20080051021A (en)

Similar Documents

Publication Publication Date Title
JP6796304B2 (en) Final level cache system and corresponding methods
US9037810B2 (en) Pre-fetching of data packets
US7707337B2 (en) Object-based storage device with low process load and control method thereof
US10083131B2 (en) Generating and/or employing a descriptor associated with a memory translation table
US8549231B2 (en) Performing high granularity prefetch from remote memory into a cache on a device without change in address
KR100758272B1 (en) File movement method supporting data zero-copy technique
US8255593B2 (en) Direct memory access with striding across memory
KR20070048797A (en) Data transfer into a processor cache using a dma controller in the processor
US10552936B2 (en) Solid state storage local image processing system and method
US8250260B2 (en) Method, arrangement, data processing program and computer program product for exchanging message data in a distributed computer system
JP2009512948A (en) Method and apparatus for increasing throughput in a storage server
US8549274B2 (en) Distributive cache accessing device and method for accelerating to boot remote diskless computers
US7913059B2 (en) Information processing device, data transfer method, and information storage medium
WO2024082944A1 (en) Method and apparatus for data exchange between multiple processors, device, and storage medium
JP2005209206A (en) Data transfer method for multiprocessor system, multiprocessor system, and processor for executing the method
US20060143313A1 (en) Method for accessing a storage device
CN102291298A (en) Efficient computer network communication method oriented to long message
US8140792B2 (en) Indirectly-accessed, hardware-affine channel storage in transaction-oriented DMA-intensive environments
US8234651B2 (en) Information processing method and apparatus using the same
WO2006061316A2 (en) Transferring data between system and storage in a shared buffer
KR20080051021A (en) Method for accelerating i/o between user memory and disk using pci memory
RU2475817C1 (en) Apparatus for buffering data streams read from ram
CN107025190B (en) System and method of operation thereof
KR100950356B1 (en) Data transfer unit with support for multiple coherency granules
KR20150048028A (en) Managing Data Transfer

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application