KR101565865B1 - 멀티 프로세서 코어 시스템 내의 프로세서 코어를 스케줄링 하기 위한 방법, 장치, 및 시스템 - Google Patents

멀티 프로세서 코어 시스템 내의 프로세서 코어를 스케줄링 하기 위한 방법, 장치, 및 시스템 Download PDF

Info

Publication number
KR101565865B1
KR101565865B1 KR1020147008482A KR20147008482A KR101565865B1 KR 101565865 B1 KR101565865 B1 KR 101565865B1 KR 1020147008482 A KR1020147008482 A KR 1020147008482A KR 20147008482 A KR20147008482 A KR 20147008482A KR 101565865 B1 KR101565865 B1 KR 101565865B1
Authority
KR
South Korea
Prior art keywords
data flow
control parameter
processing
processor core
packet
Prior art date
Application number
KR1020147008482A
Other languages
English (en)
Other versions
KR20140057371A (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 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20140057371A publication Critical patent/KR20140057371A/ko
Application granted granted Critical
Publication of KR101565865B1 publication Critical patent/KR101565865B1/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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은, 멀티 프로세서 코어 시스템 분야에 관한 것으로서, 실시간 네트워크 I/O 처리에 대한 요구를 만족시키고, 이에 따라 멀티 프로세서 코어 시스템의 효율을 향상시킬 수 있는, 멀티 프로세서 코어 시스템 내의 프로세서 코어를 스케줄링 하기 위한 방법, 장치, 및 시스템을 제공한다. 본 멀티 프로세서 코어 시스템 내의 프로세서 코어를 스케줄링 하기 위한 방법은, 멀티 프로세서 코어 시스템의 실행 프로세스 중에, 제1 제어 파라미터, 제2 제어 파라미터, 제3 제어 파라미터 및 제4 제어 파라미터를 획득하는 단계; 상기 제1 제어 파라미터, 제2 제어 파라미터, 및 제3 제어 파라미터에 기초하여 상기 멀티 프로세서 코어 시스템에 진입하는 데이터 흐름의 패킷을, 처리를 위해 미가동 프로세서 코어에 이송하는 단계; 및 상기 제4 제어 파라미터에 기초하여, 중단 모드와 폴링 모드 사이에서, 상기 멀티 프로세서 코어 시스템 내의 패킷을 처리하는 프로세서 코어를 전환하는 단계를 포함한다.

Description

멀티 프로세서 코어 시스템 내의 프로세서 코어를 스케줄링 하기 위한 방법, 장치, 및 시스템{METHOD, APPARATUS, AND SYSTEM FOR SCHEDULING PROCESSOR CORE IN MULTIPROCESSOR CORE SYSTEM}
본 출원은, 참조에 의해 본 명세서에 모두 병합되는 것으로서, 2012년 6월 28일에 중국 전리국에 출원된 중국 전리 신청 제201210217579.8호에 대해 우선권을 주장하면서 2013년 2월 1일에 출원된 국제출원 PCT/CN2013/071272에 대한 국내 진입 절차이다.
본 발명은 멀티 프로세서 코어 시스템(multiprocessor core system) 분야, 특히 멀티 프로세서 코어 시스템 내의 프로세서 코어를 스케줄링(scheduling) 하기 위한 방법, 장치, 및 시스템에 관한 것이다.
현재, 멀티 프로세서 코어 시스템에 통합된 서비스가 점차적으로 증가하고 있고, 네트워크 I/O(Input/Output) 요청도 증가하고 있다. 네트워크 I/O 요청에 대한 멀티 프로세서 코어 시스템의 데이터 처리 능력은 시스템에 대한 키 롤(key role)을 처리하여 자신의 모든 최대 능력을 발휘한다. 종래기술에서, 네트워크 I/O 요청을 처리하기 위한 하나의 방법은, 정적-구성 처리 모드(static-configuration processing mode)에 따라, 지정된 프로세서 코어에, 지정된 프로세서 코어 상에서 수행되는 작업을 결합하거나, 균형 잡힌 방법으로 미가동(idle) 프로세서 코어에, 미가동 프로세서 코어 상에서 수행되는 작업들을 할당한다; 또 다른 네트워크 I/O 요청을 처리하는 방법은, 정적-구성 전환 규칙(static-configuration switchover rule)에 따라, 중단 모드(interruption mode) 및 폴링 모드(polling mode) 사이에서 프로세서 코어를 전환하여 네트워크 I/O 요청에 대한 시스템의 처리 효율을 향상시킨다.
전술한 기술적 해결수단의 구현 중에, 본 발명자는 종래기술이 적어도 다음의 문제점에 직면한다는 것을 발견하였다: 정적 구성은 시스템의 실행 프로세스에 앞선 수동 구성을 나타내고, 시스템의 실제 실행 프로세스 도중에는, 프로세서 코어가 정적 구성 솔루션에 따라 스케줄링 되기 때문에, 실시간 네트워크 I/O 처리에 대한 요구가 만족되지 않고, 프로세서 코어를 스케줄링 하기 위한 이상적인 해결책이 제공될 수 없어서, 전체 멀티 프로세서 코어 시스템의 효율을 향상시킬 수 없게 된다.
본 발명의 실시예들은, 실시간 네트워크 I/O 처리에 대한 요구를 만족시키고, 이에 따라 전체 멀티 프로세서 코어 시스템의 효율을 향상시킬 수 있는, 멀티 프로세서 코어 시스템 내의 프로세서 코어를 스케줄링 하기 위한 방법, 장치, 및 시스템을 제공한다.
본 발명의 실시예들은 다음의 기술적 해결수단들을 채용한다.
멀티 프로세서 코어 시스템 내의 프로세서 코어를 스케줄링 하기 위한 방법은, 멀티 프로세서 코어 시스템의 실행 프로세스 중에, 제1 제어 파라미터, 제2 제어 파라미터, 제3 제어 파라미터 및 제4 제어 파라미터를 획득하는 단계 - 여기서, 제1 제어 파라미터는 N개의 데이터 흐름의 지시 정보를 나타내고, N개의 데이터 흐름은 각각의 데이터 흐름에 포함되는 처리된 패킷 수에 따른 하향 순서로, 멀티 프로세서 코어 시스템이 처리한 패킷을 포함하는 데이터 흐름을 분류함으로써 제1 샘플링 주기에서 획득된 처음 N개의 데이터 흐름을 나타내며, N은 양의 정수이고; 제2 제어 파라미터는 멀티 프로세서 코어 시스템 내의 각각의 데이터 흐름의 내부 전송 기간(internal transmission duration) 및 멀티 프로세서 코어 시스템 내의 프로세서 코어에 의한 각각의 데이터 흐름의 처리를 위한 기간을 나타내며; 제3 제어 파라미터는 가장 낮은 사용량을 가지는 프로세서 코어의 프로세서 코어 정보를 나타내고; 제4 제어 파라미터는 각각의 데이터 흐름의 어플리케이션 최상 경로(application (APP) critical path) 설명 정보를 나타냄 -; 제1 제어 파라미터에 기초하여, 현재의 패킷이 속하는 데이터 흐름이 N개의 데이터 흐름 중의 하나인지를 검출하는 단계; 현재의 패킷이 속하는 데이터 흐름이 N개의 데이터 흐름 중의 하나가 아닌 경우, 제2 제어 파라미터 및 제3 제어 파라미터에 기초하고, 인터-코어 전환 정책(inter-core switchover policy)에 따라 멀티 프로세서 코어 시스템에 진입하는 데이터 흐름의 패킷을, 처리를 위해 미가동(idle) 프로세서 코어에 이송하는 단계 - 여기서, 인터-코어 전환 정책은, 패킷의 내부 전송 기간이 프로세서 코어에 의한 패킷의 처리를 위한 기간을 초과하면, 패킷이 가장 낮은 사용량을 가지는 프로세서 코어에 의해 처리되고, 프로세서 코어에 의한 패킷의 처리를 위한 기간이 패킷의 내부 전송 기간을 초과하면, 패킷은 처리를 위해 지정된 프로세서 코어에 결합되는 것임 -; 및 제4 제어 파라미터에 기초하고, 인트라-코어 전환 정책(intra-core switchover policy)에 따라, 중단 모드(interruption mode)와 폴링 모드(polling mode) 사이에서, 멀티 프로세서 코어 시스템 내의 패킷을 처리하는 프로세서 코어를 전환(switchover)하는 단계 - 여기서, 인트라-코어 전환 정책은, 전체 폴링 오버헤드(polling overhead)가 전체 중단 오버헤드(interruption overhead)보다 크면, 프로세서 코어가 중단 모드에 진입하여 패킷을 처리하고, 전체 폴링 오버헤드가 전체 중단 오버헤드보다 작으면, 프로세서 코어는 폴링 모드에 진입하여 패킷을 처리하는 것임 -를 포함한다.
삭제
삭제
컴퓨터 시스템은, 버스; 버스에 연결된 멀티 프로세서 코어; 및 버스에 연결된 메모리를 포함하고, 버스를 통해 메모리 내의 실행 명령을 호출함으로써, 멀티 프로세서 코어는, 메모리로부터 호출된 데이터에 기초하여, 제1 제어 파라미터, 제2 제어 파라미터, 제3 제어 파라미터 및 제4 제어 파라미터를 획득하도록 구성되고 - 여기서, 제1 제어 파라미터는 N개의 데이터 흐름의 지시 정보를 나타내고, N개의 데이터 흐름은 각각의 데이터 흐름에 포함되는 처리된 패킷 수에 따른 하향 순서로, 멀티 프로세서 코어 시스템이 처리한 패킷을 포함하는 데이터 흐름을 분류함으로써 제1 샘플링 주기에서 획득된 처음 N개의 데이터 흐름을 나타내며, N은 양의 정수이고; 제2 제어 파라미터는 멀티 프로세서 코어 시스템 내의 각각의 데이터 흐름의 내부 전송 기간 및 멀티 프로세서 코어 시스템 내의 프로세서 코어에 의한 각각의 데이터 흐름의 처리를 위한 기간을 나타내며; 제3 제어 파라미터는 가장 낮은 사용량을 가지는 프로세서 코어의 프로세서 코어 정보를 나타내고; 제4 제어 파라미터는 각각의 데이터 흐름의 어플리케이션 최상 경로 설명 정보를 나타냄 -; 제1 제어 파라미터에 기초하여, 현재의 패킷이 속하는 데이터 흐름이 N개의 데이터 흐름 중의 하나인지를 검출하도록 더 구성되며; 현재의 패킷이 속하는 데이터 흐름이 N개의 데이터 흐름 중의 하나가 아닌 경우, 제2 제어 파라미터 및 제3 제어 파라미터에 기초하고, 인터-코어 전환 정책에 따라 멀티 프로세서 코어 시스템에 진입하는 데이터 흐름의 패킷을, 처리를 위해 미가동 프로세서 코어에 이송하도록 더 구성되고 - 여기서, 인터-코어 전환 정책은, 패킷의 내부 전송 기간이 프로세서 코어에 의한 패킷의 처리를 위한 기간을 초과하면, 패킷이 가장 낮은 사용량을 가지는 프로세서 코어에 의해 처리되고, 프로세서 코어에 의한 패킷의 처리를 위한 기간이 페킷의 내부 전송 기간을 초과하면, 패킷은 처리를 위해 지정된 프로세서 코어에 결합되는 것임 -; 제4 제어 파라미터에 기초하고, 인트라-코어 전환 정책에 따라, 중단 모드와 폴링 모드 사이에서, 멀티 프로세서 코어 시스템 내의 패킷을 처리하는 프로세서 코어를 전환하도록 더 구성된다 - 여기서, 인트라-코어 전환 정책은, 전체 폴링 오버헤드가 전체 중단 오버헤드보다 크면, 프로세서 코어가 중단 모드에 진입하여 패킷을 처리하고, 전체 폴링 오버헤드가 전체 중단 오버헤드보다 작으면, 프로세서 코어는 폴링 모드에 진입하여 패킷을 처리하는 것임 -.
본 발명의 실시예들에 의해 제공되는 멀티 프로세서 코어 시스템 내의 프로세서 코어를 스케줄링 하기 위한 방법, 장치 및 시스템에서는, 제1 제어 파라미터, 제2 제어 파라미터, 제3 제어 파라미터, 및 제4 제어 파라미터를 멀티 프로세서 코어 시스템의 실행 프로세스 중에 획득하고 제어 파라미터들에 기초하여 프로세서 코어를 스케줄링 함으로써, 멀티 프로세서 코어 시스템에서의 실시간 네트워크 I/O 처리에 대한 요구를 만족시킬 수 있고, 이에 의해 전체 멀티 프로세서 코어 시스템의 효율을 향상시킬 수 있다.
본 발명 또는 종래기술의 실시예들에서의 기술적 해결수단을 보다 명확하게 설명하기 위해, 이하에서는 실시예 또는 종래기술을 설명하기 위해 필요한 첨부된 도면을 간략하게 소개한다. 분명한 것은, 이하의 설명에서 수반되는 도면들은 단지 본 발명의 실시예 중 일부만을 보여주는 것이며, 당해 기술분야에서 통상의 지식을 가진 자(이하, 통상의 기술자)는 어떠한 창작적 노력 없이도 본 첨부된 도면으로부터 다른 도면들을 충분히 이끌어 낼 수 있다는 것이다.
도 1은 본 발명의 실시예 1에 따른, 멀티 프로세서 코어 시스템 내의 프로세서 코어를 스케줄링 하기 위한 방법의 플로 차트이다.
도 2는 본 발명의 실시예 2에 따른, 멀티 프로세서 코어 시스템 내의 프로세서 코어를 스케줄링 하기 위한 방법의 플로 차트이다.
도 3a는 본 발명의 실시예 2에 따른, 멀티 프로세서 코어 시스템 내의 프로세서 코어를 스케줄링 하기 위한 다른 방법의 플로 차트이다.
도 3b는 본 발명의 실시예 2에 따른, 멀티 프로세서 코어 시스템 내의 프로세서 코어를 스케줄링 하기 위한 다른 방법의 플로 차트이다.
도 4는 본 발명의 실시예 2에 따른, APP 최상 경로(APP critical path) 설명 정보 획득의 플로 차트이다.
도 5는 본 발명의 실시예 3에 따른, 멀티 프로세서 코어 시스템 내의 프로세서 코어를 스케줄링 하기 위한 장치의 블록 다이어그램이다.
도 6은 본 발명의 실시예 3에 따른, 인터-코어 전환(inter-core switchover) 스케줄링 유닛의 블록 다이어그램이다.
도 7은 본 발명의 실시예 3에 따른, 인터-코어 전환 스케줄링 유닛의 블록 다이어그램이다.
도 8은 본 발명의 실시예 3에 따른, 인트라-코어 전환 스케줄링 유닛의 블록 다이어그램이다.
도 9는 본 발명의 실시예 3에 따른, 인트라-코어 전환 스케줄링 유닛의 블록 다이어그램이다.
도 10은 본 발명의 실시예 3에 따른 제어 파라미터 획득 유닛의 블록 다이어그램이다.
도 11a는 본 발명의 실시예 3에 따른 제1 제어 파라미터 획득 유닛의 블록 다이어그램이다.
도 11b는 본 발명의 실시예 3에 따른 제4 제어 파라미터 획득 유닛의 블록 다이어그램이다.
도 12는 본 발명의 실시예 4에 따른 컴퓨터 시스템의 개략도이다.
도 13은 본 발명의 실시예 5에 따른 컴퓨터 시스템의 개략도이다.
이하에서는 본 발명의 실시예에서의 기술적 해결수단들을 본 발명의 실시예에서 첨부한 도면을 참조하여 명확하게 설명한다. 분명한 점은, 설명되는 실시예들은 단기 본 발명의 모든 실시예들 중의 일부만에 해당한다는 것이다. 당해 기술분야에서의 통상의 지식을 가진 자가 어떠한 창작적 노력 없이 본 발명의 실시예들에 기초하여 획득하는 모든 다른 실시예들은 본 발명의 보호 범위 내에 모두 포함될 것이다.
(실시예 1)
본 발명의 일 실시예는, 도 1에 도시된 것처럼, 멀티 프로세서 코어 시스템 내의 프로세서 코어를 스케줄링 하기 위한 방법을 제공하는데, 이는 다음의 단계들을 포함한다.
101. 멀티 프로세서 코어 시스템의 실행 프로세스 중에, 제1 제어 파라미터, 제2 제어 파라미터, 제3 제어 파라미터, 및 제4 제어 파라미터를 획득한다.
제1 제어 파라미터는 N개의 데이터 흐름의 지시 정보를 나타내고, N개의 데이터 흐름은 각각의 데이터 흐름에 포함되는 처리된 패킷 수에 따른 하향 순서로, 멀티 프로세서 코어 시스템이 처리한 패킷을 포함하는 데이터 흐름을 분류함으로써 제1 샘플링 주기에서 획득된 처음 N개의 데이터 흐름을 나타내며, N은 양의 정수이다. N개의 데이터 흐름의 지시 정보는 어떤 N개의 데이터 흐름이 지시 정보에 의해 표시되는지를 나타낼 수 있다.
제2 제어 파라미터는 멀티 프로세서 코어 시스템 내의 각각의 데이터 흐름의 내부 전송 기간 및 멀티 프로세서 코어 시스템 내의 프로세서 코어에 의한 각각의 데이터 흐름의 처리를 위한 기간을 나타낸다. 제3 제어 파라미터는 가장 낮은 사용량을 가지는 프로세서 코어의 프로세서 코어 정보를 나타낸다. 제4 제어 파라미터는 각각의 데이터 흐름의 APP(어플리케이션) 최상 경로 설명 정보를 나타낸다.
제1 샘플링 주기는 사전 설정된 샘플링 주기 또는 동적으로 획득되는 샘플링 주기일 수 있다. 예를 들어, 인간-컴퓨터 상호작용 인터페이스를 통해 획득되는, 가입자(subscriber)에 의해 동적으로 구성되는 샘플링 주기이거나, 통신 인터페이스를 통해 액세스되는, 데이터 베이스 내에 저장된, 대응하는 샘플링 주기일 수 있다.
102. 제1 제어 파라미터에 기초하여, 현재의 패킷이 속하는 데이터 흐름이 N개의 데이터 흐름 중의 하나인지를 검출한다.
103. 현재의 패킷이 속하는 데이터 흐름이 N개의 데이터 흐름 중의 하나가 아닌 경우, 제2 제어 파라미터 및 제3 제어 파라미터에 기초하고, 인터-코어 전환 정책에 따라 멀티 프로세서 코어 시스템에 진입하는 데이터 흐름의 패킷을, 처리를 위해 미가동 프로세서 코어에 이송한다.
미가동 프로세서 코어는 가장 사용량이 낮은 프로세서 코어와 리소스 사용량이 특정 임계치보다 낮은 프로세서 코어를 포함하는데, 여기서 특정 임계치는 필요에 따라 시스템에서 사전 설정된 임계치 또는 인간-컴퓨터 상호작용 인터페이스를 통해 가입자에 의해 입력되는 동적으로 구성되는 임계치일 수 있다.
구체적으로, 먼저, 제1 제어 파라미터에 기초하여, 현재의 패킷이 속하는 데이터 흐름이 N개의 데이터 흐름 중의 하나인지가 검출되고; 현재의 패킷이 속하는 데이터 흐름이 N개의 데이터 흐름 중의 하나가 아닌 경우, 제2 제어 파라미터 및 제3 제어 파라미터에 기초하고, 인터-코어 전환 정책에 따라, 멀티 프로세서 코어 시스템에 진입하는 데이터 흐름의 패킷이, 처리를 위해 미가동 프로세서 코어에 이송된다.
104. 제4 제어 파라미터에 기초하고, 인트라-코어 전환 정책에 따라, 중단 모드와 폴링 모드 사이에서, 멀티 프로세서 코어 시스템 내의 패킷을 처리하는 프로세서 코어를 전환한다.
멀티 프로세서 코어 시스템에 진입하는 각각의 데이터 흐름의 패킷을 위해, 단계 102 및 단계 103이 수행되어 각각의 패킷에 프로세서 코어를 할당하고; 단계 104는 단일 프로세서 코어를 위한 인트라-코어 처리 모드의 전환이다. 실제 적용에서는, 전술한 단계 102와 단계 103은, 동시에 또는 별개로 수행될 수 있는 단계 104의 독립된 동작이다.
본 발명의 실시예에서, 제2 제어 파라미터 및 제3 제어 파라미터에 기초하고, 인터-코어 전환 정책에 따라 멀티 프로세서 코어 시스템에 진입하는 데이터 흐름의 패킷을, 처리를 위해 미가동 프로세서 코어에 이송하는 단계는 구체적으로, 인터-코어 전환 정책에 따라, 멀티 프로세서 코어 시스템에 진입하는 데이터 흐름의 패킷을, 처리를 위해 미가동 프로세서 코어에 이송하는 단계이다. 인터-코어 전환 정책은, 패킷의 내부 전송 기간이 프로세서 코어에 의한 패킷의 처리를 위한 기간을 초과하면, 패킷이 가장 낮은 사용량을 가지는 프로세서 코어에 의해 처리되고, 프로세서 코어에 의한 패킷의 처리를 위한 기간이 패킷의 내부 전송 기간을 초과하면, 패킷은 처리를 위해 지정된 프로세서 코어에 결합되는 것이다.
또한, 제4 제어 파라미터에 기초하고, 인트라-코어 전환 정책에 따라, 중단 모드와 폴링 모드 사이에서, 멀티 프로세서 코어 시스템 내의 패킷을 처리하는 프로세서 코어의 전환은 구체적으로, 인트라-코어 전환 정책에 따라, 멀티 프로세서 코어 시스템 내의 프로세서 코어의 중단 모드 및 폴링 모드 사이의 전환을 나타낸다. 인트라-코어 전환 정책은, 전체 폴링 오버헤드가 전체 중단 오버헤드보다 크면, 프로세서 코어가 중단 모드에 진입하여 패킷을 처리하고, 전체 폴링 오버헤드가 전체 중단 오버헤드보다 작으면, 프로세서 코어는 폴링 모드에 진입하여 패킷을 처리하는 것이다.
본 발명의 실시예에서는, 서로 다른 네트워크 I/O 데이터 흐름이 5가지(소스 어드레스, 타켓 어드레스, 소스 포트, 타겟 포트, 및 데이터 흐름의 전송 프로토콜)로 구분된다.
본 발명의 실시예들에 의해 제공되는 멀티 프로세서 코어 시스템 내의 프로세서 코어를 스케줄링 하기 위한 방법, 장치 및 시스템에서는, 제1 제어 파라미터, 제2 제어 파라미터, 제3 제어 파라미터, 및 제4 제어 파라미터를 멀티 프로세서 코어 시스템의 실행 프로세스 중에 획득하고 제어 파라미터들에 기초하여 프로세서 코어를 스케줄링 함으로써, 멀티 프로세서 코어 시스템에서의 실시간 네트워크 I/O 처리에 대한 요구를 만족시킬 수 있고, 이에 의해 전체 멀티 프로세서 코어 시스템의 효율을 향상시킬 수 있다.
(실시예 2)
본 발명의 일 실시예는, 도 2에 도시된 것처럼, 멀티 프로세서 코어 시스템 내의 프로세서 코어를 스케줄링 하기 위한 방법을 제공하는데, 본 방법은 다음을 포함한다.
201. 멀티 프로세서 코어 시스템의 실행 프로세스 중에, 제1 제어 파라미터, 제2 제어 파라미터, 제3 제어 파라미터, 및 제4 제어 파라미터를 획득한다.
제1 제어 파라미터는 N개의 데이터 흐름의 지시 정보를 나타내고, N개의 데이터 흐름은 각각의 데이터 흐름에 포함되는 처리된 패킷 수에 따른 하향 순서로, 멀티 프로세서 코어 시스템이 처리한 패킷을 포함하는 데이터 흐름을 분류함으로써 제1 샘플링 주기에서 획득된 처음 N개의 데이터 흐름을 나타내며, N은 양의 정수이다. N개의 데이터 흐름의 지시 정보는 어떤 N개의 데이터 흐름이 지시 정보에 의해 표시되는지를 나타낼 수 있다. 예를 들어, N 값이 3이면, N개의 데이터 흐름의 지시 정보는 (flow1, flow5, flow6)인데, 이는 지시 정보가 3개의 데이터 흐름을 나타내고, 이 3개의 데이터 흐름은 flow1, flow5, flow6임을 나타낸다.
제2 제어 파라미터는 멀티 프로세서 코어 시스템 내의 각각의 데이터 흐름의 내부 전송 기간 및 멀티 프로세서 코어 시스템 내의 프로세서 코어에 의한 각각의 데이터 흐름의 처리를 위한 기간을 나타낸다. 제3 제어 파라미터는 가장 낮은 사용량을 가지는 프로세서 코어의 프로세서 코어 정보를 나타낸다. 제4 제어 파라미터는 각각의 데이터 흐름의 APP 최상 경로 설명 정보를 나타낸다.
202. 데이터 흐름의 현재의 패킷이 멀티 프로세서 코어 시스템에 진입한 후, 제1 제어 파라미터에 기초하여, 현재의 패킷이 속하는 데이터 흐름이 N개의 데이터 흐름 중의 하나인지를 검출한다.
데이터 흐름의 현재의 패킷이 멀티 프로세서 코어 시스템에 진입한 후, 제1 제어 파라미터에 기초하여, 현재의 패킷이 속하는 데이터 흐름이, N개의 데이터 흐름의 지시 정보에 의해 표시된 N개의 데이터 흐름 중의 하나인지 여부가 검출된다. 현재의 패킷이 속한 데이터 흐름이 N개의 데이터 흐름 중의 하나이면, 단계 205가 수행된다. 그렇지 않으면, 단계 203이 수행된다.
제1 샘플링 주기는 사전 설정된 샘플링 주기 또는 동적으로 획득되는 샘플링 주기일 수 있다. 예를 들어, 인간-컴퓨터 상호작용 인터페이스를 통해 획득되는, 가입자에 의해 동적으로 구성되는 샘플링 주기이거나, 통신 인터페이스를 통해 액세스되는, 데이터 베이스 내에 저장된, 대응하는 샘플링 주기일 수 있다.
제1 제어 파라미터를 획득하기 위한 동작은, 먼저 제1 샘플링 주기에서 멀티 프로세서 코어 시스템에 의해 처리된 패킷을 획득하고; 멀티 프로세서 코어 시스템에 의해 처리된 패킷과 패킷이 속하는 데이터 흐름 사이의 관계를 판정하며; 하향 순서로, 멀티 프로세서 코어 시스템에 의해 처리된 패킷의 수를 분류하고; 멀티 프로세서 코어 시스템에 의해 처리된 패킷과 패킷이 속하는 데이터 흐름 사이의 관계에 기초하여, 전술한 순서에 따라, 처음 N개의 패킷을 포함하는 데이터 흐름을 결정한다.
이하의 예시는 제1 제어 파라미터를 획득하는 방법을 설명한다. flow1, flow2, flow3, flow4, 및 flow5를 포함하는 데이터 흐름이 있음을 가정한다. N은 3이다. 각각의 데이터 흐름의 패킷이 멀티 프로세서 코어 시스템에 진입하는 경우, 처리된 패킷은 제1 샘플링 주기 내에 기록된다. 이후, 멀티 프로세서 코어 시스템에 의해 처리된 패킷과 패킷이 속하는 데이터 흐름 사이의 관계가 결정되고, 멀티 프로세서 코어 시스템에 의해 처리된 패킷의 수가 하향 순서로 분류된다. 기록된 분류 결과가, 시스템에 진입하는 flow1의 패킷이 가장 많은 횟수로 처리되었다는 것이면, flow2의 패킷은 두 번째로 많은 횟수로 처리되었다는 것이며, flow3의 패킷은 가장 적은 횟수로 처리되었다는 것이다. 따라서, 제1 제어 파라미터는 flow1, flow2, 및 flow3을 기록한다.
203. 제2 제어 파라미터에 기초하여, 멀티 프로세서 코어 시스템 내의 현재의 패킷이 속하는 데이터 흐름의 내부 전송 기간이 멀티 프로세서 코어 시스템 내의 프로세서 코어에 의해 현재의 패킷이 속하는 데이터 흐름을 처리하기 위한 기간을 초과하는지를 판정한다.
멀티 프로세서 코어 시스템 내의 현재의 패킷이 속하는 데이터 흐름의 내부 전송 기간이 멀티 프로세서 코어 시스템 내의 프로세서 코어에 의해 현재의 패킷이 속하는 데이터 흐름을 처리하기 위한 기간을 초과하면, 단계 204가 수행된다. 그렇지 않으면, 단계 205가 수행된다.
204. 제3 제어 파라미터에 기초하여, 현재의 패킷을 가장 낮은 사용량을 가지는 프로세서 코어에 분배한다.
205. 현재의 패킷을 리소스 사용량이 제1 임계치보다 낮은 프로세서 코어에 전송하고, 현재의 패킷이 속하는 데이터 흐름을 리소스 사용량이 제1 임계치보다 낮은 프로세서 코어와 결합한다.
현재의 패킷이 속하는 데이터 흐름이 리소스 사용량이 제1 임계치보다 낮은 프로세서 코어와 결합되어, 현재의 패킷이 속하는 데이터 흐름의 패킷이 멀티 프로세서 코어 시스템에 진입하는 경우, 리소스 사용량이 제1 임계치보다 낮은 프로세서 코어에 의해 처리된다.
본 발명의 실시예에서의 제1 임계치는 실제 적용 시나리오에 기초하여 설정될 수 있다.
전술한 단계 201 내지 단계 205는, 복수의 프로세서 코어 사이의 부하(load) 스케줄링을 인식함으로써, 프로세서 코어 리소스의 낭비를 줄이고 멀티 프로세서 코어의 효율과 성능을 향상시키는 인터-코어 전환 정책의 실시예이다.
제2 제어 파라미터를 획득하는 것은, 서로 다른 데이터 흐름의 패킷에 대해, 패킷이 멀티 프로세서 코어 시스템에 진입하는 때 및 패킷이 멀티 프로세서 코어 시스템을 벗어나는 때에 시간 태그(time tag)를 설정하여, 멀티 프로세서 코어 시스템 내의 패킷의 내부 전송 기간을 획득하고; 다르게는, 프로세서 코어가 처리를 시작하고 패킷의 처리를 종료하는 때의 시간을 기록하여, 프로세서 코어에 의해 패킷을 처리하기 위한 기간을 획득하는 것일 수 있다. 실제 적용에서는, 데이터 흐름의 복수의 패킷의 내부 전송 기간 및 프로세서 코어에 의해 복수의 패킷을 각각 처리하기 위한 기간은 개별적으로 획득된다. 내부 전송 기간과 프로세서 코어에 의해 복수의 패킷을 처리하기 위한 기간의 산술 평균은, 멀티 프로세서 코어 시스템 내의 각각의 데이터 흐름의 내부 전송 기간과 프로세서 코어에 의해 각각의 데이터 흐름을 처리하기 위한 기간으로서 개별적으로 계산된다. 프로세서 코어에 의해 처리되는 시간이 더 오래 걸리는 데이터 흐름은 프로세서 코어에 결합된다. 이는 과도한 인터-코어 전환을 피할 수 있고, 프로세서 코어의 계산 능력을 최대로 활용할 수 있어서, 처리 효율을 향상시킨다. 내부 전송 기간이 더 긴 데이터 흐름은 낮은 사용량을 가지는 프로세서 코어에 분배되어, 네트워크 처리 부담을 감소시킨다.
제3 제어 파라미터를 획득하는 것은, 우선 수준(priority level)이 오직 멀티 프로세서 코어 시스템 내의 미가동 상태의 우선 수준보다 높은 작업을 설정하고, 주기적으로 어떤 프로세서 코어에 이 작업이 놓여있는지를 확인하는 것일 수 있으며, 이 프로세서는 가장 낮은 사용량을 가지는 프로세서 코어로서 간주된다.
본 발명의 실시예에서의 전술한 방법으로부터 벗어나, 본 명세서에서는 재차 설명되지 않는 종래기술에서 알려진 다른 방법이 이용되어 멀티 프로세서 코어 시스템 내의 각각의 데이터 흐름의 내부 전송 기간 및 프로세서 코어에 의해 각각의 데이터 흐름을 처리하기 위한 기간을 획득하고, 가장 낮은 사용량을 가지는 프로세서 코어의 프로세서 코어 정보를 획득할 수 있다.
다르게는, 획득된 제4 제어 파라미터에 기초하여, 본 발명의 실시예가, 도 3a에 도시된 것과 같은, 멀티 프로세서 코어 시스템 내의 프로세서 코어를 스케줄링 하기 위한 방법을 추가로 제공하는데, 본 방법은 다음을 포함한다.
301. 중단 모드에서 각각의 데이터 흐름을 처리하기 위한 단일의 중단 오버헤드를 검출하고, 폴링 모드에서 각각의 데이터 흐름을 처리하기 위한 단일의 폴링 오버헤드를 검출한다.
멀티 프로세서 코어 시스템의 초기 구동(initialization) 중에, 중단 모드에서 각각의 데이터 흐름을 처리하기 위한 단일의 중단 오버헤드 및 폴링 모드에서 각각의 데이터 흐름을 처리하기 위한 단일의 폴링 오버헤드가 각각 검출된다. 구체적으로, 중단 오버헤드를 위해, 카운터(counter)는 중단 동작이 프로세서 코어에 발생하는 모든 시점에서 중단을 위한 기간을 검출하도록 구성되고; 폴링 오버헤드를 위해, 카운터는 무효 폴링 동작을 위한 기간을 검출하도록 구성된다. 이후, 검출된 초당 중단 횟수 및 초당 무효 폴링 횟수에 기초하여, 1초당 중단 오버헤드 및 폴링 오버헤드의 기간이 각각 계산될 수 있다.
302. 각각의 데이터 흐름의 APP 최상 경로 설명 정보에 기초하여, 현재의 패킷이 속하는 데이터 흐름이 대응하는 APP 최상 경로를 가지는지를 검출한다.
제4 제어 파라미터는 각각의 데이터 흐름의 APP 최상 경로 설명 정보이다. 각각의 APP 최상 경로 설명 정보는 자신의 대응하는 데이터 흐름이 APP 최상 경로를 가진다는 것을 나타낸다. 예를 들어, APP 최상 경로 설명 정보가 변수 APP_flag에 의해 표현될 수 있다. 데이터 흐름 flow1의 대응하는 APP_flag 값이 0이 아니면, 이는 데이터 흐름 flow1이 APP 최상 경로를 가진다는 것을 나타낸다.
현재의 패킷이 속하는 데이터 흐름이 APP 최상 경로를 가지지 않으면, 현재의 패킷을 처리하는 프로세서 코어의 처리 상태는 유지된다.
현재의 패킷의 데이터 흐름이 대응하는 APP 최상 경로를 가지면, 본 발명의 실시예는 현재의 패킷을 처리하는 프로세서 코어가 폴링 모드에 있는지 아니면 중단 모드에 있는지에 따라 상이한 구현 절차를 가지게 된다. 이하의 단계 303 내지 단계 308은 폴링 모드에서의 프로세서 코어를 예시로서 이용한다.
303. 제1 측정 주기에서 폴링 횟수를 검출한다.
제1 측정 주기는 필요에 따라 사전 설정된다. 프로세서 코어에 의한 패킷 처리 주파수는 제1 측정 주기 내에서 비교적 안정한 상태에 있는 것으로 보장될 것이다.
304. 폴링 횟수 및 단일의 폴링 오버헤드에 기초하여 전체 폴링 오버헤드를 획득한다.
폴링 횟수 및 단일의 폴링 오버헤드를 곱해서 전체 폴링 오버헤드를 획득한다.
305. 중단 횟수의 예측된 임계치와 단일의 중단 오버헤드에 기초하여 전체 중단 오버헤드를 획득한다.
중단 횟수의 예측된 임계치는 사전 설정된 값이고, 중단 횟수의 예측된 임계치는 제1 측정 주기 내의 중단 횟수를 예측하며, 여기에 단일의 중단 오버헤드를 곱해서 전체 중단 오버헤드를 획득한다.
단계 304 및 단계 305의 실행 순서는 서로 뒤바뀔 수 있다는 것을 알아야 한다.
306. 전체 폴링 오버헤드가 전체 중단 오버헤드보다 큰지를 판정한다.
전체 폴링 오버헤드가 전체 중단 오버헤드보다 크면, 단계 307이 수행된다. 그렇지 않으면, 단계 308이 수행된다.
307. 현재의 패킷을 처리하는 프로세서 코어를 폴링 모드로부터 중단 모드로 전환한다.
308. 현재의 패킷을 처리하는 프로세서 코어의 폴링 모드를 유지한다.
전술한 단계 303 내지 단계 308은 폴링 모드의 프로세서 코어를 예시로서 이용한다. 중단 모드의 프로세서 코어에 대해서도, 그 작동은 단계 303 내지 단계 308과 유사하다. 구체적으로, 현재의 패킷을 처리하는 프로세서 코어가 중단 모드에 있으면, 도 3b에 도시된 것처럼, 프로세스는 다음과 같다.
303b. 제2 측정 주기 내의 중단 횟수를 검출한다.
제2 측정 주기는 필요에 따라 사전 설정된다. 프로세서 코어에 의한 패킷 처리 주파수가 제2 측정 주기 내에서 비교적 안정한 상태에 있음이 보장된다. 제2 측정 주기의 기간은 제1 측정 주기의 기간과 일치할 수 있다.
304b. 중단 횟수 및 단일의 중단 오버헤드에 기초하여 전체 중단 오버헤드를 획득한다.
305b. 폴링 횟수의 예측된 임계치와 단일의 폴링 오버헤드에 기초하여 전체 폴링 오버헤드를 획득한다.
폴링 횟수의 예측된 임계치는 사전 설정된 값이고, 폴링 횟수의 예측된 임계치는 제2 측정 주기 내의 폴링 횟수를 예측하며, 여기에 단일의 폴링 오버헤드를 곱해서 전체 폴링 오버헤드를 획득한다.
단계 304b 및 단계 305b의 실행 순서는 서로 뒤바뀔 수 있다는 것을 알아야 한다.
306b. 전체 중단 오버헤드가 전체 폴링 오버헤드보다 큰지를 판정한다.
전체 중단 오버헤드가 전체 폴링 오버헤드보다 크면, 단계 307b가 수행된다. 그렇지 않으면, 단계 308b가 수행된다.
307b. 현재의 패킷을 처리하는 프로세서 코어를 폴링 모드로 전환한다.
308b. 현재의 패킷을 처리하는 프로세서 코어의 중단 모드를 유지한다.
전술한 단계 301 내지 단계 308 및 단계 303b 내지 308b는 인트라-코어 전환 정책의 특정한 구현에 해당하고, 중단 모드와 폴링 모드 사이의 프로세서 코어의 전환은 프로세서 코어 리소스의 낭비를 줄이고 멀티 프로세서 코어의 성능 및 효율을 향상시킨다.
이하의 도 4는 데이터 흐름이 APP 최상 경로를 가지는지를 판정하는 방법과 APP 최상 경로 설명 정보를 획득하는 방법을 설명하는데, 이는 다음을 포함한다.
401. 기능 처리 카운터(function processing counter) 및 주파수 카운터를 이네이블(enable) 시킨다.
멀티 프로세서 코어 시스템이 이네이블 되기 전에, 기능 처리 카운터 및 주파수 카운터에 대해, 처리 기간 임계치(processing duration threshold) 및 처리 주파수 임계치가 수동으로 설정된다. 처리 기간 임계치 및 처리 주파수 임계치는 APP 최상 경로를 설정하기 위한 규칙을 설정한다.
402. 검출될 데이터 흐름의 패킷이 현재의 기능 모듈에 의해 처리되는 모든 경우에, 기능 처리 카운터의 값에 1을 더한다.
403. 기능 처리 카운터의 값이 처리 기간 임계치보다 큰지를 판정한다.
기능 처리 카운터의 값이 처리 기간 임계치보다 큰 경우, 단계 404가 수행된다. 기능 처리 카운터의 값이 처리 기간 임계치보다 크지 않은 경우, 검출될 데이터 흐름의 처리가 완료되지 않으면, 검출이 진행되고, 기능 처리 카운터의 값이 축적된다.
404. 주파수 카운터의 값에 1을 더하고; 기능 처리 카운터를 재설정(reset)한다.
405. 주파수 카운터의 값이 처리 주파수 임계치보다 큰지를 판정한다.
주파수 카운터의 값이 처리 주파수 임계치보다 큰 경우, 단계 406이 수행된다. 주파수 카운터의 값이 처리 주파수 임계치보다 크지 않은 경우, 검출될 데이터 흐름의 처리가 완료되지 않으면, 검출이 진행된다.
406. 주파수 카운터의 값이 처리 주파수 임계치보다 큰 경우, 주파수 카운터의 값에 대응하는 패킷이 속하는 데이터 흐름에 대한 APP 최상 경로 설명 정보를 획득한다.
검출될 데이터 흐름의 처리가 완료되지 않은 경우에 기능 처리 카운터의 값이 처리 기간 임계치보다 크지 않거나 주파수 카운터의 값이 처리 주파수 임계치보다 크지 않으면, 또는 제1 검출 주기가 종료한 때에 기능 처리 카운터의 값이 처리 기간 임계치보다 크지 않거나 주파수 카운터의 값이 처리 주파수 임계치보다 크지 않으면, APP 최상 경로가 존재하지 않는 것으로 간주될 수 있고, APP 최상 경로 설명 정보를 획득하기 위한 동작은 생략된다.
이하의 예시는 전술한 단계 401 내지 단계 406을 설명하기 위해 이용된다. 패킷이 멀티 프로세서 코어 시스템에 진입한 후에, 프로세서 코어 내의 복수의 기능 모듈에 의해 처리될 수 있다. 예를 들어, 데이터 흐름 flow1의 패킷이 멀티 프로세서 코어 시스템에 진입한 후에, 기능 모듈 function1, function2, 및 function 3에 의해 하나씩 처리된다. 따라서, flow1의 대응하는 처리 경로는 function1-function2-function3이 된다. 동시에, flow2의 대응하는 처리 경로는 function1-function3으로, flow3의 대응하는 처리 경로는 function1-function2-function3-function4로 추정된다. 사전 설정된 처리 기간 임계치가 3이고 사전 설정된 처리 주파수 임계치가 1이면, 기능 모듈이 flow1의 처리를 종료한 경우, 대응하는 기능 처리 카운터의 값이 3으로 결정될 수 있다. 이 값은 처리 기간 임계치보다 크지 않다. 따라서, APP 최상 경로는 존재하지 않고, 유사하게 flow2도 APP 최상 경로를 가지지 않는다. flow3이 그 대응하는 처리 경로의 기능 모듈에 의해 처리된 이후에, 대응하는 기능 처리 카운터의 값은 4가 된다. 이때, 주파수 카운터는 더하기-1 동작을 수행하여, 그 값은 1이 되고, 4의 값을 가지는 기능 처리 카운터는 재설정된다. 이후, flow3의 패킷이 시스템에 다시 진입하여 기능 모듈에 의해 처리된 이후라면, 주파수 카운터의 값은 2가 된다. 이때, flow3에 대해, 주파수 카운터의 값(값은 2)이 처리 주파수 임계치보다 커진다. APP 최상 경로가 flow3에 대해 존재한다. 따라서, 대응하는 APP 최상 경로 정보가 멀티 프로세서 코어 시스템 내의 flow3에 대해 획득된다. flow3의 패킷이 시스템에 다시 진입하지 않고, 그에 따라 기능 모듈에 의해 처리되지 않으면, 그 주파수 카운터의 값은 처리 주파수 임계치보다 크지 않게 되고, flow3에 대한 어떠한 APP 최상 경로도 존재하지 않으며, flow3에 대한 대응하는 APP 최상 경로 설명 정보를 획득하기 위한 동작은 생략된다.
본 발명의 실시예에서, 데이터 흐름은 5가지(소스 어드레스, 타켓 어드레스, 소스 포트, 타겟 포트, 및 데이터 흐름의 전송 프로토콜)로 구분된다.
본 발명의 실시예에 따른 멀티 프로세서 코어 시스템 내의 프로세서 코어는 CPU, MCU, 또는 DSP 등일 수 있다. 멀티 프로세서 코어 시스템에서는, 많은 수의 프로세서 코어가 동시적으로 그들 자체의 인트라-코어 작업 및 인터-코어 작업을 전환하고 스케줄링 한다.
본 발명의 실시예는 멀티 프로세서 코어 시스템 내의 프로세서 코어를 스케줄링 하기 위한 방법을 제공하는데, 멀티 프로세서 코어 시스템의 실행 프로세스 중에 제1 제어 파라미터, 제2 제어 파라미터, 제3 제어 파라미터, 및 제4 제어 파라미터를 획득하고, 제1 제어 파라미터, 제2 제어 파라미터, 및 제3 제어 파라미터에 기초하여 복수의 프로세서 코어들 사이의 부하 스케줄링을 실현하며, 제4 제어 파라미터에 기초하여 단일의 프로세서 코어의 중단 모드 및 폴링 모드 사이의 전환을 실현함으로써, 멀티 프로세서 코어 시스템 내의 실시간 네트워크 I/O에 대한 요구를 만족시킬 수 있고, 이에 따라 전체 멀티 프로세서 코어 시스템의 효율을 향상시킬 수 있다. 멀티 프로세서 코어 환경에 특히 적합하게 설계된 부하 스케줄링은, 전통적인 구성 스케줄링 모드에서, 합리적인 스케줄링 선택을 어렵게 하여 멀티 프로세서 코어의 효율 및 성능이 최대로 활용되지 못하게 되는 문제를 회피하게 된다. 또한, 본 방법은 엔지니어 또는 가입자에 의한 멀티 프로세서 코어의 네트워크 I/O의 수동 구성을 간단하게 하여, 멀티 코어 플랫폼 상의 소프트웨어 배치 효율성을 향상시킨다.
(실시예 3)
본 발명의 일 실시예는, 도 5에 도시된 것처럼, 멀티 프로세서 코어 시스템 내의 프로세서 코어를 스케줄링 하기 위한 장치를 제공하는데, 이는 제어 파라미터 획득 유닛(control parameter obtaining unit)(51), 제1 검출 유닛(first detection unit)(52), 인터-코어 전환 스케줄링 유닛(inter-core switchover scheduling unit)(53), 및 인트라-코어 전환 스케줄링 유닛(intra-core switchover scheduling unit)(54)을 포함한다.
제어 파라미터 획득 유닛(51)은, 멀티 프로세서 코어 시스템의 실행 프로세스 중에 제1 제어 파라미터, 제2 제어 파라미터, 제3 제어 파라미터, 및 제4 제어 파라미터를 획득하도록 구성된다.
제1 제어 파라미터는 N개의 데이터 흐름의 지시 정보를 나타내고, N개의 데이터 흐름은 각각의 데이터 흐름에 포함되는 처리된 패킷 수에 따른 하향 순서로, 멀티 프로세서 코어 시스템이 처리한 패킷을 포함하는 데이터 흐름을 분류함으로써 제1 샘플링 주기에서 획득된 처음 N개의 데이터 흐름을 나타내며, N은 양의 정수이다. N개의 데이터 흐름의 지시 정보는 어떠한 N개의 데이터 흐름이 지시 정보에 의해 표시되는지를 나타낼 수 있다.
제2 제어 파라미터는 멀티 프로세서 코어 시스템 내의 각각의 데이터 흐름의 내부 전송 기간 및 멀티 프로세서 코어 시스템 내의 프로세서 코어에 의한 각각의 데이터 흐름의 처리를 위한 기간을 나타낸다. 제3 제어 파라미터는 가장 낮은 사용량을 가지는 프로세서 코어의 프로세서 코어 정보를 나타낸다. 제4 제어 파라미터는 각각의 데이터 흐름의 어플리케이션 최상 경로 설명 정보를 나타낸다.
제1 검출 유닛(52)은 제1 제어 파라미터에 기초하여, 현재의 패킷이 속하는 데이터 흐름이 N개의 데이터 흐름 중의 하나인지를 검출하도록 구성된다.
인터-코어 전환 스케줄링 유닛(53)은, 현재의 패킷이 속하는 데이터 흐름이 N개의 데이터 흐름 중의 하나가 아닌 경우, 제2 제어 파라미터 및 제3 제어 파라미터에 기초하고, 인터-코어 전환 정책에 따라 멀티 프로세서 코어 시스템에 진입하는 데이터 흐름의 패킷을, 처리를 위해 미가동 프로세서 코어에 이송하도록 구성된다.
인터-코어 전환 정책은, 내부 전송 기간이 프로세서 코어에 의한 패킷의 처리를 위한 기간을 초과하면, 패킷이 가장 낮은 사용량을 가지는 프로세서 코어에 의해 처리되고, 프로세서 코어에 의한 패킷의 처리를 위한 기간이 내부 전송 기간을 초과하면, 패킷은 처리를 위해 지정된 프로세서 코어에 결합되는 것이다.
인트라-코어 전환 스케줄링 유닛(54)은, 제4 제어 파라미터에 기초하고, 인트라-코어 전환 정책에 따라, 중단 모드와 폴링 모드 사이에서, 멀티 프로세서 코어 시스템 내의 패킷을 처리하는 프로세서 코어를 전환하도록 구성된다.
인트라-코어 전환 정책은, 전체 폴링 오버헤드가 전체 중단 오버헤드보다 크면, 프로세서 코어가 중단 모드에 진입하여 패킷을 처리하고, 전체 폴링 오버헤드가 전체 중단 오버헤드보다 작으면, 프로세서 코어는 폴링 모드에 진입하여 패킷을 처리하는 것이다.
미가동 프로세서 코어는 가장 사용량이 낮은 프로세서 코어와 리소스 사용량이 특정 임계치보다 낮은 프로세서 코어를 포함하는데, 여기서 특정 임계치는 필요에 따라 시스템에서 사전 설정된 임계치 또는 인간-컴퓨터 상호작용 인터페이스를 통해 가입자에 의해 입력되는 동적으로 구성되는 임계치일 수 있다.
나아가, 도 6에 도시된 것처럼, 인터-코어 전환 스케줄링 유닛(53)은 구체적으로 제1 판정 서브유닛(first determination subunit)(531)과 제1 스케줄링 서브유닛(first scheduling subunit)(532)을 더 포함한다.
제1 판정 서브 유닛(531)은, 제2 제어 파라미터에 기초하여, 멀티 프로세서 코어 시스템 내의 현재의 패킷이 속하는 데이터 흐름의 내부 전송 기간이 멀티 프로세서 코어 시스템 내의 프로세서 코어에 의해 현재의 패킷이 속하는 데이터 흐름을 처리하기 위한 기간을 초과하는지를 판정하도록 구성된다.
제1 스케줄링 유닛(532)은, 제3 제어 파라미터에 기초하여, 제1 검출 유닛(52)이 현재의 패킷이 속하는 데이터 흐름이 N개의 데이터 흐름 중의 하나가 아니고, 멀티 프로세서 코어 시스템 내의 현재의 패킷이 속하는 데이터 흐름의 내부 전송 기간이 멀티 프로세서 코어 시스템 내의 프로세서 코어에 의해 현재의 패킷이 속하는 데이터 흐름을 처리하기 위한 기간을 초과하는 경우, 현재의 패킷을 멀티 프로세서 코어 시스템 내에서 가장 낮은 사용량을 가지는 프로세서 코어에 분배하도록 구성된다.
나아가, 도 7에 도시된 것처럼, 인터-코어 전환 스케줄링 유닛(53)은, 제1 검출 유닛(52)이 현재의 패킷이 속하는 데이터 흐름이 N개의 데이터 흐름 중의 하나인 것을 검출하거나 제1 판정 서브유닛(531)이 멀티 프로세서 코어 시스템 내의 현재의 패킷이 속하는 데이터 흐름의 내부 전송 기간이 멀티 프로세서 코어 시스템 내의 프로세서 코어에 의해 현재의 패킷이 속하는 데이터 흐름을 처리하기 위한 기간을 초과하지 않는 것으로 판정한 경우, 제1 임계값보다 낮은 리소스 사용량을 가지는 프로세서 코어에 현재의 패킷을 전송하고, 현재의 패킷이 속하는 데이터 흐름을 제1 임계값보다 낮은 리소스 사용량을 가지는 프로세서 코어와 결합하도록 구성된 제2 스케줄링 서브유닛(533)을 더 포함하고, 이에 따라 현재의 패킷이 속하는 데이터 흐름의 패킷이 멀티 프로세서 코어 시스템에 진입하는 경우, 제1 임계값보다 낮은 사용량을 가지는 프로세서 코어에 의해 처리된다.
본 발명의 실시예에서의 제1 임계치는 실제 적용 시나리오에 기초하여 설정될 수 있다.
또한, 도 8에 도시된 것처럼, 인트라-코어 전환 스케줄링 유닛(54)은, 제2 검출 서브유닛(second detection subunit)(545), 제3 검출 서브유닛(third detection subunit)(546), 폴링 검출 서브유닛(polling detection subunit)(547), 폴링 오버헤드 획득 서브유닛(polling overhead obtaining subunit)(548), 중단 오버헤드 획득 서브유닛(interruption overhead obtaining subunit)(549), 제3 스케줄링 서브유닛(third scheduling subunit)(5410), 및 제4 스케줄링 서브유닛(fourth scheduling subunit)(5411)을 더 포함한다.
제2 검출 서브유닛(545)은, 멀티 프로세서 코어 시스템의 초기 구동 중에, 중단 모드에서 각각의 데이터 흐름을 처리하기 위한 단일의 중단 오버헤드 및 폴링 모드에서 각각의 데이터 흐름을 처리하기 위한 단일의 폴링 오버헤드를 각각 검출하도록 구성된다.
제3 검출 서브유닛(546)은, 각각의 데이터 흐름의 APP 최상 경로 설명 정보에 기초하여, 현재의 패킷이 속하는 데이터 흐름이, 대응하는 APP 최상 경로를 가지는지를 검출하도록 구성된다.
폴링 검출 서브유닛(547)은 현재의 패킷이 속하는 데이터 흐름이, 대응하는 APP 최상 경로를 가지고, 현재의 패킷을 처리하는 프로세서 코어가 폴링 모드에 있는 경우, 제1 측정 주기에 폴링 횟수를 검출하도록 구성된다.
제1 측정 주기는 필요에 따라 사전 설정된다. 프로세서 코어에 의한 패킷 처리 주파수는 제1 측정 주기 내에서 비교적 안정한 상태에 있음이 보장될 것이다.
폴링 오버헤드 획득 서브유닛(548)은 폴링 횟수 및 단일의 폴링 오버헤드에 기초하여 전체 폴링 오버헤드를 획득하도록 구성된다.
중단 오버헤드 획득 서브유닛(549)은 중단 횟수의 예측된 임계치와 단일의 중단 오버헤드에 기초하여 전체 중단 오버헤드를 획득한다.
제3 스케줄링 서브유닛(5410)은, 전체 폴링 오버헤드가 전체 중단 오버헤드보다 큰 경우, 현재의 패킷을 처리하는 프로세서 코어를 폴링 모드로부터 중단 모드로 전환하도록 구성된다.
제4 스케줄링 서브유닛(5411)은, 전체 폴링 오버헤드가 전체 중단 오버헤드보다 크지 않은 경우, 현재의 패킷을 처리하는 프로세서 코어의 폴링 모드를 유지한다.
나아가, 도 9에 도시된 것처럼, 인트라-코어 전환 스케줄링 유닛(54)은, 현재의 패킷이 속하는 데이터 흐름이, 대응하는 APP 최상 경로를 가지고, 현재의 패킷을 처리하는 프로세서 코어가 중단 모드에 있는 경우, 제2 측정 주기에 중단 횟수를 검출하도록 구성된 중단 검출 서브유닛(interruption detection subunit)(5412)을 더 포함한다.
제2 측정 주기는 필요에 따라 사전 설정된다. 프로세서 코어에 의한 패킷 처리 주파수는 제2 측정 주기 내에서 비교적 안정한 상태에 있음이 보장될 것이다. 제2 측정 주기의 기간은 제1 측정 주기의 기간과 일치할 수 있다.
중단 오버헤드 획득 서브유닛(549)은 중단 횟수 및 단일의 중단 오버헤드에 기초하여 전체 중단 오버헤드를 획득하도록 더 구성된다.
폴링 오버헤드 획득 서브유닛(548)은 폴링 횟수의 예측된 임계치와 단일의 폴링 오버헤드에 기초하여 전체 폴링 오버헤드를 획득하도록 더 구성된다.
제4 스케줄링 서브유닛(5411)은, 전체 중단 오버헤드가 전체 폴링 오버헤드보다 큰 경우, 현재의 패킷을 처리하는 프로세서 코어를 중단 모드로부터 폴링 모드로 전환하도록 더 구성된다.
제3 스케줄링 서브유닛(5410)은, 전체 중단 오버헤드가 전체 폴링 오버헤드보다 크지 않은 경우, 현재의 패킷을 처리하는 프로세서 코어의 중단 모드를 유지하도록 구성된다.
APP 최상 경로를 설정하는 방법에 대해서는 본 발명의 실시에 2가 참조되므로, 여기에서 다시 설명하지 않는다.
한편, 도 10에 도시된 것처럼, 제어 파라미터 획득 유닛(51)은, 제1 제어 파라미터 획득 유닛(55), 제2 제어 파라미터 획득 유닛(56), 제3 제어 파라미터 획득 유닛(57), 및 제4 제어 파라미터 획득 유닛(58)을 포함한다.
제1 제어 파라미터 획득 유닛(55)은, 제1 샘플링 주기에 멀티 프로세서 코어 시스템에 의해 처리된 패킷을 획득하고; 하향 순서로, 멀티 프로세서 코어 시스템에 의해 처리된 패킷의 수를 분류하고; 멀티 프로세서 코어 시스템에 의해 처리된 패킷과 패킷이 속하는 데이터 흐름 사이의 관계에 기초하여, 전술한 순서에 따라, 처음 N개의 패킷을 포함하는 데이터 흐름을 결정하도록 구성된다.
제2 제어 파라미터 획득 유닛(56)은, 멀티 프로세서 코어 시스템의 실행 프로세스 중에, 제2 제어 파라미터를 획득하도록 구성되는데, 여기서 제2 제어 파라미터는 멀티 프로세서 코어 시스템 내의 각각의 데이터 흐름의 내부 전송 기간과 멀티 프로세서 코어 시스템 내의 프로세서 코어에 의해 각각의 데이터 흐름을 처리하기 위한 기간을 나타낸다.
제2 제어 파라미터를 획득하는 것은, 서로 다른 데이터 흐름의 패킷에 대해, 패킷이 멀티 프로세서 코어 시스템에 진입하는 때 및 패킷이 멀티 프로세서 코어 시스템을 벗어나는 때에 시간 태그를 설정하여, 멀티 프로세서 코어 시스템 내의 패킷의 내부 전송 기간을 획득하고; 다르게는, 프로세서 코어가 처리를 시작하고 패킷의 처리를 종료하는 때의 시간을 기록하여, 프로세서 코어에 의해 패킷을 처리하기 위한 기간을 획득하는 것일 수 있다. 실제 적용에서는, 데이터 흐름의 복수의 패킷의 내부 전송 기간 및 프로세서 코어에 의해 복수의 패킷을 각각 처리하기 위한 기간은 개별적으로 획득된다. 내부 전송 기간과 프로세서 코어에 의해 복수의 패킷을 처리하기 위한 기간의 산술 평균은, 멀티 프로세서 코어 시스템 내의 각각의 데이터 흐름의 내부 전송 기간과 프로세서 코어에 의해 각각의 데이터 흐름을 처리하기 위한 기간으로서 개별적으로 계산된다. 프로세서 코어에 의해 처리되는 시간이 더 오래 걸리는 데이터 흐름은 프로세서 코어에 결합된다. 이는 과도한 인터-코어 전환을 피할 수 있고, 프로세서 코어의 계산 능력을 최대로 활용할 수 있어서, 처리 효율을 향상시킨다. 내부 전송 기간이 더 긴 데이터 흐름은 낮은 사용량을 가지는 프로세서 코어에 분배되어, 네트워크 처리 부담을 감소시킨다.
제3 제어 파라미터 획득 유닛(57)은 멀티 프로세서 코어 시스템의 실행 프로세스 중에, 제3 제어 파라미터를 획득하도록 구성되는데, 제3 제어 파라미터는 가장 낮은 사용량을 가지는 프로세서 코어 상의 프로세서 코어 정보를 나타낸다.
제3 제어 파라미터를 획득하는 것은, 우선 수준이 오직 멀티 프로세서 코어 시스템 내의 미가동 상태의 우선 수준보다 높은 작업을 설정하고, 주기적으로 어떤 프로세서 코어에 이 작업이 놓여있는지를 확인하는 것일 수 있으며, 이 프로세서는 가장 낮은 사용량을 가지는 프로세서 코어로서 간주된다.
제4 제어 파라미터 획득 유닛(58)은 멀티 프로세서 코어 시스템 내에서 검출될 데이터 흐름의 패킷의 처리 기간 및 처리 주파수가 처리 기간 임계치 및 처리 주파수 임계치를 초과하는 경우, 검출될 데이터 흐름의 APP 최상 경로 설명 정보를 획득하도록 구성된다.
나아가, 도 11a에 도시된 것처럼, 제1 제어 파라미터 획득 유닛(55)은 패킷 정보 획득 서브유닛(packet information obtaining subunit)(551), 데이터 흐름 판정 서브유닛(data flow determination subunit)(552), 및 제1 제어 파라미터 획득 서브유닛(first control parameter obtaining subunit)(553)을 포함한다.
패킷 정보 획득 서브유닛(551)은 제1 샘플링 주기에 멀티 프로세서 코어 시스템에서 처리된 패킷 상의 정보를 획득하도록 구성된다.
데이터 흐름 판정 서브유닛(552)은 멀티 프로세서 코어 시스템에 의해 처리된 패킷과 패킷이 속하는 데이터 흐름 사이의 관계를 판정하도록 구성된다.
제1 제어 파라미터 획득 서브유닛(553)은 하향 순서로, 멀티 프로세서 코어 시스템에 의해 처리된 패킷의 수를 분류하고; 멀티 프로세서 코어 시스템에 의해 처리된 패킷과 패킷이 속하는 데이터 흐름 사이의 관계에 기초하여, 전술한 순서에 따라, 처음 N개의 패킷을 포함하는 데이터 흐름을 결정하도록 구성된다.
또한, 도 11b에 도시된 것처럼, 제4 제어 파라미터 획득 유닛(58)은 임계치 검출 서브유닛(threshold detection subunit)(584) 및 제4 제어 파라미터 획득 서브유닛(fourth control parameter obtaining subunit)(585)을 포함한다.
임계치 검출 서브유닛(584)은 제1 검출 주기에, 검출될 데이터 흐름의 패킷의 처리 기간과 처리 주파수가 처리 기간 임계치 및 처리 주파수 임계치를 초과하는지를 검출하도록 구성된다.
제4 제어 파라미터 획득 서브유닛(585)은 멀티 프로세서 코어 시스템 내의 검출될 데이터 흐름의 패킷의 처리 기간과 처리 주파수가 처리 기간 임계치 및 처리 주파수 임계치를 초과하는 경우, 검출될 데이터 흐름의 APP 최상 경로 설명 정보를 획득하도록 구성되는데, 여기서 APP 최상 경로 설명 정보는 검출될 데이터 흐름이 APP 최상 경로를 가지는 것을 나타낸다.
본 발명의 실시예에서, 데이터 흐름은 5가지(소스 어드레스, 타켓 어드레스, 소스 포트, 타겟 포트, 및 데이터 흐름의 전송 프로토콜)로 구분된다.
본 발명의 실시예에 따른 멀티 프로세서 코어 시스템 내의 프로세서 코어는 CPU, MCU, 또는 DSP 등일 수 있다. 멀티 프로세서 코어 시스템에서는, 많은 수의 프로세서 코어가 동시적으로 그들 자체의 인트라-코어 작업 및 인터-코어 작업을 전환하고 스케줄링 한다.
본 발명의 실시예에 따른 멀티 프로세서 코어 시스템 내의 프로세서 코어를 스케줄링 하기 위한 장치의 구현에 대한 상세한 내용은 전술한 실시예들의 설명과 동일할 수 있기 때문에, 여기에서 다시 설명하지 않는다.
본 발명의 실시예는 멀티 프로세서 코어 시스템 내의 프로세서 코어를 스케줄링 하기 위한 장치를 제공하는데, 멀티 프로세서 코어 시스템의 실행 프로세스 중에 제1 제어 파라미터, 제2 제어 파라미터, 제3 제어 파라미터, 및 제4 제어 파라미터를 획득하고, 제1 제어 파라미터, 제2 제어 파라미터, 및 제3 제어 파라미터에 기초하여 복수의 프로세서 코어들 사이의 부하 스케줄링을 실현하며, 제4 제어 파라미터에 기초하여 단일의 프로세서 코어의 중단 모드 및 폴링 모드 사이의 전환을 실현함으로써, 멀티 프로세서 코어 시스템 내의 실시간 네트워크 I/O에 대한 요구를 만족시킬 수 있고, 이에 따라 전체 멀티 프로세서 코어 시스템의 효율을 향상시킬 수 있다. 멀티 프로세서 코어 환경에 특히 적합하게 설계된 부하 스케줄링은, 전통적인 구성 스케줄링 모드에서, 합리적인 스케줄링 선택을 어렵게 하여 멀티 프로세서 코어의 효율 및 성능이 최대로 활용되지 못하게 되는 문제를 회피하게 된다. 또한, 본 방법은 엔지니어 또는 가입자에 의한 멀티 프로세서 코어의 네트워크 I/O의 수동 구성을 간단하게 하여, 멀티 코어 플랫폼 상의 소프트웨어 배치 효율성을 향상시킨다.
(실시예 4)
본 발명의 일 실시예는, 도 12에 도시된 것처럼, 컴퓨터 시스템도 제공하는데, 본 컴퓨터 시스템은, 버스(1201); 버스에 연결된 멀티 프로세서 코어(1202); 및 버스에 연결된 메모리(1203)를 포함하고, 멀티 프로세서 코어(1202)는 실시예 3에서의 장치 중 어느 하나를 포함한다.
도 12에서, 멀티 프로세서 코어(1202)는 제어 파라미터 획득 유닛(1204), 제1 검출 유닛(1205), 인터-코어 전환 스케줄링 유닛(1206), 및 인트라-코어 전환 스케줄링 유닛(1207)을 포함한다.
본 발명의 실시예는 컴퓨터 시스템을 제공하는데, 멀티 프로세서 코어 시스템의 실행 프로세스 중에 제1 제어 파라미터, 제2 제어 파라미터, 제3 제어 파라미터, 및 제4 제어 파라미터를 획득하고, 제1 제어 파라미터, 제2 제어 파라미터, 및 제3 제어 파라미터에 기초하여 복수의 프로세서 코어들 사이의 부하 스케줄링을 실현하며, 제4 제어 파라미터에 기초하여 단일의 프로세서 코어의 중단 모드 및 폴링 모드 사이의 전환을 실현함으로써, 멀티 프로세서 코어 시스템 내의 실시간 네트워크 I/O에 대한 요구를 만족시킬 수 있고, 이에 따라 전체 멀티 프로세서 코어 시스템의 효율을 향상시킬 수 있다. 멀티 프로세서 코어 환경에 특히 적합하게 설계된 부하 스케줄링은, 전통적인 구성 스케줄링 모드에서, 합리적인 스케줄링 선택을 어렵게 하여 멀티 프로세서 코어의 효율 및 성능이 최대로 활용되지 못하게 되는 문제를 회피하게 된다. 또한, 본 방법은 엔지니어 또는 가입자에 의한 멀티 프로세서 코어의 네트워크 I/O의 수동 구성을 간단하게 하여, 멀티 코어 플랫폼 상의 소프트웨어 배치 효율성을 향상시킨다.
(실시예 5)
본 발명의 일 실시예는, 도 13에 도시된 것처럼, 컴퓨터 시스템을 제공하는데, 본 컴퓨터 시스템은, 버스; 버스에 연결된 멀티 프로세서 코어; 및 버스에 연결된 메모리를 포함하고, 버스(1303)를 통해 메모리(1303) 내의 실행 명령을 호출함으로써, 멀티 프로세서 코어(1302)는, 메로리, 하드 디스크 장치, 또는 플래시 메모리일 수 있는 메모리(1303)로부터 호출된 데이터에 기초하여 제1 제어 파라미터, 제2 제어 파라미터, 제3 제어 파라미터 및 제4 제어 파라미터를 획득하도록 구성되는데, 여기서, 제1 제어 파라미터는 N개의 데이터 흐름의 지시 정보를 나타내고, N개의 데이터 흐름은 각각의 데이터 흐름에 포함되는 처리된 패킷 수에 따른 하향 순서로, 멀티 프로세서 코어 시스템이 처리한 패킷을 포함하는 데이터 흐름을 분류함으로써 제1 샘플링 주기에서 획득된 처음 N개의 데이터 흐름을 나타내며, N은 양의 정수이고; 제2 제어 파라미터는 멀티 프로세서 코어 시스템 내의 각각의 데이터 흐름의 내부 전송 기간 및 멀티 프로세서 코어 시스템 내의 프로세서 코어에 의한 각각의 데이터 흐름의 처리를 위한 기간을 나타내며; 제3 제어 파라미터는 가장 낮은 사용량을 가지는 프로세서 코어의 프로세서 코어 정보를 나타내고; 제4 제어 파라미터는 각각의 데이터 흐름의 APP 최상 경로 설명 정보를 나타낸다.
멀티 프로세서 코어(1302)는 제1 제어 파라미터에 기초하여, 현재의 패킷이 속하는 데이터 흐름이 N개의 데이터 흐름 중의 하나인지를 검출하도록 더 구성된다.
멀티 프로세서 코어(1302)는, 현재의 패킷이 속하는 데이터 흐름이 N개의 데이터 흐름 중의 하나가 아닌 경우, 제2 제어 파라미터 및 제3 제어 파라미터에 기초하고, 인터-코어 전환 정책에 따라 멀티 프로세서 코어 시스템에 진입하는 데이터 흐름의 패킷을, 처리를 위해 미가동 프로세서 코어에 이송하도록 더 구성되는데, 여기서 인터-코어 전환 정책은, 내부 전송 기간이 프로세서 코어에 의한 패킷의 처리를 위한 기간을 초과하면, 패킷이 가장 낮은 사용량을 가지는 프로세서 코어에 의해 처리되고, 프로세서 코어에 의한 패킷의 처리를 위한 기간이 내부 전송 기간을 초과하면, 패킷은 처리를 위해 지정된 프로세서 코어에 결합되는 것이다.
멀티 프로세서 코어(1302)는 제4 제어 파라미터에 기초하고, 인트라-코어 전환 정책에 따라, 중단 모드와 폴링 모드 사이에서, 멀티 프로세서 코어(1302)에 의해 형성된 컴퓨터 시스템 내의 패킷을 처리하는 프로세서 코어를 전환하도록 더 구성되는데, 여기서 인트라-코어 전환 정책은, 전체 폴링 오버헤드가 전체 중단 오버헤드보다 크면, 프로세서 코어가 중단 모드에 진입하여 패킷을 처리하고, 전체 폴링 오버헤드가 전체 중단 오버헤드보다 작으면, 프로세서 코어는 폴링 모드에 진입하여 패킷을 처리하는 것이다.
본 발명의 실시예에 따른 멀티 프로세서 코어는 단일-코어 프로세서 내의 프로세서 코어 또는 멀티-코어 프로세서 내의 프로세서 코어일 수 있다. 예를 들어, 도 13에 도시된 것처럼, 복수의 프로세서의 커널(kernel)이 캡슐화 구조로 캡슐화되어 실현될 수도 있다. 전술한 컴퓨터 시스템에서는, 복수의 캡슐화 구조가 있을 수 있고, 각각의 캡슐화 구조는 복수의 프로세서 커널로 캡슐화된다.
본 발명의 실시예는 컴퓨터 시스템을 제공하는데, 멀티 프로세서 코어 시스템의 실행 프로세스 중에 제1 제어 파라미터, 제2 제어 파라미터, 제3 제어 파라미터, 및 제4 제어 파라미터를 획득하고, 제1 제어 파라미터, 제2 제어 파라미터, 및 제3 제어 파라미터에 기초하여 복수의 프로세서 코어들 사이의 부하 스케줄링을 실현하며, 제4 제어 파라미터에 기초하여 단일의 프로세서 코어의 중단 모드 및 폴링 모드 사이의 전환을 실현함으로써, 멀티 프로세서 코어 시스템 내의 실시간 네트워크 I/O에 대한 요구를 만족시킬 수 있고, 이에 따라 전체 멀티 프로세서 코어 시스템의 효율을 향상시킬 수 있다. 멀티 프로세서 코어 환경에 특히 적합하게 설계된 부하 스케줄링은, 전통적인 구성 스케줄링 모드에서, 합리적인 스케줄링 선택을 어렵게 하여 멀티 프로세서 코어의 효율 및 성능이 최대로 활용되지 못하게 되는 문제를 회피하게 된다. 또한, 본 방법은 엔지니어 또는 가입자에 의한 멀티 프로세서 코어의 네트워크 I/O의 수동 구성을 간단하게 하여, 멀티 코어 플랫폼 상의 소프트웨어 배치 효율성을 향상시킨다.
당해 기술분야에서 통상의 지식을 가진 자는, 위 실시예들에서의 방법의 모든 단계 또는 일부 단계들이 관련 하드웨어에 명령을 내리는 프로그램에 의해 구현될 수 있음을 충분히 이해할 수 있다. 전술한 프로그램은 컴퓨터가 판독 가능한 저장 매체에 저장될 수 있다. 프로그램이 실행된 경우, 방법 실시예들에 포함된 선행하는 단계들이 수행되고, 전술한 저장 매체는 ROM, RAM, 자기 디스크, 또는 광 디스크와 같은, 프로그램 코드를 저장 가능한 어떠한 매체도 될 수 있다.
위 실시예들의 설명에서 사용된 "제1", "제2", "제3", 및 "제4"와 같은 표현들은 순서를 한정하고자 하는 의도가 아님을 알아야 한다. 대신에, 이들 표현은 오직 구별을 위해 이용된 것임을 알아야 한다.
전술한 설명들은 단지 본 발명의 실시예 중 특정 실시예에만 해당하는 것이며, 본 발명의 보호 범위를 한정하려는 의도가 아니다. 본 발명에 개시된 기술적 범위 내에서 당해 기술분야에서 통상의 지식을 가진 자에 의해 충분히 이해되는 어떠한 변경 또는 대체도 모두 본 발명의 보호 범위 내에 포함될 것이다. 따라서, 본 발명의 보호 범위는 특허청구범위에 의해 정의될 것이다.

Claims (18)

  1. 멀티 프로세서 코어 시스템(multiprocessor core system) 내의 프로세서 코어를 스케줄링(scheduling) 하기 위한 방법으로서,
    멀티 프로세서 코어 시스템의 실행 프로세스 중에, 제1 제어 파라미터, 제2 제어 파라미터, 제3 제어 파라미터 및 제4 제어 파라미터를 획득하는 단계 - 상기 제1 제어 파라미터는 N개의 데이터 흐름(data flow)의 지시 정보(indication information)를 나타내고, 상기 N개의 데이터 흐름은 각각의 데이터 흐름에 포함되는 처리된 패킷 수에 따른 하향 순서로, 상기 멀티 프로세서 코어 시스템이 처리한 패킷을 포함하는 데이터 흐름을 분류함으로써 제1 샘플링 주기(sampling cycle)에 획득된 처음 N개의 데이터 흐름을 나타내며, 상기 N은 양의 정수이고; 상기 제2 제어 파라미터는 상기 멀티 프로세서 코어 시스템 내의 각각의 데이터 흐름의 내부 전송 기간(internal transmission duration) 및 상기 멀티 프로세서 코어 시스템 내의 프로세서 코어에 의해 각각의 데이터 흐름을 처리하기 위한 기간을 나타내며; 상기 제3 제어 파라미터는 가장 낮은 사용량을 가지는 프로세서 코어의 프로세서 코어 정보를 나타내고; 상기 제4 제어 파라미터는 각각의 데이터 흐름의 어플리케이션 최상 경로(application (APP) critical path) 설명 정보를 나타냄 -;
    상기 제1 제어 파라미터에 기초하여, 현재의 패킷이 속하는 데이터 흐름이 상기 N개의 데이터 흐름 중의 하나인지를 검출하는 단계;
    상기 현재의 패킷이 속하는 데이터 흐름이 상기 N개의 데이터 흐름 중의 하나가 아닌 경우, 상기 제2 제어 파라미터 및 제3 제어 파라미터에 기초하고, 인터-코어 전환 정책(inter-core switchover policy)에 따라 상기 멀티 프로세서 코어 시스템에 진입하는 데이터 흐름의 패킷을, 처리를 위해 미가동(idle) 프로세서 코어에 이송하는 단계 - 상기 인터-코어 전환 정책은, 패킷의 상기 내부 전송 기간이 프로세서 코어에 의한 패킷의 처리를 위한 기간을 초과하면, 패킷이 가장 낮은 사용량을 가지는 프로세서 코어에 의해 처리되고, 상기 프로세서 코어에 의한 패킷의 처리를 위한 기간이 상기 패킷의 내부 전송 기간을 초과하면, 패킷이 처리를 위해 지정된 프로세서 코어에 결합되는 것임 -; 및
    상기 제4 제어 파라미터에 기초하고, 인트라-코어 전환 정책(intra-core switchover policy)에 따라, 중단 모드(interruption mode)와 폴링 모드(polling mode) 사이에서, 상기 멀티 프로세서 코어 시스템 내의 패킷을 처리하는 프로세서 코어를 전환(switchover)하는 단계 - 여기서, 인트라-코어 전환 정책은, 전체 폴링 오버헤드(polling overhead)가 전체 중단 오버헤드(interruption overhead)보다 크면, 프로세서 코어가 상기 중단 모드에 진입하여 패킷을 처리하고, 상기 전체 폴링 오버헤드가 상기 전체 중단 오버헤드보다 작으면, 프로세서 코어는 상기 폴링 모드에 진입하여 패킷을 처리하는 것임 -
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 제2 제어 파라미터 및 제3 제어 파라미터에 기초하고, 인터-코어 전환 정책에 따라 상기 멀티 프로세서 코어 시스템에 진입하는 데이터 흐름의 패킷을, 처리를 위해 미가동 프로세서 코어에 이송하는 단계는,
    상기 제2 제어 파라미터에 기초하여, 상기 멀티 프로세서 코어 시스템 내의, 현재의 패킷이 속하는 데이터 흐름의 상기 내부 전송 기간이 상기 멀티 프로세서 코어 시스템 내의 프로세서 코어에 의해 상기 현재의 패킷이 속하는 데이터 흐름을 처리하기 위한 기간을 초과하는지를 판정하는 단계; 및
    상기 멀티 프로세서 코어 시스템 내의, 현재의 패킷이 속하는 데이터 흐름의 상기 내부 전송 기간이 상기 멀티 프로세서 코어 시스템 내의 프로세서 코어에 의해 상기 현재의 패킷이 속하는 데이터 흐름을 처리하기 위한 기간을 초과하면, 상기 제3 제어 파라미터에 기초하여, 상기 멀티 프로세서 코어 시스템 내에서 가장 낮은 사용량을 가지는 프로세서 코어에 상기 현재의 패킷을 분배하는 단계를 포함하는, 방법.
  3. 제2항에 있어서,
    상기 현재의 패킷이 속하는 데이터 흐름이 상기 N개의 데이터 흐름 중의 하나이거나 상기 멀티 프로세서 코어 시스템 내의 현재의 패킷이 속하는 데이터 흐름의 내부 전송 기간이 상기 멀티 프로세서 코어 시스템 내의 프로세서 코어에 의해 상기 현재의 패킷이 속하는 데이터 흐름을 처리하기 위한 기간을 초과하지 않는 경우, 상기 현재의 패킷을 리소스 사용량이 제1 임계치보다 낮은 프로세서 코어에 전송하고, 현재의 패킷이 속하는 데이터 흐름을 리소스 사용량이 제1 임계치보다 낮은 상기 프로세서 코어와 결합하는 단계를 더 포함하고,
    상기 현재의 패킷이 속하는 데이터 흐름의 패킷이 상기 멀티 프로세서 코어 시스템에 진입하는 경우, 상기 현재의 패킷이 속하는 데이터 흐름의 패킷이 리소스 사용량이 제1 임계치보다 낮은 프로세서 코어에 의해 처리되는, 방법.
  4. 제1항에 있어서,
    상기 제4 제어 파라미터에 기초하고, 인트라-코어 전환 정책에 따라, 중단 모드와 폴링 모드 사이에서, 상기 멀티 프로세서 코어 시스템 내의 패킷을 처리하는 프로세서 코어를 전환하는 단계는,
    상기 멀티 프로세서 코어 시스템의 초기 구동(initialization) 중에, 상기 중단 모드에서의 각각의 데이터 흐름을 처리하기 위한 단일의 중단 오버헤드(single interruption overhead) 및 상기 폴링 모드에서의 각각의 데이터 흐름을 처리하기 위한 단일의 폴링 오버헤드(single interruption overhead)를 검출하는 단계;
    상기 각각의 데이터 흐름의 APP 최상 경로 설명 정보에 기초하여, 상기 현재의 패킷이 속하는 데이터 흐름이, 대응하는 APP 최상 경로를 가지는지를 검출하는 단계;
    상기 현재의 패킷이 속하는 데이터 흐름이 대응하는 APP 최상 경로를 가지고 상기 현재의 패킷을 처리하는 프로세서 코어가 상기 폴링 모드에 있으면, 제1 측정 주기 내의 폴링 횟수를 검출하는 단계;
    상기 폴링 횟수 및 상기 단일의 폴링 오버헤드에 기초하여 전체 폴링 오버헤드를 획득하는 단계;
    중단 횟수의 예측된 임계치 및 상기 단일의 중단 오버헤드에 기초하여 전체 중단 오버헤드를 획득하는 단계;
    상기 전체 폴링 오버헤드가 상기 전체 중단 오버헤드보다 큰 경우, 상기 현재의 패킷을 처리하는 프로세서 코어를 상기 폴링 모드로부터 상기 중단 모드로 전환하는 단계; 및
    상기 전체 폴링 오버헤드가 상기 전체 중단 오버헤드보다 크지 않은 경우, 상기 현재의 패킷을 처리하는 프로세서 코어의 상기 폴링 모드를 유지하는 단계를 포함하는, 방법.
  5. 제4항에 있어서,
    상기 현재의 패킷이 속하는 데이터 흐름이 대응하는 APP 최상 경로를 가지고 상기 현재의 패킷을 처리하는 프로세서 코어가 상기 중단 모드에 있으면, 제2 측정 주기 내의 중단 횟수를 검출하는 단계;
    상기 중단 횟수 및 상기 단일의 중단 오버헤드에 기초하여 상기 전체 중단 오버헤드를 획득하는 단계;
    상기 폴링 횟수의 예측된 임계치 및 상기 단일의 폴링 오버헤드에 기초하여 상기 전체 폴링 오버헤드를 획득하는 단계;
    상기 전체 중단 오버헤드가 상기 전체 폴링 오버헤드보다 큰 경우, 상기 현재의 패킷을 처리하는 프로세서 코어를 상기 중단 모드로부터 상기 폴링 모드로 전환하는 단계; 및
    상기 전체 중단 오버헤드가 상기 전체 폴링 오버헤드보다 크지 않은 경우, 상기 현재의 패킷을 처리하는 프로세서 코어의 상기 중단 모드를 유지하는 단계를 더 포함하는, 방법.
  6. 제1항에 있어서,
    상기 제1 제어 파라미터를 획득하는 과정은,
    상기 제1 샘플링 주기에서 상기 멀티 프로세서 코어 시스템에 의해 처리된 패킷을 획득하는 단계;
    상기 멀티 프로세서 코어 시스템에 의해 처리된 패킷과 상기 패킷이 속하는 데이터 흐름 사이의 관계를 판정하는 단계; 및
    하향 순서로 상기 멀티 프로세서 코어 시스템에 의해 처리된 패킷의 수를 분류하고, 상기 멀티 프로세서 코어 시스템에 의해 처리된 패킷과 상기 패킷이 속하는 데이터 흐름 사이의 관계에 기초하여, 상기 하향 순서에 따라 처음 N개의 패킷을 포함하는 데이터 흐름을 결정하는 단계를 포함하는, 방법.
  7. 제1항에 있어서,
    상기 제4 제어 파라미터를 획득하는 과정은,
    제1 검출 주기에, 검출될 데이터 흐름의 패킷의 처리 기간과 처리 주파수가 처리 기간 임계치 및 처리 주파수 임계치를 초과하는지를 검출하는 단계; 및
    상기 멀티 프로세서 코어 시스템 내의 상기 검출될 데이터 흐름의 패킷의 처리 기간과 처리 주파수가 처리 기간 임계치 및 처리 주파수 임계치를 초과하는 경우, 상기 검출될 데이터 흐름의 APP 최상 경로 설명 정보를 획득하는 단계를 포함하며,
    상기 최상 경로 설명 정보는 검출될 데이터가 APP 최상 경로를 가지는 것을 나타내는, 방법.
  8. 제7항에 있어서,
    상기 검출될 데이터 흐름의 패킷의 처리 기간과 처리 주파수가 처리 기간 임계치 및 처리 주파수 임계치를 초과하는지를 검출하는 단계는,
    기능 처리 카운터(function processing counter) 및 주파수 카운터를 이네이블(enable) 시키는 단계;
    상기 검출될 데이터 흐름의 패킷이 현재의 기능 모듈에 의해 처리되는 모든 경우에, 상기 기능 처리 카운터의 값에 1을 더하는 단계;
    상기 기능 처리 카운터의 값이 상기 처리 기간 임계치보다 큰지를 검출하는 단계;
    상기 기능 처리 카운터의 값이 상기 처리 기간 임계치보다 큰 경우, 상기 주파수 카운터의 값에 1을 더하고, 상기 기능 처리 카운터를 재설정(reset)하는 단계; 및
    상기 주파수 카운터의 값이 상기 처리 주파수 임계치보다 큰지를 검출하는 단계를 포함하고,
    상기 검출될 데이터 흐름의 APP 최상 경로 설명 정보를 획득하는 단계는,
    상기 주파수 카운터의 값이 상기 처리 주파수 임계치보다 큰 경우, 상기 주파수 카운터의 값이 상기 처리 주파수 임계치보다 큰 대응하는 패킷을 포함하는 데이터 흐름에 대한 APP 최상 경로 설명 정보를 획득하는 단계를 포함하는, 방법.
  9. 컴퓨터 시스템으로서,
    버스;
    상기 버스와 연결되는 멀티 프로세서 코어; 및
    상기 버스와 연결되는 메모리
    를 포함하고,
    상기 버스를 통해 상기 메모리 내의 실행 명령을 호출함으로써, 상기 멀티 프로세서 코어는,
    상기 메모리로부터 호출된 데이터에 기초하여, 제1 제어 파라미터, 제2 제어 파라미터, 제3 제어 파라미터 및 제4 제어 파라미터를 획득하도록 구성되고 - 상기 제1 제어 파라미터는 N개의 데이터 흐름의 지시 정보를 나타내고, 상기 N개의 데이터 흐름은 각각의 데이터 흐름에 포함되는 처리된 패킷 수에 따른 하향 순서로, 멀티 프로세서 코어 시스템이 처리한 패킷을 포함하는 데이터 흐름을 분류함으로써 제1 샘플링 주기에서 획득된 처음 N개의 데이터 흐름을 나타내며, 상기 N은 양의 정수이고; 상기 제2 제어 파라미터는 상기 멀티 프로세서 코어 시스템 내의 각각의 데이터 흐름의 내부 전송 기간 및 상기 멀티 프로세서 코어 시스템 내의 프로세서 코어에 의한 각각의 데이터 흐름의 처리를 위한 기간을 나타내며; 상기 제3 제어 파라미터는 가장 낮은 사용량을 가지는 프로세서 코어의 프로세서 코어 정보를 나타내고; 상기 제4 제어 파라미터는 각각의 데이터 흐름의 어플리케이션(APP) 최상 경로 설명 정보를 나타냄 -;
    상기 멀티 프로세서 코어는 상기 제1 제어 파라미터에 기초하여, 현재의 패킷이 속하는 데이터 흐름이 N개의 데이터 흐름 중의 하나인지를 검출하도록 더 구성되며;
    상기 멀티 프로세서 코어는 상기 현재의 패킷이 속하는 데이터 흐름이 상기 N개의 데이터 흐름 중의 하나가 아닌 경우, 상기 제2 제어 파라미터 및 상기 제3 제어 파라미터에 기초하고, 인터-코어 전환 정책에 따라 상기 멀티 프로세서 코어 시스템에 진입하는 데이터 흐름의 패킷을, 처리를 위해 미가동 프로세서 코어에 이송하도록 더 구성되고 - 상기 인터-코어 전환 정책은, 패킷의 상기 내부 전송 기간이 프로세서 코어에 의한 패킷의 처리를 위한 기간을 초과하면, 패킷이 가장 낮은 사용량을 가지는 프로세서 코어에 의해 처리되고, 상기 프로세서 코어에 의한 패킷의 처리를 위한 기간이 상기 패킷의 내부 전송 기간을 초과하면, 상기 패킷이 처리를 위해 지정된 프로세서 코어에 결합되는 것임 -;
    상기 멀티 프로세서 코어는 상기 제4 제어 파라미터에 기초하고, 인트라-코어 전환 정책에 따라, 중단 모드와 폴링 모드 사이에서, 상기 멀티 프로세서 코어 시스템 내의 패킷을 처리하는 프로세서 코어를 전환하도록 더 구성되는 - 상기 인트라-코어 전환 정책은, 전체 폴링 오버헤드가 전체 중단 오버헤드보다 크면, 상기 프로세서 코어가 중단 모드에 진입하여 패킷을 처리하고, 상기 전체 폴링 오버헤드가 상기 전체 중단 오버헤드보다 작으면, 상기 프로세서 코어는 폴링 모드에 진입하여 패킷을 처리하는 것임 -,
    컴퓨터 시스템.
  10. 제9항에 있어서,
    제1 검출 유닛이, 상기 현재의 패킷이 속하는 데이터 흐름이 상기 N개의 데이터 흐름 중의 하나가 아닌 것을 검출한 경우, 상기 제2 제어 파라미터 및 상기 제3 제어 파라미터에 기초하고, 인터-코어 전환 정책에 따라 상기 멀티 프로세서 코어 시스템에 진입하는 데이터 흐름의 패킷을, 처리를 위해 미가동 프로세서 코어에 이송하는 과정에서, 상기 멀티 프로세서 코어는,
    상기 제2 제어 파라미터에 기초하여, 상기 멀티 프로세서 코어 시스템 내의, 현재의 패킷이 속하는 데이터 흐름의 상기 내부 전송 기간이 상기 멀티 프로세서 코어 시스템 내의 프로세서 코어에 의해 상기 현재의 패킷이 속하는 데이터 흐름을 처리하기 위한 기간을 초과하는지를 판정하고;
    상기 제1 검출 유닛이, 상기 현재의 패킷이 속하는 데이터 흐름이 상기 N개의 데이터 흐름 중의 하나가 아닌 것을 검출하고, 상기 멀티 프로세서 코어 시스템 내의, 현재의 패킷이 속하는 데이터 흐름의 상기 내부 전송 기간이 상기 멀티 프로세서 코어 시스템 내의 프로세서 코어에 의해 상기 현재의 패킷이 속하는 데이터 흐름을 처리하기 위한 기간을 초과하면, 상기 제3 제어 파라미터에 기초하여, 상기 멀티 프로세서 코어 시스템 내에서 가장 낮은 사용량을 가지는 프로세서 코어에 상기 현재의 패킷을 분배하도록 더 구성되는, 컴퓨터 시스템.
  11. 제10항에 있어서,
    상기 멀티 프로세서 코어는,
    상기 제1 검출 유닛이 상기 현재의 패킷이 속하는 데이터 흐름이 상기 N개의 데이터 흐름 중의 하나인 것을 검출하거나 제1 판정 서브유닛이 상기 멀티 프로세서 코어 시스템 내의 현재의 패킷이 속하는 데이터 흐름의 내부 전송 기간이 상기 멀티 프로세서 코어 시스템 내의 프로세서 코어에 의해 상기 현재의 패킷이 속하는 데이터 흐름을 처리하기 위한 기간을 초과하지 않는 것으로 판정하는 경우, 상기 현재의 패킷을 리소스 사용량이 제1 임계치보다 낮은 프로세서 코어에 전송하고, 현재의 패킷이 속하는 데이터 흐름을 리소스 사용량이 제1 임계치보다 낮은 상기 프로세서 코어와 결합하도록 더 구성되고,
    상기 현재의 패킷이 속하는 데이터 흐름의 패킷이 상기 멀티 프로세서 코어 시스템에 진입하는 경우, 상기 현재의 패킷이 속하는 데이터 흐름의 패킷이 리소스 사용량이 제1 임계치보다 낮은 프로세서 코어에 의해 처리되는, 컴퓨터 시스템.
  12. 제9항에 있어서,
    상기 제4 제어 파라미터에 기초하고, 인트라-코어 전환 정책에 따라, 중단 모드와 폴링 모드 사이에서, 상기 멀티 프로세서 코어 시스템 내의 패킷을 처리하는 프로세서 코어를 전환하는 과정에서, 상기 멀티 프로세서 코어는,
    상기 멀티 프로세서 코어 시스템의 초기 구동 중에, 상기 중단 모드에서의 각각의 데이터 흐름을 처리하기 위한 단일의 중단 오버헤드 및 상기 폴링 모드에서의 각각의 데이터 흐름을 처리하기 위한 단일의 폴링 오버헤드를 검출하고;
    상기 각각의 데이터 흐름의 APP 최상 경로 설명 정보에 기초하여, 상기 현재의 패킷이 속하는 데이터 흐름이, 대응하는 APP 최상 경로를 가지는지를 검출하며;
    상기 현재의 패킷이 속하는 데이터 흐름이 대응하는 APP 최상 경로를 가지고 상기 현재의 패킷을 처리하는 프로세서 코어가 상기 폴링 모드에 있으면, 제1 측정 주기 내의 폴링 횟수를 검출하고;
    상기 폴링 횟수 및 상기 단일의 폴링 오버헤드에 기초하여 전체 폴링 오버헤드를 획득하며;
    중단 횟수의 예측된 임계치 및 상기 단일의 중단 오버헤드에 기초하여 전체 중단 오버헤드를 획득하고;
    상기 전체 폴링 오버헤드가 상기 전체 중단 오버헤드보다 큰 경우, 상기 현재의 패킷을 처리하는 프로세서 코어를 상기 폴링 모드로부터 상기 중단 모드로 전환하며;
    상기 전체 폴링 오버헤드가 상기 전체 중단 오버헤드보다 크지 않은 경우, 상기 현재의 패킷을 처리하는 프로세서 코어의 상기 폴링 모드를 유지하도록 더 구성된, 컴퓨터 시스템.
  13. 제12항에 있어서,
    상기 멀티 프로세서 코어는,
    상기 현재의 패킷이 속하는 데이터 흐름이 대응하는 APP 최상 경로를 가지고 상기 현재의 패킷을 처리하는 프로세서 코어가 상기 중단 모드에 있으면, 제2 측정 주기 내의 중단 횟수를 검출하고;
    상기 중단 횟수 및 상기 단일의 중단 오버헤드에 기초하여 상기 전체 중단 오버헤드를 획득하며;
    상기 폴링 횟수의 예측된 임계치 및 상기 단일의 폴링 오버헤드에 기초하여 상기 전체 폴링 오버헤드를 획득하고;
    상기 전체 중단 오버헤드가 상기 전체 폴링 오버헤드보다 큰 경우, 상기 현재의 패킷을 처리하는 프로세서 코어를 상기 중단 모드로부터 상기 폴링 모드로 전환하며;
    상기 전체 중단 오버헤드가 상기 전체 폴링 오버헤드보다 크지 않은 경우, 상기 현재의 패킷을 처리하는 프로세서 코어의 상기 중단 모드를 유지하도록 더 구성된, 컴퓨터 시스템.
  14. 제9항에 있어서,
    상기 멀티 프로세서 코어 시스템의 실행 프로세스 중에, 제1 제어 파라미터, 제2 제어 파라미터, 제3 제어 파라미터 및 제4 제어 파라미터를 획득하는 과정에서, 상기 멀티 프로세서 코어는,
    상기 제1 샘플링 주기에 상기 멀티 프로세서 코어 시스템에 의해 처리된 패킷을 획득하고; 하향 순서로, 상기 멀티 프로세서 코어 시스템에 의해 처리된 패킷의 수를 분류하고; 상기 멀티 프로세서 코어 시스템에 의해 처리된 패킷과 상기 패킷이 속하는 데이터 흐름 사이의 관계에 기초하여, 상기 하향 순서에 따라, 처음 N개의 패킷을 포함하는 데이터 흐름을 결정하고;
    상기 멀티 프로세서 코어 시스템의 실행 프로세스 중에, 상기 제2 제어 파라미터를 획득하며 - 상기 제2 제어 파라미터는 상기 멀티 프로세서 코어 시스템 내의 각각의 데이터 흐름의 내부 전송 기간과 상기 멀티 프로세서 코어 시스템 내의 프로세서 코어에 의해 각각의 데이터 흐름을 처리하기 위한 기간을 나타냄 -;
    상기 멀티 프로세서 코어 시스템의 실행 프로세스 중에, 상기 제3 제어 파라미터를 획득하고 - 상기 제3 제어 파라미터는 가장 낮은 사용량을 가지는 프로세서 코어 상의 프로세서 코어 정보를 나타냄 -;
    상기 멀티 프로세서 코어 시스템 내에서 검출될 데이터 흐름의 패킷의 처리 기간 및 처리 주파수가 처리 기간 임계치 및 처리 주파수 임계치를 초과하는 경우, 상기 검출될 데이터 흐름의 APP 최상 경로 설명 정보를 획득하도록 더 구성된, 컴퓨터 시스템.
  15. 제14항에 있어서,
    상기 제1 샘플링 주기에 상기 멀티 프로세서 코어 시스템에 의해 처리된 패킷을 획득하고; 하향 순서로, 상기 멀티 프로세서 코어 시스템에 의해 처리된 패킷의 수를 분류하고, 상기 멀티 프로세서 코어 시스템에 의해 처리된 패킷과 상기 패킷이 속하는 데이터 흐름 사이의 관계에 기초하여, 상기 하향 순서에 따라, 처음 N개의 패킷을 포함하는 데이터 흐름을 결정하는 과정에서, 상기 멀티 프로세서 코어는,
    상기 제1 샘플링 주기에서 상기 멀티 프로세서 코어 시스템에 의해 처리된 패킷을 획득하고;
    상기 멀티 프로세서 코어 시스템에 의해 처리된 패킷과 상기 패킷이 속하는 데이터 흐름 사이의 관계를 판정하며;
    하향 순서로 상기 멀티 프로세서 코어 시스템에 의해 처리된 패킷의 수를 분류하고, 상기 멀티 프로세서 코어 시스템에 의해 처리된 패킷과 상기 패킷이 속하는 데이터 흐름 사이의 관계에 기초하여, 상기 하향 순서에 따라 처음 N개의 패킷을 포함하는 데이터 흐름을 결정하도록 더 구성된, 컴퓨터 시스템.
  16. 제14항에 있어서,
    상기 멀티 프로세서 코어 시스템 내에서 검출될 데이터 흐름의 패킷의 처리 기간 및 처리 주파수가 처리 기간 임계치 및 처리 주파수 임계치를 초과하는 경우, 상기 검출될 데이터 흐름의 APP 최상 경로 설명 정보를 획득하는 과정에서, 상기 멀티 프로세서 코어는,
    제1 검출 주기에, 검출될 데이터 흐름의 패킷의 처리 기간과 처리 주파수가 상기 처리 기간 임계치 및 상기 처리 주파수 임계치를 초과하는지를 검출하고;
    상기 멀티 프로세서 코어 시스템 내의 검출될 데이터 흐름의 패킷의 상기 처리 기간과 상기 처리 주파수가 처리 기간 임계치 및 처리 주파수 임계치를 초과하는 경우, 상기 검출될 데이터 흐름의 APP 최상 경로 설명 정보를 획득하도록 더 구성되며,
    상기 APP 최상 경로 설명 정보는 검출될 데이터 흐름이 APP 최상 경로를 가지는 것을 나타내는, 컴퓨터 시스템.
  17. 멀티 프로세서 코어 시스템의 실행 프로세스 중에, 제1 제어 파라미터, 제2 제어 파라미터, 제3 제어 파라미터 및 제4 제어 파라미터를 획득하는 단계 - 상기 제1 제어 파라미터는 N개의 데이터 흐름의 지시 정보를 나타내고, 상기 N개의 데이터 흐름은 각각의 데이터 흐름에 포함되는 처리된 패킷 수에 따른 하향 순서로, 상기 멀티 프로세서 코어 시스템이 처리한 패킷을 포함하는 데이터 흐름을 분류함으로써 제1 샘플링 주기에 획득된 처음 N개의 데이터 흐름을 나타내며, 상기 N은 양의 정수이고; 상기 제2 제어 파라미터는 상기 멀티 프로세서 코어 시스템 내의 각각의 데이터 흐름의 내부 전송 기간 및 상기 멀티 프로세서 코어 시스템 내의 프로세서 코어에 의해 각각의 데이터 흐름을 처리하기 위한 기간을 나타내며; 상기 제3 제어 파라미터는 가장 낮은 사용량을 가지는 프로세서 코어의 프로세서 코어 정보를 나타내고; 상기 제4 제어 파라미터는 각각의 데이터 흐름의 어플리케이션 최상 경로 설명 정보를 나타냄 -;
    상기 제1 제어 파라미터에 기초하여, 현재의 패킷이 속하는 데이터 흐름이 상기 N개의 데이터 흐름 중의 하나인지를 검출하는 단계;
    상기 현재의 패킷이 속하는 데이터 흐름이 상기 N개의 데이터 흐름 중의 하나가 아닌 경우, 상기 제2 제어 파라미터 및 제3 제어 파라미터에 기초하고, 인터-코어 전환 정책에 따라 상기 멀티 프로세서 코어 시스템에 진입하는 데이터 흐름의 패킷을, 처리를 위해 미가동 프로세서 코어에 이송하는 단계 - 상기 인터-코어 전환 정책은, 패킷의 상기 내부 전송 기간이 프로세서 코어에 의한 패킷의 처리를 위한 기간을 초과하면, 패킷이 가장 낮은 사용량을 가지는 프로세서 코어에 의해 처리되고, 상기 프로세서 코어에 의한 패킷의 처리를 위한 기간이 상기 패킷의 내부 전송 기간을 초과하면, 패킷이 처리를 위해 지정된 프로세서 코어에 결합되는 것임 -; 및
    상기 제4 제어 파라미터에 기초하고, 인트라-코어 전환 정책에 따라, 중단 모드와 폴링 모드 사이에서, 상기 멀티 프로세서 코어 시스템 내의 패킷을 처리하는 프로세서 코어를 전환하는 단계 - 여기서, 인트라-코어 전환 정책은, 전체 폴링 오버헤드가 전체 중단 오버헤드보다 크면, 프로세서 코어가 상기 중단 모드에 진입하여 패킷을 처리하고, 상기 전체 폴링 오버헤드가 상기 전체 중단 오버헤드보다 작으면, 프로세서 코어는 상기 폴링 모드에 진입하여 패킷을 처리하는 것임 -
    를 포함하는, 멀티 프로세서 코어 시스템 내의 프로세서 코어를 스케줄링 하기 위한 방법을 수행하기 위한, 컴퓨터가 실행 가능한 명령어를 포함하는, 컴퓨터가 판독 가능한 매체.
  18. 삭제
KR1020147008482A 2012-06-28 2013-02-01 멀티 프로세서 코어 시스템 내의 프로세서 코어를 스케줄링 하기 위한 방법, 장치, 및 시스템 KR101565865B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201210217579.8A CN102779075B (zh) 2012-06-28 2012-06-28 一种在多处理器核系统中进行调度的方法、装置及系统
CN201210217579.8 2012-06-28
PCT/CN2013/071272 WO2014000450A1 (zh) 2012-06-28 2013-02-01 一种在多处理器核系统中进行调度的方法、装置及系统

Publications (2)

Publication Number Publication Date
KR20140057371A KR20140057371A (ko) 2014-05-12
KR101565865B1 true KR101565865B1 (ko) 2015-11-04

Family

ID=47123994

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147008482A KR101565865B1 (ko) 2012-06-28 2013-02-01 멀티 프로세서 코어 시스템 내의 프로세서 코어를 스케줄링 하기 위한 방법, 장치, 및 시스템

Country Status (8)

Country Link
US (1) US9218203B2 (ko)
EP (1) EP2701074B1 (ko)
JP (1) JP5888629B2 (ko)
KR (1) KR101565865B1 (ko)
CN (1) CN102779075B (ko)
CA (1) CA2849565C (ko)
RU (1) RU2577476C2 (ko)
WO (1) WO2014000450A1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8681794B2 (en) * 2011-11-30 2014-03-25 Broadcom Corporation System and method for efficient matching of regular expression patterns across multiple packets
CN102779075B (zh) * 2012-06-28 2014-12-24 华为技术有限公司 一种在多处理器核系统中进行调度的方法、装置及系统
CN103034614B (zh) * 2012-12-19 2016-12-28 哈尔滨理工大学 基于关键路径和任务复制的单任务多核调度方法
CN103246562B (zh) * 2013-04-23 2016-12-28 上海交通大学 一种基于众核阵列架构的故障主动预防策略及装置
CN104838361B (zh) * 2013-12-03 2018-06-15 华为技术有限公司 一种核间进程通信的方法、装置及系统
WO2015089824A1 (zh) * 2013-12-20 2015-06-25 华为技术有限公司 一种轮询和中断的切换方法及装置
EP3076619A1 (en) * 2015-04-02 2016-10-05 Alcatel Lucent Method, system and computer-readable medium to schedule the processing of a plurality of data packets
JP6468066B2 (ja) 2015-05-13 2019-02-13 富士通株式会社 並列演算装置、並列演算システム、集合通信方法及び集合通信プログラム
CN106610915B (zh) * 2015-10-22 2020-05-01 深圳市博巨兴微电子科技有限公司 一种多处理器系统的ip核优化方法及装置
CN105677551B (zh) * 2015-12-31 2019-05-31 联想(北京)有限公司 一种确定负载信息的方法及电子设备
CN112347013A (zh) * 2016-04-27 2021-02-09 华为技术有限公司 一种中断处理方法以及相关装置
CN106527653A (zh) * 2016-10-12 2017-03-22 东软集团股份有限公司 调整cpu频率的方法及装置
CN106791152B (zh) * 2016-12-30 2019-08-27 Oppo广东移动通信有限公司 一种通信方法及移动终端
CN107861897A (zh) * 2017-11-06 2018-03-30 郑州云海信息技术有限公司 一种中断和轮询触发方法、系统、设备及计算机存储介质
JP6955163B2 (ja) 2017-12-26 2021-10-27 富士通株式会社 情報処理装置、情報処理方法及びプログラム
CN108415044B (zh) * 2018-02-09 2020-09-15 广州吉欧电子科技有限公司 一种处理系统、处理方法和gnss接收设备
CN108874548B (zh) * 2018-07-11 2021-04-02 深圳市东微智能科技股份有限公司 数据处理调度方法、装置、计算机设备和数据处理系统
CN109144691B (zh) * 2018-07-13 2021-08-20 哈尔滨工程大学 一种面向多核处理器的任务调度分配方法
CN110941205A (zh) * 2018-09-21 2020-03-31 欧姆龙(上海)有限公司 采样控制装置、采样控制方法和电子设备
CN109714269B (zh) * 2018-12-19 2022-05-17 迈普通信技术股份有限公司 一种数据处理方法及网络设备
CN112114940B (zh) * 2019-06-19 2022-09-06 中建材信息技术股份有限公司 Docker环境下多容器多任务处理器调度方法
CN112783626B (zh) * 2021-01-21 2023-12-01 珠海亿智电子科技有限公司 中断处理方法、装置、电子设备及存储介质
CN113055292B (zh) * 2021-03-11 2022-11-04 青岛矽昌通信技术有限公司 一种提升多核路由器转发性能的方法及一种多核路由器
CN114006873B (zh) * 2021-10-29 2023-12-15 深圳市风云实业有限公司 一种基于多核处理器的流量调度方法
CN114257549B (zh) * 2021-12-21 2023-01-10 北京锐安科技有限公司 一种流量的转发方法、装置、设备及存储介质
CN115185176B (zh) * 2022-09-08 2022-12-02 深圳市恒运昌真空技术有限公司 一种双处理模块设备及其控制方法
CN117857560A (zh) * 2022-09-30 2024-04-09 达发科技(苏州)有限公司 网络处理器的负载平衡方法及装置和存储介质

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5414858A (en) * 1992-12-11 1995-05-09 International Business Machines Corporation System and method for dynamically varying between interrupt and polling to service requests of computer peripherals
JPH08110804A (ja) * 1994-10-11 1996-04-30 Omron Corp データ処理装置
US6098105A (en) * 1997-04-08 2000-08-01 International Business Machines Corporation Source and destination initiated interrupt method for message arrival notification
NL1015579C1 (nl) * 2000-06-30 2002-01-02 Thales Nederland Bv Werkwijze voor het automatisch verdelen van programmataken over een verzameling processors.
US8032658B2 (en) * 2004-07-06 2011-10-04 Oracle America, Inc. Computer architecture and process for implementing a virtual vertical perimeter framework for an overloaded CPU having multiple network interfaces
US7564847B2 (en) * 2004-12-13 2009-07-21 Intel Corporation Flow assignment
US7761619B2 (en) * 2005-05-13 2010-07-20 Microsoft Corporation Method and system for parallelizing completion event processing
US20070153796A1 (en) * 2005-12-30 2007-07-05 Intel Corporation Packet processing utilizing cached metadata to support forwarding and non-forwarding operations on parallel paths
KR101286700B1 (ko) * 2006-11-06 2013-07-16 삼성전자주식회사 멀티 코어 프로세서 시스템에서 로드 밸런싱을 위한 장치및 방법
CN100489830C (zh) * 2007-03-19 2009-05-20 中国人民解放军国防科学技术大学 面向科学计算的64位流处理器芯片
CN100481060C (zh) * 2007-03-29 2009-04-22 中国人民解放军国防科学技术大学 一种流处理器中多核扩展的方法
KR100958303B1 (ko) 2007-12-12 2010-05-19 한국전자통신연구원 멀티코어 시스템 환경에서 내부 코어 간 통신채널을 이용한 모듈 디바이스의 동적 적재 및 실행을 통한 부하 균등화 시스템 및 방법
CN101546276B (zh) * 2008-03-26 2012-12-19 国际商业机器公司 多核环境下实现中断调度的方法及多核处理器
US8010822B2 (en) * 2008-03-28 2011-08-30 Microsoft Corporation Power-aware thread scheduling and dynamic use of processors
JP5245722B2 (ja) * 2008-10-29 2013-07-24 富士通株式会社 スケジューラ、プロセッサシステム、プログラム生成装置およびプログラム生成用プログラム
CN101394362B (zh) * 2008-11-12 2010-12-22 清华大学 基于流分片的对多核网络处理器进行负载均衡的方法
CN101770401B (zh) * 2008-12-30 2013-09-18 北京天融信网络安全技术有限公司 一种建立多核运行环境的方法
US8635387B2 (en) 2009-10-09 2014-01-21 Emulex Design & Manufacturing Corporation Enhanced I/O performance in a multi-processor system via interrupt affinity schemes
US8307198B2 (en) * 2009-11-24 2012-11-06 Advanced Micro Devices, Inc. Distributed multi-core memory initialization
CN101706743B (zh) * 2009-12-07 2012-09-05 北京航空航天大学 一种多核环境下的虚拟机调度方法
CN101968748B (zh) * 2010-09-17 2014-04-02 北京星网锐捷网络技术有限公司 多线程数据调度方法、装置及网络设备
CN102411510A (zh) * 2011-09-16 2012-04-11 华为技术有限公司 在多核处理器的虚拟机上映射业务数据流的方法和装置
CN102779075B (zh) * 2012-06-28 2014-12-24 华为技术有限公司 一种在多处理器核系统中进行调度的方法、装置及系统

Also Published As

Publication number Publication date
EP2701074A1 (en) 2014-02-26
JP2014531081A (ja) 2014-11-20
US20140115603A1 (en) 2014-04-24
RU2014118463A (ru) 2015-11-20
KR20140057371A (ko) 2014-05-12
CN102779075A (zh) 2012-11-14
CA2849565C (en) 2016-11-08
WO2014000450A1 (zh) 2014-01-03
RU2577476C2 (ru) 2016-03-20
EP2701074B1 (en) 2016-10-26
CA2849565A1 (en) 2014-01-03
CN102779075B (zh) 2014-12-24
JP5888629B2 (ja) 2016-03-22
EP2701074A4 (en) 2014-07-02
US9218203B2 (en) 2015-12-22

Similar Documents

Publication Publication Date Title
KR101565865B1 (ko) 멀티 프로세서 코어 시스템 내의 프로세서 코어를 스케줄링 하기 위한 방법, 장치, 및 시스템
US10768960B2 (en) Method for affinity binding of interrupt of virtual network interface card, and computer device
CN106557369B (zh) 一种多线程的管理方法及系统
Fusco et al. High speed network traffic analysis with commodity multi-core systems
US9772879B2 (en) System and method for isolating I/O execution via compiler and OS support
WO2015074393A1 (zh) 一种基于异构多核体系的cpu调度方法、装置和系统
JP4747307B2 (ja) ネットワーク処理制御装置,プログラムおよび方法
WO2018049873A1 (zh) 一种应用调度方法及装置
JP2013232207A (ja) コンピュータマイクロジョブを中断せずに実行するようスケジュールするための方法、システムおよび装置
CN107766145B (zh) 双系统下的内存管理方法和装置
CN112130963A (zh) 虚拟机任务的调度方法、装置、计算机设备及存储介质
JP5462529B2 (ja) タスク割当装置、および、タスク割当方法
US20240152395A1 (en) Resource scheduling method and apparatus, and computing node
Hasan et al. Dynamic load balancing model based on server status (DLBS) for green computing
CN113722103A (zh) 加密卡的调用控制方法及通信设备
CN115168013A (zh) 一种任务运行系统、方法及计算设备
CN109117279A (zh) 电子装置及其限制进程间通信的方法、存储介质
Zhengbing et al. Resource management in a distributed computer system with allowance for the level of trust to computational components
CN110716805A (zh) 图形处理器的任务分配方法、装置、电子设备及存储介质
CN111209112A (zh) 一种异常处理方法及装置
WO2023138513A1 (zh) 资源处理方法和存储介质
JP2012221040A (ja) 呼処理制御装置および呼処理制御方法
CN111427673A (zh) 一种负载均衡方法、装置及设备
JP4567586B2 (ja) 処理装置
WO2013065151A1 (ja) 計算機システム、データ転送方法、および、データ転送プログラム

Legal Events

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

Payment date: 20181023

Year of fee payment: 4