WO2020032619A1 - 외부 온도에 따라 선택된 프로세서의 클럭 속도를 이용하여 어플리케이션을 실행 시키는 방법 및 이를 포함하는 전자 장치 - Google Patents
외부 온도에 따라 선택된 프로세서의 클럭 속도를 이용하여 어플리케이션을 실행 시키는 방법 및 이를 포함하는 전자 장치 Download PDFInfo
- Publication number
- WO2020032619A1 WO2020032619A1 PCT/KR2019/009968 KR2019009968W WO2020032619A1 WO 2020032619 A1 WO2020032619 A1 WO 2020032619A1 KR 2019009968 W KR2019009968 W KR 2019009968W WO 2020032619 A1 WO2020032619 A1 WO 2020032619A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- temperature
- clock speed
- electronic device
- clock
- application
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral devices
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/08—Clock generators with changeable or programmable clock frequency
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/16—Constructional details or arrangements
- G06F1/20—Cooling means
- G06F1/203—Cooling means for portable computers, e.g. for laptops
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04847—Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/16—Constructional details or arrangements
- G06F1/20—Cooling means
- G06F1/206—Cooling means comprising thermal management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4893—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
Definitions
- FIG. 3 is a block diagram of an electronic device according to various embodiments of the present disclosure.
- the electronic device 101 may include a processor 120, a memory 130, an input device 150, an audio output device 155, a display device 160, an audio module 170, and a sensor module ( 176, interface 177, haptic module 179, camera module 180, power management module 188, battery 189, communication module 190, subscriber identification module 196, or antenna module 197. ) May be included.
- a sensor module 176, interface 177, haptic module 179, camera module 180, power management module 188, battery 189, communication module 190, subscriber identification module 196, or antenna module 197.
- the components for example, the display device 160 or the camera module 180
- the sensor module 176 may be implemented embedded in the display device 160 (eg, display).
- the electronic device 210 may be a known portable electronic device 210 capable of executing various applications such as a smart phone and a tablet PC, and the example is not limited thereto.
- the electronic device 210 may include at least some of the configuration and / or functions of the electronic device 101 of FIG. 1.
- the electronic device 210 may select one of a plurality of clock speeds according to a specified clock governor and execute an application using the selected one.
- the electronic device 210 may change the clock speed according to a request of the application while the application is running.
- the plurality of clock speeds may be discrete values, or may be continuous values.
- the battery 360 may supply power to at least one component (eg, the processor 310, the memory 320, etc.) of the electronic device 300.
- FIG. 4 is a block diagram of software modules of an electronic device and a server device according to various embodiments of the present disclosure.
- the temperature measuring module 416 may determine an internal temperature of the electronic device 410 and an external temperature of the electronic device 410 detected by a temperature sensor (eg, a battery thermistor). The temperature measuring module 416 may determine the external temperature of the electronic device 410 based on the first temperature (or the internal temperature) measured by the temperature sensor and the second temperature calculated using the linear regression function. Or ambient temperature).
- a temperature sensor eg, a battery thermistor
- the temperature measuring module 416 may determine the external temperature of the electronic device 410 based on the first temperature (or the internal temperature) measured by the temperature sensor and the second temperature calculated using the linear regression function. Or ambient temperature).
- the electronic device may execute an application according to the third clock speed or set the maximum clock speed to be less than or equal to the third clock speed even if a clock speed higher than the third clock speed is selected according to the clock governor.
- 5B illustrates an example of determining a maximum current by applying a weight according to an external temperature according to various embodiments.
- the third clock speeds of 0.8 GHz, 0.86 GHz, and 0.9 GHz are the fifth at each temperature. Can be determined by clock speed.
- the measured external temperature is about 30 ° C
- the third weight value is 0.1
- weights 0.9 and 0.1 are respectively assigned to the third clock speed of 0.9 GHz and the fourth clock speed of 0.5 GHz to 0.914 GHz at the fifth clock speed. Can be determined.
- the fifth clock speed may be determined as 0.5 GHz, which is the fourth clock speed. In this case, at about 35 ° C, the processor can run at its maximum clock speed.
- FIG. 6 is a diagram of Q-learning as an example of machine learning according to various embodiments.
- the electronic device may check an external temperature of the electronic device.
- the electronic device is based on the first temperature (or internal temperature) measured by the temperature sensor and the second temperature calculated using machine learning (eg, a linear regression function).
- the external temperature (or ambient temperature) of the device can be checked.
- an electronic device or server device eg, server device 220 of FIG. 2 may be machine running at a plurality of reference temperatures (eg, about ⁇ 5 ° C., about 15 ° C., about 35 ° C.).
- the second temperature may be learned using a linear regression function.
- the electronic device may compare the external temperature with a reference value.
- an operation of selecting a third clock speed applying a first weight value and a second weight value determined based at least on the external temperature to the first clock speed and the second clock speed associated with the execution of the designated application may further include.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Power Sources (AREA)
- Telephone Function (AREA)
Abstract
다양한 실시예에 따른 전자 장치는, 온도 센서, 디스플레이, 및 복수의 클럭 속도들 중 선택된 클럭 속도를 이용하여 동작하도록 설정된 프로세서를 포함하고, 상기 프로세서는, 상기 복수의 클럭 속도들 중 선택된 하나를 이용하여, 지정된 어플리케이션을 실행시키고, 상기 지정된 어플리케이션이 실행되는 적어도 일부 동안, 상기 온도 센서를 이용하여 외부 온도를 확인하고, 상기 외부 온도가 제1지정된 온도 범위에 속하는 경우, 지정된 클럭 거버너(clock governor)에 따라 상기 복수의 클럭 속도들 중 선택된 하나를 이용하여, 상기 지정된 어플리케이션을 실행시키고, 및 상기 외부 온도가 상기 제1지정된 온도보다 낮은 제2지정된 온도 범위에 속하는 경우, 상기 지정된 클럭 거버너에 따라 상기 복수의 클럭 속도들 중 속도가 빠른 일부를 제외하고 선택된 하나를 이용하여 상기 지정된 어플리케이션을 실행시키도록 설정될 수 있다. 그 외에 다양한 실시예가 가능하다.
Description
본 실시예는 전자 장치에 관한 것이며, 예를 들어 어플리케이션의 실행 시 프로세서의 클럭 속도를 제어할 수 있는 전자 장치와 전자 장치의 클럭 속도 제어 방법에 관한 것이다.
이동통신 및 하드웨어/소프트웨어 기술의 발달에 따라, 스마트폰으로 대표되는 휴대용 전자 장치(이하, 전자 장치)는 진화를 거듭하여 다양한 기능들을 탑재할 수 있게 되었다. 전자 장치는 다양한 어플리케이션을 설치 및 실행하여 사용자에게 다양한 사용자 경험을 제공할 수 있다.
전자 장치에서 설치 및 실행하는 어플리케이션들은 요구되는 사양이 다양하므로, 어플리케이션에서 요구하는 사양에 따라 클럭 속도, FPS(frame per second) 등을 조절할 수 있다.
전자 장치가 높은 클럭 속도로 동작하면, 어플리케이션의 실행 시 높은 성능을 사용자에게 제공할 수 있지만, 그에 따라 배터리 소모, 발열 등의 문제가 발생할 수 있다.
종래의 전자 장치는 어플리케이션마다 정해진 정책에 의해 클럭 속도 등의 하드웨어 성능을 결정 하였다. 이는 주변 온도 등 전자 장치를 사용하는 여러 상황을 고려하지 못하여, 어플리케이션의 성능과 발열 등을 최적화 할 수 없었다.
다양한 실시예에 따른 전자 장치는, 온도 센서, 디스플레이, 및 복수의 클럭 속도들 중 선택된 클럭 속도를 이용하여 동작하도록 설정된 프로세서를 포함하고, 상기 프로세서는, 상기 복수의 클럭 속도들 중 선택된 하나를 이용하여, 지정된 어플리케이션을 실행시키고, 상기 지정된 어플리케이션이 실행되는 적어도 일부 동안, 상기 온도 센서를 이용하여 외부 온도를 확인하고, 상기 외부 온도가 제1지정된 온도 범위에 속하는 경우, 지정된 클럭 거버너(clock governor)에 따라 상기 복수의 클럭 속도들 중 선택된 하나를 이용하여, 상기 지정된 어플리케이션을 실행시키고, 및 상기 외부 온도가 상기 제1지정된 온도보다 낮은 제2지정된 온도 범위에 속하는 경우, 상기 지정된 클럭 거버너에 따라 상기 복수의 클럭 속도들 중 속도가 빠른 일부를 제외하고 선택된 하나를 이용하여 상기 지정된 어플리케이션을 실행시키도록 설정될 수 있다.
다양한 실시예에 따른 전자 장치의 클럭 속도 제어 방법은, 지정된 어플리케이션을 실행하는 동작, 상기 지정된 어플리케이션이 실행되는 적어도 일부 동안, 상기 전자 장치의 외부 온도를 확인하는 동작, 상기 외부 온도가 제1지정된 온도 범위에 속하는 경우, 지정된 클럭 거버너(clock governor)에 따라 복수의 클럭 속도들 중 선택된 하나를 이용하여, 상기 지정된 어플리케이션을 실행시키는 동작, 및 상기 외부 온도가 상기 제1지정된 온도보다 낮은 제2지정된 온도 범위에 속하는 경우, 상기 지정된 클럭 거버너에 따라 상기 복수의 클럭 속도들 중 속도가 빠른 일부를 제외하고 선택된 하나를 이용하여 상기 지정된 어플리케이션을 실행시키는 동작을 포함할 수 있다.
다양한 실시예에 따른 전자 장치는, 온도 센서, 디스플레이, 및 복수의 클럭 속도들 중 선택된 클럭 속도를 이용하여 동작하도록 설정된 프로세서를 포함하고, 상기 프로세서는, 상기 온도 센서를 이용하여, 외부 온도를 확인하고, 상기 외부 온도가 지정된 제1온도 미만인 경우, 지정된 어플리케이션에 대응하는 제1실행 정책에 기초하여 제1클럭 속도를 선택하고, 상기 제1클럭 속도에 기초하여 상기 어플리케이션을 실행하고, 상기 외부 온도가 상기 제1온도 이상인 경우, 상기 제1실행 정책과는 다른 제2실행 정책에 기초하여 제2클럭 속도를 선택하고, 상기 제2클럭 속도에 기초하여 상기 어플리케이션을 실행하도록 설정될 수 있다.
본 문서의 다양한 실시예는 어플리케이션 실행 시 주변 온도를 고려하여 어플리케이션 실행 정책을 결정함으로써, 어플리케이션의 성능 및 전자 장치의 발열을 최적화 할 수 있는 전자 장치와 전자 장치의 클럭 속도 제어 방법을 제공할 수 있다.
도 1은 다양한 실시예들에 따른, 네트워크 환경 내의 전자 장치의 블럭도이다.
도 2는 다양한 실시예에 따른 전자 장치 및 서버 장치를 개략적으로 도시한 것이다.
도 3은 다양한 실시예에 따른 전자 장치의 블록도이다.
도 4는 다양한 실시예에 따른 전자 장치 및 서버 장치의 소프트웨어 모듈의 블록도이다.
도 5a는 다양한 실시예에 따른 외부 온도에 따라 가중치를 적용하여 클럭 속도를 결정하는 예를 도시한 것이다.
도 5b는 다양한 실시예에 따른 외부 온도에 따라 가중치를 적용하여 최대 전류를 결정하는 예를 도시한 것이다.
도 5c는 다양한 실시예에 따른 외부 온도에 따라 가중치를 적용하여 클럭 속도를 결정하는 예를 도시한 것이다.
도 6은 다양한 실시예에 따른 Q-learning 의 다이어그램이다.
도 7a 및 7b는 다양한 실시예에 따른 어플리케이션의 동작 모드를 결정할 수 있는 그래픽 유저 인터페이스이다.
도 8a 및 8b는 다양한 실시예에 따른 어플리케이션의 동작 모드 별 표면 온도 및 FPS를 도시한 것이다.
도 9는 다양한 실시예에 따른 전자 장치의 클럭 속도 제어 방법의 흐름도이다.
도 9는 다양한 실시예에 따른 전자 장치의 클럭 속도 제어 방법의 흐름도이다.
도 1은, 다양한 실시예들에 따른, 네트워크 환경(100) 내의 전자 장치(101)의 블럭도이다. 도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제 1 네트워크(198)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(102)와 통신하거나, 또는 제 2 네트워크(199)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(104) 또는 서버(108)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 서버(108)를 통하여 전자 장치(104)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 장치(150), 음향 출력 장치(155), 표시 장치(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)에는, 이 구성요소들 중 적어도 하나(예: 표시 장치(160) 또는 카메라 모듈(180))가 생략되거나, 하나 이상의 다른 구성 요소가 추가될 수 있다. 어떤 실시예에서는, 이 구성요소들 중 일부들은 하나의 통합된 회로로 구현될 수 있다. 예를 들면, 센서 모듈(176)(예: 지문 센서, 홍채 센서, 또는 조도 센서)은 표시 장치(160)(예: 디스플레이)에 임베디드된 채 구현될 수 있다
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 실행하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)을 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 로드하고, 휘발성 메모리(132)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일실시예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서), 및 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(123)(예: 그래픽 처리 장치, 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 추가적으로 또는 대체적으로, 보조 프로세서(123)은 메인 프로세서(121)보다 저전력을 사용하거나, 또는 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(123)는 메인 프로세서(121)와 별개로, 또는 그 일부로서 구현될 수 있다.
보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 표시 장치(160), 센서 모듈(176), 또는 통신 모듈(190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일실시예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성 요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부로서 구현될 수 있다.
메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서모듈(176))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다.
프로그램(140)은 메모리(130)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다.
입력 장치(150)는, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 장치(150)은, 예를 들면, 마이크, 마우스, 키보드, 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다.
음향 출력 장치(155)는 음향 신호를 전자 장치(101)의 외부로 출력할 수 있다. 음향 출력 장치(155)는, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있고, 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일실시예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.
표시 장치(160)는 전자 장치(101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 표시 장치(160)은, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일실시예에 따르면, 표시 장치(160)는 터치를 감지하도록 설정된 터치 회로(touch circuitry), 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 센서 회로(예: 압력 센서)를 포함할 수 있다.
오디오 모듈(170)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일실시예에 따르면, 오디오 모듈(170)은, 입력 장치(150)를 통해 소리를 획득하거나, 음향 출력 장치(155), 또는 전자 장치(101)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102)) (예: 스피커 또는 헤드폰))를 통해 소리를 출력할 수 있다.
센서 모듈(176)은 전자 장치(101)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일실시예에 따르면, 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(177)는 전자 장치(101)이 외부 전자 장치(예: 전자 장치(102))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일실시예에 따르면, 인터페이스(177)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(178)는, 그를 통해서 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일실시예에 따르면, 연결 단자(178)은, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일실시예에 따르면, 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일실시예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리할 수 있다. 일실시예에 따르면, 전력 관리 모듈(388)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.
배터리(189)는 전자 장치(101)의 적어도 하나의 구성 요소에 전력을 공급할 수 있다. 일실시예에 따르면, 배터리(189)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108))간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일실시예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제 1 네트워크(198)(예: 블루투스, WiFi direct 또는 IrDA(infrared data association) 같은 근거리 통신 네트워크) 또는 제 2 네트워크(199)(예: 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부 전자 장치와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성 요소(예: 단일 칩)으로 통합되거나, 또는 서로 별도의 복수의 구성 요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제 1 네트워크(198) 또는 제 2 네트워크(199)와 같은 통신 네트워크 내에서 전자 장치(101)를 확인 및 인증할 수 있다.
안테나 모듈(197)은 신호 또는 전력을 외부(예: 외부 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일실시예에 따르면, 안테나 모듈은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 하나의 안테나를 포함할 수 있다. 일실시예에 따르면, 안테나 모듈(197)은 복수의 안테나들을 포함할 수 있다. 이런 경우, 제 1 네트워크(198) 또는 제 2 네트워크(199)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(190)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(190)과 외부 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시예에 따르면, 방사체 이외에 다른 부품(예: RFIC)이 추가로 안테나 모듈(197)의 일부로 형성될 수 있다.
상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))를 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일실시예에 따르면, 명령 또는 데이터는 제 2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 전자 장치(102, 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 외부 전자 장치들(102, 104, or 108) 중 하나 이상의 외부 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치 (예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나",“A 또는 B 중 적어도 하나,”"A, B 또는 C," "A, B 및 C 중 적어도 하나,”및 “A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, “기능적으로” 또는 “통신적으로”라는 용어와 함께 또는 이런 용어 없이, “커플드” 또는 “커넥티드”라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서의 다양한 실시예들은 기기(machine)(예: 전자 장치(101)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체 는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
일실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.
도 2는 다양한 실시예에 따른 전자 장치 및 서버 장치를 개략적으로 도시한 것이다.
도 2를 참조 하면, 전자 장치(210)와 서버 장치(220)는 네트워크(230)를 통해 데이터를 송/수신 할 수 있다. 도 2에는 하나의 전자 장치(210)만을 도시 하였으나, 서버 장치(220)와 연결되어 어플리케이션 실행 정책을 수신하는 등 데이터를 송/수신할 수 있는 전자 장치는 복수 개 일 수 있다. 예를 들어, 서버 장치(220)는 전자 장치(210)의 제조사에서 운영하는 서버이고, 서버 장치(220)와 연결되는 복수의 전자 장치들은 동일한 제조사에서 제조된 전자 장치일 수 있다. 예를 들어, 서버 장치(220)는 도 1의 서버(108)일 수 있다.
다양한 실시예에 따르면, 전자 장치(210)는 스마트 폰, 태블릿 PC 등 다양한 어플리케이션을 실행할 수 있는 공지의 휴대용 전자 장치(210)일 수 있으며, 그 예는 한정되지 않는다. 전자 장치(210)는 도 1의 전자 장치(101)의 구성 및/또는 기능 중 적어도 일부를 포함할 수 있다.
전자 장치(210)에서 실행할 수 있는 어플리케이션의 종류 및 수에는 한정됨이 없을 것이나, 본 문서에서는 게임 어플리케이션을 예로 들어 설명하기로 한다. 게임 어플리케이션의 경우, 전자 장치(210)가 하나의 게임 어플리케이션을 실행하는 상황에서도 게임의 진행 상황에 따라 전자 장치(210)의 어플리케이션을 구동하는 프로세서의 성능을 조절할 수 있다. 예를 들어, 보다 높은 수준의 그래픽 및 연산 처리가 요구되는 상황에서는 프로세서(예: 어플리케이션 프로세서, CPU(central processing unit), GPU(graphics processing unit) 등)의 클럭 속도, 타겟 전류, FPS(frame per second)를 높게 조절할 수 있고, 반대로 낮은 수준의 그래픽 및 연산 처리로 충분한 상황에서는 상기 파라미터들을 낮은 값으로 설정할 수 있다.
클럭 속도를 예로 들면, 전자 장치(210)는 지정된 클럭 거버너(clock governor)에 따라 복수의 클럭 속도 중 어느 하나를 선택하고, 선택된 하나를 이용하여 어플리케이션을 실행할 수 있다. 또한, 전자 장치(210)는 어플리케이션의 실행 중 어플리케이션의 요청에 따라 클럭 속도를 변경할 수 있다. 여기서, 복수의 클럭 속도는 이산적인(discrete) 값일 수 있으나, 연속적인(continuous) 값일 수도 있다.
클럭 거버너는 프로세서(예: 어플리케이션 프로세서, CPU, 또는 GPU)의 동작 시 클럭 속도를 결정하는 정책에 관한 것으로서, 어플리케이션의 요청 또는 사용자의 설정에 따라 결정될 수 있다. 예를 들어, 클럭 거버너는 프로세서의 사용량에 따라 클럭 속도를 증가 시키는 정책(예: ondemand), 프로세서에 부하가 생기면 클럭 속도의 증가량을 감소 시키는 정책(예: conservation), 최대 클럭 속도를 유지하는 정책(예: performance), 어플리케이션의 실행에 필요한 최소 클럭 속도를 유지하는 정책(예: power save) 등을 예로 들 수 있다.
다양한 실시예에 따르면, 전자 장치(210)는 전자 장치(210)의 외부 온도에 따라 클럭 속도를 선택하는 방법을 결정할 수 있다. 예를 들어, 전자 장치(210)는 외부 온도가 제1지정된 온도 범위에 속하는 경우(예: 약 0°C 이상) 지정된 클럭 거버너에 따라 복수의 클럭 속도들 중 선택된 하나를 이용하여 어플리케이션을 실행 시킬 수 있다. 또한, 전자 장치(210)는 외부 온도가 제2지정된 온도 범위에 속하는 경우(예: 0°C 미만) 지정된 클럭 거버너에 따라 복수의 클럭 속도들 중 속도가 빠른 일부는 제외하고 선택된 하나를 이용하여 어플리케이션을 실행 시킬 수 있다. 예를 들어, 전자 장치(210)는 외부 온도가 제2지정된 온도 범위에 속하는 경우, 클럭 거버너에서 특정 클럭 속도가 결정되더라도, 결정된 클럭 속도가 정해진 속도보다 큰 경우, 결정된 클럭 속도를 이용하지 않고 그보다 낮은 클럭 속도로 어플리케이션을 실행할 수 있다.
다양한 실시예에 따르면, 서버 장치(220)는 전자 장치(210)의 어플리케이션(예: 게임 어플리케이션)에 대한 실행 정책을 결정하고, 전자 장치(210)에 제공할 수 있다. 서버 장치(220)는 복수의 전자 장치(210)로부터 특정 어플리케이션의 실행에 따른 발열 정보 및 성능 정보를 수신하고, 이에 기초하여 실행 정책을 결정할 수 있다. 예를 들어, 서버 장치(220)는 머신 러닝(예: Q-learning)을 이용하여 게임 성능 및 전자 장치(210)의 발열에 대한 최적의 파라미터(예: 클럭 속도, FPS 등)를 결정할 수 있다. 서버 장치(220)는 어플리케이션 별로 실행 정책을 결정하여 전자 장치(210)에 제공할 수 있다. 서버 장치(220)는 전자 장치(210)의 제조사에서 운영하는 서버일 수 있다.
다양한 실시예에 따르면, 서버 장치(220)는 각 전자 장치(210)에 의해 결정된 어플리케이션 별 실행 정책을 수신할 수 있다. 예를 들어, 전자 장치(210)는 머신 러닝을 통해 게임 성능 및 전자 장치(210)의 발열에 대한 최적의 파라미터(예: 클럭 속도, FPS 등)를 결정할 수 있으며, 결정된 파라미터들을 서버 장치(220)에 제공할 수 있다. 서버 장치는 전자 장치(210)로부터 전송되는 어플리케이션 실행 정책을 수집 및 평균화 하여, 각각의 어플리케이션 별로 최적의 파라미터(예: 클럭 속도, FPS 등)를 결정할 수 있다. 서버 장치는 수집된 값으로부터 각 전자 장치(210)의 타입(예: 전자 장치의 모델명, 프로세서의 스펙 등) 및 어플리케이션과 최적의 파라미터를 맵핑하여 저장 및 업데이트 하고, 대응되는 전자 장치(210)에 저장된 정보를 제공할 수 있다. 서버 장치(220)는 설정된 시간에 상기 실행 정책을 전자 장치(210)에 전송할 수 있으며, 전자 장치(210)가 전자 장치(210)의 타입 및 설치된 어플리케이션의 리스트를 전송하는 경우, 해당 요청에 대응되는 실행 정책을 전자 장치(210)에 전송할 수 있다.
다양한 실시예에 따르면, 전자 장치(210)는 어플리케이션 실행에 관련된 이상 상황(예: 어플리케이션 셧 다운, 과다 발열 등)이 발생하는 경우, 관련 정보를 서버 장치(220)에 제공할 수 있다. 서버 장치(220)는 전자 장치(210)로부터 상기 정보를 수신하는 경우, 해당 전자 장치와 동일한 종류의 전자 장치(예: 동일 모델, 동일 어플리케이션 실행)에 대해 실행 정책을 전송할 수 있다. 상기 실행 정책은 보다 낮은 값의 클럭 속도, 최대 전류를 포함할 수 있다. 이 경우, 전자 장치는 현재 온도(예: 내부 온도, 표면 온도 등) 등 전자 장치의 상태를 고려하지 않고, 상기 서버 장치(220)에서 수신한 실행 정책에 따라 클럭 속도, 프로세서에 제공되는 전류 값을 낮출 수 있다.
도 3은 다양한 실시예에 따른 전자 장치의 블록도이다.
도 3을 참조 하면, 다양한 실시예에 따른 전자 장치(300)(예: 도 1의 전자 장치(101))는 프로세서(310)(예: 도 1의 프로세서(120)), 메모리(320)(예: 도 1의 메모리(130)), 디스플레이(340)(예: 도 1의 표시 장치(160)), 온도 센서(330)(예: 도 1의 센서 모듈(176)), 통신 모듈(350)(예: 도 1의 통신 모듈(190)), 배터리(360)(예: 도 1의 배터리(189)) 및 PMIC(370)(예: 도 1의 전력 관리 모듈(188))를 포함할 수 있다. 전자 장치(300)는 도 1의 전자 장치(101) 및/또는 도 2의 전자 장치(210)의 기능 및/또는 구성 중 적어도 일부를 포함할 수 있다.
다양한 실시예에 따르면, 디스플레이(340)는 다양한 영상을 표시할 수 있다. 예를 들어, 디스플레이(340)는 프로세서(310)에 의해 실행된 어플리케이션(예: 게임 어플리케이션)에 의해 생성된 영상을 표시할 수 있다. 디스플레이(340)는 액정 디스플레이(liquid crystal display(LCD)), 발광 다이오드(light-emitting diode(LED)) 디스플레이, 유기 발광 다이오드(organic light-emitting diode(OLED)) 디스플레이, 또는 마이크로 전자기계 시스템(micro electro mechanical systems(MEMS)) 디스플레이, 또는 전자종이(electronic paper) 디스플레이 중 어느 하나로 구현될 수 있으나, 이에 한정되지는 않는다. 디스플레이(340)는 도 1의 표시 장치(160)의 구성 및/또는 기능 중 적어도 일부를 포함할 수 있다.
다양한 실시예에 따르면, 통신 모듈(350)은 네트워크(예: 도 2의 네트워크(230)) 또는 외부 장치(예: 도 2의 서버 장치(220))와 무선으로 통신하기 위한 소프트웨어 및/또는 하드웨어 모듈을 포함하며, 도 1의 무선 통신 모듈(192)의 구성 및/또는 기능 중 적어도 일부를 포함할 수 있다. 통신 모듈(350)은 셀룰러 통신(예: LTE 등) 및 무선랜 통신(예: Wi-Fi 등)을 지원할 수 있으며, 프로세서(310)로부터 수신되는 데이터를 네트워크를 통해 외부의 다른 장치(예: 도 2의 서버 장치(220))에 전송하거나 외부의 다른 장치로부터 수신되는 데이터를 프로세서(310)에 제공할 수 있다.
다양한 실시예에 따르면, 배터리(360)는 전자 장치(300)의 적어도 하나의 구성 요소(예: 프로세서(310), 메모리(320) 등)에 전력을 공급할 수 있다.
다양한 실시예에 따르면, PMIC(370)(power management integrated circuit)는 배터리(360)의 전력을 전자 장치(300)의 다른 구성 요소에 공급하기 위한 제어 동작을 수행할 수 있다. 예를 들어, PMIC(370)는 프로세서(310)에 의해 결정된 어플리케이션 실행 정책(예: 클럭 속도)에 따라 정해진 전력(또는 전류)를 프로세서(310)에 제공할 수 있다.
다양한 실시예에 따르면, 온도 센서(330)는 전자 장치(300)의 내부 온도를 측정하기 위한 구성이다. 온도 센서(330)는 써미스터(thermistor)를 포함하며, 써미스터는 배터리(360) 또는 프로세서(310)와 메모리(320)가 실장된 메인 PCB(printed circuit board) 상에 마련될 수 있다. 프로세서(310)는 온도 센서(330)를 이용해 전자 장치(300)의 내부 온도를 측정할 수 있으며, 온도 센서(330)의 측정 값 또는 외부(예: 일기 예보 제공 서비스)에서 확인된 현재 위치의 온도에 기반하여, 전자 장치(300)의 외부 온도(또는 전자 장치(300)의 주변 온도)를 확인할 수 있다.
다양한 실시예에 따르면, 메모리(320)는 공지의 휘발성 메모리(volatile memory) 및 비휘발성 메모리(non-volatile memory)를 포함할 수 있으며, 구체적인 구현 예에 있어서는 한정되지 않는다. 메모리(320)는 도 1의 메모리(130)의 구성 및/또는 기능 중 적어도 일부를 포함할 수 있다. 또한, 메모리(320)는 도 1의 프로그램(140) 중 적어도 일부를 저장할 수 있다.
메모리(320)는 작동적으로(operatively), 기능적으로(functionally) 및/또는 전기적으로(electrically) 프로세서(310)와 연결되고, 프로세서(310)에서 수행될 수 있는 다양한 인스트럭션(instruction)들을 저장할 수 있다. 이와 같은 인스트럭션들은 프로세서(310)에 의해 인식될 수 있는 산술 및 논리 연산, 데이터 이동, 입출력 등의 제어 명령을 포함할 수 있다.
다양한 실시예에 따르면, 전자 장치(300)의 각 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 수행할 수 있는 구성으로써, 도 1의 프로세서(120)의 구성 및/또는 기능 중 적어도 일부를 포함할 수 있다. 프로세서(310)는 메모리(320), 디스플레이(340), 온도 센서(330), 통신 모듈(350), 및 PMIC(370) 등 전자 장치(300)의 내부 구성요소와 작동적으로 및/또는 전기적으로 연결될 수 있다.
프로세서(310)가 전자 장치(300) 내에서 구현할 수 있는 연산 및 데이터 처리 기능에는 한정됨이 없을 것이나, 본 문서에서는 전자 장치(300)의 외부 온도를 감지하고, 그에 기초하여 클럭 속도를 결정하기 위한 다양한 실시예 들에 대해 설명하기로 한다. 후술할 프로세서(310)의 동작들은 메모리(320)에 저장된 인스트럭션들을 로딩 함으로써 수행될 수 있다.
다양한 실시예에 따르면, 프로세서(310)는 지정된 클럭 거버너(clock governor)에 따라 복수의 클럭 속도 중 어느 하나를 선택하고, 선택된 하나를 이용하여 어플리케이션을 실행할 수 있다. 또한, 전자 장치(300)는 어플리케이션의 실행 중 어플리케이션의 요청에 따라 클럭 속도를 변경할 수 있다.
다양한 실시예에 따르면, 프로세서(310)는 선택된 클럭 속도에 따라 어플리케이션이 실행되도록 클럭 속도에 대응하는 전력을 배터리(360)를 통해 공급 받을 수 있다.
다양한 실시예에 따르면, 프로세서(310)는 어플리케이션의 실행 시 외부 온도를 확인하고, 확인된 외부 온도에 기초하여 어플리케이션 실행 시 사용할 클럭 속도를 결정할 수 있다. 다양한 실시예에 따르면, 전자 장치(300)는 외부 온도가 제1지정된 온도 범위에 속하는 경우(예: 약 0°C 이상) 지정된 클럭 거버너에 따라 복수의 클럭 속도들 중 선택된 하나를 이용하여 어플리케이션을 실행 시킬 수 있다. 또한, 전자 장치(300)는 외부 온도가 제2지정된 온도 범위에 속하는 경우(예: 약 0°C 미만) 지정된 클럭 거버너에 따라 복수의 클럭 속도들 중 속도가 빠른 일부는 제외하고 선택된 하나를 이용하여 어플리케이션을 실행 시킬 수 있다. 예를 들어, 전자 장치(300)는 외부 온도가 제2지정된 온도 범위에 속하는 경우, 클럭 거버너에서 특정 클럭 속도가 결정되더라도, 결정된 클럭 속도가 정해진 속도(또는 임계 속도)보다 큰 경우, 결정된 클럭 속도를 이용하지 않고 그보다 낮은 클럭 속도로 어플리케이션을 실행할 수 있다.
다양한 실시예에 따르면, 전자 장치(300)는 어플리케이션의 실행과 관련된 제1클럭 속도 및 제2클럭 속도에 외부 온도에 기반하여 결정된 제1가중치 및 제2가중치를 적용한 제3클럭 속도를 선택할 수 있다. 여기서, 제1가중치는 제3클럭 속도의 결정 시 제1클럭 속도에 대해 적용되는 가중치이고, 제2가중치는 제2클럭 속도에 대해 결정되는 값일 수 있다.
제2클럭 속도는 제1클럭 속도보다 낮은 값이고, 제1가중치는 외부 온도가 낮을수록 낮은 값을 갖도록 설정될 수 있다. 이에 따라, 외부 온도가 낮을수록 제3클럭 속도는 보다 낮은 값으로 결정될 수 있다.
다양한 실시예에 따르면, 전자 장치(300)는 제3클럭 속도에 따라 어플리케이션을 실행 하거나, 클럭 거버너에 따라 제3클럭 속도보다 높은 클럭 속도가 선택되더라도 최대 클럭 속도를 제3클럭 속도 이하로 설정할 수 있다.
다양한 실시예에 따르면, 제1클럭 속도 및 제2클럭 속도는 적어도 하나의 파라미터를 보상(reward)으로 하는 머신 러닝(예: Q-learning)을 이용하여 결정될 수 있다. 예를 들어, Q-learning은 어플리케이션의 성능 및 전자 장치(300)의 온도를 최적화 하는데 사용되는 학습 방법으로써, 전자 장치(300) 또는 서버 장치에 의해 Q-learning이 수행될 수 있다. 상기 적어도 하나의 파라미터는, 프로세서(310)에 제공되는 전류 또는 전력, FPS(frame per second), 전자 장치(300)의 내부 온도 중 적어도 하나를 더 포함할 수 있다. 이 중 FPS는 망대 특성을 갖고 내부 온도는 망소 특성을 가질 수 있다.
전자 장치(300)(또는 서버 장치)는 상기 다양한 파라미터들에 대해 전자 장치(300)의 성능과 관련된 파라미터(예: FPS)에 가중치를 두어 제1클럭 속도를 결정하고, 전자 장치(300)의 안정성과 관련된 파라미터(예: 내부 온도)에 가중치를 두어 제2클럭 속도를 결정할 수 있다.
다양한 실시예에 따르면, 제1클럭 속도 및 제2클럭 속도는 어플리케이션 별로 결정될 수 있으며, 예를 들어, 게임 어플리케이션 등 지정된 어플리케이션에 대해서만 Q-learning을 통해 결정될 수 있다.
다양한 실시예에 따르면, 프로세서(310)는 온도 센서(330)에서 측정된 제1온도(또는 내부 온도) 및 머신 러닝(예: 선형 회귀 함수(linear regression function))를 이용하여 계산된 제2온도에 기초하여, 전자 장치(300)의 외부 온도(또는 주변 온도)를 확인할 수 있다.
다양한 실시예에 따르면, 프로세서(310)(또는 서버 장치)는 기준 온도(예: 15°C) 상황에서 지정된 어플리케이션을 실행 시 프로세서(310)의 연산량에 대응되는 발열량을 기반으로 선형 회귀 분석을 통해 예상되는 온도 센서(330)의 온도 값을 계산하고, 계산된 온도 값을 제2온도로 결정할 수 있다. 프로세서(310)(또는 서버 장치)는 각각의 어플리케이션 별로 제2온도를 결정할 수 있고, 복수의 기준 온도(예: 약 -5°C, 약 15°C, 약 35°C)에서 제2온도를 결정할 수 있다.
프로세서(310)는 어플리케이션의 실행 중 실시간으로 온도 센서(330)에서 측정된 제1온도에서 제2온도를 뺀 값을 기준 온도와 더하여, 전자 장치(300)의 외부 온도를 결정할 수 있다. 이 경우, 프로세서(310)는 복수의 기준 온도에 대응하는 복수의 제2온도 중 측정된 제1온도와 가장 가까운 제2온도를 선택할 수 있다. 예를 들어, 실시간으로 측정된 제1온도가 약 0°C인 경우, 기준 온도를 이와 가장 가까운 약 -5°C로 선택하고, 제1온도에 약 -5°C의 기준 온도에 대응되는 제2온도를 확인하고, 제1온도인 약 0°C에 확인된 제2온도를 뺀 값에 기준 온도 약 -5°C를 더하여 전자 장치(300)의 외부 온도를 결정할 수 있다.
다양한 실시예에 따르면, 프로세서(310)는 전자 장치(300)의 현재 위치에 기초하여 어플리케이션 실행 정책을 결정할 수 있다. 예를 들어, 프로세서(310)는 전자 장치(300)가 실내 또는 실외에 위치하는 지 여부에 따라 서로 다른 어플리케이션 실행 정책을 사용할 수 있다. 프로세서(310)는 온도 센서(330)의 측정 값 또는 외부(예: 일기 예보 제공 서비스)에서 확인된 현재 위치의 온도에 기반하여, 전자 장치가 실내 또는 실외에 위치하는 지 여부를 확인할 수 있다.
다양한 실시예에 따르면, 전자 장치(300)는 어플리케이션의 실행 시 사용할 클럭 속도를 결정함에 있어, 복수의 실행 정책을 이용할 수 있다. 프로세서(310)는 외부 온도가 지정된 제1온도(예: 약 42°C) 미만인 경우 제1실행 정책에 기초하여 어플리케이션 실행에 사용할 클럭 속도를 결정할 수 있다. 또한, 프로세서(310)는 외부 온도가 지정된 제1온도 이상인 경우 제1실행 정책과 다른 제2실행 정책에 기초하여 어플리케이션 실행에 사용할 클럭 속도를 결정할 수 있다. 다양한 실시예에 따르면, 제1실행 정책 및 제2실행 정책은 머신 러닝(예: Q-learning)에 따라서 결정된 것으로써, 상기 머신 러닝은 전자 장치(300), 다른 전자 장치 또는 서버 장치에 의해 수행될 수 있다.
예를 들어, 제1실행 정책은 온도(예: 전자 장치 내부 온도 또는 외부 온도)의 변화량에 따라 클럭 속도를 조정하는 정책일 수 있다. 제1실행 정책에 따르면, 현재 온도가 높은 상태에서도 온도 변화량이 음수(온도가 감소)이면 클럭 속도를 증가 시키고, 현재 온도가 낮은 상태에서도 온도 변화량이 양수(온도가 증가)이면 클럭 속도를 감소 시킬 수 있다. 제1실행 정책은 온도 구간과 온도 변화량에 따른 클럭 속도의 조절량을 포함할 수 있다.
제2실행 정책은 온도에 따라 클럭 속도를 감소 시키는 정책일 수 있다. 제2실행 정책은 전자 장치가 고온인 상태(예: 제1온도(예: 약 42°C) 이상인 경우)에 사용되므로, 프로세서(310)는 현재 온도에 따라 클럭 속도를 낮출 수 있다. 제2실행 정책에서는 전자 장치의 과열을 방지하기 위한 정책으로써, 어플리케이션의 성능에 관련된 파라미터(예: FPS)의 중요도는 낮을 수 있다.
다양한 실시예에 따르면, 전자 장치(300)는 온도가 제1온도보다 높은 제2온도(예: 46°C) 이상인 경우, 실행 중인 어플리케이션을 종료할 수 있다.
다양한 실시예에 따르면, 전자 장치(300)는 사용자 입력에 따라 결정된 모드에 더 기초하여, 어플리케이션의 실행에 이용할 클럭 속도를 결정할 수 있다. 예를 들어, 전자 장치(300)는 사용자가 선택한 모드에 따라서, 클럭 거버너에 따라 선택된 클럭 속도를 지정된 값만큼 낮추거나 높여서 사용할 수 있다.
전자 장치(300)는 디스플레이(340)를 통해 상기 모드를 결정할 수 있는 그래픽 유저 인터페이스를 제공할 수 있다. 예를 들어, 사용자가 그래픽 유저 인터페이스를 통해 성능 우선 모드를 선택하는 경우 선택된 클럭 속도보다 지정된 값만큼 높은 클럭 속도로 어플리케이션을 실행하고, 사용자가 발열 우선 모드를 선택하는 경우 선택된 클럭 속도보다 지정된 값만큼 낮은 클럭 속도로 어플리케이션을 실행할 수 있다.
도 4는 다양한 실시예에 따른 전자 장치 및 서버 장치의 소프트웨어 모듈의 블록도이다.
도시된 소프트웨어 모듈들은 각각 전자 장치(410)(예: 도 3의 전자 장치(300))의 프로세서(예: 도 3의 프로세서(310)) 및 서버 장치(420)(예: 도 2의 서버 장치(220))의 프로세서에 의해 실행될 수 있다.
다양한 실시예에 따르면, 서버 장치(420)는 러닝 모듈(422), 어플리케이션 실행 정책 결정 모듈(424) 및 통신 모듈을 포함할 수 있다.
통신 모듈(428)은 복수의 전자 장치와의 통신을 수행하기 위한 프로그램들을 포함할 수 있다.
러닝 모듈(422)은 머신 러닝(예: Q-learning)을 이용하여 어플리케이션의 성능 및 전자 장치(410)의 온도를 최적화 하기 위한 기계 학습을 수행할 수 있다. 예를 들어, 러닝 모듈(422)은 각각의 전자 장치(410) 및 어플리케이션 별로 전자 장치(410)의 프로세서(예: 어플리케이션 프로세서, CPU, GPU)의 클럭 속도, 프로세서에 제공되는 전류 또는 전력, FPS(frame per second), 전자 장치(410)의 내부 온도 등의 파라미터들을 최적화 할 수 있는 값들을 머신 러닝(예: Q-learning)을 통해 결정할 수 있다. 러닝 모듈(422)에서 결정된 파라미터들은 어플리케이션 실행 정책 결정 모듈(424)에 제공될 수 있다.
어플리케이션 실행 정책 결정 모듈(424)은 각 전자 장치(410) 별로 각 어플리케이션의 실행 정책을 결정할 수 있다. 여기서, 실행 정책은 러닝 모듈(422)에 의해 결정된 적어도 하나의 파라미터들을 포함할 수 있다. 결정된 실행 정책은 전자 장치(410)에 제공될 수 있다.
다양한 실시예에 따르면, 전자 장치(410)는 어플리케이션 실행 모듈(412), 어플리케이션 실행 정책 확인 모듈(414), 온도 측정 모듈(416) 및 통신 모듈(418)을 포함할 수 있다.
어플리케이션 실행 모듈(412)은 어플리케이션(예: 게임 어플리케이션)을 실행하고, 실행된 어플리케이션의 정보를 확인할 수 있다.
온도 측정 모듈(416)은 온도 센서(예: 배터리 써미스터)로부터 감지된 전자 장치(410)의 내부 온도 및 전자 장치(410)의 외부 온도를 결정할 수 있다. 온도 측정 모듈(416)은 온도 센서에서 측정된 제1온도(또는 내부 온도) 및 선형 회귀 함수(linear regression function)을 이용하여 계산된 제2온도에 기초하여, 전자 장치(410)의 외부 온도(또는 주변 온도)를 확인할 수 있다.
통신 모듈(418)은 서버 장치(420)와의 통신을 수행하기 위한 프로그램들을 포함할 수 있다.
어플리케이션 실행 정책 확인 모듈(414)은 서버 장치(420)로부터 결정된 실행 정책을 확인할 수 있다. 다른 실시예들에 따르면, 전자 장치(410)가 직접 머신 러닝(예: Q-learning)을 통해 어플리케이션의 성능 및 전자 장치(410)의 온도를 최적화 하기 위한 기계 학습을 수행할 수 있다.
어플리케이션 실행 정책 확인 모듈(414)은 어플리케이션이 실행되는 경우, 해당 어플리케이션에 대한 실행 정책(예: 클럭 속도, FPS 등)을 확인하고, 확인된 실행 정책에 기초하여 어플리케이션을 실행할 수 있다.
도 5a는 다양한 실시예에 따른 외부 온도에 따라 가중치를 적용하여 클럭 속도를 결정하는 예를 도시한 것이다.
도 5a를 참조 하면, 프로세서(예: 도 3의 프로세서(310))는 제1클럭 속도 및 제2클럭 속도를 확인할 수 있다. 여기서, 제1클럭 속도 및 제2클럭 속도는 전자 장치 또는 서버 장치(예: 도 4의 서버 장치(420)의 러닝 모듈(422))에서 실행된 Q-learning에 의해 결정된 값으로써, 전자 장치(또는 서버 장치)는 상기 다양한 파라미터들에 대해 전자 장치의 성능과 관련된 파라미터(예: FPS)에 가중치를 두어 제1클럭 속도를 결정하고, 전자 장치의 안정성과 관련된 파라미터(예: 내부 온도)에 가중치를 두어 제2클럭 속도를 결정할 수 있다. 예를 들어, 제1클럭 속도는 어플리케이션 실행을 위한 권장 사양이고, 제2클럭 속도는 최소 사양일 수 있다.
다양한 실시예에 따르면, 전자 장치는 제1클럭 속도 및 제2클럭 속도에 외부 온도에 기반하여 결정된 제1가중치 및 제2가중치를 적용한 제3클럭 속도를 선택할 수 있다. 여기서, 제1가중치는 제3클럭 속도의 결정 시 제1클럭 속도에 대해 적용되는 가중치이고, 제2가중치는 제2클럭 속도에 대해 결정되는 값일 수 있다.
제2클럭 속도는 제1클럭 속도보다 낮은 값이고, 제1가중치는 외부 온도가 낮을수록 낮은 값을 갖도록 설정될 수 있다. 이에 따라, 외부 온도가 낮을수록 제3클럭 속도는 보다 낮은 값으로 결정될 수 있다.
도 5a를 참조 하면, 머신 러닝(예: Q-learning)에 의해 제1클럭 속도로 약 1GHz, 제2클럭 속도로 약 0.5GHz가 결정될 수 있다. 전자 장치는 전자 장치의 외부 온도를 확인하고, 확인된 외부 온도에 따라 0.5GHz 내지 1GHz 사이의 값으로 제3클럭 속도를 결정할 수 있다. 예를 들어, 측정된 외부 온도가 약 10°C 인 경우, 제1가중치가 0.3이고, 제2가중치가 0.7이므로, 약 0.65GHz를 제3클럭 속도로 결정할 수 있다. 또한, 어플리케이션의 실행에 따라 외부 온도가 약 15°C로 상승한 경우, 제1가중치가 0.5, 제2가중치가 0.5이므로, 약 0.75GHz를 제3클럭 속도로 결정할 수 있다.
다양한 실시예에 따르면, 전자 장치는 제3클럭 속도에 따라 어플리케이션을 실행 하거나, 클럭 거버너에 따라 제3클럭 속도보다 높은 클럭 속도가 선택되더라도 최대 클럭 속도를 제3클럭 속도 이하로 설정할 수 있다.
다양한 실시예에 따르면, 전자 장치는 외부 온도가 제2지정된 온도 범위(예: 0°C 미만)에 속하는 경우, 복수의 클럭 속도 중 속도가 빠른 일부를 제외하고, 선택된 하나를 이용하여 지정된 어플리케이션을 실행 시킬 수 있다.
도 5a의 제1클럭 속도, 제2클럭 속도, 제1가중치 및 제2가중치는 일 예에 불과하고, 다른 값들로 설정될 수 있다.
도 5b는 다양한 실시예에 따른 외부 온도에 따라 가중치를 적용하여 최대 전류를 결정하는 예를 도시한 것이다.
도 5b를 참조 하면, 전자 장치(예: 도 3의 프로세서(310))는 제1최대 전류 및 제2최대 전류를 확인할 수 있다. 여기서, 제1최대 전류 및 제2최대 전류는 배터리에서 프로세서로 출력되는 전류 값의 최대 값을 의미할 수 있다. 제1최대 전류 및 제2최대 전류는 전자 장치 또는 서버 장치에서 실행된 머신 러닝(예: Q-learning)에 의해 결정된 값으로써, 전자 장치(또는 서버 장치)는 상기 다양한 파라미터들에 대해 전자 장치의 성능과 관련된 파라미터(예: FPS)에 가중치를 두어 제1최대 전류를 결정하고, 전자 장치의 안정성과 관련된 파라미터(예: 내부 온도)에 가중치를 두어 제2최대 전류를 결정할 수 있다.
도 5b를 참조 하면, 머신 러닝(예: Q-learning)에 의해 제1최대 전류로 약 1500mA, 제2최대 전류로 약 1000mA가 결정될 수 있다. 전자 장치는 전자 장치의 외부 온도를 확인하고, 확인된 외부 온도에 따라 약 1000mA 내지 약 1500mA 사이의 값으로 제3최대 전류를 결정할 수 있다. 예를 들어, 측정된 외부 온도가 약 5°C 인 경우, 제1가중치가 0.3이고, 제2가중치가 0.7이므로, 약 1150mA를 제3최대 전류로 결정할 수 있다. 또한, 어플리케이션의 실행에 따라 외부 온도가 약 15°C로 상승한 경우, 제1가중치가 0.5, 제2가중치가 0.5이므로, 약 1250mA를 제3최대 전류로 결정할 수 있다.
다양한 실시예에 따르면, 전자 장치는 어플리케이션 실행 시 제3최대 전류에 따라 배터리에서 프로세서로 제공되는 전류의 최대 값을 설정할 수 있다.
도 5c는 다양한 실시예에 따른 외부 온도에 따라 가중치를 적용하여 클럭 속도를 결정하는 예를 도시한 것이다.
도 5c의 실시예는 도 5a의 실시예와 비교하여, 고온 상태에서 전자 장치의 발열을 제한하기 위해, 제4클럭 속도 및 제3가중치를 추가로 사용하여 어플리케이션의 실행에 사용할 타겟 클럭 속도를 결정할 수 있다.
도 5c를 참조 하면, 프로세서(예: 도 3의 프로세서(310))는 제1클럭 속도 및 제2클럭 속도를 확인할 수 있다. 다양한 실시예에 따르면, 전자 장치는 제1클럭 속도 및 제2클럭 속도에 외부 온도에 기반하여 결정된 제1가중치 및 제2가중치를 적용한 제3클럭 속도를 선택할 수 있다. 여기서, 제1가중치는 제3클럭 속도의 결정 시 제1클럭 속도에 대해 적용되는 가중치이고, 제2가중치는 제2클럭 속도에 대해 결정되는 값일 수 있다.
도 5c를 참조 하면, 머신 러닝(예: Q-learning)에 의해 제1클럭 속도로 약 1GHz, 제2클럭 속도로 약 0.8GHz가 결정될 수 있다. 전자 장치는 전자 장치의 외부 온도를 확인하고, 확인된 외부 온도에 따라 0.8GHz 내지 1GHz 사이의 값으로 제3클럭 속도를 결정할 수 있다. 예를 들어, 측정된 외부 온도가 약 10°C 인 경우, 제1가중치가 0.3이고, 제2가중치가 0.7이므로, 약 0.86GHz를 제3클럭 속도로 결정할 수 있다. 또한, 어플리케이션의 실행에 따라 외부 온도가 약 15°C로 상승한 경우, 제1가중치가 0.5, 제2가중치가 0.5이므로, 약 0.9GHz를 제3클럭 속도로 결정할 수 있다.
다양한 실시예에 따르면, 전자 장치는 외부 발열을 고려한 제4클럭 속도 및 제3가중치를 이용하여 어플리케이션의 실행에 사용할 최종 클럭 속도(예: 제5클럭 속도)를 결정할 수 있다.
제4클럭 속도는 머신 러닝에 의해 결정된 값으로써, 전자 장치의 추가 발열을 발생시키지 않는 클럭 속도의 최대 값일 수 있다. 제4클럭 속도는 제1클럭 속도 및 제2클럭 속도보다 낮은 값일 수 있다. 도 5c를 참조 하면, 제4클럭 속도로 0.5GHz가 결정되고 각 온도 별 가중치가 설정될 수 있다. 제4클럭 속도에 부여되는 제3가중치는 전자 장치의 발열을 제한하기 위한 것이므로, 온도가 높을수록 더 높은 값을 가질 수 있다.
예를 들어, 측정된 외부 온도가 약 5°C, 10°C, 15°C 인 경우, 제3가중치가 0이므로, 각 온도에서 제3클럭 속도인 0.8GHz, 0.86GHz, 0.9GHz가 제5클럭 속도로 결정될 수 있다. 측정된 외부 온도가 약 30°C인 경우, 제3가중치가 0.1이므로, 제3클럭 속도인 0.9GHz 및 제4클럭 속도인 0.5GHz에 각각 가중치 0.9, 0.1을 부여하여 제5클럭 속도로 0.914GHz가 결정될 수 있다. 또한, 온도가 약 50°C 이상인 경우에는 제4가중치가 1이기 때문에 제5클럭 속도는 제4클럭 속도인 0.5GHz로 결정될 수 있다. 이 경우, 약 35°C에서 프로세서는 최대 클럭 속도로 동작할 수 있다.
다양한 실시예에 따르면, 전자 장치는 제5클럭 속도에 따라 어플리케이션을 실행 하거나, 클럭 거버너에 따라 제5클럭 속도보다 높은 클럭 속도가 선택되더라도 최대 클럭 속도를 제5클럭 속도 이하로 설정할 수 있다.
다양한 실시예에 따르면, 전자 장치는 측정된 온도(외부 온도 또는 내부 온도)가 기 설정된 온도 이상인 경우, 어플리케이션의 실행을 종료할 수도 있다.
도 5c의 제1클럭 속도, 제2클럭 속도, 제4클럭 속도, 제1가중치, 제2가중치 및 제3가중치는 일 예에 불과하고, 다른 값들로 설정될 수 있다.
다양한 실시예에 따르면, 전자 장치는 배터리에서 프로세서로 제공되는 최대 전류를 계산함에 있어서도(예: 도 5b의 실시예) 도 5c와 같이 제4최대 전류 및 제3가중치를 이용하여 발열을 제한할 수 있는 제5최대 전류를 계산할 수 있다.
도 6은 다양한 실시예에 따른 머신 러닝의 일 예인 Q-learning 의 다이어그램이다.
다양한 실시예에 따르면, 전자 장치(예: 도 3의 프로세서(310))는 클럭 속도를 포함하는 적어도 하나의 파라미터를 보상(reward)으로 하는 Q-learning을 이용하여 제1클럭 속도 및 제2클럭 속도를 결정할 수 있다. 여기서, 적어도 하나의 파라미터는 프로세서에 제공되는 전류 또는 전력, FPS, 전자 장치의 온도 중 적어도 하나를 더 포함할 수 있다.
전자 장치는 어플리케이션의 성능과 전자 장치의 발열을 최적화하는 기법에 Q-learning을 확인할 수 있다. Q-learning은 적절한 휴리스틱(heuristic)을 이용하여 상태(state)에 대한 동작(action)을 취하고, 그 결과로 + 또는 ? 의 보상(reward)이 주어지며, 그 reward 값을 최대화 하는 방식으로 학습이 진행된다.
도 6을 참조 하면, 전자 장치는 현 상태에서 action으로 클럭 속도를 높일 수 있다. 클럭 속도의 증가는 전자 장치의 온도, FPS 등 다른 파라미터들에 영향을 미치며, 그에 따른 파라미터들이 state로 agent에 전달되고, action에 따른 파라미터의 변경 값들이 reward로 agent에 전달될 수 있다. 전자 장치는 이와 같은 동작을 반복 수행하여 각 파라미터들의 최적 값을 확인할 수 있다.
다양한 실시예에 따르면, 전자 장치는 Q-learning의 실행 시 전자 장치의 성능과 관련된 파라미터(예: FPS)에 가중치를 두어 제1결과값(예: 제1클럭 속도)를 결정하고, 전자 장치의 안정성과 관련된 파라미터(예: 내부 온도)에 가중치를 두어 제2결과값(예: 제2클럭 속도)를 결정할 수 있다.
다양한 실시예에 따르면, Q-learning은 서버 장치(예: 도 4의 서버 장치(420)의 러닝 모듈(422))에 의해 실행될 수 있으며, 서버 장치의 의해 실행 결과 결과 값이 각각의 전자 장치에 제공될 수 있다.
도 7a 및 7b는 다양한 실시예에 따른 어플리케이션의 동작 모드를 결정할 수 있는 그래픽 유저 인터페이스이다.
다양한 실시예에 따르면, 전자 장치(예: 도 3의 프로세서(310))는 사용자 입력에 따라 결정된 모드에 기초하여, 지정된 어플리케이션의 실행에 이용할 클럭 속도를 결정할 수 있다. 예를 들어, 전자 장치는 사용자가 선택한 모드에 따라서, 클럭 거버에 따라 선택된 클럭 속도를 지정된 값만큼 낮추거나 높여서 사용할 수 있다.
전자 장치는 디스플레이(예: 도 3의 디스플레이(340))를 통해 상기 모드를 결정할 수 있는 그래픽 유저 인터페이스를 제공할 수 있다. 도 7a를 참조하면, 전자 장치는 디스플레이에 모드 설정이 가능한 적어도 하나의 아이콘(710)을 표시할 수 있다. 예를 들어, 전자 장치는 설치된 게임 어플리케이션들의 아이콘을 표시할 수 있다.
도 7b를 참조하면, 전자 장치는 선택된 어플리케이션의 동작 모드를 설정할 수 있는 메뉴(720)를 표시할 수 있다. 예를 들어, 동작 모드는 기본 설정 모드(722), 발열 우선 모드(723) 및 성능 우선 모드(721)를 포함할 수 있다. 기본 설정 모드(722)는 전자 장치가 어플리케이션의 실행 정책에 따라 결정된 클럭 속도에 따라 어플리케이션을 실행하는 모드일 수 있다. 성능 우선 모드(721)는 실행 정책에 따라 선택된 클럭 속도보다 지정된 값만큼 높은 클럭 속도로 어플리케이션을 실행하는 모드일 수 있다. 발열 우선 모드(723)는 전자 장치의 발열을 방지하기 위해, 실행 정책에 따라 선택된 클럭 속도보다 지정된 값만큼 낮은 클럭 속도로 어플리케이션을 실행하는 모드일 수 있다.
다양한 실시예에 따르면, 전자 장치는 선택된 동작 모드에 따라서, 프로세서에 제공되는 타겟 전류를 결정할 수 있다.
도 8a 및 8b는 다양한 실시예에 따른 어플리케이션의 동작 모드 별 표면 온도 및 FPS를 도시한 것이다.
도 8a를 참조 하면, 어플리케이션의 실행 시 시간이 흐름에 따른 성능 우선 모드, 기본 설정 모드 및 발열 우선 모드에서 전자 장치의 내부 온도(또는 표면 온도)를 도시하고 있다. 도시된 바와 같이, 어플리케이션의 실행에 따라 전자 장치의 내부 온도가 높아지지만, 발열 우선 모드, 기본 설정 모드, 성능 우선 모드의 순으로 발열이 적은 것을 확인할 수 있다.
도 8b를 참조 하면, 어플리케이션의 실행 시 시간이 흐름에 따른 성능 우선 모드, 기본 설정 모드 및 발열 우선 모드에서 어플리케이션의 FPS를 도시하고 있다. 도시된 바와 같이, 성능 우선 모드에서는 높은 FPS를 그대로 유지할 수 있으며, 발열 우선 모드에서는 전자 장치의 온도 변화에 따라서 FPS를 다소 낮은 값으로 설정할 수 있다.
다양한 실시예에 따른 전자 장치(300)는, 온도 센서(330), 디스플레이, 및 복수의 클럭 속도들 중 선택된 클럭 속도를 이용하여 동작하도록 설정된 프로세서(310)를 포함하고, 상기 프로세서(310)는, 상기 복수의 클럭 속도들 중 선택된 하나를 이용하여, 지정된 어플리케이션을 실행시키고, 상기 지정된 어플리케이션이 실행되는 적어도 일부 동안, 상기 온도 센서(330)를 이용하여 외부 온도를 확인하고, 상기 외부 온도가 제1지정된 온도 범위에 속하는 경우, 지정된 클럭 거버너(clock governor)에 따라 상기 복수의 클럭 속도들 중 선택된 하나를 이용하여, 상기 지정된 어플리케이션을 실행시키고, 및 상기 외부 온도가 상기 제1지정된 온도보다 낮은 제2지정된 온도 범위에 속하는 경우, 상기 지정된 클럭 거버너에 따라 상기 복수의 클럭 속도들 중 속도가 빠른 일부를 제외하고 선택된 하나를 이용하여 상기 지정된 어플리케이션을 실행시키도록 설정될 수 있다.
다양한 실시예에 따르면, 상기 프로세서(310)는, 상기 지정된 어플리케이션의 실행과 관련된 제1클럭 속도 및 제2 클럭 속도에, 상기 외부 온도에 적어도 기반하여 결정된 제1가중치 및 제2가중치를 적용한 제3클럭 속도를 선택하도록 설정될 수 있다.
다양한 실시예에 따르면, 상기 프로세서(310)는, 상기 외부 온도가 상기 제2지정된 온도 범위에 속하는 경우, 상기 지정된 클럭 거버너에 따른 복수의 클럭 속도들 중 상기 제3클럭 속도를 초과하는 적어도 하나의 클럭 속도를 제외하도록 설정될 수 있다.
다양한 실시예에 따르면, 상기 제2클럭 속도는 상기 제1클럭 속도보다 낮고, 상기 제1가중치는 상기 외부 온도가 낮을수록 낮은 값을 갖도록 설정될 수 있다.
다양한 실시예에 따르면, 상기 제1클럭 속도 및 상기 제2클럭 속도는, 클럭 속도를 포함하는 적어도 하나의 파라미터를 보상(reward)으로 하는 머신 러닝에 기반하여 결정될 수 있다.
다양한 실시예에 따르면, 상기 적어도 하나의 파라미터는, 상기 프로세서(310)에 제공되는 전류, 전력, 상기 지정된 어플리케이션의 FPS(frame per second), 또는 상기 전자 장치(300)의 온도 중 적어도 하나를 더 포함할 수 있다.
다양한 실시예에 따르면, 상기 제1클럭 속도 및 상기 제2클럭 속도는, 어플리케이션 별로 결정될 수 있다.
다양한 실시예에 따르면, 배터리(360)를 더 포함하고, 상기 프로세서(310)는, 상기 선택된 하나의 클럭 속도에 대응하는 전력을 상기 배터리(360)를 이용하여 공급받도록 설정될 수 있다.
다양한 실시예에 따르면, 상기 프로세서(310)는, 상기 온도 센서(330)에서 측정된 상기 제1온도 및 선형 회귀 함수(linear regression function)를 이용하여 계산된 제2온도에 기초하여, 상기 외부 온도를 확인하도록 설정될 수 있다.
다양한 실시예에 따르면, 상기 프로세서(310)는, 복수의 기준 온도에 대응하는 복수의 상기 제2온도 중 상기 측정된 제1온도와 가장 가까운 상기 제2온도를 선택하고, 상기 측정된 제1온도 및 상기 선택된 제2온도에 기초하여 상기 외부 온도를 확인하도록 설정될 수 있다.
다양한 실시예에 따르면, 상기 프로세서(310)는, 사용자 입력에 따라 결정된 모드에 더 기초하여, 상기 지정된 어플리케이션의 실행에 이용할 클럭 속도를 결정하도록 설정될 수 있다.
다양한 실시예에 따르면, 상기 지정된 어플리케이션은 게임 어플리케이션을 포함할 수 있다.
도 9는 다양한 실시예에 따른 전자 장치의 클럭 속도 제어 방법의 흐름도이다.
도 9에 도시된 방법은 도 3의 전자 장치(300)에 의해 수행될 수 있으며, 앞서 설명한 바 있는 기술적 특징에 대해서는 이하에서 그 설명을 생략하기로 한다.
동작 910에서, 전자 장치는 어플리케이션의 실행을 감지할 수 있다. 예를 들어, 어플리케이션은 게임 어플리케이션일 수 있다.
동작 920에서, 전자 장치는 전자 장치의 외부 온도를 확인할 수 있다. 다양한 실시예에 따르면, 전자 장치는 온도 센서에서 측정된 제1온도(또는 내부 온도) 및 머신 러닝(예: 선형 회귀 함수(linear regression function))을 이용하여 계산된 제2온도에 기초하여, 전자 장치의 외부 온도(또는 주변 온도)를 확인할 수 있다. 다양한 실시예에 따르면, 전자 장치 또는 서버 장치(예: 도 2의 서버 장치(220))는 복수의 기준 온도(예: 약 -5°C, 약 15°C, 약 35°C)에서 머신 러닝(예: 선형 회귀 함수)을 이용해 제2온도를 학습해 둘 수 있다.동작 930에서, 전자 장치는 외부 온도를 기준 값과 비교할 수 있다.
비교 결과 외부 온도가 기준 값보다 높은 경우(또는 제1지정된 온도 범위에 속하는 경우), 동작 940에서, 전자 장치는 지정된 클럭 거버너에 따라 복수의 클럭 속도들 중 선택된 하나를 이용하여 어플리케이션을 실행 시킬 수 있다.
비교 결과 외부 온도가 기준 값보다 낮은 경우(또는 제2지정된 온도 범위에 속하는 경우), 동작 950에서, 전자 장치는 지정된 클럭 거버너에 따라 복수의 클럭 속도들 중 속도가 빠른 일부는 제외하고 선택된 하나를 이용하여 어플리케이션을 실행 시킬 수 있다. 예를 들어, 전자 장치는 외부 온도가 제2지정된 온도 범위에 속하는 경우, 클럭 거버너에서 특정 클럭 속도가 결정되더라도, 결정된 클럭 속도가 정해진 속도(또는 임계 속도)보다 큰 경우, 결정된 클럭 속도를 이용하지 않고 그보다 낮은 클럭 속도로 어플리케이션을 실행할 수 있다.
다양한 실시예에 따르면, 전자 장치는 어플리케이션의 실행과 관련된 제1클럭 속도 및 제2클럭 속도에 외부 온도에 기반하여 결정된 제1가중치 및 제2가중치를 적용한 제3클럭 속도를 선택할 수 있다. 여기서, 제1가중치는 제3클럭 속도의 결정 시 제1클럭 속도에 대해 적용되는 가중치이고, 제2가중치는 제2클럭 속도에 대해 결정되는 값일 수 있다. 다양한 실시예에 따르면, 전자 장치는 제3클럭 속도에 따라 어플리케이션을 실행 하거나, 클럭 거버너에 따라 제3클럭 속도보다 높은 클럭 속도가 선택되더라도 최대 클럭 속도를 제3클럭 속도 이하로 설정할 수 있다.
다양한 실시예에 따른 전자 장치(300)의 클럭 속도 제어 방법은, 지정된 어플리케이션을 실행하는 동작, 상기 지정된 어플리케이션이 실행되는 적어도 일부 동안, 상기 전자 장치(300)의 외부 온도를 확인하는 동작(920), 상기 외부 온도가 제1지정된 온도 범위에 속하는 경우, 지정된 클럭 거버너(clock governor)에 따라 복수의 클럭 속도들 중 선택된 하나를 이용하여, 상기 지정된 어플리케이션을 실행시키는 동작(940), 및 상기 외부 온도가 상기 제1지정된 온도보다 낮은 제2지정된 온도 범위에 속하는 경우, 상기 지정된 클럭 거버너에 따라 상기 복수의 클럭 속도들 중 속도가 빠른 일부를 제외하고 선택된 하나를 이용하여 상기 지정된 어플리케이션을 실행시키는 동작(950)을 포함할 수 있다.
다양한 실시예에 따르면, 상기 지정된 어플리케이션의 실행과 관련된 제1클럭 속도 및 제2 클럭 속도에, 상기 외부 온도에 적어도 기반하여 결정된 제1가중치 및 제2가중치를 적용한 제3클럭 속도를 선택하는 동작을 더 포함할 수 있다.
다양한 실시예에 따르면, 상기 외부 온도가 상기 제2지정된 온도 범위에 속하는 경우, 상기 지정된 클럭 거버너에 따른 복수의 클럭 속도들 중 상기 제3클럭 속도를 초과하는 적어도 하나의 클럭 속도를 제외하는 동작을 더 포함할 수 있다.
다양한 실시예에 따르면, 상기 제2클럭 속도는 상기 제1클럭 속도보다 낮고, 상기 제1가중치는 상기 외부 온도가 낮을수록 낮은 값을 가질 수 있다.
다양한 실시예에 따르면, 상기 지정된 어플리케이션을 실행하는 동작은, 상기 선택된 하나의 클럭 속도에 대응하는 전력을 상기 배터리(360)를 이용하여 공급받는 동작을 포함할 수 있다.
도 10은 다양한 실시예에 따른 전자 장치의 클럭 속도 제어 방법의 흐름도이다.
도 10에 도시된 방법은 도 3의 전자 장치(300)에 의해 수행될 수 있으며, 앞서 설명한 바 있는 기술적 특징에 대해서는 이하에서 그 설명을 생략하기로 한다.
동작 1010에서, 전자 장치는 어플리케이션의 실행을 감지할 수 있다. 예를 들어, 어플리케이션은 게임 어플리케이션일 수 있다.
동작 1020에서, 전자 장치는 전자 장치의 외부 온도를 확인할 수 있다. 다양한 실시예에 따르면, 전자 장치는 온도 센서에서 측정된 제1온도(또는 내부 온도) 및 머신 러닝(예: 선형 회귀 함수(linear regression function))을 이용하여 계산된 제2온도에 기초하여, 전자 장치의 외부 온도(또는 주변 온도)를 확인할 수 있다.
동작 1030에서, 전자 장치는 외부 온도가 제1온도 이상인 지 확인할 수 있다. 예를 들어, 제1온도는 약 42°C 일 수 있으나, 이에 한정되지는 않는다.
동작 1030의 확인 결과, 외부 온도가 제1온도 미만인 경우, 동작 1050에서, 전자 장치는 제1실행 정책에 기초하여 어플리케이션 실행에 사용할 클럭 속도를 결정할 수 있다. 예를 들어, 제1실행 정책은 온도(예: 전자 장치 내부 온도 또는 외부 온도)의 변화량에 따라 클럭 속도를 조정하는 정책일 수 있다. 제1실행 정책에 따르면, 현재 온도가 높은 상태에서도 온도 변화량이 음수(온도가 감소)이면 클럭 속도를 증가 시키고, 현재 온도가 낮은 상태에서도 온도 변화량이 양수(온도가 증가)이면 클럭 속도를 감소 시킬 수 있다. 제1실행 정책은 온도 구간과 온도 변화량에 따른 클럭 속도의 조절량을 포함할 수 있다.
동작 1030의 확인 결과, 외부 온도가 제1온도 이상인 경우, 동작 1040에서, 전자 장치는 제2실행 정책에 기초하여 어플리케이션 실행에 사용할 클럭 속도를 결정할 수 있다. 예를 들어, 제2실행 정책은 온도에 따라 클럭 속도를 감소 시키는 정책일 수 있다. 제2실행 정책은 전자 장치가 고온인 상태(예: 제1온도(예: 약 42°C) 이상인 경우)에 사용되므로, 프로세서(310)는 현재 온도에 따라 클럭 속도를 낮출 수 있다. 제2실행 정책에서는 어플리케이션의 성능에 관련된 파라미터(예: FPS)의 중요도는 낮을 수 있다.
전자 장치는 제2실행 정책에 따라 어플리케이션을 실행하는 중에, 동작 1060에서, 외부 온도가 제2온도 이상인 지 확인할 수 있다. 예를 들어, 제2온도는 약 46°C 일 수 있으나, 이에 한정되지는 않는다.
동작 1060의 확인 결과, 외부 온도가 제2온도 이상인 경우, 동작 1070에서, 전자 장치는 실행 중인 어플리케이션을 종료할 수 있다.
다양한 실시예에 따른 전자 장치(300)는, 온도 센서(330), 디스플레이, 및 복수의 클럭 속도들 중 선택된 클럭 속도를 이용하여 동작하도록 설정된 프로세서(310)를 포함하고, 상기 프로세서(310)는, 상기 온도 센서(330)를 이용하여, 외부 온도를 확인하고, 상기 외부 온도가 지정된 제1온도 미만인 경우, 지정된 어플리케이션에 대응하는 제1실행 정책에 기초하여 제1클럭 속도를 선택하고, 상기 제1클럭 속도에 기초하여 상기 어플리케이션을 실행하고, 상기 외부 온도가 상기 제1온도 이상인 경우, 상기 제1실행 정책과는 다른 제2실행 정책에 기초하여 제2클럭 속도를 선택하고, 상기 제2클럭 속도에 기초하여 상기 어플리케이션을 실행하도록 설정될 수 있다.
다양한 실시예에 따르면, 상기 프로세서(310)는, 상기 제1실행 정책에 기초하여, 상기 외부 온도의 변화량에 따라 상기 제1클럭 속도를 증가 또는 감소 시키고, 상기 제2실행 정책에 기초하여, 상기 외부 온도에 기초하여 상기 제2클럭 속도를 감소 시키도록 설정될 수 있다.
다양한 실시예에 따르면, 상기 프로세서(310)는, 상기 외부 온도가 상기 제1온도보다 높은 제2온도 이상인 경우, 상기 어플리케이션을 종료하도록 설정될 수 있다.
Claims (15)
- 전자 장치에 있어서,온도 센서;디스플레이; 및복수의 클럭 속도들 중 선택된 클럭 속도를 이용하여 동작하도록 설정된 프로세서를 포함하고, 상기 프로세서는,상기 복수의 클럭 속도들 중 선택된 하나를 이용하여, 지정된 어플리케이션을 실행시키고,상기 지정된 어플리케이션이 실행되는 적어도 일부 동안, 상기 온도 센서를 이용하여 외부 온도를 확인하고,상기 외부 온도가 제1지정된 온도 범위에 속하는 경우, 지정된 클럭 거버너(clock governor)에 따라 상기 복수의 클럭 속도들 중 선택된 하나를 이용하여, 상기 지정된 어플리케이션을 실행시키고, 및상기 외부 온도가 상기 제1지정된 온도보다 낮은 제2지정된 온도 범위에 속하는 경우, 상기 지정된 클럭 거버너에 따라 상기 복수의 클럭 속도들 중 속도가 빠른 일부를 제외하고 선택된 하나를 이용하여 상기 지정된 어플리케이션을 실행시키도록 설정된 전자 장치.
- 제 1항에 있어서,상기 프로세서는,상기 지정된 어플리케이션의 실행과 관련된 제1클럭 속도 및 제2 클럭 속도에, 상기 외부 온도에 적어도 기반하여 결정된 제1가중치 및 제2가중치를 적용한 제3클럭 속도를 선택하도록 설정된 전자 장치.
- 제 2항에 있어서,상기 프로세서는,상기 외부 온도가 상기 제2지정된 온도 범위에 속하는 경우, 상기 지정된 클럭 거버너에 따른 복수의 클럭 속도들 중 상기 제3클럭 속도를 초과하는 적어도 하나의 클럭 속도를 제외하도록 설정된 전자 장치.
- 제 2항에 있어서,상기 제2클럭 속도는 상기 제1클럭 속도보다 낮고,상기 제1가중치는 상기 외부 온도가 낮을수록 낮은 값을 갖도록 설정된 전자 장치.
- 제 2항에 있어서,상기 제1클럭 속도 및 상기 제2클럭 속도는,클럭 속도를 포함하는 적어도 하나의 파라미터를 보상(reward)으로 하는 머신 러닝에 기반하여 결정된 전자 장치.
- 제 5항에 있어서,상기 적어도 하나의 파라미터는,상기 프로세서에 제공되는 전류, 전력, 상기 지정된 어플리케이션의 FPS(frame per second), 또는 상기 전자 장치의 온도 중 적어도 하나를 더 포함하는 전자 장치.
- 제 2항에 있어서,상기 제1클럭 속도 및 상기 제2클럭 속도는,어플리케이션 별로 결정되는 전자 장치.
- 제 1항에 있어서,배터리를 더 포함하고,상기 프로세서는,상기 선택된 하나의 클럭 속도에 대응하는 전력을 상기 배터리를 이용하여 공급받도록 설정된 전자 장치.
- 제 1항에 있어서,상기 프로세서는,상기 온도 센서에서 측정된 상기 제1온도 및 선형 회귀 함수(linear regression function)를 이용하여 계산된 제2온도에 기초하여, 상기 외부 온도를 확인하도록 설정된 전자 장치.
- 제 9항에 있어서,상기 프로세서는,복수의 기준 온도에 대응하는 복수의 상기 제2온도 중 상기 측정된 제1온도와 가장 가까운 상기 제2온도를 선택하고,상기 측정된 제1온도 및 상기 선택된 제2온도에 기초하여 상기 외부 온도를 확인하도록 설정된 전자 장치.
- 전자 장치의 클럭 속도 제어 방법에 있어서,지정된 어플리케이션을 실행하는 동작;상기 지정된 어플리케이션이 실행되는 적어도 일부 동안, 상기 전자 장치의 외부 온도를 확인하는 동작;상기 외부 온도가 제1지정된 온도 범위에 속하는 경우, 지정된 클럭 거버너(clock governor)에 따라 복수의 클럭 속도들 중 선택된 하나를 이용하여, 상기 지정된 어플리케이션을 실행시키는 동작; 및상기 외부 온도가 상기 제1지정된 온도보다 낮은 제2지정된 온도 범위에 속하는 경우, 상기 지정된 클럭 거버너에 따라 상기 복수의 클럭 속도들 중 속도가 빠른 일부를 제외하고 선택된 하나를 이용하여 상기 지정된 어플리케이션을 실행시키는 동작을 포함하는 방법.
- 제 11항에 있어서,상기 지정된 어플리케이션의 실행과 관련된 제1클럭 속도 및 제2 클럭 속도에, 상기 외부 온도에 적어도 기반하여 결정된 제1가중치 및 제2가중치를 적용한 제3클럭 속도를 선택하는 동작을 더 포함하는 방법.
- 제 12항에 있어서,상기 외부 온도가 상기 제2지정된 온도 범위에 속하는 경우, 상기 지정된 클럭 거버너에 따른 복수의 클럭 속도들 중 상기 제3클럭 속도를 초과하는 적어도 하나의 클럭 속도를 제외하는 동작을 더 포함하는 방법.
- 제 12항에 있어서,상기 제2클럭 속도는 상기 제1클럭 속도보다 낮고,상기 제1가중치는 상기 외부 온도가 낮을수록 낮은 값을 갖는 방법.
- 제 11항에 있어서,상기 지정된 어플리케이션을 실행하는 동작은,상기 선택된 하나의 클럭 속도에 대응하는 전력을 상기 배터리를 이용하여 공급받는 동작을 포함하는 방법.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US17/262,798 US11366486B2 (en) | 2018-08-08 | 2019-08-08 | Method for executing application by using clock speed of processor selected according to external temperature, and electronic device including same |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020180092646A KR102684855B1 (ko) | 2018-08-08 | 2018-08-08 | 외부 온도에 따라 선택된 프로세서의 클럭 속도를 이용하여 어플리케이션을 실행 시키는 방법 및 이를 포함하는 전자 장치 |
| KR10-2018-0092646 | 2018-08-08 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2020032619A1 true WO2020032619A1 (ko) | 2020-02-13 |
Family
ID=69415010
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2019/009968 Ceased WO2020032619A1 (ko) | 2018-08-08 | 2019-08-08 | 외부 온도에 따라 선택된 프로세서의 클럭 속도를 이용하여 어플리케이션을 실행 시키는 방법 및 이를 포함하는 전자 장치 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US11366486B2 (ko) |
| KR (1) | KR102684855B1 (ko) |
| WO (1) | WO2020032619A1 (ko) |
Families Citing this family (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2021049794A1 (ko) * | 2019-09-10 | 2021-03-18 | 삼성전자 주식회사 | 전력 및/또는 발열 제어를 구현하는 방법 및 그 전자 장치 |
| KR102862457B1 (ko) * | 2020-08-11 | 2025-09-23 | 삼성전자주식회사 | 전자 장치 및 그 제어 방법 |
| US20220113766A1 (en) * | 2020-10-12 | 2022-04-14 | Samsung Electronics Co., Ltd. | Electronic device including flexible display and method for controlling temperature according to state of electronic device using the same |
| EP4191380B1 (en) | 2021-01-13 | 2026-04-29 | Samsung Electronics Co., Ltd. | Electronic device and user activity-based heating control method in electronic device |
| KR102951786B1 (ko) * | 2021-01-13 | 2026-04-14 | 삼성전자주식회사 | 전자 장치 및 전자 장치에서 사용자 활동 기반 발열 제어 방법 |
| EP4350477A4 (en) * | 2021-09-08 | 2024-09-25 | Samsung Electronics Co., Ltd. | ELECTRONIC TEMPERATURE COMPENSATION APPARATUS AND ITS OPERATING METHOD |
| US12416667B2 (en) * | 2021-10-02 | 2025-09-16 | Innogrit Technologies Co., Ltd. | Adaptive thermal calibration for throttling prevention |
| WO2023085628A1 (ko) * | 2021-11-15 | 2023-05-19 | 삼성전자 주식회사 | 어플리케이션의 실행 성능을 개선하는 전자 장치 및 그 동작 방법 |
| EP4439199A4 (en) * | 2022-01-18 | 2025-03-19 | Samsung Electronics Co., Ltd. | Electronic device and temperature control method of electronic device |
| WO2023140464A1 (ko) * | 2022-01-18 | 2023-07-27 | 삼성전자 주식회사 | 전자 장치 및 전자 장치의 온도 제어 방법 |
| US12057036B2 (en) | 2022-09-13 | 2024-08-06 | Qualcomm Incorporated | Predicting thermal states in connected devices to provide edge processing |
| TWI877995B (zh) * | 2023-06-20 | 2025-03-21 | 慧榮科技股份有限公司 | 資料儲存裝置、以及非揮發式記憶體控制方法 |
| WO2025263932A1 (ko) * | 2024-06-17 | 2025-12-26 | 삼성전자 주식회사 | 전자 장치 및 그 동작 방법과 저장 매체 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH09512654A (ja) * | 1994-04-28 | 1997-12-16 | エロネックス・テクノロジーズ・インコーポレーテッド | 集積回路のための温度管理 |
| KR20090012571A (ko) * | 2007-07-30 | 2009-02-04 | 엘지전자 주식회사 | Cpu 클럭과 온도 값을 이용한 비디오 컨트롤러 제어방법및 장치 |
| US7937599B1 (en) * | 1994-06-20 | 2011-05-03 | Ipventure, Inc. | Thermal and power management for computer systems |
| JP2017220027A (ja) * | 2016-06-07 | 2017-12-14 | 富士通株式会社 | 電子機器、プロセッサ制御方法およびプロセッサ制御プログラム |
| KR20180074377A (ko) * | 2016-12-23 | 2018-07-03 | 삼성전자주식회사 | 전자 장치 및 전자 장치의 배터리의 온도에 기반한 발열 제어 방법 |
Family Cites Families (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE69322271T2 (de) | 1992-06-29 | 1999-04-22 | Elonex I P Holdings Ltd | Modular tragbarer rechner |
| DE4340284C1 (de) * | 1993-11-26 | 1995-06-14 | Telefunken Microelectron | Verfahren zum Betrieb eines digitalen Logik-Halbleiterbauelements in Abhängigkeit der Umgebungstemperatur in mehreren Betriebsmodi, insb. geeignet für den Kfz-Bereich |
| US6415388B1 (en) * | 1998-10-30 | 2002-07-02 | Intel Corporation | Method and apparatus for power throttling in a microprocessor using a closed loop feedback system |
| US8214658B2 (en) * | 2008-08-20 | 2012-07-03 | International Business Machines Corporation | Enhanced thermal management for improved module reliability |
| FR2955218B1 (fr) * | 2010-01-08 | 2012-02-10 | St Microelectronics Sa | Procede et dispositif de controle de la frequence d'un signal d'horloge d'un circuit integre |
| JP2011174816A (ja) | 2010-02-24 | 2011-09-08 | Sony Corp | 電子機器及び電子機器の制御方法 |
| KR101881019B1 (ko) * | 2011-10-26 | 2018-07-24 | 삼성전자 주식회사 | 휴대 단말기의 전원절약 장치 및 방법 |
| TW201419159A (zh) * | 2012-11-09 | 2014-05-16 | Askey Computer Corp | 省電方法及其手持電子裝置 |
| JP2015001396A (ja) | 2013-06-13 | 2015-01-05 | 船井電機株式会社 | 異常温度検出器、及び電子機器 |
| JP2015011594A (ja) | 2013-06-28 | 2015-01-19 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | 端末装置、アプリケーション起動方法及びコンピュータプログラム |
| KR20150134772A (ko) | 2014-05-23 | 2015-12-02 | 엘지전자 주식회사 | 이동 단말기 및 그의 동적 프레임 조절 방법 |
| GB2540804B (en) | 2015-07-29 | 2018-03-07 | Samsung Electronics Co Ltd | Hardware power management apparatus and methods |
| JP6275173B2 (ja) * | 2016-03-03 | 2018-02-07 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
| US10613957B2 (en) * | 2016-06-24 | 2020-04-07 | Advanced Micro Devices, Inc. | Achieving balanced execution through runtime detection of performance variation |
| US20210255746A1 (en) * | 2018-07-20 | 2021-08-19 | Huawei Technologies Co., Ltd. | Application control method and electronic device |
-
2018
- 2018-08-08 KR KR1020180092646A patent/KR102684855B1/ko active Active
-
2019
- 2019-08-08 US US17/262,798 patent/US11366486B2/en active Active
- 2019-08-08 WO PCT/KR2019/009968 patent/WO2020032619A1/ko not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH09512654A (ja) * | 1994-04-28 | 1997-12-16 | エロネックス・テクノロジーズ・インコーポレーテッド | 集積回路のための温度管理 |
| US7937599B1 (en) * | 1994-06-20 | 2011-05-03 | Ipventure, Inc. | Thermal and power management for computer systems |
| KR20090012571A (ko) * | 2007-07-30 | 2009-02-04 | 엘지전자 주식회사 | Cpu 클럭과 온도 값을 이용한 비디오 컨트롤러 제어방법및 장치 |
| JP2017220027A (ja) * | 2016-06-07 | 2017-12-14 | 富士通株式会社 | 電子機器、プロセッサ制御方法およびプロセッサ制御プログラム |
| KR20180074377A (ko) * | 2016-12-23 | 2018-07-03 | 삼성전자주식회사 | 전자 장치 및 전자 장치의 배터리의 온도에 기반한 발열 제어 방법 |
Also Published As
| Publication number | Publication date |
|---|---|
| US11366486B2 (en) | 2022-06-21 |
| KR102684855B1 (ko) | 2024-07-15 |
| US20210165442A1 (en) | 2021-06-03 |
| KR20200017260A (ko) | 2020-02-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2020032619A1 (ko) | 외부 온도에 따라 선택된 프로세서의 클럭 속도를 이용하여 어플리케이션을 실행 시키는 방법 및 이를 포함하는 전자 장치 | |
| WO2020171470A1 (en) | Electronic device and method for wirelessly transmitting power based on foreign object detection in the electronic device | |
| WO2020171518A1 (en) | Electronic device for adaptive power management | |
| WO2019103527A1 (en) | Electronic device and communication method thereof | |
| WO2019083271A1 (ko) | 어플리케이션 프로그램을 제어하는 전자 장치 및 그 제어 방법 | |
| WO2021020803A1 (en) | Electronic device and frequency interference cancellation method thereof | |
| WO2021157913A1 (en) | Electronic device for controlling process and method thereof | |
| WO2020106019A1 (en) | Electronic device and method for providing in-vehicle infotainment service | |
| WO2021020900A1 (en) | Electronic device for preventing damage of usb device and operating method thereof | |
| WO2020159255A1 (en) | System for processing user data and controlling method thereof | |
| WO2021010622A1 (ko) | 배터리를 포함하는 전자 장치 및 그의 배터리 충전 제어 방법 | |
| WO2021210816A1 (ko) | 거리 측정과 관련된 전력 소모를 줄이기 위한 전자 장치 및 그의 동작 방법 | |
| WO2022149798A1 (ko) | 전자 장치 및 그 전자 장치의 제어 방법 | |
| WO2020076042A1 (ko) | 무선 전력 전송을 위한 방법 및 그 전자 장치 | |
| WO2022154379A1 (ko) | 전자 장치 및 밝기 조절 방법 | |
| WO2022240050A1 (ko) | 입력 전류를 제어하는 방법 및 전자 장치 | |
| WO2022154264A1 (ko) | 전자 장치 및 전자 장치의 동작 방법 | |
| WO2024191052A1 (ko) | 절전 기능에 관한 사용자 인터페이스를 제공하기 위한 전자 장치 및 그 동작 방법 | |
| WO2020166781A1 (ko) | 조도 센서 및 디스플레이를 이용하여 의도되지 않은 사용자 입력의 수신을 방지하는 전자 장치 및 전자 장치의 동작 방법 | |
| WO2021071153A1 (ko) | 전자 장치, 전자 장치의 동작 방법 및 비 일시적 저장 매체 | |
| WO2019194492A1 (ko) | 전자 장치의 전력을 제어하는 방법 및 이를 위한 서버 | |
| WO2023075209A1 (ko) | 표면 발열을 제어하기 위한 방법, 이를 위한 전자 장치 및 저장 매체 | |
| WO2019093616A1 (ko) | 모드 스위칭을 제공하는 방법, 전자 장치 및 저장 매체 | |
| WO2024043464A1 (ko) | 프로세서에 포함된 각각의 회로들의 주파수들을 조절하기 위한 전자 장치, 방법, 및 컴퓨터 판독 가능 저장 매체 | |
| WO2022235035A1 (ko) | 전자 장치, 웨어러블 장치, 및 전자 장치와 웨어러블 장치를 포함하는 시스템 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19847925 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 19847925 Country of ref document: EP Kind code of ref document: A1 |