KR20140133295A - 멀티 프로세서를 구비하는 데이터 병렬 처리 장치 및 그 방법 - Google Patents

멀티 프로세서를 구비하는 데이터 병렬 처리 장치 및 그 방법 Download PDF

Info

Publication number
KR20140133295A
KR20140133295A KR1020130053286A KR20130053286A KR20140133295A KR 20140133295 A KR20140133295 A KR 20140133295A KR 1020130053286 A KR1020130053286 A KR 1020130053286A KR 20130053286 A KR20130053286 A KR 20130053286A KR 20140133295 A KR20140133295 A KR 20140133295A
Authority
KR
South Korea
Prior art keywords
flow
data
information
processor
generated
Prior art date
Application number
KR1020130053286A
Other languages
English (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 KR1020130053286A priority Critical patent/KR20140133295A/ko
Priority to US14/038,538 priority patent/US20140337856A1/en
Publication of KR20140133295A publication Critical patent/KR20140133295A/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
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • 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
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • 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)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 프로세서 배열(array)로 구성된 멀티 프로세서 구조에서 프로세서의 부하 정도에 따라서 플로우 ID의 생성 방식을 다르게 하여 입력 데이터를 병렬 처리하는 데이터 병렬 처리 장치를 제안한다. 본 발명에서 제안된 장치는 입력 데이터에 대하여 버퍼의 상태에 따라 차별된 플로우 ID를 생성하는 플로우 ID 생성부; 동일한 플로우 ID를 가지는 데이터들을 지정된 프로세서로 할당하는 데이터 할당부; 및 각 프로세서에 할당된 데이터들을 순차적으로 처리하는 데이터 처리부를 포함함으로써, 병렬 처리 성능을 종래보다 향상시킬 수가 있다.

Description

