KR102164099B1 - 시스템 온 칩, 이의 작동 방법, 및 이를 포함하는 장치 - Google Patents

시스템 온 칩, 이의 작동 방법, 및 이를 포함하는 장치 Download PDF

Info

Publication number
KR102164099B1
KR102164099B1 KR1020140037257A KR20140037257A KR102164099B1 KR 102164099 B1 KR102164099 B1 KR 102164099B1 KR 1020140037257 A KR1020140037257 A KR 1020140037257A KR 20140037257 A KR20140037257 A KR 20140037257A KR 102164099 B1 KR102164099 B1 KR 102164099B1
Authority
KR
South Korea
Prior art keywords
dvfs
cpu
frequency
interrupt
scheduled time
Prior art date
Application number
KR1020140037257A
Other languages
English (en)
Other versions
KR20150112660A (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 KR1020140037257A priority Critical patent/KR102164099B1/ko
Priority to US14/630,015 priority patent/US9632567B2/en
Priority to TW104110013A priority patent/TWI670592B/zh
Priority to CN201510144502.6A priority patent/CN104951044B/zh
Publication of KR20150112660A publication Critical patent/KR20150112660A/ko
Application granted granted Critical
Publication of KR102164099B1 publication Critical patent/KR102164099B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/163Wearable computers, e.g. on a belt
    • 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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • 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)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Power Sources (AREA)

Abstract

시스템 온 칩의 작동 방법이 개시된다. 상기 방법은 본 발명의 실시 예에 따른 시스템 온 칩(system on chip(SoC))의 작동 방법은 스케줄된 시점에서 인터럽트의 발생 여부를 결정하는 단계와, 상기 스케줄된 시점에서 상기 인터럽트의 발생 여부와 CPU의 상태에 따라, 상기 스케줄된 시점에서 DVFS(dynamic voltage and frequency scaling) 대상 하드웨어에 대해 DVFS를 실행할지를 결정하는 단계를 포함한다.

Description

시스템 온 칩, 이의 작동 방법, 및 이를 포함하는 장치{SYSTEM ON CHIP, METHOD THEREOF, AND DEVICE INCLUDING THE SAME}
본 발명의 개념에 따른 실시 예는 동적 전압 및 주파수 스케일링(dynamic voltage & frequency scaling(DVFS))에 관한 것으로, 특히 저전력 모드(low power mode)에서 불필요한 DVFS의 실행을 방지할 수 있는 시스템 온 칩, 이의 작동 방법, 및 이를 포함하는 장치에 관한 것이다.
DVFS는 작동 주파수(operating frequency)와 작동 전압(operating voltage)을 동적으로 조절하는 기술이다. 전자 시스템(electronic system)은 DVFS를 이용하여 불필요한 전력 소모를 줄일 수 있다.
가장 널리 사용되는 DVFS는 주기적으로 조절 대상 회로의 사용량을 체크 (check)하고, 체크의 결과에 따라 상기 조절 대상 회로로 공급되는 작동 주파수와 작동 전압을 조절하여 상기 조절 대상 회로에서 불필요하게 소모되는 전력을 감소시킨다.
전자 시스템이 작동 중일 때, 조절 대상 회로의 사용량을 체크하여 수행되는 DVFS는 어느 정도 전류 소모를 줄일 수 있고 상기 전자 시스템의 성능을 유지할 수 있다. 그러나, 상기 전자 시스템이 아이들 상태에 있을 때에도 상기 사용량을 체크하여 수행되는 DVFS 자체가 전류 소모에 악영향을 끼친다.
최근 SoC는 배터리의 사용 시간을 늘리기 위해 저전력 모드를 지원하고 있다. 상기 저전력 모드를 사용하는 SoC에서 주기적으로 DVFS를 수행하기 위해 CPU가 주기적으로 웨이크업(wakeup) 되면, 주기적으로 웨이크업 되는 CPU의 전력 소모는 SoC 전체의 전력 소모에서 상당히 큰 비중을 차지한다.
본 발명이 이루고자 하는 기술적인 과제는, 저전력 모드에서 주기적으로 DVFS가 실행됨에 따라 발생하는 불필요한 전력 소모를 줄이기 위해, DVFS 대상 하드웨어의 주파수와 CPU의 상태에 따라 DVFS를 선택적으로 실행할 수 있는 방법과 상기 방법을 실행할 수 있는 시스템을 제공하는 것이다.
또한, 본 발명이 이루고자 하는 기술적인 과제는 저전력 모드에서는 비자발적 DVFS를 실행하고 정상 작동 모드에서는 자발적 DVFS를 실행하여 시스템에서 불필요한 전력 소모를 방지할 수 있는 방법과 상기 방법을 실행할 수 있는 시스템을 제공하는 것이다.
본 발명의 실시 예에 따른 시스템 온 칩(system on chip(SoC))의 작동 방법은 스케줄된 시점에서 인터럽트의 발생 여부를 결정하는 단계와, 상기 스케줄된 시점에서 상기 인터럽트의 발생 여부와 CPU의 상태에 따라, 상기 스케줄된 시점에서 DVFS(dynamic voltage and frequency scaling) 대상 하드웨어에 대해 DVFS를 실행할지를 결정하는 단계를 포함한다.
상기 인터럽트의 발생 여부를 결정하는 단계는 상기 DVFS 대상 하드웨어로 공급되는 기본 주파수와 상기 DVFS 대상 하드웨어의 데이터 트래픽을 모니터하고 모니터 신호를 생성하는 단계와, 상기 모니터 신호에 기초하여 상기 DVFS 대상 하드웨어의 현재 시점에서의 현재 주파수와 상기 스케줄된 시점에서의 다음 주파수를 계산하는 단계와, 상기 현재 주파수와 상기 다음 주파수에 기초하여 상기 인터럽트의 발생 여부를 결정하는 단계를 포함한다.
실시 예에 따라 상기 인터럽트의 발생 여부를 결정하는 단계는, 상기 현재 주파수와 상기 다음 주파수 각각이 최소 주파수가 아닐 때, 상기 스케줄된 시점에서 상기 인터럽트를 발생하도록 결정한다.
실시 예에 따라 상기 DVFS를 실행할지를 결정하는 단계는, 상기 CPU의 상태가 런 상태일 때, 상기 인터럽트에 응답하여 상기 DVFS를 실행한다.
다른 실시 예에 따라 상기 DVFS를 실행할지를 결정하는 단계는, 상기 CPU의 상태가 아이들 상태일 때, 상기 인터럽트에 응답하여 상기 CPU를 웨이크업하는 단계와, 웨이크업된 상기 CPU에 제어에 따라 상기 DVFS를 실행하는 단계를 포함한다.
다른 실시 예에 따라 상기 인터럽트의 발생 여부를 결정하는 단계는, 상기 현재 주파수와 상기 다음 주파수 각각이 최소 주파수가 일 때, 상기 스케줄된 시점에서 상기 인터럽트를 발생하지 않도록 결정한다.
상기 DVFS를 실행할지를 결정하는 단계는, 상기 CPU의 상태가 아이들 상태일 때, 상기 DVFS를 실행하지 않는다.
상기 DVFS를 실행할지를 결정하는 단계는, 상기 CPU의 상태가 아이들 상태일 때, 스케줄되지 않은 시점에서 발생한 인터럽트에 응답하여 상기 CPU가 웨이크업될 때까지, 상기 DVFS의 실행을 연기한다.
또 다른 실시 예에 따라 상기 인터럽트의 발생 여부를 결정하는 단계는, 상기 현재 주파수가 최소 주파수가 아니고 상기 다음 주파수가 상기 최소 주파수가 일 때, 상기 스케줄된 시점에서 상기 인터럽트를 발생하지 않도록 결정한다.
상기 SoC의 작동 방법은 상기 스케줄된 시점이 지난 후 발생한 인터럽트에 응답하여 아이들 상태의 상기 CPU를 웨이크업 하는 단계와, 웨이크업된 상기 CPU를 이용하여 상기 DVFS 대상 하드웨어에 대한 새로운 DVFS를 실행하는 단계를 더 포함한다.
또 다른 실시 예에 따라 상기 인터럽트의 발생 여부를 결정하는 단계는, 상기 현재 주파수가 최소 주파수이고 상기 다음 주파수가 상기 최소 주파수가 아닐 때, 상기 스케줄된 시점에서 상기 인터럽트를 발생하도록 결정한다.
실시 예에 따라 상기 DVFS를 실행할지를 결정하는 단계는, 상기 CPU의 상태가 런 상태일 때, 발생한 인터럽트에 응답하여 상기 DVFS를 실행한다.
다른 실시 예에 따라 상기 DVFS를 실행할지를 결정하는 단계는 상기 CPU의 상태가 아이들 상태일 때, 발생한 인터럽트에 응답하여 상기 CPU를 웨이크업하는 단계와, 웨이크업된 상기 CPU를 이용하여 상기 DVFS를 실행하는 단계를 포함한다.
상기 SoC의 작동 방법은 상기 인터럽트의 발생이 결정될 때만 상기 스케줄된 시점에 상기 인터럽트에 관련된 신호가 출력되도록 타이머를 설정하는 단계를 더 포함한다.
본 발명의 실시 예에 따른 시스템 온 칩은 DVFS(dynamic voltage and frequency scaling) 대상 하드웨어와, 상기 DVFS 대상 하드웨어로 공급되는 기본 주파수와 상기 DVFS 대상 하드웨어의 데이터 트래픽을 모니터하고 모니터 신호를 생성하는 성능 모니터링 유닛과, 상기 모니터 신호를 읽어올 수 있는 CPU를 포함한다.
상기 CPU는 상기 DVFS 대상 하드웨어의 현재 시점에서의 현재 주파수와 스케줄된 시점에서의 다음 주파수를 이용하여 상기 스케줄된 시점에서 인터럽트의 발생 여부를 결정하고, 상기 스케줄된 시점에서 상기 인터럽트의 발생 여부와 상기 CPU의 상태에 따라 상기 DVFS 대상 하드웨어에 대한 DVFS의 실행 여부를 결정하고, 상기 현재 주파수와 상기 다음 주파수는 상기 모니터 신호에 기초하여 결정된다.
상기 시스템 온 칩은 상기 스케줄된 시점에서 출력 신호를 출력하는 타이머와, 상기 타이머의 상기 출력 신호에 응답하여 상기 인터럽트를 발생하는 인터럽트 컨트롤러를 더 포함하고, 상기 CPU는, 상기 인터럽트의 발생이 결정될 때만, 상기 스케줄된 시점을 상기 타이머에 설정한다.
실시 예에 따라 상기 CPU는, 상기 현재 주파수와 상기 다음 주파수 각각이 최소 주파수가 아닐 때, 상기 스케줄된 시점에서 상기 인터럽트를 발생하도록 결정한다.
다른 실시 예에 따라 상기 CPU는, 상기 현재 주파수와 상기 다음 주파수 각각이 최소 주파수가 일 때, 상기 스케줄된 시점에서 상기 인터럽트를 발생하지 않도록 결정한다.
또 다른 실시 예에 따라 상기 CPU는, 상기 현재 주파수가 최소 주파수가 아니고 상기 다음 주파수가 상기 최소 주파수가 일 때, 상기 스케줄된 시점에서 상기 인터럽트를 발생하지 않도록 결정한다.
또 다른 실시 예에 따라 상기 CPU는, 상기 현재 주파수가 최소 주파수이고 상기 다음 주파수가 상기 최소 주파수가 아닐 때, 상기 스케줄된 시점에서 상기 인터럽트를 발생하도록 결정한다.
본 발명의 실시 예에 따른 애플리케이션 프로세서는 DVFS(dynamic voltage and frequency scaling) 대상 하드웨어와, 상기 DVFS 대상 하드웨어로 공급되는 기본 주파수와 상기 DVFS 대상 하드웨어의 데이터 트래픽을 모니터하고 모니터 신호를 생성하는 성능 모니터링 유닛과, 상기 모니터 신호를 읽어올 수 있는 CPU를 포함한다.
상기 CPU는 상기 DVFS 대상 하드웨어의 현재 시점에서의 현재 주파수와 스케줄된 시점에서의 다음 주파수를 이용하여 상기 스케줄된 시점에서 인터럽트의 발생 여부를 결정하고, 상기 스케줄된 시점에서 상기 인터럽트의 발생 여부와 상기 CPU의 상태에 따라 상기 DVFS 대상 하드웨어에 대한 DVFS의 실행 여부를 결정하고, 상기 현재 주파수와 상기 다음 주파수는 상기 모니터 신호에 기초하여 결정된다.
본 발명의 실시 예에 따른 웨어러블 장치는 애플리케이션 프로세서와, 상기 애플리케이션 프로세서로 DVFS(dynamic voltage and frequency scaling)를 위한 작동 전압을 공급하는 전력 관리 집적 회로를 포함한다.
상기 애플리케이션 프로세서는 DVFS 대상 하드웨어와, 상기 DVFS 대상 하드웨어로 공급되는 기본 주파수와 상기 DVFS 대상 하드웨어의 데이터 트래픽을 모니터하고 모니터 신호를 생성하는 성능 모니터링 유닛과, 상기 DVFS 대상 하드웨어로 상기 DVFS를 위한 상기 기준 주파수를 갖는 클락을 공급하는 클락 관리 유닛과, 상기 모니터 신호를 읽어올 수 있는 CPU를 포함한다.
상기 CPU는 상기 DVFS 대상 하드웨어의 현재 시점에서의 현재 주파수와 스케줄된 시점에서의 다음 주파수를 이용하여 상기 스케줄된 시점에서 인터럽트의 발생 여부를 결정하고, 상기 스케줄된 시점에서 상기 인터럽트의 발생 여부와 상기 CPU의 상태에 따라 상기 DVFS 대상 하드웨어에 대한 상기 DVFS의 실행 여부를 결정하고, 상기 현재 주파수와 상기 다음 주파수는 상기 모니터 신호에 기초하여 결정되다.
상기 웨어러블 장치는 상기 스케줄된 시점에서 출력 신호를 출력하는 타이머와, 상기 타이머의 상기 출력 신호에 응답하여 상기 인터럽트를 발생하는 인터럽트 컨트롤러를 더 포함하고, 상기 CPU는, 상기 인터럽트의 발생이 결정될 때만, 상기 스케줄된 시점을 상기 타이머에 설정한다.
본 발명의 실시 예에 따른 시스템 온 칩은 저전력 모드에서는 비자발적 DVFS를 실행하고 정상 작동 모드에서는 자발적 DVFS를 실행할 수 있으므로, 불필요한 전력 소모를 방지할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 시스템의 블록도를 나타낸다.
도 2는 도 1에 도시된 시스템에서 수행되는 DVFS의 타이밍 도를 나타낸다.
도 3은 도 1에 도시된 시스템의 작동을 설명하기 위한 플로우차트이다.
도 4는 도 1에 도시된 시스템에서 수행되는 DVFS의 상태도(state diadram)이다.
도 5는 도 4에 도시된 DVFS의 상태도의 작동 조건별 상태도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 작동, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 작동, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
본 명세서에서 설명될 자발적 DVFS(voluntary DVFS 또는 voluntary DVFS invocation) 또는 VID(voluntary invoking DVFS)는, 스케줄된 시점에서 DVFS 대상 하드웨어의 주파수가 최소 주파수가 아니고 CPU의 상태가 런(run 또는 running) 상태일 때, 상기 스케줄된 시점에서 상기 DVFS 대상 하드웨어에 대한 DVFS를 실행하는 것을 의미한다.
이때, 상기 스케줄된 시점에 대한 정보는 상기 CPU에 의해 타이머에 설정되므로, 상기 스케줄된 시점에서 인터럽트 컨트롤러는 상기 타이머의 출력 신호에 응답하여 인터럽트를 발생한다. 따라서, 상기 인터럽트에 의해 웨이크업된 CPU는 상기 스케줄된 시점에서 상기 DVFS의 실행을 제어할 수 있다.
또한, 자발적 DVFS 또는 VID는, 스케줄된 시점에서 DVFS 대상 하드웨어의 주파수가 최소 주파수가 아니고 CPU의 상태가 아이들 상태일 때, CPU는 상기 스케줄된 시점에서 상기 인터럽트에 응답하여 강제적으로 웨이크업되므로, 상기 스케줄된 시점에서 상기 DVFS 대상 하드웨어에 대한 상기 DVFS를 실행하는 것을 의미한다.
그러나, 비자발적 DVFS(involuntary DVFS 또는 involuntary DVFS invocation) 또는 IID(involuntary invoking DVFS)는, 스케줄된 시점에서 DVFS 대상 하드웨어의 주파수가 최소 주파수이고 CPU의 상태가 아이들 상태일 때, 상기 스케줄된 시점에서 상기 DVFS 대상 하드웨어에 대한 DVFS를 실행하지 않는 것을 의미한다.
이때, 상기 스케줄된 시점에 대한 정보는 상기 CPU에 의해 타이머에 설정되지 않으므로, 상기 스케줄된 시점에서 상기 타이머에 접속된 인터럽트 컨트롤러는 인터럽트를 발생하지 않는다. 즉, 비자발적 DVFS 또는 IID에서, 상기 스케줄된 시점에서 DVFS를 위해 CPU는 강제적으로 웨이크업되지 않는다.
따라서, 상기 스케줄된 시점 이후의 제1시점에서 발생한 제1인터럽트에 의해 웨이크업된 CPU는 상기 제1시점에서 상기 스케줄된 시점에서 실행하지 못한 DVFS의 실행을 제어할 수 있다. 그러나, 상기 스케줄된 시점 이전의 제2시점에서 발생한 제1인터럽트에 의해 웨이크업된 CPU는 상기 스케줄된 시점이 될 때까지 DVFS의 실행을 연기할 수 있다. 상기 제1인터럽트는 자발적 DVFS를 목적으로 하는 인터럽트를 제외한 인터럽트를 의미할 수 있다.
본 발명의 실시 예에 따른 DVFS는 동적으로 주파수를 조절하는 제1하드웨어, 동적으로 작동 전압을 조절하는 제2하드웨어, 상기 제1하드웨어와 상기 제2하드웨어를 제어하는 제3하드웨어, 및 DVFS 방법을 결정하는 제어 모듈에 의해 실행될 수 있다. 상기 DVFS 방법은 자발적 DVFS(또는 VID)와 비자발적 DVFS(또는 IID)를 포함하고, 상기 제어 모듈은 CPU에 의해 실행될 수 있다.
본 발명의 실시 예에 따라 상기 제1하드웨어는 클락 관리 유닛으로 구현될 수 있고, 상기 제2하드웨어는 전력 관리 집적 회로로 구현될 수 있고, 상기 제3하드웨어는 CPU로 구현될 수 있고, 상기 제어 모듈은 DVFS 소프트웨어로 구현될 수 있다. 그러나, 상기 제어 모듈은 하드웨어로 구현될 수도 있다.
도 1은 본 발명의 실시 예에 따른 시스템의 블록도를 나타낸다.
도 1을 참조하면, 시스템(100)은 시스템 온 칩(system on chip(SoC); 200), 전력 관리 집적 회로(power management IC(PMIC); 300), 및 외부 메모리(400)를 포함할 수 있다.
시스템(100)은 휴대용 전자 장치로 구현될 수 있다. 상기 휴대용 전자 장치는 스마트폰(smart phone), 태블릿(tablet) PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 모바일 인터넷 장치(mobile internet device(MID), 웨어러블 장치(wearable device), 사물 인터넷(internet of things(IoT)) 장치, 또는 만물 인터넷(internet of everything (IoE)) 장치로 구현될 수 있다.
SoC(200)는 애플리케이션 프로세서(application processor(AP)) 또는 모바일 AP로 구현될 수 있다.
SoC(200)는 메모리 인터페이스(210), 제1성능 모니터링 유닛(performance monitoring unit(PPMU); 212), 버스를 포함하는 내부 로직(220), 제2PPMU(222), CPU(230), 내부 메모리(231), 하드웨어 모듈(240), 인터럽트 컨트롤러(250), 전력 관리 유닛(power management unit(PMU); 260), 및 클락 관리 유닛(clock management unit(CMU); 270)을 포함할 수 있다.
메모리 인터페이스(210)는 SoC(200)와 외부 메모리(400) 사이에서 주고받는 데이터의 전송을 제어(또는 인터페이스)할 수 있다. 예컨대, 메모리 인터페이스 (210)는 DVFS 대상 하드웨어가 될 수 있다.
예컨대, 메모리 인터페이스(210)는 제1클락(CLK1)과 제1작동 전압(PW1)을 이용하여 작동할 수 있다. DVFS가 메모리 인터페이스(210)에 대해 실행될 때, 제1클락(CLK1)의 주파수와 제1작동 전압(PW1)의 레벨은 동적으로 조절될 수 있다.
제1PPMU(212)는 메모리 인터페이스(210)의 성능을 모니터(monitor)할 수 있다. 예컨대, 제1PPMU(212)는 메모리 인터페이스(210)로 공급되는 제1클락(CLK1)의 주파수, 메모리 인터페이스(210)의 데이터 트래픽(data traffic), 및/또는 메모리 인터페이스(210)의 사용률(usage)을 모니터할 수 있다.
여기서, 데이터 트래픽은 데이터를 전송하기 위해 실제로 사용된 제1클락 (CLK1)의 주파수(예컨대, 60MHz)와 제1클락(CLK1)의 주파수(예컨대, 100MHz)의 비율을 의미할 수 있다. 이 경우, 데이터 트래픽은 60%이다. 상기 데이터 트래픽은 클락 카운트(clock count)로 불릴 수도 있다.
메모리 인터페이스(210)의 사용률은 일정 시간 동안 메모리 인터페이스(210)가 사용된 시간의 비율을 의미한다.
CPU(230)는 모니터 결과에 해당하는 제1모니터 신호(MT1)를 읽어갈 수 있다. 이때, 제1PPMU(212)는 CPU(230)의 관점에서 슬레이브(slave) 장치로 작동할 수 있다.
예컨대, 제1모니터 신호(MT1)는 제1클락(CLK1)의 주파수(예컨대, 기본 주파수)와 데이터 트래픽을 포함할 수 있다. 예컨대, CPU(230)는, 제1모니터 신호(MT1)에 포함된 제1클락(CLK1)의 주파수와 데이터 트래픽을 이용하여, 현재 시점에서의 주파수와 다음 시점(예컨대, 스케줄된 시점)에서의 다음 주파수를 결정할 수 있다. 상기 기본 주파수는 CMU(270)로부터 메모리 인터페이스(210)로 공급되는 제1클락 (CLK1)의 주파수를 의미할 수 있다.
내부 로직(internal logic; 220)은 버스를 포함하는 내부 로직 회로를 의미할 수 있다. 내부 로직(220)은 DVFS 대상 하드웨어가 될 수 있다. 예컨대, 내부 로직(220)은 제2클락(CLK2)과 제2작동 전압(PW2)을 이용하여 작동할 수 있다. DVFS가 내부 로직(220)에 대해 실행될 때, 제2클락(CLK2)의 주파수와 제2작동 전압(PW2)의 레벨이 동적으로 조절될 수 있다.
제2PPMU(222)는 내부 로직(220)의 성능을 모니터할 수 있다. 예컨대, 제2PPMU(222)는 내부 로직(220)으로 공급되는 제2클락(CLK2)의 주파수, 내부 로직 (220)의 데이터 트래픽, 및/또는 내부 로직(220)의 사용률을 모니터할 수 있다.
CPU(230)는 모니터 결과에 해당하는 제2모니터 신호(MT2)를 읽어갈 수 있다. 이때, 제2PPMU(222)는 CPU(230)의 관점에서 슬레이브 장치로 작동할 수 있다.
예컨대, 제2모니터 신호(MT2)는 제2클락(CLK2)의 주파수(예컨대, 기본 주파수)와 데이터 트래픽을 포함할 수 있다. CPU(230)는, 제2모니터 신호(MT2)에 포함된 제2클락(CLK2)의 주파수와 데이터 트래픽을 이용하여, 현재 시점에서의 주파수와 다음 시점(예컨대, 스케줄된 시점)에서의 다음 주파수를 결정할 수 있다.
상기 기본 주파수는 CMU(270)로부터 내부 로직(220)으로 공급되는 제2클락 (CLK2)의 주파수를 의미할 수 있다.
DVFS가 실행될 때, 런 상태의 CPU(230)는 내부 메모리(231)에 저장된 DVFS 소프트웨어(SW)를 읽어오고, 제1모니터 신호(MT1)와 제2모니터 신호(MT2)를 읽어온 후, 이들(SW, MT1, 및 MT2)에 기초하여 제1제어 신호(CTRL1)와 제2제어 신호(CTRL2)를 생성하고, 제1제어 신호(CTRL1)를 CMU(270)으로 전송하고, 제2제어 신호(CTRL2)를 PMIC(300)로 전송할 수 있다.
CMU(270)는 제1제어 신호(CTRL1)에 응답하여 DVFS를 위한 해당 클락(예컨대, CLK1 및/또는 CLK2)의 주파수를 증가시키거나 감소시킬 수 있다. PMIC(300)는 제2제어 신호(CTRL2)에 응답하여 DVFS를 위한 해당 작동 전압(예컨대, PW1 및/또는 PW2)의 레벨을 증가시키거나 감소시킬 수 있다.
CPU(230)는 CMU(270)로부터 출력된 제3클락(CLK3)을 이용하여 작동할 수 있다.
자발적 DVFS 또는 VID의 실행을 위해, CPU(230)는 상기 자발적 DVFS 또는 상기 VID를 위한 스케줄 시점을 계산하고 계산된 스케줄 시점을 타이머(241)에 설정할 수 있다.
그러나, 비자발적 DVFS 또는 IID의 실행을 위해, CPU(230)는 상기 비자발적 DVFS 또는 상기 IID를 위한 스케줄 시점을 계산하고 계산된 스케줄 시점을 타이머 (241)에 설정하지 않는다. 예컨대, 상기 스케줄 시점(또는 스케줄된 시점 정보)은 DVFS 소프트웨어(SW)에 저장될 수 있다.
내부 메모리(231)는 DVFS에 관련된 소프트웨어(SW, 이하 'DVFS 소프트웨어'라 한다)를 저장할 수 있다. 예컨대, 내부 메모리(231)는 캐시(cache) 메모리로 구현될 수 있다.
예컨대, CPU(230)에 의해 실행되는 DVFS 소프트웨어(SW)는 제1모니터 신호 (MT1)에 기초하여 계산된 제1클락(CLK1)의 주파수가 최소 주파수인지, 제2모니터 신호(MT2)에 기초하여 계산된 제2클락(CLK2)의 주파수가 최소 주파수인지, 및/또는 CPU(230)의 상태가 아이들(idle) 상태인지 런(run) 상태인지를 판단할 수 있다.
본 명세서에 기재된 최소 주파수는 SoC(200)로부터 제공되는 이산적인 (discrete) 주파수들 중에서 최소 주파수(이하, 제1최소 주파수)와 소프트웨어(예컨대, DVFS 소프트웨어(SW))에 의해 미리 결정된 최소 주파수(이하, 제2최소 주파수) 중에서 어느 하나를 의미할 수 있다. 예컨대, 상기 최소 주파수는 상기 제1최소 주파수와 상기 제2최소 주파수 중에서 높은 주파수를 의미할 수 있으나 이에 한정되는 것은 아니다.
하드웨어 모듈(240)은 복수의 타이머들(241)을 포함할 수 있다. 하드웨어 모듈(240)은 CMU(270)로부터 출력된 제4클락(CLK4)을 이용하여 작동할 수 있다. 예컨대, 복수의 타이머들(241) 각각은 하드웨어로 구현될 수 있다. 복수의 타이머들 (241) 각각은 운영 체제(operating system(OS))에 대한 스케줄링(scheduling) 및/또는 스케줄된 시점에서 인터럽트에 관련된 출력 신호를 생성하기 위해 사용될 수 있다.
인터럽트 컨트롤러(250)는 스케줄된 각 시점에서 각 타이머(241)로부터 출력된 출력 신호에 기초하여 인터럽트를 생성할 수 있다.
PMU(260)는, 인터럽트 컨트롤러(250)의 제어에 따라, CPU(230)의 상태를 제어할 수 있는 전력 공급을 제어할 수 있다. 예컨대, PMU(260)는, 인터럽트 컨트롤러(250)의 제어에 따라, CPU(230)의 상태를 아이들 상태로부터 런 상태로 변경하거나 상기 런 상태로부터 상기 아이들 상태로 변경할 수 있는 전력 공급을 제어할 수 있다. 예컨대, 상기 아이들 상태는 저전력 모드를 포함할 수 있다.
아이들 상태의 CPU(230)는 인터럽트 컨트롤러(250)로부터 출력된 인터럽트에 기초하여 웨이크업될 수 있다.
DVFS가 실행될 때, CMU(270)는, CPU(230)로부터 출력된 제1제어 신호(CTRL1)에 응답하여, 각 구성 요소(210, 220, 230, 및 240)로 공급될 각 클락(CLK1, CLK2, CLK3, 및 CLK4)의 주파수를 증가시키거나 감소시킬 수 있다. 예컨대, DVFS가 실행될 때, CMU(270)는 메모리 인터페이스(210)로 공급되는 제1클락(CLK1)의 주파수 및/또는 내부 로직(220)으로 공급되는 제2클락(CLK2)의 주파수를 증가시키거나 감소시킬 수 있다.
DVFS가 실행될 때, PMIC(300)는, CPU(230)로부터 출력된 제2제어 신호 (CTRL2)에 응답하여, 각 구성 요소(210, 220, 230, 및 240)로 공급될 작동 전압을 증가시키거나 감소시킬 수 있다. 예컨대, DVFS가 실행될 때, PMIC(300)는 메모리 인터페이스(210)로 공급되는 제1작동 전압(PW1) 및/또는 내부 로직(220)으로 공급되는 제2작동 전압(PW2)을 증가시키거나 감소시킬 수 있다.
본 명세서에서 설명될 DVFS는 넌-CPU IP(non-CPU intellectual property)에 대해 실행될 수 있다. 상기 넌-CPU IP는 CPU(230)를 제외한 IP를 의미하는 것으로서, 상기 IP는 유일한 특성들(unique features)을 갖는 하드웨어 모듈(hardware module)을 의미할 수 있다.
본 명세서에서는 설명의 편의를 위해 DVFS 대상 하드웨어, 즉 넌-CPU IP로서 메모리 인터페이스(210)와 버스를 갖는 내부 로직(internal logic with bus; 220)이 도시되어 있으나, DVFS 대상 하드웨어, 즉 넌-CPU IP는 그래픽스 프로세싱 유닛 (graphics processing unit(GPU)), 이미지 신호 프로세서(image signal processor), 또는 디스플레이 프로세서(display processor) 등을 의미할 수 있다.
외부 메모리(400)는 버스(201)와 메모리 인터페이스(210)를 통해 데이터를 주거나 받을 수 있다. 외부 메모리(400)는 DVFS 소프트웨어(SW)를 저장할 수 있다.
메모리 인터페이스(210)는 외부 메모리(400)로부터 출력된 DVFS 소프트웨어 (SW)를 내부 메모리(231)에 전송할 수 있고 내부 메모리(231)로부터 출력된 DVFS 소프트웨어(SW)를 외부 메모리(400)로 전송할 수 있다.
외부 메모리(400)는 휘발성 메모리 또는 불휘발성 메모리로 구현될 수 있다. 예컨대, 상기 휘발성 메모리는 DRAM 또는 SRAM으로 구현될 수 있다. 상기 불휘발성 메모리는 플래시-기반 메모리, PRAM, 또는 MRAM으로 구현될 수 있다.
도 2는 도 1에 도시된 시스템에서 수행되는 DVFS의 타이밍 도를 나타내고, 도 3은 도 1에 도시된 시스템의 작동을 설명하기 위한 플로우차트이다.
도 1부터 도 3을 참조하면, 본 발명의 실시 예에 따른 DVFS는 상술한 넌-CPU IP에 적용될 수 있으므로, 이하에서는 설명의 편의를 위해, DVFS 대상 하드웨어가 메모리 인터페이스(210)라고 가정한다.
제1구간(VID1)의 각 스케줄된 시점(T1-T5)에서 자발적 DVFS 또는 VID가 실행된다.
초기 시점(T0)에서, CPU(230)의 상태가 런 상태(RUN)일 때, 초기 주파수(F5)를 갖는 제1클락(CLK1)이 메모리 인터페이스(210)로 공급되고, 초기 주파수(F5)에 해당하는 레벨을 갖는 제1작동 전압(PW1)이 메모리 인터페이스(210)로 공급된다. 따라서, 메모리 인터페이스(210)는 제1클락(CLK1)과 제1작동 전압(PW1)을 이용하여 작동할 수 있다.
CPU(230)는 자발적 DVFS를 위해 주기(예컨대, 다음 시점(T1))를 스케줄하고, 스케줄된 시점(T1)을 타이머(241)에 설정할 수 있다. 예컨대, CPU(230)는 스케줄된 시점(T1) 및/또는 스케줄된 시점(T1)에서 자발적 DVFS가 실행되어야 함을 지시하는 제1정보를 DVFS 소프트웨어(SW)에 프로그램할 수 있다. 예컨대, 상기 제1정보는 내부 변수로서 설정될 수 있다.
예컨대, 런 상태(RUN)의 CPU(230)의 상태가 아이들 상태(IDLE)로 진입하기 전에, 상기 제1정보를 포함하는 DVFS 소프트웨어(SW)는 CPU(230)의 제어에 따라 내부 메모리(231)에 저장될 수 있다.
스케줄된 시점(T1)에서 인터럽트 컨트롤러(250)는 타이머(241)로부터 출력된 출력 신호에 응답하여 인터럽트를 생성한다. 이때 아이들 상태(IDLE)의 CPU(230)는 상기 인터럽트에 응답하여 웨이크업 되고, 웨이크업 된 CPU(230)는 내부 메모리 (231)에 저장된 DVFS 소프트웨어(SW)를 읽어오고, 제1PPMU(212)로부터 제1모니터 정보(MT1)를 읽어온다. 예컨대, 스케줄된 시점(T1)에서 CPU(230)는 DVFS 소프트웨어(SW)에 포함된 제1정보를 참조하여 자발적 DVFS를 실행할 수 있다.
예컨대, 스케줄된 시점(T1)에서 CPU(230)의 상태가 아이들 상태(IDLE)일 때, CPU(230)는 인터럽트에 응답하여 웨이크업 되고, 웨이크업된 CPU(230)는 제1모니터 정보(MT1)에 기초하여 메모리 인터페이스(210)의 현재 주파수(F5)가 최소 주파수 (Fmin)인지를 판단한다(S110).
그러나, CPU(230)의 상태가 런 상태(RUN)일 때, CPU(230)는 인터럽트에 응답하여 제1모니터 정보(MT1)를 제1PPMU(212)로부터 읽어오고 제1모니터 정보(MT1)에 기초하여 메모리 인터페이스(210)의 현재 주파수(F5)가 최소 주파수(Fmin)인지를 판단한다(S110).
웨이크업된 CPU(230)는 현재 시점이 스케줄된 시점(T1)인지를 판단할 수 있다(S112). 예컨대, 웨이크업된 CPU(230)는 제1정보에 기초하여 상기 현재 시점이 CPU(230)가 런(run)할 시점인지를 판단할 수 있다(S112). 판단의 결과, 상기 현재 시점이 스케줄된 시점(T1) 이전일 때, CPU(230)는 스케줄된 시점(T1)이 될 때까지 대기한다(S114). 즉, 스케줄된 시점(T1)이 될 때 자발적 DVFS는 보류된다.
스케줄된 시점(T1)에서의 판단 결과, 메모리 인터페이스(210)의 현재 주파수 (F5)가 최소 주파수(Fmin)가 아니므로, 스케줄된 시점(T1), 즉 런(run) 시점에서 작동(running) 중인 CPU(230)는 CMU(270)로 제1제어 신호(CTRL1)를 출력하고 PMIC (300)로 제2제어 신호(CTRL2)를 출력한다(S112).
따라서, CMU(270)는 제1클락(CLK1)의 주파수를 F5로부터 F3로 감소시키고, PMIC(300)는 제1작동 전압(PW1)의 레벨을 상기 F3에 해당하는 레벨로 감소시킨다. 즉, 메모리 인터페이스(210)에 대한 자발적 DVFS가 실행된다(S116).
자발적 DVFS(S116)의 전제 조건으로서 CPU(230)의 상태는 런 상태(RUN)이어야 한다. 따라서, CPU(230)의 상태가 아이들 상태(IDLE)일 때, CPU(230)는 인터럽트에 응답하여 웨이크업되고 CPU(230)의 상태는 런 상태(RUN)로 변경된다.
CPU(230)는 주파수들(F5와 F3)에 기초하여 자발적 DVFS를 위해 다음 DVFS 시점(T2)을 스케줄하고, 다음 DVFS 시점(T2)을 타이머(241)에 설정한다(S118). 예컨대, CPU(230)는 스케줄된 시점(T2) 및/또는 스케줄된 시점(T2)에서 자발적 DVFS가 실행되어야 함을 지시하는 제1정보를 DVFS 소프트웨어(SW)에 프로그램할 수 있다.
예컨대, F5는 현재 시점(T1)에서의 현재 주파수를 의미할 수 있고, F3는 다음 시점(또는 스케줄된 시점(T2))에서의 다음 주파수를 의미할 수 있다.
스케줄된 시점(T2)에서 인터럽트 컨트롤러(250)는 타이머(241)로부터 출력된 신호에 응답하여 인터럽트를 생성한다. CPU(230)는 상기 인터럽트에 응답하여 내부 메모리(231)에 저장된 DVFS 소프트웨어(SW)를 읽어오고, 제1PPMU(212)로부터 제1모니터 정보(MT1)를 읽어온다.
예컨대, CPU(230)의 상태가 아이들 상태(IDLE)일 때, CPU(230)는 인터럽트에 응답하여 웨이크업 되고, 웨이크업된 CPU(230)는 제1모니터 정보(MT1)에 기초하여 메모리 인터페이스(210)의 현재 주파수(F3)가 최소 주파수(Fmin)인지를 판단한다 (S110).
스케줄된 시점(T2)에서의 판단의 결과, 메모리 인터페이스(210)의 현재 주파수(F3)가 최소 주파수(Fmin)가 아니므로, 스케줄된 시점(T2), 즉 런(run) 시점에서 작동(running) 중인 CPU(230)는 CMU(270)로 제1제어 신호(CTRL1)를 출력하고 PMIC (300)로 제2제어 신호(CTRL2)를 출력한다(S112).
따라서, CMU(270)는 제1클락(CLK1)의 주파수를 F3로부터 F1로 감소시키고 PMIC(300)는 제1작동 전압(PW1)의 레벨을 상기 F1에 해당하는 레벨로 감소시킨다. 즉, 메모리 인터페이스(210)에 대한 자발적 DVFS가 실행된다(S116).
CPU(230)는 주파수들(F3와 F1)에 기초하여 자발적 DVFS를 위해 다음 DVFS 시점(T3)을 스케줄하고, 다음 DVFS 시점(T3)을 타이머(241)에 설정한다(S118). 예컨대, CPU(230)는 스케줄된 시점(T3) 및/또는 스케줄된 시점(T3)에서 자발적 DVFS가 실행되어야 함을 지시하는 제1정보를 DVFS 소프트웨어(SW)에 프로그램할 수 있다.
예컨대, F3는 현재 시점(T2)에서의 현재 주파수를 의미할 수 있고, F1는 다음 시점(또는 스케줄된 시점(T3))에서의 다음 주파수를 의미할 수 있다.
스케줄된 시점(T3)에서 인터럽트 컨트롤러(250)는 타이머(241)로부터 출력된 신호에 응답하여 인터럽트를 생성한다.
스케줄된 시점(T3)에서, CPU(230)의 상태가 런 상태(RUN)이므로, CPU(230)는 상기 인터럽트에 응답하여 제1모니터 정보(MT1)를 제1PPMU(212)로부터 읽어오고 제1모니터 정보(MT1)에 기초하여 메모리 인터페이스(210)의 현재 주파수(F1)가 최소 주파수(Fmin)인지를 판단한다(S110).
스케줄된 시점(T3)에서의 판단 결과, 메모리 인터페이스(210)의 현재 주파수 (F1)가 최소 주파수(Fmin)가 아니므로, 스케줄된 시점(T3), 즉 런(run) 시점에서 작동(running) 중인 CPU(230)는 CMU(270)로 제1제어 신호(CTRL1)를 출력하고 PMIC (300)로 제2제어 신호(CTRL2)를 출력한다(S112).
따라서, PMIC(300)는 제1작동 전압(PW1)의 레벨을 증가시키고 CMU(270)는 제1클락(CLK1)의 주파수를 F1로부터 Fmax로 증가시킨다. 즉, 메모리 인터페이스(210)에 대한 자발적 DVFS가 실행된다(S116).
CPU(230)는 주파수들(F1과 Fmax)에 기초하여 자발적 DVFS를 위해 다음 DVFS 시점(T4)을 스케줄하고, 다음 DVFS 시점(T4)을 타이머(241)에 설정한다(S118). 예컨대, CPU(230)는 스케줄된 시점(T4) 및/또는 스케줄된 시점(T4)에서 자발적 DVFS가 실행되어야 함을 지시하는 제1정보를 DVFS 소프트웨어(SW)에 프로그램할 수 있다.
예컨대, F1은 현재 시점(T3)에서의 현재 주파수를 의미할 수 있고, Fmax는 다음 시점(또는 스케줄된 시점(T3))에서의 다음 주파수를 의미할 수 있다.
스케줄된 시점(T4)에서 인터럽트 컨트롤러(250)는 타이머(241)로부터 출력된 신호에 응답하여 인터럽트를 생성한다.
스케줄된 시점(T4)에서, CPU(230)의 상태가 런 상태(RUN)이므로, CPU(230)는 상기 인터럽트에 응답하여 제1모니터 정보(MT1)를 제1PPMU(212)로부터 읽어오고 제1모니터 정보(MT1)에 기초하여 메모리 인터페이스(210)의 현재 주파수(Fmax)가 최소 주파수(Fmin)인지를 판단한다(S110).
스케줄된 시점(T4)에서의 판단 결과, 메모리 인터페이스(210)의 현재 주파수 (Fmax)가 최소 주파수(Fmin)가 아니므로, 스케줄된 시점(T4), 즉 런(run) 시점에서 작동 중인 CPU(230)는 CMU(270)로 제1제어 신호(CTRL1)를 출력하고 PMIC(300)로 제2제어 신호(CTRL2)를 출력한다(S112).
따라서, CMU(270)는 제1클락(CLK1)의 주파수를 Fmax로부터 F2로 감소시키고 PMIC(300)는 제1작동 전압(PW1)의 감소시킨다. 즉, 메모리 인터페이스(210)에 대한 자발적 DVFS가 실행된다(S116).
CPU(230)는 주파수들(Fmax와 F2)에 기초하여 자발적 DVFS를 위해 다음 DVFS 시점(T5)을 스케줄하고, 다음 DVFS 시점(T5)을 타이머(241)에 설정한다(S118). 예컨대, CPU(230)는 스케줄된 시점(T5) 및/또는 스케줄된 시점(T5)에서 자발적 DVFS가 실행되어야 함을 지시하는 제1정보를 DVFS 소프트웨어(SW)에 프로그램할 수 있다.
스케줄된 시점(T5)에서 인터럽트 컨트롤러(250)는 타이머(241)로부터 출력된 신호에 응답하여 인터럽트를 생성한다.
스케줄된 시점(T5)에서, CPU(230)의 상태가 런 상태(RUN)이므로, CPU(230)는 상기 인터럽트에 응답하여 제1모니터 정보(MT1)를 제1PPMU(212)로부터 읽어오고 제1모니터 정보(MT1)에 기초하여 메모리 인터페이스(210)의 현재 주파수(F2)가 최소 주파수(Fmin)인지를 판단한다(S110).
판단 결과, 메모리 인터페이스(210)의 현재 주파수(F2)가 최소 주파수(Fmin)가 아니므로, 스케줄된 시점(T5), 즉 런(run) 시점에서 작동(running) 중인 CPU (230)는 CMU(270)로 제1제어 신호(CTRL1)를 출력하고 PMIC(300)로 제2제어 신호 (CTRL2)를 출력한다(S112).
따라서, CMU(270)는 제1클락(CLK1)의 주파수를 F2로부터 Fmin로 감소시키고 PMIC(300)는 제1작동 전압(PW1)의 감소시킨다. 즉, 메모리 인터페이스(210)에 대한 자발적 DVFS가 실행된다(S116).
CPU(230)는 주파수들(F2와 Fmin)에 기초하여 비자발적 DVFS를 위해 다음 DVFS 시점(T6=TB)을 스케줄하고, 다음 DVFS 시점(T6)을 타이머(241)에 설정하지 않는다(S118). 예컨대, CPU(230)는 스케줄된 시점(T6) 및/또는 스케줄된 시점(T6)에서 비자발적 DVFS가 실행되어야 함을 지시하는 제2정보를 DVFS 소프트웨어(SW)에 프로그램할 수 있다. 예컨대, 상기 제2정보는 내부 변수로서 설정될 수 있다.
예컨대, 런 상태(RUN)의 CPU(230)의 상태가 아이들 상태(IDLE)로 진입하기 전에, 상기 제2정보를 포함하는 DVFS 소프트웨어(SW)는 내부 메모리(231)에 저장될 수 있다.
예컨대, CPU(230)는 DVFS 소프트웨어(SW)에 포함된 제1정보 또는 제2정보에 기초하여 DVFS의 실행 시점 및/또는 DVFS 방법을 판단할 수 있다.
상술한 바와 같이, 현재 시점(T1-T4)에서의 현재 주파수가 최소 주파수 (Fmin)가 아니고 스케줄된 시점(T2-T5)에서의 다음 주파수가 최소 주파수(Fmin)가 아닐 때, 시스템(100)은 현재 시점(T1-T4)에서 자발적 DVFS 또는 VID를 실행하고, 스케줄된 시점(T2-T5)에서 수행될 DVFS가 상기 자발적 DVFS 또는 상기 VID임을 스케줄하고, 스케줄된 시점(T2-T5)을 타이머(241)에 설정할 수 있다. 예컨대, 스케줄된 시점은 현재 시점부터 100ms와 경과 시간으로 정의될 수 있다.
제2구간(IID2)의 각 시점(T6-T13)에서 비자발적 DVFS 또는 IID가 실행된다.
각 시점(T6-T13)에서 타이머(241)는 DVFS에 관련된 출력 신호를 출력하지 않으므로, 각 시점(T6-T12)에서 인터럽트 컨트롤러(250)는 인터럽트 신호를 출력하지 않는다. 각 시점(T6-T13)에서 CPU(230)의 상태가 아이들 상태(IDLE)이므로, 각 시점(T6-T12)에서 DVFS는 실행되지 않는다.
그러나, 시점(T13=TB')에서, 예컨대, 스케줄되지 않은 시점에서, 인터럽트 컨트롤러(250)가 자발적 DVFS를 위한 인터럽트 이외에 제1인터럽트를 발생하면, CPU(230)는 상기 제1인터럽트에 응답하여 웨이크업되고, 웨이크업된 CPU(230)는 내부 메모리(231)로 DVFS 소프트웨어(SW)를 읽어온다. 이때, DVFS 소프트웨어(SW)에는 스케줄된 시점(T6) 및/또는 스케줄된 시점(T6)에서 비자발적 DVFS가 실행되어야 함을 지시하는 제2정보가 포함되어 있으므로, CPU(230)는 상기 제2정보에 기초하여 현재 시점(T13)에서 실행할 DVFS 방법과, 현재 시점(T13)이 스케줄된 시점(T6) 이전인지 이후인지를 판단할 수 있다.
제1인터럽트에 의해 웨이크업된 CPU(230)는 제1PPMU(212)로부터 제1모니터 정보(MT1)를 읽어오고 제1모니터 정보(MT1)에 기초하여 메모리 인터페이스(210)의 현재 주파수(Fmin)가 최소 주파수(Fmin)인지를 판단한다(S110).
판단 결과, 메모리 인터페이스(210)의 현재 주파수(Fmin)가 최소 주파수 (Fmin)이고(S110), CPU(230)의 상태가 런 상태(RUN)일 때(S120), CPU(230)는 인터럽트 시점(T13)이 스케줄된 시점(T6) 이후인지를 판단한다(S124).
CPU(230)의 상태가 런 상태(RUN)이고(S120), 인터럽트 시점(T13)이 스케줄된 시점(T6) 이후이므로(S124), CPU(230)는 비자발적 DVFS를 제어하기 위해 CMU(270)로 제1제어 신호(CTRL1)를 출력하고 PMIC(300)로 제2제어 신호(CTRL2)를 출력한다.
따라서, PMIC(300)는 제1작동 전압(PW1)의 증가시키고 CMU(270)는 제1클락 (CLK1)의 주파수를 Fmin으로부터 F4로 증가시킨다. 즉, 메모리 인터페이스(210)에 대한 비자발적 DVFS가 실행된다(S116).
만일, 시점(T13)에서 CPU(230)의 상태가 런 상태(RUN)가 아닐 때(S120), CPU(230)의 상태가 런 상태(RUN)로 될 때까지 기다린다(S122). 상술한 바와 같이, CPU(230)의 상태는 제1인터럽트에 의해 런 상태로 변경될 수 있다.
도 2에 도시된 바와 무관하게 CPU(230)의 상태가 런 상태(RUN)이고 시점 (T13)이 스케줄된 시점(T6) 이전이라고 가정하면, CPU(230)는 시점(T13)이 스케줄된 시점(T6)이 될 때까지 DVFS를 실행하지 않는다(S126). 그러나, 스케줄된 시점 (T6)이전에 CPU(230)가 아이들 상태(IDLE)로 진입하면(S127), S120이 수행된다.
또한, CPU(230)의 상태가 런 상태(RUN)가 아니라면, CPU(230)의 상태가 런 상태(RUN)로 될 때까지, 비자발적 DVFS의 실행은 보류된다. 예컨대, 각 시점(T7-T12)이 스케줄된 시점(T6) 이후일지라도, CPU(230)의 상태가 런 상태(RUN)가 아니므로, 각 시점(T7-T12)에서 메모리 인터페이스(210)에 대한 DVFS는 실행되지 않는다.
예컨대, Fmin은 현재 시점(T13)에서의 현재 주파수를 의미할 수 있고, F4는 다음 시점(또는 스케줄된 시점(T14))에서의 다음 주파수를 의미할 수 있다. 상술한 바와 같이 현재 주파수와 다음 주파수는 제1모니터 정보(MT1)에 기초하여 결정될 수 있다.
제2구간(IID2)의 각 시점(T6-T13)에서, 메모리 인터페이스(210)의 현재 주파수는 최소 주파수(Fmin)이고 CPU(230)의 상태는 아이들 상태(IDLE)이다. 따라서, 각 시점(T6-T12)에서 DVFS는 스킵(skip) 되고, 시점(T6)에서 실행될 DVFS는 시점 (T13)까지 연기된다. 즉, 제2구간(IID2)에서는 비자발적 DVFS 또는 IID가 실행된다.
제3구간(VID3)의 시점(T14)에서 자발적 DVFS가 실행된다.
시점(T13)에서 비자발적 DVFS가 실행된 후, CPU(230)는 주파수들(Fmin과 F4)에 기초하여 자발적 DVFS를 위해 다음 DVFS 시점(T14)을 스케줄하고, 다음 DVFS 시점(T14)을 타이머(241)에 설정한다(S118). 예컨대, CPU(230)는 스케줄된 시점(T14) 및/또는 스케줄된 시점(T14)에서 자발적 DVFS가 실행되어야 함을 지시하는 제1정보를 DVFS 소프트웨어(SW)에 프로그램할 수 있다.
스케줄된 시점(T14)에서 인터럽트 컨트롤러(250)는 타이머(241)로부터 출력된 신호에 응답하여 인터럽트를 생성한다.
스케줄된 시점(T14)에서, CPU(230)의 상태가 런 상태(RUN)이므로, CPU(230)는 상기 인터럽트에 응답하여 제1모니터 정보(MT1)를 제1PPMU(212)로부터 읽어오고 제1모니터 정보(MT1)에 기초하여 메모리 인터페이스(210)의 현재 주파수(F4)가 최소 주파수(Fmin)인지를 판단한다(S110).
판단 결과, 메모리 인터페이스(210)의 현재 주파수(F4)가 최소 주파수(Fmin)가 아니므로(S110), 스케줄된 시점(T14)에서 작동중인 CPU(230)는 CMU(270)로 제1제어 신호(CTRL1)를 출력하고 PMIC(300)로 제2제어 신호(CTRL2)를 출력한다(S112).
따라서, CMU(270)는 제1클락(CLK1)의 주파수를 F4로부터 Fmin로 감소시키고 PMIC(300)는 제1작동 전압(PW1)을 감소시킨다. 즉, 스케줄된 시점(T14)에서, 메모리 인터페이스(210)에 대한 자발적 DVFS가 실행된다(S116).
CPU(230)는 주파수들(F4와 Fmin)에 기초하여 비자발적 DVFS를 위해 다음 DVFS 시점(T15=TC)을 스케줄하고, 다음 DVFS 시점(T15)을 타이머(241)에 설정하지 않는다(S118). 예컨대, CPU(230)는 스케줄된 시점(T15) 및/또는 스케줄된 시점 (T15)에서 비자발적 DVFS가 실행되어야 함을 지시하는 제2정보를 DVFS 소프트웨어 (SW)에 프로그램할 수 있다.
각 시점(T15-T20)에서 타이머(241)는 출력 신호를 출력하지 않으므로, 각 시점(T15-T19)에서 인터럽트 컨트롤러(250)는 인터럽트 신호를 생성하지 않는다. 각 시점(T15-T19)에서 CPU(230)의 상태가 아이들 상태(IDLE)이므로, 각 시점(T15-T19)에서 DVFS는 실행되지 않는다.
제4구간(IID4)의 각 시점(T15-T20)에서 메모리 인터페이스(210)의 현재 주파수는 최소 주파수(Fmin)이고 CPU(230)의 상태는 아이들 상태(IDLE)이다(S120). 따라서, 각 시점(T15-T19)에서 DVFS는 스킵(skip) 되고 시점(T15)에서 실행될 DVFS는 시점(T20=TC')까지 연기될 수 있다. 즉, 제4구간(IID4)에서는 비자발적 DVFS 또는 IID가 실행될 수 있다.
그러나, 시점(T20)에서 인터럽트 컨트롤러(250)가 DVFS를 위한 인터럽트 이외의 제1인터럽트를 발생하면, CPU(230)는 상기 제1인터럽트에 응답하여 웨이크업되고(S120), 웨이크업된 CPU(230)는 내부 메모리(231)로 DVFS 소프트웨어(SW)를 읽어온다. 이때, DVFS 소프트웨어(SW)에는 스케줄된 시점(T15) 및/또는 스케줄된 시점(T15)에서 비자발적 DVFS가 실행되어야 함을 지시하는 제2정보가 포함되어 있으므로, CPU(230)는 현재 시점(T20)에서 DVFS 방법과, 현재 시점(T20)이 스케줄된 시점(T15) 이후 인지를 판단할 수 있다.
즉, 현재 시점(T20)에서 제1인터럽트에 의해 웨이크업된 CPU(230)의 상태는 런 상태(RUN)이고(S120), 현재 시점(T20)이 스케줄된 시점(T15) 이후이므로(S124), 시스템(100)은 비자발적 DVFS 또는 IID를 실행할 수 있다(S116).
제1구간(VID1)의 각 시점(T1-T5)을 참조하여 설명한 바와 같이, 제5구간 (VID5)의 스케줄된 각 시점(T21-T25)에서 자발적 DVFS 또는 VID가 실행된다. 제2구간(IID2)의 각 시점(T6-T12)을 참조하여 설명한 바와 같이 제6구간(IID6)의 스케줄된 시점(T26)에서 비자발적 DVFS 또는 IID가 실행된다.
도 4는 도 1에 도시된 시스템에서 수행되는 DVFS의 상태도(state diadram)이고, 도 5는 도 4에 도시된 DVFS의 상태도의 조건별 상태도이다.
상술한 바와 같이 VID는 자발적 DVFS를 의미하고, IID는 비자발적 DVFS를 의미한다.
도 1부터 도 5를 참조하면, 초기 단계(INP)에서, VID가 DVFS 방법으로서 설정(또는 결정) 된다(210). 따라서 초기 시점(T0)에서 VID가 실행된다(212).
DVFS 대상 하드웨어의 현재 시점의 현재 주파수와 다음 시점(스케줄된 시점)의 다음 주파수 각각이 최소 주파수(Fmin)가 아닐 때, 경우 1(CASE1)이 실행된다.
예컨대, 현재 시점(T1)에서의 현재 주파수(F5)가 최소 주파수(Fmin)가 아니고, 스케줄된 시점(T2)에서의 다음 주파수(F3)가 최소 주파수(Fmin)가 아닐 때, 현재 시점(T1)에서 VID가 실행되고(212), 현재 시점(T1)에서 상기 VID가 종료되면, 상기 VID를 위한 스케줄된 시점(T2)이 스케줄 된다(214). 스케줄된 시점(T2)이 될 때까지, 상기 VID는 보류(block) 또는 대기(wait) 된다(216). 스케줄된 시점(T2), 즉 런 시점이 되면, 작동 중인 CPU(230)의 제어에 따라 상기 VID가 실행된다(212).
다른 예로서, 현재 시점(T3)에서의 현재 주파수(F1)가 최소 주파수(Fmin)가 아니고, 스케줄된 시점(T4)에서의 다음 주파수(Fmax)가 최소 주파수(Fmin)가 아닐 때, 현재 시점(T3)에서 VID가 실행되고(212), 현재 시점(T3)에서 상기 VID가 종료되면, 상기 VID를 위한 스케줄된 시점(T4)이 스케줄 된다(214). 스케줄된 시점(T4)이 될 때까지, 상기 VID는 보류(block) 또는 대기(wait) 된다(216). 스케줄된 시점 (T4), 즉 런 시점이 되면, 상기 VID가 실행된다(212).
DVFS 대상 하드웨어의 현재 시점의 현재 주파수와 스케줄된 시점의 다음 주파수 각각이 최소 주파수(Fmin)일 때, 경우 2(CASE2)가 수행된다.
예컨대, 현재 시점(T6)에서의 현재 주파수(Fmin)가 최소 주파수(Fmin)이고 스케줄된 시점(T7)에서의 다음 주파수(Fmin)가 최소 주파수(Fmin)일 때, 현재 시점 (T6)에서 IID가 실행된다(218). 즉, 현재 시점(T6)에서 DVFS가 실행되지 않는다.
현재 시점(T6)에서 DVFS가 실행되지 않은 후, 다음 시점(T7)에서 IID가 스케줄 된다(220). 그러나 CPU(230)의 상태가 아이들 상태(IDLE)이므로, IID는 보류 (block) 또는 대기(wait) 된다(222). 그러나, 시점(T13)에서 CPU(230)가 제1인터럽트에 의해 웨이크업되고, CPU(230)의 상태가 런 상태(RUN)로 변경되면 시점(T13)에서 IID가 실행될 수 있다(218).
DVFS 대상 하드웨어의 현재 시점(T5 또는 T14)에서의 현재 주파수가 최소 주파수(Fmin)가 아니고 스케줄된 시점(T6 또는 T15)에서의 다음 주파수가 최소 주파수(Fmin)일 때, 경우 3(CASE3)이 수행된다.
예컨대, 현재 시점(T5 또는 T14)에서 VID가 실행되고(212), 상기 VID의 실행이 종료되면, 스케줄된 시점(T6 또는 T15)에서 IID가 스케줄 된다(220). 따라서, 스케줄된 시점(T6 또는 T15)에서 VID가 블록 또는 대기 된다(216). 각 시점(T13 또는 T20)이 스케줄된 시점(T6 또는 T15) 이후이고 각 시점(T13 또는 T20)에서 CPU (230)의 상태가 런 상태(RUN)이면, 각 시점(T13 또는 T20)에서 IID가 실행된다 (218).
DVFS 대상 하드웨어의 현재 시점(T13 또는 T20)의 현재 주파수가 최소 주파수(Fmin)이고 스케줄된 시점(T14 또는 T21)의 다음 주파수가 최소 주파수(Fmin)가 아닐 때, 경우 4(CASE4)가 수행된다.
예컨대, 현재 시점(T13 또는 T20)에서 IID가 실행된다(218). 상기 IID의 실행이 종료되면, 스케줄된 시점(T14 또는 T21)에서 VID가 스케줄 된다(214). 스케줄된 시점(T14 또는 T21)에서 IID가 블록 또는 대기 되고(222), 스케줄된 시점(T14 또는 T21)에서 VID가 실행된다(212).
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100; 시스템
200; 시스템 온 칩
210; 메모리 인터페이스
212; 제1성능 모니터일 유닛
220; 내부 로직
222; 제2성능 모니터일 유닛
230; CPU
231; 내부 메모리
240; 하드웨어 로직
250; 인터럽트 컨트롤러
260; 전력 관리 유닛
270; 클락 관리 유닛
300; 전력 관리 집적 회로
400; 외부 메모리

Claims (20)

  1. CPU를 포함하는 시스템 온 칩(system on chip(SoC))의 작동 방법으로서,
    상기 CPU를 통해,
    스케줄된 시점에서 인터럽트의 발생 여부를 결정하는 단계; 및
    상기 스케줄된 시점에서 상기 인터럽트의 발생 여부와 CPU의 상태가 런(run) 또는 아이들(idle) 상태인 지에 따라, 상기 스케줄된 시점에서 DVFS(dynamic voltage and frequency scaling) 대상 하드웨어에 대해 DVFS를 실행할지를 결정하는 단계를 포함하는 시스템 온 칩(system on chip(SoC))의 작동 방법.
  2. 제1항에 있어서, 상기 인터럽트의 발생 여부를 결정하는 단계는,
    모니터링 유닛을 통해, 상기 DVFS 대상 하드웨어로 공급되는 기본 주파수와 상기 DVFS 대상 하드웨어의 데이터 트래픽을 모니터하고 모니터 신호를 생성하는 단계;
    상기 CPU를 통해, 상기 모니터 신호에 기초하여 상기 DVFS 대상 하드웨어의 현재 시점에서의 현재 주파수와 상기 스케줄된 시점에서의 다음 주파수를 계산하는 단계; 및
    상기 현재 주파수와 상기 다음 주파수에 기초하여 상기 인터럽트의 발생 여부를 결정하는 단계를 포함하는 SoC의 작동 방법.
  3. 제2항에 있어서, 상기 인터럽트의 발생 여부를 결정하는 단계는 상기 CPU를 통해,
    상기 현재 주파수와 상기 다음 주파수 각각이 최소 주파수가 아닐 때, 상기 스케줄된 시점에서 상기 인터럽트를 발생하도록 결정하는 SoC의 작동 방법.
  4. 제3항에 있어서, 상기 DVFS를 실행할지를 결정하는 단계는 상기 CPU를 통해,
    상기 CPU의 상태가 런 상태일 때, 발생한 인터럽트에 응답하여 상기 DVFS를 실행하는 SoC의 작동 방법.
  5. 제3항에 있어서, 상기 DVFS를 실행할지를 결정하는 단계는 상기 CPU를 통해,
    상기 CPU의 상태가 아이들 상태일 때, 발생한 인터럽트에 응답하여 상기 CPU를 웨이크업하는 단계; 및
    웨이크업된 상기 CPU에 제어에 따라 상기 DVFS를 실행하는 단계를 포함하는 SoC의 작동 방법.
  6. 제2항에 있어서, 상기 인터럽트의 발생 여부를 결정하는 단계는 상기 CPU를 통해,
    상기 현재 주파수와 상기 다음 주파수 각각이 최소 주파수가 일 때, 상기 스케줄된 시점에서 상기 인터럽트를 발생하지 않도록 결정하는 SoC의 작동 방법.
  7. 제6항에 있어서, 상기 DVFS를 실행할지를 결정하는 단계는 상기 CPU를 통해,
    상기 CPU의 상태가 아이들 상태일 때, 상기 DVFS를 실행하지 않는 SoC의 작동 방법.
  8. 제7항에 있어서, 상기 DVFS를 실행할지를 결정하는 단계는 상기 CPU를 통해,
    상기 CPU의 상태가 아이들 상태일 때, 스케줄되지 않은 시점에서 발생한 인터럽트에 응답하여 상기 CPU가 웨이크업될 때까지, 상기 DVFS의 실행을 연기하는 SoC의 작동 방법.
  9. 제2항에 있어서, 상기 인터럽트의 발생 여부를 결정하는 단계는 상기 CPU를 통해,
    상기 현재 주파수가 최소 주파수가 아니고 상기 다음 주파수가 상기 최소 주파수가 일 때, 상기 스케줄된 시점에서 상기 인터럽트를 발생하지 않도록 결정하는 SoC의 작동 방법.
  10. 제9항에 있어서 상기 DVFS 대상 하드웨어에 대해 DVFS를 실행할지를 결정하는 단계 이후, 상기 CPU를 통해,
    상기 스케줄된 시점이 지난 후 발생한 인터럽트에 응답하여 아이들 상태의 상기 CPU를 웨이크업 하는 단계; 및
    웨이크업된 상기 CPU를 이용하여 상기 DVFS 대상 하드웨어에 대한 새로운 DVFS를 실행하는 단계를 더 포함하는 SoC의 작동 방법.
  11. 제2항에 있어서, 상기 인터럽트의 발생 여부를 결정하는 단계는 상기 CPU를 통해,
    상기 현재 주파수가 최소 주파수이고 상기 다음 주파수가 상기 최소 주파수가 아닐 때, 상기 스케줄된 시점에서 상기 인터럽트를 발생하도록 결정하는 SoC의 작동 방법.
  12. 제11항에 있어서, 상기 DVFS를 실행할지를 결정하는 단계는 상기 CPU를 통해,
    상기 CPU의 상태가 런 상태일 때, 발생한 인터럽트에 응답하여 상기 DVFS를 실행하는 SoC의 작동 방법.
  13. 제11항에 있어서, 상기 DVFS를 실행할지를 결정하는 단계는 상기 CPU를 통해,
    상기 CPU의 상태가 아이들 상태일 때, 발생한 인터럽트에 응답하여 상기 CPU를 웨이크업하는 단계; 및
    웨이크업된 상기 CPU를 이용하여 상기 DVFS를 실행하는 단계를 포함하는 SoC의 작동 방법.
  14. 제1항에 있어서 상기 CPU를 통해,
    상기 인터럽트의 발생이 결정될 때만 상기 스케줄된 시점에 상기 인터럽트에 관련된 신호가 출력되도록 타이머를 설정하는 단계를 더 포함하는 SoC의 작동 방법.
  15. DVFS(dynamic voltage and frequency scaling) 대상 하드웨어;
    상기 DVFS 대상 하드웨어로 공급되는 기본 주파수와 상기 DVFS 대상 하드웨어의 데이터 트래픽을 모니터하고 모니터 신호를 생성하는 성능 모니터링 유닛; 및
    상기 모니터 신호를 읽어올 수 있는 CPU를 포함하고,
    상기 CPU는,
    상기 DVFS 대상 하드웨어의 현재 시점에서의 현재 주파수와 스케줄된 시점에서의 다음 주파수를 이용하여 상기 스케줄된 시점에서 인터럽트의 발생 여부를 결정하고, 상기 스케줄된 시점에서 상기 인터럽트의 발생 여부와 상기 CPU의 상태가 런(run) 또는 아이들(idle) 상태인 지에 따라 상기 DVFS 대상 하드웨어에 대한 DVFS의 실행 여부를 결정하고,
    상기 현재 주파수와 상기 다음 주파수는 상기 모니터 신호에 기초하여 결정되는 시스템 온 칩 (system on chip(SoC)).
  16. 제15항에 있어서,
    상기 스케줄된 시점에서 출력 신호를 출력하는 타이머; 및
    상기 타이머의 상기 출력 신호에 응답하여 상기 인터럽트를 발생하는 인터럽트 컨트롤러를 더 포함하고,
    상기 CPU는, 상기 인터럽트의 발생이 결정될 때만, 상기 스케줄된 시점을 상기 타이머에 설정하는 시스템 온 칩.
  17. 애플리케이션 프로세서; 및
    상기 애플리케이션 프로세서로 DVFS(dynamic voltage and frequency scaling)를 위한 작동 전압을 공급하는 전력 관리 집적 회로를 포함하고,
    상기 애플리케이션 프로세서는,
    DVFS 대상 하드웨어;
    상기 DVFS 대상 하드웨어로 공급되는 기본 주파수와 상기 DVFS 대상 하드웨어의 데이터 트래픽을 모니터하고 모니터 신호를 생성하는 성능 모니터링 유닛;
    상기 DVFS 대상 하드웨어로 상기 DVFS를 위한 상기 기본 주파수를 갖는 클락을 공급하는 클락 관리 유닛; 및
    상기 모니터 신호를 읽어올 수 있는 CPU를 포함하고,
    상기 CPU는,
    상기 DVFS 대상 하드웨어의 현재 시점에서의 현재 주파수와 스케줄된 시점에서의 다음 주파수를 이용하여 상기 스케줄된 시점에서 인터럽트의 발생 여부를 결정하고, 상기 스케줄된 시점에서 상기 인터럽트의 발생 여부와 상기 CPU의 상태가 런(run) 또는 아이들(idle) 상태인 지에 따라 상기 DVFS 대상 하드웨어에 대한 상기 DVFS의 실행 여부를 결정하고,
    상기 현재 주파수와 상기 다음 주파수는 상기 모니터 신호에 기초하여 결정되는 웨어러블 장치.
  18. 제17항에 있어서,
    상기 스케줄된 시점에서 출력 신호를 출력하는 타이머; 및
    상기 타이머의 상기 출력 신호에 응답하여 상기 인터럽트를 발생하는 인터럽트 컨트롤러를 더 포함하고,
    상기 CPU는, 상기 인터럽트의 발생이 결정될 때만, 상기 스케줄된 시점을 상기 타이머에 설정하는 웨어러블 장치.
  19. 제17항에 있어서, 상기 CPU는,
    상기 현재 주파수와 상기 다음 주파수 각각이 최소 주파수가 아닐 때, 상기 스케줄된 시점에서 상기 인터럽트를 발생하도록 결정하는 웨어러블 장치.
  20. 제17항에 있어서, 상기 CPU는,
    상기 현재 주파수와 상기 다음 주파수 각각이 최소 주파수가 일 때, 상기 스케줄된 시점에서 상기 인터럽트를 발생하지 않도록 결정하는 웨어러블 장치.
KR1020140037257A 2014-03-28 2014-03-28 시스템 온 칩, 이의 작동 방법, 및 이를 포함하는 장치 KR102164099B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020140037257A KR102164099B1 (ko) 2014-03-28 2014-03-28 시스템 온 칩, 이의 작동 방법, 및 이를 포함하는 장치
US14/630,015 US9632567B2 (en) 2014-03-28 2015-02-24 System on chip method thereof, and device including the same
TW104110013A TWI670592B (zh) 2014-03-28 2015-03-27 系統單晶片、關於其之方法及包括該系統單晶片之裝置
CN201510144502.6A CN104951044B (zh) 2014-03-28 2015-03-30 动态电压和频率调节方法、片上系统及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140037257A KR102164099B1 (ko) 2014-03-28 2014-03-28 시스템 온 칩, 이의 작동 방법, 및 이를 포함하는 장치

Publications (2)

Publication Number Publication Date
KR20150112660A KR20150112660A (ko) 2015-10-07
KR102164099B1 true KR102164099B1 (ko) 2020-10-12

Family

ID=54165751

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140037257A KR102164099B1 (ko) 2014-03-28 2014-03-28 시스템 온 칩, 이의 작동 방법, 및 이를 포함하는 장치

Country Status (4)

Country Link
US (1) US9632567B2 (ko)
KR (1) KR102164099B1 (ko)
CN (1) CN104951044B (ko)
TW (1) TWI670592B (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106126841B (zh) * 2016-06-30 2019-08-23 福州瑞芯微电子股份有限公司 一种基于硬件变频的方法和装置
KR102618563B1 (ko) * 2016-07-01 2023-12-27 삼성전자주식회사 집적 회로 장치와 이를 포함하는 전자 장치
US20180024610A1 (en) * 2016-07-22 2018-01-25 Futurewei Technologies, Inc. Apparatus and method for setting a clock speed/voltage of cache memory based on memory request information
KR20180078558A (ko) * 2016-12-30 2018-07-10 삼성전자주식회사 시스템 온 칩의 구동 방법, 이를 수행하는 시스템 온 칩 및 이를 포함하는 전자 시스템
KR20180091546A (ko) 2017-02-07 2018-08-16 삼성전자주식회사 반도체 장치 및 반도체 시스템
CN109725700A (zh) * 2017-10-29 2019-05-07 上海寒武纪信息科技有限公司 动态调压调频装置和方法
KR102539044B1 (ko) * 2017-10-30 2023-06-01 삼성전자주식회사 시스템 온 칩의 구동 방법, 이를 수행하는 시스템 온 칩 및 이를 포함하는 전자 시스템

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040268165A1 (en) * 2003-06-27 2004-12-30 May Marcus W. Conserving power of a system on a chip using speed sensing

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5745375A (en) 1995-09-29 1998-04-28 Intel Corporation Apparatus and method for controlling power usage
KR100940260B1 (ko) 2003-07-14 2010-02-04 삼성전자주식회사 다이나믹 주파수 스케일링에 따라 동작 모드의 제어가가능한 반도체 시스템 및 동작 모드 제어 방법
KR101035077B1 (ko) 2004-02-20 2011-05-19 삼성전자주식회사 다이나믹 전압 스케일링에 따라 전력 소비 감소가 가능한반도체 시스템
US7900069B2 (en) 2007-03-29 2011-03-01 Intel Corporation Dynamic power reduction
US20080307240A1 (en) * 2007-06-08 2008-12-11 Texas Instruments Incorporated Power management electronic circuits, systems, and methods and processes of manufacture
US7949889B2 (en) * 2008-01-07 2011-05-24 Apple Inc. Forced idle of a data processing system
US8370663B2 (en) * 2008-02-11 2013-02-05 Nvidia Corporation Power management with dynamic frequency adjustments
CN102084318B (zh) * 2008-05-13 2015-06-03 新思科技有限公司 功率管理器和用于管理功率的方法
US9104411B2 (en) 2009-12-16 2015-08-11 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
KR101155202B1 (ko) 2009-12-24 2012-06-13 포항공과대학교 산학협력단 멀티 코어 프로세서의 전력 관리 방법, 멀티 코어 프로세서의 전력 관리 방법이 기록된 기록매체 및 이를 실행하는 멀티 코어 프로세서 시스템
US8370665B2 (en) 2010-01-11 2013-02-05 Qualcomm Incorporated System and method of sampling data within a central processing unit
KR20120004017A (ko) 2010-07-06 2012-01-12 주식회사 하이닉스반도체 동적 전압 조정 모드 판별 장치와 방법 및 이를 이용한 펌핑 전압 감지 장치와 방법
CN103218032B (zh) 2011-11-29 2017-07-14 英特尔公司 利用相对能量损益平衡时间的功率管理
US9773344B2 (en) 2012-01-11 2017-09-26 Nvidia Corporation Graphics processor clock scaling based on idle time
KR101858159B1 (ko) * 2012-05-08 2018-06-28 삼성전자주식회사 멀티-cpu 시스템과 이를 포함하는 컴퓨팅 시스템
KR20140030823A (ko) * 2012-09-04 2014-03-12 삼성전자주식회사 3차원 작업 부하를 이용하여 dvfs 정책을 수행하는 시스템-온 칩 및 이의 동작 방법
US8984308B2 (en) * 2012-12-03 2015-03-17 Qualcomm Incorporated System and method of adaptive voltage scaling
CN103345296B (zh) * 2013-06-04 2016-08-10 三星半导体(中国)研究开发有限公司 动态电压频率调整触发装置和方法
US20150106649A1 (en) * 2013-10-11 2015-04-16 Qualcomm Innovation Center, Inc. Dynamic scaling of memory and bus frequencies
KR102166935B1 (ko) * 2013-11-11 2020-10-16 삼성전자주식회사 동적 전압 주파수 스케일링을 수행하기 위한 동작 주파수 변경 방법, 시스템 온-칩 및 이를 구비하는 모바일 기기

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040268165A1 (en) * 2003-06-27 2004-12-30 May Marcus W. Conserving power of a system on a chip using speed sensing

Also Published As

Publication number Publication date
CN104951044B (zh) 2020-04-10
CN104951044A (zh) 2015-09-30
US20150277534A1 (en) 2015-10-01
TW201602771A (zh) 2016-01-16
KR20150112660A (ko) 2015-10-07
US9632567B2 (en) 2017-04-25
TWI670592B (zh) 2019-09-01

Similar Documents

Publication Publication Date Title
KR102164099B1 (ko) 시스템 온 칩, 이의 작동 방법, 및 이를 포함하는 장치
US11513585B1 (en) Power management for a graphics processing unit or other circuit
CN105183128B (zh) 强制处理器进入低功率状态
TWI527051B (zh) 記憶體控制器之調校、電力閘控與動態頻率改變
US9927863B1 (en) Power management scheme that accumulates additional off time for device when no work is available and permits additional power consumption by device when awakened
JP6215630B2 (ja) データトランザクションによって電力供給を制御するSoC、及びその動作方法
EP3872604B1 (en) Hardware automatic performance state transitions in system on processor sleep and wake events
JP4660591B2 (ja) アイドル同期による計算システム電力の低減
TWI400604B (zh) 基於延遲引導的平台電源管理
US20120072749A1 (en) Multi-core power management
US20140237272A1 (en) Power control for data processor
JP6838897B2 (ja) Cpuの作動方法と、該cpuを含むシステムの作動方法
TWI470410B (zh) 電子系統及其電源管理方法
EP2972660B1 (en) Controlling power supply unit power consumption during idle state
WO2015135468A1 (en) Systems and methods for messaging-based fine granularity system-on-a-chip power gating
CN108268119B (zh) 操作片上系统的方法、片上系统和电子系统
KR101285665B1 (ko) 수면 모드를 지원하는 멀티 코어 시스템 온 칩
KR102453689B1 (ko) 주기적 프로세스 처리 시스템 및 시스템 온 칩
US10338665B2 (en) Microcontroller power reduction system and method
TW201814430A (zh) 電子裝置以及電源管理方法
TWI475371B (zh) 電子裝置與其電源管理方法
Zeng et al. Power Management for Idle Time in the Presence of Periodic Interrupt Services

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