KR20220043078A - Edge computing system for efficient distributed processing - Google Patents

Edge computing system for efficient distributed processing Download PDF

Info

Publication number
KR20220043078A
KR20220043078A KR1020220026973A KR20220026973A KR20220043078A KR 20220043078 A KR20220043078 A KR 20220043078A KR 1020220026973 A KR1020220026973 A KR 1020220026973A KR 20220026973 A KR20220026973 A KR 20220026973A KR 20220043078 A KR20220043078 A KR 20220043078A
Authority
KR
South Korea
Prior art keywords
present
memory
edge computing
data
manager
Prior art date
Application number
KR1020220026973A
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 KR1020220026973A priority Critical patent/KR20220043078A/en
Publication of KR20220043078A publication Critical patent/KR20220043078A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0215Addressing or allocation; Relocation with look ahead addressing means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

The present invention relates to an edge computing system for an efficient distribution processing. The edge computing system comprises: a data plane library; and an NIC driver. Therefore, the present invention is capable of providing the edge computing system for enhanced and efficient distribution processing.

Description

효율적인 분산처리를 위한 엣지 컴퓨팅 시스템 {Edge computing system for efficient distributed processing}Edge computing system for efficient distributed processing

본 발명은 컴퓨팅/프로세싱 기술에 관한 것이다.The present invention relates to computing/processing technology.

구체적으로, 본 발명은 효율적인 분산처리를 위한 엣지 컴퓨팅 시스템에 관한 것이다.Specifically, the present invention relates to an edge computing system for efficient distributed processing.

최근, 엣지 서버(edge server)를 이용하여 데이터를 전송하는 엣지 컴퓨팅(edge computing) 기술이 논의되고 있다. 엣지 컴퓨팅 기술은, 예를 들어, MEC(Multi-access Edge Computing) 또는 포그 컴퓨팅(fog computing, FOC)을 포함할 수 있다. 엣지 컴퓨팅 기술은 전자 장치와 지리적으로 가까운 위치, 예를 들어, 기지국 내부 또는 기지국 근처에 설치된 별도의 서버(이하, '엣지 데이터 네트워크' 또는 'MEC 서버'라 한다)를 통해 전자 장치로 데이터를 제공하는 기술을 의미할 수 있다. 예를 들어, 전자 장치에 설치된 적어도 하나의 애플리케이션 중 낮은 지연 시간(latency)을 요구하는 애플리케이션은 외부 데이터 네트워크(data network, DN)(예: 인터넷)에 위치한 서버를 통하지 않고, 지리적으로 가까운 위치에 설치된 엣지 서버를 통해 데이터를 송수신할 수 있다.Recently, an edge computing technology for transmitting data using an edge server is being discussed. Edge computing technology may include, for example, multi-access edge computing (MEC) or fog computing (FOC). Edge computing technology provides data to an electronic device through a location geographically close to the electronic device, for example, a separate server installed inside or near the base station (hereinafter referred to as 'edge data network' or 'MEC server') It can mean the skill to For example, an application requiring low latency among at least one application installed in the electronic device is located in a geographically close location without going through a server located in an external data network (DN) (eg, the Internet). Data can be sent and received through the installed edge server.

최근에는 엣지 컴퓨팅 기술을 이용한 서비스(이하, 'MEC 기반 서비스' 또는 'MEC 서비스'라 한다)에 관하여 논의되고 있으며, MEC 기반 서비스를 지원하도록 전자 장치에 관한 연구 및 개발이 진행되고 있다. 예를 들면, 전자 장치의 애플리케이션은 엣지 서버(또는 엣지 서버의 애플리케이션)와 애플리케이션 레이어(application layer) 상에서 엣지 컴퓨팅 기반 데이터를 송수신할 수 있다.Recently, services using edge computing technology (hereinafter, referred to as 'MEC-based services' or 'MEC services') have been discussed, and research and development of electronic devices to support MEC-based services are in progress. For example, an application of the electronic device may transmit/receive edge computing-based data to and from an edge server (or an application of the edge server) on an application layer.

