KR101463533B1 - Method of core scheduling for asymmetric multi-core processor in a mobile device and apparatus for performing the same - Google Patents

Method of core scheduling for asymmetric multi-core processor in a mobile device and apparatus for performing the same Download PDF

Info

Publication number
KR101463533B1
KR101463533B1 KR1020120044585A KR20120044585A KR101463533B1 KR 101463533 B1 KR101463533 B1 KR 101463533B1 KR 1020120044585 A KR1020120044585 A KR 1020120044585A KR 20120044585 A KR20120044585 A KR 20120044585A KR 101463533 B1 KR101463533 B1 KR 101463533B1
Authority
KR
South Korea
Prior art keywords
core
usage rate
application
cpu
maximum frequency
Prior art date
Application number
KR1020120044585A
Other languages
Korean (ko)
Other versions
KR20130121412A (en
Inventor
고병문
이준원
Original Assignee
성균관대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 성균관대학교산학협력단 filed Critical 성균관대학교산학협력단
Priority to KR1020120044585A priority Critical patent/KR101463533B1/en
Publication of KR20130121412A publication Critical patent/KR20130121412A/en
Application granted granted Critical
Publication of KR101463533B1 publication Critical patent/KR101463533B1/en

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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Power Sources (AREA)
  • Telephone Function (AREA)

Abstract

모바일 디바이스의 AMP 환경에서 각 어플리케이션의 CPU 사용량을 기반으로 스케줄링을 수행하는 모바일 장치에서의 비대칭 멀티 프로세서 코어 스케줄링 방법 및 모바일 장치가 제공된다. 스케줄링 방법은 어플리케이션의 실행 요청에 응답하여 제 1 동작 속도를 가진 제 1 코어가 상기 어플리케이션을 실행하고, 제 2 동작 속도를 가진 제 2 코어가 CPU의 사용률을 모니터링하는 단계 및 상기 CPU 사용률이 미리 설정한 제 1 사용률 미만인 경우 상기 어플리케이션을 제 2 코어가 실행하는 단계를 포함할 수 있다. 따라서, 전력 소모를 낮추고 모바일 장치의 배터리 사용 시간을 늘릴 수 있다. There is provided an asymmetric multiprocessor core scheduling method and a mobile device in a mobile device that performs scheduling based on CPU usage of each application in an AMP environment of a mobile device. The scheduling method comprising the steps of: a first core having a first operating speed executing the application in response to an application execution request; a second core having a second operating speed monitoring a utilization rate of the CPU; And executing the application by the second core when the first usage rate is less than a first usage rate. Thus, power consumption can be lowered and the battery usage time of the mobile device can be increased.

Description

모바일 장치에서의 비대칭 멀티 프로세서 코어 스케줄링 방법 및 모바일 장치{METHOD OF CORE SCHEDULING FOR ASYMMETRIC MULTI-CORE PROCESSOR IN A MOBILE DEVICE AND APPARATUS FOR PERFORMING THE SAME} BACKGROUND OF THE INVENTION 1. Field of the Invention [0001] The present invention relates to an asymmetric multiprocessor core scheduling method and a mobile device in a mobile device.

본 발명은 모바일 장치에서의 비대칭 멀티 프로세서 코어 스케줄링 방법 및 장치에 관한 것으로, 더욱 구체적으로는 전력 소모를 낮출 수 있는 코어 스케줄링 방법 및 모바일 장치에 관한 것이다.
The present invention relates to a method and apparatus for asymmetric multiprocessor core scheduling in a mobile device, and more particularly to a core scheduling method and a mobile device capable of reducing power consumption.

프로세서의 성능은 빠르게 향상되어왔다. 코어의 성능을 향상하기 위해 out-of-order, pipelining 과 같은 기술을 발전시켜 적용하였다. 하지만 이러한 기술을 통한 성능 향상은 제한되었는데, 클럭 주파수를 일정 수준이상으로 높이게 될 경우 프로세서는 대량의 전력을 소비하게 되기 때문이다. 또한, 심각한 발열 문제를 동반하기 때문에 클럭 주파수의 증가를 이용한 프로세서의 성능 향상은 한계점에 도달했다. 따라서, 최근의 프로세서들은 멀티코어의 형태로 발전하여 병렬성을 높이는 방법으로 전체적인 시스템의 성능을 향상시키게 되었다. Processor performance has been rapidly improving. In order to improve the performance of the core, out-of-order and pipelining technologies have been developed and applied. However, performance improvements through these techniques are limited, because if the clock frequency is raised above a certain level, the processor consumes a lot of power. In addition, because of the severe heat problem, the performance improvement of the processor using the increase of the clock frequency has reached a limit. Thus, recent processors have been developed as multi-cores, which improves overall system performance by increasing parallelism.

멀티코어 프로세서는 주로 고성능을 목적으로 하는 PC, server 에서 활용되어 왔으나 최근에는 스마트폰, 태블릿과 같은 모바일 디바이스에도 채택하기 시작하였다. 멀티코어가 superscalar processor 보다 적은 전력을 소모하기는 하지만, 향후 더 많은 코어의 프로세서를 모바일 디바이스가 탑재한다면, 전력 소모는 늘어나게 될 것으로 예측된다.Multicore processors have been mainly used for high performance PCs and servers, but recently they have started to be adopted for mobile devices such as smart phones and tablets. Although multicore consumes less power than superscalar processors, power consumption is expected to increase if mobile devices are equipped with more cores in the future.

최근 AMP(Asymmetric Multi-core Processor)라 불리는 프로세서의 형태가 등장하기 시작하였는데, 기존의 SMP(Symmetric Multi-core Processor)와는 다르게, 성능이 다른 코어들을 배치하여 single thread 에 대해서는 높은 처리량을 가지면서 동시에, 병렬성이 우수한 형태의 코어에 대한 연구가 진행되고 있다. Recently, a processor called asymmetric multi-core processor (AMP) has begun to emerge. Unlike conventional symmetric multi-core processors (SMPs) , Studies on cores with excellent parallelism are underway.

일반적으로 고성능의 코어는 보다 많은 처리량을 수용할 수 있도록 superscalar 의 기능을 최대한 많이 집적하도록 구성하며, 대용량 처리에 집중되어 성능은 좋지만 칩 내에서 차지하는 면적이 크고, 복잡한 구조이며 전력소모가 많다. 반면, 낮은 성능의 코어는 단순하고 기능이 적지만, 작고 효율성을 추구하게 된다. 상대적으로 작은 면적을 가지며, 전력 소모가 훨씬 적게 디자인이 가능하다.In general, high-performance cores are configured to maximize the capacity of superscalar to accommodate higher throughputs. They are concentrated on high-capacity processing and have high performance, but have a large area within the chip, a complex structure, and high power consumption. On the other hand, low-performance cores are simple and feature-less, but they are small and seek efficiency. It has a relatively small area and can be designed with much less power consumption.

AMP는 동일한 ISA(instruction set architecture)를 가지면서도 성능이 다른 코어들을 하나의 칩에 집적시킴으로써 제 1 동작 속도를 가진 제 1 코어의 장점과 제 2 동작 속도를 가진 제 2 코어 - 여기서, 상기 제 1 동작 속도는 제 2 동작 속도보다 빠른 것을 특징으로 함 - 의 장점을 모두 활용할 수 있다. 또한 각 코어의 ISA 가 동일하기 때문에 어느 코어에서 스레드를 수행시켜도 특별한 인스트럭션(instruction) 변환 과정 없이 실행이 가능하다.
AMP is a second core having the advantages of a first core with a first operating speed and a second operating speed by integrating different cores on the same chip while having the same instruction set architecture (ISA) And that the operating speed is faster than the second operating speed. In addition, since the ISA of each core is the same, execution of a thread in any core can be executed without special instruction conversion.

한국 등록 특허 제 10 - 1065436 호("불확실한 계산량을 가진 실시간 병렬 작업을 위한 멀티코어 프로세서의 확률적 스케줄링 방법", 경상대학교산학협력단, 2011년 9월 8일 등록)Korean Registered Patent No. 10 - 1065436 ("Stochastic Scheduling Method of Multicore Processor for Real-Time Parallel Operation with Uncertain Computation ", Registered on September 8, 2011 by Gyeongsang National University Industry &

본 발명의 목적은 모바일 디바이스의 AMP 환경에서 각 어플리케이션의 CPU 사용량을 고려하여 CPU 사용량이 낮은 태스크를 제 2 동작 속도를 가진 제 2 코어에서 수행하고 제 1 동작 속도를 가진 제 1 코어 - 여기서, 상기 제 1 동작 속도는 제 2 동작 속도보다 빠른 것을 특징으로 함 - 의 전원을 차단함으로써 CPU 사용량 기반의 스케줄링을 수행하여 전력 소모를 낮추고 모바일 장치의 배터리 사용 시간을 늘릴 수 있는 모바일 장치에서의 비대칭 멀티 프로세서 코어 스케줄링 방법을 제공하는 것이다. An object of the present invention is to provide a first core having a low CPU usage in a second core having a second operating speed and having a first operating speed in consideration of CPU usage of each application in an AMP environment of a mobile device, Characterized in that the first operating speed is faster than the second operating speed by performing a scheduling based on the CPU usage by lowering the power consumption and increasing the battery usage time of the mobile device, And to provide a core scheduling method.

본 발명의 다른 목적은 모바일 디바이스의 AMP 환경에서 각 어플리케이션의 CPU 사용량을 고려하여 CPU 사용량이 낮은 태스크를 제 2 동작 속도를 가진 제 2 코어에서 수행하고 제 1 동작 속도를 가진 제 1 코어 - 여기서, 상기 제 1 동작 속도는 제 2 동작 속도보다 빠른 것을 특징으로 함 - 의 전원을 차단함으로써 CPU 사용량 기반의 스케줄링을 수행하여 전력 소모를 낮추고 배터리 사용 시간을 늘릴 수 있는 모바일 장치를 제공하는 것이다.
It is another object of the present invention to provide a method and apparatus for performing a task with a low CPU usage in a second core having a second operating speed and a first core having a first operating speed, Wherein the first operating speed is higher than the second operating speed. The present invention provides a mobile device capable of reducing power consumption and increasing battery usage time by performing scheduling based on CPU usage by shutting off the power supply.

전술한 본 발명의 목적을 달성하기 위한 모바일 장치에서의 비대칭 멀티 프로세서 코어 스케줄링 방법은 어플리케이션의 실행 요청에 응답하여, 제 1 동작 속도를 가진 제 1 코어가 상기 어플리케이션을 실행하고, 제 2 동작 속도를 가진 제 2 코어 - 여기서, 상기 제 1 동작 속도는 제 2 동작 속도보다 빠른 것을 특징으로 함 - 가 CPU의 사용률을 모니터링하는 단계; 및 상기 CPU 사용률이 미리 설정한 제 1 사용률 미만인 경우 상기 제 2 코어가 상기 어플리케이션을 실행하는 단계를 포함할 수 있다. 여기서, 상기 제 2 코어가 상기 어플리케이션을 실행하고 일정 시간이 경과하면 상기 제 1 코어의 전원을 차단하는 단계를 더 포함할 수 있다. 또한, 상기 전원을 차단하는 단계는 상기 CPU 사용률이 미리 설정한 제 2 사용률 미만인 경우, 상기 CPU 사용률이 상기 제 2 사용률 이상인 경우보다 적은 시간 경과 후 상기 제 1 코어의 전원을 차단하는 것을 특징으로 할 수 있다. 상기 제 2 사용률은 상기 제 1 사용률보다 적은 것을 특징으로 할 수 있다. 여기서, 상기 일정 시간은 사용자의 입력에 의해 설정될 수 있다. 또한, 상기 제 1 사용률은 상기 제 2 코어의 최대 주파수 및 제 1 코어의 최대 주파수를 기반으로 결정될 수 있다. 또한, 상기 제 1 사용률은 상기 제 2 코어의 최대 주파수를 상기 제 1 코어의 최대 주파수로 나눈 값을 기반으로 결정될 수 있다. 여기서, 상기 어플리케이션이 종료되면 상기 제 2 코어가 백그라운드 태스크를 수행하는 단계를 더 포함할 수 있다. According to an aspect of the present invention, there is provided a method for scheduling asymmetric multiprocessors in a mobile device, the method comprising: a first core having a first operating speed for executing the application; Wherein the first operating speed is greater than the second operating speed; monitoring a utilization of the CPU; And executing the application by the second core when the CPU usage rate is less than a preset first usage rate. The method may further include disconnecting power of the first core when the second core executes the application and a predetermined time has elapsed. In addition, the step of shutting off the power supply may be such that, when the CPU usage rate is less than a second usage rate set in advance, the power supply of the first core is shut off after a lapse of time less than when the CPU usage rate is equal to or higher than the second usage rate . And the second usage rate is smaller than the first usage rate. Here, the predetermined time may be set by a user's input. Also, the first usage rate may be determined based on the maximum frequency of the second core and the maximum frequency of the first core. The first usage rate may be determined based on a value obtained by dividing a maximum frequency of the second core by a maximum frequency of the first core. Here, when the application is terminated, the second core may perform a background task.

본 발명의 다른 목적을 달성하기 위한 모바일 장치는 어플리케이션의 실행 요청에 응답하여, 상기 어플리케이션을 실행하는 제 1 코어; 및 CPU의 사용률을 모니터링하고 상기 CPU 사용률이 미리 설정한 제 1 사용률 미만인 경우 상기 어플리케이션을 실행하는 제 2 코어를 포함할 수 있다. 여기서, 상기 제 2 코어가 상기 어플리케이션을 실행하고 일정 시간이 경과하면 상기 제 1 코어의 전원을 차단하는 제어부를 더 포함할 수 있다. 또한, 상기 제어부는 상기 CPU 사용률이 미리 설정한 제 2 사용률 미만인 경우, 상기 CPU 사용률이 상기 제 2 사용률 이상인 경우보다 짧은 시간 경과 후 상기 제 1 코어의 전원을 차단하는 것을 특징으로 할 수 있다. 여기서, 상기 제 2 사용률은 상기 제 1 사용률보다 적은 것을 특징으로 할 수 있다. 여기서, 사용자의 조작에 의해 수치를 입력받는 입력부를 더 포함하고, 상기 일정 시간은 상기 입력부를 통한 사용자의 입력에 의해 설정되는 것을 특징으로 할 수 있다. 상기 제 1 사용률은 상기 제 2 코어의 최대 주파수 및 제 1 코어의 최대 주파수를 기반으로 결정될 수 있고, 상기 제 1 사용률은 상기 제 2 코어의 최대 주파수를 상기 제 1 코어의 최대 주파수로 나눈 값을 기반으로 결정될 수 있다. 또한, 상기 제 2 코어는 상기 어플리케이션이 종료되면 백그라운드 태스크를 수행하는 것을 특징으로 할 수 있다.
According to another aspect of the present invention, there is provided a mobile device comprising: a first core for executing an application in response to an application execution request; And a second core that monitors the usage rate of the CPU and executes the application when the CPU usage rate is less than a preset first usage rate. The controller may further include a controller for shutting down the power of the first core when the second core executes the application and a predetermined time has elapsed. The controller may cut off power to the first core after a lapse of a shorter time than when the CPU usage rate is equal to or higher than the second usage rate when the CPU usage rate is less than a second usage rate set in advance. Here, the second usage rate may be smaller than the first usage rate. Here, the apparatus may further include an input unit for receiving a numerical value by a user operation, wherein the predetermined time is set by a user's input through the input unit. The first usage rate may be determined based on the maximum frequency of the second core and the maximum frequency of the first core, and the first usage rate is a value obtained by dividing the maximum frequency of the second core by the maximum frequency of the first core . ≪ / RTI > In addition, the second core may perform a background task when the application is terminated.

전술한 본 발명의 일 실시예에 따른 모바일 장치에서의 비대칭 멀티 프로세서 코어 스케줄링 방법 및 모바일 장치에 따르면, 모바일 디바이스에서의 AMP 환경을 가정하여 각 어플리케이션의 CPU 사용량을 고려한 스케줄링 방법으로 전력 소모를 낮추어 스마트폰의 배터리 사용시간을 늘릴 수 있는 방안을 제시할 수 있다. 제안하는 스케줄링 방법을 사용하면 뮤직 플레이어와 같이 CPU 사용량이 낮은 태스크를 제 2 코어에서 수행하고 제 1 코어의 전원을 차단함으로써 배터리의 소모를 최소화할 수 있으며, 나아가 병렬로 처리되는 어플리케이션들은 성능까지 크게 향상될 수 있다.
According to the asymmetric multiprocessor core scheduling method and the mobile device in the mobile device according to the embodiment of the present invention, by using the scheduling method considering the CPU usage of each application on the assumption of the AMP environment in the mobile device, You can suggest ways to increase your phone's battery usage time. By using the proposed scheduling method, it is possible to minimize the consumption of the battery by performing the task with low CPU usage like the music player on the second core and turning off the power of the first core. Furthermore, Can be improved.

도 1은 대기 모드 상태의 CPU 사용량을 나타내는 그래프이다.
도 2는 뮤직 플레이어를 실행하였을 때의 CPU 사용량을 나타내는 그래프이다.
도 3은 안드로이드 마켓 어플리케이션을 수행하였을 때의 CPU 사용량을 나타내는 그래프이다.
도 4는 어플리케이션의 특성에 따른 분류를 나타내는 그래프이다.
도 5는 본 발명의 일 실시예에 따른 모바일 장치에서의 비대칭 멀티 프로세서 코어 스케줄링 방법의 개념도이다.
도 6은 본 발명의 일 실시예에 따른 모바일 장치에서의 비대칭 멀티 프로세서 코어 스케줄링 방법의 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 모바일 장치의 구성을 나타내는 블록도이다.
도 8은 워크 로드를 제 1 코어와 제 2 코어에서 수행시킬 때, 워크 로드의 전체 수행 시간과 요청(request) 당 처리 시간을 나타내는 그래프이다.
도 9는 AMP 환경에서 CPU-bound 워크 로드와 I/O-bound 워크 로드의 코어 할당에 따른 완료 시간을 비교하는 그래프이다.
도 10은 다양한 코어의 조합에 따른 워크 로드의 처리 시간 및 각 코어로 워크 로드의 스케줄링 여부를 나타내는 그래프이다.
1 is a graph showing a CPU usage amount in a standby mode state.
2 is a graph showing the CPU usage when the music player is executed.
3 is a graph showing the CPU usage when the Android market application is executed.
4 is a graph showing the classification according to the characteristics of the application.
5 is a conceptual diagram of an asymmetric multiprocessor core scheduling method in a mobile device according to an embodiment of the present invention.
6 is a flow diagram of a method for asymmetric multiprocessor core scheduling in a mobile device in accordance with an embodiment of the present invention.
7 is a block diagram illustrating a configuration of a mobile device according to an embodiment of the present invention.
8 is a graph showing the total execution time of the workload and the processing time per request when the workload is executed in the first core and the second core.
9 is a graph comparing the completion time according to the core allocation of the CPU-bound workload and the I / O-bound workload in the AMP environment.
10 is a graph showing a processing time of a workload according to a combination of various cores and whether or not a workload is scheduled for each core.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail.

그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.

본 명세서의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.In the following description of the embodiments of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present disclosure rather unclear.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.The terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprises" or "having" and the like are used to specify that there is a feature, a number, a step, an operation, an element, a component or a combination thereof described in the specification, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

또한 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리범위에 포함된다.In addition, the components shown in the embodiments of the present invention are shown independently to represent different characteristic functions, which does not mean that each component is composed of separate hardware or software constituent units. That is, each constituent unit is included in each constituent unit for convenience of explanation, and at least two constituent units of the constituent units may be combined to form one constituent unit, or one constituent unit may be divided into a plurality of constituent units to perform a function. The integrated embodiments and separate embodiments of the components are also included within the scope of the present invention, unless they depart from the essence of the present invention.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the relevant art and are to be interpreted in an ideal or overly formal sense unless explicitly defined in the present application Do not.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In order to facilitate the understanding of the present invention, the same reference numerals are used for the same constituent elements in the drawings and redundant explanations for the same constituent elements are omitted.

또한, 이하 제 1 동작 속도를 가진 제 1 코어와 제 2 동작 속도를 가진 제 2 코어에 대해, 제 1 동작 속도는 제 2 동작 속도보다 빠는 것을 특징으로 한다.
Further, for a first core having a first operating speed and a second core having a second operating speed, the first operating speed is less than the second operating speed.

도 1은 대기 모드 상태의 CPU 사용량을 나타내는 그래프이고, 도 2는 뮤직 플레이어를 실행하였을 때의 CPU 사용량을 나타내는 그래프이며, 도 3은 안드로이드 마켓 어플리케이션을 수행하였을 때의 CPU 사용량을 나타내는 그래프이다. FIG. 1 is a graph showing a CPU usage amount in a standby mode state, FIG. 2 is a graph showing a CPU usage amount when a music player is executed, and FIG. 3 is a graph showing a CPU usage amount when an Android market application is executed.

도 1 내지 3을 참조하여, 어플리케이션의 분류를 하기에서 설명한다. 도 1 내지 3은 스마트폰에서 동작하는 여러 종류의 어플리케이션들을 대상으로 하여 CPU 사용량을 보여준다. 도 1은 대기모드 상태의 CPU 사용량을 나타낸다. 도 1에 도시된 바와 같이, 대기모드 상태에서의 CPU 사용량은 1% 내외의 매우 낮은 사용률을 보인다.With reference to Figs. 1 to 3, classification of applications will be described below. 1 to 3 show the CPU usage for various types of applications operating on a smartphone. 1 shows the CPU usage in the standby mode. As shown in FIG. 1, the CPU usage in the standby mode state shows a very low usage rate of about 1%.

도 2는 뮤직 플레이어를 실행하였을 때의 CPU 사용률을 나타낸다. 도 2에 도시된 바와 같이 선곡이나 볼륨 조절 등의 플레이어 기능을 처리할 경우는 com.android.music 프로세스가 CPU 를 조금 사용하지만, 사용자의 입력이 없을 경우는 주로 media server 프로세스만 CPU를 사용한다.2 shows the CPU usage rate when the music player is executed. As shown in FIG. 2, the com.android.music process uses a small amount of CPU when processing a player function such as a song selection or a volume control. However, when there is no input from the user, only the media server process uses the CPU.

도 3은 안드로이드 마켓 어플리케이션을 수행시켰을 때의 CPU 사용률을 나타낸다. 도 3에 도시된 바와 같이 서버와의 트래픽이 많으면 CPU 사용률이 늘어나는 것을 확인할 수 있다. FIG. 3 shows the CPU utilization when the Android market application is executed. As shown in FIG. 3, if the traffic to the server is large, the CPU utilization rate increases.

도 4는 어플리케이션의 특성에 따른 분류를 나타내는 그래프이다. 4 is a graph showing the classification according to the characteristics of the application.

상기 도 1 내지 3의 내용을 정리하면 도 4와 같다. 대부분의 어플리케이션들을 크게 2가지로 분류할 수 있게 된다. CPU 사용률이 높은 H 그룹은 빠른 응답 시간(response time)이 필요하여 제 1 코어를 사용하면 전체적인 성능 측면에서 유리할 것이다. L 그룹은 제 2 코어에서 수행되면 제 1 코어에서 수행될 때와 비교해보면 성능은 크게 떨어지지 않으면서 전력 소모는 줄일 수 있게 될 것이다.
The contents of FIGS. 1 to 3 are summarized in FIG. Most applications can be classified into two broad categories. The H group with high CPU usage rate will have a fast response time, so using the first core will be advantageous in terms of overall performance. If the L group is performed in the second core, the power consumption will be reduced while the performance is not significantly degraded as compared with that in the first core.

AMP 의 제 1 코어와 제 2 코어는 동일한 ISA(instruction set architecture)를 사용하기 때문에 어느 코어에서 스레드를 수행시켜도 특별한 인스트럭션(instruction) 변환 과정 없이 실행이 가능하다. 하지만 AMP 하드웨어 위에서 동작하는 운영 체제가 이를 인지하지 못하고, 모두 동일한 코어로 취급하여 기존의 스케줄링 방식대로 태스크를 할당한다면 AMP의 장점을 100% 활용할 수 없게 되고, 결국 전체적인 성능의 저하를 보이게 된다.Since the first and second cores of the AMP use the same instruction set architecture (ISA), it is possible to execute the threads in any core without any special instruction conversion process. However, if the operating system running on the AMP hardware can not recognize it and all of them are treated as the same core, and the task is allocated according to the existing scheduling method, the advantage of the AMP can not be utilized 100%, and the overall performance is deteriorated.

또한 전력 소모의 측면에서 코어의 면적 대비 크기가 1/4 로 줄어들면 소모하는 전력량은 1/2 가 된다. 따라서 제 2 코어에서 수행시켜도 되는 어플리케이션들은 제 1 코어에서 제 2 코어로 이주시키고, 제 1 코어의 전원을 차단한다면 그만큼 전력 손실을 줄일 수 있게 된다. Also, in terms of power consumption, when the size of the core is reduced by 1/4, the amount of power consumed is halved. Accordingly, when the applications to be executed in the second core are migrated from the first core to the second core and the power of the first core is cut off, the power loss can be reduced accordingly.

도 5는 본 발명의 일 실시예에 따른 모바일 장치에서의 비대칭 멀티 프로세서 코어 스케줄링 방법의 개념도이다. 도 5를 참조하여, 이하 비대칭 멀티 프로세서 코어 스케줄링 방법을 상세히 설명한다.5 is a conceptual diagram of an asymmetric multiprocessor core scheduling method in a mobile device according to an embodiment of the present invention. Referring to FIG. 5, the asymmetric multiprocessor core scheduling method will be described in detail.

도 5에 도시된 바와 같이, 스마트폰이 대기 모드(Standby mode, S510) 상태일 때는 AMP의 제 2 코어(20)에 모든 백그라운드 태스크를 할당한다면 기존의 듀얼코어를 사용하는 기기보다 배터리 소모를 줄여 대기시간을 연장할 수 있을 것이다. 현재 듀얼 코어 스마트폰들은 코어의 사용량이 줄어들 때는 주파수를 낮추는 방법으로 전력 소모량을 줄인다. 하지만 주파수만 줄인다고 하여 제 2 코어(20)만큼 전력 절감 효과를 가져올 수는 없다. As shown in FIG. 5, when all the background tasks are allocated to the second core 20 of the AMP when the smartphone is in the standby mode (S510), battery consumption is reduced You will be able to extend the waiting time. Currently, dual-core smartphones reduce power consumption by lowering the frequency when core usage is reduced. However, since only the frequency is reduced, the power saving effect can not be obtained as much as the second core 20.

다시 도 5를 참조하면, 액티브 모드(Active mode, S520) 상태로 전환될 때, 제 1 코어(10)가 어플리케이션을 실행할 수 있다(S521). 스마트폰 사용자들은 대개 어플리케이션의 동작 속도에 대하여 관대하지 못하기 때문에 사용자의 QoS를 만족시켜 주는 것이 중요하다. 따라서 사용자의 입력이 스크린에 전달되어 어플리케이션이 실행된다면 제 1 코어(10)에 할당해주어야 할 것이다. 그래서, 항상 fore-ground 태스크를 제 1 코어(10)에 할당시켜주는 것을 원칙으로 한다. Referring again to FIG. 5, when the active mode is switched to the active mode (S520), the first core 10 can execute the application (S521). It is important for smartphone users to satisfy the user's QoS since they are generally not tolerant of the operating speed of the application. Therefore, if the input of the user is transmitted to the screen and the application is executed, it should be allocated to the first core 10. Therefore, it is a principle that the fore-ground task is always allocated to the first core 10.

이때 CPU 사용량을 모니터링하는 작업(S523)을 제 2 코어에서 시작할 수 있다. 미리 설정한 제 1 CPU 사용량 미만인 경우, 상기 어플리케이션을 제 2 코어(20)에서 실행될 수 있도록 Core Affinity를 설정할 수 있다(S525). 보다 상세히 설명하면, 초 단위로 모니터링을 하여 CPU 사용량에 따라 예를 들어 세 가지 클래스로 나눌 수 있다. 예를 들어, 상기 CPU 사용량이 미리 설정한 제 1 CPU 사용량 이상인 경우 하이 클래스(High class)로 분류할 수 있고, 상기 CPU 사용량이 미리 설정한 제 1 CPU 사용량 미만이고 미리 설정한 제 2 CPU 사용량 이상인 경우 미디엄 클래스(Medium class)로 분류할 수 있으며, 상기 CPU 사용량이 상기 제 2 CPU 사용량 미만인 경우 로우 클래스(Low class)로 분류할 수 있다. At this time, the task of monitoring the CPU usage (S523) may be started in the second core. If it is less than the preset first CPU usage amount, Core Affinity can be set so that the application can be executed in the second core 20 (S525). In more detail, monitoring can be performed in seconds and divided into three classes, for example, according to CPU usage. For example, if the CPU usage is equal to or greater than a first CPU usage amount set in advance, it can be classified as a high class. If the CPU usage amount is less than the first CPU usage amount set in advance and is equal to or larger than the second CPU usage amount Medium class, and if the CPU usage is less than the second CPU usage, it can be classified as a low class.

여기서, 제 2 코어(20)의 최대 주파수를 제 1 코어(10)의 최대 주파수로 나눈 값을 퍼센트로 구하여 문턱(threshold) 값으로 정할 수 있다. 상기 문턱 값이 상기 제 1 CPU 사용량이 될 수 있다. 제 1 코어가 제 2 코어보다 두 배만큼 빠르다면 문턱(threshold) 값은 50% 가 될 수 있다. Here, the value obtained by dividing the maximum frequency of the second core 20 by the maximum frequency of the first core 10 may be determined as a percentage and set as a threshold value. The threshold value may be the first CPU usage amount. If the first core is twice as fast as the second core, the threshold value can be 50%.

상기 문턱 값을 제 1 코어(10)를 켜고 끄는 기준으로 사용할 수 있다. 예를 들어, CPU 사용량이 100% 를 기준으로 문턱 값 이상을 ‘하이’클래스, 문턱 값부터 40%를 ‘미디엄’클래스, 그 미만의 낮은 CPU 사용률을 나타내는 어플리케이션을 ‘로우’클래스로 분류할 수 있다. 기본적인 알고리즘은 미디엄 클래스 및 로우 클래스의 어플리케이션들은 제 2 코어(20)에서 동작할 수 있도록 CPU affinity 값을 설정할 수 있다. The threshold value can be used as a criterion for turning on and off the first core 10. For example, if the CPU usage is 100%, it can be classified as a 'high' class with a threshold value higher than a threshold value, a 40% 'medium' class as a threshold value and a 'low' have. The basic algorithm can set the CPU affinity value so that the applications of the medium class and the low class can operate in the second core 20.

특정 시간이 지나면 더 이상 사용자의 입력이 없을 것으로 판단하여 제 1 코어(10)를 끄도록 할 수 있다. 즉, 상기 제 2 코어(20)가 상기 어플리케이션을 실행하고 일정 시간이 경과하면, 더 이상 제 1 코어(10)를 사용하지 않으므로, 상기 제 1 코어(10)의 전원을 차단할 수 있다(S527). After a certain time, it is determined that there is no input by the user and the first core 10 is turned off. That is, when the second core 20 executes the application and the predetermined time has elapsed, the first core 10 is not used any longer, so that the power of the first core 10 can be shut off (S527) .

여기서, 로우 클래스의 어플리케이션들은 제 1 코어(10)를 사용하지 않을 확률이 미디엄 클래스보다 높기 때문에 제 1 코어(10)를 끄기까지의 시간을 짧게 설정할 수 있다. 예를 들어, 상기 미디엄 클래스(Medium class)로 분류할 경우 30초가 경과한 후 제 1 코어(10)의 전원을 차단할 수 있다. 또한, 상기 CPU 사용량이 상기 제 2 CPU 사용량 미만인 경우 로우 클래스(Low class)로 분류할 수 있고, 예를 들면 15초가 경과한 후 제 1 코어(10)의 전원을 차단할 수 있다. Here, since the probability of not using the first core 10 is higher than that of the low class application, the time until the first core 10 is turned off can be shortened. For example, if the medium class is classified into the medium class, the power of the first core 10 may be shut off after 30 seconds have elapsed. In addition, if the CPU usage is less than the second CPU usage, it can be classified as a low class, and power of the first core 10 can be shut off after 15 seconds, for example.

상기 30초 또는 15초와 같은 시간은 스마트폰의 스크린 타임아웃(screen timeout)처럼 사용자가 설정할 수 있다. 이는 사용자마다 선호도가 다르기 때문이다. 그래서 제 1 코어(10)를 사용하는 어플리케이션이 없으면 설정된 시간만큼 기다린 뒤 제 1 코어(10)의 전원을 차단할 수 있다.
The time such as 30 seconds or 15 seconds can be set by the user like the screen timeout of the smartphone. This is because users have different preferences. Thus, if there is no application using the first core 10, the power of the first core 10 can be cut off after waiting for a predetermined time.

도 6은 본 발명의 일 실시예에 따른 모바일 장치에서의 비대칭 멀티 프로세서 코어 스케줄링 방법의 흐름도이다. 6 is a flow diagram of a method for asymmetric multiprocessor core scheduling in a mobile device in accordance with an embodiment of the present invention.

도 6에 도시된 바와 같이, 본 발명의 일 실시예에 따른 모바일 장치에서의 비대칭 멀티 프로세서 코어 스케줄링 방법은 먼저 어플리케이션의 실행 요청에 응답하여, 제 1 코어가 상기 어플리케이션을 실행하고, 제 2 코어가 CPU의 사용률을 모니터링할 수 있다(S610). 전술한 바와 같이, 사용자들은 통상적으로 어플리케이션의 동작 속도에 대해서 관대하지 못하므로, 사용자의 QoS를 만족시켜주기 위해, 제 1 코어가 상기 어플리케이션을 실행하도록 할 수 있다. 제 2 코어는 CPU의 사용량을 모니터링 할 수 있다. As shown in FIG. 6, an asymmetric multiprocessor core scheduling method in a mobile device according to an exemplary embodiment of the present invention includes: first, in response to an application execution request, a first core executes the application; The usage rate of the CPU can be monitored (S610). As described above, since users are not generally tolerant of the operation speed of the application, the first core can cause the first core to execute the application in order to satisfy the QoS of the user. The second core can monitor the CPU usage.

모니터링 결과, 상기 CPU 사용률이 미리 설정한 제 1 사용률 미만인 경우 상기 어플리케이션을 제 2 코어가 실행할 수 있다(S620). 즉, 상기 실행된 어플리케이션이 제 1 코어를 이용하지 않아도 속도의 지연이 없을 정도의 작업을 수행하는 경우에는, 제 2 코어가 상기 어플리케이션을 실행하도록 함으로써 보다 전력 소모를 줄일 수 있다.  As a result of the monitoring, if the CPU usage rate is less than a preset first usage rate, the application can be executed by the second core (S620). That is, in the case where the executed application performs an operation that does not cause a delay of the speed without using the first core, the second core can execute the application, thereby further reducing power consumption.

여기서, 상기 제 1 사용률은 상기 제 2 코어의 최대 주파수 및 제 1 코어의 최대 주파수를 기반으로 결정될 수 있다. 보다 구체적으로, 상기 제 1 사용률은 상기 제 2 코어의 최대 주파수를 상기 제 1 코어의 최대 주파수로 나눈 값이 될 수 있다. 상기 코어들의 최대 주파수는 상기 각각의 코어들이 낼 수 있는 최대 성능과 관련성이 있다. 따라서, 상기 각각의 코어들의 최대 주파수를 기반으로 제 1 코어 또는 제 2 코어 중 어느 코어가 특정 어플리케이션을 수행할지 여부를 결정할 수 있다. Here, the first usage rate may be determined based on the maximum frequency of the second core and the maximum frequency of the first core. More specifically, the first usage rate may be a value obtained by dividing a maximum frequency of the second core by a maximum frequency of the first core. The maximum frequency of the cores is related to the maximum performance that each core can produce. Thus, based on the maximum frequency of each of the cores, it is possible to determine which one of the first core or the second core performs a specific application.

제 1 코어가 제 2 코어에 비해 2배 빠른 경우에는 50 %가 임계 값이 될 수 있다. 따라서, CPU 사용량이 50 % 를 초과하는 경우에는 계속해서 제 1 코어가 특정 어플리케이션을 수행하는 것이 바람직하다. CPU 사용량이 50 % 미만일 경우, 제 2 코어가 상기 특정 어플리케이션을 실행하는 것이 바람직하다. If the first core is twice as fast as the second core, 50% can be the threshold value. Therefore, when the CPU usage exceeds 50%, it is preferable that the first core continuously executes a specific application. When the CPU usage is less than 50%, it is preferable that the second core executes the specific application.

상기 제 2 코어가 상기 어플리케이션을 실행하고 일정 시간이 경과하면 상기 제 1 코어의 전원을 차단할 수 있다(S630). 즉, 제 2 코어가 상기 어플리케이션을 실행하고 일정 시간이 경과한 경우에는 더 이상 제 1 코어를 사용하지 않으므로 제 1 코어의 전원을 차단하여 전력 소모를 최대한으로 줄이기 위함이다. The second core may shut down the power of the first core after a predetermined time elapses after executing the application (S630). That is, when the second core executes the application and the predetermined time has elapsed, the first core is no longer used, so that power consumption of the first core is cut off to minimize power consumption.

여기서, 상기 CPU 사용률이 미리 설정한 제 2 사용률 미만인 경우, 상기 CPU 사용률이 상기 제 2 사용률 이상인 경우보다 적은 시간 경과 후 상기 제 1 코어의 전원을 차단할 수 있다. 상기 제 2 사용률은 상기 제 1 사용률보다 적을 수 있다. 즉, 제 1 사용률과 제 2 사용률을 기준으로, 제 1 사용률보다 더 높은 사용률을 보일 경우에는 예를 들면 '하이'클래스로, 제 1 사용률보다 낮고 제 2 사용률보다 높은 경우에는 '미디엄'클래스로, 제 2 사용률보다 낮은 경우에는 '로우'클래스로 구분할 수 있다. '미디엄'클래스 또는 '로우'클래스일 경우에 제 2 코어가 상기 어플리케이션을 실행하도록 하고, 특히 '로우'클래스일 경우에는 더 짧은 시간이 경과한 후 상기 제 1 코어의 전원을 차단할 수 있다. Here, if the CPU usage rate is less than the preset second usage rate, the power of the first core may be shut off after a lapse of time less than when the CPU usage rate is equal to or higher than the second usage rate. The second usage rate may be less than the first usage rate. For example, when the first usage rate is higher than the first usage rate, the user is classified as a 'high' class. If the first usage rate is higher than the first usage rate, , And if it is lower than the second usage rate, it can be classified into a 'low' class. In case of the 'medium' class or the 'low' class, the second core may execute the application, and in the case of the 'low' class, the power of the first core may be cut off after a shorter time.

여기서, 상기 일정 시간은 사용자의 입력에 의해 설정될 수 있다. 즉, 스마트폰의 스크린 타임아웃과 같이, 사용자가 직접 설정할 수 있다. 이는 사용자마다 선호도가 다르기 때문이다. Here, the predetermined time may be set by a user's input. That is, it can be set by the user like the screen timeout of the smartphone. This is because users have different preferences.

이후, 상기 어플리케이션이 종료되면 모바일 장치는 대기 모드에 진입하게 되고, 상기 제 2 코어가 백그라운드 태스크를 수행할 수 있다(S640). 모바일 장치가 대기 모드 상태일 때는 제 2 코어가 백그라운드 태스크를 수행함으로써, 배터리의 소모를 획기적으로 줄일 수 있을 것이다.
Thereafter, when the application is terminated, the mobile device enters a standby mode, and the second core can perform a background task (S640). When the mobile device is in the standby mode, the second core performs the background task, which can drastically reduce battery consumption.

도 7은 본 발명의 일 실시예에 따른 모바일 장치의 구성을 나타내는 블록도이다. 7 is a block diagram illustrating a configuration of a mobile device according to an embodiment of the present invention.

도 7에 도시된 바와 같이, 본 발명의 일 실시예에 따른 모바일 장치(700)는 제 1 코어(710), 제 2 코어(720), 제어부(730) 및 입력부(740)를 포함할 수 있다. 7, a mobile device 700 according to an embodiment of the present invention may include a first core 710, a second core 720, a controller 730, and an input 740 .

제 1 코어(710)는 어플리케이션의 실행 요청에 응답하여, 상기 어플리케이션을 실행할 수 있다. The first core 710 may execute the application in response to an application execution request.

제 2 코어(720)는 CPU의 사용률을 모니터링하고 상기 CPU 사용률이 미리 설정한 제 1 사용률 미만인 경우 상기 어플리케이션을 실행할 수 있다. 여기서, 상기 제 1 사용률은 상기 제 2 코어(720)의 최대 주파수 및 제 1 코어(710)의 최대 주파수를 기반으로 결정될 수 있다. 보다 구체적으로, 상기 제 1 사용률은 상기 제 2 코어(720)의 최대 주파수를 상기 제 1 코어(710)의 최대 주파수로 나눈 값을 기반으로 결정될 수 있다. 또한, 상기 제 2 코어(720)는 상기 어플리케이션이 종료되면 백그라운드 태스크를 수행할 수 있다. The second core 720 monitors the CPU usage rate and can execute the application when the CPU usage rate is less than a preset first usage rate. Here, the first usage rate may be determined based on the maximum frequency of the second core 720 and the maximum frequency of the first core 710. More specifically, the first utilization rate may be determined based on a value obtained by dividing a maximum frequency of the second core 720 by a maximum frequency of the first core 710. [ In addition, the second core 720 may perform a background task when the application ends.

제어부(730)는 상기 제 2 코어(720)가 상기 어플리케이션을 실행하고 일정 시간이 경과하면 상기 제 1 코어(710)의 전원을 차단할 수 있다. 상기 제어부(730)는 상기 CPU 사용률이 미리 설정한 제 2 사용률 미만인 경우, 상기 CPU 사용률이 상기 제 2 사용률 이상인 경우보다 짧은 시간 경과 후 상기 제 1 코어(720)의 전원을 차단할 수 있다. 상기 제 2 사용률은 상기 제 1 사용률보다 적은 것을 특징으로 할 수 있다. The control unit 730 can turn off the power of the first core 710 after a predetermined time elapses after the second core 720 executes the application. The controller 730 can shut off the power of the first core 720 after a lapse of a shorter time than when the CPU usage rate is equal to or higher than the second usage rate when the CPU usage rate is less than a second usage rate set in advance. And the second usage rate is smaller than the first usage rate.

입력부(740)는 사용자의 조작에 의해 수치를 입력받을 수 있고, 상기 일정 시간은 상기 입력부(740)를 통한 사용자의 입력에 의해 설정될 수 있다.
The input unit 740 can receive a numerical value by the user's operation and the predetermined time can be set by the user's input through the input unit 740. [

실험예Experimental Example

현재 상용화된 모바일 AMP가 없기 때문에 DVFS(dynamic voltage and frequency scaling)의 방법을 이용하여 제 1 코어와 제 2 코어로 동작하도록 실험환경을 구성하였다. AMD Opteron 6134 CPU 두 개를 사용하였고 제 1 코어의 클럭 주파수는 2.3 GHz, 제 2 코어의 클럭 주파수는 1.1 GHz로, 제 1 코어는 제 2 코어의 약 2배의 성능을 낼 수 있도록 설정했다. 실험에 사용된 워크 로드는 마이크로 벤치마크중 하나인 SHA-1과 sysbench의 File I/O를 사용하였다. 각각 CPU-bound, I/O-bound 의 특성을 지닌다.Since there is no commercially available mobile AMP, the experimental environment is configured to operate as a first core and a second core by using DVFS (dynamic voltage and frequency scaling) method. I used two AMD Opteron 6134 CPUs, and I set the clock frequency of the first core to 2.3 GHz, the clock frequency of the second core to 1.1 GHz, and the first core to achieve about twice the performance of the second core. The workload used in the experiments was SHA-1, one of the micro benchmarks, and File I / O of sysbench. They are CPU-bound and I / O-bound, respectively.

도 8은 각각의 워크 로드를 제 1 코어(2.3GHz)와 제 2 코어(1.1GHz)에서 수행시켜서 워크 로드의 전체 수행시간과 요청(request) 당 처리 시간을 나타내고 있다. I/O-bound 워크 로드는 제 1 코어와 제 2 코어에서 비슷한 처리 시간을 나타낸다. 제 1 코어에서는 11.44, 제 2 코어에서는 11.25로 큰 차이가 없어서 워크 로드가 끝나는 시간도 거의 차이가 없음을 알 수 있다. 반면에 CPU-bound 워크 로드는 단위 시간당 요청 처리 시간의 차이가 크다. 제 1 코어가 1.55, 제 2 코어가 3.24로 동일한 워크 로드를 제 1 코어에서 수행시키면 더 빨리 끝나는 것을 확인할 수 있다. FIG. 8 shows the total execution time of the workload and the processing time per request by performing each workload on the first core (2.3 GHz) and the second core (1.1 GHz). I / O-bound workloads represent similar processing times in the first and second cores. 11.44 in the first core, and 11.25 in the second core, and there is no significant difference in the ending time of the workload. On the other hand, CPU-bound workloads have a large difference in request processing time per unit time. It can be seen that the faster the work is done on the first core, the same workload for the first core is 1.55 and the second core is 3.24.

따라서, CPU-bound 워크 로드는 고성능의 코어를 사용하는 것이 맞지만, 코어의 사용량이 많지 않은 워크 로드는 제 2 코어에서 수행되더라도 성능면에서 큰 차이가 없음을 알 수 있다. 현재 AMP 환경의 코어를 인식할 수 있는 OS가 없기 때문에 코어 사용량이 서로 다른 워크 로드를 잘 구별하여 제 1 코어와 제 2 코어에 할당하는 것이 중요하다. Thus, it can be seen that CPU-bound workloads are suitable for using high-performance cores, but workloads that do not use a small amount of cores are not significantly different in performance from the second cores. Since there is no OS capable of recognizing the core of the AMP environment at present, it is important to allocate workloads with different core usage to the first core and the second core.

도 9는 하나의 제 1 코어와 하나의 제 2 코어를 갖는 AMP 환경에서 CPU-bound 워크 로드와 I/O-bound 워크 로드가 어느 코어에 할당되는지에 따른 완료시간을 비교하고 있다. BEST 케이스에서는 CPU-bound 워크 로드가 제 1 코어로 I/O-bound 워크 로드가 제 2 코어로 각각 할당되어 그렇지 않은 WORST의 경우보다 전체 워크 로드의 처리시간이 줄어든 것을 확인할 수 있다. 전체 처리 시간이 줄어든다는 것은 그만큼 코어를 사용하는 시간을 줄여 배터리 소모를 줄일 수 있게 된다.Figure 9 compares the completion time according to which core the CPU-bound workload and the I / O-bound workload are allocated in an AMP environment with one first core and one second core. In the BEST case, we can see that CPU-bound workloads are assigned to the first core and I / O-bound workloads are assigned to the second core, respectively, thus reducing the processing time of the entire workload as compared to WORST. Reducing the total processing time means that you can reduce the time you spend on the core and reduce battery consumption.

도 10은 다양한 코어의 조합에 따른 워크 로드의 처리 시간 및 각 코어로 워크 로드의 스케줄링 여부를 나타내는 그래프이다. 본 발명에서 제시한 알고리즘이 도 9의 BEST 케이스처럼 잘 동작하는지 여부를 도 10을 참조하여 확인할 수 있다. 코어의 개수를 변화시키면서 다양한 AMP 환경을 만들어보았다. Fore-ground 태스크를 가급적 빨리 처리할 수 있는 칩을 만드는 것이 제조 업체들의 주된 목표이다. 따라서 제 1 코어의 개수를 늘려가면서 워크 로드의 처리 시간과 각 코어로 워크 로드를 잘 스케줄링하는지를 알아보았다. 10 is a graph showing a processing time of a workload according to a combination of various cores and whether or not a workload is scheduled for each core. Whether or not the algorithm proposed in the present invention works as well as the BEST case of FIG. 9 can be confirmed with reference to FIG. We have created various AMP environments by changing the number of cores. Manufacturers' primary goal is to create chips that can handle fore-ground tasks as soon as possible. Therefore, we have examined the processing time of the workload and how well the workload is scheduled for each core while increasing the number of the first cores.

도 10의 제 1 코어(FC)와 제 2 코어(SC)의 앞에 적힌 숫자는 각 코어의 개수를 의미한다. 따라서 첫 번째 AMP 환경은 2개의 제 1 코어와 2개의 제 2 코어로 구성됨을 의미하는 것이다. 각 AMP 환경에 동일한 워크 로드를 수행한 결과인데 CPU-bound 워크 로드는 제 1 코어의 개수에 맞게 스레드를 늘려가면서 수행하였다.The numbers written in front of the first core FC and the second core SC in FIG. 10 indicate the number of cores. Thus, the first AMP environment is composed of two first cores and two second cores. The result of performing the same workload on each AMP environment, the CPU-bound workload was increased by increasing the number of threads to match the number of primary cores.

제 1 코어에 CPU-bound 워크 로드가 잘 스케줄링되어 스레드의 개수가 증가함에 따라 전체 처리 시간도 짧아지는 것을 확인할 수 있다. 또한 제 1 코어는 사용하지 않으면 전원을 차단하므로 제 1 코어가 켜져 있는 시간을 줄임으로써 도 10의 각 AMP 환경 모두 거의 동일한 전력을 소비하면서 성능은 향상되는 것을 알 수 있다.It can be seen that the CPU-bound workload is well-scheduled in the first core and the total processing time is shortened as the number of threads increases. In addition, since the power is cut off when the first core is not used, it can be seen that performance is improved while consuming almost the same power in each AMP environment of FIG. 10 by reducing the time that the first core is turned on.

또한 부가적으로, 앞으로 어플리케이션들이 병렬성을 고려해서 만들어지게 되면 멀티 코어의 효율을 더 극대화할 수 있을 것이다.
In addition, in the future, applications will be able to maximize the efficiency of multi-cores if they are created with parallelism in mind.

10 : 제 1 코어 20 : 제 2 코어
700 : 모바일 장치 710 : 제 1 코어
720 : 제 2 코어 730 : 제어부
740 : 입력부
10: first core 20: second core
700: mobile device 710: first core
720: second core 730: control unit
740:

Claims (16)

어플리케이션의 실행 요청에 응답하여 제 1 동작 속도를 가진 제 1 코어가 상기 어플리케이션을 실행하고, 제 2 동작 속도를 가진 제 2 코어가 CPU의 사용률을 모니터링하는 단계; 및
상기 CPU 사용률이 미리 설정한 제 1 사용률 미만인 경우 상기 제 2 코어가 상기 어플리케이션을 실행하는 단계를 포함하되,
상기 제 1 동작 속도가 제 2 동작 속도보다 빠르고, 상기 제 1 사용률은 상기 제 2 코어의 최대 주파수 및 제 1 코어의 최대 주파수를 기반으로 결정되는 것을 특징으로 하는 모바일 장치에서의 비대칭 멀티 프로세서 코어 스케줄링 방법.
The first core having the first operating speed executes the application in response to the execution request of the application, and the second core having the second operating speed monitors the utilization of the CPU; And
And executing the application by the second core when the CPU usage rate is less than a preset first usage rate,
Wherein the first operating rate is faster than the second operating rate and the first utilization rate is determined based on the maximum frequency of the second core and the maximum frequency of the first core. Way.
제 1항에 있어서,
상기 제 2 코어가 상기 어플리케이션을 실행하고 일정 시간이 경과하면 상기 제 1 코어의 전원을 차단하는 단계를 더 포함하는 것을 특징으로 하는 모바일 장치에서의 비대칭 멀티 프로세서 코어 스케줄링 방법.
The method according to claim 1,
And shutting down the power of the first core when the second core executes the application and a predetermined time has elapsed.
제 2항에 있어서, 상기 전원을 차단하는 단계는
상기 CPU 사용률이 미리 설정한 제 2 사용률 미만인 경우, 상기 CPU 사용률이 상기 제 2 사용률 이상인 경우보다 적은 시간 경과 후 상기 제 1 코어의 전원을 차단하는 것을 특징으로 하는 모바일 장치에서의 비대칭 멀티 프로세서 코어 스케줄링 방법.
3. The method of claim 2,
When the CPU usage rate is less than a second usage rate that is set in advance, the power of the first core is shut off after a lapse of less time than when the CPU usage rate is equal to or higher than the second usage rate. Way.
제 3항에 있어서,
상기 제 2 사용률은 상기 제 1 사용률보다 적은 것을 특징으로 하는 모바일 장치에서의 비대칭 멀티 프로세서 코어 스케줄링 방법.
The method of claim 3,
Wherein the second usage rate is less than the first usage rate.
제 2항에 있어서, 상기 일정 시간은
사용자의 입력에 의해 설정되는 것을 특징으로 하는 모바일 장치에서의 비대칭 멀티 프로세서 코어 스케줄링 방법.
3. The method of claim 2,
Wherein the asynchronous multiprocessor core scheduling method is set by a user's input.
삭제delete 제 1항에 있어서, 상기 제 1 사용률은
상기 제 2 코어의 최대 주파수를 상기 제 1 코어의 최대 주파수로 나눈 값을 기반으로 결정되는 것을 특징으로 하는 모바일 장치에서의 비대칭 멀티 프로세서 코어 스케줄링 방법.
2. The method of claim 1,
Wherein the maximum frequency is determined based on a value obtained by dividing a maximum frequency of the second core by a maximum frequency of the first core.
제 1항에 있어서,
상기 어플리케이션이 종료되면 상기 제 2 코어가 백그라운드 태스크를 수행하는 단계를 더 포함하는 것을 특징으로 하는 모바일 장치에서의 비대칭 멀티 프로세서 코어 스케줄링 방법.
The method according to claim 1,
And when the application is terminated, performing a background task by the second core. ≪ Desc / Clms Page number 19 >
어플리케이션의 실행 요청에 응답하여, 상기 어플리케이션을 실행하는 제 1 코어; 및
CPU의 사용률을 모니터링하고 상기 CPU 사용률이 미리 설정한 제 1 사용률 미만인 경우 상기 어플리케이션을 실행하는 제 2 코어를 포함하되, 상기 제 1 사용률은 상기 제 2 코어의 최대 주파수 및 제 1 코어의 최대 주파수를 기반으로 결정되는 모바일 장치.
A first core for executing the application in response to an execution request of the application; And
And a second core for monitoring a usage rate of the CPU and executing the application when the CPU usage rate is less than a first usage rate that is set in advance and the first usage rate is a maximum frequency of the second core and a maximum frequency of the first core Gt;
제 9항에 있어서,
상기 제 2 코어가 상기 어플리케이션을 실행하고 일정 시간이 경과하면 상기 제 1 코어의 전원을 차단하는 제어부를 더 포함하는 것을 특징으로 하는 모바일 장치.
10. The method of claim 9,
Further comprising a controller for shutting down the power of the first core when the second core executes the application and a predetermined time has elapsed.
제 10항에 있어서, 상기 제어부는
상기 CPU 사용률이 미리 설정한 제 2 사용률 미만인 경우, 상기 CPU 사용률이 상기 제 2 사용률 이상인 경우보다 짧은 시간 경과 후 상기 제 1 코어의 전원을 차단하는 것을 특징으로 하는 모바일 장치.
11. The apparatus of claim 10, wherein the control unit
And when the CPU usage rate is less than a second usage rate that is set in advance, the first core is powered off after a lapse of a shorter time than when the CPU usage rate is equal to or higher than the second usage rate.
제 11항에 있어서,
상기 제 2 사용률은 상기 제 1 사용률보다 적은 것을 특징으로 하는 모바일 장치.
12. The method of claim 11,
Wherein the second usage rate is less than the first usage rate.
제 10항에 있어서,
사용자의 조작에 의해 수치를 입력받는 입력부를 더 포함하고,
상기 일정 시간은 상기 입력부를 통한 사용자의 입력에 의해 설정되는 것을 특징으로 하는 모바일 장치.
11. The method of claim 10,
Further comprising an input section for receiving a numerical value by an operation of a user,
Wherein the predetermined time is set by a user's input through the input unit.
삭제delete 제 9항에 있어서, 상기 제 1 사용률은
상기 제 2 코어의 최대 주파수를 상기 제 1 코어의 최대 주파수로 나눈 값을 기반으로 결정되는 것을 특징으로 하는 모바일 장치.
10. The method of claim 9, wherein the first utilization rate
Wherein the maximum frequency of the second core is determined based on a value obtained by dividing a maximum frequency of the second core by a maximum frequency of the first core.
제 9항에 있어서, 상기 제 2 코어는
상기 어플리케이션이 종료되면 백그라운드 태스크를 수행하는 것을 특징으로 하는 모바일 장치.
10. The method of claim 9, wherein the second core
And performs a background task when the application is terminated.
KR1020120044585A 2012-04-27 2012-04-27 Method of core scheduling for asymmetric multi-core processor in a mobile device and apparatus for performing the same KR101463533B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120044585A KR101463533B1 (en) 2012-04-27 2012-04-27 Method of core scheduling for asymmetric multi-core processor in a mobile device and apparatus for performing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120044585A KR101463533B1 (en) 2012-04-27 2012-04-27 Method of core scheduling for asymmetric multi-core processor in a mobile device and apparatus for performing the same

Publications (2)

Publication Number Publication Date
KR20130121412A KR20130121412A (en) 2013-11-06
KR101463533B1 true KR101463533B1 (en) 2014-11-19

Family

ID=49851653

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120044585A KR101463533B1 (en) 2012-04-27 2012-04-27 Method of core scheduling for asymmetric multi-core processor in a mobile device and apparatus for performing the same

Country Status (1)

Country Link
KR (1) KR101463533B1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101509938B1 (en) * 2013-10-11 2015-04-08 고려대학교 산학협력단 Method and apparatus for task scheduling
KR20150136345A (en) 2014-05-27 2015-12-07 삼성전자주식회사 Task group migration method and electronic device supporting the same
AU2019256257B2 (en) * 2018-04-20 2022-02-10 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Processor core scheduling method and apparatus, terminal, and storage medium
WO2023106636A1 (en) * 2021-12-09 2023-06-15 삼성전자 주식회사 Electronic apparatus and heating control method based on background process control in electronic apparatus

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100491541B1 (en) * 2003-08-01 2005-05-25 니트젠테크놀러지스 주식회사 A contents synchronization system in network environment and a method therefor
KR101065436B1 (en) * 2010-12-07 2011-09-19 경상대학교산학협력단 Stochastic scheduling of a real-time parallel task with uncertain computation amount on mulit-core processors
KR20110139661A (en) * 2010-06-23 2011-12-29 인텔 코오퍼레이션 Memory power management via dynamic memory operation states
KR101128251B1 (en) * 2004-10-11 2012-03-26 엘지전자 주식회사 Apparatus and method for controling power saving by devices of executed program

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100491541B1 (en) * 2003-08-01 2005-05-25 니트젠테크놀러지스 주식회사 A contents synchronization system in network environment and a method therefor
KR101128251B1 (en) * 2004-10-11 2012-03-26 엘지전자 주식회사 Apparatus and method for controling power saving by devices of executed program
KR20110139661A (en) * 2010-06-23 2011-12-29 인텔 코오퍼레이션 Memory power management via dynamic memory operation states
KR101065436B1 (en) * 2010-12-07 2011-09-19 경상대학교산학협력단 Stochastic scheduling of a real-time parallel task with uncertain computation amount on mulit-core processors

Also Published As

Publication number Publication date
KR20130121412A (en) 2013-11-06

Similar Documents

Publication Publication Date Title
US10310588B2 (en) Forcing core low power states in a processor
Doweck et al. Inside 6th-generation intel core: New microarchitecture code-named skylake
US9618997B2 (en) Controlling a turbo mode frequency of a processor
EP2513751B1 (en) System and method for controlling central processing unit power in a virtualized system
US7689838B2 (en) Method and apparatus for providing for detecting processor state transitions
CN101379453B (en) Method and apparatus for using dynamic workload characteristics to control CPU frequency and voltage scaling
TWI550518B (en) A method, apparatus, and system for energy efficiency and energy conservation including thread consolidation
US10990407B2 (en) Dynamic interrupt reconfiguration for effective power management
KR101409141B1 (en) System and method for dynamically controlling a plurality of cores in a multicore central processing unit based on temperature
Attia et al. Dynamic power management techniques in multi-core architectures: A survey study
US20200166986A1 (en) System and method for performing distributed power management without power cycling hosts
US20160299559A1 (en) Power efficient processor architecture
KR20130002046A (en) Power management method for storage device including multi-core
US20160203083A1 (en) Systems and methods for providing dynamic cache extension in a multi-cluster heterogeneous processor architecture
WO2014035541A1 (en) Configuring power management functionality in a processor
US9110723B2 (en) Multi-core binary translation task processing
CN112257356A (en) Apparatus and method for providing thermal parameter reporting for multi-chip packages
US9535486B2 (en) Energy efficient optimization in multicore processors under quality of service (QoS)/performance constraints
KR101463533B1 (en) Method of core scheduling for asymmetric multi-core processor in a mobile device and apparatus for performing the same
US20160170474A1 (en) Power-saving control system, control device, control method, and control program for server equipped with non-volatile memory
Fan et al. GreenSleep: a multi-sleep modes based scheduling of servers for cloud data center
US20140351828A1 (en) Apparatus and method for controlling multi-core system on chip
Shieh et al. Energy-efficient tasks scheduling algorithm for dual-core real-time systems
Ko et al. AMP aware core allocation scheme for mobile devices
Chow Characterizing Dynamic Frequency and Thread Blocking Scaling in GPUs: Challenges and Opportunities

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180917

Year of fee payment: 5