KR100807039B1 - Asymmetric multiprocessing system and method thereof - Google Patents

Asymmetric multiprocessing system and method thereof Download PDF

Info

Publication number
KR100807039B1
KR100807039B1 KR1020060031806A KR20060031806A KR100807039B1 KR 100807039 B1 KR100807039 B1 KR 100807039B1 KR 1020060031806 A KR1020060031806 A KR 1020060031806A KR 20060031806 A KR20060031806 A KR 20060031806A KR 100807039 B1 KR100807039 B1 KR 100807039B1
Authority
KR
South Korea
Prior art keywords
specialized
task
job
processing
processing unit
Prior art date
Application number
KR1020060031806A
Other languages
Korean (ko)
Other versions
KR20070040287A (en
Inventor
주문돈
안수환
Original Assignee
주식회사 퓨쳐시스템
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 퓨쳐시스템 filed Critical 주식회사 퓨쳐시스템
Priority to KR1020060031806A priority Critical patent/KR100807039B1/en
Publication of KR20070040287A publication Critical patent/KR20070040287A/en
Application granted granted Critical
Publication of KR100807039B1 publication Critical patent/KR100807039B1/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, look ahead
    • 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

Abstract

본 발명은 순차적인 작업들로 구성된 복수의 작업군을 처리하기 위한 비대칭 다중 프로세싱 시스템 및 그 방법에 관한 것이다. 보다 상세하게는 복수의 중앙처리장치를 이용하여 순차적인 작업들로 구성된 복수의 작업군을 처리하는 다중 프로세싱 시스템에 있어서, 제1 작업군의 작업들을 순차적으로 확인하여 특화 작업을 선별하고 상기 특화 작업은 제1 중앙처리장치를 이용하여 처리하고, 상기 특화 작업을 처리하는 동안에는 제2 중앙처리장치를 이용하여 제2 작업군의 특화 작업으로 선별되지 않은 일반 작업을 처리하다가, 상기 특화 작업이 처리되면 제2 중앙처리장치를 이용하여 상기 제1 작업군 내의 상기 특화 작업의 다음 순서의 일반 작업을 순차적으로 처리하는 것을 특징으로 하는 다중 프로세싱 시스템에 관한 것이다.The present invention relates to an asymmetric multiple processing system and method for processing a plurality of work groups consisting of sequential tasks. More specifically, in a multi-processing system for processing a plurality of work groups consisting of sequential tasks using a plurality of central processing unit, the task of the first task group is sequentially identified to select a specialized job and the specialized job Is processed using the first central processing unit, and during the processing of the specialized job, the general job not selected as the specialized job of the second working group is processed using the second central processing unit, and when the specialized job is processed, It relates to a multi-processing system, characterized in that for sequentially processing the general task of the next order of the specialized task in the first group of tasks using a second central processing unit.

비대칭 다중 프로세싱, AMP, 다중 프로세서 시스템, Asymmetric multiprocessing, AMP, multiprocessor systems,

Description

비대칭 다중 프로세싱 시스템 및 그 방법 {ASYMMETRIC MULTIPROCESSING SYSTEM AND METHOD THEREOF}Asymmetric multiprocessing system and its method {ASYMMETRIC MULTIPROCESSING SYSTEM AND METHOD THEREOF}

도 1은 대칭 다중 프로세싱 시스템을 이용하여 구현한 VPN 장치의 일례를 도시한 도면이다.1 is a diagram illustrating an example of a VPN device implemented using a symmetric multiprocessing system.

도 2는 두 개의 중앙처리장치를 사용하는 대칭 다중 프로세싱 시스템 및 하나의 중앙처리장치를 사용하는 시스템에 있어서 커널 코드(Kernel Code)를 실행하는 성능의 차이에 대해서 도시한 도면이다.FIG. 2 is a diagram illustrating a difference in performance of executing kernel code in a symmetric multiprocessing system using two CPUs and a system using one CPU.

도 3은 비대칭 다중 프로세싱 시스템을 이용하여 구현한 VPN 장치의 일례를 도시한 도면이다.3 is a diagram illustrating an example of a VPN device implemented using an asymmetric multiprocessing system.

도 4는 본 발명의 일실시예 따른 비대칭 다중 프로세싱 시스템의 내부 구성을 도시한 도면이다.4 is a diagram illustrating an internal configuration of an asymmetric multiple processing system according to an embodiment of the present invention.

도 5는 본 발명에 따른 일실시예로 비대칭 다중 프로세싱 시스템에서 특화 작업을 할당하는데 있어서 큐(Queue)를 사용하는 구성을 도시한 도면이다.FIG. 5 is a diagram illustrating a configuration of using a queue in assigning a specialized task in an asymmetric multiprocessing system according to an embodiment of the present invention.

도 6은 본 발명에 따른 일실시예로 비대칭 다중 프로세싱 시스템에서 특화 작업을 할당하는데 있어서 큐(Queue)를 사용하는 경우에 특화 작업 처리부의 흐름을 도시한 흐름도이다.6 is a flowchart illustrating a flow of a specialized task processing unit when a queue is used to allocate a specialized task in an asymmetric multiprocessing system according to an embodiment of the present invention.

도 7은 본 발명에 따른 일실시예로 비대칭 다중 프로세싱 시스템에서 특화 작업을 할당하는데 있어서 인터럽트(Interrupt)를 사용하는 구성을 도시한 도면이다.FIG. 7 is a diagram illustrating a configuration of using an interrupt in assigning a specialized task in an asymmetric multiprocessing system according to an embodiment of the present invention.

도 8은 본 발명의 일실시예에 따라 비대칭 다중 프로세싱 시스템을 이용하여 구현한 VPN 장치의 성능을 도시한 도면이다.8 is a diagram illustrating the performance of a VPN device implemented using an asymmetric multiprocessing system according to an embodiment of the present invention.

도 9은 본 발명의 일실시예에 따른 비대칭 다중 프로세싱 방법의 흐름을 도시한 흐름도이다.9 is a flowchart illustrating a flow of an asymmetric multiprocessing method according to an embodiment of the present invention.

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

410: 특화 작업 선별부410: specialized work sorting unit

420: 특화 작업 처리부420: specialized work processing unit

430: 일반 작업 처리부430: general job processing unit

440: 비대칭 프로세싱 설정부440: asymmetric processing settings

본 발명은 순차적인 작업들로 구성된 복수의 작업군을 처리하기 위한 비대칭 다중 프로세싱 시스템 및 그 방법에 관한 것이다. 보다 상세하게는, 복수의 중앙처리장치를 이용하여 순차적인 작업들로 구성된 복수의 작업군을 처리하는 다중 프로세싱 시스템에 있어서, 상기 복수의 작업군의 작업들 중에서 선별된 특화 작업 및 특화 작업으로 선별되지 않은 일반 작업을 서로 다른 중앙처리장치가 동시에 처리하도록 함으로써 효율적으로 동작하도록 하는 비대칭 다중 프로세싱 시스템 및 그 방법에 관한 것이다.The present invention relates to an asymmetric multiple processing system and method for processing a plurality of work groups consisting of sequential tasks. More specifically, in a multi-processing system for processing a plurality of work groups consisting of sequential jobs using a plurality of central processing unit, screening with a specialized job and a specialized job selected from the jobs of the plurality of work groups Asymmetric multi-processing system and method for efficient operation by allowing different central processing units to process non-generic tasks simultaneously.

최근 중앙처리장치(CPU)의 연산 처리 속도가 급격히 높아지고, 메모리(Memory)의 저장 용량이 기하급수적으로 늘어나면서 컴퓨터의 성능이 매우 향상되었다. 하지만 메모리의 성능 향상과는 다르게 중앙처리장치의 연산 처리 속도는 선형적으로 증가시키기 힘든 특성이 있다. 이는 주파수가 기가헤르츠(GHz) 급으로 높아지면서 기존의 메가헤르츠(MHz)급 회로와는 다른 회로 해석 및 설계가 필요하고 열을 제어해야 하는 문제점도 발생하기 때문이다.Recently, the computational processing speed of the CPU has sharply increased, and the storage capacity of the memory has increased exponentially, which greatly improves the performance of the computer. However, unlike memory performance improvement, the processing speed of the central processing unit is difficult to increase linearly. This is because the frequency increases to the gigahertz (GHz) level, which requires circuit analysis and design that is different from the conventional megahertz (MHz) class circuit, and also requires the problem of controlling the heat.

따라서 최근에는 하나의 중앙처리장치의 연산 처리 속도 향상에 의존하지 않고 두 개 이상의 중앙처리장치를 하나의 컴퓨터에 연결하거나, 하나의 중앙처리장치 안에 연산 처리를 담당하는 코어(Core)가 두 개 이상 포함된 중앙처리장치를 이용하는 방법을 사용하게 되었다. 일반적으로 상기한 바와 같이 두 개 이상의 중앙처리장치를 포함하는 시스템은 슈퍼 컴퓨터나 특별한 용도로 설계된 대용량 컴퓨터를 제외하고는 두 개 이상의 중앙처리장치가 하나의 운영체제(Operating System)에 의하여 통제되며, 운영체제에서 할당하는 일을 대칭적으로 수행한다. 상기와 같은 구성을 대칭 다중 프로세싱 시스템(Symmetric Multi Processing System)이라 한다.Therefore, recently, two or more CPUs are connected to one computer or two or more cores are in charge of processing in one CPU, without relying on the processing speed of one CPU. The method using the included central processing unit has been used. In general, as described above, a system including two or more CPUs is controlled by one operating system except for a super computer or a large computer designed for a specific purpose. Symmetrically Such a configuration is called a symmetric multi processing system.

한편, 최근 기업체 내부에서 본사, 국내 지사, 해외 지사 및 공장 사이에서 데이터를 주고받기 위하여 설치하는 사설망(Private Network)을 보다 저렴한 가격으로 대체할 수 있는 VPN(Virtual Private Network: 가상 사설망)이 많이 사용되고 있다. VPN(Virtual Private Network)이란 인터넷과 같은 Public Switched Network 상에서 물리적인 네트워크의 구성과 무관하게 논리적으로 폐쇄된 사용자 그룹을 구 성하여 다양한 기능의 서비스를 제공하기 위하여 제안된 새로운 네트워크의 한 형태이다. 물리적으로 새로운 전용선을 설치하는 것이 아니라 기존의 공공 망을 이용하기 때문에 저렴한 비용으로 전용선을 설치한 것과 같은 효과를 얻을 수 있다는 장점이 있다,Recently, a VPN (Virtual Private Network), which can replace a private network installed to exchange data between the head office, a domestic branch office, an overseas branch office, and a factory at a lower price, is widely used in a company. have. VPN (Virtual Private Network) is a new type of network proposed to provide various functions by forming logically closed user groups regardless of physical network configuration on public switched networks such as the Internet. It is advantageous to use the existing public network rather than physically installing a new leased line, so that the same effect as installing a leased line can be obtained at a low cost.

VPN을 제공하기 위해서는 VPN 장치가 필요한데, VPN 장치는 불특정 다수가 사용하는 공공의 인터넷 망을 통하여 소정의 서버로 데이터를 전송하는데 있어서, 마치 전용선이 설치되어있는 것과 동일한 효과를 얻을 수 있도록 데이터 패킷(Packet)을 처리해 주는 장치이다. 공공의 망을 이용하여 패킷을 전송하기 때문에 VPN 장치에서는 패킷의 보안이 가장 큰 문제가 될 수 있으며, 보안을 위해서 패킷에 대한 암호화 및 복호화 모듈이 내장되어 있다. 또한, 전용선이 설치된 것처럼 빠른 전송 및 응답이 가능하기 위해서 VPN 장치는 빠른 처리속도를 요구하며, 빠른 처리속도를 위하여 상기한 다중 프로세싱 시스템을 이용하여 VPN 장치를 구현하는 것이 논의되고 있다.In order to provide a VPN, a VPN device is required. The VPN device transmits data to a predetermined server through a public Internet network used by an unspecified number of users. Packet). Since a packet is transmitted using a public network, the security of a packet may be the biggest problem in a VPN device, and an encryption and decryption module for a packet is built in for security. In addition, in order to enable fast transmission and response as if a dedicated line is installed, a VPN device requires a fast processing speed, and in order to enable a fast processing speed, the implementation of a VPN device using the above-described multiple processing system has been discussed.

도 1은 두 개의 중앙처리장치를 가지는 대칭 다중 프로세싱 시스템을 이용하여 구현한 VPN 장치의 일례를 도시한 도면이다.FIG. 1 is a diagram illustrating an example of a VPN device implemented using a symmetric multiprocessing system having two central processing units.

도면에 도시한 바와 같이 두 개의 중앙처리장치(110)는 하나의 운영체제의 커널 코드(Kernel Code)를 공유하면서 수행하기 때문에, 제1 중앙처리장치가 커널 코드(Kernel Code) 내에서 사용되는 주요 커널 변수와 같이 시스템에서 중요한 부분(Critical Session)에 접근(Access)하는 경우에는 제2 중앙처리장치가 상기 중요한 부분에 접근할 수 없도록 방지 장치(Lock)를 해야 한다. 따라서 제2 중앙처리 장치가 중요한 부분에 접근하기 위해서는 제1 중앙처리장치가 동작을 완료할 때까지 대기해야 하기 때문에, 연산이 늦어질 수 있다. 특히 도면과 같이, VPN 장치의 경우에는 두 개의 중앙처리장치(110)가 VPN 장치에서 시스템 부하가 가장 큰 부분인 암호화 라이브러리 및 패턴 라이브러리(120)를 공유하면서 수행하기 때문에, 두 개의 중앙처리장치를 사용하지 않는 경우에 비하여 성능향상을 기대하기 어렵다.As shown in the figure, since the two CPUs 110 execute and share a kernel code of one operating system, the first kernel is used in the kernel code. If a critical session of the system, such as a variable, is accessed, a second CPU must be locked to prevent access to the critical part. Therefore, the operation may be delayed because the second central processing unit must wait until the first central processing unit completes the operation in order to access the important part. In particular, in the case of a VPN device, since the two CPUs 110 share the encryption library and the pattern library 120, which are the largest parts of the system load in the VPN device, the two CPUs are executed. It is hard to expect performance improvement compared to the case where it is not used.

도 2는 두 개의 중앙처리장치를 사용하는 대칭 다중 프로세싱 시스템 및 하나의 중앙처리장치를 사용하는 시스템에 있어서 커널 코드(Kernel Code)를 실행하는 성능의 차이에 대해서 도시한 도면이다.FIG. 2 is a diagram illustrating a difference in performance of executing kernel code in a symmetric multiprocessing system using two CPUs and a system using one CPU.

도면번호(210)에 도시한 바와 같이 인텔(Intel)사의 최신 중앙처리장치인 제온(Xeon) 1.8GHz를 사용한 경우에는 하나의 중앙처리장치를 사용하는 것 보다 두 개의 중앙처리장치를 사용하는 경우에 오히려 24%의 성능 저하가 있었다. 또한 도면번호(220)에 도시한 바와 같이 인텔(Intel)사의 기존의 중앙처리장치인 펜티엄3(Pentium III) 733MHz를 사용한 경우에는 하나의 중앙처리장치를 사용하는 것과 거의 동일한 성능을 보였다. 도 2의 실험 결과는 제온 중앙처리장치가 펜티엄3 중앙처리장치보다 더 많은 단계의 파이프라인(pipeline)을 사용하기 때문에 커널의 방지 장치(Lock)에 의하여 파이프라인이 깨지는 경우의 부가 비용(overhead)이 더 크기 때문이다.As shown in reference numeral 210, in case of using Xeon 1.8GHz, which is the latest CPU of Intel, the case of using two CPUs rather than using one CPU Rather, there was a 24% performance penalty. In addition, as shown in the reference numeral 220, in the case of using the Pentium III (Pentium III) 733MHz, the existing central processing unit of Intel (Intel) showed almost the same performance as using one central processing unit. The experimental result of FIG. 2 shows that the Xeon central processing unit uses more pipelines than the Pentium 3 central processing unit, so that the overhead of the pipeline breaking due to the lock of the kernel. Because this is bigger.

상기의 실험 결과와 같이 커널 코드(Kernel Code)를 많이 사용하는 시스템에 있어서는 대칭 다중 프로세싱 시스템은 오히려 하나의 중앙처리장치를 사용하는 시스템보다도 성능이 떨어진다는 문제점이 발생한다. 이러한 문제점은 두 개 이상의 중앙처리장치가 하나의 커널 코드(Kernel Code)를 공유하기 때문에 발생하는 것이다.As described above, in a system using a large number of kernel codes, a symmetric multiprocessing system has a problem in that performance is lower than a system using a single central processing unit. This problem occurs because two or more CPUs share one kernel code.

따라서, 제1 중앙처리장치만 커널 코드(Kernel Code)를 수행하고 제2 중앙처리장치는 커널 코드(Kernel Code)를 수행하지 않다가, 제1 중앙처리장치에서 수행되는 프로그램이 I/O 작업이 없고 연산 처리로만 이루어진 작업을 제2 중앙처리장치로 할당하면 제2 중앙처리장치는 할당된 작업만을 수행하도록 한다면, 상기한 문제점이 해결될 수 있을 것이다. 특히 VPN 장치는 패킷을 처리하는 순차적인 작업들로 구성되어 있으며, 이중에서 암호화, 복호화 및 패턴 매칭 작업은 연산 처리가 그 중심이 되는 작업이므로, 상기한 바와 같이 두 개 이상의 중앙처리장치가 비대칭적으로 동작하도록 시스템을 구성한다면, 시스템의 성능 향상을 기대할 수 있을 것이다. 이에, 본 발명에서는 VPN 장치를 위한 시스템에 있어서, 두 개 이상의 중앙처리장치를 포함하는 다중 프로세싱 시스템에서 제1 중앙처리장치와 제2 중앙처리장치가 비대칭적으로 동작하도록 하여 보다 효율적으로 동작할 수 있도록 하는 시스템 및 그 방법에 관한 새로운 기술을 제안하고자 한다.Therefore, only the first CPU executes the kernel code and the second CPU does not execute the kernel code. Thus, a program executed in the first CPU executes an I / O operation. If a task consisting only of arithmetic processing is assigned to the second central processing unit and the second central processing unit performs only the assigned task, the above problem may be solved. In particular, the VPN device is composed of sequential tasks for processing a packet. Among them, encryption, decryption, and pattern matching are operations in which arithmetic processing is central, and as described above, two or more CPUs are asymmetric. If you configure your system to work with Windows, you can expect to improve the system's performance. Accordingly, in the present invention, in the system for the VPN device, the first central processing unit and the second central processing unit in the multi-processing system including two or more central processing units to operate asymmetrically to operate more efficiently. We propose a new technology for the system and method thereof.