멀티 프로세서를 구비하는 데이터 병렬 처리 장치 및 그 방법 {Apparatus for parallel processing data with multi-processor, and method thereof}
본 발명은 패킷을 비롯한 데이터를 병렬 처리하는 장치 및 그 방법에 관한 것이다. 보다 상세하게는, 멀티 프로세서를 이용하여 패킷을 비롯한 데이터를 병렬 처리하는 장치 및 그 방법에 관한 것이다.
멀티 프로세서는 데이터 처리 성능 및 소모 전력 면에서 유리하고 다양한 프로그램을 탑재하여 기능을 구현할 수 있다는 장점 때문에 단말, 가전, 통신, 방송 등에서 활용이 증대될 것으로 예측되고 있다.
Amdahl의 법칙에 따르면 멀티 프로세서에 의한 처리 속력 증가(speed up) S는
S=1/(1-fp+fp/N)
이다. 여기서 S는 speed up, fp는 병렬 처리 비율, N은 멀티 프로세서의 개별 프로세서 수를 나타낸다.
위 식에서 알 수 있듯이 멀티 프로세서에 의한 처리 속력 증가는 병렬 처리 비율에 관계한다. 병렬 처리 비율이 적을 경우에는 멀티 프로세서를 구성하는 개별 프로세서의 수가 증가하여도 멀티 프로세서의 처리 속력은 증가하지 않고 포화되는 것을 알 수 있다.
대략 2000년도부터 계층 1부터 계층 4까지를 포함하는 네트워크에서 패킷 처리 속력을 개선시키기 위해 네트워크 프로세서에 멀티 프로세서를 적용하기 시작하였다. Amdahl의 법칙에서 알 수 있듯이 병렬 처리 속력을 개별 프로세서 수에 대해 선형적으로 증가시키기 위해서는 직렬 처리 부분보다 병렬 처리 부분이 월등히 많아야 효과가 있다.
Amdahl의 법칙에 따라 병렬 처리 비율을 증가시키는 구조를 제시하여 네트워크에서 병렬 처리 성능을 개선시킨 선행기술로 미국등록특허 제6,854,117호가 있다.
이 선행기술은 멀티 프로세서에서 개별 프로세서의 직렬 처리 비율을 줄이고 병렬 처리 비율을 증가시킴으로써 Amdahl의 법칙에 의거하여 병렬 처리 속력 증가가 프로세서 수에 따라 선형적으로 증가하도록 하는 기술이다. 특히 HOL(Head Of Line) blocking을 줄일 수 있기 때문에 패킷 처리 시간을 줄일 수 있는 장점이 있다.
그러나 이 선행기술은 플로우 ID가 다양하게 입력되는 경우에는 우수한 병렬 처리 성능을 나타내지만 소수의 플로우 ID 혹은 동일한 플로우 ID를 갖는 데이터가 지속적으로 입력되는 경우 임의의 프로세서로만 부하가 편중되어 입력 데이터를 처리하지 못하여 손실이 발생하거나 데이터 처리 지연 시간이 지나치게 길어지는 문제점이 있다.
본 발명은 상기한 문제점을 해결하기 위해 안출된 것으로서, 다수 개의 프로세서들로 프로세서 배열(array)을 구성하고 프로세서의 부하 정도에 따라서 플로우 ID의 생성 방식을 다르게 하여 데이터 병렬 처리를 수행하여 병렬 처리 성능을 개선시키는 데이터 병렬 처리 장치 및 그 방법을 제안함을 목적으로 한다.
그러나 본 발명의 목적은 상기에 언급된 사항으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명은 상기한 목적을 달성하기 위해 안출된 것으로서, 입력 데이터에 대하여 버퍼의 상태에 따라 차별된 플로우 ID를 생성하는 플로우 ID 생성부; 동일한 플로우 ID를 가지는 데이터들을 지정된 프로세서로 할당하는 데이터 할당부; 및 각 프로세서에 할당된 데이터들을 순차적으로 처리하는 데이터 처리부를 포함하는 것을 특징으로 하는 멀티 프로세서를 구비하는 데이터 병렬 처리 장치를 제안한다.
바람직하게는, 상기 플로우 ID 생성부는 평상시 제1 방식으로 플로우 ID를 생성하며, 상기 버퍼를 통한 특정 프로세서로의 데이터 전송이 지연될 때 상기 제1 방식보다 계위 개수나 필드 정보가 더욱 세분화된 제2 방식으로 플로우 ID를 생성한다.
바람직하게는, 상기 플로우 ID 생성부는 상기 제1 방식으로 플로우 ID를 생성할 때 1계층 내지 4계층 중 입력 패킷과 관련되어 선택된 계층의 정보와 상기 입력 패킷의 헤더 정보를 이용하여 플로우 ID를 생성하며, 상기 제2 방식으로 플로우 ID를 생성할 때 상기 계층의 정보와 상기 헤더 정보 및 페이로드 필드 정보를 이용하여 플로우 ID를 생성한다.
바람직하게는, 상기 플로우 ID 생성부는 상기 페이로드 필드 정보로 5계층 내지 7계층 중 상기 입력 패킷과 관련되어 선택된 계층의 정보를 이용한다.
바람직하게는, 상기 플로우 ID 생성부는 적어도 두개의 임계값을 이용하여 각 임계값과의 관계에 따라 결정된 방식으로 플로우 ID를 생성한다.
바람직하게는, 상기 데이터 할당부는 상기 제2 방식으로 플로우 ID가 생성되면 모든 프로세서들이 유휴 상태가 될 때까지 상기 제2 방식으로 생성된 플로우 ID를 상기 버퍼에 저장한다.
바람직하게는, 상기 데이터 처리부는 데이터베이스에 저장된 포워딩 정보나 QoS 정보를 이용하여 데이터들을 처리한다.
또한 본 발명은 입력 데이터에 대하여 버퍼의 상태에 따라 차별된 플로우 ID를 생성하는 플로우 ID 생성 단계; 동일한 플로우 ID를 가지는 데이터들을 지정된 프로세서로 할당하는 데이터 할당 단계; 및 각 프로세서에 할당된 데이터들을 순차적으로 처리하는 데이터 처리 단계를 포함하는 것을 특징으로 하는 멀티 프로세서를 이용한 데이터 병렬 처리 방법을 제안한다.
바람직하게는, 상기 플로우 ID 생성 단계는 평상시 제1 방식으로 플로우 ID를 생성하며, 상기 버퍼를 통한 특정 프로세서로의 데이터 전송이 지연될 때 상기 제1 방식보다 계위 개수나 필드 정보가 더욱 세분화된 제2 방식으로 플로우 ID를 생성한다.
바람직하게는, 상기 플로우 ID 생성 단계는 상기 제1 방식으로 플로우 ID를 생성할 때 1계층 내지 4계층 중 입력 패킷과 관련되어 선택된 계층의 정보와 상기 입력 패킷의 헤더 정보를 이용하여 플로우 ID를 생성하며, 상기 제2 방식으로 플로우 ID를 생성할 때 상기 계층의 정보와 상기 헤더 정보 및 페이로드 필드 정보를 이용하여 플로우 ID를 생성한다.
바람직하게는, 상기 플로우 ID 생성 단계는 상기 페이로드 필드 정보로 5계층 내지 7계층 중 상기 입력 패킷과 관련되어 선택된 계층의 정보를 이용한다.
바람직하게는, 상기 플로우 ID 생성 단계는 적어도 두개의 임계값을 이용하여 각 임계값과의 관계에 따라 결정된 방식으로 플로우 ID를 생성한다.
바람직하게는, 상기 데이터 할당 단계는 상기 제2 방식으로 플로우 ID가 생성되면 모든 프로세서들이 유휴 상태가 될 때까지 상기 제2 방식으로 생성된 플로우 ID를 상기 버퍼에 저장한다.
바람직하게는, 상기 데이터 처리 단계는 데이터베이스에 저장된 포워딩 정보나 QoS 정보를 이용하여 데이터들을 처리한다.
본 발명은 프로세서 배열(array)로 구성된 멀티 프로세서 구조에서 프로세서의 부하 정도에 따라서 플로우 ID의 생성 방식을 다르게 하여 입력 데이터를 병렬 처리함으로써, 멀티 프로세서에서 병렬 처리 비율을 증가시킬 수 있고 기능 및 성능에 따라서 동작함으로써 소모 전력 제어가 용이한 장점을 갖는다.
도 1은 본 발명의 바람직한 실시예에 따른 데이터 병렬 처리 장치를 개략적으로 도시한 블록도이다.
도 2는 본 발명의 일실시예에 따른 병렬 처리 구조를 도시한 개념도이다.
도 3은 도 2의 구조를 통한 1계위 병렬 처리 동작 원리를 도시한 개념도이다.
도 4는 도 2의 구조를 통한 2계위 병렬 처리 동작 원리를 도시한 개념도이다.
도 5는 본 발명의 바람직한 실시예에 따른 데이터 병렬 처리 방법을 개략적으로 도시한 흐름도이다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 우선 각 도면의 구성요소들에 참조 부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다. 또한, 이하에서 본 발명의 바람직한 실시예를 설명할 것이나, 본 발명의 기술적 사상은 이에 한정하거나 제한되지 않고 당업자에 의해 변형되어 다양하게 실시될 수 있음은 물론이다.
도 1은 본 발명의 바람직한 실시예에 따른 데이터 병렬 처리 장치를 개략적으로 도시한 블록도이다. 도 1에 따르면, 데이터 병렬 처리 장치(100)는 플로우 ID 생성부(110), 데이터 할당부(120), 데이터 처리부(130), 전원부(140) 및 주제어부(150)를 포함한다.
플로우 ID 생성부(110)는 입력 데이터에 대하여 버퍼의 상태에 따라 차별된 플로우 ID를 생성하는 기능을 수행한다.
평상시 플로우 ID 생성부(110)는 제1 방식으로 플로우 ID를 생성한다. 입력 데이터가 입력 패킷일 때 플로우 ID 생성부(110)는 1계층 내지 4계층 중 입력 패킷과 관련되어 선택된 계층의 정보, 입력 패킷의 헤더 정보 등을 이용하여 플로우 ID를 생성한다.
반면 버퍼를 통한 특정 프로세서로의 데이터 전송이 지연될 때 플로우 ID 생성부(110)는 제1 방식보다 계위 개수나 필드 정보가 더욱 세분화된 제2 방식으로 플로우 ID를 생성한다. 입력 데이터가 입력 패킷일 때 플로우 ID 생성부(110)는 1계층 내지 4계층 중 입력 패킷과 관련되어 선택된 계층의 정보, 입력 패킷의 헤더 정보 등에 페이로드 필드 정보를 더욱 이용하여 플로우 ID를 생성한다. 본 실시예에서 플로우 ID 생성부(110)는 페이로드 필드 정보로 5계층 내지 7계층 중 입력 패킷과 관련되어 선택된 계층의 정보를 이용한다. 그런데 플로우 ID 생성부(110)의 이러한 기능은 계위 개수가 더욱 세분화된 제2 방식으로 플로우 ID를 생성할 때를 고려한 것이다. 필드 정보가 더욱 세분화된 제2 방식으로 플로우 ID를 생성할 경우에는, 플로우 ID 생성부(110)는 예컨대 URL 정보(www.naver.com)를 이용하여 1차 구분한 후, 더욱 세분화할 필요가 있을 때 www.naver.com/123.../... 등으로 필드의 dept.를 확장 적용할 수 있다.
한편 플로우 ID 생성부(110)는 한개의 임계값을 이용하여 플로우 ID를 생성함이 보통이나, 적어도 두개의 임계값을 이용하여 각 임계값과의 관계에 따라 결정된 방식으로 플로우 ID를 생성하는 것도 가능하다.
이상 설명한 플로우 ID 생성부(110)에 대한 보다 자세한 설명은 도 2의 파서 및 부하 의존 플로우 ID 생성기를 참조한다.
데이터 할당부(120)는 동일한 플로우 ID를 가지는 데이터들을 지정된 프로세서로 할당하는 기능을 수행한다.
데이터 할당부(120)는 제2 방식으로 플로우 ID가 생성되면 모든 프로세서들이 유휴 상태가 될 때까지 제2 방식으로 생성된 플로우 ID를 버퍼에 저장한다.
데이터 할당부(120)에 대한 보다 자세한 설명은 도 2 내지 도 4의 스케줄러를 참조한다.
데이터 처리부(130)는 각 프로세서에 할당된 데이터들을 순차적으로 처리하는 기능을 수행한다.
데이터 처리부(130)는 데이터베이스에 저장된 포워딩 정보나 QoS 정보를 이용하여 데이터들을 처리한다.
데이터 처리부(130)에 대한 보다 자세한 설명은 도 2 내지 도 4의 프로세서 배열을 참조한다.
전원부(140)는 데이터 병렬 처리 장치(100)를 구성하는 각 구성에 전원을 공급하는 기능을 수행한다.
주제어부(150)는 데이터 병렬 처리 장치(100)를 구성하는 각 구성의 전체 작동을 제어하는 기능을 수행한다.
다음으로 도 2 내지 도 4를 참조하여 본 발명의 일실시예에 대하여 설명한다. 도 2는 본 발명의 일실시예에 따른 병렬 처리 구조를 도시한 개념도이다.
본 실시예는 하나 이상의 프로세서를 사용하여 프로세서 배열(230)을 구성하고, 프로세서 배열(array)에 대한 스케줄러(220)를 구성하고, 병렬 처리 성능을 높이기 위한 파서 및 부하 의존 플로우 ID 생성기(210)를 구성하여, 스케줄러(220) 내 버퍼(222)의 임계치 상태에 따라서 플로우 ID를 달리 생성하는 것을 특징으로 하는 병렬 처리 구조를 가진다.
이하 도 2를 참조하여 본 실시예의 구성 및 동작 원리를 설명한다. 이하에서는 입력 패킷을 입력 데이터의 일례로 들어 설명할 것이나, 본 실시예에서는 입력 데이터가 입력 패킷에 한정되는 것은 아니다.
본 실시예는 파서 및 부하 의존 플로우 ID 생성기(Parser and Load-dependent Flow IDentification Generator; 210), 스케줄러(Scheduler; 220), 임의의 처리 가능한 복수 개의 프로세서들(230a 내지 230n)로 구성된 프로세서 배열(230), 데이터베이스(DATABASE; 240) 등으로 구성된다. 상기에서 n은 1 이상의 자연수를 의미한다.
파서 및 부하 의존 플로우 ID 생성기(210)는 입력되는 패킷에 대하여 분류 규칙을 이용하여 hash key를 생성하고 hash 함수를 이용하여 hash value로 플로우를 생성한다. 이때 hash value는 스케줄러(220)로부터 입력되는 버퍼(Buffer; 222)의 임계치 정보에 따라서 다음과 같이 두 종류의 계위(hierarchy)로 생성된다.
① 계위(Hierarchy) 1 플로우 ID : 파서 및 부하 의존 플로우 ID 생성기(210)는 패킷의 헤더 정보를 이용하여 분류 규칙에 따라 hash key를 생성하고 hash 함수를 이용하여 기본 hash value로 플로우를 생성한다. 이때 생성되는 플로우가 계위 1 플로우 ID를 가진다. 분류 규칙은 패킷의 계층 1 내지 계층 4의 정보 중에서 선택한다.
② 계위(Hierarchy) 2 플로우 ID : 파서 및 부하 의존 플로우 ID 생성기(210)는 스케줄러(220)로부터 버퍼(222)의 임계치 상태 정보를 수신하는 경우 패킷의 헤더 정보와 페이로드 필드 정보를 이용하여 분류 규칙에 따라 hash key를 생성하고 hash 함수를 이용하여 확장 hash value로 플로우를 생성한다. 이때 생성되는 플로우가 계위 2 플로우 ID를 가진다. 페이로드 필드 정보는 패킷의 계층 5 내지 계층 7의 정보 중에서 선택한다.
파서 및 부하 의존 플로우 ID 생성기(210)가 플로우를 생성할 때 페이로드 필드 정보를 이용하면 응용별, 서비스별, 콘텐츠별로 플로우 ID를 다양하게 분류하여 패킷을 병렬 처리하는 것이 가능해진다. 다만, 이 방법은 플로우를 생성하는 데에 걸리는 시간이 길어지고 이에 따른 처리 시간 지연이 발생하며 플로우 관리가 복잡해지므로, 임계치 상태 발생시에만 이 방법을 이용한다. 분류 규칙은 선택적으로 가변 가능하다.
한편 파서 및 부하 의존 플로우 ID 생성기(210)는 더 많은 개수의 계위를 가지고 플로우 ID를 생성할 경우 임계치 값을 다단으로 설정하고 입력 데이터의 정보를 더 세분화하여 나눌 수 있다.
스케줄러(220)는 프로세서 스케줄러(Processor Scheduler; 221)와 버퍼(222)로 구성된다.
프로세서 스케줄러(221)는 복수 개의 프로세서들(230a 내지 230n)로 구성된 프로세서 배열(230)에 대하여 스케줄링하여 플로우 ID를 할당한다. 프로세서 스케줄러(221)는 프로세서 1(Processor 1; 230a)에서 특정 ID를 가진 이전 플로우가 처리 중이면 상기 특정 ID와 동일한 ID를 가진 입력 플로우를 프로세서 1(230a)로 할당하며, 상기 특정 ID와 다른 ID를 가진 입력 플로우를 다른 임의의 프로세서로 할당한다. 프로세서 스케줄러(221)는 이와 같은 스케줄링을 통해 같은 속성을 가진(즉, 같은 플로우 ID를 가진) 플로우에 대한 순서를 유지하면서 패킷의 병렬 처리를 수행할 수 있게 한다.
프로세서 배열(230)을 구성하는 특정 프로세서(230a 내지 230n 중에서 선택된 적어도 하나)가 이전에 입력된 플로우를 처리 중일 때, 파서 및 부하 의존 플로우 ID 생성기(210)로부터 입력된 플로우는 버퍼(222)에 저장된다. 그리고 프로세서 배열(230)를 구성하는 모든 프로세서들(230a 내지 230n)이 이전에 입력된 플로우를 처리 완료하면, 비로소 버퍼(222)에 저장된 플로우에 대한 처리가 진행된다. 또한 동일한 ID를 가진 플로우가 현재 프로세서에서 처리되고 있지는 않으나 유휴(Idle) 상태인 프로세서가 없는 경우에도 입력 플로우는 버퍼에 저장된다.
스케줄러(220)로부터 파서 및 부하 의존 플로우 ID 생성기(210)로 입력되는 버퍼 임계치 발생 정보는 버퍼(222)에 대한 상한 임계치 값이 발생할 때 생성되며, 이때 생성된 버퍼 임계치 발생 정보는 버퍼(222)에 대한 하한 임계치 값이 발생할 때 해제된다. 스케줄러(220)는 동일 플로우 ID가 지속적으로 입력되거나 플로우 ID 생성이 정교하지 않아 멀티 프로세서에 대한 병렬 처리 성능이 저하될 때 버퍼 임계치 발생 정보를 파서 및 부하 의존 플로우 ID 생성기(210)로 전송하여 플로우 ID를 세밀하게 생성하도록 요청한다.
프로세서 배열(230)은 스케줄러(220)로부터 입력된 플로우 ID별 입력 데이터를 처리한다. 이때 프로세서 배열(230)을 구성하는 각 프로세서는 데이터베이스(240)의 도움을 받아서 데이터를 처리한다.
데이터베이스(240)는 주로 RAM 등의 메모리로 구성되며 하나 또는 복수 개의 프로세서로 구성된 멀티 프로세서 어레이에서 데이터 처리에 필요한 정보(ex. Forwarding, QoS 등)를 저장하고 있다.
다음으로 본 실시예의 임계치 상태에 따른 플로우 ID 생성에 대하여 설명한다.
도 3은 스케줄러(220) 내 버퍼(222)에서 임계치 상태 정보가 발생하기 전의 1계위(hierarchy) 플로우 ID 생성 및 병렬 처리 원리를 나타내기 위한 동작도이다. 이하 설명은 도 3을 참조한다.
입력 데이터에 대하여 파서 및 부하 의존 플로우 ID 생성기(210)는 입력 데이터(300)의 1계위 정보를 이용하여 플로우 ID들(300m, 300n, 300s)을 생성한다. 이후 파서 및 부하 의존 플로우 ID 생성기(210)는 생성된 플로우들(300m, 300n, 300s)을 스케줄러(220)로 전송한다. 그런데 프로세서 i(230i)와 프로세서 k(230k)가 동일 ID를 가지면서 이전에 입력된 플로우를 각각 처리중이므로, 스케줄러(220)는 플로우 ID m(300m)을 가지는 플로우와 플로우 ID n(300n)을 가지는 플로우를 각각 버퍼(222m, 222n)에 저장한다. 반면, 플로우 ID s(300s)를 가지는 플로우는 처리중인 프로세서가 없으므로 버퍼(222)에 저장되지 않으며 임의의 유휴(idle) 상태에 있는 프로세서 중 하나에서 데이터 처리가 수행된다. 도 3의 경우 플로우 ID s(300s)를 가지는 플로우는 프로세서 l(230l)에서 처리한다. 버퍼(222)는 공통 버퍼이며 프로세서 개별로 할당되지 않는다.
도 4는 임계치 상태 발생 후의 2계위(hierarchy) 플로우 ID 생성 및 병렬 처리 원리를 나타내기 위한 동작도이다. 이하 설명은 도 4를 참조한다.
스케줄러(220)는 버퍼(222)에 대한 상한 임계치 값이 발생할 때 버퍼 임계치 발생 정보를 생성한다. 버퍼 임계치 발생 정보가 생성되면 버퍼(222)에 대한 하한 임계치 값이 발생할 때까지 버퍼 임계치 발생 정보는 유지된다.
버퍼 임계치 발생 정보를 수신한 파서 및 부하 의존 플로우 ID 생성기(210)는 2계위 플로우 ID를 생성한다. 이때 파서 및 부하 의존 플로우 ID 생성기(210)는 1계위 플로우 ID를 좀더 세분되게 여러 개의 플로우 ID로 나누어서 2계위 플로우 ID를 생성한다. 즉, 도 4에 도시된 바와 같이 1계위 플로우 ID m(300m)은 2계위 플로우 ID i(310i)와 2계위 플로우 ID l(310l)로 구분되어 생성된다. 그러면 스케쥴러(220)는 2계위 플로우 ID i(310i)와 2계위 플로우 ID l(310l)을 프로세서 i(230i)와 프로세서 l(230l)에서 각각 처리하도록 스케쥴링하거나, VOQ i(222i)와 VOQ l(222l)에 각각 저장되도록 한다.
1계위 플로우 ID n(300n)은 2계위 플로우 ID k(310k), 2계위 플로우 ID j(310j), 2계위 플로우 ID h(310h) 등으로 구분되어 생성된다. 그러면 스케쥴러(220)는 2계위 플로우 ID k(310k), 2계위 플로우 ID j(310j), 2계위 플로우 ID h(310h) 등을 프로세서 k(230k), 프로세서 j(230j), 프로세서 n(230n) 등에서 각각 처리하도록 스케쥴링하거나, VOQ k(222k)와 VOQ j(222j)에 각각 저장되도록 한다. 2계위 플로우 ID h(310h)의 경우, 이전 입력된 동일 플로우 ID가 프로세서에서 처리되고 있지 않으므로 버퍼(220)에 저장되지 않고 프로세서 n(230n)에 의해 바로 처리된다.
마찬가지로, 1계위 플로우 ID s(300s)는 2계위 플로우 ID x(310x)와 2계위 플로우 ID y(310y)로 구분되어 생성된다. 그러면 스케쥴러(220)는 2계위 플로우 ID x(310x)와 2계위 플로우 ID y(310y)를 프로세서 p(230p)와 프로세서 q(230q)에서 각각 처리하도록 스케쥴링한다. 2계위 플로우 ID x(310x)와 2계위 플로우 ID y(310y)의 경우, 이전 입력된 동일 플로우 ID가 프로세서에서 처리되고 있지 않으므로 버퍼(220)에 저장되지 않고 프로세서 p(230p)와 프로세서 q(230q)에 의해 바로 처리된다.
이상 설명한 본 실시예의 특징을 정리해보면 다음과 같다.
첫째, 본 실시예에 따른 멀티 프로세서(Multi-processor) 병렬 처리 장치는 멀티 프로세서에서 데이터를 병렬 처리하기 위하여 하나 이상의 프로세서를 배열(array)하여 멀티 프로세서를 구성하고, 멀티 프로세서의 병렬 처리를 위한 스케줄러를 구성하고, 병렬 처리 성능을 높이기 위한 파서 및 부하 의존 플로우 ID 생성기를 구성하여, 프로세서의 부하 정도에 따라서 분산된 병렬 처리를 수행한다.
둘째, 멀티 프로세서의 병렬 처리를 위한 스케줄러에서 버퍼가 상한 임계치를 초과하는 경우 임계치 생성 정보를 파서 및 부하 의존 플로우 ID 생성기로 전달하며, 상한 임계치 상태에서 하한 임계치 상태로 버퍼 상태가 변경되는 경우 임계치 해제 정보를 파서 및 부하 의존 플로우 ID 생성기로 전달한다.
셋째, 병렬 처리 성능을 높이기 위한 파서 및 부하 의존 플로우 ID 생성기에서 스케줄러로부터 입력되는 버퍼 임계치 상태 정보에 따라 입력 데이터의 계층 정보를 선택하여 플로우 ID를 생성하도록 하여 임계치가 발생하기 전에는 최소한의 기본 계위 정보로 플로우 ID를 생성하고 임계치가 발생하는 경우 계위 정보를 확장 선택하여 플로우 ID를 생성하여 병렬 처리 성능을 높인다.
넷째, 임계치 정보를 다단계로 확장 생성이 가능하도록 한다.
다섯째, 파서 및 부하 의존 플로우 ID 생성기가 다단계 임계치 정보를 받아서 여러 계위의 플로우 ID를 생성한다.
다음으로 데이터 병렬 처리 장치(100)의 데이터 병렬 처리 방법에 대하여 설명한다. 도 5는 본 발명의 바람직한 실시예에 따른 데이터 병렬 처리 방법을 개략적으로 도시한 흐름도이다.
먼저 플로우 ID 생성부(110)가 입력 데이터에 대하여 버퍼의 상태에 따라 차별된 플로우 ID를 생성한다(S510).
플로우 ID 생성부(110)는 S510 단계에서 제1 방식으로 플로우 ID를 생성한다. 입력 데이터로 입력 패킷을 이용할 때 플로우 ID 생성부(110)는 1계층 내지 4계층 중 입력 패킷과 관련되어 선택된 계층의 정보와 입력 패킷의 헤더 정보를 이용하여 플로우 ID를 생성한다.
버퍼를 통한 특정 프로세서로의 데이터 전송이 지연될 때, 플로우 ID 생성부(110)는 S510 단계에서 제1 방식보다 계위 개수나 필드 정보가 더욱 세분화된 제2 방식으로 플로우 ID를 생성한다. 입력 데이터로 입력 패킷을 이용할 때 플로우 ID 생성부(110)는 1계층 내지 4계층 중 입력 패킷과 관련되어 선택된 계층의 정보와 입력 패킷의 헤더 정보 외에 페이로드 필드 정보를 더욱 이용하여 플로우 ID를 생성한다.
한편 플로우 ID 생성부(110)는 적어도 두개의 임계값을 이용하여 각 임계값과의 관계에 따라 결정된 방식으로 플로우 ID를 생성하는 것도 가능하다.
S510 단계 이후, 데이터 할당부(120)가 동일한 플로우 ID를 가지는 데이터들을 지정된 프로세서로 할당한다(S520). S510 단계에서 제2 방식으로 플로우 ID가 생성될 경우, 데이터 할당부(120)는 모든 프로세서들이 유휴 상태가 될 때까지 플로우 ID를 버퍼에 저장한다.
S520 단계 이후, 데이터 처리부(130)가 각 프로세서에 할당된 데이터들을 순차적으로 처리한다(S530). 이때 데이터 처리부(130)는 데이터베이스에 저장된 포워딩 정보나 QoS 정보를 이용하여 데이터들을 처리한다.
이상에서 설명한 본 발명의 실시예를 구성하는 모든 구성요소들이 하나로 결합하거나 결합하여 동작하는 것으로 기재되어 있다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 또한, 이와 같은 컴퓨터 프로그램은 USB 메모리, CD 디스크, 플래쉬 메모리 등과 같은 컴퓨터가 읽을 수 있는 기록매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 기록매체로서는 자기 기록매체, 광 기록매체, 캐리어 웨이브 매체 등이 포함될 수 있다.
또한, 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 상세한 설명에서 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 수정, 변경 및 치환이 가능할 것이다. 따라서, 본 발명에 개시된 실시예 및 첨부된 도면들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예 및 첨부된 도면에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구 범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리 범위에 포함되는 것으로 해석되어야 할 것이다.
100 : 데이터 병렬 처리 장치 110 : 플로우 ID 생성부
120 : 데이터 할당부 130 : 데이터 처리부
140 : 전원부 150 : 주제어부
210 : 파서 및 부하 의존 플로우 ID 생성기
220 : 스케줄러 221 : 프로세서 스케줄러
222 : 버퍼 230 : 프로세서 배열
240 : 데이터베이스

