KR102247742B1 - 애플리케이션 프로세서와 시스템 온 칩 - Google Patents

애플리케이션 프로세서와 시스템 온 칩 Download PDF

Info

Publication number
KR102247742B1
KR102247742B1 KR1020150055919A KR20150055919A KR102247742B1 KR 102247742 B1 KR102247742 B1 KR 102247742B1 KR 1020150055919 A KR1020150055919 A KR 1020150055919A KR 20150055919 A KR20150055919 A KR 20150055919A KR 102247742 B1 KR102247742 B1 KR 102247742B1
Authority
KR
South Korea
Prior art keywords
processor
user data
changed
task
signal
Prior art date
Application number
KR1020150055919A
Other languages
English (en)
Other versions
KR20160125137A (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 KR1020150055919A priority Critical patent/KR102247742B1/ko
Priority to US15/134,882 priority patent/US10229088B2/en
Publication of KR20160125137A publication Critical patent/KR20160125137A/ko
Priority to US16/259,252 priority patent/US10990153B2/en
Priority to US17/240,193 priority patent/US11693466B2/en
Application granted granted Critical
Publication of KR102247742B1 publication Critical patent/KR102247742B1/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/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
    • 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/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/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/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • 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
    • 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

본 발명의 실시 예에 따른 애플리케이션 프로세서는 사용자를 위한 사용자 데이터의 변경 여부를 체크하고, 제어 신호를 생성하는 체크 매니저를 실행하는 제1프로세서, 및 상기 제어 신호에 응답하여 상기 제1프로세서로 공급되는 전력을 동적으로 제어하는 전력 관리 유닛을 포함할 수 있다.

Description

애플리케이션 프로세서와 시스템 온 칩{APPLICATION PROCESSOR AND SYSTEM ON CHIP}
본 발명의 개념에 따른 실시 예는 애플리케이션 프로세서에 관한 것으로, 특히 사용자에게 직접적으로 제공되는 사용자를 위한 사용자 데이터의 변경 여부에 기초하여 동적으로 전력을 제어하는 애플리케이션 프로세서와 이를 포함하는 모바일 컴퓨팅 장치에 관한 것이다.
이종의 멀티-프로세서들(heterogeneous multi-processors)를 포함하는 시스템에서, 스케쥴러(scheduler)는 고성능-고전력 제1코어와 저성능-저전력 제2코어 사이에서 태스크를 스케쥴링한다. 다른 스케쥴링 방식과 대동소이하게, 상기 시스템의 스케쥴러는 주어진 잡(given job)이 많은 태스크를 제1코어에 할당하고 주어진 잡이 적은 태스크를 제2코어에 할당한다.
따라서, 주어진 잡이 적을 경우 상기 스케쥴러에 의해 상기 시스템에서 소모되는 전력은 감소하고 주어진 잡이 많은 경우 상기 스케쥴러에 의해 상기 시스템은 충분한 성능을 발휘할 수 있다. 즉, 종래의 시스템의 스케쥴러는 주어진 잡의 많고 적음에 따라 태스크를 스케쥴했다.
본 발명이 이루고자 하는 기술적인 과제는 사용자에게 제공되는 사용자를 위한 사용자 데이터의 변경 여부에 기초하여 동적으로 전력을 제어하는 애플리케이션 프로세서, 이를 포함하는 시스템 온 칩, 및 모바일 컴퓨팅 장치를 제공하는 것이다.
본 발명의 실시 예에 따른 애플리케이션 프로세서는 사용자를 위한 사용자 데이터의 변경 여부를 체크하고, 제어 신호를 생성하는 체크 매니저를 실행하는 제1프로세서와, 상기 체크 신호에 응답하여 상기 제1프로세서로 공급되는 전력을 동적으로 제어하는 전력 관리 유닛을 포함할 수 있다.
상기 애플리케이션 프로세서는 제2프로세서를 더 포함하고, 상기 체크 매니저는 상기 사용자 데이터의 변경 여부를 체크하고, 지시 신호를 생성하는 체커와 상기 지시 신호에 응답하여 상기 제1프로세서와 상기 제2프로세서 사이에서 수행되는 태스크 천이 기준값을 변경하는 스케줄러를 포함할 수 있다. 상기 제1프로세서와 상기 제2프로세서는 이종 멀티 프로세서들(heterogeneous multiprocessers)일 수 있다.
상기 지시 신호가 상기 사용자 데이터의 변경을 지시할 때, 상기 스케줄러는 상기 기준값을 유지하고, 상기 지시 신호가 상기 사용자 데이터가 변경되지 않음을 지시할 때, 상기 스케줄러는 상기 기준값을 변경할 수 있다.
상기 체크 매니저는 상기 스케줄러로부터 출력된 기준값 제어 신호에 응답하여 상기 사용자 데이터에 상응하는 태스크를 상기 제2프로세서로 마이그레이션하는 마이그레이터를 더 포함할 수 있다.
상기 체크 매니저는 상기 사용자 데이터의 변경 여부를 체크하고, 지시 신호를 생성하는 체커와, 상기 지시 신호에 응답하여 상기 사용자 데이터에 상응하는 태스크의 실행 주기를 제어하는 태스크 실행 주기 제어기를 포함할 수 있다.
상기 애플리케이션 프로세서는 제2프로세서를 더 포함하고, 상기 체크 매니저는 상기 사용자 데이터의 변경 여부를 체크하고, 지시 신호를 생성하는 체커와, 상기 지시 신호에 기초하여 상기 제1프로세서와 상기 제2프로세서의 작동 여부를 결정하는 핫플러그(hotplug) 모듈을 포함할 수 있다.
상기 체크 신호에 응답하여 상기 제1프로세서로 공급되는 클럭을 동적으로 제어하는 클럭 관리 유닛을 더 포함하고, 상기 체크 매니저는 상기 사용자 데이터의 변경 여부를 체크하고, 지시 신호를 생성하는 체커와, 상기 지시 신호에 기초하여 상기 제1프로세서에 대한 DVFS(Dynamic Voltage and Frequency Scaling)를 제어하는 DVFS 제어 모듈을 포함할 수 있다. 상기 사용자 데이터는 이미지 데이터 또는 넌-이미지 데이터일 수 있다.
본 발명의 실시 예에 따른 시스템 온 칩은 체크 매니저를 저장하는 메모리와, 전력 관리 유닛과, 상기 체크 매니저를 실행하는 제1프로세서를 포함하고, 상기 체크 매니저가 상기 제1프로세서에 의해 실행됨에 따라 상기 체크 매니저는 사용자를 위한 사용자 데이터의 변경 여부를 체크하고, 제어 신호를 생성하고, 상기 전력 관리 유닛은 상기 체크 신호에 응답하여 상기 제1프로세서로 공급되는 전력을 동적으로 제어할 수 있다.
상기 시스템 온 칩은 제2프로세서를 더 포함하고, 상기 체크 매니저는 상기 사용자 데이터의 변경 여부를 체크하고, 지시 신호를 생성하는 체커와, 상기 지시 신호에 응답하여 상기 제1프로세서와 상기 제2프로세서 사이에서 수행되는 태스크 천이 기준값을 변경하는 스케줄러를 포함할 수 있다. 상기 제1프로세서와 상기 제2프로세서는 이종 멀티 프로세서들(heterogeneous multiprocessers)일 수 있다.
상기 지시 신호가 상기 사용자 데이터의 변경을 지시할 때, 상기 스케줄러는 상기 기준값을 유지하고, 상기 지시 신호가 상기 사용자 데이터가 변경되지 않음을 지시할 때, 상기 스케줄러는 상기 기준값을 변경할 수 있다.
상기 체크 매니저는 상기 사용자 데이터의 변경 여부를 체크하고, 지시 신호를 생성하는 체커와, 상기 지시 신호에 응답하여 상기 사용자 데이터에 상응하는 태스크의 실행 주기를 제어하는 태스크 실행 주기 제어기를 포함할 수 있다.
상기 시스템 온 칩은 제2프로세서를 더 포함하고, 상기 체크 매니저는 상기 사용자 데이터의 변경 여부를 체크하고, 지시 신호를 생성하는 체커와, 상기 지시 신호에 기초하여 상기 제1프로세서와 상기 제2프로세서의 작동 여부를 결정하는 핫 플러그 모듈을 포함할 수 있다.
상기 체크 신호에 응답하여 상기 제1프로세서로 공급되는 클럭을 동적으로 제어하는 클럭 관리 유닛을 더 포함하고, 상기 체크 매니저는 상기 사용자 데이터의 변경 여부를 체크하고, 지시 신호를 생성하는 체커와, 상기 지시 신호에 기초하여 상기 제1프로세서에 대한 DVFS(Dynamic Voltage and Frequency Scaling)를 제어하는 DVFS 제어 모듈을 포함할 수 있다.
본 발명의 실시 예에 따른 모바일 컴퓨팅 장치는 출력 장치와, 상기 출력 장치를 제어하는 애플리케이션 프로세서를 포함하고, 상기 애플리케이션 프로세서는 사용자를 위한 사용자 데이터의 변경 여부를 체크하고, 제어 신호를 생성하는 체크 매니저를 실행하는 제1프로세서와, 상기 체크 신호에 응답하여 상기 제1프로세서로 공급되는 전력을 동적으로 제어하는 전력 관리 유닛을 포함할 수 있다.
상기 애플리케이션 프로세서는 제2프로세서를 더 포함하고, 상기 체크 매니저는 상기 사용자 데이터의 변경 여부를 체크하고, 지시 신호를 생성하는 체커와, 상기 지시 신호에 응답하여 상기 제1프로세서와 상기 제2프로세서 사이의 태스크 천이 기준값을 변경하는 스케줄러를 포함할 수 있다..
상기 애플리케이션 프로세서는 제2프로세서를 더 포함하고, 상기 체크 매니저는 상기 사용자 데이터의 변경 여부를 체크하고, 지시 신호를 생성하는 체커와, 상기 지시 신호에 기초하여 상기 제1프로세서와 상기 제2프로세서의 작동 여부를 결정하는 핫플러그(hotplug) 모듈을 포함할 수 있다.
상기 체크 신호에 응답하여 상기 제1프로세서로 공급되는 클럭을 동적으로 제어하는 클럭 관리 유닛을 더 포함하고, 상기 체크 매니저는 상기 사용자 데이터의 변경 여부를 체크하고, 지시 신호를 생성하는 체커와, 상기 지시 신호에 기초하여 상기 제1프로세서에 대한 DVFS(Dynamic Voltage and Frequency Scaling)를 제어하는 DVFS 제어 모듈을 포함할 수 있다.
본 발명의 실시 예에 따른 애플리케이션 프로세서는 사용자에게 (직접적으로) 제공되는 사용자를 위한 사용자 데이터의 변경 여부에 기초하여 전력 관리를 수행할 수 있는 효과가 있다.
따라서, 상기 애플리케이션 프로세서는 사용자 데이터의 변경 여부에 기초하여 동적으로 전력을 제어할 수 있으므로, 상기 애플리케이션 프로세서의 전력 소모를 감소시키는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 컴퓨팅 장치의 개략적인 블록도이다.
도 2는 본 발명의 일 실시 예에 따른 컨트롤러의 전력 관리 방법을 설명하기 위한 블록도이다.
도 3은 본 발명의 다른 실시 예에 따른 컨트롤러의 전력 관리 방법을 설명하기 위한 블록도이다.
도 4는 도 3에 도시된 태스크 실행 주기 제어기의 작동 방법을 설명하기 위한 블록도이다.
도 5는 도 4에 도시된 태스크 실행 주기 제어기의 작동 방법을 설명하기 위한 그래프이다.
도 6은 도 3에 도시된 핫플러그 모듈의 작동 방법을 설명하기 위한 블록도이다.
도 7은 도 3에 도시된 DVFS 제어 모듈의 작동 방법을 설명하기 위한 블록도이다.
도 8은 도 2에 도시된 컨트롤러의 전력 관리 방법을 설명하기 위한 플로우 차트이다.
도 9는 도 4에 도시된 태스크 실행 주기 제어기의 작동 방법을 설명하기 위한 플로우 차트이다.
도 10은 도 5에 도시된 핫플러그 모듈의 작동 방법을 설명하기 위한 플로우 차트이다.
도 11은 도 6에 도시된 DVFS 제어 모듈의 작동 방법을 설명하기 위한 플로우 차트이다.
도 12는 본 발명의 실시 예에 따른 컨트롤러를 포함하는 전자 시스템의 개략적인 블록도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
본 명세서에서의 모듈(module)이라 함은 본 명세서에서 설명되는 각각의 명칭에 따른 기능과 동작을 수행할 수 있는 하드웨어를 의미할 수도 있고, 또는 특정한 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수도 있고, 또는 특정한 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예컨대 프로세서를 의미할 수 있다.
다시 말해, 모듈이란 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.
도 1은 본 발명의 실시 예에 따른 컴퓨팅 장치의 개략적인 블록도이다. 도 1을 참조하면, 컴퓨팅 장치(10)는 컨트롤러(100), 전력 관리 IC(power management integrated circuit(PMIC); 190), 및 메모리(400)를 포함할 수 있다.
컴퓨팅 장치(10)는 PC(personal computer) 또는 모바일 컴퓨팅 장치를 의미할 수 있다. 상기 모바일 컴퓨팅 장치는 랩탑 컴퓨터(laptop computer), 이동 전화기, 스마트 폰(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), 휴대용 게임 콘솔(handheld game console), 모바일 인터넷 장치(mobile internet device(MID)), 웨어러블 컴퓨터, 사물 인터넷(internet of things(IoT)) 장치, 만물 인터넷(internet of everything(IoE)) 장치, 또는 e-북(e-book)을 의미할 수 있다.
컨트롤러(100)는 PMIC(190)와 메모리(400)의 작동을 제어할 수 있다. 컨트롤러(100)는 호스트, 집적 회로(IC), 마더보드, 시스템 온 칩(system on chip(SoC)), 애플리케이션 프로세서(application processor(AP)), 또는 모바일(mobile) AP로 구현될 수 있다.
예컨대, 컨트롤러(100)가 SoC, AP, 또는 모바일 AP를 포함하는 제1패키지로 구현되고 메모리(400)가 제2패키지로 구현될 때, 상기 제2패키지는 상기 제1패키지의 위(over)에 스택 볼들을 통해 적층될 수 있다.
컨트롤러(100)는 버스 구조(105), CPU(central processing unit; 110), 내부 메모리(130), 클락 관리 유닛(clock management unit(CMU); 140), 전력 관리 유닛(power management unit(PMU);150), 메모리 인터페이스(160), 및 입출력 인터페이스(170)를 포함할 수 있다.
버스 구조(105)는 AMBA(Advanced Microcontroller Bus Architecture), AHB (Advanced High-performance Bus), APB(Advanced Peripheral Bus), AXI(Advanced eXtensible Interface), ACE(AXI Coherency Extensions), ASB(Advanced System Bus) 또는 이들의 결합으로 구현될 수 있으나 이에 한정되는 것은 아니다.
CPU(110)는 본 발명의 실시 예에 따른 체크 매니저(200)를 실행시킬 수 있다. 마스터, 예컨대 CPU(110)에 의해 실행되는 체크 매니저(200)에 따라 제어되는 전력 관리 방법은 컨트롤러(100)에 적용될 수 있다.
체크 매니저(200)는, CPU(110)에서 실행되는 프로그램 또는 펌웨어로서, 사용자를 위한 사용자 데이터의 변경 여부를 체크할 수 있고, 체크 결과에 따라 컨트롤러(100)의 전력을 제어하는 제어 신호를 생성할 수 있다. 예컨대, CPU(110)에 의해 실행되는 체크 매니저(200)는, CPU(110), 메모리 인터페이스(160), 및 입출력 인터페이스(170) 각각에 대한 파워 및/또는 주파수를 제공할 수 있는 제어 신호들을 생성할 수 있다. 또한, 체크 매니저(200)는, DVFS(dynamic voltage and frequency scaling)에 따라, CPU(110), 메모리 인터페이스(160), 및 입출력 인터페이스(170) 각각에 대한 전압과 주파수를 제어할 수 있다.
사용자를 위한 사용자 데이터는 컴퓨팅 장치(10)를 통해 사용자에게 제공되는 또는 직접적으로 제공되는 정보나 데이터, 예컨대, 사용자가 볼 수 있거나 들을 수 있거나 느낄 수 있는 정보나 데이터를 의미할 수 있다.
상기 사용자 데이터는 이미지 데이터 또는 넌-이미지(non-image) 데이터를 포함할 수 있다. 예컨대, 상기 이미지 데이터는 UI(user interface)의 업데이트, 광원, 및/또는 이미지 프레임 등 시각적인 데이터를 의미할 수 있다. 상기 넌-이미지 데이터는 음성(voice), 소리(sound), 및/또는 진동 등을 포함하는 비-시각적인 데이터를 의미할 수 있다.
CMU(140)는, CPU(110)로부터 출력된 또는 CPU(110)에 의해 실행되는 체크 매니저(200)로부터 출력된 제1제어 신호(CTR1)에 응답하여, CPU(110)로 공급되는 제1클락 신호(CLK1)의 제1주파수, 메모리 인터페이스(160)로 공급되는 제2클락 신호 (CLK2)의 제2주파수, 및/또는 입출력 인터페이스(170)로 공급되는 제3클락 신호 (CLK3)의 제3주파수를 조절할 수 있다. 여기서, 조절은 증가, 유지, 또는 감소를 의미할 수 있다.
PMU(150)은, CPU(110)로부터 출력된 또는 CPU(110)에 의해 실행되는 체크 매니저(200)로부터 출력된 제2제어 신호(CTR2)에 응답하여, PMIC(300)의 작동을 제어할 수 있는 제3제어 신호(CTR3)를 생성할 수 있다.
메모리 인터페이스(160)는, CPU(110)의 제어에 따라, 메모리(400)에 대한 라이트 작동 또는 리드 작동을 제어할 수 있다. 메모리 인터페이스(160)는, CMU(140)로부터 출력된 제2클락 신호(CLK2)의 제2주파수와 PMIC(300)로부터 출력된 제4작동 전압(PW4)의 레벨에 기초하여, 메모리(400)에 대한 라이트 작동 또는 리드 작동을 제어할 수 있다. 제2클락 신호(CLK2)의 제2주파수와 제4작동 전압(PW4)의 레벨 각각은 DVFS에 따라 조절될 수 있다.
비록, 도 1에서는 하나의 메모리 인터페이스(160)와 하나의 메모리(400)가 도시되었으나, 메모리 인터페이스(160)는 복수의 서로 다른 메모리 인터페이스들을 포함하는 메모리 인터페이스 세트(set)를 의미할 수 있고, 메모리(400)는 서로 다른 메모리들을 포함하는 세트를 의미할 수 있다.
예컨대, 메모리(400)가 DRAM(dynamic random access memory)과 플래시 메모리(예컨대, NAND-타입 플래시 메모리 또는 NOR-타입 플래시 메모리)를 포함하는 세트일 때, 메모리 인터페이스(160)는 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))로 구현될 수 있으나 이에 한정되는 것은 아니다.
PMIC(190)는, 제3제어 신호(CTR3)에 응답하여, 각 작동 전압(PW1~PW7)의 레벨을 조절할 수 있다. 예컨대, 제3제어 신호(CTR3)에 응답하여 PMIC(190)는 CPU (110)로 공급되는 제1작동 전압(PW1)의 레벨을 제어할 수 있고, CMU(140)로 공급되는 제2작동 전압(PW2)의 레벨을 제어할 수 있고, PMU(150)으로 공급되는 제3작동 전압(PW3)의 레벨을 제어할 수 있고, 메모리 인터페이스(160)로 공급되는 제4작동 전압(PW4)의 레벨을 제어할 수 있고, 메모리(400)로 공급되는 제5작동 전압(PW5)의 레벨을 제어할 수 있고, 입출력 인터페이스(170)로 공급되는 제6작동 전압(PW6)의 레벨을 제어할 수 있고, 내부 메모리(130)로 공급되는 제7작동 전압(PW7)의 레벨을 제어할 수 있으나 이에 한정되는 것은 아니다.
실시 예들에 따라, 각 제어 신호(CTR1, CTR2, 및 CTR3)는 적어도 하나의 아날로그 신호 또는 적어도 하나의 디지털 신호를 포함할 수 있다.
입출력 인터페이스(170)는 데이터의 입출력을 위한 인터페이스로서, CMU (140)로부터 출력된 제3클락 신호(CLK3)와 PMIC(300)로부터 출력된 제6작동 전압 (PW6)에 기초하여 데이터를 전송하거나 수신할 수 있다. 제3클락 신호(CLK3)의 제3주파수와 제6작동 전압(PW6)의 레벨 각각은 DVFS에 따라 조절될 수 있다.
실시 예들에 따라, 입출력 인터페이스(170)는 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)를 지원할 수 있는 인터페이스로 구현될 수 있으나 이에 한정되는 것은 아니다.
내부 메모리(130)는 CPU(110)의 작동 메모리일 수 있다. 예컨대, 내부 메모리(130)는 ROM(read only memory) 또는 SRAM일 수 있으나 이에 한정되는 것은 아니다. 예컨대, 메모리(400)가 불휘발성 메모리로 구현될 때, 컴퓨팅 장치(100)가 부팅될 때, 메모리(400)에 저장된 체크 매니저(200)는 내부 메모리(130)로 로드 (load)되고, CPU(110)에 의해 실행될 수 있다.
도 2는 본 발명의 일 실시 예에 따른 컨트롤러의 전력 관리 방법을 설명하기 위한 블록도이다.
본 명세서에서, 체크 매니저(200, 200-1, 200-2, 200-3, 200-4, 및 200-5)는 소프트웨어(S/W) 또는 펌웨어(firmware)로 구현될 수 있다. 체크 매니저(200, 200-1, 200-2, 200-3, 200-4, 및 200-5)는 프로그램으로 구현되어 메모리(130 또는 400)로 로드되고, 컨트롤러(100)로 작동 전압(PW1~PW7)이 공급되면, CPU(110)에 의하여 실행될 수 있다. 체크 매니저(200, 200-1, 200-2, 200-3, 200-4, 및 200-5)와 컨트롤러(100) 사이에는 OS와 미들웨어(middleware)가 개입될 수 있다.
도 1과 도 2를 참조하면, 체크 매니저(200-1)는 사용자 데이터 체커(210), 스케줄러(220), 및 마이그레이터(230)를 포함할 수 있다.
체크 매니저(200-1)는 도 1에서 설명한 체크 매니저(200)와 실질적으로 동일 또는 유사한 기능을 수행할 수 있다. 실시 예에 따라, 체크 매니저(200-1)는 사용자를 위한 사용자 데이터의 변경 여부를 체크하고, 제어 신호(MS)를 생성할 수 있다.
사용자 데이터 체커(210)는 사용자를 위한 사용자 데이터의 변경 여부를 체크하고, 지시 신호(CS)를 생성할 수 있다. 예컨대, 사용자 데이터 체커(210)는, 안드로이드(ANDROID) 운영 체제(operating system(OS))에서, 서피스 플링거(surface flinger)로 구현될 수 있으나 이에 한정되는 것은 아니다.
지시 신호(CS)는 사용자 데이터의 변경 여부를 지시하는 신호일 수 있다. 예컨대, 지시 신호(CS)는 상기 사용자 데이터가 변경됨을 지시할 수 있고, 상기 사용자 데이터가 변경되지 않음을 지시할 수 있다.
스케줄러(220)는, 지시 신호(CS)에 응답하여, 제1프로세서(115)와 제2프로세서(117) 사이에서 수행되는 태스크 천이(task transition)의 기준값을 조절할 수 있다. 여기서, 태스크 천이는 제1프로세서(115)에서 실행되는 태스크를 제2프로세서(117)로 또는 제2프로세서(117)에서 실행되는 태스크를 제1프로세서(115)로 마이그레이션(migration)하는 것을 의미할 수 있다.
제1프로세서(115)와 제2프로세서(117)는 이종 멀티 프로세서들 (heterogeneous multiprocessors)일 수 있으나 동종의(homogeneous) 멀티 프로세서들일 수 있다. 예컨대, 제1프로세서(115)는 저성능(low performance)-저전력(low-power) 프로세서로 구현될 수 있고, 제2프로세서(117)는 고성능-고전력 프로세서로 구현될 수 있다.
태스크 천이 기준값은 특정 태스크를 제1프로세서(115)로부터 제2프로세서 (117)로 마이그레이션하는 기준값을 의미할 수 있다. 예컨대, 특정 태스크의 워크로드가 태스크 천이 기준값보다 많을 경우, 상기 특정 태스크는 제1프로세서(115)로부터 제2프로세서(117)로 마이그레이션될 수 있다. 또한, 특정 태스크의 워크로드가 태스크 천이 기준값보다 적을 경우 상기 특정 태스크는 제1프로세서(115)에서 수행될 수 있다.
스케줄러(220)는, 지시 신호(CS)가 사용자 데이터가 변경되지 않음을 지시할 때, 태스크 천이 기준값을 증가시킬 수 있다. 스케줄러(220)는, 지시 신호(CS)가 사용자 데이터가 변경됨을 지시할 때, 태스크 천이 기준값을 유지시킬 수 있다. 또한, 스케줄러(220)는, 지시 신호(CS)가 사용자 데이터가 변경됨을 지시할 때, 태스크 천이 기준값을 감소시킬 수도 있다.
즉, 사용자 데이터의 변경이 없는 경우, 스케줄러(220)는 저전력 제1프로세서(115)에서 태스크가 실행되도록 저전력 제1프로세서(115)를 제어할 수 있고, 제1프로세서(115)의 전력 소모를 감소시킬 수 있다.
스케줄러(220)는, 지시 신호(CS)에 응답하여, 기준값 제어 신호(TS)를 생성할 수 있고, 기준값 제어 신호(TS)를 마이그레이터(230)로 전송할 수 있다. 예컨대, 스케줄러(220)는, 사용자 데이터가 변경된 경우, 태스크 천이 기준값의 유지를 지시하는 기준값 제어 신호(TS)를 마이그레이터(230)로 전송할 수 있다. 또한, 스케줄러(220)는, 사용자 데이터가 변경되지 않은 경우, 태스크 천이 기준값의 증가를 지시하는 기준값 제어 신호(TS)를 마이그레이터(230)로 전송할 수 있다.
마이그레이터(230)는, 기준값 제어 신호(TS)에 응답하여, 사용자 데이터에 상응하는 태스크를 제1프로세서(115)로부터 제2프로세서(117)로 마이그레이션 여부를 결정할 수 있다. 예컨대, 마이그레이터(230)는 HMP(heterogeneous multiprocssing) 스케줄러로 구현될 수 있다.
마이그레이터(230)는, 기준값 제어 신호(TS)에 응답하여, 사용자 데이터에 상응하는 태스크에 대한 워크로드를 판단할 수 있고, 판단 결과에 따라 제1프로세서(115)에서 실행되는 태스크를 제2프로세서(117)로 마이그레이션할 수 있다.
사용자 데이터가 변경된 경우, 마이그레이터(230)는 유지된 태스크 천이 기준값에 기초하여 사용자 데이터에 상응하는 태스크를 제1프로세서(115)로부터 제2프로세서(117)로 마이그레이션할 수 있다.
사용자 데이터가 변경되지 않은 경우, 마이그레이터(230)는 증가된 태스크 천이 기준값에 기초하여 사용자 데이터에 상응하는 태스크를 제1프로세서(115)로부터 제2프로세서(117)로 마이그레이션할 수 있다.
마이그레이터(230)는 마이그레이션 신호(MS)를 CPU(110-1)로 전송할 수 있다. 마이그레이션 신호(MS)는 CPU(110-1)에 포함된 제1프로세서(115)에서 실행되는 태스크를 제2프로세서(117)로 마이그레이션하도록 제어하는 신호를 의미한다.
CPU(110-1)는 제1프로세서(115)와 제2프로세서(117)를 포함할 수 있다. CPU(110-1)는 도 1을 참조하여 설명된 CPU(110)와 실질적으로 동일 또는 유사하게 구현될 수 있다. CPU(110-1)는, 마이그레이션 신호(MS)에 응답하여, 제1프로세서 (115)와 제2프로세서(117) 중 적어도 하나를 작동시킬 수 있다.
비록, 도 2에서는 2개의 프로세서들을 포함하는 CPU(110-1)가 도시되어 있으나, 본 발명의 기술적 사상에 따른 CPU(110-1)에 포함된 프로세서의 개수나 종류는 이에 한정되지 않는다.
CPU(110-1)는 제1프로세서(115)와 제2프로세서(117) 중 적어도 하나를 작동시키기 위해 PMU(150)를 제어할 수 있다. 예컨대, CPU(110-1)는, 제1프로세서(115)와 제2프로세서(117) 중 적어도 하나를 작동시키기 위해, 제2제어 신호(CTR2)를 PMU(150)로 전송할 수 있다. PMU(150)는, CPU(110-1)의 제어에 따라, PMIC(190)로 제3제어 신호(CTR3)를 전송할 수 있다. PMIC(190)는, 제3제어 신호(CTR3)에 기초하여, 제1프로세서(115)와 제2프로세서(117) 중에서 적어도 하나를 작동시키기 위한 전력을 CPU(110-1)로 공급할 수 있다.
도 3은 본 발명의 다른 실시 예에 따른 컨트롤러의 전력 관리 방법을 설명하기 위한 블록도이다. 도 1과 도 3을 참조하면, 체크 매니저(200-2)는 사용자 데이터 체커(210), 태스크 실행 주기 제어기(260), 핫플러그 모듈(270), 및 DVFS 제어 모듈(28)을 포함할 수 있다.
체크 매니저(200-2)는 도 1에서 설명한 체크 매니저(200)와 실질적으로 동일한 기능을 수행할 수 있다. 실시 예에 따라, 체크 매니저(200-1)는 사용자를 위한 사용자 데이터의 변경 여부를 체크하고, 제어 신호들(PSi(i는 1 이상의 자연수), HS, 및 DS)를 생성할 수 있다.
사용자 데이터 체커(210)는 사용자를 위한 사용자 데이터의 변경 여부를 체크하고, 체크 결과에 따라 지시 신호(CS)를 생성할 수 있다. 사용자 데이터 체커 (210)는 지시 신호(CS)를 태스크 실행 주기 제어기(260), 핫 플러그 모듈(270), 및/또는 DVFS 제어 모듈(280)로 전송할 수 있다. 사용자 데이터 체커(210)는 지시 신호(CS)를 순차적으로 또는 동시에 전송할 수 있다.
태스크 실행 주기 제어기(260)는, 지시 신호(CS)에 응답하여, CPU(110)에서 주기적으로 실행되는 태스크들 각각의 실행 주기를 제어할 수 있다. 예컨대, 태스크 실행 주기 제어기(260)는, 지시 신호(CS)에 응답하여, 사용자 데이터에 상응하는 태스크의 실행 주기를 제어할 수 있다.
태스크 실행 주기 제어기(260)는 태스크들 각각의 실행 주기를 제어하는 태스크 제어 신호(PSi)를 생성하고, 태스크 제어 신호(PSi)를 CPU(110)로 전송할 수 있다. 태스크 실행 주기 제어기(260)의 작동 방법은 도 4에서 상세하게 설명될 것이다.
CPU(110)가 멀티 프로세서들(또는 멀티 코어 프로세서들)인 경우, 핫 플러그 모듈(270)은, 지시 신호(CS)에 응답하여, 상기 멀티 프로세서들의 작동 여부를 제어할 수 있다.
핫 플러그 모듈(270)은 멀티 프로세서들 각각의 작동 여부를 제어하는 핫플러그 제어 신호(HS)를 생성하고, CPU(110)로 핫플러그 제어 신호(HS)를 전송할 수 있다. 핫 플러그 모듈(270)의 작동 방법은 도 5에서 상세하게 설명될 것이다.
DVFS 제어 모듈(280)은, 지시 신호(CS)에 기초하여, 컨트롤러(100)에 대한 DVFS을 제어할 수 있다. 실시 예에 따라, DVFS 제어 모듈(280)은, 지시 신호(CS)에 기초하여, CPU(110)에 대한 DVFS을 제어할 수 있다. 또한, DVFS 제어 모듈(280)은, 지시 신호(CS)에 기초하여, 메모리 인터페이스(160)와 입출력 인터페이스(170) 각각에 대한 DVFS을 제어할 수 있다.
DVFS 제어 모듈(280)은 CPU(110), 메모리 인터페이스, 및/또는 입출력 인터페이스를 위한 DVFS 제어 신호(DS)를 생성하고, DVFS 제어 신호(DS)를 CPU(110)로 전송할 수 있다.
비록, 도 3에서는 체크 매니저(200-2)가 태스크 실행 주기 제어기(260), 핫 플러그 모듈(270), 및 DVFS 제어 모듈(280) 전부를 포함하는 것으로 도시되어 있으나, 본 발명의 기술적 사상은 이에 한정되지 않고, 체크 매니저(200-2)는 태스크 실행 주기 제어기(260), 핫 플러그 모듈(270), 및 DVFS 제어 모듈(280) 중에서 적어도 하나를 포함하도록 구현될 수 있다.
CPU(110)는, 체크 매니저(200-2)로부터 수신된 제어 신호들(PSi, HS, 및/또는 DS)에 응답하여, PMU(150)와 CMU(140)를 제어할 수 있다. 예컨대, CPU(110)는, 제어 신호들(PSi, HS, 및/또는 DS)에 응답하여, CMU(140)로 제1제어 신호(CTR1)를 전송할 수 있고, PMU(150)로 제2제어 신호(CTR2)를 전송할 수 있다.
CMU(140)는, 제1제어 신호(CTR1)에 응답하여, CPU(110), 메모리 인터페이스 (160), 및/또는 입출력 인터페이스(170)로 공급되는 주파수의 클럭 신호들(CLK1, CLK2, 및/또는 CLK3)을 제어할 수 있다. PMU(150)는, 제1제어 신호(CTR1)에 응답하여, 컨트롤러(100)로 공급되는 전력을 제어할 수 있고, PMIC(190)로 제3제어 신호(CTR3)를 전송할 수 있다.
도 4는 도 3에 도시된 태스크 실행 주기 제어기의 작동 방법을 설명하기 위한 블록도이다. 도 1, 도 3, 및 도 4를 참조하면, 체크 매니저(200-3)는 사용자 데이터 체커(210)와 태스크 실행 주기 제어기(260)를 포함할 수 있다.
체크 매니저(200-3)는 도 1의 체크 매니저(200)와 실질적으로 동일 또는 유사한 기능을 수행할 수 있다. 실시 예에 따라, 체크 매니저(200-3)는 사용자 데이터의 변경 여부를 체크하고, 제어 신호(PSi)를 CPU(110)로 전송할 수 있다.
사용자 데이터 체커(210)는 사용자 데이터의 변경 여부를 체크하고, 지시 신호(CS)를 태스크 실행 주기 제어기(260)로 전송할 수 있다.
태스크 실행 주기 제어기(260)는 CPU(110)에서 실행되는 태스크의 실행 주기를 제어할 수 있다. 실시 예에 따라, 태스크 실행 주기 제어기(260)는 태스크의 실행 주기를 사용자 데이터의 변경 시점부터 상기 태스크의 완료 시점까지로 변경(또는 지연(delay))할 수 있다.
태스크 실행 주기 제어기(260)는 복수의 태스크 실행 주기 제어 모듈들(260-1~260-N, N은 2 이상의 자연수)을 포함할 수 있다.
각 태스크 실행 주기 제어 모듈(260-1~260-N)은 CPU(110)에서 실행되는 각 태스크의 실행 주기를 제어할 수 있다. 예컨대, 제1태스크 실행 주기 제어 모듈 (260-1)은 제1태스크의 실행 주기를 제어할 수 있고, 제2태스크 실행 주기 제어 모듈(260-2)은 제2태스크의 실행 주기를 제어할 수 있고, 제3태스크 실행 주기 제어 모듈(260-3)은 제3태스크의 실행 주기를 제어할 수 있다. 상기 제어는 증가, 유지 또는 감소를 의미할 수 있다.
복수의 태스크들 각각은 온도 확인 태스크, 타이머 확인 태스크, 및 시간 확인 태스크 등 그 밖의 CPU(110)에서 주기적으로 작동되는 태스크를 의미할 수 있다.
태스크 실행 주기 제어기(260)는 복수의 태스크 실행 주기 제어 모듈들(260-1~260-N)로부터 생성된 태스크 주기 제어 신호들(PSi)을 CPU(110)로 전송할 수 있다. CPU(110)는, 태스크 주기 제어 신호들(PSi) 각각에 응답하여, 태스크들 각각의 실행 주기들 각각을 제어할 수 있다.
CPU(110)는, 태스크 주기 제어 신호들(PSi) 중에서 적어도 하나에 응답하여, PMU(150)을 제어할 수 있다. 실시 예에 따라, CPU(110)는 태스크들 중에서 적어도 하나의 실행 주기를 변경하고, 변경된 태스크의 실행 주기에 따라 제2제어 신호 (CTR2)를 PMU(150)로 전송할 수 있다. PMU(150)는, 제2제어 신호(CTR2)에 따라, CPU(110)로 전력하도록 제3제어 신호를 PMIC(190)로 전송할 수 있다.
도 5는 도 4에 도시된 태스크 실행 주기 제어기의 작동 방법을 설명하기 위한 그래프이다. 도 4와 도 5를 참조하면, 그래프는 제1프로세서(110)에서 주기적으로 작동하는 태스크의 작동을 나타낸다. 제1프로세서(110)는 고정된 주기(T)로 실행되는 태스크를 제어할 수 있다. 예컨대, 제1프로세서(110)는 사용자 데이터에 상응하는 태스크의 주기(T)를 변경할 수 있다.
상기 그래프에서 아이들(IDLE) 상태는 상기 태스크가 실행되지 않는 상태이고, 런(RUN) 상태는 상기 태스크가 실행되는 상태를 의미한다.
태스크 실행 주기 제어기(260)는 태스크의 실행 주기를 제어할 수 있다. 실시 예에 따라, 태스크 실행 주기 제어기(260)는, 지시 신호(CS)에 응답하여, 태스크의 실행 주기를 사용자 데이터가 변한 시점으로부터 상기 태스크의 완료 시점까지로 변경(또는 지연)할 수 있다. 즉, 태스크 실행 주기 제어기(260)는, 사용자 데이터가 변경될 때, 태스크가 실행되도록 제어할 수 있다. 또한, 태스크 실행 주기 제어기(260)는, 사용자 데이터가 변경되지 않을 때에는, 태스크가 실행되지 않도록 제어할 수 있다.
다른 실시 예에 따라, 태스크 실행 주기 제어기(260)는 사용자 데이터가 변경되지 않을 때에, 태스크의 실행 주기를 증가시킬 수도 있다. 즉, 상기 사용자 데이터가 변경되지 않을 때에, 태스크 실행 주기 제어기(260)는 고정된 주기로 실행되는 태스크의 주기를 증가시킴으로써, 제1프로세서(110)는 보다 적은 전력을 소모할 수 있다.
도 6은 도 3에 도시된 핫플러그 모듈의 작동 방법을 설명하기 위한 블록도이다. 도 1, 도 3, 및 도 6을 참조하면, 체크 매니저(200-4)는 사용자 데이터 체커 (210)와 핫 플러그 모듈(270)을 포함할 수 있다.
체크 매니저(200-4)는 도 1의 체크 매니저(200)와 실질적으로 동일한 기능을 수행할 수 있다. 실시 예에 따라, 체크 매니저(200-4)는 사용자 데이터의 변경 여부를 체크하고, 제어 신호(HS)를 CPU(110-2)로 전송할 수 있다.
사용자 데이터 체커(210)는 사용자 데이터의 변경 여부를 체크하고, 지시 신호(CS)를 핫 플러그 모듈(270)로 전송할 수 있다. 핫 플러그 모듈(270)은 멀티 프로세서들(또는 멀티 코어 프로세서들), 예컨대 CPU(110)에 포함된 제1프로세서 (111)와 제2프로세서(112) 각각의 작동 여부를 결정할 수 있다. 예컨대, 핫 플러그 모듈(270)은 제1프로세서(111)와 제2프로세서(112)를 동시에 작동시킬 수 있고, 제2프로세서(112)의 작동을 중단시킬 수도 있다. 제1프로세서(111)와 제2프로세서(112)는 동종의 프로세서들일 수 있고, 이종의 프로세서들일 수도 있다.
실시 예에 따라, 핫 플러그 모듈(270)은, 지시 신호(CS)에 응답하여, 제1프로세서(111)와 제2프로세서(112)의 작동을 제어할 수 있다. 핫 플러그 모듈(270)은, 사용자 데이터의 변경이 없는 경우, 제1프로세서(111)와 제2프로세서(112) 중에서 어느 하나만 작동하도록 제어할 수 있다. 또한, 핫 플러그 모듈(270)은, 사용자 데이터의 변경이 있는 경우, 상기 사용자 데이터에 상응하는 태스크의 워크로드를 판단하고, 판단 결과에 따라 제1프로세서(111)와 제2프로세서(112)의 작동 여부를 결정할 수 있다.
핫 플러그 모듈(270)은 동작 제어 모듈(272), 워크 로드 연산 모듈(274), 및 프로세서 제어 모듈(276)을 포함할 수 있다. 동작 제어 모듈(272)은 핫 플러그 모듈(270)의 전반적인 작동을 제어할 수 있다. 예컨대, 동작 제어 모듈(272)은, 지시 신호(CS)에 응답하여, 핫 플러그 모듈(270)의 작동을 제어할 수 있다.
실시 예에 따라, 동작 제어 모듈(272)은, 지시 신호(CS)가 사용자 데이터가 변경됨을 지시할 때, 태스크에 대한 워크로드의 판단 주기를 제어할 수 있다. 또한, 동작 제어 모듈(272)은, 지시 신호(CS)가 사용자 데이터가 변경되지 않음을 지시할 때, 제1프로세서(111)와 제2프로세서(112) 중에서 어느 하나만 작동되도록 제어할 수 있다.
예컨대, 동작 제어 모듈(272)은, 지시 신호(CS)가 사용자 데이터가 변경됨을 지시할 때, 태스크에 대한 워크로드의 판단 주기를 상기 사용자 데이터의 변경 시점부터 CPU(110-2)의 제1프로세서(111)와 제2프로세서(112) 중에서 어느 하나만 작동하는 시점까지로 변경할 수 있다.
워크로드 연산 모듈(274)은, 동작 제어 모듈(272)의 제어에 따라, 태스크에 대한 워크로드를 판단할 수 있다. 상기 워크로드는 상기 태스크에 대하여 제1프로세서(111) 및/또는 제2프로세서(112)의 부하를 의미한다.
동작 제어 모듈(272)은 워크 로드 연산 모듈(274)에 의해 판단된 태스크에 대한 워크로드를 수신하고, 판단된 결과에 따라 프로세서 제어 모듈(276)로 프로세서 제어 신호(C1)를 전송할 수 있다.
프로세서 제어 신호(C1)는 제1프로세서(111)와 제2프로세서(112)의 작동을 제어하는 신호를 의미한다. 프로세서 제어 모듈(276)은, 프로세서 제어 신호(C1)에 응답하여, 핫 플러그 제어 신호(HS)를 CPU(110-2)로 전송할 수 있다.
CPU(110-2)는 핫 플러그 제어 신호(HS)를 수신하고, 핫 플러그 제어 신호 (HS)에 응답하여 제1프로세서(111)와 제2프로세서(112)의 작동을 제어할 수 있다.
CPU(110-2)는 도 1에서 설명한 CPU(110)와 실질적으로 동일하게 구현될 수 있으나, CPU(110-2)는 제1프로세서(111)와 제2프로세서(112)를 포함하는 멀티 코어 프로세서로 구현될 수 있다.
비록, 도 6에서는 CPU(110-2)가 제1프로세서(111)와 제2프로세서(112)를 포함하는 것으로 도시되어 있으나, CPU(110-2)에 포함된 프로세서의 개수나 종류는 이에 한정되지 않는다.
CPU(110-2)는, 핫 플러그 제어 신호(HS)에 응답하여, PMU(150)을 제어할 수 있다. 예컨대, CPU(110-2)는, 핫 플러그 제어 신호(HS)에 응답하여, 제2제어 신호 (CTR2)를 PMU(150)로 전송할 수 있다. PMU(150)는 제3제어 신호(CTR3)를 PMIC(190)로 전송할 수 있다. PMIC(190)는, 제3제어 신호(CTR3)에 응답하여, CPU(110-2)로 전력을 공급할 수 있다.
도 7은 도 3에 도시된 DVFS 제어 모듈의 작동 방법을 설명하기 위한 블록도이다. 도 1, 도 3, 및 도 7을 참조하면, 체크 매니저(200-5)는 사용자 데이터 체커 (210)와 DVFS 제어 모듈(280)을 포함할 수 있다.
체크 매니저(200-5)는 도 1의 체크 매니저(200)와 실질적으로 동일한 기능을 수행할 수 있다. 실시 예에 따라, 체크 매니저(200-5)는 사용자 데이터의 변경 여부를 체크하고, 제어 신호(DS)를 CPU(110)로 전송할 수 있다. 사용자 데이터 체커(210)는 사용자 데이터의 변경 여부를 체크하고, 지시 신호(CS)를 DVFS 제어 모듈(280)로 전송할 수 있다.
DVFS 제어 모듈(280)은 컨트롤러(100)로 공급되는 작동 전압과 주파수를 동적으로 제어할 수 있다. 예컨대, DVFS 제어 모듈(280)은 CPU(110)의 주파수를 동적으로 제어할 수 있고, 메모리 인터페이스(160)와 입출력 인터페이스(170)의 주파수를 동적으로 제어할 수도 있다.
실시 예에 따라, DVFS 제어 모듈(280)은, 지시 신호(CS)에 응답하여, 컨트롤러(100)의 주파수를 동적으로 제어할 수 있다. DVFS 제어 모듈(280)은, 사용자 데이터의 변경이 없는 경우, 미리 설정된 최저 주파수로 컨트롤러(100)를 작동시킬 수 있다. 또한, DVFS 제어 모듈(280)은, 사용자 데이터의 변경이 있는 경우, 상기 사용자 데이터에 상응하는 태스크를 처리하는데 필요한 주파수(또는 주파수 사용량)를 판단하고, 판단 결과에 따라 주파수를 결정할 수 있다.
DVFS 제어 모듈(280)은 동작 제어 모듈(282), 워크로드 연산 모듈(284), 및 클럭 제어 모듈(286)을 포함할 수 있다.
동작 제어 모듈(282)은 DVFS 제어 모듈(280)의 전반적인 작동을 제어할 수 있다. 예컨대, 동작 제어 모듈(282)은, 지시 신호(CS)에 응답하여, DVFS 제어 모듈 (280)의 작동을 제어할 수 있다. 또한, 동작 제어 모듈(282)은, 지시 신호(CS)에 응답하여, 컨트롤러(100)로 공급할 타겟 주파수를 결정할 수 있다.
실시 예에 따라, 동작 제어 모듈(282)은, 지시 신호(CS)가 사용자 데이터가 변경됨을 지시할 때, 태스크를 처리하는데 필요한 주파수의 판단 주기를 제어할 수 있다. 또한, 동작 제어 모듈(282)은, 지시 신호(CS)가 사용자 데이터가 변경되지 않음을 지시할 때, 미리 설정된 최저 주파수로 작동하도록 컨트롤러(100)를 제어할 수 있다.
미리 설정된 최저 주파수는 컨트롤러(100)를 최저 전력으로 구동하는 특정한 주파수를 의미할 수 있다. 상기 미리 설정된 최저 전압과 최저 주파수는 프로그램에 의해 설정되거나 사용자에 의해 설정될 수 있다.
또한, 동작 제어 모듈(282)은, 지시 신호(CS)가 사용자 데이터가 변경됨을 지시할 때, 태스크를 처리하는데 필요한 주파수(또는 주파수 사용량)를 판단하는 주기를 변경할 수 있다. 즉, 상기 주기는 사용자 데이터가 변경되는 제1시점을 제2시점으로 변경할 수 있다. 상기 제2시점은 타겟 주파수와 미리 설정된 최저 주파수가 동일해지는 시점이다.
주파수 로드 연산 모듈(284)은, 동작 제어 모듈(282)의 제어에 따라, 태스크에 대한 주파수 로드(즉, 태스크를 처리하는데 필요한 주파수(또는 주파수 사용량)를)를 판단할 수 있다. 상기 주파수 로드는, 태스크를 수행할 때, 컨트롤러(100)로 공급되는 주파수를 의미한다.
동작 제어 모듈(282)은 워크로드 연산 모듈(284)에 의해 판단된 태스크에 대한 주파수 로드를 수신하고, 판단된 결과에 따라 클럭 제어 모듈(286)로 클럭 제어 신호(C2)를 전송할 수 있다. 클럭 제어 모듈(286)은 CPU(110)로 DVFS 제어 신호 (DS)를 전송할 수 있다. DVFS 제어 신호(DS)는 클락 신호의 타겟 주파수를 제어하는 신호를 의미한다.
CPU(110)는 DVFS 제어 신호(DS)를 수신하고, DVFS 제어 신호(DS)에 응답하여 컨트롤러(100)로 공급되는 클락 신호의 타겟 주파수를 동적으로 제어할 수 있다.
CPU(110)는, DVFS 제어 신호(DS)에 응답하여, CMU(140)을 제어할 수 있다. 예컨대, CPU(110)는, DVFS 제어 신호(DS)에 응답하여, 제1제어 신호(CTR1)를 CMU (140)로 전송할 수 있다.
CMU(140)는, CPU(110)의 제어에 따라, 컨트롤러(100)로 공급되는 클럭 신호의 주파수를 제어할 수 있다. 예컨대, CMU(140)는 제1주파수를 갖는 제1클럭 신호 (CLK1)를 CPU(110)로 공급할 수 있고, 제2주파수를 갖는 제2클럭 신호(CLK2)를 메모리 인터페이스(160)로 공급할 수 있고, 제3주파수를 갖는 제3클럭 신호(CLK3)를 입출력 인터페이스(170)로 공급할 수 있다.
도 8은 도 2에 도시된 SoC의 전력 관리 방법을 설명하기 위한 플로우 차트이다. 도 1, 도 2, 및 도 8을 참조하면, 컨트롤러(100)의 CPU(110)에서 실행 중인 체크 매니저(200과 200-1)는 사용자를 위한 사용자 데이터의 변경 여부를 체크할 수 있다(S101). 체크 매니저(200과 200-1)에 포함된 체커(210)는 사용자 데이터의 변경 여부를 판단하고, 판단 결과에 따라 지시 신호(CS)를 생성할 수 있다(S103).
지시 신호(CS)가 사용자 데이터가 변경됨을 지시할 때, 스케줄러(220)는 태스크 천이 기준값을 유지시킬 수 있다(S105). 또한, 지시 신호(CS)가 상기 사용자 데이터가 변경됨을 지시할 때, 스케줄러(220)는 상기 태스크 천이 기준값을 감소시킬 수도 있다.
지시 신호(CS)가, 사용자 데이터가 변경되지 않음을 지시할 때, 스케줄러 (220)는 제1프로세서(115)와 제2프로세서(117) 사이의 태스크 천이 기준값을 증가시킬 수 있다(S107). 스케줄러(220)는 변경된 태스크 천이 기준값을 마이그레이터 (230)로 전송하고, 마이그레이터(230)는 변경된 태스크 천이 기준값에 기초하여 태스크를 제1프로세서(115)로부터 제2프로세서(117)로 마이그레이션할 수 있다.
도 9는 도 4에 도시된 태스크 실행 주기 제어기의 작동 방법을 설명하기 위한 플로우 차트이다. 도 1, 도 4, 및 도 9를 참조하면, 컨트롤러(100)의 CPU(110)에서 실행 중인 체크 매니저(200과 200-3)는 사용자를 위한 사용자 데이터의 변경 여부를 체크할 수 있다(S201). 체크 매니저(200과 200-3)에 포함된 체커(210)는 상기 사용자 데이터의 변경 여부를 판단하고, 판단 결과에 따라 지시 신호(CS)를 생성할 수 있다(S203).
지시 신호(CS)가 사용자 데이터가 변경됨을 지시할 때, 태스크 실행 주기 제어기(260)는 CPU(110)에서 주기적으로 실행되는 태스크의 실행 주기를 변경할 수 있다(S205). 예컨대, 지시 신호(CS)가 사용자 데이터가 변경됨을 지시할 때, 태스크 실행 주기 제어기(260)는 CPU(110)에서 주기적으로 실행되는 태스크의 실행 주기를 상기 사용자 데이터의 변경 시점부터 상기 태스크의 완료 시점까지로 변경할 수 있다(S205).
지시 신호(CS)가 사용자 데이터가 변경되지 않음을 지시할 때, 태스크 실행 주기 제어기(260)는 CPU(110)에서 주기적으로 실행되는 태스크의 실행을 억제 (suppress)할 수 있다(S207). 예컨대, 태스크 주기 제어기(260)는 CPU(110)에서 주기적으로 실행되는 태스크가 실행되지 않도록 할 수 있다(S207).
도 10은 도 5에 도시된 핫플러그 모듈의 작동 방법을 설명하기 위한 플로우 차트이다. 도 1, 도 5, 및 도 10을 참조하면, 컨트롤러(100)의 CPU(110과 110-2)에서 실행 중인 체크 매니저(200과 200-4)는 사용자를 위한 사용자 데이터의 변경 여부를 체크할 수 있다(S301). 체크 매니저(200과 200-4)에 포함된 체커(210)는 상기 사용자 데이터의 변경 여부를 판단하고, 판단 결과에 따라 지시 신호(CS)를 생성할 수 있다(S303).
지시 신호(CS)가 사용자 데이터가 변경되지 않음을 지시할 때, 핫 플러그 모듈(270)은 CPU(110-2)에 포함된 제1프로세서(111)와 제2프로세서(112) 중에서 어느 하나만 작동하도록 제어할 수 있다(S305). 즉, 핫 플러그 모듈(270)은 CPU(110-2)가 하나의 프로세서만 작동하도록 할 수 있다.
지시 신호(CS)가 사용자 데이터가 변경됨을 지시할 때, 핫 플러그 모듈(270)은 상기 사용자 데이터에 상응하는 태스크의 워크로드를 판단할 수 있다(S307). 핫 플러그 모듈(270)은 판단된 워크로드에 기초하여 CPU(110-2)에 포함된 제1프로세서(111)와 제2프로세서(112)의 작동 여부를 결정할 수 있다(S309). 예컨대, 핫 플러그 모듈(270)은 CPU(110-2)에서 작동되는 프로세서들의 개수를 제어할 수 있다(S309).
핫 플러그 모듈(270)은 CPU(110)가 제1프로세서(111)와 제2프로세서(112) 중 어느 하나의 프로세서만 작동되는지 판단할 수 있다(S311). 핫 플러그 모듈(270)은, CPU(110)에서 어느 하나의 프로세서가 작동하면, 다른 사용자 데이터의 변경이 발생하기 전까지 상기 어느 하나의 프로세서를 제어할 수 있다(S313).
핫 플러그 모듈(270)은, CPU(110)에서 어느 하나의 프로세서가 작동하지 않는다면, 상기 어느 하나의 프로세서로 작동될 때까지 상기 워크로드를 판단할 수 있다.
도 11은 도 6에 도시된 DVFS 제어 모듈의 작동 방법을 설명하기 위한 플로우 차트이다. 도 1, 도 6, 및 도 11을 참조하면, 컨트롤러(100)의 CPU(110)에서 실행 중인 체크 매니저(200과 200-5)는 사용자를 위한 사용자 데이터의 변경 여부를 체크할 수 있다(S401). 체크 매니저(200과 200-5)에 포함된 체커(210)는 상기 사용자 데이터의 변경 여부를 판단하고, 판단 결과에 따라 지시 신호(CS)를 생성할 수 있다(S403).
지시 신호(CS)가 사용자 데이터가 변경되지 않음을 지시할 때, DVFS 제어 모듈(280)은 컨트롤러(100)로 공급되는 주파수를 미리 설정된 최저 주파수로 변경할 수 있다(S405). 즉, DVFS 제어 모듈(280)은 컨트롤러(100)로 최저 주파수를 갖는 클락 신호를 공급하도록 CMU(140)를 제어할 수 있다.
지시 신호(CS)가 사용자 데이터가 변경됨을 지시할 때, DVFS 제어 모듈(280)은 상기 사용자 데이터에 상응하는 태스크의 주파수 로드를 판단할 수 있다(S407). DVFS 제어 모듈(280)은 판단된 주파수 로드에 기초하여 컨트롤러(100)로 공급되는 클락 신호의 타겟 주파수를 결정할 수 있다(S409).
DVFS 제어 모듈(280)은 컨트롤러(100)로 공급되는 상기 타겟 주파수를 상기 최저 주파수와 비교할 수 있다(S411). DVFS 제어 모듈(280)은 상기 타겟 주파수가 상기 최저 주파수와 동일하면, 다른 사용자 데이터의 변경이 발생하기 전까지 상기 타겟 주파수를 갖는 클락 신호를 컨트롤러(100)로 공급하도록 CMU(140)를 제어할 수 있다(S413).
DVFS 제어 모듈(280)은, 상기 타겟 주파수가 상기 최저 주파수와 동일하지 않으면, 상기 타겟 주파수가 상기 최저 주파수와 동일할 때까지 상기 주파수 로드를 판단할 수 있다.
도 12는 본 발명의 실시 예에 따른 전자 시스템의 개략적인 블록도이다. 도 1부터 도 12를 참조하면, 전자 시스템(500)은 도 1에 도시된 컴퓨팅 장치(10)로 구현될 수 있다.
전자 시스템(500)은 컨트롤러(100), 파워 소스(510), 저장 장치(520), 메모리(530), 입출력 포트들(540), 확장 카드(550), 네트워크 장치(560), 및 디스플레이(570)를 포함한다. 실시 예에 따라. 전자 시스템(500)은 카메라 모듈(580)을 더 포함할 수 있다.
컨트롤러(100)는 도 1에 도시된 컨트롤러(100)를 의미한다. 컨트롤러(100)는 구성 요소들(elements; 510~580) 각각의 동작을 제어할 수 있다. 파워 소스(510)는 구성 요소들(510~580) 중에서 적어도 하나로 동작 전압을 공급할 수 있다. 저장 장치(520)는 하드디스크 드라이브(hard disk drive) 또는 SSD(solid state drive)로 구현될 수 있다.
메모리(530)는 휘발성 메모리 또는 불휘발성 메모리로 구현될 수 있다. 실시 예에 따라, 메모리(530)에 대한 데이터 액세스 동작, 예컨대, 리드 동작, 라이트 동작(또는 프로그램 동작), 또는 이레이즈 동작을 제어할 수 있는 메모리 컨트롤러는 컨트롤러(100)에 집적 또는 내장될 수 있다. 다른 실시 예에 따라, 상기 메모리 컨트롤러는 컨트롤러(100)와 메모리(530) 사이에 구현될 수 있다.
입출력 포트들(540)은 전자 시스템(500)으로 데이터를 전송하거나 또는 전자 시스템(500)으로부터 출력된 데이터를 외부 장치로 전송할 수 있는 포트들을 의미한다. 예컨대, 입출력 포트들(540)은 컴퓨터 마우스와 같은 포인팅 장치(pointing device)를 접속하기 위한 포트, 프린터를 접속하기 위한 포트, 또는 USB 드라이브를 접속하기 위한 포트일 수 있다.
확장 카드(550)는 SD(secure digital) 카드 또는 MMC(multimedia card)로 구현될 수 있다. 실시 예에 따라, 확장 카드(550)는 SIM(subscriber identification module) 카드 또는 USIM(universal subscriber identity Module) 카드일 수 있다.
네트워크 장치(560)는 전자 시스템(500)을 유선 네트워크 또는 무선 네트워크에 접속시킬 수 있는 장치를 의미한다. 디스플레이(570)는 저장 장치(520), 메모리(530), 입출력 포트들(540), 확장 카드(550), 또는 네트워크 장치(560)로부터 출력된 데이터를 디스플레이할 수 있다.
카메라 모듈(580)은 광학 이미지를 전기적인 이미지로 변환할 수 있는 모듈을 의미한다. 따라서, 카메라 모듈(580)로부터 출력된 전기적인 이미지는 저장 장치(520), 메모리(530), 또는 확장 카드(550)에 저장될 수 있다. 또한, 카메라 모듈(580)로부터 출력된 전기적인 이미지는 디스플레이(570)를 통하여 디스플레이될 수 있다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10: 컴퓨팅 장치
100: 컨트롤러
110: CPU
130: RAM
140: CMU
150: PMU
160: 메모리 인터페이스
170: 입출력 인터페이스
190: PMIC
200: 체크 매니저

