KR102166935B1 - 동적 전압 주파수 스케일링을 수행하기 위한 동작 주파수 변경 방법, 시스템 온-칩 및 이를 구비하는 모바일 기기 - Google Patents

동적 전압 주파수 스케일링을 수행하기 위한 동작 주파수 변경 방법, 시스템 온-칩 및 이를 구비하는 모바일 기기 Download PDF

Info

Publication number
KR102166935B1
KR102166935B1 KR1020130136159A KR20130136159A KR102166935B1 KR 102166935 B1 KR102166935 B1 KR 102166935B1 KR 1020130136159 A KR1020130136159 A KR 1020130136159A KR 20130136159 A KR20130136159 A KR 20130136159A KR 102166935 B1 KR102166935 B1 KR 102166935B1
Authority
KR
South Korea
Prior art keywords
processing unit
central processing
operating frequency
load
increased
Prior art date
Application number
KR1020130136159A
Other languages
English (en)
Other versions
KR20150054134A (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 KR1020130136159A priority Critical patent/KR102166935B1/ko
Priority to US14/532,649 priority patent/US9588578B2/en
Publication of KR20150054134A publication Critical patent/KR20150054134A/ko
Application granted granted Critical
Publication of KR102166935B1 publication Critical patent/KR102166935B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • 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

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

시스템 온-칩에 구비된 중앙 처리 유닛에 대하여 동적 전압 주파수 스케일링을 수행하는 동작 주파수 변경 방법이 제공된다. 상기 동작 주파수 변경 방법은 중앙 처리 유닛의 동작 주파수가 증가되는 것으로 결정되면, 동적 전압 주파수 스케일링의 이력 구간에서 중앙 처리 유닛의 이전 최대 피크 부하를 검출하고, 중앙 처리 유닛의 이전 최대 피크 부하에 기초하여 계산되는 증가된 동작 주파수를 중앙 처리 유닛에 적용시킨다.

Description

동적 전압 주파수 스케일링을 수행하기 위한 동작 주파수 변경 방법, 시스템 온-칩 및 이를 구비하는 모바일 기기 {METHOD OF CHANGING AN OPERATING FREQUENCY FOR PERFORMING A DYNAMIC VOLTAGE AND FREQUENCY SCALING, SYSTEM ON-CHIP, AND MOBILE DEVICE HAVING THE SAME}
본 발명은 동적 전압 주파수 스케일링(dynamic voltage and frequency scaling; DVFS) 기술에 관한 것이다. 보다 상세하게는, 본 발명은 동적 전압 주파수 스케일링을 수행하기 위한 동작 주파수 변경 방법, 시스템 온-칩 및 이를 구비하는 모바일 기기에 관한 것이다.
최근, 모바일 컨버전스(mobile convergence)가 진행됨에 따라 모바일 기기는 적어도 하나 이상의 기능 모듈의 동작을 제어하기 위한 어플리케이션 프로세서를 구비하고 있다. 이러한 어플리케이션 프로세서는 주로 시스템 온-칩으로 구현되고 있다. 일반적으로, 모바일 기기는 배터리에 기초하여 동작하기 때문에, 모바일 기기 내에서 어플리케이션 프로세서와 적어도 하나 이상의 기능 모듈이 낮은 전력을 소모하는 것이 요구된다. 이에, 최근에는 어플리케이션 프로세서에 구비된 중앙 처리 유닛(central processing unit; CPU)의 동작 상태를 예측하고, 상기 예측된 동작 상태에 따라 중앙 처리 유닛의 동작 주파수 및 동작 전압을 동적으로 변경하는 동적 전압 주파수 스케일링 기술이 어플리케이션 프로세서에 널리 적용되고 있다. 일반적으로, 중앙 처리 유닛의 성능(즉, 동작 주파수 및 동작 전압)과 소모 전력은 트레이드-오프(trade-off) 관계에 있다. 이 때, 중앙 처리 유닛에서 동작 전압은 동작 주파수를 따라가기 때문에(즉, 동작 주파수가 높아지면 동작 전압은 증가하고, 동작 주파수가 낮아지면 동작 전압은 감소함.), 중앙 처리 유닛의 동작 주파수가 효율적으로 조절되어야 중앙 처리 유닛이 불필요한 전력을 소모하지 않을 수 있다. 그러나, 동적 전압 주파수 스케일링 기술이 실제 적용됨에 있어서, 중앙 처리 유닛의 동작 주파수가 비효율적으로 조절되고 있어, 불필요한 소모 전력이 발생하고 있다.
본 발명의 일 목적은 중앙 처리 유닛에 대하여 동적 전압 주파수 스케일링을 수행함에 있어서 중앙 처리 유닛의 동작 주파수를 증가시킬 때, 중앙 처리 유닛의 이전 피크 부하(peak load)들을 고려하여 중앙 처리 유닛의 동작 주파수를 효율적으로 변경할 수 있는 동작 주파수 변경 방법을 제공하는 것이다.
본 발명의 다른 목적은 중앙 처리 유닛에 대하여 동적 전압 주파수 스케일링을 수행함에 있어서 중앙 처리 유닛의 동작 주파수를 증가시킬 때, 중앙 처리 유닛의 이전 피크 부하들을 고려하여 중앙 처리 유닛의 동작 주파수를 효율적으로 변경할 수 있는 시스템 온-칩을 제공하는 것이다.
본 발명의 또 다른 목적은 상기 시스템 온-칩(예를 들어, 어플리케이션 프로세서)을 구비하는 모바일 기기를 제공하는 것이다.
다만, 본 발명의 목적은 이에 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.
본 발명의 일 목적을 달성하기 위하여, 본 발명의 실시예들에 따른 동작 주파수 변경 방법은 시스템 온-칩에 구비된 중앙 처리 유닛에 대하여 동적 전압 주파수 스케일링을 수행함에 있어서, 상기 중앙 처리 유닛의 동작 주파수가 증가되는 것으로 결정되면, 상기 동적 전압 주파수 스케일링의 이력 구간(history period)에서 상기 중앙 처리 유닛의 이전 최대 피크 부하(peak workload)를 검출하고, 상기 이전 최대 피크 부하에 기초하여 계산되는 증가된 동작 주파수를 상기 중앙 처리 유닛에 적용시킬 수 있다.
일 실시예에 의하면, 상기 동작 주파수 변경 방법은 상기 이력 구간에서 상기 이전 최대 피크 부하가 검출되지 않으면, 상기 중앙 처리 유닛의 최대 동작 주파수를 상기 중앙 처리 유닛에 적용시킬 수 있다.
일 실시예에 의하면, 상기 이력 구간은 상기 동작 주파수가 증가되는 것으로 결정되는 제 2 시점보다 기 설정된 시간만큼 앞선 제 1 시점부터 상기 제 2 시점 이전까지일 수 있다.
일 실시예에 의하면, 상기 중앙 처리 유닛의 부하율(workload ratio)이 기 설정된 상한(upper limit)보다 큰 경우, 상기 동작 주파수는 증가되고, 상기 부하율이 기 설정된 하한(lower limit)보다 작은 경우, 상기 동작 주파수는 감소되며, 상기 부하율이 상기 상한과 상기 하한 사이에 있으면, 상기 동작 주파수는 유지될 수 있다.
일 실시예에 의하면, 상기 동작 주파수가 증가된 이전 시점들에서의 상기 중앙 처리 유닛의 이전 피크 부하들이 상기 이력 구간에서 검색되면, 상기 이전 피크 부하들 중에서 최대값이 상기 이전 최대 피크 부하로 결정될 수 있다.
일 실시예에 의하면, 상기 증가된 동작 주파수는 [수학식 1]을 이용하여 계산될 수 있다.
[수학식 1]
Pf = C X Max(Load)
(단, Pf는 상기 증가된 동작 주파수를 나타내고, C는 상기 중앙 처리 유닛의 성능과 소모 전력 사이의 밸런스 상수를 나타내며, Max(Load)는 상기 이전 최대 피크 부하를 나타냄.)
일 실시예에 의하면, 상기 증가된 동작 주파수는 [수학식 2]를 이용하여 보정될 수 있다.
[수학식 2]
CPf = K X Pf
(단, CPf는 보정된 동작 주파수를 나타내고, Pf는 상기 증가된 동작 주파수를 나타내며, K는 추세 보정 상수를 나타냄.)
일 실시예에 의하면, 상기 시스템 온-칩은 모바일 기기에 구비되는 어플리케이션 프로세서(application processor)에 상응할 수 있다.
본 발명의 다른 목적을 달성하기 위하여, 본 발명의 실시예들에 따른 시스템 온-칩은 적어도 하나 이상의 아이피(intellectual property), 클럭 신호에 기초하여 동작하는 중앙 처리 유닛, 상기 클럭 신호를 생성하는 클럭 신호 생성 유닛, 상기 중앙 처리 유닛의 부하(workload)를 모니터링하는 모니터링 유닛, 상기 중앙 처리 유닛의 부하율(workload ratio)이 기 설정된 상한(upper limit)보다 크면, 상기 클럭 신호의 주파수에 상응하는 상기 중앙 처리 유닛의 동작 주파수를 증가시키고, 상기 부하율이 기 설정된 하한(lower limit)보다 작으면, 상기 동작 주파수를 감소시키며, 상기 부하율이 상기 상한과 상기 하한 사이에 있으면, 상기 동작 주파수를 유지시키는 클럭 신호 관리 유닛, 및 상기 동작 주파수가 증가된 이전 시점들에서의 상기 중앙 처리 유닛의 이전 피크 부하들을 저장하는 이력 버퍼(history buffer) 유닛을 포함할 수 있다. 이 때, 상기 클럭 신호 관리 유닛은 상기 동작 주파수를 증가시킬 때, 상기 이력 버퍼 유닛에서 상기 중앙 처리 유닛의 이전 최대 피크 부하를 검출하고, 상기 이전 최대 피크 부하에 기초하여 계산되는 증가된 동작 주파수를 상기 중앙 처리 유닛에 적용시킬 수 있다.
일 실시예에 의하면, 상기 시스템 온-칩은 모바일 기기에 구비되는 어플리케이션 프로세서(application processor)에 상응할 수 있다.
일 실시예에 의하면, 상기 클럭 신호 관리 유닛은 상기 동작 주파수를 증가시킬 때, 상기 이력 버퍼 유닛에서 상기 이전 최대 피크 부하가 검출되지 않으면, 상기 중앙 처리 유닛의 최대 동작 주파수를 상기 중앙 처리 유닛에 적용시킬 수 있다.
일 실시예에 의하면, 상기 이력 버퍼 유닛은 기 설정된 용량을 갖는 큐(queue)로 구현될 수 있고, 선입-선출(first in first out; FIFO) 방식으로 동작할 수 있다.
일 실시예에 의하면, 상기 이력 버퍼 유닛은 상기 동작 주파수가 감소되거나 유지된 이전 시점들에서의 상기 중앙 처리 유닛의 부하 정보들은 저장하지 않고, 상기 부하 정보들을 대신하여 이용 불가(not-available)를 나타내는 데이터들을 저장할 수 있다.
일 실시예에 의하면, 상기 증가된 동작 주파수는 [수학식 1]을 이용하여 계산될 수 있다.
[수학식 1]
Pf = C X Max(Load)
(단, Pf는 상기 증가된 동작 주파수를 나타내고, C는 상기 중앙 처리 유닛의 성능과 소모 전력 사이의 밸런스 상수를 나타내며, Max(Load)는 상기 이전 최대 피크 부하를 나타냄.)
일 실시예에 의하면, 상기 증가된 동작 주파수는 [수학식 2]를 이용하여 보정될 수 있다.
[수학식 2]
CPf = K X Pf
(단, CPf는 보정된 동작 주파수를 나타내고, Pf는 상기 증가된 동작 주파수를 나타내며, K는 추세 보정 상수를 나타냄.)
일 실시예에 의하면, 상기 클럭 신호 생성 유닛, 상기 모니터링 유닛 및 상기 이력 버퍼 유닛 중에서 적어도 하나 이상은 상기 클럭 신호 관리 유닛 내에 구현될 수 있다.
본 발명의 또 다른 목적을 달성하기 위하여, 본 발명의 실시예들에 따른 모바일 기기는 적어도 하나 이상의 기능 모듈, 상기 기능 모듈을 제어하는 시스템 온-칩, 및 상기 시스템 온-칩에 구비된 중앙 처리 유닛의 동작 주파수에 따라 상기 중앙 처리 유닛의 동작 전압을 공급하는 전력 관리 집적 회로를 포함할 수 있다. 이 때, 상기 시스템 온-칩은 동적 전압 주파수 스케일링을 수행할 때, 상기 시스템 온-칩에 구비된 이력 버퍼(history buffer) 유닛에 저장되어 있는 상기 중앙 처리 유닛의 이전 최대 피크 부하(peak workload)에 기초하여 상기 동작 주파수를 증가시킬 수 있다.
일 실시예에 의하면, 상기 시스템 온-칩은 적어도 하나 이상의 아이피(intellectual property), 클럭 신호에 기초하여 동작하는 상기 중앙 처리 유닛, 상기 클럭 신호를 생성하는 클럭 신호 생성 유닛, 상기 중앙 처리 유닛의 부하를 모니터링하는 모니터링 유닛, 상기 중앙 처리 유닛의 부하율(workload ratio)이 기 설정된 상한(upper limit)보다 크면, 상기 클럭 신호의 주파수에 상응하는 상기 동작 주파수를 증가시키고, 상기 부하율이 기 설정된 하한(lower limit)보다 작으면, 상기 동작 주파수를 감소시키며, 상기 부하율이 상기 상한과 상기 하한 사이에 있으면, 상기 동작 주파수를 유지시키는 클럭 신호 관리 유닛, 및 상기 동작 주파수가 증가된 이전 시점들에서의 상기 중앙 처리 유닛의 이전 피크 부하들을 저장하는 상기 이력 버퍼 유닛을 포함할 수 있다. 이 때, 상기 클럭 신호 관리 유닛은 상기 동작 주파수를 증가시킬 때, 상기 이력 버퍼 유닛에서 상기 이전 최대 피크 부하를 검출하고, 상기 이전 최대 피크 부하에 기초하여 계산되는 증가된 동작 주파수를 상기 중앙 처리 유닛에 적용시킬 수 있다.
일 실시예에 의하면, 상기 클럭 신호 관리 유닛은 상기 동작 주파수를 증가시킬 때, 상기 이력 버퍼 유닛에서 상기 이전 최대 피크 부하가 검출되지 않으면, 상기 중앙 처리 유닛의 최대 동작 주파수를 상기 중앙 처리 유닛에 적용시킬 수 있다.
일 실시예에 의하면, 상기 이력 버퍼 유닛은 기 설정된 용량을 갖는 큐(queue)로 구현될 수 있고, 선입-선출(first in first out; FIFO) 방식으로 동작할 수 있다.
일 실시예에 의하면, 상기 이력 버퍼 유닛은 상기 동작 주파수가 감소되거나 유지된 이전 시점들에서의 상기 중앙 처리 유닛의 부하 정보들은 저장하지 않고, 상기 부하 정보들을 대신하여 이용 불가(not-available)를 나타내는 데이터들을 저장할 수 있다.
일 실시예에 의하면, 상기 클럭 신호 생성 유닛, 상기 모니터링 유닛 및 상기 이력 버퍼 유닛 중에서 적어도 하나 이상은 상기 클럭 신호 관리 유닛 내에 구현될 수 있다.
본 발명의 실시예들에 따른 동작 주파수 변경 방법은 중앙 처리 유닛에 대하여 동적 전압 주파수 스케일링을 수행함에 있어서 중앙 처리 유닛의 동작 주파수를 증가시킬 때, 동적 전압 주파수 스케일링의 이력(history) 구간에 존재하는 중앙 처리 유닛의 이전 최대 피크 부하에 기초하여 중앙 처리 유닛의 동작 주파수를 변경함으로써, 중앙 처리 유닛의 성능을 충분히 보장하면서도 중앙 처리 유닛의 불필요한 소모 전력을 감소시킬 수 있다.
본 발명의 실시예들에 따른 시스템 온-칩은 중앙 처리 유닛에 대하여 동적 전압 주파수 스케일링을 수행함에 있어서 중앙 처리 유닛의 동작 주파수를 증가시킬 때, 이력 버퍼 유닛에 저장되어 있는 중앙 처리 유닛의 이전 최대 피크 부하에 기초하여 중앙 처리 유닛의 동작 주파수를 변경함으로써, 중앙 처리 유닛의 성능을 충분히 보장하면서도 중앙 처리 유닛의 불필요한 소모 전력을 감소시킬 수 있다.
본 발명의 실시예들에 따른 모바일 기기는 상기 시스템 온-칩을 구비함으로써 저전력으로 동작하면서도 고성능을 제공할 수 있다.
다만, 본 발명의 효과는 이에 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.
도 1은 본 발명의 실시예들에 따른 동작 주파수 변경 방법을 나타내는 순서도이다.
도 2는 도 1의 동작 주파수 변경 방법과 관련하여 동적 전압 주파수 스케일링이 수행되는 일 예를 나타내는 도면이다.
도 3a 및 도 3b는 도 1의 동작 주파수 변경 방법에서 중앙 처리 유닛의 이전 최대 피크 부하가 검출되는 이력 구간을 나타내는 도면들이다.
도 4a 및 도 4b는 모바일 기기에서 소셜 네트워킹 서비스가 수행될 때, 도 1의 동작 주파수 변경 방법에 의해 불필요한 소모 전력이 감소되는 효과를 보여주는 도면들이다.
도 5a 및 도 5b는 모바일 기기에서 3D 게임이 수행될 때, 도 1의 동작 주파수 변경 방법에 의해 불필요한 소모 전력이 감소되는 효과를 보여주는 도면들이다.
도 6은 본 발명의 실시예들에 따른 시스템 온-칩을 나타내는 블록도이다.
도 7은 도 6의 시스템 온-칩과 관련하여 동적 전압 주파수 스케일링이 수행되는 일 예를 나타내는 도면이다.
도 8은 도 6의 시스템 온-칩에 구비된 이력 버퍼 유닛이 기 설정된 용량을 갖는 큐(queue)로 구현되는 일 예를 나타내는 도면이다.
도 9는 도 6의 시스템 온-칩에 구비된 중앙 처리 유닛의 동작 주파수가 변경되는 일 예를 나타내는 순서도이다.
도 10은 도 6의 시스템 온-칩에 구비된 중앙 처리 유닛의 동작 주파수가 증가되는 일 예를 나타내는 도면이다.
도 11은 도 6의 시스템 온-칩에 구비된 중앙 처리 유닛의 동작 주파수가 유지 또는 감소되는 일 예를 나타내는 도면이다.
도 12는 도 6의 시스템 온-칩에 구비된 중앙 처리 유닛에 증가된 동작 주파수가 적용되는 일 예를 나타내는 순서도이다.
도 13은 도 6의 시스템 온-칩에 구비된 이력 버퍼 유닛에 중앙 처리 유닛의 이전 피크 부하들이 저장되어 있는 상태를 나타내는 도면이다.
도 14는 도 6의 시스템 온-칩에 구비된 이력 버퍼 유닛에 중앙 처리 유닛의 이전 피크 부하들이 저장되어 있지 않는 상태를 나타내는 도면이다.
도 15는 도 6의 시스템 온-칩에 구비된 중앙 처리 유닛에 적용되는 증가된 동작 주파수가 계산되는 일 예를 나타내는 순서도이다.
도 16은 도 6의 시스템 온-칩에 구비된 중앙 처리 유닛에 적용되는 증가된 동작 주파수가 계산되는 일 예를 나타내는 도면이다.
도 17은 도 6의 시스템 온-칩에 구비된 중앙 처리 유닛에 적용되는 증가된 동작 주파수가 보정되는 일 예를 나타내는 순서도이다.
도 18은 도 6의 시스템 온-칩에 구비된 중앙 처리 유닛에 적용되는 증가된 동작 주파수가 보정되는 일 예를 나타내는 도면이다.
도 19는 본 발명의 실시예들에 따른 모바일 기기를 나타내는 블록도이다.
도 20은 도 19의 모바일 기기가 스마트폰으로 구현되는 일 예를 나타내는 도면이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 동작 주파수 변경 방법을 나타내는 순서도이고, 도 2는 도 1의 동작 주파수 변경 방법과 관련하여 동적 전압 주파수 스케일링이 수행되는 일 예를 나타내는 도면이며, 도 3a 및 도 3b는 도 1의 동작 주파수 변경 방법에서 중앙 처리 유닛의 이전 최대 피크 부하가 검출되는 이력 구간을 나타내는 도면들이다.
도 1 내지 도 3b를 참조하면, 시스템 온-칩(system on-chip; SOC)에 구비된 중앙 처리 유닛(central processing unit; CPU)에 대하여 동적 전압 주파수 스케일링(dynamic voltage and frequency scaling; DVFS)을 수행하는 동작 주파수 변경 방법이 도시되어 있다. 일 실시예에서, 시스템 온-칩은 모바일 기기에 구비되는 어플리케이션 프로세서(application processor)에 상응할 수 있다. 구체적으로, 도 1의 동작 주파수 변경 방법은 중앙 처리 유닛의 동작 주파수가 증가되는 것으로 결정(Step S110)되면, 동적 전압 주파수 스케일링의 이력 구간(HP)에서 중앙 처리 유닛의 이전 최대 피크 부하를 검색(Step S120)할 수 있다. 이후, 도 1의 동작 주파수 변경 방법은 동적 전압 주파수 스케일링의 이력 구간(HP)에 중앙 처리 유닛의 이전 최대 피크 부하가 존재하는지 여부를 확인(Step S130)할 수 있다. 이 때, 동적 전압 주파수 스케일링의 이력 구간(HP)에 중앙 처리 유닛의 이전 최대 피크 부하가 존재하면, 도 1의 동작 주파수 변경 방법은 중앙 처리 유닛의 이전 최대 피크 부하를 기초로 증가된 동작 주파수를 계산(Step S140)한 후, 상기 증가된 동작 주파수를 중앙 처리 유닛에 적용(Step S150)시킬 수 있다. 반면에, 동적 전압 주파수 스케일링의 이력 구간(HP)에 중앙 처리 유닛의 이전 최대 피크 부하가 존재하지 않으면, 도 1의 동작 주파수 변경 방법은 중앙 처리 유닛의 최대 동작 주파수를 중앙 처리 유닛에 적용(Step S160)시킬 수 있다. 즉, 도 1의 동작 주파수 변경 방법은 동적 전압 주파수 스케일링의 이력 구간(HP)에서 중앙 처리 유닛의 이전 최대 피크 부하가 검출되지 않으면, 중앙 처리 유닛의 최대 동작 주파수를 중앙 처리 유닛에 적용시키는 것이다.
일반적으로, 시스템 온-칩(예를 들어, 어플리케이션 프로세서 등)에서 중앙 처리 유닛에 대한 동적 전압 주파수 스케일링은 중앙 처리 유닛의 부하율(workload rate)에 기초하여 중앙 처리 유닛의 동작 전압과 동작 주파수를 동적으로 변경하는 방식으로 이루어진다. 다시 말하면, 중앙 처리 유닛에 대한 동적 전압 주파수 스케일링은 중앙 처리 유닛의 현재 동작 상태를 기초로 중앙 처리 유닛의 미래 동작 상태를 예측하고, 중앙 처리 유닛의 예측된 동작 상태에 따라 중앙 처리 유닛의 동작 전압과 동작 주파수를 변경하는 것이다. 구체적으로, 도 2에 도시된 바와 같이, 중앙 처리 유닛의 부하율이 기 설정된 상한(UPPER LIMIT)보다 큰 범위(FI)에 있으면 중앙 처리 유닛의 동작 주파수를 증가시키고, 중앙 처리 유닛의 부하율이 기 설정된 하한(LOWER LIMIT)보다 작은 범위(FD)에 있으면 중앙 처리 유닛의 동작 주파수를 감소시키며, 중앙 처리 유닛의 부하율이 기 설정된 상한(UPPER LIMIT)과 기 설정된 하한(LOWER LIMIT) 사이의 범위(FM)에 있으면 중앙 처리 유닛의 동작 주파수를 유지시킬 수 있다. 일반적으로, 중앙 처리 유닛의 부하는 중앙 처리 유닛의 부하율과 중앙 처리 유닛의 동작 주파수의 곱으로 산출될 수 있다. 하지만, 중앙 처리 유닛의 동작 주파수를 감소시키는 상황에서는, 중앙 처리 유닛의 부하를 비교적 정확하게 파악할 수 있는 반면에, 중앙 처리 유닛의 동작 주파수를 증가시키는 상황에서는, 중앙 처리 유닛의 부하를 정확하게 파악하기가 어렵다. 예를 들어, 중앙 처리 유닛의 동작 주파수가 200MHz인 상황에서 중앙 처리 유닛의 부하율이 100%인 경우, 중앙 처리 유닛의 부하를 정확하게 파악할 수 없다. 따라서, 동적 전압 주파수 스케일링 기술이 실제 적용되는 경우에는, 중앙 처리 유닛의 동작 주파수를 증가시키는 상황에서 중앙 처리 유닛의 성능을 충분히 확보하기 위하여, 중앙 처리 유닛의 동작 주파수를 최대 동작 주파수로 설정하고 있다. 그 결과, 중앙 처리 유닛의 동작 주파수를 증가시키는 상황에서는 불필요한 소모 전력이 크게 발생할 수 있다.
이러한 문제점을 해결하기 위하여, 도 1의 동작 주파수 변경 방법은 중앙 처리 유닛에 대하여 동적 전압 주파수 스케일링을 수행함에 있어서 중앙 처리 유닛의 동작 주파수를 증가시킬 때, 중앙 처리 유닛의 이전 피크 부하들을 고려하여 중앙 처리 유닛의 동작 주파수를 효율적으로 변경할 수 있다. 구체적으로, 도 1의 동작 주파수 변경 방법은 중앙 처리 유닛의 동작 주파수가 증가되는 것으로 결정(Step S110)되면, 동적 전압 주파수 스케일링의 이력 구간(HP)에서 중앙 처리 유닛의 이전 최대 피크 부하를 검색(Step S120)할 수 있다. 예를 들어, 도 1의 동작 주파수 변경 방법은 중앙 처리 유닛의 부하율이 기 설정된 상한(UPPER LIMIT)보다 큰 범위(FI)에 있는 경우, 중앙 처리 유닛의 동작 주파수를 증가시키는 것으로 결정할 수 있다. 한편, 동적 전압 주파수 스케일링은 기 설정된 주기(예를 들어, 100마이크로초(us))로 수행될 수 있다. 다시 말하면, 기 설정된 시간(P)(예를 들어, 100us) 동안 중앙 처리 유닛의 부하율이 계산되고, 상기 계산된 부하율에 기초하여 중앙 처리 유닛의 동작 주파수가 증가, 감소 또는 유지되는 것이 반복적으로 수행될 수 있다. 도 3a에 도시된 바와 같이, 동적 전압 주파수 스케일링의 이력 구간(HP)(예를 들어, 3초(s))은 중앙 처리 유닛의 동작 주파수가 증가되는 것으로 결정(즉, DET로 표시)되는 제 2 시점(ST)보다 기 설정된 시간만큼 앞선 제 1 시점(FT)부터 제 2 시점(ST) 이전까지일 수 있다. 이 때, 동적 전압 주파수 스케일링의 이력 구간(HP)은 요구되는 조건에 따라 다양하게 조절될 수 있다. 예를 들어, 중앙 처리 유닛의 부하가 긴 시간 동안 유사한 부하 패턴을 보이는 상황에서는 동적 전압 주파수 스케일링의 이력 구간(HP)이 넓게 설정될 수 있고, 중앙 처리 유닛의 부하가 짧은 시간 동안 급격히 변하는 부하 패턴을 보이는 상황에서는 동적 전압 주파수 스케일링의 이력 구간(HP)이 좁게 설정될 수 있다.
이후, 도 1의 동작 주파수 변경 방법은 동적 전압 주파수 스케일링의 이력 구간(HP)에 중앙 처리 유닛의 이전 최대 피크 부하가 존재하는지 여부를 확인(Step S130)할 수 있다. 이 때, 중앙 처리 유닛의 이전 최대 피크 부하라 함은 동적 전압 주파수 스케일링의 이력 구간(HP)에 존재하는 중앙 처리 유닛의 이전 피크 부하들 중에서 가장 큰 피크 부하를 의미한다. 실시예에 따라, 중앙 처리 유닛의 이전 피크 부하들은 동적 전압 주파수 스케일링의 이력 구간(HP)에서 중앙 처리 유닛의 동작 주파수가 증가한 경우에서만 고려될 수 있다. 그러므로, 중앙 처리 유닛의 동작 주파수가 증가된 이전 시점들에서의 중앙 처리 유닛의 이전 피크 부하들이 동적 전압 주파수 스케일링의 이력 구간(HP)에서 검색되면, 중앙 처리 유닛의 이전 피크 부하들 중에서 최대값이 중앙 처리 유닛의 이전 최대 피크 부하로 결정되는 것이다. 도 3b는 동적 전압 주파수 스케일링에 의해 중앙 처리 유닛의 동작 주파수가 계속 증가되는 것으로 도시되어 있다. 도 3b에 도시된 바와 같이, 도 1의 동작 주파수 변경 방법은 중앙 처리 유닛의 동작 주파수가 증가되는 것으로 결정(즉, DET로 표시)되면, 그 시점부터 기 설정된 시간만큼 앞선 시점까지만 중앙 처리 유닛의 이전 최대 피크 부하가 존재하는지 여부를 확인할 수 있다. 이 때, 동적 전압 주파수 스케일링의 이력 구간(HP)이 고정되어 있으므로, 시간이 흐름에 따라 새로운 데이터(즉, 중앙 처리 유닛의 새로운 이전 피크 부하)가 고려 대상으로 편입되고, 오래된 데이터(즉, 중앙 처리 유닛의 오래된 이전 피크 부하)는 고려 대상에서 제외된다. 즉, 도 1의 동작 주파수 변경 방법은 중앙 처리 유닛의 이전 피크 부하들을 선입-선출(first in first out; FIFO) 방식으로 고려할 수 있다. 도 3b에 도시된 바와 같이, 동적 전압 주파수 스케일링은 동적 전압 주파수 스케일링의 이력 구간(HP) 내에서 여러 번 수행될 수 있다. 예를 들어, 동적 전압 주파수 스케일링이 기 설정된 시간(P) 예를 들어, 100us마다 수행되는 경우, 동적 전압 주파수 스케일링의 이력 구간(HP)은 3s로 설정될 수 있다.
동적 전압 주파수 스케일링의 이력 구간(HP)에 중앙 처리 유닛의 이전 최대 피크 부하가 존재하는지 여부를 확인(Step S130)한 결과, 동적 전압 주파수 스케일링의 이력 구간(HP)에 중앙 처리 유닛의 이전 최대 피크 부하가 존재하는 경우, 도 1의 동작 주파수 변경 방법은 중앙 처리 유닛의 이전 최대 피크 부하를 기초로 증가된 동작 주파수를 계산(Step S140)하고, 상기 증가된 동작 주파수를 중앙 처리 유닛에 적용(Step S150)시킬 수 있다. 구체적으로, 도 1의 동작 주파수 변경 방법은 전자 기기가 동일한 어플리케이션 등을 수행함에 있어서 중앙 처리 유닛의 부하가 일반적으로 크게 변동하지 않기 때문에, 중앙 처리 유닛의 동작 주파수가 증가되는 것으로 결정되는 경우에도, 중앙 처리 유닛의 동작 연속성을 고려하여 중앙 처리 유닛의 예상 부하가 기 설정된 이전 시간 즉, 동적 전압 주파수 스케일링의 이력 구간(HP)에 존재하는 중앙 처리 유닛의 이전 최대 피크 부하보다 작을 것이라고 예상하는 것이다. 일 실시예에서, 상기 증가된 동작 주파수는 아래 [수학식 1]을 이용하여 계산될 수 있다.
[수학식 1]
Pf = C X Max(Load)
(단, Pf는 상기 증가된 동작 주파수를 나타내고, C는 중앙 처리 유닛의 성능과 소모 전력 사이의 밸런스 상수를 나타내며, Max(Load)는 중앙 처리 유닛의 이전 최대 피크 부하를 나타냄.)
[수학식 1]에 나타난 바와 같이, 밸런스 상수(C)가 1인 경우 중앙 처리 유닛에 적용되는 상기 증가된 동작 주파수는 중앙 처리 유닛의 이전 최대 피크 부하와 동일해지고, 밸런스 상수(C)가 1보다 작은 경우 중앙 처리 유닛에 적용되는 상기 증가된 동작 주파수는 중앙 처리 유닛의 이전 최대 피크 부하보다 작게 되며, 밸런스 상수(C)가 1보다 큰 경우 중앙 처리 유닛에 적용되는 상기 증가된 동작 주파수는 중앙 처리 유닛의 이전 최대 피크 부하보다 크게 된다. 따라서, 도 1의 동작 주파수 변경 방법은 중앙 처리 유닛의 소모 전력 감소보다 성능 향상이 필요한 경우, 밸런스 상수(C)를 증가시켜 상기 증가된 동작 주파수를 중앙 처리 유닛의 이전 최대 피크 부하보다 크게 만들 수 있다. 반면에, 도 1의 동작 주파수 변경 방법은 중앙 처리 유닛의 성능 향상보다 소모 전력 감소가 필요한 경우, 밸런스 상수(C)를 감소시켜 상기 증가된 동작 주파수를 중앙 처리 유닛의 이전 최대 피크 부하보다 작게 만들 수 있다.
또한, 도 1의 동작 주파수 변경 방법은 동적 전압 주파수 스케일링이 수행됨에 따라 중앙 처리 유닛의 동작 주파수가 계속적으로 증가하는 경향을 보이는 경우, 상기 증가된 동작 주파수를 보정할 수 있다. 일 실시예에서, 상기 증가된 동작 주파수는 아래 [수학식 2]를 이용하여 보정될 수 있다.
[수학식 2]
CPf = K X Pf
(단, CPf는 보정된 동작 주파수를 나타내고, Pf는 상기 증가된 동작 주파수를 나타내며, K는 추세 보정 상수를 나타냄.)
[수학식 2]에 나타난 바와 같이, 추세 보정 상수(K)가 1인 경우 중앙 처리 유닛에 적용되는 상기 증가된 동작 주파수는 보정되지 않는다. 즉, 중앙 처리 유닛에 적용되는 상기 증가된 동작 주파수는 중앙 처리 유닛의 이전 최대 피크 부하와 동일해질 수 있다. 이 때, 추세 보정 상수(K)는 1보다 크게 설정되어야 한다. 다만, 본 발명은 추세 보정 상수(K)가 1보다 작게 설정되는 경우를 배제하지 않는다. 따라서, 추세 보정 상수(K)가 1보다 큰 경우 중앙 처리 유닛에 적용되는 상기 증가된 동작 주파수는 더 큰 값을 갖도록 보정될 수 있다. 예를 들어, 직전 동적 전압 주파수 스케일링에 의해 중앙 처리 유닛의 동작 주파수가 증가한 경우, 현 시점에서도 중앙 처리 유닛의 동작 주파수가 증가할 가능성이 크기 때문에, 도 1의 동작 주파수 변경 방법은 추세 보정 상수(K)를 적용하여 상기 증가된 동작 주파수가 더 큰 값을 갖도록 보정할 수 있다.
반면에, 동적 전압 주파수 스케일링의 이력 구간(HP)에 중앙 처리 유닛의 이전 최대 피크 부하가 존재하는지 여부를 확인(Step S130)한 결과, 동적 전압 주파수 스케일링의 이력 구간(HP)에 중앙 처리 유닛의 이전 최대 피크 부하가 존재하지 않는 경우, 도 1의 동작 주파수 변경 방법은 중앙 처리 유닛의 최대 동작 주파수를 중앙 처리 유닛에 적용(Step S160)시킬 수 있다. 구체적으로, 동적 전압 주파수 스케일링의 이력 구간(HP) 동안에 동적 전압 주파수 스케일링에 의해 중앙 처리 유닛의 동작 주파수가 유지 또는 감소만 된 경우, 중앙 처리 유닛의 이전 최대 피크 부하가 존재하지 않을 수 있다. 다시 말하면, 간헐적인 이벤트 또는 최초 발생하는 이벤트에 대해서는 중앙 처리 유닛의 부하 패턴에 대한 판단을 내릴 수가 없으므로, 도 1의 동작 주파수 변경 방법은 중앙 처리 유닛의 최대 동작 주파수를 중앙 처리 유닛에 적용시키는 것이다. 그 결과, 도 1의 동작 주파수 변경 방법은 간헐적인 이벤트 또는 최초 발생하는 이벤트에 대해서 중앙 처리 유닛의 동작 주파수가 낮은 이유로 사용자가 그에 따른 성능 저하를 느끼는 것을 방지할 수 있다. 일부 실시예에서, 도 1의 동작 주파수 변경 방법은 전자 기기가 수행하는 어플리케이션의 변경이 있는 경우, 상기 어플리케이션의 변경 이후 최초로 중앙 처리 유닛의 동작 주파수가 증가될 때, 동적 전압 주파수 스케일링의 이력 구간(HP)에 중앙 처리 유닛의 이전 최대 피크 부하가 존재하는지 여부를 고려하지 않고, 중앙 처리 유닛의 최대 동작 주파수를 중앙 처리 유닛에 적용시킬 수도 있다. 이와 같이, 도 1의 동작 주파수 변경 방법은 중앙 처리 유닛에 대하여 동적 전압 주파수 스케일링을 수행함에 있어서 중앙 처리 유닛의 동작 주파수를 증가시킬 때, 동적 전압 주파수 스케일링의 이력 구간에 존재하는 중앙 처리 유닛의 이전 최대 피크 부하에 기초하여 중앙 처리 유닛의 동작 주파수를 변경함으로써, 중앙 처리 유닛의 성능을 충분히 보장하면서도 중앙 처리 유닛의 불필요한 소모 전력을 감소시킬 수 있다.
도 4a 및 도 4b는 모바일 기기에서 소셜 네트워킹 서비스(social networking service; SNS)가 수행될 때, 도 1의 동작 주파수 변경 방법에 의해 불필요한 소모 전력이 감소되는 효과를 보여주는 도면들이고, 도 5a 및 도 5b는 모바일 기기에서 3D 게임이 수행될 때, 도 1의 동작 주파수 변경 방법에 의해 불필요한 소모 전력이 감소되는 효과를 보여주는 도면들이다.
도 4a 내지 도 5b를 참조하면, 도 1의 동작 주파수 변경 방법에 의해 불필요한 소모 전력이 감소되는 효과가 도시되어 있다. 구체적으로, 도 4a 및 도 4b는 모바일 기기에서 소셜 네트워킹 서비스가 수행되는 경우를 나타내고, 도 5a 및 도 5b는 모바일 기기에서 3D 게임이 수행되는 경우를 나타낸다. 상술한 바와 같이, 중앙 처리 유닛의 성능(즉, 동작 주파수 및 동작 전압)과 소모 전력은 트레이드-오프 관계에 있고, 중앙 처리 유닛에서 동작 전압은 동작 주파수를 따라간다. 예를 들어, 중앙 처리 유닛의 동작 주파수를 변경하는 동작은 시스템 온-칩(예를 들어, 어플리케이션 프로세서)의 내부에서 수행될 수 있고, 중앙 처리 유닛의 동작 전압을 변경하는 동작은 시스템 온-칩의 외부에서 수행될 수 있다. 이 때, 중앙 처리 유닛의 동작 주파수가 높아지면, 중앙 처리 유닛의 동작 전압은 증가하고, 중앙 처리 유닛의 동작 주파수가 낮아지면, 중앙 처리 유닛의 동작 전압은 감소한다. 따라서, 중앙 처리 유닛의 불필요한 동작 주파수를 감소시키는 것이 중앙 처리 유닛의 불필요한 동작 전압을 감소시키는 것이기 때문에, 도 1의 동작 주파수 변경 방법은 중앙 처리 유닛의 불필요한 동작 주파수를 감소시킴으로써 중앙 처리 유닛이 불필요한 전력을 소모하는 것을 방지할 수 있다.
도 4a는 종래의 모바일 기기에서 소셜 네트워킹 서비스가 수행되는 경우를 나타낸다. 도 4a에서, 제 1 파형(BS1)은 중앙 처리 유닛의 동작 주파수를 나타내고, 제 2 파형(BS2)는 중앙 처리 유닛의 부하를 나타낸다. 일반적으로, 메시지 전송 등과 관련된 소셜 네트워킹 서비스를 처리함에 있어서, 메시지 전송 시에 중앙 처리 유닛에는 높은 피크 부하가 걸리지 않고, 상대적으로 낮은 피크 부하가 고르게 걸리게 된다. 그럼에도 불구하고, 도 4a에 도시된 바와 같이, 종래의 모바일 기기는 동적 전압 주파수 스케일링을 수행함에 있어 메시지 전송이 이루어질 때마다 중앙 처리 유닛에 최대 동작 주파수가 공급한다. 이는 반응성을 높이기 위한 것이지만, 불필요한 전력 소모를 일으킨다는 문제점이 있다. 실제로, 메시지 전송이 이루어질 때의 중앙 처리 유닛의 부하율은 중앙 처리 유닛에 공급되는 최대 동작 주파수에서 20%정도 밖에 되지 않으므로, 그에 따른 불필요한 전력 소모가 매우 크게 된다. 반면에, 도 4b는 도 1의 동작 주파수 변경 방법을 채용한 모바일 기기에서 소셜 네트워킹 서비스가 수행되는 경우를 나타낸다. 도 4b에서, 제 1 파형(AS1)은 중앙 처리 유닛의 동작 주파수를 나타내고, 제 2 파형(AS2)는 중앙 처리 유닛의 부하를 나타낸다. 도 4b에 도시된 바와 같이, 도 1의 동작 주파수 변경 방법은 메시지 전송이 이루어질 때마다 동적 전압 주파수 스케일링의 이력 구간에 존재하는 중앙 처리 유닛의 이전 최대 피크 부하에 기초하여 중앙 처리 유닛의 동작 주파수를 변경한다. 그 결과, 도 1의 동작 주파수 변경 방법은 중앙 처리 유닛의 부하 변동에 대한 반응성을 높이면서도 중앙 처리 유닛의 동작 주파수를 효율적으로 조절할 수 있다. 한편, 도 4b에서는, 간헐적인 이벤트 또는 최초 발생하는 이벤트에 대해서 중앙 처리 유닛의 부하 패턴에 대한 판단을 내릴 수가 없어, 도 1의 동작 주파수 변경 방법이 중앙 처리 유닛의 최대 동작 주파수를 중앙 처리 유닛에 적용시키는 시점(즉, IR1, IR2, IR3, IR4)이 확인된다.
도 5a는 종래의 모바일 기기에서 모바일 기기에서 3D 게임이 수행되는 경우를 나타낸다. 도 5a에서, 제 1 파형(BD1)은 중앙 처리 유닛의 동작 주파수를 나타내고, 제 2 파형(BD2)는 중앙 처리 유닛의 부하를 나타낸다. 일반적으로, 3D 게임을 처리하는 경우에 연산량이 많기 때문에 중앙 처리 유닛에는 높은 피크 부하가 고르게 걸리게 된다. 그럼에도 불구하고, 도 5a에 도시된 바와 같이, 종래의 모바일 기기는 동적 전압 주파수 스케일링을 수행함에 있어 연산량의 증가가 있을 때마다 중앙 처리 유닛에 최대 동작 주파수가 공급한다. 이는 반응성을 높이기 위한 것이지만, 불필요한 전력 소모를 일으킨다는 문제점이 있다. 실제로, 연산량의 증가가 있을 때 중앙 처리 유닛의 부하율은 중앙 처리 유닛에 공급되는 최대 동작 주파수에서 40%정도 밖에 되지 않으므로, 그에 따른 불필요한 전력 소모가 매우 크게 된다. 반면에, 도 5b는 도 1의 동작 주파수 변경 방법을 채용한 모바일 기기에서 3D 게임이 수행되는 경우를 나타낸다. 도 5b에서, 제 1 파형(AD1)은 중앙 처리 유닛의 동작 주파수를 나타내고, 제 2 파형(AD2)는 중앙 처리 유닛의 부하를 나타낸다. 도 5b에 도시된 바와 같이, 도 1의 동작 주파수 변경 방법은 연산량의 증가가 있을 때마다 동적 전압 주파수 스케일링의 이력 구간에 존재하는 중앙 처리 유닛의 이전 최대 피크 부하에 기초하여 중앙 처리 유닛의 동작 주파수를 변경한다. 그 결과, 도 1의 동작 주파수 변경 방법은 중앙 처리 유닛의 부하 변동에 대한 반응성을 높이면서도 중앙 처리 유닛의 동작 주파수를 효율적으로 조절할 수 있다. 한편, 도 5b에서는, 3D 게임을 처리하는 경우에 연산량이 계속적으로 있기 때문에 간헐적인 이벤트 또는 최초 발생하는 이벤트가 없는 것으로 도시되어 있지만, 도 1의 동작 주파수 변경 방법은 3D 게임을 처리하는 경우에 간헐적인 이벤트 또는 최초 발생하는 이벤트가 발생하면, 중앙 처리 유닛의 최대 동작 주파수를 중앙 처리 유닛에 적용시킬 수 있다.
도 6은 본 발명의 실시예들에 따른 시스템 온-칩을 나타내는 블록도이고, 도 7은 도 6의 시스템 온-칩과 관련하여 동적 전압 주파수 스케일링이 수행되는 일 예를 나타내는 도면이며, 도 8은 도 6의 시스템 온-칩에 구비된 이력 버퍼 유닛이 기 설정된 용량을 갖는 큐(queue)로 구현되는 일 예를 나타내는 도면이다.
도 6 내지 도 8을 참조하면, 시스템 온-칩(100)은 적어도 하나 이상의 아이피(110), 중앙 처리 유닛(120), 클럭 신호 생성 유닛(130), 모니터링 유닛(140), 클럭 신호 관리 유닛(150) 및 이력 버퍼 유닛(160)을 포함할 수 있다. 도 6에서는 클럭 신호 생성 유닛(130), 모니터링 유닛(140) 및 이력 버퍼 유닛(160)이 클럭 신호 관리 유닛(150)과 별개로 구현되어 있지만, 실시예에 따라, 클럭 신호 생성 유닛(130), 모니터링 유닛(140) 및 이력 버퍼 유닛(160) 중에서 적어도 하나 이상은 클럭 신호 관리 유닛(150) 내에 구현될 수 있다. 한편, 시스템 온-칩(100)은 어플리케이션 프로세서에 상응할 수 있다.
일반적으로, 중앙 처리 유닛(120)의 동작 주파수(FCM)를 변경하는 동작은 시스템 온-칩(100)의 내부에서 수행될 수 있고, 중앙 처리 유닛(120)의 동작 전압(OP_VOL)을 변경하는 동작은 시스템 온-칩(100)의 외부(예를 들어, 전력 관리 집적 회로(200))에서 수행될 수 있다. 다만, 이것은 노이즈 등과 같은 요인 때문에 전력 관리 집적 회로(200)가 일반적으로 시스템 온-칩(100)의 외부에 위치하기 때문이며, 전력 관리 집적 회로(200)가 시스템 온-칩(100)의 내부에 위치하는 경우, 중앙 처리 유닛(120)의 동작 주파수(FCM)와 동작 전압(OP_VOL) 모두 시스템 온-칩(100)의 내부에서 수행될 수 있다. 한편, 도 7에 도시된 바와 같이, 시스템 온-칩(100)은 동적 전압 주파수 스케일링을 실시간으로 수행하기 위하여, 전력 관리 집적 회로(200)와 통신을 수행할 수 있다. 상술한 바와 같이, 중앙 처리 유닛(120)에서 동작 전압(OP-VOL)은 동작 주파수(FCM)를 따라가기 때문에(즉, 동작 주파수(FCM)가 높아지면 동작 전압(OP-VOL)은 증가하고, 동작 주파수(FCM)가 낮아지면 동작 전압(OP-VOL)은 감소함.), 전력 관리 집적 회로(200)는 시스템 온-칩(100)으로부터 중앙 처리 유닛(120)의 동작 주파수(FCM)의 예측 변경 정보(CIS)를 수신하고, 그에 기초하여 중앙 처리 유닛(120)의 동작 전압(OP-VOL)을 조절하여 제공할 수 있다. 예를 들어, 전력 관리 집적 회로(200)는 중앙 처리 유닛(120)의 동작 주파수(FCM)가 증가된다는 예측 변경 정보(CIS)를 수신하면, 중앙 처리 유닛(120)에 공급될 동작 전압(OP-VOL)을 중앙 처리 유닛(120)의 동작 주파수(FCM)가 증가되기 이전에 증가시킬 수 있다. 반면에, 전력 관리 집적 회로(200)는 중앙 처리 유닛(120)의 동작 주파수(FCM)가 감소된다는 예측 변경 정보(CIS)를 수신하면, 중앙 처리 유닛(120)에 공급될 동작 전압(OP-VOL)을 중앙 처리 유닛(120)의 동작 주파수(FCM)가 감소된 이후에 감소시킬 수 있다.
적어도 하나 이상의 아이피(110)는 시스템 온-칩(100) 내에서 소정의 동작을 수행할 수 있다. 예를 들어, 적어도 하나 이상의 아이피(110)는 시스템 온-칩(110)을 구성하는 여러 구성 요소들 예를 들어, 비디오 컨트롤러, 디스플레이 컨트롤러, 메모리 장치 등에 상응할 수 있다. 중앙 처리 유닛(120)는 적어도 하나 이상의 아이피(110)와 통신을 수행하고, 이들을 위한 다양한 연산을 수행할 수 있다. 이 때, 중앙 처리 유닛(120)은 클럭 신호(CLK)에 기초하여 동작하는데, 클럭 신호(CLK)의 주파수가 중앙 처리 유닛(120)의 동작 주파수(FCM)에 상응한다. 클럭 신호 생성 유닛(130)은 클럭 신호 관리 유닛(120)에서 결정된 중앙 처리 유닛(120)의 동작 주파수(FCM)에 기초하여 클럭 신호(CLK)를 생성하고, 상기 클럭 신호(CLK)를 중앙 처리 유닛(120)에 제공할 수 있다. 모니터링 유닛(140)은 중앙 처리 유닛(120)의 부하(LD)를 모니터링하고, 중앙 처리 유닛(120)의 부하(LD)를 클럭 신호 관리 유닛(150)에 제공할 수 있다. 클럭 신호 관리 유닛(150)은 모니터링 유닛(140)으로부터 중앙 처리 유닛(120)의 부하(LD)를 입력받아 중앙 처리 유닛(120)의 부하율을 계산한 후, 중앙 처리 유닛(120)의 부하율이 기 설정된 상한보다 크면, 클럭 신호(CLK)의 주파수에 상응하는 중앙 처리 유닛(120)의 동작 주파수(FCM)를 증가시키고, 중앙 처리 유닛(120)의 부하율이 기 설정된 하한보다 작으면, 중앙 처리 유닛(120)의 동작 주파수(FCM)를 감소시키며, 중앙 처리 유닛(120)의 부하율이 기 설정된 상한과 기 설정된 하한 사이에 있으면, 중앙 처리 유닛(120)의 동작 주파수(FCM)를 유지시킬 수 있다. 실시예에 따라, 모니터링 유닛(140)에서 중앙 처리 유닛(120)의 부하율까지 계산하여 클럭 신호 관리 유닛(150)에 제공할 수도 있다.
이와 같이, 시스템 온-칩(100)에서는 중앙 처리 유닛(120)에 대한 동적 전압 주파수 스케일링이 중앙 처리 유닛(120)의 부하율에 기초하여 중앙 처리 유닛(120)의 동작 전압(OP-VOL)과 동작 주파수(FCM)를 동적으로 변경하는 방식으로 이루어진다. 다시 말하면, 중앙 처리 유닛(120)에 대한 동적 전압 주파수 스케일링은 중앙 처리 유닛(120)의 현재 동작 상태를 기초로 중앙 처리 유닛(120)의 미래 동작 상태를 예측하고, 중앙 처리 유닛(120)의 예측된 동작 상태에 따라 중앙 처리 유닛(120)의 동작 전압(OP-VOL)과 동작 주파수(FCM)를 변경하는 것이다. 일반적으로, 중앙 처리 유닛(120)의 부하(LD)는 중앙 처리 유닛(120)의 부하율과 중앙 처리 유닛(120)의 동작 주파수(FCM)의 곱으로 산출될 수 있다. 하지만, 중앙 처리 유닛(120)의 동작 주파수(FCM)를 감소시키는 상황에서는, 중앙 처리 유닛(120)의 부하를 비교적 정확하게 파악할 수 있는 반면에, 중앙 처리 유닛(120)의 동작 주파수(FCM)를 증가시키는 상황에서는, 중앙 처리 유닛(120)의 부하(LD)를 정확하게 파악하기가 어렵다. 예를 들어, 중앙 처리 유닛(120)의 동작 주파수(FCM)가 200MHz인 상황에서 중앙 처리 유닛(120)의 부하율이 100%인 경우, 중앙 처리 유닛(120)의 부하(LD)를 정확하게 파악할 수 없다. 그 결과, 종래에는 중앙 처리 유닛(120)의 동작 주파수(FCM)를 증가시키는 상황에서 중앙 처리 유닛(120)의 동작 주파수(FCM)를 최대 동작 주파수로 설정하기 때문에 불필요한 소모 전력이 크게 발생하고 있다.
이러한 문제점을 해결하기 위하여, 시스템 온-칩(100)은 이력 버퍼 유닛(160)을 구비하고, 클럭 신호 관리 유닛(150)이 중앙 처리 유닛(120)의 동작 주파수(FCM)를 증가시킬 때 이력 버퍼 유닛(160)을 참조하게 함으로써, 중앙 처리 유닛(120)의 동작 주파수(FCM)를 효율적으로 조절할 수 있다. 구체적으로, 이력 버퍼 유닛(160)은 중앙 처리 유닛(120)의 동작 주파수(FCM)가 증가된 이전 시점들에서의 중앙 처리 유닛(120)의 이전 피크 부하(PLD)들을 저장할 수 있다. 일 실시예에서, 도 8에 도시된 바와 같이, 이력 버퍼 유닛(160)은 기 설정된 용량을 갖는 큐(queue)로 구현될 수 있고, 선입-선출(FIFO) 방식으로 동작할 수 있다. 예를 들어, 이력 버퍼 유닛(160)은 기 설정된 용량을 갖는 원형 큐(circular queue), 선형 큐(linear queue) 등으로 구현될 수 있다. 상술한 바와 같이, 이력 버퍼 유닛(160)은 선입-선출(FIFO) 방식으로 동작하기 때문에, 시간이 흐름에 따라 새로운 데이터(즉, 중앙 처리 유닛(120)의 이전 피크 부하(PLD))가 고려 대상으로 편입되고, 오래된 데이터(즉, 중앙 처리 유닛(120)의 오래된 이전 피크 부하(PLD))는 고려 대상에서 제외된다. 한편, 이력 버퍼 유닛(160)은 중앙 처리 유닛(120)의 동작 주파수(FCM)가 감소되거나 유지된 이전 시점들에서의 중앙 처리 유닛(120)의 부하 정보들은 저장하지 않고, 중앙 처리 유닛(120)의 부하 정보들을 대신하여 이용 불가(not-available)를 나타내는 데이터(NA)들을 저장할 수 있다. 그 결과, 시간이 흐름에 따라, 도 8에 도시된 이력 버퍼 유닛(160)의 슬롯(SLOT)에는 중앙 처리 유닛(120)의 동작 주파수(FCM)가 증가된 이전 시점들에서의 중앙 처리 유닛(120)의 이전 피크 부하(PLD)들 및 중앙 처리 유닛(120)의 동작 주파수(FCM)가 감소되거나 유지된 이전 시점들에서의 중앙 처리 유닛(120)의 부하 정보들을 대신하는 데이터(NA)들이 순차적으로 저장될 수 있다. 이 때, 이력 버퍼 유닛(160)의 용량은 요구되는 조건에 따라 다양하게 조절될 수 있다. 예를 들어, 중앙 처리 유닛(120)의 부하(LD)가 긴 시간 동안 유사한 부하 패턴을 보이는 상황에서는 이력 버퍼 유닛(160)의 용량은 크게 설정될 수 있고, 중앙 처리 유닛(120)의 부하(LD)가 짧은 시간 동안 급격히 변하는 부하 패턴을 보이는 상황에서는 이력 버퍼 유닛(160)의 용량은 작게 설정될 수 있다. 도 8에 도시된 바와 같이, 이력 버퍼 유닛(160)에는 동적 전압 주파수 스케일링이 여러 번 수행된 정보가 저장될 수 있다. 예를 들어, 동적 전압 주파수 스케일링이 기 설정된 시간 예를 들어, 100us마다 수행되는 경우, 이력 버퍼 유닛(160)은 3s동안 저장 가능한 용량을 가질 수 있다.
클럭 신호 관리 유닛(150)은 중앙 처리 유닛(120)의 동작 주파수(FCM)를 증가시킴에 있어서, 이력 버퍼 유닛(160)에서 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)를 검출하고, 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)에 기초하여 계산되는 증가된 동작 주파수를 중앙 처리 유닛(120)에 적용시킬 수 있다. 즉, 상기 증가된 동작 주파수가 중앙 처리 유닛(120)의 동작 주파수(FCM)가 되는 것이다. 이 때, 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)라 함은 이력 버퍼 유닛(160)에 존재하는 중앙 처리 유닛(120)의 이전 피크 부하(PLD)들 중에서 가장 큰 피크 부하를 의미한다. 구체적으로, 클럭 신호 관리 유닛(150)은 중앙 처리 유닛(120)의 동작 주파수(FCM)가 증가되는 것으로 결정되면, 이력 버퍼 유닛(160)에 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)가 존재하는지 여부를 확인할 수 있다. 그 결과, 이력 버퍼 유닛(160)에 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)가 존재하는 경우, 클럭 신호 관리 유닛(150)은 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)를 기초로 증가된 동작 주파수를 계산한 후, 상기 증가된 동작 주파수를 중앙 처리 유닛(120)에 적용시킬 수 있다. 다시 말하면, 클럭 신호 생성 유닛(130)이 상기 증가된 동작 주파수를 갖는 클럭 신호(CLK)를 생성하여 중앙 처리 유닛(120)에 제공할 수 있다. 예를 들어, 상기 증가된 동작 주파수는 아래 [수학식 1]을 이용하여 계산될 수 있다.
[수학식 1]
Pf = C X Max(Load)
(단, Pf는 상기 증가된 동작 주파수를 나타내고, C는 중앙 처리 유닛의 성능과 소모 전력 사이의 밸런스 상수를 나타내며, Max(Load)는 중앙 처리 유닛의 이전 최대 피크 부하를 나타냄.)
[수학식 1]에 나타난 바와 같이, 밸런스 상수(C)가 1인 경우 중앙 처리 유닛(120)에 적용되는 상기 증가된 동작 주파수는 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)와 동일해지고, 밸런스 상수(C)가 1보다 작은 경우 중앙 처리 유닛(120)에 적용되는 상기 증가된 동작 주파수는 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)보다 작게 되며, 밸런스 상수(C)가 1보다 큰 경우 중앙 처리 유닛(120)에 적용되는 상기 증가된 동작 주파수는 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)보다 크게 된다. 따라서, 클럭 신호 관리 유닛(150)은 중앙 처리 유닛(120)의 소모 전력 감소보다 성능 향상이 필요한 경우, 밸런스 상수(C)를 증가시켜 상기 증가된 동작 주파수를 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)보다 크게 만들 수 있다. 반면에, 클럭 신호 관리 유닛(150)은 중앙 처리 유닛(120)의 성능 향상보다 소모 전력 감소가 필요한 경우, 밸런스 상수(C)를 감소시켜 상기 증가된 동작 주파수를 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)보다 작게 만들 수 있다.
또한, 클럭 신호 관리 유닛(150)은 동적 전압 주파수 스케일링이 수행됨에 따라 중앙 처리 유닛(120)의 동작 주파수(FCM)가 계속적으로 증가하는 경향을 보이는 경우, 상기 증가된 동작 주파수를 보정할 수 있다. 예를 들어, 상기 증가된 동작 주파수는 아래 [수학식 2]를 이용하여 보정될 수 있다.
[수학식 2]
CPf = K X Pf
(단, CPf는 보정된 동작 주파수를 나타내고, Pf는 상기 증가된 동작 주파수를 나타내며, K는 추세 보정 상수를 나타냄.)
[수학식 2]에 나타난 바와 같이, 추세 보정 상수(K)가 1인 경우 중앙 처리 유닛(120)에 적용되는 상기 증가된 동작 주파수는 보정되지 않는다. 즉, 중앙 처리 유닛(120)에 적용되는 상기 증가된 동작 주파수는 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)와 동일해질 수 있다. 이 때, 추세 보정 상수(K)는 동적 전압 주파수 스케일링이 수행됨에 따라 중앙 처리 유닛(120)의 동작 주파수(FCM)가 계속적으로 증가하는 경향과 관련되므로, 일반적으로 1보다 크게 설정되어야 한다. 다만, 본 발명은 추세 보정 상수(K)가 1보다 작게 설정되는 경우를 배제하지는 않는다. 따라서, 추세 보정 상수(K)가 1보다 큰 경우 중앙 처리 유닛(120)에 적용되는 상기 증가된 동작 주파수는 더 큰 값을 갖도록 보정(즉, 상기 보정된 동작 주파수)될 수 있다. 예를 들어, 직전의 동적 전압 주파수 스케일링에서 중앙 처리 유닛(120)의 동작 주파수(FCM)가 증가한 경우, 현재의 동작 전압 주파수 스케일링에서도 중앙 처리 유닛(120)의 동작 주파수(FCM)가 증가할 가능성이 크기 때문에, 클럭 신호 관리 유닛(150)은 추세 보정 상수(K)를 적용하여 상기 증가된 동작 주파수가 더 큰 값을 갖도록 보정할 수 있다.
반면에, 이력 버퍼 유닛(160)에 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)가 존재하지 않는 경우, 클럭 신호 관리 유닛(150)은 중앙 처리 유닛(120)의 최대 동작 주파수를 중앙 처리 유닛(120)에 적용시킬 수 있다. 즉, 중앙 처리 유닛(120)의 최대 동작 주파수가 중앙 처리 유닛(120)의 동작 주파수(FCM)가 되는 것이다. 구체적으로, 소정의 시간 동안 동적 전압 주파수 스케일링에 의해 중앙 처리 유닛(120)의 동작 주파수(FCM)가 유지 또는 감소만 된 경우, 이력 버퍼 유닛(160)에는 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)가 존재하지 않고, 이용 불가를 나타내는 데이터(NA)들만 존재할 수 있다. 이러한 경우, 이력 버퍼 유닛(160)은 클럭 신호 관리 유닛(150)에 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)가 존재하지 않음을 나타내는 결과 신호(NSR)를 출력할 수 있다. 따라서, 클럭 신호 관리 유닛(150)은 간헐적인 이벤트 또는 최초 발생하는 이벤트에 대해서는 중앙 처리 유닛(120)의 부하 패턴에 대한 판단을 내릴 수가 없으므로, 중앙 처리 유닛(120)의 최대 동작 주파수를 중앙 처리 유닛(120)에 적용시킬 수 있다. 그 결과, 클럭 신호 관리 유닛(150)은 간헐적인 이벤트 또는 최초 발생하는 이벤트에 대해서 중앙 처리 유닛(120)의 동작 주파수(FCM)가 낮은 이유로 사용자가 그에 따른 성능 저하를 느끼는 것을 방지할 수 있다. 일부 실시예에서, 클럭 신호 관리 유닛(150)은 전자 기기가 수행하는 어플리케이션의 변경이 있는 경우, 상기 어플리케이션의 변경 이후 최초로 중앙 처리 유닛(120)의 동작 주파수(FCM)가 증가될 때, 이력 버퍼 유닛(160)에 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)가 존재하는지 여부를 고려하지 않고, 중앙 처리 유닛(120)의 최대 동작 주파수를 중앙 처리 유닛(120)에 적용시킬 수도 있다. 이와 같이, 시스템 온-칩(100)은 클럭 신호 관리 유닛(150)과 이력 버퍼 유닛(160) 사이의 인터액션(interaction)에 기초하여, 중앙 처리 유닛(120)에 대하여 동적 전압 주파수 스케일링을 수행함에 있어서 중앙 처리 유닛(120)의 동작 주파수(FCM)를 증가시킬 때, 이력 버퍼 유닛(160)에 존재하는 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)에 기초하여 중앙 처리 유닛(120)의 동작 주파수(FCM)를 변경함으로써, 중앙 처리 유닛(120)의 성능을 충분히 보장하면서도 중앙 처리 유닛(120)의 불필요한 소모 전력을 감소시킬 수 있다.
도 9는 도 6의 시스템 온-칩에 구비된 중앙 처리 유닛의 동작 주파수가 변경되는 일 예를 나타내는 순서도이고, 도 10은 도 6의 시스템 온-칩에 구비된 중앙 처리 유닛의 동작 주파수가 증가되는 일 예를 나타내는 도면이며, 도 11은 도 6의 시스템 온-칩에 구비된 중앙 처리 유닛의 동작 주파수가 유지 또는 감소되는 일 예를 나타내는 도면이다.
도 9 내지 도 11을 참조하면, 시스템 온-칩(100)이 중앙 처리 유닛(120)에 대하여 동적 전압 주파수 스케일링을 수행함에 따라 중앙 처리 유닛(120)의 동작 주파수(FCM)를 변경하는 일 예가 도시되어 있다. 구체적으로, 시스템 온-칩(100)은 중앙 처리 유닛(120)의 부하율을 계산(Step S210)하고, 중앙 처리 유닛(120)의 부하율이 기 설정된 상한보다 큰지 여부를 확인(Step S220)할 수 있다. 이 때, 중앙 처리 유닛(120)의 부하율이 기 설정된 상한보다 큰 경우, 시스템 온-칩(100)은 중앙 처리 유닛(120)의 이전 피크 부하(PLD)들을 고려하여 중앙 처리 유닛(120)의 동작 주파수(FCM)을 증가(Step S230)시킬 수 있다. 반면에, 중앙 처리 유닛(120)의 부하율이 기 설정된 상한보다 작은 경우, 시스템 온-칩(100)은 중앙 처리 유닛(120)의 부하율이 기 설정된 하한보다도 작은지 여부를 확인(Step S240)할 수 있다. 이 때, 중앙 처리 유닛(120)의 부하율이 기 설정된 하한보다 작은 경우, 시스템 온-칩(120)은 기 설정된 형태로 중앙 처리 유닛(120)의 동작 주파수(FCM)을 감소(Step S250)시킬 수 있다. 반면에, 중앙 처리 유닛(120)의 부하율이 기 설정된 하한보다는 큰 경우, 시스템 온-칩(120)은 중앙 처리 유닛(120)의 동작 주파수(FCM)을 유지(Step S260)시킬 수 있다. 실시예에 따라, 시스템 온-칩(120)은 중앙 처리 유닛(120)의 동작 주파수(FCM)을 감소시킴에 있어서, 선형(linear) 형태로 중앙 처리 유닛(120)의 동작 주파수(FCM)을 감소시킬 수도 있고, 비선형(non-linear) 형태로 중앙 처리 유닛(120)의 동작 주파수(FCM)을 감소시킬 수도 있다.
도 10은 시스템 온-칩(100)이 중앙 처리 유닛(120)의 동작 주파수(FCM)를 증가시키는 과정을 보여주고 있다. 구체적으로, 모니터링 유닛(140)이 중앙 처리 유닛(120)의 부하(LD)를 모니터링함으로써 중앙 처리 유닛(120)의 부하(LD)를 클럭 신호 관리 유닛(150)에 제공하면, 클럭 신호 관리 유닛(150)은 중앙 처리 유닛(120)의 부하(LD)에 기초하여 중앙 처리 유닛(120)의 부하율을 계산한 후, 중앙 처리 유닛(120)의 부하율에 기초하여 중앙 처리 유닛(120)의 동작 주파수(FCM)를 증가시키는 것으로 결정(즉, DET1으로 표시)할 수 있다. 상술한 바와 같이, 클럭 신호 관리 유닛(150)은 중앙 처리 유닛(120)의 부하율이 기 설정된 상한보다 큰 경우, 중앙 처리 유닛(120)의 동작 주파수(FCM)를 증가시키는 것으로 결정할 수 있다. 실시예에 따라, 모니터링 유닛(140)이 중앙 처리 유닛(120)의 부하(LD)에 기초하여 중앙 처리 유닛(120)의 부하율을 계산한 후, 중앙 처리 유닛(120)의 부하율을 클럭 신호 관리 유닛(150)에 제공할 수도 있다. 이후, 클럭 신호 관리 유닛(150)은 이력 버퍼 유닛(160)에 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)가 존재하는지 여부를 확인하기 위한 확인 신호(INC)를 출력하고, 그에 응답하여 이력 버퍼 유닛(160)은 클럭 신호 관리 유닛(150)에 이전 최대 피크 부하(BPLS)를 출력하거나 또는 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)가 존재하지 않음을 나타내는 결과 신호(NSR)를 출력할 수 있다. 이에, 클럭 신호 관리 유닛(150)은 중앙 처리 유닛(120)에 적용시킬 동작 주파수(FCM)를 결정(즉, DET2로 표시)할 수 있다. 구체적으로, 이력 버퍼 유닛(160)에 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)가 존재하는 경우, 클럭 신호 관리 유닛(150)은 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)에 기초하여 증가된 동작 주파수를 계산한 후, 상기 증가된 동작 주파수를 중앙 처리 유닛(120)에 적용시킬 동작 주파수(FCM)로 결정할 수 있다. 반면에, 이력 버퍼 유닛(160)에 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)가 존재하지 않는 경우, 클럭 신호 관리 유닛(150)은 중앙 처리 유닛(120)의 최대 동작 주파수를 중앙 처리 유닛(120)의 동작 주파수(FCM)로 결정할 수 있다. 이후, 클럭 신호 관리 유닛(150)은 중앙 처리 유닛(120)의 동작 주파수(FCM)가 증가되었으므로, 그 시점에서의 중앙 처리 유닛(120)의 피크 부하(PLD)를 이력 버퍼 유닛(160)에 출력하고, 이력 버퍼 유닛(160)은 상기 피크 부하(PLD)를 저장(즉, STR로 표시)할 수 있다. 이와 같이, 시스템 온-칩(100)은 중앙 처리 유닛(120)에 대하여 동적 전압 주파수 스케일링을 수행함에 있어서, 이력 버퍼 유닛(160)에 존재하는 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)에 기초하여 중앙 처리 유닛(120)의 동작 주파수(FCM)를 증가시킴으로써, 중앙 처리 유닛(120)의 성능을 충분히 보장하면서도 중앙 처리 유닛(120)의 불필요한 소모 전력을 감소시킬 수 있다.
도 11은 시스템 온-칩(100)이 중앙 처리 유닛(120)의 동작 주파수(FCM)를 유지 또는 감소시키는 과정을 보여주고 있다. 구체적으로, 모니터링 유닛(140)이 중앙 처리 유닛(120)의 부하(LD)를 모니터링함으로써 중앙 처리 유닛(120)의 부하(LD)를 클럭 신호 관리 유닛(150)에 제공하면, 클럭 신호 관리 유닛(150)은 중앙 처리 유닛(120)의 부하(LD)에 기초하여 중앙 처리 유닛(120)의 부하율을 계산한 후, 중앙 처리 유닛(120)의 부하율에 기초하여 중앙 처리 유닛(120)의 동작 주파수(FCM)를 유지 또는 감소시키는 것으로 결정(즉, DET1으로 표시)할 수 있다. 상술한 바와 같이, 클럭 신호 관리 유닛(150)은 중앙 처리 유닛(120)의 부하율이 기 설정된 상한보다 작으나 기 설정된 하한보다는 큰 경우, 중앙 처리 유닛(120)의 동작 주파수(FCM)를 유지시키는 것으로 결정할 수 있고, 중앙 처리 유닛(120)의 부하율이 기 설정된 하한보다도 작은 경우, 중앙 처리 유닛(120)의 동작 주파수(FCM)를 감소시키는 것으로 결정할 수 있다. 실시예에 따라, 모니터링 유닛(140)이 중앙 처리 유닛(120)의 부하(LD)에 기초하여 중앙 처리 유닛(120)의 부하율을 계산한 후, 중앙 처리 유닛(120)의 부하율을 클럭 신호 관리 유닛(150)에 제공할 수도 있다. 이후, 클럭 신호 관리 유닛(150)은 중앙 처리 유닛(120)에 적용시킬 동작 주파수(FCM)를 결정(즉, DET2로 표시)할 수 있다. 구체적으로, 중앙 처리 유닛(120)의 부하율이 기 설정된 상한보다 작으나 기 설정된 하한보다는 큰 경우, 클럭 신호 관리 유닛(150)은 중앙 처리 유닛(120)의 동작 주파수(FCM)를 유지시킬 수 있다. 반면에, 중앙 처리 유닛(120)의 부하율이 기 설정된 하한보다도 작은 경우, 클럭 신호 관리 유닛(150)은 기 설정된 형태로 중앙 처리 유닛(120)의 동작 주파수(FCM)을 감소시켜 감소된 동작 주파수를 계산한 후, 상기 감소된 동작 주파수를 중앙 처리 유닛(120)에 적용시킬 동작 주파수(FCM)로 결정할 수 있다. 이후, 클럭 신호 관리 유닛(150)은 상기 동작 주파수(FCM)를 중앙 처리 유닛(120)에 적용시킨 후, 중앙 처리 유닛(120)의 동작 주파수(FCM)가 증가되지 않았으므로, 그 시점에서의 중앙 처리 유닛(120)의 부하 정보를 이력 버퍼 유닛(160)에 출력하지 않고, 상기 부하 정보를 대신하여 이용 불가를 나타내는 데이터(NA)를 출력할 수 있다. 그러면, 이력 버퍼 유닛(160)은 이용 불가를 나타내는 상기 데이터(NA)를 저장(즉, STR로 표시)할 수 있다. 이와 같이, 시스템 온-칩(100)은 중앙 처리 유닛(120)에 대하여 동적 전압 주파수 스케일링을 수행함에 있어서, 이력 버퍼 유닛(160)에 저장되어 있는 이전 피크 부하(PLD)들을 고려하지 않고, 중앙 처리 유닛(120)의 동작 주파수(FCM)를 종래와 같은 방식으로 유지시키거나 또는 감소시킬 수 있다.
도 12는 도 6의 시스템 온-칩에 구비된 중앙 처리 유닛에 증가된 동작 주파수가 적용되는 일 예를 나타내는 순서도이고, 도 13은 도 6의 시스템 온-칩에 구비된 이력 버퍼 유닛에 중앙 처리 유닛의 이전 피크 부하들이 저장되어 있는 상태를 나타내는 도면이며, 도 14는 도 6의 시스템 온-칩에 구비된 이력 버퍼 유닛에 중앙 처리 유닛의 이전 피크 부하들이 저장되어 있지 않는 상태를 나타내는 도면이다.
도 12 내지 도 14를 참조하면, 시스템 온-칩(100)이 중앙 처리 유닛(120)에 대하여 동적 전압 주파수 스케일링을 수행함에 따라 중앙 처리 유닛(120)의 동작 주파수(FCM)를 증가시키는 일 예가 도시되어 있다. 구체적으로, 시스템 온-칩(100)은 중앙 처리 유닛(120)의 동작 주파수(FCM)를 증가시키는 것으로 결정(Step S320)하면, 이력 버퍼 유닛(120)에 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)가 존재하는지 여부를 확인(Step S340)할 수 있다. 이 때, 이력 버퍼 유닛(120)에 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)가 존재하는 경우, 시스템 온-칩(100)은 중앙 처리 유닛(120)의 이전 최대 피크 부하에 기초하여 증가된 동작 주파수를 계산(Step S360)하고, 상기 증가된 동작 주파수를 중앙 처리 유닛(120)의 동작 주파수(FCM)로 결정할 수 있다. 반면에, 이력 버퍼 유닛(120)에 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)가 존재하지 않는 경우, 시스템 온-칩(100)은 중앙 처리 유닛(120)의 최대 동작 주파수를 중앙 처리 유닛의 동작 주파수(FCM)로 결정(Step S380)할 수 있다. 이후, 시스템 온-칩(100)은 중앙 처리 유닛(120)에 상기 증가된 동작 주파수 또는 상기 최대 동작 주파수를 적용시킬 수 있다.
상술한 바와 같이, 이력 버퍼 유닛(160)은 중앙 처리 유닛(120)의 동작 주파수(FCM)가 증가된 이전 시점들에서의 중앙 처리 유닛(120)의 이전 피크 부하(PLD)들을 저장할 수 있고, 중앙 처리 유닛(120)의 동작 주파수(FCM)가 감소되거나 유지된 이전 시점들에서의 중앙 처리 유닛(120)의 부하 정보들을 대신하여 이용 불가를 나타내는 데이터(NA)들을 저장할 수 있다. 일 실시예에서, 이력 버퍼 유닛(160)은 기 설정된 용량을 갖는 큐로 구현될 수 있고, 선입-선출(FIFO) 방식으로 동작할 수 있다. 이 때, 이력 버퍼 유닛(160)은 선입-선출(FIFO) 방식으로 동작하기 때문에, 시간이 흐름에 따라 새로운 데이터(즉, 중앙 처리 유닛(120)의 이전 피크 부하(PLD))가 고려 대상으로 편입되고, 오래된 데이터(즉, 중앙 처리 유닛(120)의 오래된 이전 피크 부하(PLD))는 고려 대상에서 제외된다. 도 13 및 도 14에 도시된 바와 같이, 시간이 흐름에 따라, 이력 버퍼 유닛(160)의 슬롯(SLOT)에는 중앙 처리 유닛(120)의 동작 주파수(FCM)가 증가된 이전 시점들에서의 중앙 처리 유닛(120)의 이전 피크 부하(PLD)들 및/또는 중앙 처리 유닛(120)의 동작 주파수(FCM)가 감소되거나 유지된 이전 시점들에서의 중앙 처리 유닛(120)의 부하 정보들을 대신하는 데이터(NA)들이 순차적으로 저장될 수 있다. 구체적으로, 도 13은 이력 버퍼 유닛(120)에 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)가 존재하는 경우를 도시하고 있다. 이 경우, 중앙 처리 유닛(120)의 동작 주파수(FCM)가 증가된 이전 시점들에서의 중앙 처리 유닛(120)의 이전 피크 부하(PLD)들 중에서 최대값(MPW)이 이전 최대 피크 부하(BPLS)로 결정되고, 이력 버퍼 유닛(160)은 클럭 신호 관리 유닛(150)에 상기 최대값(MPW)을 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)로서 출력할 수 있다. 반면에, 도 14는 이력 버퍼 유닛(120)에 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)가 존재하지 않는 경우를 도시하고 있다. 이 경우, 이력 버퍼 유닛(160)은 클럭 신호 관리 유닛(150)에 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)가 존재하지 않음을 나타내는 결과 신호(NSR)를 출력할 수 있다.
도 15는 도 6의 시스템 온-칩에 구비된 중앙 처리 유닛에 적용되는 증가된 동작 주파수가 계산되는 일 예를 나타내는 순서도이고, 도 16은 도 6의 시스템 온-칩에 구비된 중앙 처리 유닛에 적용되는 증가된 동작 주파수가 계산되는 일 예를 나타내는 도면이다.
도 15 및 도 16을 참조하면, 시스템 온-칩(100)이 중앙 처리 유닛(120)에 적용되는 증가된 동작 주파수(PF1, PF2, PF3)를 계산하는 일 예가 도시되어 있다. 구체적으로, 시스템 온-칩(100)은 이력 버퍼 유닛(160)에서 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)를 검출(Step S420)하고, 전체 시스템(예를 들어, 전자 기기, 모바일 기기 등)에 소모 전력 감소보다 높은 성능이 요구되는지 여부를 확인(Step S440)할 수 있다. 이 때, 전체 시스템에 소모 전력 감소보다 높은 성능이 요구되는 경우, 시스템 온-칩(100)은 중앙 처리 유닛(120)의 성능과 소모 전력 사이의 밸런스 상수(C)를 증가(Step S460)시킬 수 있다. 반면에, 전체 시스템에 소모 전력 감소보다 높은 성능이 요구되지 않는 경우(즉, 전체 시스템에 높은 성능보다는 소모 전력 감소가 요구되는 경우), 시스템 온-칩(100)은 중앙 처리 유닛(120)의 성능과 소모 전력 사이의 밸런스 상수(C)를 감소(Step S480)시킬 수 있다. 이후, 시스템 온-칩(100)은 밸런스 상수(C)를 이용하여 중앙 처리 유닛(120)에 적용되는 상기 증가된 동작 주파수(PF1, PF2, PF3)를 계산할 수 있다.
시스템 온-칩(100)은 상술한 [수학식 1]을 이용하여 상기 증가된 동작 주파수(PF1, PF2, PF3)를 계산할 수 있다. 상술한 [수학식 1]에 나타난 바와 같이, 밸런스 상수(C)가 1인 경우 중앙 처리 유닛(120)에 적용되는 상기 증가된 동작 주파수(PF1)는 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)와 동일해지고, 밸런스 상수(C)가 1보다 작은 경우 중앙 처리 유닛(120)에 적용되는 상기 증가된 동작 주파수(PF2)는 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)보다 작게 되며(즉, CIC로 표시), 밸런스 상수(C)가 1보다 큰 경우 중앙 처리 유닛(120)에 적용되는 상기 증가된 동작 주파수(PF3)는 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)보다 크게 된다(즉, CDC로 표시). 그러므로, 도 16에 도시된 바와 같이, 시스템 온-칩(100)은 기본적으로 밸런스 상수(C)를 1로 설정함으로써 중앙 처리 유닛(120)에 적용되는 상기 증가된 동작 주파수(PF1)를 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)와 동일하게 만들되, 중앙 처리 유닛(120)의 소모 전력 감소보다 성능 향상이 필요한 경우, 밸런스 상수(C)를 증가시켜 상기 증가된 동작 주파수(PF3)를 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)보다 크게 만들고(즉, CDC로 표시), 중앙 처리 유닛(120)의 성능 향상보다 소모 전력 감소가 필요한 경우, 밸런스 상수(C)를 감소시켜 상기 증가된 동작 주파수(PF2)를 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)보다 작게 만들 수 있다(즉, CIC로 표시). 그 결과, 시스템 온-칩(100)은 전체 시스템에 요구되는 조건에 따라 중앙 처리 유닛(120)에 적용되는 상기 증가된 동작 주파수(PF1, PF2, PF3)를 조절할 수 있다.
도 17은 도 6의 시스템 온-칩에 구비된 중앙 처리 유닛에 적용되는 증가된 동작 주파수가 보정되는 일 예를 나타내는 순서도이고, 도 18은 도 6의 시스템 온-칩에 구비된 중앙 처리 유닛에 적용되는 증가된 동작 주파수가 보정되는 일 예를 나타내는 도면이다.
도 17 및 도 18을 참조하면, 시스템 온-칩(100)이 중앙 처리 유닛(120)에 적용되는 증가된 동작 주파수(PF)를 보정하는 일 예가 도시되어 있다. 구체적으로, 시스템 온-칩(100)은 중앙 처리 유닛(120)의 상기 증가된 동작 주파수(PF)를 계산(Step S520)한 후, 현재의 동적 전압 주파수 스케일링 직전의 동적 전압 주파수 스케일링에서 중앙 처리 유닛(120)의 동작 주파수(FCM)가 증가되었는지 여부를 확인(Step S540)할 수 있다. 이 때, 현재의 동적 전압 주파수 스케일링 직전의 동적 전압 주파수 스케일링에서 중앙 처리 유닛(120)의 동작 주파수(FCM)가 증가된 경우, 시스템 온-칩(100)은 상기 증가된 동작 주파수(PF)에 추세 보정 상수(K)를 적용(Step S560)시킬 수 있고, 현재의 동적 전압 주파수 스케일링 직전의 동적 전압 주파수 스케일링에서 중앙 처리 유닛(120)의 동작 주파수(FCM)가 증가되지 않은 경우, 시스템 온-칩(100)은 상기 증가된 동작 주파수(PF)에 추세 보정 상수(K)를 비적용(Step S580)시킬 수 있다. 즉, 시스템 온-칩(100)은 동적 전압 주파수 스케일링이 수행됨에 따라 중앙 처리 유닛(120)의 동작 주파수(FCM)가 계속적으로 증가하는 경향을 보이는 경우 상기 증가된 동작 주파수(PF)를 보정(즉, PIC로 표시)할 수 있다.
시스템 온-칩(100)은 상술한 [수학식 2]를 이용하여 상기 증가된 동작 주파수(PF)를 보정할 수 있다. 상술한 [수학식 2]에 나타난 바와 같이, 추세 보정 상수(K)가 1인 경우 중앙 처리 유닛(120)에 적용되는 상기 증가된 동작 주파수(PF)는 보정되지 않는다. 즉, 중앙 처리 유닛(120)에 적용되는 상기 증가된 동작 주파수(PF)는 중앙 처리 유닛(120)의 이전 최대 피크 부하(BPLS)와 동일해질 수 있다. 이 때, 추세 보정 상수(K)는 동적 전압 주파수 스케일링이 수행됨에 따라 중앙 처리 유닛(120)의 동작 주파수(FCM)가 계속적으로 증가하는 경향과 관련되므로, 일반적으로 1보다 크게 설정되어야 한다. 다만, 본 발명은 추세 보정 상수(K)가 1보다 작게 설정되는 경우를 배제하지는 않는다. 따라서, 현재의 동적 전압 주파수 스케일링 직전의 동적 전압 주파수 스케일링에서 중앙 처리 유닛(120)의 동작 주파수(FCM)가 증가된 경우, 시스템 온-칩(100)은 중앙 처리 유닛(120)에 적용되는 상기 증가된 동작 주파수(PF)가 더 큰 값을 갖도록 보정(즉, PIC로 표시)시킬 수 있다. 다시 말하면, 직전의 동적 전압 주파수 스케일링에 의해 중앙 처리 유닛(120)의 동작 주파수(FCM)가 증가한 경우, 현재의 동적 전압 주파수 스케일링에서도 중앙 처리 유닛(120)의 동작 주파수(FCM)가 증가할 가능성이 크기 때문에, 시스템 온-칩(100)은 상기 증가된 동작 주파수(PF)에 추세 보정 상수(K)를 적용시켜 상기 증가된 동작 주파수(PF)가 더 큰 값을 갖도록 하는 것이다. 다만, 이것은 예시적인 것으로서, 상기 증가된 동작 주파수(PF)에 추세 보정 상수(K)를 적용되는 조건은 다양하게 설계 변경될 수 있다.
도 19는 본 발명의 실시예들에 따른 모바일 기기를 나타내는 블록도이고, 도 20은 도 19의 모바일 기기가 스마트폰으로 구현되는 일 예를 나타내는 도면이다.
도 19 및 도 20을 참조하면, 모바일 기기(500)는 시스템 온-칩(510), 메모리 장치(520), 스토리지 장치(530), 복수의 기능 모듈들(540, 550, 560, 570) 및 시스템 온-칩(510), 메모리 장치(520), 스토리지 장치(530) 및 기능 모듈들(540, 550, 560, 570)에 각각 동작 전압을 제공하는 전력 관리 집적 회로(580)를 포함할 수 있다. 한편, 도 23에 도시된 바와 같이, 모바일 기기(500)는 스마트폰으로 구현될 수 있고, 시스템 온-칩(510)은 어플리케이션 프로세서에 상응할 수 있다. 이하, 시스템 온-칩(510)은 어플리케이션 프로세서인 것으로 가정하여 설명하기로 한다. 또한, 도 19에서는 전력 관리 집적 회로(580)가 시스템 온-칩(510)의 외부에 구현되어 있으나, 실시예에 따라, 전력 관리 집적 회로(580)는 시스템 온-칩(510)의 내부에 구현될 수도 있다.
어플리케이션 프로세서(510)는 모바일 기기(500)의 전반적인 동작을 제어할 수 있다. 즉, 어플리케이션 프로세서(510)는 메모리 장치(520), 스토리지 장치(530) 및 복수의 기능 모듈들(540, 550, 560, 570)을 제어할 수 있다. 한편, 어플리케이션 프로세서(510)는 내부에 구비된 중앙 처리 유닛의 동작 상태를 예측하고, 중앙 처리 유닛의 예측된 동작 상태에 기초하여 중앙 처리 유닛의 동작 주파수를 증가, 감소 또는 유지시키는 동적 전압 주파수 스케일링을 하드웨어적 또는 소프트웨어적으로 수행할 수 있다. 구체적으로, 어플리케이션 프로세서(510)는 중앙 처리 유닛의 부하를 모니터링하여 중앙 처리 유닛의 부하율을 계산한 후, 중앙 처리 유닛의 부하율이 기 설정된 상한보다 크면, 중앙 처리 유닛의 동작 주파수를 증가시키고, 중앙 처리 유닛의 부하율이 기 설정된 하한보다 작으면, 중앙 처리 유닛의 동작 주파수를 감소시키며, 중앙 처리 유닛의 부하율이 기 설정된 상한과 기 설정된 하한 사이에 있으면, 중앙 처리 유닛의 동작 주파수를 유지시킬 수 있다. 특히, 어플리케이션 프로세서(510)는 중앙 처리 유닛에 대하여 동적 전압 주파수 스케일링을 수행함에 있어서, 중앙 처리 유닛의 동작 주파수를 증가시킬 때, 동적 전압 주파수 스케일링의 이력 구간에 존재하는 중앙 처리 유닛의 이전 최대 피크 부하에 기초하여 중앙 처리 유닛의 동작 주파수를 변경함으로써, 중앙 처리 유닛의 성능을 충분히 보장하면서도 중앙 처리 유닛의 불필요한 소모 전력을 감소시킬 수 있다. 이를 위하여, 어플리케이션 프로세서(510)는 적어도 하나 이상의 아이피, 클럭 신호에 기초하여 동작하는 중앙 처리 유닛, 클럭 신호를 생성하는 클럭 신호 생성 유닛, 중앙 처리 유닛의 부하를 모니터링하는 모니터링 유닛, 중앙 처리 유닛의 동작 주파수가 증가된 이전 시점들에서의 중앙 처리 유닛의 이전 피크 부하들을 저장하는 이력 버퍼 유닛, 및 상기 동적 전압 주파수 스케일링을 수행하되, 중앙 처리 유닛의 동작 주파수를 증가시킬 때, 이력 버퍼 유닛에서 중앙 처리 유닛의 이전 최대 피크 부하를 검출하고, 중앙 처리 유닛의 이전 최대 피크 부하에 기초하여 계산되는 증가된 동작 주파수를 중앙 처리 유닛에 적용시키는 클럭 신호 관리 유닛을 포함할 수 있다. 그 결과, 모바일 기기(500)는 저전력으로 동작하면서도 고성능을 제공할 수 있다. 다만, 이에 대해서는 상술한 바 있으므로, 그에 대한 중복되는 설명은 생략하기로 한다.
메모리 장치(520) 및 스토리지 장치(530)는 모바일 기기(500)의 동작에 필요한 데이터들을 저장할 수 있다. 실시예에 따라, 메모리 장치(520) 및 스토리지 장치(530)는 어플리케이션 프로세서(510) 내에 구비될 수도 있다. 예를 들어, 메모리 장치(520)는 DRAM(dynamic random access memory) 장치, SRAM(static random access memory) 장치, 모바일 DRAM 장치 등과 같은 휘발성 메모리 장치에 상응할 수 있고, 스토리지 장치(530)는 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) 장치 등과 같은 비휘발성 메모리 장치에 상응할 수 있다. 실시예에 따라, 스토리지 장치(530)는 솔리드 스테이트 드라이브(solid state drive; SSD), 하드 디스크 드라이브(hard disk drive; HDD), 씨디롬(CD-ROM) 등을 더 포함할 수도 있다. 다만, 이것은 예시적인 것으로서, 메모리 장치(520)의 종류와 스토리지 장치(530)의 종류는 이에 한정되지 않는다.
복수의 기능 모듈들(540, 550, 560, 570)은 모바일 기기(500)의 다양한 기능들을 각각 수행할 수 있다. 예를 들어, 모바일 기기(500)는 통신 기능을 수행하기 위한 통신 모듈(540)(예를 들어, 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) 모듈 등), 카메라 기능을 수행하기 위한 카메라 모듈(550), 표시 기능을 수행하기 위한 표시 모듈(560), 터치 입력 기능을 수행하기 위한 터치 패널 모듈(570) 등을 포함할 수 있다. 실시예에 따라, 모바일 기기(500)는 GPS(global positioning system) 모듈, 마이크 모듈, 스피커 모듈, 다양한 센서 모듈(예를 들어, 자이로스코프(gyroscope) 센서, 지자기 센서, 가속도 센서, 중력 센서, 광(조도) 센서, 근접 센서, 디지털 나침반 등) 등을 더 포함할 수 있다. 다만, 모바일 기기(500)에 구비되는 기능 모듈들(540, 550, 560, 570)의 종류는 그에 한정되지 않음은 자명하다. 이상, 도 19 및 도 20에서는 본 발명의 실시예들에 따른 시스템 온-칩(510)이 모바일 기기(500)의 어플리케이션 프로세서로 구현되는 것을 설명하였으나, 본 발명의 실시예들에 따른 시스템 온-칩(510)은 모바일 기기(500)의 어플리케이션 프로세서에 한정되지 아니하고, 전자 기기 내에서 동적 전압 주파수 스케일링이 적용되는 중앙 처리 유닛을 구비하는 모든 반도체 집적 칩으로 해석되어야 할 것이다.
본 발명은 시스템 온-칩을 구비한 전자 기기에 다양하게 적용될 수 있다. 예를 들어, 본 발명은 컴퓨터, 노트북, 디지털 카메라, 비디오 캠코더, 휴대폰, 스마트폰, 스마트패드, 피엠피(PMP), 피디에이(PDA), MP3 플레이어, 차량용 네비게이션, 비디오폰, 감시 시스템, 추적 시스템, 동작 감지 시스템, 이미지 안정화 시스템 등에 적용될 수 있다.
이상에서는 본 발명의 예시적인 실시예들을 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 시스템 온-칩 110: 적어도 하나 이상의 아이피
120: 중앙 처리 유닛 130: 클럭 신호 생성 유닛
140: 모니터링 유닛 150: 클럭 신호 관리 유닛
160: 이력 버퍼 유닛 200: 전력 관리 집적 회로