Claims (14)

  1. 입력 데이터에 대하여 버퍼의 상태에 따라 차별된 플로우 ID를 생성하는 플로우 ID 생성부;
    동일한 플로우 ID를 가지는 데이터들을 지정된 프로세서로 할당하는 데이터 할당부; 및
    각 프로세서에 할당된 데이터들을 순차적으로 처리하는 데이터 처리부
    를 포함하는 것을 특징으로 하는 멀티 프로세서를 구비하는 데이터 병렬 처리 장치.
  2. 제 1 항에 있어서,
    상기 플로우 ID 생성부는 평상시 제1 방식으로 플로우 ID를 생성하며, 상기 버퍼를 통한 특정 프로세서로의 데이터 전송이 지연될 때 상기 제1 방식보다 계위 개수나 필드 정보가 더욱 세분화된 제2 방식으로 플로우 ID를 생성하는 것을 특징으로 하는 멀티 프로세서를 구비하는 데이터 병렬 처리 장치.
  3. 제 2 항에 있어서,
    상기 플로우 ID 생성부는 상기 제1 방식으로 플로우 ID를 생성할 때 1계층 내지 4계층 중 입력 패킷과 관련되어 선택된 계층의 정보와 상기 입력 패킷의 헤더 정보를 이용하여 플로우 ID를 생성하며, 상기 제2 방식으로 플로우 ID를 생성할 때 상기 계층의 정보와 상기 헤더 정보 및 페이로드 필드 정보를 이용하여 플로우 ID를 생성하는 것을 특징으로 하는 멀티 프로세서를 구비하는 데이터 병렬 처리 장치.
  4. 제 3 항에 있어서,
    상기 플로우 ID 생성부는 상기 페이로드 필드 정보로 5계층 내지 7계층 중 상기 입력 패킷과 관련되어 선택된 계층의 정보를 이용하는 것을 특징으로 하는 멀티 프로세서를 구비하는 데이터 병렬 처리 장치.
  5. 제 1 항에 있어서,
    상기 플로우 ID 생성부는 적어도 두개의 임계값을 이용하여 각 임계값과의 관계에 따라 결정된 방식으로 플로우 ID를 생성하는 것을 특징으로 하는 멀티 프로세서를 구비하는 데이터 병렬 처리 장치.
  6. 제 2 항에 있어서,
    상기 데이터 할당부는 상기 제2 방식으로 플로우 ID가 생성되면 모든 프로세서들이 유휴 상태가 될 때까지 상기 제2 방식으로 생성된 플로우 ID를 상기 버퍼에 저장하는 것을 특징으로 하는 멀티 프로세서를 구비하는 데이터 병렬 처리 장치.
  7. 제 1 항에 있어서,
    상기 데이터 처리부는 데이터베이스에 저장된 포워딩 정보나 QoS 정보를 이용하여 데이터들을 처리하는 것을 특징으로 하는 멀티 프로세서를 구비하는 데이터 병렬 처리 장치.
  8. 입력 데이터에 대하여 버퍼의 상태에 따라 차별된 플로우 ID를 생성하는 플로우 ID 생성 단계;
    동일한 플로우 ID를 가지는 데이터들을 지정된 프로세서로 할당하는 데이터 할당 단계; 및
    각 프로세서에 할당된 데이터들을 순차적으로 처리하는 데이터 처리 단계
    를 포함하는 것을 특징으로 하는 멀티 프로세서를 이용한 데이터 병렬 처리 방법.
  9. 제 8 항에 있어서,
    상기 플로우 ID 생성 단계는 평상시 제1 방식으로 플로우 ID를 생성하며, 상기 버퍼를 통한 특정 프로세서로의 데이터 전송이 지연될 때 상기 제1 방식보다 계위 개수나 필드 정보가 더욱 세분화된 제2 방식으로 플로우 ID를 생성하는 것을 특징으로 하는 멀티 프로세서를 이용한 데이터 병렬 처리 방법.
  10. 제 9 항에 있어서,
    상기 플로우 ID 생성 단계는 상기 제1 방식으로 플로우 ID를 생성할 때 1계층 내지 4계층 중 입력 패킷과 관련되어 선택된 계층의 정보와 상기 입력 패킷의 헤더 정보를 이용하여 플로우 ID를 생성하며, 상기 제2 방식으로 플로우 ID를 생성할 때 상기 계층의 정보와 상기 헤더 정보 및 페이로드 필드 정보를 이용하여 플로우 ID를 생성하는 것을 특징으로 하는 멀티 프로세서를 이용한 데이터 병렬 처리 방법.
  11. 제 10 항에 있어서,
    상기 플로우 ID 생성 단계는 상기 페이로드 필드 정보로 5계층 내지 7계층 중 상기 입력 패킷과 관련되어 선택된 계층의 정보를 이용하는 것을 특징으로 하는 멀티 프로세서를 이용한 데이터 병렬 처리 방법.
  12. 제 8 항에 있어서,
    상기 플로우 ID 생성 단계는 적어도 두개의 임계값을 이용하여 각 임계값과의 관계에 따라 결정된 방식으로 플로우 ID를 생성하는 것을 특징으로 하는 멀티 프로세서를 이용한 데이터 병렬 처리 방법.
  13. 제 9 항에 있어서,
    상기 데이터 할당 단계는 상기 제2 방식으로 플로우 ID가 생성되면 모든 프로세서들이 유휴 상태가 될 때까지 상기 제2 방식으로 생성된 플로우 ID를 상기 버퍼에 저장하는 것을 특징으로 하는 멀티 프로세서를 이용한 데이터 병렬 처리 방법.
  14. 제 8 항에 있어서,
    상기 데이터 처리 단계는 데이터베이스에 저장된 포워딩 정보나 QoS 정보를 이용하여 데이터들을 처리하는 것을 특징으로 하는 멀티 프로세서를 이용한 데이터 병렬 처리 방법.
