KR101991682B1 - Dvfs 제어 방법 및 이를 이용한 시스템-온 칩 - Google Patents
Dvfs 제어 방법 및 이를 이용한 시스템-온 칩 Download PDFInfo
- Publication number
- KR101991682B1 KR101991682B1 KR1020120095142A KR20120095142A KR101991682B1 KR 101991682 B1 KR101991682 B1 KR 101991682B1 KR 1020120095142 A KR1020120095142 A KR 1020120095142A KR 20120095142 A KR20120095142 A KR 20120095142A KR 101991682 B1 KR101991682 B1 KR 101991682B1
- Authority
- KR
- South Korea
- Prior art keywords
- dvfs
- soc
- operating frequency
- load
- dvfs table
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
시스템-온 칩(SoC)이 개시된다. 본 발명의 실시예에 따른 시스템-온 칩은 DVFS 제어부를 실행하기 위한 프로그램을 저장하는 메모리 장치 및 상기 DVFS 제어부를 실행하기 위한 프로그램을 상기 메모리 장치로부터 리드하여 실행하는 CPU를 포함하며, 상기 DVFS 제어부는 상기 SoC의 적어도 하나의 구성요소에 대한 SoC 부하를 계산하는 SoC 부하 계산부, 상기 SoC 부하의 패턴을 분석한 결과 또는 외부 입력에 따라 시나리오를 판단하고, 상기 시나리오에 적합한 DVFS 테이블을 결정하는 DVFS 테이블 선택부 및 미리 저장된 복수의 DVFS 테이블들 중에서 상기 결정된 DVFS 테이블을 참조하여 상기 SoC 부하와 현재의 동작 주파수에 따른 DVFS 동작을 결정하는 DVFS 계산부를 포함한다. 본 발명의 실시예에 따른 DVFS 제어부에 의하면, 다양한 시나리오에 따라 DVFS 테이블을 선택적으로 적용함으로써 DVFS 제어를 효율적으로 할 수 있다.
Description
본 발명은 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를 포함하는 전자 시스템의 또 다른 실시 예를 나타내는 블록도이다.
도 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에 의해 계산될 수 있다.
상기 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)을 포함할 수 있다.
현재의 동작 주파수(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)
CPU(110)
PMIC(160)
DVFS 제어부(200)
DVFS 테이블 선택부(230)
DVFS 계산부(250)
Claims (10)
- 시스템 온 칩(SoC)에 있어서,
DVFS 제어부를 실행하기 위한 프로그램을 저장하는 메모리 장치; 및
상기 DVFS 제어부를 실행하기 위한 프로그램을 상기 메모리 장치로부터 리드(read)하여 실행하는 CPU를 포함하며,
상기 DVFS 제어부는
상기 SoC의 적어도 하나의 구성요소에 대한 SoC 부하를 계산하는 SoC 부하 계산부;
상기 SoC 부하의 패턴을 분석한 결과 또는 외부 입력에 따라 시나리오를 판단하고, 상기 시나리오에 적합한 DVFS(Dynamic Voltage Frequency Scaling) 테이블을 결정하는 DVFS 테이블 선택부; 및
미리 저장된 복수의 DVFS 테이블들 중에서 상기 결정된 DVFS 테이블을 참조하여 상기 SoC 부하와 현재의 동작 주파수에 따른 DVFS 동작을 결정하는 DVFS 계산부를 포함하고,
상기 복수의 DVFS 테이블들 각각은 상기 CPU의 각각의 동작 주파수에 대응하는 상한 임계값 및 하한 임계값을 포함하고,
상기 상한 임계값 및 상기 하한 임계값은 상기 각각의 동작 주파수와 SoC 부하 사이의 비율에 대응하는 OFSL(Operating Frequency to SoC Load) 비율 값에 기초하여 결정되는, SoC. - 제1항에 있어서,
상기 DVFS 제어부는
상기 복수의 DVFS 테이블들을 저장하고 상기 DVFS 테이블 선택부에 제공하는 DVFS 테이블 저장부를 더 포함하는 SoC. - 제1항에 있어서,
상기 복수의 DVFS 테이블들 중 일부는 상기 각각의 동작 주파수와 상기 상한 임계값의 비율이 상기 동작 주파수에 따라 상이한 SoC. - 제1항에 있어서,
상기 복수의 DVFS 테이블들 중 일부는 상기 각각의 동작 주파수와 상기 하한 임계값의 비율이 상기 동작 주파수에 따라 상이한 SoC. - 제1항에 있어서,
상기 외부 입력은 어플리케이션 실행 정보와 CPU 제어 신호를 포함하는 SoC. - 제1항에 있어서,
상기 DVFS 테이블 선택부는 상기 복수의 DVFS 테이블 중에서 적어도 하나의 DVFS 테이블을 선택하여 상기 시나리오에 적합한 DVFS 테이블을 결정하는 SoC. - 제1항에 있어서,
상기 DVFS 동작은 제1 정책과 제2 정책을 포함하고,
상기 제1 정책은 상기 CPU의 동작 주파수와 상기 SoC의 동작 전압을 증가시키는 정책이고,
상기 제2 정책은 상기 CPU의 동작 주파수와 상기 SoC의 동작 전압을 감소시키는 정책인 SoC. - 제1항에 있어서,
상기 SoC의 각 구성요소 중 적어도 하나의 메모리 사용량을 측정하여 상기 메모리 사용량을 DVFS 제어부로 전송하는 성능 측정부; 및
상기 DVFS 제어부의 제어를 받아, DVFS 동작을 수행하기 위해 상기 CPU의 동작 주파수를 변경하는 CMU를 더 포함하는 SoC. - SoC의 적어도 하나의 구성요소에 대한 SoC 부하를 계산하는 단계;
상기 SoC 부하의 패턴을 분석한 결과 또는 외부 입력에 따라 시나리오를 판단하는 단계;
상기 시나리오에 따라 현재 사용되고 있는 DVFS 테이블을 교체할지 여부를 결정하는 단계; 및
상기 DVFS 테이블을 참조하여 상기 SoC 부하 동작 주파수에 따른 DVFS 동작을 결정하는 단계를 포함하고,
상기 DVFS 테이블은 CPU의 각각의 동작 주파수에 대응하는 상한 임계값 및 하한 임계값을 포함하고,
상기 상한 임계값 및 상기 하한 임계값은 상기 각각의 동작 주파수와 SoC 부하 사이의 비율에 대응하는 OFSL(Operating Frequency to SoC Load) 비율 값에 기초하여 결정되는, DVFS 제어 방법. - 제9항에 있어서,
현재 사용되고 있는 DVFS 테이블을 교체할 경우 복수의 DVFS 테이블 중에서 적어도 하나의 DVFS 테이블을 선택하여 상기 시나리오에 적합한 DVFS 테이블을 결정하는 단계를 더 포함하는 DVFS 제어 방법.
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 KR20140029721A (ko) | 2014-03-11 |
KR101991682B1 true 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 (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
Families Citing this family (56)
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 검증 방법 |
KR102278475B1 (ko) * | 2014-10-14 | 2021-07-19 | 삼성전자주식회사 | 전자 장치 및 그 제어 방법 |
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 | 扬州新讯科技有限公司 | 基于多核架构的智能手机可调频调压的电源管理模块 |
KR102301639B1 (ko) | 2015-01-23 | 2021-09-14 | 삼성전자주식회사 | SoC(System-on Chip), 그의 전력 관리 방법 및 전자 장치 |
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 |
GB2540804B (en) * | 2015-07-29 | 2018-03-07 | Samsung Electronics Co Ltd | Hardware power management apparatus and methods |
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 |
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 |
US10338670B2 (en) | 2016-06-10 | 2019-07-02 | Microsoft Technology Licensing, Llc | Input voltage reduction for processing devices |
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 |
KR102661491B1 (ko) | 2016-12-26 | 2024-04-29 | 삼성전자주식회사 | 동적 전압 주파수 스케일링을 사용하는 시스템 온 칩 및 그것의 동작 방법 |
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的网络视频点播服务器及其应用 |
US10417054B2 (en) | 2017-06-04 | 2019-09-17 | Apple Inc. | Scheduler for AMP architecture with closed loop performance controller |
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 | 芯原微电子(上海)股份有限公司 | 控制峰值功耗的方法及系统 |
US20230104685A1 (en) * | 2020-03-27 | 2023-04-06 | Intel Corporation | Power management circuitry |
CN111625047B (zh) * | 2020-07-06 | 2021-08-27 | 安阳复星合力新材料股份有限公司 | 一种中频电源加热功率控制方法 |
CN111897410B (zh) * | 2020-07-15 | 2022-12-06 | 展讯通信(上海)有限公司 | 系统组件功耗优化方法、装置、电子设备和存储介质 |
KR20220028443A (ko) | 2020-08-28 | 2022-03-08 | 삼성전자주식회사 | 주변장치 인터페이스를 포함하는 장치 및 그것의 동작 방법 |
CN114185834A (zh) * | 2020-09-15 | 2022-03-15 | 阿里巴巴集团控股有限公司 | 片上系统和电压与频率调节的方法 |
EP4235434A4 (en) * | 2020-11-30 | 2024-01-03 | Huawei Technologies Co., Ltd. | DEVICE FOR CONTROLLING ELECTRICAL CONSUMPTION, PROCESSOR AND METHOD FOR CONTROLLING ELECTRICAL CONSUMPTION |
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 |
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 (4)
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 | 半導体集積回路装置 |
JP2011134324A (ja) | 2009-12-23 | 2011-07-07 | Intel Corp | 電力管理システム及び方法 |
Family Cites Families (14)
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 | 삼성전자주식회사 | 동적 전압 주파수 스케일링 방법 |
KR20110061810A (ko) * | 2009-12-02 | 2011-06-10 | 한국전자통신연구원 | 어플리케이션 특정 명령어 프로세서 코어를 이용하는 멀티 프로세싱 방법, 멀티 프로세싱 장치 및 임베디드 시스템 |
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 |
EP2657840A4 (en) * | 2010-12-22 | 2016-09-28 | Fujitsu Ltd | MULTIC UR PROCESSOR SYSTEM AND POWER CONTROL METHOD |
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 |
-
2012
- 2012-08-29 KR KR1020120095142A patent/KR101991682B1/ko active IP Right Grant
-
2013
- 2013-08-02 US US13/957,982 patent/US9436253B2/en active Active
- 2013-08-21 DE DE102013109014.1A patent/DE102013109014A1/de active Pending
- 2013-08-28 NL NL2011348A patent/NL2011348B1/en active
- 2013-08-29 CN CN201310384889.3A patent/CN103678247B/zh active Active
Patent Citations (4)
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 | 半導体集積回路装置 |
JP2011134324A (ja) | 2009-12-23 | 2011-07-07 | Intel Corp | 電力管理システム及び方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
Also Published As
Publication number | Publication date |
---|---|
NL2011348B1 (en) | 2016-12-01 |
NL2011348A (en) | 2014-03-03 |
US20140068285A1 (en) | 2014-03-06 |
US9436253B2 (en) | 2016-09-06 |
CN103678247B (zh) | 2018-05-25 |
CN103678247A (zh) | 2014-03-26 |
KR20140029721A (ko) | 2014-03-11 |
DE102013109014A1 (de) | 2014-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101991682B1 (ko) | Dvfs 제어 방법 및 이를 이용한 시스템-온 칩 | |
US11513585B1 (en) | Power management for a graphics processing unit or other circuit | |
KR102005765B1 (ko) | 시스템-온 칩과, 이의 동작 방법 | |
US9588915B2 (en) | System on chip, method of operating the same, and apparatus including the same | |
KR20160032529A (ko) | 시스템 온 칩과 이의 dvfs 검증 방법 | |
US8984313B2 (en) | Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator | |
US20130262894A1 (en) | System-on-chip, electronic system including same, and method controlling same | |
KR101748747B1 (ko) | 프로세서의 구성가능한 피크 성능 제한들의 제어 | |
US20130173946A1 (en) | Controlling power consumption through multiple power limits over multiple time intervals | |
KR20140030823A (ko) | 3차원 작업 부하를 이용하여 dvfs 정책을 수행하는 시스템-온 칩 및 이의 동작 방법 | |
KR20140088691A (ko) | Dvfs 정책을 수행하는 시스템-온 칩 및 이의 동작 방법 | |
KR20180076840A (ko) | Dvfs 동작을 수행하는 어플리케이션 프로세서, 이를 포함하는 컴퓨팅 시스템 및 이의 동작 방법 | |
Li et al. | Optimizing power consumption in multicore smartphones | |
CN110832434A (zh) | 针对节能性能使用有效利用率进行核心频率管理 | |
Sahin et al. | On the impacts of greedy thermal management in mobile devices | |
Rotem et al. | H-EARtH: Heterogeneous multicore platform energy management | |
CN113448373A (zh) | 用于处理器的电压调节器的功率状态缩放的装置和方法 | |
JP2011108045A (ja) | 計算機システム、管理サーバ及び電力削減方法 | |
US20170052586A1 (en) | Transparently monitoring power delivery in a processor | |
KR20140021283A (ko) | 다중 dvfs 정책을 이용한 soc 및 이의 동작 방법 | |
CN112771470A (zh) | 用于对多个知识产权主体和共享电源轨进行共同功率控制的系统、装置及方法 | |
Cesarini et al. | Prediction horizon vs. efficiency of optimal dynamic thermal control policies in hpc nodes | |
Mercati et al. | Blast: Battery lifetime-constrained adaptation with selected target in mobile devices | |
US20230266815A1 (en) | Dvfs controlling method, semiconductor device and semiconductor system using the dvfs controlling method | |
US20240211019A1 (en) | Runtime-learning graphics power optimization |
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 |