본 발명은 상기와 같은 종래기술을 개선하기 위해 안출된 것으로서, 두 개 이상의 중앙처리장치를 가지는 다중 프로세싱 시스템을 사용하는데 있어서 커널의 중요 부분(Critical Session)에 대한 방지 장치(Lock)로 인한 시간 지연을 줄여 보다 효율적으로 시스템을 사용할 수 있도록 하는 것을 목적으로 한다.SUMMARY OF THE INVENTION The present invention has been made to improve the prior art as described above, and has a time delay due to a lock on a critical session of a kernel in using a multiple processing system having two or more central processing units. It aims to reduce the cost and make the system more efficient.

본 발명의 또 다른 목적은 비대칭적으로 동작하도록 설계된 고가의 장비를 구입하지 않고, 두 개 이상의 중앙처리장치가 포함된 서버 장치를 이용하여 구현함으로써, 저렴한 가격으로 향상된 성능을 제공하는 것이다.Still another object of the present invention is to provide an improved performance at a low cost by implementing a server device including two or more central processing units without purchasing expensive equipment designed to operate asymmetrically.

본 발명의 또 다른 목적은 비대칭 프로세싱 설정부의 간단한 동작으로 대칭 다중 프로세싱 시스템이 비대칭 다중 프로세싱 시스템으로 용이하게 변환되도록 하는 것이다.It is still another object of the present invention to allow a simple operation of the asymmetric processing setting unit so that the symmetric multiple processing system can be easily converted into an asymmetric multiple processing system.

본 발명의 또 다른 목적은 특화 작업을 할당하는데 있어서 큐(Queue)를 사용함으로써 다양한 모듈(Module)로 분류된 구조의 경우에도 비대칭적으로 시스템을 사용할 수 있도록 하는 것이다.It is another object of the present invention to use a system to allocate a specialized job, so that a system can be used asymmetrically even in a case of a structure classified into various modules.

본 발명의 또 다른 목적은 특화 작업을 할당하는데 있어서 인터럽트(Interrupt)를 사용함으로써 실시간으로 빠르게 특화 작업을 처리할 수 있도록 하는 것이다.It is still another object of the present invention to use an interrupt in assigning a specialized task so that the specialized task can be processed quickly in real time.

상기의 목적을 이루고 종래기술의 문제점을 해결하기 위하여, 본 발명의 일실시예에 따른 복수의 중앙처리장치를 이용하여 순차적인 작업들로 구성된 복수의 작업군을 처리하는 다중 프로세싱 시스템은 상기 복수의 작업군의 작업들을 순차적으로 확인하여 특화 작업을 선별하는 특화 작업 선별부, 상기 특화 작업으로 선별되지 않은 일반 작업을 제1 중앙처리장치를 이용하여 처리하는 일반 작업 처리부 및 상기 선별된 특화 작업을 제2 중앙처리장치를 이용하여 처리하는 특화 작업 처리부상기 일반 작업 처리부는 상기 특화 작업 처리부에서 제1 작업군 내의 특화 작업을 처리하는 동안 제2 작업군의 일반 작업을 처리하고, 상기 특화 작업 처리부 에서 상기 제1 작업군 내의 특화 작업을 완료하면, 상기 제1 작업군 내의 상기 완료된 특화 작업의 다음 순서의 일반 작업을 순차적으로 처리하는 것을 특징으로 한다.In order to achieve the above object and solve the problems of the prior art, a multi-processing system for processing a plurality of work groups consisting of sequential tasks using a plurality of central processing unit according to an embodiment of the present invention is a plurality of A specialized job sorting unit configured to sequentially check the jobs of the work group to select specialized jobs, a general job processing unit which processes general jobs not sorted by the specialized jobs by using a first central processing unit, and the selected specialized jobs; 2 The specialized job processing unit processing by using the central processing unit The general job processing unit processes the general job of the second working group while the specialized job processing unit processes the special job in the first job group, and the special job processing unit Upon completion of the specialized task in the first working group, following the completed specialized task in the first working group; It characterized by processing the normal operation of the stand by one.

또한 본 발명의 일실시예에 따른 복수의 중앙처리장치를 이용하여 순차적인 작업들로 구성된 복수의 작업군을 처리하는 다중 프로세싱 방법은 상기 복수의 작업군의 작업들을 순차적으로 확인하여 특화 작업을 선별하는 단계, 상기 특화 작업으로 선별되지 않은 일반 작업을 제1 중앙처리장치를 이용하여 처리하는 단계 및 상기 선별된 특화 작업을 제2 중앙처리장치를 이용하여 처리하는 특화 작업 단계를 포함하고, 상기 일반 작업을 처리하는 단계에서는 상기 특화 작업을 처리하는 단계에서 제1 작업군 내의 특화 작업을 처리하는 동안 제2 작업군의 일반 작업을 처리하고, 상기 특화 작업을 처리하는 단계에서 상기 제1 작업군 내의 특화 작업을 완료하면, 상기 제1 작업군 내의 상기 완료된 특화 작업의 다음 순서의 일반 작업을 순차적으로 처리하는 것을 특징으로 한다.In addition, the multi-processing method for processing a plurality of work groups consisting of sequential jobs using a plurality of central processing unit according to an embodiment of the present invention screens the jobs of the plurality of work groups in order to select a specialized job And a step of processing a general job not selected by the specialized job using a first central processing unit, and a specialized job step of processing the selected specialized job using a second central processing unit. In the processing of the specialized task, the general task of the second working group is processed while the specialized task in the first working group is processed in the processing of the specialized task, and the processing of the specialized task is performed in the first working group. Upon completion of the specialized task, the general task of the next order of the completed specialized task in the first task group is sequentially processed. It is characterized by.

이하, 첨부된 도면들을 참조하여 본 발명에 따른 비대칭 다중 프로세싱 시스템 및 그 방법에 대해 상세히 설명한다.Hereinafter, an asymmetric multiple processing system and method thereof according to the present invention will be described in detail with reference to the accompanying drawings.

도 3은 비대칭 다중 프로세싱 시스템을 이용하여 구현한 VPN 장치의 일례를 도시한 도면이다.3 is a diagram illustrating an example of a VPN device implemented using an asymmetric multiprocessing system.

도 1에 도시된, 대칭 다중 프로세싱 시스템을 이용하여 구현한 VPN 장치에서는 제1 중앙처리장치 및 제2 중앙처리장치가 동일한 커널 코드를 실행하였던 것과 달리, 도 3에 도시된 비대칭 다중 프로세싱 시스템을 이용한 VPN 장치는 제1 중앙 처리장치(310)만 커널 코드를 실행하고, 제2 중앙처리장치는 암호화 엔진 및 패턴 엔진(330)을 실행한다.In the VPN device implemented using the symmetric multiprocessing system shown in FIG. 1, unlike the first and second CPUs executing the same kernel code, the asymmetric multiprocessing system shown in FIG. 3 is used. The VPN device executes kernel code only in the first CPU 310, and the second CPU executes the encryption engine and the pattern engine 330.

즉, 기존의 대칭 다중프로세싱 시스템을 이용하여 구현한 VPN 장치에서는 암호화 엔진 및 패턴 엔진을 포함하는 모든 모듈이 커널 위에서 동작하였으며, 두 개의 중앙처리장치가 돌아가면서 그 작업을 대등하게 처리한 반면, 본 발명에 따른 비대칭 다중 프로세싱 시스템을 이용하여 구현한 VPN 장치에서는 암호화 엔진 및 패턴 엔진(330)은 커널 코드와 관계 없이 제2 중앙처리장치(320)를 이용하여 동작한다. LAN Driver, Firewall/VPN, IP Stack 등의 커널 코드를 이용하는 모듈과 달리 암호화 엔진 및 패턴 엔진(330)은 커널 코드가 없이도 동작할 수 있는 모듈이기 때문에 암호화 엔진 및 패턴 엔진(330)은 커널 코드를 실행하지 않는 제2 중앙처리장치(320)를 이용하여 동작할 수 있다. 따라서 커널 코드는 제1 중앙처리장치를 이용하는 모듈에서만 사용되므로 커널 코드의 중요한 부분(Critical Session)에 대한 방지 장치(Lock)가 없어도 문제가 생기지 않고, 결국 방지 장치(Lock)로 인하여 발생하는 시간 지연이 없어지므로 시스템 전체 성능 향상을 기대할 수 있다.In other words, in the VPN device implemented using the existing symmetric multiprocessing system, all the modules including the encryption engine and the pattern engine ran on the kernel, and the two central processing units rotated and processed the tasks equally. In the VPN device implemented using the asymmetric multiprocessing system according to the present invention, the encryption engine and the pattern engine 330 operate using the second CPU 320 regardless of the kernel code. Unlike modules that use kernel codes such as LAN Driver, Firewall / VPN, and IP Stack, the encryption engine and pattern engine 330 are modules that can operate without kernel code. The second CPU 320 may not operate. Therefore, since the kernel code is used only in the module using the first central processing unit, there is no problem even if there is no lock for the critical session of the kernel code, and thus the time delay caused by the lock. This eliminates the need for improved overall system performance.

도 4는 본 발명의 일실시예 따른 비대칭 다중 프로세싱 시스템의 내부 구성을 도시한 도면이다. 도면에 도시한 바와 같이, 본 발명의 일실시예에 따른 비대칭 다중 프로세싱 시스템(401)은 특화 작업 선별부(410), 특화 작업 처리부(420) 및 일반 작업 처리부를 포함하고, 경우에 따라서 비대칭 프로세싱 설정부(440)를 더 포함할 수 있다. . 이하, 각 구성요소 별로 그 기능을 상술하기로 한다.4 is a diagram illustrating an internal configuration of an asymmetric multiple processing system according to an embodiment of the present invention. As shown in the figure, an asymmetric multiprocessing system 401 according to an embodiment of the present invention includes a specialized job selection unit 410, a specialized job processing unit 420, and a general job processing unit, and in some cases asymmetric processing The setting unit 440 may further include. . Hereinafter, the function of each component will be described in detail.

특화 작업 선별부(410)는 제1 작업군의 작업들을 순차적으로 확인하여 특화 작업을 선별한다. 상기 작업군은 복수의 작업들이 순차적으로 연결되어 구성된 것으로, 하나의 작업이 완료되면 상기 작업의 다음 순서의 작업이 실행되도록 구성되어 있다. 일례로, VPN 장치에서 패킷(Packet)을 처리하기 위한 패킷 헤더 분석, 암호화 및 복호화, 패턴 매칭 및 패킷 전송 등의 작업들은 앞에서부터 순서대로 하나의 작업을 완료한 후에 다음 작업을 진행하도록 되어 있으므로, 상기 작업군에 포함된다고 할 수 있다.The specialized task selector 410 sequentially checks tasks of the first task group and selects specialized tasks. The work group is configured by connecting a plurality of jobs sequentially, and when one job is completed, the next job of the job is configured to be executed. For example, operations such as packet header analysis, encryption and decryption, pattern matching, and packet transmission for processing packets in a VPN device are to proceed to the next operation after completing one operation in order from the previous, It can be said that it is included in the working group.

특화 작업 선별부(410)은 상기 작업군 내의 작업들을 순차적으로 하나씩 확인하여 각각의 작업이 특화 작업인지, 특화 작업이 아닌 일반 작업인지를 선별한다. 상기한 선별을 위해서는 미리 각각의 작업들에 대해서 특화 작업에 해당되는지, 일반 작업에 해당되는지에 대한 소정의 기준을 정해 두고, 확인하는 작업의 종류를 기초로 상기 정해진 기준에 따라 특화 작업을 선별한다. The specialized task selector 410 sequentially checks the tasks in the task group one by one to select whether each task is a specialized task or a general task instead of a specialized task. For the above-mentioned screening, predetermined criteria as to whether the task corresponds to a specialized task or a general task are determined in advance, and the specialized task is selected according to the predetermined criteria based on the type of the task to be checked. .

특화 작업 선별부(410)에서 선별하는 특화 작업은 비대칭 다중 프로세싱 시스템(301)에서 커널 코드를 실행하지 않는 적어도 하나 이상의 중앙처리장치를 이용하여 처리되는 작업이다. 특화 작업을 선별하는 기준의 일례로서, 특화 작업은 커널 코드를 실행하지 않는 중앙처리장치를 이용하여 처리되기 때문에, 커널 코드를 이용하는 I/O(Input/Output) 작업이 포함되지 않고, 중앙처리장치를 이용한 연산 처리만으로 구성된 중앙처리장치 의존적인 작업(CPU Bound Job)일 수 있다. 중앙처리장치 의존적인 작업의 일례로, 데이터를 암호화하는 작업, 상기 암호화된 데이터를 복호화 하는 작업 및 데이터가 소정의 패턴(Pattern)에 대응되는지 판단하는 패턴 매칭(Pattern Matching) 작업을 포함할 수 있다. 또한, 특화 작업 선별 부(410)는 별도의 연산 장치를 이용하여 동작할 수도 있고, 커널 코드를 실행하는 제1 중앙처리장치를 이용하여 동작할 수도 있다.The specialized job sorting by the specialized job sorting unit 410 is a job that is processed using at least one central processing unit that does not execute kernel code in the asymmetric multiprocessing system 301. As an example of a criterion for selecting specialized tasks, since specialized tasks are processed using a central processing unit that does not execute kernel code, the central processing unit does not include an input / output (I / O) operation using kernel code. It may be a CPU-bound job configured only with arithmetic processing. An example of a CPU-dependent operation may include encrypting data, decrypting the encrypted data, and pattern matching to determine whether the data corresponds to a predetermined pattern. . In addition, the specialized task selector 410 may operate using a separate computing device, or may operate using a first central processing unit that executes kernel code.

특화 작업 처리부(420)는 특화 작업 선별부(410)에서 선별된 특화 작업을 제2 중앙처리장치를 이용하여 처리한다. 상기 제2 중앙처리장치는 커널 코드를 실행하지 않는 중앙처리장치로, 다른 중앙처리장치와 커널 코드를 공유하지 않기 때문에 다른 작업에 방해 받지 않고 주어진 작업만을 처리할 수 있다. 일례로, 상기 특화 작업이 암호화 및 복호화 작업인 경우에는 암호화 및 복호화의 대상이 되는 데이터를 수신하여 상기 데이터를 기초로 암호화 알고리즘 및 복호화 알고리즘을 수행한다. 상기 암호화 알고리즘 및 복호화 알고리즘은 일반적으로 수학적인 연산 처리로 이루어져 있으며, 커널 코드를 사용해야 하는 I/O 작업은 포함되어 있지 않다.The specialized job processing unit 420 processes the specialized job selected by the specialized job sorting unit 410 using the second central processing unit. The second CPU is a CPU that does not execute kernel code. Since the second CPU does not share kernel code with other CPUs, the second CPU may process only a given task without being interrupted by other tasks. For example, when the specialized operation is an encryption and decryption operation, data that is subject to encryption and decryption is received and an encryption algorithm and a decryption algorithm are performed based on the data. The encryption algorithm and the decryption algorithm generally consist of mathematical operation processing, and do not include I / O operations that require the use of kernel code.

특화 작업 처리부(420)에서 특화 작업 선별부(410)로부터 특화 작업을 할당 받기 위해서는 특화 작업 큐(Queue) 또는 인터럽트(Interrupt)를 사용할 수 있다. 특화 작업 큐(Queue)를 사용하는 구성 및 인터럽트(Interrupt)를 사용하는 구성에 대하여는 도 5 내지 도 7을 참고하여 후술하기로 한다.The specialized job processing unit 420 may use a specialized job queue or interrupt in order to receive a specialized job from the specialized job selector 410. A configuration using a specialized work queue and a configuration using an interrupt will be described later with reference to FIGS. 5 to 7.

일반 작업 처리부(430)는 특화 작업 선별부(410)에서 특화 작업으로 선별되지 않은 일반 작업을 제1 중앙처리장치를 이용하여 처리한다. 상기 일반 작업은 특화 작업을 제외한 나머지 모든 작업을 의미하며, 중앙처리장치를 이용한 연산 처리뿐만 아니라 커널 코드를 이용하는 I/O 작업을 포함하는 작업일 수 있다. 상기 제1 중앙처리장치는 커널 코드를 실행할 수 있으므로, 상기 제1 중앙처리장치를 이 용하면, 커널 코드를 이용하는 작업들을 처리할 수 있다.The general task processor 430 processes the general task not selected as the specialized task by the specialized task sorting unit 410 by using the first CPU. The general task means all tasks except specialized tasks, and may be a task including I / O tasks using kernel code as well as arithmetic processing using a central processing unit. Since the first CPU can execute kernel code, the first CPU can process tasks using kernel code.