MEC 기반 서비스를 지원하기 위한 연구 및 개발이 진행됨에 따라, MEC 기반 서비스를 제공하는 엣지 데이터 네트워크(edge data network)(예: MEC 서버)의 지연 시간(latency)을 단축시키기 위한 방안이 논의되고 있다. 예를 들어, 엣지 컴퓨팅 서비스를 이용하여 웹 서비스를 제공하는데 있어, 트래픽을 효과적으로 처리하기 위한 방법이 논의되고 있다.As research and development to support MEC-based services progress, methods for reducing the latency of edge data networks (eg, MEC servers) that provide MEC-based services are being discussed. . For example, in providing a web service using an edge computing service, a method for effectively processing traffic is being discussed.

국내등록특허 제10-2318642호 (2021.10.22)Domestic Registration Patent No. 10-2318642 (2021.110.22) 국내공개특허 제10-2021-0056180호 (2021.05.18)Domestic Patent Publication No. 10-2021-0056180 (2021.05.18) 미국공개특허 US 2021-0116966 A1 (2021.04.22)US Patent Publication US 2021-0116966 A1 (2021.04.22) 미국공개특허 US 2005-0008251 A1 (2005.01.13)US Patent Publication US 2005-0008251 A1 (2005.01.13) 일본공개특허 JP 1997-270005 A (1997.10.14)Japanese Laid-Open Patent JP 1997-270005 A (January 14, 1997)

본 발명의 일 실시예는 효율적인 분산처리를 위한 엣지 컴퓨팅 시스템을 제공하는데 그 목적이 있다.An embodiment of the present invention aims to provide an edge computing system for efficient distributed processing.

본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The technical problems to be achieved in the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by those of ordinary skill in the art to which the present invention belongs from the description below. will be able

본 발명은 효율적인 분산처리를 위한 엣지 컴퓨팅 시스템을 제안한다.The present invention proposes an edge computing system for efficient distributed processing.

상기한 바와 같은 목적을 달성하기 위하여, 본 발명에 따른 모바일 엣지 컴퓨팅을 위한 데이터처리장치는, 데이터 플랜 라이브러리(Data Plane Library); 상기 데이터 플랜 라이브러리를 이용하여 패킷 처리를 수행하는 NIC 드라이버를 포함하고,In order to achieve the above object, the data processing apparatus for mobile edge computing according to the present invention, a data plan library (Data Plane Library); a NIC driver that performs packet processing using the data plan library;

상기 데이터 플랜 라이브러리는 메모리 매니저(Memory Manager), 버퍼 매니저(Buffer Manager), 큐 매니저(Queue Manager), Flow classification, Poll mode Driver를 포함하는 것을 특징으로 한다.The data plan library is characterized in that it includes a memory manager, a buffer manager, a queue manager, a flow classification, and a poll mode driver.

본 발명의 일 실시예는 개선된(enhanced) 효율적인 분산처리를 위한 엣지 컴퓨팅 시스템을 제공할 수 있다.An embodiment of the present invention may provide an edge computing system for enhanced and efficient distributed processing.

본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects obtainable in the present invention are not limited to the above-mentioned effects, and other effects not mentioned may be clearly understood by those of ordinary skill in the art to which the present invention belongs from the following description. will be.

본 발명의 특정한 바람직한 실시예들의 상기에서 설명한 바와 같은 또한 다른 측면들과, 특징들 및 이득들은 첨부 도면들과 함께 처리되는 하기의 설명으로부터 보다 명백하게 될 것이다.
도 1은 본 발명에 따른 모바일 엣지 컴퓨팅을 위한 데이터처리장치의 전체 구성도이다.
도 2는 본 발명의 일 실시예를 나타내는 도면이다.
상기 도면들을 통해, 유사 참조 번호들은 동일한 혹은 유사한 엘리먼트들과, 특징들 및 구조들을 도시하기 위해 사용된다는 것에 유의해야만 한다.
Other aspects, features and benefits as set forth above of certain preferred embodiments of the invention will become more apparent from the following description taken in conjunction with the accompanying drawings.
1 is an overall configuration diagram of a data processing apparatus for mobile edge computing according to the present invention.
2 is a view showing an embodiment of the present invention.
It should be noted that throughout the drawings, like reference numerals are used to denote the same or similar elements, features, and structures.