Claims (10)

  1. 입출력 인터페이스를 통해 외부로 전달되는 사용자를 위한 사용자 데이터의 변경 여부를 체크하고, 제어 신호를 생성하는 체크 매니저를 실행하는 제1프로세서; 및
    상기 제어 신호에 응답하여 상기 제1프로세서로 공급되는 전력을 동적으로 제어하는 전력 관리 유닛을 포함하는 애플리케이션 프로세서.
  2. 제1항에 있어서,
    제2프로세서를 더 포함하고,
    상기 체크 매니저는,
    상기 사용자 데이터의 변경 여부를 체크하고, 지시 신호를 생성하는 체커; 및
    상기 지시 신호에 응답하여 상기 제1프로세서와 상기 제2프로세서 사이에서 수행되는 태스크 천이 기준값을 변경하는 스케줄러를 포함하는 애플리케이션 프로세서.
  3. 제2항에 있어서,
    상기 제1프로세서와 상기 제2프로세서는 이종 멀티 프로세서들(heterogeneous multiprocessers)인 애플리케이션 프로세서.
  4. 제2항에 있어서,
    상기 지시 신호가 상기 사용자 데이터의 변경을 지시할 때, 상기 스케줄러는 상기 기준값을 유지하고,
    상기 지시 신호가 상기 사용자 데이터가 변경되지 않음을 지시할 때, 상기 스케줄러는 상기 기준값을 변경하는 애플리케이션 프로세서.
  5. 제4항에 있어서,
    상기 체크 매니저는 상기 스케줄러로부터 출력된 기준값 제어 신호에 응답하여 상기 사용자 데이터에 상응하는 태스크를 상기 제2프로세서로 마이그레이션하는 마이그레이터를 더 포함하는 애플리케이션 프로세서.
  6. 제1항에 있어서,
    상기 체크 매니저는,
    상기 사용자 데이터의 변경 여부를 체크하고, 지시 신호를 생성하는 체커; 및
    상기 지시 신호에 응답하여 상기 사용자 데이터에 상응하는 태스크의 실행 주기를 제어하는 태스크 실행 주기 제어기를 포함하는 애플리케이션 프로세서.
  7. 제1항에 있어서,
    제2프로세서를 더 포함하고,
    상기 체크 매니저는,
    상기 사용자 데이터의 변경 여부를 체크하고, 지시 신호를 생성하는 체커; 및
    상기 지시 신호에 기초하여 상기 제1프로세서와 상기 제2프로세서의 작동 여부를 결정하는 핫플러그(hotplug) 모듈을 포함하는 애플리케이션 프로세서.
  8. 제1항에 있어서,
    상기 제어 신호에 응답하여 상기 제1프로세서로 공급되는 클럭을 동적으로 제어하는 클럭 관리 유닛을 더 포함하고,
    상기 체크 매니저는,
    상기 사용자 데이터의 변경 여부를 체크하고, 지시 신호를 생성하는 체커; 및
    상기 지시 신호에 기초하여 상기 제1프로세서에 대한 DVFS(Dynamic Voltage and Frequency Scaling)를 제어하는 DVFS 제어 모듈을 포함하는 애플리케이션 프로세서.
  9. 제1항에 있어서,
    상기 사용자 데이터는 이미지 데이터 또는 넌-이미지 데이터(non-image data)인 애플리케이션 프로세서.
  10. 체크 매니저를 저장하는 메모리;
    전력 관리 유닛; 및
    상기 체크 매니저를 실행하는 제1프로세서를 포함하고,
    상기 체크 매니저가 상기 제1프로세서에 의해 실행됨에 따라 상기 체크 매니저는 입출력 인터페이스를 통해 외부로 전달되는 사용자를 위한 사용자 데이터의 변경 여부를 체크하고, 제어 신호를 생성하고,
    상기 전력 관리 유닛은 상기 제어 신호에 응답하여 상기 제1프로세서로 공급되는 전력을 동적으로 제어하는 시스템 온 칩.
