KR20140029721A - Dvfs 제어 방법 및 이를 이용한 시스템-온 칩 - Google Patents

Dvfs 제어 방법 및 이를 이용한 시스템-온 칩 Download PDF

Info

Publication number
KR20140029721A
KR20140029721A KR1020120095142A KR20120095142A KR20140029721A KR 20140029721 A KR20140029721 A KR 20140029721A KR 1020120095142 A KR1020120095142 A KR 1020120095142A KR 20120095142 A KR20120095142 A KR 20120095142A KR 20140029721 A KR20140029721 A KR 20140029721A
Authority
KR
South Korea
Prior art keywords
dvfs
soc
operating frequency
cpu
policy
Prior art date
Application number
KR1020120095142A
Other languages
English (en)
Other versions
KR101991682B1 (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 KR1020120095142A priority Critical patent/KR101991682B1/ko
Priority to US13/957,982 priority patent/US9436253B2/en
Priority to DE102013109014.1A priority patent/DE102013109014A1/de
Priority to NL2011348A priority patent/NL2011348B1/en
Priority to CN201310384889.3A priority patent/CN103678247B/zh
Publication of KR20140029721A publication Critical patent/KR20140029721A/ko
Application granted granted Critical
Publication of KR101991682B1 publication Critical patent/KR101991682B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • 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/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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

시스템-온 칩(SoC)이 개시된다. 본 발명의 실시예에 따른 시스템-온 칩은 DVFS 제어부를 실행하기 위한 프로그램을 저장하는 메모리 장치 및 상기 DVFS 제어부를 실행하기 위한 프로그램을 상기 메모리 장치로부터 리드하여 실행하는 CPU를 포함하며, 상기 DVFS 제어부는 상기 SoC의 적어도 하나의 구성요소에 대한 SoC 부하를 계산하는 SoC 부하 계산부, 상기 SoC 부하의 패턴을 분석한 결과 또는 외부 입력에 따라 시나리오를 판단하고, 상기 시나리오에 적합한 DVFS 테이블을 결정하는 DVFS 테이블 선택부 및 미리 저장된 복수의 DVFS 테이블들 중에서 상기 결정된 DVFS 테이블을 참조하여 상기 SoC 부하와 현재의 동작 주파수에 따른 DVFS 동작을 결정하는 DVFS 계산부를 포함한다. 본 발명의 실시예에 따른 DVFS 제어부에 의하면, 다양한 시나리오에 따라 DVFS 테이블을 선택적으로 적용함으로써 DVFS 제어를 효율적으로 할 수 있다.

Description

DVFS 제어 방법 및 이를 이용한 시스템-온 칩{A DVFS controlling method and A System-on Chip using thereof}
본 발명은 DVFS 제어 방법 및 이를 이용한 시스템-온 칩에 관한 것으로, 보다 상세하게는 시나리오 분석에 따라 전력 소모와 성능을 효율적으로 관리할 수 있는 DVFS 제어 방법 및 이를 이용한 시스템-온 칩에 관한 것이다.
마이크로 프로세서(Microprocessor)는 미리 확립된 순서에 의해 체계적으로 연산을 수행하여, 컴퓨터의 각 장치에 제어 신호를 제공하는 1개의 작은 실리콘 칩에 집적시킨 집적회로로 이루어진 처리 장치를 뜻한다.
시스템-온 칩(system-on chip(SOC))은 컴퓨터 시스템 또는 다른 전자 시스템을 구현하기 위해 CPU(central processing unit), 메모리, 인터페이스(interface), 디지털 신호 처리 회로, 및 아날로그 신호 처리 회로 등 다양한 기능 블록들을 하나의 반도체 집적 회로에 집적하는 기술 또는 상기 기술에 따라 집적된 하나의 집적 회로(integrated circuit(IC))를 의미한다.
SOC는 프로세서, 멀티미디어(multimedia), 그래픽(graphic), 인터페이스, 및 보안 등 다양한 기능들을 포함하는 더욱 복잡한 시스템으로 발전하고 있다.
배터리를 사용하는 휴대용 장치(portable device)에 다양한 기능이 컨버전스되면서, 휴대용 장치의 성능뿐만 아니라, 휴대용 장치의 전력 소모량을 최소화하는 방안에 대한 연구가 진행되고 있다. 이의 일환으로 DVFS(Dynamic Voltage Frequency Scaling, 이하 DVFS) 정책이 사용된다.
DVFS 정책은 알고리즘(algorithm)을 통해 CPU의 주파수(Frequency)와 전압(Voltage)을 조절하는 정책이다. 성능과 전력 소모는 서로 대조적인(trade-off)관계에 있다. 따라서, 전력 소모를 줄이기 위해서는 성능을 낮추어야 한다.
따라서, 성능이 중시되는 시스템에서는 전력 소모를 줄일 수 있는 알고리즘의 비중을 줄이는 DVFS 정책을 사용하며, 전력 소모의 감소가 중시되는 시스템에서는 전력 소모를 줄일 수 있는 알고리즘의 비중을 늘리는 DVFS 정책을 사용한다.
본 발명이 이루고자 하는 기술적 과제는, 시스템-온 칩의 동작 상태에 따른 시나리오 분석을 통해 전력 소모와 성능을 효율적으로 관리할 수 있는 DVFS 제어 방법 및 이를 이용한 시스템-온 칩을 제공하는데 있다.
본 발명의 실시예에 따른 시스템-온 칩은 DVFS 제어부를 실행하기 위한 프로그램을 저장하는 메모리 장치 및 상기 DVFS 제어부를 실행하기 위한 프로그램을 상기 메모리 장치로부터 리드하여 실행하는 CPU를 포함하며, 상기 DVFS 제어부는 상기 SoC의 적어도 하나의 구성요소에 대한 SoC 부하를 계산하는 SoC 부하 계산부, 상기 SoC 부하의 패턴을 분석한 결과 또는 외부 입력에 따라 시나리오를 판단하고, 상기 시나리오에 적합한 DVFS 테이블을 결정하는 DVFS 테이블 선택부 및 미리 저장된 복수의 DVFS 테이블들 중에서 상기 결정된 DVFS 테이블을 참조하여 상기 SoC 부하와 현재의 동작 주파수에 따른 DVFS 동작을 결정하는 DVFS 계산부를 포함한다.
실시예에 따라 상기 DVFS 제어부는 상기 복수의 DVFS 테이블들을 저장하고 상기 DVFS 테이블 선택부에 제공하는 DVFS 테이블 저장부를 더 포함한다.
실시예에 따라 상기 복수의 DVFS 테이블들은 상기 CPU의 각각의 동작 주파수에 대응하는 상한 임계값을 포함하고, 상기 복수의 DVFS 테이블들 중 일부는 상기 각각의 동작 주파수와 상기 상한 임계값의 비율이 상기 동작 주파수에 따라 상이하다.
실시예에 따라 상기 복수의 DVFS 테이블들은 상기 CPU의 각각의 동작 주파수에 대응하는 하한 임계값을 포함하고, 상기 복수의 DVFS 테이블들 중 일부는 상기 각각의 동작 주파수와 상기 하한 임계값의 비율이 상기 동작 주파수에 따라 상이하다.
실시예에 따라 상기 외부 입력은 어플리케이션 실행 정보와 CPU 제어 신호를 포함한다.
실시예에 따라 상기 DVFS 테이블 선택부는 상기 복수의 DVFS 테이블 중에서 적어도 하나의 DVFS 테이블을 선택하여 상기 시나리오에 적합한 DVFS 테이블을 결정한다.
실시예에 따라 상기 DVFS 동작은 제1 정책과 제2 정책을 포함하고, 상기 제1 정책은 상기 CPU의 동작 주파수와 상기 SoC의 동작 전압을 증가시키는 정책이고, 상기 제2 정책은 상기 CPU의 동작 주파수와 상기 SoC의 동작 전압을 감소시키는 정책이다.
실시예에 따라 상기 SoC의 각 구성요소 중 적어도 하나의 메모리 사용량을 측정하여 상기 메모리 사용량을 DVFS 제어부로 전송하는 성능 측정부 및 상기 DVFS 제어부의 제어를 받아, DVFS 동작을 수행하기 위해 상기 CPU의 동작 주파수를 변경하는 CMU를 더 포함한다.
실시예에 따른 전자 시스템은 상기 SoC 및 상기 DVFS 동작을 수행하기 위해 상기 SoC의 동작 전압을 생성하여 상기 SoC로 출력하는 PMIC를 포함한다.
본 발명의 실시예에 따른 DVFS 제어 방법은 SoC의 적어도 하나의 구성요소에 대한 SoC 부하를 계산하는 단계, 상기 SoC 부하의 패턴을 분석한 결과 또는 외부 입력에 따라 시나리오를 판단하는 단계, 상기 시나리오에 따라 현재 사용되고 있는 DVFS 테이블을 교체할지 여부를 결정하는 단계 및 상기 DVFS 테이블을 참조하여 상기 SoC 부하 동작 주파수에 따른 DVFS 동작을 결정하는 단계를 포함한다.
실시예에 따라 현재 사용되고 있는 DVFS 테이블을 교체할 경우 복수의 DVFS 테이블 중에서 적어도 하나의 DVFS 테이블을 선택하여 상기 시나리오에 적합한 DVFS 테이블을 결정하는 단계를 더 포함한다.
실시예에 따라 상기 복수의 DVFS 테이블들은 CPU의 각각의 동작 주파수에 대응하는 상한 임계값을 포함하고, 상기 복수의 DVFS 테이블들 중 일부는 상기 각각의 동작 주파수와 상기 상한 임계값의 비율이 상기 동작 주파수에 따라 상이하다.
실시예에 따라 상기 복수의 DVFS 테이블들은 CPU의 각각의 동작 주파수에 대응하는 하한 임계값을 포함하고, 상기 복수의 DVFS 테이블들 중 일부는 상기 각각의 동작 주파수와 상기 하한 임계값의 비율이 상기 동작 주파수에 따라 상이하다.
실시예에 따라 상기 외부 입력은 어플리케이션 실행 정보와 CPU 제어 신호를 포함한다.
실시예에 따라 상기 DVFS 동작은 제1 정책과 제2 정책을 포함하고, 상기 제1 정책은 CPU의 동작 주파수와 상기 SoC의 동작 전압을 증가시키는 정책이고, 상기 제2 정책은 상기 CPU의 동작 주파수와 상기 SoC의 동작 전압을 감소시키는 정책이다.
본 발명의 실시예에 따른 DVFS 제어부에 의하면, 다양한 시나리오에 따라 DVFS 테이블을 선택적으로 적용함으로써 DVFS 제어를 효율적으로 할 수 있다.
또한, 본 발명의 실시예에 따른 DVFS 제어부에 의하면, DVFS 테이블 생성시 동작 주파수에 따라 OFSL ratio가 달라지도록 DVFS 테이블을 구성하여 동작 주파수에 따라 세밀하게 DVFS 제어를 할 수 있다.
도 1은 본 발명의 실시 예에 따른 전자 시스템의 블록도를 나타낸다.
도 2는 본 발명의 일 실시예에 따른 DVFS 제어부 및 다른 구성요소들 간의 관계를 도시한 블록도이다.
도 3a와 도 3b는 각각의 동작 주파수에 대하여 동작 주파수 대 SoC 부하 비율(OFSL ratio)이 일정한 DVFS 테이블의 일부를 나타낸 표이다.
도 4a와 도 4b는 각각의 동작 주파수에 대하여 동작 주파수 대 SoC 부하 비율이 상이한 DVFS 테이블의 일부를 나타낸 표이다.
도 5는 본 발명의 실시예에 따른 DVFS 제어부(200)의 DVFS 동작을 설명하기 위한 흐름도이다.
도 6은 도 5에 도시된 DVFS 동작을 제어하는 단계를 상세히 설명하기 위한 흐름도이다.
도 7은 본 발명의 다른 실시예에 따른 DVFS 제어부 및 다른 구성요소들 간의 관계를 도시한 블록도이다.
도 8a와 도 8b는 도 3a에 도시된 DVFS 테이블의 동작 주파수 대 SoC 부하 비율(OFSL ratio)을 변형한 DVFS 테이블의 일부를 나타낸 표이다.
도 9a와 도 9b는 도 3b에 도시된 DVFS 테이블의 동작 주파수 대 SoC 부하 비율(OFSL ratio)을 변형한 DVFS 테이블의 일부를 나타낸 표이다.
도 10은 본 발명의 다른 실시예에 따른 DVFS 제어부(200')의 DVFS 동작을 설명하기 위한 흐름도이다.
도 11은 도 10에 도시된 DVFS 동작을 제어하는 단계를 상세히 설명하기 위한 흐름도이다.
도 12는 본 발명의 실시예에 따른 SoC를 포함하는 전자 시스템의 다른 실시 예를 나타내는 블록도이다.
도 13은 본 발명의 실시예에 따른 SoC를 포함하는 전자 시스템의 또 다른 실시 예를 나타내는 블록도이다.
도 14는 본 발명의 실시예에 따른 SoC를 포함하는 전자 시스템의 또 다른 실시 예를 나타내는 블록도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 전자 시스템의 블록도를 나타낸다. 도 2는 본 발명의 일 실시예에 따른 DVFS 제어부 및 다른 구성요소들 간의 관계를 도시한 블록도이다. 도 3a와 도 3b는 각각의 동작 주파수(CPU_Freq)에 대하여 동작 주파수 대 SoC 부하 비율(OFSL ratio)이 일정한 DVFS 테이블의 일부를 나타낸 표이다. 도 4a와 도 4b는 각각의 동작 주파수(CPU_Freq)에 대하여 동작 주파수 대 SoC 부하 비율(OFSL ratio)이 상이한 DVFS 테이블의 일부를 나타낸 표이다.
도 1을 참조하면, 전자 시스템(10)은 이동 전화기, 스마트폰, 태블릿 컴퓨터(tablet computer), PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PDN(personal navigation device 또는 portable navigation device), 손으로 들고 다닐 수 있는 게임 콘솔(handheld game console), 또는 e-북(e-book)과 같이 손으로 들고 다닐 수 있는 장치(handheld device)로 구현될 수 있다.
전자 시스템(10)은 SoC(System on Chip, 100), 메모리 장치(190) 및 디스플레이 장치(195)를 포함한다. SoC(100)는 중앙처리장치(CPU : Central Processing Unit, 110), ROM(read only memory; 120), RAM(random access memory; 130), 타이머(135), 가속기(140), 클럭 관리부(145, CMU:clock management unit), 디스플레이 컨트롤러(150), 메모리 컨트롤러(170), 및 버스(180)를 포함할 수 있다. SoC(100)는 도시된 구성요소 외에도 다른 구성요소, 예컨대, TV 프로세서 등을 더 포함할 수 있다. 전자 시스템(10)은 또한 전원 관리부(160, PMIC:power management IC)를 더 포함할 수 있다.
도 1의 실시예에서는, PMIC(160)는 SoC(100) 외부에 구현되나, 다른 실시예에서는 PMIC(160)가 SoC(100) 내에 구현될 수 있다. PMIC(160)는 전압 제어부(161) 및 전압 발생부(165)를 포함할 수 있다.
프로세서(processor)라고도 불릴 수 있는 CPU(110)는 메모리 장치(190)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다. 예컨대, CPU(110)는 클락 신호 발생기(미 도시)로부터 출력된 클락 신호에 응답하여 상기 프로그램들 및/또는 상기 데이터를 처리 또는 실행할 수 있다.
CPU(110)는 멀티-코어 프로세서(multi-core processor)로 구현될 수 있다. 상기 멀티-코어 프로세서는 두 개 또는 그 이상의 독립적인 실질적인 프로세서들('코어들(cores)'이라고 불림)을 갖는 하나의 컴퓨팅 컴포넌트(computing component)이고, 상기 프로세서들 각각은 프로그램 명령들(program instructions)을 읽고 실행할 수 있다. 상기 멀티-코어 프로세서는 다수의 가속기를 동시에 구동할 수 있으므로, 상기 멀티-코어 프로세서를 포함하는 데이터 처리 시스템은 멀티-가속(multi-acceleration)을 수행할 수 있다.
CPU(110) 내부 또는 CPU(110)의 전단에 성능 측정부(PMU : Performance Monitoring Unit, 112)가 구비될 수 있다.
ROM(120), RAM(130), 및 메모리 장치(190)에 저장된 프로그램들 및/또는 데이터는 필요에 따라 CPU(110)의 메모리에 로드(load)될 수 있다.
ROM(120)은 영구적인 프로그램들 및/또는 데이터를 저장할 수 있다. ROM(120)은 EPROM(erasable programmable read-only memory) 또는 EEPROM(electrically erasable programmable read-only memory)으로 구현될 수 있다.
RAM(130)은 프로그램들, 데이터, 또는 명령들(instructions)을 일시적으로 저장할 수 있다. 예컨대, 메모리(120 또는 190)에 저장된 프로그램들 및/또는 데이터는 CPU(110)의 제어 또는 ROM(120)에 저장된 부팅 코드(booting code)에 따라 RAM(130)에 일시적으로 저장될 수 있다. RAM(130)은 DRAM(dynamic RAM) 또는 SRAM(static RAM)으로 구현될 수 있다.
가속기(140)는 멀티미디어 또는 멀티미디어 데이터, 예컨대 텍스트 (text), 오디오(audio), 정지 영상들(still images), 애니메이션(animation), 비디오(video), 2차원 데이터, 또는 3차원 데이터의 처리 성능을 향상시키기 위한 하드웨어 장치 또는 코-프로세서(co-processor)를 의미할 수 있다.
도 1에서는 설명의 편의를 위하여 하나의 가속기(140)만을 도시하나, 실시 예에 따라 SoC(100)은 하나 또는 그 이상의 가속기들을 포함할 수 있다. 예컨대, 적어도 하나의 애플리케이션 프로그램은 하나의 가속기를 실행시킬 수 있다.
가속기(140) 내부 또는 가속기(140)의 전단에 성능 측정부(PMU, 141)가 구비된다. 성능 측정부(141)는 가속기(141)의 성능을 측정하기 위한 모듈이다. 예컨대, 가속기(141)로 입력되는 데이터의 량 및/또는 가속기(141)로부터 출력되는 데이터의 량을 측정할 수 있고, 가속기(141)의 메모리 사용량을 측정할 수도 있다.
CMU(145)는 동작 클럭 신호를 생성한다. CMU(145)는 위상 동기 루프 회로(PLL : Phase Locked Loop), 지연 동기 루프(DLL : Delayed Locked Loop), 수정자(crystal)등의 클럭 생성 장치로 이루어질 수 있다.
동작 클럭 신호는 CPU(110)로 공급될 수 있다. 물론 동작 클럭 신호는 다른 구성요소(예컨대, 메모리 컨트롤러 등)로 공급될 수도 있다.
CMU(145)는 DVFS 제어부(도 2의 200)의 제어에 따라 동작 클럭 신호의 주파수를 변경할 수 있다. 예컨대, DVFS 제어부(200)는 소프트웨어적으로 또는 하드웨어적으로 수집된 SoC 정보에 따라 미리 설정된 복수(2이상)의 정책들 중 하나를 선택할 수 있다.
DVFS 제어부(200)는 선택된 정책에 따라 CMU(145)를 제어할 수 있고, 이에 따라, CMU(145)는 DVFS 제어부(200)의 제어를 받아, 선택된 정책(예컨대, 제1 정책 또는 제2 정책)을 수행하기 위하여 동작 클럭 신호의 주파수를 변경할 수 있다.
제1 정책은, 중앙처리장치(110)를 포함하는 SoC(100)의 동작 주파수와 동작 전압을 높여, 처리 능력에 더 중점을 두는 정책일 수 있다. 반면에 제2 정책은, 동작 주파수와 동작 전압을 낮춰, 전력소모를 낮추는 데에 더 중점을 두는 정책일 수 있다.
보조 장치의 동작이나 종류에 따라, 어떠한 동작은 전력 소모가 많이 되더라도 중앙처리장치(110)의 처리 능력이 더 중요할 수 있고, 중앙처리장치(110)의 처리 능력보다는 저전력 시스템을 구현하는 것이 더 중요할 수 있다.
따라서, DVFS 제어부(200)는 제1 정책과 제2 정책을 일정 주기별로 적합하게 선택하여 수행함으로써, 성능을 향상시키며, 전력소모를 줄일 수 있다.
전압 제어부(161)는 DVFS 제어부(200)에서 선택된 제1 정책 또는 제2 정책에 기초하여 전압 발생부(165)를 제어할 수 있다. 전압 발생부(165)는 전압 제어부(161)의 제어에 따라, 선택된 제1 정책 또는 제2 정책에 기초하여 SoC(100)의 동작 전압을 생성하여 SoC(100)로 출력할 수 있다.
메모리 콘트롤러(170)는 메모리 장치(190)와 인터페이스하기 위한 블록이다. 메모리 콘트롤러(170)는 메모리 장치(190)의 동작을 전반적으로 제어하며, 또한 호스트와 메모리 장치(190)간의 제반 데이터 교환을 제어한다. 예컨대, 메모리 콘트롤러(170)는 호스트의 요청에 따라 메모리 콘트롤러(170)를 제어하여 메모리 장치(190)에 데이터를 쓰거나 메모리 장치(190)로부터 데이터를 독출한다.
여기서, 호스트는 CPU(110), 가속기(140), 디스플레이 컨트롤러(150)와 같은 마스터 장치일 수 있다.
메모리 장치(190)는 데이터를 저장하기 위한 저장 장소로서, OS(Operating System), 각종 프로그램들, 및 각종 데이터를 저장할 수 있다. 메모리 장치(195)는 DRAM 일수 있으나, 이에 한정되는 것은 아니다. 예컨대, 메모리 장치(195)는 비휘발성 메모리 장치(플래시 메모리, PRAM, MRAM, ReRAM, 또는 FeRAM 장치)일 수도 있다. 본 발명의 다른 실시예에서는 메모리 장치(190)는 SoC(100) 내부에 구비되는 내장 메모리일 수 있다.
각 구성 요소(110, 120, 130, 140, 150, 및 170)는 시스템 버스(180)를 통하여 서로 통신할 수 있다.
디스플레이 디바이스(195)는 CPU(110)에 로드된 소프트웨어 가속기 또는 하드웨어 가속기(140)에 의하여 가속된 또는 처리된 멀티미디어를 디스플레이할 수 있다. 디스플레이 디바이스(195)는 LED, OLED 디바이스, 혹은 다른 종류의 디바이스일 수 있다.
디스플레이 콘트롤러(150)는 디스플레이 디바이스(195)의 동작을 제어한다.
메모리 콘트롤러(170)는 성능 측정부(PMU, 175)를 포함할 수 있다.
성능 측정부(112, 141, 175)는 메모리 장치(190)로의 억세스량을 측정할 수 있다. 즉, 성능 측정부(112, 141, 175)는 메모리 장치(190)로 억세스하는 CPU(110), 가속기(140) 및 보조장치의 메모리 사용량을 측정할 수 있다.
성능 측정부(112, 141, 175)에서 측정된 메모리 사용량은 DVFS 제어부(200)로 전달되며, 이에 기초하여 DVFS 제어부(200)는 성능에 우선가치를 둔 제1 정책과 저전력 구현에 우선 가치를 둔 제2 정책을 수행하도록 PMIC(160)를 제어할 수 있다.
도 1에 도시된 바와 같이, 성능 측정부(112, 141, 175)는 복수개 구비될 수 있다. 예컨대, 메모리 장치(190)를 억세스하는 장치들(110, 140, 150, 170 등) 각각의 내부 혹은 전단에 구비될 수 있다. 성능 측정부(112, 141, 175)가 복수개 구비되는 경우, DVFS 제어부(200)는 하나 이상의 성능 측정부(112, 141, 175)의 측정 결과에 기초하여 복수의 정책들 중 하나를 결정할 수 있다. 즉, DVFS 제어부(200)는 복수개의 성능 측정부(112, 141, 175)의 측정 결과 및/또는 소프트웨어적으로 수집된 SoC 정보를 토대로 정책을 결정할 수 있고, 복수개의 성능 측정부(112, 141, 175) 중 하나 이상을 선택적으로 구동하여 선택된 성능 측정부(112, 141, 175)의 측정 결과를 토대로 정책을 결정할 수도 있다.
또한, 성능 측정부(112, 141, 175)가 복수 개 구비되는 경우, 각 성능 측정부별로 메모리 사용량의 측정이 가능하다. 즉, 각 성능 측정부별로 상응하는 장치의 메모리 사용량을 측정할 수 있다. 메모리 사용량은 메모리 장치(190)로 입력되는 데이터량, 메모리 장치(190)로부터 출력되는 데이터량, 메모리 장치(190)에 대한 억세스 이벤트의 횟수 중 적어도 하나일 수 있으나, 이에 한정되는 것은 아니다.
메모리 장치(190)에 대한 억세스 이벤트는 메모리 장치(190)의 데이터를 출력하기 위한 리드 명령의 발생(즉 읽기 이벤트) 및 메모리 장치(190)로 데이터를 입력하기 위한 쓰기 명령의 발생(즉 쓰기 이벤트)를 포함할 수 있다. 예컨대, 소정 시간 동안 메모리 장치(190)에 대한 읽기 이벤트 및 쓰기 이벤트의 횟수를 카운트하여 메모리 사용량을 측정할 수도 있다.
도 1 및 도 2를 참조하면, DVFS 제어부(200)는 소프트웨어(S/W) 또는 펌웨어(firmware)로 구현될 수 있다. DVFS 제어부(200)는 프로그램으로 구현되어 메모리(130, 120 또는 190)에 탑재되고, SoC(100)가 파워온되면 CPU(110)에 의하여 실행될 수 있다.
DVFS 제어부(200)는 메모리(130, 120, 190), 타이머(135), 복수의 PMU(112, 141, 175), CMU(145), 및 PMIC(160)를 제어할 수 있다. 메모리(130, 120, 190), 타이머(135), 복수의 PMU(112, 141, 175), CMU(145), 및 PMIC(160)는 각각 하드웨어(H/W)로 구현될 수 있다.
DVFS 제어부(200)와 메모리(130, 120, 190), 타이머(135), 복수의 PMU(112, 141, 175), CMU(145), 및 PMIC(160) 사이에는 운영체제(OS:operating system) 및 미들웨어(middleware)가 개입될 수 있다.
DVFS 제어부(200)는 SoC 정보 수집부(210), SoC 부하 계산부(220), DVFS 테이블 선택부(230), DVFS 테이블 저장부(240), DVFS 계산부(250), 및 DVFS 3(260)를 포함할 수 있다.
SoC 정보 수집부(210)는 SoC 정보를 수집한다. 상기 SoC 정보는 SoC(100)의 상기 복수의 PMU로부터 하나 이상의 성능 측정부(112, 141, 175)의 측정 결과, 상기 CMU(145)로부터 현재의 동작 주파수(Freq), 및 소프트웨어적으로 SoC(100)의 동작 정보를 포함할 수 있다. 상기 SoC 정보 수집부(210)는 상기 수집된 SoC 정보를 SoC 부하 계산부(220) 및 DVFS 테이블 선택부(230)로 전송할 수 있다.
SoC 부하 계산부(220)는 상기 SoC 정보로부터 SoC(100) 내부의 각 구성요소들의 SoC 부하를 계산하여 DVFS 계산부(250) 및 DVFS 테이블 선택부(230)로 전송할 수 있다. 예컨대, SoC 부하 계산부(220)는 상기 SoC 정보 중 CPU(110)에 포함된 성능 측정부(112, 141, 175)의 측정 결과를 이용하여 CPU(110)의 부하를 계산할 수 있다. 즉, CPU(110)의 부하(loadCPU)는 다음의 수학식 1에 의해 계산될 수 있다.
Figure pat00001
상기 CPU(110)의 부하(loadCPU)는 단위 시간(Walltime)에 대한 동작 시간(Walltime-Idletime)의 비에 현재의 동작 주파수(Freqcur)를 곱한 값으로 계산될 수 있다. 예를 들어, 현재의 동작 주파수(Freqcur)가 1(MHz), 단위 시간(Walltime)이 0.1(msec), 유휴 시간(Idletime)이 0.01(msec)라고 가정하면, 상기 수학식 1에 의해 CPU(110)의 부하(loadCPU)는 9000000으로 계산될 수 있다. 상기 수학식 1은 SoC 부하를 계산하는 하나의 예에 불과하며, 얼마든지 다른 방식으로 SoC 부하를 계산할 수 있다.
DVFS 테이블 저장부(240)는 DVFS 제어부(200)가 미리 설정된 복수(2이상)의 정책들 중 하나를 선택하는 기준이 되는 복수의 DVFS 테이블들을 저장할 수 있다. 상기 DVFS 테이블 저장부(240)는 메모리(130, 120 또는 190)를 이용해 복수의 DVFS 테이블들을 저장하고, DVFS 테이블 선택부(230)의 요청에 따라 상기 복수의 DVFS 테이블들을 제공할 수 있다. 상기 복수의 DVFS 테이블들은 각각의 동작 주파수(CPU_Freq)에 대응하는 SoC 부하의 상한 임계값(up-threshold), 하한 임계값(down-threshold) 및 SoC(100)의 동작 전압을 포함할 수 있다.
상기 상한 임계값(up-threshold)은 제1 정책을 수행하기 위한 임계값에 해당할 수 있으며, 상기 SoC 부하가 상기 상한 임계값(up-threshold)을 초과할 경우 상기 DVFS 제어부(200)는 SoC(100) 및 PMIC(160)가 제1 정책을 수행하도록 제어할 수 있다. 상기 하한 임계값(down-threshold)은 제2 정책을 수행하기 위한 임계값에 해당할 수 있으며, 상기 SoC 부하가 상기 하한 임계값(down-threshold) 미만일 경우 상기 DVFS 제어부(200)는 SoC(100) 및 PMIC(160)가 제2 정책을 수행하도록 제어할 수 있다.
상기 DVFS 테이블 저장부(240)는 각각의 동작 주파수(CPU_Freq)에 대하여 일정한 동작 주파수 대 SoC 부하 비율(OFSL ratio)로 상한 임계값(up-threshold) 및 하한 임계값(down-threshold)이 계산된 복수의 DVFS 테이블들을 저장할 수 있다. 이와 달리 상기 DVFS 테이블 저장부(240)는 각각의 동작 주파수(CPU_Freq)에 대하여 서로 다른 동작 주파수 대 SoC 부하 비율(OFSL ratio)로 상한 임계값(up-threshold) 및 하한 임계값(down-threshold)이 계산된 복수의 DVFS 테이블들을 저장할 수 있다. 구체적인 DVFS 테이블의 생성 방법은 도 3a 내지 4b를 참조하여 후술하기로 한다.
도 3a는 각각의 동작 주파수(CPU_Freq)에 대응하는 상한 임계값(up-threshold)과 동작 주파수 대 SoC 부하 비율(OFSL ratio)을 포함하는 하나의 DVFS 테이블을 나타낸다. 도 3b는 각각의 동작 주파수(CPU_Freq)에 대응하는 하한 임계값(down-threshold)과 동작 주파수 대 SoC 부하 비율(OFSL ratio)을 포함하는 다른 하나의 DVFS 테이블을 나타낸다. DVFS 테이블 저장부(240)는 도 3a와 도 3b와 같이 각각의 동작 주파수(CPU_Freq)에 대한 동작 주파수 대 SoC 부하 비율(OFSL ratio)이 일정한 DVFS 테이블을 저장할 수 있다. 도 3a와 도 3b에서는 각각 동작 주파수 대 SoC 부하 비율(OFSL ratio)이 90과 80인 경우를 나타내나, 본 발명은 이에 한정되지 않고 임의의 동작 주파수 대 SoC 부하 비율(OFSL ratio)로 DVFS 테이블이 생성될 수 있다.
도 4a는 각각의 동작 주파수(CPU_Freq)에 대응하는 상한 임계값(up-threshold)과 동작 주파수 대 SoC 부하 비율(OFSL ratio)을 포함하는 하나의 DVFS 테이블을 나타낸다. 도 4b는 각각의 동작 주파수(CPU_Freq)에 대응하는 하한 임계값(down-threshold)과 동작 주파수 대 SoC 부하 비율(OFSL ratio)을 포함하는 다른 하나의 DVFS 테이블을 나타낸다. DVFS 테이블 저장부(240)는 도 4a와 도 4b와 같이각각의 동작 주파수(CPU_Freq)에 대한 동작 주파수 대 SoC 부하 비율(OFSL ratio)이 동작 주파수에 따라 달라지는 DVFS 테이블을 저장할 수 있다.
예컨대, 도 4a와 도 4b에 도시된 DVFS 테이블은 다음의 수학식 2과 수학식 3에 따라 결정된 상한 임계값(up-threshold)과 하한 임계값(down-threshold)을 포함할 수 있다.
Figure pat00002
Figure pat00003
현재의 동작 주파수(Freqcur)는 DVFS 테이블에서의 각각의 동작 주파수(CPU_Freq)를 의미한다. 차이 주파수(Freqdiff)는 각각의 동작 주파수(CPU_Freq)에서 한 단계 낮은 동작 주파수와의 차이(도 4a와 도 4b에서는 100000 Hz)를 의미한다. 도 4a에서는 제1 튜닝 포인트(α)가 0.01이며, 도 4b에서는 제2 튜닝 포인트(β)가 0.1이다. 도 4a와 도 4b와 같이 각각의 동작 주파수(CPU_Freq)에 대한 동작 주파수 대 SoC 부하 비율(OFSL ratio)이 동작 주파수에 따라 달라지도록 DVFS 테이블을 구성하면, 동작 주파수에 따라 소모 전류와 성능을 중시하는 비율을 달리 정할 수 있다. 따라서, DVFS 제어부(200)는 동작 주파수에 따라 세밀하게 DVFS 제어를 할 수 있다.
예를 들어, 도 4a에서 동작 주파수가 1300000(Hz)인 경우(OFSL ratio는 91.31)는 동작 주파수가 800000(Hz)인 경우(OFSL ratio는 86.50)보다 상한 임계값(up-threshold)의 OFSL ratio가 높으므로, 성능보다는 소모 전류의 절감이 중시될 수 있다. 반대로 동작 주파수가 800000(Hz)인 경우는 동작 주파수가 1300000(Hz)인 경우보다 OFSL ratio가 낮으므로, 소모 전류의 절감보다는 성능이 중시될 수 있다.
마찬가지로 도 4b에서도 동작 주파수가 높아질수록 하한 임계값(down-threshold)의 OFSL ratio가 높아지므로 성능보다는 소모 전류의 절감이 중시될 수 있다. 그와 반대로 동작 주파수가 낮아질수록 하한 임계값(down-threshold)의 OFSL ratio가 낮아지므로 소모 전류의 절감보다는 성능이 중시될 수 있다.
실시예에 따라 동작 주파수에 따라 OFSL ratio가 달라지는 DVFS 테이블을 생성함에 있어서, 수학식 2와 3 및 제1 튜닝 포인트(α)와 제2 튜닝 포인트(β)의 값은 예시적인 것에 불과하며 다른 식과 값으로 변형이 가능하다.
DVFS 테이블 선택부(230)는 상기 SoC 부하의 패턴을 분석한 결과 또는 외부 입력에 따라 시나리오를 판단하고, 상기 시나리오에 적합한 DVFS 테이블을 결정할 수 있다. 상기 DVFS 테이블 선택부(230)는 상기 결정된 DVFS 테이블을 상기 DVFS 테이블 저장부(240)로부터 제공받아 DVFS 계산부(250)로 전송할 수 있다.
상기 DVFS 테이블 선택부(230)는 타이머(135)를 이용하여 일정 시간 동안 SoC 부하를 수신하고 상기 SoC 부하의 변화량을 계산하여 산출되는 SoC 부하 패턴을 분석한 결과에 따라 시나리오를 판단할 수 있다. 상기 시나리오는 SoC 부하 패턴에 따라 다양하게 설정될 수 있다. 예를 들어, SoC 부하 패턴이 상기 SoC 부하의 변화가 큰 경우 제1 시나리오, SoC 부하 패턴이 상기 SoC 부하의 변화가 작은 경우 제2 시나리오, SoC 부하 패턴이 상기 SoC 부하의 변화가 크고 작은 시간이 반복되는 경우 제3 시나리오 등과 같이 SoC 부하 패턴에 따라 상기 DVFS 테이블 선택부(230)는 다수의 시나리오로 분석할 수 있다.
예컨대, 상기 SoC 부하의 변화가 큰 제1 시나리오의 경우 성능과 반응성이 상대적으로 중요시될 수 있다. 따라서, 제1 시나리오의 경우 상기 DVFS 테이블 선택부(230)는 현재 사용되고 있는 DVFS 테이블보다 상한 임계값(up-threshold)과 하한 임계값(down-threshold)에 대한 동작 주파수 대 SoC 부하 비율(OFSL ratio)이 낮은 DVFS 테이블로 교체할 수 있다.
또는, 상기 SoC 부하의 변화가 작은 제2 시나리오의 경우 성능과 반응성보다는 소모 전류의 절감이 상대적으로 중요시될 수 있다. 따라서, 제2 시나리오의 경우 상기 DVFS 테이블 선택부(230)는 현재 사용되고 있는 DVFS 테이블보다 상한 임계값(up-threshold)과 하한 임계값(down-threshold)에 대한 동작 주파수 대 SoC 부하 비율(OFSL ratio)이 높은 DVFS 테이블로 교체할 수 있다.
또한, 상기 DVFS 테이블 선택부(230)는 외부 입력 즉, 어플리케이션(application) 실행 정보 또는 CPU 제어 신호에 따라 시나리오를 판단할 수 있다.
상기 어플리케이션 실행 정보(270)는 특정 어플리케이션(예컨대, 메모장 프로그램, 게임 프로그램 등)이 실행 시에 발생하는 이벤트 신호일 수 있다. 또한, CPU 제어 신호는 CPU(110)가 SoC 부하의 변화가 클지 작을지에 대해 판단한 결과일 수 있다.
예컨대, 상기 DVFS 테이블 선택부(230)는, 게임 프로그램이 실행되었다는 어플리케이션 실행 정보(270)를 수신하거나 SoC 부하의 변화가 클 것이라는 CPU 제어 신호를 수신한 경우, SoC 부하의 변화가 큰 제1 시나리오로 판단하고 현재 사용되고 있는 DVFS 테이블보다 상한 임계값(up-threshold)과 하한 임계값(down-threshold)에 대한 동작 주파수 대 SoC 부하 비율(OFSL ratio)이 낮은 DVFS 테이블로 교체할 수 있다.
예컨대, 상기 DVFS 테이블 선택부(230)는, 메모장 프로그램이 실행되었다는 어플리케이션 실행 정보(270)를 수신하거나 SoC 부하의 변화가 작을 것이라는 CPU 제어 신호를 수신한 경우, SoC 부하의 변화가 작은 제2 시나리오로 판단하고 현재 사용되고 있는 DVFS 테이블보다 상한 임계값(up-threshold)과 하한 임계값(down-threshold)에 대한 동작 주파수 대 SoC 부하 비율(OFSL ratio)이 높은 DVFS 테이블로 교체할 수 있다.
실시예에 따라 DVFS 테이블 선택부(230)는 필요에 따라(예컨대, 동작 주파수에 따라 세밀한 DVFS 제어가 필요한 경우) 현재 사용되고 있는 DVFS 테이블(동작 주파수에 따른 OFSL ratio가 일정)을 동작 주파수에 따른 OFSL ratio가 달라지는 DVFS 테이블로 교체할 수 있다. 반대로, DVFS 테이블 선택부(230)는 필요에 따라(예컨대, 동작 주파수에 따라 세밀한 DVFS 제어가 불필요한 경우) 현재 사용되고 있는 DVFS 테이블(동작 주파수에 따른 OFSL ratio가 일정)을 동작 주파수에 따른 OFSL ratio가 달라지는 DVFS 테이블로 교체할 수 있다.
즉, DVFS 테이블 선택부(230)는 상기 시나리오에 따른 판단에 의해 상기 DVFS 테이블 저장부(240)가 제공하는 복수의 DVFS 테이블 중에서 적어도 하나의 DVFS 테이블을 선택하여 DVFS 계산부(250)로 전송할 수 있다.
DVFS 계산부(250)는 DVFS 테이블 선택부(230)로부터 수신된 DVFS 테이블을 참조하여 SoC 부하 계산부(220)로부터 수신된 SoC 부하와 현재의 동작 주파수에 대한 DVFS 동작을 결정할 수 있다. 즉, DVFS 계산부(250)는 현재의 동작 주파수에 대한 상한 임계값(up-threshold)과 하한 임계값(down-threshold)을 SoC 부하와 비교하여 상기 비교 결과에 따라 DVFS 동작을 결정할 수 있다. DVFS 계산부(250)는 상기 DVFS 동작을 결정하여 그에 따른 정책 정보(예컨대, 제1 정책 또는 제2 정책)를 DVFS 동작 제어부(260)로 전송할 수 있다.
예컨대, DVFS 테이블 선택부(230)로부터 수신된 DVFS 테이블이 도 3a와 도 3b이고, 현재의 동작 주파수는 1100000(Hz)라고 가정한다. 이 경우 DVFS 테이블에서 상한 임계값(up-threshold)과 하한 임계값(down-threshold)은 각각 99000000과 88000000으로 결정된다. 따라서, SoC 부하 계산부(220)로부터 수신된 SoC 부하가 99500000인 경우 DVFS 계산부(250)는 현재의 동작 주파수와 동작 전압을 높이는 제1 정책에 해당하는 정책 정보를 DVFS 동작 제어부(260)에 전달할 수 있다. 반대로 SoC 부하 계산부(220)로부터 수신된 SoC 부하가 87500000인 경우 DVFS 계산부(250)는 현재의 동작 주파수와 동작 전압을 낮추는 제2 정책에 해당하는 정보를 DVFS 동작 제어부(260)에 전달할 수 있다. 또한, SoC 부하 계산부(220)로부터 수신된 SoC 부하가 90000000인 경우 현재의 동작 주파수와 동작 전압을 유지하도록 하는 정책 정보를 DVFS 동작 제어부(260)에 전달할 수 있다.
예컨대, DVFS 테이블 선택부(230)로부터 수신된 DVFS 테이블이 도 4a와 도 4b이고, 현재의 동작 주파수는 1100000(Hz)라고 가정한다. 이 경우 DVFS 테이블에서 상한 임계값(up-threshold)과 하한 임계값(down-threshold)은 각각 98900000과 89000000으로 결정된다. 따라서, SoC 부하 계산부(220)로부터 수신된 SoC 부하가 98950000인 경우 DVFS 계산부(250)는 현재의 동작 주파수와 동작 전압을 높이는 제1 정책에 해당하는 정책 정보를 DVFS 동작 제어부(260)에 전달할 수 있다. 반대로 SoC 부하 계산부(220)로부터 수신된 SoC 부하가 88500000인 경우 DVFS 계산부(250)는 현재의 동작 주파수와 동작 전압을 낮추는 제2 정책에 해당하는 정보를 DVFS 동작 제어부(260)에 전달할 수 있다. 또한, SoC 부하 계산부(220)로부터 수신된 SoC 부하가 90000000인 경우 현재의 동작 주파수와 동작 전압을 유지하도록 하는 정책 정보를 DVFS 동작 제어부(260)에 전달할 수 있다.
여기서, SoC 부하가 98950000인 경우 DVFS 테이블이 도 3a와 도 3b일 때는 현재의 동작 주파수와 동작 전압을 유지하는 경우에 해당하나 DVFS 테이블이 도 4a와 도 4b일 때는 제1 정책에 해당할 수 있다. 마찬가지로 SoC 부하가 88500000인 경우 DVFS 테이블이 도 3a와 도 3b일 때는 현재의 동작 주파수와 동작 전압을 유지하는 경에 해당하나 DVFS 테이블이 도 4a와 도 4b일 때는 제2 정책에 해당할 수 있다. 이와 같이 필요에 따라 동작 주파수에 따라 보다 세밀한 DVFS 제어가 필요한 경우 DVFS 테이블 선택부(230)는 도 4a와 도 4b와 같은 동작 주파수에 따라 OFSL ratio가 달라지는 DVFS 테이블로 교체하여 DVFS 계산부(250)에 제공할 수 있다.
DVFS 동작 제어부(260)는 DVFS 계산부(250)로부터 DVFS 동작(현재의 동작 주파수와 동작 전압을 변경 또는 유지할지 여부)에 대한 정책 정보를 수신하여 SoC(100)의 CMU(145) 및 PMIC(160)를 제어할 수 있다. 예컨대, DVFS 동작 제어부(260)가 제1 정책 또는 제2 정책을 수신한 경우 SoC(100)의 CMU(145) 및 PMIC(160)를 제어하여 동작 주파수 및 동작 전압을 높이거나 낮출 수 있다. 또한, DVFS 동작 제어부(260)가 제1 정책 또는 제2 정책을 수신한 경우 SoC(100)의 CMU(145) 및 PMIC(160)를 제어하여 동작 주파수 및 동작 전압을 유지하도록 할 수 있다.
본 발명의 실시예에 따른 DVFS 제어부(200)에 의하면, 다양한 시나리오에 따라 DVFS 테이블을 선택적으로 적용함으로써 DVFS 제어를 효율적으로 할 수 있다.
또한, 본 발명의 실시예에 따른 DVFS 제어부(200)에 의하면, DVFS 테이블 생성시 동작 주파수에 따라 OFSL ratio가 달라지도록 DVFS 테이블을 구성하여 동작 주파수에 따라 세밀하게 DVFS 제어를 할 수 있다.
도 5는 본 발명의 실시예에 따른 DVFS 제어부(200)의 DVFS 동작을 설명하기 위한 흐름도이다. 도 6은 도 5에 도시된 DVFS 동작을 제어하는 단계를 상세히 설명하기 위한 흐름도이다.
도 1 내지 도 5를 참조하면, SoC 정보 수집부(210)는 SoC 정보를 수집하여 SoC 부하 계산부(220) 및 DVFS 테이블 선택부로 전송할 수 있다(S510).
SoC 부하 계산부(220)는 상기 SoC 정보로부터 SoC(100) 내부의 각 구성요소들의 SoC 부하를 계산하여 DVFS 계산부(250) 및 DVFS 테이블 선택부(230)로 전송할 수 있다(S520).
DVFS 테이블 선택부(230)는 시나리오를 분석한 결과 또는 외부 입력에 따라 상기 시나리오를 판단하고, 상기 시나리오에 적합한 DVFS 테이블을 결정할 수 있다.
상기 DVFS 테이블 선택부(230)는 현재 사용되고 있는 DVFS 테이블이 상기 판단된 시나리오에 적합하지 않아 DVFS 테이블을 교체할 필요가 있는 경우(S530의 Yes branch), 현재 사용되고 있는 DVFS 테이블보다 상한 임계값(up-threshold)과 하한 임계값(down-threshold)에 대한 동작 주파수 대 SoC 부하 비율(OFSL ratio)이 낮거나 높은 DVFS 테이블로 교체할 수 있다. 또는 현재 사용되고 있는 DVFS 테이블이 동작 주파수에 따른 OFSL ratio가 일정한 경우 상기 DVFS 테이블 선택부(230)는 필요에 따라 동작 주파수에 따라 OFSL ratio가 달라지는 DVFS 테이블로 교체할 수 있다. 반대로, 현재 사용되고 있는 DVFS 테이블이 동작 주파수에 따른 OFSL ratio가 달라지는 경우 상기 DVFS 테이블 선택부(230)는 필요에 따라 동작 주파수에 따라 OFSL ratio가 일정한 DVFS 테이블로 교체할 수 있다(S540).
상기 DVFS 테이블 선택부(230)는 상기 교체된 DVFS 테이블을 DVFS 계산부(250)로 전송할 수 있다.
상기 DVFS 테이블 선택부(230)는 현재 사용되고 있는 DVFS 테이블이 상기 판단된 시나리오에 적합하여 DVFS 테이블을 교체할 필요가 없는 경우(S530의 No branch), 현재 사용되고 있는 DVFS 테이블을 DVFS 계산부(250)로 전송할 수 있다.
상기 DVFS 계산부(250)는 상기 DVFS 테이블 선택부(230)로부터 수신된 DVFS 테이블을 참조하여 SoC 부하 계산부(220)로부터 수신된 SoC 부하와 현재의 동작 주파수에 대한 DVFS 동작을 결정할 수 있다(S550).
도 6을 참조하면, 상기 DVFS 계산부(250)는 상기 DVFS 테이블을 참조하여 현재의 동작 주파수에서 SoC 부하가 상한 임계값(up-threshold)보다 높은지에 대해 판단할 수 있다(S562).
만약 SoC 부하가 상한 임계값(up-threshold)보다 높은 경우(S562의 Yes branch) 상기 DVFS 계산부(250)는 제1 정책에 해당하는 정책 정보를 DVFS 동작 제어부(260)에 전달할 수 있다. DVFS 동작 제어부(260)는 상기 정책 정보를 수신하여 SoC(100)의 CMU(145) 및 PMIC(160)를 제어하여 동작 주파수 및 동작 전압을 높이도록 할 수 있다(S564).
상기 SoC 부하가 상한 임계값(up-threshold)보다 낮은 경우(S562의 No branch), 상기 DVFS 계산부(250)는 상기 DVFS 테이블을 참조하여 현재의 동작 주파수에서 SoC 부하가 하한 임계값(down-threshold)보다 낮은지에 대해 판단할 수 있다(S566).
만약 SoC 부하가 하한 임계값(down-threshold)보다 낮은 경우(S566의 Yes branch), 상기 DVFS 계산부(250)는 제2 정책에 해당하는 정책 정보를 DVFS 동작 제어부(260)에 전달할 수 있다. DVFS 동작 제어부(260)는 상기 정책 정보를 수신하여 SoC(100)의 CMU(145) 및 PMIC(160)를 제어하여 동작 주파수 및 동작 전압을 낮추도록 할 수 있다(S568).
SoC 부하가 하한 임계값(down-threshold)보다 높은 경우(S566의 No branch), 상기 DVFS 계산부(250)는 현재의 동작 주파수와 동작 전압을 유지하도록 하는 정책 정보를 DVFS 동작 제어부(260)에 전달할 수 있다. DVFS 동작 제어부(260)는 상기 정책 정보를 수신하여 SoC(100)의 CMU(145) 및 PMIC(160)를 제어하여 동작 주파수 및 동작 전압을 유지하도록 할 수 있다.
도 7은 본 발명의 다른 실시예에 따른 DVFS 제어부 및 다른 구성요소들 간의 관계를 도시한 블록도이다. 도 8a와 도 8b는 도 3a에 도시된 DVFS 테이블의 동작 주파수 대 SoC 부하 비율(OFSL ratio)을 변형한 DVFS 테이블의 일부를 나타낸 표이다. 도 9a와 도 9b는 도 3b에 도시된 DVFS 테이블의 동작 주파수 대 SoC 부하 비율(OFSL ratio)을 변형한 DVFS 테이블의 일부를 나타낸 표이다.
도 1 내지 도 4b 및 도 7을 참조하면, 본 발명의 다른 실시예에 따른 DVFS 제어부(200')는 도 2에 도시된 DVFS 제어부(200)와 유사한바 차이점을 위주로 설명하기로 한다.
DVFS 제어부(200')에 포함된 DVFS 테이블 업데이트 결정부(280)는 SoC 부하의 패턴을 분석한 결과 또는 외부 입력에 따라 시나리오를 판단하고, 상기 시나리오에 적합한 DVFS 테이블을 결정할 수 있다. 상기 DVFS 테이블 업데이트 결정부(280)는 상기 결정된 DVFS 테이블을 DVFS 테이블 저장부(240)로부터 제공받아 DVFS 계산부(250)로 전송할 수 있다.
또한, 상기 DVFS 테이블 업데이트 결정부(280)는 현재 사용되고 있는 DVFS 테이블의 동작 주파수 대 SoC 부하 비율(OFSL ratio), 제1 튜닝 포인트 또는 제2 튜닝 포인트를 조절하여 새로운 DVFS 테이블을 생성할 수 있다.
즉, 상기 DVFS 테이블 업데이트 결정부(280)는 타이머(135)를 이용하여 일정 시간 동안 SoC 부하를 수신하고 상기 SoC 부하의 변화량을 계산하여 산출되는 SoC 부하 패턴을 분석한 결과에 따라 시나리오를 판단할 수 있다.
또한, 상기 DVFS 테이블 업데이트 결정부(280)는 외부 입력 즉, 어플리케이션 실행 정보 또는 CPU 제어 신호에 따라 시나리오를 판단할 수 있다.
상기 시나리오는 도 2에서 설명한 바와 같이 제1 시나리오 내지 제3 시나리오 등 다수의 시나리오로 분석될 수 있다.
예컨대, 현재 사용되고 있는 DVFS 테이블이 도 3a와 도 3b에 도시된 DVFS 테이블이라고 가정한다.
상기 DVFS 테이블 업데이트 결정부(280)가 제1 시나리오라고 판단한 경우, 상기 DVFS 테이블 업데이트 결정부(280)는 상한 임계값(up-threshold)과 하한 임계값(down-threshold)에 대한 동작 주파수 대 SoC 부하 비율(OFSL ratio)이 낮은 DVFS 테이블을 DVFS 테이블 저장부(240)로부터 수신하여 교체할 수 있다. 또한, 상기 DVFS 테이블 업데이트 결정부(280)는 원하는 OFSL ratio가 88(상한 임계값에 대한 DVFS 테이블)과 78(하한 임계값에 대한 DVFS 테이블)인 경우, 현재 사용되고 있는 DVFS 테이블의 OFSL ratio를 변경하여 적용함으로써 도 8b와 도 9b의 DVFS 테이블을 생성할 수 있다.
상기 DVFS 테이블 업데이트 결정부(280)가 제2 시나리오라고 판단한 경우, 상기 DVFS 테이블 업데이트 결정부(280)는 상한 임계값(up-threshold)과 하한 임계값(down-threshold)에 대한 동작 주파수 대 SoC 부하 비율(OFSL ratio)이 높은 DVFS 테이블을 DVFS 테이블 저장부(240)로부터 수신하여 교체할 수 있다. 또한, 상기 DVFS 테이블 업데이트 결정부(280)는 원하는 OFSL ratio가 92(상한 임계값에 대한 DVFS 테이블)과 82(하한 임계값에 대한 DVFS 테이블)인 경우, 현재 사용되고 있는 DVFS 테이블의 OFSL ratio를 변경하여 적용함으로써 도 8a와 도 9a의 DVFS 테이블을 생성할 수 있다.
도 8a 내지 도 9b에 도시된 DVFS 테이블을 예로 들어 설명하였으나, 본 발명은 이에 한정되지 않고 다양한 OFSL ratio를 가진 DVFS 테이블에 적용될 수 있다.
실시예에 따라 상기 DVFS 테이블 업데이트 결정부(280)는 예컨대, 수학식 2와 수학식 3을 이용하여 OFSL ratio가 동작 주파수에 따라 달라지는 DVFS 테이블을 생성할 수 있고, 제1 튜닝 포인트 또는 제2 튜닝 포인트를 조절하여 다양한 DVFS 테이블을 생성할 수 있다. 반대로, 현재 사용되고 있는 DVFS 테이블이 OFSL ratio가 동작 주파수에 따라 달라지는 DVFS 테이블인 경우, 상기 DVFS 테이블 업데이트 결정부(280)는 OFSL ratio가 동작 주파수에 따라 일정한 DVFS 테이블로 생성할 수 있다.
즉, DVFS 테이블 업데이트 결정부(280)는 상기 시나리오에 따른 판단에 의해 상기 DVFS 테이블 저장부(240)가 제공하는 복수의 DVFS 테이블 중에서 적어도 하나의 DVFS 테이블을 선택하거나 OFSL ratio, 제1 튜닝 포인트 또는 제2 튜닝 포인트를 조절하여, 새로운 DVFS 테이블을 생성하여 DVFS 계산부(250)로 전송할 수 있다.
도 10은 본 발명의 다른 실시예에 따른 DVFS 제어부(200')의 DVFS 동작을 설명하기 위한 흐름도이다. 도 11은 도 10에 도시된 DVFS 동작을 제어하는 단계를 상세히 설명하기 위한 흐름도이다.
도 1 내지 도 11을 참조하면, SoC 정보 수집부(210)는 SoC 정보를 수집하여 SoC 부하 계산부(220) 및 DVFS 업데이트 결정부(280)로 전송할 수 있다(S1010).
SoC 부하 계산부(220)는 상기 SoC 정보로부터 SoC(100) 내부의 각 구성요소들의 SoC 부하를 계산하여 DVFS 계산부(250) 및 DVFS 테이블 업데이트 결정부(280)로 전송할 수 있다(S1020).
DVFS 테이블 업데이트 결정부(280)는 시나리오를 분석한 결과 또는 외부 입력에 따라 상기 시나리오를 판단하고, 상기 시나리오에 적합한 DVFS 테이블을 결정할 수 있다.
상기 DVFS 테이블 업데이트 결정부(230)는 현재 사용되고 있는 DVFS 테이블이 상기 판단된 시나리오에 적합하지 않아 DVFS 테이블을 교체할 필요가 있는 경우(S1030의 Yes branch), 상기 DVFS 테이블 저장부(240)로부터 필요한 DVFS 테이블을 수신할 수 있는지 판단한다(S1040).
상기 DVFS 테이블 업데이트 결정부(230)가 상기 DVFS 테이블 저장부(240)로부터 필요한 DVFS 테이블을 수신할 수 있는 경우(S1040의 Yes branch), 상기 DVFS 테이블 업데이트 결정부(230)는 상기 DVFS 테이블 저장부(240)로부터 상기 필요한 DVFS 테이블을 수신하여 교체할 수 있다(S1050).
상기 DVFS 테이블 업데이트 결정부(230)가 상기 DVFS 테이블 저장부(240)로부터 필요한 DVFS 테이블을 수신할 수 없는 경우(S1040의 No branch), DVFS 테이블 업데이트 결정부(280)는 현재 사용되고 있는 DVFS 테이블의 동작 주파수 대 SoC 부하 비율(OFSL ratio), 제1 튜닝 포인트 또는 제2 튜닝 포인트를 조절하여 새로운 DVFS 테이블을 생성할 수 있다(S1060).
DVFS 계산부(250)는 상기 DVFS 테이블 업데이트 결정부(280)로부터 수신된 DVFS 테이블을 참조하여 SoC 부하 계산부(220)로부터 수신된 SoC 부하와 현재의 동작 주파수에 대한 DVFS 동작을 결정할 수 있다(S1070).
도 12는 본 발명의 실시예에 따른 SoC를 포함하는 전자 시스템의 다른 실시 예를 나타내는 블록도이다. 이를 참조하면, 전자 시스템(300)은 PC(personal computer) 또는 데이터 서버로 구현될 수 있다.
전자 시스템(300)은 프로세서(100), 파워 소스(310), 저장 장치(320), 메모리(330), 입출력 포트들(340), 확장 카드(350), 네트워크 장치(360), 및 디스플레이(370)를 포함한다. 실시 예에 따라. 전자 시스템(300)은 카메라 모듈(380)을 더 포함할 수 있다.
프로세서(100)는 도 1에 도시된 SoC(100)를 의미한다. 프로세서(100)는 멀티-코어 프로세서일 수 있다.
프로세서(100)는 구성 요소들(elements; 100, 및 310~380) 중에서 적어도 하나의 동작을 제어할 수 있다.
파워 소스(310)는 구성 요소들(100, 및 310~380) 중에서 적어도 하나로 동작 전압을 공급할 수 있다.
저장 장치(320)는 하드디스크 드라이브(hard disk drive) 또는 SSD(solid state drive)로 구현될 수 있다.
메모리(330)는 휘발성 메모리 또는 불휘발성 메모리로 구현될 수 있으며, 도 1의 메모리 장치(190)에 해당할 수 있다. 실시 예에 따라, 메모리(330)에 대한 데이터 액세스 동작, 예컨대, 리드 동작, 라이트 동작(또는 프로그램 동작), 또는 이레이즈 동작을 제어할 수 있는 메모리 컨트롤러는 프로세서(100)에 집적 또는 내장될 수 있다. 다른 실시 예에 따라, 상기 메모리 컨트롤러는 프로세서(100)와 메모리(330) 사이에 구현될 수 있다.
입출력 포트들(340)은 전자 시스템(300)으로 데이터를 전송하거나 또는 전자 시스템(300)으로부터 출력된 데이터를 외부 장치로 전송할 수 있는 포트들을 의미한다. 예컨대, 입출력 포트들(340)은 컴퓨터 마우스와 같은 포인팅 장치 (pointing device)를 접속하기 위한 포트, 프린터를 접속하기 위한 포트, 또는 USB 드라이브를 접속하기 위한 포트일 수 있다.
확장 카드(350)는 SD(secure digital) 카드 또는 MMC(multimedia card)로 구현될 수 있다. 실시 예에 따라, 확장 카드(350)는 SIM(Subscriber Identification Module) 카드 또는 USIM(Universal Subscriber Identity Module) 카드일 수 있다.
네트워크 장치(360)는 전자 시스템(300)을 유선 네트워크 또는 무선 네트워크에 접속시킬 수 있는 장치를 의미한다.
디스플레이(370)는 저장 장치(320), 메모리(330), 입출력 포트들(340), 확장 카드(350), 또는 네트워크 장치(360)로부터 출력된 데이터를 디스플레이할 수 있다.
카메라 모듈(380)은 광학 이미지를 전기적인 이미지로 변환할 수 있는 모듈을 의미한다. 따라서, 카메라 모듈(380)로부터 출력된 전기적인 이미지는 저장 장치(320), 메모리(330), 또는 확장 카드(350)에 저장될 수 있다. 또한, 카메라 모듈 (380)로부터 출력된 전기적인 이미지는 디스플레이(320)를 통하여 디스플레이될 수 있다.
도 13은 본 발명의 실시예에 따른 SoC를 포함하는 전자 시스템의 또 다른 실시 예를 나타내는 블록도이다. 도 13을 참조하면, 전자 시스템(400)은 랩탑(laptop) 컴퓨터로 구현될 수 있다.
도 14는 본 발명의 실시예에 따른 SoC를 포함하는 전자 시스템의 또 다른 실시 예를 나타내는 블록도이다. 도 14를 참조하면, 전자 시스템(500)은 휴대용 장치로 구현될 수 있다. 휴대용 장치(500)는 이동 전화기, 스마트 폰(smart phone), 태블릿 (tablet) PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라 (digital still camera), 디지털 비디오 카메라 (digital video camera), PMP (portable multimedia player), PDN(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), 또는 e-북(e-book)으로 구현될 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.
컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 또한 본 발명에 따른 객체 정보 추정 방법을 수행하기 위한 프로그램 코드는 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 전송될 수도 있다.
또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
SoC(100)
CPU(110)
PMIC(160)
DVFS 제어부(200)
DVFS 테이블 선택부(230)
DVFS 계산부(250)

Claims (10)

  1. 시스템 온 칩(SoC)에 있어서,
    DVFS 제어부를 실행하기 위한 프로그램을 저장하는 메모리 장치; 및
    상기 DVFS 제어부를 실행하기 위한 프로그램을 상기 메모리 장치로부터 리드(read)하여 실행하는 CPU를 포함하며,
    상기 DVFS 제어부는
    상기 SoC의 적어도 하나의 구성요소에 대한 SoC 부하를 계산하는 SoC 부하 계산부;
    상기 SoC 부하의 패턴을 분석한 결과 또는 외부 입력에 따라 시나리오를 판단하고, 상기 시나리오에 적합한 DVFS(Dynamic Voltage Frequency Scaling) 테이블을 결정하는 DVFS 테이블 선택부; 및
    미리 저장된 복수의 DVFS 테이블들 중에서 상기 결정된 DVFS 테이블을 참조하여 상기 SoC 부하와 현재의 동작 주파수에 따른 DVFS 동작을 결정하는 DVFS 계산부를 포함하는 SoC.
  2. 제1항에 있어서,
    상기 DVFS 제어부는
    상기 복수의 DVFS 테이블들을 저장하고 상기 DVFS 테이블 선택부에 제공하는 DVFS 테이블 저장부를 더 포함하는 SoC.
  3. 제1항에 있어서,
    상기 복수의 DVFS 테이블들은 상기 CPU의 각각의 동작 주파수에 대응하는 상한 임계값을 포함하고,
    상기 복수의 DVFS 테이블들 중 일부는 상기 각각의 동작 주파수와 상기 상한 임계값의 비율이 상기 동작 주파수에 따라 상이한 SoC.
  4. 제1항에 있어서,
    상기 복수의 DVFS 테이블들은 상기 CPU의 각각의 동작 주파수에 대응하는 하한 임계값을 포함하고,
    상기 복수의 DVFS 테이블들 중 일부는 상기 각각의 동작 주파수와 상기 하한 임계값의 비율이 상기 동작 주파수에 따라 상이한 SoC.
  5. 제1항에 있어서,
    상기 외부 입력은 어플리케이션 실행 정보와 CPU 제어 신호를 포함하는 SoC.
  6. 제1항에 있어서,
    상기 DVFS 테이블 선택부는 상기 복수의 DVFS 테이블 중에서 적어도 하나의 DVFS 테이블을 선택하여 상기 시나리오에 적합한 DVFS 테이블을 결정하는 SoC.
  7. 제1항에 있어서,
    상기 DVFS 동작은 제1 정책과 제2 정책을 포함하고,
    상기 제1 정책은 상기 CPU의 동작 주파수와 상기 SoC의 동작 전압을 증가시키는 정책이고,
    상기 제2 정책은 상기 CPU의 동작 주파수와 상기 SoC의 동작 전압을 감소시키는 정책인 SoC.
  8. 제1항에 있어서,
    상기 SoC의 각 구성요소 중 적어도 하나의 메모리 사용량을 측정하여 상기 메모리 사용량을 DVFS 제어부로 전송하는 성능 측정부; 및
    상기 DVFS 제어부의 제어를 받아, DVFS 동작을 수행하기 위해 상기 CPU의 동작 주파수를 변경하는 CMU를 더 포함하는 SoC.
  9. SoC의 적어도 하나의 구성요소에 대한 SoC 부하를 계산하는 단계;
    상기 SoC 부하의 패턴을 분석한 결과 또는 외부 입력에 따라 시나리오를 판단하는 단계;
    상기 시나리오에 따라 현재 사용되고 있는 DVFS 테이블을 교체할지 여부를 결정하는 단계; 및
    상기 DVFS 테이블을 참조하여 상기 SoC 부하 동작 주파수에 따른 DVFS 동작을 결정하는 단계를 포함하는 DVFS 제어 방법.
  10. 제9항에 있어서,
    현재 사용되고 있는 DVFS 테이블을 교체할 경우 복수의 DVFS 테이블 중에서 적어도 하나의 DVFS 테이블을 선택하여 상기 시나리오에 적합한 DVFS 테이블을 결정하는 단계를 더 포함하는 DVFS 제어 방법.
KR1020120095142A 2012-08-29 2012-08-29 Dvfs 제어 방법 및 이를 이용한 시스템-온 칩 KR101991682B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020120095142A KR101991682B1 (ko) 2012-08-29 2012-08-29 Dvfs 제어 방법 및 이를 이용한 시스템-온 칩
US13/957,982 US9436253B2 (en) 2012-08-29 2013-08-02 Dynamic voltage frequency scaling method and apparatus
DE102013109014.1A DE102013109014A1 (de) 2012-08-29 2013-08-21 Dynamisches Spannungs- und Frequenzskalierungsverfahren und -vorrichtung
NL2011348A NL2011348B1 (en) 2012-08-29 2013-08-28 Dynamic voltage frequency scaling method and apparatus.
CN201310384889.3A CN103678247B (zh) 2012-08-29 2013-08-29 动态电压频率调节方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120095142A KR101991682B1 (ko) 2012-08-29 2012-08-29 Dvfs 제어 방법 및 이를 이용한 시스템-온 칩

Publications (2)

Publication Number Publication Date
KR20140029721A true KR20140029721A (ko) 2014-03-11
KR101991682B1 KR101991682B1 (ko) 2019-06-21

Family

ID=50098550

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120095142A KR101991682B1 (ko) 2012-08-29 2012-08-29 Dvfs 제어 방법 및 이를 이용한 시스템-온 칩

Country Status (5)

Country Link
US (1) US9436253B2 (ko)
KR (1) KR101991682B1 (ko)
CN (1) CN103678247B (ko)
DE (1) DE102013109014A1 (ko)
NL (1) NL2011348B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160043846A (ko) * 2014-10-14 2016-04-22 삼성전자주식회사 전자 장치 및 그 제어 방법
KR20170015097A (ko) * 2015-07-29 2017-02-08 삼성전자주식회사 전력 관리 방법 및 장치
US10211947B2 (en) 2016-12-26 2019-02-19 Samsung Electronics Co., Ltd. System-on-chip using dynamic voltage frequency scaling and method of operating the same
US10317984B2 (en) 2015-01-23 2019-06-11 Samsung Electronics Co., Ltd. System on chip, method of managing power thereof, and electronic device

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9357482B2 (en) * 2011-07-13 2016-05-31 Alcatel Lucent Method and system for dynamic power control for base stations
KR102166935B1 (ko) * 2013-11-11 2020-10-16 삼성전자주식회사 동적 전압 주파수 스케일링을 수행하기 위한 동작 주파수 변경 방법, 시스템 온-칩 및 이를 구비하는 모바일 기기
US10466763B2 (en) * 2013-12-02 2019-11-05 Nvidia Corporation Dynamic voltage-frequency scaling to limit power transients
KR20150113569A (ko) * 2014-03-31 2015-10-08 삼성전자주식회사 전자 장치의 저전력 시스템을 위한 전력 제어 방법 및 장치
WO2016014043A1 (en) * 2014-07-22 2016-01-28 Hewlett-Packard Development Company, Lp Node-based computing devices with virtual circuits
KR102222752B1 (ko) 2014-08-01 2021-03-04 삼성전자주식회사 프로세서의 동적 전압 주파수 스케일링 방법
KR102270239B1 (ko) * 2014-08-07 2021-06-28 삼성전자 주식회사 전자장치에서 소프트웨어를 실행하기 위한 방법 및 장치
US9665161B2 (en) * 2014-08-27 2017-05-30 Mediatek Inc. Method and computer-readable medium for dynamically managing power of multi-core processor
CN104216502B (zh) * 2014-08-28 2017-02-15 华南理工大学 一种具有前瞻属性的SoC动态电压频率调节方法
US9671853B2 (en) * 2014-09-12 2017-06-06 Intel Corporation Processor operating by selecting smaller of requested frequency and an energy performance gain (EPG) frequency
KR20160032529A (ko) * 2014-09-16 2016-03-24 삼성전자주식회사 시스템 온 칩과 이의 dvfs 검증 방법
US20160116954A1 (en) * 2014-10-28 2016-04-28 Linkedln Corporation Dynamic adjustment of cpu operating frequency
KR102329473B1 (ko) 2014-11-24 2021-11-19 삼성전자주식회사 프로세서와 이를 포함하는 반도체 장치
CN105791600A (zh) * 2014-12-24 2016-07-20 扬州新讯科技有限公司 基于多核架构的智能手机可调频调压的电源管理模块
CN105867521A (zh) * 2015-02-10 2016-08-17 马维尔国际有限公司 用于调节计算设备中的硬件的时钟频率的方法、装置以及用户设备
US10031574B2 (en) * 2015-05-20 2018-07-24 Mediatek Inc. Apparatus and method for controlling multi-core processor of computing system
KR102387203B1 (ko) * 2015-06-03 2022-04-15 삼성전자주식회사 병합된 파워 레일을 통해 전원전압을 공급받는 시스템 온 칩 및 이를 포함하는 모바일 시스템
US9905277B2 (en) 2015-06-30 2018-02-27 Industrial Technology Research Institute Memory controlling method and memory system
US10048740B2 (en) 2015-07-31 2018-08-14 International Business Machines Corporation Controlling power consumption
US9990024B2 (en) * 2015-09-09 2018-06-05 Qualcomm Incorporated Circuits and methods providing voltage adjustment as processor cores become active based on an observed number of ring oscillator clock ticks
US10025641B2 (en) * 2015-09-15 2018-07-17 Qualcomm Incorporated Workload differentiation for processor frequency scaling
KR102452154B1 (ko) * 2015-10-27 2022-10-07 삼성전자주식회사 영상 처리 장치 및 이를 포함하는 표시 시스템
US9934048B2 (en) * 2016-03-29 2018-04-03 Intel Corporation Systems, methods and devices for dynamic power management of devices using game theory
KR20170124017A (ko) 2016-04-29 2017-11-09 삼성전자주식회사 동작 전압을 조절하는 메모리 장치, 메모리 장치를 제어하는 어플리케이션 프로세서 및 메모리 장치의 동작방법
US10345887B2 (en) * 2016-05-06 2019-07-09 Mediatek Inc. Adaptive optimization of low power strategies
US10338670B2 (en) 2016-06-10 2019-07-02 Microsoft Technology Licensing, Llc Input voltage reduction for processing devices
US10248186B2 (en) 2016-06-10 2019-04-02 Microsoft Technology Licensing, Llc Processor device voltage characterization
US10209726B2 (en) 2016-06-10 2019-02-19 Microsoft Technology Licensing, Llc Secure input voltage adjustment in processing devices
US10310572B2 (en) 2016-06-10 2019-06-04 Microsoft Technology Licensing, Llc Voltage based thermal control of processing device
CN106126841B (zh) * 2016-06-30 2019-08-23 福州瑞芯微电子股份有限公司 一种基于硬件变频的方法和装置
KR20180055143A (ko) * 2016-11-16 2018-05-25 삼성전자주식회사 시스템 온 칩, 이를 포함하는 장치 및 이의 구동 방법
US10064141B2 (en) * 2016-12-09 2018-08-28 Qualcomm Incorporated Core frequency/count decision-based thermal mitigation optimization for a multi-core integrated circuit
KR20180078558A (ko) * 2016-12-30 2018-07-10 삼성전자주식회사 시스템 온 칩의 구동 방법, 이를 수행하는 시스템 온 칩 및 이를 포함하는 전자 시스템
EP3367210A1 (en) 2017-02-24 2018-08-29 Thomson Licensing Method for operating a device and corresponding device, system, computer readable program product and computer readable storage medium
CN107256078B (zh) * 2017-05-05 2020-06-23 浙江大华技术股份有限公司 一种动态电压频率调整方法及装置
CN107197323A (zh) * 2017-05-08 2017-09-22 上海工程技术大学 一种基于dvfs的网络视频点播服务器及其应用
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
US10283963B1 (en) 2017-08-23 2019-05-07 Teledyne Lecroy, Inc. Dynamic power supply sensor for multi-power supply applications
KR102568686B1 (ko) 2018-02-09 2023-08-23 삼성전자주식회사 컨텍스트 허브를 포함하는 모바일 장치 및 그것의 동작 방법
CN109116970A (zh) * 2018-08-31 2019-01-01 中国电子科技集团公司第五十八研究所 一种动态电压频率调节系统及方法
US10739846B2 (en) 2018-12-11 2020-08-11 Nxp B.V. Closed-loop adaptive voltage, body-biasing and frequency scaling
CN112015259B (zh) * 2019-05-29 2022-06-21 芯原微电子(上海)股份有限公司 控制峰值功耗的方法及系统
CN111625047B (zh) * 2020-07-06 2021-08-27 安阳复星合力新材料股份有限公司 一种中频电源加热功率控制方法
CN111897410B (zh) * 2020-07-15 2022-12-06 展讯通信(上海)有限公司 系统组件功耗优化方法、装置、电子设备和存储介质
KR20220028443A (ko) 2020-08-28 2022-03-08 삼성전자주식회사 주변장치 인터페이스를 포함하는 장치 및 그것의 동작 방법
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
US11927981B2 (en) 2021-05-21 2024-03-12 Samsung Electronics Co., Ltd. Integrated circuit, dynamic voltage and frequency scaling (DVFS) governor, and computing system including the same
KR20230036589A (ko) * 2021-09-06 2023-03-15 삼성전자주식회사 시스템-온-칩 및 그의 동작 방법
CN114301504B (zh) * 2021-12-20 2023-05-02 山东领能电子科技有限公司 基于dvfs的蓝牙基带芯片ip核架构及其工作方法
CN117492552B (zh) * 2024-01-03 2024-04-16 芯瞳半导体技术(山东)有限公司 动态电压频率调节方法、控制器、装置、设备及存储介质

Citations (5)

* 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
JP2010226083A (ja) * 2009-02-27 2010-10-07 Renesas Electronics Corp 半導体集積回路装置
KR20110061810A (ko) * 2009-12-02 2011-06-10 한국전자통신연구원 어플리케이션 특정 명령어 프로세서 코어를 이용하는 멀티 프로세싱 방법, 멀티 프로세싱 장치 및 임베디드 시스템
JP2011134324A (ja) * 2009-12-23 2011-07-07 Intel Corp 電力管理システム及び方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7421601B2 (en) * 2006-02-17 2008-09-02 International Business Machines Corporation Method and system for controlling power in a chip through a power-performance monitor and control unit
US7721127B2 (en) * 2006-03-28 2010-05-18 Mips Technologies, Inc. Multithreaded dynamic voltage-frequency scaling microprocessor
US20090049314A1 (en) 2007-08-13 2009-02-19 Ali Taha Method and System for Dynamic Voltage and Frequency Scaling (DVFS)
KR20110034729A (ko) * 2009-09-29 2011-04-06 삼성전자주식회사 프로세서를 포함하는 장치의 전력 관리 방법
KR101620103B1 (ko) 2009-10-21 2016-05-13 삼성전자주식회사 멀티 코어 시스템에서 중앙 처리 장치의 전력 제어 장치 및 방법
KR101648978B1 (ko) 2009-11-05 2016-08-18 삼성전자주식회사 저전력 멀티코어 시스템에서의 전력 제어 방법 및 장치
KR101617377B1 (ko) * 2009-11-06 2016-05-02 삼성전자주식회사 동적 전압 주파수 스케일링 방법
CN102314525B (zh) * 2010-06-30 2013-03-20 中国科学院微电子研究所 一种低功耗电路设计优化方法
US8510740B2 (en) * 2010-09-16 2013-08-13 Qualcomm Incorporated System and method of performing dynamic voltage and frequency scaling operations on a mobile device
JP5545376B2 (ja) * 2010-12-22 2014-07-09 富士通株式会社 マルチコアプロセッサシステム、および電力制御方法
KR101240702B1 (ko) 2011-02-18 2013-03-11 로베르트 보쉬 게엠베하 배리어의 구조가 개선된 배터리 모듈
US8788866B2 (en) * 2011-04-25 2014-07-22 Qualcomm Incorporated Method and system for reducing thermal load by monitoring and controlling current flow in a portable computing device
US8531225B1 (en) * 2012-05-18 2013-09-10 Mediatek Singapore Pte. Ltd. Configurable critical path emulator

Patent Citations (5)

* 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
JP2010226083A (ja) * 2009-02-27 2010-10-07 Renesas Electronics Corp 半導体集積回路装置
KR20110061810A (ko) * 2009-12-02 2011-06-10 한국전자통신연구원 어플리케이션 특정 명령어 프로세서 코어를 이용하는 멀티 프로세싱 방법, 멀티 프로세싱 장치 및 임베디드 시스템
JP2011134324A (ja) * 2009-12-23 2011-07-07 Intel Corp 電力管理システム及び方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160043846A (ko) * 2014-10-14 2016-04-22 삼성전자주식회사 전자 장치 및 그 제어 방법
WO2016060457A3 (ko) * 2014-10-14 2017-04-27 삼성전자 주식회사 전자 장치 및 그 제어 방법
US10496142B2 (en) 2014-10-14 2019-12-03 Samsung Electronics Co., Ltd. Electronic device having power device and power control method thereof
US10317984B2 (en) 2015-01-23 2019-06-11 Samsung Electronics Co., Ltd. System on chip, method of managing power thereof, and electronic device
KR20170015097A (ko) * 2015-07-29 2017-02-08 삼성전자주식회사 전력 관리 방법 및 장치
US10211947B2 (en) 2016-12-26 2019-02-19 Samsung Electronics Co., Ltd. System-on-chip using dynamic voltage frequency scaling and method of operating the same

Also Published As

Publication number Publication date
NL2011348B1 (en) 2016-12-01
KR101991682B1 (ko) 2019-06-21
CN103678247B (zh) 2018-05-25
US9436253B2 (en) 2016-09-06
US20140068285A1 (en) 2014-03-06
DE102013109014A1 (de) 2014-03-06
NL2011348A (en) 2014-03-03
CN103678247A (zh) 2014-03-26

Similar Documents

Publication Publication Date Title
KR101991682B1 (ko) Dvfs 제어 방법 및 이를 이용한 시스템-온 칩
US11513585B1 (en) Power management for a graphics processing unit or other circuit
US10705588B2 (en) Enabling a non-core domain to control memory bandwidth in a processor
US11327555B2 (en) Application processor performing a dynamic voltage and frequency scaling operation, computing system including the same, and operation method thereof
KR20130110459A (ko) 시스템-온 칩, 이를 포함하는 전자 시스템 및 그 제어 방법
US9588915B2 (en) System on chip, method of operating the same, and apparatus including the same
US9696771B2 (en) Methods and systems for operating multi-core processors
KR20160032529A (ko) 시스템 온 칩과 이의 dvfs 검증 방법
KR101748747B1 (ko) 프로세서의 구성가능한 피크 성능 제한들의 제어
CN108885483B (zh) 确定多管芯处理器中的热余量
KR20140030823A (ko) 3차원 작업 부하를 이용하여 dvfs 정책을 수행하는 시스템-온 칩 및 이의 동작 방법
KR20140088691A (ko) Dvfs 정책을 수행하는 시스템-온 칩 및 이의 동작 방법
Mercati et al. A linux-governor based dynamic reliability manager for android mobile devices
GB2539748A (en) Configuring power management functionality in a processor
US20160054788A1 (en) Parameter-Based Sensor Selection
Rotem et al. H-EARtH: Heterogeneous multicore platform energy management
US20170052586A1 (en) Transparently monitoring power delivery in a processor
KR20140021283A (ko) 다중 dvfs 정책을 이용한 soc 및 이의 동작 방법
CN112771470A (zh) 用于对多个知识产权主体和共享电源轨进行共同功率控制的系统、装置及方法
US20230266815A1 (en) Dvfs controlling method, semiconductor device and semiconductor system using the dvfs controlling method
KR102670999B1 (ko) Dvfs 동작을 수행하는 어플리케이션 프로세서, 이를 포함하는 컴퓨팅 시스템 및 이의 동작 방법
CN115865057A (zh) 识别和校正时钟占空比的技术
KR20230036589A (ko) 시스템-온-칩 및 그의 동작 방법
Zuhayri et al. Unified extensible firmware interface: An innovative infrastructure for power/thermal autonomics

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