KR1020130053286A 2013-05-10 2013-05-10 멀티 프로세서를 구비하는 데이터 병렬 처리 장치 및 그 방법 KR20140133295A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130053286A KR20140133295A (ko) 2013-05-10 2013-05-10 멀티 프로세서를 구비하는 데이터 병렬 처리 장치 및 그 방법
US14/038,538 US20140337856A1 (en) 2013-05-10 2013-09-26 Data parallel processing apparatus with multi-processor and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130053286A KR20140133295A (ko) 2013-05-10 2013-05-10 멀티 프로세서를 구비하는 데이터 병렬 처리 장치 및 그 방법

Publications (1)

Publication Number Publication Date
KR20140133295A true KR20140133295A (ko) 2014-11-19

Family

ID=51865819

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130053286A KR20140133295A (ko) 2013-05-10 2013-05-10 멀티 프로세서를 구비하는 데이터 병렬 처리 장치 및 그 방법

Country Status (2)

Country Link
US (1) US20140337856A1 (ko)
KR (1) KR20140133295A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10476803B2 (en) * 2017-12-18 2019-11-12 Mellanox Technologies, Ltd. Elephant flow detection in network access

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9419905B2 (en) 2014-04-04 2016-08-16 International Business Machines Corporation Data streaming scheduler for dual chipset architectures that includes a high performance chipset and a low performance chipset
US10462060B2 (en) 2018-02-14 2019-10-29 Mellanox Technologies, Ltd. Ability to detect unlimited elephant flows

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6338078B1 (en) * 1998-12-17 2002-01-08 International Business Machines Corporation System and method for sequencing packets for multiprocessor parallelization in a computer network system
CN100550852C (zh) * 2007-01-18 2009-10-14 华为技术有限公司 一种实现海量端口反压的方法及其装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10476803B2 (en) * 2017-12-18 2019-11-12 Mellanox Technologies, Ltd. Elephant flow detection in network access