또한 일반 작업 처리부(430)는 경우에 따라서 특화 작업 처리부(420)에서 처리한 특화 작업의 마무리 작업을 수행할 수도 있다. 특화 작업 처리부(420)는 커널 코드를 실행하지 않는 제2 중앙처리장치를 이용하여 특화 작업을 처리하기 때문에, 커널 코드를 이용하는 I/O 작업을 처리하기 어렵다. 따라서 특화 작업 처리부(420)에서 처리한 작업 중에서 I/O 작업 등 커널 코드를 필요로 하는 작업이 남아 있는 경우에는 일반 작업 처리부(430)에서 상기 작업에 대한 마무리 작업을 수행할 수 있다. 마무리 작업을 위하여 특화 작업 처리부(420)에서 일반 작업 처리부(430)로 작업을 할당하는 것은 특화 작업 선별부(410)에서 특화 작업 처리부(420)로 특화 작업을 할당하는 방법을 활용할 수 있으며, 상기한 바와 같이 큐(Queue) 또는 인터럽트(Interrupt)를 이용할 수 있다. In addition, the general job processor 430 may perform the finishing work of the specialized job processed by the specialized job processor 420 in some cases. The specialized job processing unit 420 processes the specialized job using the second central processing unit that does not execute the kernel code, and thus, it is difficult to process the I / O job using the kernel code. Therefore, when a task requiring kernel code, such as an I / O task, remains among the tasks processed by the specialized task processor 420, the general task processor 430 may perform the finishing task for the task. Assigning a job from the specialized job processing unit 420 to the general job processing unit 430 for finishing work may utilize a method of allocating a specialized job from the specialized job selection unit 410 to the specialized job processing unit 420. As one may use a queue or interrupt.

비대칭 프로세싱 설정부(440)는 특화 작업 처리부(420)에서 이용하는 제2 중앙처리장치에 대하여 비대칭 프로세싱을 설정한다. 대칭 다중 프로세세싱 시스템은 복수의 중앙처리장치가 커널 코드를 공유하면서 수행하기 때문에, 상기 시스템을 비대칭적으로 동작하도록 하기 위해서 하나 이상의 중앙처리장치는 커널 코드를 실행하지 않고, 별도의 모듈만 이용할 수 있도록 설정해야 한다. 따라서 비대칭 프로세싱 설정부(440)는 제2 중앙처리장치가 커널 코드를 실행하지 않고, 제1 중앙처리장치와 비대칭적으로 동작하도록 설정한다.The asymmetric processing setting unit 440 sets asymmetric processing for the second central processing unit used by the specialized job processing unit 420. Since a symmetric multiprocessing system performs multiple CPUs sharing the kernel code, in order to operate the system asymmetrically, one or more CPUs do not execute kernel code and use only separate modules. Should be set to Therefore, the asymmetric processing setting unit 440 sets the second CPU to run asymmetrically with the first CPU without executing kernel code.

비대칭 프로세싱 설정부(440)에서 제2 중앙처리장치에 대하여 비대칭 프로세싱을 설정하기 위해서는 상기 제2 중앙처리장치 내의 소정의 레지스트리 메모 리(Registry Memory)의 값을 변경할 수 있다. 일반적으로 중앙처리장치는 레지스트리 메모리(Registry Memory)라는 고속의 기억장치를 가지고 있으며, 상기 레지스트리 메모리(Registry Memory)는 상기 중앙처리장치가 처리해야 할 프로그램이 중앙 메모리(Main Memory) 상의 어떤 위치에 존재하는지를 나타내는 PC(Program Counter) 값을 포함한다. 상기 PC 값을 변경해 주면, 상기 중앙처리장치는 기존에 수행하던 프로그램을 중지하고, 변경된 값에 대응되는 중앙 메모리(Main Memory)에 저장된 프로그램을 동작하게 된다. 상기한 방법으로 비대칭 프로세싱 설정부(440)는 제2 중앙처리장치가 커널 코드를 실행하지 않고 별도의 모듈을 실행하도록 설정할 수 있다. 또한, 이 이외에도 중앙처리장치가 커널 코드를 실행하지 않고 별도의 모듈을 실행하여 다른 중앙처리장치와 비대칭적으로 동작하게 할 수 있는 방법이라면 어떤 방법도 가능하다. 이와 같이 본 발명에 따르면, 대칭적으로 동작하도록 설계된 다중 프로세싱 시스템을 메모리 값의 간단한 변경만으로 비대칭적으로 동작할 수 있도록 하는 기술적인 효과가 있다.In order to set asymmetric processing for the second CPU in the asymmetric processing setting unit 440, a value of a predetermined registry memory in the second CPU may be changed. Generally, the central processing unit has a high speed storage device called a registry memory, and the registry memory includes a program in the central memory where a program to be processed is processed. It contains a PC (Program Counter) value indicating whether or not. When the PC value is changed, the central processing unit stops a previously executed program and operates a program stored in a main memory corresponding to the changed value. In this manner, the asymmetric processing setting unit 440 may set the second CPU to execute a separate module without executing the kernel code. In addition, any method may be possible as long as the central processing unit can execute a separate module without executing kernel code so that the central processing unit can operate asymmetrically with other central processing units. As described above, according to the present invention, there is a technical effect of allowing a multiple processing system designed to operate symmetrically to operate asymmetrically with a simple change of a memory value.

도 5는 본 발명에 따른 일실시예로 비대칭 다중 프로세싱 시스템에서 특화 작업을 할당하는데 있어서 큐(Queue)를 사용하는 구성을 도시한 도면이다.FIG. 5 is a diagram illustrating a configuration of using a queue in assigning a specialized task in an asymmetric multiprocessing system according to an embodiment of the present invention.

도시한 바와 같이, 특화 작업 선별부(410)는 선별된 특화 작업들을 특화 작업 큐(510)에 삽입(Enqueue)하고, 특화 작업 처리부(420)는 특화 작업 큐(510)를 확인하여 특화 작업이 있으면 추출(Dequeue)하여, 상기 특화 작업을 처리한다. 큐(Queue)는 하나 이상의 데이터를 저장하고 관리하기 위한 데이터구조로, 리스트의 형태를 가진다. 상기 리스트의 한쪽 끝에서는 삽입(Enqueue)만 가능하고, 상기 리스트의 반대쪽 끝에서는 추출(Dequeue)만 가능하기 때문에, 큐(Queue)에서는 먼저 삽입(Enqueue)된 데이터가 먼저 추출(Dequeue)되게 된다. 따라서 순차적으로 처리해야 할 작업들을 전달하는데 있어서 큐(Queue)가 적합할 수 있다.As shown, the specialized job selection unit 410 inserts the selected specialized jobs into the specialized job queue 510, and the specialized job processing unit 420 checks the specialized job queue 510 to perform the specialized job. If there is, it extracts and processes the said specialized work. A queue is a data structure for storing and managing one or more pieces of data, in the form of a list. Since only one end of the list can be enqueued and only the other end of the list can be dequeue, the queued data is first dequeued. Therefore, a queue may be suitable for delivering tasks that need to be processed sequentially.

일례로, 도면에 도시한 바와 같이 특화 작업 선별부(410)에서 선별된 특화 작업을 순서대로 네 개를 삽입(Enqueue)라는 경우에, 큐(Queue)에는 다섯 개의 특화 작업이 순서대로 저장되며, 특화 작업 처리부(420)에서 특화 작업을 추출(Dequeue)하게 되면, 가장 먼저 삽입된 "특화 작업 1"이 추출(Dequeue)된다. 또한 특화 작업 선별부가 다시 "특화 작업 5"를 삽입하면, "특화 작업 4"의 뒤로 삽입되게 된다.For example, as shown in the drawing, in the case of inserting four specialized jobs selected in the specialized job sorting unit 410 in order, the queue stores five specialized jobs in order. When the specialized job processing unit 420 extracts the specialized job, the first inserted "specialized job 1" is extracted. In addition, when the specialized job sorting unit inserts the "specialized job 5" again, it is inserted after the "specialized job 4".

상기 큐(Queue)를 이용하여 작업을 전달하는 구성은 특화 작업 처리부(420)에서 처리한 특화 작업의 마무리 작업을 일반 작업 처리부(430)에서 처리하는 경우에, 특화 작업 처리부(420)에서 상기 특화 작업을 일반 작업 처리부(430)로 할당하는 데에도 동일하게 적용될 수 있다. 상기한 바와 같이 큐(Queue)를 이용하여 작업을 전달하는 방법을 이용하면, 시스템을 여러 개의 모듈로 구분하여 구조적으로 디자인하기 간편하다는 장점이 있다.In the configuration of delivering a job using the queue, when the general job processing unit 430 processes the finishing work of the specialized job processed by the specialized job processing unit 420, the special job processing unit 420 may perform the specialization. The same may be applied to assigning a job to the general job processor 430. As described above, using a method of transferring a job using a queue has the advantage of dividing the system into several modules and simplifying the structural design.

도 6은 본 발명에 따른 일실시예로 비대칭 다중 프로세싱 시스템에서 특화 작업을 할당하는데 있어서 큐(Queue)를 사용하는 경우에 특화 작업 처리부(420)의 흐름을 도시한 흐름도이다.FIG. 6 is a flowchart illustrating a flow of a specialized task processor 420 when a queue is used to allocate a specialized task in an asymmetric multiprocessing system according to an embodiment of the present invention.