이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

실시예를 설명함에 있어서 본 발명이 속하는 기술 분야에 익히 알려져 있고 본 발명과 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 발명의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다.In describing the embodiments, descriptions of technical contents that are well known in the technical field to which the present invention pertains and are not directly related to the present invention will be omitted. This is to more clearly convey the gist of the present invention without obscuring the gist of the present invention by omitting unnecessary description.

마찬가지 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시되었다. 또한, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 각 도면에서 동일한 또는 대응하는 구성요소에는 동일한 참조 번호를 부여하였다.For the same reason, some components are exaggerated, omitted, or schematically illustrated in the accompanying drawings. In addition, the size of each component does not fully reflect the actual size. In each figure, the same or corresponding elements are assigned the same reference numerals.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Advantages and features of the present invention, and a method for achieving them will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various different forms, and only these embodiments allow the disclosure of the present invention to be complete, and common knowledge in the technical field to which the present invention belongs It is provided to fully inform the possessor of the scope of the invention, and the present invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout.

이때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다.At this time, it will be understood that each block of the flowchart diagrams and combinations of the flowchart diagrams may be performed by computer program instructions.

이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다.These computer program instructions may be embodied in a processor of a general purpose computer, special purpose computer, or other programmable data processing equipment, such that the instructions performed by the processor of the computer or other programmable data processing equipment are not described in the flowchart block(s). It creates a means to perform functions.

이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.These computer program instructions may also be stored in a computer-usable or computer-readable memory that may direct a computer or other programmable data processing equipment to implement a function in a particular manner, and thus the computer-usable or computer-readable memory. It is also possible that the instructions stored in the flow chart block(s) produce an article of manufacture containing instruction means for performing the function described in the flowchart block(s). The computer program instructions may also be mounted on a computer or other programmable data processing equipment, such that a series of operational steps are performed on the computer or other programmable data processing equipment to create a computer-executed process to create a computer or other programmable data processing equipment. It is also possible that instructions for performing the processing equipment provide steps for performing the functions described in the flowchart block(s).

또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.Additionally, each block may represent a module, segment, or portion of code that includes one or more executable instructions for executing specified logical function(s). It should also be noted that in some alternative implementations it is also possible for the functions recited in blocks to occur out of order. For example, two blocks shown one after another may be performed substantially simultaneously, or the blocks may sometimes be performed in the reverse order according to a corresponding function.

이 때, 본 실시 예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(field-Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다.In this case, the term '~ unit' used in this embodiment means software or hardware components such as field-programmable gate array (FPGA) or ASIC (Application Specific Integrated Circuit), and '~ unit' refers to what role carry out the However, '-part' is not limited to software or hardware. '~' may be configured to reside on an addressable storage medium or may be configured to refresh one or more processors.

따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.Accordingly, as an example, '~' indicates components such as software components, object-oriented software components, class components, and task components, and processes, functions, properties, and procedures. , subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables. The functions provided in the components and '~ units' may be combined into a smaller number of components and '~ units' or further separated into additional components and '~ units'. In addition, components and '~ units' may be implemented to play one or more CPUs in a device or secure multimedia card.

본 발명의 실시예들을 구체적으로 설명함에 있어서, 특정 시스템의 예를 주된 대상으로 할 것이지만, 본 명세서에서 청구하고자 하는 주요한 요지는 유사한 기술적 배경을 가지는 여타의 통신 시스템 및 서비스에도 본 명세서에 개시된 범위를 크게 벗어나지 아니하는 범위에서 적용 가능하며, 이는 당해 기술분야에서 숙련된 기술적 지식을 가진 자의 판단으로 가능할 것이다.In describing embodiments of the present invention in detail, an example of a specific system will be the main subject, but the main subject matter of the present specification is to extend the scope disclosed herein to other communication systems and services having a similar technical background. It can be applied within a range that does not deviate significantly, and this will be possible at the discretion of a person with technical knowledge skilled in the art.

도 1은 본 발명의 바람직한 실시 예에 따른 모바일 엣지 컴퓨팅을 위한 데이터처리장치의 전체 구성도로서, 데이터 플랜 라이브러리(Data Plane Library), 상기 데이터 플랜 라이브러리를 이용하여 패킷 처리를 수행하는 NIC 드라이버를 포함하고, 상기 데이터 플랜 라이브러리는 메모리 매니저(Memory Manager), 버퍼 매니저(Buffer Manager), 큐 매니저(Queue Manager), Flow classification, Poll mode Driver를 포함한다.1 is an overall configuration diagram of a data processing apparatus for mobile edge computing according to a preferred embodiment of the present invention, including a data plan library and a NIC driver for performing packet processing using the data plan library. and, the data plan library includes a memory manager, a buffer manager, a queue manager, a flow classification, and a poll mode driver.

DPDK는 Data Plane Development Kit의 약자로, Intel 아키텍처 기반 고성능 패킷처리 최적화를 위한 시스템이다. DPDK는 크게 Data Plane Library들과 패킷 처리 최적화를 위한 NIC 드라이버의 집합으로 구성되어 있다.DPDK is an abbreviation of Data Plane Development Kit, a system for optimizing high-performance packet processing based on Intel architecture. DPDK is largely composed of Data Plane Libraries and a set of NIC drivers for packet processing optimization.

DPDK의 가장 큰 특징은 도 1에 도시한 바와 같이, 기존 리눅스 기반의 패킷처리과정과는 다르게 커널(kernel)에서 패킷처리과정을 거치는 게 아니라 애플리케이션(Customer Application)이 User Space의 Intel DPDK 라이브러리 API와 EAL(Environment Abstraction Layer)을 사용하여 리눅스 커널을 통과하여 직접 NIC에 엑세스 할 수 있는 통로를 제공한다는 것이다.As shown in Fig. 1, the biggest feature of DPDK is that, unlike the existing Linux-based packet processing process, it does not go through the packet processing process in the kernel, but rather the application (Customer Application) interacts with the Intel DPDK library API in User Space. It uses EAL (Environment Abstraction Layer) to provide a path through the Linux kernel to directly access the NIC.

또한, DPDK는 리눅스 User Space의 Data Plane API뿐만 아니라, 패킷처리에 최적화된 NIC 드라이버를 제공한다.In addition, DPDK provides NIC driver optimized for packet processing as well as Data Plane API of Linux User Space.

상기 DPDK 구성 요소인 라이브러리는 크게 Memory Manager, Buffer Manager, Queue Manager, Flow classification, Poll mode Driver로 나눌 수 있는데, 각 라이브러리들의 역할은 다음과 같다.The library, which is a component of the DPDK, can be largely divided into Memory Manager, Buffer Manager, Queue Manager, Flow classification, and Poll mode Driver. The roles of each library are as follows.

메모리 매니저(Memory Manager)는 메모리에서 객체들의 풀을 할당하는 기능을 수행하는데, 각 객체들의 풀은 huge page 메모리 공간에 생성되고, 사용 가능한 객체를 저장하기 위해서 Ring을 사용한다. 이러한 메모리 매니저는 객체들이 DRAM Channel에 균등하게 저장되고 객체들이 Padding되도록 보장하는 정렬 도움 기능을 제공한다.The memory manager performs the function of allocating a pool of objects in memory. Each object pool is created in a huge page memory space, and a Ring is used to store usable objects. This memory manager provides alignment assistance to ensure that objects are evenly stored in DRAM Channels and that objects are padded.

버퍼 매니저(Buffer Manager)는 OS가 버퍼를 할당하고 해제하는데 보내는 시간을 줄이기 위해, 메모리 풀에 저장되는 고정 길이의 버퍼들을 사전할당하여 관리한다.The buffer manager pre-allocates and manages fixed-length buffers stored in the memory pool to reduce the time the OS spends allocating and freeing buffers.

큐 매니저(Queue Manager)는 기존의 spinlock을 사용하는 대신에 서로 다른 소프트웨어 요소들이 네트워크 패킷을 병렬 처리할 때 불필요한 대기시간이 발생하지 않도록 하기 위해 안전한 lockless Queue를 구현한다.Instead of using the existing spinlock, the queue manager implements a secure lockless queue to prevent unnecessary latency when different software elements process network packets in parallel.

Flow Classification은 Intel 스트리밍 SIMD 확장 기술을 사용하여 네트워크 패킷 헤더에 대한 hash 정보를 효과적으로 생성하여, 네트워크 패킷들이 동일 flow에 할당되어 고속처리되도록 한다.Flow Classification uses Intel streaming SIMD extension technology to effectively generate hash information for network packet headers, so that network packets are allocated to the same flow and processed at high speed.

Poll Mode Driver는 기존의 비동기식 인터럽트를 기반으로 네트워크 패킷을 처리하는 대신에 최적화된 동기식 폴 모드 인터럽트 처리 루틴을 사용하여 패킷 파이프 라인 속도를 높인다.Instead of processing network packets based on traditional asynchronous interrupts, the Poll Mode Driver uses an optimized synchronous poll mode interrupt handling routine to speed up the packet pipeline.

도 2에 Poll Mode Driver의 구체적인 실시 예 아키텍처가 도시되어 있다.Fig. 2 shows the architecture of a specific embodiment of the Poll Mode Driver.

도 2에서, rte_timer는 Timer 기능을 수행한다 EAL에서 제공되는 타이머 인터페이스 기반으로 DPDK 실행 단위로 타이머 서비스를 제공한다. rte_malloc는 hugepages에 메모리 할당 기능을 수행하고, rte_mempool은 메모리에 있는 객체의 풀을 할당하는 기능을 수행하며, rte_eal + libc은 응용 프로그램 로딩, 메모리 할당, 시간 인터페이스, PCI 접근 및 로딩을 지원하는 기능을 수행한다. 아울러 rte_mbuf는 IP 트래픽 및 메시지 데이터 패킷의 버퍼를 지원하는 기능을 수행하며, rte_ring은 크기가 고정된 객체를 저장하거나 코어 사이의 통신을 허용하는 FIFO를 고정하는 기능을 수행한다.In FIG. 2, rte_timer performs a timer function. Based on the timer interface provided by the EAL, a timer service is provided in units of DPDK execution. rte_malloc allocates memory to hugepages, rte_mempool allocates a pool of objects in memory, and rte_eal + libc provides functions to support application loading, memory allocation, time interfaces, PCI access and loading. carry out In addition, rte_mbuf functions to support IP traffic and message data packet buffers, and rte_ring functions to store fixed-size objects or fix FIFOs that allow communication between cores.

본 명세서와 도면에 개시된 본 발명의 실시예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 즉 본 발명의 기술적 사상에 바탕을 둔 다른 변형예들이 실시 가능하다는 것은 본 발명의 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다. 또한 상기 각각의 실시예는 필요에 따라 서로 조합되어 운용할 수 있다. 예컨대, 본 발명의 모든 실시예는 일부분들이 서로 조합되어 본 발명의 시스템, 서버 및/또는 단말에 의해 구현될 수 있다.The embodiments of the present invention disclosed in the present specification and drawings are merely provided for specific examples to easily explain the technical content of the present invention and help the understanding of the present invention, and are not intended to limit the scope of the present invention. That is, it will be apparent to those of ordinary skill in the art to which the present invention pertains that other modifications are possible based on the technical spirit of the present invention. In addition, each of the above embodiments may be operated in combination with each other as needed. For example, all embodiments of the present invention may be implemented by the system, server and/or terminal of the present invention in parts in combination with each other.

또한, 본 발명의 시스템, 서버 및/또는 단말을 제어하는 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다.In addition, the method of controlling the system, server and/or terminal of the present invention may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium.

이와 같이, 본 발명의 다양한 실시예들은 특정 관점에서 컴퓨터 리드 가능 기록 매체(computer readable recording medium)에서 컴퓨터 리드 가능 코드(computer readable code)로서 구현될 수 있다. 컴퓨터 리드 가능 기록 매체는 컴퓨터 시스템에 의해 리드될 수 있는 데이터를 저장할 수 있는 임의의 데이터 저장 디바이스이다.As such, various embodiments of the present invention may be embodied as computer readable code on a computer readable recording medium in a particular aspect. A computer readable recording medium is any data storage device capable of storing data that can be read by a computer system.

컴퓨터 리드 가능 기록 매체의 예들은 읽기 전용 메모리(read only memory: ROM)와, 랜덤-접속 메모리(random access memory: RAM)와, 컴팩트 디스크- 리드 온니 메모리(compact disk-read only memory: CD-ROM)들과, 마그네틱 테이프(magnetic tape)들과, 플로피 디스크(floppy disk)들과, 광 데이터 저장 디바이스들, 및 캐리어 웨이브(carrier wave)들(인터넷을 통한 데이터 송신 등)을 포함할 수 있다.Examples of computer readable recording media include read only memory (ROM), random access memory (RAM), and compact disk-read only memory (CD-ROM). ), magnetic tapes, floppy disks, optical data storage devices, and carrier waves (such as data transmission over the Internet).

