KR20120053357A - 다계층 데이터 처리 장치 및 방법 - Google Patents

다계층 데이터 처리 장치 및 방법 Download PDF

Info

Publication number
KR20120053357A
KR20120053357A KR1020100114586A KR20100114586A KR20120053357A KR 20120053357 A KR20120053357 A KR 20120053357A KR 1020100114586 A KR1020100114586 A KR 1020100114586A KR 20100114586 A KR20100114586 A KR 20100114586A KR 20120053357 A KR20120053357 A KR 20120053357A
Authority
KR
South Korea
Prior art keywords
layer
lower layer
processing
processor
upper layer
Prior art date
Application number
KR1020100114586A
Other languages
English (en)
Other versions
KR101440122B1 (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 KR1020100114586A priority Critical patent/KR101440122B1/ko
Priority to US13/298,746 priority patent/US20120124212A1/en
Publication of KR20120053357A publication Critical patent/KR20120053357A/ko
Application granted granted Critical
Publication of KR101440122B1 publication Critical patent/KR101440122B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/18End to end
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

다계층 데이터의 처리 성능을 확장가능(scalable)하게 증대하기 위해서 복수 개의 계층 처리부를 이용하고 복수 개의 계층 처리부별로 복수 개의 프로세서를 이용하여 병렬처리를 수행하는 다계층 데이터 처리 장치 및 방법이 제공된다. 다계층 데이터 처리 장치는, 입력된 데이터를 하위계층 정보를 이용하여 적어도 하나의 하위계층 플로우로 생성하고, 생성된 하위계층 플로우를 복수 개의 하위계층 프로세서에 할당하여 하위계층 플로우에 대한 하위계층 처리를 병렬적으로 수행하는 하위계층 처리부와, 하위계층 처리부로부터 전달받은 데이터를 상위계층 정보를 이용하여 적어도 하나의 상위계층 플로우로 생성하고, 생성된 상위계층 플로우를 복수 개의 상위계층 프로세서에 할당하여 상위계층 플로우에 대한 상위계층 처리를 병렬적으로 수행하는 상위계층 처리부를 포함한다.

Description

다계층 데이터 처리 장치 및 방법{Apparatus and method for processing multi-layer data}
본 발명은 다계층 구조를 가지는 데이터 처리에 관한 것으로, 보다 상세하게는 플로우 기반으로 다계층 데이터 처리를 효율적으로 수행하기 위한 다계층 데이터 처리 장치 및 방법에 관한 것이다.
다계층 데이터를 처리하기 위해서는 처리 성능이 관건이 되며 처리 성능을 높이기 위해서는 멀티프로세서가 이용된다. 전체 멀티프로세서 처리 속력 증가는 병렬 처리 비율에 관계한다. 암달(Amdahl)의 법칙에 따르면, 병렬 처리 비율이 적을 경우는 멀티프로세서의 개별 프로세서의 수가 증가하여도 전체 멀티프로세서 처리 속력은 증가하지 않고 포화된다. 암달의 법칙에서 알 수 있듯이 직렬 처리 부분보다 병렬 처리 부분이 월등히 많아야 병렬 처리 속력을 개별 프로세서 수에 대해 선형적으로 증가시키는 효과가 있다.
다계층 데이터 처리 성능을 개선시키기 위해 멀티프로세서를 많이 사용하며 이때에 병렬 처리를 하는 경우 처리된 데이터 플로우의 순서가 유지되어야 한다. 데이터 플로우의 순서를 유지하면서 처리 성능을 개선 시키기 위하여, 입력되는 데이터 플로우를 미세하게 분류하여 구분하고 임의의 프로세서 코어에서 플로우를 처리 중이면 동일한 플로우는 동일한 프로세서 코어에 할당하여 플로우 순서를 유지하면서 처리 성능을 개선시키는 선행 기술이 제안되었다. 그러나, 플로우 순서를 유지하더라도 속성이 다른 다계층 데이터 처리를 하나의 배열(array)을 가진 멀티프로세서로 처리하게 되면, 처리 성능을 확장가능(scalable)하게 증대하기 어렵고 다른 구조를 가진 프로세서 배열을 혼용해서 사용하기 어려운 문제가 있다.
다계층 데이터를 처리하기 위한 또 다른 접근 방법은 여러 계층을 그룹화하여 7 계층을 2~3개 그룹으로 처리하는 것이다. OSI(Open system interconnection) 7 계층 모델의 프로토콜을 예를 들면, 계층 2(Data link layer : 데이터 링크 계층), 계층 3(Network layer : 네트워크 계층) 및 계층 4(Transport layer : 트랜스포트 계층)는 주로 전용 하드웨어나 네트워크 프로세서를 사용하여 프레임 또는 패킷을 처리하고 있으며 처리 성능이 주요 관건(issue)이 된다. 계층 7(Application layer : 응용 계층)은 각종 서비스의 내용이 탑재되는데 범용(general) 프로세서를 사용하여 소프트웨어로 처리되며 유연성이 관건이 된다. 따라서, 처리 성능이 중시되는 하위 계층인 계층 2-4와 유연성이 중시되는 계층 7은 데이터 처리를 공통된 프로세서에서 실행하는 경우 처리 방식이 서로 상충되어 효율이 저하될 수 있다.
다계층 데이터의 처리 성능을 확장가능(scalable)하게 증대하기 위해서 복수 개의 계층 처리부를 이용하고, 복수 개의 계층 처리부별로 복수 개의 프로세서를 이용하여 병렬처리를 수행하는 다계층 데이터 처리 장치 및 방법이 제공된다.
일 측면에 따른 다계층 데이터 처리 장치는 입력된 데이터를 하위계층 정보를 이용하여 적어도 하나의 하위계층 플로우로 생성하고, 생성된 하위계층 플로우를 복수 개의 하위계층 프로세서에 할당하여 하위계층 플로우에 대한 하위계층 처리를 병렬적으로 수행하는 하위계층 처리부와, 하위계층 처리부로부터 전달받은 데이터를 상위계층 정보를 이용하여 적어도 하나의 상위계층 플로우로 생성하고, 생성된 상위계층 플로우를 복수 개의 상위계층 프로세서에 할당하여 상위계층 플로우에 대한 상위계층 처리를 병렬적으로 수행하는 상위계층 처리부를 포함한다.
다른 측면에 따른 다계층 데이터 처리 방법은, 입력된 데이터를 하위계층 처리부에서 하위계층 정보를 이용하여 적어도 하나의 하위계층 플로우로 생성하는 단계와, 하위계층 처리부에서 생성된 하위계층 플로우를 복수 개의 하위계층 프로세서에 할당하여 하위계층 플로우에 대한 하위계층 처리를 병렬적으로 수행하는 단계와, 하위계층 처리부에서 수신된 데이터 중에서 상위계층에서 처리되어야 하는 데이터를 상위계층 처리부로부터 전달하는 단계와, 상위계층 처리부에서 전달받은 데이터를 상위계층 정보를 이용하여 적어도 하나의 상위계층 플로우로 생성하는 단계와, 상위계층 처리부에서 생성된 상위계층 플로우를 복수 개의 상위계층 프로세서에 할당하여 상위계층 플로우에 대한 상위계층 처리를 병렬적으로 수행하는 단계를 포함한다.
본 발명은 다계층(multi-layer) 구조를 가진 데이터를 개별 계층적으로 병렬 처리하여, 상하 계층에서 각각 플로우를 생성하고 멀티프로세서의 각 코어 혹은 쓰레드에 할당함으로써 병렬 처리 비율을 증가시킬 수 있다. 또한, 속성이 다른 계층을 분류하여 병렬 처리함으로써 병렬 처리에 문제가 되는 집약성(locality) 문제를 해결할 수 있다.
상하 계층에서 기능 및 성능에 맞게 프로세서들을 그룹핑하여 확장가능하게 구성할 수 있다. 기능 및 성능을 계층적으로 연산함으로써 소모 전력 제어가 용이하게 할 수 있다.
도 1은 일 실시예에 따른 다계층 데이터 처리 장치의 개략적인 구성을 나타내는 도면이다.
도 2는 도 1의 다계층 데이터 처리 장치의 구성의 일 예를 나타내는 도면이다.
도 3은 패킷 데이터를 처리하는 다계층 데이터 처리 장치의 일 예를 나타내는 도면이다.
도 4는 도 3의 다계층 데이터 처리 장치에 포함되는 공통 데이터베이스 구조의 일 예를 나타내는 도면이다.
도 5는 다계층 데이터 처리 방법의 일 예를 나타내는 순서도이다.
도 6은 다계층 데이터 처리 방법의 다른 예를 나타내는 순서도이다.
이하, 첨부된 도면을 참조하여 본 발명의 일 실시예를 상세하게 설명한다. 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 일 실시예에 따른 플로우 기반 다계층 데이터 처리 장치의 개략적인 구조를 나타내는 도면이다.
다계층 데이터 처리 장치(100)는 하위 계층 처리부(110) 및 상위 계층 처리부(120)을 포함하여 다계층 구조를 가지는 데이터를 통합 처리한다. 여기에서, 다계층 구조를 가지는 데이터는 계층 구조를 가지는 데이터인 한 종류와 형태에 제한되지 않는다. 예를 들어, 다계층 데이터는 L2계층 내지 L7계층으로 분류되는 패킷 데이터일 수 있다.
하위계층 처리부(110)는 외부에서 입력되는 데이터를 수신하고, 외부에서 입력되는 데이터를 하위계층 처리하여 외부로 출력할 수 있다. 또한, 하위계층 처리부(110)는 외부에서 입력되는 데이터를 상위계층 처리부(120)로 출력할 수 있다. 상위계층 처리부(120)는 하위 계층처리부(110)에서 출력된 데이터를 수신하고, 수신된 데이터를 상위계층 처리하여 하위계층 처리부(110)로 출력한다.
하위계층 처리부(110)는 외부로부터 입력된 데이터 또는 상위계층 처리부(120)로부터 입력된 데이터를 하위계층 정보를 이용하여 적어도 하나의 하위계층 플로우로 생성하고, 생성된 플로우 별로 하위 계층에 할당된 기능을 병렬적으로 수행할 수 있다. 하위계층 처리부(110)는 생성된 플로우별로 프로세서 또는 쓰레드에 할당하여, 생성된 플로우들을 병렬 처리할 수 있다.
여기에서, 플로우는 일련의 동일한 특성을 가진 패킷들의 집합을 말한다. 하위계층 플로우는 외부로부터 입력된 데이터에 대해 공통되는 적어도 하나의 특성을 가지고 있어서 같은 프로세서에서 처리될 데이터를 나타낼 수 있다.
하위계층 처리부(110)는 상위계층 처리부(120)와 연결되어 상위계층 처리부(120)에서 처리될 플로우를 출력하고, 상위계층 처리부(120)에서 처리된 플로우를 하위계층 처리부(110)와 연동하여 처리할 수 있다.
상위계층 처리부(120)는 상위계층 정보를 사용하여 상위계층 플로우를 생성하고 생성된 플로우 별로 상위 계층에 할당된 기능을 병렬로 수행할 수 있다. 상위계층 정보는 상위계층 플로우의 분류 기준을 포함할 수 있다. 상위계층 플로우는 하위계층 처리부(110)로부터 전달되는 데이터에 대해 공통되는 적어도 하나의 특성을 가지고 있어서 같은 프로세서에서 처리될 데이터 또는 하나의 프로세서 또는 쓰레드가 처리할 일의 단위를 나타낼 수 있다.
도 2는 도 1의 다계층 데이터 처리 장치(100)의 구성의 일 예를 나타내는 도면이다.
다계층 데이터 처리 장치(100)는 하위계층 처리부(110) 및 상위계층 처리부(120)를 포함할 수 있다.
하위계층 처리부(110)는 하위계층 플로우 생성부(212), 하위계층 분배부(214), 하위계층 프로세서 어레이(216), 하위계층 로컬 데이터베이스(218) 및 공통 데이터베이스(230)를 포함할 수 있다.
하위계층 플로우 생성부(212)는 외부에서 입력되는 데이터를 수신하여 하위계층 정보를 사용하여 적어도 하나의 하위계층 플로우를 생성할 수 있다. 또는 하위계층 플로우 생성부(212)는 후술할 상위계층 처리부(120)에서 입력되는 데이터를 수신하여 하위계층 정보를 사용하여 하위계층 플로우를 생성할 수 있다.
하위계층 분배부(214)는 하위계층 플로우 생성부(212)에 연결되어 생성된 플로우 별로 후술할 하위계층 프로세서 어레이(216)의 복수 개의 프로세서(10, 12, 14)에 하위계층 플로우를 할당할 수 있다. 예를 들어, 하위계층 분배부(214)는 동일한 플로우라고 판별된 데이터들은 동일한 프로세서, 예를 들어 프로세서(10)에 할당하여 처리되도록 할 수 있다.
하위계층 프로세서 어레이(216)는 멀티코어 프로세서로서 내부에 복수 개의 프로세서 혹은 코어를 포함할 수 있다. 하위계층 프로세서 어레이(216)는 하위계층 분배부(214)에 연결되어 하위계층 분배부(214)에서 분배된 플로우를 처리하여 처리된 데이터를 외부로 출력할 수 있다. 또는, 하위계층 프로세서 어레이(216)는 처리된 데이터를 후술할 상위계층 처리부(120)로 출력할 수 있다. 예를 들어, 하위계층 프로세서 어레이(216)의 프로세서(10)는 후술할 공통 데이터베이스(230)에 소정의 플로우에 대하여 적용될 하위계층 규칙 및 처리 정보에 대응하는, 상위계층 규칙 및 처리 정보가 있는 경우, 처리된 데이터를 상위계층 처리부(120)로 전달할 수 있다. 또는, 하위계층 프로세서 어레이(216)의 프로세서(10)는 처리된 하위계층 플로우의 상태에 비정상적인 특성이 발견되는 경우, 예를 들어, 해당 하위계층 플로우의 상태 정보에 비정상적인 패턴이 나타나는 경우 등 소정의 기준에 따라 하위계층 플로우에 대하여 상위계층 처리를 할 지 여부를 결정할 수 있다.
하위계층 프로세서 어레이(216)는 하위계층 프로세서 어레이(216)에 연결된 하위계층 로컬 데이터베이스(218)를 참조하여, 할당된 데이터를 처리할 수 있다. 하위계층 프로세서 어레이(216)는 3개의 프로세서(10, 12, 14)를 포함하는 것으로 도시되어 있으나, 하위계층 프로세서 어레이(216)에 포함되는 프로세서의 종류 및 개수는 제한되지 않는다.
하위계층 로컬 데이터베이스(218)에는 각 하위계층 플로우에 대해 적용되는 규칙 및 처리(rule set and action) 방식에 대한 정보가 테이블 형태로 저장될 수 있다. 하위계층 로컬 데이터베이스(218)에는 하위계층 플로우의 키 값, 예를 들어, 해시 값이 포함될 수 있다. 따라서, 소정의 플로우가 입력되면, 입력된 플로우에 대한 해시 값을 이용하여, 입력된 플로우에 적용될 규칙 및 처리 정보가 검색되어 이용될 수 있다.
도 2에는 하위계층 로컬 데이터베이스(218)가 하위계층 프로세서 어레이(216)에 연결되어 있는 것으로 도시하였으나, 하위계층 로컬 데이터베이스(218)는 하위계층 프로세서 어레이(216)에 포함된 각 프로세서마다 별도로 형성될 수 있다.
공통 데이터베이스(230)는 하위계층 프로세서 어레이(216)와 상위계층 프로세서 어레이(226)와 논리적으로 또는 물리적으로 연결되어 하위계층 처리부(110) 및 상위계층 처리부(120)가 공통적으로 이용가능하며 서로 연동하여 동작할 수 있도록 구성될 수 있다. 공통 데이터베이스(230)는 하위계층 플로우에 적용될 규칙 및 처리 정보에 대응하는 상위계층 플로우에 적용될 규칙 및 처리 정보를 저장할 수 있다.
예를 들어, 상위계층 처리부(120)의 프로세서(20)는 하위계층 처리부(120)에서 처리하는 것으로 결정한 소정의 데이터에 대해서 하위계층 처리부(110)의 프로세서가 이용하는 규칙 및 처리 정보를 공통 데이터베이스(230)에 변경하여 기록할 수 있다. 그러면, 하위계층 처리부(110)의 프로세서(10)는 공통 데이터베이스(230)에 변경된 규칙 및 처리 정보를 이용하여 데이터를 처리할 수 있다.
상위계층 처리부(120)는 상위계층 플로우 생성부(222), 상위계층 분배부(224), 상위계층 프로세서 어레이(226) 및 상위계층 로컬 데이터베이스(228)를 포함할 수 있다.
상위계층 플로우 생성부(222)는 하위계층 처리부(110)에서 입력되는 데이터를 수신하고, 수신된 데이터에 대해 상위계층 정보를 적용하여 상위계층 플로우를 생성할 수 있다. 상위계층 플로우 생성부(222)는 상위계층에서 처리할 데이터의 속성에 따라 최적화된 소정의 기준을 이용하여 하위계층 처리부(110)에서 전달된 데이터 또는 하위계층 플로우에 대한 상위계층 플로우를 생성할 수 있다.
상위계층 분배부(224)는 상위계층 플로우 생성부(222)에 연결되어 생성된 플로우 별로 상위계층 프로세서 어레이(226)의 복수 개의 프로세서 또는 쓰레드에 해당 플로우를 할당할 수 있다.
상위계층 프로세서 어레이(226)는, 하위계층 프로세서 어레이(216)와 마찬가지로, 멀티코어 프로세서로서 내부에 복수 개의 프로세서(20, 22, 24) 혹은 코어를 포함할 수 있다. 상위계층 프로세서 어레이(226)는, 상위계층 분배부(224)에 연결되어 상위계층 분배부(224)에서 할당된 플로우를 처리하여 하위계층 처리부(110)로 출력할 수 있다.
상위계층 프로세서 어레이(226)의 각 프로세서(20, 22, 24)는 상위계층 프로세서 어레이(226)에 연결된 상위계층 로컬 데이터베이스(228)를 참조하여, 할당된 데이터를 처리할 수 있다. 상위계층 로컬 데이터베이스(228)에는 각 상위계층 플로우에 대해 적용되는 규칙 및 처리 정보가 테이블 형태로 저장될 수 있다. 도 2에는 상위계층 로컬 데이터베이스(228)가 상위계층 프로세서 어레이(226)에 연결되어 있는 것으로 도시하였으나, 상위계층 로컬 데이터베이스(228)는 상위계층 프로세서 어레이(226)에 포함된 각 프로세서(20, 22, 24)마다 별도로 형성될 수 있다.
도 2에는 공통 데이터베이스(230)가 하위계층 처리부(110)에 포함되어 있는 것으로 도시되어 있으나, 상위계층 처리부(120)에 포함될 수도 있으며, 하위계층 처리부(110) 및 상위계층 처리부(120) 외부에 위치될 수도 있다. 하위계층 로컬 데이터베이스(128), 상위계층 로컬 데이터베이스(228) 및 공통데이터베이스(230)는 각각 외부 인터페이스를 통하여 네트워크 관리자가 접근하여 분류된 플로우에 대한 규칙 및 처리 정보를 변경가능하도록 구성될 수 있다.
또한, 도 2에서는, 다계층 데이터 처리 장치(100)가 하위계층 처리부(110) 및 상위계층 처리부(120)의 2개의 계층 처리부를 포함하는 것으로 도시되어 있으나, 다계층 데이터 처리 장치(100)는 3개 이상의 계층 처리부를 포함할 수 있다. 또한, 이때 각 계층 처리부는 데이터에 대하여 적어도 하나의 플로우를 생성하고, 생성된 플로우를 각 계층 처리부에 포함되는 복수 개의 프로세서에 할당하여 병렬 처리를 수행하도록 구성될 수 있다. 다계층 데이터 처리 장치(100)는 다계층 구조의 데이터를 처리하는 한 다양한 개인용 컴퓨터, 가전제품, 네트워크에 연결된 통신 장치 등 다양한 전자 제품으로 구현될 수 있다.
도 3은 패킷 데이터를 처리하는 다계층 데이터 처리 장치의 일 예를 나타내는 도면이다.
다계층 데이터 처리 장치(300)는 다계층 IP 패킷을 처리하는 장치로 L2-4계층 처리부(310) 및 L7계층 처리부(320)를 포함할 수 있다. L2-4계층 처리부(310) 는 네트워크를 통해 입력되는 패킷에 대해 계층 2 내지 계층 4의 정보를 이용하여 L2-4계층 플로우를 생성하고 생성된 L2-4계층 플로우를 병렬적으로 처리하도록 구성될 수 있다. L7계층 처리부(320)는 L2-4계층 처리부(310)로부터 입력되는 패킷의 계층 7의 정보를 이용하여 L7계층 플로우를 생성하고 생성된 L7계층 플로우를 병렬적으로 처리하도록 구성될 수 있다.
L2-4계층 처리부(310)는 L2-4계층 플로우 생성부(312), L2-4계층 분배부(314), L2-4계층 프로세서 어레이(316), L2-4계층 로컬 데이터베이스(318) 및 공통 데이터베이스(400)를 포함할 수 있다. L7계층 처리부(320)는 L7계층 플로우 생성부(322), L7계층 플로우 분배부(324), L7계층 프로세서 어레이(326) 및 L7계층 로컬 데이터베이스(328)를 포함할 수 있다.
여기에서, L2-4계층 프로세서 어레이(316)와 L7계층 프로세서어레이(326)는 각각 복수 개의 프로세서를 포함한다. L2-4계층 프로세서 어레이(316)와 L7계층 프로세서어레이(326)에는 다계층 데이터의 처리 성능 향상을 위하여 병렬처리 성능을 높이기 위해 플로우 단위로 프로세서 또는 쓰레드가 배정된다. L2-4계층 프로세서 어레이(316)의 복수 개의 프로세서(30, 32, 24)는 입력되는 IP패킷에 대한 L2-4계층 플로우를 처리하고, L7계층 프로세서 어레이(326)의 복수 개의 프로세서(40, 42, 44)는 L7계층 플로우를 처리한다.
L2-4계층 플로우 생성부(312)는 입력되는 IP패킷에 대해서 패킷 헤더에 포함된 L2-4계층 정보와 패킷 분류 규칙을 이용하여 하위 계층의 키 값을 만들고, 키 값에 따라 IP패킷을 분류하여 플로우를 생성하는 표면 분류(shallow classification)를 수행할 수 있다. 분류된 패킷에 대한 키 값은 입력된 패킷에 포함된 헤더에 포함된 L2-4계층 정보를 이용하여 만들어진 해시 값(hash value)일 수 있다. L2-4계층 정보는 출발지 IP 어드레스, 목적지 IP 어드레스, 소스 포트, 목적지 포트 및 프로토콜 ID를 포함할 수 있다. L2-4계층 플로우 생성부(312)는 출발지 IP 어드레스, 목적지 IP 어드레스, 소스 포트, 목적지 포트 및 프로토콜 ID 중 적어도 하나의 속성이 동일한 패킷을 동일한 플로우로 분류할 수 있다.
L2-4계층 플로우 생성부(312)는 분류된 IP 패킷들 즉, 플로우에 대한 상태 (생성, 변화,소멸) 또는 플로우 트래픽 상태(증가, 감소 등)을 관리할 수 있다. 플로우에 대한 상태 또는 플로우 트래픽 상태에 대한 정보는 L2-4계층 로컬 데이터베이스(318)에 저장되어 관리될 수 있다.
L2-4계층 분배부(314)는 L2-4계층 프로세서 어레이(316) 내의 복수 개의 프로세서들(30, 32, 34)로 정책에 따라 L2-4계층 플로우를 분배 또는 할당할 수 있다. 예를 들어, L2-4계층 분배부(314)는 동일한 플로우는 L2-4계층 프로세서 어레이(316)의 동일한 프로세서, 예를 들어, 프로세서(30)에 할당하는 정책을 이용할 수 있다.
L2-4계층 프로세서 어레이(316)는 내부에 복수 개의 프로세서 혹은 코어를 포함할 수 있다. L2-4계층 프로세서 어레이(316)의 각 프로세서(30, 32, 34)는 하나 이상의 쓰레드를 통해서 패킷을 처리할 수 있다. 이때 어떤 플로우가 어떤 코어 혹은 쓰레드에 배정되는가에 대한 알고리듬은 전술한 L2-4계층 분배부(314)의 정책을 따를 수 있다.
L2-4계층 프로세서 어레이(316)의 각 프로세서(30, 32, 34)는 L2-4계층 로컬 데이터베이스(318) 및 공통 데이터베이스(400)의 규칙 및 처리 정보를 참조하여 L2-4계층 플로우를 처리할 수 있다. 예를 들어, L2-4계층 프로세서 어레이(316)는 L2-4계층 로컬 데이터베이스(318)의 정보를 이용하여 분류된 패킷을 거부하거나, 폐기하거나, 원래 의도한 네트워크로 전송하거나, 또는 패킷을 가로채어 L7계층 처리부(320)로 전달할 수 있다.
L2-4계층 로컬 데이터베이스(318)에는 각 L2-4계층 플로우에 대해 적용되는 규칙 및 처리 방식에 대한 정보가 테이블 형태로 저장될 수 있다. 도 3에는 L2-4계층 로컬 데이터베이스(318)가 하위계층 프로세서 어레이(316)에 연결되어 있는 것으로 도시하였으나, L2-4계층 로컬 데이터베이스(318)는 하위계층 프로세서 어레이(316)에 포함된 각 프로세서마다 별도로 형성될 수 있다.
L7계층 플로우 생성부(322)는 L2-4계층 프로세서 어레이(316)로부터 수신되는 패킷에 대해서 L7계층 정보와 분류 규칙을 이용하여, 분류된 패킷에 대한 키 값을 만들어서 패킷을 분류하고 적어도 하나의 L7계층 플로우를 생성하고, L7계층 플로우의 상태를 관리할 수 있다. 예를 들어, L7계층 정보는 패킷의 페이로드에 포함된 데이터를 포함할 수 있다. 따라서, L7계층 플로우는 L2-4계층 정보에 따라 생성된 L2-4계층 플로우를 패킷의 페이로드의 내용을 이용하여 분류하여 생성될 수 있다.
L7계층 분배부(324)는 L7계층 프로세서 어레이(326) 내의 복수 개의 프로세서(40, 42, 44)에게 정책에 따라 L7계층 플로우를 배정하는 역할을 한다. 여기서는 L7계층 분배부(324)는 동일한 L7 플로우는 L7계층 프로세서 어레이(326) 내의 동일한 프로세서, 예를 들어, 프로세서(40)에 배정하는 정책을 이용할 수 있다.
L7계층 프로세서 어레이(326)는 내부에 복수 개의 프로세서 혹은 코어를 포함할 수 있다. L7계층 프로세서 어레이(326)의 각 프로세서는 하나 이상의 쓰레드를 통해서 패킷을 처리할 수 있다. 이때 어떤 플로우가 어떤 코어 혹은 쓰레드에 배정되는가에 대한 알고리듬은 전술한 L7계층 분배부(324)의 정책을 따를 수 있다.
L7계층 로컬 데이터베이스(328)에는 L7계층의 각각의 플로우에 대해 적용되는 규칙 및 처리 방식에 대한 정보가 테이블 형태로 저장될 수 있다. 도 3에는 L7계층 로컬 데이터베이스(328)가 L7계층 프로세서 어레이(326)에 연결되어 있는 것으로 도시하였으나, L7계층 로컬 데이터베이스(328)는 하위계층 프로세서 어레이(326)에 포함된 각 프로세서마다 별도로 형성될 수 있다.
공통 데이터베이스(400)는 L2-4계층 처리부(310)와 L7계층 처리부(320)에서 공통으로 액세스 가능한 규칙 및 처리 정보 테이블을 포함할 수 있다, 공통 데이터베이스(400)는 L2-4계층 로컬 데이터베이스(318) 및 L7계층 로컬 데이터베이스(328)과는 달리, L2-4계층 처리부(310)와 L7계층 처리부(320)에서 연동하여 공통으로 사용될 수 있다.
L7계층 처리부(320)는 L7계층 처리부(320)로부터 수신된 패킷의 페이로드를 분석한 결과, L2-4계층 처리부(310)에서 처리하는 것으로 결정하는 경우, L7계층 처리부(320)는 L2-4계층 처리부(310)로부터 수신된 패킷을 다시 L2-4계층 처리부(310)로 전달하고, L7계층 처리부(320)는 L2-4계층 처리부(310)에서 패킷을 처리할 수 있도록 공통 데이터베이스(400)에 L2-L4계층 기반 규칙 및 처리 정보를 변경할 수 있다. 그러면, L2-4계층 처리부(310)는 공통 데이터베이스(400)로부터 변경된 L2-4계층 기반 규칙 및 처리 정보를 판독하여, L7계층 처리부(320)로부터 전달된 패킷을 처리할 수 있다.
다계층 데이터 처리 장치(300)는 라우터(router), 브리지(bridge), 개인용 컴퓨터, 네트워크에 연결된 워크스테이션 등 다양한 장치로 구현될 수 있다. 이와 같은 다계층 데이터 처리 장치(300)를 이용하여 계층(layer) 1부터 계층 7까지 전(full) 계층(layer)으로 구성된(또는 일부 계층들로 구성된) 데이터를 동시에 분산 병렬 처리를 효율적으로 수행할 수 있다.
도 4는 도 3의 다계층 데이터 처리 장치(300)에 포함되는 공통 데이터베이스 구조의 일 예를 나타내는 도면이다.
공통 데이터베이스(400)는 L2-4계층 처리를 위해 L2-4계층 기반 규칙 및 처리(rule set and action) 정보 테이블(410)과 L7계층 기반 규칙 및 처리 정보 테이블(420)를 포함한다.
공통 데이터베이스(400)는 L2-4계층 기반 규칙 및 처리 정보 테이블(410)의 각 열(row)이 L7계층에서 사용되는 L7계층 기반 규칙 및 처리 정보 테이블(420)의 각 열과 대응되도록 구성될 수 있다. 예를 들어, L2-4계층 기반 규칙 및 처리 정보 테이블(410)에서 하나의 규칙 및 처리 정보는 L7계층 기반 규칙 및 처리 정보 테이블(420)의 하나의 규칙 및 처리 정보에 1:1로 대응되거나 또는 1:n (n은 자연수)으로 대응될 수 있다. L2-4계층 기반 규칙 및 처리 정보 테이블(410)과 L7계층 기반 규칙 및 처리 정보 테이블(420)은 L2-4계층의 플로우의 해시 값을 이용하여 대응되도록 구성될 수 있다.
간명한 설명을 위해, 1:1 대응으로 가정한다면, 소정의 L2-4계층 플로우에 대하여, L2-4계층 처리만 필요만 필요할 경우에는 L2-4계층 규칙 및 처리 정보 테이블(410)에는 규칙 및 처리 정보가 있으나, L7계층 기반 규칙 및 처리 정보가 비워있는 경우이다. L2-4계층 기반 규칙 및 처리 정보 및 L7계층 기반 규칙 및 처리 정보가 대응되어 있는 경우, 소정의 L2-4계층 플로우에 대하여, L2-4 계층 처리 후 L7계층 처리가 되어 출력된다. 또한, L7계층 처리를 통해, L2-4계층 기반 규칙 및 처리 정보가 변경될 수 있는 경우가 있으며, 이 경우에는 L7계층 처리부(320)의 판단에 따라 L7계층으로 전달된 패킷을 다시 L2-4계층 처리부(310)에 전달하여 하위계층 처리하는 경우이다.
또한, 공통 데이터베이스(400)은 L2-4계층 및 L7계층에서 생성된 플로우의 상태(생성, 변화,소멸), 플로우 트래픽 상태(증가, 감소 등), 정책(policy)등을 조합해서 지능적으로 갱신되는 구조를 가질 수 있다.
도 5는 다계층 데이터 처리 방법의 일 예를 나타내는 순서도이다.
도 2 및 도 5를 참조하면, 하위계층 처리부(110)에서 네트워크를 통해 입력된 데이터에 하위계층 정보를 이용하여 하위계층 플로우로 생성한다(510).
하위계층 처리부(110)에서 생성된 하위계층 플로우를 복수 개의 하위계층 프로세서에 할당하여 하위계층 플로우에 대한 하위계층 처리를 병렬적으로 수행한다(520).
하위계층 처리부(110)에서 수신된 데이터 중에서 상위계층에서 처리되어야 하는 데이터를 상위계층 처리부(120)로부터 전달한다(530).
상위계층 처리부(120)에서 전달받은 패킷들을 상위계층 정보를 이용하여 상위계층 플로우로 생성한다(540).
상위계층 처리부(120)에서 생성된 상위계층 플로우를 복수 개의 상위계층 프로세서에 할당하여 상위계층 플로우에 대한 상위계층 처리를 병렬적으로 수행한다(550).
도 6은 다계층 데이터 처리 방법의 다른 예를 나타내는 순서도이다.
도 2 및 도 6을 참조하면, 데이터가 입력되면(610), 하위계층 플로우 생성부(112)는 데이터의 하위 계층 정보를 사용하여 적어도 하나의 하위계층 플로우를 생성한다(612).
하위계층 분배부(214)는 생성된 하위계층 플로우를 검사하여 플로우 단위로 상위 계층 처리가 필요한지를 판단할 수 있다(614). 판단 결과 상위 계층 처리가 필요하지 않다면, 생성된 하위계층 플로우는 하위계층 분배부(214)의 스케줄링 정책에 의해 하위계층 프로세서 어레이(216)의 한 프로세서 혹은 쓰레드에 배정되어 하위 계층 처리가 병렬적으로 수행되어(614), A형 출력이 실행된다(616). 여기에서, A형 출력은 하위계층 처리만 수행한 결과를 나타낸다. 상위 계층 처리가 필요한지 여부는 하위계층 프로세서 어레이(216)에 의해 수행될 수도 있으며, 동작 614 및 동작 616의 동작 순서는 서로 변경될 수 있다. 이와 같이, 하위계층 플로우에 대해 하위계층 처리만 필요한 경우, 입력된 데이터에 대한 하위계층 처리로 해당 플로우의 처리가 완료될 수 있다.
하위계층 분배부(214)에서, 생성된 하위계층 플로우에 대하여 상위 계층 처리가 필요하다고 결정하는 경우(614), 프로세서 어레이(216)는 생성된 플로우 정보와 함께 분석이 필요하다고 결정된 데이터를 상위계층 처리부(120)로 전달한다. 상위계층 처리부(120)의 상위계층 플로우 생성부(222)는 상위계층 플로우를 생성하고, 상위계층 분배부(224)는 생성된 플로우를 상위계층 프로세서 어레이(226)에 할당하여 상위계층 처리를 병렬적으로 수행한다(620).
한편, 상위계층 프로세서 어레이(226)에서 상위 계층에서 상위계층 플로우로 생성되어 처리된 하위계층 플로우에 대해서 검사하여 하위 계층 처리가 필요한지를 분석할 수 있다(622). 하위 계층 처리가 불필요하면(622), 상위 계층 처리부(220)에서 동작 620에서 수행된 상위계층 처리 결과를 출력하는 B형 출력이 실행된다(624). 하위계층 처리(616)가 수행된 다음 상위계층 처리(620)가 수행되는 경우에는 B형 출력은 하위계층 처리 결과 및 상위계층 처리 결과를 포함할 수 있다.
하위 계층 처리 필요성 분석한 결과, 하위 계층 처리가 필요하다고 결정되는 경우(622), 상위계층 프로세서 어레이(226)는 하위 계층 플로우 정보와 상위계층 처리를 통해 생성된 상위 계층 플로우 처리 결과를 하위계층 처리부(110)으로 보내고 공통 데이터베이스(230)를 이용한 연동 계층 처리를 수행할 수 있다(626). 공통 데이터베이스(230)를 이용한 연동 계층 처리는 전술한 바와 같이, 상위계층 프로세서 어레이(226)에서 해당 플로우에 대한 하위계층 규칙 및 처리 정보를 변경하고, 하위계층 프로세서 어레이(216)에서 변경된 하위계층 규칙 및 처리 정보를 이용하여 상위계층 프로세서 어레이(226)로부터 전달되는 데이터를 처리하는 것이다. 이와 같은, 연동 계층 처리를 수행하여(626), 하위계층 프로세서 어레이(216)는 연동 계층 처리 결과를 출력하는 C형 출력을 수행할 수 있다(628). 이와 같이, 상위계층 처리부(120)는 하위계층 처리가 필요하다고 결정되는 경우, 자신이 하위계층 처리를 수행하지 않고, 공통 데이터베이스(230)를 이용하여 하위계층 처리부(110)에서 하위계층 처리하도록 함으로써, 병렬 처리 효율을 높일 수 있다.
이와 같이, 다계층(multi-layer) 구조를 가진 데이터를 개별 계층적으로 병렬 처리하여, 상하 계층에서 각각 플로우를 생성하고 멀티프로세서의 각 코어 혹은 쓰레드에 할당함으로써 병렬 처리 비율을 증가시킬 수 있다. 또한, 속성이 다른 계층을 분류하여 병렬 처리함으로써 병렬 처리에 문제가 되는 집약성(locality) 문제를 해결할 수 있다.
또한, 상하 계층에서 기능 및 성능에 맞게 프로세서들을 그룹핑하여 확장가능하게 구성할 수 있다. 이와 같이 기능 및 성능을 계층적으로 연산함으로써 소모 전력 제어가 용이하게 될 수 있다. 또한, 멀티코어 프로세서를 두 개 이상의 칩으로 2단 구성 이상으로 구성하여 연동하여도 하나의 칩으로 구성한 멀티코어 프로세서와 같은 효과를 낼 수 있다.
본 발명의 일 양상은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있다. 상기의 프로그램을 구현하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 디스크 등을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.
이상의 설명은 본 발명의 일 실시예에 불과할 뿐, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 본질적 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현할 수 있을 것이다. 따라서, 본 발명의 범위는 전술한 실시예에 한정되지 않고 특허 청구범위에 기재된 내용과 동등한 범위 내에 있는 다양한 실시 형태가 포함되도록 해석되어야 할 것이다.

Claims (11)

  1. 입력된 데이터를 하위계층 정보를 이용하여 적어도 하나의 하위계층 플로우로 생성하고, 상기 생성된 하위계층 플로우를 복수 개의 하위계층 프로세서에 할당하여 상기 하위계층 플로우에 대한 하위계층 처리를 병렬적으로 수행하는 하위계층 처리부; 및
    상기 하위계층 처리부로부터 전달받은 데이터를 상위계층 정보를 이용하여 적어도 하나의 상위계층 플로우로 생성하고, 상기 생성된 상위계층 플로우를 복수 개의 상위계층 프로세서에 할당하여 상기 상위계층 플로우에 대한 상위계층 처리를 병렬적으로 수행하는 상위계층 처리부를 포함하는 다계층 데이터 처리 장치.
  2. 제1항에 있어서,
    상기 하위계층 처리부는,
    상기 수신된 데이터를 하위계층 정보를 이용하여 적어도 하나의 하위계층 플로우로 생성하는 하위계층 플로우 생성부;
    상기 적어도 하나의 하위계층 플로우를 각각 처리할 프로세서로 분배하는 하위계층 분배부; 및
    상기 하위계층 분배부에 의해 분배된 플로우를 플로우별로 각각 처리하는 복수 개의 프로세서를 포함하는 다계층 데이터 처리 장치.
  3. 제1항에 있어서,
    상기 상위계층 처리부는,
    상기 하위계층 처리부로부터 수신된 데이터를 상위계층 정보를 이용하여 적어도 하나의 상위계층 플로우로 생성하는 상위계층 플로우 생성부;
    상기 적어도 하나의 상위계층 플로우를 각각 처리할 프로세서로 분배하는 상위계층 분배부; 및
    상기 상위계층 분배부에 의해 분배된 플로우를 플로우별로 각각 처리하는 복수 개의 프로세서를 포함하는 다계층 데이터 처리 장치.
  4. 제1항에 있어서,
    상기 하위계층 처리부 및 상기 상위계층 처리부가 공통적으로 이용가능하도록 연결되며, 상기 하위계층 처리부 및 상기 상위계층 처리부가 이용할 규칙 및 처리 정보를 저장하는 공통 데이터베이스를 더 포함하는 다계층 데이터 처리 장치.
  5. 제4항에 있어서,
    상기 공통 데이터베이스는 하위계층 플로우에 적용될 규칙 및 처리 정보 및 상기 상위계층 플로우에 적용될 규칙 및 처리 정보가 서로 대응되도록 저장되는 다계층 데이터 처리 장치.
  6. 제4항에 있어서,
    상기 상위계층 처리부는 상기 하위계층 처리부로부터 수신된 데이터를 상기 하위계층 처리부에서 처리하도록 결정하는 경우, 상기 공통 데이터베이스에 상기 데이터에 대한 하위계층 규칙 및 처리 정보를 변경하고, 상기 하위계층 처리부로부터 수신된 데이터를 상기 하위계층 처리부로 전달하고,
    상기 하위계층 처리부는 상기 공통 데이터베이스의 상기 변경된 하위계층 규칙 및 처리 정보를 이용하여 상기 상위계층 처리부로부터 전달된 데이터를 처리하는 다계층 데이터 처리 장치.
  7. 제1항에 있어서,
    상기 하위계층 처리부는 입력되는 패킷에 대하여 L2 계층 내지 L4 계층에 따른 처리를 수행하고, 상기 상위계층 처리부는 입력되는 패킷에 대하여 L7 계층에 따른 처리를 수행하는 다계층 데이터 처리 장치.
  8. 제7항에 있어서,
    상기 데이터가 IP 패킷인 경우, 상기 하위계층 정보는 출발지 IP 어드레스, 목적지 IP 어드레스, 소스 포트,목적 포트 및 프로토콜 ID를 포함하는 다계층 데이터 처리 장치.
  9. 입력된 데이터를 하위계층 처리부에서 하위계층 정보를 이용하여 적어도 하나의 하위계층 플로우로 생성하는 단계;
    상기 하위계층 처리부에서 상기 생성된 하위계층 플로우를 복수 개의 하위계층 프로세서에 할당하여 상기 하위계층 플로우에 대한 하위계층 처리를 병렬적으로 수행하는 단계;
    상기 하위계층 처리부에서 상기 수신된 데이터 중에서 상위계층에서 처리되어야 하는 데이터를 상위계층 처리부로부터 전달하는 단계;
    상기 상위계층 처리부에서 상기 전달받은 데이터를 상위계층 정보를 이용하여 적어도 하나의 상위계층 플로우로 생성하는 단계; 및
    상기 상위계층 처리부에서 상기 생성된 상위계층 플로우를 복수 개의 상위계층 프로세서에 할당하여 상기 상위계층 플로우에 대한 상위계층 처리를 병렬적으로 수행하는 단계를 포함하는 다계층 데이터 처리 방법.
  10. 제9항에 있어서,
    상기 하위계층 처리부 및 상기 상위계층 처리부가 공통적으로 이용가능하도록 연결되며, 상기 하위계층 처리부 및 상기 상위계층 처리부가 이용할 규칙 및 처리 정보를 저장하는 공통 데이터베이스를 이용하여 데이터를 처리하는 단계를 더 포함하는 다계층 데이터 처리 방법.
  11. 제9항에 있어서,
    상기 상위계층 처리부는 상기 하위계층 처리부로부터 수신된 데이터를 상기 하위계층 처리부에서 처리하도록 결정하는 경우, 상기 공통 데이터베이스에 상기 수신된 데이터에 대한 하위계층 규칙 및 처리 정보를 변경하는 단계;
    상기 상위계층 처리부는 상기 하위계층 처리부로부터 상기 수신된 데이터를 상기 하위계층 처리부로 전달하는 단계; 및
    상기 하위계층 처리부는 상기 공통 데이터베이스로부터 판독되는 상기 변경된 하위계층 규칙 및 처리 정보를 이용하여 상기 상위계층 처리부로부터 전달된 데이터를 처리하는 단계를 더 포함하는 다계층 데이터 처리 방법.
KR1020100114586A 2010-11-17 2010-11-17 다계층 데이터 처리 장치 및 방법 KR101440122B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100114586A KR101440122B1 (ko) 2010-11-17 2010-11-17 다계층 데이터 처리 장치 및 방법
US13/298,746 US20120124212A1 (en) 2010-11-17 2011-11-17 Apparatus and method for processing multi-layer data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100114586A KR101440122B1 (ko) 2010-11-17 2010-11-17 다계층 데이터 처리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20120053357A true KR20120053357A (ko) 2012-05-25
KR101440122B1 KR101440122B1 (ko) 2014-09-12

Family

ID=46048827

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100114586A KR101440122B1 (ko) 2010-11-17 2010-11-17 다계층 데이터 처리 장치 및 방법

Country Status (2)

Country Link
US (1) US20120124212A1 (ko)
KR (1) KR101440122B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170056773A (ko) * 2015-11-13 2017-05-24 한국전자통신연구원 플로우 기반 병렬 처리 방법 및 장치

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0888666A (ja) * 1994-09-19 1996-04-02 Kokusai Denshin Denwa Co Ltd <Kdd> 通信プロトコルの並列処理のためのバッファ制御方法
JP3397144B2 (ja) 1998-09-29 2003-04-14 日本電気株式会社 パケット処理装置とパケット処理方法とパケット交換機
US6854117B1 (en) * 2000-10-31 2005-02-08 Caspian Networks, Inc. Parallel network processor array
US7039061B2 (en) * 2001-09-25 2006-05-02 Intel Corporation Methods and apparatus for retaining packet order in systems utilizing multiple transmit queues
US7512706B2 (en) * 2004-12-16 2009-03-31 International Business Machines Corporation Method, computer program product, and data processing system for data queuing prioritization in a multi-tiered network
US7733891B2 (en) * 2005-09-12 2010-06-08 Zeugma Systems Inc. Methods and apparatus to support dynamic allocation of traffic management resources in a network element
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
US7644150B1 (en) * 2007-08-22 2010-01-05 Narus, Inc. System and method for network traffic management

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170056773A (ko) * 2015-11-13 2017-05-24 한국전자통신연구원 플로우 기반 병렬 처리 방법 및 장치

Also Published As

Publication number Publication date
KR101440122B1 (ko) 2014-09-12
US20120124212A1 (en) 2012-05-17

Similar Documents

Publication Publication Date Title
CN107710238B (zh) 具有堆栈存储器的硬件加速器上的深度神经网络处理
US8478878B2 (en) Placement of virtual machines based on server cost and network cost
US10305815B2 (en) System and method for distributed resource management
KR101554113B1 (ko) 장치 집합체에서 리소스 활용의 최적화
US10419437B2 (en) Quasi-agentless cloud resource management
CN105045871B (zh) 数据聚合查询方法及装置
CA3054607C (en) Systems and methods for compute node management protocols
CN108228354A (zh) 调度方法、系统、计算机设备和介质
CN108353040A (zh) 用于分布式分组调度的系统和方法
WO2013080152A1 (en) Dynamically configurable placement engine
US10554782B2 (en) Agile hostpool allocator
CN106095940A (zh) 一种基于任务负载的数据迁移方法
Zhang et al. The real-time scheduling strategy based on traffic and load balancing in storm
CN111158909A (zh) 集群资源分配处理方法、装置、设备及存储介质
Xia et al. Large-scale VM placement with disk anti-colocation constraints using hierarchical decomposition and mixed integer programming
Luizelli et al. How physical network topologies affect virtual network embedding quality: A characterization study based on ISP and datacenter networks
Kumar et al. Mobile networks-on-chip mapping algorithms for optimization of latency and energy consumption
Tantalaki et al. Linear scheduling of big data streams on multiprocessor sets in the cloud
Imdoukh et al. Optimizing scheduling decisions of container management tool using many‐objective genetic algorithm
CN108737455B (zh) 网络业务识别装置及方法
KR101440122B1 (ko) 다계층 데이터 처리 장치 및 방법
US20110107059A1 (en) Multilayer parallel processing apparatus and method
Yang et al. Joint optimization of MapReduce scheduling and network policy in hierarchical data centers
KR101594112B1 (ko) 플로우 기반의 네트워크 환경에서의 패킷 스케줄링 장치 및 방법
Reali et al. Orchestration of cloud genomic services

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: 20180226

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180711

Year of fee payment: 5