Claims (10)

  1. 시스템 온-칩에 구비된 중앙 처리 유닛에 대하여 동적 전압 주파수 스케일링을 수행하는 동작 주파수 변경 방법에 있어서,
    상기 중앙 처리 유닛의 동작 주파수가 증가되는 것으로 결정되면, 상기 동적 전압 주파수 스케일링의 이력 구간(history period)에서 상기 중앙 처리 유닛의 이전 최대 피크 부하(peak workload)를 검출하는 단계; 및
    상기 이전 최대 피크 부하에 기초하여 계산되는 증가된 동작 주파수를 상기 중앙 처리 유닛에 적용시키는 단계를 포함하고,
    상기 증가된 동작 주파수는 [수학식 1]을 이용하여 계산되는 것을 특징으로 하는 동작 주파수 변경 방법.
    [수학식 1]
    Pf = C X Max(Load)
    (단, Pf는 상기 증가된 동작 주파수를 나타내고, C는 상기 중앙 처리 유닛의 성능과 소모 전력 사이의 밸런스 상수를 나타내며, Max(Load)는 상기 이전 최대 피크 부하를 나타냄.)
  2. 제 1 항에 있어서,
    상기 이력 구간에서 상기 이전 최대 피크 부하가 검출되지 않으면, 상기 중앙 처리 유닛의 최대 동작 주파수를 상기 중앙 처리 유닛에 적용시키는 단계를 더 포함하는 것을 특징으로 하는 동작 주파수 변경 방법.
  3. 제 1 항에 있어서, 상기 이력 구간은 상기 동작 주파수가 증가되는 것으로 결정되는 제 2 시점보다 기 설정된 시간만큼 앞선 제 1 시점부터 상기 제 2 시점 이전까지인 것을 특징으로 하는 동작 주파수 변경 방법.
  4. 제 3 항에 있어서, 상기 중앙 처리 유닛의 부하율(workload ratio)이 기 설정된 상한(upper limit)보다 큰 경우, 상기 동작 주파수는 증가되고, 상기 부하율이 기 설정된 하한(lower limit)보다 작은 경우, 상기 동작 주파수는 감소되며, 상기 부하율이 상기 상한과 상기 하한 사이에 있으면, 상기 동작 주파수는 유지되는 것을 특징으로 하는 동작 주파수 변경 방법.
  5. 제 3 항에 있어서, 상기 동작 주파수가 증가된 이전 시점들에서의 상기 중앙 처리 유닛의 이전 피크 부하들이 상기 이력 구간에서 검색되면, 상기 이전 피크 부하들 중에서 최대값이 상기 이전 최대 피크 부하로 결정되는 것을 특징으로 하는 동작 주파수 변경 방법.
  6. 삭제
  7. 제 1 항에 있어서, 상기 증가된 동작 주파수는 [수학식 2]를 이용하여 보정되는 것을 특징으로 하는 동작 주파수 변경 방법.
    [수학식 2]
    CPf = K X Pf
    (단, CPf는 보정된 동작 주파수를 나타내고, Pf는 상기 증가된 동작 주파수를 나타내며, K는 추세 보정 상수를 나타냄.)
  8. 적어도 하나 이상의 아이피(intellectual property);
    클럭 신호에 기초하여 동작하는 중앙 처리 유닛;
    상기 클럭 신호를 생성하는 클럭 신호 생성 유닛;
    상기 중앙 처리 유닛의 부하(workload)를 모니터링하는 모니터링 유닛;
    상기 중앙 처리 유닛의 부하율(workload ratio)이 기 설정된 상한(upper limit)보다 크면, 상기 클럭 신호의 주파수에 상응하는 상기 중앙 처리 유닛의 동작 주파수를 증가시키고, 상기 부하율이 기 설정된 하한(lower limit)보다 작으면, 상기 동작 주파수를 감소시키며, 상기 부하율이 상기 상한과 상기 하한 사이에 있으면, 상기 동작 주파수를 유지시키는 클럭 신호 관리 유닛; 및
    상기 동작 주파수가 증가된 이전 시점들에서의 상기 중앙 처리 유닛의 이전 피크 부하들을 저장하는 이력 버퍼(history buffer) 유닛을 포함하고,
    상기 클럭 신호 관리 유닛은 상기 동작 주파수를 증가시킬 때, 상기 이력 버퍼 유닛에서 상기 중앙 처리 유닛의 이전 최대 피크 부하를 검출하고, 상기 이전 최대 피크 부하에 기초하여 계산되는 증가된 동작 주파수를 상기 중앙 처리 유닛에 적용시키며,
    상기 증가된 동작 주파수는 [수학식 1]을 이용하여 계산되는 것을 특징으로 하는 시스템 온-칩.
    [수학식 1]
    Pf = C X Max(Load)
    (단, Pf는 상기 증가된 동작 주파수를 나타내고, C는 상기 중앙 처리 유닛의 성능과 소모 전력 사이의 밸런스 상수를 나타내며, Max(Load)는 상기 이전 최대 피크 부하를 나타냄.)
  9. 제 8 항에 있어서, 상기 클럭 신호 관리 유닛은 상기 동작 주파수를 증가시킬 때, 상기 이력 버퍼 유닛에서 상기 이전 최대 피크 부하가 검출되지 않으면, 상기 중앙 처리 유닛의 최대 동작 주파수를 상기 중앙 처리 유닛에 적용시키는 것을 특징으로 하는 시스템 온-칩.
  10. 제 9 항에 있어서, 상기 이력 버퍼 유닛은 상기 동작 주파수가 감소되거나 유지된 이전 시점들에서의 상기 중앙 처리 유닛의 부하 정보들은 저장하지 않고, 상기 부하 정보들을 대신하여 이용 불가(not-available)를 나타내는 데이터들을 저장하는 것을 특징으로 하는 시스템 온-칩.