도시한 바와 같이, 특화 작업 처리부는 특화 작업 큐의 크기를 확인하여(S602) 상기 특화 작업 큐에 특화 작업이 하나도 들어있지 않은 경우(크기 = 0인 경우)에는 일정 시간(예를 들어, 1/1000초) 동안 정지(S601)한 후에 다시 특화 작업 큐의 크기를 확인한다(S602). 따라서 특화 작업이 없는 경우에는 1/1000초 간격으로 주기적으로 특화 작업 큐를 확인하여 특화 작업의 존재 여부를 확인할 수 있다. 또한 특화 작업이 상기 특화 작업 큐에 들어있는 경우(크기 > 0인 경우)에는 상기 특화 작업 큐에서 상기 특화 작업을 꺼내고(S603) 상기 꺼낸 특화 작업을 처리한다(S604).As shown, the specialized job processing unit checks the size of the specialized job queue (S602), and when the specialized job queue does not contain any specialized jobs (size = 0), a predetermined time (for example, 1 / After stopping (S601) for 1000 seconds), the size of the specialized work queue is checked again (S602). Therefore, if there is no specialized work, the existence of the specialized work can be checked by periodically checking the specialized work queue at 1/1000 second intervals. In addition, when a specialized job is included in the specialized job queue (size> 0), the specialized job is taken out of the specialized job queue (S603) and the extracted specialized job is processed (S604).

도 7은 본 발명에 따른 일실시예로 비대칭 다중 프로세싱 시스템에서 특화 작업을 할당하는데 있어서 인터럽트(Interrupt)를 사용하는 구성을 도시한 도면이다.FIG. 7 is a diagram illustrating a configuration of using an interrupt in assigning a specialized task in an asymmetric multiprocessing system according to an embodiment of the present invention.

일반적으로 인터럽트(Interrupt)는 컴퓨터 시스템상에 예기치 못한 문제가 발생했을 경우에, 상기 문제를 해결하도록 중앙처리장치에 알리는 것을 말한다. 인터럽트(Interrupt)가 발생하면 중앙처리장치는 처리하던 작업을 중단하고, 인터럽트(Interrupt)에 대응되는 작업을 처리하게 된다. 원래는 시스템에 문제가 발생한 경우 이를 해결하기 위하여 사용되는 것이지만, 중앙처리장치로 메시지를 전송하기 위한 방법으로도 널리 사용된다.In general, when interruption occurs in the computer system, an interrupt is a notification to the central processing unit to solve the problem. When an interrupt occurs, the central processing unit stops the work being processed and processes the work corresponding to the interrupt. Originally used to solve problems in the system, it is also widely used to send messages to the central processing unit.

도 7에 도시한 바와 같이, 본 발명에서 특화 작업 선별부(410)는 선별된 특화 작업이 있음을 인터럽트(Interrupt)를 통하여 특화 작업 처리부(420)에 알린다. 일례로, 제2 중앙처리장치를 이용하는 특화 작업 처리부(420)에서 특정 인터럽트(Interrupt)에 반응하여 소정의 메모리 주소에 저장된 작업을 처리하도록 설정해 두고, 특화 작업 선별부(410)에서 선별된 특화 작업을 상기 메모리 주소에 저장한 후에, 제2 중앙처리장치에 인터럽트(Interrupt)를 발생시키면, 제2 중앙처리장치는 상기 특화 작업을 처리하게 된다. 상기한 방법은 특화 작업 처리부(420)에서 처리한 특화 작업의 마무리 작업을 일반 작업 처리부(430)에서 처리하는 경우에, 특화 작업 처리부(420)에서 상기 특화 작업을 일반 작업 처리부(430)로 할당하는 데에도 동일하게 적용될 수 있다. 상기한 바와 같이 인터럽트(Interrupt)를 이용하여 특화 작업을 할당하는 방법은 실시간으로 빠르게 작업을 할당 받아 처리할 수 있다는 장점이 있다.As shown in FIG. 7, in the present invention, the specialized job selector 410 notifies the specialized job processor 420 of the selected specialized job through an interrupt. For example, the specialized job processing unit 420 using the second central processing unit is set to process a job stored in a predetermined memory address in response to a specific interrupt, and the specialized job selected by the specialized job selecting unit 410 is selected. After storing the at the memory address, if an interrupt is generated in the second CPU, the second CPU processes the specialized task. In the above-described method, when the general task processor 430 processes the finishing work of the specialized job processed by the specialized job processor 420, the specialized job processor 420 assigns the specialized job to the general job processor 430. The same applies to As described above, a method of allocating a specialized task using interrupts has an advantage in that tasks can be assigned and processed quickly in real time.

도 8은 본 발명의 일실시예에 따라 두 개의 중앙처리장치를 가지는 다중 프로세싱 시스템을 이용하여 구현한 VPN 장치에서 상기 중앙처리장치의 사용 방법에 따라 패킷(Packet)을 처리하는 성능이 어떻게 달라지는지 도시한 도면이다. 8 is a diagram illustrating how the performance of processing a packet varies according to a method of using the CPU in a VPN device implemented using a multi-processing system having two CPUs according to an embodiment of the present invention. Figure is shown.

도면 부호 (810)은 암호화 작업 및 패턴 매칭 작업을 제외하고 대칭 다중프로세싱을 이용하여 동작하는 경우의 성능을 나타낸 것이고, 도면 부호 (820)은 상기 암호화 작업 및 패턴 매칭 작업을 포함하고 대칭 다중 프로세싱을 이용하여 동작하는 경우의 성능을 나타낸 것이다. 또한 도면 부호 (830)은 상기 암호화 작업 및 패턴 매칭 작업을 모듈로 분리하고 대칭 다중 프로세싱을 이용하여 동작하는 경우의 성능을 도시한 것이며, 도면 부호 (840)은 상기 암호화 작업 및 패턴 매칭 작업을 별도의 중앙처리장치가 처리하도록 비대칭 다중 프로세싱을 사용한 경우의 성능을 나타낸 것이다.Reference numeral 810 denotes the performance when operating using symmetric multiprocessing except for the encryption operation and the pattern matching operation, and reference numeral 820 includes the encryption operation and the pattern matching operation and performs symmetric multiprocessing. It shows the performance when operating using. Also, reference numeral 830 denotes the performance when the encryption operation and the pattern matching operation are separated into modules and operated using symmetric multiple processing, and reference numeral 840 denotes the encryption operation and the pattern matching operation separately. Figure 2 shows the performance of asymmetric multiprocessing for the central processing unit.

도면에 도시한 바와 같이, 비대칭 다중 프로세싱을 사용하는 경우(840)에는 상기 암호화 작업 및 패턴 매칭 작업을 제외하고 실시하는 경우와 비슷한 결과를 나타낼 정도로 많은 성능 향상이 있음을 확인할 수 있다. 또한, 대칭 다중 프로세싱을 사용하는 경우와 비교해 보았을 때, 상기 암호화 작업 및 패턴 매칭 작업을 모듈로 분리하지 않은 경우(820)에 대비해서는 71%의 성능 향상이 있었고, 상기 암호화 작업 및 패턴 매칭 작업을 별도의 모듈로 분리한 경우(830)에 대비해서는 97%의 성능 향상이 있었다. 상기 실험 결과에서 확인할 수 있듯이, 비대칭 다중 프로세싱 방법을 이용하여 구현한 시스템은 기존의 대칭 다중 프로세싱을 이용하는 시스템에 비하여 현저한 성능 향상을 기대할 수 있다.As shown in the figure, in the case of using asymmetric multiprocessing (840), it can be seen that there are many performance improvements such that the results are similar to those in the case of performing the encryption operation and the pattern matching operation. In addition, compared with the case of using symmetric multiprocessing, there was a 71% performance improvement in comparison with the case where the encryption operation and the pattern matching operation were not separated into modules (820). There was a 97% improvement in performance compared to the separate module (830). As can be seen from the experimental results, the system implemented using the asymmetric multiprocessing method can expect a significant performance improvement compared to the system using the symmetric multiprocessing.

도 9은 본 발명의 일실시예에 따른 비대칭 다중 프로세싱 방법의 흐름을 도시한 흐름도이다.9 is a flowchart illustrating a flow of an asymmetric multiprocessing method according to an embodiment of the present invention.

단계(S901)에서는 복수의 작업군의 작업을 순차적으로 확인하여 특화 작업을 선별한다. 상기 작업군은 복수의 작업들이 순차적으로 연결되어 구성된 것으로, 하나의 작업이 완료되면 상기 작업의 다음 순서의 작업이 실행되도록 구성되어 있다. 특화 작업을 선별하기 위해서는 미리 각각의 작업들에 대해서 특화 작업에 해당되는지, 일반 작업에 해당되는지의 기준을 정해 두고, 확인하는 작업의 종류를 기초로 상기 정해진 기준에 따라 특화 작업을 선별할 수 있다. 또한, 단계(S901)에서 선별되는 특화 작업은 커널 코드를 실행하지 않는 적어도 하나 이상의 중앙처리장치를 이용하여 처리되는 작업이다. 상기 특화 작업은 커널 코드를 실행하지 않는 중앙처리장치를 이용하여 처리되기 때문에, 커널 코드를 이용하는 I/O(Input/Output) 작업이 포함되지 않고, 중앙처리장치를 이용한 연산 처리만으로 구성된 중앙처리장치 의존적인 작업(CPU Bound Job)일 수 있다.In step S901, the work of the plurality of work groups is sequentially checked to select the specialized work. The work group is configured by connecting a plurality of jobs sequentially, and when one job is completed, the next job of the job is configured to be executed. In order to select a specialized task, the criteria of whether the task corresponds to a specialized task or a general task may be determined in advance, and the specialized task may be selected according to the predetermined criteria based on the type of the task to be checked. . In addition, the specialized job selected in step S901 is a job that is processed using at least one central processing unit that does not execute kernel code. Since the specialized operation is processed using a central processing unit that does not execute kernel code, the central processing unit is configured only by arithmetic processing using a central processing unit, not including I / O (input / output) operations using kernel code. It may be a CPU bound job.

단계(S902)에서는 소정의 작업이 특화 작업으로 선별된 경우에 제2 중앙처리장치를 이용하여 상기 특화 작업을 처리한다. 상기 제2 중앙처리장치는 커널 코드를 실행하지 않는 중앙처리장치로, 다른 중앙처리장치와 커널 코드를 공유하지 않기 때문에 다른 작업에 방해 받지 않고 주어진 작업만을 처리할 수 있다. 일례로, 상기 특화 작업이 암호화 및 복호화 작업인 경우에는 암호화 및 복호화의 대상이 되는 데이터를 수신하여 상기 데이터를 기초로 암호화 알고리즘 및 복호화 알고리즘을 수행한다. 단계(S901)에서 선별된 특화 작업을 할당 받기 위해서는 특화 작업 큐(Queue) 또는 인터럽트(Interrupt)를 사용할 수 있다. 또한, 단계(S902)가 진행되는 동안에, 제2 작업군에 대하여 단계(S901)을 동시에 진행하도록 하여 작업 처리의 효율성을 증대시킬 수 있다.In step S902, when a predetermined job is selected as a specialized job, the specialized job is processed using a second central processing unit. The second CPU is a CPU that does not execute kernel code. Since the second CPU does not share kernel code with other CPUs, the second CPU may process only a given task without being interrupted by other tasks. For example, when the specialized operation is an encryption and decryption operation, data that is subject to encryption and decryption is received and an encryption algorithm and a decryption algorithm are performed based on the data. In order to receive the selected specialized task selected in step S901, a specialized task queue or interrupt may be used. In addition, while step S902 is in progress, step S901 may be simultaneously performed with respect to the second work group, thereby increasing efficiency of work processing.

단계(S903)에서는 소정의 작업이 특화 작업으로 선별되지 않은 일반작업인 경우에 제1 중앙처리장치를 이용하여 상기 작업을 처리한다. 상기 일반 작업은 특화 작업을 제외한 나머지 모든 작업을 의미하며, 중앙처리장치를 이용한 연산 처리뿐만 아니라 커널 코드를 이용하는 I/O 작업을 포함하는 작업일 수 있다. 상기 제1 중앙처리장치는 커널 코드를 실행할 수 있으므로, 상기 제1 중앙처리장치를 이용하면, 커널 코드를 이용하는 작업들을 처리할 수 있다. 단계(S903)에서는 단계(S902)에서 특화 작업을 처리하는 것과 동시에, 다른 작업군의 일반 작업을 처리할 수 있으므로, 시스템이 유휴자원 없이 효율적으로 동작하도록 할 수 있다.In step S903, when the predetermined job is a general job that is not selected as a specialized job, the job is processed using the first central processing unit. The general task means all tasks except specialized tasks, and may be a task including I / O tasks using kernel code as well as arithmetic processing using a central processing unit. Since the first CPU can execute kernel code, the first CPU can process jobs using kernel code. In step S903, the processing of the specialized job in step S902 and the general job of another work group can be processed, so that the system can be efficiently operated without idle resources.

또한 단계(S903)에서는 경우에 따라서 단계(S902)에서 처리한 특화 작업의 마무리 작업을 수행할 수도 있다. 단계(S902)에서는 커널 코드를 실행하지 않는 제2 중앙처리장치를 이용하여 특화 작업을 처리하기 때문에, 커널 코드를 이용하는 I/O 작업을 처리하기 어렵다. 따라서 단계(S902)에서 처리한 작업 중에서 I/O 작업 등 커널 코드를 필요로 하는 작업이 남아 있는 경우에는 단계(903)에서 상기 작업에 대한 마무리 작업을 수행할 수 있다.In addition, in step S903, the finishing operation of the specialized work processed in step S902 may be optionally performed. In step S902, because the specialized job is processed using the second CPU that does not execute the kernel code, it is difficult to process the I / O job using the kernel code. Therefore, when a task requiring kernel code, such as an I / O task, remains among the tasks processed in step S902, the finishing operation may be performed in step 903.

본 발명에 따른 비대칭 다중 프로세싱 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으 며, 그 역도 마찬가지이다.The asymmetric multiple processing method according to the present invention can be implemented in the form of program instructions that can be executed by various computer means and recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. The medium may be a transmission medium such as an optical or metal wire, a waveguide, or the like including a carrier wave for transmitting a signal specifying a program command, a data structure, or the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명 사상은 아래에 기재된 특허 청구 범위에 의해서만 파악되어야 하고, 이의 균등 또는 등가적 변형 모두는 본 발명 사상의 범주에 속한다고 할 것이다.As described above, the present invention has been described by way of limited embodiments and drawings, but the present invention is not limited to the above-described embodiments, which can be variously modified and modified by those skilled in the art to which the present invention pertains. Modifications are possible. Accordingly, the spirit of the present invention should be understood only by the claims set forth below, and all equivalent or equivalent modifications thereof will belong to the scope of the present invention.

본 발명에 따르면 두 개 이상의 중앙처리장치를 가지는 다중 프로세싱 시스템을 사용하는데 있어서 커널의 중요 부분(Critical Session)에 대한 방지 장치(Lock)로 인한 시간 지연을 줄여 보다 효율적으로 시스템을 사용할 수 있도록 하는 효과가 있다.According to the present invention, in using a multi-processing system having two or more central processing units, it is possible to reduce the time delay caused by the lock on the critical session of the kernel so that the system can be used more efficiently. There is.

또한, 본 발명에 따르면 비대칭적으로 동작하도록 설계된 고가의 장비를 구입하지 않고, 두 개 이상의 중앙처리장치가 포함된 서버 장치를 이용하여 구현함으로써, 저렴한 가격으로 향상된 성능을 제공할 수 있다.In addition, according to the present invention, by implementing a server device including two or more central processing units without purchasing expensive equipment designed to operate asymmetrically, it is possible to provide improved performance at a low cost.

또한, 본 발명에 따르면 비대칭 프로세싱 설정부의 동작으로 간단하게 대칭 다중 프로세싱 시스템이 비대칭 다중 프로세싱 시스템으로 변환되도록 하는 효과가 있다.In addition, according to the present invention there is an effect that the operation of the asymmetric processing setting unit can be easily converted to a symmetric multiple processing system.

또한, 본 발명에 따르면 특화 작업을 할당하는데 있어서 큐(Queue)를 사용함으로써 다양한 모듈(Module)로 분류된 구조의 경우에도 비대칭적으로 시스템을 사 용할 수 있도록 하는 효과가 있다.In addition, according to the present invention, by using a queue in assigning a specialized task, there is an effect that the system can be used asymmetrically even in a structure classified into various modules.

또한, 본 발명에 따르면 특화 작업을 할당하는데 있어서 인터럽트(Interrupt)를 사용함으로써 실시간으로 빠르게 특화 작업을 처리할 수 있도록 하는 효과가 있다.In addition, according to the present invention, by using an interrupt in assigning a special task, the special task can be processed quickly in real time.

Claims (8)