Also Published As

Publication number Publication date
US20140337856A1 (en) 2014-11-13

Similar Documents

Publication Publication Date Title
CN103516807B (zh) 一种云计算平台服务器负载均衡系统及方法
CN109582448B (zh) 一种面向关键度和时效性的边缘计算任务调度方法
Huang et al. An optimistic job scheduling strategy based on QoS for cloud computing
CN103309738B (zh) 用户作业调度方法及装置
Li et al. Priority based real-time communication for large scale wormhole networks
US8850444B2 (en) System for setting each transfer module in a network device into one of a plurality of standby states based upon the level of traffic
KR20140133295A (ko) 멀티 프로세서를 구비하는 데이터 병렬 처리 장치 및 그 방법
Gu et al. Service function chain deployment and network flow scheduling in geo-distributed data centers
Thamsen et al. Mary, Hugo, and Hugo*: Learning to schedule distributed data‐parallel processing jobs on shared clusters
WO2017045640A1 (zh) 一种数据中心内关联流的带宽调度方法及装置
Pandya et al. Dynamic resource allocation techniques in cloud computing
CN110308991B (zh) 一种基于随机任务的数据中心节能优化方法及系统
JP4834628B2 (ja) ネットワーク装置の消費電力低減制御装置及び制御方法
Zhang et al. ATFQ: a fair and efficient packet scheduling method in multi-resource environments
US7460544B2 (en) Flexible mesh structure for hierarchical scheduling
Lin et al. Impact of MapReduce policies on job completion reliability and job energy consumption
Wang et al. A round robin with multiple feedback job scheduler in Hadoop
Yang et al. An offloading strategy based on cloud and edge computing for industrial Internet
Wang et al. Energy-aware task scheduling of mapreduce cluster
Siyoum et al. Resource-efficient real-time scheduling using credit-controlled static-priority arbitration
Villar et al. An integrated solution for QoS provision and congestion management in high-performance interconnection networks using deterministic source-based routing
Shah et al. Phase level energy aware map reduce scheduling for big data applications
Prasad et al. Performance Analysis of Schedulers to Handle Multi Jobs in Hadoop Cluster.
Liu et al. Distributed two-level cloud-based multimedia task scheduling
Li et al. GAPG: A heuristic greedy algorithm for grouping storage scheme in blockchain

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid