KR101433420B1 - 플로우 기반 데이터 병렬 처리 장치 및 방법 - Google Patents

플로우 기반 데이터 병렬 처리 장치 및 방법 Download PDF

Info

Publication number
KR101433420B1
KR101433420B1 KR1020100113800A KR20100113800A KR101433420B1 KR 101433420 B1 KR101433420 B1 KR 101433420B1 KR 1020100113800 A KR1020100113800 A KR 1020100113800A KR 20100113800 A KR20100113800 A KR 20100113800A KR 101433420 B1 KR101433420 B1 KR 101433420B1
Authority
KR
South Korea
Prior art keywords
flow
layer information
processed
lower layer
processing
Prior art date
Application number
KR1020100113800A
Other languages
English (en)
Other versions
KR20120052577A (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 KR1020100113800A priority Critical patent/KR101433420B1/ko
Priority to US13/297,607 priority patent/US20120124583A1/en
Publication of KR20120052577A publication Critical patent/KR20120052577A/ko
Application granted granted Critical
Publication of KR101433420B1 publication Critical patent/KR101433420B1/ko

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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Image Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

하위 계층 정보 및 상위 계층 정보로 구분된 데이터를 이용하여 각각 제1 플로우 및 제2 플로우를 생성하고, 상기 제1 플로우 또는 상기 제2 플로우를 분석하여 상기 하위 계층 정보 또는 상기 상위 계층 정보의 처리 필요 여부를 판단하며, 상기 판단 결과를 기반으로 상기 하위 계층 정보 또는 상기 상위 계층 정보를 플로우 단위로 처리 및 출력하는 플로우 기반 데이터 병렬 처리 장치를 개시한다.

Description

플로우 기반 데이터 병렬 처리 장치 및 방법{APPARATUS AND METHOD FOR PARALLEL PROCESSING FLOW-BASED DATA}
본 발명의 실시예들은 멀티 프로세서에서 데이터를 병렬 처리하는 장치 및 방법에 관한 것이다.
오늘날에는 방대한 분량의 데이터를 처리하기 위하여 다양한 방법이 연구 및 개발되고 있으며, 데이터를 다계층으로 처리하기 위해서는 처리 성능이 관건이 되며 처리 성능을 높이기 위해서는 멀티 프로세서 사용이 필수적이라 할 수 있다.
멀티 프로세서는 데이터 처리 성능 및 소모 전력 면에서 유리하고 다양한 프로그램을 탑재하여 기능을 구현할 수 있기 때문에 단말, 가전, 통신, 방송 등에서 활용이 증대되고 있다.
일반적으로 멀티 프로세서의 처리 속도는 병렬 처리 비율에 관계하며, 병렬 처리 비율이 적을 경우, 멀티 프로세서의 개별 프로세서의 수가 증가하여도 전체 멀티 프로세서 처리 속도는 증가하지 않고 포화될 수 있다.
멀티 프로세서는 병렬 처리 속도를 개별 프로세서 수에 대해 선형적으로 증가시키기 위해서, 직렬 처리 부분보다 병렬 처리 부분이 월등히 많아야 전체적인 처리 속도가 증가 할 수 있다.
일반적으로 데이터 처리 시스템은 다계층 처리 성능을 개선시키기 위해 멀티 프로세서를 많이 사용하며, 병렬 처리를 하는 경우 처리된 데이터 플로우의 순서가 유지되어야 한다.
예를 들어, 데이터 처리 시스템은 입력되는 데이터 플로우를 미세하게 구분하고 임의의 프로세서 코어에서 플로우를 처리 중이면 동일한 플로우는 동일한 프로세서 코어에 할당하여 플로우 순서를 유지하면서 처리 성능을 개선시킬 수 있다.
상기와 같은 경우 데이터 처리 시스템은 속성이 다른 다계층의 데이터를 하나의 배열(array)을 가진 멀티 프로세서로 처리해야 하므로 처리 성능을 스케일러블(scalable)하게 증대하기 어려울 수 있으며, 다른 구조를 가진 프로세서 배열을 혼용해서 사용하기 어려울 수 있다.
데이터 처리 시스템은 다계층의 데이터를 처리하기 위하여 여러 계층을 그룹화하여 처리함으로써, 데이터 처리 속도를 빠르게 할 수 있다.
예를 들어, 데이터 처리 시스템은 입력되는 데이터의 7개 계층을 2~3개의 그룹으로 구분하고, 계층 2-4까지는 성능을 유지하고 계층 7에서는 유연성을 확보함으로써, 데이터 처리 속도를 증가시킬 수 있다.
상기와 같은 방법을 통하여 데이터 처리 시스템은 계층 7에서 처리되는 성능을 향상시킬 수 있으며, 계층 2-4 처리를 계층 7과 무관하게 할 수 있으나, 다계층 처리 시, 계층 2-4의 성능과 계층 7의 성능 차이로 계층 2-7 통합 처리 성능이 저하될 수도 있다.
본 발명의 일실시예는 여러 개의 프로세서들을 복수 개의 멀티 프로세서 배열(array)로 나누고, 멀티 프로세서 배열들(arrays) 간에 분산(distributed) 병렬 처리를 가능하게 함으로써, 멀티 프로세서의 병렬 처리 속도를 개선하고 계층(layer) 처리에 대한 유연성(flexibility)을 제공하는 것을 목적으로 한다.
또한, 본 발명의 일실시예는 데이터를 하위 계층 정보 및 상위 계층 정보로 분류한 후, 각 계층 정보를 이용하여 각각 플로우를 생성하여 멀티 코어의 쓰레드에 배정함으로써, 병렬화 비율을 높이는 것을 목적으로 한다.
또한, 본 발명의 일실시예는 데이터를 2단 구조로 구분하여 처리함으로써, 전 계층에서 처리하지 않아야 할 패킷을 걸러내어 자원 소모를 줄이는 것을 목적으로 한다.
또한, 본 발명의 일실시예는 상위 계층 정보를 이용하여 생성된 플로우를 기반으로 상위 계층 정보를 처리한 후, 하위 계층에 해당 정보를 제공함으로써, 하위 계층 정보의 처리 성능을 향상시키는 것을 목적으로 한다.
본 발명의 일실시예에 따른 플로우 기반 데이터 병렬 처리 장치는 데이터를 입력 받는 입력부, 상기 데이터를 하위 계층 정보 및 상위 계층 정보로 구분하는 계층 구분부, 상기 하위 계층 정보 또는 상기 상위 계층 정보를 이용하여 각각 제1 플로우 및 제2 플로우를 생성하는 플로우 생성부, 상기 제1 플로우 또는 상기 제2 플로우를 분석하여 상기 하위 계층 정보 또는 상기 상위 계층 정보의 처리 필요 여부를 판단하는 판단부, 상기 판단부의 판단 결과를 기반으로 상기 하위 계층 정보 또는 상기 상위 계층 정보를 플로우 단위로 처리하는 처리부 및 상기 처리된 플로우를 출력하는 출력부를 포함한다.
본 발명의 일측에 따른 플로우 생성부는 상기 하위 계층 정보를 이용하여 상기 제1 플로우를 생성할 수 있다.
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치는 상기 하위 계층 정보 또는 상기 상위 계층 정보의 일부 또는 전체를 이용하여 상기 제1 플로우를 분류하는 플로우 분류부를 더 포함할 수 있다.
본 발명의 일측에 따른 판단부는 상기 분류된 제1 플로우를 분석하여 상기 상위 계층 정보의 처리 필요 여부를 판단할 수 있다.
본 발명의 일측에 따르면 상기 판단부의 판단 결과 상기 상위 계층 정보의 처리가 필요하지 않은 경우, 상기 처리부는 상기 하위 계층 정보를 상기 제1 플로우 단위로 처리하고, 상기 출력부는 상기 처리된 제1 플로우를 출력할 수 있다.
본 발명의 일측에 따르면 상기 판단부의 판단 결과 상기 상위 계층 정보의 처리가 필요한 경우, 상기 플로우 생성부는 상기 상위 계층 정보를 이용하여 상기 제2 플로우를 생성하고, 상기 처리부는 상기 제2 플로우 단위로 상기 상위 계층 정보를 처리할 수 있다.
본 발명의 일측에 따른 판단부는 상기 처리된 제2 플로우를 분석하여 상기 하위 계층 정보의 처리 필요 여부를 판단할 수 있다.
본 발명의 일측에 따르면 상기 판단부의 판단 결과 상기 하위 계층 정보의 처리가 필요하지 않은 경우, 상기 출력부는 상기 처리된 제2 플로우를 출력할 수 있다.
본 발명의 일측에 따르면 상기 판단부의 판단 결과 상기 하위 계층 정보의 처리가 필요한 경우, 상기 처리부는 상기 제1 플로우 및 상기 제2 플로우를 연동하여 상기 하위 계층 정보를 처리하고, 상기 출력부는 상기 처리된 제1 플로우 및 상기 제2 플로우를 연동하여 처리된 상기 하위 계층 정보의 상기 제1 플로우를 출력할 수 있다.
본 발명의 일실시예에 따른 플로우 기반 데이터 병렬 처리 방법은 데이터를 입력 받는 단계, 상기 데이터를 하위 계층 정보 및 상위 계층 정보로 구분하는 단계, 상기 하위 계층 정보 또는 상기 상위 계층 정보를 이용하여 각각 제1 플로우 및 제2 플로우를 생성하는 단계, 상기 제1 플로우 또는 상기 제2 플로우를 분석하여 상기 하위 계층 정보 또는 상기 상위 계층 정보의 처리 필요 여부를 판단하는 단계, 상기 판단 결과를 기반으로 상기 하위 계층 정보 또는 상기 상위 계층 정보를 플로우 단위로 처리하는 단계 및 상기 처리된 플로우를 출력하는 단계를 포함한다.
본 발명의 일실시예에 따르면 다계층(multi-layer) 구조를 가진 데이터를 계층적으로 병렬 처리할 수 있다.
또한, 본 발명의 일실시예에 따르면 멀티 프로세서에서 병렬 처리 비율을 증가시킬 수 있다.
또한, 본 발명의 일실시예에 따르면 속성이 다른 계층을 분류하여 병렬 처리함으로써, 병렬 처리 시 발생할 수 있는 지연(locality) 현상을 해결할 수 있다.
또한, 본 발명의 일실시예에 따르면 기능 및 성능에 따라 멀티 프로세서를 스케일러블(scalable) 하게 구성할 수 있다.
또한, 본 발명의 일실시예에 따르면 기능 및 성능을 계층적으로 연산함으로써 소모 전력을 효율적으로 제어할 수 있다.
도 1은 본 발명의 일실시예에 따른 플로우 기반 데이터 병렬 처리 장치의 구성을 도시한 블록도이다.
도 2는 본 발명의 일실시예에 따른 플로우 기반 데이터 병렬 처리 방법을 도시한 흐름도이다.
도 3은 본 발명의 일실시예에 따른 플로우 기반 데이터 병렬 처리 방법의 상세 흐름도이다.
도 4는 본 발명의 일실시예에 따른 플로우 기반 데이터 병렬 처리 방법의 실예를 도시한 도면이다.
이하 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 발명의 실시예를 상세하게 설명하지만, 본 발명이 실시예에 의해 제한되거나 한정되는 것은 아니다.
한편, 본 발명을 설명함에 있어서, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는, 그 상세한 설명을 생략할 것이다. 그리고, 본 명세서에서 사용되는 용어(terminology)들은 본 발명의 실시예를 적절히 표현하기 위해 사용된 용어들로서, 이는 사용자, 운용자의 의도 또는 본 발명이 속하는 분야의 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 일실시예에 따른 플로우 기반 데이터 병렬 처리 장치의 구성을 도시한 블록도이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 입력부(110), 계층 구분부(120), 플로우 생성부(130), 판단부(150), 처리부(160) 및 출력부(170)으로 구성된다.
본 발명의 일실시예에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 하나 이상의 프로세서로 구성된 멀티 프로세서에서 하위 계층 정보와 상위 계층 정보로 각각 구분하고, 각 계층 정보를 플로우 단위로 분류하여 처리함으로써, 다계층 처리 성능을 개선시킬 수 있는 플로우 기반 데이터 병렬 처리 방법을 제공할 수 있다.
도 2는 본 발명의 일실시예에 따른 플로우 기반 데이터 병렬 처리 방법을 도시한 흐름도이다.
도 2를 참조하면, 본 발명의 일실시예에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 입력부(110)를 통하여 데이터를 입력 받는다(210).
본 발명의 일실시예에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 계층 구분부(120)를 이용하여 상기 데이터를 하위 계층 정보 및 상위 계층 정보로 구분한다(220).
본 발명의 일실시예에 따른 플로우 기반 데이터 병렬 처리 장치(100)의 플로우 생성부(130)는 상기 하위 계층 정보 또는 상기 상위 계층 정보를 이용하여 각각 제1 플로우 및 제2 플로우를 생성한다(230).
본 발명의 일실시예에 따른 플로우 기반 데이터 병렬 처리 장치(100)의 판단부(150)는 상기 제1 플로우 또는 상기 제2 플로우를 분석하여 상기 하위 계층 정보 또는 상기 상위 계층 정보의 처리 필요 여부를 판단한다(240).
본 발명의 일실시예에 따른 플로우 기반 데이터 병렬 처리 장치(100)의 처리부(160)는 판단부(150)의 판단 결과를 기반으로 상기 하위 계층 정보 또는 상기 상위 계층 정보를 플로우 단위로 처리한다(250).
본 발명의 일실시예에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 출력부(170)를 통하여 상기 처리된 플로우를 출력한다(260).
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 제어부(180)를 통하여 각 모듈(110~170)을 제어할 수 있다.
아래에서는 본 발명의 일실시예에 따른 플로우 기반 데이터 병렬 처리 방법을 도 3을 참조하여 더욱 상세하게 설명하도록 한다.
도 3은 본 발명의 일실시예에 따른 플로우 기반 데이터 병렬 처리 방법의 상세 흐름도이다.
도 3을 참조하면, 본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 입력부(110)를 통하여 데이터를 입력 받고(301), 플로우 생성부(130)를 이용하여 상기 하위 계층 정보를 이용하여 상기 제1 플로우를 생성할 수 있다(302).
예를 들어, 본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 계층 1부터 계층 7까지 처리되어야 하는 데이터를 입력 받을 수 있다.
본 발명의 일측에 따르면 상기 데이터는 하위 계층이 계층 1부터 계층 6까지 상위 계층이 계층 7로 구성될 수도 있고, 하위 계층이 계층 2부터 계층 4까지 상위 계층이 계층 5부터 7까지 구성되는 등 임의로 하위 계층과 상위 계층이 구성될 수 있다.
아래에서는 본 발명의 이해를 돕고자, 하위 계층을 계층 2부터 계층 4까지 상위 계층은 계층 4부터 계층 7까지로 가정하여 설명하도록 한다.
또한, 본 발명의 일측에 따르면 상기 입력되는 데이터는 계층 2부터 계층 7까지 처리되는 데이터일 수도 있고, 계층 2부터 계층 4까지만 처리 해도 되는 데이터일 수도 있다.
본 발명의 일측에 따르면 입력되는 데이터가 다양한 계층 구간을 처리해야 하는 다계층 처리 데이터이기 때문에, 플로우 기반 데이터 병렬 처리 장치(100)는 상기와 같이 하위 계층 정보를 사용하여 플로우를 생성하는 경우 하위 계층 정보 처리 성능이 향상될 수 있다.
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)의 플로우 분류부(140)는 상기 하위 계층 정보 또는 상기 상위 계층 정보의 일부 또는 전체를 이용하여 상기 제1 플로우를 분류할 수 있다(303).
본 발명의 일측에 따르면 플로우 기반 데이터 병렬 처리 장치(100)는 생성된 플로우에 대한 많은 정보를 사용하여 플로우를 분류해야 정확한 분류가 될 수 있기 때문에 분류 처리 속도가 빠르게 하는 것이 바람직하다.
본 발명의 일측에 따르면 플로우 기반 데이터 병렬 처리 장치(100)는 처리 속도를 높이기 위해 멀티 코어를 사용한 병렬 처리를 통하여 플로우 분류할 수 있으며, 상기 생성된 플로우 기반으로 하위 계층 정보를 병렬 처리할 수 있다.
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)의 판단부(150)는 상기 분류된 제1 플로우를 분석하여 상기 상위 계층 정보의 처리 필요 여부를 판단할 수 있다(304).
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 판단부(150)의 판단 결과 상기 상위 계층 정보의 처리가 필요하지 않은 경우, 처리부(160)를 이용하여 상기 하위 계층 정보를 상기 제1 플로우 단위로 처리하고(305), 출력부(170)를 통하여 상기 처리된 제1 플로우를 출력할 수 있다(306).
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)의 플로우 생성부(130)는 판단부(150)의 판단 결과 상기 상위 계층 정보의 처리가 필요한 경우, 상기 상위 계층 정보를 이용하여 상기 제2 플로우를 생성할 수 있다(307).
본 발명의 일측에 따르면, 상기 생성된 제2 플로우는 상기 제1 플로우와 동일할 수도 있고 그렇지 않을 수도 있다.
본 발명의 일측에 따르면, 하위 계층 정보에서 처리되는 데이터 필드와 상위 계층 정보에서 처리되는 데이터 필드가 다르기 때문에, 병렬 처리 비율을 결정짓는 플로우 생성에 필요한 데이터 필드는 하위 계층 정보의 경우와 상위 계층 정보의 경우가 서로 상이 할 수 있다.
본 발명의 일측에 따르면 플로우 기반 데이터 병렬 처리 장치(100)는 상위 계층 정보를 병렬로 처리하기 위해서, 상위 계층 정보의 병렬 처리에 대응하도록 상위 계층 정보의 데이터 필드를 이용하여 상기 제2 플로우를 다시 생성하는 것이 바람직하다.
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)의 처리부(160)는 상기 제2 플로우 단위로 상기 상위 계층 정보를 처리할 수 있다(308).
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 상기 제2 플로우를 처리하는데 있어서, 데이터 처리 속도를 높이기 위해 멀티 코어 프로세서를 사용한 데이터 병렬 처리 방법을 통하여 데이터를 처리하며, 상기 제2 플로우를 기반으로 상기 상위 계층 정보를 병렬 처리할 수 있다.
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)의 판단부(150)는 상기 처리된 제2 플로우를 분석하여 상기 하위 계층 정보의 처리 필요 여부를 판단할 수 있다(309).
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 판단부(150)의 판단 결과 상기 하위 계층 정보의 처리가 필요하지 않은 경우, 출력부(170)를 통하여 상기 처리된 제2 플로우를 출력할 수 있다(310).
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)의 처리부(160)는 상기 판단부의 판단 결과 상기 하위 계층 정보의 처리가 필요한 경우, 상기 제1 플로우 및 상기 제2 플로우를 연동하여 상기 하위 계층 정보를 처리할 수 있다(311).
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 출력부(170)를 통하여 상기 처리된 제1 플로우 및 상기 제2 플로우를 연동하여 처리된 상기 하위 계층 정보의 상기 제1 플로우를 출력할 수 있다(312).
아래에서는 도 4를 참조하여 본 발명의 일실시예에 따른 플로우 기반 데이터 병렬 처리 방법의 실예를 들어 설명하도록 한다.
도 4는 본 발명의 일실시예에 따른 플로우 기반 데이터 병렬 처리 방법의 실예를 도시한 도면이다.
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 IP 패킷을 포함하는 데이터를 입력 받는다(401).
본 발명의 일측에 따르면, 상기 입력된 IP 패킷은 계층 2부터 계층 7까지 구성되어 있으나 전달 방식이 어떤 방식이냐에 따라 계층 1 및 계층의 프레임 필드가 포함될 수도 있다.
아래에서는 본 발명의 이해를 돕고자 이더넷(Ethernet) 기반으로 된 프레임이 입력되는 것을 가정한다. 예를 들어, 본 발명의 일측에 따르면 상기 IP 패킷은 계층 2부터 계층 7까지 처리되어야 하는 데이터로 구성으로 가정한다.
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 입력되는 IP 패킷에 대한 암호화 처리가 요구되는 경우 계층 2부터 계층 7까지의 처리가 필요하고, 입력되는 패킷에 대해 스위칭 및 라우팅 처리가 요구되는 경우 계층 2부터 계층 4까지 처리가 필요하다.
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 입력되는 IP 패킷이 계층 2부터 계층 4에 대한 처리를 요구하는 패킷 및 계층 2부터 계층 7에 대한 처리를 요구하는 패킷으로 혼재되어 있으면 다계층 처리가 필요하다.
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 상기 입력된 데이터를 계층 2-4에 대한 정보를 이용하여 제1 플로우를 생성할 수 있다(402).
본 발명의 일측에 따르면 입력되는 IP 패킷은 계층 처리가 필요한 데이터이기 때문에 상기와 같이 계층 정보를 이용하여 플로우를 생성하는 경우, 멀티 코어 프로세서에서 병렬 처리가 가능해져 패킷 처리 성능을 향상 시킬 수 있다.
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 상기 제1 플로우를 분류할 수 있다(403).
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 데이터를 더욱 정확하게 분류하기 위하여 상기 제1 플로우를 계층 2-7의 정보 중 가능한 많은 정보를 사용하여 상기 제1 플로우를 분류하는 것이 바람직하다.
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 멀티 코어를 이용하여 데이터를 병렬 처리할 수 있으며, 상기 제1 플로우로 분류하는 것도 병렬 처리함으로써, 분류 처리 성능을 높일 수 있다.
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 순차적으로 입력되는 서로 다른 종류의 플로우를 임의의 처리 가능한(idle) 프로세서 코어에 배정할 수 있다.
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 같은 종류의 플로우가 임의의 프로세서 코어에서 수행되고 있으면, 종료 시까지 기다리다가 같은 프로세서 코어에 해당 플로우를 배정할 수 있다.
본 발명의 일측에 따르면 상기 생성된 플로우의 수가 멀티 코어의 코어 수보다 많고 플로우 종류가 균일하게(uniform) 분포되어 있으면, 병렬 처리 비율이 증가되어 플로우 처리 성능을 향상 시킬 수 있다.
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 상기 제1 분류된 제1 플로우를 분석하여 상기 층 4-7에 대한 정보의 처리가 필요한지 여부를 분석할 수 있다(404).
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 상기 상위계층 정보의 처리 여부를 판단하는 과정을 상기 제1 플로우 기반으로 병렬 처리할 수 있다.
예를 들어, 본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 제1 플로우에 대해서 DPI(Deep Packet Inspection)가 필요한지 유무를 분석할 수 있다.
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 계층 4-7에 대한 정보의 처리가 불필요한 경우, 상기 생성된 제1 플로우 단위로 상기 계층 2-4에 대한 정보를 처리할 수 있다(405).
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 상기 제1 플로우를 기반으로 상기 계층 2-4에 대한 정보를 병렬 처리할 수 있다.
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 상기 처리된 제1 플로우를 출력할 수 있다(406).
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 상기 계층 4-7에 대한 정보의 처리가 불필요한 경우, 계층 4-7의 정보를 사용하여 상기 제2 플로우를 다시 생성할 수 있다(407).
본 발명의 일측에 따르면 계층 2-4의 데이터 필드와 계층 4-7의 데이터 필드가 서로 다를 수 있기 때문에, 병렬 처리 비율을 결정짓는 플로우 생성에 필요한 계층은 서로 다를 수 있다.
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 계층 4-7에 대한 정보의 처리를 병렬로 처리하기 위해서, 계층 4-7에 대한 정보의 처리 시 병렬성이 최적이 되도록 계층 4-7의 데이터 필드를 사용해서 제2 플로우를 다시 생성할 수 있다.
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 상기 제2 플로우를 처리할 수 있다(408).
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 상기 계층 4-7에 대한 정보의 처리 속도를 높이기 위해서 멀티 코어 프로세서를 사용한 병렬 처리 방법을 통하여 상기 제2 플로우 기반으로 정보를 처리할 수 있다.
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 상기 계층 4-7의 정보를 사용하여 생성된 상기 제2 플로우 중 서로 다른 플로우를 임의의 처리 가능한(idle) 프로세서 코어에 배정할 수 있다.
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 프로세서 코어로 입력되는 플로우와 같은 종류의 제2 플로우가 이미 임의의 프로세서 코어에서 수행되고 있으면, 종료 시까지 기다리다가 같은 프로세서 코어에 해당 플로우를 배정할 수 있다.
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 상기 생성된 제2 플로우의 수가 멀티 코어의 코어 수보다 많고 플로우 종류가 균일하게(uniform) 분포되어 있으면, 병렬 처리 비율이 증가되어 계층 4-7에 대한 정보의 처리 성능을 향상 시킬 수 있다.
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 상기 처리된 제2 플로우를 분석하여 상기 계층 2-4에 대한 정보의 처리가 필요한지 여부를 분석할 수 있다(409).
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 상기 단계(409)를 병렬로 처리할 수 있다.
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 상기 계층 2-4에 대한 정보의 처리가 불필요한 플로우를 선택하여 출력할 수 있다(410).
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 상기 계층 2-4에 대한 정보의 처리가 필요한 플로우를 선택하여, 상기 제1 플로우와 상기 제2 플로우를 연동하여 상기 계층 2-4에 대한 정보를 처리할 수 있다(411).
본 발명의 일측에 따르면 단계(411)은 상기 단계(308)에서 처리된 결과를 적용하여 계층 2-4에 대한 정보를 처리할 수 있다. 본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 상기 단계(411)을 병렬로 처리할 수 있다.
본 발명의 일측에 따른 플로우 기반 데이터 병렬 처리 장치(100)는 상기 단계(411)에서 처리된 제1 플로우 또는 제2 플로우를 출력할 수 있다(412).
본 발명에 따른 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(Floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
100: 플로우 기반 데이터 병렬 처리 장치
110: 입력부
120: 계층 구분부
130: 플로우 생성부
140: 플로우 분류부
150: 판단부
160: 처리부
170: 출력부
180: 제어부

Claims (18)

  1. 데이터를 입력 받는 입력부;
    상기 데이터를 하위 계층 정보 및 상위 계층 정보로 구분하는 계층 구분부;
    상기 하위 계층 정보 또는 상기 상위 계층 정보를 이용하여 각각 제1 플로우 및 제2 플로우를 생성하는 플로우 생성부;
    상기 제1 플로우 또는 상기 제2 플로우를 분석하여 상기 하위 계층 정보 또는 상기 상위 계층 정보의 처리 필요 여부를 판단하는 판단부;
    상기 판단부의 판단 결과를 기반으로 상기 하위 계층 정보 또는 상기 상위 계층 정보를 플로우 단위로 처리하는 처리부; 및
    상기 처리된 플로우를 출력하는 출력부
    를 포함하고,
    상기 플로우 생성부는,
    상기 하위 계층 정보를 이용하여 상기 제1 플로우를 생성하는 플로우 기반 데이터 병렬 처리 장치.
  2. 삭제
  3. 제1항에 있어서,
    상기 하위 계층 정보 또는 상기 상위 계층 정보의 일부 또는 전체를 이용하여 상기 제1 플로우를 분류하는 플로우 분류부
    를 더 포함하는 플로우 기반 데이터 병렬 처리 장치.
  4. 제3항에 있어서,
    상기 판단부는,
    상기 분류된 제1 플로우를 분석하여 상기 상위 계층 정보의 처리 필요 여부를 판단하는 것을 특징으로 하는 플로우 기반 데이터 병렬 처리 장치.
  5. 제4항에 있어서,
    상기 판단부의 판단 결과 상기 상위 계층 정보의 처리가 필요하지 않은 경우,
    상기 처리부는 상기 하위 계층 정보를 상기 제1 플로우 단위로 처리하고,
    상기 출력부는 상기 처리된 제1 플로우를 출력하는 것을 특징으로 하는 플로우 기반 데이터 병렬 처리 장치.
  6. 제4항에 있어서,
    상기 판단부의 판단 결과 상기 상위 계층 정보의 처리가 필요한 경우,
    상기 플로우 생성부는 상기 상위 계층 정보를 이용하여 상기 제2 플로우를 생성하고,
    상기 처리부는 상기 제2 플로우 단위로 상기 상위 계층 정보를 처리하는 것을 특징으로 하는 플로우 기반 데이터 병렬 처리 장치.
  7. 제6항에 있어서,
    상기 판단부는,
    상기 처리된 제2 플로우를 분석하여 상기 하위 계층 정보의 처리 필요 여부를 판단하는 것을 특징으로 플로우 기반 데이터 병렬 처리 장치.
  8. 제7항에 있어서,
    상기 판단부의 판단 결과 상기 하위 계층 정보의 처리가 필요하지 않은 경우,
    상기 출력부는 상기 처리된 제2 플로우를 출력하는 것을 특징으로 하는 플로우 기반 데이터 병렬 처리 장치.
  9. 제7항에 있어서,
    상기 판단부의 판단 결과 상기 하위 계층 정보의 처리가 필요한 경우,
    상기 처리부는 상기 제1 플로우 및 상기 제2 플로우를 연동하여 상기 하위 계층 정보를 처리하고,
    상기 출력부는 상기 처리된 제1 플로우 및 상기 제2 플로우를 연동하여 처리된 상기 하위 계층 정보의 상기 제1 플로우를 출력하는 것을 특징으로 하는 플로우 기반 데이터 병렬 처리 장치.
  10. 데이터를 입력 받는 단계;
    상기 데이터를 하위 계층 정보 및 상위 계층 정보로 구분하는 단계;
    상기 하위 계층 정보 또는 상기 상위 계층 정보를 이용하여 각각 제1 플로우 및 제2 플로우를 생성하는 단계;
    상기 제1 플로우 또는 상기 제2 플로우를 분석하여 상기 하위 계층 정보 또는 상기 상위 계층 정보의 처리 필요 여부를 판단하는 단계;
    상기 판단 결과를 기반으로 상기 하위 계층 정보 또는 상기 상위 계층 정보를 플로우 단위로 처리하는 단계; 및
    상기 처리된 플로우를 출력하는 단계
    를 포함하고,
    상기 제1 플로우 및 상기 제2 플로우를 생성하는 단계는,
    상기 하위 계층 정보를 이용하여 상기 제1 플로우를 생성하는 단계
    를 포함하는 플로우 기반 데이터 병렬 처리 방법.
  11. 삭제
  12. 제10항에 있어서,
    상기 하위 계층 정보 또는 상기 상위 계층 정보의 일부 또는 전체를 이용하여 상기 제1 플로우를 분류하는 단계
    를 더 포함하는 플로우 기반 데이터 병렬 처리 방법.
  13. 제12항에 있어서,
    상기 판단하는 단계는,
    상기 분류된 제1 플로우를 분석하여 상기 상위 계층 정보의 처리 필요 여부를 판단하는 단계
    를 포함하는 플로우 기반 데이터 병렬 처리 방법.
  14. 제13항에 있어서,
    상기 상위 계층 정보의 처리가 필요하지 않은 경우,
    상기 플로우 단위로 처리하는 단계는 상기 하위 계층 정보를 상기 제1 플로우 단위로 처리하는 단계를 포함하고,
    상기 처리된 플로우를 출력하는 단계는 상기 처리된 제1 플로우를 출력하는 단계를 포함하는 플로우 기반 데이터 병렬 처리 방법.
  15. 제13항에 있어서,
    상기 상위 계층 정보의 처리가 필요한 경우,
    상기 제1 플로우 및 상기 제2 플로우를 생성하는 단계는 상기 상위 계층 정보를 이용하여 상기 제2 플로우를 생성하는 단계를 포함하고,
    상기 플로우 단위로 처리하는 단계는 상기 제2 플로우 단위로 상기 상위 계층 정보를 처리하는 단계를 포함하는 플로우 기반 데이터 병렬 처리 방법.
  16. 제15항에 있어서,
    상기 판단하는 단계는,
    상기 처리된 제2 플로우를 분석하여 상기 하위 계층 정보의 처리 필요 여부를 판단하는 단계
    를 포함하는 플로우 기반 데이터 병렬 처리 방법.
  17. 제16항에 있어서,
    상기 하위 계층 정보의 처리가 필요하지 않은 경우,
    상기 처리된 플로우를 출력하는 단계는 상기 처리된 제2 플로우를 출력하는 단계를 포함하는 플로우 기반 데이터 병렬 처리 방법.
  18. 제16항에 있어서,
    상기 하위 계층 정보의 처리가 필요한 경우,
    상기 플로우 단위로 처리하는 단계는 상기 제1 플로우 및 상기 제2 플로우를 연동하여 상기 하위 계층 정보를 처리하는 단계를 포함하고,
    상기 처리된 플로우를 출력하는 단계는 상기 처리된 제1 플로우 및 상기 제2 플로우를 연동하여 처리된 상기 하위 계층 정보의 상기 제1 플로우를 출력하는 단계를 포함하는 플로우 기반 데이터 병렬 처리 방법.
KR1020100113800A 2010-11-16 2010-11-16 플로우 기반 데이터 병렬 처리 장치 및 방법 KR101433420B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100113800A KR101433420B1 (ko) 2010-11-16 2010-11-16 플로우 기반 데이터 병렬 처리 장치 및 방법
US13/297,607 US20120124583A1 (en) 2010-11-16 2011-11-16 Apparatus and method for parallel processing flow based data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100113800A KR101433420B1 (ko) 2010-11-16 2010-11-16 플로우 기반 데이터 병렬 처리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20120052577A KR20120052577A (ko) 2012-05-24
KR101433420B1 true KR101433420B1 (ko) 2014-08-28

Family

ID=46049040

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100113800A KR101433420B1 (ko) 2010-11-16 2010-11-16 플로우 기반 데이터 병렬 처리 장치 및 방법

Country Status (2)

Country Link
US (1) US20120124583A1 (ko)
KR (1) KR101433420B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030058876A1 (en) * 2001-09-25 2003-03-27 Connor Patrick L. Methods and apparatus for retaining packet order in systems utilizing multiple transmit queues
JP2004246879A (ja) * 2003-01-24 2004-09-02 Toshiba Corp フローデータ生成方法およびフローデータ生成装置
JP2005189939A (ja) * 2003-12-24 2005-07-14 Toshiba Corp スケジューラ、スケジューリング方法、スケジューリング・プログラム、及び高位合成装置
US20060168217A1 (en) * 2004-12-16 2006-07-27 International Business Machines Corporation Method, computer program product, and data processing system for data queuing prioritization in a multi-tiered network

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU1321801A (en) * 1999-10-29 2001-05-08 Forskarpatent I Vastsverige Ab Method and arrangements for congestion control in packet networks using thresholds and demoting of packet flows
US9800608B2 (en) * 2000-09-25 2017-10-24 Symantec Corporation Processing data flows with a data flow processor
US6854117B1 (en) * 2000-10-31 2005-02-08 Caspian Networks, Inc. Parallel network processor array
US7047395B2 (en) * 2001-11-13 2006-05-16 Intel Corporation Reordering serial data in a system with parallel processing flows
WO2007010408A2 (en) * 2005-05-25 2007-01-25 Lga Partnership Next generation network for providing diverse data types
JP4751673B2 (ja) * 2005-08-29 2011-08-17 株式会社エヌ・ティ・ティ・ドコモ 伝送速度制御方法及び移動局
KR100668661B1 (ko) * 2005-10-19 2007-01-16 한국전자통신연구원 휴대 인터넷 시스템에서 트랜스포트 연결 식별자의생성/변경 방법 및 그를 위한 단말기
US8228908B2 (en) * 2006-07-11 2012-07-24 Cisco Technology, Inc. Apparatus for hardware-software classification of data packet flows
US8639837B2 (en) * 2006-07-29 2014-01-28 Blue Coat Systems, Inc. System and method of traffic inspection and classification for purposes of implementing session ND content control
JP4658098B2 (ja) * 2006-11-21 2011-03-23 日本電信電話株式会社 フロー情報制限装置および方法
US9965342B2 (en) * 2010-03-16 2018-05-08 Arm Limited Synchronization in data processing layers

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030058876A1 (en) * 2001-09-25 2003-03-27 Connor Patrick L. Methods and apparatus for retaining packet order in systems utilizing multiple transmit queues
JP2004246879A (ja) * 2003-01-24 2004-09-02 Toshiba Corp フローデータ生成方法およびフローデータ生成装置
JP2005189939A (ja) * 2003-12-24 2005-07-14 Toshiba Corp スケジューラ、スケジューリング方法、スケジューリング・プログラム、及び高位合成装置
US20060168217A1 (en) * 2004-12-16 2006-07-27 International Business Machines Corporation Method, computer program product, and data processing system for data queuing prioritization in a multi-tiered network

Also Published As

Publication number Publication date
US20120124583A1 (en) 2012-05-17
KR20120052577A (ko) 2012-05-24

Similar Documents

Publication Publication Date Title
US10296386B2 (en) Processing element management in a streaming data system
US10048976B2 (en) Allocation of virtual machines to physical machines through dominant resource assisted heuristics
Jang et al. A3MAP: Architecture-aware analytic mapping for networks-on-chip
WO2018102414A1 (en) Technologies for retrieving bit streams based on demand and providing multi-sled ip storage
DE112017003707T5 (de) Technologien zur zuweisung von workloads zum ausgleich mehrerer ressourcenzuweisungsziele
US20230045505A1 (en) Technologies for accelerated orchestration and attestation with edge device trust chains
US20140122559A1 (en) Runtime grouping of tuples in a streaming application
CN1866217A (zh) 确定源服务器在目标服务器中的最佳分布的系统和方法
WO2022105440A1 (zh) 一种量子与经典混合云平台以及任务执行方法
CN109726004B (zh) 一种数据处理方法及装置
Song et al. Scheduling workflows with composite tasks: A nested particle swarm optimization approach
US20190370269A1 (en) Prometheus: processing-in-memory heterogenous architecture design from a multi-layer network theoretic strategy
CN115882981A (zh) 下一代网络中的带有协作式频谱感测的非许可频谱采集
US20130145031A1 (en) Agile hostpool allocator
Shirmarz et al. Automatic software defined network (SDN) performance management using TOPSIS decision-making algorithm
Tessier et al. Topology-aware data aggregation for intensive I/O on large-scale supercomputers
CN107920025B (zh) 一种面向cpu-gpu异构片上网络的动态路由方法
TW201327239A (zh) 分散式資源管理系統及其分散式資源管理方法
KR101433420B1 (ko) 플로우 기반 데이터 병렬 처리 장치 및 방법
Zhang et al. Highly efficient breadth-first search on cpu-based single-node system
Fang et al. TB-TBP: a task-based adaptive routing algorithm for network-on-chip in heterogenous CPU-GPU architectures
US20210103830A1 (en) Machine learning based clustering and patterning system and method for network traffic data and its application
CN110769037A (zh) 嵌入式边缘计算平台资源配置方法
CN116028233B (zh) 一种ai计算资源的数字对象组织与共享方法和装置
Ruaro et al. Runtime qos support for mpsoc: A processor centric approach

Legal Events

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

Payment date: 20180702

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190917

Year of fee payment: 6