컴퓨터 리드 가능 기록 매체는 또한 네트워크 연결된 컴퓨터 시스템들을 통해 분산될 수 있고, 따라서 컴퓨터 리드 가능 코드는 분산 방식으로 저장 및 실행된다. 또한, 본 발명의 다양한 실시예들을 성취하기 위한 기능적 프로그램들, 코드, 및 코드 세그먼트(segment)들은 본 발명이 적용되는 분야에서 숙련된 프로그래머들에 의해 쉽게 해석될 수 있다.The computer readable recording medium may also be distributed over network coupled computer systems, so that the computer readable code is stored and executed in a distributed fashion. In addition, functional programs, codes, and code segments for achieving various embodiments of the present invention may be easily interpreted by programmers skilled in the field to which the present invention is applied.

또한 본 발명의 다양한 실시예들에 따른 장치 및 방법은 하드웨어, 소프트웨어 또는 하드웨어 및 소프트웨어의 조합의 형태로 실현 가능하다는 것을 알 수 있을 것이다. 이러한 소프트웨어는 예를 들어, 삭제 가능 또는 재기록 가능 여부와 상관없이, ROM 등의 저장 장치와 같은 휘발성 또는 비휘발성 저장 장치, 또는 예를 들어, RAM, 메모리 칩, 장치 또는 집적 회로와 같은 메모리, 또는 예를 들어 콤팩트 디스크(compact disk: CD), DVD, 자기 디스크 또는 자기 테이프 등과 같은 광학 또는 자기적으로 기록 가능함과 동시에 기계(예를 들어, 컴퓨터)로 읽을 수 있는 저장 매체에 저장될 수 있다.In addition, it will be appreciated that the apparatus and method according to various embodiments of the present invention can be realized in the form of hardware, software, or a combination of hardware and software. Such software may include, for example, a volatile or non-volatile storage device, such as a ROM, or a memory, such as, for example, RAM, a memory chip, device or integrated circuit, whether erasable or rewritable, or For example, the storage medium may be stored in an optically or magnetically recordable storage medium such as a compact disk (CD), a DVD, a magnetic disk, or a magnetic tape, and a machine (eg, computer) readable storage medium.

본 발명의 다양한 실시예들에 따른 방법은 제어부(제어 모듈(111, 221)) 및 메모리를 포함하는 컴퓨터 또는 휴대 단말에 의해 구현될 수 있고, 이러한 메모리는 본 발명의 실시예들을 구현하는 명령들을 포함하는 프로그램 또는 프로그램들을 저장하기에 적합한 기계로 읽을 수 있는 저장 매체의 한 예임을 알 수 있을 것이다. The method according to various embodiments of the present invention may be implemented by a computer or a mobile terminal including a control unit (control module 111, 221) and a memory, and such memory may execute instructions for implementing embodiments of the present invention. It will be appreciated that it is an example of a machine-readable storage medium suitable for storing a program or programs including the program.

따라서, 본 발명은 본 명세서의 청구항에 기재된 장치 또는 방법을 구현하기 위한 코드를 포함하는 프로그램 및 이러한 프로그램을 저장하는 기계(컴퓨터 등)로 읽을 수 있는 저장 매체를 포함한다. 또한, 이러한 프로그램은 유선 또는 무선 연결을 통해 전달되는 통신 신호와 같은 임의의 매체를 통해 전자적으로 이송될 수 있고, 본 발명은 이와 균등한 것을 적절하게 포함한다.Accordingly, the present invention includes a program including code for implementing the apparatus or method described in the claims of the present specification, and a machine (computer, etc.) readable storage medium storing such a program. Also, such a program may be transmitted electronically through any medium such as a communication signal transmitted through a wired or wireless connection, and the present invention suitably includes the equivalent thereof.