복수의 중앙처리장치를 이용하여 순차적인 작업들로 구성된 복수의 작업군을 처리하는 다중 프로세싱 시스템에 있어서,In the multiple processing system for processing a plurality of work groups consisting of a plurality of jobs using a plurality of central processing unit, 상기 복수의 작업군의 작업들을 순차적으로 확인하여 특화 작업을 선별하는 특화 작업 선별부;A specialized job selection unit configured to sequentially check the jobs of the plurality of work groups and to select a specialized job; 상기 특화 작업으로 선별되지 않은 일반 작업을 제1 중앙처리장치를 이용하여 처리하는 일반 작업 처리부;A general task processor configured to process a general task not selected by the specialized task using a first central processing unit; 상기 선별된 특화 작업을 제2 중앙처리장치를 이용하여 처리하는 특화 작업 처리부; 및A specialized job processing unit configured to process the selected specialized job using a second central processing unit; And 상기 제2 중앙 처리 장치에 대하여 비대칭 프로세싱을 설정하는 비대칭 프로세싱 설정부An asymmetric processing setting unit for setting asymmetric processing for the second central processing unit 를 포함하고,Including, 상기 특화 작업 선별부는 상기 비대칭 프로세싱의 설정에 따라서 상기 특화 작업을 선별하고,The specialized job selection unit selects the specialized job according to the setting of the asymmetric processing, 상기 일반 작업 처리부는The general job processing unit 상기 특화 작업 처리부에서 제1 작업군 내의 특화 작업을 처리하는 동안 제2 작업군의 일반 작업을 처리하고,The general task processing unit processes the general task of the second task group while processing the specialized task in the first task group, 상기 특화 작업 처리부에서 상기 제1 작업군 내의 특화 작업을 완료하면, 상기 제1 작업군 내의 상기 완료된 특화 작업의 다음 순서의 일반 작업을 순차적으로 처리하는 것When the specialized task processing unit completes the specialized task in the first task group, sequentially processing the general task of the next order of the completed specialized task in the first task group; 을 특징으로 하는 다중 프로세싱 시스템.Multiple processing system, characterized in that. 삭제delete 제1항에 있어서,The method of claim 1, 상기 특화 작업은 중앙처리장치 의존적인 작업(CPU Bound Job)인 것을 특징으로 하는 다중 프로세싱 시스템.And wherein said specialized job is a CPU Bound Job. 제1항에 있어서,The method of claim 1, 상기 특화 작업은 암호화 작업, 복호화 작업, 및 패턴 매칭 작업 중에서 적어도 하나 이상을 포함하는 것을 특징으로 하는 다중 프로세싱 시스템.The specialized task includes at least one of an encryption task, a decryption task, and a pattern matching task. 제1항에 있어서,The method of claim 1, 상기 선별된 특화 작업들을 순서대로 저장하는 특화 작업 큐(Queue)Specialized job queue for storing the selected specialized jobs in order 를 더 포함하고,More, 상기 특화 작업 선별부는 상기 선별된 특화 작업을 상기 특화 작업 큐(Queue)에 삽입하여 저장하고, The specialized job selection unit inserts and stores the selected specialized job into the specialized job queue, 상기 특화 작업 처리부는 상기 특화 작업 큐(Queue)를 주기적으로 참고하여 저장된 특화 작업이 있는 경우에 상기 저장된 특화 작업을 처리하는 것을 특징으로 하는 다중 프로세싱 시스템.The specialized job processing unit may process the stored specialized job when there is a stored specialized job by periodically referring to the specialized job queue. 제1항에 있어서,The method of claim 1, 상기 특화 작업 선별부는 상기 선별된 특화 작업을 인터럽트(Interrupt)를 이용하여 상기 특화 작업 처리부에 할당하고,The specialized task selector assigns the selected specialized task to the specialized task processor using an interrupt, 상기 특화 작업 처리부는 상기 인터럽트(Interrupt)에 대응하여 상기 선별된 특화 작업을 처리하는 것을 특징으로 하는 다중 프로세싱 시스템.The specialized task processor is configured to process the selected specialized task in response to the interrupt. 복수의 중앙처리장치를 이용하여 순차적인 작업들로 구성된 복수의 작업군을 처리하는 다중 프로세싱 방법에 있어서,In the multiple processing method for processing a plurality of work groups consisting of a plurality of jobs using a plurality of central processing unit, 제2 중앙처리장치에 대하여 비대칭 프로세싱을 설정하는 단계;Setting up asymmetric processing for the second central processing unit; 상기 비대칭 프로세싱의 설정에 따라서 상기 복수의 작업군의 작업들을 순차적으로 확인하여 특화 작업을 선별하는 단계;Selecting the specialized jobs by sequentially checking the jobs of the plurality of work groups according to the setting of the asymmetric processing; 상기 특화 작업으로 선별되지 않은 일반 작업을 제1 중앙처리장치를 이용하여 처리하는 단계; 및Processing a general job not selected as the specialized job by using a first CPU; And 상기 선별된 특화 작업을 제2 중앙처리장치를 이용하여 처리하는 특화 작업 단계Specialized work step of processing the selected specialized job using a second central processing unit 를 포함하고,Including, 상기 일반 작업을 처리하는 단계에서는 상기 특화 작업을 처리하는 단계에서 제1 작업군 내의 특화 작업을 처리하는 동안 제2 작업군의 일반 작업을 처리하고,In the processing of the general task, the general task of the second task group is processed while processing the specialized task in the first task group in the processing of the specialized task 상기 특화 작업을 처리하는 단계에서 상기 제1 작업군 내의 특화 작업을 완료하면, 상기 제1 작업군 내의 상기 완료된 특화 작업의 다음 순서의 일반 작업을 순차적으로 처리하는 것Processing a special task in the first task group in the processing of the special task, and sequentially processing a general task of a next sequence of the completed special task in the first task group 을 특징으로 하는 다중 프로세싱 방법.Multiple processing method characterized in that. 제7항의 방법을 실행 시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록매체.A computer-readable recording medium having recorded thereon a program for executing the method of claim 7.
KR1020060031806A 2006-04-07 2006-04-07 Asymmetric multiprocessing system and method thereof KR100807039B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060031806A KR100807039B1 (en) 2006-04-07 2006-04-07 Asymmetric multiprocessing system and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060031806A KR100807039B1 (en) 2006-04-07 2006-04-07 Asymmetric multiprocessing system and method thereof

Publications (2)

Publication Number Publication Date
KR20070040287A KR20070040287A (en) 2007-04-16
KR100807039B1 true KR100807039B1 (en) 2008-02-25

Family

ID=38176101

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060031806A KR100807039B1 (en) 2006-04-07 2006-04-07 Asymmetric multiprocessing system and method thereof

Country Status (1)

Country Link
KR (1) KR100807039B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101408862B1 (en) * 2012-11-28 2014-07-02 평택대학교 산학협력단 Apparatus for controlling temperature in real time using dual processor

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980018067A (en) * 1996-08-19 1998-06-05 윤종용 System and method for handling interrupts and exceptions in asymmetric multiprocessor architectures
JP2004038751A (en) 2002-07-05 2004-02-05 Fujitsu Ltd Processor and instruction control method
JP2004252900A (en) 2003-02-21 2004-09-09 Sharp Corp Asymmetric multiprocessor system, image processor with the same, and image forming apparatus
US20050223196A1 (en) 2004-03-31 2005-10-06 Simon Knowles Apparatus and method for asymmetric dual path processing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980018067A (en) * 1996-08-19 1998-06-05 윤종용 System and method for handling interrupts and exceptions in asymmetric multiprocessor architectures
JP2004038751A (en) 2002-07-05 2004-02-05 Fujitsu Ltd Processor and instruction control method
JP2004252900A (en) 2003-02-21 2004-09-09 Sharp Corp Asymmetric multiprocessor system, image processor with the same, and image forming apparatus
US20050223196A1 (en) 2004-03-31 2005-10-06 Simon Knowles Apparatus and method for asymmetric dual path processing

Also Published As

Publication number Publication date
KR20070040287A (en) 2007-04-16

Similar Documents

Publication Publication Date Title
Meng et al. Online deadline-aware task dispatching and scheduling in edge computing
Zhang et al. {G-NET}: Effective {GPU} Sharing in {NFV} Systems
Barbette et al. RSS++ load and state-aware receive side scaling
Zhang et al. Flurries: Countless fine-grained nfs for flexible per-flow customization
EP2724244B1 (en) Native cloud computing via network segmentation
US8260801B2 (en) Method and system for parallel flow-awared pattern matching
US8997109B2 (en) Apparatus and method for managing data stream distributed parallel processing service
US20060026169A1 (en) Communication method with reduced response time in a distributed data processing system
TW200915084A (en) Allocating network adapter resources among logical partitions
Li et al. OFScheduler: a dynamic network optimizer for MapReduce in heterogeneous cluster
CN102970142B (en) A kind of VPN device is adding the method and system of concurrent encryption and decryption under close snap ring border
Frey et al. A spinning join that does not get dizzy
Kaffes et al. Syrup: User-defined scheduling across the stack
CN114928579B (en) Data processing method, device, computer equipment and storage medium
Islam et al. SOR-HDFS: a SEDA-based approach to maximize overlapping in RDMA-enhanced HDFS
CN102299843A (en) Network data processing method based on graphic processing unit (GPU) and buffer area, and system thereof
Haagdorens et al. Improving the performance of signature-based network intrusion detection sensors by multi-threading
TW201424315A (en) Use of primary and secondary connection tables
Cerrato et al. An efficient data exchange algorithm for chained network functions
Jermyn et al. Improving readiness for enterprise migration to the cloud
Tang et al. Mrorder: Flexible job ordering optimization for online mapreduce workloads
Ren et al. PacketUsher: Exploiting DPDK to accelerate compute-intensive packet processing
KR100807039B1 (en) Asymmetric multiprocessing system and method thereof
Chen et al. Configuration-sensitive process scheduling for FPGA-based computing platforms
Yang et al. Joint optimization of mapreduce scheduling and network policy in hierarchical clouds

Legal Events

Date Code Title Description
A201 Request for examination
G15R Request for early opening
E902 Notification of reason for refusal
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Publication of correction
FPAY Annual fee payment

Payment date: 20130219

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140219

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150204

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160203

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170206

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180117

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20200204

Year of fee payment: 13