KR1020150055919A 2015-04-21 2015-04-21 애플리케이션 프로세서와 시스템 온 칩 KR102247742B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020150055919A KR102247742B1 (ko) 2015-04-21 2015-04-21 애플리케이션 프로세서와 시스템 온 칩
US15/134,882 US10229088B2 (en) 2015-04-21 2016-04-21 Application processor and system on chip
US16/259,252 US10990153B2 (en) 2015-04-21 2019-01-28 Application processor and system on chip
US17/240,193 US11693466B2 (en) 2015-04-21 2021-04-26 Application processor and system on chip

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150055919A KR102247742B1 (ko) 2015-04-21 2015-04-21 애플리케이션 프로세서와 시스템 온 칩

Publications (2)

Publication Number Publication Date
KR20160125137A KR20160125137A (ko) 2016-10-31
KR102247742B1 true KR102247742B1 (ko) 2021-05-04

Family

ID=57147769

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150055919A KR102247742B1 (ko) 2015-04-21 2015-04-21 애플리케이션 프로세서와 시스템 온 칩

Country Status (2)

Country Link
US (3) US10229088B2 (ko)
KR (1) KR102247742B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102247742B1 (ko) * 2015-04-21 2021-05-04 삼성전자주식회사 애플리케이션 프로세서와 시스템 온 칩
US10211947B2 (en) 2016-12-26 2019-02-19 Samsung Electronics Co., Ltd. System-on-chip using dynamic voltage frequency scaling and method of operating the same
KR102568686B1 (ko) * 2018-02-09 2023-08-23 삼성전자주식회사 컨텍스트 허브를 포함하는 모바일 장치 및 그것의 동작 방법
US10732699B2 (en) * 2018-02-23 2020-08-04 Intel Corporation Redundancy in distribution of voltage-frequency scaling parameters
US11537190B2 (en) * 2019-09-11 2022-12-27 Silicon Laboratories Inc. Dual processor system for reduced power application processing
CN111694532B (zh) * 2020-06-11 2021-06-04 翱捷科技股份有限公司 单芯片异构系统的显示控制方法和可穿戴设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007018268A (ja) 2005-07-07 2007-01-25 Sumitomo Heavy Ind Ltd タスクスケジューリング方法、タスクスケジューリング装置、及びタスクスケジューリングプログラム

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5234750B2 (ko) 1974-01-25 1977-09-05
US6574739B1 (en) * 2000-04-14 2003-06-03 Compal Electronics, Inc. Dynamic power saving by monitoring CPU utilization
US8042093B1 (en) * 2001-11-15 2011-10-18 Cypress Semiconductor Corporation System providing automatic source code generation for personalization and parameterization of user modules
JP3938343B2 (ja) 2002-08-09 2007-06-27 インターナショナル・ビジネス・マシーンズ・コーポレーション タスク管理システム、プログラム、及び制御方法
US7516456B2 (en) 2003-09-25 2009-04-07 International Business Machines Corporation Asymmetric heterogeneous multi-threaded operating system
TW200532561A (en) * 2004-03-16 2005-10-01 Hon Hai Prec Ind Co Ltd A system and method for adjusting the CPU frequency
US7665092B1 (en) * 2004-12-15 2010-02-16 Sun Microsystems, Inc. Method and apparatus for distributed state-based load balancing between task queues
WO2007098424A2 (en) * 2006-02-17 2007-08-30 Qualcomm Incorporated System and method for multi-processor application support
JP4936517B2 (ja) * 2006-06-06 2012-05-23 学校法人早稲田大学 ヘテロジニアス・マルチプロセッサシステムの制御方法及びマルチグレイン並列化コンパイラ
JP2008152470A (ja) * 2006-12-15 2008-07-03 Hitachi Ltd データ処理システム及び半導体集積回路
US8615647B2 (en) * 2008-02-29 2013-12-24 Intel Corporation Migrating execution of thread between cores of different instruction set architecture in multi-core processor and transitioning each core to respective on / off power state
US8281166B2 (en) * 2008-03-10 2012-10-02 Virdiem Corporation System and method for computer power control
JP5234750B2 (ja) 2008-06-05 2013-07-10 Necインフロンティア株式会社 表示装置及びその制御方法
US8706652B2 (en) * 2009-06-09 2014-04-22 Northwestern University System and method for controlling power consumption in a computer system based on user satisfaction
KR101594391B1 (ko) * 2009-10-22 2016-02-16 삼성전자주식회사 휴대용 멀티미디어 재생기에서 사용자 경험에 기반한 멀티미디어 재생 목록 생성방법 및 장치
EP2581830A4 (en) * 2010-06-10 2017-01-11 Fujitsu Limited Multi-core processor system, method of power control, and power control program
TWI425422B (zh) * 2010-07-16 2014-02-01 Mstar Semiconductor Inc 多cpu領域行動電子裝置與其操作方法
CA2806549C (en) * 2010-07-26 2014-10-28 Seven Networks, Inc. Context aware traffic management for resource conservation in a wireless network
US20120144215A1 (en) 2010-12-03 2012-06-07 Advanced Micro Devices, Inc. Maximum current limiting method and apparatus
JP5701399B2 (ja) 2010-12-21 2015-04-15 インテル・コーポレーション 電力管理のためのシステム及び方法
US9038088B2 (en) * 2011-03-10 2015-05-19 Nec Laboratories America, Inc. Load balancing on hetrogenous processing cluster based on exceeded load imbalance factor threshold determined by total completion time of multiple processing phases
US8862906B2 (en) 2011-04-01 2014-10-14 Intel Corporation Control of platform power consumption using coordination of platform power management and display power management
US8695008B2 (en) 2011-04-05 2014-04-08 Qualcomm Incorporated Method and system for dynamically controlling power to multiple cores in a multicore processor of a portable computing device
US9137848B2 (en) 2012-01-31 2015-09-15 Lg Electronics Inc. Mobile terminal, controlling method thereof and recording medium thereof
JP6072834B2 (ja) * 2012-02-08 2017-02-01 インテル・コーポレーション 方法、プログラム、装置、およびシステム
KR101834195B1 (ko) * 2012-03-15 2018-04-13 삼성전자주식회사 다중코어 시스템 및 로드 밸런싱 방법
US9250665B2 (en) * 2012-06-07 2016-02-02 Apple Inc. GPU with dynamic performance adjustment
US9392654B2 (en) * 2012-08-31 2016-07-12 Marvell World Trade Ltd. Method and apparatus for controlling a power adjustment to a lighting device
KR101997776B1 (ko) 2012-10-16 2019-07-08 삼성전자주식회사 디스플레이 장치의 소모 전력을 감소시키기 위한 방법 및 그 전자 장치
KR102002899B1 (ko) * 2012-12-18 2019-07-23 삼성전자 주식회사 시스템-온 칩, 이의 동작 방법, 및 이를 포함하는 장치
KR20140088691A (ko) 2013-01-03 2014-07-11 삼성전자주식회사 Dvfs 정책을 수행하는 시스템-온 칩 및 이의 동작 방법
US9335808B2 (en) 2013-03-08 2016-05-10 Intel Corporation Indicating critical battery status in mobile devices
US9904394B2 (en) * 2013-03-13 2018-02-27 Immerson Corporation Method and devices for displaying graphical user interfaces based on user contact
JP6048267B2 (ja) 2013-03-26 2016-12-21 コニカミノルタ株式会社 表示装置、消費電力制御方法及び消費電力制御プログラム
US9400518B2 (en) * 2013-06-05 2016-07-26 Qualcomm Innovation Center, Inc. Temporary frequency adjustment of mobile device processors based on task migration
JP6246603B2 (ja) * 2014-01-21 2017-12-13 ルネサスエレクトロニクス株式会社 タスクスケジューラ機構、オペレーティングシステム及びマルチプロセッサシステム
US9419905B2 (en) * 2014-04-04 2016-08-16 International Business Machines Corporation Data streaming scheduler for dual chipset architectures that includes a high performance chipset and a low performance chipset
KR102247742B1 (ko) * 2015-04-21 2021-05-04 삼성전자주식회사 애플리케이션 프로세서와 시스템 온 칩
US20220243521A1 (en) * 2016-04-25 2022-08-04 Magna Closures Inc. A power closure member actuation system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007018268A (ja) 2005-07-07 2007-01-25 Sumitomo Heavy Ind Ltd タスクスケジューリング方法、タスクスケジューリング装置、及びタスクスケジューリングプログラム