본 명세서와 도면에 개시된 본 발명의 실시 예들은 본 발명의 기술 내용을 쉽게 설명하고, 본 발명의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 또한 앞서 설명된 본 발명에 따른 실시예들은 예시적인 것에 불과하며, 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 범위의 실시예가 가능하다는 점을 이해할 것이다. The embodiments of the present invention disclosed in the present specification and drawings are merely provided for specific examples to easily explain the technical content of the present invention and help the understanding of the present invention, and are not intended to limit the scope of the present invention. In addition, the above-described embodiments according to the present invention are merely exemplary, and it will be understood by those skilled in the art that various modifications and equivalent ranges of embodiments are possible therefrom.

따라서, 본 발명의 진정한 기술적 보호 범위는 다음의 특허청구범위에 의해서 정해져야 할 것이다.Accordingly, the true technical protection scope of the present invention should be defined by the following claims.

Claims (1)

데이터 플랜 라이브러리(Data Plane Library); 및
상기 데이터 플랜 라이브러리를 이용하여 패킷 처리를 수행하는 NIC 드라이버; 를 포함하고,
상기 데이터 플랜 라이브러리는 메모리에서 객체들의 풀을 할당하는 기능을 수행하는 메모리 매니저(Memory Manager); OS가 버퍼를 할당하고 해제하는데 보내는 시간을 줄이기 위해, 메모리 풀에 저장되는 고정 길이의 버퍼들을 사전할당하여 관리하는 버퍼 매니저(Buffer Manager); 서로 다른 소프트웨어 요소들이 네트워크 패킷을 병렬 처리할 때 불필요한 대기시간이 발생하지 않도록 하기 위해 안전한 lockless Queue를 구현하는 큐 매니저(Queue Manager); Intel 스트리밍 SIMD 확장 기술을 사용하여 네트워크 패킷 헤더에 대한 hash 정보를 생성하여, 네트워크 패킷들이 동일 flow에 할당되어 고속처리되도록 하는 Flow Classification; 동기식 폴 모드 인터럽트 처리 루틴을 사용하여 패킷 파이프 라인 속도를 높이는 Poll Mode Driver를 포함하는 것을 특징으로 하는 시스템.
Data Plane Library; and
a NIC driver for performing packet processing using the data plan library; including,
The data plan library may include: a memory manager for allocating a pool of objects in memory; a buffer manager that pre-allocates and manages buffers of a fixed length stored in the memory pool in order to reduce the time the OS spends allocating and releasing buffers; A queue manager that implements a secure lockless queue to prevent unnecessary waiting time when different software elements process network packets in parallel; Flow Classification, which uses Intel streaming SIMD extension technology to generate hash information for network packet headers, so that network packets are allocated to the same flow and processed at high speed; A system comprising a Poll Mode Driver that uses a synchronous poll mode interrupt handling routine to speed up the packet pipeline.
KR1020220026973A 2022-03-02 2022-03-02 Edge computing system for efficient distributed processing KR20220043078A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220026973A KR20220043078A (en) 2022-03-02 2022-03-02 Edge computing system for efficient distributed processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220026973A KR20220043078A (en) 2022-03-02 2022-03-02 Edge computing system for efficient distributed processing