KR1020130136159A 2013-11-11 2013-11-11 동적 전압 주파수 스케일링을 수행하기 위한 동작 주파수 변경 방법, 시스템 온-칩 및 이를 구비하는 모바일 기기 KR102166935B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130136159A KR102166935B1 (ko) 2013-11-11 2013-11-11 동적 전압 주파수 스케일링을 수행하기 위한 동작 주파수 변경 방법, 시스템 온-칩 및 이를 구비하는 모바일 기기
US14/532,649 US9588578B2 (en) 2013-11-11 2014-11-04 Method of changing an operating frequency for performing a dynamic voltage and frequency scaling, system on-chip, and mobile device having the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130136159A KR102166935B1 (ko) 2013-11-11 2013-11-11 동적 전압 주파수 스케일링을 수행하기 위한 동작 주파수 변경 방법, 시스템 온-칩 및 이를 구비하는 모바일 기기

Publications (2)

Publication Number Publication Date
KR20150054134A KR20150054134A (ko) 2015-05-20
KR102166935B1 true KR102166935B1 (ko) 2020-10-16

Family

ID=53044870

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130136159A KR102166935B1 (ko) 2013-11-11 2013-11-11 동적 전압 주파수 스케일링을 수행하기 위한 동작 주파수 변경 방법, 시스템 온-칩 및 이를 구비하는 모바일 기기

Country Status (2)

Country Link
US (1) US9588578B2 (ko)
KR (1) KR102166935B1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9489031B2 (en) * 2014-03-10 2016-11-08 Apple Inc. Method to reduce acoustic noise induced by processor performance state changes in response to periodic application workloads
KR102164099B1 (ko) * 2014-03-28 2020-10-12 삼성전자 주식회사 시스템 온 칩, 이의 작동 방법, 및 이를 포함하는 장치
US20150309552A1 (en) * 2014-04-25 2015-10-29 Qualcomm Innovation Center, Inc. Enhancement in linux ondemand governor for periodic loads
US9696787B2 (en) * 2014-12-10 2017-07-04 Qualcomm Innovation Center, Inc. Dynamic control of processors to reduce thermal and power costs
EP3304714A4 (en) 2015-06-05 2018-06-20 Endura Technologies LLC Dynamic frequency scaling based on supply current monitoring
US10025641B2 (en) * 2015-09-15 2018-07-17 Qualcomm Incorporated Workload differentiation for processor frequency scaling
GB2545458A (en) * 2015-12-17 2017-06-21 Minima Processor Oy A system and a method for controlling operating voltage
US10416692B2 (en) 2017-09-19 2019-09-17 Apple Inc. Method and apparatus for reducing capacitor-induced noise
KR102568686B1 (ko) * 2018-02-09 2023-08-23 삼성전자주식회사 컨텍스트 허브를 포함하는 모바일 장치 및 그것의 동작 방법
US10579093B2 (en) 2018-03-01 2020-03-03 At&T Intellectual Property I, L.P. Workload prediction based CPU frequency scaling
WO2020082757A1 (en) * 2018-10-26 2020-04-30 Huawei Technologies Co., Ltd. Energy efficiency adjustments for cpu governor

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090015232A1 (en) * 2003-11-18 2009-01-15 Anton Rozen Method and device for regulating a voltage supply to a semiconductor device
US20090204830A1 (en) * 2008-02-11 2009-08-13 Nvidia Corporation Power management with dynamic frequency dajustments
KR101254009B1 (ko) 2006-02-03 2013-04-12 삼성전자주식회사 워크로드 추정치를 사용하는 cpu의 동적 전압 스케일링방법 및 그 방법을 실행시키기 위한 프로그램을 기록한기록매체

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2119568C (en) 1991-10-04 1998-06-23 Hiroshi Nakajima Fuzzy retrieval apparatus and method
KR0156152B1 (ko) 1995-05-12 1998-11-16 구본준 최대값 선택회로
US7711966B2 (en) * 2004-08-31 2010-05-04 Qualcomm Incorporated Dynamic clock frequency adjustment based on processor load
KR100722314B1 (ko) 2005-03-24 2007-05-28 중앙대학교 산학협력단 Dvs를 이용한 멀티미디어 신호처리 장치
US7562234B2 (en) 2005-08-25 2009-07-14 Apple Inc. Methods and apparatuses for dynamic power control
WO2007056705A2 (en) 2005-11-03 2007-05-18 Los Alamos National Security Adaptive real-time methodology for optimizing energy-efficient computing
US20090049314A1 (en) 2007-08-13 2009-02-19 Ali Taha Method and System for Dynamic Voltage and Frequency Scaling (DVFS)
KR100975747B1 (ko) 2008-10-27 2010-08-12 고려대학교 산학협력단 마이크로 프로세서 시스템
US8250395B2 (en) 2009-11-12 2012-08-21 International Business Machines Corporation Dynamic voltage and frequency scaling (DVFS) control for simultaneous multi-threading (SMT) processors
KR101282199B1 (ko) 2009-11-19 2013-07-04 한국전자통신연구원 클러스터 시스템의 전력 제어 장치 및 방법
TWI423017B (zh) * 2010-06-21 2014-01-11 Ind Tech Res Inst 效能調整裝置、具有此效能調整裝置的處理器及其效能調整方法
US8601298B2 (en) 2010-09-15 2013-12-03 Qualcomm Incorporated System and method for determining optimal operating parameters for conserving power in a portable device from a hypersurface which represents optimal values of the operating parameters under various synthetic workloads
KR101740338B1 (ko) * 2010-10-20 2017-05-26 삼성전자주식회사 디지털 시스템에서 동적 클럭 제어 장치 및 방법
KR101340118B1 (ko) * 2011-12-07 2013-12-10 펌킨네트웍스(주) 소비전력 추정 장치 및 그 방법
US20130311792A1 (en) * 2012-05-18 2013-11-21 Prahallada PONNATHOTA Voltage scaling architecture on system-on-chip platform
KR101991682B1 (ko) * 2012-08-29 2019-06-21 삼성전자 주식회사 Dvfs 제어 방법 및 이를 이용한 시스템-온 칩

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090015232A1 (en) * 2003-11-18 2009-01-15 Anton Rozen Method and device for regulating a voltage supply to a semiconductor device
KR101254009B1 (ko) 2006-02-03 2013-04-12 삼성전자주식회사 워크로드 추정치를 사용하는 cpu의 동적 전압 스케일링방법 및 그 방법을 실행시키기 위한 프로그램을 기록한기록매체
US20090204830A1 (en) * 2008-02-11 2009-08-13 Nvidia Corporation Power management with dynamic frequency dajustments

