KR101155202B1 - 멀티 코어 프로세서의 전력 관리 방법, 멀티 코어 프로세서의 전력 관리 방법이 기록된 기록매체 및 이를 실행하는 멀티 코어 프로세서 시스템 - Google Patents

멀티 코어 프로세서의 전력 관리 방법, 멀티 코어 프로세서의 전력 관리 방법이 기록된 기록매체 및 이를 실행하는 멀티 코어 프로세서 시스템 Download PDF

Info

Publication number
KR101155202B1
KR101155202B1 KR1020090130316A KR20090130316A KR101155202B1 KR 101155202 B1 KR101155202 B1 KR 101155202B1 KR 1020090130316 A KR1020090130316 A KR 1020090130316A KR 20090130316 A KR20090130316 A KR 20090130316A KR 101155202 B1 KR101155202 B1 KR 101155202B1
Authority
KR
South Korea
Prior art keywords
core
parallel processing
clock frequency
determined
processing section
Prior art date
Application number
KR1020090130316A
Other languages
English (en)
Other versions
KR20110073631A (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 KR1020090130316A priority Critical patent/KR101155202B1/ko
Priority to US12/756,715 priority patent/US8595527B2/en
Publication of KR20110073631A publication Critical patent/KR20110073631A/ko
Application granted granted Critical
Publication of KR101155202B1 publication Critical patent/KR101155202B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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, 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
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Abstract

전력 소비를 감소시킬 수 있고 서비스 품질을 보장할 수 있는 멀티 코어 프로세서의 전력 관리 방법, 멀티 코어 프로세서의 전력 관리 방법이 기록된 기록매체 및 이를 실행하는 멀티 코어 프로세서 시스템이 개시된다. 적어도 하나의 코어를 구비하는 멀티 코어 프로세서의 전력 관리 방법은, 병렬처리 프로그램에 포함된 정보에 기초하여 병렬처리 구간을 판단하고, 판단된 병렬처리 구간에서 코어의 클럭 주파수를 결정하기 위한 정보를 각 코어별로 수집한 후 수집된 정보에 기초하여 코어의 클럭 주파수를 결정한다. 따라서, 서비스 품질을 보장하면서 전력 소비를 최소화할 수 있다.
병렬처리, 코드, busy, idle, DVFS

Description

멀티 코어 프로세서의 전력 관리 방법, 멀티 코어 프로세서의 전력 관리 방법이 기록된 기록매체 및 이를 실행하는 멀티 코어 프로세서 시스템{Method For Managing Power For Multi-core Processor, Recorded Medium For Performing Method For Managing Power For Multi-core Processor And Multi-core Processor System For Performing The Same}
본 발명은 멀티 코어 프로세서에 관한 것으로, 더욱 상세하게는 전력 소비를 감소시킬 수 있는 멀티 코어 프로세서의 전력 관리 방법 및 이를 수행하는 멀티 코어 프로세서 시스템에 관한 것이다.
최근의 컴퓨터 시스템의 설계와 관리에서 전력 및 에너지는 컴퓨터 성능과 동일한 수준의 주요 관심사이다. 특히 에너지의 효율성은 휴대용 장치 또는 임베디드 시스템에서 더욱 중요하다.
휴대용 장치 및 임베디드 시스템은 주로 배터리 기반으로 동작하기 때문에 주 전원에 연결할 수 있는 코드가 있는 장치(tethered device)에 비해 더 효율적인 전력관리를 요구한다.
예컨대, 전력 소비가 높은 시스템은 발열이 크기 때문에 비싼 패키지 재료를 사용해야 하고, 방열판이 필요할 수도 있으며 이로 인해 부피가 증가하고 제조 비용이 상승할 수 있다.
전력과 에너지 소비를 줄이기 위한 전력 관리 기법 중 하나인 DVFS(Dynamic Voltage/Frequency Scaling)는 시스템의 공급 전압과 클럭 주파수를 조절하여 마이크로 프로세서 및 관련 회로의 전력소모를 감소시키는 방법을 제공한다. DVFS는 공급 전압과 에너지 소비 사이의 이차방정식을 가지며 여러 가지 DVFS 구성에 따른 시스템의 사용률과 전력소모를 분석하여 전력소모를 줄이기 위해 필요한 DVFS 기법에 대한 스케줄러를 제작할 수 있게 하고, 이를 통해 제한된 용량의 배터리가 장착된 장치로 하여금 유효전원을 더 확보할 수 있도록 한다.
복수의 코어를 구비한 멀티 코어 프로세서(Multi-core processor)는 적어도 하나의 코어를 구동시켜 응용 프로그램의 프로세스를 처리하는데, 이때 프로세스가 요구하는 프로세서 자원(즉, 프로세서를 점유하는 시간)의 사용률이 100%가 아닌 경우에는 상술한 DVFS 기술을 이용하여 프로세스가 요구하는 수준의 프로세스 성능만을 보장함으로써 불필요한 자원 사용을 방지하여 전력 소비를 감소시킬 수 있다.
그러나, 일반적인 DVFS 기술은 실행되는 프로세스가 반드시 종료되어야 하는 시점(프로세스 데드라인)을 정확히 계측하지 못하는 경우 응용프로그램의 서비스 품질(QoS: Quality of Service)을 보장할 수 없는 문제가 발생한다.
도 1은 프로세서의 전력 관리를 수행하지 않는 경우의 전력 소모를 설명하기 위한 그래프이고, 도 2는 프로세서의 전력 관리를 수행하여 전력 소모를 방지하는 경우를 설명하기 위한 그래프이다.
도 1 및 도 2를 참조하면, 전력 소모의 종류는 크게 정적 전력 소모와 동적 전력 소모로 구분할 수 있고, 정적 전력 소모는 프로세서의 코어에 프로세서가 할당되지 않았기 때문에 코어가 구동되는 상태는 아니지만 전력이 공급되어 전력을 소모하는 상태를 의미하고, 동적 전력 소모는 코어에 프로세스가 할당되어 전력을 소모하는 상태를 의미한다.
일반적으로 정적 전력 소모 상태에서 구동되는 프로그램 코드는 운영체제의 커널 코드로 코드의 자원 요청 수준이 약 3% 미만이지만 도 1에 도시된 그래프에서는 자원을 100%로 할당하였기 때문에 불필요한 전력이 소비된다.
또한, 동적 전력 소모 구간은 하나의 프로세스가 처리해야 하는 일의 양과 비례하는데, 도 1에 도시된 바와 같이 동적 전력 소모 구간과 동적 전력 소모 구간 사이에 간격이 존재할 경우 유휴(idle) 프로세스가 코어를 점유하기 때문에 불필요한 전력 소모가 발생하게 된다.
도 1에서 동적 전력 소모 구간의 표시된 각 블록을 하나의 프로세스로 가정하면 각 블록의 시간 시간은 프로세스의 시작 시간과 일치한다. 따라서, 현재 실행되고 있는 동적 전력 소모 블록이 다음 동적 전력 소모 블록의 시작 시간까지만 종료되도록 자원을 설정할 수 있다면, 동적으로 코어의 성능을 조절하여 전력 소모를 최소화시킬 수 있다.
즉, 도 2에 도시된 바와 같이, 동적 전력 소모 구간 사이에 정적 전력 소모 구간이 존재하지 않도록 DVFS를 통해 동적으로 코어의 성능을 조절하면 아이들 프로세스가 코어를 점유함으로 인해 발생되는 불필요한 전력 소비를 방지할 수 있다.
도 3은 종래의 전력 관리 방법을 통해 전력관리를 수행한 결과를 나타내는 그래프로서, 특정 응용프로그램이 실행되는 환경에서 On-demand 기반으로 전력 관리를 실행한 경우의 프로세서 사용률을 전력관리를 전혀 수행하지 않은 경우와 비교하여 도시하였다.
도 3에 도시한 그래프에서 가로축은 시간을 나타내고, 세로축은 사용자 및/또는 시스템에 의한 프로세서 사용률을 나타낸다.
On-demand 방식의 전력 관리는 프로세서의 특정 사용률을 기점으로 프로세서 코어의 제어 여부를 결정한다. 예를 들어, 80%의 사용률을 기점으로 제어를 수행하는 경우 프로세서의 사용률이 80% 미만인 경우에는 응용 프로그램의 프로세스가 점유하는 코어의 성능을 한 단계 낮추고, 프로세서의 사용률이 80% 이상인 경우에는 DVFS 설정 단계를 한 단계 상승시킴으로써 코어의 성능을 향상시킨다.
그러나, On-demand 방식은 프로세스의 데드라인을 보장하지 못하기 때문에 DVFS를 통한 전력 관리에는 적합하지 못하다.
도 3에 도시된 바와 같이 프로세서 사용률 80%를 기점으로 제어를 수행하는 경우 8초에서 프로세서 코어의 사용률이 80% 미만으로 평가되기 때문에 활성화된 코어의 성능을 낮추게 되고, 이로 인해 현재 프로세스의 실행 시간이 다음 프로세스의 실행 시작 시점을 넘어서까지 지연되는 상황이 발생된다.
도 3을 참조하면, 아무런 제어를 수행하지 않는 경우(No policy) 프로세스의 실행 시간이 13초인 것에 비해 On-demand 방식의 경우에는 프로세스의 실행 시간이 17초로 프로세스의 실행시간이 4초 지연된다. 그리고, 이와 같은 프로세스의 실행 지연 시간이 누적되면 시스템의 전체적인 성능이 저하되는 문제가 발생한다.
상술한 문제점을 해결하기 위한 본 발명의 목적은 전력 소비를 감소시킬 수 있고, 서비스 품질을 보장할 수 있는 멀티 코어 프로세서의 전력 관리 방법을 제공하는 것이다.
또한, 본 발명의 다른 목적은 상기 전력 관리 방법을 실행하는 프로그램이 기록된 기록매체를 제공하는 것이다.
또한, 본 발명의 또 다른 목적은 상기 전력 관리 방법을 실행하는 멀티 코어 프로세서 시스템을 제공하는 것이다.
상술한 본 발명의 목적을 달성하기 위한 본 발명의 일 측면에 따른 멀티 코어 프로세서의 전력 관리 방법은, 적어도 하나의 코어를 구비하는 멀티 코어 프로세서의 전력 관리 방법에서, 병렬처리 프로그램에 포함된 정보에 기초하여 병렬처리 구간을 판단하는 단계와, 판단된 병렬처리 구간에서 코어의 클럭 주파수를 결정하기 위한 정보를 각 코어별로 수집하는 단계 및 수집된 정보에 기초하여 코어의 클럭 주파수를 결정하는 단계를 포함한다. 상기 병렬처리 프로그램에 포함된 정보에 기초하여 병렬처리 구간을 판단하는 단계는, 상기 병렬처리 프로그램에 삽입된 병렬처리 구간의 시작 또는 종료를 지시하는 정보의 존재 여부에 기초하여 병렬처리 구간을 판단할 수 있다. 상기 판단된 병렬처리 구간에서 코어의 클럭 주파수를 결정하기 위한 정보를 각 코어별로 수집하는 단계는, 상기 판단된 병렬처리 구간이 처음 실행되는 구간인가를 판단하는 단계와, 상기 판단된 병렬처리 구간이 처음 실행되는 구간인 것으로 판단되면 상기 판단된 병렬처리 구간에서 현재 실행되는 프로그램 코드를 구분하기 위한 정보를 저장하는 단계 및 상기 판단된 병렬처리 구간에서 유휴(idle) 구간의 점유율을 측정하는 단계를 포함할 수 있다. 상기 판단된 병렬처리 구간에서 현재 실행되는 프로그램 코드를 구분하기 위한 정보를 삽입하는 단계는, 상기 현재 실행되는 프로그램 코드의 코드 지역 아이디 및 현재 시간을 저장할 수 있다. 상기 수집된 정보에 기초하여 코어의 클럭 주파수를 결정하는 단계는, 각 코어별로 수집된 상기 유휴 구간의 점유율에 기초하여 상기 코어의 클럭 주파수를 결정할 수 있다. 상기 멀티 코어 프로세서의 전력 관리 방법은, 결정된 상기 코어의 클럭 주파수 설정을 요청하는 단계와, 코어에 현재 설정된 클럭 주파수의 설정을 해제하는 단계와, 상기 결정된 클럭 주파수를 해당 코어에 설정하는 단계를 더 포함할 수 있다. 상기 멀티 코어 프로세서의 전력 관리 방법은, 상기 클럭 주파수 설정이 요청된 해당 코어가 상기 병렬처리 프로그램에 상응하는 응용프로그램이 아닌 다른 응용프로그램에 점유되어 있는 경우에는 상기 해당 코어에 현재 설정된 클럭 주파수 및 상기 결정된 클럭 주파수를 고려하여 상기 해당 코어에 설정하는 단계를 더 포함할 수 있다. 상기 멀티 코어 프로세서의 전력 관리 방법은, 상기 병렬처리 프로그램의 마스터 프로세스 아이디(ID)에 현재 할당된 코어의 수와 코어 아이디를 저장하는 단계를 더 포함할 수 있다. 상기 멀티 코어 프로세서의 전력 관리 방법은, 병렬처리 프로그램에 포함된 정보에 기초하여 병렬처리 구간을 판 단하는 단계와, 판단된 병렬처리 구간에서 코어의 클럭 주파수를 결정하기 위한 정보를 각 코어별로 수집하는 단계 및 수집된 정보에 기초하여 각 코어의 클럭 주파수를 조정하는 단계를 더 포함할 수 있다.
또한, 본 발명의 다른 목적을 달성하기 위한 본 발명의 일 측면에 따른 멀티 코어 프로세서의 전력 관리 방법를 수행하는 프로그램이 기록된 기록 매체는, 병렬처리 프로그램에 포함된 정보에 기초하여 병렬처리 구간을 판단하는 단계와, 판단된 병렬처리 구간에서 코어의 클럭 주파수를 결정하기 위한 정보를 각 코어별로 수집하는 단계 및 수집된 정보에 기초하여 코어의 클럭 주파수를 결정하는 단계를 수행하는 프로그램이 기록된다.
또한, 본 발명의 또 다른 목적을 달성하기 위한 본 발명의 일 측면에 따른 멀티 코어 프로세서 시스템은 병렬처리 프로그램에 포함된 정보에 기초하여 병렬처리 구간을 판단하고, 판단된 상기 병렬처리 구간에서 상기 적어도 하나의 코어의 클럭 주파수를 결정하기 위한 정보를 수집하고 수집된 정보에 기초하여 코어의 클럭 주파수 결정하는 제어부 및 결정된 상기 코어의 클럭 주파수에 기초하여 상기 적어도 하나의 코어 중 해당 코어의 클럭 주파수를 변경시키는 DVFS(Dynamic Voltage Frequency Scaling)부를 포함한다. 상기 제어부는 상기 병렬처리 프로그램에 삽입된 병렬처리 구간의 시작 또는 종료를 지시하는 정보의 존재 여부에 기초하여 병렬처리 구간을 판단할 수 있다. 상기 제어부는 상기 판단된 병렬처리 구간이 처음 실행되는 구간인 경우 상기 판단된 병렬처리 구간에서 현재 실행되는 프로그램 코드를 구분하기 위한 정보를 저장하고, 상기 판단된 병렬처리 구간에서 유 휴(idle) 구간의 점유율을 측정할 수 있다. 상기 제어부는 상기 판단된 병렬처리 구간에서 현재 실행되는 프로그램 코드를 구분하기 위해 상기 현재 실행되는 프로그램 코드의 코드 지역 아이디 및 현재 시간을 저장할 수 있다. 상기 제어부는 각 코어별로 수집된 상기 유휴 구간의 점유율에 기초하여 상기 코어의 클럭 주파수를 결정할 수 있다. 상기 제어부는 코어에 현재 설정된 클럭 주파수의 설정을 해제한 후, 상기 결정된 클럭 주파수를 해당 코어에 설정하기 위한 제어신호를 상기 DVFS부에 제공할 수 있다. 상기 제어부는 상기 병렬처리 프로그램의 마스터 프로세스 아이디(ID)에 현재 할당된 코어의 수와 코어 아이디를 저장할 수 있다.
상술한 바와 같은 멀티 코어 프로세서의 전력 관리 방법 및 이를 실행하는 멀티 코어 프로세서 시스템에 따르면, 병렬처리 프로그램에 포함된 정보에 기초하여 병렬처리 구간여부를 판단하고, 판단된 병렬처리 구간에서 각 코어별로 유휴 구간의 점유율을 측정한 후 측정된 유휴(idle)구간을 고려하여 유휴구간이 최소화되도록 각 코어의 클럭 주파수를 설정한다.
따라서, 병렬처리 구간 및 직렬처리 구간에서 유휴 구간을 최소화할 수 있고, 불필요한 전력소비를 방지할 수 있다. 또한, 각 코어에 할당된 프로세스의 데드라인을 고려하여 최적의 클럭 주파수를 할당하기 때문에 응용프로그램의 실행과 관련된 서비스 품질(QoS)을 만족시킬 수 있다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다거나 "직접 접속되어"있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르 게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 이하, 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
이하, 본 발명의 실시예에서는 멀티 코어 프로세서의 전력 관리를 위해 병렬처리 프로그래밍 모델을 이용하는 것으로 가정한다. 여기서, 상기 병렬처리 프로그래밍 모델은 프로그램 내에 병렬처리 구간을 나타내는 정보(예를 들면, 병렬처리 관련 라이브러리 함수)가 포함된 것을 의미한다. 예를 들어, 컴파일러가 병렬처리 프로그램 코드를 컴파일하면서 병렬처리 구간 여부 및 생성되는 프로세스의 수에 대한 정보를 커널에 제공할 수 있는 코드를 자동으로 삽입함으로써 응용프로그램이 실시간으로 구동될 때 컴파일러에 의해 자동으로 삽입된 코드가 실행되면서 커널에 생성되는 프로세스의 개수를 제공하여 제어를 요청을 하는 구조로 구성될 수 있다.
도 4는 본 발명의 일 실시예에 따른 멀티 코어 프로세서의 전력 관리 방법을 설명하기 위한 개념도로서, 병렬처리 프로그래밍 모델을 적용했을 때 생성되는 프 로세스(또는 쓰레드)의 수와 응용프로그램의 프로세스가 각 코어의 자원을 점유하는 비중을 나타낸다.
도 4를 참조하면, 1개의 응용 프로그램만이 실행되고 있다고 가정하고 병렬처리 프로그래밍 모델을 분석하면, 병렬로 프로세스가 처리되는 병렬처리 구간과 직렬로 프로세서가 처리되는 직렬처리 구간이 존재하고, 병렬처리 구간 및 직렬처리 구간 각각에는 동적 전력 소모 상태인 동작(busy) 구간과 정적 전력 소모 상태인 유휴(idle) 구간이 혼재한다.
따라서, 전력 소모를 최소화하기 위해서는 병렬처리 구간 및 직렬처리 구간각각의 프로세스 종료 시점인 데드라인을 설정하고, 각 구간에 포함된 유휴(idle) 구간을 최소화하여야 한다.
즉, 병렬처리 구간 및 직렬처리 구간 각각의 전체 실행 시간을 하나의 데드라인으로 설정하고, 병렬처리나 직렬처리 구간의 실행 시간 중에서 동작(busy) 구간의 비중을 코어의 최대 주파수에 반영할 경우 서비스 품질(QoS)을 유지하면서 전력 소비를 최소화할 수 있다.
도 5는 본 발명의 일 실시예에 따른 멀티 코어 프로세서의 전력 관리 방법이 적용된 결과를 나타내는 개념도이다. 도 5에서 가로축은 시간을 나타내고, 세로축은 성능을 나타낸다.
도 5는 병렬처리 구간 및 직렬처리 구간 각각의 전체 실행 시간을 하나의 데드라인으로 설정하고, 각 처리 구간에서 유휴(idle) 구간이 최소화되도록 각 코어 별로 주파수 및 전압을 설정한 경우를 예를 들어 도시하였다.
도 4와 비교하여 도 5를 설명하면, 도 4에서는 병렬처리 구간 및 직렬처리 구간 각각에 동작 구간 및 유휴 구간이 혼재해 있고 유휴 구간에서 불필요한 전력이 소비되고 있으나, 도 5에서는 각 처리 구간에 프로세서의 데드라인을 설정하고 설정된 프로세스의 데드라인에 맞게 각 코어의 주파수 및 전압 레벨을 설정하였다. 따라서, 각 처리 구간의 유휴 구간이 최소화됨으로써 서비스 품질을 보장하면서 불필요한 전력 소비를 최소화할 수 있다.
도 6은 본 발명의 일 실시예에 따른 전력 관리 방법을 실행하는 멀티 코어 프로세서 시스템의 구성을 나타내는 블록도이다.
도 6을 참조하면, 본 발명의 일 실시예에 따른 멀티 코어 프로세서 시스템은 제어부(110), DVFS부(130) 및 복수의 코어(150)를 포함할 수 있다.
제어부(110)는 실행되는 응용프로그램의 병렬처리 프로그램 모델을 분석하여 병렬처리 구간 및 직렬처리 구간을 분석하고 각 처리 구간의 데드라인을 설정한 후, 각 코어의 성능 설정을 요청한다. 또한, 제어부(110)는 실행되는 응용프로그램별로 사용하는 코어 자원의 수를 저장하고 관리하며, 소정 응용프로그램이 새로운 코어의 할당을 요청하는 경우 이를 처리한다.
제어부(110)는 상술한 기능의 수행을 위해 소프트웨어적으로 처리될 수 있는 병렬처리 분석 모듈(111) 및 코어 제어모듈(113)을 포함할 수 있다.
구체적으로, 병렬처리 분석 모듈(111)은 현재 실행중인 응용프로그램의 프로 그램 코드에 포함된 병렬처리 구간의 시작 또는 종료를 지시하는 정보에 기초하여 현재 실행되는 구간이 처음 실행되는 병렬처리 구간인가를 판단한 후 현재 실행되는 병렬처리 구간이 처음 실행되는 구간인 것으로 판단되면 현재 병렬처리 구간의 프로그램 코드를 구분할 수 있는 코드 지역 아이디(ID) 및 시간을 저장한다.
이후, 병렬처리 분석모듈(111)은 다음 병렬처리 구간의 시작 또는 종료 지시 정보가 표시될 때까지 각 코어 별로 현재 병렬처리구간에서 유휴(idle) 구간의 점유율을 측정하고, 측정된 유휴 구간의 점유율에 기초하여 각 코어의 클럭 주파수를 산출하고, 산출된 각 코어의 클럭 주파수에 상응하는 코어의 성능 설정을 코어 제어모듈(113)에 요청한다.
병렬처리 분석모듈(111)은 수학식 1을 통해 각 코어의 클럭 주파수를 산출할 수 있고, 각 코어의 클럭 주파수에 상응하는 전압 레벨은 미리 정해진 기준에 기초하여 결정될 수 있다.
클럭 주파수 = 최대클럭주파수 × 코어점유율 ≤ DVFS에서 지원가능한 클럭 단계
즉, 병렬처리 분석모듈(111)은 수학식 1과 같이 최대클럭주파수에 각 코어의 점유율을 곱하여 각 코어의 클럭 주파수를 결정하고, 결정된 클럭 주파수로 해당 코어의 설정을 요청 한다. 여기서, 산출된 각 코어의 클럭 주파수는 바람직하게는 DVFS부에서 지원가능한 클럭 단계의 범위에 포함되어야 한다.
또한, 병렬처리 분석모듈(111)은 상술한 방법과 동일한 방법으로 직렬처리 구간 구간의 프로세스를 처리하는 단일 코어에 대해서도 최적의 성능 설정을 요청하도록 구성될 수 있다.
예를 들어, 병렬처리 분석모듈(111)은 응용프로그램의 프로그램 코드로부터 직렬처리 구간을 지시하는 시작 또는 종료 정보를 획득하고, 처음 실행되는 직렬처리 구간에서 유휴 점유율을 측정한 후 측정된 유휴 점유율에 기초하여 동일한 프로그램 코드를 실행하는 직렬처리 구간의 프로세스를 처리하기 위한 코어의 성능을 결정하고 요청할 수 있다.
코어 제어모듈(113)은 병렬처리 분석모듈(111)로부터 소정의 응용프로그램에 대한 코어 성능 설정 요청이 발생되면, 성능 설정이 요청된 해당 코어의 성능 설정을 해제하기 위한 제어신호를 생성하여 DVFS부(130)에 제공한 후, 요청된 코어 성능대로 해당 코어의 성능을 설정하기 위한 제어신호를 DVFS부(130)에 제공한다. 여기서, 상기 요청된 코어 성능은 코어의 클럭 주파수 및/또는 이에 상응하는 전압 레벨을 의미한다.
또한, 코어 제어모듈(113)은 성능 설정이 요청된 해당 코어가 다른 응용프로그램에 의해 점유되어 있는 경우에는 현재 설정된 코어의 성능에 새롭게 요청된 코어 성능을 합하여 최종 코어 성능으로 설정하기 위한 제어신호를 DVFS부(130)에 제공한다.
또는, 코어 제어모듈(113)은 코어의 성능 설정 요청이 발생된 경우 성능 설정이 요청된 해당 코어의 성능 설정을 해제하지 않고, 바로 해당 코어에 대한 성능 설정을 변경 또는 갱신하도록 하기 위한 제어 신호를 생성할 수도 있다.
또한, 코어 제어모듈(113)은 두 개 이상의 병렬화된 응용프로그램이 구동되는 경우 성능 요청의 충돌을 방지하고 신뢰성 있는 코어 제어를 수행하기 위해, 코어에 대한 성능 설정을 위한 제어신호를 생성할 때 응용 프로그램의 마스터 프로세스(또는 마스터 쓰레드) 아이디(ID)에 현재 할당된 코어의 수와 코어 아이디를 저장하고, 새로운 코어의 성능 요청이 발생된 경우 저장된 마스터 프로세스 아이디 및 이에 상응하여 할당된 코어의 수 및 코어 아이디를 고려하여 해당 코어의 성능을 설정하도록 제어할 수도 있다.
DVFS부(130)는 제어부(110)로부터 제공된 코어 성능 설정 제어신호에 상응하여 복수의 코어(150) 중 코어 성능 설정 제어신호에 상응하는 해당 코어에 제공되는 클럭 주파수 및/또는 전압 레벨을 조정한다.
도 7은 본 발명의 일 실시예에 따른 멀티 코어 프로세서의 전력 관리 방법을 나타내는 흐름도로서, 도 6에 도시된 제어부(110)의 병렬처리 분석모듈(111)에 의해 수행될 수 있다.
도 7을 참조하면, 먼저 병렬처리 분석모듈은 현재 실행중인 응용프로그램의 종료 여부를 판단하고(단계 210), 응용프로그램이 종료되지 않고 실행중인 것으로 판단되면, 실행되는 응용프로그램의 프로그램 코드에 병렬처리 구간의 시작 또는 종료를 지시하는 정보가 존재하는가를 판단한다(단계 220).
여기서, 병렬처리 분석모듈은 응용프로그램의 병렬처리 프로그램에 삽입된 병렬처리 구간의 시작 또는 종료를 지시하는 코드(예를 들면, 병렬처리 관련 라이 브러리 함수)에 기초하여 병렬처리 구간의 시작 또는 종류를 지시하는 정보의 존재 여부를 판단할 수 있다.
단계 220에서 판단결과, 병렬처리 구간의 시작 또는 종료를 지시하는 정보가 존재하는 경우 병렬처리 분석모듈은 현재 실행되는 구간이 처음 실행되는 병렬처리 구간인가를 판단하고(단계 230), 처음 실행되는 구간인 것으로 판단되는 경우에는 프로세스의 데드라인을 결정하기 위해 현재 병렬처리 구간의 프로그램 코드를 구분할 수 있는 코드 지역 아이디(ID) 및 시간을 저장한다(단계 240).
단계 240에서, 병렬처리 구간의 시작 및 종료 지점에 코드 지역 아이디를 할당하는 이유는 소정 응용프로그램에서 동일한 위치의 프로그램 코드를 반복 실행하는가의 여부를 판단하기 위한 것이다. 즉, 응용프로그램의 소정 병렬처리 구간에 해당하는 프로그램 코드는 처음 실행되는 경우에만 해당 프로세스가 점유하는 코어에 대한 성능을 측정하고, 이후의 실행시에는 동일한 프로그램 코드가 처음 실행될 때 측정된 성능에 기초하여 해당 코어에 할당될 최적의 성능(즉, 클럭 주파수 및/또는 전압 레벨)이 결정된다.
이후, 병렬처리 분석모듈은 다음 병렬처리 구간의 시작 또는 종료 지시 정보가 표시될 때까지 현재 병렬처리구간에서 유휴(idle) 구간의 점유율을 측정한다(단계 250). 여기서, 상기 유휴 구간의 점유율은 병렬처리 구간의 각 프로세스를 처리하는 각각의 코어별로 측정될 수 있다.
또는, 단계 230에서 현재 구간이 처음 실행되는 구간이 아닌 것으로 판단되는 경우 병렬처리 분석모듈은 이전에 실행된 단계 240 및 단계 250을 통해 수집된 정보에 기초하여 프로세스가 점유하는 코어에 대한 성능 설정을 요청한다(단계 260). 여기서, 병렬처리 분석모듈은 각 코어의 클럭 주파수를 상기 수학식 1을 통해 산출할 수 있고, 각 코어의 클럭 주파수에 상응하는 전압 레벨은 미리 정해진 기준에 기초하여 결정될 수 있다.
도 7에 도시한 본 발명의 일실시예에 따른 멀티 코어 프로세서의 전력 관리 방법에서는 병렬처리 프로그래밍 모델에 기초하여 병렬처리 구간의 복수의 프로세스를 처리하는 복수의 코어에 대한 성능 설정을 예를 들어 도시하고 설명하였으나, 본 발명의 다른 실시예에서는 상술한 방법을 이용하여 직렬처리 구간의 프로세스를 처리하는 단일 코어에 대해서도 최적의 성능 설정을 요청하도록 구성될 수 있다.
예를 들어, 도 7의 단계 220에서 제어부가 직렬처리 구간을 지시하는 시작 또는 종료 정보의 존재 여부를 판단하고, 처음 실행되는 직렬처리 구간에서 유휴 점유율을 측정한 후 측정된 유휴 점유율에 기초하여 동일한 프로그램 코드를 실행하는 직렬처리 구간의 프로세스를 처리하기 위한 코어의 성능을 결정하고 요청할 수 있다.
도 8은 본 발명의 일 실시예에 따른 멀티 코어 프로세서의 전력 관리 방법을 나타내는 흐름도로서, 도 7에 도시된 제어부(110)의 코어 제어모듈(113)에 의해 수행될 수 있다.
도 8을 참조하면, 코어 제어모듈은 소정의 응용프로그램에 대한 코어 성능 설정 요청이 발생되었는가를 판단하고(단계 310), 소정의 응용프로그램에 대한 코 어의 성능(즉, 코어의 클럭 주파수) 설정 요청이 발생된 것으로 판단되면, 성능 설정이 요청된 해당 코어의 성능 설정을 해제하기 위한 제어신호를 생성한다(단계 320). 여기서, 상기 소정의 응용프로그램에 대한 코어 성능 설정 요청은 도 6에 도시한 제어부(110)의 병렬처리 분석모듈(111)에 의해 제공될 수 있다.
이후, 코어 제어모듈은 요청된 코어 성능대로 해당 코어의 성능을 설정하기 위한 제어신호를 생성한다(단계 330). 여기서, 상기 요청된 코어 성능은 코어의 클럭 주파수 및/또는 이에 상응하는 전압 레벨을 의미한다.
또한, 단계 330에서 성능 설정이 요청된 해당 코어가 다른 응용프로그램에 의해 점유되어 있는 경우 코어 제어모듈은 현재 설정된 코어의 성능에 새롭게 요청된 코어 성능을 합하여 최종 코어 성능으로 설정하기 위한 제어신호를 생성한다.
도 8에 도시한 멀티 코어 프로세서의 전력 관리 방법에서는 코어의 성능 설정 요청이 발생된 경우 단계 320에서 성능 설정이 요청된 해당 코어의 성능 설정을 해제한 후 단계 330에서 해당 코어에 대한 성능 설정을 위한 제어신호를 생성하는 것으로 예를 들어 도시하였으나, 본 발명의 다른 실시예에서는 코어의 성능 설정 요청이 발생된 경우 단계 320을 수행하지 않고, 바로 해당 코어에 대한 성능 설정을 위한 제어 신호를 생성하도록 구성될 수도 있다.
또한, 도 8에 도시한 전력 관리 방법에서 코어 제어모듈은 두 개 이상의 병렬화된 응용프로그램이 구동되는 경우 성능 요청의 충돌을 방지하고 신뢰성 있는 코어 제어를 수행하기 위해, 단계 330의 해당 코어에 대한 성능 설정을 위한 제어신호를 생성할 때 응용 프로그램에 상응하는 현재 실행중인 병렬처리 프로그램의 마스터 프로세스(또는 마스터 쓰레드) 아이디(ID)에 현재 할당된 코어의 수와 코어 아이디를 저장할 수도 있다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
도 1은 프로세서의 전력 관리를 수행하지 않는 경우의 전력 소모를 설명하기 위한 그래프이다.
도 2는 프로세서의 전력 관리를 수행하여 전력 소모를 방지하는 경우를 설명하기 위한 그래프이다.
도 3은 종래의 전력 관리 방법을 통해 전력관리를 수행한 결과를 나타내는 그래프이다.
도 4는 본 발명의 일 실시예에 따른 멀티 코어 프로세서의 전력 관리 방법을 설명하기 위한 개념도이다.
도 5는 본 발명의 일 실시예에 따른 멀티 코어 프로세서의 전력 관리 방법이 적용된 결과를 나타내는 개념도이다.
도 6은 본 발명의 일 실시예에 따른 전력 관리 방법을 실행하는 멀티 코어 프로세서 시스템의 구성을 나타내는 블록도이다.
도 7은 본 발명의 일 실시예에 따른 멀티 코어 프로세서의 전력 관리 방법을 나타내는 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 멀티 코어 프로세서의 전력 관리 방법을 나타내는 흐름도이다.
<도면의 주요 부분에 대한 부호희 설명>
110 : 제어부 111 : 병렬처리 분석모듈
113 : 코어 제어모듈 130 : DVFS부
150 : 코어

Claims (17)

  1. 적어도 하나의 코어를 구비하는 멀티 코어 프로세서의 전력 관리 방법에 있어서,
    병렬처리 프로그램에 포함된 정보에 기초하여 병렬처리 구간을 판단하는 단계;
    판단된 병렬처리 구간에서 코어의 클럭 주파수를 결정하기 위한 정보를 각 코어별로 수집하는 단계; 및
    수집된 정보에 기초하여 코어의 클럭 주파수를 결정하는 단계를 포함하되,
    상기 병렬처리 프로그램에 포함된 정보에 기초하여 병렬처리 구간을 판단하는 단계는, 상기 병렬처리 프로그램에 삽입된 병렬처리 구간의 시작 또는 종료를 지시하는 정보의 존재 여부에 기초하여 병렬처리 구간을 판단하는 것을 특징으로 하는 멀티 코어 프로세서의 전력 관리 방법.
  2. 삭제
  3. 제1항에 있어서, 상기 판단된 병렬처리 구간에서 코어의 클럭 주파수를 결정하기 위한 정보를 각 코어별로 수집하는 단계는
    상기 판단된 병렬처리 구간이 처음 실행되는 구간인가를 판단하는 단계;
    상기 판단된 병렬처리 구간이 처음 실행되는 구간인 것으로 판단되면 상기 판단된 병렬처리 구간에서 현재 실행되는 프로그램 코드를 구분하기 위한 정보를 저장하는 단계; 및
    상기 판단된 병렬처리 구간에서 유휴(idle) 구간의 점유율을 측정하는 단계를 포함하는 것을 특징으로 하는 멀티 코어 프로세서의 전력 관리 방법.
  4. 제3항에 있어서, 상기 판단된 병렬처리 구간에서 현재 실행되는 프로그램 코드를 구분하기 위한 정보를 저장하는 단계는,
    상기 현재 실행되는 프로그램 코드의 코드 지역 아이디 및 현재 시간을 저장하는 것을 특징으로 하는 멀티 코어 프로세서의 전력 관리 방법.
  5. 제3항에 있어서, 상기 수집된 정보에 기초하여 코어의 클럭 주파수를 결정하는 단계는,
    각 코어별로 수집된 상기 유휴 구간의 점유율에 기초하여 상기 코어의 클럭 주파수를 결정하는 것을 특징으로 하는 멀티 코어 프로세서의 전력 관리 방법.
  6. 제1항에 있어서, 상기 멀티 코어 프로세서의 전력 관리 방법은,
    결정된 상기 코어의 클럭 주파수 설정을 요청하는 단계;
    코어에 현재 설정된 클럭 주파수의 설정을 해제하는 단계;
    상기 결정된 클럭 주파수를 해당 코어에 설정하는 단계를 더 포함하는 멀티 코어 프로세서의 전력 관리 방법.
  7. 제6항에 있어서, 상기 멀티 코어 프로세서의 전력 관리 방법은,
    상기 클럭 주파수 설정이 요청된 해당 코어가 상기 병렬처리 프로그램에 상응하는 응용프로그램이 아닌 다른 응용프로그램에 점유되어 있는 경우에는 상기 해당 코어에 현재 설정된 클럭 주파수 및 상기 결정된 클럭 주파수를 고려하여 상기 해당 코어에 설정하는 단계를 더 포함하는 것을 특징으로 하는 멀티 코어 프로세서의 전력 관리 방법.
  8. 제1항에 있어서, 상기 멀티 코어 프로세서의 전력 관리 방법은,
    상기 병렬처리 프로그램의 마스터 프로세스 아이디(ID)에 현재 할당된 코어의 수와 코어 아이디를 저장하는 단계를 더 포함하는 것을 특징으로 하는 멀티 코어 프로세서의 전력 관리 방법.
  9. 제1항에 있어서, 상기 멀티 코어 프로세서의 전력 관리 방법은,
    상기 병렬처리 프로그램에 포함된 정보에 기초하여 병렬처리 구간을 판단하는 단계, 상기 판단된 병렬처리 구간에서 코어의 클럭 주파수를 결정하기 위한 정보를 각 코어별로 수집하는 단계 및 상기 수집된 정보에 기초하여 코어의 클럭 주파수를 결정하는 단계를 수행한 후,
    상기 결정된 클럭 주파수에 기초하여 각 코어의 클럭 주파수를 조정하는 단계를 더 포함하는 것을 특징으로 하는 멀티 코어 프로세서의 전력 관리 방법.
  10. 삭제
  11. 적어도 하나의 코어를 포함하는 멀티 코어 프로세서 시스템에 있어서,
    병렬처리 프로그램에 포함된 정보에 기초하여 병렬처리 구간을 판단하고, 판단된 상기 병렬처리 구간에서 상기 적어도 하나의 코어의 클럭 주파수를 결정하기 위한 정보를 수집하고 수집된 정보에 기초하여 코어의 클럭 주파수 결정하는 제어부; 및
    결정된 상기 코어의 클럭 주파수에 기초하여 상기 적어도 하나의 코어 중 해당 코어의 클럭 주파수를 변경시키는 DVFS(Dynamic Voltage Frequency Scaling)부를 포함하되,
    상기 제어부는, 상기 병렬처리 프로그램에 삽입된 병렬처리 구간의 시작 또는 종료를 지시하는 정보의 존재 여부에 기초하여 병렬처리 구간을 판단하는 것을 특징으로 하는 멀티 코어 프로세서 시스템.
  12. 삭제
  13. 제11항에 있어서, 상기 제어부는
    상기 판단된 병렬처리 구간이 처음 실행되는 구간인 경우 상기 판단된 병렬처리 구간에서 현재 실행되는 프로그램 코드를 구분하기 위한 정보를 저장하고, 상기 판단된 병렬처리 구간에서 유휴(idle) 구간의 점유율을 측정하는 것을 특징으로 하는 멀티 코어 프로세서 시스템.
  14. 제13항에 있어서, 상기 제어부는,
    상기 판단된 병렬처리 구간에서 현재 실행되는 프로그램 코드를 구분하기 위해 상기 현재 실행되는 프로그램 코드의 코드 지역 아이디 및 현재 시간을 저장하는 것을 특징으로 하는 멀티 코어 프로세서 시스템.
  15. 제13항에 있어서, 상기 제어부는
    각 코어별로 수집된 상기 유휴 구간의 점유율에 기초하여 상기 코어의 클럭 주파수를 결정하는 것을 특징으로 하는 멀티 코어 프로세서 시스템.
  16. 제11항에 있어서, 상기 제어부는
    코어에 현재 설정된 클럭 주파수의 설정을 해제한 후, 상기 결정된 클럭 주파수를 해당 코어에 설정하기 위한 제어신호를 상기 DVFS부에 제공하는 것을 특징으로 하는 멀티 코어 프로세서 시스템.
  17. 제11항에 있어서, 상기 제어부는
    상기 병렬처리 프로그램의 마스터 프로세스 아이디(ID)에 현재 할당된 코어의 수와 코어 아이디를 저장하는 것을 특징으로 하는 멀티 코어 프로세서 시스템.
KR1020090130316A 2009-12-24 2009-12-24 멀티 코어 프로세서의 전력 관리 방법, 멀티 코어 프로세서의 전력 관리 방법이 기록된 기록매체 및 이를 실행하는 멀티 코어 프로세서 시스템 KR101155202B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090130316A KR101155202B1 (ko) 2009-12-24 2009-12-24 멀티 코어 프로세서의 전력 관리 방법, 멀티 코어 프로세서의 전력 관리 방법이 기록된 기록매체 및 이를 실행하는 멀티 코어 프로세서 시스템
US12/756,715 US8595527B2 (en) 2009-12-24 2010-04-08 Method of managing power of multi-core processor, recording medium storing program for performing the same, and multi-core processor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090130316A KR101155202B1 (ko) 2009-12-24 2009-12-24 멀티 코어 프로세서의 전력 관리 방법, 멀티 코어 프로세서의 전력 관리 방법이 기록된 기록매체 및 이를 실행하는 멀티 코어 프로세서 시스템

Publications (2)

Publication Number Publication Date
KR20110073631A KR20110073631A (ko) 2011-06-30
KR101155202B1 true KR101155202B1 (ko) 2012-06-13

Family

ID=44188894

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090130316A KR101155202B1 (ko) 2009-12-24 2009-12-24 멀티 코어 프로세서의 전력 관리 방법, 멀티 코어 프로세서의 전력 관리 방법이 기록된 기록매체 및 이를 실행하는 멀티 코어 프로세서 시스템

Country Status (2)

Country Link
US (1) US8595527B2 (ko)
KR (1) KR101155202B1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8356194B2 (en) 2010-01-28 2013-01-15 Cavium, Inc. Method and apparatus for estimating overshoot power after estimating power of executing events
US8695008B2 (en) * 2011-04-05 2014-04-08 Qualcomm Incorporated Method and system for dynamically controlling power to multiple cores in a multicore processor of a portable computing device
WO2012166106A1 (en) 2011-05-31 2012-12-06 Hewlett-Packard Development Company, L.P. Estimating a performance parameter of a job having map and reduce tasks after a failure
US20130339972A1 (en) * 2012-06-18 2013-12-19 Zhuoyao Zhang Determining an allocation of resources to a program having concurrent jobs
US20140068581A1 (en) * 2012-08-30 2014-03-06 International Business Machines Corporation Optimized division of work among processors in a heterogeneous processing system
US9671844B2 (en) 2013-09-26 2017-06-06 Cavium, Inc. Method and apparatus for managing global chip power on a multicore system on chip
KR102033434B1 (ko) * 2014-01-28 2019-10-17 한국전자통신연구원 동적 컨텍스트 스위칭 기반 멀티코어 에뮬레이션 장치 및 방법
KR102164099B1 (ko) 2014-03-28 2020-10-12 삼성전자 주식회사 시스템 온 칩, 이의 작동 방법, 및 이를 포함하는 장치
KR102278475B1 (ko) * 2014-10-14 2021-07-19 삼성전자주식회사 전자 장치 및 그 제어 방법
US9910481B2 (en) * 2015-02-13 2018-03-06 Intel Corporation Performing power management in a multicore processor
US9740266B2 (en) * 2015-09-04 2017-08-22 Mediatek Inc. Apparatus and method for controlling multi-core of electronic device
CN108958449B (zh) * 2017-05-26 2023-07-07 中兴通讯股份有限公司 一种cpu功耗调整方法与装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100708952B1 (ko) 2003-05-27 2007-04-18 닛본 덴끼 가부시끼가이샤 병렬 처리 시스템, 병렬 처리 프로그램을 기록하는 컴퓨터 판독가능한 기록 매체 및 병렬 처리 방법
KR20070061795A (ko) * 2005-04-12 2007-06-14 각코호진 와세다다이가쿠 멀티프로세서 시스템 및 멀티그레인 병렬화 컴파일러

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6230313B1 (en) * 1998-12-23 2001-05-08 Cray Inc. Parallelism performance analysis based on execution trace information
US7398403B2 (en) * 2004-07-01 2008-07-08 Matsushita Electric Industrial Co., Ltd. Multiprocessor control apparatus, control method thereof, and integrated circuit
US7437581B2 (en) * 2004-09-28 2008-10-14 Intel Corporation Method and apparatus for varying energy per instruction according to the amount of available parallelism
US8108863B2 (en) * 2005-12-30 2012-01-31 Intel Corporation Load balancing for multi-threaded applications via asymmetric power throttling
EP2005691A4 (en) * 2006-03-28 2013-02-20 Radisys Canada Inc MULTIMEDIA PROCESSING IN PARALLEL MULTI-DATA DATA PROCESSING ARCHITECTURES
JP4231516B2 (ja) * 2006-08-04 2009-03-04 株式会社日立製作所 実行コードの生成方法及びプログラム
US7730340B2 (en) * 2007-02-16 2010-06-01 Intel Corporation Method and apparatus for dynamic voltage and frequency scaling
US7930574B2 (en) * 2007-12-31 2011-04-19 Intel Corporation Thread migration to improve power efficiency in a parallel processing environment
US20090210740A1 (en) * 2008-02-14 2009-08-20 Song Huang Off-chip access workload characterization methodology for optimizing computing efficiency
US9563250B2 (en) * 2009-12-16 2017-02-07 Qualcomm Incorporated System and method for controlling central processing unit power based on inferred workload parallelism
US8381004B2 (en) * 2010-05-26 2013-02-19 International Business Machines Corporation Optimizing energy consumption and application performance in a multi-core multi-threaded processor system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100708952B1 (ko) 2003-05-27 2007-04-18 닛본 덴끼 가부시끼가이샤 병렬 처리 시스템, 병렬 처리 프로그램을 기록하는 컴퓨터 판독가능한 기록 매체 및 병렬 처리 방법
KR20070061795A (ko) * 2005-04-12 2007-06-14 각코호진 와세다다이가쿠 멀티프로세서 시스템 및 멀티그레인 병렬화 컴파일러
KR100861631B1 (ko) 2005-04-12 2008-10-07 각코호진 와세다다이가쿠 멀티프로세서 시스템 및 멀티그레인 병렬화 컴파일러를 기록한 컴퓨터 판독 가능 매체

Also Published As

Publication number Publication date
US8595527B2 (en) 2013-11-26
US20110161636A1 (en) 2011-06-30
KR20110073631A (ko) 2011-06-30

Similar Documents

Publication Publication Date Title
KR101155202B1 (ko) 멀티 코어 프로세서의 전력 관리 방법, 멀티 코어 프로세서의 전력 관리 방법이 기록된 기록매체 및 이를 실행하는 멀티 코어 프로세서 시스템
US10956220B2 (en) Scheduler for amp architecture using a closed loop performance and thermal controller
US8381215B2 (en) Method and system for power-management aware dispatcher
KR101629155B1 (ko) 전력-인식 스레드 스케줄링 및 프로세서들의 동적 사용
JP6386165B2 (ja) 分散コンピュータシステムへの電力割り振りに変更がある場合に中断され得るジョブ及び中断され得ないジョブを管理するための方法並びに装置
KR101029414B1 (ko) 프로세서 상태 천이를 검출하기 위해 제공되는 장치 및방법과 머신 액세스 가능 매체와 컴퓨팅 시스템
JP5564564B2 (ja) 計算ユニットの性能を性能感度に従い不均等に変化させる方法及び装置
Ellsworth et al. Pow: System-wide dynamic reallocation of limited power in hpc
Saxe Power-efficient software
CN101379453A (zh) 使用动态工作负载特征来控制cpu频率和电压调节的方法和装置
US10551901B2 (en) Core frequency management using effective utilization for power-efficient performance
Borghesi et al. Scheduling-based power capping in high performance computing systems
Lim et al. A dynamic energy management scheme for multi-tier data centers
Munawar et al. Peak power management for scheduling real-time tasks on heterogeneous many-core systems
Li et al. Energy-efficient execution for repetitive app usages on big. LITTLE architectures
Lent Analysis of an energy proportional data center
Bhattacharya et al. Software bloat and wasted joules: Is modularity a hurdle to green software?
Mück et al. Chips-ahoy: A predictable holistic cyber-physical hypervisor for mpsocs
CN107636563B (zh) 用于通过腾空cpu和存储器的子集来降低功率的方法和系统
CN108574600B (zh) 云计算服务器的功耗和资源竞争协同控制的服务质量保障方法
Balsini et al. Energy-efficient low-latency audio on android
Li et al. System-level, thermal-aware, fully-loaded process scheduling
Saxe Power-Efficient Software: Power-manageable hardware can help save energy, but what can software developers do to address the problem?
Rodero et al. Energy efficiency in HPC systems
Pillai et al. EC-A: A task allocation algorithm for energy minimization in multiprocessor systems

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee