KR20150075499A - 멀티코어 시스템의 시스템 성능 최적화 장치 및 방법 - Google Patents

멀티코어 시스템의 시스템 성능 최적화 장치 및 방법 Download PDF

Info

Publication number
KR20150075499A
KR20150075499A KR1020130163524A KR20130163524A KR20150075499A KR 20150075499 A KR20150075499 A KR 20150075499A KR 1020130163524 A KR1020130163524 A KR 1020130163524A KR 20130163524 A KR20130163524 A KR 20130163524A KR 20150075499 A KR20150075499 A KR 20150075499A
Authority
KR
South Korea
Prior art keywords
thread
core
performance
allocation information
real
Prior art date
Application number
KR1020130163524A
Other languages
English (en)
Other versions
KR101684677B1 (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 KR1020130163524A priority Critical patent/KR101684677B1/ko
Priority to US14/552,718 priority patent/US20150186184A1/en
Publication of KR20150075499A publication Critical patent/KR20150075499A/ko
Application granted granted Critical
Publication of KR101684677B1 publication Critical patent/KR101684677B1/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/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • 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/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • 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)
  • Supply And Distribution Of Alternating Current (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

다양한 성능 수준을 갖는 코어들로 이루어진 멀티코어 시스템에서 멀티 쓰레드에 배정된 멀티코어의 성능을 실시간 모니터링하여 이미 쓰레드에 배정되어 사용되는 코어를 동적으로 보다 나은 다른 코어로 실시간 쓰레드 스위칭을 통해 변경함으로써 전체적으로 시스템 성능 향상을 시키거나 저전력을 사용할 수 있도록 하는 멀티코어 시스템의 시스템 성능 최적화 장치 및 방법을 제시한다. 제시된 방법은 신규의 쓰레드가 생성됨에 따라 신규의 쓰레드의 성능을 근거로 기배정된 쓰레드별 코어 상태의 적합 여부를 분석한 후에, 기배정된 쓰레드별 코어 상태가 부적합한 것으로 판단되면 기배정된 쓰레드별 코어 상태가 최적의 코어 배정을 갖도록 하기 위해 신규의 쓰레드의 성능을 근거로 최적의 코어 배정 정보를 생성하고, 최적의 코어 배정 정보를 근거로 쓰레드 스위칭을 수행한다.

Description

멀티코어 시스템의 시스템 성능 최적화 장치 및 방법{Apparatus and method for optimizing system performance of multi-core system}
본 발명은 멀티코어 시스템의 시스템 성능 최적화 장치 및 방법에 관한 것으로, 보다 상세하게는 다양한 성능 수준을 갖는 다수개의 코어로 구성된 멀티코어 시스템에서의 시스템 성능을 최적화하기 위한 장치 및 방법에 관한 것이다.
단일 코어 기반의 시스템은 추가 성능 향상과 저전력 구현의 한계로 인하여, 멀티코어(다중코어) 시스템 구조로 가고 있고, 앞으로도 멀티 코어 시스템이 대세로 자리 잡게 될 것이다.
멀티 코어 시스템 환경에서 중요한 것은 어떻게 하면 시스템의 성능을 향상시킬 수 있느냐 하는 문제와 얼마나 전력 소모를 줄일 수 있는가 하는 문제이다.
시스템 성능을 향상시키는 단순한 방법은 성능이 더 좋은 코어를 쓰는 것이고, 전력 소모를 줄이는 방법은 저전력으로 설계된 시스템을 사용하는 것인데, 이런 것들은 하드웨어 시스템을 구성할 때 이미 정해지기 때문에 추가 개선의 여지가 없다.
이와 같이 성능이 서로 다른 다수개의 코어로 구성된 멀티코어 시스템환경에서 일반적인 코어 배정 방법은, 도 1에 예시한 바와 같이 스케줄러(12)에 의해 코어성능정보 DB(10)의 정보를 바탕으로 새로 생성된 쓰레드에 배정할 코어 정보를 코어 바인더(14)에게 넘겨준다. 코어 바인더(14)는 스케줄러(12)에서 정해진 코어 배정 정보에 따라 해당 코어에 쓰레드를 할당하게 된다.
이와 같은 방법은 쓰레드가 생성되는 시점에 쓰레드에 코어를 배정하고 종료때까지 변경하지 않는 방법이다. 이 경우, 생성된 쓰레드에 코어를 배정할 때는 최선의 선택을 할 수 있지만, 다수개의 쓰레드가 다수개의 코어에 할당되어서 수행되는 시스템 환경에서는 최적의 배정이 될 수가 없다. 왜냐하면 나중에 생성되는 쓰레드에 대한 정보를 알 수 없기 때문이다.
다시 말해서, 종래의 코어 배정 방법은 도 1에서처럼 쓰레드가 생성될 때, 최대한 사용가능한 코어 중에서 코어성능정보 DB(10)의 정보에 따라 적합한 코어를 할당해서 시스템의 성능을 향상시키거나 전력 소모를 최소화하는 초기 조건을 만족시키는 코어를 배정하는 방법이다. 이러한 방법은 단지 코어를 배정할 때만 쓰레드에서 요구되는 성능을 감안해서 사용가능한 코어 중에서 최적의 코어를 배정하는 방법으로서, 정적인 배정 방법이 사용된다.
쓰레드에 코어를 배정하는데 있어서, 정적인 배정 방법은 시스템 성능을 최적의 상태로 사용하는데 한계가 있는데, 그것은 수행할 쓰레드의 생성 순서가 예측 불가능한 상태에서 쓰레드에 코어를 배정해야하기 때문에 시스템의 자원을 아주 효율적으로 배분하기는 원칙적으로 불가능하다.
쓰레드에 코어를 정적으로 배정하는 종래의 방법은 배정하는 순간에는 최적의 선택이라 하더라도 다수개의 쓰레드가 동시에 수행되는 전체적인 시스템 수행 환경에서는 최적이 아닐 가능성이 대부분이라고 할 수 있다. 그리고, 생성된 쓰레드가 요구하는 성능 정보를 미리 알기는 어렵기 때문에 쓰레드 유형에 따라 적당히 배정할 수 밖에 없다.
관련 선행기술로는, 데이터 분배를 변경하는 것이 아닌 쓰레드의 코어 할당의 변경을 통해서 오버헤드가 거의 없는 부하 분배를 달성하기 위한 내용이, 대한민국공개특허 제2010-0074920호(멀티코어 시스템에서의 로드 밸런싱 장치 및 방법)에 개시되었다.
상술한 대한민국공개특허 제2010-0074920호의 발명은, 하나의 코어당 복수개의 쓰레드가 할당된 멀티코어의 로드가 불균형한지의 여부를 결정하되 불균형하다고 결정되는 경우 복수개의 쓰레드중에서 적어도 하나의 쓰레드의 멀티코어에 대한 코어 할당을 변경함으로써 로드 밸런싱을 수행한다.
다른 관련 선행기술로는, CMP(Chip Multi Processor)의 성능을 유지하는 상태에서 전력 소모량을 줄이고, 프로세서의 면적을 줄여 제조가 용이한 내용이, 대한민국공개특허 제2008-0076392호(임베디드 코어에서 멀티 쓰레드 실행을 위해 확장된 프로세서 및 임베디드 코어에서 멀티 쓰레드 실행 방법)에 개시되었다.
상술한 대한민국공개특허 제2008-0076392호의 발명은, 멀티코어 환경에서 쓰레드를 생성할 때 일부를 통신모듈이 결합된 쓰레드로 생성하여 해당 작업을 서버에서 수행하게 한다.
본 발명은 상기한 종래의 문제점을 해결하기 위해 제안된 것으로, 다양한 성능 수준을 갖는 코어들로 이루어진 멀티코어 시스템에서 멀티 쓰레드에 배정된 멀티코어의 성능을 실시간 모니터링하여 이미 쓰레드에 배정되어 사용되는 코어를 동적으로 보다 나은 다른 코어로 실시간 쓰레드 스위칭을 통해 변경함으로써 전체적으로 시스템 성능 향상을 시키거나 저전력을 사용할 수 있도록 하는 멀티코어 시스템의 시스템 성능 최적화 장치 및 방법을 제공함에 그 목적이 있다.
상기와 같은 목적을 달성하기 위하여 본 발명의 바람직한 실시양태에 따른 멀티코어 시스템의 시스템 성능 최적화 방법은, 실시간 성능 분석기가, 신규의 쓰레드가 생성됨에 따라 상기 신규의 쓰레드의 성능을 근거로, 기배정된 쓰레드별 코어 상태의 적합 여부를 분석하는 단계; 상기 실시간 성능 분석기가, 상기 기배정된 쓰레드별 코어 상태가 부적합한 것으로 판단됨에 따라 상기 기배정된 쓰레드별 코어 상태가 최적의 코어 배정을 갖도록 하기 위해 상기 신규의 쓰레드의 성능을 근거로 최적의 코어 배정 정보를 생성하는 단계; 및 쓰레드 스위칭 스케줄러가, 상기 최적의 코어 배정 정보를 근거로 쓰레드 스위칭을 수행하는 단계;를 포함한다.
이때, 상기 신규의 쓰레드의 성능은 해당 신규의 쓰레드의 요구 성능 그룹 및 요구 성능값을 포함할 수 있다.
이때, 상기 기배정된 쓰레드별 코어 상태는 쓰레드별로 배정된 코어의 상대적 성능값을 포함할 수 있다.
이때, 상기 실시간 성능 분석기가, 상기 쓰레드 스위칭을 수행하는 단계 이후에 상기 최적의 코어 배정 정보를 근거로 코어 배정 정보 데이터베이스의 정보를 갱신하는 단계를 추가로 포함할 수 있다.
이때, 상기 쓰레드 스위칭 스케줄러가, 상기 쓰레드 스위칭을 수행하는 단계 이후에 상기 최적의 코어 배정 정보를 근거로 코어 배정 정보 데이터베이스의 정보를 갱신하는 단계를 추가로 포함할 수 있다.
한편, 본 발명의 바람직한 실시양태에 따른 멀티코어 시스템의 시스템 성능 최적화 장치는, 신규의 쓰레드가 생성됨에 따라 상기 신규의 쓰레드의 성능을 근거로 기배정된 쓰레드별 코어 상태의 적합 여부를 분석하고, 상기 기배정된 쓰레드별 코어 상태가 부적합한 것으로 판단되면 상기 기배정된 쓰레드별 코어 상태가 최적의 코어 배정을 갖도록 하기 위해 상기 신규의 쓰레드의 성능을 근거로 최적의 코어 배정 정보를 생성하는 실시간 성능 분석기; 및 상기 최적의 코어 배정 정보를 근거로 쓰레드 스위칭을 수행하는 쓰레드 스위칭 스케줄러;를 포함한다.
이때, 상기 코어 배정 정보를 저장하는 코어 배정 정보 데이터베이스를 추가로 포함할 수 있다.
이러한 구성의 본 발명에 따르면, 멀티 쓰레드를 사용하는 멀티코어 시스템에서 쓰레드에 코어를 배정할 ?, 초기 쓰레드에 코어를 배정한 이후에 실시간으로 사용중인 쓰레드 성능을 분석해서, 쓰레드 스위칭 기법을 이용해서 최적의 코어로 재배정하여 시스템의 성능을 최적화함으로써 성능을 높이거나 전력소모를 줄일 수 있다.
도 1은 멀티코어 환경에서 쓰레드에 코어를 배정하는 일반적인 방법을 설명하기 위한 도면이다.
도 2는 본 발명의 실시예에 따른 멀티코어 시스템의 시스템 성능 최적화 장치의 구성도이다.
도 3은 본 발명의 실시예에 따른 멀티코어 시스템의 시스템 성능 최적화 방법을 설명하기 위한 플로우차트이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
본 발명은 멀티코어 환경(여러 수준의 성능을 갖는 코어)에서 성능 최적화를 위해 쓰레드에 배정된 코어를 실시간으로 모니터링하고 동적인 쓰레드 스위칭을 통해 변경하는 것이다.
도 2는 본 발명의 실시예에 따른 멀티코어 시스템의 시스템 성능 최적화 장치의 구성도이다.
본 발명의 실시예에 따른 멀티코어 시스템의 시스템 성능 최적화 장치는 코어 배정 정보 데이터베이스(20), 실시간 성능 분석기(22), 쓰레드 스위칭 스케줄러(24), 및 코어 바인더(26)를 포함한다.
코어 배정 정보 데이터베이스(20)는 쓰레드별로 배정된 코어의 정보 즉, 코어 배정 정보(코어의 상대적 성능값을 갖는 성능 정보 포함)를 저장한다. 여기서, 코어 배정 정보는 쓰레드 생성 초기에 코어를 배정해서 쓰레드가 종료할 때까지 유지되는 정적인 정보가 아니라 실시간으로 쓰레드별로 갱신될 수 있다.
실시간 성능 분석기(22)는 실시간으로 쓰레드와 코어의 성능을 분석하여 최적의 코어 배정 정보를 생성한다. 실시간 성능 분석기(22)는 실시간으로 분석된 최적의 코어 배정 정보를 쓰레드 스위칭 스케줄러(24)에게 알려준다.
다시 말해서, 실시간 성능 분석기(22)는 신규의 쓰레드가 생성되면 신규의 쓰레드의 성능을 근거로 기배정된 쓰레드별 코어 상태의 적합 여부를 분석하고, 기배정된 쓰레드별 코어 상태가 부적합한 것으로 판단되면 기배정된 쓰레드별 코어 상태(쓰레드별로 배정된 코어의 상대적 성능값을 포함)가 최적의 코어 배정을 갖도록 하기 위해 신규의 쓰레드의 성능(해당 신규의 쓰레드의 요구 성능 그룹 및 요구 성능값을 포함)을 근거로 최적의 코어 배정 정보를 생성한다.
또한, 실시간 성능 분석기(22)는 새롭게 생성된 최적의 코어 배정 정보를 근거로 코어 배정 정보 데이터베이스(20)의 정보를 갱신할 수 있다.
쓰레드 스위칭 스케줄러(24)는 사용자 또는 사용자 인터페이스(도시 생략)로부터의 요청에 의해 생성되는 프로세스들의 쓰레드 모듈 생성부(도시 생략)에 의해 생성된 쓰레드를 특정 코어에 할당하되, 실시간 성능 분석기(22)로부터의 코어 배정 정보를 근거로 할당한다. 특히, 쓰레드 스위칭 스케줄러(24)는 실시간 성능 분석기(22)에서 실시간으로 제공되는 코어 배정 정보를 근거로 쓰레드 스위칭을 실시한다.
코어 바인더(26)는 쓰레드 스위칭 스케줄러(24)에 의해 전달된 정보를 근거로 해당 코어에 쓰레드를 연결시킨다.
상술한 구성의 본 발명의 실시예에 따르면, 실시간 성능 분석기(22)가 실시간으로 쓰레드 성능을 분석하여 쓰레드에 배정된 코어 상태가 적합하지 않다고 분석이 되면 최적의 코어 배정 정보를 생성한다. 그에 따라, 쓰레드 스위칭 스케줄러(24)는 실시간 성능 분석기(22)에서 생성된 최적의 코어 배정 정보를 근거로 쓰레드 스위칭 기법을 통해 기존의 쓰레드에 배정된 코어를 보다 적합한 다른 코어로 스위칭한다. 그리하면, 전체적으로 성능 향상을 시키거나 전력소모를 줄여서 시스템의 효율을 높일 수 있게 된다.
도 3은 본 발명의 실시예에 따른 멀티코어 시스템의 시스템 성능 최적화 방법을 설명하기 위한 플로우차트이다.
초기 쓰레드에 코어를 배정한 이후에, 쓰레드 모듈 생성부(도시 생략)에 의해 새로운 쓰레드가 생성되면(S10) 실시간 성능 분석기(22)는 신규 쓰레드의 성능 및 기배정된 코어의 성능을 분석한다(S12). 여기서, 각각의 쓰레드는 저마다의 요구 성능 그룹 및 요구 성능값을 갖고, 각각의 코어는 저마다의 상대적 성능값을 갖는다.
분석 결과, 기존 쓰레드에 배정된 코어 상태를 그대로 유지해도 될 경우(S14에서 "Yes")에는 실시간 성능 분석기(22)는 바로 이전의 코어 배정 정보를 그대로 유지하는 정보를 쓰레드 스위칭 스케줄러(24)에게로 보낸다.
그에 따라, 쓰레드 스위칭 스케줄러(24)는 바로 이전의 코어 배정 정보를 그대로 유지하면서 즉, 기배정된 코어 상태를 그대로 유지하면서 신규 쓰레드를 특정 코어에 할당한다(S16).
상기 단계 S14에서, 기존 쓰레드에 배정된 코어 상태가 적합하지 않다고 분석된 경우(S14에서 "No")에는 실시간 성능 분석기(22)는 신규 쓰레드 및 기배정된 코어의 성능을 근거로 최적의 코어 배정 정보를 생성한다. 그리고, 실시간 성능 분석기(22)는 생성된 최적의 코어 배정 정보를 쓰레드 스위칭 스케줄러(24)에게 알려준다. 그에 따라, 쓰레드 스위칭 스케줄러(24)는 새롭게 생성된 최적의 코어 배정 정보를 바탕으로, 기존 쓰레드에 배정된 코어를 보다 적합한 다른 코어로 스위칭한다(S18).
그리고 나서, 실시간 성능 분석기(22)는 새롭게 생성한 최적의 코어 배정 정보를 근거로 코어 배정 정보 데이터베이스(20)의 정보를 갱신한다(S20).
상술한 도 3에서는 실시간 성능 분석기(22)가 최적의 코어 배정 정보를 근거로 코어 배정 정보 데이터베이스(20)의 정보를 갱신하는 것으로 하였으나, 필요에 따라서는 쓰레드 스위칭 스케줄러(24)가 쓰레드 스위칭 이후에 코어 배정 정보 데이터베이스(20)의 정보를 갱신하는 것으로 하여도 무방하다.
구체적인 사례를 들어 다시 설명한다. 예를 들어, 서로 다른 성능의 코어가 4개(코어A, 코어B, 코어C, 코어D) 있고, 생성되어 수행되는 쓰레드도 4개(쓰레드 A, 쓰레드 B, 쓰레드 C, 쓰레드 D) 있다고 가정한다.
이때, 코어 각각의 성능(상대적 성능값) 및 쓰레드별 성능 요구값은 하기의 표 1과 같다고 가정한다.
코어에 따른 상대적 성능값
코어A 코어B 코어C 코어D 비고
상대적 성능 1.0 1.5 2.0 2.5 숫자가 크면 고성능
쓰레드별 성능 요구값
쓰레드 A 쓰레드 B 쓰레드 C 쓰레드 D 비고
요구 성능 그룹 중간 중간 높음 낮음 높은 성능요구 그룹
요구 성능 20 24 32 15 D < A < B < C
상술한 표 1에서, 코어A의 성능값은 1.0이고, 코어B의 성능값은 1.5이고, 코어C의 성능값은 2.0이고, 코어D의 성능값은 2.5이다. 코어의 성능값은 수치가 높을수록 성능이 높다는 것을 나타낸다. 따라서, 코어의 성능은 "코어D > 코어C > 코어B > 코어A"이다.
그리고, 상술한 표 1을 보면, 시스템에서 사용되는 쓰레드는 높은 성능을 요구하는 그룹에 속한 쓰레드 C(요구 성능값 32)가 있고, 중간 성능을 요구하는 그룹에 속한 쓰레드 A(요구 성능값 20) 및 쓰레드 B(요구 성능값 24)가 있으며, 낮은 성능을 요구하는 그룹에 속한 쓰레드 D(요구 성능값 15)가 있다. 여기서, 쓰레드별 요구 성능 그룹을 구분함에 있어서 요구 성능값이 10~19이면 낮은 성능을 요구하는 그룹에 속하는 쓰레드이고, 요구 성능값이 20~29이면 중간 성능을 요구하는 그룹에 속하는 쓰레드이고, 요구 성능값이 30~39이면 높은 성능을 요구하는 그룹에 속하는 쓰레드이다.
생성된 쓰레드가 표 1에서 가정한 것처럼 4개라고 할 때, 코어 성능 정보에 기반해서 코어를 정적으로 배정할 경우 초기 배정 알고리즘에 따라 다를 수도 있지만 일반적으로 아래의 표 2에 예시된 바와 같은 코어 배정이 이루어질 수 있다.
쓰레드 요구성능 그룹 정적인 쓰레드 배정방법 비고
쓰레드 A 중간(20) 코어C(2.0)
쓰레드 B 중간(24) 코어D(2.5)
쓰레드 C 높음(32) 코어B(1.5)
쓰레드 D 낮음(15) 코어A(1.0)
그 이유는 다음과 같다.
처음 생성되는 쓰레드 A의 요구성능 그룹은 중간이기 때문에 4개의 코어중에서 중간 성능을 갖는 코어(즉, 코어B(1.5), 코어C(2.0))에서 보다 높은 성능을 갖는 코어C를 배정하게 된다.
이후, 쓰레드 B가 생성되면 쓰레드 B의 요구성능 그룹은 중간이지만 요구 성능값이 쓰레드 A보다 높으므로 쓰레드 A에 배정된 코어C 보다 높은 성능을 갖는 코어D(2.5)를 배정하게 된다.
이어, 쓰레드 C가 생성되면 쓰레드C가 높은 성능의 코어를 요구한다고 해도 제일 높은 성능의 코어D는 이미 배정되었기 때문에 남은 코어(즉, 코어A(1.0), 코어B(1.5)) 중에서 보다 높은 코어B를 배정하게 된다.
이후에 생성되는 쓰레드 D의 경우는 사용가능한 코어(즉, 코어A)를 선택하여 배정한다.
상술한 바와 같은 정적인 쓰레드 배정 방법은 본질적으로 최적의 코어 배정이 될 수 없는데, 그것은 쓰레드 생성에 따른 코어 배정 시점에서는 추가로 어떤 쓰레드가 생성될지 정보가 없기 때문에 한계가 있을 수 밖에 없다.
반면에, 본 발명의 실시예에 따른 실시간 쓰레드 수행 상태를 분석하여 동적으로 쓰레드 스위칭을 통해 쓰레드에 적합한 코어를 바꿔주는 동적인 쓰레드 배정방법을 사용하게 되면, 하기의 표 3에 예시된 바와 같은 코어 배정이 이루어질 수 있다.
쓰레드 요구성능 그룹 동적인 쓰레드 배정방법 비고
쓰레드 A 중간(20) 코어B(1.5)
쓰레드 B 중간(24) 코어C(2.0)
쓰레드 C 높음(32) 코어D(2.5)
쓰레드 D 낮음(15) 코어A(1.0)
즉, 동적인 쓰레드 스위칭 방법을 통해 쓰레드에 코어를 재배정하는 방법은 초기 쓰레드가 생성될 때 어떻게 배정이 되었든지 상관없이 실시간으로 시스템의 쓰레드 수행 성능을 분석해서 높은 성능이 요구되는 쓰레드에 낮은 성능의 코어가 배정되어 있다면 동적인 쓰레드 스위칭 기능을 이용해서 높은 성능을 요구하는 쓰레드에는 높은 성능의 코어가 재배정되도록 한다. 다시 말해서, 기존에는 각각의 쓰레드별로 요구하는 성능 및 성능 그룹에 위배되게 코어가 할당되기도 하였으나, 본 발명의 실시예에서는 쓰레드가 요구하는 성능 및 성능 그룹에 부합되게 코어가 배정된다. 그에 따라, 초기 상태와 상관없이 시간이 지나면서 최적의 코어 배정을 통해 시스템의 성능을 향상시키거나 전력소모를 줄일 수 있다.
상술한 바와 같이 본 발명은 멀티 쓰레드를 사용하는 멀티코어 환경에서 쓰레드에 코어가 배정되어서 수행되고 있는 중간에 동적으로 시스템의 성능을 분석하여 쓰레드에 배정된 코어를 쓰레드 성능에 맞게 쓰레드 스위칭을 통해 재배정함으로써 최적의 시스템 성능을 내도록 한다.
이상에서와 같이 도면과 명세서에서 최적의 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로, 본 기술 분야의 통상의 지식을 가진자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
20 : 코어 배정 정보 데이터베이스
22 : 실시간 성능 분석기
24 : 쓰레드 스위칭 스케줄러
26 : 코어 바인더

Claims (11)

  1. 실시간 성능 분석기가, 신규의 쓰레드가 생성됨에 따라 상기 신규의 쓰레드의 성능을 근거로, 기배정된 쓰레드별 코어 상태의 적합 여부를 분석하는 단계;
    상기 실시간 성능 분석기가, 상기 기배정된 쓰레드별 코어 상태가 부적합한 것으로 판단됨에 따라 상기 기배정된 쓰레드별 코어 상태가 최적의 코어 배정을 갖도록 하기 위해 상기 신규의 쓰레드의 성능을 근거로 최적의 코어 배정 정보를 생성하는 단계; 및
    쓰레드 스위칭 스케줄러가, 상기 최적의 코어 배정 정보를 근거로 쓰레드 스위칭을 수행하는 단계;를 포함하는 것을 특징으로 하는 멀티코어 시스템의 시스템 성능 최적화 방법.
  2. 청구항 1에 있어서,
    상기 신규의 쓰레드의 성능은 해당 신규의 쓰레드의 요구 성능 그룹 및 요구 성능값을 포함하는 것을 특징으로 하는 멀티코어 시스템의 시스템 성능 최적화 방법.
  3. 청구항 1에 있어서,
    상기 기배정된 쓰레드별 코어 상태는 쓰레드별로 배정된 코어의 상대적 성능값을 포함하는 것을 특징으로 하는 멀티코어 시스템의 시스템 성능 최적화 방법.
  4. 청구항 1에 있어서,
    상기 실시간 성능 분석기가, 상기 쓰레드 스위칭을 수행하는 단계 이후에 상기 최적의 코어 배정 정보를 근거로 코어 배정 정보 데이터베이스의 정보를 갱신하는 단계를 추가로 포함하는 것을 특징으로 하는 멀티코어 시스템의 시스템 성능 최적화 방법.
  5. 청구항 1에 있어서,
    상기 쓰레드 스위칭 스케줄러가, 상기 쓰레드 스위칭을 수행하는 단계 이후에 상기 최적의 코어 배정 정보를 근거로 코어 배정 정보 데이터베이스의 정보를 갱신하는 단계를 추가로 포함하는 것을 특징으로 하는 멀티코어 시스템의 시스템 성능 최적화 방법.
  6. 신규의 쓰레드가 생성됨에 따라 상기 신규의 쓰레드의 성능을 근거로 기배정된 쓰레드별 코어 상태의 적합 여부를 분석하고, 상기 기배정된 쓰레드별 코어 상태가 부적합한 것으로 판단되면 상기 기배정된 쓰레드별 코어 상태가 최적의 코어 배정을 갖도록 하기 위해 상기 신규의 쓰레드의 성능을 근거로 최적의 코어 배정 정보를 생성하는 실시간 성능 분석기; 및
    상기 최적의 코어 배정 정보를 근거로 쓰레드 스위칭을 수행하는 쓰레드 스위칭 스케줄러;를 포함하는 것을 특징으로 하는 멀티코어 시스템의 시스템 성능 최적화 장치.
  7. 청구항 6에 있어서,
    상기 신규의 쓰레드의 성능은 해당 신규의 쓰레드의 요구 성능 그룹 및 요구 성능값을 포함하는 것을 특징으로 하는 멀티코어 시스템의 시스템 성능 최적화 장치.
  8. 청구항 6에 있어서,
    상기 기배정된 쓰레드별 코어 상태는 쓰레드별로 배정된 코어의 상대적 성능값을 포함하는 것을 특징으로 하는 멀티코어 시스템의 시스템 성능 최적화 장치.
  9. 청구항 6에 있어서,
    상기 코어 배정 정보를 저장하는 코어 배정 정보 데이터베이스를 추가로 포함하는 것을 특징으로 하는 멀티코어 시스템의 시스템 성능 최적화 장치.
  10. 청구항 9에 있어서,
    상기 실시간 성능 분석기는 상기 쓰레드 스위칭 스케줄러에서의 쓰레드 스위칭이 완료되면 상기 최적의 코어 배정 정보를 근거로 상기 코어 배정 정보 데이터베이스의 정보를 갱신하는 것을 특징으로 하는 멀티코어 시스템의 시스템 성능 최적화 장치.
  11. 청구항 9에 있어서,
    상기 쓰레드 스위칭 스케줄러는 상기 쓰레드 스위칭이 완료되면 상기 최적의 코어 배정 정보를 근거로 상기 코어 배정 정보 데이터베이스의 정보를 갱신하는 것을 특징으로 하는 멀티코어 시스템의 시스템 성능 최적화 장치.
KR1020130163524A 2013-12-26 2013-12-26 멀티코어 시스템의 시스템 성능 최적화 장치 및 방법 KR101684677B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130163524A KR101684677B1 (ko) 2013-12-26 2013-12-26 멀티코어 시스템의 시스템 성능 최적화 장치 및 방법
US14/552,718 US20150186184A1 (en) 2013-12-26 2014-11-25 Apparatus and method for optimizing system performance of multi-core system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130163524A KR101684677B1 (ko) 2013-12-26 2013-12-26 멀티코어 시스템의 시스템 성능 최적화 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20150075499A true KR20150075499A (ko) 2015-07-06
KR101684677B1 KR101684677B1 (ko) 2016-12-09

Family

ID=53481864

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130163524A KR101684677B1 (ko) 2013-12-26 2013-12-26 멀티코어 시스템의 시스템 성능 최적화 장치 및 방법

Country Status (2)

Country Link
US (1) US20150186184A1 (ko)
KR (1) KR101684677B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170071180A (ko) * 2015-12-15 2017-06-23 삼성전자주식회사 커넥션 기반 로드 밸런싱을 위한 저장 시스템 및 방법
CN110196777A (zh) * 2019-04-29 2019-09-03 杨百涛 实时安卓操作系统中的实时Binder处理避免非实时Binder竞争的方法
US10725828B2 (en) 2016-03-18 2020-07-28 Samsung Electronics Co., Ltd. Task scheduling method and electronic device for implementing same

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9813516B2 (en) * 2014-02-18 2017-11-07 Salesforce.Com, Inc. Transparent sharding of traffic across messaging brokers
US9891926B2 (en) * 2015-09-30 2018-02-13 International Business Machines Corporation Heterogeneous core microarchitecture
KR102457183B1 (ko) 2016-01-05 2022-10-21 한국전자통신연구원 공유 번역 블록 캐시 기반의 멀티-코어 시뮬레이션 시스템 및 방법
KR102464678B1 (ko) 2016-03-18 2022-11-11 한국전자통신연구원 매니코어 시스템에서 쓰레드를 스케줄링 하는 방법 및 그 장치
CN107797866B (zh) 2016-05-31 2020-11-24 Oppo广东移动通信有限公司 处理器资源的分配方法及移动终端和介质产品
US10719063B2 (en) * 2016-10-06 2020-07-21 Microsoft Technology Licensing, Llc Real-time equipment control
US10430245B2 (en) 2017-03-27 2019-10-01 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Systems and methods for dynamic low latency optimization
KR102452205B1 (ko) 2017-11-20 2022-10-06 삼성전자주식회사 멀티 코어 제어 시스템
US11307903B2 (en) * 2018-01-31 2022-04-19 Nvidia Corporation Dynamic partitioning of execution resources
CN109144693B (zh) * 2018-08-06 2020-06-23 上海海洋大学 一种功率自适应任务调度方法及系统
CN109960395B (zh) * 2018-10-15 2021-06-08 华为技术有限公司 资源调度方法和计算机设备
US10817341B1 (en) * 2019-04-10 2020-10-27 EMC IP Holding Company LLC Adaptive tuning of thread weight based on prior activity of a thread
CA3143231A1 (en) * 2019-06-12 2020-12-17 New York University System, method and computer-accessible medium for a domain decomposition aware processor assignment in multicore processing system(s)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100074920A (ko) * 2008-12-24 2010-07-02 삼성전자주식회사 멀티코어 시스템에서의 로드 밸런싱 장치 및 방법
KR20120017471A (ko) * 2009-09-11 2012-02-28 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 스레드 시프트 : 스레드들의 코어들로의 할당
KR20130067100A (ko) * 2011-12-13 2013-06-21 한국전자통신연구원 이종 멀티코어 환경에서의 코어 배정 장치
KR20130093995A (ko) * 2012-02-15 2013-08-23 한국전자통신연구원 계층적 멀티코어 프로세서의 성능 최적화 방법 및 이를 수행하는 멀티코어 프로세서 시스템

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6098169A (en) * 1997-12-23 2000-08-01 Intel Corporation Thread performance analysis by monitoring processor performance event registers at thread switch
US7917907B2 (en) * 2005-03-23 2011-03-29 Qualcomm Incorporated Method and system for variable thread allocation and switching in a multithreaded processor
US7930574B2 (en) * 2007-12-31 2011-04-19 Intel Corporation Thread migration to improve power efficiency in a parallel processing environment
US8561073B2 (en) * 2008-09-19 2013-10-15 Microsoft Corporation Managing thread affinity on multi-core processors
US8990830B2 (en) * 2011-07-19 2015-03-24 International Business Machines Corporation Thread management in parallel processes

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100074920A (ko) * 2008-12-24 2010-07-02 삼성전자주식회사 멀티코어 시스템에서의 로드 밸런싱 장치 및 방법
KR20120017471A (ko) * 2009-09-11 2012-02-28 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 스레드 시프트 : 스레드들의 코어들로의 할당
KR20130067100A (ko) * 2011-12-13 2013-06-21 한국전자통신연구원 이종 멀티코어 환경에서의 코어 배정 장치
KR20130093995A (ko) * 2012-02-15 2013-08-23 한국전자통신연구원 계층적 멀티코어 프로세서의 성능 최적화 방법 및 이를 수행하는 멀티코어 프로세서 시스템

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170071180A (ko) * 2015-12-15 2017-06-23 삼성전자주식회사 커넥션 기반 로드 밸런싱을 위한 저장 시스템 및 방법
US10725828B2 (en) 2016-03-18 2020-07-28 Samsung Electronics Co., Ltd. Task scheduling method and electronic device for implementing same
US11385935B2 (en) 2016-03-18 2022-07-12 Samsung Electronics Co., Ltd. Task scheduling method and electronic device for implementing same
CN110196777A (zh) * 2019-04-29 2019-09-03 杨百涛 实时安卓操作系统中的实时Binder处理避免非实时Binder竞争的方法
CN110196777B (zh) * 2019-04-29 2023-01-24 杨百涛 一种实时安卓操作系统中的实时Binder处理避免非实时Binder竞争的方法

Also Published As

Publication number Publication date
KR101684677B1 (ko) 2016-12-09
US20150186184A1 (en) 2015-07-02

Similar Documents

Publication Publication Date Title
KR101684677B1 (ko) 멀티코어 시스템의 시스템 성능 최적화 장치 및 방법
US9256471B2 (en) Task scheduling method for priority-based real-time operating system in multicore environment
CN110249310B (zh) 云计算系统中的用于虚拟机的资源管理
US10609129B2 (en) Method and system for multi-tenant resource distribution
CA2918091C (en) System and method for memory channel interleaving with selective power or performance optimization
US9329910B2 (en) Distributed power delivery
KR20130119285A (ko) 클러스터 컴퓨팅 환경에서의 자원 할당 장치 및 그 방법
KR20130088513A (ko) 멀티코어 시스템의 태스크 분배 방법 및 장치
US10140161B1 (en) Workload aware dynamic CPU processor core allocation
US11886846B2 (en) Method for executing computation, computing device, computing system, and storage medium
WO2012124077A1 (ja) マルチコアプロセッサシステムおよびスケジューリング方法
CN111338779B (zh) 资源分配方法、装置、计算机设备和存储介质
KR101392584B1 (ko) 리소스 모니터링을 이용한 동적 데이터 처리 장치 및 그 방법
KR20140089749A (ko) 클러스터의 부하 할당 제어 장치 및 그 방법
JP2022539955A (ja) タスクスケジューリング方法及び装置
KR20140077769A (ko) 적응형 자원 할당 및 관리 방법
KR102247249B1 (ko) 데이터베이스 관리 시스템에서 비동기적 데이터 처리를 위한 컴퓨터 프로그램
KR101557995B1 (ko) 다중 운영체제를 지원하는 단말기 및 그 단말기에 대한시스템 자원 할당 방법
Naik et al. A survey on various task scheduling algorithms toward load balancing in public cloud
JP4409568B2 (ja) 帯域制御プログラム及びマルチプロセッサシステム
JP2018190355A (ja) リソース管理方法
CN107491352B (zh) 一种资源调度方法及装置
JP2006195985A (ja) リソース利用率を制御する方法およびコンピュータシステム
KR20130067100A (ko) 이종 멀티코어 환경에서의 코어 배정 장치
KR20210053830A (ko) 데이터베이스 관리 시스템에서 비동기적 데이터 처리를 위한 컴퓨터 프로그램

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
GRNT Written decision to grant