Also Published As

Publication number Publication date
US9588578B2 (en) 2017-03-07
US20150134982A1 (en) 2015-05-14
KR20150054134A (ko) 2015-05-20

Similar Documents

Publication Publication Date Title
KR102166935B1 (ko) 동적 전압 주파수 스케일링을 수행하기 위한 동작 주파수 변경 방법, 시스템 온-칩 및 이를 구비하는 모바일 기기
KR102189115B1 (ko) 대칭형 다중 프로세서를 구비한 시스템 온-칩 및 이를 위한 최대 동작 클럭 주파수 결정 방법
TWI526843B (zh) 用於節能行動平台之適應性中斷合倂技術
US20160062441A1 (en) Power managing method and power supplying system applying the power managing method
US8768666B2 (en) Method and system for controlling thermal load distribution in a portable computing device
CN107924225B (zh) 用于动态地调整存储器状态转变定时器的系统和方法
US20140317427A1 (en) Dynamic clock voltage scaling (dcvs) based on application performance in a system-on-a-chip (soc), and related methods and processor-based systems
JP2008059054A (ja) プロセッサシステム
EP2859426B1 (en) A bi-modal power delivery scheme for integrated circuits that enables fine grain power management for multiple functional blocks on a single die
US20110241423A1 (en) Circuits, Systems and Methods to Detect and Accommodate Power Supply Voltage Droop
US10296069B2 (en) Bandwidth-monitored frequency hopping within a selected DRAM operating point
US20180039324A1 (en) Method for controlling a plurality of hardware modules and associated controller and system
US8645740B2 (en) Methods and systems to dynamically manage performance states in a data processing system
US10114438B2 (en) Dynamic power budgeting in a chassis
US20150162069A1 (en) Information processing terminal and power control method
JP6795610B2 (ja) 端末デバイス、および端末デバイスに適用される測位情報処理方法
KR101533672B1 (ko) 빔 형상 커버리지 구성을 통한 사이클링에 의한 네트워크 커버리지
WO2015060174A1 (ja) 情報処理装置、情報処理装置の制御方法、情報処理装置制御プログラム
WO2016110011A1 (zh) 一种终端及终端省电的方法、存储介质
US10552219B2 (en) Computing resource management of computing devices
JP2017049972A (ja) 電子システム及び関連するクロック管理方法
EP2566259A2 (en) Method and apparatus for configuring ping interval in a portable terminal
CN112256118B (zh) 应用程序冷冻控制方法、装置、终端及可读存储介质
CN110972221B (zh) 一种通讯信号处理的方法、装置和移动终端
US8639888B2 (en) Systems and methods for managing cache destage scan times

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