Also Published As

Publication number Publication date
US20210247831A1 (en) 2021-08-12
US11693466B2 (en) 2023-07-04
US10229088B2 (en) 2019-03-12
KR20160125137A (ko) 2016-10-31
US20190155784A1 (en) 2019-05-23
US20160314095A1 (en) 2016-10-27
US10990153B2 (en) 2021-04-27

Similar Documents

Publication Publication Date Title
KR102247742B1 (ko) 애플리케이션 프로세서와 시스템 온 칩
TWI675289B (zh) 包含異質多核心處理器的電子系統及其操作方法
US11327555B2 (en) Application processor performing a dynamic voltage and frequency scaling operation, computing system including the same, and operation method thereof
US9696771B2 (en) Methods and systems for operating multi-core processors
US9678666B2 (en) Techniques to configure a solid state drive to operate in a storage mode or a memory mode
KR102002899B1 (ko) 시스템-온 칩, 이의 동작 방법, 및 이를 포함하는 장치
US8151036B2 (en) Memory controller, memory system, and access control method of flash memory
KR102352756B1 (ko) 애플리케이션 프로세서, 시스템 온 칩, 및 이를 포함하는 컴퓨팅 장치
EP3161622B1 (en) Accelerating boot time zeroing of memory based on non-volatile memory (nvm) technology
KR20140030823A (ko) 3차원 작업 부하를 이용하여 dvfs 정책을 수행하는 시스템-온 칩 및 이의 동작 방법
US10496149B2 (en) Method of operating CPU and method of operating system having the CPU
KR20160063974A (ko) 워크로드를 이용하여 전력을 제어할 수 있는 시스템 온 칩, 이의 작동 방법, 및 이를 포함하는 컴퓨팅 장치
EP3979072A1 (en) Firmware boot task distribution to enable low latency boot performance
KR20210017054A (ko) 멀티-코어 시스템 및 그 동작 제어 방법
KR20140021283A (ko) 다중 dvfs 정책을 이용한 soc 및 이의 동작 방법
KR20210007417A (ko) 멀티-코어 시스템 및 그 동작 제어 방법
KR102166644B1 (ko) 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법
US20240061492A1 (en) Processor performing dynamic voltage and frequency scaling, electronic device including the same, and method of operating the same
US20240103601A1 (en) Power management chip, electronic device having the same, and operating method thereof
KR20230127824A (ko) 시스템 온 칩, 그것의 버스 파워 게이팅 방법 및 시스템
KR20230124248A (ko) Dvfs 제어 방법, 이를 이용한 반도체 장치 및 반도체 시스템
KR20210022850A (ko) 반도체 장치의 성능 부스팅 제어 방법 및 이를 수행하는 반도체 장치

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant