KR20160063974A - 워크로드를 이용하여 전력을 제어할 수 있는 시스템 온 칩, 이의 작동 방법, 및 이를 포함하는 컴퓨팅 장치 - Google Patents

워크로드를 이용하여 전력을 제어할 수 있는 시스템 온 칩, 이의 작동 방법, 및 이를 포함하는 컴퓨팅 장치 Download PDF

Info

Publication number
KR20160063974A
KR20160063974A KR1020150144046A KR20150144046A KR20160063974A KR 20160063974 A KR20160063974 A KR 20160063974A KR 1020150144046 A KR1020150144046 A KR 1020150144046A KR 20150144046 A KR20150144046 A KR 20150144046A KR 20160063974 A KR20160063974 A KR 20160063974A
Authority
KR
South Korea
Prior art keywords
dvfs
master device
count value
events
slave device
Prior art date
Application number
KR1020150144046A
Other languages
English (en)
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 TW104136402A priority Critical patent/TWI694379B/zh
Priority to US14/943,268 priority patent/US20160154449A1/en
Priority to DE102015223187.9A priority patent/DE102015223187A1/de
Priority to CN201510849786.9A priority patent/CN105653005A/zh
Publication of KR20160063974A publication Critical patent/KR20160063974A/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/266Arrangements to supply power to external peripherals either directly from the computer or under computer control, e.g. supply of power through the communication port, computer controlled power-strips
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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

Abstract

시스템 온 칩이 공개된다. 상기 시스템 온 칩은 DVFS 프로그램을 실행하는 마스터 장치와, 상기 마스터 장치와 통신할 수 있는 슬레이브 장치와, 상기 마스터 장치에 의해 명령들이 처리되는 과정에서 생성된 제1이벤트들을 수신하고, 상기 제1이벤트들과 관련된 명령들의 총 개수에 해당하는 제2이벤트들의 개수를 카운트하여 제1카운트 값을 생성하고, 상기 제1이벤트들 중에서 상기 마스터 장치와 상기 슬레이브 장치의 상호 작용에 의해 처리되는 제1명령들과 관련된 제3이벤트들의 개수를 카운트하여 제2카운트 값을 생성하는 성능 모니터링 유닛을 포함하고, 상기 마스터 장치에 의해 실행되는 상기 DVFS 프로그램은 상기 제1카운트 값과 상기 제2카운트 값에 기초하여, 상기 마스터 장치와 상기 슬레이브 장치 중에서 적어도 하나에 대한 DVFS를 제어할 수 있는 제어 신호를 생성한다.

Description

