KR20110050010A - 동적 전압 주파수 스케일링 방법 - Google Patents

동적 전압 주파수 스케일링 방법 Download PDF

Info

Publication number
KR20110050010A
KR20110050010A KR1020090106822A KR20090106822A KR20110050010A KR 20110050010 A KR20110050010 A KR 20110050010A KR 1020090106822 A KR1020090106822 A KR 1020090106822A KR 20090106822 A KR20090106822 A KR 20090106822A KR 20110050010 A KR20110050010 A KR 20110050010A
Authority
KR
South Korea
Prior art keywords
microprocessor
duration
unit
interval
power level
Prior art date
Application number
KR1020090106822A
Other languages
English (en)
Other versions
KR101617377B1 (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 KR1020090106822A priority Critical patent/KR101617377B1/ko
Priority to JP2010238708A priority patent/JP5694735B2/ja
Priority to US12/911,798 priority patent/US8631262B2/en
Priority to CN201010543574.5A priority patent/CN102053700B/zh
Publication of KR20110050010A publication Critical patent/KR20110050010A/ko
Priority to US14/152,401 priority patent/US9239614B2/en
Priority to US14/962,416 priority patent/US9720492B2/en
Application granted granted Critical
Publication of KR101617377B1 publication Critical patent/KR101617377B1/ko
Priority to US15/662,427 priority patent/US10394312B2/en

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
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Control Of Electrical Variables (AREA)

Abstract

동적 전압 주파수 스케일링 방법에 의하면, 마이크로프로세서의 단위 작업 부하율이 제 1 지속 구간에서 단위 구간마다 계산되고, 제 1 지속 구간의 길이가 단위 작업 부하율의 변화량에 기초하여 지수적으로 변경되며, 마이크로프로세서의 구간 작업 부하율이 제 1 지속 구간에서 마이크로프로세서의 단위 작업 부하율이 누적됨으로써 계산되고, 마이크로프로세서의 전력 레벨이 마이크로프로세서의 구간 작업 부하율에 기초하여 변경된다. 따라서, 마이크로프로세서의 미래 전력 레벨이 정확하게 예측될 수 있고, 불필요한 전력 레벨 변경에 따른 마이크로프로세서의 성능 저하 및 전력 소모가 방지될 수 있다.

Description

동적 전압 주파수 스케일링 방법 {METHOD OF SCALING VOLTAGE AND FREQUENCY DYNAMICALLY}
본 발명은 전자 기기에 관한 것으로서, 더욱 상세하게는 전자 기기 내부의 마이크로프로세서를 위한 동적 전압 주파수 스케일링 방법에 관한 것이다.
최근, 전자 기기는 마이크로프로세서가 높은 동작 주파수 및 그에 따른 높은 동작 전압으로 동작함에 따라 많은 전력을 소모하고 있다. 특히, 제한된 용량의 배터리에 기초하여 동작하는 이동통신 단말기 등과 같은 휴대용 전자 기기에서는 이러한 마이크로프로세서의 높은 전력 소모가 큰 문제로 인식되고 있다. 이러한 이유로, 전자 기기의 동작 모드를 사용 모드(running mode)와 아이들 모드(idle mode)로 구분하고, 전자 기기의 동작 모드에 따라 마이크로프로세서의 동작 주파수 및 동작 전압을 변경하는 동적 전압 및 주파수 스케일링(Dynamic Voltage and Frequency Scaling; DVFS)이 제시되고 있다.
일반적으로, 동적 전압 주파수 스케일링은 지속 구간에서 마이크로프로세서의 현재 작업 부하율을 모니터링하고, 그 결과에 따라 마이크로프로세서의 미래 전력 레벨을 예측하는 방식으로, 마이크로프로세서의 전력 레벨을 변경하는 것을 말 한다. 그러나, 종래의 동적 전압 주파수 스케일링 방법은 지속 구간이 상대적으로 길어 마이크로프로세서의 미래 전력 레벨을 정확하게 예측하지 못하거나, 또는 지속 구간이 상대적으로 짧아 마이크로프로세서의 동작 주파수 또는 동작 전압을 변경하는 횟수 증가에 따른 성능 저하 및 전력 소모가 크다는 문제점이 있다.
본 발명의 일 목적은 마이크로프로세서의 미래 전력 레벨을 정확하게 예측할 수 있고, 불필요한 전력 레벨 변경에 따른 마이크로프로세서의 성능 저하 및 전력 소모를 감소시킬 수 있는 동적 전압 주파수 스케일링 방법을 제공하는 것이다. 다만, 본 발명의 해결하고자 하는 과제는 상기 목적으로 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.
본 발명의 일 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 동적 전압 주파수 스케일링 방법에 의하면, 마이크로프로세서의 단위 작업 부하율(unit workload rate)이 제 1 지속 구간에서 단위 구간마다 계산되고, 상기 제 1 지속 구간의 길이가 상기 단위 작업 부하율의 변화량에 기초하여 지수적(exponentially)으로 변경되며, 상기 마이크로프로세서의 구간 작업 부하율이 상기 제 1 지속 구간에서 상기 단위 작업 부하율이 누적됨으로써 계산될 수 있다. 또한, 상기 마이크로프로세서의 전력 레벨이 상기 구간 작업 부하율에 기초하여 변경될 수 있다.
상기 동적 전압 주파수 스케일링 방법의 실시예들에 의하면, 상기 전력 레벨은 상기 마이크로프로세서의 동작 주파수 또는 동작 전압에 상응할 수 있다.
상기 동적 전압 주파수 스케일링 방법의 실시예들에 의하면, 상기 단위 작업 부하율의 계산은 상기 단위 구간마다 상기 마이크로프로세서의 액티브(active) 구간이 계산되고, 상기 단위 구간마다 상기 마이크로프로세서의 아이들(idle) 구간이 계산되며, 상기 액티브 구간 및 상기 아이들 구간에 기초하여 상기 단위 작업 부하율이 추정됨으로써 이루어질 수 있다.
상기 동적 전압 주파수 스케일링 방법의 실시예들에 의하면, 상기 단위 작업 부하율의 계산은 아래 [수식 1]을 이용하여 이루어질 수 있다.
[수식 1]
Figure 112009068273223-PAT00001
(상기식에서, UWR은 단위 작업 부하율을 나타내고, UT는 단위 구간을 나타내며, AT는 단위 구간에서의 액티브 구간을 나타내고, IT는 단위 구간에서의 아이들 구간을 나타낸다.)
상기 동적 전압 주파수 스케일링 방법의 실시예들에 의하면, 상기 액티브 구간은 상기 마이크로프로세서에 메인 클럭 신호가 인가되는 구간에 상응할 수 있고, 상기 아이들 구간은 상기 마이크로프로세서에 상기 메인 클럭 신호가 인가되지 않는 구간에 상응할 수 있다.
상기 동적 전압 주파수 스케일링 방법의 실시예들에 의하면, 상기 액티브 구 간 및 상기 아이들 구간은 운영 체제(Operating System)에 의해 결정될 수 있다.
상기 동적 전압 주파수 스케일링 방법의 실시예들에 의하면, 상기 제 1 지속 구간의 길이 변경은 상기 변화량이 안정 기준 값보다 크면 상기 제 1 지속 구간의 길이가 지수적으로 증가되고, 상기 변화량이 상기 안정 기준 값보다 작으면 상기 제 1 지속 구간의 길이가 지수적으로 감소되며, 상기 변화량이 상기 안정 기준 값과 동일하면 상기 제 1 지속 구간의 길이가 유지됨으로써 이루어질 수 있다.
상기 동적 전압 주파수 스케일링 방법의 실시예들에 의하면, 상기 제 1 지속 구간의 길이 변경은 아래 [수식 2]를 이용하여 이루어질 수 있다.
[수식 2]
Figure 112009068273223-PAT00002
(상기식에서, FPR은 변경 전의 제 1 지속 구간의 길이를 나타내고, SPR은 변경 후의 제 1 지속 구간의 길이를 나타내며, r은 사용자가 결정하는 지수의 비(exponential ratio)를 나타내고, dUWR은 단위 작업 부하율의 변화량을 나타내며, SV는 안정 기준 값을 나타낸다.)
상기 동적 전압 주파수 스케일링 방법의 실시예들에 의하면, 상기 제 1 지속 구간의 길이는 기 설정된 최대 구간 길이와 기 설정된 최소 구간 길이 사이에서 변경될 수 있다.
상기 동적 전압 주파수 스케일링 방법의 실시예들에 의하면, 상기 구간 작업 부하율의 계산은 상기 단위 작업 부하율에 가중치를 적용함으로써 이루어질 수 있 다.
상기 동적 전압 주파수 스케일링 방법의 실시예들에 의하면, 상기 구간 작업 부하율의 계산은 아래 [수식 3]을 이용하여 이루어질 수 있다.
[수식 3]
Figure 112009068273223-PAT00003
(상기식에서, PWR은 구간 작업 부하율을 나타내고, UWRx는 x번째 단위 작업 부하율을 나타내며, C는 가중치를 나타내고, 제 1 지속 구간은 n개의 단위 구간의 합에 상응한다.)
상기 동적 전압 주파수 스케일링 방법의 실시예들에 의하면, 상기 전력 레벨의 변경은 상기 구간 작업 부하율이 업 기준 값보다 크면 상기 전력 레벨이 증가되고, 상기 구간 작업 부하율이 다운 기준 값보다 작으면 상기 전력 레벨이 감소되며, 상기 구간 작업 부하율이 상기 업 기준 값과 상기 다운 기준 값 사이이면 상기 전력 레벨이 유지됨으로써 이루어질 수 있다.
상기 동적 전압 주파수 스케일링 방법의 실시예들에 의하면, 상기 전력 레벨은 기 설정된 최대 전력 레벨과 기 설정된 최소 전력 레벨 사이에서 변경될 수 있다.
상기 동적 전압 주파수 스케일링 방법의 실시예들에 의하면, 상기 전력 레벨의 변경은 복수의 이산적인 전력 레벨들에 대하여 상기 전력 레벨을 단계적으로 증 가 또는 감소시킴으로써 이루어질 수 있다.
상기 동적 전압 주파수 스케일링 방법의 실시예들에 의하면, 상기 이산적인 전력 레벨들은 하나의 전력 레벨이 다른 하나의 전력 레벨의 2배에 상응할 수 있다.
상기 동적 전압 주파수 스케일링 방법의 실시예들에 의하면, 상기 동적 전압 주파수 스케일링 방법은 상기 변경된 전력 레벨을 상기 제 1 지속 구간에 연속하는 제 2 지속 구간에서 유지시킬 수 있다.
상기 동적 전압 주파수 스케일링 방법의 실시예들에 의하면, 상기 동적 전압 주파수 스케일링 방법은 외부 커맨드에 기초하여 상기 전력 레벨을 기 설정된 전력 레벨로 변경할 수 있다.
상기 동적 전압 주파수 스케일링 방법의 실시예들에 의하면, 상기 동적 전압 주파수 스케일링 방법은 외부 커맨드에 기초하여 상기 전력 레벨을 기 설정된 값만큼 증가 또는 감소시킬 수 있다.
상기 동적 전압 주파수 스케일링 방법의 실시예들에 의하면, 상기 동적 전압 주파수 스케일링 방법은 외부 커맨드에 기초하여 상기 제 1 지속 구간의 길이를 기 설정된 길이로 변경할 수 있다.
상기 동적 전압 주파수 스케일링 방법의 실시예들에 의하면, 상기 동적 전압 주파수 스케일링 방법은 외부 커맨드에 기초하여 상기 제 1 지속 구간의 길이를 기 설정된 값만큼 증가 또는 감소시킬 수 있다.
본 발명의 실시예들에 따른 동적 전압 주파수 스케일링 방법은 마이크로프로세서의 동작 상태가 급변하는 경우에 지속 구간을 지수적으로 감소시킴으로써 마이크로프로세서의 전력 레벨을 정확하게 예측할 수 있고, 마이크로프로세서의 동작 상태가 일정한 경우에는 지속 구간을 지수적으로 증가시킴으로써 불필요한 전력 레벨 변경에 따른 마이크로프로세서의 성능 저하 및 전력 소모를 방지할 수 있다. 다만, 본 발명의 효과는 상기 효과로 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들 어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정 의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 동적 전압 주파수 스케일링 방법을 나타내는 순서도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 동적 전압 주파수 스케일링 방법은 제 1 지속 구간에서 단위 구간마다 마이크로프로세서의 단위 작업 부하율(unit workload rate)을 계산(S110)하고, 마이크로프로세서의 단위 작업 부하율에 기초하여 단위 작업 부하율의 변화량을 계산(S120)하며, 단위 작업 부하율의 변화량에 기초하여 제 1 지속 구간의 길이를 지수적(exponentially)으로 변경(S130)할 수 있다. 이후, 제 1 지속 구간에서 마이크로프로세서의 단위 작업 부하율을 누적함으로써 마이크로프로세서의 구간 작업 부하율(period workload rate)을 계산(S140)하고, 마이크로프로세서의 구간 작업 부하율에 기초하여 마이크로프로세서의 전력 레벨을 변경(S150)하며, 제 2 지속 구간에서 마이크로프로세서의 변경된 전력 레벨을 유지(S160)할 수 있다.
일반적으로, 동적 전압 주파수 스케일링(Dynamic Voltage Frequency Scaling: DVFS) 방법은 마이크로프로세서의 작업 부하율에 기초하여 마이크로프로 세서의 전력 레벨(즉, 동작 전압 또는 동작 주파수)을 동적으로 변화시키는 방법을 말한다. 즉, 마이크로프로세서의 현재 작업 부하율에 기초하여 마이크로프로세서의 미래 전력 레벨을 예측하는 것이다. 이러한 전력 레벨 예측은 제 1 지속 구간에서의 구간 작업 부하율이 제 2 지속 구간에서의 구간 작업 부하율과 비슷할 것이라는 가정 하에 이루어진다. 구체적으로, 동적 전압 주파수 스케일링 방법은 제 1 지속 구간에서 마이크로프로세서의 구간 작업 부하율에 비해 마이크로프로세서의 전력 레벨이 낮다고 판단되는 경우, 마이크로프로세서의 전력 레벨을 증가시킴으로써 제 2 지속 구간에서 마이크로프로세서의 성능 저하를 방지할 수 있고, 제 1 지속 구간에서 마이크로프로세서의 구간 작업 부하율에 비해 마이크로프로세서의 전력 레벨이 높다고 판단되는 경우, 마이크로프로세서의 전력 레벨을 감소시킴으로써 제 2 지속 구간에서 마이크로프로세서의 불필요한 전력 소모를 방지할 수 있다. 그러나, 종래의 동적 전압 주파수 스케일링 방법에서는 지속 구간의 길이가 고정되거나 또는 선형적으로 변경되기 때문에, 지속 구간의 길이가 마이크로프로세서의 동작 상태를 반영하지 못한다는 문제점이 있었다.
이에, 본 발명의 일 실시예에 따른 동적 전압 주파수 스케일링 방법은 제 1 지속 구간에서 단위 구간마다 마이크로프로세서의 단위 작업 부하율을 계산(S110)하고, 제 1 지속 구간에서 마이크로프로세서의 단위 작업 부하율을 누적함으로써 마이크로프로세서의 구간 작업 부하율을 계산(S140)하며, 마이크로프로세서의 구간 작업 부하율에 기초하여 마이크로프로세서의 전력 레벨을 변경(S150)할 수 있다. 또한, 제 2 지속 구간에서는 마이크로프로세서의 변경된 전력 레벨을 유지(S160)할 수 있다. 이 때, 본 발명의 일 실시예에 따른 동적 전압 주파수 스케일링 방법은 제 1 지속 구간에서 단위 구간마다 단위 작업 부하율의 변화량이 계산(S120)되면, 이러한 단위 작업 부하율의 변화량에 기초하여 제 1 지속 구간을 지수적으로 계속 변경할 수 있다. 일 실시예에서, 마이크로프로세서의 단위 작업 부하율은 단위 구간에서 마이크로프로세서가 수행할 수 있는 최대 작업량에 대한 마이크로프로세서가 수행한 작업량의 비율로서 정의될 수 있고, 마이크로프로세서의 구간 작업 부하율은 지속 구간에서 마이크로프로세서가 수행할 수 있는 최대 작업량에 대하여 마이크로프로세서가 수행한 작업량의 비율로서 정의될 수 있다. 이하, 본 발명의 일 실시예에 따른 동적 전압 주파수 스케일링 방법을 구체적으로 설명하도록 한다.
마이크로프로세서의 단위 작업 부하율은 제 1 지속 구간에서 단위 구간마다 계산(S110)될 수 있다. 여기서, 제 1 지속 구간의 길이는 마이크로프로세서의 단위 작업 부하율의 변화량에 따라 계속적으로 변경되는 가변적인 값이고, 단위 구간의 길이는 시스템 또는 사용자에 의하여 결정되는 고정된 값이다. 예를 들어, 단위 구간은 시스템에서 발생되는 시스템 틱(system tick)에 기초하여 결정될 수 있다. 일 실시예에서, 단위 구간마다 마이크로프로세서의 액티브 구간 및 아이들 구간이 계산되면, 액티브 구간 및 아이들 구간에 기초하여 마이크로프로세서의 단위 작업 부하율이 계산될 수 있다. 액티브 구간은 마이크로프로세서에 메인 클럭 신호가 인가되는 구간에 상응할 수 있고, 아이들 구간은 마이크로프로세서에 메인 클럭 신호가 인가되지 않는 구간에 상응할 수 있다. 액티브 구간 및 아이들 구간은 리눅스(linux), 윈도우즈(windows)와 같은 운영 체제(Operating System)에 의하여 결정 될 수 있다. 실시예에 따라, 운영 체제가 마이크로프로세서의 아이들 구간을 결정하면, 마이크로프로세서의 액티브 구간은 단위 구간에서 아이들 구간을 제외한 구간으로 결정될 수 있다.
제 1 지속 구간에서 단위 구간마다 마이크로프로세서의 단위 작업 부하율이 계산(S120)되면, 단위 작업 부하율의 변화량이 계산(S130)될 수 있다. 구체적으로, 단위 작업 부하율의 변화량은 제 n+1 단위 구간에서의 단위 작업 부하율에서 제 n 단위 구간에서의 단위 작업 부하율을 뺀 값에 상응할 수 있다. 이와 같이, 단위 작업 부하율의 변화량이 순차적으로 계산(S120)되면, 제 1 지속 구간의 길이는 단위 작업 부하율의 변화량에 기초하여 지수적으로 변경(S130)될 수 있다. 이 때, 제 1 지속 구간의 길이는 각각의 변화량에 기초하여 변경될 수 있지만, 사용자의 설정에 따라 일부 변화량에만 기초하여 변경될 수도 있다. 예를 들어, 홀수 번째 또는 짝수 번째 변화량에 기초하여 변경될 수 있다. 일 실시예에서, 제 1 지속 구간의 길이 변경은 단위 작업 부하율의 변화량이 안정 기준 값보다 크면 제 1 지속 구간의 길이를 지수적으로 증가시키고, 단위 작업 부하율의 변화량이 안정 기준 값보다 작으면 제 1 지속 구간의 길이를 지수적으로 감소시키며, 단위 작업 부하율의 변화량이 안정 기준 값과 동일하면 제 1 지속 구간의 길이를 유지시키는 방식으로 이루어질 수 있다. 이 때, 안정 기준 값은 시스템에 따라 결정되는 값으로서, 시스템에 요구되는 조건에 따라 사용자에 의하여 다양하게 결정될 수 있다.
일반적으로, 단위 작업 부하율의 변화량이 크다는 것은 마이크로프로세서의 동작 상태가 급변한다는 것을 의미하므로, 단위 작업 부하율의 변화량이 큼에도 불 구하고 제 1 지속 구간의 길이가 상대적으로 길면, 제 1 지속 구간은 마이크로프로세서의 동작 상태를 정확하게 반영할 수 없다. 그 결과, 제 1 지속 구간에서 예측된 제 2 지속 구간에서의 전력 레벨이 제 2 지속 구간에서의 마이크로프로세서의 구간 작업 부하율에 비해 높은 상태인 오버슛(overshoot)이 발생하거나, 또는 제 1 지속 구간에서 예측된 제 2 지속 구간에서의 전력 레벨이 제 2 지속 구간에서의 마이크로프로세서의 구간 작업 부하율보다 낮은 상태인 언더슛(undershoot)이 발생할 수 있다. 반면에, 단위 작업 부하율의 변화량이 작다는 것은 마이크로프로세서의 동작 상태가 일정하다는 것을 의미하므로, 단위 작업 부하율의 변화량이 작음에도 불구하고 제 1 지속 구간의 길이가 상대적으로 짧으면, 마이크로프로세서의 전력 레벨을 변경하는 횟수가 불필요하게 많아질 수 있다. 그 결과, 불필요한 전력 레벨 변경에 의하여 마이크로프로세서의 성능이 저하되거나, 또는 마이크로프로세서로 하여금 불필요한 전력을 소모하게 할 수 있다. 이러한 문제점을 해결하기 위하여, 본 발명의 일 실시예에 따른 동적 전압 주파수 스케일링 방법은 제 1 구간에서 마이크로프로세서의 동작 상태가 급변하는 경우에는 제 1 지속 구간을 지수적으로 감소시키고, 제 1 구간에서 마이크로프로세서의 동작 상태가 일정한 경우에는 제 1 지속 구간을 지수적으로 증가시키는 것이다.
마이크로프로세서의 구간 작업 부하율은 제 1 지속 구간에서 마이크로프로세서의 단위 작업 부하율을 누적함으로써 계산(S140)될 수 있다. 일 실시예에서, 마이크로프로세서의 단위 작업 부하율은 가중치가 적용되는 방식으로 누적될 수 있다. 예를 들어, 마이크로프로세서의 구간 작업 부하율을 계산함에 있어서 최근의 단위 작업 부하율에는 큰 가중치를 부여하고, 오래 전의 단위 작업 부하율에는 작은 가중치를 부여할 수 있다. 다만, 이동통신 단말기 등과 같은 모바일 시스템에서는 마이크로프로세서의 구간 작업 부하율을 계산함에 있어서 마이크로프로세서의 단위 작업 부하율에 가중치를 부여하는 것이 오히려 모바일 시스템 전체에 큰 부담을 줄 수 있기 때문에, 마이크로프로세서의 단위 작업 부하율에 가중치를 부여하는 것은 시스템의 성능에 따라 선택적으로 수행될 수 있다. 또한, 마이크로프로세서의 단위 작업 부하율에 부여되는 가중치도 시스템의 성능에 따라 다양하게 결정될 수 있다.
마이크로프로세서의 전력 레벨은 마이크로프로세서가 전력을 소모하는 정도를 나타내는 것으로서, 마이크로프로세서의 동작 주파수 또는 동작 전압에 상응할 수 있다. 따라서, 마이크로프로세서의 전력 레벨이 크다는 것은 마이크로프로세서의 동작 주파수 또는 동작 전압이 크다는 것을 의미할 수 있다. 예를 들어, 마이크로프로세서가 동일한 어플리케이션을 실행하는 경우에, 마이크로프로세서의 전력 레벨(즉, 동작 주파수 또는 동작 전압)이 클수록, 소모 전력은 증가하고, 마이크로프로세서의 작업 속도는 빨라진다. 이것은 마이크로프로세서에서 소모되는 전력이 대부분 마이크로프로세서가 구현된 디지털 논리 회로에서 논리 소자들의 스위칭 동작에 의하여 발생하므로, 마이크로프로세서의 동작 주파수 또는 동작 전압이 증가함에 따라 논리 소자들의 스위칭 동작이 많아지기 때문이다. 그러므로, 마이크로프로세서의 구간 작업 부하율에 비하여 높은 주파수의 클럭 신호 또는 높은 전원 전압을 마이크로프로세서에 공급하는 것은 마이크로프로세서의 전력 소모를 불필요하 게 증가시키는 원인이 된다. 한편, 마이크로프로세서의 동작 주파수와 동작 전압은 서로 연관되어 있는 것이므로, 마이크로프로세서의 동작 주파수가 증가하면 마이크로프로세서의 동작 전압이 커질 수 있고, 마이크로프로세서의 동작 주파수가 감소하면 마이크로프로세서의 동작 전압이 작아질 수 있다.
마이크로프로세서의 전력 레벨은 마이크로프로세서의 구간 작업 부하율에 기초하여 변경(S150)될 수 있다. 마이크로프로세서의 전력 레벨은 마이크로프로세서의 구간 작업 부하율이 업 기준 값보다 크면 증가되고, 마이크로프로세서의 구간 작업 부하율이 다운 기준 값보다 작으면 감소되며, 업 기준 값과 다운 기준 값 사이이면 그대로 유지될 수 있다. 일 실시예에서, 마이크로프로세서의 전력 레벨 변경은 이산적인(discrete) 전력 레벨들 중에서 하나를 선택하는 방식으로 수행될 수 있는데, 각각의 전력 레벨들은 하나의 전력 레벨이 다른 하나의 전력 레벨의 2배에 상응할 수 있다. 예를 들어, 마이크로프로세서의 전력 레벨 변경은 이산적인 전력 레벨들에 대하여 전력 레벨이 단계적으로 증가 또는 감소되는 방식으로 수행될 수 있다. 즉, 마이크로프로세서의 전력 레벨 변경이 500MHz, 250MHz, 125MHz와 같은 이산적인 동작 주파수들에 대하여 동작 주파수가 단계적으로 증가 또는 감소시키는 방식으로 수행되는 것이다. 이러한 이산적인 전력 레벨들의 개수, 수치 등은 마이크로프로세서의 기능, 종류 등에 따라 다양하게 변경될 수 있다. 다른 실시예에서, 마이크로프로세서의 전력 레벨 변경은 연속적인 전력 레벨들에 대하여 전력 레벨이 증가 또는 감소되는 방식으로 수행될 수도 있다. 마이크로프로세서의 동작 주파수가 증가함에 따라 내부의 논리 소자들이 충분한 스위칭 속도를 확보할 수 있도록 마이크로프로세서의 동작 전압도 증가될 필요가 있으므로, 마이크로프로세서의 전력 레벨 변경은 마이크로프로세서의 동작 주파수와 동작 전압이 함께 변경되는 방식으로 수행될 수도 있다.
마이크로프로세서의 변경된 전력 레벨은 제 1 지속 구간에 연속하는 제 2 지속 구간에서 유지(S160)될 수 있다. 제 2 지속 구간도 제 1 지속 구간과 마찬가지로, 제 2 지속 구간에서 계속적으로 계산되는 단위 작업 부하율의 변화량에 따라 지수적으로 계속 변경된다. 실시예에 따라, 본 발명의 일 실시예에 따른 동적 전압 주파수 스케일링 방법은 마이크로프로세서의 변경된 전력 레벨을 제 2 지속 구간에서 유지하는 것이 적절하지 않다고 판단되는 경우(예를 들어, 오버슛 또는 언더슛이 과도하게 발생하는 경우)에는 외부 커맨드에 기초하여 마이크로프로세서의 변경된 전력 레벨을 기 설정된 전력 레벨로 변경하거나 또는 기 설정된 값만큼 증감시킬 수 있다. 또한, 본 발명의 일 실시예에 따른 동적 전압 주파수 스케일링 방법은 마이크로프로세서가 어플리케이션을 실행함에 있어서 요구되는 조건에 따라 제 1 지속 구간의 길이를 기 설정된 길이로 변경하거나 또는 기 설정된 값만큼 증가시킬 수 있다. 이와 같이, 본 발명의 일 실시예에 따른 동적 전압 주파수 스케일링 방법은 제 1 지속 구간에서 단위 구간마다 단위 작업 부하율의 변화량에 기초하여 제 1 지속 구간의 길이를 지수적으로 변경(S130)함으로써, 제 2 지속 구간에서의 마이크로프로세서의 전력 레벨을 비교적 정확하게 예측할 수 있고, 불필요한 전력 레벨 변경에 따른 마이크로프로세서의 성능 저하 및 전력 소모도 감소시킬 수 있다.
도 2는 도 1의 동적 전압 주파수 스케일링 방법에서 지속 구간을 설명하기 위한 도면이다.
도 2를 참조하면, 제 1 지속 구간은 제 1 시점(T(n-1))에서 제 2 시점(T(n))까지의 구간에 해당할 수 있고, 제 2 지속 구간은 제 2 시점(T(n))에서 제 3 시점(T(n+1))까지의 구간에 해당할 수 있다. 상술한 바와 같이, 제 1 지속 구간은 제 1 지속 구간에서 단위 작업 부하율의 변화량에 기초하여 지수적으로 계속 변경될 수 있고, 제 2 지속 구간은 제 2 지속 구간에서 단위 작업 부하율의 변화량에 기초하여 지수적으로 계속 변경될 수 있다. 즉, 제 1 및 제 2 지속 구간은 고정된 값이 아니라, 마이크로프로세서의 동작 상태에 따라 지수적으로 변경되는 값이다. 따라서, 제 1 내지 제 3 시점(T(n-1), T(n), T(n+1))은 시간의 흐름에 따라 각각 변경될 수 있다.
도 1의 동적 전압 주파수 스케일링 방법은 제 1 지속 구간에서의 구간 작업 부하율에 기초하여 제 2 지속 구간에서의 마이크로프로세서의 전력 레벨을 결정할 수 있다. 즉, 마이크로프로세서의 전력 레벨 변경은 제 1 지속 구간에서의 구간 작업 부하율이 제 2 지속 구간에서의 구간 작업 부하율과 비슷할 것이라는 가정 하에 이루어진다. 일 실시예에서, 도 1의 동적 전압 주파수 스케일링 방법은 제 1 지속 구간에서의 구간 적업 부하율에 기초하여 제 1 지속 구간에서의 마이크로프로세서의 전력 레벨을 단계적으로 증가 또는 감소시키는 방식으로 제 2 지속 구간에서의 마이크로프로세서의 전력 레벨을 결정할 수 있다. 종래의 동적 전압 주파수 스케일링 방법에서는 지속 구간의 길이가 고정되거나 선형적으로 변경되기 때문에, 지속 구간의 길이가 해당 지속 구간에서의 마이크로프로세서의 동작 상태를 정확하게 반 영하지 못한다는 문제점이 있었다. 따라서, 종래의 동적 전압 주파수 스케일링 방법은 시간의 흐름에 따라 마이크로프로세서의 전체 작업 부하율의 변화를 관찰하기에는 적합한 면이 있으나, 지속 구간이 상대적으로 긴 경우에는 마이크로프로세서의 미래 전력 레벨을 잘못 예측하는 경우가 많았고, 지속 구간이 상대적으로 짧은 경우에는 불필요한 전력 레벨 변경으로 인하여 시스템에 부담을 주는 경우가 많았다.
이에, 도 1의 동적 전압 주파수 스케일링 방법은 제 1 지속 구간에서 단위 구간마다 마이크로프로세서의 단위 작업 부하율을 계산하고, 단위 작업 부하율의 변화량에 기초하여 제 1 지속 구간의 길이를 지수적으로 계속 변경할 수 있다. 따라서, 도 1의 동적 전압 주파수 스케일링 방법은 제 1 지속 구간에서 마이크로프로세서의 동작 상태가 급변하는 경우, 제 1 지속 구간의 길이를 지수적으로 감소시켜, 제 2 지속 구간에서의 마이크로프로세서의 전력 레벨을 정확하게 예측할 수 있고, 제 1 지속 구간에서의 마이크로프로세서의 동작 상태가 일정한 경우, 제 1 지속 구간의 길이를 지수적으로 증가시켜, 불필요한 전력 레벨 변경에 따른 마이크로프로세서의 성능 저하 및 전력 소모를 감소시킬 수 있다. 특히, 도 1의 동적 전압 주파수 스케일링 방법은 제 1 지속 구간의 길이를 지수적으로 변경하기 때문에, 제 1 지속 구간의 길이를 선형적으로 변경하는 경우에 비하여, 마이크로프로세서의 동작 상태에 대한 높은 반응성을 확보할 수 있다. 나아가, 도 1의 동적 전압 주파수 스케일링 방법은 지속 구간의 길이가 해당 지속 구간에서 마이크로프로세서의 동작 상태를 정확하게 반영하지 못하는 경우에, 외부 커맨드에 기초하여 해당 지속 구간 의 길이를 기 설정된 길이로 변경하거나, 또는 기 설정된 값만큼 증가 또는 감소시킬 수 있다.
도 1의 동적 전압 주파수 스케일링 방법은 제 1 지속 구간의 길이와 제 1 지속 구간 내의 단위 구간들의 합이 동일해지는 시점 즉, 제 1 지속 구간이 종료되는 시점에서, 제 1 지속 구간에서의 구간 작업 부하율에 기초하여 제 2 지속 구간에서의 마이크로프로세서의 전력 레벨(즉, 동작 주파수 또는 동작 전압)을 결정할 수 있다. 이후, 도 1의 동적 전압 주파수 스케일링 방법은 제 1 지속 구간에서 결정된 마이크로프로세서의 전력 레벨을 제 2 지속 구간에서 유지하다가, 제 2 지속 구간의 길이와 제 2 지속 구간 내의 단위 구간들의 합이 동일해지는 시점 즉, 제 2 지속 구간이 종료되는 시점에서, 제 2 지속 구간에서의 구간 작업 부하율에 기초하여 제 3 지속 구간에서의 마이크로프로세서의 전력 레벨을 결정할 수 있다. 이와 같이, 도 1의 동적 전압 주파수 스케일링 방법은 마이크로프로세서의 동작 상태에 기초하여 해당 지속 구간의 길이를 적응적(adaptive)으로 변경시킬 수 있다. 다만, 마이크로프로세서의 전력 레벨이 마이크로프로세서에 실제 요구되는 전력 레벨과 다른 경우에는, 도 1의 동적 전압 주파수 스케일링 방법은 외부 커맨드에 기초하여 마이크로프로세서의 전력 레벨을 기 설정된 전력 레벨로 변경하거나, 또는 기 설정된 값만큼 증가 또는 감소시킬 수도 있다.
도 3은 도 1의 동적 전압 주파수 스케일링 방법에서 단위 작업 부하율이 계산되는 일 예를 나타내는 순서도이다.
도 3을 참조하면, 도 1의 동적 전압 주파수 스케일링 방법은 단위 구간마다 마이크로프로세서의 액티브 구간을 계산(S220)하고, 단위 구간마다 마이크로프로세서의 아이들 구간을 계산(S240)하며, 액티브 구간 및 아이들 구간에 기초하여 단위 작업 부하율을 추정(S260)함으로써 마이크로프로세서의 단위 작업 부하율을 계산할 수 있다. 일 실시예에서, 단위 작업 부하율의 계산은 아래 [수식 1]을 이용하여 이루어질 수 있다.
[수식 1]
Figure 112009068273223-PAT00004
(상기식에서, UWR은 단위 작업 부하율을 나타내고, UT는 단위 구간을 나타내며, AT는 단위 구간에서의 액티브 구간을 나타내고, IT는 단위 구간에서의 아이들 구간을 나타낸다.)
상술한 바와 같이, 마이크로프로세서의 액티브 구간은 마이크로프로세서에 메인 클럭 신호가 인가되는 구간에 상응할 수 있고, 마이크로프로세서의 아이들 구간은 마이크로프로세서에 메인 클럭 신호가 인가되지 않는 구간에 상응할 수 있다. 예를 들어, 액티브 구간은 이동통신 단말기의 트래픽 모드(traffice mode) 및 대기 모드(standby mode)에 상응할 수 있고, 아이들 구간은 슬립 모드(sleep mode)에 상응할 수 있다. 이러한 액티브 구간과 아이들 구간은 운영 체제에 의하여 결정될 수 있는데, 운영 체제는 시스템의 동작 필요성에 기초하여 마이크로프로세서를 액티브 구간 또는 아이들 구간으로 즉시 전환시킬 수 있다. 마이크로프로세서에 인가되는 메인 클럭 신호의 주파수는 마이크로프로세서의 동작 주파수에 상응할 수 있다. 한 편, [수식 1]은 예시적인 것으로서, 마이크로프로세서의 성능 및 요구되는 조건에 따라 다양하게 수정 및 변경될 수 있다.
도 4는 도 3의 단위 작업 부하율 계산을 설명하기 위한 그래프이다.
도 4를 참조하면, 도 1의 동적 전압 주파수 스케일링 방법은 제 1 액티브 구간(AT1) 및 제 1 아이들 구간(IT1)에 기초하여 제 1 단위 작업 부하율을 계산할 수 있고, 제 2 액티브 구간(AT2) 및 제 2 아이들 구간(IT2)에 기초하여 제 2 단위 작업 부하율을 계산할 수 있다. 구체적으로, 제 1 단위 작업 부하율은 UWR1 = (UT1-IT1)/UT1 = AT1/UT1로 계산될 수 있고, 제 2 단위 작업 부하율은 UWR2 = (UT2-IT2)/UT2 = AT2/UT2로 계산될 수 있다. 도 4에 도시된 바와 같이, 제 1 단위 구간(UT1)의 길이와 제 2 단위 구간(UT2)의 길이는 고정된 값으로서 서로 동일하다. 한편, 제 1 단위 작업 부하율과 제 2 단위 작업 부하율이 계산됨에 따라, 제 1 단위 작업 부하율과 제 2 단위 작업 부하율 사이의 단위 작업 부하율의 변화량이 계산될 수 있다. 즉, 단위 작업 부하율의 변화량은 dUWR = (UWR2-UWR1) = (AT2-AT1)/UT일 수 있다. 이러한 방식으로, 단위 작업 부하율의 변화량은 지속 구간이 종료되는 시점까지 계속적으로 계산되며, 지속 구간은 단위 작업 부하율의 변화량에 기초하여 계속적으로 변경될 수 있다. 이 때, 지속 구간의 길이는 각각의 단위 작업 부하율의 변화량에 기초하여 변경될 수 있지만, 상술한 바와 같이, 사용자의 설정에 따라 일부 단위 작업 부하율의 변화량에만 기초하여 변경될 수도 있다.
도 5는 도 1의 동적 전압 주파수 스케일링 방법에서 지속 구간의 길이가 변경되는 일 예를 나타내는 순서도이다.
도 5를 참조하면, 도 1의 동적 전압 주파수 스케일링 방법은 단위 작업 부하율의 변화량과 안정 기준 값을 비교(S310)하여, 그 비교 결과에 따라 지속 구간의 길이를 변경할 수 있다. 도 1의 동적 전압 주파수 스케일링 방법은 단위 작업 부하율의 변화량이 안정 기준 값보다 큰 값인지 여부를 판단(S320)하여, 단위 작업 부하율의 변화량이 안정 기준 값보다 크면, 지속 구간의 길이를 지수적으로 증가(S330)시킨다. 또한, 단위 작업 부하율의 변화량이 안정 기준 값보다 작은 값인지 여부를 판단(S340)하여, 단위 작업 부하율의 변화량이 안정 기준 값보다 작으면, 지속 구간의 길이를 지수적으로 감소(S350)시킨다. 나아가, 단위 작업 부하율의 변화량이 안정 기준 값과 동일하면 지속 구간의 길이를 유지(S360)시킨다. 한편, 지속 구간의 길이는 기 설정된 최대 구간 길이와 기 설정된 최소 구간 길이 사이에서 변경될 수 있다. 일 실시예에서, 지속 구간의 길이 변경은 아래 [수식 2]를 이용하여 이루어질 수 있다.
[수식 2]
Figure 112009068273223-PAT00005
(상기식에서, FPR은 변경 전의 지속 구간의 길이를 나타내고, SPR은 변경 후의 지속 구간의 길이를 나타내며, r은 사용자가 결정하는 지수의 비를 나타내고, dUWR은 단위 작업 부하율의 변화량을 나타내며, SV는 안정 기준 값을 나타낸다.)
상술한 바와 같이, 도 1의 동적 전압 주파수 스케일링 방법은 단위 작업 부하율의 변화량이 큰 경우에는, 마이크로프로세서의 동작 상태를 정확하게 반영하기 위하여, 지속 구간의 길이를 지수적으로 감소(S350)시킬 수 있고, 단위 작업 부하율의 변화량이 작은 경우에는, 불필요한 전력 레벨 변경에 따른 마이크로프로세서의 성능 저하 및 전력 소모를 감소시키기 위하여, 지속 구간을 지수적으로 증가(S330)시킬 수 있다. 이와 같이, 도 1의 동적 전압 주파수 스케일링 방법은 지속 구간에서 마이크로프로세서의 동작 상태에 기초하여 해당 지속 구간의 길이를 적응적으로 변경함으로써 동적 전압 주파수 스케일링을 최적으로 수행할 수 있다. 한편, [수식 2]는 예시적인 것으로서, 마이크로프로세서의 성능 및 요구되는 조건에 따라 다양하게 수정 및 변경될 수 있다.
도 6은 도 5의 지속 구간 길이 변경을 설명하기 위한 그래프이다.
도 6을 참조하면, 도 1의 동적 전압 주파수 스케일링 방법은 지속 구간에서 지속 구간의 길이를 계속적으로 변경할 수 있다. 종래의 동적 전압 주파수 스케일링 방법은 지속 구간의 길이가 고정되어 있거나 선형적으로 변경되기 때문에, 마이크로프로세서의 동작 상태를 정확하게 반영할 수 없었던 반면, 도 1의 동적 전압 주파수 스케일링 방법은 단위 구간(UT1, ..., UTn)마다 단위 작업 부하율을 계산하고, 이러한 단위 작업 부하율의 변화량에 기초하여 지속 구간의 길이를 지수적으로 계속 변경함으로써, 마이크로프로세서의 동작 상태를 정확하게 반영할 수 있다. 상술한 바와 같이, 단위 구간(UT1, ..., UTn)의 길이는 고정된 값으로서 서로 동일하다. 도 6에 도시된 바와 같이, 도 1의 동적 전압 주파수 스케일링 방법은 단위 구간(UT1, ..., UTn)마다 단위 작업 부하율을 계산하고, 이러한 단위 작업 부하율의 변화량에 기초하여 지속 구간의 길이를 지수적으로 계속 변경함으로써, 마이크로프 로세서의 동작 상태에 대한 높은 반응성을 확보할 수 있다. 도 1의 동적 전압 주파수 스케일링 방법은 지속 구간에서 단위 작업 부하율의 변화량에 기초하여 지속 구간의 길이를 지수적으로 계속 변경하다가, 단위 구간(UT1, ..., UTn)의 길이들의 합이 지속 구간의 길이와 동일해지는 지속 구간의 종료 시점에서 마이크로프로세서의 전력 레벨을 변경할 수 있다.
도 7은 도 1의 동적 전압 주파수 스케일링 방법에서 마이크로프로세서의 전력 레벨이 변경되는 일 예를 나타내는 순서도이다.
도 7을 참조하면, 도 1의 동적 전압 주파수 스케일링 방법은 구간 작업 부하율을 업 기준 값 및 다운 기준 값과 비교(S410)하여, 그 비교 결과에 따라 마이크로프로세서의 전력 레벨을 변경할 수 있다. 여기서, 마이크로프로세서의 구간 작업 부하율은 지속 구간에서 마이크로프로세서의 단위 작업 부하율들을 누적한 값에 상응할 수 있다. 도 1의 동적 전압 주파수 스케일링 방법은 구간 작업 부하율이 업 기준 값보다 큰 값인지 여부를 판단(S420)하여, 구간 작업 부하율이 업 기준 값보다 크면, 마이크로프로세서의 전력 레벨을 증가(S430)시킨다. 또한, 구간 작업 부하율이 다운 기준 값보다 작은 값인지 여부를 판단(S440)하여, 구간 작업 부하율이 다운 기준 값보다 작으면, 마이크로프로세서의 전력 레벨을 감소(S450)시킨다. 나아가, 구간 작업 부하율이 업 기준 값과 다운 기준 값 사이이면, 마이크로프로세서의 전력 레벨을 유지(S460)시킨다. 마이크로프로세서의 전력 레벨은 기 설정된 최대 전력 레벨과 기 설정된 최소 전력 레벨 사이에서 변경될 수 있다. 일 실시예에서, 마이크로프로세서의 전력 레벨 변경은 복수의 이산적인 전력 레벨들에 대하여 전력 레벨을 단계적으로 증가 또는 감소시키는 방식으로 수행될 수 있다. 예를 들어, 마이크로프로세서의 전력 레벨 변경은 500MHz, 250MHz, 125MHz와 같은 이산적인 동작 주파수들에 대하여 동작 주파수가 단계적으로 증가 또는 감소되는 방식으로 이루어질 수 있다. 이러한 이산적인 전력 레벨들의 개수, 수치 등은 마이크로프로세서의 기능, 종류 등에 따라 다양하게 변경될 수 있다.
한편, 마이크로프로세서의 구간 작업 부하율의 계산은 지속 구간에서 마이크로프로세서의 단위 작업 부하율이 누적됨으로써 이루어질 수 있다. 일 실시예에서, 마이크로프로세서의 구간 작업 부하율의 계산은 최근의 단위 작업 부하율에 큰 가중치(C)를 부여하고, 오래 전의 단위 작업 부하율에는 작은 가중치(C)를 부여하는 방식으로 이루어질 수 있다. 일 실시예에서, 마이크로프로세서의 구간 작업 부하율의 계산은 아래 [수식 3]을 이용하여 이루어질 수 있다.
[수식 3]
Figure 112009068273223-PAT00006
(상기식에서, PWR은 구간 작업 부하율을 나타내고, UWRx는 x번째 단위 작업 부하율을 나타내며, C는 가중치를 나타내고, 제 1 지속 구간은 n개의 단위 구간의 합에 상응한다.)
다만, 마이크로프로세서의 단위 작업 부하율에 가중치를 부여하는 것은 시스템에 큰 부담으로 작용할 수 있기 때문에, 시스템의 성능에 따라 선택적으로 수행 될 수 있다. 따라서, [수식 3]에서 가중치(C)는 마이크로프로세서의 기능, 종류 등에 따라 다양하게 결정될 수 있다. 예를 들어, 이동통신 단말기 등과 같은 모바일 시스템에서는 단위 작업 부하율에 가중치(C)를 부여하는 것이 시스템에 큰 부담으로 작용할 수 있으므로, 가중치(C)를 0으로 설정함으로써 마이크로프로세서의 단위 작업 부하율에 가중치가 부여되지 않도록 할 수 있다. 한편, [수식 3]은 예시적인 것으로서, 마이크로프로세서의 성능 및 요구되는 조건에 따라 다양하게 수정 및 변경될 수 있다.
도 8은 도 7의 전력 레벨 변경을 설명하기 위한 그래프이다.
도 8을 참조하면, 도 1의 동적 전압 주파수 스케일링 방법은 복수의 이산적인 전력 레벨들에 대하여 전력 레벨을 단계적으로 증가 또는 감소시키는 방식으로 마이크로프로세서의 전력 레벨을 변경할 수 있다. 또한, 복수의 이산적인 전력 레벨들은 하나의 전력 레벨이 다른 하나의 전력 레벨의 2배에 상응할 수 있다. 예를 들어, 제 3 레벨(LEVEL3)은 제 2 레벨(LEVEL2)의 2배에 상응하며, 제 2 레벨(LEVEL2)은 제 1 레벨(LEVEL1)의 2배에 상응할 수 있다. 설명의 편의를 위하여, 제 n 지속 구간은 제 n 시점(T(n))에서 제 n+1 시점(T(n+1))까지라고 정의한다. 예를 들어, 도 1의 동적 전압 주파수 스케일링 방법은 제 1 지속 구간에서의 구간 작업 부하율이 업 기준 값보다 크면 마이크로프로세서의 전력 레벨을 제 1 레벨(LEVEL1)에서 제 2 레벨(LEVEL2)로 증가시킬 수 있다. 또한, 제 3 지속 구간에서의 구간 작업 부하율이 다운 기준 값보다 작으면 마이크로프로세서의 전력 레벨을 제 3 레벨(LEVEL3)에서 제 2 레벨(LEVEL2)로 감소시킬 수 있다. 나아가, 제 5 지속 구간에서의 구간 작업 부하율이 업 기준 값과 다운 기준 값 사이이면, 제 6 지속 구간에서의 마이크로프로세서의 전력 레벨은 제 3 레벨(LEVEL3)로 유지시킬 수 있다. 이와 같이, 도 1의 동적 전압 주파수 스케일링 방법은 제 n 지속 구간에서의 구간 작업 부하율을 업 기준 값 및 다운 기준 값과 비교함으로써 제 n+1 지속 구간에서의 마이크로프로세서의 전력 레벨을 결정할 수 있다.
도 9는 도 1의 동적 전압 주파수 스케일링 방법에서 외부 커맨드에 기초하여 마이크로프로세서의 전력 레벨이 변경되는 일 예를 나타내는 순서도이다.
도 9를 참조하면, 도 1의 동적 전압 주파수 스케일링 방법은 지속 구간에서 마이크로프로세서의 전력 레벨을 유지(S520)하다가, 외부 커맨드가 입력(S540)되면, 마이크로프로세서의 전력 레벨을 기 설정된 전력 레벨로 변경(S560)할 수 있다. 도 1의 동적 전압 주파수 스케일링 방법은 제 n 지속 구간에서의 마이크로프로세서의 구간 작업 부하율에 기초하여 제 n+1 지속 구간에서의 마이크로프로세서의 전력 레벨을 예측하는 것이기 때문에, 예측된 마이크로프로세서의 전력 레벨은 마이크로프로세서에 실제 요구되는 전력 레벨과 다를 수 있다. 이러한 경우에, 도 1의 동적 전압 주파수 스케일링 방법은 외부 커맨드에 기초하여 마이크로프로세서의 전력 레벨을 기 설정된 전력 레벨로 변경(S560)함으로써, 마이크로프로세서의 전력 레벨을 마이크로프로세서에 실제 요구되는 전력 레벨로 만들 수 있다. 일 실시예에서, 기 설정된 전력 레벨은 이산적인 전력 레벨들이고, 외부 커맨드에 기초하여 하나의 전력 레벨이 선택될 수 있다. 다른 실시예에서, 기 설정된 전력 레벨은 기 설정된 최대 전력 레벨 또는 기 설정된 최소 전력 레벨일 수 있다. 실시예에 따라, 외부 커맨드는 마이크로프로세서의 변경된 전력 레벨을 얼마동안 유지시킬 지에 관한 정보를 포함할 수 있다.
도 10은 도 9의 전력 레벨 변경을 설명하기 위한 그래프이다.
도 10을 참조하면, 도 1의 동적 전압 주파수 스케일링 방법은 마이크로프로세서의 전력 레벨을 유지하다가, 제 1 외부 커맨드(COMMAND1) 또는 제 2 외부 커맨드(COMMAND2)가 입력되면, 마이크로프로세서의 전력 레벨을 기 설정된 제 1 레벨(PD LEVEL1) 또는 기 설정된 제 2 레벨(PD LEVEL2)로 변경할 수 있다. 설명의 편의를 위하여, 제 n 지속 구간은 제 n 시점(T(n))에서 제 n+1 시점(T(n+1))까지라고 정의한다. 예를 들어, 도 1의 동적 전압 주파수 스케일링 방법은 제 2 지속 구간에서의 마이크로프로세서의 구간 작업 부하율에 기초하여 제 3 지속 구간에서의 마이크로프로세서의 전력 레벨이 제 3 레벨(LEVEL3)로 결정되면, 제 3 지속 구간에서 마이크로프로세서의 전력 레벨을 제 3 레벨(LEVEL3)로 유지할 수 있다. 그러나, 제 3 지속 구간에서의 마이크로프로세서의 전력 레벨이 제 3 지속 구간에서 실제 요구되는 전력 레벨에 비하여 작다고 판단되는 경우, 도 1의 동적 전압 주파수 스케일링 방법은 제 1 외부 커맨드(COMMAND1)에 기초하여 제 3 지속 구간에서의 마이크로프로세서의 전력 레벨을 기 설정된 제 1 레벨(PD LEVEL1)로 변경할 수 있다. 마찬가지로, 제 4 지속 구간에서의 마이크로프로세서의 구간 작업 부하율에 기초하여 제 5 지속 구간에서의 마이크로프로세서의 전력 레벨이 제 3 레벨(LEVEL3)로 결정되면, 제 5 지속 구간에서 마이크로프로세서의 전력 레벨을 제 3 레벨(LEVEL3)로 유지할 수 있다. 그러나, 제 5 지속 구간에서의 마이크로프로세서의 전력 레벨이 제 5 지속 구간에서 실제 요구되는 전력 레벨에 비하여 크다고 판단되는 경우, 도 1의 동적 전압 주파수 스케일링 방법은 제 2 외부 커맨드(COMMAND2)에 기초하여 제 5 지속 구간에서의 마이크로프로세서의 전력 레벨을 기 설정된 제 2 레벨(PD LEVEL2)로 변경할 수 있다. 도 10에서는 마이크로프로세서의 변경된 전력 레벨이 해당 지속 구간의 종료 시점까지 유지되는 것으로 도시되어 있지만, 이것은 하나의 예시로서 다양하게 설계 변경될 수 있다.
도 11은 도 1의 동적 전압 주파수 스케일링 방법에서 외부 커맨드에 기초하여 마이크로프로세서의 전력 레벨이 변경되는 다른 예를 나타내는 순서도이다.
도 11을 참조하면, 도 1의 동적 전압 주파수 스케일링 방법은 지속 구간에서 마이크로프로세서의 전력 레벨을 유지(S620)하다가, 외부 커맨드가 입력(S640)되면, 마이크로프로세서의 전력 레벨을 기 설정된 값만큼 증가 또는 감소(S660)시킬 수 있다. 도 1의 동적 전압 주파수 스케일링 방법은 제 n 지속 구간에서의 마이크로프로세서의 구간 작업 부하율에 기초하여 제 n+1 지속 구간에서의 마이크로프로세서의 전력 레벨을 예측하는 것이기 때문에, 예측된 마이크로프로세서의 전력 레벨은 마이크로프로세서에 실제 요구되는 전력 레벨과 다를 수 있다. 이러한 경우에, 도 1의 동적 전압 주파수 스케일링 방법은 외부 커맨드에 기초하여 마이크로프로세서의 전력 레벨을 기 설정된 값만큼 증가 또는 감소(S660)시킴으로써, 마이크로프로세서의 전력 레벨을 마이크로프로세서에 실제 요구되는 전력 레벨로 만들 수 있다. 예를 들어, 도 9에서는 마이크로프로세서의 전력 레벨을 조악 튜닝(coarse tuning)하는 것이라면, 도 11에서는 마이크로프로세서의 전력 레벨을 미세 튜 닝(fine tuning)하는 것으로 볼 수 있다. 실시예에 따라, 외부 커맨드는 마이크로프로세서의 변경된 전력 레벨을 얼마동안 유지시킬 지에 관한 정보를 포함할 수 있다.
도 12는 도 11의 전력 레벨 변경을 설명하기 위한 그래프이다.
도 12를 참조하면, 도 1의 동적 전압 주파수 스케일링 방법은 마이크로프로세서의 전력 레벨을 유지하다가, 제 1 외부 커맨드(COMMAND1) 또는 제 2 외부 커맨드(COMMAND2)가 입력되면, 마이크로프로세서의 전력 레벨을 기 설정된 레벨(
Figure 112009068273223-PAT00007
P)만큼 증가 또는 감소시킬 수 있다. 설명의 편의를 위하여, 제 n 지속 구간은 제 n 시점(T(n))에서 제 n+1 시점(T(n+1))까지라고 정의한다. 도 1의 동적 전압 주파수 스케일링 방법은 제 2 지속 구간에서의 마이크로프로세서의 구간 작업 부하율에 기초하여 제 3 지속 구간에서의 마이크로프로세서의 전력 레벨이 제 3 레벨(LEVEL3)로 결정되면, 제 3 지속 구간에서 마이크로프로세서의 전력 레벨을 제 3 레벨(LEVEL3)로 유지할 수 있다. 그러나, 제 3 지속 구간에서의 마이크로프로세서의 전력 레벨이 제 3 지속 구간에서 실제 요구되는 전력 레벨에 비하여 작다고 판단되는 경우, 도 1의 동적 전압 주파수 스케일링 방법은 제 1 외부 커맨드(COMMAND1)에 기초하여 제 3 지속 구간에서의 마이크로프로세서의 전력 레벨을 기 설정된 값(
Figure 112009068273223-PAT00008
P)만큼 증가시킬 수 있다. 마찬가지로, 제 4 지속 구간에서의 마이크로프로세서의 구간 작업 부하율에 기초하여 제 5 지속 구간에서의 마이크로프로세서의 전력 레벨이 제 3 레벨(LEVEL3)로 결정되면, 제 5 지속 구간에서 마이크로프로세서의 전력 레벨을 제 3 레벨(LEVEL3)로 유지할 수 있다. 그러나, 제 5 지속 구간에서의 마이크로프로세서 의 전력 레벨이 제 5 지속 구간에서 실제 요구되는 전력 레벨에 비하여 크다고 판단되는 경우, 도 1의 동적 전압 주파수 스케일링 방법은 제 2 외부 커맨드(COMMAND2)에 기초하여 제 5 지속 구간에서의 마이크로프로세서의 전력 레벨을 기 설정된 값(
Figure 112009068273223-PAT00009
P)만큼 감소시킬 수 있다. 도 12에서는 마이크로프로세서의 변경된 전력 레벨이 해당 지속 구간의 종료 시점까지 유지되는 것으로 도시되어 있지만, 이것은 하나의 예시로서 다양하게 설계 변경될 수 있다.
도 13은 도 1의 동적 전압 주파수 스케일링 방법에서 외부 커맨드에 기초하여 지속 구간의 길이가 변경되는 일 예를 나타내는 순서도이다.
도 13을 참조하면, 도 1의 동적 전압 주파수 스케일링 방법은 지속 구간의 길이를 단위 구간마다 계속적으로 변경(S720)하다가, 외부 커맨드가 입력(S740)되면, 지속 구간의 길이를 기 설정된 길이로 변경(S760)할 수 있다. 상술한 바와 같이, 도 1의 동적 전압 주파수 스케일링 방법은 마이크로프로세서의 동작 상태가 급변하는 경우에 지속 구간의 길이를 지수적으로 감소시키고, 마이크로프로세서의 동작 상태가 일정한 경우에 지속 구간의 길이를 지수적으로 증가시킴으로써, 지속 구간에서의 마이크로프로세서의 동작 상태에 기초하여 해당 지속 구간의 길이를 지수적으로 변경할 수 있다. 그러나, 마이크로프로세서가 어플리케이션 등을 실행함에 있어서 요구되는 조건에 따라 마이크로프로세서의 동작 상태가 일정하더라도 지속 구간의 길이를 감소시키거나, 마이크로프로세서의 동작 상태가 급변하더라도 지속 구간의 길이를 증가시킬 필요가 있다. 이러한 경우에, 도 1의 동적 전압 주파수 스케일링 방법은 외부 커맨드에 기초하여 지속 구간의 길이를 기 설정된 길이로 변 경(S760)함으로써 어플리케이션 등을 실행함에 있어서 요구되는 조건을 충족시킬 수 있다. 일 실시예에서, 기 설정된 길이는 기 설정된 최대 길이 또는 기 설정된 최소 길이일 수 있다. 실시예에 따라, 외부 커맨드는 변경된 지속 구간의 길이를 얼마동안 유지시킬 지에 관한 정보를 포함할 수 있다.
도 14는 도 13의 지속 구간 길이 변경을 설명하기 위한 그래프이다.
도 14를 참조하면, 도 1의 동적 전압 주파수 스케일링 방법은 마이크로프로세서의 단위 작업 부하율의 변화량에 기초하여 지속 구간의 길이를 변경하다가, 외부 커맨드(COMMAND)가 입력되면, 지속 구간의 길이를 기 설정된 길이(PD LENGTH)로 변경할 수 있다. 예를 들어, 도 1의 동적 전압 주파수 스케일링 방법은 제 3 단위 구간(UT3)에서 외부 커맨드(COMMAND)가 입력되면, 지속 구간의 길이를 기 설정된 길이(PD LENGTH)로 변경하고, 단위 구간(UT1, ..., UTn)의 길이들의 합이 기 설정된 길이(PD LENGTH)와 같아지는 지속 구간의 종료 시점에서 마이크로프로세서의 전력 레벨을 변경할 수 있다. 도 14에서는 변경된 지속 구간의 길이가 지속 구간의 종료 시점까지 유지되는 것으로 도시되어 있지만, 이것은 하나의 예시로서 다양하게 설계 변경될 수 있다. 실시예에 따라, 기 설정된 길이(PD LENGTH)는 기 설정된 최대 길이 또는 기 설정된 최소 길이일 수 있다.
도 15는 도 1의 동적 전압 주파수 스케일링 방법에서 외부 커맨드에 기초하여 지속 구간의 길이가 변경되는 다른 예를 나타내는 순서도이다.
도 15를 참조하면, 도 1의 동적 전압 주파수 스케일링 방법은 지속 구간의 길이를 단위 구간마다 계속적으로 변경(S820)하다가, 외부 커맨드가 입력(S840)되 면, 지속 구간의 길이를 기 설정된 값만큼 증가 또는 감소(S860)시킬 수 있다. 상술한 바와 같이, 도 1의 동적 전압 주파수 스케일링 방법은 마이크로프로세서의 동작 상태가 급변하면 지속 구간의 길이를 지수적으로 감소시키고, 마이크로프로세서의 동작 상태가 일정하면 지속 구간의 길이를 지수적으로 증가시킴으로써, 지속 구간에서의 마이크로프로세서의 동작 상태에 기초하여 해당 지속 구간의 길이를 지수적으로 변경할 수 있다. 그러나, 마이크로프로세서가 어플리케이션 등을 실행함에 있어서 요구되는 조건에 따라 마이크로프로세서의 동작 상태가 일정하더라도 지속 구간의 길이를 감소시키거나, 마이크로프로세서의 동작 상태가 급변하더라도 지속 구간의 길이를 증가시킬 필요가 있다. 이러한 경우에, 도 1의 동적 전압 주파수 스케일링 방법은 외부 커맨드에 기초하여 지속 구간의 길이를 기 설정된 값만큼 증가 또는 감소(S860)시킴으로써 어플리케이션 등을 실행함에 있어서 요구되는 조건을 충족시킬 수 있다. 예를 들어, 도 13에서는 지속 구간의 길이를 조악 튜닝하는 것이라면, 도 15에서는 지속 구간의 길이를 미세 튜닝하는 것으로 볼 수 있다. 실시예에 따라, 외부 커맨드는 변경된 지속 구간의 길이를 얼마동안 유지시킬 지에 관한 정보를 포함할 수 있다.
도 16은 도 15의 지속 구간 길이 변경을 설명하기 위한 그래프이다.
도 16을 참조하면, 도 1의 동적 전압 주파수 스케일링 방법은 마이크로프로세서의 단위 작업 부하율의 변화량에 기초하여 지속 구간의 길이를 변경하다가, 외부 커맨드(COMMAND)가 입력되면, 지속 구간의 길이를 기 설정된 값(
Figure 112009068273223-PAT00010
L)만큼 감소 또는 증가시킬 수 있다. 예를 들어, 도 1의 동적 전압 주파수 스케일링 방법은 제 3 단위 구간(UT3)에서 외부 커맨드(COMMAND)가 입력되면, 지속 구간의 길이를 기 설정된 값(
Figure 112009068273223-PAT00011
L)만큼 감소시키고, 단위 구간(UT1, ..., UTn)의 길이들의 합이 기 설정된 값(
Figure 112009068273223-PAT00012
L)만큼 감소된 지속 구간의 길이와 같아지는 지속 구간의 종료 시점에서 마이크로프로세서의 전력 레벨을 변경할 수 있다. 도 16에서는 변경된 지속 구간의 길이가 지속 구간의 종료 시점까지 유지되는 것으로 도시되어 있지만, 이것은 하나의 예시로서 다양하게 설계 변경될 수 있다.
도 17은 도 1의 동적 전압 주파수 스케일링 방법을 수행하는 전력 관리 장치의 일 예를 나타내는 블록도이다.
도 17을 참조하면, 전력 관리 장치(100)는 작업 부하 검출부(110), 전력 관리부(120) 및 전압-클럭 공급부(130)를 포함함으로써, 마이크로프로세서(210)의 전력 레벨을 관리할 수 있다. 이러한 전력 관리 장치(100)는 이동 통신 단말기 등의 전자 기기, 또는 전자 기기의 내부에 포함되는 별도의 장치일 수 있다. 도 17에는 도시되지 않았으나, 전력 관리 장치(100)는 시스템 틱과 같은 주기적인 신호를 발생하기 위한 시스템 타이머 및 외부 커맨드나 주기적인 신호 등과 같은 특정 신호들을 제어하기 위한 컨트롤러 등을 더 포함할 수 있다.
마이크로프로세서(210)는 중앙 처리 유닛(CPU), 디지털 신호 처리기(DSP), 마이크로컨트롤러 등일 수 있으며, 전자 기기 내부에서 특정 태스크(task)를 수행할 수 있다. 마이크로프로세서(210)는 전력 관리 장치(100)의 전압-클럭 공급부(130)로부터 공급되는 메인 클럭 신호(MCLK) 및 메인 전원 전압(MVDD)을 입력받아, 메인 클럭 신호(MCLK)에 동기하여 동작할 수 있다. 일 실시예에서, 마이크로프 로세서(210)는 액티브 구간(ATP)에서 메인 클럭 신호(MCLK)를 입력받을 수 있고, 아이들 구간(ITP)에서 메인 클럭 신호(MCLK)를 입력받지 않을 수 있다. 상술한 바와 같이, 액티브 구간(ATP) 및 아이들 구간(ITP)은 운영 체제에 의하여 결정될 수 있고, 운영 체제가 아이들 구간(ITP)을 결정하면, 액티브 구간(ATP)은 단위 구간에서 아이들 구간(ITP)을 제외한 구간으로 결정될 수 있다. 도 17에서는 메인 클럭 신호(MCLK)의 입력 동작이 마이크로프로세서(210) 내부에 실장된 스위치에 의하여 수행되는 것으로 도시되어 있으나, 마이크로프로세서(210) 외부에 별도로 구비된 스위치에 의하여 수행될 수도 있다. 메인 클럭 신호(MCLK)의 주파수는 마이크로프로세서(210)의 동작 주파수에 상응할 수 있고, 메인 전원 전압(MVDD)은 마이크로프로세서(210)의 동작 전압에 상응할 수 있다.
작업 부하 검출부(110)는 마이크로프로세서(210)의 동작 상태를 모니터링함으로써, 마이크로프로세서(210)의 단위 작업 부하율(UWR) 및 지속 구간의 길이(DPL)를 전력 관리부(120)에 출력할 수 있다. 즉, 작업 부하 검출부(110)는 제 1 지속 구간에서 단위 구간마다 마이크로프로세서(210)의 단위 작업 부하율(UWR)을 계산하는 단계(S110), 마이크로프로세서(210)의 단위 작업 부하율(UWR)에 기초하여 단위 작업 부하율의 변화량(dUWR)을 계산하는 단계(S120) 및 단위 작업 부하율의 변화량(dUWR)에 기초하여 제 1 지속 구간의 길이(DPL)를 지수적으로 변경하는 단계(S130)를 수행할 수 있다. 구체적으로, 작업 부하 검출부(110)는 단위 구간마다 마이크로프로세서(210)로부터 액티브 구간(ATP) 및 아이들 구간(ITP)에 대한 정보를 입력받고, 이러한 액티브 구간(ATP) 및 아이들 구간(ITP)에 기초하여 마이크로 프로세서(210)의 단위 작업 부하율(UWR)을 순차적으로 계산할 수 있다. 또한, 작업 부하 검출부(110)는 단위 작업 부하율의 변화량(dUWR)에 기초하여 지속 구간의 길이(DPL)를 지수적으로 계속 변경할 수 있다. 실시예에 따라, 작업 부하 검출부(110)는 외부 커맨드에 기초하여 지속 구간의 길이(DPL)를 기 설정된 길이로 변경하거나, 또는 기 설정된 값만큼 증감시킬 수 있다. 다만, 지속 구간의 길이(DPL)를 변경하는 것에 대해서는 상기에서 구체적으로 설명한 바 있으므로, 중복되는 설명을 생략하기로 한다. 이후, 작업 부하 검출부(110)는 지속 구간의 길이(DPL)가 해당 지속 구간 내의 단위 구간들의 합과 동일해지는 지속 구간의 종료 시점에서 지속 구간의 길이(DPL)를 전력 관리부(120)에 출력할 수 있다.
전력 관리부(120)는 작업 부하 검출부(110)로부터 순차적으로 입력되는 단위 작업 부하율(UWR) 및 지속 구간의 종료 시점에서 입력되는 지속 구간의 길이(DPL)에 기초하여 마이크로프로세서(210)의 구간 작업 부하율(PWR)을 계산할 수 있고, 이러한 구간 작업 부하율(PWR)에 기초하여 마이크로프로세서(210)의 전력 레벨을 변경하기 위한 레벨 제어 신호(LCTR)를 전압-클럭 공급부(130)에 출력할 수 있다. 즉, 전력 관리부(120)는 제 1 지속 구간에서 마이크로프로세서(210)의 단위 작업 부하율(UWR)을 누적함으로써 마이크로프로세서(210)의 구간 작업 부하율(PWR)을 계산하는 단계(S140) 및 마이크로프로세서(210)의 구간 작업 부하율(PWR)에 기초하여 마이크로프로세서의 전력 레벨을 변경하는 단계(S150)의 일부를 수행할 수 있다. 전력 관리부(120)는 도 17에 도시된 바와 같이, 마이크로프로세서(210)의 외부에 별도의 하드웨어로 구현되는 물리적인 구성 요소일 수 있고, 다른 구성 요소에 적 어도 일부분이 통합된 형태로 구현될 수도 있다. 예를 들어, 전력 관리부(120)는 마이크로프로세서(210)의 일부일 수도 있고, 적어도 일부분이 소프트웨어로 구현되는 전력 관리 프로그램일 수 있다. 만약, 전력 관리부(120)가 전력 관리 프로그램인 경우에, 전력 관리 프로그램은 실행 가능한 코드의 형태로 메모리에 저장될 수 있고, 메모리에 저장된 코드는 마이크로프로세서(210) 등에 의해 수행될 수 있다. 이 경우, 전력 관리 프로그램은 마이크로프로세서(210)의 운영 체제에 의해 호출되는 서브루틴(sub-routine)의 형식으로 구현될 수 있다.
일 실시예에서, 전력 관리부(120)는 마이크로프로세서(210)의 단위 작업 부하율(UWR)에 가중치를 적용하는 방식으로 마이크로프로세서(210)의 구간 작업 부하율(PWR)을 계산할 수 있고, 이러한 구간 작업 부하율(PWR)을 업 기준 값 및 다운 기준 값과 비교함으로써 마이크로프로세서(210)의 전력 레벨을 증가 또는 감소시키기 위한 레벨 제어 신호(LCTR)를 생성할 수 있다. 실시예에 따라, 전력 관리부(120)는 외부 커맨드에 기초하여 마이크로프로세서(210)의 전력 레벨을 기 설정된 전력 레벨로 변경하거나, 또는 기 설정된 값만큼 증감시키기 위한 레벨 제어 신호(LCTR)를 생성할 수 있다. 다만, 마이크로프로세서(210)의 전력 레벨을 변경하는 것에 대해서는 상기에서 구체적으로 설명한 바 있으므로, 중복되는 설명을 생략하기로 한다. 이후, 전력 관리부(120)는 생성된 레벨 제어 신호(LCTR)를 전압-클럭 공급부(130)에 출력할 수 있다.
전압-클럭 공급부(130)는 전력 관리부(120)로부터 출력되는 레벨 제어 신호(LCTR)를 입력받아, 마이크로프로세서(210)에 공급되는 메인 클럭 신호(MCLK)의 주파수 또는 메인 전원 전압(MVDD)을 조절할 수 있다. 즉, 전압-클럭 공급부(130)는 마이크로프로세서(210)의 구간 작업 부하율(PWR)에 기초하여 마이크로프로세서의 전력 레벨을 변경하는 단계(S150)의 일부 및 제 2 지속 구간에서 마이크로프로세서(210)의 변경된 전력 레벨을 유지하는 단계(S160)를 수행할 수 있다. 상술한 바와 같이, 메인 클럭 신호(MCLK)의 주파수는 마이크로프로세서(210)의 동작 주파수에 상응할 수 있고, 메인 전원 전압(MVDD)은 마이크로프로세서(210)의 동작 전압에 상응할 수 있다. 실시예에 따라, 메인 클럭 신호(MCLK)의 주파수와 메인 전원 전압(MVDD)는 함께 조절될 수 있다. 예를 들어, 메인 클럭 신호(MCLK)의 주파수가 커지면, 메인 전원 전압(MVDD)도 커질 수 있다. 이와 같이, 전력 관리 장치(100)는 작업 부하 검출부(110), 전력 관리부(120) 및 전압-클럭 공급부(130)를 포함함으로써, 마이크로프로세서(210)의 동작 상태가 급변하는 경우에 지속 구간을 지수적으로 감소시킴으로써 마이크로프로세서(210)의 전력 레벨을 정확하게 예측할 수 있고, 마이크로프로세서(210)의 동작 상태가 일정한 경우에는 지속 구간을 지수적으로 증가시킴으로써 불필요한 전력 레벨 변경에 따른 마이크로프로세서(210)의 성능 저하 및 전력 소모를 방지할 수 있다.
도 18은 도 17의 전력 관리 장치에 포함되는 전력 관리부의 일 예를 나타내는 블록도이다.
도 18을 참조하면, 전력 관리부(120)는 계산부(121), 비교부(122) 및 스테이트 머신(123)을 포함할 수 있다. 도 18에는 도시되지 않았지만, 전력 관리부(120)는 지속 구간의 길이(DPL)에 따라 서로 다른 개수의 단위 작업 부하율(UWR)을 누적 하기 위하여, 계산부(121)의 복수의 버퍼들(41, 42, 43, 44), 복수의 증폭기들(51, 52, 53, 54, 55) 및 복수의 덧셈기들(61, 62, 63, 64)의 개수를 선택하기 위한 선택부를 더 포함할 수 있다.
계산부(121)는 작업 부하 검출부(110)로부터 지속 구간에서 단위 구간마다 순차적으로 입력되는 단위 작업 부하율(UWR)을 해당 지속 구간에서 누적함으로써 마이크로프로세서(210)의 구간 작업 부하율(PWR)을 계산할 수 있다. 이 때, 지속 구간의 길이(DPL)는 고정된 값이 아니라, 단위 작업 부하율의 변화량(dUWR)에 기초하여 지수적으로 계속 변경되는 것이므로, 각각의 지속 구간 별로 상이할 수 있다. 따라서, 계산부(121)에서 누적되는 단위 작업 부하율(UWR)의 개수도 각각의 지속 구간 별로 상이할 수 있다. 예를 들어, 제 1 지속 구간에서 마이크로프로세서(210)의 구간 작업 부하율(PWR)은 4개의 단위 작업 부하율(UWR)이 누적됨으로써 계산되는 반면, 제 2 지속 구간에서 마이크로프로세서(210)의 구간 작업 부하율(PWR)은 2개의 단위 작업 부하율(UWR)이 누적됨으로써 계산될 수 있다. 일 실시예에서, 계산부(121)는 단위 작업 부하율(UWR)에 가중치를 적용함으로써 구간 작업 부하율(PWR)을 계산할 수 있다.
일 실시예에서, 계산부(121)는 복수의 버퍼들(41, 42, 43, 44), 복수의 증폭기들(51, 52, 53, 54, 55), 복수의 덧셈기들(61, 62, 63, 64) 및 제산기(71)를 포함할 수 있다. 복수의 버퍼들(41, 42, 43, 44)은 임의의 저장 수단일 수 있으며, 예를 들어, 레지스터 또는 정해진 어드레스에 상응하는 메모리의 특정 공간 등일 수 있다. 복수의 버퍼들(41, 42, 43, 44)은 직렬 연결되어 전단으로부터 출력되는 단위 작업 부하율(Uk)을 저장하고, 일정한 지연 시간 경과 후에 다음 순번의 단위 작업 부하율(Uk+1)로서 후단에 출력하는 지연기들로 구현될 수 있다. 따라서, 작업 부하 검출부(110)로부터 입력된 단위 작업 부하율(UWR)은 시간이 지남에 따라 복수의 버퍼들(41, 42, 43, 44)을 거쳐 제 1 단의 단위 작업 부하율(U1)에서 제 k 단의 단위 작업 부하율(Uk)로 변경된다. 이러한 복수의 버퍼들(41, 42, 43, 44)은 래치(latch)들로 구현될 수 있으며, 이 경우 쉬프트 레지스터로서의 기능을 수행할 수 있다.
복수의 증폭기들(51, 52, 53, 54, 55)은 복수의 버퍼들(41, 42, 43, 44)의 각 단의 단위 작업 부하율들(U1, ..., Uk)을 증폭하여 출력할 수 있다. 복수의 증폭기들(51, 52, 53, 54, 55)의 이득(gain)은 모두 동일할 수도 있고, 서로 상이하게 설정될 수도 있다. 이것은 최근의 단위 작업 부하율(UWR)이 마이크로프로세서(210)의 현재 작업 부하율을 가장 잘 반영하고 있기 때문이다. 일 실시예에서, 최근의 단위 작업 부하율(UWR)일수록 더 큰 가중치를 적용하기 위하여, 첫 번째 증폭기(51)의 이득이 가장 크고, 후단으로 갈수록 이득이 점차 감소하여 마지막 증폭기(56)의 이득이 가장 작게 설정될 수 있다. 이것은 [수식 3]을 참조하여 설명될 수 있는데, 최근의 단위 작업 부하율(U1)에는 큰 가중치를 부여하고, 오래 전의 단위 작업 부하율(Uk)에는 작은 가중치를 부여하는 것이다. 복수의 덧셈기들(61, 62, 63, 64)은 전단의 출력과 각 증폭기의 출력을 합산하여 출력할 수 있다. 각 덧셈기는 전단의 증폭기들의 출력을 모두 합산하는 기능을 수행한다. 제산기(71)는 마지막 증폭기(64)의 출력을 증폭기들(51, 52, 53, 54, 55)의 이득의 합으로 나누어 구 간 작업 부하율(PWR)을 출력할 수 있다.
비교부(122)는 마이크로프로세서(210)의 구간 작업 부하율(PWR)을 업 기준 값(Ru) 및 다운 기준 값(Rd)과 각각 비교하여 마이크로프로세서(210)의 전력 레벨 상승 또는 전력 레벨 하강을 나타내는 비교 신호(CMP)를 발생할 수 있다. 일 실시예에서, 비교부(122)는 제 1 비교기(81) 및 제 2 비교기(82)를 포함할 수 있다. 제 1 비교기(81)는 구간 작업 부하율(PWR)과 업 기준 값(Ru)을 비교하여, 구간 작업 부하율(PWR)이 업 기준 값(Ru)보다 큰 경우 활성화되는 제 1 비교 신호(CMP1)를 출력할 수 있다. 제 2 비교기(82)는 구간 작업 부하율(PWR)과 다운 기준 값(Rd)을 비교하여, 구간 작업 부하율(PWR)이 다운 기준 값(Rd)보다 작은 경우 활성화되는 제 2 비교 신호(CMP2)를 출력할 수 있다.
제 1 및 제 2 비교 신호(CMP1, CMP2)는 스테이트 머신(123)에 저장되고, 스테이트 머신(123)은 출력 제어 신호(LCTR_OUT)에 응답하여, 레벨 제어 신호(LCTR)를 전압-클럭 공급부(130)로 출력한다. 예를 들어, 레벨 제어 신호(LCTR)는 레벨 상승 신호(LV_UP) 및 레벨 하강 신호(LV_DN)를 포함할 수 있다. 레벨 상승 신호(LV_UP)가 활성화된 경우에는 전력 레벨이 상승되어야 함을 나타내고, 레벨 하강 신호(LV_UP)가 활성화된 경우에는 전력 레벨이 하강되어야 함을 나타낸다. 레벨 상승 신호(LV_UP) 및 레벨 하강 신호(LV_DN)는 펄스(pulse) 형태로 활성화될 수 있다. 한편, 전력 관리부(120)가 소프트웨어적으로 구현되는 경우에는 스테이트 머신(123)은 마이크로프로세서(210) 내부 또는 외부의 레지스터일 수 있다. 실시예에 따라, 스테이트 머신(123)은 생략 가능하고, 스테이트 머신(120)이 생략된 경우에 는 제 1 및 제 2 비교 신호(CMP1, CMP2)가 직접 전압-클럭 공급부(130)에 레벨 제어 신호(LCTR)로서 제공될 수 있다.
도 19는 도 17의 전력 관리 장치에 포함되는 전압-클럭 공급부의 일 예를 나타내는 블록도이다.
도 19를 참조하면, 전압-클럭 공급부(130)는 전압 제어부(131) 및 클록 제어부(134)를 포함할 수 있다.
전압 제어부(130)는 기준 전압 발생기(132) 및 레귤레이터(133)를 포함할 수 있다. 이 경우, 전력 관리부(120)로부터 제공된 레벨 제어 신호(LCTR)는 기준 전압 발생기(132)로 입력되고, 기준 전압 발생기(132)는 레벨 제어 신호(LCTR)에 상응하도록 기준 전압을 조절하여 레귤레이터(133)에 제공할 수 있다. 레귤레이터(133)는 상기 조절된 기준 전압과 피드백되는 메인 전원 전압(MVDD)을 비교하여 레벨 제어 신호(LCTR)에 상응하는 크기의 메인 전원 전압(MVDD)을 마이크로프로세서(210)에 제공할 수 있다. 클록 제어부(134)는 도 19에 도시된 바와 같이 위상 고정 루프(PLL)의 형태로 구현될 수 있다. 이 경우, 전력 관리부(120)로부터 제공된 레벨 제어 신호(LCTR)는 주파수 분주기(139)로 입력되고, 주파수 분주기(139)는 레벨 제어 신호(LCTR)에 상응하는 분주비에 의해 메인 클록 신호(MCLK)를 분주하여 출력한다. 위상/주파수 검출기(135)는 기준 클록 신호(RCLK)와 분주된 클록 신호를 비교하여 업/다운 신호를 발생하고, 차지 펌프(136)는 업/다운 신호에 기초하여 제어 전압을 발생한다. 전압-제어 발진기(138)는 루프필터(137)에 의해 필터링된 제어 전압에 응답하여 메인 클록 신호(MCLK)를 발생하여 마이크로프로세서(210)에 제공 한다. 이와 같이, 전력 레벨의 변경을 위한 레벨 제어 신호(LCTR)를 이용하여 기준 전압 발생기(132)의 출력 및/또는 분주기(139)의 분주비를 조절하는 방식으로 마이크로프로세서(210)에 제공되는 메인 전원 전압(MVDD) 및/또는 메인 클록 신호(MCLK)의 주파수를 조절할 수 있다. 다만, 이것은 하나의 예시로서, 전압-클럭 공급부(130)는 다양하게 설계 변경될 수 있다.
도 20은 도 17의 전력 관리 장치를 포함하는 전자 기기의 일 예를 나타내는 블록도이다.
도 20을 참조하면, 전자 기기(200)는 마이크로프로세서(210), 메모리 장치(220), 저장 장치(230), 입출력 장치(240), 전원 장치(250) 및 전력 관리 장치(100)를 포함할 수 있다. 도 20에는 도시되지 않았지만, 전자 기기(200)는 비디오 카드, 사운드 카드, 메모리 카드, USB 장치와 데이터 통신을 수행하거나, 또는 다른 전자 기기들과 통신을 수행하기 위한 복수의 포트들을 더 포함할 수 있다. 전자 기기(200)는 컴퓨터, 노트북, 디지털 카메라, 비디오 캠코더, 휴대폰, 스마트폰, 피엠피(potable multimedia player; PMP), 피디에이(personal digital assistant; PDA), MP3 플레이어, 차량용 네비게이션 등일 수 있다.
마이크로프로세서(210)는 중앙 처리 유닛, 디지털 신호 처리 유닛, 마이크로 콘트롤러 등일 수 있으며, 전자 기기(200) 내부에서 특정 태스크를 수행할 수 있다. 이를 위하여, 마이크로프로세서(210)는 주변 구성요소 상호연결(peripheral component interconnect, PCI) 버스와 같은 확장 버스에 연결될 수 있다. 한편, 마이크로프로세서(210)는 전력 관리 장치(100)로부터 메인 클럭 신호(MCLK) 및 메인 전원 전압(MVDD)을 입력받아, 메인 클럭 신호(MCLK)에 동기하여 동작할 수 있다. 전력 관리 장치(100)는 마이크로프로세서(210)에 대하여 동적 전압 주파수 스케일링(DVFS)을 수행할 수 있다. 이를 위하여, 전력 관리 장치(100)는 작업 부하 검출부(110), 전력 관리부(120) 및 전압-클럭 공급부(130)를 포함할 수 있다. 상술한 바와 같이, 전력 관리 장치(100)는 마이크로프로세서(210)의 동작 상태가 급변하는 경우에, 지속 구간을 지수적으로 감소시킴으로써 마이크로프로세서(210)의 전력 레벨을 정확하게 예측할 수 있고, 마이크로프로세서(210)의 동작 상태가 일정한 경우에는, 지속 구간을 지수적으로 증가시킴으로써 불필요한 전력 레벨 변경에 따른 마이크로프로세서(210)의 성능 저하 및 전력 소모를 방지할 수 있다.
마이크로프로세서(210)는 적어도 하나 이상의 메모리 장치(220), 적어도 하나 이상의 저장 장치(230) 및 적어도 하나 이상의 입출력 장치(240) 등을 제어할 수 있다. 적어도 하나 이상의 메모리 장치(220)는 어드레스 버스, 제어 버스 및/또는 데이터 버스를 통하여 마이크로프로세서(210)에 연결될 수 있다. 예를 들어, 적어도 하나 이상의 메모리 장치(220)는 동적 랜덤 액세스 메모리(Dynamic Random Access Memory; DRAM), 정적 랜덤 액세스 메모리(Static Random Access Memory; SRAM), 또는 이피롬(Erasable Programmable Read-Only Memory; EPROM), 이이피롬(Electrically Erasable Programmable Read-Only Memory; EEPROM) 및 플래시 메모리 장치(flash memory device) 등과 같은 비휘발성 메모리 장치일 수 있다. 적어도 하나 이상의 저장 장치(230)는 솔리드 스테이트 드라이브(solid state drive), 하드 디스크 드라이브 및 씨디롬(CD-ROM) 등과 같은 저장 장치일 수 있다. 적어도 하나 이상의 입출력 장치(240)는 키보드, 키패드, 터치 패드, 마우스 등과 같은 입력 장치 및 프린터, 디스플레이, 스피커 등과 같은 출력 장치일 수 있다. 전원 장치(250)는 전자 기기(200)에 요구되는 동작 전압을 공급할 수 있다.
이상, 본 발명의 실시예들을 참조하여 동작 전압 주파수 스케일링 방법 및 이를 수행하는 전력 관리 장치에 대하여 설명하였지만, 상기에서 설명된 수식, 그래프, 구조 등은 예시적인 것들로서, 본 발명의 기술적 사상을 벗어나지 않는 범위에서 해당 기술 분야에서 통상의 지식을 가진 자에 의하여 다양하게 수정 및 변경될 수 있다.
본 발명은 마이크로프로세서를 포함하는 전자 기기에 다양하게 적용될 수 있다. 예를 들어, 본 발명은 컴퓨터, 노트북, 디지털 카메라, 비디오 캠코더, 휴대폰, 스마트폰, 피엠피, 피디에이, MP3 플레이어, 차량용 네비게이션, 비디오폰, 감시 시스템, 추적 시스템, 동작 감지 시스템, 이미지 안정화 시스템 등에 적용될 수 있을 것이다.
상기에서는 본 발명의 바람직한 실시예들을 참조하여 설명하였지만 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 동적 전압 주파수 스케일링 방법을 나타내는 순서도이다.
도 2는 도 1의 동적 전압 주파수 스케일링 방법에서 지속 구간을 설명하기 위한 도면이다.
도 3은 도 1의 동적 전압 주파수 스케일링 방법에서 단위 작업 부하율이 계산되는 일 예를 나타내는 순서도이다.
도 4는 도 3의 단위 작업 부하율 계산을 설명하기 위한 그래프이다.
도 5는 도 1의 동적 전압 주파수 스케일링 방법에서 지속 구간의 길이가 변경되는 일 예를 나타내는 순서도이다.
도 6은 도 5의 지속 구간 길이 변경을 설명하기 위한 그래프이다.
도 7은 도 1의 동적 전압 주파수 스케일링 방법에서 마이크로프로세서의 전력 레벨이 변경되는 일 예를 나타내는 순서도이다.
도 8은 도 7의 전력 레벨 변경을 설명하기 위한 그래프이다.
도 9는 도 1의 동적 전압 주파수 스케일링 방법에서 외부 커맨드에 기초하여 마이크로프로세서의 전력 레벨이 변경되는 일 예를 나타내는 순서도이다.
도 10은 도 9의 전력 레벨 변경을 설명하기 위한 그래프이다.
도 11은 도 1의 동적 전압 주파수 스케일링 방법에서 외부 커맨드에 기초하여 마이크로프로세서의 전력 레벨이 변경되는 다른 예를 나타내는 순서도이다.
도 12는 도 11의 전력 레벨 변경을 설명하기 위한 그래프이다.
도 13은 도 1의 동적 전압 주파수 스케일링 방법에서 외부 커맨드에 기초하여 지속 구간의 길이가 변경되는 일 예를 나타내는 순서도이다.
도 14는 도 13의 지속 구간 길이 변경을 설명하기 위한 그래프이다.
도 15는 도 1의 동적 전압 주파수 스케일링 방법에서 외부 커맨드에 기초하여 지속 구간의 길이가 변경되는 다른 예를 나타내는 순서도이다.
도 16은 도 15의 지속 구간 길이 변경을 설명하기 위한 그래프이다.
도 17은 도 1의 동적 전압 주파수 스케일링 방법을 수행하는 전력 관리 장치의 일 예를 나타내는 블록도이다.
도 18은 도 17의 전력 관리 장치에 포함되는 전력 관리부의 일 예를 나타내는 블록도이다.
도 19는 도 17의 전력 관리 장치에 포함되는 전압-클럭 공급부의 일 예를 나타내는 블록도이다.
도 20은 도 17의 전력 관리 장치를 포함하는 전자 기기의 일 예를 나타내는 블록도이다.
<도면의 주요부분에 대한 부호의 설명>
100: 전력 관리 장치 110: 마이크로프로세서
120: 작업 부하 검출부 130: 전력 관리부
140: 전압-클럭 공급부

Claims (10)

  1. 제 1 지속 구간에서 단위 구간마다 마이크로프로세서의 단위 작업 부하율(unit workload rate)을 계산하는 단계;
    상기 단위 작업 부하율의 변화량에 기초하여 상기 제 1 지속 구간의 길이를 지수적(exponentially)으로 변경하는 단계;
    상기 제 1 지속 구간에서 상기 단위 작업 부하율을 누적하여 상기 마이크로프로세서의 구간 작업 부하율을 계산하는 단계; 및
    상기 구간 작업 부하율에 기초하여 상기 마이크로프로세서의 전력 레벨을 변경하는 단계를 포함하는 동적 전압 주파수 스케일링 방법.
  2. 제 1 항에 있어서, 상기 전력 레벨은 상기 마이크로프로세서의 동작 주파수 또는 동작 전압에 상응하는 것을 특징으로 하는 동적 전압 주파수 스케일링 방법.
  3. 제 2 항에 있어서, 상기 단위 작업 부하율을 계산하는 단계는
    상기 단위 구간마다 상기 마이크로프로세서의 액티브(active) 구간을 계산하는 단계;
    상기 단위 구간마다 상기 마이크로프로세서의 아이들(idle) 구간을 계산하는 단계; 및
    상기 액티브 구간 및 상기 아이들 구간에 기초하여 상기 단위 작업 부하율을 추정하는 단계를 포함하는 것을 특징으로 하는 동적 전압 주파수 스케일링 방법.
  4. 제 3 항에 있어서, 상기 단위 작업 부하율을 계산하는 단계는 아래 [수식 1]을 이용하는 것을 특징으로 하는 동적 전압 주파수 스케일링 방법.
    [수식 1]
    Figure 112009068273223-PAT00013
    (상기식에서, UWR은 단위 작업 부하율을 나타내고, UT는 단위 구간을 나타내며, AT는 단위 구간에서의 액티브 구간을 나타내고, IT는 단위 구간에서의 아이들 구간을 나타낸다.)
  5. 제 2 항에 있어서, 상기 제 1 지속 구간의 길이를 변경하는 단계는
    상기 변화량이 안정 기준 값보다 크면, 상기 제 1 지속 구간의 길이를 지수적으로 증가시키는 단계;
    상기 변화량이 상기 안정 기준 값보다 작으면, 상기 제 1 지속 구간의 길이를 지수적으로 감소시키는 단계; 및
    상기 변화량이 상기 안정 기준 값과 동일하면, 상기 제 1 지속 구간의 길이를 유지시키는 단계를 포함하는 것을 특징으로 하는 동적 전압 주파수 스케일링 방법.
  6. 제 5 항에 있어서, 상기 제 1 지속 구간의 길이를 변경하는 단계는 아래 [수식 2]를 이용하는 것을 특징으로 하는 동적 전압 주파수 스케일링 방법.
    [수식 2]
    Figure 112009068273223-PAT00014
    (상기식에서, FPR은 변경 전의 제 1 지속 구간의 길이를 나타내고, SPR은 변경 후의 제 1 지속 구간의 길이를 나타내며, r은 사용자가 결정하는 지수의 비(exponential ratio)를 나타내고, dUWR은 단위 작업 부하율의 변화량을 나타내며, SV는 안정 기준 값을 나타낸다.)
  7. 제 2 항에 있어서, 상기 구간 작업 부하율을 계산하는 단계는 상기 단위 작업 부하율에 가중치를 적용하는 것을 특징으로 하는 동적 전압 주파수 스케일링 방법.
  8. 제 7 항에 있어서, 상기 구간 작업 부하율을 계산하는 단계는 아래 [수식 3]을 이용하는 것을 특징으로 하는 동적 전압 주파수 스케일링 방법.
    [수식 3]
    Figure 112009068273223-PAT00015
    (상기식에서, PWR은 구간 작업 부하율을 나타내고, UWRx는 x번째 단위 작업 부하율을 나타내며, C는 가중치를 나타내고, 제 1 지속 구간은 n개의 단위 구간의 합에 상응한다.)
  9. 제 2 항에 있어서, 상기 전력 레벨을 변경하는 단계는
    상기 구간 작업 부하율이 업 기준 값보다 크면, 상기 전력 레벨을 증가시키는 단계;
    상기 구간 작업 부하율이 다운 기준 값보다 작으면, 상기 전력 레벨을 감소시키는 단계; 및
    상기 구간 작업 부하율이 상기 업 기준 값과 상기 다운 기준 값 사이이면, 상기 전력 레벨을 유지시키는 단계를 포함하는 것을 특징으로 하는 동적 전압 주파수 스케일링 방법.
  10. 제 2 항에 있어서,
    상기 변경된 전력 레벨을 상기 제 1 지속 구간에 연속하는 제 2 지속 구간에서 유지시키는 단계를 더 포함하는 것을 특징으로 하는 동적 전압 주파수 스케일링 방법.
KR1020090106822A 2009-11-06 2009-11-06 동적 전압 주파수 스케일링 방법 KR101617377B1 (ko)

Priority Applications (7)

Application Number Priority Date Filing Date Title
KR1020090106822A KR101617377B1 (ko) 2009-11-06 2009-11-06 동적 전압 주파수 스케일링 방법
JP2010238708A JP5694735B2 (ja) 2009-11-06 2010-10-25 動的電圧周波数スケーリング方法
US12/911,798 US8631262B2 (en) 2009-11-06 2010-10-26 Method of dynamically scaling a power level of a microprocessor
CN201010543574.5A CN102053700B (zh) 2009-11-06 2010-11-08 动态缩放微处理器的功率水平的方法
US14/152,401 US9239614B2 (en) 2009-11-06 2014-01-10 Method of dynamically scaling a power level of a microprocessor
US14/962,416 US9720492B2 (en) 2009-11-06 2015-12-08 Method of dynamically scaling a power level of a microprocessor
US15/662,427 US10394312B2 (en) 2009-11-06 2017-07-28 Method of dynamically scaling a power level of a microprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090106822A KR101617377B1 (ko) 2009-11-06 2009-11-06 동적 전압 주파수 스케일링 방법

Publications (2)

Publication Number Publication Date
KR20110050010A true KR20110050010A (ko) 2011-05-13
KR101617377B1 KR101617377B1 (ko) 2016-05-02

Family

ID=43958100

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090106822A KR101617377B1 (ko) 2009-11-06 2009-11-06 동적 전압 주파수 스케일링 방법

Country Status (4)

Country Link
US (4) US8631262B2 (ko)
JP (1) JP5694735B2 (ko)
KR (1) KR101617377B1 (ko)
CN (1) CN102053700B (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101289882B1 (ko) * 2011-08-02 2013-07-24 전자부품연구원 동적 전압 스케일링 장치 및 그 방법
KR101655030B1 (ko) 2015-05-21 2016-09-07 성균관대학교산학협력단 태스크 특성 기반의 여유시간 분배를 통한 동적 전압 주파수 스케일링 방법, 그 방법을 실행시키기 위하여 매체에 저장된 컴퓨터프로그램 및 그 매체
US9588570B2 (en) 2013-04-30 2017-03-07 Samsung Electronics Co., Ltd. Apparatus and method for adjusting bandwidth
US9588915B2 (en) 2012-12-18 2017-03-07 Samsung Electronics Co., Ltd. System on chip, method of operating the same, and apparatus including the same
US9891855B2 (en) 2016-04-29 2018-02-13 Samsung Electronics Co., Ltd. Memory device capable of adjusting operation voltage and application processor for controlling the memory device
KR20190036307A (ko) * 2017-09-27 2019-04-04 이화여자대학교 산학협력단 Dvfs 기법을 이용하는 모바일 디바이스
KR20210134355A (ko) * 2019-05-29 2021-11-09 베리실리콘 마이크로일렉트로닉스 (상하이) 컴퍼니 리미티드 피크 전력 소비의 제어 방법 및 시스템

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8650423B2 (en) 2011-10-12 2014-02-11 Qualcomm Incorporated Dynamic voltage and clock scaling control based on running average, variant and trend
US8832478B2 (en) 2011-10-27 2014-09-09 Intel Corporation Enabling a non-core domain to control memory bandwidth in a processor
US9152203B2 (en) 2012-05-31 2015-10-06 At&T Intellectual Property I, Lp Managing power consumption state of electronic devices responsive to predicting future demand
US9026817B2 (en) * 2012-06-29 2015-05-05 Intel Corporation Joint optimization of processor frequencies and system sleep states
KR101991682B1 (ko) * 2012-08-29 2019-06-21 삼성전자 주식회사 Dvfs 제어 방법 및 이를 이용한 시스템-온 칩
KR101832821B1 (ko) 2012-09-10 2018-02-27 삼성전자주식회사 동적 전압 주파수 스케일링 방법, 어플리케이션 프로세서 및 이를 구비하는 모바일 기기
US9363749B2 (en) 2012-09-13 2016-06-07 Qualcomm Incorporated Dynamic power scaling of digital modems
JP5930504B2 (ja) * 2012-11-05 2016-06-08 クアルコム,インコーポレイテッド 保証された過渡期限とともに中央処理装置の電力を制御するためのシステムおよび方法
FR2999373B1 (fr) * 2012-12-12 2018-04-06 Harmonic Inc. Procede d'adaptation dynamique du codage d'un flux audio et/ou video transmis a un dispositif
US9575542B2 (en) * 2013-01-31 2017-02-21 Hewlett Packard Enterprise Development Lp Computer power management
CN103116418B (zh) * 2013-02-04 2016-04-13 Tcl通讯(宁波)有限公司 一种动态调整触摸屏输入检测速率的方法及移动终端
US9170642B2 (en) * 2013-03-21 2015-10-27 Applied Micro Circuits Corporation Dynamic power control
KR102135100B1 (ko) * 2013-08-23 2020-07-17 삼성전자주식회사 전자 장치의 동적 전압 주파수 제어 방법 및 장치
US9705684B2 (en) * 2013-12-16 2017-07-11 At&T Mobility Ii Llc Systems, methods, and computer readable storage device for delivering power to tower equipment
US9244747B2 (en) * 2014-03-13 2016-01-26 Qualcomm Incorporated System and method for providing dynamic clock and voltage scaling (DCVS) aware interprocessor communication
US9582027B2 (en) 2014-06-09 2017-02-28 Qualcomm Incorporated Clock swallowing device for reducing voltage noise
US20160098339A1 (en) * 2014-10-06 2016-04-07 Qualcomm Incorporated Smart power scheduling for user-directed battery duration
KR102329473B1 (ko) 2014-11-24 2021-11-19 삼성전자주식회사 프로세서와 이를 포함하는 반도체 장치
US9829902B2 (en) * 2014-12-23 2017-11-28 Intel Corporation Systems and methods for dynamic temporal power steering
US9778676B2 (en) 2015-08-03 2017-10-03 Qualcomm Incorporated Power distribution network (PDN) droop/overshoot mitigation in dynamic frequency scaling
US10025641B2 (en) * 2015-09-15 2018-07-17 Qualcomm Incorporated Workload differentiation for processor frequency scaling
US10649518B2 (en) * 2017-01-26 2020-05-12 Ati Technologies Ulc Adaptive power control loop
US10884811B2 (en) 2017-06-04 2021-01-05 Apple Inc. Scheduler for AMP architecture with closed loop performance controller using static and dynamic thread grouping
US10529407B2 (en) * 2017-07-20 2020-01-07 Samsung Electronics Co., Ltd. Memory device including a plurality of power rails and method of operating the same
WO2019117961A1 (en) 2017-12-15 2019-06-20 Intel Corporation Power governance of processing unit
KR20200101210A (ko) * 2019-02-19 2020-08-27 삼성전자주식회사 전자 장치 및 프로세서의 동작 주파수를 결정하는 방법
KR20210032213A (ko) 2019-09-16 2021-03-24 삼성전자주식회사 전력 스텝에 기초한 동적 다이내믹 전압 주파주 스케일링(dvfs) 수행 방법
JP7199329B2 (ja) * 2019-09-19 2023-01-05 株式会社東芝 制御方法及び半導体集積回路
US11409341B2 (en) 2019-10-01 2022-08-09 Intel Corporation Repeating graphics render pattern detection
CN112325981B (zh) * 2020-11-03 2023-12-26 常州市鼎兴电子有限公司 一种电感式液位传感器最佳匹配参数设计方法
US11307634B1 (en) 2021-01-28 2022-04-19 Red Hat, Inc. Maintaining historical power level metadata for dynamic voltage and frequency scaling of processor instructions
US11650655B2 (en) * 2021-03-30 2023-05-16 Rosemount Inc. Power management for loop-powered field devices with low power wireless communication

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5719800A (en) * 1995-06-30 1998-02-17 Intel Corporation Performance throttling to reduce IC power consumption
US5745375A (en) * 1995-09-29 1998-04-28 Intel Corporation Apparatus and method for controlling power usage
JPH10268963A (ja) * 1997-03-28 1998-10-09 Mitsubishi Electric Corp 情報処理装置
JPH11184550A (ja) * 1997-12-24 1999-07-09 Toshiba Corp コンピュータシステムおよびタイマ割り込み制御方法
JPH11224233A (ja) 1998-02-06 1999-08-17 Sharp Corp バスサイクル制御装置
TW509843B (en) * 1998-07-24 2002-11-11 Mitac Technology Corp Control method and system for dynamically adjusting processor
US6684341B1 (en) * 2000-03-09 2004-01-27 International Business Machines Corporation Method of altering the appearance of an icon of a program to provide an indication to a user that a power management is associated with the particular program
US7017060B2 (en) * 2001-03-19 2006-03-21 Intel Corporation Power management system that changes processor level if processor utilization crosses threshold over a period that is different for switching up or down
JP4143283B2 (ja) * 2001-09-12 2008-09-03 株式会社日立製作所 計算機の処理性能変更装置
US6771134B2 (en) * 2002-05-02 2004-08-03 Intel Corporation Frequency control for clock generating circuit
JP3864859B2 (ja) 2002-06-24 2007-01-10 株式会社日立製作所 半導体装置または上記半導体装置の消費電力を削減するプログラム
US7199783B2 (en) 2003-02-07 2007-04-03 Avago Technologies Ecbu Ip (Singapore) Pte. Ltd. Wake-up detection method and apparatus embodying the same
US7240223B2 (en) * 2003-05-07 2007-07-03 Apple Inc. Method and apparatus for dynamic power management in a processor system
US7761874B2 (en) * 2004-08-13 2010-07-20 Intel Corporation Managing processing system power and performance based on utilization trends
US7711966B2 (en) * 2004-08-31 2010-05-04 Qualcomm Incorporated Dynamic clock frequency adjustment based on processor load
CN100412814C (zh) * 2005-04-12 2008-08-20 鸿富锦精密工业(深圳)有限公司 中央处理器超频系统及方法
TW200638267A (en) * 2005-04-22 2006-11-01 Chi Mei Comm Systems Inc Method for adjusting CPU speed of an electronic appliance
US7386739B2 (en) * 2005-05-03 2008-06-10 International Business Machines Corporation Scheduling processor voltages and frequencies based on performance prediction and power constraints
WO2007056705A2 (en) * 2005-11-03 2007-05-18 Los Alamos National Security Adaptive real-time methodology for optimizing energy-efficient computing
CN100561404C (zh) * 2005-12-29 2009-11-18 联想(北京)有限公司 节省处理器功耗的方法
KR101254009B1 (ko) * 2006-02-03 2013-04-12 삼성전자주식회사 워크로드 추정치를 사용하는 cpu의 동적 전압 스케일링방법 및 그 방법을 실행시키기 위한 프로그램을 기록한기록매체
US7272517B1 (en) * 2006-04-25 2007-09-18 International Business Machines Corporation Method and system for providing performance estimations for a specified power budget
JP4839164B2 (ja) * 2006-09-15 2011-12-21 株式会社日立製作所 ハードウェアモニタを用いた性能評価システム及び再構築可能な計算機システム
US7840825B2 (en) * 2006-10-24 2010-11-23 International Business Machines Corporation Method for autonomous dynamic voltage and frequency scaling of microprocessors
US7689851B2 (en) * 2006-10-27 2010-03-30 Hewlett-Packard Development Company, L.P. Limiting power state changes to a processor of a computer device
CN100501644C (zh) * 2006-12-05 2009-06-17 中兴通讯股份有限公司 动态降低cpu功耗的方法
US7730340B2 (en) * 2007-02-16 2010-06-01 Intel Corporation Method and apparatus for dynamic voltage and frequency scaling
US8918496B2 (en) * 2007-04-30 2014-12-23 Hewlett-Packard Development Company, L.P. System and method for generating synthetic workload traces
US20090049314A1 (en) * 2007-08-13 2009-02-19 Ali Taha Method and System for Dynamic Voltage and Frequency Scaling (DVFS)
US7925873B2 (en) * 2008-03-13 2011-04-12 Oracle America, Inc. Method and apparatus for controlling operating parameters in a computer system
US9459679B2 (en) * 2008-05-13 2016-10-04 Synopsys, Inc. Power manager and method for managing power
US8707060B2 (en) * 2008-10-31 2014-04-22 Intel Corporation Deterministic management of dynamic thermal response of processors
KR101533572B1 (ko) * 2009-05-20 2015-07-03 삼성전자주식회사 전력 관리 방법
US8589875B2 (en) * 2009-06-16 2013-11-19 International Business Machines Corporation Computing system with compile farm
US8224497B2 (en) * 2009-08-21 2012-07-17 International Business Machines Corporation Energy limit in a sliding window in power and heat management

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101289882B1 (ko) * 2011-08-02 2013-07-24 전자부품연구원 동적 전압 스케일링 장치 및 그 방법
US9588915B2 (en) 2012-12-18 2017-03-07 Samsung Electronics Co., Ltd. System on chip, method of operating the same, and apparatus including the same
US9588570B2 (en) 2013-04-30 2017-03-07 Samsung Electronics Co., Ltd. Apparatus and method for adjusting bandwidth
KR101655030B1 (ko) 2015-05-21 2016-09-07 성균관대학교산학협력단 태스크 특성 기반의 여유시간 분배를 통한 동적 전압 주파수 스케일링 방법, 그 방법을 실행시키기 위하여 매체에 저장된 컴퓨터프로그램 및 그 매체
US9891855B2 (en) 2016-04-29 2018-02-13 Samsung Electronics Co., Ltd. Memory device capable of adjusting operation voltage and application processor for controlling the memory device
KR20190036307A (ko) * 2017-09-27 2019-04-04 이화여자대학교 산학협력단 Dvfs 기법을 이용하는 모바일 디바이스
KR20210134355A (ko) * 2019-05-29 2021-11-09 베리실리콘 마이크로일렉트로닉스 (상하이) 컴퍼니 리미티드 피크 전력 소비의 제어 방법 및 시스템
US12093109B2 (en) 2019-05-29 2024-09-17 Verisilicon Microelectronics (Shanghai) Co., Ltd. Method and system for controlling peak power consumption

Also Published As

Publication number Publication date
US20160091962A1 (en) 2016-03-31
US10394312B2 (en) 2019-08-27
US20140129857A1 (en) 2014-05-08
KR101617377B1 (ko) 2016-05-02
JP5694735B2 (ja) 2015-04-01
US8631262B2 (en) 2014-01-14
CN102053700A (zh) 2011-05-11
US9239614B2 (en) 2016-01-19
JP2011100449A (ja) 2011-05-19
CN102053700B (zh) 2015-09-16
US20170344103A1 (en) 2017-11-30
US20110113269A1 (en) 2011-05-12
US9720492B2 (en) 2017-08-01

Similar Documents

Publication Publication Date Title
KR20110050010A (ko) 동적 전압 주파수 스케일링 방법
KR101533572B1 (ko) 전력 관리 방법
US8135966B2 (en) Method and device for power management
KR101832821B1 (ko) 동적 전압 주파수 스케일링 방법, 어플리케이션 프로세서 및 이를 구비하는 모바일 기기
US20110078477A1 (en) Power management method for electronic device
CN101401056B (zh) 用于计算设备的电源管理的空闲检测度量缩放
US8880924B2 (en) Hot-plugging of multi-core processor
US8909961B2 (en) Method and apparatus for adjusting power consumption level of an integrated circuit
US20160066280A1 (en) Power management integrated circuit, power management method, mobile device and clock adjusting method
US8181049B2 (en) Method for controlling a frequency of a clock signal to control power consumption and a device having power consumption capabilities
US8769322B2 (en) Method for adjusting clock frequency of a processing unit of a computer system and related device
US20040181660A1 (en) Power-save computing apparatus and method, a power-save computing program and a program product
US7975155B2 (en) Apparatus and method for controlling voltage and frequency
US20080141047A1 (en) Apparatus and Method for Controlling Voltage and Frequency
KR20230097002A (ko) 2-스테이지 동적 전원 전압 조정

Legal Events

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

Payment date: 20190329

Year of fee payment: 4