Publications (1)

Publication Number Publication Date
KR20220043078A true KR20220043078A (en) 2022-04-05

Family

ID=81182266

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220026973A KR20220043078A (en) 2022-03-02 2022-03-02 Edge computing system for efficient distributed processing

Country Status (1)

Country Link
KR (1) KR20220043078A (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09270005A (en) 1996-04-03 1997-10-14 Matsushita Electric Ind Co Ltd Edge picture processor and its method
US20050008251A1 (en) 2003-05-17 2005-01-13 Stmicroelectronics Asia Pacific Pte Ltd. Edge enhancement process and system
US20210116966A1 (en) 2018-05-02 2021-04-22 Hewlett-Packard Development Company, L.P. Display modules for computing devices
KR20210056180A (en) 2019-11-08 2021-05-18 삼성전자주식회사 Method and apparatus for providing web service using edge computing service
KR102318642B1 (en) 2021-04-16 2021-10-28 (주)엠제이티 Online platform using voice analysis results

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09270005A (en) 1996-04-03 1997-10-14 Matsushita Electric Ind Co Ltd Edge picture processor and its method
US20050008251A1 (en) 2003-05-17 2005-01-13 Stmicroelectronics Asia Pacific Pte Ltd. Edge enhancement process and system
US20210116966A1 (en) 2018-05-02 2021-04-22 Hewlett-Packard Development Company, L.P. Display modules for computing devices
KR20210056180A (en) 2019-11-08 2021-05-18 삼성전자주식회사 Method and apparatus for providing web service using edge computing service
KR102318642B1 (en) 2021-04-16 2021-10-28 (주)엠제이티 Online platform using voice analysis results

Similar Documents

Publication Publication Date Title
US11962518B2 (en) Hardware acceleration techniques using flow selection
EP3748926B1 (en) Communication method and apparatus
US9176794B2 (en) Graphics compute process scheduling
US9935899B2 (en) Server switch integration in a virtualized system
US8874802B2 (en) System and method for reducing communication overhead between network interface controllers and virtual machines
US10037222B2 (en) Virtualization of hardware accelerator allowing simultaneous reading and writing
US7996484B2 (en) Non-disruptive, reliable live migration of virtual machines with network data reception directly into virtual machines' memory
US9146785B2 (en) Application acceleration in a virtualized environment
US9176795B2 (en) Graphics processing dispatch from user mode
US20120229481A1 (en) Accessibility of graphics processing compute resources
US20170024309A1 (en) Managing software performance tests based on a distributed virtual machine system
US20100191923A1 (en) Data Processing In A Computing Environment
US20160285970A1 (en) Network communication between virtual machine applications via direct memory access
WO2015010584A1 (en) Operating system virtualization for host channel adapters
CN113407298A (en) Method, device and equipment for realizing message signal interruption
CN110874336B (en) Distributed block storage low-delay control method and system based on Shenwei platform
US20120194526A1 (en) Task Scheduling
CN113296691B (en) Data processing system, method and device and electronic equipment
KR20220043078A (en) Edge computing system for efficient distributed processing
US9170820B2 (en) Syscall mechanism for processor to processor calls
US6986017B2 (en) Buffer pre-registration
US9430034B2 (en) Data communication on a virtual machine
US10284501B2 (en) Technologies for multi-core wireless network data transmission
US12014197B2 (en) Offloading packet processing programs from virtual machines to a hypervisor and efficiently executing the offloaded packet processing programs
CN118034958B (en) Task state notification system and method for multi-process scene

Legal Events

Date Code Title Description
G15R Request for early publication