워크로드를 이용하여 전력을 제어할 수 있는 시스템 온 칩, 이의 작동 방법, 및 이를 포함하는 컴퓨팅 장치{SYSTEM ON CHIP FOR CONTROLLING POWER USING WORKLOAD, METHOD THEREOF, AND COMPUTING DEVICE HAVING THE SAME}
본 발명의 개념에 따른 실시 예는 시스템 온 칩에 관한 것으로, 특히 마스터의 워크로드들의 타입에 따라 상기 마스터에 대한 DVFS(dynamic voltage and frequency scaling)와, 상기 마스터와 통신할 수 있는 슬레이브에 대한 DVFS를 조절할 수 있는 시스템 온 칩, 이의 작동 방법, 및 이를 포함하는 컴퓨팅 장치에 관한 것이다.
종래의 컴퓨팅 시스템에서 DVFS(dynamic voltage and frequency scaling) 대상 장치에 대한 DVFS는 상기 대상 장치에 대한 정보만을 이용하여 수행되었다.
CPU에 대한 DVFS 방식의 경우, 측정된 상기 CPU의 현재 로딩(loading)이 상위 문턱(upper threshold)보다 높으면, 상기 DVFS 방식은 상기 CPU로 공급되는 클락 신호의 주파수와 작동 전압의 레벨을 증가시킨다. 측정된 상기 CPU의 현재 로딩이 하위 문턱(lower threshold)보다 낮으면, 상기 DVFS 방식은 상기 CPU로 공급되는 클락 신호의 주파수와 작동 전압의 레벨을 감소시킨다.
메모리 시스템과 통신할 수 있는 CPU의 작동 주파수가 높고 상기 메모리 시스템의 작동 주파수가 낮을 때, 상기 CPU의 워크로드가 증가하면 종래의 DVFS 방법은 상기 CPU의 작동 주파수와 작동 전압을 증가시킨다. 그러나, 상기 CPU의 워크로드가 메모리-지향 워크로드일 때, 상기 CPU의 작동 주파수와 작동 전압이 증가하더라도 상기 CPU의 성능은 증가하지 않고 상기 CPU의 전력 소모만 증가할 수 있다.
본 발명이 이루고자 하는 기술적인 과제는 마스터의 워크로드들의 타입에 따라 상기 마스터에 대한 DVFS(dynamic voltage and frequency scaling)와, 상기 마스터와 통신할 수 있는 슬레이브에 대한 DVFS를 조절할 수 있는 시스템 온 칩, 이의 작동 방법, 및 이를 포함하는 컴퓨팅 장치를 제공하는 것이다.
본 발명의 실시 예에 따른 시스템 온 칩은 DVFS(dynamic voltage and frequency scaling) 프로그램을 실행하는 마스터 장치와, 상기 마스터 장치와 통신할 수 있는 슬레이브 장치와, 상기 마스터 장치에 의해 명령들이 처리되는 과정에서 생성된 제1이벤트들을 수신하고, 상기 제1이벤트들과 관련된 명령들의 총 개수에 해당하는 제2이벤트들의 개수를 카운트하여 제1카운트 값을 생성하고, 상기 제1이벤트들 중에서 상기 마스터 장치와 상기 슬레이브 장치의 상호 작용에 의해 처리되는 제1명령들과 관련된 제3이벤트들의 개수를 카운트하여 제2카운트 값을 생성하는 성능 모니터링 유닛을 포함하고, 상기 마스터 장치에 의해 실행되는 상기 DVFS 프로그램은 상기 제1카운트 값과 상기 제2카운트 값에 기초하여, 상기 마스터 장치와 상기 슬레이브 장치 중에서 적어도 하나에 대한 DVFS를 제어할 수 있는 제어 신호를 생성한다.
상기 마스터 장치는 CPU(central processing unit), GPU(graphics processing unit), ISP(image signal processor), DSP(digital signal processor), 및 멀티미디어 프로세서(multimedia processor) 중에서 어느 하나이고, 상기 슬레이브 장치는 메모리 인터페이스와 입출력 인터페이스 중에서 어느 하나이다.
상기 시스템 온 칩은, 상기 제어 신호에 응답하여, 상기 마스터 장치로 공급되는 제1클락 신호의 제1주파수와 상기 슬레이브 장치로 공급되는 제2클락 신호의 제2주파수 중에서 적어도 하나를 제어하는 클락 관리 유닛을 더 포함한다.
상기 시스템 온 칩은, 상기 제어 신호에 응답하여, 상기 마스터 장치로 공급되는 제1전압의 레벨과 상기 슬레이브 장치로 공급되는 제2전압의 레벨 중에서 적어도 하나를 제어하기 위해, 전력 관리 IC를 제어하는 전력 관리 유닛을 더 포함한다.
상기 제2이벤트들은 상기 마스터 장치에 의해 수행된 명령어들과 관련되고, 상기 제3이벤트들은 L2 캐시 미스들과 관련된다.
상기 DVFS 프로그램은 상기 제1카운트 값과 상기 제2카운트 값에 기초하여 MPKI(Misses Per Kilo-Instructions)를 계산하고, 계산된 MPKI에 따라 상기 제1제어 신호와 상기 제2제어 신호를 생성하고, 상기 제2카운트 값은 L2 캐시 미스 카운트이다.
본 발명의 실시 예에 따른 컴퓨팅 장치는 DVFS(Dynamic voltage and frequency scaling) 프로그램을 실행하는 마스터 장치와, 상기 마스터 장치와 통신할 수 있는 슬레이브 장치와, 상기 마스터 장치에 의해 명령들이 처리되는 과정에서 생성된 제1이벤트들을 수신하고, 상기 제1이벤트들 중에서 상기 명령들의 총 개수에 해당하는 제2이벤트들의 개수를 카운트하여 제1카운트 값을 생성하고, 상기 제1이벤트들 중에서 상기 마스터 장치와 상기 슬레이브 장치의 상호 작용에 의해 처리되는 제1명령들과 관련된 제3이벤트들의 개수를 카운트하여 제2카운트 값을 생성하는 성능 모니터링 유닛과, 상기 마스터 장치, 상기 슬레이브 장치, 및 상기 성능 모니터링 유닛 각각으로 해당하는 작동 전압을 공급하는 전력 관리 IC를 포함하고, 상기 마스터 장치에 의해 실행되는 상기 DVFS 프로그램은 상기 제1카운트 값과 상기 제2카운트 값에 기초하여, 상기 마스터 장치와 상기 슬레이브 장치 중에서 적어도 하나에 대한 DVFS를 제어할 수 있는 제어 신호를 생성한다.
상기 마스터 장치는 CPU(central processing unit), GPU(graphics processing unit), ISP(image signal processor), DSP(digital signal processor), 및 멀티미디어 프로세서(multimedia processor) 중에서 어느 하나이고, 상기 슬레이브 장치는 메모리 인터페이스와 입출력 인터페이스 중에서 어느 하나이다.
상기 시스템 온 칩은, 상기 제어 신호에 응답하여, 상기 마스터 장치로 공급되는 제1클락 신호의 제1주파수와 상기 슬레이브 장치로 공급되는 제2클락 신호의 제2주파수 중에서 적어도 하나를 제어하는 클락 관리 유닛을 더 포함한다.
상기 시스템 온 칩은, 상기 제어 신호에 응답하여, 상기 마스터 장치로 공급되는 제1전압의 레벨과 상기 슬레이브 장치로 공급되는 제2전압의 레벨 중에서 적어도 하나를 제어하기 위해, 상기 전력 관리 IC를 제어하는 전력 관리 유닛을 더 포함한다.
상기 제2이벤트들은 상기 마스터 장치에 의해 수행된 명령어들과 관련되고, 상기 제3이벤트들은 L2 캐시 미스들과 관련된다.
상기 DVFS 프로그램은 상기 제1카운트 값과 상기 제2카운트 값에 기초하여 MPKI(Misses Per Kilo-Instructions)를 계산하고, 계산된 MPKI에 따라 상기 제어 신호를 생성하고, 상기 제2카운트 값은 L2 캐시 미스 카운트이다.
상기 데이터 처리 시스템은 메모리를 더 포함하고, 상기 마스터 장치는 CPU (central processing unit), GPU(graphics processing unit), ISP(image signal processor), DSP(digital signal processor), 및 멀티미디어 프로세서(multimedia processor) 중에서 어느 하나이고, 상기 슬레이브 장치는, 상기 마스터 장치의 제어에 따라, 상기 메모리의 작동을 제어하는 메모리 인터페이스이다.
본 발명의 실시 예에 따른, DVFS(Dynamic voltage and frequency scaling) 프로그램을 실행하는 마스터 장치와 상기 마스터 장치와 통신할 수 있는 슬레이브 장치를 포함하는 시스템 온 칩의 작동 방법에 있어서, 상기 작동 방법은 성능 모니터링 유닛이 상기 마스터 장치에 의해 명령들이 처리되는 과정에서 생성된 제1이벤트들을 수신하고, 상기 제1이벤트들 중에서 상기 명령들의 개수에 해당하는 제1카운트 값을 생성하는 단계와, 상기 마스터 장치에 의해 실행되는 상기 DVFS 프로그램이, 상기 제1카운트 값에 기초하여, 상기 마스터 장치와 상기 슬레이브 장치 각각에 대한 DVFS를 제어하는 단계를 포함한다.
상기 성능 모니터링 유닛이 상기 제1이벤트들 중에서 상기 마스터 장치와 상기 슬레이브 장치의 상호 작용에 의해 처리되는 제1명령과 관련된 제2이벤트들의 개수를 카운트하여 제2카운트 값을 생성하는 단계를 더 포함하고, 상기 마스터 장치에 의해 실행되는 상기 DVFS 프로그램은 상기 제1카운트 값과 상기 제2카운트 값에 기초하여, 상기 마스터 장치와 상기 슬레이브 장치 각각에 대한 상기 DVFS를 제어한다.
상기 제1카운트 값은 CPI(cycle per instruction)이고, 상기 제2카운트 값은 L2 캐시 미스 카운트이다.
상기 CPI가 제1기준 값보다 작을 때 상기 DVFS 프로그램은 상기 마스터 장치에 대한 상기 DVFS를 제어하고, 상기 CPI가 상기 제1기준 값보다 크고 상기 L2 캐시 미스 카운트가 제2기준 값보다 작을 때 상기 DVFS 프로그램은 상기 마스터 장치에 대한 상기 DVFS를 제어한다.
상기 DVFS 프로그램은 상기 제1카운트 값과 상기 제2카운트 값에 기초하여 MPKI(Misses Per Kilo-Instructions)를 계산하고, 계산된 MPKI에 따라 상기 마스터 장치와 상기 슬레이브 장치 각각에 대한 상기 DVFS를 제어하고, 상기 제1카운트 값은 상기 명령들의 총 개수에 해당하고, 상기 제2카운트 값은 L2 캐시 미스 카운트이다.
상기 계산된 MPKI가 제1기준 값보다 작을 때, 상기 DVFS 프로그램은 상기 마스터 장치에 대한 상기 DVFS를 제어하고, 상기 계산된 MPKI가 제2기준 값보다 같거나 클 때, 상기 DVFS 프로그램은 상기 슬레이브 장치에 대한 상기 DVFS를 제어하고, 상기 계산된 MPKI가 상기 제1기준 값과 같거나 크고 상기 제2기준 값보다 작을 때, 상기 DVFS 프로그램은 상기 마스터 장치와 상기 슬레이브 장치 각각에 대한 상기 DVFS를 제어한다.
본 발명의 실시 예에 따른 시스템 온 칩은 마스터 장치의 워크로드들의 타입에 따라 상기 마스터 장치에 대한 DVFS와, 상기 마스터 장치와 통신할 수 있는 슬레이브 장치에 대한 DVFS를 조절할 수 있는 효과가 있다. 따라서, 상기 시스템 온 칩의 성능이 개선되는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 컴퓨팅 장치의 개략적인 블록도이다.
도 2는 도 1에 도시된 마스터 장치에 의해 실행되는 DVFS(dynamic voltage and frequency scaling) 프로그램에 포함된 모듈들을 나타낸다.
도 3은 마스터 장치와 슬레이브 장치의 상호 작용을 설명하는 개념도이다.
도 4는 컴퓨트-바운드와 메모리-바운드에 따라 마스터 장치와 슬레이브 장치 중에서 적어도 하나에 대한 DVFS를 개념적으로 나타낸다.
도 5는 마스터 장치의 워크로드에 따라 마스터 장치와 슬레이브 장치 중에서 적어도 하나에 대한 DVFS의 플로우 차트를 나타낸다.
도 6은 마스터 장치에 대한 DVFS와 슬레이브 장치에 대한 DVFS를 제어하는 스킴을 개념적으로 나타낸다.
도 7은 본 발명의 일 실시 예에 따른 시스템 온 칩의 작동을 설명하는 플로우 차트이다.
도 8은 본 발명의 다른 실시 예에 따른 시스템 온 칩의 작동을 설명하는 플로우 차트이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 컴퓨팅 장치의 개략적인 블록도이다. 도 1을 참조하면, 컴퓨팅 장치(100)는 컨트롤러(200), 전력 관리 IC(power management integrated circuit(PMIC); 300), 및 메모리(400)를 포함할 수 있다.
컴퓨팅 장치(100)는 PC(personal computer) 또는 모바일 컴퓨팅 장치를 의미할 수 있다. 상기 모바일 컴퓨팅 장치는 랩탑 컴퓨터, 이동 전화기, 스마트폰, 태블릿 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), 휴대용 게임 콘솔(handheld game console), 모바일 인터넷 장치(mobile internet device(MID), 웨어러블 컴퓨터, 사물 인터넷 (internet of things(IoT)) 장치, 만물 인터넷(internet of everything(IoE)) 장치, 또는 e-북(e-book)을 의미할 수 있다.
컨트롤러(200)는 PMIC(300)와 메모리(400)의 작동을 제어할 수 있다. 컨트롤러(200)는 호스트, 집적 회로(IC), 마더보드, 시스템 온 칩(system on chip(SoC)), 애플리케이션 프로세서(application processor(AP)), 또는 모바일(mobile) AP로 구현될 수 있다.
예컨대, 컨트롤러(200)가 SoC, AP, 또는 모바일 AP를 포함하는 제1패키지로 구현되고 메모리(400)가 제2패키지로 구현될 때, 상기 제2패키지는 상기 제1패키지의 위(over)에 적층될 수 있다.
컨트롤러(200)는 버스 구조(201), CPU(central processing unit; 210), 메모리 인터페이스(220), 클락 관리 유닛(clock management unit(CMU); 230), 전력 관리 유닛(240), 입출력 인터페이스(250), 및 내부 메모리(260)를 포함할 수 있다.
본 명세서에서 마스터(master) 또는 마스터 장치는 CPU(210), 그래픽스 프로세싱 유닛(graphics processing unit(GPU)), 이미지 신호 프로세서(image signal processor(ISP)), 디지털 신호 프로세서(digital signal processor(DSP)), 통신 프로세서(communication processor(CP)), 또는 멀티미디어 프로세서(multimedia processor) 등을 의미할 수 있으나 이에 한정되는 것은 아니다. 상기 CP는 모뎀 칩을 의미할 수 있다.
본 명세서에서 슬레이브(slave) 또는 슬레이브 장치는 메모리 인터페이스 (220) 또는 입출력 인터페이스(250) 등을 의미할 수 있으나 이에 한정되는 것은 아니다.
마스터 장치는 주어진 시간 동안 상기 마스터 장치에 의해 처리될 명령들 (instructions) 중에서 적어도 일부를 독립적으로 처리할 수 있고, 상기 명령들 중에서 나머지 적어도 일부를 슬레이블 장치와 상호 작용으로 처리할 수 있다. 상기 명령들은 워크로드들(workloads)를 의미할 수 있다.
적어도 하나의 마스터 장치와 적어도 하나의 슬레이브 장치는 버스 구조 (201)를 통해 서로 신호들 및/또는 데이터를 주거나 받을 수 있다.
본 명세서에서는 마스터 장치의 실시 예로서 CPU(210)를 가정하고, 슬레이브 장치의 실시 예들로서 메모리 인터페이스(220) 또는 입출력 인터페이스(250)를 가정하나, 본 발명의 기술적 사상이 이들에 한정되는 것은 아니다. 실시 예들에 따라, 마스터 장치로 작동하는 장치는 슬레이브 장치로 작동할 수도 있고, 슬레이브 장치로 작동하는 장치는 마스터 장치로 작동할 수도 있다.
버스 구조(201)는 AMBA(Advanced Microcontroller Bus Architecture), AHB (Advanced High-performance Bus), APB(Advanced Peripheral Bus), AXI(Advanced eXtensible Interface), ASB(Advanced System Bus) 또는 이들의 결합으로 구현될 수 있으나 이에 한정되는 것은 아니다.
CPU(210)는 본 발명의 실시 예에 따른 DVFS(dynamic voltage and frequency scaling) 프로그램을 실행시킬 수 있다. 마스터 장치, 예컨대 CPU(210)에 의해 실행되는 DVFS 프로그램에 따라 제어되는 DVFS 방법은 앞에서 설명한 마스터 장치 및/또는 슬레이브 장치에 적용될 수 있다.
성능 모니터링 유닛(performance monitoring unit; 211)은, CPU(210)의 내부에 구현된 하드웨어로서, CPU(210)의 성능 파라미터들(performance parameters)을 측정(measure)할 수 있다. 예컨대, 성능 모니터링 유닛(211)은 명령 사이클들 (instruction cycles), 캐시 히트들(cache hits), 캐시 미스들(cache misses), 브랜치 미스들(branch misses) 등과 같은 파라미터들을 측정할 수 있다. 예컨대, 성능 모니터링 유닛(211)은 주어지 지속 시간(time duration)에서 발생하는 모든 이벤트들 중에서 성능 파라미터들 각각에 해당하는 이벤트들의 개수를 측정(또는 카운트)할 수 있다.
본 발명의 실시 예들에 따라, 성능 모니터링 유닛(211)은 주어진 시간 동안에 CPU(210)에 의해 명령들(예컨대, 워크로드들)이 처리되는 과정에서 생성된 모든 이벤트들(예컨대, 제1이벤트들)을 수신하고, 상기 모든 이벤트들 중에서 상기 명령들의 총 개수에 해당하는 이벤트들(예컨대, 제2이벤트들)의 개수를 카운트하여 제1카운트 값을 생성하고, 상기 제1이벤트들 중에서 CPU(210)와 메모리 인터페이스 (220)의 상호 작용에 의해 처리될 수 있는 명령들과 관련된 이벤트들(예컨대, 제3이벤트들)의 개수를 카운트하여 제2카운트 값을 생성하고, 상기 제1카운트 값과 상기 제2카운트 값을 출력할 수 있다. 예컨대, 성능 모니터링 유닛(211)은 제1카운트 값을 생성하는 제1카운터(211-1)와 제2카운트 값을 생성하는 제2카운터(211-2)를 포함할 수 있다.
실시 예들에 따라, CPU(210)에 의해 실행되는 DVFS 프로그램은 제1카운트 값과 제2카운트 값을 이용하여 MPKI(Misses Per Kilo-Instructions)를 계산하고, 계산된 MPKI에 따라 CPU(210), 메모리 인터페이스(220), 및 입출력 인터페이스(250) 각각에 대한 DVFS를 제어할 수 있는 제어 신호들을 생성할 수 있다.
이때, 상기 제2카운트 값은 L2 캐시 미스 카운트(cache miss count)일 수 있다. 상기 L2 캐시 미스 카운트는 L2 캐시 미스들의 개수를 의미할 수 있다. 실시 예들에 따라, 성능 모니터링 유닛(211)은 CPI(cycles per instruction, clock cycles per instruction, or clocks per instruction)와 관련된 제1카운트 값 및/또는 L2 캐시 미스 카운트에 상응하는 제2카운트 값을 생성할 수 있다.
이때, CPU(210)에 의해 실행되는 DVFS 프로그램은, 제1카운트 값 및/또는 제2카운트 값을 이용하여, CPU(210), 메모리 인터페이스(220), 및 입출력 인터페이스 (250) 각각에 대한 DVFS를 제어할 수 있는 제어 신호들을 생성할 수 있다.
잘 알려진 바와 같이 CPI는 수학식 1에 따라 정의될 수 있다.
[수학식 1]
Figure pat00001
여기서, CCI는 주어진 명령 타입(given instruction type)에 대한 클락-사이클들 또는 주어진 명령 타입에 대한 명령들의 개수를 나타내고, IC는 총 명령 카운트(total instruction count)를 나타낸다.
슬레이브 장치의 실시 예로 사용될 수 있는 메모리 인터페이스(220)는, CPU (220)의 제어에 따라, 메모리(400)에 대한 라이트 작동 또는 리드 작동을 제어할 수 있다. 메모리 인터페이스(220)는 CMU(230)로부터 출력된 제2클락 신호(CLK2)의 제2주파수와 PMIC(300)로부터 출력된 제4작동 전압(PW4)의 레벨에 기초하여 메모리 (400)에 대한 라이트 작동 또는 리드 작동을 제어할 수 있다. 제2클락 신호(CLK2)의 제2주파수와 제4작동 전압(PW4)의 레벨 각각은 DVFS에 따라 조절될 수 있다.
도 1에서는 설명의 편의를 위해 하나의 메모리 인터페이스(220)와 하나의 메모리(400)가 도시되었으나, 메모리 인터페이스(220)는 복수의 서로 다른 메모리 인터페이스들을 포함하는 메모리 인터페이스 세트(set)를 의미할 수 있고, 메모리 (400)는 서로 다른 메모리들을 포함하는 세트를 의미할 수 있다.
예컨대, 메모리(400)가 DRAM(dynamic random access memory)과 플래시 메모리(예컨대, NAND-타입 플래시 메모리 또는 NOR-타입 플래시 메모리)를 포함하는 세트일 때, 메모리 인터페이스(220)는 DRAM 컨트롤러와 플래시 메모리 컨트롤러를 포함하는 세트일 수 있으나 이에 한정되는 것은 아니다.
메모리(400)는 휘발성 메모리 및/또는 불휘발성 메모리로 구현될 수 있다. 휘발성 메모리는 RAM(random access memory), DRAM, SRAM(static random access memory), T-RAM(thyristor RAM), Z-RAM(zero capacitor RAM), 또는 TTRAM (Twin Transistor RAM)으로 구현될 수 있다.
불휘발성 메모리는 EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래시(flash) 메모리, MRAM(Magnetic RAM), 스핀전달토크 MRAM(Spin-Transfer Torque MRAM), FeRAM(Ferroelectric RAM), PRAM(Phase change RAM), 저항 메모리(Resistive RAM(RRAM)), 나노튜브 RRAM(Nanotube RRAM), 폴리머 RAM(Polymer RAM: PoRAM), 나노 부유 게이트 메모리(Nano Floating Gate Memory: NFGM), 홀로그래픽 메모리(holographic memory), 분자 전자 메모리 소자(Molecular Electronics Memory Device), 또는 절연 저항 변화 메모리(Insulator Resistance Change Memory)로 구현될 수 있다.
실시 예들에 따라, 메모리(400)는 솔리드 스테이트 드라이브(solid state drive or solid state disk(SSD)), 임베드된 SSD(embedded SSD(eSSD)), 멀티미티어 카드(multimedia card(MMC)), 임베드된 MMC(embedded MMC(eMMC)), 또는 유니버설 플래시 스토리지(universal flash storage(UFS))로 구현될 수 있으나 이에 한정되는 것은 아니다.
CMU(230)는, CPU(210)로부터 출력된 또는 CPU(210)에 의해 실행되는 DVFS 프로그램으로부터 출력된 제1제어 신호(CTR1)에 응답하여, CPU(210)로 공급되는 제1클락 신호(CLK1)의 제1주파수, 메모리 인터페이스(220)로 공급되는 제2클락 신호 (CLK2)의 제2주파수, 및/또는 입출력 인터페이스(250)로 공급되는 제3클락 신호 (CLK3)의 제3주파수를 조절할 수 있다. 여기서, 조절은 증가, 유지, 또는 감소를 의미할 수 있다.
전력 관리 유닛(240)은, CPU(210)로부터 출력된 또는 CPU(210)에 의해 실행되는 DVFS 프로그램으로부터 출력된 제2제어 신호(CTR2)에 응답하여, PMIC(300)의 작동을 제어할 수 있는 제3제어 신호(CTR3)를 생성할 수 있다.
PMIC(300)는, 제3제어 신호(CTR3)에 응답하여, 각 작동 전압(PW1~PW7)의 레벨을 조절할 수 있다. 예컨대, 제3제어 신호(CTR3)에 응답하여 PMIC(300)는 CPU (210)로 공급되는 제1작동 전압(PW1)의 레벨을 제어할 수 있고, CMU(230)로 공급되는 제2작동 전압(PW2)의 레벨을 제어할 수 있고, 전력 관리 유닛(240)으로 공급되는 제3작동 전압(PW3)의 레벨을 제어할 수 있고, 메모리 인터페이스(220)로 공급되는 제4작동 전압(PW4)의 레벨을 제어할 수 있고, 메모리(400)로 공급되는 제5작동 전압(PW5)의 레벨을 제어할 수 있고, 입출력 인터페이스(250)로 공급되는 제6작동 전압(PW6)의 레벨을 제어할 수 있고, 내부 메모리(260)로 공급되는 제7작동 전압 (PW7)의 레벨을 제어할 수 있으나 이에 한정되는 것은 아니다.
실시 예들에 따라, 각 제어 신호(CTR1, CTR2, 및 CTR3)는 적어도 하나의 아날로그 신호 또는 적어도 하나의 디지털 신호를 포함할 수 있다.
입출력 인터페이스(250)는 데이터의 입출력을 위한 인터페이스로서, CMU (230)로부터 출력된 제3클락 신호(CLK3)와 PMIC(300)로부터 출력된 제6작동 전압 (PW6)에 기초하여 데이터를 전송하거나 수신할 수 있다. 제3클락 신호(CLK3)의 제3주파수와 제6작동 전압(PW6)의 레벨 각각은 DVFS에 따라 조절될 수 있다.
실시 예들에 따라, 입출력 인터페이스(250)는 SATA(Serial Advanced Technology Attachment), SATAe(SATA express), SAS(serial attached small computer system interface(SCSI)), PCIe(peripheral component interconnect express) 또는 MIPI®(Mobile Industry Processor Interface)를 지원할 수 있는 인터페이스로 구현될 수 있으나 이에 한정되는 것은 아니다.
내부 메모리(260)는 CPU(210)의 작동 메모리일 수 있다. 예컨대, 내부 메모리(260)는 ROM(read only memory) 또는 SRAM일 수 있으나 이에 한정되는 것은 아니다. 예컨대, 메모리(400)가 불휘발성 메모리로 구현될 때, 컴퓨팅 장치(100)가 부팅될 때, 메모리(400)에 저장된 DVFS 프로그램은 내부 메모리(260)로 로드(load)되고, CPU(210)에 의해 실행될 수 있다.
도 2는 도 1에 도시된 마스터 장치에 의해 실행되는 DVFS(dynamic voltage and frequency scaling) 프로그램에 포함된 모듈들을 나타낸다. 도 1과 도 2를 참조하면, DVFS 프로그램(213)은 DVFS 관리자(215), CMU 장치 드라이버(217), 및 전력 관리 유닛 장치 드라이버(218)를 포함할 수 있다.
DVFS 관리자(215), CMU 장치 드라이버(217), 및 전력 관리 유닛 장치 드라이버(218) 각각은 모듈(module)을 의미할 수 있다. 본 명세서에서 모듈은 본 명세서에서 설명되는 각 명칭에 따른 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드 또는 소프트웨어를 의미할 수도 있다.
DVFS 관리자(215)는 DVFS 프로그램(213) 또는 DVFS 작동을 전반적으로 제어할 수 있다. DVFS 관리자(215)는 워크로드 인식 프로그램(workload awareness program(WAP; 216))을 포함할 수 있다. WAP(216)의 실행은 DVFS 관리자(215)에 의해 제어될 수 있다.
WAP(216)는, 제1카운트 값(NOI) 및/또는 제2카운트 값(NOCM)에 응답하여, CMU 장치 드라이버(217)와 전력 관리 유닛 장치 드라이버(218) 각각을 제어할 수 있다. 실시 예들에 따라 제1카운트 값(NOI)과 제2카운트 값(NOCM)은 다른 정보 또는 데이터를 포함하는 값들을 의미할 수 있다.
앞에서 설명한 바와 같이, 제1카운트 값(NOI)은 주어긴 시간 동안에 CPU (210)에 의해 명령들(예컨대, 워크로드들)이 처리되는 과정에서 생성된 제1이벤트들 중에서 처리된 명령들(committed instructions or instructions architecturally executed)의 총 개수에 상응하는 제2이벤트들의 개수에 상응하는 카운트 값 또는 CPI 값을 계산하는데 필요한 값을 의미할 수 있다.
제2카운트 값(NOCM)은 주어진 시간 동안에 CPU(210)에 의해 상기 명령들이 처리되는 과정에서 생성된 상기 제1이벤트들 중에서 마스터 장치(210)와 슬레이브 장치(220 또는 250)의 상호 작용에 의해 처리될 수 있는 명령들과 관련된 제3이벤트들의 개수에 상응하는 카운트 값을 의미할 수 있다. 예컨대, 제2카운트 값(NOCM)은 L2 캐시 미스 카운트에 상응할 수 있으나 이에 한정되는 것은 아니다.
예컨대, ARM®의 Cortex®-A 시리즈 프로세서에 사용되는 PMU 이벤트들을 이용하여 제1이벤트들, 제2이벤트들, 및 제3이벤트들을 예시적으로 설명하면 표1과 같다.

이벤트 연상 기호(Event mnemonic)

이벤트 발생시 카운트 동작(또는 이벤트 설명)

SW_INCR

소프트웨어적으로 특정 이벤트를 카운트

L1I_CACHE_REFILL

레벨-1 명령 캐쉬 또는 통합(unified) 캐쉬의 리필(refill)을 일으키는 명령 메모리의 접근을 카운트(또는 상기 접근과 관련된 이벤트)

INST_RETIRED

CPU에 의해 수행된 명령어를 카운트(또는 CPU에 의해 수행된 명령어와 관련된 이벤트)

CPU_CYCLES

CPU의 클럭 사이클을 카운트(또는 CPU의 클럭 사이클과 관련된 이벤트)

MEM_ACCESS

메모리 리드/라이트 횟수를 카운트(또는 메모리 리드/라이트 횟수와 관련된 카운트)

L2D_CACHE_REFILL
레벨-2 데이터 캐쉬 또는 통합(unified) 캐쉬의 리필(refill)과 레벨-1 명령, 데이터 또는 통합 캐쉬의 리필을 일으키는 메모리의 리드/라이트 접근을 카운트(또는 상기 접근과 관련된 이벤트)

BUS_CYCLES

외부 메모리 인터페이스에 사용된 사이클 수를 카운트(또는 상기 사이클 수와 관련된 이벤트)
제1이벤트들은 표1에 기재된 SW_INCR, L1I_CACHE_REFILL, INST_RETIRED, CPU_CYCLES, MEM_ACCESS, L2D_CACHE_REFILL, 및 BUS_CYCLES과 같이 상기 명령들이 처리되는 과정에서 생성된 모든 이벤트들과 동일 또는 유사한 기능을 갖는 이벤트들을 의미할 수 있다. 제2이벤트들은 상기 제1이벤트들 중에서 INST_RETIRED과 동일 또는 유사한 기능을 갖는 이벤트들을 의미할 수 있다. 제3이벤트들은 상기 제1이벤트들 중에서 L2D_CAHCE_REFILL과 동일 또는 유사한 기능을 갖는 이벤트들을 의미할 수 있다.
실시 예들에 따라 WAP(216)는, 제1카운트 값(NOI) 및/또는 제2카운트 값 (NOCM)에 기초하여, MPKI 또는 CPI 값을 계산하고, 계산의 결과에 따라 제1중간 제어 신호를 CMU 장치 드라이버(217)로 전송할 수 있다. CMU 장치 드라이버(217)는 상기 제1중간 제어 신호에 응답하여 제1제어 신호(CTR1)를 CMU(230)로 출력할 수 있다.
실시 예들에 따라 WAP(216)는, 제1카운트 값(NOI) 및/또는 제2카운트 값 (NOCM)에 기초하여, MPKI 또는 CPI를 계산하고, 계산의 결과에 따라 제2중간 제어 신호를 전력 관리 유닛 장치 드라이버(218)로 전송할 수 있다. 전력 관리 유닛 장치 드라이버(218)는 상기 제2중간 제어 신호에 응답하여 제2제어 신호(CTR2)를 전력 관리 유닛(240)으로 출력할 수 있다.
성능 모니터링 유닛(211)은 주어진 시간 동안에 CPU(210)에 의해 명령들이 처리되는 과정에서 생성된 제1이벤트들 중에서 CPU(210)에 의해 독립적으로 처리될 수 있는 명령들의 개수에 상응하는 제4이벤트들의 개수를 카운트하고, 카운트 결과에 따라 제3카운트 값을 생성할 수 있다. 상기 제3카운트 값은 WAP(216)으로 제공될 수 있다. 이때, WAP(216)는, 제1카운트 값(NOI), 제2카운트 값(NOCM), 및/또는 제3카운트 값에 기초하여, MPKI 또는 CPI를 계산할 수 있다.
실시 예들에 따라, 슬레이브 장치가 메모리 인터페이스(220)일 때, 제2카운트 값(NOCM)은 메모리-바운드(memory-bound)에 상응하는 값일 수 있고, 제3카운트 값은 컴퓨트-바운드에 상응하는 값일 수 있다. 상기 컴퓨트-바운드는 코어-바운드 (core-bound), 컴퓨팅-바운드(computing-bound), 또는 CPU-바운드를 의미할 수 있다.
메모리-바운드는 CPU(210)에 의해 실행되는 태스크(task)를 완료하는 시간이 메모리(400)를 액세스하는 속도에 의해 결정되는 상황을 의미할 수 있다. 그러나, 컴퓨트-바운드는 CPU(210)에 의해 실행되는 태스크를 완료하는 시간이 주로 CPU (210)의 속도에 의해 결정되는 상황을 의미할 수 있다.
실시 예들에 따라, 슬레이브 장치가 입출력 인터페이스(250)일 때, 제2카운트 값(NOCM)은 입출력-바운드(I/O-bound)에 상응하는 값일 수 있고, 제3카운트 값은 컴퓨트-바운드에 상응하는 값일 수 있다. 입출력-바운드는 CPU(210)에 의해 실행되는 태스크를 완료하는 시간이 입출력 인터페이스(250)의 속도에 의해 결정되는 상황을 의미할 수 있다.
예컨대, 제1카운트 값(NOI)이 제2카운트 값(NOCM)과 제3카운트 값의 합일 때, WAP(216)는 제1카운트 값(NOI)은 제2카운트 값(NOCM)을 이용하여 제3카운트 값을 계산할 수 있다. 제1카운트 값(NOI)은 마스터 장치(예컨대, CPU(210))의 워크로드들에 대응될 수 있다.
도 3은 마스터 장치와 슬레이브 장치의 상호 작용을 설명하는 개념도이다.
도 3은 마스터 장치와 슬레이브 장치의 상호 작용(예컨대, 메모리-바운드)을 설명하기 위한 개념도이다. 슬레이브 장치(예컨대, 메모리 인터페이스(220))는, 마스터 장치(예컨대, CPU(210))의 제어에 따라, 라이트 작동 동안에는 마스터 장치(예컨대, CPU(210))로부터 출력된 데이터를 메모리(400)에 저장하고, 리드 작동 동안에는 메모리(400)로부터 리드된 데이터를 마스터 장치(예컨대, CPU(210))로 전송할 수 있다.
도 4는 컴퓨트-바운드와 메모리-바운드에 따라 마스터 장치와 슬레이브 장치 중에서 적어도 하나에 대한 DVFS를 개념적으로 나타내고, 도 5는 마스터 장치의 워크로드에 따라 마스터 장치와 슬레이브 장치 중에서 적어도 하나에 대한 DVFS의 플로우 차트를 나타낸다.
CPU(210)에서 실행되는 본 발명의 실시 예에 따른 DVFS 프로그램(213)은, 성능 모니터링 유닛(211)으로부터 출력된 하나 또는 그 이상의 값들(NOI 및/또는 NOCM)에 기초하여, CPU(210)의 현재 워크로드들이 컴퓨트-바운드인지 또는 메모리-바운드(또는 입출력-바운드)인지를 판단하고, 판단의 결과에 따라 CPU(210)와 슬레이브 장치(220 또는 250) 각각에 대한 DVFS를 제어할 수 있다.
예컨대, CPU(210)의 워크로드들이 DVFS 프로그램(213)에 의해 메모리-바운드 (또는 입출력-바운드)로 판단될 때, CPU(210)의 워크로드들이 크거나 로딩 (loading)이 높더라도, DVFS 프로그램(213)은 CPU(210)에 대한 전압 및/또는 주파수를 증가시키기 위한 작동을 수행하지 않고 슬레이브 장치(220 또는 250)에 대한 전압 및/또는 주파수를 증가시키기 위한 작동을 수행할 수 있다.
즉, DVFS 프로그램(213)은 슬레이브 장치(220 또는 250)에 대한 전압 및/또는 주파수를 증가시키기 위한 작동을 수행하므로, CPU(210)의 메모리-지향(memory-oriented) 워크로드들은 향상될 수 있다.
그러나, CPU(210)의 워크로드들이 DVFS 프로그램(213)에 의해 메모리-바운드 (또는 입출력-바운드)로 판단되고 CPU(210)의 워크로드들이 크거나 로딩이 높을 때, 종래의 DVFS 프로그램은 CPU(210)에 대한 전압 및/또는 주파수를 증가시키기 위한 작동만을 수행하고 슬레이브 장치(220 또는 250)에 대한 전압 및/또는 주파수를 증가시키기 위한 작동을 수행하지 않았다.
이때, CPU(210)에 대한 전압 및/또는 주파수는 증가하지만 CPU(210)와 슬레이브 장치(220 또는 250)를 포함하는 컨트롤러(200)의 성능은 증가하지 않고 CPU (210)의 전력 소모만 증가한다. 즉, CPU(210)에 대한 전력 효율(power efficiency)은 저하된다.
성능 모니터링 유닛(211)은 CPU(210)에 의해 명령들이 처리되는 과정에서 생성된 제1이벤트들, 제2이벤트들, 및/또는 제3이벤트들에 기초하여 워크로드들을 계산하고, 계산의 결과에 상응하는 하나 또는 그 이상의 값들(NOI 및/또는 NOCM)을 DVFS 프로그램(213)의 WAP(216)로 출력할 수 있다(S10).
실시 예들에 따라, WAP(216)은 하나 또는 그 이상의 값들(NOI 및/또는 NOCM)을 이용하여 CPI 값을 계산할 수 있다. 실시 예들에 따라, WAP(216)은 하나 또는 그 이상의 값들(NOI 및/또는 NOCM)을 이용하여 MPKI를 계산할 수 있다. 예컨대, MPKI는 제2카운트 값(NOCM)을 제1카운트 값(NOI)으로 나눈 값(=NOCM/NOI)을 의미할 수 있다. 즉, 제2카운트 값(NOCM)은 L2 캐시 미스 카운트일 수 있고, 제1카운트 값(NOI)은 주어진 시간 동안에 CPU(210)에 의해 처리되는 명령들의 총 개수를 의미할 수 있다.
슬레이브 장치가 메모인 인터페이스(220)일 때, WAP(216)은, 하나 또는 그 이상의 값들(NOI 및/또는 NOCM)에 기초하여, CPU(210)의 워크로드들이 컴퓨트-바운드인지 메모리-바운드인지를 판단할 수 있다(S20).
CPU(210)의 워크로드들이 컴퓨트-바운드일 때(S20의 YES), WAP(216)은 CPU (210)에 대한 DVFS를 수행하기 위해 제1중간 제어 신호와 제2중간 제어 신호를 생성할 수 있다. CMU 장치 드라이버(217)는 상기 제1중간 제어 신호에 응답하여 제1제어 신호(CTR1)를 생성할 수 있고, 전력 관리 유닛 장치 드라이버(218)는 상기 제2중간 제어 신호에 응답하여 제2제어 신호(CTR2)를 생성할 수 있다. 전력 관리 유닛(240)은 제2제어 신호(CTR2)에 기초하여 제3제어 신호(CTR3)를 생성할 수 있다.
제1제어 신호(CTR1)에 응답하여 작동하는 CMU(230)는 CPU(210)로 공급되는 제1클락 신호(CLK1)의 제1주파수를 증가시킬 수 있고, 제3제어 신호(CTR3)에 응답하여 작동하는 PMIC(300)는 CPU(210)로 공급되는 제1작동 전압(PW1)의 레벨을 증가시킬 수 있다. 즉, CPU(210)에 대한 DVFS가 수행될 수 있다(S30).
그러나, CPU(210)의 워크로드들이 컴퓨트-바운드가 아닐 때(S20의 NO), WAP (216)은 CPU(210)의 워크로드들이 메모리-바운드인지를 판단할 수 있다(S40).
CPU(210)의 워크로드들이 메모리-바운드일 때(S40의 YES), WAP(216)은 메모리 인터페이스(220)에 대한 DVFS를 수행하기 위해 제1중간 제어 신호와 제2중간 제어 신호를 생성할 수 있다. 즉, CPU(210)의 워크로드들이 크더라도, WAP(216)은 CPU(210) 대신에 메모리 인터페이스(220)에 대한 DVFS를 수행하기 위해 제1중간 제어 신호와 제2중간 제어 신호를 생성할 수 있다.
CMU 장치 드라이버(217)는 상기 제1중간 제어 신호에 응답하여 제1제어 신호(CTR1)를 생성할 수 있고, 전력 관리 유닛 장치 드라이버(218)는 상기 제2중간 제어 신호에 응답하여 제2제어 신호(CTR2)를 생성할 수 있다. 전력 관리 유닛(240)은 제2제어 신호(CTR2)에 기초하여 제3제어 신호(CTR3)를 생성할 수 있다.
제1제어 신호(CTR1)에 응답하여 작동하는 CMU(230)는 메모리 인터페이스 (220)로 공급되는 제2클락 신호(CLK2)의 제2주파수를 증가시킬 수 있고, 제3제어 신호(CTR3)에 응답하여 작동하는 PMIC(300)는 메모리 인터페이스(220)로 공급되는 제4작동 전압(PW4)의 레벨을 증가시킬 수 있다. 즉, 메모리 인터페이스(220)에 대한 DVFS가 수행될 수 있다(S50).
CPU(210)의 워크로드들이 컴퓨트-바운드가 아니고(S20의 N0) 메모리-바운드도 아닐 때(S40의 NO), WAP(216)은 CPU(210)에 대한 DVFS와 메모리 인터페이스 (220)에 대한 DVFS를 동시에 또는 병렬적으로 수행하기 위해 제1중간 제어 신호와 제2중간 제어 신호를 생성할 수 있다.
CMU 장치 드라이버(217)는 상기 제1중간 제어 신호에 응답하여 제1제어 신호 (CTR1)를 생성할 수 있고, 전력 관리 유닛 장치 드라이버(218)는 상기 제2중간 제어 신호에 응답하여 제2제어 신호(CTR2)를 생성할 수 있다. 전력 관리 유닛(240)은 제2제어 신호(CTR2)에 기초하여 제3제어 신호(CTR3)를 생성할 수 있다.
제1제어 신호(CTR1)에 응답하여 작동하는 CMU(230)는 CPU(210)로 공급되는 제1클락 신호(CLK1)의 제1주파수를 증가시키고 제3제어 신호(CTR3)에 응답하여 작동하는 PMIC(300)는 CPU(210)로 공급되는 제1작동 전압(PW1)의 레벨을 증가시킬 수 있다. 즉, CPU(210)에 대한 DVFS가 수행될 수 있다(S60).
동시에 또는 병렬적으로, 제1제어 신호(CTR1)에 응답하여 작동하는 CMU(230)는 메모리 인터페이스(220)로 공급되는 제2클락 신호(CLK2)의 제2주파수를 증가시키고 제3제어 신호(CTR3)에 응답하여 작동하는 PMIC(300)는 메모리 인터페이스 (220)로 공급되는 제4작동 전압(PW4)의 레벨을 증가시킬 수 있다. 즉, 메모리 인터페이스(220)에 대한 DVFS가 수행될 수 있다(S60).
슬레이브 장치가 입출력 인터페이스(250)일 때, WAP(216)은, 하나 또는 그 이상의 값들(NOI 및/또는 NOCM)에 기초하여, CPU(210)의 워크로드들이 컴퓨트-바운드인지 입출력-바운드인지를 판단할 수 있다(S20).
CPU(210)의 워크로드들이 컴퓨트-바운드일 때(S20의 YES), CPU(210)에 대한 DVFS가 수행될 수 있다(S30)
그러나, CPU(210)의 워크로드들이 컴퓨트-바운드가 아닐 때(S20의 NO), WAP (216)은 CPU(210)의 워크로드들이 입출력-바운드인지를 판단할 수 있다(S40).
CPU(210)의 워크로드들이 입출력-바운드일 때(S40의 YES), WAP(216)은 입출력 인터페이스(250)에 대한 DVFS를 수행하기 위해 제1중간 제어 신호와 제2중간 제어 신호를 생성할 수 있다. 즉, CPU(210)의 워크로드들이 크더라도, WAP(216)은 CPU(210) 대신에 입출력 인터페이스(250)에 대한 DVFS를 수행하기 위해 제1중간 제어 신호와 제2중간 제어 신호를 생성할 수 있다.
제1제어 신호(CTR1)에 응답하여 작동하는 CMU(230)는 입출력 인터페이스 (250)로 공급되는 제3클락 신호(CLK3)의 제3주파수를 증가시킬 수 있고, 제3제어 신호(CTR3)에 응답하여 작동하는 PMIC(300)는 입출력 인터페이스(250)로 공급되는 제6작동 전압(PW6)의 레벨을 증가시킬 수 있다. 즉, 입출력 인터페이스(250)에 대한 DVFS가 수행될 수 있다(S50).
CPU(210)의 워크로드들이 컴퓨트-바운드가 아니고 입출력-바운드도 아닐 때 (S40의 NO), WAP(216)은 CPU(210)에 대한 DVFS와 입출력 인터페이스(250)에 대한 DVFS를 동시에 또는 병렬적으로 수행하기 위해 제1중간 제어 신호와 제2중간 제어 신호를 생성할 수 있다.
제1제어 신호(CTR1)에 응답하여 작동하는 CMU(230)는 CPU(210)로 공급되는 제1클락 신호(CLK1)의 제1주파수를 증가시키고 제3제어 신호(CTR3)에 응답하여 작동하는 PMIC(300)는 CPU(210)로 공급되는 제1작동 전압(PW1)의 레벨을 증가시킬 수 있다. 즉, CPU(210)에 대한 DVFS가 수행될 수 있다(S60).
동시에 또는 병렬적으로, 제1제어 신호(CTR1)에 응답하여 작동하는 CMU(230)는 입출력 인터페이스(250)로 공급되는 제3클락 신호(CLK3)의 제3주파수를 증가시키고 제3제어 신호(CTR3)에 응답하여 작동하는 PMIC(300)는 입출력 인터페이스 (250)로 공급되는 제6작동 전압(PW6)의 레벨을 증가시킬 수 있다. 즉, 입출력 인터페이스(250)에 대한 DVFS가 수행될 수 있다(S60).
도 4에 도시된 바와 같이, WAP(216)은 하나 또는 그 이상의 값들(NOI 및/또는 NOCM)을 이용하여 CPI 또는 MPKI를 계산할 수 있다.
WAP(216)은, 계산된 값(CPI 또는 MPKI)이 제1기준 값(REF1)보다 작을 때, CPU(210)의 워크로드들을 컴퓨트-바운드로 결정하고 CPU(210)에 대한 DVFS를 제어할 수 있는 제어 신호들(CTR1과 CTR2)을 생성할 수 있다.
WAP(216)은, 계산된 값(CPI 또는 MPKI)이 제1기준 값(REF1)과 같거나 크고 제2기준 값(REF2)보다 작을 때, CPU(210)에 대한 DVFS와 슬레이브 장치(220 또는 250)에 대한 DVFS를 동시에 또는 병렬적으로 제어할 수 있는 제어 신호들(CTR1과 CTR2)을 생성할 수 있다.
WAP(216)은, 계산된 값(CPI 또는 MPKI)이 제2기준 값(REF2)과 같거나 클 때, 슬레이브 장치(220 또는 250)에 대한 DVFS를 제어할 수 있는 제어 신호들(CTR1과 CTR2)을 생성할 수 있다.
설계 사양들에 따라, 제1기준 값(REF1)과 제2기준 값(REF2) 각각은 CPU(210)에 의해 프로그램될 수 있다.
도 6은 마스터 장치에 대한 DVFS와 슬레이브 장치에 대한 DVFS를 제어하는 스킴을 개념적으로 나타낸다.
CPU(210)의 워크로드들이 컴퓨트-바운드(CB)일 때, CPU(210)로 공급되는 제1클락 신호(CLK1)의 제1주파수는 제1라인(GP1)을 따라 증가할 수 있고 CPU(210)로 공급되는 제1작동 전압(PW1)의 레벨은 제1라인(GP1)을 따라 증가할 수 있다. 각 곡선(EP1~EPn)은 등전압선(equivalent voltage line)을 나타낼 수 있다.
CPU(210)의 워크로드들이 메모리-바운드(MB)일 때, 메모리 인터페이스(220)로 공급되는 제2클락 신호(CLK2)의 제2주파수는 제5라인(GP5)을 따라 증가할 수 있고 메모리 인터페이스(220)로 공급되는 제4작동 전압(PW4)의 레벨은 제5라인(GP5)을 따라 증가할 수 있다.
CPU(210)의 워크로드들에 따라, CPU(210)에 대한 DVFS와 슬레이브 장치(220 또는 250)에 대한 DVFS가 동시에 또는 병렬적으로 수행될 때, CPU(210)로 공급되는 제1클락 신호(CLK1)의 제1주파수와 제1작동 전압(PW1)의 레벨과 슬레이브 장치(220 또는 250)로 클락 신호(CLK2 또는 CLK3)의 주파수와 작동 전압(PW4 또는 PW6)의 레벨은 복수의 라인들(GP2~GP4) 중에서 어느 하나를 따라 증가할 수 있다.
도 6에 도시된 라인들(GP1~GP5)과 등전압선들(EP1~EPn)은 예시적으로 도시된 것으로서 본 발명의 기술적 사상은 라인들(GP1~GP5)의 개수와 형태 및/또는 등전압선들(EP1~EPn)의 개수와 간격에 한정되는 것은 아니다.
도 7은 본 발명의 일 실시 예에 따른 시스템 온 칩의 작동을 설명하는 플로우 차트이다.
도 1부터 도 7을 참조하면, 성능 모니터링 유닛(211)은 주어진 시간 동안 마스터 장치(210)에 의해 총 명령들(또는 총 워크로드들)이 처리되는 과정에서 생성된 제1이벤트들 중에서 제2이벤트들의 개수(예컨대, 처리된 명령들의 총 개수에 해당하는 이벤트들의 개수)를 카운트하고, 제1카운트 값(NOI)을 생성할 수 있다(S110). 성능 모니터링 유닛(211)은 상기 제1이벤트들 중에서 마스터 장치(210)와 슬레이브 장치(220 또는 250)의 상호 작용에 의해 처리될 수 있는 명령들과 관련된 제3이벤트들(예컨대, L2 캐시 미스들의 개수에 해당하는 이벤트들) 의 개수를 카운트하고, 제2카운트 값 (NOCM)을 생성할 수 있다(S120).
DVFS 프로그램(213), 예컨대 WAP(216)은, 제1카운트 값(NOI)과 제2카운트 값 (NOCM)에 기초하여, 하나 또는 그 이상의 DVFS 대상 장치들을 선택할 수 있다. 하나 또는 그 이상의 DVFS 대상 장치들을 선택하는 방법은 도 4 또는 도 5를 참조하여 설명한 바와 동일 또는 유사하다.
WAP(216)은 하나 또는 그 이상의 DVFS 대상 장치들에 대한 DVFS를 제어할 수 있는 제어 신호들(CTR1과 CTR2)을 생성할 수 있다. CMU(230)는 제1제어 신호(CTR1)에 응답하여 클락 신호들(CLK1, CLK2, 및 CLK3) 중에서 적어도 하나의 클락 신호의 주파수를 조절(예컨대, 증가 또는 감소)할 수 있다. PMIC(300)는 제3제어 신호 (CTR3)에 응답하여 작동 전압들(PW1, PW4, 및 PW6) 중에서 적어도 하나의 레벨을 조절(예컨대, 증가 또는 감소)할 수 있다.
즉, 컨트롤러(200)는 제1카운트 값(NOI)과 제2카운트 값(NOCM)에 기초하여 결정된 MPKI를 이용하여 하나 또는 그 이상의 DVFS 대상 장치들에 대한 DVFS를 수행할 수 있다(S140).
도 8은 본 발명의 다른 실시 예에 따른 시스템 온 칩의 작동을 설명하는 플로우 차트이다.
도 1부터 도 6, 및 도 8을 참조하면, 성능 모니터링 유닛(211)은 주어진 시간 동안 CPU(210)에 의해 처리된 총 명령들(또는 총 워크로드들)에 기초하여 CPI를 계산하고, 계산된 CPI 값을 제1카운트 값(NOI)으로서 생성할 수 있다(S210). 계산된 CPI 값은 진정한 의미의 카운트 값이 아닐 수도 있으나 도 1부터 도 7을 참조하여 설명된 제1카운트 값(NOI)과의 일관성을 위해 제1카운트 값(NOI)으로 칭한다.
예컨대, 컴퓨트-바운드에 해당하는 프로그램의 경우, 메모리(400)를 액세스하는 명령들(또는 워크로드)과 관련된 이벤트들의 개수는 많지 않다. 상기 이벤트들은 대부분 L1 캐시 히트 또는 L2 캐시 히트와 관련된 이벤트들일 수 있다. 이 경우, 메모리 레이턴시(memory latency)는 거의 0 사이클에 가까울 수 있으므로, CPI는 1보다 작거나 1에 가까운 값일 수 있다.
WAP(216)은 계산된 CPI 값(CPI)과 기준 값(REF)을 비교하고, 비교의 결과에 따라 CPU(210)의 워크로드가 컴퓨트-바운드 또는 메모리-바운드인지를 판단할 수 있다(S220).
CPI 값(CPI)이 기준 값(REF), 예컨대, 1보다 작을 때(S220의 YES), WAP(216)는 CPU(210)의 워크로드들을 컴퓨트-바운드로 판단하고, 판단 결과에 따라 CPU (210)에 대한 DVFS를 제어할 수 있는 제어 신호들(CTR1과 CTR2)을 생성할 수 있다 (S230).
그러나, CPU(210)에서 수행되는 연산이 복잡하거나 부동 소수점(floating point) 등에 대한 연산일 때에는 메모리(400)를 액세스하지 않더라도 CPI 값(CPI)은 기준 값(REF), 예컨대, 1보다 클 수 있다(S220의 NO).
성능 모니터링 유닛(211)은 주어진 시간 동안 마스터 장치(210)에 의해 처리된 총 명령들(또는 총 워크로드들)과 관련된 제1이벤트들 중에서 CPU(210)와 슬레이브 장치(220 또는 250)의 상호 작용에 의해 처리될 수 있는 명령들(또는 워크로드들)과 관련된 제3이벤트들의 개수를 카운트하고, 제2카운트 값(NOCM)을 생성하고, 제2카운트 값(NOCM)을 WAP(216)으로 공급할 수 있다. 앞에서 설명한 바와 같이, 제2카운트 값(NOCM)은 L2 캐시 미스 카운트일 수 있다.
WAP(216)은 제2카운트 값(NOCM)을 참조하여 CPU(210)의 워크로드들이 컴퓨트-바운드 또는 메모리-바운드인지를 판단할 수 있다. 예컨대, WAP(216)은, 제2카운트 값(NOCM)에 기초하여, CPI 값이 실제로 메모리(400)를 액세스하는 명령들과 관련된 이벤트들 때문에 증가했는지 또는 복잡한 연산 때문에 증가했는지를 판단할 수 있다(S240).
CPI 값이 실제로 메모리(400)를 액세스하는 명령들과 관련된 이벤트들 때문에 기준 값(REF)보다 커졌을 때, WAP(216)은 CPU(210)의 워크로드들을 메모리-바운드로 판단하고, 판단 결과에 따라 슬레이브 장치(220 또는 250)에 대한 DVFS를 제어할 수 있는 제어 신호들 (CTR1과 CTR2)을 생성할 수 있다(S250).
그러나, CPI 값이 복잡한 연산 때문에 기준 값(REF)보다 커졌을 때, WAP(216)은 CPU(210)의 워크로드들을 컴퓨트-바운드로 판단하고, 판단 결과에 따라 슬레이브 장치(220 또는 250)에 대한 DVFS를 제어할 수 있는 제어 신호들(CTR1과 CTR2)을 생성할 수 있다(S230). 예컨대, 제2카운트 값(NOCM)이 기준 값보다 작을 때 S230이 수행될 수 있고, 제2카운트 값(NOCM)이 상기 기준 값과 같거나 클 때 S250이 수행될 수 있다. CPI 값은 제2카운트 값(NOCM)에 영향을 받을 수 있다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100: 컴퓨팅 장치
200: 제어 회로
210: CPU
211: 성능 모니터링 유닛
213: DVFS 프로그램
215: DVFS 관리자
216: 워크로드 인식 프로그램
220: 메모리 인터페이스
230: 클락 관리 유닛
240: 전력 관리 유닛
250: 입출력 인터페이스
300: 전력 관리 IC
400: 메모리

Claims (20)

  1. DVFS(dynamic voltage and frequency scaling) 프로그램을 실행하는 마스터 장치;
    상기 마스터 장치와 통신할 수 있는 슬레이브 장치; 및
    상기 마스터 장치에 의해 명령들이 처리되는 과정에서 생성된 제1이벤트들을 수신하고, 상기 제1이벤트들과 관련된 명령들의 총 개수에 해당하는 제2이벤트들의 개수를 카운트하여 제1카운트 값을 생성하고, 상기 제1이벤트들 중에서 상기 마스터 장치와 상기 슬레이브 장치의 상호 작용에 의해 처리되는 제1명령들과 관련된 제3이벤트들의 개수를 카운트하여 제2카운트 값을 생성하는 성능 모니터링 유닛을 포함하고,
    상기 마스터 장치에 의해 실행되는 상기 DVFS 프로그램은,
    상기 제1카운트 값과 상기 제2카운트 값에 기초하여, 상기 마스터 장치와 상기 슬레이브 장치 중에서 적어도 하나에 대한 DVFS를 제어할 수 있는 제어 신호를 생성하는 시스템 온 칩.
  2. 제1항에 있어서,
    상기 마스터 장치는 CPU(central processing unit), GPU(graphics processing unit), ISP(image signal processor), DSP(digital signal processor), 및 멀티미디어 프로세서(multimedia processor) 중에서 어느 하나이고,
    상기 슬레이브 장치는 메모리 인터페이스와 입출력 인터페이스 중에서 어느 하나인 시스템 온 칩.
  3. 제1항에 있어서, 상기 시스템 온 칩은,
    상기 제어 신호에 응답하여, 상기 마스터 장치로 공급되는 제1클락 신호의 제1주파수와 상기 슬레이브 장치로 공급되는 제2클락 신호의 제2주파수 중에서 적어도 하나를 제어하는 클락 관리 유닛을 더 포함하는 시스템 온 칩.
  4. 제1항에 있어서, 상기 시스템 온 칩은,
    상기 제어 신호에 응답하여, 상기 마스터 장치로 공급되는 제1전압의 레벨과 상기 슬레이브 장치로 공급되는 제2전압의 레벨 중에서 적어도 하나를 제어하기 위해, 전력 관리 IC를 제어하는 전력 관리 유닛을 더 포함하는 시스템 온 칩.
  5. 제1항에 있어서,
    상기 제2이벤트들은 상기 마스터 장치에 의해 수행된 명령어들과 관련되고,
    상기 제3이벤트들은 L2 캐시 미스들과 관련된 시스템 온 칩.
  6. 제1항에 있어서,
    상기 DVFS 프로그램은 상기 제1카운트 값과 상기 제2카운트 값에 기초하여 MPKI(Misses Per Kilo-Instructions)를 계산하고, 계산된 MPKI에 따라 상기 제1제어 신호와 상기 제2제어 신호를 생성하고,
    상기 제2카운트 값은 L2 캐시 미스 카운트인 시스템 온 칩.
  7. DVFS(Dynamic voltage and frequency scaling) 프로그램을 실행하는 마스터 장치;
    상기 마스터 장치와 통신할 수 있는 슬레이브 장치;
    상기 마스터 장치에 의해 명령들이 처리되는 과정에서 생성된 제1이벤트들을 수신하고, 상기 제1이벤트들 중에서 상기 명령들의 총 개수에 해당하는 제2이벤트들의 개수를 카운트하여 제1카운트 값을 생성하고, 상기 제1이벤트들 중에서 상기 마스터 장치와 상기 슬레이브 장치의 상호 작용에 의해 처리되는 제1명령들과 관련된 제3이벤트들의 개수를 카운트하여 제2카운트 값을 생성하는 성능 모니터링 유닛; 및
    상기 마스터 장치, 상기 슬레이브 장치, 및 상기 성능 모니터링 유닛 각각으로 해당하는 작동 전압을 공급하는 전력 관리 IC를 포함하고,
    상기 마스터 장치에 의해 실행되는 상기 DVFS 프로그램은,
    상기 제1카운트 값과 상기 제2카운트 값에 기초하여, 상기 마스터 장치와 상기 슬레이브 장치 중에서 적어도 하나에 대한 DVFS를 제어할 수 있는 제어 신호를 생성하는 컴퓨팅 장치.
  8. 제7항에 있어서,
    상기 마스터 장치는 CPU(central processing unit), GPU(graphics processing unit), ISP(image signal processor), DSP(digital signal processor), 및 멀티미디어 프로세서(multimedia processor) 중에서 어느 하나이고,
    상기 슬레이브 장치는 메모리 인터페이스와 입출력 인터페이스 중에서 어느 하나인 컴퓨팅 장치.
  9. 제7항에 있어서, 상기 시스템 온 칩은,
    상기 제어 신호에 응답하여, 상기 마스터 장치로 공급되는 제1클락 신호의 제1주파수와 상기 슬레이브 장치로 공급되는 제2클락 신호의 제2주파수 중에서 적어도 하나를 제어하는 클락 관리 유닛을 더 포함하는 컴퓨팅 장치.
  10. 제7항에 있어서, 상기 시스템 온 칩은,
    상기 제어 신호에 응답하여, 상기 마스터 장치로 공급되는 제1전압의 레벨과 상기 슬레이브 장치로 공급되는 제2전압의 레벨 중에서 적어도 하나를 제어하기 위해, 상기 전력 관리 IC를 제어하는 전력 관리 유닛을 더 포함하는 컴퓨팅 장치.
  11. 제7항에 있어서,
    상기 제2이벤트들은 상기 마스터 장치에 의해 수행된 명령어들과 관련되고,
    상기 제3이벤트들은 L2 캐시 미스들과 관련된 컴퓨팅 장치.
  12. 제7항에 있어서,
    상기 DVFS 프로그램은 상기 제1카운트 값과 상기 제2카운트 값에 기초하여 MPKI(Misses Per Kilo-Instructions)를 계산하고, 계산된 MPKI에 따라 상기 제어 신호를 생성하고,
    상기 제2카운트 값은 L2 캐시 미스 카운트인 컴퓨팅 장치.
  13. 제7항에 있어서, 상기 데이터 처리 시스템은 메모리를 더 포함하고,
    상기 마스터 장치는 CPU(central processing unit), GPU(graphics processing unit), ISP(image signal processor), DSP(digital signal processor), 및 멀티미디어 프로세서(multimedia processor) 중에서 어느 하나이고,
    상기 슬레이브 장치는, 상기 마스터 장치의 제어에 따라, 상기 메모리의 작동을 제어하는 메모리 인터페이스인 컴퓨팅 장치.
  14. DVFS(Dynamic voltage and frequency scaling) 프로그램을 실행하는 마스터 장치와 상기 마스터 장치와 통신할 수 있는 슬레이브 장치를 포함하는 시스템 온 칩의 작동 방법에 있어서, 상기 작동 방법은,
    성능 모니터링 유닛이 상기 마스터 장치에 의해 명령들이 처리되는 과정에서 생성된 제1이벤트들을 수신하고, 상기 제1이벤트들 중에서 상기 명령들의 개수에 해당하는 제1카운트 값을 생성하는 단계; 및
    상기 마스터 장치에 의해 실행되는 상기 DVFS 프로그램이, 상기 제1카운트 값에 기초하여, 상기 마스터 장치와 상기 슬레이브 장치 각각에 대한 DVFS를 제어하는 단계를 포함하는 시스템 온 칩의 작동 방법.
  15. 제14항에 있어서,
    상기 마스터 장치는 CPU(central processing unit), GPU(graphics processing unit), ISP(image signal processor), DSP(digital signal processor), 및 멀티미디어 프로세서(multimedia processor) 중에서 어느 하나이고,
    상기 슬레이브 장치는 메모리 인터페이스와 입출력 인터페이스 중에서 어느 하나인 시스템 온 칩의 작동 방법.
  16. 제14항에 있어서,
    상기 성능 모니터링 유닛이 상기 제1이벤트들 중에서 상기 마스터 장치와 상기 슬레이브 장치의 상호 작용에 의해 처리되는 제1명령과 관련된 제2이벤트들의 개수를 카운트하여 제2카운트 값을 생성하는 단계를 더 포함하고,
    상기 마스터 장치에 의해 실행되는 상기 DVFS 프로그램은,
    상기 제1카운트 값과 상기 제2카운트 값에 기초하여, 상기 마스터 장치와 상기 슬레이브 장치 각각에 대한 상기 DVFS를 제어하는 시스템 온 칩의 작동 방법.
  17. 제16항에 있어서,
    상기 제1카운트 값은 CPI(cycle per instruction)이고,
    상기 제2카운트 값은 L2 캐시 미스 카운트인 시스템 온 칩의 작동 방법.
  18. 제17항에 있어서,
    상기 CPI가 제1기준 값보다 작을 때 상기 DVFS 프로그램은 상기 마스터 장치에 대한 상기 DVFS를 제어하고,
    상기 CPI가 상기 제1기준 값보다 크고 상기 L2 캐시 미스 카운트가 제2기준 값보다 작을 때 상기 DVFS 프로그램은 상기 마스터 장치에 대한 상기 DVFS를 제어하는 시스템 온 칩의 작동 방법.
  19. 제16항에 있어서,
    상기 DVFS 프로그램은,
    상기 제1카운트 값과 상기 제2카운트 값에 기초하여 MPKI(Misses Per Kilo-Instructions)를 계산하고, 계산된 MPKI에 따라 상기 마스터 장치와 상기 슬레이브 장치 각각에 대한 상기 DVFS를 제어하고,
    상기 제1카운트 값은 상기 명령들의 총 개수에 해당하고,
    상기 제2카운트 값은 L2 캐시 미스 카운트인 시스템 온 칩의 작동 방법.
  20. 제19항에 있어서,
    상기 계산된 MPKI가 제1기준 값보다 작을 때, 상기 DVFS 프로그램은 상기 마스터 장치에 대한 상기 DVFS를 제어하고,
    상기 계산된 MPKI가 제2기준 값보다 같거나 클 때, 상기 DVFS 프로그램은 상기 슬레이브 장치에 대한 상기 DVFS를 제어하고,
    상기 계산된 MPKI가 상기 제1기준 값과 같거나 크고 상기 제2기준 값보다 작을 때, 상기 DVFS 프로그램은 상기 마스터 장치와 상기 슬레이브 장치 각각에 대한 상기 DVFS를 제어하는 시스템 온 칩의 작동 방법.
KR1020150144046A 2014-11-27 2015-10-15 워크로드를 이용하여 전력을 제어할 수 있는 시스템 온 칩, 이의 작동 방법, 및 이를 포함하는 컴퓨팅 장치 KR20160063974A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
TW104136402A TWI694379B (zh) 2014-11-27 2015-11-05 使用工作負載控制電力的系統晶片、其操作方法以及包含上述的計算裝置
US14/943,268 US20160154449A1 (en) 2014-11-27 2015-11-17 System on chips for controlling power using workloads, methods of operating the same, and computing devices including the same
DE102015223187.9A DE102015223187A1 (de) 2014-11-27 2015-11-24 Ein-Chip-Systeme zum Steuern von Leistung mittels Auslastungen, Verfahren zum Betreiben dieser, und Computervorrichtungen, die diese umfassen
CN201510849786.9A CN105653005A (zh) 2014-11-27 2015-11-27 片上系统、操作片上系统的方法和包括片上系统的装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20140167104 2014-11-27
KR1020140167104 2014-11-27

Publications (1)

Publication Number Publication Date
KR20160063974A true KR20160063974A (ko) 2016-06-07

Family

ID=56193020

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150144046A KR20160063974A (ko) 2014-11-27 2015-10-15 워크로드를 이용하여 전력을 제어할 수 있는 시스템 온 칩, 이의 작동 방법, 및 이를 포함하는 컴퓨팅 장치

Country Status (3)

Country Link
KR (1) KR20160063974A (ko)
CN (1) CN105653005A (ko)
TW (1) TWI694379B (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102009425B1 (ko) * 2018-02-09 2019-08-09 울산과학기술원 컴퓨팅 시스템의 성능 관리 방법, 이를 위한 컴퓨터 프로그램 및 컴퓨터 판독 가능 기록 매체
US10747297B2 (en) 2016-12-28 2020-08-18 Samsung Electronics Co., Ltd. Application processor performing a dynamic voltage and frequency scaling operation, computing system including the same, and operation method thereof
KR20210078260A (ko) * 2019-12-18 2021-06-28 고려대학교 산학협력단 기계학습 알고리즘 기반 최적의 cpu 주파수 예측 장치

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9778871B1 (en) * 2016-03-27 2017-10-03 Qualcomm Incorporated Power-reducing memory subsystem having a system cache and local resource management
CN106126841B (zh) * 2016-06-30 2019-08-23 福州瑞芯微电子股份有限公司 一种基于硬件变频的方法和装置
KR20180085605A (ko) * 2017-01-19 2018-07-27 삼성전자주식회사 핸드쉐이크를 이용하여 메모리의 전력을 조절하는 시스템 온 칩 및 이의 동작 방법
US11169953B2 (en) * 2018-02-28 2021-11-09 SK Hynix Inc. Data processing system accessing shared memory by using mailbox
CN110888520B (zh) * 2018-08-21 2021-07-09 慧荣科技股份有限公司 操作频率调整方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7840825B2 (en) * 2006-10-24 2010-11-23 International Business Machines Corporation Method for autonomous dynamic voltage and frequency scaling of microprocessors
GB201008785D0 (en) * 2009-12-18 2010-07-14 Univ Gent A counter architecture for online dvfs profitability estimation
US20120297232A1 (en) * 2011-05-16 2012-11-22 Bircher William L Adjusting the clock frequency of a processing unit in real-time based on a frequency sensitivity value
CN103246340A (zh) * 2012-02-06 2013-08-14 索尼公司 动态调整中央处理单元的频率的装置和方法
US20140089699A1 (en) * 2012-09-27 2014-03-27 Advanced Micro Devices Power management system and method for a processor
US9575542B2 (en) * 2013-01-31 2017-02-21 Hewlett Packard Enterprise Development Lp Computer power management
US9395784B2 (en) * 2013-04-25 2016-07-19 Intel Corporation Independently controlling frequency of plurality of power domains in a processor system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10747297B2 (en) 2016-12-28 2020-08-18 Samsung Electronics Co., Ltd. Application processor performing a dynamic voltage and frequency scaling operation, computing system including the same, and operation method thereof
US11327555B2 (en) 2016-12-28 2022-05-10 Samsung Electronics Co., Ltd. Application processor performing a dynamic voltage and frequency scaling operation, computing system including the same, and operation method thereof
US11656675B2 (en) 2016-12-28 2023-05-23 Samsung Electronics Co., Ltd. Application processor performing a dynamic voltage and frequency scaling operation, computing system including the same, and operation method thereof
KR102009425B1 (ko) * 2018-02-09 2019-08-09 울산과학기술원 컴퓨팅 시스템의 성능 관리 방법, 이를 위한 컴퓨터 프로그램 및 컴퓨터 판독 가능 기록 매체
KR20210078260A (ko) * 2019-12-18 2021-06-28 고려대학교 산학협력단 기계학습 알고리즘 기반 최적의 cpu 주파수 예측 장치

Also Published As

Publication number Publication date
TWI694379B (zh) 2020-05-21
TW201629760A (zh) 2016-08-16
CN105653005A (zh) 2016-06-08

Similar Documents

Publication Publication Date Title
US11327555B2 (en) Application processor performing a dynamic voltage and frequency scaling operation, computing system including the same, and operation method thereof
KR20160063974A (ko) 워크로드를 이용하여 전력을 제어할 수 있는 시스템 온 칩, 이의 작동 방법, 및 이를 포함하는 컴퓨팅 장치
KR102500661B1 (ko) 다중 레벨 셀 모드 비휘발성 메모리를 위한 비용 최적화된 단일 레벨 셀 모드 비휘발성 메모리
US20160154449A1 (en) System on chips for controlling power using workloads, methods of operating the same, and computing devices including the same
KR102002899B1 (ko) 시스템-온 칩, 이의 동작 방법, 및 이를 포함하는 장치
US11693466B2 (en) Application processor and system on chip
US11126246B2 (en) Apparatus, method, and system for power consumption management of system-on-chip
KR20170110448A (ko) 메모리 컨트롤러 및 이를 포함하는 저장 장치
KR102352756B1 (ko) 애플리케이션 프로세서, 시스템 온 칩, 및 이를 포함하는 컴퓨팅 장치
JP6333971B2 (ja) ジェネリックホストベースのコントローラレイテンシ方法及び装置
US10635337B2 (en) Dynamic configuration of compressed virtual memory
KR20170129709A (ko) 고체 상태 드라이브에서 가비지 수집 리소스 할당을 적응시키는 메커니즘
KR20210101632A (ko) 스토리지 장치 및 상기 스토리지 장치의 동작 방법
KR20210017054A (ko) 멀티-코어 시스템 및 그 동작 제어 방법
KR20140021283A (ko) 다중 dvfs 정책을 이용한 soc 및 이의 동작 방법
JP7335253B2 (ja) スコアボードの保存及び復元
US20240061492A1 (en) Processor performing dynamic voltage and frequency scaling, electronic device including the same, and method of operating the same
KR20240059343A (ko) 시스템 온 칩 및 이의 동작 방법
KR20240059344A (ko) 시스템 온 칩 및 이의 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application