KR20160015864A - 프로세서의 동적 전압 주파수 스케일링 방법 - Google Patents
프로세서의 동적 전압 주파수 스케일링 방법 Download PDFInfo
- Publication number
- KR20160015864A KR20160015864A KR1020140098764A KR20140098764A KR20160015864A KR 20160015864 A KR20160015864 A KR 20160015864A KR 1020140098764 A KR1020140098764 A KR 1020140098764A KR 20140098764 A KR20140098764 A KR 20140098764A KR 20160015864 A KR20160015864 A KR 20160015864A
- Authority
- KR
- South Korea
- Prior art keywords
- processor
- usage
- amount
- task
- computing
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3228—Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/329—Power saving characterised by the action undertaken by task scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
프로세서의 동적 전압 주파수 스케일링 방법은, 프로세서가 그래픽 태스크와 컴퓨팅 태스크 중 적어도 하나를 포함하는 태스크들을 수행하는 경우, 프로세서의 제1 사용량을 측정하는 단계, 그래픽 태스크의 양과 컴퓨팅 태스크의 양에 기초하여 제1 사용량을 수정하여 제2 사용량을 생성하는 단계 및 제2 사용량과 문턱 값들을 비교하여 프로세서의 동작 주파수를 결정하는 단계를 포함한다.
Description
본 발명은 동적 전압 주파수 스케일링(Dynamic Voltage Frequency Scaling; DVFS)에 관한 것으로서, 더욱 상세하게는 컴퓨팅 태스크 및 그래픽 태스크를 고려하여 동작 주파수 및 동작 전압을 제어하는 프로세서의 동적 전압 주파수 스케일링 방법에 관한 것이다.
최근 반도체 장치의 집적도가 향상됨에 따라 더 많은 부품들이 하나의 칩에 집적되고 반도체 장치의 동작 속도도 점진적으로 증가하는 추세이다. 또한, 최근에는 반도체 장치의 전력 소모를 줄이기 위한 다양한 기술이 연구되고 있으며, 특히 반도체 장치의 동작 상태에 따라서 동작 주파수 및 동작 전압을 동적으로 변경하는 동적 전압 주파수 스케일링(Dynamic Voltage Frequency Scaling; DVFS) 기술이 제시되고 있다.
종래에는 그래픽 프로세서(GPU)의 주 역할이 그래픽 라이브러리(OPENGL)를 이용한 그래픽 태스크(Graphic task)의 수행이었으므로, 종래의 동적 전압 주파수 스케일링 방법은 그래픽 태스크만을 고려하여 문턱 값들을 결정하고, 상기 문턱 값들과 그래픽 프로세서의 사용량과 비교하여 동적으로 그래픽 프로세서의 동작 주파수와 동작 전압을 제어하였다.
현재, 그래픽 프로세서(GPU)의 성능이 급격히 증가하면서 내장형 시스템에서도 그래픽 태스크(Graphic task)가 아닌 컴퓨팅 태스크의 수행이 가능해졌다. 따라서 컴퓨팅 태스크와 그래픽 태스크를 모두 고려하여 동적으로 그래픽 프로세서의 동작 주파수와 동작 전압을 제어하는 방법이 필요하다.
상기와 같은 문제점을 해결하기 위한 본 발명의 일 목적은 컴퓨팅 태스크 및 그래픽 태스크를 고려하여 동작 주파수 및 동작 전압을 제어하는 프로세서의 동적 전압 주파수 스케일링 방법을 제공하는데 있다.
상기 일 목적을 달성하기 위해, 본 발명의 일 실시예에 따른 프로세서의 동적 전압 주파수 스케일링(Dynamic Voltage Frequency Scaling) 방법은, 상기 프로세서가 그래픽 태스크(Graphic task)와 컴퓨팅 태스크(Computing task) 중 적어도 하나를 포함하는 태스크들을 수행하는 경우, 상기 프로세서의 제1 사용량을 측정하는 단계, 상기 그래픽 태스크의 양과 상기 컴퓨팅 태스크의 양에 기초하여 상기 제1 사용량을 수정하여 제2 사용량을 생성하는 단계 및 상기 제2 사용량과 문턱 값들을 비교하여 상기 프로세서의 동작 주파수를 결정하는 단계를 포함한다.
일 실시예에 있어서, 상기 그래픽 태스크의 양과 상기 컴퓨팅 태스크의 양에 기초하여 상기 제1 사용량을 수정하여 상기 제2 사용량을 생성하는 단계는, 상기 태스크들이 상기 컴퓨팅 태스크를 포함하지 않는 경우, 상기 제1 사용량을 갖는 상기 제2 사용량을 생성하는 단계 및 상기 태스크들이 상기 컴퓨팅 태스크를 포함하는 경우, 상기 제1 사용량을 수정하여 상기 제2 사용량을 생성하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 태스크들이 상기 컴퓨팅 태스크를 포함하는 경우, 상기 제1 사용량을 수정하여 상기 제2 사용량을 생성하는 단계는, 상기 태스크들의 양과 상기 컴퓨팅 태스크의 양의 비율에 상기 사용량을 곱하여 컴퓨팅 사용량을 계산하는 단계, 상기 태스크들의 양과 상기 그래픽 태스크의 양의 비율에 상기 사용량을 곱하여 그래픽 사용량을 계산하는 단계, 상기 컴퓨팅 사용량에 가중치(Weight)를 곱하는 단계 및 상기 가중치가 곱해진 컴퓨팅 사용량과 상기 그래픽 사용량을 더하여 상기 제2 사용량을 생성하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 가중치가 곱해진 컴퓨팅 사용량과 상기 그래픽 사용량을 더하여 상기 제2 사용량을 생성하는 단계는, 상기 가중치가 곱해진 컴퓨팅 사용량과 상기 그래픽 사용량을 더하여 제3 사용량을 생성하는 단계, 상기 제3 사용량이 한계 사용량 이상인 경우, 상기 제2 사용량을 상기 한계 사용량으로 결정하는 단계 및 상기 제3 사용량이 상기 한계 사용량 미만인 경우, 상기 제2 사용량을 상기 제3 사용량으로 결정하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 태스크들의 양은 상기 태스크들의 상기 프로세서 상의 수행 시간이고, 상기 그래픽 태스크의 양은 상기 그래픽 태스크의 상기 프로세서 상의 수행 시간이고, 상기 컴퓨팅 태스크의 양은 상기 컴퓨팅 태스크의 상기 프로세서 상의 수행 시간일 수 있다.
일 실시예에 있어서, 상기 태스크들의 양은 상기 태스크들에 포함되는 태스크 유닛들의 개수이고, 상기 그래픽 태스크의 양은 상기 그래픽 태스크에 포함되는 태스크 유닛들의 개수이고, 상기 컴퓨팅 태스크의 양은 상기 컴퓨팅 태스크에 포함되는 태스크 유닛들의 개수일 수 있다.
일 실시예에 있어서, 상기 제2 사용량과 상기 문턱 값들을 비교하여 상기 프로세서의 상기 동작 주파수를 결정하는 단계는, 상기 제2 사용량이 제1 문턱 값보다 작은 경우, 상기 프로세서의 상기 동작 주파수를 감소시키는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 제2 사용량이 상기 제1 문턱 값보다 작은 경우, 상기 프로세서의 상기 동작 주파수를 감소시키는 단계는, 상기 동작 주파수가 상기 프로세서의 최소 동작 주파수인 경우, 상기 동작 주파수를 유지하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 제2 사용량과 상기 문턱 값들을 비교하여 상기 프로세서의 상기 동작 주파수를 결정하는 단계는, 상기 제2 사용량이 제2 문턱 값 이상인 경우, 상기 프로세서의 상기 동작 주파수를 증가시키는 단계를 더 포함할 수 있다.
일 실시예에 있어서, 상기 제2 사용량이 상기 제2 문턱 값 이상인 경우, 상기 프로세서의 상기 동작 주파수를 증가시키는 단계는, 상기 동작 주파수가 상기 프로세서의 최대 동작 주파수인 경우, 상기 동작 주파수를 유지하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 제2 사용량과 상기 문턱 값들을 비교하여 상기 프로세서의 상기 동작 주파수를 결정하는 단계는, 상기 제2 사용량이 상기 제1 문턱 값 이상이고, 상기 제2 문턱 값보다 작은 경우, 상기 프로세서의 상기 동작 주파수를 유지하는 단계를 더 포함할 수 있다.
일 실시예에 있어서, 상기 문턱 값들은 복수의 그래픽 태스크 벤치마크 프로그램들에 의해 미리 결정될 수 있다.
일 실시예에 있어서, 상기 프로세서의 상기 사용량은 상기 프로세서의 전체 구동 시간과 상기 프로세서가 상기 태스크들을 수행하는 시간의 비율일 수 있다.
일 실시예에 있어서, 상기 프로세서는 그래픽스 프로세싱 유닛(Graphics Processing Unit) 또는 일반 컴퓨팅 프로세싱 유닛(Computing Processing Unit)일 수 있다.
일 실시예에 있어서, 상기 프로세서는 상기 그래픽 태스크와 상기 컴퓨팅 태스크를 오픈 씨엘(OPEN CL)을 사용하여 수행할 수 있다.
일 실시예에 있어서, 상기 프로세서의 상기 제1 사용량을 측정하는 단계는, 상기 프로세서에서 동작하는 운영 시스템(Operating system)에서 전압 주파수 스케일링 이벤트가 발생한 경우 수행될 수 있다.
상기 일 목적을 달성하기 위해, 본 발명의 일 실시예에 따른 프로세서의 동적 전압 주파수 스케일링(Dynamic Voltage Frequency Scaling) 방법은, 상기 프로세서가 그래픽 태스크(Graphic task)와 컴퓨팅 태스크(Computing task) 중 적어도 하나를 포함하는 태스크들을 수행하는 경우, 상기 프로세서의 제1 사용량, 상기 그래픽 태스크의 양, 상기 컴퓨팅 태스크의 양 및 문턱 값들에 기초하여 상기 프로세서의 동작 주파수를 제어하는 단계 및 상기 동작 주파수에 기초하여 상기 프로세서의 동작 전압을 결정하는 단계를 포함한다.
일 실시예에 있어서, 상기 프로세서의 상기 제1 사용량, 상기 그래픽 태스크의 양, 상기 컴퓨팅 태스크의 양 및 상기 문턱 값들에 기초하여 상기 프로세서의 상기 동작 주파수를 제어하는 단계는, 상기 프로세서의 상기 제1 사용량을 측정하는 단계, 상기 그래픽 태스크의 양과 상기 컴퓨팅 태스크의 양에 기초하여 상기 제1 사용량을 수정하여 제2 사용량을 생성하는 단계 및 상기 제2 사용량과 상기 문턱 값들을 비교하여 상기 프로세서의 상기 동작 주파수를 결정하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 제2 사용량과 상기 문턱 값들을 비교하여 상기 프로세서의 상기 동작 주파수를 결정하는 단계는, 미리 결정된 동작 주파수들 중에서 상기 프로세서의 상기 동작 주파수를 결정하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 동작 주파수에 기초하여 상기 프로세서의 상기 동작 전압을 결정하는 단계는, 상기 미리 결정된 동작 주파수들에 상응하는 미리 결정된 동작 전압들 중에서 상기 프로세서의 동작 전압을 결정하는 단계를 포함할 수 있다.
종래에는 그래픽 프로세서(GPU)의 주 역할이 그래픽 라이브러리(OPENGL)를 이용한 그래픽 태스크(Graphic task)의 수행이었으므로, 종래의 동적 전압 주파수 스케일링 방법은 그래픽 태스크만을 고려하여 문턱 값들을 결정하고, 상기 문턱 값들과 그래픽 프로세서의 사용량과 비교하여 동적으로 그래픽 프로세서의 동작 주파수와 동작 전압을 제어하였다.
현재, 그래픽 프로세서(GPU)의 성능이 급격히 증가하면서 내장형 시스템에서도 그래픽 태스크(Graphic task)가 아닌 컴퓨팅 태스크의 수행이 가능해졌다. 본 발명의 실시예들에 따른 동적 전압 주파수 스케일링 방법은 그래픽 프로세서(GPU)에서 수행되는 컴퓨팅 태스크에 가중치(Weight)를 부가하여 그래픽 프로세서(GPU)의 사용량을 수정하고, 상기 수정된 그래픽 프로세서(GPU)의 사용량과 상기 문턱 값들과 비교하여 동적으로 그래픽 프로세서(GPU)의 동작 주파수와 동작 전압을 제어함으로써, 태스크들의 특성에 가장 적합하게 그래픽 프로세서(GPU)를 동작시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 프로세서의 동적 전압 주파수 스케일링 방법을 나타내는 순서도이다.
도 2는 도 1의 순서도에 포함되는 상기 그래픽 태스크의 양과 상기 컴퓨팅 태스크의 양에 기초하여 상기 제1 사용량을 수정하여 상기 제2 사용량을 생성하는 단계를 나타내는 순서도이다.
도 3은 도 2의 순서도에 포함되는 상기 태스크들이 상기 컴퓨팅 태스크를 포함하는 경우, 상기 제1 사용량을 수정하여 상기 제2 사용량을 생성하는 단계를 나타내는 순서도이다.
도 4는 도 3의 순서도에 포함되는 상기 가중치가 곱해진 컴퓨팅 사용량과 상기 그래픽 사용량을 더하여 상기 제2 사용량을 생성하는 단계를 나타내는 순서도이다.
도 5는 프로세서에서 수행되는 그래픽 태스크들의 일 실시예를 나타내는 그래프이다.
도 6은 프로세서가 도 5의 그래픽 태스크들을 수행하는 경우, 프로세서의 사용량을 나타내는 그래프이다.
도 7은 프로세서에서 수행되는 컴퓨팅 태스크들 및 그래픽 태스크들의 일 실시예를 나타내는 그래프이다.
도 8은 프로세서가 도 7의 컴퓨팅 태스크들 및 그래픽 태스크들을 수행하는 경우, 프로세서의 사용량을 나타내는 그래프이다.
도 9는 프로세서가 도 7의 컴퓨팅 태스크들 및 그래픽 태스크들을 수행하는 경우, 본 발명의 일 실시예에 따른 태스크들의 양과 컴퓨팅 태스크의 양의 비율을 나타내는 그래프이다.
도 10은 프로세서가 도 7의 컴퓨팅 태스크들 및 그래픽 태스크들을 수행하는 경우, 본 발명의 일 실시예에 따른 수정된 프로세서의 제2 사용량을 나타내는 그래프이다.
도 11은 도 1의 순서도에 포함되는 상기 제2 사용량과 상기 문턱 값들을 비교하여 상기 프로세서의 상기 동작 주파수를 결정하는 단계를 나타내는 순서도이다.
도 12는 본 발명의 일 실시예에 따른 프로세서가 도 7의 컴퓨팅 태스크들 및 그래픽 태스크들을 수행하는 경우, 프로세서의 동작 주파수 및 동작 전압을 나타내는 그래프이다.
도 13은 본 발명의 일 실시예에 따른 프로세서의 동적 전압 주파수 스케일링 방법을 나타내는 순서도이다.
도 14는 도 13의 순서도에 포함되는 상기 프로세서의 상기 제1 사용량, 상기 그래픽 태스크의 양, 상기 컴퓨팅 태스크의 양 및 상기 문턱 값들에 기초하여 상기 프로세서의 상기 동작 주파수를 제어하는 단계를 나타내는 순서도이다.
도 15는 본 발명의 일 실시예에 따른 동적 전압 주파수 스케일링 컨트롤러 및 다른 구성 요소들을 포함하는 전자 시스템을 나타내는 블록도이다.
도 16은 본 발명의 일 실시예에 따른 모바일 디바이스를 나타내는 블록도이다.
도 17은 본 발명의 일 실시예에 따른 동적 전압 주파수 스케일링 방법이 구현되는 프로그램 상의 논리적 레벨을 나타내는 도면이다.
도 2는 도 1의 순서도에 포함되는 상기 그래픽 태스크의 양과 상기 컴퓨팅 태스크의 양에 기초하여 상기 제1 사용량을 수정하여 상기 제2 사용량을 생성하는 단계를 나타내는 순서도이다.
도 3은 도 2의 순서도에 포함되는 상기 태스크들이 상기 컴퓨팅 태스크를 포함하는 경우, 상기 제1 사용량을 수정하여 상기 제2 사용량을 생성하는 단계를 나타내는 순서도이다.
도 4는 도 3의 순서도에 포함되는 상기 가중치가 곱해진 컴퓨팅 사용량과 상기 그래픽 사용량을 더하여 상기 제2 사용량을 생성하는 단계를 나타내는 순서도이다.
도 5는 프로세서에서 수행되는 그래픽 태스크들의 일 실시예를 나타내는 그래프이다.
도 6은 프로세서가 도 5의 그래픽 태스크들을 수행하는 경우, 프로세서의 사용량을 나타내는 그래프이다.
도 7은 프로세서에서 수행되는 컴퓨팅 태스크들 및 그래픽 태스크들의 일 실시예를 나타내는 그래프이다.
도 8은 프로세서가 도 7의 컴퓨팅 태스크들 및 그래픽 태스크들을 수행하는 경우, 프로세서의 사용량을 나타내는 그래프이다.
도 9는 프로세서가 도 7의 컴퓨팅 태스크들 및 그래픽 태스크들을 수행하는 경우, 본 발명의 일 실시예에 따른 태스크들의 양과 컴퓨팅 태스크의 양의 비율을 나타내는 그래프이다.
도 10은 프로세서가 도 7의 컴퓨팅 태스크들 및 그래픽 태스크들을 수행하는 경우, 본 발명의 일 실시예에 따른 수정된 프로세서의 제2 사용량을 나타내는 그래프이다.
도 11은 도 1의 순서도에 포함되는 상기 제2 사용량과 상기 문턱 값들을 비교하여 상기 프로세서의 상기 동작 주파수를 결정하는 단계를 나타내는 순서도이다.
도 12는 본 발명의 일 실시예에 따른 프로세서가 도 7의 컴퓨팅 태스크들 및 그래픽 태스크들을 수행하는 경우, 프로세서의 동작 주파수 및 동작 전압을 나타내는 그래프이다.
도 13은 본 발명의 일 실시예에 따른 프로세서의 동적 전압 주파수 스케일링 방법을 나타내는 순서도이다.
도 14는 도 13의 순서도에 포함되는 상기 프로세서의 상기 제1 사용량, 상기 그래픽 태스크의 양, 상기 컴퓨팅 태스크의 양 및 상기 문턱 값들에 기초하여 상기 프로세서의 상기 동작 주파수를 제어하는 단계를 나타내는 순서도이다.
도 15는 본 발명의 일 실시예에 따른 동적 전압 주파수 스케일링 컨트롤러 및 다른 구성 요소들을 포함하는 전자 시스템을 나타내는 블록도이다.
도 16은 본 발명의 일 실시예에 따른 모바일 디바이스를 나타내는 블록도이다.
도 17은 본 발명의 일 실시예에 따른 동적 전압 주파수 스케일링 방법이 구현되는 프로그램 상의 논리적 레벨을 나타내는 도면이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 안 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 구성요소에 대해 사용하였다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면 상의 동일한 구성 요소에 대해서는 동일한 참조 부호를 사용하고 동일한 구성 요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 프로세서의 동적 전압 주파수 스케일링 방법을 나타내는 순서도이다.
도 1을 참조하면, 프로세서가 그래픽 태스크(Graphic task)와 컴퓨팅 태스크(Computing task) 중 적어도 하나를 포함하는 태스크들을 수행하는 경우, 상기 프로세서의 동적 전압 주파수 스케일링(Dynamic Voltage Frequency Scaling) 방법은, 상기 프로세서의 제1 사용량을 측정하는 단계(단계 S110), 상기 그래픽 태스크의 양과 상기 컴퓨팅 태스크의 양에 기초하여 상기 제1 사용량을 수정하여 제2 사용량을 생성하는 단계(단계 S120) 및 상기 제2 사용량과 문턱 값들을 비교하여 상기 프로세서의 동작 주파수를 결정하는 단계(단계 S130)를 포함한다.
그래픽 태스크(Graphic task)는 그래픽 라이브러리를 사용하여 영상 생성을 위해 프로세서를 사용하는 태스크를 지칭하고, 컴퓨팅 태스크(Computing task)는 영상 생성 외의 목적으로 프로세서를 사용하는 태스크를 지칭한다.
상기 프로세서는 그래픽스 프로세싱 유닛(Graphics Processing Unit) 또는 일반 컴퓨팅 프로세싱 유닛(Computing Processing Unit)일 수 있다. 상기 프로세서는 상기 그래픽 태스크와 상기 컴퓨팅 태스크를 오픈 씨엘(OPEN CL)을 사용하여 수행할 수 있다.
오픈 씨엘(OPEN CL)은 애플 사가 처음 제안한 병렬 컴퓨팅(Parallel computing)을 위한 오픈 프레임 워크(Open framework)를 말한다. 오픈 씨엘(OPEN CL)은 CPU(Computing Processing Unit), GPU(Graphic Processing Unit), DSP(Digital Signal Processor) 등의 다양한 프로세서들로 구성된 이질적 플랫폼(Heterogeneous platform)에서 프로세서들을 활용하는 프로그램을 작성할 수 있도록 도와줄 수 있다. 현재, 다양한 모바일 그래픽 프로세서(GPU)들이 오픈 씨엘(OPEN CL)을 지원하고 있다.
상기 프로세서의 상기 제1 사용량을 측정하는 단계(S110)는, 상기 프로세서에서 동작하는 운영 시스템(Operating system)에서 전압 주파수 스케일링 이벤트(DVFS EVENT)가 발생한 경우 수행될 수 있다.
일 실시예에 있어서, 상기 운영 시스템은 수 ms에서 수백 ms 간격으로 정기적으로 상기 프로세서의 전압 주파수 스케일링 이벤트들(DVFS EVENTS)을 생성하고, 상기 프로세서에 전달할 수 있다.
상기 그래픽 태스크의 양과 상기 컴퓨팅 태스크의 양에 기초하여 상기 제1 사용량을 수정하여 상기 제2 사용량을 생성하는 단계(S110)는 도 2를 참조하여 후술하고, 상기 제2 사용량과 상기 문턱 값들을 비교하여 상기 프로세서의 상기 동작 주파수를 결정하는 단계(S130)는 도 11을 참조하여 후술한다.
도 2는 도 1의 순서도에 포함되는 상기 그래픽 태스크의 양과 상기 컴퓨팅 태스크의 양에 기초하여 상기 제1 사용량을 수정하여 상기 제2 사용량을 생성하는 단계를 나타내는 순서도이다.
도 2를 참조하면, 상기 그래픽 태스크의 양과 상기 컴퓨팅 태스크의 양에 기초하여 상기 제1 사용량을 수정하여 상기 제2 사용량을 생성하는 단계(S120)는, 상기 태스크들이 상기 컴퓨팅 태스크를 포함하지 않는 경우, 상기 제1 사용량을 갖는 상기 제2 사용량을 생성하는 단계(단계 S121) 및 상기 태스크들이 상기 컴퓨팅 태스크를 포함하는 경우, 상기 제1 사용량을 수정하여 상기 제2 사용량을 생성하는 단계(단계 S122)를 포함할 수 있다.
상기 태스크들이 상기 컴퓨팅 태스크를 포함하지 않는 경우(S121)에는, 종래의 동적 전압 주파수 스케일링 방법을 사용하면 되므로 상기 프로세서의 상기 사용량을 수정할 필요가 없다. 이 경우, 프로세서의 동작 주파수 및 동작 전압은 변경되지 않는다.
상기 태스크들이 상기 컴퓨팅 태스크를 포함하는 경우, 상기 제1 사용량을 수정하여 상기 제2 사용량을 생성하는 단계(S122)는 도 3을 참조하여 후술한다.
도 3은 도 2의 순서도에 포함되는 상기 태스크들이 상기 컴퓨팅 태스크를 포함하는 경우, 상기 제1 사용량을 수정하여 상기 제2 사용량을 생성하는 단계를 나타내는 순서도이다.
도 3을 참조하면, 상기 태스크들이 상기 컴퓨팅 태스크를 포함하는 경우, 상기 제1 사용량을 수정하여 상기 제2 사용량을 생성하는 단계(S122)는, 상기 태스크들의 양과 상기 컴퓨팅 태스크의 양의 비율에 상기 사용량을 곱하여 컴퓨팅 사용량을 계산하는 단계(단계 S123), 상기 태스크들의 양과 상기 그래픽 태스크의 양의 비율에 상기 사용량을 곱하여 그래픽 사용량을 계산하는 단계(단계 S124), 상기 컴퓨팅 사용량에 가중치(Weight)를 곱하는 단계(단계 S125) 및 상기 가중치가 곱해진 컴퓨팅 사용량과 상기 그래픽 사용량을 더하여 상기 제2 사용량을 생성하는 단계(단계 S126)를 포함할 수 있다.
상기 태스크들이 상기 컴퓨팅 태스크를 포함하는 경우, 상기 제1 사용량을 수정하여 상기 제2 사용량을 생성하는 단계(S122)에 포함되는 상기 단계들에 대하여 도 10을 참조하여 자세하게 후술한다.
도 4는 도 3의 순서도에 포함되는 상기 가중치가 곱해진 컴퓨팅 사용량과 상기 그래픽 사용량을 더하여 상기 제2 사용량을 생성하는 단계를 나타내는 순서도이다.
도 4를 참조하면, 상기 가중치가 곱해진 컴퓨팅 사용량과 상기 그래픽 사용량을 더하여 상기 제2 사용량을 생성하는 단계(단계 S126)는, 상기 가중치가 곱해진 컴퓨팅 사용량과 상기 그래픽 사용량을 더하여 제3 사용량(AU)을 생성하는 단계(단계 S127), 상기 제3 사용량(AU)이 한계 사용량(LU) 이상인 경우(S128: YES), 상기 제2 사용량(MU)을 상기 한계 사용량(LU)으로 결정하는 단계(단계 S129a) 및 상기 제3 사용량(AU)이 상기 한계 사용량(LU) 미만인 경우(S128: NO), 상기 제2 사용량(MU)을 상기 제3 사용량(AU)으로 결정하는 단계(단계 S129b)를 포함할 수 있다.
도 5는 프로세서에서 수행되는 그래픽 태스크들의 일 실시예를 나타내는 그래프이다.
도 5를 참조하면, 프로세서는 0ms에서 26ms까지 제1 그래픽 태스크(GT1) 및 제2 그래픽 태스크(GT2)를 수행한다. 0ms에서 3ms까지, 프로세서는 유휴 (IDLE) 상태를 가지며, 태스크를 수행하지 않는다. 3ms에서 6ms까지, 프로세서는 제1 그래픽 태스크(GT1)를 수행한다. 6ms에서 23ms까지, 프로세서는 유휴 상태를 가지며, 태스크를 수행하지 않는다. 23ms에서 26ms까지, 프로세서는 제2 그래픽 태스크(GT2)를 수행한다.
프로세서에서 동작하는 운영 체제(OS)는 4ms에서 제1 DVFS 이벤트(DE1)를 생성한다. 프로세서에서 동작하는 운영 체제(OS)는 8ms에서 제2 DVFS 이벤트(DE2)를 생성한다. 프로세서에서 동작하는 운영 체제(OS)는 12ms에서 제3 DVFS 이벤트(DE3)를 생성한다. 프로세서에서 동작하는 운영 체제(OS)는 16ms에서 제4 DVFS 이벤트(DE4)를 생성한다. 프로세서에서 동작하는 운영 체제(OS)는 20ms에서 제5 DVFS 이벤트(DE5)를 생성한다. 프로세서에서 동작하는 운영 체제(OS)는 24ms에서 제6 DVFS 이벤트(DE6)를 생성한다. DVFS 이벤트들(DE1 내지 DE6)은 도 6, 7, 8, 9, 10 및 12에서 동일하게 사용된다.
도 6은 프로세서가 도 5의 그래픽 태스크들을 수행하는 경우, 프로세서의 사용량을 나타내는 그래프이다.
도 6을 참조하면, 프로세서의 사용량(Utilization)은 프로세서의 전체 구동 시간과 프로세서가 태스크들을 수행하는 시간의 비율일 수 있다.
제1 DVFS 이벤트(DE1)가 발생한 4ms에서, 프로세서의 전체 구동 시간은 4ms이고, 4ms까지 프로세서에서 동작한 제1 그래픽 태스크(GT1)의 수행 시간은 1ms이므로, 4ms에서의 프로세서의 사용량은 0.250이다. 제2 DVFS 이벤트(DE2)가 발생한 8ms에서, 프로세서의 전체 구동 시간은 8ms이고, 8ms까지 프로세서에서 동작한 제1 그래픽 태스크(GT1)의 수행 시간은 3ms이므로, 8ms에서의 프로세서의 사용량은 0.375이다. 제3 DVFS 이벤트(DE3)가 발생한 12ms에서, 프로세서의 전체 구동 시간은 12ms이고, 12ms까지 프로세서에서 동작한 제1 그래픽 태스크(GT1)의 수행 시간은 3ms이므로, 12ms에서의 프로세서의 사용량은 0.250이다. 제4 DVFS 이벤트(DE4)가 발생한 16ms에서, 프로세서의 전체 구동 시간은 16ms이고, 16ms까지 프로세서에서 동작한 제1 그래픽 태스크(GT1)의 수행 시간은 3ms이므로, 16ms에서의 프로세서의 사용량은 0.188이다. 제5 DVFS 이벤트(DE5)가 발생한 20ms에서, 프로세서의 전체 구동 시간은 20ms이고, 20ms까지 프로세서에서 동작한 제1 그래픽 태스크(GT1)의 수행 시간은 3ms이므로, 20ms에서의 프로세서의 사용량은 0.150이다. 제6 DVFS 이벤트(DE6)가 발생한 24ms에서, 프로세서의 전체 구동 시간은 24ms이고, 24ms까지 프로세서에서 동작한 제1 그래픽 태스크(GT1) 및 제2 그래픽 태스크(GT2)의 수행 시간은 4ms이므로, 24ms에서의 프로세서의 사용량은 0.167이다.
도 7은 프로세서에서 수행되는 컴퓨팅 태스크들 및 그래픽 태스크들의 일 실시예를 나타내는 그래프이다.
도 7을 참조하면, 프로세서는 0ms에서 26ms까지 제1 그래픽 태스크(GT1), 제2 그래픽 태스크(GT2), 제3 그래픽 태스크(GT3), 제1 컴퓨팅 태스크(CT1) 및 제2 컴퓨팅 태스크(CT2)를 수행한다. 0ms에서 3ms까지, 프로세서는 유휴 (IDLE) 상태를 가지며, 태스크를 수행하지 않는다. 3ms에서 6ms까지, 프로세서는 제1 그래픽 태스크(GT1)를 수행한다. 6ms에서 8ms까지, 프로세서는 제1 컴퓨팅 태스크(CT1)를 수행한다. 8ms에서 11ms까지, 프로세서는 제2 그래픽 태스크(GT2)를 수행한다. 11ms에서 14ms까지, 프로세서는 제2 컴퓨팅 태스크(CT2)를 수행한다. 14ms에서 23ms까지, 프로세서는 유휴 (IDLE) 상태를 가지며, 태스크를 수행하지 않는다. 23ms에서 26ms까지, 프로세서는 제3 그래픽 태스크(GT3)를 수행한다.
도 8은 프로세서가 도 7의 컴퓨팅 태스크들 및 그래픽 태스크들을 수행하는 경우, 프로세서의 사용량을 나타내는 그래프이다.
도 7및 8을 참조하면, 제1 DVFS 이벤트(DE1)가 발생한 4ms에서, 프로세서의 전체 구동 시간은 4ms이고, 4ms까지 프로세서에서 동작한 제1 그래픽 태스크(GT1)의 수행 시간은 1ms이므로, 4ms에서의 프로세서의 제1 사용량은 0.250 (1/4)이다. 제2 DVFS 이벤트(DE2)가 발생한 8ms에서, 프로세서의 전체 구동 시간은 8ms이고, 8ms까지 프로세서에서 동작한 제1 그래픽 태스크(GT1)의 수행 시간은 3ms, 제1 컴퓨팅 태스크(CT1)의 수행시간은 2ms이므로, 8ms에서의 프로세서의 제1 사용량은 0.625 (5/8)이다. 제3 DVFS 이벤트(DE3)가 발생한 12ms에서, 프로세서의 전체 구동 시간은 12ms이고, 12ms까지 프로세서에서 동작한 제1 그래픽 태스크(GT1)의 수행 시간은 3ms, 제1 컴퓨팅 태스크(CT1)의 수행 시간은 2ms, 제2 그래픽 태스크(CT2)의 수행 시간은 3ms, 제2 컴퓨팅 태스크(CT2)의 수행 시간은 1ms이므로, 12ms에서의 프로세서의 제1 사용량은 0.750 (9/12)이다. 제4 DVFS 이벤트(DE4)가 발생한 16ms에서, 프로세서의 전체 구동 시간은 16ms이고, 16ms까지 프로세서에서 동작한 제1 그래픽 태스크(GT1)의 수행 시간은 3ms, 제1 컴퓨팅 태스크(CT1)의 수행 시간은 2ms, 제2 그래픽 태스크(GT2)의 수행 시간은 3ms, 제2 컴퓨팅 태스크(CT2)의 수행 시간은 3ms이므로, 16ms에서의 프로세서의 제1 사용량은 0.688 (11/16)이다. 제5 DVFS 이벤트(DE5)가 발생한 20ms에서, 프로세서의 전체 구동 시간은 20ms이고, 20ms까지 프로세서에서 동작한 제1 그래픽 태스크(GT1)의 수행 시간은 3ms, 제1 컴퓨팅 태스크(CT1)의 수행 시간은 2ms, 제2 그래픽 태스크(GT2)의 수행 시간은 3ms, 제2 컴퓨팅 태스크(CT2)의 수행 시간은 3ms이므로, 20ms에서의 프로세서의 제1 사용량은 0.550 (11/20)이다. 제6 DVFS 이벤트(DE6)가 발생한 24ms에서, 프로세서의 전체 구동 시간은 24ms이고, 24ms까지 프로세서에서 동작한 제1 그래픽 태스크(GT1)의 수행 시간은 3ms, 제1 컴퓨팅 태스크(CT1)의 수행 시간은 2ms, 제2 그래픽 태스크(GT2)의 수행 시간은 3ms, 제2 컴퓨팅 태스크(CT2)의 수행 시간은 3ms, 제3 그래픽 태스크(GT3)의 수행 시간은 1ms이므로, 24ms에서의 프로세서의 제1 사용량은 0.500 (12/24)이다.
도 9는 프로세서가 도 7의 컴퓨팅 태스크들 및 그래픽 태스크들을 수행하는 경우, 본 발명의 일 실시예에 따른 태스크들의 양과 컴퓨팅 태스크의 양의 비율을 나타내는 그래프이다.
도 9를 참조하면, 제1 실시예에 있어서, 태스크들의 양은 태스크들의 프로세서 상의 수행 시간이고, 그래픽 태스크의 양은 그래픽 태스크의 프로세서 상의 수행 시간이고, 컴퓨팅 태스크의 양은 컴퓨팅 태스크의 프로세서 상의 수행 시간일 수 있다. 도 9는 상기 제1 실시예의 경우를 상세하게 도시한다.
제2 실시예에 있어서, 태스크들의 양은 태스크들에 포함되는 태스크 유닛들의 개수이고, 그래픽 태스크의 양은 그래픽 태스크에 포함되는 태스크 유닛들의 개수이고, 컴퓨팅 태스크의 양은 컴퓨팅 태스크에 포함되는 태스크 유닛들의 개수일 수 있다. 상기 제2 실시예에 대한 도시는 생략되었다.
도 9는 도 3의 순서도에 포함되는 상기 태스크들의 양과 상기 컴퓨팅 태스크의 양의 비율에 상기 사용량을 곱하여 컴퓨팅 사용량을 계산하는 단계(S123)가 도 7의 태스크들에 적용되는 실시예를 보여준다.
제1 DVFS 이벤트(DE1)가 발생한 4ms까지 프로세서 상 제1 그래픽 태스크(GT1)의 수행 시간은 1ms이고, 4ms까지 프로세서 상 컴퓨팅 태스크는 없으므로, 이는 상기 태스크들이 상기 컴퓨팅 태스크를 포함하지 않는 경우, 상기 제1 사용량을 갖는 상기 제2 사용량을 생성하는 단계(S121)에 해당되고, 4ms에서의 태스크들 중 컴퓨팅 태스크의 비율(Ratio) 및 컴퓨팅 사용량은 계산되지 않는다. 제2 DVFS 이벤트(DE2)가 발생한 8ms까지 프로세서 상 제1 그래픽 태스크(GT1)의 수행 시간은 3ms이고, 8ms까지 프로세서 상 제1 컴퓨팅 태스크(CT1)의 수행 시간은 2ms이므로, 8ms에서의 태스크들 중 컴퓨팅 태스크의 비율(Ratio)은 0.400 (2/5)이고, 8ms의 제1 사용량 0.625에 8ms의 컴퓨팅 태스크의 비율(Ratio) 0.4를 곱한 8ms의 컴퓨팅 사용량은 0.250이다. 제3 DVFS 이벤트(DE3)가 발생한 12ms까지 프로세서 상 제1 그래픽 태스크(GT1)의 수행 시간은 3ms, 제2 그래픽 태스크(GT2)의 수행 시간은 3ms이고, 12ms까지 프로세서 상 제1 컴퓨팅 태스크(CT1)의 수행 시간은 2ms, 제2 컴퓨팅 태스크(CT2)의 수행 시간은 1ms이므로, 12ms에서의 태스크들 중 컴퓨팅 태스크의 비율(Ratio)은 0.333 (3/9)이고, 12ms의 제1 사용량 0.750에 12ms의 컴퓨팅 태스크의 비율(Ratio) 0.333을 곱한 12ms의 컴퓨팅 사용량은 0.250이다. 제4 DVFS 이벤트(DE4)가 발생한 16ms까지 프로세서 상 제1 그래픽 태스크(GT1)의 수행 시간은 3ms, 제2 그래픽 태스크(GT2)의 수행 시간은 3ms이고, 16ms까지 프로세서 상 제1 컴퓨팅 태스크(CT1)의 수행 시간은 2ms, 제2 컴퓨팅 태스크(CT2)의 수행 시간은 3ms이므로, 16ms에서의 태스크들 중 컴퓨팅 태스크의 비율(Ratio)은 0.455 (5/11)이고, 16ms의 제1 사용량 0.688에 16ms의 컴퓨팅 태스크의 비율(Ratio) 0.455를 곱한 16ms의 컴퓨팅 사용량은 0.313이다. 제5 DVFS 이벤트(DE5)가 발생한 20ms까지 프로세서에서 동작한 제1 그래픽 태스크(GT1)의 수행 시간은 3ms, 제2 그래픽 태스크(GT2)의 수행 시간은 3ms이고, 20ms까지 프로세서에서 동작한 제1 컴퓨팅 태스크(CT1)의 수행 시간은 2ms, 제2 컴퓨팅 태스크(CT2)의 수행 시간은 3ms이므로, 20ms에서의 태스크들 중 컴퓨팅 태스크의 비율(Ratio)은 0.455 (5/11)이고, 20ms의 제1 사용량 0.550에 20ms의 컴퓨팅 태스크의 비율(Ratio) 0.455를 곱한 20ms의 컴퓨팅 사용량은 0.250이다. 제6 DVFS 이벤트(DE6)가 발생한 24ms까지 프로세서에서 동작한 제1 그래픽 태스크(GT1)의 수행 시간은 3ms, 제2 그래픽 태스크(GT2)의 수행 시간은 3ms, 제3 그래픽 태스크(GT3)의 수행 시간은 1ms이고, 24ms까지 프로세서에서 동작한 제1 컴퓨팅 태스크(CT1)의 수행 시간은 2ms, 제2 컴퓨팅 태스크(CT2)의 수행 시간은 3ms이므로, 24ms에서의 태스크들 중 컴퓨팅 태스크의 비율(Ratio)은 0.417 (5/12)이고, 24ms의 제1 사용량 0.500에 24ms의 컴퓨팅 태스크의 비율(Ratio) 0.417을 곱한 24ms의 컴퓨팅 사용량은 0.209이다.
도 3의 순서도에 포함되는 상기 태스크들의 양과 상기 그래픽 태스크의 양의 비율에 상기 사용량을 곱하여 그래픽 사용량을 계산하는 단계(S124)는 상기 태스크들의 양과 상기 컴퓨팅 태스크의 양의 비율에 상기 사용량을 곱하여 컴퓨팅 사용량을 계산하는 단계(S123)에 기초하여 이해할 수 있으므로 설명을 생략한다.
도 10은 프로세서가 도 7의 컴퓨팅 태스크들 및 그래픽 태스크들을 수행하는 경우, 본 발명의 일 실시예에 따른 수정된 프로세서의 제2 사용량을 나타내는 그래프이다.
도 10은 도 3의 순서도에 포함되는 상기 컴퓨팅 사용량에 가중치(Weight)를 곱하는 단계(S125), 상기 가중치가 곱해진 컴퓨팅 사용량과 상기 그래픽 사용량을 더하여 상기 제2 사용량을 생성하는 단계(S126)가 도 7의 태스크들에 적용되는 실시예를 보여준다. 도 10은 가중치가 1.5인 경우를 도시한다. 다른 실시예에 있어서, 가중치는 사용자에 의해 임의적으로 미리 정해질 수 있다.
상기 단계들(S125, S126)의 수행 결과, 제1 DVFS 이벤트(DE1)가 발생한 4ms에서 제2 사용량(MODIFIED UTILIZATION)은 0.250의 값을 가지고, 제2 DVFS 이벤트(DE2)가 발생한 8ms에서 제2 사용량은 0.750의 값을 가지고, 제3 DVFS 이벤트(DE3)가 발생한 12ms에서 제2 사용량은 0.874의 값을 가지고, 제4 DVFS 이벤트(DE4)가 발생한 16ms에서 제2 사용량은 0.844의 값을 가지고, 제5 DVFS 이벤트(DE5)가 발생한 20ms에서 제2 사용량은 0.675의 값을 가지고, 제6 DVFS 이벤트(DE6)가 발생한 24ms에서 제2 사용량은 0.604의 값을 가질 수 있다.
도 11은 도 1의 순서도에 포함되는 상기 제2 사용량과 상기 문턱 값들을 비교하여 상기 프로세서의 상기 동작 주파수를 결정하는 단계를 나타내는 순서도이다.
도 11을 참조하면, 상기 제2 사용량과 상기 문턱 값들을 비교하여 상기 프로세서의 상기 동작 주파수를 결정하는 단계(S130)는, 제2 사용량(MU)이 제1 문턱 값(TH1)보다 작은 경우(단계 S131: YES), 상기 프로세서의 상기 동작 주파수를 감소시키는 단계(단계 S133)를 포함할 수 있다.
제2 사용량(MU)이 제1 문턱 값(TH1)보다 작은 경우, 상기 프로세서의 상기 동작 주파수를 감소시키는 단계(S133)는, 상기 동작 주파수가 상기 프로세서의 최소 동작 주파수인 경우, 상기 동작 주파수를 유지하는 단계(단계 S136)를 포함할 수 있다.
상기 제2 사용량과 상기 문턱 값들을 비교하여 상기 프로세서의 상기 동작 주파수를 결정하는 단계(S130)는, 제2 사용량(MU)이 제2 문턱 값(TH2) 이상인 경우(S131: NO, 단계 S132: YES), 상기 프로세서의 상기 동작 주파수를 증가시키는 단계(단계 S134)를 더 포함할 수 있다.
제2 사용량(MU)이 제2 문턱 값(TH2) 이상인 경우, 상기 프로세서의 상기 동작 주파수를 증가시키는 단계(S134)는, 상기 동작 주파수가 상기 프로세서의 최대 동작 주파수인 경우, 상기 동작 주파수를 유지하는 단계(단계 S137)를 포함할 수 있다.
상기 제2 사용량과 상기 문턱 값들을 비교하여 상기 프로세서의 상기 동작 주파수를 결정하는 단계(S130)는, 제2 사용량(MU)이 제1 문턱 값(TH1) 이상이고(S131: NO), 제2 사용량(MU)이 제2 문턱 값(TH2)보다 작은 경우(S132: NO), 상기 프로세서의 상기 동작 주파수를 유지하는 단계(단계 S135)를 더 포함할 수 있다.
상기 문턱 값들은 복수의 그래픽 태스크 벤치마크 프로그램들에 의해 미리 결정될 수 있다. 3D Mark, BaseMarkOSII 및 BasemarkX 등이 상기 그래픽 태스크 벤치마크 프로그램들의 실시예들일 수 있다.
도 12는 본 발명의 일 실시예에 따른 프로세서가 도 7의 컴퓨팅 태스크들 및 그래픽 태스크들을 수행하는 경우, 프로세서의 동작 주파수 및 동작 전압을 나타내는 그래프이다.
도 10 내지 12는 제1 문턱 값(TH1)이 0.3, 제2 문턱 값(TH2)이 0.8인 경우를 도시한다.
제1 DVFS 이벤트(DE1)가 발생한 4ms에서 제2 사용량(MODIFIED UTILIZATION)은 0.25이므로, 제2 사용량(MU)이 제1 문턱 값(TH1)보다 작은 경우(단계 S131: YES)에 해당한다. 상기 프로세서의 상기 동작 주파수를 감소시키는 단계(단계 S133)에서 프로세서의 동작 주파수는 디폴트 동작 주파수인 제2 동작 주파수(200MHz)에서 제1 동작 주파수(100MHz)로 감소될 수 있다. 프로세서의 동작 전압은 제2 동작 주파수(200MHz)에 상응하는 제2 동작 전압(V2)에서 제1 동작 주파수(100MHz)에 상응하는 제1 동작 전압(V1)으로 감소될 수 있다.
제2 DVFS 이벤트(DE2)가 발생한 8ms에서 제2 사용량(MODIFIED UTILIZATION)은 0.75이므로, 제2 사용량(MU)이 제1 문턱 값(TH1) 이상이고(S131: NO), 제2 사용량(MU)이 제2 문턱 값(TH2)보다 작은 경우(S132: NO), 상기 프로세서의 상기 동작 주파수를 유지하는 단계(S135)에서 프로세서의 동작 주파수 및 동작 전압은 제1 동작 주파수(100MHz) 및 제1 동작 전압(V1)으로 유지될 수 있다.
제3 DVFS 이벤트(DE3)가 발생한 12ms에서 제3 사용량(MODIFIED UTILIZATION)은 0.874이므로, 제2 사용량(MU)이 제2 문턱 값(TH2) 이상인 경우(S131: NO, 단계 S132: YES), 상기 프로세서의 상기 동작 주파수를 증가시키는 단계(단계 S134)에서 프로세서의 동작 주파수는 제1 동작 주파수(100MHz)에서 제2 동작 주파수(200MHz)로 증가될 수 있다. 프로세서의 동작 전압은 제1 동작 주파수(100MHz)에 상응하는 제1 동작 전압(V1)에서 제2 동작 주파수(200MHz)에 상응하는 제2 동작 전압(V2)으로 증가될 수 있다.
제4 DVFS 이벤트(DE4)가 발생한 16ms에서 제2 사용량(MODIFIED UTILIZATION)은 0.844이므로, 제2 사용량(MU)이 제2 문턱 값(TH2) 이상인 경우(S131: NO, 단계 S132: YES), 상기 프로세서의 상기 동작 주파수를 증가시키는 단계(단계 S134)에서 프로세서의 동작 주파수는 제2 동작 주파수(200MHz)에서 제3 동작 주파수(300MHz)로 증가될 수 있다. 프로세서의 동작 전압은 제2 동작 주파수(200MHz)에 상응하는 제2 동작 전압(V2)에서 제3 동작 주파수(300MHz)에 상응하는 제3 동작 전압(V3)으로 증가될 수 있다.
제5 DVFS 이벤트(DE5)가 발생한 20ms에서 제2 사용량(MODIFIED UTILIZATION)은 0.675이므로, 제2 사용량(MU)이 제1 문턱 값(TH1) 이상이고(S131: NO), 제2 사용량(MU)이 제2 문턱 값(TH2)보다 작은 경우(S132: NO), 상기 프로세서의 상기 동작 주파수를 유지하는 단계(S135)에서 프로세서의 동작 주파수 및 동작 전압은 제3 동작 주파수(300MHz) 및 제3 동작 전압(V3)으로 유지될 수 있다.
제6 DVFS 이벤트(DE6)가 발생한 24ms에서 제2 사용량(MODIFIED UTILIZATION)은 0.604 이므로, 제2 사용량(MU)이 제1 문턱 값(TH1) 이상이고(S131: NO), 제2 사용량(MU)이 제2 문턱 값(TH2)보다 작은 경우(S132: NO), 상기 프로세서의 상기 동작 주파수를 유지하는 단계(S135)에서 프로세서의 동작 주파수 및 동작 전압은 제3 동작 주파수(300MHz) 및 제3 동작 전압(V3)으로 유지될 수 있다.
도 13은 본 발명의 일 실시예에 따른 프로세서의 동적 전압 주파수 스케일링 방법을 나타내는 순서도이다.
도 13을 참조하면, 프로세서의 동적 전압 주파수 스케일링(Dynamic Voltage Frequency Scaling) 방법은, 상기 프로세서가 그래픽 태스크(Graphic task)와 컴퓨팅 태스크(Computing task) 중 적어도 하나를 포함하는 태스크들을 수행하는 경우, 상기 프로세서의 제1 사용량, 상기 그래픽 태스크의 양, 상기 컴퓨팅 태스크의 양 및 문턱 값들에 기초하여 상기 프로세서의 동작 주파수를 제어하는 단계 (단계 S210) 및 상기 동작 주파수에 기초하여 상기 프로세서의 동작 전압을 결정하는 단계 (단계 S220)를 포함한다.
도 14는 도 13의 순서도에 포함되는 상기 프로세서의 상기 제1 사용량, 상기 그래픽 태스크의 양, 상기 컴퓨팅 태스크의 양 및 상기 문턱 값들에 기초하여 상기 프로세서의 상기 동작 주파수를 제어하는 단계를 나타내는 순서도이다.
도 14를 참조하면, 상기 프로세서의 상기 제1 사용량, 상기 그래픽 태스크의 양, 상기 컴퓨팅 태스크의 양 및 상기 문턱 값들에 기초하여 상기 프로세서의 상기 동작 주파수를 제어하는 단계 (단계 S210)는, 상기 프로세서의 상기 제1 사용량을 측정하는 단계 (단계 S211), 상기 그래픽 태스크의 양과 상기 컴퓨팅 태스크의 양에 기초하여 상기 제1 사용량을 수정하여 제2 사용량을 생성하는 단계 (단계 S212) 및 상기 제2 사용량과 상기 문턱 값들을 비교하여 상기 프로세서의 상기 동작 주파수를 결정하는 단계 (단계 S213)를 포함할 수 있다.
상기 제2 사용량과 상기 문턱 값들을 비교하여 상기 프로세서의 상기 동작 주파수를 결정하는 단계(S213)는, 미리 결정된 동작 주파수들 중에서 상기 프로세서의 상기 동작 주파수를 결정하는 단계(단계 S214)를 포함할 수 있다.
상기 동작 주파수에 기초하여 상기 프로세서의 상기 동작 전압을 결정하는 단계(S220)는, 상기 미리 결정된 동작 주파수들에 상응하는 미리 결정된 동작 전압들 중에서 상기 프로세서의 동작 전압을 결정하는 단계(S221)를 포함할 수 있다.
상기 단계들(S211, S212, S213, S214 및 S221)은 도 7 내지 12를 참조하여 이해할 수 있으므로 설명을 생략한다.
도 15는 본 발명의 일 실시예에 따른 동적 전압 주파수 스케일링 컨트롤러 및 다른 구성 요소들을 포함하는 전자 시스템을 나타내는 블록도이다.
도 15를 참조하면, 전자 시스템(100)은 응용 프로세서(110), 메모리 장치(120) 및 디스플레이 장치(130)를 포함할 수 있다. 전자 시스템(100)은 이동 전화기, 스마트폰, 태블릿 컴퓨터(tablet computer), PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PDN(personal navigation device 또는 portable navigation device), 손으로 들고 다닐 수 있는 게임 콘솔(handheld game console), 또는 e-북(e-book)과 같이 손으로 들고 다닐 수 있는 장치(handheld device)로 구현될 수 있다.
응용 프로세서(110)는 CPU 코어(111), 전력 관리부(112), 클럭 관리부(CMU; 113), 디스플레이 컨트롤러(118), 타이머(115), 메모리 컨트롤러(114) 및 가속기(119)를 포함할 수 있다.
CPU 코어(111)는 메모리 장치(120)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다. 예컨대, CPU 코어(111)는 클럭 신호 발생기(미도시)로부터 출력된 클락 신호에 응답하여 상기 프로그램들 및/또는 상기 데이터를 처리 또는 실행할 수 있다.
CPU 코어(111)는 멀티-코어 프로세서(multi-core processor)로 구현될 수 있다. 상기 멀티-코어 프로세서는 두 개 또는 그 이상의 독립적인 실질적인 프로세서들('코어들(cores)'이라고 불림)을 갖는 하나의 컴퓨팅 컴포넌트(computing component)이고, 상기 프로세서들 각각은 프로그램 명령들(program instructions)을 읽고 실행할 수 있다. 상기 멀티-코어 프로세서는 다수의 가속기를 동시에 구동할 수 있으므로, 상기 멀티-코어 프로세서를 포함하는 데이터 처리 시스템은 멀티-가속(multi-acceleration)을 수행할 수 있다.
메모리 장치(120)에 저장된 프로그램들 및/또는 데이터는 필요에 따라 CPU 코어(111)의 메모리에 로드(load)될 수 있다. 메모리 장치(120)는 ROM 및 RAM을 포함할 수 있다. ROM은 영구적인 프로그램들 및/또는 데이터를 저장할 수 있다. ROM은 EPROM(erasable programmable read-only memory) 또는 EEPROM(electrically erasable programmable read-only memory)으로 구현될 수 있다. RAM은 프로그램들, 데이터, 또는 명령들(instructions)을 일시적으로 저장할 수 있다.
가속기(119)는 멀티미디어 또는 멀티미디어 데이터, 예컨대 텍스트 (text), 오디오(audio), 정지 영상들(still images), 애니메이션(animation), 비디오(video), 2차원 데이터, 또는 3차원 데이터의 처리 성능을 향상시키기 위한 하드웨어 장치 또는 코-프로세서(co-processor)를 의미할 수 있다.
클럭 관리부(113)는 동작 클럭 신호를 생성한다. 클럭 관리부(113)는 위상 동기 루프 회로(PLL : Phase Locked Loop), 지연 동기 루프(DLL : Delayed Locked Loop), 수정자(crystal)등의 클럭 생성 장치로 이루어질 수 있다. 동작 클럭 신호는 CPU 코어(111)로 공급될 수 있다. 물론 동작 클럭 신호는 다른 구성요소로 공급될 수도 있다. 클럭 관리부(113)는 DVFS 컨트롤러(117)의 제어에 따라 동작 클럭 신호의 주파수를 변경할 수 있다. 예컨대, DVFS 컨트롤러(117)는 도 1의 프로세서의 동적 전압 주파수 스케일링 방법 또는 도 13의 프로세서의 동적 전압 주파수 스케일링 방법에 따라 클럭 관리부(113)를 제어할 수 있다. 이에 따라, 클럭 관리부(113)는 DVFS 컨트롤러(117)의 제어를 받아 동작 클럭 신호의 주파수를 변경할 수 있다.
전력 관리부(112)는 DVFS 컨트롤러(117)의 제어를 받아 응용 프로세서(110)의 복수의 파워 도메인들에 제공되는 전력의 공급/차단을 제어할 수 있다.
메모리 컨트롤러(114)는 메모리 장치(120)와 인터페이스하기 위한 블록이다. 메모리 컨트롤러(114)는 메모리 장치(120)의 동작을 전반적으로 제어하며, 또한 호스트와 메모리 장치(120)간의 제반 데이터 교환을 제어한다. 예컨대, 메모리 컨트롤러(114)는 호스트의 요청에 따라 메모리 장치(120)를 제어하여 메모리 장치(120)에 데이터를 쓰거나 메모리 장치(120)로부터 데이터를 독출한다. 여기서, 호스트는 CPU 코어(111), 가속기(119), 디스플레이 컨트롤러(118)와 같은 마스터 장치일 수 있다.
메모리 장치(120)는 데이터를 저장하기 위한 저장 장소로서, OS(Operating System), 각종 프로그램들, 및 각종데이터를 저장할 수 있다. 메모리 장치(120)는 DRAM 일수 있으나, 이에 한정되는 것은 아니다. 예컨대, 메모리 장치(120)는 비휘발성 메모리 장치(플래시 메모리, PRAM, MRAM, ReRAM, 또는 FeRAM 장치)일 수도 있다. 본 발명의 다른 실시예에서는 메모리 장치(120)는 응용 프로세서(110) 내부에 구비되는 내장 메모리일 수 있다.
디스플레이 디바이스(130)는 CPU 코어(111)에 로드된 소프트웨어 가속기 또는 하드웨어 가속기(119)에 의하여 가속된 또는 처리된 멀티미디어를 디스플레이할 수 있다. 디스플레이 디바이스(130)는 LED, OLED 디바이스, 혹은 다른 종류의 디바이스일 수 있다. 디스플레이 컨트롤러(118)는 디스플레이 디바이스(130)의 동작을 제어한다.
도 16은 본 발명의 일 실시예에 따른 모바일 디바이스를 나타내는 블록도이다.
도 16을 참조하면, 모바일 디바이스(200)는 응용 프로세서(210), 메모리 장치(220), 스토리지 장치(230), 복수의 기능 모듈들(240, 250, 260, 270) 및 응용 프로세서(210), 메모리 장치(220), 스토리지 장치(230) 및 기능 모듈들(240, 250, 260, 270)에 각각 동작 전압을 제공하는 전력 관리 장치(280)를 포함할 수 있다.
응용 프로세서(210)는 모바일 디바이스(200)의 전반적인 동작을 제어할 수 있다. 즉, 응용 프로세서(210)는 메모리 장치(220), 스토리지 장치(230) 및 복수의 기능 모듈들(240, 250, 260, 270)을 제어할 수 있다. 한편, 응용 프로세서(200)는 CPU 코어(211)를 포함할 수 있다. CPU 코어(211)에서 구현되는 DVFS 컨트롤러(213)는 응용 프로세서(210)가 결정하는 DVFS 정책에 따라 전력 관리 장치(280)의 구동 모드를 지정하는 커맨드(CMD)를 전력 관리 장치(280)에 전송할 수 있다. DVFS 컨트롤러(213)는 도 1의 프로세서의 동적 전압 주파수 스케일링 방법 또는 도 13의 프로세서의 동적 전압 주파수 스케일링 방법에 기초하여 커맨드(CMD)를 생성할 수 있다.
응용 프로세서(210)는 상술한 바와 같이, IP의 동작에 따라 결정되는DVFS 정책에 따라 전력 관리 장치(280)로부터 제공되며 상관 관계를 가지는 제1 및 제2 구동 전압들(VDDCE, VDDPE)의 구동 모드를 지시하는 커맨드(CMD)를 전력 관리 장치(280)에 제공할 수 있다. 전력 관리 장치(280)는 커맨드(CMD)에 응답하여 제1 구동 모드에서는 제1 구동 전압(VDDCE)의 레벨을 일정하게 유지하고, 제2 구동 모드에서는 제1 구동 전압(VDDCE)이 제2 구동 전압(VDDPE)의 변화에 연동되어 변동되도록 할 수 있다.
메모리 장치(220) 및 스토리지 장치(230)는 모바일 디바이스(200)의 동작에 필요한 데이터들을 저장할 수 있다. 예를 들어, 메모리 장치(220)는 DRAM(dynamic random access memory) 장치, SRAM(static random access memory) 장치, 모바일 DRAM 장치 등과 같은 휘발성 메모리 장치에 상응할 수 있고, 스토리지 장치(730)는 EPROM(erasable programmable read-only memory) 장치, EEPROM(electrically erasable programmable read-only memory) 장치, 플래시 메모리(flash memory) 장치, PRAM(phase change random access memory) 장치, RRAM(resistance random access memory) 장치, NFGM(nano floating gate memory) 장치, PoRAM(polymer random access memory) 장치, MRAM(magnetic random access memory) 장치, FRAM(ferroelectric random access memory) 장치 등과 같은 비휘발성 메모리 장치에 상응할 수 있다. 실시예에 따라, 스토리지 장치(230)는 솔리드 스테이트 드라이브(solid state drive; SSD), 하드 디스크 드라이브(hard disk drive; HDD), 씨디롬(CD-ROM) 등을 더 포함할 수도 있다.
복수의 기능 모듈들(240, 250, 260, 270)은 모바일 디바이스(200)의 다양한 기능들을 각각 수행할 수 있다. 예를 들어, 모바일 디바이스(200)는 통신 기능을 수행하기 위한 통신 모듈(240)(예를 들어, CDMA(code division multiple access) 모듈, LTE(long term evolution) 모듈, RF(radio frequency) 모듈, UWB(ultra wideband) 모듈, WLAN(wireless local area network) 모듈, WIMAX(worldwide interoperability for microwave access) 모듈 등), 카메라 기능을 수행하기 위한 카메라 모듈(250), 표시 기능을 수행하기 위한 표시 모듈(260), 터치 입력 기능을 수행하기 위한 터치 패널 모듈(270) 등을 포함할 수 있다. 실시예에 따라, 모바일 디바이스(200)는 GPS(global positioning system) 모듈, 마이크 모듈, 스피커 모듈, 자이로스코프(gyroscope) 모듈 등을 더 포함할 수 있다. 다만, 모바일 디바이스(200)에 구비되는 기능 모듈들(240, 250, 260, 270)의 종류는 그에 한정되지 않음은 자명하다.
도 17은 본 발명의 일 실시예에 따른 동적 전압 주파수 스케일링 방법이 구현되는 프로그램 상의 논리적 레벨을 나타내는 도면이다.
도 17을 참조하면, 프로그램의 논리적 레벨은 유저 레벨(USER LEVEL) 및 커널 레벨(KERNEL LEVEL)을 포함한다. 유저 레벨(USER LEVEL)은 유저들이 동작 코드를 작성하는 어플리케이션(APPLICATION) 레벨을 포함한다. 유저 레벨(USER LEVEL)은 상기 유저들이 작성한 동작 코드들을 커널 레벨(KERNEL) 레벨에 전달하는 오픈 지엘이에스(OPEN GLES), 오픈 씨엘(OPEN CL), 렌더스크립트(RENDER SCRIPT) 및 이지엘(EGL) 레벨 등을 포함한다.
오픈 지엘이에스(OPEN GLES)는 크로노스 그룹(Khronos group)이 정의한 3D 그래픽 API인 오픈 지엘(OPEN GL)의 부분 집합이다. 오픈 지엘이에스(OPEN GLES)는 스마트폰, 태블릿 등의 각종 모바일 장치들을 위한 3D API이다. 오픈 지엘이에스(OPEN GLES)는 이미 많은 모바일 그래픽 프로세서(GPU)들이 지원하고 있으며, 현재 안드로이드 환경에서 광범위하게 사용되고 있다.
커널 레벨(KERNEL) 레벨에서 운영 체제(OS)가 동작하고, 운영 체제(OS)는 도 1 및 도 13의 프로세서의 동적 전압 주파수 스케일링 방법이 구현되는 디바이스 드라이버(DEVICE DRIVER)를 포함한다.
운영 체제(OS)는 프로세서의 동작 전압 및 동작 주파수를 동적으로 변경하기 위해, DVFS 이벤트를 주기적으로 디바이스 드라이버(DEVICE DRIVER)에 제공할 수 있다.
본 발명은 그래픽 프로세서(GPU)를 포함하는 임의의 장치 및 전자 기기에 적용될 수도 있다. 예를 들어, 본 발명은 휴대폰, 스마트 폰, PDA, PMP, 디지털 카메라, 캠코더, PC, 서버 컴퓨터, 워크스테이션, 노트북, 디지털 TV, 셋-탑 박스, 음악 재생기, 휴대용 게임 콘솔, 네비게이션 시스템, 스마트 카드, 프린터 등과 같은 다양한 전자 기기에 유용하게 이용될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.
Claims (10)
- 그래픽 태스크(Graphic task)와 컴퓨팅 태스크(Computing task) 중 적어도 하나를 포함하는 태스크들을 수행하는 프로세서의 동적 전압 주파수 스케일링(Dynamic Voltage Frequency Scaling) 방법으로서,
상기 프로세서의 제1 사용량을 측정하는 단계;
상기 그래픽 태스크의 양과 상기 컴퓨팅 태스크의 양에 기초하여 상기 제1 사용량을 수정하여 제2 사용량을 생성하는 단계; 및
상기 제2 사용량과 문턱 값들을 비교하여 상기 프로세서의 동작 주파수를 결정하는 단계를 포함하는 프로세서의 동적 전압 주파수 스케일링 방법. - 제1 항에 있어서,
상기 그래픽 태스크의 양과 상기 컴퓨팅 태스크의 양에 기초하여 상기 제1 사용량을 수정하여 상기 제2 사용량을 생성하는 단계는,
상기 태스크들이 상기 컴퓨팅 태스크를 포함하지 않는 경우, 상기 제1 사용량을 갖는 상기 제2 사용량을 생성하는 단계; 및
상기 태스크들이 상기 컴퓨팅 태스크를 포함하는 경우, 상기 제1 사용량을 수정하여 상기 제2 사용량을 생성하는 단계를 포함하는 프로세서의 동적 전압 주파수 스케일링 방법. - 제2 항에 있어서,
상기 태스크들이 상기 컴퓨팅 태스크를 포함하는 경우, 상기 제1 사용량을 수정하여 상기 제2 사용량을 생성하는 단계는,
상기 태스크들의 양과 상기 컴퓨팅 태스크의 양의 비율에 상기 사용량을 곱하여 컴퓨팅 사용량을 계산하는 단계;
상기 태스크들의 양과 상기 그래픽 태스크의 양의 비율에 상기 사용량을 곱하여 그래픽 사용량을 계산하는 단계;
상기 컴퓨팅 사용량에 가중치(Weight)를 곱하는 단계; 및
상기 가중치가 곱해진 컴퓨팅 사용량과 상기 그래픽 사용량을 더하여 상기 제2 사용량을 생성하는 단계를 포함하는 프로세서의 동적 전압 주파수 스케일링 방법. - 제3 항에 있어서,
상기 가중치가 곱해진 컴퓨팅 사용량과 상기 그래픽 사용량을 더하여 상기 제2 사용량을 생성하는 단계는,
상기 가중치가 곱해진 컴퓨팅 사용량과 상기 그래픽 사용량을 더하여 제3 사용량을 생성하는 단계;
상기 제3 사용량이 한계 사용량 이상인 경우, 상기 제2 사용량을 상기 한계 사용량으로 결정하는 단계; 및
상기 제3 사용량이 상기 한계 사용량 미만인 경우, 상기 제2 사용량을 상기 제3 사용량으로 결정하는 단계를 포함하는 프로세서의 동적 전압 주파수 스케일링 방법. - 제1 항에 있어서,
상기 제2 사용량과 상기 문턱 값들을 비교하여 상기 프로세서의 상기 동작 주파수를 결정하는 단계는,
상기 제2 사용량이 제1 문턱 값보다 작은 경우, 상기 프로세서의 상기 동작 주파수를 감소시키는 단계;
상기 제2 사용량이 제2 문턱 값 이상인 경우, 상기 프로세서의 상기 동작 주파수를 증가시키는 단계; 및
상기 제2 사용량이 상기 제1 문턱 값 이상이고, 상기 제2 문턱 값보다 작은 경우, 상기 프로세서의 상기 동작 주파수를 유지하는 단계를 포함하는 프로세서의 동적 전압 주파수 스케일링 방법. - 제1 항에 있어서,
상기 프로세서의 상기 사용량은 상기 프로세서의 전체 구동 시간과 상기 프로세서가 상기 태스크들을 수행하는 시간의 비율인 프로세서의 동적 전압 주파수 스케일링 방법. - 제1 항에 있어서,
상기 프로세서는 그래픽스 프로세싱 유닛(Graphics Processing Unit) 또는 일반 컴퓨팅 프로세싱 유닛(Computing Processing Unit)인 프로세서이고,
상기 프로세서는 상기 그래픽 태스크와 상기 컴퓨팅 태스크를 오픈 씨엘(OPEN CL)을 사용하여 수행하고,
상기 프로세서의 상기 제1 사용량을 측정하는 단계는,
상기 프로세서에서 동작하는 운영 시스템(Operating system)에서 전압 주파수 스케일링 이벤트가 발생한 경우 수행되는 프로세서의 동적 전압 주파수 스케일링 방법. - 그래픽 태스크(Graphic task)와 컴퓨팅 태스크(Computing task) 중 적어도 하나를 포함하는 태스크들을 수행하는 프로세서의 동적 전압 주파수 스케일링(Dynamic Voltage Frequency Scaling) 방법으로서,
상기 프로세서의 제1 사용량, 상기 그래픽 태스크의 양, 상기 컴퓨팅 태스크의 양 및 문턱 값들에 기초하여 상기 프로세서의 동작 주파수를 제어하는 단계; 및
상기 동작 주파수에 기초하여 상기 프로세서의 동작 전압을 결정하는 단계를 포함하는 프로세서의 동적 전압 주파수 스케일링 방법. - 제8 항에 있어서,
상기 프로세서의 상기 제1 사용량, 상기 그래픽 태스크의 양, 상기 컴퓨팅 태스크의 양 및 상기 문턱 값들에 기초하여 상기 프로세서의 상기 동작 주파수를 제어하는 단계는,
상기 프로세서의 상기 제1 사용량을 측정하는 단계;
상기 그래픽 태스크의 양과 상기 컴퓨팅 태스크의 양에 기초하여 상기 제1 사용량을 수정하여 제2 사용량을 생성하는 단계; 및
상기 제2 사용량과 상기 문턱 값들을 비교하여 상기 프로세서의 상기 동작 주파수를 결정하는 단계를 포함하는 프로세서의 동적 전압 주파수 스케일링 방법. - 제9 항에 있어서,
상기 제2 사용량과 상기 문턱 값들을 비교하여 상기 프로세서의 상기 동작 주파수를 결정하는 단계는,
미리 결정된 동작 주파수들 중에서 상기 프로세서의 상기 동작 주파수를 결정하는 단계를 포함하고,
상기 동작 주파수에 기초하여 상기 프로세서의 상기 동작 전압을 결정하는 단계는,
상기 미리 결정된 동작 주파수들에 상응하는 미리 결정된 동작 전압들 중에서 상기 프로세서의 동작 전압을 결정하는 단계를 포함하는 프로세서의 동적 전압 주파수 스케일링 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140098764A KR102222752B1 (ko) | 2014-08-01 | 2014-08-01 | 프로세서의 동적 전압 주파수 스케일링 방법 |
US14/739,488 US9891690B2 (en) | 2014-08-01 | 2015-06-15 | Dynamic voltage and frequency scaling of a processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140098764A KR102222752B1 (ko) | 2014-08-01 | 2014-08-01 | 프로세서의 동적 전압 주파수 스케일링 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160015864A true KR20160015864A (ko) | 2016-02-15 |
KR102222752B1 KR102222752B1 (ko) | 2021-03-04 |
Family
ID=55179979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140098764A KR102222752B1 (ko) | 2014-08-01 | 2014-08-01 | 프로세서의 동적 전압 주파수 스케일링 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9891690B2 (ko) |
KR (1) | KR102222752B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200117701A (ko) * | 2019-04-05 | 2020-10-14 | 계명대학교 산학협력단 | Dvfs 기법이 적용된 디바이스 및 주파수 설정 방법 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10216526B2 (en) * | 2015-01-14 | 2019-02-26 | Mediatek Inc. | Controlling method for optimizing a processor and controlling system |
KR102661491B1 (ko) | 2016-12-26 | 2024-04-29 | 삼성전자주식회사 | 동적 전압 주파수 스케일링을 사용하는 시스템 온 칩 및 그것의 동작 방법 |
US10290289B2 (en) * | 2017-04-01 | 2019-05-14 | Intel Corporation | Adaptive multibit bus for energy optimization |
KR102539044B1 (ko) | 2017-10-30 | 2023-06-01 | 삼성전자주식회사 | 시스템 온 칩의 구동 방법, 이를 수행하는 시스템 온 칩 및 이를 포함하는 전자 시스템 |
CN111164538A (zh) | 2017-12-15 | 2020-05-15 | 英特尔公司 | 处理单元的功率管理 |
US10732690B2 (en) * | 2018-05-17 | 2020-08-04 | Arm Ip Limited | Systems and methods for monitoring state transitions |
KR102369354B1 (ko) * | 2020-03-26 | 2022-03-02 | 성균관대학교산학협력단 | 폴링 입출력 방식 기반 전력 효율 조절 방법 및 장치 |
CN111858463B (zh) | 2020-07-17 | 2024-04-02 | 上海科技大学 | 一种基于dvfs的优化重配置方法 |
US11927981B2 (en) | 2021-05-21 | 2024-03-12 | Samsung Electronics Co., Ltd. | Integrated circuit, dynamic voltage and frequency scaling (DVFS) governor, and computing system including the same |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060031691A1 (en) * | 2004-08-04 | 2006-02-09 | Bacchus Reza M | Systems and methods to determine processor utilization |
US20130328890A1 (en) * | 2012-06-07 | 2013-12-12 | Gokhan Avkarogullari | GPU with Dynamic Performance Adjustment |
US20140164757A1 (en) * | 2012-12-11 | 2014-06-12 | Apple Inc. | Closed loop cpu performance control |
US20140164364A1 (en) * | 2012-12-06 | 2014-06-12 | Ca, Inc. | System and method for event-driven prioritization |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7254721B1 (en) * | 2001-05-01 | 2007-08-07 | Advanced Micro Devices, Inc. | System and method for controlling an intergrated circuit to enter a predetermined performance state by skipping all intermediate states based on the determined utilization of the intergrated circuit |
US6845456B1 (en) * | 2001-05-01 | 2005-01-18 | Advanced Micro Devices, Inc. | CPU utilization measurement techniques for use in power management |
US7149909B2 (en) | 2002-05-09 | 2006-12-12 | Intel Corporation | Power management for an integrated graphics device |
US7711966B2 (en) | 2004-08-31 | 2010-05-04 | Qualcomm Incorporated | Dynamic clock frequency adjustment based on processor load |
JP4697805B2 (ja) | 2006-10-24 | 2011-06-08 | ルネサスエレクトロニクス株式会社 | データ処理装置 |
US20090049314A1 (en) | 2007-08-13 | 2009-02-19 | Ali Taha | Method and System for Dynamic Voltage and Frequency Scaling (DVFS) |
US8589926B2 (en) * | 2009-05-07 | 2013-11-19 | International Business Machines Corporation | Adjusting processor utilization data in polling environments |
JP2010277350A (ja) | 2009-05-28 | 2010-12-09 | Toshiba Corp | 電子機器 |
US9804995B2 (en) | 2011-01-14 | 2017-10-31 | Qualcomm Incorporated | Computational resource pipelining in general purpose graphics processing unit |
US8909961B2 (en) | 2011-11-29 | 2014-12-09 | Ati Technologies Ulc | Method and apparatus for adjusting power consumption level of an integrated circuit |
US20130173933A1 (en) | 2011-12-29 | 2013-07-04 | Advanced Micro Devices, Inc. | Performance of a power constrained processor |
WO2013101225A1 (en) | 2011-12-30 | 2013-07-04 | Intel Corporation | Microprocessor-assisted auto-calibration of voltage regulators |
US9137848B2 (en) | 2012-01-31 | 2015-09-15 | Lg Electronics Inc. | Mobile terminal, controlling method thereof and recording medium thereof |
KR101991682B1 (ko) | 2012-08-29 | 2019-06-21 | 삼성전자 주식회사 | Dvfs 제어 방법 및 이를 이용한 시스템-온 칩 |
KR20140030823A (ko) | 2012-09-04 | 2014-03-12 | 삼성전자주식회사 | 3차원 작업 부하를 이용하여 dvfs 정책을 수행하는 시스템-온 칩 및 이의 동작 방법 |
US20140089699A1 (en) * | 2012-09-27 | 2014-03-27 | Advanced Micro Devices | Power management system and method for a processor |
EP2972840A4 (en) * | 2013-03-15 | 2016-11-02 | Hewlett Packard Entpr Dev Lp | DATA BASED ORIENTED PROCESSING COPROCESSOR BASED BOARD |
-
2014
- 2014-08-01 KR KR1020140098764A patent/KR102222752B1/ko active IP Right Grant
-
2015
- 2015-06-15 US US14/739,488 patent/US9891690B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060031691A1 (en) * | 2004-08-04 | 2006-02-09 | Bacchus Reza M | Systems and methods to determine processor utilization |
US20130328890A1 (en) * | 2012-06-07 | 2013-12-12 | Gokhan Avkarogullari | GPU with Dynamic Performance Adjustment |
US20140164364A1 (en) * | 2012-12-06 | 2014-06-12 | Ca, Inc. | System and method for event-driven prioritization |
US20140164757A1 (en) * | 2012-12-11 | 2014-06-12 | Apple Inc. | Closed loop cpu performance control |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200117701A (ko) * | 2019-04-05 | 2020-10-14 | 계명대학교 산학협력단 | Dvfs 기법이 적용된 디바이스 및 주파수 설정 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR102222752B1 (ko) | 2021-03-04 |
US9891690B2 (en) | 2018-02-13 |
US20160034013A1 (en) | 2016-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102222752B1 (ko) | 프로세서의 동적 전압 주파수 스케일링 방법 | |
US10007321B2 (en) | Enhancing power-performance efficiency in a computer system when bursts of activity occurs when operating in low power | |
TWI599960B (zh) | 在多核心處理器中執行電源管理 | |
US9588915B2 (en) | System on chip, method of operating the same, and apparatus including the same | |
US8484647B2 (en) | Selectively adjusting CPU wait mode based on estimation of remaining work before task completion on GPU | |
US10255118B2 (en) | Processing system including a plurality of cores and method of operating the same | |
US9753771B2 (en) | System-on-chip including multi-core processor and thread scheduling method thereof | |
KR101748747B1 (ko) | 프로세서의 구성가능한 피크 성능 제한들의 제어 | |
JP2024024042A (ja) | プロセッサの最適スロットルのためのシステム、機器、及び方法 | |
US9158351B2 (en) | Dynamic power limit sharing in a platform | |
US11693466B2 (en) | Application processor and system on chip | |
US20140184619A1 (en) | System-on-chip performing dynamic voltage and frequency scaling | |
US20140173311A1 (en) | Methods and Systems for Operating Multi-Core Processors | |
US11029744B2 (en) | System, apparatus and method for controlling a processor based on effective stress information | |
US9996398B2 (en) | Application processor and system on chip | |
US20160011645A1 (en) | System-on-chip including multi-core processor and dynamic power management method thereof | |
US12020065B2 (en) | Hierarchical processor selection | |
EP3314431A1 (en) | Adaptive hardware acceleration based on runtime power efficiency determinations | |
US9501299B2 (en) | Minimizing performance loss on workloads that exhibit frequent core wake-up activity | |
US10725525B2 (en) | Method of operating system-on-chip, system-on-chip performing the same and electronic system including the same | |
KR102154080B1 (ko) | 전력 관리 시스템, 이를 포함하는 시스템 온 칩 및 모바일 기기 | |
US20230266815A1 (en) | Dvfs controlling method, semiconductor device and semiconductor system using the dvfs controlling method | |
KR20210022850A (ko) | 반도체 장치의 성능 부스팅 제어 방법 및 이를 수행하는 반도체 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |